From 098c7cfa9ef06201e1712bc9815229ece1c0e7a7 Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Thu, 21 Oct 2021 19:10:55 +0800 Subject: [PATCH 001/814] change send message by ws and optimization --- script/msg_transfer_start.sh | 10 +- script/path_info.cfg | 1 + script/push_start.sh | 4 +- src/api/chat/pull_msg.go | 55 ++++ src/api/chat/send_msg.go | 2 +- src/api/friend/add_friend.go | 2 + src/api/manage/management_chat.go | 2 +- src/api/open_im_api.go | 1 + src/common/constant/constant.go | 10 +- src/common/db/mongoModel.go | 85 +++++- src/msg_gateway/gate/logic.go | 108 ++++++-- src/msg_gateway/gate/rpc_server.go | 37 ++- src/msg_gateway/gate/validate.go | 28 +- src/msg_gateway/gate/ws_server.go | 42 +-- src/msg_transfer/logic/db.go | 5 + src/msg_transfer/logic/history_msg_handler.go | 3 + src/msg_transfer/logic/init.go | 2 +- src/proto/chat/chat.pb.go | 255 ++++++++++++------ src/proto/chat/chat.proto | 12 +- src/push/logic/push_to_client.go | 2 +- src/rpc/chat/chat/pull_message.go | 26 +- src/rpc/chat/chat/send_msg.go | 131 +++++---- src/rpc/group/group/group.go | 6 + src/utils/strings.go | 3 + 24 files changed, 604 insertions(+), 228 deletions(-) diff --git a/script/msg_transfer_start.sh b/script/msg_transfer_start.sh index 30caeb466..9caeed9f2 100644 --- a/script/msg_transfer_start.sh +++ b/script/msg_transfer_start.sh @@ -8,18 +8,22 @@ source ./path_info.cfg #Check if the service exists #If it is exists,kill this process check=`ps aux | grep -w ./${msg_transfer_name} | grep -v grep| wc -l` -if [ $check -eq 1 ] +if [ $check -ge 1 ] then oldPid=`ps aux | grep -w ./${msg_transfer_name} | grep -v grep|awk '{print $2}'` kill -9 $oldPid fi #Waiting port recycling sleep 1 + cd ${msg_transfer_binary_root} - nohup ./${msg_transfer_name} >>../logs/openIM.log 2>&1 & +for ((i = 0; i < ${msg_transfer_service_num}; i++)); do + nohup ./${msg_transfer_name} >>../logs/openIM.log 2>&1 & +done + #Check launched service process check=`ps aux | grep -w ./${msg_transfer_name} | grep -v grep| wc -l` -if [ $check -eq 1 ] +if [ $check -ge 1 ] then newPid=`ps aux | grep -w ./${msg_transfer_name} | grep -v grep|awk '{print $2}'` ports=`netstat -netulp | grep -w ${newPid}|awk '{print $4}'|awk -F '[:]' '{print $NF}'` diff --git a/script/path_info.cfg b/script/path_info.cfg index ed250d29d..f67e017c2 100644 --- a/script/path_info.cfg +++ b/script/path_info.cfg @@ -16,6 +16,7 @@ push_source_root="../src/push/" msg_transfer_name="open_im_msg_transfer" msg_transfer_binary_root="../bin/" msg_transfer_source_root="../src/msg_transfer/" +msg_transfer_service_num=2 sdk_server_name="open_im_sdk_server" diff --git a/script/push_start.sh b/script/push_start.sh index 668c0068f..9c7812dab 100644 --- a/script/push_start.sh +++ b/script/push_start.sh @@ -13,7 +13,7 @@ rpc_ports=($ports_array) #Check if the service exists #If it is exists,kill this process check=$(ps aux | grep -w ./${push_name} | grep -v grep | wc -l) -if [ $check -eq 1 ]; then +if [ $check -ge 1 ]; then oldPid=$(ps aux | grep -w ./${push_name} | grep -v grep | awk '{print $2}') kill -9 $oldPid fi @@ -28,7 +28,7 @@ done sleep 3 #Check launched service process check=$(ps aux | grep -w ./${push_name} | grep -v grep | wc -l) -if [ $check -eq 1 ]; then +if [ $check -ge 1 ]; then newPid=$(ps aux | grep -w ./${push_name} | grep -v grep | awk '{print $2}') ports=$(netstat -netulp | grep -w ${newPid} | awk '{print $4}' | awk -F '[:]' '{print $NF}') allPorts="" diff --git a/src/api/chat/pull_msg.go b/src/api/chat/pull_msg.go index 7e62d4f7d..e7a038ac6 100644 --- a/src/api/chat/pull_msg.go +++ b/src/api/chat/pull_msg.go @@ -70,3 +70,58 @@ func UserPullMsg(c *gin.Context) { }) } + +type paramsUserPullMsgBySeqList struct { + ReqIdentifier int `json:"reqIdentifier" binding:"required"` + SendID string `json:"sendID" binding:"required"` + OperationID string `json:"operationID" binding:"required"` + SeqList []int64 `json:"seqList"` +} + +func UserPullMsgBySeqList(c *gin.Context) { + params := paramsUserPullMsgBySeqList{} + if err := c.BindJSON(¶ms); err != nil { + c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": err.Error()}) + return + } + + token := c.Request.Header.Get("token") + if !utils.VerifyToken(token, params.SendID) { + c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": "token validate err"}) + return + } + pbData := pbChat.PullMessageBySeqListReq{} + pbData.UserID = params.SendID + pbData.OperationID = params.OperationID + pbData.SeqList = params.SeqList + + grpcConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImOfflineMessageName) + msgClient := pbChat.NewChatClient(grpcConn) + reply, err := msgClient.PullMessageBySeqList(context.Background(), &pbData) + if err != nil { + log.ErrorByKv("PullMessageBySeqList error", pbData.OperationID, "err", err.Error()) + return + } + log.InfoByKv("rpc call success to PullMessageBySeqList", pbData.OperationID, "ReplyArgs", reply.String(), "maxSeq", reply.GetMaxSeq(), + "MinSeq", reply.GetMinSeq(), "singLen", len(reply.GetSingleUserMsg()), "groupLen", len(reply.GetGroupUserMsg())) + + msg := make(map[string]interface{}) + if v := reply.GetSingleUserMsg(); v != nil { + msg["single"] = v + } else { + msg["single"] = []pbChat.GatherFormat{} + } + if v := reply.GetGroupUserMsg(); v != nil { + msg["group"] = v + } else { + msg["group"] = []pbChat.GatherFormat{} + } + msg["maxSeq"] = reply.GetMaxSeq() + msg["minSeq"] = reply.GetMinSeq() + c.JSON(http.StatusOK, gin.H{ + "errCode": reply.ErrCode, + "errMsg": reply.ErrMsg, + "reqIdentifier": params.ReqIdentifier, + "data": msg, + }) +} diff --git a/src/api/chat/send_msg.go b/src/api/chat/send_msg.go index ede81abdd..b6c1c75ac 100644 --- a/src/api/chat/send_msg.go +++ b/src/api/chat/send_msg.go @@ -87,7 +87,7 @@ func UserSendMsg(c *gin.Context) { "data": gin.H{ "clientMsgID": reply.ClientMsgID, "serverMsgID": reply.ServerMsgID, - "sendTime": reply.SendTime, + "sendTime": 0, }, }) diff --git a/src/api/friend/add_friend.go b/src/api/friend/add_friend.go index 40fee7dac..d2a67cafd 100644 --- a/src/api/friend/add_friend.go +++ b/src/api/friend/add_friend.go @@ -41,7 +41,9 @@ func ImportFriend(c *gin.Context) { OwnerUid: params.OwnerUid, Token: c.Request.Header.Get("token"), } + log.ErrorByKv("ImportFriend Test start", params.OperationID) RpcResp, err := client.ImportFriend(context.Background(), req) + //log.ErrorByKv("ImportFriend Test end", params.OperationID, "resp", RpcResp, "err", err.Error()) if err != nil { log.Error(req.Token, req.OperationID, "err=%s,ImportFriend failed", err) c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": "cImportFriend failed" + err.Error()}) diff --git a/src/api/manage/management_chat.go b/src/api/manage/management_chat.go index fd9c89b27..19c6713dd 100644 --- a/src/api/manage/management_chat.go +++ b/src/api/manage/management_chat.go @@ -125,7 +125,7 @@ func ManagementSendMsg(c *gin.Context) { c.JSON(http.StatusOK, gin.H{ "errCode": reply.ErrCode, "errMsg": reply.ErrMsg, - "sendTime": reply.SendTime, + "sendTime": "", "msgID": reply.ClientMsgID, }) diff --git a/src/api/open_im_api.go b/src/api/open_im_api.go index 6065ea7e7..674597203 100644 --- a/src/api/open_im_api.go +++ b/src/api/open_im_api.go @@ -86,6 +86,7 @@ func main() { chatGroup.POST("/newest_seq", apiChat.UserNewestSeq) chatGroup.POST("/pull_msg", apiChat.UserPullMsg) chatGroup.POST("/send_msg", apiChat.UserSendMsg) + chatGroup.POST("/pull_msg_by_seq", apiChat.UserPullMsgBySeqList) } //Manager managementGroup := r.Group("/manager") diff --git a/src/common/constant/constant.go b/src/common/constant/constant.go index 7a8f0d1ee..2d3d0d799 100644 --- a/src/common/constant/constant.go +++ b/src/common/constant/constant.go @@ -17,10 +17,12 @@ const ( RefuseFriendFlag = -1 //Websocket Protocol - WSGetNewestSeq = 1001 - WSPullMsg = 1002 - WSSendMsg = 1003 - WSPushMsg = 2001 + WSGetNewestSeq = 1001 + WSPullMsg = 1002 + WSSendMsg = 1003 + WSPullMsgBySeqList = 1004 + WSPushMsg = 2001 + WSDataError = 3001 ///ContentType //UserRelated diff --git a/src/common/db/mongoModel.go b/src/common/db/mongoModel.go index 3d0a7b4aa..a6e2651fe 100644 --- a/src/common/db/mongoModel.go +++ b/src/common/db/mongoModel.go @@ -3,6 +3,7 @@ package db import ( "Open_IM/src/common/config" "Open_IM/src/common/constant" + "Open_IM/src/common/log" pbMsg "Open_IM/src/proto/chat" "errors" "github.com/golang/protobuf/proto" @@ -28,8 +29,8 @@ type GroupMember struct { UIDList []string } -func (d *DataBases) GetUserChat(uid string, seqBegin, seqEnd int64) (SingleMsg []*pbMsg.MsgFormat, GroupMsg []*pbMsg.MsgFormat, MaxSeq int64, MinSeq int64, err error) { - count := 0 +func (d *DataBases) GetMsgBySeqRange(uid string, seqBegin, seqEnd int64) (SingleMsg []*pbMsg.MsgFormat, GroupMsg []*pbMsg.MsgFormat, MaxSeq int64, MinSeq int64, err error) { + var count int64 session := d.mgoSession.Clone() if session == nil { return nil, nil, MaxSeq, MinSeq, errors.New("session == nil") @@ -76,27 +77,85 @@ func (d *DataBases) GetUserChat(uid string, seqBegin, seqEnd int64) (SingleMsg [ GroupMsg = append(GroupMsg, temp) } count++ + if count == (seqEnd - seqBegin + 1) { + break + } } } return SingleMsg, GroupMsg, MaxSeq, MinSeq, nil } +func (d *DataBases) GetMsgBySeqList(uid string, seqList []int64) (SingleMsg []*pbMsg.MsgFormat, GroupMsg []*pbMsg.MsgFormat, MaxSeq int64, MinSeq int64, err error) { + count := 0 + session := d.mgoSession.Clone() + if session == nil { + return nil, nil, MaxSeq, MinSeq, errors.New("session == nil") + } + defer session.Close() -func (d *DataBases) SaveUserChat(uid string, sendTime int64, m proto.Message) error { + c := session.DB(config.Config.Mongo.DBDatabase).C(cChat) + + sChat := UserChat{} + if err = c.Find(bson.M{"uid": uid}).One(&sChat); err != nil { + return nil, nil, MaxSeq, MinSeq, err + } + pChat := pbMsg.MsgSvrToPushSvrChatMsg{} + for i := 0; i < len(sChat.Msg); i++ { + temp := new(pbMsg.MsgFormat) + if err = proto.Unmarshal(sChat.Msg[i].Msg, &pChat); err != nil { + return nil, nil, MaxSeq, MinSeq, err + } + if isContainInt64(pChat.RecvSeq, seqList) { + temp.SendID = pChat.SendID + temp.RecvID = pChat.RecvID + temp.MsgFrom = pChat.MsgFrom + temp.Seq = pChat.RecvSeq + temp.ServerMsgID = pChat.MsgID + temp.SendTime = pChat.SendTime + temp.Content = pChat.Content + temp.ContentType = pChat.ContentType + temp.SenderPlatformID = pChat.PlatformID + temp.ClientMsgID = pChat.ClientMsgID + temp.SenderFaceURL = pChat.SenderFaceURL + temp.SenderNickName = pChat.SenderNickName + if pChat.RecvSeq > MaxSeq { + MaxSeq = pChat.RecvSeq + } + if count == 0 { + MinSeq = pChat.RecvSeq + } + if pChat.RecvSeq < MinSeq { + MinSeq = pChat.RecvSeq + } + if pChat.SessionType == constant.SingleChatType { + SingleMsg = append(SingleMsg, temp) + } else { + GroupMsg = append(GroupMsg, temp) + } + count++ + if count == len(seqList) { + break + } + } + } + return SingleMsg, GroupMsg, MaxSeq, MinSeq, nil +} +func (d *DataBases) SaveUserChat(uid string, sendTime int64, m proto.Message) error { + newTime := getCurrentTimestampByMill() session := d.mgoSession.Clone() if session == nil { return errors.New("session == nil") } defer session.Close() - + log.NewInfo("", "get mgoSession cost time", getCurrentTimestampByMill()-newTime) c := session.DB(config.Config.Mongo.DBDatabase).C(cChat) n, err := c.Find(bson.M{"uid": uid}).Count() if err != nil { return err } - + log.NewInfo("", "find mgo uid cost time", getCurrentTimestampByMill()-newTime) sMsg := MsgInfo{} sMsg.SendTime = sendTime if sMsg.Msg, err = proto.Marshal(m); err != nil { @@ -117,7 +176,7 @@ func (d *DataBases) SaveUserChat(uid string, sendTime int64, m proto.Message) er return err } } - + log.NewInfo("", "insert mgo data cost time", getCurrentTimestampByMill()-newTime) return nil } @@ -231,3 +290,17 @@ func (d *DataBases) DelGroupMember(groupID, uid string) error { return nil } +func isContainInt64(target int64, List []int64) bool { + + for _, element := range List { + + if target == element { + return true + } + } + return false + +} +func getCurrentTimestampByMill() int64 { + return time.Now().UnixNano() / 1e6 +} diff --git a/src/msg_gateway/gate/logic.go b/src/msg_gateway/gate/logic.go index a79fd25c6..2f99fa8e7 100644 --- a/src/msg_gateway/gate/logic.go +++ b/src/msg_gateway/gate/logic.go @@ -9,11 +9,13 @@ import ( "Open_IM/src/utils" "context" "encoding/json" + "fmt" "github.com/gorilla/websocket" + "runtime" "strings" ) -func (ws *WServer) msgParse(conn *websocket.Conn, jsonMsg []byte) { +func (ws *WServer) msgParse(conn *UserConn, jsonMsg []byte) { //ws online debug data //{"ReqIdentifier":1001,"Token":"123","SendID":"c4ca4238a0b923820dcc509a6f75849b","Time":"123","OperationID":"123","MsgIncr":0} //{"ReqIdentifier":1002,"Token":"123","SendID":"c4ca4238a0b923820dcc509a6f75849b","Time":"123","OperationID":"123","MsgIncr":0,"SeqBegin":1,"SeqEnd":6} @@ -23,32 +25,43 @@ func (ws *WServer) msgParse(conn *websocket.Conn, jsonMsg []byte) { m := Req{} if err := json.Unmarshal(jsonMsg, &m); err != nil { log.ErrorByKv("ws json Unmarshal err", "", "err", err.Error()) - ws.sendErrMsg(conn, 200, err.Error()) + ws.sendErrMsg(conn, 200, err.Error(), constant.WSDataError, "") + err = conn.Close() + if err != nil { + log.NewError("", "ws close err", err.Error()) + } return } if err := validate.Struct(m); err != nil { log.ErrorByKv("ws args validate err", "", "err", err.Error()) - ws.sendErrMsg(conn, 201, err.Error()) + ws.sendErrMsg(conn, 201, err.Error(), m.ReqIdentifier, m.MsgIncr) return } if !utils.VerifyToken(m.Token, m.SendID) { - ws.sendErrMsg(conn, 202, "token validate err") + ws.sendErrMsg(conn, 202, "token validate err", m.ReqIdentifier, m.MsgIncr) return } + fmt.Println("test fmt Basic Info Authentication Success", m.OperationID, "reqIdentifier", m.ReqIdentifier, "sendID", m.SendID) log.InfoByKv("Basic Info Authentication Success", m.OperationID, "reqIdentifier", m.ReqIdentifier, "sendID", m.SendID) switch m.ReqIdentifier { case constant.WSGetNewestSeq: - ws.newestSeqReq(conn, &m) + go ws.newestSeqReq(conn, &m) case constant.WSPullMsg: - ws.pullMsgReq(conn, &m) + go ws.pullMsgReq(conn, &m) case constant.WSSendMsg: - ws.sendMsgReq(conn, &m) + sendTime := utils.GetCurrentTimestampByNano() + go ws.sendMsgReq(conn, &m, sendTime) + case constant.WSPullMsgBySeqList: + go ws.pullMsgBySeqListReq(conn, &m) default: } + + log.NewInfo("", "goroutine num is ", runtime.NumGoroutine()) + } -func (ws *WServer) newestSeqResp(conn *websocket.Conn, m *Req, pb *pbChat.GetNewSeqResp) { +func (ws *WServer) newestSeqResp(conn *UserConn, m *Req, pb *pbChat.GetNewSeqResp) { mReply := make(map[string]interface{}) mData := make(map[string]interface{}) mReply["reqIdentifier"] = m.ReqIdentifier @@ -59,7 +72,7 @@ func (ws *WServer) newestSeqResp(conn *websocket.Conn, m *Req, pb *pbChat.GetNew mReply["data"] = mData ws.sendMsg(conn, mReply) } -func (ws *WServer) newestSeqReq(conn *websocket.Conn, m *Req) { +func (ws *WServer) newestSeqReq(conn *UserConn, m *Req) { log.InfoByKv("Ws call success to getNewSeq", m.OperationID, "Parameters", m) pbData := pbChat.GetNewSeqReq{} pbData.UserID = m.SendID @@ -79,7 +92,7 @@ func (ws *WServer) newestSeqReq(conn *websocket.Conn, m *Req) { } -func (ws *WServer) pullMsgResp(conn *websocket.Conn, m *Req, pb *pbChat.PullMessageResp) { +func (ws *WServer) pullMsgResp(conn *UserConn, m *Req, pb *pbChat.PullMessageResp) { mReply := make(map[string]interface{}) msg := make(map[string]interface{}) mReply["reqIdentifier"] = m.ReqIdentifier @@ -104,7 +117,7 @@ func (ws *WServer) pullMsgResp(conn *websocket.Conn, m *Req, pb *pbChat.PullMess } -func (ws *WServer) pullMsgReq(conn *websocket.Conn, m *Req) { +func (ws *WServer) pullMsgReq(conn *UserConn, m *Req) { log.InfoByKv("Ws call success to pullMsgReq", m.OperationID, "Parameters", m) reply := new(pbChat.PullMessageResp) isPass, errCode, errMsg, data := ws.argsValidate(m, constant.WSPullMsg) @@ -130,21 +143,55 @@ func (ws *WServer) pullMsgReq(conn *websocket.Conn, m *Req) { ws.pullMsgResp(conn, m, reply) } } +func (ws *WServer) pullMsgBySeqListReq(conn *UserConn, m *Req) { + log.NewError(m.OperationID, "Ws call success to pullMsgBySeqListReq", m) + reply := new(pbChat.PullMessageResp) + isPass, errCode, errMsg, data := ws.argsValidate(m, constant.WSPullMsgBySeqList) + if isPass { + pbData := pbChat.PullMessageBySeqListReq{} + pbData.SeqList = data.(SeqListData).SeqList + pbData.UserID = m.SendID + pbData.OperationID = m.OperationID + grpcConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImOfflineMessageName) + msgClient := pbChat.NewChatClient(grpcConn) + reply, err := msgClient.PullMessageBySeqList(context.Background(), &pbData) + if err != nil { + log.NewError(pbData.OperationID, "pullMsgBySeqListReq err", err.Error()) + return + } + log.NewInfo(pbData.OperationID, "rpc call success to pullMsgBySeqListReq", reply.String(), reply.GetMaxSeq(), reply.GetMinSeq(), len(reply.GetSingleUserMsg()), len(reply.GetGroupUserMsg())) + ws.pullMsgResp(conn, m, reply) + } else { + reply.ErrCode = errCode + reply.ErrMsg = errMsg + ws.pullMsgResp(conn, m, reply) + } +} -func (ws *WServer) sendMsgResp(conn *websocket.Conn, m *Req, pb *pbChat.UserSendMsgResp) { - mReply := make(map[string]interface{}) +func (ws *WServer) sendMsgResp(conn *UserConn, m *Req, pb *pbChat.UserSendMsgResp, sendTime int64) { + // := make(map[string]interface{}) mReplyData := make(map[string]interface{}) - mReply["reqIdentifier"] = m.ReqIdentifier - mReply["msgIncr"] = m.MsgIncr - mReply["errCode"] = pb.GetErrCode() - mReply["errMsg"] = pb.GetErrMsg() + //mReply["reqIdentifier"] = m.ReqIdentifier + //mReply["msgIncr"] = m.MsgIncr + //mReply["errCode"] = pb.GetErrCode() + //mReply["errMsg"] = pb.GetErrMsg() mReplyData["clientMsgID"] = pb.GetClientMsgID() mReplyData["serverMsgID"] = pb.GetServerMsgID() - mReply["data"] = mReplyData + mReplyData["sendTime"] = utils.Int64ToString(sendTime) + //mReply["data"] = mReplyData + mReply := Resp{ + ReqIdentifier: m.ReqIdentifier, + MsgIncr: m.MsgIncr, + ErrCode: pb.GetErrCode(), + ErrMsg: pb.GetErrMsg(), + OperationID: m.OperationID, + Data: mReplyData, + } + fmt.Println("test fmt send msg resp", m.OperationID, "reqIdentifier", m.ReqIdentifier, "sendID", m.SendID) ws.sendMsg(conn, mReply) } -func (ws *WServer) sendMsgReq(conn *websocket.Conn, m *Req) { +func (ws *WServer) sendMsgReq(conn *UserConn, m *Req, sendTime int64) { log.InfoByKv("Ws call success to sendMsgReq", m.OperationID, "Parameters", m) reply := new(pbChat.UserSendMsgResp) isPass, errCode, errMsg, pData := ws.argsValidate(m, constant.WSSendMsg) @@ -165,32 +212,43 @@ func (ws *WServer) sendMsgReq(conn *websocket.Conn, m *Req) { Options: utils.MapToJsonString(data.Options), ClientMsgID: data.ClientMsgID, OffLineInfo: utils.MapToJsonString(data.OfflineInfo), + SendTime: sendTime, } log.InfoByKv("Ws call success to sendMsgReq", m.OperationID, "Parameters", m) + time := utils.GetCurrentTimestampBySecond() etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImOfflineMessageName) client := pbChat.NewChatClient(etcdConn) - log.Info("", "", "api UserSendMsg call, api call rpc...") - reply, _ := client.UserSendMsg(context.Background(), &pbData) + log.Info("", "", "ws UserSendMsg call, api call rpc...") + reply, err := client.UserSendMsg(context.Background(), &pbData) + if err != nil { + log.NewError(pbData.OperationID, "UserSendMsg err", err.Error()) + reply.ErrCode = 100 + reply.ErrMsg = "rpc err" + } + log.NewInfo(pbData.OperationID, "sendMsgReq call rpc cost time ", utils.GetCurrentTimestampBySecond()-time) log.Info("", "", "api UserSendMsg call end..., [data: %s] [reply: %s]", pbData.String(), reply.String()) - ws.sendMsgResp(conn, m, reply) + ws.sendMsgResp(conn, m, reply, sendTime) + log.NewInfo(pbData.OperationID, "sendMsgResp end cost time ", utils.GetCurrentTimestampBySecond()-time) } else { reply.ErrCode = errCode reply.ErrMsg = errMsg - ws.sendMsgResp(conn, m, reply) + ws.sendMsgResp(conn, m, reply, sendTime) } } -func (ws *WServer) sendMsg(conn *websocket.Conn, mReply map[string]interface{}) { +func (ws *WServer) sendMsg(conn *UserConn, mReply interface{}) { bMsg, _ := json.Marshal(mReply) err := ws.writeMsg(conn, websocket.TextMessage, bMsg) if err != nil { log.ErrorByKv("WS WriteMsg error", "", "userIP", conn.RemoteAddr().String(), "userUid", ws.getUserUid(conn), "error", err, "mReply", mReply) } } -func (ws *WServer) sendErrMsg(conn *websocket.Conn, errCode int32, errMsg string) { +func (ws *WServer) sendErrMsg(conn *UserConn, errCode int32, errMsg string, reqIdentifier int32, msgIncr string) { mReply := make(map[string]interface{}) mReply["errCode"] = errCode mReply["errMsg"] = errMsg + mReply["reqIdentifier"] = reqIdentifier + mReply["msgIncr"] = msgIncr ws.sendMsg(conn, mReply) } diff --git a/src/msg_gateway/gate/rpc_server.go b/src/msg_gateway/gate/rpc_server.go index e9aa28033..bab04bb96 100644 --- a/src/msg_gateway/gate/rpc_server.go +++ b/src/msg_gateway/gate/rpc_server.go @@ -81,10 +81,12 @@ func (r *RPCServer) MsgToUser(_ context.Context, in *pbRelay.MsgToUserReq) (*pbR case constant.GroupChatType: RecvID = strings.Split(in.GetRecvID(), " ")[0] } - log.InfoByKv("test", in.OperationID, "wsUserToConn", ws.wsUserToConn) - for key, conn := range ws.wsUserToConn { - UIDAndPID := strings.Split(key, " ") - if UIDAndPID[0] == RecvID { + var tag bool + a := genUidPlatformArray(RecvID) + for _, v := range a { + if conn := ws.getUserConn(v); conn != nil { + UIDAndPID := strings.Split(v, " ") + tag = true resultCode := sendMsgToUser(conn, bMsg, in, UIDAndPID[1], UIDAndPID[0]) temp := &pbRelay.SingleMsgToUser{ ResultCode: resultCode, @@ -94,6 +96,25 @@ func (r *RPCServer) MsgToUser(_ context.Context, in *pbRelay.MsgToUserReq) (*pbR resp = append(resp, temp) } } + if !tag { + log.NewError(in.OperationID, "push err ,ws conn not in map", in.String()) + } + //for key, conn := range ws.wsUserToConn { + // UIDAndPID := strings.Split(key, " ") + // if UIDAndPID[0] == RecvID { + // tag = true + // resultCode := sendMsgToUser(conn, bMsg, in, UIDAndPID[1], UIDAndPID[0]) + // temp := &pbRelay.SingleMsgToUser{ + // ResultCode: resultCode, + // RecvID: UIDAndPID[0], + // RecvPlatFormID: utils.PlatformNameToID(UIDAndPID[1]), + // } + // resp = append(resp, temp) + // } + //} + //if !tag { + // log.NewError(in.OperationID, "push err ,ws conn not in map", in.String()) + //} //switch in.GetContentType() { //case constant.SyncSenderMsg: // log.InfoByKv("come sync", in.OperationID, "args", in.String()) @@ -143,7 +164,7 @@ func (r *RPCServer) MsgToUser(_ context.Context, in *pbRelay.MsgToUserReq) (*pbR }, nil } -func sendMsgToUser(conn *websocket.Conn, bMsg []byte, in *pbRelay.MsgToUserReq, RecvPlatForm, RecvID string) (ResultCode int64) { +func sendMsgToUser(conn *UserConn, bMsg []byte, in *pbRelay.MsgToUserReq, RecvPlatForm, RecvID string) (ResultCode int64) { err := ws.writeMsg(conn, websocket.TextMessage, bMsg) if err != nil { log.ErrorByKv("PushMsgToUser is failed By Ws", "", "Addr", conn.RemoteAddr().String(), @@ -157,3 +178,9 @@ func sendMsgToUser(conn *websocket.Conn, bMsg []byte, in *pbRelay.MsgToUserReq, } } +func genUidPlatformArray(uid string) (array []string) { + for i := 1; i <= utils.LinuxPlatformID; i++ { + array = append(array, uid+" "+utils.PlatformIDToName(int32(i))) + } + return array +} diff --git a/src/msg_gateway/gate/validate.go b/src/msg_gateway/gate/validate.go index a7a75f8e8..57ec1877d 100644 --- a/src/msg_gateway/gate/validate.go +++ b/src/msg_gateway/gate/validate.go @@ -13,13 +13,22 @@ import ( ) type Req struct { - ReqIdentifier int32 `json:"reqIdentifier" validate:"required"` - Token string `json:"token" validate:"required"` - SendID string `json:"sendID" validate:"required"` - OperationID string `json:"operationID" validate:"required"` - MsgIncr int32 `json:"msgIncr" validate:"required"` - Data map[string]interface{} `json:"data"` + ReqIdentifier int32 `json:"reqIdentifier" validate:"required"` + Token string `json:"token" validate:"required"` + SendID string `json:"sendID" validate:"required"` + OperationID string `json:"operationID" validate:"required"` + MsgIncr string `json:"msgIncr" validate:"required"` + Data interface{} `json:"data"` } +type Resp struct { + ReqIdentifier int32 `json:"reqIdentifier"` + MsgIncr string `json:"msgIncr"` + OperationID string `json:"operationID"` + ErrCode int32 `json:"errCode"` + ErrMsg string `json:"errMsg"` + Data interface{} `json:"data"` +} + type SeqData struct { SeqBegin int64 `mapstructure:"seqBegin" validate:"required"` SeqEnd int64 `mapstructure:"seqEnd" validate:"required"` @@ -30,13 +39,16 @@ type MsgData struct { MsgFrom int32 `mapstructure:"msgFrom" validate:"required"` ContentType int32 `mapstructure:"contentType" validate:"required"` RecvID string `mapstructure:"recvID" validate:"required"` - ForceList []string `mapstructure:"forceList" validate:"required"` + ForceList []string `mapstructure:"forceList"` Content string `mapstructure:"content" validate:"required"` Options map[string]interface{} `mapstructure:"options" validate:"required"` ClientMsgID string `mapstructure:"clientMsgID" validate:"required"` OfflineInfo map[string]interface{} `mapstructure:"offlineInfo" validate:"required"` Ext map[string]interface{} `mapstructure:"ext"` } +type SeqListData struct { + SeqList []int64 `mapstructure:"seqList" validate:"required"` +} func (ws *WServer) argsValidate(m *Req, r int32) (isPass bool, errCode int32, errMsg string, data interface{}) { switch r { @@ -44,6 +56,8 @@ func (ws *WServer) argsValidate(m *Req, r int32) (isPass bool, errCode int32, er data = SeqData{} case constant.WSSendMsg: data = MsgData{} + case constant.WSPullMsgBySeqList: + data = SeqListData{} default: } if err := mapstructure.WeakDecode(m.Data, &data); err != nil { diff --git a/src/msg_gateway/gate/ws_server.go b/src/msg_gateway/gate/ws_server.go index ffc14680d..122e525cb 100644 --- a/src/msg_gateway/gate/ws_server.go +++ b/src/msg_gateway/gate/ws_server.go @@ -6,23 +6,28 @@ import ( "Open_IM/src/utils" "github.com/gorilla/websocket" "net/http" + "sync" "time" ) +type UserConn struct { + *websocket.Conn + w *sync.Mutex +} type WServer struct { wsAddr string wsMaxConnNum int wsUpGrader *websocket.Upgrader - wsConnToUser map[*websocket.Conn]string - wsUserToConn map[string]*websocket.Conn + wsConnToUser map[*UserConn]string + wsUserToConn map[string]*UserConn } func (ws *WServer) onInit(wsPort int) { ip := utils.ServerIP ws.wsAddr = ip + ":" + utils.IntToString(wsPort) ws.wsMaxConnNum = config.Config.LongConnSvr.WebsocketMaxConnNum - ws.wsConnToUser = make(map[*websocket.Conn]string) - ws.wsUserToConn = make(map[string]*websocket.Conn) + ws.wsConnToUser = make(map[*UserConn]string) + ws.wsUserToConn = make(map[string]*UserConn) ws.wsUpGrader = &websocket.Upgrader{ HandshakeTimeout: time.Duration(config.Config.LongConnSvr.WebsocketTimeOut) * time.Second, ReadBufferSize: config.Config.LongConnSvr.WebsocketMaxMsgLen, @@ -49,35 +54,36 @@ func (ws *WServer) wsHandler(w http.ResponseWriter, r *http.Request) { //Connection mapping relationship, //userID+" "+platformID->conn SendID := query["sendID"][0] + " " + utils.PlatformIDToName(int32(utils.StringToInt64(query["platformID"][0]))) - ws.addUserConn(SendID, conn) - go ws.readMsg(conn) + //Initialize a lock for each user + newConn := &UserConn{conn, new(sync.Mutex)} + ws.addUserConn(SendID, newConn) + go ws.readMsg(newConn) } } } -func (ws *WServer) readMsg(conn *websocket.Conn) { +func (ws *WServer) readMsg(conn *UserConn) { for { - msgType, msg, err := conn.ReadMessage() + _, msg, err := conn.ReadMessage() if err != nil { log.ErrorByKv("WS ReadMsg error", "", "userIP", conn.RemoteAddr().String(), "userUid", ws.getUserUid(conn), "error", err) ws.delUserConn(conn) return } else { - log.ErrorByKv("test", "", "msgType", msgType, "userIP", conn.RemoteAddr().String(), "userUid", ws.getUserUid(conn)) + //log.ErrorByKv("test", "", "msgType", msgType, "userIP", conn.RemoteAddr().String(), "userUid", ws.getUserUid(conn)) } ws.msgParse(conn, msg) //ws.writeMsg(conn, 1, chat) } } - -func (ws *WServer) writeMsg(conn *websocket.Conn, a int, msg []byte) error { - rwLock.Lock() - defer rwLock.Unlock() +func (ws *WServer) writeMsg(conn *UserConn, a int, msg []byte) error { + conn.w.Lock() + defer conn.w.Unlock() return conn.WriteMessage(a, msg) } -func (ws *WServer) addUserConn(uid string, conn *websocket.Conn) { +func (ws *WServer) addUserConn(uid string, conn *UserConn) { rwLock.Lock() defer rwLock.Unlock() if oldConn, ok := ws.wsUserToConn[uid]; ok { @@ -95,7 +101,7 @@ func (ws *WServer) addUserConn(uid string, conn *websocket.Conn) { } -func (ws *WServer) delUserConn(conn *websocket.Conn) { +func (ws *WServer) delUserConn(conn *UserConn) { rwLock.Lock() defer rwLock.Unlock() var uidPlatform string @@ -111,12 +117,12 @@ func (ws *WServer) delUserConn(conn *websocket.Conn) { } err := conn.Close() if err != nil { - log.ErrorByKv("close err", "", "uid", uidPlatform, "conn", conn) + log.ErrorByKv("close err", "", "uid", uidPlatform) } } -func (ws *WServer) getUserConn(uid string) *websocket.Conn { +func (ws *WServer) getUserConn(uid string) *UserConn { rwLock.RLock() defer rwLock.RUnlock() if conn, ok := ws.wsUserToConn[uid]; ok { @@ -124,7 +130,7 @@ func (ws *WServer) getUserConn(uid string) *websocket.Conn { } return nil } -func (ws *WServer) getUserUid(conn *websocket.Conn) string { +func (ws *WServer) getUserUid(conn *UserConn) string { rwLock.RLock() defer rwLock.RUnlock() diff --git a/src/msg_transfer/logic/db.go b/src/msg_transfer/logic/db.go index 93dccfc2b..65eaf691e 100644 --- a/src/msg_transfer/logic/db.go +++ b/src/msg_transfer/logic/db.go @@ -3,15 +3,20 @@ package logic import ( "Open_IM/src/common/db" "Open_IM/src/common/db/mysql_model/im_mysql_model" + "Open_IM/src/common/log" pbMsg "Open_IM/src/proto/chat" + "Open_IM/src/utils" ) func saveUserChat(uid string, pbMsg *pbMsg.MsgSvrToPushSvrChatMsg) error { + time := utils.GetCurrentTimestampByMill() seq, err := db.DB.IncrUserSeq(uid) if err != nil { + log.NewError(pbMsg.OperationID, "data insert to redis err", err.Error(), pbMsg.String()) return err } pbMsg.RecvSeq = seq + log.NewInfo(pbMsg.OperationID, "IncrUserSeq cost time", utils.GetCurrentTimestampByMill()-time) return db.DB.SaveUserChat(uid, pbMsg.SendTime, pbMsg) } diff --git a/src/msg_transfer/logic/history_msg_handler.go b/src/msg_transfer/logic/history_msg_handler.go index bea5c20b4..c547e449b 100644 --- a/src/msg_transfer/logic/history_msg_handler.go +++ b/src/msg_transfer/logic/history_msg_handler.go @@ -33,6 +33,7 @@ func (mc *HistoryConsumerHandler) Init() { func (mc *HistoryConsumerHandler) handleChatWs2Mongo(msg []byte, msgKey string) { log.InfoByKv("chat come mongo!!!", "", "chat", string(msg)) + time := utils.GetCurrentTimestampBySecond() pbData := pbMsg.WSToMsgSvrChatMsg{} err := proto.Unmarshal(msg, &pbData) if err != nil { @@ -78,11 +79,13 @@ func (mc *HistoryConsumerHandler) handleChatWs2Mongo(msg []byte, msgKey string) //} } + log.NewInfo(pbSaveData.OperationID, "saveUserChat cost time ", utils.GetCurrentTimestampBySecond()-time) } if msgKey == pbSaveData.RecvID { pbSaveData.Options = pbData.Options pbSaveData.OfflineInfo = pbData.OfflineInfo sendMessageToPush(&pbSaveData) + log.NewInfo(pbSaveData.OperationID, "sendMessageToPush cost time ", utils.GetCurrentTimestampBySecond()-time) } log.InfoByKv("msg_transfer handle topic success...", "", "") diff --git a/src/msg_transfer/logic/init.go b/src/msg_transfer/logic/init.go index 03a7d2c33..cd7f10106 100644 --- a/src/msg_transfer/logic/init.go +++ b/src/msg_transfer/logic/init.go @@ -20,6 +20,6 @@ func Init() { } func Run() { //register mysqlConsumerHandler to - go persistentCH.persistentConsumerGroup.RegisterHandleAndConsumer(&persistentCH) + //go persistentCH.persistentConsumerGroup.RegisterHandleAndConsumer(&persistentCH) go historyCH.historyConsumerGroup.RegisterHandleAndConsumer(&historyCH) } diff --git a/src/proto/chat/chat.pb.go b/src/proto/chat/chat.pb.go index f98855332..87867262a 100644 --- a/src/proto/chat/chat.pb.go +++ b/src/proto/chat/chat.pb.go @@ -50,7 +50,7 @@ func (m *WSToMsgSvrChatMsg) Reset() { *m = WSToMsgSvrChatMsg{} } func (m *WSToMsgSvrChatMsg) String() string { return proto.CompactTextString(m) } func (*WSToMsgSvrChatMsg) ProtoMessage() {} func (*WSToMsgSvrChatMsg) Descriptor() ([]byte, []int) { - return fileDescriptor_chat_34beadf7348900d2, []int{0} + return fileDescriptor_chat_4f51bfe711d80421, []int{0} } func (m *WSToMsgSvrChatMsg) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_WSToMsgSvrChatMsg.Unmarshal(m, b) @@ -215,7 +215,7 @@ func (m *MsgSvrToPushSvrChatMsg) Reset() { *m = MsgSvrToPushSvrChatMsg{} func (m *MsgSvrToPushSvrChatMsg) String() string { return proto.CompactTextString(m) } func (*MsgSvrToPushSvrChatMsg) ProtoMessage() {} func (*MsgSvrToPushSvrChatMsg) Descriptor() ([]byte, []int) { - return fileDescriptor_chat_34beadf7348900d2, []int{1} + return fileDescriptor_chat_4f51bfe711d80421, []int{1} } func (m *MsgSvrToPushSvrChatMsg) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MsgSvrToPushSvrChatMsg.Unmarshal(m, b) @@ -361,7 +361,7 @@ func (m *PullMessageReq) Reset() { *m = PullMessageReq{} } func (m *PullMessageReq) String() string { return proto.CompactTextString(m) } func (*PullMessageReq) ProtoMessage() {} func (*PullMessageReq) Descriptor() ([]byte, []int) { - return fileDescriptor_chat_34beadf7348900d2, []int{2} + return fileDescriptor_chat_4f51bfe711d80421, []int{2} } func (m *PullMessageReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_PullMessageReq.Unmarshal(m, b) @@ -425,7 +425,7 @@ func (m *PullMessageResp) Reset() { *m = PullMessageResp{} } func (m *PullMessageResp) String() string { return proto.CompactTextString(m) } func (*PullMessageResp) ProtoMessage() {} func (*PullMessageResp) Descriptor() ([]byte, []int) { - return fileDescriptor_chat_34beadf7348900d2, []int{3} + return fileDescriptor_chat_4f51bfe711d80421, []int{3} } func (m *PullMessageResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_PullMessageResp.Unmarshal(m, b) @@ -487,6 +487,60 @@ func (m *PullMessageResp) GetGroupUserMsg() []*GatherFormat { return nil } +type PullMessageBySeqListReq struct { + UserID string `protobuf:"bytes,1,opt,name=UserID" json:"UserID,omitempty"` + OperationID string `protobuf:"bytes,2,opt,name=OperationID" json:"OperationID,omitempty"` + SeqList []int64 `protobuf:"varint,3,rep,packed,name=seqList" json:"seqList,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +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_chat_4f51bfe711d80421, []int{4} +} +func (m *PullMessageBySeqListReq) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_PullMessageBySeqListReq.Unmarshal(m, b) +} +func (m *PullMessageBySeqListReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_PullMessageBySeqListReq.Marshal(b, m, deterministic) +} +func (dst *PullMessageBySeqListReq) XXX_Merge(src proto.Message) { + xxx_messageInfo_PullMessageBySeqListReq.Merge(dst, src) +} +func (m *PullMessageBySeqListReq) XXX_Size() int { + return xxx_messageInfo_PullMessageBySeqListReq.Size(m) +} +func (m *PullMessageBySeqListReq) XXX_DiscardUnknown() { + xxx_messageInfo_PullMessageBySeqListReq.DiscardUnknown(m) +} + +var xxx_messageInfo_PullMessageBySeqListReq proto.InternalMessageInfo + +func (m *PullMessageBySeqListReq) GetUserID() string { + if m != nil { + return m.UserID + } + return "" +} + +func (m *PullMessageBySeqListReq) GetOperationID() string { + if m != nil { + return m.OperationID + } + return "" +} + +func (m *PullMessageBySeqListReq) GetSeqList() []int64 { + if m != nil { + return m.SeqList + } + return nil +} + type GetNewSeqReq struct { UserID string `protobuf:"bytes,1,opt,name=UserID" json:"UserID,omitempty"` OperationID string `protobuf:"bytes,2,opt,name=OperationID" json:"OperationID,omitempty"` @@ -499,7 +553,7 @@ func (m *GetNewSeqReq) Reset() { *m = GetNewSeqReq{} } func (m *GetNewSeqReq) String() string { return proto.CompactTextString(m) } func (*GetNewSeqReq) ProtoMessage() {} func (*GetNewSeqReq) Descriptor() ([]byte, []int) { - return fileDescriptor_chat_34beadf7348900d2, []int{4} + return fileDescriptor_chat_4f51bfe711d80421, []int{5} } func (m *GetNewSeqReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetNewSeqReq.Unmarshal(m, b) @@ -546,7 +600,7 @@ func (m *GetNewSeqResp) Reset() { *m = GetNewSeqResp{} } func (m *GetNewSeqResp) String() string { return proto.CompactTextString(m) } func (*GetNewSeqResp) ProtoMessage() {} func (*GetNewSeqResp) Descriptor() ([]byte, []int) { - return fileDescriptor_chat_34beadf7348900d2, []int{5} + return fileDescriptor_chat_4f51bfe711d80421, []int{6} } func (m *GetNewSeqResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetNewSeqResp.Unmarshal(m, b) @@ -601,7 +655,7 @@ func (m *GatherFormat) Reset() { *m = GatherFormat{} } func (m *GatherFormat) String() string { return proto.CompactTextString(m) } func (*GatherFormat) ProtoMessage() {} func (*GatherFormat) Descriptor() ([]byte, []int) { - return fileDescriptor_chat_34beadf7348900d2, []int{6} + return fileDescriptor_chat_4f51bfe711d80421, []int{7} } func (m *GatherFormat) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GatherFormat.Unmarshal(m, b) @@ -669,7 +723,7 @@ func (m *MsgFormat) Reset() { *m = MsgFormat{} } func (m *MsgFormat) String() string { return proto.CompactTextString(m) } func (*MsgFormat) ProtoMessage() {} func (*MsgFormat) Descriptor() ([]byte, []int) { - return fileDescriptor_chat_34beadf7348900d2, []int{7} + return fileDescriptor_chat_4f51bfe711d80421, []int{8} } func (m *MsgFormat) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MsgFormat.Unmarshal(m, b) @@ -791,6 +845,7 @@ type UserSendMsgReq struct { ClientMsgID string `protobuf:"bytes,15,opt,name=ClientMsgID" json:"ClientMsgID,omitempty"` OffLineInfo string `protobuf:"bytes,16,opt,name=OffLineInfo" json:"OffLineInfo,omitempty"` Ex string `protobuf:"bytes,17,opt,name=Ex" json:"Ex,omitempty"` + SendTime int64 `protobuf:"varint,18,opt,name=sendTime" json:"sendTime,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -800,7 +855,7 @@ func (m *UserSendMsgReq) Reset() { *m = UserSendMsgReq{} } func (m *UserSendMsgReq) String() string { return proto.CompactTextString(m) } func (*UserSendMsgReq) ProtoMessage() {} func (*UserSendMsgReq) Descriptor() ([]byte, []int) { - return fileDescriptor_chat_34beadf7348900d2, []int{8} + return fileDescriptor_chat_4f51bfe711d80421, []int{9} } func (m *UserSendMsgReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_UserSendMsgReq.Unmarshal(m, b) @@ -939,13 +994,19 @@ func (m *UserSendMsgReq) GetEx() string { return "" } +func (m *UserSendMsgReq) GetSendTime() int64 { + if m != nil { + return m.SendTime + } + return 0 +} + type UserSendMsgResp struct { ErrCode int32 `protobuf:"varint,1,opt,name=ErrCode" json:"ErrCode,omitempty"` ErrMsg string `protobuf:"bytes,2,opt,name=ErrMsg" json:"ErrMsg,omitempty"` ReqIdentifier int32 `protobuf:"varint,3,opt,name=ReqIdentifier" json:"ReqIdentifier,omitempty"` - SendTime int64 `protobuf:"varint,5,opt,name=SendTime" json:"SendTime,omitempty"` - ServerMsgID string `protobuf:"bytes,6,opt,name=ServerMsgID" json:"ServerMsgID,omitempty"` - ClientMsgID string `protobuf:"bytes,7,opt,name=ClientMsgID" json:"ClientMsgID,omitempty"` + ServerMsgID string `protobuf:"bytes,4,opt,name=ServerMsgID" json:"ServerMsgID,omitempty"` + ClientMsgID string `protobuf:"bytes,5,opt,name=ClientMsgID" json:"ClientMsgID,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -955,7 +1016,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_chat_34beadf7348900d2, []int{9} + return fileDescriptor_chat_4f51bfe711d80421, []int{10} } func (m *UserSendMsgResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_UserSendMsgResp.Unmarshal(m, b) @@ -996,13 +1057,6 @@ func (m *UserSendMsgResp) GetReqIdentifier() int32 { return 0 } -func (m *UserSendMsgResp) GetSendTime() int64 { - if m != nil { - return m.SendTime - } - return 0 -} - func (m *UserSendMsgResp) GetServerMsgID() string { if m != nil { return m.ServerMsgID @@ -1022,6 +1076,7 @@ func init() { proto.RegisterType((*MsgSvrToPushSvrChatMsg)(nil), "pbChat.MsgSvrToPushSvrChatMsg") proto.RegisterType((*PullMessageReq)(nil), "pbChat.PullMessageReq") proto.RegisterType((*PullMessageResp)(nil), "pbChat.PullMessageResp") + proto.RegisterType((*PullMessageBySeqListReq)(nil), "pbChat.PullMessageBySeqListReq") proto.RegisterType((*GetNewSeqReq)(nil), "pbChat.GetNewSeqReq") proto.RegisterType((*GetNewSeqResp)(nil), "pbChat.GetNewSeqResp") proto.RegisterType((*GatherFormat)(nil), "pbChat.GatherFormat") @@ -1043,6 +1098,7 @@ const _ = grpc.SupportPackageIsVersion4 type ChatClient interface { GetNewSeq(ctx context.Context, in *GetNewSeqReq, opts ...grpc.CallOption) (*GetNewSeqResp, error) PullMessage(ctx context.Context, in *PullMessageReq, opts ...grpc.CallOption) (*PullMessageResp, error) + PullMessageBySeqList(ctx context.Context, in *PullMessageBySeqListReq, opts ...grpc.CallOption) (*PullMessageResp, error) UserSendMsg(ctx context.Context, in *UserSendMsgReq, opts ...grpc.CallOption) (*UserSendMsgResp, error) } @@ -1072,6 +1128,15 @@ func (c *chatClient) PullMessage(ctx context.Context, in *PullMessageReq, opts . return out, nil } +func (c *chatClient) PullMessageBySeqList(ctx context.Context, in *PullMessageBySeqListReq, opts ...grpc.CallOption) (*PullMessageResp, error) { + out := new(PullMessageResp) + err := grpc.Invoke(ctx, "/pbChat.Chat/PullMessageBySeqList", in, out, c.cc, opts...) + if err != nil { + return nil, err + } + return out, nil +} + func (c *chatClient) UserSendMsg(ctx context.Context, in *UserSendMsgReq, opts ...grpc.CallOption) (*UserSendMsgResp, error) { out := new(UserSendMsgResp) err := grpc.Invoke(ctx, "/pbChat.Chat/UserSendMsg", in, out, c.cc, opts...) @@ -1086,6 +1151,7 @@ func (c *chatClient) UserSendMsg(ctx context.Context, in *UserSendMsgReq, opts . type ChatServer interface { GetNewSeq(context.Context, *GetNewSeqReq) (*GetNewSeqResp, error) PullMessage(context.Context, *PullMessageReq) (*PullMessageResp, error) + PullMessageBySeqList(context.Context, *PullMessageBySeqListReq) (*PullMessageResp, error) UserSendMsg(context.Context, *UserSendMsgReq) (*UserSendMsgResp, error) } @@ -1129,6 +1195,24 @@ func _Chat_PullMessage_Handler(srv interface{}, ctx context.Context, dec func(in return interceptor(ctx, in, info, handler) } +func _Chat_PullMessageBySeqList_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(PullMessageBySeqListReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ChatServer).PullMessageBySeqList(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/pbChat.Chat/PullMessageBySeqList", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ChatServer).PullMessageBySeqList(ctx, req.(*PullMessageBySeqListReq)) + } + return interceptor(ctx, in, info, handler) +} + func _Chat_UserSendMsg_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(UserSendMsgReq) if err := dec(in); err != nil { @@ -1159,6 +1243,10 @@ var _Chat_serviceDesc = grpc.ServiceDesc{ MethodName: "PullMessage", Handler: _Chat_PullMessage_Handler, }, + { + MethodName: "PullMessageBySeqList", + Handler: _Chat_PullMessageBySeqList_Handler, + }, { MethodName: "UserSendMsg", Handler: _Chat_UserSendMsg_Handler, @@ -1168,66 +1256,69 @@ var _Chat_serviceDesc = grpc.ServiceDesc{ Metadata: "chat/chat.proto", } -func init() { proto.RegisterFile("chat/chat.proto", fileDescriptor_chat_34beadf7348900d2) } - -var fileDescriptor_chat_34beadf7348900d2 = []byte{ - // 919 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xb4, 0x56, 0x5f, 0x6b, 0xe3, 0x46, - 0x10, 0xc7, 0x96, 0x2d, 0x5b, 0xe3, 0xbf, 0x59, 0xae, 0xe9, 0x12, 0x4a, 0x31, 0xe6, 0x5a, 0x4c, - 0x1f, 0x52, 0xb8, 0xbe, 0x1c, 0x2d, 0xf4, 0xe1, 0x62, 0x27, 0x15, 0x44, 0xb9, 0x20, 0xf9, 0x28, - 0xf4, 0x4d, 0xe7, 0xac, 0x15, 0x71, 0xb6, 0x24, 0xef, 0x2a, 0x69, 0xfa, 0xd2, 0xaf, 0xd0, 0x7e, - 0xa4, 0xbe, 0xf6, 0xa3, 0xf4, 0x2b, 0x14, 0x0a, 0x65, 0x77, 0x25, 0x6b, 0x57, 0x72, 0x1c, 0x13, - 0xc8, 0x4b, 0xc8, 0xfc, 0x34, 0xb3, 0xbb, 0x33, 0xf3, 0x9b, 0xdf, 0x18, 0x06, 0x8b, 0x5b, 0x3f, - 0xfd, 0x96, 0xff, 0x39, 0x4d, 0x68, 0x9c, 0xc6, 0xc8, 0x4c, 0x3e, 0x9e, 0xdd, 0xfa, 0xe9, 0xf8, - 0x8f, 0x06, 0x1c, 0xfd, 0xec, 0xcd, 0x63, 0x87, 0x05, 0xde, 0x3d, 0xe5, 0x90, 0xc3, 0x02, 0x74, - 0x0c, 0xa6, 0x47, 0xa2, 0x1b, 0x7b, 0x8a, 0x6b, 0xa3, 0xda, 0xc4, 0x72, 0x33, 0x8b, 0xe3, 0x2e, - 0x59, 0xdc, 0xdb, 0x53, 0x5c, 0x97, 0xb8, 0xb4, 0x10, 0x86, 0xd6, 0x59, 0x1c, 0xa5, 0x24, 0x4a, - 0xb1, 0x21, 0x3e, 0xe4, 0x26, 0x3a, 0x81, 0x36, 0x8f, 0x9d, 0x87, 0x6b, 0x82, 0x1b, 0xa3, 0xda, - 0xc4, 0x70, 0xb7, 0x36, 0x8f, 0x72, 0x58, 0x70, 0x4e, 0xe3, 0x35, 0x6e, 0x8e, 0x6a, 0x93, 0xa6, - 0x9b, 0x9b, 0xe8, 0x6b, 0xe8, 0x73, 0x2f, 0x42, 0xaf, 0xc2, 0xc5, 0xa7, 0x2b, 0x7f, 0x4d, 0xb0, - 0x29, 0x8e, 0x2d, 0xa1, 0xe8, 0x35, 0xf4, 0x24, 0x72, 0xee, 0x2f, 0xc8, 0x07, 0xf7, 0x12, 0xb7, - 0x84, 0x9b, 0x0e, 0xa2, 0x11, 0x74, 0xb2, 0xe7, 0xcc, 0x7f, 0x4b, 0x08, 0x6e, 0x8b, 0xbb, 0x54, - 0x88, 0x7b, 0x78, 0x84, 0xb1, 0x30, 0x8e, 0x84, 0x87, 0x25, 0x3d, 0x14, 0x88, 0x7b, 0xbc, 0x4f, - 0x08, 0xf5, 0xd3, 0x30, 0x8e, 0xec, 0x29, 0x06, 0x71, 0x8f, 0x0a, 0xa1, 0x57, 0xd0, 0x74, 0x58, - 0x60, 0x4f, 0x71, 0x47, 0x7c, 0x93, 0x06, 0x47, 0xe7, 0xf1, 0x27, 0x12, 0xe1, 0xae, 0x44, 0x85, - 0x21, 0x4e, 0x5b, 0x2e, 0x57, 0x61, 0x44, 0xec, 0x68, 0x19, 0xe3, 0x5e, 0x76, 0x5a, 0x01, 0xf1, - 0xda, 0xbc, 0x4f, 0xf8, 0xc9, 0x0c, 0xf7, 0x65, 0x45, 0x33, 0x13, 0x7d, 0x09, 0x70, 0xbd, 0xf2, - 0xd3, 0x65, 0x4c, 0xd7, 0xf6, 0x14, 0x0f, 0xc4, 0x53, 0x15, 0x04, 0x7d, 0x01, 0xd6, 0x79, 0x4c, - 0x17, 0xe4, 0x32, 0x64, 0x29, 0x1e, 0x8e, 0x8c, 0x89, 0xe5, 0x16, 0x80, 0xa8, 0xc5, 0x2a, 0x24, - 0x51, 0x2a, 0xdf, 0x7a, 0x24, 0x6f, 0x56, 0xa0, 0xf1, 0xbf, 0x06, 0x1c, 0x4b, 0x36, 0xcc, 0xe3, - 0xeb, 0x3b, 0x76, 0xfb, 0x22, 0xb4, 0xc0, 0xd0, 0xe2, 0x3e, 0x1e, 0xd9, 0x64, 0xac, 0xc8, 0x4d, - 0x8d, 0x30, 0xcd, 0xc7, 0x09, 0x63, 0x3e, 0x45, 0x98, 0xd6, 0x61, 0x84, 0x69, 0x1f, 0x40, 0x18, - 0xeb, 0x49, 0xc2, 0xc0, 0x93, 0x84, 0xe9, 0xec, 0x21, 0x4c, 0x57, 0x25, 0xcc, 0x4b, 0x52, 0xa3, - 0xd4, 0xfc, 0x61, 0xb5, 0xf9, 0xbf, 0x43, 0xff, 0xfa, 0x6e, 0xb5, 0x72, 0x08, 0x63, 0x7e, 0x40, - 0x5c, 0xb2, 0xe1, 0xbd, 0xfd, 0xc0, 0x08, 0x2d, 0x7a, 0x2e, 0x2d, 0xd9, 0xa7, 0xcd, 0x3b, 0x12, - 0x84, 0x91, 0xe8, 0xba, 0xe8, 0x93, 0xb4, 0x25, 0x4f, 0x36, 0xb3, 0xe8, 0x46, 0xb4, 0xdd, 0x70, - 0x33, 0xab, 0x5c, 0x93, 0x46, 0xa5, 0x26, 0xe3, 0x7f, 0x6a, 0x30, 0xd0, 0x1e, 0xc0, 0x12, 0x9e, - 0xef, 0x8c, 0xd2, 0xb3, 0xf8, 0x86, 0x88, 0x27, 0x34, 0xdd, 0xdc, 0xe4, 0xf7, 0xcc, 0x28, 0x75, - 0x58, 0x90, 0xf3, 0x4e, 0x5a, 0x1c, 0x77, 0xfc, 0x07, 0x4e, 0xae, 0xec, 0x7e, 0x69, 0x09, 0x3c, - 0x8c, 0x0a, 0xd2, 0x65, 0x16, 0xfa, 0x1e, 0x7a, 0x5e, 0x18, 0x05, 0x2b, 0xc2, 0x73, 0xe3, 0xc7, - 0x35, 0x47, 0xc6, 0xa4, 0xf3, 0xe6, 0xd5, 0xa9, 0x14, 0xc9, 0xd3, 0x0b, 0x3f, 0xbd, 0x25, 0xf4, - 0x3c, 0xa6, 0x6b, 0x3f, 0x75, 0x75, 0x57, 0xf4, 0x16, 0xba, 0x17, 0x34, 0xbe, 0x4b, 0xf2, 0x50, - 0x73, 0x4f, 0xa8, 0xe6, 0x39, 0xfe, 0x09, 0xba, 0x17, 0x24, 0xbd, 0x22, 0xbf, 0x7a, 0x64, 0xb3, - 0xaf, 0xd2, 0xa5, 0xaa, 0xd5, 0xab, 0x55, 0xf3, 0xa0, 0xa7, 0x9c, 0xf4, 0xac, 0x92, 0x0d, 0xc1, - 0x28, 0xea, 0xc5, 0xff, 0x1d, 0xcf, 0xa0, 0xab, 0x3e, 0x1e, 0xf5, 0xa1, 0xbe, 0x7d, 0x5a, 0xdd, - 0x9e, 0xa2, 0xaf, 0xa0, 0x21, 0x24, 0xa6, 0x2e, 0x12, 0x3e, 0xca, 0x13, 0xe6, 0x13, 0x29, 0xb3, - 0x15, 0x9f, 0xc7, 0xff, 0xd5, 0xc1, 0xda, 0x62, 0xcf, 0x51, 0x90, 0x7c, 0xe2, 0x0d, 0x7d, 0xe2, - 0x4b, 0x33, 0xda, 0x78, 0x64, 0x46, 0xe9, 0xbd, 0x28, 0xb6, 0x3d, 0x15, 0x62, 0x62, 0xb9, 0x2a, - 0xa4, 0xea, 0x93, 0xa9, 0xeb, 0x53, 0x56, 0x8e, 0xd6, 0xb6, 0x1c, 0x9a, 0x2e, 0xb5, 0x4b, 0xba, - 0xf4, 0x0d, 0x0c, 0xa5, 0x80, 0x28, 0xd3, 0x27, 0x45, 0xa3, 0x82, 0xef, 0x50, 0x2a, 0x38, 0x4c, - 0xa9, 0x3a, 0x8f, 0x29, 0x95, 0x32, 0xd1, 0xdd, 0xea, 0x44, 0xff, 0xd9, 0x80, 0x3e, 0x27, 0x12, - 0x8f, 0x73, 0x58, 0xc0, 0x89, 0xf6, 0x1a, 0x7a, 0x2e, 0xd9, 0xd8, 0x37, 0x24, 0x4a, 0xc3, 0x65, - 0x48, 0x68, 0xc6, 0x11, 0x1d, 0x2c, 0x36, 0x57, 0x5d, 0xdd, 0x5c, 0x45, 0x03, 0x0d, 0xad, 0x81, - 0x4f, 0x8e, 0xf6, 0x8e, 0xc4, 0x9b, 0x87, 0x25, 0x6e, 0xee, 0x4a, 0x5c, 0x97, 0xba, 0xd6, 0x2e, - 0xa9, 0x53, 0x05, 0xba, 0x5d, 0x15, 0x68, 0x85, 0x5a, 0xd6, 0x5e, 0x6a, 0x41, 0x95, 0x5a, 0x05, - 0x5d, 0x3b, 0x1a, 0x5d, 0xb5, 0xdd, 0xdb, 0x2d, 0xef, 0x5e, 0x85, 0x6e, 0xbd, 0xca, 0x3a, 0x7c, - 0x44, 0xd2, 0x4b, 0x0d, 0x1e, 0x54, 0x1a, 0x9c, 0x2d, 0x8c, 0xcb, 0x7c, 0x61, 0x0c, 0xb7, 0x0b, - 0x23, 0x87, 0xf8, 0xe4, 0xce, 0x1e, 0xb2, 0x55, 0x5f, 0x9f, 0x3d, 0x8c, 0xff, 0xae, 0xc1, 0x40, - 0xa3, 0xc4, 0xb3, 0x14, 0xa3, 0xc2, 0x22, 0x63, 0x17, 0x8b, 0xf6, 0xad, 0xf3, 0xd2, 0x80, 0x9a, - 0xd5, 0x01, 0x2d, 0x65, 0xdf, 0xaa, 0x64, 0xff, 0xe6, 0xaf, 0x1a, 0x34, 0xb8, 0xee, 0xa0, 0xb7, - 0x60, 0x6d, 0x35, 0x10, 0x15, 0xf2, 0xab, 0x08, 0xec, 0xc9, 0x67, 0x3b, 0x50, 0x96, 0xa0, 0x1f, - 0xa1, 0xa3, 0xac, 0x1c, 0x74, 0x9c, 0x7b, 0xe9, 0x8b, 0xf0, 0xe4, 0xf3, 0x9d, 0xb8, 0x8c, 0x57, - 0xaa, 0x59, 0xc4, 0xeb, 0x53, 0x57, 0xc4, 0x97, 0x4a, 0xff, 0xae, 0xf7, 0x4b, 0x87, 0xff, 0x30, - 0xff, 0x41, 0x7e, 0xfe, 0x68, 0x8a, 0x1f, 0xe8, 0xdf, 0xfd, 0x1f, 0x00, 0x00, 0xff, 0xff, 0xfe, - 0xa0, 0x14, 0x71, 0xb3, 0x0b, 0x00, 0x00, +func init() { proto.RegisterFile("chat/chat.proto", fileDescriptor_chat_4f51bfe711d80421) } + +var fileDescriptor_chat_4f51bfe711d80421 = []byte{ + // 970 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xb4, 0x57, 0xdd, 0x6a, 0xe3, 0x46, + 0x14, 0xc6, 0x92, 0x7f, 0xa2, 0x23, 0xff, 0x65, 0x48, 0xb3, 0x43, 0x28, 0xad, 0x11, 0xdb, 0x62, + 0x7a, 0x91, 0xc2, 0xf6, 0x66, 0x69, 0x61, 0x2f, 0x12, 0x3b, 0xa9, 0x20, 0xce, 0x06, 0xc9, 0x4b, + 0xa1, 0x77, 0x5a, 0x67, 0xac, 0x88, 0xb5, 0x25, 0x79, 0x46, 0x49, 0xb3, 0x37, 0x7d, 0x85, 0x42, + 0x9f, 0xa3, 0x7d, 0xb0, 0xbe, 0x42, 0xa1, 0x50, 0x66, 0x46, 0xb2, 0x46, 0x3f, 0x4e, 0x42, 0x96, + 0xbd, 0x59, 0xf6, 0xfb, 0x74, 0xe6, 0xe7, 0x9c, 0xf3, 0xcd, 0x77, 0x62, 0x18, 0x2c, 0x6e, 0xbc, + 0xe4, 0x7b, 0xfe, 0xcf, 0x71, 0x4c, 0xa3, 0x24, 0x42, 0xed, 0xf8, 0xfd, 0xe9, 0x8d, 0x97, 0x58, + 0x7f, 0x34, 0x61, 0xff, 0x17, 0x77, 0x1e, 0xcd, 0x98, 0xef, 0xde, 0x51, 0x4e, 0xcd, 0x98, 0x8f, + 0x0e, 0xa1, 0xed, 0x92, 0xf0, 0xda, 0x9e, 0xe0, 0xc6, 0xa8, 0x31, 0x36, 0x9c, 0x14, 0x71, 0xde, + 0x21, 0x8b, 0x3b, 0x7b, 0x82, 0x35, 0xc9, 0x4b, 0x84, 0x30, 0x74, 0x4e, 0xa3, 0x30, 0x21, 0x61, + 0x82, 0x75, 0xf1, 0x21, 0x83, 0xe8, 0x08, 0xf6, 0xf8, 0xda, 0x79, 0xb0, 0x26, 0xb8, 0x39, 0x6a, + 0x8c, 0x75, 0x67, 0x8b, 0xf9, 0xaa, 0x19, 0xf3, 0xcf, 0x68, 0xb4, 0xc6, 0xad, 0x51, 0x63, 0xdc, + 0x72, 0x32, 0x88, 0xbe, 0x85, 0x3e, 0x8f, 0x22, 0xf4, 0x32, 0x58, 0x7c, 0xb8, 0xf4, 0xd6, 0x04, + 0xb7, 0xc5, 0xb6, 0x25, 0x16, 0xbd, 0x84, 0x9e, 0x64, 0xce, 0xbc, 0x05, 0x79, 0xe7, 0x5c, 0xe0, + 0x8e, 0x08, 0x2b, 0x92, 0x68, 0x04, 0x66, 0x7a, 0x9d, 0xf9, 0xc7, 0x98, 0xe0, 0x3d, 0x71, 0x96, + 0x4a, 0xf1, 0x08, 0x97, 0x30, 0x16, 0x44, 0xa1, 0x88, 0x30, 0x64, 0x84, 0x42, 0xf1, 0x88, 0xb7, + 0x31, 0xa1, 0x5e, 0x12, 0x44, 0xa1, 0x3d, 0xc1, 0x20, 0xce, 0x51, 0x29, 0x74, 0x00, 0xad, 0x19, + 0xf3, 0xed, 0x09, 0x36, 0xc5, 0x37, 0x09, 0x38, 0x3b, 0x8f, 0x3e, 0x90, 0x10, 0x77, 0x25, 0x2b, + 0x80, 0xd8, 0x6d, 0xb9, 0x5c, 0x05, 0x21, 0xb1, 0xc3, 0x65, 0x84, 0x7b, 0xe9, 0x6e, 0x39, 0xc5, + 0x6b, 0xf3, 0x36, 0xe6, 0x3b, 0x33, 0xdc, 0x97, 0x15, 0x4d, 0x21, 0xfa, 0x0a, 0xe0, 0x6a, 0xe5, + 0x25, 0xcb, 0x88, 0xae, 0xed, 0x09, 0x1e, 0x88, 0xab, 0x2a, 0x0c, 0xfa, 0x12, 0x8c, 0xb3, 0x88, + 0x2e, 0xc8, 0x45, 0xc0, 0x12, 0x3c, 0x1c, 0xe9, 0x63, 0xc3, 0xc9, 0x09, 0x51, 0x8b, 0x55, 0x40, + 0xc2, 0x44, 0xde, 0x75, 0x5f, 0x9e, 0xac, 0x50, 0xd6, 0xbf, 0x3a, 0x1c, 0x4a, 0x35, 0xcc, 0xa3, + 0xab, 0x5b, 0x76, 0xf3, 0x59, 0x64, 0x81, 0xa1, 0xc3, 0x63, 0x5c, 0xb2, 0x49, 0x55, 0x91, 0xc1, + 0x82, 0x60, 0x5a, 0xbb, 0x05, 0xd3, 0x7e, 0x4c, 0x30, 0x9d, 0xa7, 0x09, 0x66, 0xef, 0x09, 0x82, + 0x31, 0x1e, 0x15, 0x0c, 0x3c, 0x2a, 0x18, 0xf3, 0x01, 0xc1, 0x74, 0x55, 0xc1, 0x7c, 0x4e, 0x69, + 0x94, 0x9a, 0x3f, 0xac, 0x36, 0xff, 0x77, 0xe8, 0x5f, 0xdd, 0xae, 0x56, 0x33, 0xc2, 0x98, 0xe7, + 0x13, 0x87, 0x6c, 0x78, 0x6f, 0xdf, 0x31, 0x42, 0xf3, 0x9e, 0x4b, 0x24, 0xfb, 0xb4, 0x39, 0x21, + 0x7e, 0x10, 0x8a, 0xae, 0x8b, 0x3e, 0x49, 0x2c, 0x75, 0xb2, 0x99, 0x86, 0xd7, 0xa2, 0xed, 0xba, + 0x93, 0xa2, 0x72, 0x4d, 0x9a, 0x95, 0x9a, 0x58, 0xff, 0x34, 0x60, 0x50, 0xb8, 0x00, 0x8b, 0x79, + 0xbe, 0x53, 0x4a, 0x4f, 0xa3, 0x6b, 0x22, 0xae, 0xd0, 0x72, 0x32, 0xc8, 0xcf, 0x99, 0x52, 0x3a, + 0x63, 0x7e, 0xa6, 0x3b, 0x89, 0x38, 0x3f, 0xf3, 0xee, 0xb9, 0xb8, 0xd2, 0xf3, 0x25, 0x12, 0x7c, + 0x10, 0xe6, 0xa2, 0x4b, 0x11, 0xfa, 0x11, 0x7a, 0x6e, 0x10, 0xfa, 0x2b, 0xc2, 0x73, 0xe3, 0xdb, + 0xb5, 0x46, 0xfa, 0xd8, 0x7c, 0x75, 0x70, 0x2c, 0x4d, 0xf2, 0xf8, 0xdc, 0x4b, 0x6e, 0x08, 0x3d, + 0x8b, 0xe8, 0xda, 0x4b, 0x9c, 0x62, 0x28, 0x7a, 0x0d, 0xdd, 0x73, 0x1a, 0xdd, 0xc6, 0xd9, 0xd2, + 0xf6, 0x03, 0x4b, 0x0b, 0x91, 0xd6, 0x1a, 0x5e, 0x28, 0xa9, 0x9e, 0x7c, 0x74, 0xc9, 0x86, 0x3f, + 0xd1, 0x87, 0x8a, 0x5e, 0x2a, 0xa0, 0x56, 0x15, 0x15, 0x86, 0x0e, 0x93, 0xfb, 0x60, 0x7d, 0xa4, + 0xf3, 0x87, 0x95, 0x42, 0xeb, 0x67, 0xe8, 0x9e, 0x93, 0xe4, 0x92, 0xfc, 0xe6, 0x92, 0xcd, 0x27, + 0x9d, 0x61, 0xb9, 0xd0, 0x53, 0x76, 0x7a, 0x56, 0x87, 0x86, 0xa0, 0xe7, 0xed, 0xe1, 0xff, 0xb5, + 0xa6, 0xd0, 0x55, 0x6b, 0x85, 0xfa, 0xa0, 0x6d, 0xaf, 0xa6, 0xd9, 0x13, 0xf4, 0x0d, 0x34, 0x45, + 0x56, 0x9a, 0xa8, 0xef, 0x7e, 0x56, 0x5f, 0x6e, 0x00, 0xb2, 0xb8, 0xe2, 0xb3, 0xf5, 0x9f, 0x06, + 0xc6, 0x96, 0x7b, 0x8e, 0x61, 0x65, 0x06, 0xa3, 0x17, 0x0d, 0xa6, 0x64, 0x09, 0xcd, 0x1d, 0x96, + 0x40, 0xef, 0x44, 0x6f, 0xed, 0x89, 0xf0, 0x2e, 0xc3, 0x51, 0x29, 0xd5, 0x0e, 0xdb, 0x45, 0x3b, + 0x4c, 0xcb, 0xd1, 0xd9, 0x96, 0xa3, 0x60, 0x83, 0x7b, 0x25, 0x1b, 0xfc, 0x0e, 0x86, 0xd2, 0xaf, + 0x94, 0xc7, 0x2e, 0x3d, 0xaa, 0xc2, 0xd7, 0x18, 0x23, 0x3c, 0xcd, 0x18, 0xcd, 0x5d, 0xc6, 0xa8, + 0x18, 0x48, 0xb7, 0x6a, 0x20, 0x7f, 0x35, 0xa1, 0xcf, 0x85, 0xc4, 0xd7, 0xcd, 0x98, 0xcf, 0x85, + 0xf6, 0x12, 0x7a, 0x0e, 0xd9, 0xd8, 0xd7, 0x24, 0x4c, 0x82, 0x65, 0x40, 0x68, 0xaa, 0x91, 0x22, + 0x99, 0x0f, 0x4a, 0x4d, 0x1d, 0x94, 0x79, 0x03, 0xf5, 0x42, 0x03, 0x1f, 0x75, 0x92, 0x9a, 0xc4, + 0x5b, 0x4f, 0x4b, 0xbc, 0x5d, 0x97, 0x78, 0xd1, 0x59, 0x3b, 0x75, 0xce, 0xaa, 0xce, 0x83, 0xbd, + 0xea, 0x3c, 0x50, 0xa4, 0x65, 0x3c, 0x28, 0x2d, 0xa8, 0x4a, 0x2b, 0x97, 0xab, 0x59, 0x90, 0x6b, + 0x61, 0xd4, 0x77, 0xcb, 0xa3, 0x5e, 0x91, 0x5b, 0xaf, 0x32, 0x7d, 0x77, 0x4c, 0x90, 0x52, 0x83, + 0x07, 0x95, 0x06, 0xa7, 0xf3, 0xe9, 0x22, 0x9b, 0x4f, 0xc3, 0xed, 0x7c, 0xca, 0x28, 0xfe, 0x72, + 0xa7, 0xf7, 0xe9, 0x5f, 0x16, 0xda, 0xf4, 0x9e, 0x4b, 0x99, 0x65, 0x52, 0x46, 0x52, 0xca, 0x19, + 0xb6, 0xfe, 0x6e, 0xc0, 0xa0, 0x20, 0x97, 0x67, 0xb9, 0x49, 0x45, 0x61, 0x7a, 0x9d, 0xc2, 0x4a, + 0x0f, 0xb4, 0x59, 0x7d, 0xa0, 0xa5, 0xec, 0x5b, 0x95, 0xec, 0x5f, 0xfd, 0xa9, 0x41, 0x93, 0xfb, + 0x0e, 0x7a, 0x0d, 0xc6, 0xd6, 0x03, 0x51, 0xee, 0xf6, 0x8a, 0xc1, 0x1e, 0x7d, 0x51, 0xc3, 0xb2, + 0x18, 0xbd, 0x01, 0x53, 0xb1, 0x7d, 0x74, 0x98, 0x45, 0x15, 0xe7, 0xee, 0xd1, 0x8b, 0x5a, 0x9e, + 0xc5, 0xe8, 0x0a, 0x0e, 0xea, 0xc6, 0x06, 0xfa, 0xba, 0x66, 0x81, 0x3a, 0x54, 0x76, 0xef, 0xf8, + 0x06, 0x4c, 0xa5, 0x07, 0xf9, 0x8d, 0x8a, 0xef, 0x38, 0x5f, 0x5f, 0x6a, 0xd8, 0x49, 0xef, 0x57, + 0x93, 0xff, 0xb2, 0xf8, 0x49, 0x7e, 0x7e, 0xdf, 0x16, 0xbf, 0x30, 0x7e, 0xf8, 0x3f, 0x00, 0x00, + 0xff, 0xff, 0x6c, 0xad, 0x53, 0x41, 0x74, 0x0c, 0x00, 0x00, } diff --git a/src/proto/chat/chat.proto b/src/proto/chat/chat.proto index 1273682c7..6faa654c2 100644 --- a/src/proto/chat/chat.proto +++ b/src/proto/chat/chat.proto @@ -58,6 +58,11 @@ message PullMessageResp { repeated GatherFormat SingleUserMsg = 5; repeated GatherFormat GroupUserMsg = 6; } +message PullMessageBySeqListReq{ + string UserID = 1; + string OperationID = 2; + repeated int64 seqList =3; +} message GetNewSeqReq { string UserID = 1; string OperationID = 2; @@ -119,6 +124,7 @@ message UserSendMsgReq { string ClientMsgID = 15; string OffLineInfo = 16; string Ex = 17; + int64 sendTime = 18; } @@ -127,13 +133,13 @@ message UserSendMsgResp { int32 ErrCode = 1; string ErrMsg = 2; int32 ReqIdentifier = 3; - int64 SendTime = 5; - string ServerMsgID = 6; - string ClientMsgID = 7; + string ServerMsgID = 4; + string ClientMsgID = 5; } service Chat { rpc GetNewSeq(GetNewSeqReq) returns(GetNewSeqResp); rpc PullMessage(PullMessageReq) returns(PullMessageResp); + rpc PullMessageBySeqList(PullMessageBySeqListReq) returns(PullMessageResp); rpc UserSendMsg(UserSendMsgReq) returns(UserSendMsgResp); } diff --git a/src/push/logic/push_to_client.go b/src/push/logic/push_to_client.go index c52ff0a61..7dad81d5b 100644 --- a/src/push/logic/push_to_client.go +++ b/src/push/logic/push_to_client.go @@ -51,7 +51,7 @@ func MsgToUser(sendPbData *pbRelay.MsgToUserReq, OfflineInfo, Options string) { wsResult = append(wsResult, reply.Resp...) } } - log.InfoByKv("push_result", sendPbData.OperationID, "result", wsResult) + log.InfoByKv("push_result", sendPbData.OperationID, "result", wsResult, "sendData", sendPbData) if isOfflinePush { for _, t := range pushTerminal { diff --git a/src/rpc/chat/chat/pull_message.go b/src/rpc/chat/chat/pull_message.go index 744ae1a36..359b3709f 100644 --- a/src/rpc/chat/chat/pull_message.go +++ b/src/rpc/chat/chat/pull_message.go @@ -41,7 +41,7 @@ func (rpc *rpcChat) PullMessage(_ context.Context, in *pbMsg.PullMessageReq) (*p resp := new(pbMsg.PullMessageResp) var respSingleMsgFormat []*pbMsg.GatherFormat var respGroupMsgFormat []*pbMsg.GatherFormat - SingleMsgFormat, GroupMsgFormat, MaxSeq, MinSeq, err := commonDB.DB.GetUserChat(in.UserID, in.SeqBegin, in.SeqEnd) + SingleMsgFormat, GroupMsgFormat, MaxSeq, MinSeq, err := commonDB.DB.GetMsgBySeqRange(in.UserID, in.SeqBegin, in.SeqEnd) if err != nil { log.ErrorByKv("pullMsg data error", in.OperationID, in.String()) resp.ErrCode = 1 @@ -59,6 +59,30 @@ func (rpc *rpcChat) PullMessage(_ context.Context, in *pbMsg.PullMessageReq) (*p GroupUserMsg: respGroupMsgFormat, }, nil } +func (rpc *rpcChat) PullMessageBySeqList(_ context.Context, in *pbMsg.PullMessageBySeqListReq) (*pbMsg.PullMessageResp, error) { + log.NewInfo(in.OperationID, "rpc PullMessageBySeqList is arriving", in.String()) + resp := new(pbMsg.PullMessageResp) + var respSingleMsgFormat []*pbMsg.GatherFormat + var respGroupMsgFormat []*pbMsg.GatherFormat + SingleMsgFormat, GroupMsgFormat, MaxSeq, MinSeq, err := commonDB.DB.GetMsgBySeqList(in.UserID, in.SeqList) + if err != nil { + log.ErrorByKv("PullMessageBySeqList data error", in.OperationID, in.String()) + resp.ErrCode = 1 + resp.ErrMsg = err.Error() + return resp, nil + } + respSingleMsgFormat = singleMsgHandleByUser(SingleMsgFormat, in.UserID) + respGroupMsgFormat = groupMsgHandleByUser(GroupMsgFormat) + return &pbMsg.PullMessageResp{ + ErrCode: 0, + ErrMsg: "", + MaxSeq: MaxSeq, + MinSeq: MinSeq, + SingleUserMsg: respSingleMsgFormat, + GroupUserMsg: respGroupMsgFormat, + }, nil + panic("implement me") +} func singleMsgHandleByUser(allMsg []*pbMsg.MsgFormat, ownerId string) []*pbMsg.GatherFormat { var userid string var respMsgFormat []*pbMsg.GatherFormat diff --git a/src/rpc/chat/chat/send_msg.go b/src/rpc/chat/chat/send_msg.go index 21a1a7be8..a11f929e6 100644 --- a/src/rpc/chat/chat/send_msg.go +++ b/src/rpc/chat/chat/send_msg.go @@ -43,9 +43,11 @@ type MsgCallBackResp struct { func (rpc *rpcChat) UserSendMsg(_ context.Context, pb *pbChat.UserSendMsgReq) (*pbChat.UserSendMsgResp, error) { replay := pbChat.UserSendMsgResp{} log.InfoByKv("sendMsg", pb.OperationID, "args", pb.String()) + time := utils.GetCurrentTimestampByMill() if !utils.VerifyToken(pb.Token, pb.SendID) { return returnMsg(&replay, pb, http.StatusUnauthorized, "token validate err,not authorized", "", 0) } + log.NewInfo(pb.OperationID, "VerifyToken cost time ", utils.GetCurrentTimestampByMill()-time) serverMsgID := GetMsgID(pb.SendID) pbData := pbChat.WSToMsgSvrChatMsg{} pbData.MsgFrom = pb.MsgFrom @@ -64,7 +66,7 @@ func (rpc *rpcChat) UserSendMsg(_ context.Context, pb *pbChat.UserSendMsgReq) (* pbData.MsgID = serverMsgID pbData.OperationID = pb.OperationID pbData.Token = pb.Token - pbData.SendTime = utils.GetCurrentTimestampByNano() + pbData.SendTime = pb.SendTime m := MsgCallBackResp{} if config.Config.MessageCallBack.CallbackSwitch { bMsg, err := http2.Post(config.Config.MessageCallBack.CallbackUrl, MsgCallBackReq{ @@ -88,85 +90,79 @@ func (rpc *rpcChat) UserSendMsg(_ context.Context, pb *pbChat.UserSendMsgReq) (* return returnMsg(&replay, pb, m.ResponseErrCode, m.ErrMsg, "", 0) } else { pbData.Content = m.ResponseResult.ModifiedMsg - err1 := rpc.sendMsgToKafka(&pbData, pbData.RecvID) - err2 := rpc.sendMsgToKafka(&pbData, pbData.SendID) - if err1 != nil || err2 != nil { - return returnMsg(&replay, pb, 201, "kafka send msg err", "", 0) - } - return returnMsg(&replay, pb, 0, "", serverMsgID, pbData.SendTime) } } - } else { - switch pbData.SessionType { - case constant.SingleChatType: - err1 := rpc.sendMsgToKafka(&pbData, pbData.RecvID) - err2 := rpc.sendMsgToKafka(&pbData, pbData.SendID) - if err1 != nil || err2 != nil { - return returnMsg(&replay, pb, 201, "kafka send msg err", "", 0) - } - return returnMsg(&replay, pb, 0, "", serverMsgID, pbData.SendTime) - case constant.GroupChatType: - etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImGroupName) - client := pbGroup.NewGroupClient(etcdConn) - req := &pbGroup.GetGroupAllMemberReq{ - GroupID: pbData.RecvID, - Token: pbData.Token, - OperationID: pbData.OperationID, - } - reply, err := client.GetGroupAllMember(context.Background(), req) + } + switch pbData.SessionType { + case constant.SingleChatType: + time := utils.GetCurrentTimestampByMill() + err1 := rpc.sendMsgToKafka(&pbData, pbData.RecvID) + err2 := rpc.sendMsgToKafka(&pbData, pbData.SendID) + log.NewInfo(pb.OperationID, "send kafka cost time ", utils.GetCurrentTimestampByMill()-time) + if err1 != nil || err2 != nil { + return returnMsg(&replay, pb, 201, "kafka send msg err", "", 0) + } + return returnMsg(&replay, pb, 0, "", serverMsgID, pbData.SendTime) + case constant.GroupChatType: + etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImGroupName) + client := pbGroup.NewGroupClient(etcdConn) + req := &pbGroup.GetGroupAllMemberReq{ + GroupID: pbData.RecvID, + Token: pbData.Token, + OperationID: pbData.OperationID, + } + reply, err := client.GetGroupAllMember(context.Background(), req) + if err != nil { + log.Error(pbData.Token, pbData.OperationID, "rpc send_msg getGroupInfo failed, err = %s", err.Error()) + return returnMsg(&replay, pb, 201, err.Error(), "", 0) + } + if reply.ErrorCode != 0 { + log.Error(pbData.Token, pbData.OperationID, "rpc send_msg getGroupInfo failed, err = %s", reply.ErrorMsg) + return returnMsg(&replay, pb, reply.ErrorCode, reply.ErrorMsg, "", 0) + } + var addUidList []string + switch pbData.ContentType { + case constant.KickGroupMemberTip: + var notification content_struct.NotificationContent + var kickContent group.KickGroupMemberReq + err := utils.JsonStringToStruct(pbData.Content, ¬ification) if err != nil { - log.Error(pbData.Token, pbData.OperationID, "rpc send_msg getGroupInfo failed, err = %s", err.Error()) - return returnMsg(&replay, pb, 201, err.Error(), "", 0) - } - if reply.ErrorCode != 0 { - log.Error(pbData.Token, pbData.OperationID, "rpc send_msg getGroupInfo failed, err = %s", reply.ErrorMsg) - return returnMsg(&replay, pb, reply.ErrorCode, reply.ErrorMsg, "", 0) - } - var addUidList []string - switch pbData.ContentType { - case constant.KickGroupMemberTip: - var notification content_struct.NotificationContent - var kickContent group.KickGroupMemberReq - err := utils.JsonStringToStruct(pbData.Content, ¬ification) + log.ErrorByKv("json unmarshall err", pbData.OperationID, "err", err.Error()) + return returnMsg(&replay, pb, 200, err.Error(), "", 0) + } else { + err := utils.JsonStringToStruct(notification.Detail, &kickContent) if err != nil { log.ErrorByKv("json unmarshall err", pbData.OperationID, "err", err.Error()) return returnMsg(&replay, pb, 200, err.Error(), "", 0) - } else { - err := utils.JsonStringToStruct(notification.Detail, &kickContent) - if err != nil { - log.ErrorByKv("json unmarshall err", pbData.OperationID, "err", err.Error()) - return returnMsg(&replay, pb, 200, err.Error(), "", 0) - } - for _, v := range kickContent.UidListInfo { - addUidList = append(addUidList, v.UserId) - } } - case constant.QuitGroupTip: - addUidList = append(addUidList, pbData.SendID) - default: - } - groupID := pbData.RecvID - for i, v := range reply.MemberList { - pbData.RecvID = v.UserId + " " + groupID - err := rpc.sendMsgToKafka(&pbData, utils.IntToString(i)) - if err != nil { - return returnMsg(&replay, pb, 201, "kafka send msg err", "", 0) - } - } - for i, v := range addUidList { - pbData.RecvID = v + " " + groupID - err := rpc.sendMsgToKafka(&pbData, utils.IntToString(i+1)) - if err != nil { - return returnMsg(&replay, pb, 201, "kafka send msg err", "", 0) + for _, v := range kickContent.UidListInfo { + addUidList = append(addUidList, v.UserId) } } - return returnMsg(&replay, pb, 0, "", serverMsgID, pbData.SendTime) + case constant.QuitGroupTip: + addUidList = append(addUidList, pbData.SendID) default: - } + groupID := pbData.RecvID + for i, v := range reply.MemberList { + pbData.RecvID = v.UserId + " " + groupID + err := rpc.sendMsgToKafka(&pbData, utils.IntToString(i)) + if err != nil { + return returnMsg(&replay, pb, 201, "kafka send msg err", "", 0) + } + } + for i, v := range addUidList { + pbData.RecvID = v + " " + groupID + err := rpc.sendMsgToKafka(&pbData, utils.IntToString(i+1)) + if err != nil { + return returnMsg(&replay, pb, 201, "kafka send msg err", "", 0) + } + } + return returnMsg(&replay, pb, 0, "", serverMsgID, pbData.SendTime) + default: + return returnMsg(&replay, pb, 203, "unkonwn sessionType", "", 0) } - return returnMsg(&replay, pb, 203, "unkonwn sessionType", "", 0) } func (rpc *rpcChat) sendMsgToKafka(m *pbChat.WSToMsgSvrChatMsg, key string) error { @@ -186,6 +182,5 @@ func returnMsg(replay *pbChat.UserSendMsgResp, pb *pbChat.UserSendMsgReq, errCod replay.ReqIdentifier = pb.ReqIdentifier replay.ClientMsgID = pb.ClientMsgID replay.ServerMsgID = serverMsgID - replay.SendTime = sendTime return replay, nil } diff --git a/src/rpc/group/group/group.go b/src/rpc/group/group/group.go index 749932194..87f904802 100644 --- a/src/rpc/group/group/group.go +++ b/src/rpc/group/group/group.go @@ -70,6 +70,12 @@ func (s *groupServer) InviteUserToGroup(ctx context.Context, req *pbGroup.Invite return &pbGroup.InviteUserToGroupResp{ErrorCode: config.ErrAccess.ErrCode, ErrorMsg: config.ErrAccess.ErrMsg}, nil } + groupInfoFromMysql, err := imdb.FindGroupInfoByGroupId(req.GroupID) + if err != nil || groupInfoFromMysql == nil { + log.NewError(req.OperationID, "get group info error", req.GroupID, req.UidList) + return &pbGroup.InviteUserToGroupResp{ErrorCode: config.ErrAccess.ErrCode, ErrorMsg: config.ErrAccess.ErrMsg}, nil + } + // //from User: invite: applicant //to user: invite: invited diff --git a/src/utils/strings.go b/src/utils/strings.go index f676da884..c6d676dff 100644 --- a/src/utils/strings.go +++ b/src/utils/strings.go @@ -62,3 +62,6 @@ func GetMsgID(sendID string) string { func int64ToString(i int64) string { return strconv.FormatInt(i, 10) } +func Int64ToString(i int64) string { + return strconv.FormatInt(i, 10) +} From 2e0cb09cddf36627e117e25d70a81fc2f12873f2 Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Fri, 22 Oct 2021 16:31:15 +0800 Subject: [PATCH 002/814] pb file --- src/proto/chat/chat.proto | 1 + 1 file changed, 1 insertion(+) diff --git a/src/proto/chat/chat.proto b/src/proto/chat/chat.proto index 6faa654c2..50f7ef652 100644 --- a/src/proto/chat/chat.proto +++ b/src/proto/chat/chat.proto @@ -135,6 +135,7 @@ message UserSendMsgResp { int32 ReqIdentifier = 3; string ServerMsgID = 4; string ClientMsgID = 5; + int64 sendTime = 6; } service Chat { From d88ba3545b00871e9803cd330dce33a78aad85c1 Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Fri, 22 Oct 2021 20:02:29 +0800 Subject: [PATCH 003/814] pb file --- src/msg_gateway/gate/logic.go | 19 ++++++++++++++----- src/msg_gateway/gate/rpc_server.go | 14 ++++++++++---- src/proto/auth/auth.proto | 2 +- src/proto/chat/chat.proto | 2 +- src/proto/friend/friend.proto | 2 +- src/proto/group/group.proto | 2 +- src/proto/push/push.proto | 2 +- src/proto/relay/relay.proto | 2 +- src/proto/user/user.proto | 2 +- 9 files changed, 31 insertions(+), 16 deletions(-) diff --git a/src/msg_gateway/gate/logic.go b/src/msg_gateway/gate/logic.go index 2f99fa8e7..d8bc14e6e 100644 --- a/src/msg_gateway/gate/logic.go +++ b/src/msg_gateway/gate/logic.go @@ -7,23 +7,27 @@ import ( "Open_IM/src/grpc-etcdv3/getcdv3" pbChat "Open_IM/src/proto/chat" "Open_IM/src/utils" + "bytes" "context" - "encoding/json" + "encoding/gob" "fmt" "github.com/gorilla/websocket" "runtime" "strings" ) -func (ws *WServer) msgParse(conn *UserConn, jsonMsg []byte) { +func (ws *WServer) msgParse(conn *UserConn, binaryMsg []byte) { //ws online debug data //{"ReqIdentifier":1001,"Token":"123","SendID":"c4ca4238a0b923820dcc509a6f75849b","Time":"123","OperationID":"123","MsgIncr":0} //{"ReqIdentifier":1002,"Token":"123","SendID":"c4ca4238a0b923820dcc509a6f75849b","Time":"123","OperationID":"123","MsgIncr":0,"SeqBegin":1,"SeqEnd":6} //{"ReqIdentifier":1003,"Token":"123","SendID":"c4ca4238a0b923820dcc509a6f75849b", //"RecvID":"a87ff679a2f3e71d9181a67b7542122c","ClientMsgID":"2343","Time":"147878787","OperationID": //"123","MsgIncr":0,"SubMsgType":101,"MsgType":100,"MsgFrom":1,"Content":"sdfsdf"} + b := bytes.NewBuffer(binaryMsg) m := Req{} - if err := json.Unmarshal(jsonMsg, &m); err != nil { + dec := gob.NewDecoder(b) + err := dec.Decode(&m) + if err != nil { log.ErrorByKv("ws json Unmarshal err", "", "err", err.Error()) ws.sendErrMsg(conn, 200, err.Error(), constant.WSDataError, "") err = conn.Close() @@ -238,8 +242,13 @@ func (ws *WServer) sendMsgReq(conn *UserConn, m *Req, sendTime int64) { } func (ws *WServer) sendMsg(conn *UserConn, mReply interface{}) { - bMsg, _ := json.Marshal(mReply) - err := ws.writeMsg(conn, websocket.TextMessage, bMsg) + var b bytes.Buffer + enc := gob.NewEncoder(&b) + err := enc.Encode(mReply) + if err != nil { + fmt.Println(err) + } + err = ws.writeMsg(conn, websocket.BinaryMessage, b.Bytes()) if err != nil { log.ErrorByKv("WS WriteMsg error", "", "userIP", conn.RemoteAddr().String(), "userUid", ws.getUserUid(conn), "error", err, "mReply", mReply) } diff --git a/src/msg_gateway/gate/rpc_server.go b/src/msg_gateway/gate/rpc_server.go index bab04bb96..0fa2c4aae 100644 --- a/src/msg_gateway/gate/rpc_server.go +++ b/src/msg_gateway/gate/rpc_server.go @@ -7,8 +7,9 @@ import ( "Open_IM/src/grpc-etcdv3/getcdv3" pbRelay "Open_IM/src/proto/relay" "Open_IM/src/utils" + "bytes" "context" - "encoding/json" + "encoding/gob" "fmt" "github.com/gorilla/websocket" "google.golang.org/grpc" @@ -74,7 +75,12 @@ func (r *RPCServer) MsgToUser(_ context.Context, in *pbRelay.MsgToUserReq) (*pbR msg["sendTime"] = in.SendTime msg["senderPlatformID"] = in.PlatformID mReply["data"] = msg - bMsg, _ := json.Marshal(mReply) + var b bytes.Buffer + enc := gob.NewEncoder(&b) + err := enc.Encode(mReply) + if err != nil { + fmt.Println(err) + } switch in.GetSessionType() { case constant.SingleChatType: RecvID = in.GetRecvID() @@ -87,7 +93,7 @@ func (r *RPCServer) MsgToUser(_ context.Context, in *pbRelay.MsgToUserReq) (*pbR if conn := ws.getUserConn(v); conn != nil { UIDAndPID := strings.Split(v, " ") tag = true - resultCode := sendMsgToUser(conn, bMsg, in, UIDAndPID[1], UIDAndPID[0]) + resultCode := sendMsgToUser(conn, b.Bytes(), in, UIDAndPID[1], UIDAndPID[0]) temp := &pbRelay.SingleMsgToUser{ ResultCode: resultCode, RecvID: UIDAndPID[0], @@ -165,7 +171,7 @@ func (r *RPCServer) MsgToUser(_ context.Context, in *pbRelay.MsgToUserReq) (*pbR } func sendMsgToUser(conn *UserConn, bMsg []byte, in *pbRelay.MsgToUserReq, RecvPlatForm, RecvID string) (ResultCode int64) { - err := ws.writeMsg(conn, websocket.TextMessage, bMsg) + err := ws.writeMsg(conn, websocket.BinaryMessage, bMsg) if err != nil { log.ErrorByKv("PushMsgToUser is failed By Ws", "", "Addr", conn.RemoteAddr().String(), "error", err, "senderPlatform", utils.PlatformIDToName(in.PlatformID), "recvPlatform", RecvPlatForm, "args", in.String(), "recvID", RecvID) diff --git a/src/proto/auth/auth.proto b/src/proto/auth/auth.proto index 94c664125..21b82ff40 100644 --- a/src/proto/auth/auth.proto +++ b/src/proto/auth/auth.proto @@ -1,6 +1,6 @@ syntax = "proto3"; package pbAuth; -option go_package = "auth;pbAuth"; +option go_package = "./auth;pbAuth"; message UserRegisterReq { string UID = 1; diff --git a/src/proto/chat/chat.proto b/src/proto/chat/chat.proto index 50f7ef652..19cf454ca 100644 --- a/src/proto/chat/chat.proto +++ b/src/proto/chat/chat.proto @@ -1,6 +1,6 @@ syntax = "proto3"; package pbChat;//The package name to which the proto file belongs -option go_package = "chat;pbChat";//The generated go pb file is in the current directory, and the package name is pbChat +option go_package = "./chat;pbChat";//The generated go pb file is in the current directory, and the package name is pbChat message WSToMsgSvrChatMsg{ string SendID = 1; diff --git a/src/proto/friend/friend.proto b/src/proto/friend/friend.proto index 7cbfc8c41..52b50d277 100644 --- a/src/proto/friend/friend.proto +++ b/src/proto/friend/friend.proto @@ -1,5 +1,5 @@ syntax = "proto3"; -option go_package = "friend;friend"; +option go_package = "./friend;friend"; package friend; message CommonResp{ diff --git a/src/proto/group/group.proto b/src/proto/group/group.proto index 3180e7a2f..ff1821ec2 100644 --- a/src/proto/group/group.proto +++ b/src/proto/group/group.proto @@ -1,5 +1,5 @@ syntax = "proto3"; -option go_package = "group;group"; +option go_package = "./group;group"; package group; message CommonResp{ diff --git a/src/proto/push/push.proto b/src/proto/push/push.proto index 7226aa543..60fddfe3b 100644 --- a/src/proto/push/push.proto +++ b/src/proto/push/push.proto @@ -1,5 +1,5 @@ syntax = "proto3"; -option go_package = "push;pbPush"; +option go_package = "./push;pbPush"; package push; message PushMsgReq { diff --git a/src/proto/relay/relay.proto b/src/proto/relay/relay.proto index 138163a80..56b876c67 100644 --- a/src/proto/relay/relay.proto +++ b/src/proto/relay/relay.proto @@ -1,5 +1,5 @@ syntax = "proto3"; -option go_package = "relay;pbRelay"; +option go_package = "./relay;pbRelay"; package relay; message MsgToUserReq { diff --git a/src/proto/user/user.proto b/src/proto/user/user.proto index d95960125..e1d38fec6 100644 --- a/src/proto/user/user.proto +++ b/src/proto/user/user.proto @@ -1,5 +1,5 @@ syntax = "proto3"; -option go_package = "user;user"; +option go_package = "./user;user"; package user; message CommonResp{ From 784ac4ecfcb9dc17513e7ca1943f409dd4da7659 Mon Sep 17 00:00:00 2001 From: root Date: Fri, 22 Oct 2021 20:09:38 +0800 Subject: [PATCH 004/814] pbfile --- src/proto/auth/auth.pb.go | 642 ++--- src/proto/chat/chat.pb.go | 1987 ++++++++------ src/proto/friend/friend.pb.go | 3297 ++++++++++++----------- src/proto/group/group.pb.go | 4631 +++++++++++++++++++-------------- src/proto/push/push.pb.go | 479 ++-- src/proto/relay/relay.pb.go | 583 +++-- src/proto/user/user.pb.go | 1365 +++++----- 7 files changed, 7197 insertions(+), 5787 deletions(-) diff --git a/src/proto/auth/auth.pb.go b/src/proto/auth/auth.pb.go index 8d1f4ea6e..67c338a52 100644 --- a/src/proto/auth/auth.pb.go +++ b/src/proto/auth/auth.pb.go @@ -1,404 +1,446 @@ // Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.26.0 +// protoc v3.7.1 // source: auth/auth.proto -package pbAuth // import "auth" - -import proto "github.com/golang/protobuf/proto" -import fmt "fmt" -import math "math" +package pbAuth import ( - context "golang.org/x/net/context" - grpc "google.golang.org/grpc" + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + reflect "reflect" + sync "sync" ) -// 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 +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) type UserRegisterReq struct { - UID string `protobuf:"bytes,1,opt,name=UID" json:"UID,omitempty"` - Name string `protobuf:"bytes,2,opt,name=Name" json:"Name,omitempty"` - Icon string `protobuf:"bytes,3,opt,name=Icon" json:"Icon,omitempty"` - Gender int32 `protobuf:"varint,4,opt,name=Gender" json:"Gender,omitempty"` - Mobile string `protobuf:"bytes,5,opt,name=Mobile" json:"Mobile,omitempty"` - Birth string `protobuf:"bytes,6,opt,name=Birth" json:"Birth,omitempty"` - Email string `protobuf:"bytes,7,opt,name=Email" json:"Email,omitempty"` - Ex string `protobuf:"bytes,8,opt,name=Ex" json:"Ex,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *UserRegisterReq) Reset() { *m = UserRegisterReq{} } -func (m *UserRegisterReq) String() string { return proto.CompactTextString(m) } -func (*UserRegisterReq) ProtoMessage() {} -func (*UserRegisterReq) Descriptor() ([]byte, []int) { - return fileDescriptor_auth_ef7bd0d2906761f0, []int{0} -} -func (m *UserRegisterReq) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_UserRegisterReq.Unmarshal(m, b) -} -func (m *UserRegisterReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_UserRegisterReq.Marshal(b, m, deterministic) -} -func (dst *UserRegisterReq) XXX_Merge(src proto.Message) { - xxx_messageInfo_UserRegisterReq.Merge(dst, src) + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + UID string `protobuf:"bytes,1,opt,name=UID,proto3" json:"UID,omitempty"` + Name string `protobuf:"bytes,2,opt,name=Name,proto3" json:"Name,omitempty"` + Icon string `protobuf:"bytes,3,opt,name=Icon,proto3" json:"Icon,omitempty"` + Gender int32 `protobuf:"varint,4,opt,name=Gender,proto3" json:"Gender,omitempty"` + Mobile string `protobuf:"bytes,5,opt,name=Mobile,proto3" json:"Mobile,omitempty"` + Birth string `protobuf:"bytes,6,opt,name=Birth,proto3" json:"Birth,omitempty"` + Email string `protobuf:"bytes,7,opt,name=Email,proto3" json:"Email,omitempty"` + Ex string `protobuf:"bytes,8,opt,name=Ex,proto3" json:"Ex,omitempty"` +} + +func (x *UserRegisterReq) Reset() { + *x = UserRegisterReq{} + if protoimpl.UnsafeEnabled { + mi := &file_auth_auth_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *UserRegisterReq) XXX_Size() int { - return xxx_messageInfo_UserRegisterReq.Size(m) + +func (x *UserRegisterReq) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *UserRegisterReq) XXX_DiscardUnknown() { - xxx_messageInfo_UserRegisterReq.DiscardUnknown(m) + +func (*UserRegisterReq) ProtoMessage() {} + +func (x *UserRegisterReq) ProtoReflect() protoreflect.Message { + mi := &file_auth_auth_proto_msgTypes[0] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) } -var xxx_messageInfo_UserRegisterReq proto.InternalMessageInfo +// Deprecated: Use UserRegisterReq.ProtoReflect.Descriptor instead. +func (*UserRegisterReq) Descriptor() ([]byte, []int) { + return file_auth_auth_proto_rawDescGZIP(), []int{0} +} -func (m *UserRegisterReq) GetUID() string { - if m != nil { - return m.UID +func (x *UserRegisterReq) GetUID() string { + if x != nil { + return x.UID } return "" } -func (m *UserRegisterReq) GetName() string { - if m != nil { - return m.Name +func (x *UserRegisterReq) GetName() string { + if x != nil { + return x.Name } return "" } -func (m *UserRegisterReq) GetIcon() string { - if m != nil { - return m.Icon +func (x *UserRegisterReq) GetIcon() string { + if x != nil { + return x.Icon } return "" } -func (m *UserRegisterReq) GetGender() int32 { - if m != nil { - return m.Gender +func (x *UserRegisterReq) GetGender() int32 { + if x != nil { + return x.Gender } return 0 } -func (m *UserRegisterReq) GetMobile() string { - if m != nil { - return m.Mobile +func (x *UserRegisterReq) GetMobile() string { + if x != nil { + return x.Mobile } return "" } -func (m *UserRegisterReq) GetBirth() string { - if m != nil { - return m.Birth +func (x *UserRegisterReq) GetBirth() string { + if x != nil { + return x.Birth } return "" } -func (m *UserRegisterReq) GetEmail() string { - if m != nil { - return m.Email +func (x *UserRegisterReq) GetEmail() string { + if x != nil { + return x.Email } return "" } -func (m *UserRegisterReq) GetEx() string { - if m != nil { - return m.Ex +func (x *UserRegisterReq) GetEx() string { + if x != nil { + return x.Ex } return "" } type UserRegisterResp struct { - Success bool `protobuf:"varint,1,opt,name=Success" json:"Success,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields -func (m *UserRegisterResp) Reset() { *m = UserRegisterResp{} } -func (m *UserRegisterResp) String() string { return proto.CompactTextString(m) } -func (*UserRegisterResp) ProtoMessage() {} -func (*UserRegisterResp) Descriptor() ([]byte, []int) { - return fileDescriptor_auth_ef7bd0d2906761f0, []int{1} -} -func (m *UserRegisterResp) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_UserRegisterResp.Unmarshal(m, b) -} -func (m *UserRegisterResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_UserRegisterResp.Marshal(b, m, deterministic) -} -func (dst *UserRegisterResp) XXX_Merge(src proto.Message) { - xxx_messageInfo_UserRegisterResp.Merge(dst, src) + Success bool `protobuf:"varint,1,opt,name=Success,proto3" json:"Success,omitempty"` } -func (m *UserRegisterResp) XXX_Size() int { - return xxx_messageInfo_UserRegisterResp.Size(m) + +func (x *UserRegisterResp) Reset() { + *x = UserRegisterResp{} + if protoimpl.UnsafeEnabled { + mi := &file_auth_auth_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *UserRegisterResp) XXX_DiscardUnknown() { - xxx_messageInfo_UserRegisterResp.DiscardUnknown(m) + +func (x *UserRegisterResp) String() string { + return protoimpl.X.MessageStringOf(x) } -var xxx_messageInfo_UserRegisterResp proto.InternalMessageInfo +func (*UserRegisterResp) ProtoMessage() {} -func (m *UserRegisterResp) GetSuccess() bool { - if m != nil { - return m.Success +func (x *UserRegisterResp) ProtoReflect() protoreflect.Message { + mi := &file_auth_auth_proto_msgTypes[1] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms } - return false + return mi.MessageOf(x) } -type UserTokenReq struct { - Platform int32 `protobuf:"varint,1,opt,name=Platform" json:"Platform,omitempty"` - UID string `protobuf:"bytes,2,opt,name=UID" json:"UID,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` +// Deprecated: Use UserRegisterResp.ProtoReflect.Descriptor instead. +func (*UserRegisterResp) Descriptor() ([]byte, []int) { + return file_auth_auth_proto_rawDescGZIP(), []int{1} } -func (m *UserTokenReq) Reset() { *m = UserTokenReq{} } -func (m *UserTokenReq) String() string { return proto.CompactTextString(m) } -func (*UserTokenReq) ProtoMessage() {} -func (*UserTokenReq) Descriptor() ([]byte, []int) { - return fileDescriptor_auth_ef7bd0d2906761f0, []int{2} -} -func (m *UserTokenReq) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_UserTokenReq.Unmarshal(m, b) -} -func (m *UserTokenReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_UserTokenReq.Marshal(b, m, deterministic) -} -func (dst *UserTokenReq) XXX_Merge(src proto.Message) { - xxx_messageInfo_UserTokenReq.Merge(dst, src) -} -func (m *UserTokenReq) XXX_Size() int { - return xxx_messageInfo_UserTokenReq.Size(m) -} -func (m *UserTokenReq) XXX_DiscardUnknown() { - xxx_messageInfo_UserTokenReq.DiscardUnknown(m) +func (x *UserRegisterResp) GetSuccess() bool { + if x != nil { + return x.Success + } + return false } -var xxx_messageInfo_UserTokenReq proto.InternalMessageInfo +type UserTokenReq struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields -func (m *UserTokenReq) GetPlatform() int32 { - if m != nil { - return m.Platform - } - return 0 + Platform int32 `protobuf:"varint,1,opt,name=Platform,proto3" json:"Platform,omitempty"` + UID string `protobuf:"bytes,2,opt,name=UID,proto3" json:"UID,omitempty"` } -func (m *UserTokenReq) GetUID() string { - if m != nil { - return m.UID +func (x *UserTokenReq) Reset() { + *x = UserTokenReq{} + if protoimpl.UnsafeEnabled { + mi := &file_auth_auth_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } - return "" } -type UserTokenResp struct { - ErrCode int32 `protobuf:"varint,1,opt,name=ErrCode" json:"ErrCode,omitempty"` - ErrMsg string `protobuf:"bytes,2,opt,name=ErrMsg" json:"ErrMsg,omitempty"` - Token string `protobuf:"bytes,3,opt,name=Token" json:"Token,omitempty"` - ExpiredTime int64 `protobuf:"varint,4,opt,name=ExpiredTime" json:"ExpiredTime,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *UserTokenResp) Reset() { *m = UserTokenResp{} } -func (m *UserTokenResp) String() string { return proto.CompactTextString(m) } -func (*UserTokenResp) ProtoMessage() {} -func (*UserTokenResp) Descriptor() ([]byte, []int) { - return fileDescriptor_auth_ef7bd0d2906761f0, []int{3} -} -func (m *UserTokenResp) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_UserTokenResp.Unmarshal(m, b) -} -func (m *UserTokenResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_UserTokenResp.Marshal(b, m, deterministic) -} -func (dst *UserTokenResp) XXX_Merge(src proto.Message) { - xxx_messageInfo_UserTokenResp.Merge(dst, src) -} -func (m *UserTokenResp) XXX_Size() int { - return xxx_messageInfo_UserTokenResp.Size(m) -} -func (m *UserTokenResp) XXX_DiscardUnknown() { - xxx_messageInfo_UserTokenResp.DiscardUnknown(m) +func (x *UserTokenReq) String() string { + return protoimpl.X.MessageStringOf(x) } -var xxx_messageInfo_UserTokenResp proto.InternalMessageInfo +func (*UserTokenReq) ProtoMessage() {} -func (m *UserTokenResp) GetErrCode() int32 { - if m != nil { - return m.ErrCode +func (x *UserTokenReq) ProtoReflect() protoreflect.Message { + mi := &file_auth_auth_proto_msgTypes[2] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms } - return 0 + return mi.MessageOf(x) +} + +// Deprecated: Use UserTokenReq.ProtoReflect.Descriptor instead. +func (*UserTokenReq) Descriptor() ([]byte, []int) { + return file_auth_auth_proto_rawDescGZIP(), []int{2} } -func (m *UserTokenResp) GetErrMsg() string { - if m != nil { - return m.ErrMsg +func (x *UserTokenReq) GetPlatform() int32 { + if x != nil { + return x.Platform } - return "" + return 0 } -func (m *UserTokenResp) GetToken() string { - if m != nil { - return m.Token +func (x *UserTokenReq) GetUID() string { + if x != nil { + return x.UID } return "" } -func (m *UserTokenResp) GetExpiredTime() int64 { - if m != nil { - return m.ExpiredTime +type UserTokenResp struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ErrCode int32 `protobuf:"varint,1,opt,name=ErrCode,proto3" json:"ErrCode,omitempty"` + ErrMsg string `protobuf:"bytes,2,opt,name=ErrMsg,proto3" json:"ErrMsg,omitempty"` + Token string `protobuf:"bytes,3,opt,name=Token,proto3" json:"Token,omitempty"` + ExpiredTime int64 `protobuf:"varint,4,opt,name=ExpiredTime,proto3" json:"ExpiredTime,omitempty"` +} + +func (x *UserTokenResp) Reset() { + *x = UserTokenResp{} + if protoimpl.UnsafeEnabled { + mi := &file_auth_auth_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } - return 0 } -func init() { - proto.RegisterType((*UserRegisterReq)(nil), "pbAuth.UserRegisterReq") - proto.RegisterType((*UserRegisterResp)(nil), "pbAuth.UserRegisterResp") - proto.RegisterType((*UserTokenReq)(nil), "pbAuth.UserTokenReq") - proto.RegisterType((*UserTokenResp)(nil), "pbAuth.UserTokenResp") +func (x *UserTokenResp) String() string { + return protoimpl.X.MessageStringOf(x) } -// 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 +func (*UserTokenResp) ProtoMessage() {} -// Client API for Auth service - -type AuthClient interface { - UserRegister(ctx context.Context, in *UserRegisterReq, opts ...grpc.CallOption) (*UserRegisterResp, error) - UserToken(ctx context.Context, in *UserTokenReq, opts ...grpc.CallOption) (*UserTokenResp, error) -} - -type authClient struct { - cc *grpc.ClientConn +func (x *UserTokenResp) ProtoReflect() protoreflect.Message { + mi := &file_auth_auth_proto_msgTypes[3] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) } -func NewAuthClient(cc *grpc.ClientConn) AuthClient { - return &authClient{cc} +// Deprecated: Use UserTokenResp.ProtoReflect.Descriptor instead. +func (*UserTokenResp) Descriptor() ([]byte, []int) { + return file_auth_auth_proto_rawDescGZIP(), []int{3} } -func (c *authClient) UserRegister(ctx context.Context, in *UserRegisterReq, opts ...grpc.CallOption) (*UserRegisterResp, error) { - out := new(UserRegisterResp) - err := grpc.Invoke(ctx, "/pbAuth.Auth/UserRegister", in, out, c.cc, opts...) - if err != nil { - return nil, err +func (x *UserTokenResp) GetErrCode() int32 { + if x != nil { + return x.ErrCode } - return out, nil + return 0 } -func (c *authClient) UserToken(ctx context.Context, in *UserTokenReq, opts ...grpc.CallOption) (*UserTokenResp, error) { - out := new(UserTokenResp) - err := grpc.Invoke(ctx, "/pbAuth.Auth/UserToken", in, out, c.cc, opts...) - if err != nil { - return nil, err +func (x *UserTokenResp) GetErrMsg() string { + if x != nil { + return x.ErrMsg } - return out, nil -} - -// Server API for Auth service - -type AuthServer interface { - UserRegister(context.Context, *UserRegisterReq) (*UserRegisterResp, error) - UserToken(context.Context, *UserTokenReq) (*UserTokenResp, error) + return "" } -func RegisterAuthServer(s *grpc.Server, srv AuthServer) { - s.RegisterService(&_Auth_serviceDesc, srv) +func (x *UserTokenResp) GetToken() string { + if x != nil { + return x.Token + } + return "" } -func _Auth_UserRegister_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(UserRegisterReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(AuthServer).UserRegister(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/pbAuth.Auth/UserRegister", +func (x *UserTokenResp) GetExpiredTime() int64 { + if x != nil { + return x.ExpiredTime } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(AuthServer).UserRegister(ctx, req.(*UserRegisterReq)) - } - return interceptor(ctx, in, info, handler) + return 0 } -func _Auth_UserToken_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(UserTokenReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(AuthServer).UserToken(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/pbAuth.Auth/UserToken", +var File_auth_auth_proto protoreflect.FileDescriptor + +var file_auth_auth_proto_rawDesc = []byte{ + 0x0a, 0x0f, 0x61, 0x75, 0x74, 0x68, 0x2f, 0x61, 0x75, 0x74, 0x68, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x12, 0x06, 0x70, 0x62, 0x41, 0x75, 0x74, 0x68, 0x22, 0xb7, 0x01, 0x0a, 0x0f, 0x55, 0x73, + 0x65, 0x72, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x52, 0x65, 0x71, 0x12, 0x10, 0x0a, + 0x03, 0x55, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x55, 0x49, 0x44, 0x12, + 0x12, 0x0a, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x4e, + 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x49, 0x63, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x04, 0x49, 0x63, 0x6f, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x47, 0x65, 0x6e, 0x64, 0x65, + 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x47, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x12, + 0x16, 0x0a, 0x06, 0x4d, 0x6f, 0x62, 0x69, 0x6c, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x06, 0x4d, 0x6f, 0x62, 0x69, 0x6c, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x42, 0x69, 0x72, 0x74, 0x68, + 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x42, 0x69, 0x72, 0x74, 0x68, 0x12, 0x14, 0x0a, + 0x05, 0x45, 0x6d, 0x61, 0x69, 0x6c, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x45, 0x6d, + 0x61, 0x69, 0x6c, 0x12, 0x0e, 0x0a, 0x02, 0x45, 0x78, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x02, 0x45, 0x78, 0x22, 0x2c, 0x0a, 0x10, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x67, 0x69, 0x73, + 0x74, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x12, 0x18, 0x0a, 0x07, 0x53, 0x75, 0x63, 0x63, 0x65, + 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, + 0x73, 0x22, 0x3c, 0x0a, 0x0c, 0x55, 0x73, 0x65, 0x72, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x65, + 0x71, 0x12, 0x1a, 0x0a, 0x08, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x08, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x12, 0x10, 0x0a, + 0x03, 0x55, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x55, 0x49, 0x44, 0x22, + 0x79, 0x0a, 0x0d, 0x55, 0x73, 0x65, 0x72, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x65, 0x73, 0x70, + 0x12, 0x18, 0x0a, 0x07, 0x45, 0x72, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x07, 0x45, 0x72, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x45, 0x72, + 0x72, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x45, 0x72, 0x72, 0x4d, + 0x73, 0x67, 0x12, 0x14, 0x0a, 0x05, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x05, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x20, 0x0a, 0x0b, 0x45, 0x78, 0x70, 0x69, + 0x72, 0x65, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x45, + 0x78, 0x70, 0x69, 0x72, 0x65, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x32, 0x83, 0x01, 0x0a, 0x04, 0x41, + 0x75, 0x74, 0x68, 0x12, 0x41, 0x0a, 0x0c, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x67, 0x69, 0x73, + 0x74, 0x65, 0x72, 0x12, 0x17, 0x2e, 0x70, 0x62, 0x41, 0x75, 0x74, 0x68, 0x2e, 0x55, 0x73, 0x65, + 0x72, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x52, 0x65, 0x71, 0x1a, 0x18, 0x2e, 0x70, + 0x62, 0x41, 0x75, 0x74, 0x68, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, + 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x12, 0x38, 0x0a, 0x09, 0x55, 0x73, 0x65, 0x72, 0x54, 0x6f, + 0x6b, 0x65, 0x6e, 0x12, 0x14, 0x2e, 0x70, 0x62, 0x41, 0x75, 0x74, 0x68, 0x2e, 0x55, 0x73, 0x65, + 0x72, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x65, 0x71, 0x1a, 0x15, 0x2e, 0x70, 0x62, 0x41, 0x75, + 0x74, 0x68, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x65, 0x73, 0x70, + 0x42, 0x0f, 0x5a, 0x0d, 0x2e, 0x2f, 0x61, 0x75, 0x74, 0x68, 0x3b, 0x70, 0x62, 0x41, 0x75, 0x74, + 0x68, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_auth_auth_proto_rawDescOnce sync.Once + file_auth_auth_proto_rawDescData = file_auth_auth_proto_rawDesc +) + +func file_auth_auth_proto_rawDescGZIP() []byte { + file_auth_auth_proto_rawDescOnce.Do(func() { + file_auth_auth_proto_rawDescData = protoimpl.X.CompressGZIP(file_auth_auth_proto_rawDescData) + }) + return file_auth_auth_proto_rawDescData +} + +var file_auth_auth_proto_msgTypes = make([]protoimpl.MessageInfo, 4) +var file_auth_auth_proto_goTypes = []interface{}{ + (*UserRegisterReq)(nil), // 0: pbAuth.UserRegisterReq + (*UserRegisterResp)(nil), // 1: pbAuth.UserRegisterResp + (*UserTokenReq)(nil), // 2: pbAuth.UserTokenReq + (*UserTokenResp)(nil), // 3: pbAuth.UserTokenResp +} +var file_auth_auth_proto_depIdxs = []int32{ + 0, // 0: pbAuth.Auth.UserRegister:input_type -> pbAuth.UserRegisterReq + 2, // 1: pbAuth.Auth.UserToken:input_type -> pbAuth.UserTokenReq + 1, // 2: pbAuth.Auth.UserRegister:output_type -> pbAuth.UserRegisterResp + 3, // 3: pbAuth.Auth.UserToken:output_type -> pbAuth.UserTokenResp + 2, // [2:4] is the sub-list for method output_type + 0, // [0:2] is the sub-list for method input_type + 0, // [0:0] is the sub-list for extension type_name + 0, // [0:0] is the sub-list for extension extendee + 0, // [0:0] is the sub-list for field type_name +} + +func init() { file_auth_auth_proto_init() } +func file_auth_auth_proto_init() { + if File_auth_auth_proto != nil { + return } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(AuthServer).UserToken(ctx, req.(*UserTokenReq)) + if !protoimpl.UnsafeEnabled { + file_auth_auth_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UserRegisterReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_auth_auth_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UserRegisterResp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_auth_auth_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UserTokenReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_auth_auth_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UserTokenResp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } } - return interceptor(ctx, in, info, handler) -} - -var _Auth_serviceDesc = grpc.ServiceDesc{ - ServiceName: "pbAuth.Auth", - HandlerType: (*AuthServer)(nil), - Methods: []grpc.MethodDesc{ - { - MethodName: "UserRegister", - Handler: _Auth_UserRegister_Handler, - }, - { - MethodName: "UserToken", - Handler: _Auth_UserToken_Handler, + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_auth_auth_proto_rawDesc, + NumEnums: 0, + NumMessages: 4, + NumExtensions: 0, + NumServices: 1, }, - }, - Streams: []grpc.StreamDesc{}, - Metadata: "auth/auth.proto", -} - -func init() { proto.RegisterFile("auth/auth.proto", fileDescriptor_auth_ef7bd0d2906761f0) } - -var fileDescriptor_auth_ef7bd0d2906761f0 = []byte{ - // 346 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x6c, 0x92, 0xc1, 0x4e, 0xc2, 0x40, - 0x10, 0x86, 0xd3, 0x42, 0x0b, 0x0c, 0x22, 0x64, 0x82, 0xba, 0xe1, 0x44, 0x7a, 0xe2, 0x60, 0x30, - 0xd1, 0x8b, 0x89, 0x5e, 0x40, 0x1b, 0xc3, 0x01, 0x63, 0x2a, 0x5c, 0xbc, 0x15, 0x58, 0xa1, 0x91, - 0xb2, 0x75, 0xb7, 0x24, 0x78, 0xf6, 0xa1, 0x7c, 0x3d, 0x33, 0xbb, 0x5b, 0x82, 0x86, 0x4b, 0x3b, - 0xff, 0xb7, 0x33, 0xd9, 0xfd, 0x67, 0x06, 0x9a, 0xf1, 0x36, 0x5f, 0x5d, 0xd1, 0xa7, 0x9f, 0x49, - 0x91, 0x0b, 0xf4, 0xb3, 0xd9, 0x60, 0x9b, 0xaf, 0x82, 0x1f, 0x07, 0x9a, 0x53, 0xc5, 0x65, 0xc4, - 0x97, 0x89, 0xca, 0xe9, 0xff, 0x89, 0x2d, 0x28, 0x4d, 0x47, 0x8f, 0xcc, 0xe9, 0x3a, 0xbd, 0x5a, - 0x44, 0x21, 0x22, 0x94, 0x9f, 0xe3, 0x94, 0x33, 0x57, 0x23, 0x1d, 0x13, 0x1b, 0xcd, 0xc5, 0x86, - 0x95, 0x0c, 0xa3, 0x18, 0xcf, 0xc1, 0x7f, 0xe2, 0x9b, 0x05, 0x97, 0xac, 0xdc, 0x75, 0x7a, 0x5e, - 0x64, 0x15, 0xf1, 0xb1, 0x98, 0x25, 0x6b, 0xce, 0x3c, 0x9d, 0x6d, 0x15, 0xb6, 0xc1, 0x1b, 0x26, - 0x32, 0x5f, 0x31, 0x5f, 0x63, 0x23, 0x88, 0x86, 0x69, 0x9c, 0xac, 0x59, 0xc5, 0x50, 0x2d, 0xf0, - 0x14, 0xdc, 0x70, 0xc7, 0xaa, 0x1a, 0xb9, 0xe1, 0x2e, 0xb8, 0x84, 0xd6, 0xdf, 0x87, 0xab, 0x0c, - 0x19, 0x54, 0x5e, 0xb7, 0xf3, 0x39, 0x57, 0x4a, 0xbf, 0xbe, 0x1a, 0x15, 0x32, 0xb8, 0x87, 0x13, - 0xca, 0x9e, 0x88, 0x0f, 0xbe, 0x21, 0x8f, 0x1d, 0xa8, 0xbe, 0xac, 0xe3, 0xfc, 0x5d, 0xc8, 0x54, - 0xa7, 0x7a, 0xd1, 0x5e, 0x17, 0xfe, 0xdd, 0xbd, 0xff, 0xe0, 0x0b, 0x1a, 0x07, 0xd5, 0xe6, 0xa2, - 0x50, 0xca, 0x07, 0xb1, 0xe0, 0xb6, 0xba, 0x90, 0x64, 0x35, 0x94, 0x72, 0xac, 0x96, 0xb6, 0xde, - 0x2a, 0x32, 0xa5, 0xcb, 0x6d, 0xbf, 0x8c, 0xc0, 0x2e, 0xd4, 0xc3, 0x5d, 0x96, 0x48, 0xbe, 0x98, - 0x24, 0x29, 0xd7, 0x5d, 0x2b, 0x45, 0x87, 0xe8, 0xfa, 0xdb, 0x81, 0x32, 0x4d, 0x0a, 0x07, 0xc6, - 0x41, 0xe1, 0x17, 0x2f, 0xfa, 0x66, 0x84, 0xfd, 0x7f, 0xe3, 0xeb, 0xb0, 0xe3, 0x07, 0x2a, 0xc3, - 0x5b, 0xa8, 0xed, 0x6d, 0x60, 0xfb, 0x30, 0xad, 0xe8, 0x4b, 0xe7, 0xec, 0x08, 0x55, 0xd9, 0xb0, - 0xf1, 0x56, 0xa7, 0xe5, 0xb9, 0x33, 0x87, 0x33, 0x5f, 0x2f, 0xd1, 0xcd, 0x6f, 0x00, 0x00, 0x00, - 0xff, 0xff, 0x03, 0x0f, 0xb1, 0xb3, 0x57, 0x02, 0x00, 0x00, + GoTypes: file_auth_auth_proto_goTypes, + DependencyIndexes: file_auth_auth_proto_depIdxs, + MessageInfos: file_auth_auth_proto_msgTypes, + }.Build() + File_auth_auth_proto = out.File + file_auth_auth_proto_rawDesc = nil + file_auth_auth_proto_goTypes = nil + file_auth_auth_proto_depIdxs = nil } diff --git a/src/proto/chat/chat.pb.go b/src/proto/chat/chat.pb.go index 87867262a..ba4023579 100644 --- a/src/proto/chat/chat.pb.go +++ b/src/proto/chat/chat.pb.go @@ -1,1324 +1,1587 @@ // Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.26.0 +// protoc v3.7.1 // source: chat/chat.proto -package pbChat // import "chat" - -import proto "github.com/golang/protobuf/proto" -import fmt "fmt" -import math "math" +package pbChat import ( - context "golang.org/x/net/context" - grpc "google.golang.org/grpc" + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + reflect "reflect" + sync "sync" ) -// 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 +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) type WSToMsgSvrChatMsg struct { - SendID string `protobuf:"bytes,1,opt,name=SendID" json:"SendID,omitempty"` - RecvID string `protobuf:"bytes,2,opt,name=RecvID" json:"RecvID,omitempty"` - Content string `protobuf:"bytes,3,opt,name=Content" json:"Content,omitempty"` - SendTime int64 `protobuf:"varint,4,opt,name=SendTime" json:"SendTime,omitempty"` - MsgFrom int32 `protobuf:"varint,5,opt,name=MsgFrom" json:"MsgFrom,omitempty"` - SenderNickName string `protobuf:"bytes,6,opt,name=SenderNickName" json:"SenderNickName,omitempty"` - SenderFaceURL string `protobuf:"bytes,7,opt,name=SenderFaceURL" json:"SenderFaceURL,omitempty"` - ContentType int32 `protobuf:"varint,8,opt,name=ContentType" json:"ContentType,omitempty"` - SessionType int32 `protobuf:"varint,9,opt,name=SessionType" json:"SessionType,omitempty"` - OperationID string `protobuf:"bytes,10,opt,name=OperationID" json:"OperationID,omitempty"` - MsgID string `protobuf:"bytes,11,opt,name=MsgID" json:"MsgID,omitempty"` - Token string `protobuf:"bytes,12,opt,name=Token" json:"Token,omitempty"` - OfflineInfo string `protobuf:"bytes,13,opt,name=OfflineInfo" json:"OfflineInfo,omitempty"` - Options string `protobuf:"bytes,14,opt,name=Options" json:"Options,omitempty"` - PlatformID int32 `protobuf:"varint,15,opt,name=PlatformID" json:"PlatformID,omitempty"` - ForceList []string `protobuf:"bytes,16,rep,name=ForceList" json:"ForceList,omitempty"` - ClientMsgID string `protobuf:"bytes,17,opt,name=ClientMsgID" json:"ClientMsgID,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *WSToMsgSvrChatMsg) Reset() { *m = WSToMsgSvrChatMsg{} } -func (m *WSToMsgSvrChatMsg) String() string { return proto.CompactTextString(m) } -func (*WSToMsgSvrChatMsg) ProtoMessage() {} -func (*WSToMsgSvrChatMsg) Descriptor() ([]byte, []int) { - return fileDescriptor_chat_4f51bfe711d80421, []int{0} -} -func (m *WSToMsgSvrChatMsg) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_WSToMsgSvrChatMsg.Unmarshal(m, b) -} -func (m *WSToMsgSvrChatMsg) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_WSToMsgSvrChatMsg.Marshal(b, m, deterministic) + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + SendID string `protobuf:"bytes,1,opt,name=SendID,proto3" json:"SendID,omitempty"` + RecvID string `protobuf:"bytes,2,opt,name=RecvID,proto3" json:"RecvID,omitempty"` + Content string `protobuf:"bytes,3,opt,name=Content,proto3" json:"Content,omitempty"` + SendTime int64 `protobuf:"varint,4,opt,name=SendTime,proto3" json:"SendTime,omitempty"` + MsgFrom int32 `protobuf:"varint,5,opt,name=MsgFrom,proto3" json:"MsgFrom,omitempty"` + SenderNickName string `protobuf:"bytes,6,opt,name=SenderNickName,proto3" json:"SenderNickName,omitempty"` + SenderFaceURL string `protobuf:"bytes,7,opt,name=SenderFaceURL,proto3" json:"SenderFaceURL,omitempty"` + ContentType int32 `protobuf:"varint,8,opt,name=ContentType,proto3" json:"ContentType,omitempty"` + SessionType int32 `protobuf:"varint,9,opt,name=SessionType,proto3" json:"SessionType,omitempty"` + OperationID string `protobuf:"bytes,10,opt,name=OperationID,proto3" json:"OperationID,omitempty"` + MsgID string `protobuf:"bytes,11,opt,name=MsgID,proto3" json:"MsgID,omitempty"` + Token string `protobuf:"bytes,12,opt,name=Token,proto3" json:"Token,omitempty"` + OfflineInfo string `protobuf:"bytes,13,opt,name=OfflineInfo,proto3" json:"OfflineInfo,omitempty"` + Options string `protobuf:"bytes,14,opt,name=Options,proto3" json:"Options,omitempty"` + PlatformID int32 `protobuf:"varint,15,opt,name=PlatformID,proto3" json:"PlatformID,omitempty"` + ForceList []string `protobuf:"bytes,16,rep,name=ForceList,proto3" json:"ForceList,omitempty"` + ClientMsgID string `protobuf:"bytes,17,opt,name=ClientMsgID,proto3" json:"ClientMsgID,omitempty"` } -func (dst *WSToMsgSvrChatMsg) XXX_Merge(src proto.Message) { - xxx_messageInfo_WSToMsgSvrChatMsg.Merge(dst, src) + +func (x *WSToMsgSvrChatMsg) Reset() { + *x = WSToMsgSvrChatMsg{} + if protoimpl.UnsafeEnabled { + mi := &file_chat_chat_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *WSToMsgSvrChatMsg) XXX_Size() int { - return xxx_messageInfo_WSToMsgSvrChatMsg.Size(m) + +func (x *WSToMsgSvrChatMsg) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *WSToMsgSvrChatMsg) XXX_DiscardUnknown() { - xxx_messageInfo_WSToMsgSvrChatMsg.DiscardUnknown(m) + +func (*WSToMsgSvrChatMsg) ProtoMessage() {} + +func (x *WSToMsgSvrChatMsg) ProtoReflect() protoreflect.Message { + mi := &file_chat_chat_proto_msgTypes[0] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) } -var xxx_messageInfo_WSToMsgSvrChatMsg proto.InternalMessageInfo +// Deprecated: Use WSToMsgSvrChatMsg.ProtoReflect.Descriptor instead. +func (*WSToMsgSvrChatMsg) Descriptor() ([]byte, []int) { + return file_chat_chat_proto_rawDescGZIP(), []int{0} +} -func (m *WSToMsgSvrChatMsg) GetSendID() string { - if m != nil { - return m.SendID +func (x *WSToMsgSvrChatMsg) GetSendID() string { + if x != nil { + return x.SendID } return "" } -func (m *WSToMsgSvrChatMsg) GetRecvID() string { - if m != nil { - return m.RecvID +func (x *WSToMsgSvrChatMsg) GetRecvID() string { + if x != nil { + return x.RecvID } return "" } -func (m *WSToMsgSvrChatMsg) GetContent() string { - if m != nil { - return m.Content +func (x *WSToMsgSvrChatMsg) GetContent() string { + if x != nil { + return x.Content } return "" } -func (m *WSToMsgSvrChatMsg) GetSendTime() int64 { - if m != nil { - return m.SendTime +func (x *WSToMsgSvrChatMsg) GetSendTime() int64 { + if x != nil { + return x.SendTime } return 0 } -func (m *WSToMsgSvrChatMsg) GetMsgFrom() int32 { - if m != nil { - return m.MsgFrom +func (x *WSToMsgSvrChatMsg) GetMsgFrom() int32 { + if x != nil { + return x.MsgFrom } return 0 } -func (m *WSToMsgSvrChatMsg) GetSenderNickName() string { - if m != nil { - return m.SenderNickName +func (x *WSToMsgSvrChatMsg) GetSenderNickName() string { + if x != nil { + return x.SenderNickName } return "" } -func (m *WSToMsgSvrChatMsg) GetSenderFaceURL() string { - if m != nil { - return m.SenderFaceURL +func (x *WSToMsgSvrChatMsg) GetSenderFaceURL() string { + if x != nil { + return x.SenderFaceURL } return "" } -func (m *WSToMsgSvrChatMsg) GetContentType() int32 { - if m != nil { - return m.ContentType +func (x *WSToMsgSvrChatMsg) GetContentType() int32 { + if x != nil { + return x.ContentType } return 0 } -func (m *WSToMsgSvrChatMsg) GetSessionType() int32 { - if m != nil { - return m.SessionType +func (x *WSToMsgSvrChatMsg) GetSessionType() int32 { + if x != nil { + return x.SessionType } return 0 } -func (m *WSToMsgSvrChatMsg) GetOperationID() string { - if m != nil { - return m.OperationID +func (x *WSToMsgSvrChatMsg) GetOperationID() string { + if x != nil { + return x.OperationID } return "" } -func (m *WSToMsgSvrChatMsg) GetMsgID() string { - if m != nil { - return m.MsgID +func (x *WSToMsgSvrChatMsg) GetMsgID() string { + if x != nil { + return x.MsgID } return "" } -func (m *WSToMsgSvrChatMsg) GetToken() string { - if m != nil { - return m.Token +func (x *WSToMsgSvrChatMsg) GetToken() string { + if x != nil { + return x.Token } return "" } -func (m *WSToMsgSvrChatMsg) GetOfflineInfo() string { - if m != nil { - return m.OfflineInfo +func (x *WSToMsgSvrChatMsg) GetOfflineInfo() string { + if x != nil { + return x.OfflineInfo } return "" } -func (m *WSToMsgSvrChatMsg) GetOptions() string { - if m != nil { - return m.Options +func (x *WSToMsgSvrChatMsg) GetOptions() string { + if x != nil { + return x.Options } return "" } -func (m *WSToMsgSvrChatMsg) GetPlatformID() int32 { - if m != nil { - return m.PlatformID +func (x *WSToMsgSvrChatMsg) GetPlatformID() int32 { + if x != nil { + return x.PlatformID } return 0 } -func (m *WSToMsgSvrChatMsg) GetForceList() []string { - if m != nil { - return m.ForceList +func (x *WSToMsgSvrChatMsg) GetForceList() []string { + if x != nil { + return x.ForceList } return nil } -func (m *WSToMsgSvrChatMsg) GetClientMsgID() string { - if m != nil { - return m.ClientMsgID +func (x *WSToMsgSvrChatMsg) GetClientMsgID() string { + if x != nil { + return x.ClientMsgID } return "" } type MsgSvrToPushSvrChatMsg struct { - SendID string `protobuf:"bytes,1,opt,name=SendID" json:"SendID,omitempty"` - RecvID string `protobuf:"bytes,2,opt,name=RecvID" json:"RecvID,omitempty"` - Content string `protobuf:"bytes,3,opt,name=Content" json:"Content,omitempty"` - RecvSeq int64 `protobuf:"varint,4,opt,name=RecvSeq" json:"RecvSeq,omitempty"` - SendTime int64 `protobuf:"varint,5,opt,name=SendTime" json:"SendTime,omitempty"` - MsgFrom int32 `protobuf:"varint,6,opt,name=MsgFrom" json:"MsgFrom,omitempty"` - SenderNickName string `protobuf:"bytes,7,opt,name=SenderNickName" json:"SenderNickName,omitempty"` - SenderFaceURL string `protobuf:"bytes,8,opt,name=SenderFaceURL" json:"SenderFaceURL,omitempty"` - ContentType int32 `protobuf:"varint,9,opt,name=ContentType" json:"ContentType,omitempty"` - SessionType int32 `protobuf:"varint,10,opt,name=SessionType" json:"SessionType,omitempty"` - OperationID string `protobuf:"bytes,11,opt,name=OperationID" json:"OperationID,omitempty"` - MsgID string `protobuf:"bytes,12,opt,name=MsgID" json:"MsgID,omitempty"` - OfflineInfo string `protobuf:"bytes,13,opt,name=OfflineInfo" json:"OfflineInfo,omitempty"` - Options string `protobuf:"bytes,14,opt,name=Options" json:"Options,omitempty"` - PlatformID int32 `protobuf:"varint,15,opt,name=PlatformID" json:"PlatformID,omitempty"` - ClientMsgID string `protobuf:"bytes,16,opt,name=ClientMsgID" json:"ClientMsgID,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *MsgSvrToPushSvrChatMsg) Reset() { *m = MsgSvrToPushSvrChatMsg{} } -func (m *MsgSvrToPushSvrChatMsg) String() string { return proto.CompactTextString(m) } -func (*MsgSvrToPushSvrChatMsg) ProtoMessage() {} -func (*MsgSvrToPushSvrChatMsg) Descriptor() ([]byte, []int) { - return fileDescriptor_chat_4f51bfe711d80421, []int{1} -} -func (m *MsgSvrToPushSvrChatMsg) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_MsgSvrToPushSvrChatMsg.Unmarshal(m, b) -} -func (m *MsgSvrToPushSvrChatMsg) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_MsgSvrToPushSvrChatMsg.Marshal(b, m, deterministic) + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + SendID string `protobuf:"bytes,1,opt,name=SendID,proto3" json:"SendID,omitempty"` + RecvID string `protobuf:"bytes,2,opt,name=RecvID,proto3" json:"RecvID,omitempty"` + Content string `protobuf:"bytes,3,opt,name=Content,proto3" json:"Content,omitempty"` + RecvSeq int64 `protobuf:"varint,4,opt,name=RecvSeq,proto3" json:"RecvSeq,omitempty"` + SendTime int64 `protobuf:"varint,5,opt,name=SendTime,proto3" json:"SendTime,omitempty"` + MsgFrom int32 `protobuf:"varint,6,opt,name=MsgFrom,proto3" json:"MsgFrom,omitempty"` + SenderNickName string `protobuf:"bytes,7,opt,name=SenderNickName,proto3" json:"SenderNickName,omitempty"` + SenderFaceURL string `protobuf:"bytes,8,opt,name=SenderFaceURL,proto3" json:"SenderFaceURL,omitempty"` + ContentType int32 `protobuf:"varint,9,opt,name=ContentType,proto3" json:"ContentType,omitempty"` + SessionType int32 `protobuf:"varint,10,opt,name=SessionType,proto3" json:"SessionType,omitempty"` + OperationID string `protobuf:"bytes,11,opt,name=OperationID,proto3" json:"OperationID,omitempty"` + MsgID string `protobuf:"bytes,12,opt,name=MsgID,proto3" json:"MsgID,omitempty"` + OfflineInfo string `protobuf:"bytes,13,opt,name=OfflineInfo,proto3" json:"OfflineInfo,omitempty"` + Options string `protobuf:"bytes,14,opt,name=Options,proto3" json:"Options,omitempty"` + PlatformID int32 `protobuf:"varint,15,opt,name=PlatformID,proto3" json:"PlatformID,omitempty"` + ClientMsgID string `protobuf:"bytes,16,opt,name=ClientMsgID,proto3" json:"ClientMsgID,omitempty"` } -func (dst *MsgSvrToPushSvrChatMsg) XXX_Merge(src proto.Message) { - xxx_messageInfo_MsgSvrToPushSvrChatMsg.Merge(dst, src) + +func (x *MsgSvrToPushSvrChatMsg) Reset() { + *x = MsgSvrToPushSvrChatMsg{} + if protoimpl.UnsafeEnabled { + mi := &file_chat_chat_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *MsgSvrToPushSvrChatMsg) XXX_Size() int { - return xxx_messageInfo_MsgSvrToPushSvrChatMsg.Size(m) + +func (x *MsgSvrToPushSvrChatMsg) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *MsgSvrToPushSvrChatMsg) XXX_DiscardUnknown() { - xxx_messageInfo_MsgSvrToPushSvrChatMsg.DiscardUnknown(m) + +func (*MsgSvrToPushSvrChatMsg) ProtoMessage() {} + +func (x *MsgSvrToPushSvrChatMsg) ProtoReflect() protoreflect.Message { + mi := &file_chat_chat_proto_msgTypes[1] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) } -var xxx_messageInfo_MsgSvrToPushSvrChatMsg proto.InternalMessageInfo +// Deprecated: Use MsgSvrToPushSvrChatMsg.ProtoReflect.Descriptor instead. +func (*MsgSvrToPushSvrChatMsg) Descriptor() ([]byte, []int) { + return file_chat_chat_proto_rawDescGZIP(), []int{1} +} -func (m *MsgSvrToPushSvrChatMsg) GetSendID() string { - if m != nil { - return m.SendID +func (x *MsgSvrToPushSvrChatMsg) GetSendID() string { + if x != nil { + return x.SendID } return "" } -func (m *MsgSvrToPushSvrChatMsg) GetRecvID() string { - if m != nil { - return m.RecvID +func (x *MsgSvrToPushSvrChatMsg) GetRecvID() string { + if x != nil { + return x.RecvID } return "" } -func (m *MsgSvrToPushSvrChatMsg) GetContent() string { - if m != nil { - return m.Content +func (x *MsgSvrToPushSvrChatMsg) GetContent() string { + if x != nil { + return x.Content } return "" } -func (m *MsgSvrToPushSvrChatMsg) GetRecvSeq() int64 { - if m != nil { - return m.RecvSeq +func (x *MsgSvrToPushSvrChatMsg) GetRecvSeq() int64 { + if x != nil { + return x.RecvSeq } return 0 } -func (m *MsgSvrToPushSvrChatMsg) GetSendTime() int64 { - if m != nil { - return m.SendTime +func (x *MsgSvrToPushSvrChatMsg) GetSendTime() int64 { + if x != nil { + return x.SendTime } return 0 } -func (m *MsgSvrToPushSvrChatMsg) GetMsgFrom() int32 { - if m != nil { - return m.MsgFrom +func (x *MsgSvrToPushSvrChatMsg) GetMsgFrom() int32 { + if x != nil { + return x.MsgFrom } return 0 } -func (m *MsgSvrToPushSvrChatMsg) GetSenderNickName() string { - if m != nil { - return m.SenderNickName +func (x *MsgSvrToPushSvrChatMsg) GetSenderNickName() string { + if x != nil { + return x.SenderNickName } return "" } -func (m *MsgSvrToPushSvrChatMsg) GetSenderFaceURL() string { - if m != nil { - return m.SenderFaceURL +func (x *MsgSvrToPushSvrChatMsg) GetSenderFaceURL() string { + if x != nil { + return x.SenderFaceURL } return "" } -func (m *MsgSvrToPushSvrChatMsg) GetContentType() int32 { - if m != nil { - return m.ContentType +func (x *MsgSvrToPushSvrChatMsg) GetContentType() int32 { + if x != nil { + return x.ContentType } return 0 } -func (m *MsgSvrToPushSvrChatMsg) GetSessionType() int32 { - if m != nil { - return m.SessionType +func (x *MsgSvrToPushSvrChatMsg) GetSessionType() int32 { + if x != nil { + return x.SessionType } return 0 } -func (m *MsgSvrToPushSvrChatMsg) GetOperationID() string { - if m != nil { - return m.OperationID +func (x *MsgSvrToPushSvrChatMsg) GetOperationID() string { + if x != nil { + return x.OperationID } return "" } -func (m *MsgSvrToPushSvrChatMsg) GetMsgID() string { - if m != nil { - return m.MsgID +func (x *MsgSvrToPushSvrChatMsg) GetMsgID() string { + if x != nil { + return x.MsgID } return "" } -func (m *MsgSvrToPushSvrChatMsg) GetOfflineInfo() string { - if m != nil { - return m.OfflineInfo +func (x *MsgSvrToPushSvrChatMsg) GetOfflineInfo() string { + if x != nil { + return x.OfflineInfo } return "" } -func (m *MsgSvrToPushSvrChatMsg) GetOptions() string { - if m != nil { - return m.Options +func (x *MsgSvrToPushSvrChatMsg) GetOptions() string { + if x != nil { + return x.Options } return "" } -func (m *MsgSvrToPushSvrChatMsg) GetPlatformID() int32 { - if m != nil { - return m.PlatformID +func (x *MsgSvrToPushSvrChatMsg) GetPlatformID() int32 { + if x != nil { + return x.PlatformID } return 0 } -func (m *MsgSvrToPushSvrChatMsg) GetClientMsgID() string { - if m != nil { - return m.ClientMsgID +func (x *MsgSvrToPushSvrChatMsg) GetClientMsgID() string { + if x != nil { + return x.ClientMsgID } return "" } type PullMessageReq struct { - UserID string `protobuf:"bytes,1,opt,name=UserID" json:"UserID,omitempty"` - SeqBegin int64 `protobuf:"varint,2,opt,name=SeqBegin" json:"SeqBegin,omitempty"` - SeqEnd int64 `protobuf:"varint,3,opt,name=SeqEnd" json:"SeqEnd,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 *PullMessageReq) Reset() { *m = PullMessageReq{} } -func (m *PullMessageReq) String() string { return proto.CompactTextString(m) } -func (*PullMessageReq) ProtoMessage() {} -func (*PullMessageReq) Descriptor() ([]byte, []int) { - return fileDescriptor_chat_4f51bfe711d80421, []int{2} -} -func (m *PullMessageReq) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_PullMessageReq.Unmarshal(m, b) -} -func (m *PullMessageReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_PullMessageReq.Marshal(b, m, deterministic) + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + UserID string `protobuf:"bytes,1,opt,name=UserID,proto3" json:"UserID,omitempty"` + SeqBegin int64 `protobuf:"varint,2,opt,name=SeqBegin,proto3" json:"SeqBegin,omitempty"` + SeqEnd int64 `protobuf:"varint,3,opt,name=SeqEnd,proto3" json:"SeqEnd,omitempty"` + OperationID string `protobuf:"bytes,4,opt,name=OperationID,proto3" json:"OperationID,omitempty"` } -func (dst *PullMessageReq) XXX_Merge(src proto.Message) { - xxx_messageInfo_PullMessageReq.Merge(dst, src) + +func (x *PullMessageReq) Reset() { + *x = PullMessageReq{} + if protoimpl.UnsafeEnabled { + mi := &file_chat_chat_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *PullMessageReq) XXX_Size() int { - return xxx_messageInfo_PullMessageReq.Size(m) + +func (x *PullMessageReq) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *PullMessageReq) XXX_DiscardUnknown() { - xxx_messageInfo_PullMessageReq.DiscardUnknown(m) + +func (*PullMessageReq) ProtoMessage() {} + +func (x *PullMessageReq) ProtoReflect() protoreflect.Message { + mi := &file_chat_chat_proto_msgTypes[2] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) } -var xxx_messageInfo_PullMessageReq proto.InternalMessageInfo +// Deprecated: Use PullMessageReq.ProtoReflect.Descriptor instead. +func (*PullMessageReq) Descriptor() ([]byte, []int) { + return file_chat_chat_proto_rawDescGZIP(), []int{2} +} -func (m *PullMessageReq) GetUserID() string { - if m != nil { - return m.UserID +func (x *PullMessageReq) GetUserID() string { + if x != nil { + return x.UserID } return "" } -func (m *PullMessageReq) GetSeqBegin() int64 { - if m != nil { - return m.SeqBegin +func (x *PullMessageReq) GetSeqBegin() int64 { + if x != nil { + return x.SeqBegin } return 0 } -func (m *PullMessageReq) GetSeqEnd() int64 { - if m != nil { - return m.SeqEnd +func (x *PullMessageReq) GetSeqEnd() int64 { + if x != nil { + return x.SeqEnd } return 0 } -func (m *PullMessageReq) GetOperationID() string { - if m != nil { - return m.OperationID +func (x *PullMessageReq) GetOperationID() string { + if x != nil { + return x.OperationID } return "" } type PullMessageResp struct { - ErrCode int32 `protobuf:"varint,1,opt,name=ErrCode" json:"ErrCode,omitempty"` - ErrMsg string `protobuf:"bytes,2,opt,name=ErrMsg" json:"ErrMsg,omitempty"` - MaxSeq int64 `protobuf:"varint,3,opt,name=MaxSeq" json:"MaxSeq,omitempty"` - MinSeq int64 `protobuf:"varint,4,opt,name=MinSeq" json:"MinSeq,omitempty"` - SingleUserMsg []*GatherFormat `protobuf:"bytes,5,rep,name=SingleUserMsg" json:"SingleUserMsg,omitempty"` - GroupUserMsg []*GatherFormat `protobuf:"bytes,6,rep,name=GroupUserMsg" json:"GroupUserMsg,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *PullMessageResp) Reset() { *m = PullMessageResp{} } -func (m *PullMessageResp) String() string { return proto.CompactTextString(m) } -func (*PullMessageResp) ProtoMessage() {} -func (*PullMessageResp) Descriptor() ([]byte, []int) { - return fileDescriptor_chat_4f51bfe711d80421, []int{3} -} -func (m *PullMessageResp) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_PullMessageResp.Unmarshal(m, b) -} -func (m *PullMessageResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_PullMessageResp.Marshal(b, m, deterministic) + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ErrCode int32 `protobuf:"varint,1,opt,name=ErrCode,proto3" json:"ErrCode,omitempty"` + ErrMsg string `protobuf:"bytes,2,opt,name=ErrMsg,proto3" json:"ErrMsg,omitempty"` + MaxSeq int64 `protobuf:"varint,3,opt,name=MaxSeq,proto3" json:"MaxSeq,omitempty"` + MinSeq int64 `protobuf:"varint,4,opt,name=MinSeq,proto3" json:"MinSeq,omitempty"` + SingleUserMsg []*GatherFormat `protobuf:"bytes,5,rep,name=SingleUserMsg,proto3" json:"SingleUserMsg,omitempty"` + GroupUserMsg []*GatherFormat `protobuf:"bytes,6,rep,name=GroupUserMsg,proto3" json:"GroupUserMsg,omitempty"` } -func (dst *PullMessageResp) XXX_Merge(src proto.Message) { - xxx_messageInfo_PullMessageResp.Merge(dst, src) + +func (x *PullMessageResp) Reset() { + *x = PullMessageResp{} + if protoimpl.UnsafeEnabled { + mi := &file_chat_chat_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *PullMessageResp) XXX_Size() int { - return xxx_messageInfo_PullMessageResp.Size(m) + +func (x *PullMessageResp) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *PullMessageResp) XXX_DiscardUnknown() { - xxx_messageInfo_PullMessageResp.DiscardUnknown(m) + +func (*PullMessageResp) ProtoMessage() {} + +func (x *PullMessageResp) ProtoReflect() protoreflect.Message { + mi := &file_chat_chat_proto_msgTypes[3] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) } -var xxx_messageInfo_PullMessageResp proto.InternalMessageInfo +// Deprecated: Use PullMessageResp.ProtoReflect.Descriptor instead. +func (*PullMessageResp) Descriptor() ([]byte, []int) { + return file_chat_chat_proto_rawDescGZIP(), []int{3} +} -func (m *PullMessageResp) GetErrCode() int32 { - if m != nil { - return m.ErrCode +func (x *PullMessageResp) GetErrCode() int32 { + if x != nil { + return x.ErrCode } return 0 } -func (m *PullMessageResp) GetErrMsg() string { - if m != nil { - return m.ErrMsg +func (x *PullMessageResp) GetErrMsg() string { + if x != nil { + return x.ErrMsg } return "" } -func (m *PullMessageResp) GetMaxSeq() int64 { - if m != nil { - return m.MaxSeq +func (x *PullMessageResp) GetMaxSeq() int64 { + if x != nil { + return x.MaxSeq } return 0 } -func (m *PullMessageResp) GetMinSeq() int64 { - if m != nil { - return m.MinSeq +func (x *PullMessageResp) GetMinSeq() int64 { + if x != nil { + return x.MinSeq } return 0 } -func (m *PullMessageResp) GetSingleUserMsg() []*GatherFormat { - if m != nil { - return m.SingleUserMsg +func (x *PullMessageResp) GetSingleUserMsg() []*GatherFormat { + if x != nil { + return x.SingleUserMsg } return nil } -func (m *PullMessageResp) GetGroupUserMsg() []*GatherFormat { - if m != nil { - return m.GroupUserMsg +func (x *PullMessageResp) GetGroupUserMsg() []*GatherFormat { + if x != nil { + return x.GroupUserMsg } return nil } type PullMessageBySeqListReq struct { - UserID string `protobuf:"bytes,1,opt,name=UserID" json:"UserID,omitempty"` - OperationID string `protobuf:"bytes,2,opt,name=OperationID" json:"OperationID,omitempty"` - SeqList []int64 `protobuf:"varint,3,rep,packed,name=seqList" json:"seqList,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields -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_chat_4f51bfe711d80421, []int{4} -} -func (m *PullMessageBySeqListReq) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_PullMessageBySeqListReq.Unmarshal(m, b) -} -func (m *PullMessageBySeqListReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_PullMessageBySeqListReq.Marshal(b, m, deterministic) + UserID string `protobuf:"bytes,1,opt,name=UserID,proto3" json:"UserID,omitempty"` + OperationID string `protobuf:"bytes,2,opt,name=OperationID,proto3" json:"OperationID,omitempty"` + SeqList []int64 `protobuf:"varint,3,rep,packed,name=seqList,proto3" json:"seqList,omitempty"` } -func (dst *PullMessageBySeqListReq) XXX_Merge(src proto.Message) { - xxx_messageInfo_PullMessageBySeqListReq.Merge(dst, src) + +func (x *PullMessageBySeqListReq) Reset() { + *x = PullMessageBySeqListReq{} + if protoimpl.UnsafeEnabled { + mi := &file_chat_chat_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *PullMessageBySeqListReq) XXX_Size() int { - return xxx_messageInfo_PullMessageBySeqListReq.Size(m) + +func (x *PullMessageBySeqListReq) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *PullMessageBySeqListReq) XXX_DiscardUnknown() { - xxx_messageInfo_PullMessageBySeqListReq.DiscardUnknown(m) + +func (*PullMessageBySeqListReq) ProtoMessage() {} + +func (x *PullMessageBySeqListReq) ProtoReflect() protoreflect.Message { + mi := &file_chat_chat_proto_msgTypes[4] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) } -var xxx_messageInfo_PullMessageBySeqListReq proto.InternalMessageInfo +// Deprecated: Use PullMessageBySeqListReq.ProtoReflect.Descriptor instead. +func (*PullMessageBySeqListReq) Descriptor() ([]byte, []int) { + return file_chat_chat_proto_rawDescGZIP(), []int{4} +} -func (m *PullMessageBySeqListReq) GetUserID() string { - if m != nil { - return m.UserID +func (x *PullMessageBySeqListReq) GetUserID() string { + if x != nil { + return x.UserID } return "" } -func (m *PullMessageBySeqListReq) GetOperationID() string { - if m != nil { - return m.OperationID +func (x *PullMessageBySeqListReq) GetOperationID() string { + if x != nil { + return x.OperationID } return "" } -func (m *PullMessageBySeqListReq) GetSeqList() []int64 { - if m != nil { - return m.SeqList +func (x *PullMessageBySeqListReq) GetSeqList() []int64 { + if x != nil { + return x.SeqList } return nil } type GetNewSeqReq 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:"-"` -} + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields -func (m *GetNewSeqReq) Reset() { *m = GetNewSeqReq{} } -func (m *GetNewSeqReq) String() string { return proto.CompactTextString(m) } -func (*GetNewSeqReq) ProtoMessage() {} -func (*GetNewSeqReq) Descriptor() ([]byte, []int) { - return fileDescriptor_chat_4f51bfe711d80421, []int{5} -} -func (m *GetNewSeqReq) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_GetNewSeqReq.Unmarshal(m, b) + UserID string `protobuf:"bytes,1,opt,name=UserID,proto3" json:"UserID,omitempty"` + OperationID string `protobuf:"bytes,2,opt,name=OperationID,proto3" json:"OperationID,omitempty"` } -func (m *GetNewSeqReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_GetNewSeqReq.Marshal(b, m, deterministic) -} -func (dst *GetNewSeqReq) XXX_Merge(src proto.Message) { - xxx_messageInfo_GetNewSeqReq.Merge(dst, src) + +func (x *GetNewSeqReq) Reset() { + *x = GetNewSeqReq{} + if protoimpl.UnsafeEnabled { + mi := &file_chat_chat_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *GetNewSeqReq) XXX_Size() int { - return xxx_messageInfo_GetNewSeqReq.Size(m) + +func (x *GetNewSeqReq) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *GetNewSeqReq) XXX_DiscardUnknown() { - xxx_messageInfo_GetNewSeqReq.DiscardUnknown(m) + +func (*GetNewSeqReq) ProtoMessage() {} + +func (x *GetNewSeqReq) ProtoReflect() protoreflect.Message { + mi := &file_chat_chat_proto_msgTypes[5] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) } -var xxx_messageInfo_GetNewSeqReq proto.InternalMessageInfo +// Deprecated: Use GetNewSeqReq.ProtoReflect.Descriptor instead. +func (*GetNewSeqReq) Descriptor() ([]byte, []int) { + return file_chat_chat_proto_rawDescGZIP(), []int{5} +} -func (m *GetNewSeqReq) GetUserID() string { - if m != nil { - return m.UserID +func (x *GetNewSeqReq) GetUserID() string { + if x != nil { + return x.UserID } return "" } -func (m *GetNewSeqReq) GetOperationID() string { - if m != nil { - return m.OperationID +func (x *GetNewSeqReq) GetOperationID() string { + if x != nil { + return x.OperationID } return "" } type GetNewSeqResp struct { - ErrCode int32 `protobuf:"varint,1,opt,name=ErrCode" json:"ErrCode,omitempty"` - ErrMsg string `protobuf:"bytes,2,opt,name=ErrMsg" json:"ErrMsg,omitempty"` - Seq int64 `protobuf:"varint,3,opt,name=Seq" json:"Seq,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields -func (m *GetNewSeqResp) Reset() { *m = GetNewSeqResp{} } -func (m *GetNewSeqResp) String() string { return proto.CompactTextString(m) } -func (*GetNewSeqResp) ProtoMessage() {} -func (*GetNewSeqResp) Descriptor() ([]byte, []int) { - return fileDescriptor_chat_4f51bfe711d80421, []int{6} + ErrCode int32 `protobuf:"varint,1,opt,name=ErrCode,proto3" json:"ErrCode,omitempty"` + ErrMsg string `protobuf:"bytes,2,opt,name=ErrMsg,proto3" json:"ErrMsg,omitempty"` + Seq int64 `protobuf:"varint,3,opt,name=Seq,proto3" json:"Seq,omitempty"` } -func (m *GetNewSeqResp) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_GetNewSeqResp.Unmarshal(m, b) -} -func (m *GetNewSeqResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_GetNewSeqResp.Marshal(b, m, deterministic) -} -func (dst *GetNewSeqResp) XXX_Merge(src proto.Message) { - xxx_messageInfo_GetNewSeqResp.Merge(dst, src) + +func (x *GetNewSeqResp) Reset() { + *x = GetNewSeqResp{} + if protoimpl.UnsafeEnabled { + mi := &file_chat_chat_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *GetNewSeqResp) XXX_Size() int { - return xxx_messageInfo_GetNewSeqResp.Size(m) + +func (x *GetNewSeqResp) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *GetNewSeqResp) XXX_DiscardUnknown() { - xxx_messageInfo_GetNewSeqResp.DiscardUnknown(m) + +func (*GetNewSeqResp) ProtoMessage() {} + +func (x *GetNewSeqResp) ProtoReflect() protoreflect.Message { + mi := &file_chat_chat_proto_msgTypes[6] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) } -var xxx_messageInfo_GetNewSeqResp proto.InternalMessageInfo +// Deprecated: Use GetNewSeqResp.ProtoReflect.Descriptor instead. +func (*GetNewSeqResp) Descriptor() ([]byte, []int) { + return file_chat_chat_proto_rawDescGZIP(), []int{6} +} -func (m *GetNewSeqResp) GetErrCode() int32 { - if m != nil { - return m.ErrCode +func (x *GetNewSeqResp) GetErrCode() int32 { + if x != nil { + return x.ErrCode } return 0 } -func (m *GetNewSeqResp) GetErrMsg() string { - if m != nil { - return m.ErrMsg +func (x *GetNewSeqResp) GetErrMsg() string { + if x != nil { + return x.ErrMsg } return "" } -func (m *GetNewSeqResp) GetSeq() int64 { - if m != nil { - return m.Seq +func (x *GetNewSeqResp) GetSeq() int64 { + if x != nil { + return x.Seq } return 0 } type GatherFormat struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + // @inject_tag: json:"id" - ID string `protobuf:"bytes,1,opt,name=ID" json:"id"` + ID string `protobuf:"bytes,1,opt,name=ID,proto3" json:"id"` // @inject_tag: json:"list" - List []*MsgFormat `protobuf:"bytes,2,rep,name=List" json:"list"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + List []*MsgFormat `protobuf:"bytes,2,rep,name=List,proto3" json:"list"` //detail msg } -func (m *GatherFormat) Reset() { *m = GatherFormat{} } -func (m *GatherFormat) String() string { return proto.CompactTextString(m) } -func (*GatherFormat) ProtoMessage() {} -func (*GatherFormat) Descriptor() ([]byte, []int) { - return fileDescriptor_chat_4f51bfe711d80421, []int{7} -} -func (m *GatherFormat) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_GatherFormat.Unmarshal(m, b) -} -func (m *GatherFormat) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_GatherFormat.Marshal(b, m, deterministic) -} -func (dst *GatherFormat) XXX_Merge(src proto.Message) { - xxx_messageInfo_GatherFormat.Merge(dst, src) +func (x *GatherFormat) Reset() { + *x = GatherFormat{} + if protoimpl.UnsafeEnabled { + mi := &file_chat_chat_proto_msgTypes[7] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *GatherFormat) XXX_Size() int { - return xxx_messageInfo_GatherFormat.Size(m) + +func (x *GatherFormat) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *GatherFormat) XXX_DiscardUnknown() { - xxx_messageInfo_GatherFormat.DiscardUnknown(m) + +func (*GatherFormat) ProtoMessage() {} + +func (x *GatherFormat) ProtoReflect() protoreflect.Message { + mi := &file_chat_chat_proto_msgTypes[7] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) } -var xxx_messageInfo_GatherFormat proto.InternalMessageInfo +// Deprecated: Use GatherFormat.ProtoReflect.Descriptor instead. +func (*GatherFormat) Descriptor() ([]byte, []int) { + return file_chat_chat_proto_rawDescGZIP(), []int{7} +} -func (m *GatherFormat) GetID() string { - if m != nil { - return m.ID +func (x *GatherFormat) GetID() string { + if x != nil { + return x.ID } return "" } -func (m *GatherFormat) GetList() []*MsgFormat { - if m != nil { - return m.List +func (x *GatherFormat) GetList() []*MsgFormat { + if x != nil { + return x.List } return nil } type MsgFormat struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + // @inject_tag: json:"sendID" - SendID string `protobuf:"bytes,1,opt,name=SendID" json:"sendID"` + SendID string `protobuf:"bytes,1,opt,name=SendID,proto3" json:"sendID"` // @inject_tag: json:"recvID" - RecvID string `protobuf:"bytes,2,opt,name=RecvID" json:"recvID"` + RecvID string `protobuf:"bytes,2,opt,name=RecvID,proto3" json:"recvID"` // @inject_tag: json:"msgFrom" - MsgFrom int32 `protobuf:"varint,3,opt,name=MsgFrom" json:"msgFrom"` + MsgFrom int32 `protobuf:"varint,3,opt,name=MsgFrom,proto3" json:"msgFrom"` // @inject_tag: json:"contentType" - ContentType int32 `protobuf:"varint,4,opt,name=ContentType" json:"contentType"` + ContentType int32 `protobuf:"varint,4,opt,name=ContentType,proto3" json:"contentType"` // @inject_tag: json:"serverMsgID" - ServerMsgID string `protobuf:"bytes,5,opt,name=ServerMsgID" json:"serverMsgID"` + ServerMsgID string `protobuf:"bytes,5,opt,name=ServerMsgID,proto3" json:"serverMsgID"` // @inject_tag: json:"content" - Content string `protobuf:"bytes,6,opt,name=Content" json:"content"` + Content string `protobuf:"bytes,6,opt,name=Content,proto3" json:"content"` // @inject_tag: json:"seq" - Seq int64 `protobuf:"varint,7,opt,name=Seq" json:"seq"` + Seq int64 `protobuf:"varint,7,opt,name=Seq,proto3" json:"seq"` // @inject_tag: json:"sendTime" - SendTime int64 `protobuf:"varint,8,opt,name=SendTime" json:"sendTime"` + SendTime int64 `protobuf:"varint,8,opt,name=SendTime,proto3" json:"sendTime"` // @inject_tag: json:"senderPlatformID" - SenderPlatformID int32 `protobuf:"varint,9,opt,name=SenderPlatformID" json:"senderPlatformID"` + SenderPlatformID int32 `protobuf:"varint,9,opt,name=SenderPlatformID,proto3" json:"senderPlatformID"` // @inject_tag: json:"senderNickName" - SenderNickName string `protobuf:"bytes,10,opt,name=SenderNickName" json:"senderNickName"` + SenderNickName string `protobuf:"bytes,10,opt,name=SenderNickName,proto3" json:"senderNickName"` // @inject_tag: json:"senderFaceUrl" - SenderFaceURL string `protobuf:"bytes,11,opt,name=SenderFaceURL" json:"senderFaceUrl"` + SenderFaceURL string `protobuf:"bytes,11,opt,name=SenderFaceURL,proto3" json:"senderFaceUrl"` // @inject_tag: json:"clientMsgID" - ClientMsgID string `protobuf:"bytes,12,opt,name=ClientMsgID" json:"clientMsgID"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + ClientMsgID string `protobuf:"bytes,12,opt,name=ClientMsgID,proto3" json:"clientMsgID"` } -func (m *MsgFormat) Reset() { *m = MsgFormat{} } -func (m *MsgFormat) String() string { return proto.CompactTextString(m) } -func (*MsgFormat) ProtoMessage() {} -func (*MsgFormat) Descriptor() ([]byte, []int) { - return fileDescriptor_chat_4f51bfe711d80421, []int{8} -} -func (m *MsgFormat) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_MsgFormat.Unmarshal(m, b) -} -func (m *MsgFormat) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_MsgFormat.Marshal(b, m, deterministic) -} -func (dst *MsgFormat) XXX_Merge(src proto.Message) { - xxx_messageInfo_MsgFormat.Merge(dst, src) +func (x *MsgFormat) Reset() { + *x = MsgFormat{} + if protoimpl.UnsafeEnabled { + mi := &file_chat_chat_proto_msgTypes[8] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *MsgFormat) XXX_Size() int { - return xxx_messageInfo_MsgFormat.Size(m) + +func (x *MsgFormat) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *MsgFormat) XXX_DiscardUnknown() { - xxx_messageInfo_MsgFormat.DiscardUnknown(m) + +func (*MsgFormat) ProtoMessage() {} + +func (x *MsgFormat) ProtoReflect() protoreflect.Message { + mi := &file_chat_chat_proto_msgTypes[8] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) } -var xxx_messageInfo_MsgFormat proto.InternalMessageInfo +// Deprecated: Use MsgFormat.ProtoReflect.Descriptor instead. +func (*MsgFormat) Descriptor() ([]byte, []int) { + return file_chat_chat_proto_rawDescGZIP(), []int{8} +} -func (m *MsgFormat) GetSendID() string { - if m != nil { - return m.SendID +func (x *MsgFormat) GetSendID() string { + if x != nil { + return x.SendID } return "" } -func (m *MsgFormat) GetRecvID() string { - if m != nil { - return m.RecvID +func (x *MsgFormat) GetRecvID() string { + if x != nil { + return x.RecvID } return "" } -func (m *MsgFormat) GetMsgFrom() int32 { - if m != nil { - return m.MsgFrom +func (x *MsgFormat) GetMsgFrom() int32 { + if x != nil { + return x.MsgFrom } return 0 } -func (m *MsgFormat) GetContentType() int32 { - if m != nil { - return m.ContentType +func (x *MsgFormat) GetContentType() int32 { + if x != nil { + return x.ContentType } return 0 } -func (m *MsgFormat) GetServerMsgID() string { - if m != nil { - return m.ServerMsgID +func (x *MsgFormat) GetServerMsgID() string { + if x != nil { + return x.ServerMsgID } return "" } -func (m *MsgFormat) GetContent() string { - if m != nil { - return m.Content +func (x *MsgFormat) GetContent() string { + if x != nil { + return x.Content } return "" } -func (m *MsgFormat) GetSeq() int64 { - if m != nil { - return m.Seq +func (x *MsgFormat) GetSeq() int64 { + if x != nil { + return x.Seq } return 0 } -func (m *MsgFormat) GetSendTime() int64 { - if m != nil { - return m.SendTime +func (x *MsgFormat) GetSendTime() int64 { + if x != nil { + return x.SendTime } return 0 } -func (m *MsgFormat) GetSenderPlatformID() int32 { - if m != nil { - return m.SenderPlatformID +func (x *MsgFormat) GetSenderPlatformID() int32 { + if x != nil { + return x.SenderPlatformID } return 0 } -func (m *MsgFormat) GetSenderNickName() string { - if m != nil { - return m.SenderNickName +func (x *MsgFormat) GetSenderNickName() string { + if x != nil { + return x.SenderNickName } return "" } -func (m *MsgFormat) GetSenderFaceURL() string { - if m != nil { - return m.SenderFaceURL +func (x *MsgFormat) GetSenderFaceURL() string { + if x != nil { + return x.SenderFaceURL } return "" } -func (m *MsgFormat) GetClientMsgID() string { - if m != nil { - return m.ClientMsgID +func (x *MsgFormat) GetClientMsgID() string { + if x != nil { + return x.ClientMsgID } return "" } type UserSendMsgReq struct { - ReqIdentifier int32 `protobuf:"varint,1,opt,name=ReqIdentifier" json:"ReqIdentifier,omitempty"` - Token string `protobuf:"bytes,2,opt,name=Token" json:"Token,omitempty"` - SendID string `protobuf:"bytes,3,opt,name=SendID" json:"SendID,omitempty"` - OperationID string `protobuf:"bytes,4,opt,name=OperationID" json:"OperationID,omitempty"` - SenderNickName string `protobuf:"bytes,5,opt,name=SenderNickName" json:"SenderNickName,omitempty"` - SenderFaceURL string `protobuf:"bytes,6,opt,name=SenderFaceURL" json:"SenderFaceURL,omitempty"` - PlatformID int32 `protobuf:"varint,7,opt,name=PlatformID" json:"PlatformID,omitempty"` - SessionType int32 `protobuf:"varint,8,opt,name=SessionType" json:"SessionType,omitempty"` - MsgFrom int32 `protobuf:"varint,9,opt,name=MsgFrom" json:"MsgFrom,omitempty"` - ContentType int32 `protobuf:"varint,10,opt,name=ContentType" json:"ContentType,omitempty"` - RecvID string `protobuf:"bytes,11,opt,name=RecvID" json:"RecvID,omitempty"` - ForceList []string `protobuf:"bytes,12,rep,name=ForceList" json:"ForceList,omitempty"` - Content string `protobuf:"bytes,13,opt,name=Content" json:"Content,omitempty"` - Options string `protobuf:"bytes,14,opt,name=Options" json:"Options,omitempty"` - ClientMsgID string `protobuf:"bytes,15,opt,name=ClientMsgID" json:"ClientMsgID,omitempty"` - OffLineInfo string `protobuf:"bytes,16,opt,name=OffLineInfo" json:"OffLineInfo,omitempty"` - Ex string `protobuf:"bytes,17,opt,name=Ex" json:"Ex,omitempty"` - SendTime int64 `protobuf:"varint,18,opt,name=sendTime" json:"sendTime,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *UserSendMsgReq) Reset() { *m = UserSendMsgReq{} } -func (m *UserSendMsgReq) String() string { return proto.CompactTextString(m) } -func (*UserSendMsgReq) ProtoMessage() {} + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ReqIdentifier int32 `protobuf:"varint,1,opt,name=ReqIdentifier,proto3" json:"ReqIdentifier,omitempty"` + Token string `protobuf:"bytes,2,opt,name=Token,proto3" json:"Token,omitempty"` + SendID string `protobuf:"bytes,3,opt,name=SendID,proto3" json:"SendID,omitempty"` + OperationID string `protobuf:"bytes,4,opt,name=OperationID,proto3" json:"OperationID,omitempty"` + SenderNickName string `protobuf:"bytes,5,opt,name=SenderNickName,proto3" json:"SenderNickName,omitempty"` + SenderFaceURL string `protobuf:"bytes,6,opt,name=SenderFaceURL,proto3" json:"SenderFaceURL,omitempty"` + PlatformID int32 `protobuf:"varint,7,opt,name=PlatformID,proto3" json:"PlatformID,omitempty"` + SessionType int32 `protobuf:"varint,8,opt,name=SessionType,proto3" json:"SessionType,omitempty"` + MsgFrom int32 `protobuf:"varint,9,opt,name=MsgFrom,proto3" json:"MsgFrom,omitempty"` + ContentType int32 `protobuf:"varint,10,opt,name=ContentType,proto3" json:"ContentType,omitempty"` + RecvID string `protobuf:"bytes,11,opt,name=RecvID,proto3" json:"RecvID,omitempty"` + ForceList []string `protobuf:"bytes,12,rep,name=ForceList,proto3" json:"ForceList,omitempty"` + Content string `protobuf:"bytes,13,opt,name=Content,proto3" json:"Content,omitempty"` + Options string `protobuf:"bytes,14,opt,name=Options,proto3" json:"Options,omitempty"` + ClientMsgID string `protobuf:"bytes,15,opt,name=ClientMsgID,proto3" json:"ClientMsgID,omitempty"` + OffLineInfo string `protobuf:"bytes,16,opt,name=OffLineInfo,proto3" json:"OffLineInfo,omitempty"` + Ex string `protobuf:"bytes,17,opt,name=Ex,proto3" json:"Ex,omitempty"` + SendTime int64 `protobuf:"varint,18,opt,name=sendTime,proto3" json:"sendTime,omitempty"` +} + +func (x *UserSendMsgReq) Reset() { + *x = UserSendMsgReq{} + if protoimpl.UnsafeEnabled { + mi := &file_chat_chat_proto_msgTypes[9] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UserSendMsgReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UserSendMsgReq) ProtoMessage() {} + +func (x *UserSendMsgReq) ProtoReflect() protoreflect.Message { + mi := &file_chat_chat_proto_msgTypes[9] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use UserSendMsgReq.ProtoReflect.Descriptor instead. func (*UserSendMsgReq) Descriptor() ([]byte, []int) { - return fileDescriptor_chat_4f51bfe711d80421, []int{9} -} -func (m *UserSendMsgReq) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_UserSendMsgReq.Unmarshal(m, b) -} -func (m *UserSendMsgReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_UserSendMsgReq.Marshal(b, m, deterministic) -} -func (dst *UserSendMsgReq) XXX_Merge(src proto.Message) { - xxx_messageInfo_UserSendMsgReq.Merge(dst, src) -} -func (m *UserSendMsgReq) XXX_Size() int { - return xxx_messageInfo_UserSendMsgReq.Size(m) -} -func (m *UserSendMsgReq) XXX_DiscardUnknown() { - xxx_messageInfo_UserSendMsgReq.DiscardUnknown(m) + return file_chat_chat_proto_rawDescGZIP(), []int{9} } -var xxx_messageInfo_UserSendMsgReq proto.InternalMessageInfo - -func (m *UserSendMsgReq) GetReqIdentifier() int32 { - if m != nil { - return m.ReqIdentifier +func (x *UserSendMsgReq) GetReqIdentifier() int32 { + if x != nil { + return x.ReqIdentifier } return 0 } -func (m *UserSendMsgReq) GetToken() string { - if m != nil { - return m.Token +func (x *UserSendMsgReq) GetToken() string { + if x != nil { + return x.Token } return "" } -func (m *UserSendMsgReq) GetSendID() string { - if m != nil { - return m.SendID +func (x *UserSendMsgReq) GetSendID() string { + if x != nil { + return x.SendID } return "" } -func (m *UserSendMsgReq) GetOperationID() string { - if m != nil { - return m.OperationID +func (x *UserSendMsgReq) GetOperationID() string { + if x != nil { + return x.OperationID } return "" } -func (m *UserSendMsgReq) GetSenderNickName() string { - if m != nil { - return m.SenderNickName +func (x *UserSendMsgReq) GetSenderNickName() string { + if x != nil { + return x.SenderNickName } return "" } -func (m *UserSendMsgReq) GetSenderFaceURL() string { - if m != nil { - return m.SenderFaceURL +func (x *UserSendMsgReq) GetSenderFaceURL() string { + if x != nil { + return x.SenderFaceURL } return "" } -func (m *UserSendMsgReq) GetPlatformID() int32 { - if m != nil { - return m.PlatformID +func (x *UserSendMsgReq) GetPlatformID() int32 { + if x != nil { + return x.PlatformID } return 0 } -func (m *UserSendMsgReq) GetSessionType() int32 { - if m != nil { - return m.SessionType +func (x *UserSendMsgReq) GetSessionType() int32 { + if x != nil { + return x.SessionType } return 0 } -func (m *UserSendMsgReq) GetMsgFrom() int32 { - if m != nil { - return m.MsgFrom +func (x *UserSendMsgReq) GetMsgFrom() int32 { + if x != nil { + return x.MsgFrom } return 0 } -func (m *UserSendMsgReq) GetContentType() int32 { - if m != nil { - return m.ContentType +func (x *UserSendMsgReq) GetContentType() int32 { + if x != nil { + return x.ContentType } return 0 } -func (m *UserSendMsgReq) GetRecvID() string { - if m != nil { - return m.RecvID +func (x *UserSendMsgReq) GetRecvID() string { + if x != nil { + return x.RecvID } return "" } -func (m *UserSendMsgReq) GetForceList() []string { - if m != nil { - return m.ForceList +func (x *UserSendMsgReq) GetForceList() []string { + if x != nil { + return x.ForceList } return nil } -func (m *UserSendMsgReq) GetContent() string { - if m != nil { - return m.Content +func (x *UserSendMsgReq) GetContent() string { + if x != nil { + return x.Content } return "" } -func (m *UserSendMsgReq) GetOptions() string { - if m != nil { - return m.Options +func (x *UserSendMsgReq) GetOptions() string { + if x != nil { + return x.Options } return "" } -func (m *UserSendMsgReq) GetClientMsgID() string { - if m != nil { - return m.ClientMsgID +func (x *UserSendMsgReq) GetClientMsgID() string { + if x != nil { + return x.ClientMsgID } return "" } -func (m *UserSendMsgReq) GetOffLineInfo() string { - if m != nil { - return m.OffLineInfo +func (x *UserSendMsgReq) GetOffLineInfo() string { + if x != nil { + return x.OffLineInfo } return "" } -func (m *UserSendMsgReq) GetEx() string { - if m != nil { - return m.Ex +func (x *UserSendMsgReq) GetEx() string { + if x != nil { + return x.Ex } return "" } -func (m *UserSendMsgReq) GetSendTime() int64 { - if m != nil { - return m.SendTime +func (x *UserSendMsgReq) GetSendTime() int64 { + if x != nil { + return x.SendTime } return 0 } type UserSendMsgResp struct { - ErrCode int32 `protobuf:"varint,1,opt,name=ErrCode" json:"ErrCode,omitempty"` - ErrMsg string `protobuf:"bytes,2,opt,name=ErrMsg" json:"ErrMsg,omitempty"` - ReqIdentifier int32 `protobuf:"varint,3,opt,name=ReqIdentifier" json:"ReqIdentifier,omitempty"` - ServerMsgID string `protobuf:"bytes,4,opt,name=ServerMsgID" json:"ServerMsgID,omitempty"` - ClientMsgID string `protobuf:"bytes,5,opt,name=ClientMsgID" json:"ClientMsgID,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -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_chat_4f51bfe711d80421, []int{10} -} -func (m *UserSendMsgResp) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_UserSendMsgResp.Unmarshal(m, b) -} -func (m *UserSendMsgResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_UserSendMsgResp.Marshal(b, m, deterministic) -} -func (dst *UserSendMsgResp) XXX_Merge(src proto.Message) { - xxx_messageInfo_UserSendMsgResp.Merge(dst, src) -} -func (m *UserSendMsgResp) XXX_Size() int { - return xxx_messageInfo_UserSendMsgResp.Size(m) -} -func (m *UserSendMsgResp) XXX_DiscardUnknown() { - xxx_messageInfo_UserSendMsgResp.DiscardUnknown(m) -} + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields -var xxx_messageInfo_UserSendMsgResp proto.InternalMessageInfo - -func (m *UserSendMsgResp) GetErrCode() int32 { - if m != nil { - return m.ErrCode - } - return 0 + ErrCode int32 `protobuf:"varint,1,opt,name=ErrCode,proto3" json:"ErrCode,omitempty"` + ErrMsg string `protobuf:"bytes,2,opt,name=ErrMsg,proto3" json:"ErrMsg,omitempty"` + ReqIdentifier int32 `protobuf:"varint,3,opt,name=ReqIdentifier,proto3" json:"ReqIdentifier,omitempty"` + ServerMsgID string `protobuf:"bytes,4,opt,name=ServerMsgID,proto3" json:"ServerMsgID,omitempty"` + ClientMsgID string `protobuf:"bytes,5,opt,name=ClientMsgID,proto3" json:"ClientMsgID,omitempty"` + SendTime int64 `protobuf:"varint,6,opt,name=sendTime,proto3" json:"sendTime,omitempty"` } -func (m *UserSendMsgResp) GetErrMsg() string { - if m != nil { - return m.ErrMsg +func (x *UserSendMsgResp) Reset() { + *x = UserSendMsgResp{} + if protoimpl.UnsafeEnabled { + mi := &file_chat_chat_proto_msgTypes[10] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } - return "" } -func (m *UserSendMsgResp) GetReqIdentifier() int32 { - if m != nil { - return m.ReqIdentifier - } - return 0 +func (x *UserSendMsgResp) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *UserSendMsgResp) GetServerMsgID() string { - if m != nil { - return m.ServerMsgID - } - return "" -} +func (*UserSendMsgResp) ProtoMessage() {} -func (m *UserSendMsgResp) GetClientMsgID() string { - if m != nil { - return m.ClientMsgID +func (x *UserSendMsgResp) ProtoReflect() protoreflect.Message { + mi := &file_chat_chat_proto_msgTypes[10] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms } - return "" -} - -func init() { - proto.RegisterType((*WSToMsgSvrChatMsg)(nil), "pbChat.WSToMsgSvrChatMsg") - proto.RegisterType((*MsgSvrToPushSvrChatMsg)(nil), "pbChat.MsgSvrToPushSvrChatMsg") - proto.RegisterType((*PullMessageReq)(nil), "pbChat.PullMessageReq") - proto.RegisterType((*PullMessageResp)(nil), "pbChat.PullMessageResp") - proto.RegisterType((*PullMessageBySeqListReq)(nil), "pbChat.PullMessageBySeqListReq") - proto.RegisterType((*GetNewSeqReq)(nil), "pbChat.GetNewSeqReq") - proto.RegisterType((*GetNewSeqResp)(nil), "pbChat.GetNewSeqResp") - proto.RegisterType((*GatherFormat)(nil), "pbChat.GatherFormat") - proto.RegisterType((*MsgFormat)(nil), "pbChat.MsgFormat") - proto.RegisterType((*UserSendMsgReq)(nil), "pbChat.UserSendMsgReq") - proto.RegisterType((*UserSendMsgResp)(nil), "pbChat.UserSendMsgResp") -} - -// 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 Chat service - -type ChatClient interface { - GetNewSeq(ctx context.Context, in *GetNewSeqReq, opts ...grpc.CallOption) (*GetNewSeqResp, error) - PullMessage(ctx context.Context, in *PullMessageReq, opts ...grpc.CallOption) (*PullMessageResp, error) - PullMessageBySeqList(ctx context.Context, in *PullMessageBySeqListReq, opts ...grpc.CallOption) (*PullMessageResp, error) - UserSendMsg(ctx context.Context, in *UserSendMsgReq, opts ...grpc.CallOption) (*UserSendMsgResp, error) -} - -type chatClient struct { - cc *grpc.ClientConn + return mi.MessageOf(x) } -func NewChatClient(cc *grpc.ClientConn) ChatClient { - return &chatClient{cc} -} - -func (c *chatClient) GetNewSeq(ctx context.Context, in *GetNewSeqReq, opts ...grpc.CallOption) (*GetNewSeqResp, error) { - out := new(GetNewSeqResp) - err := grpc.Invoke(ctx, "/pbChat.Chat/GetNewSeq", in, out, c.cc, opts...) - if err != nil { - return nil, err - } - return out, nil +// Deprecated: Use UserSendMsgResp.ProtoReflect.Descriptor instead. +func (*UserSendMsgResp) Descriptor() ([]byte, []int) { + return file_chat_chat_proto_rawDescGZIP(), []int{10} } -func (c *chatClient) PullMessage(ctx context.Context, in *PullMessageReq, opts ...grpc.CallOption) (*PullMessageResp, error) { - out := new(PullMessageResp) - err := grpc.Invoke(ctx, "/pbChat.Chat/PullMessage", in, out, c.cc, opts...) - if err != nil { - return nil, err +func (x *UserSendMsgResp) GetErrCode() int32 { + if x != nil { + return x.ErrCode } - return out, nil + return 0 } -func (c *chatClient) PullMessageBySeqList(ctx context.Context, in *PullMessageBySeqListReq, opts ...grpc.CallOption) (*PullMessageResp, error) { - out := new(PullMessageResp) - err := grpc.Invoke(ctx, "/pbChat.Chat/PullMessageBySeqList", in, out, c.cc, opts...) - if err != nil { - return nil, err +func (x *UserSendMsgResp) GetErrMsg() string { + if x != nil { + return x.ErrMsg } - return out, nil + return "" } -func (c *chatClient) UserSendMsg(ctx context.Context, in *UserSendMsgReq, opts ...grpc.CallOption) (*UserSendMsgResp, error) { - out := new(UserSendMsgResp) - err := grpc.Invoke(ctx, "/pbChat.Chat/UserSendMsg", in, out, c.cc, opts...) - if err != nil { - return nil, err +func (x *UserSendMsgResp) GetReqIdentifier() int32 { + if x != nil { + return x.ReqIdentifier } - return out, nil -} - -// Server API for Chat service - -type ChatServer interface { - GetNewSeq(context.Context, *GetNewSeqReq) (*GetNewSeqResp, error) - PullMessage(context.Context, *PullMessageReq) (*PullMessageResp, error) - PullMessageBySeqList(context.Context, *PullMessageBySeqListReq) (*PullMessageResp, error) - UserSendMsg(context.Context, *UserSendMsgReq) (*UserSendMsgResp, error) -} - -func RegisterChatServer(s *grpc.Server, srv ChatServer) { - s.RegisterService(&_Chat_serviceDesc, srv) + return 0 } -func _Chat_GetNewSeq_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(GetNewSeqReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(ChatServer).GetNewSeq(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/pbChat.Chat/GetNewSeq", +func (x *UserSendMsgResp) GetServerMsgID() string { + if x != nil { + return x.ServerMsgID } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(ChatServer).GetNewSeq(ctx, req.(*GetNewSeqReq)) - } - return interceptor(ctx, in, info, handler) + return "" } -func _Chat_PullMessage_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(PullMessageReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(ChatServer).PullMessage(ctx, in) +func (x *UserSendMsgResp) GetClientMsgID() string { + if x != nil { + return x.ClientMsgID } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/pbChat.Chat/PullMessage", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(ChatServer).PullMessage(ctx, req.(*PullMessageReq)) - } - return interceptor(ctx, in, info, handler) + return "" } -func _Chat_PullMessageBySeqList_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(PullMessageBySeqListReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(ChatServer).PullMessageBySeqList(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/pbChat.Chat/PullMessageBySeqList", +func (x *UserSendMsgResp) GetSendTime() int64 { + if x != nil { + return x.SendTime } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(ChatServer).PullMessageBySeqList(ctx, req.(*PullMessageBySeqListReq)) - } - return interceptor(ctx, in, info, handler) + return 0 } -func _Chat_UserSendMsg_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(UserSendMsgReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(ChatServer).UserSendMsg(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/pbChat.Chat/UserSendMsg", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(ChatServer).UserSendMsg(ctx, req.(*UserSendMsgReq)) - } - return interceptor(ctx, in, info, handler) -} +var File_chat_chat_proto protoreflect.FileDescriptor + +var file_chat_chat_proto_rawDesc = []byte{ + 0x0a, 0x0f, 0x63, 0x68, 0x61, 0x74, 0x2f, 0x63, 0x68, 0x61, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x12, 0x06, 0x70, 0x62, 0x43, 0x68, 0x61, 0x74, 0x22, 0x8f, 0x04, 0x0a, 0x11, 0x57, 0x53, + 0x54, 0x6f, 0x4d, 0x73, 0x67, 0x53, 0x76, 0x72, 0x43, 0x68, 0x61, 0x74, 0x4d, 0x73, 0x67, 0x12, + 0x16, 0x0a, 0x06, 0x53, 0x65, 0x6e, 0x64, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x06, 0x53, 0x65, 0x6e, 0x64, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x52, 0x65, 0x63, 0x76, 0x49, + 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x52, 0x65, 0x63, 0x76, 0x49, 0x44, 0x12, + 0x18, 0x0a, 0x07, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x07, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x53, 0x65, 0x6e, + 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x53, 0x65, 0x6e, + 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x4d, 0x73, 0x67, 0x46, 0x72, 0x6f, 0x6d, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x4d, 0x73, 0x67, 0x46, 0x72, 0x6f, 0x6d, 0x12, + 0x26, 0x0a, 0x0e, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x4e, 0x69, 0x63, 0x6b, 0x4e, 0x61, 0x6d, + 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x4e, + 0x69, 0x63, 0x6b, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x53, 0x65, 0x6e, 0x64, 0x65, + 0x72, 0x46, 0x61, 0x63, 0x65, 0x55, 0x52, 0x4c, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, + 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x46, 0x61, 0x63, 0x65, 0x55, 0x52, 0x4c, 0x12, 0x20, 0x0a, + 0x0b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x18, 0x08, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x0b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, + 0x20, 0x0a, 0x0b, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x18, 0x09, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, + 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, + 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x49, 0x44, 0x12, 0x14, 0x0a, 0x05, 0x4d, 0x73, 0x67, 0x49, 0x44, 0x18, 0x0b, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x05, 0x4d, 0x73, 0x67, 0x49, 0x44, 0x12, 0x14, 0x0a, 0x05, 0x54, 0x6f, 0x6b, + 0x65, 0x6e, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, + 0x20, 0x0a, 0x0b, 0x4f, 0x66, 0x66, 0x6c, 0x69, 0x6e, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x0d, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x4f, 0x66, 0x66, 0x6c, 0x69, 0x6e, 0x65, 0x49, 0x6e, 0x66, + 0x6f, 0x12, 0x18, 0x0a, 0x07, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x0e, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x07, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x50, + 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x49, 0x44, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x0a, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x46, + 0x6f, 0x72, 0x63, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x10, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, + 0x46, 0x6f, 0x72, 0x63, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x43, 0x6c, 0x69, + 0x65, 0x6e, 0x74, 0x4d, 0x73, 0x67, 0x49, 0x44, 0x18, 0x11, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, + 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x73, 0x67, 0x49, 0x44, 0x22, 0xfa, 0x03, 0x0a, 0x16, + 0x4d, 0x73, 0x67, 0x53, 0x76, 0x72, 0x54, 0x6f, 0x50, 0x75, 0x73, 0x68, 0x53, 0x76, 0x72, 0x43, + 0x68, 0x61, 0x74, 0x4d, 0x73, 0x67, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x65, 0x6e, 0x64, 0x49, 0x44, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x53, 0x65, 0x6e, 0x64, 0x49, 0x44, 0x12, 0x16, + 0x0a, 0x06, 0x52, 0x65, 0x63, 0x76, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, + 0x52, 0x65, 0x63, 0x76, 0x49, 0x44, 0x12, 0x18, 0x0a, 0x07, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, + 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, + 0x12, 0x18, 0x0a, 0x07, 0x52, 0x65, 0x63, 0x76, 0x53, 0x65, 0x71, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x03, 0x52, 0x07, 0x52, 0x65, 0x63, 0x76, 0x53, 0x65, 0x71, 0x12, 0x1a, 0x0a, 0x08, 0x53, 0x65, + 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x53, 0x65, + 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x4d, 0x73, 0x67, 0x46, 0x72, 0x6f, + 0x6d, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x4d, 0x73, 0x67, 0x46, 0x72, 0x6f, 0x6d, + 0x12, 0x26, 0x0a, 0x0e, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x4e, 0x69, 0x63, 0x6b, 0x4e, 0x61, + 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, + 0x4e, 0x69, 0x63, 0x6b, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x53, 0x65, 0x6e, 0x64, + 0x65, 0x72, 0x46, 0x61, 0x63, 0x65, 0x55, 0x52, 0x4c, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0d, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x46, 0x61, 0x63, 0x65, 0x55, 0x52, 0x4c, 0x12, 0x20, + 0x0a, 0x0b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x18, 0x09, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x0b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, + 0x12, 0x20, 0x0a, 0x0b, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x18, + 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x54, 0x79, + 0x70, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, + 0x44, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x49, 0x44, 0x12, 0x14, 0x0a, 0x05, 0x4d, 0x73, 0x67, 0x49, 0x44, 0x18, 0x0c, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x05, 0x4d, 0x73, 0x67, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x66, + 0x66, 0x6c, 0x69, 0x6e, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0b, 0x4f, 0x66, 0x66, 0x6c, 0x69, 0x6e, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x18, 0x0a, 0x07, + 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x4f, + 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, + 0x72, 0x6d, 0x49, 0x44, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x50, 0x6c, 0x61, 0x74, + 0x66, 0x6f, 0x72, 0x6d, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, + 0x4d, 0x73, 0x67, 0x49, 0x44, 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x43, 0x6c, 0x69, + 0x65, 0x6e, 0x74, 0x4d, 0x73, 0x67, 0x49, 0x44, 0x22, 0x7e, 0x0a, 0x0e, 0x50, 0x75, 0x6c, 0x6c, + 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x12, 0x16, 0x0a, 0x06, 0x55, 0x73, + 0x65, 0x72, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x55, 0x73, 0x65, 0x72, + 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x53, 0x65, 0x71, 0x42, 0x65, 0x67, 0x69, 0x6e, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x53, 0x65, 0x71, 0x42, 0x65, 0x67, 0x69, 0x6e, 0x12, 0x16, + 0x0a, 0x06, 0x53, 0x65, 0x71, 0x45, 0x6e, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, + 0x53, 0x65, 0x71, 0x45, 0x6e, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x4f, 0x70, 0x65, + 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x22, 0xe9, 0x01, 0x0a, 0x0f, 0x50, 0x75, 0x6c, + 0x6c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x18, 0x0a, 0x07, + 0x45, 0x72, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x45, + 0x72, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x45, 0x72, 0x72, 0x4d, 0x73, 0x67, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x45, 0x72, 0x72, 0x4d, 0x73, 0x67, 0x12, 0x16, + 0x0a, 0x06, 0x4d, 0x61, 0x78, 0x53, 0x65, 0x71, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, + 0x4d, 0x61, 0x78, 0x53, 0x65, 0x71, 0x12, 0x16, 0x0a, 0x06, 0x4d, 0x69, 0x6e, 0x53, 0x65, 0x71, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x4d, 0x69, 0x6e, 0x53, 0x65, 0x71, 0x12, 0x3a, + 0x0a, 0x0d, 0x53, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x18, + 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x70, 0x62, 0x43, 0x68, 0x61, 0x74, 0x2e, 0x47, + 0x61, 0x74, 0x68, 0x65, 0x72, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x52, 0x0d, 0x53, 0x69, 0x6e, + 0x67, 0x6c, 0x65, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x12, 0x38, 0x0a, 0x0c, 0x47, 0x72, + 0x6f, 0x75, 0x70, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x14, 0x2e, 0x70, 0x62, 0x43, 0x68, 0x61, 0x74, 0x2e, 0x47, 0x61, 0x74, 0x68, 0x65, 0x72, + 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x52, 0x0c, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x55, 0x73, 0x65, + 0x72, 0x4d, 0x73, 0x67, 0x22, 0x6d, 0x0a, 0x17, 0x50, 0x75, 0x6c, 0x6c, 0x4d, 0x65, 0x73, 0x73, + 0x61, 0x67, 0x65, 0x42, 0x79, 0x53, 0x65, 0x71, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x12, + 0x16, 0x0a, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x4f, 0x70, + 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x65, 0x71, + 0x4c, 0x69, 0x73, 0x74, 0x18, 0x03, 0x20, 0x03, 0x28, 0x03, 0x52, 0x07, 0x73, 0x65, 0x71, 0x4c, + 0x69, 0x73, 0x74, 0x22, 0x48, 0x0a, 0x0c, 0x47, 0x65, 0x74, 0x4e, 0x65, 0x77, 0x53, 0x65, 0x71, + 0x52, 0x65, 0x71, 0x12, 0x16, 0x0a, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x4f, + 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x22, 0x53, 0x0a, + 0x0d, 0x47, 0x65, 0x74, 0x4e, 0x65, 0x77, 0x53, 0x65, 0x71, 0x52, 0x65, 0x73, 0x70, 0x12, 0x18, + 0x0a, 0x07, 0x45, 0x72, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x07, 0x45, 0x72, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x45, 0x72, 0x72, 0x4d, + 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x45, 0x72, 0x72, 0x4d, 0x73, 0x67, + 0x12, 0x10, 0x0a, 0x03, 0x53, 0x65, 0x71, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x53, + 0x65, 0x71, 0x22, 0x45, 0x0a, 0x0c, 0x47, 0x61, 0x74, 0x68, 0x65, 0x72, 0x46, 0x6f, 0x72, 0x6d, + 0x61, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, + 0x49, 0x44, 0x12, 0x25, 0x0a, 0x04, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x11, 0x2e, 0x70, 0x62, 0x43, 0x68, 0x61, 0x74, 0x2e, 0x4d, 0x73, 0x67, 0x46, 0x6f, 0x72, + 0x6d, 0x61, 0x74, 0x52, 0x04, 0x4c, 0x69, 0x73, 0x74, 0x22, 0xfd, 0x02, 0x0a, 0x09, 0x4d, 0x73, + 0x67, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x65, 0x6e, 0x64, 0x49, + 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x53, 0x65, 0x6e, 0x64, 0x49, 0x44, 0x12, + 0x16, 0x0a, 0x06, 0x52, 0x65, 0x63, 0x76, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x06, 0x52, 0x65, 0x63, 0x76, 0x49, 0x44, 0x12, 0x18, 0x0a, 0x07, 0x4d, 0x73, 0x67, 0x46, 0x72, + 0x6f, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x4d, 0x73, 0x67, 0x46, 0x72, 0x6f, + 0x6d, 0x12, 0x20, 0x0a, 0x0b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x54, + 0x79, 0x70, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4d, 0x73, 0x67, + 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, + 0x4d, 0x73, 0x67, 0x49, 0x44, 0x12, 0x18, 0x0a, 0x07, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, + 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, + 0x10, 0x0a, 0x03, 0x53, 0x65, 0x71, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x53, 0x65, + 0x71, 0x12, 0x1a, 0x0a, 0x08, 0x53, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x08, 0x20, + 0x01, 0x28, 0x03, 0x52, 0x08, 0x53, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x2a, 0x0a, + 0x10, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x49, + 0x44, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x10, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x50, + 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x49, 0x44, 0x12, 0x26, 0x0a, 0x0e, 0x53, 0x65, 0x6e, + 0x64, 0x65, 0x72, 0x4e, 0x69, 0x63, 0x6b, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0e, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x4e, 0x69, 0x63, 0x6b, 0x4e, 0x61, 0x6d, + 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x46, 0x61, 0x63, 0x65, 0x55, + 0x52, 0x4c, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, + 0x46, 0x61, 0x63, 0x65, 0x55, 0x52, 0x4c, 0x12, 0x20, 0x0a, 0x0b, 0x43, 0x6c, 0x69, 0x65, 0x6e, + 0x74, 0x4d, 0x73, 0x67, 0x49, 0x44, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x43, 0x6c, + 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x73, 0x67, 0x49, 0x44, 0x22, 0xac, 0x04, 0x0a, 0x0e, 0x55, 0x73, + 0x65, 0x72, 0x53, 0x65, 0x6e, 0x64, 0x4d, 0x73, 0x67, 0x52, 0x65, 0x71, 0x12, 0x24, 0x0a, 0x0d, + 0x52, 0x65, 0x71, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x0d, 0x52, 0x65, 0x71, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, + 0x65, 0x72, 0x12, 0x14, 0x0a, 0x05, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x05, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x65, 0x6e, 0x64, + 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x53, 0x65, 0x6e, 0x64, 0x49, 0x44, + 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x49, 0x44, 0x12, 0x26, 0x0a, 0x0e, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x4e, 0x69, 0x63, 0x6b, + 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x53, 0x65, 0x6e, 0x64, + 0x65, 0x72, 0x4e, 0x69, 0x63, 0x6b, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x53, 0x65, + 0x6e, 0x64, 0x65, 0x72, 0x46, 0x61, 0x63, 0x65, 0x55, 0x52, 0x4c, 0x18, 0x06, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0d, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x46, 0x61, 0x63, 0x65, 0x55, 0x52, 0x4c, + 0x12, 0x1e, 0x0a, 0x0a, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x49, 0x44, 0x18, 0x07, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x49, 0x44, + 0x12, 0x20, 0x0a, 0x0b, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x18, + 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x54, 0x79, + 0x70, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x4d, 0x73, 0x67, 0x46, 0x72, 0x6f, 0x6d, 0x18, 0x09, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x07, 0x4d, 0x73, 0x67, 0x46, 0x72, 0x6f, 0x6d, 0x12, 0x20, 0x0a, 0x0b, + 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x0b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x16, + 0x0a, 0x06, 0x52, 0x65, 0x63, 0x76, 0x49, 0x44, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, + 0x52, 0x65, 0x63, 0x76, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x46, 0x6f, 0x72, 0x63, 0x65, 0x4c, + 0x69, 0x73, 0x74, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x46, 0x6f, 0x72, 0x63, 0x65, + 0x4c, 0x69, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, + 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x18, + 0x0a, 0x07, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x07, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x43, 0x6c, 0x69, 0x65, + 0x6e, 0x74, 0x4d, 0x73, 0x67, 0x49, 0x44, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x43, + 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x73, 0x67, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x66, + 0x66, 0x4c, 0x69, 0x6e, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0b, 0x4f, 0x66, 0x66, 0x4c, 0x69, 0x6e, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x0e, 0x0a, 0x02, + 0x45, 0x78, 0x18, 0x11, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x45, 0x78, 0x12, 0x1a, 0x0a, 0x08, + 0x73, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x12, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, + 0x73, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x22, 0xc9, 0x01, 0x0a, 0x0f, 0x55, 0x73, 0x65, + 0x72, 0x53, 0x65, 0x6e, 0x64, 0x4d, 0x73, 0x67, 0x52, 0x65, 0x73, 0x70, 0x12, 0x18, 0x0a, 0x07, + 0x45, 0x72, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x45, + 0x72, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x45, 0x72, 0x72, 0x4d, 0x73, 0x67, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x45, 0x72, 0x72, 0x4d, 0x73, 0x67, 0x12, 0x24, + 0x0a, 0x0d, 0x52, 0x65, 0x71, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x52, 0x65, 0x71, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, + 0x66, 0x69, 0x65, 0x72, 0x12, 0x20, 0x0a, 0x0b, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4d, 0x73, + 0x67, 0x49, 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x53, 0x65, 0x72, 0x76, 0x65, + 0x72, 0x4d, 0x73, 0x67, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, + 0x4d, 0x73, 0x67, 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x43, 0x6c, 0x69, + 0x65, 0x6e, 0x74, 0x4d, 0x73, 0x67, 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, 0x6e, 0x64, + 0x54, 0x69, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x73, 0x65, 0x6e, 0x64, + 0x54, 0x69, 0x6d, 0x65, 0x32, 0x92, 0x02, 0x0a, 0x04, 0x43, 0x68, 0x61, 0x74, 0x12, 0x38, 0x0a, + 0x09, 0x47, 0x65, 0x74, 0x4e, 0x65, 0x77, 0x53, 0x65, 0x71, 0x12, 0x14, 0x2e, 0x70, 0x62, 0x43, + 0x68, 0x61, 0x74, 0x2e, 0x47, 0x65, 0x74, 0x4e, 0x65, 0x77, 0x53, 0x65, 0x71, 0x52, 0x65, 0x71, + 0x1a, 0x15, 0x2e, 0x70, 0x62, 0x43, 0x68, 0x61, 0x74, 0x2e, 0x47, 0x65, 0x74, 0x4e, 0x65, 0x77, + 0x53, 0x65, 0x71, 0x52, 0x65, 0x73, 0x70, 0x12, 0x3e, 0x0a, 0x0b, 0x50, 0x75, 0x6c, 0x6c, 0x4d, + 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x16, 0x2e, 0x70, 0x62, 0x43, 0x68, 0x61, 0x74, 0x2e, + 0x50, 0x75, 0x6c, 0x6c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x17, + 0x2e, 0x70, 0x62, 0x43, 0x68, 0x61, 0x74, 0x2e, 0x50, 0x75, 0x6c, 0x6c, 0x4d, 0x65, 0x73, 0x73, + 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x50, 0x0a, 0x14, 0x50, 0x75, 0x6c, 0x6c, 0x4d, + 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x42, 0x79, 0x53, 0x65, 0x71, 0x4c, 0x69, 0x73, 0x74, 0x12, + 0x1f, 0x2e, 0x70, 0x62, 0x43, 0x68, 0x61, 0x74, 0x2e, 0x50, 0x75, 0x6c, 0x6c, 0x4d, 0x65, 0x73, + 0x73, 0x61, 0x67, 0x65, 0x42, 0x79, 0x53, 0x65, 0x71, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, + 0x1a, 0x17, 0x2e, 0x70, 0x62, 0x43, 0x68, 0x61, 0x74, 0x2e, 0x50, 0x75, 0x6c, 0x6c, 0x4d, 0x65, + 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x3e, 0x0a, 0x0b, 0x55, 0x73, 0x65, + 0x72, 0x53, 0x65, 0x6e, 0x64, 0x4d, 0x73, 0x67, 0x12, 0x16, 0x2e, 0x70, 0x62, 0x43, 0x68, 0x61, + 0x74, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x53, 0x65, 0x6e, 0x64, 0x4d, 0x73, 0x67, 0x52, 0x65, 0x71, + 0x1a, 0x17, 0x2e, 0x70, 0x62, 0x43, 0x68, 0x61, 0x74, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x53, 0x65, + 0x6e, 0x64, 0x4d, 0x73, 0x67, 0x52, 0x65, 0x73, 0x70, 0x42, 0x0f, 0x5a, 0x0d, 0x2e, 0x2f, 0x63, + 0x68, 0x61, 0x74, 0x3b, 0x70, 0x62, 0x43, 0x68, 0x61, 0x74, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x33, +} + +var ( + file_chat_chat_proto_rawDescOnce sync.Once + file_chat_chat_proto_rawDescData = file_chat_chat_proto_rawDesc +) -var _Chat_serviceDesc = grpc.ServiceDesc{ - ServiceName: "pbChat.Chat", - HandlerType: (*ChatServer)(nil), - Methods: []grpc.MethodDesc{ - { - MethodName: "GetNewSeq", - Handler: _Chat_GetNewSeq_Handler, - }, - { - MethodName: "PullMessage", - Handler: _Chat_PullMessage_Handler, - }, - { - MethodName: "PullMessageBySeqList", - Handler: _Chat_PullMessageBySeqList_Handler, - }, - { - MethodName: "UserSendMsg", - Handler: _Chat_UserSendMsg_Handler, +func file_chat_chat_proto_rawDescGZIP() []byte { + file_chat_chat_proto_rawDescOnce.Do(func() { + file_chat_chat_proto_rawDescData = protoimpl.X.CompressGZIP(file_chat_chat_proto_rawDescData) + }) + return file_chat_chat_proto_rawDescData +} + +var file_chat_chat_proto_msgTypes = make([]protoimpl.MessageInfo, 11) +var file_chat_chat_proto_goTypes = []interface{}{ + (*WSToMsgSvrChatMsg)(nil), // 0: pbChat.WSToMsgSvrChatMsg + (*MsgSvrToPushSvrChatMsg)(nil), // 1: pbChat.MsgSvrToPushSvrChatMsg + (*PullMessageReq)(nil), // 2: pbChat.PullMessageReq + (*PullMessageResp)(nil), // 3: pbChat.PullMessageResp + (*PullMessageBySeqListReq)(nil), // 4: pbChat.PullMessageBySeqListReq + (*GetNewSeqReq)(nil), // 5: pbChat.GetNewSeqReq + (*GetNewSeqResp)(nil), // 6: pbChat.GetNewSeqResp + (*GatherFormat)(nil), // 7: pbChat.GatherFormat + (*MsgFormat)(nil), // 8: pbChat.MsgFormat + (*UserSendMsgReq)(nil), // 9: pbChat.UserSendMsgReq + (*UserSendMsgResp)(nil), // 10: pbChat.UserSendMsgResp +} +var file_chat_chat_proto_depIdxs = []int32{ + 7, // 0: pbChat.PullMessageResp.SingleUserMsg:type_name -> pbChat.GatherFormat + 7, // 1: pbChat.PullMessageResp.GroupUserMsg:type_name -> pbChat.GatherFormat + 8, // 2: pbChat.GatherFormat.List:type_name -> pbChat.MsgFormat + 5, // 3: pbChat.Chat.GetNewSeq:input_type -> pbChat.GetNewSeqReq + 2, // 4: pbChat.Chat.PullMessage:input_type -> pbChat.PullMessageReq + 4, // 5: pbChat.Chat.PullMessageBySeqList:input_type -> pbChat.PullMessageBySeqListReq + 9, // 6: pbChat.Chat.UserSendMsg:input_type -> pbChat.UserSendMsgReq + 6, // 7: pbChat.Chat.GetNewSeq:output_type -> pbChat.GetNewSeqResp + 3, // 8: pbChat.Chat.PullMessage:output_type -> pbChat.PullMessageResp + 3, // 9: pbChat.Chat.PullMessageBySeqList:output_type -> pbChat.PullMessageResp + 10, // 10: pbChat.Chat.UserSendMsg:output_type -> pbChat.UserSendMsgResp + 7, // [7:11] is the sub-list for method output_type + 3, // [3:7] is the sub-list for method input_type + 3, // [3:3] is the sub-list for extension type_name + 3, // [3:3] is the sub-list for extension extendee + 0, // [0:3] is the sub-list for field type_name +} + +func init() { file_chat_chat_proto_init() } +func file_chat_chat_proto_init() { + if File_chat_chat_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_chat_chat_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*WSToMsgSvrChatMsg); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_chat_chat_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*MsgSvrToPushSvrChatMsg); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_chat_chat_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PullMessageReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_chat_chat_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PullMessageResp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_chat_chat_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PullMessageBySeqListReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_chat_chat_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetNewSeqReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_chat_chat_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetNewSeqResp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_chat_chat_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GatherFormat); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_chat_chat_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*MsgFormat); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_chat_chat_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UserSendMsgReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_chat_chat_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UserSendMsgResp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_chat_chat_proto_rawDesc, + NumEnums: 0, + NumMessages: 11, + NumExtensions: 0, + NumServices: 1, }, - }, - Streams: []grpc.StreamDesc{}, - Metadata: "chat/chat.proto", -} - -func init() { proto.RegisterFile("chat/chat.proto", fileDescriptor_chat_4f51bfe711d80421) } - -var fileDescriptor_chat_4f51bfe711d80421 = []byte{ - // 970 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xb4, 0x57, 0xdd, 0x6a, 0xe3, 0x46, - 0x14, 0xc6, 0x92, 0x7f, 0xa2, 0x23, 0xff, 0x65, 0x48, 0xb3, 0x43, 0x28, 0xad, 0x11, 0xdb, 0x62, - 0x7a, 0x91, 0xc2, 0xf6, 0x66, 0x69, 0x61, 0x2f, 0x12, 0x3b, 0xa9, 0x20, 0xce, 0x06, 0xc9, 0x4b, - 0xa1, 0x77, 0x5a, 0x67, 0xac, 0x88, 0xb5, 0x25, 0x79, 0x46, 0x49, 0xb3, 0x37, 0x7d, 0x85, 0x42, - 0x9f, 0xa3, 0x7d, 0xb0, 0xbe, 0x42, 0xa1, 0x50, 0x66, 0x46, 0xb2, 0x46, 0x3f, 0x4e, 0x42, 0x96, - 0xbd, 0x59, 0xf6, 0xfb, 0x74, 0xe6, 0xe7, 0x9c, 0xf3, 0xcd, 0x77, 0x62, 0x18, 0x2c, 0x6e, 0xbc, - 0xe4, 0x7b, 0xfe, 0xcf, 0x71, 0x4c, 0xa3, 0x24, 0x42, 0xed, 0xf8, 0xfd, 0xe9, 0x8d, 0x97, 0x58, - 0x7f, 0x34, 0x61, 0xff, 0x17, 0x77, 0x1e, 0xcd, 0x98, 0xef, 0xde, 0x51, 0x4e, 0xcd, 0x98, 0x8f, - 0x0e, 0xa1, 0xed, 0x92, 0xf0, 0xda, 0x9e, 0xe0, 0xc6, 0xa8, 0x31, 0x36, 0x9c, 0x14, 0x71, 0xde, - 0x21, 0x8b, 0x3b, 0x7b, 0x82, 0x35, 0xc9, 0x4b, 0x84, 0x30, 0x74, 0x4e, 0xa3, 0x30, 0x21, 0x61, - 0x82, 0x75, 0xf1, 0x21, 0x83, 0xe8, 0x08, 0xf6, 0xf8, 0xda, 0x79, 0xb0, 0x26, 0xb8, 0x39, 0x6a, - 0x8c, 0x75, 0x67, 0x8b, 0xf9, 0xaa, 0x19, 0xf3, 0xcf, 0x68, 0xb4, 0xc6, 0xad, 0x51, 0x63, 0xdc, - 0x72, 0x32, 0x88, 0xbe, 0x85, 0x3e, 0x8f, 0x22, 0xf4, 0x32, 0x58, 0x7c, 0xb8, 0xf4, 0xd6, 0x04, - 0xb7, 0xc5, 0xb6, 0x25, 0x16, 0xbd, 0x84, 0x9e, 0x64, 0xce, 0xbc, 0x05, 0x79, 0xe7, 0x5c, 0xe0, - 0x8e, 0x08, 0x2b, 0x92, 0x68, 0x04, 0x66, 0x7a, 0x9d, 0xf9, 0xc7, 0x98, 0xe0, 0x3d, 0x71, 0x96, - 0x4a, 0xf1, 0x08, 0x97, 0x30, 0x16, 0x44, 0xa1, 0x88, 0x30, 0x64, 0x84, 0x42, 0xf1, 0x88, 0xb7, - 0x31, 0xa1, 0x5e, 0x12, 0x44, 0xa1, 0x3d, 0xc1, 0x20, 0xce, 0x51, 0x29, 0x74, 0x00, 0xad, 0x19, - 0xf3, 0xed, 0x09, 0x36, 0xc5, 0x37, 0x09, 0x38, 0x3b, 0x8f, 0x3e, 0x90, 0x10, 0x77, 0x25, 0x2b, - 0x80, 0xd8, 0x6d, 0xb9, 0x5c, 0x05, 0x21, 0xb1, 0xc3, 0x65, 0x84, 0x7b, 0xe9, 0x6e, 0x39, 0xc5, - 0x6b, 0xf3, 0x36, 0xe6, 0x3b, 0x33, 0xdc, 0x97, 0x15, 0x4d, 0x21, 0xfa, 0x0a, 0xe0, 0x6a, 0xe5, - 0x25, 0xcb, 0x88, 0xae, 0xed, 0x09, 0x1e, 0x88, 0xab, 0x2a, 0x0c, 0xfa, 0x12, 0x8c, 0xb3, 0x88, - 0x2e, 0xc8, 0x45, 0xc0, 0x12, 0x3c, 0x1c, 0xe9, 0x63, 0xc3, 0xc9, 0x09, 0x51, 0x8b, 0x55, 0x40, - 0xc2, 0x44, 0xde, 0x75, 0x5f, 0x9e, 0xac, 0x50, 0xd6, 0xbf, 0x3a, 0x1c, 0x4a, 0x35, 0xcc, 0xa3, - 0xab, 0x5b, 0x76, 0xf3, 0x59, 0x64, 0x81, 0xa1, 0xc3, 0x63, 0x5c, 0xb2, 0x49, 0x55, 0x91, 0xc1, - 0x82, 0x60, 0x5a, 0xbb, 0x05, 0xd3, 0x7e, 0x4c, 0x30, 0x9d, 0xa7, 0x09, 0x66, 0xef, 0x09, 0x82, - 0x31, 0x1e, 0x15, 0x0c, 0x3c, 0x2a, 0x18, 0xf3, 0x01, 0xc1, 0x74, 0x55, 0xc1, 0x7c, 0x4e, 0x69, - 0x94, 0x9a, 0x3f, 0xac, 0x36, 0xff, 0x77, 0xe8, 0x5f, 0xdd, 0xae, 0x56, 0x33, 0xc2, 0x98, 0xe7, - 0x13, 0x87, 0x6c, 0x78, 0x6f, 0xdf, 0x31, 0x42, 0xf3, 0x9e, 0x4b, 0x24, 0xfb, 0xb4, 0x39, 0x21, - 0x7e, 0x10, 0x8a, 0xae, 0x8b, 0x3e, 0x49, 0x2c, 0x75, 0xb2, 0x99, 0x86, 0xd7, 0xa2, 0xed, 0xba, - 0x93, 0xa2, 0x72, 0x4d, 0x9a, 0x95, 0x9a, 0x58, 0xff, 0x34, 0x60, 0x50, 0xb8, 0x00, 0x8b, 0x79, - 0xbe, 0x53, 0x4a, 0x4f, 0xa3, 0x6b, 0x22, 0xae, 0xd0, 0x72, 0x32, 0xc8, 0xcf, 0x99, 0x52, 0x3a, - 0x63, 0x7e, 0xa6, 0x3b, 0x89, 0x38, 0x3f, 0xf3, 0xee, 0xb9, 0xb8, 0xd2, 0xf3, 0x25, 0x12, 0x7c, - 0x10, 0xe6, 0xa2, 0x4b, 0x11, 0xfa, 0x11, 0x7a, 0x6e, 0x10, 0xfa, 0x2b, 0xc2, 0x73, 0xe3, 0xdb, - 0xb5, 0x46, 0xfa, 0xd8, 0x7c, 0x75, 0x70, 0x2c, 0x4d, 0xf2, 0xf8, 0xdc, 0x4b, 0x6e, 0x08, 0x3d, - 0x8b, 0xe8, 0xda, 0x4b, 0x9c, 0x62, 0x28, 0x7a, 0x0d, 0xdd, 0x73, 0x1a, 0xdd, 0xc6, 0xd9, 0xd2, - 0xf6, 0x03, 0x4b, 0x0b, 0x91, 0xd6, 0x1a, 0x5e, 0x28, 0xa9, 0x9e, 0x7c, 0x74, 0xc9, 0x86, 0x3f, - 0xd1, 0x87, 0x8a, 0x5e, 0x2a, 0xa0, 0x56, 0x15, 0x15, 0x86, 0x0e, 0x93, 0xfb, 0x60, 0x7d, 0xa4, - 0xf3, 0x87, 0x95, 0x42, 0xeb, 0x67, 0xe8, 0x9e, 0x93, 0xe4, 0x92, 0xfc, 0xe6, 0x92, 0xcd, 0x27, - 0x9d, 0x61, 0xb9, 0xd0, 0x53, 0x76, 0x7a, 0x56, 0x87, 0x86, 0xa0, 0xe7, 0xed, 0xe1, 0xff, 0xb5, - 0xa6, 0xd0, 0x55, 0x6b, 0x85, 0xfa, 0xa0, 0x6d, 0xaf, 0xa6, 0xd9, 0x13, 0xf4, 0x0d, 0x34, 0x45, - 0x56, 0x9a, 0xa8, 0xef, 0x7e, 0x56, 0x5f, 0x6e, 0x00, 0xb2, 0xb8, 0xe2, 0xb3, 0xf5, 0x9f, 0x06, - 0xc6, 0x96, 0x7b, 0x8e, 0x61, 0x65, 0x06, 0xa3, 0x17, 0x0d, 0xa6, 0x64, 0x09, 0xcd, 0x1d, 0x96, - 0x40, 0xef, 0x44, 0x6f, 0xed, 0x89, 0xf0, 0x2e, 0xc3, 0x51, 0x29, 0xd5, 0x0e, 0xdb, 0x45, 0x3b, - 0x4c, 0xcb, 0xd1, 0xd9, 0x96, 0xa3, 0x60, 0x83, 0x7b, 0x25, 0x1b, 0xfc, 0x0e, 0x86, 0xd2, 0xaf, - 0x94, 0xc7, 0x2e, 0x3d, 0xaa, 0xc2, 0xd7, 0x18, 0x23, 0x3c, 0xcd, 0x18, 0xcd, 0x5d, 0xc6, 0xa8, - 0x18, 0x48, 0xb7, 0x6a, 0x20, 0x7f, 0x35, 0xa1, 0xcf, 0x85, 0xc4, 0xd7, 0xcd, 0x98, 0xcf, 0x85, - 0xf6, 0x12, 0x7a, 0x0e, 0xd9, 0xd8, 0xd7, 0x24, 0x4c, 0x82, 0x65, 0x40, 0x68, 0xaa, 0x91, 0x22, - 0x99, 0x0f, 0x4a, 0x4d, 0x1d, 0x94, 0x79, 0x03, 0xf5, 0x42, 0x03, 0x1f, 0x75, 0x92, 0x9a, 0xc4, - 0x5b, 0x4f, 0x4b, 0xbc, 0x5d, 0x97, 0x78, 0xd1, 0x59, 0x3b, 0x75, 0xce, 0xaa, 0xce, 0x83, 0xbd, - 0xea, 0x3c, 0x50, 0xa4, 0x65, 0x3c, 0x28, 0x2d, 0xa8, 0x4a, 0x2b, 0x97, 0xab, 0x59, 0x90, 0x6b, - 0x61, 0xd4, 0x77, 0xcb, 0xa3, 0x5e, 0x91, 0x5b, 0xaf, 0x32, 0x7d, 0x77, 0x4c, 0x90, 0x52, 0x83, - 0x07, 0x95, 0x06, 0xa7, 0xf3, 0xe9, 0x22, 0x9b, 0x4f, 0xc3, 0xed, 0x7c, 0xca, 0x28, 0xfe, 0x72, - 0xa7, 0xf7, 0xe9, 0x5f, 0x16, 0xda, 0xf4, 0x9e, 0x4b, 0x99, 0x65, 0x52, 0x46, 0x52, 0xca, 0x19, - 0xb6, 0xfe, 0x6e, 0xc0, 0xa0, 0x20, 0x97, 0x67, 0xb9, 0x49, 0x45, 0x61, 0x7a, 0x9d, 0xc2, 0x4a, - 0x0f, 0xb4, 0x59, 0x7d, 0xa0, 0xa5, 0xec, 0x5b, 0x95, 0xec, 0x5f, 0xfd, 0xa9, 0x41, 0x93, 0xfb, - 0x0e, 0x7a, 0x0d, 0xc6, 0xd6, 0x03, 0x51, 0xee, 0xf6, 0x8a, 0xc1, 0x1e, 0x7d, 0x51, 0xc3, 0xb2, - 0x18, 0xbd, 0x01, 0x53, 0xb1, 0x7d, 0x74, 0x98, 0x45, 0x15, 0xe7, 0xee, 0xd1, 0x8b, 0x5a, 0x9e, - 0xc5, 0xe8, 0x0a, 0x0e, 0xea, 0xc6, 0x06, 0xfa, 0xba, 0x66, 0x81, 0x3a, 0x54, 0x76, 0xef, 0xf8, - 0x06, 0x4c, 0xa5, 0x07, 0xf9, 0x8d, 0x8a, 0xef, 0x38, 0x5f, 0x5f, 0x6a, 0xd8, 0x49, 0xef, 0x57, - 0x93, 0xff, 0xb2, 0xf8, 0x49, 0x7e, 0x7e, 0xdf, 0x16, 0xbf, 0x30, 0x7e, 0xf8, 0x3f, 0x00, 0x00, - 0xff, 0xff, 0x6c, 0xad, 0x53, 0x41, 0x74, 0x0c, 0x00, 0x00, + GoTypes: file_chat_chat_proto_goTypes, + DependencyIndexes: file_chat_chat_proto_depIdxs, + MessageInfos: file_chat_chat_proto_msgTypes, + }.Build() + File_chat_chat_proto = out.File + file_chat_chat_proto_rawDesc = nil + file_chat_chat_proto_goTypes = nil + file_chat_chat_proto_depIdxs = nil } diff --git a/src/proto/friend/friend.pb.go b/src/proto/friend/friend.pb.go index f20bc494d..34eb02177 100644 --- a/src/proto/friend/friend.pb.go +++ b/src/proto/friend/friend.pb.go @@ -1,2102 +1,2367 @@ // Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.26.0 +// protoc v3.7.1 // source: friend/friend.proto -package friend // import "friend" - -import proto "github.com/golang/protobuf/proto" -import fmt "fmt" -import math "math" +package friend import ( - context "golang.org/x/net/context" - grpc "google.golang.org/grpc" + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + reflect "reflect" + sync "sync" ) -// 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 +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) type CommonResp struct { - ErrorCode int32 `protobuf:"varint,1,opt,name=errorCode" json:"errorCode,omitempty"` - ErrorMsg string `protobuf:"bytes,2,opt,name=errorMsg" json:"errorMsg,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields -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_friend_05873114bd399886, []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) + ErrorCode int32 `protobuf:"varint,1,opt,name=errorCode,proto3" json:"errorCode,omitempty"` + ErrorMsg string `protobuf:"bytes,2,opt,name=errorMsg,proto3" json:"errorMsg,omitempty"` } -func (dst *CommonResp) XXX_Merge(src proto.Message) { - xxx_messageInfo_CommonResp.Merge(dst, src) + +func (x *CommonResp) Reset() { + *x = CommonResp{} + if protoimpl.UnsafeEnabled { + mi := &file_friend_friend_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *CommonResp) XXX_Size() int { - return xxx_messageInfo_CommonResp.Size(m) + +func (x *CommonResp) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *CommonResp) XXX_DiscardUnknown() { - xxx_messageInfo_CommonResp.DiscardUnknown(m) + +func (*CommonResp) ProtoMessage() {} + +func (x *CommonResp) ProtoReflect() protoreflect.Message { + mi := &file_friend_friend_proto_msgTypes[0] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) } -var xxx_messageInfo_CommonResp proto.InternalMessageInfo +// Deprecated: Use CommonResp.ProtoReflect.Descriptor instead. +func (*CommonResp) Descriptor() ([]byte, []int) { + return file_friend_friend_proto_rawDescGZIP(), []int{0} +} -func (m *CommonResp) GetErrorCode() int32 { - if m != nil { - return m.ErrorCode +func (x *CommonResp) GetErrorCode() int32 { + if x != nil { + return x.ErrorCode } return 0 } -func (m *CommonResp) GetErrorMsg() string { - if m != nil { - return m.ErrorMsg +func (x *CommonResp) GetErrorMsg() string { + if x != nil { + return x.ErrorMsg } return "" } type GetFriendsInfoReq struct { - Uid string `protobuf:"bytes,1,opt,name=uid" json:"uid,omitempty"` - OperationID string `protobuf:"bytes,2,opt,name=OperationID" json:"OperationID,omitempty"` - Token string `protobuf:"bytes,3,opt,name=Token" json:"Token,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields -func (m *GetFriendsInfoReq) Reset() { *m = GetFriendsInfoReq{} } -func (m *GetFriendsInfoReq) String() string { return proto.CompactTextString(m) } -func (*GetFriendsInfoReq) ProtoMessage() {} -func (*GetFriendsInfoReq) Descriptor() ([]byte, []int) { - return fileDescriptor_friend_05873114bd399886, []int{1} + Uid string `protobuf:"bytes,1,opt,name=uid,proto3" json:"uid,omitempty"` + OperationID string `protobuf:"bytes,2,opt,name=OperationID,proto3" json:"OperationID,omitempty"` + Token string `protobuf:"bytes,3,opt,name=Token,proto3" json:"Token,omitempty"` } -func (m *GetFriendsInfoReq) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_GetFriendsInfoReq.Unmarshal(m, b) -} -func (m *GetFriendsInfoReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_GetFriendsInfoReq.Marshal(b, m, deterministic) -} -func (dst *GetFriendsInfoReq) XXX_Merge(src proto.Message) { - xxx_messageInfo_GetFriendsInfoReq.Merge(dst, src) + +func (x *GetFriendsInfoReq) Reset() { + *x = GetFriendsInfoReq{} + if protoimpl.UnsafeEnabled { + mi := &file_friend_friend_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *GetFriendsInfoReq) XXX_Size() int { - return xxx_messageInfo_GetFriendsInfoReq.Size(m) + +func (x *GetFriendsInfoReq) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *GetFriendsInfoReq) XXX_DiscardUnknown() { - xxx_messageInfo_GetFriendsInfoReq.DiscardUnknown(m) + +func (*GetFriendsInfoReq) ProtoMessage() {} + +func (x *GetFriendsInfoReq) ProtoReflect() protoreflect.Message { + mi := &file_friend_friend_proto_msgTypes[1] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) } -var xxx_messageInfo_GetFriendsInfoReq proto.InternalMessageInfo +// Deprecated: Use GetFriendsInfoReq.ProtoReflect.Descriptor instead. +func (*GetFriendsInfoReq) Descriptor() ([]byte, []int) { + return file_friend_friend_proto_rawDescGZIP(), []int{1} +} -func (m *GetFriendsInfoReq) GetUid() string { - if m != nil { - return m.Uid +func (x *GetFriendsInfoReq) GetUid() string { + if x != nil { + return x.Uid } return "" } -func (m *GetFriendsInfoReq) GetOperationID() string { - if m != nil { - return m.OperationID +func (x *GetFriendsInfoReq) GetOperationID() string { + if x != nil { + return x.OperationID } return "" } -func (m *GetFriendsInfoReq) GetToken() string { - if m != nil { - return m.Token +func (x *GetFriendsInfoReq) GetToken() string { + if x != nil { + return x.Token } return "" } type GetFriendInfoResp struct { - ErrorCode int32 `protobuf:"varint,1,opt,name=errorCode" json:"errorCode,omitempty"` - ErrorMsg string `protobuf:"bytes,2,opt,name=errorMsg" json:"errorMsg,omitempty"` - Data *GetFriendData `protobuf:"bytes,3,opt,name=Data" json:"Data,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields -func (m *GetFriendInfoResp) Reset() { *m = GetFriendInfoResp{} } -func (m *GetFriendInfoResp) String() string { return proto.CompactTextString(m) } -func (*GetFriendInfoResp) ProtoMessage() {} -func (*GetFriendInfoResp) Descriptor() ([]byte, []int) { - return fileDescriptor_friend_05873114bd399886, []int{2} -} -func (m *GetFriendInfoResp) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_GetFriendInfoResp.Unmarshal(m, b) + ErrorCode int32 `protobuf:"varint,1,opt,name=errorCode,proto3" json:"errorCode,omitempty"` + ErrorMsg string `protobuf:"bytes,2,opt,name=errorMsg,proto3" json:"errorMsg,omitempty"` + Data *GetFriendData `protobuf:"bytes,3,opt,name=Data,proto3" json:"Data,omitempty"` } -func (m *GetFriendInfoResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_GetFriendInfoResp.Marshal(b, m, deterministic) -} -func (dst *GetFriendInfoResp) XXX_Merge(src proto.Message) { - xxx_messageInfo_GetFriendInfoResp.Merge(dst, src) + +func (x *GetFriendInfoResp) Reset() { + *x = GetFriendInfoResp{} + if protoimpl.UnsafeEnabled { + mi := &file_friend_friend_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *GetFriendInfoResp) XXX_Size() int { - return xxx_messageInfo_GetFriendInfoResp.Size(m) + +func (x *GetFriendInfoResp) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *GetFriendInfoResp) XXX_DiscardUnknown() { - xxx_messageInfo_GetFriendInfoResp.DiscardUnknown(m) + +func (*GetFriendInfoResp) ProtoMessage() {} + +func (x *GetFriendInfoResp) ProtoReflect() protoreflect.Message { + mi := &file_friend_friend_proto_msgTypes[2] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) } -var xxx_messageInfo_GetFriendInfoResp proto.InternalMessageInfo +// Deprecated: Use GetFriendInfoResp.ProtoReflect.Descriptor instead. +func (*GetFriendInfoResp) Descriptor() ([]byte, []int) { + return file_friend_friend_proto_rawDescGZIP(), []int{2} +} -func (m *GetFriendInfoResp) GetErrorCode() int32 { - if m != nil { - return m.ErrorCode +func (x *GetFriendInfoResp) GetErrorCode() int32 { + if x != nil { + return x.ErrorCode } return 0 } -func (m *GetFriendInfoResp) GetErrorMsg() string { - if m != nil { - return m.ErrorMsg +func (x *GetFriendInfoResp) GetErrorMsg() string { + if x != nil { + return x.ErrorMsg } return "" } -func (m *GetFriendInfoResp) GetData() *GetFriendData { - if m != nil { - return m.Data +func (x *GetFriendInfoResp) GetData() *GetFriendData { + if x != nil { + return x.Data } return nil } type GetFriendData struct { - Uid string `protobuf:"bytes,1,opt,name=uid" json:"uid,omitempty"` - Icon string `protobuf:"bytes,2,opt,name=icon" json:"icon,omitempty"` - Name string `protobuf:"bytes,3,opt,name=name" json:"name,omitempty"` - Gender int32 `protobuf:"varint,4,opt,name=gender" json:"gender,omitempty"` - Mobile string `protobuf:"bytes,5,opt,name=mobile" json:"mobile,omitempty"` - Birth string `protobuf:"bytes,6,opt,name=birth" json:"birth,omitempty"` - Email string `protobuf:"bytes,7,opt,name=email" json:"email,omitempty"` - Ex string `protobuf:"bytes,8,opt,name=ex" json:"ex,omitempty"` - Comment string `protobuf:"bytes,9,opt,name=comment" json:"comment,omitempty"` - IsFriend int32 `protobuf:"varint,10,opt,name=isFriend" json:"isFriend,omitempty"` - IsInBlackList int32 `protobuf:"varint,11,opt,name=isInBlackList" json:"isInBlackList,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *GetFriendData) Reset() { *m = GetFriendData{} } -func (m *GetFriendData) String() string { return proto.CompactTextString(m) } -func (*GetFriendData) ProtoMessage() {} -func (*GetFriendData) Descriptor() ([]byte, []int) { - return fileDescriptor_friend_05873114bd399886, []int{3} -} -func (m *GetFriendData) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_GetFriendData.Unmarshal(m, b) -} -func (m *GetFriendData) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_GetFriendData.Marshal(b, m, deterministic) + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Uid string `protobuf:"bytes,1,opt,name=uid,proto3" json:"uid,omitempty"` + Icon string `protobuf:"bytes,2,opt,name=icon,proto3" json:"icon,omitempty"` + Name string `protobuf:"bytes,3,opt,name=name,proto3" json:"name,omitempty"` + Gender int32 `protobuf:"varint,4,opt,name=gender,proto3" json:"gender,omitempty"` + Mobile string `protobuf:"bytes,5,opt,name=mobile,proto3" json:"mobile,omitempty"` + Birth string `protobuf:"bytes,6,opt,name=birth,proto3" json:"birth,omitempty"` + Email string `protobuf:"bytes,7,opt,name=email,proto3" json:"email,omitempty"` + Ex string `protobuf:"bytes,8,opt,name=ex,proto3" json:"ex,omitempty"` + Comment string `protobuf:"bytes,9,opt,name=comment,proto3" json:"comment,omitempty"` + IsFriend int32 `protobuf:"varint,10,opt,name=isFriend,proto3" json:"isFriend,omitempty"` + IsInBlackList int32 `protobuf:"varint,11,opt,name=isInBlackList,proto3" json:"isInBlackList,omitempty"` } -func (dst *GetFriendData) XXX_Merge(src proto.Message) { - xxx_messageInfo_GetFriendData.Merge(dst, src) + +func (x *GetFriendData) Reset() { + *x = GetFriendData{} + if protoimpl.UnsafeEnabled { + mi := &file_friend_friend_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *GetFriendData) XXX_Size() int { - return xxx_messageInfo_GetFriendData.Size(m) + +func (x *GetFriendData) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *GetFriendData) XXX_DiscardUnknown() { - xxx_messageInfo_GetFriendData.DiscardUnknown(m) + +func (*GetFriendData) ProtoMessage() {} + +func (x *GetFriendData) ProtoReflect() protoreflect.Message { + mi := &file_friend_friend_proto_msgTypes[3] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) } -var xxx_messageInfo_GetFriendData proto.InternalMessageInfo +// Deprecated: Use GetFriendData.ProtoReflect.Descriptor instead. +func (*GetFriendData) Descriptor() ([]byte, []int) { + return file_friend_friend_proto_rawDescGZIP(), []int{3} +} -func (m *GetFriendData) GetUid() string { - if m != nil { - return m.Uid +func (x *GetFriendData) GetUid() string { + if x != nil { + return x.Uid } return "" } -func (m *GetFriendData) GetIcon() string { - if m != nil { - return m.Icon +func (x *GetFriendData) GetIcon() string { + if x != nil { + return x.Icon } return "" } -func (m *GetFriendData) GetName() string { - if m != nil { - return m.Name +func (x *GetFriendData) GetName() string { + if x != nil { + return x.Name } return "" } -func (m *GetFriendData) GetGender() int32 { - if m != nil { - return m.Gender +func (x *GetFriendData) GetGender() int32 { + if x != nil { + return x.Gender } return 0 } -func (m *GetFriendData) GetMobile() string { - if m != nil { - return m.Mobile +func (x *GetFriendData) GetMobile() string { + if x != nil { + return x.Mobile } return "" } -func (m *GetFriendData) GetBirth() string { - if m != nil { - return m.Birth +func (x *GetFriendData) GetBirth() string { + if x != nil { + return x.Birth } return "" } -func (m *GetFriendData) GetEmail() string { - if m != nil { - return m.Email +func (x *GetFriendData) GetEmail() string { + if x != nil { + return x.Email } return "" } -func (m *GetFriendData) GetEx() string { - if m != nil { - return m.Ex +func (x *GetFriendData) GetEx() string { + if x != nil { + return x.Ex } return "" } -func (m *GetFriendData) GetComment() string { - if m != nil { - return m.Comment +func (x *GetFriendData) GetComment() string { + if x != nil { + return x.Comment } return "" } -func (m *GetFriendData) GetIsFriend() int32 { - if m != nil { - return m.IsFriend +func (x *GetFriendData) GetIsFriend() int32 { + if x != nil { + return x.IsFriend } return 0 } -func (m *GetFriendData) GetIsInBlackList() int32 { - if m != nil { - return m.IsInBlackList +func (x *GetFriendData) GetIsInBlackList() int32 { + if x != nil { + return x.IsInBlackList } return 0 } type AddFriendReq struct { - Uid string `protobuf:"bytes,1,opt,name=uid" json:"uid,omitempty"` - OperationID string `protobuf:"bytes,2,opt,name=OperationID" json:"OperationID,omitempty"` - Token string `protobuf:"bytes,3,opt,name=Token" json:"Token,omitempty"` - ReqMessage string `protobuf:"bytes,4,opt,name=ReqMessage" json:"ReqMessage,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *AddFriendReq) Reset() { *m = AddFriendReq{} } -func (m *AddFriendReq) String() string { return proto.CompactTextString(m) } -func (*AddFriendReq) ProtoMessage() {} -func (*AddFriendReq) Descriptor() ([]byte, []int) { - return fileDescriptor_friend_05873114bd399886, []int{4} -} -func (m *AddFriendReq) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_AddFriendReq.Unmarshal(m, b) -} -func (m *AddFriendReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_AddFriendReq.Marshal(b, m, deterministic) + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Uid string `protobuf:"bytes,1,opt,name=uid,proto3" json:"uid,omitempty"` + OperationID string `protobuf:"bytes,2,opt,name=OperationID,proto3" json:"OperationID,omitempty"` + Token string `protobuf:"bytes,3,opt,name=Token,proto3" json:"Token,omitempty"` + ReqMessage string `protobuf:"bytes,4,opt,name=ReqMessage,proto3" json:"ReqMessage,omitempty"` } -func (dst *AddFriendReq) XXX_Merge(src proto.Message) { - xxx_messageInfo_AddFriendReq.Merge(dst, src) + +func (x *AddFriendReq) Reset() { + *x = AddFriendReq{} + if protoimpl.UnsafeEnabled { + mi := &file_friend_friend_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *AddFriendReq) XXX_Size() int { - return xxx_messageInfo_AddFriendReq.Size(m) + +func (x *AddFriendReq) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *AddFriendReq) XXX_DiscardUnknown() { - xxx_messageInfo_AddFriendReq.DiscardUnknown(m) + +func (*AddFriendReq) ProtoMessage() {} + +func (x *AddFriendReq) ProtoReflect() protoreflect.Message { + mi := &file_friend_friend_proto_msgTypes[4] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) } -var xxx_messageInfo_AddFriendReq proto.InternalMessageInfo +// Deprecated: Use AddFriendReq.ProtoReflect.Descriptor instead. +func (*AddFriendReq) Descriptor() ([]byte, []int) { + return file_friend_friend_proto_rawDescGZIP(), []int{4} +} -func (m *AddFriendReq) GetUid() string { - if m != nil { - return m.Uid +func (x *AddFriendReq) GetUid() string { + if x != nil { + return x.Uid } return "" } -func (m *AddFriendReq) GetOperationID() string { - if m != nil { - return m.OperationID +func (x *AddFriendReq) GetOperationID() string { + if x != nil { + return x.OperationID } return "" } -func (m *AddFriendReq) GetToken() string { - if m != nil { - return m.Token +func (x *AddFriendReq) GetToken() string { + if x != nil { + return x.Token } return "" } -func (m *AddFriendReq) GetReqMessage() string { - if m != nil { - return m.ReqMessage +func (x *AddFriendReq) GetReqMessage() string { + if x != nil { + return x.ReqMessage } return "" } type ImportFriendReq struct { - UidList []string `protobuf:"bytes,1,rep,name=uidList" json:"uidList,omitempty"` - OperationID string `protobuf:"bytes,2,opt,name=OperationID" json:"OperationID,omitempty"` - Token string `protobuf:"bytes,3,opt,name=Token" json:"Token,omitempty"` - OwnerUid string `protobuf:"bytes,4,opt,name=OwnerUid" json:"OwnerUid,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *ImportFriendReq) Reset() { *m = ImportFriendReq{} } -func (m *ImportFriendReq) String() string { return proto.CompactTextString(m) } -func (*ImportFriendReq) ProtoMessage() {} -func (*ImportFriendReq) Descriptor() ([]byte, []int) { - return fileDescriptor_friend_05873114bd399886, []int{5} -} -func (m *ImportFriendReq) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_ImportFriendReq.Unmarshal(m, b) -} -func (m *ImportFriendReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_ImportFriendReq.Marshal(b, m, deterministic) + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + UidList []string `protobuf:"bytes,1,rep,name=uidList,proto3" json:"uidList,omitempty"` + OperationID string `protobuf:"bytes,2,opt,name=OperationID,proto3" json:"OperationID,omitempty"` + Token string `protobuf:"bytes,3,opt,name=Token,proto3" json:"Token,omitempty"` + OwnerUid string `protobuf:"bytes,4,opt,name=OwnerUid,proto3" json:"OwnerUid,omitempty"` } -func (dst *ImportFriendReq) XXX_Merge(src proto.Message) { - xxx_messageInfo_ImportFriendReq.Merge(dst, src) + +func (x *ImportFriendReq) Reset() { + *x = ImportFriendReq{} + if protoimpl.UnsafeEnabled { + mi := &file_friend_friend_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *ImportFriendReq) XXX_Size() int { - return xxx_messageInfo_ImportFriendReq.Size(m) + +func (x *ImportFriendReq) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *ImportFriendReq) XXX_DiscardUnknown() { - xxx_messageInfo_ImportFriendReq.DiscardUnknown(m) + +func (*ImportFriendReq) ProtoMessage() {} + +func (x *ImportFriendReq) ProtoReflect() protoreflect.Message { + mi := &file_friend_friend_proto_msgTypes[5] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) } -var xxx_messageInfo_ImportFriendReq proto.InternalMessageInfo +// Deprecated: Use ImportFriendReq.ProtoReflect.Descriptor instead. +func (*ImportFriendReq) Descriptor() ([]byte, []int) { + return file_friend_friend_proto_rawDescGZIP(), []int{5} +} -func (m *ImportFriendReq) GetUidList() []string { - if m != nil { - return m.UidList +func (x *ImportFriendReq) GetUidList() []string { + if x != nil { + return x.UidList } return nil } -func (m *ImportFriendReq) GetOperationID() string { - if m != nil { - return m.OperationID +func (x *ImportFriendReq) GetOperationID() string { + if x != nil { + return x.OperationID } return "" } -func (m *ImportFriendReq) GetToken() string { - if m != nil { - return m.Token +func (x *ImportFriendReq) GetToken() string { + if x != nil { + return x.Token } return "" } -func (m *ImportFriendReq) GetOwnerUid() string { - if m != nil { - return m.OwnerUid +func (x *ImportFriendReq) GetOwnerUid() string { + if x != nil { + return x.OwnerUid } return "" } type ImportFriendResp struct { - CommonResp *CommonResp `protobuf:"bytes,1,opt,name=commonResp" json:"commonResp,omitempty"` - FailedUidList []string `protobuf:"bytes,2,rep,name=failedUidList" json:"failedUidList,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields -func (m *ImportFriendResp) Reset() { *m = ImportFriendResp{} } -func (m *ImportFriendResp) String() string { return proto.CompactTextString(m) } -func (*ImportFriendResp) ProtoMessage() {} -func (*ImportFriendResp) Descriptor() ([]byte, []int) { - return fileDescriptor_friend_05873114bd399886, []int{6} + CommonResp *CommonResp `protobuf:"bytes,1,opt,name=commonResp,proto3" json:"commonResp,omitempty"` + FailedUidList []string `protobuf:"bytes,2,rep,name=failedUidList,proto3" json:"failedUidList,omitempty"` } -func (m *ImportFriendResp) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_ImportFriendResp.Unmarshal(m, b) -} -func (m *ImportFriendResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_ImportFriendResp.Marshal(b, m, deterministic) -} -func (dst *ImportFriendResp) XXX_Merge(src proto.Message) { - xxx_messageInfo_ImportFriendResp.Merge(dst, src) + +func (x *ImportFriendResp) Reset() { + *x = ImportFriendResp{} + if protoimpl.UnsafeEnabled { + mi := &file_friend_friend_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *ImportFriendResp) XXX_Size() int { - return xxx_messageInfo_ImportFriendResp.Size(m) + +func (x *ImportFriendResp) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *ImportFriendResp) XXX_DiscardUnknown() { - xxx_messageInfo_ImportFriendResp.DiscardUnknown(m) + +func (*ImportFriendResp) ProtoMessage() {} + +func (x *ImportFriendResp) ProtoReflect() protoreflect.Message { + mi := &file_friend_friend_proto_msgTypes[6] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) } -var xxx_messageInfo_ImportFriendResp proto.InternalMessageInfo +// Deprecated: Use ImportFriendResp.ProtoReflect.Descriptor instead. +func (*ImportFriendResp) Descriptor() ([]byte, []int) { + return file_friend_friend_proto_rawDescGZIP(), []int{6} +} -func (m *ImportFriendResp) GetCommonResp() *CommonResp { - if m != nil { - return m.CommonResp +func (x *ImportFriendResp) GetCommonResp() *CommonResp { + if x != nil { + return x.CommonResp } return nil } -func (m *ImportFriendResp) GetFailedUidList() []string { - if m != nil { - return m.FailedUidList +func (x *ImportFriendResp) GetFailedUidList() []string { + if x != nil { + return x.FailedUidList } return nil } type GetFriendApplyReq struct { - OperationID string `protobuf:"bytes,1,opt,name=OperationID" json:"OperationID,omitempty"` - Token string `protobuf:"bytes,2,opt,name=Token" json:"Token,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields -func (m *GetFriendApplyReq) Reset() { *m = GetFriendApplyReq{} } -func (m *GetFriendApplyReq) String() string { return proto.CompactTextString(m) } -func (*GetFriendApplyReq) ProtoMessage() {} -func (*GetFriendApplyReq) Descriptor() ([]byte, []int) { - return fileDescriptor_friend_05873114bd399886, []int{7} -} -func (m *GetFriendApplyReq) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_GetFriendApplyReq.Unmarshal(m, b) + OperationID string `protobuf:"bytes,1,opt,name=OperationID,proto3" json:"OperationID,omitempty"` + Token string `protobuf:"bytes,2,opt,name=Token,proto3" json:"Token,omitempty"` } -func (m *GetFriendApplyReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_GetFriendApplyReq.Marshal(b, m, deterministic) -} -func (dst *GetFriendApplyReq) XXX_Merge(src proto.Message) { - xxx_messageInfo_GetFriendApplyReq.Merge(dst, src) + +func (x *GetFriendApplyReq) Reset() { + *x = GetFriendApplyReq{} + if protoimpl.UnsafeEnabled { + mi := &file_friend_friend_proto_msgTypes[7] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *GetFriendApplyReq) XXX_Size() int { - return xxx_messageInfo_GetFriendApplyReq.Size(m) + +func (x *GetFriendApplyReq) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *GetFriendApplyReq) XXX_DiscardUnknown() { - xxx_messageInfo_GetFriendApplyReq.DiscardUnknown(m) + +func (*GetFriendApplyReq) ProtoMessage() {} + +func (x *GetFriendApplyReq) ProtoReflect() protoreflect.Message { + mi := &file_friend_friend_proto_msgTypes[7] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) } -var xxx_messageInfo_GetFriendApplyReq proto.InternalMessageInfo +// Deprecated: Use GetFriendApplyReq.ProtoReflect.Descriptor instead. +func (*GetFriendApplyReq) Descriptor() ([]byte, []int) { + return file_friend_friend_proto_rawDescGZIP(), []int{7} +} -func (m *GetFriendApplyReq) GetOperationID() string { - if m != nil { - return m.OperationID +func (x *GetFriendApplyReq) GetOperationID() string { + if x != nil { + return x.OperationID } return "" } -func (m *GetFriendApplyReq) GetToken() string { - if m != nil { - return m.Token +func (x *GetFriendApplyReq) GetToken() string { + if x != nil { + return x.Token } return "" } type GetFriendApplyResp struct { - ErrorCode int32 `protobuf:"varint,1,opt,name=errorCode" json:"errorCode,omitempty"` - ErrorMsg string `protobuf:"bytes,2,opt,name=errorMsg" json:"errorMsg,omitempty"` - Data []*ApplyUserInfo `protobuf:"bytes,4,rep,name=data" json:"data,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields -func (m *GetFriendApplyResp) Reset() { *m = GetFriendApplyResp{} } -func (m *GetFriendApplyResp) String() string { return proto.CompactTextString(m) } -func (*GetFriendApplyResp) ProtoMessage() {} -func (*GetFriendApplyResp) Descriptor() ([]byte, []int) { - return fileDescriptor_friend_05873114bd399886, []int{8} -} -func (m *GetFriendApplyResp) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_GetFriendApplyResp.Unmarshal(m, b) + ErrorCode int32 `protobuf:"varint,1,opt,name=errorCode,proto3" json:"errorCode,omitempty"` + ErrorMsg string `protobuf:"bytes,2,opt,name=errorMsg,proto3" json:"errorMsg,omitempty"` + Data []*ApplyUserInfo `protobuf:"bytes,4,rep,name=data,proto3" json:"data,omitempty"` } -func (m *GetFriendApplyResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_GetFriendApplyResp.Marshal(b, m, deterministic) -} -func (dst *GetFriendApplyResp) XXX_Merge(src proto.Message) { - xxx_messageInfo_GetFriendApplyResp.Merge(dst, src) + +func (x *GetFriendApplyResp) Reset() { + *x = GetFriendApplyResp{} + if protoimpl.UnsafeEnabled { + mi := &file_friend_friend_proto_msgTypes[8] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *GetFriendApplyResp) XXX_Size() int { - return xxx_messageInfo_GetFriendApplyResp.Size(m) + +func (x *GetFriendApplyResp) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *GetFriendApplyResp) XXX_DiscardUnknown() { - xxx_messageInfo_GetFriendApplyResp.DiscardUnknown(m) + +func (*GetFriendApplyResp) ProtoMessage() {} + +func (x *GetFriendApplyResp) ProtoReflect() protoreflect.Message { + mi := &file_friend_friend_proto_msgTypes[8] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) } -var xxx_messageInfo_GetFriendApplyResp proto.InternalMessageInfo +// Deprecated: Use GetFriendApplyResp.ProtoReflect.Descriptor instead. +func (*GetFriendApplyResp) Descriptor() ([]byte, []int) { + return file_friend_friend_proto_rawDescGZIP(), []int{8} +} -func (m *GetFriendApplyResp) GetErrorCode() int32 { - if m != nil { - return m.ErrorCode +func (x *GetFriendApplyResp) GetErrorCode() int32 { + if x != nil { + return x.ErrorCode } return 0 } -func (m *GetFriendApplyResp) GetErrorMsg() string { - if m != nil { - return m.ErrorMsg +func (x *GetFriendApplyResp) GetErrorMsg() string { + if x != nil { + return x.ErrorMsg } return "" } -func (m *GetFriendApplyResp) GetData() []*ApplyUserInfo { - if m != nil { - return m.Data +func (x *GetFriendApplyResp) GetData() []*ApplyUserInfo { + if x != nil { + return x.Data } return nil } type ApplyUserInfo struct { - Uid string `protobuf:"bytes,1,opt,name=uid" json:"uid,omitempty"` - Name string `protobuf:"bytes,2,opt,name=name" json:"name,omitempty"` - Icon string `protobuf:"bytes,3,opt,name=icon" json:"icon,omitempty"` - Gender int32 `protobuf:"varint,4,opt,name=gender" json:"gender,omitempty"` - Mobile string `protobuf:"bytes,5,opt,name=mobile" json:"mobile,omitempty"` - Birth string `protobuf:"bytes,6,opt,name=birth" json:"birth,omitempty"` - Email string `protobuf:"bytes,7,opt,name=email" json:"email,omitempty"` - Ex string `protobuf:"bytes,8,opt,name=ex" json:"ex,omitempty"` - Flag int32 `protobuf:"varint,9,opt,name=flag" json:"flag,omitempty"` - ApplyTime string `protobuf:"bytes,10,opt,name=applyTime" json:"applyTime,omitempty"` - ReqMessage string `protobuf:"bytes,11,opt,name=reqMessage" json:"reqMessage,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *ApplyUserInfo) Reset() { *m = ApplyUserInfo{} } -func (m *ApplyUserInfo) String() string { return proto.CompactTextString(m) } -func (*ApplyUserInfo) ProtoMessage() {} -func (*ApplyUserInfo) Descriptor() ([]byte, []int) { - return fileDescriptor_friend_05873114bd399886, []int{9} -} -func (m *ApplyUserInfo) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_ApplyUserInfo.Unmarshal(m, b) -} -func (m *ApplyUserInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_ApplyUserInfo.Marshal(b, m, deterministic) + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Uid string `protobuf:"bytes,1,opt,name=uid,proto3" json:"uid,omitempty"` + Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"` + Icon string `protobuf:"bytes,3,opt,name=icon,proto3" json:"icon,omitempty"` + Gender int32 `protobuf:"varint,4,opt,name=gender,proto3" json:"gender,omitempty"` + Mobile string `protobuf:"bytes,5,opt,name=mobile,proto3" json:"mobile,omitempty"` + Birth string `protobuf:"bytes,6,opt,name=birth,proto3" json:"birth,omitempty"` + Email string `protobuf:"bytes,7,opt,name=email,proto3" json:"email,omitempty"` + Ex string `protobuf:"bytes,8,opt,name=ex,proto3" json:"ex,omitempty"` + Flag int32 `protobuf:"varint,9,opt,name=flag,proto3" json:"flag,omitempty"` + ApplyTime string `protobuf:"bytes,10,opt,name=applyTime,proto3" json:"applyTime,omitempty"` + ReqMessage string `protobuf:"bytes,11,opt,name=reqMessage,proto3" json:"reqMessage,omitempty"` } -func (dst *ApplyUserInfo) XXX_Merge(src proto.Message) { - xxx_messageInfo_ApplyUserInfo.Merge(dst, src) + +func (x *ApplyUserInfo) Reset() { + *x = ApplyUserInfo{} + if protoimpl.UnsafeEnabled { + mi := &file_friend_friend_proto_msgTypes[9] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *ApplyUserInfo) XXX_Size() int { - return xxx_messageInfo_ApplyUserInfo.Size(m) + +func (x *ApplyUserInfo) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *ApplyUserInfo) XXX_DiscardUnknown() { - xxx_messageInfo_ApplyUserInfo.DiscardUnknown(m) + +func (*ApplyUserInfo) ProtoMessage() {} + +func (x *ApplyUserInfo) ProtoReflect() protoreflect.Message { + mi := &file_friend_friend_proto_msgTypes[9] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) } -var xxx_messageInfo_ApplyUserInfo proto.InternalMessageInfo +// Deprecated: Use ApplyUserInfo.ProtoReflect.Descriptor instead. +func (*ApplyUserInfo) Descriptor() ([]byte, []int) { + return file_friend_friend_proto_rawDescGZIP(), []int{9} +} -func (m *ApplyUserInfo) GetUid() string { - if m != nil { - return m.Uid +func (x *ApplyUserInfo) GetUid() string { + if x != nil { + return x.Uid } return "" } -func (m *ApplyUserInfo) GetName() string { - if m != nil { - return m.Name +func (x *ApplyUserInfo) GetName() string { + if x != nil { + return x.Name } return "" } -func (m *ApplyUserInfo) GetIcon() string { - if m != nil { - return m.Icon +func (x *ApplyUserInfo) GetIcon() string { + if x != nil { + return x.Icon } return "" } -func (m *ApplyUserInfo) GetGender() int32 { - if m != nil { - return m.Gender +func (x *ApplyUserInfo) GetGender() int32 { + if x != nil { + return x.Gender } return 0 } -func (m *ApplyUserInfo) GetMobile() string { - if m != nil { - return m.Mobile +func (x *ApplyUserInfo) GetMobile() string { + if x != nil { + return x.Mobile } return "" } -func (m *ApplyUserInfo) GetBirth() string { - if m != nil { - return m.Birth +func (x *ApplyUserInfo) GetBirth() string { + if x != nil { + return x.Birth } return "" } -func (m *ApplyUserInfo) GetEmail() string { - if m != nil { - return m.Email +func (x *ApplyUserInfo) GetEmail() string { + if x != nil { + return x.Email } return "" } -func (m *ApplyUserInfo) GetEx() string { - if m != nil { - return m.Ex +func (x *ApplyUserInfo) GetEx() string { + if x != nil { + return x.Ex } return "" } -func (m *ApplyUserInfo) GetFlag() int32 { - if m != nil { - return m.Flag +func (x *ApplyUserInfo) GetFlag() int32 { + if x != nil { + return x.Flag } return 0 } -func (m *ApplyUserInfo) GetApplyTime() string { - if m != nil { - return m.ApplyTime +func (x *ApplyUserInfo) GetApplyTime() string { + if x != nil { + return x.ApplyTime } return "" } -func (m *ApplyUserInfo) GetReqMessage() string { - if m != nil { - return m.ReqMessage +func (x *ApplyUserInfo) GetReqMessage() string { + if x != nil { + return x.ReqMessage } return "" } type GetFriendListReq struct { - OperationID string `protobuf:"bytes,1,opt,name=OperationID" json:"OperationID,omitempty"` - Token string `protobuf:"bytes,2,opt,name=Token" json:"Token,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields -func (m *GetFriendListReq) Reset() { *m = GetFriendListReq{} } -func (m *GetFriendListReq) String() string { return proto.CompactTextString(m) } -func (*GetFriendListReq) ProtoMessage() {} -func (*GetFriendListReq) Descriptor() ([]byte, []int) { - return fileDescriptor_friend_05873114bd399886, []int{10} + OperationID string `protobuf:"bytes,1,opt,name=OperationID,proto3" json:"OperationID,omitempty"` + Token string `protobuf:"bytes,2,opt,name=Token,proto3" json:"Token,omitempty"` } -func (m *GetFriendListReq) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_GetFriendListReq.Unmarshal(m, b) -} -func (m *GetFriendListReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_GetFriendListReq.Marshal(b, m, deterministic) -} -func (dst *GetFriendListReq) XXX_Merge(src proto.Message) { - xxx_messageInfo_GetFriendListReq.Merge(dst, src) + +func (x *GetFriendListReq) Reset() { + *x = GetFriendListReq{} + if protoimpl.UnsafeEnabled { + mi := &file_friend_friend_proto_msgTypes[10] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *GetFriendListReq) XXX_Size() int { - return xxx_messageInfo_GetFriendListReq.Size(m) + +func (x *GetFriendListReq) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *GetFriendListReq) XXX_DiscardUnknown() { - xxx_messageInfo_GetFriendListReq.DiscardUnknown(m) + +func (*GetFriendListReq) ProtoMessage() {} + +func (x *GetFriendListReq) ProtoReflect() protoreflect.Message { + mi := &file_friend_friend_proto_msgTypes[10] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) } -var xxx_messageInfo_GetFriendListReq proto.InternalMessageInfo +// Deprecated: Use GetFriendListReq.ProtoReflect.Descriptor instead. +func (*GetFriendListReq) Descriptor() ([]byte, []int) { + return file_friend_friend_proto_rawDescGZIP(), []int{10} +} -func (m *GetFriendListReq) GetOperationID() string { - if m != nil { - return m.OperationID +func (x *GetFriendListReq) GetOperationID() string { + if x != nil { + return x.OperationID } return "" } -func (m *GetFriendListReq) GetToken() string { - if m != nil { - return m.Token +func (x *GetFriendListReq) GetToken() string { + if x != nil { + return x.Token } return "" } type GetFriendListResp struct { - ErrorCode int32 `protobuf:"varint,1,opt,name=errorCode" json:"errorCode,omitempty"` - ErrorMsg string `protobuf:"bytes,2,opt,name=errorMsg" json:"errorMsg,omitempty"` - Data []*UserInfo `protobuf:"bytes,3,rep,name=data" json:"data,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields -func (m *GetFriendListResp) Reset() { *m = GetFriendListResp{} } -func (m *GetFriendListResp) String() string { return proto.CompactTextString(m) } -func (*GetFriendListResp) ProtoMessage() {} -func (*GetFriendListResp) Descriptor() ([]byte, []int) { - return fileDescriptor_friend_05873114bd399886, []int{11} -} -func (m *GetFriendListResp) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_GetFriendListResp.Unmarshal(m, b) + ErrorCode int32 `protobuf:"varint,1,opt,name=errorCode,proto3" json:"errorCode,omitempty"` + ErrorMsg string `protobuf:"bytes,2,opt,name=errorMsg,proto3" json:"errorMsg,omitempty"` + Data []*UserInfo `protobuf:"bytes,3,rep,name=data,proto3" json:"data,omitempty"` } -func (m *GetFriendListResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_GetFriendListResp.Marshal(b, m, deterministic) -} -func (dst *GetFriendListResp) XXX_Merge(src proto.Message) { - xxx_messageInfo_GetFriendListResp.Merge(dst, src) + +func (x *GetFriendListResp) Reset() { + *x = GetFriendListResp{} + if protoimpl.UnsafeEnabled { + mi := &file_friend_friend_proto_msgTypes[11] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *GetFriendListResp) XXX_Size() int { - return xxx_messageInfo_GetFriendListResp.Size(m) + +func (x *GetFriendListResp) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *GetFriendListResp) XXX_DiscardUnknown() { - xxx_messageInfo_GetFriendListResp.DiscardUnknown(m) + +func (*GetFriendListResp) ProtoMessage() {} + +func (x *GetFriendListResp) ProtoReflect() protoreflect.Message { + mi := &file_friend_friend_proto_msgTypes[11] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) } -var xxx_messageInfo_GetFriendListResp proto.InternalMessageInfo +// Deprecated: Use GetFriendListResp.ProtoReflect.Descriptor instead. +func (*GetFriendListResp) Descriptor() ([]byte, []int) { + return file_friend_friend_proto_rawDescGZIP(), []int{11} +} -func (m *GetFriendListResp) GetErrorCode() int32 { - if m != nil { - return m.ErrorCode +func (x *GetFriendListResp) GetErrorCode() int32 { + if x != nil { + return x.ErrorCode } return 0 } -func (m *GetFriendListResp) GetErrorMsg() string { - if m != nil { - return m.ErrorMsg +func (x *GetFriendListResp) GetErrorMsg() string { + if x != nil { + return x.ErrorMsg } return "" } -func (m *GetFriendListResp) GetData() []*UserInfo { - if m != nil { - return m.Data +func (x *GetFriendListResp) GetData() []*UserInfo { + if x != nil { + return x.Data } return nil } type UserInfo struct { - Uid string `protobuf:"bytes,1,opt,name=uid" json:"uid,omitempty"` - Name string `protobuf:"bytes,3,opt,name=name" json:"name,omitempty"` - Icon string `protobuf:"bytes,2,opt,name=icon" json:"icon,omitempty"` - Gender int32 `protobuf:"varint,4,opt,name=gender" json:"gender,omitempty"` - Mobile string `protobuf:"bytes,5,opt,name=mobile" json:"mobile,omitempty"` - Birth string `protobuf:"bytes,6,opt,name=birth" json:"birth,omitempty"` - Email string `protobuf:"bytes,7,opt,name=email" json:"email,omitempty"` - Ex string `protobuf:"bytes,8,opt,name=ex" json:"ex,omitempty"` - Comment string `protobuf:"bytes,9,opt,name=comment" json:"comment,omitempty"` - IsInBlackList int32 `protobuf:"varint,10,opt,name=isInBlackList" json:"isInBlackList,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -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_friend_05873114bd399886, []int{12} -} -func (m *UserInfo) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_UserInfo.Unmarshal(m, b) -} -func (m *UserInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_UserInfo.Marshal(b, m, deterministic) + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Uid string `protobuf:"bytes,1,opt,name=uid,proto3" json:"uid,omitempty"` + Name string `protobuf:"bytes,3,opt,name=name,proto3" json:"name,omitempty"` + Icon string `protobuf:"bytes,2,opt,name=icon,proto3" json:"icon,omitempty"` + Gender int32 `protobuf:"varint,4,opt,name=gender,proto3" json:"gender,omitempty"` + Mobile string `protobuf:"bytes,5,opt,name=mobile,proto3" json:"mobile,omitempty"` + Birth string `protobuf:"bytes,6,opt,name=birth,proto3" json:"birth,omitempty"` + Email string `protobuf:"bytes,7,opt,name=email,proto3" json:"email,omitempty"` + Ex string `protobuf:"bytes,8,opt,name=ex,proto3" json:"ex,omitempty"` + Comment string `protobuf:"bytes,9,opt,name=comment,proto3" json:"comment,omitempty"` + IsInBlackList int32 `protobuf:"varint,10,opt,name=isInBlackList,proto3" json:"isInBlackList,omitempty"` } -func (dst *UserInfo) XXX_Merge(src proto.Message) { - xxx_messageInfo_UserInfo.Merge(dst, src) + +func (x *UserInfo) Reset() { + *x = UserInfo{} + if protoimpl.UnsafeEnabled { + mi := &file_friend_friend_proto_msgTypes[12] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *UserInfo) XXX_Size() int { - return xxx_messageInfo_UserInfo.Size(m) + +func (x *UserInfo) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *UserInfo) XXX_DiscardUnknown() { - xxx_messageInfo_UserInfo.DiscardUnknown(m) + +func (*UserInfo) ProtoMessage() {} + +func (x *UserInfo) ProtoReflect() protoreflect.Message { + mi := &file_friend_friend_proto_msgTypes[12] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) } -var xxx_messageInfo_UserInfo proto.InternalMessageInfo +// Deprecated: Use UserInfo.ProtoReflect.Descriptor instead. +func (*UserInfo) Descriptor() ([]byte, []int) { + return file_friend_friend_proto_rawDescGZIP(), []int{12} +} -func (m *UserInfo) GetUid() string { - if m != nil { - return m.Uid +func (x *UserInfo) GetUid() string { + if x != nil { + return x.Uid } return "" } -func (m *UserInfo) GetName() string { - if m != nil { - return m.Name +func (x *UserInfo) GetName() string { + if x != nil { + return x.Name } return "" } -func (m *UserInfo) GetIcon() string { - if m != nil { - return m.Icon +func (x *UserInfo) GetIcon() string { + if x != nil { + return x.Icon } return "" } -func (m *UserInfo) GetGender() int32 { - if m != nil { - return m.Gender +func (x *UserInfo) GetGender() int32 { + if x != nil { + return x.Gender } return 0 } -func (m *UserInfo) GetMobile() string { - if m != nil { - return m.Mobile +func (x *UserInfo) GetMobile() string { + if x != nil { + return x.Mobile } return "" } -func (m *UserInfo) GetBirth() string { - if m != nil { - return m.Birth +func (x *UserInfo) GetBirth() string { + if x != nil { + return x.Birth } return "" } -func (m *UserInfo) GetEmail() string { - if m != nil { - return m.Email +func (x *UserInfo) GetEmail() string { + if x != nil { + return x.Email } return "" } -func (m *UserInfo) GetEx() string { - if m != nil { - return m.Ex +func (x *UserInfo) GetEx() string { + if x != nil { + return x.Ex } return "" } -func (m *UserInfo) GetComment() string { - if m != nil { - return m.Comment +func (x *UserInfo) GetComment() string { + if x != nil { + return x.Comment } return "" } -func (m *UserInfo) GetIsInBlackList() int32 { - if m != nil { - return m.IsInBlackList +func (x *UserInfo) GetIsInBlackList() int32 { + if x != nil { + return x.IsInBlackList } return 0 } type AddBlacklistReq struct { - Uid string `protobuf:"bytes,1,opt,name=uid" json:"uid,omitempty"` - OperationID string `protobuf:"bytes,2,opt,name=OperationID" json:"OperationID,omitempty"` - Token string `protobuf:"bytes,3,opt,name=Token" json:"Token,omitempty"` - OwnerUid string `protobuf:"bytes,4,opt,name=OwnerUid" json:"OwnerUid,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *AddBlacklistReq) Reset() { *m = AddBlacklistReq{} } -func (m *AddBlacklistReq) String() string { return proto.CompactTextString(m) } -func (*AddBlacklistReq) ProtoMessage() {} -func (*AddBlacklistReq) Descriptor() ([]byte, []int) { - return fileDescriptor_friend_05873114bd399886, []int{13} -} -func (m *AddBlacklistReq) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_AddBlacklistReq.Unmarshal(m, b) -} -func (m *AddBlacklistReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_AddBlacklistReq.Marshal(b, m, deterministic) + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Uid string `protobuf:"bytes,1,opt,name=uid,proto3" json:"uid,omitempty"` + OperationID string `protobuf:"bytes,2,opt,name=OperationID,proto3" json:"OperationID,omitempty"` + Token string `protobuf:"bytes,3,opt,name=Token,proto3" json:"Token,omitempty"` + OwnerUid string `protobuf:"bytes,4,opt,name=OwnerUid,proto3" json:"OwnerUid,omitempty"` } -func (dst *AddBlacklistReq) XXX_Merge(src proto.Message) { - xxx_messageInfo_AddBlacklistReq.Merge(dst, src) + +func (x *AddBlacklistReq) Reset() { + *x = AddBlacklistReq{} + if protoimpl.UnsafeEnabled { + mi := &file_friend_friend_proto_msgTypes[13] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *AddBlacklistReq) XXX_Size() int { - return xxx_messageInfo_AddBlacklistReq.Size(m) + +func (x *AddBlacklistReq) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *AddBlacklistReq) XXX_DiscardUnknown() { - xxx_messageInfo_AddBlacklistReq.DiscardUnknown(m) + +func (*AddBlacklistReq) ProtoMessage() {} + +func (x *AddBlacklistReq) ProtoReflect() protoreflect.Message { + mi := &file_friend_friend_proto_msgTypes[13] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) } -var xxx_messageInfo_AddBlacklistReq proto.InternalMessageInfo +// Deprecated: Use AddBlacklistReq.ProtoReflect.Descriptor instead. +func (*AddBlacklistReq) Descriptor() ([]byte, []int) { + return file_friend_friend_proto_rawDescGZIP(), []int{13} +} -func (m *AddBlacklistReq) GetUid() string { - if m != nil { - return m.Uid +func (x *AddBlacklistReq) GetUid() string { + if x != nil { + return x.Uid } return "" } -func (m *AddBlacklistReq) GetOperationID() string { - if m != nil { - return m.OperationID +func (x *AddBlacklistReq) GetOperationID() string { + if x != nil { + return x.OperationID } return "" } -func (m *AddBlacklistReq) GetToken() string { - if m != nil { - return m.Token +func (x *AddBlacklistReq) GetToken() string { + if x != nil { + return x.Token } return "" } -func (m *AddBlacklistReq) GetOwnerUid() string { - if m != nil { - return m.OwnerUid +func (x *AddBlacklistReq) GetOwnerUid() string { + if x != nil { + return x.OwnerUid } return "" } type RemoveBlacklistReq struct { - Uid string `protobuf:"bytes,1,opt,name=uid" json:"uid,omitempty"` - OperationID string `protobuf:"bytes,2,opt,name=OperationID" json:"OperationID,omitempty"` - Token string `protobuf:"bytes,3,opt,name=Token" json:"Token,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields -func (m *RemoveBlacklistReq) Reset() { *m = RemoveBlacklistReq{} } -func (m *RemoveBlacklistReq) String() string { return proto.CompactTextString(m) } -func (*RemoveBlacklistReq) ProtoMessage() {} -func (*RemoveBlacklistReq) Descriptor() ([]byte, []int) { - return fileDescriptor_friend_05873114bd399886, []int{14} -} -func (m *RemoveBlacklistReq) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_RemoveBlacklistReq.Unmarshal(m, b) -} -func (m *RemoveBlacklistReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_RemoveBlacklistReq.Marshal(b, m, deterministic) + Uid string `protobuf:"bytes,1,opt,name=uid,proto3" json:"uid,omitempty"` + OperationID string `protobuf:"bytes,2,opt,name=OperationID,proto3" json:"OperationID,omitempty"` + Token string `protobuf:"bytes,3,opt,name=Token,proto3" json:"Token,omitempty"` } -func (dst *RemoveBlacklistReq) XXX_Merge(src proto.Message) { - xxx_messageInfo_RemoveBlacklistReq.Merge(dst, src) + +func (x *RemoveBlacklistReq) Reset() { + *x = RemoveBlacklistReq{} + if protoimpl.UnsafeEnabled { + mi := &file_friend_friend_proto_msgTypes[14] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *RemoveBlacklistReq) XXX_Size() int { - return xxx_messageInfo_RemoveBlacklistReq.Size(m) + +func (x *RemoveBlacklistReq) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *RemoveBlacklistReq) XXX_DiscardUnknown() { - xxx_messageInfo_RemoveBlacklistReq.DiscardUnknown(m) + +func (*RemoveBlacklistReq) ProtoMessage() {} + +func (x *RemoveBlacklistReq) ProtoReflect() protoreflect.Message { + mi := &file_friend_friend_proto_msgTypes[14] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) } -var xxx_messageInfo_RemoveBlacklistReq proto.InternalMessageInfo +// Deprecated: Use RemoveBlacklistReq.ProtoReflect.Descriptor instead. +func (*RemoveBlacklistReq) Descriptor() ([]byte, []int) { + return file_friend_friend_proto_rawDescGZIP(), []int{14} +} -func (m *RemoveBlacklistReq) GetUid() string { - if m != nil { - return m.Uid +func (x *RemoveBlacklistReq) GetUid() string { + if x != nil { + return x.Uid } return "" } -func (m *RemoveBlacklistReq) GetOperationID() string { - if m != nil { - return m.OperationID +func (x *RemoveBlacklistReq) GetOperationID() string { + if x != nil { + return x.OperationID } return "" } -func (m *RemoveBlacklistReq) GetToken() string { - if m != nil { - return m.Token +func (x *RemoveBlacklistReq) GetToken() string { + if x != nil { + return x.Token } return "" } type GetBlacklistReq struct { - OperationID string `protobuf:"bytes,1,opt,name=OperationID" json:"OperationID,omitempty"` - Token string `protobuf:"bytes,2,opt,name=token" json:"token,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields -func (m *GetBlacklistReq) Reset() { *m = GetBlacklistReq{} } -func (m *GetBlacklistReq) String() string { return proto.CompactTextString(m) } -func (*GetBlacklistReq) ProtoMessage() {} -func (*GetBlacklistReq) Descriptor() ([]byte, []int) { - return fileDescriptor_friend_05873114bd399886, []int{15} + OperationID string `protobuf:"bytes,1,opt,name=OperationID,proto3" json:"OperationID,omitempty"` + Token string `protobuf:"bytes,2,opt,name=token,proto3" json:"token,omitempty"` } -func (m *GetBlacklistReq) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_GetBlacklistReq.Unmarshal(m, b) -} -func (m *GetBlacklistReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_GetBlacklistReq.Marshal(b, m, deterministic) -} -func (dst *GetBlacklistReq) XXX_Merge(src proto.Message) { - xxx_messageInfo_GetBlacklistReq.Merge(dst, src) + +func (x *GetBlacklistReq) Reset() { + *x = GetBlacklistReq{} + if protoimpl.UnsafeEnabled { + mi := &file_friend_friend_proto_msgTypes[15] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *GetBlacklistReq) XXX_Size() int { - return xxx_messageInfo_GetBlacklistReq.Size(m) + +func (x *GetBlacklistReq) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *GetBlacklistReq) XXX_DiscardUnknown() { - xxx_messageInfo_GetBlacklistReq.DiscardUnknown(m) + +func (*GetBlacklistReq) ProtoMessage() {} + +func (x *GetBlacklistReq) ProtoReflect() protoreflect.Message { + mi := &file_friend_friend_proto_msgTypes[15] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) } -var xxx_messageInfo_GetBlacklistReq proto.InternalMessageInfo +// Deprecated: Use GetBlacklistReq.ProtoReflect.Descriptor instead. +func (*GetBlacklistReq) Descriptor() ([]byte, []int) { + return file_friend_friend_proto_rawDescGZIP(), []int{15} +} -func (m *GetBlacklistReq) GetOperationID() string { - if m != nil { - return m.OperationID +func (x *GetBlacklistReq) GetOperationID() string { + if x != nil { + return x.OperationID } return "" } -func (m *GetBlacklistReq) GetToken() string { - if m != nil { - return m.Token +func (x *GetBlacklistReq) GetToken() string { + if x != nil { + return x.Token } return "" } type GetBlacklistResp struct { - ErrorCode int32 `protobuf:"varint,1,opt,name=errorCode" json:"errorCode,omitempty"` - ErrorMsg string `protobuf:"bytes,2,opt,name=errorMsg" json:"errorMsg,omitempty"` - Data []*UserInfo `protobuf:"bytes,3,rep,name=data" json:"data,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields -func (m *GetBlacklistResp) Reset() { *m = GetBlacklistResp{} } -func (m *GetBlacklistResp) String() string { return proto.CompactTextString(m) } -func (*GetBlacklistResp) ProtoMessage() {} -func (*GetBlacklistResp) Descriptor() ([]byte, []int) { - return fileDescriptor_friend_05873114bd399886, []int{16} + ErrorCode int32 `protobuf:"varint,1,opt,name=errorCode,proto3" json:"errorCode,omitempty"` + ErrorMsg string `protobuf:"bytes,2,opt,name=errorMsg,proto3" json:"errorMsg,omitempty"` + Data []*UserInfo `protobuf:"bytes,3,rep,name=data,proto3" json:"data,omitempty"` } -func (m *GetBlacklistResp) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_GetBlacklistResp.Unmarshal(m, b) -} -func (m *GetBlacklistResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_GetBlacklistResp.Marshal(b, m, deterministic) -} -func (dst *GetBlacklistResp) XXX_Merge(src proto.Message) { - xxx_messageInfo_GetBlacklistResp.Merge(dst, src) -} -func (m *GetBlacklistResp) XXX_Size() int { - return xxx_messageInfo_GetBlacklistResp.Size(m) -} -func (m *GetBlacklistResp) XXX_DiscardUnknown() { - xxx_messageInfo_GetBlacklistResp.DiscardUnknown(m) -} - -var xxx_messageInfo_GetBlacklistResp proto.InternalMessageInfo -func (m *GetBlacklistResp) GetErrorCode() int32 { - if m != nil { - return m.ErrorCode +func (x *GetBlacklistResp) Reset() { + *x = GetBlacklistResp{} + if protoimpl.UnsafeEnabled { + mi := &file_friend_friend_proto_msgTypes[16] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } - return 0 } -func (m *GetBlacklistResp) GetErrorMsg() string { - if m != nil { - return m.ErrorMsg - } - return "" +func (x *GetBlacklistResp) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *GetBlacklistResp) GetData() []*UserInfo { - if m != nil { - return m.Data - } - return nil -} +func (*GetBlacklistResp) ProtoMessage() {} -type IsFriendReq struct { - Token string `protobuf:"bytes,1,opt,name=token" json:"token,omitempty"` - ReceiveUid string `protobuf:"bytes,2,opt,name=receiveUid" json:"receiveUid,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 (x *GetBlacklistResp) ProtoReflect() protoreflect.Message { + mi := &file_friend_friend_proto_msgTypes[16] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) } -func (m *IsFriendReq) Reset() { *m = IsFriendReq{} } -func (m *IsFriendReq) String() string { return proto.CompactTextString(m) } -func (*IsFriendReq) ProtoMessage() {} -func (*IsFriendReq) Descriptor() ([]byte, []int) { - return fileDescriptor_friend_05873114bd399886, []int{17} -} -func (m *IsFriendReq) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_IsFriendReq.Unmarshal(m, b) -} -func (m *IsFriendReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_IsFriendReq.Marshal(b, m, deterministic) -} -func (dst *IsFriendReq) XXX_Merge(src proto.Message) { - xxx_messageInfo_IsFriendReq.Merge(dst, src) -} -func (m *IsFriendReq) XXX_Size() int { - return xxx_messageInfo_IsFriendReq.Size(m) -} -func (m *IsFriendReq) XXX_DiscardUnknown() { - xxx_messageInfo_IsFriendReq.DiscardUnknown(m) +// Deprecated: Use GetBlacklistResp.ProtoReflect.Descriptor instead. +func (*GetBlacklistResp) Descriptor() ([]byte, []int) { + return file_friend_friend_proto_rawDescGZIP(), []int{16} } -var xxx_messageInfo_IsFriendReq proto.InternalMessageInfo - -func (m *IsFriendReq) GetToken() string { - if m != nil { - return m.Token +func (x *GetBlacklistResp) GetErrorCode() int32 { + if x != nil { + return x.ErrorCode } - return "" + return 0 } -func (m *IsFriendReq) GetReceiveUid() string { - if m != nil { - return m.ReceiveUid +func (x *GetBlacklistResp) GetErrorMsg() string { + if x != nil { + return x.ErrorMsg } return "" } -func (m *IsFriendReq) GetOperationID() string { - if m != nil { - return m.OperationID +func (x *GetBlacklistResp) GetData() []*UserInfo { + if x != nil { + return x.Data } - return "" + return nil } -type IsFriendResp struct { - ErrorCode int32 `protobuf:"varint,1,opt,name=errorCode" json:"errorCode,omitempty"` - ErrorMsg string `protobuf:"bytes,2,opt,name=errorMsg" json:"errorMsg,omitempty"` - ShipType int32 `protobuf:"varint,3,opt,name=shipType" json:"shipType,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} +type IsFriendReq struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields -func (m *IsFriendResp) Reset() { *m = IsFriendResp{} } -func (m *IsFriendResp) String() string { return proto.CompactTextString(m) } -func (*IsFriendResp) ProtoMessage() {} -func (*IsFriendResp) Descriptor() ([]byte, []int) { - return fileDescriptor_friend_05873114bd399886, []int{18} -} -func (m *IsFriendResp) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_IsFriendResp.Unmarshal(m, b) -} -func (m *IsFriendResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_IsFriendResp.Marshal(b, m, deterministic) + Token string `protobuf:"bytes,1,opt,name=token,proto3" json:"token,omitempty"` + ReceiveUid string `protobuf:"bytes,2,opt,name=receiveUid,proto3" json:"receiveUid,omitempty"` + OperationID string `protobuf:"bytes,3,opt,name=OperationID,proto3" json:"OperationID,omitempty"` } -func (dst *IsFriendResp) XXX_Merge(src proto.Message) { - xxx_messageInfo_IsFriendResp.Merge(dst, src) -} -func (m *IsFriendResp) XXX_Size() int { - return xxx_messageInfo_IsFriendResp.Size(m) -} -func (m *IsFriendResp) XXX_DiscardUnknown() { - xxx_messageInfo_IsFriendResp.DiscardUnknown(m) -} - -var xxx_messageInfo_IsFriendResp proto.InternalMessageInfo -func (m *IsFriendResp) GetErrorCode() int32 { - if m != nil { - return m.ErrorCode +func (x *IsFriendReq) Reset() { + *x = IsFriendReq{} + if protoimpl.UnsafeEnabled { + mi := &file_friend_friend_proto_msgTypes[17] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } - return 0 } -func (m *IsFriendResp) GetErrorMsg() string { - if m != nil { - return m.ErrorMsg - } - return "" +func (x *IsFriendReq) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *IsFriendResp) GetShipType() int32 { - if m != nil { - return m.ShipType - } - return 0 -} +func (*IsFriendReq) ProtoMessage() {} -type IsInBlackListReq struct { - SendUid string `protobuf:"bytes,1,opt,name=sendUid" json:"sendUid,omitempty"` - ReceiveUid string `protobuf:"bytes,2,opt,name=receiveUid" json:"receiveUid,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 (x *IsFriendReq) ProtoReflect() protoreflect.Message { + mi := &file_friend_friend_proto_msgTypes[17] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) } -func (m *IsInBlackListReq) Reset() { *m = IsInBlackListReq{} } -func (m *IsInBlackListReq) String() string { return proto.CompactTextString(m) } -func (*IsInBlackListReq) ProtoMessage() {} -func (*IsInBlackListReq) Descriptor() ([]byte, []int) { - return fileDescriptor_friend_05873114bd399886, []int{19} -} -func (m *IsInBlackListReq) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_IsInBlackListReq.Unmarshal(m, b) -} -func (m *IsInBlackListReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_IsInBlackListReq.Marshal(b, m, deterministic) -} -func (dst *IsInBlackListReq) XXX_Merge(src proto.Message) { - xxx_messageInfo_IsInBlackListReq.Merge(dst, src) -} -func (m *IsInBlackListReq) XXX_Size() int { - return xxx_messageInfo_IsInBlackListReq.Size(m) -} -func (m *IsInBlackListReq) XXX_DiscardUnknown() { - xxx_messageInfo_IsInBlackListReq.DiscardUnknown(m) +// Deprecated: Use IsFriendReq.ProtoReflect.Descriptor instead. +func (*IsFriendReq) Descriptor() ([]byte, []int) { + return file_friend_friend_proto_rawDescGZIP(), []int{17} } -var xxx_messageInfo_IsInBlackListReq proto.InternalMessageInfo - -func (m *IsInBlackListReq) GetSendUid() string { - if m != nil { - return m.SendUid +func (x *IsFriendReq) GetToken() string { + if x != nil { + return x.Token } return "" } -func (m *IsInBlackListReq) GetReceiveUid() string { - if m != nil { - return m.ReceiveUid +func (x *IsFriendReq) GetReceiveUid() string { + if x != nil { + return x.ReceiveUid } return "" } -func (m *IsInBlackListReq) GetOperationID() string { - if m != nil { - return m.OperationID +func (x *IsFriendReq) GetOperationID() string { + if x != nil { + return x.OperationID } return "" } -type IsInBlackListResp struct { - ErrorCode int32 `protobuf:"varint,1,opt,name=errorCode" json:"errorCode,omitempty"` - ErrorMsg string `protobuf:"bytes,2,opt,name=errorMsg" json:"errorMsg,omitempty"` - Response bool `protobuf:"varint,3,opt,name=response" json:"response,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} +type IsFriendResp struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields -func (m *IsInBlackListResp) Reset() { *m = IsInBlackListResp{} } -func (m *IsInBlackListResp) String() string { return proto.CompactTextString(m) } -func (*IsInBlackListResp) ProtoMessage() {} -func (*IsInBlackListResp) Descriptor() ([]byte, []int) { - return fileDescriptor_friend_05873114bd399886, []int{20} -} -func (m *IsInBlackListResp) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_IsInBlackListResp.Unmarshal(m, b) -} -func (m *IsInBlackListResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_IsInBlackListResp.Marshal(b, m, deterministic) -} -func (dst *IsInBlackListResp) XXX_Merge(src proto.Message) { - xxx_messageInfo_IsInBlackListResp.Merge(dst, src) -} -func (m *IsInBlackListResp) XXX_Size() int { - return xxx_messageInfo_IsInBlackListResp.Size(m) -} -func (m *IsInBlackListResp) XXX_DiscardUnknown() { - xxx_messageInfo_IsInBlackListResp.DiscardUnknown(m) + ErrorCode int32 `protobuf:"varint,1,opt,name=errorCode,proto3" json:"errorCode,omitempty"` + ErrorMsg string `protobuf:"bytes,2,opt,name=errorMsg,proto3" json:"errorMsg,omitempty"` + ShipType int32 `protobuf:"varint,3,opt,name=shipType,proto3" json:"shipType,omitempty"` } -var xxx_messageInfo_IsInBlackListResp proto.InternalMessageInfo - -func (m *IsInBlackListResp) GetErrorCode() int32 { - if m != nil { - return m.ErrorCode +func (x *IsFriendResp) Reset() { + *x = IsFriendResp{} + if protoimpl.UnsafeEnabled { + mi := &file_friend_friend_proto_msgTypes[18] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } - return 0 } -func (m *IsInBlackListResp) GetErrorMsg() string { - if m != nil { - return m.ErrorMsg - } - return "" +func (x *IsFriendResp) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *IsInBlackListResp) GetResponse() bool { - if m != nil { - return m.Response - } - return false -} +func (*IsFriendResp) ProtoMessage() {} -type DeleteFriendReq struct { - Uid string `protobuf:"bytes,1,opt,name=uid" json:"uid,omitempty"` - OperationID string `protobuf:"bytes,2,opt,name=OperationID" json:"OperationID,omitempty"` - Token string `protobuf:"bytes,3,opt,name=Token" json:"Token,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` +func (x *IsFriendResp) ProtoReflect() protoreflect.Message { + mi := &file_friend_friend_proto_msgTypes[18] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) } -func (m *DeleteFriendReq) Reset() { *m = DeleteFriendReq{} } -func (m *DeleteFriendReq) String() string { return proto.CompactTextString(m) } -func (*DeleteFriendReq) ProtoMessage() {} -func (*DeleteFriendReq) Descriptor() ([]byte, []int) { - return fileDescriptor_friend_05873114bd399886, []int{21} -} -func (m *DeleteFriendReq) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_DeleteFriendReq.Unmarshal(m, b) -} -func (m *DeleteFriendReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_DeleteFriendReq.Marshal(b, m, deterministic) -} -func (dst *DeleteFriendReq) XXX_Merge(src proto.Message) { - xxx_messageInfo_DeleteFriendReq.Merge(dst, src) -} -func (m *DeleteFriendReq) XXX_Size() int { - return xxx_messageInfo_DeleteFriendReq.Size(m) -} -func (m *DeleteFriendReq) XXX_DiscardUnknown() { - xxx_messageInfo_DeleteFriendReq.DiscardUnknown(m) +// Deprecated: Use IsFriendResp.ProtoReflect.Descriptor instead. +func (*IsFriendResp) Descriptor() ([]byte, []int) { + return file_friend_friend_proto_rawDescGZIP(), []int{18} } -var xxx_messageInfo_DeleteFriendReq proto.InternalMessageInfo - -func (m *DeleteFriendReq) GetUid() string { - if m != nil { - return m.Uid +func (x *IsFriendResp) GetErrorCode() int32 { + if x != nil { + return x.ErrorCode } - return "" + return 0 } -func (m *DeleteFriendReq) GetOperationID() string { - if m != nil { - return m.OperationID +func (x *IsFriendResp) GetErrorMsg() string { + if x != nil { + return x.ErrorMsg } return "" } -func (m *DeleteFriendReq) GetToken() string { - if m != nil { - return m.Token +func (x *IsFriendResp) GetShipType() int32 { + if x != nil { + return x.ShipType } - return "" -} - -type AddFriendResponseReq struct { - Uid string `protobuf:"bytes,1,opt,name=uid" json:"uid,omitempty"` - Flag int32 `protobuf:"varint,2,opt,name=flag" json:"flag,omitempty"` - OperationID string `protobuf:"bytes,3,opt,name=OperationID" json:"OperationID,omitempty"` - Token string `protobuf:"bytes,4,opt,name=Token" json:"Token,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *AddFriendResponseReq) Reset() { *m = AddFriendResponseReq{} } -func (m *AddFriendResponseReq) String() string { return proto.CompactTextString(m) } -func (*AddFriendResponseReq) ProtoMessage() {} -func (*AddFriendResponseReq) Descriptor() ([]byte, []int) { - return fileDescriptor_friend_05873114bd399886, []int{22} -} -func (m *AddFriendResponseReq) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_AddFriendResponseReq.Unmarshal(m, b) -} -func (m *AddFriendResponseReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_AddFriendResponseReq.Marshal(b, m, deterministic) -} -func (dst *AddFriendResponseReq) XXX_Merge(src proto.Message) { - xxx_messageInfo_AddFriendResponseReq.Merge(dst, src) -} -func (m *AddFriendResponseReq) XXX_Size() int { - return xxx_messageInfo_AddFriendResponseReq.Size(m) -} -func (m *AddFriendResponseReq) XXX_DiscardUnknown() { - xxx_messageInfo_AddFriendResponseReq.DiscardUnknown(m) + return 0 } -var xxx_messageInfo_AddFriendResponseReq proto.InternalMessageInfo +type IsInBlackListReq struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields -func (m *AddFriendResponseReq) GetUid() string { - if m != nil { - return m.Uid - } - return "" + SendUid string `protobuf:"bytes,1,opt,name=sendUid,proto3" json:"sendUid,omitempty"` + ReceiveUid string `protobuf:"bytes,2,opt,name=receiveUid,proto3" json:"receiveUid,omitempty"` + OperationID string `protobuf:"bytes,3,opt,name=OperationID,proto3" json:"OperationID,omitempty"` } -func (m *AddFriendResponseReq) GetFlag() int32 { - if m != nil { - return m.Flag +func (x *IsInBlackListReq) Reset() { + *x = IsInBlackListReq{} + if protoimpl.UnsafeEnabled { + mi := &file_friend_friend_proto_msgTypes[19] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } - return 0 } -func (m *AddFriendResponseReq) GetOperationID() string { - if m != nil { - return m.OperationID - } - return "" +func (x *IsInBlackListReq) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *AddFriendResponseReq) GetToken() string { - if m != nil { - return m.Token +func (*IsInBlackListReq) ProtoMessage() {} + +func (x *IsInBlackListReq) ProtoReflect() protoreflect.Message { + mi := &file_friend_friend_proto_msgTypes[19] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms } - return "" + return mi.MessageOf(x) } -type SetFriendCommentReq struct { - Uid string `protobuf:"bytes,1,opt,name=uid" json:"uid,omitempty"` - OperationID string `protobuf:"bytes,2,opt,name=operationID" json:"operationID,omitempty"` - Comment string `protobuf:"bytes,3,opt,name=comment" json:"comment,omitempty"` - Token string `protobuf:"bytes,4,opt,name=token" json:"token,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *SetFriendCommentReq) Reset() { *m = SetFriendCommentReq{} } -func (m *SetFriendCommentReq) String() string { return proto.CompactTextString(m) } -func (*SetFriendCommentReq) ProtoMessage() {} -func (*SetFriendCommentReq) Descriptor() ([]byte, []int) { - return fileDescriptor_friend_05873114bd399886, []int{23} -} -func (m *SetFriendCommentReq) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_SetFriendCommentReq.Unmarshal(m, b) -} -func (m *SetFriendCommentReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_SetFriendCommentReq.Marshal(b, m, deterministic) -} -func (dst *SetFriendCommentReq) XXX_Merge(src proto.Message) { - xxx_messageInfo_SetFriendCommentReq.Merge(dst, src) -} -func (m *SetFriendCommentReq) XXX_Size() int { - return xxx_messageInfo_SetFriendCommentReq.Size(m) -} -func (m *SetFriendCommentReq) XXX_DiscardUnknown() { - xxx_messageInfo_SetFriendCommentReq.DiscardUnknown(m) +// Deprecated: Use IsInBlackListReq.ProtoReflect.Descriptor instead. +func (*IsInBlackListReq) Descriptor() ([]byte, []int) { + return file_friend_friend_proto_rawDescGZIP(), []int{19} } -var xxx_messageInfo_SetFriendCommentReq proto.InternalMessageInfo - -func (m *SetFriendCommentReq) GetUid() string { - if m != nil { - return m.Uid +func (x *IsInBlackListReq) GetSendUid() string { + if x != nil { + return x.SendUid } return "" } -func (m *SetFriendCommentReq) GetOperationID() string { - if m != nil { - return m.OperationID +func (x *IsInBlackListReq) GetReceiveUid() string { + if x != nil { + return x.ReceiveUid } return "" } -func (m *SetFriendCommentReq) GetComment() string { - if m != nil { - return m.Comment +func (x *IsInBlackListReq) GetOperationID() string { + if x != nil { + return x.OperationID } return "" } -func (m *SetFriendCommentReq) GetToken() string { - if m != nil { - return m.Token - } - return "" -} +type IsInBlackListResp struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields -func init() { - proto.RegisterType((*CommonResp)(nil), "friend.CommonResp") - proto.RegisterType((*GetFriendsInfoReq)(nil), "friend.GetFriendsInfoReq") - proto.RegisterType((*GetFriendInfoResp)(nil), "friend.GetFriendInfoResp") - proto.RegisterType((*GetFriendData)(nil), "friend.GetFriendData") - proto.RegisterType((*AddFriendReq)(nil), "friend.AddFriendReq") - proto.RegisterType((*ImportFriendReq)(nil), "friend.ImportFriendReq") - proto.RegisterType((*ImportFriendResp)(nil), "friend.ImportFriendResp") - proto.RegisterType((*GetFriendApplyReq)(nil), "friend.GetFriendApplyReq") - proto.RegisterType((*GetFriendApplyResp)(nil), "friend.GetFriendApplyResp") - proto.RegisterType((*ApplyUserInfo)(nil), "friend.ApplyUserInfo") - proto.RegisterType((*GetFriendListReq)(nil), "friend.getFriendListReq") - proto.RegisterType((*GetFriendListResp)(nil), "friend.getFriendListResp") - proto.RegisterType((*UserInfo)(nil), "friend.UserInfo") - proto.RegisterType((*AddBlacklistReq)(nil), "friend.AddBlacklistReq") - proto.RegisterType((*RemoveBlacklistReq)(nil), "friend.RemoveBlacklistReq") - proto.RegisterType((*GetBlacklistReq)(nil), "friend.GetBlacklistReq") - proto.RegisterType((*GetBlacklistResp)(nil), "friend.GetBlacklistResp") - proto.RegisterType((*IsFriendReq)(nil), "friend.IsFriendReq") - proto.RegisterType((*IsFriendResp)(nil), "friend.IsFriendResp") - proto.RegisterType((*IsInBlackListReq)(nil), "friend.IsInBlackListReq") - proto.RegisterType((*IsInBlackListResp)(nil), "friend.IsInBlackListResp") - proto.RegisterType((*DeleteFriendReq)(nil), "friend.DeleteFriendReq") - proto.RegisterType((*AddFriendResponseReq)(nil), "friend.AddFriendResponseReq") - proto.RegisterType((*SetFriendCommentReq)(nil), "friend.SetFriendCommentReq") + ErrorCode int32 `protobuf:"varint,1,opt,name=errorCode,proto3" json:"errorCode,omitempty"` + ErrorMsg string `protobuf:"bytes,2,opt,name=errorMsg,proto3" json:"errorMsg,omitempty"` + Response bool `protobuf:"varint,3,opt,name=response,proto3" json:"response,omitempty"` } -// 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 Friend service - -type FriendClient interface { - GetFriendsInfo(ctx context.Context, in *GetFriendsInfoReq, opts ...grpc.CallOption) (*GetFriendInfoResp, error) - AddFriend(ctx context.Context, in *AddFriendReq, opts ...grpc.CallOption) (*CommonResp, error) - GetFriendApplyList(ctx context.Context, in *GetFriendApplyReq, opts ...grpc.CallOption) (*GetFriendApplyResp, error) - GetSelfApplyList(ctx context.Context, in *GetFriendApplyReq, opts ...grpc.CallOption) (*GetFriendApplyResp, error) - GetFriendList(ctx context.Context, in *GetFriendListReq, opts ...grpc.CallOption) (*GetFriendListResp, error) - AddBlacklist(ctx context.Context, in *AddBlacklistReq, opts ...grpc.CallOption) (*CommonResp, error) - RemoveBlacklist(ctx context.Context, in *RemoveBlacklistReq, opts ...grpc.CallOption) (*CommonResp, error) - IsFriend(ctx context.Context, in *IsFriendReq, opts ...grpc.CallOption) (*IsFriendResp, error) - IsInBlackList(ctx context.Context, in *IsInBlackListReq, opts ...grpc.CallOption) (*IsInBlackListResp, error) - GetBlacklist(ctx context.Context, in *GetBlacklistReq, opts ...grpc.CallOption) (*GetBlacklistResp, error) - DeleteFriend(ctx context.Context, in *DeleteFriendReq, opts ...grpc.CallOption) (*CommonResp, error) - AddFriendResponse(ctx context.Context, in *AddFriendResponseReq, opts ...grpc.CallOption) (*CommonResp, error) - SetFriendComment(ctx context.Context, in *SetFriendCommentReq, opts ...grpc.CallOption) (*CommonResp, error) - ImportFriend(ctx context.Context, in *ImportFriendReq, opts ...grpc.CallOption) (*ImportFriendResp, error) +func (x *IsInBlackListResp) Reset() { + *x = IsInBlackListResp{} + if protoimpl.UnsafeEnabled { + mi := &file_friend_friend_proto_msgTypes[20] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -type friendClient struct { - cc *grpc.ClientConn +func (x *IsInBlackListResp) String() string { + return protoimpl.X.MessageStringOf(x) } -func NewFriendClient(cc *grpc.ClientConn) FriendClient { - return &friendClient{cc} -} +func (*IsInBlackListResp) ProtoMessage() {} -func (c *friendClient) GetFriendsInfo(ctx context.Context, in *GetFriendsInfoReq, opts ...grpc.CallOption) (*GetFriendInfoResp, error) { - out := new(GetFriendInfoResp) - err := grpc.Invoke(ctx, "/friend.friend/getFriendsInfo", in, out, c.cc, opts...) - if err != nil { - return nil, err +func (x *IsInBlackListResp) ProtoReflect() protoreflect.Message { + mi := &file_friend_friend_proto_msgTypes[20] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms } - return out, nil + return mi.MessageOf(x) } -func (c *friendClient) AddFriend(ctx context.Context, in *AddFriendReq, opts ...grpc.CallOption) (*CommonResp, error) { - out := new(CommonResp) - err := grpc.Invoke(ctx, "/friend.friend/addFriend", in, out, c.cc, opts...) - if err != nil { - return nil, err - } - return out, nil +// Deprecated: Use IsInBlackListResp.ProtoReflect.Descriptor instead. +func (*IsInBlackListResp) Descriptor() ([]byte, []int) { + return file_friend_friend_proto_rawDescGZIP(), []int{20} } -func (c *friendClient) GetFriendApplyList(ctx context.Context, in *GetFriendApplyReq, opts ...grpc.CallOption) (*GetFriendApplyResp, error) { - out := new(GetFriendApplyResp) - err := grpc.Invoke(ctx, "/friend.friend/getFriendApplyList", in, out, c.cc, opts...) - if err != nil { - return nil, err +func (x *IsInBlackListResp) GetErrorCode() int32 { + if x != nil { + return x.ErrorCode } - return out, nil + return 0 } -func (c *friendClient) GetSelfApplyList(ctx context.Context, in *GetFriendApplyReq, opts ...grpc.CallOption) (*GetFriendApplyResp, error) { - out := new(GetFriendApplyResp) - err := grpc.Invoke(ctx, "/friend.friend/getSelfApplyList", in, out, c.cc, opts...) - if err != nil { - return nil, err +func (x *IsInBlackListResp) GetErrorMsg() string { + if x != nil { + return x.ErrorMsg } - return out, nil + return "" } -func (c *friendClient) GetFriendList(ctx context.Context, in *GetFriendListReq, opts ...grpc.CallOption) (*GetFriendListResp, error) { - out := new(GetFriendListResp) - err := grpc.Invoke(ctx, "/friend.friend/getFriendList", in, out, c.cc, opts...) - if err != nil { - return nil, err +func (x *IsInBlackListResp) GetResponse() bool { + if x != nil { + return x.Response } - return out, nil + return false } -func (c *friendClient) AddBlacklist(ctx context.Context, in *AddBlacklistReq, opts ...grpc.CallOption) (*CommonResp, error) { - out := new(CommonResp) - err := grpc.Invoke(ctx, "/friend.friend/addBlacklist", in, out, c.cc, opts...) - if err != nil { - return nil, err - } - return out, nil -} +type DeleteFriendReq struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields -func (c *friendClient) RemoveBlacklist(ctx context.Context, in *RemoveBlacklistReq, opts ...grpc.CallOption) (*CommonResp, error) { - out := new(CommonResp) - err := grpc.Invoke(ctx, "/friend.friend/removeBlacklist", in, out, c.cc, opts...) - if err != nil { - return nil, err - } - return out, nil + Uid string `protobuf:"bytes,1,opt,name=uid,proto3" json:"uid,omitempty"` + OperationID string `protobuf:"bytes,2,opt,name=OperationID,proto3" json:"OperationID,omitempty"` + Token string `protobuf:"bytes,3,opt,name=Token,proto3" json:"Token,omitempty"` } -func (c *friendClient) IsFriend(ctx context.Context, in *IsFriendReq, opts ...grpc.CallOption) (*IsFriendResp, error) { - out := new(IsFriendResp) - err := grpc.Invoke(ctx, "/friend.friend/isFriend", in, out, c.cc, opts...) - if err != nil { - return nil, err +func (x *DeleteFriendReq) Reset() { + *x = DeleteFriendReq{} + if protoimpl.UnsafeEnabled { + mi := &file_friend_friend_proto_msgTypes[21] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } - return out, nil } -func (c *friendClient) IsInBlackList(ctx context.Context, in *IsInBlackListReq, opts ...grpc.CallOption) (*IsInBlackListResp, error) { - out := new(IsInBlackListResp) - err := grpc.Invoke(ctx, "/friend.friend/isInBlackList", in, out, c.cc, opts...) - if err != nil { - return nil, err - } - return out, nil +func (x *DeleteFriendReq) String() string { + return protoimpl.X.MessageStringOf(x) } -func (c *friendClient) GetBlacklist(ctx context.Context, in *GetBlacklistReq, opts ...grpc.CallOption) (*GetBlacklistResp, error) { - out := new(GetBlacklistResp) - err := grpc.Invoke(ctx, "/friend.friend/getBlacklist", in, out, c.cc, opts...) - if err != nil { - return nil, err +func (*DeleteFriendReq) ProtoMessage() {} + +func (x *DeleteFriendReq) ProtoReflect() protoreflect.Message { + mi := &file_friend_friend_proto_msgTypes[21] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms } - return out, nil + return mi.MessageOf(x) } -func (c *friendClient) DeleteFriend(ctx context.Context, in *DeleteFriendReq, opts ...grpc.CallOption) (*CommonResp, error) { - out := new(CommonResp) - err := grpc.Invoke(ctx, "/friend.friend/deleteFriend", in, out, c.cc, opts...) - if err != nil { - return nil, err - } - return out, nil +// Deprecated: Use DeleteFriendReq.ProtoReflect.Descriptor instead. +func (*DeleteFriendReq) Descriptor() ([]byte, []int) { + return file_friend_friend_proto_rawDescGZIP(), []int{21} } -func (c *friendClient) AddFriendResponse(ctx context.Context, in *AddFriendResponseReq, opts ...grpc.CallOption) (*CommonResp, error) { - out := new(CommonResp) - err := grpc.Invoke(ctx, "/friend.friend/addFriendResponse", in, out, c.cc, opts...) - if err != nil { - return nil, err +func (x *DeleteFriendReq) GetUid() string { + if x != nil { + return x.Uid } - return out, nil + return "" } -func (c *friendClient) SetFriendComment(ctx context.Context, in *SetFriendCommentReq, opts ...grpc.CallOption) (*CommonResp, error) { - out := new(CommonResp) - err := grpc.Invoke(ctx, "/friend.friend/setFriendComment", in, out, c.cc, opts...) - if err != nil { - return nil, err +func (x *DeleteFriendReq) GetOperationID() string { + if x != nil { + return x.OperationID } - return out, nil + return "" } -func (c *friendClient) ImportFriend(ctx context.Context, in *ImportFriendReq, opts ...grpc.CallOption) (*ImportFriendResp, error) { - out := new(ImportFriendResp) - err := grpc.Invoke(ctx, "/friend.friend/ImportFriend", in, out, c.cc, opts...) - if err != nil { - return nil, err +func (x *DeleteFriendReq) GetToken() string { + if x != nil { + return x.Token } - return out, nil + return "" } -// Server API for Friend service - -type FriendServer interface { - GetFriendsInfo(context.Context, *GetFriendsInfoReq) (*GetFriendInfoResp, error) - AddFriend(context.Context, *AddFriendReq) (*CommonResp, error) - GetFriendApplyList(context.Context, *GetFriendApplyReq) (*GetFriendApplyResp, error) - GetSelfApplyList(context.Context, *GetFriendApplyReq) (*GetFriendApplyResp, error) - GetFriendList(context.Context, *GetFriendListReq) (*GetFriendListResp, error) - AddBlacklist(context.Context, *AddBlacklistReq) (*CommonResp, error) - RemoveBlacklist(context.Context, *RemoveBlacklistReq) (*CommonResp, error) - IsFriend(context.Context, *IsFriendReq) (*IsFriendResp, error) - IsInBlackList(context.Context, *IsInBlackListReq) (*IsInBlackListResp, error) - GetBlacklist(context.Context, *GetBlacklistReq) (*GetBlacklistResp, error) - DeleteFriend(context.Context, *DeleteFriendReq) (*CommonResp, error) - AddFriendResponse(context.Context, *AddFriendResponseReq) (*CommonResp, error) - SetFriendComment(context.Context, *SetFriendCommentReq) (*CommonResp, error) - ImportFriend(context.Context, *ImportFriendReq) (*ImportFriendResp, error) -} +type AddFriendResponseReq struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields -func RegisterFriendServer(s *grpc.Server, srv FriendServer) { - s.RegisterService(&_Friend_serviceDesc, srv) + Uid string `protobuf:"bytes,1,opt,name=uid,proto3" json:"uid,omitempty"` + Flag int32 `protobuf:"varint,2,opt,name=flag,proto3" json:"flag,omitempty"` + OperationID string `protobuf:"bytes,3,opt,name=OperationID,proto3" json:"OperationID,omitempty"` + Token string `protobuf:"bytes,4,opt,name=Token,proto3" json:"Token,omitempty"` } -func _Friend_GetFriendsInfo_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(GetFriendsInfoReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(FriendServer).GetFriendsInfo(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/friend.friend/GetFriendsInfo", +func (x *AddFriendResponseReq) Reset() { + *x = AddFriendResponseReq{} + if protoimpl.UnsafeEnabled { + mi := &file_friend_friend_proto_msgTypes[22] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(FriendServer).GetFriendsInfo(ctx, req.(*GetFriendsInfoReq)) - } - return interceptor(ctx, in, info, handler) } -func _Friend_AddFriend_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(AddFriendReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(FriendServer).AddFriend(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/friend.friend/AddFriend", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(FriendServer).AddFriend(ctx, req.(*AddFriendReq)) - } - return interceptor(ctx, in, info, handler) +func (x *AddFriendResponseReq) String() string { + return protoimpl.X.MessageStringOf(x) } -func _Friend_GetFriendApplyList_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(GetFriendApplyReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(FriendServer).GetFriendApplyList(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/friend.friend/GetFriendApplyList", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(FriendServer).GetFriendApplyList(ctx, req.(*GetFriendApplyReq)) - } - return interceptor(ctx, in, info, handler) -} +func (*AddFriendResponseReq) ProtoMessage() {} -func _Friend_GetSelfApplyList_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(GetFriendApplyReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(FriendServer).GetSelfApplyList(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/friend.friend/GetSelfApplyList", +func (x *AddFriendResponseReq) ProtoReflect() protoreflect.Message { + mi := &file_friend_friend_proto_msgTypes[22] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(FriendServer).GetSelfApplyList(ctx, req.(*GetFriendApplyReq)) - } - return interceptor(ctx, in, info, handler) + return mi.MessageOf(x) } -func _Friend_GetFriendList_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(GetFriendListReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(FriendServer).GetFriendList(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/friend.friend/GetFriendList", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(FriendServer).GetFriendList(ctx, req.(*GetFriendListReq)) - } - return interceptor(ctx, in, info, handler) +// Deprecated: Use AddFriendResponseReq.ProtoReflect.Descriptor instead. +func (*AddFriendResponseReq) Descriptor() ([]byte, []int) { + return file_friend_friend_proto_rawDescGZIP(), []int{22} } -func _Friend_AddBlacklist_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(AddBlacklistReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(FriendServer).AddBlacklist(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/friend.friend/AddBlacklist", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(FriendServer).AddBlacklist(ctx, req.(*AddBlacklistReq)) +func (x *AddFriendResponseReq) GetUid() string { + if x != nil { + return x.Uid } - return interceptor(ctx, in, info, handler) + return "" } -func _Friend_RemoveBlacklist_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(RemoveBlacklistReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(FriendServer).RemoveBlacklist(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/friend.friend/RemoveBlacklist", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(FriendServer).RemoveBlacklist(ctx, req.(*RemoveBlacklistReq)) +func (x *AddFriendResponseReq) GetFlag() int32 { + if x != nil { + return x.Flag } - return interceptor(ctx, in, info, handler) + return 0 } -func _Friend_IsFriend_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(IsFriendReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(FriendServer).IsFriend(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/friend.friend/IsFriend", +func (x *AddFriendResponseReq) GetOperationID() string { + if x != nil { + return x.OperationID } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(FriendServer).IsFriend(ctx, req.(*IsFriendReq)) - } - return interceptor(ctx, in, info, handler) + return "" } -func _Friend_IsInBlackList_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(IsInBlackListReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(FriendServer).IsInBlackList(ctx, in) +func (x *AddFriendResponseReq) GetToken() string { + if x != nil { + return x.Token } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/friend.friend/IsInBlackList", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(FriendServer).IsInBlackList(ctx, req.(*IsInBlackListReq)) - } - return interceptor(ctx, in, info, handler) + return "" } -func _Friend_GetBlacklist_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(GetBlacklistReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(FriendServer).GetBlacklist(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/friend.friend/GetBlacklist", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(FriendServer).GetBlacklist(ctx, req.(*GetBlacklistReq)) - } - return interceptor(ctx, in, info, handler) -} +type SetFriendCommentReq struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields -func _Friend_DeleteFriend_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(DeleteFriendReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(FriendServer).DeleteFriend(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/friend.friend/DeleteFriend", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(FriendServer).DeleteFriend(ctx, req.(*DeleteFriendReq)) - } - return interceptor(ctx, in, info, handler) + Uid string `protobuf:"bytes,1,opt,name=uid,proto3" json:"uid,omitempty"` + OperationID string `protobuf:"bytes,2,opt,name=operationID,proto3" json:"operationID,omitempty"` + Comment string `protobuf:"bytes,3,opt,name=comment,proto3" json:"comment,omitempty"` + Token string `protobuf:"bytes,4,opt,name=token,proto3" json:"token,omitempty"` } -func _Friend_AddFriendResponse_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(AddFriendResponseReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(FriendServer).AddFriendResponse(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/friend.friend/AddFriendResponse", +func (x *SetFriendCommentReq) Reset() { + *x = SetFriendCommentReq{} + if protoimpl.UnsafeEnabled { + mi := &file_friend_friend_proto_msgTypes[23] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(FriendServer).AddFriendResponse(ctx, req.(*AddFriendResponseReq)) - } - return interceptor(ctx, in, info, handler) } -func _Friend_SetFriendComment_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(SetFriendCommentReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(FriendServer).SetFriendComment(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/friend.friend/SetFriendComment", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(FriendServer).SetFriendComment(ctx, req.(*SetFriendCommentReq)) - } - return interceptor(ctx, in, info, handler) +func (x *SetFriendCommentReq) String() string { + return protoimpl.X.MessageStringOf(x) } -func _Friend_ImportFriend_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(ImportFriendReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(FriendServer).ImportFriend(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/friend.friend/ImportFriend", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(FriendServer).ImportFriend(ctx, req.(*ImportFriendReq)) +func (*SetFriendCommentReq) ProtoMessage() {} + +func (x *SetFriendCommentReq) ProtoReflect() protoreflect.Message { + mi := &file_friend_friend_proto_msgTypes[23] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms } - return interceptor(ctx, in, info, handler) + return mi.MessageOf(x) } -var _Friend_serviceDesc = grpc.ServiceDesc{ - ServiceName: "friend.friend", - HandlerType: (*FriendServer)(nil), - Methods: []grpc.MethodDesc{ - { - MethodName: "getFriendsInfo", - Handler: _Friend_GetFriendsInfo_Handler, - }, - { - MethodName: "addFriend", - Handler: _Friend_AddFriend_Handler, - }, - { - MethodName: "getFriendApplyList", - Handler: _Friend_GetFriendApplyList_Handler, - }, - { - MethodName: "getSelfApplyList", - Handler: _Friend_GetSelfApplyList_Handler, - }, - { - MethodName: "getFriendList", - Handler: _Friend_GetFriendList_Handler, - }, - { - MethodName: "addBlacklist", - Handler: _Friend_AddBlacklist_Handler, - }, - { - MethodName: "removeBlacklist", - Handler: _Friend_RemoveBlacklist_Handler, - }, - { - MethodName: "isFriend", - Handler: _Friend_IsFriend_Handler, - }, - { - MethodName: "isInBlackList", - Handler: _Friend_IsInBlackList_Handler, - }, - { - MethodName: "getBlacklist", - Handler: _Friend_GetBlacklist_Handler, - }, - { - MethodName: "deleteFriend", - Handler: _Friend_DeleteFriend_Handler, - }, - { - MethodName: "addFriendResponse", - Handler: _Friend_AddFriendResponse_Handler, - }, - { - MethodName: "setFriendComment", - Handler: _Friend_SetFriendComment_Handler, - }, - { - MethodName: "ImportFriend", - Handler: _Friend_ImportFriend_Handler, +// Deprecated: Use SetFriendCommentReq.ProtoReflect.Descriptor instead. +func (*SetFriendCommentReq) Descriptor() ([]byte, []int) { + return file_friend_friend_proto_rawDescGZIP(), []int{23} +} + +func (x *SetFriendCommentReq) GetUid() string { + if x != nil { + return x.Uid + } + return "" +} + +func (x *SetFriendCommentReq) GetOperationID() string { + if x != nil { + return x.OperationID + } + return "" +} + +func (x *SetFriendCommentReq) GetComment() string { + if x != nil { + return x.Comment + } + return "" +} + +func (x *SetFriendCommentReq) GetToken() string { + if x != nil { + return x.Token + } + return "" +} + +var File_friend_friend_proto protoreflect.FileDescriptor + +var file_friend_friend_proto_rawDesc = []byte{ + 0x0a, 0x13, 0x66, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x2f, 0x66, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x2e, + 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x06, 0x66, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x22, 0x46, 0x0a, + 0x0a, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x12, 0x1c, 0x0a, 0x09, 0x65, + 0x72, 0x72, 0x6f, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, + 0x65, 0x72, 0x72, 0x6f, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x65, 0x72, 0x72, + 0x6f, 0x72, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x65, 0x72, 0x72, + 0x6f, 0x72, 0x4d, 0x73, 0x67, 0x22, 0x5d, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x46, 0x72, 0x69, 0x65, + 0x6e, 0x64, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, + 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x69, 0x64, 0x12, 0x20, 0x0a, 0x0b, + 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x12, 0x14, + 0x0a, 0x05, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x54, + 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0x78, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x46, 0x72, 0x69, 0x65, 0x6e, + 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x12, 0x1c, 0x0a, 0x09, 0x65, 0x72, 0x72, + 0x6f, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x65, 0x72, + 0x72, 0x6f, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x65, 0x72, 0x72, 0x6f, 0x72, + 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x65, 0x72, 0x72, 0x6f, 0x72, + 0x4d, 0x73, 0x67, 0x12, 0x29, 0x0a, 0x04, 0x44, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x15, 0x2e, 0x66, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x2e, 0x47, 0x65, 0x74, 0x46, 0x72, + 0x69, 0x65, 0x6e, 0x64, 0x44, 0x61, 0x74, 0x61, 0x52, 0x04, 0x44, 0x61, 0x74, 0x61, 0x22, 0x91, + 0x02, 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x44, 0x61, 0x74, 0x61, + 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, + 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x69, 0x63, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x04, 0x69, 0x63, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x67, 0x65, + 0x6e, 0x64, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x67, 0x65, 0x6e, 0x64, + 0x65, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x6d, 0x6f, 0x62, 0x69, 0x6c, 0x65, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x06, 0x6d, 0x6f, 0x62, 0x69, 0x6c, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x62, 0x69, + 0x72, 0x74, 0x68, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x62, 0x69, 0x72, 0x74, 0x68, + 0x12, 0x14, 0x0a, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x12, 0x0e, 0x0a, 0x02, 0x65, 0x78, 0x18, 0x08, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x02, 0x65, 0x78, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, + 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, + 0x12, 0x1a, 0x0a, 0x08, 0x69, 0x73, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x18, 0x0a, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x08, 0x69, 0x73, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x12, 0x24, 0x0a, 0x0d, + 0x69, 0x73, 0x49, 0x6e, 0x42, 0x6c, 0x61, 0x63, 0x6b, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x0b, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x0d, 0x69, 0x73, 0x49, 0x6e, 0x42, 0x6c, 0x61, 0x63, 0x6b, 0x4c, 0x69, + 0x73, 0x74, 0x22, 0x78, 0x0a, 0x0c, 0x41, 0x64, 0x64, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x52, + 0x65, 0x71, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x03, 0x75, 0x69, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x12, 0x14, 0x0a, 0x05, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x1e, 0x0a, 0x0a, + 0x52, 0x65, 0x71, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0a, 0x52, 0x65, 0x71, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x7f, 0x0a, 0x0f, + 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x71, 0x12, + 0x18, 0x0a, 0x07, 0x75, 0x69, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, + 0x52, 0x07, 0x75, 0x69, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x70, 0x65, + 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, + 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x12, 0x14, 0x0a, 0x05, 0x54, + 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x54, 0x6f, 0x6b, 0x65, + 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x55, 0x69, 0x64, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x08, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x55, 0x69, 0x64, 0x22, 0x6c, 0x0a, + 0x10, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x73, + 0x70, 0x12, 0x32, 0x0a, 0x0a, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x66, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x2e, 0x43, + 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x52, 0x0a, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, + 0x6e, 0x52, 0x65, 0x73, 0x70, 0x12, 0x24, 0x0a, 0x0d, 0x66, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x55, + 0x69, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0d, 0x66, 0x61, + 0x69, 0x6c, 0x65, 0x64, 0x55, 0x69, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x4b, 0x0a, 0x11, 0x47, + 0x65, 0x74, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x52, 0x65, 0x71, + 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x49, 0x44, 0x12, 0x14, 0x0a, 0x05, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x05, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0x79, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x46, + 0x72, 0x69, 0x65, 0x6e, 0x64, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x52, 0x65, 0x73, 0x70, 0x12, 0x1c, + 0x0a, 0x09, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x09, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x1a, 0x0a, 0x08, + 0x65, 0x72, 0x72, 0x6f, 0x72, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, + 0x65, 0x72, 0x72, 0x6f, 0x72, 0x4d, 0x73, 0x67, 0x12, 0x29, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, + 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x66, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x2e, + 0x41, 0x70, 0x70, 0x6c, 0x79, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x64, + 0x61, 0x74, 0x61, 0x22, 0x87, 0x02, 0x0a, 0x0d, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x55, 0x73, 0x65, + 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x03, 0x75, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x69, + 0x63, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x69, 0x63, 0x6f, 0x6e, 0x12, + 0x16, 0x0a, 0x06, 0x67, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x06, 0x67, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x6d, 0x6f, 0x62, 0x69, 0x6c, + 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x6d, 0x6f, 0x62, 0x69, 0x6c, 0x65, 0x12, + 0x14, 0x0a, 0x05, 0x62, 0x69, 0x72, 0x74, 0x68, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, + 0x62, 0x69, 0x72, 0x74, 0x68, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x18, 0x07, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x12, 0x0e, 0x0a, 0x02, 0x65, + 0x78, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x65, 0x78, 0x12, 0x12, 0x0a, 0x04, 0x66, + 0x6c, 0x61, 0x67, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x66, 0x6c, 0x61, 0x67, 0x12, + 0x1c, 0x0a, 0x09, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x0a, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x09, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1e, 0x0a, + 0x0a, 0x72, 0x65, 0x71, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0a, 0x72, 0x65, 0x71, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x4a, 0x0a, + 0x10, 0x67, 0x65, 0x74, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, + 0x71, 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x49, 0x44, 0x12, 0x14, 0x0a, 0x05, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x05, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0x73, 0x0a, 0x11, 0x67, 0x65, 0x74, + 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x1c, + 0x0a, 0x09, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x09, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x1a, 0x0a, 0x08, + 0x65, 0x72, 0x72, 0x6f, 0x72, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, + 0x65, 0x72, 0x72, 0x6f, 0x72, 0x4d, 0x73, 0x67, 0x12, 0x24, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, + 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x66, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x2e, + 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0xf0, + 0x01, 0x0a, 0x08, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x10, 0x0a, 0x03, 0x75, + 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x69, 0x64, 0x12, 0x12, 0x0a, + 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, + 0x65, 0x12, 0x12, 0x0a, 0x04, 0x69, 0x63, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x04, 0x69, 0x63, 0x6f, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x67, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x67, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x12, 0x16, 0x0a, + 0x06, 0x6d, 0x6f, 0x62, 0x69, 0x6c, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x6d, + 0x6f, 0x62, 0x69, 0x6c, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x62, 0x69, 0x72, 0x74, 0x68, 0x18, 0x06, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x62, 0x69, 0x72, 0x74, 0x68, 0x12, 0x14, 0x0a, 0x05, 0x65, + 0x6d, 0x61, 0x69, 0x6c, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x65, 0x6d, 0x61, 0x69, + 0x6c, 0x12, 0x0e, 0x0a, 0x02, 0x65, 0x78, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x65, + 0x78, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x09, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x24, 0x0a, 0x0d, 0x69, + 0x73, 0x49, 0x6e, 0x42, 0x6c, 0x61, 0x63, 0x6b, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x0a, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x0d, 0x69, 0x73, 0x49, 0x6e, 0x42, 0x6c, 0x61, 0x63, 0x6b, 0x4c, 0x69, 0x73, + 0x74, 0x22, 0x77, 0x0a, 0x0f, 0x41, 0x64, 0x64, 0x42, 0x6c, 0x61, 0x63, 0x6b, 0x6c, 0x69, 0x73, + 0x74, 0x52, 0x65, 0x71, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x03, 0x75, 0x69, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x4f, 0x70, 0x65, + 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x12, 0x14, 0x0a, 0x05, 0x54, 0x6f, 0x6b, 0x65, + 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x1a, + 0x0a, 0x08, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x55, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x08, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x55, 0x69, 0x64, 0x22, 0x5e, 0x0a, 0x12, 0x52, 0x65, + 0x6d, 0x6f, 0x76, 0x65, 0x42, 0x6c, 0x61, 0x63, 0x6b, 0x6c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, + 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, + 0x69, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, + 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x49, 0x44, 0x12, 0x14, 0x0a, 0x05, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x05, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0x49, 0x0a, 0x0f, 0x47, 0x65, + 0x74, 0x42, 0x6c, 0x61, 0x63, 0x6b, 0x6c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x12, 0x20, 0x0a, + 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x12, + 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, + 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0x72, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x42, 0x6c, 0x61, 0x63, + 0x6b, 0x6c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x1c, 0x0a, 0x09, 0x65, 0x72, 0x72, + 0x6f, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x65, 0x72, + 0x72, 0x6f, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x65, 0x72, 0x72, 0x6f, 0x72, + 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x65, 0x72, 0x72, 0x6f, 0x72, + 0x4d, 0x73, 0x67, 0x12, 0x24, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x10, 0x2e, 0x66, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x49, + 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x65, 0x0a, 0x0b, 0x49, 0x73, 0x46, + 0x72, 0x69, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x71, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x6b, 0x65, + 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x1e, + 0x0a, 0x0a, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x55, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0a, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x55, 0x69, 0x64, 0x12, 0x20, + 0x0a, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, + 0x22, 0x64, 0x0a, 0x0c, 0x49, 0x73, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x73, 0x70, + 0x12, 0x1c, 0x0a, 0x09, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x09, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x1a, + 0x0a, 0x08, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x08, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x4d, 0x73, 0x67, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x68, + 0x69, 0x70, 0x54, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x73, 0x68, + 0x69, 0x70, 0x54, 0x79, 0x70, 0x65, 0x22, 0x6e, 0x0a, 0x10, 0x49, 0x73, 0x49, 0x6e, 0x42, 0x6c, + 0x61, 0x63, 0x6b, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x65, + 0x6e, 0x64, 0x55, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x65, 0x6e, + 0x64, 0x55, 0x69, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x55, + 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, + 0x65, 0x55, 0x69, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x22, 0x69, 0x0a, 0x11, 0x49, 0x73, 0x49, 0x6e, 0x42, 0x6c, + 0x61, 0x63, 0x6b, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x1c, 0x0a, 0x09, 0x65, + 0x72, 0x72, 0x6f, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, + 0x65, 0x72, 0x72, 0x6f, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x65, 0x72, 0x72, + 0x6f, 0x72, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x65, 0x72, 0x72, + 0x6f, 0x72, 0x4d, 0x73, 0x67, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x22, 0x5b, 0x0a, 0x0f, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x46, 0x72, 0x69, 0x65, 0x6e, + 0x64, 0x52, 0x65, 0x71, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x03, 0x75, 0x69, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x4f, 0x70, 0x65, + 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x12, 0x14, 0x0a, 0x05, 0x54, 0x6f, 0x6b, 0x65, + 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0x74, + 0x0a, 0x14, 0x41, 0x64, 0x64, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x52, 0x65, 0x71, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x66, 0x6c, 0x61, 0x67, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x66, 0x6c, 0x61, 0x67, 0x12, 0x20, 0x0a, 0x0b, + 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x12, 0x14, + 0x0a, 0x05, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x54, + 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0x79, 0x0a, 0x13, 0x53, 0x65, 0x74, 0x46, 0x72, 0x69, 0x65, 0x6e, + 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x12, 0x10, 0x0a, 0x03, 0x75, + 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x69, 0x64, 0x12, 0x20, 0x0a, + 0x0b, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0b, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x12, + 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x6b, + 0x65, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x32, + 0xb1, 0x07, 0x0a, 0x06, 0x66, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x12, 0x46, 0x0a, 0x0e, 0x67, 0x65, + 0x74, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x19, 0x2e, 0x66, + 0x72, 0x69, 0x65, 0x6e, 0x64, 0x2e, 0x47, 0x65, 0x74, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x73, + 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x1a, 0x19, 0x2e, 0x66, 0x72, 0x69, 0x65, 0x6e, 0x64, + 0x2e, 0x47, 0x65, 0x74, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, + 0x73, 0x70, 0x12, 0x35, 0x0a, 0x09, 0x61, 0x64, 0x64, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x12, + 0x14, 0x2e, 0x66, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x2e, 0x41, 0x64, 0x64, 0x46, 0x72, 0x69, 0x65, + 0x6e, 0x64, 0x52, 0x65, 0x71, 0x1a, 0x12, 0x2e, 0x66, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x2e, 0x43, + 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x12, 0x4b, 0x0a, 0x12, 0x67, 0x65, 0x74, + 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x4c, 0x69, 0x73, 0x74, 0x12, + 0x19, 0x2e, 0x66, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x2e, 0x47, 0x65, 0x74, 0x46, 0x72, 0x69, 0x65, + 0x6e, 0x64, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x52, 0x65, 0x71, 0x1a, 0x1a, 0x2e, 0x66, 0x72, 0x69, + 0x65, 0x6e, 0x64, 0x2e, 0x47, 0x65, 0x74, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x41, 0x70, 0x70, + 0x6c, 0x79, 0x52, 0x65, 0x73, 0x70, 0x12, 0x49, 0x0a, 0x10, 0x67, 0x65, 0x74, 0x53, 0x65, 0x6c, + 0x66, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x19, 0x2e, 0x66, 0x72, 0x69, + 0x65, 0x6e, 0x64, 0x2e, 0x47, 0x65, 0x74, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x41, 0x70, 0x70, + 0x6c, 0x79, 0x52, 0x65, 0x71, 0x1a, 0x1a, 0x2e, 0x66, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x2e, 0x47, + 0x65, 0x74, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x52, 0x65, 0x73, + 0x70, 0x12, 0x44, 0x0a, 0x0d, 0x67, 0x65, 0x74, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x4c, 0x69, + 0x73, 0x74, 0x12, 0x18, 0x2e, 0x66, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x2e, 0x67, 0x65, 0x74, 0x46, + 0x72, 0x69, 0x65, 0x6e, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x19, 0x2e, 0x66, + 0x72, 0x69, 0x65, 0x6e, 0x64, 0x2e, 0x67, 0x65, 0x74, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x4c, + 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x3b, 0x0a, 0x0c, 0x61, 0x64, 0x64, 0x42, 0x6c, + 0x61, 0x63, 0x6b, 0x6c, 0x69, 0x73, 0x74, 0x12, 0x17, 0x2e, 0x66, 0x72, 0x69, 0x65, 0x6e, 0x64, + 0x2e, 0x41, 0x64, 0x64, 0x42, 0x6c, 0x61, 0x63, 0x6b, 0x6c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, + 0x1a, 0x12, 0x2e, 0x66, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, + 0x52, 0x65, 0x73, 0x70, 0x12, 0x41, 0x0a, 0x0f, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x42, 0x6c, + 0x61, 0x63, 0x6b, 0x6c, 0x69, 0x73, 0x74, 0x12, 0x1a, 0x2e, 0x66, 0x72, 0x69, 0x65, 0x6e, 0x64, + 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x42, 0x6c, 0x61, 0x63, 0x6b, 0x6c, 0x69, 0x73, 0x74, + 0x52, 0x65, 0x71, 0x1a, 0x12, 0x2e, 0x66, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x2e, 0x43, 0x6f, 0x6d, + 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x12, 0x35, 0x0a, 0x08, 0x69, 0x73, 0x46, 0x72, 0x69, + 0x65, 0x6e, 0x64, 0x12, 0x13, 0x2e, 0x66, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x2e, 0x49, 0x73, 0x46, + 0x72, 0x69, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x71, 0x1a, 0x14, 0x2e, 0x66, 0x72, 0x69, 0x65, 0x6e, + 0x64, 0x2e, 0x49, 0x73, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x73, 0x70, 0x12, 0x44, + 0x0a, 0x0d, 0x69, 0x73, 0x49, 0x6e, 0x42, 0x6c, 0x61, 0x63, 0x6b, 0x4c, 0x69, 0x73, 0x74, 0x12, + 0x18, 0x2e, 0x66, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x2e, 0x49, 0x73, 0x49, 0x6e, 0x42, 0x6c, 0x61, + 0x63, 0x6b, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x19, 0x2e, 0x66, 0x72, 0x69, 0x65, + 0x6e, 0x64, 0x2e, 0x49, 0x73, 0x49, 0x6e, 0x42, 0x6c, 0x61, 0x63, 0x6b, 0x4c, 0x69, 0x73, 0x74, + 0x52, 0x65, 0x73, 0x70, 0x12, 0x41, 0x0a, 0x0c, 0x67, 0x65, 0x74, 0x42, 0x6c, 0x61, 0x63, 0x6b, + 0x6c, 0x69, 0x73, 0x74, 0x12, 0x17, 0x2e, 0x66, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x2e, 0x47, 0x65, + 0x74, 0x42, 0x6c, 0x61, 0x63, 0x6b, 0x6c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x18, 0x2e, + 0x66, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x2e, 0x47, 0x65, 0x74, 0x42, 0x6c, 0x61, 0x63, 0x6b, 0x6c, + 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x3b, 0x0a, 0x0c, 0x64, 0x65, 0x6c, 0x65, 0x74, + 0x65, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x12, 0x17, 0x2e, 0x66, 0x72, 0x69, 0x65, 0x6e, 0x64, + 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x71, + 0x1a, 0x12, 0x2e, 0x66, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, + 0x52, 0x65, 0x73, 0x70, 0x12, 0x45, 0x0a, 0x11, 0x61, 0x64, 0x64, 0x46, 0x72, 0x69, 0x65, 0x6e, + 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1c, 0x2e, 0x66, 0x72, 0x69, 0x65, + 0x6e, 0x64, 0x2e, 0x41, 0x64, 0x64, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x12, 0x2e, 0x66, 0x72, 0x69, 0x65, 0x6e, 0x64, + 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x12, 0x43, 0x0a, 0x10, 0x73, + 0x65, 0x74, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x12, + 0x1b, 0x2e, 0x66, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x2e, 0x53, 0x65, 0x74, 0x46, 0x72, 0x69, 0x65, + 0x6e, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x12, 0x2e, 0x66, + 0x72, 0x69, 0x65, 0x6e, 0x64, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, + 0x12, 0x41, 0x0a, 0x0c, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, + 0x12, 0x17, 0x2e, 0x66, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x2e, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, + 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x71, 0x1a, 0x18, 0x2e, 0x66, 0x72, 0x69, 0x65, + 0x6e, 0x64, 0x2e, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x52, + 0x65, 0x73, 0x70, 0x42, 0x11, 0x5a, 0x0f, 0x2e, 0x2f, 0x66, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x3b, + 0x66, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_friend_friend_proto_rawDescOnce sync.Once + file_friend_friend_proto_rawDescData = file_friend_friend_proto_rawDesc +) + +func file_friend_friend_proto_rawDescGZIP() []byte { + file_friend_friend_proto_rawDescOnce.Do(func() { + file_friend_friend_proto_rawDescData = protoimpl.X.CompressGZIP(file_friend_friend_proto_rawDescData) + }) + return file_friend_friend_proto_rawDescData +} + +var file_friend_friend_proto_msgTypes = make([]protoimpl.MessageInfo, 24) +var file_friend_friend_proto_goTypes = []interface{}{ + (*CommonResp)(nil), // 0: friend.CommonResp + (*GetFriendsInfoReq)(nil), // 1: friend.GetFriendsInfoReq + (*GetFriendInfoResp)(nil), // 2: friend.GetFriendInfoResp + (*GetFriendData)(nil), // 3: friend.GetFriendData + (*AddFriendReq)(nil), // 4: friend.AddFriendReq + (*ImportFriendReq)(nil), // 5: friend.ImportFriendReq + (*ImportFriendResp)(nil), // 6: friend.ImportFriendResp + (*GetFriendApplyReq)(nil), // 7: friend.GetFriendApplyReq + (*GetFriendApplyResp)(nil), // 8: friend.GetFriendApplyResp + (*ApplyUserInfo)(nil), // 9: friend.ApplyUserInfo + (*GetFriendListReq)(nil), // 10: friend.getFriendListReq + (*GetFriendListResp)(nil), // 11: friend.getFriendListResp + (*UserInfo)(nil), // 12: friend.UserInfo + (*AddBlacklistReq)(nil), // 13: friend.AddBlacklistReq + (*RemoveBlacklistReq)(nil), // 14: friend.RemoveBlacklistReq + (*GetBlacklistReq)(nil), // 15: friend.GetBlacklistReq + (*GetBlacklistResp)(nil), // 16: friend.GetBlacklistResp + (*IsFriendReq)(nil), // 17: friend.IsFriendReq + (*IsFriendResp)(nil), // 18: friend.IsFriendResp + (*IsInBlackListReq)(nil), // 19: friend.IsInBlackListReq + (*IsInBlackListResp)(nil), // 20: friend.IsInBlackListResp + (*DeleteFriendReq)(nil), // 21: friend.DeleteFriendReq + (*AddFriendResponseReq)(nil), // 22: friend.AddFriendResponseReq + (*SetFriendCommentReq)(nil), // 23: friend.SetFriendCommentReq +} +var file_friend_friend_proto_depIdxs = []int32{ + 3, // 0: friend.GetFriendInfoResp.Data:type_name -> friend.GetFriendData + 0, // 1: friend.ImportFriendResp.commonResp:type_name -> friend.CommonResp + 9, // 2: friend.GetFriendApplyResp.data:type_name -> friend.ApplyUserInfo + 12, // 3: friend.getFriendListResp.data:type_name -> friend.UserInfo + 12, // 4: friend.GetBlacklistResp.data:type_name -> friend.UserInfo + 1, // 5: friend.friend.getFriendsInfo:input_type -> friend.GetFriendsInfoReq + 4, // 6: friend.friend.addFriend:input_type -> friend.AddFriendReq + 7, // 7: friend.friend.getFriendApplyList:input_type -> friend.GetFriendApplyReq + 7, // 8: friend.friend.getSelfApplyList:input_type -> friend.GetFriendApplyReq + 10, // 9: friend.friend.getFriendList:input_type -> friend.getFriendListReq + 13, // 10: friend.friend.addBlacklist:input_type -> friend.AddBlacklistReq + 14, // 11: friend.friend.removeBlacklist:input_type -> friend.RemoveBlacklistReq + 17, // 12: friend.friend.isFriend:input_type -> friend.IsFriendReq + 19, // 13: friend.friend.isInBlackList:input_type -> friend.IsInBlackListReq + 15, // 14: friend.friend.getBlacklist:input_type -> friend.GetBlacklistReq + 21, // 15: friend.friend.deleteFriend:input_type -> friend.DeleteFriendReq + 22, // 16: friend.friend.addFriendResponse:input_type -> friend.AddFriendResponseReq + 23, // 17: friend.friend.setFriendComment:input_type -> friend.SetFriendCommentReq + 5, // 18: friend.friend.ImportFriend:input_type -> friend.ImportFriendReq + 2, // 19: friend.friend.getFriendsInfo:output_type -> friend.GetFriendInfoResp + 0, // 20: friend.friend.addFriend:output_type -> friend.CommonResp + 8, // 21: friend.friend.getFriendApplyList:output_type -> friend.GetFriendApplyResp + 8, // 22: friend.friend.getSelfApplyList:output_type -> friend.GetFriendApplyResp + 11, // 23: friend.friend.getFriendList:output_type -> friend.getFriendListResp + 0, // 24: friend.friend.addBlacklist:output_type -> friend.CommonResp + 0, // 25: friend.friend.removeBlacklist:output_type -> friend.CommonResp + 18, // 26: friend.friend.isFriend:output_type -> friend.IsFriendResp + 20, // 27: friend.friend.isInBlackList:output_type -> friend.IsInBlackListResp + 16, // 28: friend.friend.getBlacklist:output_type -> friend.GetBlacklistResp + 0, // 29: friend.friend.deleteFriend:output_type -> friend.CommonResp + 0, // 30: friend.friend.addFriendResponse:output_type -> friend.CommonResp + 0, // 31: friend.friend.setFriendComment:output_type -> friend.CommonResp + 6, // 32: friend.friend.ImportFriend:output_type -> friend.ImportFriendResp + 19, // [19:33] is the sub-list for method output_type + 5, // [5:19] is the sub-list for method input_type + 5, // [5:5] is the sub-list for extension type_name + 5, // [5:5] is the sub-list for extension extendee + 0, // [0:5] is the sub-list for field type_name +} + +func init() { file_friend_friend_proto_init() } +func file_friend_friend_proto_init() { + if File_friend_friend_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_friend_friend_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CommonResp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_friend_friend_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetFriendsInfoReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_friend_friend_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetFriendInfoResp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_friend_friend_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetFriendData); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_friend_friend_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AddFriendReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_friend_friend_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ImportFriendReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_friend_friend_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ImportFriendResp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_friend_friend_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetFriendApplyReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_friend_friend_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetFriendApplyResp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_friend_friend_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ApplyUserInfo); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_friend_friend_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetFriendListReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_friend_friend_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetFriendListResp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_friend_friend_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UserInfo); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_friend_friend_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AddBlacklistReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_friend_friend_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*RemoveBlacklistReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_friend_friend_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetBlacklistReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_friend_friend_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetBlacklistResp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_friend_friend_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*IsFriendReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_friend_friend_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*IsFriendResp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_friend_friend_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*IsInBlackListReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_friend_friend_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*IsInBlackListResp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_friend_friend_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DeleteFriendReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_friend_friend_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AddFriendResponseReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_friend_friend_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SetFriendCommentReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_friend_friend_proto_rawDesc, + NumEnums: 0, + NumMessages: 24, + NumExtensions: 0, + NumServices: 1, }, - }, - Streams: []grpc.StreamDesc{}, - Metadata: "friend/friend.proto", -} - -func init() { proto.RegisterFile("friend/friend.proto", fileDescriptor_friend_05873114bd399886) } - -var fileDescriptor_friend_05873114bd399886 = []byte{ - // 1011 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x57, 0xcd, 0x6e, 0xdb, 0x46, - 0x10, 0x86, 0x48, 0xc9, 0x96, 0x46, 0x52, 0x24, 0xaf, 0xdd, 0x96, 0x65, 0x83, 0x42, 0x20, 0x72, - 0x48, 0x2f, 0x29, 0xe0, 0x22, 0xa7, 0x9c, 0x14, 0xbb, 0x0e, 0xd4, 0x34, 0x08, 0xc0, 0xd8, 0x97, - 0x16, 0x2d, 0x40, 0x8b, 0x23, 0x85, 0x08, 0xff, 0xc2, 0x65, 0x12, 0xfb, 0xd4, 0x63, 0xcf, 0x7d, - 0x94, 0xbe, 0x59, 0x1f, 0xa1, 0xd8, 0x59, 0x92, 0xbb, 0xfc, 0x71, 0x1a, 0x54, 0x4e, 0x72, 0x32, - 0x67, 0x76, 0x3d, 0x3b, 0xdf, 0xcc, 0x7c, 0x33, 0x23, 0x38, 0xdc, 0x64, 0x01, 0xc6, 0xfe, 0xf7, - 0xf2, 0xcf, 0x83, 0x34, 0x4b, 0xf2, 0x84, 0xed, 0x49, 0xc9, 0x39, 0x03, 0x38, 0x49, 0xa2, 0x28, - 0x89, 0x5d, 0xe4, 0x29, 0xbb, 0x0b, 0x23, 0xcc, 0xb2, 0x24, 0x3b, 0x49, 0x7c, 0xb4, 0x7a, 0x8b, - 0xde, 0xfd, 0x81, 0xab, 0x14, 0xcc, 0x86, 0x21, 0x09, 0xcf, 0xf8, 0xd6, 0x32, 0x16, 0xbd, 0xfb, - 0x23, 0xb7, 0x92, 0x9d, 0xdf, 0xe0, 0xe0, 0x09, 0xe6, 0x67, 0x64, 0x94, 0xaf, 0xe2, 0x4d, 0xe2, - 0xe2, 0x6b, 0x36, 0x07, 0xf3, 0x4d, 0xe0, 0x93, 0xa1, 0x91, 0x2b, 0x3e, 0xd9, 0x02, 0xc6, 0xcf, - 0x53, 0xcc, 0xbc, 0x3c, 0x48, 0xe2, 0xd5, 0x69, 0x61, 0x45, 0x57, 0xb1, 0x23, 0x18, 0x9c, 0x27, - 0xaf, 0x30, 0xb6, 0x4c, 0x3a, 0x93, 0x82, 0x73, 0xa5, 0x99, 0x97, 0xd6, 0x77, 0xf1, 0x96, 0x7d, - 0x07, 0xfd, 0x53, 0x2f, 0xf7, 0xe8, 0x8d, 0xf1, 0xf1, 0x17, 0x0f, 0x8a, 0xd0, 0x54, 0x4f, 0x88, - 0x43, 0x97, 0xae, 0x38, 0x7f, 0x19, 0x30, 0xad, 0xe9, 0x3b, 0x50, 0x31, 0xe8, 0x07, 0xeb, 0x24, - 0x2e, 0x9e, 0xa1, 0x6f, 0xa1, 0x8b, 0xbd, 0x08, 0x0b, 0x18, 0xf4, 0xcd, 0xbe, 0x84, 0xbd, 0x2d, - 0xc6, 0x3e, 0x66, 0x56, 0x9f, 0xbc, 0x2d, 0x24, 0xa1, 0x8f, 0x92, 0xcb, 0x20, 0x44, 0x6b, 0x40, - 0xb7, 0x0b, 0x49, 0xc4, 0xe2, 0x32, 0xc8, 0xf2, 0x97, 0xd6, 0x9e, 0x8c, 0x05, 0x09, 0x42, 0x8b, - 0x91, 0x17, 0x84, 0xd6, 0xbe, 0xd4, 0x92, 0xc0, 0xee, 0x80, 0x81, 0x57, 0xd6, 0x90, 0x54, 0x06, - 0x5e, 0x31, 0x0b, 0xf6, 0xd7, 0x49, 0x14, 0x61, 0x9c, 0x5b, 0x23, 0x52, 0x96, 0xa2, 0x08, 0x4c, - 0xc0, 0x25, 0x1e, 0x0b, 0xc8, 0x8f, 0x4a, 0x66, 0xf7, 0x60, 0x1a, 0xf0, 0x55, 0xfc, 0x38, 0xf4, - 0xd6, 0xaf, 0x7e, 0x0e, 0x78, 0x6e, 0x8d, 0xe9, 0x42, 0x5d, 0xe9, 0x5c, 0xc1, 0x64, 0xe9, 0xfb, - 0xf2, 0x5f, 0x6e, 0x35, 0xcf, 0xec, 0x5b, 0x00, 0x17, 0x5f, 0x3f, 0x43, 0xce, 0xbd, 0x2d, 0x52, - 0x94, 0x46, 0xae, 0xa6, 0x71, 0xfe, 0x80, 0xd9, 0x2a, 0x4a, 0x93, 0x2c, 0x57, 0x8f, 0x5b, 0xb0, - 0xff, 0x26, 0xf0, 0xc9, 0xd9, 0xde, 0xc2, 0x14, 0x40, 0x0b, 0xf1, 0x7f, 0x3b, 0x61, 0xc3, 0xf0, - 0xf9, 0xbb, 0x18, 0xb3, 0x8b, 0xc0, 0x2f, 0x5c, 0xa8, 0x64, 0x27, 0x84, 0x79, 0xdd, 0x01, 0x9e, - 0xb2, 0x63, 0x80, 0x75, 0xc5, 0x21, 0x8a, 0xc2, 0xf8, 0x98, 0x95, 0x35, 0xa5, 0xd8, 0xe5, 0x6a, - 0xb7, 0x44, 0xa0, 0x37, 0x5e, 0x10, 0xa2, 0x7f, 0x51, 0xf8, 0x6e, 0x90, 0xef, 0x75, 0xa5, 0xf3, - 0x54, 0x2b, 0xfb, 0x65, 0x9a, 0x86, 0xd7, 0x02, 0x70, 0x03, 0x56, 0xef, 0x3d, 0xb0, 0x0c, 0x9d, - 0x43, 0xd7, 0xc0, 0x9a, 0xc6, 0x76, 0x25, 0x91, 0x2f, 0x48, 0xd4, 0x5f, 0x98, 0x3a, 0x89, 0xc8, - 0xf4, 0x05, 0xc7, 0x8c, 0x78, 0x4a, 0x57, 0x9c, 0x3f, 0x0d, 0x98, 0xd6, 0xf4, 0xdd, 0x24, 0x22, - 0xc2, 0x18, 0x1a, 0x61, 0x4a, 0x62, 0x99, 0x1a, 0xb1, 0x3e, 0x25, 0x89, 0x18, 0xf4, 0x37, 0xa1, - 0xb7, 0x25, 0x06, 0x0d, 0x5c, 0xfa, 0x16, 0x01, 0xf3, 0x04, 0x94, 0xf3, 0x20, 0x42, 0xe2, 0xcf, - 0xc8, 0x55, 0x0a, 0x51, 0xc0, 0x99, 0x2a, 0xe0, 0xb1, 0x2c, 0x60, 0xa5, 0x71, 0x7e, 0x82, 0xf9, - 0xb6, 0x4c, 0x82, 0x48, 0xf1, 0x2e, 0x09, 0xe5, 0x70, 0xd0, 0xb0, 0xb5, 0x53, 0x3e, 0xef, 0x15, - 0xf9, 0x34, 0x29, 0x9f, 0xf3, 0x32, 0x9f, 0x8d, 0x54, 0xfe, 0xd3, 0x83, 0xe1, 0x07, 0x64, 0xd1, - 0xec, 0xc8, 0xa2, 0xf1, 0x99, 0xb2, 0x78, 0x73, 0x2b, 0x6c, 0xb5, 0x3b, 0xe8, 0x6a, 0x77, 0xef, - 0x60, 0xb6, 0xf4, 0x7d, 0x92, 0xc3, 0x22, 0x65, 0xb7, 0xd7, 0xf1, 0xde, 0xd7, 0x6c, 0x7e, 0x07, - 0xe6, 0x62, 0x94, 0xbc, 0xc5, 0x8f, 0xf3, 0xb6, 0xb3, 0x82, 0xd9, 0x13, 0xcc, 0x6b, 0xc6, 0x3f, - 0xa8, 0x16, 0x73, 0xbd, 0x16, 0x49, 0x70, 0x32, 0x98, 0xd7, 0x4d, 0x7d, 0x82, 0x52, 0x44, 0x18, - 0xaf, 0xb8, 0x1a, 0x04, 0x95, 0x63, 0x3d, 0xcd, 0x31, 0x49, 0xc8, 0x35, 0x06, 0x6f, 0x51, 0x44, - 0xd8, 0x28, 0x09, 0x59, 0x6a, 0x9a, 0x80, 0xcd, 0x16, 0x60, 0xc7, 0x87, 0x89, 0x7a, 0x66, 0x27, - 0x58, 0x36, 0x0c, 0xf9, 0xcb, 0x20, 0x3d, 0xbf, 0x4e, 0x25, 0x41, 0x06, 0x6e, 0x25, 0x3b, 0x31, - 0xcc, 0x57, 0x7a, 0xd5, 0x15, 0xa3, 0x8d, 0x63, 0x2c, 0xa6, 0x41, 0x81, 0xa9, 0x14, 0x6f, 0x01, - 0x55, 0x00, 0x07, 0x8d, 0xf7, 0x76, 0x85, 0x96, 0x21, 0x4f, 0x93, 0x98, 0x4b, 0x68, 0x43, 0xb7, - 0x92, 0x9d, 0x5f, 0x61, 0x76, 0x8a, 0x21, 0xe6, 0xf8, 0x11, 0x36, 0x06, 0x27, 0x87, 0x23, 0x6d, - 0x17, 0x91, 0x2f, 0x76, 0xbf, 0x50, 0x36, 0x73, 0x43, 0x6b, 0xe6, 0xff, 0x19, 0x27, 0xf5, 0x6a, - 0xbf, 0x3e, 0x4b, 0x0f, 0x5f, 0x94, 0xad, 0xf7, 0x44, 0x36, 0x93, 0x1b, 0x61, 0x25, 0x6d, 0x58, - 0x9a, 0x4a, 0xef, 0x4e, 0x66, 0xbd, 0x3b, 0x55, 0x05, 0xdd, 0xd7, 0x0a, 0xfa, 0xf8, 0xef, 0x7d, - 0x28, 0x96, 0x77, 0x76, 0x06, 0x77, 0xb6, 0xb5, 0xa5, 0x9b, 0x7d, 0xdd, 0x5a, 0x65, 0xcb, 0x65, - 0xdc, 0x6e, 0x1f, 0x55, 0x8b, 0xf4, 0x43, 0x18, 0x79, 0x65, 0x0c, 0xd9, 0x51, 0x35, 0xc8, 0xb5, - 0x15, 0xcf, 0xee, 0xd8, 0x67, 0xd8, 0x53, 0x60, 0xdb, 0xda, 0x42, 0x41, 0x5b, 0x57, 0xfb, 0x9d, - 0x72, 0x73, 0xb1, 0xed, 0x9b, 0x8e, 0x78, 0xca, 0x56, 0x34, 0x18, 0x5f, 0x60, 0xb8, 0xd9, 0xd9, - 0xd4, 0x29, 0x4c, 0x6b, 0x73, 0x91, 0x59, 0xe5, 0xe5, 0xe6, 0xe8, 0x55, 0x41, 0x69, 0x0f, 0xd2, - 0x47, 0x30, 0xf1, 0xb4, 0xae, 0xcf, 0xbe, 0xd2, 0xe2, 0xa2, 0xb7, 0xcc, 0xce, 0xd0, 0x2c, 0x61, - 0x96, 0xd5, 0x3b, 0x37, 0xab, 0x3c, 0x6e, 0xb7, 0xf4, 0x4e, 0x13, 0x0f, 0xd5, 0x9a, 0xce, 0x0e, - 0xcb, 0x73, 0xad, 0xdf, 0xd9, 0x47, 0x6d, 0xa5, 0x04, 0x5f, 0x9b, 0x5e, 0x0a, 0x7c, 0xb3, 0xbd, - 0x28, 0xf0, 0xed, 0x46, 0xb0, 0x84, 0xc9, 0x56, 0x6b, 0xe7, 0x0a, 0x7c, 0x63, 0x5e, 0xd8, 0x56, - 0xf7, 0x81, 0x8c, 0x9f, 0xaf, 0xb1, 0x5e, 0x99, 0x68, 0xf4, 0x82, 0x4e, 0xf0, 0x3f, 0xc2, 0x81, - 0xd7, 0x64, 0x35, 0xbb, 0xdb, 0x51, 0x99, 0x15, 0xe1, 0x3b, 0xcd, 0x9c, 0xc0, 0x9c, 0x37, 0x68, - 0xca, 0xbe, 0x29, 0xef, 0x75, 0x10, 0xf8, 0x86, 0x5c, 0x4e, 0xf4, 0x95, 0x5f, 0x01, 0x69, 0xfc, - 0x12, 0x51, 0xb1, 0x68, 0xfe, 0x42, 0x78, 0x3c, 0xfb, 0x65, 0x2a, 0x8f, 0x1e, 0xc9, 0x3f, 0x97, - 0x7b, 0xf4, 0x2b, 0xfc, 0x87, 0x7f, 0x03, 0x00, 0x00, 0xff, 0xff, 0x85, 0x59, 0x8f, 0x67, 0x9c, - 0x0f, 0x00, 0x00, + GoTypes: file_friend_friend_proto_goTypes, + DependencyIndexes: file_friend_friend_proto_depIdxs, + MessageInfos: file_friend_friend_proto_msgTypes, + }.Build() + File_friend_friend_proto = out.File + file_friend_friend_proto_rawDesc = nil + file_friend_friend_proto_goTypes = nil + file_friend_friend_proto_depIdxs = nil } diff --git a/src/proto/group/group.pb.go b/src/proto/group/group.pb.go index 8e4bc5720..12f82bc52 100644 --- a/src/proto/group/group.pb.go +++ b/src/proto/group/group.pb.go @@ -1,2914 +1,3511 @@ // Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.26.0 +// protoc v3.7.1 // source: group/group.proto -package group // import "group" - -import proto "github.com/golang/protobuf/proto" -import fmt "fmt" -import math "math" +package group import ( - context "golang.org/x/net/context" - grpc "google.golang.org/grpc" + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + reflect "reflect" + sync "sync" ) -// 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 +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) type CommonResp struct { - ErrorCode int32 `protobuf:"varint,1,opt,name=ErrorCode" json:"ErrorCode,omitempty"` - ErrorMsg string `protobuf:"bytes,2,opt,name=ErrorMsg" json:"ErrorMsg,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields -func (m *CommonResp) Reset() { *m = CommonResp{} } -func (m *CommonResp) String() string { return proto.CompactTextString(m) } -func (*CommonResp) ProtoMessage() {} -func (*CommonResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_9fd4d73937974f0d, []int{0} -} -func (m *CommonResp) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_CommonResp.Unmarshal(m, b) + ErrorCode int32 `protobuf:"varint,1,opt,name=ErrorCode,proto3" json:"ErrorCode,omitempty"` + ErrorMsg string `protobuf:"bytes,2,opt,name=ErrorMsg,proto3" json:"ErrorMsg,omitempty"` } -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 (x *CommonResp) Reset() { + *x = CommonResp{} + if protoimpl.UnsafeEnabled { + mi := &file_group_group_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *CommonResp) XXX_Size() int { - return xxx_messageInfo_CommonResp.Size(m) + +func (x *CommonResp) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *CommonResp) XXX_DiscardUnknown() { - xxx_messageInfo_CommonResp.DiscardUnknown(m) + +func (*CommonResp) ProtoMessage() {} + +func (x *CommonResp) ProtoReflect() protoreflect.Message { + mi := &file_group_group_proto_msgTypes[0] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) } -var xxx_messageInfo_CommonResp proto.InternalMessageInfo +// Deprecated: Use CommonResp.ProtoReflect.Descriptor instead. +func (*CommonResp) Descriptor() ([]byte, []int) { + return file_group_group_proto_rawDescGZIP(), []int{0} +} -func (m *CommonResp) GetErrorCode() int32 { - if m != nil { - return m.ErrorCode +func (x *CommonResp) GetErrorCode() int32 { + if x != nil { + return x.ErrorCode } return 0 } -func (m *CommonResp) GetErrorMsg() string { - if m != nil { - return m.ErrorMsg +func (x *CommonResp) GetErrorMsg() string { + if x != nil { + return x.ErrorMsg } return "" } type CreateGroupReq struct { - MemberList []*GroupAddMemberInfo `protobuf:"bytes,1,rep,name=memberList" json:"memberList,omitempty"` - GroupName string `protobuf:"bytes,2,opt,name=groupName" json:"groupName,omitempty"` - Introduction string `protobuf:"bytes,3,opt,name=introduction" json:"introduction,omitempty"` - Notification string `protobuf:"bytes,4,opt,name=notification" json:"notification,omitempty"` - FaceUrl string `protobuf:"bytes,5,opt,name=faceUrl" json:"faceUrl,omitempty"` - Token string `protobuf:"bytes,6,opt,name=token" json:"token,omitempty"` - OperationID string `protobuf:"bytes,7,opt,name=operationID" json:"operationID,omitempty"` - Ex string `protobuf:"bytes,8,opt,name=ex" json:"ex,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *CreateGroupReq) Reset() { *m = CreateGroupReq{} } -func (m *CreateGroupReq) String() string { return proto.CompactTextString(m) } -func (*CreateGroupReq) ProtoMessage() {} -func (*CreateGroupReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_9fd4d73937974f0d, []int{1} -} -func (m *CreateGroupReq) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_CreateGroupReq.Unmarshal(m, b) -} -func (m *CreateGroupReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_CreateGroupReq.Marshal(b, m, deterministic) + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + MemberList []*GroupAddMemberInfo `protobuf:"bytes,1,rep,name=memberList,proto3" json:"memberList,omitempty"` + GroupName string `protobuf:"bytes,2,opt,name=groupName,proto3" json:"groupName,omitempty"` + Introduction string `protobuf:"bytes,3,opt,name=introduction,proto3" json:"introduction,omitempty"` + Notification string `protobuf:"bytes,4,opt,name=notification,proto3" json:"notification,omitempty"` + FaceUrl string `protobuf:"bytes,5,opt,name=faceUrl,proto3" json:"faceUrl,omitempty"` + Token string `protobuf:"bytes,6,opt,name=token,proto3" json:"token,omitempty"` + OperationID string `protobuf:"bytes,7,opt,name=operationID,proto3" json:"operationID,omitempty"` + Ex string `protobuf:"bytes,8,opt,name=ex,proto3" json:"ex,omitempty"` } -func (dst *CreateGroupReq) XXX_Merge(src proto.Message) { - xxx_messageInfo_CreateGroupReq.Merge(dst, src) + +func (x *CreateGroupReq) Reset() { + *x = CreateGroupReq{} + if protoimpl.UnsafeEnabled { + mi := &file_group_group_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *CreateGroupReq) XXX_Size() int { - return xxx_messageInfo_CreateGroupReq.Size(m) + +func (x *CreateGroupReq) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *CreateGroupReq) XXX_DiscardUnknown() { - xxx_messageInfo_CreateGroupReq.DiscardUnknown(m) + +func (*CreateGroupReq) ProtoMessage() {} + +func (x *CreateGroupReq) ProtoReflect() protoreflect.Message { + mi := &file_group_group_proto_msgTypes[1] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) } -var xxx_messageInfo_CreateGroupReq proto.InternalMessageInfo +// Deprecated: Use CreateGroupReq.ProtoReflect.Descriptor instead. +func (*CreateGroupReq) Descriptor() ([]byte, []int) { + return file_group_group_proto_rawDescGZIP(), []int{1} +} -func (m *CreateGroupReq) GetMemberList() []*GroupAddMemberInfo { - if m != nil { - return m.MemberList +func (x *CreateGroupReq) GetMemberList() []*GroupAddMemberInfo { + if x != nil { + return x.MemberList } return nil } -func (m *CreateGroupReq) GetGroupName() string { - if m != nil { - return m.GroupName +func (x *CreateGroupReq) GetGroupName() string { + if x != nil { + return x.GroupName } return "" } -func (m *CreateGroupReq) GetIntroduction() string { - if m != nil { - return m.Introduction +func (x *CreateGroupReq) GetIntroduction() string { + if x != nil { + return x.Introduction } return "" } -func (m *CreateGroupReq) GetNotification() string { - if m != nil { - return m.Notification +func (x *CreateGroupReq) GetNotification() string { + if x != nil { + return x.Notification } return "" } -func (m *CreateGroupReq) GetFaceUrl() string { - if m != nil { - return m.FaceUrl +func (x *CreateGroupReq) GetFaceUrl() string { + if x != nil { + return x.FaceUrl } return "" } -func (m *CreateGroupReq) GetToken() string { - if m != nil { - return m.Token +func (x *CreateGroupReq) GetToken() string { + if x != nil { + return x.Token } return "" } -func (m *CreateGroupReq) GetOperationID() string { - if m != nil { - return m.OperationID +func (x *CreateGroupReq) GetOperationID() string { + if x != nil { + return x.OperationID } return "" } -func (m *CreateGroupReq) GetEx() string { - if m != nil { - return m.Ex +func (x *CreateGroupReq) GetEx() string { + if x != nil { + return x.Ex } return "" } type GroupAddMemberInfo struct { - Uid string `protobuf:"bytes,1,opt,name=uid" json:"uid,omitempty"` - SetRole int32 `protobuf:"varint,2,opt,name=setRole" json:"setRole,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields -func (m *GroupAddMemberInfo) Reset() { *m = GroupAddMemberInfo{} } -func (m *GroupAddMemberInfo) String() string { return proto.CompactTextString(m) } -func (*GroupAddMemberInfo) ProtoMessage() {} -func (*GroupAddMemberInfo) Descriptor() ([]byte, []int) { - return fileDescriptor_group_9fd4d73937974f0d, []int{2} -} -func (m *GroupAddMemberInfo) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_GroupAddMemberInfo.Unmarshal(m, b) + Uid string `protobuf:"bytes,1,opt,name=uid,proto3" json:"uid,omitempty"` + SetRole int32 `protobuf:"varint,2,opt,name=setRole,proto3" json:"setRole,omitempty"` } -func (m *GroupAddMemberInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_GroupAddMemberInfo.Marshal(b, m, deterministic) -} -func (dst *GroupAddMemberInfo) XXX_Merge(src proto.Message) { - xxx_messageInfo_GroupAddMemberInfo.Merge(dst, src) + +func (x *GroupAddMemberInfo) Reset() { + *x = GroupAddMemberInfo{} + if protoimpl.UnsafeEnabled { + mi := &file_group_group_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *GroupAddMemberInfo) XXX_Size() int { - return xxx_messageInfo_GroupAddMemberInfo.Size(m) + +func (x *GroupAddMemberInfo) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *GroupAddMemberInfo) XXX_DiscardUnknown() { - xxx_messageInfo_GroupAddMemberInfo.DiscardUnknown(m) + +func (*GroupAddMemberInfo) ProtoMessage() {} + +func (x *GroupAddMemberInfo) ProtoReflect() protoreflect.Message { + mi := &file_group_group_proto_msgTypes[2] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) } -var xxx_messageInfo_GroupAddMemberInfo proto.InternalMessageInfo +// Deprecated: Use GroupAddMemberInfo.ProtoReflect.Descriptor instead. +func (*GroupAddMemberInfo) Descriptor() ([]byte, []int) { + return file_group_group_proto_rawDescGZIP(), []int{2} +} -func (m *GroupAddMemberInfo) GetUid() string { - if m != nil { - return m.Uid +func (x *GroupAddMemberInfo) GetUid() string { + if x != nil { + return x.Uid } return "" } -func (m *GroupAddMemberInfo) GetSetRole() int32 { - if m != nil { - return m.SetRole +func (x *GroupAddMemberInfo) GetSetRole() int32 { + if x != nil { + return x.SetRole } return 0 } type CreateGroupResp struct { - ErrorCode int32 `protobuf:"varint,1,opt,name=ErrorCode" json:"ErrorCode,omitempty"` - ErrorMsg string `protobuf:"bytes,2,opt,name=ErrorMsg" json:"ErrorMsg,omitempty"` - GroupID string `protobuf:"bytes,3,opt,name=groupID" json:"groupID,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields -func (m *CreateGroupResp) Reset() { *m = CreateGroupResp{} } -func (m *CreateGroupResp) String() string { return proto.CompactTextString(m) } -func (*CreateGroupResp) ProtoMessage() {} -func (*CreateGroupResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_9fd4d73937974f0d, []int{3} -} -func (m *CreateGroupResp) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_CreateGroupResp.Unmarshal(m, b) + ErrorCode int32 `protobuf:"varint,1,opt,name=ErrorCode,proto3" json:"ErrorCode,omitempty"` + ErrorMsg string `protobuf:"bytes,2,opt,name=ErrorMsg,proto3" json:"ErrorMsg,omitempty"` + GroupID string `protobuf:"bytes,3,opt,name=groupID,proto3" json:"groupID,omitempty"` } -func (m *CreateGroupResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_CreateGroupResp.Marshal(b, m, deterministic) -} -func (dst *CreateGroupResp) XXX_Merge(src proto.Message) { - xxx_messageInfo_CreateGroupResp.Merge(dst, src) + +func (x *CreateGroupResp) Reset() { + *x = CreateGroupResp{} + if protoimpl.UnsafeEnabled { + mi := &file_group_group_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *CreateGroupResp) XXX_Size() int { - return xxx_messageInfo_CreateGroupResp.Size(m) + +func (x *CreateGroupResp) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *CreateGroupResp) XXX_DiscardUnknown() { - xxx_messageInfo_CreateGroupResp.DiscardUnknown(m) + +func (*CreateGroupResp) ProtoMessage() {} + +func (x *CreateGroupResp) ProtoReflect() protoreflect.Message { + mi := &file_group_group_proto_msgTypes[3] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) } -var xxx_messageInfo_CreateGroupResp proto.InternalMessageInfo +// Deprecated: Use CreateGroupResp.ProtoReflect.Descriptor instead. +func (*CreateGroupResp) Descriptor() ([]byte, []int) { + return file_group_group_proto_rawDescGZIP(), []int{3} +} -func (m *CreateGroupResp) GetErrorCode() int32 { - if m != nil { - return m.ErrorCode +func (x *CreateGroupResp) GetErrorCode() int32 { + if x != nil { + return x.ErrorCode } return 0 } -func (m *CreateGroupResp) GetErrorMsg() string { - if m != nil { - return m.ErrorMsg +func (x *CreateGroupResp) GetErrorMsg() string { + if x != nil { + return x.ErrorMsg } return "" } -func (m *CreateGroupResp) GetGroupID() string { - if m != nil { - return m.GroupID +func (x *CreateGroupResp) GetGroupID() string { + if x != nil { + return x.GroupID } return "" } type GetGroupsInfoReq struct { - GroupIDList []string `protobuf:"bytes,1,rep,name=groupIDList" json:"groupIDList,omitempty"` - Token string `protobuf:"bytes,2,opt,name=token" json:"token,omitempty"` - OperationID string `protobuf:"bytes,3,opt,name=operationID" json:"operationID,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields -func (m *GetGroupsInfoReq) Reset() { *m = GetGroupsInfoReq{} } -func (m *GetGroupsInfoReq) String() string { return proto.CompactTextString(m) } -func (*GetGroupsInfoReq) ProtoMessage() {} -func (*GetGroupsInfoReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_9fd4d73937974f0d, []int{4} -} -func (m *GetGroupsInfoReq) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_GetGroupsInfoReq.Unmarshal(m, b) + GroupIDList []string `protobuf:"bytes,1,rep,name=groupIDList,proto3" json:"groupIDList,omitempty"` + Token string `protobuf:"bytes,2,opt,name=token,proto3" json:"token,omitempty"` + OperationID string `protobuf:"bytes,3,opt,name=operationID,proto3" json:"operationID,omitempty"` } -func (m *GetGroupsInfoReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_GetGroupsInfoReq.Marshal(b, m, deterministic) -} -func (dst *GetGroupsInfoReq) XXX_Merge(src proto.Message) { - xxx_messageInfo_GetGroupsInfoReq.Merge(dst, src) + +func (x *GetGroupsInfoReq) Reset() { + *x = GetGroupsInfoReq{} + if protoimpl.UnsafeEnabled { + mi := &file_group_group_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *GetGroupsInfoReq) XXX_Size() int { - return xxx_messageInfo_GetGroupsInfoReq.Size(m) + +func (x *GetGroupsInfoReq) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *GetGroupsInfoReq) XXX_DiscardUnknown() { - xxx_messageInfo_GetGroupsInfoReq.DiscardUnknown(m) + +func (*GetGroupsInfoReq) ProtoMessage() {} + +func (x *GetGroupsInfoReq) ProtoReflect() protoreflect.Message { + mi := &file_group_group_proto_msgTypes[4] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) } -var xxx_messageInfo_GetGroupsInfoReq proto.InternalMessageInfo +// Deprecated: Use GetGroupsInfoReq.ProtoReflect.Descriptor instead. +func (*GetGroupsInfoReq) Descriptor() ([]byte, []int) { + return file_group_group_proto_rawDescGZIP(), []int{4} +} -func (m *GetGroupsInfoReq) GetGroupIDList() []string { - if m != nil { - return m.GroupIDList +func (x *GetGroupsInfoReq) GetGroupIDList() []string { + if x != nil { + return x.GroupIDList } return nil } -func (m *GetGroupsInfoReq) GetToken() string { - if m != nil { - return m.Token +func (x *GetGroupsInfoReq) GetToken() string { + if x != nil { + return x.Token } return "" } -func (m *GetGroupsInfoReq) GetOperationID() string { - if m != nil { - return m.OperationID +func (x *GetGroupsInfoReq) GetOperationID() string { + if x != nil { + return x.OperationID } return "" } type GetGroupsInfoResp struct { - ErrorCode int32 `protobuf:"varint,1,opt,name=ErrorCode" json:"ErrorCode,omitempty"` - ErrorMsg string `protobuf:"bytes,2,opt,name=ErrorMsg" json:"ErrorMsg,omitempty"` - Data []*GroupInfo `protobuf:"bytes,3,rep,name=data" json:"data,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields -func (m *GetGroupsInfoResp) Reset() { *m = GetGroupsInfoResp{} } -func (m *GetGroupsInfoResp) String() string { return proto.CompactTextString(m) } -func (*GetGroupsInfoResp) ProtoMessage() {} -func (*GetGroupsInfoResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_9fd4d73937974f0d, []int{5} -} -func (m *GetGroupsInfoResp) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_GetGroupsInfoResp.Unmarshal(m, b) + ErrorCode int32 `protobuf:"varint,1,opt,name=ErrorCode,proto3" json:"ErrorCode,omitempty"` + ErrorMsg string `protobuf:"bytes,2,opt,name=ErrorMsg,proto3" json:"ErrorMsg,omitempty"` + Data []*GroupInfo `protobuf:"bytes,3,rep,name=data,proto3" json:"data,omitempty"` } -func (m *GetGroupsInfoResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_GetGroupsInfoResp.Marshal(b, m, deterministic) -} -func (dst *GetGroupsInfoResp) XXX_Merge(src proto.Message) { - xxx_messageInfo_GetGroupsInfoResp.Merge(dst, src) + +func (x *GetGroupsInfoResp) Reset() { + *x = GetGroupsInfoResp{} + if protoimpl.UnsafeEnabled { + mi := &file_group_group_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *GetGroupsInfoResp) XXX_Size() int { - return xxx_messageInfo_GetGroupsInfoResp.Size(m) + +func (x *GetGroupsInfoResp) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *GetGroupsInfoResp) XXX_DiscardUnknown() { - xxx_messageInfo_GetGroupsInfoResp.DiscardUnknown(m) + +func (*GetGroupsInfoResp) ProtoMessage() {} + +func (x *GetGroupsInfoResp) ProtoReflect() protoreflect.Message { + mi := &file_group_group_proto_msgTypes[5] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) } -var xxx_messageInfo_GetGroupsInfoResp proto.InternalMessageInfo +// Deprecated: Use GetGroupsInfoResp.ProtoReflect.Descriptor instead. +func (*GetGroupsInfoResp) Descriptor() ([]byte, []int) { + return file_group_group_proto_rawDescGZIP(), []int{5} +} -func (m *GetGroupsInfoResp) GetErrorCode() int32 { - if m != nil { - return m.ErrorCode +func (x *GetGroupsInfoResp) GetErrorCode() int32 { + if x != nil { + return x.ErrorCode } return 0 } -func (m *GetGroupsInfoResp) GetErrorMsg() string { - if m != nil { - return m.ErrorMsg +func (x *GetGroupsInfoResp) GetErrorMsg() string { + if x != nil { + return x.ErrorMsg } return "" } -func (m *GetGroupsInfoResp) GetData() []*GroupInfo { - if m != nil { - return m.Data +func (x *GetGroupsInfoResp) GetData() []*GroupInfo { + if x != nil { + return x.Data } return nil } type SetGroupInfoReq struct { - GroupID string `protobuf:"bytes,1,opt,name=groupID" json:"groupID,omitempty"` - GroupName string `protobuf:"bytes,2,opt,name=groupName" json:"groupName,omitempty"` - Notification string `protobuf:"bytes,3,opt,name=notification" json:"notification,omitempty"` - Introduction string `protobuf:"bytes,4,opt,name=introduction" json:"introduction,omitempty"` - FaceUrl string `protobuf:"bytes,5,opt,name=faceUrl" json:"faceUrl,omitempty"` - Token string `protobuf:"bytes,6,opt,name=token" json:"token,omitempty"` - OperationID string `protobuf:"bytes,7,opt,name=operationID" json:"operationID,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *SetGroupInfoReq) Reset() { *m = SetGroupInfoReq{} } -func (m *SetGroupInfoReq) String() string { return proto.CompactTextString(m) } -func (*SetGroupInfoReq) ProtoMessage() {} -func (*SetGroupInfoReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_9fd4d73937974f0d, []int{6} -} -func (m *SetGroupInfoReq) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_SetGroupInfoReq.Unmarshal(m, b) -} -func (m *SetGroupInfoReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_SetGroupInfoReq.Marshal(b, m, deterministic) + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + GroupID string `protobuf:"bytes,1,opt,name=groupID,proto3" json:"groupID,omitempty"` + GroupName string `protobuf:"bytes,2,opt,name=groupName,proto3" json:"groupName,omitempty"` + Notification string `protobuf:"bytes,3,opt,name=notification,proto3" json:"notification,omitempty"` + Introduction string `protobuf:"bytes,4,opt,name=introduction,proto3" json:"introduction,omitempty"` + FaceUrl string `protobuf:"bytes,5,opt,name=faceUrl,proto3" json:"faceUrl,omitempty"` + Token string `protobuf:"bytes,6,opt,name=token,proto3" json:"token,omitempty"` + OperationID string `protobuf:"bytes,7,opt,name=operationID,proto3" json:"operationID,omitempty"` } -func (dst *SetGroupInfoReq) XXX_Merge(src proto.Message) { - xxx_messageInfo_SetGroupInfoReq.Merge(dst, src) + +func (x *SetGroupInfoReq) Reset() { + *x = SetGroupInfoReq{} + if protoimpl.UnsafeEnabled { + mi := &file_group_group_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *SetGroupInfoReq) XXX_Size() int { - return xxx_messageInfo_SetGroupInfoReq.Size(m) + +func (x *SetGroupInfoReq) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *SetGroupInfoReq) XXX_DiscardUnknown() { - xxx_messageInfo_SetGroupInfoReq.DiscardUnknown(m) + +func (*SetGroupInfoReq) ProtoMessage() {} + +func (x *SetGroupInfoReq) ProtoReflect() protoreflect.Message { + mi := &file_group_group_proto_msgTypes[6] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) } -var xxx_messageInfo_SetGroupInfoReq proto.InternalMessageInfo +// Deprecated: Use SetGroupInfoReq.ProtoReflect.Descriptor instead. +func (*SetGroupInfoReq) Descriptor() ([]byte, []int) { + return file_group_group_proto_rawDescGZIP(), []int{6} +} -func (m *SetGroupInfoReq) GetGroupID() string { - if m != nil { - return m.GroupID +func (x *SetGroupInfoReq) GetGroupID() string { + if x != nil { + return x.GroupID } return "" } -func (m *SetGroupInfoReq) GetGroupName() string { - if m != nil { - return m.GroupName +func (x *SetGroupInfoReq) GetGroupName() string { + if x != nil { + return x.GroupName } return "" } -func (m *SetGroupInfoReq) GetNotification() string { - if m != nil { - return m.Notification +func (x *SetGroupInfoReq) GetNotification() string { + if x != nil { + return x.Notification } return "" } -func (m *SetGroupInfoReq) GetIntroduction() string { - if m != nil { - return m.Introduction +func (x *SetGroupInfoReq) GetIntroduction() string { + if x != nil { + return x.Introduction } return "" } -func (m *SetGroupInfoReq) GetFaceUrl() string { - if m != nil { - return m.FaceUrl +func (x *SetGroupInfoReq) GetFaceUrl() string { + if x != nil { + return x.FaceUrl } return "" } -func (m *SetGroupInfoReq) GetToken() string { - if m != nil { - return m.Token +func (x *SetGroupInfoReq) GetToken() string { + if x != nil { + return x.Token } return "" } -func (m *SetGroupInfoReq) GetOperationID() string { - if m != nil { - return m.OperationID +func (x *SetGroupInfoReq) GetOperationID() string { + if x != nil { + return x.OperationID } return "" } type GetGroupApplicationListReq struct { - UID string `protobuf:"bytes,1,opt,name=UID" json:"UID,omitempty"` - OperationID string `protobuf:"bytes,2,opt,name=OperationID" json:"OperationID,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields -func (m *GetGroupApplicationListReq) Reset() { *m = GetGroupApplicationListReq{} } -func (m *GetGroupApplicationListReq) String() string { return proto.CompactTextString(m) } -func (*GetGroupApplicationListReq) ProtoMessage() {} -func (*GetGroupApplicationListReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_9fd4d73937974f0d, []int{7} -} -func (m *GetGroupApplicationListReq) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_GetGroupApplicationListReq.Unmarshal(m, b) + UID string `protobuf:"bytes,1,opt,name=UID,proto3" json:"UID,omitempty"` + OperationID string `protobuf:"bytes,2,opt,name=OperationID,proto3" json:"OperationID,omitempty"` } -func (m *GetGroupApplicationListReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_GetGroupApplicationListReq.Marshal(b, m, deterministic) -} -func (dst *GetGroupApplicationListReq) XXX_Merge(src proto.Message) { - xxx_messageInfo_GetGroupApplicationListReq.Merge(dst, src) + +func (x *GetGroupApplicationListReq) Reset() { + *x = GetGroupApplicationListReq{} + if protoimpl.UnsafeEnabled { + mi := &file_group_group_proto_msgTypes[7] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *GetGroupApplicationListReq) XXX_Size() int { - return xxx_messageInfo_GetGroupApplicationListReq.Size(m) + +func (x *GetGroupApplicationListReq) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *GetGroupApplicationListReq) XXX_DiscardUnknown() { - xxx_messageInfo_GetGroupApplicationListReq.DiscardUnknown(m) + +func (*GetGroupApplicationListReq) ProtoMessage() {} + +func (x *GetGroupApplicationListReq) ProtoReflect() protoreflect.Message { + mi := &file_group_group_proto_msgTypes[7] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) } -var xxx_messageInfo_GetGroupApplicationListReq proto.InternalMessageInfo +// Deprecated: Use GetGroupApplicationListReq.ProtoReflect.Descriptor instead. +func (*GetGroupApplicationListReq) Descriptor() ([]byte, []int) { + return file_group_group_proto_rawDescGZIP(), []int{7} +} -func (m *GetGroupApplicationListReq) GetUID() string { - if m != nil { - return m.UID +func (x *GetGroupApplicationListReq) GetUID() string { + if x != nil { + return x.UID } return "" } -func (m *GetGroupApplicationListReq) GetOperationID() string { - if m != nil { - return m.OperationID +func (x *GetGroupApplicationListReq) GetOperationID() string { + if x != nil { + return x.OperationID } return "" } type GetGroupApplicationList_Data_User struct { - ID string `protobuf:"bytes,1,opt,name=ID" json:"ID,omitempty"` - GroupID string `protobuf:"bytes,2,opt,name=GroupID" json:"GroupID,omitempty"` - FromUserID string `protobuf:"bytes,3,opt,name=FromUserID" json:"FromUserID,omitempty"` - ToUserID string `protobuf:"bytes,4,opt,name=ToUserID" json:"ToUserID,omitempty"` - Flag int32 `protobuf:"varint,5,opt,name=Flag" json:"Flag,omitempty"` - RequestMsg string `protobuf:"bytes,6,opt,name=RequestMsg" json:"RequestMsg,omitempty"` - HandledMsg string `protobuf:"bytes,7,opt,name=HandledMsg" json:"HandledMsg,omitempty"` - AddTime int64 `protobuf:"varint,8,opt,name=AddTime" json:"AddTime,omitempty"` - FromUserNickname string `protobuf:"bytes,9,opt,name=FromUserNickname" json:"FromUserNickname,omitempty"` - ToUserNickname string `protobuf:"bytes,10,opt,name=ToUserNickname" json:"ToUserNickname,omitempty"` - FromUserFaceUrl string `protobuf:"bytes,11,opt,name=FromUserFaceUrl" json:"FromUserFaceUrl,omitempty"` - ToUserFaceUrl string `protobuf:"bytes,12,opt,name=ToUserFaceUrl" json:"ToUserFaceUrl,omitempty"` - HandledUser string `protobuf:"bytes,13,opt,name=HandledUser" json:"HandledUser,omitempty"` - Type int32 `protobuf:"varint,14,opt,name=Type" json:"Type,omitempty"` - HandleStatus int32 `protobuf:"varint,15,opt,name=HandleStatus" json:"HandleStatus,omitempty"` - HandleResult int32 `protobuf:"varint,16,opt,name=HandleResult" json:"HandleResult,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *GetGroupApplicationList_Data_User) Reset() { *m = GetGroupApplicationList_Data_User{} } -func (m *GetGroupApplicationList_Data_User) String() string { return proto.CompactTextString(m) } -func (*GetGroupApplicationList_Data_User) ProtoMessage() {} -func (*GetGroupApplicationList_Data_User) Descriptor() ([]byte, []int) { - return fileDescriptor_group_9fd4d73937974f0d, []int{8} -} -func (m *GetGroupApplicationList_Data_User) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_GetGroupApplicationList_Data_User.Unmarshal(m, b) -} -func (m *GetGroupApplicationList_Data_User) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_GetGroupApplicationList_Data_User.Marshal(b, m, deterministic) + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ID string `protobuf:"bytes,1,opt,name=ID,proto3" json:"ID,omitempty"` + GroupID string `protobuf:"bytes,2,opt,name=GroupID,proto3" json:"GroupID,omitempty"` + FromUserID string `protobuf:"bytes,3,opt,name=FromUserID,proto3" json:"FromUserID,omitempty"` + ToUserID string `protobuf:"bytes,4,opt,name=ToUserID,proto3" json:"ToUserID,omitempty"` + Flag int32 `protobuf:"varint,5,opt,name=Flag,proto3" json:"Flag,omitempty"` + RequestMsg string `protobuf:"bytes,6,opt,name=RequestMsg,proto3" json:"RequestMsg,omitempty"` + HandledMsg string `protobuf:"bytes,7,opt,name=HandledMsg,proto3" json:"HandledMsg,omitempty"` + AddTime int64 `protobuf:"varint,8,opt,name=AddTime,proto3" json:"AddTime,omitempty"` + FromUserNickname string `protobuf:"bytes,9,opt,name=FromUserNickname,proto3" json:"FromUserNickname,omitempty"` + ToUserNickname string `protobuf:"bytes,10,opt,name=ToUserNickname,proto3" json:"ToUserNickname,omitempty"` + FromUserFaceUrl string `protobuf:"bytes,11,opt,name=FromUserFaceUrl,proto3" json:"FromUserFaceUrl,omitempty"` + ToUserFaceUrl string `protobuf:"bytes,12,opt,name=ToUserFaceUrl,proto3" json:"ToUserFaceUrl,omitempty"` + HandledUser string `protobuf:"bytes,13,opt,name=HandledUser,proto3" json:"HandledUser,omitempty"` + Type int32 `protobuf:"varint,14,opt,name=Type,proto3" json:"Type,omitempty"` + HandleStatus int32 `protobuf:"varint,15,opt,name=HandleStatus,proto3" json:"HandleStatus,omitempty"` + HandleResult int32 `protobuf:"varint,16,opt,name=HandleResult,proto3" json:"HandleResult,omitempty"` } -func (dst *GetGroupApplicationList_Data_User) XXX_Merge(src proto.Message) { - xxx_messageInfo_GetGroupApplicationList_Data_User.Merge(dst, src) + +func (x *GetGroupApplicationList_Data_User) Reset() { + *x = GetGroupApplicationList_Data_User{} + if protoimpl.UnsafeEnabled { + mi := &file_group_group_proto_msgTypes[8] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *GetGroupApplicationList_Data_User) XXX_Size() int { - return xxx_messageInfo_GetGroupApplicationList_Data_User.Size(m) + +func (x *GetGroupApplicationList_Data_User) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *GetGroupApplicationList_Data_User) XXX_DiscardUnknown() { - xxx_messageInfo_GetGroupApplicationList_Data_User.DiscardUnknown(m) + +func (*GetGroupApplicationList_Data_User) ProtoMessage() {} + +func (x *GetGroupApplicationList_Data_User) ProtoReflect() protoreflect.Message { + mi := &file_group_group_proto_msgTypes[8] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) } -var xxx_messageInfo_GetGroupApplicationList_Data_User proto.InternalMessageInfo +// Deprecated: Use GetGroupApplicationList_Data_User.ProtoReflect.Descriptor instead. +func (*GetGroupApplicationList_Data_User) Descriptor() ([]byte, []int) { + return file_group_group_proto_rawDescGZIP(), []int{8} +} -func (m *GetGroupApplicationList_Data_User) GetID() string { - if m != nil { - return m.ID +func (x *GetGroupApplicationList_Data_User) GetID() string { + if x != nil { + return x.ID } return "" } -func (m *GetGroupApplicationList_Data_User) GetGroupID() string { - if m != nil { - return m.GroupID +func (x *GetGroupApplicationList_Data_User) GetGroupID() string { + if x != nil { + return x.GroupID } return "" } -func (m *GetGroupApplicationList_Data_User) GetFromUserID() string { - if m != nil { - return m.FromUserID +func (x *GetGroupApplicationList_Data_User) GetFromUserID() string { + if x != nil { + return x.FromUserID } return "" } -func (m *GetGroupApplicationList_Data_User) GetToUserID() string { - if m != nil { - return m.ToUserID +func (x *GetGroupApplicationList_Data_User) GetToUserID() string { + if x != nil { + return x.ToUserID } return "" } -func (m *GetGroupApplicationList_Data_User) GetFlag() int32 { - if m != nil { - return m.Flag +func (x *GetGroupApplicationList_Data_User) GetFlag() int32 { + if x != nil { + return x.Flag } return 0 } -func (m *GetGroupApplicationList_Data_User) GetRequestMsg() string { - if m != nil { - return m.RequestMsg +func (x *GetGroupApplicationList_Data_User) GetRequestMsg() string { + if x != nil { + return x.RequestMsg } return "" } -func (m *GetGroupApplicationList_Data_User) GetHandledMsg() string { - if m != nil { - return m.HandledMsg +func (x *GetGroupApplicationList_Data_User) GetHandledMsg() string { + if x != nil { + return x.HandledMsg } return "" } -func (m *GetGroupApplicationList_Data_User) GetAddTime() int64 { - if m != nil { - return m.AddTime +func (x *GetGroupApplicationList_Data_User) GetAddTime() int64 { + if x != nil { + return x.AddTime } return 0 } -func (m *GetGroupApplicationList_Data_User) GetFromUserNickname() string { - if m != nil { - return m.FromUserNickname +func (x *GetGroupApplicationList_Data_User) GetFromUserNickname() string { + if x != nil { + return x.FromUserNickname } return "" } -func (m *GetGroupApplicationList_Data_User) GetToUserNickname() string { - if m != nil { - return m.ToUserNickname +func (x *GetGroupApplicationList_Data_User) GetToUserNickname() string { + if x != nil { + return x.ToUserNickname } return "" } -func (m *GetGroupApplicationList_Data_User) GetFromUserFaceUrl() string { - if m != nil { - return m.FromUserFaceUrl +func (x *GetGroupApplicationList_Data_User) GetFromUserFaceUrl() string { + if x != nil { + return x.FromUserFaceUrl } return "" } -func (m *GetGroupApplicationList_Data_User) GetToUserFaceUrl() string { - if m != nil { - return m.ToUserFaceUrl +func (x *GetGroupApplicationList_Data_User) GetToUserFaceUrl() string { + if x != nil { + return x.ToUserFaceUrl } return "" } -func (m *GetGroupApplicationList_Data_User) GetHandledUser() string { - if m != nil { - return m.HandledUser +func (x *GetGroupApplicationList_Data_User) GetHandledUser() string { + if x != nil { + return x.HandledUser } return "" } -func (m *GetGroupApplicationList_Data_User) GetType() int32 { - if m != nil { - return m.Type +func (x *GetGroupApplicationList_Data_User) GetType() int32 { + if x != nil { + return x.Type } return 0 } -func (m *GetGroupApplicationList_Data_User) GetHandleStatus() int32 { - if m != nil { - return m.HandleStatus +func (x *GetGroupApplicationList_Data_User) GetHandleStatus() int32 { + if x != nil { + return x.HandleStatus } return 0 } -func (m *GetGroupApplicationList_Data_User) GetHandleResult() int32 { - if m != nil { - return m.HandleResult +func (x *GetGroupApplicationList_Data_User) GetHandleResult() int32 { + if x != nil { + return x.HandleResult } return 0 } type GetGroupApplicationListData struct { - Count int32 `protobuf:"varint,1,opt,name=Count" json:"Count,omitempty"` - User []*GetGroupApplicationList_Data_User `protobuf:"bytes,2,rep,name=User" json:"User,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields -func (m *GetGroupApplicationListData) Reset() { *m = GetGroupApplicationListData{} } -func (m *GetGroupApplicationListData) String() string { return proto.CompactTextString(m) } -func (*GetGroupApplicationListData) ProtoMessage() {} -func (*GetGroupApplicationListData) Descriptor() ([]byte, []int) { - return fileDescriptor_group_9fd4d73937974f0d, []int{9} -} -func (m *GetGroupApplicationListData) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_GetGroupApplicationListData.Unmarshal(m, b) + Count int32 `protobuf:"varint,1,opt,name=Count,proto3" json:"Count,omitempty"` + User []*GetGroupApplicationList_Data_User `protobuf:"bytes,2,rep,name=User,proto3" json:"User,omitempty"` } -func (m *GetGroupApplicationListData) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_GetGroupApplicationListData.Marshal(b, m, deterministic) -} -func (dst *GetGroupApplicationListData) XXX_Merge(src proto.Message) { - xxx_messageInfo_GetGroupApplicationListData.Merge(dst, src) + +func (x *GetGroupApplicationListData) Reset() { + *x = GetGroupApplicationListData{} + if protoimpl.UnsafeEnabled { + mi := &file_group_group_proto_msgTypes[9] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *GetGroupApplicationListData) XXX_Size() int { - return xxx_messageInfo_GetGroupApplicationListData.Size(m) + +func (x *GetGroupApplicationListData) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *GetGroupApplicationListData) XXX_DiscardUnknown() { - xxx_messageInfo_GetGroupApplicationListData.DiscardUnknown(m) + +func (*GetGroupApplicationListData) ProtoMessage() {} + +func (x *GetGroupApplicationListData) ProtoReflect() protoreflect.Message { + mi := &file_group_group_proto_msgTypes[9] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) } -var xxx_messageInfo_GetGroupApplicationListData proto.InternalMessageInfo +// Deprecated: Use GetGroupApplicationListData.ProtoReflect.Descriptor instead. +func (*GetGroupApplicationListData) Descriptor() ([]byte, []int) { + return file_group_group_proto_rawDescGZIP(), []int{9} +} -func (m *GetGroupApplicationListData) GetCount() int32 { - if m != nil { - return m.Count +func (x *GetGroupApplicationListData) GetCount() int32 { + if x != nil { + return x.Count } return 0 } -func (m *GetGroupApplicationListData) GetUser() []*GetGroupApplicationList_Data_User { - if m != nil { - return m.User +func (x *GetGroupApplicationListData) GetUser() []*GetGroupApplicationList_Data_User { + if x != nil { + return x.User } return nil } type GetGroupApplicationListResp struct { - ErrCode int32 `protobuf:"varint,1,opt,name=ErrCode" json:"ErrCode,omitempty"` - ErrMsg string `protobuf:"bytes,2,opt,name=ErrMsg" json:"ErrMsg,omitempty"` - Data *GetGroupApplicationListData `protobuf:"bytes,3,opt,name=Data" json:"Data,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields -func (m *GetGroupApplicationListResp) Reset() { *m = GetGroupApplicationListResp{} } -func (m *GetGroupApplicationListResp) String() string { return proto.CompactTextString(m) } -func (*GetGroupApplicationListResp) ProtoMessage() {} -func (*GetGroupApplicationListResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_9fd4d73937974f0d, []int{10} -} -func (m *GetGroupApplicationListResp) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_GetGroupApplicationListResp.Unmarshal(m, b) + ErrCode int32 `protobuf:"varint,1,opt,name=ErrCode,proto3" json:"ErrCode,omitempty"` + ErrMsg string `protobuf:"bytes,2,opt,name=ErrMsg,proto3" json:"ErrMsg,omitempty"` + Data *GetGroupApplicationListData `protobuf:"bytes,3,opt,name=Data,proto3" json:"Data,omitempty"` } -func (m *GetGroupApplicationListResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_GetGroupApplicationListResp.Marshal(b, m, deterministic) -} -func (dst *GetGroupApplicationListResp) XXX_Merge(src proto.Message) { - xxx_messageInfo_GetGroupApplicationListResp.Merge(dst, src) + +func (x *GetGroupApplicationListResp) Reset() { + *x = GetGroupApplicationListResp{} + if protoimpl.UnsafeEnabled { + mi := &file_group_group_proto_msgTypes[10] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *GetGroupApplicationListResp) XXX_Size() int { - return xxx_messageInfo_GetGroupApplicationListResp.Size(m) + +func (x *GetGroupApplicationListResp) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *GetGroupApplicationListResp) XXX_DiscardUnknown() { - xxx_messageInfo_GetGroupApplicationListResp.DiscardUnknown(m) + +func (*GetGroupApplicationListResp) ProtoMessage() {} + +func (x *GetGroupApplicationListResp) ProtoReflect() protoreflect.Message { + mi := &file_group_group_proto_msgTypes[10] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) } -var xxx_messageInfo_GetGroupApplicationListResp proto.InternalMessageInfo +// Deprecated: Use GetGroupApplicationListResp.ProtoReflect.Descriptor instead. +func (*GetGroupApplicationListResp) Descriptor() ([]byte, []int) { + return file_group_group_proto_rawDescGZIP(), []int{10} +} -func (m *GetGroupApplicationListResp) GetErrCode() int32 { - if m != nil { - return m.ErrCode +func (x *GetGroupApplicationListResp) GetErrCode() int32 { + if x != nil { + return x.ErrCode } return 0 } -func (m *GetGroupApplicationListResp) GetErrMsg() string { - if m != nil { - return m.ErrMsg +func (x *GetGroupApplicationListResp) GetErrMsg() string { + if x != nil { + return x.ErrMsg } return "" } -func (m *GetGroupApplicationListResp) GetData() *GetGroupApplicationListData { - if m != nil { - return m.Data +func (x *GetGroupApplicationListResp) GetData() *GetGroupApplicationListData { + if x != nil { + return x.Data } return nil } type TransferGroupOwnerReq struct { - GroupID string `protobuf:"bytes,1,opt,name=GroupID" json:"GroupID,omitempty"` - OldOwner string `protobuf:"bytes,2,opt,name=OldOwner" json:"OldOwner,omitempty"` - NewOwner string `protobuf:"bytes,3,opt,name=NewOwner" json:"NewOwner,omitempty"` - OperationID string `protobuf:"bytes,4,opt,name=OperationID" json:"OperationID,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *TransferGroupOwnerReq) Reset() { *m = TransferGroupOwnerReq{} } -func (m *TransferGroupOwnerReq) String() string { return proto.CompactTextString(m) } -func (*TransferGroupOwnerReq) ProtoMessage() {} -func (*TransferGroupOwnerReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_9fd4d73937974f0d, []int{11} -} -func (m *TransferGroupOwnerReq) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_TransferGroupOwnerReq.Unmarshal(m, b) -} -func (m *TransferGroupOwnerReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_TransferGroupOwnerReq.Marshal(b, m, deterministic) + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + GroupID string `protobuf:"bytes,1,opt,name=GroupID,proto3" json:"GroupID,omitempty"` + OldOwner string `protobuf:"bytes,2,opt,name=OldOwner,proto3" json:"OldOwner,omitempty"` + NewOwner string `protobuf:"bytes,3,opt,name=NewOwner,proto3" json:"NewOwner,omitempty"` + OperationID string `protobuf:"bytes,4,opt,name=OperationID,proto3" json:"OperationID,omitempty"` } -func (dst *TransferGroupOwnerReq) XXX_Merge(src proto.Message) { - xxx_messageInfo_TransferGroupOwnerReq.Merge(dst, src) + +func (x *TransferGroupOwnerReq) Reset() { + *x = TransferGroupOwnerReq{} + if protoimpl.UnsafeEnabled { + mi := &file_group_group_proto_msgTypes[11] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *TransferGroupOwnerReq) XXX_Size() int { - return xxx_messageInfo_TransferGroupOwnerReq.Size(m) + +func (x *TransferGroupOwnerReq) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *TransferGroupOwnerReq) XXX_DiscardUnknown() { - xxx_messageInfo_TransferGroupOwnerReq.DiscardUnknown(m) + +func (*TransferGroupOwnerReq) ProtoMessage() {} + +func (x *TransferGroupOwnerReq) ProtoReflect() protoreflect.Message { + mi := &file_group_group_proto_msgTypes[11] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) } -var xxx_messageInfo_TransferGroupOwnerReq proto.InternalMessageInfo +// Deprecated: Use TransferGroupOwnerReq.ProtoReflect.Descriptor instead. +func (*TransferGroupOwnerReq) Descriptor() ([]byte, []int) { + return file_group_group_proto_rawDescGZIP(), []int{11} +} -func (m *TransferGroupOwnerReq) GetGroupID() string { - if m != nil { - return m.GroupID +func (x *TransferGroupOwnerReq) GetGroupID() string { + if x != nil { + return x.GroupID } return "" } -func (m *TransferGroupOwnerReq) GetOldOwner() string { - if m != nil { - return m.OldOwner +func (x *TransferGroupOwnerReq) GetOldOwner() string { + if x != nil { + return x.OldOwner } return "" } -func (m *TransferGroupOwnerReq) GetNewOwner() string { - if m != nil { - return m.NewOwner +func (x *TransferGroupOwnerReq) GetNewOwner() string { + if x != nil { + return x.NewOwner } return "" } -func (m *TransferGroupOwnerReq) GetOperationID() string { - if m != nil { - return m.OperationID +func (x *TransferGroupOwnerReq) GetOperationID() string { + if x != nil { + return x.OperationID } return "" } type TransferGroupOwnerResp struct { - ErrCode int32 `protobuf:"varint,1,opt,name=ErrCode" json:"ErrCode,omitempty"` - ErrMsg string `protobuf:"bytes,2,opt,name=ErrMsg" json:"ErrMsg,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields -func (m *TransferGroupOwnerResp) Reset() { *m = TransferGroupOwnerResp{} } -func (m *TransferGroupOwnerResp) String() string { return proto.CompactTextString(m) } -func (*TransferGroupOwnerResp) ProtoMessage() {} -func (*TransferGroupOwnerResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_9fd4d73937974f0d, []int{12} -} -func (m *TransferGroupOwnerResp) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_TransferGroupOwnerResp.Unmarshal(m, b) + ErrCode int32 `protobuf:"varint,1,opt,name=ErrCode,proto3" json:"ErrCode,omitempty"` + ErrMsg string `protobuf:"bytes,2,opt,name=ErrMsg,proto3" json:"ErrMsg,omitempty"` } -func (m *TransferGroupOwnerResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_TransferGroupOwnerResp.Marshal(b, m, deterministic) -} -func (dst *TransferGroupOwnerResp) XXX_Merge(src proto.Message) { - xxx_messageInfo_TransferGroupOwnerResp.Merge(dst, src) + +func (x *TransferGroupOwnerResp) Reset() { + *x = TransferGroupOwnerResp{} + if protoimpl.UnsafeEnabled { + mi := &file_group_group_proto_msgTypes[12] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *TransferGroupOwnerResp) XXX_Size() int { - return xxx_messageInfo_TransferGroupOwnerResp.Size(m) + +func (x *TransferGroupOwnerResp) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *TransferGroupOwnerResp) XXX_DiscardUnknown() { - xxx_messageInfo_TransferGroupOwnerResp.DiscardUnknown(m) + +func (*TransferGroupOwnerResp) ProtoMessage() {} + +func (x *TransferGroupOwnerResp) ProtoReflect() protoreflect.Message { + mi := &file_group_group_proto_msgTypes[12] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) } -var xxx_messageInfo_TransferGroupOwnerResp proto.InternalMessageInfo +// Deprecated: Use TransferGroupOwnerResp.ProtoReflect.Descriptor instead. +func (*TransferGroupOwnerResp) Descriptor() ([]byte, []int) { + return file_group_group_proto_rawDescGZIP(), []int{12} +} -func (m *TransferGroupOwnerResp) GetErrCode() int32 { - if m != nil { - return m.ErrCode +func (x *TransferGroupOwnerResp) GetErrCode() int32 { + if x != nil { + return x.ErrCode } return 0 } -func (m *TransferGroupOwnerResp) GetErrMsg() string { - if m != nil { - return m.ErrMsg +func (x *TransferGroupOwnerResp) GetErrMsg() string { + if x != nil { + return x.ErrMsg } return "" } type JoinGroupReq struct { - GroupID string `protobuf:"bytes,1,opt,name=groupID" json:"groupID,omitempty"` - Message string `protobuf:"bytes,2,opt,name=message" json:"message,omitempty"` - Token string `protobuf:"bytes,3,opt,name=token" json:"token,omitempty"` - OperationID string `protobuf:"bytes,4,opt,name=OperationID" json:"OperationID,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *JoinGroupReq) Reset() { *m = JoinGroupReq{} } -func (m *JoinGroupReq) String() string { return proto.CompactTextString(m) } -func (*JoinGroupReq) ProtoMessage() {} -func (*JoinGroupReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_9fd4d73937974f0d, []int{13} -} -func (m *JoinGroupReq) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_JoinGroupReq.Unmarshal(m, b) -} -func (m *JoinGroupReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_JoinGroupReq.Marshal(b, m, deterministic) + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + GroupID string `protobuf:"bytes,1,opt,name=groupID,proto3" json:"groupID,omitempty"` + Message string `protobuf:"bytes,2,opt,name=message,proto3" json:"message,omitempty"` + Token string `protobuf:"bytes,3,opt,name=token,proto3" json:"token,omitempty"` + OperationID string `protobuf:"bytes,4,opt,name=OperationID,proto3" json:"OperationID,omitempty"` } -func (dst *JoinGroupReq) XXX_Merge(src proto.Message) { - xxx_messageInfo_JoinGroupReq.Merge(dst, src) + +func (x *JoinGroupReq) Reset() { + *x = JoinGroupReq{} + if protoimpl.UnsafeEnabled { + mi := &file_group_group_proto_msgTypes[13] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *JoinGroupReq) XXX_Size() int { - return xxx_messageInfo_JoinGroupReq.Size(m) + +func (x *JoinGroupReq) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *JoinGroupReq) XXX_DiscardUnknown() { - xxx_messageInfo_JoinGroupReq.DiscardUnknown(m) + +func (*JoinGroupReq) ProtoMessage() {} + +func (x *JoinGroupReq) ProtoReflect() protoreflect.Message { + mi := &file_group_group_proto_msgTypes[13] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) } -var xxx_messageInfo_JoinGroupReq proto.InternalMessageInfo +// Deprecated: Use JoinGroupReq.ProtoReflect.Descriptor instead. +func (*JoinGroupReq) Descriptor() ([]byte, []int) { + return file_group_group_proto_rawDescGZIP(), []int{13} +} -func (m *JoinGroupReq) GetGroupID() string { - if m != nil { - return m.GroupID +func (x *JoinGroupReq) GetGroupID() string { + if x != nil { + return x.GroupID } return "" } -func (m *JoinGroupReq) GetMessage() string { - if m != nil { - return m.Message +func (x *JoinGroupReq) GetMessage() string { + if x != nil { + return x.Message } return "" } -func (m *JoinGroupReq) GetToken() string { - if m != nil { - return m.Token +func (x *JoinGroupReq) GetToken() string { + if x != nil { + return x.Token } return "" } -func (m *JoinGroupReq) GetOperationID() string { - if m != nil { - return m.OperationID +func (x *JoinGroupReq) GetOperationID() string { + if x != nil { + return x.OperationID } return "" } type GroupApplicationResponseReq struct { - OperationID string `protobuf:"bytes,1,opt,name=OperationID" json:"OperationID,omitempty"` - OwnerID string `protobuf:"bytes,2,opt,name=OwnerID" json:"OwnerID,omitempty"` - GroupID string `protobuf:"bytes,3,opt,name=GroupID" json:"GroupID,omitempty"` - FromUserID string `protobuf:"bytes,4,opt,name=FromUserID" json:"FromUserID,omitempty"` - FromUserNickName string `protobuf:"bytes,5,opt,name=FromUserNickName" json:"FromUserNickName,omitempty"` - FromUserFaceUrl string `protobuf:"bytes,6,opt,name=FromUserFaceUrl" json:"FromUserFaceUrl,omitempty"` - ToUserID string `protobuf:"bytes,7,opt,name=ToUserID" json:"ToUserID,omitempty"` - ToUserNickName string `protobuf:"bytes,8,opt,name=ToUserNickName" json:"ToUserNickName,omitempty"` - ToUserFaceUrl string `protobuf:"bytes,9,opt,name=ToUserFaceUrl" json:"ToUserFaceUrl,omitempty"` - AddTime int64 `protobuf:"varint,10,opt,name=AddTime" json:"AddTime,omitempty"` - RequestMsg string `protobuf:"bytes,11,opt,name=RequestMsg" json:"RequestMsg,omitempty"` - HandledMsg string `protobuf:"bytes,12,opt,name=HandledMsg" json:"HandledMsg,omitempty"` - Type int32 `protobuf:"varint,13,opt,name=Type" json:"Type,omitempty"` - HandleStatus int32 `protobuf:"varint,14,opt,name=HandleStatus" json:"HandleStatus,omitempty"` - HandleResult int32 `protobuf:"varint,15,opt,name=HandleResult" json:"HandleResult,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *GroupApplicationResponseReq) Reset() { *m = GroupApplicationResponseReq{} } -func (m *GroupApplicationResponseReq) String() string { return proto.CompactTextString(m) } -func (*GroupApplicationResponseReq) ProtoMessage() {} -func (*GroupApplicationResponseReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_9fd4d73937974f0d, []int{14} -} -func (m *GroupApplicationResponseReq) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_GroupApplicationResponseReq.Unmarshal(m, b) -} -func (m *GroupApplicationResponseReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_GroupApplicationResponseReq.Marshal(b, m, deterministic) + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + OperationID string `protobuf:"bytes,1,opt,name=OperationID,proto3" json:"OperationID,omitempty"` + OwnerID string `protobuf:"bytes,2,opt,name=OwnerID,proto3" json:"OwnerID,omitempty"` + GroupID string `protobuf:"bytes,3,opt,name=GroupID,proto3" json:"GroupID,omitempty"` + FromUserID string `protobuf:"bytes,4,opt,name=FromUserID,proto3" json:"FromUserID,omitempty"` + FromUserNickName string `protobuf:"bytes,5,opt,name=FromUserNickName,proto3" json:"FromUserNickName,omitempty"` + FromUserFaceUrl string `protobuf:"bytes,6,opt,name=FromUserFaceUrl,proto3" json:"FromUserFaceUrl,omitempty"` + ToUserID string `protobuf:"bytes,7,opt,name=ToUserID,proto3" json:"ToUserID,omitempty"` + ToUserNickName string `protobuf:"bytes,8,opt,name=ToUserNickName,proto3" json:"ToUserNickName,omitempty"` + ToUserFaceUrl string `protobuf:"bytes,9,opt,name=ToUserFaceUrl,proto3" json:"ToUserFaceUrl,omitempty"` + AddTime int64 `protobuf:"varint,10,opt,name=AddTime,proto3" json:"AddTime,omitempty"` + RequestMsg string `protobuf:"bytes,11,opt,name=RequestMsg,proto3" json:"RequestMsg,omitempty"` + HandledMsg string `protobuf:"bytes,12,opt,name=HandledMsg,proto3" json:"HandledMsg,omitempty"` + Type int32 `protobuf:"varint,13,opt,name=Type,proto3" json:"Type,omitempty"` + HandleStatus int32 `protobuf:"varint,14,opt,name=HandleStatus,proto3" json:"HandleStatus,omitempty"` + HandleResult int32 `protobuf:"varint,15,opt,name=HandleResult,proto3" json:"HandleResult,omitempty"` } -func (dst *GroupApplicationResponseReq) XXX_Merge(src proto.Message) { - xxx_messageInfo_GroupApplicationResponseReq.Merge(dst, src) + +func (x *GroupApplicationResponseReq) Reset() { + *x = GroupApplicationResponseReq{} + if protoimpl.UnsafeEnabled { + mi := &file_group_group_proto_msgTypes[14] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *GroupApplicationResponseReq) XXX_Size() int { - return xxx_messageInfo_GroupApplicationResponseReq.Size(m) + +func (x *GroupApplicationResponseReq) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *GroupApplicationResponseReq) XXX_DiscardUnknown() { - xxx_messageInfo_GroupApplicationResponseReq.DiscardUnknown(m) + +func (*GroupApplicationResponseReq) ProtoMessage() {} + +func (x *GroupApplicationResponseReq) ProtoReflect() protoreflect.Message { + mi := &file_group_group_proto_msgTypes[14] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) } -var xxx_messageInfo_GroupApplicationResponseReq proto.InternalMessageInfo +// Deprecated: Use GroupApplicationResponseReq.ProtoReflect.Descriptor instead. +func (*GroupApplicationResponseReq) Descriptor() ([]byte, []int) { + return file_group_group_proto_rawDescGZIP(), []int{14} +} -func (m *GroupApplicationResponseReq) GetOperationID() string { - if m != nil { - return m.OperationID +func (x *GroupApplicationResponseReq) GetOperationID() string { + if x != nil { + return x.OperationID } return "" } -func (m *GroupApplicationResponseReq) GetOwnerID() string { - if m != nil { - return m.OwnerID +func (x *GroupApplicationResponseReq) GetOwnerID() string { + if x != nil { + return x.OwnerID } return "" } -func (m *GroupApplicationResponseReq) GetGroupID() string { - if m != nil { - return m.GroupID +func (x *GroupApplicationResponseReq) GetGroupID() string { + if x != nil { + return x.GroupID } return "" } -func (m *GroupApplicationResponseReq) GetFromUserID() string { - if m != nil { - return m.FromUserID +func (x *GroupApplicationResponseReq) GetFromUserID() string { + if x != nil { + return x.FromUserID } return "" } -func (m *GroupApplicationResponseReq) GetFromUserNickName() string { - if m != nil { - return m.FromUserNickName +func (x *GroupApplicationResponseReq) GetFromUserNickName() string { + if x != nil { + return x.FromUserNickName } return "" } -func (m *GroupApplicationResponseReq) GetFromUserFaceUrl() string { - if m != nil { - return m.FromUserFaceUrl +func (x *GroupApplicationResponseReq) GetFromUserFaceUrl() string { + if x != nil { + return x.FromUserFaceUrl } return "" } -func (m *GroupApplicationResponseReq) GetToUserID() string { - if m != nil { - return m.ToUserID +func (x *GroupApplicationResponseReq) GetToUserID() string { + if x != nil { + return x.ToUserID } return "" } -func (m *GroupApplicationResponseReq) GetToUserNickName() string { - if m != nil { - return m.ToUserNickName +func (x *GroupApplicationResponseReq) GetToUserNickName() string { + if x != nil { + return x.ToUserNickName } return "" } -func (m *GroupApplicationResponseReq) GetToUserFaceUrl() string { - if m != nil { - return m.ToUserFaceUrl +func (x *GroupApplicationResponseReq) GetToUserFaceUrl() string { + if x != nil { + return x.ToUserFaceUrl } return "" } -func (m *GroupApplicationResponseReq) GetAddTime() int64 { - if m != nil { - return m.AddTime +func (x *GroupApplicationResponseReq) GetAddTime() int64 { + if x != nil { + return x.AddTime } return 0 } -func (m *GroupApplicationResponseReq) GetRequestMsg() string { - if m != nil { - return m.RequestMsg +func (x *GroupApplicationResponseReq) GetRequestMsg() string { + if x != nil { + return x.RequestMsg } return "" } -func (m *GroupApplicationResponseReq) GetHandledMsg() string { - if m != nil { - return m.HandledMsg +func (x *GroupApplicationResponseReq) GetHandledMsg() string { + if x != nil { + return x.HandledMsg } return "" } -func (m *GroupApplicationResponseReq) GetType() int32 { - if m != nil { - return m.Type +func (x *GroupApplicationResponseReq) GetType() int32 { + if x != nil { + return x.Type } return 0 } -func (m *GroupApplicationResponseReq) GetHandleStatus() int32 { - if m != nil { - return m.HandleStatus +func (x *GroupApplicationResponseReq) GetHandleStatus() int32 { + if x != nil { + return x.HandleStatus } return 0 } -func (m *GroupApplicationResponseReq) GetHandleResult() int32 { - if m != nil { - return m.HandleResult +func (x *GroupApplicationResponseReq) GetHandleResult() int32 { + if x != nil { + return x.HandleResult } return 0 } type GroupApplicationResponseResp 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:"-"` -} + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields -func (m *GroupApplicationResponseResp) Reset() { *m = GroupApplicationResponseResp{} } -func (m *GroupApplicationResponseResp) String() string { return proto.CompactTextString(m) } -func (*GroupApplicationResponseResp) ProtoMessage() {} -func (*GroupApplicationResponseResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_9fd4d73937974f0d, []int{15} -} -func (m *GroupApplicationResponseResp) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_GroupApplicationResponseResp.Unmarshal(m, b) + ErrCode int32 `protobuf:"varint,1,opt,name=ErrCode,proto3" json:"ErrCode,omitempty"` + ErrMsg string `protobuf:"bytes,2,opt,name=ErrMsg,proto3" json:"ErrMsg,omitempty"` } -func (m *GroupApplicationResponseResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_GroupApplicationResponseResp.Marshal(b, m, deterministic) -} -func (dst *GroupApplicationResponseResp) XXX_Merge(src proto.Message) { - xxx_messageInfo_GroupApplicationResponseResp.Merge(dst, src) + +func (x *GroupApplicationResponseResp) Reset() { + *x = GroupApplicationResponseResp{} + if protoimpl.UnsafeEnabled { + mi := &file_group_group_proto_msgTypes[15] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *GroupApplicationResponseResp) XXX_Size() int { - return xxx_messageInfo_GroupApplicationResponseResp.Size(m) + +func (x *GroupApplicationResponseResp) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *GroupApplicationResponseResp) XXX_DiscardUnknown() { - xxx_messageInfo_GroupApplicationResponseResp.DiscardUnknown(m) + +func (*GroupApplicationResponseResp) ProtoMessage() {} + +func (x *GroupApplicationResponseResp) ProtoReflect() protoreflect.Message { + mi := &file_group_group_proto_msgTypes[15] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) } -var xxx_messageInfo_GroupApplicationResponseResp proto.InternalMessageInfo +// Deprecated: Use GroupApplicationResponseResp.ProtoReflect.Descriptor instead. +func (*GroupApplicationResponseResp) Descriptor() ([]byte, []int) { + return file_group_group_proto_rawDescGZIP(), []int{15} +} -func (m *GroupApplicationResponseResp) GetErrCode() int32 { - if m != nil { - return m.ErrCode +func (x *GroupApplicationResponseResp) GetErrCode() int32 { + if x != nil { + return x.ErrCode } return 0 } -func (m *GroupApplicationResponseResp) GetErrMsg() string { - if m != nil { - return m.ErrMsg +func (x *GroupApplicationResponseResp) GetErrMsg() string { + if x != nil { + return x.ErrMsg } return "" } type SetOwnerGroupNickNameReq struct { - GroupID string `protobuf:"bytes,1,opt,name=groupID" json:"groupID,omitempty"` - NickName string `protobuf:"bytes,2,opt,name=nickName" json:"nickName,omitempty"` - OperationID string `protobuf:"bytes,3,opt,name=OperationID" json:"OperationID,omitempty"` - Token string `protobuf:"bytes,4,opt,name=token" json:"token,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *SetOwnerGroupNickNameReq) Reset() { *m = SetOwnerGroupNickNameReq{} } -func (m *SetOwnerGroupNickNameReq) String() string { return proto.CompactTextString(m) } -func (*SetOwnerGroupNickNameReq) ProtoMessage() {} -func (*SetOwnerGroupNickNameReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_9fd4d73937974f0d, []int{16} -} -func (m *SetOwnerGroupNickNameReq) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_SetOwnerGroupNickNameReq.Unmarshal(m, b) -} -func (m *SetOwnerGroupNickNameReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_SetOwnerGroupNickNameReq.Marshal(b, m, deterministic) + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + GroupID string `protobuf:"bytes,1,opt,name=groupID,proto3" json:"groupID,omitempty"` + NickName string `protobuf:"bytes,2,opt,name=nickName,proto3" json:"nickName,omitempty"` + OperationID string `protobuf:"bytes,3,opt,name=OperationID,proto3" json:"OperationID,omitempty"` + Token string `protobuf:"bytes,4,opt,name=token,proto3" json:"token,omitempty"` } -func (dst *SetOwnerGroupNickNameReq) XXX_Merge(src proto.Message) { - xxx_messageInfo_SetOwnerGroupNickNameReq.Merge(dst, src) + +func (x *SetOwnerGroupNickNameReq) Reset() { + *x = SetOwnerGroupNickNameReq{} + if protoimpl.UnsafeEnabled { + mi := &file_group_group_proto_msgTypes[16] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *SetOwnerGroupNickNameReq) XXX_Size() int { - return xxx_messageInfo_SetOwnerGroupNickNameReq.Size(m) + +func (x *SetOwnerGroupNickNameReq) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *SetOwnerGroupNickNameReq) XXX_DiscardUnknown() { - xxx_messageInfo_SetOwnerGroupNickNameReq.DiscardUnknown(m) + +func (*SetOwnerGroupNickNameReq) ProtoMessage() {} + +func (x *SetOwnerGroupNickNameReq) ProtoReflect() protoreflect.Message { + mi := &file_group_group_proto_msgTypes[16] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) } -var xxx_messageInfo_SetOwnerGroupNickNameReq proto.InternalMessageInfo +// Deprecated: Use SetOwnerGroupNickNameReq.ProtoReflect.Descriptor instead. +func (*SetOwnerGroupNickNameReq) Descriptor() ([]byte, []int) { + return file_group_group_proto_rawDescGZIP(), []int{16} +} -func (m *SetOwnerGroupNickNameReq) GetGroupID() string { - if m != nil { - return m.GroupID +func (x *SetOwnerGroupNickNameReq) GetGroupID() string { + if x != nil { + return x.GroupID } return "" } -func (m *SetOwnerGroupNickNameReq) GetNickName() string { - if m != nil { - return m.NickName +func (x *SetOwnerGroupNickNameReq) GetNickName() string { + if x != nil { + return x.NickName } return "" } -func (m *SetOwnerGroupNickNameReq) GetOperationID() string { - if m != nil { - return m.OperationID +func (x *SetOwnerGroupNickNameReq) GetOperationID() string { + if x != nil { + return x.OperationID } return "" } -func (m *SetOwnerGroupNickNameReq) GetToken() string { - if m != nil { - return m.Token +func (x *SetOwnerGroupNickNameReq) GetToken() string { + if x != nil { + return x.Token } return "" } type QuitGroupReq struct { - GroupID string `protobuf:"bytes,1,opt,name=groupID" json:"groupID,omitempty"` - OperationID string `protobuf:"bytes,2,opt,name=operationID" json:"operationID,omitempty"` - Token string `protobuf:"bytes,3,opt,name=token" json:"token,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields -func (m *QuitGroupReq) Reset() { *m = QuitGroupReq{} } -func (m *QuitGroupReq) String() string { return proto.CompactTextString(m) } -func (*QuitGroupReq) ProtoMessage() {} -func (*QuitGroupReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_9fd4d73937974f0d, []int{17} -} -func (m *QuitGroupReq) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_QuitGroupReq.Unmarshal(m, b) + GroupID string `protobuf:"bytes,1,opt,name=groupID,proto3" json:"groupID,omitempty"` + OperationID string `protobuf:"bytes,2,opt,name=operationID,proto3" json:"operationID,omitempty"` + Token string `protobuf:"bytes,3,opt,name=token,proto3" json:"token,omitempty"` } -func (m *QuitGroupReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_QuitGroupReq.Marshal(b, m, deterministic) -} -func (dst *QuitGroupReq) XXX_Merge(src proto.Message) { - xxx_messageInfo_QuitGroupReq.Merge(dst, src) + +func (x *QuitGroupReq) Reset() { + *x = QuitGroupReq{} + if protoimpl.UnsafeEnabled { + mi := &file_group_group_proto_msgTypes[17] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *QuitGroupReq) XXX_Size() int { - return xxx_messageInfo_QuitGroupReq.Size(m) + +func (x *QuitGroupReq) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *QuitGroupReq) XXX_DiscardUnknown() { - xxx_messageInfo_QuitGroupReq.DiscardUnknown(m) + +func (*QuitGroupReq) ProtoMessage() {} + +func (x *QuitGroupReq) ProtoReflect() protoreflect.Message { + mi := &file_group_group_proto_msgTypes[17] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) } -var xxx_messageInfo_QuitGroupReq proto.InternalMessageInfo +// Deprecated: Use QuitGroupReq.ProtoReflect.Descriptor instead. +func (*QuitGroupReq) Descriptor() ([]byte, []int) { + return file_group_group_proto_rawDescGZIP(), []int{17} +} -func (m *QuitGroupReq) GetGroupID() string { - if m != nil { - return m.GroupID +func (x *QuitGroupReq) GetGroupID() string { + if x != nil { + return x.GroupID } return "" } -func (m *QuitGroupReq) GetOperationID() string { - if m != nil { - return m.OperationID +func (x *QuitGroupReq) GetOperationID() string { + if x != nil { + return x.OperationID } return "" } -func (m *QuitGroupReq) GetToken() string { - if m != nil { - return m.Token +func (x *QuitGroupReq) GetToken() string { + if x != nil { + return x.Token } return "" } type GroupApplicationUserInfo struct { - GroupID string `protobuf:"bytes,1,opt,name=groupID" json:"groupID,omitempty"` - Uid string `protobuf:"bytes,2,opt,name=uid" json:"uid,omitempty"` - Name string `protobuf:"bytes,3,opt,name=name" json:"name,omitempty"` - Icon string `protobuf:"bytes,4,opt,name=icon" json:"icon,omitempty"` - ReqMsg string `protobuf:"bytes,5,opt,name=reqMsg" json:"reqMsg,omitempty"` - ApplicationTime int64 `protobuf:"varint,6,opt,name=applicationTime" json:"applicationTime,omitempty"` - Flag int32 `protobuf:"varint,7,opt,name=flag" json:"flag,omitempty"` - OperatorID string `protobuf:"bytes,8,opt,name=operatorID" json:"operatorID,omitempty"` - HandledMsg string `protobuf:"bytes,9,opt,name=handledMsg" json:"handledMsg,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *GroupApplicationUserInfo) Reset() { *m = GroupApplicationUserInfo{} } -func (m *GroupApplicationUserInfo) String() string { return proto.CompactTextString(m) } -func (*GroupApplicationUserInfo) ProtoMessage() {} -func (*GroupApplicationUserInfo) Descriptor() ([]byte, []int) { - return fileDescriptor_group_9fd4d73937974f0d, []int{18} -} -func (m *GroupApplicationUserInfo) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_GroupApplicationUserInfo.Unmarshal(m, b) -} -func (m *GroupApplicationUserInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_GroupApplicationUserInfo.Marshal(b, m, deterministic) + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + GroupID string `protobuf:"bytes,1,opt,name=groupID,proto3" json:"groupID,omitempty"` + Uid string `protobuf:"bytes,2,opt,name=uid,proto3" json:"uid,omitempty"` + Name string `protobuf:"bytes,3,opt,name=name,proto3" json:"name,omitempty"` + Icon string `protobuf:"bytes,4,opt,name=icon,proto3" json:"icon,omitempty"` + ReqMsg string `protobuf:"bytes,5,opt,name=reqMsg,proto3" json:"reqMsg,omitempty"` + ApplicationTime int64 `protobuf:"varint,6,opt,name=applicationTime,proto3" json:"applicationTime,omitempty"` + Flag int32 `protobuf:"varint,7,opt,name=flag,proto3" json:"flag,omitempty"` + OperatorID string `protobuf:"bytes,8,opt,name=operatorID,proto3" json:"operatorID,omitempty"` + HandledMsg string `protobuf:"bytes,9,opt,name=handledMsg,proto3" json:"handledMsg,omitempty"` } -func (dst *GroupApplicationUserInfo) XXX_Merge(src proto.Message) { - xxx_messageInfo_GroupApplicationUserInfo.Merge(dst, src) + +func (x *GroupApplicationUserInfo) Reset() { + *x = GroupApplicationUserInfo{} + if protoimpl.UnsafeEnabled { + mi := &file_group_group_proto_msgTypes[18] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *GroupApplicationUserInfo) XXX_Size() int { - return xxx_messageInfo_GroupApplicationUserInfo.Size(m) + +func (x *GroupApplicationUserInfo) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *GroupApplicationUserInfo) XXX_DiscardUnknown() { - xxx_messageInfo_GroupApplicationUserInfo.DiscardUnknown(m) + +func (*GroupApplicationUserInfo) ProtoMessage() {} + +func (x *GroupApplicationUserInfo) ProtoReflect() protoreflect.Message { + mi := &file_group_group_proto_msgTypes[18] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) } -var xxx_messageInfo_GroupApplicationUserInfo proto.InternalMessageInfo +// Deprecated: Use GroupApplicationUserInfo.ProtoReflect.Descriptor instead. +func (*GroupApplicationUserInfo) Descriptor() ([]byte, []int) { + return file_group_group_proto_rawDescGZIP(), []int{18} +} -func (m *GroupApplicationUserInfo) GetGroupID() string { - if m != nil { - return m.GroupID +func (x *GroupApplicationUserInfo) GetGroupID() string { + if x != nil { + return x.GroupID } return "" } -func (m *GroupApplicationUserInfo) GetUid() string { - if m != nil { - return m.Uid +func (x *GroupApplicationUserInfo) GetUid() string { + if x != nil { + return x.Uid } return "" } -func (m *GroupApplicationUserInfo) GetName() string { - if m != nil { - return m.Name +func (x *GroupApplicationUserInfo) GetName() string { + if x != nil { + return x.Name } return "" } -func (m *GroupApplicationUserInfo) GetIcon() string { - if m != nil { - return m.Icon +func (x *GroupApplicationUserInfo) GetIcon() string { + if x != nil { + return x.Icon } return "" } -func (m *GroupApplicationUserInfo) GetReqMsg() string { - if m != nil { - return m.ReqMsg +func (x *GroupApplicationUserInfo) GetReqMsg() string { + if x != nil { + return x.ReqMsg } return "" } -func (m *GroupApplicationUserInfo) GetApplicationTime() int64 { - if m != nil { - return m.ApplicationTime +func (x *GroupApplicationUserInfo) GetApplicationTime() int64 { + if x != nil { + return x.ApplicationTime } return 0 } -func (m *GroupApplicationUserInfo) GetFlag() int32 { - if m != nil { - return m.Flag +func (x *GroupApplicationUserInfo) GetFlag() int32 { + if x != nil { + return x.Flag } return 0 } -func (m *GroupApplicationUserInfo) GetOperatorID() string { - if m != nil { - return m.OperatorID +func (x *GroupApplicationUserInfo) GetOperatorID() string { + if x != nil { + return x.OperatorID } return "" } -func (m *GroupApplicationUserInfo) GetHandledMsg() string { - if m != nil { - return m.HandledMsg +func (x *GroupApplicationUserInfo) GetHandledMsg() string { + if x != nil { + return x.HandledMsg } return "" } type GroupMemberFullInfo struct { - UserId string `protobuf:"bytes,1,opt,name=userId" json:"userId,omitempty"` - Role int32 `protobuf:"varint,2,opt,name=role" json:"role,omitempty"` - JoinTime uint64 `protobuf:"varint,3,opt,name=joinTime" json:"joinTime,omitempty"` - NickName string `protobuf:"bytes,4,opt,name=nickName" json:"nickName,omitempty"` - FaceUrl string `protobuf:"bytes,5,opt,name=faceUrl" json:"faceUrl,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *GroupMemberFullInfo) Reset() { *m = GroupMemberFullInfo{} } -func (m *GroupMemberFullInfo) String() string { return proto.CompactTextString(m) } -func (*GroupMemberFullInfo) ProtoMessage() {} -func (*GroupMemberFullInfo) Descriptor() ([]byte, []int) { - return fileDescriptor_group_9fd4d73937974f0d, []int{19} -} -func (m *GroupMemberFullInfo) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_GroupMemberFullInfo.Unmarshal(m, b) -} -func (m *GroupMemberFullInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_GroupMemberFullInfo.Marshal(b, m, deterministic) + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + UserId string `protobuf:"bytes,1,opt,name=userId,proto3" json:"userId,omitempty"` + Role int32 `protobuf:"varint,2,opt,name=role,proto3" json:"role,omitempty"` + JoinTime uint64 `protobuf:"varint,3,opt,name=joinTime,proto3" json:"joinTime,omitempty"` + NickName string `protobuf:"bytes,4,opt,name=nickName,proto3" json:"nickName,omitempty"` + FaceUrl string `protobuf:"bytes,5,opt,name=faceUrl,proto3" json:"faceUrl,omitempty"` } -func (dst *GroupMemberFullInfo) XXX_Merge(src proto.Message) { - xxx_messageInfo_GroupMemberFullInfo.Merge(dst, src) + +func (x *GroupMemberFullInfo) Reset() { + *x = GroupMemberFullInfo{} + if protoimpl.UnsafeEnabled { + mi := &file_group_group_proto_msgTypes[19] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *GroupMemberFullInfo) XXX_Size() int { - return xxx_messageInfo_GroupMemberFullInfo.Size(m) + +func (x *GroupMemberFullInfo) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *GroupMemberFullInfo) XXX_DiscardUnknown() { - xxx_messageInfo_GroupMemberFullInfo.DiscardUnknown(m) + +func (*GroupMemberFullInfo) ProtoMessage() {} + +func (x *GroupMemberFullInfo) ProtoReflect() protoreflect.Message { + mi := &file_group_group_proto_msgTypes[19] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) } -var xxx_messageInfo_GroupMemberFullInfo proto.InternalMessageInfo +// Deprecated: Use GroupMemberFullInfo.ProtoReflect.Descriptor instead. +func (*GroupMemberFullInfo) Descriptor() ([]byte, []int) { + return file_group_group_proto_rawDescGZIP(), []int{19} +} -func (m *GroupMemberFullInfo) GetUserId() string { - if m != nil { - return m.UserId +func (x *GroupMemberFullInfo) GetUserId() string { + if x != nil { + return x.UserId } return "" } -func (m *GroupMemberFullInfo) GetRole() int32 { - if m != nil { - return m.Role +func (x *GroupMemberFullInfo) GetRole() int32 { + if x != nil { + return x.Role } return 0 } -func (m *GroupMemberFullInfo) GetJoinTime() uint64 { - if m != nil { - return m.JoinTime +func (x *GroupMemberFullInfo) GetJoinTime() uint64 { + if x != nil { + return x.JoinTime } return 0 } -func (m *GroupMemberFullInfo) GetNickName() string { - if m != nil { - return m.NickName +func (x *GroupMemberFullInfo) GetNickName() string { + if x != nil { + return x.NickName } return "" } -func (m *GroupMemberFullInfo) GetFaceUrl() string { - if m != nil { - return m.FaceUrl +func (x *GroupMemberFullInfo) GetFaceUrl() string { + if x != nil { + return x.FaceUrl } return "" } type GetGroupMemberListReq struct { - GroupID string `protobuf:"bytes,1,opt,name=groupID" json:"groupID,omitempty"` - Token string `protobuf:"bytes,2,opt,name=token" json:"token,omitempty"` - OperationID string `protobuf:"bytes,3,opt,name=operationID" json:"operationID,omitempty"` - Filter int32 `protobuf:"varint,4,opt,name=filter" json:"filter,omitempty"` - NextSeq int32 `protobuf:"varint,5,opt,name=nextSeq" json:"nextSeq,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *GetGroupMemberListReq) Reset() { *m = GetGroupMemberListReq{} } -func (m *GetGroupMemberListReq) String() string { return proto.CompactTextString(m) } -func (*GetGroupMemberListReq) ProtoMessage() {} -func (*GetGroupMemberListReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_9fd4d73937974f0d, []int{20} -} -func (m *GetGroupMemberListReq) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_GetGroupMemberListReq.Unmarshal(m, b) -} -func (m *GetGroupMemberListReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_GetGroupMemberListReq.Marshal(b, m, deterministic) + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + GroupID string `protobuf:"bytes,1,opt,name=groupID,proto3" json:"groupID,omitempty"` + Token string `protobuf:"bytes,2,opt,name=token,proto3" json:"token,omitempty"` + OperationID string `protobuf:"bytes,3,opt,name=operationID,proto3" json:"operationID,omitempty"` + Filter int32 `protobuf:"varint,4,opt,name=filter,proto3" json:"filter,omitempty"` + NextSeq int32 `protobuf:"varint,5,opt,name=nextSeq,proto3" json:"nextSeq,omitempty"` } -func (dst *GetGroupMemberListReq) XXX_Merge(src proto.Message) { - xxx_messageInfo_GetGroupMemberListReq.Merge(dst, src) + +func (x *GetGroupMemberListReq) Reset() { + *x = GetGroupMemberListReq{} + if protoimpl.UnsafeEnabled { + mi := &file_group_group_proto_msgTypes[20] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *GetGroupMemberListReq) XXX_Size() int { - return xxx_messageInfo_GetGroupMemberListReq.Size(m) + +func (x *GetGroupMemberListReq) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *GetGroupMemberListReq) XXX_DiscardUnknown() { - xxx_messageInfo_GetGroupMemberListReq.DiscardUnknown(m) + +func (*GetGroupMemberListReq) ProtoMessage() {} + +func (x *GetGroupMemberListReq) ProtoReflect() protoreflect.Message { + mi := &file_group_group_proto_msgTypes[20] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) } -var xxx_messageInfo_GetGroupMemberListReq proto.InternalMessageInfo +// Deprecated: Use GetGroupMemberListReq.ProtoReflect.Descriptor instead. +func (*GetGroupMemberListReq) Descriptor() ([]byte, []int) { + return file_group_group_proto_rawDescGZIP(), []int{20} +} -func (m *GetGroupMemberListReq) GetGroupID() string { - if m != nil { - return m.GroupID +func (x *GetGroupMemberListReq) GetGroupID() string { + if x != nil { + return x.GroupID } return "" } -func (m *GetGroupMemberListReq) GetToken() string { - if m != nil { - return m.Token +func (x *GetGroupMemberListReq) GetToken() string { + if x != nil { + return x.Token } return "" } -func (m *GetGroupMemberListReq) GetOperationID() string { - if m != nil { - return m.OperationID +func (x *GetGroupMemberListReq) GetOperationID() string { + if x != nil { + return x.OperationID } return "" } -func (m *GetGroupMemberListReq) GetFilter() int32 { - if m != nil { - return m.Filter +func (x *GetGroupMemberListReq) GetFilter() int32 { + if x != nil { + return x.Filter } return 0 } -func (m *GetGroupMemberListReq) GetNextSeq() int32 { - if m != nil { - return m.NextSeq +func (x *GetGroupMemberListReq) GetNextSeq() int32 { + if x != nil { + return x.NextSeq } return 0 } type GetGroupMemberListResp struct { - ErrorCode int32 `protobuf:"varint,1,opt,name=errorCode" json:"errorCode,omitempty"` - ErrorMsg string `protobuf:"bytes,2,opt,name=errorMsg" json:"errorMsg,omitempty"` - MemberList []*GroupMemberFullInfo `protobuf:"bytes,3,rep,name=memberList" json:"memberList,omitempty"` - NextSeq int32 `protobuf:"varint,4,opt,name=nextSeq" json:"nextSeq,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *GetGroupMemberListResp) Reset() { *m = GetGroupMemberListResp{} } -func (m *GetGroupMemberListResp) String() string { return proto.CompactTextString(m) } -func (*GetGroupMemberListResp) ProtoMessage() {} -func (*GetGroupMemberListResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_9fd4d73937974f0d, []int{21} -} -func (m *GetGroupMemberListResp) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_GetGroupMemberListResp.Unmarshal(m, b) -} -func (m *GetGroupMemberListResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_GetGroupMemberListResp.Marshal(b, m, deterministic) + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ErrorCode int32 `protobuf:"varint,1,opt,name=errorCode,proto3" json:"errorCode,omitempty"` + ErrorMsg string `protobuf:"bytes,2,opt,name=errorMsg,proto3" json:"errorMsg,omitempty"` + MemberList []*GroupMemberFullInfo `protobuf:"bytes,3,rep,name=memberList,proto3" json:"memberList,omitempty"` + NextSeq int32 `protobuf:"varint,4,opt,name=nextSeq,proto3" json:"nextSeq,omitempty"` } -func (dst *GetGroupMemberListResp) XXX_Merge(src proto.Message) { - xxx_messageInfo_GetGroupMemberListResp.Merge(dst, src) + +func (x *GetGroupMemberListResp) Reset() { + *x = GetGroupMemberListResp{} + if protoimpl.UnsafeEnabled { + mi := &file_group_group_proto_msgTypes[21] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *GetGroupMemberListResp) XXX_Size() int { - return xxx_messageInfo_GetGroupMemberListResp.Size(m) + +func (x *GetGroupMemberListResp) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *GetGroupMemberListResp) XXX_DiscardUnknown() { - xxx_messageInfo_GetGroupMemberListResp.DiscardUnknown(m) + +func (*GetGroupMemberListResp) ProtoMessage() {} + +func (x *GetGroupMemberListResp) ProtoReflect() protoreflect.Message { + mi := &file_group_group_proto_msgTypes[21] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) } -var xxx_messageInfo_GetGroupMemberListResp proto.InternalMessageInfo +// Deprecated: Use GetGroupMemberListResp.ProtoReflect.Descriptor instead. +func (*GetGroupMemberListResp) Descriptor() ([]byte, []int) { + return file_group_group_proto_rawDescGZIP(), []int{21} +} -func (m *GetGroupMemberListResp) GetErrorCode() int32 { - if m != nil { - return m.ErrorCode +func (x *GetGroupMemberListResp) GetErrorCode() int32 { + if x != nil { + return x.ErrorCode } return 0 } -func (m *GetGroupMemberListResp) GetErrorMsg() string { - if m != nil { - return m.ErrorMsg +func (x *GetGroupMemberListResp) GetErrorMsg() string { + if x != nil { + return x.ErrorMsg } return "" } -func (m *GetGroupMemberListResp) GetMemberList() []*GroupMemberFullInfo { - if m != nil { - return m.MemberList +func (x *GetGroupMemberListResp) GetMemberList() []*GroupMemberFullInfo { + if x != nil { + return x.MemberList } return nil } -func (m *GetGroupMemberListResp) GetNextSeq() int32 { - if m != nil { - return m.NextSeq +func (x *GetGroupMemberListResp) GetNextSeq() int32 { + if x != nil { + return x.NextSeq } return 0 } type GetGroupMembersInfoReq struct { - GroupID string `protobuf:"bytes,1,opt,name=groupID" json:"groupID,omitempty"` - MemberList []string `protobuf:"bytes,2,rep,name=memberList" json:"memberList,omitempty"` - Token string `protobuf:"bytes,3,opt,name=token" json:"token,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 *GetGroupMembersInfoReq) Reset() { *m = GetGroupMembersInfoReq{} } -func (m *GetGroupMembersInfoReq) String() string { return proto.CompactTextString(m) } -func (*GetGroupMembersInfoReq) ProtoMessage() {} -func (*GetGroupMembersInfoReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_9fd4d73937974f0d, []int{22} -} -func (m *GetGroupMembersInfoReq) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_GetGroupMembersInfoReq.Unmarshal(m, b) -} -func (m *GetGroupMembersInfoReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_GetGroupMembersInfoReq.Marshal(b, m, deterministic) + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + GroupID string `protobuf:"bytes,1,opt,name=groupID,proto3" json:"groupID,omitempty"` + MemberList []string `protobuf:"bytes,2,rep,name=memberList,proto3" json:"memberList,omitempty"` + Token string `protobuf:"bytes,3,opt,name=token,proto3" json:"token,omitempty"` + OperationID string `protobuf:"bytes,4,opt,name=operationID,proto3" json:"operationID,omitempty"` } -func (dst *GetGroupMembersInfoReq) XXX_Merge(src proto.Message) { - xxx_messageInfo_GetGroupMembersInfoReq.Merge(dst, src) + +func (x *GetGroupMembersInfoReq) Reset() { + *x = GetGroupMembersInfoReq{} + if protoimpl.UnsafeEnabled { + mi := &file_group_group_proto_msgTypes[22] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *GetGroupMembersInfoReq) XXX_Size() int { - return xxx_messageInfo_GetGroupMembersInfoReq.Size(m) + +func (x *GetGroupMembersInfoReq) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *GetGroupMembersInfoReq) XXX_DiscardUnknown() { - xxx_messageInfo_GetGroupMembersInfoReq.DiscardUnknown(m) + +func (*GetGroupMembersInfoReq) ProtoMessage() {} + +func (x *GetGroupMembersInfoReq) ProtoReflect() protoreflect.Message { + mi := &file_group_group_proto_msgTypes[22] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) } -var xxx_messageInfo_GetGroupMembersInfoReq proto.InternalMessageInfo +// Deprecated: Use GetGroupMembersInfoReq.ProtoReflect.Descriptor instead. +func (*GetGroupMembersInfoReq) Descriptor() ([]byte, []int) { + return file_group_group_proto_rawDescGZIP(), []int{22} +} -func (m *GetGroupMembersInfoReq) GetGroupID() string { - if m != nil { - return m.GroupID +func (x *GetGroupMembersInfoReq) GetGroupID() string { + if x != nil { + return x.GroupID } return "" } -func (m *GetGroupMembersInfoReq) GetMemberList() []string { - if m != nil { - return m.MemberList +func (x *GetGroupMembersInfoReq) GetMemberList() []string { + if x != nil { + return x.MemberList } return nil } -func (m *GetGroupMembersInfoReq) GetToken() string { - if m != nil { - return m.Token +func (x *GetGroupMembersInfoReq) GetToken() string { + if x != nil { + return x.Token } return "" } -func (m *GetGroupMembersInfoReq) GetOperationID() string { - if m != nil { - return m.OperationID +func (x *GetGroupMembersInfoReq) GetOperationID() string { + if x != nil { + return x.OperationID } return "" } type GetGroupMembersInfoResp struct { - ErrorCode int32 `protobuf:"varint,1,opt,name=errorCode" json:"errorCode,omitempty"` - ErrorMsg string `protobuf:"bytes,2,opt,name=errorMsg" json:"errorMsg,omitempty"` - MemberList []*GroupMemberFullInfo `protobuf:"bytes,3,rep,name=memberList" json:"memberList,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields -func (m *GetGroupMembersInfoResp) Reset() { *m = GetGroupMembersInfoResp{} } -func (m *GetGroupMembersInfoResp) String() string { return proto.CompactTextString(m) } -func (*GetGroupMembersInfoResp) ProtoMessage() {} -func (*GetGroupMembersInfoResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_9fd4d73937974f0d, []int{23} -} -func (m *GetGroupMembersInfoResp) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_GetGroupMembersInfoResp.Unmarshal(m, b) + ErrorCode int32 `protobuf:"varint,1,opt,name=errorCode,proto3" json:"errorCode,omitempty"` + ErrorMsg string `protobuf:"bytes,2,opt,name=errorMsg,proto3" json:"errorMsg,omitempty"` + MemberList []*GroupMemberFullInfo `protobuf:"bytes,3,rep,name=memberList,proto3" json:"memberList,omitempty"` } -func (m *GetGroupMembersInfoResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_GetGroupMembersInfoResp.Marshal(b, m, deterministic) -} -func (dst *GetGroupMembersInfoResp) XXX_Merge(src proto.Message) { - xxx_messageInfo_GetGroupMembersInfoResp.Merge(dst, src) + +func (x *GetGroupMembersInfoResp) Reset() { + *x = GetGroupMembersInfoResp{} + if protoimpl.UnsafeEnabled { + mi := &file_group_group_proto_msgTypes[23] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *GetGroupMembersInfoResp) XXX_Size() int { - return xxx_messageInfo_GetGroupMembersInfoResp.Size(m) + +func (x *GetGroupMembersInfoResp) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *GetGroupMembersInfoResp) XXX_DiscardUnknown() { - xxx_messageInfo_GetGroupMembersInfoResp.DiscardUnknown(m) + +func (*GetGroupMembersInfoResp) ProtoMessage() {} + +func (x *GetGroupMembersInfoResp) ProtoReflect() protoreflect.Message { + mi := &file_group_group_proto_msgTypes[23] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) } -var xxx_messageInfo_GetGroupMembersInfoResp proto.InternalMessageInfo +// Deprecated: Use GetGroupMembersInfoResp.ProtoReflect.Descriptor instead. +func (*GetGroupMembersInfoResp) Descriptor() ([]byte, []int) { + return file_group_group_proto_rawDescGZIP(), []int{23} +} -func (m *GetGroupMembersInfoResp) GetErrorCode() int32 { - if m != nil { - return m.ErrorCode +func (x *GetGroupMembersInfoResp) GetErrorCode() int32 { + if x != nil { + return x.ErrorCode } return 0 } -func (m *GetGroupMembersInfoResp) GetErrorMsg() string { - if m != nil { - return m.ErrorMsg +func (x *GetGroupMembersInfoResp) GetErrorMsg() string { + if x != nil { + return x.ErrorMsg } return "" } -func (m *GetGroupMembersInfoResp) GetMemberList() []*GroupMemberFullInfo { - if m != nil { - return m.MemberList +func (x *GetGroupMembersInfoResp) GetMemberList() []*GroupMemberFullInfo { + if x != nil { + return x.MemberList } return nil } type KickGroupMemberReq struct { - GroupID string `protobuf:"bytes,1,opt,name=groupID" json:"groupID,omitempty"` - UidListInfo []*GroupMemberFullInfo `protobuf:"bytes,2,rep,name=uidListInfo" json:"uidListInfo,omitempty"` - Reason string `protobuf:"bytes,3,opt,name=reason" json:"reason,omitempty"` - Token string `protobuf:"bytes,4,opt,name=token" json:"token,omitempty"` - OperationID string `protobuf:"bytes,5,opt,name=operationID" json:"operationID,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *KickGroupMemberReq) Reset() { *m = KickGroupMemberReq{} } -func (m *KickGroupMemberReq) String() string { return proto.CompactTextString(m) } -func (*KickGroupMemberReq) ProtoMessage() {} -func (*KickGroupMemberReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_9fd4d73937974f0d, []int{24} -} -func (m *KickGroupMemberReq) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_KickGroupMemberReq.Unmarshal(m, b) -} -func (m *KickGroupMemberReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_KickGroupMemberReq.Marshal(b, m, deterministic) + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + GroupID string `protobuf:"bytes,1,opt,name=groupID,proto3" json:"groupID,omitempty"` + UidListInfo []*GroupMemberFullInfo `protobuf:"bytes,2,rep,name=uidListInfo,proto3" json:"uidListInfo,omitempty"` + Reason string `protobuf:"bytes,3,opt,name=reason,proto3" json:"reason,omitempty"` + Token string `protobuf:"bytes,4,opt,name=token,proto3" json:"token,omitempty"` + OperationID string `protobuf:"bytes,5,opt,name=operationID,proto3" json:"operationID,omitempty"` } -func (dst *KickGroupMemberReq) XXX_Merge(src proto.Message) { - xxx_messageInfo_KickGroupMemberReq.Merge(dst, src) + +func (x *KickGroupMemberReq) Reset() { + *x = KickGroupMemberReq{} + if protoimpl.UnsafeEnabled { + mi := &file_group_group_proto_msgTypes[24] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *KickGroupMemberReq) XXX_Size() int { - return xxx_messageInfo_KickGroupMemberReq.Size(m) + +func (x *KickGroupMemberReq) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *KickGroupMemberReq) XXX_DiscardUnknown() { - xxx_messageInfo_KickGroupMemberReq.DiscardUnknown(m) + +func (*KickGroupMemberReq) ProtoMessage() {} + +func (x *KickGroupMemberReq) ProtoReflect() protoreflect.Message { + mi := &file_group_group_proto_msgTypes[24] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) } -var xxx_messageInfo_KickGroupMemberReq proto.InternalMessageInfo +// Deprecated: Use KickGroupMemberReq.ProtoReflect.Descriptor instead. +func (*KickGroupMemberReq) Descriptor() ([]byte, []int) { + return file_group_group_proto_rawDescGZIP(), []int{24} +} -func (m *KickGroupMemberReq) GetGroupID() string { - if m != nil { - return m.GroupID +func (x *KickGroupMemberReq) GetGroupID() string { + if x != nil { + return x.GroupID } return "" } -func (m *KickGroupMemberReq) GetUidListInfo() []*GroupMemberFullInfo { - if m != nil { - return m.UidListInfo +func (x *KickGroupMemberReq) GetUidListInfo() []*GroupMemberFullInfo { + if x != nil { + return x.UidListInfo } return nil } -func (m *KickGroupMemberReq) GetReason() string { - if m != nil { - return m.Reason +func (x *KickGroupMemberReq) GetReason() string { + if x != nil { + return x.Reason } return "" } -func (m *KickGroupMemberReq) GetToken() string { - if m != nil { - return m.Token +func (x *KickGroupMemberReq) GetToken() string { + if x != nil { + return x.Token } return "" } -func (m *KickGroupMemberReq) GetOperationID() string { - if m != nil { - return m.OperationID +func (x *KickGroupMemberReq) GetOperationID() string { + if x != nil { + return x.OperationID } return "" } type Id2Result struct { - UId string `protobuf:"bytes,1,opt,name=uId" json:"uId,omitempty"` - Result int32 `protobuf:"varint,2,opt,name=result" json:"result,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields -func (m *Id2Result) Reset() { *m = Id2Result{} } -func (m *Id2Result) String() string { return proto.CompactTextString(m) } -func (*Id2Result) ProtoMessage() {} -func (*Id2Result) Descriptor() ([]byte, []int) { - return fileDescriptor_group_9fd4d73937974f0d, []int{25} -} -func (m *Id2Result) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_Id2Result.Unmarshal(m, b) -} -func (m *Id2Result) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_Id2Result.Marshal(b, m, deterministic) + UId string `protobuf:"bytes,1,opt,name=uId,proto3" json:"uId,omitempty"` + Result int32 `protobuf:"varint,2,opt,name=result,proto3" json:"result,omitempty"` //0 ok; -1 error } -func (dst *Id2Result) XXX_Merge(src proto.Message) { - xxx_messageInfo_Id2Result.Merge(dst, src) + +func (x *Id2Result) Reset() { + *x = Id2Result{} + if protoimpl.UnsafeEnabled { + mi := &file_group_group_proto_msgTypes[25] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *Id2Result) XXX_Size() int { - return xxx_messageInfo_Id2Result.Size(m) + +func (x *Id2Result) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *Id2Result) XXX_DiscardUnknown() { - xxx_messageInfo_Id2Result.DiscardUnknown(m) + +func (*Id2Result) ProtoMessage() {} + +func (x *Id2Result) ProtoReflect() protoreflect.Message { + mi := &file_group_group_proto_msgTypes[25] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) } -var xxx_messageInfo_Id2Result proto.InternalMessageInfo +// Deprecated: Use Id2Result.ProtoReflect.Descriptor instead. +func (*Id2Result) Descriptor() ([]byte, []int) { + return file_group_group_proto_rawDescGZIP(), []int{25} +} -func (m *Id2Result) GetUId() string { - if m != nil { - return m.UId +func (x *Id2Result) GetUId() string { + if x != nil { + return x.UId } return "" } -func (m *Id2Result) GetResult() int32 { - if m != nil { - return m.Result +func (x *Id2Result) GetResult() int32 { + if x != nil { + return x.Result } return 0 } type KickGroupMemberResp struct { - ErrorCode int32 `protobuf:"varint,1,opt,name=errorCode" json:"errorCode,omitempty"` - ErrorMsg string `protobuf:"bytes,2,opt,name=errorMsg" json:"errorMsg,omitempty"` - Id2Result []*Id2Result `protobuf:"bytes,3,rep,name=id2result" json:"id2result,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields -func (m *KickGroupMemberResp) Reset() { *m = KickGroupMemberResp{} } -func (m *KickGroupMemberResp) String() string { return proto.CompactTextString(m) } -func (*KickGroupMemberResp) ProtoMessage() {} -func (*KickGroupMemberResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_9fd4d73937974f0d, []int{26} -} -func (m *KickGroupMemberResp) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_KickGroupMemberResp.Unmarshal(m, b) -} -func (m *KickGroupMemberResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_KickGroupMemberResp.Marshal(b, m, deterministic) + ErrorCode int32 `protobuf:"varint,1,opt,name=errorCode,proto3" json:"errorCode,omitempty"` + ErrorMsg string `protobuf:"bytes,2,opt,name=errorMsg,proto3" json:"errorMsg,omitempty"` + Id2Result []*Id2Result `protobuf:"bytes,3,rep,name=id2result,proto3" json:"id2result,omitempty"` } -func (dst *KickGroupMemberResp) XXX_Merge(src proto.Message) { - xxx_messageInfo_KickGroupMemberResp.Merge(dst, src) + +func (x *KickGroupMemberResp) Reset() { + *x = KickGroupMemberResp{} + if protoimpl.UnsafeEnabled { + mi := &file_group_group_proto_msgTypes[26] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *KickGroupMemberResp) XXX_Size() int { - return xxx_messageInfo_KickGroupMemberResp.Size(m) + +func (x *KickGroupMemberResp) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *KickGroupMemberResp) XXX_DiscardUnknown() { - xxx_messageInfo_KickGroupMemberResp.DiscardUnknown(m) + +func (*KickGroupMemberResp) ProtoMessage() {} + +func (x *KickGroupMemberResp) ProtoReflect() protoreflect.Message { + mi := &file_group_group_proto_msgTypes[26] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) } -var xxx_messageInfo_KickGroupMemberResp proto.InternalMessageInfo +// Deprecated: Use KickGroupMemberResp.ProtoReflect.Descriptor instead. +func (*KickGroupMemberResp) Descriptor() ([]byte, []int) { + return file_group_group_proto_rawDescGZIP(), []int{26} +} -func (m *KickGroupMemberResp) GetErrorCode() int32 { - if m != nil { - return m.ErrorCode +func (x *KickGroupMemberResp) GetErrorCode() int32 { + if x != nil { + return x.ErrorCode } return 0 } -func (m *KickGroupMemberResp) GetErrorMsg() string { - if m != nil { - return m.ErrorMsg +func (x *KickGroupMemberResp) GetErrorMsg() string { + if x != nil { + return x.ErrorMsg } return "" } -func (m *KickGroupMemberResp) GetId2Result() []*Id2Result { - if m != nil { - return m.Id2Result +func (x *KickGroupMemberResp) GetId2Result() []*Id2Result { + if x != nil { + return x.Id2Result } return nil } type GetJoinedGroupListReq struct { - Token string `protobuf:"bytes,1,opt,name=token" json:"token,omitempty"` - OperationID string `protobuf:"bytes,2,opt,name=operationID" json:"operationID,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields -func (m *GetJoinedGroupListReq) Reset() { *m = GetJoinedGroupListReq{} } -func (m *GetJoinedGroupListReq) String() string { return proto.CompactTextString(m) } -func (*GetJoinedGroupListReq) ProtoMessage() {} -func (*GetJoinedGroupListReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_9fd4d73937974f0d, []int{27} -} -func (m *GetJoinedGroupListReq) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_GetJoinedGroupListReq.Unmarshal(m, b) + Token string `protobuf:"bytes,1,opt,name=token,proto3" json:"token,omitempty"` + OperationID string `protobuf:"bytes,2,opt,name=operationID,proto3" json:"operationID,omitempty"` } -func (m *GetJoinedGroupListReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_GetJoinedGroupListReq.Marshal(b, m, deterministic) -} -func (dst *GetJoinedGroupListReq) XXX_Merge(src proto.Message) { - xxx_messageInfo_GetJoinedGroupListReq.Merge(dst, src) + +func (x *GetJoinedGroupListReq) Reset() { + *x = GetJoinedGroupListReq{} + if protoimpl.UnsafeEnabled { + mi := &file_group_group_proto_msgTypes[27] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *GetJoinedGroupListReq) XXX_Size() int { - return xxx_messageInfo_GetJoinedGroupListReq.Size(m) + +func (x *GetJoinedGroupListReq) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *GetJoinedGroupListReq) XXX_DiscardUnknown() { - xxx_messageInfo_GetJoinedGroupListReq.DiscardUnknown(m) + +func (*GetJoinedGroupListReq) ProtoMessage() {} + +func (x *GetJoinedGroupListReq) ProtoReflect() protoreflect.Message { + mi := &file_group_group_proto_msgTypes[27] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) } -var xxx_messageInfo_GetJoinedGroupListReq proto.InternalMessageInfo +// Deprecated: Use GetJoinedGroupListReq.ProtoReflect.Descriptor instead. +func (*GetJoinedGroupListReq) Descriptor() ([]byte, []int) { + return file_group_group_proto_rawDescGZIP(), []int{27} +} -func (m *GetJoinedGroupListReq) GetToken() string { - if m != nil { - return m.Token +func (x *GetJoinedGroupListReq) GetToken() string { + if x != nil { + return x.Token } return "" } -func (m *GetJoinedGroupListReq) GetOperationID() string { - if m != nil { - return m.OperationID +func (x *GetJoinedGroupListReq) GetOperationID() string { + if x != nil { + return x.OperationID } return "" } type GroupInfo struct { - GroupId string `protobuf:"bytes,1,opt,name=groupId" json:"groupId,omitempty"` - GroupName string `protobuf:"bytes,2,opt,name=groupName" json:"groupName,omitempty"` - Notification string `protobuf:"bytes,3,opt,name=notification" json:"notification,omitempty"` - Introduction string `protobuf:"bytes,4,opt,name=introduction" json:"introduction,omitempty"` - FaceUrl string `protobuf:"bytes,5,opt,name=faceUrl" json:"faceUrl,omitempty"` - CreateTime uint64 `protobuf:"varint,6,opt,name=createTime" json:"createTime,omitempty"` - OwnerId string `protobuf:"bytes,7,opt,name=ownerId" json:"ownerId,omitempty"` - MemberCount uint32 `protobuf:"varint,8,opt,name=memberCount" json:"memberCount,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *GroupInfo) Reset() { *m = GroupInfo{} } -func (m *GroupInfo) String() string { return proto.CompactTextString(m) } -func (*GroupInfo) ProtoMessage() {} -func (*GroupInfo) Descriptor() ([]byte, []int) { - return fileDescriptor_group_9fd4d73937974f0d, []int{28} -} -func (m *GroupInfo) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_GroupInfo.Unmarshal(m, b) -} -func (m *GroupInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_GroupInfo.Marshal(b, m, deterministic) + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + GroupId string `protobuf:"bytes,1,opt,name=groupId,proto3" json:"groupId,omitempty"` + GroupName string `protobuf:"bytes,2,opt,name=groupName,proto3" json:"groupName,omitempty"` + Notification string `protobuf:"bytes,3,opt,name=notification,proto3" json:"notification,omitempty"` + Introduction string `protobuf:"bytes,4,opt,name=introduction,proto3" json:"introduction,omitempty"` + FaceUrl string `protobuf:"bytes,5,opt,name=faceUrl,proto3" json:"faceUrl,omitempty"` + CreateTime uint64 `protobuf:"varint,6,opt,name=createTime,proto3" json:"createTime,omitempty"` + OwnerId string `protobuf:"bytes,7,opt,name=ownerId,proto3" json:"ownerId,omitempty"` + MemberCount uint32 `protobuf:"varint,8,opt,name=memberCount,proto3" json:"memberCount,omitempty"` } -func (dst *GroupInfo) XXX_Merge(src proto.Message) { - xxx_messageInfo_GroupInfo.Merge(dst, src) + +func (x *GroupInfo) Reset() { + *x = GroupInfo{} + if protoimpl.UnsafeEnabled { + mi := &file_group_group_proto_msgTypes[28] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *GroupInfo) XXX_Size() int { - return xxx_messageInfo_GroupInfo.Size(m) + +func (x *GroupInfo) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *GroupInfo) XXX_DiscardUnknown() { - xxx_messageInfo_GroupInfo.DiscardUnknown(m) + +func (*GroupInfo) ProtoMessage() {} + +func (x *GroupInfo) ProtoReflect() protoreflect.Message { + mi := &file_group_group_proto_msgTypes[28] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) } -var xxx_messageInfo_GroupInfo proto.InternalMessageInfo +// Deprecated: Use GroupInfo.ProtoReflect.Descriptor instead. +func (*GroupInfo) Descriptor() ([]byte, []int) { + return file_group_group_proto_rawDescGZIP(), []int{28} +} -func (m *GroupInfo) GetGroupId() string { - if m != nil { - return m.GroupId +func (x *GroupInfo) GetGroupId() string { + if x != nil { + return x.GroupId } return "" } -func (m *GroupInfo) GetGroupName() string { - if m != nil { - return m.GroupName +func (x *GroupInfo) GetGroupName() string { + if x != nil { + return x.GroupName } return "" } -func (m *GroupInfo) GetNotification() string { - if m != nil { - return m.Notification +func (x *GroupInfo) GetNotification() string { + if x != nil { + return x.Notification } return "" } -func (m *GroupInfo) GetIntroduction() string { - if m != nil { - return m.Introduction +func (x *GroupInfo) GetIntroduction() string { + if x != nil { + return x.Introduction } return "" } -func (m *GroupInfo) GetFaceUrl() string { - if m != nil { - return m.FaceUrl +func (x *GroupInfo) GetFaceUrl() string { + if x != nil { + return x.FaceUrl } return "" } -func (m *GroupInfo) GetCreateTime() uint64 { - if m != nil { - return m.CreateTime +func (x *GroupInfo) GetCreateTime() uint64 { + if x != nil { + return x.CreateTime } return 0 } -func (m *GroupInfo) GetOwnerId() string { - if m != nil { - return m.OwnerId +func (x *GroupInfo) GetOwnerId() string { + if x != nil { + return x.OwnerId } return "" } -func (m *GroupInfo) GetMemberCount() uint32 { - if m != nil { - return m.MemberCount +func (x *GroupInfo) GetMemberCount() uint32 { + if x != nil { + return x.MemberCount } return 0 } type GetJoinedGroupListResp struct { - ErrorCode int32 `protobuf:"varint,1,opt,name=errorCode" json:"errorCode,omitempty"` - ErrorMsg string `protobuf:"bytes,2,opt,name=errorMsg" json:"errorMsg,omitempty"` - GroupList []*GroupInfo `protobuf:"bytes,3,rep,name=groupList" json:"groupList,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields -func (m *GetJoinedGroupListResp) Reset() { *m = GetJoinedGroupListResp{} } -func (m *GetJoinedGroupListResp) String() string { return proto.CompactTextString(m) } -func (*GetJoinedGroupListResp) ProtoMessage() {} -func (*GetJoinedGroupListResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_9fd4d73937974f0d, []int{29} -} -func (m *GetJoinedGroupListResp) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_GetJoinedGroupListResp.Unmarshal(m, b) -} -func (m *GetJoinedGroupListResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_GetJoinedGroupListResp.Marshal(b, m, deterministic) -} -func (dst *GetJoinedGroupListResp) XXX_Merge(src proto.Message) { - xxx_messageInfo_GetJoinedGroupListResp.Merge(dst, src) -} -func (m *GetJoinedGroupListResp) XXX_Size() int { - return xxx_messageInfo_GetJoinedGroupListResp.Size(m) + ErrorCode int32 `protobuf:"varint,1,opt,name=errorCode,proto3" json:"errorCode,omitempty"` + ErrorMsg string `protobuf:"bytes,2,opt,name=errorMsg,proto3" json:"errorMsg,omitempty"` + GroupList []*GroupInfo `protobuf:"bytes,3,rep,name=groupList,proto3" json:"groupList,omitempty"` } -func (m *GetJoinedGroupListResp) XXX_DiscardUnknown() { - xxx_messageInfo_GetJoinedGroupListResp.DiscardUnknown(m) -} - -var xxx_messageInfo_GetJoinedGroupListResp proto.InternalMessageInfo -func (m *GetJoinedGroupListResp) GetErrorCode() int32 { - if m != nil { - return m.ErrorCode +func (x *GetJoinedGroupListResp) Reset() { + *x = GetJoinedGroupListResp{} + if protoimpl.UnsafeEnabled { + mi := &file_group_group_proto_msgTypes[29] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } - return 0 } -func (m *GetJoinedGroupListResp) GetErrorMsg() string { - if m != nil { - return m.ErrorMsg - } - return "" -} - -func (m *GetJoinedGroupListResp) GetGroupList() []*GroupInfo { - if m != nil { - return m.GroupList - } - return nil +func (x *GetJoinedGroupListResp) String() string { + return protoimpl.X.MessageStringOf(x) } -type InviteUserToGroupReq struct { - Token string `protobuf:"bytes,1,opt,name=token" json:"token,omitempty"` - OperationID string `protobuf:"bytes,2,opt,name=operationID" json:"operationID,omitempty"` - GroupID string `protobuf:"bytes,3,opt,name=groupID" json:"groupID,omitempty"` - Reason string `protobuf:"bytes,4,opt,name=reason" json:"reason,omitempty"` - UidList []string `protobuf:"bytes,5,rep,name=uidList" json:"uidList,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *InviteUserToGroupReq) Reset() { *m = InviteUserToGroupReq{} } -func (m *InviteUserToGroupReq) String() string { return proto.CompactTextString(m) } -func (*InviteUserToGroupReq) ProtoMessage() {} -func (*InviteUserToGroupReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_9fd4d73937974f0d, []int{30} -} -func (m *InviteUserToGroupReq) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_InviteUserToGroupReq.Unmarshal(m, b) -} -func (m *InviteUserToGroupReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_InviteUserToGroupReq.Marshal(b, m, deterministic) -} -func (dst *InviteUserToGroupReq) XXX_Merge(src proto.Message) { - xxx_messageInfo_InviteUserToGroupReq.Merge(dst, src) -} -func (m *InviteUserToGroupReq) XXX_Size() int { - return xxx_messageInfo_InviteUserToGroupReq.Size(m) -} -func (m *InviteUserToGroupReq) XXX_DiscardUnknown() { - xxx_messageInfo_InviteUserToGroupReq.DiscardUnknown(m) -} +func (*GetJoinedGroupListResp) ProtoMessage() {} -var xxx_messageInfo_InviteUserToGroupReq proto.InternalMessageInfo - -func (m *InviteUserToGroupReq) GetToken() string { - if m != nil { - return m.Token +func (x *GetJoinedGroupListResp) ProtoReflect() protoreflect.Message { + mi := &file_group_group_proto_msgTypes[29] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms } - return "" + return mi.MessageOf(x) } -func (m *InviteUserToGroupReq) GetOperationID() string { - if m != nil { - return m.OperationID - } - return "" +// Deprecated: Use GetJoinedGroupListResp.ProtoReflect.Descriptor instead. +func (*GetJoinedGroupListResp) Descriptor() ([]byte, []int) { + return file_group_group_proto_rawDescGZIP(), []int{29} } -func (m *InviteUserToGroupReq) GetGroupID() string { - if m != nil { - return m.GroupID +func (x *GetJoinedGroupListResp) GetErrorCode() int32 { + if x != nil { + return x.ErrorCode } - return "" + return 0 } -func (m *InviteUserToGroupReq) GetReason() string { - if m != nil { - return m.Reason +func (x *GetJoinedGroupListResp) GetErrorMsg() string { + if x != nil { + return x.ErrorMsg } return "" } -func (m *InviteUserToGroupReq) GetUidList() []string { - if m != nil { - return m.UidList +func (x *GetJoinedGroupListResp) GetGroupList() []*GroupInfo { + if x != nil { + return x.GroupList } return nil } -type InviteUserToGroupResp struct { - ErrorCode int32 `protobuf:"varint,1,opt,name=errorCode" json:"errorCode,omitempty"` - ErrorMsg string `protobuf:"bytes,2,opt,name=errorMsg" json:"errorMsg,omitempty"` - Id2Result []*Id2Result `protobuf:"bytes,3,rep,name=id2result" json:"id2result,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} +type InviteUserToGroupReq struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields -func (m *InviteUserToGroupResp) Reset() { *m = InviteUserToGroupResp{} } -func (m *InviteUserToGroupResp) String() string { return proto.CompactTextString(m) } -func (*InviteUserToGroupResp) ProtoMessage() {} -func (*InviteUserToGroupResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_9fd4d73937974f0d, []int{31} -} -func (m *InviteUserToGroupResp) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_InviteUserToGroupResp.Unmarshal(m, b) -} -func (m *InviteUserToGroupResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_InviteUserToGroupResp.Marshal(b, m, deterministic) -} -func (dst *InviteUserToGroupResp) XXX_Merge(src proto.Message) { - xxx_messageInfo_InviteUserToGroupResp.Merge(dst, src) -} -func (m *InviteUserToGroupResp) XXX_Size() int { - return xxx_messageInfo_InviteUserToGroupResp.Size(m) -} -func (m *InviteUserToGroupResp) XXX_DiscardUnknown() { - xxx_messageInfo_InviteUserToGroupResp.DiscardUnknown(m) + Token string `protobuf:"bytes,1,opt,name=token,proto3" json:"token,omitempty"` + OperationID string `protobuf:"bytes,2,opt,name=operationID,proto3" json:"operationID,omitempty"` + GroupID string `protobuf:"bytes,3,opt,name=groupID,proto3" json:"groupID,omitempty"` + Reason string `protobuf:"bytes,4,opt,name=reason,proto3" json:"reason,omitempty"` + UidList []string `protobuf:"bytes,5,rep,name=uidList,proto3" json:"uidList,omitempty"` } -var xxx_messageInfo_InviteUserToGroupResp proto.InternalMessageInfo - -func (m *InviteUserToGroupResp) GetErrorCode() int32 { - if m != nil { - return m.ErrorCode +func (x *InviteUserToGroupReq) Reset() { + *x = InviteUserToGroupReq{} + if protoimpl.UnsafeEnabled { + mi := &file_group_group_proto_msgTypes[30] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } - return 0 } -func (m *InviteUserToGroupResp) GetErrorMsg() string { - if m != nil { - return m.ErrorMsg - } - return "" +func (x *InviteUserToGroupReq) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *InviteUserToGroupResp) GetId2Result() []*Id2Result { - if m != nil { - return m.Id2Result - } - return nil -} +func (*InviteUserToGroupReq) ProtoMessage() {} -type GetGroupAllMemberReq struct { - GroupID string `protobuf:"bytes,1,opt,name=groupID" json:"groupID,omitempty"` - Token string `protobuf:"bytes,2,opt,name=token" json:"token,omitempty"` - OperationID string `protobuf:"bytes,3,opt,name=operationID" json:"operationID,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` +func (x *InviteUserToGroupReq) ProtoReflect() protoreflect.Message { + mi := &file_group_group_proto_msgTypes[30] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) } -func (m *GetGroupAllMemberReq) Reset() { *m = GetGroupAllMemberReq{} } -func (m *GetGroupAllMemberReq) String() string { return proto.CompactTextString(m) } -func (*GetGroupAllMemberReq) ProtoMessage() {} -func (*GetGroupAllMemberReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_9fd4d73937974f0d, []int{32} -} -func (m *GetGroupAllMemberReq) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_GetGroupAllMemberReq.Unmarshal(m, b) -} -func (m *GetGroupAllMemberReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_GetGroupAllMemberReq.Marshal(b, m, deterministic) -} -func (dst *GetGroupAllMemberReq) XXX_Merge(src proto.Message) { - xxx_messageInfo_GetGroupAllMemberReq.Merge(dst, src) -} -func (m *GetGroupAllMemberReq) XXX_Size() int { - return xxx_messageInfo_GetGroupAllMemberReq.Size(m) -} -func (m *GetGroupAllMemberReq) XXX_DiscardUnknown() { - xxx_messageInfo_GetGroupAllMemberReq.DiscardUnknown(m) +// Deprecated: Use InviteUserToGroupReq.ProtoReflect.Descriptor instead. +func (*InviteUserToGroupReq) Descriptor() ([]byte, []int) { + return file_group_group_proto_rawDescGZIP(), []int{30} } -var xxx_messageInfo_GetGroupAllMemberReq proto.InternalMessageInfo - -func (m *GetGroupAllMemberReq) GetGroupID() string { - if m != nil { - return m.GroupID +func (x *InviteUserToGroupReq) GetToken() string { + if x != nil { + return x.Token } return "" } -func (m *GetGroupAllMemberReq) GetToken() string { - if m != nil { - return m.Token +func (x *InviteUserToGroupReq) GetOperationID() string { + if x != nil { + return x.OperationID } return "" } -func (m *GetGroupAllMemberReq) GetOperationID() string { - if m != nil { - return m.OperationID +func (x *InviteUserToGroupReq) GetGroupID() string { + if x != nil { + return x.GroupID } return "" } -type GetGroupAllMemberResp struct { - ErrorCode int32 `protobuf:"varint,1,opt,name=errorCode" json:"errorCode,omitempty"` - ErrorMsg string `protobuf:"bytes,2,opt,name=errorMsg" json:"errorMsg,omitempty"` - MemberList []*GroupMemberFullInfo `protobuf:"bytes,3,rep,name=memberList" json:"memberList,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *GetGroupAllMemberResp) Reset() { *m = GetGroupAllMemberResp{} } -func (m *GetGroupAllMemberResp) String() string { return proto.CompactTextString(m) } -func (*GetGroupAllMemberResp) ProtoMessage() {} -func (*GetGroupAllMemberResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_9fd4d73937974f0d, []int{33} -} -func (m *GetGroupAllMemberResp) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_GetGroupAllMemberResp.Unmarshal(m, b) -} -func (m *GetGroupAllMemberResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_GetGroupAllMemberResp.Marshal(b, m, deterministic) -} -func (dst *GetGroupAllMemberResp) XXX_Merge(src proto.Message) { - xxx_messageInfo_GetGroupAllMemberResp.Merge(dst, src) -} -func (m *GetGroupAllMemberResp) XXX_Size() int { - return xxx_messageInfo_GetGroupAllMemberResp.Size(m) -} -func (m *GetGroupAllMemberResp) XXX_DiscardUnknown() { - xxx_messageInfo_GetGroupAllMemberResp.DiscardUnknown(m) -} - -var xxx_messageInfo_GetGroupAllMemberResp proto.InternalMessageInfo - -func (m *GetGroupAllMemberResp) GetErrorCode() int32 { - if m != nil { - return m.ErrorCode - } - return 0 -} - -func (m *GetGroupAllMemberResp) GetErrorMsg() string { - if m != nil { - return m.ErrorMsg +func (x *InviteUserToGroupReq) GetReason() string { + if x != nil { + return x.Reason } return "" } -func (m *GetGroupAllMemberResp) GetMemberList() []*GroupMemberFullInfo { - if m != nil { - return m.MemberList +func (x *InviteUserToGroupReq) GetUidList() []string { + if x != nil { + return x.UidList } return nil } -func init() { - proto.RegisterType((*CommonResp)(nil), "group.CommonResp") - proto.RegisterType((*CreateGroupReq)(nil), "group.CreateGroupReq") - proto.RegisterType((*GroupAddMemberInfo)(nil), "group.GroupAddMemberInfo") - proto.RegisterType((*CreateGroupResp)(nil), "group.CreateGroupResp") - proto.RegisterType((*GetGroupsInfoReq)(nil), "group.GetGroupsInfoReq") - proto.RegisterType((*GetGroupsInfoResp)(nil), "group.GetGroupsInfoResp") - proto.RegisterType((*SetGroupInfoReq)(nil), "group.SetGroupInfoReq") - proto.RegisterType((*GetGroupApplicationListReq)(nil), "group.GetGroupApplicationListReq") - proto.RegisterType((*GetGroupApplicationList_Data_User)(nil), "group.GetGroupApplicationList_Data_User") - proto.RegisterType((*GetGroupApplicationListData)(nil), "group.GetGroupApplicationListData") - proto.RegisterType((*GetGroupApplicationListResp)(nil), "group.GetGroupApplicationListResp") - proto.RegisterType((*TransferGroupOwnerReq)(nil), "group.TransferGroupOwnerReq") - proto.RegisterType((*TransferGroupOwnerResp)(nil), "group.TransferGroupOwnerResp") - proto.RegisterType((*JoinGroupReq)(nil), "group.JoinGroupReq") - proto.RegisterType((*GroupApplicationResponseReq)(nil), "group.GroupApplicationResponseReq") - proto.RegisterType((*GroupApplicationResponseResp)(nil), "group.GroupApplicationResponseResp") - proto.RegisterType((*SetOwnerGroupNickNameReq)(nil), "group.SetOwnerGroupNickNameReq") - proto.RegisterType((*QuitGroupReq)(nil), "group.QuitGroupReq") - proto.RegisterType((*GroupApplicationUserInfo)(nil), "group.GroupApplicationUserInfo") - proto.RegisterType((*GroupMemberFullInfo)(nil), "group.GroupMemberFullInfo") - proto.RegisterType((*GetGroupMemberListReq)(nil), "group.GetGroupMemberListReq") - proto.RegisterType((*GetGroupMemberListResp)(nil), "group.GetGroupMemberListResp") - proto.RegisterType((*GetGroupMembersInfoReq)(nil), "group.GetGroupMembersInfoReq") - proto.RegisterType((*GetGroupMembersInfoResp)(nil), "group.GetGroupMembersInfoResp") - proto.RegisterType((*KickGroupMemberReq)(nil), "group.KickGroupMemberReq") - proto.RegisterType((*Id2Result)(nil), "group.Id2Result") - proto.RegisterType((*KickGroupMemberResp)(nil), "group.KickGroupMemberResp") - proto.RegisterType((*GetJoinedGroupListReq)(nil), "group.getJoinedGroupListReq") - proto.RegisterType((*GroupInfo)(nil), "group.GroupInfo") - proto.RegisterType((*GetJoinedGroupListResp)(nil), "group.getJoinedGroupListResp") - proto.RegisterType((*InviteUserToGroupReq)(nil), "group.inviteUserToGroupReq") - proto.RegisterType((*InviteUserToGroupResp)(nil), "group.inviteUserToGroupResp") - proto.RegisterType((*GetGroupAllMemberReq)(nil), "group.GetGroupAllMemberReq") - proto.RegisterType((*GetGroupAllMemberResp)(nil), "group.GetGroupAllMemberResp") -} - -// 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 Group service - -type GroupClient interface { - CreateGroup(ctx context.Context, in *CreateGroupReq, opts ...grpc.CallOption) (*CreateGroupResp, error) - JoinGroup(ctx context.Context, in *JoinGroupReq, opts ...grpc.CallOption) (*CommonResp, error) - QuitGroup(ctx context.Context, in *QuitGroupReq, opts ...grpc.CallOption) (*CommonResp, error) - GetGroupsInfo(ctx context.Context, in *GetGroupsInfoReq, opts ...grpc.CallOption) (*GetGroupsInfoResp, error) - SetGroupInfo(ctx context.Context, in *SetGroupInfoReq, opts ...grpc.CallOption) (*CommonResp, error) - GetGroupApplicationList(ctx context.Context, in *GetGroupApplicationListReq, opts ...grpc.CallOption) (*GetGroupApplicationListResp, error) - TransferGroupOwner(ctx context.Context, in *TransferGroupOwnerReq, opts ...grpc.CallOption) (*TransferGroupOwnerResp, error) - GroupApplicationResponse(ctx context.Context, in *GroupApplicationResponseReq, opts ...grpc.CallOption) (*GroupApplicationResponseResp, error) - // rpc setOwnerGroupNickName(SetOwnerGroupNickNameReq) returns(CommonResp); - GetGroupMemberList(ctx context.Context, in *GetGroupMemberListReq, opts ...grpc.CallOption) (*GetGroupMemberListResp, error) - GetGroupMembersInfo(ctx context.Context, in *GetGroupMembersInfoReq, opts ...grpc.CallOption) (*GetGroupMembersInfoResp, error) - KickGroupMember(ctx context.Context, in *KickGroupMemberReq, opts ...grpc.CallOption) (*KickGroupMemberResp, error) - GetJoinedGroupList(ctx context.Context, in *GetJoinedGroupListReq, opts ...grpc.CallOption) (*GetJoinedGroupListResp, error) - InviteUserToGroup(ctx context.Context, in *InviteUserToGroupReq, opts ...grpc.CallOption) (*InviteUserToGroupResp, error) - GetGroupAllMember(ctx context.Context, in *GetGroupAllMemberReq, opts ...grpc.CallOption) (*GetGroupAllMemberResp, error) -} - -type groupClient struct { - cc *grpc.ClientConn -} +type InviteUserToGroupResp struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields -func NewGroupClient(cc *grpc.ClientConn) GroupClient { - return &groupClient{cc} + ErrorCode int32 `protobuf:"varint,1,opt,name=errorCode,proto3" json:"errorCode,omitempty"` + ErrorMsg string `protobuf:"bytes,2,opt,name=errorMsg,proto3" json:"errorMsg,omitempty"` + Id2Result []*Id2Result `protobuf:"bytes,3,rep,name=id2result,proto3" json:"id2result,omitempty"` // 0 ok, -1 error } -func (c *groupClient) CreateGroup(ctx context.Context, in *CreateGroupReq, opts ...grpc.CallOption) (*CreateGroupResp, error) { - out := new(CreateGroupResp) - err := grpc.Invoke(ctx, "/group.group/createGroup", in, out, c.cc, opts...) - if err != nil { - return nil, err +func (x *InviteUserToGroupResp) Reset() { + *x = InviteUserToGroupResp{} + if protoimpl.UnsafeEnabled { + mi := &file_group_group_proto_msgTypes[31] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } - return out, nil } -func (c *groupClient) JoinGroup(ctx context.Context, in *JoinGroupReq, opts ...grpc.CallOption) (*CommonResp, error) { - out := new(CommonResp) - err := grpc.Invoke(ctx, "/group.group/joinGroup", in, out, c.cc, opts...) - if err != nil { - return nil, err - } - return out, nil +func (x *InviteUserToGroupResp) String() string { + return protoimpl.X.MessageStringOf(x) } -func (c *groupClient) QuitGroup(ctx context.Context, in *QuitGroupReq, opts ...grpc.CallOption) (*CommonResp, error) { - out := new(CommonResp) - err := grpc.Invoke(ctx, "/group.group/quitGroup", in, out, c.cc, opts...) - if err != nil { - return nil, err - } - return out, nil -} +func (*InviteUserToGroupResp) ProtoMessage() {} -func (c *groupClient) GetGroupsInfo(ctx context.Context, in *GetGroupsInfoReq, opts ...grpc.CallOption) (*GetGroupsInfoResp, error) { - out := new(GetGroupsInfoResp) - err := grpc.Invoke(ctx, "/group.group/getGroupsInfo", in, out, c.cc, opts...) - if err != nil { - return nil, err +func (x *InviteUserToGroupResp) ProtoReflect() protoreflect.Message { + mi := &file_group_group_proto_msgTypes[31] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms } - return out, nil + return mi.MessageOf(x) } -func (c *groupClient) SetGroupInfo(ctx context.Context, in *SetGroupInfoReq, opts ...grpc.CallOption) (*CommonResp, error) { - out := new(CommonResp) - err := grpc.Invoke(ctx, "/group.group/setGroupInfo", in, out, c.cc, opts...) - if err != nil { - return nil, err - } - return out, nil +// Deprecated: Use InviteUserToGroupResp.ProtoReflect.Descriptor instead. +func (*InviteUserToGroupResp) Descriptor() ([]byte, []int) { + return file_group_group_proto_rawDescGZIP(), []int{31} } -func (c *groupClient) GetGroupApplicationList(ctx context.Context, in *GetGroupApplicationListReq, opts ...grpc.CallOption) (*GetGroupApplicationListResp, error) { - out := new(GetGroupApplicationListResp) - err := grpc.Invoke(ctx, "/group.group/getGroupApplicationList", in, out, c.cc, opts...) - if err != nil { - return nil, err +func (x *InviteUserToGroupResp) GetErrorCode() int32 { + if x != nil { + return x.ErrorCode } - return out, nil + return 0 } -func (c *groupClient) TransferGroupOwner(ctx context.Context, in *TransferGroupOwnerReq, opts ...grpc.CallOption) (*TransferGroupOwnerResp, error) { - out := new(TransferGroupOwnerResp) - err := grpc.Invoke(ctx, "/group.group/transferGroupOwner", in, out, c.cc, opts...) - if err != nil { - return nil, err +func (x *InviteUserToGroupResp) GetErrorMsg() string { + if x != nil { + return x.ErrorMsg } - return out, nil + return "" } -func (c *groupClient) GroupApplicationResponse(ctx context.Context, in *GroupApplicationResponseReq, opts ...grpc.CallOption) (*GroupApplicationResponseResp, error) { - out := new(GroupApplicationResponseResp) - err := grpc.Invoke(ctx, "/group.group/groupApplicationResponse", in, out, c.cc, opts...) - if err != nil { - return nil, err +func (x *InviteUserToGroupResp) GetId2Result() []*Id2Result { + if x != nil { + return x.Id2Result } - return out, nil + return nil } -func (c *groupClient) GetGroupMemberList(ctx context.Context, in *GetGroupMemberListReq, opts ...grpc.CallOption) (*GetGroupMemberListResp, error) { - out := new(GetGroupMemberListResp) - err := grpc.Invoke(ctx, "/group.group/getGroupMemberList", in, out, c.cc, opts...) - if err != nil { - return nil, err - } - return out, nil -} +type GetGroupAllMemberReq struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields -func (c *groupClient) GetGroupMembersInfo(ctx context.Context, in *GetGroupMembersInfoReq, opts ...grpc.CallOption) (*GetGroupMembersInfoResp, error) { - out := new(GetGroupMembersInfoResp) - err := grpc.Invoke(ctx, "/group.group/getGroupMembersInfo", in, out, c.cc, opts...) - if err != nil { - return nil, err - } - return out, nil + GroupID string `protobuf:"bytes,1,opt,name=groupID,proto3" json:"groupID,omitempty"` + Token string `protobuf:"bytes,2,opt,name=token,proto3" json:"token,omitempty"` + OperationID string `protobuf:"bytes,3,opt,name=operationID,proto3" json:"operationID,omitempty"` } -func (c *groupClient) KickGroupMember(ctx context.Context, in *KickGroupMemberReq, opts ...grpc.CallOption) (*KickGroupMemberResp, error) { - out := new(KickGroupMemberResp) - err := grpc.Invoke(ctx, "/group.group/kickGroupMember", in, out, c.cc, opts...) - if err != nil { - return nil, err +func (x *GetGroupAllMemberReq) Reset() { + *x = GetGroupAllMemberReq{} + if protoimpl.UnsafeEnabled { + mi := &file_group_group_proto_msgTypes[32] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } - return out, nil } -func (c *groupClient) GetJoinedGroupList(ctx context.Context, in *GetJoinedGroupListReq, opts ...grpc.CallOption) (*GetJoinedGroupListResp, error) { - out := new(GetJoinedGroupListResp) - err := grpc.Invoke(ctx, "/group.group/getJoinedGroupList", in, out, c.cc, opts...) - if err != nil { - return nil, err - } - return out, nil +func (x *GetGroupAllMemberReq) String() string { + return protoimpl.X.MessageStringOf(x) } -func (c *groupClient) InviteUserToGroup(ctx context.Context, in *InviteUserToGroupReq, opts ...grpc.CallOption) (*InviteUserToGroupResp, error) { - out := new(InviteUserToGroupResp) - err := grpc.Invoke(ctx, "/group.group/inviteUserToGroup", in, out, c.cc, opts...) - if err != nil { - return nil, err - } - return out, nil -} +func (*GetGroupAllMemberReq) ProtoMessage() {} -func (c *groupClient) GetGroupAllMember(ctx context.Context, in *GetGroupAllMemberReq, opts ...grpc.CallOption) (*GetGroupAllMemberResp, error) { - out := new(GetGroupAllMemberResp) - err := grpc.Invoke(ctx, "/group.group/getGroupAllMember", in, out, c.cc, opts...) - if err != nil { - return nil, err +func (x *GetGroupAllMemberReq) ProtoReflect() protoreflect.Message { + mi := &file_group_group_proto_msgTypes[32] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms } - return out, nil -} - -// Server API for Group service - -type GroupServer interface { - CreateGroup(context.Context, *CreateGroupReq) (*CreateGroupResp, error) - JoinGroup(context.Context, *JoinGroupReq) (*CommonResp, error) - QuitGroup(context.Context, *QuitGroupReq) (*CommonResp, error) - GetGroupsInfo(context.Context, *GetGroupsInfoReq) (*GetGroupsInfoResp, error) - SetGroupInfo(context.Context, *SetGroupInfoReq) (*CommonResp, error) - GetGroupApplicationList(context.Context, *GetGroupApplicationListReq) (*GetGroupApplicationListResp, error) - TransferGroupOwner(context.Context, *TransferGroupOwnerReq) (*TransferGroupOwnerResp, error) - GroupApplicationResponse(context.Context, *GroupApplicationResponseReq) (*GroupApplicationResponseResp, error) - // rpc setOwnerGroupNickName(SetOwnerGroupNickNameReq) returns(CommonResp); - GetGroupMemberList(context.Context, *GetGroupMemberListReq) (*GetGroupMemberListResp, error) - GetGroupMembersInfo(context.Context, *GetGroupMembersInfoReq) (*GetGroupMembersInfoResp, error) - KickGroupMember(context.Context, *KickGroupMemberReq) (*KickGroupMemberResp, error) - GetJoinedGroupList(context.Context, *GetJoinedGroupListReq) (*GetJoinedGroupListResp, error) - InviteUserToGroup(context.Context, *InviteUserToGroupReq) (*InviteUserToGroupResp, error) - GetGroupAllMember(context.Context, *GetGroupAllMemberReq) (*GetGroupAllMemberResp, error) + return mi.MessageOf(x) } -func RegisterGroupServer(s *grpc.Server, srv GroupServer) { - s.RegisterService(&_Group_serviceDesc, srv) +// Deprecated: Use GetGroupAllMemberReq.ProtoReflect.Descriptor instead. +func (*GetGroupAllMemberReq) Descriptor() ([]byte, []int) { + return file_group_group_proto_rawDescGZIP(), []int{32} } -func _Group_CreateGroup_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(CreateGroupReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(GroupServer).CreateGroup(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/group.group/CreateGroup", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(GroupServer).CreateGroup(ctx, req.(*CreateGroupReq)) +func (x *GetGroupAllMemberReq) GetGroupID() string { + if x != nil { + return x.GroupID } - return interceptor(ctx, in, info, handler) + return "" } -func _Group_JoinGroup_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(JoinGroupReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(GroupServer).JoinGroup(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/group.group/JoinGroup", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(GroupServer).JoinGroup(ctx, req.(*JoinGroupReq)) +func (x *GetGroupAllMemberReq) GetToken() string { + if x != nil { + return x.Token } - return interceptor(ctx, in, info, handler) + return "" } -func _Group_QuitGroup_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(QuitGroupReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(GroupServer).QuitGroup(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/group.group/QuitGroup", +func (x *GetGroupAllMemberReq) GetOperationID() string { + if x != nil { + return x.OperationID } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(GroupServer).QuitGroup(ctx, req.(*QuitGroupReq)) - } - return interceptor(ctx, in, info, handler) + return "" } -func _Group_GetGroupsInfo_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(GetGroupsInfoReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(GroupServer).GetGroupsInfo(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/group.group/GetGroupsInfo", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(GroupServer).GetGroupsInfo(ctx, req.(*GetGroupsInfoReq)) - } - return interceptor(ctx, in, info, handler) -} +type GetGroupAllMemberResp struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields -func _Group_SetGroupInfo_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(SetGroupInfoReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(GroupServer).SetGroupInfo(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/group.group/SetGroupInfo", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(GroupServer).SetGroupInfo(ctx, req.(*SetGroupInfoReq)) - } - return interceptor(ctx, in, info, handler) + ErrorCode int32 `protobuf:"varint,1,opt,name=errorCode,proto3" json:"errorCode,omitempty"` + ErrorMsg string `protobuf:"bytes,2,opt,name=errorMsg,proto3" json:"errorMsg,omitempty"` + MemberList []*GroupMemberFullInfo `protobuf:"bytes,3,rep,name=memberList,proto3" json:"memberList,omitempty"` } -func _Group_GetGroupApplicationList_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(GetGroupApplicationListReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(GroupServer).GetGroupApplicationList(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/group.group/GetGroupApplicationList", +func (x *GetGroupAllMemberResp) Reset() { + *x = GetGroupAllMemberResp{} + if protoimpl.UnsafeEnabled { + mi := &file_group_group_proto_msgTypes[33] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(GroupServer).GetGroupApplicationList(ctx, req.(*GetGroupApplicationListReq)) - } - return interceptor(ctx, in, info, handler) } -func _Group_TransferGroupOwner_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(TransferGroupOwnerReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(GroupServer).TransferGroupOwner(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/group.group/TransferGroupOwner", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(GroupServer).TransferGroupOwner(ctx, req.(*TransferGroupOwnerReq)) - } - return interceptor(ctx, in, info, handler) +func (x *GetGroupAllMemberResp) String() string { + return protoimpl.X.MessageStringOf(x) } -func _Group_GroupApplicationResponse_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(GroupApplicationResponseReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(GroupServer).GroupApplicationResponse(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/group.group/GroupApplicationResponse", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(GroupServer).GroupApplicationResponse(ctx, req.(*GroupApplicationResponseReq)) - } - return interceptor(ctx, in, info, handler) -} +func (*GetGroupAllMemberResp) ProtoMessage() {} -func _Group_GetGroupMemberList_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(GetGroupMemberListReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(GroupServer).GetGroupMemberList(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/group.group/GetGroupMemberList", +func (x *GetGroupAllMemberResp) ProtoReflect() protoreflect.Message { + mi := &file_group_group_proto_msgTypes[33] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(GroupServer).GetGroupMemberList(ctx, req.(*GetGroupMemberListReq)) - } - return interceptor(ctx, in, info, handler) + return mi.MessageOf(x) } -func _Group_GetGroupMembersInfo_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(GetGroupMembersInfoReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(GroupServer).GetGroupMembersInfo(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/group.group/GetGroupMembersInfo", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(GroupServer).GetGroupMembersInfo(ctx, req.(*GetGroupMembersInfoReq)) - } - return interceptor(ctx, in, info, handler) +// Deprecated: Use GetGroupAllMemberResp.ProtoReflect.Descriptor instead. +func (*GetGroupAllMemberResp) Descriptor() ([]byte, []int) { + return file_group_group_proto_rawDescGZIP(), []int{33} } -func _Group_KickGroupMember_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(KickGroupMemberReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(GroupServer).KickGroupMember(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/group.group/KickGroupMember", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(GroupServer).KickGroupMember(ctx, req.(*KickGroupMemberReq)) +func (x *GetGroupAllMemberResp) GetErrorCode() int32 { + if x != nil { + return x.ErrorCode } - return interceptor(ctx, in, info, handler) + return 0 } -func _Group_GetJoinedGroupList_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(GetJoinedGroupListReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(GroupServer).GetJoinedGroupList(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/group.group/GetJoinedGroupList", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(GroupServer).GetJoinedGroupList(ctx, req.(*GetJoinedGroupListReq)) +func (x *GetGroupAllMemberResp) GetErrorMsg() string { + if x != nil { + return x.ErrorMsg } - return interceptor(ctx, in, info, handler) + return "" } -func _Group_InviteUserToGroup_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(InviteUserToGroupReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(GroupServer).InviteUserToGroup(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/group.group/InviteUserToGroup", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(GroupServer).InviteUserToGroup(ctx, req.(*InviteUserToGroupReq)) +func (x *GetGroupAllMemberResp) GetMemberList() []*GroupMemberFullInfo { + if x != nil { + return x.MemberList } - return interceptor(ctx, in, info, handler) + return nil } -func _Group_GetGroupAllMember_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(GetGroupAllMemberReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(GroupServer).GetGroupAllMember(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/group.group/GetGroupAllMember", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(GroupServer).GetGroupAllMember(ctx, req.(*GetGroupAllMemberReq)) - } - return interceptor(ctx, in, info, handler) -} +var File_group_group_proto protoreflect.FileDescriptor + +var file_group_group_proto_rawDesc = []byte{ + 0x0a, 0x11, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x12, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x22, 0x46, 0x0a, 0x0a, 0x43, 0x6f, + 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x12, 0x1c, 0x0a, 0x09, 0x45, 0x72, 0x72, 0x6f, + 0x72, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x45, 0x72, 0x72, + 0x6f, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x4d, + 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x4d, + 0x73, 0x67, 0x22, 0x93, 0x02, 0x0a, 0x0e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x47, 0x72, 0x6f, + 0x75, 0x70, 0x52, 0x65, 0x71, 0x12, 0x39, 0x0a, 0x0a, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x4c, + 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x72, 0x6f, 0x75, + 0x70, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x64, 0x64, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, + 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0a, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, + 0x12, 0x1c, 0x0a, 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x22, + 0x0a, 0x0c, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x12, 0x22, 0x0a, 0x0c, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, + 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x66, 0x61, 0x63, 0x65, 0x55, 0x72, + 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x66, 0x61, 0x63, 0x65, 0x55, 0x72, 0x6c, + 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x20, 0x0a, 0x0b, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6f, 0x70, 0x65, + 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x12, 0x0e, 0x0a, 0x02, 0x65, 0x78, 0x18, 0x08, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x65, 0x78, 0x22, 0x40, 0x0a, 0x12, 0x47, 0x72, 0x6f, 0x75, + 0x70, 0x41, 0x64, 0x64, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x10, + 0x0a, 0x03, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x69, 0x64, + 0x12, 0x18, 0x0a, 0x07, 0x73, 0x65, 0x74, 0x52, 0x6f, 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x07, 0x73, 0x65, 0x74, 0x52, 0x6f, 0x6c, 0x65, 0x22, 0x65, 0x0a, 0x0f, 0x43, 0x72, + 0x65, 0x61, 0x74, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x12, 0x1c, 0x0a, + 0x09, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x09, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x45, + 0x72, 0x72, 0x6f, 0x72, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x45, + 0x72, 0x72, 0x6f, 0x72, 0x4d, 0x73, 0x67, 0x12, 0x18, 0x0a, 0x07, 0x67, 0x72, 0x6f, 0x75, 0x70, + 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, + 0x44, 0x22, 0x6c, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x49, 0x6e, + 0x66, 0x6f, 0x52, 0x65, 0x71, 0x12, 0x20, 0x0a, 0x0b, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x44, + 0x4c, 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0b, 0x67, 0x72, 0x6f, 0x75, + 0x70, 0x49, 0x44, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x20, 0x0a, + 0x0b, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0b, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x22, + 0x73, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x49, 0x6e, 0x66, 0x6f, + 0x52, 0x65, 0x73, 0x70, 0x12, 0x1c, 0x0a, 0x09, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x43, 0x6f, 0x64, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x43, 0x6f, + 0x64, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x4d, 0x73, 0x67, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x4d, 0x73, 0x67, 0x12, 0x24, + 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x67, + 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, + 0x64, 0x61, 0x74, 0x61, 0x22, 0xe3, 0x01, 0x0a, 0x0f, 0x53, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, + 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x12, 0x18, 0x0a, 0x07, 0x67, 0x72, 0x6f, 0x75, + 0x70, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x67, 0x72, 0x6f, 0x75, 0x70, + 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x4e, 0x61, 0x6d, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x4e, 0x61, 0x6d, 0x65, + 0x12, 0x22, 0x0a, 0x0c, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x22, 0x0a, 0x0c, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x64, 0x75, 0x63, + 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x69, 0x6e, 0x74, 0x72, + 0x6f, 0x64, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x66, 0x61, 0x63, 0x65, + 0x55, 0x72, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x66, 0x61, 0x63, 0x65, 0x55, + 0x72, 0x6c, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x20, 0x0a, 0x0b, 0x6f, 0x70, 0x65, 0x72, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6f, + 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x22, 0x50, 0x0a, 0x1a, 0x47, 0x65, + 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x12, 0x10, 0x0a, 0x03, 0x55, 0x49, 0x44, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x55, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x70, + 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x22, 0x99, 0x04, 0x0a, + 0x21, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x5f, 0x44, 0x61, 0x74, 0x61, 0x5f, 0x55, 0x73, + 0x65, 0x72, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, + 0x49, 0x44, 0x12, 0x18, 0x0a, 0x07, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x44, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x07, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, + 0x46, 0x72, 0x6f, 0x6d, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0a, 0x46, 0x72, 0x6f, 0x6d, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, + 0x54, 0x6f, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, + 0x54, 0x6f, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x12, 0x0a, 0x04, 0x46, 0x6c, 0x61, 0x67, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x46, 0x6c, 0x61, 0x67, 0x12, 0x1e, 0x0a, 0x0a, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x4d, 0x73, 0x67, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0a, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x4d, 0x73, 0x67, 0x12, 0x1e, 0x0a, 0x0a, + 0x48, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x64, 0x4d, 0x73, 0x67, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0a, 0x48, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x64, 0x4d, 0x73, 0x67, 0x12, 0x18, 0x0a, 0x07, + 0x41, 0x64, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x41, + 0x64, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x2a, 0x0a, 0x10, 0x46, 0x72, 0x6f, 0x6d, 0x55, 0x73, + 0x65, 0x72, 0x4e, 0x69, 0x63, 0x6b, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x10, 0x46, 0x72, 0x6f, 0x6d, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x69, 0x63, 0x6b, 0x6e, 0x61, + 0x6d, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x54, 0x6f, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x69, 0x63, 0x6b, + 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x54, 0x6f, 0x55, 0x73, + 0x65, 0x72, 0x4e, 0x69, 0x63, 0x6b, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x28, 0x0a, 0x0f, 0x46, 0x72, + 0x6f, 0x6d, 0x55, 0x73, 0x65, 0x72, 0x46, 0x61, 0x63, 0x65, 0x55, 0x72, 0x6c, 0x18, 0x0b, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0f, 0x46, 0x72, 0x6f, 0x6d, 0x55, 0x73, 0x65, 0x72, 0x46, 0x61, 0x63, + 0x65, 0x55, 0x72, 0x6c, 0x12, 0x24, 0x0a, 0x0d, 0x54, 0x6f, 0x55, 0x73, 0x65, 0x72, 0x46, 0x61, + 0x63, 0x65, 0x55, 0x72, 0x6c, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x54, 0x6f, 0x55, + 0x73, 0x65, 0x72, 0x46, 0x61, 0x63, 0x65, 0x55, 0x72, 0x6c, 0x12, 0x20, 0x0a, 0x0b, 0x48, 0x61, + 0x6e, 0x64, 0x6c, 0x65, 0x64, 0x55, 0x73, 0x65, 0x72, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0b, 0x48, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x64, 0x55, 0x73, 0x65, 0x72, 0x12, 0x12, 0x0a, 0x04, + 0x54, 0x79, 0x70, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x54, 0x79, 0x70, 0x65, + 0x12, 0x22, 0x0a, 0x0c, 0x48, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, + 0x18, 0x0f, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x48, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x53, 0x74, + 0x61, 0x74, 0x75, 0x73, 0x12, 0x22, 0x0a, 0x0c, 0x48, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x52, 0x65, + 0x73, 0x75, 0x6c, 0x74, 0x18, 0x10, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x48, 0x61, 0x6e, 0x64, + 0x6c, 0x65, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0x71, 0x0a, 0x1b, 0x47, 0x65, 0x74, 0x47, + 0x72, 0x6f, 0x75, 0x70, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4c, + 0x69, 0x73, 0x74, 0x44, 0x61, 0x74, 0x61, 0x12, 0x14, 0x0a, 0x05, 0x43, 0x6f, 0x75, 0x6e, 0x74, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x3c, 0x0a, + 0x04, 0x55, 0x73, 0x65, 0x72, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x67, 0x72, + 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x70, 0x70, 0x6c, + 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x5f, 0x44, 0x61, 0x74, 0x61, + 0x5f, 0x55, 0x73, 0x65, 0x72, 0x52, 0x04, 0x55, 0x73, 0x65, 0x72, 0x22, 0x87, 0x01, 0x0a, 0x1b, + 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x18, 0x0a, 0x07, 0x45, + 0x72, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x45, 0x72, + 0x72, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x45, 0x72, 0x72, 0x4d, 0x73, 0x67, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x45, 0x72, 0x72, 0x4d, 0x73, 0x67, 0x12, 0x36, 0x0a, + 0x04, 0x44, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x67, 0x72, + 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x70, 0x70, 0x6c, + 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x44, 0x61, 0x74, 0x61, 0x52, + 0x04, 0x44, 0x61, 0x74, 0x61, 0x22, 0x8b, 0x01, 0x0a, 0x15, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, + 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x52, 0x65, 0x71, 0x12, + 0x18, 0x0a, 0x07, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x07, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x4f, 0x6c, 0x64, + 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x4f, 0x6c, 0x64, + 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x4e, 0x65, 0x77, 0x4f, 0x77, 0x6e, 0x65, + 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x4e, 0x65, 0x77, 0x4f, 0x77, 0x6e, 0x65, + 0x72, 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x49, 0x44, 0x22, 0x4a, 0x0a, 0x16, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x47, + 0x72, 0x6f, 0x75, 0x70, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x12, 0x18, 0x0a, + 0x07, 0x45, 0x72, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, + 0x45, 0x72, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x45, 0x72, 0x72, 0x4d, 0x73, + 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x45, 0x72, 0x72, 0x4d, 0x73, 0x67, 0x22, + 0x7a, 0x0a, 0x0c, 0x4a, 0x6f, 0x69, 0x6e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x12, + 0x18, 0x0a, 0x07, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x07, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x44, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, + 0x73, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, + 0x61, 0x67, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x70, 0x65, + 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, + 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x22, 0x89, 0x04, 0x0a, 0x1b, + 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x65, 0x71, 0x12, 0x20, 0x0a, 0x0b, 0x4f, + 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x12, 0x18, 0x0a, + 0x07, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, + 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x49, 0x44, 0x12, 0x18, 0x0a, 0x07, 0x47, 0x72, 0x6f, 0x75, 0x70, + 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, + 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x46, 0x72, 0x6f, 0x6d, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x46, 0x72, 0x6f, 0x6d, 0x55, 0x73, 0x65, 0x72, 0x49, + 0x44, 0x12, 0x2a, 0x0a, 0x10, 0x46, 0x72, 0x6f, 0x6d, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x69, 0x63, + 0x6b, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x46, 0x72, 0x6f, + 0x6d, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x69, 0x63, 0x6b, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x28, 0x0a, + 0x0f, 0x46, 0x72, 0x6f, 0x6d, 0x55, 0x73, 0x65, 0x72, 0x46, 0x61, 0x63, 0x65, 0x55, 0x72, 0x6c, + 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x46, 0x72, 0x6f, 0x6d, 0x55, 0x73, 0x65, 0x72, + 0x46, 0x61, 0x63, 0x65, 0x55, 0x72, 0x6c, 0x12, 0x1a, 0x0a, 0x08, 0x54, 0x6f, 0x55, 0x73, 0x65, + 0x72, 0x49, 0x44, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x54, 0x6f, 0x55, 0x73, 0x65, + 0x72, 0x49, 0x44, 0x12, 0x26, 0x0a, 0x0e, 0x54, 0x6f, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x69, 0x63, + 0x6b, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x54, 0x6f, 0x55, + 0x73, 0x65, 0x72, 0x4e, 0x69, 0x63, 0x6b, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x54, + 0x6f, 0x55, 0x73, 0x65, 0x72, 0x46, 0x61, 0x63, 0x65, 0x55, 0x72, 0x6c, 0x18, 0x09, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0d, 0x54, 0x6f, 0x55, 0x73, 0x65, 0x72, 0x46, 0x61, 0x63, 0x65, 0x55, 0x72, + 0x6c, 0x12, 0x18, 0x0a, 0x07, 0x41, 0x64, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x0a, 0x20, 0x01, + 0x28, 0x03, 0x52, 0x07, 0x41, 0x64, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x4d, 0x73, 0x67, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0a, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x4d, 0x73, 0x67, 0x12, 0x1e, 0x0a, 0x0a, 0x48, + 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x64, 0x4d, 0x73, 0x67, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0a, 0x48, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x64, 0x4d, 0x73, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x54, + 0x79, 0x70, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x54, 0x79, 0x70, 0x65, 0x12, + 0x22, 0x0a, 0x0c, 0x48, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, + 0x0e, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x48, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x53, 0x74, 0x61, + 0x74, 0x75, 0x73, 0x12, 0x22, 0x0a, 0x0c, 0x48, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x52, 0x65, 0x73, + 0x75, 0x6c, 0x74, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x48, 0x61, 0x6e, 0x64, 0x6c, + 0x65, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0x50, 0x0a, 0x1c, 0x47, 0x72, 0x6f, 0x75, 0x70, + 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x18, 0x0a, 0x07, 0x45, 0x72, 0x72, 0x43, 0x6f, + 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x45, 0x72, 0x72, 0x43, 0x6f, 0x64, + 0x65, 0x12, 0x16, 0x0a, 0x06, 0x45, 0x72, 0x72, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x06, 0x45, 0x72, 0x72, 0x4d, 0x73, 0x67, 0x22, 0x88, 0x01, 0x0a, 0x18, 0x53, 0x65, + 0x74, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4e, 0x69, 0x63, 0x6b, 0x4e, + 0x61, 0x6d, 0x65, 0x52, 0x65, 0x71, 0x12, 0x18, 0x0a, 0x07, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, + 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x44, + 0x12, 0x1a, 0x0a, 0x08, 0x6e, 0x69, 0x63, 0x6b, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x08, 0x6e, 0x69, 0x63, 0x6b, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, + 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x12, 0x14, + 0x0a, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, + 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0x60, 0x0a, 0x0c, 0x51, 0x75, 0x69, 0x74, 0x47, 0x72, 0x6f, 0x75, + 0x70, 0x52, 0x65, 0x71, 0x12, 0x18, 0x0a, 0x07, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x44, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x44, 0x12, 0x20, + 0x0a, 0x0b, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, + 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0x84, 0x02, 0x0a, 0x18, 0x47, 0x72, 0x6f, 0x75, 0x70, + 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x55, 0x73, 0x65, 0x72, 0x49, + 0x6e, 0x66, 0x6f, 0x12, 0x18, 0x0a, 0x07, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x44, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x44, 0x12, 0x10, 0x0a, + 0x03, 0x75, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x69, 0x64, 0x12, + 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, + 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x69, 0x63, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x04, 0x69, 0x63, 0x6f, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x71, 0x4d, 0x73, + 0x67, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x71, 0x4d, 0x73, 0x67, 0x12, + 0x28, 0x0a, 0x0f, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, + 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0f, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x66, 0x6c, 0x61, + 0x67, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x66, 0x6c, 0x61, 0x67, 0x12, 0x1e, 0x0a, + 0x0a, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x49, 0x44, 0x18, 0x08, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0a, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x49, 0x44, 0x12, 0x1e, 0x0a, + 0x0a, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x64, 0x4d, 0x73, 0x67, 0x18, 0x09, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0a, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x64, 0x4d, 0x73, 0x67, 0x22, 0x93, 0x01, + 0x0a, 0x13, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x46, 0x75, 0x6c, + 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x12, 0x0a, + 0x04, 0x72, 0x6f, 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x72, 0x6f, 0x6c, + 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x6a, 0x6f, 0x69, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x04, 0x52, 0x08, 0x6a, 0x6f, 0x69, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1a, 0x0a, + 0x08, 0x6e, 0x69, 0x63, 0x6b, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x08, 0x6e, 0x69, 0x63, 0x6b, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x66, 0x61, 0x63, + 0x65, 0x55, 0x72, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x66, 0x61, 0x63, 0x65, + 0x55, 0x72, 0x6c, 0x22, 0x9b, 0x01, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, + 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x12, 0x18, 0x0a, + 0x07, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, + 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x44, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x20, 0x0a, + 0x0b, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0b, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x12, + 0x16, 0x0a, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x6e, 0x65, 0x78, 0x74, 0x53, + 0x65, 0x71, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x6e, 0x65, 0x78, 0x74, 0x53, 0x65, + 0x71, 0x22, 0xa8, 0x01, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, + 0x6d, 0x62, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x1c, 0x0a, 0x09, + 0x65, 0x72, 0x72, 0x6f, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x09, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x65, 0x72, + 0x72, 0x6f, 0x72, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x65, 0x72, + 0x72, 0x6f, 0x72, 0x4d, 0x73, 0x67, 0x12, 0x3a, 0x0a, 0x0a, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, + 0x4c, 0x69, 0x73, 0x74, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x72, 0x6f, + 0x75, 0x70, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x46, 0x75, + 0x6c, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0a, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x4c, 0x69, + 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x6e, 0x65, 0x78, 0x74, 0x53, 0x65, 0x71, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x07, 0x6e, 0x65, 0x78, 0x74, 0x53, 0x65, 0x71, 0x22, 0x8a, 0x01, 0x0a, + 0x16, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, + 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x12, 0x18, 0x0a, 0x07, 0x67, 0x72, 0x6f, 0x75, 0x70, + 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, + 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x18, + 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x4c, 0x69, 0x73, + 0x74, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x20, 0x0a, 0x0b, 0x6f, 0x70, 0x65, 0x72, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6f, 0x70, + 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x22, 0x8f, 0x01, 0x0a, 0x17, 0x47, 0x65, + 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x49, 0x6e, 0x66, + 0x6f, 0x52, 0x65, 0x73, 0x70, 0x12, 0x1c, 0x0a, 0x09, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x43, 0x6f, + 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x43, + 0x6f, 0x64, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x4d, 0x73, 0x67, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x4d, 0x73, 0x67, 0x12, + 0x3a, 0x0a, 0x0a, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x03, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x72, 0x6f, 0x75, + 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x46, 0x75, 0x6c, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x52, + 0x0a, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x22, 0xbc, 0x01, 0x0a, 0x12, + 0x4b, 0x69, 0x63, 0x6b, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, + 0x65, 0x71, 0x12, 0x18, 0x0a, 0x07, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x44, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x07, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x44, 0x12, 0x3c, 0x0a, 0x0b, + 0x75, 0x69, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x02, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, + 0x65, 0x6d, 0x62, 0x65, 0x72, 0x46, 0x75, 0x6c, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0b, 0x75, + 0x69, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, + 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x61, 0x73, + 0x6f, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x20, 0x0a, 0x0b, 0x6f, 0x70, 0x65, 0x72, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6f, + 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x22, 0x35, 0x0a, 0x09, 0x49, 0x64, + 0x32, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x49, 0x64, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x73, + 0x75, 0x6c, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, + 0x74, 0x22, 0x7f, 0x0a, 0x13, 0x4b, 0x69, 0x63, 0x6b, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, + 0x6d, 0x62, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x12, 0x1c, 0x0a, 0x09, 0x65, 0x72, 0x72, 0x6f, + 0x72, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x65, 0x72, 0x72, + 0x6f, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x4d, + 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x4d, + 0x73, 0x67, 0x12, 0x2e, 0x0a, 0x09, 0x69, 0x64, 0x32, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, + 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x49, 0x64, + 0x32, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x09, 0x69, 0x64, 0x32, 0x72, 0x65, 0x73, 0x75, + 0x6c, 0x74, 0x22, 0x4f, 0x0a, 0x15, 0x67, 0x65, 0x74, 0x4a, 0x6f, 0x69, 0x6e, 0x65, 0x64, 0x47, + 0x72, 0x6f, 0x75, 0x70, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x12, 0x14, 0x0a, 0x05, 0x74, + 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x6f, 0x6b, 0x65, + 0x6e, 0x12, 0x20, 0x0a, 0x0b, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x49, 0x44, 0x22, 0x81, 0x02, 0x0a, 0x09, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x66, + 0x6f, 0x12, 0x18, 0x0a, 0x07, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x07, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x67, + 0x72, 0x6f, 0x75, 0x70, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, + 0x67, 0x72, 0x6f, 0x75, 0x70, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x6e, 0x6f, 0x74, + 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0c, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x22, 0x0a, + 0x0c, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0c, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x69, 0x6f, + 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x66, 0x61, 0x63, 0x65, 0x55, 0x72, 0x6c, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x07, 0x66, 0x61, 0x63, 0x65, 0x55, 0x72, 0x6c, 0x12, 0x1e, 0x0a, 0x0a, 0x63, + 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x52, + 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6f, + 0x77, 0x6e, 0x65, 0x72, 0x49, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6f, 0x77, + 0x6e, 0x65, 0x72, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x43, + 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x6d, 0x65, 0x6d, 0x62, + 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x82, 0x01, 0x0a, 0x16, 0x67, 0x65, 0x74, 0x4a, + 0x6f, 0x69, 0x6e, 0x65, 0x64, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, + 0x73, 0x70, 0x12, 0x1c, 0x0a, 0x09, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x43, 0x6f, 0x64, 0x65, + 0x12, 0x1a, 0x0a, 0x08, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x08, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x4d, 0x73, 0x67, 0x12, 0x2e, 0x0a, 0x09, + 0x67, 0x72, 0x6f, 0x75, 0x70, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x10, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x66, + 0x6f, 0x52, 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x9a, 0x01, 0x0a, + 0x14, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x54, 0x6f, 0x47, 0x72, 0x6f, + 0x75, 0x70, 0x52, 0x65, 0x71, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x20, 0x0a, 0x0b, 0x6f, + 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0b, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x12, 0x18, 0x0a, + 0x07, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, + 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, + 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x12, + 0x18, 0x0a, 0x07, 0x75, 0x69, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x05, 0x20, 0x03, 0x28, 0x09, + 0x52, 0x07, 0x75, 0x69, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x81, 0x01, 0x0a, 0x15, 0x69, 0x6e, + 0x76, 0x69, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x54, 0x6f, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, + 0x65, 0x73, 0x70, 0x12, 0x1c, 0x0a, 0x09, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x43, 0x6f, 0x64, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x43, 0x6f, 0x64, + 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x08, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x4d, 0x73, 0x67, 0x12, 0x2e, 0x0a, + 0x09, 0x69, 0x64, 0x32, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x10, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x49, 0x64, 0x32, 0x52, 0x65, 0x73, 0x75, + 0x6c, 0x74, 0x52, 0x09, 0x69, 0x64, 0x32, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0x68, 0x0a, + 0x14, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x6c, 0x6c, 0x4d, 0x65, 0x6d, 0x62, + 0x65, 0x72, 0x52, 0x65, 0x71, 0x12, 0x18, 0x0a, 0x07, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x44, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x44, 0x12, + 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, + 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x20, 0x0a, 0x0b, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6f, 0x70, 0x65, 0x72, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x22, 0x8d, 0x01, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x47, + 0x72, 0x6f, 0x75, 0x70, 0x41, 0x6c, 0x6c, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x65, 0x73, + 0x70, 0x12, 0x1c, 0x0a, 0x09, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x12, + 0x1a, 0x0a, 0x08, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x08, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x4d, 0x73, 0x67, 0x12, 0x3a, 0x0a, 0x0a, 0x6d, + 0x65, 0x6d, 0x62, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x1a, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, + 0x62, 0x65, 0x72, 0x46, 0x75, 0x6c, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0a, 0x6d, 0x65, 0x6d, + 0x62, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x32, 0xae, 0x08, 0x0a, 0x05, 0x67, 0x72, 0x6f, 0x75, + 0x70, 0x12, 0x3c, 0x0a, 0x0b, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, + 0x12, 0x15, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x47, + 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x1a, 0x16, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, + 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x12, + 0x33, 0x0a, 0x09, 0x6a, 0x6f, 0x69, 0x6e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x13, 0x2e, 0x67, + 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x4a, 0x6f, 0x69, 0x6e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, + 0x71, 0x1a, 0x11, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, + 0x52, 0x65, 0x73, 0x70, 0x12, 0x33, 0x0a, 0x09, 0x71, 0x75, 0x69, 0x74, 0x47, 0x72, 0x6f, 0x75, + 0x70, 0x12, 0x13, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x51, 0x75, 0x69, 0x74, 0x47, 0x72, + 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x1a, 0x11, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x43, + 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x12, 0x42, 0x0a, 0x0d, 0x67, 0x65, 0x74, + 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x17, 0x2e, 0x67, 0x72, 0x6f, + 0x75, 0x70, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x49, 0x6e, 0x66, 0x6f, + 0x52, 0x65, 0x71, 0x1a, 0x18, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x65, 0x74, 0x47, + 0x72, 0x6f, 0x75, 0x70, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x12, 0x39, 0x0a, + 0x0c, 0x73, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x16, 0x2e, + 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x53, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, + 0x66, 0x6f, 0x52, 0x65, 0x71, 0x1a, 0x11, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x43, 0x6f, + 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x12, 0x60, 0x0a, 0x17, 0x67, 0x65, 0x74, 0x47, + 0x72, 0x6f, 0x75, 0x70, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4c, + 0x69, 0x73, 0x74, 0x12, 0x21, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x65, 0x74, 0x47, + 0x72, 0x6f, 0x75, 0x70, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4c, + 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x22, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47, + 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x51, 0x0a, 0x12, 0x74, 0x72, + 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4f, 0x77, 0x6e, 0x65, 0x72, + 0x12, 0x1c, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, + 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x52, 0x65, 0x71, 0x1a, 0x1d, + 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x47, + 0x72, 0x6f, 0x75, 0x70, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x12, 0x63, 0x0a, + 0x18, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x22, 0x2e, 0x67, 0x72, 0x6f, 0x75, + 0x70, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x23, 0x2e, + 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x70, 0x70, 0x6c, 0x69, + 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x65, + 0x73, 0x70, 0x12, 0x51, 0x0a, 0x12, 0x67, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, + 0x6d, 0x62, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x1c, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, + 0x2e, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x4c, + 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x1d, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47, + 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x4c, 0x69, 0x73, + 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x54, 0x0a, 0x13, 0x67, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, + 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1d, 0x2e, 0x67, + 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, + 0x62, 0x65, 0x72, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x1a, 0x1e, 0x2e, 0x67, 0x72, + 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, + 0x65, 0x72, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x12, 0x48, 0x0a, 0x0f, 0x6b, + 0x69, 0x63, 0x6b, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x19, + 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x4b, 0x69, 0x63, 0x6b, 0x47, 0x72, 0x6f, 0x75, 0x70, + 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x65, 0x71, 0x1a, 0x1a, 0x2e, 0x67, 0x72, 0x6f, 0x75, + 0x70, 0x2e, 0x4b, 0x69, 0x63, 0x6b, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, + 0x72, 0x52, 0x65, 0x73, 0x70, 0x12, 0x51, 0x0a, 0x12, 0x67, 0x65, 0x74, 0x4a, 0x6f, 0x69, 0x6e, + 0x65, 0x64, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x1c, 0x2e, 0x67, 0x72, + 0x6f, 0x75, 0x70, 0x2e, 0x67, 0x65, 0x74, 0x4a, 0x6f, 0x69, 0x6e, 0x65, 0x64, 0x47, 0x72, 0x6f, + 0x75, 0x70, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x1d, 0x2e, 0x67, 0x72, 0x6f, 0x75, + 0x70, 0x2e, 0x67, 0x65, 0x74, 0x4a, 0x6f, 0x69, 0x6e, 0x65, 0x64, 0x47, 0x72, 0x6f, 0x75, 0x70, + 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x4e, 0x0a, 0x11, 0x69, 0x6e, 0x76, 0x69, + 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x54, 0x6f, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x1b, 0x2e, + 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, + 0x54, 0x6f, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x67, 0x72, 0x6f, + 0x75, 0x70, 0x2e, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x54, 0x6f, 0x47, + 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x12, 0x4e, 0x0a, 0x11, 0x67, 0x65, 0x74, 0x47, + 0x72, 0x6f, 0x75, 0x70, 0x41, 0x6c, 0x6c, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x1b, 0x2e, + 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x6c, + 0x6c, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x67, 0x72, 0x6f, + 0x75, 0x70, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x6c, 0x6c, 0x4d, 0x65, + 0x6d, 0x62, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x42, 0x0f, 0x5a, 0x0d, 0x2e, 0x2f, 0x67, 0x72, + 0x6f, 0x75, 0x70, 0x3b, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x33, +} + +var ( + file_group_group_proto_rawDescOnce sync.Once + file_group_group_proto_rawDescData = file_group_group_proto_rawDesc +) -var _Group_serviceDesc = grpc.ServiceDesc{ - ServiceName: "group.group", - HandlerType: (*GroupServer)(nil), - Methods: []grpc.MethodDesc{ - { - MethodName: "createGroup", - Handler: _Group_CreateGroup_Handler, - }, - { - MethodName: "joinGroup", - Handler: _Group_JoinGroup_Handler, - }, - { - MethodName: "quitGroup", - Handler: _Group_QuitGroup_Handler, - }, - { - MethodName: "getGroupsInfo", - Handler: _Group_GetGroupsInfo_Handler, - }, - { - MethodName: "setGroupInfo", - Handler: _Group_SetGroupInfo_Handler, - }, - { - MethodName: "getGroupApplicationList", - Handler: _Group_GetGroupApplicationList_Handler, - }, - { - MethodName: "transferGroupOwner", - Handler: _Group_TransferGroupOwner_Handler, - }, - { - MethodName: "groupApplicationResponse", - Handler: _Group_GroupApplicationResponse_Handler, - }, - { - MethodName: "getGroupMemberList", - Handler: _Group_GetGroupMemberList_Handler, - }, - { - MethodName: "getGroupMembersInfo", - Handler: _Group_GetGroupMembersInfo_Handler, - }, - { - MethodName: "kickGroupMember", - Handler: _Group_KickGroupMember_Handler, - }, - { - MethodName: "getJoinedGroupList", - Handler: _Group_GetJoinedGroupList_Handler, - }, - { - MethodName: "inviteUserToGroup", - Handler: _Group_InviteUserToGroup_Handler, - }, - { - MethodName: "getGroupAllMember", - Handler: _Group_GetGroupAllMember_Handler, +func file_group_group_proto_rawDescGZIP() []byte { + file_group_group_proto_rawDescOnce.Do(func() { + file_group_group_proto_rawDescData = protoimpl.X.CompressGZIP(file_group_group_proto_rawDescData) + }) + return file_group_group_proto_rawDescData +} + +var file_group_group_proto_msgTypes = make([]protoimpl.MessageInfo, 34) +var file_group_group_proto_goTypes = []interface{}{ + (*CommonResp)(nil), // 0: group.CommonResp + (*CreateGroupReq)(nil), // 1: group.CreateGroupReq + (*GroupAddMemberInfo)(nil), // 2: group.GroupAddMemberInfo + (*CreateGroupResp)(nil), // 3: group.CreateGroupResp + (*GetGroupsInfoReq)(nil), // 4: group.GetGroupsInfoReq + (*GetGroupsInfoResp)(nil), // 5: group.GetGroupsInfoResp + (*SetGroupInfoReq)(nil), // 6: group.SetGroupInfoReq + (*GetGroupApplicationListReq)(nil), // 7: group.GetGroupApplicationListReq + (*GetGroupApplicationList_Data_User)(nil), // 8: group.GetGroupApplicationList_Data_User + (*GetGroupApplicationListData)(nil), // 9: group.GetGroupApplicationListData + (*GetGroupApplicationListResp)(nil), // 10: group.GetGroupApplicationListResp + (*TransferGroupOwnerReq)(nil), // 11: group.TransferGroupOwnerReq + (*TransferGroupOwnerResp)(nil), // 12: group.TransferGroupOwnerResp + (*JoinGroupReq)(nil), // 13: group.JoinGroupReq + (*GroupApplicationResponseReq)(nil), // 14: group.GroupApplicationResponseReq + (*GroupApplicationResponseResp)(nil), // 15: group.GroupApplicationResponseResp + (*SetOwnerGroupNickNameReq)(nil), // 16: group.SetOwnerGroupNickNameReq + (*QuitGroupReq)(nil), // 17: group.QuitGroupReq + (*GroupApplicationUserInfo)(nil), // 18: group.GroupApplicationUserInfo + (*GroupMemberFullInfo)(nil), // 19: group.GroupMemberFullInfo + (*GetGroupMemberListReq)(nil), // 20: group.GetGroupMemberListReq + (*GetGroupMemberListResp)(nil), // 21: group.GetGroupMemberListResp + (*GetGroupMembersInfoReq)(nil), // 22: group.GetGroupMembersInfoReq + (*GetGroupMembersInfoResp)(nil), // 23: group.GetGroupMembersInfoResp + (*KickGroupMemberReq)(nil), // 24: group.KickGroupMemberReq + (*Id2Result)(nil), // 25: group.Id2Result + (*KickGroupMemberResp)(nil), // 26: group.KickGroupMemberResp + (*GetJoinedGroupListReq)(nil), // 27: group.getJoinedGroupListReq + (*GroupInfo)(nil), // 28: group.GroupInfo + (*GetJoinedGroupListResp)(nil), // 29: group.getJoinedGroupListResp + (*InviteUserToGroupReq)(nil), // 30: group.inviteUserToGroupReq + (*InviteUserToGroupResp)(nil), // 31: group.inviteUserToGroupResp + (*GetGroupAllMemberReq)(nil), // 32: group.GetGroupAllMemberReq + (*GetGroupAllMemberResp)(nil), // 33: group.GetGroupAllMemberResp +} +var file_group_group_proto_depIdxs = []int32{ + 2, // 0: group.CreateGroupReq.memberList:type_name -> group.GroupAddMemberInfo + 28, // 1: group.GetGroupsInfoResp.data:type_name -> group.GroupInfo + 8, // 2: group.GetGroupApplicationListData.User:type_name -> group.GetGroupApplicationList_Data_User + 9, // 3: group.GetGroupApplicationListResp.Data:type_name -> group.GetGroupApplicationListData + 19, // 4: group.GetGroupMemberListResp.memberList:type_name -> group.GroupMemberFullInfo + 19, // 5: group.GetGroupMembersInfoResp.memberList:type_name -> group.GroupMemberFullInfo + 19, // 6: group.KickGroupMemberReq.uidListInfo:type_name -> group.GroupMemberFullInfo + 25, // 7: group.KickGroupMemberResp.id2result:type_name -> group.Id2Result + 28, // 8: group.getJoinedGroupListResp.groupList:type_name -> group.GroupInfo + 25, // 9: group.inviteUserToGroupResp.id2result:type_name -> group.Id2Result + 19, // 10: group.GetGroupAllMemberResp.memberList:type_name -> group.GroupMemberFullInfo + 1, // 11: group.group.createGroup:input_type -> group.CreateGroupReq + 13, // 12: group.group.joinGroup:input_type -> group.JoinGroupReq + 17, // 13: group.group.quitGroup:input_type -> group.QuitGroupReq + 4, // 14: group.group.getGroupsInfo:input_type -> group.GetGroupsInfoReq + 6, // 15: group.group.setGroupInfo:input_type -> group.SetGroupInfoReq + 7, // 16: group.group.getGroupApplicationList:input_type -> group.GetGroupApplicationListReq + 11, // 17: group.group.transferGroupOwner:input_type -> group.TransferGroupOwnerReq + 14, // 18: group.group.groupApplicationResponse:input_type -> group.GroupApplicationResponseReq + 20, // 19: group.group.getGroupMemberList:input_type -> group.GetGroupMemberListReq + 22, // 20: group.group.getGroupMembersInfo:input_type -> group.GetGroupMembersInfoReq + 24, // 21: group.group.kickGroupMember:input_type -> group.KickGroupMemberReq + 27, // 22: group.group.getJoinedGroupList:input_type -> group.getJoinedGroupListReq + 30, // 23: group.group.inviteUserToGroup:input_type -> group.inviteUserToGroupReq + 32, // 24: group.group.getGroupAllMember:input_type -> group.GetGroupAllMemberReq + 3, // 25: group.group.createGroup:output_type -> group.CreateGroupResp + 0, // 26: group.group.joinGroup:output_type -> group.CommonResp + 0, // 27: group.group.quitGroup:output_type -> group.CommonResp + 5, // 28: group.group.getGroupsInfo:output_type -> group.GetGroupsInfoResp + 0, // 29: group.group.setGroupInfo:output_type -> group.CommonResp + 10, // 30: group.group.getGroupApplicationList:output_type -> group.GetGroupApplicationListResp + 12, // 31: group.group.transferGroupOwner:output_type -> group.TransferGroupOwnerResp + 15, // 32: group.group.groupApplicationResponse:output_type -> group.GroupApplicationResponseResp + 21, // 33: group.group.getGroupMemberList:output_type -> group.GetGroupMemberListResp + 23, // 34: group.group.getGroupMembersInfo:output_type -> group.GetGroupMembersInfoResp + 26, // 35: group.group.kickGroupMember:output_type -> group.KickGroupMemberResp + 29, // 36: group.group.getJoinedGroupList:output_type -> group.getJoinedGroupListResp + 31, // 37: group.group.inviteUserToGroup:output_type -> group.inviteUserToGroupResp + 33, // 38: group.group.getGroupAllMember:output_type -> group.GetGroupAllMemberResp + 25, // [25:39] is the sub-list for method output_type + 11, // [11:25] is the sub-list for method input_type + 11, // [11:11] is the sub-list for extension type_name + 11, // [11:11] is the sub-list for extension extendee + 0, // [0:11] is the sub-list for field type_name +} + +func init() { file_group_group_proto_init() } +func file_group_group_proto_init() { + if File_group_group_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_group_group_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CommonResp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_group_group_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CreateGroupReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_group_group_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GroupAddMemberInfo); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_group_group_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CreateGroupResp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_group_group_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetGroupsInfoReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_group_group_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetGroupsInfoResp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_group_group_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SetGroupInfoReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_group_group_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetGroupApplicationListReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_group_group_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetGroupApplicationList_Data_User); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_group_group_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetGroupApplicationListData); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_group_group_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetGroupApplicationListResp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_group_group_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*TransferGroupOwnerReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_group_group_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*TransferGroupOwnerResp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_group_group_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*JoinGroupReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_group_group_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GroupApplicationResponseReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_group_group_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GroupApplicationResponseResp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_group_group_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SetOwnerGroupNickNameReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_group_group_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*QuitGroupReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_group_group_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GroupApplicationUserInfo); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_group_group_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GroupMemberFullInfo); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_group_group_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetGroupMemberListReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_group_group_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetGroupMemberListResp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_group_group_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetGroupMembersInfoReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_group_group_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetGroupMembersInfoResp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_group_group_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*KickGroupMemberReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_group_group_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Id2Result); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_group_group_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*KickGroupMemberResp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_group_group_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetJoinedGroupListReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_group_group_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GroupInfo); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_group_group_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetJoinedGroupListResp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_group_group_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*InviteUserToGroupReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_group_group_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*InviteUserToGroupResp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_group_group_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetGroupAllMemberReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_group_group_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetGroupAllMemberResp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_group_group_proto_rawDesc, + NumEnums: 0, + NumMessages: 34, + NumExtensions: 0, + NumServices: 1, }, - }, - Streams: []grpc.StreamDesc{}, - Metadata: "group/group.proto", -} - -func init() { proto.RegisterFile("group/group.proto", fileDescriptor_group_9fd4d73937974f0d) } - -var fileDescriptor_group_9fd4d73937974f0d = []byte{ - // 1717 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x59, 0xcd, 0x6e, 0xdc, 0x46, - 0x12, 0x06, 0x67, 0x38, 0x92, 0xa6, 0xf4, 0xdf, 0xb2, 0x64, 0xee, 0x58, 0x2b, 0xc8, 0xbd, 0xc6, - 0x42, 0xd8, 0x83, 0x17, 0x90, 0x91, 0x00, 0x4e, 0x7c, 0x88, 0x2d, 0x59, 0xb2, 0x9c, 0x58, 0xb2, - 0x29, 0xf9, 0x92, 0x8b, 0x4d, 0x0f, 0x5b, 0x63, 0x5a, 0x33, 0xe4, 0x88, 0xe4, 0xc4, 0x4e, 0x2e, - 0x81, 0x83, 0x00, 0xf9, 0x43, 0x90, 0x83, 0x4f, 0x49, 0x5e, 0x20, 0xa7, 0x3c, 0x41, 0xde, 0x26, - 0x2f, 0x12, 0x74, 0xf5, 0x0f, 0x9b, 0x7f, 0x23, 0x43, 0x0a, 0xe2, 0xcb, 0x80, 0x55, 0x5d, 0xdd, - 0x5d, 0x55, 0x5d, 0xf5, 0x75, 0x55, 0x0f, 0x2c, 0xf6, 0xe2, 0x68, 0x34, 0xfc, 0x3f, 0xfe, 0x5e, - 0x1f, 0xc6, 0x51, 0x1a, 0x91, 0x16, 0x12, 0x74, 0x07, 0x60, 0x2b, 0x1a, 0x0c, 0xa2, 0xd0, 0x65, - 0xc9, 0x90, 0xac, 0x42, 0xfb, 0x6e, 0x1c, 0x47, 0xf1, 0x56, 0xe4, 0x33, 0xc7, 0x5a, 0xb7, 0x36, - 0x5a, 0x6e, 0xc6, 0x20, 0x1d, 0x98, 0x42, 0xe2, 0x41, 0xd2, 0x73, 0x1a, 0xeb, 0xd6, 0x46, 0xdb, - 0xd5, 0x34, 0x7d, 0xd3, 0x80, 0xb9, 0xad, 0x98, 0x79, 0x29, 0xdb, 0xe5, 0xeb, 0xba, 0xec, 0x94, - 0xdc, 0x04, 0x18, 0xb0, 0xc1, 0x33, 0x16, 0x7f, 0x12, 0x24, 0xa9, 0x63, 0xad, 0x37, 0x37, 0xa6, - 0x37, 0xff, 0x75, 0x5d, 0xe8, 0x80, 0x42, 0xb7, 0x7d, 0xff, 0x01, 0x0a, 0xec, 0x85, 0xc7, 0x91, - 0x6b, 0x08, 0x73, 0x3d, 0x50, 0x6e, 0xdf, 0x1b, 0x30, 0xb9, 0x55, 0xc6, 0x20, 0x14, 0x66, 0x82, - 0x30, 0x8d, 0x23, 0x7f, 0xd4, 0x4d, 0x83, 0x28, 0x74, 0x9a, 0x28, 0x90, 0xe3, 0x71, 0x99, 0x30, - 0x4a, 0x83, 0xe3, 0xa0, 0xeb, 0xa1, 0x8c, 0x2d, 0x64, 0x4c, 0x1e, 0x71, 0x60, 0xf2, 0xd8, 0xeb, - 0xb2, 0xc7, 0x71, 0xdf, 0x69, 0xe1, 0xb0, 0x22, 0xc9, 0x25, 0x68, 0xa5, 0xd1, 0x09, 0x0b, 0x9d, - 0x09, 0xe4, 0x0b, 0x82, 0xac, 0xc3, 0x74, 0x34, 0x64, 0x31, 0x4e, 0xde, 0xdb, 0x76, 0x26, 0x71, - 0xcc, 0x64, 0x91, 0x39, 0x68, 0xb0, 0x57, 0xce, 0x14, 0x0e, 0x34, 0xd8, 0x2b, 0xfa, 0x11, 0x90, - 0xb2, 0xa5, 0x64, 0x01, 0x9a, 0xa3, 0xc0, 0x47, 0xff, 0xb6, 0x5d, 0xfe, 0xc9, 0x35, 0x49, 0x58, - 0xea, 0x46, 0x7d, 0x61, 0x6d, 0xcb, 0x55, 0x24, 0x65, 0x30, 0x9f, 0x73, 0xeb, 0x45, 0x0e, 0x89, - 0x6f, 0x83, 0x5e, 0xdc, 0xdb, 0x96, 0x3e, 0x53, 0x24, 0xed, 0xc3, 0xc2, 0x2e, 0x4b, 0x71, 0x8f, - 0x04, 0x4f, 0x83, 0x9d, 0x72, 0x73, 0xe5, 0xb0, 0x3e, 0xc0, 0xb6, 0x6b, 0xb2, 0x32, 0x37, 0x35, - 0xc6, 0xb8, 0xa9, 0x59, 0x72, 0x13, 0x4d, 0x60, 0xb1, 0xb0, 0xdb, 0x85, 0xcc, 0xba, 0x06, 0xb6, - 0xef, 0xa5, 0x9e, 0xd3, 0xc4, 0x10, 0x5b, 0x30, 0x43, 0x0c, 0x57, 0xc7, 0x51, 0xfa, 0xa7, 0x05, - 0xf3, 0x87, 0x72, 0x57, 0x65, 0xa2, 0xe1, 0x10, 0x2b, 0xe7, 0x90, 0xb3, 0x23, 0x30, 0x17, 0x5d, - 0xcd, 0x8a, 0xe8, 0x2a, 0x46, 0xa9, 0x5d, 0x11, 0xa5, 0x7f, 0x7b, 0x04, 0xd2, 0x87, 0xd0, 0x51, - 0xae, 0xbd, 0x3d, 0x1c, 0xf6, 0xa5, 0x32, 0xfc, 0xb4, 0xb8, 0xbd, 0x0b, 0xd0, 0x7c, 0xac, 0x6d, - 0xe5, 0x9f, 0x7c, 0xc5, 0x03, 0x63, 0x45, 0x61, 0xa9, 0xc9, 0xa2, 0x3f, 0xdb, 0x70, 0xb5, 0x66, - 0xc9, 0x27, 0xdb, 0x5e, 0xea, 0x3d, 0x79, 0x9c, 0xb0, 0x98, 0x47, 0xbe, 0x5e, 0xb8, 0xb1, 0xb7, - 0xcd, 0x2d, 0xdb, 0x95, 0x9e, 0x15, 0x6b, 0x2a, 0x92, 0xac, 0x01, 0xec, 0xc4, 0xd1, 0x80, 0xcf, - 0xd2, 0xd1, 0x61, 0x70, 0xf8, 0x49, 0x1f, 0x45, 0x72, 0x54, 0xf8, 0x4c, 0xd3, 0x84, 0x80, 0xbd, - 0xd3, 0xf7, 0x7a, 0xe8, 0xac, 0x96, 0x8b, 0xdf, 0x7c, 0x3d, 0x97, 0x9d, 0x8e, 0x58, 0x92, 0xf2, - 0xd8, 0x10, 0xee, 0x32, 0x38, 0x7c, 0xfc, 0x9e, 0x17, 0xfa, 0x7d, 0xe6, 0xf3, 0x71, 0xe1, 0x32, - 0x83, 0xc3, 0x35, 0xbd, 0xed, 0xfb, 0x47, 0xc1, 0x80, 0x61, 0xe2, 0x36, 0x5d, 0x45, 0x92, 0xff, - 0xc1, 0x82, 0xd2, 0x6b, 0x3f, 0xe8, 0x9e, 0x84, 0x3c, 0x14, 0xda, 0x38, 0xbf, 0xc4, 0x27, 0xff, - 0x85, 0x39, 0xa1, 0xa5, 0x96, 0x04, 0x94, 0x2c, 0x70, 0xc9, 0x06, 0xcc, 0xab, 0xb9, 0x3b, 0xf2, - 0xe4, 0xa7, 0x51, 0xb0, 0xc8, 0x26, 0xd7, 0x60, 0x56, 0xcc, 0x55, 0x72, 0x33, 0x28, 0x97, 0x67, - 0xf2, 0xf3, 0x93, 0xb6, 0x70, 0xae, 0x33, 0x2b, 0xce, 0xcf, 0x60, 0x71, 0x9f, 0x1d, 0x7d, 0x3e, - 0x64, 0xce, 0x9c, 0xf0, 0x19, 0xff, 0xe6, 0xb1, 0x29, 0x44, 0x0e, 0x53, 0x2f, 0x1d, 0x25, 0xce, - 0x3c, 0x8e, 0xe5, 0x78, 0x99, 0x8c, 0xcb, 0x92, 0x51, 0x3f, 0x75, 0x16, 0x4c, 0x19, 0xc1, 0xa3, - 0xa7, 0x70, 0xa5, 0x26, 0x34, 0x78, 0x64, 0xf0, 0x20, 0xde, 0x8a, 0x46, 0x61, 0x2a, 0xd3, 0x59, - 0x10, 0xe4, 0x16, 0xd8, 0xa8, 0x6b, 0x03, 0xd3, 0x75, 0x43, 0xa5, 0xeb, 0x59, 0x21, 0xe6, 0xe2, - 0x2c, 0xfa, 0x8d, 0x55, 0xbb, 0x27, 0xc2, 0x88, 0x03, 0x93, 0x77, 0x63, 0x13, 0x44, 0x14, 0x49, - 0x56, 0x60, 0xe2, 0x6e, 0x6c, 0x00, 0x88, 0xa4, 0xc8, 0xfb, 0x60, 0x6f, 0x0b, 0xf8, 0xb0, 0x36, - 0xa6, 0x37, 0xe9, 0x78, 0x7d, 0xb8, 0xa4, 0x8b, 0xf2, 0xf4, 0x07, 0x0b, 0x96, 0x8f, 0x62, 0x2f, - 0x4c, 0x8e, 0x59, 0x8c, 0xa2, 0x07, 0x2f, 0x43, 0x16, 0x4b, 0x58, 0xd9, 0xcd, 0xc3, 0x8a, 0x0a, - 0xfe, 0x0e, 0x4c, 0x1d, 0xf4, 0x7d, 0x14, 0x54, 0x30, 0xa6, 0x68, 0x3e, 0xb6, 0xcf, 0x5e, 0x8a, - 0x31, 0x91, 0x16, 0x9a, 0x2e, 0xa6, 0xa9, 0x5d, 0x4e, 0xd3, 0xfb, 0xb0, 0x52, 0xa5, 0xcc, 0x79, - 0x3c, 0x42, 0xbf, 0x80, 0x99, 0xfb, 0x51, 0x10, 0xea, 0x9b, 0xbc, 0x1e, 0x26, 0x1d, 0x98, 0x1c, - 0xb0, 0x24, 0xf1, 0x7a, 0x0a, 0x24, 0x15, 0x99, 0x01, 0x58, 0xb3, 0x00, 0x60, 0x67, 0xd8, 0xf1, - 0x9d, 0x0d, 0x57, 0x8a, 0x8e, 0xe7, 0x66, 0x44, 0x61, 0xc2, 0xe4, 0xad, 0x64, 0xae, 0x60, 0x95, - 0x56, 0xe0, 0x3a, 0xa1, 0xf1, 0x19, 0xf4, 0x48, 0xd2, 0x3c, 0x97, 0xe6, 0x38, 0x50, 0xb2, 0x4b, - 0xa0, 0x54, 0x80, 0x02, 0xbc, 0x15, 0x5a, 0x65, 0x28, 0xd8, 0xaf, 0x49, 0xf1, 0x89, 0xea, 0x14, - 0x37, 0xa1, 0x6e, 0xb2, 0x00, 0x75, 0x39, 0x40, 0xc1, 0xfd, 0xa6, 0x8a, 0x80, 0x82, 0xbb, 0x95, - 0x60, 0xa2, 0x5d, 0x05, 0x13, 0x06, 0xc8, 0x41, 0x1e, 0xe4, 0xf2, 0xf0, 0x39, 0x7d, 0x06, 0x7c, - 0xce, 0x94, 0xe0, 0x53, 0xc1, 0xcb, 0xec, 0x18, 0x78, 0x99, 0x7b, 0x0b, 0x78, 0x99, 0xaf, 0x80, - 0x97, 0x87, 0xb0, 0x5a, 0x1f, 0x0a, 0xe7, 0x8a, 0xec, 0x6f, 0x2d, 0x70, 0x0e, 0x59, 0x8a, 0x01, - 0x81, 0x4b, 0x2b, 0x3f, 0x8e, 0x0f, 0xf3, 0x0e, 0x4c, 0x85, 0xea, 0x18, 0x64, 0xda, 0x2a, 0xba, - 0x18, 0x90, 0xcd, 0x72, 0x40, 0xea, 0x54, 0xb0, 0x8d, 0x54, 0xa0, 0x4f, 0x61, 0xe6, 0xd1, 0x28, - 0x48, 0xdf, 0x22, 0xc9, 0x0a, 0xb7, 0x7e, 0xa3, 0x5c, 0x77, 0x56, 0x26, 0x1b, 0xfd, 0xba, 0x01, - 0x4e, 0xd1, 0x7f, 0x18, 0x5d, 0xbc, 0x08, 0xad, 0xdf, 0x4e, 0x96, 0xa7, 0x8d, 0xac, 0x3c, 0x25, - 0x60, 0xe3, 0x95, 0x26, 0x56, 0xc7, 0x6f, 0xce, 0x0b, 0xba, 0xba, 0xac, 0xc1, 0x6f, 0xee, 0xf5, - 0x98, 0x9d, 0x72, 0xaf, 0x8b, 0xdc, 0x90, 0x14, 0xcf, 0x08, 0x2f, 0x53, 0x01, 0xa3, 0x70, 0x02, - 0xa3, 0xb0, 0xc8, 0xe6, 0xab, 0x1e, 0xf3, 0x0b, 0x7e, 0x52, 0x44, 0xd3, 0xb1, 0xbc, 0xe0, 0x85, - 0xad, 0x11, 0xcf, 0x13, 0x91, 0x05, 0x06, 0x87, 0x8f, 0x3f, 0xcf, 0x22, 0x54, 0x84, 0xbf, 0xc1, - 0xa1, 0x6f, 0x2c, 0x58, 0x42, 0x37, 0x88, 0x12, 0x7c, 0x67, 0xd4, 0xef, 0xa3, 0x07, 0x56, 0x60, - 0x62, 0xc4, 0xbd, 0xa1, 0x2a, 0x71, 0x49, 0x71, 0x1d, 0xe2, 0xac, 0x12, 0xc7, 0x6f, 0x1e, 0x00, - 0x2f, 0xa2, 0x40, 0xa8, 0xce, 0xbd, 0x60, 0xbb, 0x9a, 0xce, 0x05, 0x87, 0x5d, 0x08, 0x8e, 0xda, - 0x02, 0x8f, 0xfe, 0x6a, 0xc1, 0xb2, 0xba, 0x63, 0x1e, 0xe8, 0xce, 0x67, 0x7c, 0x20, 0x9c, 0xb3, - 0xde, 0xe6, 0x96, 0x1e, 0x07, 0xfd, 0x94, 0xc5, 0xa8, 0x5f, 0xcb, 0x95, 0x14, 0xdf, 0x29, 0x64, - 0xaf, 0xd2, 0x43, 0x76, 0x2a, 0x2b, 0x2a, 0x45, 0xd2, 0xdf, 0x2c, 0x58, 0xa9, 0xd2, 0x4e, 0xd4, - 0xe9, 0xac, 0x58, 0xa7, 0x33, 0xb3, 0x4e, 0x67, 0x85, 0x3a, 0x5d, 0xd1, 0xe4, 0x83, 0x5c, 0x43, - 0x28, 0xaa, 0xf5, 0x8e, 0x59, 0xad, 0xe7, 0x0f, 0x28, 0xd7, 0x11, 0x1a, 0xaa, 0xda, 0x79, 0x55, - 0xbf, 0x2f, 0xa9, 0x9a, 0x9c, 0x5d, 0xde, 0xaf, 0xe5, 0x54, 0x69, 0x60, 0x6b, 0x63, 0x6e, 0x57, - 0x7b, 0x7b, 0x45, 0xe5, 0xdb, 0xcb, 0x2c, 0xbf, 0x7f, 0xb2, 0xe0, 0x72, 0xa5, 0x32, 0xef, 0xca, - 0x71, 0xf4, 0x0f, 0x0b, 0xc8, 0xc7, 0x41, 0xf7, 0xc4, 0x90, 0x1b, 0xef, 0x9a, 0x5b, 0x30, 0x3d, - 0x0a, 0x7c, 0x3e, 0x97, 0xaf, 0x25, 0xab, 0xb4, 0x71, 0xbb, 0x99, 0xe2, 0x02, 0x02, 0xbc, 0x44, - 0xf7, 0x44, 0x92, 0xaa, 0xc6, 0xc0, 0xa2, 0x43, 0x5b, 0x65, 0x87, 0xbe, 0x07, 0xed, 0x3d, 0x7f, - 0x53, 0xdc, 0x07, 0x88, 0x4c, 0x7b, 0x59, 0xe3, 0xbc, 0xe7, 0x8b, 0xed, 0xf0, 0xfe, 0x10, 0xd9, - 0x2a, 0x29, 0xfa, 0x25, 0x2c, 0x95, 0x8c, 0xbe, 0xd0, 0x11, 0x5c, 0x87, 0x76, 0xe0, 0x6f, 0xca, - 0xbd, 0xf2, 0x8d, 0xa6, 0xd6, 0xcf, 0xcd, 0x44, 0xe8, 0x01, 0x2c, 0xf7, 0x58, 0xca, 0xab, 0x28, - 0xe6, 0xa3, 0x16, 0x2a, 0xbb, 0xb5, 0x23, 0xac, 0x31, 0x8e, 0x28, 0x43, 0x3c, 0x7d, 0xdd, 0x80, - 0xb6, 0xee, 0x5d, 0xb3, 0xe3, 0xf3, 0xf3, 0xc7, 0xe7, 0xbf, 0xf3, 0xc6, 0x75, 0x0d, 0xa0, 0x8b, - 0x0f, 0x16, 0x1a, 0xe6, 0x6d, 0xd7, 0xe0, 0xf0, 0x99, 0x11, 0x96, 0x63, 0xbe, 0x2c, 0x79, 0x14, - 0xc9, 0x7d, 0x20, 0xe2, 0x56, 0xf4, 0x0c, 0x1c, 0xe8, 0x67, 0x5d, 0x93, 0x45, 0xbf, 0xb2, 0x60, - 0xa5, 0xca, 0xab, 0x17, 0x3d, 0xd9, 0x9e, 0x5a, 0xaa, 0xf6, 0x09, 0x21, 0x13, 0xa1, 0xbf, 0x58, - 0x70, 0x29, 0x08, 0x3f, 0x0b, 0x52, 0xc6, 0xef, 0xd2, 0xa3, 0x48, 0x5f, 0xe0, 0xe7, 0x3c, 0xd9, - 0xfa, 0x57, 0x19, 0x23, 0x99, 0xec, 0x5c, 0x32, 0x39, 0x30, 0x29, 0x73, 0xce, 0x69, 0x21, 0x74, - 0x29, 0x92, 0xbe, 0xb6, 0x60, 0xb9, 0x42, 0xb9, 0x7f, 0x34, 0xf4, 0x9f, 0xc3, 0x25, 0xdd, 0x3c, - 0xf5, 0xfb, 0x6f, 0x03, 0x39, 0xe7, 0x7d, 0x47, 0xfa, 0xd1, 0xb8, 0x43, 0x8d, 0xad, 0xde, 0x15, - 0xd6, 0x6e, 0xfe, 0x3e, 0x05, 0xe2, 0x59, 0x95, 0x83, 0x68, 0x37, 0x7b, 0xb6, 0x23, 0xcb, 0x72, - 0x81, 0xfc, 0x0b, 0x69, 0x67, 0xa5, 0x8a, 0x9d, 0x0c, 0xc9, 0x0d, 0x68, 0xbf, 0x50, 0xfd, 0x17, - 0x59, 0x92, 0x42, 0x66, 0x47, 0xd6, 0x59, 0x54, 0x33, 0xb3, 0xb7, 0xdb, 0x1b, 0xd0, 0x3e, 0x55, - 0xf5, 0xa4, 0x9e, 0x64, 0x56, 0x98, 0x55, 0x93, 0xee, 0xc0, 0x6c, 0xcf, 0x7c, 0x89, 0x23, 0x97, - 0x0b, 0xed, 0xaf, 0xba, 0x4b, 0x3b, 0x4e, 0xf5, 0x40, 0x32, 0x24, 0x37, 0x61, 0x26, 0x31, 0xde, - 0xd5, 0x88, 0xb2, 0xaa, 0xf0, 0xd8, 0x56, 0xb5, 0xfd, 0x53, 0xb8, 0xdc, 0xab, 0xee, 0xb3, 0xc9, - 0xd5, 0xf1, 0x7d, 0x38, 0x5f, 0x90, 0x9e, 0x25, 0x92, 0x0c, 0xc9, 0x23, 0x20, 0x69, 0xa9, 0x2d, - 0x26, 0xab, 0x72, 0x66, 0x65, 0xfb, 0xde, 0xf9, 0xf7, 0x98, 0xd1, 0x64, 0x48, 0xba, 0xe0, 0xf4, - 0x6a, 0xba, 0x12, 0x42, 0x73, 0xef, 0xdb, 0x95, 0x1d, 0x6c, 0xe7, 0x3f, 0x67, 0xca, 0x08, 0xbd, - 0x7b, 0xa5, 0xfa, 0x4b, 0xeb, 0x5d, 0x59, 0x38, 0x6a, 0xbd, 0x6b, 0x0a, 0xb7, 0x23, 0x58, 0xea, - 0x95, 0x4b, 0x13, 0x52, 0x3d, 0x4b, 0x9f, 0xfb, 0xda, 0xb8, 0xe1, 0x64, 0x48, 0xee, 0xc1, 0xfc, - 0x49, 0xfe, 0xa6, 0x25, 0xea, 0x91, 0xbf, 0x5c, 0x76, 0x74, 0x3a, 0x75, 0x43, 0xda, 0xe4, 0x02, - 0xb8, 0x6b, 0x93, 0x2b, 0x6f, 0x53, 0x6d, 0x72, 0xcd, 0xad, 0xb0, 0x0f, 0x8b, 0x25, 0x34, 0x24, - 0x57, 0xe4, 0x9c, 0x2a, 0x10, 0xef, 0xac, 0xd6, 0x0f, 0x8a, 0xf5, 0x7a, 0x45, 0xbc, 0xd1, 0xeb, - 0x55, 0x81, 0x5e, 0x67, 0xb5, 0x7e, 0x30, 0x19, 0xde, 0x99, 0xfd, 0x54, 0xbc, 0xa7, 0x7f, 0x88, - 0xbf, 0xcf, 0x26, 0xf0, 0xaf, 0x99, 0x1b, 0x7f, 0x05, 0x00, 0x00, 0xff, 0xff, 0x31, 0x19, 0x23, - 0x3c, 0xaf, 0x19, 0x00, 0x00, + GoTypes: file_group_group_proto_goTypes, + DependencyIndexes: file_group_group_proto_depIdxs, + MessageInfos: file_group_group_proto_msgTypes, + }.Build() + File_group_group_proto = out.File + file_group_group_proto_rawDesc = nil + file_group_group_proto_goTypes = nil + file_group_group_proto_depIdxs = nil } diff --git a/src/proto/push/push.pb.go b/src/proto/push/push.pb.go index bc663c33f..27d7a8a69 100644 --- a/src/proto/push/push.pb.go +++ b/src/proto/push/push.pb.go @@ -1,327 +1,360 @@ // Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.26.0 +// protoc v3.7.1 // source: push/push.proto -package pbPush // import "push" - -import proto "github.com/golang/protobuf/proto" -import fmt "fmt" -import math "math" +package pbPush import ( - context "golang.org/x/net/context" - grpc "google.golang.org/grpc" + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + reflect "reflect" + sync "sync" ) -// 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 +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) type PushMsgReq struct { - SendID string `protobuf:"bytes,1,opt,name=SendID" json:"SendID,omitempty"` - RecvID string `protobuf:"bytes,2,opt,name=RecvID" json:"RecvID,omitempty"` - Content string `protobuf:"bytes,3,opt,name=Content" json:"Content,omitempty"` - RecvSeq int64 `protobuf:"varint,4,opt,name=RecvSeq" json:"RecvSeq,omitempty"` - SendTime int64 `protobuf:"varint,5,opt,name=SendTime" json:"SendTime,omitempty"` - MsgFrom int32 `protobuf:"varint,6,opt,name=MsgFrom" json:"MsgFrom,omitempty"` - ContentType int32 `protobuf:"varint,7,opt,name=ContentType" json:"ContentType,omitempty"` - SessionType int32 `protobuf:"varint,8,opt,name=SessionType" json:"SessionType,omitempty"` - OperationID string `protobuf:"bytes,9,opt,name=OperationID" json:"OperationID,omitempty"` - MsgID string `protobuf:"bytes,10,opt,name=MsgID" json:"MsgID,omitempty"` - OfflineInfo string `protobuf:"bytes,11,opt,name=OfflineInfo" json:"OfflineInfo,omitempty"` - Options string `protobuf:"bytes,12,opt,name=Options" json:"Options,omitempty"` - PlatformID int32 `protobuf:"varint,13,opt,name=PlatformID" json:"PlatformID,omitempty"` - SenderNickName string `protobuf:"bytes,14,opt,name=SenderNickName" json:"SenderNickName,omitempty"` - SenderFaceURL string `protobuf:"bytes,15,opt,name=SenderFaceURL" json:"SenderFaceURL,omitempty"` - ClientMsgID string `protobuf:"bytes,16,opt,name=ClientMsgID" json:"ClientMsgID,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *PushMsgReq) Reset() { *m = PushMsgReq{} } -func (m *PushMsgReq) String() string { return proto.CompactTextString(m) } -func (*PushMsgReq) ProtoMessage() {} -func (*PushMsgReq) Descriptor() ([]byte, []int) { - return fileDescriptor_push_a8d13c8ad86fddce, []int{0} -} -func (m *PushMsgReq) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_PushMsgReq.Unmarshal(m, b) -} -func (m *PushMsgReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_PushMsgReq.Marshal(b, m, deterministic) -} -func (dst *PushMsgReq) XXX_Merge(src proto.Message) { - xxx_messageInfo_PushMsgReq.Merge(dst, src) + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + SendID string `protobuf:"bytes,1,opt,name=SendID,proto3" json:"SendID,omitempty"` + RecvID string `protobuf:"bytes,2,opt,name=RecvID,proto3" json:"RecvID,omitempty"` + Content string `protobuf:"bytes,3,opt,name=Content,proto3" json:"Content,omitempty"` + RecvSeq int64 `protobuf:"varint,4,opt,name=RecvSeq,proto3" json:"RecvSeq,omitempty"` + SendTime int64 `protobuf:"varint,5,opt,name=SendTime,proto3" json:"SendTime,omitempty"` + MsgFrom int32 `protobuf:"varint,6,opt,name=MsgFrom,proto3" json:"MsgFrom,omitempty"` + ContentType int32 `protobuf:"varint,7,opt,name=ContentType,proto3" json:"ContentType,omitempty"` + SessionType int32 `protobuf:"varint,8,opt,name=SessionType,proto3" json:"SessionType,omitempty"` + OperationID string `protobuf:"bytes,9,opt,name=OperationID,proto3" json:"OperationID,omitempty"` + MsgID string `protobuf:"bytes,10,opt,name=MsgID,proto3" json:"MsgID,omitempty"` + OfflineInfo string `protobuf:"bytes,11,opt,name=OfflineInfo,proto3" json:"OfflineInfo,omitempty"` + Options string `protobuf:"bytes,12,opt,name=Options,proto3" json:"Options,omitempty"` + PlatformID int32 `protobuf:"varint,13,opt,name=PlatformID,proto3" json:"PlatformID,omitempty"` + SenderNickName string `protobuf:"bytes,14,opt,name=SenderNickName,proto3" json:"SenderNickName,omitempty"` + SenderFaceURL string `protobuf:"bytes,15,opt,name=SenderFaceURL,proto3" json:"SenderFaceURL,omitempty"` + ClientMsgID string `protobuf:"bytes,16,opt,name=ClientMsgID,proto3" json:"ClientMsgID,omitempty"` +} + +func (x *PushMsgReq) Reset() { + *x = PushMsgReq{} + if protoimpl.UnsafeEnabled { + mi := &file_push_push_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *PushMsgReq) XXX_Size() int { - return xxx_messageInfo_PushMsgReq.Size(m) + +func (x *PushMsgReq) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *PushMsgReq) XXX_DiscardUnknown() { - xxx_messageInfo_PushMsgReq.DiscardUnknown(m) + +func (*PushMsgReq) ProtoMessage() {} + +func (x *PushMsgReq) ProtoReflect() protoreflect.Message { + mi := &file_push_push_proto_msgTypes[0] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) } -var xxx_messageInfo_PushMsgReq proto.InternalMessageInfo +// Deprecated: Use PushMsgReq.ProtoReflect.Descriptor instead. +func (*PushMsgReq) Descriptor() ([]byte, []int) { + return file_push_push_proto_rawDescGZIP(), []int{0} +} -func (m *PushMsgReq) GetSendID() string { - if m != nil { - return m.SendID +func (x *PushMsgReq) GetSendID() string { + if x != nil { + return x.SendID } return "" } -func (m *PushMsgReq) GetRecvID() string { - if m != nil { - return m.RecvID +func (x *PushMsgReq) GetRecvID() string { + if x != nil { + return x.RecvID } return "" } -func (m *PushMsgReq) GetContent() string { - if m != nil { - return m.Content +func (x *PushMsgReq) GetContent() string { + if x != nil { + return x.Content } return "" } -func (m *PushMsgReq) GetRecvSeq() int64 { - if m != nil { - return m.RecvSeq +func (x *PushMsgReq) GetRecvSeq() int64 { + if x != nil { + return x.RecvSeq } return 0 } -func (m *PushMsgReq) GetSendTime() int64 { - if m != nil { - return m.SendTime +func (x *PushMsgReq) GetSendTime() int64 { + if x != nil { + return x.SendTime } return 0 } -func (m *PushMsgReq) GetMsgFrom() int32 { - if m != nil { - return m.MsgFrom +func (x *PushMsgReq) GetMsgFrom() int32 { + if x != nil { + return x.MsgFrom } return 0 } -func (m *PushMsgReq) GetContentType() int32 { - if m != nil { - return m.ContentType +func (x *PushMsgReq) GetContentType() int32 { + if x != nil { + return x.ContentType } return 0 } -func (m *PushMsgReq) GetSessionType() int32 { - if m != nil { - return m.SessionType +func (x *PushMsgReq) GetSessionType() int32 { + if x != nil { + return x.SessionType } return 0 } -func (m *PushMsgReq) GetOperationID() string { - if m != nil { - return m.OperationID +func (x *PushMsgReq) GetOperationID() string { + if x != nil { + return x.OperationID } return "" } -func (m *PushMsgReq) GetMsgID() string { - if m != nil { - return m.MsgID +func (x *PushMsgReq) GetMsgID() string { + if x != nil { + return x.MsgID } return "" } -func (m *PushMsgReq) GetOfflineInfo() string { - if m != nil { - return m.OfflineInfo +func (x *PushMsgReq) GetOfflineInfo() string { + if x != nil { + return x.OfflineInfo } return "" } -func (m *PushMsgReq) GetOptions() string { - if m != nil { - return m.Options +func (x *PushMsgReq) GetOptions() string { + if x != nil { + return x.Options } return "" } -func (m *PushMsgReq) GetPlatformID() int32 { - if m != nil { - return m.PlatformID +func (x *PushMsgReq) GetPlatformID() int32 { + if x != nil { + return x.PlatformID } return 0 } -func (m *PushMsgReq) GetSenderNickName() string { - if m != nil { - return m.SenderNickName +func (x *PushMsgReq) GetSenderNickName() string { + if x != nil { + return x.SenderNickName } return "" } -func (m *PushMsgReq) GetSenderFaceURL() string { - if m != nil { - return m.SenderFaceURL +func (x *PushMsgReq) GetSenderFaceURL() string { + if x != nil { + return x.SenderFaceURL } return "" } -func (m *PushMsgReq) GetClientMsgID() string { - if m != nil { - return m.ClientMsgID +func (x *PushMsgReq) GetClientMsgID() string { + if x != nil { + return x.ClientMsgID } return "" } type PushMsgResp struct { - ResultCode int32 `protobuf:"varint,1,opt,name=ResultCode" json:"ResultCode,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields -func (m *PushMsgResp) Reset() { *m = PushMsgResp{} } -func (m *PushMsgResp) String() string { return proto.CompactTextString(m) } -func (*PushMsgResp) ProtoMessage() {} -func (*PushMsgResp) Descriptor() ([]byte, []int) { - return fileDescriptor_push_a8d13c8ad86fddce, []int{1} -} -func (m *PushMsgResp) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_PushMsgResp.Unmarshal(m, b) -} -func (m *PushMsgResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_PushMsgResp.Marshal(b, m, deterministic) -} -func (dst *PushMsgResp) XXX_Merge(src proto.Message) { - xxx_messageInfo_PushMsgResp.Merge(dst, src) -} -func (m *PushMsgResp) XXX_Size() int { - return xxx_messageInfo_PushMsgResp.Size(m) -} -func (m *PushMsgResp) XXX_DiscardUnknown() { - xxx_messageInfo_PushMsgResp.DiscardUnknown(m) + ResultCode int32 `protobuf:"varint,1,opt,name=ResultCode,proto3" json:"ResultCode,omitempty"` } -var xxx_messageInfo_PushMsgResp proto.InternalMessageInfo - -func (m *PushMsgResp) GetResultCode() int32 { - if m != nil { - return m.ResultCode +func (x *PushMsgResp) Reset() { + *x = PushMsgResp{} + if protoimpl.UnsafeEnabled { + mi := &file_push_push_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } - return 0 } -func init() { - proto.RegisterType((*PushMsgReq)(nil), "push.PushMsgReq") - proto.RegisterType((*PushMsgResp)(nil), "push.PushMsgResp") +func (x *PushMsgResp) String() string { + return protoimpl.X.MessageStringOf(x) } -// 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 PushMsgService service - -type PushMsgServiceClient interface { - PushMsg(ctx context.Context, in *PushMsgReq, opts ...grpc.CallOption) (*PushMsgResp, error) -} +func (*PushMsgResp) ProtoMessage() {} -type pushMsgServiceClient struct { - cc *grpc.ClientConn +func (x *PushMsgResp) ProtoReflect() protoreflect.Message { + mi := &file_push_push_proto_msgTypes[1] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) } -func NewPushMsgServiceClient(cc *grpc.ClientConn) PushMsgServiceClient { - return &pushMsgServiceClient{cc} +// Deprecated: Use PushMsgResp.ProtoReflect.Descriptor instead. +func (*PushMsgResp) Descriptor() ([]byte, []int) { + return file_push_push_proto_rawDescGZIP(), []int{1} } -func (c *pushMsgServiceClient) PushMsg(ctx context.Context, in *PushMsgReq, opts ...grpc.CallOption) (*PushMsgResp, error) { - out := new(PushMsgResp) - err := grpc.Invoke(ctx, "/push.PushMsgService/PushMsg", in, out, c.cc, opts...) - if err != nil { - return nil, err +func (x *PushMsgResp) GetResultCode() int32 { + if x != nil { + return x.ResultCode } - return out, nil + return 0 } -// Server API for PushMsgService service +var File_push_push_proto protoreflect.FileDescriptor + +var file_push_push_proto_rawDesc = []byte{ + 0x0a, 0x0f, 0x70, 0x75, 0x73, 0x68, 0x2f, 0x70, 0x75, 0x73, 0x68, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x12, 0x04, 0x70, 0x75, 0x73, 0x68, 0x22, 0xee, 0x03, 0x0a, 0x0a, 0x50, 0x75, 0x73, 0x68, + 0x4d, 0x73, 0x67, 0x52, 0x65, 0x71, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x65, 0x6e, 0x64, 0x49, 0x44, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x53, 0x65, 0x6e, 0x64, 0x49, 0x44, 0x12, 0x16, + 0x0a, 0x06, 0x52, 0x65, 0x63, 0x76, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, + 0x52, 0x65, 0x63, 0x76, 0x49, 0x44, 0x12, 0x18, 0x0a, 0x07, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, + 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, + 0x12, 0x18, 0x0a, 0x07, 0x52, 0x65, 0x63, 0x76, 0x53, 0x65, 0x71, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x03, 0x52, 0x07, 0x52, 0x65, 0x63, 0x76, 0x53, 0x65, 0x71, 0x12, 0x1a, 0x0a, 0x08, 0x53, 0x65, + 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x53, 0x65, + 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x4d, 0x73, 0x67, 0x46, 0x72, 0x6f, + 0x6d, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x4d, 0x73, 0x67, 0x46, 0x72, 0x6f, 0x6d, + 0x12, 0x20, 0x0a, 0x0b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x18, + 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x54, 0x79, + 0x70, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, + 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, + 0x54, 0x79, 0x70, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x49, 0x44, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x12, 0x14, 0x0a, 0x05, 0x4d, 0x73, 0x67, 0x49, 0x44, 0x18, + 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x4d, 0x73, 0x67, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, + 0x4f, 0x66, 0x66, 0x6c, 0x69, 0x6e, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x0b, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0b, 0x4f, 0x66, 0x66, 0x6c, 0x69, 0x6e, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x18, + 0x0a, 0x07, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x07, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x50, 0x6c, 0x61, 0x74, + 0x66, 0x6f, 0x72, 0x6d, 0x49, 0x44, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x50, 0x6c, + 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x49, 0x44, 0x12, 0x26, 0x0a, 0x0e, 0x53, 0x65, 0x6e, 0x64, + 0x65, 0x72, 0x4e, 0x69, 0x63, 0x6b, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0e, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x4e, 0x69, 0x63, 0x6b, 0x4e, 0x61, 0x6d, 0x65, + 0x12, 0x24, 0x0a, 0x0d, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x46, 0x61, 0x63, 0x65, 0x55, 0x52, + 0x4c, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x46, + 0x61, 0x63, 0x65, 0x55, 0x52, 0x4c, 0x12, 0x20, 0x0a, 0x0b, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, + 0x4d, 0x73, 0x67, 0x49, 0x44, 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x43, 0x6c, 0x69, + 0x65, 0x6e, 0x74, 0x4d, 0x73, 0x67, 0x49, 0x44, 0x22, 0x2d, 0x0a, 0x0b, 0x50, 0x75, 0x73, 0x68, + 0x4d, 0x73, 0x67, 0x52, 0x65, 0x73, 0x70, 0x12, 0x1e, 0x0a, 0x0a, 0x52, 0x65, 0x73, 0x75, 0x6c, + 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x52, 0x65, 0x73, + 0x75, 0x6c, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x32, 0x40, 0x0a, 0x0e, 0x50, 0x75, 0x73, 0x68, 0x4d, + 0x73, 0x67, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x2e, 0x0a, 0x07, 0x50, 0x75, 0x73, + 0x68, 0x4d, 0x73, 0x67, 0x12, 0x10, 0x2e, 0x70, 0x75, 0x73, 0x68, 0x2e, 0x50, 0x75, 0x73, 0x68, + 0x4d, 0x73, 0x67, 0x52, 0x65, 0x71, 0x1a, 0x11, 0x2e, 0x70, 0x75, 0x73, 0x68, 0x2e, 0x50, 0x75, + 0x73, 0x68, 0x4d, 0x73, 0x67, 0x52, 0x65, 0x73, 0x70, 0x42, 0x0f, 0x5a, 0x0d, 0x2e, 0x2f, 0x70, + 0x75, 0x73, 0x68, 0x3b, 0x70, 0x62, 0x50, 0x75, 0x73, 0x68, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x33, +} + +var ( + file_push_push_proto_rawDescOnce sync.Once + file_push_push_proto_rawDescData = file_push_push_proto_rawDesc +) -type PushMsgServiceServer interface { - PushMsg(context.Context, *PushMsgReq) (*PushMsgResp, error) +func file_push_push_proto_rawDescGZIP() []byte { + file_push_push_proto_rawDescOnce.Do(func() { + file_push_push_proto_rawDescData = protoimpl.X.CompressGZIP(file_push_push_proto_rawDescData) + }) + return file_push_push_proto_rawDescData } -func RegisterPushMsgServiceServer(s *grpc.Server, srv PushMsgServiceServer) { - s.RegisterService(&_PushMsgService_serviceDesc, srv) +var file_push_push_proto_msgTypes = make([]protoimpl.MessageInfo, 2) +var file_push_push_proto_goTypes = []interface{}{ + (*PushMsgReq)(nil), // 0: push.PushMsgReq + (*PushMsgResp)(nil), // 1: push.PushMsgResp +} +var file_push_push_proto_depIdxs = []int32{ + 0, // 0: push.PushMsgService.PushMsg:input_type -> push.PushMsgReq + 1, // 1: push.PushMsgService.PushMsg:output_type -> push.PushMsgResp + 1, // [1:2] is the sub-list for method output_type + 0, // [0:1] is the sub-list for method input_type + 0, // [0:0] is the sub-list for extension type_name + 0, // [0:0] is the sub-list for extension extendee + 0, // [0:0] is the sub-list for field type_name } -func _PushMsgService_PushMsg_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(PushMsgReq) - if err := dec(in); err != nil { - return nil, err +func init() { file_push_push_proto_init() } +func file_push_push_proto_init() { + if File_push_push_proto != nil { + return } - if interceptor == nil { - return srv.(PushMsgServiceServer).PushMsg(ctx, in) + if !protoimpl.UnsafeEnabled { + file_push_push_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PushMsgReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_push_push_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PushMsgResp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/push.PushMsgService/PushMsg", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(PushMsgServiceServer).PushMsg(ctx, req.(*PushMsgReq)) - } - return interceptor(ctx, in, info, handler) -} - -var _PushMsgService_serviceDesc = grpc.ServiceDesc{ - ServiceName: "push.PushMsgService", - HandlerType: (*PushMsgServiceServer)(nil), - Methods: []grpc.MethodDesc{ - { - MethodName: "PushMsg", - Handler: _PushMsgService_PushMsg_Handler, + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_push_push_proto_rawDesc, + NumEnums: 0, + NumMessages: 2, + NumExtensions: 0, + NumServices: 1, }, - }, - Streams: []grpc.StreamDesc{}, - Metadata: "push/push.proto", -} - -func init() { proto.RegisterFile("push/push.proto", fileDescriptor_push_a8d13c8ad86fddce) } - -var fileDescriptor_push_a8d13c8ad86fddce = []byte{ - // 377 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x5c, 0x92, 0x5d, 0xeb, 0xda, 0x30, - 0x14, 0xc6, 0xe9, 0xb4, 0xbe, 0x9c, 0xce, 0x97, 0x85, 0x31, 0x82, 0x17, 0xa3, 0xc8, 0x18, 0xde, - 0xcc, 0xc1, 0x76, 0xb9, 0x9b, 0x31, 0x8b, 0x50, 0x98, 0x2f, 0xa4, 0xee, 0x66, 0x77, 0xb5, 0x9e, - 0x6a, 0x59, 0x9b, 0xc4, 0xa6, 0x0a, 0xfb, 0xd2, 0xfb, 0x0c, 0x23, 0x49, 0xd5, 0xfe, 0xbd, 0x29, - 0x7d, 0x7e, 0xe7, 0x39, 0x87, 0x27, 0xc9, 0x81, 0x91, 0xbc, 0xa8, 0xd3, 0x67, 0xfd, 0x99, 0xcb, - 0x52, 0x54, 0x82, 0xb4, 0xf5, 0xff, 0xf4, 0x5f, 0x0b, 0x60, 0x7b, 0x51, 0xa7, 0x95, 0x3a, 0x32, - 0x3c, 0x93, 0x77, 0xd0, 0x89, 0x90, 0x1f, 0xc2, 0x80, 0x3a, 0xbe, 0x33, 0xeb, 0xb3, 0x5a, 0x69, - 0xce, 0x30, 0xb9, 0x86, 0x01, 0x7d, 0x65, 0xb9, 0x55, 0x84, 0x42, 0x77, 0x21, 0x78, 0x85, 0xbc, - 0xa2, 0x2d, 0x53, 0xb8, 0x49, 0x5d, 0xd1, 0x9e, 0x08, 0xcf, 0xb4, 0xed, 0x3b, 0xb3, 0x16, 0xbb, - 0x49, 0x32, 0x81, 0x9e, 0x9e, 0xba, 0xcb, 0x0a, 0xa4, 0xae, 0x29, 0xdd, 0xb5, 0xee, 0x5a, 0xa9, - 0xe3, 0xb2, 0x14, 0x05, 0xed, 0xf8, 0xce, 0xcc, 0x65, 0x37, 0x49, 0x7c, 0xf0, 0xea, 0xd1, 0xbb, - 0xbf, 0x12, 0x69, 0xd7, 0x54, 0x9b, 0x48, 0x3b, 0x22, 0x54, 0x2a, 0x13, 0xdc, 0x38, 0x7a, 0xd6, - 0xd1, 0x40, 0xda, 0xb1, 0x91, 0x58, 0xc6, 0x55, 0x26, 0x78, 0x18, 0xd0, 0xbe, 0x49, 0xdc, 0x44, - 0xe4, 0x2d, 0xb8, 0x2b, 0x75, 0x0c, 0x03, 0x0a, 0xa6, 0x66, 0x85, 0xe9, 0x4b, 0xd3, 0x3c, 0xe3, - 0x18, 0xf2, 0x54, 0x50, 0xaf, 0xee, 0x7b, 0x20, 0x9d, 0x7b, 0x23, 0xf5, 0x0c, 0x45, 0x5f, 0xdb, - 0x7b, 0xa8, 0x25, 0x79, 0x0f, 0xb0, 0xcd, 0xe3, 0x2a, 0x15, 0x65, 0x11, 0x06, 0x74, 0x60, 0x42, - 0x35, 0x08, 0xf9, 0x08, 0x43, 0x7d, 0x7a, 0x2c, 0xd7, 0x59, 0xf2, 0x67, 0x1d, 0x17, 0x48, 0x87, - 0x66, 0xc0, 0x13, 0x25, 0x1f, 0x60, 0x60, 0xc9, 0x32, 0x4e, 0xf0, 0x17, 0xfb, 0x49, 0x47, 0xc6, - 0xf6, 0x12, 0x9a, 0x5b, 0xca, 0x33, 0xe4, 0x95, 0x3d, 0xc5, 0xd8, 0x26, 0x6d, 0xa0, 0xe9, 0x27, - 0xf0, 0xee, 0xef, 0xad, 0xa4, 0x8e, 0xc7, 0x50, 0x5d, 0xf2, 0x6a, 0x21, 0x0e, 0x68, 0x1e, 0xdd, - 0x65, 0x0d, 0xf2, 0xe5, 0x3b, 0x0c, 0x6b, 0x7b, 0x84, 0xe5, 0x35, 0x4b, 0x90, 0xcc, 0xa1, 0x5b, - 0x13, 0x32, 0x9e, 0x9b, 0x7d, 0x7a, 0xec, 0xcf, 0xe4, 0xcd, 0x13, 0x51, 0xf2, 0xc7, 0xe0, 0xb7, - 0xa7, 0xd9, 0x37, 0xb9, 0xd7, 0x74, 0xdf, 0x31, 0xdb, 0xf7, 0xf5, 0x7f, 0x00, 0x00, 0x00, 0xff, - 0xff, 0x50, 0x88, 0x84, 0xf6, 0x90, 0x02, 0x00, 0x00, + GoTypes: file_push_push_proto_goTypes, + DependencyIndexes: file_push_push_proto_depIdxs, + MessageInfos: file_push_push_proto_msgTypes, + }.Build() + File_push_push_proto = out.File + file_push_push_proto_rawDesc = nil + file_push_push_proto_goTypes = nil + file_push_push_proto_depIdxs = nil } diff --git a/src/proto/relay/relay.pb.go b/src/proto/relay/relay.pb.go index 542f3523a..b56ded134 100644 --- a/src/proto/relay/relay.pb.go +++ b/src/proto/relay/relay.pb.go @@ -1,209 +1,224 @@ // Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.26.0 +// protoc v3.7.1 // source: relay/relay.proto -package pbRelay // import "relay" - -import proto "github.com/golang/protobuf/proto" -import fmt "fmt" -import math "math" +package pbRelay import ( - context "golang.org/x/net/context" - grpc "google.golang.org/grpc" + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + reflect "reflect" + sync "sync" ) -// 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 +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) type MsgToUserReq struct { - SendID string `protobuf:"bytes,1,opt,name=SendID" json:"SendID,omitempty"` - RecvID string `protobuf:"bytes,2,opt,name=RecvID" json:"RecvID,omitempty"` - Content string `protobuf:"bytes,5,opt,name=Content" json:"Content,omitempty"` - RecvSeq int64 `protobuf:"varint,6,opt,name=RecvSeq" json:"RecvSeq,omitempty"` - SendTime int64 `protobuf:"varint,7,opt,name=SendTime" json:"SendTime,omitempty"` - MsgFrom int32 `protobuf:"varint,8,opt,name=MsgFrom" json:"MsgFrom,omitempty"` - ContentType int32 `protobuf:"varint,9,opt,name=ContentType" json:"ContentType,omitempty"` - SessionType int32 `protobuf:"varint,10,opt,name=SessionType" json:"SessionType,omitempty"` - OperationID string `protobuf:"bytes,11,opt,name=OperationID" json:"OperationID,omitempty"` - ServerMsgID string `protobuf:"bytes,12,opt,name=ServerMsgID" json:"ServerMsgID,omitempty"` - PlatformID int32 `protobuf:"varint,13,opt,name=PlatformID" json:"PlatformID,omitempty"` - SenderNickName string `protobuf:"bytes,14,opt,name=SenderNickName" json:"SenderNickName,omitempty"` - SenderFaceURL string `protobuf:"bytes,15,opt,name=SenderFaceURL" json:"SenderFaceURL,omitempty"` - ClientMsgID string `protobuf:"bytes,16,opt,name=ClientMsgID" json:"ClientMsgID,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *MsgToUserReq) Reset() { *m = MsgToUserReq{} } -func (m *MsgToUserReq) String() string { return proto.CompactTextString(m) } -func (*MsgToUserReq) ProtoMessage() {} -func (*MsgToUserReq) Descriptor() ([]byte, []int) { - return fileDescriptor_relay_1ba173c940428df4, []int{0} -} -func (m *MsgToUserReq) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_MsgToUserReq.Unmarshal(m, b) -} -func (m *MsgToUserReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_MsgToUserReq.Marshal(b, m, deterministic) -} -func (dst *MsgToUserReq) XXX_Merge(src proto.Message) { - xxx_messageInfo_MsgToUserReq.Merge(dst, src) + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + SendID string `protobuf:"bytes,1,opt,name=SendID,proto3" json:"SendID,omitempty"` + RecvID string `protobuf:"bytes,2,opt,name=RecvID,proto3" json:"RecvID,omitempty"` + Content string `protobuf:"bytes,5,opt,name=Content,proto3" json:"Content,omitempty"` + RecvSeq int64 `protobuf:"varint,6,opt,name=RecvSeq,proto3" json:"RecvSeq,omitempty"` + SendTime int64 `protobuf:"varint,7,opt,name=SendTime,proto3" json:"SendTime,omitempty"` + MsgFrom int32 `protobuf:"varint,8,opt,name=MsgFrom,proto3" json:"MsgFrom,omitempty"` + ContentType int32 `protobuf:"varint,9,opt,name=ContentType,proto3" json:"ContentType,omitempty"` + SessionType int32 `protobuf:"varint,10,opt,name=SessionType,proto3" json:"SessionType,omitempty"` + OperationID string `protobuf:"bytes,11,opt,name=OperationID,proto3" json:"OperationID,omitempty"` + ServerMsgID string `protobuf:"bytes,12,opt,name=ServerMsgID,proto3" json:"ServerMsgID,omitempty"` + PlatformID int32 `protobuf:"varint,13,opt,name=PlatformID,proto3" json:"PlatformID,omitempty"` + SenderNickName string `protobuf:"bytes,14,opt,name=SenderNickName,proto3" json:"SenderNickName,omitempty"` + SenderFaceURL string `protobuf:"bytes,15,opt,name=SenderFaceURL,proto3" json:"SenderFaceURL,omitempty"` + ClientMsgID string `protobuf:"bytes,16,opt,name=ClientMsgID,proto3" json:"ClientMsgID,omitempty"` +} + +func (x *MsgToUserReq) Reset() { + *x = MsgToUserReq{} + if protoimpl.UnsafeEnabled { + mi := &file_relay_relay_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *MsgToUserReq) XXX_Size() int { - return xxx_messageInfo_MsgToUserReq.Size(m) + +func (x *MsgToUserReq) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *MsgToUserReq) XXX_DiscardUnknown() { - xxx_messageInfo_MsgToUserReq.DiscardUnknown(m) + +func (*MsgToUserReq) ProtoMessage() {} + +func (x *MsgToUserReq) ProtoReflect() protoreflect.Message { + mi := &file_relay_relay_proto_msgTypes[0] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) } -var xxx_messageInfo_MsgToUserReq proto.InternalMessageInfo +// Deprecated: Use MsgToUserReq.ProtoReflect.Descriptor instead. +func (*MsgToUserReq) Descriptor() ([]byte, []int) { + return file_relay_relay_proto_rawDescGZIP(), []int{0} +} -func (m *MsgToUserReq) GetSendID() string { - if m != nil { - return m.SendID +func (x *MsgToUserReq) GetSendID() string { + if x != nil { + return x.SendID } return "" } -func (m *MsgToUserReq) GetRecvID() string { - if m != nil { - return m.RecvID +func (x *MsgToUserReq) GetRecvID() string { + if x != nil { + return x.RecvID } return "" } -func (m *MsgToUserReq) GetContent() string { - if m != nil { - return m.Content +func (x *MsgToUserReq) GetContent() string { + if x != nil { + return x.Content } return "" } -func (m *MsgToUserReq) GetRecvSeq() int64 { - if m != nil { - return m.RecvSeq +func (x *MsgToUserReq) GetRecvSeq() int64 { + if x != nil { + return x.RecvSeq } return 0 } -func (m *MsgToUserReq) GetSendTime() int64 { - if m != nil { - return m.SendTime +func (x *MsgToUserReq) GetSendTime() int64 { + if x != nil { + return x.SendTime } return 0 } -func (m *MsgToUserReq) GetMsgFrom() int32 { - if m != nil { - return m.MsgFrom +func (x *MsgToUserReq) GetMsgFrom() int32 { + if x != nil { + return x.MsgFrom } return 0 } -func (m *MsgToUserReq) GetContentType() int32 { - if m != nil { - return m.ContentType +func (x *MsgToUserReq) GetContentType() int32 { + if x != nil { + return x.ContentType } return 0 } -func (m *MsgToUserReq) GetSessionType() int32 { - if m != nil { - return m.SessionType +func (x *MsgToUserReq) GetSessionType() int32 { + if x != nil { + return x.SessionType } return 0 } -func (m *MsgToUserReq) GetOperationID() string { - if m != nil { - return m.OperationID +func (x *MsgToUserReq) GetOperationID() string { + if x != nil { + return x.OperationID } return "" } -func (m *MsgToUserReq) GetServerMsgID() string { - if m != nil { - return m.ServerMsgID +func (x *MsgToUserReq) GetServerMsgID() string { + if x != nil { + return x.ServerMsgID } return "" } -func (m *MsgToUserReq) GetPlatformID() int32 { - if m != nil { - return m.PlatformID +func (x *MsgToUserReq) GetPlatformID() int32 { + if x != nil { + return x.PlatformID } return 0 } -func (m *MsgToUserReq) GetSenderNickName() string { - if m != nil { - return m.SenderNickName +func (x *MsgToUserReq) GetSenderNickName() string { + if x != nil { + return x.SenderNickName } return "" } -func (m *MsgToUserReq) GetSenderFaceURL() string { - if m != nil { - return m.SenderFaceURL +func (x *MsgToUserReq) GetSenderFaceURL() string { + if x != nil { + return x.SenderFaceURL } return "" } -func (m *MsgToUserReq) GetClientMsgID() string { - if m != nil { - return m.ClientMsgID +func (x *MsgToUserReq) GetClientMsgID() string { + if x != nil { + return x.ClientMsgID } return "" } type MsgToUserResp struct { - Resp []*SingleMsgToUser `protobuf:"bytes,1,rep,name=resp" json:"resp,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields -func (m *MsgToUserResp) Reset() { *m = MsgToUserResp{} } -func (m *MsgToUserResp) String() string { return proto.CompactTextString(m) } -func (*MsgToUserResp) ProtoMessage() {} -func (*MsgToUserResp) Descriptor() ([]byte, []int) { - return fileDescriptor_relay_1ba173c940428df4, []int{1} -} -func (m *MsgToUserResp) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_MsgToUserResp.Unmarshal(m, b) + Resp []*SingleMsgToUser `protobuf:"bytes,1,rep,name=resp,proto3" json:"resp,omitempty"` } -func (m *MsgToUserResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_MsgToUserResp.Marshal(b, m, deterministic) -} -func (dst *MsgToUserResp) XXX_Merge(src proto.Message) { - xxx_messageInfo_MsgToUserResp.Merge(dst, src) + +func (x *MsgToUserResp) Reset() { + *x = MsgToUserResp{} + if protoimpl.UnsafeEnabled { + mi := &file_relay_relay_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *MsgToUserResp) XXX_Size() int { - return xxx_messageInfo_MsgToUserResp.Size(m) + +func (x *MsgToUserResp) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *MsgToUserResp) XXX_DiscardUnknown() { - xxx_messageInfo_MsgToUserResp.DiscardUnknown(m) + +func (*MsgToUserResp) ProtoMessage() {} + +func (x *MsgToUserResp) ProtoReflect() protoreflect.Message { + mi := &file_relay_relay_proto_msgTypes[1] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) } -var xxx_messageInfo_MsgToUserResp proto.InternalMessageInfo +// Deprecated: Use MsgToUserResp.ProtoReflect.Descriptor instead. +func (*MsgToUserResp) Descriptor() ([]byte, []int) { + return file_relay_relay_proto_rawDescGZIP(), []int{1} +} -func (m *MsgToUserResp) GetResp() []*SingleMsgToUser { - if m != nil { - return m.Resp +func (x *MsgToUserResp) GetResp() []*SingleMsgToUser { + if x != nil { + return x.Resp } return nil } -// message SendMsgByWSReq{ +//message SendMsgByWSReq{ // string SendID = 1; // string RecvID = 2; // string Content = 3; @@ -213,167 +228,211 @@ func (m *MsgToUserResp) GetResp() []*SingleMsgToUser { // int64 SessionType = 7; // string OperationID = 8; // int64 PlatformID = 9; -// } +//} type SingleMsgToUser struct { - ResultCode int64 `protobuf:"varint,1,opt,name=ResultCode" json:"ResultCode,omitempty"` - RecvID string `protobuf:"bytes,2,opt,name=RecvID" json:"RecvID,omitempty"` - RecvPlatFormID int32 `protobuf:"varint,3,opt,name=RecvPlatFormID" json:"RecvPlatFormID,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields -func (m *SingleMsgToUser) Reset() { *m = SingleMsgToUser{} } -func (m *SingleMsgToUser) String() string { return proto.CompactTextString(m) } -func (*SingleMsgToUser) ProtoMessage() {} -func (*SingleMsgToUser) Descriptor() ([]byte, []int) { - return fileDescriptor_relay_1ba173c940428df4, []int{2} -} -func (m *SingleMsgToUser) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_SingleMsgToUser.Unmarshal(m, b) -} -func (m *SingleMsgToUser) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_SingleMsgToUser.Marshal(b, m, deterministic) + ResultCode int64 `protobuf:"varint,1,opt,name=ResultCode,proto3" json:"ResultCode,omitempty"` + RecvID string `protobuf:"bytes,2,opt,name=RecvID,proto3" json:"RecvID,omitempty"` + RecvPlatFormID int32 `protobuf:"varint,3,opt,name=RecvPlatFormID,proto3" json:"RecvPlatFormID,omitempty"` } -func (dst *SingleMsgToUser) XXX_Merge(src proto.Message) { - xxx_messageInfo_SingleMsgToUser.Merge(dst, src) -} -func (m *SingleMsgToUser) XXX_Size() int { - return xxx_messageInfo_SingleMsgToUser.Size(m) -} -func (m *SingleMsgToUser) XXX_DiscardUnknown() { - xxx_messageInfo_SingleMsgToUser.DiscardUnknown(m) -} - -var xxx_messageInfo_SingleMsgToUser proto.InternalMessageInfo -func (m *SingleMsgToUser) GetResultCode() int64 { - if m != nil { - return m.ResultCode +func (x *SingleMsgToUser) Reset() { + *x = SingleMsgToUser{} + if protoimpl.UnsafeEnabled { + mi := &file_relay_relay_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } - return 0 } -func (m *SingleMsgToUser) GetRecvID() string { - if m != nil { - return m.RecvID - } - return "" +func (x *SingleMsgToUser) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *SingleMsgToUser) GetRecvPlatFormID() int32 { - if m != nil { - return m.RecvPlatFormID - } - return 0 -} - -func init() { - proto.RegisterType((*MsgToUserReq)(nil), "relay.MsgToUserReq") - proto.RegisterType((*MsgToUserResp)(nil), "relay.MsgToUserResp") - proto.RegisterType((*SingleMsgToUser)(nil), "relay.SingleMsgToUser") -} - -// 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 OnlineMessageRelayService service +func (*SingleMsgToUser) ProtoMessage() {} -type OnlineMessageRelayServiceClient interface { - MsgToUser(ctx context.Context, in *MsgToUserReq, opts ...grpc.CallOption) (*MsgToUserResp, error) +func (x *SingleMsgToUser) ProtoReflect() protoreflect.Message { + mi := &file_relay_relay_proto_msgTypes[2] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) } -type onlineMessageRelayServiceClient struct { - cc *grpc.ClientConn +// Deprecated: Use SingleMsgToUser.ProtoReflect.Descriptor instead. +func (*SingleMsgToUser) Descriptor() ([]byte, []int) { + return file_relay_relay_proto_rawDescGZIP(), []int{2} } -func NewOnlineMessageRelayServiceClient(cc *grpc.ClientConn) OnlineMessageRelayServiceClient { - return &onlineMessageRelayServiceClient{cc} +func (x *SingleMsgToUser) GetResultCode() int64 { + if x != nil { + return x.ResultCode + } + return 0 } -func (c *onlineMessageRelayServiceClient) MsgToUser(ctx context.Context, in *MsgToUserReq, opts ...grpc.CallOption) (*MsgToUserResp, error) { - out := new(MsgToUserResp) - err := grpc.Invoke(ctx, "/relay.OnlineMessageRelayService/MsgToUser", in, out, c.cc, opts...) - if err != nil { - return nil, err +func (x *SingleMsgToUser) GetRecvID() string { + if x != nil { + return x.RecvID } - return out, nil + return "" } -// Server API for OnlineMessageRelayService service - -type OnlineMessageRelayServiceServer interface { - MsgToUser(context.Context, *MsgToUserReq) (*MsgToUserResp, error) +func (x *SingleMsgToUser) GetRecvPlatFormID() int32 { + if x != nil { + return x.RecvPlatFormID + } + return 0 } -func RegisterOnlineMessageRelayServiceServer(s *grpc.Server, srv OnlineMessageRelayServiceServer) { - s.RegisterService(&_OnlineMessageRelayService_serviceDesc, srv) -} +var File_relay_relay_proto protoreflect.FileDescriptor + +var file_relay_relay_proto_rawDesc = []byte{ + 0x0a, 0x11, 0x72, 0x65, 0x6c, 0x61, 0x79, 0x2f, 0x72, 0x65, 0x6c, 0x61, 0x79, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x12, 0x05, 0x72, 0x65, 0x6c, 0x61, 0x79, 0x22, 0xc0, 0x03, 0x0a, 0x0c, 0x4d, + 0x73, 0x67, 0x54, 0x6f, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x12, 0x16, 0x0a, 0x06, 0x53, + 0x65, 0x6e, 0x64, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x53, 0x65, 0x6e, + 0x64, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x52, 0x65, 0x63, 0x76, 0x49, 0x44, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x06, 0x52, 0x65, 0x63, 0x76, 0x49, 0x44, 0x12, 0x18, 0x0a, 0x07, 0x43, + 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x43, 0x6f, + 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x52, 0x65, 0x63, 0x76, 0x53, 0x65, 0x71, + 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x52, 0x65, 0x63, 0x76, 0x53, 0x65, 0x71, 0x12, + 0x1a, 0x0a, 0x08, 0x53, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, + 0x03, 0x52, 0x08, 0x53, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x4d, + 0x73, 0x67, 0x46, 0x72, 0x6f, 0x6d, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x4d, 0x73, + 0x67, 0x46, 0x72, 0x6f, 0x6d, 0x12, 0x20, 0x0a, 0x0b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, + 0x54, 0x79, 0x70, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x43, 0x6f, 0x6e, 0x74, + 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x53, 0x65, 0x73, 0x73, 0x69, + 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x53, 0x65, + 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x70, 0x65, + 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, + 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x53, + 0x65, 0x72, 0x76, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x49, 0x44, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0b, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x49, 0x44, 0x12, 0x1e, 0x0a, + 0x0a, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x49, 0x44, 0x18, 0x0d, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x0a, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x49, 0x44, 0x12, 0x26, 0x0a, + 0x0e, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x4e, 0x69, 0x63, 0x6b, 0x4e, 0x61, 0x6d, 0x65, 0x18, + 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x4e, 0x69, 0x63, + 0x6b, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x46, + 0x61, 0x63, 0x65, 0x55, 0x52, 0x4c, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x53, 0x65, + 0x6e, 0x64, 0x65, 0x72, 0x46, 0x61, 0x63, 0x65, 0x55, 0x52, 0x4c, 0x12, 0x20, 0x0a, 0x0b, 0x43, + 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x73, 0x67, 0x49, 0x44, 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0b, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x73, 0x67, 0x49, 0x44, 0x22, 0x3b, 0x0a, + 0x0d, 0x4d, 0x73, 0x67, 0x54, 0x6f, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x12, 0x2a, + 0x0a, 0x04, 0x72, 0x65, 0x73, 0x70, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x72, + 0x65, 0x6c, 0x61, 0x79, 0x2e, 0x53, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x4d, 0x73, 0x67, 0x54, 0x6f, + 0x55, 0x73, 0x65, 0x72, 0x52, 0x04, 0x72, 0x65, 0x73, 0x70, 0x22, 0x71, 0x0a, 0x0f, 0x53, 0x69, + 0x6e, 0x67, 0x6c, 0x65, 0x4d, 0x73, 0x67, 0x54, 0x6f, 0x55, 0x73, 0x65, 0x72, 0x12, 0x1e, 0x0a, + 0x0a, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x03, 0x52, 0x0a, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x16, 0x0a, + 0x06, 0x52, 0x65, 0x63, 0x76, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x52, + 0x65, 0x63, 0x76, 0x49, 0x44, 0x12, 0x26, 0x0a, 0x0e, 0x52, 0x65, 0x63, 0x76, 0x50, 0x6c, 0x61, + 0x74, 0x46, 0x6f, 0x72, 0x6d, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x52, + 0x65, 0x63, 0x76, 0x50, 0x6c, 0x61, 0x74, 0x46, 0x6f, 0x72, 0x6d, 0x49, 0x44, 0x32, 0x53, 0x0a, + 0x19, 0x4f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, + 0x6c, 0x61, 0x79, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x36, 0x0a, 0x09, 0x4d, 0x73, + 0x67, 0x54, 0x6f, 0x55, 0x73, 0x65, 0x72, 0x12, 0x13, 0x2e, 0x72, 0x65, 0x6c, 0x61, 0x79, 0x2e, + 0x4d, 0x73, 0x67, 0x54, 0x6f, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x1a, 0x14, 0x2e, 0x72, + 0x65, 0x6c, 0x61, 0x79, 0x2e, 0x4d, 0x73, 0x67, 0x54, 0x6f, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, + 0x73, 0x70, 0x42, 0x11, 0x5a, 0x0f, 0x2e, 0x2f, 0x72, 0x65, 0x6c, 0x61, 0x79, 0x3b, 0x70, 0x62, + 0x52, 0x65, 0x6c, 0x61, 0x79, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_relay_relay_proto_rawDescOnce sync.Once + file_relay_relay_proto_rawDescData = file_relay_relay_proto_rawDesc +) -func _OnlineMessageRelayService_MsgToUser_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(MsgToUserReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(OnlineMessageRelayServiceServer).MsgToUser(ctx, in) +func file_relay_relay_proto_rawDescGZIP() []byte { + file_relay_relay_proto_rawDescOnce.Do(func() { + file_relay_relay_proto_rawDescData = protoimpl.X.CompressGZIP(file_relay_relay_proto_rawDescData) + }) + return file_relay_relay_proto_rawDescData +} + +var file_relay_relay_proto_msgTypes = make([]protoimpl.MessageInfo, 3) +var file_relay_relay_proto_goTypes = []interface{}{ + (*MsgToUserReq)(nil), // 0: relay.MsgToUserReq + (*MsgToUserResp)(nil), // 1: relay.MsgToUserResp + (*SingleMsgToUser)(nil), // 2: relay.SingleMsgToUser +} +var file_relay_relay_proto_depIdxs = []int32{ + 2, // 0: relay.MsgToUserResp.resp:type_name -> relay.SingleMsgToUser + 0, // 1: relay.OnlineMessageRelayService.MsgToUser:input_type -> relay.MsgToUserReq + 1, // 2: relay.OnlineMessageRelayService.MsgToUser:output_type -> relay.MsgToUserResp + 2, // [2:3] is the sub-list for method output_type + 1, // [1:2] is the sub-list for method input_type + 1, // [1:1] is the sub-list for extension type_name + 1, // [1:1] is the sub-list for extension extendee + 0, // [0:1] is the sub-list for field type_name +} + +func init() { file_relay_relay_proto_init() } +func file_relay_relay_proto_init() { + if File_relay_relay_proto != nil { + return } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/relay.OnlineMessageRelayService/MsgToUser", + if !protoimpl.UnsafeEnabled { + file_relay_relay_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*MsgToUserReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_relay_relay_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*MsgToUserResp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_relay_relay_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SingleMsgToUser); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(OnlineMessageRelayServiceServer).MsgToUser(ctx, req.(*MsgToUserReq)) - } - return interceptor(ctx, in, info, handler) -} - -var _OnlineMessageRelayService_serviceDesc = grpc.ServiceDesc{ - ServiceName: "relay.OnlineMessageRelayService", - HandlerType: (*OnlineMessageRelayServiceServer)(nil), - Methods: []grpc.MethodDesc{ - { - MethodName: "MsgToUser", - Handler: _OnlineMessageRelayService_MsgToUser_Handler, + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_relay_relay_proto_rawDesc, + NumEnums: 0, + NumMessages: 3, + NumExtensions: 0, + NumServices: 1, }, - }, - Streams: []grpc.StreamDesc{}, - Metadata: "relay/relay.proto", -} - -func init() { proto.RegisterFile("relay/relay.proto", fileDescriptor_relay_1ba173c940428df4) } - -var fileDescriptor_relay_1ba173c940428df4 = []byte{ - // 412 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x74, 0x92, 0xc1, 0x6f, 0xd3, 0x30, - 0x14, 0xc6, 0x15, 0x42, 0xbb, 0xf5, 0x75, 0x6d, 0xc1, 0xa0, 0xc9, 0xec, 0x80, 0xa2, 0x0a, 0x4d, - 0x11, 0x87, 0x21, 0x0d, 0x89, 0xcb, 0x6e, 0x2c, 0xaa, 0x14, 0x89, 0x6c, 0xc8, 0xe9, 0x2e, 0xdc, - 0xb2, 0xec, 0x11, 0x59, 0x24, 0x76, 0x6a, 0x87, 0x49, 0xfb, 0xef, 0xf8, 0xd3, 0x90, 0x9f, 0x5b, - 0x6a, 0x8a, 0xb8, 0x44, 0xf9, 0x7e, 0xef, 0xcb, 0xcb, 0xe7, 0xe7, 0x07, 0x2f, 0x0d, 0xb6, 0xd5, - 0xd3, 0x07, 0x7a, 0x5e, 0xf4, 0x46, 0x0f, 0x9a, 0x8d, 0x48, 0x2c, 0x7f, 0xc5, 0x70, 0x52, 0xd8, - 0x66, 0xad, 0xef, 0x2c, 0x1a, 0x81, 0x1b, 0x76, 0x0a, 0xe3, 0x12, 0xd5, 0x43, 0x9e, 0xf1, 0x28, - 0x89, 0xd2, 0x89, 0xd8, 0x2a, 0xc7, 0x05, 0xd6, 0x8f, 0x79, 0xc6, 0x9f, 0x79, 0xee, 0x15, 0xe3, - 0x70, 0x74, 0xad, 0xd5, 0x80, 0x6a, 0xe0, 0x23, 0x2a, 0xec, 0xa4, 0xab, 0x38, 0x4f, 0x89, 0x1b, - 0x3e, 0x4e, 0xa2, 0x34, 0x16, 0x3b, 0xc9, 0xce, 0xe0, 0xd8, 0x75, 0x5d, 0xcb, 0x0e, 0xf9, 0x11, - 0x95, 0xfe, 0x68, 0xf7, 0x55, 0x61, 0x9b, 0x95, 0xd1, 0x1d, 0x3f, 0x4e, 0xa2, 0x74, 0x24, 0x76, - 0x92, 0x25, 0x30, 0xdd, 0xb6, 0x5e, 0x3f, 0xf5, 0xc8, 0x27, 0x54, 0x0d, 0x91, 0x73, 0x94, 0x68, - 0xad, 0xd4, 0x8a, 0x1c, 0xe0, 0x1d, 0x01, 0x72, 0x8e, 0xdb, 0x1e, 0x4d, 0x35, 0x48, 0xad, 0xf2, - 0x8c, 0x4f, 0x29, 0x71, 0x88, 0x7c, 0x0f, 0xf3, 0x88, 0xa6, 0xb0, 0x4d, 0x9e, 0xf1, 0x13, 0xef, - 0x08, 0x10, 0x7b, 0x0b, 0xf0, 0xb5, 0xad, 0x86, 0xef, 0xda, 0x74, 0x79, 0xc6, 0x67, 0xf4, 0x93, - 0x80, 0xb0, 0x73, 0x98, 0xbb, 0xd3, 0xa0, 0xb9, 0x91, 0xf5, 0x8f, 0x9b, 0xaa, 0x43, 0x3e, 0xa7, - 0x26, 0x07, 0x94, 0xbd, 0x83, 0x99, 0x27, 0xab, 0xaa, 0xc6, 0x3b, 0xf1, 0x85, 0x2f, 0xc8, 0xf6, - 0x37, 0xa4, 0x53, 0xb7, 0x12, 0xd5, 0xe0, 0xf3, 0xbc, 0xf0, 0x79, 0x02, 0xb4, 0xbc, 0x82, 0x59, - 0x70, 0x83, 0xb6, 0x67, 0xef, 0xe1, 0xb9, 0x41, 0xdb, 0xf3, 0x28, 0x89, 0xd3, 0xe9, 0xe5, 0xe9, - 0x85, 0xbf, 0xf6, 0x52, 0xaa, 0xa6, 0xc5, 0xbd, 0x93, 0x3c, 0xcb, 0x0d, 0x2c, 0x0e, 0x0a, 0xee, - 0x7c, 0x02, 0xed, 0xcf, 0x76, 0xb8, 0xd6, 0x0f, 0x48, 0x5b, 0x10, 0x8b, 0x80, 0xfc, 0x77, 0x13, - 0xce, 0x61, 0xee, 0xde, 0xdc, 0x24, 0x56, 0x7e, 0x36, 0x31, 0xcd, 0xe6, 0x80, 0x5e, 0x96, 0xf0, - 0xe6, 0x56, 0xb5, 0x52, 0x61, 0x81, 0xd6, 0x56, 0x0d, 0x0a, 0x17, 0xcf, 0x0d, 0x58, 0xd6, 0xc8, - 0x3e, 0xc1, 0x64, 0x9f, 0xe4, 0xd5, 0x36, 0x7a, 0xb8, 0xa0, 0x67, 0xaf, 0xff, 0x85, 0xb6, 0xff, - 0xbc, 0xf8, 0x36, 0x23, 0x7c, 0xd5, 0xdf, 0x53, 0xbf, 0xfb, 0x31, 0xad, 0xf9, 0xc7, 0xdf, 0x01, - 0x00, 0x00, 0xff, 0xff, 0xca, 0xdd, 0x7b, 0x0c, 0xfb, 0x02, 0x00, 0x00, + GoTypes: file_relay_relay_proto_goTypes, + DependencyIndexes: file_relay_relay_proto_depIdxs, + MessageInfos: file_relay_relay_proto_msgTypes, + }.Build() + File_relay_relay_proto = out.File + file_relay_relay_proto_rawDesc = nil + file_relay_relay_proto_goTypes = nil + file_relay_relay_proto_depIdxs = nil } diff --git a/src/proto/user/user.pb.go b/src/proto/user/user.pb.go index b98ecbe95..74e704961 100644 --- a/src/proto/user/user.pb.go +++ b/src/proto/user/user.pb.go @@ -1,845 +1,996 @@ // Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.26.0 +// protoc v3.7.1 // source: user/user.proto -package user // import "user" - -import proto "github.com/golang/protobuf/proto" -import fmt "fmt" -import math "math" +package user import ( - context "golang.org/x/net/context" - grpc "google.golang.org/grpc" + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + reflect "reflect" + sync "sync" ) -// 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 +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) type CommonResp struct { - ErrorCode int32 `protobuf:"varint,1,opt,name=errorCode" json:"errorCode,omitempty"` - ErrorMsg string `protobuf:"bytes,2,opt,name=errorMsg" json:"errorMsg,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields -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_user_9367ac00c24112e8, []int{0} -} -func (m *CommonResp) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_CommonResp.Unmarshal(m, b) + ErrorCode int32 `protobuf:"varint,1,opt,name=errorCode,proto3" json:"errorCode,omitempty"` + ErrorMsg string `protobuf:"bytes,2,opt,name=errorMsg,proto3" json:"errorMsg,omitempty"` } -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 (x *CommonResp) Reset() { + *x = CommonResp{} + if protoimpl.UnsafeEnabled { + mi := &file_user_user_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *CommonResp) XXX_Size() int { - return xxx_messageInfo_CommonResp.Size(m) + +func (x *CommonResp) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *CommonResp) XXX_DiscardUnknown() { - xxx_messageInfo_CommonResp.DiscardUnknown(m) + +func (*CommonResp) ProtoMessage() {} + +func (x *CommonResp) ProtoReflect() protoreflect.Message { + mi := &file_user_user_proto_msgTypes[0] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) } -var xxx_messageInfo_CommonResp proto.InternalMessageInfo +// Deprecated: Use CommonResp.ProtoReflect.Descriptor instead. +func (*CommonResp) Descriptor() ([]byte, []int) { + return file_user_user_proto_rawDescGZIP(), []int{0} +} -func (m *CommonResp) GetErrorCode() int32 { - if m != nil { - return m.ErrorCode +func (x *CommonResp) GetErrorCode() int32 { + if x != nil { + return x.ErrorCode } return 0 } -func (m *CommonResp) GetErrorMsg() string { - if m != nil { - return m.ErrorMsg +func (x *CommonResp) GetErrorMsg() string { + if x != nil { + return x.ErrorMsg } return "" } type DeleteUsersResp struct { - CommonResp *CommonResp `protobuf:"bytes,1,opt,name=commonResp" json:"commonResp,omitempty"` - FailedUidList []string `protobuf:"bytes,2,rep,name=failedUidList" json:"failedUidList,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields -func (m *DeleteUsersResp) Reset() { *m = DeleteUsersResp{} } -func (m *DeleteUsersResp) String() string { return proto.CompactTextString(m) } -func (*DeleteUsersResp) ProtoMessage() {} -func (*DeleteUsersResp) Descriptor() ([]byte, []int) { - return fileDescriptor_user_9367ac00c24112e8, []int{1} + CommonResp *CommonResp `protobuf:"bytes,1,opt,name=commonResp,proto3" json:"commonResp,omitempty"` + FailedUidList []string `protobuf:"bytes,2,rep,name=failedUidList,proto3" json:"failedUidList,omitempty"` } -func (m *DeleteUsersResp) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_DeleteUsersResp.Unmarshal(m, b) -} -func (m *DeleteUsersResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_DeleteUsersResp.Marshal(b, m, deterministic) -} -func (dst *DeleteUsersResp) XXX_Merge(src proto.Message) { - xxx_messageInfo_DeleteUsersResp.Merge(dst, src) + +func (x *DeleteUsersResp) Reset() { + *x = DeleteUsersResp{} + if protoimpl.UnsafeEnabled { + mi := &file_user_user_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *DeleteUsersResp) XXX_Size() int { - return xxx_messageInfo_DeleteUsersResp.Size(m) + +func (x *DeleteUsersResp) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *DeleteUsersResp) XXX_DiscardUnknown() { - xxx_messageInfo_DeleteUsersResp.DiscardUnknown(m) + +func (*DeleteUsersResp) ProtoMessage() {} + +func (x *DeleteUsersResp) ProtoReflect() protoreflect.Message { + mi := &file_user_user_proto_msgTypes[1] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) } -var xxx_messageInfo_DeleteUsersResp proto.InternalMessageInfo +// Deprecated: Use DeleteUsersResp.ProtoReflect.Descriptor instead. +func (*DeleteUsersResp) Descriptor() ([]byte, []int) { + return file_user_user_proto_rawDescGZIP(), []int{1} +} -func (m *DeleteUsersResp) GetCommonResp() *CommonResp { - if m != nil { - return m.CommonResp +func (x *DeleteUsersResp) GetCommonResp() *CommonResp { + if x != nil { + return x.CommonResp } return nil } -func (m *DeleteUsersResp) GetFailedUidList() []string { - if m != nil { - return m.FailedUidList +func (x *DeleteUsersResp) GetFailedUidList() []string { + if x != nil { + return x.FailedUidList } return nil } type DeleteUsersReq struct { - DeleteUidList []string `protobuf:"bytes,2,rep,name=deleteUidList" json:"deleteUidList,omitempty"` - Token string `protobuf:"bytes,3,opt,name=token" json:"token,omitempty"` - OperationID string `protobuf:"bytes,4,opt,name=OperationID" json:"OperationID,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields -func (m *DeleteUsersReq) Reset() { *m = DeleteUsersReq{} } -func (m *DeleteUsersReq) String() string { return proto.CompactTextString(m) } -func (*DeleteUsersReq) ProtoMessage() {} -func (*DeleteUsersReq) Descriptor() ([]byte, []int) { - return fileDescriptor_user_9367ac00c24112e8, []int{2} -} -func (m *DeleteUsersReq) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_DeleteUsersReq.Unmarshal(m, b) -} -func (m *DeleteUsersReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_DeleteUsersReq.Marshal(b, m, deterministic) + DeleteUidList []string `protobuf:"bytes,2,rep,name=deleteUidList,proto3" json:"deleteUidList,omitempty"` + Token string `protobuf:"bytes,3,opt,name=token,proto3" json:"token,omitempty"` + OperationID string `protobuf:"bytes,4,opt,name=OperationID,proto3" json:"OperationID,omitempty"` } -func (dst *DeleteUsersReq) XXX_Merge(src proto.Message) { - xxx_messageInfo_DeleteUsersReq.Merge(dst, src) + +func (x *DeleteUsersReq) Reset() { + *x = DeleteUsersReq{} + if protoimpl.UnsafeEnabled { + mi := &file_user_user_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *DeleteUsersReq) XXX_Size() int { - return xxx_messageInfo_DeleteUsersReq.Size(m) + +func (x *DeleteUsersReq) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *DeleteUsersReq) XXX_DiscardUnknown() { - xxx_messageInfo_DeleteUsersReq.DiscardUnknown(m) + +func (*DeleteUsersReq) ProtoMessage() {} + +func (x *DeleteUsersReq) ProtoReflect() protoreflect.Message { + mi := &file_user_user_proto_msgTypes[2] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) } -var xxx_messageInfo_DeleteUsersReq proto.InternalMessageInfo +// Deprecated: Use DeleteUsersReq.ProtoReflect.Descriptor instead. +func (*DeleteUsersReq) Descriptor() ([]byte, []int) { + return file_user_user_proto_rawDescGZIP(), []int{2} +} -func (m *DeleteUsersReq) GetDeleteUidList() []string { - if m != nil { - return m.DeleteUidList +func (x *DeleteUsersReq) GetDeleteUidList() []string { + if x != nil { + return x.DeleteUidList } return nil } -func (m *DeleteUsersReq) GetToken() string { - if m != nil { - return m.Token +func (x *DeleteUsersReq) GetToken() string { + if x != nil { + return x.Token } return "" } -func (m *DeleteUsersReq) GetOperationID() string { - if m != nil { - return m.OperationID +func (x *DeleteUsersReq) GetOperationID() string { + if x != nil { + return x.OperationID } return "" } type GetAllUsersUidReq struct { - Token string `protobuf:"bytes,2,opt,name=token" json:"token,omitempty"` - OperationID string `protobuf:"bytes,3,opt,name=operationID" json:"operationID,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields -func (m *GetAllUsersUidReq) Reset() { *m = GetAllUsersUidReq{} } -func (m *GetAllUsersUidReq) String() string { return proto.CompactTextString(m) } -func (*GetAllUsersUidReq) ProtoMessage() {} -func (*GetAllUsersUidReq) Descriptor() ([]byte, []int) { - return fileDescriptor_user_9367ac00c24112e8, []int{3} -} -func (m *GetAllUsersUidReq) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_GetAllUsersUidReq.Unmarshal(m, b) + Token string `protobuf:"bytes,2,opt,name=token,proto3" json:"token,omitempty"` + OperationID string `protobuf:"bytes,3,opt,name=operationID,proto3" json:"operationID,omitempty"` } -func (m *GetAllUsersUidReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_GetAllUsersUidReq.Marshal(b, m, deterministic) -} -func (dst *GetAllUsersUidReq) XXX_Merge(src proto.Message) { - xxx_messageInfo_GetAllUsersUidReq.Merge(dst, src) + +func (x *GetAllUsersUidReq) Reset() { + *x = GetAllUsersUidReq{} + if protoimpl.UnsafeEnabled { + mi := &file_user_user_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *GetAllUsersUidReq) XXX_Size() int { - return xxx_messageInfo_GetAllUsersUidReq.Size(m) + +func (x *GetAllUsersUidReq) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *GetAllUsersUidReq) XXX_DiscardUnknown() { - xxx_messageInfo_GetAllUsersUidReq.DiscardUnknown(m) + +func (*GetAllUsersUidReq) ProtoMessage() {} + +func (x *GetAllUsersUidReq) ProtoReflect() protoreflect.Message { + mi := &file_user_user_proto_msgTypes[3] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) } -var xxx_messageInfo_GetAllUsersUidReq proto.InternalMessageInfo +// Deprecated: Use GetAllUsersUidReq.ProtoReflect.Descriptor instead. +func (*GetAllUsersUidReq) Descriptor() ([]byte, []int) { + return file_user_user_proto_rawDescGZIP(), []int{3} +} -func (m *GetAllUsersUidReq) GetToken() string { - if m != nil { - return m.Token +func (x *GetAllUsersUidReq) GetToken() string { + if x != nil { + return x.Token } return "" } -func (m *GetAllUsersUidReq) GetOperationID() string { - if m != nil { - return m.OperationID +func (x *GetAllUsersUidReq) GetOperationID() string { + if x != nil { + return x.OperationID } return "" } type GetAllUsersUidResp struct { - CommonResp *CommonResp `protobuf:"bytes,1,opt,name=commonResp" json:"commonResp,omitempty"` - UidList []string `protobuf:"bytes,2,rep,name=uidList" json:"uidList,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields -func (m *GetAllUsersUidResp) Reset() { *m = GetAllUsersUidResp{} } -func (m *GetAllUsersUidResp) String() string { return proto.CompactTextString(m) } -func (*GetAllUsersUidResp) ProtoMessage() {} -func (*GetAllUsersUidResp) Descriptor() ([]byte, []int) { - return fileDescriptor_user_9367ac00c24112e8, []int{4} -} -func (m *GetAllUsersUidResp) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_GetAllUsersUidResp.Unmarshal(m, b) -} -func (m *GetAllUsersUidResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_GetAllUsersUidResp.Marshal(b, m, deterministic) + CommonResp *CommonResp `protobuf:"bytes,1,opt,name=commonResp,proto3" json:"commonResp,omitempty"` + UidList []string `protobuf:"bytes,2,rep,name=uidList,proto3" json:"uidList,omitempty"` } -func (dst *GetAllUsersUidResp) XXX_Merge(src proto.Message) { - xxx_messageInfo_GetAllUsersUidResp.Merge(dst, src) + +func (x *GetAllUsersUidResp) Reset() { + *x = GetAllUsersUidResp{} + if protoimpl.UnsafeEnabled { + mi := &file_user_user_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *GetAllUsersUidResp) XXX_Size() int { - return xxx_messageInfo_GetAllUsersUidResp.Size(m) + +func (x *GetAllUsersUidResp) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *GetAllUsersUidResp) XXX_DiscardUnknown() { - xxx_messageInfo_GetAllUsersUidResp.DiscardUnknown(m) + +func (*GetAllUsersUidResp) ProtoMessage() {} + +func (x *GetAllUsersUidResp) ProtoReflect() protoreflect.Message { + mi := &file_user_user_proto_msgTypes[4] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) } -var xxx_messageInfo_GetAllUsersUidResp proto.InternalMessageInfo +// Deprecated: Use GetAllUsersUidResp.ProtoReflect.Descriptor instead. +func (*GetAllUsersUidResp) Descriptor() ([]byte, []int) { + return file_user_user_proto_rawDescGZIP(), []int{4} +} -func (m *GetAllUsersUidResp) GetCommonResp() *CommonResp { - if m != nil { - return m.CommonResp +func (x *GetAllUsersUidResp) GetCommonResp() *CommonResp { + if x != nil { + return x.CommonResp } return nil } -func (m *GetAllUsersUidResp) GetUidList() []string { - if m != nil { - return m.UidList +func (x *GetAllUsersUidResp) GetUidList() []string { + if x != nil { + return x.UidList } return nil } type GetUserInfoReq struct { - UserIDList []string `protobuf:"bytes,1,rep,name=userIDList" json:"userIDList,omitempty"` - Token string `protobuf:"bytes,2,opt,name=token" json:"token,omitempty"` - OperationID string `protobuf:"bytes,3,opt,name=OperationID" json:"OperationID,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields -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_user_9367ac00c24112e8, []int{5} -} -func (m *GetUserInfoReq) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_GetUserInfoReq.Unmarshal(m, b) + UserIDList []string `protobuf:"bytes,1,rep,name=userIDList,proto3" json:"userIDList,omitempty"` + Token string `protobuf:"bytes,2,opt,name=token,proto3" json:"token,omitempty"` + OperationID string `protobuf:"bytes,3,opt,name=OperationID,proto3" json:"OperationID,omitempty"` } -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 (x *GetUserInfoReq) Reset() { + *x = GetUserInfoReq{} + if protoimpl.UnsafeEnabled { + mi := &file_user_user_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *GetUserInfoReq) XXX_Size() int { - return xxx_messageInfo_GetUserInfoReq.Size(m) + +func (x *GetUserInfoReq) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *GetUserInfoReq) XXX_DiscardUnknown() { - xxx_messageInfo_GetUserInfoReq.DiscardUnknown(m) + +func (*GetUserInfoReq) ProtoMessage() {} + +func (x *GetUserInfoReq) ProtoReflect() protoreflect.Message { + mi := &file_user_user_proto_msgTypes[5] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) } -var xxx_messageInfo_GetUserInfoReq proto.InternalMessageInfo +// Deprecated: Use GetUserInfoReq.ProtoReflect.Descriptor instead. +func (*GetUserInfoReq) Descriptor() ([]byte, []int) { + return file_user_user_proto_rawDescGZIP(), []int{5} +} -func (m *GetUserInfoReq) GetUserIDList() []string { - if m != nil { - return m.UserIDList +func (x *GetUserInfoReq) GetUserIDList() []string { + if x != nil { + return x.UserIDList } return nil } -func (m *GetUserInfoReq) GetToken() string { - if m != nil { - return m.Token +func (x *GetUserInfoReq) GetToken() string { + if x != nil { + return x.Token } return "" } -func (m *GetUserInfoReq) GetOperationID() string { - if m != nil { - return m.OperationID +func (x *GetUserInfoReq) GetOperationID() string { + if x != nil { + return x.OperationID } return "" } type GetUserInfoResp struct { - ErrorCode int32 `protobuf:"varint,1,opt,name=errorCode" json:"errorCode,omitempty"` - ErrorMsg string `protobuf:"bytes,2,opt,name=errorMsg" json:"errorMsg,omitempty"` - Data []*UserInfo `protobuf:"bytes,3,rep,name=Data" json:"Data,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields -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_user_9367ac00c24112e8, []int{6} + ErrorCode int32 `protobuf:"varint,1,opt,name=errorCode,proto3" json:"errorCode,omitempty"` + ErrorMsg string `protobuf:"bytes,2,opt,name=errorMsg,proto3" json:"errorMsg,omitempty"` + Data []*UserInfo `protobuf:"bytes,3,rep,name=Data,proto3" json:"Data,omitempty"` } -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 (x *GetUserInfoResp) Reset() { + *x = GetUserInfoResp{} + if protoimpl.UnsafeEnabled { + mi := &file_user_user_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *GetUserInfoResp) XXX_Size() int { - return xxx_messageInfo_GetUserInfoResp.Size(m) + +func (x *GetUserInfoResp) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *GetUserInfoResp) XXX_DiscardUnknown() { - xxx_messageInfo_GetUserInfoResp.DiscardUnknown(m) + +func (*GetUserInfoResp) ProtoMessage() {} + +func (x *GetUserInfoResp) ProtoReflect() protoreflect.Message { + mi := &file_user_user_proto_msgTypes[6] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) } -var xxx_messageInfo_GetUserInfoResp proto.InternalMessageInfo +// Deprecated: Use GetUserInfoResp.ProtoReflect.Descriptor instead. +func (*GetUserInfoResp) Descriptor() ([]byte, []int) { + return file_user_user_proto_rawDescGZIP(), []int{6} +} -func (m *GetUserInfoResp) GetErrorCode() int32 { - if m != nil { - return m.ErrorCode +func (x *GetUserInfoResp) GetErrorCode() int32 { + if x != nil { + return x.ErrorCode } return 0 } -func (m *GetUserInfoResp) GetErrorMsg() string { - if m != nil { - return m.ErrorMsg +func (x *GetUserInfoResp) GetErrorMsg() string { + if x != nil { + return x.ErrorMsg } return "" } -func (m *GetUserInfoResp) GetData() []*UserInfo { - if m != nil { - return m.Data +func (x *GetUserInfoResp) GetData() []*UserInfo { + if x != nil { + return x.Data } return nil } type UserInfo struct { - Uid string `protobuf:"bytes,1,opt,name=uid" json:"uid,omitempty"` - Name string `protobuf:"bytes,2,opt,name=name" json:"name,omitempty"` - Icon string `protobuf:"bytes,3,opt,name=icon" json:"icon,omitempty"` - Gender int32 `protobuf:"varint,4,opt,name=gender" json:"gender,omitempty"` - Mobile string `protobuf:"bytes,5,opt,name=mobile" json:"mobile,omitempty"` - Birth string `protobuf:"bytes,6,opt,name=birth" json:"birth,omitempty"` - Email string `protobuf:"bytes,7,opt,name=email" json:"email,omitempty"` - Ex string `protobuf:"bytes,8,opt,name=ex" json:"ex,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -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_user_9367ac00c24112e8, []int{7} -} -func (m *UserInfo) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_UserInfo.Unmarshal(m, b) -} -func (m *UserInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_UserInfo.Marshal(b, m, deterministic) + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Uid string `protobuf:"bytes,1,opt,name=uid,proto3" json:"uid,omitempty"` + Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"` + Icon string `protobuf:"bytes,3,opt,name=icon,proto3" json:"icon,omitempty"` + Gender int32 `protobuf:"varint,4,opt,name=gender,proto3" json:"gender,omitempty"` + Mobile string `protobuf:"bytes,5,opt,name=mobile,proto3" json:"mobile,omitempty"` + Birth string `protobuf:"bytes,6,opt,name=birth,proto3" json:"birth,omitempty"` + Email string `protobuf:"bytes,7,opt,name=email,proto3" json:"email,omitempty"` + Ex string `protobuf:"bytes,8,opt,name=ex,proto3" json:"ex,omitempty"` } -func (dst *UserInfo) XXX_Merge(src proto.Message) { - xxx_messageInfo_UserInfo.Merge(dst, src) + +func (x *UserInfo) Reset() { + *x = UserInfo{} + if protoimpl.UnsafeEnabled { + mi := &file_user_user_proto_msgTypes[7] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *UserInfo) XXX_Size() int { - return xxx_messageInfo_UserInfo.Size(m) + +func (x *UserInfo) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *UserInfo) XXX_DiscardUnknown() { - xxx_messageInfo_UserInfo.DiscardUnknown(m) + +func (*UserInfo) ProtoMessage() {} + +func (x *UserInfo) ProtoReflect() protoreflect.Message { + mi := &file_user_user_proto_msgTypes[7] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) } -var xxx_messageInfo_UserInfo proto.InternalMessageInfo +// Deprecated: Use UserInfo.ProtoReflect.Descriptor instead. +func (*UserInfo) Descriptor() ([]byte, []int) { + return file_user_user_proto_rawDescGZIP(), []int{7} +} -func (m *UserInfo) GetUid() string { - if m != nil { - return m.Uid +func (x *UserInfo) GetUid() string { + if x != nil { + return x.Uid } return "" } -func (m *UserInfo) GetName() string { - if m != nil { - return m.Name +func (x *UserInfo) GetName() string { + if x != nil { + return x.Name } return "" } -func (m *UserInfo) GetIcon() string { - if m != nil { - return m.Icon +func (x *UserInfo) GetIcon() string { + if x != nil { + return x.Icon } return "" } -func (m *UserInfo) GetGender() int32 { - if m != nil { - return m.Gender +func (x *UserInfo) GetGender() int32 { + if x != nil { + return x.Gender } return 0 } -func (m *UserInfo) GetMobile() string { - if m != nil { - return m.Mobile +func (x *UserInfo) GetMobile() string { + if x != nil { + return x.Mobile } return "" } -func (m *UserInfo) GetBirth() string { - if m != nil { - return m.Birth +func (x *UserInfo) GetBirth() string { + if x != nil { + return x.Birth } return "" } -func (m *UserInfo) GetEmail() string { - if m != nil { - return m.Email +func (x *UserInfo) GetEmail() string { + if x != nil { + return x.Email } return "" } -func (m *UserInfo) GetEx() string { - if m != nil { - return m.Ex +func (x *UserInfo) GetEx() string { + if x != nil { + return x.Ex } return "" } type LogoutReq struct { - OperationID string `protobuf:"bytes,1,opt,name=OperationID" json:"OperationID,omitempty"` - Token string `protobuf:"bytes,2,opt,name=token" json:"token,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields -func (m *LogoutReq) Reset() { *m = LogoutReq{} } -func (m *LogoutReq) String() string { return proto.CompactTextString(m) } -func (*LogoutReq) ProtoMessage() {} -func (*LogoutReq) Descriptor() ([]byte, []int) { - return fileDescriptor_user_9367ac00c24112e8, []int{8} -} -func (m *LogoutReq) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_LogoutReq.Unmarshal(m, b) -} -func (m *LogoutReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_LogoutReq.Marshal(b, m, deterministic) -} -func (dst *LogoutReq) XXX_Merge(src proto.Message) { - xxx_messageInfo_LogoutReq.Merge(dst, src) -} -func (m *LogoutReq) XXX_Size() int { - return xxx_messageInfo_LogoutReq.Size(m) + OperationID string `protobuf:"bytes,1,opt,name=OperationID,proto3" json:"OperationID,omitempty"` + Token string `protobuf:"bytes,2,opt,name=token,proto3" json:"token,omitempty"` } -func (m *LogoutReq) XXX_DiscardUnknown() { - xxx_messageInfo_LogoutReq.DiscardUnknown(m) -} - -var xxx_messageInfo_LogoutReq proto.InternalMessageInfo -func (m *LogoutReq) GetOperationID() string { - if m != nil { - return m.OperationID +func (x *LogoutReq) Reset() { + *x = LogoutReq{} + if protoimpl.UnsafeEnabled { + mi := &file_user_user_proto_msgTypes[8] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } - return "" } -func (m *LogoutReq) GetToken() string { - if m != nil { - return m.Token - } - return "" +func (x *LogoutReq) String() string { + return protoimpl.X.MessageStringOf(x) } -type UpdateUserInfoReq struct { - Icon string `protobuf:"bytes,1,opt,name=icon" json:"icon,omitempty"` - Name string `protobuf:"bytes,2,opt,name=name" json:"name,omitempty"` - Gender int32 `protobuf:"varint,3,opt,name=gender" json:"gender,omitempty"` - Mobile string `protobuf:"bytes,4,opt,name=mobile" json:"mobile,omitempty"` - Birth string `protobuf:"bytes,5,opt,name=birth" json:"birth,omitempty"` - Email string `protobuf:"bytes,6,opt,name=email" json:"email,omitempty"` - Ex string `protobuf:"bytes,7,opt,name=ex" json:"ex,omitempty"` - Token string `protobuf:"bytes,8,opt,name=token" json:"token,omitempty"` - OperationID string `protobuf:"bytes,9,opt,name=OperationID" json:"OperationID,omitempty"` - Uid string `protobuf:"bytes,10,opt,name=Uid" json:"Uid,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_user_9367ac00c24112e8, []int{9} -} -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) +func (*LogoutReq) ProtoMessage() {} + +func (x *LogoutReq) ProtoReflect() protoreflect.Message { + mi := &file_user_user_proto_msgTypes[8] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) } -var xxx_messageInfo_UpdateUserInfoReq proto.InternalMessageInfo +// Deprecated: Use LogoutReq.ProtoReflect.Descriptor instead. +func (*LogoutReq) Descriptor() ([]byte, []int) { + return file_user_user_proto_rawDescGZIP(), []int{8} +} -func (m *UpdateUserInfoReq) GetIcon() string { - if m != nil { - return m.Icon +func (x *LogoutReq) GetOperationID() string { + if x != nil { + return x.OperationID } return "" } -func (m *UpdateUserInfoReq) GetName() string { - if m != nil { - return m.Name +func (x *LogoutReq) GetToken() string { + if x != nil { + return x.Token } return "" } -func (m *UpdateUserInfoReq) GetGender() int32 { - if m != nil { - return m.Gender - } - return 0 -} +type UpdateUserInfoReq struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields -func (m *UpdateUserInfoReq) GetMobile() string { - if m != nil { - return m.Mobile - } - return "" + Icon string `protobuf:"bytes,1,opt,name=icon,proto3" json:"icon,omitempty"` + Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"` + Gender int32 `protobuf:"varint,3,opt,name=gender,proto3" json:"gender,omitempty"` + Mobile string `protobuf:"bytes,4,opt,name=mobile,proto3" json:"mobile,omitempty"` + Birth string `protobuf:"bytes,5,opt,name=birth,proto3" json:"birth,omitempty"` + Email string `protobuf:"bytes,6,opt,name=email,proto3" json:"email,omitempty"` + Ex string `protobuf:"bytes,7,opt,name=ex,proto3" json:"ex,omitempty"` + Token string `protobuf:"bytes,8,opt,name=token,proto3" json:"token,omitempty"` + OperationID string `protobuf:"bytes,9,opt,name=OperationID,proto3" json:"OperationID,omitempty"` + Uid string `protobuf:"bytes,10,opt,name=Uid,proto3" json:"Uid,omitempty"` } -func (m *UpdateUserInfoReq) GetBirth() string { - if m != nil { - return m.Birth +func (x *UpdateUserInfoReq) Reset() { + *x = UpdateUserInfoReq{} + if protoimpl.UnsafeEnabled { + mi := &file_user_user_proto_msgTypes[9] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } - return "" } -func (m *UpdateUserInfoReq) GetEmail() string { - if m != nil { - return m.Email - } - return "" +func (x *UpdateUserInfoReq) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *UpdateUserInfoReq) GetEx() string { - if m != nil { - return m.Ex +func (*UpdateUserInfoReq) ProtoMessage() {} + +func (x *UpdateUserInfoReq) ProtoReflect() protoreflect.Message { + mi := &file_user_user_proto_msgTypes[9] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms } - return "" + return mi.MessageOf(x) } -func (m *UpdateUserInfoReq) GetToken() string { - if m != nil { - return m.Token - } - return "" +// Deprecated: Use UpdateUserInfoReq.ProtoReflect.Descriptor instead. +func (*UpdateUserInfoReq) Descriptor() ([]byte, []int) { + return file_user_user_proto_rawDescGZIP(), []int{9} } -func (m *UpdateUserInfoReq) GetOperationID() string { - if m != nil { - return m.OperationID +func (x *UpdateUserInfoReq) GetIcon() string { + if x != nil { + return x.Icon } return "" } -func (m *UpdateUserInfoReq) GetUid() string { - if m != nil { - return m.Uid +func (x *UpdateUserInfoReq) GetName() string { + if x != nil { + return x.Name } return "" } -func init() { - proto.RegisterType((*CommonResp)(nil), "user.CommonResp") - proto.RegisterType((*DeleteUsersResp)(nil), "user.DeleteUsersResp") - proto.RegisterType((*DeleteUsersReq)(nil), "user.DeleteUsersReq") - proto.RegisterType((*GetAllUsersUidReq)(nil), "user.GetAllUsersUidReq") - proto.RegisterType((*GetAllUsersUidResp)(nil), "user.GetAllUsersUidResp") - proto.RegisterType((*GetUserInfoReq)(nil), "user.GetUserInfoReq") - proto.RegisterType((*GetUserInfoResp)(nil), "user.GetUserInfoResp") - proto.RegisterType((*UserInfo)(nil), "user.UserInfo") - proto.RegisterType((*LogoutReq)(nil), "user.LogoutReq") - proto.RegisterType((*UpdateUserInfoReq)(nil), "user.UpdateUserInfoReq") -} - -// 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 User service - -type UserClient interface { - GetUserInfo(ctx context.Context, in *GetUserInfoReq, opts ...grpc.CallOption) (*GetUserInfoResp, error) - UpdateUserInfo(ctx context.Context, in *UpdateUserInfoReq, opts ...grpc.CallOption) (*CommonResp, error) - DeleteUsers(ctx context.Context, in *DeleteUsersReq, opts ...grpc.CallOption) (*DeleteUsersResp, error) - GetAllUsersUid(ctx context.Context, in *GetAllUsersUidReq, opts ...grpc.CallOption) (*GetAllUsersUidResp, error) -} - -type userClient struct { - cc *grpc.ClientConn -} - -func NewUserClient(cc *grpc.ClientConn) UserClient { - return &userClient{cc} -} - -func (c *userClient) GetUserInfo(ctx context.Context, in *GetUserInfoReq, opts ...grpc.CallOption) (*GetUserInfoResp, error) { - out := new(GetUserInfoResp) - err := grpc.Invoke(ctx, "/user.user/getUserInfo", in, out, c.cc, opts...) - if err != nil { - return nil, err +func (x *UpdateUserInfoReq) GetGender() int32 { + if x != nil { + return x.Gender } - return out, nil + return 0 } -func (c *userClient) UpdateUserInfo(ctx context.Context, in *UpdateUserInfoReq, opts ...grpc.CallOption) (*CommonResp, error) { - out := new(CommonResp) - err := grpc.Invoke(ctx, "/user.user/UpdateUserInfo", in, out, c.cc, opts...) - if err != nil { - return nil, err +func (x *UpdateUserInfoReq) GetMobile() string { + if x != nil { + return x.Mobile } - return out, nil + return "" } -func (c *userClient) DeleteUsers(ctx context.Context, in *DeleteUsersReq, opts ...grpc.CallOption) (*DeleteUsersResp, error) { - out := new(DeleteUsersResp) - err := grpc.Invoke(ctx, "/user.user/DeleteUsers", in, out, c.cc, opts...) - if err != nil { - return nil, err +func (x *UpdateUserInfoReq) GetBirth() string { + if x != nil { + return x.Birth } - return out, nil + return "" } -func (c *userClient) GetAllUsersUid(ctx context.Context, in *GetAllUsersUidReq, opts ...grpc.CallOption) (*GetAllUsersUidResp, error) { - out := new(GetAllUsersUidResp) - err := grpc.Invoke(ctx, "/user.user/GetAllUsersUid", in, out, c.cc, opts...) - if err != nil { - return nil, err +func (x *UpdateUserInfoReq) GetEmail() string { + if x != nil { + return x.Email } - return out, nil -} - -// Server API for User service - -type UserServer interface { - GetUserInfo(context.Context, *GetUserInfoReq) (*GetUserInfoResp, error) - UpdateUserInfo(context.Context, *UpdateUserInfoReq) (*CommonResp, error) - DeleteUsers(context.Context, *DeleteUsersReq) (*DeleteUsersResp, error) - GetAllUsersUid(context.Context, *GetAllUsersUidReq) (*GetAllUsersUidResp, error) -} - -func RegisterUserServer(s *grpc.Server, srv UserServer) { - s.RegisterService(&_User_serviceDesc, srv) + return "" } -func _User_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.(UserServer).GetUserInfo(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/user.user/GetUserInfo", +func (x *UpdateUserInfoReq) GetEx() string { + if x != nil { + return x.Ex } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(UserServer).GetUserInfo(ctx, req.(*GetUserInfoReq)) - } - return interceptor(ctx, in, info, handler) + return "" } -func _User_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.(UserServer).UpdateUserInfo(ctx, in) +func (x *UpdateUserInfoReq) GetToken() string { + if x != nil { + return x.Token } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/user.user/UpdateUserInfo", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(UserServer).UpdateUserInfo(ctx, req.(*UpdateUserInfoReq)) - } - return interceptor(ctx, in, info, handler) + return "" } -func _User_DeleteUsers_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(DeleteUsersReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(UserServer).DeleteUsers(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/user.user/DeleteUsers", +func (x *UpdateUserInfoReq) GetOperationID() string { + if x != nil { + return x.OperationID } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(UserServer).DeleteUsers(ctx, req.(*DeleteUsersReq)) - } - return interceptor(ctx, in, info, handler) + return "" } -func _User_GetAllUsersUid_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(GetAllUsersUidReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(UserServer).GetAllUsersUid(ctx, in) +func (x *UpdateUserInfoReq) GetUid() string { + if x != nil { + return x.Uid } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/user.user/GetAllUsersUid", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(UserServer).GetAllUsersUid(ctx, req.(*GetAllUsersUidReq)) - } - return interceptor(ctx, in, info, handler) + return "" } -var _User_serviceDesc = grpc.ServiceDesc{ - ServiceName: "user.user", - HandlerType: (*UserServer)(nil), - Methods: []grpc.MethodDesc{ - { - MethodName: "getUserInfo", - Handler: _User_GetUserInfo_Handler, - }, - { - MethodName: "UpdateUserInfo", - Handler: _User_UpdateUserInfo_Handler, - }, - { - MethodName: "DeleteUsers", - Handler: _User_DeleteUsers_Handler, - }, - { - MethodName: "GetAllUsersUid", - Handler: _User_GetAllUsersUid_Handler, +var File_user_user_proto protoreflect.FileDescriptor + +var file_user_user_proto_rawDesc = []byte{ + 0x0a, 0x0f, 0x75, 0x73, 0x65, 0x72, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x12, 0x04, 0x75, 0x73, 0x65, 0x72, 0x22, 0x46, 0x0a, 0x0a, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, + 0x6e, 0x52, 0x65, 0x73, 0x70, 0x12, 0x1c, 0x0a, 0x09, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x43, 0x6f, + 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x43, + 0x6f, 0x64, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x4d, 0x73, 0x67, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x4d, 0x73, 0x67, 0x22, + 0x69, 0x0a, 0x0f, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x73, 0x52, 0x65, + 0x73, 0x70, 0x12, 0x30, 0x0a, 0x0a, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x43, 0x6f, + 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x52, 0x0a, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, + 0x52, 0x65, 0x73, 0x70, 0x12, 0x24, 0x0a, 0x0d, 0x66, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x55, 0x69, + 0x64, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0d, 0x66, 0x61, 0x69, + 0x6c, 0x65, 0x64, 0x55, 0x69, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x6e, 0x0a, 0x0e, 0x44, 0x65, + 0x6c, 0x65, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x12, 0x24, 0x0a, 0x0d, + 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x55, 0x69, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x02, 0x20, + 0x03, 0x28, 0x09, 0x52, 0x0d, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x55, 0x69, 0x64, 0x4c, 0x69, + 0x73, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x70, 0x65, 0x72, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x4f, + 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x22, 0x4b, 0x0a, 0x11, 0x47, 0x65, + 0x74, 0x41, 0x6c, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x73, 0x55, 0x69, 0x64, 0x52, 0x65, 0x71, 0x12, + 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, + 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x20, 0x0a, 0x0b, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6f, 0x70, 0x65, 0x72, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x22, 0x60, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x41, 0x6c, + 0x6c, 0x55, 0x73, 0x65, 0x72, 0x73, 0x55, 0x69, 0x64, 0x52, 0x65, 0x73, 0x70, 0x12, 0x30, 0x0a, + 0x0a, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x10, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, + 0x65, 0x73, 0x70, 0x52, 0x0a, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x12, + 0x18, 0x0a, 0x07, 0x75, 0x69, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, + 0x52, 0x07, 0x75, 0x69, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x68, 0x0a, 0x0e, 0x47, 0x65, 0x74, + 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x12, 0x1e, 0x0a, 0x0a, 0x75, + 0x73, 0x65, 0x72, 0x49, 0x44, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, + 0x0a, 0x75, 0x73, 0x65, 0x72, 0x49, 0x44, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x74, + 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x6f, 0x6b, 0x65, + 0x6e, 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x49, 0x44, 0x22, 0x6f, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, + 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x12, 0x1c, 0x0a, 0x09, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x43, + 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x65, 0x72, 0x72, 0x6f, 0x72, + 0x43, 0x6f, 0x64, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x4d, 0x73, 0x67, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x4d, 0x73, 0x67, + 0x12, 0x22, 0x0a, 0x04, 0x44, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0e, + 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, + 0x44, 0x61, 0x74, 0x61, 0x22, 0xb0, 0x01, 0x0a, 0x08, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, + 0x6f, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, + 0x75, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x69, 0x63, 0x6f, 0x6e, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x69, 0x63, 0x6f, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x67, + 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x67, 0x65, 0x6e, + 0x64, 0x65, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x6d, 0x6f, 0x62, 0x69, 0x6c, 0x65, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x06, 0x6d, 0x6f, 0x62, 0x69, 0x6c, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x62, + 0x69, 0x72, 0x74, 0x68, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x62, 0x69, 0x72, 0x74, + 0x68, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x12, 0x0e, 0x0a, 0x02, 0x65, 0x78, 0x18, 0x08, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x02, 0x65, 0x78, 0x22, 0x43, 0x0a, 0x09, 0x4c, 0x6f, 0x67, 0x6f, 0x75, + 0x74, 0x52, 0x65, 0x71, 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0xf1, 0x01, 0x0a, + 0x11, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, + 0x65, 0x71, 0x12, 0x12, 0x0a, 0x04, 0x69, 0x63, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x04, 0x69, 0x63, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x67, 0x65, + 0x6e, 0x64, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x67, 0x65, 0x6e, 0x64, + 0x65, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x6d, 0x6f, 0x62, 0x69, 0x6c, 0x65, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x06, 0x6d, 0x6f, 0x62, 0x69, 0x6c, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x62, 0x69, + 0x72, 0x74, 0x68, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x62, 0x69, 0x72, 0x74, 0x68, + 0x12, 0x14, 0x0a, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x12, 0x0e, 0x0a, 0x02, 0x65, 0x78, 0x18, 0x07, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x02, 0x65, 0x78, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, + 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x20, 0x0a, 0x0b, + 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x09, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x12, 0x10, + 0x0a, 0x03, 0x55, 0x69, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x55, 0x69, 0x64, + 0x32, 0x80, 0x02, 0x0a, 0x04, 0x75, 0x73, 0x65, 0x72, 0x12, 0x3a, 0x0a, 0x0b, 0x67, 0x65, 0x74, + 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x14, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, + 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x1a, 0x15, + 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, + 0x6f, 0x52, 0x65, 0x73, 0x70, 0x12, 0x3b, 0x0a, 0x0e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x55, + 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x17, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x55, + 0x70, 0x64, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, + 0x1a, 0x10, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, + 0x73, 0x70, 0x12, 0x3a, 0x0a, 0x0b, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, + 0x73, 0x12, 0x14, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x55, + 0x73, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x15, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x44, + 0x65, 0x6c, 0x65, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x12, 0x43, + 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x41, 0x6c, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x73, 0x55, 0x69, 0x64, + 0x12, 0x17, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x6c, 0x6c, 0x55, 0x73, + 0x65, 0x72, 0x73, 0x55, 0x69, 0x64, 0x52, 0x65, 0x71, 0x1a, 0x18, 0x2e, 0x75, 0x73, 0x65, 0x72, + 0x2e, 0x47, 0x65, 0x74, 0x41, 0x6c, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x73, 0x55, 0x69, 0x64, 0x52, + 0x65, 0x73, 0x70, 0x42, 0x0d, 0x5a, 0x0b, 0x2e, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x3b, 0x75, 0x73, + 0x65, 0x72, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_user_user_proto_rawDescOnce sync.Once + file_user_user_proto_rawDescData = file_user_user_proto_rawDesc +) + +func file_user_user_proto_rawDescGZIP() []byte { + file_user_user_proto_rawDescOnce.Do(func() { + file_user_user_proto_rawDescData = protoimpl.X.CompressGZIP(file_user_user_proto_rawDescData) + }) + return file_user_user_proto_rawDescData +} + +var file_user_user_proto_msgTypes = make([]protoimpl.MessageInfo, 10) +var file_user_user_proto_goTypes = []interface{}{ + (*CommonResp)(nil), // 0: user.CommonResp + (*DeleteUsersResp)(nil), // 1: user.DeleteUsersResp + (*DeleteUsersReq)(nil), // 2: user.DeleteUsersReq + (*GetAllUsersUidReq)(nil), // 3: user.GetAllUsersUidReq + (*GetAllUsersUidResp)(nil), // 4: user.GetAllUsersUidResp + (*GetUserInfoReq)(nil), // 5: user.GetUserInfoReq + (*GetUserInfoResp)(nil), // 6: user.GetUserInfoResp + (*UserInfo)(nil), // 7: user.UserInfo + (*LogoutReq)(nil), // 8: user.LogoutReq + (*UpdateUserInfoReq)(nil), // 9: user.UpdateUserInfoReq +} +var file_user_user_proto_depIdxs = []int32{ + 0, // 0: user.DeleteUsersResp.commonResp:type_name -> user.CommonResp + 0, // 1: user.GetAllUsersUidResp.commonResp:type_name -> user.CommonResp + 7, // 2: user.GetUserInfoResp.Data:type_name -> user.UserInfo + 5, // 3: user.user.getUserInfo:input_type -> user.GetUserInfoReq + 9, // 4: user.user.UpdateUserInfo:input_type -> user.UpdateUserInfoReq + 2, // 5: user.user.DeleteUsers:input_type -> user.DeleteUsersReq + 3, // 6: user.user.GetAllUsersUid:input_type -> user.GetAllUsersUidReq + 6, // 7: user.user.getUserInfo:output_type -> user.GetUserInfoResp + 0, // 8: user.user.UpdateUserInfo:output_type -> user.CommonResp + 1, // 9: user.user.DeleteUsers:output_type -> user.DeleteUsersResp + 4, // 10: user.user.GetAllUsersUid:output_type -> user.GetAllUsersUidResp + 7, // [7:11] is the sub-list for method output_type + 3, // [3:7] is the sub-list for method input_type + 3, // [3:3] is the sub-list for extension type_name + 3, // [3:3] is the sub-list for extension extendee + 0, // [0:3] is the sub-list for field type_name +} + +func init() { file_user_user_proto_init() } +func file_user_user_proto_init() { + if File_user_user_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_user_user_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CommonResp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_user_user_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DeleteUsersResp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_user_user_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DeleteUsersReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_user_user_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetAllUsersUidReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_user_user_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetAllUsersUidResp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_user_user_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetUserInfoReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_user_user_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetUserInfoResp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_user_user_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UserInfo); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_user_user_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*LogoutReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_user_user_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UpdateUserInfoReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_user_user_proto_rawDesc, + NumEnums: 0, + NumMessages: 10, + NumExtensions: 0, + NumServices: 1, }, - }, - Streams: []grpc.StreamDesc{}, - Metadata: "user/user.proto", -} - -func init() { proto.RegisterFile("user/user.proto", fileDescriptor_user_9367ac00c24112e8) } - -var fileDescriptor_user_9367ac00c24112e8 = []byte{ - // 560 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xa4, 0x54, 0x4d, 0x6f, 0xd3, 0x40, - 0x10, 0x95, 0xed, 0x7c, 0x79, 0x22, 0x92, 0x74, 0x55, 0x60, 0x15, 0x21, 0x14, 0x59, 0x1c, 0x72, - 0x2a, 0x28, 0xdc, 0xe8, 0x09, 0x12, 0x51, 0x45, 0x14, 0x55, 0xb2, 0xe4, 0x0b, 0x27, 0x9c, 0xee, - 0x34, 0x5d, 0xe1, 0x78, 0x8d, 0xbd, 0x91, 0x7a, 0xe4, 0x27, 0xf1, 0xd7, 0xf8, 0x07, 0x68, 0xc7, - 0x71, 0xe2, 0xaf, 0x72, 0xa0, 0x17, 0x6b, 0xe7, 0xed, 0xfa, 0xbd, 0x7d, 0x33, 0xb3, 0x03, 0xe3, - 0x7d, 0x86, 0xe9, 0x5b, 0xf3, 0xb9, 0x48, 0x52, 0xa5, 0x15, 0xeb, 0x98, 0xb5, 0xf7, 0x19, 0x60, - 0xa9, 0x76, 0x3b, 0x15, 0xfb, 0x98, 0x25, 0xec, 0x15, 0xb8, 0x98, 0xa6, 0x2a, 0x5d, 0x2a, 0x81, - 0xdc, 0x9a, 0x59, 0xf3, 0xae, 0x7f, 0x02, 0xd8, 0x14, 0x06, 0x14, 0x7c, 0xcd, 0xb6, 0xdc, 0x9e, - 0x59, 0x73, 0xd7, 0x3f, 0xc6, 0x9e, 0x84, 0xf1, 0x0a, 0x23, 0xd4, 0x18, 0x64, 0x98, 0x66, 0x44, - 0xf6, 0x0e, 0xe0, 0xf6, 0x48, 0x4d, 0x6c, 0xc3, 0xc5, 0xe4, 0x82, 0x6e, 0x70, 0x92, 0xf4, 0x4b, - 0x67, 0xd8, 0x1b, 0x78, 0x76, 0x17, 0xca, 0x08, 0x45, 0x20, 0xc5, 0xb5, 0xcc, 0x34, 0xb7, 0x67, - 0xce, 0xdc, 0xf5, 0xab, 0xa0, 0x17, 0xc3, 0xa8, 0x22, 0xf5, 0xd3, 0xfc, 0x27, 0x72, 0xa4, 0xfa, - 0x5f, 0x05, 0x64, 0xe7, 0xd0, 0xd5, 0xea, 0x07, 0xc6, 0xdc, 0xa1, 0xbb, 0xe7, 0x01, 0x9b, 0xc1, - 0xf0, 0x26, 0xc1, 0x34, 0xd4, 0x52, 0xc5, 0xeb, 0x15, 0xef, 0xd0, 0x5e, 0x19, 0xf2, 0xbe, 0xc0, - 0xd9, 0x15, 0xea, 0x8f, 0x51, 0x44, 0x7a, 0x81, 0x14, 0x46, 0xf2, 0x48, 0x66, 0xd7, 0xc8, 0x54, - 0x89, 0x2c, 0x17, 0x2a, 0x43, 0xde, 0x77, 0x60, 0x75, 0xb2, 0xff, 0x4a, 0x15, 0x87, 0xfe, 0xbe, - 0x62, 0xb6, 0x08, 0xbd, 0x7b, 0x18, 0x5d, 0xa1, 0x36, 0xf4, 0xeb, 0xf8, 0x4e, 0x99, 0xbb, 0xbe, - 0x06, 0x30, 0x54, 0xeb, 0x15, 0x1d, 0xb7, 0xe8, 0x78, 0x09, 0x79, 0xdc, 0xcb, 0x4d, 0xd3, 0x4b, - 0x39, 0x31, 0x0a, 0xc6, 0x15, 0xa5, 0xa7, 0x34, 0x10, 0xf3, 0xa0, 0xb3, 0x0a, 0x75, 0xc8, 0x9d, - 0x99, 0x33, 0x1f, 0x2e, 0x46, 0xb9, 0xf9, 0x23, 0x37, 0xed, 0x79, 0xbf, 0x2d, 0x18, 0x14, 0x10, - 0x9b, 0x80, 0xb3, 0x97, 0x82, 0x44, 0x5c, 0xdf, 0x2c, 0x19, 0x83, 0x4e, 0x1c, 0xee, 0xf0, 0x40, - 0x4d, 0x6b, 0x83, 0xc9, 0x5b, 0x55, 0xd4, 0x9c, 0xd6, 0xec, 0x05, 0xf4, 0xb6, 0x18, 0x0b, 0x4c, - 0xa9, 0xda, 0x5d, 0xff, 0x10, 0x19, 0x7c, 0xa7, 0x36, 0x32, 0x42, 0xde, 0xa5, 0xd3, 0x87, 0xc8, - 0xe4, 0x67, 0x23, 0x53, 0x7d, 0xcf, 0x7b, 0x79, 0x7e, 0x28, 0x30, 0x28, 0xee, 0x42, 0x19, 0xf1, - 0x7e, 0x8e, 0x52, 0xc0, 0x46, 0x60, 0xe3, 0x03, 0x1f, 0x10, 0x64, 0xe3, 0x83, 0xb7, 0x04, 0xf7, - 0x5a, 0x6d, 0xd5, 0x5e, 0x9b, 0x42, 0xd4, 0x52, 0x6a, 0x35, 0x52, 0xda, 0x5e, 0x0a, 0xef, 0x8f, - 0x05, 0x67, 0x41, 0x22, 0xc2, 0xbc, 0xe5, 0x8b, 0xb2, 0x16, 0xd6, 0xac, 0x92, 0xb5, 0xb6, 0x14, - 0x9c, 0xec, 0x3a, 0x8f, 0xd8, 0xed, 0xb4, 0xdb, 0xed, 0xb6, 0xda, 0xed, 0x35, 0xed, 0xf6, 0x0b, - 0xbb, 0xa7, 0xfb, 0x0f, 0xfe, 0xd1, 0x4a, 0x6e, 0xd3, 0xf7, 0x04, 0x9c, 0x40, 0x0a, 0x0e, 0x79, - 0x31, 0x03, 0x29, 0x16, 0xbf, 0x6c, 0xa0, 0x09, 0xc5, 0x3e, 0xc0, 0x70, 0x7b, 0xea, 0x32, 0x76, - 0x9e, 0x77, 0x46, 0xb5, 0xc5, 0xa7, 0xcf, 0x5b, 0xd0, 0x2c, 0x61, 0x97, 0x30, 0xaa, 0xe6, 0x8d, - 0xbd, 0x3c, 0x34, 0x56, 0x3d, 0x9b, 0xd3, 0xc6, 0x73, 0x33, 0xc2, 0xa5, 0x39, 0x53, 0x08, 0x57, - 0x47, 0x4f, 0x21, 0x5c, 0x9f, 0x7d, 0x4b, 0x7a, 0x84, 0xa5, 0x67, 0x5e, 0x08, 0x37, 0x26, 0xc9, - 0x94, 0xb7, 0x6f, 0x64, 0xc9, 0xa7, 0xe1, 0x37, 0xd7, 0x6c, 0x5d, 0x9a, 0xcf, 0xa6, 0x47, 0x53, - 0xfb, 0xfd, 0xdf, 0x00, 0x00, 0x00, 0xff, 0xff, 0x78, 0x0f, 0x5a, 0xd9, 0xc8, 0x05, 0x00, 0x00, + GoTypes: file_user_user_proto_goTypes, + DependencyIndexes: file_user_user_proto_depIdxs, + MessageInfos: file_user_user_proto_msgTypes, + }.Build() + File_user_user_proto = out.File + file_user_user_proto_rawDesc = nil + file_user_user_proto_goTypes = nil + file_user_user_proto_depIdxs = nil } From ff4e1a3c7118a336724a4b744211f7605324e1e2 Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Fri, 22 Oct 2021 20:49:42 +0800 Subject: [PATCH 005/814] pb file --- src/proto/auth/auth.proto | 2 +- src/proto/friend/friend.proto | 2 +- src/proto/group/group.proto | 2 +- src/proto/push/push.proto | 2 +- src/proto/relay/relay.proto | 2 +- src/proto/user/user.proto | 2 +- 6 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/proto/auth/auth.proto b/src/proto/auth/auth.proto index 21b82ff40..94c664125 100644 --- a/src/proto/auth/auth.proto +++ b/src/proto/auth/auth.proto @@ -1,6 +1,6 @@ syntax = "proto3"; package pbAuth; -option go_package = "./auth;pbAuth"; +option go_package = "auth;pbAuth"; message UserRegisterReq { string UID = 1; diff --git a/src/proto/friend/friend.proto b/src/proto/friend/friend.proto index 52b50d277..7cbfc8c41 100644 --- a/src/proto/friend/friend.proto +++ b/src/proto/friend/friend.proto @@ -1,5 +1,5 @@ syntax = "proto3"; -option go_package = "./friend;friend"; +option go_package = "friend;friend"; package friend; message CommonResp{ diff --git a/src/proto/group/group.proto b/src/proto/group/group.proto index ff1821ec2..3180e7a2f 100644 --- a/src/proto/group/group.proto +++ b/src/proto/group/group.proto @@ -1,5 +1,5 @@ syntax = "proto3"; -option go_package = "./group;group"; +option go_package = "group;group"; package group; message CommonResp{ diff --git a/src/proto/push/push.proto b/src/proto/push/push.proto index 60fddfe3b..7226aa543 100644 --- a/src/proto/push/push.proto +++ b/src/proto/push/push.proto @@ -1,5 +1,5 @@ syntax = "proto3"; -option go_package = "./push;pbPush"; +option go_package = "push;pbPush"; package push; message PushMsgReq { diff --git a/src/proto/relay/relay.proto b/src/proto/relay/relay.proto index 56b876c67..138163a80 100644 --- a/src/proto/relay/relay.proto +++ b/src/proto/relay/relay.proto @@ -1,5 +1,5 @@ syntax = "proto3"; -option go_package = "./relay;pbRelay"; +option go_package = "relay;pbRelay"; package relay; message MsgToUserReq { diff --git a/src/proto/user/user.proto b/src/proto/user/user.proto index e1d38fec6..d95960125 100644 --- a/src/proto/user/user.proto +++ b/src/proto/user/user.proto @@ -1,5 +1,5 @@ syntax = "proto3"; -option go_package = "./user;user"; +option go_package = "user;user"; package user; message CommonResp{ From 9cd8aa5e7a789efe14a461c2a6eb0b386dbae97d Mon Sep 17 00:00:00 2001 From: root Date: Fri, 22 Oct 2021 20:52:55 +0800 Subject: [PATCH 006/814] pbfile --- src/proto/auth/auth.pb.go | 550 ++--- src/proto/chat/chat.pb.go | 1832 ++++++--------- src/proto/friend/friend.pb.go | 2857 ++++++++-------------- src/proto/group/group.pb.go | 4173 ++++++++++++--------------------- src/proto/push/push.pb.go | 428 ++-- src/proto/relay/relay.pb.go | 520 ++-- src/proto/user/user.pb.go | 1199 ++++------ 7 files changed, 4264 insertions(+), 7295 deletions(-) diff --git a/src/proto/auth/auth.pb.go b/src/proto/auth/auth.pb.go index 67c338a52..f69636654 100644 --- a/src/proto/auth/auth.pb.go +++ b/src/proto/auth/auth.pb.go @@ -1,446 +1,294 @@ // Code generated by protoc-gen-go. DO NOT EDIT. -// versions: -// protoc-gen-go v1.26.0 -// protoc v3.7.1 // source: auth/auth.proto -package pbAuth +package pbAuth // import "auth" -import ( - protoreflect "google.golang.org/protobuf/reflect/protoreflect" - protoimpl "google.golang.org/protobuf/runtime/protoimpl" - reflect "reflect" - sync "sync" -) +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" -const ( - // Verify that this generated code is sufficiently up-to-date. - _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) - // Verify that runtime/protoimpl is sufficiently up-to-date. - _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) -) +// 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 UserRegisterReq struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - UID string `protobuf:"bytes,1,opt,name=UID,proto3" json:"UID,omitempty"` - Name string `protobuf:"bytes,2,opt,name=Name,proto3" json:"Name,omitempty"` - Icon string `protobuf:"bytes,3,opt,name=Icon,proto3" json:"Icon,omitempty"` - Gender int32 `protobuf:"varint,4,opt,name=Gender,proto3" json:"Gender,omitempty"` - Mobile string `protobuf:"bytes,5,opt,name=Mobile,proto3" json:"Mobile,omitempty"` - Birth string `protobuf:"bytes,6,opt,name=Birth,proto3" json:"Birth,omitempty"` - Email string `protobuf:"bytes,7,opt,name=Email,proto3" json:"Email,omitempty"` - Ex string `protobuf:"bytes,8,opt,name=Ex,proto3" json:"Ex,omitempty"` -} - -func (x *UserRegisterReq) Reset() { - *x = UserRegisterReq{} - if protoimpl.UnsafeEnabled { - mi := &file_auth_auth_proto_msgTypes[0] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + UID string `protobuf:"bytes,1,opt,name=UID" json:"UID,omitempty"` + Name string `protobuf:"bytes,2,opt,name=Name" json:"Name,omitempty"` + Icon string `protobuf:"bytes,3,opt,name=Icon" json:"Icon,omitempty"` + Gender int32 `protobuf:"varint,4,opt,name=Gender" json:"Gender,omitempty"` + Mobile string `protobuf:"bytes,5,opt,name=Mobile" json:"Mobile,omitempty"` + Birth string `protobuf:"bytes,6,opt,name=Birth" json:"Birth,omitempty"` + Email string `protobuf:"bytes,7,opt,name=Email" json:"Email,omitempty"` + Ex string `protobuf:"bytes,8,opt,name=Ex" json:"Ex,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *UserRegisterReq) Reset() { *m = UserRegisterReq{} } +func (m *UserRegisterReq) String() string { return proto.CompactTextString(m) } +func (*UserRegisterReq) ProtoMessage() {} +func (*UserRegisterReq) Descriptor() ([]byte, []int) { + return fileDescriptor_auth_ef7bd0d2906761f0, []int{0} } - -func (x *UserRegisterReq) String() string { - return protoimpl.X.MessageStringOf(x) +func (m *UserRegisterReq) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_UserRegisterReq.Unmarshal(m, b) } - -func (*UserRegisterReq) ProtoMessage() {} - -func (x *UserRegisterReq) ProtoReflect() protoreflect.Message { - mi := &file_auth_auth_proto_msgTypes[0] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) +func (m *UserRegisterReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_UserRegisterReq.Marshal(b, m, deterministic) } - -// Deprecated: Use UserRegisterReq.ProtoReflect.Descriptor instead. -func (*UserRegisterReq) Descriptor() ([]byte, []int) { - return file_auth_auth_proto_rawDescGZIP(), []int{0} +func (dst *UserRegisterReq) XXX_Merge(src proto.Message) { + xxx_messageInfo_UserRegisterReq.Merge(dst, src) +} +func (m *UserRegisterReq) XXX_Size() int { + return xxx_messageInfo_UserRegisterReq.Size(m) } +func (m *UserRegisterReq) XXX_DiscardUnknown() { + xxx_messageInfo_UserRegisterReq.DiscardUnknown(m) +} + +var xxx_messageInfo_UserRegisterReq proto.InternalMessageInfo -func (x *UserRegisterReq) GetUID() string { - if x != nil { - return x.UID +func (m *UserRegisterReq) GetUID() string { + if m != nil { + return m.UID } return "" } -func (x *UserRegisterReq) GetName() string { - if x != nil { - return x.Name +func (m *UserRegisterReq) GetName() string { + if m != nil { + return m.Name } return "" } -func (x *UserRegisterReq) GetIcon() string { - if x != nil { - return x.Icon +func (m *UserRegisterReq) GetIcon() string { + if m != nil { + return m.Icon } return "" } -func (x *UserRegisterReq) GetGender() int32 { - if x != nil { - return x.Gender +func (m *UserRegisterReq) GetGender() int32 { + if m != nil { + return m.Gender } return 0 } -func (x *UserRegisterReq) GetMobile() string { - if x != nil { - return x.Mobile +func (m *UserRegisterReq) GetMobile() string { + if m != nil { + return m.Mobile } return "" } -func (x *UserRegisterReq) GetBirth() string { - if x != nil { - return x.Birth +func (m *UserRegisterReq) GetBirth() string { + if m != nil { + return m.Birth } return "" } -func (x *UserRegisterReq) GetEmail() string { - if x != nil { - return x.Email +func (m *UserRegisterReq) GetEmail() string { + if m != nil { + return m.Email } return "" } -func (x *UserRegisterReq) GetEx() string { - if x != nil { - return x.Ex +func (m *UserRegisterReq) GetEx() string { + if m != nil { + return m.Ex } return "" } type UserRegisterResp struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Success bool `protobuf:"varint,1,opt,name=Success,proto3" json:"Success,omitempty"` + Success bool `protobuf:"varint,1,opt,name=Success" json:"Success,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (x *UserRegisterResp) Reset() { - *x = UserRegisterResp{} - if protoimpl.UnsafeEnabled { - mi := &file_auth_auth_proto_msgTypes[1] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } +func (m *UserRegisterResp) Reset() { *m = UserRegisterResp{} } +func (m *UserRegisterResp) String() string { return proto.CompactTextString(m) } +func (*UserRegisterResp) ProtoMessage() {} +func (*UserRegisterResp) Descriptor() ([]byte, []int) { + return fileDescriptor_auth_ef7bd0d2906761f0, []int{1} } - -func (x *UserRegisterResp) String() string { - return protoimpl.X.MessageStringOf(x) +func (m *UserRegisterResp) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_UserRegisterResp.Unmarshal(m, b) } - -func (*UserRegisterResp) ProtoMessage() {} - -func (x *UserRegisterResp) ProtoReflect() protoreflect.Message { - mi := &file_auth_auth_proto_msgTypes[1] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) +func (m *UserRegisterResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_UserRegisterResp.Marshal(b, m, deterministic) } - -// Deprecated: Use UserRegisterResp.ProtoReflect.Descriptor instead. -func (*UserRegisterResp) Descriptor() ([]byte, []int) { - return file_auth_auth_proto_rawDescGZIP(), []int{1} +func (dst *UserRegisterResp) XXX_Merge(src proto.Message) { + xxx_messageInfo_UserRegisterResp.Merge(dst, src) +} +func (m *UserRegisterResp) XXX_Size() int { + return xxx_messageInfo_UserRegisterResp.Size(m) } +func (m *UserRegisterResp) XXX_DiscardUnknown() { + xxx_messageInfo_UserRegisterResp.DiscardUnknown(m) +} + +var xxx_messageInfo_UserRegisterResp proto.InternalMessageInfo -func (x *UserRegisterResp) GetSuccess() bool { - if x != nil { - return x.Success +func (m *UserRegisterResp) GetSuccess() bool { + if m != nil { + return m.Success } return false } type UserTokenReq struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Platform int32 `protobuf:"varint,1,opt,name=Platform,proto3" json:"Platform,omitempty"` - UID string `protobuf:"bytes,2,opt,name=UID,proto3" json:"UID,omitempty"` + Platform int32 `protobuf:"varint,1,opt,name=Platform" json:"Platform,omitempty"` + UID string `protobuf:"bytes,2,opt,name=UID" json:"UID,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (x *UserTokenReq) Reset() { - *x = UserTokenReq{} - if protoimpl.UnsafeEnabled { - mi := &file_auth_auth_proto_msgTypes[2] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } +func (m *UserTokenReq) Reset() { *m = UserTokenReq{} } +func (m *UserTokenReq) String() string { return proto.CompactTextString(m) } +func (*UserTokenReq) ProtoMessage() {} +func (*UserTokenReq) Descriptor() ([]byte, []int) { + return fileDescriptor_auth_ef7bd0d2906761f0, []int{2} } - -func (x *UserTokenReq) String() string { - return protoimpl.X.MessageStringOf(x) +func (m *UserTokenReq) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_UserTokenReq.Unmarshal(m, b) } - -func (*UserTokenReq) ProtoMessage() {} - -func (x *UserTokenReq) ProtoReflect() protoreflect.Message { - mi := &file_auth_auth_proto_msgTypes[2] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) +func (m *UserTokenReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_UserTokenReq.Marshal(b, m, deterministic) } - -// Deprecated: Use UserTokenReq.ProtoReflect.Descriptor instead. -func (*UserTokenReq) Descriptor() ([]byte, []int) { - return file_auth_auth_proto_rawDescGZIP(), []int{2} +func (dst *UserTokenReq) XXX_Merge(src proto.Message) { + xxx_messageInfo_UserTokenReq.Merge(dst, src) +} +func (m *UserTokenReq) XXX_Size() int { + return xxx_messageInfo_UserTokenReq.Size(m) } +func (m *UserTokenReq) XXX_DiscardUnknown() { + xxx_messageInfo_UserTokenReq.DiscardUnknown(m) +} + +var xxx_messageInfo_UserTokenReq proto.InternalMessageInfo -func (x *UserTokenReq) GetPlatform() int32 { - if x != nil { - return x.Platform +func (m *UserTokenReq) GetPlatform() int32 { + if m != nil { + return m.Platform } return 0 } -func (x *UserTokenReq) GetUID() string { - if x != nil { - return x.UID +func (m *UserTokenReq) GetUID() string { + if m != nil { + return m.UID } return "" } type UserTokenResp struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - ErrCode int32 `protobuf:"varint,1,opt,name=ErrCode,proto3" json:"ErrCode,omitempty"` - ErrMsg string `protobuf:"bytes,2,opt,name=ErrMsg,proto3" json:"ErrMsg,omitempty"` - Token string `protobuf:"bytes,3,opt,name=Token,proto3" json:"Token,omitempty"` - ExpiredTime int64 `protobuf:"varint,4,opt,name=ExpiredTime,proto3" json:"ExpiredTime,omitempty"` -} - -func (x *UserTokenResp) Reset() { - *x = UserTokenResp{} - if protoimpl.UnsafeEnabled { - mi := &file_auth_auth_proto_msgTypes[3] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + ErrCode int32 `protobuf:"varint,1,opt,name=ErrCode" json:"ErrCode,omitempty"` + ErrMsg string `protobuf:"bytes,2,opt,name=ErrMsg" json:"ErrMsg,omitempty"` + Token string `protobuf:"bytes,3,opt,name=Token" json:"Token,omitempty"` + ExpiredTime int64 `protobuf:"varint,4,opt,name=ExpiredTime" json:"ExpiredTime,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *UserTokenResp) Reset() { *m = UserTokenResp{} } +func (m *UserTokenResp) String() string { return proto.CompactTextString(m) } +func (*UserTokenResp) ProtoMessage() {} +func (*UserTokenResp) Descriptor() ([]byte, []int) { + return fileDescriptor_auth_ef7bd0d2906761f0, []int{3} } - -func (x *UserTokenResp) String() string { - return protoimpl.X.MessageStringOf(x) +func (m *UserTokenResp) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_UserTokenResp.Unmarshal(m, b) } - -func (*UserTokenResp) ProtoMessage() {} - -func (x *UserTokenResp) ProtoReflect() protoreflect.Message { - mi := &file_auth_auth_proto_msgTypes[3] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) +func (m *UserTokenResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_UserTokenResp.Marshal(b, m, deterministic) } - -// Deprecated: Use UserTokenResp.ProtoReflect.Descriptor instead. -func (*UserTokenResp) Descriptor() ([]byte, []int) { - return file_auth_auth_proto_rawDescGZIP(), []int{3} +func (dst *UserTokenResp) XXX_Merge(src proto.Message) { + xxx_messageInfo_UserTokenResp.Merge(dst, src) +} +func (m *UserTokenResp) XXX_Size() int { + return xxx_messageInfo_UserTokenResp.Size(m) +} +func (m *UserTokenResp) XXX_DiscardUnknown() { + xxx_messageInfo_UserTokenResp.DiscardUnknown(m) } -func (x *UserTokenResp) GetErrCode() int32 { - if x != nil { - return x.ErrCode +var xxx_messageInfo_UserTokenResp proto.InternalMessageInfo + +func (m *UserTokenResp) GetErrCode() int32 { + if m != nil { + return m.ErrCode } return 0 } -func (x *UserTokenResp) GetErrMsg() string { - if x != nil { - return x.ErrMsg +func (m *UserTokenResp) GetErrMsg() string { + if m != nil { + return m.ErrMsg } return "" } -func (x *UserTokenResp) GetToken() string { - if x != nil { - return x.Token +func (m *UserTokenResp) GetToken() string { + if m != nil { + return m.Token } return "" } -func (x *UserTokenResp) GetExpiredTime() int64 { - if x != nil { - return x.ExpiredTime +func (m *UserTokenResp) GetExpiredTime() int64 { + if m != nil { + return m.ExpiredTime } return 0 } -var File_auth_auth_proto protoreflect.FileDescriptor - -var file_auth_auth_proto_rawDesc = []byte{ - 0x0a, 0x0f, 0x61, 0x75, 0x74, 0x68, 0x2f, 0x61, 0x75, 0x74, 0x68, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x12, 0x06, 0x70, 0x62, 0x41, 0x75, 0x74, 0x68, 0x22, 0xb7, 0x01, 0x0a, 0x0f, 0x55, 0x73, - 0x65, 0x72, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x52, 0x65, 0x71, 0x12, 0x10, 0x0a, - 0x03, 0x55, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x55, 0x49, 0x44, 0x12, - 0x12, 0x0a, 0x04, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x4e, - 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x49, 0x63, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x04, 0x49, 0x63, 0x6f, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x47, 0x65, 0x6e, 0x64, 0x65, - 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x47, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x12, - 0x16, 0x0a, 0x06, 0x4d, 0x6f, 0x62, 0x69, 0x6c, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x06, 0x4d, 0x6f, 0x62, 0x69, 0x6c, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x42, 0x69, 0x72, 0x74, 0x68, - 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x42, 0x69, 0x72, 0x74, 0x68, 0x12, 0x14, 0x0a, - 0x05, 0x45, 0x6d, 0x61, 0x69, 0x6c, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x45, 0x6d, - 0x61, 0x69, 0x6c, 0x12, 0x0e, 0x0a, 0x02, 0x45, 0x78, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x02, 0x45, 0x78, 0x22, 0x2c, 0x0a, 0x10, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x67, 0x69, 0x73, - 0x74, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x12, 0x18, 0x0a, 0x07, 0x53, 0x75, 0x63, 0x63, 0x65, - 0x73, 0x73, 0x18, 0x01, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, 0x53, 0x75, 0x63, 0x63, 0x65, 0x73, - 0x73, 0x22, 0x3c, 0x0a, 0x0c, 0x55, 0x73, 0x65, 0x72, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x65, - 0x71, 0x12, 0x1a, 0x0a, 0x08, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x08, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x12, 0x10, 0x0a, - 0x03, 0x55, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x55, 0x49, 0x44, 0x22, - 0x79, 0x0a, 0x0d, 0x55, 0x73, 0x65, 0x72, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x65, 0x73, 0x70, - 0x12, 0x18, 0x0a, 0x07, 0x45, 0x72, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x07, 0x45, 0x72, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x45, 0x72, - 0x72, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x45, 0x72, 0x72, 0x4d, - 0x73, 0x67, 0x12, 0x14, 0x0a, 0x05, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x05, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x20, 0x0a, 0x0b, 0x45, 0x78, 0x70, 0x69, - 0x72, 0x65, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x45, - 0x78, 0x70, 0x69, 0x72, 0x65, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x32, 0x83, 0x01, 0x0a, 0x04, 0x41, - 0x75, 0x74, 0x68, 0x12, 0x41, 0x0a, 0x0c, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x67, 0x69, 0x73, - 0x74, 0x65, 0x72, 0x12, 0x17, 0x2e, 0x70, 0x62, 0x41, 0x75, 0x74, 0x68, 0x2e, 0x55, 0x73, 0x65, - 0x72, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, 0x65, 0x72, 0x52, 0x65, 0x71, 0x1a, 0x18, 0x2e, 0x70, - 0x62, 0x41, 0x75, 0x74, 0x68, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x67, 0x69, 0x73, 0x74, - 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x12, 0x38, 0x0a, 0x09, 0x55, 0x73, 0x65, 0x72, 0x54, 0x6f, - 0x6b, 0x65, 0x6e, 0x12, 0x14, 0x2e, 0x70, 0x62, 0x41, 0x75, 0x74, 0x68, 0x2e, 0x55, 0x73, 0x65, - 0x72, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x65, 0x71, 0x1a, 0x15, 0x2e, 0x70, 0x62, 0x41, 0x75, - 0x74, 0x68, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x52, 0x65, 0x73, 0x70, - 0x42, 0x0f, 0x5a, 0x0d, 0x2e, 0x2f, 0x61, 0x75, 0x74, 0x68, 0x3b, 0x70, 0x62, 0x41, 0x75, 0x74, - 0x68, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, -} - -var ( - file_auth_auth_proto_rawDescOnce sync.Once - file_auth_auth_proto_rawDescData = file_auth_auth_proto_rawDesc -) - -func file_auth_auth_proto_rawDescGZIP() []byte { - file_auth_auth_proto_rawDescOnce.Do(func() { - file_auth_auth_proto_rawDescData = protoimpl.X.CompressGZIP(file_auth_auth_proto_rawDescData) - }) - return file_auth_auth_proto_rawDescData -} - -var file_auth_auth_proto_msgTypes = make([]protoimpl.MessageInfo, 4) -var file_auth_auth_proto_goTypes = []interface{}{ - (*UserRegisterReq)(nil), // 0: pbAuth.UserRegisterReq - (*UserRegisterResp)(nil), // 1: pbAuth.UserRegisterResp - (*UserTokenReq)(nil), // 2: pbAuth.UserTokenReq - (*UserTokenResp)(nil), // 3: pbAuth.UserTokenResp -} -var file_auth_auth_proto_depIdxs = []int32{ - 0, // 0: pbAuth.Auth.UserRegister:input_type -> pbAuth.UserRegisterReq - 2, // 1: pbAuth.Auth.UserToken:input_type -> pbAuth.UserTokenReq - 1, // 2: pbAuth.Auth.UserRegister:output_type -> pbAuth.UserRegisterResp - 3, // 3: pbAuth.Auth.UserToken:output_type -> pbAuth.UserTokenResp - 2, // [2:4] is the sub-list for method output_type - 0, // [0:2] is the sub-list for method input_type - 0, // [0:0] is the sub-list for extension type_name - 0, // [0:0] is the sub-list for extension extendee - 0, // [0:0] is the sub-list for field type_name -} - -func init() { file_auth_auth_proto_init() } -func file_auth_auth_proto_init() { - if File_auth_auth_proto != nil { - return - } - if !protoimpl.UnsafeEnabled { - file_auth_auth_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*UserRegisterReq); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_auth_auth_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*UserRegisterResp); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_auth_auth_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*UserTokenReq); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_auth_auth_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*UserTokenResp); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - } - type x struct{} - out := protoimpl.TypeBuilder{ - File: protoimpl.DescBuilder{ - GoPackagePath: reflect.TypeOf(x{}).PkgPath(), - RawDescriptor: file_auth_auth_proto_rawDesc, - NumEnums: 0, - NumMessages: 4, - NumExtensions: 0, - NumServices: 1, - }, - GoTypes: file_auth_auth_proto_goTypes, - DependencyIndexes: file_auth_auth_proto_depIdxs, - MessageInfos: file_auth_auth_proto_msgTypes, - }.Build() - File_auth_auth_proto = out.File - file_auth_auth_proto_rawDesc = nil - file_auth_auth_proto_goTypes = nil - file_auth_auth_proto_depIdxs = nil +func init() { + proto.RegisterType((*UserRegisterReq)(nil), "pbAuth.UserRegisterReq") + proto.RegisterType((*UserRegisterResp)(nil), "pbAuth.UserRegisterResp") + proto.RegisterType((*UserTokenReq)(nil), "pbAuth.UserTokenReq") + proto.RegisterType((*UserTokenResp)(nil), "pbAuth.UserTokenResp") +} + +func init() { proto.RegisterFile("auth/auth.proto", fileDescriptor_auth_ef7bd0d2906761f0) } + +var fileDescriptor_auth_ef7bd0d2906761f0 = []byte{ + // 346 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x6c, 0x92, 0xc1, 0x4e, 0xc2, 0x40, + 0x10, 0x86, 0xd3, 0x42, 0x0b, 0x0c, 0x22, 0x64, 0x82, 0xba, 0xe1, 0x44, 0x7a, 0xe2, 0x60, 0x30, + 0xd1, 0x8b, 0x89, 0x5e, 0x40, 0x1b, 0xc3, 0x01, 0x63, 0x2a, 0x5c, 0xbc, 0x15, 0x58, 0xa1, 0x91, + 0xb2, 0x75, 0xb7, 0x24, 0x78, 0xf6, 0xa1, 0x7c, 0x3d, 0x33, 0xbb, 0x5b, 0x82, 0x86, 0x4b, 0x3b, + 0xff, 0xb7, 0x33, 0xd9, 0xfd, 0x67, 0x06, 0x9a, 0xf1, 0x36, 0x5f, 0x5d, 0xd1, 0xa7, 0x9f, 0x49, + 0x91, 0x0b, 0xf4, 0xb3, 0xd9, 0x60, 0x9b, 0xaf, 0x82, 0x1f, 0x07, 0x9a, 0x53, 0xc5, 0x65, 0xc4, + 0x97, 0x89, 0xca, 0xe9, 0xff, 0x89, 0x2d, 0x28, 0x4d, 0x47, 0x8f, 0xcc, 0xe9, 0x3a, 0xbd, 0x5a, + 0x44, 0x21, 0x22, 0x94, 0x9f, 0xe3, 0x94, 0x33, 0x57, 0x23, 0x1d, 0x13, 0x1b, 0xcd, 0xc5, 0x86, + 0x95, 0x0c, 0xa3, 0x18, 0xcf, 0xc1, 0x7f, 0xe2, 0x9b, 0x05, 0x97, 0xac, 0xdc, 0x75, 0x7a, 0x5e, + 0x64, 0x15, 0xf1, 0xb1, 0x98, 0x25, 0x6b, 0xce, 0x3c, 0x9d, 0x6d, 0x15, 0xb6, 0xc1, 0x1b, 0x26, + 0x32, 0x5f, 0x31, 0x5f, 0x63, 0x23, 0x88, 0x86, 0x69, 0x9c, 0xac, 0x59, 0xc5, 0x50, 0x2d, 0xf0, + 0x14, 0xdc, 0x70, 0xc7, 0xaa, 0x1a, 0xb9, 0xe1, 0x2e, 0xb8, 0x84, 0xd6, 0xdf, 0x87, 0xab, 0x0c, + 0x19, 0x54, 0x5e, 0xb7, 0xf3, 0x39, 0x57, 0x4a, 0xbf, 0xbe, 0x1a, 0x15, 0x32, 0xb8, 0x87, 0x13, + 0xca, 0x9e, 0x88, 0x0f, 0xbe, 0x21, 0x8f, 0x1d, 0xa8, 0xbe, 0xac, 0xe3, 0xfc, 0x5d, 0xc8, 0x54, + 0xa7, 0x7a, 0xd1, 0x5e, 0x17, 0xfe, 0xdd, 0xbd, 0xff, 0xe0, 0x0b, 0x1a, 0x07, 0xd5, 0xe6, 0xa2, + 0x50, 0xca, 0x07, 0xb1, 0xe0, 0xb6, 0xba, 0x90, 0x64, 0x35, 0x94, 0x72, 0xac, 0x96, 0xb6, 0xde, + 0x2a, 0x32, 0xa5, 0xcb, 0x6d, 0xbf, 0x8c, 0xc0, 0x2e, 0xd4, 0xc3, 0x5d, 0x96, 0x48, 0xbe, 0x98, + 0x24, 0x29, 0xd7, 0x5d, 0x2b, 0x45, 0x87, 0xe8, 0xfa, 0xdb, 0x81, 0x32, 0x4d, 0x0a, 0x07, 0xc6, + 0x41, 0xe1, 0x17, 0x2f, 0xfa, 0x66, 0x84, 0xfd, 0x7f, 0xe3, 0xeb, 0xb0, 0xe3, 0x07, 0x2a, 0xc3, + 0x5b, 0xa8, 0xed, 0x6d, 0x60, 0xfb, 0x30, 0xad, 0xe8, 0x4b, 0xe7, 0xec, 0x08, 0x55, 0xd9, 0xb0, + 0xf1, 0x56, 0xa7, 0xe5, 0xb9, 0x33, 0x87, 0x33, 0x5f, 0x2f, 0xd1, 0xcd, 0x6f, 0x00, 0x00, 0x00, + 0xff, 0xff, 0x03, 0x0f, 0xb1, 0xb3, 0x57, 0x02, 0x00, 0x00, } diff --git a/src/proto/chat/chat.pb.go b/src/proto/chat/chat.pb.go index ba4023579..4ef79f441 100644 --- a/src/proto/chat/chat.pb.go +++ b/src/proto/chat/chat.pb.go @@ -1,1587 +1,1157 @@ // Code generated by protoc-gen-go. DO NOT EDIT. -// versions: -// protoc-gen-go v1.26.0 -// protoc v3.7.1 // source: chat/chat.proto -package pbChat +package pbChat // import "./chat" -import ( - protoreflect "google.golang.org/protobuf/reflect/protoreflect" - protoimpl "google.golang.org/protobuf/runtime/protoimpl" - reflect "reflect" - sync "sync" -) +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" -const ( - // Verify that this generated code is sufficiently up-to-date. - _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) - // Verify that runtime/protoimpl is sufficiently up-to-date. - _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) -) +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf -type WSToMsgSvrChatMsg struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields +// 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 - SendID string `protobuf:"bytes,1,opt,name=SendID,proto3" json:"SendID,omitempty"` - RecvID string `protobuf:"bytes,2,opt,name=RecvID,proto3" json:"RecvID,omitempty"` - Content string `protobuf:"bytes,3,opt,name=Content,proto3" json:"Content,omitempty"` - SendTime int64 `protobuf:"varint,4,opt,name=SendTime,proto3" json:"SendTime,omitempty"` - MsgFrom int32 `protobuf:"varint,5,opt,name=MsgFrom,proto3" json:"MsgFrom,omitempty"` - SenderNickName string `protobuf:"bytes,6,opt,name=SenderNickName,proto3" json:"SenderNickName,omitempty"` - SenderFaceURL string `protobuf:"bytes,7,opt,name=SenderFaceURL,proto3" json:"SenderFaceURL,omitempty"` - ContentType int32 `protobuf:"varint,8,opt,name=ContentType,proto3" json:"ContentType,omitempty"` - SessionType int32 `protobuf:"varint,9,opt,name=SessionType,proto3" json:"SessionType,omitempty"` - OperationID string `protobuf:"bytes,10,opt,name=OperationID,proto3" json:"OperationID,omitempty"` - MsgID string `protobuf:"bytes,11,opt,name=MsgID,proto3" json:"MsgID,omitempty"` - Token string `protobuf:"bytes,12,opt,name=Token,proto3" json:"Token,omitempty"` - OfflineInfo string `protobuf:"bytes,13,opt,name=OfflineInfo,proto3" json:"OfflineInfo,omitempty"` - Options string `protobuf:"bytes,14,opt,name=Options,proto3" json:"Options,omitempty"` - PlatformID int32 `protobuf:"varint,15,opt,name=PlatformID,proto3" json:"PlatformID,omitempty"` - ForceList []string `protobuf:"bytes,16,rep,name=ForceList,proto3" json:"ForceList,omitempty"` - ClientMsgID string `protobuf:"bytes,17,opt,name=ClientMsgID,proto3" json:"ClientMsgID,omitempty"` +type WSToMsgSvrChatMsg struct { + SendID string `protobuf:"bytes,1,opt,name=SendID" json:"SendID,omitempty"` + RecvID string `protobuf:"bytes,2,opt,name=RecvID" json:"RecvID,omitempty"` + Content string `protobuf:"bytes,3,opt,name=Content" json:"Content,omitempty"` + SendTime int64 `protobuf:"varint,4,opt,name=SendTime" json:"SendTime,omitempty"` + MsgFrom int32 `protobuf:"varint,5,opt,name=MsgFrom" json:"MsgFrom,omitempty"` + SenderNickName string `protobuf:"bytes,6,opt,name=SenderNickName" json:"SenderNickName,omitempty"` + SenderFaceURL string `protobuf:"bytes,7,opt,name=SenderFaceURL" json:"SenderFaceURL,omitempty"` + ContentType int32 `protobuf:"varint,8,opt,name=ContentType" json:"ContentType,omitempty"` + SessionType int32 `protobuf:"varint,9,opt,name=SessionType" json:"SessionType,omitempty"` + OperationID string `protobuf:"bytes,10,opt,name=OperationID" json:"OperationID,omitempty"` + MsgID string `protobuf:"bytes,11,opt,name=MsgID" json:"MsgID,omitempty"` + Token string `protobuf:"bytes,12,opt,name=Token" json:"Token,omitempty"` + OfflineInfo string `protobuf:"bytes,13,opt,name=OfflineInfo" json:"OfflineInfo,omitempty"` + Options string `protobuf:"bytes,14,opt,name=Options" json:"Options,omitempty"` + PlatformID int32 `protobuf:"varint,15,opt,name=PlatformID" json:"PlatformID,omitempty"` + ForceList []string `protobuf:"bytes,16,rep,name=ForceList" json:"ForceList,omitempty"` + ClientMsgID string `protobuf:"bytes,17,opt,name=ClientMsgID" json:"ClientMsgID,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *WSToMsgSvrChatMsg) Reset() { *m = WSToMsgSvrChatMsg{} } +func (m *WSToMsgSvrChatMsg) String() string { return proto.CompactTextString(m) } +func (*WSToMsgSvrChatMsg) ProtoMessage() {} +func (*WSToMsgSvrChatMsg) Descriptor() ([]byte, []int) { + return fileDescriptor_chat_1c5fb32d3659e154, []int{0} } - -func (x *WSToMsgSvrChatMsg) Reset() { - *x = WSToMsgSvrChatMsg{} - if protoimpl.UnsafeEnabled { - mi := &file_chat_chat_proto_msgTypes[0] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } +func (m *WSToMsgSvrChatMsg) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_WSToMsgSvrChatMsg.Unmarshal(m, b) } - -func (x *WSToMsgSvrChatMsg) String() string { - return protoimpl.X.MessageStringOf(x) +func (m *WSToMsgSvrChatMsg) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_WSToMsgSvrChatMsg.Marshal(b, m, deterministic) } - -func (*WSToMsgSvrChatMsg) ProtoMessage() {} - -func (x *WSToMsgSvrChatMsg) ProtoReflect() protoreflect.Message { - mi := &file_chat_chat_proto_msgTypes[0] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) +func (dst *WSToMsgSvrChatMsg) XXX_Merge(src proto.Message) { + xxx_messageInfo_WSToMsgSvrChatMsg.Merge(dst, src) } - -// Deprecated: Use WSToMsgSvrChatMsg.ProtoReflect.Descriptor instead. -func (*WSToMsgSvrChatMsg) Descriptor() ([]byte, []int) { - return file_chat_chat_proto_rawDescGZIP(), []int{0} +func (m *WSToMsgSvrChatMsg) XXX_Size() int { + return xxx_messageInfo_WSToMsgSvrChatMsg.Size(m) +} +func (m *WSToMsgSvrChatMsg) XXX_DiscardUnknown() { + xxx_messageInfo_WSToMsgSvrChatMsg.DiscardUnknown(m) } -func (x *WSToMsgSvrChatMsg) GetSendID() string { - if x != nil { - return x.SendID +var xxx_messageInfo_WSToMsgSvrChatMsg proto.InternalMessageInfo + +func (m *WSToMsgSvrChatMsg) GetSendID() string { + if m != nil { + return m.SendID } return "" } -func (x *WSToMsgSvrChatMsg) GetRecvID() string { - if x != nil { - return x.RecvID +func (m *WSToMsgSvrChatMsg) GetRecvID() string { + if m != nil { + return m.RecvID } return "" } -func (x *WSToMsgSvrChatMsg) GetContent() string { - if x != nil { - return x.Content +func (m *WSToMsgSvrChatMsg) GetContent() string { + if m != nil { + return m.Content } return "" } -func (x *WSToMsgSvrChatMsg) GetSendTime() int64 { - if x != nil { - return x.SendTime +func (m *WSToMsgSvrChatMsg) GetSendTime() int64 { + if m != nil { + return m.SendTime } return 0 } -func (x *WSToMsgSvrChatMsg) GetMsgFrom() int32 { - if x != nil { - return x.MsgFrom +func (m *WSToMsgSvrChatMsg) GetMsgFrom() int32 { + if m != nil { + return m.MsgFrom } return 0 } -func (x *WSToMsgSvrChatMsg) GetSenderNickName() string { - if x != nil { - return x.SenderNickName +func (m *WSToMsgSvrChatMsg) GetSenderNickName() string { + if m != nil { + return m.SenderNickName } return "" } -func (x *WSToMsgSvrChatMsg) GetSenderFaceURL() string { - if x != nil { - return x.SenderFaceURL +func (m *WSToMsgSvrChatMsg) GetSenderFaceURL() string { + if m != nil { + return m.SenderFaceURL } return "" } -func (x *WSToMsgSvrChatMsg) GetContentType() int32 { - if x != nil { - return x.ContentType +func (m *WSToMsgSvrChatMsg) GetContentType() int32 { + if m != nil { + return m.ContentType } return 0 } -func (x *WSToMsgSvrChatMsg) GetSessionType() int32 { - if x != nil { - return x.SessionType +func (m *WSToMsgSvrChatMsg) GetSessionType() int32 { + if m != nil { + return m.SessionType } return 0 } -func (x *WSToMsgSvrChatMsg) GetOperationID() string { - if x != nil { - return x.OperationID +func (m *WSToMsgSvrChatMsg) GetOperationID() string { + if m != nil { + return m.OperationID } return "" } -func (x *WSToMsgSvrChatMsg) GetMsgID() string { - if x != nil { - return x.MsgID +func (m *WSToMsgSvrChatMsg) GetMsgID() string { + if m != nil { + return m.MsgID } return "" } -func (x *WSToMsgSvrChatMsg) GetToken() string { - if x != nil { - return x.Token +func (m *WSToMsgSvrChatMsg) GetToken() string { + if m != nil { + return m.Token } return "" } -func (x *WSToMsgSvrChatMsg) GetOfflineInfo() string { - if x != nil { - return x.OfflineInfo +func (m *WSToMsgSvrChatMsg) GetOfflineInfo() string { + if m != nil { + return m.OfflineInfo } return "" } -func (x *WSToMsgSvrChatMsg) GetOptions() string { - if x != nil { - return x.Options +func (m *WSToMsgSvrChatMsg) GetOptions() string { + if m != nil { + return m.Options } return "" } -func (x *WSToMsgSvrChatMsg) GetPlatformID() int32 { - if x != nil { - return x.PlatformID +func (m *WSToMsgSvrChatMsg) GetPlatformID() int32 { + if m != nil { + return m.PlatformID } return 0 } -func (x *WSToMsgSvrChatMsg) GetForceList() []string { - if x != nil { - return x.ForceList +func (m *WSToMsgSvrChatMsg) GetForceList() []string { + if m != nil { + return m.ForceList } return nil } -func (x *WSToMsgSvrChatMsg) GetClientMsgID() string { - if x != nil { - return x.ClientMsgID +func (m *WSToMsgSvrChatMsg) GetClientMsgID() string { + if m != nil { + return m.ClientMsgID } return "" } type MsgSvrToPushSvrChatMsg struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - SendID string `protobuf:"bytes,1,opt,name=SendID,proto3" json:"SendID,omitempty"` - RecvID string `protobuf:"bytes,2,opt,name=RecvID,proto3" json:"RecvID,omitempty"` - Content string `protobuf:"bytes,3,opt,name=Content,proto3" json:"Content,omitempty"` - RecvSeq int64 `protobuf:"varint,4,opt,name=RecvSeq,proto3" json:"RecvSeq,omitempty"` - SendTime int64 `protobuf:"varint,5,opt,name=SendTime,proto3" json:"SendTime,omitempty"` - MsgFrom int32 `protobuf:"varint,6,opt,name=MsgFrom,proto3" json:"MsgFrom,omitempty"` - SenderNickName string `protobuf:"bytes,7,opt,name=SenderNickName,proto3" json:"SenderNickName,omitempty"` - SenderFaceURL string `protobuf:"bytes,8,opt,name=SenderFaceURL,proto3" json:"SenderFaceURL,omitempty"` - ContentType int32 `protobuf:"varint,9,opt,name=ContentType,proto3" json:"ContentType,omitempty"` - SessionType int32 `protobuf:"varint,10,opt,name=SessionType,proto3" json:"SessionType,omitempty"` - OperationID string `protobuf:"bytes,11,opt,name=OperationID,proto3" json:"OperationID,omitempty"` - MsgID string `protobuf:"bytes,12,opt,name=MsgID,proto3" json:"MsgID,omitempty"` - OfflineInfo string `protobuf:"bytes,13,opt,name=OfflineInfo,proto3" json:"OfflineInfo,omitempty"` - Options string `protobuf:"bytes,14,opt,name=Options,proto3" json:"Options,omitempty"` - PlatformID int32 `protobuf:"varint,15,opt,name=PlatformID,proto3" json:"PlatformID,omitempty"` - ClientMsgID string `protobuf:"bytes,16,opt,name=ClientMsgID,proto3" json:"ClientMsgID,omitempty"` + SendID string `protobuf:"bytes,1,opt,name=SendID" json:"SendID,omitempty"` + RecvID string `protobuf:"bytes,2,opt,name=RecvID" json:"RecvID,omitempty"` + Content string `protobuf:"bytes,3,opt,name=Content" json:"Content,omitempty"` + RecvSeq int64 `protobuf:"varint,4,opt,name=RecvSeq" json:"RecvSeq,omitempty"` + SendTime int64 `protobuf:"varint,5,opt,name=SendTime" json:"SendTime,omitempty"` + MsgFrom int32 `protobuf:"varint,6,opt,name=MsgFrom" json:"MsgFrom,omitempty"` + SenderNickName string `protobuf:"bytes,7,opt,name=SenderNickName" json:"SenderNickName,omitempty"` + SenderFaceURL string `protobuf:"bytes,8,opt,name=SenderFaceURL" json:"SenderFaceURL,omitempty"` + ContentType int32 `protobuf:"varint,9,opt,name=ContentType" json:"ContentType,omitempty"` + SessionType int32 `protobuf:"varint,10,opt,name=SessionType" json:"SessionType,omitempty"` + OperationID string `protobuf:"bytes,11,opt,name=OperationID" json:"OperationID,omitempty"` + MsgID string `protobuf:"bytes,12,opt,name=MsgID" json:"MsgID,omitempty"` + OfflineInfo string `protobuf:"bytes,13,opt,name=OfflineInfo" json:"OfflineInfo,omitempty"` + Options string `protobuf:"bytes,14,opt,name=Options" json:"Options,omitempty"` + PlatformID int32 `protobuf:"varint,15,opt,name=PlatformID" json:"PlatformID,omitempty"` + ClientMsgID string `protobuf:"bytes,16,opt,name=ClientMsgID" json:"ClientMsgID,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *MsgSvrToPushSvrChatMsg) Reset() { *m = MsgSvrToPushSvrChatMsg{} } +func (m *MsgSvrToPushSvrChatMsg) String() string { return proto.CompactTextString(m) } +func (*MsgSvrToPushSvrChatMsg) ProtoMessage() {} +func (*MsgSvrToPushSvrChatMsg) Descriptor() ([]byte, []int) { + return fileDescriptor_chat_1c5fb32d3659e154, []int{1} } - -func (x *MsgSvrToPushSvrChatMsg) Reset() { - *x = MsgSvrToPushSvrChatMsg{} - if protoimpl.UnsafeEnabled { - mi := &file_chat_chat_proto_msgTypes[1] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } +func (m *MsgSvrToPushSvrChatMsg) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_MsgSvrToPushSvrChatMsg.Unmarshal(m, b) } - -func (x *MsgSvrToPushSvrChatMsg) String() string { - return protoimpl.X.MessageStringOf(x) +func (m *MsgSvrToPushSvrChatMsg) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_MsgSvrToPushSvrChatMsg.Marshal(b, m, deterministic) } - -func (*MsgSvrToPushSvrChatMsg) ProtoMessage() {} - -func (x *MsgSvrToPushSvrChatMsg) ProtoReflect() protoreflect.Message { - mi := &file_chat_chat_proto_msgTypes[1] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) +func (dst *MsgSvrToPushSvrChatMsg) XXX_Merge(src proto.Message) { + xxx_messageInfo_MsgSvrToPushSvrChatMsg.Merge(dst, src) } - -// Deprecated: Use MsgSvrToPushSvrChatMsg.ProtoReflect.Descriptor instead. -func (*MsgSvrToPushSvrChatMsg) Descriptor() ([]byte, []int) { - return file_chat_chat_proto_rawDescGZIP(), []int{1} +func (m *MsgSvrToPushSvrChatMsg) XXX_Size() int { + return xxx_messageInfo_MsgSvrToPushSvrChatMsg.Size(m) +} +func (m *MsgSvrToPushSvrChatMsg) XXX_DiscardUnknown() { + xxx_messageInfo_MsgSvrToPushSvrChatMsg.DiscardUnknown(m) } -func (x *MsgSvrToPushSvrChatMsg) GetSendID() string { - if x != nil { - return x.SendID +var xxx_messageInfo_MsgSvrToPushSvrChatMsg proto.InternalMessageInfo + +func (m *MsgSvrToPushSvrChatMsg) GetSendID() string { + if m != nil { + return m.SendID } return "" } -func (x *MsgSvrToPushSvrChatMsg) GetRecvID() string { - if x != nil { - return x.RecvID +func (m *MsgSvrToPushSvrChatMsg) GetRecvID() string { + if m != nil { + return m.RecvID } return "" } -func (x *MsgSvrToPushSvrChatMsg) GetContent() string { - if x != nil { - return x.Content +func (m *MsgSvrToPushSvrChatMsg) GetContent() string { + if m != nil { + return m.Content } return "" } -func (x *MsgSvrToPushSvrChatMsg) GetRecvSeq() int64 { - if x != nil { - return x.RecvSeq +func (m *MsgSvrToPushSvrChatMsg) GetRecvSeq() int64 { + if m != nil { + return m.RecvSeq } return 0 } -func (x *MsgSvrToPushSvrChatMsg) GetSendTime() int64 { - if x != nil { - return x.SendTime +func (m *MsgSvrToPushSvrChatMsg) GetSendTime() int64 { + if m != nil { + return m.SendTime } return 0 } -func (x *MsgSvrToPushSvrChatMsg) GetMsgFrom() int32 { - if x != nil { - return x.MsgFrom +func (m *MsgSvrToPushSvrChatMsg) GetMsgFrom() int32 { + if m != nil { + return m.MsgFrom } return 0 } -func (x *MsgSvrToPushSvrChatMsg) GetSenderNickName() string { - if x != nil { - return x.SenderNickName +func (m *MsgSvrToPushSvrChatMsg) GetSenderNickName() string { + if m != nil { + return m.SenderNickName } return "" } -func (x *MsgSvrToPushSvrChatMsg) GetSenderFaceURL() string { - if x != nil { - return x.SenderFaceURL +func (m *MsgSvrToPushSvrChatMsg) GetSenderFaceURL() string { + if m != nil { + return m.SenderFaceURL } return "" } -func (x *MsgSvrToPushSvrChatMsg) GetContentType() int32 { - if x != nil { - return x.ContentType +func (m *MsgSvrToPushSvrChatMsg) GetContentType() int32 { + if m != nil { + return m.ContentType } return 0 } -func (x *MsgSvrToPushSvrChatMsg) GetSessionType() int32 { - if x != nil { - return x.SessionType +func (m *MsgSvrToPushSvrChatMsg) GetSessionType() int32 { + if m != nil { + return m.SessionType } return 0 } -func (x *MsgSvrToPushSvrChatMsg) GetOperationID() string { - if x != nil { - return x.OperationID +func (m *MsgSvrToPushSvrChatMsg) GetOperationID() string { + if m != nil { + return m.OperationID } return "" } -func (x *MsgSvrToPushSvrChatMsg) GetMsgID() string { - if x != nil { - return x.MsgID +func (m *MsgSvrToPushSvrChatMsg) GetMsgID() string { + if m != nil { + return m.MsgID } return "" } -func (x *MsgSvrToPushSvrChatMsg) GetOfflineInfo() string { - if x != nil { - return x.OfflineInfo +func (m *MsgSvrToPushSvrChatMsg) GetOfflineInfo() string { + if m != nil { + return m.OfflineInfo } return "" } -func (x *MsgSvrToPushSvrChatMsg) GetOptions() string { - if x != nil { - return x.Options +func (m *MsgSvrToPushSvrChatMsg) GetOptions() string { + if m != nil { + return m.Options } return "" } -func (x *MsgSvrToPushSvrChatMsg) GetPlatformID() int32 { - if x != nil { - return x.PlatformID +func (m *MsgSvrToPushSvrChatMsg) GetPlatformID() int32 { + if m != nil { + return m.PlatformID } return 0 } -func (x *MsgSvrToPushSvrChatMsg) GetClientMsgID() string { - if x != nil { - return x.ClientMsgID +func (m *MsgSvrToPushSvrChatMsg) GetClientMsgID() string { + if m != nil { + return m.ClientMsgID } return "" } type PullMessageReq struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - UserID string `protobuf:"bytes,1,opt,name=UserID,proto3" json:"UserID,omitempty"` - SeqBegin int64 `protobuf:"varint,2,opt,name=SeqBegin,proto3" json:"SeqBegin,omitempty"` - SeqEnd int64 `protobuf:"varint,3,opt,name=SeqEnd,proto3" json:"SeqEnd,omitempty"` - OperationID string `protobuf:"bytes,4,opt,name=OperationID,proto3" json:"OperationID,omitempty"` + UserID string `protobuf:"bytes,1,opt,name=UserID" json:"UserID,omitempty"` + SeqBegin int64 `protobuf:"varint,2,opt,name=SeqBegin" json:"SeqBegin,omitempty"` + SeqEnd int64 `protobuf:"varint,3,opt,name=SeqEnd" json:"SeqEnd,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 *PullMessageReq) Reset() { *m = PullMessageReq{} } +func (m *PullMessageReq) String() string { return proto.CompactTextString(m) } +func (*PullMessageReq) ProtoMessage() {} +func (*PullMessageReq) Descriptor() ([]byte, []int) { + return fileDescriptor_chat_1c5fb32d3659e154, []int{2} } - -func (x *PullMessageReq) Reset() { - *x = PullMessageReq{} - if protoimpl.UnsafeEnabled { - mi := &file_chat_chat_proto_msgTypes[2] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } +func (m *PullMessageReq) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_PullMessageReq.Unmarshal(m, b) } - -func (x *PullMessageReq) String() string { - return protoimpl.X.MessageStringOf(x) +func (m *PullMessageReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_PullMessageReq.Marshal(b, m, deterministic) } - -func (*PullMessageReq) ProtoMessage() {} - -func (x *PullMessageReq) ProtoReflect() protoreflect.Message { - mi := &file_chat_chat_proto_msgTypes[2] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) +func (dst *PullMessageReq) XXX_Merge(src proto.Message) { + xxx_messageInfo_PullMessageReq.Merge(dst, src) } - -// Deprecated: Use PullMessageReq.ProtoReflect.Descriptor instead. -func (*PullMessageReq) Descriptor() ([]byte, []int) { - return file_chat_chat_proto_rawDescGZIP(), []int{2} +func (m *PullMessageReq) XXX_Size() int { + return xxx_messageInfo_PullMessageReq.Size(m) +} +func (m *PullMessageReq) XXX_DiscardUnknown() { + xxx_messageInfo_PullMessageReq.DiscardUnknown(m) } -func (x *PullMessageReq) GetUserID() string { - if x != nil { - return x.UserID +var xxx_messageInfo_PullMessageReq proto.InternalMessageInfo + +func (m *PullMessageReq) GetUserID() string { + if m != nil { + return m.UserID } return "" } -func (x *PullMessageReq) GetSeqBegin() int64 { - if x != nil { - return x.SeqBegin +func (m *PullMessageReq) GetSeqBegin() int64 { + if m != nil { + return m.SeqBegin } return 0 } -func (x *PullMessageReq) GetSeqEnd() int64 { - if x != nil { - return x.SeqEnd +func (m *PullMessageReq) GetSeqEnd() int64 { + if m != nil { + return m.SeqEnd } return 0 } -func (x *PullMessageReq) GetOperationID() string { - if x != nil { - return x.OperationID +func (m *PullMessageReq) GetOperationID() string { + if m != nil { + return m.OperationID } return "" } type PullMessageResp struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - ErrCode int32 `protobuf:"varint,1,opt,name=ErrCode,proto3" json:"ErrCode,omitempty"` - ErrMsg string `protobuf:"bytes,2,opt,name=ErrMsg,proto3" json:"ErrMsg,omitempty"` - MaxSeq int64 `protobuf:"varint,3,opt,name=MaxSeq,proto3" json:"MaxSeq,omitempty"` - MinSeq int64 `protobuf:"varint,4,opt,name=MinSeq,proto3" json:"MinSeq,omitempty"` - SingleUserMsg []*GatherFormat `protobuf:"bytes,5,rep,name=SingleUserMsg,proto3" json:"SingleUserMsg,omitempty"` - GroupUserMsg []*GatherFormat `protobuf:"bytes,6,rep,name=GroupUserMsg,proto3" json:"GroupUserMsg,omitempty"` + ErrCode int32 `protobuf:"varint,1,opt,name=ErrCode" json:"ErrCode,omitempty"` + ErrMsg string `protobuf:"bytes,2,opt,name=ErrMsg" json:"ErrMsg,omitempty"` + MaxSeq int64 `protobuf:"varint,3,opt,name=MaxSeq" json:"MaxSeq,omitempty"` + MinSeq int64 `protobuf:"varint,4,opt,name=MinSeq" json:"MinSeq,omitempty"` + SingleUserMsg []*GatherFormat `protobuf:"bytes,5,rep,name=SingleUserMsg" json:"SingleUserMsg,omitempty"` + GroupUserMsg []*GatherFormat `protobuf:"bytes,6,rep,name=GroupUserMsg" json:"GroupUserMsg,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *PullMessageResp) Reset() { *m = PullMessageResp{} } +func (m *PullMessageResp) String() string { return proto.CompactTextString(m) } +func (*PullMessageResp) ProtoMessage() {} +func (*PullMessageResp) Descriptor() ([]byte, []int) { + return fileDescriptor_chat_1c5fb32d3659e154, []int{3} } - -func (x *PullMessageResp) Reset() { - *x = PullMessageResp{} - if protoimpl.UnsafeEnabled { - mi := &file_chat_chat_proto_msgTypes[3] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } +func (m *PullMessageResp) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_PullMessageResp.Unmarshal(m, b) } - -func (x *PullMessageResp) String() string { - return protoimpl.X.MessageStringOf(x) +func (m *PullMessageResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_PullMessageResp.Marshal(b, m, deterministic) } - -func (*PullMessageResp) ProtoMessage() {} - -func (x *PullMessageResp) ProtoReflect() protoreflect.Message { - mi := &file_chat_chat_proto_msgTypes[3] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) +func (dst *PullMessageResp) XXX_Merge(src proto.Message) { + xxx_messageInfo_PullMessageResp.Merge(dst, src) } - -// Deprecated: Use PullMessageResp.ProtoReflect.Descriptor instead. -func (*PullMessageResp) Descriptor() ([]byte, []int) { - return file_chat_chat_proto_rawDescGZIP(), []int{3} +func (m *PullMessageResp) XXX_Size() int { + return xxx_messageInfo_PullMessageResp.Size(m) +} +func (m *PullMessageResp) XXX_DiscardUnknown() { + xxx_messageInfo_PullMessageResp.DiscardUnknown(m) } -func (x *PullMessageResp) GetErrCode() int32 { - if x != nil { - return x.ErrCode +var xxx_messageInfo_PullMessageResp proto.InternalMessageInfo + +func (m *PullMessageResp) GetErrCode() int32 { + if m != nil { + return m.ErrCode } return 0 } -func (x *PullMessageResp) GetErrMsg() string { - if x != nil { - return x.ErrMsg +func (m *PullMessageResp) GetErrMsg() string { + if m != nil { + return m.ErrMsg } return "" } -func (x *PullMessageResp) GetMaxSeq() int64 { - if x != nil { - return x.MaxSeq +func (m *PullMessageResp) GetMaxSeq() int64 { + if m != nil { + return m.MaxSeq } return 0 } -func (x *PullMessageResp) GetMinSeq() int64 { - if x != nil { - return x.MinSeq +func (m *PullMessageResp) GetMinSeq() int64 { + if m != nil { + return m.MinSeq } return 0 } -func (x *PullMessageResp) GetSingleUserMsg() []*GatherFormat { - if x != nil { - return x.SingleUserMsg +func (m *PullMessageResp) GetSingleUserMsg() []*GatherFormat { + if m != nil { + return m.SingleUserMsg } return nil } -func (x *PullMessageResp) GetGroupUserMsg() []*GatherFormat { - if x != nil { - return x.GroupUserMsg +func (m *PullMessageResp) GetGroupUserMsg() []*GatherFormat { + if m != nil { + return m.GroupUserMsg } return nil } type PullMessageBySeqListReq struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - UserID string `protobuf:"bytes,1,opt,name=UserID,proto3" json:"UserID,omitempty"` - OperationID string `protobuf:"bytes,2,opt,name=OperationID,proto3" json:"OperationID,omitempty"` - SeqList []int64 `protobuf:"varint,3,rep,packed,name=seqList,proto3" json:"seqList,omitempty"` + UserID string `protobuf:"bytes,1,opt,name=UserID" json:"UserID,omitempty"` + OperationID string `protobuf:"bytes,2,opt,name=OperationID" json:"OperationID,omitempty"` + SeqList []int64 `protobuf:"varint,3,rep,packed,name=seqList" json:"seqList,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (x *PullMessageBySeqListReq) Reset() { - *x = PullMessageBySeqListReq{} - if protoimpl.UnsafeEnabled { - mi := &file_chat_chat_proto_msgTypes[4] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } +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_chat_1c5fb32d3659e154, []int{4} } - -func (x *PullMessageBySeqListReq) String() string { - return protoimpl.X.MessageStringOf(x) +func (m *PullMessageBySeqListReq) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_PullMessageBySeqListReq.Unmarshal(m, b) } - -func (*PullMessageBySeqListReq) ProtoMessage() {} - -func (x *PullMessageBySeqListReq) ProtoReflect() protoreflect.Message { - mi := &file_chat_chat_proto_msgTypes[4] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) +func (m *PullMessageBySeqListReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_PullMessageBySeqListReq.Marshal(b, m, deterministic) } - -// Deprecated: Use PullMessageBySeqListReq.ProtoReflect.Descriptor instead. -func (*PullMessageBySeqListReq) Descriptor() ([]byte, []int) { - return file_chat_chat_proto_rawDescGZIP(), []int{4} +func (dst *PullMessageBySeqListReq) XXX_Merge(src proto.Message) { + xxx_messageInfo_PullMessageBySeqListReq.Merge(dst, src) +} +func (m *PullMessageBySeqListReq) XXX_Size() int { + return xxx_messageInfo_PullMessageBySeqListReq.Size(m) +} +func (m *PullMessageBySeqListReq) XXX_DiscardUnknown() { + xxx_messageInfo_PullMessageBySeqListReq.DiscardUnknown(m) } -func (x *PullMessageBySeqListReq) GetUserID() string { - if x != nil { - return x.UserID +var xxx_messageInfo_PullMessageBySeqListReq proto.InternalMessageInfo + +func (m *PullMessageBySeqListReq) GetUserID() string { + if m != nil { + return m.UserID } return "" } -func (x *PullMessageBySeqListReq) GetOperationID() string { - if x != nil { - return x.OperationID +func (m *PullMessageBySeqListReq) GetOperationID() string { + if m != nil { + return m.OperationID } return "" } -func (x *PullMessageBySeqListReq) GetSeqList() []int64 { - if x != nil { - return x.SeqList +func (m *PullMessageBySeqListReq) GetSeqList() []int64 { + if m != nil { + return m.SeqList } return nil } type GetNewSeqReq struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - UserID string `protobuf:"bytes,1,opt,name=UserID,proto3" json:"UserID,omitempty"` - OperationID string `protobuf:"bytes,2,opt,name=OperationID,proto3" json:"OperationID,omitempty"` + 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 (x *GetNewSeqReq) Reset() { - *x = GetNewSeqReq{} - if protoimpl.UnsafeEnabled { - mi := &file_chat_chat_proto_msgTypes[5] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } +func (m *GetNewSeqReq) Reset() { *m = GetNewSeqReq{} } +func (m *GetNewSeqReq) String() string { return proto.CompactTextString(m) } +func (*GetNewSeqReq) ProtoMessage() {} +func (*GetNewSeqReq) Descriptor() ([]byte, []int) { + return fileDescriptor_chat_1c5fb32d3659e154, []int{5} } - -func (x *GetNewSeqReq) String() string { - return protoimpl.X.MessageStringOf(x) +func (m *GetNewSeqReq) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GetNewSeqReq.Unmarshal(m, b) } - -func (*GetNewSeqReq) ProtoMessage() {} - -func (x *GetNewSeqReq) ProtoReflect() protoreflect.Message { - mi := &file_chat_chat_proto_msgTypes[5] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) +func (m *GetNewSeqReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GetNewSeqReq.Marshal(b, m, deterministic) } - -// Deprecated: Use GetNewSeqReq.ProtoReflect.Descriptor instead. -func (*GetNewSeqReq) Descriptor() ([]byte, []int) { - return file_chat_chat_proto_rawDescGZIP(), []int{5} +func (dst *GetNewSeqReq) XXX_Merge(src proto.Message) { + xxx_messageInfo_GetNewSeqReq.Merge(dst, src) +} +func (m *GetNewSeqReq) XXX_Size() int { + return xxx_messageInfo_GetNewSeqReq.Size(m) +} +func (m *GetNewSeqReq) XXX_DiscardUnknown() { + xxx_messageInfo_GetNewSeqReq.DiscardUnknown(m) } -func (x *GetNewSeqReq) GetUserID() string { - if x != nil { - return x.UserID +var xxx_messageInfo_GetNewSeqReq proto.InternalMessageInfo + +func (m *GetNewSeqReq) GetUserID() string { + if m != nil { + return m.UserID } return "" } -func (x *GetNewSeqReq) GetOperationID() string { - if x != nil { - return x.OperationID +func (m *GetNewSeqReq) GetOperationID() string { + if m != nil { + return m.OperationID } return "" } type GetNewSeqResp struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - ErrCode int32 `protobuf:"varint,1,opt,name=ErrCode,proto3" json:"ErrCode,omitempty"` - ErrMsg string `protobuf:"bytes,2,opt,name=ErrMsg,proto3" json:"ErrMsg,omitempty"` - Seq int64 `protobuf:"varint,3,opt,name=Seq,proto3" json:"Seq,omitempty"` + ErrCode int32 `protobuf:"varint,1,opt,name=ErrCode" json:"ErrCode,omitempty"` + ErrMsg string `protobuf:"bytes,2,opt,name=ErrMsg" json:"ErrMsg,omitempty"` + Seq int64 `protobuf:"varint,3,opt,name=Seq" json:"Seq,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (x *GetNewSeqResp) Reset() { - *x = GetNewSeqResp{} - if protoimpl.UnsafeEnabled { - mi := &file_chat_chat_proto_msgTypes[6] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } +func (m *GetNewSeqResp) Reset() { *m = GetNewSeqResp{} } +func (m *GetNewSeqResp) String() string { return proto.CompactTextString(m) } +func (*GetNewSeqResp) ProtoMessage() {} +func (*GetNewSeqResp) Descriptor() ([]byte, []int) { + return fileDescriptor_chat_1c5fb32d3659e154, []int{6} } - -func (x *GetNewSeqResp) String() string { - return protoimpl.X.MessageStringOf(x) +func (m *GetNewSeqResp) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GetNewSeqResp.Unmarshal(m, b) } - -func (*GetNewSeqResp) ProtoMessage() {} - -func (x *GetNewSeqResp) ProtoReflect() protoreflect.Message { - mi := &file_chat_chat_proto_msgTypes[6] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) +func (m *GetNewSeqResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GetNewSeqResp.Marshal(b, m, deterministic) } - -// Deprecated: Use GetNewSeqResp.ProtoReflect.Descriptor instead. -func (*GetNewSeqResp) Descriptor() ([]byte, []int) { - return file_chat_chat_proto_rawDescGZIP(), []int{6} +func (dst *GetNewSeqResp) XXX_Merge(src proto.Message) { + xxx_messageInfo_GetNewSeqResp.Merge(dst, src) +} +func (m *GetNewSeqResp) XXX_Size() int { + return xxx_messageInfo_GetNewSeqResp.Size(m) +} +func (m *GetNewSeqResp) XXX_DiscardUnknown() { + xxx_messageInfo_GetNewSeqResp.DiscardUnknown(m) } -func (x *GetNewSeqResp) GetErrCode() int32 { - if x != nil { - return x.ErrCode +var xxx_messageInfo_GetNewSeqResp proto.InternalMessageInfo + +func (m *GetNewSeqResp) GetErrCode() int32 { + if m != nil { + return m.ErrCode } return 0 } -func (x *GetNewSeqResp) GetErrMsg() string { - if x != nil { - return x.ErrMsg +func (m *GetNewSeqResp) GetErrMsg() string { + if m != nil { + return m.ErrMsg } return "" } -func (x *GetNewSeqResp) GetSeq() int64 { - if x != nil { - return x.Seq +func (m *GetNewSeqResp) GetSeq() int64 { + if m != nil { + return m.Seq } return 0 } type GatherFormat struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - // @inject_tag: json:"id" - ID string `protobuf:"bytes,1,opt,name=ID,proto3" json:"id"` + ID string `protobuf:"bytes,1,opt,name=ID" json:"id"` // @inject_tag: json:"list" - List []*MsgFormat `protobuf:"bytes,2,rep,name=List,proto3" json:"list"` //detail msg + List []*MsgFormat `protobuf:"bytes,2,rep,name=List" json:"list"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (x *GatherFormat) Reset() { - *x = GatherFormat{} - if protoimpl.UnsafeEnabled { - mi := &file_chat_chat_proto_msgTypes[7] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } +func (m *GatherFormat) Reset() { *m = GatherFormat{} } +func (m *GatherFormat) String() string { return proto.CompactTextString(m) } +func (*GatherFormat) ProtoMessage() {} +func (*GatherFormat) Descriptor() ([]byte, []int) { + return fileDescriptor_chat_1c5fb32d3659e154, []int{7} } - -func (x *GatherFormat) String() string { - return protoimpl.X.MessageStringOf(x) +func (m *GatherFormat) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GatherFormat.Unmarshal(m, b) } - -func (*GatherFormat) ProtoMessage() {} - -func (x *GatherFormat) ProtoReflect() protoreflect.Message { - mi := &file_chat_chat_proto_msgTypes[7] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) +func (m *GatherFormat) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GatherFormat.Marshal(b, m, deterministic) } - -// Deprecated: Use GatherFormat.ProtoReflect.Descriptor instead. -func (*GatherFormat) Descriptor() ([]byte, []int) { - return file_chat_chat_proto_rawDescGZIP(), []int{7} +func (dst *GatherFormat) XXX_Merge(src proto.Message) { + xxx_messageInfo_GatherFormat.Merge(dst, src) +} +func (m *GatherFormat) XXX_Size() int { + return xxx_messageInfo_GatherFormat.Size(m) +} +func (m *GatherFormat) XXX_DiscardUnknown() { + xxx_messageInfo_GatherFormat.DiscardUnknown(m) } -func (x *GatherFormat) GetID() string { - if x != nil { - return x.ID +var xxx_messageInfo_GatherFormat proto.InternalMessageInfo + +func (m *GatherFormat) GetID() string { + if m != nil { + return m.ID } return "" } -func (x *GatherFormat) GetList() []*MsgFormat { - if x != nil { - return x.List +func (m *GatherFormat) GetList() []*MsgFormat { + if m != nil { + return m.List } return nil } type MsgFormat struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - // @inject_tag: json:"sendID" - SendID string `protobuf:"bytes,1,opt,name=SendID,proto3" json:"sendID"` + SendID string `protobuf:"bytes,1,opt,name=SendID" json:"sendID"` // @inject_tag: json:"recvID" - RecvID string `protobuf:"bytes,2,opt,name=RecvID,proto3" json:"recvID"` + RecvID string `protobuf:"bytes,2,opt,name=RecvID" json:"recvID"` // @inject_tag: json:"msgFrom" - MsgFrom int32 `protobuf:"varint,3,opt,name=MsgFrom,proto3" json:"msgFrom"` + MsgFrom int32 `protobuf:"varint,3,opt,name=MsgFrom" json:"msgFrom"` // @inject_tag: json:"contentType" - ContentType int32 `protobuf:"varint,4,opt,name=ContentType,proto3" json:"contentType"` + ContentType int32 `protobuf:"varint,4,opt,name=ContentType" json:"contentType"` // @inject_tag: json:"serverMsgID" - ServerMsgID string `protobuf:"bytes,5,opt,name=ServerMsgID,proto3" json:"serverMsgID"` + ServerMsgID string `protobuf:"bytes,5,opt,name=ServerMsgID" json:"serverMsgID"` // @inject_tag: json:"content" - Content string `protobuf:"bytes,6,opt,name=Content,proto3" json:"content"` + Content string `protobuf:"bytes,6,opt,name=Content" json:"content"` // @inject_tag: json:"seq" - Seq int64 `protobuf:"varint,7,opt,name=Seq,proto3" json:"seq"` + Seq int64 `protobuf:"varint,7,opt,name=Seq" json:"seq"` // @inject_tag: json:"sendTime" - SendTime int64 `protobuf:"varint,8,opt,name=SendTime,proto3" json:"sendTime"` + SendTime int64 `protobuf:"varint,8,opt,name=SendTime" json:"sendTime"` // @inject_tag: json:"senderPlatformID" - SenderPlatformID int32 `protobuf:"varint,9,opt,name=SenderPlatformID,proto3" json:"senderPlatformID"` + SenderPlatformID int32 `protobuf:"varint,9,opt,name=SenderPlatformID" json:"senderPlatformID"` // @inject_tag: json:"senderNickName" - SenderNickName string `protobuf:"bytes,10,opt,name=SenderNickName,proto3" json:"senderNickName"` + SenderNickName string `protobuf:"bytes,10,opt,name=SenderNickName" json:"senderNickName"` // @inject_tag: json:"senderFaceUrl" - SenderFaceURL string `protobuf:"bytes,11,opt,name=SenderFaceURL,proto3" json:"senderFaceUrl"` + SenderFaceURL string `protobuf:"bytes,11,opt,name=SenderFaceURL" json:"senderFaceUrl"` // @inject_tag: json:"clientMsgID" - ClientMsgID string `protobuf:"bytes,12,opt,name=ClientMsgID,proto3" json:"clientMsgID"` + ClientMsgID string `protobuf:"bytes,12,opt,name=ClientMsgID" json:"clientMsgID"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (x *MsgFormat) Reset() { - *x = MsgFormat{} - if protoimpl.UnsafeEnabled { - mi := &file_chat_chat_proto_msgTypes[8] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } +func (m *MsgFormat) Reset() { *m = MsgFormat{} } +func (m *MsgFormat) String() string { return proto.CompactTextString(m) } +func (*MsgFormat) ProtoMessage() {} +func (*MsgFormat) Descriptor() ([]byte, []int) { + return fileDescriptor_chat_1c5fb32d3659e154, []int{8} } - -func (x *MsgFormat) String() string { - return protoimpl.X.MessageStringOf(x) +func (m *MsgFormat) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_MsgFormat.Unmarshal(m, b) } - -func (*MsgFormat) ProtoMessage() {} - -func (x *MsgFormat) ProtoReflect() protoreflect.Message { - mi := &file_chat_chat_proto_msgTypes[8] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) +func (m *MsgFormat) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_MsgFormat.Marshal(b, m, deterministic) } - -// Deprecated: Use MsgFormat.ProtoReflect.Descriptor instead. -func (*MsgFormat) Descriptor() ([]byte, []int) { - return file_chat_chat_proto_rawDescGZIP(), []int{8} +func (dst *MsgFormat) XXX_Merge(src proto.Message) { + xxx_messageInfo_MsgFormat.Merge(dst, src) +} +func (m *MsgFormat) XXX_Size() int { + return xxx_messageInfo_MsgFormat.Size(m) +} +func (m *MsgFormat) XXX_DiscardUnknown() { + xxx_messageInfo_MsgFormat.DiscardUnknown(m) } -func (x *MsgFormat) GetSendID() string { - if x != nil { - return x.SendID +var xxx_messageInfo_MsgFormat proto.InternalMessageInfo + +func (m *MsgFormat) GetSendID() string { + if m != nil { + return m.SendID } return "" } -func (x *MsgFormat) GetRecvID() string { - if x != nil { - return x.RecvID +func (m *MsgFormat) GetRecvID() string { + if m != nil { + return m.RecvID } return "" } -func (x *MsgFormat) GetMsgFrom() int32 { - if x != nil { - return x.MsgFrom +func (m *MsgFormat) GetMsgFrom() int32 { + if m != nil { + return m.MsgFrom } return 0 } -func (x *MsgFormat) GetContentType() int32 { - if x != nil { - return x.ContentType +func (m *MsgFormat) GetContentType() int32 { + if m != nil { + return m.ContentType } return 0 } -func (x *MsgFormat) GetServerMsgID() string { - if x != nil { - return x.ServerMsgID +func (m *MsgFormat) GetServerMsgID() string { + if m != nil { + return m.ServerMsgID } return "" } -func (x *MsgFormat) GetContent() string { - if x != nil { - return x.Content +func (m *MsgFormat) GetContent() string { + if m != nil { + return m.Content } return "" } -func (x *MsgFormat) GetSeq() int64 { - if x != nil { - return x.Seq +func (m *MsgFormat) GetSeq() int64 { + if m != nil { + return m.Seq } return 0 } -func (x *MsgFormat) GetSendTime() int64 { - if x != nil { - return x.SendTime +func (m *MsgFormat) GetSendTime() int64 { + if m != nil { + return m.SendTime } return 0 } -func (x *MsgFormat) GetSenderPlatformID() int32 { - if x != nil { - return x.SenderPlatformID +func (m *MsgFormat) GetSenderPlatformID() int32 { + if m != nil { + return m.SenderPlatformID } return 0 } -func (x *MsgFormat) GetSenderNickName() string { - if x != nil { - return x.SenderNickName +func (m *MsgFormat) GetSenderNickName() string { + if m != nil { + return m.SenderNickName } return "" } -func (x *MsgFormat) GetSenderFaceURL() string { - if x != nil { - return x.SenderFaceURL +func (m *MsgFormat) GetSenderFaceURL() string { + if m != nil { + return m.SenderFaceURL } return "" } -func (x *MsgFormat) GetClientMsgID() string { - if x != nil { - return x.ClientMsgID +func (m *MsgFormat) GetClientMsgID() string { + if m != nil { + return m.ClientMsgID } return "" } type UserSendMsgReq struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - ReqIdentifier int32 `protobuf:"varint,1,opt,name=ReqIdentifier,proto3" json:"ReqIdentifier,omitempty"` - Token string `protobuf:"bytes,2,opt,name=Token,proto3" json:"Token,omitempty"` - SendID string `protobuf:"bytes,3,opt,name=SendID,proto3" json:"SendID,omitempty"` - OperationID string `protobuf:"bytes,4,opt,name=OperationID,proto3" json:"OperationID,omitempty"` - SenderNickName string `protobuf:"bytes,5,opt,name=SenderNickName,proto3" json:"SenderNickName,omitempty"` - SenderFaceURL string `protobuf:"bytes,6,opt,name=SenderFaceURL,proto3" json:"SenderFaceURL,omitempty"` - PlatformID int32 `protobuf:"varint,7,opt,name=PlatformID,proto3" json:"PlatformID,omitempty"` - SessionType int32 `protobuf:"varint,8,opt,name=SessionType,proto3" json:"SessionType,omitempty"` - MsgFrom int32 `protobuf:"varint,9,opt,name=MsgFrom,proto3" json:"MsgFrom,omitempty"` - ContentType int32 `protobuf:"varint,10,opt,name=ContentType,proto3" json:"ContentType,omitempty"` - RecvID string `protobuf:"bytes,11,opt,name=RecvID,proto3" json:"RecvID,omitempty"` - ForceList []string `protobuf:"bytes,12,rep,name=ForceList,proto3" json:"ForceList,omitempty"` - Content string `protobuf:"bytes,13,opt,name=Content,proto3" json:"Content,omitempty"` - Options string `protobuf:"bytes,14,opt,name=Options,proto3" json:"Options,omitempty"` - ClientMsgID string `protobuf:"bytes,15,opt,name=ClientMsgID,proto3" json:"ClientMsgID,omitempty"` - OffLineInfo string `protobuf:"bytes,16,opt,name=OffLineInfo,proto3" json:"OffLineInfo,omitempty"` - Ex string `protobuf:"bytes,17,opt,name=Ex,proto3" json:"Ex,omitempty"` - SendTime int64 `protobuf:"varint,18,opt,name=sendTime,proto3" json:"sendTime,omitempty"` -} - -func (x *UserSendMsgReq) Reset() { - *x = UserSendMsgReq{} - if protoimpl.UnsafeEnabled { - mi := &file_chat_chat_proto_msgTypes[9] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *UserSendMsgReq) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*UserSendMsgReq) ProtoMessage() {} - -func (x *UserSendMsgReq) ProtoReflect() protoreflect.Message { - mi := &file_chat_chat_proto_msgTypes[9] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use UserSendMsgReq.ProtoReflect.Descriptor instead. + ReqIdentifier int32 `protobuf:"varint,1,opt,name=ReqIdentifier" json:"ReqIdentifier,omitempty"` + Token string `protobuf:"bytes,2,opt,name=Token" json:"Token,omitempty"` + SendID string `protobuf:"bytes,3,opt,name=SendID" json:"SendID,omitempty"` + OperationID string `protobuf:"bytes,4,opt,name=OperationID" json:"OperationID,omitempty"` + SenderNickName string `protobuf:"bytes,5,opt,name=SenderNickName" json:"SenderNickName,omitempty"` + SenderFaceURL string `protobuf:"bytes,6,opt,name=SenderFaceURL" json:"SenderFaceURL,omitempty"` + PlatformID int32 `protobuf:"varint,7,opt,name=PlatformID" json:"PlatformID,omitempty"` + SessionType int32 `protobuf:"varint,8,opt,name=SessionType" json:"SessionType,omitempty"` + MsgFrom int32 `protobuf:"varint,9,opt,name=MsgFrom" json:"MsgFrom,omitempty"` + ContentType int32 `protobuf:"varint,10,opt,name=ContentType" json:"ContentType,omitempty"` + RecvID string `protobuf:"bytes,11,opt,name=RecvID" json:"RecvID,omitempty"` + ForceList []string `protobuf:"bytes,12,rep,name=ForceList" json:"ForceList,omitempty"` + Content string `protobuf:"bytes,13,opt,name=Content" json:"Content,omitempty"` + Options string `protobuf:"bytes,14,opt,name=Options" json:"Options,omitempty"` + ClientMsgID string `protobuf:"bytes,15,opt,name=ClientMsgID" json:"ClientMsgID,omitempty"` + OffLineInfo string `protobuf:"bytes,16,opt,name=OffLineInfo" json:"OffLineInfo,omitempty"` + Ex string `protobuf:"bytes,17,opt,name=Ex" json:"Ex,omitempty"` + SendTime int64 `protobuf:"varint,18,opt,name=sendTime" json:"sendTime,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *UserSendMsgReq) Reset() { *m = UserSendMsgReq{} } +func (m *UserSendMsgReq) String() string { return proto.CompactTextString(m) } +func (*UserSendMsgReq) ProtoMessage() {} func (*UserSendMsgReq) Descriptor() ([]byte, []int) { - return file_chat_chat_proto_rawDescGZIP(), []int{9} + return fileDescriptor_chat_1c5fb32d3659e154, []int{9} +} +func (m *UserSendMsgReq) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_UserSendMsgReq.Unmarshal(m, b) +} +func (m *UserSendMsgReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_UserSendMsgReq.Marshal(b, m, deterministic) +} +func (dst *UserSendMsgReq) XXX_Merge(src proto.Message) { + xxx_messageInfo_UserSendMsgReq.Merge(dst, src) +} +func (m *UserSendMsgReq) XXX_Size() int { + return xxx_messageInfo_UserSendMsgReq.Size(m) +} +func (m *UserSendMsgReq) XXX_DiscardUnknown() { + xxx_messageInfo_UserSendMsgReq.DiscardUnknown(m) } -func (x *UserSendMsgReq) GetReqIdentifier() int32 { - if x != nil { - return x.ReqIdentifier +var xxx_messageInfo_UserSendMsgReq proto.InternalMessageInfo + +func (m *UserSendMsgReq) GetReqIdentifier() int32 { + if m != nil { + return m.ReqIdentifier } return 0 } -func (x *UserSendMsgReq) GetToken() string { - if x != nil { - return x.Token +func (m *UserSendMsgReq) GetToken() string { + if m != nil { + return m.Token } return "" } -func (x *UserSendMsgReq) GetSendID() string { - if x != nil { - return x.SendID +func (m *UserSendMsgReq) GetSendID() string { + if m != nil { + return m.SendID } return "" } -func (x *UserSendMsgReq) GetOperationID() string { - if x != nil { - return x.OperationID +func (m *UserSendMsgReq) GetOperationID() string { + if m != nil { + return m.OperationID } return "" } -func (x *UserSendMsgReq) GetSenderNickName() string { - if x != nil { - return x.SenderNickName +func (m *UserSendMsgReq) GetSenderNickName() string { + if m != nil { + return m.SenderNickName } return "" } -func (x *UserSendMsgReq) GetSenderFaceURL() string { - if x != nil { - return x.SenderFaceURL +func (m *UserSendMsgReq) GetSenderFaceURL() string { + if m != nil { + return m.SenderFaceURL } return "" } -func (x *UserSendMsgReq) GetPlatformID() int32 { - if x != nil { - return x.PlatformID +func (m *UserSendMsgReq) GetPlatformID() int32 { + if m != nil { + return m.PlatformID } return 0 } -func (x *UserSendMsgReq) GetSessionType() int32 { - if x != nil { - return x.SessionType +func (m *UserSendMsgReq) GetSessionType() int32 { + if m != nil { + return m.SessionType } return 0 } -func (x *UserSendMsgReq) GetMsgFrom() int32 { - if x != nil { - return x.MsgFrom +func (m *UserSendMsgReq) GetMsgFrom() int32 { + if m != nil { + return m.MsgFrom } return 0 } -func (x *UserSendMsgReq) GetContentType() int32 { - if x != nil { - return x.ContentType +func (m *UserSendMsgReq) GetContentType() int32 { + if m != nil { + return m.ContentType } return 0 } -func (x *UserSendMsgReq) GetRecvID() string { - if x != nil { - return x.RecvID +func (m *UserSendMsgReq) GetRecvID() string { + if m != nil { + return m.RecvID } return "" } -func (x *UserSendMsgReq) GetForceList() []string { - if x != nil { - return x.ForceList +func (m *UserSendMsgReq) GetForceList() []string { + if m != nil { + return m.ForceList } return nil } -func (x *UserSendMsgReq) GetContent() string { - if x != nil { - return x.Content +func (m *UserSendMsgReq) GetContent() string { + if m != nil { + return m.Content } return "" } -func (x *UserSendMsgReq) GetOptions() string { - if x != nil { - return x.Options +func (m *UserSendMsgReq) GetOptions() string { + if m != nil { + return m.Options } return "" } -func (x *UserSendMsgReq) GetClientMsgID() string { - if x != nil { - return x.ClientMsgID +func (m *UserSendMsgReq) GetClientMsgID() string { + if m != nil { + return m.ClientMsgID } return "" } -func (x *UserSendMsgReq) GetOffLineInfo() string { - if x != nil { - return x.OffLineInfo +func (m *UserSendMsgReq) GetOffLineInfo() string { + if m != nil { + return m.OffLineInfo } return "" } -func (x *UserSendMsgReq) GetEx() string { - if x != nil { - return x.Ex +func (m *UserSendMsgReq) GetEx() string { + if m != nil { + return m.Ex } return "" } -func (x *UserSendMsgReq) GetSendTime() int64 { - if x != nil { - return x.SendTime +func (m *UserSendMsgReq) GetSendTime() int64 { + if m != nil { + return m.SendTime } return 0 } type UserSendMsgResp struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - ErrCode int32 `protobuf:"varint,1,opt,name=ErrCode,proto3" json:"ErrCode,omitempty"` - ErrMsg string `protobuf:"bytes,2,opt,name=ErrMsg,proto3" json:"ErrMsg,omitempty"` - ReqIdentifier int32 `protobuf:"varint,3,opt,name=ReqIdentifier,proto3" json:"ReqIdentifier,omitempty"` - ServerMsgID string `protobuf:"bytes,4,opt,name=ServerMsgID,proto3" json:"ServerMsgID,omitempty"` - ClientMsgID string `protobuf:"bytes,5,opt,name=ClientMsgID,proto3" json:"ClientMsgID,omitempty"` - SendTime int64 `protobuf:"varint,6,opt,name=sendTime,proto3" json:"sendTime,omitempty"` + ErrCode int32 `protobuf:"varint,1,opt,name=ErrCode" json:"ErrCode,omitempty"` + ErrMsg string `protobuf:"bytes,2,opt,name=ErrMsg" json:"ErrMsg,omitempty"` + ReqIdentifier int32 `protobuf:"varint,3,opt,name=ReqIdentifier" json:"ReqIdentifier,omitempty"` + ServerMsgID string `protobuf:"bytes,4,opt,name=ServerMsgID" json:"ServerMsgID,omitempty"` + ClientMsgID string `protobuf:"bytes,5,opt,name=ClientMsgID" json:"ClientMsgID,omitempty"` + SendTime int64 `protobuf:"varint,6,opt,name=sendTime" json:"sendTime,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +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_chat_1c5fb32d3659e154, []int{10} } - -func (x *UserSendMsgResp) Reset() { - *x = UserSendMsgResp{} - if protoimpl.UnsafeEnabled { - mi := &file_chat_chat_proto_msgTypes[10] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } +func (m *UserSendMsgResp) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_UserSendMsgResp.Unmarshal(m, b) } - -func (x *UserSendMsgResp) String() string { - return protoimpl.X.MessageStringOf(x) +func (m *UserSendMsgResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_UserSendMsgResp.Marshal(b, m, deterministic) } - -func (*UserSendMsgResp) ProtoMessage() {} - -func (x *UserSendMsgResp) ProtoReflect() protoreflect.Message { - mi := &file_chat_chat_proto_msgTypes[10] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) +func (dst *UserSendMsgResp) XXX_Merge(src proto.Message) { + xxx_messageInfo_UserSendMsgResp.Merge(dst, src) } - -// Deprecated: Use UserSendMsgResp.ProtoReflect.Descriptor instead. -func (*UserSendMsgResp) Descriptor() ([]byte, []int) { - return file_chat_chat_proto_rawDescGZIP(), []int{10} +func (m *UserSendMsgResp) XXX_Size() int { + return xxx_messageInfo_UserSendMsgResp.Size(m) +} +func (m *UserSendMsgResp) XXX_DiscardUnknown() { + xxx_messageInfo_UserSendMsgResp.DiscardUnknown(m) } -func (x *UserSendMsgResp) GetErrCode() int32 { - if x != nil { - return x.ErrCode +var xxx_messageInfo_UserSendMsgResp proto.InternalMessageInfo + +func (m *UserSendMsgResp) GetErrCode() int32 { + if m != nil { + return m.ErrCode } return 0 } -func (x *UserSendMsgResp) GetErrMsg() string { - if x != nil { - return x.ErrMsg +func (m *UserSendMsgResp) GetErrMsg() string { + if m != nil { + return m.ErrMsg } return "" } -func (x *UserSendMsgResp) GetReqIdentifier() int32 { - if x != nil { - return x.ReqIdentifier +func (m *UserSendMsgResp) GetReqIdentifier() int32 { + if m != nil { + return m.ReqIdentifier } return 0 } -func (x *UserSendMsgResp) GetServerMsgID() string { - if x != nil { - return x.ServerMsgID +func (m *UserSendMsgResp) GetServerMsgID() string { + if m != nil { + return m.ServerMsgID } return "" } -func (x *UserSendMsgResp) GetClientMsgID() string { - if x != nil { - return x.ClientMsgID +func (m *UserSendMsgResp) GetClientMsgID() string { + if m != nil { + return m.ClientMsgID } return "" } -func (x *UserSendMsgResp) GetSendTime() int64 { - if x != nil { - return x.SendTime +func (m *UserSendMsgResp) GetSendTime() int64 { + if m != nil { + return m.SendTime } return 0 } -var File_chat_chat_proto protoreflect.FileDescriptor - -var file_chat_chat_proto_rawDesc = []byte{ - 0x0a, 0x0f, 0x63, 0x68, 0x61, 0x74, 0x2f, 0x63, 0x68, 0x61, 0x74, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x12, 0x06, 0x70, 0x62, 0x43, 0x68, 0x61, 0x74, 0x22, 0x8f, 0x04, 0x0a, 0x11, 0x57, 0x53, - 0x54, 0x6f, 0x4d, 0x73, 0x67, 0x53, 0x76, 0x72, 0x43, 0x68, 0x61, 0x74, 0x4d, 0x73, 0x67, 0x12, - 0x16, 0x0a, 0x06, 0x53, 0x65, 0x6e, 0x64, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x06, 0x53, 0x65, 0x6e, 0x64, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x52, 0x65, 0x63, 0x76, 0x49, - 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x52, 0x65, 0x63, 0x76, 0x49, 0x44, 0x12, - 0x18, 0x0a, 0x07, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x07, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x53, 0x65, 0x6e, - 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x53, 0x65, 0x6e, - 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x4d, 0x73, 0x67, 0x46, 0x72, 0x6f, 0x6d, - 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x4d, 0x73, 0x67, 0x46, 0x72, 0x6f, 0x6d, 0x12, - 0x26, 0x0a, 0x0e, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x4e, 0x69, 0x63, 0x6b, 0x4e, 0x61, 0x6d, - 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x4e, - 0x69, 0x63, 0x6b, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x53, 0x65, 0x6e, 0x64, 0x65, - 0x72, 0x46, 0x61, 0x63, 0x65, 0x55, 0x52, 0x4c, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, - 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x46, 0x61, 0x63, 0x65, 0x55, 0x52, 0x4c, 0x12, 0x20, 0x0a, - 0x0b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x18, 0x08, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x0b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, - 0x20, 0x0a, 0x0b, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x18, 0x09, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, - 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, - 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x49, 0x44, 0x12, 0x14, 0x0a, 0x05, 0x4d, 0x73, 0x67, 0x49, 0x44, 0x18, 0x0b, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x05, 0x4d, 0x73, 0x67, 0x49, 0x44, 0x12, 0x14, 0x0a, 0x05, 0x54, 0x6f, 0x6b, - 0x65, 0x6e, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, - 0x20, 0x0a, 0x0b, 0x4f, 0x66, 0x66, 0x6c, 0x69, 0x6e, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x0d, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x4f, 0x66, 0x66, 0x6c, 0x69, 0x6e, 0x65, 0x49, 0x6e, 0x66, - 0x6f, 0x12, 0x18, 0x0a, 0x07, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x0e, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x07, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x50, - 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x49, 0x44, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x0a, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x46, - 0x6f, 0x72, 0x63, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x10, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, - 0x46, 0x6f, 0x72, 0x63, 0x65, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x43, 0x6c, 0x69, - 0x65, 0x6e, 0x74, 0x4d, 0x73, 0x67, 0x49, 0x44, 0x18, 0x11, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, - 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x73, 0x67, 0x49, 0x44, 0x22, 0xfa, 0x03, 0x0a, 0x16, - 0x4d, 0x73, 0x67, 0x53, 0x76, 0x72, 0x54, 0x6f, 0x50, 0x75, 0x73, 0x68, 0x53, 0x76, 0x72, 0x43, - 0x68, 0x61, 0x74, 0x4d, 0x73, 0x67, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x65, 0x6e, 0x64, 0x49, 0x44, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x53, 0x65, 0x6e, 0x64, 0x49, 0x44, 0x12, 0x16, - 0x0a, 0x06, 0x52, 0x65, 0x63, 0x76, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, - 0x52, 0x65, 0x63, 0x76, 0x49, 0x44, 0x12, 0x18, 0x0a, 0x07, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, - 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, - 0x12, 0x18, 0x0a, 0x07, 0x52, 0x65, 0x63, 0x76, 0x53, 0x65, 0x71, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x03, 0x52, 0x07, 0x52, 0x65, 0x63, 0x76, 0x53, 0x65, 0x71, 0x12, 0x1a, 0x0a, 0x08, 0x53, 0x65, - 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x53, 0x65, - 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x4d, 0x73, 0x67, 0x46, 0x72, 0x6f, - 0x6d, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x4d, 0x73, 0x67, 0x46, 0x72, 0x6f, 0x6d, - 0x12, 0x26, 0x0a, 0x0e, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x4e, 0x69, 0x63, 0x6b, 0x4e, 0x61, - 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, - 0x4e, 0x69, 0x63, 0x6b, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x53, 0x65, 0x6e, 0x64, - 0x65, 0x72, 0x46, 0x61, 0x63, 0x65, 0x55, 0x52, 0x4c, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0d, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x46, 0x61, 0x63, 0x65, 0x55, 0x52, 0x4c, 0x12, 0x20, - 0x0a, 0x0b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x18, 0x09, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x0b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, - 0x12, 0x20, 0x0a, 0x0b, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x18, - 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x54, 0x79, - 0x70, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, - 0x44, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x49, 0x44, 0x12, 0x14, 0x0a, 0x05, 0x4d, 0x73, 0x67, 0x49, 0x44, 0x18, 0x0c, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x05, 0x4d, 0x73, 0x67, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x66, - 0x66, 0x6c, 0x69, 0x6e, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0b, 0x4f, 0x66, 0x66, 0x6c, 0x69, 0x6e, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x18, 0x0a, 0x07, - 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x4f, - 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, - 0x72, 0x6d, 0x49, 0x44, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x50, 0x6c, 0x61, 0x74, - 0x66, 0x6f, 0x72, 0x6d, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, - 0x4d, 0x73, 0x67, 0x49, 0x44, 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x43, 0x6c, 0x69, - 0x65, 0x6e, 0x74, 0x4d, 0x73, 0x67, 0x49, 0x44, 0x22, 0x7e, 0x0a, 0x0e, 0x50, 0x75, 0x6c, 0x6c, - 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x12, 0x16, 0x0a, 0x06, 0x55, 0x73, - 0x65, 0x72, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x55, 0x73, 0x65, 0x72, - 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x53, 0x65, 0x71, 0x42, 0x65, 0x67, 0x69, 0x6e, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x53, 0x65, 0x71, 0x42, 0x65, 0x67, 0x69, 0x6e, 0x12, 0x16, - 0x0a, 0x06, 0x53, 0x65, 0x71, 0x45, 0x6e, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, - 0x53, 0x65, 0x71, 0x45, 0x6e, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x4f, 0x70, 0x65, - 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x22, 0xe9, 0x01, 0x0a, 0x0f, 0x50, 0x75, 0x6c, - 0x6c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x18, 0x0a, 0x07, - 0x45, 0x72, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x45, - 0x72, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x45, 0x72, 0x72, 0x4d, 0x73, 0x67, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x45, 0x72, 0x72, 0x4d, 0x73, 0x67, 0x12, 0x16, - 0x0a, 0x06, 0x4d, 0x61, 0x78, 0x53, 0x65, 0x71, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, - 0x4d, 0x61, 0x78, 0x53, 0x65, 0x71, 0x12, 0x16, 0x0a, 0x06, 0x4d, 0x69, 0x6e, 0x53, 0x65, 0x71, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x06, 0x4d, 0x69, 0x6e, 0x53, 0x65, 0x71, 0x12, 0x3a, - 0x0a, 0x0d, 0x53, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x18, - 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x70, 0x62, 0x43, 0x68, 0x61, 0x74, 0x2e, 0x47, - 0x61, 0x74, 0x68, 0x65, 0x72, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x52, 0x0d, 0x53, 0x69, 0x6e, - 0x67, 0x6c, 0x65, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x12, 0x38, 0x0a, 0x0c, 0x47, 0x72, - 0x6f, 0x75, 0x70, 0x55, 0x73, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x14, 0x2e, 0x70, 0x62, 0x43, 0x68, 0x61, 0x74, 0x2e, 0x47, 0x61, 0x74, 0x68, 0x65, 0x72, - 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x52, 0x0c, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x55, 0x73, 0x65, - 0x72, 0x4d, 0x73, 0x67, 0x22, 0x6d, 0x0a, 0x17, 0x50, 0x75, 0x6c, 0x6c, 0x4d, 0x65, 0x73, 0x73, - 0x61, 0x67, 0x65, 0x42, 0x79, 0x53, 0x65, 0x71, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x12, - 0x16, 0x0a, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x4f, 0x70, - 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x65, 0x71, - 0x4c, 0x69, 0x73, 0x74, 0x18, 0x03, 0x20, 0x03, 0x28, 0x03, 0x52, 0x07, 0x73, 0x65, 0x71, 0x4c, - 0x69, 0x73, 0x74, 0x22, 0x48, 0x0a, 0x0c, 0x47, 0x65, 0x74, 0x4e, 0x65, 0x77, 0x53, 0x65, 0x71, - 0x52, 0x65, 0x71, 0x12, 0x16, 0x0a, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x4f, - 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x22, 0x53, 0x0a, - 0x0d, 0x47, 0x65, 0x74, 0x4e, 0x65, 0x77, 0x53, 0x65, 0x71, 0x52, 0x65, 0x73, 0x70, 0x12, 0x18, - 0x0a, 0x07, 0x45, 0x72, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x07, 0x45, 0x72, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x45, 0x72, 0x72, 0x4d, - 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x45, 0x72, 0x72, 0x4d, 0x73, 0x67, - 0x12, 0x10, 0x0a, 0x03, 0x53, 0x65, 0x71, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x53, - 0x65, 0x71, 0x22, 0x45, 0x0a, 0x0c, 0x47, 0x61, 0x74, 0x68, 0x65, 0x72, 0x46, 0x6f, 0x72, 0x6d, - 0x61, 0x74, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, - 0x49, 0x44, 0x12, 0x25, 0x0a, 0x04, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x11, 0x2e, 0x70, 0x62, 0x43, 0x68, 0x61, 0x74, 0x2e, 0x4d, 0x73, 0x67, 0x46, 0x6f, 0x72, - 0x6d, 0x61, 0x74, 0x52, 0x04, 0x4c, 0x69, 0x73, 0x74, 0x22, 0xfd, 0x02, 0x0a, 0x09, 0x4d, 0x73, - 0x67, 0x46, 0x6f, 0x72, 0x6d, 0x61, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x65, 0x6e, 0x64, 0x49, - 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x53, 0x65, 0x6e, 0x64, 0x49, 0x44, 0x12, - 0x16, 0x0a, 0x06, 0x52, 0x65, 0x63, 0x76, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x06, 0x52, 0x65, 0x63, 0x76, 0x49, 0x44, 0x12, 0x18, 0x0a, 0x07, 0x4d, 0x73, 0x67, 0x46, 0x72, - 0x6f, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x4d, 0x73, 0x67, 0x46, 0x72, 0x6f, - 0x6d, 0x12, 0x20, 0x0a, 0x0b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x54, - 0x79, 0x70, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4d, 0x73, 0x67, - 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, - 0x4d, 0x73, 0x67, 0x49, 0x44, 0x12, 0x18, 0x0a, 0x07, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, - 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, - 0x10, 0x0a, 0x03, 0x53, 0x65, 0x71, 0x18, 0x07, 0x20, 0x01, 0x28, 0x03, 0x52, 0x03, 0x53, 0x65, - 0x71, 0x12, 0x1a, 0x0a, 0x08, 0x53, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x08, 0x20, - 0x01, 0x28, 0x03, 0x52, 0x08, 0x53, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x2a, 0x0a, - 0x10, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x49, - 0x44, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x10, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x50, - 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x49, 0x44, 0x12, 0x26, 0x0a, 0x0e, 0x53, 0x65, 0x6e, - 0x64, 0x65, 0x72, 0x4e, 0x69, 0x63, 0x6b, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0e, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x4e, 0x69, 0x63, 0x6b, 0x4e, 0x61, 0x6d, - 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x46, 0x61, 0x63, 0x65, 0x55, - 0x52, 0x4c, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, - 0x46, 0x61, 0x63, 0x65, 0x55, 0x52, 0x4c, 0x12, 0x20, 0x0a, 0x0b, 0x43, 0x6c, 0x69, 0x65, 0x6e, - 0x74, 0x4d, 0x73, 0x67, 0x49, 0x44, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x43, 0x6c, - 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x73, 0x67, 0x49, 0x44, 0x22, 0xac, 0x04, 0x0a, 0x0e, 0x55, 0x73, - 0x65, 0x72, 0x53, 0x65, 0x6e, 0x64, 0x4d, 0x73, 0x67, 0x52, 0x65, 0x71, 0x12, 0x24, 0x0a, 0x0d, - 0x52, 0x65, 0x71, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x0d, 0x52, 0x65, 0x71, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, - 0x65, 0x72, 0x12, 0x14, 0x0a, 0x05, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x05, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x65, 0x6e, 0x64, - 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x53, 0x65, 0x6e, 0x64, 0x49, 0x44, - 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x49, 0x44, 0x12, 0x26, 0x0a, 0x0e, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x4e, 0x69, 0x63, 0x6b, - 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x53, 0x65, 0x6e, 0x64, - 0x65, 0x72, 0x4e, 0x69, 0x63, 0x6b, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x53, 0x65, - 0x6e, 0x64, 0x65, 0x72, 0x46, 0x61, 0x63, 0x65, 0x55, 0x52, 0x4c, 0x18, 0x06, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0d, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x46, 0x61, 0x63, 0x65, 0x55, 0x52, 0x4c, - 0x12, 0x1e, 0x0a, 0x0a, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x49, 0x44, 0x18, 0x07, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x49, 0x44, - 0x12, 0x20, 0x0a, 0x0b, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x18, - 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x54, 0x79, - 0x70, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x4d, 0x73, 0x67, 0x46, 0x72, 0x6f, 0x6d, 0x18, 0x09, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x07, 0x4d, 0x73, 0x67, 0x46, 0x72, 0x6f, 0x6d, 0x12, 0x20, 0x0a, 0x0b, - 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x0b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x16, - 0x0a, 0x06, 0x52, 0x65, 0x63, 0x76, 0x49, 0x44, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, - 0x52, 0x65, 0x63, 0x76, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x46, 0x6f, 0x72, 0x63, 0x65, 0x4c, - 0x69, 0x73, 0x74, 0x18, 0x0c, 0x20, 0x03, 0x28, 0x09, 0x52, 0x09, 0x46, 0x6f, 0x72, 0x63, 0x65, - 0x4c, 0x69, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, - 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x18, - 0x0a, 0x07, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x07, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x43, 0x6c, 0x69, 0x65, - 0x6e, 0x74, 0x4d, 0x73, 0x67, 0x49, 0x44, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x43, - 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x73, 0x67, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x66, - 0x66, 0x4c, 0x69, 0x6e, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0b, 0x4f, 0x66, 0x66, 0x4c, 0x69, 0x6e, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x0e, 0x0a, 0x02, - 0x45, 0x78, 0x18, 0x11, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x45, 0x78, 0x12, 0x1a, 0x0a, 0x08, - 0x73, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x12, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, - 0x73, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x22, 0xc9, 0x01, 0x0a, 0x0f, 0x55, 0x73, 0x65, - 0x72, 0x53, 0x65, 0x6e, 0x64, 0x4d, 0x73, 0x67, 0x52, 0x65, 0x73, 0x70, 0x12, 0x18, 0x0a, 0x07, - 0x45, 0x72, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x45, - 0x72, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x45, 0x72, 0x72, 0x4d, 0x73, 0x67, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x45, 0x72, 0x72, 0x4d, 0x73, 0x67, 0x12, 0x24, - 0x0a, 0x0d, 0x52, 0x65, 0x71, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, 0x66, 0x69, 0x65, 0x72, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x52, 0x65, 0x71, 0x49, 0x64, 0x65, 0x6e, 0x74, 0x69, - 0x66, 0x69, 0x65, 0x72, 0x12, 0x20, 0x0a, 0x0b, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4d, 0x73, - 0x67, 0x49, 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x53, 0x65, 0x72, 0x76, 0x65, - 0x72, 0x4d, 0x73, 0x67, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, - 0x4d, 0x73, 0x67, 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x43, 0x6c, 0x69, - 0x65, 0x6e, 0x74, 0x4d, 0x73, 0x67, 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, 0x6e, 0x64, - 0x54, 0x69, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x73, 0x65, 0x6e, 0x64, - 0x54, 0x69, 0x6d, 0x65, 0x32, 0x92, 0x02, 0x0a, 0x04, 0x43, 0x68, 0x61, 0x74, 0x12, 0x38, 0x0a, - 0x09, 0x47, 0x65, 0x74, 0x4e, 0x65, 0x77, 0x53, 0x65, 0x71, 0x12, 0x14, 0x2e, 0x70, 0x62, 0x43, - 0x68, 0x61, 0x74, 0x2e, 0x47, 0x65, 0x74, 0x4e, 0x65, 0x77, 0x53, 0x65, 0x71, 0x52, 0x65, 0x71, - 0x1a, 0x15, 0x2e, 0x70, 0x62, 0x43, 0x68, 0x61, 0x74, 0x2e, 0x47, 0x65, 0x74, 0x4e, 0x65, 0x77, - 0x53, 0x65, 0x71, 0x52, 0x65, 0x73, 0x70, 0x12, 0x3e, 0x0a, 0x0b, 0x50, 0x75, 0x6c, 0x6c, 0x4d, - 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x16, 0x2e, 0x70, 0x62, 0x43, 0x68, 0x61, 0x74, 0x2e, - 0x50, 0x75, 0x6c, 0x6c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x17, - 0x2e, 0x70, 0x62, 0x43, 0x68, 0x61, 0x74, 0x2e, 0x50, 0x75, 0x6c, 0x6c, 0x4d, 0x65, 0x73, 0x73, - 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x50, 0x0a, 0x14, 0x50, 0x75, 0x6c, 0x6c, 0x4d, - 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x42, 0x79, 0x53, 0x65, 0x71, 0x4c, 0x69, 0x73, 0x74, 0x12, - 0x1f, 0x2e, 0x70, 0x62, 0x43, 0x68, 0x61, 0x74, 0x2e, 0x50, 0x75, 0x6c, 0x6c, 0x4d, 0x65, 0x73, - 0x73, 0x61, 0x67, 0x65, 0x42, 0x79, 0x53, 0x65, 0x71, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, - 0x1a, 0x17, 0x2e, 0x70, 0x62, 0x43, 0x68, 0x61, 0x74, 0x2e, 0x50, 0x75, 0x6c, 0x6c, 0x4d, 0x65, - 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x3e, 0x0a, 0x0b, 0x55, 0x73, 0x65, - 0x72, 0x53, 0x65, 0x6e, 0x64, 0x4d, 0x73, 0x67, 0x12, 0x16, 0x2e, 0x70, 0x62, 0x43, 0x68, 0x61, - 0x74, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x53, 0x65, 0x6e, 0x64, 0x4d, 0x73, 0x67, 0x52, 0x65, 0x71, - 0x1a, 0x17, 0x2e, 0x70, 0x62, 0x43, 0x68, 0x61, 0x74, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x53, 0x65, - 0x6e, 0x64, 0x4d, 0x73, 0x67, 0x52, 0x65, 0x73, 0x70, 0x42, 0x0f, 0x5a, 0x0d, 0x2e, 0x2f, 0x63, - 0x68, 0x61, 0x74, 0x3b, 0x70, 0x62, 0x43, 0x68, 0x61, 0x74, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x33, -} - -var ( - file_chat_chat_proto_rawDescOnce sync.Once - file_chat_chat_proto_rawDescData = file_chat_chat_proto_rawDesc -) - -func file_chat_chat_proto_rawDescGZIP() []byte { - file_chat_chat_proto_rawDescOnce.Do(func() { - file_chat_chat_proto_rawDescData = protoimpl.X.CompressGZIP(file_chat_chat_proto_rawDescData) - }) - return file_chat_chat_proto_rawDescData -} - -var file_chat_chat_proto_msgTypes = make([]protoimpl.MessageInfo, 11) -var file_chat_chat_proto_goTypes = []interface{}{ - (*WSToMsgSvrChatMsg)(nil), // 0: pbChat.WSToMsgSvrChatMsg - (*MsgSvrToPushSvrChatMsg)(nil), // 1: pbChat.MsgSvrToPushSvrChatMsg - (*PullMessageReq)(nil), // 2: pbChat.PullMessageReq - (*PullMessageResp)(nil), // 3: pbChat.PullMessageResp - (*PullMessageBySeqListReq)(nil), // 4: pbChat.PullMessageBySeqListReq - (*GetNewSeqReq)(nil), // 5: pbChat.GetNewSeqReq - (*GetNewSeqResp)(nil), // 6: pbChat.GetNewSeqResp - (*GatherFormat)(nil), // 7: pbChat.GatherFormat - (*MsgFormat)(nil), // 8: pbChat.MsgFormat - (*UserSendMsgReq)(nil), // 9: pbChat.UserSendMsgReq - (*UserSendMsgResp)(nil), // 10: pbChat.UserSendMsgResp -} -var file_chat_chat_proto_depIdxs = []int32{ - 7, // 0: pbChat.PullMessageResp.SingleUserMsg:type_name -> pbChat.GatherFormat - 7, // 1: pbChat.PullMessageResp.GroupUserMsg:type_name -> pbChat.GatherFormat - 8, // 2: pbChat.GatherFormat.List:type_name -> pbChat.MsgFormat - 5, // 3: pbChat.Chat.GetNewSeq:input_type -> pbChat.GetNewSeqReq - 2, // 4: pbChat.Chat.PullMessage:input_type -> pbChat.PullMessageReq - 4, // 5: pbChat.Chat.PullMessageBySeqList:input_type -> pbChat.PullMessageBySeqListReq - 9, // 6: pbChat.Chat.UserSendMsg:input_type -> pbChat.UserSendMsgReq - 6, // 7: pbChat.Chat.GetNewSeq:output_type -> pbChat.GetNewSeqResp - 3, // 8: pbChat.Chat.PullMessage:output_type -> pbChat.PullMessageResp - 3, // 9: pbChat.Chat.PullMessageBySeqList:output_type -> pbChat.PullMessageResp - 10, // 10: pbChat.Chat.UserSendMsg:output_type -> pbChat.UserSendMsgResp - 7, // [7:11] is the sub-list for method output_type - 3, // [3:7] is the sub-list for method input_type - 3, // [3:3] is the sub-list for extension type_name - 3, // [3:3] is the sub-list for extension extendee - 0, // [0:3] is the sub-list for field type_name -} - -func init() { file_chat_chat_proto_init() } -func file_chat_chat_proto_init() { - if File_chat_chat_proto != nil { - return - } - if !protoimpl.UnsafeEnabled { - file_chat_chat_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*WSToMsgSvrChatMsg); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_chat_chat_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*MsgSvrToPushSvrChatMsg); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_chat_chat_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PullMessageReq); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_chat_chat_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PullMessageResp); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_chat_chat_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PullMessageBySeqListReq); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_chat_chat_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetNewSeqReq); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_chat_chat_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetNewSeqResp); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_chat_chat_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GatherFormat); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_chat_chat_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*MsgFormat); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_chat_chat_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*UserSendMsgReq); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_chat_chat_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*UserSendMsgResp); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - } - type x struct{} - out := protoimpl.TypeBuilder{ - File: protoimpl.DescBuilder{ - GoPackagePath: reflect.TypeOf(x{}).PkgPath(), - RawDescriptor: file_chat_chat_proto_rawDesc, - NumEnums: 0, - NumMessages: 11, - NumExtensions: 0, - NumServices: 1, - }, - GoTypes: file_chat_chat_proto_goTypes, - DependencyIndexes: file_chat_chat_proto_depIdxs, - MessageInfos: file_chat_chat_proto_msgTypes, - }.Build() - File_chat_chat_proto = out.File - file_chat_chat_proto_rawDesc = nil - file_chat_chat_proto_goTypes = nil - file_chat_chat_proto_depIdxs = nil +func init() { + proto.RegisterType((*WSToMsgSvrChatMsg)(nil), "pbChat.WSToMsgSvrChatMsg") + proto.RegisterType((*MsgSvrToPushSvrChatMsg)(nil), "pbChat.MsgSvrToPushSvrChatMsg") + proto.RegisterType((*PullMessageReq)(nil), "pbChat.PullMessageReq") + proto.RegisterType((*PullMessageResp)(nil), "pbChat.PullMessageResp") + proto.RegisterType((*PullMessageBySeqListReq)(nil), "pbChat.PullMessageBySeqListReq") + proto.RegisterType((*GetNewSeqReq)(nil), "pbChat.GetNewSeqReq") + proto.RegisterType((*GetNewSeqResp)(nil), "pbChat.GetNewSeqResp") + proto.RegisterType((*GatherFormat)(nil), "pbChat.GatherFormat") + proto.RegisterType((*MsgFormat)(nil), "pbChat.MsgFormat") + proto.RegisterType((*UserSendMsgReq)(nil), "pbChat.UserSendMsgReq") + proto.RegisterType((*UserSendMsgResp)(nil), "pbChat.UserSendMsgResp") +} + +func init() { proto.RegisterFile("chat/chat.proto", fileDescriptor_chat_1c5fb32d3659e154) } + +var fileDescriptor_chat_1c5fb32d3659e154 = []byte{ + // 978 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xb4, 0x57, 0xdd, 0x6a, 0xe3, 0x46, + 0x14, 0xc6, 0x92, 0x2d, 0x47, 0xc7, 0xbf, 0x19, 0xd2, 0xec, 0x10, 0x4a, 0x6b, 0xc4, 0xb6, 0x98, + 0x5e, 0xa4, 0xb0, 0xbd, 0x59, 0x5a, 0xd8, 0x8b, 0xc4, 0x4e, 0x2a, 0x88, 0xb3, 0x41, 0xf2, 0x52, + 0xe8, 0x9d, 0xd6, 0x19, 0x2b, 0x62, 0x6d, 0x49, 0xd6, 0x28, 0x69, 0xf6, 0xa6, 0xaf, 0x50, 0xe8, + 0x73, 0xf4, 0x45, 0xfa, 0x28, 0x7d, 0x85, 0x42, 0xa1, 0xcc, 0x8c, 0x64, 0xcd, 0x48, 0x72, 0x12, + 0xb2, 0xec, 0xcd, 0xb2, 0xdf, 0xa7, 0x33, 0x3f, 0xe7, 0x9c, 0x6f, 0xbe, 0x13, 0xc3, 0x60, 0x71, + 0xe3, 0xa5, 0xdf, 0xb3, 0x7f, 0x8e, 0xe3, 0x24, 0x4a, 0x23, 0x64, 0xc4, 0xef, 0x4f, 0x6f, 0xbc, + 0xd4, 0xfa, 0xa3, 0x09, 0xfb, 0xbf, 0xb8, 0xf3, 0x68, 0x46, 0x7d, 0xf7, 0x2e, 0x61, 0xd4, 0x8c, + 0xfa, 0xe8, 0x10, 0x0c, 0x97, 0x84, 0xd7, 0xf6, 0x04, 0x37, 0x46, 0x8d, 0xb1, 0xe9, 0x64, 0x88, + 0xf1, 0x0e, 0x59, 0xdc, 0xd9, 0x13, 0xac, 0x09, 0x5e, 0x20, 0x84, 0xa1, 0x7d, 0x1a, 0x85, 0x29, + 0x09, 0x53, 0xac, 0xf3, 0x0f, 0x39, 0x44, 0x47, 0xb0, 0xc7, 0xd6, 0xce, 0x83, 0x35, 0xc1, 0xcd, + 0x51, 0x63, 0xac, 0x3b, 0x5b, 0xcc, 0x56, 0xcd, 0xa8, 0x7f, 0x96, 0x44, 0x6b, 0xdc, 0x1a, 0x35, + 0xc6, 0x2d, 0x27, 0x87, 0xe8, 0x5b, 0xe8, 0xb3, 0x28, 0x92, 0x5c, 0x06, 0x8b, 0x0f, 0x97, 0xde, + 0x9a, 0x60, 0x83, 0x6f, 0x5b, 0x62, 0xd1, 0x4b, 0xe8, 0x09, 0xe6, 0xcc, 0x5b, 0x90, 0x77, 0xce, + 0x05, 0x6e, 0xf3, 0x30, 0x95, 0x44, 0x23, 0xe8, 0x64, 0xd7, 0x99, 0x7f, 0x8c, 0x09, 0xde, 0xe3, + 0x67, 0xc9, 0x14, 0x8b, 0x70, 0x09, 0xa5, 0x41, 0x14, 0xf2, 0x08, 0x53, 0x44, 0x48, 0x14, 0x8b, + 0x78, 0x1b, 0x93, 0xc4, 0x4b, 0x83, 0x28, 0xb4, 0x27, 0x18, 0xf8, 0x39, 0x32, 0x85, 0x0e, 0xa0, + 0x35, 0xa3, 0xbe, 0x3d, 0xc1, 0x1d, 0xfe, 0x4d, 0x00, 0xc6, 0xce, 0xa3, 0x0f, 0x24, 0xc4, 0x5d, + 0xc1, 0x72, 0xc0, 0x77, 0x5b, 0x2e, 0x57, 0x41, 0x48, 0xec, 0x70, 0x19, 0xe1, 0x5e, 0xb6, 0x5b, + 0x41, 0xb1, 0xda, 0xbc, 0x8d, 0xd9, 0xce, 0x14, 0xf7, 0x45, 0x45, 0x33, 0x88, 0xbe, 0x02, 0xb8, + 0x5a, 0x79, 0xe9, 0x32, 0x4a, 0xd6, 0xf6, 0x04, 0x0f, 0xf8, 0x55, 0x25, 0x06, 0x7d, 0x09, 0xe6, + 0x59, 0x94, 0x2c, 0xc8, 0x45, 0x40, 0x53, 0x3c, 0x1c, 0xe9, 0x63, 0xd3, 0x29, 0x08, 0x5e, 0x8b, + 0x55, 0x40, 0xc2, 0x54, 0xdc, 0x75, 0x5f, 0x9c, 0x2c, 0x51, 0xd6, 0xbf, 0x3a, 0x1c, 0x0a, 0x35, + 0xcc, 0xa3, 0xab, 0x5b, 0x7a, 0xf3, 0x59, 0x64, 0x81, 0xa1, 0xcd, 0x62, 0x5c, 0xb2, 0xc9, 0x54, + 0x91, 0x43, 0x45, 0x30, 0xad, 0xdd, 0x82, 0x31, 0x1e, 0x13, 0x4c, 0xfb, 0x69, 0x82, 0xd9, 0x7b, + 0x82, 0x60, 0xcc, 0x47, 0x05, 0x03, 0x8f, 0x0a, 0xa6, 0xf3, 0x80, 0x60, 0xba, 0xb2, 0x60, 0x3e, + 0xa7, 0x34, 0x4a, 0xcd, 0x1f, 0x56, 0x9b, 0xff, 0x3b, 0xf4, 0xaf, 0x6e, 0x57, 0xab, 0x19, 0xa1, + 0xd4, 0xf3, 0x89, 0x43, 0x36, 0xac, 0xb7, 0xef, 0x28, 0x49, 0x8a, 0x9e, 0x0b, 0x24, 0xfa, 0xb4, + 0x39, 0x21, 0x7e, 0x10, 0xf2, 0xae, 0xf3, 0x3e, 0x09, 0x2c, 0x74, 0xb2, 0x99, 0x86, 0xd7, 0xbc, + 0xed, 0xba, 0x93, 0xa1, 0x72, 0x4d, 0x9a, 0x95, 0x9a, 0x58, 0xff, 0x34, 0x60, 0xa0, 0x5c, 0x80, + 0xc6, 0x2c, 0xdf, 0x69, 0x92, 0x9c, 0x46, 0xd7, 0x84, 0x5f, 0xa1, 0xe5, 0xe4, 0x90, 0x9d, 0x33, + 0x4d, 0x92, 0x19, 0xf5, 0x73, 0xdd, 0x09, 0xc4, 0xf8, 0x99, 0x77, 0xcf, 0xc4, 0x95, 0x9d, 0x2f, + 0x10, 0xe7, 0x83, 0xb0, 0x10, 0x5d, 0x86, 0xd0, 0x8f, 0xd0, 0x73, 0x83, 0xd0, 0x5f, 0x11, 0x96, + 0x1b, 0xdb, 0xae, 0x35, 0xd2, 0xc7, 0x9d, 0x57, 0x07, 0xc7, 0xc2, 0x24, 0x8f, 0xcf, 0xbd, 0xf4, + 0x86, 0x24, 0x67, 0x51, 0xb2, 0xf6, 0x52, 0x47, 0x0d, 0x45, 0xaf, 0xa1, 0x7b, 0x9e, 0x44, 0xb7, + 0x71, 0xbe, 0xd4, 0x78, 0x60, 0xa9, 0x12, 0x69, 0xad, 0xe1, 0x85, 0x94, 0xea, 0xc9, 0x47, 0x97, + 0x6c, 0xd8, 0x13, 0x7d, 0xa8, 0xe8, 0xa5, 0x02, 0x6a, 0x55, 0x51, 0x61, 0x68, 0x53, 0xb1, 0x0f, + 0xd6, 0x47, 0x3a, 0x7b, 0x58, 0x19, 0xb4, 0x7e, 0x86, 0xee, 0x39, 0x49, 0x2f, 0xc9, 0x6f, 0x2e, + 0xd9, 0x7c, 0xd2, 0x19, 0x96, 0x0b, 0x3d, 0x69, 0xa7, 0x67, 0x75, 0x68, 0x08, 0x7a, 0xd1, 0x1e, + 0xf6, 0x5f, 0x6b, 0x0a, 0x5d, 0xb9, 0x56, 0xa8, 0x0f, 0xda, 0xf6, 0x6a, 0x9a, 0x3d, 0x41, 0xdf, + 0x40, 0x93, 0x67, 0xa5, 0xf1, 0xfa, 0xee, 0xe7, 0xf5, 0x65, 0x06, 0x20, 0x8a, 0xcb, 0x3f, 0x5b, + 0xff, 0x69, 0x60, 0x6e, 0xb9, 0xe7, 0x18, 0x56, 0x6e, 0x30, 0xba, 0x6a, 0x30, 0x25, 0x4b, 0x68, + 0xee, 0xb0, 0x84, 0xe4, 0x8e, 0xf7, 0xd6, 0x9e, 0x70, 0xef, 0x32, 0x1d, 0x99, 0x92, 0xed, 0xd0, + 0x50, 0xed, 0x30, 0x2b, 0x47, 0x7b, 0x5b, 0x0e, 0xc5, 0x06, 0xf7, 0x4a, 0x36, 0xf8, 0x1d, 0x0c, + 0x85, 0x5f, 0x49, 0x8f, 0x5d, 0x78, 0x54, 0x85, 0xaf, 0x31, 0x46, 0x78, 0x9a, 0x31, 0x76, 0x76, + 0x19, 0xa3, 0x64, 0x20, 0xdd, 0xaa, 0x81, 0xfc, 0xd5, 0x84, 0x3e, 0x13, 0x12, 0x5b, 0x37, 0xa3, + 0x3e, 0x13, 0xda, 0x4b, 0xe8, 0x39, 0x64, 0x63, 0x5f, 0x93, 0x30, 0x0d, 0x96, 0x01, 0x49, 0x32, + 0x8d, 0xa8, 0x64, 0x31, 0x28, 0x35, 0x79, 0x50, 0x16, 0x0d, 0xd4, 0x95, 0x06, 0x3e, 0xea, 0x24, + 0x35, 0x89, 0xb7, 0x9e, 0x96, 0xb8, 0x51, 0x97, 0xb8, 0xea, 0xac, 0xed, 0x3a, 0x67, 0x95, 0xe7, + 0xc1, 0x5e, 0x75, 0x1e, 0x48, 0xd2, 0x32, 0x1f, 0x94, 0x16, 0x54, 0xa5, 0x55, 0xc8, 0xb5, 0xa3, + 0xc8, 0x55, 0x19, 0xf5, 0xdd, 0xf2, 0xa8, 0x97, 0xe4, 0xd6, 0xab, 0x4c, 0xdf, 0x1d, 0x13, 0xa4, + 0xd4, 0xe0, 0x41, 0xa5, 0xc1, 0xd9, 0x7c, 0xba, 0xc8, 0xe7, 0xd3, 0x70, 0x3b, 0x9f, 0x72, 0x8a, + 0xbd, 0xdc, 0xe9, 0x7d, 0xf6, 0x97, 0x85, 0x36, 0xbd, 0x67, 0x52, 0xa6, 0xb9, 0x94, 0x91, 0x90, + 0x72, 0x8e, 0xad, 0xbf, 0x1b, 0x30, 0x50, 0xe4, 0xf2, 0x2c, 0x37, 0xa9, 0x28, 0x4c, 0xaf, 0x53, + 0x58, 0xe9, 0x81, 0x36, 0xab, 0x0f, 0xb4, 0x94, 0x7d, 0xab, 0x9a, 0xbd, 0x9c, 0x8b, 0xa1, 0xe6, + 0xf2, 0xea, 0x4f, 0x0d, 0x9a, 0xcc, 0x93, 0xd0, 0x6b, 0x30, 0xb7, 0xfe, 0x88, 0x8a, 0x49, 0x20, + 0x99, 0xef, 0xd1, 0x17, 0x35, 0x2c, 0x8d, 0xd1, 0x1b, 0xe8, 0x48, 0x23, 0x01, 0x1d, 0xe6, 0x51, + 0xea, 0x4c, 0x3e, 0x7a, 0x51, 0xcb, 0xd3, 0x18, 0x5d, 0xc1, 0x41, 0xdd, 0x48, 0x41, 0x5f, 0xd7, + 0x2c, 0x90, 0x07, 0xce, 0xee, 0x1d, 0xdf, 0x40, 0x47, 0xea, 0x4f, 0x71, 0x23, 0xf5, 0x8d, 0x17, + 0xeb, 0x4b, 0xcd, 0x3c, 0x19, 0xfc, 0xda, 0x3b, 0xe6, 0xbf, 0x3b, 0x7e, 0x12, 0x01, 0xef, 0x0d, + 0xfe, 0xfb, 0xe3, 0x87, 0xff, 0x03, 0x00, 0x00, 0xff, 0xff, 0x2e, 0xc0, 0xa5, 0xf9, 0x92, 0x0c, + 0x00, 0x00, } diff --git a/src/proto/friend/friend.pb.go b/src/proto/friend/friend.pb.go index 34eb02177..d33fec265 100644 --- a/src/proto/friend/friend.pb.go +++ b/src/proto/friend/friend.pb.go @@ -1,2367 +1,1596 @@ // Code generated by protoc-gen-go. DO NOT EDIT. -// versions: -// protoc-gen-go v1.26.0 -// protoc v3.7.1 // source: friend/friend.proto -package friend +package friend // import "friend" -import ( - protoreflect "google.golang.org/protobuf/reflect/protoreflect" - protoimpl "google.golang.org/protobuf/runtime/protoimpl" - reflect "reflect" - sync "sync" -) +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" -const ( - // Verify that this generated code is sufficiently up-to-date. - _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) - // Verify that runtime/protoimpl is sufficiently up-to-date. - _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) -) +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf -type CommonResp struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields +// 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 - ErrorCode int32 `protobuf:"varint,1,opt,name=errorCode,proto3" json:"errorCode,omitempty"` - ErrorMsg string `protobuf:"bytes,2,opt,name=errorMsg,proto3" json:"errorMsg,omitempty"` +type CommonResp struct { + ErrorCode int32 `protobuf:"varint,1,opt,name=errorCode" json:"errorCode,omitempty"` + ErrorMsg string `protobuf:"bytes,2,opt,name=errorMsg" json:"errorMsg,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (x *CommonResp) Reset() { - *x = CommonResp{} - if protoimpl.UnsafeEnabled { - mi := &file_friend_friend_proto_msgTypes[0] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } +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_friend_772c0e76721339e5, []int{0} } - -func (x *CommonResp) String() string { - return protoimpl.X.MessageStringOf(x) +func (m *CommonResp) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_CommonResp.Unmarshal(m, b) } - -func (*CommonResp) ProtoMessage() {} - -func (x *CommonResp) ProtoReflect() protoreflect.Message { - mi := &file_friend_friend_proto_msgTypes[0] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) +func (m *CommonResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_CommonResp.Marshal(b, m, deterministic) } - -// Deprecated: Use CommonResp.ProtoReflect.Descriptor instead. -func (*CommonResp) Descriptor() ([]byte, []int) { - return file_friend_friend_proto_rawDescGZIP(), []int{0} +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) } -func (x *CommonResp) GetErrorCode() int32 { - if x != nil { - return x.ErrorCode +var xxx_messageInfo_CommonResp proto.InternalMessageInfo + +func (m *CommonResp) GetErrorCode() int32 { + if m != nil { + return m.ErrorCode } return 0 } -func (x *CommonResp) GetErrorMsg() string { - if x != nil { - return x.ErrorMsg +func (m *CommonResp) GetErrorMsg() string { + if m != nil { + return m.ErrorMsg } return "" } type GetFriendsInfoReq struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Uid string `protobuf:"bytes,1,opt,name=uid,proto3" json:"uid,omitempty"` - OperationID string `protobuf:"bytes,2,opt,name=OperationID,proto3" json:"OperationID,omitempty"` - Token string `protobuf:"bytes,3,opt,name=Token,proto3" json:"Token,omitempty"` + Uid string `protobuf:"bytes,1,opt,name=uid" json:"uid,omitempty"` + OperationID string `protobuf:"bytes,2,opt,name=OperationID" json:"OperationID,omitempty"` + Token string `protobuf:"bytes,3,opt,name=Token" json:"Token,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (x *GetFriendsInfoReq) Reset() { - *x = GetFriendsInfoReq{} - if protoimpl.UnsafeEnabled { - mi := &file_friend_friend_proto_msgTypes[1] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } +func (m *GetFriendsInfoReq) Reset() { *m = GetFriendsInfoReq{} } +func (m *GetFriendsInfoReq) String() string { return proto.CompactTextString(m) } +func (*GetFriendsInfoReq) ProtoMessage() {} +func (*GetFriendsInfoReq) Descriptor() ([]byte, []int) { + return fileDescriptor_friend_772c0e76721339e5, []int{1} } - -func (x *GetFriendsInfoReq) String() string { - return protoimpl.X.MessageStringOf(x) +func (m *GetFriendsInfoReq) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GetFriendsInfoReq.Unmarshal(m, b) } - -func (*GetFriendsInfoReq) ProtoMessage() {} - -func (x *GetFriendsInfoReq) ProtoReflect() protoreflect.Message { - mi := &file_friend_friend_proto_msgTypes[1] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) +func (m *GetFriendsInfoReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GetFriendsInfoReq.Marshal(b, m, deterministic) } - -// Deprecated: Use GetFriendsInfoReq.ProtoReflect.Descriptor instead. -func (*GetFriendsInfoReq) Descriptor() ([]byte, []int) { - return file_friend_friend_proto_rawDescGZIP(), []int{1} +func (dst *GetFriendsInfoReq) XXX_Merge(src proto.Message) { + xxx_messageInfo_GetFriendsInfoReq.Merge(dst, src) +} +func (m *GetFriendsInfoReq) XXX_Size() int { + return xxx_messageInfo_GetFriendsInfoReq.Size(m) } +func (m *GetFriendsInfoReq) XXX_DiscardUnknown() { + xxx_messageInfo_GetFriendsInfoReq.DiscardUnknown(m) +} + +var xxx_messageInfo_GetFriendsInfoReq proto.InternalMessageInfo -func (x *GetFriendsInfoReq) GetUid() string { - if x != nil { - return x.Uid +func (m *GetFriendsInfoReq) GetUid() string { + if m != nil { + return m.Uid } return "" } -func (x *GetFriendsInfoReq) GetOperationID() string { - if x != nil { - return x.OperationID +func (m *GetFriendsInfoReq) GetOperationID() string { + if m != nil { + return m.OperationID } return "" } -func (x *GetFriendsInfoReq) GetToken() string { - if x != nil { - return x.Token +func (m *GetFriendsInfoReq) GetToken() string { + if m != nil { + return m.Token } return "" } type GetFriendInfoResp struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - ErrorCode int32 `protobuf:"varint,1,opt,name=errorCode,proto3" json:"errorCode,omitempty"` - ErrorMsg string `protobuf:"bytes,2,opt,name=errorMsg,proto3" json:"errorMsg,omitempty"` - Data *GetFriendData `protobuf:"bytes,3,opt,name=Data,proto3" json:"Data,omitempty"` + ErrorCode int32 `protobuf:"varint,1,opt,name=errorCode" json:"errorCode,omitempty"` + ErrorMsg string `protobuf:"bytes,2,opt,name=errorMsg" json:"errorMsg,omitempty"` + Data *GetFriendData `protobuf:"bytes,3,opt,name=Data" json:"Data,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (x *GetFriendInfoResp) Reset() { - *x = GetFriendInfoResp{} - if protoimpl.UnsafeEnabled { - mi := &file_friend_friend_proto_msgTypes[2] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } +func (m *GetFriendInfoResp) Reset() { *m = GetFriendInfoResp{} } +func (m *GetFriendInfoResp) String() string { return proto.CompactTextString(m) } +func (*GetFriendInfoResp) ProtoMessage() {} +func (*GetFriendInfoResp) Descriptor() ([]byte, []int) { + return fileDescriptor_friend_772c0e76721339e5, []int{2} } - -func (x *GetFriendInfoResp) String() string { - return protoimpl.X.MessageStringOf(x) +func (m *GetFriendInfoResp) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GetFriendInfoResp.Unmarshal(m, b) } - -func (*GetFriendInfoResp) ProtoMessage() {} - -func (x *GetFriendInfoResp) ProtoReflect() protoreflect.Message { - mi := &file_friend_friend_proto_msgTypes[2] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) +func (m *GetFriendInfoResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GetFriendInfoResp.Marshal(b, m, deterministic) } - -// Deprecated: Use GetFriendInfoResp.ProtoReflect.Descriptor instead. -func (*GetFriendInfoResp) Descriptor() ([]byte, []int) { - return file_friend_friend_proto_rawDescGZIP(), []int{2} +func (dst *GetFriendInfoResp) XXX_Merge(src proto.Message) { + xxx_messageInfo_GetFriendInfoResp.Merge(dst, src) +} +func (m *GetFriendInfoResp) XXX_Size() int { + return xxx_messageInfo_GetFriendInfoResp.Size(m) +} +func (m *GetFriendInfoResp) XXX_DiscardUnknown() { + xxx_messageInfo_GetFriendInfoResp.DiscardUnknown(m) } -func (x *GetFriendInfoResp) GetErrorCode() int32 { - if x != nil { - return x.ErrorCode +var xxx_messageInfo_GetFriendInfoResp proto.InternalMessageInfo + +func (m *GetFriendInfoResp) GetErrorCode() int32 { + if m != nil { + return m.ErrorCode } return 0 } -func (x *GetFriendInfoResp) GetErrorMsg() string { - if x != nil { - return x.ErrorMsg +func (m *GetFriendInfoResp) GetErrorMsg() string { + if m != nil { + return m.ErrorMsg } return "" } -func (x *GetFriendInfoResp) GetData() *GetFriendData { - if x != nil { - return x.Data +func (m *GetFriendInfoResp) GetData() *GetFriendData { + if m != nil { + return m.Data } return nil } type GetFriendData struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Uid string `protobuf:"bytes,1,opt,name=uid,proto3" json:"uid,omitempty"` - Icon string `protobuf:"bytes,2,opt,name=icon,proto3" json:"icon,omitempty"` - Name string `protobuf:"bytes,3,opt,name=name,proto3" json:"name,omitempty"` - Gender int32 `protobuf:"varint,4,opt,name=gender,proto3" json:"gender,omitempty"` - Mobile string `protobuf:"bytes,5,opt,name=mobile,proto3" json:"mobile,omitempty"` - Birth string `protobuf:"bytes,6,opt,name=birth,proto3" json:"birth,omitempty"` - Email string `protobuf:"bytes,7,opt,name=email,proto3" json:"email,omitempty"` - Ex string `protobuf:"bytes,8,opt,name=ex,proto3" json:"ex,omitempty"` - Comment string `protobuf:"bytes,9,opt,name=comment,proto3" json:"comment,omitempty"` - IsFriend int32 `protobuf:"varint,10,opt,name=isFriend,proto3" json:"isFriend,omitempty"` - IsInBlackList int32 `protobuf:"varint,11,opt,name=isInBlackList,proto3" json:"isInBlackList,omitempty"` + Uid string `protobuf:"bytes,1,opt,name=uid" json:"uid,omitempty"` + Icon string `protobuf:"bytes,2,opt,name=icon" json:"icon,omitempty"` + Name string `protobuf:"bytes,3,opt,name=name" json:"name,omitempty"` + Gender int32 `protobuf:"varint,4,opt,name=gender" json:"gender,omitempty"` + Mobile string `protobuf:"bytes,5,opt,name=mobile" json:"mobile,omitempty"` + Birth string `protobuf:"bytes,6,opt,name=birth" json:"birth,omitempty"` + Email string `protobuf:"bytes,7,opt,name=email" json:"email,omitempty"` + Ex string `protobuf:"bytes,8,opt,name=ex" json:"ex,omitempty"` + Comment string `protobuf:"bytes,9,opt,name=comment" json:"comment,omitempty"` + IsFriend int32 `protobuf:"varint,10,opt,name=isFriend" json:"isFriend,omitempty"` + IsInBlackList int32 `protobuf:"varint,11,opt,name=isInBlackList" json:"isInBlackList,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *GetFriendData) Reset() { *m = GetFriendData{} } +func (m *GetFriendData) String() string { return proto.CompactTextString(m) } +func (*GetFriendData) ProtoMessage() {} +func (*GetFriendData) Descriptor() ([]byte, []int) { + return fileDescriptor_friend_772c0e76721339e5, []int{3} } - -func (x *GetFriendData) Reset() { - *x = GetFriendData{} - if protoimpl.UnsafeEnabled { - mi := &file_friend_friend_proto_msgTypes[3] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } +func (m *GetFriendData) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GetFriendData.Unmarshal(m, b) } - -func (x *GetFriendData) String() string { - return protoimpl.X.MessageStringOf(x) +func (m *GetFriendData) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GetFriendData.Marshal(b, m, deterministic) } - -func (*GetFriendData) ProtoMessage() {} - -func (x *GetFriendData) ProtoReflect() protoreflect.Message { - mi := &file_friend_friend_proto_msgTypes[3] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) +func (dst *GetFriendData) XXX_Merge(src proto.Message) { + xxx_messageInfo_GetFriendData.Merge(dst, src) } - -// Deprecated: Use GetFriendData.ProtoReflect.Descriptor instead. -func (*GetFriendData) Descriptor() ([]byte, []int) { - return file_friend_friend_proto_rawDescGZIP(), []int{3} +func (m *GetFriendData) XXX_Size() int { + return xxx_messageInfo_GetFriendData.Size(m) +} +func (m *GetFriendData) XXX_DiscardUnknown() { + xxx_messageInfo_GetFriendData.DiscardUnknown(m) } -func (x *GetFriendData) GetUid() string { - if x != nil { - return x.Uid +var xxx_messageInfo_GetFriendData proto.InternalMessageInfo + +func (m *GetFriendData) GetUid() string { + if m != nil { + return m.Uid } return "" } -func (x *GetFriendData) GetIcon() string { - if x != nil { - return x.Icon +func (m *GetFriendData) GetIcon() string { + if m != nil { + return m.Icon } return "" } -func (x *GetFriendData) GetName() string { - if x != nil { - return x.Name +func (m *GetFriendData) GetName() string { + if m != nil { + return m.Name } return "" } -func (x *GetFriendData) GetGender() int32 { - if x != nil { - return x.Gender +func (m *GetFriendData) GetGender() int32 { + if m != nil { + return m.Gender } return 0 } -func (x *GetFriendData) GetMobile() string { - if x != nil { - return x.Mobile +func (m *GetFriendData) GetMobile() string { + if m != nil { + return m.Mobile } return "" } -func (x *GetFriendData) GetBirth() string { - if x != nil { - return x.Birth +func (m *GetFriendData) GetBirth() string { + if m != nil { + return m.Birth } return "" } -func (x *GetFriendData) GetEmail() string { - if x != nil { - return x.Email +func (m *GetFriendData) GetEmail() string { + if m != nil { + return m.Email } return "" } -func (x *GetFriendData) GetEx() string { - if x != nil { - return x.Ex +func (m *GetFriendData) GetEx() string { + if m != nil { + return m.Ex } return "" } -func (x *GetFriendData) GetComment() string { - if x != nil { - return x.Comment +func (m *GetFriendData) GetComment() string { + if m != nil { + return m.Comment } return "" } -func (x *GetFriendData) GetIsFriend() int32 { - if x != nil { - return x.IsFriend +func (m *GetFriendData) GetIsFriend() int32 { + if m != nil { + return m.IsFriend } return 0 } -func (x *GetFriendData) GetIsInBlackList() int32 { - if x != nil { - return x.IsInBlackList +func (m *GetFriendData) GetIsInBlackList() int32 { + if m != nil { + return m.IsInBlackList } return 0 } type AddFriendReq struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Uid string `protobuf:"bytes,1,opt,name=uid,proto3" json:"uid,omitempty"` - OperationID string `protobuf:"bytes,2,opt,name=OperationID,proto3" json:"OperationID,omitempty"` - Token string `protobuf:"bytes,3,opt,name=Token,proto3" json:"Token,omitempty"` - ReqMessage string `protobuf:"bytes,4,opt,name=ReqMessage,proto3" json:"ReqMessage,omitempty"` + Uid string `protobuf:"bytes,1,opt,name=uid" json:"uid,omitempty"` + OperationID string `protobuf:"bytes,2,opt,name=OperationID" json:"OperationID,omitempty"` + Token string `protobuf:"bytes,3,opt,name=Token" json:"Token,omitempty"` + ReqMessage string `protobuf:"bytes,4,opt,name=ReqMessage" json:"ReqMessage,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *AddFriendReq) Reset() { *m = AddFriendReq{} } +func (m *AddFriendReq) String() string { return proto.CompactTextString(m) } +func (*AddFriendReq) ProtoMessage() {} +func (*AddFriendReq) Descriptor() ([]byte, []int) { + return fileDescriptor_friend_772c0e76721339e5, []int{4} } - -func (x *AddFriendReq) Reset() { - *x = AddFriendReq{} - if protoimpl.UnsafeEnabled { - mi := &file_friend_friend_proto_msgTypes[4] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } +func (m *AddFriendReq) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_AddFriendReq.Unmarshal(m, b) } - -func (x *AddFriendReq) String() string { - return protoimpl.X.MessageStringOf(x) +func (m *AddFriendReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_AddFriendReq.Marshal(b, m, deterministic) } - -func (*AddFriendReq) ProtoMessage() {} - -func (x *AddFriendReq) ProtoReflect() protoreflect.Message { - mi := &file_friend_friend_proto_msgTypes[4] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) +func (dst *AddFriendReq) XXX_Merge(src proto.Message) { + xxx_messageInfo_AddFriendReq.Merge(dst, src) } - -// Deprecated: Use AddFriendReq.ProtoReflect.Descriptor instead. -func (*AddFriendReq) Descriptor() ([]byte, []int) { - return file_friend_friend_proto_rawDescGZIP(), []int{4} +func (m *AddFriendReq) XXX_Size() int { + return xxx_messageInfo_AddFriendReq.Size(m) } +func (m *AddFriendReq) XXX_DiscardUnknown() { + xxx_messageInfo_AddFriendReq.DiscardUnknown(m) +} + +var xxx_messageInfo_AddFriendReq proto.InternalMessageInfo -func (x *AddFriendReq) GetUid() string { - if x != nil { - return x.Uid +func (m *AddFriendReq) GetUid() string { + if m != nil { + return m.Uid } return "" } -func (x *AddFriendReq) GetOperationID() string { - if x != nil { - return x.OperationID +func (m *AddFriendReq) GetOperationID() string { + if m != nil { + return m.OperationID } return "" } -func (x *AddFriendReq) GetToken() string { - if x != nil { - return x.Token +func (m *AddFriendReq) GetToken() string { + if m != nil { + return m.Token } return "" } -func (x *AddFriendReq) GetReqMessage() string { - if x != nil { - return x.ReqMessage +func (m *AddFriendReq) GetReqMessage() string { + if m != nil { + return m.ReqMessage } return "" } type ImportFriendReq struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - UidList []string `protobuf:"bytes,1,rep,name=uidList,proto3" json:"uidList,omitempty"` - OperationID string `protobuf:"bytes,2,opt,name=OperationID,proto3" json:"OperationID,omitempty"` - Token string `protobuf:"bytes,3,opt,name=Token,proto3" json:"Token,omitempty"` - OwnerUid string `protobuf:"bytes,4,opt,name=OwnerUid,proto3" json:"OwnerUid,omitempty"` + UidList []string `protobuf:"bytes,1,rep,name=uidList" json:"uidList,omitempty"` + OperationID string `protobuf:"bytes,2,opt,name=OperationID" json:"OperationID,omitempty"` + Token string `protobuf:"bytes,3,opt,name=Token" json:"Token,omitempty"` + OwnerUid string `protobuf:"bytes,4,opt,name=OwnerUid" json:"OwnerUid,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *ImportFriendReq) Reset() { *m = ImportFriendReq{} } +func (m *ImportFriendReq) String() string { return proto.CompactTextString(m) } +func (*ImportFriendReq) ProtoMessage() {} +func (*ImportFriendReq) Descriptor() ([]byte, []int) { + return fileDescriptor_friend_772c0e76721339e5, []int{5} } - -func (x *ImportFriendReq) Reset() { - *x = ImportFriendReq{} - if protoimpl.UnsafeEnabled { - mi := &file_friend_friend_proto_msgTypes[5] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } +func (m *ImportFriendReq) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_ImportFriendReq.Unmarshal(m, b) } - -func (x *ImportFriendReq) String() string { - return protoimpl.X.MessageStringOf(x) +func (m *ImportFriendReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_ImportFriendReq.Marshal(b, m, deterministic) } - -func (*ImportFriendReq) ProtoMessage() {} - -func (x *ImportFriendReq) ProtoReflect() protoreflect.Message { - mi := &file_friend_friend_proto_msgTypes[5] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) +func (dst *ImportFriendReq) XXX_Merge(src proto.Message) { + xxx_messageInfo_ImportFriendReq.Merge(dst, src) } - -// Deprecated: Use ImportFriendReq.ProtoReflect.Descriptor instead. -func (*ImportFriendReq) Descriptor() ([]byte, []int) { - return file_friend_friend_proto_rawDescGZIP(), []int{5} +func (m *ImportFriendReq) XXX_Size() int { + return xxx_messageInfo_ImportFriendReq.Size(m) +} +func (m *ImportFriendReq) XXX_DiscardUnknown() { + xxx_messageInfo_ImportFriendReq.DiscardUnknown(m) } -func (x *ImportFriendReq) GetUidList() []string { - if x != nil { - return x.UidList +var xxx_messageInfo_ImportFriendReq proto.InternalMessageInfo + +func (m *ImportFriendReq) GetUidList() []string { + if m != nil { + return m.UidList } return nil } -func (x *ImportFriendReq) GetOperationID() string { - if x != nil { - return x.OperationID +func (m *ImportFriendReq) GetOperationID() string { + if m != nil { + return m.OperationID } return "" } -func (x *ImportFriendReq) GetToken() string { - if x != nil { - return x.Token +func (m *ImportFriendReq) GetToken() string { + if m != nil { + return m.Token } return "" } -func (x *ImportFriendReq) GetOwnerUid() string { - if x != nil { - return x.OwnerUid +func (m *ImportFriendReq) GetOwnerUid() string { + if m != nil { + return m.OwnerUid } return "" } type ImportFriendResp struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - CommonResp *CommonResp `protobuf:"bytes,1,opt,name=commonResp,proto3" json:"commonResp,omitempty"` - FailedUidList []string `protobuf:"bytes,2,rep,name=failedUidList,proto3" json:"failedUidList,omitempty"` + CommonResp *CommonResp `protobuf:"bytes,1,opt,name=commonResp" json:"commonResp,omitempty"` + FailedUidList []string `protobuf:"bytes,2,rep,name=failedUidList" json:"failedUidList,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (x *ImportFriendResp) Reset() { - *x = ImportFriendResp{} - if protoimpl.UnsafeEnabled { - mi := &file_friend_friend_proto_msgTypes[6] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } +func (m *ImportFriendResp) Reset() { *m = ImportFriendResp{} } +func (m *ImportFriendResp) String() string { return proto.CompactTextString(m) } +func (*ImportFriendResp) ProtoMessage() {} +func (*ImportFriendResp) Descriptor() ([]byte, []int) { + return fileDescriptor_friend_772c0e76721339e5, []int{6} } - -func (x *ImportFriendResp) String() string { - return protoimpl.X.MessageStringOf(x) +func (m *ImportFriendResp) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_ImportFriendResp.Unmarshal(m, b) } - -func (*ImportFriendResp) ProtoMessage() {} - -func (x *ImportFriendResp) ProtoReflect() protoreflect.Message { - mi := &file_friend_friend_proto_msgTypes[6] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) +func (m *ImportFriendResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_ImportFriendResp.Marshal(b, m, deterministic) } - -// Deprecated: Use ImportFriendResp.ProtoReflect.Descriptor instead. -func (*ImportFriendResp) Descriptor() ([]byte, []int) { - return file_friend_friend_proto_rawDescGZIP(), []int{6} +func (dst *ImportFriendResp) XXX_Merge(src proto.Message) { + xxx_messageInfo_ImportFriendResp.Merge(dst, src) +} +func (m *ImportFriendResp) XXX_Size() int { + return xxx_messageInfo_ImportFriendResp.Size(m) +} +func (m *ImportFriendResp) XXX_DiscardUnknown() { + xxx_messageInfo_ImportFriendResp.DiscardUnknown(m) } -func (x *ImportFriendResp) GetCommonResp() *CommonResp { - if x != nil { - return x.CommonResp +var xxx_messageInfo_ImportFriendResp proto.InternalMessageInfo + +func (m *ImportFriendResp) GetCommonResp() *CommonResp { + if m != nil { + return m.CommonResp } return nil } -func (x *ImportFriendResp) GetFailedUidList() []string { - if x != nil { - return x.FailedUidList +func (m *ImportFriendResp) GetFailedUidList() []string { + if m != nil { + return m.FailedUidList } return nil } type GetFriendApplyReq struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - OperationID string `protobuf:"bytes,1,opt,name=OperationID,proto3" json:"OperationID,omitempty"` - Token string `protobuf:"bytes,2,opt,name=Token,proto3" json:"Token,omitempty"` + OperationID string `protobuf:"bytes,1,opt,name=OperationID" json:"OperationID,omitempty"` + Token string `protobuf:"bytes,2,opt,name=Token" json:"Token,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (x *GetFriendApplyReq) Reset() { - *x = GetFriendApplyReq{} - if protoimpl.UnsafeEnabled { - mi := &file_friend_friend_proto_msgTypes[7] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } +func (m *GetFriendApplyReq) Reset() { *m = GetFriendApplyReq{} } +func (m *GetFriendApplyReq) String() string { return proto.CompactTextString(m) } +func (*GetFriendApplyReq) ProtoMessage() {} +func (*GetFriendApplyReq) Descriptor() ([]byte, []int) { + return fileDescriptor_friend_772c0e76721339e5, []int{7} } - -func (x *GetFriendApplyReq) String() string { - return protoimpl.X.MessageStringOf(x) +func (m *GetFriendApplyReq) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GetFriendApplyReq.Unmarshal(m, b) } - -func (*GetFriendApplyReq) ProtoMessage() {} - -func (x *GetFriendApplyReq) ProtoReflect() protoreflect.Message { - mi := &file_friend_friend_proto_msgTypes[7] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) +func (m *GetFriendApplyReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GetFriendApplyReq.Marshal(b, m, deterministic) } - -// Deprecated: Use GetFriendApplyReq.ProtoReflect.Descriptor instead. -func (*GetFriendApplyReq) Descriptor() ([]byte, []int) { - return file_friend_friend_proto_rawDescGZIP(), []int{7} +func (dst *GetFriendApplyReq) XXX_Merge(src proto.Message) { + xxx_messageInfo_GetFriendApplyReq.Merge(dst, src) +} +func (m *GetFriendApplyReq) XXX_Size() int { + return xxx_messageInfo_GetFriendApplyReq.Size(m) } +func (m *GetFriendApplyReq) XXX_DiscardUnknown() { + xxx_messageInfo_GetFriendApplyReq.DiscardUnknown(m) +} + +var xxx_messageInfo_GetFriendApplyReq proto.InternalMessageInfo -func (x *GetFriendApplyReq) GetOperationID() string { - if x != nil { - return x.OperationID +func (m *GetFriendApplyReq) GetOperationID() string { + if m != nil { + return m.OperationID } return "" } -func (x *GetFriendApplyReq) GetToken() string { - if x != nil { - return x.Token +func (m *GetFriendApplyReq) GetToken() string { + if m != nil { + return m.Token } return "" } type GetFriendApplyResp struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - ErrorCode int32 `protobuf:"varint,1,opt,name=errorCode,proto3" json:"errorCode,omitempty"` - ErrorMsg string `protobuf:"bytes,2,opt,name=errorMsg,proto3" json:"errorMsg,omitempty"` - Data []*ApplyUserInfo `protobuf:"bytes,4,rep,name=data,proto3" json:"data,omitempty"` + ErrorCode int32 `protobuf:"varint,1,opt,name=errorCode" json:"errorCode,omitempty"` + ErrorMsg string `protobuf:"bytes,2,opt,name=errorMsg" json:"errorMsg,omitempty"` + Data []*ApplyUserInfo `protobuf:"bytes,4,rep,name=data" json:"data,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (x *GetFriendApplyResp) Reset() { - *x = GetFriendApplyResp{} - if protoimpl.UnsafeEnabled { - mi := &file_friend_friend_proto_msgTypes[8] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } +func (m *GetFriendApplyResp) Reset() { *m = GetFriendApplyResp{} } +func (m *GetFriendApplyResp) String() string { return proto.CompactTextString(m) } +func (*GetFriendApplyResp) ProtoMessage() {} +func (*GetFriendApplyResp) Descriptor() ([]byte, []int) { + return fileDescriptor_friend_772c0e76721339e5, []int{8} } - -func (x *GetFriendApplyResp) String() string { - return protoimpl.X.MessageStringOf(x) +func (m *GetFriendApplyResp) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GetFriendApplyResp.Unmarshal(m, b) } - -func (*GetFriendApplyResp) ProtoMessage() {} - -func (x *GetFriendApplyResp) ProtoReflect() protoreflect.Message { - mi := &file_friend_friend_proto_msgTypes[8] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) +func (m *GetFriendApplyResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GetFriendApplyResp.Marshal(b, m, deterministic) } - -// Deprecated: Use GetFriendApplyResp.ProtoReflect.Descriptor instead. -func (*GetFriendApplyResp) Descriptor() ([]byte, []int) { - return file_friend_friend_proto_rawDescGZIP(), []int{8} +func (dst *GetFriendApplyResp) XXX_Merge(src proto.Message) { + xxx_messageInfo_GetFriendApplyResp.Merge(dst, src) +} +func (m *GetFriendApplyResp) XXX_Size() int { + return xxx_messageInfo_GetFriendApplyResp.Size(m) +} +func (m *GetFriendApplyResp) XXX_DiscardUnknown() { + xxx_messageInfo_GetFriendApplyResp.DiscardUnknown(m) } -func (x *GetFriendApplyResp) GetErrorCode() int32 { - if x != nil { - return x.ErrorCode +var xxx_messageInfo_GetFriendApplyResp proto.InternalMessageInfo + +func (m *GetFriendApplyResp) GetErrorCode() int32 { + if m != nil { + return m.ErrorCode } return 0 } -func (x *GetFriendApplyResp) GetErrorMsg() string { - if x != nil { - return x.ErrorMsg +func (m *GetFriendApplyResp) GetErrorMsg() string { + if m != nil { + return m.ErrorMsg } return "" } -func (x *GetFriendApplyResp) GetData() []*ApplyUserInfo { - if x != nil { - return x.Data +func (m *GetFriendApplyResp) GetData() []*ApplyUserInfo { + if m != nil { + return m.Data } return nil } type ApplyUserInfo struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Uid string `protobuf:"bytes,1,opt,name=uid,proto3" json:"uid,omitempty"` - Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"` - Icon string `protobuf:"bytes,3,opt,name=icon,proto3" json:"icon,omitempty"` - Gender int32 `protobuf:"varint,4,opt,name=gender,proto3" json:"gender,omitempty"` - Mobile string `protobuf:"bytes,5,opt,name=mobile,proto3" json:"mobile,omitempty"` - Birth string `protobuf:"bytes,6,opt,name=birth,proto3" json:"birth,omitempty"` - Email string `protobuf:"bytes,7,opt,name=email,proto3" json:"email,omitempty"` - Ex string `protobuf:"bytes,8,opt,name=ex,proto3" json:"ex,omitempty"` - Flag int32 `protobuf:"varint,9,opt,name=flag,proto3" json:"flag,omitempty"` - ApplyTime string `protobuf:"bytes,10,opt,name=applyTime,proto3" json:"applyTime,omitempty"` - ReqMessage string `protobuf:"bytes,11,opt,name=reqMessage,proto3" json:"reqMessage,omitempty"` + Uid string `protobuf:"bytes,1,opt,name=uid" json:"uid,omitempty"` + Name string `protobuf:"bytes,2,opt,name=name" json:"name,omitempty"` + Icon string `protobuf:"bytes,3,opt,name=icon" json:"icon,omitempty"` + Gender int32 `protobuf:"varint,4,opt,name=gender" json:"gender,omitempty"` + Mobile string `protobuf:"bytes,5,opt,name=mobile" json:"mobile,omitempty"` + Birth string `protobuf:"bytes,6,opt,name=birth" json:"birth,omitempty"` + Email string `protobuf:"bytes,7,opt,name=email" json:"email,omitempty"` + Ex string `protobuf:"bytes,8,opt,name=ex" json:"ex,omitempty"` + Flag int32 `protobuf:"varint,9,opt,name=flag" json:"flag,omitempty"` + ApplyTime string `protobuf:"bytes,10,opt,name=applyTime" json:"applyTime,omitempty"` + ReqMessage string `protobuf:"bytes,11,opt,name=reqMessage" json:"reqMessage,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *ApplyUserInfo) Reset() { *m = ApplyUserInfo{} } +func (m *ApplyUserInfo) String() string { return proto.CompactTextString(m) } +func (*ApplyUserInfo) ProtoMessage() {} +func (*ApplyUserInfo) Descriptor() ([]byte, []int) { + return fileDescriptor_friend_772c0e76721339e5, []int{9} } - -func (x *ApplyUserInfo) Reset() { - *x = ApplyUserInfo{} - if protoimpl.UnsafeEnabled { - mi := &file_friend_friend_proto_msgTypes[9] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } +func (m *ApplyUserInfo) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_ApplyUserInfo.Unmarshal(m, b) } - -func (x *ApplyUserInfo) String() string { - return protoimpl.X.MessageStringOf(x) +func (m *ApplyUserInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_ApplyUserInfo.Marshal(b, m, deterministic) } - -func (*ApplyUserInfo) ProtoMessage() {} - -func (x *ApplyUserInfo) ProtoReflect() protoreflect.Message { - mi := &file_friend_friend_proto_msgTypes[9] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) +func (dst *ApplyUserInfo) XXX_Merge(src proto.Message) { + xxx_messageInfo_ApplyUserInfo.Merge(dst, src) } - -// Deprecated: Use ApplyUserInfo.ProtoReflect.Descriptor instead. -func (*ApplyUserInfo) Descriptor() ([]byte, []int) { - return file_friend_friend_proto_rawDescGZIP(), []int{9} +func (m *ApplyUserInfo) XXX_Size() int { + return xxx_messageInfo_ApplyUserInfo.Size(m) +} +func (m *ApplyUserInfo) XXX_DiscardUnknown() { + xxx_messageInfo_ApplyUserInfo.DiscardUnknown(m) } -func (x *ApplyUserInfo) GetUid() string { - if x != nil { - return x.Uid +var xxx_messageInfo_ApplyUserInfo proto.InternalMessageInfo + +func (m *ApplyUserInfo) GetUid() string { + if m != nil { + return m.Uid } return "" } -func (x *ApplyUserInfo) GetName() string { - if x != nil { - return x.Name +func (m *ApplyUserInfo) GetName() string { + if m != nil { + return m.Name } return "" } -func (x *ApplyUserInfo) GetIcon() string { - if x != nil { - return x.Icon +func (m *ApplyUserInfo) GetIcon() string { + if m != nil { + return m.Icon } return "" } -func (x *ApplyUserInfo) GetGender() int32 { - if x != nil { - return x.Gender +func (m *ApplyUserInfo) GetGender() int32 { + if m != nil { + return m.Gender } return 0 } -func (x *ApplyUserInfo) GetMobile() string { - if x != nil { - return x.Mobile +func (m *ApplyUserInfo) GetMobile() string { + if m != nil { + return m.Mobile } return "" } -func (x *ApplyUserInfo) GetBirth() string { - if x != nil { - return x.Birth +func (m *ApplyUserInfo) GetBirth() string { + if m != nil { + return m.Birth } return "" } -func (x *ApplyUserInfo) GetEmail() string { - if x != nil { - return x.Email +func (m *ApplyUserInfo) GetEmail() string { + if m != nil { + return m.Email } return "" } -func (x *ApplyUserInfo) GetEx() string { - if x != nil { - return x.Ex +func (m *ApplyUserInfo) GetEx() string { + if m != nil { + return m.Ex } return "" } -func (x *ApplyUserInfo) GetFlag() int32 { - if x != nil { - return x.Flag +func (m *ApplyUserInfo) GetFlag() int32 { + if m != nil { + return m.Flag } return 0 } -func (x *ApplyUserInfo) GetApplyTime() string { - if x != nil { - return x.ApplyTime +func (m *ApplyUserInfo) GetApplyTime() string { + if m != nil { + return m.ApplyTime } return "" } -func (x *ApplyUserInfo) GetReqMessage() string { - if x != nil { - return x.ReqMessage +func (m *ApplyUserInfo) GetReqMessage() string { + if m != nil { + return m.ReqMessage } return "" } type GetFriendListReq struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - OperationID string `protobuf:"bytes,1,opt,name=OperationID,proto3" json:"OperationID,omitempty"` - Token string `protobuf:"bytes,2,opt,name=Token,proto3" json:"Token,omitempty"` + OperationID string `protobuf:"bytes,1,opt,name=OperationID" json:"OperationID,omitempty"` + Token string `protobuf:"bytes,2,opt,name=Token" json:"Token,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (x *GetFriendListReq) Reset() { - *x = GetFriendListReq{} - if protoimpl.UnsafeEnabled { - mi := &file_friend_friend_proto_msgTypes[10] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } +func (m *GetFriendListReq) Reset() { *m = GetFriendListReq{} } +func (m *GetFriendListReq) String() string { return proto.CompactTextString(m) } +func (*GetFriendListReq) ProtoMessage() {} +func (*GetFriendListReq) Descriptor() ([]byte, []int) { + return fileDescriptor_friend_772c0e76721339e5, []int{10} } - -func (x *GetFriendListReq) String() string { - return protoimpl.X.MessageStringOf(x) +func (m *GetFriendListReq) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GetFriendListReq.Unmarshal(m, b) } - -func (*GetFriendListReq) ProtoMessage() {} - -func (x *GetFriendListReq) ProtoReflect() protoreflect.Message { - mi := &file_friend_friend_proto_msgTypes[10] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) +func (m *GetFriendListReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GetFriendListReq.Marshal(b, m, deterministic) } - -// Deprecated: Use GetFriendListReq.ProtoReflect.Descriptor instead. -func (*GetFriendListReq) Descriptor() ([]byte, []int) { - return file_friend_friend_proto_rawDescGZIP(), []int{10} +func (dst *GetFriendListReq) XXX_Merge(src proto.Message) { + xxx_messageInfo_GetFriendListReq.Merge(dst, src) +} +func (m *GetFriendListReq) XXX_Size() int { + return xxx_messageInfo_GetFriendListReq.Size(m) } +func (m *GetFriendListReq) XXX_DiscardUnknown() { + xxx_messageInfo_GetFriendListReq.DiscardUnknown(m) +} + +var xxx_messageInfo_GetFriendListReq proto.InternalMessageInfo -func (x *GetFriendListReq) GetOperationID() string { - if x != nil { - return x.OperationID +func (m *GetFriendListReq) GetOperationID() string { + if m != nil { + return m.OperationID } return "" } -func (x *GetFriendListReq) GetToken() string { - if x != nil { - return x.Token +func (m *GetFriendListReq) GetToken() string { + if m != nil { + return m.Token } return "" } type GetFriendListResp struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - ErrorCode int32 `protobuf:"varint,1,opt,name=errorCode,proto3" json:"errorCode,omitempty"` - ErrorMsg string `protobuf:"bytes,2,opt,name=errorMsg,proto3" json:"errorMsg,omitempty"` - Data []*UserInfo `protobuf:"bytes,3,rep,name=data,proto3" json:"data,omitempty"` + ErrorCode int32 `protobuf:"varint,1,opt,name=errorCode" json:"errorCode,omitempty"` + ErrorMsg string `protobuf:"bytes,2,opt,name=errorMsg" json:"errorMsg,omitempty"` + Data []*UserInfo `protobuf:"bytes,3,rep,name=data" json:"data,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (x *GetFriendListResp) Reset() { - *x = GetFriendListResp{} - if protoimpl.UnsafeEnabled { - mi := &file_friend_friend_proto_msgTypes[11] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } +func (m *GetFriendListResp) Reset() { *m = GetFriendListResp{} } +func (m *GetFriendListResp) String() string { return proto.CompactTextString(m) } +func (*GetFriendListResp) ProtoMessage() {} +func (*GetFriendListResp) Descriptor() ([]byte, []int) { + return fileDescriptor_friend_772c0e76721339e5, []int{11} } - -func (x *GetFriendListResp) String() string { - return protoimpl.X.MessageStringOf(x) +func (m *GetFriendListResp) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GetFriendListResp.Unmarshal(m, b) } - -func (*GetFriendListResp) ProtoMessage() {} - -func (x *GetFriendListResp) ProtoReflect() protoreflect.Message { - mi := &file_friend_friend_proto_msgTypes[11] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) +func (m *GetFriendListResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GetFriendListResp.Marshal(b, m, deterministic) } - -// Deprecated: Use GetFriendListResp.ProtoReflect.Descriptor instead. -func (*GetFriendListResp) Descriptor() ([]byte, []int) { - return file_friend_friend_proto_rawDescGZIP(), []int{11} +func (dst *GetFriendListResp) XXX_Merge(src proto.Message) { + xxx_messageInfo_GetFriendListResp.Merge(dst, src) +} +func (m *GetFriendListResp) XXX_Size() int { + return xxx_messageInfo_GetFriendListResp.Size(m) +} +func (m *GetFriendListResp) XXX_DiscardUnknown() { + xxx_messageInfo_GetFriendListResp.DiscardUnknown(m) } -func (x *GetFriendListResp) GetErrorCode() int32 { - if x != nil { - return x.ErrorCode +var xxx_messageInfo_GetFriendListResp proto.InternalMessageInfo + +func (m *GetFriendListResp) GetErrorCode() int32 { + if m != nil { + return m.ErrorCode } return 0 } -func (x *GetFriendListResp) GetErrorMsg() string { - if x != nil { - return x.ErrorMsg +func (m *GetFriendListResp) GetErrorMsg() string { + if m != nil { + return m.ErrorMsg } return "" } -func (x *GetFriendListResp) GetData() []*UserInfo { - if x != nil { - return x.Data +func (m *GetFriendListResp) GetData() []*UserInfo { + if m != nil { + return m.Data } return nil } type UserInfo struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Uid string `protobuf:"bytes,1,opt,name=uid,proto3" json:"uid,omitempty"` - Name string `protobuf:"bytes,3,opt,name=name,proto3" json:"name,omitempty"` - Icon string `protobuf:"bytes,2,opt,name=icon,proto3" json:"icon,omitempty"` - Gender int32 `protobuf:"varint,4,opt,name=gender,proto3" json:"gender,omitempty"` - Mobile string `protobuf:"bytes,5,opt,name=mobile,proto3" json:"mobile,omitempty"` - Birth string `protobuf:"bytes,6,opt,name=birth,proto3" json:"birth,omitempty"` - Email string `protobuf:"bytes,7,opt,name=email,proto3" json:"email,omitempty"` - Ex string `protobuf:"bytes,8,opt,name=ex,proto3" json:"ex,omitempty"` - Comment string `protobuf:"bytes,9,opt,name=comment,proto3" json:"comment,omitempty"` - IsInBlackList int32 `protobuf:"varint,10,opt,name=isInBlackList,proto3" json:"isInBlackList,omitempty"` + Uid string `protobuf:"bytes,1,opt,name=uid" json:"uid,omitempty"` + Name string `protobuf:"bytes,3,opt,name=name" json:"name,omitempty"` + Icon string `protobuf:"bytes,2,opt,name=icon" json:"icon,omitempty"` + Gender int32 `protobuf:"varint,4,opt,name=gender" json:"gender,omitempty"` + Mobile string `protobuf:"bytes,5,opt,name=mobile" json:"mobile,omitempty"` + Birth string `protobuf:"bytes,6,opt,name=birth" json:"birth,omitempty"` + Email string `protobuf:"bytes,7,opt,name=email" json:"email,omitempty"` + Ex string `protobuf:"bytes,8,opt,name=ex" json:"ex,omitempty"` + Comment string `protobuf:"bytes,9,opt,name=comment" json:"comment,omitempty"` + IsInBlackList int32 `protobuf:"varint,10,opt,name=isInBlackList" json:"isInBlackList,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +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_friend_772c0e76721339e5, []int{12} } - -func (x *UserInfo) Reset() { - *x = UserInfo{} - if protoimpl.UnsafeEnabled { - mi := &file_friend_friend_proto_msgTypes[12] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } +func (m *UserInfo) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_UserInfo.Unmarshal(m, b) } - -func (x *UserInfo) String() string { - return protoimpl.X.MessageStringOf(x) +func (m *UserInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_UserInfo.Marshal(b, m, deterministic) } - -func (*UserInfo) ProtoMessage() {} - -func (x *UserInfo) ProtoReflect() protoreflect.Message { - mi := &file_friend_friend_proto_msgTypes[12] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) +func (dst *UserInfo) XXX_Merge(src proto.Message) { + xxx_messageInfo_UserInfo.Merge(dst, src) } - -// Deprecated: Use UserInfo.ProtoReflect.Descriptor instead. -func (*UserInfo) Descriptor() ([]byte, []int) { - return file_friend_friend_proto_rawDescGZIP(), []int{12} +func (m *UserInfo) XXX_Size() int { + return xxx_messageInfo_UserInfo.Size(m) +} +func (m *UserInfo) XXX_DiscardUnknown() { + xxx_messageInfo_UserInfo.DiscardUnknown(m) } -func (x *UserInfo) GetUid() string { - if x != nil { - return x.Uid +var xxx_messageInfo_UserInfo proto.InternalMessageInfo + +func (m *UserInfo) GetUid() string { + if m != nil { + return m.Uid } return "" } -func (x *UserInfo) GetName() string { - if x != nil { - return x.Name +func (m *UserInfo) GetName() string { + if m != nil { + return m.Name } return "" } -func (x *UserInfo) GetIcon() string { - if x != nil { - return x.Icon +func (m *UserInfo) GetIcon() string { + if m != nil { + return m.Icon } return "" } -func (x *UserInfo) GetGender() int32 { - if x != nil { - return x.Gender +func (m *UserInfo) GetGender() int32 { + if m != nil { + return m.Gender } return 0 } -func (x *UserInfo) GetMobile() string { - if x != nil { - return x.Mobile +func (m *UserInfo) GetMobile() string { + if m != nil { + return m.Mobile } return "" } -func (x *UserInfo) GetBirth() string { - if x != nil { - return x.Birth +func (m *UserInfo) GetBirth() string { + if m != nil { + return m.Birth } return "" } -func (x *UserInfo) GetEmail() string { - if x != nil { - return x.Email +func (m *UserInfo) GetEmail() string { + if m != nil { + return m.Email } return "" } -func (x *UserInfo) GetEx() string { - if x != nil { - return x.Ex +func (m *UserInfo) GetEx() string { + if m != nil { + return m.Ex } return "" } -func (x *UserInfo) GetComment() string { - if x != nil { - return x.Comment +func (m *UserInfo) GetComment() string { + if m != nil { + return m.Comment } return "" } -func (x *UserInfo) GetIsInBlackList() int32 { - if x != nil { - return x.IsInBlackList +func (m *UserInfo) GetIsInBlackList() int32 { + if m != nil { + return m.IsInBlackList } return 0 } type AddBlacklistReq struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Uid string `protobuf:"bytes,1,opt,name=uid,proto3" json:"uid,omitempty"` - OperationID string `protobuf:"bytes,2,opt,name=OperationID,proto3" json:"OperationID,omitempty"` - Token string `protobuf:"bytes,3,opt,name=Token,proto3" json:"Token,omitempty"` - OwnerUid string `protobuf:"bytes,4,opt,name=OwnerUid,proto3" json:"OwnerUid,omitempty"` + Uid string `protobuf:"bytes,1,opt,name=uid" json:"uid,omitempty"` + OperationID string `protobuf:"bytes,2,opt,name=OperationID" json:"OperationID,omitempty"` + Token string `protobuf:"bytes,3,opt,name=Token" json:"Token,omitempty"` + OwnerUid string `protobuf:"bytes,4,opt,name=OwnerUid" json:"OwnerUid,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *AddBlacklistReq) Reset() { *m = AddBlacklistReq{} } +func (m *AddBlacklistReq) String() string { return proto.CompactTextString(m) } +func (*AddBlacklistReq) ProtoMessage() {} +func (*AddBlacklistReq) Descriptor() ([]byte, []int) { + return fileDescriptor_friend_772c0e76721339e5, []int{13} } - -func (x *AddBlacklistReq) Reset() { - *x = AddBlacklistReq{} - if protoimpl.UnsafeEnabled { - mi := &file_friend_friend_proto_msgTypes[13] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } +func (m *AddBlacklistReq) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_AddBlacklistReq.Unmarshal(m, b) } - -func (x *AddBlacklistReq) String() string { - return protoimpl.X.MessageStringOf(x) +func (m *AddBlacklistReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_AddBlacklistReq.Marshal(b, m, deterministic) } - -func (*AddBlacklistReq) ProtoMessage() {} - -func (x *AddBlacklistReq) ProtoReflect() protoreflect.Message { - mi := &file_friend_friend_proto_msgTypes[13] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) +func (dst *AddBlacklistReq) XXX_Merge(src proto.Message) { + xxx_messageInfo_AddBlacklistReq.Merge(dst, src) } - -// Deprecated: Use AddBlacklistReq.ProtoReflect.Descriptor instead. -func (*AddBlacklistReq) Descriptor() ([]byte, []int) { - return file_friend_friend_proto_rawDescGZIP(), []int{13} +func (m *AddBlacklistReq) XXX_Size() int { + return xxx_messageInfo_AddBlacklistReq.Size(m) } +func (m *AddBlacklistReq) XXX_DiscardUnknown() { + xxx_messageInfo_AddBlacklistReq.DiscardUnknown(m) +} + +var xxx_messageInfo_AddBlacklistReq proto.InternalMessageInfo -func (x *AddBlacklistReq) GetUid() string { - if x != nil { - return x.Uid +func (m *AddBlacklistReq) GetUid() string { + if m != nil { + return m.Uid } return "" } -func (x *AddBlacklistReq) GetOperationID() string { - if x != nil { - return x.OperationID +func (m *AddBlacklistReq) GetOperationID() string { + if m != nil { + return m.OperationID } return "" } -func (x *AddBlacklistReq) GetToken() string { - if x != nil { - return x.Token +func (m *AddBlacklistReq) GetToken() string { + if m != nil { + return m.Token } return "" } -func (x *AddBlacklistReq) GetOwnerUid() string { - if x != nil { - return x.OwnerUid +func (m *AddBlacklistReq) GetOwnerUid() string { + if m != nil { + return m.OwnerUid } return "" } type RemoveBlacklistReq struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Uid string `protobuf:"bytes,1,opt,name=uid,proto3" json:"uid,omitempty"` - OperationID string `protobuf:"bytes,2,opt,name=OperationID,proto3" json:"OperationID,omitempty"` - Token string `protobuf:"bytes,3,opt,name=Token,proto3" json:"Token,omitempty"` + Uid string `protobuf:"bytes,1,opt,name=uid" json:"uid,omitempty"` + OperationID string `protobuf:"bytes,2,opt,name=OperationID" json:"OperationID,omitempty"` + Token string `protobuf:"bytes,3,opt,name=Token" json:"Token,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (x *RemoveBlacklistReq) Reset() { - *x = RemoveBlacklistReq{} - if protoimpl.UnsafeEnabled { - mi := &file_friend_friend_proto_msgTypes[14] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } +func (m *RemoveBlacklistReq) Reset() { *m = RemoveBlacklistReq{} } +func (m *RemoveBlacklistReq) String() string { return proto.CompactTextString(m) } +func (*RemoveBlacklistReq) ProtoMessage() {} +func (*RemoveBlacklistReq) Descriptor() ([]byte, []int) { + return fileDescriptor_friend_772c0e76721339e5, []int{14} } - -func (x *RemoveBlacklistReq) String() string { - return protoimpl.X.MessageStringOf(x) +func (m *RemoveBlacklistReq) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_RemoveBlacklistReq.Unmarshal(m, b) } - -func (*RemoveBlacklistReq) ProtoMessage() {} - -func (x *RemoveBlacklistReq) ProtoReflect() protoreflect.Message { - mi := &file_friend_friend_proto_msgTypes[14] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) +func (m *RemoveBlacklistReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_RemoveBlacklistReq.Marshal(b, m, deterministic) } - -// Deprecated: Use RemoveBlacklistReq.ProtoReflect.Descriptor instead. -func (*RemoveBlacklistReq) Descriptor() ([]byte, []int) { - return file_friend_friend_proto_rawDescGZIP(), []int{14} +func (dst *RemoveBlacklistReq) XXX_Merge(src proto.Message) { + xxx_messageInfo_RemoveBlacklistReq.Merge(dst, src) +} +func (m *RemoveBlacklistReq) XXX_Size() int { + return xxx_messageInfo_RemoveBlacklistReq.Size(m) +} +func (m *RemoveBlacklistReq) XXX_DiscardUnknown() { + xxx_messageInfo_RemoveBlacklistReq.DiscardUnknown(m) } -func (x *RemoveBlacklistReq) GetUid() string { - if x != nil { - return x.Uid +var xxx_messageInfo_RemoveBlacklistReq proto.InternalMessageInfo + +func (m *RemoveBlacklistReq) GetUid() string { + if m != nil { + return m.Uid } return "" } -func (x *RemoveBlacklistReq) GetOperationID() string { - if x != nil { - return x.OperationID +func (m *RemoveBlacklistReq) GetOperationID() string { + if m != nil { + return m.OperationID } return "" } -func (x *RemoveBlacklistReq) GetToken() string { - if x != nil { - return x.Token +func (m *RemoveBlacklistReq) GetToken() string { + if m != nil { + return m.Token } return "" } type GetBlacklistReq struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - OperationID string `protobuf:"bytes,1,opt,name=OperationID,proto3" json:"OperationID,omitempty"` - Token string `protobuf:"bytes,2,opt,name=token,proto3" json:"token,omitempty"` + OperationID string `protobuf:"bytes,1,opt,name=OperationID" json:"OperationID,omitempty"` + Token string `protobuf:"bytes,2,opt,name=token" json:"token,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (x *GetBlacklistReq) Reset() { - *x = GetBlacklistReq{} - if protoimpl.UnsafeEnabled { - mi := &file_friend_friend_proto_msgTypes[15] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } +func (m *GetBlacklistReq) Reset() { *m = GetBlacklistReq{} } +func (m *GetBlacklistReq) String() string { return proto.CompactTextString(m) } +func (*GetBlacklistReq) ProtoMessage() {} +func (*GetBlacklistReq) Descriptor() ([]byte, []int) { + return fileDescriptor_friend_772c0e76721339e5, []int{15} } - -func (x *GetBlacklistReq) String() string { - return protoimpl.X.MessageStringOf(x) +func (m *GetBlacklistReq) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GetBlacklistReq.Unmarshal(m, b) } - -func (*GetBlacklistReq) ProtoMessage() {} - -func (x *GetBlacklistReq) ProtoReflect() protoreflect.Message { - mi := &file_friend_friend_proto_msgTypes[15] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) +func (m *GetBlacklistReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GetBlacklistReq.Marshal(b, m, deterministic) } - -// Deprecated: Use GetBlacklistReq.ProtoReflect.Descriptor instead. -func (*GetBlacklistReq) Descriptor() ([]byte, []int) { - return file_friend_friend_proto_rawDescGZIP(), []int{15} +func (dst *GetBlacklistReq) XXX_Merge(src proto.Message) { + xxx_messageInfo_GetBlacklistReq.Merge(dst, src) +} +func (m *GetBlacklistReq) XXX_Size() int { + return xxx_messageInfo_GetBlacklistReq.Size(m) +} +func (m *GetBlacklistReq) XXX_DiscardUnknown() { + xxx_messageInfo_GetBlacklistReq.DiscardUnknown(m) } -func (x *GetBlacklistReq) GetOperationID() string { - if x != nil { - return x.OperationID +var xxx_messageInfo_GetBlacklistReq proto.InternalMessageInfo + +func (m *GetBlacklistReq) GetOperationID() string { + if m != nil { + return m.OperationID } return "" } -func (x *GetBlacklistReq) GetToken() string { - if x != nil { - return x.Token +func (m *GetBlacklistReq) GetToken() string { + if m != nil { + return m.Token } return "" } type GetBlacklistResp struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - ErrorCode int32 `protobuf:"varint,1,opt,name=errorCode,proto3" json:"errorCode,omitempty"` - ErrorMsg string `protobuf:"bytes,2,opt,name=errorMsg,proto3" json:"errorMsg,omitempty"` - Data []*UserInfo `protobuf:"bytes,3,rep,name=data,proto3" json:"data,omitempty"` + ErrorCode int32 `protobuf:"varint,1,opt,name=errorCode" json:"errorCode,omitempty"` + ErrorMsg string `protobuf:"bytes,2,opt,name=errorMsg" json:"errorMsg,omitempty"` + Data []*UserInfo `protobuf:"bytes,3,rep,name=data" json:"data,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (x *GetBlacklistResp) Reset() { - *x = GetBlacklistResp{} - if protoimpl.UnsafeEnabled { - mi := &file_friend_friend_proto_msgTypes[16] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } +func (m *GetBlacklistResp) Reset() { *m = GetBlacklistResp{} } +func (m *GetBlacklistResp) String() string { return proto.CompactTextString(m) } +func (*GetBlacklistResp) ProtoMessage() {} +func (*GetBlacklistResp) Descriptor() ([]byte, []int) { + return fileDescriptor_friend_772c0e76721339e5, []int{16} } - -func (x *GetBlacklistResp) String() string { - return protoimpl.X.MessageStringOf(x) +func (m *GetBlacklistResp) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GetBlacklistResp.Unmarshal(m, b) } - -func (*GetBlacklistResp) ProtoMessage() {} - -func (x *GetBlacklistResp) ProtoReflect() protoreflect.Message { - mi := &file_friend_friend_proto_msgTypes[16] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) +func (m *GetBlacklistResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GetBlacklistResp.Marshal(b, m, deterministic) } - -// Deprecated: Use GetBlacklistResp.ProtoReflect.Descriptor instead. -func (*GetBlacklistResp) Descriptor() ([]byte, []int) { - return file_friend_friend_proto_rawDescGZIP(), []int{16} +func (dst *GetBlacklistResp) XXX_Merge(src proto.Message) { + xxx_messageInfo_GetBlacklistResp.Merge(dst, src) +} +func (m *GetBlacklistResp) XXX_Size() int { + return xxx_messageInfo_GetBlacklistResp.Size(m) } +func (m *GetBlacklistResp) XXX_DiscardUnknown() { + xxx_messageInfo_GetBlacklistResp.DiscardUnknown(m) +} + +var xxx_messageInfo_GetBlacklistResp proto.InternalMessageInfo -func (x *GetBlacklistResp) GetErrorCode() int32 { - if x != nil { - return x.ErrorCode +func (m *GetBlacklistResp) GetErrorCode() int32 { + if m != nil { + return m.ErrorCode } return 0 } -func (x *GetBlacklistResp) GetErrorMsg() string { - if x != nil { - return x.ErrorMsg +func (m *GetBlacklistResp) GetErrorMsg() string { + if m != nil { + return m.ErrorMsg } return "" } -func (x *GetBlacklistResp) GetData() []*UserInfo { - if x != nil { - return x.Data +func (m *GetBlacklistResp) GetData() []*UserInfo { + if m != nil { + return m.Data } return nil } type IsFriendReq struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Token string `protobuf:"bytes,1,opt,name=token,proto3" json:"token,omitempty"` - ReceiveUid string `protobuf:"bytes,2,opt,name=receiveUid,proto3" json:"receiveUid,omitempty"` - OperationID string `protobuf:"bytes,3,opt,name=OperationID,proto3" json:"OperationID,omitempty"` + Token string `protobuf:"bytes,1,opt,name=token" json:"token,omitempty"` + ReceiveUid string `protobuf:"bytes,2,opt,name=receiveUid" json:"receiveUid,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 (x *IsFriendReq) Reset() { - *x = IsFriendReq{} - if protoimpl.UnsafeEnabled { - mi := &file_friend_friend_proto_msgTypes[17] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } +func (m *IsFriendReq) Reset() { *m = IsFriendReq{} } +func (m *IsFriendReq) String() string { return proto.CompactTextString(m) } +func (*IsFriendReq) ProtoMessage() {} +func (*IsFriendReq) Descriptor() ([]byte, []int) { + return fileDescriptor_friend_772c0e76721339e5, []int{17} } - -func (x *IsFriendReq) String() string { - return protoimpl.X.MessageStringOf(x) +func (m *IsFriendReq) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_IsFriendReq.Unmarshal(m, b) } - -func (*IsFriendReq) ProtoMessage() {} - -func (x *IsFriendReq) ProtoReflect() protoreflect.Message { - mi := &file_friend_friend_proto_msgTypes[17] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) +func (m *IsFriendReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_IsFriendReq.Marshal(b, m, deterministic) } - -// Deprecated: Use IsFriendReq.ProtoReflect.Descriptor instead. -func (*IsFriendReq) Descriptor() ([]byte, []int) { - return file_friend_friend_proto_rawDescGZIP(), []int{17} +func (dst *IsFriendReq) XXX_Merge(src proto.Message) { + xxx_messageInfo_IsFriendReq.Merge(dst, src) +} +func (m *IsFriendReq) XXX_Size() int { + return xxx_messageInfo_IsFriendReq.Size(m) +} +func (m *IsFriendReq) XXX_DiscardUnknown() { + xxx_messageInfo_IsFriendReq.DiscardUnknown(m) } -func (x *IsFriendReq) GetToken() string { - if x != nil { - return x.Token +var xxx_messageInfo_IsFriendReq proto.InternalMessageInfo + +func (m *IsFriendReq) GetToken() string { + if m != nil { + return m.Token } return "" } -func (x *IsFriendReq) GetReceiveUid() string { - if x != nil { - return x.ReceiveUid +func (m *IsFriendReq) GetReceiveUid() string { + if m != nil { + return m.ReceiveUid } return "" } -func (x *IsFriendReq) GetOperationID() string { - if x != nil { - return x.OperationID +func (m *IsFriendReq) GetOperationID() string { + if m != nil { + return m.OperationID } return "" } type IsFriendResp struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - ErrorCode int32 `protobuf:"varint,1,opt,name=errorCode,proto3" json:"errorCode,omitempty"` - ErrorMsg string `protobuf:"bytes,2,opt,name=errorMsg,proto3" json:"errorMsg,omitempty"` - ShipType int32 `protobuf:"varint,3,opt,name=shipType,proto3" json:"shipType,omitempty"` + ErrorCode int32 `protobuf:"varint,1,opt,name=errorCode" json:"errorCode,omitempty"` + ErrorMsg string `protobuf:"bytes,2,opt,name=errorMsg" json:"errorMsg,omitempty"` + ShipType int32 `protobuf:"varint,3,opt,name=shipType" json:"shipType,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (x *IsFriendResp) Reset() { - *x = IsFriendResp{} - if protoimpl.UnsafeEnabled { - mi := &file_friend_friend_proto_msgTypes[18] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } +func (m *IsFriendResp) Reset() { *m = IsFriendResp{} } +func (m *IsFriendResp) String() string { return proto.CompactTextString(m) } +func (*IsFriendResp) ProtoMessage() {} +func (*IsFriendResp) Descriptor() ([]byte, []int) { + return fileDescriptor_friend_772c0e76721339e5, []int{18} } - -func (x *IsFriendResp) String() string { - return protoimpl.X.MessageStringOf(x) +func (m *IsFriendResp) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_IsFriendResp.Unmarshal(m, b) } - -func (*IsFriendResp) ProtoMessage() {} - -func (x *IsFriendResp) ProtoReflect() protoreflect.Message { - mi := &file_friend_friend_proto_msgTypes[18] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) +func (m *IsFriendResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_IsFriendResp.Marshal(b, m, deterministic) } - -// Deprecated: Use IsFriendResp.ProtoReflect.Descriptor instead. -func (*IsFriendResp) Descriptor() ([]byte, []int) { - return file_friend_friend_proto_rawDescGZIP(), []int{18} +func (dst *IsFriendResp) XXX_Merge(src proto.Message) { + xxx_messageInfo_IsFriendResp.Merge(dst, src) +} +func (m *IsFriendResp) XXX_Size() int { + return xxx_messageInfo_IsFriendResp.Size(m) +} +func (m *IsFriendResp) XXX_DiscardUnknown() { + xxx_messageInfo_IsFriendResp.DiscardUnknown(m) } -func (x *IsFriendResp) GetErrorCode() int32 { - if x != nil { - return x.ErrorCode +var xxx_messageInfo_IsFriendResp proto.InternalMessageInfo + +func (m *IsFriendResp) GetErrorCode() int32 { + if m != nil { + return m.ErrorCode } return 0 } -func (x *IsFriendResp) GetErrorMsg() string { - if x != nil { - return x.ErrorMsg +func (m *IsFriendResp) GetErrorMsg() string { + if m != nil { + return m.ErrorMsg } return "" } -func (x *IsFriendResp) GetShipType() int32 { - if x != nil { - return x.ShipType +func (m *IsFriendResp) GetShipType() int32 { + if m != nil { + return m.ShipType } return 0 } type IsInBlackListReq struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - SendUid string `protobuf:"bytes,1,opt,name=sendUid,proto3" json:"sendUid,omitempty"` - ReceiveUid string `protobuf:"bytes,2,opt,name=receiveUid,proto3" json:"receiveUid,omitempty"` - OperationID string `protobuf:"bytes,3,opt,name=OperationID,proto3" json:"OperationID,omitempty"` + SendUid string `protobuf:"bytes,1,opt,name=sendUid" json:"sendUid,omitempty"` + ReceiveUid string `protobuf:"bytes,2,opt,name=receiveUid" json:"receiveUid,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 (x *IsInBlackListReq) Reset() { - *x = IsInBlackListReq{} - if protoimpl.UnsafeEnabled { - mi := &file_friend_friend_proto_msgTypes[19] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } +func (m *IsInBlackListReq) Reset() { *m = IsInBlackListReq{} } +func (m *IsInBlackListReq) String() string { return proto.CompactTextString(m) } +func (*IsInBlackListReq) ProtoMessage() {} +func (*IsInBlackListReq) Descriptor() ([]byte, []int) { + return fileDescriptor_friend_772c0e76721339e5, []int{19} } - -func (x *IsInBlackListReq) String() string { - return protoimpl.X.MessageStringOf(x) +func (m *IsInBlackListReq) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_IsInBlackListReq.Unmarshal(m, b) } - -func (*IsInBlackListReq) ProtoMessage() {} - -func (x *IsInBlackListReq) ProtoReflect() protoreflect.Message { - mi := &file_friend_friend_proto_msgTypes[19] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) +func (m *IsInBlackListReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_IsInBlackListReq.Marshal(b, m, deterministic) } - -// Deprecated: Use IsInBlackListReq.ProtoReflect.Descriptor instead. -func (*IsInBlackListReq) Descriptor() ([]byte, []int) { - return file_friend_friend_proto_rawDescGZIP(), []int{19} +func (dst *IsInBlackListReq) XXX_Merge(src proto.Message) { + xxx_messageInfo_IsInBlackListReq.Merge(dst, src) +} +func (m *IsInBlackListReq) XXX_Size() int { + return xxx_messageInfo_IsInBlackListReq.Size(m) } +func (m *IsInBlackListReq) XXX_DiscardUnknown() { + xxx_messageInfo_IsInBlackListReq.DiscardUnknown(m) +} + +var xxx_messageInfo_IsInBlackListReq proto.InternalMessageInfo -func (x *IsInBlackListReq) GetSendUid() string { - if x != nil { - return x.SendUid +func (m *IsInBlackListReq) GetSendUid() string { + if m != nil { + return m.SendUid } return "" } -func (x *IsInBlackListReq) GetReceiveUid() string { - if x != nil { - return x.ReceiveUid +func (m *IsInBlackListReq) GetReceiveUid() string { + if m != nil { + return m.ReceiveUid } return "" } -func (x *IsInBlackListReq) GetOperationID() string { - if x != nil { - return x.OperationID +func (m *IsInBlackListReq) GetOperationID() string { + if m != nil { + return m.OperationID } return "" } type IsInBlackListResp struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - ErrorCode int32 `protobuf:"varint,1,opt,name=errorCode,proto3" json:"errorCode,omitempty"` - ErrorMsg string `protobuf:"bytes,2,opt,name=errorMsg,proto3" json:"errorMsg,omitempty"` - Response bool `protobuf:"varint,3,opt,name=response,proto3" json:"response,omitempty"` + ErrorCode int32 `protobuf:"varint,1,opt,name=errorCode" json:"errorCode,omitempty"` + ErrorMsg string `protobuf:"bytes,2,opt,name=errorMsg" json:"errorMsg,omitempty"` + Response bool `protobuf:"varint,3,opt,name=response" json:"response,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (x *IsInBlackListResp) Reset() { - *x = IsInBlackListResp{} - if protoimpl.UnsafeEnabled { - mi := &file_friend_friend_proto_msgTypes[20] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } +func (m *IsInBlackListResp) Reset() { *m = IsInBlackListResp{} } +func (m *IsInBlackListResp) String() string { return proto.CompactTextString(m) } +func (*IsInBlackListResp) ProtoMessage() {} +func (*IsInBlackListResp) Descriptor() ([]byte, []int) { + return fileDescriptor_friend_772c0e76721339e5, []int{20} } - -func (x *IsInBlackListResp) String() string { - return protoimpl.X.MessageStringOf(x) +func (m *IsInBlackListResp) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_IsInBlackListResp.Unmarshal(m, b) } - -func (*IsInBlackListResp) ProtoMessage() {} - -func (x *IsInBlackListResp) ProtoReflect() protoreflect.Message { - mi := &file_friend_friend_proto_msgTypes[20] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) +func (m *IsInBlackListResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_IsInBlackListResp.Marshal(b, m, deterministic) } - -// Deprecated: Use IsInBlackListResp.ProtoReflect.Descriptor instead. -func (*IsInBlackListResp) Descriptor() ([]byte, []int) { - return file_friend_friend_proto_rawDescGZIP(), []int{20} +func (dst *IsInBlackListResp) XXX_Merge(src proto.Message) { + xxx_messageInfo_IsInBlackListResp.Merge(dst, src) +} +func (m *IsInBlackListResp) XXX_Size() int { + return xxx_messageInfo_IsInBlackListResp.Size(m) +} +func (m *IsInBlackListResp) XXX_DiscardUnknown() { + xxx_messageInfo_IsInBlackListResp.DiscardUnknown(m) } -func (x *IsInBlackListResp) GetErrorCode() int32 { - if x != nil { - return x.ErrorCode +var xxx_messageInfo_IsInBlackListResp proto.InternalMessageInfo + +func (m *IsInBlackListResp) GetErrorCode() int32 { + if m != nil { + return m.ErrorCode } return 0 } -func (x *IsInBlackListResp) GetErrorMsg() string { - if x != nil { - return x.ErrorMsg +func (m *IsInBlackListResp) GetErrorMsg() string { + if m != nil { + return m.ErrorMsg } return "" } -func (x *IsInBlackListResp) GetResponse() bool { - if x != nil { - return x.Response +func (m *IsInBlackListResp) GetResponse() bool { + if m != nil { + return m.Response } return false } type DeleteFriendReq struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Uid string `protobuf:"bytes,1,opt,name=uid,proto3" json:"uid,omitempty"` - OperationID string `protobuf:"bytes,2,opt,name=OperationID,proto3" json:"OperationID,omitempty"` - Token string `protobuf:"bytes,3,opt,name=Token,proto3" json:"Token,omitempty"` + Uid string `protobuf:"bytes,1,opt,name=uid" json:"uid,omitempty"` + OperationID string `protobuf:"bytes,2,opt,name=OperationID" json:"OperationID,omitempty"` + Token string `protobuf:"bytes,3,opt,name=Token" json:"Token,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (x *DeleteFriendReq) Reset() { - *x = DeleteFriendReq{} - if protoimpl.UnsafeEnabled { - mi := &file_friend_friend_proto_msgTypes[21] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } +func (m *DeleteFriendReq) Reset() { *m = DeleteFriendReq{} } +func (m *DeleteFriendReq) String() string { return proto.CompactTextString(m) } +func (*DeleteFriendReq) ProtoMessage() {} +func (*DeleteFriendReq) Descriptor() ([]byte, []int) { + return fileDescriptor_friend_772c0e76721339e5, []int{21} } - -func (x *DeleteFriendReq) String() string { - return protoimpl.X.MessageStringOf(x) +func (m *DeleteFriendReq) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_DeleteFriendReq.Unmarshal(m, b) } - -func (*DeleteFriendReq) ProtoMessage() {} - -func (x *DeleteFriendReq) ProtoReflect() protoreflect.Message { - mi := &file_friend_friend_proto_msgTypes[21] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) +func (m *DeleteFriendReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_DeleteFriendReq.Marshal(b, m, deterministic) } - -// Deprecated: Use DeleteFriendReq.ProtoReflect.Descriptor instead. -func (*DeleteFriendReq) Descriptor() ([]byte, []int) { - return file_friend_friend_proto_rawDescGZIP(), []int{21} +func (dst *DeleteFriendReq) XXX_Merge(src proto.Message) { + xxx_messageInfo_DeleteFriendReq.Merge(dst, src) +} +func (m *DeleteFriendReq) XXX_Size() int { + return xxx_messageInfo_DeleteFriendReq.Size(m) +} +func (m *DeleteFriendReq) XXX_DiscardUnknown() { + xxx_messageInfo_DeleteFriendReq.DiscardUnknown(m) } -func (x *DeleteFriendReq) GetUid() string { - if x != nil { - return x.Uid +var xxx_messageInfo_DeleteFriendReq proto.InternalMessageInfo + +func (m *DeleteFriendReq) GetUid() string { + if m != nil { + return m.Uid } return "" } -func (x *DeleteFriendReq) GetOperationID() string { - if x != nil { - return x.OperationID +func (m *DeleteFriendReq) GetOperationID() string { + if m != nil { + return m.OperationID } return "" } -func (x *DeleteFriendReq) GetToken() string { - if x != nil { - return x.Token +func (m *DeleteFriendReq) GetToken() string { + if m != nil { + return m.Token } return "" } type AddFriendResponseReq struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Uid string `protobuf:"bytes,1,opt,name=uid,proto3" json:"uid,omitempty"` - Flag int32 `protobuf:"varint,2,opt,name=flag,proto3" json:"flag,omitempty"` - OperationID string `protobuf:"bytes,3,opt,name=OperationID,proto3" json:"OperationID,omitempty"` - Token string `protobuf:"bytes,4,opt,name=Token,proto3" json:"Token,omitempty"` + Uid string `protobuf:"bytes,1,opt,name=uid" json:"uid,omitempty"` + Flag int32 `protobuf:"varint,2,opt,name=flag" json:"flag,omitempty"` + OperationID string `protobuf:"bytes,3,opt,name=OperationID" json:"OperationID,omitempty"` + Token string `protobuf:"bytes,4,opt,name=Token" json:"Token,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *AddFriendResponseReq) Reset() { *m = AddFriendResponseReq{} } +func (m *AddFriendResponseReq) String() string { return proto.CompactTextString(m) } +func (*AddFriendResponseReq) ProtoMessage() {} +func (*AddFriendResponseReq) Descriptor() ([]byte, []int) { + return fileDescriptor_friend_772c0e76721339e5, []int{22} } - -func (x *AddFriendResponseReq) Reset() { - *x = AddFriendResponseReq{} - if protoimpl.UnsafeEnabled { - mi := &file_friend_friend_proto_msgTypes[22] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } +func (m *AddFriendResponseReq) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_AddFriendResponseReq.Unmarshal(m, b) } - -func (x *AddFriendResponseReq) String() string { - return protoimpl.X.MessageStringOf(x) +func (m *AddFriendResponseReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_AddFriendResponseReq.Marshal(b, m, deterministic) } - -func (*AddFriendResponseReq) ProtoMessage() {} - -func (x *AddFriendResponseReq) ProtoReflect() protoreflect.Message { - mi := &file_friend_friend_proto_msgTypes[22] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) +func (dst *AddFriendResponseReq) XXX_Merge(src proto.Message) { + xxx_messageInfo_AddFriendResponseReq.Merge(dst, src) } - -// Deprecated: Use AddFriendResponseReq.ProtoReflect.Descriptor instead. -func (*AddFriendResponseReq) Descriptor() ([]byte, []int) { - return file_friend_friend_proto_rawDescGZIP(), []int{22} +func (m *AddFriendResponseReq) XXX_Size() int { + return xxx_messageInfo_AddFriendResponseReq.Size(m) } +func (m *AddFriendResponseReq) XXX_DiscardUnknown() { + xxx_messageInfo_AddFriendResponseReq.DiscardUnknown(m) +} + +var xxx_messageInfo_AddFriendResponseReq proto.InternalMessageInfo -func (x *AddFriendResponseReq) GetUid() string { - if x != nil { - return x.Uid +func (m *AddFriendResponseReq) GetUid() string { + if m != nil { + return m.Uid } return "" } -func (x *AddFriendResponseReq) GetFlag() int32 { - if x != nil { - return x.Flag +func (m *AddFriendResponseReq) GetFlag() int32 { + if m != nil { + return m.Flag } return 0 } -func (x *AddFriendResponseReq) GetOperationID() string { - if x != nil { - return x.OperationID +func (m *AddFriendResponseReq) GetOperationID() string { + if m != nil { + return m.OperationID } return "" } -func (x *AddFriendResponseReq) GetToken() string { - if x != nil { - return x.Token +func (m *AddFriendResponseReq) GetToken() string { + if m != nil { + return m.Token } return "" } type SetFriendCommentReq struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Uid string `protobuf:"bytes,1,opt,name=uid,proto3" json:"uid,omitempty"` - OperationID string `protobuf:"bytes,2,opt,name=operationID,proto3" json:"operationID,omitempty"` - Comment string `protobuf:"bytes,3,opt,name=comment,proto3" json:"comment,omitempty"` - Token string `protobuf:"bytes,4,opt,name=token,proto3" json:"token,omitempty"` + Uid string `protobuf:"bytes,1,opt,name=uid" json:"uid,omitempty"` + OperationID string `protobuf:"bytes,2,opt,name=operationID" json:"operationID,omitempty"` + Comment string `protobuf:"bytes,3,opt,name=comment" json:"comment,omitempty"` + Token string `protobuf:"bytes,4,opt,name=token" json:"token,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *SetFriendCommentReq) Reset() { *m = SetFriendCommentReq{} } +func (m *SetFriendCommentReq) String() string { return proto.CompactTextString(m) } +func (*SetFriendCommentReq) ProtoMessage() {} +func (*SetFriendCommentReq) Descriptor() ([]byte, []int) { + return fileDescriptor_friend_772c0e76721339e5, []int{23} } - -func (x *SetFriendCommentReq) Reset() { - *x = SetFriendCommentReq{} - if protoimpl.UnsafeEnabled { - mi := &file_friend_friend_proto_msgTypes[23] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } +func (m *SetFriendCommentReq) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_SetFriendCommentReq.Unmarshal(m, b) } - -func (x *SetFriendCommentReq) String() string { - return protoimpl.X.MessageStringOf(x) +func (m *SetFriendCommentReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_SetFriendCommentReq.Marshal(b, m, deterministic) } - -func (*SetFriendCommentReq) ProtoMessage() {} - -func (x *SetFriendCommentReq) ProtoReflect() protoreflect.Message { - mi := &file_friend_friend_proto_msgTypes[23] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) +func (dst *SetFriendCommentReq) XXX_Merge(src proto.Message) { + xxx_messageInfo_SetFriendCommentReq.Merge(dst, src) } - -// Deprecated: Use SetFriendCommentReq.ProtoReflect.Descriptor instead. -func (*SetFriendCommentReq) Descriptor() ([]byte, []int) { - return file_friend_friend_proto_rawDescGZIP(), []int{23} -} - -func (x *SetFriendCommentReq) GetUid() string { - if x != nil { - return x.Uid - } - return "" -} - -func (x *SetFriendCommentReq) GetOperationID() string { - if x != nil { - return x.OperationID - } - return "" -} - -func (x *SetFriendCommentReq) GetComment() string { - if x != nil { - return x.Comment - } - return "" -} - -func (x *SetFriendCommentReq) GetToken() string { - if x != nil { - return x.Token - } - return "" -} - -var File_friend_friend_proto protoreflect.FileDescriptor - -var file_friend_friend_proto_rawDesc = []byte{ - 0x0a, 0x13, 0x66, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x2f, 0x66, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x2e, - 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x06, 0x66, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x22, 0x46, 0x0a, - 0x0a, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x12, 0x1c, 0x0a, 0x09, 0x65, - 0x72, 0x72, 0x6f, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, - 0x65, 0x72, 0x72, 0x6f, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x65, 0x72, 0x72, - 0x6f, 0x72, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x65, 0x72, 0x72, - 0x6f, 0x72, 0x4d, 0x73, 0x67, 0x22, 0x5d, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x46, 0x72, 0x69, 0x65, - 0x6e, 0x64, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, - 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x69, 0x64, 0x12, 0x20, 0x0a, 0x0b, - 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x12, 0x14, - 0x0a, 0x05, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x54, - 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0x78, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x46, 0x72, 0x69, 0x65, 0x6e, - 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x12, 0x1c, 0x0a, 0x09, 0x65, 0x72, 0x72, - 0x6f, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x65, 0x72, - 0x72, 0x6f, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x65, 0x72, 0x72, 0x6f, 0x72, - 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x65, 0x72, 0x72, 0x6f, 0x72, - 0x4d, 0x73, 0x67, 0x12, 0x29, 0x0a, 0x04, 0x44, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x15, 0x2e, 0x66, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x2e, 0x47, 0x65, 0x74, 0x46, 0x72, - 0x69, 0x65, 0x6e, 0x64, 0x44, 0x61, 0x74, 0x61, 0x52, 0x04, 0x44, 0x61, 0x74, 0x61, 0x22, 0x91, - 0x02, 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x44, 0x61, 0x74, 0x61, - 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, - 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x69, 0x63, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x04, 0x69, 0x63, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x67, 0x65, - 0x6e, 0x64, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x67, 0x65, 0x6e, 0x64, - 0x65, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x6d, 0x6f, 0x62, 0x69, 0x6c, 0x65, 0x18, 0x05, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x06, 0x6d, 0x6f, 0x62, 0x69, 0x6c, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x62, 0x69, - 0x72, 0x74, 0x68, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x62, 0x69, 0x72, 0x74, 0x68, - 0x12, 0x14, 0x0a, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x12, 0x0e, 0x0a, 0x02, 0x65, 0x78, 0x18, 0x08, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x02, 0x65, 0x78, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, - 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, - 0x12, 0x1a, 0x0a, 0x08, 0x69, 0x73, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x18, 0x0a, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x08, 0x69, 0x73, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x12, 0x24, 0x0a, 0x0d, - 0x69, 0x73, 0x49, 0x6e, 0x42, 0x6c, 0x61, 0x63, 0x6b, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x0b, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x0d, 0x69, 0x73, 0x49, 0x6e, 0x42, 0x6c, 0x61, 0x63, 0x6b, 0x4c, 0x69, - 0x73, 0x74, 0x22, 0x78, 0x0a, 0x0c, 0x41, 0x64, 0x64, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x52, - 0x65, 0x71, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x03, 0x75, 0x69, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x12, 0x14, 0x0a, 0x05, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x1e, 0x0a, 0x0a, - 0x52, 0x65, 0x71, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0a, 0x52, 0x65, 0x71, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x7f, 0x0a, 0x0f, - 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x71, 0x12, - 0x18, 0x0a, 0x07, 0x75, 0x69, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, - 0x52, 0x07, 0x75, 0x69, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x70, 0x65, - 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, - 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x12, 0x14, 0x0a, 0x05, 0x54, - 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x54, 0x6f, 0x6b, 0x65, - 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x55, 0x69, 0x64, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x08, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x55, 0x69, 0x64, 0x22, 0x6c, 0x0a, - 0x10, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x73, - 0x70, 0x12, 0x32, 0x0a, 0x0a, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x12, 0x2e, 0x66, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x2e, 0x43, - 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x52, 0x0a, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, - 0x6e, 0x52, 0x65, 0x73, 0x70, 0x12, 0x24, 0x0a, 0x0d, 0x66, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x55, - 0x69, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0d, 0x66, 0x61, - 0x69, 0x6c, 0x65, 0x64, 0x55, 0x69, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x4b, 0x0a, 0x11, 0x47, - 0x65, 0x74, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x52, 0x65, 0x71, - 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x49, 0x44, 0x12, 0x14, 0x0a, 0x05, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x05, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0x79, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x46, - 0x72, 0x69, 0x65, 0x6e, 0x64, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x52, 0x65, 0x73, 0x70, 0x12, 0x1c, - 0x0a, 0x09, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x09, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x1a, 0x0a, 0x08, - 0x65, 0x72, 0x72, 0x6f, 0x72, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, - 0x65, 0x72, 0x72, 0x6f, 0x72, 0x4d, 0x73, 0x67, 0x12, 0x29, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, - 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x66, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x2e, - 0x41, 0x70, 0x70, 0x6c, 0x79, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x64, - 0x61, 0x74, 0x61, 0x22, 0x87, 0x02, 0x0a, 0x0d, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x55, 0x73, 0x65, - 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x03, 0x75, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x69, - 0x63, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x69, 0x63, 0x6f, 0x6e, 0x12, - 0x16, 0x0a, 0x06, 0x67, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x06, 0x67, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x6d, 0x6f, 0x62, 0x69, 0x6c, - 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x6d, 0x6f, 0x62, 0x69, 0x6c, 0x65, 0x12, - 0x14, 0x0a, 0x05, 0x62, 0x69, 0x72, 0x74, 0x68, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, - 0x62, 0x69, 0x72, 0x74, 0x68, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x18, 0x07, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x12, 0x0e, 0x0a, 0x02, 0x65, - 0x78, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x65, 0x78, 0x12, 0x12, 0x0a, 0x04, 0x66, - 0x6c, 0x61, 0x67, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x66, 0x6c, 0x61, 0x67, 0x12, - 0x1c, 0x0a, 0x09, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x0a, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x09, 0x61, 0x70, 0x70, 0x6c, 0x79, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1e, 0x0a, - 0x0a, 0x72, 0x65, 0x71, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0a, 0x72, 0x65, 0x71, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x22, 0x4a, 0x0a, - 0x10, 0x67, 0x65, 0x74, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, - 0x71, 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x49, 0x44, 0x12, 0x14, 0x0a, 0x05, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x05, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0x73, 0x0a, 0x11, 0x67, 0x65, 0x74, - 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x1c, - 0x0a, 0x09, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x09, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x1a, 0x0a, 0x08, - 0x65, 0x72, 0x72, 0x6f, 0x72, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, - 0x65, 0x72, 0x72, 0x6f, 0x72, 0x4d, 0x73, 0x67, 0x12, 0x24, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, - 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x66, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x2e, - 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0xf0, - 0x01, 0x0a, 0x08, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x10, 0x0a, 0x03, 0x75, - 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x69, 0x64, 0x12, 0x12, 0x0a, - 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, - 0x65, 0x12, 0x12, 0x0a, 0x04, 0x69, 0x63, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x04, 0x69, 0x63, 0x6f, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x67, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x67, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x12, 0x16, 0x0a, - 0x06, 0x6d, 0x6f, 0x62, 0x69, 0x6c, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x6d, - 0x6f, 0x62, 0x69, 0x6c, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x62, 0x69, 0x72, 0x74, 0x68, 0x18, 0x06, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x62, 0x69, 0x72, 0x74, 0x68, 0x12, 0x14, 0x0a, 0x05, 0x65, - 0x6d, 0x61, 0x69, 0x6c, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x65, 0x6d, 0x61, 0x69, - 0x6c, 0x12, 0x0e, 0x0a, 0x02, 0x65, 0x78, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x65, - 0x78, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x09, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x24, 0x0a, 0x0d, 0x69, - 0x73, 0x49, 0x6e, 0x42, 0x6c, 0x61, 0x63, 0x6b, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x0a, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x0d, 0x69, 0x73, 0x49, 0x6e, 0x42, 0x6c, 0x61, 0x63, 0x6b, 0x4c, 0x69, 0x73, - 0x74, 0x22, 0x77, 0x0a, 0x0f, 0x41, 0x64, 0x64, 0x42, 0x6c, 0x61, 0x63, 0x6b, 0x6c, 0x69, 0x73, - 0x74, 0x52, 0x65, 0x71, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x03, 0x75, 0x69, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x4f, 0x70, 0x65, - 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x12, 0x14, 0x0a, 0x05, 0x54, 0x6f, 0x6b, 0x65, - 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x1a, - 0x0a, 0x08, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x55, 0x69, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x08, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x55, 0x69, 0x64, 0x22, 0x5e, 0x0a, 0x12, 0x52, 0x65, - 0x6d, 0x6f, 0x76, 0x65, 0x42, 0x6c, 0x61, 0x63, 0x6b, 0x6c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, - 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, - 0x69, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, - 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x49, 0x44, 0x12, 0x14, 0x0a, 0x05, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x05, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0x49, 0x0a, 0x0f, 0x47, 0x65, - 0x74, 0x42, 0x6c, 0x61, 0x63, 0x6b, 0x6c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x12, 0x20, 0x0a, - 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x12, - 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, - 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0x72, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x42, 0x6c, 0x61, 0x63, - 0x6b, 0x6c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x1c, 0x0a, 0x09, 0x65, 0x72, 0x72, - 0x6f, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x65, 0x72, - 0x72, 0x6f, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x65, 0x72, 0x72, 0x6f, 0x72, - 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x65, 0x72, 0x72, 0x6f, 0x72, - 0x4d, 0x73, 0x67, 0x12, 0x24, 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x10, 0x2e, 0x66, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x49, - 0x6e, 0x66, 0x6f, 0x52, 0x04, 0x64, 0x61, 0x74, 0x61, 0x22, 0x65, 0x0a, 0x0b, 0x49, 0x73, 0x46, - 0x72, 0x69, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x71, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x6b, 0x65, - 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x1e, - 0x0a, 0x0a, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x55, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0a, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x55, 0x69, 0x64, 0x12, 0x20, - 0x0a, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, - 0x22, 0x64, 0x0a, 0x0c, 0x49, 0x73, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x73, 0x70, - 0x12, 0x1c, 0x0a, 0x09, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x09, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x1a, - 0x0a, 0x08, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x08, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x4d, 0x73, 0x67, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x68, - 0x69, 0x70, 0x54, 0x79, 0x70, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x73, 0x68, - 0x69, 0x70, 0x54, 0x79, 0x70, 0x65, 0x22, 0x6e, 0x0a, 0x10, 0x49, 0x73, 0x49, 0x6e, 0x42, 0x6c, - 0x61, 0x63, 0x6b, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x65, - 0x6e, 0x64, 0x55, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x73, 0x65, 0x6e, - 0x64, 0x55, 0x69, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x55, - 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x72, 0x65, 0x63, 0x65, 0x69, 0x76, - 0x65, 0x55, 0x69, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x22, 0x69, 0x0a, 0x11, 0x49, 0x73, 0x49, 0x6e, 0x42, 0x6c, - 0x61, 0x63, 0x6b, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x1c, 0x0a, 0x09, 0x65, - 0x72, 0x72, 0x6f, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, - 0x65, 0x72, 0x72, 0x6f, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x65, 0x72, 0x72, - 0x6f, 0x72, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x65, 0x72, 0x72, - 0x6f, 0x72, 0x4d, 0x73, 0x67, 0x12, 0x1a, 0x0a, 0x08, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x08, 0x52, 0x08, 0x72, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x22, 0x5b, 0x0a, 0x0f, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x46, 0x72, 0x69, 0x65, 0x6e, - 0x64, 0x52, 0x65, 0x71, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x03, 0x75, 0x69, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x4f, 0x70, 0x65, - 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x12, 0x14, 0x0a, 0x05, 0x54, 0x6f, 0x6b, 0x65, - 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0x74, - 0x0a, 0x14, 0x41, 0x64, 0x64, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x52, 0x65, 0x71, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x66, 0x6c, 0x61, 0x67, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x66, 0x6c, 0x61, 0x67, 0x12, 0x20, 0x0a, 0x0b, - 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x12, 0x14, - 0x0a, 0x05, 0x54, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x54, - 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0x79, 0x0a, 0x13, 0x53, 0x65, 0x74, 0x46, 0x72, 0x69, 0x65, 0x6e, - 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x12, 0x10, 0x0a, 0x03, 0x75, - 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x69, 0x64, 0x12, 0x20, 0x0a, - 0x0b, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0b, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x12, - 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x07, 0x63, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x6b, - 0x65, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x32, - 0xb1, 0x07, 0x0a, 0x06, 0x66, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x12, 0x46, 0x0a, 0x0e, 0x67, 0x65, - 0x74, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x19, 0x2e, 0x66, - 0x72, 0x69, 0x65, 0x6e, 0x64, 0x2e, 0x47, 0x65, 0x74, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x73, - 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x1a, 0x19, 0x2e, 0x66, 0x72, 0x69, 0x65, 0x6e, 0x64, - 0x2e, 0x47, 0x65, 0x74, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, - 0x73, 0x70, 0x12, 0x35, 0x0a, 0x09, 0x61, 0x64, 0x64, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x12, - 0x14, 0x2e, 0x66, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x2e, 0x41, 0x64, 0x64, 0x46, 0x72, 0x69, 0x65, - 0x6e, 0x64, 0x52, 0x65, 0x71, 0x1a, 0x12, 0x2e, 0x66, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x2e, 0x43, - 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x12, 0x4b, 0x0a, 0x12, 0x67, 0x65, 0x74, - 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x4c, 0x69, 0x73, 0x74, 0x12, - 0x19, 0x2e, 0x66, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x2e, 0x47, 0x65, 0x74, 0x46, 0x72, 0x69, 0x65, - 0x6e, 0x64, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x52, 0x65, 0x71, 0x1a, 0x1a, 0x2e, 0x66, 0x72, 0x69, - 0x65, 0x6e, 0x64, 0x2e, 0x47, 0x65, 0x74, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x41, 0x70, 0x70, - 0x6c, 0x79, 0x52, 0x65, 0x73, 0x70, 0x12, 0x49, 0x0a, 0x10, 0x67, 0x65, 0x74, 0x53, 0x65, 0x6c, - 0x66, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x19, 0x2e, 0x66, 0x72, 0x69, - 0x65, 0x6e, 0x64, 0x2e, 0x47, 0x65, 0x74, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x41, 0x70, 0x70, - 0x6c, 0x79, 0x52, 0x65, 0x71, 0x1a, 0x1a, 0x2e, 0x66, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x2e, 0x47, - 0x65, 0x74, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x41, 0x70, 0x70, 0x6c, 0x79, 0x52, 0x65, 0x73, - 0x70, 0x12, 0x44, 0x0a, 0x0d, 0x67, 0x65, 0x74, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x4c, 0x69, - 0x73, 0x74, 0x12, 0x18, 0x2e, 0x66, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x2e, 0x67, 0x65, 0x74, 0x46, - 0x72, 0x69, 0x65, 0x6e, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x19, 0x2e, 0x66, - 0x72, 0x69, 0x65, 0x6e, 0x64, 0x2e, 0x67, 0x65, 0x74, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x4c, - 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x3b, 0x0a, 0x0c, 0x61, 0x64, 0x64, 0x42, 0x6c, - 0x61, 0x63, 0x6b, 0x6c, 0x69, 0x73, 0x74, 0x12, 0x17, 0x2e, 0x66, 0x72, 0x69, 0x65, 0x6e, 0x64, - 0x2e, 0x41, 0x64, 0x64, 0x42, 0x6c, 0x61, 0x63, 0x6b, 0x6c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, - 0x1a, 0x12, 0x2e, 0x66, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, - 0x52, 0x65, 0x73, 0x70, 0x12, 0x41, 0x0a, 0x0f, 0x72, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x42, 0x6c, - 0x61, 0x63, 0x6b, 0x6c, 0x69, 0x73, 0x74, 0x12, 0x1a, 0x2e, 0x66, 0x72, 0x69, 0x65, 0x6e, 0x64, - 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x42, 0x6c, 0x61, 0x63, 0x6b, 0x6c, 0x69, 0x73, 0x74, - 0x52, 0x65, 0x71, 0x1a, 0x12, 0x2e, 0x66, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x2e, 0x43, 0x6f, 0x6d, - 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x12, 0x35, 0x0a, 0x08, 0x69, 0x73, 0x46, 0x72, 0x69, - 0x65, 0x6e, 0x64, 0x12, 0x13, 0x2e, 0x66, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x2e, 0x49, 0x73, 0x46, - 0x72, 0x69, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x71, 0x1a, 0x14, 0x2e, 0x66, 0x72, 0x69, 0x65, 0x6e, - 0x64, 0x2e, 0x49, 0x73, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x73, 0x70, 0x12, 0x44, - 0x0a, 0x0d, 0x69, 0x73, 0x49, 0x6e, 0x42, 0x6c, 0x61, 0x63, 0x6b, 0x4c, 0x69, 0x73, 0x74, 0x12, - 0x18, 0x2e, 0x66, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x2e, 0x49, 0x73, 0x49, 0x6e, 0x42, 0x6c, 0x61, - 0x63, 0x6b, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x19, 0x2e, 0x66, 0x72, 0x69, 0x65, - 0x6e, 0x64, 0x2e, 0x49, 0x73, 0x49, 0x6e, 0x42, 0x6c, 0x61, 0x63, 0x6b, 0x4c, 0x69, 0x73, 0x74, - 0x52, 0x65, 0x73, 0x70, 0x12, 0x41, 0x0a, 0x0c, 0x67, 0x65, 0x74, 0x42, 0x6c, 0x61, 0x63, 0x6b, - 0x6c, 0x69, 0x73, 0x74, 0x12, 0x17, 0x2e, 0x66, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x2e, 0x47, 0x65, - 0x74, 0x42, 0x6c, 0x61, 0x63, 0x6b, 0x6c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x18, 0x2e, - 0x66, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x2e, 0x47, 0x65, 0x74, 0x42, 0x6c, 0x61, 0x63, 0x6b, 0x6c, - 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x3b, 0x0a, 0x0c, 0x64, 0x65, 0x6c, 0x65, 0x74, - 0x65, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x12, 0x17, 0x2e, 0x66, 0x72, 0x69, 0x65, 0x6e, 0x64, - 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x71, - 0x1a, 0x12, 0x2e, 0x66, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, - 0x52, 0x65, 0x73, 0x70, 0x12, 0x45, 0x0a, 0x11, 0x61, 0x64, 0x64, 0x46, 0x72, 0x69, 0x65, 0x6e, - 0x64, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x1c, 0x2e, 0x66, 0x72, 0x69, 0x65, - 0x6e, 0x64, 0x2e, 0x41, 0x64, 0x64, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x12, 0x2e, 0x66, 0x72, 0x69, 0x65, 0x6e, 0x64, - 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x12, 0x43, 0x0a, 0x10, 0x73, - 0x65, 0x74, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x12, - 0x1b, 0x2e, 0x66, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x2e, 0x53, 0x65, 0x74, 0x46, 0x72, 0x69, 0x65, - 0x6e, 0x64, 0x43, 0x6f, 0x6d, 0x6d, 0x65, 0x6e, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x12, 0x2e, 0x66, - 0x72, 0x69, 0x65, 0x6e, 0x64, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, - 0x12, 0x41, 0x0a, 0x0c, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, - 0x12, 0x17, 0x2e, 0x66, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x2e, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, - 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x71, 0x1a, 0x18, 0x2e, 0x66, 0x72, 0x69, 0x65, - 0x6e, 0x64, 0x2e, 0x49, 0x6d, 0x70, 0x6f, 0x72, 0x74, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x52, - 0x65, 0x73, 0x70, 0x42, 0x11, 0x5a, 0x0f, 0x2e, 0x2f, 0x66, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x3b, - 0x66, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, -} - -var ( - file_friend_friend_proto_rawDescOnce sync.Once - file_friend_friend_proto_rawDescData = file_friend_friend_proto_rawDesc -) - -func file_friend_friend_proto_rawDescGZIP() []byte { - file_friend_friend_proto_rawDescOnce.Do(func() { - file_friend_friend_proto_rawDescData = protoimpl.X.CompressGZIP(file_friend_friend_proto_rawDescData) - }) - return file_friend_friend_proto_rawDescData -} - -var file_friend_friend_proto_msgTypes = make([]protoimpl.MessageInfo, 24) -var file_friend_friend_proto_goTypes = []interface{}{ - (*CommonResp)(nil), // 0: friend.CommonResp - (*GetFriendsInfoReq)(nil), // 1: friend.GetFriendsInfoReq - (*GetFriendInfoResp)(nil), // 2: friend.GetFriendInfoResp - (*GetFriendData)(nil), // 3: friend.GetFriendData - (*AddFriendReq)(nil), // 4: friend.AddFriendReq - (*ImportFriendReq)(nil), // 5: friend.ImportFriendReq - (*ImportFriendResp)(nil), // 6: friend.ImportFriendResp - (*GetFriendApplyReq)(nil), // 7: friend.GetFriendApplyReq - (*GetFriendApplyResp)(nil), // 8: friend.GetFriendApplyResp - (*ApplyUserInfo)(nil), // 9: friend.ApplyUserInfo - (*GetFriendListReq)(nil), // 10: friend.getFriendListReq - (*GetFriendListResp)(nil), // 11: friend.getFriendListResp - (*UserInfo)(nil), // 12: friend.UserInfo - (*AddBlacklistReq)(nil), // 13: friend.AddBlacklistReq - (*RemoveBlacklistReq)(nil), // 14: friend.RemoveBlacklistReq - (*GetBlacklistReq)(nil), // 15: friend.GetBlacklistReq - (*GetBlacklistResp)(nil), // 16: friend.GetBlacklistResp - (*IsFriendReq)(nil), // 17: friend.IsFriendReq - (*IsFriendResp)(nil), // 18: friend.IsFriendResp - (*IsInBlackListReq)(nil), // 19: friend.IsInBlackListReq - (*IsInBlackListResp)(nil), // 20: friend.IsInBlackListResp - (*DeleteFriendReq)(nil), // 21: friend.DeleteFriendReq - (*AddFriendResponseReq)(nil), // 22: friend.AddFriendResponseReq - (*SetFriendCommentReq)(nil), // 23: friend.SetFriendCommentReq -} -var file_friend_friend_proto_depIdxs = []int32{ - 3, // 0: friend.GetFriendInfoResp.Data:type_name -> friend.GetFriendData - 0, // 1: friend.ImportFriendResp.commonResp:type_name -> friend.CommonResp - 9, // 2: friend.GetFriendApplyResp.data:type_name -> friend.ApplyUserInfo - 12, // 3: friend.getFriendListResp.data:type_name -> friend.UserInfo - 12, // 4: friend.GetBlacklistResp.data:type_name -> friend.UserInfo - 1, // 5: friend.friend.getFriendsInfo:input_type -> friend.GetFriendsInfoReq - 4, // 6: friend.friend.addFriend:input_type -> friend.AddFriendReq - 7, // 7: friend.friend.getFriendApplyList:input_type -> friend.GetFriendApplyReq - 7, // 8: friend.friend.getSelfApplyList:input_type -> friend.GetFriendApplyReq - 10, // 9: friend.friend.getFriendList:input_type -> friend.getFriendListReq - 13, // 10: friend.friend.addBlacklist:input_type -> friend.AddBlacklistReq - 14, // 11: friend.friend.removeBlacklist:input_type -> friend.RemoveBlacklistReq - 17, // 12: friend.friend.isFriend:input_type -> friend.IsFriendReq - 19, // 13: friend.friend.isInBlackList:input_type -> friend.IsInBlackListReq - 15, // 14: friend.friend.getBlacklist:input_type -> friend.GetBlacklistReq - 21, // 15: friend.friend.deleteFriend:input_type -> friend.DeleteFriendReq - 22, // 16: friend.friend.addFriendResponse:input_type -> friend.AddFriendResponseReq - 23, // 17: friend.friend.setFriendComment:input_type -> friend.SetFriendCommentReq - 5, // 18: friend.friend.ImportFriend:input_type -> friend.ImportFriendReq - 2, // 19: friend.friend.getFriendsInfo:output_type -> friend.GetFriendInfoResp - 0, // 20: friend.friend.addFriend:output_type -> friend.CommonResp - 8, // 21: friend.friend.getFriendApplyList:output_type -> friend.GetFriendApplyResp - 8, // 22: friend.friend.getSelfApplyList:output_type -> friend.GetFriendApplyResp - 11, // 23: friend.friend.getFriendList:output_type -> friend.getFriendListResp - 0, // 24: friend.friend.addBlacklist:output_type -> friend.CommonResp - 0, // 25: friend.friend.removeBlacklist:output_type -> friend.CommonResp - 18, // 26: friend.friend.isFriend:output_type -> friend.IsFriendResp - 20, // 27: friend.friend.isInBlackList:output_type -> friend.IsInBlackListResp - 16, // 28: friend.friend.getBlacklist:output_type -> friend.GetBlacklistResp - 0, // 29: friend.friend.deleteFriend:output_type -> friend.CommonResp - 0, // 30: friend.friend.addFriendResponse:output_type -> friend.CommonResp - 0, // 31: friend.friend.setFriendComment:output_type -> friend.CommonResp - 6, // 32: friend.friend.ImportFriend:output_type -> friend.ImportFriendResp - 19, // [19:33] is the sub-list for method output_type - 5, // [5:19] is the sub-list for method input_type - 5, // [5:5] is the sub-list for extension type_name - 5, // [5:5] is the sub-list for extension extendee - 0, // [0:5] is the sub-list for field type_name -} - -func init() { file_friend_friend_proto_init() } -func file_friend_friend_proto_init() { - if File_friend_friend_proto != nil { - return - } - if !protoimpl.UnsafeEnabled { - file_friend_friend_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CommonResp); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_friend_friend_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetFriendsInfoReq); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_friend_friend_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetFriendInfoResp); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_friend_friend_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetFriendData); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_friend_friend_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*AddFriendReq); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_friend_friend_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ImportFriendReq); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_friend_friend_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ImportFriendResp); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_friend_friend_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetFriendApplyReq); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_friend_friend_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetFriendApplyResp); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_friend_friend_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ApplyUserInfo); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_friend_friend_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetFriendListReq); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_friend_friend_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetFriendListResp); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_friend_friend_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*UserInfo); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_friend_friend_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*AddBlacklistReq); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_friend_friend_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*RemoveBlacklistReq); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_friend_friend_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetBlacklistReq); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_friend_friend_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetBlacklistResp); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_friend_friend_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*IsFriendReq); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_friend_friend_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*IsFriendResp); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_friend_friend_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*IsInBlackListReq); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_friend_friend_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*IsInBlackListResp); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_friend_friend_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DeleteFriendReq); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_friend_friend_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*AddFriendResponseReq); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_friend_friend_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SetFriendCommentReq); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - } - type x struct{} - out := protoimpl.TypeBuilder{ - File: protoimpl.DescBuilder{ - GoPackagePath: reflect.TypeOf(x{}).PkgPath(), - RawDescriptor: file_friend_friend_proto_rawDesc, - NumEnums: 0, - NumMessages: 24, - NumExtensions: 0, - NumServices: 1, - }, - GoTypes: file_friend_friend_proto_goTypes, - DependencyIndexes: file_friend_friend_proto_depIdxs, - MessageInfos: file_friend_friend_proto_msgTypes, - }.Build() - File_friend_friend_proto = out.File - file_friend_friend_proto_rawDesc = nil - file_friend_friend_proto_goTypes = nil - file_friend_friend_proto_depIdxs = nil +func (m *SetFriendCommentReq) XXX_Size() int { + return xxx_messageInfo_SetFriendCommentReq.Size(m) +} +func (m *SetFriendCommentReq) XXX_DiscardUnknown() { + xxx_messageInfo_SetFriendCommentReq.DiscardUnknown(m) +} + +var xxx_messageInfo_SetFriendCommentReq proto.InternalMessageInfo + +func (m *SetFriendCommentReq) GetUid() string { + if m != nil { + return m.Uid + } + return "" +} + +func (m *SetFriendCommentReq) GetOperationID() string { + if m != nil { + return m.OperationID + } + return "" +} + +func (m *SetFriendCommentReq) GetComment() string { + if m != nil { + return m.Comment + } + return "" +} + +func (m *SetFriendCommentReq) GetToken() string { + if m != nil { + return m.Token + } + return "" +} + +func init() { + proto.RegisterType((*CommonResp)(nil), "friend.CommonResp") + proto.RegisterType((*GetFriendsInfoReq)(nil), "friend.GetFriendsInfoReq") + proto.RegisterType((*GetFriendInfoResp)(nil), "friend.GetFriendInfoResp") + proto.RegisterType((*GetFriendData)(nil), "friend.GetFriendData") + proto.RegisterType((*AddFriendReq)(nil), "friend.AddFriendReq") + proto.RegisterType((*ImportFriendReq)(nil), "friend.ImportFriendReq") + proto.RegisterType((*ImportFriendResp)(nil), "friend.ImportFriendResp") + proto.RegisterType((*GetFriendApplyReq)(nil), "friend.GetFriendApplyReq") + proto.RegisterType((*GetFriendApplyResp)(nil), "friend.GetFriendApplyResp") + proto.RegisterType((*ApplyUserInfo)(nil), "friend.ApplyUserInfo") + proto.RegisterType((*GetFriendListReq)(nil), "friend.getFriendListReq") + proto.RegisterType((*GetFriendListResp)(nil), "friend.getFriendListResp") + proto.RegisterType((*UserInfo)(nil), "friend.UserInfo") + proto.RegisterType((*AddBlacklistReq)(nil), "friend.AddBlacklistReq") + proto.RegisterType((*RemoveBlacklistReq)(nil), "friend.RemoveBlacklistReq") + proto.RegisterType((*GetBlacklistReq)(nil), "friend.GetBlacklistReq") + proto.RegisterType((*GetBlacklistResp)(nil), "friend.GetBlacklistResp") + proto.RegisterType((*IsFriendReq)(nil), "friend.IsFriendReq") + proto.RegisterType((*IsFriendResp)(nil), "friend.IsFriendResp") + proto.RegisterType((*IsInBlackListReq)(nil), "friend.IsInBlackListReq") + proto.RegisterType((*IsInBlackListResp)(nil), "friend.IsInBlackListResp") + proto.RegisterType((*DeleteFriendReq)(nil), "friend.DeleteFriendReq") + proto.RegisterType((*AddFriendResponseReq)(nil), "friend.AddFriendResponseReq") + proto.RegisterType((*SetFriendCommentReq)(nil), "friend.SetFriendCommentReq") +} + +func init() { proto.RegisterFile("friend/friend.proto", fileDescriptor_friend_772c0e76721339e5) } + +var fileDescriptor_friend_772c0e76721339e5 = []byte{ + // 1011 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x57, 0xcd, 0x6e, 0xdb, 0x46, + 0x10, 0x86, 0x48, 0xc9, 0x96, 0x46, 0x52, 0x24, 0xaf, 0xdd, 0x96, 0x65, 0x83, 0x42, 0x20, 0x72, + 0x48, 0x2f, 0x29, 0xe0, 0x22, 0xa7, 0x9c, 0x14, 0xbb, 0x0e, 0xd4, 0x34, 0x08, 0xc0, 0xd8, 0x97, + 0x16, 0x2d, 0x40, 0x8b, 0x23, 0x85, 0x08, 0xff, 0xc2, 0x65, 0x12, 0xfb, 0xd4, 0x63, 0xcf, 0x7d, + 0x94, 0xbe, 0x59, 0x1f, 0xa1, 0xd8, 0x59, 0x92, 0xbb, 0xfc, 0x71, 0x1a, 0x54, 0x4e, 0x72, 0x32, + 0x67, 0x76, 0x3d, 0x3b, 0xdf, 0xcc, 0x7c, 0x33, 0x23, 0x38, 0xdc, 0x64, 0x01, 0xc6, 0xfe, 0xf7, + 0xf2, 0xcf, 0x83, 0x34, 0x4b, 0xf2, 0x84, 0xed, 0x49, 0xc9, 0x39, 0x03, 0x38, 0x49, 0xa2, 0x28, + 0x89, 0x5d, 0xe4, 0x29, 0xbb, 0x0b, 0x23, 0xcc, 0xb2, 0x24, 0x3b, 0x49, 0x7c, 0xb4, 0x7a, 0x8b, + 0xde, 0xfd, 0x81, 0xab, 0x14, 0xcc, 0x86, 0x21, 0x09, 0xcf, 0xf8, 0xd6, 0x32, 0x16, 0xbd, 0xfb, + 0x23, 0xb7, 0x92, 0x9d, 0xdf, 0xe0, 0xe0, 0x09, 0xe6, 0x67, 0x64, 0x94, 0xaf, 0xe2, 0x4d, 0xe2, + 0xe2, 0x6b, 0x36, 0x07, 0xf3, 0x4d, 0xe0, 0x93, 0xa1, 0x91, 0x2b, 0x3e, 0xd9, 0x02, 0xc6, 0xcf, + 0x53, 0xcc, 0xbc, 0x3c, 0x48, 0xe2, 0xd5, 0x69, 0x61, 0x45, 0x57, 0xb1, 0x23, 0x18, 0x9c, 0x27, + 0xaf, 0x30, 0xb6, 0x4c, 0x3a, 0x93, 0x82, 0x73, 0xa5, 0x99, 0x97, 0xd6, 0x77, 0xf1, 0x96, 0x7d, + 0x07, 0xfd, 0x53, 0x2f, 0xf7, 0xe8, 0x8d, 0xf1, 0xf1, 0x17, 0x0f, 0x8a, 0xd0, 0x54, 0x4f, 0x88, + 0x43, 0x97, 0xae, 0x38, 0x7f, 0x19, 0x30, 0xad, 0xe9, 0x3b, 0x50, 0x31, 0xe8, 0x07, 0xeb, 0x24, + 0x2e, 0x9e, 0xa1, 0x6f, 0xa1, 0x8b, 0xbd, 0x08, 0x0b, 0x18, 0xf4, 0xcd, 0xbe, 0x84, 0xbd, 0x2d, + 0xc6, 0x3e, 0x66, 0x56, 0x9f, 0xbc, 0x2d, 0x24, 0xa1, 0x8f, 0x92, 0xcb, 0x20, 0x44, 0x6b, 0x40, + 0xb7, 0x0b, 0x49, 0xc4, 0xe2, 0x32, 0xc8, 0xf2, 0x97, 0xd6, 0x9e, 0x8c, 0x05, 0x09, 0x42, 0x8b, + 0x91, 0x17, 0x84, 0xd6, 0xbe, 0xd4, 0x92, 0xc0, 0xee, 0x80, 0x81, 0x57, 0xd6, 0x90, 0x54, 0x06, + 0x5e, 0x31, 0x0b, 0xf6, 0xd7, 0x49, 0x14, 0x61, 0x9c, 0x5b, 0x23, 0x52, 0x96, 0xa2, 0x08, 0x4c, + 0xc0, 0x25, 0x1e, 0x0b, 0xc8, 0x8f, 0x4a, 0x66, 0xf7, 0x60, 0x1a, 0xf0, 0x55, 0xfc, 0x38, 0xf4, + 0xd6, 0xaf, 0x7e, 0x0e, 0x78, 0x6e, 0x8d, 0xe9, 0x42, 0x5d, 0xe9, 0x5c, 0xc1, 0x64, 0xe9, 0xfb, + 0xf2, 0x5f, 0x6e, 0x35, 0xcf, 0xec, 0x5b, 0x00, 0x17, 0x5f, 0x3f, 0x43, 0xce, 0xbd, 0x2d, 0x52, + 0x94, 0x46, 0xae, 0xa6, 0x71, 0xfe, 0x80, 0xd9, 0x2a, 0x4a, 0x93, 0x2c, 0x57, 0x8f, 0x5b, 0xb0, + 0xff, 0x26, 0xf0, 0xc9, 0xd9, 0xde, 0xc2, 0x14, 0x40, 0x0b, 0xf1, 0x7f, 0x3b, 0x61, 0xc3, 0xf0, + 0xf9, 0xbb, 0x18, 0xb3, 0x8b, 0xc0, 0x2f, 0x5c, 0xa8, 0x64, 0x27, 0x84, 0x79, 0xdd, 0x01, 0x9e, + 0xb2, 0x63, 0x80, 0x75, 0xc5, 0x21, 0x8a, 0xc2, 0xf8, 0x98, 0x95, 0x35, 0xa5, 0xd8, 0xe5, 0x6a, + 0xb7, 0x44, 0xa0, 0x37, 0x5e, 0x10, 0xa2, 0x7f, 0x51, 0xf8, 0x6e, 0x90, 0xef, 0x75, 0xa5, 0xf3, + 0x54, 0x2b, 0xfb, 0x65, 0x9a, 0x86, 0xd7, 0x02, 0x70, 0x03, 0x56, 0xef, 0x3d, 0xb0, 0x0c, 0x9d, + 0x43, 0xd7, 0xc0, 0x9a, 0xc6, 0x76, 0x25, 0x91, 0x2f, 0x48, 0xd4, 0x5f, 0x98, 0x3a, 0x89, 0xc8, + 0xf4, 0x05, 0xc7, 0x8c, 0x78, 0x4a, 0x57, 0x9c, 0x3f, 0x0d, 0x98, 0xd6, 0xf4, 0xdd, 0x24, 0x22, + 0xc2, 0x18, 0x1a, 0x61, 0x4a, 0x62, 0x99, 0x1a, 0xb1, 0x3e, 0x25, 0x89, 0x18, 0xf4, 0x37, 0xa1, + 0xb7, 0x25, 0x06, 0x0d, 0x5c, 0xfa, 0x16, 0x01, 0xf3, 0x04, 0x94, 0xf3, 0x20, 0x42, 0xe2, 0xcf, + 0xc8, 0x55, 0x0a, 0x51, 0xc0, 0x99, 0x2a, 0xe0, 0xb1, 0x2c, 0x60, 0xa5, 0x71, 0x7e, 0x82, 0xf9, + 0xb6, 0x4c, 0x82, 0x48, 0xf1, 0x2e, 0x09, 0xe5, 0x70, 0xd0, 0xb0, 0xb5, 0x53, 0x3e, 0xef, 0x15, + 0xf9, 0x34, 0x29, 0x9f, 0xf3, 0x32, 0x9f, 0x8d, 0x54, 0xfe, 0xd3, 0x83, 0xe1, 0x07, 0x64, 0xd1, + 0xec, 0xc8, 0xa2, 0xf1, 0x99, 0xb2, 0x78, 0x73, 0x2b, 0x6c, 0xb5, 0x3b, 0xe8, 0x6a, 0x77, 0xef, + 0x60, 0xb6, 0xf4, 0x7d, 0x92, 0xc3, 0x22, 0x65, 0xb7, 0xd7, 0xf1, 0xde, 0xd7, 0x6c, 0x7e, 0x07, + 0xe6, 0x62, 0x94, 0xbc, 0xc5, 0x8f, 0xf3, 0xb6, 0xb3, 0x82, 0xd9, 0x13, 0xcc, 0x6b, 0xc6, 0x3f, + 0xa8, 0x16, 0x73, 0xbd, 0x16, 0x49, 0x70, 0x32, 0x98, 0xd7, 0x4d, 0x7d, 0x82, 0x52, 0x44, 0x18, + 0xaf, 0xb8, 0x1a, 0x04, 0x95, 0x63, 0x3d, 0xcd, 0x31, 0x49, 0xc8, 0x35, 0x06, 0x6f, 0x51, 0x44, + 0xd8, 0x28, 0x09, 0x59, 0x6a, 0x9a, 0x80, 0xcd, 0x16, 0x60, 0xc7, 0x87, 0x89, 0x7a, 0x66, 0x27, + 0x58, 0x36, 0x0c, 0xf9, 0xcb, 0x20, 0x3d, 0xbf, 0x4e, 0x25, 0x41, 0x06, 0x6e, 0x25, 0x3b, 0x31, + 0xcc, 0x57, 0x7a, 0xd5, 0x15, 0xa3, 0x8d, 0x63, 0x2c, 0xa6, 0x41, 0x81, 0xa9, 0x14, 0x6f, 0x01, + 0x55, 0x00, 0x07, 0x8d, 0xf7, 0x76, 0x85, 0x96, 0x21, 0x4f, 0x93, 0x98, 0x4b, 0x68, 0x43, 0xb7, + 0x92, 0x9d, 0x5f, 0x61, 0x76, 0x8a, 0x21, 0xe6, 0xf8, 0x11, 0x36, 0x06, 0x27, 0x87, 0x23, 0x6d, + 0x17, 0x91, 0x2f, 0x76, 0xbf, 0x50, 0x36, 0x73, 0x43, 0x6b, 0xe6, 0xff, 0x19, 0x27, 0xf5, 0x6a, + 0xbf, 0x3e, 0x4b, 0x0f, 0x5f, 0x94, 0xad, 0xf7, 0x44, 0x36, 0x93, 0x1b, 0x61, 0x25, 0x6d, 0x58, + 0x9a, 0x4a, 0xef, 0x4e, 0x66, 0xbd, 0x3b, 0x55, 0x05, 0xdd, 0xd7, 0x0a, 0xfa, 0xf8, 0xef, 0x7d, + 0x28, 0x96, 0x77, 0x76, 0x06, 0x77, 0xb6, 0xb5, 0xa5, 0x9b, 0x7d, 0xdd, 0x5a, 0x65, 0xcb, 0x65, + 0xdc, 0x6e, 0x1f, 0x55, 0x8b, 0xf4, 0x43, 0x18, 0x79, 0x65, 0x0c, 0xd9, 0x51, 0x35, 0xc8, 0xb5, + 0x15, 0xcf, 0xee, 0xd8, 0x67, 0xd8, 0x53, 0x60, 0xdb, 0xda, 0x42, 0x41, 0x5b, 0x57, 0xfb, 0x9d, + 0x72, 0x73, 0xb1, 0xed, 0x9b, 0x8e, 0x78, 0xca, 0x56, 0x34, 0x18, 0x5f, 0x60, 0xb8, 0xd9, 0xd9, + 0xd4, 0x29, 0x4c, 0x6b, 0x73, 0x91, 0x59, 0xe5, 0xe5, 0xe6, 0xe8, 0x55, 0x41, 0x69, 0x0f, 0xd2, + 0x47, 0x30, 0xf1, 0xb4, 0xae, 0xcf, 0xbe, 0xd2, 0xe2, 0xa2, 0xb7, 0xcc, 0xce, 0xd0, 0x2c, 0x61, + 0x96, 0xd5, 0x3b, 0x37, 0xab, 0x3c, 0x6e, 0xb7, 0xf4, 0x4e, 0x13, 0x0f, 0xd5, 0x9a, 0xce, 0x0e, + 0xcb, 0x73, 0xad, 0xdf, 0xd9, 0x47, 0x6d, 0xa5, 0x04, 0x5f, 0x9b, 0x5e, 0x0a, 0x7c, 0xb3, 0xbd, + 0x28, 0xf0, 0xed, 0x46, 0xb0, 0x84, 0xc9, 0x56, 0x6b, 0xe7, 0x0a, 0x7c, 0x63, 0x5e, 0xd8, 0x56, + 0xf7, 0x81, 0x8c, 0x9f, 0xaf, 0xb1, 0x5e, 0x99, 0x68, 0xf4, 0x82, 0x4e, 0xf0, 0x3f, 0xc2, 0x81, + 0xd7, 0x64, 0x35, 0xbb, 0xdb, 0x51, 0x99, 0x15, 0xe1, 0x3b, 0xcd, 0x9c, 0xc0, 0x9c, 0x37, 0x68, + 0xca, 0xbe, 0x29, 0xef, 0x75, 0x10, 0xf8, 0x86, 0x5c, 0x4e, 0xf4, 0x95, 0x5f, 0x01, 0x69, 0xfc, + 0x12, 0x51, 0xb1, 0x68, 0xfe, 0x42, 0x78, 0x3c, 0xfb, 0x65, 0x2a, 0x8f, 0x1e, 0xc9, 0x3f, 0x97, + 0x7b, 0xf4, 0x2b, 0xfc, 0x87, 0x7f, 0x03, 0x00, 0x00, 0xff, 0xff, 0x85, 0x59, 0x8f, 0x67, 0x9c, + 0x0f, 0x00, 0x00, } diff --git a/src/proto/group/group.pb.go b/src/proto/group/group.pb.go index 12f82bc52..6ff2e8092 100644 --- a/src/proto/group/group.pb.go +++ b/src/proto/group/group.pb.go @@ -1,3511 +1,2406 @@ // Code generated by protoc-gen-go. DO NOT EDIT. -// versions: -// protoc-gen-go v1.26.0 -// protoc v3.7.1 // source: group/group.proto -package group +package group // import "group" -import ( - protoreflect "google.golang.org/protobuf/reflect/protoreflect" - protoimpl "google.golang.org/protobuf/runtime/protoimpl" - reflect "reflect" - sync "sync" -) +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" -const ( - // Verify that this generated code is sufficiently up-to-date. - _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) - // Verify that runtime/protoimpl is sufficiently up-to-date. - _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) -) +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf -type CommonResp struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields +// 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 - ErrorCode int32 `protobuf:"varint,1,opt,name=ErrorCode,proto3" json:"ErrorCode,omitempty"` - ErrorMsg string `protobuf:"bytes,2,opt,name=ErrorMsg,proto3" json:"ErrorMsg,omitempty"` +type CommonResp struct { + ErrorCode int32 `protobuf:"varint,1,opt,name=ErrorCode" json:"ErrorCode,omitempty"` + ErrorMsg string `protobuf:"bytes,2,opt,name=ErrorMsg" json:"ErrorMsg,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (x *CommonResp) Reset() { - *x = CommonResp{} - if protoimpl.UnsafeEnabled { - mi := &file_group_group_proto_msgTypes[0] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } +func (m *CommonResp) Reset() { *m = CommonResp{} } +func (m *CommonResp) String() string { return proto.CompactTextString(m) } +func (*CommonResp) ProtoMessage() {} +func (*CommonResp) Descriptor() ([]byte, []int) { + return fileDescriptor_group_9fd4d73937974f0d, []int{0} } - -func (x *CommonResp) String() string { - return protoimpl.X.MessageStringOf(x) +func (m *CommonResp) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_CommonResp.Unmarshal(m, b) } - -func (*CommonResp) ProtoMessage() {} - -func (x *CommonResp) ProtoReflect() protoreflect.Message { - mi := &file_group_group_proto_msgTypes[0] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) +func (m *CommonResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_CommonResp.Marshal(b, m, deterministic) } - -// Deprecated: Use CommonResp.ProtoReflect.Descriptor instead. -func (*CommonResp) Descriptor() ([]byte, []int) { - return file_group_group_proto_rawDescGZIP(), []int{0} +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 (x *CommonResp) GetErrorCode() int32 { - if x != nil { - return x.ErrorCode +func (m *CommonResp) GetErrorCode() int32 { + if m != nil { + return m.ErrorCode } return 0 } -func (x *CommonResp) GetErrorMsg() string { - if x != nil { - return x.ErrorMsg +func (m *CommonResp) GetErrorMsg() string { + if m != nil { + return m.ErrorMsg } return "" } type CreateGroupReq struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - MemberList []*GroupAddMemberInfo `protobuf:"bytes,1,rep,name=memberList,proto3" json:"memberList,omitempty"` - GroupName string `protobuf:"bytes,2,opt,name=groupName,proto3" json:"groupName,omitempty"` - Introduction string `protobuf:"bytes,3,opt,name=introduction,proto3" json:"introduction,omitempty"` - Notification string `protobuf:"bytes,4,opt,name=notification,proto3" json:"notification,omitempty"` - FaceUrl string `protobuf:"bytes,5,opt,name=faceUrl,proto3" json:"faceUrl,omitempty"` - Token string `protobuf:"bytes,6,opt,name=token,proto3" json:"token,omitempty"` - OperationID string `protobuf:"bytes,7,opt,name=operationID,proto3" json:"operationID,omitempty"` - Ex string `protobuf:"bytes,8,opt,name=ex,proto3" json:"ex,omitempty"` + MemberList []*GroupAddMemberInfo `protobuf:"bytes,1,rep,name=memberList" json:"memberList,omitempty"` + GroupName string `protobuf:"bytes,2,opt,name=groupName" json:"groupName,omitempty"` + Introduction string `protobuf:"bytes,3,opt,name=introduction" json:"introduction,omitempty"` + Notification string `protobuf:"bytes,4,opt,name=notification" json:"notification,omitempty"` + FaceUrl string `protobuf:"bytes,5,opt,name=faceUrl" json:"faceUrl,omitempty"` + Token string `protobuf:"bytes,6,opt,name=token" json:"token,omitempty"` + OperationID string `protobuf:"bytes,7,opt,name=operationID" json:"operationID,omitempty"` + Ex string `protobuf:"bytes,8,opt,name=ex" json:"ex,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *CreateGroupReq) Reset() { *m = CreateGroupReq{} } +func (m *CreateGroupReq) String() string { return proto.CompactTextString(m) } +func (*CreateGroupReq) ProtoMessage() {} +func (*CreateGroupReq) Descriptor() ([]byte, []int) { + return fileDescriptor_group_9fd4d73937974f0d, []int{1} } - -func (x *CreateGroupReq) Reset() { - *x = CreateGroupReq{} - if protoimpl.UnsafeEnabled { - mi := &file_group_group_proto_msgTypes[1] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } +func (m *CreateGroupReq) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_CreateGroupReq.Unmarshal(m, b) } - -func (x *CreateGroupReq) String() string { - return protoimpl.X.MessageStringOf(x) +func (m *CreateGroupReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_CreateGroupReq.Marshal(b, m, deterministic) } - -func (*CreateGroupReq) ProtoMessage() {} - -func (x *CreateGroupReq) ProtoReflect() protoreflect.Message { - mi := &file_group_group_proto_msgTypes[1] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) +func (dst *CreateGroupReq) XXX_Merge(src proto.Message) { + xxx_messageInfo_CreateGroupReq.Merge(dst, src) } - -// Deprecated: Use CreateGroupReq.ProtoReflect.Descriptor instead. -func (*CreateGroupReq) Descriptor() ([]byte, []int) { - return file_group_group_proto_rawDescGZIP(), []int{1} +func (m *CreateGroupReq) XXX_Size() int { + return xxx_messageInfo_CreateGroupReq.Size(m) } +func (m *CreateGroupReq) XXX_DiscardUnknown() { + xxx_messageInfo_CreateGroupReq.DiscardUnknown(m) +} + +var xxx_messageInfo_CreateGroupReq proto.InternalMessageInfo -func (x *CreateGroupReq) GetMemberList() []*GroupAddMemberInfo { - if x != nil { - return x.MemberList +func (m *CreateGroupReq) GetMemberList() []*GroupAddMemberInfo { + if m != nil { + return m.MemberList } return nil } -func (x *CreateGroupReq) GetGroupName() string { - if x != nil { - return x.GroupName +func (m *CreateGroupReq) GetGroupName() string { + if m != nil { + return m.GroupName } return "" } -func (x *CreateGroupReq) GetIntroduction() string { - if x != nil { - return x.Introduction +func (m *CreateGroupReq) GetIntroduction() string { + if m != nil { + return m.Introduction } return "" } -func (x *CreateGroupReq) GetNotification() string { - if x != nil { - return x.Notification +func (m *CreateGroupReq) GetNotification() string { + if m != nil { + return m.Notification } return "" } -func (x *CreateGroupReq) GetFaceUrl() string { - if x != nil { - return x.FaceUrl +func (m *CreateGroupReq) GetFaceUrl() string { + if m != nil { + return m.FaceUrl } return "" } -func (x *CreateGroupReq) GetToken() string { - if x != nil { - return x.Token +func (m *CreateGroupReq) GetToken() string { + if m != nil { + return m.Token } return "" } -func (x *CreateGroupReq) GetOperationID() string { - if x != nil { - return x.OperationID +func (m *CreateGroupReq) GetOperationID() string { + if m != nil { + return m.OperationID } return "" } -func (x *CreateGroupReq) GetEx() string { - if x != nil { - return x.Ex +func (m *CreateGroupReq) GetEx() string { + if m != nil { + return m.Ex } return "" } type GroupAddMemberInfo struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Uid string `protobuf:"bytes,1,opt,name=uid,proto3" json:"uid,omitempty"` - SetRole int32 `protobuf:"varint,2,opt,name=setRole,proto3" json:"setRole,omitempty"` + Uid string `protobuf:"bytes,1,opt,name=uid" json:"uid,omitempty"` + SetRole int32 `protobuf:"varint,2,opt,name=setRole" json:"setRole,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (x *GroupAddMemberInfo) Reset() { - *x = GroupAddMemberInfo{} - if protoimpl.UnsafeEnabled { - mi := &file_group_group_proto_msgTypes[2] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } +func (m *GroupAddMemberInfo) Reset() { *m = GroupAddMemberInfo{} } +func (m *GroupAddMemberInfo) String() string { return proto.CompactTextString(m) } +func (*GroupAddMemberInfo) ProtoMessage() {} +func (*GroupAddMemberInfo) Descriptor() ([]byte, []int) { + return fileDescriptor_group_9fd4d73937974f0d, []int{2} } - -func (x *GroupAddMemberInfo) String() string { - return protoimpl.X.MessageStringOf(x) +func (m *GroupAddMemberInfo) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GroupAddMemberInfo.Unmarshal(m, b) } - -func (*GroupAddMemberInfo) ProtoMessage() {} - -func (x *GroupAddMemberInfo) ProtoReflect() protoreflect.Message { - mi := &file_group_group_proto_msgTypes[2] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) +func (m *GroupAddMemberInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GroupAddMemberInfo.Marshal(b, m, deterministic) } - -// Deprecated: Use GroupAddMemberInfo.ProtoReflect.Descriptor instead. -func (*GroupAddMemberInfo) Descriptor() ([]byte, []int) { - return file_group_group_proto_rawDescGZIP(), []int{2} +func (dst *GroupAddMemberInfo) XXX_Merge(src proto.Message) { + xxx_messageInfo_GroupAddMemberInfo.Merge(dst, src) +} +func (m *GroupAddMemberInfo) XXX_Size() int { + return xxx_messageInfo_GroupAddMemberInfo.Size(m) +} +func (m *GroupAddMemberInfo) XXX_DiscardUnknown() { + xxx_messageInfo_GroupAddMemberInfo.DiscardUnknown(m) } -func (x *GroupAddMemberInfo) GetUid() string { - if x != nil { - return x.Uid +var xxx_messageInfo_GroupAddMemberInfo proto.InternalMessageInfo + +func (m *GroupAddMemberInfo) GetUid() string { + if m != nil { + return m.Uid } return "" } -func (x *GroupAddMemberInfo) GetSetRole() int32 { - if x != nil { - return x.SetRole +func (m *GroupAddMemberInfo) GetSetRole() int32 { + if m != nil { + return m.SetRole } return 0 } type CreateGroupResp struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - ErrorCode int32 `protobuf:"varint,1,opt,name=ErrorCode,proto3" json:"ErrorCode,omitempty"` - ErrorMsg string `protobuf:"bytes,2,opt,name=ErrorMsg,proto3" json:"ErrorMsg,omitempty"` - GroupID string `protobuf:"bytes,3,opt,name=groupID,proto3" json:"groupID,omitempty"` + ErrorCode int32 `protobuf:"varint,1,opt,name=ErrorCode" json:"ErrorCode,omitempty"` + ErrorMsg string `protobuf:"bytes,2,opt,name=ErrorMsg" json:"ErrorMsg,omitempty"` + GroupID string `protobuf:"bytes,3,opt,name=groupID" json:"groupID,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (x *CreateGroupResp) Reset() { - *x = CreateGroupResp{} - if protoimpl.UnsafeEnabled { - mi := &file_group_group_proto_msgTypes[3] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } +func (m *CreateGroupResp) Reset() { *m = CreateGroupResp{} } +func (m *CreateGroupResp) String() string { return proto.CompactTextString(m) } +func (*CreateGroupResp) ProtoMessage() {} +func (*CreateGroupResp) Descriptor() ([]byte, []int) { + return fileDescriptor_group_9fd4d73937974f0d, []int{3} } - -func (x *CreateGroupResp) String() string { - return protoimpl.X.MessageStringOf(x) +func (m *CreateGroupResp) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_CreateGroupResp.Unmarshal(m, b) } - -func (*CreateGroupResp) ProtoMessage() {} - -func (x *CreateGroupResp) ProtoReflect() protoreflect.Message { - mi := &file_group_group_proto_msgTypes[3] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) +func (m *CreateGroupResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_CreateGroupResp.Marshal(b, m, deterministic) } - -// Deprecated: Use CreateGroupResp.ProtoReflect.Descriptor instead. -func (*CreateGroupResp) Descriptor() ([]byte, []int) { - return file_group_group_proto_rawDescGZIP(), []int{3} +func (dst *CreateGroupResp) XXX_Merge(src proto.Message) { + xxx_messageInfo_CreateGroupResp.Merge(dst, src) } +func (m *CreateGroupResp) XXX_Size() int { + return xxx_messageInfo_CreateGroupResp.Size(m) +} +func (m *CreateGroupResp) XXX_DiscardUnknown() { + xxx_messageInfo_CreateGroupResp.DiscardUnknown(m) +} + +var xxx_messageInfo_CreateGroupResp proto.InternalMessageInfo -func (x *CreateGroupResp) GetErrorCode() int32 { - if x != nil { - return x.ErrorCode +func (m *CreateGroupResp) GetErrorCode() int32 { + if m != nil { + return m.ErrorCode } return 0 } -func (x *CreateGroupResp) GetErrorMsg() string { - if x != nil { - return x.ErrorMsg +func (m *CreateGroupResp) GetErrorMsg() string { + if m != nil { + return m.ErrorMsg } return "" } -func (x *CreateGroupResp) GetGroupID() string { - if x != nil { - return x.GroupID +func (m *CreateGroupResp) GetGroupID() string { + if m != nil { + return m.GroupID } return "" } type GetGroupsInfoReq struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - GroupIDList []string `protobuf:"bytes,1,rep,name=groupIDList,proto3" json:"groupIDList,omitempty"` - Token string `protobuf:"bytes,2,opt,name=token,proto3" json:"token,omitempty"` - OperationID string `protobuf:"bytes,3,opt,name=operationID,proto3" json:"operationID,omitempty"` + GroupIDList []string `protobuf:"bytes,1,rep,name=groupIDList" json:"groupIDList,omitempty"` + Token string `protobuf:"bytes,2,opt,name=token" json:"token,omitempty"` + OperationID string `protobuf:"bytes,3,opt,name=operationID" json:"operationID,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (x *GetGroupsInfoReq) Reset() { - *x = GetGroupsInfoReq{} - if protoimpl.UnsafeEnabled { - mi := &file_group_group_proto_msgTypes[4] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } +func (m *GetGroupsInfoReq) Reset() { *m = GetGroupsInfoReq{} } +func (m *GetGroupsInfoReq) String() string { return proto.CompactTextString(m) } +func (*GetGroupsInfoReq) ProtoMessage() {} +func (*GetGroupsInfoReq) Descriptor() ([]byte, []int) { + return fileDescriptor_group_9fd4d73937974f0d, []int{4} } - -func (x *GetGroupsInfoReq) String() string { - return protoimpl.X.MessageStringOf(x) +func (m *GetGroupsInfoReq) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GetGroupsInfoReq.Unmarshal(m, b) } - -func (*GetGroupsInfoReq) ProtoMessage() {} - -func (x *GetGroupsInfoReq) ProtoReflect() protoreflect.Message { - mi := &file_group_group_proto_msgTypes[4] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) +func (m *GetGroupsInfoReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GetGroupsInfoReq.Marshal(b, m, deterministic) } - -// Deprecated: Use GetGroupsInfoReq.ProtoReflect.Descriptor instead. -func (*GetGroupsInfoReq) Descriptor() ([]byte, []int) { - return file_group_group_proto_rawDescGZIP(), []int{4} +func (dst *GetGroupsInfoReq) XXX_Merge(src proto.Message) { + xxx_messageInfo_GetGroupsInfoReq.Merge(dst, src) +} +func (m *GetGroupsInfoReq) XXX_Size() int { + return xxx_messageInfo_GetGroupsInfoReq.Size(m) } +func (m *GetGroupsInfoReq) XXX_DiscardUnknown() { + xxx_messageInfo_GetGroupsInfoReq.DiscardUnknown(m) +} + +var xxx_messageInfo_GetGroupsInfoReq proto.InternalMessageInfo -func (x *GetGroupsInfoReq) GetGroupIDList() []string { - if x != nil { - return x.GroupIDList +func (m *GetGroupsInfoReq) GetGroupIDList() []string { + if m != nil { + return m.GroupIDList } return nil } -func (x *GetGroupsInfoReq) GetToken() string { - if x != nil { - return x.Token +func (m *GetGroupsInfoReq) GetToken() string { + if m != nil { + return m.Token } return "" } -func (x *GetGroupsInfoReq) GetOperationID() string { - if x != nil { - return x.OperationID +func (m *GetGroupsInfoReq) GetOperationID() string { + if m != nil { + return m.OperationID } return "" } type GetGroupsInfoResp struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - ErrorCode int32 `protobuf:"varint,1,opt,name=ErrorCode,proto3" json:"ErrorCode,omitempty"` - ErrorMsg string `protobuf:"bytes,2,opt,name=ErrorMsg,proto3" json:"ErrorMsg,omitempty"` - Data []*GroupInfo `protobuf:"bytes,3,rep,name=data,proto3" json:"data,omitempty"` + ErrorCode int32 `protobuf:"varint,1,opt,name=ErrorCode" json:"ErrorCode,omitempty"` + ErrorMsg string `protobuf:"bytes,2,opt,name=ErrorMsg" json:"ErrorMsg,omitempty"` + Data []*GroupInfo `protobuf:"bytes,3,rep,name=data" json:"data,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (x *GetGroupsInfoResp) Reset() { - *x = GetGroupsInfoResp{} - if protoimpl.UnsafeEnabled { - mi := &file_group_group_proto_msgTypes[5] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } +func (m *GetGroupsInfoResp) Reset() { *m = GetGroupsInfoResp{} } +func (m *GetGroupsInfoResp) String() string { return proto.CompactTextString(m) } +func (*GetGroupsInfoResp) ProtoMessage() {} +func (*GetGroupsInfoResp) Descriptor() ([]byte, []int) { + return fileDescriptor_group_9fd4d73937974f0d, []int{5} } - -func (x *GetGroupsInfoResp) String() string { - return protoimpl.X.MessageStringOf(x) +func (m *GetGroupsInfoResp) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GetGroupsInfoResp.Unmarshal(m, b) } - -func (*GetGroupsInfoResp) ProtoMessage() {} - -func (x *GetGroupsInfoResp) ProtoReflect() protoreflect.Message { - mi := &file_group_group_proto_msgTypes[5] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) +func (m *GetGroupsInfoResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GetGroupsInfoResp.Marshal(b, m, deterministic) } - -// Deprecated: Use GetGroupsInfoResp.ProtoReflect.Descriptor instead. -func (*GetGroupsInfoResp) Descriptor() ([]byte, []int) { - return file_group_group_proto_rawDescGZIP(), []int{5} +func (dst *GetGroupsInfoResp) XXX_Merge(src proto.Message) { + xxx_messageInfo_GetGroupsInfoResp.Merge(dst, src) +} +func (m *GetGroupsInfoResp) XXX_Size() int { + return xxx_messageInfo_GetGroupsInfoResp.Size(m) +} +func (m *GetGroupsInfoResp) XXX_DiscardUnknown() { + xxx_messageInfo_GetGroupsInfoResp.DiscardUnknown(m) } -func (x *GetGroupsInfoResp) GetErrorCode() int32 { - if x != nil { - return x.ErrorCode +var xxx_messageInfo_GetGroupsInfoResp proto.InternalMessageInfo + +func (m *GetGroupsInfoResp) GetErrorCode() int32 { + if m != nil { + return m.ErrorCode } return 0 } -func (x *GetGroupsInfoResp) GetErrorMsg() string { - if x != nil { - return x.ErrorMsg +func (m *GetGroupsInfoResp) GetErrorMsg() string { + if m != nil { + return m.ErrorMsg } return "" } -func (x *GetGroupsInfoResp) GetData() []*GroupInfo { - if x != nil { - return x.Data +func (m *GetGroupsInfoResp) GetData() []*GroupInfo { + if m != nil { + return m.Data } return nil } type SetGroupInfoReq struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - GroupID string `protobuf:"bytes,1,opt,name=groupID,proto3" json:"groupID,omitempty"` - GroupName string `protobuf:"bytes,2,opt,name=groupName,proto3" json:"groupName,omitempty"` - Notification string `protobuf:"bytes,3,opt,name=notification,proto3" json:"notification,omitempty"` - Introduction string `protobuf:"bytes,4,opt,name=introduction,proto3" json:"introduction,omitempty"` - FaceUrl string `protobuf:"bytes,5,opt,name=faceUrl,proto3" json:"faceUrl,omitempty"` - Token string `protobuf:"bytes,6,opt,name=token,proto3" json:"token,omitempty"` - OperationID string `protobuf:"bytes,7,opt,name=operationID,proto3" json:"operationID,omitempty"` + GroupID string `protobuf:"bytes,1,opt,name=groupID" json:"groupID,omitempty"` + GroupName string `protobuf:"bytes,2,opt,name=groupName" json:"groupName,omitempty"` + Notification string `protobuf:"bytes,3,opt,name=notification" json:"notification,omitempty"` + Introduction string `protobuf:"bytes,4,opt,name=introduction" json:"introduction,omitempty"` + FaceUrl string `protobuf:"bytes,5,opt,name=faceUrl" json:"faceUrl,omitempty"` + Token string `protobuf:"bytes,6,opt,name=token" json:"token,omitempty"` + OperationID string `protobuf:"bytes,7,opt,name=operationID" json:"operationID,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *SetGroupInfoReq) Reset() { *m = SetGroupInfoReq{} } +func (m *SetGroupInfoReq) String() string { return proto.CompactTextString(m) } +func (*SetGroupInfoReq) ProtoMessage() {} +func (*SetGroupInfoReq) Descriptor() ([]byte, []int) { + return fileDescriptor_group_9fd4d73937974f0d, []int{6} } - -func (x *SetGroupInfoReq) Reset() { - *x = SetGroupInfoReq{} - if protoimpl.UnsafeEnabled { - mi := &file_group_group_proto_msgTypes[6] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } +func (m *SetGroupInfoReq) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_SetGroupInfoReq.Unmarshal(m, b) } - -func (x *SetGroupInfoReq) String() string { - return protoimpl.X.MessageStringOf(x) +func (m *SetGroupInfoReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_SetGroupInfoReq.Marshal(b, m, deterministic) } - -func (*SetGroupInfoReq) ProtoMessage() {} - -func (x *SetGroupInfoReq) ProtoReflect() protoreflect.Message { - mi := &file_group_group_proto_msgTypes[6] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) +func (dst *SetGroupInfoReq) XXX_Merge(src proto.Message) { + xxx_messageInfo_SetGroupInfoReq.Merge(dst, src) } - -// Deprecated: Use SetGroupInfoReq.ProtoReflect.Descriptor instead. -func (*SetGroupInfoReq) Descriptor() ([]byte, []int) { - return file_group_group_proto_rawDescGZIP(), []int{6} +func (m *SetGroupInfoReq) XXX_Size() int { + return xxx_messageInfo_SetGroupInfoReq.Size(m) +} +func (m *SetGroupInfoReq) XXX_DiscardUnknown() { + xxx_messageInfo_SetGroupInfoReq.DiscardUnknown(m) } -func (x *SetGroupInfoReq) GetGroupID() string { - if x != nil { - return x.GroupID +var xxx_messageInfo_SetGroupInfoReq proto.InternalMessageInfo + +func (m *SetGroupInfoReq) GetGroupID() string { + if m != nil { + return m.GroupID } return "" } -func (x *SetGroupInfoReq) GetGroupName() string { - if x != nil { - return x.GroupName +func (m *SetGroupInfoReq) GetGroupName() string { + if m != nil { + return m.GroupName } return "" } -func (x *SetGroupInfoReq) GetNotification() string { - if x != nil { - return x.Notification +func (m *SetGroupInfoReq) GetNotification() string { + if m != nil { + return m.Notification } return "" } -func (x *SetGroupInfoReq) GetIntroduction() string { - if x != nil { - return x.Introduction +func (m *SetGroupInfoReq) GetIntroduction() string { + if m != nil { + return m.Introduction } return "" } -func (x *SetGroupInfoReq) GetFaceUrl() string { - if x != nil { - return x.FaceUrl +func (m *SetGroupInfoReq) GetFaceUrl() string { + if m != nil { + return m.FaceUrl } return "" } -func (x *SetGroupInfoReq) GetToken() string { - if x != nil { - return x.Token +func (m *SetGroupInfoReq) GetToken() string { + if m != nil { + return m.Token } return "" } -func (x *SetGroupInfoReq) GetOperationID() string { - if x != nil { - return x.OperationID +func (m *SetGroupInfoReq) GetOperationID() string { + if m != nil { + return m.OperationID } return "" } type GetGroupApplicationListReq struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - UID string `protobuf:"bytes,1,opt,name=UID,proto3" json:"UID,omitempty"` - OperationID string `protobuf:"bytes,2,opt,name=OperationID,proto3" json:"OperationID,omitempty"` + UID string `protobuf:"bytes,1,opt,name=UID" json:"UID,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 (x *GetGroupApplicationListReq) Reset() { - *x = GetGroupApplicationListReq{} - if protoimpl.UnsafeEnabled { - mi := &file_group_group_proto_msgTypes[7] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } +func (m *GetGroupApplicationListReq) Reset() { *m = GetGroupApplicationListReq{} } +func (m *GetGroupApplicationListReq) String() string { return proto.CompactTextString(m) } +func (*GetGroupApplicationListReq) ProtoMessage() {} +func (*GetGroupApplicationListReq) Descriptor() ([]byte, []int) { + return fileDescriptor_group_9fd4d73937974f0d, []int{7} } - -func (x *GetGroupApplicationListReq) String() string { - return protoimpl.X.MessageStringOf(x) +func (m *GetGroupApplicationListReq) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GetGroupApplicationListReq.Unmarshal(m, b) } - -func (*GetGroupApplicationListReq) ProtoMessage() {} - -func (x *GetGroupApplicationListReq) ProtoReflect() protoreflect.Message { - mi := &file_group_group_proto_msgTypes[7] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) +func (m *GetGroupApplicationListReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GetGroupApplicationListReq.Marshal(b, m, deterministic) } - -// Deprecated: Use GetGroupApplicationListReq.ProtoReflect.Descriptor instead. -func (*GetGroupApplicationListReq) Descriptor() ([]byte, []int) { - return file_group_group_proto_rawDescGZIP(), []int{7} +func (dst *GetGroupApplicationListReq) XXX_Merge(src proto.Message) { + xxx_messageInfo_GetGroupApplicationListReq.Merge(dst, src) } +func (m *GetGroupApplicationListReq) XXX_Size() int { + return xxx_messageInfo_GetGroupApplicationListReq.Size(m) +} +func (m *GetGroupApplicationListReq) XXX_DiscardUnknown() { + xxx_messageInfo_GetGroupApplicationListReq.DiscardUnknown(m) +} + +var xxx_messageInfo_GetGroupApplicationListReq proto.InternalMessageInfo -func (x *GetGroupApplicationListReq) GetUID() string { - if x != nil { - return x.UID +func (m *GetGroupApplicationListReq) GetUID() string { + if m != nil { + return m.UID } return "" } -func (x *GetGroupApplicationListReq) GetOperationID() string { - if x != nil { - return x.OperationID +func (m *GetGroupApplicationListReq) GetOperationID() string { + if m != nil { + return m.OperationID } return "" } type GetGroupApplicationList_Data_User struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - ID string `protobuf:"bytes,1,opt,name=ID,proto3" json:"ID,omitempty"` - GroupID string `protobuf:"bytes,2,opt,name=GroupID,proto3" json:"GroupID,omitempty"` - FromUserID string `protobuf:"bytes,3,opt,name=FromUserID,proto3" json:"FromUserID,omitempty"` - ToUserID string `protobuf:"bytes,4,opt,name=ToUserID,proto3" json:"ToUserID,omitempty"` - Flag int32 `protobuf:"varint,5,opt,name=Flag,proto3" json:"Flag,omitempty"` - RequestMsg string `protobuf:"bytes,6,opt,name=RequestMsg,proto3" json:"RequestMsg,omitempty"` - HandledMsg string `protobuf:"bytes,7,opt,name=HandledMsg,proto3" json:"HandledMsg,omitempty"` - AddTime int64 `protobuf:"varint,8,opt,name=AddTime,proto3" json:"AddTime,omitempty"` - FromUserNickname string `protobuf:"bytes,9,opt,name=FromUserNickname,proto3" json:"FromUserNickname,omitempty"` - ToUserNickname string `protobuf:"bytes,10,opt,name=ToUserNickname,proto3" json:"ToUserNickname,omitempty"` - FromUserFaceUrl string `protobuf:"bytes,11,opt,name=FromUserFaceUrl,proto3" json:"FromUserFaceUrl,omitempty"` - ToUserFaceUrl string `protobuf:"bytes,12,opt,name=ToUserFaceUrl,proto3" json:"ToUserFaceUrl,omitempty"` - HandledUser string `protobuf:"bytes,13,opt,name=HandledUser,proto3" json:"HandledUser,omitempty"` - Type int32 `protobuf:"varint,14,opt,name=Type,proto3" json:"Type,omitempty"` - HandleStatus int32 `protobuf:"varint,15,opt,name=HandleStatus,proto3" json:"HandleStatus,omitempty"` - HandleResult int32 `protobuf:"varint,16,opt,name=HandleResult,proto3" json:"HandleResult,omitempty"` + ID string `protobuf:"bytes,1,opt,name=ID" json:"ID,omitempty"` + GroupID string `protobuf:"bytes,2,opt,name=GroupID" json:"GroupID,omitempty"` + FromUserID string `protobuf:"bytes,3,opt,name=FromUserID" json:"FromUserID,omitempty"` + ToUserID string `protobuf:"bytes,4,opt,name=ToUserID" json:"ToUserID,omitempty"` + Flag int32 `protobuf:"varint,5,opt,name=Flag" json:"Flag,omitempty"` + RequestMsg string `protobuf:"bytes,6,opt,name=RequestMsg" json:"RequestMsg,omitempty"` + HandledMsg string `protobuf:"bytes,7,opt,name=HandledMsg" json:"HandledMsg,omitempty"` + AddTime int64 `protobuf:"varint,8,opt,name=AddTime" json:"AddTime,omitempty"` + FromUserNickname string `protobuf:"bytes,9,opt,name=FromUserNickname" json:"FromUserNickname,omitempty"` + ToUserNickname string `protobuf:"bytes,10,opt,name=ToUserNickname" json:"ToUserNickname,omitempty"` + FromUserFaceUrl string `protobuf:"bytes,11,opt,name=FromUserFaceUrl" json:"FromUserFaceUrl,omitempty"` + ToUserFaceUrl string `protobuf:"bytes,12,opt,name=ToUserFaceUrl" json:"ToUserFaceUrl,omitempty"` + HandledUser string `protobuf:"bytes,13,opt,name=HandledUser" json:"HandledUser,omitempty"` + Type int32 `protobuf:"varint,14,opt,name=Type" json:"Type,omitempty"` + HandleStatus int32 `protobuf:"varint,15,opt,name=HandleStatus" json:"HandleStatus,omitempty"` + HandleResult int32 `protobuf:"varint,16,opt,name=HandleResult" json:"HandleResult,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *GetGroupApplicationList_Data_User) Reset() { *m = GetGroupApplicationList_Data_User{} } +func (m *GetGroupApplicationList_Data_User) String() string { return proto.CompactTextString(m) } +func (*GetGroupApplicationList_Data_User) ProtoMessage() {} +func (*GetGroupApplicationList_Data_User) Descriptor() ([]byte, []int) { + return fileDescriptor_group_9fd4d73937974f0d, []int{8} } - -func (x *GetGroupApplicationList_Data_User) Reset() { - *x = GetGroupApplicationList_Data_User{} - if protoimpl.UnsafeEnabled { - mi := &file_group_group_proto_msgTypes[8] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } +func (m *GetGroupApplicationList_Data_User) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GetGroupApplicationList_Data_User.Unmarshal(m, b) } - -func (x *GetGroupApplicationList_Data_User) String() string { - return protoimpl.X.MessageStringOf(x) +func (m *GetGroupApplicationList_Data_User) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GetGroupApplicationList_Data_User.Marshal(b, m, deterministic) } - -func (*GetGroupApplicationList_Data_User) ProtoMessage() {} - -func (x *GetGroupApplicationList_Data_User) ProtoReflect() protoreflect.Message { - mi := &file_group_group_proto_msgTypes[8] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) +func (dst *GetGroupApplicationList_Data_User) XXX_Merge(src proto.Message) { + xxx_messageInfo_GetGroupApplicationList_Data_User.Merge(dst, src) } - -// Deprecated: Use GetGroupApplicationList_Data_User.ProtoReflect.Descriptor instead. -func (*GetGroupApplicationList_Data_User) Descriptor() ([]byte, []int) { - return file_group_group_proto_rawDescGZIP(), []int{8} +func (m *GetGroupApplicationList_Data_User) XXX_Size() int { + return xxx_messageInfo_GetGroupApplicationList_Data_User.Size(m) } +func (m *GetGroupApplicationList_Data_User) XXX_DiscardUnknown() { + xxx_messageInfo_GetGroupApplicationList_Data_User.DiscardUnknown(m) +} + +var xxx_messageInfo_GetGroupApplicationList_Data_User proto.InternalMessageInfo -func (x *GetGroupApplicationList_Data_User) GetID() string { - if x != nil { - return x.ID +func (m *GetGroupApplicationList_Data_User) GetID() string { + if m != nil { + return m.ID } return "" } -func (x *GetGroupApplicationList_Data_User) GetGroupID() string { - if x != nil { - return x.GroupID +func (m *GetGroupApplicationList_Data_User) GetGroupID() string { + if m != nil { + return m.GroupID } return "" } -func (x *GetGroupApplicationList_Data_User) GetFromUserID() string { - if x != nil { - return x.FromUserID +func (m *GetGroupApplicationList_Data_User) GetFromUserID() string { + if m != nil { + return m.FromUserID } return "" } -func (x *GetGroupApplicationList_Data_User) GetToUserID() string { - if x != nil { - return x.ToUserID +func (m *GetGroupApplicationList_Data_User) GetToUserID() string { + if m != nil { + return m.ToUserID } return "" } -func (x *GetGroupApplicationList_Data_User) GetFlag() int32 { - if x != nil { - return x.Flag +func (m *GetGroupApplicationList_Data_User) GetFlag() int32 { + if m != nil { + return m.Flag } return 0 } -func (x *GetGroupApplicationList_Data_User) GetRequestMsg() string { - if x != nil { - return x.RequestMsg +func (m *GetGroupApplicationList_Data_User) GetRequestMsg() string { + if m != nil { + return m.RequestMsg } return "" } -func (x *GetGroupApplicationList_Data_User) GetHandledMsg() string { - if x != nil { - return x.HandledMsg +func (m *GetGroupApplicationList_Data_User) GetHandledMsg() string { + if m != nil { + return m.HandledMsg } return "" } -func (x *GetGroupApplicationList_Data_User) GetAddTime() int64 { - if x != nil { - return x.AddTime +func (m *GetGroupApplicationList_Data_User) GetAddTime() int64 { + if m != nil { + return m.AddTime } return 0 } -func (x *GetGroupApplicationList_Data_User) GetFromUserNickname() string { - if x != nil { - return x.FromUserNickname +func (m *GetGroupApplicationList_Data_User) GetFromUserNickname() string { + if m != nil { + return m.FromUserNickname } return "" } -func (x *GetGroupApplicationList_Data_User) GetToUserNickname() string { - if x != nil { - return x.ToUserNickname +func (m *GetGroupApplicationList_Data_User) GetToUserNickname() string { + if m != nil { + return m.ToUserNickname } return "" } -func (x *GetGroupApplicationList_Data_User) GetFromUserFaceUrl() string { - if x != nil { - return x.FromUserFaceUrl +func (m *GetGroupApplicationList_Data_User) GetFromUserFaceUrl() string { + if m != nil { + return m.FromUserFaceUrl } return "" } -func (x *GetGroupApplicationList_Data_User) GetToUserFaceUrl() string { - if x != nil { - return x.ToUserFaceUrl +func (m *GetGroupApplicationList_Data_User) GetToUserFaceUrl() string { + if m != nil { + return m.ToUserFaceUrl } return "" } -func (x *GetGroupApplicationList_Data_User) GetHandledUser() string { - if x != nil { - return x.HandledUser +func (m *GetGroupApplicationList_Data_User) GetHandledUser() string { + if m != nil { + return m.HandledUser } return "" } -func (x *GetGroupApplicationList_Data_User) GetType() int32 { - if x != nil { - return x.Type +func (m *GetGroupApplicationList_Data_User) GetType() int32 { + if m != nil { + return m.Type } return 0 } -func (x *GetGroupApplicationList_Data_User) GetHandleStatus() int32 { - if x != nil { - return x.HandleStatus +func (m *GetGroupApplicationList_Data_User) GetHandleStatus() int32 { + if m != nil { + return m.HandleStatus } return 0 } -func (x *GetGroupApplicationList_Data_User) GetHandleResult() int32 { - if x != nil { - return x.HandleResult +func (m *GetGroupApplicationList_Data_User) GetHandleResult() int32 { + if m != nil { + return m.HandleResult } return 0 } type GetGroupApplicationListData struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Count int32 `protobuf:"varint,1,opt,name=Count,proto3" json:"Count,omitempty"` - User []*GetGroupApplicationList_Data_User `protobuf:"bytes,2,rep,name=User,proto3" json:"User,omitempty"` + Count int32 `protobuf:"varint,1,opt,name=Count" json:"Count,omitempty"` + User []*GetGroupApplicationList_Data_User `protobuf:"bytes,2,rep,name=User" json:"User,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (x *GetGroupApplicationListData) Reset() { - *x = GetGroupApplicationListData{} - if protoimpl.UnsafeEnabled { - mi := &file_group_group_proto_msgTypes[9] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } +func (m *GetGroupApplicationListData) Reset() { *m = GetGroupApplicationListData{} } +func (m *GetGroupApplicationListData) String() string { return proto.CompactTextString(m) } +func (*GetGroupApplicationListData) ProtoMessage() {} +func (*GetGroupApplicationListData) Descriptor() ([]byte, []int) { + return fileDescriptor_group_9fd4d73937974f0d, []int{9} } - -func (x *GetGroupApplicationListData) String() string { - return protoimpl.X.MessageStringOf(x) +func (m *GetGroupApplicationListData) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GetGroupApplicationListData.Unmarshal(m, b) } - -func (*GetGroupApplicationListData) ProtoMessage() {} - -func (x *GetGroupApplicationListData) ProtoReflect() protoreflect.Message { - mi := &file_group_group_proto_msgTypes[9] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) +func (m *GetGroupApplicationListData) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GetGroupApplicationListData.Marshal(b, m, deterministic) } - -// Deprecated: Use GetGroupApplicationListData.ProtoReflect.Descriptor instead. -func (*GetGroupApplicationListData) Descriptor() ([]byte, []int) { - return file_group_group_proto_rawDescGZIP(), []int{9} +func (dst *GetGroupApplicationListData) XXX_Merge(src proto.Message) { + xxx_messageInfo_GetGroupApplicationListData.Merge(dst, src) +} +func (m *GetGroupApplicationListData) XXX_Size() int { + return xxx_messageInfo_GetGroupApplicationListData.Size(m) +} +func (m *GetGroupApplicationListData) XXX_DiscardUnknown() { + xxx_messageInfo_GetGroupApplicationListData.DiscardUnknown(m) } -func (x *GetGroupApplicationListData) GetCount() int32 { - if x != nil { - return x.Count +var xxx_messageInfo_GetGroupApplicationListData proto.InternalMessageInfo + +func (m *GetGroupApplicationListData) GetCount() int32 { + if m != nil { + return m.Count } return 0 } -func (x *GetGroupApplicationListData) GetUser() []*GetGroupApplicationList_Data_User { - if x != nil { - return x.User +func (m *GetGroupApplicationListData) GetUser() []*GetGroupApplicationList_Data_User { + if m != nil { + return m.User } return nil } type GetGroupApplicationListResp struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - ErrCode int32 `protobuf:"varint,1,opt,name=ErrCode,proto3" json:"ErrCode,omitempty"` - ErrMsg string `protobuf:"bytes,2,opt,name=ErrMsg,proto3" json:"ErrMsg,omitempty"` - Data *GetGroupApplicationListData `protobuf:"bytes,3,opt,name=Data,proto3" json:"Data,omitempty"` + ErrCode int32 `protobuf:"varint,1,opt,name=ErrCode" json:"ErrCode,omitempty"` + ErrMsg string `protobuf:"bytes,2,opt,name=ErrMsg" json:"ErrMsg,omitempty"` + Data *GetGroupApplicationListData `protobuf:"bytes,3,opt,name=Data" json:"Data,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (x *GetGroupApplicationListResp) Reset() { - *x = GetGroupApplicationListResp{} - if protoimpl.UnsafeEnabled { - mi := &file_group_group_proto_msgTypes[10] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } +func (m *GetGroupApplicationListResp) Reset() { *m = GetGroupApplicationListResp{} } +func (m *GetGroupApplicationListResp) String() string { return proto.CompactTextString(m) } +func (*GetGroupApplicationListResp) ProtoMessage() {} +func (*GetGroupApplicationListResp) Descriptor() ([]byte, []int) { + return fileDescriptor_group_9fd4d73937974f0d, []int{10} } - -func (x *GetGroupApplicationListResp) String() string { - return protoimpl.X.MessageStringOf(x) +func (m *GetGroupApplicationListResp) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GetGroupApplicationListResp.Unmarshal(m, b) } - -func (*GetGroupApplicationListResp) ProtoMessage() {} - -func (x *GetGroupApplicationListResp) ProtoReflect() protoreflect.Message { - mi := &file_group_group_proto_msgTypes[10] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) +func (m *GetGroupApplicationListResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GetGroupApplicationListResp.Marshal(b, m, deterministic) } - -// Deprecated: Use GetGroupApplicationListResp.ProtoReflect.Descriptor instead. -func (*GetGroupApplicationListResp) Descriptor() ([]byte, []int) { - return file_group_group_proto_rawDescGZIP(), []int{10} +func (dst *GetGroupApplicationListResp) XXX_Merge(src proto.Message) { + xxx_messageInfo_GetGroupApplicationListResp.Merge(dst, src) +} +func (m *GetGroupApplicationListResp) XXX_Size() int { + return xxx_messageInfo_GetGroupApplicationListResp.Size(m) } +func (m *GetGroupApplicationListResp) XXX_DiscardUnknown() { + xxx_messageInfo_GetGroupApplicationListResp.DiscardUnknown(m) +} + +var xxx_messageInfo_GetGroupApplicationListResp proto.InternalMessageInfo -func (x *GetGroupApplicationListResp) GetErrCode() int32 { - if x != nil { - return x.ErrCode +func (m *GetGroupApplicationListResp) GetErrCode() int32 { + if m != nil { + return m.ErrCode } return 0 } -func (x *GetGroupApplicationListResp) GetErrMsg() string { - if x != nil { - return x.ErrMsg +func (m *GetGroupApplicationListResp) GetErrMsg() string { + if m != nil { + return m.ErrMsg } return "" } -func (x *GetGroupApplicationListResp) GetData() *GetGroupApplicationListData { - if x != nil { - return x.Data +func (m *GetGroupApplicationListResp) GetData() *GetGroupApplicationListData { + if m != nil { + return m.Data } return nil } type TransferGroupOwnerReq struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - GroupID string `protobuf:"bytes,1,opt,name=GroupID,proto3" json:"GroupID,omitempty"` - OldOwner string `protobuf:"bytes,2,opt,name=OldOwner,proto3" json:"OldOwner,omitempty"` - NewOwner string `protobuf:"bytes,3,opt,name=NewOwner,proto3" json:"NewOwner,omitempty"` - OperationID string `protobuf:"bytes,4,opt,name=OperationID,proto3" json:"OperationID,omitempty"` + GroupID string `protobuf:"bytes,1,opt,name=GroupID" json:"GroupID,omitempty"` + OldOwner string `protobuf:"bytes,2,opt,name=OldOwner" json:"OldOwner,omitempty"` + NewOwner string `protobuf:"bytes,3,opt,name=NewOwner" json:"NewOwner,omitempty"` + OperationID string `protobuf:"bytes,4,opt,name=OperationID" json:"OperationID,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *TransferGroupOwnerReq) Reset() { *m = TransferGroupOwnerReq{} } +func (m *TransferGroupOwnerReq) String() string { return proto.CompactTextString(m) } +func (*TransferGroupOwnerReq) ProtoMessage() {} +func (*TransferGroupOwnerReq) Descriptor() ([]byte, []int) { + return fileDescriptor_group_9fd4d73937974f0d, []int{11} } - -func (x *TransferGroupOwnerReq) Reset() { - *x = TransferGroupOwnerReq{} - if protoimpl.UnsafeEnabled { - mi := &file_group_group_proto_msgTypes[11] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } +func (m *TransferGroupOwnerReq) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_TransferGroupOwnerReq.Unmarshal(m, b) } - -func (x *TransferGroupOwnerReq) String() string { - return protoimpl.X.MessageStringOf(x) +func (m *TransferGroupOwnerReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_TransferGroupOwnerReq.Marshal(b, m, deterministic) } - -func (*TransferGroupOwnerReq) ProtoMessage() {} - -func (x *TransferGroupOwnerReq) ProtoReflect() protoreflect.Message { - mi := &file_group_group_proto_msgTypes[11] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) +func (dst *TransferGroupOwnerReq) XXX_Merge(src proto.Message) { + xxx_messageInfo_TransferGroupOwnerReq.Merge(dst, src) } - -// Deprecated: Use TransferGroupOwnerReq.ProtoReflect.Descriptor instead. -func (*TransferGroupOwnerReq) Descriptor() ([]byte, []int) { - return file_group_group_proto_rawDescGZIP(), []int{11} +func (m *TransferGroupOwnerReq) XXX_Size() int { + return xxx_messageInfo_TransferGroupOwnerReq.Size(m) +} +func (m *TransferGroupOwnerReq) XXX_DiscardUnknown() { + xxx_messageInfo_TransferGroupOwnerReq.DiscardUnknown(m) } -func (x *TransferGroupOwnerReq) GetGroupID() string { - if x != nil { - return x.GroupID +var xxx_messageInfo_TransferGroupOwnerReq proto.InternalMessageInfo + +func (m *TransferGroupOwnerReq) GetGroupID() string { + if m != nil { + return m.GroupID } return "" } -func (x *TransferGroupOwnerReq) GetOldOwner() string { - if x != nil { - return x.OldOwner +func (m *TransferGroupOwnerReq) GetOldOwner() string { + if m != nil { + return m.OldOwner } return "" } -func (x *TransferGroupOwnerReq) GetNewOwner() string { - if x != nil { - return x.NewOwner +func (m *TransferGroupOwnerReq) GetNewOwner() string { + if m != nil { + return m.NewOwner } return "" } -func (x *TransferGroupOwnerReq) GetOperationID() string { - if x != nil { - return x.OperationID +func (m *TransferGroupOwnerReq) GetOperationID() string { + if m != nil { + return m.OperationID } return "" } type TransferGroupOwnerResp struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - ErrCode int32 `protobuf:"varint,1,opt,name=ErrCode,proto3" json:"ErrCode,omitempty"` - ErrMsg string `protobuf:"bytes,2,opt,name=ErrMsg,proto3" json:"ErrMsg,omitempty"` + ErrCode int32 `protobuf:"varint,1,opt,name=ErrCode" json:"ErrCode,omitempty"` + ErrMsg string `protobuf:"bytes,2,opt,name=ErrMsg" json:"ErrMsg,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (x *TransferGroupOwnerResp) Reset() { - *x = TransferGroupOwnerResp{} - if protoimpl.UnsafeEnabled { - mi := &file_group_group_proto_msgTypes[12] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } +func (m *TransferGroupOwnerResp) Reset() { *m = TransferGroupOwnerResp{} } +func (m *TransferGroupOwnerResp) String() string { return proto.CompactTextString(m) } +func (*TransferGroupOwnerResp) ProtoMessage() {} +func (*TransferGroupOwnerResp) Descriptor() ([]byte, []int) { + return fileDescriptor_group_9fd4d73937974f0d, []int{12} } - -func (x *TransferGroupOwnerResp) String() string { - return protoimpl.X.MessageStringOf(x) +func (m *TransferGroupOwnerResp) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_TransferGroupOwnerResp.Unmarshal(m, b) } - -func (*TransferGroupOwnerResp) ProtoMessage() {} - -func (x *TransferGroupOwnerResp) ProtoReflect() protoreflect.Message { - mi := &file_group_group_proto_msgTypes[12] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) +func (m *TransferGroupOwnerResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_TransferGroupOwnerResp.Marshal(b, m, deterministic) } - -// Deprecated: Use TransferGroupOwnerResp.ProtoReflect.Descriptor instead. -func (*TransferGroupOwnerResp) Descriptor() ([]byte, []int) { - return file_group_group_proto_rawDescGZIP(), []int{12} +func (dst *TransferGroupOwnerResp) XXX_Merge(src proto.Message) { + xxx_messageInfo_TransferGroupOwnerResp.Merge(dst, src) +} +func (m *TransferGroupOwnerResp) XXX_Size() int { + return xxx_messageInfo_TransferGroupOwnerResp.Size(m) +} +func (m *TransferGroupOwnerResp) XXX_DiscardUnknown() { + xxx_messageInfo_TransferGroupOwnerResp.DiscardUnknown(m) } -func (x *TransferGroupOwnerResp) GetErrCode() int32 { - if x != nil { - return x.ErrCode +var xxx_messageInfo_TransferGroupOwnerResp proto.InternalMessageInfo + +func (m *TransferGroupOwnerResp) GetErrCode() int32 { + if m != nil { + return m.ErrCode } return 0 } -func (x *TransferGroupOwnerResp) GetErrMsg() string { - if x != nil { - return x.ErrMsg +func (m *TransferGroupOwnerResp) GetErrMsg() string { + if m != nil { + return m.ErrMsg } return "" } type JoinGroupReq struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - GroupID string `protobuf:"bytes,1,opt,name=groupID,proto3" json:"groupID,omitempty"` - Message string `protobuf:"bytes,2,opt,name=message,proto3" json:"message,omitempty"` - Token string `protobuf:"bytes,3,opt,name=token,proto3" json:"token,omitempty"` - OperationID string `protobuf:"bytes,4,opt,name=OperationID,proto3" json:"OperationID,omitempty"` + GroupID string `protobuf:"bytes,1,opt,name=groupID" json:"groupID,omitempty"` + Message string `protobuf:"bytes,2,opt,name=message" json:"message,omitempty"` + Token string `protobuf:"bytes,3,opt,name=token" json:"token,omitempty"` + OperationID string `protobuf:"bytes,4,opt,name=OperationID" json:"OperationID,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *JoinGroupReq) Reset() { *m = JoinGroupReq{} } +func (m *JoinGroupReq) String() string { return proto.CompactTextString(m) } +func (*JoinGroupReq) ProtoMessage() {} +func (*JoinGroupReq) Descriptor() ([]byte, []int) { + return fileDescriptor_group_9fd4d73937974f0d, []int{13} } - -func (x *JoinGroupReq) Reset() { - *x = JoinGroupReq{} - if protoimpl.UnsafeEnabled { - mi := &file_group_group_proto_msgTypes[13] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } +func (m *JoinGroupReq) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_JoinGroupReq.Unmarshal(m, b) } - -func (x *JoinGroupReq) String() string { - return protoimpl.X.MessageStringOf(x) +func (m *JoinGroupReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_JoinGroupReq.Marshal(b, m, deterministic) } - -func (*JoinGroupReq) ProtoMessage() {} - -func (x *JoinGroupReq) ProtoReflect() protoreflect.Message { - mi := &file_group_group_proto_msgTypes[13] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) +func (dst *JoinGroupReq) XXX_Merge(src proto.Message) { + xxx_messageInfo_JoinGroupReq.Merge(dst, src) } - -// Deprecated: Use JoinGroupReq.ProtoReflect.Descriptor instead. -func (*JoinGroupReq) Descriptor() ([]byte, []int) { - return file_group_group_proto_rawDescGZIP(), []int{13} +func (m *JoinGroupReq) XXX_Size() int { + return xxx_messageInfo_JoinGroupReq.Size(m) } +func (m *JoinGroupReq) XXX_DiscardUnknown() { + xxx_messageInfo_JoinGroupReq.DiscardUnknown(m) +} + +var xxx_messageInfo_JoinGroupReq proto.InternalMessageInfo -func (x *JoinGroupReq) GetGroupID() string { - if x != nil { - return x.GroupID +func (m *JoinGroupReq) GetGroupID() string { + if m != nil { + return m.GroupID } return "" } -func (x *JoinGroupReq) GetMessage() string { - if x != nil { - return x.Message +func (m *JoinGroupReq) GetMessage() string { + if m != nil { + return m.Message } return "" } -func (x *JoinGroupReq) GetToken() string { - if x != nil { - return x.Token +func (m *JoinGroupReq) GetToken() string { + if m != nil { + return m.Token } return "" } -func (x *JoinGroupReq) GetOperationID() string { - if x != nil { - return x.OperationID +func (m *JoinGroupReq) GetOperationID() string { + if m != nil { + return m.OperationID } return "" } type GroupApplicationResponseReq struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - OperationID string `protobuf:"bytes,1,opt,name=OperationID,proto3" json:"OperationID,omitempty"` - OwnerID string `protobuf:"bytes,2,opt,name=OwnerID,proto3" json:"OwnerID,omitempty"` - GroupID string `protobuf:"bytes,3,opt,name=GroupID,proto3" json:"GroupID,omitempty"` - FromUserID string `protobuf:"bytes,4,opt,name=FromUserID,proto3" json:"FromUserID,omitempty"` - FromUserNickName string `protobuf:"bytes,5,opt,name=FromUserNickName,proto3" json:"FromUserNickName,omitempty"` - FromUserFaceUrl string `protobuf:"bytes,6,opt,name=FromUserFaceUrl,proto3" json:"FromUserFaceUrl,omitempty"` - ToUserID string `protobuf:"bytes,7,opt,name=ToUserID,proto3" json:"ToUserID,omitempty"` - ToUserNickName string `protobuf:"bytes,8,opt,name=ToUserNickName,proto3" json:"ToUserNickName,omitempty"` - ToUserFaceUrl string `protobuf:"bytes,9,opt,name=ToUserFaceUrl,proto3" json:"ToUserFaceUrl,omitempty"` - AddTime int64 `protobuf:"varint,10,opt,name=AddTime,proto3" json:"AddTime,omitempty"` - RequestMsg string `protobuf:"bytes,11,opt,name=RequestMsg,proto3" json:"RequestMsg,omitempty"` - HandledMsg string `protobuf:"bytes,12,opt,name=HandledMsg,proto3" json:"HandledMsg,omitempty"` - Type int32 `protobuf:"varint,13,opt,name=Type,proto3" json:"Type,omitempty"` - HandleStatus int32 `protobuf:"varint,14,opt,name=HandleStatus,proto3" json:"HandleStatus,omitempty"` - HandleResult int32 `protobuf:"varint,15,opt,name=HandleResult,proto3" json:"HandleResult,omitempty"` + OperationID string `protobuf:"bytes,1,opt,name=OperationID" json:"OperationID,omitempty"` + OwnerID string `protobuf:"bytes,2,opt,name=OwnerID" json:"OwnerID,omitempty"` + GroupID string `protobuf:"bytes,3,opt,name=GroupID" json:"GroupID,omitempty"` + FromUserID string `protobuf:"bytes,4,opt,name=FromUserID" json:"FromUserID,omitempty"` + FromUserNickName string `protobuf:"bytes,5,opt,name=FromUserNickName" json:"FromUserNickName,omitempty"` + FromUserFaceUrl string `protobuf:"bytes,6,opt,name=FromUserFaceUrl" json:"FromUserFaceUrl,omitempty"` + ToUserID string `protobuf:"bytes,7,opt,name=ToUserID" json:"ToUserID,omitempty"` + ToUserNickName string `protobuf:"bytes,8,opt,name=ToUserNickName" json:"ToUserNickName,omitempty"` + ToUserFaceUrl string `protobuf:"bytes,9,opt,name=ToUserFaceUrl" json:"ToUserFaceUrl,omitempty"` + AddTime int64 `protobuf:"varint,10,opt,name=AddTime" json:"AddTime,omitempty"` + RequestMsg string `protobuf:"bytes,11,opt,name=RequestMsg" json:"RequestMsg,omitempty"` + HandledMsg string `protobuf:"bytes,12,opt,name=HandledMsg" json:"HandledMsg,omitempty"` + Type int32 `protobuf:"varint,13,opt,name=Type" json:"Type,omitempty"` + HandleStatus int32 `protobuf:"varint,14,opt,name=HandleStatus" json:"HandleStatus,omitempty"` + HandleResult int32 `protobuf:"varint,15,opt,name=HandleResult" json:"HandleResult,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *GroupApplicationResponseReq) Reset() { *m = GroupApplicationResponseReq{} } +func (m *GroupApplicationResponseReq) String() string { return proto.CompactTextString(m) } +func (*GroupApplicationResponseReq) ProtoMessage() {} +func (*GroupApplicationResponseReq) Descriptor() ([]byte, []int) { + return fileDescriptor_group_9fd4d73937974f0d, []int{14} } - -func (x *GroupApplicationResponseReq) Reset() { - *x = GroupApplicationResponseReq{} - if protoimpl.UnsafeEnabled { - mi := &file_group_group_proto_msgTypes[14] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } +func (m *GroupApplicationResponseReq) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GroupApplicationResponseReq.Unmarshal(m, b) } - -func (x *GroupApplicationResponseReq) String() string { - return protoimpl.X.MessageStringOf(x) +func (m *GroupApplicationResponseReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GroupApplicationResponseReq.Marshal(b, m, deterministic) } - -func (*GroupApplicationResponseReq) ProtoMessage() {} - -func (x *GroupApplicationResponseReq) ProtoReflect() protoreflect.Message { - mi := &file_group_group_proto_msgTypes[14] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) +func (dst *GroupApplicationResponseReq) XXX_Merge(src proto.Message) { + xxx_messageInfo_GroupApplicationResponseReq.Merge(dst, src) } - -// Deprecated: Use GroupApplicationResponseReq.ProtoReflect.Descriptor instead. -func (*GroupApplicationResponseReq) Descriptor() ([]byte, []int) { - return file_group_group_proto_rawDescGZIP(), []int{14} +func (m *GroupApplicationResponseReq) XXX_Size() int { + return xxx_messageInfo_GroupApplicationResponseReq.Size(m) +} +func (m *GroupApplicationResponseReq) XXX_DiscardUnknown() { + xxx_messageInfo_GroupApplicationResponseReq.DiscardUnknown(m) } -func (x *GroupApplicationResponseReq) GetOperationID() string { - if x != nil { - return x.OperationID +var xxx_messageInfo_GroupApplicationResponseReq proto.InternalMessageInfo + +func (m *GroupApplicationResponseReq) GetOperationID() string { + if m != nil { + return m.OperationID } return "" } -func (x *GroupApplicationResponseReq) GetOwnerID() string { - if x != nil { - return x.OwnerID +func (m *GroupApplicationResponseReq) GetOwnerID() string { + if m != nil { + return m.OwnerID } return "" } -func (x *GroupApplicationResponseReq) GetGroupID() string { - if x != nil { - return x.GroupID +func (m *GroupApplicationResponseReq) GetGroupID() string { + if m != nil { + return m.GroupID } return "" } -func (x *GroupApplicationResponseReq) GetFromUserID() string { - if x != nil { - return x.FromUserID +func (m *GroupApplicationResponseReq) GetFromUserID() string { + if m != nil { + return m.FromUserID } return "" } -func (x *GroupApplicationResponseReq) GetFromUserNickName() string { - if x != nil { - return x.FromUserNickName +func (m *GroupApplicationResponseReq) GetFromUserNickName() string { + if m != nil { + return m.FromUserNickName } return "" } -func (x *GroupApplicationResponseReq) GetFromUserFaceUrl() string { - if x != nil { - return x.FromUserFaceUrl +func (m *GroupApplicationResponseReq) GetFromUserFaceUrl() string { + if m != nil { + return m.FromUserFaceUrl } return "" } -func (x *GroupApplicationResponseReq) GetToUserID() string { - if x != nil { - return x.ToUserID +func (m *GroupApplicationResponseReq) GetToUserID() string { + if m != nil { + return m.ToUserID } return "" } -func (x *GroupApplicationResponseReq) GetToUserNickName() string { - if x != nil { - return x.ToUserNickName +func (m *GroupApplicationResponseReq) GetToUserNickName() string { + if m != nil { + return m.ToUserNickName } return "" } -func (x *GroupApplicationResponseReq) GetToUserFaceUrl() string { - if x != nil { - return x.ToUserFaceUrl +func (m *GroupApplicationResponseReq) GetToUserFaceUrl() string { + if m != nil { + return m.ToUserFaceUrl } return "" } -func (x *GroupApplicationResponseReq) GetAddTime() int64 { - if x != nil { - return x.AddTime +func (m *GroupApplicationResponseReq) GetAddTime() int64 { + if m != nil { + return m.AddTime } return 0 } -func (x *GroupApplicationResponseReq) GetRequestMsg() string { - if x != nil { - return x.RequestMsg +func (m *GroupApplicationResponseReq) GetRequestMsg() string { + if m != nil { + return m.RequestMsg } return "" } -func (x *GroupApplicationResponseReq) GetHandledMsg() string { - if x != nil { - return x.HandledMsg +func (m *GroupApplicationResponseReq) GetHandledMsg() string { + if m != nil { + return m.HandledMsg } return "" } -func (x *GroupApplicationResponseReq) GetType() int32 { - if x != nil { - return x.Type +func (m *GroupApplicationResponseReq) GetType() int32 { + if m != nil { + return m.Type } return 0 } -func (x *GroupApplicationResponseReq) GetHandleStatus() int32 { - if x != nil { - return x.HandleStatus +func (m *GroupApplicationResponseReq) GetHandleStatus() int32 { + if m != nil { + return m.HandleStatus } return 0 } -func (x *GroupApplicationResponseReq) GetHandleResult() int32 { - if x != nil { - return x.HandleResult +func (m *GroupApplicationResponseReq) GetHandleResult() int32 { + if m != nil { + return m.HandleResult } return 0 } type GroupApplicationResponseResp struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - ErrCode int32 `protobuf:"varint,1,opt,name=ErrCode,proto3" json:"ErrCode,omitempty"` - ErrMsg string `protobuf:"bytes,2,opt,name=ErrMsg,proto3" json:"ErrMsg,omitempty"` + ErrCode int32 `protobuf:"varint,1,opt,name=ErrCode" json:"ErrCode,omitempty"` + ErrMsg string `protobuf:"bytes,2,opt,name=ErrMsg" json:"ErrMsg,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (x *GroupApplicationResponseResp) Reset() { - *x = GroupApplicationResponseResp{} - if protoimpl.UnsafeEnabled { - mi := &file_group_group_proto_msgTypes[15] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } +func (m *GroupApplicationResponseResp) Reset() { *m = GroupApplicationResponseResp{} } +func (m *GroupApplicationResponseResp) String() string { return proto.CompactTextString(m) } +func (*GroupApplicationResponseResp) ProtoMessage() {} +func (*GroupApplicationResponseResp) Descriptor() ([]byte, []int) { + return fileDescriptor_group_9fd4d73937974f0d, []int{15} } - -func (x *GroupApplicationResponseResp) String() string { - return protoimpl.X.MessageStringOf(x) +func (m *GroupApplicationResponseResp) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GroupApplicationResponseResp.Unmarshal(m, b) } - -func (*GroupApplicationResponseResp) ProtoMessage() {} - -func (x *GroupApplicationResponseResp) ProtoReflect() protoreflect.Message { - mi := &file_group_group_proto_msgTypes[15] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) +func (m *GroupApplicationResponseResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GroupApplicationResponseResp.Marshal(b, m, deterministic) } - -// Deprecated: Use GroupApplicationResponseResp.ProtoReflect.Descriptor instead. -func (*GroupApplicationResponseResp) Descriptor() ([]byte, []int) { - return file_group_group_proto_rawDescGZIP(), []int{15} +func (dst *GroupApplicationResponseResp) XXX_Merge(src proto.Message) { + xxx_messageInfo_GroupApplicationResponseResp.Merge(dst, src) } +func (m *GroupApplicationResponseResp) XXX_Size() int { + return xxx_messageInfo_GroupApplicationResponseResp.Size(m) +} +func (m *GroupApplicationResponseResp) XXX_DiscardUnknown() { + xxx_messageInfo_GroupApplicationResponseResp.DiscardUnknown(m) +} + +var xxx_messageInfo_GroupApplicationResponseResp proto.InternalMessageInfo -func (x *GroupApplicationResponseResp) GetErrCode() int32 { - if x != nil { - return x.ErrCode +func (m *GroupApplicationResponseResp) GetErrCode() int32 { + if m != nil { + return m.ErrCode } return 0 } -func (x *GroupApplicationResponseResp) GetErrMsg() string { - if x != nil { - return x.ErrMsg +func (m *GroupApplicationResponseResp) GetErrMsg() string { + if m != nil { + return m.ErrMsg } return "" } type SetOwnerGroupNickNameReq struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - GroupID string `protobuf:"bytes,1,opt,name=groupID,proto3" json:"groupID,omitempty"` - NickName string `protobuf:"bytes,2,opt,name=nickName,proto3" json:"nickName,omitempty"` - OperationID string `protobuf:"bytes,3,opt,name=OperationID,proto3" json:"OperationID,omitempty"` - Token string `protobuf:"bytes,4,opt,name=token,proto3" json:"token,omitempty"` + GroupID string `protobuf:"bytes,1,opt,name=groupID" json:"groupID,omitempty"` + NickName string `protobuf:"bytes,2,opt,name=nickName" json:"nickName,omitempty"` + OperationID string `protobuf:"bytes,3,opt,name=OperationID" json:"OperationID,omitempty"` + Token string `protobuf:"bytes,4,opt,name=token" json:"token,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *SetOwnerGroupNickNameReq) Reset() { *m = SetOwnerGroupNickNameReq{} } +func (m *SetOwnerGroupNickNameReq) String() string { return proto.CompactTextString(m) } +func (*SetOwnerGroupNickNameReq) ProtoMessage() {} +func (*SetOwnerGroupNickNameReq) Descriptor() ([]byte, []int) { + return fileDescriptor_group_9fd4d73937974f0d, []int{16} } - -func (x *SetOwnerGroupNickNameReq) Reset() { - *x = SetOwnerGroupNickNameReq{} - if protoimpl.UnsafeEnabled { - mi := &file_group_group_proto_msgTypes[16] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } +func (m *SetOwnerGroupNickNameReq) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_SetOwnerGroupNickNameReq.Unmarshal(m, b) } - -func (x *SetOwnerGroupNickNameReq) String() string { - return protoimpl.X.MessageStringOf(x) +func (m *SetOwnerGroupNickNameReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_SetOwnerGroupNickNameReq.Marshal(b, m, deterministic) } - -func (*SetOwnerGroupNickNameReq) ProtoMessage() {} - -func (x *SetOwnerGroupNickNameReq) ProtoReflect() protoreflect.Message { - mi := &file_group_group_proto_msgTypes[16] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) +func (dst *SetOwnerGroupNickNameReq) XXX_Merge(src proto.Message) { + xxx_messageInfo_SetOwnerGroupNickNameReq.Merge(dst, src) } - -// Deprecated: Use SetOwnerGroupNickNameReq.ProtoReflect.Descriptor instead. -func (*SetOwnerGroupNickNameReq) Descriptor() ([]byte, []int) { - return file_group_group_proto_rawDescGZIP(), []int{16} +func (m *SetOwnerGroupNickNameReq) XXX_Size() int { + return xxx_messageInfo_SetOwnerGroupNickNameReq.Size(m) +} +func (m *SetOwnerGroupNickNameReq) XXX_DiscardUnknown() { + xxx_messageInfo_SetOwnerGroupNickNameReq.DiscardUnknown(m) } -func (x *SetOwnerGroupNickNameReq) GetGroupID() string { - if x != nil { - return x.GroupID +var xxx_messageInfo_SetOwnerGroupNickNameReq proto.InternalMessageInfo + +func (m *SetOwnerGroupNickNameReq) GetGroupID() string { + if m != nil { + return m.GroupID } return "" } -func (x *SetOwnerGroupNickNameReq) GetNickName() string { - if x != nil { - return x.NickName +func (m *SetOwnerGroupNickNameReq) GetNickName() string { + if m != nil { + return m.NickName } return "" } -func (x *SetOwnerGroupNickNameReq) GetOperationID() string { - if x != nil { - return x.OperationID +func (m *SetOwnerGroupNickNameReq) GetOperationID() string { + if m != nil { + return m.OperationID } return "" } -func (x *SetOwnerGroupNickNameReq) GetToken() string { - if x != nil { - return x.Token +func (m *SetOwnerGroupNickNameReq) GetToken() string { + if m != nil { + return m.Token } return "" } type QuitGroupReq struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - GroupID string `protobuf:"bytes,1,opt,name=groupID,proto3" json:"groupID,omitempty"` - OperationID string `protobuf:"bytes,2,opt,name=operationID,proto3" json:"operationID,omitempty"` - Token string `protobuf:"bytes,3,opt,name=token,proto3" json:"token,omitempty"` + GroupID string `protobuf:"bytes,1,opt,name=groupID" json:"groupID,omitempty"` + OperationID string `protobuf:"bytes,2,opt,name=operationID" json:"operationID,omitempty"` + Token string `protobuf:"bytes,3,opt,name=token" json:"token,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (x *QuitGroupReq) Reset() { - *x = QuitGroupReq{} - if protoimpl.UnsafeEnabled { - mi := &file_group_group_proto_msgTypes[17] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } +func (m *QuitGroupReq) Reset() { *m = QuitGroupReq{} } +func (m *QuitGroupReq) String() string { return proto.CompactTextString(m) } +func (*QuitGroupReq) ProtoMessage() {} +func (*QuitGroupReq) Descriptor() ([]byte, []int) { + return fileDescriptor_group_9fd4d73937974f0d, []int{17} } - -func (x *QuitGroupReq) String() string { - return protoimpl.X.MessageStringOf(x) +func (m *QuitGroupReq) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_QuitGroupReq.Unmarshal(m, b) } - -func (*QuitGroupReq) ProtoMessage() {} - -func (x *QuitGroupReq) ProtoReflect() protoreflect.Message { - mi := &file_group_group_proto_msgTypes[17] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) +func (m *QuitGroupReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_QuitGroupReq.Marshal(b, m, deterministic) } - -// Deprecated: Use QuitGroupReq.ProtoReflect.Descriptor instead. -func (*QuitGroupReq) Descriptor() ([]byte, []int) { - return file_group_group_proto_rawDescGZIP(), []int{17} +func (dst *QuitGroupReq) XXX_Merge(src proto.Message) { + xxx_messageInfo_QuitGroupReq.Merge(dst, src) +} +func (m *QuitGroupReq) XXX_Size() int { + return xxx_messageInfo_QuitGroupReq.Size(m) } +func (m *QuitGroupReq) XXX_DiscardUnknown() { + xxx_messageInfo_QuitGroupReq.DiscardUnknown(m) +} + +var xxx_messageInfo_QuitGroupReq proto.InternalMessageInfo -func (x *QuitGroupReq) GetGroupID() string { - if x != nil { - return x.GroupID +func (m *QuitGroupReq) GetGroupID() string { + if m != nil { + return m.GroupID } return "" } -func (x *QuitGroupReq) GetOperationID() string { - if x != nil { - return x.OperationID +func (m *QuitGroupReq) GetOperationID() string { + if m != nil { + return m.OperationID } return "" } -func (x *QuitGroupReq) GetToken() string { - if x != nil { - return x.Token +func (m *QuitGroupReq) GetToken() string { + if m != nil { + return m.Token } return "" } type GroupApplicationUserInfo struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - GroupID string `protobuf:"bytes,1,opt,name=groupID,proto3" json:"groupID,omitempty"` - Uid string `protobuf:"bytes,2,opt,name=uid,proto3" json:"uid,omitempty"` - Name string `protobuf:"bytes,3,opt,name=name,proto3" json:"name,omitempty"` - Icon string `protobuf:"bytes,4,opt,name=icon,proto3" json:"icon,omitempty"` - ReqMsg string `protobuf:"bytes,5,opt,name=reqMsg,proto3" json:"reqMsg,omitempty"` - ApplicationTime int64 `protobuf:"varint,6,opt,name=applicationTime,proto3" json:"applicationTime,omitempty"` - Flag int32 `protobuf:"varint,7,opt,name=flag,proto3" json:"flag,omitempty"` - OperatorID string `protobuf:"bytes,8,opt,name=operatorID,proto3" json:"operatorID,omitempty"` - HandledMsg string `protobuf:"bytes,9,opt,name=handledMsg,proto3" json:"handledMsg,omitempty"` + GroupID string `protobuf:"bytes,1,opt,name=groupID" json:"groupID,omitempty"` + Uid string `protobuf:"bytes,2,opt,name=uid" json:"uid,omitempty"` + Name string `protobuf:"bytes,3,opt,name=name" json:"name,omitempty"` + Icon string `protobuf:"bytes,4,opt,name=icon" json:"icon,omitempty"` + ReqMsg string `protobuf:"bytes,5,opt,name=reqMsg" json:"reqMsg,omitempty"` + ApplicationTime int64 `protobuf:"varint,6,opt,name=applicationTime" json:"applicationTime,omitempty"` + Flag int32 `protobuf:"varint,7,opt,name=flag" json:"flag,omitempty"` + OperatorID string `protobuf:"bytes,8,opt,name=operatorID" json:"operatorID,omitempty"` + HandledMsg string `protobuf:"bytes,9,opt,name=handledMsg" json:"handledMsg,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *GroupApplicationUserInfo) Reset() { *m = GroupApplicationUserInfo{} } +func (m *GroupApplicationUserInfo) String() string { return proto.CompactTextString(m) } +func (*GroupApplicationUserInfo) ProtoMessage() {} +func (*GroupApplicationUserInfo) Descriptor() ([]byte, []int) { + return fileDescriptor_group_9fd4d73937974f0d, []int{18} } - -func (x *GroupApplicationUserInfo) Reset() { - *x = GroupApplicationUserInfo{} - if protoimpl.UnsafeEnabled { - mi := &file_group_group_proto_msgTypes[18] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } +func (m *GroupApplicationUserInfo) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GroupApplicationUserInfo.Unmarshal(m, b) } - -func (x *GroupApplicationUserInfo) String() string { - return protoimpl.X.MessageStringOf(x) +func (m *GroupApplicationUserInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GroupApplicationUserInfo.Marshal(b, m, deterministic) } - -func (*GroupApplicationUserInfo) ProtoMessage() {} - -func (x *GroupApplicationUserInfo) ProtoReflect() protoreflect.Message { - mi := &file_group_group_proto_msgTypes[18] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) +func (dst *GroupApplicationUserInfo) XXX_Merge(src proto.Message) { + xxx_messageInfo_GroupApplicationUserInfo.Merge(dst, src) } - -// Deprecated: Use GroupApplicationUserInfo.ProtoReflect.Descriptor instead. -func (*GroupApplicationUserInfo) Descriptor() ([]byte, []int) { - return file_group_group_proto_rawDescGZIP(), []int{18} +func (m *GroupApplicationUserInfo) XXX_Size() int { + return xxx_messageInfo_GroupApplicationUserInfo.Size(m) +} +func (m *GroupApplicationUserInfo) XXX_DiscardUnknown() { + xxx_messageInfo_GroupApplicationUserInfo.DiscardUnknown(m) } -func (x *GroupApplicationUserInfo) GetGroupID() string { - if x != nil { - return x.GroupID +var xxx_messageInfo_GroupApplicationUserInfo proto.InternalMessageInfo + +func (m *GroupApplicationUserInfo) GetGroupID() string { + if m != nil { + return m.GroupID } return "" } -func (x *GroupApplicationUserInfo) GetUid() string { - if x != nil { - return x.Uid +func (m *GroupApplicationUserInfo) GetUid() string { + if m != nil { + return m.Uid } return "" } -func (x *GroupApplicationUserInfo) GetName() string { - if x != nil { - return x.Name +func (m *GroupApplicationUserInfo) GetName() string { + if m != nil { + return m.Name } return "" } -func (x *GroupApplicationUserInfo) GetIcon() string { - if x != nil { - return x.Icon +func (m *GroupApplicationUserInfo) GetIcon() string { + if m != nil { + return m.Icon } return "" } -func (x *GroupApplicationUserInfo) GetReqMsg() string { - if x != nil { - return x.ReqMsg +func (m *GroupApplicationUserInfo) GetReqMsg() string { + if m != nil { + return m.ReqMsg } return "" } -func (x *GroupApplicationUserInfo) GetApplicationTime() int64 { - if x != nil { - return x.ApplicationTime +func (m *GroupApplicationUserInfo) GetApplicationTime() int64 { + if m != nil { + return m.ApplicationTime } return 0 } -func (x *GroupApplicationUserInfo) GetFlag() int32 { - if x != nil { - return x.Flag +func (m *GroupApplicationUserInfo) GetFlag() int32 { + if m != nil { + return m.Flag } return 0 } -func (x *GroupApplicationUserInfo) GetOperatorID() string { - if x != nil { - return x.OperatorID +func (m *GroupApplicationUserInfo) GetOperatorID() string { + if m != nil { + return m.OperatorID } return "" } -func (x *GroupApplicationUserInfo) GetHandledMsg() string { - if x != nil { - return x.HandledMsg +func (m *GroupApplicationUserInfo) GetHandledMsg() string { + if m != nil { + return m.HandledMsg } return "" } type GroupMemberFullInfo struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - UserId string `protobuf:"bytes,1,opt,name=userId,proto3" json:"userId,omitempty"` - Role int32 `protobuf:"varint,2,opt,name=role,proto3" json:"role,omitempty"` - JoinTime uint64 `protobuf:"varint,3,opt,name=joinTime,proto3" json:"joinTime,omitempty"` - NickName string `protobuf:"bytes,4,opt,name=nickName,proto3" json:"nickName,omitempty"` - FaceUrl string `protobuf:"bytes,5,opt,name=faceUrl,proto3" json:"faceUrl,omitempty"` + UserId string `protobuf:"bytes,1,opt,name=userId" json:"userId,omitempty"` + Role int32 `protobuf:"varint,2,opt,name=role" json:"role,omitempty"` + JoinTime uint64 `protobuf:"varint,3,opt,name=joinTime" json:"joinTime,omitempty"` + NickName string `protobuf:"bytes,4,opt,name=nickName" json:"nickName,omitempty"` + FaceUrl string `protobuf:"bytes,5,opt,name=faceUrl" json:"faceUrl,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *GroupMemberFullInfo) Reset() { *m = GroupMemberFullInfo{} } +func (m *GroupMemberFullInfo) String() string { return proto.CompactTextString(m) } +func (*GroupMemberFullInfo) ProtoMessage() {} +func (*GroupMemberFullInfo) Descriptor() ([]byte, []int) { + return fileDescriptor_group_9fd4d73937974f0d, []int{19} } - -func (x *GroupMemberFullInfo) Reset() { - *x = GroupMemberFullInfo{} - if protoimpl.UnsafeEnabled { - mi := &file_group_group_proto_msgTypes[19] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } +func (m *GroupMemberFullInfo) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GroupMemberFullInfo.Unmarshal(m, b) } - -func (x *GroupMemberFullInfo) String() string { - return protoimpl.X.MessageStringOf(x) +func (m *GroupMemberFullInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GroupMemberFullInfo.Marshal(b, m, deterministic) } - -func (*GroupMemberFullInfo) ProtoMessage() {} - -func (x *GroupMemberFullInfo) ProtoReflect() protoreflect.Message { - mi := &file_group_group_proto_msgTypes[19] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) +func (dst *GroupMemberFullInfo) XXX_Merge(src proto.Message) { + xxx_messageInfo_GroupMemberFullInfo.Merge(dst, src) } - -// Deprecated: Use GroupMemberFullInfo.ProtoReflect.Descriptor instead. -func (*GroupMemberFullInfo) Descriptor() ([]byte, []int) { - return file_group_group_proto_rawDescGZIP(), []int{19} +func (m *GroupMemberFullInfo) XXX_Size() int { + return xxx_messageInfo_GroupMemberFullInfo.Size(m) +} +func (m *GroupMemberFullInfo) XXX_DiscardUnknown() { + xxx_messageInfo_GroupMemberFullInfo.DiscardUnknown(m) } -func (x *GroupMemberFullInfo) GetUserId() string { - if x != nil { - return x.UserId +var xxx_messageInfo_GroupMemberFullInfo proto.InternalMessageInfo + +func (m *GroupMemberFullInfo) GetUserId() string { + if m != nil { + return m.UserId } return "" } -func (x *GroupMemberFullInfo) GetRole() int32 { - if x != nil { - return x.Role +func (m *GroupMemberFullInfo) GetRole() int32 { + if m != nil { + return m.Role } return 0 } -func (x *GroupMemberFullInfo) GetJoinTime() uint64 { - if x != nil { - return x.JoinTime +func (m *GroupMemberFullInfo) GetJoinTime() uint64 { + if m != nil { + return m.JoinTime } return 0 } -func (x *GroupMemberFullInfo) GetNickName() string { - if x != nil { - return x.NickName +func (m *GroupMemberFullInfo) GetNickName() string { + if m != nil { + return m.NickName } return "" } -func (x *GroupMemberFullInfo) GetFaceUrl() string { - if x != nil { - return x.FaceUrl +func (m *GroupMemberFullInfo) GetFaceUrl() string { + if m != nil { + return m.FaceUrl } return "" } type GetGroupMemberListReq struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - GroupID string `protobuf:"bytes,1,opt,name=groupID,proto3" json:"groupID,omitempty"` - Token string `protobuf:"bytes,2,opt,name=token,proto3" json:"token,omitempty"` - OperationID string `protobuf:"bytes,3,opt,name=operationID,proto3" json:"operationID,omitempty"` - Filter int32 `protobuf:"varint,4,opt,name=filter,proto3" json:"filter,omitempty"` - NextSeq int32 `protobuf:"varint,5,opt,name=nextSeq,proto3" json:"nextSeq,omitempty"` + GroupID string `protobuf:"bytes,1,opt,name=groupID" json:"groupID,omitempty"` + Token string `protobuf:"bytes,2,opt,name=token" json:"token,omitempty"` + OperationID string `protobuf:"bytes,3,opt,name=operationID" json:"operationID,omitempty"` + Filter int32 `protobuf:"varint,4,opt,name=filter" json:"filter,omitempty"` + NextSeq int32 `protobuf:"varint,5,opt,name=nextSeq" json:"nextSeq,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *GetGroupMemberListReq) Reset() { *m = GetGroupMemberListReq{} } +func (m *GetGroupMemberListReq) String() string { return proto.CompactTextString(m) } +func (*GetGroupMemberListReq) ProtoMessage() {} +func (*GetGroupMemberListReq) Descriptor() ([]byte, []int) { + return fileDescriptor_group_9fd4d73937974f0d, []int{20} } - -func (x *GetGroupMemberListReq) Reset() { - *x = GetGroupMemberListReq{} - if protoimpl.UnsafeEnabled { - mi := &file_group_group_proto_msgTypes[20] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } +func (m *GetGroupMemberListReq) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GetGroupMemberListReq.Unmarshal(m, b) } - -func (x *GetGroupMemberListReq) String() string { - return protoimpl.X.MessageStringOf(x) +func (m *GetGroupMemberListReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GetGroupMemberListReq.Marshal(b, m, deterministic) } - -func (*GetGroupMemberListReq) ProtoMessage() {} - -func (x *GetGroupMemberListReq) ProtoReflect() protoreflect.Message { - mi := &file_group_group_proto_msgTypes[20] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) +func (dst *GetGroupMemberListReq) XXX_Merge(src proto.Message) { + xxx_messageInfo_GetGroupMemberListReq.Merge(dst, src) } - -// Deprecated: Use GetGroupMemberListReq.ProtoReflect.Descriptor instead. -func (*GetGroupMemberListReq) Descriptor() ([]byte, []int) { - return file_group_group_proto_rawDescGZIP(), []int{20} +func (m *GetGroupMemberListReq) XXX_Size() int { + return xxx_messageInfo_GetGroupMemberListReq.Size(m) +} +func (m *GetGroupMemberListReq) XXX_DiscardUnknown() { + xxx_messageInfo_GetGroupMemberListReq.DiscardUnknown(m) } -func (x *GetGroupMemberListReq) GetGroupID() string { - if x != nil { - return x.GroupID +var xxx_messageInfo_GetGroupMemberListReq proto.InternalMessageInfo + +func (m *GetGroupMemberListReq) GetGroupID() string { + if m != nil { + return m.GroupID } return "" } -func (x *GetGroupMemberListReq) GetToken() string { - if x != nil { - return x.Token +func (m *GetGroupMemberListReq) GetToken() string { + if m != nil { + return m.Token } return "" } -func (x *GetGroupMemberListReq) GetOperationID() string { - if x != nil { - return x.OperationID +func (m *GetGroupMemberListReq) GetOperationID() string { + if m != nil { + return m.OperationID } return "" } -func (x *GetGroupMemberListReq) GetFilter() int32 { - if x != nil { - return x.Filter +func (m *GetGroupMemberListReq) GetFilter() int32 { + if m != nil { + return m.Filter } return 0 } -func (x *GetGroupMemberListReq) GetNextSeq() int32 { - if x != nil { - return x.NextSeq +func (m *GetGroupMemberListReq) GetNextSeq() int32 { + if m != nil { + return m.NextSeq } return 0 } type GetGroupMemberListResp struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - ErrorCode int32 `protobuf:"varint,1,opt,name=errorCode,proto3" json:"errorCode,omitempty"` - ErrorMsg string `protobuf:"bytes,2,opt,name=errorMsg,proto3" json:"errorMsg,omitempty"` - MemberList []*GroupMemberFullInfo `protobuf:"bytes,3,rep,name=memberList,proto3" json:"memberList,omitempty"` - NextSeq int32 `protobuf:"varint,4,opt,name=nextSeq,proto3" json:"nextSeq,omitempty"` + ErrorCode int32 `protobuf:"varint,1,opt,name=errorCode" json:"errorCode,omitempty"` + ErrorMsg string `protobuf:"bytes,2,opt,name=errorMsg" json:"errorMsg,omitempty"` + MemberList []*GroupMemberFullInfo `protobuf:"bytes,3,rep,name=memberList" json:"memberList,omitempty"` + NextSeq int32 `protobuf:"varint,4,opt,name=nextSeq" json:"nextSeq,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *GetGroupMemberListResp) Reset() { *m = GetGroupMemberListResp{} } +func (m *GetGroupMemberListResp) String() string { return proto.CompactTextString(m) } +func (*GetGroupMemberListResp) ProtoMessage() {} +func (*GetGroupMemberListResp) Descriptor() ([]byte, []int) { + return fileDescriptor_group_9fd4d73937974f0d, []int{21} } - -func (x *GetGroupMemberListResp) Reset() { - *x = GetGroupMemberListResp{} - if protoimpl.UnsafeEnabled { - mi := &file_group_group_proto_msgTypes[21] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } +func (m *GetGroupMemberListResp) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GetGroupMemberListResp.Unmarshal(m, b) } - -func (x *GetGroupMemberListResp) String() string { - return protoimpl.X.MessageStringOf(x) +func (m *GetGroupMemberListResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GetGroupMemberListResp.Marshal(b, m, deterministic) } - -func (*GetGroupMemberListResp) ProtoMessage() {} - -func (x *GetGroupMemberListResp) ProtoReflect() protoreflect.Message { - mi := &file_group_group_proto_msgTypes[21] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) +func (dst *GetGroupMemberListResp) XXX_Merge(src proto.Message) { + xxx_messageInfo_GetGroupMemberListResp.Merge(dst, src) } - -// Deprecated: Use GetGroupMemberListResp.ProtoReflect.Descriptor instead. -func (*GetGroupMemberListResp) Descriptor() ([]byte, []int) { - return file_group_group_proto_rawDescGZIP(), []int{21} +func (m *GetGroupMemberListResp) XXX_Size() int { + return xxx_messageInfo_GetGroupMemberListResp.Size(m) } +func (m *GetGroupMemberListResp) XXX_DiscardUnknown() { + xxx_messageInfo_GetGroupMemberListResp.DiscardUnknown(m) +} + +var xxx_messageInfo_GetGroupMemberListResp proto.InternalMessageInfo -func (x *GetGroupMemberListResp) GetErrorCode() int32 { - if x != nil { - return x.ErrorCode +func (m *GetGroupMemberListResp) GetErrorCode() int32 { + if m != nil { + return m.ErrorCode } return 0 } -func (x *GetGroupMemberListResp) GetErrorMsg() string { - if x != nil { - return x.ErrorMsg +func (m *GetGroupMemberListResp) GetErrorMsg() string { + if m != nil { + return m.ErrorMsg } return "" } -func (x *GetGroupMemberListResp) GetMemberList() []*GroupMemberFullInfo { - if x != nil { - return x.MemberList +func (m *GetGroupMemberListResp) GetMemberList() []*GroupMemberFullInfo { + if m != nil { + return m.MemberList } return nil } -func (x *GetGroupMemberListResp) GetNextSeq() int32 { - if x != nil { - return x.NextSeq +func (m *GetGroupMemberListResp) GetNextSeq() int32 { + if m != nil { + return m.NextSeq } return 0 } type GetGroupMembersInfoReq struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - GroupID string `protobuf:"bytes,1,opt,name=groupID,proto3" json:"groupID,omitempty"` - MemberList []string `protobuf:"bytes,2,rep,name=memberList,proto3" json:"memberList,omitempty"` - Token string `protobuf:"bytes,3,opt,name=token,proto3" json:"token,omitempty"` - OperationID string `protobuf:"bytes,4,opt,name=operationID,proto3" json:"operationID,omitempty"` + GroupID string `protobuf:"bytes,1,opt,name=groupID" json:"groupID,omitempty"` + MemberList []string `protobuf:"bytes,2,rep,name=memberList" json:"memberList,omitempty"` + Token string `protobuf:"bytes,3,opt,name=token" json:"token,omitempty"` + OperationID string `protobuf:"bytes,4,opt,name=operationID" json:"operationID,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *GetGroupMembersInfoReq) Reset() { *m = GetGroupMembersInfoReq{} } +func (m *GetGroupMembersInfoReq) String() string { return proto.CompactTextString(m) } +func (*GetGroupMembersInfoReq) ProtoMessage() {} +func (*GetGroupMembersInfoReq) Descriptor() ([]byte, []int) { + return fileDescriptor_group_9fd4d73937974f0d, []int{22} } - -func (x *GetGroupMembersInfoReq) Reset() { - *x = GetGroupMembersInfoReq{} - if protoimpl.UnsafeEnabled { - mi := &file_group_group_proto_msgTypes[22] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } +func (m *GetGroupMembersInfoReq) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GetGroupMembersInfoReq.Unmarshal(m, b) } - -func (x *GetGroupMembersInfoReq) String() string { - return protoimpl.X.MessageStringOf(x) +func (m *GetGroupMembersInfoReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GetGroupMembersInfoReq.Marshal(b, m, deterministic) } - -func (*GetGroupMembersInfoReq) ProtoMessage() {} - -func (x *GetGroupMembersInfoReq) ProtoReflect() protoreflect.Message { - mi := &file_group_group_proto_msgTypes[22] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) +func (dst *GetGroupMembersInfoReq) XXX_Merge(src proto.Message) { + xxx_messageInfo_GetGroupMembersInfoReq.Merge(dst, src) } - -// Deprecated: Use GetGroupMembersInfoReq.ProtoReflect.Descriptor instead. -func (*GetGroupMembersInfoReq) Descriptor() ([]byte, []int) { - return file_group_group_proto_rawDescGZIP(), []int{22} +func (m *GetGroupMembersInfoReq) XXX_Size() int { + return xxx_messageInfo_GetGroupMembersInfoReq.Size(m) +} +func (m *GetGroupMembersInfoReq) XXX_DiscardUnknown() { + xxx_messageInfo_GetGroupMembersInfoReq.DiscardUnknown(m) } -func (x *GetGroupMembersInfoReq) GetGroupID() string { - if x != nil { - return x.GroupID +var xxx_messageInfo_GetGroupMembersInfoReq proto.InternalMessageInfo + +func (m *GetGroupMembersInfoReq) GetGroupID() string { + if m != nil { + return m.GroupID } return "" } -func (x *GetGroupMembersInfoReq) GetMemberList() []string { - if x != nil { - return x.MemberList +func (m *GetGroupMembersInfoReq) GetMemberList() []string { + if m != nil { + return m.MemberList } return nil } -func (x *GetGroupMembersInfoReq) GetToken() string { - if x != nil { - return x.Token +func (m *GetGroupMembersInfoReq) GetToken() string { + if m != nil { + return m.Token } return "" } -func (x *GetGroupMembersInfoReq) GetOperationID() string { - if x != nil { - return x.OperationID +func (m *GetGroupMembersInfoReq) GetOperationID() string { + if m != nil { + return m.OperationID } return "" } type GetGroupMembersInfoResp struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - ErrorCode int32 `protobuf:"varint,1,opt,name=errorCode,proto3" json:"errorCode,omitempty"` - ErrorMsg string `protobuf:"bytes,2,opt,name=errorMsg,proto3" json:"errorMsg,omitempty"` - MemberList []*GroupMemberFullInfo `protobuf:"bytes,3,rep,name=memberList,proto3" json:"memberList,omitempty"` + ErrorCode int32 `protobuf:"varint,1,opt,name=errorCode" json:"errorCode,omitempty"` + ErrorMsg string `protobuf:"bytes,2,opt,name=errorMsg" json:"errorMsg,omitempty"` + MemberList []*GroupMemberFullInfo `protobuf:"bytes,3,rep,name=memberList" json:"memberList,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (x *GetGroupMembersInfoResp) Reset() { - *x = GetGroupMembersInfoResp{} - if protoimpl.UnsafeEnabled { - mi := &file_group_group_proto_msgTypes[23] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } +func (m *GetGroupMembersInfoResp) Reset() { *m = GetGroupMembersInfoResp{} } +func (m *GetGroupMembersInfoResp) String() string { return proto.CompactTextString(m) } +func (*GetGroupMembersInfoResp) ProtoMessage() {} +func (*GetGroupMembersInfoResp) Descriptor() ([]byte, []int) { + return fileDescriptor_group_9fd4d73937974f0d, []int{23} } - -func (x *GetGroupMembersInfoResp) String() string { - return protoimpl.X.MessageStringOf(x) +func (m *GetGroupMembersInfoResp) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GetGroupMembersInfoResp.Unmarshal(m, b) } - -func (*GetGroupMembersInfoResp) ProtoMessage() {} - -func (x *GetGroupMembersInfoResp) ProtoReflect() protoreflect.Message { - mi := &file_group_group_proto_msgTypes[23] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) +func (m *GetGroupMembersInfoResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GetGroupMembersInfoResp.Marshal(b, m, deterministic) } - -// Deprecated: Use GetGroupMembersInfoResp.ProtoReflect.Descriptor instead. -func (*GetGroupMembersInfoResp) Descriptor() ([]byte, []int) { - return file_group_group_proto_rawDescGZIP(), []int{23} +func (dst *GetGroupMembersInfoResp) XXX_Merge(src proto.Message) { + xxx_messageInfo_GetGroupMembersInfoResp.Merge(dst, src) } +func (m *GetGroupMembersInfoResp) XXX_Size() int { + return xxx_messageInfo_GetGroupMembersInfoResp.Size(m) +} +func (m *GetGroupMembersInfoResp) XXX_DiscardUnknown() { + xxx_messageInfo_GetGroupMembersInfoResp.DiscardUnknown(m) +} + +var xxx_messageInfo_GetGroupMembersInfoResp proto.InternalMessageInfo -func (x *GetGroupMembersInfoResp) GetErrorCode() int32 { - if x != nil { - return x.ErrorCode +func (m *GetGroupMembersInfoResp) GetErrorCode() int32 { + if m != nil { + return m.ErrorCode } return 0 } -func (x *GetGroupMembersInfoResp) GetErrorMsg() string { - if x != nil { - return x.ErrorMsg +func (m *GetGroupMembersInfoResp) GetErrorMsg() string { + if m != nil { + return m.ErrorMsg } return "" } -func (x *GetGroupMembersInfoResp) GetMemberList() []*GroupMemberFullInfo { - if x != nil { - return x.MemberList +func (m *GetGroupMembersInfoResp) GetMemberList() []*GroupMemberFullInfo { + if m != nil { + return m.MemberList } return nil } type KickGroupMemberReq struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - GroupID string `protobuf:"bytes,1,opt,name=groupID,proto3" json:"groupID,omitempty"` - UidListInfo []*GroupMemberFullInfo `protobuf:"bytes,2,rep,name=uidListInfo,proto3" json:"uidListInfo,omitempty"` - Reason string `protobuf:"bytes,3,opt,name=reason,proto3" json:"reason,omitempty"` - Token string `protobuf:"bytes,4,opt,name=token,proto3" json:"token,omitempty"` - OperationID string `protobuf:"bytes,5,opt,name=operationID,proto3" json:"operationID,omitempty"` + GroupID string `protobuf:"bytes,1,opt,name=groupID" json:"groupID,omitempty"` + UidListInfo []*GroupMemberFullInfo `protobuf:"bytes,2,rep,name=uidListInfo" json:"uidListInfo,omitempty"` + Reason string `protobuf:"bytes,3,opt,name=reason" json:"reason,omitempty"` + Token string `protobuf:"bytes,4,opt,name=token" json:"token,omitempty"` + OperationID string `protobuf:"bytes,5,opt,name=operationID" json:"operationID,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *KickGroupMemberReq) Reset() { *m = KickGroupMemberReq{} } +func (m *KickGroupMemberReq) String() string { return proto.CompactTextString(m) } +func (*KickGroupMemberReq) ProtoMessage() {} +func (*KickGroupMemberReq) Descriptor() ([]byte, []int) { + return fileDescriptor_group_9fd4d73937974f0d, []int{24} } - -func (x *KickGroupMemberReq) Reset() { - *x = KickGroupMemberReq{} - if protoimpl.UnsafeEnabled { - mi := &file_group_group_proto_msgTypes[24] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } +func (m *KickGroupMemberReq) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_KickGroupMemberReq.Unmarshal(m, b) } - -func (x *KickGroupMemberReq) String() string { - return protoimpl.X.MessageStringOf(x) +func (m *KickGroupMemberReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_KickGroupMemberReq.Marshal(b, m, deterministic) } - -func (*KickGroupMemberReq) ProtoMessage() {} - -func (x *KickGroupMemberReq) ProtoReflect() protoreflect.Message { - mi := &file_group_group_proto_msgTypes[24] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) +func (dst *KickGroupMemberReq) XXX_Merge(src proto.Message) { + xxx_messageInfo_KickGroupMemberReq.Merge(dst, src) } - -// Deprecated: Use KickGroupMemberReq.ProtoReflect.Descriptor instead. -func (*KickGroupMemberReq) Descriptor() ([]byte, []int) { - return file_group_group_proto_rawDescGZIP(), []int{24} +func (m *KickGroupMemberReq) XXX_Size() int { + return xxx_messageInfo_KickGroupMemberReq.Size(m) +} +func (m *KickGroupMemberReq) XXX_DiscardUnknown() { + xxx_messageInfo_KickGroupMemberReq.DiscardUnknown(m) } -func (x *KickGroupMemberReq) GetGroupID() string { - if x != nil { - return x.GroupID +var xxx_messageInfo_KickGroupMemberReq proto.InternalMessageInfo + +func (m *KickGroupMemberReq) GetGroupID() string { + if m != nil { + return m.GroupID } return "" } -func (x *KickGroupMemberReq) GetUidListInfo() []*GroupMemberFullInfo { - if x != nil { - return x.UidListInfo +func (m *KickGroupMemberReq) GetUidListInfo() []*GroupMemberFullInfo { + if m != nil { + return m.UidListInfo } return nil } -func (x *KickGroupMemberReq) GetReason() string { - if x != nil { - return x.Reason +func (m *KickGroupMemberReq) GetReason() string { + if m != nil { + return m.Reason } return "" } -func (x *KickGroupMemberReq) GetToken() string { - if x != nil { - return x.Token +func (m *KickGroupMemberReq) GetToken() string { + if m != nil { + return m.Token } return "" } -func (x *KickGroupMemberReq) GetOperationID() string { - if x != nil { - return x.OperationID +func (m *KickGroupMemberReq) GetOperationID() string { + if m != nil { + return m.OperationID } return "" } type Id2Result struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - UId string `protobuf:"bytes,1,opt,name=uId,proto3" json:"uId,omitempty"` - Result int32 `protobuf:"varint,2,opt,name=result,proto3" json:"result,omitempty"` //0 ok; -1 error + UId string `protobuf:"bytes,1,opt,name=uId" json:"uId,omitempty"` + Result int32 `protobuf:"varint,2,opt,name=result" json:"result,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (x *Id2Result) Reset() { - *x = Id2Result{} - if protoimpl.UnsafeEnabled { - mi := &file_group_group_proto_msgTypes[25] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } +func (m *Id2Result) Reset() { *m = Id2Result{} } +func (m *Id2Result) String() string { return proto.CompactTextString(m) } +func (*Id2Result) ProtoMessage() {} +func (*Id2Result) Descriptor() ([]byte, []int) { + return fileDescriptor_group_9fd4d73937974f0d, []int{25} } - -func (x *Id2Result) String() string { - return protoimpl.X.MessageStringOf(x) +func (m *Id2Result) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_Id2Result.Unmarshal(m, b) } - -func (*Id2Result) ProtoMessage() {} - -func (x *Id2Result) ProtoReflect() protoreflect.Message { - mi := &file_group_group_proto_msgTypes[25] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) +func (m *Id2Result) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_Id2Result.Marshal(b, m, deterministic) } - -// Deprecated: Use Id2Result.ProtoReflect.Descriptor instead. -func (*Id2Result) Descriptor() ([]byte, []int) { - return file_group_group_proto_rawDescGZIP(), []int{25} +func (dst *Id2Result) XXX_Merge(src proto.Message) { + xxx_messageInfo_Id2Result.Merge(dst, src) +} +func (m *Id2Result) XXX_Size() int { + return xxx_messageInfo_Id2Result.Size(m) } +func (m *Id2Result) XXX_DiscardUnknown() { + xxx_messageInfo_Id2Result.DiscardUnknown(m) +} + +var xxx_messageInfo_Id2Result proto.InternalMessageInfo -func (x *Id2Result) GetUId() string { - if x != nil { - return x.UId +func (m *Id2Result) GetUId() string { + if m != nil { + return m.UId } return "" } -func (x *Id2Result) GetResult() int32 { - if x != nil { - return x.Result +func (m *Id2Result) GetResult() int32 { + if m != nil { + return m.Result } return 0 } type KickGroupMemberResp struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - ErrorCode int32 `protobuf:"varint,1,opt,name=errorCode,proto3" json:"errorCode,omitempty"` - ErrorMsg string `protobuf:"bytes,2,opt,name=errorMsg,proto3" json:"errorMsg,omitempty"` - Id2Result []*Id2Result `protobuf:"bytes,3,rep,name=id2result,proto3" json:"id2result,omitempty"` + ErrorCode int32 `protobuf:"varint,1,opt,name=errorCode" json:"errorCode,omitempty"` + ErrorMsg string `protobuf:"bytes,2,opt,name=errorMsg" json:"errorMsg,omitempty"` + Id2Result []*Id2Result `protobuf:"bytes,3,rep,name=id2result" json:"id2result,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (x *KickGroupMemberResp) Reset() { - *x = KickGroupMemberResp{} - if protoimpl.UnsafeEnabled { - mi := &file_group_group_proto_msgTypes[26] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } +func (m *KickGroupMemberResp) Reset() { *m = KickGroupMemberResp{} } +func (m *KickGroupMemberResp) String() string { return proto.CompactTextString(m) } +func (*KickGroupMemberResp) ProtoMessage() {} +func (*KickGroupMemberResp) Descriptor() ([]byte, []int) { + return fileDescriptor_group_9fd4d73937974f0d, []int{26} } - -func (x *KickGroupMemberResp) String() string { - return protoimpl.X.MessageStringOf(x) +func (m *KickGroupMemberResp) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_KickGroupMemberResp.Unmarshal(m, b) } - -func (*KickGroupMemberResp) ProtoMessage() {} - -func (x *KickGroupMemberResp) ProtoReflect() protoreflect.Message { - mi := &file_group_group_proto_msgTypes[26] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) +func (m *KickGroupMemberResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_KickGroupMemberResp.Marshal(b, m, deterministic) } - -// Deprecated: Use KickGroupMemberResp.ProtoReflect.Descriptor instead. -func (*KickGroupMemberResp) Descriptor() ([]byte, []int) { - return file_group_group_proto_rawDescGZIP(), []int{26} +func (dst *KickGroupMemberResp) XXX_Merge(src proto.Message) { + xxx_messageInfo_KickGroupMemberResp.Merge(dst, src) +} +func (m *KickGroupMemberResp) XXX_Size() int { + return xxx_messageInfo_KickGroupMemberResp.Size(m) +} +func (m *KickGroupMemberResp) XXX_DiscardUnknown() { + xxx_messageInfo_KickGroupMemberResp.DiscardUnknown(m) } -func (x *KickGroupMemberResp) GetErrorCode() int32 { - if x != nil { - return x.ErrorCode +var xxx_messageInfo_KickGroupMemberResp proto.InternalMessageInfo + +func (m *KickGroupMemberResp) GetErrorCode() int32 { + if m != nil { + return m.ErrorCode } return 0 } -func (x *KickGroupMemberResp) GetErrorMsg() string { - if x != nil { - return x.ErrorMsg +func (m *KickGroupMemberResp) GetErrorMsg() string { + if m != nil { + return m.ErrorMsg } return "" } -func (x *KickGroupMemberResp) GetId2Result() []*Id2Result { - if x != nil { - return x.Id2Result +func (m *KickGroupMemberResp) GetId2Result() []*Id2Result { + if m != nil { + return m.Id2Result } return nil } type GetJoinedGroupListReq struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Token string `protobuf:"bytes,1,opt,name=token,proto3" json:"token,omitempty"` - OperationID string `protobuf:"bytes,2,opt,name=operationID,proto3" json:"operationID,omitempty"` + Token string `protobuf:"bytes,1,opt,name=token" json:"token,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 (x *GetJoinedGroupListReq) Reset() { - *x = GetJoinedGroupListReq{} - if protoimpl.UnsafeEnabled { - mi := &file_group_group_proto_msgTypes[27] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } +func (m *GetJoinedGroupListReq) Reset() { *m = GetJoinedGroupListReq{} } +func (m *GetJoinedGroupListReq) String() string { return proto.CompactTextString(m) } +func (*GetJoinedGroupListReq) ProtoMessage() {} +func (*GetJoinedGroupListReq) Descriptor() ([]byte, []int) { + return fileDescriptor_group_9fd4d73937974f0d, []int{27} } - -func (x *GetJoinedGroupListReq) String() string { - return protoimpl.X.MessageStringOf(x) +func (m *GetJoinedGroupListReq) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GetJoinedGroupListReq.Unmarshal(m, b) } - -func (*GetJoinedGroupListReq) ProtoMessage() {} - -func (x *GetJoinedGroupListReq) ProtoReflect() protoreflect.Message { - mi := &file_group_group_proto_msgTypes[27] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) +func (m *GetJoinedGroupListReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GetJoinedGroupListReq.Marshal(b, m, deterministic) } - -// Deprecated: Use GetJoinedGroupListReq.ProtoReflect.Descriptor instead. -func (*GetJoinedGroupListReq) Descriptor() ([]byte, []int) { - return file_group_group_proto_rawDescGZIP(), []int{27} +func (dst *GetJoinedGroupListReq) XXX_Merge(src proto.Message) { + xxx_messageInfo_GetJoinedGroupListReq.Merge(dst, src) +} +func (m *GetJoinedGroupListReq) XXX_Size() int { + return xxx_messageInfo_GetJoinedGroupListReq.Size(m) } +func (m *GetJoinedGroupListReq) XXX_DiscardUnknown() { + xxx_messageInfo_GetJoinedGroupListReq.DiscardUnknown(m) +} + +var xxx_messageInfo_GetJoinedGroupListReq proto.InternalMessageInfo -func (x *GetJoinedGroupListReq) GetToken() string { - if x != nil { - return x.Token +func (m *GetJoinedGroupListReq) GetToken() string { + if m != nil { + return m.Token } return "" } -func (x *GetJoinedGroupListReq) GetOperationID() string { - if x != nil { - return x.OperationID +func (m *GetJoinedGroupListReq) GetOperationID() string { + if m != nil { + return m.OperationID } return "" } type GroupInfo struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - GroupId string `protobuf:"bytes,1,opt,name=groupId,proto3" json:"groupId,omitempty"` - GroupName string `protobuf:"bytes,2,opt,name=groupName,proto3" json:"groupName,omitempty"` - Notification string `protobuf:"bytes,3,opt,name=notification,proto3" json:"notification,omitempty"` - Introduction string `protobuf:"bytes,4,opt,name=introduction,proto3" json:"introduction,omitempty"` - FaceUrl string `protobuf:"bytes,5,opt,name=faceUrl,proto3" json:"faceUrl,omitempty"` - CreateTime uint64 `protobuf:"varint,6,opt,name=createTime,proto3" json:"createTime,omitempty"` - OwnerId string `protobuf:"bytes,7,opt,name=ownerId,proto3" json:"ownerId,omitempty"` - MemberCount uint32 `protobuf:"varint,8,opt,name=memberCount,proto3" json:"memberCount,omitempty"` + GroupId string `protobuf:"bytes,1,opt,name=groupId" json:"groupId,omitempty"` + GroupName string `protobuf:"bytes,2,opt,name=groupName" json:"groupName,omitempty"` + Notification string `protobuf:"bytes,3,opt,name=notification" json:"notification,omitempty"` + Introduction string `protobuf:"bytes,4,opt,name=introduction" json:"introduction,omitempty"` + FaceUrl string `protobuf:"bytes,5,opt,name=faceUrl" json:"faceUrl,omitempty"` + CreateTime uint64 `protobuf:"varint,6,opt,name=createTime" json:"createTime,omitempty"` + OwnerId string `protobuf:"bytes,7,opt,name=ownerId" json:"ownerId,omitempty"` + MemberCount uint32 `protobuf:"varint,8,opt,name=memberCount" json:"memberCount,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *GroupInfo) Reset() { *m = GroupInfo{} } +func (m *GroupInfo) String() string { return proto.CompactTextString(m) } +func (*GroupInfo) ProtoMessage() {} +func (*GroupInfo) Descriptor() ([]byte, []int) { + return fileDescriptor_group_9fd4d73937974f0d, []int{28} } - -func (x *GroupInfo) Reset() { - *x = GroupInfo{} - if protoimpl.UnsafeEnabled { - mi := &file_group_group_proto_msgTypes[28] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } +func (m *GroupInfo) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GroupInfo.Unmarshal(m, b) } - -func (x *GroupInfo) String() string { - return protoimpl.X.MessageStringOf(x) +func (m *GroupInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GroupInfo.Marshal(b, m, deterministic) } - -func (*GroupInfo) ProtoMessage() {} - -func (x *GroupInfo) ProtoReflect() protoreflect.Message { - mi := &file_group_group_proto_msgTypes[28] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) +func (dst *GroupInfo) XXX_Merge(src proto.Message) { + xxx_messageInfo_GroupInfo.Merge(dst, src) } - -// Deprecated: Use GroupInfo.ProtoReflect.Descriptor instead. -func (*GroupInfo) Descriptor() ([]byte, []int) { - return file_group_group_proto_rawDescGZIP(), []int{28} +func (m *GroupInfo) XXX_Size() int { + return xxx_messageInfo_GroupInfo.Size(m) +} +func (m *GroupInfo) XXX_DiscardUnknown() { + xxx_messageInfo_GroupInfo.DiscardUnknown(m) } -func (x *GroupInfo) GetGroupId() string { - if x != nil { - return x.GroupId +var xxx_messageInfo_GroupInfo proto.InternalMessageInfo + +func (m *GroupInfo) GetGroupId() string { + if m != nil { + return m.GroupId } return "" } -func (x *GroupInfo) GetGroupName() string { - if x != nil { - return x.GroupName +func (m *GroupInfo) GetGroupName() string { + if m != nil { + return m.GroupName } return "" } -func (x *GroupInfo) GetNotification() string { - if x != nil { - return x.Notification +func (m *GroupInfo) GetNotification() string { + if m != nil { + return m.Notification } return "" } -func (x *GroupInfo) GetIntroduction() string { - if x != nil { - return x.Introduction +func (m *GroupInfo) GetIntroduction() string { + if m != nil { + return m.Introduction } return "" } -func (x *GroupInfo) GetFaceUrl() string { - if x != nil { - return x.FaceUrl +func (m *GroupInfo) GetFaceUrl() string { + if m != nil { + return m.FaceUrl } return "" } -func (x *GroupInfo) GetCreateTime() uint64 { - if x != nil { - return x.CreateTime +func (m *GroupInfo) GetCreateTime() uint64 { + if m != nil { + return m.CreateTime } return 0 } -func (x *GroupInfo) GetOwnerId() string { - if x != nil { - return x.OwnerId +func (m *GroupInfo) GetOwnerId() string { + if m != nil { + return m.OwnerId } return "" } -func (x *GroupInfo) GetMemberCount() uint32 { - if x != nil { - return x.MemberCount +func (m *GroupInfo) GetMemberCount() uint32 { + if m != nil { + return m.MemberCount } return 0 } type GetJoinedGroupListResp struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - ErrorCode int32 `protobuf:"varint,1,opt,name=errorCode,proto3" json:"errorCode,omitempty"` - ErrorMsg string `protobuf:"bytes,2,opt,name=errorMsg,proto3" json:"errorMsg,omitempty"` - GroupList []*GroupInfo `protobuf:"bytes,3,rep,name=groupList,proto3" json:"groupList,omitempty"` + ErrorCode int32 `protobuf:"varint,1,opt,name=errorCode" json:"errorCode,omitempty"` + ErrorMsg string `protobuf:"bytes,2,opt,name=errorMsg" json:"errorMsg,omitempty"` + GroupList []*GroupInfo `protobuf:"bytes,3,rep,name=groupList" json:"groupList,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (x *GetJoinedGroupListResp) Reset() { - *x = GetJoinedGroupListResp{} - if protoimpl.UnsafeEnabled { - mi := &file_group_group_proto_msgTypes[29] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } +func (m *GetJoinedGroupListResp) Reset() { *m = GetJoinedGroupListResp{} } +func (m *GetJoinedGroupListResp) String() string { return proto.CompactTextString(m) } +func (*GetJoinedGroupListResp) ProtoMessage() {} +func (*GetJoinedGroupListResp) Descriptor() ([]byte, []int) { + return fileDescriptor_group_9fd4d73937974f0d, []int{29} } - -func (x *GetJoinedGroupListResp) String() string { - return protoimpl.X.MessageStringOf(x) +func (m *GetJoinedGroupListResp) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GetJoinedGroupListResp.Unmarshal(m, b) } - -func (*GetJoinedGroupListResp) ProtoMessage() {} - -func (x *GetJoinedGroupListResp) ProtoReflect() protoreflect.Message { - mi := &file_group_group_proto_msgTypes[29] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) +func (m *GetJoinedGroupListResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GetJoinedGroupListResp.Marshal(b, m, deterministic) } - -// Deprecated: Use GetJoinedGroupListResp.ProtoReflect.Descriptor instead. -func (*GetJoinedGroupListResp) Descriptor() ([]byte, []int) { - return file_group_group_proto_rawDescGZIP(), []int{29} +func (dst *GetJoinedGroupListResp) XXX_Merge(src proto.Message) { + xxx_messageInfo_GetJoinedGroupListResp.Merge(dst, src) +} +func (m *GetJoinedGroupListResp) XXX_Size() int { + return xxx_messageInfo_GetJoinedGroupListResp.Size(m) +} +func (m *GetJoinedGroupListResp) XXX_DiscardUnknown() { + xxx_messageInfo_GetJoinedGroupListResp.DiscardUnknown(m) } -func (x *GetJoinedGroupListResp) GetErrorCode() int32 { - if x != nil { - return x.ErrorCode +var xxx_messageInfo_GetJoinedGroupListResp proto.InternalMessageInfo + +func (m *GetJoinedGroupListResp) GetErrorCode() int32 { + if m != nil { + return m.ErrorCode } return 0 } -func (x *GetJoinedGroupListResp) GetErrorMsg() string { - if x != nil { - return x.ErrorMsg +func (m *GetJoinedGroupListResp) GetErrorMsg() string { + if m != nil { + return m.ErrorMsg } return "" } -func (x *GetJoinedGroupListResp) GetGroupList() []*GroupInfo { - if x != nil { - return x.GroupList +func (m *GetJoinedGroupListResp) GetGroupList() []*GroupInfo { + if m != nil { + return m.GroupList } return nil } type InviteUserToGroupReq struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Token string `protobuf:"bytes,1,opt,name=token,proto3" json:"token,omitempty"` - OperationID string `protobuf:"bytes,2,opt,name=operationID,proto3" json:"operationID,omitempty"` - GroupID string `protobuf:"bytes,3,opt,name=groupID,proto3" json:"groupID,omitempty"` - Reason string `protobuf:"bytes,4,opt,name=reason,proto3" json:"reason,omitempty"` - UidList []string `protobuf:"bytes,5,rep,name=uidList,proto3" json:"uidList,omitempty"` + Token string `protobuf:"bytes,1,opt,name=token" json:"token,omitempty"` + OperationID string `protobuf:"bytes,2,opt,name=operationID" json:"operationID,omitempty"` + GroupID string `protobuf:"bytes,3,opt,name=groupID" json:"groupID,omitempty"` + Reason string `protobuf:"bytes,4,opt,name=reason" json:"reason,omitempty"` + UidList []string `protobuf:"bytes,5,rep,name=uidList" json:"uidList,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *InviteUserToGroupReq) Reset() { *m = InviteUserToGroupReq{} } +func (m *InviteUserToGroupReq) String() string { return proto.CompactTextString(m) } +func (*InviteUserToGroupReq) ProtoMessage() {} +func (*InviteUserToGroupReq) Descriptor() ([]byte, []int) { + return fileDescriptor_group_9fd4d73937974f0d, []int{30} } - -func (x *InviteUserToGroupReq) Reset() { - *x = InviteUserToGroupReq{} - if protoimpl.UnsafeEnabled { - mi := &file_group_group_proto_msgTypes[30] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } +func (m *InviteUserToGroupReq) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_InviteUserToGroupReq.Unmarshal(m, b) } - -func (x *InviteUserToGroupReq) String() string { - return protoimpl.X.MessageStringOf(x) +func (m *InviteUserToGroupReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_InviteUserToGroupReq.Marshal(b, m, deterministic) } - -func (*InviteUserToGroupReq) ProtoMessage() {} - -func (x *InviteUserToGroupReq) ProtoReflect() protoreflect.Message { - mi := &file_group_group_proto_msgTypes[30] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) +func (dst *InviteUserToGroupReq) XXX_Merge(src proto.Message) { + xxx_messageInfo_InviteUserToGroupReq.Merge(dst, src) } - -// Deprecated: Use InviteUserToGroupReq.ProtoReflect.Descriptor instead. -func (*InviteUserToGroupReq) Descriptor() ([]byte, []int) { - return file_group_group_proto_rawDescGZIP(), []int{30} +func (m *InviteUserToGroupReq) XXX_Size() int { + return xxx_messageInfo_InviteUserToGroupReq.Size(m) } +func (m *InviteUserToGroupReq) XXX_DiscardUnknown() { + xxx_messageInfo_InviteUserToGroupReq.DiscardUnknown(m) +} + +var xxx_messageInfo_InviteUserToGroupReq proto.InternalMessageInfo -func (x *InviteUserToGroupReq) GetToken() string { - if x != nil { - return x.Token +func (m *InviteUserToGroupReq) GetToken() string { + if m != nil { + return m.Token } return "" } -func (x *InviteUserToGroupReq) GetOperationID() string { - if x != nil { - return x.OperationID +func (m *InviteUserToGroupReq) GetOperationID() string { + if m != nil { + return m.OperationID } return "" } -func (x *InviteUserToGroupReq) GetGroupID() string { - if x != nil { - return x.GroupID +func (m *InviteUserToGroupReq) GetGroupID() string { + if m != nil { + return m.GroupID } return "" } -func (x *InviteUserToGroupReq) GetReason() string { - if x != nil { - return x.Reason +func (m *InviteUserToGroupReq) GetReason() string { + if m != nil { + return m.Reason } return "" } -func (x *InviteUserToGroupReq) GetUidList() []string { - if x != nil { - return x.UidList +func (m *InviteUserToGroupReq) GetUidList() []string { + if m != nil { + return m.UidList } return nil } type InviteUserToGroupResp struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - ErrorCode int32 `protobuf:"varint,1,opt,name=errorCode,proto3" json:"errorCode,omitempty"` - ErrorMsg string `protobuf:"bytes,2,opt,name=errorMsg,proto3" json:"errorMsg,omitempty"` - Id2Result []*Id2Result `protobuf:"bytes,3,rep,name=id2result,proto3" json:"id2result,omitempty"` // 0 ok, -1 error + ErrorCode int32 `protobuf:"varint,1,opt,name=errorCode" json:"errorCode,omitempty"` + ErrorMsg string `protobuf:"bytes,2,opt,name=errorMsg" json:"errorMsg,omitempty"` + Id2Result []*Id2Result `protobuf:"bytes,3,rep,name=id2result" json:"id2result,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (x *InviteUserToGroupResp) Reset() { - *x = InviteUserToGroupResp{} - if protoimpl.UnsafeEnabled { - mi := &file_group_group_proto_msgTypes[31] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } +func (m *InviteUserToGroupResp) Reset() { *m = InviteUserToGroupResp{} } +func (m *InviteUserToGroupResp) String() string { return proto.CompactTextString(m) } +func (*InviteUserToGroupResp) ProtoMessage() {} +func (*InviteUserToGroupResp) Descriptor() ([]byte, []int) { + return fileDescriptor_group_9fd4d73937974f0d, []int{31} } - -func (x *InviteUserToGroupResp) String() string { - return protoimpl.X.MessageStringOf(x) +func (m *InviteUserToGroupResp) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_InviteUserToGroupResp.Unmarshal(m, b) } - -func (*InviteUserToGroupResp) ProtoMessage() {} - -func (x *InviteUserToGroupResp) ProtoReflect() protoreflect.Message { - mi := &file_group_group_proto_msgTypes[31] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) +func (m *InviteUserToGroupResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_InviteUserToGroupResp.Marshal(b, m, deterministic) } - -// Deprecated: Use InviteUserToGroupResp.ProtoReflect.Descriptor instead. -func (*InviteUserToGroupResp) Descriptor() ([]byte, []int) { - return file_group_group_proto_rawDescGZIP(), []int{31} +func (dst *InviteUserToGroupResp) XXX_Merge(src proto.Message) { + xxx_messageInfo_InviteUserToGroupResp.Merge(dst, src) +} +func (m *InviteUserToGroupResp) XXX_Size() int { + return xxx_messageInfo_InviteUserToGroupResp.Size(m) +} +func (m *InviteUserToGroupResp) XXX_DiscardUnknown() { + xxx_messageInfo_InviteUserToGroupResp.DiscardUnknown(m) } -func (x *InviteUserToGroupResp) GetErrorCode() int32 { - if x != nil { - return x.ErrorCode +var xxx_messageInfo_InviteUserToGroupResp proto.InternalMessageInfo + +func (m *InviteUserToGroupResp) GetErrorCode() int32 { + if m != nil { + return m.ErrorCode } return 0 } -func (x *InviteUserToGroupResp) GetErrorMsg() string { - if x != nil { - return x.ErrorMsg +func (m *InviteUserToGroupResp) GetErrorMsg() string { + if m != nil { + return m.ErrorMsg } return "" } -func (x *InviteUserToGroupResp) GetId2Result() []*Id2Result { - if x != nil { - return x.Id2Result +func (m *InviteUserToGroupResp) GetId2Result() []*Id2Result { + if m != nil { + return m.Id2Result } return nil } type GetGroupAllMemberReq struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - GroupID string `protobuf:"bytes,1,opt,name=groupID,proto3" json:"groupID,omitempty"` - Token string `protobuf:"bytes,2,opt,name=token,proto3" json:"token,omitempty"` - OperationID string `protobuf:"bytes,3,opt,name=operationID,proto3" json:"operationID,omitempty"` + GroupID string `protobuf:"bytes,1,opt,name=groupID" json:"groupID,omitempty"` + Token string `protobuf:"bytes,2,opt,name=token" json:"token,omitempty"` + OperationID string `protobuf:"bytes,3,opt,name=operationID" json:"operationID,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (x *GetGroupAllMemberReq) Reset() { - *x = GetGroupAllMemberReq{} - if protoimpl.UnsafeEnabled { - mi := &file_group_group_proto_msgTypes[32] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } +func (m *GetGroupAllMemberReq) Reset() { *m = GetGroupAllMemberReq{} } +func (m *GetGroupAllMemberReq) String() string { return proto.CompactTextString(m) } +func (*GetGroupAllMemberReq) ProtoMessage() {} +func (*GetGroupAllMemberReq) Descriptor() ([]byte, []int) { + return fileDescriptor_group_9fd4d73937974f0d, []int{32} } - -func (x *GetGroupAllMemberReq) String() string { - return protoimpl.X.MessageStringOf(x) +func (m *GetGroupAllMemberReq) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GetGroupAllMemberReq.Unmarshal(m, b) } - -func (*GetGroupAllMemberReq) ProtoMessage() {} - -func (x *GetGroupAllMemberReq) ProtoReflect() protoreflect.Message { - mi := &file_group_group_proto_msgTypes[32] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) +func (m *GetGroupAllMemberReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GetGroupAllMemberReq.Marshal(b, m, deterministic) } - -// Deprecated: Use GetGroupAllMemberReq.ProtoReflect.Descriptor instead. -func (*GetGroupAllMemberReq) Descriptor() ([]byte, []int) { - return file_group_group_proto_rawDescGZIP(), []int{32} +func (dst *GetGroupAllMemberReq) XXX_Merge(src proto.Message) { + xxx_messageInfo_GetGroupAllMemberReq.Merge(dst, src) } +func (m *GetGroupAllMemberReq) XXX_Size() int { + return xxx_messageInfo_GetGroupAllMemberReq.Size(m) +} +func (m *GetGroupAllMemberReq) XXX_DiscardUnknown() { + xxx_messageInfo_GetGroupAllMemberReq.DiscardUnknown(m) +} + +var xxx_messageInfo_GetGroupAllMemberReq proto.InternalMessageInfo -func (x *GetGroupAllMemberReq) GetGroupID() string { - if x != nil { - return x.GroupID +func (m *GetGroupAllMemberReq) GetGroupID() string { + if m != nil { + return m.GroupID } return "" } -func (x *GetGroupAllMemberReq) GetToken() string { - if x != nil { - return x.Token +func (m *GetGroupAllMemberReq) GetToken() string { + if m != nil { + return m.Token } return "" } -func (x *GetGroupAllMemberReq) GetOperationID() string { - if x != nil { - return x.OperationID +func (m *GetGroupAllMemberReq) GetOperationID() string { + if m != nil { + return m.OperationID } return "" } type GetGroupAllMemberResp struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - ErrorCode int32 `protobuf:"varint,1,opt,name=errorCode,proto3" json:"errorCode,omitempty"` - ErrorMsg string `protobuf:"bytes,2,opt,name=errorMsg,proto3" json:"errorMsg,omitempty"` - MemberList []*GroupMemberFullInfo `protobuf:"bytes,3,rep,name=memberList,proto3" json:"memberList,omitempty"` + ErrorCode int32 `protobuf:"varint,1,opt,name=errorCode" json:"errorCode,omitempty"` + ErrorMsg string `protobuf:"bytes,2,opt,name=errorMsg" json:"errorMsg,omitempty"` + MemberList []*GroupMemberFullInfo `protobuf:"bytes,3,rep,name=memberList" json:"memberList,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (x *GetGroupAllMemberResp) Reset() { - *x = GetGroupAllMemberResp{} - if protoimpl.UnsafeEnabled { - mi := &file_group_group_proto_msgTypes[33] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } +func (m *GetGroupAllMemberResp) Reset() { *m = GetGroupAllMemberResp{} } +func (m *GetGroupAllMemberResp) String() string { return proto.CompactTextString(m) } +func (*GetGroupAllMemberResp) ProtoMessage() {} +func (*GetGroupAllMemberResp) Descriptor() ([]byte, []int) { + return fileDescriptor_group_9fd4d73937974f0d, []int{33} } - -func (x *GetGroupAllMemberResp) String() string { - return protoimpl.X.MessageStringOf(x) +func (m *GetGroupAllMemberResp) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GetGroupAllMemberResp.Unmarshal(m, b) } - -func (*GetGroupAllMemberResp) ProtoMessage() {} - -func (x *GetGroupAllMemberResp) ProtoReflect() protoreflect.Message { - mi := &file_group_group_proto_msgTypes[33] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) +func (m *GetGroupAllMemberResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GetGroupAllMemberResp.Marshal(b, m, deterministic) } - -// Deprecated: Use GetGroupAllMemberResp.ProtoReflect.Descriptor instead. -func (*GetGroupAllMemberResp) Descriptor() ([]byte, []int) { - return file_group_group_proto_rawDescGZIP(), []int{33} +func (dst *GetGroupAllMemberResp) XXX_Merge(src proto.Message) { + xxx_messageInfo_GetGroupAllMemberResp.Merge(dst, src) } +func (m *GetGroupAllMemberResp) XXX_Size() int { + return xxx_messageInfo_GetGroupAllMemberResp.Size(m) +} +func (m *GetGroupAllMemberResp) XXX_DiscardUnknown() { + xxx_messageInfo_GetGroupAllMemberResp.DiscardUnknown(m) +} + +var xxx_messageInfo_GetGroupAllMemberResp proto.InternalMessageInfo -func (x *GetGroupAllMemberResp) GetErrorCode() int32 { - if x != nil { - return x.ErrorCode +func (m *GetGroupAllMemberResp) GetErrorCode() int32 { + if m != nil { + return m.ErrorCode } return 0 } -func (x *GetGroupAllMemberResp) GetErrorMsg() string { - if x != nil { - return x.ErrorMsg +func (m *GetGroupAllMemberResp) GetErrorMsg() string { + if m != nil { + return m.ErrorMsg } return "" } -func (x *GetGroupAllMemberResp) GetMemberList() []*GroupMemberFullInfo { - if x != nil { - return x.MemberList +func (m *GetGroupAllMemberResp) GetMemberList() []*GroupMemberFullInfo { + if m != nil { + return m.MemberList } return nil } -var File_group_group_proto protoreflect.FileDescriptor - -var file_group_group_proto_rawDesc = []byte{ - 0x0a, 0x11, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x12, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x22, 0x46, 0x0a, 0x0a, 0x43, 0x6f, - 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x12, 0x1c, 0x0a, 0x09, 0x45, 0x72, 0x72, 0x6f, - 0x72, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x45, 0x72, 0x72, - 0x6f, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x4d, - 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x4d, - 0x73, 0x67, 0x22, 0x93, 0x02, 0x0a, 0x0e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x47, 0x72, 0x6f, - 0x75, 0x70, 0x52, 0x65, 0x71, 0x12, 0x39, 0x0a, 0x0a, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x4c, - 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x72, 0x6f, 0x75, - 0x70, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x64, 0x64, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, - 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0a, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, - 0x12, 0x1c, 0x0a, 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x22, - 0x0a, 0x0c, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x12, 0x22, 0x0a, 0x0c, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, - 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x66, 0x61, 0x63, 0x65, 0x55, 0x72, - 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x66, 0x61, 0x63, 0x65, 0x55, 0x72, 0x6c, - 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x20, 0x0a, 0x0b, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6f, 0x70, 0x65, - 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x12, 0x0e, 0x0a, 0x02, 0x65, 0x78, 0x18, 0x08, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x65, 0x78, 0x22, 0x40, 0x0a, 0x12, 0x47, 0x72, 0x6f, 0x75, - 0x70, 0x41, 0x64, 0x64, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x10, - 0x0a, 0x03, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x69, 0x64, - 0x12, 0x18, 0x0a, 0x07, 0x73, 0x65, 0x74, 0x52, 0x6f, 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x07, 0x73, 0x65, 0x74, 0x52, 0x6f, 0x6c, 0x65, 0x22, 0x65, 0x0a, 0x0f, 0x43, 0x72, - 0x65, 0x61, 0x74, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x12, 0x1c, 0x0a, - 0x09, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x09, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x45, - 0x72, 0x72, 0x6f, 0x72, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x45, - 0x72, 0x72, 0x6f, 0x72, 0x4d, 0x73, 0x67, 0x12, 0x18, 0x0a, 0x07, 0x67, 0x72, 0x6f, 0x75, 0x70, - 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, - 0x44, 0x22, 0x6c, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x49, 0x6e, - 0x66, 0x6f, 0x52, 0x65, 0x71, 0x12, 0x20, 0x0a, 0x0b, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x44, - 0x4c, 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0b, 0x67, 0x72, 0x6f, 0x75, - 0x70, 0x49, 0x44, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x20, 0x0a, - 0x0b, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0b, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x22, - 0x73, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x49, 0x6e, 0x66, 0x6f, - 0x52, 0x65, 0x73, 0x70, 0x12, 0x1c, 0x0a, 0x09, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x43, 0x6f, 0x64, - 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x43, 0x6f, - 0x64, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x4d, 0x73, 0x67, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x45, 0x72, 0x72, 0x6f, 0x72, 0x4d, 0x73, 0x67, 0x12, 0x24, - 0x0a, 0x04, 0x64, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x67, - 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, - 0x64, 0x61, 0x74, 0x61, 0x22, 0xe3, 0x01, 0x0a, 0x0f, 0x53, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, - 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x12, 0x18, 0x0a, 0x07, 0x67, 0x72, 0x6f, 0x75, - 0x70, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x67, 0x72, 0x6f, 0x75, 0x70, - 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x4e, 0x61, 0x6d, 0x65, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x4e, 0x61, 0x6d, 0x65, - 0x12, 0x22, 0x0a, 0x0c, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x22, 0x0a, 0x0c, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x64, 0x75, 0x63, - 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x69, 0x6e, 0x74, 0x72, - 0x6f, 0x64, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x66, 0x61, 0x63, 0x65, - 0x55, 0x72, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x66, 0x61, 0x63, 0x65, 0x55, - 0x72, 0x6c, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x06, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x20, 0x0a, 0x0b, 0x6f, 0x70, 0x65, 0x72, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6f, - 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x22, 0x50, 0x0a, 0x1a, 0x47, 0x65, - 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x12, 0x10, 0x0a, 0x03, 0x55, 0x49, 0x44, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x55, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x70, - 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x22, 0x99, 0x04, 0x0a, - 0x21, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x5f, 0x44, 0x61, 0x74, 0x61, 0x5f, 0x55, 0x73, - 0x65, 0x72, 0x12, 0x0e, 0x0a, 0x02, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, - 0x49, 0x44, 0x12, 0x18, 0x0a, 0x07, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x44, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x07, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, - 0x46, 0x72, 0x6f, 0x6d, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0a, 0x46, 0x72, 0x6f, 0x6d, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, - 0x54, 0x6f, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, - 0x54, 0x6f, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x12, 0x0a, 0x04, 0x46, 0x6c, 0x61, 0x67, - 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x46, 0x6c, 0x61, 0x67, 0x12, 0x1e, 0x0a, 0x0a, - 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x4d, 0x73, 0x67, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0a, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x4d, 0x73, 0x67, 0x12, 0x1e, 0x0a, 0x0a, - 0x48, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x64, 0x4d, 0x73, 0x67, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0a, 0x48, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x64, 0x4d, 0x73, 0x67, 0x12, 0x18, 0x0a, 0x07, - 0x41, 0x64, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x41, - 0x64, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x2a, 0x0a, 0x10, 0x46, 0x72, 0x6f, 0x6d, 0x55, 0x73, - 0x65, 0x72, 0x4e, 0x69, 0x63, 0x6b, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x10, 0x46, 0x72, 0x6f, 0x6d, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x69, 0x63, 0x6b, 0x6e, 0x61, - 0x6d, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x54, 0x6f, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x69, 0x63, 0x6b, - 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x54, 0x6f, 0x55, 0x73, - 0x65, 0x72, 0x4e, 0x69, 0x63, 0x6b, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x28, 0x0a, 0x0f, 0x46, 0x72, - 0x6f, 0x6d, 0x55, 0x73, 0x65, 0x72, 0x46, 0x61, 0x63, 0x65, 0x55, 0x72, 0x6c, 0x18, 0x0b, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0f, 0x46, 0x72, 0x6f, 0x6d, 0x55, 0x73, 0x65, 0x72, 0x46, 0x61, 0x63, - 0x65, 0x55, 0x72, 0x6c, 0x12, 0x24, 0x0a, 0x0d, 0x54, 0x6f, 0x55, 0x73, 0x65, 0x72, 0x46, 0x61, - 0x63, 0x65, 0x55, 0x72, 0x6c, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x54, 0x6f, 0x55, - 0x73, 0x65, 0x72, 0x46, 0x61, 0x63, 0x65, 0x55, 0x72, 0x6c, 0x12, 0x20, 0x0a, 0x0b, 0x48, 0x61, - 0x6e, 0x64, 0x6c, 0x65, 0x64, 0x55, 0x73, 0x65, 0x72, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0b, 0x48, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x64, 0x55, 0x73, 0x65, 0x72, 0x12, 0x12, 0x0a, 0x04, - 0x54, 0x79, 0x70, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x54, 0x79, 0x70, 0x65, - 0x12, 0x22, 0x0a, 0x0c, 0x48, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, - 0x18, 0x0f, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x48, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x53, 0x74, - 0x61, 0x74, 0x75, 0x73, 0x12, 0x22, 0x0a, 0x0c, 0x48, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x52, 0x65, - 0x73, 0x75, 0x6c, 0x74, 0x18, 0x10, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x48, 0x61, 0x6e, 0x64, - 0x6c, 0x65, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0x71, 0x0a, 0x1b, 0x47, 0x65, 0x74, 0x47, - 0x72, 0x6f, 0x75, 0x70, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4c, - 0x69, 0x73, 0x74, 0x44, 0x61, 0x74, 0x61, 0x12, 0x14, 0x0a, 0x05, 0x43, 0x6f, 0x75, 0x6e, 0x74, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x05, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x12, 0x3c, 0x0a, - 0x04, 0x55, 0x73, 0x65, 0x72, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x28, 0x2e, 0x67, 0x72, - 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x70, 0x70, 0x6c, - 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x5f, 0x44, 0x61, 0x74, 0x61, - 0x5f, 0x55, 0x73, 0x65, 0x72, 0x52, 0x04, 0x55, 0x73, 0x65, 0x72, 0x22, 0x87, 0x01, 0x0a, 0x1b, - 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x18, 0x0a, 0x07, 0x45, - 0x72, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x45, 0x72, - 0x72, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x45, 0x72, 0x72, 0x4d, 0x73, 0x67, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x45, 0x72, 0x72, 0x4d, 0x73, 0x67, 0x12, 0x36, 0x0a, - 0x04, 0x44, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x67, 0x72, - 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x70, 0x70, 0x6c, - 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x44, 0x61, 0x74, 0x61, 0x52, - 0x04, 0x44, 0x61, 0x74, 0x61, 0x22, 0x8b, 0x01, 0x0a, 0x15, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, - 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x52, 0x65, 0x71, 0x12, - 0x18, 0x0a, 0x07, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x07, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x4f, 0x6c, 0x64, - 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x4f, 0x6c, 0x64, - 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x4e, 0x65, 0x77, 0x4f, 0x77, 0x6e, 0x65, - 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x4e, 0x65, 0x77, 0x4f, 0x77, 0x6e, 0x65, - 0x72, 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x49, 0x44, 0x22, 0x4a, 0x0a, 0x16, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x47, - 0x72, 0x6f, 0x75, 0x70, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x12, 0x18, 0x0a, - 0x07, 0x45, 0x72, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, - 0x45, 0x72, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x45, 0x72, 0x72, 0x4d, 0x73, - 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x45, 0x72, 0x72, 0x4d, 0x73, 0x67, 0x22, - 0x7a, 0x0a, 0x0c, 0x4a, 0x6f, 0x69, 0x6e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x12, - 0x18, 0x0a, 0x07, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x07, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x44, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x65, 0x73, - 0x73, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6d, 0x65, 0x73, 0x73, - 0x61, 0x67, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x70, 0x65, - 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, - 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x22, 0x89, 0x04, 0x0a, 0x1b, - 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x65, 0x71, 0x12, 0x20, 0x0a, 0x0b, 0x4f, - 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x12, 0x18, 0x0a, - 0x07, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, - 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x49, 0x44, 0x12, 0x18, 0x0a, 0x07, 0x47, 0x72, 0x6f, 0x75, 0x70, - 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, - 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x46, 0x72, 0x6f, 0x6d, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x46, 0x72, 0x6f, 0x6d, 0x55, 0x73, 0x65, 0x72, 0x49, - 0x44, 0x12, 0x2a, 0x0a, 0x10, 0x46, 0x72, 0x6f, 0x6d, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x69, 0x63, - 0x6b, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x46, 0x72, 0x6f, - 0x6d, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x69, 0x63, 0x6b, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x28, 0x0a, - 0x0f, 0x46, 0x72, 0x6f, 0x6d, 0x55, 0x73, 0x65, 0x72, 0x46, 0x61, 0x63, 0x65, 0x55, 0x72, 0x6c, - 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x46, 0x72, 0x6f, 0x6d, 0x55, 0x73, 0x65, 0x72, - 0x46, 0x61, 0x63, 0x65, 0x55, 0x72, 0x6c, 0x12, 0x1a, 0x0a, 0x08, 0x54, 0x6f, 0x55, 0x73, 0x65, - 0x72, 0x49, 0x44, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x54, 0x6f, 0x55, 0x73, 0x65, - 0x72, 0x49, 0x44, 0x12, 0x26, 0x0a, 0x0e, 0x54, 0x6f, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x69, 0x63, - 0x6b, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x54, 0x6f, 0x55, - 0x73, 0x65, 0x72, 0x4e, 0x69, 0x63, 0x6b, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x54, - 0x6f, 0x55, 0x73, 0x65, 0x72, 0x46, 0x61, 0x63, 0x65, 0x55, 0x72, 0x6c, 0x18, 0x09, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0d, 0x54, 0x6f, 0x55, 0x73, 0x65, 0x72, 0x46, 0x61, 0x63, 0x65, 0x55, 0x72, - 0x6c, 0x12, 0x18, 0x0a, 0x07, 0x41, 0x64, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x0a, 0x20, 0x01, - 0x28, 0x03, 0x52, 0x07, 0x41, 0x64, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x4d, 0x73, 0x67, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0a, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x4d, 0x73, 0x67, 0x12, 0x1e, 0x0a, 0x0a, 0x48, - 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x64, 0x4d, 0x73, 0x67, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0a, 0x48, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x64, 0x4d, 0x73, 0x67, 0x12, 0x12, 0x0a, 0x04, 0x54, - 0x79, 0x70, 0x65, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x54, 0x79, 0x70, 0x65, 0x12, - 0x22, 0x0a, 0x0c, 0x48, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, - 0x0e, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x48, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x53, 0x74, 0x61, - 0x74, 0x75, 0x73, 0x12, 0x22, 0x0a, 0x0c, 0x48, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x52, 0x65, 0x73, - 0x75, 0x6c, 0x74, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x48, 0x61, 0x6e, 0x64, 0x6c, - 0x65, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0x50, 0x0a, 0x1c, 0x47, 0x72, 0x6f, 0x75, 0x70, - 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x18, 0x0a, 0x07, 0x45, 0x72, 0x72, 0x43, 0x6f, - 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x45, 0x72, 0x72, 0x43, 0x6f, 0x64, - 0x65, 0x12, 0x16, 0x0a, 0x06, 0x45, 0x72, 0x72, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x06, 0x45, 0x72, 0x72, 0x4d, 0x73, 0x67, 0x22, 0x88, 0x01, 0x0a, 0x18, 0x53, 0x65, - 0x74, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4e, 0x69, 0x63, 0x6b, 0x4e, - 0x61, 0x6d, 0x65, 0x52, 0x65, 0x71, 0x12, 0x18, 0x0a, 0x07, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, - 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x44, - 0x12, 0x1a, 0x0a, 0x08, 0x6e, 0x69, 0x63, 0x6b, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x08, 0x6e, 0x69, 0x63, 0x6b, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, - 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x12, 0x14, - 0x0a, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, - 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0x60, 0x0a, 0x0c, 0x51, 0x75, 0x69, 0x74, 0x47, 0x72, 0x6f, 0x75, - 0x70, 0x52, 0x65, 0x71, 0x12, 0x18, 0x0a, 0x07, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x44, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x44, 0x12, 0x20, - 0x0a, 0x0b, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, - 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0x84, 0x02, 0x0a, 0x18, 0x47, 0x72, 0x6f, 0x75, 0x70, - 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x55, 0x73, 0x65, 0x72, 0x49, - 0x6e, 0x66, 0x6f, 0x12, 0x18, 0x0a, 0x07, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x44, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x44, 0x12, 0x10, 0x0a, - 0x03, 0x75, 0x69, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x69, 0x64, 0x12, - 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, - 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x69, 0x63, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x04, 0x69, 0x63, 0x6f, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x71, 0x4d, 0x73, - 0x67, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x71, 0x4d, 0x73, 0x67, 0x12, - 0x28, 0x0a, 0x0f, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, - 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0f, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x66, 0x6c, 0x61, - 0x67, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x66, 0x6c, 0x61, 0x67, 0x12, 0x1e, 0x0a, - 0x0a, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x49, 0x44, 0x18, 0x08, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0a, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x49, 0x44, 0x12, 0x1e, 0x0a, - 0x0a, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x64, 0x4d, 0x73, 0x67, 0x18, 0x09, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0a, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x64, 0x4d, 0x73, 0x67, 0x22, 0x93, 0x01, - 0x0a, 0x13, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x46, 0x75, 0x6c, - 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x12, 0x0a, - 0x04, 0x72, 0x6f, 0x6c, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x04, 0x72, 0x6f, 0x6c, - 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x6a, 0x6f, 0x69, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x04, 0x52, 0x08, 0x6a, 0x6f, 0x69, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1a, 0x0a, - 0x08, 0x6e, 0x69, 0x63, 0x6b, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x08, 0x6e, 0x69, 0x63, 0x6b, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x66, 0x61, 0x63, - 0x65, 0x55, 0x72, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x66, 0x61, 0x63, 0x65, - 0x55, 0x72, 0x6c, 0x22, 0x9b, 0x01, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, - 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x12, 0x18, 0x0a, - 0x07, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, - 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x44, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x20, 0x0a, - 0x0b, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0b, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x12, - 0x16, 0x0a, 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x06, 0x66, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x6e, 0x65, 0x78, 0x74, 0x53, - 0x65, 0x71, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x6e, 0x65, 0x78, 0x74, 0x53, 0x65, - 0x71, 0x22, 0xa8, 0x01, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, - 0x6d, 0x62, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x1c, 0x0a, 0x09, - 0x65, 0x72, 0x72, 0x6f, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x09, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x65, 0x72, - 0x72, 0x6f, 0x72, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x65, 0x72, - 0x72, 0x6f, 0x72, 0x4d, 0x73, 0x67, 0x12, 0x3a, 0x0a, 0x0a, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, - 0x4c, 0x69, 0x73, 0x74, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x72, 0x6f, - 0x75, 0x70, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x46, 0x75, - 0x6c, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0a, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x4c, 0x69, - 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x6e, 0x65, 0x78, 0x74, 0x53, 0x65, 0x71, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x07, 0x6e, 0x65, 0x78, 0x74, 0x53, 0x65, 0x71, 0x22, 0x8a, 0x01, 0x0a, - 0x16, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, - 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x12, 0x18, 0x0a, 0x07, 0x67, 0x72, 0x6f, 0x75, 0x70, - 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, - 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x18, - 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x4c, 0x69, 0x73, - 0x74, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x20, 0x0a, 0x0b, 0x6f, 0x70, 0x65, 0x72, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6f, 0x70, - 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x22, 0x8f, 0x01, 0x0a, 0x17, 0x47, 0x65, - 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x49, 0x6e, 0x66, - 0x6f, 0x52, 0x65, 0x73, 0x70, 0x12, 0x1c, 0x0a, 0x09, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x43, 0x6f, - 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x43, - 0x6f, 0x64, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x4d, 0x73, 0x67, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x4d, 0x73, 0x67, 0x12, - 0x3a, 0x0a, 0x0a, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x03, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x72, 0x6f, 0x75, - 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x46, 0x75, 0x6c, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x52, - 0x0a, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x22, 0xbc, 0x01, 0x0a, 0x12, - 0x4b, 0x69, 0x63, 0x6b, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, - 0x65, 0x71, 0x12, 0x18, 0x0a, 0x07, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x44, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x07, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x44, 0x12, 0x3c, 0x0a, 0x0b, - 0x75, 0x69, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x02, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x1a, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, - 0x65, 0x6d, 0x62, 0x65, 0x72, 0x46, 0x75, 0x6c, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0b, 0x75, - 0x69, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, - 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x61, 0x73, - 0x6f, 0x6e, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x20, 0x0a, 0x0b, 0x6f, 0x70, 0x65, 0x72, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6f, - 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x22, 0x35, 0x0a, 0x09, 0x49, 0x64, - 0x32, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x49, 0x64, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x75, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x73, - 0x75, 0x6c, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, - 0x74, 0x22, 0x7f, 0x0a, 0x13, 0x4b, 0x69, 0x63, 0x6b, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, - 0x6d, 0x62, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x12, 0x1c, 0x0a, 0x09, 0x65, 0x72, 0x72, 0x6f, - 0x72, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x65, 0x72, 0x72, - 0x6f, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x4d, - 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x4d, - 0x73, 0x67, 0x12, 0x2e, 0x0a, 0x09, 0x69, 0x64, 0x32, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, - 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x49, 0x64, - 0x32, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x09, 0x69, 0x64, 0x32, 0x72, 0x65, 0x73, 0x75, - 0x6c, 0x74, 0x22, 0x4f, 0x0a, 0x15, 0x67, 0x65, 0x74, 0x4a, 0x6f, 0x69, 0x6e, 0x65, 0x64, 0x47, - 0x72, 0x6f, 0x75, 0x70, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x12, 0x14, 0x0a, 0x05, 0x74, - 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x6f, 0x6b, 0x65, - 0x6e, 0x12, 0x20, 0x0a, 0x0b, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x49, 0x44, 0x22, 0x81, 0x02, 0x0a, 0x09, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x66, - 0x6f, 0x12, 0x18, 0x0a, 0x07, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x07, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x67, - 0x72, 0x6f, 0x75, 0x70, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, - 0x67, 0x72, 0x6f, 0x75, 0x70, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x6e, 0x6f, 0x74, - 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0c, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x22, 0x0a, - 0x0c, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0c, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x69, 0x6f, - 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x66, 0x61, 0x63, 0x65, 0x55, 0x72, 0x6c, 0x18, 0x05, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x07, 0x66, 0x61, 0x63, 0x65, 0x55, 0x72, 0x6c, 0x12, 0x1e, 0x0a, 0x0a, 0x63, - 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x04, 0x52, - 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6f, - 0x77, 0x6e, 0x65, 0x72, 0x49, 0x64, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x6f, 0x77, - 0x6e, 0x65, 0x72, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x43, - 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x6d, 0x65, 0x6d, 0x62, - 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x82, 0x01, 0x0a, 0x16, 0x67, 0x65, 0x74, 0x4a, - 0x6f, 0x69, 0x6e, 0x65, 0x64, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, - 0x73, 0x70, 0x12, 0x1c, 0x0a, 0x09, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x43, 0x6f, 0x64, 0x65, - 0x12, 0x1a, 0x0a, 0x08, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x08, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x4d, 0x73, 0x67, 0x12, 0x2e, 0x0a, 0x09, - 0x67, 0x72, 0x6f, 0x75, 0x70, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x10, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x66, - 0x6f, 0x52, 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x9a, 0x01, 0x0a, - 0x14, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x54, 0x6f, 0x47, 0x72, 0x6f, - 0x75, 0x70, 0x52, 0x65, 0x71, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x20, 0x0a, 0x0b, 0x6f, - 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0b, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x12, 0x18, 0x0a, - 0x07, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, - 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, - 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x12, - 0x18, 0x0a, 0x07, 0x75, 0x69, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x05, 0x20, 0x03, 0x28, 0x09, - 0x52, 0x07, 0x75, 0x69, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x81, 0x01, 0x0a, 0x15, 0x69, 0x6e, - 0x76, 0x69, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x54, 0x6f, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, - 0x65, 0x73, 0x70, 0x12, 0x1c, 0x0a, 0x09, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x43, 0x6f, 0x64, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x43, 0x6f, 0x64, - 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x08, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x4d, 0x73, 0x67, 0x12, 0x2e, 0x0a, - 0x09, 0x69, 0x64, 0x32, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x10, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x49, 0x64, 0x32, 0x52, 0x65, 0x73, 0x75, - 0x6c, 0x74, 0x52, 0x09, 0x69, 0x64, 0x32, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0x68, 0x0a, - 0x14, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x6c, 0x6c, 0x4d, 0x65, 0x6d, 0x62, - 0x65, 0x72, 0x52, 0x65, 0x71, 0x12, 0x18, 0x0a, 0x07, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x44, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x44, 0x12, - 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, - 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x20, 0x0a, 0x0b, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6f, 0x70, 0x65, 0x72, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x22, 0x8d, 0x01, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x47, - 0x72, 0x6f, 0x75, 0x70, 0x41, 0x6c, 0x6c, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x65, 0x73, - 0x70, 0x12, 0x1c, 0x0a, 0x09, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x12, - 0x1a, 0x0a, 0x08, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x08, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x4d, 0x73, 0x67, 0x12, 0x3a, 0x0a, 0x0a, 0x6d, - 0x65, 0x6d, 0x62, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x1a, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, - 0x62, 0x65, 0x72, 0x46, 0x75, 0x6c, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0a, 0x6d, 0x65, 0x6d, - 0x62, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x32, 0xae, 0x08, 0x0a, 0x05, 0x67, 0x72, 0x6f, 0x75, - 0x70, 0x12, 0x3c, 0x0a, 0x0b, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, - 0x12, 0x15, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x47, - 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x1a, 0x16, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, - 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x12, - 0x33, 0x0a, 0x09, 0x6a, 0x6f, 0x69, 0x6e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x13, 0x2e, 0x67, - 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x4a, 0x6f, 0x69, 0x6e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, - 0x71, 0x1a, 0x11, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, - 0x52, 0x65, 0x73, 0x70, 0x12, 0x33, 0x0a, 0x09, 0x71, 0x75, 0x69, 0x74, 0x47, 0x72, 0x6f, 0x75, - 0x70, 0x12, 0x13, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x51, 0x75, 0x69, 0x74, 0x47, 0x72, - 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x1a, 0x11, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x43, - 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x12, 0x42, 0x0a, 0x0d, 0x67, 0x65, 0x74, - 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x17, 0x2e, 0x67, 0x72, 0x6f, - 0x75, 0x70, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x49, 0x6e, 0x66, 0x6f, - 0x52, 0x65, 0x71, 0x1a, 0x18, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x65, 0x74, 0x47, - 0x72, 0x6f, 0x75, 0x70, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x12, 0x39, 0x0a, - 0x0c, 0x73, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x16, 0x2e, - 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x53, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, - 0x66, 0x6f, 0x52, 0x65, 0x71, 0x1a, 0x11, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x43, 0x6f, - 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x12, 0x60, 0x0a, 0x17, 0x67, 0x65, 0x74, 0x47, - 0x72, 0x6f, 0x75, 0x70, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4c, - 0x69, 0x73, 0x74, 0x12, 0x21, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x65, 0x74, 0x47, - 0x72, 0x6f, 0x75, 0x70, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4c, - 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x22, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47, - 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x51, 0x0a, 0x12, 0x74, 0x72, - 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4f, 0x77, 0x6e, 0x65, 0x72, - 0x12, 0x1c, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, - 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x52, 0x65, 0x71, 0x1a, 0x1d, - 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x47, - 0x72, 0x6f, 0x75, 0x70, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x12, 0x63, 0x0a, - 0x18, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x22, 0x2e, 0x67, 0x72, 0x6f, 0x75, - 0x70, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x23, 0x2e, - 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x70, 0x70, 0x6c, 0x69, - 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x65, - 0x73, 0x70, 0x12, 0x51, 0x0a, 0x12, 0x67, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, - 0x6d, 0x62, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x1c, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, - 0x2e, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x4c, - 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x1d, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47, - 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x4c, 0x69, 0x73, - 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x54, 0x0a, 0x13, 0x67, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, - 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1d, 0x2e, 0x67, - 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, - 0x62, 0x65, 0x72, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x1a, 0x1e, 0x2e, 0x67, 0x72, - 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, - 0x65, 0x72, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x12, 0x48, 0x0a, 0x0f, 0x6b, - 0x69, 0x63, 0x6b, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x19, - 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x4b, 0x69, 0x63, 0x6b, 0x47, 0x72, 0x6f, 0x75, 0x70, - 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x65, 0x71, 0x1a, 0x1a, 0x2e, 0x67, 0x72, 0x6f, 0x75, - 0x70, 0x2e, 0x4b, 0x69, 0x63, 0x6b, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, - 0x72, 0x52, 0x65, 0x73, 0x70, 0x12, 0x51, 0x0a, 0x12, 0x67, 0x65, 0x74, 0x4a, 0x6f, 0x69, 0x6e, - 0x65, 0x64, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x1c, 0x2e, 0x67, 0x72, - 0x6f, 0x75, 0x70, 0x2e, 0x67, 0x65, 0x74, 0x4a, 0x6f, 0x69, 0x6e, 0x65, 0x64, 0x47, 0x72, 0x6f, - 0x75, 0x70, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x1d, 0x2e, 0x67, 0x72, 0x6f, 0x75, - 0x70, 0x2e, 0x67, 0x65, 0x74, 0x4a, 0x6f, 0x69, 0x6e, 0x65, 0x64, 0x47, 0x72, 0x6f, 0x75, 0x70, - 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x4e, 0x0a, 0x11, 0x69, 0x6e, 0x76, 0x69, - 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x54, 0x6f, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x1b, 0x2e, - 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, - 0x54, 0x6f, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x67, 0x72, 0x6f, - 0x75, 0x70, 0x2e, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x54, 0x6f, 0x47, - 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x12, 0x4e, 0x0a, 0x11, 0x67, 0x65, 0x74, 0x47, - 0x72, 0x6f, 0x75, 0x70, 0x41, 0x6c, 0x6c, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x1b, 0x2e, - 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x6c, - 0x6c, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x67, 0x72, 0x6f, - 0x75, 0x70, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x6c, 0x6c, 0x4d, 0x65, - 0x6d, 0x62, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x42, 0x0f, 0x5a, 0x0d, 0x2e, 0x2f, 0x67, 0x72, - 0x6f, 0x75, 0x70, 0x3b, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x33, -} - -var ( - file_group_group_proto_rawDescOnce sync.Once - file_group_group_proto_rawDescData = file_group_group_proto_rawDesc -) - -func file_group_group_proto_rawDescGZIP() []byte { - file_group_group_proto_rawDescOnce.Do(func() { - file_group_group_proto_rawDescData = protoimpl.X.CompressGZIP(file_group_group_proto_rawDescData) - }) - return file_group_group_proto_rawDescData -} - -var file_group_group_proto_msgTypes = make([]protoimpl.MessageInfo, 34) -var file_group_group_proto_goTypes = []interface{}{ - (*CommonResp)(nil), // 0: group.CommonResp - (*CreateGroupReq)(nil), // 1: group.CreateGroupReq - (*GroupAddMemberInfo)(nil), // 2: group.GroupAddMemberInfo - (*CreateGroupResp)(nil), // 3: group.CreateGroupResp - (*GetGroupsInfoReq)(nil), // 4: group.GetGroupsInfoReq - (*GetGroupsInfoResp)(nil), // 5: group.GetGroupsInfoResp - (*SetGroupInfoReq)(nil), // 6: group.SetGroupInfoReq - (*GetGroupApplicationListReq)(nil), // 7: group.GetGroupApplicationListReq - (*GetGroupApplicationList_Data_User)(nil), // 8: group.GetGroupApplicationList_Data_User - (*GetGroupApplicationListData)(nil), // 9: group.GetGroupApplicationListData - (*GetGroupApplicationListResp)(nil), // 10: group.GetGroupApplicationListResp - (*TransferGroupOwnerReq)(nil), // 11: group.TransferGroupOwnerReq - (*TransferGroupOwnerResp)(nil), // 12: group.TransferGroupOwnerResp - (*JoinGroupReq)(nil), // 13: group.JoinGroupReq - (*GroupApplicationResponseReq)(nil), // 14: group.GroupApplicationResponseReq - (*GroupApplicationResponseResp)(nil), // 15: group.GroupApplicationResponseResp - (*SetOwnerGroupNickNameReq)(nil), // 16: group.SetOwnerGroupNickNameReq - (*QuitGroupReq)(nil), // 17: group.QuitGroupReq - (*GroupApplicationUserInfo)(nil), // 18: group.GroupApplicationUserInfo - (*GroupMemberFullInfo)(nil), // 19: group.GroupMemberFullInfo - (*GetGroupMemberListReq)(nil), // 20: group.GetGroupMemberListReq - (*GetGroupMemberListResp)(nil), // 21: group.GetGroupMemberListResp - (*GetGroupMembersInfoReq)(nil), // 22: group.GetGroupMembersInfoReq - (*GetGroupMembersInfoResp)(nil), // 23: group.GetGroupMembersInfoResp - (*KickGroupMemberReq)(nil), // 24: group.KickGroupMemberReq - (*Id2Result)(nil), // 25: group.Id2Result - (*KickGroupMemberResp)(nil), // 26: group.KickGroupMemberResp - (*GetJoinedGroupListReq)(nil), // 27: group.getJoinedGroupListReq - (*GroupInfo)(nil), // 28: group.GroupInfo - (*GetJoinedGroupListResp)(nil), // 29: group.getJoinedGroupListResp - (*InviteUserToGroupReq)(nil), // 30: group.inviteUserToGroupReq - (*InviteUserToGroupResp)(nil), // 31: group.inviteUserToGroupResp - (*GetGroupAllMemberReq)(nil), // 32: group.GetGroupAllMemberReq - (*GetGroupAllMemberResp)(nil), // 33: group.GetGroupAllMemberResp -} -var file_group_group_proto_depIdxs = []int32{ - 2, // 0: group.CreateGroupReq.memberList:type_name -> group.GroupAddMemberInfo - 28, // 1: group.GetGroupsInfoResp.data:type_name -> group.GroupInfo - 8, // 2: group.GetGroupApplicationListData.User:type_name -> group.GetGroupApplicationList_Data_User - 9, // 3: group.GetGroupApplicationListResp.Data:type_name -> group.GetGroupApplicationListData - 19, // 4: group.GetGroupMemberListResp.memberList:type_name -> group.GroupMemberFullInfo - 19, // 5: group.GetGroupMembersInfoResp.memberList:type_name -> group.GroupMemberFullInfo - 19, // 6: group.KickGroupMemberReq.uidListInfo:type_name -> group.GroupMemberFullInfo - 25, // 7: group.KickGroupMemberResp.id2result:type_name -> group.Id2Result - 28, // 8: group.getJoinedGroupListResp.groupList:type_name -> group.GroupInfo - 25, // 9: group.inviteUserToGroupResp.id2result:type_name -> group.Id2Result - 19, // 10: group.GetGroupAllMemberResp.memberList:type_name -> group.GroupMemberFullInfo - 1, // 11: group.group.createGroup:input_type -> group.CreateGroupReq - 13, // 12: group.group.joinGroup:input_type -> group.JoinGroupReq - 17, // 13: group.group.quitGroup:input_type -> group.QuitGroupReq - 4, // 14: group.group.getGroupsInfo:input_type -> group.GetGroupsInfoReq - 6, // 15: group.group.setGroupInfo:input_type -> group.SetGroupInfoReq - 7, // 16: group.group.getGroupApplicationList:input_type -> group.GetGroupApplicationListReq - 11, // 17: group.group.transferGroupOwner:input_type -> group.TransferGroupOwnerReq - 14, // 18: group.group.groupApplicationResponse:input_type -> group.GroupApplicationResponseReq - 20, // 19: group.group.getGroupMemberList:input_type -> group.GetGroupMemberListReq - 22, // 20: group.group.getGroupMembersInfo:input_type -> group.GetGroupMembersInfoReq - 24, // 21: group.group.kickGroupMember:input_type -> group.KickGroupMemberReq - 27, // 22: group.group.getJoinedGroupList:input_type -> group.getJoinedGroupListReq - 30, // 23: group.group.inviteUserToGroup:input_type -> group.inviteUserToGroupReq - 32, // 24: group.group.getGroupAllMember:input_type -> group.GetGroupAllMemberReq - 3, // 25: group.group.createGroup:output_type -> group.CreateGroupResp - 0, // 26: group.group.joinGroup:output_type -> group.CommonResp - 0, // 27: group.group.quitGroup:output_type -> group.CommonResp - 5, // 28: group.group.getGroupsInfo:output_type -> group.GetGroupsInfoResp - 0, // 29: group.group.setGroupInfo:output_type -> group.CommonResp - 10, // 30: group.group.getGroupApplicationList:output_type -> group.GetGroupApplicationListResp - 12, // 31: group.group.transferGroupOwner:output_type -> group.TransferGroupOwnerResp - 15, // 32: group.group.groupApplicationResponse:output_type -> group.GroupApplicationResponseResp - 21, // 33: group.group.getGroupMemberList:output_type -> group.GetGroupMemberListResp - 23, // 34: group.group.getGroupMembersInfo:output_type -> group.GetGroupMembersInfoResp - 26, // 35: group.group.kickGroupMember:output_type -> group.KickGroupMemberResp - 29, // 36: group.group.getJoinedGroupList:output_type -> group.getJoinedGroupListResp - 31, // 37: group.group.inviteUserToGroup:output_type -> group.inviteUserToGroupResp - 33, // 38: group.group.getGroupAllMember:output_type -> group.GetGroupAllMemberResp - 25, // [25:39] is the sub-list for method output_type - 11, // [11:25] is the sub-list for method input_type - 11, // [11:11] is the sub-list for extension type_name - 11, // [11:11] is the sub-list for extension extendee - 0, // [0:11] is the sub-list for field type_name -} - -func init() { file_group_group_proto_init() } -func file_group_group_proto_init() { - if File_group_group_proto != nil { - return - } - if !protoimpl.UnsafeEnabled { - file_group_group_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CommonResp); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_group_group_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CreateGroupReq); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_group_group_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GroupAddMemberInfo); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_group_group_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CreateGroupResp); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_group_group_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetGroupsInfoReq); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_group_group_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetGroupsInfoResp); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_group_group_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SetGroupInfoReq); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_group_group_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetGroupApplicationListReq); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_group_group_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetGroupApplicationList_Data_User); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_group_group_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetGroupApplicationListData); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_group_group_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetGroupApplicationListResp); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_group_group_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*TransferGroupOwnerReq); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_group_group_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*TransferGroupOwnerResp); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_group_group_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*JoinGroupReq); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_group_group_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GroupApplicationResponseReq); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_group_group_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GroupApplicationResponseResp); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_group_group_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SetOwnerGroupNickNameReq); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_group_group_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*QuitGroupReq); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_group_group_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GroupApplicationUserInfo); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_group_group_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GroupMemberFullInfo); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_group_group_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetGroupMemberListReq); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_group_group_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetGroupMemberListResp); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_group_group_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetGroupMembersInfoReq); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_group_group_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetGroupMembersInfoResp); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_group_group_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*KickGroupMemberReq); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_group_group_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*Id2Result); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_group_group_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*KickGroupMemberResp); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_group_group_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetJoinedGroupListReq); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_group_group_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GroupInfo); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_group_group_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetJoinedGroupListResp); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_group_group_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*InviteUserToGroupReq); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_group_group_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*InviteUserToGroupResp); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_group_group_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetGroupAllMemberReq); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_group_group_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetGroupAllMemberResp); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - } - type x struct{} - out := protoimpl.TypeBuilder{ - File: protoimpl.DescBuilder{ - GoPackagePath: reflect.TypeOf(x{}).PkgPath(), - RawDescriptor: file_group_group_proto_rawDesc, - NumEnums: 0, - NumMessages: 34, - NumExtensions: 0, - NumServices: 1, - }, - GoTypes: file_group_group_proto_goTypes, - DependencyIndexes: file_group_group_proto_depIdxs, - MessageInfos: file_group_group_proto_msgTypes, - }.Build() - File_group_group_proto = out.File - file_group_group_proto_rawDesc = nil - file_group_group_proto_goTypes = nil - file_group_group_proto_depIdxs = nil +func init() { + proto.RegisterType((*CommonResp)(nil), "group.CommonResp") + proto.RegisterType((*CreateGroupReq)(nil), "group.CreateGroupReq") + proto.RegisterType((*GroupAddMemberInfo)(nil), "group.GroupAddMemberInfo") + proto.RegisterType((*CreateGroupResp)(nil), "group.CreateGroupResp") + proto.RegisterType((*GetGroupsInfoReq)(nil), "group.GetGroupsInfoReq") + proto.RegisterType((*GetGroupsInfoResp)(nil), "group.GetGroupsInfoResp") + proto.RegisterType((*SetGroupInfoReq)(nil), "group.SetGroupInfoReq") + proto.RegisterType((*GetGroupApplicationListReq)(nil), "group.GetGroupApplicationListReq") + proto.RegisterType((*GetGroupApplicationList_Data_User)(nil), "group.GetGroupApplicationList_Data_User") + proto.RegisterType((*GetGroupApplicationListData)(nil), "group.GetGroupApplicationListData") + proto.RegisterType((*GetGroupApplicationListResp)(nil), "group.GetGroupApplicationListResp") + proto.RegisterType((*TransferGroupOwnerReq)(nil), "group.TransferGroupOwnerReq") + proto.RegisterType((*TransferGroupOwnerResp)(nil), "group.TransferGroupOwnerResp") + proto.RegisterType((*JoinGroupReq)(nil), "group.JoinGroupReq") + proto.RegisterType((*GroupApplicationResponseReq)(nil), "group.GroupApplicationResponseReq") + proto.RegisterType((*GroupApplicationResponseResp)(nil), "group.GroupApplicationResponseResp") + proto.RegisterType((*SetOwnerGroupNickNameReq)(nil), "group.SetOwnerGroupNickNameReq") + proto.RegisterType((*QuitGroupReq)(nil), "group.QuitGroupReq") + proto.RegisterType((*GroupApplicationUserInfo)(nil), "group.GroupApplicationUserInfo") + proto.RegisterType((*GroupMemberFullInfo)(nil), "group.GroupMemberFullInfo") + proto.RegisterType((*GetGroupMemberListReq)(nil), "group.GetGroupMemberListReq") + proto.RegisterType((*GetGroupMemberListResp)(nil), "group.GetGroupMemberListResp") + proto.RegisterType((*GetGroupMembersInfoReq)(nil), "group.GetGroupMembersInfoReq") + proto.RegisterType((*GetGroupMembersInfoResp)(nil), "group.GetGroupMembersInfoResp") + proto.RegisterType((*KickGroupMemberReq)(nil), "group.KickGroupMemberReq") + proto.RegisterType((*Id2Result)(nil), "group.Id2Result") + proto.RegisterType((*KickGroupMemberResp)(nil), "group.KickGroupMemberResp") + proto.RegisterType((*GetJoinedGroupListReq)(nil), "group.getJoinedGroupListReq") + proto.RegisterType((*GroupInfo)(nil), "group.GroupInfo") + proto.RegisterType((*GetJoinedGroupListResp)(nil), "group.getJoinedGroupListResp") + proto.RegisterType((*InviteUserToGroupReq)(nil), "group.inviteUserToGroupReq") + proto.RegisterType((*InviteUserToGroupResp)(nil), "group.inviteUserToGroupResp") + proto.RegisterType((*GetGroupAllMemberReq)(nil), "group.GetGroupAllMemberReq") + proto.RegisterType((*GetGroupAllMemberResp)(nil), "group.GetGroupAllMemberResp") +} + +func init() { proto.RegisterFile("group/group.proto", fileDescriptor_group_9fd4d73937974f0d) } + +var fileDescriptor_group_9fd4d73937974f0d = []byte{ + // 1717 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x59, 0xcd, 0x6e, 0xdc, 0x46, + 0x12, 0x06, 0x67, 0x38, 0x92, 0xa6, 0xf4, 0xdf, 0xb2, 0x64, 0xee, 0x58, 0x2b, 0xc8, 0xbd, 0xc6, + 0x42, 0xd8, 0x83, 0x17, 0x90, 0x91, 0x00, 0x4e, 0x7c, 0x88, 0x2d, 0x59, 0xb2, 0x9c, 0x58, 0xb2, + 0x29, 0xf9, 0x92, 0x8b, 0x4d, 0x0f, 0x5b, 0x63, 0x5a, 0x33, 0xe4, 0x88, 0xe4, 0xc4, 0x4e, 0x2e, + 0x81, 0x83, 0x00, 0xf9, 0x43, 0x90, 0x83, 0x4f, 0x49, 0x5e, 0x20, 0xa7, 0x3c, 0x41, 0xde, 0x26, + 0x2f, 0x12, 0x74, 0xf5, 0x0f, 0x9b, 0x7f, 0x23, 0x43, 0x0a, 0xe2, 0xcb, 0x80, 0x55, 0x5d, 0xdd, + 0x5d, 0x55, 0x5d, 0xf5, 0x75, 0x55, 0x0f, 0x2c, 0xf6, 0xe2, 0x68, 0x34, 0xfc, 0x3f, 0xfe, 0x5e, + 0x1f, 0xc6, 0x51, 0x1a, 0x91, 0x16, 0x12, 0x74, 0x07, 0x60, 0x2b, 0x1a, 0x0c, 0xa2, 0xd0, 0x65, + 0xc9, 0x90, 0xac, 0x42, 0xfb, 0x6e, 0x1c, 0x47, 0xf1, 0x56, 0xe4, 0x33, 0xc7, 0x5a, 0xb7, 0x36, + 0x5a, 0x6e, 0xc6, 0x20, 0x1d, 0x98, 0x42, 0xe2, 0x41, 0xd2, 0x73, 0x1a, 0xeb, 0xd6, 0x46, 0xdb, + 0xd5, 0x34, 0x7d, 0xd3, 0x80, 0xb9, 0xad, 0x98, 0x79, 0x29, 0xdb, 0xe5, 0xeb, 0xba, 0xec, 0x94, + 0xdc, 0x04, 0x18, 0xb0, 0xc1, 0x33, 0x16, 0x7f, 0x12, 0x24, 0xa9, 0x63, 0xad, 0x37, 0x37, 0xa6, + 0x37, 0xff, 0x75, 0x5d, 0xe8, 0x80, 0x42, 0xb7, 0x7d, 0xff, 0x01, 0x0a, 0xec, 0x85, 0xc7, 0x91, + 0x6b, 0x08, 0x73, 0x3d, 0x50, 0x6e, 0xdf, 0x1b, 0x30, 0xb9, 0x55, 0xc6, 0x20, 0x14, 0x66, 0x82, + 0x30, 0x8d, 0x23, 0x7f, 0xd4, 0x4d, 0x83, 0x28, 0x74, 0x9a, 0x28, 0x90, 0xe3, 0x71, 0x99, 0x30, + 0x4a, 0x83, 0xe3, 0xa0, 0xeb, 0xa1, 0x8c, 0x2d, 0x64, 0x4c, 0x1e, 0x71, 0x60, 0xf2, 0xd8, 0xeb, + 0xb2, 0xc7, 0x71, 0xdf, 0x69, 0xe1, 0xb0, 0x22, 0xc9, 0x25, 0x68, 0xa5, 0xd1, 0x09, 0x0b, 0x9d, + 0x09, 0xe4, 0x0b, 0x82, 0xac, 0xc3, 0x74, 0x34, 0x64, 0x31, 0x4e, 0xde, 0xdb, 0x76, 0x26, 0x71, + 0xcc, 0x64, 0x91, 0x39, 0x68, 0xb0, 0x57, 0xce, 0x14, 0x0e, 0x34, 0xd8, 0x2b, 0xfa, 0x11, 0x90, + 0xb2, 0xa5, 0x64, 0x01, 0x9a, 0xa3, 0xc0, 0x47, 0xff, 0xb6, 0x5d, 0xfe, 0xc9, 0x35, 0x49, 0x58, + 0xea, 0x46, 0x7d, 0x61, 0x6d, 0xcb, 0x55, 0x24, 0x65, 0x30, 0x9f, 0x73, 0xeb, 0x45, 0x0e, 0x89, + 0x6f, 0x83, 0x5e, 0xdc, 0xdb, 0x96, 0x3e, 0x53, 0x24, 0xed, 0xc3, 0xc2, 0x2e, 0x4b, 0x71, 0x8f, + 0x04, 0x4f, 0x83, 0x9d, 0x72, 0x73, 0xe5, 0xb0, 0x3e, 0xc0, 0xb6, 0x6b, 0xb2, 0x32, 0x37, 0x35, + 0xc6, 0xb8, 0xa9, 0x59, 0x72, 0x13, 0x4d, 0x60, 0xb1, 0xb0, 0xdb, 0x85, 0xcc, 0xba, 0x06, 0xb6, + 0xef, 0xa5, 0x9e, 0xd3, 0xc4, 0x10, 0x5b, 0x30, 0x43, 0x0c, 0x57, 0xc7, 0x51, 0xfa, 0xa7, 0x05, + 0xf3, 0x87, 0x72, 0x57, 0x65, 0xa2, 0xe1, 0x10, 0x2b, 0xe7, 0x90, 0xb3, 0x23, 0x30, 0x17, 0x5d, + 0xcd, 0x8a, 0xe8, 0x2a, 0x46, 0xa9, 0x5d, 0x11, 0xa5, 0x7f, 0x7b, 0x04, 0xd2, 0x87, 0xd0, 0x51, + 0xae, 0xbd, 0x3d, 0x1c, 0xf6, 0xa5, 0x32, 0xfc, 0xb4, 0xb8, 0xbd, 0x0b, 0xd0, 0x7c, 0xac, 0x6d, + 0xe5, 0x9f, 0x7c, 0xc5, 0x03, 0x63, 0x45, 0x61, 0xa9, 0xc9, 0xa2, 0x3f, 0xdb, 0x70, 0xb5, 0x66, + 0xc9, 0x27, 0xdb, 0x5e, 0xea, 0x3d, 0x79, 0x9c, 0xb0, 0x98, 0x47, 0xbe, 0x5e, 0xb8, 0xb1, 0xb7, + 0xcd, 0x2d, 0xdb, 0x95, 0x9e, 0x15, 0x6b, 0x2a, 0x92, 0xac, 0x01, 0xec, 0xc4, 0xd1, 0x80, 0xcf, + 0xd2, 0xd1, 0x61, 0x70, 0xf8, 0x49, 0x1f, 0x45, 0x72, 0x54, 0xf8, 0x4c, 0xd3, 0x84, 0x80, 0xbd, + 0xd3, 0xf7, 0x7a, 0xe8, 0xac, 0x96, 0x8b, 0xdf, 0x7c, 0x3d, 0x97, 0x9d, 0x8e, 0x58, 0x92, 0xf2, + 0xd8, 0x10, 0xee, 0x32, 0x38, 0x7c, 0xfc, 0x9e, 0x17, 0xfa, 0x7d, 0xe6, 0xf3, 0x71, 0xe1, 0x32, + 0x83, 0xc3, 0x35, 0xbd, 0xed, 0xfb, 0x47, 0xc1, 0x80, 0x61, 0xe2, 0x36, 0x5d, 0x45, 0x92, 0xff, + 0xc1, 0x82, 0xd2, 0x6b, 0x3f, 0xe8, 0x9e, 0x84, 0x3c, 0x14, 0xda, 0x38, 0xbf, 0xc4, 0x27, 0xff, + 0x85, 0x39, 0xa1, 0xa5, 0x96, 0x04, 0x94, 0x2c, 0x70, 0xc9, 0x06, 0xcc, 0xab, 0xb9, 0x3b, 0xf2, + 0xe4, 0xa7, 0x51, 0xb0, 0xc8, 0x26, 0xd7, 0x60, 0x56, 0xcc, 0x55, 0x72, 0x33, 0x28, 0x97, 0x67, + 0xf2, 0xf3, 0x93, 0xb6, 0x70, 0xae, 0x33, 0x2b, 0xce, 0xcf, 0x60, 0x71, 0x9f, 0x1d, 0x7d, 0x3e, + 0x64, 0xce, 0x9c, 0xf0, 0x19, 0xff, 0xe6, 0xb1, 0x29, 0x44, 0x0e, 0x53, 0x2f, 0x1d, 0x25, 0xce, + 0x3c, 0x8e, 0xe5, 0x78, 0x99, 0x8c, 0xcb, 0x92, 0x51, 0x3f, 0x75, 0x16, 0x4c, 0x19, 0xc1, 0xa3, + 0xa7, 0x70, 0xa5, 0x26, 0x34, 0x78, 0x64, 0xf0, 0x20, 0xde, 0x8a, 0x46, 0x61, 0x2a, 0xd3, 0x59, + 0x10, 0xe4, 0x16, 0xd8, 0xa8, 0x6b, 0x03, 0xd3, 0x75, 0x43, 0xa5, 0xeb, 0x59, 0x21, 0xe6, 0xe2, + 0x2c, 0xfa, 0x8d, 0x55, 0xbb, 0x27, 0xc2, 0x88, 0x03, 0x93, 0x77, 0x63, 0x13, 0x44, 0x14, 0x49, + 0x56, 0x60, 0xe2, 0x6e, 0x6c, 0x00, 0x88, 0xa4, 0xc8, 0xfb, 0x60, 0x6f, 0x0b, 0xf8, 0xb0, 0x36, + 0xa6, 0x37, 0xe9, 0x78, 0x7d, 0xb8, 0xa4, 0x8b, 0xf2, 0xf4, 0x07, 0x0b, 0x96, 0x8f, 0x62, 0x2f, + 0x4c, 0x8e, 0x59, 0x8c, 0xa2, 0x07, 0x2f, 0x43, 0x16, 0x4b, 0x58, 0xd9, 0xcd, 0xc3, 0x8a, 0x0a, + 0xfe, 0x0e, 0x4c, 0x1d, 0xf4, 0x7d, 0x14, 0x54, 0x30, 0xa6, 0x68, 0x3e, 0xb6, 0xcf, 0x5e, 0x8a, + 0x31, 0x91, 0x16, 0x9a, 0x2e, 0xa6, 0xa9, 0x5d, 0x4e, 0xd3, 0xfb, 0xb0, 0x52, 0xa5, 0xcc, 0x79, + 0x3c, 0x42, 0xbf, 0x80, 0x99, 0xfb, 0x51, 0x10, 0xea, 0x9b, 0xbc, 0x1e, 0x26, 0x1d, 0x98, 0x1c, + 0xb0, 0x24, 0xf1, 0x7a, 0x0a, 0x24, 0x15, 0x99, 0x01, 0x58, 0xb3, 0x00, 0x60, 0x67, 0xd8, 0xf1, + 0x9d, 0x0d, 0x57, 0x8a, 0x8e, 0xe7, 0x66, 0x44, 0x61, 0xc2, 0xe4, 0xad, 0x64, 0xae, 0x60, 0x95, + 0x56, 0xe0, 0x3a, 0xa1, 0xf1, 0x19, 0xf4, 0x48, 0xd2, 0x3c, 0x97, 0xe6, 0x38, 0x50, 0xb2, 0x4b, + 0xa0, 0x54, 0x80, 0x02, 0xbc, 0x15, 0x5a, 0x65, 0x28, 0xd8, 0xaf, 0x49, 0xf1, 0x89, 0xea, 0x14, + 0x37, 0xa1, 0x6e, 0xb2, 0x00, 0x75, 0x39, 0x40, 0xc1, 0xfd, 0xa6, 0x8a, 0x80, 0x82, 0xbb, 0x95, + 0x60, 0xa2, 0x5d, 0x05, 0x13, 0x06, 0xc8, 0x41, 0x1e, 0xe4, 0xf2, 0xf0, 0x39, 0x7d, 0x06, 0x7c, + 0xce, 0x94, 0xe0, 0x53, 0xc1, 0xcb, 0xec, 0x18, 0x78, 0x99, 0x7b, 0x0b, 0x78, 0x99, 0xaf, 0x80, + 0x97, 0x87, 0xb0, 0x5a, 0x1f, 0x0a, 0xe7, 0x8a, 0xec, 0x6f, 0x2d, 0x70, 0x0e, 0x59, 0x8a, 0x01, + 0x81, 0x4b, 0x2b, 0x3f, 0x8e, 0x0f, 0xf3, 0x0e, 0x4c, 0x85, 0xea, 0x18, 0x64, 0xda, 0x2a, 0xba, + 0x18, 0x90, 0xcd, 0x72, 0x40, 0xea, 0x54, 0xb0, 0x8d, 0x54, 0xa0, 0x4f, 0x61, 0xe6, 0xd1, 0x28, + 0x48, 0xdf, 0x22, 0xc9, 0x0a, 0xb7, 0x7e, 0xa3, 0x5c, 0x77, 0x56, 0x26, 0x1b, 0xfd, 0xba, 0x01, + 0x4e, 0xd1, 0x7f, 0x18, 0x5d, 0xbc, 0x08, 0xad, 0xdf, 0x4e, 0x96, 0xa7, 0x8d, 0xac, 0x3c, 0x25, + 0x60, 0xe3, 0x95, 0x26, 0x56, 0xc7, 0x6f, 0xce, 0x0b, 0xba, 0xba, 0xac, 0xc1, 0x6f, 0xee, 0xf5, + 0x98, 0x9d, 0x72, 0xaf, 0x8b, 0xdc, 0x90, 0x14, 0xcf, 0x08, 0x2f, 0x53, 0x01, 0xa3, 0x70, 0x02, + 0xa3, 0xb0, 0xc8, 0xe6, 0xab, 0x1e, 0xf3, 0x0b, 0x7e, 0x52, 0x44, 0xd3, 0xb1, 0xbc, 0xe0, 0x85, + 0xad, 0x11, 0xcf, 0x13, 0x91, 0x05, 0x06, 0x87, 0x8f, 0x3f, 0xcf, 0x22, 0x54, 0x84, 0xbf, 0xc1, + 0xa1, 0x6f, 0x2c, 0x58, 0x42, 0x37, 0x88, 0x12, 0x7c, 0x67, 0xd4, 0xef, 0xa3, 0x07, 0x56, 0x60, + 0x62, 0xc4, 0xbd, 0xa1, 0x2a, 0x71, 0x49, 0x71, 0x1d, 0xe2, 0xac, 0x12, 0xc7, 0x6f, 0x1e, 0x00, + 0x2f, 0xa2, 0x40, 0xa8, 0xce, 0xbd, 0x60, 0xbb, 0x9a, 0xce, 0x05, 0x87, 0x5d, 0x08, 0x8e, 0xda, + 0x02, 0x8f, 0xfe, 0x6a, 0xc1, 0xb2, 0xba, 0x63, 0x1e, 0xe8, 0xce, 0x67, 0x7c, 0x20, 0x9c, 0xb3, + 0xde, 0xe6, 0x96, 0x1e, 0x07, 0xfd, 0x94, 0xc5, 0xa8, 0x5f, 0xcb, 0x95, 0x14, 0xdf, 0x29, 0x64, + 0xaf, 0xd2, 0x43, 0x76, 0x2a, 0x2b, 0x2a, 0x45, 0xd2, 0xdf, 0x2c, 0x58, 0xa9, 0xd2, 0x4e, 0xd4, + 0xe9, 0xac, 0x58, 0xa7, 0x33, 0xb3, 0x4e, 0x67, 0x85, 0x3a, 0x5d, 0xd1, 0xe4, 0x83, 0x5c, 0x43, + 0x28, 0xaa, 0xf5, 0x8e, 0x59, 0xad, 0xe7, 0x0f, 0x28, 0xd7, 0x11, 0x1a, 0xaa, 0xda, 0x79, 0x55, + 0xbf, 0x2f, 0xa9, 0x9a, 0x9c, 0x5d, 0xde, 0xaf, 0xe5, 0x54, 0x69, 0x60, 0x6b, 0x63, 0x6e, 0x57, + 0x7b, 0x7b, 0x45, 0xe5, 0xdb, 0xcb, 0x2c, 0xbf, 0x7f, 0xb2, 0xe0, 0x72, 0xa5, 0x32, 0xef, 0xca, + 0x71, 0xf4, 0x0f, 0x0b, 0xc8, 0xc7, 0x41, 0xf7, 0xc4, 0x90, 0x1b, 0xef, 0x9a, 0x5b, 0x30, 0x3d, + 0x0a, 0x7c, 0x3e, 0x97, 0xaf, 0x25, 0xab, 0xb4, 0x71, 0xbb, 0x99, 0xe2, 0x02, 0x02, 0xbc, 0x44, + 0xf7, 0x44, 0x92, 0xaa, 0xc6, 0xc0, 0xa2, 0x43, 0x5b, 0x65, 0x87, 0xbe, 0x07, 0xed, 0x3d, 0x7f, + 0x53, 0xdc, 0x07, 0x88, 0x4c, 0x7b, 0x59, 0xe3, 0xbc, 0xe7, 0x8b, 0xed, 0xf0, 0xfe, 0x10, 0xd9, + 0x2a, 0x29, 0xfa, 0x25, 0x2c, 0x95, 0x8c, 0xbe, 0xd0, 0x11, 0x5c, 0x87, 0x76, 0xe0, 0x6f, 0xca, + 0xbd, 0xf2, 0x8d, 0xa6, 0xd6, 0xcf, 0xcd, 0x44, 0xe8, 0x01, 0x2c, 0xf7, 0x58, 0xca, 0xab, 0x28, + 0xe6, 0xa3, 0x16, 0x2a, 0xbb, 0xb5, 0x23, 0xac, 0x31, 0x8e, 0x28, 0x43, 0x3c, 0x7d, 0xdd, 0x80, + 0xb6, 0xee, 0x5d, 0xb3, 0xe3, 0xf3, 0xf3, 0xc7, 0xe7, 0xbf, 0xf3, 0xc6, 0x75, 0x0d, 0xa0, 0x8b, + 0x0f, 0x16, 0x1a, 0xe6, 0x6d, 0xd7, 0xe0, 0xf0, 0x99, 0x11, 0x96, 0x63, 0xbe, 0x2c, 0x79, 0x14, + 0xc9, 0x7d, 0x20, 0xe2, 0x56, 0xf4, 0x0c, 0x1c, 0xe8, 0x67, 0x5d, 0x93, 0x45, 0xbf, 0xb2, 0x60, + 0xa5, 0xca, 0xab, 0x17, 0x3d, 0xd9, 0x9e, 0x5a, 0xaa, 0xf6, 0x09, 0x21, 0x13, 0xa1, 0xbf, 0x58, + 0x70, 0x29, 0x08, 0x3f, 0x0b, 0x52, 0xc6, 0xef, 0xd2, 0xa3, 0x48, 0x5f, 0xe0, 0xe7, 0x3c, 0xd9, + 0xfa, 0x57, 0x19, 0x23, 0x99, 0xec, 0x5c, 0x32, 0x39, 0x30, 0x29, 0x73, 0xce, 0x69, 0x21, 0x74, + 0x29, 0x92, 0xbe, 0xb6, 0x60, 0xb9, 0x42, 0xb9, 0x7f, 0x34, 0xf4, 0x9f, 0xc3, 0x25, 0xdd, 0x3c, + 0xf5, 0xfb, 0x6f, 0x03, 0x39, 0xe7, 0x7d, 0x47, 0xfa, 0xd1, 0xb8, 0x43, 0x8d, 0xad, 0xde, 0x15, + 0xd6, 0x6e, 0xfe, 0x3e, 0x05, 0xe2, 0x59, 0x95, 0x83, 0x68, 0x37, 0x7b, 0xb6, 0x23, 0xcb, 0x72, + 0x81, 0xfc, 0x0b, 0x69, 0x67, 0xa5, 0x8a, 0x9d, 0x0c, 0xc9, 0x0d, 0x68, 0xbf, 0x50, 0xfd, 0x17, + 0x59, 0x92, 0x42, 0x66, 0x47, 0xd6, 0x59, 0x54, 0x33, 0xb3, 0xb7, 0xdb, 0x1b, 0xd0, 0x3e, 0x55, + 0xf5, 0xa4, 0x9e, 0x64, 0x56, 0x98, 0x55, 0x93, 0xee, 0xc0, 0x6c, 0xcf, 0x7c, 0x89, 0x23, 0x97, + 0x0b, 0xed, 0xaf, 0xba, 0x4b, 0x3b, 0x4e, 0xf5, 0x40, 0x32, 0x24, 0x37, 0x61, 0x26, 0x31, 0xde, + 0xd5, 0x88, 0xb2, 0xaa, 0xf0, 0xd8, 0x56, 0xb5, 0xfd, 0x53, 0xb8, 0xdc, 0xab, 0xee, 0xb3, 0xc9, + 0xd5, 0xf1, 0x7d, 0x38, 0x5f, 0x90, 0x9e, 0x25, 0x92, 0x0c, 0xc9, 0x23, 0x20, 0x69, 0xa9, 0x2d, + 0x26, 0xab, 0x72, 0x66, 0x65, 0xfb, 0xde, 0xf9, 0xf7, 0x98, 0xd1, 0x64, 0x48, 0xba, 0xe0, 0xf4, + 0x6a, 0xba, 0x12, 0x42, 0x73, 0xef, 0xdb, 0x95, 0x1d, 0x6c, 0xe7, 0x3f, 0x67, 0xca, 0x08, 0xbd, + 0x7b, 0xa5, 0xfa, 0x4b, 0xeb, 0x5d, 0x59, 0x38, 0x6a, 0xbd, 0x6b, 0x0a, 0xb7, 0x23, 0x58, 0xea, + 0x95, 0x4b, 0x13, 0x52, 0x3d, 0x4b, 0x9f, 0xfb, 0xda, 0xb8, 0xe1, 0x64, 0x48, 0xee, 0xc1, 0xfc, + 0x49, 0xfe, 0xa6, 0x25, 0xea, 0x91, 0xbf, 0x5c, 0x76, 0x74, 0x3a, 0x75, 0x43, 0xda, 0xe4, 0x02, + 0xb8, 0x6b, 0x93, 0x2b, 0x6f, 0x53, 0x6d, 0x72, 0xcd, 0xad, 0xb0, 0x0f, 0x8b, 0x25, 0x34, 0x24, + 0x57, 0xe4, 0x9c, 0x2a, 0x10, 0xef, 0xac, 0xd6, 0x0f, 0x8a, 0xf5, 0x7a, 0x45, 0xbc, 0xd1, 0xeb, + 0x55, 0x81, 0x5e, 0x67, 0xb5, 0x7e, 0x30, 0x19, 0xde, 0x99, 0xfd, 0x54, 0xbc, 0xa7, 0x7f, 0x88, + 0xbf, 0xcf, 0x26, 0xf0, 0xaf, 0x99, 0x1b, 0x7f, 0x05, 0x00, 0x00, 0xff, 0xff, 0x31, 0x19, 0x23, + 0x3c, 0xaf, 0x19, 0x00, 0x00, } diff --git a/src/proto/push/push.pb.go b/src/proto/push/push.pb.go index 27d7a8a69..99928a8fb 100644 --- a/src/proto/push/push.pb.go +++ b/src/proto/push/push.pb.go @@ -1,360 +1,250 @@ // Code generated by protoc-gen-go. DO NOT EDIT. -// versions: -// protoc-gen-go v1.26.0 -// protoc v3.7.1 // source: push/push.proto -package pbPush +package pbPush // import "push" -import ( - protoreflect "google.golang.org/protobuf/reflect/protoreflect" - protoimpl "google.golang.org/protobuf/runtime/protoimpl" - reflect "reflect" - sync "sync" -) +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" -const ( - // Verify that this generated code is sufficiently up-to-date. - _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) - // Verify that runtime/protoimpl is sufficiently up-to-date. - _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) -) +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf -type PushMsgReq struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields +// 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 - SendID string `protobuf:"bytes,1,opt,name=SendID,proto3" json:"SendID,omitempty"` - RecvID string `protobuf:"bytes,2,opt,name=RecvID,proto3" json:"RecvID,omitempty"` - Content string `protobuf:"bytes,3,opt,name=Content,proto3" json:"Content,omitempty"` - RecvSeq int64 `protobuf:"varint,4,opt,name=RecvSeq,proto3" json:"RecvSeq,omitempty"` - SendTime int64 `protobuf:"varint,5,opt,name=SendTime,proto3" json:"SendTime,omitempty"` - MsgFrom int32 `protobuf:"varint,6,opt,name=MsgFrom,proto3" json:"MsgFrom,omitempty"` - ContentType int32 `protobuf:"varint,7,opt,name=ContentType,proto3" json:"ContentType,omitempty"` - SessionType int32 `protobuf:"varint,8,opt,name=SessionType,proto3" json:"SessionType,omitempty"` - OperationID string `protobuf:"bytes,9,opt,name=OperationID,proto3" json:"OperationID,omitempty"` - MsgID string `protobuf:"bytes,10,opt,name=MsgID,proto3" json:"MsgID,omitempty"` - OfflineInfo string `protobuf:"bytes,11,opt,name=OfflineInfo,proto3" json:"OfflineInfo,omitempty"` - Options string `protobuf:"bytes,12,opt,name=Options,proto3" json:"Options,omitempty"` - PlatformID int32 `protobuf:"varint,13,opt,name=PlatformID,proto3" json:"PlatformID,omitempty"` - SenderNickName string `protobuf:"bytes,14,opt,name=SenderNickName,proto3" json:"SenderNickName,omitempty"` - SenderFaceURL string `protobuf:"bytes,15,opt,name=SenderFaceURL,proto3" json:"SenderFaceURL,omitempty"` - ClientMsgID string `protobuf:"bytes,16,opt,name=ClientMsgID,proto3" json:"ClientMsgID,omitempty"` +type PushMsgReq struct { + SendID string `protobuf:"bytes,1,opt,name=SendID" json:"SendID,omitempty"` + RecvID string `protobuf:"bytes,2,opt,name=RecvID" json:"RecvID,omitempty"` + Content string `protobuf:"bytes,3,opt,name=Content" json:"Content,omitempty"` + RecvSeq int64 `protobuf:"varint,4,opt,name=RecvSeq" json:"RecvSeq,omitempty"` + SendTime int64 `protobuf:"varint,5,opt,name=SendTime" json:"SendTime,omitempty"` + MsgFrom int32 `protobuf:"varint,6,opt,name=MsgFrom" json:"MsgFrom,omitempty"` + ContentType int32 `protobuf:"varint,7,opt,name=ContentType" json:"ContentType,omitempty"` + SessionType int32 `protobuf:"varint,8,opt,name=SessionType" json:"SessionType,omitempty"` + OperationID string `protobuf:"bytes,9,opt,name=OperationID" json:"OperationID,omitempty"` + MsgID string `protobuf:"bytes,10,opt,name=MsgID" json:"MsgID,omitempty"` + OfflineInfo string `protobuf:"bytes,11,opt,name=OfflineInfo" json:"OfflineInfo,omitempty"` + Options string `protobuf:"bytes,12,opt,name=Options" json:"Options,omitempty"` + PlatformID int32 `protobuf:"varint,13,opt,name=PlatformID" json:"PlatformID,omitempty"` + SenderNickName string `protobuf:"bytes,14,opt,name=SenderNickName" json:"SenderNickName,omitempty"` + SenderFaceURL string `protobuf:"bytes,15,opt,name=SenderFaceURL" json:"SenderFaceURL,omitempty"` + ClientMsgID string `protobuf:"bytes,16,opt,name=ClientMsgID" json:"ClientMsgID,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *PushMsgReq) Reset() { *m = PushMsgReq{} } +func (m *PushMsgReq) String() string { return proto.CompactTextString(m) } +func (*PushMsgReq) ProtoMessage() {} +func (*PushMsgReq) Descriptor() ([]byte, []int) { + return fileDescriptor_push_a8d13c8ad86fddce, []int{0} } - -func (x *PushMsgReq) Reset() { - *x = PushMsgReq{} - if protoimpl.UnsafeEnabled { - mi := &file_push_push_proto_msgTypes[0] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } +func (m *PushMsgReq) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_PushMsgReq.Unmarshal(m, b) } - -func (x *PushMsgReq) String() string { - return protoimpl.X.MessageStringOf(x) +func (m *PushMsgReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_PushMsgReq.Marshal(b, m, deterministic) } - -func (*PushMsgReq) ProtoMessage() {} - -func (x *PushMsgReq) ProtoReflect() protoreflect.Message { - mi := &file_push_push_proto_msgTypes[0] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) +func (dst *PushMsgReq) XXX_Merge(src proto.Message) { + xxx_messageInfo_PushMsgReq.Merge(dst, src) } - -// Deprecated: Use PushMsgReq.ProtoReflect.Descriptor instead. -func (*PushMsgReq) Descriptor() ([]byte, []int) { - return file_push_push_proto_rawDescGZIP(), []int{0} +func (m *PushMsgReq) XXX_Size() int { + return xxx_messageInfo_PushMsgReq.Size(m) } +func (m *PushMsgReq) XXX_DiscardUnknown() { + xxx_messageInfo_PushMsgReq.DiscardUnknown(m) +} + +var xxx_messageInfo_PushMsgReq proto.InternalMessageInfo -func (x *PushMsgReq) GetSendID() string { - if x != nil { - return x.SendID +func (m *PushMsgReq) GetSendID() string { + if m != nil { + return m.SendID } return "" } -func (x *PushMsgReq) GetRecvID() string { - if x != nil { - return x.RecvID +func (m *PushMsgReq) GetRecvID() string { + if m != nil { + return m.RecvID } return "" } -func (x *PushMsgReq) GetContent() string { - if x != nil { - return x.Content +func (m *PushMsgReq) GetContent() string { + if m != nil { + return m.Content } return "" } -func (x *PushMsgReq) GetRecvSeq() int64 { - if x != nil { - return x.RecvSeq +func (m *PushMsgReq) GetRecvSeq() int64 { + if m != nil { + return m.RecvSeq } return 0 } -func (x *PushMsgReq) GetSendTime() int64 { - if x != nil { - return x.SendTime +func (m *PushMsgReq) GetSendTime() int64 { + if m != nil { + return m.SendTime } return 0 } -func (x *PushMsgReq) GetMsgFrom() int32 { - if x != nil { - return x.MsgFrom +func (m *PushMsgReq) GetMsgFrom() int32 { + if m != nil { + return m.MsgFrom } return 0 } -func (x *PushMsgReq) GetContentType() int32 { - if x != nil { - return x.ContentType +func (m *PushMsgReq) GetContentType() int32 { + if m != nil { + return m.ContentType } return 0 } -func (x *PushMsgReq) GetSessionType() int32 { - if x != nil { - return x.SessionType +func (m *PushMsgReq) GetSessionType() int32 { + if m != nil { + return m.SessionType } return 0 } -func (x *PushMsgReq) GetOperationID() string { - if x != nil { - return x.OperationID +func (m *PushMsgReq) GetOperationID() string { + if m != nil { + return m.OperationID } return "" } -func (x *PushMsgReq) GetMsgID() string { - if x != nil { - return x.MsgID +func (m *PushMsgReq) GetMsgID() string { + if m != nil { + return m.MsgID } return "" } -func (x *PushMsgReq) GetOfflineInfo() string { - if x != nil { - return x.OfflineInfo +func (m *PushMsgReq) GetOfflineInfo() string { + if m != nil { + return m.OfflineInfo } return "" } -func (x *PushMsgReq) GetOptions() string { - if x != nil { - return x.Options +func (m *PushMsgReq) GetOptions() string { + if m != nil { + return m.Options } return "" } -func (x *PushMsgReq) GetPlatformID() int32 { - if x != nil { - return x.PlatformID +func (m *PushMsgReq) GetPlatformID() int32 { + if m != nil { + return m.PlatformID } return 0 } -func (x *PushMsgReq) GetSenderNickName() string { - if x != nil { - return x.SenderNickName +func (m *PushMsgReq) GetSenderNickName() string { + if m != nil { + return m.SenderNickName } return "" } -func (x *PushMsgReq) GetSenderFaceURL() string { - if x != nil { - return x.SenderFaceURL +func (m *PushMsgReq) GetSenderFaceURL() string { + if m != nil { + return m.SenderFaceURL } return "" } -func (x *PushMsgReq) GetClientMsgID() string { - if x != nil { - return x.ClientMsgID +func (m *PushMsgReq) GetClientMsgID() string { + if m != nil { + return m.ClientMsgID } return "" } type PushMsgResp struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - ResultCode int32 `protobuf:"varint,1,opt,name=ResultCode,proto3" json:"ResultCode,omitempty"` + ResultCode int32 `protobuf:"varint,1,opt,name=ResultCode" json:"ResultCode,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (x *PushMsgResp) Reset() { - *x = PushMsgResp{} - if protoimpl.UnsafeEnabled { - mi := &file_push_push_proto_msgTypes[1] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } +func (m *PushMsgResp) Reset() { *m = PushMsgResp{} } +func (m *PushMsgResp) String() string { return proto.CompactTextString(m) } +func (*PushMsgResp) ProtoMessage() {} +func (*PushMsgResp) Descriptor() ([]byte, []int) { + return fileDescriptor_push_a8d13c8ad86fddce, []int{1} } - -func (x *PushMsgResp) String() string { - return protoimpl.X.MessageStringOf(x) +func (m *PushMsgResp) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_PushMsgResp.Unmarshal(m, b) } - -func (*PushMsgResp) ProtoMessage() {} - -func (x *PushMsgResp) ProtoReflect() protoreflect.Message { - mi := &file_push_push_proto_msgTypes[1] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) +func (m *PushMsgResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_PushMsgResp.Marshal(b, m, deterministic) } - -// Deprecated: Use PushMsgResp.ProtoReflect.Descriptor instead. -func (*PushMsgResp) Descriptor() ([]byte, []int) { - return file_push_push_proto_rawDescGZIP(), []int{1} +func (dst *PushMsgResp) XXX_Merge(src proto.Message) { + xxx_messageInfo_PushMsgResp.Merge(dst, src) } - -func (x *PushMsgResp) GetResultCode() int32 { - if x != nil { - return x.ResultCode - } - return 0 +func (m *PushMsgResp) XXX_Size() int { + return xxx_messageInfo_PushMsgResp.Size(m) } - -var File_push_push_proto protoreflect.FileDescriptor - -var file_push_push_proto_rawDesc = []byte{ - 0x0a, 0x0f, 0x70, 0x75, 0x73, 0x68, 0x2f, 0x70, 0x75, 0x73, 0x68, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x12, 0x04, 0x70, 0x75, 0x73, 0x68, 0x22, 0xee, 0x03, 0x0a, 0x0a, 0x50, 0x75, 0x73, 0x68, - 0x4d, 0x73, 0x67, 0x52, 0x65, 0x71, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x65, 0x6e, 0x64, 0x49, 0x44, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x53, 0x65, 0x6e, 0x64, 0x49, 0x44, 0x12, 0x16, - 0x0a, 0x06, 0x52, 0x65, 0x63, 0x76, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, - 0x52, 0x65, 0x63, 0x76, 0x49, 0x44, 0x12, 0x18, 0x0a, 0x07, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, - 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, - 0x12, 0x18, 0x0a, 0x07, 0x52, 0x65, 0x63, 0x76, 0x53, 0x65, 0x71, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x03, 0x52, 0x07, 0x52, 0x65, 0x63, 0x76, 0x53, 0x65, 0x71, 0x12, 0x1a, 0x0a, 0x08, 0x53, 0x65, - 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x53, 0x65, - 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x4d, 0x73, 0x67, 0x46, 0x72, 0x6f, - 0x6d, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x4d, 0x73, 0x67, 0x46, 0x72, 0x6f, 0x6d, - 0x12, 0x20, 0x0a, 0x0b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x18, - 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x54, 0x79, - 0x70, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, - 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, - 0x54, 0x79, 0x70, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x49, 0x44, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x12, 0x14, 0x0a, 0x05, 0x4d, 0x73, 0x67, 0x49, 0x44, 0x18, - 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x4d, 0x73, 0x67, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, - 0x4f, 0x66, 0x66, 0x6c, 0x69, 0x6e, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x0b, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0b, 0x4f, 0x66, 0x66, 0x6c, 0x69, 0x6e, 0x65, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x18, - 0x0a, 0x07, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x07, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x1e, 0x0a, 0x0a, 0x50, 0x6c, 0x61, 0x74, - 0x66, 0x6f, 0x72, 0x6d, 0x49, 0x44, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x50, 0x6c, - 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x49, 0x44, 0x12, 0x26, 0x0a, 0x0e, 0x53, 0x65, 0x6e, 0x64, - 0x65, 0x72, 0x4e, 0x69, 0x63, 0x6b, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0e, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x4e, 0x69, 0x63, 0x6b, 0x4e, 0x61, 0x6d, 0x65, - 0x12, 0x24, 0x0a, 0x0d, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x46, 0x61, 0x63, 0x65, 0x55, 0x52, - 0x4c, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x46, - 0x61, 0x63, 0x65, 0x55, 0x52, 0x4c, 0x12, 0x20, 0x0a, 0x0b, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, - 0x4d, 0x73, 0x67, 0x49, 0x44, 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x43, 0x6c, 0x69, - 0x65, 0x6e, 0x74, 0x4d, 0x73, 0x67, 0x49, 0x44, 0x22, 0x2d, 0x0a, 0x0b, 0x50, 0x75, 0x73, 0x68, - 0x4d, 0x73, 0x67, 0x52, 0x65, 0x73, 0x70, 0x12, 0x1e, 0x0a, 0x0a, 0x52, 0x65, 0x73, 0x75, 0x6c, - 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x52, 0x65, 0x73, - 0x75, 0x6c, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x32, 0x40, 0x0a, 0x0e, 0x50, 0x75, 0x73, 0x68, 0x4d, - 0x73, 0x67, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x2e, 0x0a, 0x07, 0x50, 0x75, 0x73, - 0x68, 0x4d, 0x73, 0x67, 0x12, 0x10, 0x2e, 0x70, 0x75, 0x73, 0x68, 0x2e, 0x50, 0x75, 0x73, 0x68, - 0x4d, 0x73, 0x67, 0x52, 0x65, 0x71, 0x1a, 0x11, 0x2e, 0x70, 0x75, 0x73, 0x68, 0x2e, 0x50, 0x75, - 0x73, 0x68, 0x4d, 0x73, 0x67, 0x52, 0x65, 0x73, 0x70, 0x42, 0x0f, 0x5a, 0x0d, 0x2e, 0x2f, 0x70, - 0x75, 0x73, 0x68, 0x3b, 0x70, 0x62, 0x50, 0x75, 0x73, 0x68, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x33, +func (m *PushMsgResp) XXX_DiscardUnknown() { + xxx_messageInfo_PushMsgResp.DiscardUnknown(m) } -var ( - file_push_push_proto_rawDescOnce sync.Once - file_push_push_proto_rawDescData = file_push_push_proto_rawDesc -) - -func file_push_push_proto_rawDescGZIP() []byte { - file_push_push_proto_rawDescOnce.Do(func() { - file_push_push_proto_rawDescData = protoimpl.X.CompressGZIP(file_push_push_proto_rawDescData) - }) - return file_push_push_proto_rawDescData -} +var xxx_messageInfo_PushMsgResp proto.InternalMessageInfo -var file_push_push_proto_msgTypes = make([]protoimpl.MessageInfo, 2) -var file_push_push_proto_goTypes = []interface{}{ - (*PushMsgReq)(nil), // 0: push.PushMsgReq - (*PushMsgResp)(nil), // 1: push.PushMsgResp -} -var file_push_push_proto_depIdxs = []int32{ - 0, // 0: push.PushMsgService.PushMsg:input_type -> push.PushMsgReq - 1, // 1: push.PushMsgService.PushMsg:output_type -> push.PushMsgResp - 1, // [1:2] is the sub-list for method output_type - 0, // [0:1] is the sub-list for method input_type - 0, // [0:0] is the sub-list for extension type_name - 0, // [0:0] is the sub-list for extension extendee - 0, // [0:0] is the sub-list for field type_name +func (m *PushMsgResp) GetResultCode() int32 { + if m != nil { + return m.ResultCode + } + return 0 } -func init() { file_push_push_proto_init() } -func file_push_push_proto_init() { - if File_push_push_proto != nil { - return - } - if !protoimpl.UnsafeEnabled { - file_push_push_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PushMsgReq); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_push_push_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PushMsgResp); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - } - type x struct{} - out := protoimpl.TypeBuilder{ - File: protoimpl.DescBuilder{ - GoPackagePath: reflect.TypeOf(x{}).PkgPath(), - RawDescriptor: file_push_push_proto_rawDesc, - NumEnums: 0, - NumMessages: 2, - NumExtensions: 0, - NumServices: 1, - }, - GoTypes: file_push_push_proto_goTypes, - DependencyIndexes: file_push_push_proto_depIdxs, - MessageInfos: file_push_push_proto_msgTypes, - }.Build() - File_push_push_proto = out.File - file_push_push_proto_rawDesc = nil - file_push_push_proto_goTypes = nil - file_push_push_proto_depIdxs = nil +func init() { + proto.RegisterType((*PushMsgReq)(nil), "push.PushMsgReq") + proto.RegisterType((*PushMsgResp)(nil), "push.PushMsgResp") +} + +func init() { proto.RegisterFile("push/push.proto", fileDescriptor_push_a8d13c8ad86fddce) } + +var fileDescriptor_push_a8d13c8ad86fddce = []byte{ + // 377 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x5c, 0x92, 0x5d, 0xeb, 0xda, 0x30, + 0x14, 0xc6, 0xe9, 0xb4, 0xbe, 0x9c, 0xce, 0x97, 0x85, 0x31, 0x82, 0x17, 0xa3, 0xc8, 0x18, 0xde, + 0xcc, 0xc1, 0x76, 0xb9, 0x9b, 0x31, 0x8b, 0x50, 0x98, 0x2f, 0xa4, 0xee, 0x66, 0x77, 0xb5, 0x9e, + 0x6a, 0x59, 0x9b, 0xc4, 0xa6, 0x0a, 0xfb, 0xd2, 0xfb, 0x0c, 0x23, 0x49, 0xd5, 0xfe, 0xbd, 0x29, + 0x7d, 0x7e, 0xe7, 0x39, 0x87, 0x27, 0xc9, 0x81, 0x91, 0xbc, 0xa8, 0xd3, 0x67, 0xfd, 0x99, 0xcb, + 0x52, 0x54, 0x82, 0xb4, 0xf5, 0xff, 0xf4, 0x5f, 0x0b, 0x60, 0x7b, 0x51, 0xa7, 0x95, 0x3a, 0x32, + 0x3c, 0x93, 0x77, 0xd0, 0x89, 0x90, 0x1f, 0xc2, 0x80, 0x3a, 0xbe, 0x33, 0xeb, 0xb3, 0x5a, 0x69, + 0xce, 0x30, 0xb9, 0x86, 0x01, 0x7d, 0x65, 0xb9, 0x55, 0x84, 0x42, 0x77, 0x21, 0x78, 0x85, 0xbc, + 0xa2, 0x2d, 0x53, 0xb8, 0x49, 0x5d, 0xd1, 0x9e, 0x08, 0xcf, 0xb4, 0xed, 0x3b, 0xb3, 0x16, 0xbb, + 0x49, 0x32, 0x81, 0x9e, 0x9e, 0xba, 0xcb, 0x0a, 0xa4, 0xae, 0x29, 0xdd, 0xb5, 0xee, 0x5a, 0xa9, + 0xe3, 0xb2, 0x14, 0x05, 0xed, 0xf8, 0xce, 0xcc, 0x65, 0x37, 0x49, 0x7c, 0xf0, 0xea, 0xd1, 0xbb, + 0xbf, 0x12, 0x69, 0xd7, 0x54, 0x9b, 0x48, 0x3b, 0x22, 0x54, 0x2a, 0x13, 0xdc, 0x38, 0x7a, 0xd6, + 0xd1, 0x40, 0xda, 0xb1, 0x91, 0x58, 0xc6, 0x55, 0x26, 0x78, 0x18, 0xd0, 0xbe, 0x49, 0xdc, 0x44, + 0xe4, 0x2d, 0xb8, 0x2b, 0x75, 0x0c, 0x03, 0x0a, 0xa6, 0x66, 0x85, 0xe9, 0x4b, 0xd3, 0x3c, 0xe3, + 0x18, 0xf2, 0x54, 0x50, 0xaf, 0xee, 0x7b, 0x20, 0x9d, 0x7b, 0x23, 0xf5, 0x0c, 0x45, 0x5f, 0xdb, + 0x7b, 0xa8, 0x25, 0x79, 0x0f, 0xb0, 0xcd, 0xe3, 0x2a, 0x15, 0x65, 0x11, 0x06, 0x74, 0x60, 0x42, + 0x35, 0x08, 0xf9, 0x08, 0x43, 0x7d, 0x7a, 0x2c, 0xd7, 0x59, 0xf2, 0x67, 0x1d, 0x17, 0x48, 0x87, + 0x66, 0xc0, 0x13, 0x25, 0x1f, 0x60, 0x60, 0xc9, 0x32, 0x4e, 0xf0, 0x17, 0xfb, 0x49, 0x47, 0xc6, + 0xf6, 0x12, 0x9a, 0x5b, 0xca, 0x33, 0xe4, 0x95, 0x3d, 0xc5, 0xd8, 0x26, 0x6d, 0xa0, 0xe9, 0x27, + 0xf0, 0xee, 0xef, 0xad, 0xa4, 0x8e, 0xc7, 0x50, 0x5d, 0xf2, 0x6a, 0x21, 0x0e, 0x68, 0x1e, 0xdd, + 0x65, 0x0d, 0xf2, 0xe5, 0x3b, 0x0c, 0x6b, 0x7b, 0x84, 0xe5, 0x35, 0x4b, 0x90, 0xcc, 0xa1, 0x5b, + 0x13, 0x32, 0x9e, 0x9b, 0x7d, 0x7a, 0xec, 0xcf, 0xe4, 0xcd, 0x13, 0x51, 0xf2, 0xc7, 0xe0, 0xb7, + 0xa7, 0xd9, 0x37, 0xb9, 0xd7, 0x74, 0xdf, 0x31, 0xdb, 0xf7, 0xf5, 0x7f, 0x00, 0x00, 0x00, 0xff, + 0xff, 0x50, 0x88, 0x84, 0xf6, 0x90, 0x02, 0x00, 0x00, } diff --git a/src/proto/relay/relay.pb.go b/src/proto/relay/relay.pb.go index b56ded134..3e3806397 100644 --- a/src/proto/relay/relay.pb.go +++ b/src/proto/relay/relay.pb.go @@ -1,224 +1,204 @@ // Code generated by protoc-gen-go. DO NOT EDIT. -// versions: -// protoc-gen-go v1.26.0 -// protoc v3.7.1 // source: relay/relay.proto -package pbRelay +package pbRelay // import "relay" -import ( - protoreflect "google.golang.org/protobuf/reflect/protoreflect" - protoimpl "google.golang.org/protobuf/runtime/protoimpl" - reflect "reflect" - sync "sync" -) +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" -const ( - // Verify that this generated code is sufficiently up-to-date. - _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) - // Verify that runtime/protoimpl is sufficiently up-to-date. - _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) -) +// 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 MsgToUserReq struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - SendID string `protobuf:"bytes,1,opt,name=SendID,proto3" json:"SendID,omitempty"` - RecvID string `protobuf:"bytes,2,opt,name=RecvID,proto3" json:"RecvID,omitempty"` - Content string `protobuf:"bytes,5,opt,name=Content,proto3" json:"Content,omitempty"` - RecvSeq int64 `protobuf:"varint,6,opt,name=RecvSeq,proto3" json:"RecvSeq,omitempty"` - SendTime int64 `protobuf:"varint,7,opt,name=SendTime,proto3" json:"SendTime,omitempty"` - MsgFrom int32 `protobuf:"varint,8,opt,name=MsgFrom,proto3" json:"MsgFrom,omitempty"` - ContentType int32 `protobuf:"varint,9,opt,name=ContentType,proto3" json:"ContentType,omitempty"` - SessionType int32 `protobuf:"varint,10,opt,name=SessionType,proto3" json:"SessionType,omitempty"` - OperationID string `protobuf:"bytes,11,opt,name=OperationID,proto3" json:"OperationID,omitempty"` - ServerMsgID string `protobuf:"bytes,12,opt,name=ServerMsgID,proto3" json:"ServerMsgID,omitempty"` - PlatformID int32 `protobuf:"varint,13,opt,name=PlatformID,proto3" json:"PlatformID,omitempty"` - SenderNickName string `protobuf:"bytes,14,opt,name=SenderNickName,proto3" json:"SenderNickName,omitempty"` - SenderFaceURL string `protobuf:"bytes,15,opt,name=SenderFaceURL,proto3" json:"SenderFaceURL,omitempty"` - ClientMsgID string `protobuf:"bytes,16,opt,name=ClientMsgID,proto3" json:"ClientMsgID,omitempty"` -} - -func (x *MsgToUserReq) Reset() { - *x = MsgToUserReq{} - if protoimpl.UnsafeEnabled { - mi := &file_relay_relay_proto_msgTypes[0] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + SendID string `protobuf:"bytes,1,opt,name=SendID" json:"SendID,omitempty"` + RecvID string `protobuf:"bytes,2,opt,name=RecvID" json:"RecvID,omitempty"` + Content string `protobuf:"bytes,5,opt,name=Content" json:"Content,omitempty"` + RecvSeq int64 `protobuf:"varint,6,opt,name=RecvSeq" json:"RecvSeq,omitempty"` + SendTime int64 `protobuf:"varint,7,opt,name=SendTime" json:"SendTime,omitempty"` + MsgFrom int32 `protobuf:"varint,8,opt,name=MsgFrom" json:"MsgFrom,omitempty"` + ContentType int32 `protobuf:"varint,9,opt,name=ContentType" json:"ContentType,omitempty"` + SessionType int32 `protobuf:"varint,10,opt,name=SessionType" json:"SessionType,omitempty"` + OperationID string `protobuf:"bytes,11,opt,name=OperationID" json:"OperationID,omitempty"` + ServerMsgID string `protobuf:"bytes,12,opt,name=ServerMsgID" json:"ServerMsgID,omitempty"` + PlatformID int32 `protobuf:"varint,13,opt,name=PlatformID" json:"PlatformID,omitempty"` + SenderNickName string `protobuf:"bytes,14,opt,name=SenderNickName" json:"SenderNickName,omitempty"` + SenderFaceURL string `protobuf:"bytes,15,opt,name=SenderFaceURL" json:"SenderFaceURL,omitempty"` + ClientMsgID string `protobuf:"bytes,16,opt,name=ClientMsgID" json:"ClientMsgID,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *MsgToUserReq) Reset() { *m = MsgToUserReq{} } +func (m *MsgToUserReq) String() string { return proto.CompactTextString(m) } +func (*MsgToUserReq) ProtoMessage() {} +func (*MsgToUserReq) Descriptor() ([]byte, []int) { + return fileDescriptor_relay_1ba173c940428df4, []int{0} } - -func (x *MsgToUserReq) String() string { - return protoimpl.X.MessageStringOf(x) +func (m *MsgToUserReq) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_MsgToUserReq.Unmarshal(m, b) } - -func (*MsgToUserReq) ProtoMessage() {} - -func (x *MsgToUserReq) ProtoReflect() protoreflect.Message { - mi := &file_relay_relay_proto_msgTypes[0] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) +func (m *MsgToUserReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_MsgToUserReq.Marshal(b, m, deterministic) } - -// Deprecated: Use MsgToUserReq.ProtoReflect.Descriptor instead. -func (*MsgToUserReq) Descriptor() ([]byte, []int) { - return file_relay_relay_proto_rawDescGZIP(), []int{0} +func (dst *MsgToUserReq) XXX_Merge(src proto.Message) { + xxx_messageInfo_MsgToUserReq.Merge(dst, src) +} +func (m *MsgToUserReq) XXX_Size() int { + return xxx_messageInfo_MsgToUserReq.Size(m) } +func (m *MsgToUserReq) XXX_DiscardUnknown() { + xxx_messageInfo_MsgToUserReq.DiscardUnknown(m) +} + +var xxx_messageInfo_MsgToUserReq proto.InternalMessageInfo -func (x *MsgToUserReq) GetSendID() string { - if x != nil { - return x.SendID +func (m *MsgToUserReq) GetSendID() string { + if m != nil { + return m.SendID } return "" } -func (x *MsgToUserReq) GetRecvID() string { - if x != nil { - return x.RecvID +func (m *MsgToUserReq) GetRecvID() string { + if m != nil { + return m.RecvID } return "" } -func (x *MsgToUserReq) GetContent() string { - if x != nil { - return x.Content +func (m *MsgToUserReq) GetContent() string { + if m != nil { + return m.Content } return "" } -func (x *MsgToUserReq) GetRecvSeq() int64 { - if x != nil { - return x.RecvSeq +func (m *MsgToUserReq) GetRecvSeq() int64 { + if m != nil { + return m.RecvSeq } return 0 } -func (x *MsgToUserReq) GetSendTime() int64 { - if x != nil { - return x.SendTime +func (m *MsgToUserReq) GetSendTime() int64 { + if m != nil { + return m.SendTime } return 0 } -func (x *MsgToUserReq) GetMsgFrom() int32 { - if x != nil { - return x.MsgFrom +func (m *MsgToUserReq) GetMsgFrom() int32 { + if m != nil { + return m.MsgFrom } return 0 } -func (x *MsgToUserReq) GetContentType() int32 { - if x != nil { - return x.ContentType +func (m *MsgToUserReq) GetContentType() int32 { + if m != nil { + return m.ContentType } return 0 } -func (x *MsgToUserReq) GetSessionType() int32 { - if x != nil { - return x.SessionType +func (m *MsgToUserReq) GetSessionType() int32 { + if m != nil { + return m.SessionType } return 0 } -func (x *MsgToUserReq) GetOperationID() string { - if x != nil { - return x.OperationID +func (m *MsgToUserReq) GetOperationID() string { + if m != nil { + return m.OperationID } return "" } -func (x *MsgToUserReq) GetServerMsgID() string { - if x != nil { - return x.ServerMsgID +func (m *MsgToUserReq) GetServerMsgID() string { + if m != nil { + return m.ServerMsgID } return "" } -func (x *MsgToUserReq) GetPlatformID() int32 { - if x != nil { - return x.PlatformID +func (m *MsgToUserReq) GetPlatformID() int32 { + if m != nil { + return m.PlatformID } return 0 } -func (x *MsgToUserReq) GetSenderNickName() string { - if x != nil { - return x.SenderNickName +func (m *MsgToUserReq) GetSenderNickName() string { + if m != nil { + return m.SenderNickName } return "" } -func (x *MsgToUserReq) GetSenderFaceURL() string { - if x != nil { - return x.SenderFaceURL +func (m *MsgToUserReq) GetSenderFaceURL() string { + if m != nil { + return m.SenderFaceURL } return "" } -func (x *MsgToUserReq) GetClientMsgID() string { - if x != nil { - return x.ClientMsgID +func (m *MsgToUserReq) GetClientMsgID() string { + if m != nil { + return m.ClientMsgID } return "" } type MsgToUserResp struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Resp []*SingleMsgToUser `protobuf:"bytes,1,rep,name=resp,proto3" json:"resp,omitempty"` + Resp []*SingleMsgToUser `protobuf:"bytes,1,rep,name=resp" json:"resp,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (x *MsgToUserResp) Reset() { - *x = MsgToUserResp{} - if protoimpl.UnsafeEnabled { - mi := &file_relay_relay_proto_msgTypes[1] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } +func (m *MsgToUserResp) Reset() { *m = MsgToUserResp{} } +func (m *MsgToUserResp) String() string { return proto.CompactTextString(m) } +func (*MsgToUserResp) ProtoMessage() {} +func (*MsgToUserResp) Descriptor() ([]byte, []int) { + return fileDescriptor_relay_1ba173c940428df4, []int{1} } - -func (x *MsgToUserResp) String() string { - return protoimpl.X.MessageStringOf(x) +func (m *MsgToUserResp) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_MsgToUserResp.Unmarshal(m, b) } - -func (*MsgToUserResp) ProtoMessage() {} - -func (x *MsgToUserResp) ProtoReflect() protoreflect.Message { - mi := &file_relay_relay_proto_msgTypes[1] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) +func (m *MsgToUserResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_MsgToUserResp.Marshal(b, m, deterministic) } - -// Deprecated: Use MsgToUserResp.ProtoReflect.Descriptor instead. -func (*MsgToUserResp) Descriptor() ([]byte, []int) { - return file_relay_relay_proto_rawDescGZIP(), []int{1} +func (dst *MsgToUserResp) XXX_Merge(src proto.Message) { + xxx_messageInfo_MsgToUserResp.Merge(dst, src) +} +func (m *MsgToUserResp) XXX_Size() int { + return xxx_messageInfo_MsgToUserResp.Size(m) } +func (m *MsgToUserResp) XXX_DiscardUnknown() { + xxx_messageInfo_MsgToUserResp.DiscardUnknown(m) +} + +var xxx_messageInfo_MsgToUserResp proto.InternalMessageInfo -func (x *MsgToUserResp) GetResp() []*SingleMsgToUser { - if x != nil { - return x.Resp +func (m *MsgToUserResp) GetResp() []*SingleMsgToUser { + if m != nil { + return m.Resp } return nil } -//message SendMsgByWSReq{ +// message SendMsgByWSReq{ // string SendID = 1; // string RecvID = 2; // string Content = 3; @@ -228,211 +208,95 @@ func (x *MsgToUserResp) GetResp() []*SingleMsgToUser { // int64 SessionType = 7; // string OperationID = 8; // int64 PlatformID = 9; -//} +// } type SingleMsgToUser struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - ResultCode int64 `protobuf:"varint,1,opt,name=ResultCode,proto3" json:"ResultCode,omitempty"` - RecvID string `protobuf:"bytes,2,opt,name=RecvID,proto3" json:"RecvID,omitempty"` - RecvPlatFormID int32 `protobuf:"varint,3,opt,name=RecvPlatFormID,proto3" json:"RecvPlatFormID,omitempty"` + ResultCode int64 `protobuf:"varint,1,opt,name=ResultCode" json:"ResultCode,omitempty"` + RecvID string `protobuf:"bytes,2,opt,name=RecvID" json:"RecvID,omitempty"` + RecvPlatFormID int32 `protobuf:"varint,3,opt,name=RecvPlatFormID" json:"RecvPlatFormID,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (x *SingleMsgToUser) Reset() { - *x = SingleMsgToUser{} - if protoimpl.UnsafeEnabled { - mi := &file_relay_relay_proto_msgTypes[2] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } +func (m *SingleMsgToUser) Reset() { *m = SingleMsgToUser{} } +func (m *SingleMsgToUser) String() string { return proto.CompactTextString(m) } +func (*SingleMsgToUser) ProtoMessage() {} +func (*SingleMsgToUser) Descriptor() ([]byte, []int) { + return fileDescriptor_relay_1ba173c940428df4, []int{2} } - -func (x *SingleMsgToUser) String() string { - return protoimpl.X.MessageStringOf(x) +func (m *SingleMsgToUser) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_SingleMsgToUser.Unmarshal(m, b) } - -func (*SingleMsgToUser) ProtoMessage() {} - -func (x *SingleMsgToUser) ProtoReflect() protoreflect.Message { - mi := &file_relay_relay_proto_msgTypes[2] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) +func (m *SingleMsgToUser) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_SingleMsgToUser.Marshal(b, m, deterministic) } - -// Deprecated: Use SingleMsgToUser.ProtoReflect.Descriptor instead. -func (*SingleMsgToUser) Descriptor() ([]byte, []int) { - return file_relay_relay_proto_rawDescGZIP(), []int{2} +func (dst *SingleMsgToUser) XXX_Merge(src proto.Message) { + xxx_messageInfo_SingleMsgToUser.Merge(dst, src) +} +func (m *SingleMsgToUser) XXX_Size() int { + return xxx_messageInfo_SingleMsgToUser.Size(m) } +func (m *SingleMsgToUser) XXX_DiscardUnknown() { + xxx_messageInfo_SingleMsgToUser.DiscardUnknown(m) +} + +var xxx_messageInfo_SingleMsgToUser proto.InternalMessageInfo -func (x *SingleMsgToUser) GetResultCode() int64 { - if x != nil { - return x.ResultCode +func (m *SingleMsgToUser) GetResultCode() int64 { + if m != nil { + return m.ResultCode } return 0 } -func (x *SingleMsgToUser) GetRecvID() string { - if x != nil { - return x.RecvID +func (m *SingleMsgToUser) GetRecvID() string { + if m != nil { + return m.RecvID } return "" } -func (x *SingleMsgToUser) GetRecvPlatFormID() int32 { - if x != nil { - return x.RecvPlatFormID +func (m *SingleMsgToUser) GetRecvPlatFormID() int32 { + if m != nil { + return m.RecvPlatFormID } return 0 } -var File_relay_relay_proto protoreflect.FileDescriptor - -var file_relay_relay_proto_rawDesc = []byte{ - 0x0a, 0x11, 0x72, 0x65, 0x6c, 0x61, 0x79, 0x2f, 0x72, 0x65, 0x6c, 0x61, 0x79, 0x2e, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x12, 0x05, 0x72, 0x65, 0x6c, 0x61, 0x79, 0x22, 0xc0, 0x03, 0x0a, 0x0c, 0x4d, - 0x73, 0x67, 0x54, 0x6f, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x12, 0x16, 0x0a, 0x06, 0x53, - 0x65, 0x6e, 0x64, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x53, 0x65, 0x6e, - 0x64, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x52, 0x65, 0x63, 0x76, 0x49, 0x44, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x06, 0x52, 0x65, 0x63, 0x76, 0x49, 0x44, 0x12, 0x18, 0x0a, 0x07, 0x43, - 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x43, 0x6f, - 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x52, 0x65, 0x63, 0x76, 0x53, 0x65, 0x71, - 0x18, 0x06, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x52, 0x65, 0x63, 0x76, 0x53, 0x65, 0x71, 0x12, - 0x1a, 0x0a, 0x08, 0x53, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, - 0x03, 0x52, 0x08, 0x53, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x4d, - 0x73, 0x67, 0x46, 0x72, 0x6f, 0x6d, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x4d, 0x73, - 0x67, 0x46, 0x72, 0x6f, 0x6d, 0x12, 0x20, 0x0a, 0x0b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, - 0x54, 0x79, 0x70, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x43, 0x6f, 0x6e, 0x74, - 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x53, 0x65, 0x73, 0x73, 0x69, - 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x53, 0x65, - 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x70, 0x65, - 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, - 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x53, - 0x65, 0x72, 0x76, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x49, 0x44, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0b, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x49, 0x44, 0x12, 0x1e, 0x0a, - 0x0a, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x49, 0x44, 0x18, 0x0d, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x0a, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x49, 0x44, 0x12, 0x26, 0x0a, - 0x0e, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x4e, 0x69, 0x63, 0x6b, 0x4e, 0x61, 0x6d, 0x65, 0x18, - 0x0e, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x4e, 0x69, 0x63, - 0x6b, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x46, - 0x61, 0x63, 0x65, 0x55, 0x52, 0x4c, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x53, 0x65, - 0x6e, 0x64, 0x65, 0x72, 0x46, 0x61, 0x63, 0x65, 0x55, 0x52, 0x4c, 0x12, 0x20, 0x0a, 0x0b, 0x43, - 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x73, 0x67, 0x49, 0x44, 0x18, 0x10, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0b, 0x43, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x73, 0x67, 0x49, 0x44, 0x22, 0x3b, 0x0a, - 0x0d, 0x4d, 0x73, 0x67, 0x54, 0x6f, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x12, 0x2a, - 0x0a, 0x04, 0x72, 0x65, 0x73, 0x70, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x16, 0x2e, 0x72, - 0x65, 0x6c, 0x61, 0x79, 0x2e, 0x53, 0x69, 0x6e, 0x67, 0x6c, 0x65, 0x4d, 0x73, 0x67, 0x54, 0x6f, - 0x55, 0x73, 0x65, 0x72, 0x52, 0x04, 0x72, 0x65, 0x73, 0x70, 0x22, 0x71, 0x0a, 0x0f, 0x53, 0x69, - 0x6e, 0x67, 0x6c, 0x65, 0x4d, 0x73, 0x67, 0x54, 0x6f, 0x55, 0x73, 0x65, 0x72, 0x12, 0x1e, 0x0a, - 0x0a, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x03, 0x52, 0x0a, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x16, 0x0a, - 0x06, 0x52, 0x65, 0x63, 0x76, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x52, - 0x65, 0x63, 0x76, 0x49, 0x44, 0x12, 0x26, 0x0a, 0x0e, 0x52, 0x65, 0x63, 0x76, 0x50, 0x6c, 0x61, - 0x74, 0x46, 0x6f, 0x72, 0x6d, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x52, - 0x65, 0x63, 0x76, 0x50, 0x6c, 0x61, 0x74, 0x46, 0x6f, 0x72, 0x6d, 0x49, 0x44, 0x32, 0x53, 0x0a, - 0x19, 0x4f, 0x6e, 0x6c, 0x69, 0x6e, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, - 0x6c, 0x61, 0x79, 0x53, 0x65, 0x72, 0x76, 0x69, 0x63, 0x65, 0x12, 0x36, 0x0a, 0x09, 0x4d, 0x73, - 0x67, 0x54, 0x6f, 0x55, 0x73, 0x65, 0x72, 0x12, 0x13, 0x2e, 0x72, 0x65, 0x6c, 0x61, 0x79, 0x2e, - 0x4d, 0x73, 0x67, 0x54, 0x6f, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x1a, 0x14, 0x2e, 0x72, - 0x65, 0x6c, 0x61, 0x79, 0x2e, 0x4d, 0x73, 0x67, 0x54, 0x6f, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, - 0x73, 0x70, 0x42, 0x11, 0x5a, 0x0f, 0x2e, 0x2f, 0x72, 0x65, 0x6c, 0x61, 0x79, 0x3b, 0x70, 0x62, - 0x52, 0x65, 0x6c, 0x61, 0x79, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, -} - -var ( - file_relay_relay_proto_rawDescOnce sync.Once - file_relay_relay_proto_rawDescData = file_relay_relay_proto_rawDesc -) - -func file_relay_relay_proto_rawDescGZIP() []byte { - file_relay_relay_proto_rawDescOnce.Do(func() { - file_relay_relay_proto_rawDescData = protoimpl.X.CompressGZIP(file_relay_relay_proto_rawDescData) - }) - return file_relay_relay_proto_rawDescData -} - -var file_relay_relay_proto_msgTypes = make([]protoimpl.MessageInfo, 3) -var file_relay_relay_proto_goTypes = []interface{}{ - (*MsgToUserReq)(nil), // 0: relay.MsgToUserReq - (*MsgToUserResp)(nil), // 1: relay.MsgToUserResp - (*SingleMsgToUser)(nil), // 2: relay.SingleMsgToUser -} -var file_relay_relay_proto_depIdxs = []int32{ - 2, // 0: relay.MsgToUserResp.resp:type_name -> relay.SingleMsgToUser - 0, // 1: relay.OnlineMessageRelayService.MsgToUser:input_type -> relay.MsgToUserReq - 1, // 2: relay.OnlineMessageRelayService.MsgToUser:output_type -> relay.MsgToUserResp - 2, // [2:3] is the sub-list for method output_type - 1, // [1:2] is the sub-list for method input_type - 1, // [1:1] is the sub-list for extension type_name - 1, // [1:1] is the sub-list for extension extendee - 0, // [0:1] is the sub-list for field type_name -} - -func init() { file_relay_relay_proto_init() } -func file_relay_relay_proto_init() { - if File_relay_relay_proto != nil { - return - } - if !protoimpl.UnsafeEnabled { - file_relay_relay_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*MsgToUserReq); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_relay_relay_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*MsgToUserResp); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_relay_relay_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SingleMsgToUser); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - } - type x struct{} - out := protoimpl.TypeBuilder{ - File: protoimpl.DescBuilder{ - GoPackagePath: reflect.TypeOf(x{}).PkgPath(), - RawDescriptor: file_relay_relay_proto_rawDesc, - NumEnums: 0, - NumMessages: 3, - NumExtensions: 0, - NumServices: 1, - }, - GoTypes: file_relay_relay_proto_goTypes, - DependencyIndexes: file_relay_relay_proto_depIdxs, - MessageInfos: file_relay_relay_proto_msgTypes, - }.Build() - File_relay_relay_proto = out.File - file_relay_relay_proto_rawDesc = nil - file_relay_relay_proto_goTypes = nil - file_relay_relay_proto_depIdxs = nil +func init() { + proto.RegisterType((*MsgToUserReq)(nil), "relay.MsgToUserReq") + proto.RegisterType((*MsgToUserResp)(nil), "relay.MsgToUserResp") + proto.RegisterType((*SingleMsgToUser)(nil), "relay.SingleMsgToUser") +} + +func init() { proto.RegisterFile("relay/relay.proto", fileDescriptor_relay_1ba173c940428df4) } + +var fileDescriptor_relay_1ba173c940428df4 = []byte{ + // 412 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x74, 0x92, 0xc1, 0x6f, 0xd3, 0x30, + 0x14, 0xc6, 0x15, 0x42, 0xbb, 0xf5, 0x75, 0x6d, 0xc1, 0xa0, 0xc9, 0xec, 0x80, 0xa2, 0x0a, 0x4d, + 0x11, 0x87, 0x21, 0x0d, 0x89, 0xcb, 0x6e, 0x2c, 0xaa, 0x14, 0x89, 0x6c, 0xc8, 0xe9, 0x2e, 0xdc, + 0xb2, 0xec, 0x11, 0x59, 0x24, 0x76, 0x6a, 0x87, 0x49, 0xfb, 0xef, 0xf8, 0xd3, 0x90, 0x9f, 0x5b, + 0x6a, 0x8a, 0xb8, 0x44, 0xf9, 0x7e, 0xef, 0xcb, 0xcb, 0xe7, 0xe7, 0x07, 0x2f, 0x0d, 0xb6, 0xd5, + 0xd3, 0x07, 0x7a, 0x5e, 0xf4, 0x46, 0x0f, 0x9a, 0x8d, 0x48, 0x2c, 0x7f, 0xc5, 0x70, 0x52, 0xd8, + 0x66, 0xad, 0xef, 0x2c, 0x1a, 0x81, 0x1b, 0x76, 0x0a, 0xe3, 0x12, 0xd5, 0x43, 0x9e, 0xf1, 0x28, + 0x89, 0xd2, 0x89, 0xd8, 0x2a, 0xc7, 0x05, 0xd6, 0x8f, 0x79, 0xc6, 0x9f, 0x79, 0xee, 0x15, 0xe3, + 0x70, 0x74, 0xad, 0xd5, 0x80, 0x6a, 0xe0, 0x23, 0x2a, 0xec, 0xa4, 0xab, 0x38, 0x4f, 0x89, 0x1b, + 0x3e, 0x4e, 0xa2, 0x34, 0x16, 0x3b, 0xc9, 0xce, 0xe0, 0xd8, 0x75, 0x5d, 0xcb, 0x0e, 0xf9, 0x11, + 0x95, 0xfe, 0x68, 0xf7, 0x55, 0x61, 0x9b, 0x95, 0xd1, 0x1d, 0x3f, 0x4e, 0xa2, 0x74, 0x24, 0x76, + 0x92, 0x25, 0x30, 0xdd, 0xb6, 0x5e, 0x3f, 0xf5, 0xc8, 0x27, 0x54, 0x0d, 0x91, 0x73, 0x94, 0x68, + 0xad, 0xd4, 0x8a, 0x1c, 0xe0, 0x1d, 0x01, 0x72, 0x8e, 0xdb, 0x1e, 0x4d, 0x35, 0x48, 0xad, 0xf2, + 0x8c, 0x4f, 0x29, 0x71, 0x88, 0x7c, 0x0f, 0xf3, 0x88, 0xa6, 0xb0, 0x4d, 0x9e, 0xf1, 0x13, 0xef, + 0x08, 0x10, 0x7b, 0x0b, 0xf0, 0xb5, 0xad, 0x86, 0xef, 0xda, 0x74, 0x79, 0xc6, 0x67, 0xf4, 0x93, + 0x80, 0xb0, 0x73, 0x98, 0xbb, 0xd3, 0xa0, 0xb9, 0x91, 0xf5, 0x8f, 0x9b, 0xaa, 0x43, 0x3e, 0xa7, + 0x26, 0x07, 0x94, 0xbd, 0x83, 0x99, 0x27, 0xab, 0xaa, 0xc6, 0x3b, 0xf1, 0x85, 0x2f, 0xc8, 0xf6, + 0x37, 0xa4, 0x53, 0xb7, 0x12, 0xd5, 0xe0, 0xf3, 0xbc, 0xf0, 0x79, 0x02, 0xb4, 0xbc, 0x82, 0x59, + 0x70, 0x83, 0xb6, 0x67, 0xef, 0xe1, 0xb9, 0x41, 0xdb, 0xf3, 0x28, 0x89, 0xd3, 0xe9, 0xe5, 0xe9, + 0x85, 0xbf, 0xf6, 0x52, 0xaa, 0xa6, 0xc5, 0xbd, 0x93, 0x3c, 0xcb, 0x0d, 0x2c, 0x0e, 0x0a, 0xee, + 0x7c, 0x02, 0xed, 0xcf, 0x76, 0xb8, 0xd6, 0x0f, 0x48, 0x5b, 0x10, 0x8b, 0x80, 0xfc, 0x77, 0x13, + 0xce, 0x61, 0xee, 0xde, 0xdc, 0x24, 0x56, 0x7e, 0x36, 0x31, 0xcd, 0xe6, 0x80, 0x5e, 0x96, 0xf0, + 0xe6, 0x56, 0xb5, 0x52, 0x61, 0x81, 0xd6, 0x56, 0x0d, 0x0a, 0x17, 0xcf, 0x0d, 0x58, 0xd6, 0xc8, + 0x3e, 0xc1, 0x64, 0x9f, 0xe4, 0xd5, 0x36, 0x7a, 0xb8, 0xa0, 0x67, 0xaf, 0xff, 0x85, 0xb6, 0xff, + 0xbc, 0xf8, 0x36, 0x23, 0x7c, 0xd5, 0xdf, 0x53, 0xbf, 0xfb, 0x31, 0xad, 0xf9, 0xc7, 0xdf, 0x01, + 0x00, 0x00, 0xff, 0xff, 0xca, 0xdd, 0x7b, 0x0c, 0xfb, 0x02, 0x00, 0x00, } diff --git a/src/proto/user/user.pb.go b/src/proto/user/user.pb.go index 74e704961..9452ec23a 100644 --- a/src/proto/user/user.pb.go +++ b/src/proto/user/user.pb.go @@ -1,996 +1,669 @@ // Code generated by protoc-gen-go. DO NOT EDIT. -// versions: -// protoc-gen-go v1.26.0 -// protoc v3.7.1 // source: user/user.proto -package user +package user // import "user" -import ( - protoreflect "google.golang.org/protobuf/reflect/protoreflect" - protoimpl "google.golang.org/protobuf/runtime/protoimpl" - reflect "reflect" - sync "sync" -) +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" -const ( - // Verify that this generated code is sufficiently up-to-date. - _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) - // Verify that runtime/protoimpl is sufficiently up-to-date. - _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) -) +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf -type CommonResp struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields +// 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 - ErrorCode int32 `protobuf:"varint,1,opt,name=errorCode,proto3" json:"errorCode,omitempty"` - ErrorMsg string `protobuf:"bytes,2,opt,name=errorMsg,proto3" json:"errorMsg,omitempty"` +type CommonResp struct { + ErrorCode int32 `protobuf:"varint,1,opt,name=errorCode" json:"errorCode,omitempty"` + ErrorMsg string `protobuf:"bytes,2,opt,name=errorMsg" json:"errorMsg,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (x *CommonResp) Reset() { - *x = CommonResp{} - if protoimpl.UnsafeEnabled { - mi := &file_user_user_proto_msgTypes[0] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } +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_user_9367ac00c24112e8, []int{0} } - -func (x *CommonResp) String() string { - return protoimpl.X.MessageStringOf(x) +func (m *CommonResp) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_CommonResp.Unmarshal(m, b) } - -func (*CommonResp) ProtoMessage() {} - -func (x *CommonResp) ProtoReflect() protoreflect.Message { - mi := &file_user_user_proto_msgTypes[0] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) +func (m *CommonResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_CommonResp.Marshal(b, m, deterministic) } - -// Deprecated: Use CommonResp.ProtoReflect.Descriptor instead. -func (*CommonResp) Descriptor() ([]byte, []int) { - return file_user_user_proto_rawDescGZIP(), []int{0} +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) } -func (x *CommonResp) GetErrorCode() int32 { - if x != nil { - return x.ErrorCode +var xxx_messageInfo_CommonResp proto.InternalMessageInfo + +func (m *CommonResp) GetErrorCode() int32 { + if m != nil { + return m.ErrorCode } return 0 } -func (x *CommonResp) GetErrorMsg() string { - if x != nil { - return x.ErrorMsg +func (m *CommonResp) GetErrorMsg() string { + if m != nil { + return m.ErrorMsg } return "" } type DeleteUsersResp struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - CommonResp *CommonResp `protobuf:"bytes,1,opt,name=commonResp,proto3" json:"commonResp,omitempty"` - FailedUidList []string `protobuf:"bytes,2,rep,name=failedUidList,proto3" json:"failedUidList,omitempty"` + CommonResp *CommonResp `protobuf:"bytes,1,opt,name=commonResp" json:"commonResp,omitempty"` + FailedUidList []string `protobuf:"bytes,2,rep,name=failedUidList" json:"failedUidList,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (x *DeleteUsersResp) Reset() { - *x = DeleteUsersResp{} - if protoimpl.UnsafeEnabled { - mi := &file_user_user_proto_msgTypes[1] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } +func (m *DeleteUsersResp) Reset() { *m = DeleteUsersResp{} } +func (m *DeleteUsersResp) String() string { return proto.CompactTextString(m) } +func (*DeleteUsersResp) ProtoMessage() {} +func (*DeleteUsersResp) Descriptor() ([]byte, []int) { + return fileDescriptor_user_9367ac00c24112e8, []int{1} } - -func (x *DeleteUsersResp) String() string { - return protoimpl.X.MessageStringOf(x) +func (m *DeleteUsersResp) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_DeleteUsersResp.Unmarshal(m, b) } - -func (*DeleteUsersResp) ProtoMessage() {} - -func (x *DeleteUsersResp) ProtoReflect() protoreflect.Message { - mi := &file_user_user_proto_msgTypes[1] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) +func (m *DeleteUsersResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_DeleteUsersResp.Marshal(b, m, deterministic) } - -// Deprecated: Use DeleteUsersResp.ProtoReflect.Descriptor instead. -func (*DeleteUsersResp) Descriptor() ([]byte, []int) { - return file_user_user_proto_rawDescGZIP(), []int{1} +func (dst *DeleteUsersResp) XXX_Merge(src proto.Message) { + xxx_messageInfo_DeleteUsersResp.Merge(dst, src) +} +func (m *DeleteUsersResp) XXX_Size() int { + return xxx_messageInfo_DeleteUsersResp.Size(m) +} +func (m *DeleteUsersResp) XXX_DiscardUnknown() { + xxx_messageInfo_DeleteUsersResp.DiscardUnknown(m) } -func (x *DeleteUsersResp) GetCommonResp() *CommonResp { - if x != nil { - return x.CommonResp +var xxx_messageInfo_DeleteUsersResp proto.InternalMessageInfo + +func (m *DeleteUsersResp) GetCommonResp() *CommonResp { + if m != nil { + return m.CommonResp } return nil } -func (x *DeleteUsersResp) GetFailedUidList() []string { - if x != nil { - return x.FailedUidList +func (m *DeleteUsersResp) GetFailedUidList() []string { + if m != nil { + return m.FailedUidList } return nil } type DeleteUsersReq struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - DeleteUidList []string `protobuf:"bytes,2,rep,name=deleteUidList,proto3" json:"deleteUidList,omitempty"` - Token string `protobuf:"bytes,3,opt,name=token,proto3" json:"token,omitempty"` - OperationID string `protobuf:"bytes,4,opt,name=OperationID,proto3" json:"OperationID,omitempty"` + DeleteUidList []string `protobuf:"bytes,2,rep,name=deleteUidList" json:"deleteUidList,omitempty"` + Token string `protobuf:"bytes,3,opt,name=token" json:"token,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 (x *DeleteUsersReq) Reset() { - *x = DeleteUsersReq{} - if protoimpl.UnsafeEnabled { - mi := &file_user_user_proto_msgTypes[2] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } +func (m *DeleteUsersReq) Reset() { *m = DeleteUsersReq{} } +func (m *DeleteUsersReq) String() string { return proto.CompactTextString(m) } +func (*DeleteUsersReq) ProtoMessage() {} +func (*DeleteUsersReq) Descriptor() ([]byte, []int) { + return fileDescriptor_user_9367ac00c24112e8, []int{2} } - -func (x *DeleteUsersReq) String() string { - return protoimpl.X.MessageStringOf(x) +func (m *DeleteUsersReq) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_DeleteUsersReq.Unmarshal(m, b) } - -func (*DeleteUsersReq) ProtoMessage() {} - -func (x *DeleteUsersReq) ProtoReflect() protoreflect.Message { - mi := &file_user_user_proto_msgTypes[2] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) +func (m *DeleteUsersReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_DeleteUsersReq.Marshal(b, m, deterministic) } - -// Deprecated: Use DeleteUsersReq.ProtoReflect.Descriptor instead. -func (*DeleteUsersReq) Descriptor() ([]byte, []int) { - return file_user_user_proto_rawDescGZIP(), []int{2} +func (dst *DeleteUsersReq) XXX_Merge(src proto.Message) { + xxx_messageInfo_DeleteUsersReq.Merge(dst, src) +} +func (m *DeleteUsersReq) XXX_Size() int { + return xxx_messageInfo_DeleteUsersReq.Size(m) } +func (m *DeleteUsersReq) XXX_DiscardUnknown() { + xxx_messageInfo_DeleteUsersReq.DiscardUnknown(m) +} + +var xxx_messageInfo_DeleteUsersReq proto.InternalMessageInfo -func (x *DeleteUsersReq) GetDeleteUidList() []string { - if x != nil { - return x.DeleteUidList +func (m *DeleteUsersReq) GetDeleteUidList() []string { + if m != nil { + return m.DeleteUidList } return nil } -func (x *DeleteUsersReq) GetToken() string { - if x != nil { - return x.Token +func (m *DeleteUsersReq) GetToken() string { + if m != nil { + return m.Token } return "" } -func (x *DeleteUsersReq) GetOperationID() string { - if x != nil { - return x.OperationID +func (m *DeleteUsersReq) GetOperationID() string { + if m != nil { + return m.OperationID } return "" } type GetAllUsersUidReq struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Token string `protobuf:"bytes,2,opt,name=token,proto3" json:"token,omitempty"` - OperationID string `protobuf:"bytes,3,opt,name=operationID,proto3" json:"operationID,omitempty"` + Token string `protobuf:"bytes,2,opt,name=token" json:"token,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 (x *GetAllUsersUidReq) Reset() { - *x = GetAllUsersUidReq{} - if protoimpl.UnsafeEnabled { - mi := &file_user_user_proto_msgTypes[3] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } +func (m *GetAllUsersUidReq) Reset() { *m = GetAllUsersUidReq{} } +func (m *GetAllUsersUidReq) String() string { return proto.CompactTextString(m) } +func (*GetAllUsersUidReq) ProtoMessage() {} +func (*GetAllUsersUidReq) Descriptor() ([]byte, []int) { + return fileDescriptor_user_9367ac00c24112e8, []int{3} } - -func (x *GetAllUsersUidReq) String() string { - return protoimpl.X.MessageStringOf(x) +func (m *GetAllUsersUidReq) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GetAllUsersUidReq.Unmarshal(m, b) } - -func (*GetAllUsersUidReq) ProtoMessage() {} - -func (x *GetAllUsersUidReq) ProtoReflect() protoreflect.Message { - mi := &file_user_user_proto_msgTypes[3] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) +func (m *GetAllUsersUidReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GetAllUsersUidReq.Marshal(b, m, deterministic) } - -// Deprecated: Use GetAllUsersUidReq.ProtoReflect.Descriptor instead. -func (*GetAllUsersUidReq) Descriptor() ([]byte, []int) { - return file_user_user_proto_rawDescGZIP(), []int{3} +func (dst *GetAllUsersUidReq) XXX_Merge(src proto.Message) { + xxx_messageInfo_GetAllUsersUidReq.Merge(dst, src) +} +func (m *GetAllUsersUidReq) XXX_Size() int { + return xxx_messageInfo_GetAllUsersUidReq.Size(m) +} +func (m *GetAllUsersUidReq) XXX_DiscardUnknown() { + xxx_messageInfo_GetAllUsersUidReq.DiscardUnknown(m) } -func (x *GetAllUsersUidReq) GetToken() string { - if x != nil { - return x.Token +var xxx_messageInfo_GetAllUsersUidReq proto.InternalMessageInfo + +func (m *GetAllUsersUidReq) GetToken() string { + if m != nil { + return m.Token } return "" } -func (x *GetAllUsersUidReq) GetOperationID() string { - if x != nil { - return x.OperationID +func (m *GetAllUsersUidReq) GetOperationID() string { + if m != nil { + return m.OperationID } return "" } type GetAllUsersUidResp struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - CommonResp *CommonResp `protobuf:"bytes,1,opt,name=commonResp,proto3" json:"commonResp,omitempty"` - UidList []string `protobuf:"bytes,2,rep,name=uidList,proto3" json:"uidList,omitempty"` + CommonResp *CommonResp `protobuf:"bytes,1,opt,name=commonResp" json:"commonResp,omitempty"` + UidList []string `protobuf:"bytes,2,rep,name=uidList" json:"uidList,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (x *GetAllUsersUidResp) Reset() { - *x = GetAllUsersUidResp{} - if protoimpl.UnsafeEnabled { - mi := &file_user_user_proto_msgTypes[4] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } +func (m *GetAllUsersUidResp) Reset() { *m = GetAllUsersUidResp{} } +func (m *GetAllUsersUidResp) String() string { return proto.CompactTextString(m) } +func (*GetAllUsersUidResp) ProtoMessage() {} +func (*GetAllUsersUidResp) Descriptor() ([]byte, []int) { + return fileDescriptor_user_9367ac00c24112e8, []int{4} } - -func (x *GetAllUsersUidResp) String() string { - return protoimpl.X.MessageStringOf(x) +func (m *GetAllUsersUidResp) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GetAllUsersUidResp.Unmarshal(m, b) } - -func (*GetAllUsersUidResp) ProtoMessage() {} - -func (x *GetAllUsersUidResp) ProtoReflect() protoreflect.Message { - mi := &file_user_user_proto_msgTypes[4] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) +func (m *GetAllUsersUidResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GetAllUsersUidResp.Marshal(b, m, deterministic) } - -// Deprecated: Use GetAllUsersUidResp.ProtoReflect.Descriptor instead. -func (*GetAllUsersUidResp) Descriptor() ([]byte, []int) { - return file_user_user_proto_rawDescGZIP(), []int{4} +func (dst *GetAllUsersUidResp) XXX_Merge(src proto.Message) { + xxx_messageInfo_GetAllUsersUidResp.Merge(dst, src) } +func (m *GetAllUsersUidResp) XXX_Size() int { + return xxx_messageInfo_GetAllUsersUidResp.Size(m) +} +func (m *GetAllUsersUidResp) XXX_DiscardUnknown() { + xxx_messageInfo_GetAllUsersUidResp.DiscardUnknown(m) +} + +var xxx_messageInfo_GetAllUsersUidResp proto.InternalMessageInfo -func (x *GetAllUsersUidResp) GetCommonResp() *CommonResp { - if x != nil { - return x.CommonResp +func (m *GetAllUsersUidResp) GetCommonResp() *CommonResp { + if m != nil { + return m.CommonResp } return nil } -func (x *GetAllUsersUidResp) GetUidList() []string { - if x != nil { - return x.UidList +func (m *GetAllUsersUidResp) GetUidList() []string { + if m != nil { + return m.UidList } return nil } type GetUserInfoReq struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - UserIDList []string `protobuf:"bytes,1,rep,name=userIDList,proto3" json:"userIDList,omitempty"` - Token string `protobuf:"bytes,2,opt,name=token,proto3" json:"token,omitempty"` - OperationID string `protobuf:"bytes,3,opt,name=OperationID,proto3" json:"OperationID,omitempty"` + UserIDList []string `protobuf:"bytes,1,rep,name=userIDList" json:"userIDList,omitempty"` + Token string `protobuf:"bytes,2,opt,name=token" json:"token,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 (x *GetUserInfoReq) Reset() { - *x = GetUserInfoReq{} - if protoimpl.UnsafeEnabled { - mi := &file_user_user_proto_msgTypes[5] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } +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_user_9367ac00c24112e8, []int{5} } - -func (x *GetUserInfoReq) String() string { - return protoimpl.X.MessageStringOf(x) +func (m *GetUserInfoReq) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GetUserInfoReq.Unmarshal(m, b) } - -func (*GetUserInfoReq) ProtoMessage() {} - -func (x *GetUserInfoReq) ProtoReflect() protoreflect.Message { - mi := &file_user_user_proto_msgTypes[5] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) +func (m *GetUserInfoReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GetUserInfoReq.Marshal(b, m, deterministic) } - -// Deprecated: Use GetUserInfoReq.ProtoReflect.Descriptor instead. -func (*GetUserInfoReq) Descriptor() ([]byte, []int) { - return file_user_user_proto_rawDescGZIP(), []int{5} +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 (x *GetUserInfoReq) GetUserIDList() []string { - if x != nil { - return x.UserIDList +func (m *GetUserInfoReq) GetUserIDList() []string { + if m != nil { + return m.UserIDList } return nil } -func (x *GetUserInfoReq) GetToken() string { - if x != nil { - return x.Token +func (m *GetUserInfoReq) GetToken() string { + if m != nil { + return m.Token } return "" } -func (x *GetUserInfoReq) GetOperationID() string { - if x != nil { - return x.OperationID +func (m *GetUserInfoReq) GetOperationID() string { + if m != nil { + return m.OperationID } return "" } type GetUserInfoResp struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - ErrorCode int32 `protobuf:"varint,1,opt,name=errorCode,proto3" json:"errorCode,omitempty"` - ErrorMsg string `protobuf:"bytes,2,opt,name=errorMsg,proto3" json:"errorMsg,omitempty"` - Data []*UserInfo `protobuf:"bytes,3,rep,name=Data,proto3" json:"Data,omitempty"` + ErrorCode int32 `protobuf:"varint,1,opt,name=errorCode" json:"errorCode,omitempty"` + ErrorMsg string `protobuf:"bytes,2,opt,name=errorMsg" json:"errorMsg,omitempty"` + Data []*UserInfo `protobuf:"bytes,3,rep,name=Data" json:"Data,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (x *GetUserInfoResp) Reset() { - *x = GetUserInfoResp{} - if protoimpl.UnsafeEnabled { - mi := &file_user_user_proto_msgTypes[6] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } +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_user_9367ac00c24112e8, []int{6} } - -func (x *GetUserInfoResp) String() string { - return protoimpl.X.MessageStringOf(x) +func (m *GetUserInfoResp) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GetUserInfoResp.Unmarshal(m, b) } - -func (*GetUserInfoResp) ProtoMessage() {} - -func (x *GetUserInfoResp) ProtoReflect() protoreflect.Message { - mi := &file_user_user_proto_msgTypes[6] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) +func (m *GetUserInfoResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GetUserInfoResp.Marshal(b, m, deterministic) } - -// Deprecated: Use GetUserInfoResp.ProtoReflect.Descriptor instead. -func (*GetUserInfoResp) Descriptor() ([]byte, []int) { - return file_user_user_proto_rawDescGZIP(), []int{6} +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) } -func (x *GetUserInfoResp) GetErrorCode() int32 { - if x != nil { - return x.ErrorCode +var xxx_messageInfo_GetUserInfoResp proto.InternalMessageInfo + +func (m *GetUserInfoResp) GetErrorCode() int32 { + if m != nil { + return m.ErrorCode } return 0 } -func (x *GetUserInfoResp) GetErrorMsg() string { - if x != nil { - return x.ErrorMsg +func (m *GetUserInfoResp) GetErrorMsg() string { + if m != nil { + return m.ErrorMsg } return "" } -func (x *GetUserInfoResp) GetData() []*UserInfo { - if x != nil { - return x.Data +func (m *GetUserInfoResp) GetData() []*UserInfo { + if m != nil { + return m.Data } return nil } type UserInfo struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Uid string `protobuf:"bytes,1,opt,name=uid,proto3" json:"uid,omitempty"` - Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"` - Icon string `protobuf:"bytes,3,opt,name=icon,proto3" json:"icon,omitempty"` - Gender int32 `protobuf:"varint,4,opt,name=gender,proto3" json:"gender,omitempty"` - Mobile string `protobuf:"bytes,5,opt,name=mobile,proto3" json:"mobile,omitempty"` - Birth string `protobuf:"bytes,6,opt,name=birth,proto3" json:"birth,omitempty"` - Email string `protobuf:"bytes,7,opt,name=email,proto3" json:"email,omitempty"` - Ex string `protobuf:"bytes,8,opt,name=ex,proto3" json:"ex,omitempty"` + Uid string `protobuf:"bytes,1,opt,name=uid" json:"uid,omitempty"` + Name string `protobuf:"bytes,2,opt,name=name" json:"name,omitempty"` + Icon string `protobuf:"bytes,3,opt,name=icon" json:"icon,omitempty"` + Gender int32 `protobuf:"varint,4,opt,name=gender" json:"gender,omitempty"` + Mobile string `protobuf:"bytes,5,opt,name=mobile" json:"mobile,omitempty"` + Birth string `protobuf:"bytes,6,opt,name=birth" json:"birth,omitempty"` + Email string `protobuf:"bytes,7,opt,name=email" json:"email,omitempty"` + Ex string `protobuf:"bytes,8,opt,name=ex" json:"ex,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +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_user_9367ac00c24112e8, []int{7} } - -func (x *UserInfo) Reset() { - *x = UserInfo{} - if protoimpl.UnsafeEnabled { - mi := &file_user_user_proto_msgTypes[7] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } +func (m *UserInfo) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_UserInfo.Unmarshal(m, b) } - -func (x *UserInfo) String() string { - return protoimpl.X.MessageStringOf(x) +func (m *UserInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_UserInfo.Marshal(b, m, deterministic) } - -func (*UserInfo) ProtoMessage() {} - -func (x *UserInfo) ProtoReflect() protoreflect.Message { - mi := &file_user_user_proto_msgTypes[7] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) +func (dst *UserInfo) XXX_Merge(src proto.Message) { + xxx_messageInfo_UserInfo.Merge(dst, src) } - -// Deprecated: Use UserInfo.ProtoReflect.Descriptor instead. -func (*UserInfo) Descriptor() ([]byte, []int) { - return file_user_user_proto_rawDescGZIP(), []int{7} +func (m *UserInfo) XXX_Size() int { + return xxx_messageInfo_UserInfo.Size(m) } +func (m *UserInfo) XXX_DiscardUnknown() { + xxx_messageInfo_UserInfo.DiscardUnknown(m) +} + +var xxx_messageInfo_UserInfo proto.InternalMessageInfo -func (x *UserInfo) GetUid() string { - if x != nil { - return x.Uid +func (m *UserInfo) GetUid() string { + if m != nil { + return m.Uid } return "" } -func (x *UserInfo) GetName() string { - if x != nil { - return x.Name +func (m *UserInfo) GetName() string { + if m != nil { + return m.Name } return "" } -func (x *UserInfo) GetIcon() string { - if x != nil { - return x.Icon +func (m *UserInfo) GetIcon() string { + if m != nil { + return m.Icon } return "" } -func (x *UserInfo) GetGender() int32 { - if x != nil { - return x.Gender +func (m *UserInfo) GetGender() int32 { + if m != nil { + return m.Gender } return 0 } -func (x *UserInfo) GetMobile() string { - if x != nil { - return x.Mobile +func (m *UserInfo) GetMobile() string { + if m != nil { + return m.Mobile } return "" } -func (x *UserInfo) GetBirth() string { - if x != nil { - return x.Birth +func (m *UserInfo) GetBirth() string { + if m != nil { + return m.Birth } return "" } -func (x *UserInfo) GetEmail() string { - if x != nil { - return x.Email +func (m *UserInfo) GetEmail() string { + if m != nil { + return m.Email } return "" } -func (x *UserInfo) GetEx() string { - if x != nil { - return x.Ex +func (m *UserInfo) GetEx() string { + if m != nil { + return m.Ex } return "" } type LogoutReq struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - OperationID string `protobuf:"bytes,1,opt,name=OperationID,proto3" json:"OperationID,omitempty"` - Token string `protobuf:"bytes,2,opt,name=token,proto3" json:"token,omitempty"` + OperationID string `protobuf:"bytes,1,opt,name=OperationID" json:"OperationID,omitempty"` + Token string `protobuf:"bytes,2,opt,name=token" json:"token,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (x *LogoutReq) Reset() { - *x = LogoutReq{} - if protoimpl.UnsafeEnabled { - mi := &file_user_user_proto_msgTypes[8] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } +func (m *LogoutReq) Reset() { *m = LogoutReq{} } +func (m *LogoutReq) String() string { return proto.CompactTextString(m) } +func (*LogoutReq) ProtoMessage() {} +func (*LogoutReq) Descriptor() ([]byte, []int) { + return fileDescriptor_user_9367ac00c24112e8, []int{8} } - -func (x *LogoutReq) String() string { - return protoimpl.X.MessageStringOf(x) +func (m *LogoutReq) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_LogoutReq.Unmarshal(m, b) } - -func (*LogoutReq) ProtoMessage() {} - -func (x *LogoutReq) ProtoReflect() protoreflect.Message { - mi := &file_user_user_proto_msgTypes[8] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) +func (m *LogoutReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_LogoutReq.Marshal(b, m, deterministic) } - -// Deprecated: Use LogoutReq.ProtoReflect.Descriptor instead. -func (*LogoutReq) Descriptor() ([]byte, []int) { - return file_user_user_proto_rawDescGZIP(), []int{8} +func (dst *LogoutReq) XXX_Merge(src proto.Message) { + xxx_messageInfo_LogoutReq.Merge(dst, src) +} +func (m *LogoutReq) XXX_Size() int { + return xxx_messageInfo_LogoutReq.Size(m) +} +func (m *LogoutReq) XXX_DiscardUnknown() { + xxx_messageInfo_LogoutReq.DiscardUnknown(m) } -func (x *LogoutReq) GetOperationID() string { - if x != nil { - return x.OperationID +var xxx_messageInfo_LogoutReq proto.InternalMessageInfo + +func (m *LogoutReq) GetOperationID() string { + if m != nil { + return m.OperationID } return "" } -func (x *LogoutReq) GetToken() string { - if x != nil { - return x.Token +func (m *LogoutReq) GetToken() string { + if m != nil { + return m.Token } return "" } type UpdateUserInfoReq struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Icon string `protobuf:"bytes,1,opt,name=icon,proto3" json:"icon,omitempty"` - Name string `protobuf:"bytes,2,opt,name=name,proto3" json:"name,omitempty"` - Gender int32 `protobuf:"varint,3,opt,name=gender,proto3" json:"gender,omitempty"` - Mobile string `protobuf:"bytes,4,opt,name=mobile,proto3" json:"mobile,omitempty"` - Birth string `protobuf:"bytes,5,opt,name=birth,proto3" json:"birth,omitempty"` - Email string `protobuf:"bytes,6,opt,name=email,proto3" json:"email,omitempty"` - Ex string `protobuf:"bytes,7,opt,name=ex,proto3" json:"ex,omitempty"` - Token string `protobuf:"bytes,8,opt,name=token,proto3" json:"token,omitempty"` - OperationID string `protobuf:"bytes,9,opt,name=OperationID,proto3" json:"OperationID,omitempty"` - Uid string `protobuf:"bytes,10,opt,name=Uid,proto3" json:"Uid,omitempty"` + Icon string `protobuf:"bytes,1,opt,name=icon" json:"icon,omitempty"` + Name string `protobuf:"bytes,2,opt,name=name" json:"name,omitempty"` + Gender int32 `protobuf:"varint,3,opt,name=gender" json:"gender,omitempty"` + Mobile string `protobuf:"bytes,4,opt,name=mobile" json:"mobile,omitempty"` + Birth string `protobuf:"bytes,5,opt,name=birth" json:"birth,omitempty"` + Email string `protobuf:"bytes,6,opt,name=email" json:"email,omitempty"` + Ex string `protobuf:"bytes,7,opt,name=ex" json:"ex,omitempty"` + Token string `protobuf:"bytes,8,opt,name=token" json:"token,omitempty"` + OperationID string `protobuf:"bytes,9,opt,name=OperationID" json:"OperationID,omitempty"` + Uid string `protobuf:"bytes,10,opt,name=Uid" json:"Uid,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_user_9367ac00c24112e8, []int{9} } - -func (x *UpdateUserInfoReq) Reset() { - *x = UpdateUserInfoReq{} - if protoimpl.UnsafeEnabled { - mi := &file_user_user_proto_msgTypes[9] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } +func (m *UpdateUserInfoReq) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_UpdateUserInfoReq.Unmarshal(m, b) } - -func (x *UpdateUserInfoReq) String() string { - return protoimpl.X.MessageStringOf(x) +func (m *UpdateUserInfoReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_UpdateUserInfoReq.Marshal(b, m, deterministic) } - -func (*UpdateUserInfoReq) ProtoMessage() {} - -func (x *UpdateUserInfoReq) ProtoReflect() protoreflect.Message { - mi := &file_user_user_proto_msgTypes[9] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) +func (dst *UpdateUserInfoReq) XXX_Merge(src proto.Message) { + xxx_messageInfo_UpdateUserInfoReq.Merge(dst, src) } - -// Deprecated: Use UpdateUserInfoReq.ProtoReflect.Descriptor instead. -func (*UpdateUserInfoReq) Descriptor() ([]byte, []int) { - return file_user_user_proto_rawDescGZIP(), []int{9} +func (m *UpdateUserInfoReq) XXX_Size() int { + return xxx_messageInfo_UpdateUserInfoReq.Size(m) +} +func (m *UpdateUserInfoReq) XXX_DiscardUnknown() { + xxx_messageInfo_UpdateUserInfoReq.DiscardUnknown(m) } -func (x *UpdateUserInfoReq) GetIcon() string { - if x != nil { - return x.Icon +var xxx_messageInfo_UpdateUserInfoReq proto.InternalMessageInfo + +func (m *UpdateUserInfoReq) GetIcon() string { + if m != nil { + return m.Icon } return "" } -func (x *UpdateUserInfoReq) GetName() string { - if x != nil { - return x.Name +func (m *UpdateUserInfoReq) GetName() string { + if m != nil { + return m.Name } return "" } -func (x *UpdateUserInfoReq) GetGender() int32 { - if x != nil { - return x.Gender +func (m *UpdateUserInfoReq) GetGender() int32 { + if m != nil { + return m.Gender } return 0 } -func (x *UpdateUserInfoReq) GetMobile() string { - if x != nil { - return x.Mobile +func (m *UpdateUserInfoReq) GetMobile() string { + if m != nil { + return m.Mobile } return "" } -func (x *UpdateUserInfoReq) GetBirth() string { - if x != nil { - return x.Birth +func (m *UpdateUserInfoReq) GetBirth() string { + if m != nil { + return m.Birth } return "" } -func (x *UpdateUserInfoReq) GetEmail() string { - if x != nil { - return x.Email +func (m *UpdateUserInfoReq) GetEmail() string { + if m != nil { + return m.Email } return "" } -func (x *UpdateUserInfoReq) GetEx() string { - if x != nil { - return x.Ex +func (m *UpdateUserInfoReq) GetEx() string { + if m != nil { + return m.Ex } return "" } -func (x *UpdateUserInfoReq) GetToken() string { - if x != nil { - return x.Token +func (m *UpdateUserInfoReq) GetToken() string { + if m != nil { + return m.Token } return "" } -func (x *UpdateUserInfoReq) GetOperationID() string { - if x != nil { - return x.OperationID +func (m *UpdateUserInfoReq) GetOperationID() string { + if m != nil { + return m.OperationID } return "" } -func (x *UpdateUserInfoReq) GetUid() string { - if x != nil { - return x.Uid +func (m *UpdateUserInfoReq) GetUid() string { + if m != nil { + return m.Uid } return "" } -var File_user_user_proto protoreflect.FileDescriptor - -var file_user_user_proto_rawDesc = []byte{ - 0x0a, 0x0f, 0x75, 0x73, 0x65, 0x72, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x12, 0x04, 0x75, 0x73, 0x65, 0x72, 0x22, 0x46, 0x0a, 0x0a, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, - 0x6e, 0x52, 0x65, 0x73, 0x70, 0x12, 0x1c, 0x0a, 0x09, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x43, 0x6f, - 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x43, - 0x6f, 0x64, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x4d, 0x73, 0x67, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x4d, 0x73, 0x67, 0x22, - 0x69, 0x0a, 0x0f, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x73, 0x52, 0x65, - 0x73, 0x70, 0x12, 0x30, 0x0a, 0x0a, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x43, 0x6f, - 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x52, 0x0a, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, - 0x52, 0x65, 0x73, 0x70, 0x12, 0x24, 0x0a, 0x0d, 0x66, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x55, 0x69, - 0x64, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0d, 0x66, 0x61, 0x69, - 0x6c, 0x65, 0x64, 0x55, 0x69, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x6e, 0x0a, 0x0e, 0x44, 0x65, - 0x6c, 0x65, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x12, 0x24, 0x0a, 0x0d, - 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x55, 0x69, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x02, 0x20, - 0x03, 0x28, 0x09, 0x52, 0x0d, 0x64, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x55, 0x69, 0x64, 0x4c, 0x69, - 0x73, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x70, 0x65, 0x72, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x4f, - 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x22, 0x4b, 0x0a, 0x11, 0x47, 0x65, - 0x74, 0x41, 0x6c, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x73, 0x55, 0x69, 0x64, 0x52, 0x65, 0x71, 0x12, - 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, - 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x20, 0x0a, 0x0b, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6f, 0x70, 0x65, 0x72, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x22, 0x60, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x41, 0x6c, - 0x6c, 0x55, 0x73, 0x65, 0x72, 0x73, 0x55, 0x69, 0x64, 0x52, 0x65, 0x73, 0x70, 0x12, 0x30, 0x0a, - 0x0a, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x10, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, - 0x65, 0x73, 0x70, 0x52, 0x0a, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x12, - 0x18, 0x0a, 0x07, 0x75, 0x69, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, - 0x52, 0x07, 0x75, 0x69, 0x64, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x68, 0x0a, 0x0e, 0x47, 0x65, 0x74, - 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x12, 0x1e, 0x0a, 0x0a, 0x75, - 0x73, 0x65, 0x72, 0x49, 0x44, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, - 0x0a, 0x75, 0x73, 0x65, 0x72, 0x49, 0x44, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x14, 0x0a, 0x05, 0x74, - 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x6f, 0x6b, 0x65, - 0x6e, 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x49, 0x44, 0x22, 0x6f, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, - 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x12, 0x1c, 0x0a, 0x09, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x43, - 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x65, 0x72, 0x72, 0x6f, 0x72, - 0x43, 0x6f, 0x64, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x4d, 0x73, 0x67, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x65, 0x72, 0x72, 0x6f, 0x72, 0x4d, 0x73, 0x67, - 0x12, 0x22, 0x0a, 0x04, 0x44, 0x61, 0x74, 0x61, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0e, - 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x04, - 0x44, 0x61, 0x74, 0x61, 0x22, 0xb0, 0x01, 0x0a, 0x08, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, - 0x6f, 0x12, 0x10, 0x0a, 0x03, 0x75, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, - 0x75, 0x69, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x69, 0x63, 0x6f, 0x6e, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x69, 0x63, 0x6f, 0x6e, 0x12, 0x16, 0x0a, 0x06, 0x67, - 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x67, 0x65, 0x6e, - 0x64, 0x65, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x6d, 0x6f, 0x62, 0x69, 0x6c, 0x65, 0x18, 0x05, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x06, 0x6d, 0x6f, 0x62, 0x69, 0x6c, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x62, - 0x69, 0x72, 0x74, 0x68, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x62, 0x69, 0x72, 0x74, - 0x68, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x12, 0x0e, 0x0a, 0x02, 0x65, 0x78, 0x18, 0x08, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x02, 0x65, 0x78, 0x22, 0x43, 0x0a, 0x09, 0x4c, 0x6f, 0x67, 0x6f, 0x75, - 0x74, 0x52, 0x65, 0x71, 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x22, 0xf1, 0x01, 0x0a, - 0x11, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, - 0x65, 0x71, 0x12, 0x12, 0x0a, 0x04, 0x69, 0x63, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x04, 0x69, 0x63, 0x6f, 0x6e, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x67, 0x65, - 0x6e, 0x64, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x67, 0x65, 0x6e, 0x64, - 0x65, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x6d, 0x6f, 0x62, 0x69, 0x6c, 0x65, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x06, 0x6d, 0x6f, 0x62, 0x69, 0x6c, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x62, 0x69, - 0x72, 0x74, 0x68, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x62, 0x69, 0x72, 0x74, 0x68, - 0x12, 0x14, 0x0a, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x12, 0x0e, 0x0a, 0x02, 0x65, 0x78, 0x18, 0x07, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x02, 0x65, 0x78, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, - 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x12, 0x20, 0x0a, 0x0b, - 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x09, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x12, 0x10, - 0x0a, 0x03, 0x55, 0x69, 0x64, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x55, 0x69, 0x64, - 0x32, 0x80, 0x02, 0x0a, 0x04, 0x75, 0x73, 0x65, 0x72, 0x12, 0x3a, 0x0a, 0x0b, 0x67, 0x65, 0x74, - 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x14, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, - 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x1a, 0x15, - 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, - 0x6f, 0x52, 0x65, 0x73, 0x70, 0x12, 0x3b, 0x0a, 0x0e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x55, - 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x17, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x55, - 0x70, 0x64, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, - 0x1a, 0x10, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, - 0x73, 0x70, 0x12, 0x3a, 0x0a, 0x0b, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, - 0x73, 0x12, 0x14, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x55, - 0x73, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x15, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x44, - 0x65, 0x6c, 0x65, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x12, 0x43, - 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x41, 0x6c, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x73, 0x55, 0x69, 0x64, - 0x12, 0x17, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x6c, 0x6c, 0x55, 0x73, - 0x65, 0x72, 0x73, 0x55, 0x69, 0x64, 0x52, 0x65, 0x71, 0x1a, 0x18, 0x2e, 0x75, 0x73, 0x65, 0x72, - 0x2e, 0x47, 0x65, 0x74, 0x41, 0x6c, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x73, 0x55, 0x69, 0x64, 0x52, - 0x65, 0x73, 0x70, 0x42, 0x0d, 0x5a, 0x0b, 0x2e, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x3b, 0x75, 0x73, - 0x65, 0x72, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, -} - -var ( - file_user_user_proto_rawDescOnce sync.Once - file_user_user_proto_rawDescData = file_user_user_proto_rawDesc -) - -func file_user_user_proto_rawDescGZIP() []byte { - file_user_user_proto_rawDescOnce.Do(func() { - file_user_user_proto_rawDescData = protoimpl.X.CompressGZIP(file_user_user_proto_rawDescData) - }) - return file_user_user_proto_rawDescData -} - -var file_user_user_proto_msgTypes = make([]protoimpl.MessageInfo, 10) -var file_user_user_proto_goTypes = []interface{}{ - (*CommonResp)(nil), // 0: user.CommonResp - (*DeleteUsersResp)(nil), // 1: user.DeleteUsersResp - (*DeleteUsersReq)(nil), // 2: user.DeleteUsersReq - (*GetAllUsersUidReq)(nil), // 3: user.GetAllUsersUidReq - (*GetAllUsersUidResp)(nil), // 4: user.GetAllUsersUidResp - (*GetUserInfoReq)(nil), // 5: user.GetUserInfoReq - (*GetUserInfoResp)(nil), // 6: user.GetUserInfoResp - (*UserInfo)(nil), // 7: user.UserInfo - (*LogoutReq)(nil), // 8: user.LogoutReq - (*UpdateUserInfoReq)(nil), // 9: user.UpdateUserInfoReq -} -var file_user_user_proto_depIdxs = []int32{ - 0, // 0: user.DeleteUsersResp.commonResp:type_name -> user.CommonResp - 0, // 1: user.GetAllUsersUidResp.commonResp:type_name -> user.CommonResp - 7, // 2: user.GetUserInfoResp.Data:type_name -> user.UserInfo - 5, // 3: user.user.getUserInfo:input_type -> user.GetUserInfoReq - 9, // 4: user.user.UpdateUserInfo:input_type -> user.UpdateUserInfoReq - 2, // 5: user.user.DeleteUsers:input_type -> user.DeleteUsersReq - 3, // 6: user.user.GetAllUsersUid:input_type -> user.GetAllUsersUidReq - 6, // 7: user.user.getUserInfo:output_type -> user.GetUserInfoResp - 0, // 8: user.user.UpdateUserInfo:output_type -> user.CommonResp - 1, // 9: user.user.DeleteUsers:output_type -> user.DeleteUsersResp - 4, // 10: user.user.GetAllUsersUid:output_type -> user.GetAllUsersUidResp - 7, // [7:11] is the sub-list for method output_type - 3, // [3:7] is the sub-list for method input_type - 3, // [3:3] is the sub-list for extension type_name - 3, // [3:3] is the sub-list for extension extendee - 0, // [0:3] is the sub-list for field type_name -} - -func init() { file_user_user_proto_init() } -func file_user_user_proto_init() { - if File_user_user_proto != nil { - return - } - if !protoimpl.UnsafeEnabled { - file_user_user_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*CommonResp); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_user_user_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DeleteUsersResp); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_user_user_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DeleteUsersReq); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_user_user_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetAllUsersUidReq); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_user_user_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetAllUsersUidResp); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_user_user_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetUserInfoReq); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_user_user_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetUserInfoResp); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_user_user_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*UserInfo); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_user_user_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*LogoutReq); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_user_user_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*UpdateUserInfoReq); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - } - type x struct{} - out := protoimpl.TypeBuilder{ - File: protoimpl.DescBuilder{ - GoPackagePath: reflect.TypeOf(x{}).PkgPath(), - RawDescriptor: file_user_user_proto_rawDesc, - NumEnums: 0, - NumMessages: 10, - NumExtensions: 0, - NumServices: 1, - }, - GoTypes: file_user_user_proto_goTypes, - DependencyIndexes: file_user_user_proto_depIdxs, - MessageInfos: file_user_user_proto_msgTypes, - }.Build() - File_user_user_proto = out.File - file_user_user_proto_rawDesc = nil - file_user_user_proto_goTypes = nil - file_user_user_proto_depIdxs = nil +func init() { + proto.RegisterType((*CommonResp)(nil), "user.CommonResp") + proto.RegisterType((*DeleteUsersResp)(nil), "user.DeleteUsersResp") + proto.RegisterType((*DeleteUsersReq)(nil), "user.DeleteUsersReq") + proto.RegisterType((*GetAllUsersUidReq)(nil), "user.GetAllUsersUidReq") + proto.RegisterType((*GetAllUsersUidResp)(nil), "user.GetAllUsersUidResp") + proto.RegisterType((*GetUserInfoReq)(nil), "user.GetUserInfoReq") + proto.RegisterType((*GetUserInfoResp)(nil), "user.GetUserInfoResp") + proto.RegisterType((*UserInfo)(nil), "user.UserInfo") + proto.RegisterType((*LogoutReq)(nil), "user.LogoutReq") + proto.RegisterType((*UpdateUserInfoReq)(nil), "user.UpdateUserInfoReq") +} + +func init() { proto.RegisterFile("user/user.proto", fileDescriptor_user_9367ac00c24112e8) } + +var fileDescriptor_user_9367ac00c24112e8 = []byte{ + // 560 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xa4, 0x54, 0x4d, 0x6f, 0xd3, 0x40, + 0x10, 0x95, 0xed, 0x7c, 0x79, 0x22, 0x92, 0x74, 0x55, 0x60, 0x15, 0x21, 0x14, 0x59, 0x1c, 0x72, + 0x2a, 0x28, 0xdc, 0xe8, 0x09, 0x12, 0x51, 0x45, 0x14, 0x55, 0xb2, 0xe4, 0x0b, 0x27, 0x9c, 0xee, + 0x34, 0x5d, 0xe1, 0x78, 0x8d, 0xbd, 0x91, 0x7a, 0xe4, 0x27, 0xf1, 0xd7, 0xf8, 0x07, 0x68, 0xc7, + 0x71, 0xe2, 0xaf, 0x72, 0xa0, 0x17, 0x6b, 0xe7, 0xed, 0xfa, 0xbd, 0x7d, 0x33, 0xb3, 0x03, 0xe3, + 0x7d, 0x86, 0xe9, 0x5b, 0xf3, 0xb9, 0x48, 0x52, 0xa5, 0x15, 0xeb, 0x98, 0xb5, 0xf7, 0x19, 0x60, + 0xa9, 0x76, 0x3b, 0x15, 0xfb, 0x98, 0x25, 0xec, 0x15, 0xb8, 0x98, 0xa6, 0x2a, 0x5d, 0x2a, 0x81, + 0xdc, 0x9a, 0x59, 0xf3, 0xae, 0x7f, 0x02, 0xd8, 0x14, 0x06, 0x14, 0x7c, 0xcd, 0xb6, 0xdc, 0x9e, + 0x59, 0x73, 0xd7, 0x3f, 0xc6, 0x9e, 0x84, 0xf1, 0x0a, 0x23, 0xd4, 0x18, 0x64, 0x98, 0x66, 0x44, + 0xf6, 0x0e, 0xe0, 0xf6, 0x48, 0x4d, 0x6c, 0xc3, 0xc5, 0xe4, 0x82, 0x6e, 0x70, 0x92, 0xf4, 0x4b, + 0x67, 0xd8, 0x1b, 0x78, 0x76, 0x17, 0xca, 0x08, 0x45, 0x20, 0xc5, 0xb5, 0xcc, 0x34, 0xb7, 0x67, + 0xce, 0xdc, 0xf5, 0xab, 0xa0, 0x17, 0xc3, 0xa8, 0x22, 0xf5, 0xd3, 0xfc, 0x27, 0x72, 0xa4, 0xfa, + 0x5f, 0x05, 0x64, 0xe7, 0xd0, 0xd5, 0xea, 0x07, 0xc6, 0xdc, 0xa1, 0xbb, 0xe7, 0x01, 0x9b, 0xc1, + 0xf0, 0x26, 0xc1, 0x34, 0xd4, 0x52, 0xc5, 0xeb, 0x15, 0xef, 0xd0, 0x5e, 0x19, 0xf2, 0xbe, 0xc0, + 0xd9, 0x15, 0xea, 0x8f, 0x51, 0x44, 0x7a, 0x81, 0x14, 0x46, 0xf2, 0x48, 0x66, 0xd7, 0xc8, 0x54, + 0x89, 0x2c, 0x17, 0x2a, 0x43, 0xde, 0x77, 0x60, 0x75, 0xb2, 0xff, 0x4a, 0x15, 0x87, 0xfe, 0xbe, + 0x62, 0xb6, 0x08, 0xbd, 0x7b, 0x18, 0x5d, 0xa1, 0x36, 0xf4, 0xeb, 0xf8, 0x4e, 0x99, 0xbb, 0xbe, + 0x06, 0x30, 0x54, 0xeb, 0x15, 0x1d, 0xb7, 0xe8, 0x78, 0x09, 0x79, 0xdc, 0xcb, 0x4d, 0xd3, 0x4b, + 0x39, 0x31, 0x0a, 0xc6, 0x15, 0xa5, 0xa7, 0x34, 0x10, 0xf3, 0xa0, 0xb3, 0x0a, 0x75, 0xc8, 0x9d, + 0x99, 0x33, 0x1f, 0x2e, 0x46, 0xb9, 0xf9, 0x23, 0x37, 0xed, 0x79, 0xbf, 0x2d, 0x18, 0x14, 0x10, + 0x9b, 0x80, 0xb3, 0x97, 0x82, 0x44, 0x5c, 0xdf, 0x2c, 0x19, 0x83, 0x4e, 0x1c, 0xee, 0xf0, 0x40, + 0x4d, 0x6b, 0x83, 0xc9, 0x5b, 0x55, 0xd4, 0x9c, 0xd6, 0xec, 0x05, 0xf4, 0xb6, 0x18, 0x0b, 0x4c, + 0xa9, 0xda, 0x5d, 0xff, 0x10, 0x19, 0x7c, 0xa7, 0x36, 0x32, 0x42, 0xde, 0xa5, 0xd3, 0x87, 0xc8, + 0xe4, 0x67, 0x23, 0x53, 0x7d, 0xcf, 0x7b, 0x79, 0x7e, 0x28, 0x30, 0x28, 0xee, 0x42, 0x19, 0xf1, + 0x7e, 0x8e, 0x52, 0xc0, 0x46, 0x60, 0xe3, 0x03, 0x1f, 0x10, 0x64, 0xe3, 0x83, 0xb7, 0x04, 0xf7, + 0x5a, 0x6d, 0xd5, 0x5e, 0x9b, 0x42, 0xd4, 0x52, 0x6a, 0x35, 0x52, 0xda, 0x5e, 0x0a, 0xef, 0x8f, + 0x05, 0x67, 0x41, 0x22, 0xc2, 0xbc, 0xe5, 0x8b, 0xb2, 0x16, 0xd6, 0xac, 0x92, 0xb5, 0xb6, 0x14, + 0x9c, 0xec, 0x3a, 0x8f, 0xd8, 0xed, 0xb4, 0xdb, 0xed, 0xb6, 0xda, 0xed, 0x35, 0xed, 0xf6, 0x0b, + 0xbb, 0xa7, 0xfb, 0x0f, 0xfe, 0xd1, 0x4a, 0x6e, 0xd3, 0xf7, 0x04, 0x9c, 0x40, 0x0a, 0x0e, 0x79, + 0x31, 0x03, 0x29, 0x16, 0xbf, 0x6c, 0xa0, 0x09, 0xc5, 0x3e, 0xc0, 0x70, 0x7b, 0xea, 0x32, 0x76, + 0x9e, 0x77, 0x46, 0xb5, 0xc5, 0xa7, 0xcf, 0x5b, 0xd0, 0x2c, 0x61, 0x97, 0x30, 0xaa, 0xe6, 0x8d, + 0xbd, 0x3c, 0x34, 0x56, 0x3d, 0x9b, 0xd3, 0xc6, 0x73, 0x33, 0xc2, 0xa5, 0x39, 0x53, 0x08, 0x57, + 0x47, 0x4f, 0x21, 0x5c, 0x9f, 0x7d, 0x4b, 0x7a, 0x84, 0xa5, 0x67, 0x5e, 0x08, 0x37, 0x26, 0xc9, + 0x94, 0xb7, 0x6f, 0x64, 0xc9, 0xa7, 0xe1, 0x37, 0xd7, 0x6c, 0x5d, 0x9a, 0xcf, 0xa6, 0x47, 0x53, + 0xfb, 0xfd, 0xdf, 0x00, 0x00, 0x00, 0xff, 0xff, 0x78, 0x0f, 0x5a, 0xd9, 0xc8, 0x05, 0x00, 0x00, } From a0fec4afa02d035e607a861c04bbcd45655d81fd Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Fri, 22 Oct 2021 21:07:35 +0800 Subject: [PATCH 007/814] pb file --- src/proto/auth/auth.proto | 2 +- src/proto/friend/friend.proto | 2 +- src/proto/group/group.proto | 2 +- src/proto/push/push.proto | 2 +- src/proto/relay/relay.proto | 2 +- src/proto/user/user.proto | 2 +- 6 files changed, 6 insertions(+), 6 deletions(-) diff --git a/src/proto/auth/auth.proto b/src/proto/auth/auth.proto index 94c664125..21b82ff40 100644 --- a/src/proto/auth/auth.proto +++ b/src/proto/auth/auth.proto @@ -1,6 +1,6 @@ syntax = "proto3"; package pbAuth; -option go_package = "auth;pbAuth"; +option go_package = "./auth;pbAuth"; message UserRegisterReq { string UID = 1; diff --git a/src/proto/friend/friend.proto b/src/proto/friend/friend.proto index 7cbfc8c41..52b50d277 100644 --- a/src/proto/friend/friend.proto +++ b/src/proto/friend/friend.proto @@ -1,5 +1,5 @@ syntax = "proto3"; -option go_package = "friend;friend"; +option go_package = "./friend;friend"; package friend; message CommonResp{ diff --git a/src/proto/group/group.proto b/src/proto/group/group.proto index 3180e7a2f..ff1821ec2 100644 --- a/src/proto/group/group.proto +++ b/src/proto/group/group.proto @@ -1,5 +1,5 @@ syntax = "proto3"; -option go_package = "group;group"; +option go_package = "./group;group"; package group; message CommonResp{ diff --git a/src/proto/push/push.proto b/src/proto/push/push.proto index 7226aa543..60fddfe3b 100644 --- a/src/proto/push/push.proto +++ b/src/proto/push/push.proto @@ -1,5 +1,5 @@ syntax = "proto3"; -option go_package = "push;pbPush"; +option go_package = "./push;pbPush"; package push; message PushMsgReq { diff --git a/src/proto/relay/relay.proto b/src/proto/relay/relay.proto index 138163a80..56b876c67 100644 --- a/src/proto/relay/relay.proto +++ b/src/proto/relay/relay.proto @@ -1,5 +1,5 @@ syntax = "proto3"; -option go_package = "relay;pbRelay"; +option go_package = "./relay;pbRelay"; package relay; message MsgToUserReq { diff --git a/src/proto/user/user.proto b/src/proto/user/user.proto index d95960125..e1d38fec6 100644 --- a/src/proto/user/user.proto +++ b/src/proto/user/user.proto @@ -1,5 +1,5 @@ syntax = "proto3"; -option go_package = "user;user"; +option go_package = "./user;user"; package user; message CommonResp{ From 6ab6a49e157fc31ab70685655beeb1a29f5015f6 Mon Sep 17 00:00:00 2001 From: root Date: Fri, 22 Oct 2021 21:08:44 +0800 Subject: [PATCH 008/814] pbfile --- src/proto/auth/auth.pb.go | 172 ++++++-- src/proto/chat/chat.pb.go | 176 ++++++++ src/proto/friend/friend.pb.go | 688 +++++++++++++++++++++++++---- src/proto/group/group.pb.go | 802 +++++++++++++++++++++++++++------- src/proto/push/push.pb.go | 127 ++++-- src/proto/relay/relay.pb.go | 145 ++++-- src/proto/user/user.pb.go | 273 ++++++++++-- 7 files changed, 2007 insertions(+), 376 deletions(-) diff --git a/src/proto/auth/auth.pb.go b/src/proto/auth/auth.pb.go index f69636654..71ab5fe7a 100644 --- a/src/proto/auth/auth.pb.go +++ b/src/proto/auth/auth.pb.go @@ -1,12 +1,17 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // source: auth/auth.proto -package pbAuth // import "auth" +package pbAuth // import "./auth" 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 @@ -36,7 +41,7 @@ func (m *UserRegisterReq) Reset() { *m = UserRegisterReq{} } func (m *UserRegisterReq) String() string { return proto.CompactTextString(m) } func (*UserRegisterReq) ProtoMessage() {} func (*UserRegisterReq) Descriptor() ([]byte, []int) { - return fileDescriptor_auth_ef7bd0d2906761f0, []int{0} + return fileDescriptor_auth_d2199f7b1388fd2f, []int{0} } func (m *UserRegisterReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_UserRegisterReq.Unmarshal(m, b) @@ -123,7 +128,7 @@ func (m *UserRegisterResp) Reset() { *m = UserRegisterResp{} } func (m *UserRegisterResp) String() string { return proto.CompactTextString(m) } func (*UserRegisterResp) ProtoMessage() {} func (*UserRegisterResp) Descriptor() ([]byte, []int) { - return fileDescriptor_auth_ef7bd0d2906761f0, []int{1} + return fileDescriptor_auth_d2199f7b1388fd2f, []int{1} } func (m *UserRegisterResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_UserRegisterResp.Unmarshal(m, b) @@ -162,7 +167,7 @@ func (m *UserTokenReq) Reset() { *m = UserTokenReq{} } func (m *UserTokenReq) String() string { return proto.CompactTextString(m) } func (*UserTokenReq) ProtoMessage() {} func (*UserTokenReq) Descriptor() ([]byte, []int) { - return fileDescriptor_auth_ef7bd0d2906761f0, []int{2} + return fileDescriptor_auth_d2199f7b1388fd2f, []int{2} } func (m *UserTokenReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_UserTokenReq.Unmarshal(m, b) @@ -210,7 +215,7 @@ func (m *UserTokenResp) Reset() { *m = UserTokenResp{} } func (m *UserTokenResp) String() string { return proto.CompactTextString(m) } func (*UserTokenResp) ProtoMessage() {} func (*UserTokenResp) Descriptor() ([]byte, []int) { - return fileDescriptor_auth_ef7bd0d2906761f0, []int{3} + return fileDescriptor_auth_d2199f7b1388fd2f, []int{3} } func (m *UserTokenResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_UserTokenResp.Unmarshal(m, b) @@ -265,30 +270,135 @@ func init() { proto.RegisterType((*UserTokenResp)(nil), "pbAuth.UserTokenResp") } -func init() { proto.RegisterFile("auth/auth.proto", fileDescriptor_auth_ef7bd0d2906761f0) } - -var fileDescriptor_auth_ef7bd0d2906761f0 = []byte{ - // 346 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x6c, 0x92, 0xc1, 0x4e, 0xc2, 0x40, - 0x10, 0x86, 0xd3, 0x42, 0x0b, 0x0c, 0x22, 0x64, 0x82, 0xba, 0xe1, 0x44, 0x7a, 0xe2, 0x60, 0x30, - 0xd1, 0x8b, 0x89, 0x5e, 0x40, 0x1b, 0xc3, 0x01, 0x63, 0x2a, 0x5c, 0xbc, 0x15, 0x58, 0xa1, 0x91, - 0xb2, 0x75, 0xb7, 0x24, 0x78, 0xf6, 0xa1, 0x7c, 0x3d, 0x33, 0xbb, 0x5b, 0x82, 0x86, 0x4b, 0x3b, - 0xff, 0xb7, 0x33, 0xd9, 0xfd, 0x67, 0x06, 0x9a, 0xf1, 0x36, 0x5f, 0x5d, 0xd1, 0xa7, 0x9f, 0x49, - 0x91, 0x0b, 0xf4, 0xb3, 0xd9, 0x60, 0x9b, 0xaf, 0x82, 0x1f, 0x07, 0x9a, 0x53, 0xc5, 0x65, 0xc4, - 0x97, 0x89, 0xca, 0xe9, 0xff, 0x89, 0x2d, 0x28, 0x4d, 0x47, 0x8f, 0xcc, 0xe9, 0x3a, 0xbd, 0x5a, - 0x44, 0x21, 0x22, 0x94, 0x9f, 0xe3, 0x94, 0x33, 0x57, 0x23, 0x1d, 0x13, 0x1b, 0xcd, 0xc5, 0x86, - 0x95, 0x0c, 0xa3, 0x18, 0xcf, 0xc1, 0x7f, 0xe2, 0x9b, 0x05, 0x97, 0xac, 0xdc, 0x75, 0x7a, 0x5e, - 0x64, 0x15, 0xf1, 0xb1, 0x98, 0x25, 0x6b, 0xce, 0x3c, 0x9d, 0x6d, 0x15, 0xb6, 0xc1, 0x1b, 0x26, - 0x32, 0x5f, 0x31, 0x5f, 0x63, 0x23, 0x88, 0x86, 0x69, 0x9c, 0xac, 0x59, 0xc5, 0x50, 0x2d, 0xf0, - 0x14, 0xdc, 0x70, 0xc7, 0xaa, 0x1a, 0xb9, 0xe1, 0x2e, 0xb8, 0x84, 0xd6, 0xdf, 0x87, 0xab, 0x0c, - 0x19, 0x54, 0x5e, 0xb7, 0xf3, 0x39, 0x57, 0x4a, 0xbf, 0xbe, 0x1a, 0x15, 0x32, 0xb8, 0x87, 0x13, - 0xca, 0x9e, 0x88, 0x0f, 0xbe, 0x21, 0x8f, 0x1d, 0xa8, 0xbe, 0xac, 0xe3, 0xfc, 0x5d, 0xc8, 0x54, - 0xa7, 0x7a, 0xd1, 0x5e, 0x17, 0xfe, 0xdd, 0xbd, 0xff, 0xe0, 0x0b, 0x1a, 0x07, 0xd5, 0xe6, 0xa2, - 0x50, 0xca, 0x07, 0xb1, 0xe0, 0xb6, 0xba, 0x90, 0x64, 0x35, 0x94, 0x72, 0xac, 0x96, 0xb6, 0xde, - 0x2a, 0x32, 0xa5, 0xcb, 0x6d, 0xbf, 0x8c, 0xc0, 0x2e, 0xd4, 0xc3, 0x5d, 0x96, 0x48, 0xbe, 0x98, - 0x24, 0x29, 0xd7, 0x5d, 0x2b, 0x45, 0x87, 0xe8, 0xfa, 0xdb, 0x81, 0x32, 0x4d, 0x0a, 0x07, 0xc6, - 0x41, 0xe1, 0x17, 0x2f, 0xfa, 0x66, 0x84, 0xfd, 0x7f, 0xe3, 0xeb, 0xb0, 0xe3, 0x07, 0x2a, 0xc3, - 0x5b, 0xa8, 0xed, 0x6d, 0x60, 0xfb, 0x30, 0xad, 0xe8, 0x4b, 0xe7, 0xec, 0x08, 0x55, 0xd9, 0xb0, - 0xf1, 0x56, 0xa7, 0xe5, 0xb9, 0x33, 0x87, 0x33, 0x5f, 0x2f, 0xd1, 0xcd, 0x6f, 0x00, 0x00, 0x00, - 0xff, 0xff, 0x03, 0x0f, 0xb1, 0xb3, 0x57, 0x02, 0x00, 0x00, +// 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 Auth service + +type AuthClient interface { + UserRegister(ctx context.Context, in *UserRegisterReq, opts ...grpc.CallOption) (*UserRegisterResp, error) + UserToken(ctx context.Context, in *UserTokenReq, opts ...grpc.CallOption) (*UserTokenResp, error) +} + +type authClient struct { + cc *grpc.ClientConn +} + +func NewAuthClient(cc *grpc.ClientConn) AuthClient { + return &authClient{cc} +} + +func (c *authClient) UserRegister(ctx context.Context, in *UserRegisterReq, opts ...grpc.CallOption) (*UserRegisterResp, error) { + out := new(UserRegisterResp) + err := grpc.Invoke(ctx, "/pbAuth.Auth/UserRegister", in, out, c.cc, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *authClient) UserToken(ctx context.Context, in *UserTokenReq, opts ...grpc.CallOption) (*UserTokenResp, error) { + out := new(UserTokenResp) + err := grpc.Invoke(ctx, "/pbAuth.Auth/UserToken", in, out, c.cc, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +// Server API for Auth service + +type AuthServer interface { + UserRegister(context.Context, *UserRegisterReq) (*UserRegisterResp, error) + UserToken(context.Context, *UserTokenReq) (*UserTokenResp, error) +} + +func RegisterAuthServer(s *grpc.Server, srv AuthServer) { + s.RegisterService(&_Auth_serviceDesc, srv) +} + +func _Auth_UserRegister_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(UserRegisterReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(AuthServer).UserRegister(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/pbAuth.Auth/UserRegister", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(AuthServer).UserRegister(ctx, req.(*UserRegisterReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _Auth_UserToken_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(UserTokenReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(AuthServer).UserToken(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/pbAuth.Auth/UserToken", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(AuthServer).UserToken(ctx, req.(*UserTokenReq)) + } + return interceptor(ctx, in, info, handler) +} + +var _Auth_serviceDesc = grpc.ServiceDesc{ + ServiceName: "pbAuth.Auth", + HandlerType: (*AuthServer)(nil), + Methods: []grpc.MethodDesc{ + { + MethodName: "UserRegister", + Handler: _Auth_UserRegister_Handler, + }, + { + MethodName: "UserToken", + Handler: _Auth_UserToken_Handler, + }, + }, + Streams: []grpc.StreamDesc{}, + Metadata: "auth/auth.proto", +} + +func init() { proto.RegisterFile("auth/auth.proto", fileDescriptor_auth_d2199f7b1388fd2f) } + +var fileDescriptor_auth_d2199f7b1388fd2f = []byte{ + // 348 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x6c, 0x92, 0x41, 0x4f, 0xf2, 0x40, + 0x10, 0x86, 0xd3, 0x42, 0x0b, 0xcc, 0xf7, 0x21, 0x64, 0x82, 0xba, 0xe1, 0x44, 0x7a, 0xe2, 0x60, + 0x6a, 0xa2, 0x17, 0x13, 0xbd, 0x80, 0x36, 0x86, 0x03, 0xc6, 0x54, 0xb8, 0x78, 0x2b, 0xb0, 0x42, + 0x23, 0x65, 0xeb, 0x6e, 0x49, 0xf0, 0xec, 0x8f, 0xf2, 0xef, 0x99, 0x9d, 0xdd, 0x12, 0x34, 0x5c, + 0xda, 0x79, 0x9f, 0x9d, 0xc9, 0xee, 0x3b, 0x33, 0xd0, 0x4a, 0xb6, 0xc5, 0xea, 0x52, 0x7f, 0xc2, + 0x5c, 0x8a, 0x42, 0xa0, 0x9f, 0xcf, 0x06, 0xdb, 0x62, 0x15, 0x7c, 0x3b, 0xd0, 0x9a, 0x2a, 0x2e, + 0x63, 0xbe, 0x4c, 0x55, 0xa1, 0xff, 0x1f, 0xd8, 0x86, 0xca, 0x74, 0xf4, 0xc0, 0x9c, 0x9e, 0xd3, + 0x6f, 0xc4, 0x3a, 0x44, 0x84, 0xea, 0x53, 0x92, 0x71, 0xe6, 0x12, 0xa2, 0x58, 0xb3, 0xd1, 0x5c, + 0x6c, 0x58, 0xc5, 0x30, 0x1d, 0xe3, 0x19, 0xf8, 0x8f, 0x7c, 0xb3, 0xe0, 0x92, 0x55, 0x7b, 0x4e, + 0xdf, 0x8b, 0xad, 0xd2, 0x7c, 0x2c, 0x66, 0xe9, 0x9a, 0x33, 0x8f, 0xb2, 0xad, 0xc2, 0x0e, 0x78, + 0xc3, 0x54, 0x16, 0x2b, 0xe6, 0x13, 0x36, 0x42, 0xd3, 0x28, 0x4b, 0xd2, 0x35, 0xab, 0x19, 0x4a, + 0x02, 0x4f, 0xc0, 0x8d, 0x76, 0xac, 0x4e, 0xc8, 0x8d, 0x76, 0xc1, 0x05, 0xb4, 0x7f, 0x3f, 0x5c, + 0xe5, 0xc8, 0xa0, 0xf6, 0xb2, 0x9d, 0xcf, 0xb9, 0x52, 0xf4, 0xfa, 0x7a, 0x5c, 0xca, 0xe0, 0x0e, + 0xfe, 0xeb, 0xec, 0x89, 0x78, 0xe7, 0x1b, 0xed, 0xb1, 0x0b, 0xf5, 0xe7, 0x75, 0x52, 0xbc, 0x09, + 0x99, 0x51, 0xaa, 0x17, 0xef, 0x75, 0xe9, 0xdf, 0xdd, 0xfb, 0x0f, 0x3e, 0xa1, 0x79, 0x50, 0x6d, + 0x2e, 0x8a, 0xa4, 0xbc, 0x17, 0x0b, 0x6e, 0xab, 0x4b, 0xa9, 0xad, 0x46, 0x52, 0x8e, 0xd5, 0xd2, + 0xd6, 0x5b, 0xa5, 0x4d, 0x51, 0xb9, 0xed, 0x97, 0x11, 0xd8, 0x83, 0x7f, 0xd1, 0x2e, 0x4f, 0x25, + 0x5f, 0x4c, 0xd2, 0x8c, 0x53, 0xd7, 0x2a, 0xf1, 0x21, 0xba, 0xfa, 0x72, 0xa0, 0xaa, 0x27, 0x85, + 0x03, 0xe3, 0xa0, 0xf4, 0x8b, 0xe7, 0xa1, 0x19, 0x61, 0xf8, 0x67, 0x7c, 0x5d, 0x76, 0xfc, 0x40, + 0xe5, 0x78, 0x03, 0x8d, 0xbd, 0x0d, 0xec, 0x1c, 0xa6, 0x95, 0x7d, 0xe9, 0x9e, 0x1e, 0xa1, 0x2a, + 0x1f, 0xb6, 0x5e, 0x9b, 0x21, 0xad, 0xcf, 0xad, 0x39, 0x9e, 0xf9, 0xb4, 0x46, 0xd7, 0x3f, 0x01, + 0x00, 0x00, 0xff, 0xff, 0x15, 0x5d, 0xc8, 0xb6, 0x59, 0x02, 0x00, 0x00, } diff --git a/src/proto/chat/chat.pb.go b/src/proto/chat/chat.pb.go index 4ef79f441..aa03feadb 100644 --- a/src/proto/chat/chat.pb.go +++ b/src/proto/chat/chat.pb.go @@ -7,6 +7,11 @@ 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 @@ -1088,6 +1093,177 @@ func init() { proto.RegisterType((*UserSendMsgResp)(nil), "pbChat.UserSendMsgResp") } +// 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 Chat service + +type ChatClient interface { + GetNewSeq(ctx context.Context, in *GetNewSeqReq, opts ...grpc.CallOption) (*GetNewSeqResp, error) + PullMessage(ctx context.Context, in *PullMessageReq, opts ...grpc.CallOption) (*PullMessageResp, error) + PullMessageBySeqList(ctx context.Context, in *PullMessageBySeqListReq, opts ...grpc.CallOption) (*PullMessageResp, error) + UserSendMsg(ctx context.Context, in *UserSendMsgReq, opts ...grpc.CallOption) (*UserSendMsgResp, error) +} + +type chatClient struct { + cc *grpc.ClientConn +} + +func NewChatClient(cc *grpc.ClientConn) ChatClient { + return &chatClient{cc} +} + +func (c *chatClient) GetNewSeq(ctx context.Context, in *GetNewSeqReq, opts ...grpc.CallOption) (*GetNewSeqResp, error) { + out := new(GetNewSeqResp) + err := grpc.Invoke(ctx, "/pbChat.Chat/GetNewSeq", in, out, c.cc, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *chatClient) PullMessage(ctx context.Context, in *PullMessageReq, opts ...grpc.CallOption) (*PullMessageResp, error) { + out := new(PullMessageResp) + err := grpc.Invoke(ctx, "/pbChat.Chat/PullMessage", in, out, c.cc, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *chatClient) PullMessageBySeqList(ctx context.Context, in *PullMessageBySeqListReq, opts ...grpc.CallOption) (*PullMessageResp, error) { + out := new(PullMessageResp) + err := grpc.Invoke(ctx, "/pbChat.Chat/PullMessageBySeqList", in, out, c.cc, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *chatClient) UserSendMsg(ctx context.Context, in *UserSendMsgReq, opts ...grpc.CallOption) (*UserSendMsgResp, error) { + out := new(UserSendMsgResp) + err := grpc.Invoke(ctx, "/pbChat.Chat/UserSendMsg", in, out, c.cc, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +// Server API for Chat service + +type ChatServer interface { + GetNewSeq(context.Context, *GetNewSeqReq) (*GetNewSeqResp, error) + PullMessage(context.Context, *PullMessageReq) (*PullMessageResp, error) + PullMessageBySeqList(context.Context, *PullMessageBySeqListReq) (*PullMessageResp, error) + UserSendMsg(context.Context, *UserSendMsgReq) (*UserSendMsgResp, error) +} + +func RegisterChatServer(s *grpc.Server, srv ChatServer) { + s.RegisterService(&_Chat_serviceDesc, srv) +} + +func _Chat_GetNewSeq_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetNewSeqReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ChatServer).GetNewSeq(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/pbChat.Chat/GetNewSeq", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ChatServer).GetNewSeq(ctx, req.(*GetNewSeqReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _Chat_PullMessage_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(PullMessageReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ChatServer).PullMessage(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/pbChat.Chat/PullMessage", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ChatServer).PullMessage(ctx, req.(*PullMessageReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _Chat_PullMessageBySeqList_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(PullMessageBySeqListReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ChatServer).PullMessageBySeqList(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/pbChat.Chat/PullMessageBySeqList", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ChatServer).PullMessageBySeqList(ctx, req.(*PullMessageBySeqListReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _Chat_UserSendMsg_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(UserSendMsgReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ChatServer).UserSendMsg(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/pbChat.Chat/UserSendMsg", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ChatServer).UserSendMsg(ctx, req.(*UserSendMsgReq)) + } + return interceptor(ctx, in, info, handler) +} + +var _Chat_serviceDesc = grpc.ServiceDesc{ + ServiceName: "pbChat.Chat", + HandlerType: (*ChatServer)(nil), + Methods: []grpc.MethodDesc{ + { + MethodName: "GetNewSeq", + Handler: _Chat_GetNewSeq_Handler, + }, + { + MethodName: "PullMessage", + Handler: _Chat_PullMessage_Handler, + }, + { + MethodName: "PullMessageBySeqList", + Handler: _Chat_PullMessageBySeqList_Handler, + }, + { + MethodName: "UserSendMsg", + Handler: _Chat_UserSendMsg_Handler, + }, + }, + Streams: []grpc.StreamDesc{}, + Metadata: "chat/chat.proto", +} + func init() { proto.RegisterFile("chat/chat.proto", fileDescriptor_chat_1c5fb32d3659e154) } var fileDescriptor_chat_1c5fb32d3659e154 = []byte{ diff --git a/src/proto/friend/friend.pb.go b/src/proto/friend/friend.pb.go index d33fec265..a393857af 100644 --- a/src/proto/friend/friend.pb.go +++ b/src/proto/friend/friend.pb.go @@ -1,12 +1,17 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // source: friend/friend.proto -package friend // import "friend" +package friend // import "./friend" 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 @@ -30,7 +35,7 @@ func (m *CommonResp) Reset() { *m = CommonResp{} } func (m *CommonResp) String() string { return proto.CompactTextString(m) } func (*CommonResp) ProtoMessage() {} func (*CommonResp) Descriptor() ([]byte, []int) { - return fileDescriptor_friend_772c0e76721339e5, []int{0} + return fileDescriptor_friend_03bf5fbe59a174aa, []int{0} } func (m *CommonResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_CommonResp.Unmarshal(m, b) @@ -77,7 +82,7 @@ func (m *GetFriendsInfoReq) Reset() { *m = GetFriendsInfoReq{} } func (m *GetFriendsInfoReq) String() string { return proto.CompactTextString(m) } func (*GetFriendsInfoReq) ProtoMessage() {} func (*GetFriendsInfoReq) Descriptor() ([]byte, []int) { - return fileDescriptor_friend_772c0e76721339e5, []int{1} + return fileDescriptor_friend_03bf5fbe59a174aa, []int{1} } func (m *GetFriendsInfoReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetFriendsInfoReq.Unmarshal(m, b) @@ -131,7 +136,7 @@ func (m *GetFriendInfoResp) Reset() { *m = GetFriendInfoResp{} } func (m *GetFriendInfoResp) String() string { return proto.CompactTextString(m) } func (*GetFriendInfoResp) ProtoMessage() {} func (*GetFriendInfoResp) Descriptor() ([]byte, []int) { - return fileDescriptor_friend_772c0e76721339e5, []int{2} + return fileDescriptor_friend_03bf5fbe59a174aa, []int{2} } func (m *GetFriendInfoResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetFriendInfoResp.Unmarshal(m, b) @@ -193,7 +198,7 @@ func (m *GetFriendData) Reset() { *m = GetFriendData{} } func (m *GetFriendData) String() string { return proto.CompactTextString(m) } func (*GetFriendData) ProtoMessage() {} func (*GetFriendData) Descriptor() ([]byte, []int) { - return fileDescriptor_friend_772c0e76721339e5, []int{3} + return fileDescriptor_friend_03bf5fbe59a174aa, []int{3} } func (m *GetFriendData) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetFriendData.Unmarshal(m, b) @@ -304,7 +309,7 @@ func (m *AddFriendReq) Reset() { *m = AddFriendReq{} } func (m *AddFriendReq) String() string { return proto.CompactTextString(m) } func (*AddFriendReq) ProtoMessage() {} func (*AddFriendReq) Descriptor() ([]byte, []int) { - return fileDescriptor_friend_772c0e76721339e5, []int{4} + return fileDescriptor_friend_03bf5fbe59a174aa, []int{4} } func (m *AddFriendReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_AddFriendReq.Unmarshal(m, b) @@ -366,7 +371,7 @@ func (m *ImportFriendReq) Reset() { *m = ImportFriendReq{} } func (m *ImportFriendReq) String() string { return proto.CompactTextString(m) } func (*ImportFriendReq) ProtoMessage() {} func (*ImportFriendReq) Descriptor() ([]byte, []int) { - return fileDescriptor_friend_772c0e76721339e5, []int{5} + return fileDescriptor_friend_03bf5fbe59a174aa, []int{5} } func (m *ImportFriendReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ImportFriendReq.Unmarshal(m, b) @@ -426,7 +431,7 @@ func (m *ImportFriendResp) Reset() { *m = ImportFriendResp{} } func (m *ImportFriendResp) String() string { return proto.CompactTextString(m) } func (*ImportFriendResp) ProtoMessage() {} func (*ImportFriendResp) Descriptor() ([]byte, []int) { - return fileDescriptor_friend_772c0e76721339e5, []int{6} + return fileDescriptor_friend_03bf5fbe59a174aa, []int{6} } func (m *ImportFriendResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ImportFriendResp.Unmarshal(m, b) @@ -472,7 +477,7 @@ func (m *GetFriendApplyReq) Reset() { *m = GetFriendApplyReq{} } func (m *GetFriendApplyReq) String() string { return proto.CompactTextString(m) } func (*GetFriendApplyReq) ProtoMessage() {} func (*GetFriendApplyReq) Descriptor() ([]byte, []int) { - return fileDescriptor_friend_772c0e76721339e5, []int{7} + return fileDescriptor_friend_03bf5fbe59a174aa, []int{7} } func (m *GetFriendApplyReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetFriendApplyReq.Unmarshal(m, b) @@ -519,7 +524,7 @@ func (m *GetFriendApplyResp) Reset() { *m = GetFriendApplyResp{} } func (m *GetFriendApplyResp) String() string { return proto.CompactTextString(m) } func (*GetFriendApplyResp) ProtoMessage() {} func (*GetFriendApplyResp) Descriptor() ([]byte, []int) { - return fileDescriptor_friend_772c0e76721339e5, []int{8} + return fileDescriptor_friend_03bf5fbe59a174aa, []int{8} } func (m *GetFriendApplyResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetFriendApplyResp.Unmarshal(m, b) @@ -581,7 +586,7 @@ func (m *ApplyUserInfo) Reset() { *m = ApplyUserInfo{} } func (m *ApplyUserInfo) String() string { return proto.CompactTextString(m) } func (*ApplyUserInfo) ProtoMessage() {} func (*ApplyUserInfo) Descriptor() ([]byte, []int) { - return fileDescriptor_friend_772c0e76721339e5, []int{9} + return fileDescriptor_friend_03bf5fbe59a174aa, []int{9} } func (m *ApplyUserInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ApplyUserInfo.Unmarshal(m, b) @@ -690,7 +695,7 @@ func (m *GetFriendListReq) Reset() { *m = GetFriendListReq{} } func (m *GetFriendListReq) String() string { return proto.CompactTextString(m) } func (*GetFriendListReq) ProtoMessage() {} func (*GetFriendListReq) Descriptor() ([]byte, []int) { - return fileDescriptor_friend_772c0e76721339e5, []int{10} + return fileDescriptor_friend_03bf5fbe59a174aa, []int{10} } func (m *GetFriendListReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetFriendListReq.Unmarshal(m, b) @@ -737,7 +742,7 @@ func (m *GetFriendListResp) Reset() { *m = GetFriendListResp{} } func (m *GetFriendListResp) String() string { return proto.CompactTextString(m) } func (*GetFriendListResp) ProtoMessage() {} func (*GetFriendListResp) Descriptor() ([]byte, []int) { - return fileDescriptor_friend_772c0e76721339e5, []int{11} + return fileDescriptor_friend_03bf5fbe59a174aa, []int{11} } func (m *GetFriendListResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetFriendListResp.Unmarshal(m, b) @@ -798,7 +803,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_friend_772c0e76721339e5, []int{12} + return fileDescriptor_friend_03bf5fbe59a174aa, []int{12} } func (m *UserInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_UserInfo.Unmarshal(m, b) @@ -902,7 +907,7 @@ func (m *AddBlacklistReq) Reset() { *m = AddBlacklistReq{} } func (m *AddBlacklistReq) String() string { return proto.CompactTextString(m) } func (*AddBlacklistReq) ProtoMessage() {} func (*AddBlacklistReq) Descriptor() ([]byte, []int) { - return fileDescriptor_friend_772c0e76721339e5, []int{13} + return fileDescriptor_friend_03bf5fbe59a174aa, []int{13} } func (m *AddBlacklistReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_AddBlacklistReq.Unmarshal(m, b) @@ -963,7 +968,7 @@ func (m *RemoveBlacklistReq) Reset() { *m = RemoveBlacklistReq{} } func (m *RemoveBlacklistReq) String() string { return proto.CompactTextString(m) } func (*RemoveBlacklistReq) ProtoMessage() {} func (*RemoveBlacklistReq) Descriptor() ([]byte, []int) { - return fileDescriptor_friend_772c0e76721339e5, []int{14} + return fileDescriptor_friend_03bf5fbe59a174aa, []int{14} } func (m *RemoveBlacklistReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_RemoveBlacklistReq.Unmarshal(m, b) @@ -1016,7 +1021,7 @@ func (m *GetBlacklistReq) Reset() { *m = GetBlacklistReq{} } func (m *GetBlacklistReq) String() string { return proto.CompactTextString(m) } func (*GetBlacklistReq) ProtoMessage() {} func (*GetBlacklistReq) Descriptor() ([]byte, []int) { - return fileDescriptor_friend_772c0e76721339e5, []int{15} + return fileDescriptor_friend_03bf5fbe59a174aa, []int{15} } func (m *GetBlacklistReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetBlacklistReq.Unmarshal(m, b) @@ -1063,7 +1068,7 @@ func (m *GetBlacklistResp) Reset() { *m = GetBlacklistResp{} } func (m *GetBlacklistResp) String() string { return proto.CompactTextString(m) } func (*GetBlacklistResp) ProtoMessage() {} func (*GetBlacklistResp) Descriptor() ([]byte, []int) { - return fileDescriptor_friend_772c0e76721339e5, []int{16} + return fileDescriptor_friend_03bf5fbe59a174aa, []int{16} } func (m *GetBlacklistResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetBlacklistResp.Unmarshal(m, b) @@ -1117,7 +1122,7 @@ func (m *IsFriendReq) Reset() { *m = IsFriendReq{} } func (m *IsFriendReq) String() string { return proto.CompactTextString(m) } func (*IsFriendReq) ProtoMessage() {} func (*IsFriendReq) Descriptor() ([]byte, []int) { - return fileDescriptor_friend_772c0e76721339e5, []int{17} + return fileDescriptor_friend_03bf5fbe59a174aa, []int{17} } func (m *IsFriendReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_IsFriendReq.Unmarshal(m, b) @@ -1171,7 +1176,7 @@ func (m *IsFriendResp) Reset() { *m = IsFriendResp{} } func (m *IsFriendResp) String() string { return proto.CompactTextString(m) } func (*IsFriendResp) ProtoMessage() {} func (*IsFriendResp) Descriptor() ([]byte, []int) { - return fileDescriptor_friend_772c0e76721339e5, []int{18} + return fileDescriptor_friend_03bf5fbe59a174aa, []int{18} } func (m *IsFriendResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_IsFriendResp.Unmarshal(m, b) @@ -1225,7 +1230,7 @@ func (m *IsInBlackListReq) Reset() { *m = IsInBlackListReq{} } func (m *IsInBlackListReq) String() string { return proto.CompactTextString(m) } func (*IsInBlackListReq) ProtoMessage() {} func (*IsInBlackListReq) Descriptor() ([]byte, []int) { - return fileDescriptor_friend_772c0e76721339e5, []int{19} + return fileDescriptor_friend_03bf5fbe59a174aa, []int{19} } func (m *IsInBlackListReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_IsInBlackListReq.Unmarshal(m, b) @@ -1279,7 +1284,7 @@ func (m *IsInBlackListResp) Reset() { *m = IsInBlackListResp{} } func (m *IsInBlackListResp) String() string { return proto.CompactTextString(m) } func (*IsInBlackListResp) ProtoMessage() {} func (*IsInBlackListResp) Descriptor() ([]byte, []int) { - return fileDescriptor_friend_772c0e76721339e5, []int{20} + return fileDescriptor_friend_03bf5fbe59a174aa, []int{20} } func (m *IsInBlackListResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_IsInBlackListResp.Unmarshal(m, b) @@ -1333,7 +1338,7 @@ func (m *DeleteFriendReq) Reset() { *m = DeleteFriendReq{} } func (m *DeleteFriendReq) String() string { return proto.CompactTextString(m) } func (*DeleteFriendReq) ProtoMessage() {} func (*DeleteFriendReq) Descriptor() ([]byte, []int) { - return fileDescriptor_friend_772c0e76721339e5, []int{21} + return fileDescriptor_friend_03bf5fbe59a174aa, []int{21} } func (m *DeleteFriendReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_DeleteFriendReq.Unmarshal(m, b) @@ -1388,7 +1393,7 @@ func (m *AddFriendResponseReq) Reset() { *m = AddFriendResponseReq{} } func (m *AddFriendResponseReq) String() string { return proto.CompactTextString(m) } func (*AddFriendResponseReq) ProtoMessage() {} func (*AddFriendResponseReq) Descriptor() ([]byte, []int) { - return fileDescriptor_friend_772c0e76721339e5, []int{22} + return fileDescriptor_friend_03bf5fbe59a174aa, []int{22} } func (m *AddFriendResponseReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_AddFriendResponseReq.Unmarshal(m, b) @@ -1450,7 +1455,7 @@ func (m *SetFriendCommentReq) Reset() { *m = SetFriendCommentReq{} } func (m *SetFriendCommentReq) String() string { return proto.CompactTextString(m) } func (*SetFriendCommentReq) ProtoMessage() {} func (*SetFriendCommentReq) Descriptor() ([]byte, []int) { - return fileDescriptor_friend_772c0e76721339e5, []int{23} + return fileDescriptor_friend_03bf5fbe59a174aa, []int{23} } func (m *SetFriendCommentReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SetFriendCommentReq.Unmarshal(m, b) @@ -1525,72 +1530,573 @@ func init() { proto.RegisterType((*SetFriendCommentReq)(nil), "friend.SetFriendCommentReq") } -func init() { proto.RegisterFile("friend/friend.proto", fileDescriptor_friend_772c0e76721339e5) } +// 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 Friend service + +type FriendClient interface { + GetFriendsInfo(ctx context.Context, in *GetFriendsInfoReq, opts ...grpc.CallOption) (*GetFriendInfoResp, error) + AddFriend(ctx context.Context, in *AddFriendReq, opts ...grpc.CallOption) (*CommonResp, error) + GetFriendApplyList(ctx context.Context, in *GetFriendApplyReq, opts ...grpc.CallOption) (*GetFriendApplyResp, error) + GetSelfApplyList(ctx context.Context, in *GetFriendApplyReq, opts ...grpc.CallOption) (*GetFriendApplyResp, error) + GetFriendList(ctx context.Context, in *GetFriendListReq, opts ...grpc.CallOption) (*GetFriendListResp, error) + AddBlacklist(ctx context.Context, in *AddBlacklistReq, opts ...grpc.CallOption) (*CommonResp, error) + RemoveBlacklist(ctx context.Context, in *RemoveBlacklistReq, opts ...grpc.CallOption) (*CommonResp, error) + IsFriend(ctx context.Context, in *IsFriendReq, opts ...grpc.CallOption) (*IsFriendResp, error) + IsInBlackList(ctx context.Context, in *IsInBlackListReq, opts ...grpc.CallOption) (*IsInBlackListResp, error) + GetBlacklist(ctx context.Context, in *GetBlacklistReq, opts ...grpc.CallOption) (*GetBlacklistResp, error) + DeleteFriend(ctx context.Context, in *DeleteFriendReq, opts ...grpc.CallOption) (*CommonResp, error) + AddFriendResponse(ctx context.Context, in *AddFriendResponseReq, opts ...grpc.CallOption) (*CommonResp, error) + SetFriendComment(ctx context.Context, in *SetFriendCommentReq, opts ...grpc.CallOption) (*CommonResp, error) + ImportFriend(ctx context.Context, in *ImportFriendReq, opts ...grpc.CallOption) (*ImportFriendResp, error) +} + +type friendClient struct { + cc *grpc.ClientConn +} + +func NewFriendClient(cc *grpc.ClientConn) FriendClient { + return &friendClient{cc} +} + +func (c *friendClient) GetFriendsInfo(ctx context.Context, in *GetFriendsInfoReq, opts ...grpc.CallOption) (*GetFriendInfoResp, error) { + out := new(GetFriendInfoResp) + err := grpc.Invoke(ctx, "/friend.friend/getFriendsInfo", in, out, c.cc, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *friendClient) AddFriend(ctx context.Context, in *AddFriendReq, opts ...grpc.CallOption) (*CommonResp, error) { + out := new(CommonResp) + err := grpc.Invoke(ctx, "/friend.friend/addFriend", in, out, c.cc, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *friendClient) GetFriendApplyList(ctx context.Context, in *GetFriendApplyReq, opts ...grpc.CallOption) (*GetFriendApplyResp, error) { + out := new(GetFriendApplyResp) + err := grpc.Invoke(ctx, "/friend.friend/getFriendApplyList", in, out, c.cc, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *friendClient) GetSelfApplyList(ctx context.Context, in *GetFriendApplyReq, opts ...grpc.CallOption) (*GetFriendApplyResp, error) { + out := new(GetFriendApplyResp) + err := grpc.Invoke(ctx, "/friend.friend/getSelfApplyList", in, out, c.cc, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *friendClient) GetFriendList(ctx context.Context, in *GetFriendListReq, opts ...grpc.CallOption) (*GetFriendListResp, error) { + out := new(GetFriendListResp) + err := grpc.Invoke(ctx, "/friend.friend/getFriendList", in, out, c.cc, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *friendClient) AddBlacklist(ctx context.Context, in *AddBlacklistReq, opts ...grpc.CallOption) (*CommonResp, error) { + out := new(CommonResp) + err := grpc.Invoke(ctx, "/friend.friend/addBlacklist", in, out, c.cc, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *friendClient) RemoveBlacklist(ctx context.Context, in *RemoveBlacklistReq, opts ...grpc.CallOption) (*CommonResp, error) { + out := new(CommonResp) + err := grpc.Invoke(ctx, "/friend.friend/removeBlacklist", in, out, c.cc, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *friendClient) IsFriend(ctx context.Context, in *IsFriendReq, opts ...grpc.CallOption) (*IsFriendResp, error) { + out := new(IsFriendResp) + err := grpc.Invoke(ctx, "/friend.friend/isFriend", in, out, c.cc, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *friendClient) IsInBlackList(ctx context.Context, in *IsInBlackListReq, opts ...grpc.CallOption) (*IsInBlackListResp, error) { + out := new(IsInBlackListResp) + err := grpc.Invoke(ctx, "/friend.friend/isInBlackList", in, out, c.cc, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *friendClient) GetBlacklist(ctx context.Context, in *GetBlacklistReq, opts ...grpc.CallOption) (*GetBlacklistResp, error) { + out := new(GetBlacklistResp) + err := grpc.Invoke(ctx, "/friend.friend/getBlacklist", in, out, c.cc, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *friendClient) DeleteFriend(ctx context.Context, in *DeleteFriendReq, opts ...grpc.CallOption) (*CommonResp, error) { + out := new(CommonResp) + err := grpc.Invoke(ctx, "/friend.friend/deleteFriend", in, out, c.cc, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *friendClient) AddFriendResponse(ctx context.Context, in *AddFriendResponseReq, opts ...grpc.CallOption) (*CommonResp, error) { + out := new(CommonResp) + err := grpc.Invoke(ctx, "/friend.friend/addFriendResponse", in, out, c.cc, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *friendClient) SetFriendComment(ctx context.Context, in *SetFriendCommentReq, opts ...grpc.CallOption) (*CommonResp, error) { + out := new(CommonResp) + err := grpc.Invoke(ctx, "/friend.friend/setFriendComment", in, out, c.cc, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *friendClient) ImportFriend(ctx context.Context, in *ImportFriendReq, opts ...grpc.CallOption) (*ImportFriendResp, error) { + out := new(ImportFriendResp) + err := grpc.Invoke(ctx, "/friend.friend/ImportFriend", in, out, c.cc, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +// Server API for Friend service + +type FriendServer interface { + GetFriendsInfo(context.Context, *GetFriendsInfoReq) (*GetFriendInfoResp, error) + AddFriend(context.Context, *AddFriendReq) (*CommonResp, error) + GetFriendApplyList(context.Context, *GetFriendApplyReq) (*GetFriendApplyResp, error) + GetSelfApplyList(context.Context, *GetFriendApplyReq) (*GetFriendApplyResp, error) + GetFriendList(context.Context, *GetFriendListReq) (*GetFriendListResp, error) + AddBlacklist(context.Context, *AddBlacklistReq) (*CommonResp, error) + RemoveBlacklist(context.Context, *RemoveBlacklistReq) (*CommonResp, error) + IsFriend(context.Context, *IsFriendReq) (*IsFriendResp, error) + IsInBlackList(context.Context, *IsInBlackListReq) (*IsInBlackListResp, error) + GetBlacklist(context.Context, *GetBlacklistReq) (*GetBlacklistResp, error) + DeleteFriend(context.Context, *DeleteFriendReq) (*CommonResp, error) + AddFriendResponse(context.Context, *AddFriendResponseReq) (*CommonResp, error) + SetFriendComment(context.Context, *SetFriendCommentReq) (*CommonResp, error) + ImportFriend(context.Context, *ImportFriendReq) (*ImportFriendResp, error) +} + +func RegisterFriendServer(s *grpc.Server, srv FriendServer) { + s.RegisterService(&_Friend_serviceDesc, srv) +} + +func _Friend_GetFriendsInfo_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetFriendsInfoReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(FriendServer).GetFriendsInfo(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/friend.friend/GetFriendsInfo", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(FriendServer).GetFriendsInfo(ctx, req.(*GetFriendsInfoReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _Friend_AddFriend_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(AddFriendReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(FriendServer).AddFriend(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/friend.friend/AddFriend", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(FriendServer).AddFriend(ctx, req.(*AddFriendReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _Friend_GetFriendApplyList_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetFriendApplyReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(FriendServer).GetFriendApplyList(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/friend.friend/GetFriendApplyList", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(FriendServer).GetFriendApplyList(ctx, req.(*GetFriendApplyReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _Friend_GetSelfApplyList_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetFriendApplyReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(FriendServer).GetSelfApplyList(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/friend.friend/GetSelfApplyList", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(FriendServer).GetSelfApplyList(ctx, req.(*GetFriendApplyReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _Friend_GetFriendList_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetFriendListReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(FriendServer).GetFriendList(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/friend.friend/GetFriendList", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(FriendServer).GetFriendList(ctx, req.(*GetFriendListReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _Friend_AddBlacklist_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(AddBlacklistReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(FriendServer).AddBlacklist(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/friend.friend/AddBlacklist", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(FriendServer).AddBlacklist(ctx, req.(*AddBlacklistReq)) + } + return interceptor(ctx, in, info, handler) +} -var fileDescriptor_friend_772c0e76721339e5 = []byte{ - // 1011 bytes of a gzipped FileDescriptorProto +func _Friend_RemoveBlacklist_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(RemoveBlacklistReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(FriendServer).RemoveBlacklist(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/friend.friend/RemoveBlacklist", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(FriendServer).RemoveBlacklist(ctx, req.(*RemoveBlacklistReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _Friend_IsFriend_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(IsFriendReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(FriendServer).IsFriend(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/friend.friend/IsFriend", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(FriendServer).IsFriend(ctx, req.(*IsFriendReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _Friend_IsInBlackList_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(IsInBlackListReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(FriendServer).IsInBlackList(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/friend.friend/IsInBlackList", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(FriendServer).IsInBlackList(ctx, req.(*IsInBlackListReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _Friend_GetBlacklist_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetBlacklistReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(FriendServer).GetBlacklist(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/friend.friend/GetBlacklist", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(FriendServer).GetBlacklist(ctx, req.(*GetBlacklistReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _Friend_DeleteFriend_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(DeleteFriendReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(FriendServer).DeleteFriend(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/friend.friend/DeleteFriend", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(FriendServer).DeleteFriend(ctx, req.(*DeleteFriendReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _Friend_AddFriendResponse_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(AddFriendResponseReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(FriendServer).AddFriendResponse(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/friend.friend/AddFriendResponse", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(FriendServer).AddFriendResponse(ctx, req.(*AddFriendResponseReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _Friend_SetFriendComment_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(SetFriendCommentReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(FriendServer).SetFriendComment(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/friend.friend/SetFriendComment", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(FriendServer).SetFriendComment(ctx, req.(*SetFriendCommentReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _Friend_ImportFriend_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ImportFriendReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(FriendServer).ImportFriend(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/friend.friend/ImportFriend", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(FriendServer).ImportFriend(ctx, req.(*ImportFriendReq)) + } + return interceptor(ctx, in, info, handler) +} + +var _Friend_serviceDesc = grpc.ServiceDesc{ + ServiceName: "friend.friend", + HandlerType: (*FriendServer)(nil), + Methods: []grpc.MethodDesc{ + { + MethodName: "getFriendsInfo", + Handler: _Friend_GetFriendsInfo_Handler, + }, + { + MethodName: "addFriend", + Handler: _Friend_AddFriend_Handler, + }, + { + MethodName: "getFriendApplyList", + Handler: _Friend_GetFriendApplyList_Handler, + }, + { + MethodName: "getSelfApplyList", + Handler: _Friend_GetSelfApplyList_Handler, + }, + { + MethodName: "getFriendList", + Handler: _Friend_GetFriendList_Handler, + }, + { + MethodName: "addBlacklist", + Handler: _Friend_AddBlacklist_Handler, + }, + { + MethodName: "removeBlacklist", + Handler: _Friend_RemoveBlacklist_Handler, + }, + { + MethodName: "isFriend", + Handler: _Friend_IsFriend_Handler, + }, + { + MethodName: "isInBlackList", + Handler: _Friend_IsInBlackList_Handler, + }, + { + MethodName: "getBlacklist", + Handler: _Friend_GetBlacklist_Handler, + }, + { + MethodName: "deleteFriend", + Handler: _Friend_DeleteFriend_Handler, + }, + { + MethodName: "addFriendResponse", + Handler: _Friend_AddFriendResponse_Handler, + }, + { + MethodName: "setFriendComment", + Handler: _Friend_SetFriendComment_Handler, + }, + { + MethodName: "ImportFriend", + Handler: _Friend_ImportFriend_Handler, + }, + }, + Streams: []grpc.StreamDesc{}, + Metadata: "friend/friend.proto", +} + +func init() { proto.RegisterFile("friend/friend.proto", fileDescriptor_friend_03bf5fbe59a174aa) } + +var fileDescriptor_friend_03bf5fbe59a174aa = []byte{ + // 1013 bytes of a gzipped FileDescriptorProto 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x57, 0xcd, 0x6e, 0xdb, 0x46, - 0x10, 0x86, 0x48, 0xc9, 0x96, 0x46, 0x52, 0x24, 0xaf, 0xdd, 0x96, 0x65, 0x83, 0x42, 0x20, 0x72, - 0x48, 0x2f, 0x29, 0xe0, 0x22, 0xa7, 0x9c, 0x14, 0xbb, 0x0e, 0xd4, 0x34, 0x08, 0xc0, 0xd8, 0x97, - 0x16, 0x2d, 0x40, 0x8b, 0x23, 0x85, 0x08, 0xff, 0xc2, 0x65, 0x12, 0xfb, 0xd4, 0x63, 0xcf, 0x7d, - 0x94, 0xbe, 0x59, 0x1f, 0xa1, 0xd8, 0x59, 0x92, 0xbb, 0xfc, 0x71, 0x1a, 0x54, 0x4e, 0x72, 0x32, - 0x67, 0x76, 0x3d, 0x3b, 0xdf, 0xcc, 0x7c, 0x33, 0x23, 0x38, 0xdc, 0x64, 0x01, 0xc6, 0xfe, 0xf7, - 0xf2, 0xcf, 0x83, 0x34, 0x4b, 0xf2, 0x84, 0xed, 0x49, 0xc9, 0x39, 0x03, 0x38, 0x49, 0xa2, 0x28, - 0x89, 0x5d, 0xe4, 0x29, 0xbb, 0x0b, 0x23, 0xcc, 0xb2, 0x24, 0x3b, 0x49, 0x7c, 0xb4, 0x7a, 0x8b, - 0xde, 0xfd, 0x81, 0xab, 0x14, 0xcc, 0x86, 0x21, 0x09, 0xcf, 0xf8, 0xd6, 0x32, 0x16, 0xbd, 0xfb, - 0x23, 0xb7, 0x92, 0x9d, 0xdf, 0xe0, 0xe0, 0x09, 0xe6, 0x67, 0x64, 0x94, 0xaf, 0xe2, 0x4d, 0xe2, - 0xe2, 0x6b, 0x36, 0x07, 0xf3, 0x4d, 0xe0, 0x93, 0xa1, 0x91, 0x2b, 0x3e, 0xd9, 0x02, 0xc6, 0xcf, - 0x53, 0xcc, 0xbc, 0x3c, 0x48, 0xe2, 0xd5, 0x69, 0x61, 0x45, 0x57, 0xb1, 0x23, 0x18, 0x9c, 0x27, - 0xaf, 0x30, 0xb6, 0x4c, 0x3a, 0x93, 0x82, 0x73, 0xa5, 0x99, 0x97, 0xd6, 0x77, 0xf1, 0x96, 0x7d, - 0x07, 0xfd, 0x53, 0x2f, 0xf7, 0xe8, 0x8d, 0xf1, 0xf1, 0x17, 0x0f, 0x8a, 0xd0, 0x54, 0x4f, 0x88, - 0x43, 0x97, 0xae, 0x38, 0x7f, 0x19, 0x30, 0xad, 0xe9, 0x3b, 0x50, 0x31, 0xe8, 0x07, 0xeb, 0x24, - 0x2e, 0x9e, 0xa1, 0x6f, 0xa1, 0x8b, 0xbd, 0x08, 0x0b, 0x18, 0xf4, 0xcd, 0xbe, 0x84, 0xbd, 0x2d, - 0xc6, 0x3e, 0x66, 0x56, 0x9f, 0xbc, 0x2d, 0x24, 0xa1, 0x8f, 0x92, 0xcb, 0x20, 0x44, 0x6b, 0x40, - 0xb7, 0x0b, 0x49, 0xc4, 0xe2, 0x32, 0xc8, 0xf2, 0x97, 0xd6, 0x9e, 0x8c, 0x05, 0x09, 0x42, 0x8b, - 0x91, 0x17, 0x84, 0xd6, 0xbe, 0xd4, 0x92, 0xc0, 0xee, 0x80, 0x81, 0x57, 0xd6, 0x90, 0x54, 0x06, - 0x5e, 0x31, 0x0b, 0xf6, 0xd7, 0x49, 0x14, 0x61, 0x9c, 0x5b, 0x23, 0x52, 0x96, 0xa2, 0x08, 0x4c, - 0xc0, 0x25, 0x1e, 0x0b, 0xc8, 0x8f, 0x4a, 0x66, 0xf7, 0x60, 0x1a, 0xf0, 0x55, 0xfc, 0x38, 0xf4, - 0xd6, 0xaf, 0x7e, 0x0e, 0x78, 0x6e, 0x8d, 0xe9, 0x42, 0x5d, 0xe9, 0x5c, 0xc1, 0x64, 0xe9, 0xfb, - 0xf2, 0x5f, 0x6e, 0x35, 0xcf, 0xec, 0x5b, 0x00, 0x17, 0x5f, 0x3f, 0x43, 0xce, 0xbd, 0x2d, 0x52, - 0x94, 0x46, 0xae, 0xa6, 0x71, 0xfe, 0x80, 0xd9, 0x2a, 0x4a, 0x93, 0x2c, 0x57, 0x8f, 0x5b, 0xb0, - 0xff, 0x26, 0xf0, 0xc9, 0xd9, 0xde, 0xc2, 0x14, 0x40, 0x0b, 0xf1, 0x7f, 0x3b, 0x61, 0xc3, 0xf0, - 0xf9, 0xbb, 0x18, 0xb3, 0x8b, 0xc0, 0x2f, 0x5c, 0xa8, 0x64, 0x27, 0x84, 0x79, 0xdd, 0x01, 0x9e, - 0xb2, 0x63, 0x80, 0x75, 0xc5, 0x21, 0x8a, 0xc2, 0xf8, 0x98, 0x95, 0x35, 0xa5, 0xd8, 0xe5, 0x6a, - 0xb7, 0x44, 0xa0, 0x37, 0x5e, 0x10, 0xa2, 0x7f, 0x51, 0xf8, 0x6e, 0x90, 0xef, 0x75, 0xa5, 0xf3, - 0x54, 0x2b, 0xfb, 0x65, 0x9a, 0x86, 0xd7, 0x02, 0x70, 0x03, 0x56, 0xef, 0x3d, 0xb0, 0x0c, 0x9d, - 0x43, 0xd7, 0xc0, 0x9a, 0xc6, 0x76, 0x25, 0x91, 0x2f, 0x48, 0xd4, 0x5f, 0x98, 0x3a, 0x89, 0xc8, - 0xf4, 0x05, 0xc7, 0x8c, 0x78, 0x4a, 0x57, 0x9c, 0x3f, 0x0d, 0x98, 0xd6, 0xf4, 0xdd, 0x24, 0x22, - 0xc2, 0x18, 0x1a, 0x61, 0x4a, 0x62, 0x99, 0x1a, 0xb1, 0x3e, 0x25, 0x89, 0x18, 0xf4, 0x37, 0xa1, - 0xb7, 0x25, 0x06, 0x0d, 0x5c, 0xfa, 0x16, 0x01, 0xf3, 0x04, 0x94, 0xf3, 0x20, 0x42, 0xe2, 0xcf, - 0xc8, 0x55, 0x0a, 0x51, 0xc0, 0x99, 0x2a, 0xe0, 0xb1, 0x2c, 0x60, 0xa5, 0x71, 0x7e, 0x82, 0xf9, - 0xb6, 0x4c, 0x82, 0x48, 0xf1, 0x2e, 0x09, 0xe5, 0x70, 0xd0, 0xb0, 0xb5, 0x53, 0x3e, 0xef, 0x15, - 0xf9, 0x34, 0x29, 0x9f, 0xf3, 0x32, 0x9f, 0x8d, 0x54, 0xfe, 0xd3, 0x83, 0xe1, 0x07, 0x64, 0xd1, - 0xec, 0xc8, 0xa2, 0xf1, 0x99, 0xb2, 0x78, 0x73, 0x2b, 0x6c, 0xb5, 0x3b, 0xe8, 0x6a, 0x77, 0xef, - 0x60, 0xb6, 0xf4, 0x7d, 0x92, 0xc3, 0x22, 0x65, 0xb7, 0xd7, 0xf1, 0xde, 0xd7, 0x6c, 0x7e, 0x07, - 0xe6, 0x62, 0x94, 0xbc, 0xc5, 0x8f, 0xf3, 0xb6, 0xb3, 0x82, 0xd9, 0x13, 0xcc, 0x6b, 0xc6, 0x3f, - 0xa8, 0x16, 0x73, 0xbd, 0x16, 0x49, 0x70, 0x32, 0x98, 0xd7, 0x4d, 0x7d, 0x82, 0x52, 0x44, 0x18, - 0xaf, 0xb8, 0x1a, 0x04, 0x95, 0x63, 0x3d, 0xcd, 0x31, 0x49, 0xc8, 0x35, 0x06, 0x6f, 0x51, 0x44, - 0xd8, 0x28, 0x09, 0x59, 0x6a, 0x9a, 0x80, 0xcd, 0x16, 0x60, 0xc7, 0x87, 0x89, 0x7a, 0x66, 0x27, - 0x58, 0x36, 0x0c, 0xf9, 0xcb, 0x20, 0x3d, 0xbf, 0x4e, 0x25, 0x41, 0x06, 0x6e, 0x25, 0x3b, 0x31, - 0xcc, 0x57, 0x7a, 0xd5, 0x15, 0xa3, 0x8d, 0x63, 0x2c, 0xa6, 0x41, 0x81, 0xa9, 0x14, 0x6f, 0x01, - 0x55, 0x00, 0x07, 0x8d, 0xf7, 0x76, 0x85, 0x96, 0x21, 0x4f, 0x93, 0x98, 0x4b, 0x68, 0x43, 0xb7, - 0x92, 0x9d, 0x5f, 0x61, 0x76, 0x8a, 0x21, 0xe6, 0xf8, 0x11, 0x36, 0x06, 0x27, 0x87, 0x23, 0x6d, - 0x17, 0x91, 0x2f, 0x76, 0xbf, 0x50, 0x36, 0x73, 0x43, 0x6b, 0xe6, 0xff, 0x19, 0x27, 0xf5, 0x6a, - 0xbf, 0x3e, 0x4b, 0x0f, 0x5f, 0x94, 0xad, 0xf7, 0x44, 0x36, 0x93, 0x1b, 0x61, 0x25, 0x6d, 0x58, - 0x9a, 0x4a, 0xef, 0x4e, 0x66, 0xbd, 0x3b, 0x55, 0x05, 0xdd, 0xd7, 0x0a, 0xfa, 0xf8, 0xef, 0x7d, - 0x28, 0x96, 0x77, 0x76, 0x06, 0x77, 0xb6, 0xb5, 0xa5, 0x9b, 0x7d, 0xdd, 0x5a, 0x65, 0xcb, 0x65, - 0xdc, 0x6e, 0x1f, 0x55, 0x8b, 0xf4, 0x43, 0x18, 0x79, 0x65, 0x0c, 0xd9, 0x51, 0x35, 0xc8, 0xb5, - 0x15, 0xcf, 0xee, 0xd8, 0x67, 0xd8, 0x53, 0x60, 0xdb, 0xda, 0x42, 0x41, 0x5b, 0x57, 0xfb, 0x9d, - 0x72, 0x73, 0xb1, 0xed, 0x9b, 0x8e, 0x78, 0xca, 0x56, 0x34, 0x18, 0x5f, 0x60, 0xb8, 0xd9, 0xd9, - 0xd4, 0x29, 0x4c, 0x6b, 0x73, 0x91, 0x59, 0xe5, 0xe5, 0xe6, 0xe8, 0x55, 0x41, 0x69, 0x0f, 0xd2, - 0x47, 0x30, 0xf1, 0xb4, 0xae, 0xcf, 0xbe, 0xd2, 0xe2, 0xa2, 0xb7, 0xcc, 0xce, 0xd0, 0x2c, 0x61, - 0x96, 0xd5, 0x3b, 0x37, 0xab, 0x3c, 0x6e, 0xb7, 0xf4, 0x4e, 0x13, 0x0f, 0xd5, 0x9a, 0xce, 0x0e, - 0xcb, 0x73, 0xad, 0xdf, 0xd9, 0x47, 0x6d, 0xa5, 0x04, 0x5f, 0x9b, 0x5e, 0x0a, 0x7c, 0xb3, 0xbd, - 0x28, 0xf0, 0xed, 0x46, 0xb0, 0x84, 0xc9, 0x56, 0x6b, 0xe7, 0x0a, 0x7c, 0x63, 0x5e, 0xd8, 0x56, - 0xf7, 0x81, 0x8c, 0x9f, 0xaf, 0xb1, 0x5e, 0x99, 0x68, 0xf4, 0x82, 0x4e, 0xf0, 0x3f, 0xc2, 0x81, - 0xd7, 0x64, 0x35, 0xbb, 0xdb, 0x51, 0x99, 0x15, 0xe1, 0x3b, 0xcd, 0x9c, 0xc0, 0x9c, 0x37, 0x68, - 0xca, 0xbe, 0x29, 0xef, 0x75, 0x10, 0xf8, 0x86, 0x5c, 0x4e, 0xf4, 0x95, 0x5f, 0x01, 0x69, 0xfc, - 0x12, 0x51, 0xb1, 0x68, 0xfe, 0x42, 0x78, 0x3c, 0xfb, 0x65, 0x2a, 0x8f, 0x1e, 0xc9, 0x3f, 0x97, - 0x7b, 0xf4, 0x2b, 0xfc, 0x87, 0x7f, 0x03, 0x00, 0x00, 0xff, 0xff, 0x85, 0x59, 0x8f, 0x67, 0x9c, - 0x0f, 0x00, 0x00, + 0x10, 0x86, 0x48, 0xc9, 0x96, 0x46, 0x72, 0x24, 0xad, 0xdd, 0x96, 0x65, 0x83, 0x42, 0x20, 0x72, + 0x48, 0x2f, 0x2e, 0xe0, 0x22, 0xa7, 0x9c, 0x14, 0xbb, 0x0e, 0xd4, 0x34, 0x08, 0xc0, 0xd8, 0x97, + 0x16, 0x2d, 0x40, 0x8b, 0x23, 0x66, 0x11, 0xfe, 0x85, 0xcb, 0x24, 0xf6, 0xa9, 0xc7, 0x9e, 0xfb, + 0x28, 0x7d, 0xb3, 0x3e, 0x42, 0xb1, 0xbb, 0x24, 0x77, 0xf9, 0xa3, 0x34, 0xa8, 0x1c, 0xe7, 0x24, + 0xce, 0x70, 0x35, 0x3b, 0xdf, 0xcc, 0x7c, 0x33, 0x43, 0x38, 0xdc, 0x64, 0x14, 0x63, 0xff, 0x7b, + 0xf9, 0x73, 0x9c, 0x66, 0x49, 0x9e, 0x90, 0x3d, 0x29, 0x39, 0xe7, 0x00, 0xa7, 0x49, 0x14, 0x25, + 0xb1, 0x8b, 0x2c, 0x25, 0xf7, 0x61, 0x84, 0x59, 0x96, 0x64, 0xa7, 0x89, 0x8f, 0x56, 0x6f, 0xd1, + 0x7b, 0x38, 0x70, 0x95, 0x82, 0xd8, 0x30, 0x14, 0xc2, 0x73, 0x16, 0x58, 0xc6, 0xa2, 0xf7, 0x70, + 0xe4, 0x56, 0xb2, 0xf3, 0x1b, 0xcc, 0x9f, 0x62, 0x7e, 0x2e, 0x8c, 0xb2, 0x55, 0xbc, 0x49, 0x5c, + 0x7c, 0x43, 0x66, 0x60, 0xbe, 0xa5, 0xbe, 0x30, 0x34, 0x72, 0xf9, 0x23, 0x59, 0xc0, 0xf8, 0x45, + 0x8a, 0x99, 0x97, 0xd3, 0x24, 0x5e, 0x9d, 0x15, 0x56, 0x74, 0x15, 0x39, 0x82, 0xc1, 0x45, 0xf2, + 0x1a, 0x63, 0xcb, 0x14, 0xef, 0xa4, 0xe0, 0x5c, 0x6b, 0xe6, 0xa5, 0xf5, 0x5d, 0xbc, 0x25, 0xdf, + 0x41, 0xff, 0xcc, 0xcb, 0x3d, 0x71, 0xc7, 0xf8, 0xe4, 0x8b, 0xe3, 0x22, 0x34, 0xd5, 0x15, 0xfc, + 0xa5, 0x2b, 0x8e, 0x38, 0x7f, 0x19, 0x70, 0x50, 0xd3, 0x77, 0xa0, 0x22, 0xd0, 0xa7, 0xeb, 0x24, + 0x2e, 0xae, 0x11, 0xcf, 0x5c, 0x17, 0x7b, 0x11, 0x16, 0x30, 0xc4, 0x33, 0xf9, 0x12, 0xf6, 0x02, + 0x8c, 0x7d, 0xcc, 0xac, 0xbe, 0xf0, 0xb6, 0x90, 0xb8, 0x3e, 0x4a, 0xae, 0x68, 0x88, 0xd6, 0x40, + 0x9c, 0x2e, 0x24, 0x1e, 0x8b, 0x2b, 0x9a, 0xe5, 0xaf, 0xac, 0x3d, 0x19, 0x0b, 0x21, 0x70, 0x2d, + 0x46, 0x1e, 0x0d, 0xad, 0x7d, 0xa9, 0x15, 0x02, 0xb9, 0x07, 0x06, 0x5e, 0x5b, 0x43, 0xa1, 0x32, + 0xf0, 0x9a, 0x58, 0xb0, 0xbf, 0x4e, 0xa2, 0x08, 0xe3, 0xdc, 0x1a, 0x09, 0x65, 0x29, 0xf2, 0xc0, + 0x50, 0x26, 0xf1, 0x58, 0x20, 0xfc, 0xa8, 0x64, 0xf2, 0x00, 0x0e, 0x28, 0x5b, 0xc5, 0x4f, 0x42, + 0x6f, 0xfd, 0xfa, 0x67, 0xca, 0x72, 0x6b, 0x2c, 0x0e, 0xd4, 0x95, 0xce, 0x35, 0x4c, 0x96, 0xbe, + 0x2f, 0xff, 0x72, 0xab, 0x79, 0x26, 0xdf, 0x02, 0xb8, 0xf8, 0xe6, 0x39, 0x32, 0xe6, 0x05, 0x28, + 0xa2, 0x34, 0x72, 0x35, 0x8d, 0xf3, 0x07, 0x4c, 0x57, 0x51, 0x9a, 0x64, 0xb9, 0xba, 0xdc, 0x82, + 0xfd, 0xb7, 0xd4, 0x17, 0xce, 0xf6, 0x16, 0x26, 0x07, 0x5a, 0x88, 0xff, 0xdb, 0x09, 0x1b, 0x86, + 0x2f, 0xde, 0xc7, 0x98, 0x5d, 0x52, 0xbf, 0x70, 0xa1, 0x92, 0x9d, 0x10, 0x66, 0x75, 0x07, 0x58, + 0x4a, 0x4e, 0x00, 0xd6, 0x15, 0x87, 0x44, 0x14, 0xc6, 0x27, 0xa4, 0xac, 0x29, 0xc5, 0x2e, 0x57, + 0x3b, 0xc5, 0x03, 0xbd, 0xf1, 0x68, 0x88, 0xfe, 0x65, 0xe1, 0xbb, 0x21, 0x7c, 0xaf, 0x2b, 0x9d, + 0x67, 0x5a, 0xd9, 0x2f, 0xd3, 0x34, 0xbc, 0xe1, 0x80, 0x1b, 0xb0, 0x7a, 0x1f, 0x80, 0x65, 0xe8, + 0x1c, 0xba, 0x01, 0xd2, 0x34, 0xb6, 0x2b, 0x89, 0x7c, 0x4e, 0xa2, 0xfe, 0xc2, 0xd4, 0x49, 0x24, + 0x4c, 0x5f, 0x32, 0xcc, 0x04, 0x4f, 0xc5, 0x11, 0xe7, 0x4f, 0x03, 0x0e, 0x6a, 0xfa, 0x6e, 0x12, + 0x09, 0xc2, 0x18, 0x1a, 0x61, 0x4a, 0x62, 0x99, 0x1a, 0xb1, 0xee, 0x92, 0x44, 0x04, 0xfa, 0x9b, + 0xd0, 0x0b, 0x04, 0x83, 0x06, 0xae, 0x78, 0xe6, 0x01, 0xf3, 0x38, 0x94, 0x0b, 0x1a, 0xa1, 0xe0, + 0xcf, 0xc8, 0x55, 0x0a, 0x5e, 0xc0, 0x99, 0x2a, 0xe0, 0xb1, 0x2c, 0x60, 0xa5, 0x71, 0x7e, 0x82, + 0x59, 0x50, 0x26, 0x81, 0xa7, 0x78, 0x97, 0x84, 0x32, 0x98, 0x37, 0x6c, 0xed, 0x94, 0xcf, 0x07, + 0x45, 0x3e, 0x4d, 0x91, 0xcf, 0x59, 0x99, 0xcf, 0x46, 0x2a, 0xff, 0xe9, 0xc1, 0xf0, 0x23, 0xb2, + 0x68, 0x76, 0x64, 0xd1, 0xf8, 0x4c, 0x59, 0xdc, 0xde, 0x0a, 0x5b, 0xed, 0x0e, 0xba, 0xda, 0xdd, + 0x7b, 0x98, 0x2e, 0x7d, 0x5f, 0xc8, 0x61, 0x91, 0xb2, 0xdb, 0xeb, 0x78, 0x1f, 0x6a, 0x36, 0xbf, + 0x03, 0x71, 0x31, 0x4a, 0xde, 0xe1, 0xa7, 0xb9, 0xdb, 0x59, 0xc1, 0xf4, 0x29, 0xe6, 0x35, 0xe3, + 0x1f, 0x55, 0x8b, 0xb9, 0x5e, 0x8b, 0x42, 0x70, 0x32, 0x98, 0xd5, 0x4d, 0xdd, 0x41, 0x29, 0x22, + 0x8c, 0x57, 0x4c, 0x0d, 0x82, 0xca, 0xb1, 0x9e, 0xe6, 0x98, 0x24, 0xe4, 0x1a, 0xe9, 0x3b, 0xe4, + 0x11, 0x36, 0x4a, 0x42, 0x96, 0x9a, 0x26, 0x60, 0xb3, 0x05, 0xd8, 0xf1, 0x61, 0xa2, 0xae, 0xd9, + 0x09, 0x96, 0x0d, 0x43, 0xf6, 0x8a, 0xa6, 0x17, 0x37, 0xa9, 0x24, 0xc8, 0xc0, 0xad, 0x64, 0x27, + 0x86, 0xd9, 0x4a, 0xaf, 0xba, 0x62, 0xb4, 0x31, 0x8c, 0xf9, 0x34, 0x28, 0x30, 0x95, 0xe2, 0x2d, + 0xa0, 0xa2, 0x30, 0x6f, 0xdc, 0xb7, 0x2b, 0xb4, 0x0c, 0x59, 0x9a, 0xc4, 0x4c, 0x42, 0x1b, 0xba, + 0x95, 0xec, 0xfc, 0x0a, 0xd3, 0x33, 0x0c, 0x31, 0xc7, 0x4f, 0xb0, 0x31, 0x38, 0x39, 0x1c, 0x69, + 0xbb, 0x88, 0xbc, 0xb1, 0xfb, 0x86, 0xb2, 0x99, 0x1b, 0x5a, 0x33, 0xff, 0xcf, 0x38, 0xa9, 0x5b, + 0xfb, 0xf5, 0x59, 0x7a, 0xf8, 0xb2, 0x6c, 0xbd, 0xa7, 0xb2, 0x99, 0x6c, 0x85, 0x95, 0xb4, 0x61, + 0x69, 0x2a, 0xbd, 0x3b, 0x99, 0xf5, 0xee, 0x54, 0x15, 0x74, 0x5f, 0x2b, 0xe8, 0x93, 0xbf, 0xf7, + 0xa1, 0x58, 0xde, 0xc9, 0x39, 0xdc, 0x0b, 0x6a, 0x4b, 0x37, 0xf9, 0xba, 0xb5, 0xca, 0x96, 0xcb, + 0xb8, 0xdd, 0x7e, 0x55, 0x2d, 0xd2, 0x8f, 0x60, 0xe4, 0x95, 0x31, 0x24, 0x47, 0xd5, 0x20, 0xd7, + 0x56, 0x3c, 0xbb, 0x63, 0x9f, 0x21, 0xcf, 0x80, 0x04, 0xb5, 0x85, 0x42, 0x6c, 0x5d, 0xed, 0x7b, + 0xca, 0xcd, 0xc5, 0xb6, 0xb7, 0xbd, 0x62, 0x29, 0x59, 0x89, 0xc1, 0xf8, 0x12, 0xc3, 0xcd, 0xce, + 0xa6, 0xce, 0xe0, 0xa0, 0x36, 0x17, 0x89, 0x55, 0x1e, 0x6e, 0x8e, 0x5e, 0x15, 0x94, 0xf6, 0x20, + 0x7d, 0x0c, 0x13, 0x4f, 0xeb, 0xfa, 0xe4, 0x2b, 0x2d, 0x2e, 0x7a, 0xcb, 0xec, 0x0c, 0xcd, 0x12, + 0xa6, 0x59, 0xbd, 0x73, 0x93, 0xca, 0xe3, 0x76, 0x4b, 0xef, 0x34, 0xf1, 0x48, 0xad, 0xe9, 0xe4, + 0xb0, 0x7c, 0xaf, 0xf5, 0x3b, 0xfb, 0xa8, 0xad, 0x94, 0xe0, 0x6b, 0xd3, 0x4b, 0x81, 0x6f, 0xb6, + 0x17, 0x05, 0xbe, 0xdd, 0x08, 0x96, 0x30, 0x09, 0xb4, 0x76, 0xae, 0xc0, 0x37, 0xe6, 0x85, 0x6d, + 0x75, 0xbf, 0x90, 0xf1, 0xf3, 0x35, 0xd6, 0x2b, 0x13, 0x8d, 0x5e, 0xd0, 0x09, 0xfe, 0x47, 0x98, + 0x7b, 0x4d, 0x56, 0x93, 0xfb, 0x1d, 0x95, 0x59, 0x11, 0xbe, 0xd3, 0xcc, 0x29, 0xcc, 0x58, 0x83, + 0xa6, 0xe4, 0x9b, 0xf2, 0x5c, 0x07, 0x81, 0xb7, 0xe4, 0x72, 0xa2, 0xaf, 0xfc, 0x0a, 0x48, 0xe3, + 0x4b, 0x44, 0xc5, 0xa2, 0xf9, 0x85, 0xf0, 0x64, 0xfe, 0xcb, 0xf4, 0xb8, 0xf8, 0xfe, 0x7e, 0x2c, + 0x7f, 0xae, 0xf6, 0xc4, 0x77, 0xf8, 0x0f, 0xff, 0x06, 0x00, 0x00, 0xff, 0xff, 0x6e, 0xf2, 0x29, + 0xc4, 0x9e, 0x0f, 0x00, 0x00, } diff --git a/src/proto/group/group.pb.go b/src/proto/group/group.pb.go index 6ff2e8092..fae312019 100644 --- a/src/proto/group/group.pb.go +++ b/src/proto/group/group.pb.go @@ -1,12 +1,17 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // source: group/group.proto -package group // import "group" +package group // import "./group" 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 @@ -30,7 +35,7 @@ func (m *CommonResp) Reset() { *m = CommonResp{} } func (m *CommonResp) String() string { return proto.CompactTextString(m) } func (*CommonResp) ProtoMessage() {} func (*CommonResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_9fd4d73937974f0d, []int{0} + return fileDescriptor_group_ed07d0078ff66bfe, []int{0} } func (m *CommonResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_CommonResp.Unmarshal(m, b) @@ -82,7 +87,7 @@ func (m *CreateGroupReq) Reset() { *m = CreateGroupReq{} } func (m *CreateGroupReq) String() string { return proto.CompactTextString(m) } func (*CreateGroupReq) ProtoMessage() {} func (*CreateGroupReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_9fd4d73937974f0d, []int{1} + return fileDescriptor_group_ed07d0078ff66bfe, []int{1} } func (m *CreateGroupReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_CreateGroupReq.Unmarshal(m, b) @@ -170,7 +175,7 @@ func (m *GroupAddMemberInfo) Reset() { *m = GroupAddMemberInfo{} } func (m *GroupAddMemberInfo) String() string { return proto.CompactTextString(m) } func (*GroupAddMemberInfo) ProtoMessage() {} func (*GroupAddMemberInfo) Descriptor() ([]byte, []int) { - return fileDescriptor_group_9fd4d73937974f0d, []int{2} + return fileDescriptor_group_ed07d0078ff66bfe, []int{2} } func (m *GroupAddMemberInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupAddMemberInfo.Unmarshal(m, b) @@ -217,7 +222,7 @@ func (m *CreateGroupResp) Reset() { *m = CreateGroupResp{} } func (m *CreateGroupResp) String() string { return proto.CompactTextString(m) } func (*CreateGroupResp) ProtoMessage() {} func (*CreateGroupResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_9fd4d73937974f0d, []int{3} + return fileDescriptor_group_ed07d0078ff66bfe, []int{3} } func (m *CreateGroupResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_CreateGroupResp.Unmarshal(m, b) @@ -271,7 +276,7 @@ func (m *GetGroupsInfoReq) Reset() { *m = GetGroupsInfoReq{} } func (m *GetGroupsInfoReq) String() string { return proto.CompactTextString(m) } func (*GetGroupsInfoReq) ProtoMessage() {} func (*GetGroupsInfoReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_9fd4d73937974f0d, []int{4} + return fileDescriptor_group_ed07d0078ff66bfe, []int{4} } func (m *GetGroupsInfoReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetGroupsInfoReq.Unmarshal(m, b) @@ -325,7 +330,7 @@ func (m *GetGroupsInfoResp) Reset() { *m = GetGroupsInfoResp{} } func (m *GetGroupsInfoResp) String() string { return proto.CompactTextString(m) } func (*GetGroupsInfoResp) ProtoMessage() {} func (*GetGroupsInfoResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_9fd4d73937974f0d, []int{5} + return fileDescriptor_group_ed07d0078ff66bfe, []int{5} } func (m *GetGroupsInfoResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetGroupsInfoResp.Unmarshal(m, b) @@ -383,7 +388,7 @@ func (m *SetGroupInfoReq) Reset() { *m = SetGroupInfoReq{} } func (m *SetGroupInfoReq) String() string { return proto.CompactTextString(m) } func (*SetGroupInfoReq) ProtoMessage() {} func (*SetGroupInfoReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_9fd4d73937974f0d, []int{6} + return fileDescriptor_group_ed07d0078ff66bfe, []int{6} } func (m *SetGroupInfoReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SetGroupInfoReq.Unmarshal(m, b) @@ -464,7 +469,7 @@ func (m *GetGroupApplicationListReq) Reset() { *m = GetGroupApplicationL func (m *GetGroupApplicationListReq) String() string { return proto.CompactTextString(m) } func (*GetGroupApplicationListReq) ProtoMessage() {} func (*GetGroupApplicationListReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_9fd4d73937974f0d, []int{7} + return fileDescriptor_group_ed07d0078ff66bfe, []int{7} } func (m *GetGroupApplicationListReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetGroupApplicationListReq.Unmarshal(m, b) @@ -524,7 +529,7 @@ func (m *GetGroupApplicationList_Data_User) Reset() { *m = GetGroupAppli func (m *GetGroupApplicationList_Data_User) String() string { return proto.CompactTextString(m) } func (*GetGroupApplicationList_Data_User) ProtoMessage() {} func (*GetGroupApplicationList_Data_User) Descriptor() ([]byte, []int) { - return fileDescriptor_group_9fd4d73937974f0d, []int{8} + return fileDescriptor_group_ed07d0078ff66bfe, []int{8} } func (m *GetGroupApplicationList_Data_User) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetGroupApplicationList_Data_User.Unmarshal(m, b) @@ -668,7 +673,7 @@ func (m *GetGroupApplicationListData) Reset() { *m = GetGroupApplication func (m *GetGroupApplicationListData) String() string { return proto.CompactTextString(m) } func (*GetGroupApplicationListData) ProtoMessage() {} func (*GetGroupApplicationListData) Descriptor() ([]byte, []int) { - return fileDescriptor_group_9fd4d73937974f0d, []int{9} + return fileDescriptor_group_ed07d0078ff66bfe, []int{9} } func (m *GetGroupApplicationListData) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetGroupApplicationListData.Unmarshal(m, b) @@ -715,7 +720,7 @@ func (m *GetGroupApplicationListResp) Reset() { *m = GetGroupApplication func (m *GetGroupApplicationListResp) String() string { return proto.CompactTextString(m) } func (*GetGroupApplicationListResp) ProtoMessage() {} func (*GetGroupApplicationListResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_9fd4d73937974f0d, []int{10} + return fileDescriptor_group_ed07d0078ff66bfe, []int{10} } func (m *GetGroupApplicationListResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetGroupApplicationListResp.Unmarshal(m, b) @@ -770,7 +775,7 @@ func (m *TransferGroupOwnerReq) Reset() { *m = TransferGroupOwnerReq{} } func (m *TransferGroupOwnerReq) String() string { return proto.CompactTextString(m) } func (*TransferGroupOwnerReq) ProtoMessage() {} func (*TransferGroupOwnerReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_9fd4d73937974f0d, []int{11} + return fileDescriptor_group_ed07d0078ff66bfe, []int{11} } func (m *TransferGroupOwnerReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_TransferGroupOwnerReq.Unmarshal(m, b) @@ -830,7 +835,7 @@ func (m *TransferGroupOwnerResp) Reset() { *m = TransferGroupOwnerResp{} func (m *TransferGroupOwnerResp) String() string { return proto.CompactTextString(m) } func (*TransferGroupOwnerResp) ProtoMessage() {} func (*TransferGroupOwnerResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_9fd4d73937974f0d, []int{12} + return fileDescriptor_group_ed07d0078ff66bfe, []int{12} } func (m *TransferGroupOwnerResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_TransferGroupOwnerResp.Unmarshal(m, b) @@ -878,7 +883,7 @@ func (m *JoinGroupReq) Reset() { *m = JoinGroupReq{} } func (m *JoinGroupReq) String() string { return proto.CompactTextString(m) } func (*JoinGroupReq) ProtoMessage() {} func (*JoinGroupReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_9fd4d73937974f0d, []int{13} + return fileDescriptor_group_ed07d0078ff66bfe, []int{13} } func (m *JoinGroupReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_JoinGroupReq.Unmarshal(m, b) @@ -951,7 +956,7 @@ func (m *GroupApplicationResponseReq) Reset() { *m = GroupApplicationRes func (m *GroupApplicationResponseReq) String() string { return proto.CompactTextString(m) } func (*GroupApplicationResponseReq) ProtoMessage() {} func (*GroupApplicationResponseReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_9fd4d73937974f0d, []int{14} + return fileDescriptor_group_ed07d0078ff66bfe, []int{14} } func (m *GroupApplicationResponseReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupApplicationResponseReq.Unmarshal(m, b) @@ -1088,7 +1093,7 @@ func (m *GroupApplicationResponseResp) Reset() { *m = GroupApplicationRe func (m *GroupApplicationResponseResp) String() string { return proto.CompactTextString(m) } func (*GroupApplicationResponseResp) ProtoMessage() {} func (*GroupApplicationResponseResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_9fd4d73937974f0d, []int{15} + return fileDescriptor_group_ed07d0078ff66bfe, []int{15} } func (m *GroupApplicationResponseResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupApplicationResponseResp.Unmarshal(m, b) @@ -1136,7 +1141,7 @@ func (m *SetOwnerGroupNickNameReq) Reset() { *m = SetOwnerGroupNickNameR func (m *SetOwnerGroupNickNameReq) String() string { return proto.CompactTextString(m) } func (*SetOwnerGroupNickNameReq) ProtoMessage() {} func (*SetOwnerGroupNickNameReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_9fd4d73937974f0d, []int{16} + return fileDescriptor_group_ed07d0078ff66bfe, []int{16} } func (m *SetOwnerGroupNickNameReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SetOwnerGroupNickNameReq.Unmarshal(m, b) @@ -1197,7 +1202,7 @@ func (m *QuitGroupReq) Reset() { *m = QuitGroupReq{} } func (m *QuitGroupReq) String() string { return proto.CompactTextString(m) } func (*QuitGroupReq) ProtoMessage() {} func (*QuitGroupReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_9fd4d73937974f0d, []int{17} + return fileDescriptor_group_ed07d0078ff66bfe, []int{17} } func (m *QuitGroupReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_QuitGroupReq.Unmarshal(m, b) @@ -1257,7 +1262,7 @@ func (m *GroupApplicationUserInfo) Reset() { *m = GroupApplicationUserIn func (m *GroupApplicationUserInfo) String() string { return proto.CompactTextString(m) } func (*GroupApplicationUserInfo) ProtoMessage() {} func (*GroupApplicationUserInfo) Descriptor() ([]byte, []int) { - return fileDescriptor_group_9fd4d73937974f0d, []int{18} + return fileDescriptor_group_ed07d0078ff66bfe, []int{18} } func (m *GroupApplicationUserInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupApplicationUserInfo.Unmarshal(m, b) @@ -1355,7 +1360,7 @@ func (m *GroupMemberFullInfo) Reset() { *m = GroupMemberFullInfo{} } func (m *GroupMemberFullInfo) String() string { return proto.CompactTextString(m) } func (*GroupMemberFullInfo) ProtoMessage() {} func (*GroupMemberFullInfo) Descriptor() ([]byte, []int) { - return fileDescriptor_group_9fd4d73937974f0d, []int{19} + return fileDescriptor_group_ed07d0078ff66bfe, []int{19} } func (m *GroupMemberFullInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupMemberFullInfo.Unmarshal(m, b) @@ -1425,7 +1430,7 @@ func (m *GetGroupMemberListReq) Reset() { *m = GetGroupMemberListReq{} } func (m *GetGroupMemberListReq) String() string { return proto.CompactTextString(m) } func (*GetGroupMemberListReq) ProtoMessage() {} func (*GetGroupMemberListReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_9fd4d73937974f0d, []int{20} + return fileDescriptor_group_ed07d0078ff66bfe, []int{20} } func (m *GetGroupMemberListReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetGroupMemberListReq.Unmarshal(m, b) @@ -1494,7 +1499,7 @@ func (m *GetGroupMemberListResp) Reset() { *m = GetGroupMemberListResp{} func (m *GetGroupMemberListResp) String() string { return proto.CompactTextString(m) } func (*GetGroupMemberListResp) ProtoMessage() {} func (*GetGroupMemberListResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_9fd4d73937974f0d, []int{21} + return fileDescriptor_group_ed07d0078ff66bfe, []int{21} } func (m *GetGroupMemberListResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetGroupMemberListResp.Unmarshal(m, b) @@ -1556,7 +1561,7 @@ func (m *GetGroupMembersInfoReq) Reset() { *m = GetGroupMembersInfoReq{} func (m *GetGroupMembersInfoReq) String() string { return proto.CompactTextString(m) } func (*GetGroupMembersInfoReq) ProtoMessage() {} func (*GetGroupMembersInfoReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_9fd4d73937974f0d, []int{22} + return fileDescriptor_group_ed07d0078ff66bfe, []int{22} } func (m *GetGroupMembersInfoReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetGroupMembersInfoReq.Unmarshal(m, b) @@ -1617,7 +1622,7 @@ func (m *GetGroupMembersInfoResp) Reset() { *m = GetGroupMembersInfoResp func (m *GetGroupMembersInfoResp) String() string { return proto.CompactTextString(m) } func (*GetGroupMembersInfoResp) ProtoMessage() {} func (*GetGroupMembersInfoResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_9fd4d73937974f0d, []int{23} + return fileDescriptor_group_ed07d0078ff66bfe, []int{23} } func (m *GetGroupMembersInfoResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetGroupMembersInfoResp.Unmarshal(m, b) @@ -1673,7 +1678,7 @@ func (m *KickGroupMemberReq) Reset() { *m = KickGroupMemberReq{} } func (m *KickGroupMemberReq) String() string { return proto.CompactTextString(m) } func (*KickGroupMemberReq) ProtoMessage() {} func (*KickGroupMemberReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_9fd4d73937974f0d, []int{24} + return fileDescriptor_group_ed07d0078ff66bfe, []int{24} } func (m *KickGroupMemberReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_KickGroupMemberReq.Unmarshal(m, b) @@ -1740,7 +1745,7 @@ func (m *Id2Result) Reset() { *m = Id2Result{} } func (m *Id2Result) String() string { return proto.CompactTextString(m) } func (*Id2Result) ProtoMessage() {} func (*Id2Result) Descriptor() ([]byte, []int) { - return fileDescriptor_group_9fd4d73937974f0d, []int{25} + return fileDescriptor_group_ed07d0078ff66bfe, []int{25} } func (m *Id2Result) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_Id2Result.Unmarshal(m, b) @@ -1787,7 +1792,7 @@ func (m *KickGroupMemberResp) Reset() { *m = KickGroupMemberResp{} } func (m *KickGroupMemberResp) String() string { return proto.CompactTextString(m) } func (*KickGroupMemberResp) ProtoMessage() {} func (*KickGroupMemberResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_9fd4d73937974f0d, []int{26} + return fileDescriptor_group_ed07d0078ff66bfe, []int{26} } func (m *KickGroupMemberResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_KickGroupMemberResp.Unmarshal(m, b) @@ -1840,7 +1845,7 @@ func (m *GetJoinedGroupListReq) Reset() { *m = GetJoinedGroupListReq{} } func (m *GetJoinedGroupListReq) String() string { return proto.CompactTextString(m) } func (*GetJoinedGroupListReq) ProtoMessage() {} func (*GetJoinedGroupListReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_9fd4d73937974f0d, []int{27} + return fileDescriptor_group_ed07d0078ff66bfe, []int{27} } func (m *GetJoinedGroupListReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetJoinedGroupListReq.Unmarshal(m, b) @@ -1892,7 +1897,7 @@ func (m *GroupInfo) Reset() { *m = GroupInfo{} } func (m *GroupInfo) String() string { return proto.CompactTextString(m) } func (*GroupInfo) ProtoMessage() {} func (*GroupInfo) Descriptor() ([]byte, []int) { - return fileDescriptor_group_9fd4d73937974f0d, []int{28} + return fileDescriptor_group_ed07d0078ff66bfe, []int{28} } func (m *GroupInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupInfo.Unmarshal(m, b) @@ -1981,7 +1986,7 @@ func (m *GetJoinedGroupListResp) Reset() { *m = GetJoinedGroupListResp{} func (m *GetJoinedGroupListResp) String() string { return proto.CompactTextString(m) } func (*GetJoinedGroupListResp) ProtoMessage() {} func (*GetJoinedGroupListResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_9fd4d73937974f0d, []int{29} + return fileDescriptor_group_ed07d0078ff66bfe, []int{29} } func (m *GetJoinedGroupListResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetJoinedGroupListResp.Unmarshal(m, b) @@ -2037,7 +2042,7 @@ func (m *InviteUserToGroupReq) Reset() { *m = InviteUserToGroupReq{} } func (m *InviteUserToGroupReq) String() string { return proto.CompactTextString(m) } func (*InviteUserToGroupReq) ProtoMessage() {} func (*InviteUserToGroupReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_9fd4d73937974f0d, []int{30} + return fileDescriptor_group_ed07d0078ff66bfe, []int{30} } func (m *InviteUserToGroupReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_InviteUserToGroupReq.Unmarshal(m, b) @@ -2105,7 +2110,7 @@ func (m *InviteUserToGroupResp) Reset() { *m = InviteUserToGroupResp{} } func (m *InviteUserToGroupResp) String() string { return proto.CompactTextString(m) } func (*InviteUserToGroupResp) ProtoMessage() {} func (*InviteUserToGroupResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_9fd4d73937974f0d, []int{31} + return fileDescriptor_group_ed07d0078ff66bfe, []int{31} } func (m *InviteUserToGroupResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_InviteUserToGroupResp.Unmarshal(m, b) @@ -2159,7 +2164,7 @@ func (m *GetGroupAllMemberReq) Reset() { *m = GetGroupAllMemberReq{} } func (m *GetGroupAllMemberReq) String() string { return proto.CompactTextString(m) } func (*GetGroupAllMemberReq) ProtoMessage() {} func (*GetGroupAllMemberReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_9fd4d73937974f0d, []int{32} + return fileDescriptor_group_ed07d0078ff66bfe, []int{32} } func (m *GetGroupAllMemberReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetGroupAllMemberReq.Unmarshal(m, b) @@ -2213,7 +2218,7 @@ func (m *GetGroupAllMemberResp) Reset() { *m = GetGroupAllMemberResp{} } func (m *GetGroupAllMemberResp) String() string { return proto.CompactTextString(m) } func (*GetGroupAllMemberResp) ProtoMessage() {} func (*GetGroupAllMemberResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_9fd4d73937974f0d, []int{33} + return fileDescriptor_group_ed07d0078ff66bfe, []int{33} } func (m *GetGroupAllMemberResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetGroupAllMemberResp.Unmarshal(m, b) @@ -2291,116 +2296,619 @@ func init() { proto.RegisterType((*GetGroupAllMemberResp)(nil), "group.GetGroupAllMemberResp") } -func init() { proto.RegisterFile("group/group.proto", fileDescriptor_group_9fd4d73937974f0d) } - -var fileDescriptor_group_9fd4d73937974f0d = []byte{ - // 1717 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x59, 0xcd, 0x6e, 0xdc, 0x46, - 0x12, 0x06, 0x67, 0x38, 0x92, 0xa6, 0xf4, 0xdf, 0xb2, 0x64, 0xee, 0x58, 0x2b, 0xc8, 0xbd, 0xc6, - 0x42, 0xd8, 0x83, 0x17, 0x90, 0x91, 0x00, 0x4e, 0x7c, 0x88, 0x2d, 0x59, 0xb2, 0x9c, 0x58, 0xb2, - 0x29, 0xf9, 0x92, 0x8b, 0x4d, 0x0f, 0x5b, 0x63, 0x5a, 0x33, 0xe4, 0x88, 0xe4, 0xc4, 0x4e, 0x2e, - 0x81, 0x83, 0x00, 0xf9, 0x43, 0x90, 0x83, 0x4f, 0x49, 0x5e, 0x20, 0xa7, 0x3c, 0x41, 0xde, 0x26, - 0x2f, 0x12, 0x74, 0xf5, 0x0f, 0x9b, 0x7f, 0x23, 0x43, 0x0a, 0xe2, 0xcb, 0x80, 0x55, 0x5d, 0xdd, - 0x5d, 0x55, 0x5d, 0xf5, 0x75, 0x55, 0x0f, 0x2c, 0xf6, 0xe2, 0x68, 0x34, 0xfc, 0x3f, 0xfe, 0x5e, - 0x1f, 0xc6, 0x51, 0x1a, 0x91, 0x16, 0x12, 0x74, 0x07, 0x60, 0x2b, 0x1a, 0x0c, 0xa2, 0xd0, 0x65, - 0xc9, 0x90, 0xac, 0x42, 0xfb, 0x6e, 0x1c, 0x47, 0xf1, 0x56, 0xe4, 0x33, 0xc7, 0x5a, 0xb7, 0x36, - 0x5a, 0x6e, 0xc6, 0x20, 0x1d, 0x98, 0x42, 0xe2, 0x41, 0xd2, 0x73, 0x1a, 0xeb, 0xd6, 0x46, 0xdb, - 0xd5, 0x34, 0x7d, 0xd3, 0x80, 0xb9, 0xad, 0x98, 0x79, 0x29, 0xdb, 0xe5, 0xeb, 0xba, 0xec, 0x94, - 0xdc, 0x04, 0x18, 0xb0, 0xc1, 0x33, 0x16, 0x7f, 0x12, 0x24, 0xa9, 0x63, 0xad, 0x37, 0x37, 0xa6, - 0x37, 0xff, 0x75, 0x5d, 0xe8, 0x80, 0x42, 0xb7, 0x7d, 0xff, 0x01, 0x0a, 0xec, 0x85, 0xc7, 0x91, - 0x6b, 0x08, 0x73, 0x3d, 0x50, 0x6e, 0xdf, 0x1b, 0x30, 0xb9, 0x55, 0xc6, 0x20, 0x14, 0x66, 0x82, - 0x30, 0x8d, 0x23, 0x7f, 0xd4, 0x4d, 0x83, 0x28, 0x74, 0x9a, 0x28, 0x90, 0xe3, 0x71, 0x99, 0x30, - 0x4a, 0x83, 0xe3, 0xa0, 0xeb, 0xa1, 0x8c, 0x2d, 0x64, 0x4c, 0x1e, 0x71, 0x60, 0xf2, 0xd8, 0xeb, - 0xb2, 0xc7, 0x71, 0xdf, 0x69, 0xe1, 0xb0, 0x22, 0xc9, 0x25, 0x68, 0xa5, 0xd1, 0x09, 0x0b, 0x9d, - 0x09, 0xe4, 0x0b, 0x82, 0xac, 0xc3, 0x74, 0x34, 0x64, 0x31, 0x4e, 0xde, 0xdb, 0x76, 0x26, 0x71, - 0xcc, 0x64, 0x91, 0x39, 0x68, 0xb0, 0x57, 0xce, 0x14, 0x0e, 0x34, 0xd8, 0x2b, 0xfa, 0x11, 0x90, - 0xb2, 0xa5, 0x64, 0x01, 0x9a, 0xa3, 0xc0, 0x47, 0xff, 0xb6, 0x5d, 0xfe, 0xc9, 0x35, 0x49, 0x58, - 0xea, 0x46, 0x7d, 0x61, 0x6d, 0xcb, 0x55, 0x24, 0x65, 0x30, 0x9f, 0x73, 0xeb, 0x45, 0x0e, 0x89, - 0x6f, 0x83, 0x5e, 0xdc, 0xdb, 0x96, 0x3e, 0x53, 0x24, 0xed, 0xc3, 0xc2, 0x2e, 0x4b, 0x71, 0x8f, - 0x04, 0x4f, 0x83, 0x9d, 0x72, 0x73, 0xe5, 0xb0, 0x3e, 0xc0, 0xb6, 0x6b, 0xb2, 0x32, 0x37, 0x35, - 0xc6, 0xb8, 0xa9, 0x59, 0x72, 0x13, 0x4d, 0x60, 0xb1, 0xb0, 0xdb, 0x85, 0xcc, 0xba, 0x06, 0xb6, - 0xef, 0xa5, 0x9e, 0xd3, 0xc4, 0x10, 0x5b, 0x30, 0x43, 0x0c, 0x57, 0xc7, 0x51, 0xfa, 0xa7, 0x05, - 0xf3, 0x87, 0x72, 0x57, 0x65, 0xa2, 0xe1, 0x10, 0x2b, 0xe7, 0x90, 0xb3, 0x23, 0x30, 0x17, 0x5d, - 0xcd, 0x8a, 0xe8, 0x2a, 0x46, 0xa9, 0x5d, 0x11, 0xa5, 0x7f, 0x7b, 0x04, 0xd2, 0x87, 0xd0, 0x51, - 0xae, 0xbd, 0x3d, 0x1c, 0xf6, 0xa5, 0x32, 0xfc, 0xb4, 0xb8, 0xbd, 0x0b, 0xd0, 0x7c, 0xac, 0x6d, - 0xe5, 0x9f, 0x7c, 0xc5, 0x03, 0x63, 0x45, 0x61, 0xa9, 0xc9, 0xa2, 0x3f, 0xdb, 0x70, 0xb5, 0x66, - 0xc9, 0x27, 0xdb, 0x5e, 0xea, 0x3d, 0x79, 0x9c, 0xb0, 0x98, 0x47, 0xbe, 0x5e, 0xb8, 0xb1, 0xb7, - 0xcd, 0x2d, 0xdb, 0x95, 0x9e, 0x15, 0x6b, 0x2a, 0x92, 0xac, 0x01, 0xec, 0xc4, 0xd1, 0x80, 0xcf, - 0xd2, 0xd1, 0x61, 0x70, 0xf8, 0x49, 0x1f, 0x45, 0x72, 0x54, 0xf8, 0x4c, 0xd3, 0x84, 0x80, 0xbd, - 0xd3, 0xf7, 0x7a, 0xe8, 0xac, 0x96, 0x8b, 0xdf, 0x7c, 0x3d, 0x97, 0x9d, 0x8e, 0x58, 0x92, 0xf2, - 0xd8, 0x10, 0xee, 0x32, 0x38, 0x7c, 0xfc, 0x9e, 0x17, 0xfa, 0x7d, 0xe6, 0xf3, 0x71, 0xe1, 0x32, - 0x83, 0xc3, 0x35, 0xbd, 0xed, 0xfb, 0x47, 0xc1, 0x80, 0x61, 0xe2, 0x36, 0x5d, 0x45, 0x92, 0xff, - 0xc1, 0x82, 0xd2, 0x6b, 0x3f, 0xe8, 0x9e, 0x84, 0x3c, 0x14, 0xda, 0x38, 0xbf, 0xc4, 0x27, 0xff, - 0x85, 0x39, 0xa1, 0xa5, 0x96, 0x04, 0x94, 0x2c, 0x70, 0xc9, 0x06, 0xcc, 0xab, 0xb9, 0x3b, 0xf2, - 0xe4, 0xa7, 0x51, 0xb0, 0xc8, 0x26, 0xd7, 0x60, 0x56, 0xcc, 0x55, 0x72, 0x33, 0x28, 0x97, 0x67, - 0xf2, 0xf3, 0x93, 0xb6, 0x70, 0xae, 0x33, 0x2b, 0xce, 0xcf, 0x60, 0x71, 0x9f, 0x1d, 0x7d, 0x3e, - 0x64, 0xce, 0x9c, 0xf0, 0x19, 0xff, 0xe6, 0xb1, 0x29, 0x44, 0x0e, 0x53, 0x2f, 0x1d, 0x25, 0xce, - 0x3c, 0x8e, 0xe5, 0x78, 0x99, 0x8c, 0xcb, 0x92, 0x51, 0x3f, 0x75, 0x16, 0x4c, 0x19, 0xc1, 0xa3, - 0xa7, 0x70, 0xa5, 0x26, 0x34, 0x78, 0x64, 0xf0, 0x20, 0xde, 0x8a, 0x46, 0x61, 0x2a, 0xd3, 0x59, - 0x10, 0xe4, 0x16, 0xd8, 0xa8, 0x6b, 0x03, 0xd3, 0x75, 0x43, 0xa5, 0xeb, 0x59, 0x21, 0xe6, 0xe2, - 0x2c, 0xfa, 0x8d, 0x55, 0xbb, 0x27, 0xc2, 0x88, 0x03, 0x93, 0x77, 0x63, 0x13, 0x44, 0x14, 0x49, - 0x56, 0x60, 0xe2, 0x6e, 0x6c, 0x00, 0x88, 0xa4, 0xc8, 0xfb, 0x60, 0x6f, 0x0b, 0xf8, 0xb0, 0x36, - 0xa6, 0x37, 0xe9, 0x78, 0x7d, 0xb8, 0xa4, 0x8b, 0xf2, 0xf4, 0x07, 0x0b, 0x96, 0x8f, 0x62, 0x2f, - 0x4c, 0x8e, 0x59, 0x8c, 0xa2, 0x07, 0x2f, 0x43, 0x16, 0x4b, 0x58, 0xd9, 0xcd, 0xc3, 0x8a, 0x0a, - 0xfe, 0x0e, 0x4c, 0x1d, 0xf4, 0x7d, 0x14, 0x54, 0x30, 0xa6, 0x68, 0x3e, 0xb6, 0xcf, 0x5e, 0x8a, - 0x31, 0x91, 0x16, 0x9a, 0x2e, 0xa6, 0xa9, 0x5d, 0x4e, 0xd3, 0xfb, 0xb0, 0x52, 0xa5, 0xcc, 0x79, - 0x3c, 0x42, 0xbf, 0x80, 0x99, 0xfb, 0x51, 0x10, 0xea, 0x9b, 0xbc, 0x1e, 0x26, 0x1d, 0x98, 0x1c, - 0xb0, 0x24, 0xf1, 0x7a, 0x0a, 0x24, 0x15, 0x99, 0x01, 0x58, 0xb3, 0x00, 0x60, 0x67, 0xd8, 0xf1, - 0x9d, 0x0d, 0x57, 0x8a, 0x8e, 0xe7, 0x66, 0x44, 0x61, 0xc2, 0xe4, 0xad, 0x64, 0xae, 0x60, 0x95, - 0x56, 0xe0, 0x3a, 0xa1, 0xf1, 0x19, 0xf4, 0x48, 0xd2, 0x3c, 0x97, 0xe6, 0x38, 0x50, 0xb2, 0x4b, - 0xa0, 0x54, 0x80, 0x02, 0xbc, 0x15, 0x5a, 0x65, 0x28, 0xd8, 0xaf, 0x49, 0xf1, 0x89, 0xea, 0x14, - 0x37, 0xa1, 0x6e, 0xb2, 0x00, 0x75, 0x39, 0x40, 0xc1, 0xfd, 0xa6, 0x8a, 0x80, 0x82, 0xbb, 0x95, - 0x60, 0xa2, 0x5d, 0x05, 0x13, 0x06, 0xc8, 0x41, 0x1e, 0xe4, 0xf2, 0xf0, 0x39, 0x7d, 0x06, 0x7c, - 0xce, 0x94, 0xe0, 0x53, 0xc1, 0xcb, 0xec, 0x18, 0x78, 0x99, 0x7b, 0x0b, 0x78, 0x99, 0xaf, 0x80, - 0x97, 0x87, 0xb0, 0x5a, 0x1f, 0x0a, 0xe7, 0x8a, 0xec, 0x6f, 0x2d, 0x70, 0x0e, 0x59, 0x8a, 0x01, - 0x81, 0x4b, 0x2b, 0x3f, 0x8e, 0x0f, 0xf3, 0x0e, 0x4c, 0x85, 0xea, 0x18, 0x64, 0xda, 0x2a, 0xba, - 0x18, 0x90, 0xcd, 0x72, 0x40, 0xea, 0x54, 0xb0, 0x8d, 0x54, 0xa0, 0x4f, 0x61, 0xe6, 0xd1, 0x28, - 0x48, 0xdf, 0x22, 0xc9, 0x0a, 0xb7, 0x7e, 0xa3, 0x5c, 0x77, 0x56, 0x26, 0x1b, 0xfd, 0xba, 0x01, - 0x4e, 0xd1, 0x7f, 0x18, 0x5d, 0xbc, 0x08, 0xad, 0xdf, 0x4e, 0x96, 0xa7, 0x8d, 0xac, 0x3c, 0x25, - 0x60, 0xe3, 0x95, 0x26, 0x56, 0xc7, 0x6f, 0xce, 0x0b, 0xba, 0xba, 0xac, 0xc1, 0x6f, 0xee, 0xf5, - 0x98, 0x9d, 0x72, 0xaf, 0x8b, 0xdc, 0x90, 0x14, 0xcf, 0x08, 0x2f, 0x53, 0x01, 0xa3, 0x70, 0x02, - 0xa3, 0xb0, 0xc8, 0xe6, 0xab, 0x1e, 0xf3, 0x0b, 0x7e, 0x52, 0x44, 0xd3, 0xb1, 0xbc, 0xe0, 0x85, - 0xad, 0x11, 0xcf, 0x13, 0x91, 0x05, 0x06, 0x87, 0x8f, 0x3f, 0xcf, 0x22, 0x54, 0x84, 0xbf, 0xc1, - 0xa1, 0x6f, 0x2c, 0x58, 0x42, 0x37, 0x88, 0x12, 0x7c, 0x67, 0xd4, 0xef, 0xa3, 0x07, 0x56, 0x60, - 0x62, 0xc4, 0xbd, 0xa1, 0x2a, 0x71, 0x49, 0x71, 0x1d, 0xe2, 0xac, 0x12, 0xc7, 0x6f, 0x1e, 0x00, - 0x2f, 0xa2, 0x40, 0xa8, 0xce, 0xbd, 0x60, 0xbb, 0x9a, 0xce, 0x05, 0x87, 0x5d, 0x08, 0x8e, 0xda, - 0x02, 0x8f, 0xfe, 0x6a, 0xc1, 0xb2, 0xba, 0x63, 0x1e, 0xe8, 0xce, 0x67, 0x7c, 0x20, 0x9c, 0xb3, - 0xde, 0xe6, 0x96, 0x1e, 0x07, 0xfd, 0x94, 0xc5, 0xa8, 0x5f, 0xcb, 0x95, 0x14, 0xdf, 0x29, 0x64, - 0xaf, 0xd2, 0x43, 0x76, 0x2a, 0x2b, 0x2a, 0x45, 0xd2, 0xdf, 0x2c, 0x58, 0xa9, 0xd2, 0x4e, 0xd4, - 0xe9, 0xac, 0x58, 0xa7, 0x33, 0xb3, 0x4e, 0x67, 0x85, 0x3a, 0x5d, 0xd1, 0xe4, 0x83, 0x5c, 0x43, - 0x28, 0xaa, 0xf5, 0x8e, 0x59, 0xad, 0xe7, 0x0f, 0x28, 0xd7, 0x11, 0x1a, 0xaa, 0xda, 0x79, 0x55, - 0xbf, 0x2f, 0xa9, 0x9a, 0x9c, 0x5d, 0xde, 0xaf, 0xe5, 0x54, 0x69, 0x60, 0x6b, 0x63, 0x6e, 0x57, - 0x7b, 0x7b, 0x45, 0xe5, 0xdb, 0xcb, 0x2c, 0xbf, 0x7f, 0xb2, 0xe0, 0x72, 0xa5, 0x32, 0xef, 0xca, - 0x71, 0xf4, 0x0f, 0x0b, 0xc8, 0xc7, 0x41, 0xf7, 0xc4, 0x90, 0x1b, 0xef, 0x9a, 0x5b, 0x30, 0x3d, - 0x0a, 0x7c, 0x3e, 0x97, 0xaf, 0x25, 0xab, 0xb4, 0x71, 0xbb, 0x99, 0xe2, 0x02, 0x02, 0xbc, 0x44, - 0xf7, 0x44, 0x92, 0xaa, 0xc6, 0xc0, 0xa2, 0x43, 0x5b, 0x65, 0x87, 0xbe, 0x07, 0xed, 0x3d, 0x7f, - 0x53, 0xdc, 0x07, 0x88, 0x4c, 0x7b, 0x59, 0xe3, 0xbc, 0xe7, 0x8b, 0xed, 0xf0, 0xfe, 0x10, 0xd9, - 0x2a, 0x29, 0xfa, 0x25, 0x2c, 0x95, 0x8c, 0xbe, 0xd0, 0x11, 0x5c, 0x87, 0x76, 0xe0, 0x6f, 0xca, - 0xbd, 0xf2, 0x8d, 0xa6, 0xd6, 0xcf, 0xcd, 0x44, 0xe8, 0x01, 0x2c, 0xf7, 0x58, 0xca, 0xab, 0x28, - 0xe6, 0xa3, 0x16, 0x2a, 0xbb, 0xb5, 0x23, 0xac, 0x31, 0x8e, 0x28, 0x43, 0x3c, 0x7d, 0xdd, 0x80, - 0xb6, 0xee, 0x5d, 0xb3, 0xe3, 0xf3, 0xf3, 0xc7, 0xe7, 0xbf, 0xf3, 0xc6, 0x75, 0x0d, 0xa0, 0x8b, - 0x0f, 0x16, 0x1a, 0xe6, 0x6d, 0xd7, 0xe0, 0xf0, 0x99, 0x11, 0x96, 0x63, 0xbe, 0x2c, 0x79, 0x14, - 0xc9, 0x7d, 0x20, 0xe2, 0x56, 0xf4, 0x0c, 0x1c, 0xe8, 0x67, 0x5d, 0x93, 0x45, 0xbf, 0xb2, 0x60, - 0xa5, 0xca, 0xab, 0x17, 0x3d, 0xd9, 0x9e, 0x5a, 0xaa, 0xf6, 0x09, 0x21, 0x13, 0xa1, 0xbf, 0x58, - 0x70, 0x29, 0x08, 0x3f, 0x0b, 0x52, 0xc6, 0xef, 0xd2, 0xa3, 0x48, 0x5f, 0xe0, 0xe7, 0x3c, 0xd9, - 0xfa, 0x57, 0x19, 0x23, 0x99, 0xec, 0x5c, 0x32, 0x39, 0x30, 0x29, 0x73, 0xce, 0x69, 0x21, 0x74, - 0x29, 0x92, 0xbe, 0xb6, 0x60, 0xb9, 0x42, 0xb9, 0x7f, 0x34, 0xf4, 0x9f, 0xc3, 0x25, 0xdd, 0x3c, - 0xf5, 0xfb, 0x6f, 0x03, 0x39, 0xe7, 0x7d, 0x47, 0xfa, 0xd1, 0xb8, 0x43, 0x8d, 0xad, 0xde, 0x15, - 0xd6, 0x6e, 0xfe, 0x3e, 0x05, 0xe2, 0x59, 0x95, 0x83, 0x68, 0x37, 0x7b, 0xb6, 0x23, 0xcb, 0x72, - 0x81, 0xfc, 0x0b, 0x69, 0x67, 0xa5, 0x8a, 0x9d, 0x0c, 0xc9, 0x0d, 0x68, 0xbf, 0x50, 0xfd, 0x17, - 0x59, 0x92, 0x42, 0x66, 0x47, 0xd6, 0x59, 0x54, 0x33, 0xb3, 0xb7, 0xdb, 0x1b, 0xd0, 0x3e, 0x55, - 0xf5, 0xa4, 0x9e, 0x64, 0x56, 0x98, 0x55, 0x93, 0xee, 0xc0, 0x6c, 0xcf, 0x7c, 0x89, 0x23, 0x97, - 0x0b, 0xed, 0xaf, 0xba, 0x4b, 0x3b, 0x4e, 0xf5, 0x40, 0x32, 0x24, 0x37, 0x61, 0x26, 0x31, 0xde, - 0xd5, 0x88, 0xb2, 0xaa, 0xf0, 0xd8, 0x56, 0xb5, 0xfd, 0x53, 0xb8, 0xdc, 0xab, 0xee, 0xb3, 0xc9, - 0xd5, 0xf1, 0x7d, 0x38, 0x5f, 0x90, 0x9e, 0x25, 0x92, 0x0c, 0xc9, 0x23, 0x20, 0x69, 0xa9, 0x2d, - 0x26, 0xab, 0x72, 0x66, 0x65, 0xfb, 0xde, 0xf9, 0xf7, 0x98, 0xd1, 0x64, 0x48, 0xba, 0xe0, 0xf4, - 0x6a, 0xba, 0x12, 0x42, 0x73, 0xef, 0xdb, 0x95, 0x1d, 0x6c, 0xe7, 0x3f, 0x67, 0xca, 0x08, 0xbd, - 0x7b, 0xa5, 0xfa, 0x4b, 0xeb, 0x5d, 0x59, 0x38, 0x6a, 0xbd, 0x6b, 0x0a, 0xb7, 0x23, 0x58, 0xea, - 0x95, 0x4b, 0x13, 0x52, 0x3d, 0x4b, 0x9f, 0xfb, 0xda, 0xb8, 0xe1, 0x64, 0x48, 0xee, 0xc1, 0xfc, - 0x49, 0xfe, 0xa6, 0x25, 0xea, 0x91, 0xbf, 0x5c, 0x76, 0x74, 0x3a, 0x75, 0x43, 0xda, 0xe4, 0x02, - 0xb8, 0x6b, 0x93, 0x2b, 0x6f, 0x53, 0x6d, 0x72, 0xcd, 0xad, 0xb0, 0x0f, 0x8b, 0x25, 0x34, 0x24, - 0x57, 0xe4, 0x9c, 0x2a, 0x10, 0xef, 0xac, 0xd6, 0x0f, 0x8a, 0xf5, 0x7a, 0x45, 0xbc, 0xd1, 0xeb, - 0x55, 0x81, 0x5e, 0x67, 0xb5, 0x7e, 0x30, 0x19, 0xde, 0x99, 0xfd, 0x54, 0xbc, 0xa7, 0x7f, 0x88, - 0xbf, 0xcf, 0x26, 0xf0, 0xaf, 0x99, 0x1b, 0x7f, 0x05, 0x00, 0x00, 0xff, 0xff, 0x31, 0x19, 0x23, - 0x3c, 0xaf, 0x19, 0x00, 0x00, +// 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 Group service + +type GroupClient interface { + CreateGroup(ctx context.Context, in *CreateGroupReq, opts ...grpc.CallOption) (*CreateGroupResp, error) + JoinGroup(ctx context.Context, in *JoinGroupReq, opts ...grpc.CallOption) (*CommonResp, error) + QuitGroup(ctx context.Context, in *QuitGroupReq, opts ...grpc.CallOption) (*CommonResp, error) + GetGroupsInfo(ctx context.Context, in *GetGroupsInfoReq, opts ...grpc.CallOption) (*GetGroupsInfoResp, error) + SetGroupInfo(ctx context.Context, in *SetGroupInfoReq, opts ...grpc.CallOption) (*CommonResp, error) + GetGroupApplicationList(ctx context.Context, in *GetGroupApplicationListReq, opts ...grpc.CallOption) (*GetGroupApplicationListResp, error) + TransferGroupOwner(ctx context.Context, in *TransferGroupOwnerReq, opts ...grpc.CallOption) (*TransferGroupOwnerResp, error) + GroupApplicationResponse(ctx context.Context, in *GroupApplicationResponseReq, opts ...grpc.CallOption) (*GroupApplicationResponseResp, error) + // rpc setOwnerGroupNickName(SetOwnerGroupNickNameReq) returns(CommonResp); + GetGroupMemberList(ctx context.Context, in *GetGroupMemberListReq, opts ...grpc.CallOption) (*GetGroupMemberListResp, error) + GetGroupMembersInfo(ctx context.Context, in *GetGroupMembersInfoReq, opts ...grpc.CallOption) (*GetGroupMembersInfoResp, error) + KickGroupMember(ctx context.Context, in *KickGroupMemberReq, opts ...grpc.CallOption) (*KickGroupMemberResp, error) + GetJoinedGroupList(ctx context.Context, in *GetJoinedGroupListReq, opts ...grpc.CallOption) (*GetJoinedGroupListResp, error) + InviteUserToGroup(ctx context.Context, in *InviteUserToGroupReq, opts ...grpc.CallOption) (*InviteUserToGroupResp, error) + GetGroupAllMember(ctx context.Context, in *GetGroupAllMemberReq, opts ...grpc.CallOption) (*GetGroupAllMemberResp, error) +} + +type groupClient struct { + cc *grpc.ClientConn +} + +func NewGroupClient(cc *grpc.ClientConn) GroupClient { + return &groupClient{cc} +} + +func (c *groupClient) CreateGroup(ctx context.Context, in *CreateGroupReq, opts ...grpc.CallOption) (*CreateGroupResp, error) { + out := new(CreateGroupResp) + err := grpc.Invoke(ctx, "/group.group/createGroup", in, out, c.cc, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *groupClient) JoinGroup(ctx context.Context, in *JoinGroupReq, opts ...grpc.CallOption) (*CommonResp, error) { + out := new(CommonResp) + err := grpc.Invoke(ctx, "/group.group/joinGroup", in, out, c.cc, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *groupClient) QuitGroup(ctx context.Context, in *QuitGroupReq, opts ...grpc.CallOption) (*CommonResp, error) { + out := new(CommonResp) + err := grpc.Invoke(ctx, "/group.group/quitGroup", in, out, c.cc, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *groupClient) GetGroupsInfo(ctx context.Context, in *GetGroupsInfoReq, opts ...grpc.CallOption) (*GetGroupsInfoResp, error) { + out := new(GetGroupsInfoResp) + err := grpc.Invoke(ctx, "/group.group/getGroupsInfo", in, out, c.cc, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *groupClient) SetGroupInfo(ctx context.Context, in *SetGroupInfoReq, opts ...grpc.CallOption) (*CommonResp, error) { + out := new(CommonResp) + err := grpc.Invoke(ctx, "/group.group/setGroupInfo", in, out, c.cc, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *groupClient) GetGroupApplicationList(ctx context.Context, in *GetGroupApplicationListReq, opts ...grpc.CallOption) (*GetGroupApplicationListResp, error) { + out := new(GetGroupApplicationListResp) + err := grpc.Invoke(ctx, "/group.group/getGroupApplicationList", in, out, c.cc, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *groupClient) TransferGroupOwner(ctx context.Context, in *TransferGroupOwnerReq, opts ...grpc.CallOption) (*TransferGroupOwnerResp, error) { + out := new(TransferGroupOwnerResp) + err := grpc.Invoke(ctx, "/group.group/transferGroupOwner", in, out, c.cc, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *groupClient) GroupApplicationResponse(ctx context.Context, in *GroupApplicationResponseReq, opts ...grpc.CallOption) (*GroupApplicationResponseResp, error) { + out := new(GroupApplicationResponseResp) + err := grpc.Invoke(ctx, "/group.group/groupApplicationResponse", in, out, c.cc, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *groupClient) GetGroupMemberList(ctx context.Context, in *GetGroupMemberListReq, opts ...grpc.CallOption) (*GetGroupMemberListResp, error) { + out := new(GetGroupMemberListResp) + err := grpc.Invoke(ctx, "/group.group/getGroupMemberList", in, out, c.cc, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *groupClient) GetGroupMembersInfo(ctx context.Context, in *GetGroupMembersInfoReq, opts ...grpc.CallOption) (*GetGroupMembersInfoResp, error) { + out := new(GetGroupMembersInfoResp) + err := grpc.Invoke(ctx, "/group.group/getGroupMembersInfo", in, out, c.cc, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *groupClient) KickGroupMember(ctx context.Context, in *KickGroupMemberReq, opts ...grpc.CallOption) (*KickGroupMemberResp, error) { + out := new(KickGroupMemberResp) + err := grpc.Invoke(ctx, "/group.group/kickGroupMember", in, out, c.cc, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *groupClient) GetJoinedGroupList(ctx context.Context, in *GetJoinedGroupListReq, opts ...grpc.CallOption) (*GetJoinedGroupListResp, error) { + out := new(GetJoinedGroupListResp) + err := grpc.Invoke(ctx, "/group.group/getJoinedGroupList", in, out, c.cc, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *groupClient) InviteUserToGroup(ctx context.Context, in *InviteUserToGroupReq, opts ...grpc.CallOption) (*InviteUserToGroupResp, error) { + out := new(InviteUserToGroupResp) + err := grpc.Invoke(ctx, "/group.group/inviteUserToGroup", in, out, c.cc, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *groupClient) GetGroupAllMember(ctx context.Context, in *GetGroupAllMemberReq, opts ...grpc.CallOption) (*GetGroupAllMemberResp, error) { + out := new(GetGroupAllMemberResp) + err := grpc.Invoke(ctx, "/group.group/getGroupAllMember", in, out, c.cc, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +// Server API for Group service + +type GroupServer interface { + CreateGroup(context.Context, *CreateGroupReq) (*CreateGroupResp, error) + JoinGroup(context.Context, *JoinGroupReq) (*CommonResp, error) + QuitGroup(context.Context, *QuitGroupReq) (*CommonResp, error) + GetGroupsInfo(context.Context, *GetGroupsInfoReq) (*GetGroupsInfoResp, error) + SetGroupInfo(context.Context, *SetGroupInfoReq) (*CommonResp, error) + GetGroupApplicationList(context.Context, *GetGroupApplicationListReq) (*GetGroupApplicationListResp, error) + TransferGroupOwner(context.Context, *TransferGroupOwnerReq) (*TransferGroupOwnerResp, error) + GroupApplicationResponse(context.Context, *GroupApplicationResponseReq) (*GroupApplicationResponseResp, error) + // rpc setOwnerGroupNickName(SetOwnerGroupNickNameReq) returns(CommonResp); + GetGroupMemberList(context.Context, *GetGroupMemberListReq) (*GetGroupMemberListResp, error) + GetGroupMembersInfo(context.Context, *GetGroupMembersInfoReq) (*GetGroupMembersInfoResp, error) + KickGroupMember(context.Context, *KickGroupMemberReq) (*KickGroupMemberResp, error) + GetJoinedGroupList(context.Context, *GetJoinedGroupListReq) (*GetJoinedGroupListResp, error) + InviteUserToGroup(context.Context, *InviteUserToGroupReq) (*InviteUserToGroupResp, error) + GetGroupAllMember(context.Context, *GetGroupAllMemberReq) (*GetGroupAllMemberResp, error) +} + +func RegisterGroupServer(s *grpc.Server, srv GroupServer) { + s.RegisterService(&_Group_serviceDesc, srv) +} + +func _Group_CreateGroup_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(CreateGroupReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(GroupServer).CreateGroup(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/group.group/CreateGroup", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(GroupServer).CreateGroup(ctx, req.(*CreateGroupReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _Group_JoinGroup_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(JoinGroupReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(GroupServer).JoinGroup(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/group.group/JoinGroup", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(GroupServer).JoinGroup(ctx, req.(*JoinGroupReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _Group_QuitGroup_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(QuitGroupReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(GroupServer).QuitGroup(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/group.group/QuitGroup", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(GroupServer).QuitGroup(ctx, req.(*QuitGroupReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _Group_GetGroupsInfo_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetGroupsInfoReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(GroupServer).GetGroupsInfo(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/group.group/GetGroupsInfo", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(GroupServer).GetGroupsInfo(ctx, req.(*GetGroupsInfoReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _Group_SetGroupInfo_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(SetGroupInfoReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(GroupServer).SetGroupInfo(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/group.group/SetGroupInfo", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(GroupServer).SetGroupInfo(ctx, req.(*SetGroupInfoReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _Group_GetGroupApplicationList_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetGroupApplicationListReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(GroupServer).GetGroupApplicationList(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/group.group/GetGroupApplicationList", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(GroupServer).GetGroupApplicationList(ctx, req.(*GetGroupApplicationListReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _Group_TransferGroupOwner_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(TransferGroupOwnerReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(GroupServer).TransferGroupOwner(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/group.group/TransferGroupOwner", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(GroupServer).TransferGroupOwner(ctx, req.(*TransferGroupOwnerReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _Group_GroupApplicationResponse_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GroupApplicationResponseReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(GroupServer).GroupApplicationResponse(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/group.group/GroupApplicationResponse", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(GroupServer).GroupApplicationResponse(ctx, req.(*GroupApplicationResponseReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _Group_GetGroupMemberList_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetGroupMemberListReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(GroupServer).GetGroupMemberList(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/group.group/GetGroupMemberList", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(GroupServer).GetGroupMemberList(ctx, req.(*GetGroupMemberListReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _Group_GetGroupMembersInfo_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetGroupMembersInfoReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(GroupServer).GetGroupMembersInfo(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/group.group/GetGroupMembersInfo", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(GroupServer).GetGroupMembersInfo(ctx, req.(*GetGroupMembersInfoReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _Group_KickGroupMember_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(KickGroupMemberReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(GroupServer).KickGroupMember(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/group.group/KickGroupMember", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(GroupServer).KickGroupMember(ctx, req.(*KickGroupMemberReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _Group_GetJoinedGroupList_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetJoinedGroupListReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(GroupServer).GetJoinedGroupList(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/group.group/GetJoinedGroupList", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(GroupServer).GetJoinedGroupList(ctx, req.(*GetJoinedGroupListReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _Group_InviteUserToGroup_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(InviteUserToGroupReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(GroupServer).InviteUserToGroup(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/group.group/InviteUserToGroup", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(GroupServer).InviteUserToGroup(ctx, req.(*InviteUserToGroupReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _Group_GetGroupAllMember_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetGroupAllMemberReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(GroupServer).GetGroupAllMember(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/group.group/GetGroupAllMember", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(GroupServer).GetGroupAllMember(ctx, req.(*GetGroupAllMemberReq)) + } + return interceptor(ctx, in, info, handler) +} + +var _Group_serviceDesc = grpc.ServiceDesc{ + ServiceName: "group.group", + HandlerType: (*GroupServer)(nil), + Methods: []grpc.MethodDesc{ + { + MethodName: "createGroup", + Handler: _Group_CreateGroup_Handler, + }, + { + MethodName: "joinGroup", + Handler: _Group_JoinGroup_Handler, + }, + { + MethodName: "quitGroup", + Handler: _Group_QuitGroup_Handler, + }, + { + MethodName: "getGroupsInfo", + Handler: _Group_GetGroupsInfo_Handler, + }, + { + MethodName: "setGroupInfo", + Handler: _Group_SetGroupInfo_Handler, + }, + { + MethodName: "getGroupApplicationList", + Handler: _Group_GetGroupApplicationList_Handler, + }, + { + MethodName: "transferGroupOwner", + Handler: _Group_TransferGroupOwner_Handler, + }, + { + MethodName: "groupApplicationResponse", + Handler: _Group_GroupApplicationResponse_Handler, + }, + { + MethodName: "getGroupMemberList", + Handler: _Group_GetGroupMemberList_Handler, + }, + { + MethodName: "getGroupMembersInfo", + Handler: _Group_GetGroupMembersInfo_Handler, + }, + { + MethodName: "kickGroupMember", + Handler: _Group_KickGroupMember_Handler, + }, + { + MethodName: "getJoinedGroupList", + Handler: _Group_GetJoinedGroupList_Handler, + }, + { + MethodName: "inviteUserToGroup", + Handler: _Group_InviteUserToGroup_Handler, + }, + { + MethodName: "getGroupAllMember", + Handler: _Group_GetGroupAllMember_Handler, + }, + }, + Streams: []grpc.StreamDesc{}, + Metadata: "group/group.proto", +} + +func init() { proto.RegisterFile("group/group.proto", fileDescriptor_group_ed07d0078ff66bfe) } + +var fileDescriptor_group_ed07d0078ff66bfe = []byte{ + // 1718 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x59, 0xcd, 0x6e, 0xdc, 0xb6, + 0x13, 0x87, 0x76, 0xb5, 0xb6, 0x77, 0xfc, 0x4d, 0xc7, 0x8e, 0xfe, 0x8a, 0xff, 0x86, 0xc3, 0x06, + 0x85, 0xd1, 0x83, 0x0b, 0x38, 0x68, 0x81, 0xb4, 0x39, 0x34, 0xb1, 0x63, 0xc7, 0x69, 0x63, 0x27, + 0xb2, 0x73, 0xe9, 0x25, 0x51, 0x56, 0xf4, 0x46, 0xf1, 0xae, 0xb4, 0x96, 0xb4, 0x4d, 0xda, 0x4b, + 0x91, 0xa2, 0x40, 0xbf, 0x50, 0xf4, 0x90, 0x53, 0xdb, 0x17, 0xe8, 0xa9, 0x4f, 0xd0, 0xb7, 0xe9, + 0x8b, 0x14, 0x1c, 0x92, 0x12, 0xf5, 0xb5, 0x1b, 0xd8, 0x45, 0x73, 0x59, 0x68, 0x86, 0x43, 0x72, + 0x66, 0x38, 0xf3, 0xe3, 0x0c, 0x17, 0x16, 0xbb, 0x51, 0x38, 0x1c, 0xbc, 0x8f, 0xbf, 0x9b, 0x83, + 0x28, 0x4c, 0x42, 0xd2, 0x42, 0x82, 0xee, 0x02, 0x6c, 0x87, 0xfd, 0x7e, 0x18, 0x38, 0x2c, 0x1e, + 0x90, 0x55, 0x68, 0xdf, 0x89, 0xa2, 0x30, 0xda, 0x0e, 0x3d, 0x66, 0x19, 0xeb, 0xc6, 0x46, 0xcb, + 0xc9, 0x18, 0xc4, 0x86, 0x29, 0x24, 0xee, 0xc7, 0x5d, 0xab, 0xb1, 0x6e, 0x6c, 0xb4, 0x9d, 0x94, + 0xa6, 0xaf, 0x1b, 0x30, 0xb7, 0x1d, 0x31, 0x37, 0x61, 0x7b, 0x7c, 0x5d, 0x87, 0x9d, 0x91, 0x1b, + 0x00, 0x7d, 0xd6, 0x7f, 0xca, 0xa2, 0xcf, 0xfc, 0x38, 0xb1, 0x8c, 0xf5, 0xe6, 0xc6, 0xf4, 0xd6, + 0xff, 0x36, 0x85, 0x0e, 0x28, 0x74, 0xcb, 0xf3, 0xee, 0xa3, 0xc0, 0x7e, 0x70, 0x12, 0x3a, 0x9a, + 0x30, 0xd7, 0x03, 0xe5, 0x0e, 0xdc, 0x3e, 0x93, 0x5b, 0x65, 0x0c, 0x42, 0x61, 0xc6, 0x0f, 0x92, + 0x28, 0xf4, 0x86, 0x9d, 0xc4, 0x0f, 0x03, 0xab, 0x89, 0x02, 0x39, 0x1e, 0x97, 0x09, 0xc2, 0xc4, + 0x3f, 0xf1, 0x3b, 0x2e, 0xca, 0x98, 0x42, 0x46, 0xe7, 0x11, 0x0b, 0x26, 0x4f, 0xdc, 0x0e, 0x7b, + 0x14, 0xf5, 0xac, 0x16, 0x0e, 0x2b, 0x92, 0x5c, 0x82, 0x56, 0x12, 0x9e, 0xb2, 0xc0, 0x9a, 0x40, + 0xbe, 0x20, 0xc8, 0x3a, 0x4c, 0x87, 0x03, 0x16, 0xe1, 0xe4, 0xfd, 0x1d, 0x6b, 0x12, 0xc7, 0x74, + 0x16, 0x99, 0x83, 0x06, 0x7b, 0x69, 0x4d, 0xe1, 0x40, 0x83, 0xbd, 0xa4, 0x9f, 0x00, 0x29, 0x5b, + 0x4a, 0x16, 0xa0, 0x39, 0xf4, 0x3d, 0xf4, 0x6f, 0xdb, 0xe1, 0x9f, 0x5c, 0x93, 0x98, 0x25, 0x4e, + 0xd8, 0x13, 0xd6, 0xb6, 0x1c, 0x45, 0x52, 0x06, 0xf3, 0x39, 0xb7, 0x5e, 0xe4, 0x90, 0xf8, 0x36, + 0xe8, 0xc5, 0xfd, 0x1d, 0xe9, 0x33, 0x45, 0xd2, 0x1e, 0x2c, 0xec, 0xb1, 0x04, 0xf7, 0x88, 0xf1, + 0x34, 0xd8, 0x19, 0x37, 0x57, 0x0e, 0xa7, 0x07, 0xd8, 0x76, 0x74, 0x56, 0xe6, 0xa6, 0xc6, 0x08, + 0x37, 0x35, 0x4b, 0x6e, 0xa2, 0x31, 0x2c, 0x16, 0x76, 0xbb, 0x90, 0x59, 0xd7, 0xc0, 0xf4, 0xdc, + 0xc4, 0xb5, 0x9a, 0x18, 0x62, 0x0b, 0x7a, 0x88, 0xe1, 0xea, 0x38, 0x4a, 0xff, 0x36, 0x60, 0xfe, + 0x48, 0xee, 0xaa, 0x4c, 0xd4, 0x1c, 0x62, 0xe4, 0x1c, 0x32, 0x3e, 0x02, 0x73, 0xd1, 0xd5, 0xac, + 0x88, 0xae, 0x62, 0x94, 0x9a, 0x15, 0x51, 0xfa, 0xaf, 0x47, 0x20, 0x7d, 0x00, 0xb6, 0x72, 0xed, + 0xad, 0xc1, 0xa0, 0x27, 0x95, 0xe1, 0xa7, 0xc5, 0xed, 0x5d, 0x80, 0xe6, 0xa3, 0xd4, 0x56, 0xfe, + 0xc9, 0x57, 0x3c, 0xd4, 0x56, 0x14, 0x96, 0xea, 0x2c, 0xfa, 0xab, 0x09, 0x57, 0x6b, 0x96, 0x7c, + 0xbc, 0xe3, 0x26, 0xee, 0xe3, 0x47, 0x31, 0x8b, 0x78, 0xe4, 0xa7, 0x0b, 0x37, 0xf6, 0x77, 0xb8, + 0x65, 0x7b, 0xd2, 0xb3, 0x62, 0x4d, 0x45, 0x92, 0x35, 0x80, 0xdd, 0x28, 0xec, 0xf3, 0x59, 0x69, + 0x74, 0x68, 0x1c, 0x7e, 0xd2, 0xc7, 0xa1, 0x1c, 0x15, 0x3e, 0x4b, 0x69, 0x42, 0xc0, 0xdc, 0xed, + 0xb9, 0x5d, 0x74, 0x56, 0xcb, 0xc1, 0x6f, 0xbe, 0x9e, 0xc3, 0xce, 0x86, 0x2c, 0x4e, 0x78, 0x6c, + 0x08, 0x77, 0x69, 0x1c, 0x3e, 0x7e, 0xd7, 0x0d, 0xbc, 0x1e, 0xf3, 0xf8, 0xb8, 0x70, 0x99, 0xc6, + 0xe1, 0x9a, 0xde, 0xf2, 0xbc, 0x63, 0xbf, 0xcf, 0x30, 0x71, 0x9b, 0x8e, 0x22, 0xc9, 0x7b, 0xb0, + 0xa0, 0xf4, 0x3a, 0xf0, 0x3b, 0xa7, 0x01, 0x0f, 0x85, 0x36, 0xce, 0x2f, 0xf1, 0xc9, 0xbb, 0x30, + 0x27, 0xb4, 0x4c, 0x25, 0x01, 0x25, 0x0b, 0x5c, 0xb2, 0x01, 0xf3, 0x6a, 0xee, 0xae, 0x3c, 0xf9, + 0x69, 0x14, 0x2c, 0xb2, 0xc9, 0x35, 0x98, 0x15, 0x73, 0x95, 0xdc, 0x0c, 0xca, 0xe5, 0x99, 0xfc, + 0xfc, 0xa4, 0x2d, 0x9c, 0x6b, 0xcd, 0x8a, 0xf3, 0xd3, 0x58, 0xdc, 0x67, 0xc7, 0x5f, 0x0e, 0x98, + 0x35, 0x27, 0x7c, 0xc6, 0xbf, 0x79, 0x6c, 0x0a, 0x91, 0xa3, 0xc4, 0x4d, 0x86, 0xb1, 0x35, 0x8f, + 0x63, 0x39, 0x5e, 0x26, 0xe3, 0xb0, 0x78, 0xd8, 0x4b, 0xac, 0x05, 0x5d, 0x46, 0xf0, 0xe8, 0x19, + 0x5c, 0xa9, 0x09, 0x0d, 0x1e, 0x19, 0x3c, 0x88, 0xb7, 0xc3, 0x61, 0x90, 0xc8, 0x74, 0x16, 0x04, + 0xb9, 0x09, 0x26, 0xea, 0xda, 0xc0, 0x74, 0xdd, 0x50, 0xe9, 0x3a, 0x2e, 0xc4, 0x1c, 0x9c, 0x45, + 0xbf, 0x33, 0x6a, 0xf7, 0x44, 0x18, 0xb1, 0x60, 0xf2, 0x4e, 0xa4, 0x83, 0x88, 0x22, 0xc9, 0x0a, + 0x4c, 0xdc, 0x89, 0x34, 0x00, 0x91, 0x14, 0xf9, 0x10, 0xcc, 0x1d, 0x01, 0x1f, 0xc6, 0xc6, 0xf4, + 0x16, 0x1d, 0xad, 0x0f, 0x97, 0x74, 0x50, 0x9e, 0xfe, 0x64, 0xc0, 0xf2, 0x71, 0xe4, 0x06, 0xf1, + 0x09, 0x8b, 0x50, 0xf4, 0xf0, 0x45, 0xc0, 0x22, 0x09, 0x2b, 0x7b, 0x79, 0x58, 0x51, 0xc1, 0x6f, + 0xc3, 0xd4, 0x61, 0xcf, 0x43, 0x41, 0x05, 0x63, 0x8a, 0xe6, 0x63, 0x07, 0xec, 0x85, 0x18, 0x13, + 0x69, 0x91, 0xd2, 0xc5, 0x34, 0x35, 0xcb, 0x69, 0x7a, 0x0f, 0x56, 0xaa, 0x94, 0x39, 0x8f, 0x47, + 0xe8, 0x57, 0x30, 0x73, 0x2f, 0xf4, 0x83, 0xf4, 0x26, 0xaf, 0x87, 0x49, 0x0b, 0x26, 0xfb, 0x2c, + 0x8e, 0xdd, 0xae, 0x02, 0x49, 0x45, 0x66, 0x00, 0xd6, 0x2c, 0x00, 0xd8, 0x18, 0x3b, 0x7e, 0x30, + 0xe1, 0x4a, 0xd1, 0xf1, 0xdc, 0x8c, 0x30, 0x88, 0x99, 0xbc, 0x95, 0xf4, 0x15, 0x8c, 0xd2, 0x0a, + 0x5c, 0x27, 0x34, 0x3e, 0x83, 0x1e, 0x49, 0xea, 0xe7, 0xd2, 0x1c, 0x05, 0x4a, 0x66, 0x09, 0x94, + 0x0a, 0x50, 0x80, 0xb7, 0x42, 0xab, 0x0c, 0x05, 0x07, 0x35, 0x29, 0x3e, 0x51, 0x9d, 0xe2, 0x3a, + 0xd4, 0x4d, 0x16, 0xa0, 0x2e, 0x07, 0x28, 0xb8, 0xdf, 0x54, 0x11, 0x50, 0x70, 0xb7, 0x12, 0x4c, + 0xb4, 0xab, 0x60, 0x42, 0x03, 0x39, 0xc8, 0x83, 0x5c, 0x1e, 0x3e, 0xa7, 0xc7, 0xc0, 0xe7, 0x4c, + 0x09, 0x3e, 0x15, 0xbc, 0xcc, 0x8e, 0x80, 0x97, 0xb9, 0x37, 0x80, 0x97, 0xf9, 0x0a, 0x78, 0x79, + 0x00, 0xab, 0xf5, 0xa1, 0x70, 0xae, 0xc8, 0xfe, 0xde, 0x00, 0xeb, 0x88, 0x25, 0x18, 0x10, 0xb8, + 0xb4, 0xf2, 0xe3, 0xe8, 0x30, 0xb7, 0x61, 0x2a, 0x50, 0xc7, 0x20, 0xd3, 0x56, 0xd1, 0xc5, 0x80, + 0x6c, 0x96, 0x03, 0x32, 0x4d, 0x05, 0x53, 0x4b, 0x05, 0xfa, 0x04, 0x66, 0x1e, 0x0e, 0xfd, 0xe4, + 0x0d, 0x92, 0xac, 0x70, 0xeb, 0x37, 0xca, 0x75, 0x67, 0x65, 0xb2, 0xd1, 0x6f, 0x1b, 0x60, 0x15, + 0xfd, 0x87, 0xd1, 0xc5, 0x8b, 0xd0, 0xfa, 0xed, 0x64, 0x79, 0xda, 0xc8, 0xca, 0x53, 0x02, 0x26, + 0x5e, 0x69, 0x62, 0x75, 0xfc, 0xe6, 0x3c, 0xbf, 0x93, 0x96, 0x35, 0xf8, 0xcd, 0xbd, 0x1e, 0xb1, + 0x33, 0xee, 0x75, 0x91, 0x1b, 0x92, 0xe2, 0x19, 0xe1, 0x66, 0x2a, 0x60, 0x14, 0x4e, 0x60, 0x14, + 0x16, 0xd9, 0x7c, 0xd5, 0x13, 0x7e, 0xc1, 0x4f, 0x8a, 0x68, 0x3a, 0x91, 0x17, 0xbc, 0xb0, 0x35, + 0xe4, 0x79, 0x22, 0xb2, 0x40, 0xe3, 0xf0, 0xf1, 0x67, 0x59, 0x84, 0x8a, 0xf0, 0xd7, 0x38, 0xf4, + 0xb5, 0x01, 0x4b, 0xe8, 0x06, 0x51, 0x82, 0xef, 0x0e, 0x7b, 0x3d, 0xf4, 0xc0, 0x0a, 0x4c, 0x0c, + 0xb9, 0x37, 0x54, 0x25, 0x2e, 0x29, 0xae, 0x43, 0x94, 0x55, 0xe2, 0xf8, 0xcd, 0x03, 0xe0, 0x79, + 0xe8, 0x0b, 0xd5, 0xb9, 0x17, 0x4c, 0x27, 0xa5, 0x73, 0xc1, 0x61, 0x16, 0x82, 0xa3, 0xb6, 0xc0, + 0xa3, 0xbf, 0x1b, 0xb0, 0xac, 0xee, 0x98, 0xfb, 0x69, 0xe7, 0x33, 0x3a, 0x10, 0xce, 0x59, 0x6f, + 0x73, 0x4b, 0x4f, 0xfc, 0x5e, 0xc2, 0x22, 0xd4, 0xaf, 0xe5, 0x48, 0x8a, 0xef, 0x14, 0xb0, 0x97, + 0xc9, 0x11, 0x3b, 0x93, 0x15, 0x95, 0x22, 0xe9, 0x1f, 0x06, 0xac, 0x54, 0x69, 0x27, 0xea, 0x74, + 0x56, 0xac, 0xd3, 0x99, 0x5e, 0xa7, 0xb3, 0x42, 0x9d, 0xae, 0x68, 0xf2, 0x51, 0xae, 0x21, 0x14, + 0xd5, 0xba, 0xad, 0x57, 0xeb, 0xf9, 0x03, 0xca, 0x75, 0x84, 0x9a, 0xaa, 0x66, 0x5e, 0xd5, 0x1f, + 0x4b, 0xaa, 0xc6, 0xe3, 0xcb, 0xfb, 0xb5, 0x9c, 0x2a, 0x0d, 0x6c, 0x6d, 0xf4, 0xed, 0x6a, 0x6f, + 0xaf, 0xb0, 0x7c, 0x7b, 0xe9, 0xe5, 0xf7, 0x2f, 0x06, 0x5c, 0xae, 0x54, 0xe6, 0x6d, 0x39, 0x8e, + 0xfe, 0x65, 0x00, 0xf9, 0xd4, 0xef, 0x9c, 0x6a, 0x72, 0xa3, 0x5d, 0x73, 0x13, 0xa6, 0x87, 0xbe, + 0xc7, 0xe7, 0xf2, 0xb5, 0x64, 0x95, 0x36, 0x6a, 0x37, 0x5d, 0x5c, 0x40, 0x80, 0x1b, 0xa7, 0x3d, + 0x91, 0xa4, 0xaa, 0x31, 0xb0, 0xe8, 0xd0, 0x56, 0xd9, 0xa1, 0x1f, 0x40, 0x7b, 0xdf, 0xdb, 0x12, + 0xf7, 0x01, 0x22, 0xd3, 0x7e, 0xd6, 0x38, 0xef, 0x7b, 0x62, 0x3b, 0xbc, 0x3f, 0x44, 0xb6, 0x4a, + 0x8a, 0x7e, 0x0d, 0x4b, 0x25, 0xa3, 0x2f, 0x74, 0x04, 0x9b, 0xd0, 0xf6, 0xbd, 0x2d, 0xb9, 0x57, + 0xbe, 0xd1, 0x4c, 0xf5, 0x73, 0x32, 0x11, 0x7a, 0x08, 0xcb, 0x5d, 0x96, 0xf0, 0x2a, 0x8a, 0x79, + 0xa8, 0x85, 0xca, 0xee, 0xd4, 0x11, 0xc6, 0x08, 0x47, 0x94, 0x21, 0x9e, 0xbe, 0x6a, 0x40, 0x3b, + 0xed, 0x5d, 0xb3, 0xe3, 0xf3, 0xf2, 0xc7, 0xe7, 0xbd, 0xf5, 0xc6, 0x75, 0x0d, 0xa0, 0x83, 0x0f, + 0x16, 0x29, 0xcc, 0x9b, 0x8e, 0xc6, 0xe1, 0x33, 0x43, 0x2c, 0xc7, 0x3c, 0x59, 0xf2, 0x28, 0x92, + 0xfb, 0x40, 0xc4, 0xad, 0xe8, 0x19, 0x38, 0xd0, 0xcf, 0x3a, 0x3a, 0x8b, 0x7e, 0x63, 0xc0, 0x4a, + 0x95, 0x57, 0x2f, 0x7a, 0xb2, 0x5d, 0xb5, 0x54, 0xed, 0x13, 0x42, 0x26, 0x42, 0x7f, 0x33, 0xe0, + 0x92, 0x1f, 0x7c, 0xe1, 0x27, 0x8c, 0xdf, 0xa5, 0xc7, 0x61, 0x7a, 0x81, 0x9f, 0xf3, 0x64, 0xeb, + 0x5f, 0x65, 0xb4, 0x64, 0x32, 0x73, 0xc9, 0x64, 0xc1, 0xa4, 0xcc, 0x39, 0xab, 0x85, 0xd0, 0xa5, + 0x48, 0xfa, 0xca, 0x80, 0xe5, 0x0a, 0xe5, 0xfe, 0xd3, 0xd0, 0x7f, 0x06, 0x97, 0xd2, 0xe6, 0xa9, + 0xd7, 0x7b, 0x13, 0xc8, 0x39, 0xef, 0x3b, 0xd2, 0xcf, 0xda, 0x1d, 0xaa, 0x6d, 0xf5, 0xb6, 0xb0, + 0x76, 0xeb, 0xcf, 0x29, 0x10, 0xcf, 0xaa, 0x1c, 0x44, 0x3b, 0xd9, 0xb3, 0x1d, 0x59, 0x96, 0x0b, + 0xe4, 0x5f, 0x48, 0xed, 0x95, 0x2a, 0x76, 0x3c, 0x20, 0xd7, 0xa1, 0xfd, 0x5c, 0xf5, 0x5f, 0x64, + 0x49, 0x0a, 0xe9, 0x1d, 0x99, 0xbd, 0xa8, 0x66, 0x66, 0x6f, 0xb7, 0xd7, 0xa1, 0x7d, 0xa6, 0xea, + 0xc9, 0x74, 0x92, 0x5e, 0x61, 0x56, 0x4d, 0xba, 0x0d, 0xb3, 0x5d, 0xfd, 0x25, 0x8e, 0x5c, 0x2e, + 0xb4, 0xbf, 0xea, 0x2e, 0xb5, 0xad, 0xea, 0x81, 0x78, 0x40, 0x6e, 0xc0, 0x4c, 0xac, 0xbd, 0xab, + 0x11, 0x65, 0x55, 0xe1, 0xb1, 0xad, 0x6a, 0xfb, 0x27, 0x70, 0xb9, 0x5b, 0xdd, 0x67, 0x93, 0xab, + 0xa3, 0xfb, 0x70, 0xbe, 0x20, 0x1d, 0x27, 0x12, 0x0f, 0xc8, 0x43, 0x20, 0x49, 0xa9, 0x2d, 0x26, + 0xab, 0x72, 0x66, 0x65, 0xfb, 0x6e, 0xff, 0x7f, 0xc4, 0x68, 0x3c, 0x20, 0x1d, 0xb0, 0xba, 0x35, + 0x5d, 0x09, 0xa1, 0xb9, 0xf7, 0xed, 0xca, 0x0e, 0xd6, 0x7e, 0x67, 0xac, 0x8c, 0xd0, 0xbb, 0x5b, + 0xaa, 0xbf, 0x52, 0xbd, 0x2b, 0x0b, 0xc7, 0x54, 0xef, 0x9a, 0xc2, 0xed, 0x18, 0x96, 0xba, 0xe5, + 0xd2, 0x84, 0x54, 0xcf, 0x4a, 0xcf, 0x7d, 0x6d, 0xd4, 0x70, 0x3c, 0x20, 0x77, 0x61, 0xfe, 0x34, + 0x7f, 0xd3, 0x12, 0xf5, 0xc8, 0x5f, 0x2e, 0x3b, 0x6c, 0xbb, 0x6e, 0x28, 0x35, 0xb9, 0x00, 0xee, + 0xa9, 0xc9, 0x95, 0xb7, 0x69, 0x6a, 0x72, 0xcd, 0xad, 0x70, 0x00, 0x8b, 0x25, 0x34, 0x24, 0x57, + 0xe4, 0x9c, 0x2a, 0x10, 0xb7, 0x57, 0xeb, 0x07, 0xc5, 0x7a, 0xdd, 0x22, 0xde, 0xa4, 0xeb, 0x55, + 0x81, 0x9e, 0xbd, 0x5a, 0x3f, 0x18, 0x0f, 0x6e, 0xcf, 0x7f, 0x3e, 0xbb, 0x29, 0xfe, 0x95, 0xf9, + 0x18, 0x7f, 0x9f, 0x4e, 0xe0, 0x9f, 0x33, 0xd7, 0xff, 0x09, 0x00, 0x00, 0xff, 0xff, 0xc0, 0xd8, + 0xe8, 0x44, 0xb1, 0x19, 0x00, 0x00, } diff --git a/src/proto/push/push.pb.go b/src/proto/push/push.pb.go index 99928a8fb..2fdbd2f53 100644 --- a/src/proto/push/push.pb.go +++ b/src/proto/push/push.pb.go @@ -1,12 +1,17 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // source: push/push.proto -package pbPush // import "push" +package pbPush // import "./push" 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 @@ -44,7 +49,7 @@ func (m *PushMsgReq) Reset() { *m = PushMsgReq{} } func (m *PushMsgReq) String() string { return proto.CompactTextString(m) } func (*PushMsgReq) ProtoMessage() {} func (*PushMsgReq) Descriptor() ([]byte, []int) { - return fileDescriptor_push_a8d13c8ad86fddce, []int{0} + return fileDescriptor_push_4f08d2ff54ba8af2, []int{0} } func (m *PushMsgReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_PushMsgReq.Unmarshal(m, b) @@ -187,7 +192,7 @@ func (m *PushMsgResp) Reset() { *m = PushMsgResp{} } func (m *PushMsgResp) String() string { return proto.CompactTextString(m) } func (*PushMsgResp) ProtoMessage() {} func (*PushMsgResp) Descriptor() ([]byte, []int) { - return fileDescriptor_push_a8d13c8ad86fddce, []int{1} + return fileDescriptor_push_4f08d2ff54ba8af2, []int{1} } func (m *PushMsgResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_PushMsgResp.Unmarshal(m, b) @@ -219,32 +224,104 @@ func init() { proto.RegisterType((*PushMsgResp)(nil), "push.PushMsgResp") } -func init() { proto.RegisterFile("push/push.proto", fileDescriptor_push_a8d13c8ad86fddce) } +// 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 PushMsgService service + +type PushMsgServiceClient interface { + PushMsg(ctx context.Context, in *PushMsgReq, opts ...grpc.CallOption) (*PushMsgResp, error) +} + +type pushMsgServiceClient struct { + cc *grpc.ClientConn +} + +func NewPushMsgServiceClient(cc *grpc.ClientConn) PushMsgServiceClient { + return &pushMsgServiceClient{cc} +} + +func (c *pushMsgServiceClient) PushMsg(ctx context.Context, in *PushMsgReq, opts ...grpc.CallOption) (*PushMsgResp, error) { + out := new(PushMsgResp) + err := grpc.Invoke(ctx, "/push.PushMsgService/PushMsg", in, out, c.cc, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +// Server API for PushMsgService service + +type PushMsgServiceServer interface { + PushMsg(context.Context, *PushMsgReq) (*PushMsgResp, error) +} + +func RegisterPushMsgServiceServer(s *grpc.Server, srv PushMsgServiceServer) { + s.RegisterService(&_PushMsgService_serviceDesc, srv) +} + +func _PushMsgService_PushMsg_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(PushMsgReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(PushMsgServiceServer).PushMsg(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/push.PushMsgService/PushMsg", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(PushMsgServiceServer).PushMsg(ctx, req.(*PushMsgReq)) + } + return interceptor(ctx, in, info, handler) +} + +var _PushMsgService_serviceDesc = grpc.ServiceDesc{ + ServiceName: "push.PushMsgService", + HandlerType: (*PushMsgServiceServer)(nil), + Methods: []grpc.MethodDesc{ + { + MethodName: "PushMsg", + Handler: _PushMsgService_PushMsg_Handler, + }, + }, + Streams: []grpc.StreamDesc{}, + Metadata: "push/push.proto", +} + +func init() { proto.RegisterFile("push/push.proto", fileDescriptor_push_4f08d2ff54ba8af2) } -var fileDescriptor_push_a8d13c8ad86fddce = []byte{ - // 377 bytes of a gzipped FileDescriptorProto +var fileDescriptor_push_4f08d2ff54ba8af2 = []byte{ + // 378 bytes of a gzipped FileDescriptorProto 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x5c, 0x92, 0x5d, 0xeb, 0xda, 0x30, - 0x14, 0xc6, 0xe9, 0xb4, 0xbe, 0x9c, 0xce, 0x97, 0x85, 0x31, 0x82, 0x17, 0xa3, 0xc8, 0x18, 0xde, - 0xcc, 0xc1, 0x76, 0xb9, 0x9b, 0x31, 0x8b, 0x50, 0x98, 0x2f, 0xa4, 0xee, 0x66, 0x77, 0xb5, 0x9e, + 0x14, 0xc6, 0xe9, 0xb4, 0xbe, 0x1c, 0xe7, 0xcb, 0xc2, 0x18, 0xc1, 0x8b, 0x51, 0x64, 0x0c, 0x6f, + 0xd6, 0xc1, 0x76, 0xb9, 0x9b, 0x31, 0x8b, 0x50, 0x98, 0x2f, 0xa4, 0xee, 0x66, 0x77, 0xb5, 0x9e, 0x6a, 0x59, 0x9b, 0xc4, 0xa6, 0x0a, 0xfb, 0xd2, 0xfb, 0x0c, 0x23, 0x49, 0xd5, 0xfe, 0xbd, 0x29, - 0x7d, 0x7e, 0xe7, 0x39, 0x87, 0x27, 0xc9, 0x81, 0x91, 0xbc, 0xa8, 0xd3, 0x67, 0xfd, 0x99, 0xcb, - 0x52, 0x54, 0x82, 0xb4, 0xf5, 0xff, 0xf4, 0x5f, 0x0b, 0x60, 0x7b, 0x51, 0xa7, 0x95, 0x3a, 0x32, - 0x3c, 0x93, 0x77, 0xd0, 0x89, 0x90, 0x1f, 0xc2, 0x80, 0x3a, 0xbe, 0x33, 0xeb, 0xb3, 0x5a, 0x69, - 0xce, 0x30, 0xb9, 0x86, 0x01, 0x7d, 0x65, 0xb9, 0x55, 0x84, 0x42, 0x77, 0x21, 0x78, 0x85, 0xbc, - 0xa2, 0x2d, 0x53, 0xb8, 0x49, 0x5d, 0xd1, 0x9e, 0x08, 0xcf, 0xb4, 0xed, 0x3b, 0xb3, 0x16, 0xbb, - 0x49, 0x32, 0x81, 0x9e, 0x9e, 0xba, 0xcb, 0x0a, 0xa4, 0xae, 0x29, 0xdd, 0xb5, 0xee, 0x5a, 0xa9, - 0xe3, 0xb2, 0x14, 0x05, 0xed, 0xf8, 0xce, 0xcc, 0x65, 0x37, 0x49, 0x7c, 0xf0, 0xea, 0xd1, 0xbb, + 0x7d, 0x7e, 0xe7, 0x39, 0x87, 0x27, 0xc9, 0x81, 0xb1, 0xbc, 0xa8, 0xd3, 0x67, 0xfd, 0xf1, 0x65, + 0x29, 0x2a, 0x41, 0xda, 0xfa, 0x7f, 0xf6, 0xaf, 0x05, 0xb0, 0xbd, 0xa8, 0xd3, 0x4a, 0x1d, 0x19, + 0x9e, 0xc9, 0x3b, 0xe8, 0x44, 0xc8, 0x0f, 0x61, 0x40, 0x1d, 0xcf, 0x99, 0xf7, 0x59, 0xad, 0x34, + 0x67, 0x98, 0x5c, 0xc3, 0x80, 0xbe, 0xb2, 0xdc, 0x2a, 0x42, 0xa1, 0xbb, 0x10, 0xbc, 0x42, 0x5e, + 0xd1, 0x96, 0x29, 0xdc, 0xa4, 0xae, 0x68, 0x4f, 0x84, 0x67, 0xda, 0xf6, 0x9c, 0x79, 0x8b, 0xdd, + 0x24, 0x99, 0x42, 0x4f, 0x4f, 0xdd, 0x65, 0x05, 0x52, 0xd7, 0x94, 0xee, 0x5a, 0x77, 0xad, 0xd4, + 0x71, 0x59, 0x8a, 0x82, 0x76, 0x3c, 0x67, 0xee, 0xb2, 0x9b, 0x24, 0x1e, 0x0c, 0xea, 0xd1, 0xbb, 0xbf, 0x12, 0x69, 0xd7, 0x54, 0x9b, 0x48, 0x3b, 0x22, 0x54, 0x2a, 0x13, 0xdc, 0x38, 0x7a, 0xd6, 0xd1, 0x40, 0xda, 0xb1, 0x91, 0x58, 0xc6, 0x55, 0x26, 0x78, 0x18, 0xd0, 0xbe, 0x49, 0xdc, 0x44, 0xe4, 0x2d, 0xb8, 0x2b, 0x75, 0x0c, 0x03, 0x0a, 0xa6, 0x66, 0x85, 0xe9, 0x4b, 0xd3, 0x3c, 0xe3, - 0x18, 0xf2, 0x54, 0x50, 0xaf, 0xee, 0x7b, 0x20, 0x9d, 0x7b, 0x23, 0xf5, 0x0c, 0x45, 0x5f, 0xdb, - 0x7b, 0xa8, 0x25, 0x79, 0x0f, 0xb0, 0xcd, 0xe3, 0x2a, 0x15, 0x65, 0x11, 0x06, 0x74, 0x60, 0x42, - 0x35, 0x08, 0xf9, 0x08, 0x43, 0x7d, 0x7a, 0x2c, 0xd7, 0x59, 0xf2, 0x67, 0x1d, 0x17, 0x48, 0x87, - 0x66, 0xc0, 0x13, 0x25, 0x1f, 0x60, 0x60, 0xc9, 0x32, 0x4e, 0xf0, 0x17, 0xfb, 0x49, 0x47, 0xc6, - 0xf6, 0x12, 0x9a, 0x5b, 0xca, 0x33, 0xe4, 0x95, 0x3d, 0xc5, 0xd8, 0x26, 0x6d, 0xa0, 0xe9, 0x27, - 0xf0, 0xee, 0xef, 0xad, 0xa4, 0x8e, 0xc7, 0x50, 0x5d, 0xf2, 0x6a, 0x21, 0x0e, 0x68, 0x1e, 0xdd, - 0x65, 0x0d, 0xf2, 0xe5, 0x3b, 0x0c, 0x6b, 0x7b, 0x84, 0xe5, 0x35, 0x4b, 0x90, 0xcc, 0xa1, 0x5b, - 0x13, 0x32, 0x9e, 0x9b, 0x7d, 0x7a, 0xec, 0xcf, 0xe4, 0xcd, 0x13, 0x51, 0xf2, 0xc7, 0xe0, 0xb7, - 0xa7, 0xd9, 0x37, 0xb9, 0xd7, 0x74, 0xdf, 0x31, 0xdb, 0xf7, 0xf5, 0x7f, 0x00, 0x00, 0x00, 0xff, - 0xff, 0x50, 0x88, 0x84, 0xf6, 0x90, 0x02, 0x00, 0x00, + 0x18, 0xf2, 0x54, 0xd0, 0x41, 0xdd, 0xf7, 0x40, 0x3a, 0xf7, 0x46, 0xea, 0x19, 0x8a, 0xbe, 0xb6, + 0xf7, 0x50, 0x4b, 0xf2, 0x1e, 0x60, 0x9b, 0xc7, 0x55, 0x2a, 0xca, 0x22, 0x0c, 0xe8, 0xd0, 0x84, + 0x6a, 0x10, 0xf2, 0x11, 0x46, 0xfa, 0xf4, 0x58, 0xae, 0xb3, 0xe4, 0xcf, 0x3a, 0x2e, 0x90, 0x8e, + 0xcc, 0x80, 0x27, 0x4a, 0x3e, 0xc0, 0xd0, 0x92, 0x65, 0x9c, 0xe0, 0x2f, 0xf6, 0x93, 0x8e, 0x8d, + 0xed, 0x25, 0x34, 0xb7, 0x94, 0x67, 0xc8, 0x2b, 0x7b, 0x8a, 0x89, 0x4d, 0xda, 0x40, 0xb3, 0x4f, + 0x30, 0xb8, 0xbf, 0xb7, 0x92, 0x3a, 0x1e, 0x43, 0x75, 0xc9, 0xab, 0x85, 0x38, 0xa0, 0x79, 0x74, + 0x97, 0x35, 0xc8, 0x97, 0xef, 0x30, 0xaa, 0xed, 0x11, 0x96, 0xd7, 0x2c, 0x41, 0xe2, 0x43, 0xb7, + 0x26, 0x64, 0xe2, 0x9b, 0x7d, 0x7a, 0xec, 0xcf, 0xf4, 0xcd, 0x13, 0x51, 0xf2, 0xc7, 0xf8, 0xf7, + 0xd0, 0x37, 0x7b, 0xf7, 0x4d, 0xee, 0x35, 0xdf, 0x77, 0xcc, 0xfe, 0x7d, 0xfd, 0x1f, 0x00, 0x00, + 0xff, 0xff, 0x6b, 0x53, 0xf4, 0xd4, 0x92, 0x02, 0x00, 0x00, } diff --git a/src/proto/relay/relay.pb.go b/src/proto/relay/relay.pb.go index 3e3806397..32fcc227c 100644 --- a/src/proto/relay/relay.pb.go +++ b/src/proto/relay/relay.pb.go @@ -1,12 +1,17 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // source: relay/relay.proto -package pbRelay // import "relay" +package pbRelay // import "./relay" 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 @@ -42,7 +47,7 @@ func (m *MsgToUserReq) Reset() { *m = MsgToUserReq{} } func (m *MsgToUserReq) String() string { return proto.CompactTextString(m) } func (*MsgToUserReq) ProtoMessage() {} func (*MsgToUserReq) Descriptor() ([]byte, []int) { - return fileDescriptor_relay_1ba173c940428df4, []int{0} + return fileDescriptor_relay_ff2396ffa84abfa7, []int{0} } func (m *MsgToUserReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MsgToUserReq.Unmarshal(m, b) @@ -171,7 +176,7 @@ func (m *MsgToUserResp) Reset() { *m = MsgToUserResp{} } func (m *MsgToUserResp) String() string { return proto.CompactTextString(m) } func (*MsgToUserResp) ProtoMessage() {} func (*MsgToUserResp) Descriptor() ([]byte, []int) { - return fileDescriptor_relay_1ba173c940428df4, []int{1} + return fileDescriptor_relay_ff2396ffa84abfa7, []int{1} } func (m *MsgToUserResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MsgToUserResp.Unmarshal(m, b) @@ -222,7 +227,7 @@ func (m *SingleMsgToUser) Reset() { *m = SingleMsgToUser{} } func (m *SingleMsgToUser) String() string { return proto.CompactTextString(m) } func (*SingleMsgToUser) ProtoMessage() {} func (*SingleMsgToUser) Descriptor() ([]byte, []int) { - return fileDescriptor_relay_1ba173c940428df4, []int{2} + return fileDescriptor_relay_ff2396ffa84abfa7, []int{2} } func (m *SingleMsgToUser) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SingleMsgToUser.Unmarshal(m, b) @@ -269,34 +274,106 @@ func init() { proto.RegisterType((*SingleMsgToUser)(nil), "relay.SingleMsgToUser") } -func init() { proto.RegisterFile("relay/relay.proto", fileDescriptor_relay_1ba173c940428df4) } - -var fileDescriptor_relay_1ba173c940428df4 = []byte{ - // 412 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x74, 0x92, 0xc1, 0x6f, 0xd3, 0x30, - 0x14, 0xc6, 0x15, 0x42, 0xbb, 0xf5, 0x75, 0x6d, 0xc1, 0xa0, 0xc9, 0xec, 0x80, 0xa2, 0x0a, 0x4d, - 0x11, 0x87, 0x21, 0x0d, 0x89, 0xcb, 0x6e, 0x2c, 0xaa, 0x14, 0x89, 0x6c, 0xc8, 0xe9, 0x2e, 0xdc, - 0xb2, 0xec, 0x11, 0x59, 0x24, 0x76, 0x6a, 0x87, 0x49, 0xfb, 0xef, 0xf8, 0xd3, 0x90, 0x9f, 0x5b, - 0x6a, 0x8a, 0xb8, 0x44, 0xf9, 0x7e, 0xef, 0xcb, 0xcb, 0xe7, 0xe7, 0x07, 0x2f, 0x0d, 0xb6, 0xd5, - 0xd3, 0x07, 0x7a, 0x5e, 0xf4, 0x46, 0x0f, 0x9a, 0x8d, 0x48, 0x2c, 0x7f, 0xc5, 0x70, 0x52, 0xd8, - 0x66, 0xad, 0xef, 0x2c, 0x1a, 0x81, 0x1b, 0x76, 0x0a, 0xe3, 0x12, 0xd5, 0x43, 0x9e, 0xf1, 0x28, - 0x89, 0xd2, 0x89, 0xd8, 0x2a, 0xc7, 0x05, 0xd6, 0x8f, 0x79, 0xc6, 0x9f, 0x79, 0xee, 0x15, 0xe3, - 0x70, 0x74, 0xad, 0xd5, 0x80, 0x6a, 0xe0, 0x23, 0x2a, 0xec, 0xa4, 0xab, 0x38, 0x4f, 0x89, 0x1b, - 0x3e, 0x4e, 0xa2, 0x34, 0x16, 0x3b, 0xc9, 0xce, 0xe0, 0xd8, 0x75, 0x5d, 0xcb, 0x0e, 0xf9, 0x11, - 0x95, 0xfe, 0x68, 0xf7, 0x55, 0x61, 0x9b, 0x95, 0xd1, 0x1d, 0x3f, 0x4e, 0xa2, 0x74, 0x24, 0x76, - 0x92, 0x25, 0x30, 0xdd, 0xb6, 0x5e, 0x3f, 0xf5, 0xc8, 0x27, 0x54, 0x0d, 0x91, 0x73, 0x94, 0x68, - 0xad, 0xd4, 0x8a, 0x1c, 0xe0, 0x1d, 0x01, 0x72, 0x8e, 0xdb, 0x1e, 0x4d, 0x35, 0x48, 0xad, 0xf2, - 0x8c, 0x4f, 0x29, 0x71, 0x88, 0x7c, 0x0f, 0xf3, 0x88, 0xa6, 0xb0, 0x4d, 0x9e, 0xf1, 0x13, 0xef, - 0x08, 0x10, 0x7b, 0x0b, 0xf0, 0xb5, 0xad, 0x86, 0xef, 0xda, 0x74, 0x79, 0xc6, 0x67, 0xf4, 0x93, - 0x80, 0xb0, 0x73, 0x98, 0xbb, 0xd3, 0xa0, 0xb9, 0x91, 0xf5, 0x8f, 0x9b, 0xaa, 0x43, 0x3e, 0xa7, - 0x26, 0x07, 0x94, 0xbd, 0x83, 0x99, 0x27, 0xab, 0xaa, 0xc6, 0x3b, 0xf1, 0x85, 0x2f, 0xc8, 0xf6, - 0x37, 0xa4, 0x53, 0xb7, 0x12, 0xd5, 0xe0, 0xf3, 0xbc, 0xf0, 0x79, 0x02, 0xb4, 0xbc, 0x82, 0x59, - 0x70, 0x83, 0xb6, 0x67, 0xef, 0xe1, 0xb9, 0x41, 0xdb, 0xf3, 0x28, 0x89, 0xd3, 0xe9, 0xe5, 0xe9, - 0x85, 0xbf, 0xf6, 0x52, 0xaa, 0xa6, 0xc5, 0xbd, 0x93, 0x3c, 0xcb, 0x0d, 0x2c, 0x0e, 0x0a, 0xee, - 0x7c, 0x02, 0xed, 0xcf, 0x76, 0xb8, 0xd6, 0x0f, 0x48, 0x5b, 0x10, 0x8b, 0x80, 0xfc, 0x77, 0x13, - 0xce, 0x61, 0xee, 0xde, 0xdc, 0x24, 0x56, 0x7e, 0x36, 0x31, 0xcd, 0xe6, 0x80, 0x5e, 0x96, 0xf0, - 0xe6, 0x56, 0xb5, 0x52, 0x61, 0x81, 0xd6, 0x56, 0x0d, 0x0a, 0x17, 0xcf, 0x0d, 0x58, 0xd6, 0xc8, - 0x3e, 0xc1, 0x64, 0x9f, 0xe4, 0xd5, 0x36, 0x7a, 0xb8, 0xa0, 0x67, 0xaf, 0xff, 0x85, 0xb6, 0xff, - 0xbc, 0xf8, 0x36, 0x23, 0x7c, 0xd5, 0xdf, 0x53, 0xbf, 0xfb, 0x31, 0xad, 0xf9, 0xc7, 0xdf, 0x01, - 0x00, 0x00, 0xff, 0xff, 0xca, 0xdd, 0x7b, 0x0c, 0xfb, 0x02, 0x00, 0x00, +// 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 OnlineMessageRelayService service + +type OnlineMessageRelayServiceClient interface { + MsgToUser(ctx context.Context, in *MsgToUserReq, opts ...grpc.CallOption) (*MsgToUserResp, error) +} + +type onlineMessageRelayServiceClient struct { + cc *grpc.ClientConn +} + +func NewOnlineMessageRelayServiceClient(cc *grpc.ClientConn) OnlineMessageRelayServiceClient { + return &onlineMessageRelayServiceClient{cc} +} + +func (c *onlineMessageRelayServiceClient) MsgToUser(ctx context.Context, in *MsgToUserReq, opts ...grpc.CallOption) (*MsgToUserResp, error) { + out := new(MsgToUserResp) + err := grpc.Invoke(ctx, "/relay.OnlineMessageRelayService/MsgToUser", in, out, c.cc, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +// Server API for OnlineMessageRelayService service + +type OnlineMessageRelayServiceServer interface { + MsgToUser(context.Context, *MsgToUserReq) (*MsgToUserResp, error) +} + +func RegisterOnlineMessageRelayServiceServer(s *grpc.Server, srv OnlineMessageRelayServiceServer) { + s.RegisterService(&_OnlineMessageRelayService_serviceDesc, srv) +} + +func _OnlineMessageRelayService_MsgToUser_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(MsgToUserReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(OnlineMessageRelayServiceServer).MsgToUser(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/relay.OnlineMessageRelayService/MsgToUser", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(OnlineMessageRelayServiceServer).MsgToUser(ctx, req.(*MsgToUserReq)) + } + return interceptor(ctx, in, info, handler) +} + +var _OnlineMessageRelayService_serviceDesc = grpc.ServiceDesc{ + ServiceName: "relay.OnlineMessageRelayService", + HandlerType: (*OnlineMessageRelayServiceServer)(nil), + Methods: []grpc.MethodDesc{ + { + MethodName: "MsgToUser", + Handler: _OnlineMessageRelayService_MsgToUser_Handler, + }, + }, + Streams: []grpc.StreamDesc{}, + Metadata: "relay/relay.proto", +} + +func init() { proto.RegisterFile("relay/relay.proto", fileDescriptor_relay_ff2396ffa84abfa7) } + +var fileDescriptor_relay_ff2396ffa84abfa7 = []byte{ + // 414 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x74, 0x92, 0xc1, 0x6b, 0xdb, 0x30, + 0x14, 0xc6, 0xf1, 0xbc, 0xa4, 0xcd, 0x4b, 0x93, 0xac, 0xda, 0x28, 0x5a, 0x0f, 0xc3, 0x84, 0x51, + 0xc2, 0x0e, 0x19, 0x74, 0xb0, 0x4b, 0x6f, 0xab, 0x09, 0x18, 0xe6, 0x76, 0xc8, 0xe9, 0x65, 0x37, + 0xd7, 0x7d, 0x33, 0x62, 0xb6, 0xe4, 0x48, 0x5e, 0xa1, 0xff, 0xdd, 0xfe, 0xb4, 0xa1, 0xa7, 0x64, + 0xd1, 0x32, 0x7a, 0x31, 0xfe, 0x7e, 0xef, 0xf3, 0xf3, 0xa7, 0xa7, 0x07, 0xa7, 0x06, 0x9b, 0xf2, + 0xe9, 0x23, 0x3d, 0x97, 0x9d, 0xd1, 0xbd, 0x66, 0x03, 0x12, 0xf3, 0xdf, 0x31, 0x9c, 0xe4, 0xb6, + 0x5e, 0xeb, 0x3b, 0x8b, 0x46, 0xe0, 0x86, 0x9d, 0xc1, 0xb0, 0x40, 0xf5, 0x90, 0xa5, 0x3c, 0x4a, + 0xa2, 0xc5, 0x48, 0x6c, 0x95, 0xe3, 0x02, 0xab, 0xc7, 0x2c, 0xe5, 0x2f, 0x3c, 0xf7, 0x8a, 0x71, + 0x38, 0xba, 0xd6, 0xaa, 0x47, 0xd5, 0xf3, 0x01, 0x15, 0x76, 0xd2, 0x55, 0x9c, 0xa7, 0xc0, 0x0d, + 0x1f, 0x26, 0xd1, 0x22, 0x16, 0x3b, 0xc9, 0xce, 0xe1, 0xd8, 0x75, 0x5d, 0xcb, 0x16, 0xf9, 0x11, + 0x95, 0xfe, 0x6a, 0xf7, 0x55, 0x6e, 0xeb, 0x95, 0xd1, 0x2d, 0x3f, 0x4e, 0xa2, 0xc5, 0x40, 0xec, + 0x24, 0x4b, 0x60, 0xbc, 0x6d, 0xbd, 0x7e, 0xea, 0x90, 0x8f, 0xa8, 0x1a, 0x22, 0xe7, 0x28, 0xd0, + 0x5a, 0xa9, 0x15, 0x39, 0xc0, 0x3b, 0x02, 0xe4, 0x1c, 0xb7, 0x1d, 0x9a, 0xb2, 0x97, 0x5a, 0x65, + 0x29, 0x1f, 0x53, 0xe2, 0x10, 0xf9, 0x1e, 0xe6, 0x11, 0x4d, 0x6e, 0xeb, 0x2c, 0xe5, 0x27, 0xde, + 0x11, 0x20, 0xf6, 0x0e, 0xe0, 0x5b, 0x53, 0xf6, 0x3f, 0xb4, 0x69, 0xb3, 0x94, 0x4f, 0xe8, 0x27, + 0x01, 0x61, 0x17, 0x30, 0x75, 0xa7, 0x41, 0x73, 0x23, 0xab, 0x9f, 0x37, 0x65, 0x8b, 0x7c, 0x4a, + 0x4d, 0x0e, 0x28, 0x7b, 0x0f, 0x13, 0x4f, 0x56, 0x65, 0x85, 0x77, 0xe2, 0x2b, 0x9f, 0x91, 0xed, + 0x5f, 0x48, 0xa7, 0x6e, 0x24, 0xaa, 0xde, 0xe7, 0x79, 0xe5, 0xf3, 0x04, 0x68, 0x7e, 0x05, 0x93, + 0xe0, 0x06, 0x6d, 0xc7, 0x3e, 0xc0, 0x4b, 0x83, 0xb6, 0xe3, 0x51, 0x12, 0x2f, 0xc6, 0x97, 0x67, + 0x4b, 0x7f, 0xed, 0x85, 0x54, 0x75, 0x83, 0x7b, 0x27, 0x79, 0xe6, 0x1b, 0x98, 0x1d, 0x14, 0xdc, + 0xf9, 0x04, 0xda, 0x5f, 0x4d, 0x7f, 0xad, 0x1f, 0x90, 0xb6, 0x20, 0x16, 0x01, 0x79, 0x76, 0x13, + 0x2e, 0x60, 0xea, 0xde, 0xdc, 0x24, 0x56, 0x7e, 0x36, 0x31, 0xcd, 0xe6, 0x80, 0x5e, 0x16, 0xf0, + 0xf6, 0x56, 0x35, 0x52, 0x61, 0x8e, 0xd6, 0x96, 0x35, 0x0a, 0x17, 0xcf, 0x0d, 0x58, 0x56, 0xc8, + 0x3e, 0xc3, 0x68, 0x9f, 0xe4, 0xf5, 0x36, 0x7a, 0xb8, 0xa0, 0xe7, 0x6f, 0xfe, 0x87, 0xb6, 0xfb, + 0x72, 0xfa, 0x7d, 0xb6, 0xf4, 0xfb, 0x7d, 0xd5, 0xdd, 0x53, 0xc7, 0xfb, 0x21, 0x2d, 0xfa, 0xa7, + 0x3f, 0x01, 0x00, 0x00, 0xff, 0xff, 0xe2, 0x9b, 0x83, 0x12, 0xfd, 0x02, 0x00, 0x00, } diff --git a/src/proto/user/user.pb.go b/src/proto/user/user.pb.go index 9452ec23a..32771e8e3 100644 --- a/src/proto/user/user.pb.go +++ b/src/proto/user/user.pb.go @@ -1,12 +1,17 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // source: user/user.proto -package user // import "user" +package user // import "./user" 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 @@ -30,7 +35,7 @@ func (m *CommonResp) Reset() { *m = CommonResp{} } func (m *CommonResp) String() string { return proto.CompactTextString(m) } func (*CommonResp) ProtoMessage() {} func (*CommonResp) Descriptor() ([]byte, []int) { - return fileDescriptor_user_9367ac00c24112e8, []int{0} + return fileDescriptor_user_9e1dacb346b997d7, []int{0} } func (m *CommonResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_CommonResp.Unmarshal(m, b) @@ -76,7 +81,7 @@ func (m *DeleteUsersResp) Reset() { *m = DeleteUsersResp{} } func (m *DeleteUsersResp) String() string { return proto.CompactTextString(m) } func (*DeleteUsersResp) ProtoMessage() {} func (*DeleteUsersResp) Descriptor() ([]byte, []int) { - return fileDescriptor_user_9367ac00c24112e8, []int{1} + return fileDescriptor_user_9e1dacb346b997d7, []int{1} } func (m *DeleteUsersResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_DeleteUsersResp.Unmarshal(m, b) @@ -123,7 +128,7 @@ func (m *DeleteUsersReq) Reset() { *m = DeleteUsersReq{} } func (m *DeleteUsersReq) String() string { return proto.CompactTextString(m) } func (*DeleteUsersReq) ProtoMessage() {} func (*DeleteUsersReq) Descriptor() ([]byte, []int) { - return fileDescriptor_user_9367ac00c24112e8, []int{2} + return fileDescriptor_user_9e1dacb346b997d7, []int{2} } func (m *DeleteUsersReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_DeleteUsersReq.Unmarshal(m, b) @@ -176,7 +181,7 @@ func (m *GetAllUsersUidReq) Reset() { *m = GetAllUsersUidReq{} } func (m *GetAllUsersUidReq) String() string { return proto.CompactTextString(m) } func (*GetAllUsersUidReq) ProtoMessage() {} func (*GetAllUsersUidReq) Descriptor() ([]byte, []int) { - return fileDescriptor_user_9367ac00c24112e8, []int{3} + return fileDescriptor_user_9e1dacb346b997d7, []int{3} } func (m *GetAllUsersUidReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetAllUsersUidReq.Unmarshal(m, b) @@ -222,7 +227,7 @@ func (m *GetAllUsersUidResp) Reset() { *m = GetAllUsersUidResp{} } func (m *GetAllUsersUidResp) String() string { return proto.CompactTextString(m) } func (*GetAllUsersUidResp) ProtoMessage() {} func (*GetAllUsersUidResp) Descriptor() ([]byte, []int) { - return fileDescriptor_user_9367ac00c24112e8, []int{4} + return fileDescriptor_user_9e1dacb346b997d7, []int{4} } func (m *GetAllUsersUidResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetAllUsersUidResp.Unmarshal(m, b) @@ -269,7 +274,7 @@ 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_user_9367ac00c24112e8, []int{5} + return fileDescriptor_user_9e1dacb346b997d7, []int{5} } func (m *GetUserInfoReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetUserInfoReq.Unmarshal(m, b) @@ -323,7 +328,7 @@ 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_user_9367ac00c24112e8, []int{6} + return fileDescriptor_user_9e1dacb346b997d7, []int{6} } func (m *GetUserInfoResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetUserInfoResp.Unmarshal(m, b) @@ -382,7 +387,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_user_9367ac00c24112e8, []int{7} + return fileDescriptor_user_9e1dacb346b997d7, []int{7} } func (m *UserInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_UserInfo.Unmarshal(m, b) @@ -470,7 +475,7 @@ func (m *LogoutReq) Reset() { *m = LogoutReq{} } func (m *LogoutReq) String() string { return proto.CompactTextString(m) } func (*LogoutReq) ProtoMessage() {} func (*LogoutReq) Descriptor() ([]byte, []int) { - return fileDescriptor_user_9367ac00c24112e8, []int{8} + return fileDescriptor_user_9e1dacb346b997d7, []int{8} } func (m *LogoutReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_LogoutReq.Unmarshal(m, b) @@ -524,7 +529,7 @@ 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_user_9367ac00c24112e8, []int{9} + return fileDescriptor_user_9e1dacb346b997d7, []int{9} } func (m *UpdateUserInfoReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_UpdateUserInfoReq.Unmarshal(m, b) @@ -627,43 +632,215 @@ func init() { proto.RegisterType((*UpdateUserInfoReq)(nil), "user.UpdateUserInfoReq") } -func init() { proto.RegisterFile("user/user.proto", fileDescriptor_user_9367ac00c24112e8) } +// 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 User service + +type UserClient interface { + GetUserInfo(ctx context.Context, in *GetUserInfoReq, opts ...grpc.CallOption) (*GetUserInfoResp, error) + UpdateUserInfo(ctx context.Context, in *UpdateUserInfoReq, opts ...grpc.CallOption) (*CommonResp, error) + DeleteUsers(ctx context.Context, in *DeleteUsersReq, opts ...grpc.CallOption) (*DeleteUsersResp, error) + GetAllUsersUid(ctx context.Context, in *GetAllUsersUidReq, opts ...grpc.CallOption) (*GetAllUsersUidResp, error) +} + +type userClient struct { + cc *grpc.ClientConn +} + +func NewUserClient(cc *grpc.ClientConn) UserClient { + return &userClient{cc} +} + +func (c *userClient) GetUserInfo(ctx context.Context, in *GetUserInfoReq, opts ...grpc.CallOption) (*GetUserInfoResp, error) { + out := new(GetUserInfoResp) + err := grpc.Invoke(ctx, "/user.user/getUserInfo", in, out, c.cc, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *userClient) UpdateUserInfo(ctx context.Context, in *UpdateUserInfoReq, opts ...grpc.CallOption) (*CommonResp, error) { + out := new(CommonResp) + err := grpc.Invoke(ctx, "/user.user/UpdateUserInfo", in, out, c.cc, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *userClient) DeleteUsers(ctx context.Context, in *DeleteUsersReq, opts ...grpc.CallOption) (*DeleteUsersResp, error) { + out := new(DeleteUsersResp) + err := grpc.Invoke(ctx, "/user.user/DeleteUsers", in, out, c.cc, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *userClient) GetAllUsersUid(ctx context.Context, in *GetAllUsersUidReq, opts ...grpc.CallOption) (*GetAllUsersUidResp, error) { + out := new(GetAllUsersUidResp) + err := grpc.Invoke(ctx, "/user.user/GetAllUsersUid", in, out, c.cc, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +// Server API for User service + +type UserServer interface { + GetUserInfo(context.Context, *GetUserInfoReq) (*GetUserInfoResp, error) + UpdateUserInfo(context.Context, *UpdateUserInfoReq) (*CommonResp, error) + DeleteUsers(context.Context, *DeleteUsersReq) (*DeleteUsersResp, error) + GetAllUsersUid(context.Context, *GetAllUsersUidReq) (*GetAllUsersUidResp, error) +} + +func RegisterUserServer(s *grpc.Server, srv UserServer) { + s.RegisterService(&_User_serviceDesc, srv) +} + +func _User_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.(UserServer).GetUserInfo(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/user.user/GetUserInfo", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(UserServer).GetUserInfo(ctx, req.(*GetUserInfoReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _User_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.(UserServer).UpdateUserInfo(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/user.user/UpdateUserInfo", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(UserServer).UpdateUserInfo(ctx, req.(*UpdateUserInfoReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _User_DeleteUsers_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(DeleteUsersReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(UserServer).DeleteUsers(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/user.user/DeleteUsers", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(UserServer).DeleteUsers(ctx, req.(*DeleteUsersReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _User_GetAllUsersUid_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetAllUsersUidReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(UserServer).GetAllUsersUid(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/user.user/GetAllUsersUid", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(UserServer).GetAllUsersUid(ctx, req.(*GetAllUsersUidReq)) + } + return interceptor(ctx, in, info, handler) +} + +var _User_serviceDesc = grpc.ServiceDesc{ + ServiceName: "user.user", + HandlerType: (*UserServer)(nil), + Methods: []grpc.MethodDesc{ + { + MethodName: "getUserInfo", + Handler: _User_GetUserInfo_Handler, + }, + { + MethodName: "UpdateUserInfo", + Handler: _User_UpdateUserInfo_Handler, + }, + { + MethodName: "DeleteUsers", + Handler: _User_DeleteUsers_Handler, + }, + { + MethodName: "GetAllUsersUid", + Handler: _User_GetAllUsersUid_Handler, + }, + }, + Streams: []grpc.StreamDesc{}, + Metadata: "user/user.proto", +} + +func init() { proto.RegisterFile("user/user.proto", fileDescriptor_user_9e1dacb346b997d7) } -var fileDescriptor_user_9367ac00c24112e8 = []byte{ - // 560 bytes of a gzipped FileDescriptorProto +var fileDescriptor_user_9e1dacb346b997d7 = []byte{ + // 562 bytes of a gzipped FileDescriptorProto 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xa4, 0x54, 0x4d, 0x6f, 0xd3, 0x40, - 0x10, 0x95, 0xed, 0x7c, 0x79, 0x22, 0x92, 0x74, 0x55, 0x60, 0x15, 0x21, 0x14, 0x59, 0x1c, 0x72, - 0x2a, 0x28, 0xdc, 0xe8, 0x09, 0x12, 0x51, 0x45, 0x14, 0x55, 0xb2, 0xe4, 0x0b, 0x27, 0x9c, 0xee, - 0x34, 0x5d, 0xe1, 0x78, 0x8d, 0xbd, 0x91, 0x7a, 0xe4, 0x27, 0xf1, 0xd7, 0xf8, 0x07, 0x68, 0xc7, - 0x71, 0xe2, 0xaf, 0x72, 0xa0, 0x17, 0x6b, 0xe7, 0xed, 0xfa, 0xbd, 0x7d, 0x33, 0xb3, 0x03, 0xe3, - 0x7d, 0x86, 0xe9, 0x5b, 0xf3, 0xb9, 0x48, 0x52, 0xa5, 0x15, 0xeb, 0x98, 0xb5, 0xf7, 0x19, 0x60, - 0xa9, 0x76, 0x3b, 0x15, 0xfb, 0x98, 0x25, 0xec, 0x15, 0xb8, 0x98, 0xa6, 0x2a, 0x5d, 0x2a, 0x81, - 0xdc, 0x9a, 0x59, 0xf3, 0xae, 0x7f, 0x02, 0xd8, 0x14, 0x06, 0x14, 0x7c, 0xcd, 0xb6, 0xdc, 0x9e, - 0x59, 0x73, 0xd7, 0x3f, 0xc6, 0x9e, 0x84, 0xf1, 0x0a, 0x23, 0xd4, 0x18, 0x64, 0x98, 0x66, 0x44, - 0xf6, 0x0e, 0xe0, 0xf6, 0x48, 0x4d, 0x6c, 0xc3, 0xc5, 0xe4, 0x82, 0x6e, 0x70, 0x92, 0xf4, 0x4b, - 0x67, 0xd8, 0x1b, 0x78, 0x76, 0x17, 0xca, 0x08, 0x45, 0x20, 0xc5, 0xb5, 0xcc, 0x34, 0xb7, 0x67, - 0xce, 0xdc, 0xf5, 0xab, 0xa0, 0x17, 0xc3, 0xa8, 0x22, 0xf5, 0xd3, 0xfc, 0x27, 0x72, 0xa4, 0xfa, - 0x5f, 0x05, 0x64, 0xe7, 0xd0, 0xd5, 0xea, 0x07, 0xc6, 0xdc, 0xa1, 0xbb, 0xe7, 0x01, 0x9b, 0xc1, - 0xf0, 0x26, 0xc1, 0x34, 0xd4, 0x52, 0xc5, 0xeb, 0x15, 0xef, 0xd0, 0x5e, 0x19, 0xf2, 0xbe, 0xc0, - 0xd9, 0x15, 0xea, 0x8f, 0x51, 0x44, 0x7a, 0x81, 0x14, 0x46, 0xf2, 0x48, 0x66, 0xd7, 0xc8, 0x54, - 0x89, 0x2c, 0x17, 0x2a, 0x43, 0xde, 0x77, 0x60, 0x75, 0xb2, 0xff, 0x4a, 0x15, 0x87, 0xfe, 0xbe, - 0x62, 0xb6, 0x08, 0xbd, 0x7b, 0x18, 0x5d, 0xa1, 0x36, 0xf4, 0xeb, 0xf8, 0x4e, 0x99, 0xbb, 0xbe, - 0x06, 0x30, 0x54, 0xeb, 0x15, 0x1d, 0xb7, 0xe8, 0x78, 0x09, 0x79, 0xdc, 0xcb, 0x4d, 0xd3, 0x4b, - 0x39, 0x31, 0x0a, 0xc6, 0x15, 0xa5, 0xa7, 0x34, 0x10, 0xf3, 0xa0, 0xb3, 0x0a, 0x75, 0xc8, 0x9d, - 0x99, 0x33, 0x1f, 0x2e, 0x46, 0xb9, 0xf9, 0x23, 0x37, 0xed, 0x79, 0xbf, 0x2d, 0x18, 0x14, 0x10, - 0x9b, 0x80, 0xb3, 0x97, 0x82, 0x44, 0x5c, 0xdf, 0x2c, 0x19, 0x83, 0x4e, 0x1c, 0xee, 0xf0, 0x40, - 0x4d, 0x6b, 0x83, 0xc9, 0x5b, 0x55, 0xd4, 0x9c, 0xd6, 0xec, 0x05, 0xf4, 0xb6, 0x18, 0x0b, 0x4c, - 0xa9, 0xda, 0x5d, 0xff, 0x10, 0x19, 0x7c, 0xa7, 0x36, 0x32, 0x42, 0xde, 0xa5, 0xd3, 0x87, 0xc8, - 0xe4, 0x67, 0x23, 0x53, 0x7d, 0xcf, 0x7b, 0x79, 0x7e, 0x28, 0x30, 0x28, 0xee, 0x42, 0x19, 0xf1, - 0x7e, 0x8e, 0x52, 0xc0, 0x46, 0x60, 0xe3, 0x03, 0x1f, 0x10, 0x64, 0xe3, 0x83, 0xb7, 0x04, 0xf7, - 0x5a, 0x6d, 0xd5, 0x5e, 0x9b, 0x42, 0xd4, 0x52, 0x6a, 0x35, 0x52, 0xda, 0x5e, 0x0a, 0xef, 0x8f, - 0x05, 0x67, 0x41, 0x22, 0xc2, 0xbc, 0xe5, 0x8b, 0xb2, 0x16, 0xd6, 0xac, 0x92, 0xb5, 0xb6, 0x14, - 0x9c, 0xec, 0x3a, 0x8f, 0xd8, 0xed, 0xb4, 0xdb, 0xed, 0xb6, 0xda, 0xed, 0x35, 0xed, 0xf6, 0x0b, - 0xbb, 0xa7, 0xfb, 0x0f, 0xfe, 0xd1, 0x4a, 0x6e, 0xd3, 0xf7, 0x04, 0x9c, 0x40, 0x0a, 0x0e, 0x79, - 0x31, 0x03, 0x29, 0x16, 0xbf, 0x6c, 0xa0, 0x09, 0xc5, 0x3e, 0xc0, 0x70, 0x7b, 0xea, 0x32, 0x76, - 0x9e, 0x77, 0x46, 0xb5, 0xc5, 0xa7, 0xcf, 0x5b, 0xd0, 0x2c, 0x61, 0x97, 0x30, 0xaa, 0xe6, 0x8d, - 0xbd, 0x3c, 0x34, 0x56, 0x3d, 0x9b, 0xd3, 0xc6, 0x73, 0x33, 0xc2, 0xa5, 0x39, 0x53, 0x08, 0x57, - 0x47, 0x4f, 0x21, 0x5c, 0x9f, 0x7d, 0x4b, 0x7a, 0x84, 0xa5, 0x67, 0x5e, 0x08, 0x37, 0x26, 0xc9, - 0x94, 0xb7, 0x6f, 0x64, 0xc9, 0xa7, 0xe1, 0x37, 0xd7, 0x6c, 0x5d, 0x9a, 0xcf, 0xa6, 0x47, 0x53, - 0xfb, 0xfd, 0xdf, 0x00, 0x00, 0x00, 0xff, 0xff, 0x78, 0x0f, 0x5a, 0xd9, 0xc8, 0x05, 0x00, 0x00, + 0x10, 0x95, 0xed, 0x24, 0x8d, 0x27, 0x6a, 0x92, 0xae, 0x0a, 0xac, 0x22, 0x84, 0x22, 0x8b, 0x43, + 0x4e, 0x01, 0x85, 0x1b, 0x3d, 0x41, 0x22, 0xaa, 0x88, 0xa2, 0x4a, 0x96, 0x7c, 0xe1, 0x84, 0xd3, + 0x9d, 0xa6, 0x2b, 0x1c, 0xaf, 0xb1, 0x37, 0x52, 0x8f, 0xfc, 0x24, 0xfe, 0x1a, 0xff, 0x00, 0xed, + 0x38, 0x4e, 0xfc, 0x55, 0x0e, 0x70, 0xb1, 0x76, 0xde, 0xae, 0xdf, 0xdb, 0x37, 0x33, 0x3b, 0x30, + 0xda, 0x67, 0x98, 0xbe, 0x31, 0x9f, 0x79, 0x92, 0x2a, 0xad, 0x58, 0xc7, 0xac, 0xbd, 0x4f, 0x00, + 0x4b, 0xb5, 0xdb, 0xa9, 0xd8, 0xc7, 0x2c, 0x61, 0x2f, 0xc1, 0xc5, 0x34, 0x55, 0xe9, 0x52, 0x09, + 0xe4, 0xd6, 0xd4, 0x9a, 0x75, 0xfd, 0x13, 0xc0, 0x26, 0xd0, 0xa7, 0xe0, 0x4b, 0xb6, 0xe5, 0xf6, + 0xd4, 0x9a, 0xb9, 0xfe, 0x31, 0xf6, 0x24, 0x8c, 0x56, 0x18, 0xa1, 0xc6, 0x20, 0xc3, 0x34, 0x23, + 0xb2, 0xb7, 0x00, 0x77, 0x47, 0x6a, 0x62, 0x1b, 0x2c, 0xc6, 0x73, 0xba, 0xc1, 0x49, 0xd2, 0x2f, + 0x9d, 0x61, 0xaf, 0xe1, 0xfc, 0x3e, 0x94, 0x11, 0x8a, 0x40, 0x8a, 0x1b, 0x99, 0x69, 0x6e, 0x4f, + 0x9d, 0x99, 0xeb, 0x57, 0x41, 0x2f, 0x86, 0x61, 0x45, 0xea, 0x87, 0xf9, 0x4f, 0xe4, 0x48, 0xf5, + 0xbf, 0x0a, 0xc8, 0x2e, 0xa1, 0xab, 0xd5, 0x77, 0x8c, 0xb9, 0x43, 0x77, 0xcf, 0x03, 0x36, 0x85, + 0xc1, 0x6d, 0x82, 0x69, 0xa8, 0xa5, 0x8a, 0xd7, 0x2b, 0xde, 0xa1, 0xbd, 0x32, 0xe4, 0x7d, 0x86, + 0x8b, 0x6b, 0xd4, 0x1f, 0xa2, 0x88, 0xf4, 0x02, 0x29, 0x8c, 0xe4, 0x91, 0xcc, 0xae, 0x91, 0xa9, + 0x12, 0x59, 0x2e, 0x54, 0x86, 0xbc, 0x6f, 0xc0, 0xea, 0x64, 0xff, 0x94, 0x2a, 0x0e, 0x67, 0xfb, + 0x8a, 0xd9, 0x22, 0xf4, 0x1e, 0x60, 0x78, 0x8d, 0xda, 0xd0, 0xaf, 0xe3, 0x7b, 0x65, 0xee, 0xfa, + 0x0a, 0xc0, 0x50, 0xad, 0x57, 0x74, 0xdc, 0xa2, 0xe3, 0x25, 0xe4, 0x69, 0x2f, 0xb7, 0x4d, 0x2f, + 0xe5, 0xc4, 0x28, 0x18, 0x55, 0x94, 0xfe, 0xa7, 0x81, 0x98, 0x07, 0x9d, 0x55, 0xa8, 0x43, 0xee, + 0x4c, 0x9d, 0xd9, 0x60, 0x31, 0xcc, 0xcd, 0x1f, 0xb9, 0x69, 0xcf, 0xfb, 0x65, 0x41, 0xbf, 0x80, + 0xd8, 0x18, 0x9c, 0xbd, 0x14, 0x24, 0xe2, 0xfa, 0x66, 0xc9, 0x18, 0x74, 0xe2, 0x70, 0x87, 0x07, + 0x6a, 0x5a, 0x1b, 0x4c, 0xde, 0xa9, 0xa2, 0xe6, 0xb4, 0x66, 0xcf, 0xa1, 0xb7, 0xc5, 0x58, 0x60, + 0x4a, 0xd5, 0xee, 0xfa, 0x87, 0xc8, 0xe0, 0x3b, 0xb5, 0x91, 0x11, 0xf2, 0x2e, 0x9d, 0x3e, 0x44, + 0x26, 0x3f, 0x1b, 0x99, 0xea, 0x07, 0xde, 0xcb, 0xf3, 0x43, 0x81, 0x41, 0x71, 0x17, 0xca, 0x88, + 0x9f, 0xe5, 0x28, 0x05, 0x6c, 0x08, 0x36, 0x3e, 0xf2, 0x3e, 0x41, 0x36, 0x3e, 0x7a, 0x4b, 0x70, + 0x6f, 0xd4, 0x56, 0xed, 0xb5, 0x29, 0x44, 0x2d, 0xa5, 0x56, 0x23, 0xa5, 0xed, 0xa5, 0xf0, 0x7e, + 0x5b, 0x70, 0x11, 0x24, 0x22, 0xcc, 0x5b, 0xbe, 0x28, 0x6b, 0x61, 0xcd, 0x2a, 0x59, 0x6b, 0x4b, + 0xc1, 0xc9, 0xae, 0xf3, 0x84, 0xdd, 0x4e, 0xbb, 0xdd, 0x6e, 0xab, 0xdd, 0x5e, 0xd3, 0xee, 0x59, + 0x61, 0xf7, 0x74, 0xff, 0xfe, 0x5f, 0x5a, 0xc9, 0x6d, 0xfa, 0x1e, 0x83, 0x13, 0x48, 0xc1, 0x21, + 0x2f, 0x66, 0x20, 0xc5, 0xe2, 0xa7, 0x0d, 0x34, 0xa1, 0xd8, 0x7b, 0x18, 0x6c, 0x4f, 0x5d, 0xc6, + 0x2e, 0xf3, 0xce, 0xa8, 0xb6, 0xf8, 0xe4, 0x59, 0x0b, 0x9a, 0x25, 0xec, 0x0a, 0x86, 0xd5, 0xbc, + 0xb1, 0x17, 0x87, 0xc6, 0xaa, 0x67, 0x73, 0xd2, 0x78, 0x6e, 0x46, 0xb8, 0x34, 0x67, 0x0a, 0xe1, + 0xea, 0xe8, 0x29, 0x84, 0xeb, 0xb3, 0x6f, 0x49, 0x8f, 0xb0, 0xf4, 0xcc, 0x0b, 0xe1, 0xc6, 0x24, + 0x99, 0xf0, 0xf6, 0x8d, 0x2c, 0xf9, 0x78, 0xfe, 0x75, 0x30, 0xa7, 0x89, 0x7d, 0x65, 0x3e, 0x9b, + 0x1e, 0xcd, 0xed, 0x77, 0x7f, 0x02, 0x00, 0x00, 0xff, 0xff, 0x30, 0xbd, 0x59, 0x5b, 0xca, 0x05, + 0x00, 0x00, } From 8ac9090171ba5e9a29df91193852b9b52415013c Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Mon, 25 Oct 2021 10:00:52 +0800 Subject: [PATCH 009/814] send message modify and ws add binary pt --- src/api/chat/send_msg.go | 2 +- src/api/manage/management_chat.go | 2 +- src/rpc/chat/chat/send_msg.go | 7 ++++++- 3 files changed, 8 insertions(+), 3 deletions(-) diff --git a/src/api/chat/send_msg.go b/src/api/chat/send_msg.go index b6c1c75ac..ede81abdd 100644 --- a/src/api/chat/send_msg.go +++ b/src/api/chat/send_msg.go @@ -87,7 +87,7 @@ func UserSendMsg(c *gin.Context) { "data": gin.H{ "clientMsgID": reply.ClientMsgID, "serverMsgID": reply.ServerMsgID, - "sendTime": 0, + "sendTime": reply.SendTime, }, }) diff --git a/src/api/manage/management_chat.go b/src/api/manage/management_chat.go index 19c6713dd..fd9c89b27 100644 --- a/src/api/manage/management_chat.go +++ b/src/api/manage/management_chat.go @@ -125,7 +125,7 @@ func ManagementSendMsg(c *gin.Context) { c.JSON(http.StatusOK, gin.H{ "errCode": reply.ErrCode, "errMsg": reply.ErrMsg, - "sendTime": "", + "sendTime": reply.SendTime, "msgID": reply.ClientMsgID, }) diff --git a/src/rpc/chat/chat/send_msg.go b/src/rpc/chat/chat/send_msg.go index a11f929e6..0f1d2d6b0 100644 --- a/src/rpc/chat/chat/send_msg.go +++ b/src/rpc/chat/chat/send_msg.go @@ -66,7 +66,11 @@ func (rpc *rpcChat) UserSendMsg(_ context.Context, pb *pbChat.UserSendMsgReq) (* pbData.MsgID = serverMsgID pbData.OperationID = pb.OperationID pbData.Token = pb.Token - pbData.SendTime = pb.SendTime + if pb.SendTime == 0 { + pbData.SendTime = utils.GetCurrentTimestampByNano() + } else { + pbData.SendTime = pb.SendTime + } m := MsgCallBackResp{} if config.Config.MessageCallBack.CallbackSwitch { bMsg, err := http2.Post(config.Config.MessageCallBack.CallbackUrl, MsgCallBackReq{ @@ -182,5 +186,6 @@ func returnMsg(replay *pbChat.UserSendMsgResp, pb *pbChat.UserSendMsgReq, errCod replay.ReqIdentifier = pb.ReqIdentifier replay.ClientMsgID = pb.ClientMsgID replay.ServerMsgID = serverMsgID + replay.SendTime = sendTime return replay, nil } From 8777dd35df06662f1751ac7b6697e289353717bb Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Mon, 25 Oct 2021 11:00:01 +0800 Subject: [PATCH 010/814] validate modify --- src/msg_gateway/gate/validate.go | 29 +++++++++++++++++++---------- 1 file changed, 19 insertions(+), 10 deletions(-) diff --git a/src/msg_gateway/gate/validate.go b/src/msg_gateway/gate/validate.go index 57ec1877d..fbdaf41d9 100644 --- a/src/msg_gateway/gate/validate.go +++ b/src/msg_gateway/gate/validate.go @@ -9,16 +9,17 @@ package gate import ( "Open_IM/src/common/constant" "Open_IM/src/common/log" - "github.com/mitchellh/mapstructure" + "bytes" + "encoding/gob" ) type Req struct { - ReqIdentifier int32 `json:"reqIdentifier" validate:"required"` - Token string `json:"token" validate:"required"` - SendID string `json:"sendID" validate:"required"` - OperationID string `json:"operationID" validate:"required"` - MsgIncr string `json:"msgIncr" validate:"required"` - Data interface{} `json:"data"` + ReqIdentifier int32 `json:"reqIdentifier" validate:"required"` + Token string `json:"token" validate:"required"` + SendID string `json:"sendID" validate:"required"` + OperationID string `json:"operationID" validate:"required"` + MsgIncr string `json:"msgIncr" validate:"required"` + Data []byte `json:"data"` } type Resp struct { ReqIdentifier int32 `json:"reqIdentifier"` @@ -60,10 +61,18 @@ func (ws *WServer) argsValidate(m *Req, r int32) (isPass bool, errCode int32, er data = SeqListData{} default: } - if err := mapstructure.WeakDecode(m.Data, &data); err != nil { - log.ErrorByKv("map to Data struct err", "", "err", err.Error(), "reqIdentifier", r) + b := bytes.NewBuffer(m.Data) + dec := gob.NewDecoder(b) + err := dec.Decode(&data) + if err != nil { + log.ErrorByKv("Decode Data struct err", "", "err", err.Error(), "reqIdentifier", r) return false, 203, err.Error(), nil - } else if err := validate.Struct(data); err != nil { + } + //if err := mapstructure.WeakDecode(m.Data, &data); err != nil { + // log.ErrorByKv("map to Data struct err", "", "err", err.Error(), "reqIdentifier", r) + // return false, 203, err.Error(), nil + //} else + if err = validate.Struct(data); err != nil { log.ErrorByKv("data args validate err", "", "err", err.Error(), "reqIdentifier", r) return false, 204, err.Error(), nil From 99792ae8d777bad8c6a27776c203613a9fdfd7ea Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Mon, 25 Oct 2021 12:09:57 +0800 Subject: [PATCH 011/814] pb file --- src/proto/sdk_ws/ws.proto | 72 +++++++++++++++++++++++++++++++++++++++ 1 file changed, 72 insertions(+) create mode 100644 src/proto/sdk_ws/ws.proto diff --git a/src/proto/sdk_ws/ws.proto b/src/proto/sdk_ws/ws.proto new file mode 100644 index 000000000..581b9db18 --- /dev/null +++ b/src/proto/sdk_ws/ws.proto @@ -0,0 +1,72 @@ +syntax = "proto3"; +package pbWs;//The package name to which the proto file belongs +option go_package = "./sdk_ws;pbWs";//The generated go pb file is in the current directory, and the package name is pbChat + + +message PullMessageBySeqListResp { + int64 MaxSeq = 1; + int64 MinSeq = 2; + repeated GatherFormat SingleUserMsg = 3; + repeated GatherFormat GroupUserMsg = 4; +} +message PullMessageBySeqListReq{ + repeated int64 seqList =1; +} +message GetNewSeqReq { +} +message GetNewSeqResp { + int64 Seq = 1; +} +message GatherFormat{ + // @inject_tag: json:"id" + string ID = 1; + // @inject_tag: json:"list" + repeated MsgFormat List = 2;//detail msg +} +message MsgFormat{ + // @inject_tag: json:"sendID" + string SendID = 1; + // @inject_tag: json:"recvID" + string RecvID = 2; + // @inject_tag: json:"msgFrom" + int32 MsgFrom = 3; + // @inject_tag: json:"contentType" + int32 ContentType = 4; + // @inject_tag: json:"serverMsgID" + string ServerMsgID = 5; + // @inject_tag: json:"content" + string Content = 6; + // @inject_tag: json:"seq" + int64 Seq = 7; + // @inject_tag: json:"sendTime" + int64 SendTime = 8; + // @inject_tag: json:"senderPlatformID" + int32 SenderPlatformID = 9; + // @inject_tag: json:"senderNickName" + string SenderNickName = 10; + // @inject_tag: json:"senderFaceUrl" + string SenderFaceURL = 11; + // @inject_tag: json:"clientMsgID" + string ClientMsgID = 12; +} + +message UserSendMsgReq { + map Options= 1; + string SenderNickName = 2; + string SenderFaceURL = 3; + int32 PlatformID = 4; + int32 SessionType = 5; + int32 MsgFrom = 6; + int32 ContentType = 7; + string RecvID = 8; + repeated string ForceList = 9; + string Content = 10; + string ClientMsgID = 11; +} + +message UserSendMsgResp { + string ServerMsgID = 1; + string ClientMsgID = 2; + int64 sendTime = 3; + +} From d98253db438b3e7e305bd390947a68811332e5d2 Mon Sep 17 00:00:00 2001 From: root Date: Mon, 25 Oct 2021 12:19:24 +0800 Subject: [PATCH 012/814] pb file --- src/proto/sdk_ws/ws.pb.go | 601 ++++++++++++++++++++++++++++++++++++++ 1 file changed, 601 insertions(+) create mode 100644 src/proto/sdk_ws/ws.pb.go diff --git a/src/proto/sdk_ws/ws.pb.go b/src/proto/sdk_ws/ws.pb.go new file mode 100644 index 000000000..a7eef6f4f --- /dev/null +++ b/src/proto/sdk_ws/ws.pb.go @@ -0,0 +1,601 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// source: sdk_ws/ws.proto + +package pbWs // import "./sdk_ws" + +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" + +// 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 PullMessageBySeqListResp struct { + MaxSeq int64 `protobuf:"varint,1,opt,name=MaxSeq" json:"MaxSeq,omitempty"` + MinSeq int64 `protobuf:"varint,2,opt,name=MinSeq" json:"MinSeq,omitempty"` + SingleUserMsg []*GatherFormat `protobuf:"bytes,3,rep,name=SingleUserMsg" json:"SingleUserMsg,omitempty"` + GroupUserMsg []*GatherFormat `protobuf:"bytes,4,rep,name=GroupUserMsg" json:"GroupUserMsg,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *PullMessageBySeqListResp) Reset() { *m = PullMessageBySeqListResp{} } +func (m *PullMessageBySeqListResp) String() string { return proto.CompactTextString(m) } +func (*PullMessageBySeqListResp) ProtoMessage() {} +func (*PullMessageBySeqListResp) Descriptor() ([]byte, []int) { + return fileDescriptor_ws_61fa28b4145bb9af, []int{0} +} +func (m *PullMessageBySeqListResp) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_PullMessageBySeqListResp.Unmarshal(m, b) +} +func (m *PullMessageBySeqListResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_PullMessageBySeqListResp.Marshal(b, m, deterministic) +} +func (dst *PullMessageBySeqListResp) XXX_Merge(src proto.Message) { + xxx_messageInfo_PullMessageBySeqListResp.Merge(dst, src) +} +func (m *PullMessageBySeqListResp) XXX_Size() int { + return xxx_messageInfo_PullMessageBySeqListResp.Size(m) +} +func (m *PullMessageBySeqListResp) XXX_DiscardUnknown() { + xxx_messageInfo_PullMessageBySeqListResp.DiscardUnknown(m) +} + +var xxx_messageInfo_PullMessageBySeqListResp proto.InternalMessageInfo + +func (m *PullMessageBySeqListResp) GetMaxSeq() int64 { + if m != nil { + return m.MaxSeq + } + return 0 +} + +func (m *PullMessageBySeqListResp) GetMinSeq() int64 { + if m != nil { + return m.MinSeq + } + return 0 +} + +func (m *PullMessageBySeqListResp) GetSingleUserMsg() []*GatherFormat { + if m != nil { + return m.SingleUserMsg + } + return nil +} + +func (m *PullMessageBySeqListResp) GetGroupUserMsg() []*GatherFormat { + if m != nil { + return m.GroupUserMsg + } + return nil +} + +type PullMessageBySeqListReq struct { + SeqList []int64 `protobuf:"varint,1,rep,packed,name=seqList" json:"seqList,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +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_61fa28b4145bb9af, []int{1} +} +func (m *PullMessageBySeqListReq) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_PullMessageBySeqListReq.Unmarshal(m, b) +} +func (m *PullMessageBySeqListReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_PullMessageBySeqListReq.Marshal(b, m, deterministic) +} +func (dst *PullMessageBySeqListReq) XXX_Merge(src proto.Message) { + xxx_messageInfo_PullMessageBySeqListReq.Merge(dst, src) +} +func (m *PullMessageBySeqListReq) XXX_Size() int { + return xxx_messageInfo_PullMessageBySeqListReq.Size(m) +} +func (m *PullMessageBySeqListReq) XXX_DiscardUnknown() { + xxx_messageInfo_PullMessageBySeqListReq.DiscardUnknown(m) +} + +var xxx_messageInfo_PullMessageBySeqListReq proto.InternalMessageInfo + +func (m *PullMessageBySeqListReq) GetSeqList() []int64 { + if m != nil { + return m.SeqList + } + return nil +} + +type GetNewSeqReq struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *GetNewSeqReq) Reset() { *m = GetNewSeqReq{} } +func (m *GetNewSeqReq) String() string { return proto.CompactTextString(m) } +func (*GetNewSeqReq) ProtoMessage() {} +func (*GetNewSeqReq) Descriptor() ([]byte, []int) { + return fileDescriptor_ws_61fa28b4145bb9af, []int{2} +} +func (m *GetNewSeqReq) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GetNewSeqReq.Unmarshal(m, b) +} +func (m *GetNewSeqReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GetNewSeqReq.Marshal(b, m, deterministic) +} +func (dst *GetNewSeqReq) XXX_Merge(src proto.Message) { + xxx_messageInfo_GetNewSeqReq.Merge(dst, src) +} +func (m *GetNewSeqReq) XXX_Size() int { + return xxx_messageInfo_GetNewSeqReq.Size(m) +} +func (m *GetNewSeqReq) XXX_DiscardUnknown() { + xxx_messageInfo_GetNewSeqReq.DiscardUnknown(m) +} + +var xxx_messageInfo_GetNewSeqReq proto.InternalMessageInfo + +type GetNewSeqResp struct { + Seq int64 `protobuf:"varint,1,opt,name=Seq" json:"Seq,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *GetNewSeqResp) Reset() { *m = GetNewSeqResp{} } +func (m *GetNewSeqResp) String() string { return proto.CompactTextString(m) } +func (*GetNewSeqResp) ProtoMessage() {} +func (*GetNewSeqResp) Descriptor() ([]byte, []int) { + return fileDescriptor_ws_61fa28b4145bb9af, []int{3} +} +func (m *GetNewSeqResp) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GetNewSeqResp.Unmarshal(m, b) +} +func (m *GetNewSeqResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GetNewSeqResp.Marshal(b, m, deterministic) +} +func (dst *GetNewSeqResp) XXX_Merge(src proto.Message) { + xxx_messageInfo_GetNewSeqResp.Merge(dst, src) +} +func (m *GetNewSeqResp) XXX_Size() int { + return xxx_messageInfo_GetNewSeqResp.Size(m) +} +func (m *GetNewSeqResp) XXX_DiscardUnknown() { + xxx_messageInfo_GetNewSeqResp.DiscardUnknown(m) +} + +var xxx_messageInfo_GetNewSeqResp proto.InternalMessageInfo + +func (m *GetNewSeqResp) GetSeq() int64 { + if m != nil { + return m.Seq + } + return 0 +} + +type GatherFormat struct { + // @inject_tag: json:"id" + ID string `protobuf:"bytes,1,opt,name=ID" json:"id"` + // @inject_tag: json:"list" + List []*MsgFormat `protobuf:"bytes,2,rep,name=List" json:"list"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *GatherFormat) Reset() { *m = GatherFormat{} } +func (m *GatherFormat) String() string { return proto.CompactTextString(m) } +func (*GatherFormat) ProtoMessage() {} +func (*GatherFormat) Descriptor() ([]byte, []int) { + return fileDescriptor_ws_61fa28b4145bb9af, []int{4} +} +func (m *GatherFormat) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GatherFormat.Unmarshal(m, b) +} +func (m *GatherFormat) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GatherFormat.Marshal(b, m, deterministic) +} +func (dst *GatherFormat) XXX_Merge(src proto.Message) { + xxx_messageInfo_GatherFormat.Merge(dst, src) +} +func (m *GatherFormat) XXX_Size() int { + return xxx_messageInfo_GatherFormat.Size(m) +} +func (m *GatherFormat) XXX_DiscardUnknown() { + xxx_messageInfo_GatherFormat.DiscardUnknown(m) +} + +var xxx_messageInfo_GatherFormat proto.InternalMessageInfo + +func (m *GatherFormat) GetID() string { + if m != nil { + return m.ID + } + return "" +} + +func (m *GatherFormat) GetList() []*MsgFormat { + if m != nil { + return m.List + } + return nil +} + +type MsgFormat struct { + // @inject_tag: json:"sendID" + SendID string `protobuf:"bytes,1,opt,name=SendID" json:"sendID"` + // @inject_tag: json:"recvID" + RecvID string `protobuf:"bytes,2,opt,name=RecvID" json:"recvID"` + // @inject_tag: json:"msgFrom" + MsgFrom int32 `protobuf:"varint,3,opt,name=MsgFrom" json:"msgFrom"` + // @inject_tag: json:"contentType" + ContentType int32 `protobuf:"varint,4,opt,name=ContentType" json:"contentType"` + // @inject_tag: json:"serverMsgID" + ServerMsgID string `protobuf:"bytes,5,opt,name=ServerMsgID" json:"serverMsgID"` + // @inject_tag: json:"content" + Content string `protobuf:"bytes,6,opt,name=Content" json:"content"` + // @inject_tag: json:"seq" + Seq int64 `protobuf:"varint,7,opt,name=Seq" json:"seq"` + // @inject_tag: json:"sendTime" + SendTime int64 `protobuf:"varint,8,opt,name=SendTime" json:"sendTime"` + // @inject_tag: json:"senderPlatformID" + SenderPlatformID int32 `protobuf:"varint,9,opt,name=SenderPlatformID" json:"senderPlatformID"` + // @inject_tag: json:"senderNickName" + SenderNickName string `protobuf:"bytes,10,opt,name=SenderNickName" json:"senderNickName"` + // @inject_tag: json:"senderFaceUrl" + SenderFaceURL string `protobuf:"bytes,11,opt,name=SenderFaceURL" json:"senderFaceUrl"` + // @inject_tag: json:"clientMsgID" + ClientMsgID string `protobuf:"bytes,12,opt,name=ClientMsgID" json:"clientMsgID"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *MsgFormat) Reset() { *m = MsgFormat{} } +func (m *MsgFormat) String() string { return proto.CompactTextString(m) } +func (*MsgFormat) ProtoMessage() {} +func (*MsgFormat) Descriptor() ([]byte, []int) { + return fileDescriptor_ws_61fa28b4145bb9af, []int{5} +} +func (m *MsgFormat) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_MsgFormat.Unmarshal(m, b) +} +func (m *MsgFormat) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_MsgFormat.Marshal(b, m, deterministic) +} +func (dst *MsgFormat) XXX_Merge(src proto.Message) { + xxx_messageInfo_MsgFormat.Merge(dst, src) +} +func (m *MsgFormat) XXX_Size() int { + return xxx_messageInfo_MsgFormat.Size(m) +} +func (m *MsgFormat) XXX_DiscardUnknown() { + xxx_messageInfo_MsgFormat.DiscardUnknown(m) +} + +var xxx_messageInfo_MsgFormat proto.InternalMessageInfo + +func (m *MsgFormat) GetSendID() string { + if m != nil { + return m.SendID + } + return "" +} + +func (m *MsgFormat) GetRecvID() string { + if m != nil { + return m.RecvID + } + return "" +} + +func (m *MsgFormat) GetMsgFrom() int32 { + if m != nil { + return m.MsgFrom + } + return 0 +} + +func (m *MsgFormat) GetContentType() int32 { + if m != nil { + return m.ContentType + } + return 0 +} + +func (m *MsgFormat) GetServerMsgID() string { + if m != nil { + return m.ServerMsgID + } + return "" +} + +func (m *MsgFormat) GetContent() string { + if m != nil { + return m.Content + } + return "" +} + +func (m *MsgFormat) GetSeq() int64 { + if m != nil { + return m.Seq + } + return 0 +} + +func (m *MsgFormat) GetSendTime() int64 { + if m != nil { + return m.SendTime + } + return 0 +} + +func (m *MsgFormat) GetSenderPlatformID() int32 { + if m != nil { + return m.SenderPlatformID + } + return 0 +} + +func (m *MsgFormat) GetSenderNickName() string { + if m != nil { + return m.SenderNickName + } + return "" +} + +func (m *MsgFormat) GetSenderFaceURL() string { + if m != nil { + return m.SenderFaceURL + } + return "" +} + +func (m *MsgFormat) GetClientMsgID() string { + if m != nil { + return m.ClientMsgID + } + return "" +} + +type UserSendMsgReq struct { + Options map[string]int32 `protobuf:"bytes,1,rep,name=Options" json:"Options,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` + SenderNickName string `protobuf:"bytes,2,opt,name=SenderNickName" json:"SenderNickName,omitempty"` + SenderFaceURL string `protobuf:"bytes,3,opt,name=SenderFaceURL" json:"SenderFaceURL,omitempty"` + PlatformID int32 `protobuf:"varint,4,opt,name=PlatformID" json:"PlatformID,omitempty"` + SessionType int32 `protobuf:"varint,5,opt,name=SessionType" json:"SessionType,omitempty"` + MsgFrom int32 `protobuf:"varint,6,opt,name=MsgFrom" json:"MsgFrom,omitempty"` + ContentType int32 `protobuf:"varint,7,opt,name=ContentType" json:"ContentType,omitempty"` + RecvID string `protobuf:"bytes,8,opt,name=RecvID" json:"RecvID,omitempty"` + ForceList []string `protobuf:"bytes,9,rep,name=ForceList" json:"ForceList,omitempty"` + Content string `protobuf:"bytes,10,opt,name=Content" json:"Content,omitempty"` + ClientMsgID string `protobuf:"bytes,11,opt,name=ClientMsgID" json:"ClientMsgID,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *UserSendMsgReq) Reset() { *m = UserSendMsgReq{} } +func (m *UserSendMsgReq) String() string { return proto.CompactTextString(m) } +func (*UserSendMsgReq) ProtoMessage() {} +func (*UserSendMsgReq) Descriptor() ([]byte, []int) { + return fileDescriptor_ws_61fa28b4145bb9af, []int{6} +} +func (m *UserSendMsgReq) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_UserSendMsgReq.Unmarshal(m, b) +} +func (m *UserSendMsgReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_UserSendMsgReq.Marshal(b, m, deterministic) +} +func (dst *UserSendMsgReq) XXX_Merge(src proto.Message) { + xxx_messageInfo_UserSendMsgReq.Merge(dst, src) +} +func (m *UserSendMsgReq) XXX_Size() int { + return xxx_messageInfo_UserSendMsgReq.Size(m) +} +func (m *UserSendMsgReq) XXX_DiscardUnknown() { + xxx_messageInfo_UserSendMsgReq.DiscardUnknown(m) +} + +var xxx_messageInfo_UserSendMsgReq proto.InternalMessageInfo + +func (m *UserSendMsgReq) GetOptions() map[string]int32 { + if m != nil { + return m.Options + } + return nil +} + +func (m *UserSendMsgReq) GetSenderNickName() string { + if m != nil { + return m.SenderNickName + } + return "" +} + +func (m *UserSendMsgReq) GetSenderFaceURL() string { + if m != nil { + return m.SenderFaceURL + } + return "" +} + +func (m *UserSendMsgReq) GetPlatformID() int32 { + if m != nil { + return m.PlatformID + } + return 0 +} + +func (m *UserSendMsgReq) GetSessionType() int32 { + if m != nil { + return m.SessionType + } + return 0 +} + +func (m *UserSendMsgReq) GetMsgFrom() int32 { + if m != nil { + return m.MsgFrom + } + return 0 +} + +func (m *UserSendMsgReq) GetContentType() int32 { + if m != nil { + return m.ContentType + } + return 0 +} + +func (m *UserSendMsgReq) GetRecvID() string { + if m != nil { + return m.RecvID + } + return "" +} + +func (m *UserSendMsgReq) GetForceList() []string { + if m != nil { + return m.ForceList + } + return nil +} + +func (m *UserSendMsgReq) GetContent() string { + if m != nil { + return m.Content + } + return "" +} + +func (m *UserSendMsgReq) GetClientMsgID() string { + if m != nil { + return m.ClientMsgID + } + return "" +} + +type UserSendMsgResp struct { + ServerMsgID string `protobuf:"bytes,1,opt,name=ServerMsgID" json:"ServerMsgID,omitempty"` + ClientMsgID string `protobuf:"bytes,2,opt,name=ClientMsgID" json:"ClientMsgID,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 *UserSendMsgResp) Reset() { *m = UserSendMsgResp{} } +func (m *UserSendMsgResp) String() string { return proto.CompactTextString(m) } +func (*UserSendMsgResp) ProtoMessage() {} +func (*UserSendMsgResp) Descriptor() ([]byte, []int) { + return fileDescriptor_ws_61fa28b4145bb9af, []int{7} +} +func (m *UserSendMsgResp) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_UserSendMsgResp.Unmarshal(m, b) +} +func (m *UserSendMsgResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_UserSendMsgResp.Marshal(b, m, deterministic) +} +func (dst *UserSendMsgResp) XXX_Merge(src proto.Message) { + xxx_messageInfo_UserSendMsgResp.Merge(dst, src) +} +func (m *UserSendMsgResp) XXX_Size() int { + return xxx_messageInfo_UserSendMsgResp.Size(m) +} +func (m *UserSendMsgResp) XXX_DiscardUnknown() { + xxx_messageInfo_UserSendMsgResp.DiscardUnknown(m) +} + +var xxx_messageInfo_UserSendMsgResp proto.InternalMessageInfo + +func (m *UserSendMsgResp) GetServerMsgID() string { + if m != nil { + return m.ServerMsgID + } + return "" +} + +func (m *UserSendMsgResp) GetClientMsgID() string { + if m != nil { + return m.ClientMsgID + } + return "" +} + +func (m *UserSendMsgResp) GetSendTime() int64 { + if m != nil { + return m.SendTime + } + return 0 +} + +func init() { + proto.RegisterType((*PullMessageBySeqListResp)(nil), "pbWs.PullMessageBySeqListResp") + proto.RegisterType((*PullMessageBySeqListReq)(nil), "pbWs.PullMessageBySeqListReq") + proto.RegisterType((*GetNewSeqReq)(nil), "pbWs.GetNewSeqReq") + proto.RegisterType((*GetNewSeqResp)(nil), "pbWs.GetNewSeqResp") + proto.RegisterType((*GatherFormat)(nil), "pbWs.GatherFormat") + proto.RegisterType((*MsgFormat)(nil), "pbWs.MsgFormat") + proto.RegisterType((*UserSendMsgReq)(nil), "pbWs.UserSendMsgReq") + proto.RegisterMapType((map[string]int32)(nil), "pbWs.UserSendMsgReq.OptionsEntry") + proto.RegisterType((*UserSendMsgResp)(nil), "pbWs.UserSendMsgResp") +} + +func init() { proto.RegisterFile("sdk_ws/ws.proto", fileDescriptor_ws_61fa28b4145bb9af) } + +var fileDescriptor_ws_61fa28b4145bb9af = []byte{ + // 608 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x8c, 0x54, 0xdd, 0x6b, 0xdb, 0x3e, + 0x14, 0xc5, 0x76, 0x3e, 0xea, 0x9b, 0xaf, 0x22, 0x7e, 0xfc, 0x26, 0xca, 0x18, 0xae, 0x37, 0x46, + 0xd8, 0x43, 0x0a, 0x2d, 0x8c, 0xd2, 0xbe, 0xb5, 0x59, 0x4b, 0xa0, 0xc9, 0x8a, 0xdc, 0x32, 0xd8, + 0xcb, 0x70, 0xd3, 0xbb, 0xcc, 0xc4, 0xf1, 0x97, 0x9c, 0x64, 0xf9, 0xdf, 0xf6, 0xbe, 0xbf, 0x6a, + 0x30, 0x24, 0xd9, 0x89, 0x9d, 0x64, 0x63, 0x6f, 0x3a, 0x47, 0xf7, 0x4a, 0x47, 0xe7, 0x1e, 0x1b, + 0x3a, 0xfc, 0x79, 0xfa, 0x65, 0xc9, 0x4f, 0x96, 0xbc, 0x17, 0x25, 0x61, 0x1a, 0x92, 0x4a, 0xf4, + 0xf4, 0x89, 0xdb, 0x3f, 0x34, 0xa0, 0xf7, 0x73, 0xdf, 0x1f, 0x22, 0xe7, 0xee, 0x04, 0xaf, 0x56, + 0x0e, 0xc6, 0x77, 0x1e, 0x4f, 0x19, 0xf2, 0x88, 0xfc, 0x0f, 0xb5, 0xa1, 0xfb, 0xdd, 0xc1, 0x98, + 0x6a, 0x96, 0xd6, 0x35, 0x58, 0x86, 0x24, 0xef, 0x05, 0x82, 0xd7, 0x33, 0x5e, 0x22, 0x72, 0x0e, + 0x2d, 0xc7, 0x0b, 0x26, 0x3e, 0x3e, 0x72, 0x4c, 0x86, 0x7c, 0x42, 0x0d, 0xcb, 0xe8, 0x36, 0x4e, + 0x49, 0x4f, 0x5c, 0xd5, 0xbb, 0x75, 0xd3, 0x6f, 0x98, 0xdc, 0x84, 0xc9, 0xcc, 0x4d, 0x59, 0xb9, + 0x90, 0xbc, 0x87, 0xe6, 0x6d, 0x12, 0xce, 0xa3, 0xbc, 0xb1, 0xf2, 0xc7, 0xc6, 0x52, 0x9d, 0x7d, + 0x06, 0x2f, 0xf6, 0xab, 0x8f, 0x09, 0x85, 0x3a, 0x57, 0x88, 0x6a, 0x96, 0xd1, 0x35, 0x58, 0x0e, + 0xed, 0x36, 0x34, 0x6f, 0x31, 0x1d, 0xe1, 0xd2, 0xc1, 0x98, 0x61, 0x6c, 0x1f, 0x43, 0xab, 0x80, + 0x79, 0x44, 0x0e, 0xc1, 0xd8, 0x3c, 0x5a, 0x2c, 0xed, 0x6b, 0x68, 0x16, 0x55, 0x90, 0x36, 0xe8, + 0x83, 0xbe, 0x2c, 0x30, 0x99, 0x3e, 0xe8, 0x93, 0xd7, 0x50, 0x91, 0x37, 0xe9, 0x52, 0x77, 0x47, + 0xe9, 0x1e, 0xf2, 0x49, 0x26, 0x5a, 0x6e, 0xda, 0xbf, 0x74, 0x30, 0xd7, 0x9c, 0x30, 0xd1, 0xc1, + 0xe0, 0x79, 0x7d, 0x4c, 0x86, 0x04, 0xcf, 0x70, 0xbc, 0x18, 0xf4, 0xa5, 0xb9, 0x26, 0xcb, 0x90, + 0x78, 0x8f, 0x68, 0x4e, 0xc2, 0x19, 0x35, 0x2c, 0xad, 0x5b, 0x65, 0x39, 0x24, 0x16, 0x34, 0xae, + 0xc3, 0x20, 0xc5, 0x20, 0x7d, 0x58, 0x45, 0x48, 0x2b, 0x72, 0xb7, 0x48, 0x89, 0x0a, 0x07, 0x93, + 0x85, 0xf4, 0x6c, 0xd0, 0xa7, 0x55, 0x79, 0x70, 0x91, 0x12, 0xa7, 0x67, 0x0d, 0xb4, 0x26, 0x77, + 0x73, 0x98, 0x9b, 0x51, 0x5f, 0x9b, 0x41, 0x8e, 0xe0, 0x40, 0x68, 0x7d, 0xf0, 0x66, 0x48, 0x0f, + 0x24, 0xbd, 0xc6, 0xe4, 0x1d, 0x1c, 0x8a, 0x35, 0x26, 0xf7, 0xbe, 0x9b, 0x7e, 0x0d, 0x93, 0xd9, + 0xa0, 0x4f, 0x4d, 0x29, 0x68, 0x87, 0x27, 0x6f, 0xa1, 0xad, 0xb8, 0x91, 0x37, 0x9e, 0x8e, 0xdc, + 0x19, 0x52, 0x90, 0x57, 0x6f, 0xb1, 0xe4, 0x0d, 0xb4, 0x14, 0x73, 0xe3, 0x8e, 0xf1, 0x91, 0xdd, + 0xd1, 0x86, 0x2c, 0x2b, 0x93, 0xd2, 0x05, 0xdf, 0xc3, 0x20, 0x55, 0x6f, 0x6c, 0xaa, 0x37, 0x16, + 0x28, 0xfb, 0xa7, 0x01, 0x6d, 0x11, 0x1c, 0xd1, 0x37, 0xe4, 0x13, 0x11, 0x92, 0x4b, 0xa8, 0x7f, + 0x8c, 0x52, 0x2f, 0x0c, 0xb8, 0x0c, 0x49, 0xe3, 0xf4, 0x58, 0x8d, 0xae, 0x5c, 0xd6, 0xcb, 0x6a, + 0x3e, 0x04, 0x69, 0xb2, 0x62, 0x79, 0xc7, 0x1e, 0xfd, 0xfa, 0xbf, 0xe9, 0x37, 0xf6, 0xe9, 0x7f, + 0x05, 0x50, 0xf0, 0x4c, 0x0d, 0xb1, 0xc0, 0xa8, 0x19, 0x72, 0xee, 0x85, 0x81, 0x9c, 0x72, 0x55, + 0x4d, 0xb9, 0x40, 0x15, 0x13, 0x52, 0xfb, 0x6b, 0x42, 0xea, 0xbb, 0x09, 0xd9, 0xa4, 0xee, 0xa0, + 0x94, 0xba, 0x97, 0x60, 0xde, 0x84, 0xc9, 0x18, 0x65, 0xba, 0x4d, 0xcb, 0xe8, 0x9a, 0x6c, 0x43, + 0x14, 0x53, 0x03, 0xe5, 0xd4, 0x6c, 0x4d, 0xa3, 0xb1, 0x33, 0x8d, 0xa3, 0x0b, 0x68, 0x16, 0x6d, + 0x15, 0x39, 0x9b, 0xe2, 0x2a, 0xfb, 0x18, 0xc4, 0x92, 0xfc, 0x07, 0xd5, 0x85, 0xeb, 0xcf, 0x95, + 0xad, 0x55, 0xa6, 0xc0, 0x85, 0x7e, 0xae, 0xd9, 0x31, 0x74, 0x4a, 0x13, 0xe2, 0xd1, 0x76, 0xc4, + 0xb5, 0xdd, 0x88, 0x6f, 0x49, 0xd2, 0x77, 0x24, 0x89, 0x60, 0xf3, 0x3c, 0xd8, 0x86, 0x0a, 0x76, + 0x8e, 0xaf, 0x3a, 0x9f, 0x5b, 0xbd, 0x13, 0xf5, 0x0f, 0xbd, 0x14, 0x11, 0x79, 0xaa, 0xc9, 0xdf, + 0xe8, 0xd9, 0xef, 0x00, 0x00, 0x00, 0xff, 0xff, 0x89, 0xa7, 0x61, 0x67, 0x59, 0x05, 0x00, 0x00, +} From 5dabd9bf4b58bbf0407cd43fbae723288f5f0599 Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Mon, 25 Oct 2021 16:03:14 +0800 Subject: [PATCH 013/814] ws modify --- src/msg_gateway/gate/logic.go | 84 +++++++++++++++++--------------- src/msg_gateway/gate/validate.go | 74 ++++++++++++++++++---------- src/proto/sdk_ws/ws.proto | 4 +- src/utils/map.go | 5 ++ 4 files changed, 98 insertions(+), 69 deletions(-) diff --git a/src/msg_gateway/gate/logic.go b/src/msg_gateway/gate/logic.go index d8bc14e6e..ebd441ecb 100644 --- a/src/msg_gateway/gate/logic.go +++ b/src/msg_gateway/gate/logic.go @@ -6,11 +6,14 @@ import ( "Open_IM/src/common/log" "Open_IM/src/grpc-etcdv3/getcdv3" pbChat "Open_IM/src/proto/chat" + pbWs "Open_IM/src/proto/sdk_ws" "Open_IM/src/utils" "bytes" "context" "encoding/gob" + "encoding/json" "fmt" + "github.com/golang/protobuf/proto" "github.com/gorilla/websocket" "runtime" "strings" @@ -66,14 +69,17 @@ func (ws *WServer) msgParse(conn *UserConn, binaryMsg []byte) { } func (ws *WServer) newestSeqResp(conn *UserConn, m *Req, pb *pbChat.GetNewSeqResp) { - mReply := make(map[string]interface{}) - mData := make(map[string]interface{}) - mReply["reqIdentifier"] = m.ReqIdentifier - mReply["msgIncr"] = m.MsgIncr - mReply["errCode"] = pb.GetErrCode() - mReply["errMsg"] = pb.GetErrMsg() - mData["seq"] = pb.GetSeq() - mReply["data"] = mData + var mReplyData pbWs.GetNewSeqResp + mReplyData.Seq = pb.GetSeq() + b, _ := proto.Marshal(&mReplyData) + mReply := Resp{ + ReqIdentifier: m.ReqIdentifier, + MsgIncr: m.MsgIncr, + ErrCode: pb.GetErrCode(), + ErrMsg: pb.GetErrMsg(), + OperationID: m.OperationID, + Data: b, + } ws.sendMsg(conn, mReply) } func (ws *WServer) newestSeqReq(conn *UserConn, m *Req) { @@ -97,26 +103,28 @@ func (ws *WServer) newestSeqReq(conn *UserConn, m *Req) { } func (ws *WServer) pullMsgResp(conn *UserConn, m *Req, pb *pbChat.PullMessageResp) { - mReply := make(map[string]interface{}) - msg := make(map[string]interface{}) - mReply["reqIdentifier"] = m.ReqIdentifier - mReply["msgIncr"] = m.MsgIncr - mReply["errCode"] = pb.GetErrCode() - mReply["errMsg"] = pb.GetErrMsg() - //空切片 - if v := pb.GetSingleUserMsg(); v != nil { - msg["single"] = v - } else { - msg["single"] = []pbChat.GatherFormat{} + var mReplyData pbWs.PullMessageBySeqListResp + mReplyData.MaxSeq = pb.GetMaxSeq() + mReplyData.MinSeq = pb.GetMinSeq() + b, _ := json.Marshal(pb.GetSingleUserMsg) + err := json.Unmarshal(b, &mReplyData.SingleUserMsg) + if err != nil { + log.NewError(m.OperationID, "SingleUserMsg,json Unmarshal,err", err.Error()) } - if v := pb.GetGroupUserMsg(); v != nil { - msg["group"] = v - } else { - msg["group"] = []pbChat.GatherFormat{} + b, _ = json.Marshal(pb.GetGroupUserMsg()) + err = json.Unmarshal(b, &mReplyData.GroupUserMsg) + if err != nil { + log.NewError(m.OperationID, "GroupUserMsg,json Unmarshal,err", err.Error()) + } + c, _ := proto.Marshal(&mReplyData) + mReply := Resp{ + ReqIdentifier: m.ReqIdentifier, + MsgIncr: m.MsgIncr, + ErrCode: pb.GetErrCode(), + ErrMsg: pb.GetErrMsg(), + OperationID: m.OperationID, + Data: c, } - msg["maxSeq"] = pb.GetMaxSeq() - msg["minSeq"] = pb.GetMinSeq() - mReply["data"] = msg ws.sendMsg(conn, mReply) } @@ -153,7 +161,7 @@ func (ws *WServer) pullMsgBySeqListReq(conn *UserConn, m *Req) { isPass, errCode, errMsg, data := ws.argsValidate(m, constant.WSPullMsgBySeqList) if isPass { pbData := pbChat.PullMessageBySeqListReq{} - pbData.SeqList = data.(SeqListData).SeqList + pbData.SeqList = data.(pbWs.PullMessageBySeqListReq).SeqList pbData.UserID = m.SendID pbData.OperationID = m.OperationID grpcConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImOfflineMessageName) @@ -174,22 +182,19 @@ func (ws *WServer) pullMsgBySeqListReq(conn *UserConn, m *Req) { func (ws *WServer) sendMsgResp(conn *UserConn, m *Req, pb *pbChat.UserSendMsgResp, sendTime int64) { // := make(map[string]interface{}) - mReplyData := make(map[string]interface{}) - //mReply["reqIdentifier"] = m.ReqIdentifier - //mReply["msgIncr"] = m.MsgIncr - //mReply["errCode"] = pb.GetErrCode() - //mReply["errMsg"] = pb.GetErrMsg() - mReplyData["clientMsgID"] = pb.GetClientMsgID() - mReplyData["serverMsgID"] = pb.GetServerMsgID() - mReplyData["sendTime"] = utils.Int64ToString(sendTime) - //mReply["data"] = mReplyData + + var mReplyData pbWs.UserSendMsgResp + mReplyData.ClientMsgID = pb.GetClientMsgID() + mReplyData.ServerMsgID = pb.GetServerMsgID() + mReplyData.SendTime = sendTime + b, _ := proto.Marshal(&mReplyData) mReply := Resp{ ReqIdentifier: m.ReqIdentifier, MsgIncr: m.MsgIncr, ErrCode: pb.GetErrCode(), ErrMsg: pb.GetErrMsg(), OperationID: m.OperationID, - Data: mReplyData, + Data: b, } fmt.Println("test fmt send msg resp", m.OperationID, "reqIdentifier", m.ReqIdentifier, "sendID", m.SendID) ws.sendMsg(conn, mReply) @@ -200,7 +205,7 @@ func (ws *WServer) sendMsgReq(conn *UserConn, m *Req, sendTime int64) { reply := new(pbChat.UserSendMsgResp) isPass, errCode, errMsg, pData := ws.argsValidate(m, constant.WSSendMsg) if isPass { - data := pData.(MsgData) + data := pData.(pbWs.UserSendMsgReq) pbData := pbChat.UserSendMsgReq{ ReqIdentifier: m.ReqIdentifier, Token: m.Token, @@ -213,9 +218,8 @@ func (ws *WServer) sendMsgReq(conn *UserConn, m *Req, sendTime int64) { RecvID: data.RecvID, ForceList: data.ForceList, Content: data.Content, - Options: utils.MapToJsonString(data.Options), + Options: utils.MapIntToJsonString(data.Options), ClientMsgID: data.ClientMsgID, - OffLineInfo: utils.MapToJsonString(data.OfflineInfo), SendTime: sendTime, } log.InfoByKv("Ws call success to sendMsgReq", m.OperationID, "Parameters", m) diff --git a/src/msg_gateway/gate/validate.go b/src/msg_gateway/gate/validate.go index fbdaf41d9..5a8843a21 100644 --- a/src/msg_gateway/gate/validate.go +++ b/src/msg_gateway/gate/validate.go @@ -9,8 +9,8 @@ package gate import ( "Open_IM/src/common/constant" "Open_IM/src/common/log" - "bytes" - "encoding/gob" + pbWs "Open_IM/src/proto/sdk_ws" + "github.com/golang/protobuf/proto" ) type Req struct { @@ -22,12 +22,12 @@ type Req struct { Data []byte `json:"data"` } type Resp struct { - ReqIdentifier int32 `json:"reqIdentifier"` - MsgIncr string `json:"msgIncr"` - OperationID string `json:"operationID"` - ErrCode int32 `json:"errCode"` - ErrMsg string `json:"errMsg"` - Data interface{} `json:"data"` + ReqIdentifier int32 `json:"reqIdentifier"` + MsgIncr string `json:"msgIncr"` + OperationID string `json:"operationID"` + ErrCode int32 `json:"errCode"` + ErrMsg string `json:"errMsg"` + Data []byte `json:"data"` } type SeqData struct { @@ -47,37 +47,57 @@ type MsgData struct { OfflineInfo map[string]interface{} `mapstructure:"offlineInfo" validate:"required"` Ext map[string]interface{} `mapstructure:"ext"` } +type MaxSeqResp struct { + MaxSeq int64 `json:"maxSeq"` +} +type PullMessageResp struct { +} type SeqListData struct { SeqList []int64 `mapstructure:"seqList" validate:"required"` } -func (ws *WServer) argsValidate(m *Req, r int32) (isPass bool, errCode int32, errMsg string, data interface{}) { +func (ws *WServer) argsValidate(m *Req, r int32) (isPass bool, errCode int32, errMsg string, returnData interface{}) { switch r { - case constant.WSPullMsg: - data = SeqData{} case constant.WSSendMsg: - data = MsgData{} + data := pbWs.UserSendMsgReq{} + if err := proto.Unmarshal(m.Data, &data); err != nil { + log.ErrorByKv("Decode Data struct err", "", "err", err.Error(), "reqIdentifier", r) + return false, 203, err.Error(), nil + } + if err := validate.Struct(data); err != nil { + log.ErrorByKv("data args validate err", "", "err", err.Error(), "reqIdentifier", r) + return false, 204, err.Error(), nil + + } + return true, 0, "", data case constant.WSPullMsgBySeqList: - data = SeqListData{} + data := pbWs.PullMessageBySeqListReq{} + if err := proto.Unmarshal(m.Data, &data); err != nil { + log.ErrorByKv("Decode Data struct err", "", "err", err.Error(), "reqIdentifier", r) + return false, 203, err.Error(), nil + } + if err := validate.Struct(data); err != nil { + log.ErrorByKv("data args validate err", "", "err", err.Error(), "reqIdentifier", r) + return false, 204, err.Error(), nil + + } + return true, 0, "", data + default: } - b := bytes.NewBuffer(m.Data) - dec := gob.NewDecoder(b) - err := dec.Decode(&data) - if err != nil { - log.ErrorByKv("Decode Data struct err", "", "err", err.Error(), "reqIdentifier", r) - return false, 203, err.Error(), nil - } + + return false, 204, "args err", nil + + //b := bytes.NewBuffer(m.Data) + //dec := gob.NewDecoder(b) + //err := dec.Decode(&data) + //if err != nil { + // log.ErrorByKv("Decode Data struct err", "", "err", err.Error(), "reqIdentifier", r) + // return false, 203, err.Error(), nil + //} //if err := mapstructure.WeakDecode(m.Data, &data); err != nil { // log.ErrorByKv("map to Data struct err", "", "err", err.Error(), "reqIdentifier", r) // return false, 203, err.Error(), nil //} else - if err = validate.Struct(data); err != nil { - log.ErrorByKv("data args validate err", "", "err", err.Error(), "reqIdentifier", r) - return false, 204, err.Error(), nil - - } else { - return true, 0, "", data - } } diff --git a/src/proto/sdk_ws/ws.proto b/src/proto/sdk_ws/ws.proto index 581b9db18..94eccfeb2 100644 --- a/src/proto/sdk_ws/ws.proto +++ b/src/proto/sdk_ws/ws.proto @@ -1,6 +1,6 @@ syntax = "proto3"; -package pbWs;//The package name to which the proto file belongs -option go_package = "./sdk_ws;pbWs";//The generated go pb file is in the current directory, and the package name is pbChat +package open_im_sdk;//The package name to which the proto file belongs +option go_package = "./sdk_ws;open_im_sdk";//The generated go pb file is in the current directory, and the package name is open_im_sdk message PullMessageBySeqListResp { diff --git a/src/utils/map.go b/src/utils/map.go index c52cebf67..2807805db 100644 --- a/src/utils/map.go +++ b/src/utils/map.go @@ -106,6 +106,11 @@ func MapToJsonString(param map[string]interface{}) string { dataString := string(dataType) return dataString } +func MapIntToJsonString(param map[string]int32) string { + dataType, _ := json.Marshal(param) + dataString := string(dataType) + return dataString +} func JsonStringToMap(str string) (tempMap map[string]interface{}) { _ = json.Unmarshal([]byte(str), &tempMap) return tempMap From 299736b92a4f3401e904fe310c2b98790a83bbbb Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Mon, 25 Oct 2021 16:13:35 +0800 Subject: [PATCH 014/814] ws modify --- go.mod | 1 - 1 file changed, 1 deletion(-) diff --git a/go.mod b/go.mod index ac0c9edf0..e8cf04b06 100644 --- a/go.mod +++ b/go.mod @@ -42,7 +42,6 @@ require ( gopkg.in/mgo.v2 v2.0.0-20190816093944-a6b53ec6cb22 gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c sigs.k8s.io/yaml v1.2.0 // indirect - ) replace google.golang.org/grpc => google.golang.org/grpc v1.29.1 From 0e69f7953a22d4aff968ab6dd14b754b42ed470a Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Mon, 25 Oct 2021 16:39:06 +0800 Subject: [PATCH 015/814] ws modify --- src/common/config/config.go | 17 ++++------------- 1 file changed, 4 insertions(+), 13 deletions(-) diff --git a/src/common/config/config.go b/src/common/config/config.go index 6294a031c..b873ef287 100644 --- a/src/common/config/config.go +++ b/src/common/config/config.go @@ -1,17 +1,9 @@ package config import ( - "io/ioutil" - "path/filepath" - "runtime" - "gopkg.in/yaml.v3" -) - -var ( - _, b, _, _ = runtime.Caller(0) - // Root folder of this project - Root = filepath.Join(filepath.Dir(b), "../../..") + "io/ioutil" + "os" ) var Config config @@ -156,9 +148,8 @@ type config struct { } func init() { - // if we cd Open-IM-Server/src/utils and run go test - // it will panic cannot find config/config.yaml - bytes, err := ioutil.ReadFile(Root + "/config/config.yaml") + path, _ := os.Getwd() + bytes, err := ioutil.ReadFile(path + "/config/config.yaml") if err != nil { panic(err) } From 8c0a94c31cd64991ac4e0a761983eba4a2cfeaee Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Mon, 25 Oct 2021 17:00:31 +0800 Subject: [PATCH 016/814] ws modify --- src/common/config/config.go | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/src/common/config/config.go b/src/common/config/config.go index b873ef287..8c867ee6e 100644 --- a/src/common/config/config.go +++ b/src/common/config/config.go @@ -3,7 +3,6 @@ package config import ( "gopkg.in/yaml.v3" "io/ioutil" - "os" ) var Config config @@ -148,8 +147,8 @@ type config struct { } func init() { - path, _ := os.Getwd() - bytes, err := ioutil.ReadFile(path + "/config/config.yaml") + //path, _ := os.Getwd() + bytes, err := ioutil.ReadFile("../config/config.yaml") if err != nil { panic(err) } From aecfea4d83a665e470a8519e68610afb45e34a14 Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Mon, 25 Oct 2021 17:21:23 +0800 Subject: [PATCH 017/814] pb path --- src/proto/proto_dir.cfg | 1 + 1 file changed, 1 insertion(+) diff --git a/src/proto/proto_dir.cfg b/src/proto/proto_dir.cfg index 383f545a2..1ad259e8a 100644 --- a/src/proto/proto_dir.cfg +++ b/src/proto/proto_dir.cfg @@ -7,4 +7,5 @@ all_proto=( chat/chat.proto push/push.proto relay/relay.proto + sdk_ws/ws.proto ) From 219e97f3f686ca2117076c5ee73e3c5c5827a0ff Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Mon, 25 Oct 2021 20:12:50 +0800 Subject: [PATCH 018/814] pb file --- src/msg_gateway/gate/logic.go | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/src/msg_gateway/gate/logic.go b/src/msg_gateway/gate/logic.go index ebd441ecb..098f47636 100644 --- a/src/msg_gateway/gate/logic.go +++ b/src/msg_gateway/gate/logic.go @@ -50,7 +50,7 @@ func (ws *WServer) msgParse(conn *UserConn, binaryMsg []byte) { return } fmt.Println("test fmt Basic Info Authentication Success", m.OperationID, "reqIdentifier", m.ReqIdentifier, "sendID", m.SendID) - log.InfoByKv("Basic Info Authentication Success", m.OperationID, "reqIdentifier", m.ReqIdentifier, "sendID", m.SendID) + log.InfoByKv("Basic Info Authentication Success", m.OperationID, "reqIdentifier", m.ReqIdentifier, "sendID", m.SendID, "msgIncr", m.MsgIncr) switch m.ReqIdentifier { case constant.WSGetNewestSeq: @@ -106,8 +106,12 @@ func (ws *WServer) pullMsgResp(conn *UserConn, m *Req, pb *pbChat.PullMessageRes var mReplyData pbWs.PullMessageBySeqListResp mReplyData.MaxSeq = pb.GetMaxSeq() mReplyData.MinSeq = pb.GetMinSeq() - b, _ := json.Marshal(pb.GetSingleUserMsg) - err := json.Unmarshal(b, &mReplyData.SingleUserMsg) + b, err := json.Marshal(pb.GetSingleUserMsg) + if err != nil { + log.NewError(m.OperationID, "GetSingleUserMsg,json marshal,err", err.Error()) + } + log.NewInfo(m.OperationID, "pullMsgResp json is ", string(b)) + err = json.Unmarshal(b, &mReplyData.SingleUserMsg) if err != nil { log.NewError(m.OperationID, "SingleUserMsg,json Unmarshal,err", err.Error()) } @@ -222,7 +226,6 @@ func (ws *WServer) sendMsgReq(conn *UserConn, m *Req, sendTime int64) { ClientMsgID: data.ClientMsgID, SendTime: sendTime, } - log.InfoByKv("Ws call success to sendMsgReq", m.OperationID, "Parameters", m) time := utils.GetCurrentTimestampBySecond() etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImOfflineMessageName) client := pbChat.NewChatClient(etcdConn) From 2fbe6102cddd3a276c81d417f8efd73d7d21919c Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Mon, 25 Oct 2021 20:24:26 +0800 Subject: [PATCH 019/814] pb file --- src/msg_gateway/gate/logic.go | 12 ++---------- 1 file changed, 2 insertions(+), 10 deletions(-) diff --git a/src/msg_gateway/gate/logic.go b/src/msg_gateway/gate/logic.go index 098f47636..2781e90e5 100644 --- a/src/msg_gateway/gate/logic.go +++ b/src/msg_gateway/gate/logic.go @@ -11,7 +11,6 @@ import ( "bytes" "context" "encoding/gob" - "encoding/json" "fmt" "github.com/golang/protobuf/proto" "github.com/gorilla/websocket" @@ -104,22 +103,15 @@ func (ws *WServer) newestSeqReq(conn *UserConn, m *Req) { func (ws *WServer) pullMsgResp(conn *UserConn, m *Req, pb *pbChat.PullMessageResp) { var mReplyData pbWs.PullMessageBySeqListResp - mReplyData.MaxSeq = pb.GetMaxSeq() - mReplyData.MinSeq = pb.GetMinSeq() - b, err := json.Marshal(pb.GetSingleUserMsg) + b, err := proto.Marshal(pb) if err != nil { log.NewError(m.OperationID, "GetSingleUserMsg,json marshal,err", err.Error()) } log.NewInfo(m.OperationID, "pullMsgResp json is ", string(b)) - err = json.Unmarshal(b, &mReplyData.SingleUserMsg) + err = proto.Unmarshal(b, &mReplyData) if err != nil { log.NewError(m.OperationID, "SingleUserMsg,json Unmarshal,err", err.Error()) } - b, _ = json.Marshal(pb.GetGroupUserMsg()) - err = json.Unmarshal(b, &mReplyData.GroupUserMsg) - if err != nil { - log.NewError(m.OperationID, "GroupUserMsg,json Unmarshal,err", err.Error()) - } c, _ := proto.Marshal(&mReplyData) mReply := Resp{ ReqIdentifier: m.ReqIdentifier, From 70b326ff072a4f80bd5fa798ff8f33af486beaba Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Mon, 25 Oct 2021 20:36:11 +0800 Subject: [PATCH 020/814] pb file --- src/msg_gateway/gate/logic.go | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/msg_gateway/gate/logic.go b/src/msg_gateway/gate/logic.go index 2781e90e5..559a774e6 100644 --- a/src/msg_gateway/gate/logic.go +++ b/src/msg_gateway/gate/logic.go @@ -112,7 +112,11 @@ func (ws *WServer) pullMsgResp(conn *UserConn, m *Req, pb *pbChat.PullMessageRes if err != nil { log.NewError(m.OperationID, "SingleUserMsg,json Unmarshal,err", err.Error()) } - c, _ := proto.Marshal(&mReplyData) + + c, err := proto.Marshal(&mReplyData) + if err != nil { + log.NewError(m.OperationID, "mReplyData,json marshal,err", err.Error()) + } mReply := Resp{ ReqIdentifier: m.ReqIdentifier, MsgIncr: m.MsgIncr, From aa3b73044b492305644727a9844a7424253be623 Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Mon, 25 Oct 2021 20:57:30 +0800 Subject: [PATCH 021/814] log --- src/msg_gateway/gate/logic.go | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/msg_gateway/gate/logic.go b/src/msg_gateway/gate/logic.go index 559a774e6..efc231fa6 100644 --- a/src/msg_gateway/gate/logic.go +++ b/src/msg_gateway/gate/logic.go @@ -102,6 +102,7 @@ func (ws *WServer) newestSeqReq(conn *UserConn, m *Req) { } func (ws *WServer) pullMsgResp(conn *UserConn, m *Req, pb *pbChat.PullMessageResp) { + log.NewInfo(m.OperationID, "pullMsgResp come here ", pb.String()) var mReplyData pbWs.PullMessageBySeqListResp b, err := proto.Marshal(pb) if err != nil { @@ -125,6 +126,8 @@ func (ws *WServer) pullMsgResp(conn *UserConn, m *Req, pb *pbChat.PullMessageRes OperationID: m.OperationID, Data: c, } + log.NewInfo(m.OperationID, "pullMsgResp all data is ", mReply) + ws.sendMsg(conn, mReply) } @@ -156,7 +159,7 @@ func (ws *WServer) pullMsgReq(conn *UserConn, m *Req) { } } func (ws *WServer) pullMsgBySeqListReq(conn *UserConn, m *Req) { - log.NewError(m.OperationID, "Ws call success to pullMsgBySeqListReq", m) + log.NewInfo(m.OperationID, "Ws call success to pullMsgBySeqListReq", m) reply := new(pbChat.PullMessageResp) isPass, errCode, errMsg, data := ws.argsValidate(m, constant.WSPullMsgBySeqList) if isPass { From 7b96810d8f31d40ca0b0bc46516c12c8f9f15602 Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Mon, 25 Oct 2021 21:13:49 +0800 Subject: [PATCH 022/814] log --- src/msg_gateway/gate/logic.go | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/src/msg_gateway/gate/logic.go b/src/msg_gateway/gate/logic.go index efc231fa6..2446abd68 100644 --- a/src/msg_gateway/gate/logic.go +++ b/src/msg_gateway/gate/logic.go @@ -108,7 +108,7 @@ func (ws *WServer) pullMsgResp(conn *UserConn, m *Req, pb *pbChat.PullMessageRes if err != nil { log.NewError(m.OperationID, "GetSingleUserMsg,json marshal,err", err.Error()) } - log.NewInfo(m.OperationID, "pullMsgResp json is ", string(b)) + log.NewInfo(m.OperationID, "pullMsgResp json is ", len(pb.SingleUserMsg)) err = proto.Unmarshal(b, &mReplyData) if err != nil { log.NewError(m.OperationID, "SingleUserMsg,json Unmarshal,err", err.Error()) @@ -118,6 +118,12 @@ func (ws *WServer) pullMsgResp(conn *UserConn, m *Req, pb *pbChat.PullMessageRes if err != nil { log.NewError(m.OperationID, "mReplyData,json marshal,err", err.Error()) } + var test pbWs.PullMessageBySeqListResp + err = proto.Unmarshal(c, &test) + if err != nil { + log.NewError(m.OperationID, "test SingleUserMsg,json Unmarshal,err", err.Error()) + } + log.NewInfo(m.OperationID, "test info is ", len(test.SingleUserMsg), test.SingleUserMsg) mReply := Resp{ ReqIdentifier: m.ReqIdentifier, MsgIncr: m.MsgIncr, @@ -126,7 +132,8 @@ func (ws *WServer) pullMsgResp(conn *UserConn, m *Req, pb *pbChat.PullMessageRes OperationID: m.OperationID, Data: c, } - log.NewInfo(m.OperationID, "pullMsgResp all data is ", mReply) + log.NewInfo(m.OperationID, "pullMsgResp all data is ", mReply.ReqIdentifier, mReply.MsgIncr, mReply.ErrCode, mReply.ErrMsg, + mReply.OperationID) ws.sendMsg(conn, mReply) From 10d350942c81de7b8a6cfdf377a9dbbd35e30216 Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Mon, 25 Oct 2021 21:44:18 +0800 Subject: [PATCH 023/814] log --- src/msg_gateway/gate/logic.go | 17 +++++++++-------- 1 file changed, 9 insertions(+), 8 deletions(-) diff --git a/src/msg_gateway/gate/logic.go b/src/msg_gateway/gate/logic.go index 2446abd68..e6d958a19 100644 --- a/src/msg_gateway/gate/logic.go +++ b/src/msg_gateway/gate/logic.go @@ -11,6 +11,7 @@ import ( "bytes" "context" "encoding/gob" + "encoding/json" "fmt" "github.com/golang/protobuf/proto" "github.com/gorilla/websocket" @@ -104,26 +105,26 @@ func (ws *WServer) newestSeqReq(conn *UserConn, m *Req) { func (ws *WServer) pullMsgResp(conn *UserConn, m *Req, pb *pbChat.PullMessageResp) { log.NewInfo(m.OperationID, "pullMsgResp come here ", pb.String()) var mReplyData pbWs.PullMessageBySeqListResp - b, err := proto.Marshal(pb) + a, err := json.Marshal(pb.SingleUserMsg) if err != nil { log.NewError(m.OperationID, "GetSingleUserMsg,json marshal,err", err.Error()) } log.NewInfo(m.OperationID, "pullMsgResp json is ", len(pb.SingleUserMsg)) - err = proto.Unmarshal(b, &mReplyData) + err = json.Unmarshal(a, &mReplyData.SingleUserMsg) if err != nil { log.NewError(m.OperationID, "SingleUserMsg,json Unmarshal,err", err.Error()) } - - c, err := proto.Marshal(&mReplyData) + b, err := json.Marshal(pb.GroupUserMsg) if err != nil { log.NewError(m.OperationID, "mReplyData,json marshal,err", err.Error()) } - var test pbWs.PullMessageBySeqListResp - err = proto.Unmarshal(c, &test) + err = json.Unmarshal(b, &mReplyData.GroupUserMsg) if err != nil { log.NewError(m.OperationID, "test SingleUserMsg,json Unmarshal,err", err.Error()) } - log.NewInfo(m.OperationID, "test info is ", len(test.SingleUserMsg), test.SingleUserMsg) + c, err := proto.Marshal(&mReplyData) + log.NewInfo(m.OperationID, "test info is ", len(mReplyData.SingleUserMsg), mReplyData.SingleUserMsg) + mReply := Resp{ ReqIdentifier: m.ReqIdentifier, MsgIncr: m.MsgIncr, @@ -133,7 +134,7 @@ func (ws *WServer) pullMsgResp(conn *UserConn, m *Req, pb *pbChat.PullMessageRes Data: c, } log.NewInfo(m.OperationID, "pullMsgResp all data is ", mReply.ReqIdentifier, mReply.MsgIncr, mReply.ErrCode, mReply.ErrMsg, - mReply.OperationID) + len(mReply.Data)) ws.sendMsg(conn, mReply) From 738feab0d679be8bd43f391c8a4726f462b5df6d Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Mon, 25 Oct 2021 21:59:59 +0800 Subject: [PATCH 024/814] log --- src/proto/sdk_ws/ws.proto | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/src/proto/sdk_ws/ws.proto b/src/proto/sdk_ws/ws.proto index 94eccfeb2..c3a1c3692 100644 --- a/src/proto/sdk_ws/ws.proto +++ b/src/proto/sdk_ws/ws.proto @@ -70,3 +70,19 @@ message UserSendMsgResp { int64 sendTime = 3; } +message MsgData { + string sendID = 1; + string recvID = 2; + int32 sessionType = 3; + int32 msgFrom = 4; + int32 contentType = 5; + string serverMsgID = 6; + string content =7; + int64 sendTime =8; + int64 seq =9; + int32 senderPlatformID =10; + string senderNickName =11; + string senderFaceURL =12; + string clientMsgID =13; +} + From 55cfec827a1b6ccac45e55e99c729e24dc9183f5 Mon Sep 17 00:00:00 2001 From: root Date: Mon, 25 Oct 2021 22:01:04 +0800 Subject: [PATCH 025/814] pbfile --- src/proto/sdk_ws/ws.pb.go | 267 +++++++++++++++++++++++++++++--------- 1 file changed, 205 insertions(+), 62 deletions(-) diff --git a/src/proto/sdk_ws/ws.pb.go b/src/proto/sdk_ws/ws.pb.go index a7eef6f4f..016b811b4 100644 --- a/src/proto/sdk_ws/ws.pb.go +++ b/src/proto/sdk_ws/ws.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // source: sdk_ws/ws.proto -package pbWs // import "./sdk_ws" +package open_im_sdk // import "./sdk_ws" import proto "github.com/golang/protobuf/proto" import fmt "fmt" @@ -32,7 +32,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_61fa28b4145bb9af, []int{0} + return fileDescriptor_ws_f63282669a59c073, []int{0} } func (m *PullMessageBySeqListResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_PullMessageBySeqListResp.Unmarshal(m, b) @@ -91,7 +91,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_61fa28b4145bb9af, []int{1} + return fileDescriptor_ws_f63282669a59c073, []int{1} } func (m *PullMessageBySeqListReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_PullMessageBySeqListReq.Unmarshal(m, b) @@ -128,7 +128,7 @@ func (m *GetNewSeqReq) Reset() { *m = GetNewSeqReq{} } func (m *GetNewSeqReq) String() string { return proto.CompactTextString(m) } func (*GetNewSeqReq) ProtoMessage() {} func (*GetNewSeqReq) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_61fa28b4145bb9af, []int{2} + return fileDescriptor_ws_f63282669a59c073, []int{2} } func (m *GetNewSeqReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetNewSeqReq.Unmarshal(m, b) @@ -159,7 +159,7 @@ func (m *GetNewSeqResp) Reset() { *m = GetNewSeqResp{} } func (m *GetNewSeqResp) String() string { return proto.CompactTextString(m) } func (*GetNewSeqResp) ProtoMessage() {} func (*GetNewSeqResp) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_61fa28b4145bb9af, []int{3} + return fileDescriptor_ws_f63282669a59c073, []int{3} } func (m *GetNewSeqResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetNewSeqResp.Unmarshal(m, b) @@ -200,7 +200,7 @@ func (m *GatherFormat) Reset() { *m = GatherFormat{} } func (m *GatherFormat) String() string { return proto.CompactTextString(m) } func (*GatherFormat) ProtoMessage() {} func (*GatherFormat) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_61fa28b4145bb9af, []int{4} + return fileDescriptor_ws_f63282669a59c073, []int{4} } func (m *GatherFormat) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GatherFormat.Unmarshal(m, b) @@ -268,7 +268,7 @@ func (m *MsgFormat) Reset() { *m = MsgFormat{} } func (m *MsgFormat) String() string { return proto.CompactTextString(m) } func (*MsgFormat) ProtoMessage() {} func (*MsgFormat) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_61fa28b4145bb9af, []int{5} + return fileDescriptor_ws_f63282669a59c073, []int{5} } func (m *MsgFormat) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MsgFormat.Unmarshal(m, b) @@ -393,7 +393,7 @@ func (m *UserSendMsgReq) Reset() { *m = UserSendMsgReq{} } func (m *UserSendMsgReq) String() string { return proto.CompactTextString(m) } func (*UserSendMsgReq) ProtoMessage() {} func (*UserSendMsgReq) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_61fa28b4145bb9af, []int{6} + return fileDescriptor_ws_f63282669a59c073, []int{6} } func (m *UserSendMsgReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_UserSendMsgReq.Unmarshal(m, b) @@ -503,7 +503,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_61fa28b4145bb9af, []int{7} + return fileDescriptor_ws_f63282669a59c073, []int{7} } func (m *UserSendMsgResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_UserSendMsgResp.Unmarshal(m, b) @@ -544,58 +544,201 @@ func (m *UserSendMsgResp) GetSendTime() int64 { return 0 } +type MsgData struct { + SendID string `protobuf:"bytes,1,opt,name=sendID" json:"sendID,omitempty"` + RecvID string `protobuf:"bytes,2,opt,name=recvID" json:"recvID,omitempty"` + SessionType int32 `protobuf:"varint,3,opt,name=sessionType" json:"sessionType,omitempty"` + MsgFrom int32 `protobuf:"varint,4,opt,name=msgFrom" json:"msgFrom,omitempty"` + ContentType int32 `protobuf:"varint,5,opt,name=contentType" json:"contentType,omitempty"` + ServerMsgID string `protobuf:"bytes,6,opt,name=serverMsgID" json:"serverMsgID,omitempty"` + Content string `protobuf:"bytes,7,opt,name=content" json:"content,omitempty"` + SendTime int64 `protobuf:"varint,8,opt,name=sendTime" json:"sendTime,omitempty"` + Seq int64 `protobuf:"varint,9,opt,name=seq" json:"seq,omitempty"` + SenderPlatformID int32 `protobuf:"varint,10,opt,name=senderPlatformID" json:"senderPlatformID,omitempty"` + SenderNickName string `protobuf:"bytes,11,opt,name=senderNickName" json:"senderNickName,omitempty"` + SenderFaceURL string `protobuf:"bytes,12,opt,name=senderFaceURL" json:"senderFaceURL,omitempty"` + ClientMsgID string `protobuf:"bytes,13,opt,name=clientMsgID" json:"clientMsgID,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +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_f63282669a59c073, []int{8} +} +func (m *MsgData) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_MsgData.Unmarshal(m, b) +} +func (m *MsgData) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_MsgData.Marshal(b, m, deterministic) +} +func (dst *MsgData) XXX_Merge(src proto.Message) { + xxx_messageInfo_MsgData.Merge(dst, src) +} +func (m *MsgData) XXX_Size() int { + return xxx_messageInfo_MsgData.Size(m) +} +func (m *MsgData) XXX_DiscardUnknown() { + xxx_messageInfo_MsgData.DiscardUnknown(m) +} + +var xxx_messageInfo_MsgData proto.InternalMessageInfo + +func (m *MsgData) GetSendID() string { + if m != nil { + return m.SendID + } + return "" +} + +func (m *MsgData) GetRecvID() string { + if m != nil { + return m.RecvID + } + return "" +} + +func (m *MsgData) GetSessionType() int32 { + if m != nil { + return m.SessionType + } + return 0 +} + +func (m *MsgData) GetMsgFrom() int32 { + if m != nil { + return m.MsgFrom + } + return 0 +} + +func (m *MsgData) GetContentType() int32 { + if m != nil { + return m.ContentType + } + return 0 +} + +func (m *MsgData) GetServerMsgID() string { + if m != nil { + return m.ServerMsgID + } + return "" +} + +func (m *MsgData) GetContent() string { + if m != nil { + return m.Content + } + return "" +} + +func (m *MsgData) GetSendTime() int64 { + if m != nil { + return m.SendTime + } + return 0 +} + +func (m *MsgData) GetSeq() int64 { + if m != nil { + return m.Seq + } + return 0 +} + +func (m *MsgData) GetSenderPlatformID() int32 { + if m != nil { + return m.SenderPlatformID + } + return 0 +} + +func (m *MsgData) GetSenderNickName() string { + if m != nil { + return m.SenderNickName + } + return "" +} + +func (m *MsgData) GetSenderFaceURL() string { + if m != nil { + return m.SenderFaceURL + } + return "" +} + +func (m *MsgData) GetClientMsgID() string { + if m != nil { + return m.ClientMsgID + } + return "" +} + func init() { - proto.RegisterType((*PullMessageBySeqListResp)(nil), "pbWs.PullMessageBySeqListResp") - proto.RegisterType((*PullMessageBySeqListReq)(nil), "pbWs.PullMessageBySeqListReq") - proto.RegisterType((*GetNewSeqReq)(nil), "pbWs.GetNewSeqReq") - proto.RegisterType((*GetNewSeqResp)(nil), "pbWs.GetNewSeqResp") - proto.RegisterType((*GatherFormat)(nil), "pbWs.GatherFormat") - proto.RegisterType((*MsgFormat)(nil), "pbWs.MsgFormat") - proto.RegisterType((*UserSendMsgReq)(nil), "pbWs.UserSendMsgReq") - proto.RegisterMapType((map[string]int32)(nil), "pbWs.UserSendMsgReq.OptionsEntry") - proto.RegisterType((*UserSendMsgResp)(nil), "pbWs.UserSendMsgResp") -} - -func init() { proto.RegisterFile("sdk_ws/ws.proto", fileDescriptor_ws_61fa28b4145bb9af) } - -var fileDescriptor_ws_61fa28b4145bb9af = []byte{ - // 608 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x8c, 0x54, 0xdd, 0x6b, 0xdb, 0x3e, - 0x14, 0xc5, 0x76, 0x3e, 0xea, 0x9b, 0xaf, 0x22, 0x7e, 0xfc, 0x26, 0xca, 0x18, 0xae, 0x37, 0x46, - 0xd8, 0x43, 0x0a, 0x2d, 0x8c, 0xd2, 0xbe, 0xb5, 0x59, 0x4b, 0xa0, 0xc9, 0x8a, 0xdc, 0x32, 0xd8, - 0xcb, 0x70, 0xd3, 0xbb, 0xcc, 0xc4, 0xf1, 0x97, 0x9c, 0x64, 0xf9, 0xdf, 0xf6, 0xbe, 0xbf, 0x6a, - 0x30, 0x24, 0xd9, 0x89, 0x9d, 0x64, 0x63, 0x6f, 0x3a, 0x47, 0xf7, 0x4a, 0x47, 0xe7, 0x1e, 0x1b, - 0x3a, 0xfc, 0x79, 0xfa, 0x65, 0xc9, 0x4f, 0x96, 0xbc, 0x17, 0x25, 0x61, 0x1a, 0x92, 0x4a, 0xf4, - 0xf4, 0x89, 0xdb, 0x3f, 0x34, 0xa0, 0xf7, 0x73, 0xdf, 0x1f, 0x22, 0xe7, 0xee, 0x04, 0xaf, 0x56, - 0x0e, 0xc6, 0x77, 0x1e, 0x4f, 0x19, 0xf2, 0x88, 0xfc, 0x0f, 0xb5, 0xa1, 0xfb, 0xdd, 0xc1, 0x98, - 0x6a, 0x96, 0xd6, 0x35, 0x58, 0x86, 0x24, 0xef, 0x05, 0x82, 0xd7, 0x33, 0x5e, 0x22, 0x72, 0x0e, - 0x2d, 0xc7, 0x0b, 0x26, 0x3e, 0x3e, 0x72, 0x4c, 0x86, 0x7c, 0x42, 0x0d, 0xcb, 0xe8, 0x36, 0x4e, - 0x49, 0x4f, 0x5c, 0xd5, 0xbb, 0x75, 0xd3, 0x6f, 0x98, 0xdc, 0x84, 0xc9, 0xcc, 0x4d, 0x59, 0xb9, - 0x90, 0xbc, 0x87, 0xe6, 0x6d, 0x12, 0xce, 0xa3, 0xbc, 0xb1, 0xf2, 0xc7, 0xc6, 0x52, 0x9d, 0x7d, - 0x06, 0x2f, 0xf6, 0xab, 0x8f, 0x09, 0x85, 0x3a, 0x57, 0x88, 0x6a, 0x96, 0xd1, 0x35, 0x58, 0x0e, - 0xed, 0x36, 0x34, 0x6f, 0x31, 0x1d, 0xe1, 0xd2, 0xc1, 0x98, 0x61, 0x6c, 0x1f, 0x43, 0xab, 0x80, - 0x79, 0x44, 0x0e, 0xc1, 0xd8, 0x3c, 0x5a, 0x2c, 0xed, 0x6b, 0x68, 0x16, 0x55, 0x90, 0x36, 0xe8, - 0x83, 0xbe, 0x2c, 0x30, 0x99, 0x3e, 0xe8, 0x93, 0xd7, 0x50, 0x91, 0x37, 0xe9, 0x52, 0x77, 0x47, - 0xe9, 0x1e, 0xf2, 0x49, 0x26, 0x5a, 0x6e, 0xda, 0xbf, 0x74, 0x30, 0xd7, 0x9c, 0x30, 0xd1, 0xc1, - 0xe0, 0x79, 0x7d, 0x4c, 0x86, 0x04, 0xcf, 0x70, 0xbc, 0x18, 0xf4, 0xa5, 0xb9, 0x26, 0xcb, 0x90, - 0x78, 0x8f, 0x68, 0x4e, 0xc2, 0x19, 0x35, 0x2c, 0xad, 0x5b, 0x65, 0x39, 0x24, 0x16, 0x34, 0xae, - 0xc3, 0x20, 0xc5, 0x20, 0x7d, 0x58, 0x45, 0x48, 0x2b, 0x72, 0xb7, 0x48, 0x89, 0x0a, 0x07, 0x93, - 0x85, 0xf4, 0x6c, 0xd0, 0xa7, 0x55, 0x79, 0x70, 0x91, 0x12, 0xa7, 0x67, 0x0d, 0xb4, 0x26, 0x77, - 0x73, 0x98, 0x9b, 0x51, 0x5f, 0x9b, 0x41, 0x8e, 0xe0, 0x40, 0x68, 0x7d, 0xf0, 0x66, 0x48, 0x0f, - 0x24, 0xbd, 0xc6, 0xe4, 0x1d, 0x1c, 0x8a, 0x35, 0x26, 0xf7, 0xbe, 0x9b, 0x7e, 0x0d, 0x93, 0xd9, - 0xa0, 0x4f, 0x4d, 0x29, 0x68, 0x87, 0x27, 0x6f, 0xa1, 0xad, 0xb8, 0x91, 0x37, 0x9e, 0x8e, 0xdc, - 0x19, 0x52, 0x90, 0x57, 0x6f, 0xb1, 0xe4, 0x0d, 0xb4, 0x14, 0x73, 0xe3, 0x8e, 0xf1, 0x91, 0xdd, - 0xd1, 0x86, 0x2c, 0x2b, 0x93, 0xd2, 0x05, 0xdf, 0xc3, 0x20, 0x55, 0x6f, 0x6c, 0xaa, 0x37, 0x16, - 0x28, 0xfb, 0xa7, 0x01, 0x6d, 0x11, 0x1c, 0xd1, 0x37, 0xe4, 0x13, 0x11, 0x92, 0x4b, 0xa8, 0x7f, - 0x8c, 0x52, 0x2f, 0x0c, 0xb8, 0x0c, 0x49, 0xe3, 0xf4, 0x58, 0x8d, 0xae, 0x5c, 0xd6, 0xcb, 0x6a, - 0x3e, 0x04, 0x69, 0xb2, 0x62, 0x79, 0xc7, 0x1e, 0xfd, 0xfa, 0xbf, 0xe9, 0x37, 0xf6, 0xe9, 0x7f, - 0x05, 0x50, 0xf0, 0x4c, 0x0d, 0xb1, 0xc0, 0xa8, 0x19, 0x72, 0xee, 0x85, 0x81, 0x9c, 0x72, 0x55, - 0x4d, 0xb9, 0x40, 0x15, 0x13, 0x52, 0xfb, 0x6b, 0x42, 0xea, 0xbb, 0x09, 0xd9, 0xa4, 0xee, 0xa0, - 0x94, 0xba, 0x97, 0x60, 0xde, 0x84, 0xc9, 0x18, 0x65, 0xba, 0x4d, 0xcb, 0xe8, 0x9a, 0x6c, 0x43, - 0x14, 0x53, 0x03, 0xe5, 0xd4, 0x6c, 0x4d, 0xa3, 0xb1, 0x33, 0x8d, 0xa3, 0x0b, 0x68, 0x16, 0x6d, - 0x15, 0x39, 0x9b, 0xe2, 0x2a, 0xfb, 0x18, 0xc4, 0x92, 0xfc, 0x07, 0xd5, 0x85, 0xeb, 0xcf, 0x95, - 0xad, 0x55, 0xa6, 0xc0, 0x85, 0x7e, 0xae, 0xd9, 0x31, 0x74, 0x4a, 0x13, 0xe2, 0xd1, 0x76, 0xc4, - 0xb5, 0xdd, 0x88, 0x6f, 0x49, 0xd2, 0x77, 0x24, 0x89, 0x60, 0xf3, 0x3c, 0xd8, 0x86, 0x0a, 0x76, - 0x8e, 0xaf, 0x3a, 0x9f, 0x5b, 0xbd, 0x13, 0xf5, 0x0f, 0xbd, 0x14, 0x11, 0x79, 0xaa, 0xc9, 0xdf, - 0xe8, 0xd9, 0xef, 0x00, 0x00, 0x00, 0xff, 0xff, 0x89, 0xa7, 0x61, 0x67, 0x59, 0x05, 0x00, 0x00, + proto.RegisterType((*PullMessageBySeqListResp)(nil), "open_im_sdk.PullMessageBySeqListResp") + proto.RegisterType((*PullMessageBySeqListReq)(nil), "open_im_sdk.PullMessageBySeqListReq") + proto.RegisterType((*GetNewSeqReq)(nil), "open_im_sdk.GetNewSeqReq") + proto.RegisterType((*GetNewSeqResp)(nil), "open_im_sdk.GetNewSeqResp") + proto.RegisterType((*GatherFormat)(nil), "open_im_sdk.GatherFormat") + proto.RegisterType((*MsgFormat)(nil), "open_im_sdk.MsgFormat") + proto.RegisterType((*UserSendMsgReq)(nil), "open_im_sdk.UserSendMsgReq") + proto.RegisterMapType((map[string]int32)(nil), "open_im_sdk.UserSendMsgReq.OptionsEntry") + proto.RegisterType((*UserSendMsgResp)(nil), "open_im_sdk.UserSendMsgResp") + proto.RegisterType((*MsgData)(nil), "open_im_sdk.MsgData") +} + +func init() { proto.RegisterFile("sdk_ws/ws.proto", fileDescriptor_ws_f63282669a59c073) } + +var fileDescriptor_ws_f63282669a59c073 = []byte{ + // 726 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x8c, 0x55, 0x5d, 0x6b, 0x13, 0x41, + 0x14, 0x65, 0x77, 0x9b, 0x8f, 0xbd, 0xf9, 0x68, 0x19, 0x4a, 0x1d, 0x8b, 0x48, 0x5c, 0x44, 0x42, + 0x1f, 0x52, 0x68, 0x5f, 0xa4, 0x22, 0x42, 0x8d, 0x2d, 0x91, 0xa6, 0x96, 0x49, 0xfb, 0xe2, 0x4b, + 0x59, 0xd3, 0x31, 0x2e, 0xc9, 0x7e, 0xde, 0x6d, 0x6b, 0x7e, 0x8c, 0x7f, 0xc8, 0x07, 0xff, 0x91, + 0x20, 0x33, 0xb3, 0x9b, 0xcc, 0x24, 0x41, 0x7d, 0x9b, 0x7b, 0xf6, 0xde, 0x99, 0x7b, 0xef, 0x39, + 0x87, 0x85, 0x6d, 0xbc, 0x9b, 0xde, 0x3e, 0xe2, 0xe1, 0x23, 0xf6, 0x92, 0x2c, 0xce, 0x63, 0xd2, + 0x88, 0x13, 0x1e, 0xdd, 0x06, 0xe1, 0x2d, 0xde, 0x4d, 0xbd, 0x9f, 0x16, 0xd0, 0xab, 0xfb, 0xd9, + 0x6c, 0xc8, 0x11, 0xfd, 0x09, 0x3f, 0x9d, 0x8f, 0x78, 0x7a, 0x11, 0x60, 0xce, 0x38, 0x26, 0x64, + 0x0f, 0xaa, 0x43, 0xff, 0xfb, 0x88, 0xa7, 0xd4, 0xea, 0x58, 0x5d, 0x87, 0x15, 0x91, 0xc4, 0x83, + 0x48, 0xe0, 0x76, 0x81, 0xcb, 0x88, 0xbc, 0x83, 0xd6, 0x28, 0x88, 0x26, 0x33, 0x7e, 0x83, 0x3c, + 0x1b, 0xe2, 0x84, 0x3a, 0x1d, 0xa7, 0xdb, 0x38, 0x7a, 0xda, 0xd3, 0x5e, 0xec, 0x9d, 0xfb, 0xf9, + 0x37, 0x9e, 0x9d, 0xc5, 0x59, 0xe8, 0xe7, 0xcc, 0xcc, 0x27, 0x6f, 0xa1, 0x79, 0x9e, 0xc5, 0xf7, + 0x49, 0x59, 0xbf, 0xf5, 0xaf, 0x7a, 0x23, 0xdd, 0x3b, 0x86, 0x27, 0x9b, 0x67, 0x49, 0x09, 0x85, + 0x1a, 0xaa, 0x88, 0x5a, 0x1d, 0xa7, 0xeb, 0xb0, 0x32, 0xf4, 0xda, 0xd0, 0x3c, 0xe7, 0xf9, 0x25, + 0x7f, 0x1c, 0xf1, 0x94, 0xf1, 0xd4, 0x7b, 0x01, 0x2d, 0x2d, 0xc6, 0x84, 0xec, 0x80, 0xb3, 0x5c, + 0x81, 0x38, 0x7a, 0x1f, 0xa1, 0xa9, 0x77, 0x41, 0xda, 0x60, 0x0f, 0xfa, 0x32, 0xc1, 0x65, 0xf6, + 0xa0, 0x4f, 0x0e, 0x60, 0x4b, 0xbe, 0x64, 0xcb, 0xf6, 0xf7, 0x8c, 0xf6, 0x87, 0x38, 0x29, 0x7a, + 0x97, 0x39, 0xde, 0x6f, 0x1b, 0xdc, 0x05, 0x26, 0x36, 0x3b, 0xe2, 0xd1, 0xdd, 0xe2, 0xb6, 0x22, + 0x12, 0x38, 0xe3, 0xe3, 0x87, 0x41, 0x5f, 0x6e, 0xdc, 0x65, 0x45, 0x24, 0xc6, 0x12, 0xc5, 0x59, + 0x1c, 0x52, 0xa7, 0x63, 0x75, 0x2b, 0xac, 0x0c, 0x49, 0x07, 0x1a, 0xef, 0xe3, 0x28, 0xe7, 0x51, + 0x7e, 0x3d, 0x4f, 0x38, 0xdd, 0x92, 0x5f, 0x75, 0x48, 0x64, 0x8c, 0x78, 0xf6, 0x20, 0x57, 0x37, + 0xe8, 0xd3, 0x8a, 0xbc, 0x58, 0x87, 0xc4, 0xed, 0x45, 0x01, 0xad, 0xca, 0xaf, 0x65, 0x58, 0xee, + 0xa4, 0xb6, 0xd8, 0x09, 0xd9, 0x87, 0xba, 0xe8, 0xf5, 0x3a, 0x08, 0x39, 0xad, 0x4b, 0x78, 0x11, + 0x93, 0x03, 0xd8, 0x11, 0x67, 0x9e, 0x5d, 0xcd, 0xfc, 0xfc, 0x6b, 0x9c, 0x85, 0x83, 0x3e, 0x75, + 0x65, 0x43, 0x6b, 0x38, 0x79, 0x05, 0x6d, 0x85, 0x5d, 0x06, 0xe3, 0xe9, 0xa5, 0x1f, 0x72, 0x0a, + 0xf2, 0xe9, 0x15, 0x94, 0xbc, 0x84, 0x96, 0x42, 0xce, 0xfc, 0x31, 0xbf, 0x61, 0x17, 0xb4, 0x21, + 0xd3, 0x4c, 0x50, 0x6e, 0x61, 0x16, 0xf0, 0x28, 0x57, 0x33, 0x36, 0xd5, 0x8c, 0x1a, 0xe4, 0xfd, + 0x72, 0xa0, 0x2d, 0xf4, 0x23, 0xea, 0x86, 0x38, 0x11, 0x5a, 0x39, 0x85, 0xda, 0xa7, 0x24, 0x0f, + 0xe2, 0x08, 0xa5, 0x56, 0x1a, 0x47, 0x5d, 0x83, 0x41, 0x33, 0xbb, 0x57, 0xa4, 0x7e, 0x88, 0xf2, + 0x6c, 0xce, 0xca, 0xc2, 0x0d, 0x63, 0xd8, 0xff, 0x37, 0x86, 0xb3, 0x69, 0x8c, 0xe7, 0x00, 0xda, + 0xea, 0x14, 0x97, 0x1a, 0xa2, 0xa8, 0x44, 0x0c, 0xe2, 0x48, 0x92, 0x5d, 0x51, 0x64, 0x6b, 0x90, + 0x2e, 0x94, 0xea, 0x5f, 0x85, 0x52, 0x5b, 0x17, 0xca, 0x52, 0x7c, 0x75, 0x43, 0x7c, 0xcf, 0xc0, + 0x3d, 0x8b, 0xb3, 0x31, 0x97, 0x5a, 0x77, 0x3b, 0x4e, 0xd7, 0x65, 0x4b, 0x40, 0x17, 0x0f, 0x98, + 0xe2, 0x59, 0x21, 0xa5, 0xb1, 0x46, 0xca, 0xfe, 0x09, 0x34, 0xf5, 0xb5, 0x0a, 0xb9, 0x4d, 0xf9, + 0xbc, 0xf0, 0x84, 0x38, 0x92, 0x5d, 0xa8, 0x3c, 0xf8, 0xb3, 0x7b, 0xb5, 0xd6, 0x0a, 0x53, 0xc1, + 0x89, 0xfd, 0xda, 0xf2, 0x52, 0xd8, 0x36, 0x18, 0xc2, 0x64, 0x55, 0xe9, 0xd6, 0xba, 0xd2, 0x57, + 0x5a, 0xb2, 0xd7, 0x5a, 0x12, 0xfa, 0xc6, 0x52, 0xdf, 0x8e, 0xd2, 0x77, 0x19, 0x7b, 0x3f, 0x1c, + 0xb9, 0xdd, 0xbe, 0x9f, 0xfb, 0x62, 0x59, 0x68, 0x38, 0x18, 0x17, 0x0e, 0xce, 0x0c, 0x07, 0xab, + 0x48, 0xbc, 0x8c, 0x1a, 0x75, 0xca, 0xc5, 0x3a, 0x24, 0x16, 0x19, 0x16, 0xd4, 0x29, 0xe6, 0xcb, + 0x50, 0xd4, 0x8e, 0x35, 0xea, 0x0a, 0xda, 0xc7, 0xa6, 0xc7, 0x51, 0x9b, 0x5c, 0xb9, 0x58, 0x87, + 0xc4, 0xed, 0x45, 0x81, 0xa4, 0xde, 0x65, 0x65, 0x68, 0x4c, 0x5c, 0x37, 0x27, 0x16, 0x84, 0x20, + 0x4f, 0xa5, 0x89, 0x1d, 0x26, 0x8e, 0xc2, 0xe3, 0xb8, 0xea, 0x71, 0x50, 0x1e, 0xc7, 0x0d, 0x1e, + 0x47, 0xd3, 0x1c, 0x4a, 0x03, 0x2b, 0xa8, 0x30, 0x07, 0x1a, 0xe6, 0x50, 0xfe, 0x35, 0x41, 0xb9, + 0x05, 0x8d, 0xbb, 0x96, 0x9a, 0x51, 0x83, 0x4e, 0xf7, 0x3e, 0xef, 0xf6, 0x0e, 0xd5, 0x6f, 0xf0, + 0x8d, 0xe6, 0xe4, 0x2f, 0x55, 0xf9, 0x43, 0x3c, 0xfe, 0x13, 0x00, 0x00, 0xff, 0xff, 0xf7, 0xa1, + 0x94, 0x0c, 0x23, 0x07, 0x00, 0x00, } From fb5bed9cce1733dc39933a7d67aecacfea6d0dcb Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Mon, 25 Oct 2021 22:15:35 +0800 Subject: [PATCH 026/814] log --- src/msg_gateway/gate/rpc_server.go | 52 ++++++++++++++++-------------- src/msg_gateway/gate/validate.go | 2 +- src/rpc/chat/chat/send_msg.go | 6 ++-- 3 files changed, 32 insertions(+), 28 deletions(-) diff --git a/src/msg_gateway/gate/rpc_server.go b/src/msg_gateway/gate/rpc_server.go index 0fa2c4aae..703e684cb 100644 --- a/src/msg_gateway/gate/rpc_server.go +++ b/src/msg_gateway/gate/rpc_server.go @@ -6,11 +6,13 @@ import ( "Open_IM/src/common/log" "Open_IM/src/grpc-etcdv3/getcdv3" pbRelay "Open_IM/src/proto/relay" + pbWs "Open_IM/src/proto/sdk_ws" "Open_IM/src/utils" "bytes" "context" "encoding/gob" "fmt" + "github.com/golang/protobuf/proto" "github.com/gorilla/websocket" "google.golang.org/grpc" "net" @@ -56,27 +58,29 @@ func (r *RPCServer) MsgToUser(_ context.Context, in *pbRelay.MsgToUserReq) (*pbR log.InfoByKv("PushMsgToUser is arriving", in.OperationID, "args", in.String()) var resp []*pbRelay.SingleMsgToUser var RecvID string - msg := make(map[string]interface{}) - mReply := make(map[string]interface{}) - mReply["reqIdentifier"] = constant.WSPushMsg - mReply["errCode"] = 0 - mReply["errMsg"] = "" - msg["sendID"] = in.SendID - msg["recvID"] = in.RecvID - msg["msgFrom"] = in.MsgFrom - msg["contentType"] = in.ContentType - msg["sessionType"] = in.SessionType - msg["senderNickName"] = in.SenderNickName - msg["senderFaceUrl"] = in.SenderFaceURL - msg["clientMsgID"] = in.ClientMsgID - msg["serverMsgID"] = in.ServerMsgID - msg["content"] = in.Content - msg["seq"] = in.RecvSeq - msg["sendTime"] = in.SendTime - msg["senderPlatformID"] = in.PlatformID - mReply["data"] = msg - var b bytes.Buffer - enc := gob.NewEncoder(&b) + msg := pbWs.MsgData{ + SendID: in.SendID, + RecvID: in.RecvID, + MsgFrom: in.MsgFrom, + ContentType: in.ContentType, + SessionType: in.SessionType, + SenderNickName: in.SenderNickName, + SenderFaceURL: in.SenderFaceURL, + ClientMsgID: in.ClientMsgID, + ServerMsgID: in.ServerMsgID, + Content: in.Content, + Seq: in.RecvSeq, + SendTime: in.SendTime, + SenderPlatformID: in.PlatformID, + } + msgBytes, _ := proto.Marshal(&msg) + mReply := Resp{ + ReqIdentifier: constant.WSPushMsg, + OperationID: in.OperationID, + Data: msgBytes, + } + var replyBytes bytes.Buffer + enc := gob.NewEncoder(&replyBytes) err := enc.Encode(mReply) if err != nil { fmt.Println(err) @@ -88,12 +92,12 @@ func (r *RPCServer) MsgToUser(_ context.Context, in *pbRelay.MsgToUserReq) (*pbR RecvID = strings.Split(in.GetRecvID(), " ")[0] } var tag bool - a := genUidPlatformArray(RecvID) - for _, v := range a { + userIDList := genUidPlatformArray(RecvID) + for _, v := range userIDList { if conn := ws.getUserConn(v); conn != nil { UIDAndPID := strings.Split(v, " ") tag = true - resultCode := sendMsgToUser(conn, b.Bytes(), in, UIDAndPID[1], UIDAndPID[0]) + resultCode := sendMsgToUser(conn, replyBytes.Bytes(), in, UIDAndPID[1], UIDAndPID[0]) temp := &pbRelay.SingleMsgToUser{ ResultCode: resultCode, RecvID: UIDAndPID[0], diff --git a/src/msg_gateway/gate/validate.go b/src/msg_gateway/gate/validate.go index 5a8843a21..d69d1787f 100644 --- a/src/msg_gateway/gate/validate.go +++ b/src/msg_gateway/gate/validate.go @@ -15,7 +15,7 @@ import ( type Req struct { ReqIdentifier int32 `json:"reqIdentifier" validate:"required"` - Token string `json:"token" validate:"required"` + Token string `json:"token" ` SendID string `json:"sendID" validate:"required"` OperationID string `json:"operationID" validate:"required"` MsgIncr string `json:"msgIncr" validate:"required"` diff --git a/src/rpc/chat/chat/send_msg.go b/src/rpc/chat/chat/send_msg.go index 0f1d2d6b0..960df7ed5 100644 --- a/src/rpc/chat/chat/send_msg.go +++ b/src/rpc/chat/chat/send_msg.go @@ -44,9 +44,9 @@ func (rpc *rpcChat) UserSendMsg(_ context.Context, pb *pbChat.UserSendMsgReq) (* replay := pbChat.UserSendMsgResp{} log.InfoByKv("sendMsg", pb.OperationID, "args", pb.String()) time := utils.GetCurrentTimestampByMill() - if !utils.VerifyToken(pb.Token, pb.SendID) { - return returnMsg(&replay, pb, http.StatusUnauthorized, "token validate err,not authorized", "", 0) - } + //if !utils.VerifyToken(pb.Token, pb.SendID) { + // return returnMsg(&replay, pb, http.StatusUnauthorized, "token validate err,not authorized", "", 0) + //} log.NewInfo(pb.OperationID, "VerifyToken cost time ", utils.GetCurrentTimestampByMill()-time) serverMsgID := GetMsgID(pb.SendID) pbData := pbChat.WSToMsgSvrChatMsg{} From 50e344b9fb3b5f42f00bad3c6aa96b957d9d70e1 Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Mon, 25 Oct 2021 22:28:50 +0800 Subject: [PATCH 027/814] ws modify --- src/msg_gateway/gate/logic.go | 26 ++++++++++++++------------ 1 file changed, 14 insertions(+), 12 deletions(-) diff --git a/src/msg_gateway/gate/logic.go b/src/msg_gateway/gate/logic.go index e6d958a19..9ce7db745 100644 --- a/src/msg_gateway/gate/logic.go +++ b/src/msg_gateway/gate/logic.go @@ -32,7 +32,7 @@ func (ws *WServer) msgParse(conn *UserConn, binaryMsg []byte) { err := dec.Decode(&m) if err != nil { log.ErrorByKv("ws json Unmarshal err", "", "err", err.Error()) - ws.sendErrMsg(conn, 200, err.Error(), constant.WSDataError, "") + ws.sendErrMsg(conn, 200, err.Error(), constant.WSDataError, "", "") err = conn.Close() if err != nil { log.NewError("", "ws close err", err.Error()) @@ -41,14 +41,14 @@ func (ws *WServer) msgParse(conn *UserConn, binaryMsg []byte) { } if err := validate.Struct(m); err != nil { log.ErrorByKv("ws args validate err", "", "err", err.Error()) - ws.sendErrMsg(conn, 201, err.Error(), m.ReqIdentifier, m.MsgIncr) + ws.sendErrMsg(conn, 201, err.Error(), m.ReqIdentifier, m.MsgIncr, m.OperationID) return } - if !utils.VerifyToken(m.Token, m.SendID) { - ws.sendErrMsg(conn, 202, "token validate err", m.ReqIdentifier, m.MsgIncr) - return - } + //if !utils.VerifyToken(m.Token, m.SendID) { + // ws.sendErrMsg(conn, 202, "token validate err", m.ReqIdentifier, m.MsgIncr,m.OperationID) + // return + //} fmt.Println("test fmt Basic Info Authentication Success", m.OperationID, "reqIdentifier", m.ReqIdentifier, "sendID", m.SendID) log.InfoByKv("Basic Info Authentication Success", m.OperationID, "reqIdentifier", m.ReqIdentifier, "sendID", m.SendID, "msgIncr", m.MsgIncr) @@ -267,11 +267,13 @@ func (ws *WServer) sendMsg(conn *UserConn, mReply interface{}) { log.ErrorByKv("WS WriteMsg error", "", "userIP", conn.RemoteAddr().String(), "userUid", ws.getUserUid(conn), "error", err, "mReply", mReply) } } -func (ws *WServer) sendErrMsg(conn *UserConn, errCode int32, errMsg string, reqIdentifier int32, msgIncr string) { - mReply := make(map[string]interface{}) - mReply["errCode"] = errCode - mReply["errMsg"] = errMsg - mReply["reqIdentifier"] = reqIdentifier - mReply["msgIncr"] = msgIncr +func (ws *WServer) sendErrMsg(conn *UserConn, errCode int32, errMsg string, reqIdentifier int32, msgIncr string, operationID string) { + mReply := Resp{ + ReqIdentifier: reqIdentifier, + MsgIncr: msgIncr, + ErrCode: errCode, + ErrMsg: errMsg, + OperationID: operationID, + } ws.sendMsg(conn, mReply) } From 29e570e16dd8096b15072db0929ca6d10f674a85 Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Tue, 26 Oct 2021 10:03:33 +0800 Subject: [PATCH 028/814] pb file --- src/proto/sdk_ws/ws.proto | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/src/proto/sdk_ws/ws.proto b/src/proto/sdk_ws/ws.proto index c3a1c3692..589e97a21 100644 --- a/src/proto/sdk_ws/ws.proto +++ b/src/proto/sdk_ws/ws.proto @@ -12,10 +12,11 @@ message PullMessageBySeqListResp { message PullMessageBySeqListReq{ repeated int64 seqList =1; } -message GetNewSeqReq { +message GetMaxAndMinSeqReq { } -message GetNewSeqResp { - int64 Seq = 1; +message GetMaxAndMinSeqResp { + int64 maxSeq = 1; + int64 minSeq = 2; } message GatherFormat{ // @inject_tag: json:"id" From ddd4854fd5efb97837ba4f4154b339bda9d7ddaf Mon Sep 17 00:00:00 2001 From: root Date: Tue, 26 Oct 2021 10:05:53 +0800 Subject: [PATCH 029/814] pb file --- src/proto/sdk_ws/ws.pb.go | 201 ++++++++++++++++++++------------------ 1 file changed, 105 insertions(+), 96 deletions(-) diff --git a/src/proto/sdk_ws/ws.pb.go b/src/proto/sdk_ws/ws.pb.go index 016b811b4..effde5aa0 100644 --- a/src/proto/sdk_ws/ws.pb.go +++ b/src/proto/sdk_ws/ws.pb.go @@ -32,7 +32,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_f63282669a59c073, []int{0} + return fileDescriptor_ws_f143de4f947df40f, []int{0} } func (m *PullMessageBySeqListResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_PullMessageBySeqListResp.Unmarshal(m, b) @@ -91,7 +91,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_f63282669a59c073, []int{1} + return fileDescriptor_ws_f143de4f947df40f, []int{1} } func (m *PullMessageBySeqListReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_PullMessageBySeqListReq.Unmarshal(m, b) @@ -118,70 +118,78 @@ func (m *PullMessageBySeqListReq) GetSeqList() []int64 { return nil } -type GetNewSeqReq struct { +type GetMaxAndMinSeqReq struct { XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` } -func (m *GetNewSeqReq) Reset() { *m = GetNewSeqReq{} } -func (m *GetNewSeqReq) String() string { return proto.CompactTextString(m) } -func (*GetNewSeqReq) ProtoMessage() {} -func (*GetNewSeqReq) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_f63282669a59c073, []int{2} +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_f143de4f947df40f, []int{2} } -func (m *GetNewSeqReq) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_GetNewSeqReq.Unmarshal(m, b) +func (m *GetMaxAndMinSeqReq) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GetMaxAndMinSeqReq.Unmarshal(m, b) } -func (m *GetNewSeqReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_GetNewSeqReq.Marshal(b, m, deterministic) +func (m *GetMaxAndMinSeqReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GetMaxAndMinSeqReq.Marshal(b, m, deterministic) } -func (dst *GetNewSeqReq) XXX_Merge(src proto.Message) { - xxx_messageInfo_GetNewSeqReq.Merge(dst, src) +func (dst *GetMaxAndMinSeqReq) XXX_Merge(src proto.Message) { + xxx_messageInfo_GetMaxAndMinSeqReq.Merge(dst, src) } -func (m *GetNewSeqReq) XXX_Size() int { - return xxx_messageInfo_GetNewSeqReq.Size(m) +func (m *GetMaxAndMinSeqReq) XXX_Size() int { + return xxx_messageInfo_GetMaxAndMinSeqReq.Size(m) } -func (m *GetNewSeqReq) XXX_DiscardUnknown() { - xxx_messageInfo_GetNewSeqReq.DiscardUnknown(m) +func (m *GetMaxAndMinSeqReq) XXX_DiscardUnknown() { + xxx_messageInfo_GetMaxAndMinSeqReq.DiscardUnknown(m) } -var xxx_messageInfo_GetNewSeqReq proto.InternalMessageInfo +var xxx_messageInfo_GetMaxAndMinSeqReq proto.InternalMessageInfo -type GetNewSeqResp struct { - Seq int64 `protobuf:"varint,1,opt,name=Seq" json:"Seq,omitempty"` +type GetMaxAndMinSeqResp struct { + MaxSeq int64 `protobuf:"varint,1,opt,name=maxSeq" json:"maxSeq,omitempty"` + MinSeq int64 `protobuf:"varint,2,opt,name=minSeq" json:"minSeq,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` } -func (m *GetNewSeqResp) Reset() { *m = GetNewSeqResp{} } -func (m *GetNewSeqResp) String() string { return proto.CompactTextString(m) } -func (*GetNewSeqResp) ProtoMessage() {} -func (*GetNewSeqResp) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_f63282669a59c073, []int{3} +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_f143de4f947df40f, []int{3} } -func (m *GetNewSeqResp) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_GetNewSeqResp.Unmarshal(m, b) +func (m *GetMaxAndMinSeqResp) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GetMaxAndMinSeqResp.Unmarshal(m, b) } -func (m *GetNewSeqResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_GetNewSeqResp.Marshal(b, m, deterministic) +func (m *GetMaxAndMinSeqResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GetMaxAndMinSeqResp.Marshal(b, m, deterministic) } -func (dst *GetNewSeqResp) XXX_Merge(src proto.Message) { - xxx_messageInfo_GetNewSeqResp.Merge(dst, src) +func (dst *GetMaxAndMinSeqResp) XXX_Merge(src proto.Message) { + xxx_messageInfo_GetMaxAndMinSeqResp.Merge(dst, src) } -func (m *GetNewSeqResp) XXX_Size() int { - return xxx_messageInfo_GetNewSeqResp.Size(m) +func (m *GetMaxAndMinSeqResp) XXX_Size() int { + return xxx_messageInfo_GetMaxAndMinSeqResp.Size(m) } -func (m *GetNewSeqResp) XXX_DiscardUnknown() { - xxx_messageInfo_GetNewSeqResp.DiscardUnknown(m) +func (m *GetMaxAndMinSeqResp) XXX_DiscardUnknown() { + xxx_messageInfo_GetMaxAndMinSeqResp.DiscardUnknown(m) } -var xxx_messageInfo_GetNewSeqResp proto.InternalMessageInfo +var xxx_messageInfo_GetMaxAndMinSeqResp proto.InternalMessageInfo -func (m *GetNewSeqResp) GetSeq() int64 { +func (m *GetMaxAndMinSeqResp) GetMaxSeq() int64 { if m != nil { - return m.Seq + return m.MaxSeq + } + return 0 +} + +func (m *GetMaxAndMinSeqResp) GetMinSeq() int64 { + if m != nil { + return m.MinSeq } return 0 } @@ -200,7 +208,7 @@ func (m *GatherFormat) Reset() { *m = GatherFormat{} } func (m *GatherFormat) String() string { return proto.CompactTextString(m) } func (*GatherFormat) ProtoMessage() {} func (*GatherFormat) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_f63282669a59c073, []int{4} + return fileDescriptor_ws_f143de4f947df40f, []int{4} } func (m *GatherFormat) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GatherFormat.Unmarshal(m, b) @@ -268,7 +276,7 @@ func (m *MsgFormat) Reset() { *m = MsgFormat{} } func (m *MsgFormat) String() string { return proto.CompactTextString(m) } func (*MsgFormat) ProtoMessage() {} func (*MsgFormat) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_f63282669a59c073, []int{5} + return fileDescriptor_ws_f143de4f947df40f, []int{5} } func (m *MsgFormat) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MsgFormat.Unmarshal(m, b) @@ -393,7 +401,7 @@ func (m *UserSendMsgReq) Reset() { *m = UserSendMsgReq{} } func (m *UserSendMsgReq) String() string { return proto.CompactTextString(m) } func (*UserSendMsgReq) ProtoMessage() {} func (*UserSendMsgReq) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_f63282669a59c073, []int{6} + return fileDescriptor_ws_f143de4f947df40f, []int{6} } func (m *UserSendMsgReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_UserSendMsgReq.Unmarshal(m, b) @@ -503,7 +511,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_f63282669a59c073, []int{7} + return fileDescriptor_ws_f143de4f947df40f, []int{7} } func (m *UserSendMsgResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_UserSendMsgResp.Unmarshal(m, b) @@ -567,7 +575,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_f63282669a59c073, []int{8} + return fileDescriptor_ws_f143de4f947df40f, []int{8} } func (m *MsgData) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MsgData.Unmarshal(m, b) @@ -681,8 +689,8 @@ func (m *MsgData) GetClientMsgID() string { func init() { proto.RegisterType((*PullMessageBySeqListResp)(nil), "open_im_sdk.PullMessageBySeqListResp") proto.RegisterType((*PullMessageBySeqListReq)(nil), "open_im_sdk.PullMessageBySeqListReq") - proto.RegisterType((*GetNewSeqReq)(nil), "open_im_sdk.GetNewSeqReq") - proto.RegisterType((*GetNewSeqResp)(nil), "open_im_sdk.GetNewSeqResp") + proto.RegisterType((*GetMaxAndMinSeqReq)(nil), "open_im_sdk.GetMaxAndMinSeqReq") + proto.RegisterType((*GetMaxAndMinSeqResp)(nil), "open_im_sdk.GetMaxAndMinSeqResp") proto.RegisterType((*GatherFormat)(nil), "open_im_sdk.GatherFormat") proto.RegisterType((*MsgFormat)(nil), "open_im_sdk.MsgFormat") proto.RegisterType((*UserSendMsgReq)(nil), "open_im_sdk.UserSendMsgReq") @@ -691,54 +699,55 @@ func init() { proto.RegisterType((*MsgData)(nil), "open_im_sdk.MsgData") } -func init() { proto.RegisterFile("sdk_ws/ws.proto", fileDescriptor_ws_f63282669a59c073) } - -var fileDescriptor_ws_f63282669a59c073 = []byte{ - // 726 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x8c, 0x55, 0x5d, 0x6b, 0x13, 0x41, - 0x14, 0x65, 0x77, 0x9b, 0x8f, 0xbd, 0xf9, 0x68, 0x19, 0x4a, 0x1d, 0x8b, 0x48, 0x5c, 0x44, 0x42, - 0x1f, 0x52, 0x68, 0x5f, 0xa4, 0x22, 0x42, 0x8d, 0x2d, 0x91, 0xa6, 0x96, 0x49, 0xfb, 0xe2, 0x4b, - 0x59, 0xd3, 0x31, 0x2e, 0xc9, 0x7e, 0xde, 0x6d, 0x6b, 0x7e, 0x8c, 0x7f, 0xc8, 0x07, 0xff, 0x91, - 0x20, 0x33, 0xb3, 0x9b, 0xcc, 0x24, 0x41, 0x7d, 0x9b, 0x7b, 0xf6, 0xde, 0x99, 0x7b, 0xef, 0x39, - 0x87, 0x85, 0x6d, 0xbc, 0x9b, 0xde, 0x3e, 0xe2, 0xe1, 0x23, 0xf6, 0x92, 0x2c, 0xce, 0x63, 0xd2, - 0x88, 0x13, 0x1e, 0xdd, 0x06, 0xe1, 0x2d, 0xde, 0x4d, 0xbd, 0x9f, 0x16, 0xd0, 0xab, 0xfb, 0xd9, - 0x6c, 0xc8, 0x11, 0xfd, 0x09, 0x3f, 0x9d, 0x8f, 0x78, 0x7a, 0x11, 0x60, 0xce, 0x38, 0x26, 0x64, - 0x0f, 0xaa, 0x43, 0xff, 0xfb, 0x88, 0xa7, 0xd4, 0xea, 0x58, 0x5d, 0x87, 0x15, 0x91, 0xc4, 0x83, - 0x48, 0xe0, 0x76, 0x81, 0xcb, 0x88, 0xbc, 0x83, 0xd6, 0x28, 0x88, 0x26, 0x33, 0x7e, 0x83, 0x3c, - 0x1b, 0xe2, 0x84, 0x3a, 0x1d, 0xa7, 0xdb, 0x38, 0x7a, 0xda, 0xd3, 0x5e, 0xec, 0x9d, 0xfb, 0xf9, - 0x37, 0x9e, 0x9d, 0xc5, 0x59, 0xe8, 0xe7, 0xcc, 0xcc, 0x27, 0x6f, 0xa1, 0x79, 0x9e, 0xc5, 0xf7, - 0x49, 0x59, 0xbf, 0xf5, 0xaf, 0x7a, 0x23, 0xdd, 0x3b, 0x86, 0x27, 0x9b, 0x67, 0x49, 0x09, 0x85, - 0x1a, 0xaa, 0x88, 0x5a, 0x1d, 0xa7, 0xeb, 0xb0, 0x32, 0xf4, 0xda, 0xd0, 0x3c, 0xe7, 0xf9, 0x25, - 0x7f, 0x1c, 0xf1, 0x94, 0xf1, 0xd4, 0x7b, 0x01, 0x2d, 0x2d, 0xc6, 0x84, 0xec, 0x80, 0xb3, 0x5c, - 0x81, 0x38, 0x7a, 0x1f, 0xa1, 0xa9, 0x77, 0x41, 0xda, 0x60, 0x0f, 0xfa, 0x32, 0xc1, 0x65, 0xf6, - 0xa0, 0x4f, 0x0e, 0x60, 0x4b, 0xbe, 0x64, 0xcb, 0xf6, 0xf7, 0x8c, 0xf6, 0x87, 0x38, 0x29, 0x7a, - 0x97, 0x39, 0xde, 0x6f, 0x1b, 0xdc, 0x05, 0x26, 0x36, 0x3b, 0xe2, 0xd1, 0xdd, 0xe2, 0xb6, 0x22, - 0x12, 0x38, 0xe3, 0xe3, 0x87, 0x41, 0x5f, 0x6e, 0xdc, 0x65, 0x45, 0x24, 0xc6, 0x12, 0xc5, 0x59, - 0x1c, 0x52, 0xa7, 0x63, 0x75, 0x2b, 0xac, 0x0c, 0x49, 0x07, 0x1a, 0xef, 0xe3, 0x28, 0xe7, 0x51, - 0x7e, 0x3d, 0x4f, 0x38, 0xdd, 0x92, 0x5f, 0x75, 0x48, 0x64, 0x8c, 0x78, 0xf6, 0x20, 0x57, 0x37, - 0xe8, 0xd3, 0x8a, 0xbc, 0x58, 0x87, 0xc4, 0xed, 0x45, 0x01, 0xad, 0xca, 0xaf, 0x65, 0x58, 0xee, - 0xa4, 0xb6, 0xd8, 0x09, 0xd9, 0x87, 0xba, 0xe8, 0xf5, 0x3a, 0x08, 0x39, 0xad, 0x4b, 0x78, 0x11, - 0x93, 0x03, 0xd8, 0x11, 0x67, 0x9e, 0x5d, 0xcd, 0xfc, 0xfc, 0x6b, 0x9c, 0x85, 0x83, 0x3e, 0x75, - 0x65, 0x43, 0x6b, 0x38, 0x79, 0x05, 0x6d, 0x85, 0x5d, 0x06, 0xe3, 0xe9, 0xa5, 0x1f, 0x72, 0x0a, - 0xf2, 0xe9, 0x15, 0x94, 0xbc, 0x84, 0x96, 0x42, 0xce, 0xfc, 0x31, 0xbf, 0x61, 0x17, 0xb4, 0x21, - 0xd3, 0x4c, 0x50, 0x6e, 0x61, 0x16, 0xf0, 0x28, 0x57, 0x33, 0x36, 0xd5, 0x8c, 0x1a, 0xe4, 0xfd, - 0x72, 0xa0, 0x2d, 0xf4, 0x23, 0xea, 0x86, 0x38, 0x11, 0x5a, 0x39, 0x85, 0xda, 0xa7, 0x24, 0x0f, - 0xe2, 0x08, 0xa5, 0x56, 0x1a, 0x47, 0x5d, 0x83, 0x41, 0x33, 0xbb, 0x57, 0xa4, 0x7e, 0x88, 0xf2, - 0x6c, 0xce, 0xca, 0xc2, 0x0d, 0x63, 0xd8, 0xff, 0x37, 0x86, 0xb3, 0x69, 0x8c, 0xe7, 0x00, 0xda, - 0xea, 0x14, 0x97, 0x1a, 0xa2, 0xa8, 0x44, 0x0c, 0xe2, 0x48, 0x92, 0x5d, 0x51, 0x64, 0x6b, 0x90, - 0x2e, 0x94, 0xea, 0x5f, 0x85, 0x52, 0x5b, 0x17, 0xca, 0x52, 0x7c, 0x75, 0x43, 0x7c, 0xcf, 0xc0, - 0x3d, 0x8b, 0xb3, 0x31, 0x97, 0x5a, 0x77, 0x3b, 0x4e, 0xd7, 0x65, 0x4b, 0x40, 0x17, 0x0f, 0x98, - 0xe2, 0x59, 0x21, 0xa5, 0xb1, 0x46, 0xca, 0xfe, 0x09, 0x34, 0xf5, 0xb5, 0x0a, 0xb9, 0x4d, 0xf9, - 0xbc, 0xf0, 0x84, 0x38, 0x92, 0x5d, 0xa8, 0x3c, 0xf8, 0xb3, 0x7b, 0xb5, 0xd6, 0x0a, 0x53, 0xc1, - 0x89, 0xfd, 0xda, 0xf2, 0x52, 0xd8, 0x36, 0x18, 0xc2, 0x64, 0x55, 0xe9, 0xd6, 0xba, 0xd2, 0x57, - 0x5a, 0xb2, 0xd7, 0x5a, 0x12, 0xfa, 0xc6, 0x52, 0xdf, 0x8e, 0xd2, 0x77, 0x19, 0x7b, 0x3f, 0x1c, - 0xb9, 0xdd, 0xbe, 0x9f, 0xfb, 0x62, 0x59, 0x68, 0x38, 0x18, 0x17, 0x0e, 0xce, 0x0c, 0x07, 0xab, - 0x48, 0xbc, 0x8c, 0x1a, 0x75, 0xca, 0xc5, 0x3a, 0x24, 0x16, 0x19, 0x16, 0xd4, 0x29, 0xe6, 0xcb, - 0x50, 0xd4, 0x8e, 0x35, 0xea, 0x0a, 0xda, 0xc7, 0xa6, 0xc7, 0x51, 0x9b, 0x5c, 0xb9, 0x58, 0x87, - 0xc4, 0xed, 0x45, 0x81, 0xa4, 0xde, 0x65, 0x65, 0x68, 0x4c, 0x5c, 0x37, 0x27, 0x16, 0x84, 0x20, - 0x4f, 0xa5, 0x89, 0x1d, 0x26, 0x8e, 0xc2, 0xe3, 0xb8, 0xea, 0x71, 0x50, 0x1e, 0xc7, 0x0d, 0x1e, - 0x47, 0xd3, 0x1c, 0x4a, 0x03, 0x2b, 0xa8, 0x30, 0x07, 0x1a, 0xe6, 0x50, 0xfe, 0x35, 0x41, 0xb9, - 0x05, 0x8d, 0xbb, 0x96, 0x9a, 0x51, 0x83, 0x4e, 0xf7, 0x3e, 0xef, 0xf6, 0x0e, 0xd5, 0x6f, 0xf0, - 0x8d, 0xe6, 0xe4, 0x2f, 0x55, 0xf9, 0x43, 0x3c, 0xfe, 0x13, 0x00, 0x00, 0xff, 0xff, 0xf7, 0xa1, - 0x94, 0x0c, 0x23, 0x07, 0x00, 0x00, +func init() { proto.RegisterFile("sdk_ws/ws.proto", fileDescriptor_ws_f143de4f947df40f) } + +var fileDescriptor_ws_f143de4f947df40f = []byte{ + // 739 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x8c, 0x55, 0x4b, 0x6b, 0xdb, 0x4a, + 0x14, 0x46, 0x52, 0xfc, 0xd0, 0xb1, 0xf3, 0x60, 0x6e, 0xc8, 0xd5, 0x0d, 0x97, 0x8b, 0x11, 0x97, + 0x62, 0xb2, 0x70, 0x20, 0xd9, 0x94, 0x94, 0x52, 0x9a, 0x3a, 0x09, 0x2e, 0x71, 0x1a, 0xc6, 0xc9, + 0xa6, 0x9b, 0xa0, 0xda, 0x53, 0x57, 0xd8, 0x7a, 0x58, 0x47, 0x79, 0xf8, 0xc7, 0xf4, 0x0f, 0x75, + 0xd1, 0x7f, 0x54, 0x28, 0x67, 0x46, 0x72, 0x66, 0x6c, 0xd3, 0x76, 0x37, 0xe7, 0xd3, 0x9c, 0x99, + 0x39, 0xdf, 0x03, 0xc1, 0x36, 0x8e, 0x26, 0x77, 0x8f, 0x78, 0xf8, 0x88, 0x9d, 0x34, 0x4b, 0xf2, + 0x84, 0x35, 0x92, 0x54, 0xc4, 0x77, 0x61, 0x74, 0x87, 0xa3, 0x89, 0xff, 0xcd, 0x02, 0xef, 0xfa, + 0x7e, 0x3a, 0xed, 0x0b, 0xc4, 0x60, 0x2c, 0x4e, 0xe7, 0x03, 0x31, 0xbb, 0x0c, 0x31, 0xe7, 0x02, + 0x53, 0xb6, 0x07, 0xd5, 0x7e, 0xf0, 0x34, 0x10, 0x33, 0xcf, 0x6a, 0x59, 0x6d, 0x87, 0x17, 0x95, + 0xc4, 0xc3, 0x98, 0x70, 0xbb, 0xc0, 0x65, 0xc5, 0xde, 0xc0, 0xe6, 0x20, 0x8c, 0xc7, 0x53, 0x71, + 0x8b, 0x22, 0xeb, 0xe3, 0xd8, 0x73, 0x5a, 0x4e, 0xbb, 0x71, 0xf4, 0x4f, 0x47, 0xbb, 0xb1, 0x73, + 0x11, 0xe4, 0x5f, 0x44, 0x76, 0x9e, 0x64, 0x51, 0x90, 0x73, 0x73, 0x3f, 0x7b, 0x0d, 0xcd, 0x8b, + 0x2c, 0xb9, 0x4f, 0xcb, 0xfe, 0x8d, 0xdf, 0xf5, 0x1b, 0xdb, 0xfd, 0x63, 0xf8, 0x7b, 0xfd, 0x2c, + 0x33, 0xe6, 0x41, 0x0d, 0x55, 0xe5, 0x59, 0x2d, 0xa7, 0xed, 0xf0, 0xb2, 0xf4, 0x77, 0x81, 0x5d, + 0x88, 0xbc, 0x1f, 0x3c, 0xbd, 0x8d, 0x47, 0x6a, 0x0e, 0x2e, 0x66, 0xfe, 0x19, 0xfc, 0xb5, 0x82, + 0x2a, 0x46, 0x22, 0x83, 0x91, 0x68, 0xc1, 0x48, 0x64, 0x30, 0xa2, 0x2a, 0xff, 0x3d, 0x34, 0xf5, + 0xf7, 0xb2, 0x2d, 0xb0, 0x7b, 0x5d, 0xd9, 0xeb, 0x72, 0xbb, 0xd7, 0x65, 0x07, 0xb0, 0x21, 0xdf, + 0x64, 0xcb, 0x41, 0xf7, 0x8c, 0x41, 0xfb, 0x38, 0x2e, 0xa6, 0x94, 0x7b, 0xfc, 0x1f, 0x36, 0xb8, + 0x0b, 0x8c, 0x6e, 0x1c, 0x88, 0x78, 0xb4, 0x38, 0xad, 0xa8, 0x08, 0xe7, 0x62, 0xf8, 0xd0, 0xeb, + 0xca, 0x97, 0xb8, 0xbc, 0xa8, 0x88, 0x00, 0x6a, 0xce, 0x92, 0xc8, 0x73, 0x5a, 0x56, 0xbb, 0xc2, + 0xcb, 0x92, 0xb5, 0xa0, 0xf1, 0x2e, 0x89, 0x73, 0x11, 0xe7, 0x37, 0xf3, 0x54, 0x78, 0x1b, 0xf2, + 0xab, 0x0e, 0xd1, 0x8e, 0x81, 0xc8, 0x1e, 0x24, 0xc9, 0xbd, 0xae, 0x57, 0x91, 0x07, 0xeb, 0x10, + 0x9d, 0x5e, 0x34, 0x78, 0x55, 0xf9, 0xb5, 0x2c, 0xd9, 0x0e, 0x38, 0x44, 0x4b, 0x4d, 0xd2, 0x42, + 0x4b, 0xb6, 0x0f, 0x75, 0x7a, 0xeb, 0x4d, 0x18, 0x09, 0xaf, 0x2e, 0xe1, 0x45, 0xcd, 0x0e, 0x60, + 0x87, 0xd6, 0x22, 0xbb, 0x9e, 0x06, 0xf9, 0xe7, 0x24, 0x8b, 0x7a, 0x5d, 0xcf, 0x95, 0x0f, 0x5a, + 0xc1, 0xd9, 0x0b, 0xd8, 0x52, 0xd8, 0x55, 0x38, 0x9c, 0x5c, 0x05, 0x91, 0xf0, 0x40, 0x5e, 0xbd, + 0x84, 0xb2, 0xff, 0x61, 0x53, 0x21, 0xe7, 0xc1, 0x50, 0xdc, 0xf2, 0x4b, 0xaf, 0x21, 0xb7, 0x99, + 0xa0, 0x64, 0x61, 0x1a, 0x8a, 0x38, 0x57, 0x33, 0x36, 0xd5, 0x8c, 0x1a, 0xe4, 0x7f, 0x77, 0x60, + 0x8b, 0x9c, 0x46, 0x7d, 0x7d, 0x1c, 0x93, 0xab, 0x4e, 0xa1, 0xf6, 0x21, 0xcd, 0xc3, 0x24, 0x46, + 0xe9, 0xaa, 0xc6, 0x51, 0xdb, 0x50, 0xd0, 0xdc, 0xdd, 0x29, 0xb6, 0x9e, 0xc5, 0x79, 0x36, 0xe7, + 0x65, 0xe3, 0x9a, 0x31, 0xec, 0x3f, 0x1b, 0xc3, 0x59, 0x37, 0xc6, 0x7f, 0x00, 0x1a, 0x75, 0x4a, + 0x4b, 0x0d, 0x51, 0x52, 0x22, 0x86, 0x49, 0x2c, 0xc5, 0xae, 0x28, 0xb1, 0x35, 0x48, 0x37, 0x4a, + 0xf5, 0x97, 0x46, 0xa9, 0xad, 0x1a, 0xe5, 0xd9, 0x7c, 0x75, 0xc3, 0x7c, 0xff, 0x82, 0x7b, 0x9e, + 0x64, 0x43, 0x21, 0xbd, 0xee, 0xb6, 0x9c, 0xb6, 0xcb, 0x9f, 0x01, 0xdd, 0x3c, 0x60, 0x9a, 0x67, + 0x49, 0x94, 0xc6, 0x8a, 0x28, 0xfb, 0x27, 0xd0, 0xd4, 0x69, 0x25, 0xbb, 0x4d, 0xc4, 0xbc, 0xc8, + 0x04, 0x2d, 0xd9, 0x2e, 0x54, 0x1e, 0x82, 0xe9, 0xbd, 0xa2, 0xb5, 0xc2, 0x55, 0x71, 0x62, 0xbf, + 0xb4, 0xfc, 0x19, 0x6c, 0x1b, 0x0a, 0x61, 0xba, 0xec, 0x74, 0x6b, 0xd5, 0xe9, 0x4b, 0x4f, 0xb2, + 0x57, 0x9e, 0x44, 0xfe, 0xc6, 0xd2, 0xdf, 0x8e, 0xf2, 0x77, 0x59, 0xfb, 0x5f, 0x1d, 0xc9, 0x6e, + 0x37, 0xc8, 0x03, 0x22, 0x0b, 0x8d, 0x04, 0xe3, 0x22, 0xc1, 0x99, 0x91, 0x60, 0x55, 0xd1, 0xcd, + 0xa8, 0x49, 0xa7, 0x52, 0xac, 0x43, 0x44, 0x64, 0x54, 0x48, 0xa7, 0x94, 0x2f, 0x4b, 0xea, 0x1d, + 0x6a, 0xd2, 0x15, 0xb2, 0x0f, 0xcd, 0x8c, 0xa3, 0x36, 0xb9, 0x4a, 0xb1, 0x0e, 0xd1, 0xe9, 0x45, + 0x83, 0x94, 0xde, 0xe5, 0x65, 0x69, 0x4c, 0x5c, 0x37, 0x27, 0x26, 0x41, 0x50, 0xcc, 0x64, 0x88, + 0x1d, 0x4e, 0x4b, 0xca, 0x38, 0x2e, 0x67, 0x1c, 0x54, 0xc6, 0x71, 0x4d, 0xc6, 0xd1, 0x0c, 0x87, + 0xf2, 0xc0, 0x12, 0x4a, 0xe1, 0x40, 0x23, 0x1c, 0x2a, 0xbf, 0x26, 0x28, 0x59, 0xd0, 0xb4, 0xdb, + 0x54, 0x33, 0x6a, 0xd0, 0xe9, 0xde, 0xc7, 0xdd, 0xce, 0xa1, 0xfa, 0x61, 0xbe, 0xd2, 0x92, 0xfc, + 0xa9, 0x2a, 0x7f, 0x9d, 0xc7, 0x3f, 0x03, 0x00, 0x00, 0xff, 0xff, 0x38, 0x51, 0xff, 0xb4, 0x4d, + 0x07, 0x00, 0x00, } From 723bac8afe6f8597cbe57651d415b828b9650ec5 Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Tue, 26 Oct 2021 10:20:51 +0800 Subject: [PATCH 030/814] pb file --- src/proto/chat/chat.proto | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/proto/chat/chat.proto b/src/proto/chat/chat.proto index 19cf454ca..3c66c99dc 100644 --- a/src/proto/chat/chat.proto +++ b/src/proto/chat/chat.proto @@ -63,14 +63,15 @@ message PullMessageBySeqListReq{ string OperationID = 2; repeated int64 seqList =3; } -message GetNewSeqReq { +message GetMaxAndMinSeqReq { string UserID = 1; string OperationID = 2; } -message GetNewSeqResp { +message GetMaxAndMinSeqResp { int32 ErrCode = 1; string ErrMsg = 2; - int64 Seq = 3; + int64 MaxSeq = 3; + int64 MinSeq = 4; } message GatherFormat{ // @inject_tag: json:"id" @@ -139,7 +140,7 @@ message UserSendMsgResp { } service Chat { - rpc GetNewSeq(GetNewSeqReq) returns(GetNewSeqResp); + rpc GetMaxAndMinSeq(GetMaxAndMinSeqReq) returns(GetMaxAndMinSeqResp); rpc PullMessage(PullMessageReq) returns(PullMessageResp); rpc PullMessageBySeqList(PullMessageBySeqListReq) returns(PullMessageResp); rpc UserSendMsg(UserSendMsgReq) returns(UserSendMsgResp); From 90cde99f06283ea0ece240d9e68d2048df123340 Mon Sep 17 00:00:00 2001 From: root Date: Tue, 26 Oct 2021 10:29:02 +0800 Subject: [PATCH 031/814] pb file --- src/proto/chat/chat.pb.go | 268 ++++++++++++++++++++------------------ 1 file changed, 138 insertions(+), 130 deletions(-) diff --git a/src/proto/chat/chat.pb.go b/src/proto/chat/chat.pb.go index aa03feadb..b48d2cee1 100644 --- a/src/proto/chat/chat.pb.go +++ b/src/proto/chat/chat.pb.go @@ -50,7 +50,7 @@ func (m *WSToMsgSvrChatMsg) Reset() { *m = WSToMsgSvrChatMsg{} } func (m *WSToMsgSvrChatMsg) String() string { return proto.CompactTextString(m) } func (*WSToMsgSvrChatMsg) ProtoMessage() {} func (*WSToMsgSvrChatMsg) Descriptor() ([]byte, []int) { - return fileDescriptor_chat_1c5fb32d3659e154, []int{0} + return fileDescriptor_chat_feb94a5514034c46, []int{0} } func (m *WSToMsgSvrChatMsg) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_WSToMsgSvrChatMsg.Unmarshal(m, b) @@ -215,7 +215,7 @@ func (m *MsgSvrToPushSvrChatMsg) Reset() { *m = MsgSvrToPushSvrChatMsg{} func (m *MsgSvrToPushSvrChatMsg) String() string { return proto.CompactTextString(m) } func (*MsgSvrToPushSvrChatMsg) ProtoMessage() {} func (*MsgSvrToPushSvrChatMsg) Descriptor() ([]byte, []int) { - return fileDescriptor_chat_1c5fb32d3659e154, []int{1} + return fileDescriptor_chat_feb94a5514034c46, []int{1} } func (m *MsgSvrToPushSvrChatMsg) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MsgSvrToPushSvrChatMsg.Unmarshal(m, b) @@ -361,7 +361,7 @@ func (m *PullMessageReq) Reset() { *m = PullMessageReq{} } func (m *PullMessageReq) String() string { return proto.CompactTextString(m) } func (*PullMessageReq) ProtoMessage() {} func (*PullMessageReq) Descriptor() ([]byte, []int) { - return fileDescriptor_chat_1c5fb32d3659e154, []int{2} + return fileDescriptor_chat_feb94a5514034c46, []int{2} } func (m *PullMessageReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_PullMessageReq.Unmarshal(m, b) @@ -425,7 +425,7 @@ func (m *PullMessageResp) Reset() { *m = PullMessageResp{} } func (m *PullMessageResp) String() string { return proto.CompactTextString(m) } func (*PullMessageResp) ProtoMessage() {} func (*PullMessageResp) Descriptor() ([]byte, []int) { - return fileDescriptor_chat_1c5fb32d3659e154, []int{3} + return fileDescriptor_chat_feb94a5514034c46, []int{3} } func (m *PullMessageResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_PullMessageResp.Unmarshal(m, b) @@ -500,7 +500,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_chat_1c5fb32d3659e154, []int{4} + return fileDescriptor_chat_feb94a5514034c46, []int{4} } func (m *PullMessageBySeqListReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_PullMessageBySeqListReq.Unmarshal(m, b) @@ -541,7 +541,7 @@ func (m *PullMessageBySeqListReq) GetSeqList() []int64 { return nil } -type GetNewSeqReq struct { +type GetMaxAndMinSeqReq struct { UserID string `protobuf:"bytes,1,opt,name=UserID" json:"UserID,omitempty"` OperationID string `protobuf:"bytes,2,opt,name=OperationID" json:"OperationID,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` @@ -549,94 +549,102 @@ type GetNewSeqReq struct { XXX_sizecache int32 `json:"-"` } -func (m *GetNewSeqReq) Reset() { *m = GetNewSeqReq{} } -func (m *GetNewSeqReq) String() string { return proto.CompactTextString(m) } -func (*GetNewSeqReq) ProtoMessage() {} -func (*GetNewSeqReq) Descriptor() ([]byte, []int) { - return fileDescriptor_chat_1c5fb32d3659e154, []int{5} +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_chat_feb94a5514034c46, []int{5} } -func (m *GetNewSeqReq) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_GetNewSeqReq.Unmarshal(m, b) +func (m *GetMaxAndMinSeqReq) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GetMaxAndMinSeqReq.Unmarshal(m, b) } -func (m *GetNewSeqReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_GetNewSeqReq.Marshal(b, m, deterministic) +func (m *GetMaxAndMinSeqReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GetMaxAndMinSeqReq.Marshal(b, m, deterministic) } -func (dst *GetNewSeqReq) XXX_Merge(src proto.Message) { - xxx_messageInfo_GetNewSeqReq.Merge(dst, src) +func (dst *GetMaxAndMinSeqReq) XXX_Merge(src proto.Message) { + xxx_messageInfo_GetMaxAndMinSeqReq.Merge(dst, src) } -func (m *GetNewSeqReq) XXX_Size() int { - return xxx_messageInfo_GetNewSeqReq.Size(m) +func (m *GetMaxAndMinSeqReq) XXX_Size() int { + return xxx_messageInfo_GetMaxAndMinSeqReq.Size(m) } -func (m *GetNewSeqReq) XXX_DiscardUnknown() { - xxx_messageInfo_GetNewSeqReq.DiscardUnknown(m) +func (m *GetMaxAndMinSeqReq) XXX_DiscardUnknown() { + xxx_messageInfo_GetMaxAndMinSeqReq.DiscardUnknown(m) } -var xxx_messageInfo_GetNewSeqReq proto.InternalMessageInfo +var xxx_messageInfo_GetMaxAndMinSeqReq proto.InternalMessageInfo -func (m *GetNewSeqReq) GetUserID() string { +func (m *GetMaxAndMinSeqReq) GetUserID() string { if m != nil { return m.UserID } return "" } -func (m *GetNewSeqReq) GetOperationID() string { +func (m *GetMaxAndMinSeqReq) GetOperationID() string { if m != nil { return m.OperationID } return "" } -type GetNewSeqResp struct { +type GetMaxAndMinSeqResp struct { ErrCode int32 `protobuf:"varint,1,opt,name=ErrCode" json:"ErrCode,omitempty"` ErrMsg string `protobuf:"bytes,2,opt,name=ErrMsg" json:"ErrMsg,omitempty"` - Seq int64 `protobuf:"varint,3,opt,name=Seq" json:"Seq,omitempty"` + MaxSeq int64 `protobuf:"varint,3,opt,name=MaxSeq" json:"MaxSeq,omitempty"` + MinSeq int64 `protobuf:"varint,4,opt,name=MinSeq" json:"MinSeq,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` } -func (m *GetNewSeqResp) Reset() { *m = GetNewSeqResp{} } -func (m *GetNewSeqResp) String() string { return proto.CompactTextString(m) } -func (*GetNewSeqResp) ProtoMessage() {} -func (*GetNewSeqResp) Descriptor() ([]byte, []int) { - return fileDescriptor_chat_1c5fb32d3659e154, []int{6} +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_chat_feb94a5514034c46, []int{6} } -func (m *GetNewSeqResp) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_GetNewSeqResp.Unmarshal(m, b) +func (m *GetMaxAndMinSeqResp) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GetMaxAndMinSeqResp.Unmarshal(m, b) } -func (m *GetNewSeqResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_GetNewSeqResp.Marshal(b, m, deterministic) +func (m *GetMaxAndMinSeqResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GetMaxAndMinSeqResp.Marshal(b, m, deterministic) } -func (dst *GetNewSeqResp) XXX_Merge(src proto.Message) { - xxx_messageInfo_GetNewSeqResp.Merge(dst, src) +func (dst *GetMaxAndMinSeqResp) XXX_Merge(src proto.Message) { + xxx_messageInfo_GetMaxAndMinSeqResp.Merge(dst, src) } -func (m *GetNewSeqResp) XXX_Size() int { - return xxx_messageInfo_GetNewSeqResp.Size(m) +func (m *GetMaxAndMinSeqResp) XXX_Size() int { + return xxx_messageInfo_GetMaxAndMinSeqResp.Size(m) } -func (m *GetNewSeqResp) XXX_DiscardUnknown() { - xxx_messageInfo_GetNewSeqResp.DiscardUnknown(m) +func (m *GetMaxAndMinSeqResp) XXX_DiscardUnknown() { + xxx_messageInfo_GetMaxAndMinSeqResp.DiscardUnknown(m) } -var xxx_messageInfo_GetNewSeqResp proto.InternalMessageInfo +var xxx_messageInfo_GetMaxAndMinSeqResp proto.InternalMessageInfo -func (m *GetNewSeqResp) GetErrCode() int32 { +func (m *GetMaxAndMinSeqResp) GetErrCode() int32 { if m != nil { return m.ErrCode } return 0 } -func (m *GetNewSeqResp) GetErrMsg() string { +func (m *GetMaxAndMinSeqResp) GetErrMsg() string { if m != nil { return m.ErrMsg } return "" } -func (m *GetNewSeqResp) GetSeq() int64 { +func (m *GetMaxAndMinSeqResp) GetMaxSeq() int64 { if m != nil { - return m.Seq + return m.MaxSeq + } + return 0 +} + +func (m *GetMaxAndMinSeqResp) GetMinSeq() int64 { + if m != nil { + return m.MinSeq } return 0 } @@ -655,7 +663,7 @@ func (m *GatherFormat) Reset() { *m = GatherFormat{} } func (m *GatherFormat) String() string { return proto.CompactTextString(m) } func (*GatherFormat) ProtoMessage() {} func (*GatherFormat) Descriptor() ([]byte, []int) { - return fileDescriptor_chat_1c5fb32d3659e154, []int{7} + return fileDescriptor_chat_feb94a5514034c46, []int{7} } func (m *GatherFormat) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GatherFormat.Unmarshal(m, b) @@ -723,7 +731,7 @@ func (m *MsgFormat) Reset() { *m = MsgFormat{} } func (m *MsgFormat) String() string { return proto.CompactTextString(m) } func (*MsgFormat) ProtoMessage() {} func (*MsgFormat) Descriptor() ([]byte, []int) { - return fileDescriptor_chat_1c5fb32d3659e154, []int{8} + return fileDescriptor_chat_feb94a5514034c46, []int{8} } func (m *MsgFormat) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MsgFormat.Unmarshal(m, b) @@ -855,7 +863,7 @@ func (m *UserSendMsgReq) Reset() { *m = UserSendMsgReq{} } func (m *UserSendMsgReq) String() string { return proto.CompactTextString(m) } func (*UserSendMsgReq) ProtoMessage() {} func (*UserSendMsgReq) Descriptor() ([]byte, []int) { - return fileDescriptor_chat_1c5fb32d3659e154, []int{9} + return fileDescriptor_chat_feb94a5514034c46, []int{9} } func (m *UserSendMsgReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_UserSendMsgReq.Unmarshal(m, b) @@ -1017,7 +1025,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_chat_1c5fb32d3659e154, []int{10} + return fileDescriptor_chat_feb94a5514034c46, []int{10} } func (m *UserSendMsgResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_UserSendMsgResp.Unmarshal(m, b) @@ -1085,8 +1093,8 @@ func init() { proto.RegisterType((*PullMessageReq)(nil), "pbChat.PullMessageReq") proto.RegisterType((*PullMessageResp)(nil), "pbChat.PullMessageResp") proto.RegisterType((*PullMessageBySeqListReq)(nil), "pbChat.PullMessageBySeqListReq") - proto.RegisterType((*GetNewSeqReq)(nil), "pbChat.GetNewSeqReq") - proto.RegisterType((*GetNewSeqResp)(nil), "pbChat.GetNewSeqResp") + proto.RegisterType((*GetMaxAndMinSeqReq)(nil), "pbChat.GetMaxAndMinSeqReq") + proto.RegisterType((*GetMaxAndMinSeqResp)(nil), "pbChat.GetMaxAndMinSeqResp") proto.RegisterType((*GatherFormat)(nil), "pbChat.GatherFormat") proto.RegisterType((*MsgFormat)(nil), "pbChat.MsgFormat") proto.RegisterType((*UserSendMsgReq)(nil), "pbChat.UserSendMsgReq") @@ -1104,7 +1112,7 @@ const _ = grpc.SupportPackageIsVersion4 // Client API for Chat service type ChatClient interface { - GetNewSeq(ctx context.Context, in *GetNewSeqReq, opts ...grpc.CallOption) (*GetNewSeqResp, error) + GetMaxAndMinSeq(ctx context.Context, in *GetMaxAndMinSeqReq, opts ...grpc.CallOption) (*GetMaxAndMinSeqResp, error) PullMessage(ctx context.Context, in *PullMessageReq, opts ...grpc.CallOption) (*PullMessageResp, error) PullMessageBySeqList(ctx context.Context, in *PullMessageBySeqListReq, opts ...grpc.CallOption) (*PullMessageResp, error) UserSendMsg(ctx context.Context, in *UserSendMsgReq, opts ...grpc.CallOption) (*UserSendMsgResp, error) @@ -1118,9 +1126,9 @@ func NewChatClient(cc *grpc.ClientConn) ChatClient { return &chatClient{cc} } -func (c *chatClient) GetNewSeq(ctx context.Context, in *GetNewSeqReq, opts ...grpc.CallOption) (*GetNewSeqResp, error) { - out := new(GetNewSeqResp) - err := grpc.Invoke(ctx, "/pbChat.Chat/GetNewSeq", in, out, c.cc, opts...) +func (c *chatClient) GetMaxAndMinSeq(ctx context.Context, in *GetMaxAndMinSeqReq, opts ...grpc.CallOption) (*GetMaxAndMinSeqResp, error) { + out := new(GetMaxAndMinSeqResp) + err := grpc.Invoke(ctx, "/pbChat.Chat/GetMaxAndMinSeq", in, out, c.cc, opts...) if err != nil { return nil, err } @@ -1157,7 +1165,7 @@ func (c *chatClient) UserSendMsg(ctx context.Context, in *UserSendMsgReq, opts . // Server API for Chat service type ChatServer interface { - GetNewSeq(context.Context, *GetNewSeqReq) (*GetNewSeqResp, error) + GetMaxAndMinSeq(context.Context, *GetMaxAndMinSeqReq) (*GetMaxAndMinSeqResp, error) PullMessage(context.Context, *PullMessageReq) (*PullMessageResp, error) PullMessageBySeqList(context.Context, *PullMessageBySeqListReq) (*PullMessageResp, error) UserSendMsg(context.Context, *UserSendMsgReq) (*UserSendMsgResp, error) @@ -1167,20 +1175,20 @@ func RegisterChatServer(s *grpc.Server, srv ChatServer) { s.RegisterService(&_Chat_serviceDesc, srv) } -func _Chat_GetNewSeq_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(GetNewSeqReq) +func _Chat_GetMaxAndMinSeq_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetMaxAndMinSeqReq) if err := dec(in); err != nil { return nil, err } if interceptor == nil { - return srv.(ChatServer).GetNewSeq(ctx, in) + return srv.(ChatServer).GetMaxAndMinSeq(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/pbChat.Chat/GetNewSeq", + FullMethod: "/pbChat.Chat/GetMaxAndMinSeq", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(ChatServer).GetNewSeq(ctx, req.(*GetNewSeqReq)) + return srv.(ChatServer).GetMaxAndMinSeq(ctx, req.(*GetMaxAndMinSeqReq)) } return interceptor(ctx, in, info, handler) } @@ -1244,8 +1252,8 @@ var _Chat_serviceDesc = grpc.ServiceDesc{ HandlerType: (*ChatServer)(nil), Methods: []grpc.MethodDesc{ { - MethodName: "GetNewSeq", - Handler: _Chat_GetNewSeq_Handler, + MethodName: "GetMaxAndMinSeq", + Handler: _Chat_GetMaxAndMinSeq_Handler, }, { MethodName: "PullMessage", @@ -1264,70 +1272,70 @@ var _Chat_serviceDesc = grpc.ServiceDesc{ Metadata: "chat/chat.proto", } -func init() { proto.RegisterFile("chat/chat.proto", fileDescriptor_chat_1c5fb32d3659e154) } - -var fileDescriptor_chat_1c5fb32d3659e154 = []byte{ - // 978 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xb4, 0x57, 0xdd, 0x6a, 0xe3, 0x46, - 0x14, 0xc6, 0x92, 0x2d, 0x47, 0xc7, 0xbf, 0x19, 0xd2, 0xec, 0x10, 0x4a, 0x6b, 0xc4, 0xb6, 0x98, - 0x5e, 0xa4, 0xb0, 0xbd, 0x59, 0x5a, 0xd8, 0x8b, 0xc4, 0x4e, 0x2a, 0x88, 0xb3, 0x41, 0xf2, 0x52, - 0xe8, 0x9d, 0xd6, 0x19, 0x2b, 0x62, 0x6d, 0x49, 0xd6, 0x28, 0x69, 0xf6, 0xa6, 0xaf, 0x50, 0xe8, - 0x73, 0xf4, 0x45, 0xfa, 0x28, 0x7d, 0x85, 0x42, 0xa1, 0xcc, 0x8c, 0x64, 0xcd, 0x48, 0x72, 0x12, - 0xb2, 0xec, 0xcd, 0xb2, 0xdf, 0xa7, 0x33, 0x3f, 0xe7, 0x9c, 0x6f, 0xbe, 0x13, 0xc3, 0x60, 0x71, - 0xe3, 0xa5, 0xdf, 0xb3, 0x7f, 0x8e, 0xe3, 0x24, 0x4a, 0x23, 0x64, 0xc4, 0xef, 0x4f, 0x6f, 0xbc, - 0xd4, 0xfa, 0xa3, 0x09, 0xfb, 0xbf, 0xb8, 0xf3, 0x68, 0x46, 0x7d, 0xf7, 0x2e, 0x61, 0xd4, 0x8c, - 0xfa, 0xe8, 0x10, 0x0c, 0x97, 0x84, 0xd7, 0xf6, 0x04, 0x37, 0x46, 0x8d, 0xb1, 0xe9, 0x64, 0x88, - 0xf1, 0x0e, 0x59, 0xdc, 0xd9, 0x13, 0xac, 0x09, 0x5e, 0x20, 0x84, 0xa1, 0x7d, 0x1a, 0x85, 0x29, - 0x09, 0x53, 0xac, 0xf3, 0x0f, 0x39, 0x44, 0x47, 0xb0, 0xc7, 0xd6, 0xce, 0x83, 0x35, 0xc1, 0xcd, - 0x51, 0x63, 0xac, 0x3b, 0x5b, 0xcc, 0x56, 0xcd, 0xa8, 0x7f, 0x96, 0x44, 0x6b, 0xdc, 0x1a, 0x35, - 0xc6, 0x2d, 0x27, 0x87, 0xe8, 0x5b, 0xe8, 0xb3, 0x28, 0x92, 0x5c, 0x06, 0x8b, 0x0f, 0x97, 0xde, - 0x9a, 0x60, 0x83, 0x6f, 0x5b, 0x62, 0xd1, 0x4b, 0xe8, 0x09, 0xe6, 0xcc, 0x5b, 0x90, 0x77, 0xce, - 0x05, 0x6e, 0xf3, 0x30, 0x95, 0x44, 0x23, 0xe8, 0x64, 0xd7, 0x99, 0x7f, 0x8c, 0x09, 0xde, 0xe3, - 0x67, 0xc9, 0x14, 0x8b, 0x70, 0x09, 0xa5, 0x41, 0x14, 0xf2, 0x08, 0x53, 0x44, 0x48, 0x14, 0x8b, - 0x78, 0x1b, 0x93, 0xc4, 0x4b, 0x83, 0x28, 0xb4, 0x27, 0x18, 0xf8, 0x39, 0x32, 0x85, 0x0e, 0xa0, - 0x35, 0xa3, 0xbe, 0x3d, 0xc1, 0x1d, 0xfe, 0x4d, 0x00, 0xc6, 0xce, 0xa3, 0x0f, 0x24, 0xc4, 0x5d, - 0xc1, 0x72, 0xc0, 0x77, 0x5b, 0x2e, 0x57, 0x41, 0x48, 0xec, 0x70, 0x19, 0xe1, 0x5e, 0xb6, 0x5b, - 0x41, 0xb1, 0xda, 0xbc, 0x8d, 0xd9, 0xce, 0x14, 0xf7, 0x45, 0x45, 0x33, 0x88, 0xbe, 0x02, 0xb8, - 0x5a, 0x79, 0xe9, 0x32, 0x4a, 0xd6, 0xf6, 0x04, 0x0f, 0xf8, 0x55, 0x25, 0x06, 0x7d, 0x09, 0xe6, - 0x59, 0x94, 0x2c, 0xc8, 0x45, 0x40, 0x53, 0x3c, 0x1c, 0xe9, 0x63, 0xd3, 0x29, 0x08, 0x5e, 0x8b, - 0x55, 0x40, 0xc2, 0x54, 0xdc, 0x75, 0x5f, 0x9c, 0x2c, 0x51, 0xd6, 0xbf, 0x3a, 0x1c, 0x0a, 0x35, - 0xcc, 0xa3, 0xab, 0x5b, 0x7a, 0xf3, 0x59, 0x64, 0x81, 0xa1, 0xcd, 0x62, 0x5c, 0xb2, 0xc9, 0x54, - 0x91, 0x43, 0x45, 0x30, 0xad, 0xdd, 0x82, 0x31, 0x1e, 0x13, 0x4c, 0xfb, 0x69, 0x82, 0xd9, 0x7b, - 0x82, 0x60, 0xcc, 0x47, 0x05, 0x03, 0x8f, 0x0a, 0xa6, 0xf3, 0x80, 0x60, 0xba, 0xb2, 0x60, 0x3e, - 0xa7, 0x34, 0x4a, 0xcd, 0x1f, 0x56, 0x9b, 0xff, 0x3b, 0xf4, 0xaf, 0x6e, 0x57, 0xab, 0x19, 0xa1, - 0xd4, 0xf3, 0x89, 0x43, 0x36, 0xac, 0xb7, 0xef, 0x28, 0x49, 0x8a, 0x9e, 0x0b, 0x24, 0xfa, 0xb4, - 0x39, 0x21, 0x7e, 0x10, 0xf2, 0xae, 0xf3, 0x3e, 0x09, 0x2c, 0x74, 0xb2, 0x99, 0x86, 0xd7, 0xbc, - 0xed, 0xba, 0x93, 0xa1, 0x72, 0x4d, 0x9a, 0x95, 0x9a, 0x58, 0xff, 0x34, 0x60, 0xa0, 0x5c, 0x80, - 0xc6, 0x2c, 0xdf, 0x69, 0x92, 0x9c, 0x46, 0xd7, 0x84, 0x5f, 0xa1, 0xe5, 0xe4, 0x90, 0x9d, 0x33, - 0x4d, 0x92, 0x19, 0xf5, 0x73, 0xdd, 0x09, 0xc4, 0xf8, 0x99, 0x77, 0xcf, 0xc4, 0x95, 0x9d, 0x2f, - 0x10, 0xe7, 0x83, 0xb0, 0x10, 0x5d, 0x86, 0xd0, 0x8f, 0xd0, 0x73, 0x83, 0xd0, 0x5f, 0x11, 0x96, - 0x1b, 0xdb, 0xae, 0x35, 0xd2, 0xc7, 0x9d, 0x57, 0x07, 0xc7, 0xc2, 0x24, 0x8f, 0xcf, 0xbd, 0xf4, - 0x86, 0x24, 0x67, 0x51, 0xb2, 0xf6, 0x52, 0x47, 0x0d, 0x45, 0xaf, 0xa1, 0x7b, 0x9e, 0x44, 0xb7, - 0x71, 0xbe, 0xd4, 0x78, 0x60, 0xa9, 0x12, 0x69, 0xad, 0xe1, 0x85, 0x94, 0xea, 0xc9, 0x47, 0x97, - 0x6c, 0xd8, 0x13, 0x7d, 0xa8, 0xe8, 0xa5, 0x02, 0x6a, 0x55, 0x51, 0x61, 0x68, 0x53, 0xb1, 0x0f, - 0xd6, 0x47, 0x3a, 0x7b, 0x58, 0x19, 0xb4, 0x7e, 0x86, 0xee, 0x39, 0x49, 0x2f, 0xc9, 0x6f, 0x2e, - 0xd9, 0x7c, 0xd2, 0x19, 0x96, 0x0b, 0x3d, 0x69, 0xa7, 0x67, 0x75, 0x68, 0x08, 0x7a, 0xd1, 0x1e, - 0xf6, 0x5f, 0x6b, 0x0a, 0x5d, 0xb9, 0x56, 0xa8, 0x0f, 0xda, 0xf6, 0x6a, 0x9a, 0x3d, 0x41, 0xdf, - 0x40, 0x93, 0x67, 0xa5, 0xf1, 0xfa, 0xee, 0xe7, 0xf5, 0x65, 0x06, 0x20, 0x8a, 0xcb, 0x3f, 0x5b, - 0xff, 0x69, 0x60, 0x6e, 0xb9, 0xe7, 0x18, 0x56, 0x6e, 0x30, 0xba, 0x6a, 0x30, 0x25, 0x4b, 0x68, - 0xee, 0xb0, 0x84, 0xe4, 0x8e, 0xf7, 0xd6, 0x9e, 0x70, 0xef, 0x32, 0x1d, 0x99, 0x92, 0xed, 0xd0, - 0x50, 0xed, 0x30, 0x2b, 0x47, 0x7b, 0x5b, 0x0e, 0xc5, 0x06, 0xf7, 0x4a, 0x36, 0xf8, 0x1d, 0x0c, - 0x85, 0x5f, 0x49, 0x8f, 0x5d, 0x78, 0x54, 0x85, 0xaf, 0x31, 0x46, 0x78, 0x9a, 0x31, 0x76, 0x76, - 0x19, 0xa3, 0x64, 0x20, 0xdd, 0xaa, 0x81, 0xfc, 0xd5, 0x84, 0x3e, 0x13, 0x12, 0x5b, 0x37, 0xa3, - 0x3e, 0x13, 0xda, 0x4b, 0xe8, 0x39, 0x64, 0x63, 0x5f, 0x93, 0x30, 0x0d, 0x96, 0x01, 0x49, 0x32, - 0x8d, 0xa8, 0x64, 0x31, 0x28, 0x35, 0x79, 0x50, 0x16, 0x0d, 0xd4, 0x95, 0x06, 0x3e, 0xea, 0x24, - 0x35, 0x89, 0xb7, 0x9e, 0x96, 0xb8, 0x51, 0x97, 0xb8, 0xea, 0xac, 0xed, 0x3a, 0x67, 0x95, 0xe7, - 0xc1, 0x5e, 0x75, 0x1e, 0x48, 0xd2, 0x32, 0x1f, 0x94, 0x16, 0x54, 0xa5, 0x55, 0xc8, 0xb5, 0xa3, - 0xc8, 0x55, 0x19, 0xf5, 0xdd, 0xf2, 0xa8, 0x97, 0xe4, 0xd6, 0xab, 0x4c, 0xdf, 0x1d, 0x13, 0xa4, - 0xd4, 0xe0, 0x41, 0xa5, 0xc1, 0xd9, 0x7c, 0xba, 0xc8, 0xe7, 0xd3, 0x70, 0x3b, 0x9f, 0x72, 0x8a, - 0xbd, 0xdc, 0xe9, 0x7d, 0xf6, 0x97, 0x85, 0x36, 0xbd, 0x67, 0x52, 0xa6, 0xb9, 0x94, 0x91, 0x90, - 0x72, 0x8e, 0xad, 0xbf, 0x1b, 0x30, 0x50, 0xe4, 0xf2, 0x2c, 0x37, 0xa9, 0x28, 0x4c, 0xaf, 0x53, - 0x58, 0xe9, 0x81, 0x36, 0xab, 0x0f, 0xb4, 0x94, 0x7d, 0xab, 0x9a, 0xbd, 0x9c, 0x8b, 0xa1, 0xe6, - 0xf2, 0xea, 0x4f, 0x0d, 0x9a, 0xcc, 0x93, 0xd0, 0x6b, 0x30, 0xb7, 0xfe, 0x88, 0x8a, 0x49, 0x20, - 0x99, 0xef, 0xd1, 0x17, 0x35, 0x2c, 0x8d, 0xd1, 0x1b, 0xe8, 0x48, 0x23, 0x01, 0x1d, 0xe6, 0x51, - 0xea, 0x4c, 0x3e, 0x7a, 0x51, 0xcb, 0xd3, 0x18, 0x5d, 0xc1, 0x41, 0xdd, 0x48, 0x41, 0x5f, 0xd7, - 0x2c, 0x90, 0x07, 0xce, 0xee, 0x1d, 0xdf, 0x40, 0x47, 0xea, 0x4f, 0x71, 0x23, 0xf5, 0x8d, 0x17, - 0xeb, 0x4b, 0xcd, 0x3c, 0x19, 0xfc, 0xda, 0x3b, 0xe6, 0xbf, 0x3b, 0x7e, 0x12, 0x01, 0xef, 0x0d, - 0xfe, 0xfb, 0xe3, 0x87, 0xff, 0x03, 0x00, 0x00, 0xff, 0xff, 0x2e, 0xc0, 0xa5, 0xf9, 0x92, 0x0c, - 0x00, 0x00, +func init() { proto.RegisterFile("chat/chat.proto", fileDescriptor_chat_feb94a5514034c46) } + +var fileDescriptor_chat_feb94a5514034c46 = []byte{ + // 981 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0x57, 0xdd, 0x6a, 0xe3, 0x46, + 0x14, 0xc6, 0x92, 0x2d, 0xdb, 0xc7, 0xbf, 0x99, 0x86, 0xec, 0x90, 0x96, 0xd6, 0x88, 0x6d, 0x31, + 0xbd, 0x48, 0x61, 0x7b, 0x53, 0x5a, 0x58, 0x68, 0x62, 0x27, 0xa8, 0x44, 0xd9, 0x20, 0x7b, 0x29, + 0xf4, 0x4e, 0x6b, 0x8f, 0x15, 0xb1, 0xb6, 0x24, 0xcf, 0x28, 0x69, 0xf6, 0xa6, 0xaf, 0xd0, 0x97, + 0xe8, 0x65, 0x5f, 0xa4, 0x8f, 0xd2, 0x57, 0x28, 0x14, 0xca, 0xcc, 0x48, 0xd6, 0xe8, 0xc7, 0x49, + 0xd8, 0xb2, 0x7b, 0x13, 0x38, 0x9f, 0xce, 0xfc, 0x9c, 0xf3, 0x7d, 0xf3, 0x1d, 0x07, 0x06, 0x8b, + 0x1b, 0x37, 0xfe, 0x86, 0xff, 0x39, 0x89, 0x68, 0x18, 0x87, 0xc8, 0x88, 0xde, 0x9c, 0xdd, 0xb8, + 0xb1, 0xf9, 0x7b, 0x1d, 0x0e, 0x7e, 0x9e, 0xcd, 0x43, 0x9b, 0x79, 0xb3, 0x3b, 0xca, 0x21, 0x9b, + 0x79, 0xe8, 0x08, 0x8c, 0x19, 0x09, 0x96, 0xd6, 0x04, 0xd7, 0x46, 0xb5, 0x71, 0xdb, 0x49, 0x22, + 0x8e, 0x3b, 0x64, 0x71, 0x67, 0x4d, 0xb0, 0x26, 0x71, 0x19, 0x21, 0x0c, 0xcd, 0xb3, 0x30, 0x88, + 0x49, 0x10, 0x63, 0x5d, 0x7c, 0x48, 0x43, 0x74, 0x0c, 0x2d, 0xbe, 0x76, 0xee, 0x6f, 0x08, 0xae, + 0x8f, 0x6a, 0x63, 0xdd, 0xd9, 0xc5, 0x7c, 0x95, 0xcd, 0xbc, 0x73, 0x1a, 0x6e, 0x70, 0x63, 0x54, + 0x1b, 0x37, 0x9c, 0x34, 0x44, 0x5f, 0x41, 0x9f, 0x67, 0x11, 0x7a, 0xe5, 0x2f, 0xde, 0x5e, 0xb9, + 0x1b, 0x82, 0x0d, 0xb1, 0x6d, 0x01, 0x45, 0xcf, 0xa1, 0x27, 0x91, 0x73, 0x77, 0x41, 0x5e, 0x3b, + 0x97, 0xb8, 0x29, 0xd2, 0xf2, 0x20, 0x1a, 0x41, 0x27, 0xb9, 0xce, 0xfc, 0x5d, 0x44, 0x70, 0x4b, + 0x9c, 0xa5, 0x42, 0x3c, 0x63, 0x46, 0x18, 0xf3, 0xc3, 0x40, 0x64, 0xb4, 0x65, 0x86, 0x02, 0xf1, + 0x8c, 0x57, 0x11, 0xa1, 0x6e, 0xec, 0x87, 0x81, 0x35, 0xc1, 0x20, 0xce, 0x51, 0x21, 0x74, 0x08, + 0x0d, 0x9b, 0x79, 0xd6, 0x04, 0x77, 0xc4, 0x37, 0x19, 0x70, 0x74, 0x1e, 0xbe, 0x25, 0x01, 0xee, + 0x4a, 0x54, 0x04, 0x62, 0xb7, 0xd5, 0x6a, 0xed, 0x07, 0xc4, 0x0a, 0x56, 0x21, 0xee, 0x25, 0xbb, + 0x65, 0x10, 0xef, 0xcd, 0xab, 0x88, 0xef, 0xcc, 0x70, 0x5f, 0x76, 0x34, 0x09, 0xd1, 0xe7, 0x00, + 0xd7, 0x6b, 0x37, 0x5e, 0x85, 0x74, 0x63, 0x4d, 0xf0, 0x40, 0x5c, 0x55, 0x41, 0xd0, 0x67, 0xd0, + 0x3e, 0x0f, 0xe9, 0x82, 0x5c, 0xfa, 0x2c, 0xc6, 0xc3, 0x91, 0x3e, 0x6e, 0x3b, 0x19, 0x20, 0x7a, + 0xb1, 0xf6, 0x49, 0x10, 0xcb, 0xbb, 0x1e, 0xc8, 0x93, 0x15, 0xc8, 0xfc, 0x47, 0x87, 0x23, 0xa9, + 0x86, 0x79, 0x78, 0x7d, 0xcb, 0x6e, 0x3e, 0x88, 0x2c, 0x30, 0x34, 0x79, 0xce, 0x8c, 0x6c, 0x13, + 0x55, 0xa4, 0x61, 0x4e, 0x30, 0x8d, 0xfd, 0x82, 0x31, 0x1e, 0x13, 0x4c, 0xf3, 0x69, 0x82, 0x69, + 0x3d, 0x41, 0x30, 0xed, 0x47, 0x05, 0x03, 0x8f, 0x0a, 0xa6, 0xf3, 0x80, 0x60, 0xba, 0xaa, 0x60, + 0x3e, 0xa4, 0x34, 0x0a, 0xe4, 0x0f, 0xcb, 0xe4, 0xff, 0x06, 0xfd, 0xeb, 0xdb, 0xf5, 0xda, 0x26, + 0x8c, 0xb9, 0x1e, 0x71, 0xc8, 0x96, 0x73, 0xfb, 0x9a, 0x11, 0x9a, 0x71, 0x2e, 0x23, 0xc9, 0xd3, + 0xf6, 0x94, 0x78, 0x7e, 0x20, 0x58, 0x17, 0x3c, 0xc9, 0x58, 0xea, 0x64, 0x3b, 0x0d, 0x96, 0x82, + 0x76, 0xdd, 0x49, 0xa2, 0x62, 0x4f, 0xea, 0xa5, 0x9e, 0x98, 0x7f, 0xd7, 0x60, 0x90, 0xbb, 0x00, + 0x8b, 0x78, 0xbd, 0x53, 0x4a, 0xcf, 0xc2, 0x25, 0x11, 0x57, 0x68, 0x38, 0x69, 0xc8, 0xcf, 0x99, + 0x52, 0x6a, 0x33, 0x2f, 0xd5, 0x9d, 0x8c, 0x38, 0x6e, 0xbb, 0xf7, 0x5c, 0x5c, 0xc9, 0xf9, 0x32, + 0x12, 0xb8, 0x1f, 0x64, 0xa2, 0x4b, 0x22, 0xf4, 0x3d, 0xf4, 0x66, 0x7e, 0xe0, 0xad, 0x09, 0xaf, + 0x8d, 0x6f, 0xd7, 0x18, 0xe9, 0xe3, 0xce, 0x8b, 0xc3, 0x13, 0x69, 0x92, 0x27, 0x17, 0x6e, 0x7c, + 0x43, 0xe8, 0x79, 0x48, 0x37, 0x6e, 0xec, 0xe4, 0x53, 0xd1, 0x77, 0xd0, 0xbd, 0xa0, 0xe1, 0x6d, + 0x94, 0x2e, 0x35, 0x1e, 0x58, 0x9a, 0xcb, 0x34, 0x37, 0xf0, 0x4c, 0x29, 0xf5, 0xf4, 0xdd, 0x8c, + 0x6c, 0xf9, 0x13, 0x7d, 0xa8, 0xe9, 0x85, 0x06, 0x6a, 0x65, 0x51, 0x61, 0x68, 0x32, 0xb9, 0x0f, + 0xd6, 0x47, 0x3a, 0x7f, 0x58, 0x49, 0x68, 0x5e, 0x01, 0xba, 0x20, 0xb1, 0xed, 0xde, 0xff, 0x18, + 0x2c, 0x65, 0xdd, 0xff, 0xeb, 0x24, 0xf3, 0x57, 0xf8, 0xa4, 0xb4, 0xdf, 0xc7, 0x60, 0xcb, 0x9c, + 0x42, 0x57, 0xed, 0x2a, 0xea, 0x83, 0xb6, 0xbb, 0xbe, 0x66, 0x4d, 0xd0, 0x97, 0x50, 0x17, 0xf5, + 0x6b, 0x82, 0x89, 0x83, 0x94, 0x09, 0x6e, 0x15, 0x92, 0x06, 0xf1, 0xd9, 0xfc, 0x57, 0x83, 0xf6, + 0x0e, 0x7b, 0x1f, 0x6b, 0x4b, 0xad, 0x48, 0xcf, 0x5b, 0x51, 0xc1, 0x3c, 0xea, 0x7b, 0xcc, 0x83, + 0xde, 0x09, 0x15, 0x58, 0x13, 0xe1, 0x72, 0x6d, 0x47, 0x85, 0x54, 0xe3, 0x34, 0xf2, 0xc6, 0x39, + 0x04, 0x9d, 0x77, 0xa4, 0x29, 0x3a, 0xa2, 0x17, 0x0d, 0xb3, 0x55, 0x30, 0xcc, 0xaf, 0x61, 0x28, + 0x9d, 0x4d, 0xb1, 0x05, 0xe9, 0x66, 0x25, 0xbc, 0xc2, 0x42, 0xe1, 0x69, 0x16, 0xda, 0xd9, 0x67, + 0xa1, 0x8a, 0xd5, 0x74, 0xcb, 0x56, 0xf3, 0x67, 0x1d, 0xfa, 0x5c, 0x6c, 0x7c, 0x9d, 0xcd, 0x3c, + 0x2e, 0xc6, 0xe7, 0xd0, 0x73, 0xc8, 0xd6, 0x5a, 0x92, 0x20, 0xf6, 0x57, 0x3e, 0xa1, 0x89, 0x82, + 0xf2, 0x60, 0x36, 0x52, 0x35, 0x75, 0xa4, 0x66, 0x04, 0xea, 0x39, 0x02, 0x1f, 0xf5, 0x9c, 0x8a, + 0xc2, 0x1b, 0x4f, 0x2b, 0xdc, 0xa8, 0x2a, 0x3c, 0xef, 0xc1, 0xcd, 0x2a, 0x0f, 0x56, 0x27, 0x47, + 0xab, 0x3c, 0x39, 0x14, 0x69, 0xb5, 0x1f, 0x94, 0x16, 0x94, 0xa5, 0x95, 0xc9, 0xb5, 0x93, 0x93, + 0x6b, 0xee, 0x47, 0x41, 0xb7, 0xf8, 0xa3, 0x40, 0x91, 0x5b, 0xaf, 0x34, 0xa7, 0xf7, 0xcc, 0x9a, + 0x02, 0xc1, 0x83, 0x12, 0xc1, 0xc9, 0x24, 0xbb, 0x4c, 0x27, 0xd9, 0x70, 0x37, 0xc9, 0x52, 0x88, + 0xbf, 0xdc, 0xe9, 0x7d, 0xf2, 0x1b, 0x44, 0x9b, 0xde, 0x73, 0x29, 0xb3, 0x54, 0xca, 0x48, 0x4a, + 0x39, 0x8d, 0xcd, 0xbf, 0x6a, 0x30, 0xc8, 0xc9, 0xe5, 0xbd, 0xbc, 0xa6, 0xa4, 0x30, 0xbd, 0x4a, + 0x61, 0x85, 0x07, 0x5a, 0x2f, 0x3f, 0xd0, 0x42, 0xf5, 0x8d, 0x72, 0xf5, 0x6a, 0x2d, 0x46, 0xbe, + 0x96, 0x17, 0x7f, 0x68, 0x50, 0xe7, 0x9e, 0x84, 0x7e, 0x82, 0x41, 0xc1, 0x43, 0xd1, 0xf1, 0x6e, + 0x72, 0x94, 0xcc, 0xfa, 0xf8, 0xd3, 0xbd, 0xdf, 0x58, 0x84, 0x5e, 0x42, 0x47, 0x19, 0x27, 0xe8, + 0x28, 0xcd, 0xcd, 0xcf, 0xf3, 0xe3, 0x67, 0x95, 0x38, 0x8b, 0xd0, 0x35, 0x1c, 0x56, 0x8d, 0x23, + 0xf4, 0x45, 0xc5, 0x02, 0x75, 0x58, 0xed, 0xdf, 0xf1, 0x25, 0x74, 0x14, 0xc6, 0xb2, 0x1b, 0xe5, + 0x5f, 0x7d, 0xb6, 0xbe, 0x40, 0xef, 0xe9, 0xe0, 0x97, 0xde, 0x89, 0xf8, 0x9f, 0xe5, 0x07, 0x99, + 0xf0, 0xc6, 0x10, 0xff, 0xbb, 0x7c, 0xfb, 0x5f, 0x00, 0x00, 0x00, 0xff, 0xff, 0xc2, 0x44, 0x4e, + 0x52, 0xce, 0x0c, 0x00, 0x00, } From 2b9a3536e78dac7a272cc23bf51e78f01f740fb7 Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Tue, 26 Oct 2021 10:46:00 +0800 Subject: [PATCH 032/814] exception handling --- src/common/db/mongoModel.go | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/common/db/mongoModel.go b/src/common/db/mongoModel.go index a6e2651fe..6d315193e 100644 --- a/src/common/db/mongoModel.go +++ b/src/common/db/mongoModel.go @@ -147,7 +147,12 @@ func (d *DataBases) SaveUserChat(uid string, sendTime int64, m proto.Message) er if session == nil { return errors.New("session == nil") } - defer session.Close() + defer func() { + if session != nil { + session.Close() + } + }() + log.NewInfo("", "get mgoSession cost time", getCurrentTimestampByMill()-newTime) c := session.DB(config.Config.Mongo.DBDatabase).C(cChat) From c9f326c72232bec8c74f019133f31db156f1b80d Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Tue, 26 Oct 2021 10:59:59 +0800 Subject: [PATCH 033/814] seq pull change --- src/common/db/redisModel.go | 18 +++++++++++++++-- src/msg_gateway/gate/logic.go | 11 ++++++----- src/rpc/chat/chat/pull_message.go | 33 +++++++++++++++++++------------ 3 files changed, 42 insertions(+), 20 deletions(-) diff --git a/src/common/db/redisModel.go b/src/common/db/redisModel.go index f86dbb638..385165687 100644 --- a/src/common/db/redisModel.go +++ b/src/common/db/redisModel.go @@ -9,6 +9,7 @@ const ( userIncrSeq = "REDIS_USER_INCR_SEQ:" // user incr seq appleDeviceToken = "DEVICE_TOKEN" lastGetSeq = "LAST_GET_SEQ" + userMinSeq = "REDIS_USER_Min_SEQ:" ) func (d *DataBases) Exec(cmd string, key interface{}, args ...interface{}) (interface{}, error) { @@ -37,12 +38,25 @@ func (d *DataBases) IncrUserSeq(uid string) (int64, error) { return redis.Int64(d.Exec("INCR", key)) } -//获取最新的seq -func (d *DataBases) GetUserSeq(uid string) (int64, error) { +//获取最大的Seq +func (d *DataBases) GetUserMaxSeq(uid string) (int64, error) { key := userIncrSeq + uid return redis.Int64(d.Exec("GET", key)) } +//设置用户最小的seq +func (d *DataBases) SetUserMinSeq(uid string) (err error) { + key := userMinSeq + uid + _, err = d.Exec("SET", key) + return err +} + +//获取最小的Seq +func (d *DataBases) GetUserMinSeq(uid string) (int64, error) { + key := userMinSeq + uid + return redis.Int64(d.Exec("GET", key)) +} + //存储苹果的设备token到redis func (d *DataBases) SetAppleDeviceToken(accountAddress, value string) (err error) { key := appleDeviceToken + accountAddress diff --git a/src/msg_gateway/gate/logic.go b/src/msg_gateway/gate/logic.go index 9ce7db745..0d1a2b5e9 100644 --- a/src/msg_gateway/gate/logic.go +++ b/src/msg_gateway/gate/logic.go @@ -68,9 +68,10 @@ func (ws *WServer) msgParse(conn *UserConn, binaryMsg []byte) { log.NewInfo("", "goroutine num is ", runtime.NumGoroutine()) } -func (ws *WServer) newestSeqResp(conn *UserConn, m *Req, pb *pbChat.GetNewSeqResp) { - var mReplyData pbWs.GetNewSeqResp - mReplyData.Seq = pb.GetSeq() +func (ws *WServer) newestSeqResp(conn *UserConn, m *Req, pb *pbChat.GetMaxAndMinSeqResp) { + var mReplyData pbWs.GetMaxAndMinSeqResp + mReplyData.MaxSeq = pb.GetMaxSeq() + mReplyData.MinSeq = pb.GetMinSeq() b, _ := proto.Marshal(&mReplyData) mReply := Resp{ ReqIdentifier: m.ReqIdentifier, @@ -84,7 +85,7 @@ func (ws *WServer) newestSeqResp(conn *UserConn, m *Req, pb *pbChat.GetNewSeqRes } func (ws *WServer) newestSeqReq(conn *UserConn, m *Req) { log.InfoByKv("Ws call success to getNewSeq", m.OperationID, "Parameters", m) - pbData := pbChat.GetNewSeqReq{} + pbData := pbChat.GetMaxAndMinSeqReq{} pbData.UserID = m.SendID pbData.OperationID = m.OperationID grpcConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImOfflineMessageName) @@ -92,7 +93,7 @@ func (ws *WServer) newestSeqReq(conn *UserConn, m *Req) { log.ErrorByKv("get grpcConn err", pbData.OperationID, "args", m) } msgClient := pbChat.NewChatClient(grpcConn) - reply, err := msgClient.GetNewSeq(context.Background(), &pbData) + reply, err := msgClient.GetMaxAndMinSeq(context.Background(), &pbData) if err != nil { log.ErrorByKv("rpc call failed to getNewSeq", pbData.OperationID, "err", err, "pbData", pbData.String()) return diff --git a/src/rpc/chat/chat/pull_message.go b/src/rpc/chat/chat/pull_message.go index 359b3709f..884e1dd9a 100644 --- a/src/rpc/chat/chat/pull_message.go +++ b/src/rpc/chat/chat/pull_message.go @@ -13,22 +13,30 @@ import ( pbMsg "Open_IM/src/proto/chat" ) -func (rpc *rpcChat) GetNewSeq(_ context.Context, in *pbMsg.GetNewSeqReq) (*pbMsg.GetNewSeqResp, error) { - log.InfoByKv("rpc getNewSeq is arriving", in.OperationID, in.String()) +func (rpc *rpcChat) GetMaxAndMinSeq(_ context.Context, in *pbMsg.GetMaxAndMinSeqReq) (*pbMsg.GetMaxAndMinSeqResp, error) { + log.InfoByKv("rpc getMaxAndMinSeq is arriving", in.OperationID, in.String()) //seq, err := model.GetBiggestSeqFromReceive(in.UserID) - seq, err := commonDB.DB.GetUserSeq(in.UserID) - resp := new(pbMsg.GetNewSeqResp) - if err == nil { - resp.Seq = seq + maxSeq, err1 := commonDB.DB.GetUserMaxSeq(in.UserID) + minSeq, err2 := commonDB.DB.GetUserMinSeq(in.UserID) + resp := new(pbMsg.GetMaxAndMinSeqResp) + if err1 == nil && err2 == nil { + resp.MaxSeq = maxSeq + resp.MinSeq = minSeq resp.ErrCode = 0 resp.ErrMsg = "" - return resp, err + return resp, nil } else { - if err == redis.ErrNil { - resp.Seq = 0 - } else { - log.ErrorByKv("getSeq from redis error", in.OperationID, "args", in.String(), "err", err.Error()) - resp.Seq = -1 + if err1 == redis.ErrNil { + resp.MaxSeq = 0 + } else if err1 != nil { + log.NewInfo(in.OperationID, "getMaxSeq from redis error", in.String(), err1.Error()) + resp.MaxSeq = -1 + } + if err2 == redis.ErrNil { + resp.MinSeq = 0 + } else if err2 != nil { + log.NewInfo(in.OperationID, "getMinSeq from redis error", in.String(), err2.Error()) + resp.MinSeq = -1 } resp.ErrCode = 0 resp.ErrMsg = "" @@ -81,7 +89,6 @@ func (rpc *rpcChat) PullMessageBySeqList(_ context.Context, in *pbMsg.PullMessag SingleUserMsg: respSingleMsgFormat, GroupUserMsg: respGroupMsgFormat, }, nil - panic("implement me") } func singleMsgHandleByUser(allMsg []*pbMsg.MsgFormat, ownerId string) []*pbMsg.GatherFormat { var userid string From 4ce0c6be50b77fb5023845d07af434c6dcbbaf43 Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Tue, 26 Oct 2021 11:08:03 +0800 Subject: [PATCH 034/814] api change --- src/api/chat/{newest_seq.go => get_max_min_seq.go} | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) rename src/api/chat/{newest_seq.go => get_max_min_seq.go} (90%) diff --git a/src/api/chat/newest_seq.go b/src/api/chat/get_max_min_seq.go similarity index 90% rename from src/api/chat/newest_seq.go rename to src/api/chat/get_max_min_seq.go index 9fa7e1836..73d98b4ef 100644 --- a/src/api/chat/newest_seq.go +++ b/src/api/chat/get_max_min_seq.go @@ -31,7 +31,7 @@ func UserNewestSeq(c *gin.Context) { c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": "token validate err"}) return } - pbData := pbMsg.GetNewSeqReq{} + pbData := pbMsg.GetMaxAndMinSeqReq{} pbData.UserID = params.SendID pbData.OperationID = params.OperationID grpcConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImOfflineMessageName) @@ -40,7 +40,7 @@ func UserNewestSeq(c *gin.Context) { log.ErrorByKv("get grpcConn err", pbData.OperationID, "args", params) } msgClient := pbMsg.NewChatClient(grpcConn) - reply, err := msgClient.GetNewSeq(context.Background(), &pbData) + reply, err := msgClient.GetMaxAndMinSeq(context.Background(), &pbData) if err != nil { log.ErrorByKv("rpc call failed to getNewSeq", pbData.OperationID, "err", err, "pbData", pbData.String()) return @@ -52,7 +52,8 @@ func UserNewestSeq(c *gin.Context) { "msgIncr": params.MsgIncr, "reqIdentifier": params.ReqIdentifier, "data": gin.H{ - "seq": reply.Seq, + "maxSeq": reply.MaxSeq, + "minSeq": reply.MinSeq, }, }) From bd31d4ff9cd085338bd834cd441a8fe47738697b Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Tue, 26 Oct 2021 12:02:07 +0800 Subject: [PATCH 035/814] shell modify --- script/check_all.sh | 38 ++++++++++++++++++++++++------------ script/msg_gateway_start.sh | 2 +- script/msg_transfer_start.sh | 8 +------- script/push_start.sh | 2 +- script/sdk_svr_start.sh | 2 +- 5 files changed, 29 insertions(+), 23 deletions(-) diff --git a/script/check_all.sh b/script/check_all.sh index dd8042fde..3c57577c4 100644 --- a/script/check_all.sh +++ b/script/check_all.sh @@ -15,17 +15,29 @@ service_port_name=( openImWsPort openImSdkWsPort ) - for i in ${service_port_name[*]};do - list=$(cat $config_path | grep -w ${i} | awk -F '[:]' '{print $NF}') - list_to_string $list - for j in ${ports_array};do - port=`netstat -netulp |grep ./open_im| awk '{print $4}'|grep -w ${j}|awk -F '[:]' '{print $NF}'` - if [[ ${port} -ne ${j} ]]; then - echo -e ${YELLOW_PREFIX}${i}${COLOR_SUFFIX}${RED_PREFIX}" service does not start normally,not initiated port is "${COLOR_SUFFIX}${YELLOW_PREFIX}${j}${COLOR_SUFFIX} - exit 1 - else - echo -e ${j}${GREEN_PREFIX}" port has been listening,belongs service is "${i}${COLOR_SUFFIX} - fi - done +for i in ${service_port_name[*]}; do + list=$(cat $config_path | grep -w ${i} | awk -F '[:]' '{print $NF}') + list_to_string $list + for j in ${ports_array}; do + port=$(netstat -netulp | grep ./open_im | awk '{print $4}' | grep -w ${j} | awk -F '[:]' '{print $NF}') + if [[ ${port} -ne ${j} ]]; then + echo -e ${YELLOW_PREFIX}${i}${COLOR_SUFFIX}${RED_PREFIX}" service does not start normally,not initiated port is "${COLOR_SUFFIX}${YELLOW_PREFIX}${j}${COLOR_SUFFIX} + echo -e ${RED_PREFIX}"please check ../logs/openIM.log "${COLOR_SUFFIX} + exit -1 + else + echo -e ${j}${GREEN_PREFIX}" port has been listening,belongs service is "${i}${COLOR_SUFFIX} + fi done - echo -e ${YELLOW_PREFIX}"all services launch success"${COLOR_SUFFIX} +done + +#Check launched service process +check=$(ps aux | grep -w ./${msg_transfer_name} | grep -v grep | wc -l) +if [ $check -eq ${msg_transfer_service_num} ]; then + echo -e ${GREEN_PREFIX}"service has been starting,belongs service is openImMsgTransfer"${COLOR_SUFFIX} +else + echo -e ${RED_PREFIX}"openImMsgTransfer service does not start normally, num err"${COLOR_SUFFIX} + echo -e ${RED_PREFIX}"please check ../logs/openIM.log "${COLOR_SUFFIX} + exit -1 +fi + +echo -e ${YELLOW_PREFIX}"all services launch success"${COLOR_SUFFIX} diff --git a/script/msg_gateway_start.sh b/script/msg_gateway_start.sh index 197c28743..1df53cfdd 100644 --- a/script/msg_gateway_start.sh +++ b/script/msg_gateway_start.sh @@ -44,5 +44,5 @@ if [ $check -ge 1 ]; then echo -e ${SKY_BLUE_PREFIX}"PID: "${COLOR_SUFFIX}${YELLOW_PREFIX}${allNewPid}${COLOR_SUFFIX} echo -e ${SKY_BLUE_PREFIX}"LISTENING_PORT: "${COLOR_SUFFIX}${YELLOW_PREFIX}${allPorts}${COLOR_SUFFIX} else - echo -e ${YELLOW_PREFIX}${msg_gateway_name}${COLOR_SUFFIX}${RED_PREFIX}"SERVICE START ERROR !!! PLEASE CHECK ERROR LOG"${COLOR_SUFFIX} + echo -e ${YELLOW_PREFIX}${msg_gateway_name}${COLOR_SUFFIX}${RED_PREFIX}"SERVICE START ERROR, PLEASE CHECK openIM.log"${COLOR_SUFFIX} fi diff --git a/script/msg_transfer_start.sh b/script/msg_transfer_start.sh index 9caeed9f2..4d7fb96cd 100644 --- a/script/msg_transfer_start.sh +++ b/script/msg_transfer_start.sh @@ -26,17 +26,11 @@ check=`ps aux | grep -w ./${msg_transfer_name} | grep -v grep| wc -l` if [ $check -ge 1 ] then newPid=`ps aux | grep -w ./${msg_transfer_name} | grep -v grep|awk '{print $2}'` -ports=`netstat -netulp | grep -w ${newPid}|awk '{print $4}'|awk -F '[:]' '{print $NF}'` allPorts="" - -for i in $ports ; -do - allPorts=${allPorts}"$i " -done echo -e ${SKY_BLUE_PREFIX}"SERVICE START SUCCESS "${COLOR_SUFFIX} echo -e ${SKY_BLUE_PREFIX}"SERVICE_NAME: "${COLOR_SUFFIX}${YELLOW_PREFIX}${msg_transfer_name}${COLOR_SUFFIX} echo -e ${SKY_BLUE_PREFIX}"PID: "${COLOR_SUFFIX}${YELLOW_PREFIX}${newPid}${COLOR_SUFFIX} echo -e ${SKY_BLUE_PREFIX}"LISTENING_PORT: "${COLOR_SUFFIX}${YELLOW_PREFIX}${allPorts}${COLOR_SUFFIX} else - echo -e ${YELLOW_PREFIX}${msg_transfer_name}${COLOR_SUFFIX}${RED_PREFIX}"SERVICE START ERROR !!! PLEASE CHECK ERROR LOG"${COLOR_SUFFIX} + echo -e ${YELLOW_PREFIX}${msg_transfer_name}${COLOR_SUFFIX}${RED_PREFIX}"SERVICE START ERROR, PLEASE CHECK openIM.log"${COLOR_SUFFIX} fi diff --git a/script/push_start.sh b/script/push_start.sh index 9c7812dab..8b2a47896 100644 --- a/script/push_start.sh +++ b/script/push_start.sh @@ -41,5 +41,5 @@ if [ $check -ge 1 ]; then echo -e ${SKY_BLUE_PREFIX}"PID: "${COLOR_SUFFIX}${YELLOW_PREFIX}${newPid}${COLOR_SUFFIX} echo -e ${SKY_BLUE_PREFIX}"LISTENING_PORT: "${COLOR_SUFFIX}${YELLOW_PREFIX}${allPorts}${COLOR_SUFFIX} else - echo -e ${YELLOW_PREFIX}${push_name}${COLOR_SUFFIX}${RED_PREFIX}"SERVICE START ERROR !!! PLEASE CHECK ERROR LOG"${COLOR_SUFFIX} + echo -e ${YELLOW_PREFIX}${push_name}${COLOR_SUFFIX}${RED_PREFIX}"SERVICE START ERROR, PLEASE CHECK openIM.log"${COLOR_SUFFIX} fi diff --git a/script/sdk_svr_start.sh b/script/sdk_svr_start.sh index 28d764b73..97c694233 100644 --- a/script/sdk_svr_start.sh +++ b/script/sdk_svr_start.sh @@ -43,5 +43,5 @@ if [ $check -ge 1 ]; then echo -e ${SKY_BLUE_PREFIX}"PID: "${COLOR_SUFFIX}${YELLOW_PREFIX}${allNewPid}${COLOR_SUFFIX} echo -e ${SKY_BLUE_PREFIX}"LISTENING_PORT: "${COLOR_SUFFIX}${YELLOW_PREFIX}${allPorts}${COLOR_SUFFIX} else - echo -e ${YELLOW_PREFIX}${sdk_server_name}${COLOR_SUFFIX}${RED_PREFIX}"SERVICE START ERROR !!! PLEASE CHECK ERROR LOG"${COLOR_SUFFIX} + echo -e ${YELLOW_PREFIX}${sdk_server_name}${COLOR_SUFFIX}${RED_PREFIX}"SERVICE START ERROR PLEASE CHECK openIM.log"${COLOR_SUFFIX} fi From 29f3fd46a8623af2bd54740661c3be599cf1ef31 Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Tue, 26 Oct 2021 12:03:16 +0800 Subject: [PATCH 036/814] exception handling --- src/common/db/model.go | 6 +++++- src/common/db/mongoModel.go | 8 ++++++-- 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/src/common/db/model.go b/src/common/db/model.go index f34b4c305..f8be3747a 100644 --- a/src/common/db/model.go +++ b/src/common/db/model.go @@ -22,7 +22,6 @@ func key(dbAddress, dbName string) string { func init() { //mysql init initMysqlDB() - // mongo init mgoDailInfo := &mgo.DialInfo{ Addrs: config.Config.Mongo.DBAddress, Direct: config.Config.Mongo.DBDirect, @@ -40,6 +39,11 @@ func init() { DB.mgoSession = mgoSession DB.mgoSession.SetMode(mgo.Monotonic, true) + c := DB.mgoSession.DB(config.Config.Mongo.DBDatabase).C(cChat) + err = c.EnsureIndexKey("uid") + if err != nil { + panic(err) + } // redis pool init DB.redisPool = &redis.Pool{ MaxIdle: config.Config.Redis.DBMaxIdle, diff --git a/src/common/db/mongoModel.go b/src/common/db/mongoModel.go index 6d315193e..a0fbbfb18 100644 --- a/src/common/db/mongoModel.go +++ b/src/common/db/mongoModel.go @@ -22,6 +22,7 @@ type MsgInfo struct { type UserChat struct { UID string Msg []MsgInfo + BId bson.ObjectId `bson:"bid"` } type GroupMember struct { @@ -155,12 +156,15 @@ func (d *DataBases) SaveUserChat(uid string, sendTime int64, m proto.Message) er log.NewInfo("", "get mgoSession cost time", getCurrentTimestampByMill()-newTime) c := session.DB(config.Config.Mongo.DBDatabase).C(cChat) - + err := c.EnsureIndexKey("uid") + if err != nil { + log.NewError("", "EnsureIndexKey uid failed ", err.Error()) + } n, err := c.Find(bson.M{"uid": uid}).Count() if err != nil { return err } - log.NewInfo("", "find mgo uid cost time", getCurrentTimestampByMill()-newTime) + log.NewInfo("", "find and create index mgo uid cost time", getCurrentTimestampByMill()-newTime) sMsg := MsgInfo{} sMsg.SendTime = sendTime if sMsg.Msg, err = proto.Marshal(m); err != nil { From cb487e3e794628c9a760f515d2645e696928b51b Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Tue, 26 Oct 2021 12:37:22 +0800 Subject: [PATCH 037/814] msg modify --- src/rpc/chat/chat/pull_message.go | 37 ++++++++++++++----------------- 1 file changed, 17 insertions(+), 20 deletions(-) diff --git a/src/rpc/chat/chat/pull_message.go b/src/rpc/chat/chat/pull_message.go index 884e1dd9a..57a4e3897 100644 --- a/src/rpc/chat/chat/pull_message.go +++ b/src/rpc/chat/chat/pull_message.go @@ -19,30 +19,27 @@ func (rpc *rpcChat) GetMaxAndMinSeq(_ context.Context, in *pbMsg.GetMaxAndMinSeq maxSeq, err1 := commonDB.DB.GetUserMaxSeq(in.UserID) minSeq, err2 := commonDB.DB.GetUserMinSeq(in.UserID) resp := new(pbMsg.GetMaxAndMinSeqResp) - if err1 == nil && err2 == nil { + if err1 == nil { resp.MaxSeq = maxSeq + } else if err1 == redis.ErrNil { + resp.MaxSeq = 0 + } else { + log.NewError(in.OperationID, "getMaxSeq from redis error", in.String(), err1.Error()) + resp.MaxSeq = -1 + resp.ErrCode = 200 + resp.ErrMsg = "redis get err" + } + if err2 == nil { resp.MinSeq = minSeq - resp.ErrCode = 0 - resp.ErrMsg = "" - return resp, nil + } else if err2 == redis.ErrNil { + resp.MinSeq = 0 } else { - if err1 == redis.ErrNil { - resp.MaxSeq = 0 - } else if err1 != nil { - log.NewInfo(in.OperationID, "getMaxSeq from redis error", in.String(), err1.Error()) - resp.MaxSeq = -1 - } - if err2 == redis.ErrNil { - resp.MinSeq = 0 - } else if err2 != nil { - log.NewInfo(in.OperationID, "getMinSeq from redis error", in.String(), err2.Error()) - resp.MinSeq = -1 - } - resp.ErrCode = 0 - resp.ErrMsg = "" - return resp, nil + log.NewError(in.OperationID, "getMaxSeq from redis error", in.String(), err2.Error()) + resp.MinSeq = -1 + resp.ErrCode = 200 + resp.ErrMsg = "redis get err" } - + return resp, nil } func (rpc *rpcChat) PullMessage(_ context.Context, in *pbMsg.PullMessageReq) (*pbMsg.PullMessageResp, error) { log.InfoByKv("rpc pullMessage is arriving", in.OperationID, "args", in.String()) From 5782b85b02b83ca3d44e35f8b082ad6b26056518 Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Tue, 26 Oct 2021 14:18:11 +0800 Subject: [PATCH 038/814] msg modify --- src/rpc/chat/chat/pull_message.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/rpc/chat/chat/pull_message.go b/src/rpc/chat/chat/pull_message.go index 57a4e3897..7184dddd1 100644 --- a/src/rpc/chat/chat/pull_message.go +++ b/src/rpc/chat/chat/pull_message.go @@ -36,7 +36,7 @@ func (rpc *rpcChat) GetMaxAndMinSeq(_ context.Context, in *pbMsg.GetMaxAndMinSeq } else { log.NewError(in.OperationID, "getMaxSeq from redis error", in.String(), err2.Error()) resp.MinSeq = -1 - resp.ErrCode = 200 + resp.ErrCode = 201 resp.ErrMsg = "redis get err" } return resp, nil From 8b981f2ec6143d4183afc71d94b584388267845e Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Tue, 26 Oct 2021 14:53:12 +0800 Subject: [PATCH 039/814] mongo index --- src/common/db/mongoModel.go | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/src/common/db/mongoModel.go b/src/common/db/mongoModel.go index a0fbbfb18..7a5faa5d0 100644 --- a/src/common/db/mongoModel.go +++ b/src/common/db/mongoModel.go @@ -22,7 +22,6 @@ type MsgInfo struct { type UserChat struct { UID string Msg []MsgInfo - BId bson.ObjectId `bson:"bid"` } type GroupMember struct { @@ -156,10 +155,6 @@ func (d *DataBases) SaveUserChat(uid string, sendTime int64, m proto.Message) er log.NewInfo("", "get mgoSession cost time", getCurrentTimestampByMill()-newTime) c := session.DB(config.Config.Mongo.DBDatabase).C(cChat) - err := c.EnsureIndexKey("uid") - if err != nil { - log.NewError("", "EnsureIndexKey uid failed ", err.Error()) - } n, err := c.Find(bson.M{"uid": uid}).Count() if err != nil { return err @@ -171,6 +166,8 @@ func (d *DataBases) SaveUserChat(uid string, sendTime int64, m proto.Message) er return err } + log.NewInfo("insert len: ", len(sMsg.Msg)) + if n == 0 { sChat := UserChat{} sChat.UID = uid @@ -179,6 +176,7 @@ func (d *DataBases) SaveUserChat(uid string, sendTime int64, m proto.Message) er if err != nil { return err } + } else { err = c.Update(bson.M{"uid": uid}, bson.M{"$push": bson.M{"msg": sMsg}}) if err != nil { From 8d7897cd1e9918846ebbe1c5b5e3603a08394f81 Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Tue, 26 Oct 2021 16:16:48 +0800 Subject: [PATCH 040/814] msg slice storage --- src/common/db/mongoModel.go | 117 ++++++++++++++++++++++-------------- 1 file changed, 72 insertions(+), 45 deletions(-) diff --git a/src/common/db/mongoModel.go b/src/common/db/mongoModel.go index a6e2651fe..0c415d103 100644 --- a/src/common/db/mongoModel.go +++ b/src/common/db/mongoModel.go @@ -8,11 +8,13 @@ import ( "errors" "github.com/golang/protobuf/proto" "gopkg.in/mgo.v2/bson" + "strconv" "time" ) const cChat = "chat" const cGroup = "group" +const singleGocMsgNum = 10000 type MsgInfo struct { SendTime int64 @@ -86,7 +88,8 @@ func (d *DataBases) GetMsgBySeqRange(uid string, seqBegin, seqEnd int64) (Single return SingleMsg, GroupMsg, MaxSeq, MinSeq, nil } func (d *DataBases) GetMsgBySeqList(uid string, seqList []int64) (SingleMsg []*pbMsg.MsgFormat, GroupMsg []*pbMsg.MsgFormat, MaxSeq int64, MinSeq int64, err error) { - count := 0 + allCount := 0 + singleCount := 0 session := d.mgoSession.Clone() if session == nil { return nil, nil, MaxSeq, MinSeq, errors.New("session == nil") @@ -94,54 +97,75 @@ func (d *DataBases) GetMsgBySeqList(uid string, seqList []int64) (SingleMsg []*p defer session.Close() c := session.DB(config.Config.Mongo.DBDatabase).C(cChat) - + m := func(uid string, seqList []int64) map[string][]int64 { + t := make(map[string][]int64) + for i := 0; i < len(seqList); i++ { + seqUid := getSeqUid(uid, seqList[i]) + if value, ok := t[seqUid]; !ok { + var temp []int64 + t[seqUid] = append(temp, seqList[i]) + } else { + t[seqUid] = append(value, seqList[i]) + } + } + return t + }(uid, seqList) sChat := UserChat{} - if err = c.Find(bson.M{"uid": uid}).One(&sChat); err != nil { - return nil, nil, MaxSeq, MinSeq, err - } pChat := pbMsg.MsgSvrToPushSvrChatMsg{} - for i := 0; i < len(sChat.Msg); i++ { - temp := new(pbMsg.MsgFormat) - if err = proto.Unmarshal(sChat.Msg[i].Msg, &pChat); err != nil { - return nil, nil, MaxSeq, MinSeq, err + for seqUid, value := range m { + if err = c.Find(bson.M{"uid": seqUid}).One(&sChat); err != nil { + log.NewError("", "not find seqUid", seqUid, value, uid, seqList) + continue } - if isContainInt64(pChat.RecvSeq, seqList) { - temp.SendID = pChat.SendID - temp.RecvID = pChat.RecvID - temp.MsgFrom = pChat.MsgFrom - temp.Seq = pChat.RecvSeq - temp.ServerMsgID = pChat.MsgID - temp.SendTime = pChat.SendTime - temp.Content = pChat.Content - temp.ContentType = pChat.ContentType - temp.SenderPlatformID = pChat.PlatformID - temp.ClientMsgID = pChat.ClientMsgID - temp.SenderFaceURL = pChat.SenderFaceURL - temp.SenderNickName = pChat.SenderNickName - if pChat.RecvSeq > MaxSeq { - MaxSeq = pChat.RecvSeq + singleCount = 0 + for i := 0; i < len(sChat.Msg); i++ { + temp := new(pbMsg.MsgFormat) + if err = proto.Unmarshal(sChat.Msg[i].Msg, &pChat); err != nil { + log.NewError("", "not find seqUid", seqUid, value, uid, seqList) + return nil, nil, MaxSeq, MinSeq, err } - if count == 0 { - MinSeq = pChat.RecvSeq - } - if pChat.RecvSeq < MinSeq { - MinSeq = pChat.RecvSeq - } - if pChat.SessionType == constant.SingleChatType { - SingleMsg = append(SingleMsg, temp) - } else { - GroupMsg = append(GroupMsg, temp) - } - count++ - if count == len(seqList) { - break + if isContainInt64(pChat.RecvSeq, value) { + temp.SendID = pChat.SendID + temp.RecvID = pChat.RecvID + temp.MsgFrom = pChat.MsgFrom + temp.Seq = pChat.RecvSeq + temp.ServerMsgID = pChat.MsgID + temp.SendTime = pChat.SendTime + temp.Content = pChat.Content + temp.ContentType = pChat.ContentType + temp.SenderPlatformID = pChat.PlatformID + temp.ClientMsgID = pChat.ClientMsgID + temp.SenderFaceURL = pChat.SenderFaceURL + temp.SenderNickName = pChat.SenderNickName + if pChat.RecvSeq > MaxSeq { + MaxSeq = pChat.RecvSeq + } + if allCount == 0 { + MinSeq = pChat.RecvSeq + } + if pChat.RecvSeq < MinSeq { + MinSeq = pChat.RecvSeq + } + if pChat.SessionType == constant.SingleChatType { + SingleMsg = append(SingleMsg, temp) + } else { + GroupMsg = append(GroupMsg, temp) + } + allCount++ + singleCount++ + if singleCount == len(value) { + break + } } } + if allCount == len(seqList) { + break + } } - return SingleMsg, GroupMsg, MaxSeq, MinSeq, nil } -func (d *DataBases) SaveUserChat(uid string, sendTime int64, m proto.Message) error { +func (d *DataBases) SaveUserChat(uid string, sendTime int64, m *pbMsg.MsgSvrToPushSvrChatMsg) error { + var seqUid string newTime := getCurrentTimestampByMill() session := d.mgoSession.Clone() if session == nil { @@ -150,8 +174,8 @@ func (d *DataBases) SaveUserChat(uid string, sendTime int64, m proto.Message) er defer session.Close() log.NewInfo("", "get mgoSession cost time", getCurrentTimestampByMill()-newTime) c := session.DB(config.Config.Mongo.DBDatabase).C(cChat) - - n, err := c.Find(bson.M{"uid": uid}).Count() + seqUid = getSeqUid(uid, m.RecvSeq) + n, err := c.Find(bson.M{"uid": seqUid}).Count() if err != nil { return err } @@ -161,17 +185,16 @@ func (d *DataBases) SaveUserChat(uid string, sendTime int64, m proto.Message) er if sMsg.Msg, err = proto.Marshal(m); err != nil { return err } - if n == 0 { sChat := UserChat{} - sChat.UID = uid + sChat.UID = seqUid sChat.Msg = append(sChat.Msg, sMsg) err = c.Insert(&sChat) if err != nil { return err } } else { - err = c.Update(bson.M{"uid": uid}, bson.M{"$push": bson.M{"msg": sMsg}}) + err = c.Update(bson.M{"uid": seqUid}, bson.M{"$push": bson.M{"msg": sMsg}}) if err != nil { return err } @@ -304,3 +327,7 @@ func isContainInt64(target int64, List []int64) bool { func getCurrentTimestampByMill() int64 { return time.Now().UnixNano() / 1e6 } +func getSeqUid(uid string, seq int64) string { + seqSuffix := seq / singleGocMsgNum + return uid + ":" + strconv.FormatInt(seqSuffix, 10) +} From 94f515fa42e358098e4f313bd3d6475f377662ef Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Tue, 26 Oct 2021 16:20:21 +0800 Subject: [PATCH 041/814] msg slice storage --- src/common/db/mongoModel.go | 3 --- 1 file changed, 3 deletions(-) diff --git a/src/common/db/mongoModel.go b/src/common/db/mongoModel.go index 0c415d103..b5748347c 100644 --- a/src/common/db/mongoModel.go +++ b/src/common/db/mongoModel.go @@ -158,9 +158,6 @@ func (d *DataBases) GetMsgBySeqList(uid string, seqList []int64) (SingleMsg []*p } } } - if allCount == len(seqList) { - break - } } return SingleMsg, GroupMsg, MaxSeq, MinSeq, nil } From 66017df0b9e2c562d7e72c63d18eb80883ec4484 Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Tue, 26 Oct 2021 19:19:52 +0800 Subject: [PATCH 042/814] test msg --- src/msg_transfer/logic/history_msg_handler.go | 27 ++++++++++--------- 1 file changed, 14 insertions(+), 13 deletions(-) diff --git a/src/msg_transfer/logic/history_msg_handler.go b/src/msg_transfer/logic/history_msg_handler.go index c547e449b..d3d992a64 100644 --- a/src/msg_transfer/logic/history_msg_handler.go +++ b/src/msg_transfer/logic/history_msg_handler.go @@ -63,20 +63,21 @@ func (mc *HistoryConsumerHandler) handleChatWs2Mongo(msg []byte, msgKey string) log.Info("", "", "msg_transfer chat type = SingleChatType", isHistory, isPersist) if isHistory { if msgKey == pbSaveData.RecvID { - err := saveUserChat(pbData.RecvID, &pbSaveData) - if err != nil { - log.ErrorByKv("data insert to mongo err", pbSaveData.OperationID, "data", pbSaveData.String(), "err", err.Error()) - } + go func() { + err := saveUserChat(pbData.RecvID, &pbSaveData) + if err != nil { + log.ErrorByKv("data insert to mongo err", pbSaveData.OperationID, "data", pbSaveData.String(), "err", err.Error()) + } + }() + } else if msgKey == pbSaveData.SendID { - err := saveUserChat(pbData.SendID, &pbSaveData) - if err != nil { - log.ErrorByKv("data insert to mongo err", pbSaveData.OperationID, "data", pbSaveData.String(), "err", err.Error()) - } - //if isSenderSync { - // pbSaveData.ContentType = constant.SyncSenderMsg - // log.WarnByKv("SyncSenderMsg come here", pbData.OperationID, pbSaveData.String()) - // sendMessageToPush(&pbSaveData) - //} + go func() { + err := saveUserChat(pbData.SendID, &pbSaveData) + if err != nil { + log.ErrorByKv("data insert to mongo err", pbSaveData.OperationID, "data", pbSaveData.String(), "err", err.Error()) + } + }() + } log.NewInfo(pbSaveData.OperationID, "saveUserChat cost time ", utils.GetCurrentTimestampBySecond()-time) From d39f61122b47cd21c16921e6c33eec5db4145ddc Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Tue, 26 Oct 2021 19:52:43 +0800 Subject: [PATCH 043/814] test msg --- src/msg_transfer/logic/history_msg_handler.go | 20 ++++++++----------- 1 file changed, 8 insertions(+), 12 deletions(-) diff --git a/src/msg_transfer/logic/history_msg_handler.go b/src/msg_transfer/logic/history_msg_handler.go index d3d992a64..ce17b9cb1 100644 --- a/src/msg_transfer/logic/history_msg_handler.go +++ b/src/msg_transfer/logic/history_msg_handler.go @@ -63,20 +63,16 @@ func (mc *HistoryConsumerHandler) handleChatWs2Mongo(msg []byte, msgKey string) log.Info("", "", "msg_transfer chat type = SingleChatType", isHistory, isPersist) if isHistory { if msgKey == pbSaveData.RecvID { - go func() { - err := saveUserChat(pbData.RecvID, &pbSaveData) - if err != nil { - log.ErrorByKv("data insert to mongo err", pbSaveData.OperationID, "data", pbSaveData.String(), "err", err.Error()) - } - }() + //err := saveUserChat(pbData.RecvID, &pbSaveData) + //if err != nil { + // log.ErrorByKv("data insert to mongo err", pbSaveData.OperationID, "data", pbSaveData.String(), "err", err.Error()) + //} } else if msgKey == pbSaveData.SendID { - go func() { - err := saveUserChat(pbData.SendID, &pbSaveData) - if err != nil { - log.ErrorByKv("data insert to mongo err", pbSaveData.OperationID, "data", pbSaveData.String(), "err", err.Error()) - } - }() + //err := saveUserChat(pbData.SendID, &pbSaveData) + //if err != nil { + // log.ErrorByKv("data insert to mongo err", pbSaveData.OperationID, "data", pbSaveData.String(), "err", err.Error()) + //} } From 2ad8177e6b8b31e3f69901ddd1f1c4c996e7745e Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Tue, 26 Oct 2021 20:39:22 +0800 Subject: [PATCH 044/814] test msg --- src/msg_transfer/logic/history_msg_handler.go | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/src/msg_transfer/logic/history_msg_handler.go b/src/msg_transfer/logic/history_msg_handler.go index ce17b9cb1..a40f8c5bc 100644 --- a/src/msg_transfer/logic/history_msg_handler.go +++ b/src/msg_transfer/logic/history_msg_handler.go @@ -63,16 +63,16 @@ func (mc *HistoryConsumerHandler) handleChatWs2Mongo(msg []byte, msgKey string) log.Info("", "", "msg_transfer chat type = SingleChatType", isHistory, isPersist) if isHistory { if msgKey == pbSaveData.RecvID { - //err := saveUserChat(pbData.RecvID, &pbSaveData) - //if err != nil { - // log.ErrorByKv("data insert to mongo err", pbSaveData.OperationID, "data", pbSaveData.String(), "err", err.Error()) - //} + err := saveUserChat(pbData.RecvID, &pbSaveData) + if err != nil { + log.ErrorByKv("data insert to mongo err", pbSaveData.OperationID, "data", pbSaveData.String(), "err", err.Error()) + } } else if msgKey == pbSaveData.SendID { - //err := saveUserChat(pbData.SendID, &pbSaveData) - //if err != nil { - // log.ErrorByKv("data insert to mongo err", pbSaveData.OperationID, "data", pbSaveData.String(), "err", err.Error()) - //} + err := saveUserChat(pbData.SendID, &pbSaveData) + if err != nil { + log.ErrorByKv("data insert to mongo err", pbSaveData.OperationID, "data", pbSaveData.String(), "err", err.Error()) + } } From 97fa1146b2ce4e2970a0bcf88b520b46ea14653b Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Wed, 27 Oct 2021 12:26:22 +0800 Subject: [PATCH 045/814] test --- src/msg_gateway/gate/logic.go | 2 +- src/msg_gateway/gate/ws_server.go | 5 ++++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/src/msg_gateway/gate/logic.go b/src/msg_gateway/gate/logic.go index 0d1a2b5e9..389a38a19 100644 --- a/src/msg_gateway/gate/logic.go +++ b/src/msg_gateway/gate/logic.go @@ -168,7 +168,7 @@ func (ws *WServer) pullMsgReq(conn *UserConn, m *Req) { } } func (ws *WServer) pullMsgBySeqListReq(conn *UserConn, m *Req) { - log.NewInfo(m.OperationID, "Ws call success to pullMsgBySeqListReq", m) + log.NewInfo(m.OperationID, "Ws call success to pullMsgBySeqListReq", m.SendID) reply := new(pbChat.PullMessageResp) isPass, errCode, errMsg, data := ws.argsValidate(m, constant.WSPullMsgBySeqList) if isPass { diff --git a/src/msg_gateway/gate/ws_server.go b/src/msg_gateway/gate/ws_server.go index 122e525cb..cc5ca6db1 100644 --- a/src/msg_gateway/gate/ws_server.go +++ b/src/msg_gateway/gate/ws_server.go @@ -64,7 +64,10 @@ func (ws *WServer) wsHandler(w http.ResponseWriter, r *http.Request) { func (ws *WServer) readMsg(conn *UserConn) { for { - _, msg, err := conn.ReadMessage() + messageType, msg, err := conn.ReadMessage() + if messageType == websocket.PingMessage { + log.NewInfo("", "this is a pingMessage") + } if err != nil { log.ErrorByKv("WS ReadMsg error", "", "userIP", conn.RemoteAddr().String(), "userUid", ws.getUserUid(conn), "error", err) ws.delUserConn(conn) From 30be5c2c489c8750257c2e676fb33f924d000d76 Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Thu, 28 Oct 2021 09:51:36 +0800 Subject: [PATCH 046/814] add jpush offline notification --- config/config.yaml | 5 +- src/common/config/config.go | 10 ++- src/msg_gateway/gate/rpc_server.go | 62 +----------------- src/push/jpush/common/JGPlatform.go | 17 +++++ src/push/jpush/push.go | 47 +++++++++++++ src/push/jpush/requestBody/audience.go | 53 +++++++++++++++ src/push/jpush/requestBody/message.go | 27 ++++++++ src/push/jpush/requestBody/notification.go | 17 +++++ src/push/jpush/requestBody/platform.go | 76 ++++++++++++++++++++++ src/push/jpush/requestBody/pushObj.go | 24 +++++++ src/push/logic/init.go | 2 +- src/push/logic/push_to_client.go | 21 ++---- src/rpc/group/group/group.go | 16 ++--- 13 files changed, 287 insertions(+), 90 deletions(-) create mode 100644 src/push/jpush/common/JGPlatform.go create mode 100644 src/push/jpush/push.go create mode 100644 src/push/jpush/requestBody/audience.go create mode 100644 src/push/jpush/requestBody/message.go create mode 100644 src/push/jpush/requestBody/notification.go create mode 100644 src/push/jpush/requestBody/platform.go create mode 100644 src/push/jpush/requestBody/pushObj.go diff --git a/config/config.yaml b/config/config.yaml index 9e8741b48..8277fe038 100644 --- a/config/config.yaml +++ b/config/config.yaml @@ -1,7 +1,7 @@ # The class cannot be named by Pascal or camel case. # If it is not used, the corresponding structure will not be set, # and it will not be read naturally. - +serverversion: 1.0.0 #---------------Infrastructure configuration---------------------# etcd: etcdSchema: openIM @@ -119,6 +119,9 @@ push: android: accessID: 111 secretKey: 111 + jpns: + appKey: 2783339cee4de379cc798fe1 + masterSecret: 66e5f309e032c68cc668c28a manager: appManagerUid: ["openIM123456","openIM654321"] secrets: ["openIM1","openIM2"] diff --git a/src/common/config/config.go b/src/common/config/config.go index 8c867ee6e..1022f56c9 100644 --- a/src/common/config/config.go +++ b/src/common/config/config.go @@ -8,9 +8,9 @@ import ( var Config config type config struct { - ServerIP string `yaml:"serverip"` - - Api struct { + ServerIP string `yaml:"serverip"` + ServerVersion string `yaml:"serverversion"` + Api struct { GinPort []int `yaml:"openImApiPort"` } Sdk struct { @@ -110,6 +110,10 @@ type config struct { SecretKey string `yaml:"secretKey"` } } + Jpns struct { + AppKey string `yaml:"appKey"` + MasterSecret string `yaml:"masterSecret"` + } } Manager struct { AppManagerUid []string `yaml:"appManagerUid"` diff --git a/src/msg_gateway/gate/rpc_server.go b/src/msg_gateway/gate/rpc_server.go index 703e684cb..a2852092e 100644 --- a/src/msg_gateway/gate/rpc_server.go +++ b/src/msg_gateway/gate/rpc_server.go @@ -109,66 +109,6 @@ func (r *RPCServer) MsgToUser(_ context.Context, in *pbRelay.MsgToUserReq) (*pbR if !tag { log.NewError(in.OperationID, "push err ,ws conn not in map", in.String()) } - //for key, conn := range ws.wsUserToConn { - // UIDAndPID := strings.Split(key, " ") - // if UIDAndPID[0] == RecvID { - // tag = true - // resultCode := sendMsgToUser(conn, bMsg, in, UIDAndPID[1], UIDAndPID[0]) - // temp := &pbRelay.SingleMsgToUser{ - // ResultCode: resultCode, - // RecvID: UIDAndPID[0], - // RecvPlatFormID: utils.PlatformNameToID(UIDAndPID[1]), - // } - // resp = append(resp, temp) - // } - //} - //if !tag { - // log.NewError(in.OperationID, "push err ,ws conn not in map", in.String()) - //} - //switch in.GetContentType() { - //case constant.SyncSenderMsg: - // log.InfoByKv("come sync", in.OperationID, "args", in.String()) - // RecvID = in.GetSendID() - // if in.MsgFrom != constant.SysMsgType { - // for key, conn := range ws.wsUserToConn { - // UIDAndPID := strings.Split(key, " ") - // if UIDAndPID[0] == RecvID && utils.PlatformIDToName(in.GetPlatformID()) != UIDAndPID[1] { - // resultCode := sendMsgToUser(conn, bMsg, in, UIDAndPID[1], UIDAndPID[0]) - // temp := &pbRelay.SingleMsgToUser{ - // ResultCode: resultCode, - // RecvID: UIDAndPID[0], - // RecvPlatFormID: utils.PlatformNameToID(UIDAndPID[1]), - // } - // resp = append(resp, temp) - // } - // - // } - // } - //default: - // log.InfoByKv("not come sync", in.OperationID, "args", in.String()) - // switch in.SessionType { - // case constant.SingleChatType: - // log.InfoByKv("come single", in.OperationID, "args", in.String()) - // RecvID = in.GetRecvID() - // case constant.GroupChatType: - // RecvID = strings.Split(in.GetRecvID(), " ")[0] - // default: - // } - // log.InfoByKv("come for range", in.OperationID, "args", in.String()) - // - // for key, conn := range ws.wsUserToConn { - // UIDAndPID := strings.Split(key, " ") - // if UIDAndPID[0] == RecvID { - // resultCode := sendMsgToUser(conn, bMsg, in, UIDAndPID[1], UIDAndPID[0]) - // temp := &pbRelay.SingleMsgToUser{ - // ResultCode: resultCode, - // RecvID: UIDAndPID[0], - // RecvPlatFormID: utils.PlatformNameToID(UIDAndPID[1]), - // } - // resp = append(resp, temp) - // } - // } - //} return &pbRelay.MsgToUserResp{ Resp: resp, }, nil @@ -182,7 +122,7 @@ func sendMsgToUser(conn *UserConn, bMsg []byte, in *pbRelay.MsgToUserReq, RecvPl ResultCode = -2 return ResultCode } else { - log.InfoByKv("PushMsgToUser is success By Ws", in.OperationID, "args", in.String()) + log.InfoByKv("PushMsgToUser is success By Ws", in.OperationID, "args", in.String(), "recvPlatForm", RecvPlatForm, "recvID", RecvID) ResultCode = 0 return ResultCode } diff --git a/src/push/jpush/common/JGPlatform.go b/src/push/jpush/common/JGPlatform.go new file mode 100644 index 000000000..6fd129675 --- /dev/null +++ b/src/push/jpush/common/JGPlatform.go @@ -0,0 +1,17 @@ +package common + +import ( + "encoding/base64" + "fmt" +) + +const ( + PushUrl = "https://api.jpush.cn/v3/push" +) + +func GetAuthorization(Appkey string, MasterSecret string) string { + str := fmt.Sprintf("%s:%s", Appkey, MasterSecret) + buf := []byte(str) + Authorization := fmt.Sprintf("Basic %s", base64.StdEncoding.EncodeToString(buf)) + return Authorization +} diff --git a/src/push/jpush/push.go b/src/push/jpush/push.go new file mode 100644 index 000000000..144b940d4 --- /dev/null +++ b/src/push/jpush/push.go @@ -0,0 +1,47 @@ +package push + +import ( + "Open_IM/src/common/config" + "Open_IM/src/push/jpush/common" + "Open_IM/src/push/jpush/requestBody" + "bytes" + "encoding/json" + "net/http" +) + +func JGAccountListPush(accounts []string, jsonCustomContent string, Platform string) (*http.Response, error) { + + var pf requestBody.Platform + _ = pf.SetAndroid() + var au requestBody.Audience + au.SetAlias(accounts) + var no requestBody.Notification + no.SetAlert(jsonCustomContent) + var me requestBody.Message + me.SetMsgContent(jsonCustomContent) + var po requestBody.PushObj + po.SetPlatform(&pf) + po.SetAudience(&au) + po.SetNotification(&no) + po.SetMessage(&me) + + con, err := json.Marshal(po) + if err != nil { + return nil, err + } + + client := &http.Client{} + + req, err := http.NewRequest("POST", common.PushUrl, bytes.NewBuffer(con)) + if err != nil { + return nil, err + } + req.Header.Set("Authorization", common.GetAuthorization(config.Config.Push.Jpns.AppKey, config.Config.Push.Jpns.MasterSecret)) + + resp, err := client.Do(req) + defer resp.Body.Close() + if err != nil { + return nil, err + } + return resp, nil +} diff --git a/src/push/jpush/requestBody/audience.go b/src/push/jpush/requestBody/audience.go new file mode 100644 index 000000000..dc20a83df --- /dev/null +++ b/src/push/jpush/requestBody/audience.go @@ -0,0 +1,53 @@ +package requestBody + +const ( + TAG = "tag" + TAG_AND = "tag_and" + TAG_NOT = "tag_not" + ALIAS = "alias" + REGISTRATION_ID = "registration_id" + SEGMENT = "segment" + ABTEST = "abtest" +) + +type Audience struct { + Object interface{} + audience map[string][]string +} + +func (a *Audience) set(key string, v []string) { + if a.audience == nil { + a.audience = make(map[string][]string) + a.Object = a.audience + } + + //v, ok = this.audience[key] + //if ok { + // return + //} + a.audience[key] = v +} + +func (a *Audience) SetTag(tags []string) { + a.set(TAG, tags) +} + +func (a *Audience) SetTagAnd(tags []string) { + a.set(TAG_AND, tags) +} + +func (a *Audience) SetTagNot(tags []string) { + a.set(TAG_NOT, tags) +} + +func (a *Audience) SetAlias(alias []string) { + a.set(ALIAS, alias) +} + +func (a *Audience) SetRegistrationId(ids []string) { + a.set(REGISTRATION_ID, ids) +} + +func (a *Audience) SetAll() { + a.Object = "all" +} diff --git a/src/push/jpush/requestBody/message.go b/src/push/jpush/requestBody/message.go new file mode 100644 index 000000000..6e6fe1eb9 --- /dev/null +++ b/src/push/jpush/requestBody/message.go @@ -0,0 +1,27 @@ +package requestBody + +type Message struct { + MsgContent string `json:"msg_content"` + Title string `json:"title,omitempty"` + ContentType string `json:"content_type,omitempty"` + Extras map[string]interface{} `json:"extras,omitempty"` +} + +func (m *Message) SetMsgContent(c string) { + m.MsgContent = c +} + +func (m *Message) SetTitle(t string) { + m.Title = t +} + +func (m *Message) SetContentType(c string) { + m.ContentType = c +} + +func (m *Message) SetExtras(key string, value interface{}) { + if m.Extras == nil { + m.Extras = make(map[string]interface{}) + } + m.Extras[key] = value +} diff --git a/src/push/jpush/requestBody/notification.go b/src/push/jpush/requestBody/notification.go new file mode 100644 index 000000000..192803353 --- /dev/null +++ b/src/push/jpush/requestBody/notification.go @@ -0,0 +1,17 @@ +package requestBody + +type Notification struct { + Alert string `json:"alert,omitempty"` + Android *Android `json:"android,omitempty"` + IOS *Ios `json:"ios,omitempty"` +} + +type Android struct { +} + +type Ios struct { +} + +func (n *Notification) SetAlert(alert string) { + n.Alert = alert +} diff --git a/src/push/jpush/requestBody/platform.go b/src/push/jpush/requestBody/platform.go new file mode 100644 index 000000000..1d871064e --- /dev/null +++ b/src/push/jpush/requestBody/platform.go @@ -0,0 +1,76 @@ +package requestBody + +import "errors" + +const ( + ANDROID = "android" + IOS = "ios" + QUICKAPP = "quickapp" + WINDOWSPHONE = "winphone" + ALL = "all" +) + +type Platform struct { + Os interface{} + osArry []string +} + +func (p *Platform) Set(os string) error { + if p.Os == nil { + p.osArry = make([]string, 0, 4) + } else { + switch p.Os.(type) { + case string: + return errors.New("platform is all") + default: + } + } + + for _, value := range p.osArry { + if os == value { + return nil + } + } + + switch os { + case IOS: + fallthrough + case ANDROID: + fallthrough + case QUICKAPP: + fallthrough + case WINDOWSPHONE: + p.osArry = append(p.osArry, os) + p.Os = p.osArry + default: + return errors.New("unknow platform") + } + + return nil +} +func (p *Platform) setPlatform(platform string) { + switch platform { + case ANDROID: + p.SetAndroid() + } + +} +func (p *Platform) SetIOS() error { + return p.Set(IOS) +} + +func (p *Platform) SetAndroid() error { + return p.Set(ANDROID) +} + +func (p *Platform) SetQuickApp() error { + return p.Set(QUICKAPP) +} + +func (p *Platform) SetWindowsPhone() error { + return p.Set(WINDOWSPHONE) +} + +func (p *Platform) SetAll() { + p.Os = ALL +} diff --git a/src/push/jpush/requestBody/pushObj.go b/src/push/jpush/requestBody/pushObj.go new file mode 100644 index 000000000..24c912b26 --- /dev/null +++ b/src/push/jpush/requestBody/pushObj.go @@ -0,0 +1,24 @@ +package requestBody + +type PushObj struct { + Platform interface{} `json:"platform"` + Audience interface{} `json:"audience"` + Notification interface{} `json:"notification,omitempty"` + Message interface{} `json:"message,omitempty"` +} + +func (p *PushObj) SetPlatform(pf *Platform) { + p.Platform = pf.Os +} + +func (p *PushObj) SetAudience(ad *Audience) { + p.Audience = ad.Object +} + +func (p *PushObj) SetNotification(no *Notification) { + p.Notification = no +} + +func (p *PushObj) SetMessage(m *Message) { + p.Message = m +} diff --git a/src/push/logic/init.go b/src/push/logic/init.go index a7be054b8..eb2515caf 100644 --- a/src/push/logic/init.go +++ b/src/push/logic/init.go @@ -24,7 +24,7 @@ func Init(rpcPort int) { log.NewPrivateLog(config.Config.ModuleName.PushName) rpcServer.Init(rpcPort) pushCh.Init() - pushTerminal = []int32{utils.IOSPlatformID} + pushTerminal = []int32{utils.IOSPlatformID, utils.AndroidPlatformID} } func init() { producer = kafka.NewKafkaProducer(config.Config.Kafka.Ws2mschat.Addr, config.Config.Kafka.Ws2mschat.Topic) diff --git a/src/push/logic/push_to_client.go b/src/push/logic/push_to_client.go index 7dad81d5b..855c21d89 100644 --- a/src/push/logic/push_to_client.go +++ b/src/push/logic/push_to_client.go @@ -14,13 +14,10 @@ import ( pbChat "Open_IM/src/proto/chat" pbGroup "Open_IM/src/proto/group" pbRelay "Open_IM/src/proto/relay" - pbGetInfo "Open_IM/src/proto/user" rpcChat "Open_IM/src/rpc/chat/chat" - "Open_IM/src/rpc/user/internal_service" "Open_IM/src/utils" "context" "encoding/json" - "fmt" "strings" ) @@ -65,14 +62,6 @@ func MsgToUser(sendPbData *pbRelay.MsgToUserReq, OfflineInfo, Options string) { //Use offline push messaging var UIDList []string UIDList = append(UIDList, sendPbData.RecvID) - var sendUIDList []string - sendUIDList = append(sendUIDList, sendPbData.SendID) - userInfo, err := internal_service.GetUserInfoClient(&pbGetInfo.GetUserInfoReq{UserIDList: sendUIDList, OperationID: sendPbData.OperationID}) - if err != nil { - log.ErrorByArgs(fmt.Sprintf("err=%v,call GetUserInfoClient rpc server failed", err)) - return - } - customContent := EChatContent{ SessionType: int(sendPbData.SessionType), From: sendPbData.SendID, @@ -84,15 +73,15 @@ func MsgToUser(sendPbData *pbRelay.MsgToUserReq, OfflineInfo, Options string) { jsonCustomContent := string(bCustomContent) switch sendPbData.ContentType { case constant.Text: - IOSAccountListPush(UIDList, userInfo.Data[0].Name, sendPbData.Content, jsonCustomContent) + IOSAccountListPush(UIDList, sendPbData.SenderNickName, sendPbData.Content, jsonCustomContent) case constant.Picture: - IOSAccountListPush(UIDList, userInfo.Data[0].Name, constant.ContentType2PushContent[constant.Picture], jsonCustomContent) + IOSAccountListPush(UIDList, sendPbData.SenderNickName, constant.ContentType2PushContent[constant.Picture], jsonCustomContent) case constant.Voice: - IOSAccountListPush(UIDList, userInfo.Data[0].Name, constant.ContentType2PushContent[constant.Voice], jsonCustomContent) + IOSAccountListPush(UIDList, sendPbData.SenderNickName, constant.ContentType2PushContent[constant.Voice], jsonCustomContent) case constant.Video: - IOSAccountListPush(UIDList, userInfo.Data[0].Name, constant.ContentType2PushContent[constant.Video], jsonCustomContent) + IOSAccountListPush(UIDList, sendPbData.SenderNickName, constant.ContentType2PushContent[constant.Video], jsonCustomContent) case constant.File: - IOSAccountListPush(UIDList, userInfo.Data[0].Name, constant.ContentType2PushContent[constant.File], jsonCustomContent) + IOSAccountListPush(UIDList, sendPbData.SenderNickName, constant.ContentType2PushContent[constant.File], jsonCustomContent) default: } diff --git a/src/rpc/group/group/group.go b/src/rpc/group/group/group.go index 87f904802..87ce94da6 100644 --- a/src/rpc/group/group/group.go +++ b/src/rpc/group/group/group.go @@ -163,13 +163,13 @@ func (c *inviteUserToGroupReq) ContentToString() string { } func (s *groupServer) GetGroupAllMember(ctx context.Context, req *pbGroup.GetGroupAllMemberReq) (*pbGroup.GetGroupAllMemberResp, error) { - claims, err := utils.ParseToken(req.Token) - if err != nil { - log.Error(req.Token, req.OperationID, "err=%s,parse token failed", err.Error()) - if req.Token != config.Config.Secret { - return &pbGroup.GetGroupAllMemberResp{ErrorCode: config.ErrParseToken.ErrCode, ErrorMsg: config.ErrParseToken.ErrMsg}, nil - } - } + //claims, err := utils.ParseToken(req.Token) + //if err != nil { + // log.Error(req.Token, req.OperationID, "err=%s,parse token failed", err.Error()) + // if req.Token != config.Config.Secret { + // return &pbGroup.GetGroupAllMemberResp{ErrorCode: config.ErrParseToken.ErrCode, ErrorMsg: config.ErrParseToken.ErrMsg}, nil + // } + //} var resp pbGroup.GetGroupAllMemberResp resp.ErrorCode = 0 @@ -177,7 +177,7 @@ func (s *groupServer) GetGroupAllMember(ctx context.Context, req *pbGroup.GetGro if err != nil { resp.ErrorCode = config.ErrDb.ErrCode resp.ErrorMsg = err.Error() - log.Error(claims.UID, req.OperationID, "FindGroupMemberListByGroupId failed, ", err.Error(), "params: ", req.GroupID) + log.NewError(req.OperationID, "FindGroupMemberListByGroupId failed,", err.Error(), req.GroupID) return &resp, nil } From fe80b7da5c584ee62172678d501dda5919aab6d9 Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Thu, 28 Oct 2021 15:56:36 +0800 Subject: [PATCH 047/814] add push and fix name and faceurl --- config/config.yaml | 1 + src/common/config/config.go | 1 + src/msg_gateway/gate/logic.go | 35 +++++++++-------- src/push/jpush/common/JGPlatform.go | 4 -- src/push/jpush/push.go | 9 +++-- src/push/jpush/requestBody/platform.go | 15 ++++++-- src/push/logic/push_to_client.go | 52 +++++++++++++------------- 7 files changed, 64 insertions(+), 53 deletions(-) diff --git a/config/config.yaml b/config/config.yaml index 8277fe038..4a53e1958 100644 --- a/config/config.yaml +++ b/config/config.yaml @@ -122,6 +122,7 @@ push: jpns: appKey: 2783339cee4de379cc798fe1 masterSecret: 66e5f309e032c68cc668c28a + pushUrl: "https://api.jpush.cn/v3/push" manager: appManagerUid: ["openIM123456","openIM654321"] secrets: ["openIM1","openIM2"] diff --git a/src/common/config/config.go b/src/common/config/config.go index 1022f56c9..6aa28cfd4 100644 --- a/src/common/config/config.go +++ b/src/common/config/config.go @@ -113,6 +113,7 @@ type config struct { Jpns struct { AppKey string `yaml:"appKey"` MasterSecret string `yaml:"masterSecret"` + PushUrl string `yaml:"pushUrl"` } } Manager struct { diff --git a/src/msg_gateway/gate/logic.go b/src/msg_gateway/gate/logic.go index 389a38a19..cbadadc53 100644 --- a/src/msg_gateway/gate/logic.go +++ b/src/msg_gateway/gate/logic.go @@ -213,27 +213,30 @@ func (ws *WServer) sendMsgResp(conn *UserConn, m *Req, pb *pbChat.UserSendMsgRes } func (ws *WServer) sendMsgReq(conn *UserConn, m *Req, sendTime int64) { - log.InfoByKv("Ws call success to sendMsgReq", m.OperationID, "Parameters", m) + log.InfoByKv("Ws call success to sendMsgReq start", m.OperationID, "Parameters") reply := new(pbChat.UserSendMsgResp) isPass, errCode, errMsg, pData := ws.argsValidate(m, constant.WSSendMsg) if isPass { data := pData.(pbWs.UserSendMsgReq) pbData := pbChat.UserSendMsgReq{ - ReqIdentifier: m.ReqIdentifier, - Token: m.Token, - SendID: m.SendID, - OperationID: m.OperationID, - PlatformID: data.PlatformID, - SessionType: data.SessionType, - MsgFrom: data.MsgFrom, - ContentType: data.ContentType, - RecvID: data.RecvID, - ForceList: data.ForceList, - Content: data.Content, - Options: utils.MapIntToJsonString(data.Options), - ClientMsgID: data.ClientMsgID, - SendTime: sendTime, + ReqIdentifier: m.ReqIdentifier, + Token: m.Token, + SendID: m.SendID, + OperationID: m.OperationID, + PlatformID: data.PlatformID, + SessionType: data.SessionType, + MsgFrom: data.MsgFrom, + ContentType: data.ContentType, + RecvID: data.RecvID, + ForceList: data.ForceList, + SenderNickName: data.SenderNickName, + SenderFaceURL: data.SenderFaceURL, + Content: data.Content, + Options: utils.MapIntToJsonString(data.Options), + ClientMsgID: data.ClientMsgID, + SendTime: sendTime, } + log.NewInfo(m.OperationID, "Ws call success to sendMsgReq middle", m.ReqIdentifier, m.SendID, m.MsgIncr, data) time := utils.GetCurrentTimestampBySecond() etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImOfflineMessageName) client := pbChat.NewChatClient(etcdConn) @@ -265,7 +268,7 @@ func (ws *WServer) sendMsg(conn *UserConn, mReply interface{}) { } err = ws.writeMsg(conn, websocket.BinaryMessage, b.Bytes()) if err != nil { - log.ErrorByKv("WS WriteMsg error", "", "userIP", conn.RemoteAddr().String(), "userUid", ws.getUserUid(conn), "error", err, "mReply", mReply) + log.NewError(mReply.(Resp).OperationID, mReply.(Resp).ReqIdentifier, mReply.(Resp).ErrCode, mReply.(Resp).ErrMsg, "WS WriteMsg error", conn.RemoteAddr().String(), ws.getUserUid(conn), err.Error()) } } func (ws *WServer) sendErrMsg(conn *UserConn, errCode int32, errMsg string, reqIdentifier int32, msgIncr string, operationID string) { diff --git a/src/push/jpush/common/JGPlatform.go b/src/push/jpush/common/JGPlatform.go index 6fd129675..e2e858cf4 100644 --- a/src/push/jpush/common/JGPlatform.go +++ b/src/push/jpush/common/JGPlatform.go @@ -5,10 +5,6 @@ import ( "fmt" ) -const ( - PushUrl = "https://api.jpush.cn/v3/push" -) - func GetAuthorization(Appkey string, MasterSecret string) string { str := fmt.Sprintf("%s:%s", Appkey, MasterSecret) buf := []byte(str) diff --git a/src/push/jpush/push.go b/src/push/jpush/push.go index 144b940d4..f1e7972f0 100644 --- a/src/push/jpush/push.go +++ b/src/push/jpush/push.go @@ -9,10 +9,13 @@ import ( "net/http" ) -func JGAccountListPush(accounts []string, jsonCustomContent string, Platform string) (*http.Response, error) { +type JPushResp struct { +} + +func JGAccountListPush(accounts []string, jsonCustomContent string, platform string) (*http.Response, error) { var pf requestBody.Platform - _ = pf.SetAndroid() + _ = pf.SetPlatform(platform) var au requestBody.Audience au.SetAlias(accounts) var no requestBody.Notification @@ -32,7 +35,7 @@ func JGAccountListPush(accounts []string, jsonCustomContent string, Platform str client := &http.Client{} - req, err := http.NewRequest("POST", common.PushUrl, bytes.NewBuffer(con)) + req, err := http.NewRequest("POST", config.Config.Push.Jpns.PushUrl, bytes.NewBuffer(con)) if err != nil { return nil, err } diff --git a/src/push/jpush/requestBody/platform.go b/src/push/jpush/requestBody/platform.go index 1d871064e..5fe33ea43 100644 --- a/src/push/jpush/requestBody/platform.go +++ b/src/push/jpush/requestBody/platform.go @@ -1,6 +1,9 @@ package requestBody -import "errors" +import ( + "Open_IM/src/utils" + "errors" +) const ( ANDROID = "android" @@ -48,10 +51,14 @@ func (p *Platform) Set(os string) error { return nil } -func (p *Platform) setPlatform(platform string) { +func (p *Platform) SetPlatform(platform string) error { switch platform { - case ANDROID: - p.SetAndroid() + case utils.AndroidPlatformStr: + return p.SetAndroid() + case utils.IOSPlatformStr: + return p.SetIOS() + default: + return errors.New("platform err") } } diff --git a/src/push/logic/push_to_client.go b/src/push/logic/push_to_client.go index 855c21d89..2dd2b74e2 100644 --- a/src/push/logic/push_to_client.go +++ b/src/push/logic/push_to_client.go @@ -17,7 +17,6 @@ import ( rpcChat "Open_IM/src/rpc/chat/chat" "Open_IM/src/utils" "context" - "encoding/json" "strings" ) @@ -60,31 +59,32 @@ func MsgToUser(sendPbData *pbRelay.MsgToUserReq, OfflineInfo, Options string) { } if isShouldOfflinePush { //Use offline push messaging - var UIDList []string - UIDList = append(UIDList, sendPbData.RecvID) - customContent := EChatContent{ - SessionType: int(sendPbData.SessionType), - From: sendPbData.SendID, - To: sendPbData.RecvID, - Seq: sendPbData.RecvSeq, - } - bCustomContent, _ := json.Marshal(customContent) - - jsonCustomContent := string(bCustomContent) - switch sendPbData.ContentType { - case constant.Text: - IOSAccountListPush(UIDList, sendPbData.SenderNickName, sendPbData.Content, jsonCustomContent) - case constant.Picture: - IOSAccountListPush(UIDList, sendPbData.SenderNickName, constant.ContentType2PushContent[constant.Picture], jsonCustomContent) - case constant.Voice: - IOSAccountListPush(UIDList, sendPbData.SenderNickName, constant.ContentType2PushContent[constant.Voice], jsonCustomContent) - case constant.Video: - IOSAccountListPush(UIDList, sendPbData.SenderNickName, constant.ContentType2PushContent[constant.Video], jsonCustomContent) - case constant.File: - IOSAccountListPush(UIDList, sendPbData.SenderNickName, constant.ContentType2PushContent[constant.File], jsonCustomContent) - default: - - } + //var UIDList []string + //UIDList = append(UIDList, sendPbData.RecvID) + //customContent := EChatContent{ + // SessionType: int(sendPbData.SessionType), + // From: sendPbData.SendID, + // To: sendPbData.RecvID, + // Seq: sendPbData.RecvSeq, + //} + //bCustomContent, _ := json.Marshal(customContent) + // + //jsonCustomContent := string(bCustomContent) + //switch sendPbData.ContentType { + //case constant.Text: + // IOSAccountListPush(UIDList, sendPbData.SenderNickName, sendPbData.Content, jsonCustomContent) + //case constant.Picture: + // IOSAccountListPush(UIDList, sendPbData.SenderNickName, constant.ContentType2PushContent[constant.Picture], jsonCustomContent) + //case constant.Voice: + // IOSAccountListPush(UIDList, sendPbData.SenderNickName, constant.ContentType2PushContent[constant.Voice], jsonCustomContent) + //case constant.Video: + // IOSAccountListPush(UIDList, sendPbData.SenderNickName, constant.ContentType2PushContent[constant.Video], jsonCustomContent) + //case constant.File: + // IOSAccountListPush(UIDList, sendPbData.SenderNickName, constant.ContentType2PushContent[constant.File], jsonCustomContent) + //default: + // + //} + //push.JGAccountListPush(UIDList,jsonCustomContent,utils.PlatformIDToName(t)) } else { isShouldOfflinePush = true From ad8bf93677111dc3e57c48fe3e10727090128231 Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Thu, 28 Oct 2021 18:02:20 +0800 Subject: [PATCH 048/814] add push --- src/push/logic/push_to_client.go | 26 ++++++++++++++------------ 1 file changed, 14 insertions(+), 12 deletions(-) diff --git a/src/push/logic/push_to_client.go b/src/push/logic/push_to_client.go index 2dd2b74e2..df125c5c1 100644 --- a/src/push/logic/push_to_client.go +++ b/src/push/logic/push_to_client.go @@ -14,9 +14,11 @@ import ( pbChat "Open_IM/src/proto/chat" pbGroup "Open_IM/src/proto/group" pbRelay "Open_IM/src/proto/relay" + push "Open_IM/src/push/jpush" rpcChat "Open_IM/src/rpc/chat/chat" "Open_IM/src/utils" "context" + "encoding/json" "strings" ) @@ -59,17 +61,17 @@ func MsgToUser(sendPbData *pbRelay.MsgToUserReq, OfflineInfo, Options string) { } if isShouldOfflinePush { //Use offline push messaging - //var UIDList []string - //UIDList = append(UIDList, sendPbData.RecvID) - //customContent := EChatContent{ - // SessionType: int(sendPbData.SessionType), - // From: sendPbData.SendID, - // To: sendPbData.RecvID, - // Seq: sendPbData.RecvSeq, - //} - //bCustomContent, _ := json.Marshal(customContent) - // - //jsonCustomContent := string(bCustomContent) + var UIDList []string + UIDList = append(UIDList, sendPbData.RecvID) + customContent := EChatContent{ + SessionType: int(sendPbData.SessionType), + From: sendPbData.SendID, + To: sendPbData.RecvID, + Seq: sendPbData.RecvSeq, + } + bCustomContent, _ := json.Marshal(customContent) + + jsonCustomContent := string(bCustomContent) //switch sendPbData.ContentType { //case constant.Text: // IOSAccountListPush(UIDList, sendPbData.SenderNickName, sendPbData.Content, jsonCustomContent) @@ -84,7 +86,7 @@ func MsgToUser(sendPbData *pbRelay.MsgToUserReq, OfflineInfo, Options string) { //default: // //} - //push.JGAccountListPush(UIDList,jsonCustomContent,utils.PlatformIDToName(t)) + push.JGAccountListPush(UIDList, jsonCustomContent, utils.PlatformIDToName(t)) } else { isShouldOfflinePush = true From a9d85c39574682ce5dc8afb62ef1605221cd2c2f Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Thu, 28 Oct 2021 19:50:36 +0800 Subject: [PATCH 049/814] test --- src/api/chat/get_max_min_seq.go | 2 +- src/api/open_im_api.go | 2 +- src/msg_gateway/gate/logic.go | 42 ++++++++++++++++----------------- 3 files changed, 23 insertions(+), 23 deletions(-) diff --git a/src/api/chat/get_max_min_seq.go b/src/api/chat/get_max_min_seq.go index 73d98b4ef..02df7ffff 100644 --- a/src/api/chat/get_max_min_seq.go +++ b/src/api/chat/get_max_min_seq.go @@ -19,7 +19,7 @@ type paramsUserNewestSeq struct { MsgIncr int `json:"msgIncr" binding:"required"` } -func UserNewestSeq(c *gin.Context) { +func UserGetSeq(c *gin.Context) { params := paramsUserNewestSeq{} if err := c.BindJSON(¶ms); err != nil { c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": err.Error()}) diff --git a/src/api/open_im_api.go b/src/api/open_im_api.go index 674597203..00cd63a3f 100644 --- a/src/api/open_im_api.go +++ b/src/api/open_im_api.go @@ -83,7 +83,7 @@ func main() { //Message chatGroup := r.Group("/chat") { - chatGroup.POST("/newest_seq", apiChat.UserNewestSeq) + chatGroup.POST("/newest_seq", apiChat.UserGetSeq) chatGroup.POST("/pull_msg", apiChat.UserPullMsg) chatGroup.POST("/send_msg", apiChat.UserSendMsg) chatGroup.POST("/pull_msg_by_seq", apiChat.UserPullMsgBySeqList) diff --git a/src/msg_gateway/gate/logic.go b/src/msg_gateway/gate/logic.go index cbadadc53..15fefb5d4 100644 --- a/src/msg_gateway/gate/logic.go +++ b/src/msg_gateway/gate/logic.go @@ -49,12 +49,11 @@ func (ws *WServer) msgParse(conn *UserConn, binaryMsg []byte) { // ws.sendErrMsg(conn, 202, "token validate err", m.ReqIdentifier, m.MsgIncr,m.OperationID) // return //} - fmt.Println("test fmt Basic Info Authentication Success", m.OperationID, "reqIdentifier", m.ReqIdentifier, "sendID", m.SendID) log.InfoByKv("Basic Info Authentication Success", m.OperationID, "reqIdentifier", m.ReqIdentifier, "sendID", m.SendID, "msgIncr", m.MsgIncr) switch m.ReqIdentifier { case constant.WSGetNewestSeq: - go ws.newestSeqReq(conn, &m) + go ws.getSeqReq(conn, &m) case constant.WSPullMsg: go ws.pullMsgReq(conn, &m) case constant.WSSendMsg: @@ -68,7 +67,7 @@ func (ws *WServer) msgParse(conn *UserConn, binaryMsg []byte) { log.NewInfo("", "goroutine num is ", runtime.NumGoroutine()) } -func (ws *WServer) newestSeqResp(conn *UserConn, m *Req, pb *pbChat.GetMaxAndMinSeqResp) { +func (ws *WServer) getSeqResp(conn *UserConn, m *Req, pb *pbChat.GetMaxAndMinSeqResp) { var mReplyData pbWs.GetMaxAndMinSeqResp mReplyData.MaxSeq = pb.GetMaxSeq() mReplyData.MinSeq = pb.GetMinSeq() @@ -83,8 +82,8 @@ func (ws *WServer) newestSeqResp(conn *UserConn, m *Req, pb *pbChat.GetMaxAndMin } ws.sendMsg(conn, mReply) } -func (ws *WServer) newestSeqReq(conn *UserConn, m *Req) { - log.InfoByKv("Ws call success to getNewSeq", m.OperationID, "Parameters", m) +func (ws *WServer) getSeqReq(conn *UserConn, m *Req) { + log.NewInfo(m.OperationID, "Ws call success to getNewSeq", m.MsgIncr, m.SendID, m.ReqIdentifier) pbData := pbChat.GetMaxAndMinSeqReq{} pbData.UserID = m.SendID pbData.OperationID = m.OperationID @@ -95,11 +94,11 @@ func (ws *WServer) newestSeqReq(conn *UserConn, m *Req) { msgClient := pbChat.NewChatClient(grpcConn) reply, err := msgClient.GetMaxAndMinSeq(context.Background(), &pbData) if err != nil { - log.ErrorByKv("rpc call failed to getNewSeq", pbData.OperationID, "err", err, "pbData", pbData.String()) + log.ErrorByKv("rpc call failed to getSeqReq", pbData.OperationID, "err", err, "pbData", pbData.String()) return } - log.InfoByKv("rpc call success to getNewSeq", pbData.OperationID, "replyData", reply.String()) - ws.newestSeqResp(conn, m, reply) + log.InfoByKv("rpc call success to getSeqReq", pbData.OperationID, "replyData", reply.String()) + ws.getSeqResp(conn, m, reply) } @@ -142,7 +141,7 @@ func (ws *WServer) pullMsgResp(conn *UserConn, m *Req, pb *pbChat.PullMessageRes } func (ws *WServer) pullMsgReq(conn *UserConn, m *Req) { - log.InfoByKv("Ws call success to pullMsgReq", m.OperationID, "Parameters", m) + log.NewInfo(m.OperationID, "Ws call success to pullMsgReq", m.ReqIdentifier, m.MsgIncr, m.SendID) reply := new(pbChat.PullMessageResp) isPass, errCode, errMsg, data := ws.argsValidate(m, constant.WSPullMsg) if isPass { @@ -168,9 +167,10 @@ func (ws *WServer) pullMsgReq(conn *UserConn, m *Req) { } } func (ws *WServer) pullMsgBySeqListReq(conn *UserConn, m *Req) { - log.NewInfo(m.OperationID, "Ws call success to pullMsgBySeqListReq", m.SendID) + log.NewInfo(m.OperationID, "Ws call success to pullMsgBySeqListReq start", m.SendID, m.ReqIdentifier, m.MsgIncr) reply := new(pbChat.PullMessageResp) isPass, errCode, errMsg, data := ws.argsValidate(m, constant.WSPullMsgBySeqList) + log.NewInfo(m.OperationID, "Ws call success to pullMsgBySeqListReq middle", m.SendID, m.ReqIdentifier, m.MsgIncr, data.(pbWs.PullMessageBySeqListReq).SeqList) if isPass { pbData := pbChat.PullMessageBySeqListReq{} pbData.SeqList = data.(pbWs.PullMessageBySeqListReq).SeqList @@ -181,9 +181,12 @@ func (ws *WServer) pullMsgBySeqListReq(conn *UserConn, m *Req) { reply, err := msgClient.PullMessageBySeqList(context.Background(), &pbData) if err != nil { log.NewError(pbData.OperationID, "pullMsgBySeqListReq err", err.Error()) - return + reply.ErrCode = 200 + reply.ErrMsg = err.Error() + + } else { + log.NewInfo(pbData.OperationID, "rpc call success to pullMsgBySeqListReq", reply.String(), reply.GetMaxSeq(), reply.GetMinSeq(), len(reply.GetSingleUserMsg()), len(reply.GetGroupUserMsg())) } - log.NewInfo(pbData.OperationID, "rpc call success to pullMsgBySeqListReq", reply.String(), reply.GetMaxSeq(), reply.GetMinSeq(), len(reply.GetSingleUserMsg()), len(reply.GetGroupUserMsg())) ws.pullMsgResp(conn, m, reply) } else { reply.ErrCode = errCode @@ -208,12 +211,11 @@ func (ws *WServer) sendMsgResp(conn *UserConn, m *Req, pb *pbChat.UserSendMsgRes OperationID: m.OperationID, Data: b, } - fmt.Println("test fmt send msg resp", m.OperationID, "reqIdentifier", m.ReqIdentifier, "sendID", m.SendID) ws.sendMsg(conn, mReply) } func (ws *WServer) sendMsgReq(conn *UserConn, m *Req, sendTime int64) { - log.InfoByKv("Ws call success to sendMsgReq start", m.OperationID, "Parameters") + log.NewInfo(m.OperationID, "Ws call success to sendMsgReq start", m.MsgIncr, m.ReqIdentifier, m.SendID, sendTime) reply := new(pbChat.UserSendMsgResp) isPass, errCode, errMsg, pData := ws.argsValidate(m, constant.WSSendMsg) if isPass { @@ -237,20 +239,18 @@ func (ws *WServer) sendMsgReq(conn *UserConn, m *Req, sendTime int64) { SendTime: sendTime, } log.NewInfo(m.OperationID, "Ws call success to sendMsgReq middle", m.ReqIdentifier, m.SendID, m.MsgIncr, data) - time := utils.GetCurrentTimestampBySecond() etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImOfflineMessageName) client := pbChat.NewChatClient(etcdConn) - log.Info("", "", "ws UserSendMsg call, api call rpc...") reply, err := client.UserSendMsg(context.Background(), &pbData) if err != nil { log.NewError(pbData.OperationID, "UserSendMsg err", err.Error()) - reply.ErrCode = 100 - reply.ErrMsg = "rpc err" + reply.ErrCode = 200 + reply.ErrMsg = err.Error() + } else { + log.NewInfo(pbData.OperationID, "rpc call success to sendMsgReq", reply.String()) } - log.NewInfo(pbData.OperationID, "sendMsgReq call rpc cost time ", utils.GetCurrentTimestampBySecond()-time) - log.Info("", "", "api UserSendMsg call end..., [data: %s] [reply: %s]", pbData.String(), reply.String()) ws.sendMsgResp(conn, m, reply, sendTime) - log.NewInfo(pbData.OperationID, "sendMsgResp end cost time ", utils.GetCurrentTimestampBySecond()-time) + } else { reply.ErrCode = errCode reply.ErrMsg = errMsg From 579a6f71810faa12c261f4019b09ccf434f73f60 Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Thu, 28 Oct 2021 21:14:20 +0800 Subject: [PATCH 050/814] consumer consume async --- src/msg_transfer/logic/history_msg_handler.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/msg_transfer/logic/history_msg_handler.go b/src/msg_transfer/logic/history_msg_handler.go index a40f8c5bc..cda111998 100644 --- a/src/msg_transfer/logic/history_msg_handler.go +++ b/src/msg_transfer/logic/history_msg_handler.go @@ -81,7 +81,7 @@ func (mc *HistoryConsumerHandler) handleChatWs2Mongo(msg []byte, msgKey string) if msgKey == pbSaveData.RecvID { pbSaveData.Options = pbData.Options pbSaveData.OfflineInfo = pbData.OfflineInfo - sendMessageToPush(&pbSaveData) + go sendMessageToPush(&pbSaveData) log.NewInfo(pbSaveData.OperationID, "sendMessageToPush cost time ", utils.GetCurrentTimestampBySecond()-time) } From a86980657c5315437c4e4a1b3c1ba8dbbe259c15 Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Fri, 29 Oct 2021 09:53:39 +0800 Subject: [PATCH 051/814] remove note --- src/msg_transfer/logic/init.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/msg_transfer/logic/init.go b/src/msg_transfer/logic/init.go index cd7f10106..03a7d2c33 100644 --- a/src/msg_transfer/logic/init.go +++ b/src/msg_transfer/logic/init.go @@ -20,6 +20,6 @@ func Init() { } func Run() { //register mysqlConsumerHandler to - //go persistentCH.persistentConsumerGroup.RegisterHandleAndConsumer(&persistentCH) + go persistentCH.persistentConsumerGroup.RegisterHandleAndConsumer(&persistentCH) go historyCH.historyConsumerGroup.RegisterHandleAndConsumer(&historyCH) } From 09b501f7dfe8038598b1f8871655dc418c5a3123 Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Fri, 29 Oct 2021 10:41:02 +0800 Subject: [PATCH 052/814] msg split num change --- src/common/db/mongoModel.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/common/db/mongoModel.go b/src/common/db/mongoModel.go index b5748347c..4bc810e16 100644 --- a/src/common/db/mongoModel.go +++ b/src/common/db/mongoModel.go @@ -14,7 +14,7 @@ import ( const cChat = "chat" const cGroup = "group" -const singleGocMsgNum = 10000 +const singleGocMsgNum = 5000 type MsgInfo struct { SendTime int64 From e124a26c52cbfb0434c7952379f6bd9b89b53b3d Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Fri, 29 Oct 2021 12:00:10 +0800 Subject: [PATCH 053/814] docker-compose.yaml change --- docker-compose.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docker-compose.yaml b/docker-compose.yaml index a9fa9a1c9..17b420d58 100644 --- a/docker-compose.yaml +++ b/docker-compose.yaml @@ -109,7 +109,7 @@ services: #fixme----build from docker hub------ open-im-server: - image: lyt1123/open_im_server + image: lyt1123/open_im_server:v1.0.0 container_name: open-im-server volumes: - ./logs:/Open-IM-Server/logs From 71873f7f0e62919b10266f087525e1380e5dee62 Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Fri, 29 Oct 2021 14:14:27 +0800 Subject: [PATCH 054/814] docker-compose.yaml change --- docker-compose.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docker-compose.yaml b/docker-compose.yaml index 17b420d58..a9fa9a1c9 100644 --- a/docker-compose.yaml +++ b/docker-compose.yaml @@ -109,7 +109,7 @@ services: #fixme----build from docker hub------ open-im-server: - image: lyt1123/open_im_server:v1.0.0 + image: lyt1123/open_im_server container_name: open-im-server volumes: - ./logs:/Open-IM-Server/logs From 7f19f2f0467216f424d9c46793f2b8a92c73370f Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Mon, 1 Nov 2021 16:14:39 +0800 Subject: [PATCH 055/814] fix import friend panic --- src/rpc/friend/friend/add_friend.go | 30 ++++++++++++++++++----------- 1 file changed, 19 insertions(+), 11 deletions(-) diff --git a/src/rpc/friend/friend/add_friend.go b/src/rpc/friend/friend/add_friend.go index 79e95a274..8b822dd29 100644 --- a/src/rpc/friend/friend/add_friend.go +++ b/src/rpc/friend/friend/add_friend.go @@ -55,25 +55,33 @@ func (s *friendServer) AddFriend(ctx context.Context, req *pbFriend.AddFriendReq func (s *friendServer) ImportFriend(ctx context.Context, req *pbFriend.ImportFriendReq) (*pbFriend.ImportFriendResp, error) { log.Info(req.Token, req.OperationID, "ImportFriend come here,args=%s", req.String()) var resp pbFriend.ImportFriendResp + var c pbFriend.CommonResp //Parse token, to find current user information claims, err := utils.ParseToken(req.Token) if err != nil { log.Error(req.Token, req.OperationID, "err=%s,parse token failed", err.Error()) - return &pbFriend.ImportFriendResp{CommonResp: &pbFriend.CommonResp{ErrorCode: config.ErrAddFriend.ErrCode, ErrorMsg: config.ErrParseToken.ErrMsg}, FailedUidList: req.UidList}, nil + c.ErrorCode = config.ErrAddFriend.ErrCode + c.ErrorMsg = config.ErrParseToken.ErrMsg + return &pbFriend.ImportFriendResp{CommonResp: &c, FailedUidList: req.UidList}, nil } if !utils.IsContain(claims.UID, config.Config.Manager.AppManagerUid) { - log.Error(req.Token, req.OperationID, "not magager uid", claims.UID) - return &pbFriend.ImportFriendResp{CommonResp: &pbFriend.CommonResp{ErrorCode: config.ErrAddFriend.ErrCode, ErrorMsg: "not authorized"}, FailedUidList: req.UidList}, nil + log.Error(req.Token, req.OperationID, "not manager uid", claims.UID) + c.ErrorCode = config.ErrAddFriend.ErrCode + c.ErrorMsg = "not authorized" + return &pbFriend.ImportFriendResp{CommonResp: &c, FailedUidList: req.UidList}, nil } if _, err = im_mysql_model.FindUserByUID(req.OwnerUid); err != nil { log.Error(req.Token, req.OperationID, "this user not exists,cant not add friend", req.OwnerUid) - return &pbFriend.ImportFriendResp{CommonResp: &pbFriend.CommonResp{ErrorCode: config.ErrAddFriend.ErrCode, ErrorMsg: "this user not exists,cant not add friend"}, FailedUidList: req.UidList}, nil + c.ErrorCode = config.ErrAddFriend.ErrCode + c.ErrorMsg = "this user not exists,cant not add friend" + return &pbFriend.ImportFriendResp{CommonResp: &c, FailedUidList: req.UidList}, nil } for _, v := range req.UidList { - if _, err = im_mysql_model.FindUserByUID(v); err != nil { - resp.CommonResp.ErrorMsg = "some uid establish failed" - resp.CommonResp.ErrorCode = 408 + if _, fErr := im_mysql_model.FindUserByUID(v); fErr != nil { + c.ErrorMsg = "some uid establish failed" + c.ErrorCode = 408 + resp.CommonResp = &c resp.FailedUidList = append(resp.FailedUidList, v) } else { if _, err = im_mysql_model.FindFriendRelationshipFromFriend(req.OwnerUid, v); err != nil { @@ -81,18 +89,18 @@ func (s *friendServer) ImportFriend(ctx context.Context, req *pbFriend.ImportFri err1 := im_mysql_model.InsertToFriend(req.OwnerUid, v, 1) if err1 != nil { resp.FailedUidList = append(resp.FailedUidList, v) - log.Error(req.Token, req.OperationID, "err=%s,create friendship failed", err.Error()) + log.NewError(req.OperationID, "err1,create friendship failed", req.OwnerUid, v, err1.Error()) } err2 := im_mysql_model.InsertToFriend(v, req.OwnerUid, 1) if err2 != nil { - log.Error(req.Token, req.OperationID, "err=%s,create friendship failed", err.Error()) + log.NewError(req.OperationID, "err2,create friendship failed", v, req.OwnerUid, err2.Error()) } if err1 == nil && err2 == nil { var name, faceUrl string - n := content_struct.NotificationContent{1, constant.FriendAcceptTip, ""} + n := content_struct.NotificationContent{IsDisplay: 1, DefaultTips: constant.FriendAcceptTip} r, err := im_mysql_model.FindUserByUID(v) if err != nil { - log.ErrorByKv("get info failed", req.OperationID, "err", err.Error(), "req", req.String()) + log.NewError(req.OperationID, "get info failed", err.Error(), v) } if r != nil { name, faceUrl = r.Name, r.Icon From 082de2b6b7339e4b3ed2c5265ac952050faf90bd Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Mon, 1 Nov 2021 17:16:47 +0800 Subject: [PATCH 056/814] group message fix bug --- src/msg_transfer/logic/history_msg_handler.go | 38 +++++++++++-------- 1 file changed, 22 insertions(+), 16 deletions(-) diff --git a/src/msg_transfer/logic/history_msg_handler.go b/src/msg_transfer/logic/history_msg_handler.go index cda111998..e6b7befdd 100644 --- a/src/msg_transfer/logic/history_msg_handler.go +++ b/src/msg_transfer/logic/history_msg_handler.go @@ -33,7 +33,7 @@ func (mc *HistoryConsumerHandler) Init() { func (mc *HistoryConsumerHandler) handleChatWs2Mongo(msg []byte, msgKey string) { log.InfoByKv("chat come mongo!!!", "", "chat", string(msg)) - time := utils.GetCurrentTimestampBySecond() + time := utils.GetCurrentTimestampByNano() pbData := pbMsg.WSToMsgSvrChatMsg{} err := proto.Unmarshal(msg, &pbData) if err != nil { @@ -59,47 +59,53 @@ func (mc *HistoryConsumerHandler) handleChatWs2Mongo(msg []byte, msgKey string) isHistory := utils.GetSwitchFromOptions(Options, "history") //Control whether to store history messages (mysql) isPersist := utils.GetSwitchFromOptions(Options, "persistent") - if pbData.SessionType == constant.SingleChatType { - log.Info("", "", "msg_transfer chat type = SingleChatType", isHistory, isPersist) + switch pbData.SessionType { + case constant.SingleChatType: + log.NewDebug(pbSaveData.OperationID, "msg_transfer chat type = SingleChatType", isHistory, isPersist) if isHistory { if msgKey == pbSaveData.RecvID { err := saveUserChat(pbData.RecvID, &pbSaveData) if err != nil { - log.ErrorByKv("data insert to mongo err", pbSaveData.OperationID, "data", pbSaveData.String(), "err", err.Error()) + log.NewError(pbSaveData.OperationID, "single data insert to mongo err", err.Error(), pbSaveData.String()) + return } } else if msgKey == pbSaveData.SendID { err := saveUserChat(pbData.SendID, &pbSaveData) if err != nil { - log.ErrorByKv("data insert to mongo err", pbSaveData.OperationID, "data", pbSaveData.String(), "err", err.Error()) + log.NewError(pbSaveData.OperationID, "single data insert to mongo err", err.Error(), pbSaveData.String()) + return } } - log.NewInfo(pbSaveData.OperationID, "saveUserChat cost time ", utils.GetCurrentTimestampBySecond()-time) + log.NewDebug(pbSaveData.OperationID, "saveUserChat cost time ", utils.GetCurrentTimestampByNano()-time) } if msgKey == pbSaveData.RecvID { pbSaveData.Options = pbData.Options pbSaveData.OfflineInfo = pbData.OfflineInfo go sendMessageToPush(&pbSaveData) - log.NewInfo(pbSaveData.OperationID, "sendMessageToPush cost time ", utils.GetCurrentTimestampBySecond()-time) + log.NewDebug(pbSaveData.OperationID, "sendMessageToPush cost time ", utils.GetCurrentTimestampByNano()-time) } - log.InfoByKv("msg_transfer handle topic success...", "", "") - } else if pbData.SessionType == constant.GroupChatType { - log.Info("", "", "msg_transfer chat type = GroupChatType") + case constant.GroupChatType: + log.NewDebug(pbSaveData.OperationID, "msg_transfer chat type = GroupChatType", isHistory, isPersist) if isHistory { uidAndGroupID := strings.Split(pbData.RecvID, " ") - saveUserChat(uidAndGroupID[0], &pbSaveData) + err := saveUserChat(uidAndGroupID[0], &pbSaveData) + if err != nil { + log.NewError(pbSaveData.OperationID, "group data insert to mongo err", pbSaveData.String(), uidAndGroupID[0], err.Error()) + return + } } pbSaveData.Options = pbData.Options pbSaveData.OfflineInfo = pbData.OfflineInfo - sendMessageToPush(&pbSaveData) - log.InfoByKv("msg_transfer handle topic success...", "", "") - } else { - log.Error("", "", "msg_transfer recv chat err, chat.MsgFrom = %d", pbData.SessionType) + go sendMessageToPush(&pbSaveData) + default: + log.NewError(pbSaveData.OperationID, "SessionType error", pbSaveData.String()) + return } - + log.NewDebug(pbSaveData.OperationID, "msg_transfer handle topic data to database success...", pbSaveData.String()) } func (HistoryConsumerHandler) Setup(_ sarama.ConsumerGroupSession) error { return nil } From a87c16de0d318f4054d33831c921d16095f7e1a0 Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Tue, 2 Nov 2021 12:00:24 +0800 Subject: [PATCH 057/814] push fix --- src/push/logic/push_to_client.go | 58 +++++++++++--------------------- 1 file changed, 19 insertions(+), 39 deletions(-) diff --git a/src/push/logic/push_to_client.go b/src/push/logic/push_to_client.go index df125c5c1..09c4c36e8 100644 --- a/src/push/logic/push_to_client.go +++ b/src/push/logic/push_to_client.go @@ -31,7 +31,6 @@ type EChatContent struct { func MsgToUser(sendPbData *pbRelay.MsgToUserReq, OfflineInfo, Options string) { var wsResult []*pbRelay.SingleMsgToUser - isShouldOfflinePush := true MOptions := utils.JsonStringToMap(Options) //Control whether to push message to sender's other terminal //isSenderSync := utils.GetSwitchFromOptions(MOptions, "senderSync") isOfflinePush := utils.GetSwitchFromOptions(MOptions, "offlinePush") @@ -51,50 +50,31 @@ func MsgToUser(sendPbData *pbRelay.MsgToUserReq, OfflineInfo, Options string) { } log.InfoByKv("push_result", sendPbData.OperationID, "result", wsResult, "sendData", sendPbData) if isOfflinePush { - - for _, t := range pushTerminal { - for _, v := range wsResult { - if v.RecvPlatFormID == t && v.ResultCode == 0 { - isShouldOfflinePush = false - break - } + for _, v := range wsResult { + if v.ResultCode == 0 { + continue } - if isShouldOfflinePush { - //Use offline push messaging - var UIDList []string - UIDList = append(UIDList, sendPbData.RecvID) - customContent := EChatContent{ - SessionType: int(sendPbData.SessionType), - From: sendPbData.SendID, - To: sendPbData.RecvID, - Seq: sendPbData.RecvSeq, - } - bCustomContent, _ := json.Marshal(customContent) + //supported terminal + for _, t := range pushTerminal { + if v.RecvPlatFormID == t { + //Use offline push messaging + var UIDList []string + UIDList = append(UIDList, sendPbData.RecvID) + customContent := EChatContent{ + SessionType: int(sendPbData.SessionType), + From: sendPbData.SendID, + To: sendPbData.RecvID, + Seq: sendPbData.RecvSeq, + } + bCustomContent, _ := json.Marshal(customContent) + jsonCustomContent := string(bCustomContent) + push.JGAccountListPush(UIDList, jsonCustomContent, utils.PlatformIDToName(t)) - jsonCustomContent := string(bCustomContent) - //switch sendPbData.ContentType { - //case constant.Text: - // IOSAccountListPush(UIDList, sendPbData.SenderNickName, sendPbData.Content, jsonCustomContent) - //case constant.Picture: - // IOSAccountListPush(UIDList, sendPbData.SenderNickName, constant.ContentType2PushContent[constant.Picture], jsonCustomContent) - //case constant.Voice: - // IOSAccountListPush(UIDList, sendPbData.SenderNickName, constant.ContentType2PushContent[constant.Voice], jsonCustomContent) - //case constant.Video: - // IOSAccountListPush(UIDList, sendPbData.SenderNickName, constant.ContentType2PushContent[constant.Video], jsonCustomContent) - //case constant.File: - // IOSAccountListPush(UIDList, sendPbData.SenderNickName, constant.ContentType2PushContent[constant.File], jsonCustomContent) - //default: - // - //} - push.JGAccountListPush(UIDList, jsonCustomContent, utils.PlatformIDToName(t)) - - } else { - isShouldOfflinePush = true + } } } } - } func SendMsgByWS(m *pbChat.WSToMsgSvrChatMsg) { From dfd028625d3b35c86039905e291205ab3b549a03 Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Tue, 2 Nov 2021 16:12:55 +0800 Subject: [PATCH 058/814] fix secret check and management --- src/api/auth/user_register.go | 4 ++++ src/api/auth/user_token.go | 4 ++++ src/api/manage/management_chat.go | 15 +++++++++------ src/rpc/chat/chat/send_msg.go | 7 +------ 4 files changed, 18 insertions(+), 12 deletions(-) diff --git a/src/api/auth/user_register.go b/src/api/auth/user_register.go index 8dc64bb74..b2d81218d 100644 --- a/src/api/auth/user_register.go +++ b/src/api/auth/user_register.go @@ -49,6 +49,10 @@ func UserRegister(c *gin.Context) { c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": err.Error()}) return } + if params.Secret != config.Config.Secret { + c.JSON(http.StatusBadRequest, gin.H{"errCode": 401, "errMsg": "not authorized"}) + return + } pbData := newUserRegisterReq(¶ms) log.Info("", "", "api user_register is server, [data: %s]", pbData.String()) diff --git a/src/api/auth/user_token.go b/src/api/auth/user_token.go index a50369361..6fcb71d9e 100644 --- a/src/api/auth/user_token.go +++ b/src/api/auth/user_token.go @@ -37,6 +37,10 @@ func UserToken(c *gin.Context) { c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": err.Error()}) return } + if params.Secret != config.Config.Secret { + c.JSON(http.StatusBadRequest, gin.H{"errCode": 401, "errMsg": "not authorized"}) + return + } pbData := newUserTokenReq(¶ms) log.Info("", "", "api user_token is server, [data: %s]", pbData.String()) diff --git a/src/api/manage/management_chat.go b/src/api/manage/management_chat.go index fd9c89b27..6853c172b 100644 --- a/src/api/manage/management_chat.go +++ b/src/api/manage/management_chat.go @@ -35,7 +35,7 @@ type paramsManagementSendMsg struct { SessionType int32 `json:"sessionType" binding:"required"` } -func newUserSendMsgReq(token string, params *paramsManagementSendMsg) *pbChat.UserSendMsgReq { +func newUserSendMsgReq(params *paramsManagementSendMsg) *pbChat.UserSendMsgReq { var newContent string switch params.ContentType { case constant.Text: @@ -53,7 +53,6 @@ func newUserSendMsgReq(token string, params *paramsManagementSendMsg) *pbChat.Us } pbData := pbChat.UserSendMsgReq{ ReqIdentifier: constant.WSSendMsg, - Token: token, SendID: params.SendID, SenderNickName: params.SenderNickName, SenderFaceURL: params.SenderFaceURL, @@ -103,15 +102,19 @@ func ManagementSendMsg(c *gin.Context) { } token := c.Request.Header.Get("token") - if !utils.IsContain(params.SendID, config.Config.Manager.AppManagerUid) { - c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": "not appManager", "sendTime": 0, "MsgID": ""}) + claims, err := utils.ParseToken(token) + if err != nil { + log.NewError(params.OperationID, "parse token failed", err.Error()) + c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": "parse token failed", "sendTime": 0, "MsgID": ""}) + } + if !utils.IsContain(claims.UID, config.Config.Manager.AppManagerUid) { + c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": "not authorized", "sendTime": 0, "MsgID": ""}) return } - log.InfoByKv("Ws call success to ManagementSendMsgReq", params.OperationID, "Parameters", params) - pbData := newUserSendMsgReq(token, ¶ms) + pbData := newUserSendMsgReq(¶ms) log.Info("", "", "api ManagementSendMsg call start..., [data: %s]", pbData.String()) etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImOfflineMessageName) diff --git a/src/rpc/chat/chat/send_msg.go b/src/rpc/chat/chat/send_msg.go index 960df7ed5..5a9c47d6c 100644 --- a/src/rpc/chat/chat/send_msg.go +++ b/src/rpc/chat/chat/send_msg.go @@ -42,12 +42,9 @@ type MsgCallBackResp struct { func (rpc *rpcChat) UserSendMsg(_ context.Context, pb *pbChat.UserSendMsgReq) (*pbChat.UserSendMsgResp, error) { replay := pbChat.UserSendMsgResp{} - log.InfoByKv("sendMsg", pb.OperationID, "args", pb.String()) - time := utils.GetCurrentTimestampByMill() + log.NewDebug(pb.OperationID, "rpc sendMsg come here", pb.String()) //if !utils.VerifyToken(pb.Token, pb.SendID) { // return returnMsg(&replay, pb, http.StatusUnauthorized, "token validate err,not authorized", "", 0) - //} - log.NewInfo(pb.OperationID, "VerifyToken cost time ", utils.GetCurrentTimestampByMill()-time) serverMsgID := GetMsgID(pb.SendID) pbData := pbChat.WSToMsgSvrChatMsg{} pbData.MsgFrom = pb.MsgFrom @@ -99,10 +96,8 @@ func (rpc *rpcChat) UserSendMsg(_ context.Context, pb *pbChat.UserSendMsgReq) (* } switch pbData.SessionType { case constant.SingleChatType: - time := utils.GetCurrentTimestampByMill() err1 := rpc.sendMsgToKafka(&pbData, pbData.RecvID) err2 := rpc.sendMsgToKafka(&pbData, pbData.SendID) - log.NewInfo(pb.OperationID, "send kafka cost time ", utils.GetCurrentTimestampByMill()-time) if err1 != nil || err2 != nil { return returnMsg(&replay, pb, 201, "kafka send msg err", "", 0) } From af37abb394d75d5b45db40e2414115c9edf40071 Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Tue, 2 Nov 2021 17:37:51 +0800 Subject: [PATCH 059/814] docker-compose modify --- config/config.yaml | 12 ++++++------ docker-compose.yaml | 20 ++++++++++---------- script/check_all.sh | 2 +- 3 files changed, 17 insertions(+), 17 deletions(-) diff --git a/config/config.yaml b/config/config.yaml index 4a53e1958..a33797cc4 100644 --- a/config/config.yaml +++ b/config/config.yaml @@ -5,10 +5,10 @@ serverversion: 1.0.0 #---------------Infrastructure configuration---------------------# etcd: etcdSchema: openIM - etcdAddr: [ 127.0.0.1:2379 ] + etcdAddr: [ 127.0.0.1:32379 ] mysql: - dbMysqlAddress: [ 127.0.0.1:3306 ] + dbMysqlAddress: [ 127.0.0.1:33306 ] dbMysqlUserName: root dbMysqlPassword: openIM dbMysqlDatabaseName: openIM @@ -19,7 +19,7 @@ mysql: dbMaxLifeTime: 120 mongo: - dbAddress: [ 127.0.0.1:27017 ] + dbAddress: [ 127.0.0.1:37017 ] dbDirect: false dbTimeout: 10 dbDatabase: openIM @@ -30,7 +30,7 @@ mongo: dbRetainChatRecords: 7 redis: - dbAddress: 127.0.0.1:6379 + dbAddress: 127.0.0.1:36379 dbMaxIdle: 128 dbMaxActive: 0 dbIdleTimeout: 120 @@ -38,10 +38,10 @@ redis: kafka: ws2mschat: - addr: [ 127.0.0.1:9092 ] + addr: [ 127.0.0.1:39092 ] topic: "ws2ms_chat" ms2pschat: - addr: [ 127.0.0.1:9092 ] + addr: [ 127.0.0.1:39092 ] topic: "ms2ps_chat" consumergroupid: msgToMongo: mongo diff --git a/docker-compose.yaml b/docker-compose.yaml index a9fa9a1c9..183f5a051 100644 --- a/docker-compose.yaml +++ b/docker-compose.yaml @@ -5,7 +5,7 @@ services: mysql: image: mysql:5.7 ports: - - 3306:3306 + - 33306:33306 container_name: mysql volumes: - ./components/mysql/data:/var/lib/mysql @@ -17,7 +17,7 @@ services: mongodb: image: mongo ports: - - 27017:27017 + - 37017:37017 container_name: mongo volumes: - ./components/mongodb/data:/data/db @@ -28,7 +28,7 @@ services: redis: image: redis ports: - - 6379:6379 + - 36379:36379 container_name: redis volumes: - ./components/redis/data:/data @@ -45,7 +45,7 @@ services: zookeeper: image: wurstmeister/zookeeper ports: - - 2181:2181 + - 32181:32181 container_name: zookeeper volumes: - /etc/localtime:/etc/localtime @@ -61,9 +61,9 @@ services: environment: TZ: Asia/Shanghai KAFKA_BROKER_ID: 0 - KAFKA_ZOOKEEPER_CONNECT: 127.0.0.1:2181 - KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://127.0.0.1:9092 - KAFKA_LISTENERS: PLAINTEXT://0.0.0.0:9092 + KAFKA_ZOOKEEPER_CONNECT: 127.0.0.1:32181 + KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://127.0.0.1:39092 + KAFKA_LISTENERS: PLAINTEXT://0.0.0.0:39092 network_mode: "host" depends_on: - zookeeper @@ -71,8 +71,8 @@ services: etcd: image: quay.io/coreos/etcd ports: - - 2379:2379 - - 2380:2380 + - 32379:32379 + - 32380:32380 container_name: etcd volumes: - /etc/timezone:/etc/timezone @@ -80,7 +80,7 @@ services: environment: ETCDCTL_API: 3 restart: always - 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 + command: /usr/local/bin/etcd --name etcd0 --data-dir /etcd-data --listen-client-urls http://0.0.0.0:32379 --advertise-client-urls http://0.0.0.0:32379 --listen-peer-urls http://0.0.0.0:32380 --initial-advertise-peer-urls http://0.0.0.0:32380 --initial-cluster etcd0=http://0.0.0.0:32380 --initial-cluster-token tkn --initial-cluster-state new #fixme-----build from dockerfile--------- diff --git a/script/check_all.sh b/script/check_all.sh index 3c57577c4..63fe31711 100644 --- a/script/check_all.sh +++ b/script/check_all.sh @@ -33,7 +33,7 @@ done #Check launched service process check=$(ps aux | grep -w ./${msg_transfer_name} | grep -v grep | wc -l) if [ $check -eq ${msg_transfer_service_num} ]; then - echo -e ${GREEN_PREFIX}"service has been starting,belongs service is openImMsgTransfer"${COLOR_SUFFIX} + echo -e ${GREEN_PREFIX}"none port service has been starting,belongs service is openImMsgTransfer"${COLOR_SUFFIX} else echo -e ${RED_PREFIX}"openImMsgTransfer service does not start normally, num err"${COLOR_SUFFIX} echo -e ${RED_PREFIX}"please check ../logs/openIM.log "${COLOR_SUFFIX} From 6d67bb9d656a3bfc3937698b959a479f2f344da7 Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Tue, 2 Nov 2021 18:00:43 +0800 Subject: [PATCH 060/814] docker-compose modify --- docker-compose.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docker-compose.yaml b/docker-compose.yaml index 183f5a051..0af7dd85e 100644 --- a/docker-compose.yaml +++ b/docker-compose.yaml @@ -109,7 +109,7 @@ services: #fixme----build from docker hub------ open-im-server: - image: lyt1123/open_im_server + image: lyt1123/open_im_server:1.0.1 container_name: open-im-server volumes: - ./logs:/Open-IM-Server/logs From b219f8542b738ce43b554bcd72b891ecbf2f1b8d Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Wed, 3 Nov 2021 09:37:26 +0800 Subject: [PATCH 061/814] push fix --- src/push/jpush/push.go | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/push/jpush/push.go b/src/push/jpush/push.go index f1e7972f0..90b8e8602 100644 --- a/src/push/jpush/push.go +++ b/src/push/jpush/push.go @@ -42,6 +42,9 @@ func JGAccountListPush(accounts []string, jsonCustomContent string, platform str req.Header.Set("Authorization", common.GetAuthorization(config.Config.Push.Jpns.AppKey, config.Config.Push.Jpns.MasterSecret)) resp, err := client.Do(req) + if err != nil { + return nil, err + } defer resp.Body.Close() if err != nil { return nil, err From 2e14e0f767aa698ef69f003f20fa3185acf9127d Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Wed, 3 Nov 2021 14:13:41 +0800 Subject: [PATCH 062/814] jpush secret --- config/config.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/config/config.yaml b/config/config.yaml index a33797cc4..979e5056e 100644 --- a/config/config.yaml +++ b/config/config.yaml @@ -120,8 +120,8 @@ push: accessID: 111 secretKey: 111 jpns: - appKey: 2783339cee4de379cc798fe1 - masterSecret: 66e5f309e032c68cc668c28a + appKey: cf47465a368f24c659608e7e + masterSecret: 02204efe3f3832947a236ee5 pushUrl: "https://api.jpush.cn/v3/push" manager: appManagerUid: ["openIM123456","openIM654321"] From 51622e77d4a87ebab1ed0a44419ae9f29b46e573 Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Wed, 3 Nov 2021 15:59:08 +0800 Subject: [PATCH 063/814] push log add --- src/push/jpush/push.go | 6 ++++-- src/push/logic/init.go | 2 +- src/push/logic/push_to_client.go | 7 ++++++- 3 files changed, 11 insertions(+), 4 deletions(-) diff --git a/src/push/jpush/push.go b/src/push/jpush/push.go index 90b8e8602..3a214c16d 100644 --- a/src/push/jpush/push.go +++ b/src/push/jpush/push.go @@ -6,13 +6,14 @@ import ( "Open_IM/src/push/jpush/requestBody" "bytes" "encoding/json" + "io/ioutil" "net/http" ) type JPushResp struct { } -func JGAccountListPush(accounts []string, jsonCustomContent string, platform string) (*http.Response, error) { +func JGAccountListPush(accounts []string, jsonCustomContent string, platform string) ([]byte, error) { var pf requestBody.Platform _ = pf.SetPlatform(platform) @@ -46,8 +47,9 @@ func JGAccountListPush(accounts []string, jsonCustomContent string, platform str return nil, err } defer resp.Body.Close() + result, err := ioutil.ReadAll(resp.Body) if err != nil { return nil, err } - return resp, nil + return result, nil } diff --git a/src/push/logic/init.go b/src/push/logic/init.go index eb2515caf..5828f3227 100644 --- a/src/push/logic/init.go +++ b/src/push/logic/init.go @@ -24,7 +24,7 @@ func Init(rpcPort int) { log.NewPrivateLog(config.Config.ModuleName.PushName) rpcServer.Init(rpcPort) pushCh.Init() - pushTerminal = []int32{utils.IOSPlatformID, utils.AndroidPlatformID} + pushTerminal = []int32{utils.AndroidPlatformID} } func init() { producer = kafka.NewKafkaProducer(config.Config.Kafka.Ws2mschat.Addr, config.Config.Kafka.Ws2mschat.Topic) diff --git a/src/push/logic/push_to_client.go b/src/push/logic/push_to_client.go index 09c4c36e8..b535dd11a 100644 --- a/src/push/logic/push_to_client.go +++ b/src/push/logic/push_to_client.go @@ -68,7 +68,12 @@ func MsgToUser(sendPbData *pbRelay.MsgToUserReq, OfflineInfo, Options string) { } bCustomContent, _ := json.Marshal(customContent) jsonCustomContent := string(bCustomContent) - push.JGAccountListPush(UIDList, jsonCustomContent, utils.PlatformIDToName(t)) + pushResult, err := push.JGAccountListPush(UIDList, jsonCustomContent, utils.PlatformIDToName(t)) + if err != nil { + log.NewError(sendPbData.OperationID, "offline push error", sendPbData.String(), err.Error(), t) + } else { + log.NewDebug(sendPbData.OperationID, "offline push return result is ", string(pushResult), sendPbData, t) + } } } From 62a6195a4f3365a110b7f5da04aeec7499b88eab Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Wed, 3 Nov 2021 16:10:24 +0800 Subject: [PATCH 064/814] push log add --- src/push/logic/init.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/push/logic/init.go b/src/push/logic/init.go index 5828f3227..eb2515caf 100644 --- a/src/push/logic/init.go +++ b/src/push/logic/init.go @@ -24,7 +24,7 @@ func Init(rpcPort int) { log.NewPrivateLog(config.Config.ModuleName.PushName) rpcServer.Init(rpcPort) pushCh.Init() - pushTerminal = []int32{utils.AndroidPlatformID} + pushTerminal = []int32{utils.IOSPlatformID, utils.AndroidPlatformID} } func init() { producer = kafka.NewKafkaProducer(config.Config.Kafka.Ws2mschat.Addr, config.Config.Kafka.Ws2mschat.Topic) From 4215d65aa731d6c30be57c24f29766164aa0d271 Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Wed, 3 Nov 2021 17:51:53 +0800 Subject: [PATCH 065/814] compose commit --- docker-compose.yaml | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/docker-compose.yaml b/docker-compose.yaml index 0af7dd85e..a9fa9a1c9 100644 --- a/docker-compose.yaml +++ b/docker-compose.yaml @@ -5,7 +5,7 @@ services: mysql: image: mysql:5.7 ports: - - 33306:33306 + - 3306:3306 container_name: mysql volumes: - ./components/mysql/data:/var/lib/mysql @@ -17,7 +17,7 @@ services: mongodb: image: mongo ports: - - 37017:37017 + - 27017:27017 container_name: mongo volumes: - ./components/mongodb/data:/data/db @@ -28,7 +28,7 @@ services: redis: image: redis ports: - - 36379:36379 + - 6379:6379 container_name: redis volumes: - ./components/redis/data:/data @@ -45,7 +45,7 @@ services: zookeeper: image: wurstmeister/zookeeper ports: - - 32181:32181 + - 2181:2181 container_name: zookeeper volumes: - /etc/localtime:/etc/localtime @@ -61,9 +61,9 @@ services: environment: TZ: Asia/Shanghai KAFKA_BROKER_ID: 0 - KAFKA_ZOOKEEPER_CONNECT: 127.0.0.1:32181 - KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://127.0.0.1:39092 - KAFKA_LISTENERS: PLAINTEXT://0.0.0.0:39092 + KAFKA_ZOOKEEPER_CONNECT: 127.0.0.1:2181 + KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://127.0.0.1:9092 + KAFKA_LISTENERS: PLAINTEXT://0.0.0.0:9092 network_mode: "host" depends_on: - zookeeper @@ -71,8 +71,8 @@ services: etcd: image: quay.io/coreos/etcd ports: - - 32379:32379 - - 32380:32380 + - 2379:2379 + - 2380:2380 container_name: etcd volumes: - /etc/timezone:/etc/timezone @@ -80,7 +80,7 @@ services: environment: ETCDCTL_API: 3 restart: always - command: /usr/local/bin/etcd --name etcd0 --data-dir /etcd-data --listen-client-urls http://0.0.0.0:32379 --advertise-client-urls http://0.0.0.0:32379 --listen-peer-urls http://0.0.0.0:32380 --initial-advertise-peer-urls http://0.0.0.0:32380 --initial-cluster etcd0=http://0.0.0.0:32380 --initial-cluster-token tkn --initial-cluster-state new + 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 #fixme-----build from dockerfile--------- @@ -109,7 +109,7 @@ services: #fixme----build from docker hub------ open-im-server: - image: lyt1123/open_im_server:1.0.1 + image: lyt1123/open_im_server container_name: open-im-server volumes: - ./logs:/Open-IM-Server/logs From 7dbaa1b8c15bba033875015c1c9b93732e221074 Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Wed, 3 Nov 2021 17:54:31 +0800 Subject: [PATCH 066/814] compose commit --- config/config.yaml | 16 ++++++++-------- script/path_info.cfg | 2 +- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/config/config.yaml b/config/config.yaml index 979e5056e..b5f947c87 100644 --- a/config/config.yaml +++ b/config/config.yaml @@ -5,10 +5,10 @@ serverversion: 1.0.0 #---------------Infrastructure configuration---------------------# etcd: etcdSchema: openIM - etcdAddr: [ 127.0.0.1:32379 ] + etcdAddr: [ 127.0.0.1:2379 ] mysql: - dbMysqlAddress: [ 127.0.0.1:33306 ] + dbMysqlAddress: [ 127.0.0.1:3306 ] dbMysqlUserName: root dbMysqlPassword: openIM dbMysqlDatabaseName: openIM @@ -19,7 +19,7 @@ mysql: dbMaxLifeTime: 120 mongo: - dbAddress: [ 127.0.0.1:37017 ] + dbAddress: [ 127.0.0.1:27017 ] dbDirect: false dbTimeout: 10 dbDatabase: openIM @@ -30,7 +30,7 @@ mongo: dbRetainChatRecords: 7 redis: - dbAddress: 127.0.0.1:36379 + dbAddress: 127.0.0.1:6379 dbMaxIdle: 128 dbMaxActive: 0 dbIdleTimeout: 120 @@ -38,10 +38,10 @@ redis: kafka: ws2mschat: - addr: [ 127.0.0.1:39092 ] + addr: [ 127.0.0.1:9092 ] topic: "ws2ms_chat" ms2pschat: - addr: [ 127.0.0.1:39092 ] + addr: [ 127.0.0.1:9092 ] topic: "ms2ps_chat" consumergroupid: msgToMongo: mongo @@ -74,11 +74,11 @@ credential: rpcport: openImUserPort: [ 10100 ] openImFriendPort: [ 10200 ] - openImOfflineMessagePort: [ 10300 ] + openImOfflineMessagePort: [ 10300,10301,10302,10303 ] openImOnlineRelayPort: [ 10400 ] openImGroupPort: [ 10500 ] openImAuthPort: [ 10600 ] - openImPushPort: [ 10700 ] + openImPushPort: [ 10700,10701,10702,10703 ] rpcregistername: diff --git a/script/path_info.cfg b/script/path_info.cfg index f67e017c2..0eb74fce2 100644 --- a/script/path_info.cfg +++ b/script/path_info.cfg @@ -16,7 +16,7 @@ push_source_root="../src/push/" msg_transfer_name="open_im_msg_transfer" msg_transfer_binary_root="../bin/" msg_transfer_source_root="../src/msg_transfer/" -msg_transfer_service_num=2 +msg_transfer_service_num=4 sdk_server_name="open_im_sdk_server" From 52e15fc9d45d9f836c433b87e81606067939032a Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Wed, 3 Nov 2021 20:03:43 +0800 Subject: [PATCH 067/814] push modify --- src/msg_gateway/gate/rpc_server.go | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/src/msg_gateway/gate/rpc_server.go b/src/msg_gateway/gate/rpc_server.go index a2852092e..dd4e8fa01 100644 --- a/src/msg_gateway/gate/rpc_server.go +++ b/src/msg_gateway/gate/rpc_server.go @@ -83,7 +83,7 @@ func (r *RPCServer) MsgToUser(_ context.Context, in *pbRelay.MsgToUserReq) (*pbR enc := gob.NewEncoder(&replyBytes) err := enc.Encode(mReply) if err != nil { - fmt.Println(err) + log.NewError(in.OperationID, "data encode err", err.Error()) } switch in.GetSessionType() { case constant.SingleChatType: @@ -92,10 +92,11 @@ func (r *RPCServer) MsgToUser(_ context.Context, in *pbRelay.MsgToUserReq) (*pbR RecvID = strings.Split(in.GetRecvID(), " ")[0] } var tag bool + var UIDAndPID []string userIDList := genUidPlatformArray(RecvID) for _, v := range userIDList { + UIDAndPID = strings.Split(v, " ") if conn := ws.getUserConn(v); conn != nil { - UIDAndPID := strings.Split(v, " ") tag = true resultCode := sendMsgToUser(conn, replyBytes.Bytes(), in, UIDAndPID[1], UIDAndPID[0]) temp := &pbRelay.SingleMsgToUser{ @@ -104,6 +105,13 @@ func (r *RPCServer) MsgToUser(_ context.Context, in *pbRelay.MsgToUserReq) (*pbR RecvPlatFormID: utils.PlatformNameToID(UIDAndPID[1]), } resp = append(resp, temp) + } else { + temp := &pbRelay.SingleMsgToUser{ + ResultCode: -1, + RecvID: UIDAndPID[0], + RecvPlatFormID: utils.PlatformNameToID(UIDAndPID[1]), + } + resp = append(resp, temp) } } if !tag { From 4b4dce80cfb5328da732237333b37a9e52f9294c Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Wed, 3 Nov 2021 21:16:46 +0800 Subject: [PATCH 068/814] push modify --- src/push/logic/push_to_client.go | 34 +++++++++++++++----------------- 1 file changed, 16 insertions(+), 18 deletions(-) diff --git a/src/push/logic/push_to_client.go b/src/push/logic/push_to_client.go index b535dd11a..b424d6acb 100644 --- a/src/push/logic/push_to_client.go +++ b/src/push/logic/push_to_client.go @@ -14,11 +14,9 @@ import ( pbChat "Open_IM/src/proto/chat" pbGroup "Open_IM/src/proto/group" pbRelay "Open_IM/src/proto/relay" - push "Open_IM/src/push/jpush" rpcChat "Open_IM/src/rpc/chat/chat" "Open_IM/src/utils" "context" - "encoding/json" "strings" ) @@ -58,22 +56,22 @@ func MsgToUser(sendPbData *pbRelay.MsgToUserReq, OfflineInfo, Options string) { for _, t := range pushTerminal { if v.RecvPlatFormID == t { //Use offline push messaging - var UIDList []string - UIDList = append(UIDList, sendPbData.RecvID) - customContent := EChatContent{ - SessionType: int(sendPbData.SessionType), - From: sendPbData.SendID, - To: sendPbData.RecvID, - Seq: sendPbData.RecvSeq, - } - bCustomContent, _ := json.Marshal(customContent) - jsonCustomContent := string(bCustomContent) - pushResult, err := push.JGAccountListPush(UIDList, jsonCustomContent, utils.PlatformIDToName(t)) - if err != nil { - log.NewError(sendPbData.OperationID, "offline push error", sendPbData.String(), err.Error(), t) - } else { - log.NewDebug(sendPbData.OperationID, "offline push return result is ", string(pushResult), sendPbData, t) - } + //var UIDList []string + //UIDList = append(UIDList, sendPbData.RecvID) + //customContent := EChatContent{ + // SessionType: int(sendPbData.SessionType), + // From: sendPbData.SendID, + // To: sendPbData.RecvID, + // Seq: sendPbData.RecvSeq, + //} + //bCustomContent, _ := json.Marshal(customContent) + //jsonCustomContent := string(bCustomContent) + //pushResult, err := push.JGAccountListPush(UIDList, jsonCustomContent, utils.PlatformIDToName(t)) + //if err != nil { + // log.NewError(sendPbData.OperationID, "offline push error", sendPbData.String(), err.Error(), t) + //} else { + // log.NewDebug(sendPbData.OperationID, "offline push return result is ", string(pushResult), sendPbData, t) + //} } } From 817d2b11a55f98a807dea2948f6272df81b76fdb Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Thu, 4 Nov 2021 10:19:33 +0800 Subject: [PATCH 069/814] push modify --- src/api/chat/send_msg.go | 2 +- src/common/constant/constant.go | 17 ++++----- src/push/logic/push_to_client.go | 59 +++++++++++++++++--------------- 3 files changed, 42 insertions(+), 36 deletions(-) diff --git a/src/api/chat/send_msg.go b/src/api/chat/send_msg.go index ede81abdd..0ba888f29 100644 --- a/src/api/chat/send_msg.go +++ b/src/api/chat/send_msg.go @@ -67,7 +67,7 @@ func UserSendMsg(c *gin.Context) { token := c.Request.Header.Get("token") - log.InfoByKv("Ws call success to sendMsgReq", params.OperationID, "Parameters", params) + log.InfoByKv("api call success to sendMsgReq", params.OperationID, "Parameters", params) pbData := newUserSendMsgReq(token, ¶ms) log.Info("", "", "api UserSendMsg call start..., [data: %s]", pbData.String()) diff --git a/src/common/constant/constant.go b/src/common/constant/constant.go index 2d3d0d799..6f176cd51 100644 --- a/src/common/constant/constant.go +++ b/src/common/constant/constant.go @@ -26,15 +26,16 @@ const ( ///ContentType //UserRelated - Text = 101 - Picture = 102 - Voice = 103 - Video = 104 - File = 105 - AtText = 106 - Custom = 110 + Text = 101 + Picture = 102 + Voice = 103 + Video = 104 + File = 105 + AtText = 106 + Custom = 110 + HasReadReceipt = 112 + Typing = 113 - SyncSenderMsg = 108 //SysRelated AcceptFriendApplicationTip = 201 AddFriendTip = 202 diff --git a/src/push/logic/push_to_client.go b/src/push/logic/push_to_client.go index b424d6acb..dc28b2b21 100644 --- a/src/push/logic/push_to_client.go +++ b/src/push/logic/push_to_client.go @@ -14,13 +14,15 @@ import ( pbChat "Open_IM/src/proto/chat" pbGroup "Open_IM/src/proto/group" pbRelay "Open_IM/src/proto/relay" + push "Open_IM/src/push/jpush" rpcChat "Open_IM/src/rpc/chat/chat" "Open_IM/src/utils" "context" + "encoding/json" "strings" ) -type EChatContent struct { +type OpenIMContent struct { SessionType int `json:"chatType"` From string `json:"from"` To string `json:"to"` @@ -47,37 +49,40 @@ func MsgToUser(sendPbData *pbRelay.MsgToUserReq, OfflineInfo, Options string) { } } log.InfoByKv("push_result", sendPbData.OperationID, "result", wsResult, "sendData", sendPbData) - if isOfflinePush { - for _, v := range wsResult { - if v.ResultCode == 0 { - continue - } - //supported terminal - for _, t := range pushTerminal { - if v.RecvPlatFormID == t { - //Use offline push messaging - //var UIDList []string - //UIDList = append(UIDList, sendPbData.RecvID) - //customContent := EChatContent{ - // SessionType: int(sendPbData.SessionType), - // From: sendPbData.SendID, - // To: sendPbData.RecvID, - // Seq: sendPbData.RecvSeq, - //} - //bCustomContent, _ := json.Marshal(customContent) - //jsonCustomContent := string(bCustomContent) - //pushResult, err := push.JGAccountListPush(UIDList, jsonCustomContent, utils.PlatformIDToName(t)) - //if err != nil { - // log.NewError(sendPbData.OperationID, "offline push error", sendPbData.String(), err.Error(), t) - //} else { - // log.NewDebug(sendPbData.OperationID, "offline push return result is ", string(pushResult), sendPbData, t) - //} + if sendPbData.ContentType != constant.Typing && sendPbData.ContentType != constant.HasReadReceipt { + if isOfflinePush { + for _, v := range wsResult { + if v.ResultCode == 0 { + continue + } + //supported terminal + for _, t := range pushTerminal { + if v.RecvPlatFormID == t { + //Use offline push messaging + var UIDList []string + UIDList = append(UIDList, sendPbData.RecvID) + customContent := OpenIMContent{ + SessionType: int(sendPbData.SessionType), + From: sendPbData.SendID, + To: sendPbData.RecvID, + Seq: sendPbData.RecvSeq, + } + bCustomContent, _ := json.Marshal(customContent) + jsonCustomContent := string(bCustomContent) + pushResult, err := push.JGAccountListPush(UIDList, jsonCustomContent, utils.PlatformIDToName(t)) + if err != nil { + log.NewError(sendPbData.OperationID, "offline push error", sendPbData.String(), err.Error(), t) + } else { + log.NewDebug(sendPbData.OperationID, "offline push return result is ", string(pushResult), sendPbData, t) + } + } } } - } + } } + } func SendMsgByWS(m *pbChat.WSToMsgSvrChatMsg) { From 2440575093d625d73627f665d4ec71aa90f2ca79 Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Thu, 4 Nov 2021 16:52:48 +0800 Subject: [PATCH 070/814] push content modify --- src/common/constant/constant.go | 14 +++++++++---- src/common/db/mongoModel.go | 13 ++---------- src/msg_gateway/gate/rpc_server.go | 2 +- src/push/jpush/push.go | 6 +++--- src/push/logic/push_to_client.go | 33 +++++++++++++++++++++++++++--- src/utils/strings.go | 11 ++++++++++ 6 files changed, 57 insertions(+), 22 deletions(-) diff --git a/src/common/constant/constant.go b/src/common/constant/constant.go index 6f176cd51..8a1aa4029 100644 --- a/src/common/constant/constant.go +++ b/src/common/constant/constant.go @@ -35,6 +35,8 @@ const ( Custom = 110 HasReadReceipt = 112 Typing = 113 + Common = 200 + GroupMsg = 201 //SysRelated AcceptFriendApplicationTip = 201 @@ -67,10 +69,14 @@ const ( ) var ContentType2PushContent = map[int64]string{ - Picture: "[picture]", - Voice: "[voice]", - Video: "[video]", - File: "[file]", + Picture: "[图片]", + Voice: "[语音]", + Video: "[视频]", + File: "[文件]", + Text: "你收到了一条文本消息", + AtText: "[有人@你]", + GroupMsg: "你收到一条群聊消息", + Common: "你收到一条新消息", } const FriendAcceptTip = "You have successfully become friends, so start chatting" diff --git a/src/common/db/mongoModel.go b/src/common/db/mongoModel.go index 4bc810e16..d7bcd45e6 100644 --- a/src/common/db/mongoModel.go +++ b/src/common/db/mongoModel.go @@ -5,6 +5,7 @@ import ( "Open_IM/src/common/constant" "Open_IM/src/common/log" pbMsg "Open_IM/src/proto/chat" + "Open_IM/src/utils" "errors" "github.com/golang/protobuf/proto" "gopkg.in/mgo.v2/bson" @@ -124,7 +125,7 @@ func (d *DataBases) GetMsgBySeqList(uid string, seqList []int64) (SingleMsg []*p log.NewError("", "not find seqUid", seqUid, value, uid, seqList) return nil, nil, MaxSeq, MinSeq, err } - if isContainInt64(pChat.RecvSeq, value) { + if utils.IsContainInt64(pChat.RecvSeq, value) { temp.SendID = pChat.SendID temp.RecvID = pChat.RecvID temp.MsgFrom = pChat.MsgFrom @@ -310,17 +311,7 @@ func (d *DataBases) DelGroupMember(groupID, uid string) error { return nil } -func isContainInt64(target int64, List []int64) bool { - for _, element := range List { - - if target == element { - return true - } - } - return false - -} func getCurrentTimestampByMill() int64 { return time.Now().UnixNano() / 1e6 } diff --git a/src/msg_gateway/gate/rpc_server.go b/src/msg_gateway/gate/rpc_server.go index dd4e8fa01..89f60507e 100644 --- a/src/msg_gateway/gate/rpc_server.go +++ b/src/msg_gateway/gate/rpc_server.go @@ -115,7 +115,7 @@ func (r *RPCServer) MsgToUser(_ context.Context, in *pbRelay.MsgToUserReq) (*pbR } } if !tag { - log.NewError(in.OperationID, "push err ,ws conn not in map", in.String()) + log.NewError(in.OperationID, "push err ,no matched ws conn not in map", in.String()) } return &pbRelay.MsgToUserResp{ Resp: resp, diff --git a/src/push/jpush/push.go b/src/push/jpush/push.go index 3a214c16d..84140da89 100644 --- a/src/push/jpush/push.go +++ b/src/push/jpush/push.go @@ -13,16 +13,16 @@ import ( type JPushResp struct { } -func JGAccountListPush(accounts []string, jsonCustomContent string, platform string) ([]byte, error) { +func JGAccountListPush(accounts []string, content, detailContent, platform string) ([]byte, error) { var pf requestBody.Platform _ = pf.SetPlatform(platform) var au requestBody.Audience au.SetAlias(accounts) var no requestBody.Notification - no.SetAlert(jsonCustomContent) + no.SetAlert(content) var me requestBody.Message - me.SetMsgContent(jsonCustomContent) + me.SetMsgContent(detailContent) var po requestBody.PushObj po.SetPlatform(&pf) po.SetAudience(&au) diff --git a/src/push/logic/push_to_client.go b/src/push/logic/push_to_client.go index dc28b2b21..5da019c8d 100644 --- a/src/push/logic/push_to_client.go +++ b/src/push/logic/push_to_client.go @@ -23,11 +23,16 @@ import ( ) type OpenIMContent struct { - SessionType int `json:"chatType"` + SessionType int `json:"sessionType"` From string `json:"from"` To string `json:"to"` Seq int64 `json:"seq"` } +type AtContent struct { + Text string `json:"text"` + AtUserList []string `json:"atUserList"` + IsAtSelf bool `json:"isAtSelf"` +} func MsgToUser(sendPbData *pbRelay.MsgToUserReq, OfflineInfo, Options string) { var wsResult []*pbRelay.SingleMsgToUser @@ -60,7 +65,7 @@ func MsgToUser(sendPbData *pbRelay.MsgToUserReq, OfflineInfo, Options string) { if v.RecvPlatFormID == t { //Use offline push messaging var UIDList []string - UIDList = append(UIDList, sendPbData.RecvID) + UIDList = append(UIDList, v.RecvID) customContent := OpenIMContent{ SessionType: int(sendPbData.SessionType), From: sendPbData.SendID, @@ -69,7 +74,29 @@ func MsgToUser(sendPbData *pbRelay.MsgToUserReq, OfflineInfo, Options string) { } bCustomContent, _ := json.Marshal(customContent) jsonCustomContent := string(bCustomContent) - pushResult, err := push.JGAccountListPush(UIDList, jsonCustomContent, utils.PlatformIDToName(t)) + var content string + switch sendPbData.ContentType { + case constant.Text: + content = constant.ContentType2PushContent[constant.Text] + case constant.Picture: + content = constant.ContentType2PushContent[constant.Picture] + case constant.Voice: + content = constant.ContentType2PushContent[constant.Voice] + case constant.Video: + content = constant.ContentType2PushContent[constant.Video] + case constant.File: + content = constant.ContentType2PushContent[constant.File] + case constant.AtText: + a := AtContent{} + _ = utils.JsonStringToStruct(sendPbData.Content, &a) + if utils.IsContain(v.RecvID, a.AtUserList) { + content = constant.ContentType2PushContent[constant.AtText] + constant.ContentType2PushContent[constant.Common] + } else { + content = constant.ContentType2PushContent[constant.GroupMsg] + } + default: + } + pushResult, err := push.JGAccountListPush(UIDList, content, jsonCustomContent, utils.PlatformIDToName(t)) if err != nil { log.NewError(sendPbData.OperationID, "offline push error", sendPbData.String(), err.Error(), t) } else { diff --git a/src/utils/strings.go b/src/utils/strings.go index c6d676dff..69141a6df 100644 --- a/src/utils/strings.go +++ b/src/utils/strings.go @@ -36,6 +36,17 @@ func IsContain(target string, List []string) bool { } return false +} +func IsContainInt64(target int64, List []int64) bool { + + for _, element := range List { + + if target == element { + return true + } + } + return false + } func InterfaceArrayToStringArray(data []interface{}) (i []string) { for _, param := range data { From cdf928d64e4a228164b176eebec109556dfcfa09 Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Thu, 4 Nov 2021 17:27:12 +0800 Subject: [PATCH 071/814] push content modify --- src/common/db/mongoModel.go | 14 ++++++++++++-- src/utils/strings.go | 10 ---------- 2 files changed, 12 insertions(+), 12 deletions(-) diff --git a/src/common/db/mongoModel.go b/src/common/db/mongoModel.go index d7bcd45e6..5742042bf 100644 --- a/src/common/db/mongoModel.go +++ b/src/common/db/mongoModel.go @@ -5,7 +5,6 @@ import ( "Open_IM/src/common/constant" "Open_IM/src/common/log" pbMsg "Open_IM/src/proto/chat" - "Open_IM/src/utils" "errors" "github.com/golang/protobuf/proto" "gopkg.in/mgo.v2/bson" @@ -125,7 +124,7 @@ func (d *DataBases) GetMsgBySeqList(uid string, seqList []int64) (SingleMsg []*p log.NewError("", "not find seqUid", seqUid, value, uid, seqList) return nil, nil, MaxSeq, MinSeq, err } - if utils.IsContainInt64(pChat.RecvSeq, value) { + if isContainInt64(pChat.RecvSeq, value) { temp.SendID = pChat.SendID temp.RecvID = pChat.RecvID temp.MsgFrom = pChat.MsgFrom @@ -319,3 +318,14 @@ func getSeqUid(uid string, seq int64) string { seqSuffix := seq / singleGocMsgNum return uid + ":" + strconv.FormatInt(seqSuffix, 10) } +func isContainInt64(target int64, List []int64) bool { + + for _, element := range List { + + if target == element { + return true + } + } + return false + +} diff --git a/src/utils/strings.go b/src/utils/strings.go index 69141a6df..39c797859 100644 --- a/src/utils/strings.go +++ b/src/utils/strings.go @@ -37,17 +37,7 @@ func IsContain(target string, List []string) bool { return false } -func IsContainInt64(target int64, List []int64) bool { - for _, element := range List { - - if target == element { - return true - } - } - return false - -} func InterfaceArrayToStringArray(data []interface{}) (i []string) { for _, param := range data { i = append(i, param.(string)) From 515d7bb3184ceeab4b877b2c635bbb68688e2588 Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Thu, 4 Nov 2021 18:07:39 +0800 Subject: [PATCH 072/814] config change --- config/config.yaml | 4 ++-- script/path_info.cfg | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/config/config.yaml b/config/config.yaml index b5f947c87..d5f27bae2 100644 --- a/config/config.yaml +++ b/config/config.yaml @@ -74,11 +74,11 @@ credential: rpcport: openImUserPort: [ 10100 ] openImFriendPort: [ 10200 ] - openImOfflineMessagePort: [ 10300,10301,10302,10303 ] + openImOfflineMessagePort: [ 10300] openImOnlineRelayPort: [ 10400 ] openImGroupPort: [ 10500 ] openImAuthPort: [ 10600 ] - openImPushPort: [ 10700,10701,10702,10703 ] + openImPushPort: [ 10700 ] rpcregistername: diff --git a/script/path_info.cfg b/script/path_info.cfg index 0eb74fce2..f67e017c2 100644 --- a/script/path_info.cfg +++ b/script/path_info.cfg @@ -16,7 +16,7 @@ push_source_root="../src/push/" msg_transfer_name="open_im_msg_transfer" msg_transfer_binary_root="../bin/" msg_transfer_source_root="../src/msg_transfer/" -msg_transfer_service_num=4 +msg_transfer_service_num=2 sdk_server_name="open_im_sdk_server" From c97e39fc09a2e8daeefc1ad23cf1d6674c16aea2 Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Thu, 4 Nov 2021 21:01:25 +0800 Subject: [PATCH 073/814] user change --- src/common/db/mysql_model/im_mysql_model/user_model.go | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/common/db/mysql_model/im_mysql_model/user_model.go b/src/common/db/mysql_model/im_mysql_model/user_model.go index 641eb99bc..ddefc8554 100644 --- a/src/common/db/mysql_model/im_mysql_model/user_model.go +++ b/src/common/db/mysql_model/im_mysql_model/user_model.go @@ -5,6 +5,7 @@ import ( "Open_IM/src/common/db" pbAuth "Open_IM/src/proto/auth" "Open_IM/src/utils" + "fmt" _ "github.com/jinzhu/gorm/dialects/mysql" "time" ) @@ -18,7 +19,7 @@ func init() { pb.Name = "AppManager" + utils.IntToString(k+1) err := UserRegister(&pb) if err != nil { - panic(err) + fmt.Println("AppManager insert error", err.Error()) } } } From 46deb5a0999e8a1153b90575c558879458378169 Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Thu, 11 Nov 2021 19:04:35 +0800 Subject: [PATCH 074/814] merge newest branch --- internal/api/friend/add_friend.go | 2 -- pkg/common/db/model.go | 1 + 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/internal/api/friend/add_friend.go b/internal/api/friend/add_friend.go index e6e4632a2..d949df083 100644 --- a/internal/api/friend/add_friend.go +++ b/internal/api/friend/add_friend.go @@ -41,9 +41,7 @@ func ImportFriend(c *gin.Context) { OwnerUid: params.OwnerUid, Token: c.Request.Header.Get("token"), } - log.ErrorByKv("ImportFriend Test start", params.OperationID) RpcResp, err := client.ImportFriend(context.Background(), req) - //log.ErrorByKv("ImportFriend Test end", params.OperationID, "resp", RpcResp, "err", err.Error()) if err != nil { log.Error(req.Token, req.OperationID, "err=%s,ImportFriend failed", err) c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": "cImportFriend failed" + err.Error()}) diff --git a/pkg/common/db/model.go b/pkg/common/db/model.go index 1c09a7d17..494f8ffaf 100644 --- a/pkg/common/db/model.go +++ b/pkg/common/db/model.go @@ -22,6 +22,7 @@ func key(dbAddress, dbName string) string { func init() { //mysql init initMysqlDB() + // mongo init mgoDailInfo := &mgo.DialInfo{ Addrs: config.Config.Mongo.DBAddress, Direct: config.Config.Mongo.DBDirect, From 4b13874d446d04a44ac03916a0b280f31b7ee99a Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Thu, 11 Nov 2021 20:14:59 +0800 Subject: [PATCH 075/814] new server version --- config/config.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config/config.yaml b/config/config.yaml index 9f7969466..e65f23926 100644 --- a/config/config.yaml +++ b/config/config.yaml @@ -1,7 +1,7 @@ # The class cannot be named by Pascal or camel case. # If it is not used, the corresponding structure will not be set, # and it will not be read naturally. -serverversion: 1.0.2 +serverversion: 1.0.3 #---------------Infrastructure configuration---------------------# etcd: etcdSchema: openIM From 85a75be30e5ffb001c0cb6519ead7e558ed2b8e3 Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Fri, 12 Nov 2021 16:09:21 +0800 Subject: [PATCH 076/814] notification modify --- internal/push/jpush/push.go | 1 + internal/push/jpush/requestBody/notification.go | 7 ++++++- 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/internal/push/jpush/push.go b/internal/push/jpush/push.go index b2cf95d9a..2fe39c27f 100644 --- a/internal/push/jpush/push.go +++ b/internal/push/jpush/push.go @@ -21,6 +21,7 @@ func JGAccountListPush(accounts []string, content, detailContent, platform strin au.SetAlias(accounts) var no requestBody.Notification no.SetAlert(content) + no.SetAndroidIntent() var me requestBody.Message me.SetMsgContent(detailContent) var po requestBody.PushObj diff --git a/internal/push/jpush/requestBody/notification.go b/internal/push/jpush/requestBody/notification.go index 192803353..bbb4bb927 100644 --- a/internal/push/jpush/requestBody/notification.go +++ b/internal/push/jpush/requestBody/notification.go @@ -1,5 +1,7 @@ package requestBody +const INTENT_URL = "intent:#Intent;component=io.openim.app.enterprisechat/io.openim.app.enterprisechat.MainActivity;end" + type Notification struct { Alert string `json:"alert,omitempty"` Android *Android `json:"android,omitempty"` @@ -7,11 +9,14 @@ type Notification struct { } type Android struct { + Intent string `json:"intent,omitempty"` } - type Ios struct { } func (n *Notification) SetAlert(alert string) { n.Alert = alert } +func (n *Notification) SetAndroidIntent() { + n.Android.Intent = INTENT_URL +} From 8f483b498b3c3782926d27cba6b4816ed4c96fee Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Fri, 12 Nov 2021 17:25:17 +0800 Subject: [PATCH 077/814] push modify --- config/config.yaml | 1 + internal/push/jpush/requestBody/notification.go | 4 ++-- pkg/common/config/config.go | 1 + 3 files changed, 4 insertions(+), 2 deletions(-) diff --git a/config/config.yaml b/config/config.yaml index e65f23926..c4b0e49fc 100644 --- a/config/config.yaml +++ b/config/config.yaml @@ -123,6 +123,7 @@ push: appKey: cf47465a368f24c659608e7e masterSecret: 02204efe3f3832947a236ee5 pushUrl: "https://api.jpush.cn/v3/push" + pushIntent: "intent:#Intent;component=io.openim.app.enterprisechat/io.openim.app.enterprisechat.MainActivity;end" manager: appManagerUid: ["openIM123456","openIM654321"] secrets: ["openIM1","openIM2"] diff --git a/internal/push/jpush/requestBody/notification.go b/internal/push/jpush/requestBody/notification.go index bbb4bb927..09aae6020 100644 --- a/internal/push/jpush/requestBody/notification.go +++ b/internal/push/jpush/requestBody/notification.go @@ -1,6 +1,6 @@ package requestBody -const INTENT_URL = "intent:#Intent;component=io.openim.app.enterprisechat/io.openim.app.enterprisechat.MainActivity;end" +import "Open_IM/pkg/common/config" type Notification struct { Alert string `json:"alert,omitempty"` @@ -18,5 +18,5 @@ func (n *Notification) SetAlert(alert string) { n.Alert = alert } func (n *Notification) SetAndroidIntent() { - n.Android.Intent = INTENT_URL + n.Android.Intent = config.Config.Push.Jpns.PushIntent } diff --git a/pkg/common/config/config.go b/pkg/common/config/config.go index 6f5723591..e5d6996a2 100644 --- a/pkg/common/config/config.go +++ b/pkg/common/config/config.go @@ -122,6 +122,7 @@ type config struct { AppKey string `yaml:"appKey"` MasterSecret string `yaml:"masterSecret"` PushUrl string `yaml:"pushUrl"` + PushIntent string `yaml:"pushIntent"` } } Manager struct { From e88f41323f92bca833c6611515846a4e7bc79137 Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Fri, 12 Nov 2021 17:59:37 +0800 Subject: [PATCH 078/814] push modify --- internal/push/jpush/requestBody/notification.go | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/internal/push/jpush/requestBody/notification.go b/internal/push/jpush/requestBody/notification.go index 09aae6020..2f386d3d3 100644 --- a/internal/push/jpush/requestBody/notification.go +++ b/internal/push/jpush/requestBody/notification.go @@ -9,7 +9,9 @@ type Notification struct { } type Android struct { - Intent string `json:"intent,omitempty"` + Intent struct { + URL string `json:"url,omitempty"` + } `json:"intent,omitempty"` } type Ios struct { } @@ -18,5 +20,5 @@ func (n *Notification) SetAlert(alert string) { n.Alert = alert } func (n *Notification) SetAndroidIntent() { - n.Android.Intent = config.Config.Push.Jpns.PushIntent + n.Android.Intent.URL = config.Config.Push.Jpns.PushIntent } From d7f82196dce15f6ff05ca68aef60954e3500b2dc Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Fri, 12 Nov 2021 18:15:28 +0800 Subject: [PATCH 079/814] push modify --- internal/push/jpush/requestBody/notification.go | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/internal/push/jpush/requestBody/notification.go b/internal/push/jpush/requestBody/notification.go index 2f386d3d3..838621606 100644 --- a/internal/push/jpush/requestBody/notification.go +++ b/internal/push/jpush/requestBody/notification.go @@ -3,12 +3,13 @@ package requestBody import "Open_IM/pkg/common/config" type Notification struct { - Alert string `json:"alert,omitempty"` - Android *Android `json:"android,omitempty"` - IOS *Ios `json:"ios,omitempty"` + Alert string `json:"alert,omitempty"` + Android Android `json:"android,omitempty"` + IOS Ios `json:"ios,omitempty"` } type Android struct { + Alert string `json:"alert,omitempty"` Intent struct { URL string `json:"url,omitempty"` } `json:"intent,omitempty"` @@ -18,6 +19,7 @@ type Ios struct { func (n *Notification) SetAlert(alert string) { n.Alert = alert + n.Android.Alert = alert } func (n *Notification) SetAndroidIntent() { n.Android.Intent.URL = config.Config.Push.Jpns.PushIntent From f65e4aad639cd7a721a0c98b13965e72ce4a826e Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Fri, 12 Nov 2021 18:51:39 +0800 Subject: [PATCH 080/814] push modify --- internal/push/logic/push_to_client.go | 1 + 1 file changed, 1 insertion(+) diff --git a/internal/push/logic/push_to_client.go b/internal/push/logic/push_to_client.go index 8f5a004d9..9a8effee8 100644 --- a/internal/push/logic/push_to_client.go +++ b/internal/push/logic/push_to_client.go @@ -95,6 +95,7 @@ func MsgToUser(sendPbData *pbRelay.MsgToUserReq, OfflineInfo, Options string) { content = constant.ContentType2PushContent[constant.GroupMsg] } default: + content = constant.ContentType2PushContent[constant.Common] } pushResult, err := push.JGAccountListPush(UIDList, content, jsonCustomContent, utils.PlatformIDToName(t)) if err != nil { From 26f0234e3d8a3d2cfa5ca6eccab777257b6ffd1b Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Mon, 15 Nov 2021 10:18:59 +0800 Subject: [PATCH 081/814] config modify --- internal/rpc/friend/add_friend.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/internal/rpc/friend/add_friend.go b/internal/rpc/friend/add_friend.go index 615b05170..56639f90e 100644 --- a/internal/rpc/friend/add_friend.go +++ b/internal/rpc/friend/add_friend.go @@ -66,7 +66,7 @@ func (s *friendServer) ImportFriend(ctx context.Context, req *pbFriend.ImportFri } if !utils.IsContain(claims.UID, config.Config.Manager.AppManagerUid) { - log.Error(req.Token, req.OperationID, "not manager uid", claims.UID) + log.NewError(req.OperationID, "not manager uid", claims.UID) c.ErrorCode = config.ErrAddFriend.ErrCode c.ErrorMsg = "not authorized" return &pbFriend.ImportFriendResp{CommonResp: &c, FailedUidList: req.UidList}, nil From ea5e69e26d7eb8e3844c724795bb54487e29e205 Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Mon, 15 Nov 2021 10:22:20 +0800 Subject: [PATCH 082/814] log change --- internal/rpc/friend/add_friend.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/internal/rpc/friend/add_friend.go b/internal/rpc/friend/add_friend.go index 56639f90e..6bb22f0ef 100644 --- a/internal/rpc/friend/add_friend.go +++ b/internal/rpc/friend/add_friend.go @@ -59,7 +59,7 @@ func (s *friendServer) ImportFriend(ctx context.Context, req *pbFriend.ImportFri //Parse token, to find current user information claims, err := utils.ParseToken(req.Token) if err != nil { - log.Error(req.Token, req.OperationID, "err=%s,parse token failed", err.Error()) + log.NewError(req.OperationID, "parse token failed", err.Error()) c.ErrorCode = config.ErrAddFriend.ErrCode c.ErrorMsg = config.ErrParseToken.ErrMsg return &pbFriend.ImportFriendResp{CommonResp: &c, FailedUidList: req.UidList}, nil @@ -72,7 +72,7 @@ func (s *friendServer) ImportFriend(ctx context.Context, req *pbFriend.ImportFri return &pbFriend.ImportFriendResp{CommonResp: &c, FailedUidList: req.UidList}, nil } if _, err = im_mysql_model.FindUserByUID(req.OwnerUid); err != nil { - log.Error(req.Token, req.OperationID, "this user not exists,cant not add friend", req.OwnerUid) + log.NewError(req.OperationID, "this user not exists,cant not add friend", req.OwnerUid) c.ErrorCode = config.ErrAddFriend.ErrCode c.ErrorMsg = "this user not exists,cant not add friend" return &pbFriend.ImportFriendResp{CommonResp: &c, FailedUidList: req.UidList}, nil From 0daa840eaabd30a5c1de10f3174c7c6d32623d80 Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Mon, 15 Nov 2021 11:31:38 +0800 Subject: [PATCH 083/814] log change --- internal/api/friend/add_friend.go | 18 +++++++++--------- internal/rpc/friend/add_friend.go | 1 + 2 files changed, 10 insertions(+), 9 deletions(-) diff --git a/internal/api/friend/add_friend.go b/internal/api/friend/add_friend.go index d949df083..199498482 100644 --- a/internal/api/friend/add_friend.go +++ b/internal/api/friend/add_friend.go @@ -26,7 +26,7 @@ type paramsAddFriend struct { // func ImportFriend(c *gin.Context) { log.Info("", "", "ImportFriend init ....") - + log.NewDebug("", "api importFriend start") etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImFriendName) client := pbFriend.NewFriendClient(etcdConn) @@ -41,16 +41,15 @@ func ImportFriend(c *gin.Context) { OwnerUid: params.OwnerUid, Token: c.Request.Header.Get("token"), } + log.NewDebug(req.OperationID, "args is ", req.String()) RpcResp, err := client.ImportFriend(context.Background(), req) if err != nil { - log.Error(req.Token, req.OperationID, "err=%s,ImportFriend failed", err) + log.NewError(req.OperationID, "rpc importFriend failed", err.Error()) c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": "cImportFriend failed" + err.Error()}) return } - log.InfoByArgs("ImportFriend success,args=%s", RpcResp.String()) - resp := gin.H{"errCode": RpcResp.CommonResp.ErrorCode, "errMsg": RpcResp.CommonResp.ErrorMsg, "failedUidList": RpcResp.FailedUidList} - c.JSON(http.StatusOK, resp) - log.InfoByArgs("ImportFriend success return,get args=%s,return args=%s", req.String(), RpcResp.String()) + log.NewDebug(req.OperationID, "rpc importFriend success", RpcResp.CommonResp.ErrorMsg, RpcResp.CommonResp.ErrorCode, RpcResp.FailedUidList) + c.JSON(http.StatusOK, gin.H{"errCode": RpcResp.CommonResp.ErrorCode, "errMsg": RpcResp.CommonResp.ErrorMsg, "failedUidList": RpcResp.FailedUidList}) } func AddFriend(c *gin.Context) { @@ -78,7 +77,8 @@ func AddFriend(c *gin.Context) { return } log.InfoByArgs("call add friend rpc server success,args=%s", RpcResp.String()) - resp := gin.H{"errCode": RpcResp.ErrorCode, "errMsg": RpcResp.ErrorMsg} - c.JSON(http.StatusOK, resp) - log.InfoByArgs("api add friend success return,get args=%s,return args=%s", req.String(), RpcResp.String()) + c.JSON(http.StatusOK, gin.H{ + "errCode": RpcResp.ErrorCode, + "errMsg": RpcResp.ErrorMsg, + }) } diff --git a/internal/rpc/friend/add_friend.go b/internal/rpc/friend/add_friend.go index 6bb22f0ef..f4581f221 100644 --- a/internal/rpc/friend/add_friend.go +++ b/internal/rpc/friend/add_friend.go @@ -127,6 +127,7 @@ func (s *friendServer) ImportFriend(ctx context.Context, req *pbFriend.ImportFri } } + log.NewDebug(req.OperationID, "rpc come end", resp.CommonResp.ErrorCode, resp.CommonResp.ErrorMsg, resp.FailedUidList) return &resp, nil } From bcc0cd33f164874070bfb060f0d6a8e5f2fe78ae Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Mon, 15 Nov 2021 11:44:04 +0800 Subject: [PATCH 084/814] log change --- internal/api/friend/add_friend.go | 2 +- internal/rpc/friend/add_friend.go | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/internal/api/friend/add_friend.go b/internal/api/friend/add_friend.go index 199498482..81faa29fb 100644 --- a/internal/api/friend/add_friend.go +++ b/internal/api/friend/add_friend.go @@ -45,7 +45,7 @@ func ImportFriend(c *gin.Context) { RpcResp, err := client.ImportFriend(context.Background(), req) if err != nil { log.NewError(req.OperationID, "rpc importFriend failed", err.Error()) - c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": "cImportFriend failed" + err.Error()}) + c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": "cImportFriend failed " + err.Error()}) return } log.NewDebug(req.OperationID, "rpc importFriend success", RpcResp.CommonResp.ErrorMsg, RpcResp.CommonResp.ErrorCode, RpcResp.FailedUidList) diff --git a/internal/rpc/friend/add_friend.go b/internal/rpc/friend/add_friend.go index f4581f221..8e7cd7208 100644 --- a/internal/rpc/friend/add_friend.go +++ b/internal/rpc/friend/add_friend.go @@ -81,7 +81,6 @@ func (s *friendServer) ImportFriend(ctx context.Context, req *pbFriend.ImportFri if _, fErr := im_mysql_model.FindUserByUID(v); fErr != nil { c.ErrorMsg = "some uid establish failed" c.ErrorCode = 408 - resp.CommonResp = &c resp.FailedUidList = append(resp.FailedUidList, v) } else { if _, err = im_mysql_model.FindFriendRelationshipFromFriend(req.OwnerUid, v); err != nil { @@ -127,6 +126,7 @@ func (s *friendServer) ImportFriend(ctx context.Context, req *pbFriend.ImportFri } } + resp.CommonResp = &c log.NewDebug(req.OperationID, "rpc come end", resp.CommonResp.ErrorCode, resp.CommonResp.ErrorMsg, resp.FailedUidList) return &resp, nil From 6dacf2331239f70b3f8a8d9bf57a5fc03cd14501 Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Mon, 15 Nov 2021 11:46:02 +0800 Subject: [PATCH 085/814] log change --- internal/rpc/friend/add_friend.go | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/internal/rpc/friend/add_friend.go b/internal/rpc/friend/add_friend.go index 8e7cd7208..bda0de95c 100644 --- a/internal/rpc/friend/add_friend.go +++ b/internal/rpc/friend/add_friend.go @@ -118,13 +118,12 @@ func (s *friendServer) ImportFriend(ctx context.Context, req *pbFriend.ImportFri OperationID: req.OperationID, }) } else { - resp.CommonResp.ErrorMsg = "some uid establish failed" - resp.CommonResp.ErrorCode = 408 + c.ErrorMsg = "some uid establish failed" + c.ErrorCode = 408 resp.FailedUidList = append(resp.FailedUidList, v) } } } - } resp.CommonResp = &c log.NewDebug(req.OperationID, "rpc come end", resp.CommonResp.ErrorCode, resp.CommonResp.ErrorMsg, resp.FailedUidList) From aae6874928deb939c3b6881b12e51baa81f850f1 Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Mon, 15 Nov 2021 16:10:56 +0800 Subject: [PATCH 086/814] null pointer fix --- internal/api/friend/add_friend.go | 6 +++++- internal/api/manage/management_user.go | 6 +++++- internal/rpc/user/management_user.go | 6 ++++-- 3 files changed, 14 insertions(+), 4 deletions(-) diff --git a/internal/api/friend/add_friend.go b/internal/api/friend/add_friend.go index 81faa29fb..8753a2350 100644 --- a/internal/api/friend/add_friend.go +++ b/internal/api/friend/add_friend.go @@ -48,8 +48,12 @@ func ImportFriend(c *gin.Context) { c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": "cImportFriend failed " + err.Error()}) return } + failedUidList := make([]string, 0) + for _, v := range RpcResp.FailedUidList { + failedUidList = append(failedUidList, v) + } log.NewDebug(req.OperationID, "rpc importFriend success", RpcResp.CommonResp.ErrorMsg, RpcResp.CommonResp.ErrorCode, RpcResp.FailedUidList) - c.JSON(http.StatusOK, gin.H{"errCode": RpcResp.CommonResp.ErrorCode, "errMsg": RpcResp.CommonResp.ErrorMsg, "failedUidList": RpcResp.FailedUidList}) + c.JSON(http.StatusOK, gin.H{"errCode": RpcResp.CommonResp.ErrorCode, "errMsg": RpcResp.CommonResp.ErrorMsg, "failedUidList": failedUidList}) } func AddFriend(c *gin.Context) { diff --git a/internal/api/manage/management_user.go b/internal/api/manage/management_user.go index 79436cf04..dce66a41e 100644 --- a/internal/api/manage/management_user.go +++ b/internal/api/manage/management_user.go @@ -43,10 +43,14 @@ func DeleteUser(c *gin.Context) { } RpcResp, err := client.DeleteUsers(context.Background(), req) if err != nil { - + log.NewError(req.OperationID, "call delete users rpc server failed", err.Error()) c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": "call delete users rpc server failed"}) return } + failedUidList := make([]string, 0) + for _, v := range RpcResp.FailedUidList { + failedUidList = append(failedUidList, v) + } log.InfoByKv("call delete user rpc server is success", params.OperationID, "resp args", RpcResp.String()) resp := gin.H{"errCode": RpcResp.CommonResp.ErrorCode, "errMsg": RpcResp.CommonResp.ErrorMsg, "failedUidList": RpcResp.FailedUidList} c.JSON(http.StatusOK, resp) diff --git a/internal/rpc/user/management_user.go b/internal/rpc/user/management_user.go index f9d5b75a1..524b98e71 100644 --- a/internal/rpc/user/management_user.go +++ b/internal/rpc/user/management_user.go @@ -18,6 +18,7 @@ import ( func (s *userServer) DeleteUsers(_ context.Context, req *pbUser.DeleteUsersReq) (*pbUser.DeleteUsersResp, error) { log.InfoByKv("rpc DeleteUsers arrived server", req.OperationID, "args", req.String()) var resp pbUser.DeleteUsersResp + var common pbUser.CommonResp c, err := utils.ParseToken(req.Token) if err != nil { log.ErrorByKv("parse token failed", req.OperationID, "err", err.Error()) @@ -30,11 +31,12 @@ func (s *userServer) DeleteUsers(_ context.Context, req *pbUser.DeleteUsersReq) for _, uid := range req.DeleteUidList { err = im_mysql_model.UserDelete(uid) if err != nil { - resp.CommonResp.ErrorCode = 201 - resp.CommonResp.ErrorMsg = "some uid deleted failed" + common.ErrorCode = 201 + common.ErrorMsg = "some uid deleted failed" resp.FailedUidList = append(resp.FailedUidList, uid) } } + resp.CommonResp = &common return &resp, nil } From 3329068bcc5e52e768c9d0e57f15dddd06a4cb22 Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Mon, 15 Nov 2021 16:30:16 +0800 Subject: [PATCH 087/814] picture --- docs/Open-IM-Servers-on-System.png | Bin 17869 -> 21614 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/docs/Open-IM-Servers-on-System.png b/docs/Open-IM-Servers-on-System.png index ee4fc5d7bd36e9057f5ff77b59395ca68e7344d6..3c8a1020214a2cfcb9e5cc6c5beb339b7e2be67d 100644 GIT binary patch literal 21614 zcmc(nc_5T~|NapjYj(0^&sGd$OWCr^mLv%?$)K{+VkcR$WvpWmS+Xxh)(qK)A)@S& zZDil~?RO8I=k%PXbIx;~=llKs{)%wB-OJ~CU)THf{sdjsQKKMbCdI?UqtH-SzJ`ZK zfW*VYCnF{R{^v{xX(t}ubqNjS%hz2X^DlHG$JL*&?=v|1eYCt$(MtB#a*!q8Nur5t z4ZrEUedoJs1-oV&9X-ntl^r&y2Iv{#@>E6C_16u=ds;Wn(mZHB!K&kToj!D<>~N=$ zVP(9x=5T*DP}Y5FumkG7$FjFPJ5_c$N)$8nSl)X}b8$#Jw)wTa{Nd}V&pec~yKCVB zZ*yU7o_*m)L&;s<=ZR!9cmzFDC+0l)RV&rKGr2#f6do*3O)fH6lPQMKh$L^l$k|O? zJn`U@*F|IlxgM7m*BWO>z-E9WtnTqu;^n$6jB9_EW}9D)idvSz-nx~Y*QI?FJX~4D zZSN6BT6yTDQ9rvDSj_6H#30@Y@B_(DD&ZntyfO39ZKS(IRAar{riImF->luEy7Cc0 z-U?>}8z0Hncqta~zc7Fd6(Pz{4TzC~Rf`t})wBkmlIz(97B3SX@SB~|kX&fsd>kAm zbVX)#j7^ID6k*&5{zULdf|eR`V`bdsd|-ZBstdJm`iN3E~eZ)SGvQ6JPi?0?!KSGP8! zm2Wy%5k964WkLj!R~7VZB^bg7PDQ+_ZM=P|hJz)t0?F+u8?u<=w6tRf(zyKj%iOda zub#b5{dCusQIPxgKBr@i*U)ao?4*m_@HnR}WwBckrdzw&*|=DC;LR(K^g?07fj~)h z(}ZnmN%Tz&8>37h6fWChf{Cb3BCA|Uko_{c(|3pEWB|(KgF>4=c$@mM4@hMQW90#Y zCK<_WZA@p>_>`=#8OcT#o-Do$NvjD3^UnE6hNIfwDHb4l(Vh$zvRq0X8yNvZ0goB6 z9Ujz7$e@rZKTmb70H2+tUkLFnE<$whEiKwtuFHKyvYccKvwk1|#9@yQ*nbA?CXt_sTO%WfWrLD4ZA{`0mrwhdsJJEpV;b9Rfq`2M0VBOz`vGUdJ(-qUx z(tdfRl2>|dllpaOQYgsT#WV3E$oU}Nur#niLdYUK;hBq0Um&5pfz*V^>ZQirC|I=U zJt!eK_}MRJr?&lA8Xk+WE2=J+JDgqs8I8TR5@%F#QT+<8+(K%g2_s$YS{oAdAXaf^ z6dA;x6G}cXz zwhu?p6>PdA?b#0k*c8X=GQfq@`n=VeeSv;9f;3KXu7w^kF5Z#ALt6vkghd;Hp3hP*<_7oJf zB0ylG%DAX0mc*azih>}6p7G_9!$+4P!uCFFI&`F}c#D%fEMYyW&gLN{dGnKtUnKV) zE@dVVN9CwjsNs1Qi)8fV^677yqMN$QI4{uG7?#l6*Ry$|$1paFA*9H-XIsJ-TiAZM zXLKH;RMRgeE@+%p1B z;(-FwQrr8vzOXzG$E0(&26TBnN#rCY;>JTTX%MuiCd63zJ@&bin2s1pn4wwkm-f~g z?A8{@q8VcLAW2PEq%F*plCau%qF~;7i#e`129#_g&4z1-YMY zjd9YV-E6bM1fUl4=r#ew7i^TF0ST{|h(wNvCf(wsP>1U5=aWX??)ar6YGkUCg75H^ zH{Y8$wYB52+_+qIAUm^8&oGW#?H^B!M;yAnMtQV2;=bZi`&Nwqd{Z_ALbqrVxyYhh zo89Pr1#-x?zC#+~_+j8kCsOf#uNQwPC@|FC;J%qnc;=f5d4(%%-KCD#?c5$d-+T3( z+tb1XJK`4qtr!WpeE*Vi(@Dms(tEx(>R8L?YwPFH&LiMG^8vX9X~m^i&`iuyHlQJ8 z$u$RC>*K>nQ$yZx-I0re5@*6?@EzgYv+KZ$U+|XF7G5d2%54LG6Duq10?3kkWJN3> zON@KxFRZ*D*f3mkS|)m-tFfXs#45+`2ufZyb)D#l&u3QA^2WCg!5TGQtc$3wltEGE zx9^3#w$e*VsvkS&5DOVj+Uy&T8fHCZiIa>THu;-k!EyZECeht{KhunoOMqr%90tF) zEoZuY(8d@Mfh@-@B5Md6UVfS)@(4tdw7z-+Efegz{;a=y^V_!pwOPhWS#E=@ks1m^KAc=IBF`MX;D1jpY-RsaE{L10R6&F!NPfCp zBMa|-gKe&$`z?NoH--Go)Ic?5L+-N@BbkLPDq3{YIHAHvz*GD31GGK%ET>%D;C_dDt)E=9BnBGQJNz5^`Sf6OXWrTM729N zo^LYCcW!k#Fqu|?Xu!2rawZ^iuCW%u6R3G;-Q$1$uBcB?f^Vhwh3meWyNvwxhI zD~Wc4vsU*rg>>7V&hh~dlZDm*b)6~c$)^Gox%I)HdA zq|QjvTUo(hC+6D=-==7>Jf*}N=Zbb?it-K;Ft+e&*xwne%{-AKJ^n=18=QWbo&Qz&wzL(SHlOfyh=m^v|*_nMb3(Z)dwjib5VTRd2< z79S5ew|gNrZu}p zB(zEV(w?E|lbZ@R%WbNnJXix<{xeu5%hwx z8()Qv>Fou9pVUS1j_x?i(WnT7C41!n3Yti3$v*GFlc8kQ7*%Fkl*skWr43fw_8)&AJWFVe5}fr zE~X@8)_=Ftsr70fa>ET@1}2s{JOhX%`{+zGnrWZl3%t0^o=O)6*VB$^7s{bc6usAs zqzEDKIAsh$4dM!tI<<&$k704Ddqv7Uxs(1MvqH(oLISloW=m2eGdyBSxWzI}9wq2P z*cYEXzlHhAX+>%l|B3S}s%jGV&=X`oQB-%^#?*&o@IUf>_gZy?70L>#zK~R@Mz3}a zFb~5KlO* z{EKiHfes&epB@~)XM??$w{1S)MOl$>P<|-kq#_xd0C~afJwJi7Alqe0ygPUqKd~TW zD??Jg1!WZeo0o%pb0psV!M#rDg;T!5fPmcMFm+~OkLK^jG!lJ~ zZyZ+}x&}d(BRaMqNry(o?D7b07c)&Y(QfGbfl2Qh{b3G(r_o(hvKBk!nlp;doO-=Q z$~uIRf0l0lNy!#Im>itK=dmiv}*P&_i}(*`fflv}V5O8w{%Tre`h4APJ8KN5l&yuPQ_!m&H2Gb-fY29hStgnzt4e*&; zfRc5;j*O_!hRMbLlJ+dfm%ht_4-;BKscj26$gNZ`)`N|IBk20oihPRlI+QfA;(-zR z@88}yiCYYc(y^BLcVu)T1BmMqMgIO6>g2BGhkAO}4C0T&BRr`||5*0gNeR=|mWa0`akNmy46u z16#ii1|%U5tPr5RF#$#z<&gCzAjms~P zv8S2J^8(lNPApZ(fJ945O}I}9#@+*2KRX`kg-tr8xdDza58SH0+slc$YqjyEKFlB zU__R-TaquQz3qMp6l5TbEECaO4p&pNt%mF7STtPNeB5J&4)LPgpbcGu5 zaxT#LW##R*S)A*YF|zO>KlDd=;GV9nNz_nyBx`As3+~3@lxOf;Z*8%v7ax10mY)Xw z+aYeBYNONovqCjCK9^nQTmQEBocfQ%=QevUrYxv8?Lp8O%8?VkR+@Bl7d70rQQ5+J z$uGv6-)?grvYq}c`s%ixqqPXx5SEl!+hcp=Q)2%w1Yy~Vo_904yg=trcx**TefxDl z*uotiUYQ8>dSZt*!b&~k1EaGtTCohDNj}8A9d8Rz!IujZDjc>QdxxYPO;b0KvuA!L zZp1bFd8O{|b=8y0jY_=m^?|D_zDy>FZ#uOw|vZbr>B`ug++WI)~BKS4e`WLzRy^%Qzz5?IKCN*IX@b2xz zmDW5>X8nUbUCiUemi$$Wd~J%lv6bEvwgMNgii0wH-Hx zi3)pGfePc52Qsd$3EmBGQHmRj`duM>XSHU?!3ulTr??=HUD`UFosmyiDP-UDT5xmS z*;vrgxdjkK`bOxR{L>qwQ64Qw>@S?i@LF5XkE_v37Mps=2LCOEAuaBHx6*ON2@ zQ5I-(SkioQkJL8?HMDWdJ@2adyunNy;Dq)%@9llHyweR;weSylQ|4-jUSDC(KAqR| zj9iu_m}bhpz8!DXs`^=ITSKFB-HW`M8{o?kaEoVEYi&qHt|T-^TKp~0T!_iy*IqK~ch7zZqc)Vlr(!CP@@) z{Ic#x?#Gg6LJBVCvx1E1?hu%*N3M-&F&N&Bd~`wfR87Y=UCn5gDk3s&0DPbJMI2AP zBEM1t8C4-=BckIZ79kPyN*pBQ^j+4vdUm%;hdj?y0;MET1cxF_yXy(7e}-h{bdGT6 zjlAv)7e5ZzyI<&<&C$GC3FHt^r$BPXZ&A-(({lbzK zACYfLM}>u7KX&&xA8>R3V5hn&!XGoQpYAz&wT2G}k7j}Js2UfHB(E5pJZ-JhI?$;QLuq3<&|vG4mke9w|^&@79whL;&X77%o1M zTOD;{qNUco!NgI|>+XbX3!PaJ+ftr3j(QSTH$z`#Lt_|AQ8Bl2;c1kUqhwA+oAtAn zm*$(fdDVrtV6Ow0p$K~)EN+#qSCV&CdtG?K#Dp48T zke>ML7`$N}PH%pwml(&-!`LuENddfUXwolO z6k*i}#^fSQ^RBu{7X2!-sKwa3ye}<2|1-AiqHy#A1D3tUan3=5f^KyBKbZRrQb@!+<| zZ%XDnNn7n7++EN{AE{`mM=a)bdi;JUeq17wY;h5q8xwfcYq{U`IaA|!<%F=q<9eG> zt5Y?QGJX{w++%RBiFQ(~@Tfq;MY1x(m@q}>zHgD#`ZrO&2yNi`r7l$x2(pQOa{iSl z6Let4&?rHXDaEB$m%rrW-GKy_bI0M|*25)s`Oo8Ku_JGy^gb!aUB8TxCE)m&lD*!= z1DHC<%WJa^f?kF9&kYC2?!X%vvAyzoSJ1eZ@T11Yk9FHuvOx7kp5AP-HsLx8YephJ zX`avTv^}I&Ibn3+WIdsS_3`&a@JlUBF0kr?nsMdZmYW4H*D&$w#rB&Vh?X#jWOTJ0 zYe>}bD`*i_USz{@&yua8&@zqL^vaz`FswD3rgKUqymY#IXo&ZT)z%hv0r*K*`I z@CDapUx6FTJG;5ZvV6|H7S$?!tjlt=g*7$*Wt2DoWUb@bj##5S;Q9SgmMydvvNhs= z<_q`JMXFAEOJBLNz#zNXE_O3jw}sQo)ZO;#Q_|*T@J8Sx5l7JB#%eG7_cqmjb7swB ztUnOjWQURrN_Is)srH(`2?36s;@TrX_k4u3yv|XPX*bQ9 z-Pwu^(EQNF$uIKO8&lcxmx`rzRjF}iu}a<=rFNmq5MgD@X=aOs`pJf@tg$jcpOozP z&E*-e%=^$tXup-62$SbrHzGxa&N4Ik8IX+B1Fx{V?Ss83Jm-s*Gy8xHZ}khgQ-vRZ zTjO5S4#?c7eh>-R$7@_S52%^kN~I(wB!|dFys;r@w3dks-;m;tyC5wciBSMrvm;S} z=Qx92uiHq7?V-|&)K>Q>;R&=gl6=ZpW+Kxf^CX-LEL?1D;*hY(c%4L@nPZkHcMCkt z1qMF@v4NlD^#%<1yzV4~n{{JSm=5V=ovgawe9M{LA=QkYfa{))_n`e;@-b3RG3&Ju zqYBi)xtH7Al&N2^tO`51bG4-#@E23GTbokdZjGzO{ZkHyVd|* zE&ADu&mq$DWwNZ(Zl5L6fshg;0)&()RN8tpz#4USP*K4h|I2ZzWC7P(dewcYotHq^ z_#Kc2a%LZwrnpuA_0Imfr>hk?VlY#Ew=Ts?7xrMe7g+d@@_zZrTyl|~#ORhxBk8(j z-4c%U!B!?+Y}{9n`wy@{TU_d2c0ZLQ#e}IqM!z;Xu&d98t5v=`StMI-?Ph@ za|bd^-UCPettgx9(}YgKK+y#m>(v5_t^1wdn88Qt>dS^xS3hI*CH;rToj7?7)$O8) zbuJrYphD=xoF?fHce8tQ&&8zw!1uPNRD*jM`=9l?vV`U91)*j^qz7(bGX}75H%Qh> z^2%3Id@%1_M(|KpBUO-po)gBJE$$6_a}z|4)}u}`GruJ+DCmw;reR3jMCXVa@HDaj za$1?E7r{AI=t|_GZqj{iqde%@)RNG|4?!!KcRoZxm3kStw8;)nx9qS=Xnr=vQ}z32 zHRl%5@0F>OsDYlGmn9AO2`niAylffW%Vc>|IEn|#zUUd))3OLW7}uA2qezP3VTyUa z@Gu&%e^LBO7jH8D0k^-jIJl0Uy6)1T+Up{mpjH;0c-q2$Clx+H6D2R6*M7-p<$Kae zCY+~28AR4-1>w%n@<7;-J^8mAW2QWR-WbD$iw{0O^z=U~xHa42CpSFpIDGh4G<#)9 zN#qJK{fawCrdr55Zy7A!1mhJC49FWu#Hg_D8>-rxCh3XlBAH&F?BFl8S@mB0VG^AkQhm zkf%O$|3c5k%BJ1m_Ctr>NZ@*MY300}WW#^$1PJMhFiuF{U4#8zNCW>uNJ|_310mIz zf>XRIlrn!;T}MN|w+^d24}+FW}SIz|KhmKafTwZ>; z`dn6PWDk@+fNL%vb?FTx%d&JFn$pi$NuDQNlD2VOx1$|t_aJ6h8C!AfR!DE5F)EB@ zR89L~VT)Ta=y~3j=+tj3=jvJYOQqz4*k_vIx1fP3kR=3s=VJBi#$}qNrLs zVYx$*+eFvicbuJ`1W|Ul>&+29HVdn+sk#6G%<98%H>1iIyP-$Tw>B%H)$Yv@1S=zy zwIhVF%@C_Bj|j)P)ZvdK*cSziNw@Yg(--tW#MP9^sf#lmAB@~x_2^Xe=w1T43jCXx zFf$2!rs8M^#IL{yjTN}o9q_?a#;@Oyhwy$UA3DD*F1h)OdU5mHFYFtox3}qfVRTae z5Y7pyi@ZDJX+M)qAWr>Y7S4uwFGjgG`=G_!a}07YKUFC2wO_vJ+>2Rl&isYaj($b2 z?Sae+VZ-I;=UcfwA69fF)Sb+>7L%_#$z?mM+aR>X(2mhS3xuI=#6^^(2ycz^a6 zo43MPX=~z9f$hU*yGIn4XA|N`)!r1C^L*@BTQdFQQtZtJuoU_~$(@$QXD2W=D zk~_Afo;J2MZx|kGY0>SaBW1r`@djEieI&MQ?g@|mO+bYayXQ$CChirltZSyytlM-0L>ra$dXKyiON<9j}#3yrcqLFhgM5sB>DaH+Ex??fC44vjj4+8cIa-{0L224a#id3X8YL)RzdXK|*o$9P1bZRWnd@d8)JKx-%119kr^ zwjKebX%!@pp`?#)x9d6 z5H*7F*jfs@+i=99Y_F4Yrd2tKnc;eimdiY=eh$%; zS9Vtlh^DzlZ%N^3lqF_x4QGFw8JbXx(gBtslZ(>5uK@L`l6peiV2GjjU8-J|_#U%*O1o+$$OtTa zS=&7{PtO0yZ+E5EZM^4pPj!1Eb-atkubsY^Kk4-058gcYKkoQmC`AV<^qdRPw0u{= z8+OhUjRossbM^egVw(-Qabi^%n%YNVr@`#$?BQ6oHRe+NRd$9fVDI90QiNJgHLl|q z5aid?mA#gceEVV65iF8g_)A9}4i@?KXA(<}6iEgD50&Zn($(U&E#(@VuzMnXPSmzS zs7$0g*Lh;`HtY1caqwYJw{mjP8tJt`POxP8={BG>rv#RAPA{~&oV43RWUv{{M{JQ@ z|CD0wTvgr{$3Kfy|9H1!s8yNQJNabKiImxf?^2c5dn8qIZ!gabw1vOE+;nTB{42nq z%xPe60St;sXN(%#&D>gjvffkVk1b*^uD-nSjl9rAlRr(Q0p-!O>9k_iuFky>dgagP zk=OYMbMJhiUI#MxR&c+5VBDCNlYmY#6s1|PkssLflLk?FYeNB>K`7A4~H+xkUQ(+ z?jpdN0B9luBw@gb(Y1#mEOu1WDD80swLCGU(TLkg?eQ^LpntS?{kz9JA{SsN;z0%= zMp^@_DsH4D8QUg_dQ{=d*n6 zewI#)80BBU{+3SPqR(lh-hxPSMC+ZF+*n~+CAqX+S|uh3bSLZ5=zb*>?`~O^%YFEU zkoIoJ^eTdnQ_$KJ7@8Qb0*m~*SCaxZ);s-Iq1aQ&U5Y+(#7AZyyJ@s z+SDv~o8Fq3?nhM{x!B(C5RT8wL;V9)6jJ^>sN%wUoX{R2ws)4{74Z=<)b5h%fnCRi zfk&O(X7`FJe7Eu>nYjkui*NyQD=PI=W}yUZ69cEU`?h--h4&d&!||o%?7gxu0J^G6 z7reGWtuS&vG60fSFK=)~k}z{@GpBUSwl9s+$OAd=smDnR)NuYo5ys-b(WXC; zi6D>C_WPET%TR4RKu`oP}3F*sqP zl$Iz!^vcKhDd@&0?Ym5@YMby@y!_E2?g{d?~C-}eJo;v^5V%DoG{ZY7HS!#f@K0`ax}pclyG(&ytf zAAT`mg4=_ByaC`LaYGI}j*C+Th;TVM(|zRI%`_my{97a=HYqpw&7~6^mRrQouiSR0 zlEaTM6uBL%_E-j>$~_?HVQ4Q7e&`1XoU0rAtsfeEw{=1G9WHc^H&)q4$r9JF4kExC zG+(meV!4e!c+}Yk|AiRsXA;=8G%fv~f{h=lM5mP^!?ZXz{guc+rYYQz1mv+!NdN8U zV;#cWD%>te{42WgSbz>}%P(r6iAmp~=YR-g>>bRL_$~G z4N0*75TfQ9BcAVy#fiH60>|nje3-j+X@Li~iXKbO@G%W9#4J>gC_3r&CKKy_(2X7=H#hf6cKi7QZw*; zpjrRh3GCHlv6)}q6o#FAdnzDLXg%d-e4OR5Kd+1% zd9vp+uS;c1V+!9anB(uSnk2^*g!f^Io&gQ`Ohi=8eaZVpU*3%`rx_XF?+{$3e!lj3 za@zCmk4-BBluX{6rSv9wqx}Kv!>5T45|VvoQHgs7#b(_-5V>}FQ=L`!uwR>08I{m z-$n~D>VkE@racSA%rP?#VfTp)2qI6S-D(A^wJM+ez`t^w7srS7tvTIol2_?SXcbfC z0h@)%jT0qz^6xDlR?8m1UD@>&06){(_+4BigzD|_!fbM| z4U~0CJ!MIMPhF(&y2EaX|2aP&hd`!eR}%?Nk8%*ko07fe@fCfxl4ce zwmC+&1+QN`K}ds;7l&y==d6rDeC)}F@p*wSzXWPw;ydN16P!fZ36hNO!^WASMie=Y za7LE!zoRb?h}#&v>{e$VhFl}WjmjY`W%T4$-Ead=M|{pWiq#&jdY6ic`3xACyqZuY zds*?Ok+%O6CM{#{!+qKhGmCxP;m?2I8DruBp7Dq2tK$60WzG;#F$yFI!xdHEc-()i zT9*8k(jQ08ej>u^_+fg40d7`3=hz$I+J<>dWq}giw+U=8{gJ<%=qf2m1?&@-EDSHuE9 zJ!csNAO89Lqez^ELEQRoVOamw!eGbATz-Qm% zqv?0P)O@^)&~@lH)nt(u%7kES$zt8rr%VfH@{_8-C?zZ5GP@o~Za_@%l=nz&KWEagS-_AR)Vs&zAQ09h- zf_JP^je?;8B_yDL!exz~s7`SwJ{>4Tu1_6u&Tk&>W*9G`Cglng)4VHx?F+>xJR4R? zDv1GTL$}Xpw!1oe95OJ^StcA1VKUwR;fFb#|E4iCJ5#sUJ^reAqEWLSeNjg<8~zFV zCQf?|CN2Kt_N|I8%;{|Y+f7~;T@bm|`DWC+59~2hJ?Cy5lI-5&4K^~(d)#}381~!< zShhG-7%sMB@d3KZybdqVcs1upOWgqkTwnh^Cc?(9$2SO|+kq%)uMN1eEizITW9|Hf zVr{QYcr~h3HJWZ_UreQ1Tm}<-J!9DF{;kF7ne|#oLzV^F?53Vjg}sM%C8{dyU}`=y zfgiRVgq!!eaZ;dlaQy7qZ~G8z*XDoRCAv5I=Ut*w$Z)K@I<>#c;r=ps;j1F(RVaa6 z;3y+GLBuEkHwt-P241vPX}6EA$#!>Mejqe`Y5A}uTlO6o-6X~fT|SnpUBAC0S3{kE z9TLU-p&bHr;04}fY|F^^O$ys|0x9XL3+7b3fg-aIhg;cfl*N0` zJr_zx3!eg0{&Cl{TVx4d1}N&!8mMm6+nnroxwc^Y=m;FNyi_~>zuGa9{4`;woItsE6q%}_IeoL97^n+ z9sPJAO!oJ61g`oDT>Za+^KGZmm`;nQn|QPQIS#~(<>zfsMyDK+&oS`H*Xx48(Lm2= zZj#T(Q1wqFt^4FpB#mP9zmv3?$#)l4dUc+!#W*6pXYZxz8o3c=&r>n6n2=)u(0~(} z0DuO?937sR_w^@vAD)b|5w2RQb#><*3RmA5>rl&qR4XL;TtGkgdIq;sM8ShiyFZ;9 z&Ty+B3<;!~1Ie_>@Q;t*j0x)icFrKOzSJ7=_-6^5!KPw!%$53XjC}`x6#~d1F>cZe zSNqM=i>AJ=>NUK@2k5#u0h{~tq8pNkG#r-Tlzi9ZRzMQPCDPxK@^U=v1R}+v7Qf$U zqHNof@xNj8l#duad*`Ym{t+vU%98Or>`piI@Wfb{gg`!}TG5az{Nzf!r0X_LPvF|b z-D@u6^hxn=5t@GLNFz$tJJM(MVRT)AG4Pdv6AS{;m+4B4T5y7tHQ?xi27ewL2Ma*= z58A(^0OOB5sK2d6-faSYe+|Qs#=V?k zA$OP=7b{eEul##dUWI$>Us8F<(G`)}5ECWE4Mz=?CpOf@1R`I-3W~g>PmPqQ{(^WooiV5uB<1HJ$ z%K1KA08BEOcU2R^=%^{{aPz#+zVF^KDl!BuYQPQ)#sTxZ1i(C6hn6BQyvB~ktPT3{kU6&_q>^j zYB`+AOpOx`U)FzpJrwXq=RO~`e0blu9N`HC*B?pJlSsE!8CGAZ0&qsAC}<%Sxb>VA zZGiLytsMj4(23QyU%mw`-hwl*6+Cp-^Rpr>*nI zAHw13YF(N@GQju(7XHH~C#2O5&(?IDUR1vSB=i$x)pCffN9!rcYoYPFQ5QF9++HWg zbC0TVz4w|30Hj-2q6?#ezPOr^il@WOWXtxAI@7jVRhXNT)}P~nTGzRrj^-K2Fm|O; zbLv@mW!oj!TLqnxUvKe}FGi*WfhGp8!5C?Z0Pb8O`?O!6R#yV@*%ozy&QJS0Oi_;# z`(N|FpL#v{9iI1~3&KokpNQbqgrROhPKULkIjUXIghddR`{u2NMwh_Otrlh56YI-t zXAE_pSyORPO6T(XAU!|q$M_6UhADcY=}U)9V#~xS__H;{rvAYG3vy; z>RP(GHYi3KzPU2yG6s2m>H0<|`@TWA8qz`b3=~EimCq>uZv zQ~?h&aURtGux-w-q%Qri_e?a1<>y0Fp0gbTK7WC9|6V+vAYKT3vU-18g+AadVs>a+ z$y_m2DT?XUIi>J{rgHLevOpt}c+v$$MZ0i<7qP%bMwJ<=8YcQl5Ie3h=^{#{A5)p8 zbWdtDKNp)HZf&N*L9hU4QD;_O0}ECo0wdh4^mUG?p_&a5VeY)p(AR0el__%t;V*827teYt zQF1yW8^->}(Et{=3Jw&jA1Ced*9zd56E0Q~8-2mF%YBl+v#Mu#?=kpjCC&|<69&ff zBr_I+M&_yl0~22%{@ju@eLY~NPJS^JrzcaOxj^vPyNzK3?+-_te$@uIJ0QOPyKhrT z+h-sJWvMng-biWj^~XjGttT@~PU`i!#c)na5R(|$pT_N46cdcwgknYAEhy;OVrtaf z@(+^$wT!1ChBXTG8RIG&|FswSm!nEwu-U3^(j-P!!`JEFYj7(q>4^EatH5GudQvgp zg@EtHu@Ln9CIp5}{~v^aYQrgVSc?-~gdgQ->Id{N)+1W^gTwJ~)b#o>HT_TP{|S6K z=Qzr1zj0`$IjJ91a3e@+-X9-VUh2igWgoo4bAm52TFoEv(Rx0=ht2+llm7J^de&EJ zN)9)@S7*Hgvt!B(N_+fm+)fIL^|YF|Wa*r+H{asqA~awAfUjuj>AOYty#xrad6QKTE$%R8 zx4h2k#PbJ*gfce(`}oi>4T*CF!H)k-N;6RNJUvur_)zW6rt7zT2Bs2?JEYrzdmYxR znb%gK4UId=;fJ6(sdR*S&S6N+ZF{qknSJ(~DdfD>YH|FLuCnsgs%+DfJi?NKfky{7 z?H>5;k8a<4e)W^YNX`4u19|Q{D?|331B@lY7oq7_6f(sLI&ZhlZj!G_r71F*cpy0R zcvkQ1^zLI$esQ~GDjk$7CiuiZ@tn!c76q#T_&;v((Y}$v#aD4p_n&Pb`F+q{r~UAk Z7iVs2wPSi}fqg{rG*ony3lwkr{y(Ud)0qGO literal 17869 zcmch92{=^$-?oyhS<05BNmM8#`!*wrR+OZK35l#RmMmjRwvw?VDl{fCmQePkOp#>Y zmuzDjyBWqhW0v<&zxDrn{?Ge=p7(mM%T+k%8t0rj-~0aD%bCX}MuvMhL^zn3nD(4I zd-@6!(@sy|`%<>uz`qIcg_TT92bs>DK6Uke@n{0FU4Lh(_LitZ=M_!njP?T$Nth|YYT-A9VNZHmN)Eg8mbq1ij#4OvI_r5$W~%}_073SJy0cSC3@L94w?i@2p6?4|(Ihyp_cYcof}JcX4>GS&!HI1 zjHUbs)41@7)&YZ+V{AUNq^0Kh%W*57N%LcOJ54Yth;G-EG#(_t2?yNB4ejBoVkmv&V})dy;NdQ8rH0WsZ7<6QpvPXXv6`5iAGc<9640O7Y}XWY zc!{V^Z^B4U9cnST{h?i}6|K78z04dFAsE>K(rFhI5gG7`$X5%MYMhNts1@-`9(^lT z@)g^%BL$Z{&nel$;S!VRd0OVZj1xIEM#{YGhJv-h6XZ}-{u?z-3)Q=n-KDL<^#&5y zmpOUXjpqGF@%kZ__EetY_V%-BSMqXquap!$m+m$sIu`rS?8-Fba&((P#tQ6@$#bUV zyWe}BJjdEOxR8HzmgBs$Bh&e)msM)75Y?IQwLCpa3}auW*=~-vJXntGA2ovJ-{3lE zu;!$E$RMHidoN$d$80h0C(7m#=27{!J<WVS^W<0T6cr1SHz;hA1%z$yp{7cX%GR2Z<%Hfo5b=`Rk$a$CL;{) z(YsHUghdPAu-j9=B%~5G&EJ=KrIip1=>$i6qPgnS8usP$&dFJ??#LyX+h{dn6d2kR z?*_xQm*yZz{Z;;R7|ZL?UEvC zm1Ih!Q;U0B!JAxru;el4O;`f1X9GG=rW9mO8!ZGuH}!3VM5T*QU9J^%kc=8GO@Jck z8x5s5u}>Fgn$x8XxF)uCBXA|}yftHCO-9#GRD;yhB!l|5Ew*{Dyeg(;li>J-SaQ{Ipq6PMLLm?-4^Da_X3V z2@X_HR@*$9pD@y#AF^j3sw)mp)!{4< zC+4TlMkl-ea{)g3a<8mF0n_ zYgkpUuF6MTis$Jmdsk!qszh(wGdo=*y;AI(dYz{)J$&<>cgnd2>+m&HCLmBC?dmgw zDkG2MuMONnP>K3a3^vf@DQ*Z>(J-cguOF-=>AH5eA;#eKrM(`(dn^pblS!}!%rS=M zbgwKbntSzvGZnlk%mjZVrdS|FP?t-v6VFAX-`78Ja!o0}7Ky@^P-9~9U;F^}N0d#lWwpW4Oo z!Rh=gH0*P(+PNlH z1P51tvpg|;SHd0XT@)JhW4@!L-JWgJbCex|J(Xws?rJe_1!ZwMq#67p9>nX{KZ*EC zs_)6a00x1{@TJWT-;Zc?}ThaLs`=LC!8apS&5r|O26aB>@Z=co3Zw^VeXOh9O7fEA zyVc#bjppXaq>o}Y_g@Ag8`WSbCOZ!-iEcT<^q5G3(dum0hn8-n;rx8ftEt8rzBMAy+lS z{bSPv-#0Nf@Gd!ND)%(c_+ztuoy{m378v{2&&?JFPjX&N7Weg9UR~llPS&gzS@pa7 zgQLvv?j>zXr_7Zu((^GMn##Nph*RXtf@W^Rdt(LJQ+t!NFqL0qQ3n`4Gzwnp2?AR5 z6=j!mO!R%1Ld(V@^@Y@YgoivEHT$hiNA5FCP?i{_JIvc;Mfanss z*&{c!wiY?%Hp;(HCpJQ`NLk79X}R4ZZc6&T35qGDGwF3B0=vd71J?DMy@3J*u`DWrwRB2Msq)| zah$vMG5OI7<>|{0Lk^!0-~Kw5%tvFd_9KZS4Wl4vG4Z*5Ep4Du(@`u)Gu%=J@{jf>cs%6^z z_o()l`-bJ1FXn!`UMn(?SUJ$}EIHE5()s|TqLTI1-U@xI`#wx=qC~mNLEUA8J4Tpi zgM&Cn*z2GkD`s7SVUZUkk%mmrY=q1nkT~gO(78OT@Un;F4R77)MdhY+T=nZJlctr@ z`pE{=WIXy3LShD1U)PKxnhXqC2~4VNgv|CDX40)@IE&qpj4C`LyyH&ZWz3Y_DtG8; zp|KkkzPj%UxNKtuS4!WL3;E8-e^D$o-dD<0&eI`x|`iDC| zaP-;&sr3>zmkJRknrd4aay9d1Sk)jhgVedqz=0H^GXjmDYrp^Mh33Ghy27ia%6?XE zv0)of{vyz~Cj3h2I2* z%pw{nHDWK*%KGVo!R37DW_pGjBBb!hM@bA3%{P92hhKN$6?2X@weD9Xu|wsSsh{3! z`wvd(!e$?7`h1nN2DC#?NhiPu48Cqoi=P;|^i6pzS5C9Rvra>S5$2$ZHVwPyH22e|zw0sd4y=Y9O~lUNsi zQWEtv;bP{vzW%_Z`Etv6%R>&ju-5B~XTbx+str<|CD+jWS;}DeXUoP87B_m?itm$^ za>v3})r9vT6z?18=M)ASU-!JqWOH%@q=)6nG;FTy5!Z^Bw7nhBB_VbNEUMoH5~GFp z<6g9V6Y0OW>Ef4Fecd*+y7tV(RE81meYA_LqR*82g~gD)heBhh`wubHUug9<&9KAj zB)K%E&+aq=j#TIsI5AMn?K0|lcNZj4Vjh>kK$FMMLo?wpDvu4e@*DODm}W{Xsj$1a zDf)&!@?Gr?%{e1lQ*Us_rn7|&HaT8@ue4t6H2F1bQ?luG{%aJ9hiP$TC8X9?u~@rC zf1qwkd-W)rRVrWPokyGOG$itcXvqruR9$&5c1j+*C?8XKjm3tbjOp*suy%}U*6Ew zj!9YWAj)$hZj2}yfVv-|#-1aI>12zn-O1S~^U>qltw&<*whzz5?@ZeHjr`>c9Zmok zqgpG}%|4ZL3NlVL0L@%`>>Mv%ZaVBDk-T-=ZKLjN0_!v&Sktc8>b8^zeVKxs2;4?q z^?svI)^EU#4U^nVAQRLWJd!lw4r{2_PN{6H@As;cFu8UXdM}U%XBZxs0gcO<)3CgQ zZ&yR~56Uo_Z|-rv`y=%0;e?=$`c;^SHipJ4ceRwW!q6v+{){Q*|U`6v1 zu9QkN>2Fe*U1>A3;ty*DmoKe%8=obQjCCS#6tyDyL5A1O2pQH=>eIWBOPNajADx_M z*Ur6A85P&?W?_jE9p4=Q&wseV!BNhz4L~v479VrQL$!sZi7M&NmJcd;w^3JUtTmG} z0JrZmR*@>7v(X$j@@3vPJ8pvOM4vmnbWna^RaC! zyA;Q~cGnewTFe4qj;N3uN+Wq@q3L~TsjJTCi{FKEE`fx> z`*q+;FIc8K#@)gcdmb;}K?myI_%N^qyY@SL;WHlN>v$gjGG@X`N^lHS;|#@;J}_VS z>zL46$CS8zOpGu0QDZZjwvNaX3yT#Wc-ncw(GB6o4ETaVQJ{{9G3Z+n>W((ZkbkED~f`_DYm13cfn`=ooaHitrF+nl41aorTd0PI6%KV-$}}Lc$>$c>V98bZtMMHuZS$DPpgA-D~GRT z*%`j*Rchz;??omnAYAlG;B^gvbxbkt(wp-+P!O8rK@IOOZDg2G-p+JSPIDQm-qNPs zvuBe7foaAst4xe+AXOCamW5|0H2#3vcM;oAE81efiUj`Pu`Rgm{ROvG^DfS*VZjrH zG(w~TqN%p38JXS+XKPwDv>KU=zJLG-FH&{W#g2XRhPwoXWsnTA2(tV+L`bY`KJf4Q z=sfg6UjuL@48^M@@P&$}XOd&Et8_+<3Ybq5Kd5kwfTHdc(624<0p z3+@q=N0PV~tNAa%v(sKL4`gJS!W{B7#(X$7Jrvi01(*DQr6TUrD)wVoqLR2R7t> zq-B|H4Ys@?YEOPQW@S2JlU{L(fp(LJ$JUql-UhC03|sjRzl@Wa;Our!qzVmQbVZrg zF?ux2=+@OiO)-n|u_~U`AJKNZUL_6;45ui;67!?v$qHpJEf`z-#Zm>11gjjv#O>Uq zRRumt$0JQcrP6#kZl4=Z=u+1|MPFwrDBB-AfW^Ugzi`;YJ{3M~%-gb0^HE!1h1mBC z_E>Uq&1ku6LA1wxR3hDUa^P%$(FFj0LMwkWP_I~7D zBwZ8Xnb~x2o$OG?37jY~-nlDW6lcaD!fp|!zQK&lZDX5yrL{aUAN>qoB=5+$X1C=f zdS77nLVD#~erJ2Ibw`TrCspfSnU26m6L`|qXhi2qH+!(?RaP=)K<}c)#T4?r8OUiYyfJ*w zY?G?tK8zbKKrmS?3}-KZ{lTj(jGbwcTP~I9EjVKU8l>)M2p*~(N~|*R zG3)Dkpz49=fj_R?8ZuCUV8(@bfmszNn%A$fRBCH1UEUr`P3_!#28kjB@Fw*^h21Gu zsU(u;L?Pc5u=>3fkP`yES|{G{k#;>)Upz@3^h}<%NfMeyRke{I;cJ(KpYQO^m6fVJ zz>*6!&9;}bQn{4fE9d)`LS3#dwH;0|gi^o0tsCO9d$(_@S#R}0fo*B+fER1SPN$%A zt5LW_$n+?8S*I_D9%+hy21a%-Y|RUq?q$VLLo&7p*7BLs=M2_y_!G=r1X^Qfq4Ne$ z_utT4w5T%ab;%G0KF4TV@s?pI2iRr6xEGR6$O2=0_t`X-D@+kP9BEEP$6GjVJ4H%6 zCGA}$uZI)Anmw>0V5$WmLppbZ7G4rN-?l2-x8bWDp;UecSlyUp=a3Lx2AF0|-@3bO zL#riOuS3WQC(l67u+ApQ$lueB`}QS~E-|sJc$&=C&FEUKyRMcNk`bMRoiqqh-F#gE z-)C_6*A#7EFUn-rl5)VisKLk*8PQYWK~t((*Ymxs>bFwX`f##~)q9?;aPJ$5#XNBh zD7`PN3r>I?ltN?};Y_xNcs>011`j}K4D`x{&Yb3UA*9Ra`;^fJUJF1(piaU~J+n#p z9Msfc75f*i6UDE_kC^vKb$^hOH7L0J-QBV4l0?heLW+6<0;RQYcB8GWklg)oxeRvy zBsH47-eGe{2ugopy61m}?S~BhhV3az=$Y{ZhCF?$zl#0SNYwY*{cGR+K(#^4(+d~s zjzbOm?%W{zI!+8^S~Fv=owa4^yGl6hFDh}q(JiGDQj=0EiS!+O0ZlHl`##yS2N7N& zA?|73DvtD3ZtsQAR9iP@w9Wvmr#}H=g*hZ@z;6+zgC$tSB|g`K66t!KQ*qHXaN zLF{j6uXHBk8s^Sy?Pt?EVw&HMq6;mP;)yUj4zk|rz+nc9n(4q)*Ahz0>ytpPp{u;T zBMfn2HSxsFbjhPlqM8P&e&wGQhBTCX$^FyYrpGG8n>xkqTKysSjO(vmubbw`%Dl%B z8!=}s2qB6|GFm$B&FsdAD2+J%@KMjeGTBGs!9gIyt(2 zjI24IU8qfdlTUXt9uuC!IYD>gt9XZeA3J0K#)oDUaH-zEPp%eqU{U?fCkI4)K-Oh~ z0=@egb~T)^F5jeX4zU2V=G&k$TN6dhX87(OdSlcwHA{X_>Rq_YB;#?}SE^<*I)>1n zQHa~|Yc{`G5p-edY^g}C>~50S1A_{qxn6H%lGs^md1GKjmj|RuENFE#xN1H3e@r=k zEJ@2mkWI68QxM;Mcrr1{&)+Apn0sqZ7c5XvuR2Oh(+77d)OW9n$#-sSP8ug^;jw6*6aQe4K!yZu8%}9DCmi<2EKCZUhB;?cMoY}HqTp>RR(JZF3Pr8x@U>CcdNK3? zHfX#b;ysyU{`k^RRrEz*60|yXYW!Q-X)~Pj!Kz?AI>pUQz)pbKKi7|58RkB|(>^*y zF#Q!vH}#M+?5KRZbv@j`wFxft2=Rx9lGHMI5|QL7ck}kjmu66^^1M8uY9+KFr#fSI z(c@!?1EambI21@CQxz^>lkUx2?R?Hlqm0C(Vt~^tZH1`ON=U{jy9&pHdhf0Om|_+4 zJuWZ$&(vV2I{(=NGtFK{zU|XTSk!b6B!I&*K}^2%c6gO*co=Nf7fSXhhxIE!$?I=h zYsLE4WA`s^@clOMi|4)#xZz+fr8{Sp<;Do|3)pC^KFygxR*~K z7GfXXy9Y28|LVE4@VSxEzDZ;Uq##6jP<`v&@cdeTR`Itk0PxOKk#M#2yDP0-%i9Ni zuQ%I3L@s8hE|>0HTKh>L!%k_WRA8R=wJB0SyyCP2 zy(CmE8lO5#PnLz-4LCr73*I0U2bdE+WS&b96Wm3QhvTuz+*K<)5~yg22EdP-vP3jJ zl$amqUUl409^Y915#Bn~9kj=u0dPzSiS}*b=${zI`z;f^bGW@jqeHpw$cv-Bg}hgEQ@ZVbSdI?3hd3?Df3@l0T#;)Vc?=fVjXzXHT}R)HzG#`A42=LLzG zHj4nk=M=bsRE|U}jLuu@T&v0t5Zn=|Q9C5$&?hr4Z} z0dN#$*{Y?tU7y{Kd%pj2eMVgm;UU81fSEqYoy(`lv&S{5LbF%lx)B9%)|1YXc_#na z`pN3fdg-sY*tN9jX#HS5uF$UzKlnng%7o@qkNDEuwWi@sb&rMRqtXMh?Ar|0pJ6P% z7gq_pLm(BmZ`0Wv0&wLIO<6Gi<-Bkfy+j1JW0#p2Dk_Mhju#v$-)v(e+sq0aL4L|IQFnkv$d5SOrat_4WBFa{Up+G3W(oyPBKJ@*4BNOX&WJT*hNC`f!VrpV9V zE3uf@%TWBMRb)K)yH%upXLL3R;!22TOlD0suY}rWU@xhf)0Hv&E)>pls0&~>`U?ye zXJ+H0;U;wz3)WjD{&We~6zgF0JL`P0{>3_;A3mKw z`IRhknfq%FH~r;kK)EjY3?NRd^<^_ZFA3d9((-t`cAlU#Tix&bVfrt^MEozpq;p%C zOrLag(oHHOP4NZMLNi*AqFNby?L)nzEFiyO_c;K&H-BPx*SQl~1m8WrD0t9kkGin} ziGMbd?$qs2Cn)QTdV@p1LQa!e?^Cd!oi{m)f!YSlydJAGjL{0$FlTQ;({y0FwS!Je z$UH4}Ki};;1=ON+%-Dr>AKA8Jjt+0wx+yM$W@3~ zm@MGCtOI!iY1L61E?h|;OW^S@eF-U|KQ*WhD*}$PbN)S?xsuj7{W>dLqX_HJ@}TmX zN{8b^ekNNc3-dI4#e(AoRY>hL2UUipFHgzNz)=r~K;Fg-L1WpuC6FPqYR=WR@JqHB zcK$cA<=M<#<@5`7<9{;$TUP62#(0`RB9AE%v0HKY z+yUIJw0g^Dx{+y+{n$;**9ZQPKHBbt`yqhzIrqPkKBizch)D9T+f^7q{`Aic)Y z9NOJ)1Ky|mpZex45ceo}SWy27XeP2Okup=I;g zDku2hQ$1LAuIuc>o)^h>N0D2KXR_Ha{sLFXGfCfEj_N_Qiu@${jjO5olxA@4In+V6 z<&c&M=L1QS$xr`T7ioH$!XA#-?8V)rg28XV#e+wWiic^KXT&I6#r{lh;YQ-vgKTLB zohL&4^ankL;M+D@G5GU#@ejty;t4?69r8g*4cp z!vjCTXZM04=(|R>(MoL1n7N15SLriV9pz%jog2E3VTJ~NuG{Ri=JND?8-DN#I z!u$4fhOVGmb)Uhv1#agFaVo4@2ypR+C3-V?)T(mmIQx|)$ypdDgn1*lbNKj|(XIG5 z!JJnXxSOLsJW(m>mg8yD=*Ttr@Z@1Kj27IAxV52t__p=U4xd>iSF}$#GhQcfrPwEu z((OCnd-9bGwd^e^h8q7Mb zmQrp{ce^HQbb+)0Tm7+Z?Ta4gpWL0cUe^B(K|3&hpe;Z+v!7$KCYyF?$OY ziz$;_)3j}1zTLHQ#!hhTLUiT+Z`WB5yb2}ku&;HCES=$wXX&GM%>L(+CCl%<)8A8K z%NLbJNh#Jz^zwyp&OF4c6va*;C%*6^9`NB3#7nk0qZFAiqh0GST6!_+rw@1Rv(SNc z)6plWu(9SRwcC^-{5xg*Pn<5xS)TJ+zN3sj{Ie7IyM?%{0R@{Ye=r2LDM3~jx2S0W zW}rv+c?sD+GmPF8b2NgR)FDsgJG_w~{qnd5{~M3%@ZUTxc_SOFSRfs~N=yd+qSrrw zzhlxbt+DrZMrA9uH-+6h(9yB~pOi-1f2lP7ZI1CTURPATIC2^5EKWF&E#L9Y%l)Jm z`K9yb;itdS48dZ7e^D4XgZmm;r*R{@*$d!n1$Thz2?5OD@)e9$AC9#P^5{THCuyls z#b?93zFR?j)rUWvfihMGw3#!B_!$YZ(rLQK3E#Yzot(`u)LCxLxChT5@>}!NVNm$Z zE(d#+)mET zCQGd5i`Ii|m?rYfPQB1-&MGO%+GimNL#C*2sR!PWYd<#>g?-oVDt4WnwKRPHD`@uH zGzEBKt7z`d|I$JL*m>6}b<=c7H5H)|pd2VTzHalni12J#5*e-dLe%uTP&RHmy66XE zkPMxZ>lCy5`@V~4*bKKR?rd&ca3!|9EN|>J*p5MR89zhk>yn=TYIYTUjJ++Led5XS zAb50kCl*4jS8TQ2+rrb10=n;ByV2wo4U-M66~^_Mn}`^!$&d0SHuqmpKlABt$;OUx z>aEOlT|VZ!MW1aye5OotSW8RQmdPQ$hegigYoz~-$g4ah+m_Y&Tg z*S`lFjeiO@u9`dLrX^Nh@qT@1VFb58c$g7FFcCtQnC2vAwiXnWGk<37Vxa+&;>e_V zvR{Qy;1{;(u>CZ8;t zQILYmlgr3*zblI1{`C-oI~Ud~CGwx5jwk5I zN(DH2KKp&v4%e{;l;OteA4$ha6*26GkkLawD>#47I*xvs=O0uVgs+izc-IAUpH;=< zzdJ~#2i_Z*hIG;O=6EVR=j;Tyy`T1b^&EEBSY_os!uUNEmXKMKcBH+!@=dc$c&U3& zPb7uS8hg{0loh>8YCNpD zSj>Z7!4>hz`db$pK!2z7_BY8VqjosDK25-%H5Jk6JnQc15;qy~su5B*^vG41UOgTp zYq`{EQgx&J1reG?KhIoYCA<&`B-rvhgZ}dbyMTVea8f#N5~sHmYVUR$sN7@?0P*>D z-&WbyQs(2kho-+;LjjJxeft}+H7T4!XMRkykAqoXnS#1LNH)#AbY%O~Y6~?70*{IR zkPN_%yISTi>ZDxX4W(&LZRN4RdV&p3a3rN`CY&})5_R*e(J_c?iJ>_1z%_&*-k#p%|{AO(7%;uKeJN}VM);f`UFKk97Hel zMH{oVD~z--+DN~3bI>@}uCz(3Iiz?4pJIW|EHAeVDoSFO2MM&D+%G!X?O71}bS8x{ zxm)n_Yp7ihW2y_x{_L}8Y^2hBl#1(C3L^K$>FC`m(L3Q$V@K6GSX@osKgTN0G0IDgt0(?}3&yv(0Q5I5IQSH~qIBQd|n+@}8$bN|cC-asL;C;oju4^N^4yST|$r?+fEL^IY{XU~y4M2RgCx?5oK;J>bqU*Q#fNB48Bl(M_ z9K%g}POQxjUYh`9SXNt&R7_hgmlvAq;01!G-xSZg?2~Tv<7JXQwfctA=PswGX74`a zy7@h5iFH$XV#YNgCk}aj@UaT%tP;(a3(J0qeF!Zt_Ln@{m=Al#Z}qVT{`TvtA^e0( z#W=6@v2-BMaQIW6QAql2=+9;PFNS_hFAiOGE#g9E5IkfS_p=;Fyh-(#Il zw%M3}CW?U4LgIPk0skTwp+Cn%GA>no;o0YQAN_V$24Y!veDYy;G8NWM%-eYU+tTk6 z;8%8gDmuUVY4_MM>4|(G)Xou>HI8-4U?4|tmh0XSR@k2P%b2_+-k0x7bW}(O+Miuj zM_&NJ#oM`CP5=LUNFrl)anBGEq*gT0!D$A}7lAn2=-{4wneKvw7Vptdt&pREthZNI zYVBT2A+{=@!gF8!3QfSN@A_PqREHiGJV=7t!vEtgQro-;U4OO4CX+PU37F@ca?t2+ zty&qJCra3y<9p8Q=M}(Hba%aq_~WF)TGGa`o7BRZb=}`X>^2=B#9sD4BBDp^ zk6p$`yPh4M0<-Fo9A;Pc*l*RMB(H*zjIFQ(bRMhxsb9=$?ECJg7*HM;8efB9$aL08 zNYN!`q5lf#MyGFN7oKPX>{*q$<9lu{4eg3t6w=A?bNsKFyt}zlZ)p@KFQtO_h^{oiIMLU6ZJ=i;x%(PAizsGyxqI>e9 zE;BsGP|iT7s>QsuwUw3WzP~?!TQ4kLkKP>s%d<^gT;5S5$ME+1J98gV4?rN9N*Q!T%=F6#Bs^<iJ=wD51zyd6yJ4!Q^ZK*ZKUM^+OX*kE+#EuW!|@ z?lex#mK*$tO=@fws7|`Ik!7|G%ilfsIXU>Uyk$z6G^;ZjKhoQGFMPuB{4}@s=v}Su zU!gNopzf#FW59TRbTa;#9|aiC3ulnvRPFO)oJiu2&FPrmYDe!ZDgT%{>;EZrUiCG5 zVTBZB->Op6Dt~G@cq4=RZL{V0h9-tnk_!d*94F?WVo0NpW_wDGl{aZG))Na_(JOWJ zkhq#IOe3U}e(=C$1+!^c$O&tp+^z=P4&hsmCkA05O!pujK7B&$ zltB1zSk~rnpZfsee@trR6ubA389e&n?b4=}*kb#AhZzryFYxn)3)+d#wG59W243_{W0D7*i z=dd|c1yLfx!LRiWsKUuR1P6Sk8Ci$ zSw1#_&80hT2AJ}gmOw}!A3Ka#Wv1vHUSv|a-|G}-YsGCJ@<*mY@WhwGc zN9Jft5@#&PB*^c_R(}+4{)+sz=RY^~@jp#{$|Uj8Xf#2R7y=l%iW*4k=Qp%1=o!Rl+@cMCOrcm{IliQBaLWdgF zDBs^4{c|w&VZfgG>~3QI1}^_}4R8E^RYWpL=$4Pl-9~XqDFn*IR}-8{_}u>7Lq8sb z1XKeL{JQe0+EsdzC||{Q1vakT^WSBp&T*v}I)aYP&E#E+Fhj1`?=q6a)}tc@Y$tB{ z;xldUlBPXS%ooJ+InhXQ8|&87bLT32CV)Y?a;5*j#&oSN-)}z8e{=C!hoT4On>_Kv z9E2O4JipA@&@#BUZf-oR0hla)w*6}^C|cVA8O>7SL;T30S|*M^uz`L9B^Pc@|jQ99~>aE#Q~6P z^{s~k{@hdzRK^_LZmMo@1^w}8K+Xy9XfeH<%Z5=x1tJ=AKqMxOBiJ^FROl*8GpMoB zZgIPQ9PcV?s0~uyyI3I!&W(mZ>8dppZhMF9NO*V`1Llqh`SA}urj29_eHWTj`B0ln z8yM&@DQ)$bwxUph-+HPh16`cCAO5wcnr3%kwqLavmM3}r-xgKBh?h4KA42KZA&p4F z)K~oaX9dVb-l^neqVvc)EdIh4)DG|X;ymF4VMZ(~HSDHg2*7>>hY|OTh~=n>Ex~Y* zt>!OkVA~+#ZQ-{zBshIn2tmTPJ`JH-S{niZZ9QDENux8RuHFcWuEDs^;ZQ-JM-xFJM0ivUkr7eTu{W%D zXo^DUdS9IA(#@orCS$>$o$yN=F-nosJWUE2*VN?r;HzYlS=lzw6if&Ao~R%-}Ag!30`S$nnvJ-b9HNnDckvfkom4R4arvF$n&i1Tlet z$$Ar80Y*sGqEBuRCzZZgf!@hP^%Hy8zp((>386Dl8*zzIa|@scIJ%`q(4Ii%TVzxC z)IA3>eb*q}#An2fAy`H=4G$}O!ibcs+G_?74;q9Dlpt{eFR#ZmZYg!o7tT*`f@;<7AnLHrrFFcqy+hb=IkjY^GjssKD$l4ITxqkncs|Bh(f{Xw2cY7KFrpw`;-NEfN&Y~06|8- z@~0>*4nTG|-u;f)tn^eK6N;Z}r;kp#5pt>fH@HTCMWT{`*bQckFFDpN5SgeZ1hHM& zDkfH#lI)o-`^KVK3<~L6OutgQJmAD1KE_x&I#MS~XV5Ai;veZS0x5n=>+1^yaNrDQ zFdB-Y4pND4fivbJ11-B{gMz?JpF2DE2}ag-k+zl<@O5!Q_tuu*${V6|M$_}> z@3s{8Z)s+>_OQ_Qa3Bws`vN&30kj|70?3)*%b>JXKg0Y8L!1 z)5}cCL_efH0(OGTV)L!3fX*ATZ!yDQ!b@cI(?VtU-H Date: Tue, 16 Nov 2021 16:04:34 +0800 Subject: [PATCH 088/814] add management interface and callback args optimization --- config/config.yaml | 4 +- internal/api/manage/management_chat.go | 45 +++++++++++++++------ internal/rpc/chat/send_msg.go | 55 +++++++++++++++----------- pkg/common/config/config.go | 5 ++- pkg/common/constant/constant.go | 4 ++ pkg/common/http/http_client.go | 14 ++++--- 6 files changed, 84 insertions(+), 43 deletions(-) diff --git a/config/config.yaml b/config/config.yaml index c4b0e49fc..d61763524 100644 --- a/config/config.yaml +++ b/config/config.yaml @@ -143,4 +143,6 @@ tokenpolicy: messagecallback: callbackSwitch: false - callbackUrl: "http://www.xxx.com/msg/judge" \ No newline at end of file + callbackUrl: "http://www.xxx.com/msg/judge" + #TimeOut use second as unit + callbackTimeOut: 10 \ No newline at end of file diff --git a/internal/api/manage/management_chat.go b/internal/api/manage/management_chat.go index a398dce10..3d4487aa5 100644 --- a/internal/api/manage/management_chat.go +++ b/internal/api/manage/management_chat.go @@ -24,15 +24,17 @@ import ( var validate *validator.Validate type paramsManagementSendMsg struct { - OperationID string `json:"operationID" binding:"required"` - SendID string `json:"sendID" binding:"required"` - RecvID string `json:"recvID" binding:"required"` - SenderNickName string `json:"senderNickName" ` - SenderFaceURL string `json:"senderFaceURL" ` - ForceList []string `json:"forceList" ` - Content map[string]interface{} `json:"content" binding:"required"` - ContentType int32 `json:"contentType" binding:"required"` - SessionType int32 `json:"sessionType" binding:"required"` + OperationID string `json:"operationID" binding:"required"` + SendID string `json:"sendID" binding:"required"` + RecvID string `json:"recvID" binding:"required"` + SenderNickName string `json:"senderNickName" ` + SenderFaceURL string `json:"senderFaceURL" ` + SenderPlatformID int32 `json:"senderPlatformID"` + ForceList []string `json:"forceList" ` + Content map[string]interface{} `json:"content" binding:"required"` + ContentType int32 `json:"contentType" binding:"required"` + SessionType int32 `json:"sessionType" binding:"required"` + IsOnlineOnly bool `json:"isOnlineOnly"` } func newUserSendMsgReq(params *paramsManagementSendMsg) *pbChat.UserSendMsgReq { @@ -49,7 +51,11 @@ func newUserSendMsgReq(params *paramsManagementSendMsg) *pbChat.UserSendMsgReq { case constant.File: newContent = utils.StructToJsonString(params.Content) default: - + } + options := make(map[string]int32, 2) + if params.IsOnlineOnly { + options["history"] = 0 + options["persistent"] = 0 } pbData := pbChat.UserSendMsgReq{ ReqIdentifier: constant.WSSendMsg, @@ -57,7 +63,7 @@ func newUserSendMsgReq(params *paramsManagementSendMsg) *pbChat.UserSendMsgReq { SenderNickName: params.SenderNickName, SenderFaceURL: params.SenderFaceURL, OperationID: params.OperationID, - PlatformID: 0, + PlatformID: params.SenderPlatformID, SessionType: params.SessionType, MsgFrom: constant.UserMsgType, ContentType: params.ContentType, @@ -65,6 +71,7 @@ func newUserSendMsgReq(params *paramsManagementSendMsg) *pbChat.UserSendMsgReq { ForceList: params.ForceList, Content: newContent, ClientMsgID: utils.GetMsgID(params.SendID), + Options: utils.MapIntToJsonString(options), } return &pbData } @@ -84,8 +91,24 @@ func ManagementSendMsg(c *gin.Context) { data = TextElem{} case constant.Picture: data = PictureElem{} + case constant.Voice: + data = SoundElem{} + case constant.Video: + data = VideoElem{} + case constant.File: + data = FileElem{} + //case constant.AtText: + // data = AtElem{} + //case constant.Merger: + // data = + //case constant.Card: + //case constant.Location: case constant.Custom: data = CustomElem{} + //case constant.Revoke: + //case constant.HasReadReceipt: + //case constant.Typing: + //case constant.Quote: default: c.JSON(http.StatusBadRequest, gin.H{"errCode": 404, "errMsg": "contentType err"}) log.ErrorByKv("contentType err", c.PostForm("operationID"), "content", c.PostForm("content")) diff --git a/internal/rpc/chat/send_msg.go b/internal/rpc/chat/send_msg.go index 5cfc4ee71..298f3ab65 100644 --- a/internal/rpc/chat/send_msg.go +++ b/internal/rpc/chat/send_msg.go @@ -21,14 +21,16 @@ import ( ) type MsgCallBackReq struct { - SendID string `json:"sendID"` - RecvID string `json:"recvID"` - Content string `json:"content"` - SendTime int64 `json:"sendTime"` - MsgFrom int32 `json:"msgFrom"` - ContentType int32 `json:"contentType"` - SessionType int32 `json:"sessionType"` - PlatformID int32 `json:"senderPlatformID"` + SendID string `json:"sendID"` + RecvID string `json:"recvID"` + Content string `json:"content"` + SendTime int64 `json:"sendTime"` + MsgFrom int32 `json:"msgFrom"` + ContentType int32 `json:"contentType"` + SessionType int32 `json:"sessionType"` + PlatformID int32 `json:"senderPlatformID"` + MsgID string `json:"msgID"` + IsOnlineOnly bool `json:"isOnlineOnly"` } type MsgCallBackResp struct { ErrCode int32 `json:"errCode"` @@ -68,29 +70,36 @@ func (rpc *rpcChat) UserSendMsg(_ context.Context, pb *pbChat.UserSendMsgReq) (* } else { pbData.SendTime = pb.SendTime } - m := MsgCallBackResp{} + Options := utils.JsonStringToMap(pbData.Options) + isHistory := utils.GetSwitchFromOptions(Options, "history") + mReq := MsgCallBackReq{ + SendID: pb.SendID, + RecvID: pb.RecvID, + Content: pb.Content, + SendTime: pbData.SendTime, + MsgFrom: pbData.MsgFrom, + ContentType: pb.ContentType, + SessionType: pb.SessionType, + PlatformID: pb.PlatformID, + MsgID: pb.ClientMsgID, + } + if !isHistory { + mReq.IsOnlineOnly = true + } + mResp := MsgCallBackResp{} if config.Config.MessageCallBack.CallbackSwitch { - bMsg, err := http2.Post(config.Config.MessageCallBack.CallbackUrl, MsgCallBackReq{ - SendID: pb.SendID, - RecvID: pb.RecvID, - Content: pb.Content, - SendTime: pbData.SendTime, - MsgFrom: pbData.MsgFrom, - ContentType: pb.ContentType, - SessionType: pb.SessionType, - PlatformID: pb.PlatformID, - }, "application/json; charset=utf-8") + bMsg, err := http2.Post(config.Config.MessageCallBack.CallbackUrl, mReq, config.Config.MessageCallBack.CallBackTimeOut) if err != nil { log.ErrorByKv("callback to Business server err", pb.OperationID, "args", pb.String(), "err", err.Error()) return returnMsg(&replay, pb, http.StatusInternalServerError, http.StatusText(http.StatusInternalServerError), "", 0) - } else if err = json.Unmarshal(bMsg, &m); err != nil { + } else if err = json.Unmarshal(bMsg, &mResp); err != nil { log.ErrorByKv("ws json Unmarshal err", pb.OperationID, "args", pb.String(), "err", err.Error()) return returnMsg(&replay, pb, 200, err.Error(), "", 0) } else { - if m.ErrCode != 0 { - return returnMsg(&replay, pb, m.ResponseErrCode, m.ErrMsg, "", 0) + if mResp.ErrCode != 0 { + return returnMsg(&replay, pb, mResp.ResponseErrCode, mResp.ErrMsg, "", 0) } else { - pbData.Content = m.ResponseResult.ModifiedMsg + pbData.Content = mResp.ResponseResult.ModifiedMsg } } } diff --git a/pkg/common/config/config.go b/pkg/common/config/config.go index e5d6996a2..9bfdaa6e1 100644 --- a/pkg/common/config/config.go +++ b/pkg/common/config/config.go @@ -155,8 +155,9 @@ type config struct { AccessExpire int64 `yaml:"accessExpire"` } MessageCallBack struct { - CallbackSwitch bool `yaml:"callbackSwitch"` - CallbackUrl string `yaml:"callbackUrl"` + CallbackSwitch bool `yaml:"callbackSwitch"` + CallbackUrl string `yaml:"callbackUrl"` + CallBackTimeOut int `yaml:"callbackTimeOut"` } } diff --git a/pkg/common/constant/constant.go b/pkg/common/constant/constant.go index 8a1aa4029..ca2e70919 100644 --- a/pkg/common/constant/constant.go +++ b/pkg/common/constant/constant.go @@ -32,9 +32,13 @@ const ( Video = 104 File = 105 AtText = 106 + Merger = 107 + Card = 108 + Location = 109 Custom = 110 HasReadReceipt = 112 Typing = 113 + Quote = 114 Common = 200 GroupMsg = 201 diff --git a/pkg/common/http/http_client.go b/pkg/common/http/http_client.go index 85f2c9f79..4d480770a 100644 --- a/pkg/common/http/http_client.go +++ b/pkg/common/http/http_client.go @@ -29,22 +29,24 @@ func Get(url string) (response []byte, err error) { } //application/json; charset=utf-8 -func Post(url string, data interface{}, contentType string) (content []byte, err error) { - jsonStr, _ := json.Marshal(data) +func Post(url string, data interface{}, timeOutSecond int) (content []byte, err error) { + jsonStr, err := json.Marshal(data) + if err != nil { + return nil, err + } req, err := http.NewRequest("POST", url, bytes.NewBuffer(jsonStr)) if err != nil { return nil, err } - req.Header.Add("content-type", contentType) - defer req.Body.Close() + req.Close = true + req.Header.Add("content-type", "application/json; charset=utf-8") - client := &http.Client{Timeout: 5 * time.Second} + client := &http.Client{Timeout: time.Duration(timeOutSecond) * time.Second} resp, err := client.Do(req) if err != nil { return nil, err } defer resp.Body.Close() - result, err := ioutil.ReadAll(resp.Body) if err != nil { return nil, err From 75a638f728044f54bdda0dcaf72ae4549671a9d1 Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Tue, 23 Nov 2021 09:57:09 +0800 Subject: [PATCH 089/814] configure update --- config/config.yaml | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/config/config.yaml b/config/config.yaml index d61763524..05159f0b9 100644 --- a/config/config.yaml +++ b/config/config.yaml @@ -8,7 +8,7 @@ etcd: etcdAddr: [ 127.0.0.1:2379 ] mysql: - dbMysqlAddress: [ 127.0.0.1:3306 ] + dbMysqlAddress: [ 127.0.0.1:13306 ] dbMysqlUserName: root dbMysqlPassword: openIM dbMysqlDatabaseName: openIM @@ -19,18 +19,18 @@ mysql: dbMaxLifeTime: 120 mongo: - dbAddress: [ 127.0.0.1:27017 ] + dbAddress: [ 127.0.0.1:37017 ] dbDirect: false dbTimeout: 10 dbDatabase: openIM dbSource: admin - dbUserName: - dbPassword: + dbUserName: openIM + dbPassword: openIM dbMaxPoolSize: 20 dbRetainChatRecords: 7 redis: - dbAddress: 127.0.0.1:6379 + dbAddress: 127.0.0.1:16379 dbMaxIdle: 128 dbMaxActive: 0 dbIdleTimeout: 120 @@ -145,4 +145,4 @@ messagecallback: callbackSwitch: false callbackUrl: "http://www.xxx.com/msg/judge" #TimeOut use second as unit - callbackTimeOut: 10 \ No newline at end of file + callbackTimeOut: 10 From 1c9c91137328c6fa9031729320996732443e02fa Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Tue, 23 Nov 2021 09:57:58 +0800 Subject: [PATCH 090/814] configure update --- docker-compose.yaml | 49 ++++++++++++++------------------------------- 1 file changed, 15 insertions(+), 34 deletions(-) diff --git a/docker-compose.yaml b/docker-compose.yaml index 1d64dcd9f..75ffcabea 100644 --- a/docker-compose.yaml +++ b/docker-compose.yaml @@ -5,7 +5,8 @@ services: mysql: image: mysql:5.7 ports: - - 3306:3306 + - 13306:3306 + - 23306:33060 container_name: mysql volumes: - ./components/mysql/data:/var/lib/mysql @@ -17,18 +18,23 @@ services: mongodb: image: mongo:4.0 ports: - - 27017:27017 + - 37017:27017 container_name: mongo volumes: - - ./components/mongodb/data:/data/db + - ./components/mongodb/data/db:/data/db + - ./components/mongodb/data/logs:/data/logs + - ./components/mongodb/data/conf:/etc/mongo environment: - TZ: Asia/Shanghai + - MONGO_INITDB_ROOT_USERNAME=openIM + - MONGO_INITDB_ROOT_PASSWORD=openIM + + #TZ: Asia/Shanghai restart: always redis: image: redis ports: - - 6379:6379 + - 16379:6379 container_name: redis volumes: - ./components/redis/data:/data @@ -82,38 +88,13 @@ services: restart: always 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 - - #fixme-----build from dockerfile--------- - # open-im-server: - # image: open_im_server - # container_name: open-im-server - # volumes: - # - ./logs:/Open-IM-Server/logs - # - ./config/config.yaml:/Open-IM-Server/config/config.yaml - # restart: always - # build: - # context: . - # dockerfile: deploy.Dockerfile - # depends_on: - # - mysql - # - mongodb - # - redis - # - kafka - # - etcd - # network_mode: "host" - # logging: - # driver: json-file - # options: - # max-size: "1g" - # max-file: "2" - - #fixme----build from docker hub------ - open-im-server: - image: lyt1123/open_im_server - container_name: open-im-server + open_im_server: + image: openim/open_im_server + container_name: open_im_server volumes: - ./logs:/Open-IM-Server/logs - ./config/config.yaml:/Open-IM-Server/config/config.yaml + - ./db/sdk:/Open-IM-Server/db/sdk restart: always depends_on: - kafka From 4bb64e301ed6f6e747ccb5bd16f924ce07dd96a1 Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Tue, 23 Nov 2021 10:54:40 +0800 Subject: [PATCH 091/814] open-im-server -> open_im_server --- script/docker_check_service.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/script/docker_check_service.sh b/script/docker_check_service.sh index e380cb3fb..c987f3d8b 100644 --- a/script/docker_check_service.sh +++ b/script/docker_check_service.sh @@ -6,7 +6,7 @@ docker_compose_components=( etcd mongo mysql - open-im-server + open_im_server redis kafka zookeeper From b9e49e37ea44e79279f22964b39b4ae32c851bc6 Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Tue, 23 Nov 2021 15:30:28 +0800 Subject: [PATCH 092/814] sleep 15 --- script/docker_start_all.sh | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/script/docker_start_all.sh b/script/docker_start_all.sh index 839a46688..250f1e46b 100644 --- a/script/docker_start_all.sh +++ b/script/docker_start_all.sh @@ -12,13 +12,15 @@ need_to_start_server_shell=( timer_start.sh ) -#fixme The 10 second delay to start the project is for the docker-compose one-click to start openIM when the infrastructure dependencies are not started -sleep 10 + for i in ${need_to_start_server_shell[*]}; do chmod +x $i ./$i done +#fixme The 15 second delay to start the project is for the docker-compose one-click to start openIM when the infrastructure dependencies are not started +sleep 15 + #fixme prevents the openIM service exit after execution in the docker container tail -f /dev/null From 1363c98cd8f717ec5fea51760117f6bc255fadb5 Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Wed, 24 Nov 2021 09:39:10 +0800 Subject: [PATCH 093/814] 0.0.0.0 --- config/config.yaml | 2 +- go.sum | 3 --- 2 files changed, 1 insertion(+), 4 deletions(-) diff --git a/config/config.yaml b/config/config.yaml index 05159f0b9..5ac564915 100644 --- a/config/config.yaml +++ b/config/config.yaml @@ -57,7 +57,7 @@ kafka: # otherwise the configuration ip is preferred serverip: -api: +api: 0.0.0.0 openImApiPort: [ 10000 ] sdk: openImSdkWsPort: [ 30000 ] diff --git a/go.sum b/go.sum index e50dd1004..e9736d808 100644 --- a/go.sum +++ b/go.sum @@ -108,7 +108,6 @@ github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMyw github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.3/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= -github.com/google/go-cmp v0.5.5 h1:Khx7svrCpmxxtHBq5j2mp/xVjsi8hQMfNLvJFAlrGgU= github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.6 h1:BKbKCqvP6I+rmFHt06ZmyQtvB8xAkWdhFyr0ZUNZcxQ= github.com/google/go-cmp v0.5.6/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= @@ -148,12 +147,10 @@ github.com/kisielk/errcheck v1.1.0/go.mod h1:EZBBE59ingxPouuu3KfxchcWSUPOHkagtvW github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod h1:+0opPa2QZZtGFBFZlji/RkVcI2GknAs/DXo4wKdlNEc= -github.com/kr/pretty v0.1.0 h1:L/CwN0zerZDmRFUapSPitk6f+Q3+0za1rQkzVuMiMFI= github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= github.com/kr/pretty v0.3.0 h1:WgNl7dwNpEZ6jJ9k1snq4pZsg7DOEN8hP9Xw0Tsjwk0= github.com/kr/pretty v0.3.0/go.mod h1:640gp4NfQd8pI5XOwp5fnNeVWj67G7CFk/SaSQn7NBk= github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= -github.com/kr/text v0.1.0 h1:45sCR5RtlFHMR4UwH9sdQ5TC8v0qDQCHnXt+kaKSTVE= github.com/kr/text v0.1.0/go.mod h1:4Jbv+DJW3UT/LiOwJeYQe1efqtUx/iVham/4vfdArNI= github.com/kr/text v0.2.0 h1:5Nx0Ya0ZqY2ygV366QzturHI13Jq95ApcVaJBhpS+AY= github.com/kr/text v0.2.0/go.mod h1:eLer722TekiGuMkidMxC/pM04lWEeraHUUmBw8l2grE= From 912ec51315630616e2eae3c5f568aa349a0f6dbc Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Wed, 24 Nov 2021 10:19:12 +0800 Subject: [PATCH 094/814] sleep 10 15 --- docker-compose.yaml | 1 + script/docker_start_all.sh | 4 ++-- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/docker-compose.yaml b/docker-compose.yaml index 75ffcabea..74f8bc1c4 100644 --- a/docker-compose.yaml +++ b/docker-compose.yaml @@ -95,6 +95,7 @@ services: - ./logs:/Open-IM-Server/logs - ./config/config.yaml:/Open-IM-Server/config/config.yaml - ./db/sdk:/Open-IM-Server/db/sdk + - ./script:/Open-IM-Server/script restart: always depends_on: - kafka diff --git a/script/docker_start_all.sh b/script/docker_start_all.sh index 250f1e46b..5d0c19b2e 100644 --- a/script/docker_start_all.sh +++ b/script/docker_start_all.sh @@ -12,14 +12,14 @@ need_to_start_server_shell=( timer_start.sh ) - +#fixme The 10 second delay to start the project is for the docker-compose one-click to start openIM when the infrastructure dependencies are not started +sleep 10 for i in ${need_to_start_server_shell[*]}; do chmod +x $i ./$i done -#fixme The 15 second delay to start the project is for the docker-compose one-click to start openIM when the infrastructure dependencies are not started sleep 15 #fixme prevents the openIM service exit after execution in the docker container From 06551575b119380ecdd53612688ea7f891adb2f6 Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Thu, 25 Nov 2021 13:57:11 +0800 Subject: [PATCH 095/814] 0.0.0.0 --- config/config.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/config/config.yaml b/config/config.yaml index 5ac564915..51d6451b8 100644 --- a/config/config.yaml +++ b/config/config.yaml @@ -55,9 +55,9 @@ kafka: # The service ip default is empty, # automatically obtain the machine's valid network card ip as the service ip, # otherwise the configuration ip is preferred -serverip: +serverip: 0.0.0.0 -api: 0.0.0.0 +api: openImApiPort: [ 10000 ] sdk: openImSdkWsPort: [ 30000 ] From e7e3b6dd15126a47616eaccb7aae4a90df843498 Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Thu, 25 Nov 2021 14:12:52 +0800 Subject: [PATCH 096/814] multi terminal kick eachOther --- config/config.yaml | 5 +- internal/api/chat/get_max_min_seq.go | 6 +- internal/api/chat/pull_msg.go | 10 +- .../api/group/get_group_applicationList.go | 4 +- .../api/group/group_application_response.go | 4 +- internal/api/group/transfer_group_owner.go | 4 +- internal/api/manage/management_chat.go | 3 +- .../third/tencent_cloud_storage_credential.go | 3 +- internal/msg_gateway/gate/logic.go | 2 +- internal/msg_gateway/gate/rpc_server.go | 10 +- internal/msg_gateway/gate/ws_server.go | 87 ++++++++-- internal/push/jpush/requestBody/platform.go | 6 +- internal/push/logic/init.go | 4 +- internal/push/logic/push_to_client.go | 2 +- internal/rpc/auth/user_token.go | 4 +- internal/rpc/friend/add_blacklist.go | 10 +- internal/rpc/friend/add_friend.go | 19 +-- internal/rpc/friend/add_friend_response.go | 10 +- internal/rpc/friend/delete_friend.go | 10 +- internal/rpc/friend/get_blacklist.go | 10 +- internal/rpc/friend/get_firends_info.go | 7 +- internal/rpc/friend/get_friend_apply_list.go | 16 +- internal/rpc/friend/get_friend_list.go | 9 +- internal/rpc/friend/is_friend.go | 7 +- internal/rpc/friend/remove_blacklist.go | 10 +- internal/rpc/friend/set_friend_comment.go | 10 +- internal/rpc/group/create_group.go | 13 +- internal/rpc/group/get_groups_info.go | 8 +- internal/rpc/group/group.go | 37 ++--- internal/rpc/group/join_group.go | 12 +- internal/rpc/group/quit_group.go | 14 +- internal/rpc/group/set_group_info.go | 13 +- internal/rpc/user/management_user.go | 12 +- internal/rpc/user/update_user_info.go | 7 +- internal/utils/jwt_token_test.go | 29 ++-- .../utils/platform_number_id_to_name_test.go | 60 +++---- pkg/common/config/config.go | 8 +- pkg/common/constant/constant.go | 16 ++ pkg/common/{config => constant}/error.go | 25 ++- .../constant}/platform_number_id_to_name.go | 6 +- pkg/common/db/redisModel.go | 45 +++--- .../multi_terminal_login.go | 142 ++++++++-------- pkg/common/token_verify/jwt_token.go | 144 +++++++++++++++++ pkg/utils/jwt_token.go | 153 ------------------ pkg/utils/strings.go | 3 + 45 files changed, 554 insertions(+), 465 deletions(-) rename pkg/common/{config => constant}/error.go (73%) rename pkg/{utils => common/constant}/platform_number_id_to_name.go (94%) create mode 100644 pkg/common/token_verify/jwt_token.go delete mode 100644 pkg/utils/jwt_token.go diff --git a/config/config.yaml b/config/config.yaml index 5ac564915..4da435a3c 100644 --- a/config/config.yaml +++ b/config/config.yaml @@ -130,10 +130,7 @@ manager: secret: tuoyun -multiloginpolicy: - onlyOneTerminalAccess: false - mobileAndPCTerminalAccessButOtherTerminalKickEachOther: true - allTerminalAccess: false +multiloginpolicy: 1 #token config tokenpolicy: diff --git a/internal/api/chat/get_max_min_seq.go b/internal/api/chat/get_max_min_seq.go index 06db8fd9d..7103cae4a 100644 --- a/internal/api/chat/get_max_min_seq.go +++ b/internal/api/chat/get_max_min_seq.go @@ -3,9 +3,9 @@ package apiChat import ( "Open_IM/pkg/common/config" "Open_IM/pkg/common/log" + "Open_IM/pkg/common/token_verify" "Open_IM/pkg/grpc-etcdv3/getcdv3" pbMsg "Open_IM/pkg/proto/chat" - "Open_IM/pkg/utils" "context" "github.com/gin-gonic/gin" "net/http" @@ -27,8 +27,8 @@ func UserGetSeq(c *gin.Context) { } token := c.Request.Header.Get("token") - if !utils.VerifyToken(token, params.SendID) { - c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": "token validate err"}) + if ok, err := token_verify.VerifyToken(token, params.SendID); !ok { + c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": "token validate err" + err.Error()}) return } pbData := pbMsg.GetMaxAndMinSeqReq{} diff --git a/internal/api/chat/pull_msg.go b/internal/api/chat/pull_msg.go index 4fb90b61f..46b568284 100644 --- a/internal/api/chat/pull_msg.go +++ b/internal/api/chat/pull_msg.go @@ -3,9 +3,9 @@ package apiChat import ( "Open_IM/pkg/common/config" "Open_IM/pkg/common/log" + "Open_IM/pkg/common/token_verify" "Open_IM/pkg/grpc-etcdv3/getcdv3" "Open_IM/pkg/proto/chat" - "Open_IM/pkg/utils" "context" "github.com/gin-gonic/gin" "net/http" @@ -30,8 +30,8 @@ func UserPullMsg(c *gin.Context) { } token := c.Request.Header.Get("token") - if !utils.VerifyToken(token, params.SendID) { - c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": "token validate err"}) + if ok, err := token_verify.VerifyToken(token, params.SendID); !ok { + c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": "token validate err" + err.Error()}) return } pbData := pbChat.PullMessageReq{} @@ -86,8 +86,8 @@ func UserPullMsgBySeqList(c *gin.Context) { } token := c.Request.Header.Get("token") - if !utils.VerifyToken(token, params.SendID) { - c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": "token validate err"}) + if ok, err := token_verify.VerifyToken(token, params.SendID); !ok { + c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": "token validate err" + err.Error()}) return } pbData := pbChat.PullMessageBySeqListReq{} diff --git a/internal/api/group/get_group_applicationList.go b/internal/api/group/get_group_applicationList.go index faceb921e..a9fa1c73c 100644 --- a/internal/api/group/get_group_applicationList.go +++ b/internal/api/group/get_group_applicationList.go @@ -3,9 +3,9 @@ package group import ( "Open_IM/pkg/common/config" "Open_IM/pkg/common/log" + "Open_IM/pkg/common/token_verify" "Open_IM/pkg/grpc-etcdv3/getcdv3" "Open_IM/pkg/proto/group" - "Open_IM/pkg/utils" "context" "github.com/gin-gonic/gin" "net/http" @@ -56,7 +56,7 @@ func GetGroupApplicationList(c *gin.Context) { pbData := newUserRegisterReq(¶ms) token := c.Request.Header.Get("token") - if claims, err := utils.ParseToken(token); err != nil { + if claims, err := token_verify.ParseToken(token); err != nil { c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": "token validate err"}) return } else { diff --git a/internal/api/group/group_application_response.go b/internal/api/group/group_application_response.go index 70dd966eb..ea38d45a1 100644 --- a/internal/api/group/group_application_response.go +++ b/internal/api/group/group_application_response.go @@ -3,9 +3,9 @@ package group import ( "Open_IM/pkg/common/config" "Open_IM/pkg/common/log" + "Open_IM/pkg/common/token_verify" "Open_IM/pkg/grpc-etcdv3/getcdv3" "Open_IM/pkg/proto/group" - "Open_IM/pkg/utils" "context" "github.com/gin-gonic/gin" "net/http" @@ -63,7 +63,7 @@ func ApplicationGroupResponse(c *gin.Context) { pbData := newGroupApplicationResponse(¶ms) token := c.Request.Header.Get("token") - if claims, err := utils.ParseToken(token); err != nil { + if claims, err := token_verify.ParseToken(token); err != nil { c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": "token validate err"}) return } else { diff --git a/internal/api/group/transfer_group_owner.go b/internal/api/group/transfer_group_owner.go index f7baaba3f..d8cc9d662 100644 --- a/internal/api/group/transfer_group_owner.go +++ b/internal/api/group/transfer_group_owner.go @@ -3,9 +3,9 @@ package group import ( "Open_IM/pkg/common/config" "Open_IM/pkg/common/log" + "Open_IM/pkg/common/token_verify" "Open_IM/pkg/grpc-etcdv3/getcdv3" "Open_IM/pkg/proto/group" - "Open_IM/pkg/utils" "context" "github.com/gin-gonic/gin" "net/http" @@ -41,7 +41,7 @@ func TransferGroupOwner(c *gin.Context) { pbData := newTransferGroupOwnerReq(¶ms) token := c.Request.Header.Get("token") - if claims, err := utils.ParseToken(token); err != nil { + if claims, err := token_verify.ParseToken(token); err != nil { c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": "token validate err"}) return } else { diff --git a/internal/api/manage/management_chat.go b/internal/api/manage/management_chat.go index 3d4487aa5..ba056eba1 100644 --- a/internal/api/manage/management_chat.go +++ b/internal/api/manage/management_chat.go @@ -10,6 +10,7 @@ import ( "Open_IM/pkg/common/config" "Open_IM/pkg/common/constant" "Open_IM/pkg/common/log" + "Open_IM/pkg/common/token_verify" "Open_IM/pkg/grpc-etcdv3/getcdv3" pbChat "Open_IM/pkg/proto/chat" "Open_IM/pkg/utils" @@ -125,7 +126,7 @@ func ManagementSendMsg(c *gin.Context) { } token := c.Request.Header.Get("token") - claims, err := utils.ParseToken(token) + claims, err := token_verify.ParseToken(token) if err != nil { log.NewError(params.OperationID, "parse token failed", err.Error()) c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": "parse token failed", "sendTime": 0, "MsgID": ""}) diff --git a/internal/api/third/tencent_cloud_storage_credential.go b/internal/api/third/tencent_cloud_storage_credential.go index af68d8fd8..d6814bc93 100644 --- a/internal/api/third/tencent_cloud_storage_credential.go +++ b/internal/api/third/tencent_cloud_storage_credential.go @@ -2,6 +2,7 @@ package apiThird import ( "Open_IM/pkg/common/config" + "Open_IM/pkg/common/constant" log2 "Open_IM/pkg/common/log" "github.com/gin-gonic/gin" sts "github.com/tencentyun/qcloud-cos-sts-sdk/go" @@ -70,7 +71,7 @@ func TencentCloudStorageCredential(c *gin.Context) { if err != nil { log2.Error(c.Request.Header.Get("token"), c.PostForm("optionID"), "api TencentUpLoadCredential cli.GetCredential err = %s", err.Error()) c.JSON(http.StatusOK, gin.H{ - "errCode": config.ErrTencentCredential.ErrCode, + "errCode": constant.ErrTencentCredential.ErrCode, "errMsg": err.Error(), "bucket": "", "region": "", diff --git a/internal/msg_gateway/gate/logic.go b/internal/msg_gateway/gate/logic.go index 9eadb529e..9b449d4b2 100644 --- a/internal/msg_gateway/gate/logic.go +++ b/internal/msg_gateway/gate/logic.go @@ -30,7 +30,7 @@ func (ws *WServer) msgParse(conn *UserConn, binaryMsg []byte) { dec := gob.NewDecoder(b) err := dec.Decode(&m) if err != nil { - log.ErrorByKv("ws json Unmarshal err", "", "err", err.Error()) + log.ErrorByKv("ws Decode err", "", "err", err.Error()) ws.sendErrMsg(conn, 200, err.Error(), constant.WSDataError, "", "") err = conn.Close() if err != nil { diff --git a/internal/msg_gateway/gate/rpc_server.go b/internal/msg_gateway/gate/rpc_server.go index 468d0f5dd..f87e8a4ff 100644 --- a/internal/msg_gateway/gate/rpc_server.go +++ b/internal/msg_gateway/gate/rpc_server.go @@ -103,14 +103,14 @@ func (r *RPCServer) MsgToUser(_ context.Context, in *pbRelay.MsgToUserReq) (*pbR temp := &pbRelay.SingleMsgToUser{ ResultCode: resultCode, RecvID: UIDAndPID[0], - RecvPlatFormID: utils.PlatformNameToID(UIDAndPID[1]), + RecvPlatFormID: constant.PlatformNameToID(UIDAndPID[1]), } resp = append(resp, temp) } else { temp := &pbRelay.SingleMsgToUser{ ResultCode: -1, RecvID: UIDAndPID[0], - RecvPlatFormID: utils.PlatformNameToID(UIDAndPID[1]), + RecvPlatFormID: constant.PlatformNameToID(UIDAndPID[1]), } resp = append(resp, temp) } @@ -127,7 +127,7 @@ func sendMsgToUser(conn *UserConn, bMsg []byte, in *pbRelay.MsgToUserReq, RecvPl err := ws.writeMsg(conn, websocket.BinaryMessage, bMsg) if err != nil { log.ErrorByKv("PushMsgToUser is failed By Ws", "", "Addr", conn.RemoteAddr().String(), - "error", err, "senderPlatform", utils.PlatformIDToName(in.PlatformID), "recvPlatform", RecvPlatForm, "args", in.String(), "recvID", RecvID) + "error", err, "senderPlatform", constant.PlatformIDToName(in.PlatformID), "recvPlatform", RecvPlatForm, "args", in.String(), "recvID", RecvID) ResultCode = -2 return ResultCode } else { @@ -138,8 +138,8 @@ func sendMsgToUser(conn *UserConn, bMsg []byte, in *pbRelay.MsgToUserReq, RecvPl } func genUidPlatformArray(uid string) (array []string) { - for i := 1; i <= utils.LinuxPlatformID; i++ { - array = append(array, uid+" "+utils.PlatformIDToName(int32(i))) + for i := 1; i <= constant.LinuxPlatformID; i++ { + array = append(array, uid+" "+constant.PlatformIDToName(int32(i))) } return array } diff --git a/internal/msg_gateway/gate/ws_server.go b/internal/msg_gateway/gate/ws_server.go index 8faa748a9..0f9c74d36 100644 --- a/internal/msg_gateway/gate/ws_server.go +++ b/internal/msg_gateway/gate/ws_server.go @@ -2,8 +2,13 @@ package gate import ( "Open_IM/pkg/common/config" + "Open_IM/pkg/common/constant" + "Open_IM/pkg/common/db" "Open_IM/pkg/common/log" + "Open_IM/pkg/common/token_verify" "Open_IM/pkg/utils" + "bytes" + "encoding/gob" "github.com/gorilla/websocket" "net/http" "sync" @@ -53,10 +58,10 @@ func (ws *WServer) wsHandler(w http.ResponseWriter, r *http.Request) { } else { //Connection mapping relationship, //userID+" "+platformID->conn - SendID := query["sendID"][0] + " " + utils.PlatformIDToName(int32(utils.StringToInt64(query["platformID"][0]))) + //Initialize a lock for each user newConn := &UserConn{conn, new(sync.Mutex)} - ws.addUserConn(SendID, newConn) + ws.addUserConn(query["sendID"][0], int32(utils.StringToInt64(query["platformID"][0])), newConn, query["token"][0]) go ws.readMsg(newConn) } } @@ -86,20 +91,66 @@ func (ws *WServer) writeMsg(conn *UserConn, a int, msg []byte) error { return conn.WriteMessage(a, msg) } -func (ws *WServer) addUserConn(uid string, conn *UserConn) { - rwLock.Lock() - defer rwLock.Unlock() - if oldConn, ok := ws.wsUserToConn[uid]; ok { - err := oldConn.Close() - delete(ws.wsConnToUser, oldConn) - if err != nil { - log.ErrorByKv("close err", "", "uid", uid, "conn", conn) +func (ws *WServer) MultiTerminalLoginChecker(uid string, platformID int32, newConn *UserConn, token string) { + switch config.Config.MultiLoginPolicy { + case constant.AllLoginButSameTermKick: + if oldConn, ok := ws.wsUserToConn[genMapKey(uid, platformID)]; ok { + ws.sendKickMsg(oldConn, newConn) + m, err := db.DB.GetTokenMapByUidPid(uid, utils.Int32ToString(platformID)) + if err != nil { + log.NewError("", "get token from redis err", err.Error()) + return + } + if m == nil { + log.NewError("", "get token from redis err", "m is nil") + return + } + for k, _ := range m { + if k != token { + m[k] = constant.KickedToken + } + } + err = db.DB.SetTokenMapByUidPid(uid, utils.Int32ToString(platformID), m) + if err != nil { + log.NewError("", "SetTokenMapByUidPid err", err.Error()) + return + } + err = oldConn.Close() + delete(ws.wsConnToUser, oldConn) + if err != nil { + log.NewError("", "conn close err", err.Error()) + } } - } else { - log.InfoByKv("this user is first login", "", "uid", uid) + + case constant.SingleTerminalLogin: + case constant.WebAndOther: + } +} +func (ws *WServer) sendKickMsg(oldConn, newConn *UserConn) { + mReply := Resp{ + ReqIdentifier: constant.WSKickOnlineMsg, + ErrCode: constant.ErrTokenInvalid.ErrCode, + ErrMsg: constant.ErrTokenInvalid.ErrMsg, } - ws.wsConnToUser[conn] = uid - ws.wsUserToConn[uid] = conn + var b bytes.Buffer + enc := gob.NewEncoder(&b) + err := enc.Encode(mReply) + if err != nil { + log.NewError(mReply.OperationID, mReply.ReqIdentifier, mReply.ErrCode, mReply.ErrMsg, "Encode Msg error", oldConn.RemoteAddr().String(), newConn.RemoteAddr().String(), err.Error()) + return + } + err = ws.writeMsg(oldConn, websocket.BinaryMessage, b.Bytes()) + if err != nil { + log.NewError(mReply.OperationID, mReply.ReqIdentifier, mReply.ErrCode, mReply.ErrMsg, "WS WriteMsg error", oldConn.RemoteAddr().String(), newConn.RemoteAddr().String(), err.Error()) + } +} +func (ws *WServer) addUserConn(uid string, platformID int32, conn *UserConn, token string) { + key := genMapKey(uid, platformID) + rwLock.Lock() + defer rwLock.Unlock() + ws.MultiTerminalLoginChecker(uid, platformID, conn, token) + ws.wsConnToUser[conn] = key + ws.wsUserToConn[key] = conn log.WarnByKv("WS Add operation", "", "wsUser added", ws.wsUserToConn, "uid", uid, "online_num", len(ws.wsUserToConn)) } @@ -146,10 +197,11 @@ func (ws *WServer) headerCheck(w http.ResponseWriter, r *http.Request) bool { status := http.StatusUnauthorized query := r.URL.Query() if len(query["token"]) != 0 && len(query["sendID"]) != 0 && len(query["platformID"]) != 0 { - if !utils.VerifyToken(query["token"][0], query["sendID"][0]) { + if ok, err := token_verify.VerifyToken(query["token"][0], query["sendID"][0]); !ok { + e := err.(*constant.ErrInfo) log.ErrorByKv("Token verify failed", "", "query", query) w.Header().Set("Sec-Websocket-Version", "13") - http.Error(w, http.StatusText(status), status) + http.Error(w, e.ErrMsg, int(e.ErrCode)) return false } else { log.InfoByKv("Connection Authentication Success", "", "token", query["token"][0], "userID", query["sendID"][0]) @@ -163,3 +215,6 @@ func (ws *WServer) headerCheck(w http.ResponseWriter, r *http.Request) bool { } } +func genMapKey(uid string, platformID int32) string { + return uid + " " + constant.PlatformIDToName(platformID) +} diff --git a/internal/push/jpush/requestBody/platform.go b/internal/push/jpush/requestBody/platform.go index 47a08fc57..0f9d243cf 100644 --- a/internal/push/jpush/requestBody/platform.go +++ b/internal/push/jpush/requestBody/platform.go @@ -1,7 +1,7 @@ package requestBody import ( - "Open_IM/pkg/utils" + "Open_IM/pkg/common/constant" "errors" ) @@ -53,9 +53,9 @@ func (p *Platform) Set(os string) error { } func (p *Platform) SetPlatform(platform string) error { switch platform { - case utils.AndroidPlatformStr: + case constant.AndroidPlatformStr: return p.SetAndroid() - case utils.IOSPlatformStr: + case constant.IOSPlatformStr: return p.SetIOS() default: return errors.New("platform err") diff --git a/internal/push/logic/init.go b/internal/push/logic/init.go index 9fba41bdd..b8941cc6f 100644 --- a/internal/push/logic/init.go +++ b/internal/push/logic/init.go @@ -8,9 +8,9 @@ package logic import ( "Open_IM/pkg/common/config" + "Open_IM/pkg/common/constant" "Open_IM/pkg/common/kafka" "Open_IM/pkg/common/log" - "Open_IM/pkg/utils" ) var ( @@ -24,7 +24,7 @@ func Init(rpcPort int) { log.NewPrivateLog(config.Config.ModuleName.PushName) rpcServer.Init(rpcPort) pushCh.Init() - pushTerminal = []int32{utils.IOSPlatformID, utils.AndroidPlatformID} + pushTerminal = []int32{constant.IOSPlatformID, constant.AndroidPlatformID} } func init() { producer = kafka.NewKafkaProducer(config.Config.Kafka.Ws2mschat.Addr, config.Config.Kafka.Ws2mschat.Topic) diff --git a/internal/push/logic/push_to_client.go b/internal/push/logic/push_to_client.go index 9a8effee8..21916a68d 100644 --- a/internal/push/logic/push_to_client.go +++ b/internal/push/logic/push_to_client.go @@ -97,7 +97,7 @@ func MsgToUser(sendPbData *pbRelay.MsgToUserReq, OfflineInfo, Options string) { default: content = constant.ContentType2PushContent[constant.Common] } - pushResult, err := push.JGAccountListPush(UIDList, content, jsonCustomContent, utils.PlatformIDToName(t)) + pushResult, err := push.JGAccountListPush(UIDList, content, jsonCustomContent, constant.PlatformIDToName(t)) if err != nil { log.NewError(sendPbData.OperationID, "offline push error", sendPbData.String(), err.Error(), t) } else { diff --git a/internal/rpc/auth/user_token.go b/internal/rpc/auth/user_token.go index 6ebb2900b..a1455b237 100644 --- a/internal/rpc/auth/user_token.go +++ b/internal/rpc/auth/user_token.go @@ -3,8 +3,8 @@ package auth import ( "Open_IM/pkg/common/db/mysql_model/im_mysql_model" "Open_IM/pkg/common/log" + "Open_IM/pkg/common/token_verify" pbAuth "Open_IM/pkg/proto/auth" - "Open_IM/pkg/utils" "context" ) @@ -18,7 +18,7 @@ func (rpc *rpcAuth) UserToken(_ context.Context, pb *pbAuth.UserTokenReq) (*pbAu } log.Info("", "", "rpc user_token call..., im_mysql_model.AppServerFindFromUserByUserID") - tokens, expTime, err := utils.CreateToken(pb.UID, pb.Platform) + tokens, expTime, err := token_verify.CreateToken(pb.UID, pb.Platform) if err != nil { log.Error("", "", "rpc user_token call..., utils.CreateToken fail [uid: %s] [err: %s]", pb.UID, err.Error()) return &pbAuth.UserTokenResp{ErrCode: 500, ErrMsg: err.Error()}, err diff --git a/internal/rpc/friend/add_blacklist.go b/internal/rpc/friend/add_blacklist.go index f490a2934..07fa2d032 100644 --- a/internal/rpc/friend/add_blacklist.go +++ b/internal/rpc/friend/add_blacklist.go @@ -2,8 +2,10 @@ package friend import ( "Open_IM/pkg/common/config" + "Open_IM/pkg/common/constant" "Open_IM/pkg/common/db/mysql_model/im_mysql_model" "Open_IM/pkg/common/log" + "Open_IM/pkg/common/token_verify" pbFriend "Open_IM/pkg/proto/friend" "Open_IM/pkg/utils" "context" @@ -12,10 +14,10 @@ import ( func (s *friendServer) AddBlacklist(ctx context.Context, req *pbFriend.AddBlacklistReq) (*pbFriend.CommonResp, error) { log.Info(req.Token, req.OperationID, "rpc add blacklist is server,args=%s", req.String()) //Parse token, to find current user information - claims, err := utils.ParseToken(req.Token) + claims, err := token_verify.ParseToken(req.Token) if err != nil { log.Error(req.Token, req.OperationID, "err=%s,parse token failed", err.Error()) - return &pbFriend.CommonResp{ErrorCode: config.ErrParseToken.ErrCode, ErrorMsg: config.ErrParseToken.ErrMsg}, nil + return &pbFriend.CommonResp{ErrorCode: constant.ErrParseToken.ErrCode, ErrorMsg: constant.ErrParseToken.ErrMsg}, nil } isMagagerFlag := 0 @@ -29,7 +31,7 @@ func (s *friendServer) AddBlacklist(ctx context.Context, req *pbFriend.AddBlackl err = im_mysql_model.InsertInToUserBlackList(claims.UID, req.Uid) if err != nil { log.Error(req.Token, req.OperationID, "err=%s,Failed to add blacklist", err.Error()) - return &pbFriend.CommonResp{ErrorCode: config.ErrMysql.ErrCode, ErrorMsg: config.ErrMysql.ErrMsg}, nil + return &pbFriend.CommonResp{ErrorCode: constant.ErrMysql.ErrCode, ErrorMsg: constant.ErrMysql.ErrMsg}, nil } log.Info(req.Token, req.OperationID, "rpc add blacklist success return,uid=%s", req.Uid) return &pbFriend.CommonResp{}, nil @@ -38,7 +40,7 @@ func (s *friendServer) AddBlacklist(ctx context.Context, req *pbFriend.AddBlackl err = im_mysql_model.InsertInToUserBlackList(req.OwnerUid, req.Uid) if err != nil { log.Error(req.Token, req.OperationID, "err=%s,Failed to add blacklist", err.Error()) - return &pbFriend.CommonResp{ErrorCode: config.ErrMysql.ErrCode, ErrorMsg: config.ErrMysql.ErrMsg}, nil + return &pbFriend.CommonResp{ErrorCode: constant.ErrMysql.ErrCode, ErrorMsg: constant.ErrMysql.ErrMsg}, nil } log.Info(req.Token, req.OperationID, "rpc add blacklist success return,uid=%s", req.Uid) return &pbFriend.CommonResp{}, nil diff --git a/internal/rpc/friend/add_friend.go b/internal/rpc/friend/add_friend.go index bda0de95c..cc10572b5 100644 --- a/internal/rpc/friend/add_friend.go +++ b/internal/rpc/friend/add_friend.go @@ -7,6 +7,7 @@ import ( "Open_IM/pkg/common/constant" "Open_IM/pkg/common/db/mysql_model/im_mysql_model" "Open_IM/pkg/common/log" + "Open_IM/pkg/common/token_verify" pbChat "Open_IM/pkg/proto/chat" pbFriend "Open_IM/pkg/proto/friend" "Open_IM/pkg/utils" @@ -16,22 +17,22 @@ import ( func (s *friendServer) AddFriend(ctx context.Context, req *pbFriend.AddFriendReq) (*pbFriend.CommonResp, error) { log.Info(req.Token, req.OperationID, "rpc add friend is server,userid=%s", req.Uid) //Parse token, to find current user information - claims, err := utils.ParseToken(req.Token) + claims, err := token_verify.ParseToken(req.Token) if err != nil { log.Error(req.Token, req.OperationID, "err=%s,parse token failed", err.Error()) - return &pbFriend.CommonResp{ErrorCode: config.ErrParseToken.ErrCode, ErrorMsg: config.ErrParseToken.ErrMsg}, nil + return &pbFriend.CommonResp{ErrorCode: constant.ErrParseToken.ErrCode, ErrorMsg: constant.ErrParseToken.ErrMsg}, nil } //Cannot add non-existent users if _, err = im_mysql_model.FindUserByUID(req.Uid); err != nil { log.Error(req.Token, req.OperationID, "this user not exists,cant not add friend") - return &pbFriend.CommonResp{ErrorCode: config.ErrAddFriend.ErrCode, ErrorMsg: config.ErrSearchUserInfo.ErrMsg}, nil + return &pbFriend.CommonResp{ErrorCode: constant.ErrAddFriend.ErrCode, ErrorMsg: constant.ErrSearchUserInfo.ErrMsg}, nil } //Establish a latest relationship in the friend request table err = im_mysql_model.ReplaceIntoFriendReq(claims.UID, req.Uid, constant.ApplicationFriendFlag, req.ReqMessage) if err != nil { log.Error(req.Token, req.OperationID, "err=%s,create friend request record failed", err.Error()) - return &pbFriend.CommonResp{ErrorCode: config.ErrAddFriend.ErrCode, ErrorMsg: config.ErrAddFriend.ErrMsg}, nil + return &pbFriend.CommonResp{ErrorCode: constant.ErrAddFriend.ErrCode, ErrorMsg: constant.ErrAddFriend.ErrMsg}, nil } log.Info(req.Token, req.OperationID, "rpc add friend is success return,uid=%s", req.Uid) //Push message when add friend successfully @@ -57,23 +58,23 @@ func (s *friendServer) ImportFriend(ctx context.Context, req *pbFriend.ImportFri var resp pbFriend.ImportFriendResp var c pbFriend.CommonResp //Parse token, to find current user information - claims, err := utils.ParseToken(req.Token) + claims, err := token_verify.ParseToken(req.Token) if err != nil { log.NewError(req.OperationID, "parse token failed", err.Error()) - c.ErrorCode = config.ErrAddFriend.ErrCode - c.ErrorMsg = config.ErrParseToken.ErrMsg + c.ErrorCode = constant.ErrAddFriend.ErrCode + c.ErrorMsg = constant.ErrParseToken.ErrMsg return &pbFriend.ImportFriendResp{CommonResp: &c, FailedUidList: req.UidList}, nil } if !utils.IsContain(claims.UID, config.Config.Manager.AppManagerUid) { log.NewError(req.OperationID, "not manager uid", claims.UID) - c.ErrorCode = config.ErrAddFriend.ErrCode + c.ErrorCode = constant.ErrAddFriend.ErrCode c.ErrorMsg = "not authorized" return &pbFriend.ImportFriendResp{CommonResp: &c, FailedUidList: req.UidList}, nil } if _, err = im_mysql_model.FindUserByUID(req.OwnerUid); err != nil { log.NewError(req.OperationID, "this user not exists,cant not add friend", req.OwnerUid) - c.ErrorCode = config.ErrAddFriend.ErrCode + c.ErrorCode = constant.ErrAddFriend.ErrCode c.ErrorMsg = "this user not exists,cant not add friend" return &pbFriend.ImportFriendResp{CommonResp: &c, FailedUidList: req.UidList}, nil } diff --git a/internal/rpc/friend/add_friend_response.go b/internal/rpc/friend/add_friend_response.go index 048110a23..e1e914ffd 100644 --- a/internal/rpc/friend/add_friend_response.go +++ b/internal/rpc/friend/add_friend_response.go @@ -3,10 +3,10 @@ package friend import ( "Open_IM/internal/push/content_struct" "Open_IM/internal/push/logic" - "Open_IM/pkg/common/config" "Open_IM/pkg/common/constant" "Open_IM/pkg/common/db/mysql_model/im_mysql_model" "Open_IM/pkg/common/log" + "Open_IM/pkg/common/token_verify" pbChat "Open_IM/pkg/proto/chat" pbFriend "Open_IM/pkg/proto/friend" "Open_IM/pkg/utils" @@ -16,21 +16,21 @@ import ( func (s *friendServer) AddFriendResponse(ctx context.Context, req *pbFriend.AddFriendResponseReq) (*pbFriend.CommonResp, error) { log.Info(req.Token, req.OperationID, "rpc add friend response is server,args=%s", req.String()) //Parse token, to find current user information - claims, err := utils.ParseToken(req.Token) + claims, err := token_verify.ParseToken(req.Token) if err != nil { log.Error(req.Token, req.OperationID, "err=%s,parse token failed", err.Error()) - return &pbFriend.CommonResp{ErrorCode: config.ErrParseToken.ErrCode, ErrorMsg: config.ErrParseToken.ErrMsg}, nil + return &pbFriend.CommonResp{ErrorCode: constant.ErrParseToken.ErrCode, ErrorMsg: constant.ErrParseToken.ErrMsg}, nil } //Check there application before agreeing or refuse to a friend's application if _, err = im_mysql_model.FindFriendApplyFromFriendReqByUid(req.Uid, claims.UID); err != nil { log.Error(req.Token, req.OperationID, "No such application record") - return &pbFriend.CommonResp{ErrorCode: config.ErrAgreeToAddFriend.ErrCode, ErrorMsg: config.ErrAgreeToAddFriend.ErrMsg}, nil + return &pbFriend.CommonResp{ErrorCode: constant.ErrAgreeToAddFriend.ErrCode, ErrorMsg: constant.ErrAgreeToAddFriend.ErrMsg}, nil } //Change friend request status flag err = im_mysql_model.UpdateFriendRelationshipToFriendReq(req.Uid, claims.UID, req.Flag) if err != nil { log.Error(req.Token, req.OperationID, "err=%s,update friend request table failed", err.Error()) - return &pbFriend.CommonResp{ErrorCode: config.ErrMysql.ErrCode, ErrorMsg: config.ErrAgreeToAddFriend.ErrMsg}, nil + return &pbFriend.CommonResp{ErrorCode: constant.ErrMysql.ErrCode, ErrorMsg: constant.ErrAgreeToAddFriend.ErrMsg}, nil } log.Info(req.Token, req.OperationID, "rpc add friend response success return,userid=%s,flag=%d", req.Uid, req.Flag) //Change the status of the friend request form diff --git a/internal/rpc/friend/delete_friend.go b/internal/rpc/friend/delete_friend.go index 2b11988b8..b1db00aa7 100644 --- a/internal/rpc/friend/delete_friend.go +++ b/internal/rpc/friend/delete_friend.go @@ -1,26 +1,26 @@ package friend import ( - "Open_IM/pkg/common/config" + "Open_IM/pkg/common/constant" "Open_IM/pkg/common/db/mysql_model/im_mysql_model" "Open_IM/pkg/common/log" + "Open_IM/pkg/common/token_verify" pbFriend "Open_IM/pkg/proto/friend" - "Open_IM/pkg/utils" "context" ) func (s *friendServer) DeleteFriend(ctx context.Context, req *pbFriend.DeleteFriendReq) (*pbFriend.CommonResp, error) { log.Info(req.Token, req.OperationID, "rpc delete friend is server,args=%s", req.String()) //Parse token, to find current user information - claims, err := utils.ParseToken(req.Token) + claims, err := token_verify.ParseToken(req.Token) if err != nil { log.Error(req.Token, req.OperationID, "err=%s,parse token failed", err.Error()) - return &pbFriend.CommonResp{ErrorCode: config.ErrParseToken.ErrCode, ErrorMsg: config.ErrParseToken.ErrMsg}, nil + return &pbFriend.CommonResp{ErrorCode: constant.ErrParseToken.ErrCode, ErrorMsg: constant.ErrParseToken.ErrMsg}, nil } err = im_mysql_model.DeleteSingleFriendInfo(claims.UID, req.Uid) if err != nil { log.Error(req.Token, req.OperationID, "err=%s,delete friend failed", err.Error()) - return &pbFriend.CommonResp{ErrorCode: config.ErrMysql.ErrCode, ErrorMsg: config.ErrMysql.ErrMsg}, nil + return &pbFriend.CommonResp{ErrorCode: constant.ErrMysql.ErrCode, ErrorMsg: constant.ErrMysql.ErrMsg}, nil } log.Info(req.Token, req.OperationID, "rpc delete friend success return") return &pbFriend.CommonResp{}, nil diff --git a/internal/rpc/friend/get_blacklist.go b/internal/rpc/friend/get_blacklist.go index 99d57fb25..503e80da6 100644 --- a/internal/rpc/friend/get_blacklist.go +++ b/internal/rpc/friend/get_blacklist.go @@ -1,11 +1,11 @@ package friend import ( - "Open_IM/pkg/common/config" + "Open_IM/pkg/common/constant" "Open_IM/pkg/common/db/mysql_model/im_mysql_model" "Open_IM/pkg/common/log" + "Open_IM/pkg/common/token_verify" pbFriend "Open_IM/pkg/proto/friend" - "Open_IM/pkg/utils" "context" ) @@ -16,15 +16,15 @@ func (s *friendServer) GetBlacklist(ctx context.Context, req *pbFriend.GetBlackl comment string ) //Parse token, to find current user information - claims, err := utils.ParseToken(req.Token) + claims, err := token_verify.ParseToken(req.Token) if err != nil { log.Error(req.Token, req.OperationID, "err=%s,parse token failed", err.Error()) - return &pbFriend.GetBlacklistResp{ErrorCode: config.ErrParseToken.ErrCode, ErrorMsg: config.ErrParseToken.ErrMsg}, nil + return &pbFriend.GetBlacklistResp{ErrorCode: constant.ErrParseToken.ErrCode, ErrorMsg: constant.ErrParseToken.ErrMsg}, nil } blackListInfo, err := im_mysql_model.GetBlackListByUID(claims.UID) if err != nil { log.Error(req.Token, req.OperationID, "err=%s get blacklist failed", err.Error()) - return &pbFriend.GetBlacklistResp{ErrorCode: config.ErrGetBlackList.ErrCode, ErrorMsg: config.ErrGetBlackList.ErrMsg}, nil + return &pbFriend.GetBlacklistResp{ErrorCode: constant.ErrGetBlackList.ErrCode, ErrorMsg: constant.ErrGetBlackList.ErrMsg}, nil } for _, blackUser := range blackListInfo { var blackUserInfo pbFriend.UserInfo diff --git a/internal/rpc/friend/get_firends_info.go b/internal/rpc/friend/get_firends_info.go index 1aa34a43b..d103889bc 100644 --- a/internal/rpc/friend/get_firends_info.go +++ b/internal/rpc/friend/get_firends_info.go @@ -5,6 +5,7 @@ import ( "Open_IM/pkg/common/constant" "Open_IM/pkg/common/db/mysql_model/im_mysql_model" "Open_IM/pkg/common/log" + "Open_IM/pkg/common/token_verify" "Open_IM/pkg/grpc-etcdv3/getcdv3" pbFriend "Open_IM/pkg/proto/friend" "Open_IM/pkg/utils" @@ -71,10 +72,10 @@ func (s *friendServer) GetFriendsInfo(ctx context.Context, req *pbFriend.GetFrie comment string ) //Parse token, to find current user information - claims, err := utils.ParseToken(req.Token) + claims, err := token_verify.ParseToken(req.Token) if err != nil { log.Error(req.Token, req.OperationID, "err=%s,parse token failed", err.Error()) - return &pbFriend.GetFriendInfoResp{ErrorCode: config.ErrParseToken.ErrCode, ErrorMsg: config.ErrParseToken.ErrMsg}, nil + return &pbFriend.GetFriendInfoResp{ErrorCode: constant.ErrParseToken.ErrCode, ErrorMsg: constant.ErrParseToken.ErrMsg}, nil } friendShip, err := im_mysql_model.FindFriendRelationshipFromFriend(claims.UID, req.Uid) if err == nil { @@ -84,7 +85,7 @@ func (s *friendServer) GetFriendsInfo(ctx context.Context, req *pbFriend.GetFrie friendUserInfo, err := im_mysql_model.FindUserByUID(req.Uid) if err != nil { log.Error(req.Token, req.OperationID, "err=%s,no this user", err.Error()) - return &pbFriend.GetFriendInfoResp{ErrorCode: config.ErrSearchUserInfo.ErrCode, ErrorMsg: config.ErrSearchUserInfo.ErrMsg}, nil + return &pbFriend.GetFriendInfoResp{ErrorCode: constant.ErrSearchUserInfo.ErrCode, ErrorMsg: constant.ErrSearchUserInfo.ErrMsg}, nil } err = im_mysql_model.FindRelationshipFromBlackList(claims.UID, req.Uid) if err == nil { diff --git a/internal/rpc/friend/get_friend_apply_list.go b/internal/rpc/friend/get_friend_apply_list.go index 556576f71..6542d9097 100644 --- a/internal/rpc/friend/get_friend_apply_list.go +++ b/internal/rpc/friend/get_friend_apply_list.go @@ -1,11 +1,11 @@ package friend import ( - "Open_IM/pkg/common/config" + "Open_IM/pkg/common/constant" "Open_IM/pkg/common/db/mysql_model/im_mysql_model" "Open_IM/pkg/common/log" + "Open_IM/pkg/common/token_verify" pbFriend "Open_IM/pkg/proto/friend" - "Open_IM/pkg/utils" "context" "fmt" "strconv" @@ -15,16 +15,16 @@ func (s *friendServer) GetFriendApplyList(ctx context.Context, req *pbFriend.Get log.Info(req.Token, req.OperationID, "rpc get friend apply list is server,args=%s", req.String()) var appleUserList []*pbFriend.ApplyUserInfo //Parse token, to find current user information - claims, err := utils.ParseToken(req.Token) + claims, err := token_verify.ParseToken(req.Token) if err != nil { log.Error(req.Token, req.OperationID, "err=%s,parse token failed", err.Error()) - return &pbFriend.GetFriendApplyResp{ErrorCode: config.ErrParseToken.ErrCode, ErrorMsg: config.ErrParseToken.ErrMsg}, nil + return &pbFriend.GetFriendApplyResp{ErrorCode: constant.ErrParseToken.ErrCode, ErrorMsg: constant.ErrParseToken.ErrMsg}, nil } // Find the current user friend applications received ApplyUsersInfo, err := im_mysql_model.FindFriendsApplyFromFriendReq(claims.UID) if err != nil { log.Error(req.Token, req.OperationID, "err=%s,search applyInfo failed", err.Error()) - return &pbFriend.GetFriendApplyResp{ErrorCode: config.ErrMysql.ErrCode, ErrorMsg: config.ErrMysql.ErrMsg}, nil + return &pbFriend.GetFriendApplyResp{ErrorCode: constant.ErrMysql.ErrCode, ErrorMsg: constant.ErrMysql.ErrMsg}, nil } for _, applyUserInfo := range ApplyUsersInfo { var userInfo pbFriend.ApplyUserInfo @@ -57,16 +57,16 @@ func (s *friendServer) GetSelfApplyList(ctx context.Context, req *pbFriend.GetFr log.Info(req.Token, req.OperationID, "rpc get self apply list is server,args=%s", req.String()) var selfApplyOtherUserList []*pbFriend.ApplyUserInfo //Parse token, to find current user information - claims, err := utils.ParseToken(req.Token) + claims, err := token_verify.ParseToken(req.Token) if err != nil { log.Error(req.Token, req.OperationID, "err=%s,parse token failed", err.Error()) - return &pbFriend.GetFriendApplyResp{ErrorCode: config.ErrParseToken.ErrCode, ErrorMsg: config.ErrParseToken.ErrMsg}, nil + return &pbFriend.GetFriendApplyResp{ErrorCode: constant.ErrParseToken.ErrCode, ErrorMsg: constant.ErrParseToken.ErrMsg}, nil } // Find the self add other userinfo usersInfo, err := im_mysql_model.FindSelfApplyFromFriendReq(claims.UID) if err != nil { log.Error(req.Token, req.OperationID, "err=%s,search self to other user Info failed", err.Error()) - return &pbFriend.GetFriendApplyResp{ErrorCode: config.ErrMysql.ErrCode, ErrorMsg: config.ErrMysql.ErrMsg}, nil + return &pbFriend.GetFriendApplyResp{ErrorCode: constant.ErrMysql.ErrCode, ErrorMsg: constant.ErrMysql.ErrMsg}, nil } for _, selfApplyOtherUserInfo := range usersInfo { var userInfo pbFriend.ApplyUserInfo diff --git a/internal/rpc/friend/get_friend_list.go b/internal/rpc/friend/get_friend_list.go index 0674cdc53..ff3e521ee 100644 --- a/internal/rpc/friend/get_friend_list.go +++ b/internal/rpc/friend/get_friend_list.go @@ -1,12 +1,11 @@ package friend import ( - "Open_IM/pkg/common/config" "Open_IM/pkg/common/constant" "Open_IM/pkg/common/db/mysql_model/im_mysql_model" "Open_IM/pkg/common/log" + "Open_IM/pkg/common/token_verify" pbFriend "Open_IM/pkg/proto/friend" - "Open_IM/pkg/utils" "context" ) @@ -14,15 +13,15 @@ func (s *friendServer) GetFriendList(ctx context.Context, req *pbFriend.GetFrien log.Info(req.Token, req.OperationID, "rpc get friend list is server,args=%s", req.String()) var userInfoList []*pbFriend.UserInfo //Parse token, to find current user information - claims, err := utils.ParseToken(req.Token) + claims, err := token_verify.ParseToken(req.Token) if err != nil { log.Error(req.Token, req.OperationID, "err=%s,parse token failed", err.Error()) - return &pbFriend.GetFriendListResp{ErrorCode: config.ErrParseToken.ErrCode, ErrorMsg: config.ErrParseToken.ErrMsg}, nil + return &pbFriend.GetFriendListResp{ErrorCode: constant.ErrParseToken.ErrCode, ErrorMsg: constant.ErrParseToken.ErrMsg}, nil } friends, err := im_mysql_model.FindUserInfoFromFriend(claims.UID) if err != nil { log.Error(req.Token, req.OperationID, "err=%s search friendInfo failed", err.Error()) - return &pbFriend.GetFriendListResp{ErrorCode: config.ErrSearchUserInfo.ErrCode, ErrorMsg: config.ErrSearchUserInfo.ErrMsg}, nil + return &pbFriend.GetFriendListResp{ErrorCode: constant.ErrSearchUserInfo.ErrCode, ErrorMsg: constant.ErrSearchUserInfo.ErrMsg}, nil } for _, friendUser := range friends { var friendUserInfo pbFriend.UserInfo diff --git a/internal/rpc/friend/is_friend.go b/internal/rpc/friend/is_friend.go index 3690423e7..d8739b81f 100644 --- a/internal/rpc/friend/is_friend.go +++ b/internal/rpc/friend/is_friend.go @@ -1,12 +1,11 @@ package friend import ( - "Open_IM/pkg/common/config" "Open_IM/pkg/common/constant" "Open_IM/pkg/common/db/mysql_model/im_mysql_model" "Open_IM/pkg/common/log" + "Open_IM/pkg/common/token_verify" pbFriend "Open_IM/pkg/proto/friend" - "Open_IM/pkg/utils" "context" "fmt" ) @@ -14,10 +13,10 @@ import ( func (s *friendServer) IsFriend(ctx context.Context, req *pbFriend.IsFriendReq) (*pbFriend.IsFriendResp, error) { log.InfoByArgs("rpc is friend is server,args=%s", req.String()) var isFriend int32 - claims, err := utils.ParseToken(req.Token) + claims, err := token_verify.ParseToken(req.Token) if err != nil { log.Error(req.Token, req.OperationID, "err=%s,parse token failed", err.Error()) - return &pbFriend.IsFriendResp{ErrorCode: config.ErrParseToken.ErrCode, ErrorMsg: config.ErrParseToken.ErrMsg}, nil + return &pbFriend.IsFriendResp{ErrorCode: constant.ErrParseToken.ErrCode, ErrorMsg: constant.ErrParseToken.ErrMsg}, nil } _, err = im_mysql_model.FindFriendRelationshipFromFriend(claims.UID, req.ReceiveUid) if err == nil { diff --git a/internal/rpc/friend/remove_blacklist.go b/internal/rpc/friend/remove_blacklist.go index af163e86d..f96cbf9b4 100644 --- a/internal/rpc/friend/remove_blacklist.go +++ b/internal/rpc/friend/remove_blacklist.go @@ -1,26 +1,26 @@ package friend import ( - "Open_IM/pkg/common/config" + "Open_IM/pkg/common/constant" "Open_IM/pkg/common/db/mysql_model/im_mysql_model" "Open_IM/pkg/common/log" + "Open_IM/pkg/common/token_verify" pbFriend "Open_IM/pkg/proto/friend" - "Open_IM/pkg/utils" "context" ) func (s *friendServer) RemoveBlacklist(ctx context.Context, req *pbFriend.RemoveBlacklistReq) (*pbFriend.CommonResp, error) { log.Info(req.Token, req.OperationID, "rpc remove blacklist is server,userid=%s", req.Uid) //Parse token, to find current user information - claims, err := utils.ParseToken(req.Token) + claims, err := token_verify.ParseToken(req.Token) if err != nil { log.Error(req.Token, req.OperationID, "err=%s,parse token failed", err.Error()) - return &pbFriend.CommonResp{ErrorCode: config.ErrParseToken.ErrCode, ErrorMsg: config.ErrParseToken.ErrMsg}, nil + return &pbFriend.CommonResp{ErrorCode: constant.ErrParseToken.ErrCode, ErrorMsg: constant.ErrParseToken.ErrMsg}, nil } err = im_mysql_model.RemoveBlackList(claims.UID, req.Uid) if err != nil { log.Error(req.Token, req.OperationID, "err=%s,remove blacklist failed", err.Error()) - return &pbFriend.CommonResp{ErrorCode: config.ErrMysql.ErrCode, ErrorMsg: config.ErrMysql.ErrMsg}, nil + return &pbFriend.CommonResp{ErrorCode: constant.ErrMysql.ErrCode, ErrorMsg: constant.ErrMysql.ErrMsg}, nil } log.Info(req.Token, req.OperationID, "rpc remove blacklist success return,userid=%s", req.Uid) return &pbFriend.CommonResp{}, nil diff --git a/internal/rpc/friend/set_friend_comment.go b/internal/rpc/friend/set_friend_comment.go index 8b7331935..8ddfe1fb9 100644 --- a/internal/rpc/friend/set_friend_comment.go +++ b/internal/rpc/friend/set_friend_comment.go @@ -1,26 +1,26 @@ package friend import ( - "Open_IM/pkg/common/config" + "Open_IM/pkg/common/constant" "Open_IM/pkg/common/db/mysql_model/im_mysql_model" "Open_IM/pkg/common/log" + "Open_IM/pkg/common/token_verify" pbFriend "Open_IM/pkg/proto/friend" - "Open_IM/pkg/utils" "context" ) func (s *friendServer) SetFriendComment(ctx context.Context, req *pbFriend.SetFriendCommentReq) (*pbFriend.CommonResp, error) { log.Info(req.Token, req.OperationID, "rpc set friend comment is server,params=%s", req.String()) //Parse token, to find current user information - claims, err := utils.ParseToken(req.Token) + claims, err := token_verify.ParseToken(req.Token) if err != nil { log.Error(req.Token, req.OperationID, "err=%s,parse token failed", err.Error()) - return &pbFriend.CommonResp{ErrorCode: config.ErrParseToken.ErrCode, ErrorMsg: config.ErrParseToken.ErrMsg}, nil + return &pbFriend.CommonResp{ErrorCode: constant.ErrParseToken.ErrCode, ErrorMsg: constant.ErrParseToken.ErrMsg}, nil } err = im_mysql_model.UpdateFriendComment(claims.UID, req.Uid, req.Comment) if err != nil { log.Error(req.Token, req.OperationID, "set friend comment failed,err=%s", err.Error()) - return &pbFriend.CommonResp{ErrorCode: config.ErrSetFriendComment.ErrCode, ErrorMsg: config.ErrSetFriendComment.ErrMsg}, nil + return &pbFriend.CommonResp{ErrorCode: constant.ErrSetFriendComment.ErrCode, ErrorMsg: constant.ErrSetFriendComment.ErrMsg}, nil } log.Info(req.Token, req.OperationID, "rpc set friend comment is success return") return &pbFriend.CommonResp{}, nil diff --git a/internal/rpc/group/create_group.go b/internal/rpc/group/create_group.go index b95394efd..35e6616ee 100644 --- a/internal/rpc/group/create_group.go +++ b/internal/rpc/group/create_group.go @@ -8,6 +8,7 @@ import ( "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" pbChat "Open_IM/pkg/proto/chat" pbGroup "Open_IM/pkg/proto/group" @@ -73,17 +74,17 @@ func (s *groupServer) CreateGroup(ctx context.Context, req *pbGroup.CreateGroupR groupId string ) //Parse token, to find current user information - claims, err := utils.ParseToken(req.Token) + claims, err := token_verify.ParseToken(req.Token) if err != nil { log.Error(req.Token, req.OperationID, "err=%s,parse token failed", err.Error()) - return &pbGroup.CreateGroupResp{ErrorCode: config.ErrParseToken.ErrCode, ErrorMsg: config.ErrParseToken.ErrMsg}, nil + return &pbGroup.CreateGroupResp{ErrorCode: constant.ErrParseToken.ErrCode, ErrorMsg: constant.ErrParseToken.ErrMsg}, nil } //Time stamp + MD5 to generate group chat id groupId = utils.Md5(strconv.FormatInt(time.Now().UnixNano(), 10)) err = im_mysql_model.InsertIntoGroup(groupId, req.GroupName, req.Introduction, req.Notification, req.FaceUrl, req.Ex) if err != nil { log.ErrorByKv("create group chat failed", req.OperationID, "err=%s", err.Error()) - return &pbGroup.CreateGroupResp{ErrorCode: config.ErrCreateGroup.ErrCode, ErrorMsg: config.ErrCreateGroup.ErrMsg}, nil + return &pbGroup.CreateGroupResp{ErrorCode: constant.ErrCreateGroup.ErrCode, ErrorMsg: constant.ErrCreateGroup.ErrMsg}, nil } isMagagerFlag := 0 @@ -98,18 +99,18 @@ func (s *groupServer) CreateGroup(ctx context.Context, req *pbGroup.CreateGroupR us, err := im_mysql_model.FindUserByUID(claims.UID) if err != nil { log.Error("", req.OperationID, "find userInfo failed", err.Error()) - return &pbGroup.CreateGroupResp{ErrorCode: config.ErrCreateGroup.ErrCode, ErrorMsg: config.ErrCreateGroup.ErrMsg}, nil + return &pbGroup.CreateGroupResp{ErrorCode: constant.ErrCreateGroup.ErrCode, ErrorMsg: constant.ErrCreateGroup.ErrMsg}, nil } err = im_mysql_model.InsertIntoGroupMember(groupId, claims.UID, us.Name, us.Icon, constant.GroupOwner) if err != nil { log.Error("", req.OperationID, "create group chat failed,err=%s", err.Error()) - return &pbGroup.CreateGroupResp{ErrorCode: config.ErrCreateGroup.ErrCode, ErrorMsg: config.ErrCreateGroup.ErrMsg}, nil + return &pbGroup.CreateGroupResp{ErrorCode: constant.ErrCreateGroup.ErrCode, ErrorMsg: constant.ErrCreateGroup.ErrMsg}, nil } err = db.DB.AddGroupMember(groupId, claims.UID) if err != nil { log.Error("", "", "create mongo group member failed, db.DB.AddGroupMember fail [err: %s]", err.Error()) - return &pbGroup.CreateGroupResp{ErrorCode: config.ErrCreateGroup.ErrCode, ErrorMsg: config.ErrCreateGroup.ErrMsg}, nil + return &pbGroup.CreateGroupResp{ErrorCode: constant.ErrCreateGroup.ErrCode, ErrorMsg: constant.ErrCreateGroup.ErrMsg}, nil } } diff --git a/internal/rpc/group/get_groups_info.go b/internal/rpc/group/get_groups_info.go index 667e3c84f..f0d952e94 100644 --- a/internal/rpc/group/get_groups_info.go +++ b/internal/rpc/group/get_groups_info.go @@ -1,21 +1,21 @@ package group import ( - "Open_IM/pkg/common/config" + "Open_IM/pkg/common/constant" "Open_IM/pkg/common/db/mysql_model/im_mysql_model" "Open_IM/pkg/common/log" + "Open_IM/pkg/common/token_verify" pbGroup "Open_IM/pkg/proto/group" - "Open_IM/pkg/utils" "context" ) func (s *groupServer) GetGroupsInfo(ctx context.Context, req *pbGroup.GetGroupsInfoReq) (*pbGroup.GetGroupsInfoResp, error) { log.Info(req.Token, req.OperationID, "rpc get group info is server,args=%s", req.String()) //Parse token, to find current user information - claims, err := utils.ParseToken(req.Token) + claims, err := token_verify.ParseToken(req.Token) if err != nil { log.Error(req.Token, req.OperationID, "err=%s,parse token failed", err.Error()) - return &pbGroup.GetGroupsInfoResp{ErrorCode: config.ErrParseToken.ErrCode, ErrorMsg: config.ErrParseToken.ErrMsg}, nil + return &pbGroup.GetGroupsInfoResp{ErrorCode: constant.ErrParseToken.ErrCode, ErrorMsg: constant.ErrParseToken.ErrMsg}, nil } log.Info("", req.OperationID, "args:", req.GroupIDList, claims.UID) groupsInfoList := make([]*pbGroup.GroupInfo, 0) diff --git a/internal/rpc/group/group.go b/internal/rpc/group/group.go index d7101680f..15740800f 100644 --- a/internal/rpc/group/group.go +++ b/internal/rpc/group/group.go @@ -6,6 +6,7 @@ import ( "Open_IM/pkg/common/config" "Open_IM/pkg/common/constant" "Open_IM/pkg/common/db" + "Open_IM/pkg/common/token_verify" pbChat "Open_IM/pkg/proto/chat" "encoding/json" @@ -19,17 +20,17 @@ import ( ) func (s *groupServer) GetJoinedGroupList(ctx context.Context, req *pbGroup.GetJoinedGroupListReq) (*pbGroup.GetJoinedGroupListResp, error) { - claims, err := utils.ParseToken(req.Token) + claims, err := token_verify.ParseToken(req.Token) if err != nil { log.Error(req.Token, req.OperationID, "err=%s,parse token failed", err.Error()) - return &pbGroup.GetJoinedGroupListResp{ErrorCode: config.ErrParseToken.ErrCode, ErrorMsg: config.ErrParseToken.ErrMsg}, nil + return &pbGroup.GetJoinedGroupListResp{ErrorCode: constant.ErrParseToken.ErrCode, ErrorMsg: constant.ErrParseToken.ErrMsg}, nil } log.Info(claims.UID, req.OperationID, "recv req: ", req.String()) joinedGroupList, err := imdb.GetJoinedGroupIdListByMemberId(claims.UID) if err != nil { log.Error(claims.UID, req.OperationID, "GetJoinedGroupIdListByMemberId failed, err: ", err.Error()) - return &pbGroup.GetJoinedGroupListResp{ErrorCode: config.ErrParam.ErrCode, ErrorMsg: config.ErrParam.ErrMsg}, nil + return &pbGroup.GetJoinedGroupListResp{ErrorCode: constant.ErrParam.ErrCode, ErrorMsg: constant.ErrParam.ErrMsg}, nil } var resp pbGroup.GetJoinedGroupListResp @@ -57,23 +58,23 @@ func (s *groupServer) GetJoinedGroupList(ctx context.Context, req *pbGroup.GetJo } func (s *groupServer) InviteUserToGroup(ctx context.Context, req *pbGroup.InviteUserToGroupReq) (*pbGroup.InviteUserToGroupResp, error) { - claims, err := utils.ParseToken(req.Token) + claims, err := token_verify.ParseToken(req.Token) if err != nil { log.Error(req.Token, req.OperationID, "err=%s,parse token failed", err.Error()) - return &pbGroup.InviteUserToGroupResp{ErrorCode: config.ErrParseToken.ErrCode, ErrorMsg: config.ErrParseToken.ErrMsg}, nil + return &pbGroup.InviteUserToGroupResp{ErrorCode: constant.ErrParseToken.ErrCode, ErrorMsg: constant.ErrParseToken.ErrMsg}, nil } log.Info(claims.UID, req.OperationID, "recv req: ", req.String()) // if !imdb.IsExistGroupMember(req.GroupID, claims.UID) && claims.UID != config.Config.AppManagerUid if !imdb.IsExistGroupMember(req.GroupID, claims.UID) && !utils.IsContain(claims.UID, config.Config.Manager.AppManagerUid) { log.Error(req.Token, req.OperationID, "err= invite user not in group") - return &pbGroup.InviteUserToGroupResp{ErrorCode: config.ErrAccess.ErrCode, ErrorMsg: config.ErrAccess.ErrMsg}, nil + return &pbGroup.InviteUserToGroupResp{ErrorCode: constant.ErrAccess.ErrCode, ErrorMsg: constant.ErrAccess.ErrMsg}, nil } groupInfoFromMysql, err := imdb.FindGroupInfoByGroupId(req.GroupID) if err != nil || groupInfoFromMysql == nil { log.NewError(req.OperationID, "get group info error", req.GroupID, req.UidList) - return &pbGroup.InviteUserToGroupResp{ErrorCode: config.ErrAccess.ErrCode, ErrorMsg: config.ErrAccess.ErrMsg}, nil + return &pbGroup.InviteUserToGroupResp{ErrorCode: constant.ErrAccess.ErrCode, ErrorMsg: constant.ErrAccess.ErrMsg}, nil } // @@ -175,7 +176,7 @@ func (s *groupServer) GetGroupAllMember(ctx context.Context, req *pbGroup.GetGro resp.ErrorCode = 0 memberList, err := imdb.FindGroupMemberListByGroupId(req.GroupID) if err != nil { - resp.ErrorCode = config.ErrDb.ErrCode + resp.ErrorCode = constant.ErrDb.ErrCode resp.ErrorMsg = err.Error() log.NewError(req.OperationID, "FindGroupMemberListByGroupId failed,", err.Error(), req.GroupID) return &resp, nil @@ -196,10 +197,10 @@ func (s *groupServer) GetGroupAllMember(ctx context.Context, req *pbGroup.GetGro } func (s *groupServer) GetGroupMemberList(ctx context.Context, req *pbGroup.GetGroupMemberListReq) (*pbGroup.GetGroupMemberListResp, error) { - claims, err := utils.ParseToken(req.Token) + claims, err := token_verify.ParseToken(req.Token) if err != nil { log.Error(req.Token, req.OperationID, "err=%s,parse token failed", err.Error()) - return &pbGroup.GetGroupMemberListResp{ErrorCode: config.ErrParseToken.ErrCode, ErrorMsg: config.ErrParseToken.ErrMsg}, nil + return &pbGroup.GetGroupMemberListResp{ErrorCode: constant.ErrParseToken.ErrCode, ErrorMsg: constant.ErrParseToken.ErrMsg}, nil } // log.Info(claims.UID, req.OperationID, "recv req: ", req.String()) fmt.Println("req: ", req.GroupID) @@ -207,7 +208,7 @@ func (s *groupServer) GetGroupMemberList(ctx context.Context, req *pbGroup.GetGr resp.ErrorCode = 0 memberList, err := imdb.GetGroupMemberByGroupId(req.GroupID, req.Filter, req.NextSeq, 30) if err != nil { - resp.ErrorCode = config.ErrDb.ErrCode + resp.ErrorCode = constant.ErrDb.ErrCode resp.ErrorMsg = err.Error() log.Error(claims.UID, req.OperationID, "GetGroupMemberByGroupId failed, ", err.Error(), "params: ", req.GroupID, req.Filter, req.NextSeq) return &resp, nil @@ -256,17 +257,17 @@ func (c *kickGroupMemberApiReq) ContentToString() string { } func (s *groupServer) KickGroupMember(ctx context.Context, req *pbGroup.KickGroupMemberReq) (*pbGroup.KickGroupMemberResp, error) { - claims, err := utils.ParseToken(req.Token) + claims, err := token_verify.ParseToken(req.Token) if err != nil { log.Error(req.Token, req.OperationID, "err=%s,parse token failed", err.Error()) - return &pbGroup.KickGroupMemberResp{ErrorCode: config.ErrParseToken.ErrCode, ErrorMsg: config.ErrParseToken.ErrMsg}, nil + return &pbGroup.KickGroupMemberResp{ErrorCode: constant.ErrParseToken.ErrCode, ErrorMsg: constant.ErrParseToken.ErrMsg}, nil } log.Info(claims.UID, req.OperationID, "recv req: ", req.String()) ownerList, err := imdb.GetOwnerManagerByGroupId(req.GroupID) if err != nil { log.Error(claims.UID, req.OperationID, req.GroupID, "GetOwnerManagerByGroupId, ", err.Error()) - return &pbGroup.KickGroupMemberResp{ErrorCode: config.ErrParam.ErrCode, ErrorMsg: config.ErrParam.ErrMsg}, nil + return &pbGroup.KickGroupMemberResp{ErrorCode: constant.ErrParam.ErrCode, ErrorMsg: constant.ErrParam.ErrMsg}, nil } //op is group owner? var flag = 0 @@ -285,12 +286,12 @@ func (s *groupServer) KickGroupMember(ctx context.Context, req *pbGroup.KickGrou if flag != 1 { log.Error(claims.UID, req.OperationID, "no access kick") - return &pbGroup.KickGroupMemberResp{ErrorCode: config.ErrAccess.ErrCode, ErrorMsg: config.ErrAccess.ErrMsg}, nil + return &pbGroup.KickGroupMemberResp{ErrorCode: constant.ErrAccess.ErrCode, ErrorMsg: constant.ErrAccess.ErrMsg}, nil } if len(req.UidListInfo) == 0 { log.Error(claims.UID, req.OperationID, "kick list 0") - return &pbGroup.KickGroupMemberResp{ErrorCode: config.ErrParam.ErrCode, ErrorMsg: config.ErrParam.ErrMsg}, nil + return &pbGroup.KickGroupMemberResp{ErrorCode: constant.ErrParam.ErrCode, ErrorMsg: constant.ErrParam.ErrMsg}, nil } //remove var resp pbGroup.KickGroupMemberResp @@ -362,10 +363,10 @@ func (s *groupServer) KickGroupMember(ctx context.Context, req *pbGroup.KickGrou } func (s *groupServer) GetGroupMembersInfo(ctx context.Context, req *pbGroup.GetGroupMembersInfoReq) (*pbGroup.GetGroupMembersInfoResp, error) { - claims, err := utils.ParseToken(req.Token) + claims, err := token_verify.ParseToken(req.Token) if err != nil { log.Error(req.Token, req.OperationID, "err=%s,parse token failed", err.Error()) - return &pbGroup.GetGroupMembersInfoResp{ErrorCode: config.ErrParseToken.ErrCode, ErrorMsg: config.ErrParseToken.ErrMsg}, nil + return &pbGroup.GetGroupMembersInfoResp{ErrorCode: constant.ErrParseToken.ErrCode, ErrorMsg: constant.ErrParseToken.ErrMsg}, nil } log.InfoByKv(claims.UID, req.OperationID, "param: ", req.MemberList) var resp pbGroup.GetGroupMembersInfoResp diff --git a/internal/rpc/group/join_group.go b/internal/rpc/group/join_group.go index 4b1c88c89..0aed0d4e4 100644 --- a/internal/rpc/group/join_group.go +++ b/internal/rpc/group/join_group.go @@ -1,26 +1,26 @@ package group import ( - "Open_IM/pkg/common/config" + "Open_IM/pkg/common/constant" "Open_IM/pkg/common/db/mysql_model/im_mysql_model" "Open_IM/pkg/common/log" + "Open_IM/pkg/common/token_verify" pbGroup "Open_IM/pkg/proto/group" - "Open_IM/pkg/utils" "context" ) func (s *groupServer) JoinGroup(ctx context.Context, req *pbGroup.JoinGroupReq) (*pbGroup.CommonResp, error) { log.Info(req.Token, req.OperationID, "rpc join group is server,args=%s", req.String()) //Parse token, to find current user information - claims, err := utils.ParseToken(req.Token) + claims, err := token_verify.ParseToken(req.Token) if err != nil { log.Error(req.Token, req.OperationID, "err=%s,parse token failed", err.Error()) - return &pbGroup.CommonResp{ErrorCode: config.ErrParseToken.ErrCode, ErrorMsg: config.ErrParseToken.ErrMsg}, nil + return &pbGroup.CommonResp{ErrorCode: constant.ErrParseToken.ErrCode, ErrorMsg: constant.ErrParseToken.ErrMsg}, nil } applicationUserInfo, err := im_mysql_model.FindUserByUID(claims.UID) if err != nil { log.Error(req.Token, req.OperationID, "No this user,err=%s", err.Error()) - return &pbGroup.CommonResp{ErrorCode: config.ErrSearchUserInfo.ErrCode, ErrorMsg: config.ErrSearchUserInfo.ErrMsg}, nil + return &pbGroup.CommonResp{ErrorCode: constant.ErrSearchUserInfo.ErrCode, ErrorMsg: constant.ErrSearchUserInfo.ErrMsg}, nil } _, err = im_mysql_model.FindGroupRequestUserInfoByGroupIDAndUid(req.GroupID, claims.UID) @@ -32,7 +32,7 @@ func (s *groupServer) JoinGroup(ctx context.Context, req *pbGroup.JoinGroupReq) if err = im_mysql_model.InsertIntoGroupRequest(req.GroupID, claims.UID, "0", req.Message, applicationUserInfo.Name, applicationUserInfo.Icon); err != nil { log.Error(req.Token, req.OperationID, "Insert into group request failed,er=%s", err.Error()) - return &pbGroup.CommonResp{ErrorCode: config.ErrJoinGroupApplication.ErrCode, ErrorMsg: config.ErrJoinGroupApplication.ErrMsg}, nil + return &pbGroup.CommonResp{ErrorCode: constant.ErrJoinGroupApplication.ErrCode, ErrorMsg: constant.ErrJoinGroupApplication.ErrMsg}, nil } ////Find the the group owner //groupCreatorInfo, err := im_mysql_model.FindGroupMemberListByGroupIdAndFilterInfo(req.GroupID, constant.GroupCreator) diff --git a/internal/rpc/group/quit_group.go b/internal/rpc/group/quit_group.go index 5906832a2..e77a34009 100644 --- a/internal/rpc/group/quit_group.go +++ b/internal/rpc/group/quit_group.go @@ -1,41 +1,41 @@ package group import ( - "Open_IM/pkg/common/config" + "Open_IM/pkg/common/constant" "Open_IM/pkg/common/db" "Open_IM/pkg/common/db/mysql_model/im_mysql_model" "Open_IM/pkg/common/log" + "Open_IM/pkg/common/token_verify" pbGroup "Open_IM/pkg/proto/group" - "Open_IM/pkg/utils" "context" ) func (s *groupServer) QuitGroup(ctx context.Context, req *pbGroup.QuitGroupReq) (*pbGroup.CommonResp, error) { log.InfoByArgs("rpc quit group is server,args:", req.String()) //Parse token, to find current user information - claims, err := utils.ParseToken(req.Token) + claims, err := token_verify.ParseToken(req.Token) if err != nil { log.Error(req.Token, req.OperationID, "err=%s,parse token failed", err.Error()) - return &pbGroup.CommonResp{ErrorCode: config.ErrParseToken.ErrCode, ErrorMsg: config.ErrParseToken.ErrMsg}, nil + return &pbGroup.CommonResp{ErrorCode: constant.ErrParseToken.ErrCode, ErrorMsg: constant.ErrParseToken.ErrMsg}, nil } log.InfoByKv("args:", req.OperationID, req.GetGroupID(), claims.UID) //Check to see whether there is a user in the group. _, err = im_mysql_model.FindGroupMemberInfoByGroupIdAndUserId(req.GroupID, claims.UID) if err != nil { log.Error(req.Token, req.OperationID, "no such group or you are not in the group,err=%s", err.Error(), req.OperationID, req.GroupID, claims.UID) - return &pbGroup.CommonResp{ErrorCode: config.ErrQuitGroup.ErrCode, ErrorMsg: config.ErrQuitGroup.ErrMsg}, nil + return &pbGroup.CommonResp{ErrorCode: constant.ErrQuitGroup.ErrCode, ErrorMsg: constant.ErrQuitGroup.ErrMsg}, nil } //After the user's verification is successful, user will quit the group chat. err = im_mysql_model.DeleteGroupMemberByGroupIdAndUserId(req.GroupID, claims.UID) if err != nil { log.ErrorByArgs("this user exit the group failed,err=%s", err.Error(), req.OperationID, req.GroupID, claims.UID) - return &pbGroup.CommonResp{ErrorCode: config.ErrQuitGroup.ErrCode, ErrorMsg: config.ErrQuitGroup.ErrMsg}, nil + return &pbGroup.CommonResp{ErrorCode: constant.ErrQuitGroup.ErrCode, ErrorMsg: constant.ErrQuitGroup.ErrMsg}, nil } err = db.DB.DelGroupMember(req.GroupID, claims.UID) if err != nil { log.Error("", "", "delete mongo group member failed, db.DB.DelGroupMember fail [err: %s]", err.Error()) - return &pbGroup.CommonResp{ErrorCode: config.ErrQuitGroup.ErrCode, ErrorMsg: config.ErrQuitGroup.ErrMsg}, nil + return &pbGroup.CommonResp{ErrorCode: constant.ErrQuitGroup.ErrCode, ErrorMsg: constant.ErrQuitGroup.ErrMsg}, nil } ////Push message when quit group chat //jsonInfo, _ := json.Marshal(req) diff --git a/internal/rpc/group/set_group_info.go b/internal/rpc/group/set_group_info.go index 046f8bc4f..3e1f25854 100644 --- a/internal/rpc/group/set_group_info.go +++ b/internal/rpc/group/set_group_info.go @@ -1,12 +1,11 @@ package group import ( - "Open_IM/pkg/common/config" "Open_IM/pkg/common/constant" "Open_IM/pkg/common/db/mysql_model/im_mysql_model" "Open_IM/pkg/common/log" + "Open_IM/pkg/common/token_verify" pbGroup "Open_IM/pkg/proto/group" - "Open_IM/pkg/utils" "context" ) @@ -14,22 +13,22 @@ func (s *groupServer) SetGroupInfo(ctx context.Context, req *pbGroup.SetGroupInf log.Info(req.Token, req.OperationID, "rpc set group info is server,args=%s", req.String()) //Parse token, to find current user information - claims, err := utils.ParseToken(req.Token) + claims, err := token_verify.ParseToken(req.Token) if err != nil { log.Error(req.Token, req.OperationID, "err=%s,parse token failed", err.Error()) - return &pbGroup.CommonResp{ErrorCode: config.ErrParseToken.ErrCode, ErrorMsg: config.ErrParseToken.ErrMsg}, nil + return &pbGroup.CommonResp{ErrorCode: constant.ErrParseToken.ErrCode, ErrorMsg: constant.ErrParseToken.ErrMsg}, nil } groupUserInfo, err := im_mysql_model.FindGroupMemberInfoByGroupIdAndUserId(req.GroupID, claims.UID) if err != nil { log.Error("", req.OperationID, "your are not in the group,can not change this group info,err=%s", err.Error()) - return &pbGroup.CommonResp{ErrorCode: config.ErrSetGroupInfo.ErrCode, ErrorMsg: config.ErrSetGroupInfo.ErrMsg}, nil + return &pbGroup.CommonResp{ErrorCode: constant.ErrSetGroupInfo.ErrCode, ErrorMsg: constant.ErrSetGroupInfo.ErrMsg}, nil } if groupUserInfo.AdministratorLevel == constant.OrdinaryMember { - return &pbGroup.CommonResp{ErrorCode: config.ErrSetGroupInfo.ErrCode, ErrorMsg: config.ErrAccess.ErrMsg}, nil + return &pbGroup.CommonResp{ErrorCode: constant.ErrSetGroupInfo.ErrCode, ErrorMsg: constant.ErrAccess.ErrMsg}, nil } //only administrators can set group information if err = im_mysql_model.SetGroupInfo(req.GroupID, req.GroupName, req.Introduction, req.Notification, req.FaceUrl, ""); err != nil { - return &pbGroup.CommonResp{ErrorCode: config.ErrSetGroupInfo.ErrCode, ErrorMsg: config.ErrSetGroupInfo.ErrMsg}, nil + return &pbGroup.CommonResp{ErrorCode: constant.ErrSetGroupInfo.ErrCode, ErrorMsg: constant.ErrSetGroupInfo.ErrMsg}, nil } ////Push message when set group info //jsonInfo, _ := json.Marshal(req) diff --git a/internal/rpc/user/management_user.go b/internal/rpc/user/management_user.go index 524b98e71..51984b6dc 100644 --- a/internal/rpc/user/management_user.go +++ b/internal/rpc/user/management_user.go @@ -8,8 +8,10 @@ package user import ( "Open_IM/pkg/common/config" + "Open_IM/pkg/common/constant" "Open_IM/pkg/common/db/mysql_model/im_mysql_model" "Open_IM/pkg/common/log" + "Open_IM/pkg/common/token_verify" pbUser "Open_IM/pkg/proto/user" "Open_IM/pkg/utils" "context" @@ -19,10 +21,10 @@ func (s *userServer) DeleteUsers(_ context.Context, req *pbUser.DeleteUsersReq) log.InfoByKv("rpc DeleteUsers arrived server", req.OperationID, "args", req.String()) var resp pbUser.DeleteUsersResp var common pbUser.CommonResp - c, err := utils.ParseToken(req.Token) + c, err := token_verify.ParseToken(req.Token) if err != nil { log.ErrorByKv("parse token failed", req.OperationID, "err", err.Error()) - return &pbUser.DeleteUsersResp{CommonResp: &pbUser.CommonResp{ErrorCode: config.ErrParseToken.ErrCode, ErrorMsg: err.Error()}, FailedUidList: req.DeleteUidList}, nil + return &pbUser.DeleteUsersResp{CommonResp: &pbUser.CommonResp{ErrorCode: constant.ErrParseToken.ErrCode, ErrorMsg: err.Error()}, FailedUidList: req.DeleteUidList}, nil } if !utils.IsContain(c.UID, config.Config.Manager.AppManagerUid) { log.ErrorByKv(" Authentication failed", req.OperationID, "args", c) @@ -43,10 +45,10 @@ func (s *userServer) DeleteUsers(_ context.Context, req *pbUser.DeleteUsersReq) func (s *userServer) GetAllUsersUid(_ context.Context, req *pbUser.GetAllUsersUidReq) (*pbUser.GetAllUsersUidResp, error) { log.InfoByKv("rpc GetAllUsersUid arrived server", req.OperationID, "args", req.String()) - c, err := utils.ParseToken(req.Token) + c, err := token_verify.ParseToken(req.Token) if err != nil { log.InfoByKv("parse token failed", req.OperationID, "err", err.Error()) - return &pbUser.GetAllUsersUidResp{CommonResp: &pbUser.CommonResp{ErrorCode: config.ErrParseToken.ErrCode, ErrorMsg: err.Error()}}, nil + return &pbUser.GetAllUsersUidResp{CommonResp: &pbUser.CommonResp{ErrorCode: constant.ErrParseToken.ErrCode, ErrorMsg: err.Error()}}, nil } if !utils.IsContain(c.UID, config.Config.Manager.AppManagerUid) { log.ErrorByKv(" Authentication failed", req.OperationID, "args", c) @@ -55,7 +57,7 @@ func (s *userServer) GetAllUsersUid(_ context.Context, req *pbUser.GetAllUsersUi uidList, err := im_mysql_model.SelectAllUID() if err != nil { log.ErrorByKv("db get failed", req.OperationID, "err", err.Error()) - return &pbUser.GetAllUsersUidResp{CommonResp: &pbUser.CommonResp{ErrorCode: config.ErrMysql.ErrCode, ErrorMsg: err.Error()}}, nil + return &pbUser.GetAllUsersUidResp{CommonResp: &pbUser.CommonResp{ErrorCode: constant.ErrMysql.ErrCode, ErrorMsg: err.Error()}}, nil } else { return &pbUser.GetAllUsersUidResp{CommonResp: &pbUser.CommonResp{ErrorCode: 0, ErrorMsg: ""}, UidList: uidList}, nil } diff --git a/internal/rpc/user/update_user_info.go b/internal/rpc/user/update_user_info.go index 14fe9f0db..079cb1b44 100644 --- a/internal/rpc/user/update_user_info.go +++ b/internal/rpc/user/update_user_info.go @@ -6,6 +6,7 @@ import ( "Open_IM/pkg/common/constant" "Open_IM/pkg/common/db/mysql_model/im_mysql_model" "Open_IM/pkg/common/log" + "Open_IM/pkg/common/token_verify" "Open_IM/pkg/grpc-etcdv3/getcdv3" pbChat "Open_IM/pkg/proto/chat" pbFriend "Open_IM/pkg/proto/friend" @@ -17,10 +18,10 @@ import ( func (s *userServer) UpdateUserInfo(ctx context.Context, req *pbUser.UpdateUserInfoReq) (*pbUser.CommonResp, error) { log.Info(req.Token, req.OperationID, "rpc modify user is server,args=%s", req.String()) - claims, err := utils.ParseToken(req.Token) + claims, err := token_verify.ParseToken(req.Token) if err != nil { log.Error(req.Token, req.OperationID, "err=%s,parse token failed", err.Error()) - return &pbUser.CommonResp{ErrorCode: config.ErrParseToken.ErrCode, ErrorMsg: err.Error()}, nil + return &pbUser.CommonResp{ErrorCode: constant.ErrParseToken.ErrCode, ErrorMsg: err.Error()}, nil } ownerUid := "" @@ -34,7 +35,7 @@ func (s *userServer) UpdateUserInfo(ctx context.Context, req *pbUser.UpdateUserI err = im_mysql_model.UpDateUserInfo(ownerUid, req.Name, req.Icon, req.Mobile, req.Birth, req.Email, req.Ex, req.Gender) if err != nil { log.Error(req.Token, req.OperationID, "update user some attribute failed,err=%s", err.Error()) - return &pbUser.CommonResp{ErrorCode: config.ErrModifyUserInfo.ErrCode, ErrorMsg: config.ErrModifyUserInfo.ErrMsg}, nil + return &pbUser.CommonResp{ErrorCode: constant.ErrModifyUserInfo.ErrCode, ErrorMsg: constant.ErrModifyUserInfo.ErrMsg}, nil } etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImFriendName) client := pbFriend.NewFriendClient(etcdConn) diff --git a/internal/utils/jwt_token_test.go b/internal/utils/jwt_token_test.go index 5b8cdb607..721df496e 100644 --- a/internal/utils/jwt_token_test.go +++ b/internal/utils/jwt_token_test.go @@ -2,7 +2,8 @@ package utils import ( "Open_IM/pkg/common/config" - "Open_IM/pkg/utils" + "Open_IM/pkg/common/constant" + "Open_IM/pkg/common/token_verify" "testing" "time" @@ -13,7 +14,7 @@ func Test_BuildClaims(t *testing.T) { uid := "1" platform := "PC" ttl := int64(-1) - claim := utils.BuildClaims(uid, platform, ttl) + claim := token_verify.BuildClaims(uid, platform, ttl) now := time.Now().Unix() assert.Equal(t, claim.UID, uid, "uid should equal") @@ -25,7 +26,7 @@ func Test_BuildClaims(t *testing.T) { ttl = int64(60) now = time.Now().Unix() - claim = utils.BuildClaims(uid, platform, ttl) + claim = token_verify.BuildClaims(uid, platform, ttl) // time difference within 1s assert.Equal(t, claim.RegisteredClaims.ExpiresAt, int64(60)+now, "StandardClaims.ExpiresAt should be equal") assert.Equal(t, claim.RegisteredClaims.IssuedAt, now, "StandardClaims.IssuedAt should be equal") @@ -37,7 +38,7 @@ func Test_CreateToken(t *testing.T) { platform := int32(1) now := time.Now().Unix() - tokenString, expiresAt, err := utils.CreateToken(uid, platform) + tokenString, expiresAt, err := token_verify.CreateToken(uid, platform) assert.NotEmpty(t, tokenString) assert.Equal(t, expiresAt, 604800+now) @@ -47,35 +48,35 @@ func Test_CreateToken(t *testing.T) { func Test_VerifyToken(t *testing.T) { uid := "1" platform := int32(1) - tokenString, _, _ := utils.CreateToken(uid, platform) - result := utils.VerifyToken(tokenString, uid) + tokenString, _, _ := token_verify.CreateToken(uid, platform) + result, _ := token_verify.VerifyToken(tokenString, uid) assert.True(t, result) - result = utils.VerifyToken(tokenString, "2") + result, _ = token_verify.VerifyToken(tokenString, "2") assert.False(t, result) } func Test_ParseRedisInterfaceToken(t *testing.T) { uid := "1" platform := int32(1) - tokenString, _, _ := utils.CreateToken(uid, platform) + tokenString, _, _ := token_verify.CreateToken(uid, platform) - claims, err := utils.ParseRedisInterfaceToken([]uint8(tokenString)) + claims, err := token_verify.ParseRedisInterfaceToken([]uint8(tokenString)) assert.Nil(t, err) assert.Equal(t, claims.UID, uid) // timeout config.Config.TokenPolicy.AccessExpire = -80 - tokenString, _, _ = utils.CreateToken(uid, platform) - claims, err = utils.ParseRedisInterfaceToken([]uint8(tokenString)) - assert.Equal(t, err, utils.TokenExpired) + tokenString, _, _ = token_verify.CreateToken(uid, platform) + claims, err = token_verify.ParseRedisInterfaceToken([]uint8(tokenString)) + assert.Equal(t, err, constant.TokenExpired) assert.Nil(t, claims) } func Test_ParseToken(t *testing.T) { uid := "1" platform := int32(1) - tokenString, _, _ := utils.CreateToken(uid, platform) - claims, err := utils.ParseToken(tokenString) + tokenString, _, _ := token_verify.CreateToken(uid, platform) + claims, err := token_verify.ParseToken(tokenString) if err == nil { assert.Equal(t, claims.UID, uid) } diff --git a/internal/utils/platform_number_id_to_name_test.go b/internal/utils/platform_number_id_to_name_test.go index 9fd888f44..8a956bfac 100644 --- a/internal/utils/platform_number_id_to_name_test.go +++ b/internal/utils/platform_number_id_to_name_test.go @@ -1,46 +1,46 @@ package utils import ( - "Open_IM/pkg/utils" + "Open_IM/pkg/common/constant" "testing" "github.com/stretchr/testify/assert" ) func Test_PlatformIDToName(t *testing.T) { - assert.Equal(t, utils.PlatformIDToName(1), "IOS") - assert.Equal(t, utils.PlatformIDToName(2), "Android") - assert.Equal(t, utils.PlatformIDToName(3), "Windows") - assert.Equal(t, utils.PlatformIDToName(4), "OSX") - assert.Equal(t, utils.PlatformIDToName(5), "Web") - assert.Equal(t, utils.PlatformIDToName(6), "MiniWeb") - assert.Equal(t, utils.PlatformIDToName(7), "Linux") - - assert.Equal(t, utils.PlatformIDToName(0), "") + assert.Equal(t, constant.PlatformIDToName(1), "IOS") + assert.Equal(t, constant.PlatformIDToName(2), "Android") + assert.Equal(t, constant.PlatformIDToName(3), "Windows") + assert.Equal(t, constant.PlatformIDToName(4), "OSX") + assert.Equal(t, constant.PlatformIDToName(5), "Web") + assert.Equal(t, constant.PlatformIDToName(6), "MiniWeb") + assert.Equal(t, constant.PlatformIDToName(7), "Linux") + + assert.Equal(t, constant.PlatformIDToName(0), "") } func Test_PlatformNameToID(t *testing.T) { - assert.Equal(t, utils.PlatformNameToID("IOS"), int32(1)) - assert.Equal(t, utils.PlatformNameToID("Android"), int32(2)) - assert.Equal(t, utils.PlatformNameToID("Windows"), int32(3)) - assert.Equal(t, utils.PlatformNameToID("OSX"), int32(4)) - assert.Equal(t, utils.PlatformNameToID("Web"), int32(5)) - assert.Equal(t, utils.PlatformNameToID("MiniWeb"), int32(6)) - assert.Equal(t, utils.PlatformNameToID("Linux"), int32(7)) - - assert.Equal(t, utils.PlatformNameToID("UnknownDevice"), int32(0)) - assert.Equal(t, utils.PlatformNameToID(""), int32(0)) + assert.Equal(t, constant.PlatformNameToID("IOS"), int32(1)) + assert.Equal(t, constant.PlatformNameToID("Android"), int32(2)) + assert.Equal(t, constant.PlatformNameToID("Windows"), int32(3)) + assert.Equal(t, constant.PlatformNameToID("OSX"), int32(4)) + assert.Equal(t, constant.PlatformNameToID("Web"), int32(5)) + assert.Equal(t, constant.PlatformNameToID("MiniWeb"), int32(6)) + assert.Equal(t, constant.PlatformNameToID("Linux"), int32(7)) + + assert.Equal(t, constant.PlatformNameToID("UnknownDevice"), int32(0)) + assert.Equal(t, constant.PlatformNameToID(""), int32(0)) } func Test_PlatformNameToClass(t *testing.T) { - assert.Equal(t, utils.PlatformNameToClass("IOS"), "Mobile") - assert.Equal(t, utils.PlatformNameToClass("Android"), "Mobile") - assert.Equal(t, utils.PlatformNameToClass("OSX"), "PC") - assert.Equal(t, utils.PlatformNameToClass("Windows"), "PC") - assert.Equal(t, utils.PlatformNameToClass("Web"), "PC") - assert.Equal(t, utils.PlatformNameToClass("MiniWeb"), "Mobile") - assert.Equal(t, utils.PlatformNameToClass("Linux"), "PC") - - assert.Equal(t, utils.PlatformNameToClass("UnknownDevice"), "") - assert.Equal(t, utils.PlatformNameToClass(""), "") + assert.Equal(t, constant.PlatformNameToClass("IOS"), "Mobile") + assert.Equal(t, constant.PlatformNameToClass("Android"), "Mobile") + assert.Equal(t, constant.PlatformNameToClass("OSX"), "PC") + assert.Equal(t, constant.PlatformNameToClass("Windows"), "PC") + assert.Equal(t, constant.PlatformNameToClass("Web"), "PC") + assert.Equal(t, constant.PlatformNameToClass("MiniWeb"), "Mobile") + assert.Equal(t, constant.PlatformNameToClass("Linux"), "PC") + + assert.Equal(t, constant.PlatformNameToClass("UnknownDevice"), "") + assert.Equal(t, constant.PlatformNameToClass(""), "") } diff --git a/pkg/common/config/config.go b/pkg/common/config/config.go index 9bfdaa6e1..f32ca8da1 100644 --- a/pkg/common/config/config.go +++ b/pkg/common/config/config.go @@ -145,12 +145,8 @@ type config struct { } } Secret string `yaml:"secret"` - MultiLoginPolicy struct { - OnlyOneTerminalAccess bool `yaml:"onlyOneTerminalAccess"` - MobileAndPCTerminalAccessButOtherTerminalKickEachOther bool `yaml:"mobileAndPCTerminalAccessButOtherTerminalKickEachOther"` - AllTerminalAccess bool `yaml:"allTerminalAccess"` - } - TokenPolicy struct { + MultiLoginPolicy int `yaml:"multiloginpolicy"` + TokenPolicy struct { AccessSecret string `yaml:"accessSecret"` AccessExpire int64 `yaml:"accessExpire"` } diff --git a/pkg/common/constant/constant.go b/pkg/common/constant/constant.go index ca2e70919..00c73ff4e 100644 --- a/pkg/common/constant/constant.go +++ b/pkg/common/constant/constant.go @@ -22,6 +22,7 @@ const ( WSSendMsg = 1003 WSPullMsgBySeqList = 1004 WSPushMsg = 2001 + WSKickOnlineMsg = 2002 WSDataError = 3001 ///ContentType @@ -70,6 +71,21 @@ const ( //SessionType SingleChatType = 1 GroupChatType = 2 + //token + NormalToken = 0 + InValidToken = 1 + KickedToken = 2 + ExpiredToken = 3 + + //MultiTerminalLogin + //全端登录,但是同端互斥 + AllLoginButSameTermKick = 1 + //所有端中只能有一端能够登录 + SingleTerminalLogin = 2 + //web端可以同时在线,其他端只能有一端登录 + WebAndOther = 3 + //Pc端互斥,移动端互斥,但是web端可以同时在线 + PcMobileAndWeb = 4 ) var ContentType2PushContent = map[int64]string{ diff --git a/pkg/common/config/error.go b/pkg/common/constant/error.go similarity index 73% rename from pkg/common/config/error.go rename to pkg/common/constant/error.go index 4d99251f0..938b49b98 100644 --- a/pkg/common/config/error.go +++ b/pkg/common/constant/error.go @@ -1,4 +1,6 @@ -package config +package constant + +import "errors" // key = errCode, string = errMsg type ErrInfo struct { @@ -20,8 +22,6 @@ var ( ErrorUserRegister = ErrInfo{600, "User registration failed"} ErrAccountExists = ErrInfo{601, "The account is already registered and cannot be registered again"} ErrUserPassword = ErrInfo{602, "User password error"} - ErrTokenIncorrect = ErrInfo{603, "Invalid token"} - ErrTokenExpired = ErrInfo{604, "Expired token"} ErrRefreshToken = ErrInfo{605, "Failed to refresh token"} ErrAddFriend = ErrInfo{606, "Failed to add friends"} ErrAgreeToAddFriend = ErrInfo{607, "Failed to agree application"} @@ -40,9 +40,26 @@ var ( ErrJoinGroupApplication = ErrInfo{620, "Failed to apply to join the group"} ErrQuitGroup = ErrInfo{621, "Failed to quit the group"} ErrSetGroupInfo = ErrInfo{622, "Failed to set group info"} - ErrParam = ErrInfo{ErrCode: 700, ErrMsg: "param failed"} + ErrParam = ErrInfo{700, "param failed"} + ErrTokenExpired = ErrInfo{701, TokenExpired.Error()} + ErrTokenInvalid = ErrInfo{702, TokenInvalid.Error()} + ErrTokenMalformed = ErrInfo{703, TokenMalformed.Error()} + ErrTokenNotValidYet = ErrInfo{704, TokenNotValidYet.Error()} + ErrTokenUnknown = ErrInfo{705, TokenUnknown.Error()} ErrAccess = ErrInfo{ErrCode: 800, ErrMsg: "no permission"} ErrDb = ErrInfo{ErrCode: 900, ErrMsg: "db failed"} ) + +var ( + TokenExpired = errors.New("token is timed out, please log in again") + TokenInvalid = errors.New("token has been invalidated") + TokenNotValidYet = errors.New("token not active yet") + TokenMalformed = errors.New("that's not even a token") + TokenUnknown = errors.New("couldn't handle this token") +) + +func (e *ErrInfo) Error() string { + return e.ErrMsg +} diff --git a/pkg/utils/platform_number_id_to_name.go b/pkg/common/constant/platform_number_id_to_name.go similarity index 94% rename from pkg/utils/platform_number_id_to_name.go rename to pkg/common/constant/platform_number_id_to_name.go index e9a3f7fed..c3a970b69 100644 --- a/pkg/utils/platform_number_id_to_name.go +++ b/pkg/common/constant/platform_number_id_to_name.go @@ -1,4 +1,4 @@ -package utils +package constant // fixme 1<--->IOS 2<--->Android 3<--->Windows //fixme 4<--->OSX 5<--->Web 6<--->MiniWeb 7<--->Linux @@ -48,10 +48,10 @@ var PlatformName2ID = map[string]int32{ var Platform2class = map[string]string{ IOSPlatformStr: TerminalMobile, AndroidPlatformStr: TerminalMobile, - MiniWebPlatformStr: TerminalMobile, + MiniWebPlatformStr: WebPlatformStr, + WebPlatformStr: WebPlatformStr, WindowsPlatformStr: TerminalPC, OSXPlatformStr: TerminalPC, - WebPlatformStr: TerminalPC, LinuxPlatformStr: TerminalPC, } diff --git a/pkg/common/db/redisModel.go b/pkg/common/db/redisModel.go index b31fde8c1..d566a2926 100644 --- a/pkg/common/db/redisModel.go +++ b/pkg/common/db/redisModel.go @@ -2,6 +2,7 @@ package db import ( log2 "Open_IM/pkg/common/log" + "Open_IM/pkg/utils" "github.com/garyburd/redigo/redis" ) @@ -10,6 +11,7 @@ const ( appleDeviceToken = "DEVICE_TOKEN" lastGetSeq = "LAST_GET_SEQ" userMinSeq = "REDIS_USER_MIN_SEQ:" + uidPidToken = "UID_PID_TOKEN:" ) func (d *DataBases) Exec(cmd string, key interface{}, args ...interface{}) (interface{}, error) { @@ -71,36 +73,39 @@ func (d *DataBases) DelAppleDeviceToken(accountAddress string) (err error) { return err } -//Record the last time the user actively pulled the value of Seq -func (d *DataBases) SetLastGetSeq(uid string) (err error) { - key := lastGetSeq + uid - _, err = d.Exec("SET", key) - return err +//Store userid and platform class to redis +func (d *DataBases) AddTokenFlag(userID string, platformID int32, token string, flag int) error { + key := uidPidToken + userID + ":" + utils.Int32ToString(platformID) + m, err := redis.IntMap(d.Exec("GET", key)) + if err != nil && err != redis.ErrNil { + return err + } + if err == redis.ErrNil { + m = make(map[string]int, 5) + } + m[token] = flag + _, err1 := d.Exec("SET", key, m) + return err1 } -//Get the value of the user's last active pull Seq -func (d *DataBases) GetLastGetSeq(uid string) (int64, error) { - key := lastGetSeq + uid - return redis.Int64(d.Exec("GET", key)) +func (d *DataBases) GetTokenMapByUidPid(userID, platformID string) (map[string]int, error) { + key := uidPidToken + userID + ":" + platformID + return redis.IntMap(d.Exec("GET", key)) } - -//Store userid and platform class to redis -func (d *DataBases) SetUserIDAndPlatform(userID, platformClass, value string, ttl int64) error { - key := userID + platformClass - _, err := d.Exec("SET", key, value, "EX", ttl) +func (d *DataBases) SetTokenMapByUidPid(userID, platformID string, m map[string]int) error { + key := uidPidToken + userID + ":" + platformID + _, err := d.Exec("SET", key, m) return err } //Check exists userid and platform class from redis -func (d *DataBases) ExistsUserIDAndPlatform(userID, platformClass string) (interface{}, error) { +func (d *DataBases) ExistsUserIDAndPlatform(userID, platformClass string) (int64, error) { key := userID + platformClass - exists, err := d.Exec("EXISTS", key) - return exists, err + return redis.Int64(d.Exec("EXISTS", key)) } //Get platform class Token -func (d *DataBases) GetPlatformToken(userID, platformClass string) (interface{}, error) { +func (d *DataBases) GetPlatformToken(userID, platformClass string) (string, error) { key := userID + platformClass - token, err := d.Exec("GET", key) - return token, err + return redis.String(d.Exec("GET", key)) } diff --git a/pkg/common/multi_terminal_login/multi_terminal_login.go b/pkg/common/multi_terminal_login/multi_terminal_login.go index ba0c0525c..3c3245e63 100644 --- a/pkg/common/multi_terminal_login/multi_terminal_login.go +++ b/pkg/common/multi_terminal_login/multi_terminal_login.go @@ -1,73 +1,73 @@ package multi_terminal_login -import ( - "Open_IM/internal/push/content_struct" - "Open_IM/internal/push/logic" - "Open_IM/pkg/common/config" - "Open_IM/pkg/common/constant" - "Open_IM/pkg/common/db" - pbChat "Open_IM/pkg/proto/chat" - "Open_IM/pkg/utils" -) - -func MultiTerminalLoginChecker(uid, token string, platformID int32) error { - // 1.check userid and platform class 0 not exists and 1 exists - existsInterface, err := db.DB.ExistsUserIDAndPlatform(uid, utils.PlatformNameToClass(utils.PlatformIDToName(platformID))) - if err != nil { - return err - } - exists := existsInterface.(int64) - //get config multi login policy - if config.Config.MultiLoginPolicy.OnlyOneTerminalAccess { - //OnlyOneTerminalAccess policy need to check all terminal - if utils.PlatformNameToClass(utils.PlatformIDToName(platformID)) == "PC" { - existsInterface, err = db.DB.ExistsUserIDAndPlatform(uid, "Mobile") - if err != nil { - return err - } - } else { - existsInterface, err = db.DB.ExistsUserIDAndPlatform(uid, "PC") - if err != nil { - return err - } - } - exists = existsInterface.(int64) - if exists == 1 { - err := db.DB.SetUserIDAndPlatform(uid, utils.PlatformNameToClass(utils.PlatformIDToName(platformID)), token, config.Config.TokenPolicy.AccessExpire) - if err != nil { - return err - } - PushMessageToTheTerminal(uid, platformID) - return nil - } - } else if config.Config.MultiLoginPolicy.MobileAndPCTerminalAccessButOtherTerminalKickEachOther { - // common terminal need to kick eich other - if exists == 1 { - err := db.DB.SetUserIDAndPlatform(uid, utils.PlatformNameToClass(utils.PlatformIDToName(platformID)), token, config.Config.TokenPolicy.AccessExpire) - if err != nil { - return err - } - PushMessageToTheTerminal(uid, platformID) - return nil - } - } - err = db.DB.SetUserIDAndPlatform(uid, utils.PlatformNameToClass(utils.PlatformIDToName(platformID)), token, config.Config.TokenPolicy.AccessExpire) - if err != nil { - return err - } - PushMessageToTheTerminal(uid, platformID) - return nil -} - -func PushMessageToTheTerminal(uid string, platform int32) { - - logic.SendMsgByWS(&pbChat.WSToMsgSvrChatMsg{ - SendID: uid, - RecvID: uid, - Content: content_struct.NewContentStructString(1, "", "Your account is already logged on other terminal,please confirm"), - SendTime: utils.GetCurrentTimestampBySecond(), - MsgFrom: constant.SysMsgType, - ContentType: constant.KickOnlineTip, - PlatformID: platform, - }) -} +// +//import ( +// "Open_IM/internal/push/content_struct" +// "Open_IM/internal/push/logic" +// "Open_IM/pkg/common/config" +// "Open_IM/pkg/common/constant" +// "Open_IM/pkg/common/db" +// pbChat "Open_IM/pkg/proto/chat" +// "Open_IM/pkg/utils" +//) +// +//const DayOfSecond = 24*60*60 +//func MultiTerminalLoginChecker(uid, token string, platformID int32) error { +// // 1.check userid and platform class 0 not exists and 1 exists +// exists, err := db.DB.ExistsUserIDAndPlatform(uid, constant.PlatformNameToClass(constant.PlatformIDToName(platformID))) +// if err != nil { +// return err +// } +// //get config multi login policy +// if config.Config.MultiLoginPolicy { +// //OnlyOneTerminalAccess policy need to check all terminal +// if constant.PlatformNameToClass(constant.PlatformIDToName(platformID)) == "PC" { +// exists, err = db.DB.ExistsUserIDAndPlatform(uid, "Mobile") +// if err != nil { +// return err +// } +// } else { +// exists, err = db.DB.ExistsUserIDAndPlatform(uid, "PC") +// if err != nil { +// return err +// } +// } +// if exists == 1 { +// err := db.DB.SetUserIDAndPlatform(uid, constant.PlatformNameToClass(constant.PlatformIDToName(platformID)), token, config.Config.TokenPolicy.AccessExpire*DayOfSecond) +// if err != nil { +// return err +// } +// PushMessageToTheTerminal(uid, platformID) +// return nil +// } +// } else if config.Config.MultiLoginPolicy.MobileAndPCTerminalAccessButOtherTerminalKickEachOther { +// // common terminal need to kick eich other +// if exists == 1 { +// err := db.DB.SetUserIDAndPlatform(uid, constant.PlatformNameToClass(constant.PlatformIDToName(platformID)), token, config.Config.TokenPolicy.AccessExpire*DayOfSecond) +// if err != nil { +// return err +// } +// PushMessageToTheTerminal(uid, platformID) +// return nil +// } +// } +// err = db.DB.SetUserIDAndPlatform(uid, constant.PlatformNameToClass(constant.PlatformIDToName(platformID)), token, config.Config.TokenPolicy.AccessExpire*DayOfSecond) +// if err != nil { +// return err +// } +// PushMessageToTheTerminal(uid, platformID) +// return nil +//} +//// +////func PushMessageToTheTerminal(uid string, platform int32) { +//// +//// logic.SendMsgByWS(&pbChat.WSToMsgSvrChatMsg{ +//// SendID: uid, +//// RecvID: uid, +//// Content: content_struct.NewContentStructString(1, "", "Your account is already logged on other terminal,please confirm"), +//// SendTime: utils.GetCurrentTimestampBySecond(), +//// MsgFrom: constant.SysMsgType, +//// ContentType: constant.KickOnlineTip, +//// PlatformID: platform, +//// }) +////} diff --git a/pkg/common/token_verify/jwt_token.go b/pkg/common/token_verify/jwt_token.go new file mode 100644 index 000000000..e5419dd6b --- /dev/null +++ b/pkg/common/token_verify/jwt_token.go @@ -0,0 +1,144 @@ +package token_verify + +import ( + "Open_IM/pkg/common/config" + "Open_IM/pkg/common/constant" + commonDB "Open_IM/pkg/common/db" + "Open_IM/pkg/common/log" + "github.com/golang-jwt/jwt/v4" + "time" +) + +//var ( +// TokenExpired = errors.New("token is timed out, please log in again") +// TokenInvalid = errors.New("token has been invalidated") +// TokenNotValidYet = errors.New("token not active yet") +// TokenMalformed = errors.New("that's not even a token") +// TokenUnknown = errors.New("couldn't handle this token") +//) + +type Claims struct { + UID string + Platform string //login platform + jwt.RegisteredClaims +} + +func BuildClaims(uid, platform string, ttl int64) Claims { + now := time.Now() + return Claims{ + UID: uid, + Platform: platform, + RegisteredClaims: jwt.RegisteredClaims{ + ExpiresAt: jwt.NewNumericDate(now.Add(time.Duration(ttl*24) * time.Hour)), //Expiration time + IssuedAt: jwt.NewNumericDate(now), //Issuing time + NotBefore: jwt.NewNumericDate(now), //Begin Effective time + }} +} + +func CreateToken(userID string, platformID int32) (string, int64, error) { + claims := BuildClaims(userID, constant.PlatformIDToName(platformID), config.Config.TokenPolicy.AccessExpire) + token := jwt.NewWithClaims(jwt.SigningMethodHS256, claims) + tokenString, err := token.SignedString([]byte(config.Config.TokenPolicy.AccessSecret)) + if err != nil { + return "", 0, err + } + err = commonDB.DB.AddTokenFlag(userID, platformID, tokenString, constant.NormalToken) + if err != nil { + return "", 0, err + } + return tokenString, claims.ExpiresAt.Time.Unix(), err +} + +func secret() jwt.Keyfunc { + return func(token *jwt.Token) (interface{}, error) { + return []byte(config.Config.TokenPolicy.AccessSecret), nil + } +} + +func getClaimFromToken(tokensString string) (*Claims, error) { + token, err := jwt.ParseWithClaims(tokensString, &Claims{}, secret()) + if err != nil { + if ve, ok := err.(*jwt.ValidationError); ok { + if ve.Errors&jwt.ValidationErrorMalformed != 0 { + return nil, &constant.ErrTokenMalformed + } else if ve.Errors&jwt.ValidationErrorExpired != 0 { + return nil, &constant.ErrTokenExpired + } else if ve.Errors&jwt.ValidationErrorNotValidYet != 0 { + return nil, &constant.ErrTokenNotValidYet + } else { + return nil, &constant.ErrTokenUnknown + } + } else { + return nil, &constant.ErrTokenNotValidYet + } + } else { + if claims, ok := token.Claims.(*Claims); ok && token.Valid { + return claims, nil + } + return nil, &constant.ErrTokenNotValidYet + } +} + +func ParseToken(tokensString string) (claims *Claims, err error) { + //根据token的算法本身做出的有效性检验 + claims, err = getClaimFromToken(tokensString) + if err != nil { + log.NewError("", "token validate err", err.Error()) + return nil, err + } + //根据redis做出的有效性检验 + m, err := commonDB.DB.GetTokenMapByUidPid(claims.UID, claims.Platform) + if err != nil { + log.NewError("", "get token from redis err", err.Error()) + return nil, &constant.ErrTokenInvalid + } + if m == nil { + log.NewError("", "get token from redis err", "m is nil") + return nil, &constant.ErrTokenInvalid + } + if v, ok := m[tokensString]; ok { + switch v { + case constant.NormalToken: + return claims, nil + case constant.InValidToken: + return nil, &constant.ErrTokenInvalid + case constant.KickedToken: + return nil, &constant.ErrTokenInvalid + case constant.ExpiredToken: + return nil, &constant.ErrTokenExpired + } + } + return nil, err +} + +//func MakeTheTokenInvalid(currentClaims *Claims, platformClass string) (bool, error) { +// storedRedisTokenInterface, err := db.DB.GetPlatformToken(currentClaims.UID, platformClass) +// if err != nil { +// return false, err +// } +// storedRedisPlatformClaims, err := ParseRedisInterfaceToken(storedRedisTokenInterface) +// if err != nil { +// return false, err +// } +// //if issue time less than redis token then make this token invalid +// if currentClaims.IssuedAt.Time.Unix() < storedRedisPlatformClaims.IssuedAt.Time.Unix() { +// return true, constant.TokenInvalid +// } +// return false, nil +//} + +func ParseRedisInterfaceToken(redisToken interface{}) (*Claims, error) { + return getClaimFromToken(string(redisToken.([]uint8))) +} + +//Validation token, false means failure, true means successful verification +func VerifyToken(token, uid string) (bool, error) { + claims, err := ParseToken(token) + if err != nil { + return false, err + } + if claims.UID != uid { + return false, &constant.ErrTokenUnknown + } + return true, nil +} diff --git a/pkg/utils/jwt_token.go b/pkg/utils/jwt_token.go deleted file mode 100644 index fd6a69ea0..000000000 --- a/pkg/utils/jwt_token.go +++ /dev/null @@ -1,153 +0,0 @@ -package utils - -import ( - "Open_IM/pkg/common/config" - "Open_IM/pkg/common/db" - "errors" - "github.com/golang-jwt/jwt/v4" - "time" -) - -var ( - TokenExpired = errors.New("token is timed out, please log in again") - TokenInvalid = errors.New("token has been invalidated") - TokenNotValidYet = errors.New("token not active yet") - TokenMalformed = errors.New("that's not even a token") - TokenUnknown = errors.New("couldn't handle this token") -) - -type Claims struct { - UID string - Platform string //login platform - jwt.RegisteredClaims -} - -func BuildClaims(uid, platform string, ttl int64) Claims { - now := time.Now() - return Claims{ - UID: uid, - Platform: platform, - RegisteredClaims: jwt.RegisteredClaims{ - ExpiresAt: jwt.NewNumericDate(now.Add(time.Duration(ttl*24) * time.Hour)), //Expiration time - IssuedAt: jwt.NewNumericDate(now), //Issuing time - NotBefore: jwt.NewNumericDate(now), //Begin Effective time - }} -} - -func CreateToken(userID string, platform int32) (string, int64, error) { - claims := BuildClaims(userID, PlatformIDToName(platform), config.Config.TokenPolicy.AccessExpire) - token := jwt.NewWithClaims(jwt.SigningMethodHS256, claims) - tokenString, err := token.SignedString([]byte(config.Config.TokenPolicy.AccessSecret)) - - return tokenString, claims.ExpiresAt.Time.Unix(), err -} - -func secret() jwt.Keyfunc { - return func(token *jwt.Token) (interface{}, error) { - return []byte(config.Config.TokenPolicy.AccessSecret), nil - } -} - -func getClaimFromToken(tokensString string) (*Claims, error) { - token, err := jwt.ParseWithClaims(tokensString, &Claims{}, secret()) - if err != nil { - if ve, ok := err.(*jwt.ValidationError); ok { - if ve.Errors&jwt.ValidationErrorMalformed != 0 { - return nil, TokenMalformed - } else if ve.Errors&jwt.ValidationErrorExpired != 0 { - return nil, TokenExpired - } else if ve.Errors&jwt.ValidationErrorNotValidYet != 0 { - return nil, TokenNotValidYet - } else { - return nil, TokenUnknown - } - } - } - if claims, ok := token.Claims.(*Claims); ok && token.Valid { - return claims, nil - } - return nil, err -} - -func ParseToken(tokensString string) (claims *Claims, err error) { - claims, err = getClaimFromToken(tokensString) - - if err != nil { - return nil, err - } - - // 1.check userid and platform class 0 not exists and 1 exists - existsInterface, err := db.DB.ExistsUserIDAndPlatform(claims.UID, Platform2class[claims.Platform]) - if err != nil { - return nil, err - } - exists := existsInterface.(int64) - //get config multi login policy - if config.Config.MultiLoginPolicy.OnlyOneTerminalAccess { - //OnlyOneTerminalAccess policy need to check all terminal - //When only one end is allowed to log in, there is a situation that needs to be paid attention to. After PC login, - //mobile login should check two platform times. One of them is less than the redis storage time, which is the invalid token. - platform := "PC" - if Platform2class[claims.Platform] == "PC" { - platform = "Mobile" - } - - existsInterface, err = db.DB.ExistsUserIDAndPlatform(claims.UID, platform) - if err != nil { - return nil, err - } - - exists = existsInterface.(int64) - if exists == 1 { - res, err := MakeTheTokenInvalid(claims, platform) - if err != nil { - return nil, err - } - if res { - return nil, TokenInvalid - } - } - } - // config.Config.MultiLoginPolicy.MobileAndPCTerminalAccessButOtherTerminalKickEachOther == true - // or PC/Mobile validate success - // final check - if exists == 1 { - res, err := MakeTheTokenInvalid(claims, Platform2class[claims.Platform]) - if err != nil { - return nil, err - } - if res { - return nil, TokenInvalid - } - } - return claims, nil -} - -func MakeTheTokenInvalid(currentClaims *Claims, platformClass string) (bool, error) { - storedRedisTokenInterface, err := db.DB.GetPlatformToken(currentClaims.UID, platformClass) - if err != nil { - return false, err - } - storedRedisPlatformClaims, err := ParseRedisInterfaceToken(storedRedisTokenInterface) - if err != nil { - return false, err - } - //if issue time less than redis token then make this token invalid - if currentClaims.IssuedAt.Time.Unix() < storedRedisPlatformClaims.IssuedAt.Time.Unix() { - return true, TokenInvalid - } - return false, nil -} - -func ParseRedisInterfaceToken(redisToken interface{}) (*Claims, error) { - return getClaimFromToken(string(redisToken.([]uint8))) -} - -//Validation token, false means failure, true means successful verification -func VerifyToken(token, uid string) bool { - claims, err := ParseToken(token) - if err != nil || claims.UID != uid { - return false - } - return true -} diff --git a/pkg/utils/strings.go b/pkg/utils/strings.go index 39c797859..4249eee6b 100644 --- a/pkg/utils/strings.go +++ b/pkg/utils/strings.go @@ -24,6 +24,9 @@ func StringToInt64(i string) int64 { j, _ := strconv.ParseInt(i, 10, 64) return j } +func Int32ToString(i int32) string { + return strconv.FormatInt(int64(i), 10) +} //judge a string whether in the string list func IsContain(target string, List []string) bool { From 5dcb7f2a80b3917cbe50671269a9c5a66f68df12 Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Thu, 25 Nov 2021 16:09:26 +0800 Subject: [PATCH 097/814] multi terminal kick eachOther --- internal/msg_gateway/gate/ws_server.go | 2 +- pkg/common/db/redisModel.go | 32 ++++++++++++++++++-------- pkg/common/token_verify/jwt_token.go | 7 ++++-- 3 files changed, 29 insertions(+), 12 deletions(-) diff --git a/internal/msg_gateway/gate/ws_server.go b/internal/msg_gateway/gate/ws_server.go index 0f9c74d36..29c78813a 100644 --- a/internal/msg_gateway/gate/ws_server.go +++ b/internal/msg_gateway/gate/ws_server.go @@ -110,7 +110,7 @@ func (ws *WServer) MultiTerminalLoginChecker(uid string, platformID int32, newCo m[k] = constant.KickedToken } } - err = db.DB.SetTokenMapByUidPid(uid, utils.Int32ToString(platformID), m) + err = db.DB.SetTokenMapByUidPid(uid, platformID, m) if err != nil { log.NewError("", "SetTokenMapByUidPid err", err.Error()) return diff --git a/pkg/common/db/redisModel.go b/pkg/common/db/redisModel.go index d566a2926..94914a46a 100644 --- a/pkg/common/db/redisModel.go +++ b/pkg/common/db/redisModel.go @@ -1,6 +1,7 @@ package db import ( + "Open_IM/pkg/common/constant" log2 "Open_IM/pkg/common/log" "Open_IM/pkg/utils" "github.com/garyburd/redigo/redis" @@ -75,26 +76,39 @@ func (d *DataBases) DelAppleDeviceToken(accountAddress string) (err error) { //Store userid and platform class to redis func (d *DataBases) AddTokenFlag(userID string, platformID int32, token string, flag int) error { - key := uidPidToken + userID + ":" + utils.Int32ToString(platformID) - m, err := redis.IntMap(d.Exec("GET", key)) + key := uidPidToken + userID + ":" + constant.PlatformIDToName(platformID) + var m map[string]int + m = make(map[string]int) + ls, err := redis.String(d.Exec("GET", key)) if err != nil && err != redis.ErrNil { return err } if err == redis.ErrNil { - m = make(map[string]int, 5) + } else { + _ = utils.JsonStringToStruct(ls, &m) } m[token] = flag - _, err1 := d.Exec("SET", key, m) + s := utils.StructToJsonString(m) + _, err1 := d.Exec("SET", key, s) return err1 } -func (d *DataBases) GetTokenMapByUidPid(userID, platformID string) (map[string]int, error) { +func (d *DataBases) GetTokenMapByUidPid(userID, platformID string) (m map[string]int, e error) { key := uidPidToken + userID + ":" + platformID - return redis.IntMap(d.Exec("GET", key)) + log2.NewDebug("", "key is ", key) + s, e := redis.String(d.Exec("GET", key)) + if e != nil { + return nil, e + } else { + m = make(map[string]int) + _ = utils.JsonStringToStruct(s, m) + return m, nil + } } -func (d *DataBases) SetTokenMapByUidPid(userID, platformID string, m map[string]int) error { - key := uidPidToken + userID + ":" + platformID - _, err := d.Exec("SET", key, m) +func (d *DataBases) SetTokenMapByUidPid(userID string, platformID int32, m map[string]int) error { + key := uidPidToken + userID + ":" + constant.PlatformIDToName(platformID) + s := utils.StructToJsonString(m) + _, err := d.Exec("SET", key, s) return err } diff --git a/pkg/common/token_verify/jwt_token.go b/pkg/common/token_verify/jwt_token.go index e5419dd6b..86271e352 100644 --- a/pkg/common/token_verify/jwt_token.go +++ b/pkg/common/token_verify/jwt_token.go @@ -73,6 +73,7 @@ func getClaimFromToken(tokensString string) (*Claims, error) { } } else { if claims, ok := token.Claims.(*Claims); ok && token.Valid { + log.NewDebug("", claims.UID, claims.Platform) return claims, nil } return nil, &constant.ErrTokenNotValidYet @@ -80,13 +81,13 @@ func getClaimFromToken(tokensString string) (*Claims, error) { } func ParseToken(tokensString string) (claims *Claims, err error) { - //根据token的算法本身做出的有效性检验 + claims, err = getClaimFromToken(tokensString) if err != nil { log.NewError("", "token validate err", err.Error()) return nil, err } - //根据redis做出的有效性检验 + m, err := commonDB.DB.GetTokenMapByUidPid(claims.UID, claims.Platform) if err != nil { log.NewError("", "get token from redis err", err.Error()) @@ -99,6 +100,7 @@ func ParseToken(tokensString string) (claims *Claims, err error) { if v, ok := m[tokensString]; ok { switch v { case constant.NormalToken: + log.NewDebug("", "this is normal return", claims) return claims, nil case constant.InValidToken: return nil, &constant.ErrTokenInvalid @@ -140,5 +142,6 @@ func VerifyToken(token, uid string) (bool, error) { if claims.UID != uid { return false, &constant.ErrTokenUnknown } + log.NewDebug("", claims.UID, claims.Platform) return true, nil } From 7a3b56955ce6073a065b7f93a1a63ad362c21658 Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Thu, 25 Nov 2021 16:37:36 +0800 Subject: [PATCH 098/814] multi terminal kick eachOther --- internal/msg_gateway/gate/ws_server.go | 6 +++++- pkg/common/db/redisModel.go | 2 +- pkg/common/token_verify/jwt_token.go | 2 ++ 3 files changed, 8 insertions(+), 2 deletions(-) diff --git a/internal/msg_gateway/gate/ws_server.go b/internal/msg_gateway/gate/ws_server.go index 29c78813a..445c9d806 100644 --- a/internal/msg_gateway/gate/ws_server.go +++ b/internal/msg_gateway/gate/ws_server.go @@ -95,8 +95,9 @@ func (ws *WServer) MultiTerminalLoginChecker(uid string, platformID int32, newCo switch config.Config.MultiLoginPolicy { case constant.AllLoginButSameTermKick: if oldConn, ok := ws.wsUserToConn[genMapKey(uid, platformID)]; ok { + log.NewDebug("", uid, platformID, "kick old conn") ws.sendKickMsg(oldConn, newConn) - m, err := db.DB.GetTokenMapByUidPid(uid, utils.Int32ToString(platformID)) + m, err := db.DB.GetTokenMapByUidPid(uid, constant.PlatformIDToName(platformID)) if err != nil { log.NewError("", "get token from redis err", err.Error()) return @@ -110,6 +111,7 @@ func (ws *WServer) MultiTerminalLoginChecker(uid string, platformID int32, newCo m[k] = constant.KickedToken } } + log.NewDebug("get map is ", m) err = db.DB.SetTokenMapByUidPid(uid, platformID, m) if err != nil { log.NewError("", "SetTokenMapByUidPid err", err.Error()) @@ -120,6 +122,8 @@ func (ws *WServer) MultiTerminalLoginChecker(uid string, platformID int32, newCo if err != nil { log.NewError("", "conn close err", err.Error()) } + } else { + log.NewDebug("no other conn", ws.wsUserToConn) } case constant.SingleTerminalLogin: diff --git a/pkg/common/db/redisModel.go b/pkg/common/db/redisModel.go index 94914a46a..6e0848e81 100644 --- a/pkg/common/db/redisModel.go +++ b/pkg/common/db/redisModel.go @@ -101,7 +101,7 @@ func (d *DataBases) GetTokenMapByUidPid(userID, platformID string) (m map[string return nil, e } else { m = make(map[string]int) - _ = utils.JsonStringToStruct(s, m) + _ = utils.JsonStringToStruct(s, &m) return m, nil } } diff --git a/pkg/common/token_verify/jwt_token.go b/pkg/common/token_verify/jwt_token.go index 86271e352..2f5f32c23 100644 --- a/pkg/common/token_verify/jwt_token.go +++ b/pkg/common/token_verify/jwt_token.go @@ -108,6 +108,8 @@ func ParseToken(tokensString string) (claims *Claims, err error) { return nil, &constant.ErrTokenInvalid case constant.ExpiredToken: return nil, &constant.ErrTokenExpired + default: + return nil, &constant.ErrTokenUnknown } } return nil, err From b1244c0a1b00960b85b8119db5f99797b967644c Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Thu, 25 Nov 2021 20:32:24 +0800 Subject: [PATCH 099/814] config --- docker-compose.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/docker-compose.yaml b/docker-compose.yaml index 74f8bc1c4..3a3bd94b0 100644 --- a/docker-compose.yaml +++ b/docker-compose.yaml @@ -21,9 +21,9 @@ services: - 37017:27017 container_name: mongo volumes: - - ./components/mongodb/data/db:/data/db - - ./components/mongodb/data/logs:/data/logs - - ./components/mongodb/data/conf:/etc/mongo + # - ./components/mongodb/data/db:/data/db + # - ./components/mongodb/data/logs:/data/logs + # - ./components/mongodb/data/conf:/etc/mongo environment: - MONGO_INITDB_ROOT_USERNAME=openIM - MONGO_INITDB_ROOT_PASSWORD=openIM From d8e5fe367bf7ecf07ac69837b819a855098481be Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Thu, 25 Nov 2021 21:06:07 +0800 Subject: [PATCH 100/814] config --- config/config.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/config/config.yaml b/config/config.yaml index 218281af3..72d21055f 100644 --- a/config/config.yaml +++ b/config/config.yaml @@ -24,8 +24,8 @@ mongo: dbTimeout: 10 dbDatabase: openIM dbSource: admin - dbUserName: openIM - dbPassword: openIM + dbUserName: + dbPassword: dbMaxPoolSize: 20 dbRetainChatRecords: 7 From 72b09864ce048666fc3b2be9e990e18ac13430c5 Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Fri, 26 Nov 2021 14:20:50 +0800 Subject: [PATCH 101/814] panic output detail info --- pkg/common/config/config.go | 4 ++-- pkg/common/db/model.go | 4 ++-- pkg/common/db/mysql.go | 24 ++++++++++++------------ pkg/common/kafka/consumer.go | 4 ++-- pkg/common/kafka/consumer_group.go | 6 +++--- pkg/common/kafka/producer.go | 2 +- pkg/common/log/logrus.go | 4 ++-- pkg/utils/get_server_ip.go | 2 +- 8 files changed, 25 insertions(+), 25 deletions(-) diff --git a/pkg/common/config/config.go b/pkg/common/config/config.go index f32ca8da1..e0c25f2c7 100644 --- a/pkg/common/config/config.go +++ b/pkg/common/config/config.go @@ -164,10 +164,10 @@ func init() { // it will panic cannot find config/config.yaml bytes, err := ioutil.ReadFile(Root + "/config/config.yaml") if err != nil { - panic(err) + panic(err.Error()) } if err = yaml.Unmarshal(bytes, &Config); err != nil { - panic(err) + panic(err.Error()) } } diff --git a/pkg/common/db/model.go b/pkg/common/db/model.go index 494f8ffaf..becdd71b6 100644 --- a/pkg/common/db/model.go +++ b/pkg/common/db/model.go @@ -35,14 +35,14 @@ func init() { } mgoSession, err := mgo.DialWithInfo(mgoDailInfo) if err != nil { - panic(err) + panic(err.Error()) } DB.mgoSession = mgoSession DB.mgoSession.SetMode(mgo.Monotonic, true) c := DB.mgoSession.DB(config.Config.Mongo.DBDatabase).C(cChat) err = c.EnsureIndexKey("uid") if err != nil { - panic(err) + panic(err.Error()) } // redis pool init diff --git a/pkg/common/db/mysql.go b/pkg/common/db/mysql.go index 17370e15f..865571b7f 100644 --- a/pkg/common/db/mysql.go +++ b/pkg/common/db/mysql.go @@ -23,14 +23,14 @@ func initMysqlDB() { db, err := gorm.Open("mysql", dsn) if err != nil { log.Error("", "", dsn) - panic(err) + panic(err.Error()) } //Check the database and table during initialization sql := fmt.Sprintf("CREATE DATABASE IF NOT EXISTS %s ;", config.Config.Mysql.DBDatabaseName) err = db.Exec(sql).Error if err != nil { - panic(err) + panic(err.Error()) } db.Close() @@ -38,7 +38,7 @@ func initMysqlDB() { config.Config.Mysql.DBUserName, config.Config.Mysql.DBPassword, config.Config.Mysql.DBAddress[0], config.Config.Mysql.DBDatabaseName) db, err = gorm.Open("mysql", dsn) if err != nil { - panic(err) + panic(err.Error()) } sqlTable := "CREATE TABLE IF NOT EXISTS `user` (" + @@ -56,7 +56,7 @@ func initMysqlDB() { " ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;" err = db.Exec(sqlTable).Error if err != nil { - panic(err) + panic(err.Error()) } sqlTable = "CREATE TABLE IF NOT EXISTS `friend` (" + @@ -69,7 +69,7 @@ func initMysqlDB() { " ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 ROW_FORMAT=DYNAMIC;" err = db.Exec(sqlTable).Error if err != nil { - panic(err) + panic(err.Error()) } sqlTable = "CREATE TABLE IF NOT EXISTS `friend_request` (" + @@ -82,7 +82,7 @@ func initMysqlDB() { " ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 ROW_FORMAT=DYNAMIC;" err = db.Exec(sqlTable).Error if err != nil { - panic(err) + panic(err.Error()) } sqlTable = "CREATE TABLE IF NOT EXISTS `black_list` (" + @@ -94,7 +94,7 @@ func initMysqlDB() { " ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 ROW_FORMAT=DYNAMIC;" err = db.Exec(sqlTable).Error if err != nil { - panic(err) + panic(err.Error()) } sqlTable = "CREATE TABLE IF NOT EXISTS `user_black_list` (" + @@ -105,7 +105,7 @@ func initMysqlDB() { " ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 ROW_FORMAT=DYNAMIC;" err = db.Exec(sqlTable).Error if err != nil { - panic(err) + panic(err.Error()) } sqlTable = "CREATE TABLE IF NOT EXISTS `group` (" + @@ -120,7 +120,7 @@ func initMysqlDB() { " ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 ROW_FORMAT=DYNAMIC;" err = db.Exec(sqlTable).Error if err != nil { - panic(err) + panic(err.Error()) } sqlTable = "CREATE TABLE IF NOT EXISTS `group_member` (" + @@ -134,7 +134,7 @@ func initMysqlDB() { " ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 ROW_FORMAT=DYNAMIC;" err = db.Exec(sqlTable).Error if err != nil { - panic(err) + panic(err.Error()) } sqlTable = "CREATE TABLE IF NOT EXISTS `group_request` (" + @@ -155,7 +155,7 @@ func initMysqlDB() { " ) ENGINE=InnoDB AUTO_INCREMENT=38 DEFAULT CHARSET=utf8mb4;" err = db.Exec(sqlTable).Error if err != nil { - panic(err) + panic(err.Error()) } sqlTable = "CREATE TABLE IF NOT EXISTS `chat_log` (" + @@ -173,7 +173,7 @@ func initMysqlDB() { " ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 ROW_FORMAT=DYNAMIC;" err = db.Exec(sqlTable).Error if err != nil { - panic(err) + panic(err.Error()) } } diff --git a/pkg/common/kafka/consumer.go b/pkg/common/kafka/consumer.go index eed6ef142..771145906 100644 --- a/pkg/common/kafka/consumer.go +++ b/pkg/common/kafka/consumer.go @@ -20,14 +20,14 @@ func NewKafkaConsumer(addr []string, topic string) *Consumer { consumer, err := sarama.NewConsumer(p.addr, nil) if err != nil { - panic(err) + panic(err.Error()) return nil } p.Consumer = consumer partitionList, err := consumer.Partitions(p.Topic) if err != nil { - panic(err) + panic(err.Error()) return nil } p.PartitionList = partitionList diff --git a/pkg/common/kafka/consumer_group.go b/pkg/common/kafka/consumer_group.go index 4c4af5033..3af714373 100644 --- a/pkg/common/kafka/consumer_group.go +++ b/pkg/common/kafka/consumer_group.go @@ -30,11 +30,11 @@ func NewMConsumerGroup(consumerConfig *MConsumerGroupConfig, topics, addr []stri config.Consumer.Return.Errors = consumerConfig.IsReturnErr client, err := sarama.NewClient(addr, config) if err != nil { - panic(err) + panic(err.Error()) } consumerGroup, err := sarama.NewConsumerGroupFromClient(groupID, client) if err != nil { - panic(err) + panic(err.Error()) } return &MConsumerGroup{ consumerGroup, @@ -47,7 +47,7 @@ func (mc *MConsumerGroup) RegisterHandleAndConsumer(handler sarama.ConsumerGroup for { err := mc.ConsumerGroup.Consume(ctx, mc.topics, handler) if err != nil { - panic(err) + panic(err.Error()) } } } diff --git a/pkg/common/kafka/producer.go b/pkg/common/kafka/producer.go index c82df975f..98ad92209 100644 --- a/pkg/common/kafka/producer.go +++ b/pkg/common/kafka/producer.go @@ -25,7 +25,7 @@ func NewKafkaProducer(addr []string, topic string) *Producer { producer, err := sarama.NewSyncProducer(p.addr, p.config) //Initialize the client if err != nil { - panic(err) + panic(err.Error()) return nil } p.producer = producer diff --git a/pkg/common/log/logrus.go b/pkg/common/log/logrus.go index b88a6f6d3..03b768eca 100644 --- a/pkg/common/log/logrus.go +++ b/pkg/common/log/logrus.go @@ -34,7 +34,7 @@ func loggerInit(moduleName string) *Logger { //Close std console output src, err := os.OpenFile(os.DevNull, os.O_APPEND|os.O_WRONLY, os.ModeAppend) if err != nil { - panic(err) + panic(err.Error()) } writer := bufio.NewWriter(src) logger.SetOutput(writer) @@ -82,7 +82,7 @@ func initRotateLogs(rotationTime time.Duration, maxRemainNum uint, level string, rotatelogs.WithRotationCount(maxRemainNum), ) if err != nil { - panic(err) + panic(err.Error()) } else { return writer } diff --git a/pkg/utils/get_server_ip.go b/pkg/utils/get_server_ip.go index b7f6076c2..239c75a19 100644 --- a/pkg/utils/get_server_ip.go +++ b/pkg/utils/get_server_ip.go @@ -17,7 +17,7 @@ func init() { // see https://gist.github.com/jniltinho/9787946#gistcomment-3019898 conn, err := net.Dial("udp", "8.8.8.8:80") if err != nil { - panic(err) + panic(err.Error()) } defer conn.Close() From 0ea48af89227bc4ca8f5782644ec09401aa7e251 Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Fri, 26 Nov 2021 14:34:00 +0800 Subject: [PATCH 102/814] panic output detail info --- pkg/common/db/model.go | 12 +++++++++++- pkg/common/db/mysql.go | 12 +++++++++--- 2 files changed, 20 insertions(+), 4 deletions(-) diff --git a/pkg/common/db/model.go b/pkg/common/db/model.go index becdd71b6..e2a1fb511 100644 --- a/pkg/common/db/model.go +++ b/pkg/common/db/model.go @@ -2,6 +2,7 @@ package db import ( "Open_IM/pkg/common/config" + "Open_IM/pkg/common/log" "github.com/garyburd/redigo/redis" "gopkg.in/mgo.v2" "time" @@ -20,6 +21,8 @@ func key(dbAddress, dbName string) string { } func init() { + var mgoSession *mgo.Session + var err1 error //mysql init initMysqlDB() // mongo init @@ -35,7 +38,14 @@ func init() { } mgoSession, err := mgo.DialWithInfo(mgoDailInfo) if err != nil { - panic(err.Error()) + log.NewError("mgo init err", err.Error(), mgoDailInfo) + } + if err != nil { + time.Sleep(time.Duration(30) * time.Second) + mgoSession, err1 = mgo.DialWithInfo(mgoDailInfo) + if err1 != nil { + panic(err1.Error()) + } } DB.mgoSession = mgoSession DB.mgoSession.SetMode(mgo.Monotonic, true) diff --git a/pkg/common/db/mysql.go b/pkg/common/db/mysql.go index 865571b7f..0740518ac 100644 --- a/pkg/common/db/mysql.go +++ b/pkg/common/db/mysql.go @@ -19,13 +19,19 @@ func initMysqlDB() { //When there is no open IM database, connect to the mysql built-in database to create openIM database dsn := fmt.Sprintf("%s:%s@tcp(%s)/%s?charset=utf8mb4&parseTime=true&loc=Local", config.Config.Mysql.DBUserName, config.Config.Mysql.DBPassword, config.Config.Mysql.DBAddress[0], "mysql") - + var db *gorm.DB + var err1 error db, err := gorm.Open("mysql", dsn) if err != nil { log.Error("", "", dsn) - panic(err.Error()) } - + if err != nil { + time.Sleep(time.Duration(30) * time.Second) + db, err1 = gorm.Open("mysql", dsn) + if err1 != nil { + panic(err1.Error()) + } + } //Check the database and table during initialization sql := fmt.Sprintf("CREATE DATABASE IF NOT EXISTS %s ;", config.Config.Mysql.DBDatabaseName) err = db.Exec(sql).Error From 7cb42c49de2ea01433b185c257c83f2a135b1142 Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Mon, 29 Nov 2021 11:19:24 +0800 Subject: [PATCH 103/814] pb file --- pkg/proto/user/user.proto | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) diff --git a/pkg/proto/user/user.proto b/pkg/proto/user/user.proto index e1d38fec6..6793dee78 100644 --- a/pkg/proto/user/user.proto +++ b/pkg/proto/user/user.proto @@ -64,10 +64,35 @@ message UpdateUserInfoReq{ string OperationID = 9; string Uid = 10; } +message GetUsersOnlineStatusReq{ + repeated string userIDList = 1; + string operationID = 2; +} +message GetUsersOnlineStatusResp{ + CommonResp commonResp = 1; + repeated SuccessResult successResult = 2; + repeated FailedDetail failedResult = 3; + message SuccessDetail{ + string platform = 1; + string status = 2; + } + message FailedDetail{ + string userID = 1; + CommonResp commonResp = 2; + } + message SuccessResult{ + string userID = 1; + string status = 2; + repeated SuccessDetail detailPlatformStatus = 3; + + } +} + service user { rpc getUserInfo(GetUserInfoReq) returns(GetUserInfoResp); rpc UpdateUserInfo(UpdateUserInfoReq) returns(CommonResp); rpc DeleteUsers(DeleteUsersReq)returns(DeleteUsersResp); rpc GetAllUsersUid(GetAllUsersUidReq)returns(GetAllUsersUidResp); + rpc GetUsersOnlineStatus(GetUsersOnlineStatusReq)returns(GetUsersOnlineStatusResp); } From b3dec3653acd761a96f9d74444bff53ce3806e3d Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Mon, 29 Nov 2021 11:22:49 +0800 Subject: [PATCH 104/814] pb file --- config/config.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config/config.yaml b/config/config.yaml index 72d21055f..f467159c9 100644 --- a/config/config.yaml +++ b/config/config.yaml @@ -6,7 +6,7 @@ serverversion: 1.0.3 etcd: etcdSchema: openIM etcdAddr: [ 127.0.0.1:2379 ] - +11 mysql: dbMysqlAddress: [ 127.0.0.1:13306 ] dbMysqlUserName: root From c7590c120d17bcc413b0dab6fb083539e62ea219 Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Mon, 29 Nov 2021 11:25:57 +0800 Subject: [PATCH 105/814] pb file --- config/config.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config/config.yaml b/config/config.yaml index f467159c9..72d21055f 100644 --- a/config/config.yaml +++ b/config/config.yaml @@ -6,7 +6,7 @@ serverversion: 1.0.3 etcd: etcdSchema: openIM etcdAddr: [ 127.0.0.1:2379 ] -11 + mysql: dbMysqlAddress: [ 127.0.0.1:13306 ] dbMysqlUserName: root From 6c7483733f46e80d767b24f5f2c827acc78e6fcf Mon Sep 17 00:00:00 2001 From: root Date: Mon, 29 Nov 2021 11:44:51 +0800 Subject: [PATCH 106/814] pbfile --- pkg/proto/user/user.pb.go | 399 +++++++++++++++++++++++++++++++++----- 1 file changed, 349 insertions(+), 50 deletions(-) diff --git a/pkg/proto/user/user.pb.go b/pkg/proto/user/user.pb.go index 32771e8e3..62afb489f 100644 --- a/pkg/proto/user/user.pb.go +++ b/pkg/proto/user/user.pb.go @@ -35,7 +35,7 @@ func (m *CommonResp) Reset() { *m = CommonResp{} } func (m *CommonResp) String() string { return proto.CompactTextString(m) } func (*CommonResp) ProtoMessage() {} func (*CommonResp) Descriptor() ([]byte, []int) { - return fileDescriptor_user_9e1dacb346b997d7, []int{0} + return fileDescriptor_user_60873bcb313a530f, []int{0} } func (m *CommonResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_CommonResp.Unmarshal(m, b) @@ -81,7 +81,7 @@ func (m *DeleteUsersResp) Reset() { *m = DeleteUsersResp{} } func (m *DeleteUsersResp) String() string { return proto.CompactTextString(m) } func (*DeleteUsersResp) ProtoMessage() {} func (*DeleteUsersResp) Descriptor() ([]byte, []int) { - return fileDescriptor_user_9e1dacb346b997d7, []int{1} + return fileDescriptor_user_60873bcb313a530f, []int{1} } func (m *DeleteUsersResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_DeleteUsersResp.Unmarshal(m, b) @@ -128,7 +128,7 @@ func (m *DeleteUsersReq) Reset() { *m = DeleteUsersReq{} } func (m *DeleteUsersReq) String() string { return proto.CompactTextString(m) } func (*DeleteUsersReq) ProtoMessage() {} func (*DeleteUsersReq) Descriptor() ([]byte, []int) { - return fileDescriptor_user_9e1dacb346b997d7, []int{2} + return fileDescriptor_user_60873bcb313a530f, []int{2} } func (m *DeleteUsersReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_DeleteUsersReq.Unmarshal(m, b) @@ -181,7 +181,7 @@ func (m *GetAllUsersUidReq) Reset() { *m = GetAllUsersUidReq{} } func (m *GetAllUsersUidReq) String() string { return proto.CompactTextString(m) } func (*GetAllUsersUidReq) ProtoMessage() {} func (*GetAllUsersUidReq) Descriptor() ([]byte, []int) { - return fileDescriptor_user_9e1dacb346b997d7, []int{3} + return fileDescriptor_user_60873bcb313a530f, []int{3} } func (m *GetAllUsersUidReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetAllUsersUidReq.Unmarshal(m, b) @@ -227,7 +227,7 @@ func (m *GetAllUsersUidResp) Reset() { *m = GetAllUsersUidResp{} } func (m *GetAllUsersUidResp) String() string { return proto.CompactTextString(m) } func (*GetAllUsersUidResp) ProtoMessage() {} func (*GetAllUsersUidResp) Descriptor() ([]byte, []int) { - return fileDescriptor_user_9e1dacb346b997d7, []int{4} + return fileDescriptor_user_60873bcb313a530f, []int{4} } func (m *GetAllUsersUidResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetAllUsersUidResp.Unmarshal(m, b) @@ -274,7 +274,7 @@ 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_user_9e1dacb346b997d7, []int{5} + return fileDescriptor_user_60873bcb313a530f, []int{5} } func (m *GetUserInfoReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetUserInfoReq.Unmarshal(m, b) @@ -328,7 +328,7 @@ 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_user_9e1dacb346b997d7, []int{6} + return fileDescriptor_user_60873bcb313a530f, []int{6} } func (m *GetUserInfoResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetUserInfoResp.Unmarshal(m, b) @@ -387,7 +387,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_user_9e1dacb346b997d7, []int{7} + return fileDescriptor_user_60873bcb313a530f, []int{7} } func (m *UserInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_UserInfo.Unmarshal(m, b) @@ -475,7 +475,7 @@ func (m *LogoutReq) Reset() { *m = LogoutReq{} } func (m *LogoutReq) String() string { return proto.CompactTextString(m) } func (*LogoutReq) ProtoMessage() {} func (*LogoutReq) Descriptor() ([]byte, []int) { - return fileDescriptor_user_9e1dacb346b997d7, []int{8} + return fileDescriptor_user_60873bcb313a530f, []int{8} } func (m *LogoutReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_LogoutReq.Unmarshal(m, b) @@ -529,7 +529,7 @@ 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_user_9e1dacb346b997d7, []int{9} + return fileDescriptor_user_60873bcb313a530f, []int{9} } func (m *UpdateUserInfoReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_UpdateUserInfoReq.Unmarshal(m, b) @@ -619,6 +619,256 @@ func (m *UpdateUserInfoReq) GetUid() string { return "" } +type GetUsersOnlineStatusReq struct { + UserIDList []string `protobuf:"bytes,1,rep,name=userIDList" json:"userIDList,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 *GetUsersOnlineStatusReq) Reset() { *m = GetUsersOnlineStatusReq{} } +func (m *GetUsersOnlineStatusReq) String() string { return proto.CompactTextString(m) } +func (*GetUsersOnlineStatusReq) ProtoMessage() {} +func (*GetUsersOnlineStatusReq) Descriptor() ([]byte, []int) { + return fileDescriptor_user_60873bcb313a530f, []int{10} +} +func (m *GetUsersOnlineStatusReq) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GetUsersOnlineStatusReq.Unmarshal(m, b) +} +func (m *GetUsersOnlineStatusReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GetUsersOnlineStatusReq.Marshal(b, m, deterministic) +} +func (dst *GetUsersOnlineStatusReq) XXX_Merge(src proto.Message) { + xxx_messageInfo_GetUsersOnlineStatusReq.Merge(dst, src) +} +func (m *GetUsersOnlineStatusReq) XXX_Size() int { + return xxx_messageInfo_GetUsersOnlineStatusReq.Size(m) +} +func (m *GetUsersOnlineStatusReq) XXX_DiscardUnknown() { + xxx_messageInfo_GetUsersOnlineStatusReq.DiscardUnknown(m) +} + +var xxx_messageInfo_GetUsersOnlineStatusReq proto.InternalMessageInfo + +func (m *GetUsersOnlineStatusReq) GetUserIDList() []string { + if m != nil { + return m.UserIDList + } + return nil +} + +func (m *GetUsersOnlineStatusReq) GetOperationID() string { + if m != nil { + return m.OperationID + } + return "" +} + +type GetUsersOnlineStatusResp struct { + CommonResp *CommonResp `protobuf:"bytes,1,opt,name=commonResp" json:"commonResp,omitempty"` + SuccessResult []*GetUsersOnlineStatusResp_SuccessResult `protobuf:"bytes,2,rep,name=successResult" json:"successResult,omitempty"` + FailedResult []*GetUsersOnlineStatusResp_FailedDetail `protobuf:"bytes,3,rep,name=failedResult" json:"failedResult,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *GetUsersOnlineStatusResp) Reset() { *m = GetUsersOnlineStatusResp{} } +func (m *GetUsersOnlineStatusResp) String() string { return proto.CompactTextString(m) } +func (*GetUsersOnlineStatusResp) ProtoMessage() {} +func (*GetUsersOnlineStatusResp) Descriptor() ([]byte, []int) { + return fileDescriptor_user_60873bcb313a530f, []int{11} +} +func (m *GetUsersOnlineStatusResp) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GetUsersOnlineStatusResp.Unmarshal(m, b) +} +func (m *GetUsersOnlineStatusResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GetUsersOnlineStatusResp.Marshal(b, m, deterministic) +} +func (dst *GetUsersOnlineStatusResp) XXX_Merge(src proto.Message) { + xxx_messageInfo_GetUsersOnlineStatusResp.Merge(dst, src) +} +func (m *GetUsersOnlineStatusResp) XXX_Size() int { + return xxx_messageInfo_GetUsersOnlineStatusResp.Size(m) +} +func (m *GetUsersOnlineStatusResp) XXX_DiscardUnknown() { + xxx_messageInfo_GetUsersOnlineStatusResp.DiscardUnknown(m) +} + +var xxx_messageInfo_GetUsersOnlineStatusResp proto.InternalMessageInfo + +func (m *GetUsersOnlineStatusResp) GetCommonResp() *CommonResp { + if m != nil { + return m.CommonResp + } + return nil +} + +func (m *GetUsersOnlineStatusResp) GetSuccessResult() []*GetUsersOnlineStatusResp_SuccessResult { + if m != nil { + return m.SuccessResult + } + return nil +} + +func (m *GetUsersOnlineStatusResp) GetFailedResult() []*GetUsersOnlineStatusResp_FailedDetail { + if m != nil { + return m.FailedResult + } + return nil +} + +type GetUsersOnlineStatusResp_SuccessDetail struct { + Platform string `protobuf:"bytes,1,opt,name=platform" json:"platform,omitempty"` + Status string `protobuf:"bytes,2,opt,name=status" json:"status,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *GetUsersOnlineStatusResp_SuccessDetail) Reset() { + *m = GetUsersOnlineStatusResp_SuccessDetail{} +} +func (m *GetUsersOnlineStatusResp_SuccessDetail) String() string { return proto.CompactTextString(m) } +func (*GetUsersOnlineStatusResp_SuccessDetail) ProtoMessage() {} +func (*GetUsersOnlineStatusResp_SuccessDetail) Descriptor() ([]byte, []int) { + return fileDescriptor_user_60873bcb313a530f, []int{11, 0} +} +func (m *GetUsersOnlineStatusResp_SuccessDetail) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GetUsersOnlineStatusResp_SuccessDetail.Unmarshal(m, b) +} +func (m *GetUsersOnlineStatusResp_SuccessDetail) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GetUsersOnlineStatusResp_SuccessDetail.Marshal(b, m, deterministic) +} +func (dst *GetUsersOnlineStatusResp_SuccessDetail) XXX_Merge(src proto.Message) { + xxx_messageInfo_GetUsersOnlineStatusResp_SuccessDetail.Merge(dst, src) +} +func (m *GetUsersOnlineStatusResp_SuccessDetail) XXX_Size() int { + return xxx_messageInfo_GetUsersOnlineStatusResp_SuccessDetail.Size(m) +} +func (m *GetUsersOnlineStatusResp_SuccessDetail) XXX_DiscardUnknown() { + xxx_messageInfo_GetUsersOnlineStatusResp_SuccessDetail.DiscardUnknown(m) +} + +var xxx_messageInfo_GetUsersOnlineStatusResp_SuccessDetail proto.InternalMessageInfo + +func (m *GetUsersOnlineStatusResp_SuccessDetail) GetPlatform() string { + if m != nil { + return m.Platform + } + return "" +} + +func (m *GetUsersOnlineStatusResp_SuccessDetail) GetStatus() string { + if m != nil { + return m.Status + } + return "" +} + +type GetUsersOnlineStatusResp_FailedDetail struct { + UserID string `protobuf:"bytes,1,opt,name=userID" json:"userID,omitempty"` + CommonResp *CommonResp `protobuf:"bytes,2,opt,name=commonResp" json:"commonResp,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *GetUsersOnlineStatusResp_FailedDetail) Reset() { *m = GetUsersOnlineStatusResp_FailedDetail{} } +func (m *GetUsersOnlineStatusResp_FailedDetail) String() string { return proto.CompactTextString(m) } +func (*GetUsersOnlineStatusResp_FailedDetail) ProtoMessage() {} +func (*GetUsersOnlineStatusResp_FailedDetail) Descriptor() ([]byte, []int) { + return fileDescriptor_user_60873bcb313a530f, []int{11, 1} +} +func (m *GetUsersOnlineStatusResp_FailedDetail) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GetUsersOnlineStatusResp_FailedDetail.Unmarshal(m, b) +} +func (m *GetUsersOnlineStatusResp_FailedDetail) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GetUsersOnlineStatusResp_FailedDetail.Marshal(b, m, deterministic) +} +func (dst *GetUsersOnlineStatusResp_FailedDetail) XXX_Merge(src proto.Message) { + xxx_messageInfo_GetUsersOnlineStatusResp_FailedDetail.Merge(dst, src) +} +func (m *GetUsersOnlineStatusResp_FailedDetail) XXX_Size() int { + return xxx_messageInfo_GetUsersOnlineStatusResp_FailedDetail.Size(m) +} +func (m *GetUsersOnlineStatusResp_FailedDetail) XXX_DiscardUnknown() { + xxx_messageInfo_GetUsersOnlineStatusResp_FailedDetail.DiscardUnknown(m) +} + +var xxx_messageInfo_GetUsersOnlineStatusResp_FailedDetail proto.InternalMessageInfo + +func (m *GetUsersOnlineStatusResp_FailedDetail) GetUserID() string { + if m != nil { + return m.UserID + } + return "" +} + +func (m *GetUsersOnlineStatusResp_FailedDetail) GetCommonResp() *CommonResp { + if m != nil { + return m.CommonResp + } + return nil +} + +type GetUsersOnlineStatusResp_SuccessResult struct { + UserID string `protobuf:"bytes,1,opt,name=userID" json:"userID,omitempty"` + Status string `protobuf:"bytes,2,opt,name=status" json:"status,omitempty"` + DetailPlatformStatus []*GetUsersOnlineStatusResp_SuccessDetail `protobuf:"bytes,3,rep,name=detailPlatformStatus" json:"detailPlatformStatus,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *GetUsersOnlineStatusResp_SuccessResult) Reset() { + *m = GetUsersOnlineStatusResp_SuccessResult{} +} +func (m *GetUsersOnlineStatusResp_SuccessResult) String() string { return proto.CompactTextString(m) } +func (*GetUsersOnlineStatusResp_SuccessResult) ProtoMessage() {} +func (*GetUsersOnlineStatusResp_SuccessResult) Descriptor() ([]byte, []int) { + return fileDescriptor_user_60873bcb313a530f, []int{11, 2} +} +func (m *GetUsersOnlineStatusResp_SuccessResult) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GetUsersOnlineStatusResp_SuccessResult.Unmarshal(m, b) +} +func (m *GetUsersOnlineStatusResp_SuccessResult) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GetUsersOnlineStatusResp_SuccessResult.Marshal(b, m, deterministic) +} +func (dst *GetUsersOnlineStatusResp_SuccessResult) XXX_Merge(src proto.Message) { + xxx_messageInfo_GetUsersOnlineStatusResp_SuccessResult.Merge(dst, src) +} +func (m *GetUsersOnlineStatusResp_SuccessResult) XXX_Size() int { + return xxx_messageInfo_GetUsersOnlineStatusResp_SuccessResult.Size(m) +} +func (m *GetUsersOnlineStatusResp_SuccessResult) XXX_DiscardUnknown() { + xxx_messageInfo_GetUsersOnlineStatusResp_SuccessResult.DiscardUnknown(m) +} + +var xxx_messageInfo_GetUsersOnlineStatusResp_SuccessResult proto.InternalMessageInfo + +func (m *GetUsersOnlineStatusResp_SuccessResult) GetUserID() string { + if m != nil { + return m.UserID + } + return "" +} + +func (m *GetUsersOnlineStatusResp_SuccessResult) GetStatus() string { + if m != nil { + return m.Status + } + return "" +} + +func (m *GetUsersOnlineStatusResp_SuccessResult) GetDetailPlatformStatus() []*GetUsersOnlineStatusResp_SuccessDetail { + if m != nil { + return m.DetailPlatformStatus + } + return nil +} + func init() { proto.RegisterType((*CommonResp)(nil), "user.CommonResp") proto.RegisterType((*DeleteUsersResp)(nil), "user.DeleteUsersResp") @@ -630,6 +880,11 @@ func init() { proto.RegisterType((*UserInfo)(nil), "user.UserInfo") proto.RegisterType((*LogoutReq)(nil), "user.LogoutReq") proto.RegisterType((*UpdateUserInfoReq)(nil), "user.UpdateUserInfoReq") + proto.RegisterType((*GetUsersOnlineStatusReq)(nil), "user.GetUsersOnlineStatusReq") + proto.RegisterType((*GetUsersOnlineStatusResp)(nil), "user.GetUsersOnlineStatusResp") + proto.RegisterType((*GetUsersOnlineStatusResp_SuccessDetail)(nil), "user.GetUsersOnlineStatusResp.SuccessDetail") + proto.RegisterType((*GetUsersOnlineStatusResp_FailedDetail)(nil), "user.GetUsersOnlineStatusResp.FailedDetail") + proto.RegisterType((*GetUsersOnlineStatusResp_SuccessResult)(nil), "user.GetUsersOnlineStatusResp.SuccessResult") } // Reference imports to suppress errors if they are not otherwise used. @@ -647,6 +902,7 @@ type UserClient interface { UpdateUserInfo(ctx context.Context, in *UpdateUserInfoReq, opts ...grpc.CallOption) (*CommonResp, error) DeleteUsers(ctx context.Context, in *DeleteUsersReq, opts ...grpc.CallOption) (*DeleteUsersResp, error) GetAllUsersUid(ctx context.Context, in *GetAllUsersUidReq, opts ...grpc.CallOption) (*GetAllUsersUidResp, error) + GetUsersOnlineStatus(ctx context.Context, in *GetUsersOnlineStatusReq, opts ...grpc.CallOption) (*GetUsersOnlineStatusResp, error) } type userClient struct { @@ -693,6 +949,15 @@ func (c *userClient) GetAllUsersUid(ctx context.Context, in *GetAllUsersUidReq, return out, nil } +func (c *userClient) GetUsersOnlineStatus(ctx context.Context, in *GetUsersOnlineStatusReq, opts ...grpc.CallOption) (*GetUsersOnlineStatusResp, error) { + out := new(GetUsersOnlineStatusResp) + err := grpc.Invoke(ctx, "/user.user/GetUsersOnlineStatus", in, out, c.cc, opts...) + if err != nil { + return nil, err + } + return out, nil +} + // Server API for User service type UserServer interface { @@ -700,6 +965,7 @@ type UserServer interface { UpdateUserInfo(context.Context, *UpdateUserInfoReq) (*CommonResp, error) DeleteUsers(context.Context, *DeleteUsersReq) (*DeleteUsersResp, error) GetAllUsersUid(context.Context, *GetAllUsersUidReq) (*GetAllUsersUidResp, error) + GetUsersOnlineStatus(context.Context, *GetUsersOnlineStatusReq) (*GetUsersOnlineStatusResp, error) } func RegisterUserServer(s *grpc.Server, srv UserServer) { @@ -778,6 +1044,24 @@ func _User_GetAllUsersUid_Handler(srv interface{}, ctx context.Context, dec func return interceptor(ctx, in, info, handler) } +func _User_GetUsersOnlineStatus_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetUsersOnlineStatusReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(UserServer).GetUsersOnlineStatus(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/user.user/GetUsersOnlineStatus", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(UserServer).GetUsersOnlineStatus(ctx, req.(*GetUsersOnlineStatusReq)) + } + return interceptor(ctx, in, info, handler) +} + var _User_serviceDesc = grpc.ServiceDesc{ ServiceName: "user.user", HandlerType: (*UserServer)(nil), @@ -798,49 +1082,64 @@ var _User_serviceDesc = grpc.ServiceDesc{ MethodName: "GetAllUsersUid", Handler: _User_GetAllUsersUid_Handler, }, + { + MethodName: "GetUsersOnlineStatus", + Handler: _User_GetUsersOnlineStatus_Handler, + }, }, Streams: []grpc.StreamDesc{}, Metadata: "user/user.proto", } -func init() { proto.RegisterFile("user/user.proto", fileDescriptor_user_9e1dacb346b997d7) } - -var fileDescriptor_user_9e1dacb346b997d7 = []byte{ - // 562 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xa4, 0x54, 0x4d, 0x6f, 0xd3, 0x40, - 0x10, 0x95, 0xed, 0x24, 0x8d, 0x27, 0x6a, 0x92, 0xae, 0x0a, 0xac, 0x22, 0x84, 0x22, 0x8b, 0x43, - 0x4e, 0x01, 0x85, 0x1b, 0x3d, 0x41, 0x22, 0xaa, 0x88, 0xa2, 0x4a, 0x96, 0x7c, 0xe1, 0x84, 0xd3, - 0x9d, 0xa6, 0x2b, 0x1c, 0xaf, 0xb1, 0x37, 0x52, 0x8f, 0xfc, 0x24, 0xfe, 0x1a, 0xff, 0x00, 0xed, - 0x38, 0x4e, 0xfc, 0x55, 0x0e, 0x70, 0xb1, 0x76, 0xde, 0xae, 0xdf, 0xdb, 0x37, 0x33, 0x3b, 0x30, - 0xda, 0x67, 0x98, 0xbe, 0x31, 0x9f, 0x79, 0x92, 0x2a, 0xad, 0x58, 0xc7, 0xac, 0xbd, 0x4f, 0x00, - 0x4b, 0xb5, 0xdb, 0xa9, 0xd8, 0xc7, 0x2c, 0x61, 0x2f, 0xc1, 0xc5, 0x34, 0x55, 0xe9, 0x52, 0x09, - 0xe4, 0xd6, 0xd4, 0x9a, 0x75, 0xfd, 0x13, 0xc0, 0x26, 0xd0, 0xa7, 0xe0, 0x4b, 0xb6, 0xe5, 0xf6, - 0xd4, 0x9a, 0xb9, 0xfe, 0x31, 0xf6, 0x24, 0x8c, 0x56, 0x18, 0xa1, 0xc6, 0x20, 0xc3, 0x34, 0x23, - 0xb2, 0xb7, 0x00, 0x77, 0x47, 0x6a, 0x62, 0x1b, 0x2c, 0xc6, 0x73, 0xba, 0xc1, 0x49, 0xd2, 0x2f, - 0x9d, 0x61, 0xaf, 0xe1, 0xfc, 0x3e, 0x94, 0x11, 0x8a, 0x40, 0x8a, 0x1b, 0x99, 0x69, 0x6e, 0x4f, - 0x9d, 0x99, 0xeb, 0x57, 0x41, 0x2f, 0x86, 0x61, 0x45, 0xea, 0x87, 0xf9, 0x4f, 0xe4, 0x48, 0xf5, - 0xbf, 0x0a, 0xc8, 0x2e, 0xa1, 0xab, 0xd5, 0x77, 0x8c, 0xb9, 0x43, 0x77, 0xcf, 0x03, 0x36, 0x85, - 0xc1, 0x6d, 0x82, 0x69, 0xa8, 0xa5, 0x8a, 0xd7, 0x2b, 0xde, 0xa1, 0xbd, 0x32, 0xe4, 0x7d, 0x86, - 0x8b, 0x6b, 0xd4, 0x1f, 0xa2, 0x88, 0xf4, 0x02, 0x29, 0x8c, 0xe4, 0x91, 0xcc, 0xae, 0x91, 0xa9, - 0x12, 0x59, 0x2e, 0x54, 0x86, 0xbc, 0x6f, 0xc0, 0xea, 0x64, 0xff, 0x94, 0x2a, 0x0e, 0x67, 0xfb, - 0x8a, 0xd9, 0x22, 0xf4, 0x1e, 0x60, 0x78, 0x8d, 0xda, 0xd0, 0xaf, 0xe3, 0x7b, 0x65, 0xee, 0xfa, - 0x0a, 0xc0, 0x50, 0xad, 0x57, 0x74, 0xdc, 0xa2, 0xe3, 0x25, 0xe4, 0x69, 0x2f, 0xb7, 0x4d, 0x2f, - 0xe5, 0xc4, 0x28, 0x18, 0x55, 0x94, 0xfe, 0xa7, 0x81, 0x98, 0x07, 0x9d, 0x55, 0xa8, 0x43, 0xee, - 0x4c, 0x9d, 0xd9, 0x60, 0x31, 0xcc, 0xcd, 0x1f, 0xb9, 0x69, 0xcf, 0xfb, 0x65, 0x41, 0xbf, 0x80, - 0xd8, 0x18, 0x9c, 0xbd, 0x14, 0x24, 0xe2, 0xfa, 0x66, 0xc9, 0x18, 0x74, 0xe2, 0x70, 0x87, 0x07, - 0x6a, 0x5a, 0x1b, 0x4c, 0xde, 0xa9, 0xa2, 0xe6, 0xb4, 0x66, 0xcf, 0xa1, 0xb7, 0xc5, 0x58, 0x60, - 0x4a, 0xd5, 0xee, 0xfa, 0x87, 0xc8, 0xe0, 0x3b, 0xb5, 0x91, 0x11, 0xf2, 0x2e, 0x9d, 0x3e, 0x44, - 0x26, 0x3f, 0x1b, 0x99, 0xea, 0x07, 0xde, 0xcb, 0xf3, 0x43, 0x81, 0x41, 0x71, 0x17, 0xca, 0x88, - 0x9f, 0xe5, 0x28, 0x05, 0x6c, 0x08, 0x36, 0x3e, 0xf2, 0x3e, 0x41, 0x36, 0x3e, 0x7a, 0x4b, 0x70, - 0x6f, 0xd4, 0x56, 0xed, 0xb5, 0x29, 0x44, 0x2d, 0xa5, 0x56, 0x23, 0xa5, 0xed, 0xa5, 0xf0, 0x7e, - 0x5b, 0x70, 0x11, 0x24, 0x22, 0xcc, 0x5b, 0xbe, 0x28, 0x6b, 0x61, 0xcd, 0x2a, 0x59, 0x6b, 0x4b, - 0xc1, 0xc9, 0xae, 0xf3, 0x84, 0xdd, 0x4e, 0xbb, 0xdd, 0x6e, 0xab, 0xdd, 0x5e, 0xd3, 0xee, 0x59, - 0x61, 0xf7, 0x74, 0xff, 0xfe, 0x5f, 0x5a, 0xc9, 0x6d, 0xfa, 0x1e, 0x83, 0x13, 0x48, 0xc1, 0x21, - 0x2f, 0x66, 0x20, 0xc5, 0xe2, 0xa7, 0x0d, 0x34, 0xa1, 0xd8, 0x7b, 0x18, 0x6c, 0x4f, 0x5d, 0xc6, - 0x2e, 0xf3, 0xce, 0xa8, 0xb6, 0xf8, 0xe4, 0x59, 0x0b, 0x9a, 0x25, 0xec, 0x0a, 0x86, 0xd5, 0xbc, - 0xb1, 0x17, 0x87, 0xc6, 0xaa, 0x67, 0x73, 0xd2, 0x78, 0x6e, 0x46, 0xb8, 0x34, 0x67, 0x0a, 0xe1, - 0xea, 0xe8, 0x29, 0x84, 0xeb, 0xb3, 0x6f, 0x49, 0x8f, 0xb0, 0xf4, 0xcc, 0x0b, 0xe1, 0xc6, 0x24, - 0x99, 0xf0, 0xf6, 0x8d, 0x2c, 0xf9, 0x78, 0xfe, 0x75, 0x30, 0xa7, 0x89, 0x7d, 0x65, 0x3e, 0x9b, - 0x1e, 0xcd, 0xed, 0x77, 0x7f, 0x02, 0x00, 0x00, 0xff, 0xff, 0x30, 0xbd, 0x59, 0x5b, 0xca, 0x05, - 0x00, 0x00, +func init() { proto.RegisterFile("user/user.proto", fileDescriptor_user_60873bcb313a530f) } + +var fileDescriptor_user_60873bcb313a530f = []byte{ + // 746 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xa4, 0x56, 0xcd, 0x6a, 0xdb, 0x4c, + 0x14, 0x45, 0xf2, 0x4f, 0xec, 0xeb, 0xd8, 0x49, 0x06, 0x7f, 0x5f, 0x06, 0xd1, 0x06, 0x23, 0xba, + 0x30, 0xb4, 0xb8, 0xc5, 0xdd, 0x35, 0xab, 0xd6, 0x26, 0x21, 0x34, 0xc5, 0x45, 0xc1, 0x50, 0xda, + 0x4d, 0x14, 0x6b, 0xe2, 0x0c, 0x95, 0x35, 0x8a, 0x34, 0x82, 0xbc, 0x4e, 0xdf, 0xa0, 0x8b, 0xbe, + 0x4b, 0x9f, 0xa3, 0x6f, 0x50, 0xe6, 0x47, 0xb6, 0xfe, 0x9c, 0x84, 0x74, 0x63, 0xe6, 0xde, 0x99, + 0x39, 0x67, 0xce, 0x99, 0xb9, 0xba, 0x86, 0xbd, 0x24, 0x26, 0xd1, 0x6b, 0xf1, 0x33, 0x0a, 0x23, + 0xc6, 0x19, 0xaa, 0x8b, 0xb1, 0x7d, 0x02, 0x30, 0x61, 0xab, 0x15, 0x0b, 0x1c, 0x12, 0x87, 0xe8, + 0x19, 0xb4, 0x49, 0x14, 0xb1, 0x68, 0xc2, 0x3c, 0x82, 0x8d, 0x81, 0x31, 0x6c, 0x38, 0x9b, 0x04, + 0xb2, 0xa0, 0x25, 0x83, 0x4f, 0xf1, 0x12, 0x9b, 0x03, 0x63, 0xd8, 0x76, 0xd6, 0xb1, 0x4d, 0x61, + 0x6f, 0x4a, 0x7c, 0xc2, 0xc9, 0x3c, 0x26, 0x51, 0x2c, 0xc1, 0xde, 0x00, 0x2c, 0xd6, 0xd0, 0x12, + 0xad, 0x33, 0xde, 0x1f, 0xc9, 0x13, 0x6c, 0x28, 0x9d, 0xcc, 0x1a, 0xf4, 0x02, 0xba, 0xd7, 0x2e, + 0xf5, 0x89, 0x37, 0xa7, 0xde, 0x39, 0x8d, 0x39, 0x36, 0x07, 0xb5, 0x61, 0xdb, 0xc9, 0x27, 0xed, + 0x00, 0x7a, 0x39, 0xaa, 0x5b, 0xb1, 0xcf, 0x53, 0x99, 0xfc, 0xbe, 0x5c, 0x12, 0xf5, 0xa1, 0xc1, + 0xd9, 0x77, 0x12, 0xe0, 0x9a, 0x3c, 0xbb, 0x0a, 0xd0, 0x00, 0x3a, 0xb3, 0x90, 0x44, 0x2e, 0xa7, + 0x2c, 0x38, 0x9b, 0xe2, 0xba, 0x9c, 0xcb, 0xa6, 0xec, 0x8f, 0x70, 0x70, 0x4a, 0xf8, 0x7b, 0xdf, + 0x97, 0x7c, 0x73, 0xea, 0x09, 0xca, 0x35, 0x98, 0x59, 0x00, 0x63, 0x19, 0x30, 0x45, 0x94, 0x4d, + 0xd9, 0x97, 0x80, 0x8a, 0x60, 0x4f, 0xb2, 0x0a, 0xc3, 0x4e, 0x92, 0x13, 0x9b, 0x86, 0xf6, 0x0d, + 0xf4, 0x4e, 0x09, 0x17, 0xf0, 0x67, 0xc1, 0x35, 0x13, 0x67, 0x3d, 0x02, 0x10, 0x50, 0x67, 0x53, + 0xb9, 0xdc, 0x90, 0xcb, 0x33, 0x99, 0xed, 0x5a, 0x66, 0x65, 0x2d, 0x59, 0x63, 0x18, 0xec, 0xe5, + 0x98, 0xfe, 0xe5, 0x01, 0x21, 0x1b, 0xea, 0x53, 0x97, 0xbb, 0xb8, 0x36, 0xa8, 0x0d, 0x3b, 0xe3, + 0x9e, 0x12, 0xbf, 0xc6, 0x96, 0x73, 0xf6, 0x4f, 0x03, 0x5a, 0x69, 0x0a, 0xed, 0x43, 0x2d, 0xa1, + 0x9e, 0x24, 0x69, 0x3b, 0x62, 0x88, 0x10, 0xd4, 0x03, 0x77, 0x45, 0x34, 0xb4, 0x1c, 0x8b, 0x1c, + 0x5d, 0xb0, 0xf4, 0xce, 0xe5, 0x18, 0xfd, 0x0f, 0xcd, 0x25, 0x09, 0x3c, 0x12, 0xc9, 0xdb, 0x6e, + 0x38, 0x3a, 0x12, 0xf9, 0x15, 0xbb, 0xa2, 0x3e, 0xc1, 0x0d, 0xb9, 0x5a, 0x47, 0xc2, 0x9f, 0x2b, + 0x1a, 0xf1, 0x1b, 0xdc, 0x54, 0xfe, 0xc8, 0x40, 0x64, 0xc9, 0xca, 0xa5, 0x3e, 0xde, 0x51, 0x59, + 0x19, 0xa0, 0x1e, 0x98, 0xe4, 0x0e, 0xb7, 0x64, 0xca, 0x24, 0x77, 0xf6, 0x04, 0xda, 0xe7, 0x6c, + 0xc9, 0x12, 0x2e, 0x2e, 0xa2, 0x60, 0xa9, 0x51, 0xb2, 0xb4, 0xfa, 0x2a, 0xec, 0x3f, 0x06, 0x1c, + 0xcc, 0x43, 0xcf, 0x55, 0x4f, 0x3e, 0xbd, 0xd6, 0x54, 0x9a, 0x91, 0x91, 0x56, 0x65, 0xc1, 0x46, + 0x6e, 0x6d, 0x8b, 0xdc, 0x7a, 0xb5, 0xdc, 0x46, 0xa5, 0xdc, 0x66, 0x59, 0xee, 0x4e, 0x2a, 0x77, + 0x73, 0xfe, 0xd6, 0x3d, 0x4f, 0xa9, 0x5d, 0xd6, 0xbd, 0x0f, 0xb5, 0x39, 0xf5, 0x30, 0xa8, 0xcb, + 0x9c, 0x53, 0xcf, 0xfe, 0x06, 0x87, 0xfa, 0x71, 0xc5, 0xb3, 0xc0, 0xa7, 0x01, 0xb9, 0xe0, 0x2e, + 0x4f, 0xe2, 0xc7, 0xbc, 0xe7, 0x42, 0x15, 0x9a, 0xe5, 0x2a, 0xfc, 0x55, 0x07, 0x5c, 0x8d, 0xfe, + 0xa4, 0x62, 0x74, 0xa0, 0x1b, 0x27, 0x8b, 0x05, 0x89, 0x05, 0x40, 0xe2, 0xab, 0x92, 0xec, 0x8c, + 0x5f, 0xa9, 0x4d, 0xdb, 0x88, 0x46, 0x17, 0xd9, 0x3d, 0x4e, 0x1e, 0x02, 0xcd, 0x60, 0x57, 0x7d, + 0xf6, 0x34, 0xa4, 0xaa, 0x8b, 0x97, 0x0f, 0x40, 0x9e, 0xc8, 0x2d, 0x53, 0xc2, 0x5d, 0xea, 0x3b, + 0x39, 0x00, 0x6b, 0x02, 0x5d, 0x4d, 0xa8, 0xa6, 0x45, 0x35, 0x86, 0xbe, 0xcb, 0xaf, 0x59, 0xb4, + 0xd2, 0x6f, 0x68, 0x1d, 0x8b, 0xb7, 0x11, 0x4b, 0x54, 0xed, 0x9e, 0x8e, 0xac, 0x2f, 0xb0, 0x9b, + 0xa5, 0x10, 0xeb, 0x94, 0xf1, 0x1a, 0x41, 0x47, 0x05, 0x0f, 0xcd, 0x87, 0x3d, 0xb4, 0x7e, 0x18, + 0xeb, 0xf3, 0x69, 0x07, 0xb6, 0x61, 0x6f, 0x39, 0x1b, 0xba, 0x84, 0xbe, 0x27, 0x4f, 0xf5, 0x59, + 0xab, 0x50, 0xbe, 0x68, 0xe7, 0x1e, 0x79, 0x19, 0xda, 0xba, 0x4a, 0xa4, 0xf1, 0x6f, 0x13, 0x64, + 0xd7, 0x44, 0xef, 0xa0, 0xb3, 0xdc, 0x7c, 0xf9, 0x50, 0x3f, 0x87, 0xad, 0xeb, 0xd3, 0xfa, 0xaf, + 0x22, 0x1b, 0x87, 0xe8, 0x18, 0x7a, 0xf9, 0x5a, 0x46, 0x87, 0xfa, 0x63, 0x57, 0xac, 0x70, 0xab, + 0xe4, 0x98, 0x20, 0xce, 0xf4, 0xbe, 0x94, 0x38, 0xdf, 0x0e, 0x53, 0xe2, 0x62, 0x3f, 0x9e, 0xc8, + 0xc6, 0x90, 0x69, 0x3d, 0x29, 0x71, 0xa9, 0xbb, 0x59, 0xb8, 0x7a, 0x22, 0x0e, 0xd1, 0x1c, 0xfa, + 0x55, 0x16, 0xa2, 0xe7, 0xf7, 0xd9, 0x7b, 0x6b, 0x1d, 0xdd, 0xef, 0xfe, 0x87, 0xee, 0xd7, 0xce, + 0x48, 0xfe, 0x39, 0x39, 0x16, 0x3f, 0x57, 0x4d, 0xf9, 0x17, 0xe5, 0xed, 0xdf, 0x00, 0x00, 0x00, + 0xff, 0xff, 0xae, 0xca, 0xfa, 0xdd, 0xb5, 0x08, 0x00, 0x00, } From d55eda0bb3c3de960833fc4e898706857193c40d Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Mon, 29 Nov 2021 12:00:52 +0800 Subject: [PATCH 107/814] pb file --- pkg/proto/relay/relay.proto | 26 ++++++++++++++++++++++++++ pkg/proto/user/user.proto | 25 +------------------------ 2 files changed, 27 insertions(+), 24 deletions(-) diff --git a/pkg/proto/relay/relay.proto b/pkg/proto/relay/relay.proto index 56b876c67..a3464e077 100644 --- a/pkg/proto/relay/relay.proto +++ b/pkg/proto/relay/relay.proto @@ -37,8 +37,34 @@ message SingleMsgToUser{ string RecvID = 2; int32 RecvPlatFormID = 3; } +message GetUsersOnlineStatusReq{ + repeated string userIDList = 1; + string operationID = 2; +} +message GetUsersOnlineStatusResp{ + int32 errCode = 1; + string errMsg = 2; + repeated SuccessResult successResult = 3; + repeated FailedDetail failedResult = 4; + message SuccessDetail{ + string platform = 1; + string status = 2; + } + message FailedDetail{ + string userID = 3; + int32 errCode = 1; + string errMsg = 2; + } + message SuccessResult{ + string userID = 1; + string status = 2; + repeated SuccessDetail detailPlatformStatus = 3; + + } +} service OnlineMessageRelayService { rpc MsgToUser(MsgToUserReq) returns(MsgToUserResp); + rpc GetUsersOnlineStatus(GetUsersOnlineStatusReq)returns(GetUsersOnlineStatusResp); // rpc SendMsgByWS(SendMsgByWSReq) returns(MsgToUserResp); } diff --git a/pkg/proto/user/user.proto b/pkg/proto/user/user.proto index 6793dee78..883ab5d73 100644 --- a/pkg/proto/user/user.proto +++ b/pkg/proto/user/user.proto @@ -64,29 +64,6 @@ message UpdateUserInfoReq{ string OperationID = 9; string Uid = 10; } -message GetUsersOnlineStatusReq{ - repeated string userIDList = 1; - string operationID = 2; -} -message GetUsersOnlineStatusResp{ - CommonResp commonResp = 1; - repeated SuccessResult successResult = 2; - repeated FailedDetail failedResult = 3; - message SuccessDetail{ - string platform = 1; - string status = 2; - } - message FailedDetail{ - string userID = 1; - CommonResp commonResp = 2; - } - message SuccessResult{ - string userID = 1; - string status = 2; - repeated SuccessDetail detailPlatformStatus = 3; - - } -} service user { @@ -94,5 +71,5 @@ service user { rpc UpdateUserInfo(UpdateUserInfoReq) returns(CommonResp); rpc DeleteUsers(DeleteUsersReq)returns(DeleteUsersResp); rpc GetAllUsersUid(GetAllUsersUidReq)returns(GetAllUsersUidResp); - rpc GetUsersOnlineStatus(GetUsersOnlineStatusReq)returns(GetUsersOnlineStatusResp); + } From 8a8e33763c72b72c37d9581cf679ac1060ec61ed Mon Sep 17 00:00:00 2001 From: root Date: Mon, 29 Nov 2021 12:01:53 +0800 Subject: [PATCH 108/814] pbfile --- pkg/proto/relay/relay.pb.go | 384 +++++++++++++++++++++++++++++++--- pkg/proto/user/user.pb.go | 399 +++++------------------------------- 2 files changed, 401 insertions(+), 382 deletions(-) diff --git a/pkg/proto/relay/relay.pb.go b/pkg/proto/relay/relay.pb.go index 32fcc227c..d56aae9e0 100644 --- a/pkg/proto/relay/relay.pb.go +++ b/pkg/proto/relay/relay.pb.go @@ -47,7 +47,7 @@ func (m *MsgToUserReq) Reset() { *m = MsgToUserReq{} } func (m *MsgToUserReq) String() string { return proto.CompactTextString(m) } func (*MsgToUserReq) ProtoMessage() {} func (*MsgToUserReq) Descriptor() ([]byte, []int) { - return fileDescriptor_relay_ff2396ffa84abfa7, []int{0} + return fileDescriptor_relay_709d2b3cc3a7ad83, []int{0} } func (m *MsgToUserReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MsgToUserReq.Unmarshal(m, b) @@ -176,7 +176,7 @@ func (m *MsgToUserResp) Reset() { *m = MsgToUserResp{} } func (m *MsgToUserResp) String() string { return proto.CompactTextString(m) } func (*MsgToUserResp) ProtoMessage() {} func (*MsgToUserResp) Descriptor() ([]byte, []int) { - return fileDescriptor_relay_ff2396ffa84abfa7, []int{1} + return fileDescriptor_relay_709d2b3cc3a7ad83, []int{1} } func (m *MsgToUserResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MsgToUserResp.Unmarshal(m, b) @@ -227,7 +227,7 @@ func (m *SingleMsgToUser) Reset() { *m = SingleMsgToUser{} } func (m *SingleMsgToUser) String() string { return proto.CompactTextString(m) } func (*SingleMsgToUser) ProtoMessage() {} func (*SingleMsgToUser) Descriptor() ([]byte, []int) { - return fileDescriptor_relay_ff2396ffa84abfa7, []int{2} + return fileDescriptor_relay_709d2b3cc3a7ad83, []int{2} } func (m *SingleMsgToUser) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SingleMsgToUser.Unmarshal(m, b) @@ -268,10 +268,281 @@ func (m *SingleMsgToUser) GetRecvPlatFormID() int32 { return 0 } +type GetUsersOnlineStatusReq struct { + UserIDList []string `protobuf:"bytes,1,rep,name=userIDList" json:"userIDList,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 *GetUsersOnlineStatusReq) Reset() { *m = GetUsersOnlineStatusReq{} } +func (m *GetUsersOnlineStatusReq) String() string { return proto.CompactTextString(m) } +func (*GetUsersOnlineStatusReq) ProtoMessage() {} +func (*GetUsersOnlineStatusReq) Descriptor() ([]byte, []int) { + return fileDescriptor_relay_709d2b3cc3a7ad83, []int{3} +} +func (m *GetUsersOnlineStatusReq) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GetUsersOnlineStatusReq.Unmarshal(m, b) +} +func (m *GetUsersOnlineStatusReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GetUsersOnlineStatusReq.Marshal(b, m, deterministic) +} +func (dst *GetUsersOnlineStatusReq) XXX_Merge(src proto.Message) { + xxx_messageInfo_GetUsersOnlineStatusReq.Merge(dst, src) +} +func (m *GetUsersOnlineStatusReq) XXX_Size() int { + return xxx_messageInfo_GetUsersOnlineStatusReq.Size(m) +} +func (m *GetUsersOnlineStatusReq) XXX_DiscardUnknown() { + xxx_messageInfo_GetUsersOnlineStatusReq.DiscardUnknown(m) +} + +var xxx_messageInfo_GetUsersOnlineStatusReq proto.InternalMessageInfo + +func (m *GetUsersOnlineStatusReq) GetUserIDList() []string { + if m != nil { + return m.UserIDList + } + return nil +} + +func (m *GetUsersOnlineStatusReq) GetOperationID() string { + if m != nil { + return m.OperationID + } + return "" +} + +type GetUsersOnlineStatusResp struct { + ErrCode int32 `protobuf:"varint,1,opt,name=errCode" json:"errCode,omitempty"` + ErrMsg string `protobuf:"bytes,2,opt,name=errMsg" json:"errMsg,omitempty"` + SuccessResult []*GetUsersOnlineStatusResp_SuccessResult `protobuf:"bytes,3,rep,name=successResult" json:"successResult,omitempty"` + FailedResult []*GetUsersOnlineStatusResp_FailedDetail `protobuf:"bytes,4,rep,name=failedResult" json:"failedResult,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *GetUsersOnlineStatusResp) Reset() { *m = GetUsersOnlineStatusResp{} } +func (m *GetUsersOnlineStatusResp) String() string { return proto.CompactTextString(m) } +func (*GetUsersOnlineStatusResp) ProtoMessage() {} +func (*GetUsersOnlineStatusResp) Descriptor() ([]byte, []int) { + return fileDescriptor_relay_709d2b3cc3a7ad83, []int{4} +} +func (m *GetUsersOnlineStatusResp) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GetUsersOnlineStatusResp.Unmarshal(m, b) +} +func (m *GetUsersOnlineStatusResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GetUsersOnlineStatusResp.Marshal(b, m, deterministic) +} +func (dst *GetUsersOnlineStatusResp) XXX_Merge(src proto.Message) { + xxx_messageInfo_GetUsersOnlineStatusResp.Merge(dst, src) +} +func (m *GetUsersOnlineStatusResp) XXX_Size() int { + return xxx_messageInfo_GetUsersOnlineStatusResp.Size(m) +} +func (m *GetUsersOnlineStatusResp) XXX_DiscardUnknown() { + xxx_messageInfo_GetUsersOnlineStatusResp.DiscardUnknown(m) +} + +var xxx_messageInfo_GetUsersOnlineStatusResp proto.InternalMessageInfo + +func (m *GetUsersOnlineStatusResp) GetErrCode() int32 { + if m != nil { + return m.ErrCode + } + return 0 +} + +func (m *GetUsersOnlineStatusResp) GetErrMsg() string { + if m != nil { + return m.ErrMsg + } + return "" +} + +func (m *GetUsersOnlineStatusResp) GetSuccessResult() []*GetUsersOnlineStatusResp_SuccessResult { + if m != nil { + return m.SuccessResult + } + return nil +} + +func (m *GetUsersOnlineStatusResp) GetFailedResult() []*GetUsersOnlineStatusResp_FailedDetail { + if m != nil { + return m.FailedResult + } + return nil +} + +type GetUsersOnlineStatusResp_SuccessDetail struct { + Platform string `protobuf:"bytes,1,opt,name=platform" json:"platform,omitempty"` + Status string `protobuf:"bytes,2,opt,name=status" json:"status,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *GetUsersOnlineStatusResp_SuccessDetail) Reset() { + *m = GetUsersOnlineStatusResp_SuccessDetail{} +} +func (m *GetUsersOnlineStatusResp_SuccessDetail) String() string { return proto.CompactTextString(m) } +func (*GetUsersOnlineStatusResp_SuccessDetail) ProtoMessage() {} +func (*GetUsersOnlineStatusResp_SuccessDetail) Descriptor() ([]byte, []int) { + return fileDescriptor_relay_709d2b3cc3a7ad83, []int{4, 0} +} +func (m *GetUsersOnlineStatusResp_SuccessDetail) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GetUsersOnlineStatusResp_SuccessDetail.Unmarshal(m, b) +} +func (m *GetUsersOnlineStatusResp_SuccessDetail) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GetUsersOnlineStatusResp_SuccessDetail.Marshal(b, m, deterministic) +} +func (dst *GetUsersOnlineStatusResp_SuccessDetail) XXX_Merge(src proto.Message) { + xxx_messageInfo_GetUsersOnlineStatusResp_SuccessDetail.Merge(dst, src) +} +func (m *GetUsersOnlineStatusResp_SuccessDetail) XXX_Size() int { + return xxx_messageInfo_GetUsersOnlineStatusResp_SuccessDetail.Size(m) +} +func (m *GetUsersOnlineStatusResp_SuccessDetail) XXX_DiscardUnknown() { + xxx_messageInfo_GetUsersOnlineStatusResp_SuccessDetail.DiscardUnknown(m) +} + +var xxx_messageInfo_GetUsersOnlineStatusResp_SuccessDetail proto.InternalMessageInfo + +func (m *GetUsersOnlineStatusResp_SuccessDetail) GetPlatform() string { + if m != nil { + return m.Platform + } + return "" +} + +func (m *GetUsersOnlineStatusResp_SuccessDetail) GetStatus() string { + if m != nil { + return m.Status + } + return "" +} + +type GetUsersOnlineStatusResp_FailedDetail struct { + UserID string `protobuf:"bytes,3,opt,name=userID" json:"userID,omitempty"` + ErrCode int32 `protobuf:"varint,1,opt,name=errCode" json:"errCode,omitempty"` + ErrMsg string `protobuf:"bytes,2,opt,name=errMsg" json:"errMsg,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *GetUsersOnlineStatusResp_FailedDetail) Reset() { *m = GetUsersOnlineStatusResp_FailedDetail{} } +func (m *GetUsersOnlineStatusResp_FailedDetail) String() string { return proto.CompactTextString(m) } +func (*GetUsersOnlineStatusResp_FailedDetail) ProtoMessage() {} +func (*GetUsersOnlineStatusResp_FailedDetail) Descriptor() ([]byte, []int) { + return fileDescriptor_relay_709d2b3cc3a7ad83, []int{4, 1} +} +func (m *GetUsersOnlineStatusResp_FailedDetail) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GetUsersOnlineStatusResp_FailedDetail.Unmarshal(m, b) +} +func (m *GetUsersOnlineStatusResp_FailedDetail) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GetUsersOnlineStatusResp_FailedDetail.Marshal(b, m, deterministic) +} +func (dst *GetUsersOnlineStatusResp_FailedDetail) XXX_Merge(src proto.Message) { + xxx_messageInfo_GetUsersOnlineStatusResp_FailedDetail.Merge(dst, src) +} +func (m *GetUsersOnlineStatusResp_FailedDetail) XXX_Size() int { + return xxx_messageInfo_GetUsersOnlineStatusResp_FailedDetail.Size(m) +} +func (m *GetUsersOnlineStatusResp_FailedDetail) XXX_DiscardUnknown() { + xxx_messageInfo_GetUsersOnlineStatusResp_FailedDetail.DiscardUnknown(m) +} + +var xxx_messageInfo_GetUsersOnlineStatusResp_FailedDetail proto.InternalMessageInfo + +func (m *GetUsersOnlineStatusResp_FailedDetail) GetUserID() string { + if m != nil { + return m.UserID + } + return "" +} + +func (m *GetUsersOnlineStatusResp_FailedDetail) GetErrCode() int32 { + if m != nil { + return m.ErrCode + } + return 0 +} + +func (m *GetUsersOnlineStatusResp_FailedDetail) GetErrMsg() string { + if m != nil { + return m.ErrMsg + } + return "" +} + +type GetUsersOnlineStatusResp_SuccessResult struct { + UserID string `protobuf:"bytes,1,opt,name=userID" json:"userID,omitempty"` + Status string `protobuf:"bytes,2,opt,name=status" json:"status,omitempty"` + DetailPlatformStatus []*GetUsersOnlineStatusResp_SuccessDetail `protobuf:"bytes,3,rep,name=detailPlatformStatus" json:"detailPlatformStatus,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *GetUsersOnlineStatusResp_SuccessResult) Reset() { + *m = GetUsersOnlineStatusResp_SuccessResult{} +} +func (m *GetUsersOnlineStatusResp_SuccessResult) String() string { return proto.CompactTextString(m) } +func (*GetUsersOnlineStatusResp_SuccessResult) ProtoMessage() {} +func (*GetUsersOnlineStatusResp_SuccessResult) Descriptor() ([]byte, []int) { + return fileDescriptor_relay_709d2b3cc3a7ad83, []int{4, 2} +} +func (m *GetUsersOnlineStatusResp_SuccessResult) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GetUsersOnlineStatusResp_SuccessResult.Unmarshal(m, b) +} +func (m *GetUsersOnlineStatusResp_SuccessResult) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GetUsersOnlineStatusResp_SuccessResult.Marshal(b, m, deterministic) +} +func (dst *GetUsersOnlineStatusResp_SuccessResult) XXX_Merge(src proto.Message) { + xxx_messageInfo_GetUsersOnlineStatusResp_SuccessResult.Merge(dst, src) +} +func (m *GetUsersOnlineStatusResp_SuccessResult) XXX_Size() int { + return xxx_messageInfo_GetUsersOnlineStatusResp_SuccessResult.Size(m) +} +func (m *GetUsersOnlineStatusResp_SuccessResult) XXX_DiscardUnknown() { + xxx_messageInfo_GetUsersOnlineStatusResp_SuccessResult.DiscardUnknown(m) +} + +var xxx_messageInfo_GetUsersOnlineStatusResp_SuccessResult proto.InternalMessageInfo + +func (m *GetUsersOnlineStatusResp_SuccessResult) GetUserID() string { + if m != nil { + return m.UserID + } + return "" +} + +func (m *GetUsersOnlineStatusResp_SuccessResult) GetStatus() string { + if m != nil { + return m.Status + } + return "" +} + +func (m *GetUsersOnlineStatusResp_SuccessResult) GetDetailPlatformStatus() []*GetUsersOnlineStatusResp_SuccessDetail { + if m != nil { + return m.DetailPlatformStatus + } + return nil +} + func init() { proto.RegisterType((*MsgToUserReq)(nil), "relay.MsgToUserReq") proto.RegisterType((*MsgToUserResp)(nil), "relay.MsgToUserResp") proto.RegisterType((*SingleMsgToUser)(nil), "relay.SingleMsgToUser") + proto.RegisterType((*GetUsersOnlineStatusReq)(nil), "relay.GetUsersOnlineStatusReq") + proto.RegisterType((*GetUsersOnlineStatusResp)(nil), "relay.GetUsersOnlineStatusResp") + proto.RegisterType((*GetUsersOnlineStatusResp_SuccessDetail)(nil), "relay.GetUsersOnlineStatusResp.SuccessDetail") + proto.RegisterType((*GetUsersOnlineStatusResp_FailedDetail)(nil), "relay.GetUsersOnlineStatusResp.FailedDetail") + proto.RegisterType((*GetUsersOnlineStatusResp_SuccessResult)(nil), "relay.GetUsersOnlineStatusResp.SuccessResult") } // Reference imports to suppress errors if they are not otherwise used. @@ -286,6 +557,7 @@ const _ = grpc.SupportPackageIsVersion4 type OnlineMessageRelayServiceClient interface { MsgToUser(ctx context.Context, in *MsgToUserReq, opts ...grpc.CallOption) (*MsgToUserResp, error) + GetUsersOnlineStatus(ctx context.Context, in *GetUsersOnlineStatusReq, opts ...grpc.CallOption) (*GetUsersOnlineStatusResp, error) } type onlineMessageRelayServiceClient struct { @@ -305,10 +577,20 @@ func (c *onlineMessageRelayServiceClient) MsgToUser(ctx context.Context, in *Msg return out, nil } +func (c *onlineMessageRelayServiceClient) GetUsersOnlineStatus(ctx context.Context, in *GetUsersOnlineStatusReq, opts ...grpc.CallOption) (*GetUsersOnlineStatusResp, error) { + out := new(GetUsersOnlineStatusResp) + err := grpc.Invoke(ctx, "/relay.OnlineMessageRelayService/GetUsersOnlineStatus", in, out, c.cc, opts...) + if err != nil { + return nil, err + } + return out, nil +} + // Server API for OnlineMessageRelayService service type OnlineMessageRelayServiceServer interface { MsgToUser(context.Context, *MsgToUserReq) (*MsgToUserResp, error) + GetUsersOnlineStatus(context.Context, *GetUsersOnlineStatusReq) (*GetUsersOnlineStatusResp, error) } func RegisterOnlineMessageRelayServiceServer(s *grpc.Server, srv OnlineMessageRelayServiceServer) { @@ -333,6 +615,24 @@ func _OnlineMessageRelayService_MsgToUser_Handler(srv interface{}, ctx context.C return interceptor(ctx, in, info, handler) } +func _OnlineMessageRelayService_GetUsersOnlineStatus_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetUsersOnlineStatusReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(OnlineMessageRelayServiceServer).GetUsersOnlineStatus(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/relay.OnlineMessageRelayService/GetUsersOnlineStatus", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(OnlineMessageRelayServiceServer).GetUsersOnlineStatus(ctx, req.(*GetUsersOnlineStatusReq)) + } + return interceptor(ctx, in, info, handler) +} + var _OnlineMessageRelayService_serviceDesc = grpc.ServiceDesc{ ServiceName: "relay.OnlineMessageRelayService", HandlerType: (*OnlineMessageRelayServiceServer)(nil), @@ -341,39 +641,57 @@ var _OnlineMessageRelayService_serviceDesc = grpc.ServiceDesc{ MethodName: "MsgToUser", Handler: _OnlineMessageRelayService_MsgToUser_Handler, }, + { + MethodName: "GetUsersOnlineStatus", + Handler: _OnlineMessageRelayService_GetUsersOnlineStatus_Handler, + }, }, Streams: []grpc.StreamDesc{}, Metadata: "relay/relay.proto", } -func init() { proto.RegisterFile("relay/relay.proto", fileDescriptor_relay_ff2396ffa84abfa7) } - -var fileDescriptor_relay_ff2396ffa84abfa7 = []byte{ - // 414 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x74, 0x92, 0xc1, 0x6b, 0xdb, 0x30, - 0x14, 0xc6, 0xf1, 0xbc, 0xa4, 0xcd, 0x4b, 0x93, 0xac, 0xda, 0x28, 0x5a, 0x0f, 0xc3, 0x84, 0x51, - 0xc2, 0x0e, 0x19, 0x74, 0xb0, 0x4b, 0x6f, 0xab, 0x09, 0x18, 0xe6, 0x76, 0xc8, 0xe9, 0x65, 0x37, - 0xd7, 0x7d, 0x33, 0x62, 0xb6, 0xe4, 0x48, 0x5e, 0xa1, 0xff, 0xdd, 0xfe, 0xb4, 0xa1, 0xa7, 0x64, - 0xd1, 0x32, 0x7a, 0x31, 0xfe, 0x7e, 0xef, 0xf3, 0xf3, 0xa7, 0xa7, 0x07, 0xa7, 0x06, 0x9b, 0xf2, - 0xe9, 0x23, 0x3d, 0x97, 0x9d, 0xd1, 0xbd, 0x66, 0x03, 0x12, 0xf3, 0xdf, 0x31, 0x9c, 0xe4, 0xb6, - 0x5e, 0xeb, 0x3b, 0x8b, 0x46, 0xe0, 0x86, 0x9d, 0xc1, 0xb0, 0x40, 0xf5, 0x90, 0xa5, 0x3c, 0x4a, - 0xa2, 0xc5, 0x48, 0x6c, 0x95, 0xe3, 0x02, 0xab, 0xc7, 0x2c, 0xe5, 0x2f, 0x3c, 0xf7, 0x8a, 0x71, - 0x38, 0xba, 0xd6, 0xaa, 0x47, 0xd5, 0xf3, 0x01, 0x15, 0x76, 0xd2, 0x55, 0x9c, 0xa7, 0xc0, 0x0d, - 0x1f, 0x26, 0xd1, 0x22, 0x16, 0x3b, 0xc9, 0xce, 0xe1, 0xd8, 0x75, 0x5d, 0xcb, 0x16, 0xf9, 0x11, - 0x95, 0xfe, 0x6a, 0xf7, 0x55, 0x6e, 0xeb, 0x95, 0xd1, 0x2d, 0x3f, 0x4e, 0xa2, 0xc5, 0x40, 0xec, - 0x24, 0x4b, 0x60, 0xbc, 0x6d, 0xbd, 0x7e, 0xea, 0x90, 0x8f, 0xa8, 0x1a, 0x22, 0xe7, 0x28, 0xd0, - 0x5a, 0xa9, 0x15, 0x39, 0xc0, 0x3b, 0x02, 0xe4, 0x1c, 0xb7, 0x1d, 0x9a, 0xb2, 0x97, 0x5a, 0x65, - 0x29, 0x1f, 0x53, 0xe2, 0x10, 0xf9, 0x1e, 0xe6, 0x11, 0x4d, 0x6e, 0xeb, 0x2c, 0xe5, 0x27, 0xde, - 0x11, 0x20, 0xf6, 0x0e, 0xe0, 0x5b, 0x53, 0xf6, 0x3f, 0xb4, 0x69, 0xb3, 0x94, 0x4f, 0xe8, 0x27, - 0x01, 0x61, 0x17, 0x30, 0x75, 0xa7, 0x41, 0x73, 0x23, 0xab, 0x9f, 0x37, 0x65, 0x8b, 0x7c, 0x4a, - 0x4d, 0x0e, 0x28, 0x7b, 0x0f, 0x13, 0x4f, 0x56, 0x65, 0x85, 0x77, 0xe2, 0x2b, 0x9f, 0x91, 0xed, - 0x5f, 0x48, 0xa7, 0x6e, 0x24, 0xaa, 0xde, 0xe7, 0x79, 0xe5, 0xf3, 0x04, 0x68, 0x7e, 0x05, 0x93, - 0xe0, 0x06, 0x6d, 0xc7, 0x3e, 0xc0, 0x4b, 0x83, 0xb6, 0xe3, 0x51, 0x12, 0x2f, 0xc6, 0x97, 0x67, - 0x4b, 0x7f, 0xed, 0x85, 0x54, 0x75, 0x83, 0x7b, 0x27, 0x79, 0xe6, 0x1b, 0x98, 0x1d, 0x14, 0xdc, - 0xf9, 0x04, 0xda, 0x5f, 0x4d, 0x7f, 0xad, 0x1f, 0x90, 0xb6, 0x20, 0x16, 0x01, 0x79, 0x76, 0x13, - 0x2e, 0x60, 0xea, 0xde, 0xdc, 0x24, 0x56, 0x7e, 0x36, 0x31, 0xcd, 0xe6, 0x80, 0x5e, 0x16, 0xf0, - 0xf6, 0x56, 0x35, 0x52, 0x61, 0x8e, 0xd6, 0x96, 0x35, 0x0a, 0x17, 0xcf, 0x0d, 0x58, 0x56, 0xc8, - 0x3e, 0xc3, 0x68, 0x9f, 0xe4, 0xf5, 0x36, 0x7a, 0xb8, 0xa0, 0xe7, 0x6f, 0xfe, 0x87, 0xb6, 0xfb, - 0x72, 0xfa, 0x7d, 0xb6, 0xf4, 0xfb, 0x7d, 0xd5, 0xdd, 0x53, 0xc7, 0xfb, 0x21, 0x2d, 0xfa, 0xa7, - 0x3f, 0x01, 0x00, 0x00, 0xff, 0xff, 0xe2, 0x9b, 0x83, 0x12, 0xfd, 0x02, 0x00, 0x00, +func init() { proto.RegisterFile("relay/relay.proto", fileDescriptor_relay_709d2b3cc3a7ad83) } + +var fileDescriptor_relay_709d2b3cc3a7ad83 = []byte{ + // 628 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x94, 0x54, 0x41, 0x6b, 0xdb, 0x4c, + 0x10, 0x45, 0x9f, 0xe2, 0x24, 0x9e, 0xd8, 0xc9, 0x97, 0x6d, 0x48, 0xb7, 0x3a, 0xa4, 0xc6, 0x94, + 0x60, 0x4a, 0xeb, 0x42, 0x0a, 0xbd, 0xe4, 0x56, 0x0b, 0x17, 0x41, 0x9c, 0x84, 0x95, 0x43, 0x4b, + 0x7b, 0x52, 0xe4, 0x89, 0x11, 0x95, 0x25, 0x79, 0x77, 0x1d, 0xc8, 0xdf, 0xe9, 0xb9, 0xf7, 0x5e, + 0xfb, 0xd3, 0xca, 0xee, 0x4a, 0xf6, 0xda, 0xb5, 0x1b, 0x72, 0x31, 0x7e, 0x6f, 0x66, 0xdf, 0xcc, + 0xbc, 0xd9, 0x15, 0x1c, 0x72, 0x4c, 0xa3, 0x87, 0x77, 0xfa, 0xb7, 0x5b, 0xf0, 0x5c, 0xe6, 0xa4, + 0xa6, 0x41, 0xfb, 0xb7, 0x0b, 0x8d, 0x81, 0x18, 0x0f, 0xf3, 0x1b, 0x81, 0x9c, 0xe1, 0x94, 0x1c, + 0xc3, 0x76, 0x88, 0xd9, 0x28, 0xf0, 0xa9, 0xd3, 0x72, 0x3a, 0x75, 0x56, 0x22, 0xc5, 0x33, 0x8c, + 0xef, 0x03, 0x9f, 0xfe, 0x67, 0x78, 0x83, 0x08, 0x85, 0x9d, 0x5e, 0x9e, 0x49, 0xcc, 0x24, 0xad, + 0xe9, 0x40, 0x05, 0x55, 0x44, 0xe5, 0x84, 0x38, 0xa5, 0xdb, 0x2d, 0xa7, 0xe3, 0xb2, 0x0a, 0x12, + 0x0f, 0x76, 0x95, 0xea, 0x30, 0x99, 0x20, 0xdd, 0xd1, 0xa1, 0x39, 0x56, 0xa7, 0x06, 0x62, 0xdc, + 0xe7, 0xf9, 0x84, 0xee, 0xb6, 0x9c, 0x4e, 0x8d, 0x55, 0x90, 0xb4, 0x60, 0xaf, 0x94, 0x1e, 0x3e, + 0x14, 0x48, 0xeb, 0x3a, 0x6a, 0x53, 0x2a, 0x23, 0x44, 0x21, 0x92, 0x3c, 0xd3, 0x19, 0x60, 0x32, + 0x2c, 0x4a, 0x65, 0x5c, 0x15, 0xc8, 0x23, 0x99, 0xe4, 0x59, 0xe0, 0xd3, 0x3d, 0xdd, 0xb1, 0x4d, + 0x19, 0x0d, 0x7e, 0x8f, 0x7c, 0x20, 0xc6, 0x81, 0x4f, 0x1b, 0x26, 0xc3, 0xa2, 0xc8, 0x09, 0xc0, + 0x75, 0x1a, 0xc9, 0xbb, 0x9c, 0x4f, 0x02, 0x9f, 0x36, 0x75, 0x11, 0x8b, 0x21, 0xa7, 0xb0, 0xaf, + 0xa6, 0x41, 0x7e, 0x99, 0xc4, 0xdf, 0x2f, 0xa3, 0x09, 0xd2, 0x7d, 0x2d, 0xb2, 0xc2, 0x92, 0x57, + 0xd0, 0x34, 0x4c, 0x3f, 0x8a, 0xf1, 0x86, 0x5d, 0xd0, 0x03, 0x9d, 0xb6, 0x4c, 0xea, 0xa9, 0xd3, + 0x04, 0x33, 0x69, 0xfa, 0xf9, 0xdf, 0xf4, 0x63, 0x51, 0xed, 0x73, 0x68, 0x5a, 0x1b, 0x14, 0x05, + 0x79, 0x0d, 0x5b, 0x1c, 0x45, 0x41, 0x9d, 0x96, 0xdb, 0xd9, 0x3b, 0x3b, 0xee, 0x9a, 0xb5, 0x87, + 0x49, 0x36, 0x4e, 0x71, 0x91, 0xa9, 0x73, 0xda, 0x53, 0x38, 0x58, 0x09, 0xa8, 0xf9, 0x18, 0x8a, + 0x59, 0x2a, 0x7b, 0xf9, 0x08, 0xf5, 0x2d, 0x70, 0x99, 0xc5, 0x6c, 0xbc, 0x09, 0xa7, 0xb0, 0xaf, + 0xfe, 0x29, 0x27, 0xfa, 0xc6, 0x1b, 0x57, 0x7b, 0xb3, 0xc2, 0xb6, 0xbf, 0xc1, 0xf3, 0x4f, 0x28, + 0x55, 0x29, 0x71, 0x95, 0xa5, 0x49, 0x86, 0xa1, 0x8c, 0xe4, 0x4c, 0xa8, 0xcb, 0x77, 0x02, 0x30, + 0x13, 0xc8, 0x03, 0xff, 0x22, 0x11, 0x52, 0xf7, 0x5f, 0x67, 0x16, 0xa3, 0xcc, 0xc8, 0xad, 0xf5, + 0x99, 0xfa, 0x36, 0xd5, 0xfe, 0xb5, 0x05, 0x74, 0xbd, 0xba, 0x28, 0xd4, 0xdd, 0x42, 0xce, 0xe7, + 0x63, 0xd5, 0x58, 0x05, 0xd5, 0x4c, 0xc8, 0xd5, 0x7e, 0xab, 0x99, 0x0c, 0x22, 0x21, 0x34, 0xc5, + 0x2c, 0x8e, 0x51, 0x08, 0x63, 0x00, 0x75, 0xb5, 0xa7, 0x6f, 0x4b, 0x4f, 0x37, 0x55, 0xea, 0x86, + 0xf6, 0x21, 0xb6, 0xac, 0x41, 0xae, 0xa1, 0x71, 0x17, 0x25, 0x29, 0x8e, 0x4a, 0xcd, 0x2d, 0xad, + 0xf9, 0xe6, 0x31, 0xcd, 0xbe, 0x3e, 0xe3, 0xa3, 0x8c, 0x92, 0x94, 0x2d, 0x29, 0x78, 0x3d, 0x68, + 0x96, 0x15, 0x4d, 0x58, 0xbd, 0xb0, 0xa2, 0xbc, 0x91, 0xe5, 0x3b, 0x9e, 0x63, 0x35, 0xab, 0xd0, + 0xaa, 0xd5, 0xac, 0x06, 0x79, 0x5f, 0xa0, 0x61, 0x97, 0x50, 0x79, 0xc6, 0x7a, 0xbd, 0xc7, 0x3a, + 0x2b, 0xd1, 0xd3, 0x5d, 0xf4, 0x7e, 0x38, 0xf3, 0xfe, 0x4a, 0x0b, 0x16, 0xda, 0xce, 0x92, 0xf6, + 0x86, 0xde, 0x48, 0x04, 0x47, 0x23, 0xdd, 0x55, 0xf5, 0xce, 0x8c, 0x2f, 0x4f, 0x5c, 0x47, 0xe9, + 0xdd, 0x5a, 0xa9, 0xb3, 0x9f, 0x0e, 0xbc, 0x30, 0x07, 0x07, 0x28, 0x44, 0x34, 0x46, 0xa6, 0x34, + 0xd5, 0xc3, 0x4f, 0x62, 0x24, 0x1f, 0xa0, 0xbe, 0x78, 0x21, 0xcf, 0xca, 0x7a, 0xf6, 0x87, 0xd3, + 0x3b, 0xfa, 0x9b, 0x14, 0x05, 0xf9, 0x0c, 0x47, 0xeb, 0xba, 0x22, 0x27, 0xff, 0x6c, 0x79, 0xea, + 0xbd, 0x7c, 0x64, 0xa4, 0x8f, 0x87, 0x5f, 0x0f, 0xba, 0xe6, 0x83, 0x7e, 0x5e, 0xdc, 0xea, 0x56, + 0x6f, 0xb7, 0xf5, 0x97, 0xfd, 0xfd, 0x9f, 0x00, 0x00, 0x00, 0xff, 0xff, 0x4e, 0xe4, 0x7c, 0xdc, + 0xee, 0x05, 0x00, 0x00, } diff --git a/pkg/proto/user/user.pb.go b/pkg/proto/user/user.pb.go index 62afb489f..298512e1b 100644 --- a/pkg/proto/user/user.pb.go +++ b/pkg/proto/user/user.pb.go @@ -35,7 +35,7 @@ func (m *CommonResp) Reset() { *m = CommonResp{} } func (m *CommonResp) String() string { return proto.CompactTextString(m) } func (*CommonResp) ProtoMessage() {} func (*CommonResp) Descriptor() ([]byte, []int) { - return fileDescriptor_user_60873bcb313a530f, []int{0} + return fileDescriptor_user_23985c8245c722d0, []int{0} } func (m *CommonResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_CommonResp.Unmarshal(m, b) @@ -81,7 +81,7 @@ func (m *DeleteUsersResp) Reset() { *m = DeleteUsersResp{} } func (m *DeleteUsersResp) String() string { return proto.CompactTextString(m) } func (*DeleteUsersResp) ProtoMessage() {} func (*DeleteUsersResp) Descriptor() ([]byte, []int) { - return fileDescriptor_user_60873bcb313a530f, []int{1} + return fileDescriptor_user_23985c8245c722d0, []int{1} } func (m *DeleteUsersResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_DeleteUsersResp.Unmarshal(m, b) @@ -128,7 +128,7 @@ func (m *DeleteUsersReq) Reset() { *m = DeleteUsersReq{} } func (m *DeleteUsersReq) String() string { return proto.CompactTextString(m) } func (*DeleteUsersReq) ProtoMessage() {} func (*DeleteUsersReq) Descriptor() ([]byte, []int) { - return fileDescriptor_user_60873bcb313a530f, []int{2} + return fileDescriptor_user_23985c8245c722d0, []int{2} } func (m *DeleteUsersReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_DeleteUsersReq.Unmarshal(m, b) @@ -181,7 +181,7 @@ func (m *GetAllUsersUidReq) Reset() { *m = GetAllUsersUidReq{} } func (m *GetAllUsersUidReq) String() string { return proto.CompactTextString(m) } func (*GetAllUsersUidReq) ProtoMessage() {} func (*GetAllUsersUidReq) Descriptor() ([]byte, []int) { - return fileDescriptor_user_60873bcb313a530f, []int{3} + return fileDescriptor_user_23985c8245c722d0, []int{3} } func (m *GetAllUsersUidReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetAllUsersUidReq.Unmarshal(m, b) @@ -227,7 +227,7 @@ func (m *GetAllUsersUidResp) Reset() { *m = GetAllUsersUidResp{} } func (m *GetAllUsersUidResp) String() string { return proto.CompactTextString(m) } func (*GetAllUsersUidResp) ProtoMessage() {} func (*GetAllUsersUidResp) Descriptor() ([]byte, []int) { - return fileDescriptor_user_60873bcb313a530f, []int{4} + return fileDescriptor_user_23985c8245c722d0, []int{4} } func (m *GetAllUsersUidResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetAllUsersUidResp.Unmarshal(m, b) @@ -274,7 +274,7 @@ 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_user_60873bcb313a530f, []int{5} + return fileDescriptor_user_23985c8245c722d0, []int{5} } func (m *GetUserInfoReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetUserInfoReq.Unmarshal(m, b) @@ -328,7 +328,7 @@ 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_user_60873bcb313a530f, []int{6} + return fileDescriptor_user_23985c8245c722d0, []int{6} } func (m *GetUserInfoResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetUserInfoResp.Unmarshal(m, b) @@ -387,7 +387,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_user_60873bcb313a530f, []int{7} + return fileDescriptor_user_23985c8245c722d0, []int{7} } func (m *UserInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_UserInfo.Unmarshal(m, b) @@ -475,7 +475,7 @@ func (m *LogoutReq) Reset() { *m = LogoutReq{} } func (m *LogoutReq) String() string { return proto.CompactTextString(m) } func (*LogoutReq) ProtoMessage() {} func (*LogoutReq) Descriptor() ([]byte, []int) { - return fileDescriptor_user_60873bcb313a530f, []int{8} + return fileDescriptor_user_23985c8245c722d0, []int{8} } func (m *LogoutReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_LogoutReq.Unmarshal(m, b) @@ -529,7 +529,7 @@ 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_user_60873bcb313a530f, []int{9} + return fileDescriptor_user_23985c8245c722d0, []int{9} } func (m *UpdateUserInfoReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_UpdateUserInfoReq.Unmarshal(m, b) @@ -619,256 +619,6 @@ func (m *UpdateUserInfoReq) GetUid() string { return "" } -type GetUsersOnlineStatusReq struct { - UserIDList []string `protobuf:"bytes,1,rep,name=userIDList" json:"userIDList,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 *GetUsersOnlineStatusReq) Reset() { *m = GetUsersOnlineStatusReq{} } -func (m *GetUsersOnlineStatusReq) String() string { return proto.CompactTextString(m) } -func (*GetUsersOnlineStatusReq) ProtoMessage() {} -func (*GetUsersOnlineStatusReq) Descriptor() ([]byte, []int) { - return fileDescriptor_user_60873bcb313a530f, []int{10} -} -func (m *GetUsersOnlineStatusReq) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_GetUsersOnlineStatusReq.Unmarshal(m, b) -} -func (m *GetUsersOnlineStatusReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_GetUsersOnlineStatusReq.Marshal(b, m, deterministic) -} -func (dst *GetUsersOnlineStatusReq) XXX_Merge(src proto.Message) { - xxx_messageInfo_GetUsersOnlineStatusReq.Merge(dst, src) -} -func (m *GetUsersOnlineStatusReq) XXX_Size() int { - return xxx_messageInfo_GetUsersOnlineStatusReq.Size(m) -} -func (m *GetUsersOnlineStatusReq) XXX_DiscardUnknown() { - xxx_messageInfo_GetUsersOnlineStatusReq.DiscardUnknown(m) -} - -var xxx_messageInfo_GetUsersOnlineStatusReq proto.InternalMessageInfo - -func (m *GetUsersOnlineStatusReq) GetUserIDList() []string { - if m != nil { - return m.UserIDList - } - return nil -} - -func (m *GetUsersOnlineStatusReq) GetOperationID() string { - if m != nil { - return m.OperationID - } - return "" -} - -type GetUsersOnlineStatusResp struct { - CommonResp *CommonResp `protobuf:"bytes,1,opt,name=commonResp" json:"commonResp,omitempty"` - SuccessResult []*GetUsersOnlineStatusResp_SuccessResult `protobuf:"bytes,2,rep,name=successResult" json:"successResult,omitempty"` - FailedResult []*GetUsersOnlineStatusResp_FailedDetail `protobuf:"bytes,3,rep,name=failedResult" json:"failedResult,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *GetUsersOnlineStatusResp) Reset() { *m = GetUsersOnlineStatusResp{} } -func (m *GetUsersOnlineStatusResp) String() string { return proto.CompactTextString(m) } -func (*GetUsersOnlineStatusResp) ProtoMessage() {} -func (*GetUsersOnlineStatusResp) Descriptor() ([]byte, []int) { - return fileDescriptor_user_60873bcb313a530f, []int{11} -} -func (m *GetUsersOnlineStatusResp) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_GetUsersOnlineStatusResp.Unmarshal(m, b) -} -func (m *GetUsersOnlineStatusResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_GetUsersOnlineStatusResp.Marshal(b, m, deterministic) -} -func (dst *GetUsersOnlineStatusResp) XXX_Merge(src proto.Message) { - xxx_messageInfo_GetUsersOnlineStatusResp.Merge(dst, src) -} -func (m *GetUsersOnlineStatusResp) XXX_Size() int { - return xxx_messageInfo_GetUsersOnlineStatusResp.Size(m) -} -func (m *GetUsersOnlineStatusResp) XXX_DiscardUnknown() { - xxx_messageInfo_GetUsersOnlineStatusResp.DiscardUnknown(m) -} - -var xxx_messageInfo_GetUsersOnlineStatusResp proto.InternalMessageInfo - -func (m *GetUsersOnlineStatusResp) GetCommonResp() *CommonResp { - if m != nil { - return m.CommonResp - } - return nil -} - -func (m *GetUsersOnlineStatusResp) GetSuccessResult() []*GetUsersOnlineStatusResp_SuccessResult { - if m != nil { - return m.SuccessResult - } - return nil -} - -func (m *GetUsersOnlineStatusResp) GetFailedResult() []*GetUsersOnlineStatusResp_FailedDetail { - if m != nil { - return m.FailedResult - } - return nil -} - -type GetUsersOnlineStatusResp_SuccessDetail struct { - Platform string `protobuf:"bytes,1,opt,name=platform" json:"platform,omitempty"` - Status string `protobuf:"bytes,2,opt,name=status" json:"status,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *GetUsersOnlineStatusResp_SuccessDetail) Reset() { - *m = GetUsersOnlineStatusResp_SuccessDetail{} -} -func (m *GetUsersOnlineStatusResp_SuccessDetail) String() string { return proto.CompactTextString(m) } -func (*GetUsersOnlineStatusResp_SuccessDetail) ProtoMessage() {} -func (*GetUsersOnlineStatusResp_SuccessDetail) Descriptor() ([]byte, []int) { - return fileDescriptor_user_60873bcb313a530f, []int{11, 0} -} -func (m *GetUsersOnlineStatusResp_SuccessDetail) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_GetUsersOnlineStatusResp_SuccessDetail.Unmarshal(m, b) -} -func (m *GetUsersOnlineStatusResp_SuccessDetail) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_GetUsersOnlineStatusResp_SuccessDetail.Marshal(b, m, deterministic) -} -func (dst *GetUsersOnlineStatusResp_SuccessDetail) XXX_Merge(src proto.Message) { - xxx_messageInfo_GetUsersOnlineStatusResp_SuccessDetail.Merge(dst, src) -} -func (m *GetUsersOnlineStatusResp_SuccessDetail) XXX_Size() int { - return xxx_messageInfo_GetUsersOnlineStatusResp_SuccessDetail.Size(m) -} -func (m *GetUsersOnlineStatusResp_SuccessDetail) XXX_DiscardUnknown() { - xxx_messageInfo_GetUsersOnlineStatusResp_SuccessDetail.DiscardUnknown(m) -} - -var xxx_messageInfo_GetUsersOnlineStatusResp_SuccessDetail proto.InternalMessageInfo - -func (m *GetUsersOnlineStatusResp_SuccessDetail) GetPlatform() string { - if m != nil { - return m.Platform - } - return "" -} - -func (m *GetUsersOnlineStatusResp_SuccessDetail) GetStatus() string { - if m != nil { - return m.Status - } - return "" -} - -type GetUsersOnlineStatusResp_FailedDetail struct { - UserID string `protobuf:"bytes,1,opt,name=userID" json:"userID,omitempty"` - CommonResp *CommonResp `protobuf:"bytes,2,opt,name=commonResp" json:"commonResp,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *GetUsersOnlineStatusResp_FailedDetail) Reset() { *m = GetUsersOnlineStatusResp_FailedDetail{} } -func (m *GetUsersOnlineStatusResp_FailedDetail) String() string { return proto.CompactTextString(m) } -func (*GetUsersOnlineStatusResp_FailedDetail) ProtoMessage() {} -func (*GetUsersOnlineStatusResp_FailedDetail) Descriptor() ([]byte, []int) { - return fileDescriptor_user_60873bcb313a530f, []int{11, 1} -} -func (m *GetUsersOnlineStatusResp_FailedDetail) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_GetUsersOnlineStatusResp_FailedDetail.Unmarshal(m, b) -} -func (m *GetUsersOnlineStatusResp_FailedDetail) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_GetUsersOnlineStatusResp_FailedDetail.Marshal(b, m, deterministic) -} -func (dst *GetUsersOnlineStatusResp_FailedDetail) XXX_Merge(src proto.Message) { - xxx_messageInfo_GetUsersOnlineStatusResp_FailedDetail.Merge(dst, src) -} -func (m *GetUsersOnlineStatusResp_FailedDetail) XXX_Size() int { - return xxx_messageInfo_GetUsersOnlineStatusResp_FailedDetail.Size(m) -} -func (m *GetUsersOnlineStatusResp_FailedDetail) XXX_DiscardUnknown() { - xxx_messageInfo_GetUsersOnlineStatusResp_FailedDetail.DiscardUnknown(m) -} - -var xxx_messageInfo_GetUsersOnlineStatusResp_FailedDetail proto.InternalMessageInfo - -func (m *GetUsersOnlineStatusResp_FailedDetail) GetUserID() string { - if m != nil { - return m.UserID - } - return "" -} - -func (m *GetUsersOnlineStatusResp_FailedDetail) GetCommonResp() *CommonResp { - if m != nil { - return m.CommonResp - } - return nil -} - -type GetUsersOnlineStatusResp_SuccessResult struct { - UserID string `protobuf:"bytes,1,opt,name=userID" json:"userID,omitempty"` - Status string `protobuf:"bytes,2,opt,name=status" json:"status,omitempty"` - DetailPlatformStatus []*GetUsersOnlineStatusResp_SuccessDetail `protobuf:"bytes,3,rep,name=detailPlatformStatus" json:"detailPlatformStatus,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *GetUsersOnlineStatusResp_SuccessResult) Reset() { - *m = GetUsersOnlineStatusResp_SuccessResult{} -} -func (m *GetUsersOnlineStatusResp_SuccessResult) String() string { return proto.CompactTextString(m) } -func (*GetUsersOnlineStatusResp_SuccessResult) ProtoMessage() {} -func (*GetUsersOnlineStatusResp_SuccessResult) Descriptor() ([]byte, []int) { - return fileDescriptor_user_60873bcb313a530f, []int{11, 2} -} -func (m *GetUsersOnlineStatusResp_SuccessResult) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_GetUsersOnlineStatusResp_SuccessResult.Unmarshal(m, b) -} -func (m *GetUsersOnlineStatusResp_SuccessResult) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_GetUsersOnlineStatusResp_SuccessResult.Marshal(b, m, deterministic) -} -func (dst *GetUsersOnlineStatusResp_SuccessResult) XXX_Merge(src proto.Message) { - xxx_messageInfo_GetUsersOnlineStatusResp_SuccessResult.Merge(dst, src) -} -func (m *GetUsersOnlineStatusResp_SuccessResult) XXX_Size() int { - return xxx_messageInfo_GetUsersOnlineStatusResp_SuccessResult.Size(m) -} -func (m *GetUsersOnlineStatusResp_SuccessResult) XXX_DiscardUnknown() { - xxx_messageInfo_GetUsersOnlineStatusResp_SuccessResult.DiscardUnknown(m) -} - -var xxx_messageInfo_GetUsersOnlineStatusResp_SuccessResult proto.InternalMessageInfo - -func (m *GetUsersOnlineStatusResp_SuccessResult) GetUserID() string { - if m != nil { - return m.UserID - } - return "" -} - -func (m *GetUsersOnlineStatusResp_SuccessResult) GetStatus() string { - if m != nil { - return m.Status - } - return "" -} - -func (m *GetUsersOnlineStatusResp_SuccessResult) GetDetailPlatformStatus() []*GetUsersOnlineStatusResp_SuccessDetail { - if m != nil { - return m.DetailPlatformStatus - } - return nil -} - func init() { proto.RegisterType((*CommonResp)(nil), "user.CommonResp") proto.RegisterType((*DeleteUsersResp)(nil), "user.DeleteUsersResp") @@ -880,11 +630,6 @@ func init() { proto.RegisterType((*UserInfo)(nil), "user.UserInfo") proto.RegisterType((*LogoutReq)(nil), "user.LogoutReq") proto.RegisterType((*UpdateUserInfoReq)(nil), "user.UpdateUserInfoReq") - proto.RegisterType((*GetUsersOnlineStatusReq)(nil), "user.GetUsersOnlineStatusReq") - proto.RegisterType((*GetUsersOnlineStatusResp)(nil), "user.GetUsersOnlineStatusResp") - proto.RegisterType((*GetUsersOnlineStatusResp_SuccessDetail)(nil), "user.GetUsersOnlineStatusResp.SuccessDetail") - proto.RegisterType((*GetUsersOnlineStatusResp_FailedDetail)(nil), "user.GetUsersOnlineStatusResp.FailedDetail") - proto.RegisterType((*GetUsersOnlineStatusResp_SuccessResult)(nil), "user.GetUsersOnlineStatusResp.SuccessResult") } // Reference imports to suppress errors if they are not otherwise used. @@ -902,7 +647,6 @@ type UserClient interface { UpdateUserInfo(ctx context.Context, in *UpdateUserInfoReq, opts ...grpc.CallOption) (*CommonResp, error) DeleteUsers(ctx context.Context, in *DeleteUsersReq, opts ...grpc.CallOption) (*DeleteUsersResp, error) GetAllUsersUid(ctx context.Context, in *GetAllUsersUidReq, opts ...grpc.CallOption) (*GetAllUsersUidResp, error) - GetUsersOnlineStatus(ctx context.Context, in *GetUsersOnlineStatusReq, opts ...grpc.CallOption) (*GetUsersOnlineStatusResp, error) } type userClient struct { @@ -949,15 +693,6 @@ func (c *userClient) GetAllUsersUid(ctx context.Context, in *GetAllUsersUidReq, return out, nil } -func (c *userClient) GetUsersOnlineStatus(ctx context.Context, in *GetUsersOnlineStatusReq, opts ...grpc.CallOption) (*GetUsersOnlineStatusResp, error) { - out := new(GetUsersOnlineStatusResp) - err := grpc.Invoke(ctx, "/user.user/GetUsersOnlineStatus", in, out, c.cc, opts...) - if err != nil { - return nil, err - } - return out, nil -} - // Server API for User service type UserServer interface { @@ -965,7 +700,6 @@ type UserServer interface { UpdateUserInfo(context.Context, *UpdateUserInfoReq) (*CommonResp, error) DeleteUsers(context.Context, *DeleteUsersReq) (*DeleteUsersResp, error) GetAllUsersUid(context.Context, *GetAllUsersUidReq) (*GetAllUsersUidResp, error) - GetUsersOnlineStatus(context.Context, *GetUsersOnlineStatusReq) (*GetUsersOnlineStatusResp, error) } func RegisterUserServer(s *grpc.Server, srv UserServer) { @@ -1044,24 +778,6 @@ func _User_GetAllUsersUid_Handler(srv interface{}, ctx context.Context, dec func return interceptor(ctx, in, info, handler) } -func _User_GetUsersOnlineStatus_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(GetUsersOnlineStatusReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(UserServer).GetUsersOnlineStatus(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/user.user/GetUsersOnlineStatus", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(UserServer).GetUsersOnlineStatus(ctx, req.(*GetUsersOnlineStatusReq)) - } - return interceptor(ctx, in, info, handler) -} - var _User_serviceDesc = grpc.ServiceDesc{ ServiceName: "user.user", HandlerType: (*UserServer)(nil), @@ -1082,64 +798,49 @@ var _User_serviceDesc = grpc.ServiceDesc{ MethodName: "GetAllUsersUid", Handler: _User_GetAllUsersUid_Handler, }, - { - MethodName: "GetUsersOnlineStatus", - Handler: _User_GetUsersOnlineStatus_Handler, - }, }, Streams: []grpc.StreamDesc{}, Metadata: "user/user.proto", } -func init() { proto.RegisterFile("user/user.proto", fileDescriptor_user_60873bcb313a530f) } - -var fileDescriptor_user_60873bcb313a530f = []byte{ - // 746 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xa4, 0x56, 0xcd, 0x6a, 0xdb, 0x4c, - 0x14, 0x45, 0xf2, 0x4f, 0xec, 0xeb, 0xd8, 0x49, 0x06, 0x7f, 0x5f, 0x06, 0xd1, 0x06, 0x23, 0xba, - 0x30, 0xb4, 0xb8, 0xc5, 0xdd, 0x35, 0xab, 0xd6, 0x26, 0x21, 0x34, 0xc5, 0x45, 0xc1, 0x50, 0xda, - 0x4d, 0x14, 0x6b, 0xe2, 0x0c, 0x95, 0x35, 0x8a, 0x34, 0x82, 0xbc, 0x4e, 0xdf, 0xa0, 0x8b, 0xbe, - 0x4b, 0x9f, 0xa3, 0x6f, 0x50, 0xe6, 0x47, 0xb6, 0xfe, 0x9c, 0x84, 0x74, 0x63, 0xe6, 0xde, 0x99, - 0x39, 0x67, 0xce, 0x99, 0xb9, 0xba, 0x86, 0xbd, 0x24, 0x26, 0xd1, 0x6b, 0xf1, 0x33, 0x0a, 0x23, - 0xc6, 0x19, 0xaa, 0x8b, 0xb1, 0x7d, 0x02, 0x30, 0x61, 0xab, 0x15, 0x0b, 0x1c, 0x12, 0x87, 0xe8, - 0x19, 0xb4, 0x49, 0x14, 0xb1, 0x68, 0xc2, 0x3c, 0x82, 0x8d, 0x81, 0x31, 0x6c, 0x38, 0x9b, 0x04, - 0xb2, 0xa0, 0x25, 0x83, 0x4f, 0xf1, 0x12, 0x9b, 0x03, 0x63, 0xd8, 0x76, 0xd6, 0xb1, 0x4d, 0x61, - 0x6f, 0x4a, 0x7c, 0xc2, 0xc9, 0x3c, 0x26, 0x51, 0x2c, 0xc1, 0xde, 0x00, 0x2c, 0xd6, 0xd0, 0x12, - 0xad, 0x33, 0xde, 0x1f, 0xc9, 0x13, 0x6c, 0x28, 0x9d, 0xcc, 0x1a, 0xf4, 0x02, 0xba, 0xd7, 0x2e, - 0xf5, 0x89, 0x37, 0xa7, 0xde, 0x39, 0x8d, 0x39, 0x36, 0x07, 0xb5, 0x61, 0xdb, 0xc9, 0x27, 0xed, - 0x00, 0x7a, 0x39, 0xaa, 0x5b, 0xb1, 0xcf, 0x53, 0x99, 0xfc, 0xbe, 0x5c, 0x12, 0xf5, 0xa1, 0xc1, - 0xd9, 0x77, 0x12, 0xe0, 0x9a, 0x3c, 0xbb, 0x0a, 0xd0, 0x00, 0x3a, 0xb3, 0x90, 0x44, 0x2e, 0xa7, - 0x2c, 0x38, 0x9b, 0xe2, 0xba, 0x9c, 0xcb, 0xa6, 0xec, 0x8f, 0x70, 0x70, 0x4a, 0xf8, 0x7b, 0xdf, - 0x97, 0x7c, 0x73, 0xea, 0x09, 0xca, 0x35, 0x98, 0x59, 0x00, 0x63, 0x19, 0x30, 0x45, 0x94, 0x4d, - 0xd9, 0x97, 0x80, 0x8a, 0x60, 0x4f, 0xb2, 0x0a, 0xc3, 0x4e, 0x92, 0x13, 0x9b, 0x86, 0xf6, 0x0d, - 0xf4, 0x4e, 0x09, 0x17, 0xf0, 0x67, 0xc1, 0x35, 0x13, 0x67, 0x3d, 0x02, 0x10, 0x50, 0x67, 0x53, - 0xb9, 0xdc, 0x90, 0xcb, 0x33, 0x99, 0xed, 0x5a, 0x66, 0x65, 0x2d, 0x59, 0x63, 0x18, 0xec, 0xe5, - 0x98, 0xfe, 0xe5, 0x01, 0x21, 0x1b, 0xea, 0x53, 0x97, 0xbb, 0xb8, 0x36, 0xa8, 0x0d, 0x3b, 0xe3, - 0x9e, 0x12, 0xbf, 0xc6, 0x96, 0x73, 0xf6, 0x4f, 0x03, 0x5a, 0x69, 0x0a, 0xed, 0x43, 0x2d, 0xa1, - 0x9e, 0x24, 0x69, 0x3b, 0x62, 0x88, 0x10, 0xd4, 0x03, 0x77, 0x45, 0x34, 0xb4, 0x1c, 0x8b, 0x1c, - 0x5d, 0xb0, 0xf4, 0xce, 0xe5, 0x18, 0xfd, 0x0f, 0xcd, 0x25, 0x09, 0x3c, 0x12, 0xc9, 0xdb, 0x6e, - 0x38, 0x3a, 0x12, 0xf9, 0x15, 0xbb, 0xa2, 0x3e, 0xc1, 0x0d, 0xb9, 0x5a, 0x47, 0xc2, 0x9f, 0x2b, - 0x1a, 0xf1, 0x1b, 0xdc, 0x54, 0xfe, 0xc8, 0x40, 0x64, 0xc9, 0xca, 0xa5, 0x3e, 0xde, 0x51, 0x59, - 0x19, 0xa0, 0x1e, 0x98, 0xe4, 0x0e, 0xb7, 0x64, 0xca, 0x24, 0x77, 0xf6, 0x04, 0xda, 0xe7, 0x6c, - 0xc9, 0x12, 0x2e, 0x2e, 0xa2, 0x60, 0xa9, 0x51, 0xb2, 0xb4, 0xfa, 0x2a, 0xec, 0x3f, 0x06, 0x1c, - 0xcc, 0x43, 0xcf, 0x55, 0x4f, 0x3e, 0xbd, 0xd6, 0x54, 0x9a, 0x91, 0x91, 0x56, 0x65, 0xc1, 0x46, - 0x6e, 0x6d, 0x8b, 0xdc, 0x7a, 0xb5, 0xdc, 0x46, 0xa5, 0xdc, 0x66, 0x59, 0xee, 0x4e, 0x2a, 0x77, - 0x73, 0xfe, 0xd6, 0x3d, 0x4f, 0xa9, 0x5d, 0xd6, 0xbd, 0x0f, 0xb5, 0x39, 0xf5, 0x30, 0xa8, 0xcb, - 0x9c, 0x53, 0xcf, 0xfe, 0x06, 0x87, 0xfa, 0x71, 0xc5, 0xb3, 0xc0, 0xa7, 0x01, 0xb9, 0xe0, 0x2e, - 0x4f, 0xe2, 0xc7, 0xbc, 0xe7, 0x42, 0x15, 0x9a, 0xe5, 0x2a, 0xfc, 0x55, 0x07, 0x5c, 0x8d, 0xfe, - 0xa4, 0x62, 0x74, 0xa0, 0x1b, 0x27, 0x8b, 0x05, 0x89, 0x05, 0x40, 0xe2, 0xab, 0x92, 0xec, 0x8c, - 0x5f, 0xa9, 0x4d, 0xdb, 0x88, 0x46, 0x17, 0xd9, 0x3d, 0x4e, 0x1e, 0x02, 0xcd, 0x60, 0x57, 0x7d, - 0xf6, 0x34, 0xa4, 0xaa, 0x8b, 0x97, 0x0f, 0x40, 0x9e, 0xc8, 0x2d, 0x53, 0xc2, 0x5d, 0xea, 0x3b, - 0x39, 0x00, 0x6b, 0x02, 0x5d, 0x4d, 0xa8, 0xa6, 0x45, 0x35, 0x86, 0xbe, 0xcb, 0xaf, 0x59, 0xb4, - 0xd2, 0x6f, 0x68, 0x1d, 0x8b, 0xb7, 0x11, 0x4b, 0x54, 0xed, 0x9e, 0x8e, 0xac, 0x2f, 0xb0, 0x9b, - 0xa5, 0x10, 0xeb, 0x94, 0xf1, 0x1a, 0x41, 0x47, 0x05, 0x0f, 0xcd, 0x87, 0x3d, 0xb4, 0x7e, 0x18, - 0xeb, 0xf3, 0x69, 0x07, 0xb6, 0x61, 0x6f, 0x39, 0x1b, 0xba, 0x84, 0xbe, 0x27, 0x4f, 0xf5, 0x59, - 0xab, 0x50, 0xbe, 0x68, 0xe7, 0x1e, 0x79, 0x19, 0xda, 0xba, 0x4a, 0xa4, 0xf1, 0x6f, 0x13, 0x64, - 0xd7, 0x44, 0xef, 0xa0, 0xb3, 0xdc, 0x7c, 0xf9, 0x50, 0x3f, 0x87, 0xad, 0xeb, 0xd3, 0xfa, 0xaf, - 0x22, 0x1b, 0x87, 0xe8, 0x18, 0x7a, 0xf9, 0x5a, 0x46, 0x87, 0xfa, 0x63, 0x57, 0xac, 0x70, 0xab, - 0xe4, 0x98, 0x20, 0xce, 0xf4, 0xbe, 0x94, 0x38, 0xdf, 0x0e, 0x53, 0xe2, 0x62, 0x3f, 0x9e, 0xc8, - 0xc6, 0x90, 0x69, 0x3d, 0x29, 0x71, 0xa9, 0xbb, 0x59, 0xb8, 0x7a, 0x22, 0x0e, 0xd1, 0x1c, 0xfa, - 0x55, 0x16, 0xa2, 0xe7, 0xf7, 0xd9, 0x7b, 0x6b, 0x1d, 0xdd, 0xef, 0xfe, 0x87, 0xee, 0xd7, 0xce, - 0x48, 0xfe, 0x39, 0x39, 0x16, 0x3f, 0x57, 0x4d, 0xf9, 0x17, 0xe5, 0xed, 0xdf, 0x00, 0x00, 0x00, - 0xff, 0xff, 0xae, 0xca, 0xfa, 0xdd, 0xb5, 0x08, 0x00, 0x00, +func init() { proto.RegisterFile("user/user.proto", fileDescriptor_user_23985c8245c722d0) } + +var fileDescriptor_user_23985c8245c722d0 = []byte{ + // 562 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xa4, 0x54, 0x4d, 0x6f, 0xd3, 0x40, + 0x10, 0x95, 0xed, 0x24, 0x8d, 0x27, 0x6a, 0x92, 0xae, 0x0a, 0xac, 0x22, 0x84, 0x22, 0x8b, 0x43, + 0x4e, 0x01, 0x85, 0x1b, 0x3d, 0x41, 0x22, 0xaa, 0x88, 0xa2, 0x4a, 0x96, 0x7c, 0xe1, 0x84, 0xd3, + 0x9d, 0xa6, 0x2b, 0x1c, 0xaf, 0xb1, 0x37, 0x52, 0x8f, 0xfc, 0x24, 0xfe, 0x1a, 0xff, 0x00, 0xed, + 0x38, 0x4e, 0xfc, 0x55, 0x0e, 0x70, 0xb1, 0x76, 0xde, 0xae, 0xdf, 0xdb, 0x37, 0x33, 0x3b, 0x30, + 0xda, 0x67, 0x98, 0xbe, 0x31, 0x9f, 0x79, 0x92, 0x2a, 0xad, 0x58, 0xc7, 0xac, 0xbd, 0x4f, 0x00, + 0x4b, 0xb5, 0xdb, 0xa9, 0xd8, 0xc7, 0x2c, 0x61, 0x2f, 0xc1, 0xc5, 0x34, 0x55, 0xe9, 0x52, 0x09, + 0xe4, 0xd6, 0xd4, 0x9a, 0x75, 0xfd, 0x13, 0xc0, 0x26, 0xd0, 0xa7, 0xe0, 0x4b, 0xb6, 0xe5, 0xf6, + 0xd4, 0x9a, 0xb9, 0xfe, 0x31, 0xf6, 0x24, 0x8c, 0x56, 0x18, 0xa1, 0xc6, 0x20, 0xc3, 0x34, 0x23, + 0xb2, 0xb7, 0x00, 0x77, 0x47, 0x6a, 0x62, 0x1b, 0x2c, 0xc6, 0x73, 0xba, 0xc1, 0x49, 0xd2, 0x2f, + 0x9d, 0x61, 0xaf, 0xe1, 0xfc, 0x3e, 0x94, 0x11, 0x8a, 0x40, 0x8a, 0x1b, 0x99, 0x69, 0x6e, 0x4f, + 0x9d, 0x99, 0xeb, 0x57, 0x41, 0x2f, 0x86, 0x61, 0x45, 0xea, 0x87, 0xf9, 0x4f, 0xe4, 0x48, 0xf5, + 0xbf, 0x0a, 0xc8, 0x2e, 0xa1, 0xab, 0xd5, 0x77, 0x8c, 0xb9, 0x43, 0x77, 0xcf, 0x03, 0x36, 0x85, + 0xc1, 0x6d, 0x82, 0x69, 0xa8, 0xa5, 0x8a, 0xd7, 0x2b, 0xde, 0xa1, 0xbd, 0x32, 0xe4, 0x7d, 0x86, + 0x8b, 0x6b, 0xd4, 0x1f, 0xa2, 0x88, 0xf4, 0x02, 0x29, 0x8c, 0xe4, 0x91, 0xcc, 0xae, 0x91, 0xa9, + 0x12, 0x59, 0x2e, 0x54, 0x86, 0xbc, 0x6f, 0xc0, 0xea, 0x64, 0xff, 0x94, 0x2a, 0x0e, 0x67, 0xfb, + 0x8a, 0xd9, 0x22, 0xf4, 0x1e, 0x60, 0x78, 0x8d, 0xda, 0xd0, 0xaf, 0xe3, 0x7b, 0x65, 0xee, 0xfa, + 0x0a, 0xc0, 0x50, 0xad, 0x57, 0x74, 0xdc, 0xa2, 0xe3, 0x25, 0xe4, 0x69, 0x2f, 0xb7, 0x4d, 0x2f, + 0xe5, 0xc4, 0x28, 0x18, 0x55, 0x94, 0xfe, 0xa7, 0x81, 0x98, 0x07, 0x9d, 0x55, 0xa8, 0x43, 0xee, + 0x4c, 0x9d, 0xd9, 0x60, 0x31, 0xcc, 0xcd, 0x1f, 0xb9, 0x69, 0xcf, 0xfb, 0x65, 0x41, 0xbf, 0x80, + 0xd8, 0x18, 0x9c, 0xbd, 0x14, 0x24, 0xe2, 0xfa, 0x66, 0xc9, 0x18, 0x74, 0xe2, 0x70, 0x87, 0x07, + 0x6a, 0x5a, 0x1b, 0x4c, 0xde, 0xa9, 0xa2, 0xe6, 0xb4, 0x66, 0xcf, 0xa1, 0xb7, 0xc5, 0x58, 0x60, + 0x4a, 0xd5, 0xee, 0xfa, 0x87, 0xc8, 0xe0, 0x3b, 0xb5, 0x91, 0x11, 0xf2, 0x2e, 0x9d, 0x3e, 0x44, + 0x26, 0x3f, 0x1b, 0x99, 0xea, 0x07, 0xde, 0xcb, 0xf3, 0x43, 0x81, 0x41, 0x71, 0x17, 0xca, 0x88, + 0x9f, 0xe5, 0x28, 0x05, 0x6c, 0x08, 0x36, 0x3e, 0xf2, 0x3e, 0x41, 0x36, 0x3e, 0x7a, 0x4b, 0x70, + 0x6f, 0xd4, 0x56, 0xed, 0xb5, 0x29, 0x44, 0x2d, 0xa5, 0x56, 0x23, 0xa5, 0xed, 0xa5, 0xf0, 0x7e, + 0x5b, 0x70, 0x11, 0x24, 0x22, 0xcc, 0x5b, 0xbe, 0x28, 0x6b, 0x61, 0xcd, 0x2a, 0x59, 0x6b, 0x4b, + 0xc1, 0xc9, 0xae, 0xf3, 0x84, 0xdd, 0x4e, 0xbb, 0xdd, 0x6e, 0xab, 0xdd, 0x5e, 0xd3, 0xee, 0x59, + 0x61, 0xf7, 0x74, 0xff, 0xfe, 0x5f, 0x5a, 0xc9, 0x6d, 0xfa, 0x1e, 0x83, 0x13, 0x48, 0xc1, 0x21, + 0x2f, 0x66, 0x20, 0xc5, 0xe2, 0xa7, 0x0d, 0x34, 0xa1, 0xd8, 0x7b, 0x18, 0x6c, 0x4f, 0x5d, 0xc6, + 0x2e, 0xf3, 0xce, 0xa8, 0xb6, 0xf8, 0xe4, 0x59, 0x0b, 0x9a, 0x25, 0xec, 0x0a, 0x86, 0xd5, 0xbc, + 0xb1, 0x17, 0x87, 0xc6, 0xaa, 0x67, 0x73, 0xd2, 0x78, 0x6e, 0x46, 0xb8, 0x34, 0x67, 0x0a, 0xe1, + 0xea, 0xe8, 0x29, 0x84, 0xeb, 0xb3, 0x6f, 0x49, 0x8f, 0xb0, 0xf4, 0xcc, 0x0b, 0xe1, 0xc6, 0x24, + 0x99, 0xf0, 0xf6, 0x8d, 0x2c, 0xf9, 0x78, 0xfe, 0x75, 0x30, 0xa7, 0x89, 0x7d, 0x65, 0x3e, 0x9b, + 0x1e, 0xcd, 0xed, 0x77, 0x7f, 0x02, 0x00, 0x00, 0xff, 0xff, 0x30, 0xbd, 0x59, 0x5b, 0xca, 0x05, + 0x00, 0x00, } From f4c727230558c317b546ab190b383a583c93f43f Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Mon, 29 Nov 2021 14:09:10 +0800 Subject: [PATCH 109/814] pb file --- pkg/proto/relay/relay.proto | 1 + 1 file changed, 1 insertion(+) diff --git a/pkg/proto/relay/relay.proto b/pkg/proto/relay/relay.proto index a3464e077..ff648f760 100644 --- a/pkg/proto/relay/relay.proto +++ b/pkg/proto/relay/relay.proto @@ -40,6 +40,7 @@ message SingleMsgToUser{ message GetUsersOnlineStatusReq{ repeated string userIDList = 1; string operationID = 2; + string token = 3; } message GetUsersOnlineStatusResp{ int32 errCode = 1; From 2f37767899284ad6f347a5e17226f4dfebb05994 Mon Sep 17 00:00:00 2001 From: root Date: Mon, 29 Nov 2021 14:10:42 +0800 Subject: [PATCH 110/814] pb file --- pkg/proto/relay/relay.pb.go | 112 +++++++++++++++++++----------------- 1 file changed, 60 insertions(+), 52 deletions(-) diff --git a/pkg/proto/relay/relay.pb.go b/pkg/proto/relay/relay.pb.go index d56aae9e0..7b7a674c6 100644 --- a/pkg/proto/relay/relay.pb.go +++ b/pkg/proto/relay/relay.pb.go @@ -47,7 +47,7 @@ func (m *MsgToUserReq) Reset() { *m = MsgToUserReq{} } func (m *MsgToUserReq) String() string { return proto.CompactTextString(m) } func (*MsgToUserReq) ProtoMessage() {} func (*MsgToUserReq) Descriptor() ([]byte, []int) { - return fileDescriptor_relay_709d2b3cc3a7ad83, []int{0} + return fileDescriptor_relay_3a61ef77452a8c73, []int{0} } func (m *MsgToUserReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MsgToUserReq.Unmarshal(m, b) @@ -176,7 +176,7 @@ func (m *MsgToUserResp) Reset() { *m = MsgToUserResp{} } func (m *MsgToUserResp) String() string { return proto.CompactTextString(m) } func (*MsgToUserResp) ProtoMessage() {} func (*MsgToUserResp) Descriptor() ([]byte, []int) { - return fileDescriptor_relay_709d2b3cc3a7ad83, []int{1} + return fileDescriptor_relay_3a61ef77452a8c73, []int{1} } func (m *MsgToUserResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MsgToUserResp.Unmarshal(m, b) @@ -227,7 +227,7 @@ func (m *SingleMsgToUser) Reset() { *m = SingleMsgToUser{} } func (m *SingleMsgToUser) String() string { return proto.CompactTextString(m) } func (*SingleMsgToUser) ProtoMessage() {} func (*SingleMsgToUser) Descriptor() ([]byte, []int) { - return fileDescriptor_relay_709d2b3cc3a7ad83, []int{2} + return fileDescriptor_relay_3a61ef77452a8c73, []int{2} } func (m *SingleMsgToUser) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SingleMsgToUser.Unmarshal(m, b) @@ -271,6 +271,7 @@ func (m *SingleMsgToUser) GetRecvPlatFormID() int32 { type GetUsersOnlineStatusReq struct { UserIDList []string `protobuf:"bytes,1,rep,name=userIDList" json:"userIDList,omitempty"` OperationID string `protobuf:"bytes,2,opt,name=operationID" json:"operationID,omitempty"` + Token string `protobuf:"bytes,3,opt,name=token" json:"token,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -280,7 +281,7 @@ func (m *GetUsersOnlineStatusReq) Reset() { *m = GetUsersOnlineStatusReq func (m *GetUsersOnlineStatusReq) String() string { return proto.CompactTextString(m) } func (*GetUsersOnlineStatusReq) ProtoMessage() {} func (*GetUsersOnlineStatusReq) Descriptor() ([]byte, []int) { - return fileDescriptor_relay_709d2b3cc3a7ad83, []int{3} + return fileDescriptor_relay_3a61ef77452a8c73, []int{3} } func (m *GetUsersOnlineStatusReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetUsersOnlineStatusReq.Unmarshal(m, b) @@ -314,6 +315,13 @@ func (m *GetUsersOnlineStatusReq) GetOperationID() string { return "" } +func (m *GetUsersOnlineStatusReq) GetToken() string { + if m != nil { + return m.Token + } + return "" +} + type GetUsersOnlineStatusResp struct { ErrCode int32 `protobuf:"varint,1,opt,name=errCode" json:"errCode,omitempty"` ErrMsg string `protobuf:"bytes,2,opt,name=errMsg" json:"errMsg,omitempty"` @@ -328,7 +336,7 @@ func (m *GetUsersOnlineStatusResp) Reset() { *m = GetUsersOnlineStatusRe func (m *GetUsersOnlineStatusResp) String() string { return proto.CompactTextString(m) } func (*GetUsersOnlineStatusResp) ProtoMessage() {} func (*GetUsersOnlineStatusResp) Descriptor() ([]byte, []int) { - return fileDescriptor_relay_709d2b3cc3a7ad83, []int{4} + return fileDescriptor_relay_3a61ef77452a8c73, []int{4} } func (m *GetUsersOnlineStatusResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetUsersOnlineStatusResp.Unmarshal(m, b) @@ -390,7 +398,7 @@ func (m *GetUsersOnlineStatusResp_SuccessDetail) Reset() { func (m *GetUsersOnlineStatusResp_SuccessDetail) String() string { return proto.CompactTextString(m) } func (*GetUsersOnlineStatusResp_SuccessDetail) ProtoMessage() {} func (*GetUsersOnlineStatusResp_SuccessDetail) Descriptor() ([]byte, []int) { - return fileDescriptor_relay_709d2b3cc3a7ad83, []int{4, 0} + return fileDescriptor_relay_3a61ef77452a8c73, []int{4, 0} } func (m *GetUsersOnlineStatusResp_SuccessDetail) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetUsersOnlineStatusResp_SuccessDetail.Unmarshal(m, b) @@ -437,7 +445,7 @@ func (m *GetUsersOnlineStatusResp_FailedDetail) Reset() { *m = GetUsersO func (m *GetUsersOnlineStatusResp_FailedDetail) String() string { return proto.CompactTextString(m) } func (*GetUsersOnlineStatusResp_FailedDetail) ProtoMessage() {} func (*GetUsersOnlineStatusResp_FailedDetail) Descriptor() ([]byte, []int) { - return fileDescriptor_relay_709d2b3cc3a7ad83, []int{4, 1} + return fileDescriptor_relay_3a61ef77452a8c73, []int{4, 1} } func (m *GetUsersOnlineStatusResp_FailedDetail) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetUsersOnlineStatusResp_FailedDetail.Unmarshal(m, b) @@ -493,7 +501,7 @@ func (m *GetUsersOnlineStatusResp_SuccessResult) Reset() { func (m *GetUsersOnlineStatusResp_SuccessResult) String() string { return proto.CompactTextString(m) } func (*GetUsersOnlineStatusResp_SuccessResult) ProtoMessage() {} func (*GetUsersOnlineStatusResp_SuccessResult) Descriptor() ([]byte, []int) { - return fileDescriptor_relay_709d2b3cc3a7ad83, []int{4, 2} + return fileDescriptor_relay_3a61ef77452a8c73, []int{4, 2} } func (m *GetUsersOnlineStatusResp_SuccessResult) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetUsersOnlineStatusResp_SuccessResult.Unmarshal(m, b) @@ -650,48 +658,48 @@ var _OnlineMessageRelayService_serviceDesc = grpc.ServiceDesc{ Metadata: "relay/relay.proto", } -func init() { proto.RegisterFile("relay/relay.proto", fileDescriptor_relay_709d2b3cc3a7ad83) } - -var fileDescriptor_relay_709d2b3cc3a7ad83 = []byte{ - // 628 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x94, 0x54, 0x41, 0x6b, 0xdb, 0x4c, - 0x10, 0x45, 0x9f, 0xe2, 0x24, 0x9e, 0xd8, 0xc9, 0x97, 0x6d, 0x48, 0xb7, 0x3a, 0xa4, 0xc6, 0x94, - 0x60, 0x4a, 0xeb, 0x42, 0x0a, 0xbd, 0xe4, 0x56, 0x0b, 0x17, 0x41, 0x9c, 0x84, 0x95, 0x43, 0x4b, - 0x7b, 0x52, 0xe4, 0x89, 0x11, 0x95, 0x25, 0x79, 0x77, 0x1d, 0xc8, 0xdf, 0xe9, 0xb9, 0xf7, 0x5e, - 0xfb, 0xd3, 0xca, 0xee, 0x4a, 0xf6, 0xda, 0xb5, 0x1b, 0x72, 0x31, 0x7e, 0x6f, 0x66, 0xdf, 0xcc, - 0xbc, 0xd9, 0x15, 0x1c, 0x72, 0x4c, 0xa3, 0x87, 0x77, 0xfa, 0xb7, 0x5b, 0xf0, 0x5c, 0xe6, 0xa4, - 0xa6, 0x41, 0xfb, 0xb7, 0x0b, 0x8d, 0x81, 0x18, 0x0f, 0xf3, 0x1b, 0x81, 0x9c, 0xe1, 0x94, 0x1c, - 0xc3, 0x76, 0x88, 0xd9, 0x28, 0xf0, 0xa9, 0xd3, 0x72, 0x3a, 0x75, 0x56, 0x22, 0xc5, 0x33, 0x8c, - 0xef, 0x03, 0x9f, 0xfe, 0x67, 0x78, 0x83, 0x08, 0x85, 0x9d, 0x5e, 0x9e, 0x49, 0xcc, 0x24, 0xad, - 0xe9, 0x40, 0x05, 0x55, 0x44, 0xe5, 0x84, 0x38, 0xa5, 0xdb, 0x2d, 0xa7, 0xe3, 0xb2, 0x0a, 0x12, - 0x0f, 0x76, 0x95, 0xea, 0x30, 0x99, 0x20, 0xdd, 0xd1, 0xa1, 0x39, 0x56, 0xa7, 0x06, 0x62, 0xdc, - 0xe7, 0xf9, 0x84, 0xee, 0xb6, 0x9c, 0x4e, 0x8d, 0x55, 0x90, 0xb4, 0x60, 0xaf, 0x94, 0x1e, 0x3e, - 0x14, 0x48, 0xeb, 0x3a, 0x6a, 0x53, 0x2a, 0x23, 0x44, 0x21, 0x92, 0x3c, 0xd3, 0x19, 0x60, 0x32, - 0x2c, 0x4a, 0x65, 0x5c, 0x15, 0xc8, 0x23, 0x99, 0xe4, 0x59, 0xe0, 0xd3, 0x3d, 0xdd, 0xb1, 0x4d, - 0x19, 0x0d, 0x7e, 0x8f, 0x7c, 0x20, 0xc6, 0x81, 0x4f, 0x1b, 0x26, 0xc3, 0xa2, 0xc8, 0x09, 0xc0, - 0x75, 0x1a, 0xc9, 0xbb, 0x9c, 0x4f, 0x02, 0x9f, 0x36, 0x75, 0x11, 0x8b, 0x21, 0xa7, 0xb0, 0xaf, - 0xa6, 0x41, 0x7e, 0x99, 0xc4, 0xdf, 0x2f, 0xa3, 0x09, 0xd2, 0x7d, 0x2d, 0xb2, 0xc2, 0x92, 0x57, - 0xd0, 0x34, 0x4c, 0x3f, 0x8a, 0xf1, 0x86, 0x5d, 0xd0, 0x03, 0x9d, 0xb6, 0x4c, 0xea, 0xa9, 0xd3, - 0x04, 0x33, 0x69, 0xfa, 0xf9, 0xdf, 0xf4, 0x63, 0x51, 0xed, 0x73, 0x68, 0x5a, 0x1b, 0x14, 0x05, - 0x79, 0x0d, 0x5b, 0x1c, 0x45, 0x41, 0x9d, 0x96, 0xdb, 0xd9, 0x3b, 0x3b, 0xee, 0x9a, 0xb5, 0x87, - 0x49, 0x36, 0x4e, 0x71, 0x91, 0xa9, 0x73, 0xda, 0x53, 0x38, 0x58, 0x09, 0xa8, 0xf9, 0x18, 0x8a, - 0x59, 0x2a, 0x7b, 0xf9, 0x08, 0xf5, 0x2d, 0x70, 0x99, 0xc5, 0x6c, 0xbc, 0x09, 0xa7, 0xb0, 0xaf, - 0xfe, 0x29, 0x27, 0xfa, 0xc6, 0x1b, 0x57, 0x7b, 0xb3, 0xc2, 0xb6, 0xbf, 0xc1, 0xf3, 0x4f, 0x28, - 0x55, 0x29, 0x71, 0x95, 0xa5, 0x49, 0x86, 0xa1, 0x8c, 0xe4, 0x4c, 0xa8, 0xcb, 0x77, 0x02, 0x30, - 0x13, 0xc8, 0x03, 0xff, 0x22, 0x11, 0x52, 0xf7, 0x5f, 0x67, 0x16, 0xa3, 0xcc, 0xc8, 0xad, 0xf5, - 0x99, 0xfa, 0x36, 0xd5, 0xfe, 0xb5, 0x05, 0x74, 0xbd, 0xba, 0x28, 0xd4, 0xdd, 0x42, 0xce, 0xe7, - 0x63, 0xd5, 0x58, 0x05, 0xd5, 0x4c, 0xc8, 0xd5, 0x7e, 0xab, 0x99, 0x0c, 0x22, 0x21, 0x34, 0xc5, - 0x2c, 0x8e, 0x51, 0x08, 0x63, 0x00, 0x75, 0xb5, 0xa7, 0x6f, 0x4b, 0x4f, 0x37, 0x55, 0xea, 0x86, - 0xf6, 0x21, 0xb6, 0xac, 0x41, 0xae, 0xa1, 0x71, 0x17, 0x25, 0x29, 0x8e, 0x4a, 0xcd, 0x2d, 0xad, - 0xf9, 0xe6, 0x31, 0xcd, 0xbe, 0x3e, 0xe3, 0xa3, 0x8c, 0x92, 0x94, 0x2d, 0x29, 0x78, 0x3d, 0x68, - 0x96, 0x15, 0x4d, 0x58, 0xbd, 0xb0, 0xa2, 0xbc, 0x91, 0xe5, 0x3b, 0x9e, 0x63, 0x35, 0xab, 0xd0, - 0xaa, 0xd5, 0xac, 0x06, 0x79, 0x5f, 0xa0, 0x61, 0x97, 0x50, 0x79, 0xc6, 0x7a, 0xbd, 0xc7, 0x3a, - 0x2b, 0xd1, 0xd3, 0x5d, 0xf4, 0x7e, 0x38, 0xf3, 0xfe, 0x4a, 0x0b, 0x16, 0xda, 0xce, 0x92, 0xf6, - 0x86, 0xde, 0x48, 0x04, 0x47, 0x23, 0xdd, 0x55, 0xf5, 0xce, 0x8c, 0x2f, 0x4f, 0x5c, 0x47, 0xe9, - 0xdd, 0x5a, 0xa9, 0xb3, 0x9f, 0x0e, 0xbc, 0x30, 0x07, 0x07, 0x28, 0x44, 0x34, 0x46, 0xa6, 0x34, - 0xd5, 0xc3, 0x4f, 0x62, 0x24, 0x1f, 0xa0, 0xbe, 0x78, 0x21, 0xcf, 0xca, 0x7a, 0xf6, 0x87, 0xd3, - 0x3b, 0xfa, 0x9b, 0x14, 0x05, 0xf9, 0x0c, 0x47, 0xeb, 0xba, 0x22, 0x27, 0xff, 0x6c, 0x79, 0xea, - 0xbd, 0x7c, 0x64, 0xa4, 0x8f, 0x87, 0x5f, 0x0f, 0xba, 0xe6, 0x83, 0x7e, 0x5e, 0xdc, 0xea, 0x56, - 0x6f, 0xb7, 0xf5, 0x97, 0xfd, 0xfd, 0x9f, 0x00, 0x00, 0x00, 0xff, 0xff, 0x4e, 0xe4, 0x7c, 0xdc, - 0xee, 0x05, 0x00, 0x00, +func init() { proto.RegisterFile("relay/relay.proto", fileDescriptor_relay_3a61ef77452a8c73) } + +var fileDescriptor_relay_3a61ef77452a8c73 = []byte{ + // 636 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x94, 0x54, 0x4f, 0x4f, 0xdb, 0x4e, + 0x10, 0x95, 0x7f, 0x26, 0x40, 0x86, 0x04, 0x7e, 0x6c, 0x23, 0xba, 0xf5, 0x81, 0x46, 0x51, 0x85, + 0xa2, 0xaa, 0x4d, 0x25, 0x2a, 0xf5, 0xc2, 0xad, 0x58, 0xa9, 0x2c, 0x11, 0x40, 0x6b, 0x50, 0xab, + 0xde, 0x8c, 0x33, 0x44, 0x16, 0x8e, 0xed, 0xec, 0x6e, 0x90, 0xf8, 0x3a, 0x3d, 0xf7, 0xde, 0x6b, + 0x3f, 0x5a, 0xb5, 0x7f, 0x1c, 0x36, 0x94, 0x14, 0x71, 0x89, 0xf2, 0xde, 0x8c, 0xdf, 0xcc, 0xbc, + 0xd9, 0x5d, 0xd8, 0xe5, 0x98, 0x27, 0x77, 0x1f, 0xf4, 0xef, 0xa0, 0xe2, 0xa5, 0x2c, 0x49, 0x43, + 0x83, 0xde, 0x6f, 0x1f, 0x5a, 0x23, 0x31, 0xb9, 0x28, 0x2f, 0x05, 0x72, 0x86, 0x33, 0xb2, 0x07, + 0xeb, 0x31, 0x16, 0xe3, 0x28, 0xa4, 0x5e, 0xd7, 0xeb, 0x37, 0x99, 0x45, 0x8a, 0x67, 0x98, 0xde, + 0x46, 0x21, 0xfd, 0xcf, 0xf0, 0x06, 0x11, 0x0a, 0x1b, 0xc7, 0x65, 0x21, 0xb1, 0x90, 0xb4, 0xa1, + 0x03, 0x35, 0x54, 0x11, 0x95, 0x13, 0xe3, 0x8c, 0xae, 0x77, 0xbd, 0xbe, 0xcf, 0x6a, 0x48, 0x02, + 0xd8, 0x54, 0xaa, 0x17, 0xd9, 0x14, 0xe9, 0x86, 0x0e, 0x2d, 0xb0, 0xfa, 0x6a, 0x24, 0x26, 0x43, + 0x5e, 0x4e, 0xe9, 0x66, 0xd7, 0xeb, 0x37, 0x58, 0x0d, 0x49, 0x17, 0xb6, 0xac, 0xf4, 0xc5, 0x5d, + 0x85, 0xb4, 0xa9, 0xa3, 0x2e, 0xa5, 0x32, 0x62, 0x14, 0x22, 0x2b, 0x0b, 0x9d, 0x01, 0x26, 0xc3, + 0xa1, 0x54, 0xc6, 0x59, 0x85, 0x3c, 0x91, 0x59, 0x59, 0x44, 0x21, 0xdd, 0xd2, 0x1d, 0xbb, 0x94, + 0xd1, 0xe0, 0xb7, 0xc8, 0x47, 0x62, 0x12, 0x85, 0xb4, 0x65, 0x32, 0x1c, 0x8a, 0xec, 0x03, 0x9c, + 0xe7, 0x89, 0xbc, 0x2e, 0xf9, 0x34, 0x0a, 0x69, 0x5b, 0x17, 0x71, 0x18, 0x72, 0x00, 0xdb, 0x6a, + 0x1a, 0xe4, 0xa7, 0x59, 0x7a, 0x73, 0x9a, 0x4c, 0x91, 0x6e, 0x6b, 0x91, 0x07, 0x2c, 0x79, 0x03, + 0x6d, 0xc3, 0x0c, 0x93, 0x14, 0x2f, 0xd9, 0x09, 0xdd, 0xd1, 0x69, 0xcb, 0xa4, 0x9e, 0x3a, 0xcf, + 0xb0, 0x90, 0xa6, 0x9f, 0xff, 0x4d, 0x3f, 0x0e, 0xd5, 0x3b, 0x82, 0xb6, 0xb3, 0x41, 0x51, 0x91, + 0xb7, 0xb0, 0xc6, 0x51, 0x54, 0xd4, 0xeb, 0xfa, 0xfd, 0xad, 0xc3, 0xbd, 0x81, 0x59, 0x7b, 0x9c, + 0x15, 0x93, 0x1c, 0xef, 0x33, 0x75, 0x4e, 0x6f, 0x06, 0x3b, 0x0f, 0x02, 0x6a, 0x3e, 0x86, 0x62, + 0x9e, 0xcb, 0xe3, 0x72, 0x8c, 0xfa, 0x14, 0xf8, 0xcc, 0x61, 0x56, 0x9e, 0x84, 0x03, 0xd8, 0x56, + 0xff, 0x94, 0x13, 0x43, 0xe3, 0x8d, 0xaf, 0xbd, 0x79, 0xc0, 0xf6, 0x66, 0xf0, 0xf2, 0x0b, 0x4a, + 0x55, 0x4a, 0x9c, 0x15, 0x79, 0x56, 0x60, 0x2c, 0x13, 0x39, 0x17, 0xea, 0xf0, 0xed, 0x03, 0xcc, + 0x05, 0xf2, 0x28, 0x3c, 0xc9, 0x84, 0xd4, 0xfd, 0x37, 0x99, 0xc3, 0x28, 0x33, 0x4a, 0x67, 0x7d, + 0xa6, 0xbe, 0x4b, 0x91, 0x0e, 0x34, 0x64, 0x79, 0x83, 0x85, 0xae, 0xdd, 0x64, 0x06, 0xf4, 0x7e, + 0xad, 0x01, 0x7d, 0xbc, 0xa6, 0xa8, 0xd4, 0x89, 0x43, 0xce, 0x17, 0xc3, 0x36, 0x58, 0x0d, 0xd5, + 0xa4, 0xc8, 0xd5, 0xd6, 0xeb, 0x49, 0x0d, 0x22, 0x31, 0xb4, 0xc5, 0x3c, 0x4d, 0x51, 0x08, 0x63, + 0x0b, 0xf5, 0xb5, 0xd3, 0xef, 0xad, 0xd3, 0xab, 0x2a, 0x0d, 0x62, 0xf7, 0x23, 0xb6, 0xac, 0x41, + 0xce, 0xa1, 0x75, 0x9d, 0x64, 0x39, 0x8e, 0xad, 0xe6, 0x9a, 0xd6, 0x7c, 0xf7, 0x94, 0xe6, 0x50, + 0x7f, 0x13, 0xa2, 0x4c, 0xb2, 0x9c, 0x2d, 0x29, 0x04, 0xc7, 0xd0, 0xb6, 0x15, 0x4d, 0x58, 0xdd, + 0xbb, 0xca, 0x9e, 0x53, 0x7b, 0xbb, 0x17, 0x58, 0xcd, 0x2a, 0xb4, 0x6a, 0x3d, 0xab, 0x41, 0xc1, + 0x37, 0x68, 0xb9, 0x25, 0x54, 0x9e, 0x59, 0x88, 0x75, 0xd8, 0xa2, 0xe7, 0xbb, 0x18, 0xfc, 0xf0, + 0x16, 0xfd, 0x59, 0x0b, 0xee, 0xb5, 0xbd, 0x25, 0xed, 0x15, 0xbd, 0x91, 0x04, 0x3a, 0x63, 0xdd, + 0x55, 0x7d, 0xfb, 0x8c, 0x2f, 0xcf, 0x5c, 0x87, 0xf5, 0xee, 0x51, 0xa9, 0xc3, 0x9f, 0x1e, 0xbc, + 0x32, 0x1f, 0x8e, 0x50, 0x88, 0x64, 0x82, 0x4c, 0x69, 0xaa, 0xe7, 0x20, 0x4b, 0x91, 0x7c, 0x82, + 0xe6, 0xfd, 0xbd, 0x79, 0x61, 0xeb, 0xb9, 0xcf, 0x69, 0xd0, 0xf9, 0x9b, 0x14, 0x15, 0xf9, 0x0a, + 0x9d, 0xc7, 0xba, 0x22, 0xfb, 0xff, 0x6c, 0x79, 0x16, 0xbc, 0x7e, 0x62, 0xa4, 0xcf, 0xbb, 0xdf, + 0x77, 0x06, 0xe6, 0x99, 0x3f, 0xaa, 0xae, 0x74, 0xab, 0x57, 0xeb, 0xfa, 0xbd, 0xff, 0xf8, 0x27, + 0x00, 0x00, 0xff, 0xff, 0x91, 0xf2, 0x5c, 0xd7, 0x04, 0x06, 0x00, 0x00, } From 0f20e58a469f7509539e9e310de381ea2f96e2b8 Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Mon, 29 Nov 2021 15:03:19 +0800 Subject: [PATCH 111/814] not token --- pkg/proto/relay/relay.proto | 1 - 1 file changed, 1 deletion(-) diff --git a/pkg/proto/relay/relay.proto b/pkg/proto/relay/relay.proto index ff648f760..a3464e077 100644 --- a/pkg/proto/relay/relay.proto +++ b/pkg/proto/relay/relay.proto @@ -40,7 +40,6 @@ message SingleMsgToUser{ message GetUsersOnlineStatusReq{ repeated string userIDList = 1; string operationID = 2; - string token = 3; } message GetUsersOnlineStatusResp{ int32 errCode = 1; From c2a45cdbeb83c4f430643d53dbecdffa051ac580 Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Mon, 29 Nov 2021 16:26:57 +0800 Subject: [PATCH 112/814] get all node online user status --- internal/api/manage/management_user.go | 71 +++++++++++++++++++++++++ internal/msg_gateway/gate/rpc_server.go | 24 +++++++++ internal/push/logic/push_to_client.go | 3 +- pkg/common/constant/constant.go | 3 ++ 4 files changed, 100 insertions(+), 1 deletion(-) diff --git a/internal/api/manage/management_user.go b/internal/api/manage/management_user.go index dce66a41e..19b25e8a0 100644 --- a/internal/api/manage/management_user.go +++ b/internal/api/manage/management_user.go @@ -8,9 +8,13 @@ package manage import ( "Open_IM/pkg/common/config" + "Open_IM/pkg/common/constant" "Open_IM/pkg/common/log" + "Open_IM/pkg/common/token_verify" "Open_IM/pkg/grpc-etcdv3/getcdv3" + pbRelay "Open_IM/pkg/proto/relay" pbUser "Open_IM/pkg/proto/user" + "Open_IM/pkg/utils" "context" "github.com/gin-gonic/gin" "net/http" @@ -24,6 +28,10 @@ type paramsDeleteUsers struct { type paramsGetAllUsersUid struct { OperationID string `json:"operationID" binding:"required"` } +type paramsGetUsersOnlineStatus struct { + OperationID string `json:"operationID" binding:"required"` + UserIDList []string `json:"userIDList" binding:"required,lte=200"` +} func DeleteUser(c *gin.Context) { params := paramsDeleteUsers{} @@ -80,3 +88,66 @@ func GetAllUsersUid(c *gin.Context) { c.JSON(http.StatusOK, resp) } +func GetUsersOnlineStatus(c *gin.Context) { + params := paramsGetUsersOnlineStatus{} + if err := c.BindJSON(¶ms); err != nil { + c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": err.Error()}) + return + } + claims, err := token_verify.ParseToken(c.Request.Header.Get("token")) + if err != nil { + log.ErrorByKv("parse token failed", params.OperationID, "err", err.Error()) + c.JSON(http.StatusBadRequest, gin.H{"errCode": 401, "errMsg": err.Error()}) + return + } + if !utils.IsContain(claims.UID, config.Config.Manager.AppManagerUid) { + log.ErrorByKv(" Authentication failed", params.OperationID, "args", c) + c.JSON(http.StatusBadRequest, gin.H{"errCode": 402, "errMsg": "not authorized"}) + return + } + req := &pbRelay.GetUsersOnlineStatusReq{ + OperationID: params.OperationID, + UserIDList: params.UserIDList, + } + var wsResult []*pbRelay.GetUsersOnlineStatusResp_SuccessResult + var respResult []*pbRelay.GetUsersOnlineStatusResp_SuccessResult + flag := false + log.NewDebug(params.OperationID, "GetUsersOnlineStatus req come here", params.UserIDList) + grpcCons := getcdv3.GetConn4Unique(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImOnlineMessageRelayName) + for _, v := range grpcCons { + client := pbRelay.NewOnlineMessageRelayServiceClient(v) + reply, err := client.GetUsersOnlineStatus(context.Background(), req) + if err != nil { + log.NewError(params.OperationID, "GetUsersOnlineStatus rpc err", req.String(), err.Error()) + continue + } else { + if reply.ErrCode == 0 { + wsResult = append(wsResult, reply.SuccessResult...) + } + } + } + log.NewDebug(params.OperationID, "call GetUsersOnlineStatus rpc server is success", wsResult) + //Online data merge of each node + for _, v1 := range params.UserIDList { + flag = false + temp := new(pbRelay.GetUsersOnlineStatusResp_SuccessResult) + for _, v2 := range wsResult { + if v2.UserID == v1 { + flag = true + temp.UserID = v1 + temp.Status = constant.OnlineStatus + temp.DetailPlatformStatus = append(temp.DetailPlatformStatus, v2.DetailPlatformStatus...) + } + + } + if !flag { + temp.UserID = v1 + temp.Status = constant.OfflineStatus + } + respResult = append(respResult, temp) + } + log.NewDebug(params.OperationID, "Finished merged data", respResult) + resp := gin.H{"errCode": 0, "errMsg": "", "successResult": respResult} + c.JSON(http.StatusOK, resp) + +} diff --git a/internal/msg_gateway/gate/rpc_server.go b/internal/msg_gateway/gate/rpc_server.go index f87e8a4ff..7a0632fad 100644 --- a/internal/msg_gateway/gate/rpc_server.go +++ b/internal/msg_gateway/gate/rpc_server.go @@ -122,7 +122,31 @@ func (r *RPCServer) MsgToUser(_ context.Context, in *pbRelay.MsgToUserReq) (*pbR Resp: resp, }, nil } +func (r *RPCServer) GetUsersOnlineStatus(_ context.Context, req *pbRelay.GetUsersOnlineStatusReq) (*pbRelay.GetUsersOnlineStatusResp, error) { + log.NewDebug(req.OperationID, "rpc GetUsersOnlineStatus arrived server", req.String()) + var UIDAndPID []string + var resp pbRelay.GetUsersOnlineStatusResp + for _, v1 := range req.UserIDList { + userIDList := genUidPlatformArray(v1) + temp := new(pbRelay.GetUsersOnlineStatusResp_SuccessResult) + temp.UserID = v1 + for _, v2 := range userIDList { + UIDAndPID = strings.Split(v2, " ") + if conn := ws.getUserConn(v2); conn != nil { + ps := new(pbRelay.GetUsersOnlineStatusResp_SuccessDetail) + ps.Platform = UIDAndPID[1] + ps.Status = constant.OnlineStatus + temp.Status = constant.OnlineStatus + temp.DetailPlatformStatus = append(temp.DetailPlatformStatus, ps) + } + } + if temp.Status == constant.OnlineStatus { + resp.SuccessResult = append(resp.SuccessResult, temp) + } + } + return &resp, nil +} func sendMsgToUser(conn *UserConn, bMsg []byte, in *pbRelay.MsgToUserReq, RecvPlatForm, RecvID string) (ResultCode int64) { err := ws.writeMsg(conn, websocket.BinaryMessage, bMsg) if err != nil { diff --git a/internal/push/logic/push_to_client.go b/internal/push/logic/push_to_client.go index 21916a68d..c2d986a59 100644 --- a/internal/push/logic/push_to_client.go +++ b/internal/push/logic/push_to_client.go @@ -48,8 +48,9 @@ func MsgToUser(sendPbData *pbRelay.MsgToUserReq, OfflineInfo, Options string) { reply, err := msgClient.MsgToUser(context.Background(), sendPbData) if err != nil { log.InfoByKv("push data to client rpc err", sendPbData.OperationID, "err", err) + continue } - if reply != nil && reply.Resp != nil && err == nil { + if reply != nil && reply.Resp != nil { wsResult = append(wsResult, reply.Resp...) } } diff --git a/pkg/common/constant/constant.go b/pkg/common/constant/constant.go index 00c73ff4e..39487fcd0 100644 --- a/pkg/common/constant/constant.go +++ b/pkg/common/constant/constant.go @@ -86,6 +86,9 @@ const ( WebAndOther = 3 //Pc端互斥,移动端互斥,但是web端可以同时在线 PcMobileAndWeb = 4 + + OnlineStatus = "Online" + OfflineStatus = "Offline" ) var ContentType2PushContent = map[int64]string{ From 6712d65de4f2b1b5bc2bb5609290af556330cfa2 Mon Sep 17 00:00:00 2001 From: root Date: Mon, 29 Nov 2021 16:31:13 +0800 Subject: [PATCH 113/814] pbfile --- pkg/proto/relay/relay.pb.go | 112 +++++++++++++++++------------------- 1 file changed, 52 insertions(+), 60 deletions(-) diff --git a/pkg/proto/relay/relay.pb.go b/pkg/proto/relay/relay.pb.go index 7b7a674c6..d56aae9e0 100644 --- a/pkg/proto/relay/relay.pb.go +++ b/pkg/proto/relay/relay.pb.go @@ -47,7 +47,7 @@ func (m *MsgToUserReq) Reset() { *m = MsgToUserReq{} } func (m *MsgToUserReq) String() string { return proto.CompactTextString(m) } func (*MsgToUserReq) ProtoMessage() {} func (*MsgToUserReq) Descriptor() ([]byte, []int) { - return fileDescriptor_relay_3a61ef77452a8c73, []int{0} + return fileDescriptor_relay_709d2b3cc3a7ad83, []int{0} } func (m *MsgToUserReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MsgToUserReq.Unmarshal(m, b) @@ -176,7 +176,7 @@ func (m *MsgToUserResp) Reset() { *m = MsgToUserResp{} } func (m *MsgToUserResp) String() string { return proto.CompactTextString(m) } func (*MsgToUserResp) ProtoMessage() {} func (*MsgToUserResp) Descriptor() ([]byte, []int) { - return fileDescriptor_relay_3a61ef77452a8c73, []int{1} + return fileDescriptor_relay_709d2b3cc3a7ad83, []int{1} } func (m *MsgToUserResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MsgToUserResp.Unmarshal(m, b) @@ -227,7 +227,7 @@ func (m *SingleMsgToUser) Reset() { *m = SingleMsgToUser{} } func (m *SingleMsgToUser) String() string { return proto.CompactTextString(m) } func (*SingleMsgToUser) ProtoMessage() {} func (*SingleMsgToUser) Descriptor() ([]byte, []int) { - return fileDescriptor_relay_3a61ef77452a8c73, []int{2} + return fileDescriptor_relay_709d2b3cc3a7ad83, []int{2} } func (m *SingleMsgToUser) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SingleMsgToUser.Unmarshal(m, b) @@ -271,7 +271,6 @@ func (m *SingleMsgToUser) GetRecvPlatFormID() int32 { type GetUsersOnlineStatusReq struct { UserIDList []string `protobuf:"bytes,1,rep,name=userIDList" json:"userIDList,omitempty"` OperationID string `protobuf:"bytes,2,opt,name=operationID" json:"operationID,omitempty"` - Token string `protobuf:"bytes,3,opt,name=token" json:"token,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -281,7 +280,7 @@ func (m *GetUsersOnlineStatusReq) Reset() { *m = GetUsersOnlineStatusReq func (m *GetUsersOnlineStatusReq) String() string { return proto.CompactTextString(m) } func (*GetUsersOnlineStatusReq) ProtoMessage() {} func (*GetUsersOnlineStatusReq) Descriptor() ([]byte, []int) { - return fileDescriptor_relay_3a61ef77452a8c73, []int{3} + return fileDescriptor_relay_709d2b3cc3a7ad83, []int{3} } func (m *GetUsersOnlineStatusReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetUsersOnlineStatusReq.Unmarshal(m, b) @@ -315,13 +314,6 @@ func (m *GetUsersOnlineStatusReq) GetOperationID() string { return "" } -func (m *GetUsersOnlineStatusReq) GetToken() string { - if m != nil { - return m.Token - } - return "" -} - type GetUsersOnlineStatusResp struct { ErrCode int32 `protobuf:"varint,1,opt,name=errCode" json:"errCode,omitempty"` ErrMsg string `protobuf:"bytes,2,opt,name=errMsg" json:"errMsg,omitempty"` @@ -336,7 +328,7 @@ func (m *GetUsersOnlineStatusResp) Reset() { *m = GetUsersOnlineStatusRe func (m *GetUsersOnlineStatusResp) String() string { return proto.CompactTextString(m) } func (*GetUsersOnlineStatusResp) ProtoMessage() {} func (*GetUsersOnlineStatusResp) Descriptor() ([]byte, []int) { - return fileDescriptor_relay_3a61ef77452a8c73, []int{4} + return fileDescriptor_relay_709d2b3cc3a7ad83, []int{4} } func (m *GetUsersOnlineStatusResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetUsersOnlineStatusResp.Unmarshal(m, b) @@ -398,7 +390,7 @@ func (m *GetUsersOnlineStatusResp_SuccessDetail) Reset() { func (m *GetUsersOnlineStatusResp_SuccessDetail) String() string { return proto.CompactTextString(m) } func (*GetUsersOnlineStatusResp_SuccessDetail) ProtoMessage() {} func (*GetUsersOnlineStatusResp_SuccessDetail) Descriptor() ([]byte, []int) { - return fileDescriptor_relay_3a61ef77452a8c73, []int{4, 0} + return fileDescriptor_relay_709d2b3cc3a7ad83, []int{4, 0} } func (m *GetUsersOnlineStatusResp_SuccessDetail) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetUsersOnlineStatusResp_SuccessDetail.Unmarshal(m, b) @@ -445,7 +437,7 @@ func (m *GetUsersOnlineStatusResp_FailedDetail) Reset() { *m = GetUsersO func (m *GetUsersOnlineStatusResp_FailedDetail) String() string { return proto.CompactTextString(m) } func (*GetUsersOnlineStatusResp_FailedDetail) ProtoMessage() {} func (*GetUsersOnlineStatusResp_FailedDetail) Descriptor() ([]byte, []int) { - return fileDescriptor_relay_3a61ef77452a8c73, []int{4, 1} + return fileDescriptor_relay_709d2b3cc3a7ad83, []int{4, 1} } func (m *GetUsersOnlineStatusResp_FailedDetail) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetUsersOnlineStatusResp_FailedDetail.Unmarshal(m, b) @@ -501,7 +493,7 @@ func (m *GetUsersOnlineStatusResp_SuccessResult) Reset() { func (m *GetUsersOnlineStatusResp_SuccessResult) String() string { return proto.CompactTextString(m) } func (*GetUsersOnlineStatusResp_SuccessResult) ProtoMessage() {} func (*GetUsersOnlineStatusResp_SuccessResult) Descriptor() ([]byte, []int) { - return fileDescriptor_relay_3a61ef77452a8c73, []int{4, 2} + return fileDescriptor_relay_709d2b3cc3a7ad83, []int{4, 2} } func (m *GetUsersOnlineStatusResp_SuccessResult) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetUsersOnlineStatusResp_SuccessResult.Unmarshal(m, b) @@ -658,48 +650,48 @@ var _OnlineMessageRelayService_serviceDesc = grpc.ServiceDesc{ Metadata: "relay/relay.proto", } -func init() { proto.RegisterFile("relay/relay.proto", fileDescriptor_relay_3a61ef77452a8c73) } - -var fileDescriptor_relay_3a61ef77452a8c73 = []byte{ - // 636 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x94, 0x54, 0x4f, 0x4f, 0xdb, 0x4e, - 0x10, 0x95, 0x7f, 0x26, 0x40, 0x86, 0x04, 0x7e, 0x6c, 0x23, 0xba, 0xf5, 0x81, 0x46, 0x51, 0x85, - 0xa2, 0xaa, 0x4d, 0x25, 0x2a, 0xf5, 0xc2, 0xad, 0x58, 0xa9, 0x2c, 0x11, 0x40, 0x6b, 0x50, 0xab, - 0xde, 0x8c, 0x33, 0x44, 0x16, 0x8e, 0xed, 0xec, 0x6e, 0x90, 0xf8, 0x3a, 0x3d, 0xf7, 0xde, 0x6b, - 0x3f, 0x5a, 0xb5, 0x7f, 0x1c, 0x36, 0x94, 0x14, 0x71, 0x89, 0xf2, 0xde, 0x8c, 0xdf, 0xcc, 0xbc, - 0xd9, 0x5d, 0xd8, 0xe5, 0x98, 0x27, 0x77, 0x1f, 0xf4, 0xef, 0xa0, 0xe2, 0xa5, 0x2c, 0x49, 0x43, - 0x83, 0xde, 0x6f, 0x1f, 0x5a, 0x23, 0x31, 0xb9, 0x28, 0x2f, 0x05, 0x72, 0x86, 0x33, 0xb2, 0x07, - 0xeb, 0x31, 0x16, 0xe3, 0x28, 0xa4, 0x5e, 0xd7, 0xeb, 0x37, 0x99, 0x45, 0x8a, 0x67, 0x98, 0xde, - 0x46, 0x21, 0xfd, 0xcf, 0xf0, 0x06, 0x11, 0x0a, 0x1b, 0xc7, 0x65, 0x21, 0xb1, 0x90, 0xb4, 0xa1, - 0x03, 0x35, 0x54, 0x11, 0x95, 0x13, 0xe3, 0x8c, 0xae, 0x77, 0xbd, 0xbe, 0xcf, 0x6a, 0x48, 0x02, - 0xd8, 0x54, 0xaa, 0x17, 0xd9, 0x14, 0xe9, 0x86, 0x0e, 0x2d, 0xb0, 0xfa, 0x6a, 0x24, 0x26, 0x43, - 0x5e, 0x4e, 0xe9, 0x66, 0xd7, 0xeb, 0x37, 0x58, 0x0d, 0x49, 0x17, 0xb6, 0xac, 0xf4, 0xc5, 0x5d, - 0x85, 0xb4, 0xa9, 0xa3, 0x2e, 0xa5, 0x32, 0x62, 0x14, 0x22, 0x2b, 0x0b, 0x9d, 0x01, 0x26, 0xc3, - 0xa1, 0x54, 0xc6, 0x59, 0x85, 0x3c, 0x91, 0x59, 0x59, 0x44, 0x21, 0xdd, 0xd2, 0x1d, 0xbb, 0x94, - 0xd1, 0xe0, 0xb7, 0xc8, 0x47, 0x62, 0x12, 0x85, 0xb4, 0x65, 0x32, 0x1c, 0x8a, 0xec, 0x03, 0x9c, - 0xe7, 0x89, 0xbc, 0x2e, 0xf9, 0x34, 0x0a, 0x69, 0x5b, 0x17, 0x71, 0x18, 0x72, 0x00, 0xdb, 0x6a, - 0x1a, 0xe4, 0xa7, 0x59, 0x7a, 0x73, 0x9a, 0x4c, 0x91, 0x6e, 0x6b, 0x91, 0x07, 0x2c, 0x79, 0x03, - 0x6d, 0xc3, 0x0c, 0x93, 0x14, 0x2f, 0xd9, 0x09, 0xdd, 0xd1, 0x69, 0xcb, 0xa4, 0x9e, 0x3a, 0xcf, - 0xb0, 0x90, 0xa6, 0x9f, 0xff, 0x4d, 0x3f, 0x0e, 0xd5, 0x3b, 0x82, 0xb6, 0xb3, 0x41, 0x51, 0x91, - 0xb7, 0xb0, 0xc6, 0x51, 0x54, 0xd4, 0xeb, 0xfa, 0xfd, 0xad, 0xc3, 0xbd, 0x81, 0x59, 0x7b, 0x9c, - 0x15, 0x93, 0x1c, 0xef, 0x33, 0x75, 0x4e, 0x6f, 0x06, 0x3b, 0x0f, 0x02, 0x6a, 0x3e, 0x86, 0x62, - 0x9e, 0xcb, 0xe3, 0x72, 0x8c, 0xfa, 0x14, 0xf8, 0xcc, 0x61, 0x56, 0x9e, 0x84, 0x03, 0xd8, 0x56, - 0xff, 0x94, 0x13, 0x43, 0xe3, 0x8d, 0xaf, 0xbd, 0x79, 0xc0, 0xf6, 0x66, 0xf0, 0xf2, 0x0b, 0x4a, - 0x55, 0x4a, 0x9c, 0x15, 0x79, 0x56, 0x60, 0x2c, 0x13, 0x39, 0x17, 0xea, 0xf0, 0xed, 0x03, 0xcc, - 0x05, 0xf2, 0x28, 0x3c, 0xc9, 0x84, 0xd4, 0xfd, 0x37, 0x99, 0xc3, 0x28, 0x33, 0x4a, 0x67, 0x7d, - 0xa6, 0xbe, 0x4b, 0x91, 0x0e, 0x34, 0x64, 0x79, 0x83, 0x85, 0xae, 0xdd, 0x64, 0x06, 0xf4, 0x7e, - 0xad, 0x01, 0x7d, 0xbc, 0xa6, 0xa8, 0xd4, 0x89, 0x43, 0xce, 0x17, 0xc3, 0x36, 0x58, 0x0d, 0xd5, - 0xa4, 0xc8, 0xd5, 0xd6, 0xeb, 0x49, 0x0d, 0x22, 0x31, 0xb4, 0xc5, 0x3c, 0x4d, 0x51, 0x08, 0x63, - 0x0b, 0xf5, 0xb5, 0xd3, 0xef, 0xad, 0xd3, 0xab, 0x2a, 0x0d, 0x62, 0xf7, 0x23, 0xb6, 0xac, 0x41, - 0xce, 0xa1, 0x75, 0x9d, 0x64, 0x39, 0x8e, 0xad, 0xe6, 0x9a, 0xd6, 0x7c, 0xf7, 0x94, 0xe6, 0x50, - 0x7f, 0x13, 0xa2, 0x4c, 0xb2, 0x9c, 0x2d, 0x29, 0x04, 0xc7, 0xd0, 0xb6, 0x15, 0x4d, 0x58, 0xdd, - 0xbb, 0xca, 0x9e, 0x53, 0x7b, 0xbb, 0x17, 0x58, 0xcd, 0x2a, 0xb4, 0x6a, 0x3d, 0xab, 0x41, 0xc1, - 0x37, 0x68, 0xb9, 0x25, 0x54, 0x9e, 0x59, 0x88, 0x75, 0xd8, 0xa2, 0xe7, 0xbb, 0x18, 0xfc, 0xf0, - 0x16, 0xfd, 0x59, 0x0b, 0xee, 0xb5, 0xbd, 0x25, 0xed, 0x15, 0xbd, 0x91, 0x04, 0x3a, 0x63, 0xdd, - 0x55, 0x7d, 0xfb, 0x8c, 0x2f, 0xcf, 0x5c, 0x87, 0xf5, 0xee, 0x51, 0xa9, 0xc3, 0x9f, 0x1e, 0xbc, - 0x32, 0x1f, 0x8e, 0x50, 0x88, 0x64, 0x82, 0x4c, 0x69, 0xaa, 0xe7, 0x20, 0x4b, 0x91, 0x7c, 0x82, - 0xe6, 0xfd, 0xbd, 0x79, 0x61, 0xeb, 0xb9, 0xcf, 0x69, 0xd0, 0xf9, 0x9b, 0x14, 0x15, 0xf9, 0x0a, - 0x9d, 0xc7, 0xba, 0x22, 0xfb, 0xff, 0x6c, 0x79, 0x16, 0xbc, 0x7e, 0x62, 0xa4, 0xcf, 0xbb, 0xdf, - 0x77, 0x06, 0xe6, 0x99, 0x3f, 0xaa, 0xae, 0x74, 0xab, 0x57, 0xeb, 0xfa, 0xbd, 0xff, 0xf8, 0x27, - 0x00, 0x00, 0xff, 0xff, 0x91, 0xf2, 0x5c, 0xd7, 0x04, 0x06, 0x00, 0x00, +func init() { proto.RegisterFile("relay/relay.proto", fileDescriptor_relay_709d2b3cc3a7ad83) } + +var fileDescriptor_relay_709d2b3cc3a7ad83 = []byte{ + // 628 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x94, 0x54, 0x41, 0x6b, 0xdb, 0x4c, + 0x10, 0x45, 0x9f, 0xe2, 0x24, 0x9e, 0xd8, 0xc9, 0x97, 0x6d, 0x48, 0xb7, 0x3a, 0xa4, 0xc6, 0x94, + 0x60, 0x4a, 0xeb, 0x42, 0x0a, 0xbd, 0xe4, 0x56, 0x0b, 0x17, 0x41, 0x9c, 0x84, 0x95, 0x43, 0x4b, + 0x7b, 0x52, 0xe4, 0x89, 0x11, 0x95, 0x25, 0x79, 0x77, 0x1d, 0xc8, 0xdf, 0xe9, 0xb9, 0xf7, 0x5e, + 0xfb, 0xd3, 0xca, 0xee, 0x4a, 0xf6, 0xda, 0xb5, 0x1b, 0x72, 0x31, 0x7e, 0x6f, 0x66, 0xdf, 0xcc, + 0xbc, 0xd9, 0x15, 0x1c, 0x72, 0x4c, 0xa3, 0x87, 0x77, 0xfa, 0xb7, 0x5b, 0xf0, 0x5c, 0xe6, 0xa4, + 0xa6, 0x41, 0xfb, 0xb7, 0x0b, 0x8d, 0x81, 0x18, 0x0f, 0xf3, 0x1b, 0x81, 0x9c, 0xe1, 0x94, 0x1c, + 0xc3, 0x76, 0x88, 0xd9, 0x28, 0xf0, 0xa9, 0xd3, 0x72, 0x3a, 0x75, 0x56, 0x22, 0xc5, 0x33, 0x8c, + 0xef, 0x03, 0x9f, 0xfe, 0x67, 0x78, 0x83, 0x08, 0x85, 0x9d, 0x5e, 0x9e, 0x49, 0xcc, 0x24, 0xad, + 0xe9, 0x40, 0x05, 0x55, 0x44, 0xe5, 0x84, 0x38, 0xa5, 0xdb, 0x2d, 0xa7, 0xe3, 0xb2, 0x0a, 0x12, + 0x0f, 0x76, 0x95, 0xea, 0x30, 0x99, 0x20, 0xdd, 0xd1, 0xa1, 0x39, 0x56, 0xa7, 0x06, 0x62, 0xdc, + 0xe7, 0xf9, 0x84, 0xee, 0xb6, 0x9c, 0x4e, 0x8d, 0x55, 0x90, 0xb4, 0x60, 0xaf, 0x94, 0x1e, 0x3e, + 0x14, 0x48, 0xeb, 0x3a, 0x6a, 0x53, 0x2a, 0x23, 0x44, 0x21, 0x92, 0x3c, 0xd3, 0x19, 0x60, 0x32, + 0x2c, 0x4a, 0x65, 0x5c, 0x15, 0xc8, 0x23, 0x99, 0xe4, 0x59, 0xe0, 0xd3, 0x3d, 0xdd, 0xb1, 0x4d, + 0x19, 0x0d, 0x7e, 0x8f, 0x7c, 0x20, 0xc6, 0x81, 0x4f, 0x1b, 0x26, 0xc3, 0xa2, 0xc8, 0x09, 0xc0, + 0x75, 0x1a, 0xc9, 0xbb, 0x9c, 0x4f, 0x02, 0x9f, 0x36, 0x75, 0x11, 0x8b, 0x21, 0xa7, 0xb0, 0xaf, + 0xa6, 0x41, 0x7e, 0x99, 0xc4, 0xdf, 0x2f, 0xa3, 0x09, 0xd2, 0x7d, 0x2d, 0xb2, 0xc2, 0x92, 0x57, + 0xd0, 0x34, 0x4c, 0x3f, 0x8a, 0xf1, 0x86, 0x5d, 0xd0, 0x03, 0x9d, 0xb6, 0x4c, 0xea, 0xa9, 0xd3, + 0x04, 0x33, 0x69, 0xfa, 0xf9, 0xdf, 0xf4, 0x63, 0x51, 0xed, 0x73, 0x68, 0x5a, 0x1b, 0x14, 0x05, + 0x79, 0x0d, 0x5b, 0x1c, 0x45, 0x41, 0x9d, 0x96, 0xdb, 0xd9, 0x3b, 0x3b, 0xee, 0x9a, 0xb5, 0x87, + 0x49, 0x36, 0x4e, 0x71, 0x91, 0xa9, 0x73, 0xda, 0x53, 0x38, 0x58, 0x09, 0xa8, 0xf9, 0x18, 0x8a, + 0x59, 0x2a, 0x7b, 0xf9, 0x08, 0xf5, 0x2d, 0x70, 0x99, 0xc5, 0x6c, 0xbc, 0x09, 0xa7, 0xb0, 0xaf, + 0xfe, 0x29, 0x27, 0xfa, 0xc6, 0x1b, 0x57, 0x7b, 0xb3, 0xc2, 0xb6, 0xbf, 0xc1, 0xf3, 0x4f, 0x28, + 0x55, 0x29, 0x71, 0x95, 0xa5, 0x49, 0x86, 0xa1, 0x8c, 0xe4, 0x4c, 0xa8, 0xcb, 0x77, 0x02, 0x30, + 0x13, 0xc8, 0x03, 0xff, 0x22, 0x11, 0x52, 0xf7, 0x5f, 0x67, 0x16, 0xa3, 0xcc, 0xc8, 0xad, 0xf5, + 0x99, 0xfa, 0x36, 0xd5, 0xfe, 0xb5, 0x05, 0x74, 0xbd, 0xba, 0x28, 0xd4, 0xdd, 0x42, 0xce, 0xe7, + 0x63, 0xd5, 0x58, 0x05, 0xd5, 0x4c, 0xc8, 0xd5, 0x7e, 0xab, 0x99, 0x0c, 0x22, 0x21, 0x34, 0xc5, + 0x2c, 0x8e, 0x51, 0x08, 0x63, 0x00, 0x75, 0xb5, 0xa7, 0x6f, 0x4b, 0x4f, 0x37, 0x55, 0xea, 0x86, + 0xf6, 0x21, 0xb6, 0xac, 0x41, 0xae, 0xa1, 0x71, 0x17, 0x25, 0x29, 0x8e, 0x4a, 0xcd, 0x2d, 0xad, + 0xf9, 0xe6, 0x31, 0xcd, 0xbe, 0x3e, 0xe3, 0xa3, 0x8c, 0x92, 0x94, 0x2d, 0x29, 0x78, 0x3d, 0x68, + 0x96, 0x15, 0x4d, 0x58, 0xbd, 0xb0, 0xa2, 0xbc, 0x91, 0xe5, 0x3b, 0x9e, 0x63, 0x35, 0xab, 0xd0, + 0xaa, 0xd5, 0xac, 0x06, 0x79, 0x5f, 0xa0, 0x61, 0x97, 0x50, 0x79, 0xc6, 0x7a, 0xbd, 0xc7, 0x3a, + 0x2b, 0xd1, 0xd3, 0x5d, 0xf4, 0x7e, 0x38, 0xf3, 0xfe, 0x4a, 0x0b, 0x16, 0xda, 0xce, 0x92, 0xf6, + 0x86, 0xde, 0x48, 0x04, 0x47, 0x23, 0xdd, 0x55, 0xf5, 0xce, 0x8c, 0x2f, 0x4f, 0x5c, 0x47, 0xe9, + 0xdd, 0x5a, 0xa9, 0xb3, 0x9f, 0x0e, 0xbc, 0x30, 0x07, 0x07, 0x28, 0x44, 0x34, 0x46, 0xa6, 0x34, + 0xd5, 0xc3, 0x4f, 0x62, 0x24, 0x1f, 0xa0, 0xbe, 0x78, 0x21, 0xcf, 0xca, 0x7a, 0xf6, 0x87, 0xd3, + 0x3b, 0xfa, 0x9b, 0x14, 0x05, 0xf9, 0x0c, 0x47, 0xeb, 0xba, 0x22, 0x27, 0xff, 0x6c, 0x79, 0xea, + 0xbd, 0x7c, 0x64, 0xa4, 0x8f, 0x87, 0x5f, 0x0f, 0xba, 0xe6, 0x83, 0x7e, 0x5e, 0xdc, 0xea, 0x56, + 0x6f, 0xb7, 0xf5, 0x97, 0xfd, 0xfd, 0x9f, 0x00, 0x00, 0x00, 0xff, 0xff, 0x4e, 0xe4, 0x7c, 0xdc, + 0xee, 0x05, 0x00, 0x00, } From c9b3a017a48b19aef32e7dc74a9b619b0a2fc906 Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Mon, 29 Nov 2021 16:43:22 +0800 Subject: [PATCH 114/814] get all node online user status --- docker-compose.yaml | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/docker-compose.yaml b/docker-compose.yaml index 3a3bd94b0..ba1e31df1 100644 --- a/docker-compose.yaml +++ b/docker-compose.yaml @@ -21,12 +21,12 @@ services: - 37017:27017 container_name: mongo volumes: - # - ./components/mongodb/data/db:/data/db - # - ./components/mongodb/data/logs:/data/logs - # - ./components/mongodb/data/conf:/etc/mongo - environment: - - MONGO_INITDB_ROOT_USERNAME=openIM - - MONGO_INITDB_ROOT_PASSWORD=openIM + - ./components/mongodb/data/db:/data/db + - ./components/mongodb/data/logs:/data/logs + - ./components/mongodb/data/conf:/etc/mongo +# environment: +# - MONGO_INITDB_ROOT_USERNAME=openIM +# - MONGO_INITDB_ROOT_PASSWORD=openIM #TZ: Asia/Shanghai restart: always From 4a66911a616a2d5ecf6529c2a07527caac297d82 Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Mon, 29 Nov 2021 17:22:23 +0800 Subject: [PATCH 115/814] get all node online user status --- cmd/open_im_api/main.go | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/cmd/open_im_api/main.go b/cmd/open_im_api/main.go index 14c8e1e38..6d6bf85c4 100644 --- a/cmd/open_im_api/main.go +++ b/cmd/open_im_api/main.go @@ -94,7 +94,15 @@ func main() { managementGroup.POST("/delete_user", manage.DeleteUser) managementGroup.POST("/send_msg", manage.ManagementSendMsg) managementGroup.POST("/get_all_users_uid", manage.GetAllUsersUid) + managementGroup.POST("/get_users_online_status", manage.GetUsersOnlineStatus) } + //Conversation + conversationGroup := r.Group("/conversation") + { + conversationGroup.POST("/delete_user", manage.DeleteUser) + + } + log.NewPrivateLog("api") ginPort := flag.Int("port", 10000, "get ginServerPort from cmd,default 10000 as port") flag.Parse() From aff733bbd9779b295afb4438860f3055554faeea Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Mon, 29 Nov 2021 18:24:39 +0800 Subject: [PATCH 116/814] constan --- cmd/Open-IM-SDK-Core | 2 +- pkg/common/constant/constant.go | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/cmd/Open-IM-SDK-Core b/cmd/Open-IM-SDK-Core index 610fc07d4..0e5729141 160000 --- a/cmd/Open-IM-SDK-Core +++ b/cmd/Open-IM-SDK-Core @@ -1 +1 @@ -Subproject commit 610fc07d46dd0ee52428bf429beb80a515e6b872 +Subproject commit 0e57291413f3cccd365c6947875387638349276a diff --git a/pkg/common/constant/constant.go b/pkg/common/constant/constant.go index 39487fcd0..42a4d07c3 100644 --- a/pkg/common/constant/constant.go +++ b/pkg/common/constant/constant.go @@ -87,8 +87,8 @@ const ( //Pc端互斥,移动端互斥,但是web端可以同时在线 PcMobileAndWeb = 4 - OnlineStatus = "Online" - OfflineStatus = "Offline" + OnlineStatus = "online" + OfflineStatus = "offline" ) var ContentType2PushContent = map[int64]string{ From b02830c8916547b5a952bd9cb7b63f3b0e656385 Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Tue, 30 Nov 2021 15:37:51 +0800 Subject: [PATCH 117/814] token modify --- internal/utils/jwt_token_test.go | 6 ++++++ pkg/common/token_verify/jwt_token.go | 8 ++++---- 2 files changed, 10 insertions(+), 4 deletions(-) diff --git a/internal/utils/jwt_token_test.go b/internal/utils/jwt_token_test.go index 721df496e..2c6550d87 100644 --- a/internal/utils/jwt_token_test.go +++ b/internal/utils/jwt_token_test.go @@ -81,3 +81,9 @@ func Test_ParseToken(t *testing.T) { assert.Equal(t, claims.UID, uid) } } +func Test_GetClaimFromToken(t *testing.T) { + token := "eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJVSUQiOiJvcGVuSU0xMjM0NTYiLCJQbGF0Zm9ybSI6IiIsImV4cCI6MTYzODg0NjQ3NiwibmJmIjoxNjM4MjQxNjc2LCJpYXQiOjE2MzgyNDE2NzZ9.W8RZB7ec5ySFj-rGE2Aho2z32g3MprQMdCyPiQu_C2I" + c, err := token_verify.GetClaimFromToken(token) + assert.Nil(t, c) + assert.Nil(t, err) +} diff --git a/pkg/common/token_verify/jwt_token.go b/pkg/common/token_verify/jwt_token.go index 2f5f32c23..961919605 100644 --- a/pkg/common/token_verify/jwt_token.go +++ b/pkg/common/token_verify/jwt_token.go @@ -55,7 +55,7 @@ func secret() jwt.Keyfunc { } } -func getClaimFromToken(tokensString string) (*Claims, error) { +func GetClaimFromToken(tokensString string) (*Claims, error) { token, err := jwt.ParseWithClaims(tokensString, &Claims{}, secret()) if err != nil { if ve, ok := err.(*jwt.ValidationError); ok { @@ -82,7 +82,7 @@ func getClaimFromToken(tokensString string) (*Claims, error) { func ParseToken(tokensString string) (claims *Claims, err error) { - claims, err = getClaimFromToken(tokensString) + claims, err = GetClaimFromToken(tokensString) if err != nil { log.NewError("", "token validate err", err.Error()) return nil, err @@ -112,7 +112,7 @@ func ParseToken(tokensString string) (claims *Claims, err error) { return nil, &constant.ErrTokenUnknown } } - return nil, err + return nil, &constant.ErrTokenUnknown } //func MakeTheTokenInvalid(currentClaims *Claims, platformClass string) (bool, error) { @@ -132,7 +132,7 @@ func ParseToken(tokensString string) (claims *Claims, err error) { //} func ParseRedisInterfaceToken(redisToken interface{}) (*Claims, error) { - return getClaimFromToken(string(redisToken.([]uint8))) + return GetClaimFromToken(string(redisToken.([]uint8))) } //Validation token, false means failure, true means successful verification From f18f54afc6e453a7cd5cf8028f0e9d01c110cae1 Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Tue, 30 Nov 2021 19:35:55 +0800 Subject: [PATCH 118/814] test modify --- pkg/common/db/redisModel_test.go | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 pkg/common/db/redisModel_test.go diff --git a/pkg/common/db/redisModel_test.go b/pkg/common/db/redisModel_test.go new file mode 100644 index 000000000..1fddeb948 --- /dev/null +++ b/pkg/common/db/redisModel_test.go @@ -0,0 +1,20 @@ +package db + +import ( + "fmt" + "github.com/stretchr/testify/assert" + "testing" +) + +func Test_SetTokenMapByUidPid(t *testing.T) { + m := make(map[string]int, 0) + m["哈哈"] = 1 + m["heihei"] = 2 + _ = DB.SetTokenMapByUidPid("1234", 2, m) + +} +func Test_GetTokenMapByUidPid(t *testing.T) { + m, err := DB.GetTokenMapByUidPid("1234", "Android") + assert.Nil(t, err) + fmt.Println(m) +} From b416cd380a60c04015ac873e2372aac7285f6ab6 Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Tue, 30 Nov 2021 19:37:14 +0800 Subject: [PATCH 119/814] test modify --- pkg/common/db/redisModel.go | 32 ++++++-------------------------- 1 file changed, 6 insertions(+), 26 deletions(-) diff --git a/pkg/common/db/redisModel.go b/pkg/common/db/redisModel.go index 6e0848e81..c28f67f3f 100644 --- a/pkg/common/db/redisModel.go +++ b/pkg/common/db/redisModel.go @@ -3,7 +3,6 @@ package db import ( "Open_IM/pkg/common/constant" log2 "Open_IM/pkg/common/log" - "Open_IM/pkg/utils" "github.com/garyburd/redigo/redis" ) @@ -77,38 +76,19 @@ func (d *DataBases) DelAppleDeviceToken(accountAddress string) (err error) { //Store userid and platform class to redis func (d *DataBases) AddTokenFlag(userID string, platformID int32, token string, flag int) error { key := uidPidToken + userID + ":" + constant.PlatformIDToName(platformID) - var m map[string]int - m = make(map[string]int) - ls, err := redis.String(d.Exec("GET", key)) - if err != nil && err != redis.ErrNil { - return err - } - if err == redis.ErrNil { - } else { - _ = utils.JsonStringToStruct(ls, &m) - } - m[token] = flag - s := utils.StructToJsonString(m) - _, err1 := d.Exec("SET", key, s) + log2.NewDebug("", "add token key is ", key) + _, err1 := d.Exec("HSet", key, token, flag) return err1 } -func (d *DataBases) GetTokenMapByUidPid(userID, platformID string) (m map[string]int, e error) { +func (d *DataBases) GetTokenMapByUidPid(userID, platformID string) (map[string]int, error) { key := uidPidToken + userID + ":" + platformID - log2.NewDebug("", "key is ", key) - s, e := redis.String(d.Exec("GET", key)) - if e != nil { - return nil, e - } else { - m = make(map[string]int) - _ = utils.JsonStringToStruct(s, &m) - return m, nil - } + log2.NewDebug("", "get token key is ", key) + return redis.IntMap(d.Exec("HGETALL", key)) } func (d *DataBases) SetTokenMapByUidPid(userID string, platformID int32, m map[string]int) error { key := uidPidToken + userID + ":" + constant.PlatformIDToName(platformID) - s := utils.StructToJsonString(m) - _, err := d.Exec("SET", key, s) + _, err := d.Exec("SET", key, m) return err } From 2be1e1a70d730e5decec8904cd401a0a0a5a9998 Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Tue, 30 Nov 2021 19:52:14 +0800 Subject: [PATCH 120/814] test modify --- pkg/common/db/redisModel.go | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/pkg/common/db/redisModel.go b/pkg/common/db/redisModel.go index c28f67f3f..97ad066bc 100644 --- a/pkg/common/db/redisModel.go +++ b/pkg/common/db/redisModel.go @@ -88,7 +88,12 @@ func (d *DataBases) GetTokenMapByUidPid(userID, platformID string) (map[string]i } func (d *DataBases) SetTokenMapByUidPid(userID string, platformID int32, m map[string]int) error { key := uidPidToken + userID + ":" + constant.PlatformIDToName(platformID) - _, err := d.Exec("SET", key, m) + var a []interface{} + for k, v := range m { + a = append(a, k) + a = append(a, v) + } + _, err := d.Exec("HMSET", key, a...) return err } From b2f5f56fa016bb2ab68edf4ecfae283fba13f1ec Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Tue, 30 Nov 2021 19:54:27 +0800 Subject: [PATCH 121/814] test modify --- pkg/common/db/redisModel.go | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/pkg/common/db/redisModel.go b/pkg/common/db/redisModel.go index 97ad066bc..838b8e5f6 100644 --- a/pkg/common/db/redisModel.go +++ b/pkg/common/db/redisModel.go @@ -88,12 +88,12 @@ func (d *DataBases) GetTokenMapByUidPid(userID, platformID string) (map[string]i } func (d *DataBases) SetTokenMapByUidPid(userID string, platformID int32, m map[string]int) error { key := uidPidToken + userID + ":" + constant.PlatformIDToName(platformID) - var a []interface{} - for k, v := range m { - a = append(a, k) - a = append(a, v) - } - _, err := d.Exec("HMSET", key, a...) + //var a []interface{} + //for k, v := range m { + // a = append(a, k) + // a = append(a, v) + //} + _, err := d.Exec("HMSET", key, m) return err } From a2292b1177087e6b0205cccfe09e7b1f6ec2bc79 Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Tue, 30 Nov 2021 19:58:57 +0800 Subject: [PATCH 122/814] test modify --- pkg/common/db/redisModel.go | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/pkg/common/db/redisModel.go b/pkg/common/db/redisModel.go index 838b8e5f6..97ad066bc 100644 --- a/pkg/common/db/redisModel.go +++ b/pkg/common/db/redisModel.go @@ -88,12 +88,12 @@ func (d *DataBases) GetTokenMapByUidPid(userID, platformID string) (map[string]i } func (d *DataBases) SetTokenMapByUidPid(userID string, platformID int32, m map[string]int) error { key := uidPidToken + userID + ":" + constant.PlatformIDToName(platformID) - //var a []interface{} - //for k, v := range m { - // a = append(a, k) - // a = append(a, v) - //} - _, err := d.Exec("HMSET", key, m) + var a []interface{} + for k, v := range m { + a = append(a, k) + a = append(a, v) + } + _, err := d.Exec("HMSET", key, a...) return err } From 01515f919d1bcea3d4b047c488e8f2542eea53e7 Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Tue, 30 Nov 2021 20:15:34 +0800 Subject: [PATCH 123/814] test modify --- pkg/common/db/redisModel.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkg/common/db/redisModel.go b/pkg/common/db/redisModel.go index 97ad066bc..ea34b4777 100644 --- a/pkg/common/db/redisModel.go +++ b/pkg/common/db/redisModel.go @@ -93,7 +93,7 @@ func (d *DataBases) SetTokenMapByUidPid(userID string, platformID int32, m map[s a = append(a, k) a = append(a, v) } - _, err := d.Exec("HMSET", key, a...) + _, err := d.Exec("HMSET", key, a) return err } From 5f90851458b7d238abe3b68746ce1bc87a12dad4 Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Tue, 30 Nov 2021 20:33:34 +0800 Subject: [PATCH 124/814] test modify --- pkg/common/db/redisModel.go | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/pkg/common/db/redisModel.go b/pkg/common/db/redisModel.go index ea34b4777..23080ca63 100644 --- a/pkg/common/db/redisModel.go +++ b/pkg/common/db/redisModel.go @@ -88,12 +88,12 @@ func (d *DataBases) GetTokenMapByUidPid(userID, platformID string) (map[string]i } func (d *DataBases) SetTokenMapByUidPid(userID string, platformID int32, m map[string]int) error { key := uidPidToken + userID + ":" + constant.PlatformIDToName(platformID) - var a []interface{} - for k, v := range m { - a = append(a, k) - a = append(a, v) - } - _, err := d.Exec("HMSET", key, a) + //var a []interface{} + //for k, v := range m { + // a = append(a, k) + // a = append(a, v) + //} + _, err := d.Exec("HMSET", key, redis.Args{}.Add(m)) return err } From 45f29c4c6fd895791fd8adcac89e79fd818d6dbc Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Tue, 30 Nov 2021 20:38:23 +0800 Subject: [PATCH 125/814] test modify --- pkg/common/db/redisModel.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkg/common/db/redisModel.go b/pkg/common/db/redisModel.go index 23080ca63..bedf144f4 100644 --- a/pkg/common/db/redisModel.go +++ b/pkg/common/db/redisModel.go @@ -93,7 +93,7 @@ func (d *DataBases) SetTokenMapByUidPid(userID string, platformID int32, m map[s // a = append(a, k) // a = append(a, v) //} - _, err := d.Exec("HMSET", key, redis.Args{}.Add(m)) + _, err := d.Exec("HMSET", redis.Args{}.Add(key).AddFlat(m)) return err } From a705e595ee1b38db24f1344825d19bd583df2286 Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Tue, 30 Nov 2021 20:43:58 +0800 Subject: [PATCH 126/814] test modify --- pkg/common/db/redisModel.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkg/common/db/redisModel.go b/pkg/common/db/redisModel.go index bedf144f4..bf5998691 100644 --- a/pkg/common/db/redisModel.go +++ b/pkg/common/db/redisModel.go @@ -93,7 +93,7 @@ func (d *DataBases) SetTokenMapByUidPid(userID string, platformID int32, m map[s // a = append(a, k) // a = append(a, v) //} - _, err := d.Exec("HMSET", redis.Args{}.Add(key).AddFlat(m)) + _, err := d.Exec("hmset", redis.Args{}.Add(key).AddFlat(m)) return err } From bee12423b02a4e1605bff09a8b0b61a059bfc2fb Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Tue, 30 Nov 2021 20:50:38 +0800 Subject: [PATCH 127/814] test modify --- pkg/common/db/redisModel.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkg/common/db/redisModel.go b/pkg/common/db/redisModel.go index bf5998691..e9bc1c9bd 100644 --- a/pkg/common/db/redisModel.go +++ b/pkg/common/db/redisModel.go @@ -93,7 +93,7 @@ func (d *DataBases) SetTokenMapByUidPid(userID string, platformID int32, m map[s // a = append(a, k) // a = append(a, v) //} - _, err := d.Exec("hmset", redis.Args{}.Add(key).AddFlat(m)) + _, err := d.Exec("hmset", key, redis.Args{}.AddFlat(m)) return err } From 3495d75a6fd07d628f1dd908bbd3850649855f89 Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Tue, 30 Nov 2021 21:05:24 +0800 Subject: [PATCH 128/814] test modify --- pkg/common/db/redisModel.go | 2 +- pkg/common/db/redisModel_test.go | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/pkg/common/db/redisModel.go b/pkg/common/db/redisModel.go index e9bc1c9bd..d34ec185c 100644 --- a/pkg/common/db/redisModel.go +++ b/pkg/common/db/redisModel.go @@ -93,7 +93,7 @@ func (d *DataBases) SetTokenMapByUidPid(userID string, platformID int32, m map[s // a = append(a, k) // a = append(a, v) //} - _, err := d.Exec("hmset", key, redis.Args{}.AddFlat(m)) + _, err := d.Exec("hmset", key, m) return err } diff --git a/pkg/common/db/redisModel_test.go b/pkg/common/db/redisModel_test.go index 1fddeb948..f8b5c299f 100644 --- a/pkg/common/db/redisModel_test.go +++ b/pkg/common/db/redisModel_test.go @@ -10,6 +10,7 @@ func Test_SetTokenMapByUidPid(t *testing.T) { m := make(map[string]int, 0) m["哈哈"] = 1 m["heihei"] = 2 + m["2332"] = 4 _ = DB.SetTokenMapByUidPid("1234", 2, m) } From 58785e947008d4c916fed5de3cfac2a6195cc4af Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Tue, 30 Nov 2021 21:06:10 +0800 Subject: [PATCH 129/814] test modify --- pkg/common/db/redisModel.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkg/common/db/redisModel.go b/pkg/common/db/redisModel.go index d34ec185c..74ba62973 100644 --- a/pkg/common/db/redisModel.go +++ b/pkg/common/db/redisModel.go @@ -93,7 +93,7 @@ func (d *DataBases) SetTokenMapByUidPid(userID string, platformID int32, m map[s // a = append(a, k) // a = append(a, v) //} - _, err := d.Exec("hmset", key, m) + _, err := d.Exec("hset", key, m) return err } From 39f5e134631e9d477af8a080109e995efe93c739 Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Tue, 30 Nov 2021 21:08:52 +0800 Subject: [PATCH 130/814] test modify --- pkg/common/db/redisModel.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkg/common/db/redisModel.go b/pkg/common/db/redisModel.go index 74ba62973..b2d175d56 100644 --- a/pkg/common/db/redisModel.go +++ b/pkg/common/db/redisModel.go @@ -93,7 +93,7 @@ func (d *DataBases) SetTokenMapByUidPid(userID string, platformID int32, m map[s // a = append(a, k) // a = append(a, v) //} - _, err := d.Exec("hset", key, m) + _, err := d.Exec("hmset", key, redis.Args{}.Add(m)) return err } From df592d99dda31790c7e3b3fc4030e645009bb174 Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Tue, 30 Nov 2021 21:12:03 +0800 Subject: [PATCH 131/814] test modify --- pkg/common/db/redisModel.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkg/common/db/redisModel.go b/pkg/common/db/redisModel.go index b2d175d56..69fa05f57 100644 --- a/pkg/common/db/redisModel.go +++ b/pkg/common/db/redisModel.go @@ -93,7 +93,7 @@ func (d *DataBases) SetTokenMapByUidPid(userID string, platformID int32, m map[s // a = append(a, k) // a = append(a, v) //} - _, err := d.Exec("hmset", key, redis.Args{}.Add(m)) + _, err := d.Exec("hmset", key, redis.Args{}.Add(m)...) return err } From bd62da8e1ad037ad375d467673bb7711eb5e538d Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Tue, 30 Nov 2021 21:17:20 +0800 Subject: [PATCH 132/814] test modify --- pkg/common/db/redisModel.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkg/common/db/redisModel.go b/pkg/common/db/redisModel.go index 69fa05f57..2b747cb7d 100644 --- a/pkg/common/db/redisModel.go +++ b/pkg/common/db/redisModel.go @@ -93,7 +93,7 @@ func (d *DataBases) SetTokenMapByUidPid(userID string, platformID int32, m map[s // a = append(a, k) // a = append(a, v) //} - _, err := d.Exec("hmset", key, redis.Args{}.Add(m)...) + _, err := d.Exec("hmset", key, redis.Args{}.Add().AddFlat(m)...) return err } From 42e2957bee44aa79dc3398e2d4bb248bc8c6aa17 Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Wed, 1 Dec 2021 10:37:56 +0800 Subject: [PATCH 133/814] script --- script/docker_check_service.sh | 34 ++-------------------------------- script/docker_start_all.sh | 1 + 2 files changed, 3 insertions(+), 32 deletions(-) diff --git a/script/docker_check_service.sh b/script/docker_check_service.sh index c987f3d8b..afb1022b3 100644 --- a/script/docker_check_service.sh +++ b/script/docker_check_service.sh @@ -1,33 +1,3 @@ #!/usr/bin/env bash - -source ./style_info.cfg - -docker_compose_components=( - etcd - mongo - mysql - open_im_server - redis - kafka - zookeeper -) - -component_server_count=0 - -for ((i = 0; i < ${#docker_compose_components[*]}; i++)); do - component_server="docker-compose ps|grep -w ${docker_compose_components[$i]}|grep Up" - count="${component_server}|wc -l" - - if [ $(eval ${count}) -gt 0 ]; then - echo -e "${SKY_BLUE_PREFIX}docker-compose ${docker_compose_components[$i]} is Up!${COLOR_SUFFIX}" - let component_server_count+=1 - else - echo -e "${RED_PREFIX} ${docker_compose_components[$i]} start failed!${COLOR_SUFFIX}" - fi -done - -if [ ${component_server_count} -eq 7 ]; then - echo -e "${YELLOW_PREFIX}\ndocker-compose all services is Up!${COLOR_SUFFIX}" -else - echo -e "${RED_PREFIX}\nsome docker-compose services start failed,please check red logs on console ${COLOR_SUFFIX}" -fi +docker-compose ps +./check_all.sh diff --git a/script/docker_start_all.sh b/script/docker_start_all.sh index 5d0c19b2e..382a2c0ad 100644 --- a/script/docker_start_all.sh +++ b/script/docker_start_all.sh @@ -13,6 +13,7 @@ need_to_start_server_shell=( ) #fixme The 10 second delay to start the project is for the docker-compose one-click to start openIM when the infrastructure dependencies are not started + sleep 10 for i in ${need_to_start_server_shell[*]}; do From 4d3e79281d11a7e8b5402c9997531af7ed1ed3d2 Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Wed, 1 Dec 2021 11:57:43 +0800 Subject: [PATCH 134/814] script --- script/docker_check_service.sh | 7 +++++++ script/env_check.sh | 20 ++++++++++++++++++++ 2 files changed, 27 insertions(+) create mode 100644 script/env_check.sh diff --git a/script/docker_check_service.sh b/script/docker_check_service.sh index afb1022b3..c65d38d7f 100644 --- a/script/docker_check_service.sh +++ b/script/docker_check_service.sh @@ -1,3 +1,10 @@ #!/usr/bin/env bash +echo "docker-compose ps....................." docker-compose ps + +sleep 10 + +echo "check OpenIM.........................." ./check_all.sh + + diff --git a/script/env_check.sh b/script/env_check.sh new file mode 100644 index 000000000..6af30a37b --- /dev/null +++ b/script/env_check.sh @@ -0,0 +1,20 @@ +#!/usr/bin/env bash +source ./style_info.cfg +echo -e "check environment......................................." + +SYSTEM=`uname -s` +if [ $SYSTEM != "Linux" ] ; then + echo -e ${RED_PREFIX}"Warning: Currently only Linux is supported"${COLOR_SUFFIX} +else + echo -e ${GREEN_PREFIX} "Linux system is ok"${COLOR_SUFFIX} +fi + +echo -e "check memory............................................" +available=`free -m | grep Mem | awk '{print $NF}'` +if [ $available -lt 2000 ] ; then + echo -e ${RED_PREFIX}"Warning: Your memory not enough, available is: " "$available"m${COLOR_SUFFIX}"\c" + echo -e ${RED_PREFIX}", must be greater than 2000m"${COLOR_SUFFIX} +else + echo -e ${GREEN_PREFIX} "Memory is ok, available is: "$available"m${COLOR_SUFFIX}" +fi + From 15660663f612659f980b73a4599ed84152532ce1 Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Wed, 1 Dec 2021 12:16:02 +0800 Subject: [PATCH 135/814] demo merge into project --- cmd/open_im_demo/Makefile | 25 +++ cmd/open_im_demo/main.go | 28 ++++ config/config.yaml | 21 +++ go.mod | 5 + go.sum | 62 +++++++ internal/demo/register/login.go | 112 +++++++++++++ internal/demo/register/send_code.go | 151 +++++++++++++++++ internal/demo/register/set_password.go | 155 ++++++++++++++++++ internal/demo/register/verify.go | 69 ++++++++ pkg/common/config/config.go | 17 ++ pkg/common/constant/error.go | 11 ++ pkg/common/db/mysql.go | 10 ++ .../mysql_model/im_mysql_model/demo_model.go | 64 ++++++++ pkg/common/db/redisModel.go | 5 - pkg/common/db/redisModel_test.go | 4 +- script/check_all.sh | 1 + script/demo_svr_start.sh | 47 ++++++ script/docker_start_all.sh | 1 + script/path_info.cfg | 6 + script/start_all.sh | 1 + 20 files changed, 788 insertions(+), 7 deletions(-) create mode 100644 cmd/open_im_demo/Makefile create mode 100644 cmd/open_im_demo/main.go create mode 100644 internal/demo/register/login.go create mode 100644 internal/demo/register/send_code.go create mode 100644 internal/demo/register/set_password.go create mode 100644 internal/demo/register/verify.go create mode 100644 pkg/common/db/mysql_model/im_mysql_model/demo_model.go create mode 100644 script/demo_svr_start.sh diff --git a/cmd/open_im_demo/Makefile b/cmd/open_im_demo/Makefile new file mode 100644 index 000000000..45829acd8 --- /dev/null +++ b/cmd/open_im_demo/Makefile @@ -0,0 +1,25 @@ +.PHONY: all build run gotool install clean help + +BINARY_NAME=open_im_demo +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/open_im_demo/main.go b/cmd/open_im_demo/main.go new file mode 100644 index 000000000..d43ab3942 --- /dev/null +++ b/cmd/open_im_demo/main.go @@ -0,0 +1,28 @@ +package main + +import ( + "Open_IM/internal/demo/register" + "Open_IM/pkg/common/log" + "Open_IM/pkg/utils" + "flag" + "github.com/gin-gonic/gin" + "strconv" +) + +func main() { + + r := gin.Default() + r.Use(utils.CorsHandler()) + + authRouterGroup := r.Group("/auth") + { + authRouterGroup.POST("/code", register.SendVerificationCode) + authRouterGroup.POST("/verify", register.Verify) + authRouterGroup.POST("/password", register.SetPassword) + authRouterGroup.POST("/login", register.Login) + } + log.NewPrivateLog("demo") + ginPort := flag.Int("port", 42233, "get ginServerPort from cmd,default 42233 as port") + flag.Parse() + r.Run(utils.ServerIP + ":" + strconv.Itoa(*ginPort)) +} diff --git a/config/config.yaml b/config/config.yaml index 72d21055f..75f07ca73 100644 --- a/config/config.yaml +++ b/config/config.yaml @@ -143,3 +143,24 @@ messagecallback: callbackUrl: "http://www.xxx.com/msg/judge" #TimeOut use second as unit callbackTimeOut: 10 + + +#---------------demo configuration---------------------# +#The following configuration items are applied to openIM Demo configuration +demoswitch: true +demo: + openImDemoPort: [ 42233 ] + alismsverify: + accessKeyId: LTAI5tJPkn4HuuePdiLdGqe7 + accessKeySecret: 4n9OJ7ZCVN1U6KeHDAtOyNeVZcjOuV + signName: OpenIM Corporation + verificationCodeTemplateCode: SMS_226810164 + superCode: 666666 + mail: + title: "挼信" + senderMail: "765567899@qq.com" + senderAuthorizationCode: "gxyausfoevlzbfag" + smtpAddr: "smtp.qq.com" + smtpPort: 25 + + diff --git a/go.mod b/go.mod index 8efd048e6..c4aa2726e 100644 --- a/go.mod +++ b/go.mod @@ -5,6 +5,9 @@ go 1.15 require ( github.com/Shopify/sarama v1.19.0 github.com/Shopify/toxiproxy v2.1.4+incompatible // indirect + github.com/alibabacloud-go/darabonba-openapi v0.1.11 + github.com/alibabacloud-go/dysmsapi-20170525/v2 v2.0.8 + github.com/alibabacloud-go/tea v1.1.17 github.com/antonfisher/nested-logrus-formatter v1.3.0 github.com/bwmarrin/snowflake v0.3.0 github.com/coreos/go-semver v0.3.0 // indirect @@ -41,6 +44,8 @@ require ( golang.org/x/net v0.0.0-20210917221730-978cfadd31cf golang.org/x/tools v0.0.0-20210106214847-113979e3529a // indirect google.golang.org/grpc v1.33.2 + gopkg.in/alexcesaro/quotedprintable.v3 v3.0.0-20150716171945-2caba252f4dc // indirect + gopkg.in/gomail.v2 v2.0.0-20160411212932-81ebce5c23df gopkg.in/mgo.v2 v2.0.0-20190816093944-a6b53ec6cb22 gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b sigs.k8s.io/yaml v1.2.0 // indirect diff --git a/go.sum b/go.sum index e9736d808..79d0ddadf 100644 --- a/go.sum +++ b/go.sum @@ -7,6 +7,30 @@ github.com/Shopify/toxiproxy v2.1.4+incompatible h1:TKdv8HiTLgE5wdJuEML90aBgNWso github.com/Shopify/toxiproxy v2.1.4+incompatible/go.mod h1:OXgGpZ6Cli1/URJOF1DMxUHB2q5Ap20/P/eIdh4G0pI= github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0= +github.com/alibabacloud-go/darabonba-openapi v0.1.11 h1:w59gtSA0s87p0U5NNG/N/PIHsRP3rtj7qCP9hx9+GL8= +github.com/alibabacloud-go/darabonba-openapi v0.1.11/go.mod h1:MPJMxv7HYrFm5m9uOZWkDYsAWyZztEgnBRfk9Fg0eIU= +github.com/alibabacloud-go/darabonba-string v1.0.0/go.mod h1:93cTfV3vuPhhEwGGpKKqhVW4jLe7tDpo3LUM0i0g6mA= +github.com/alibabacloud-go/debug v0.0.0-20190504072949-9472017b5c68 h1:NqugFkGxx1TXSh/pBcU00Y6bljgDPaFdh5MUSeJ7e50= +github.com/alibabacloud-go/debug v0.0.0-20190504072949-9472017b5c68/go.mod h1:6pb/Qy8c+lqua8cFpEy7g39NRRqOWc3rOwAy8m5Y2BY= +github.com/alibabacloud-go/dysmsapi-20170525 v1.1.2 h1:AiQv4HpDWV0GAXzauPB2Xdrx4cuBo18bqNzIjMJyWjk= +github.com/alibabacloud-go/dysmsapi-20170525/v2 v2.0.8 h1:KXMiCg99Jx7B6V+DlRFbWwL9UCGippE5z1wGzhyimiA= +github.com/alibabacloud-go/dysmsapi-20170525/v2 v2.0.8/go.mod h1:8aL6tSyQIWJygF7W/Vqxdf/QDbN2S+u57k36bEA8hD8= +github.com/alibabacloud-go/endpoint-util v1.1.0 h1:r/4D3VSw888XGaeNpP994zDUaxdgTSHBbVfZlzf6b5Q= +github.com/alibabacloud-go/endpoint-util v1.1.0/go.mod h1:O5FuCALmCKs2Ff7JFJMudHs0I5EBgecXXxZRyswlEjE= +github.com/alibabacloud-go/openapi-util v0.0.9 h1:Z0DP4LFzkM/rW2nxOMiiLoQVZSeE3jVc5jrZ9Fd/UX0= +github.com/alibabacloud-go/openapi-util v0.0.9/go.mod h1:sQuElr4ywwFRlCCberQwKRFhRzIyG4QTP/P4y1CJ6Ws= +github.com/alibabacloud-go/tea v1.1.0/go.mod h1:IkGyUSX4Ba1V+k4pCtJUc6jDpZLFph9QMy2VUPTwukg= +github.com/alibabacloud-go/tea v1.1.7/go.mod h1:/tmnEaQMyb4Ky1/5D+SE1BAsa5zj/KeGOFfwYm3N/p4= +github.com/alibabacloud-go/tea v1.1.8/go.mod h1:/tmnEaQMyb4Ky1/5D+SE1BAsa5zj/KeGOFfwYm3N/p4= +github.com/alibabacloud-go/tea v1.1.11/go.mod h1:/tmnEaQMyb4Ky1/5D+SE1BAsa5zj/KeGOFfwYm3N/p4= +github.com/alibabacloud-go/tea v1.1.15/go.mod h1:nXxjm6CIFkBhwW4FQkNrolwbfon8Svy6cujmKFUq98A= +github.com/alibabacloud-go/tea v1.1.17 h1:05R5DnaJXe9sCNIe8KUgWHC/z6w/VZIwczgUwzRnul8= +github.com/alibabacloud-go/tea v1.1.17/go.mod h1:nXxjm6CIFkBhwW4FQkNrolwbfon8Svy6cujmKFUq98A= +github.com/alibabacloud-go/tea-utils v1.3.1/go.mod h1:EI/o33aBfj3hETm4RLiAxF/ThQdSngxrpF8rKUDJjPE= +github.com/alibabacloud-go/tea-utils v1.3.9 h1:TtbzxS+BXrisA7wzbAMRtlU8A2eWLg0ufm7m/Tl6fc4= +github.com/alibabacloud-go/tea-utils v1.3.9/go.mod h1:EI/o33aBfj3hETm4RLiAxF/ThQdSngxrpF8rKUDJjPE= +github.com/aliyun/credentials-go v1.1.2 h1:qU1vwGIBb3UJ8BwunHDRFtAhS6jnQLnde/yk0+Ih2GY= +github.com/aliyun/credentials-go v1.1.2/go.mod h1:ozcZaMR5kLM7pwtCMEpVmQ242suV6qTJya2bDq4X1Tw= github.com/andybalholm/cascadia v1.1.0/go.mod h1:GsXiBklL0woXo1j/WYWtSYYC4ouU9PqHO0sqidkEA4Y= github.com/antonfisher/nested-logrus-formatter v1.3.0 h1:8zixYquU1Odk+vzAaAQPAdRh1ZjmUXNQ1T+dUBvlhVo= github.com/antonfisher/nested-logrus-formatter v1.3.0/go.mod h1:6WTfyWFkBc9+zyBaKIqRrg/KwMqBbodBjgbHjDz7zjA= @@ -115,6 +139,9 @@ github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/ github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= github.com/google/uuid v1.0.0 h1:b4Gk+7WdP/d3HZH8EJsZpvV7EtDOgaZLtnaNGIu1adA= github.com/google/uuid v1.0.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY= +github.com/gopherjs/gopherjs v0.0.0-20200217142428-fce0ec30dd00 h1:l5lAOZEym3oK3SQ2HBHWsJUfbNBiTXJDeW2QDxw9AQ0= +github.com/gopherjs/gopherjs v0.0.0-20200217142428-fce0ec30dd00/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY= github.com/gorilla/websocket v0.0.0-20170926233335-4201258b820c/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ= github.com/gorilla/websocket v1.4.2 h1:+/TMaTYc4QFitKJxsQ7Yye35DkWvkdLcvGKqM+x0Ufc= github.com/gorilla/websocket v1.4.2/go.mod h1:YR8l580nyteQvAITg2hZ9XVh4b55+EU/adAjf1fMHhE= @@ -142,6 +169,10 @@ github.com/json-iterator/go v1.1.6/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCV github.com/json-iterator/go v1.1.7/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= github.com/json-iterator/go v1.1.9 h1:9yzud/Ht36ygwatGx56VwCZtlI/2AD15T1X2sjSuGns= github.com/json-iterator/go v1.1.9/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= +github.com/json-iterator/go v1.1.10 h1:Kz6Cvnvv2wGdaG/V8yMvfkmNiXq9Ya2KUv4rouJJr68= +github.com/json-iterator/go v1.1.10/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= +github.com/jtolds/gls v4.20.0+incompatible h1:xdiiI2gbIgH/gLH7ADydsJ1uDOEzR8yvV7C0MuV77Wo= +github.com/jtolds/gls v4.20.0+incompatible/go.mod h1:QJZ7F/aHp+rZTRtaJ1ow/lLfFfVYBRgL+9YlvaHOwJU= github.com/julienschmidt/httprouter v1.2.0/go.mod h1:SYymIcj16QtmaHHD7aYtjjsJG7VTCxuUUipMqKk8s4w= github.com/kisielk/errcheck v1.1.0/go.mod h1:EZBBE59ingxPouuu3KfxchcWSUPOHkagtvWXihfKN4Q= github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= @@ -188,6 +219,8 @@ github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3Rllmb github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= github.com/nfnt/resize v0.0.0-20180221191011-83c6a9932646 h1:zYyBkD/k9seD2A7fsi6Oo2LfFZAehjjQMERAvZLEDnQ= github.com/nfnt/resize v0.0.0-20180221191011-83c6a9932646/go.mod h1:jpp1/29i3P1S/RLdc7JQKbRpFeM1dOBd8T9ki5s+AY8= +github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e h1:fD57ERR4JtEqsWbfPhv4DMiApHyliiK5xCTNVSPiaAs= +github.com/niemeyer/pretty v0.0.0-20200227124842-a10e7caefd8e/go.mod h1:zD1mROLANZcx1PVRCS0qkT7pwLkGfwJo4zjcN/Tysno= github.com/olekukonko/tablewriter v0.0.0-20170122224234-a0225b3f23b5/go.mod h1:vsDQFd/mU46D+Z4whnwzcISnGGzXWMclvtLoiIKAKIo= github.com/olivere/elastic/v7 v7.0.23 h1:b7tjMogDMhf2CisGI+L02LXLVa0ZyE82Z15XfW1e8t8= github.com/olivere/elastic/v7 v7.0.23/go.mod h1:OuWmD2DiuYhddWegBKPWQuelVKBLrW0fa/VUYgxuGTY= @@ -224,8 +257,13 @@ github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPx github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE= github.com/sirupsen/logrus v1.8.1 h1:dJKuHgqk1NNQlqoA6BTlM1Wf9DOH3NBjQyu0h9+AZZE= github.com/sirupsen/logrus v1.8.1/go.mod h1:yWOB1SBYBC5VeMP7gHvWumXLIWorT60ONWic61uBYv0= +github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc= +github.com/smartystreets/assertions v1.1.0/go.mod h1:tcbTF8ujkAEcZ8TElKY+i30BzYlVhC/LOxJk7iOWnoo= +github.com/smartystreets/assertions v1.1.1 h1:T/YLemO5Yp7KPzS+lVtu+WsHn8yoSwTfItdAd1r3cck= github.com/smartystreets/assertions v1.1.1/go.mod h1:tcbTF8ujkAEcZ8TElKY+i30BzYlVhC/LOxJk7iOWnoo= github.com/smartystreets/go-aws-auth v0.0.0-20180515143844-0c1422d1fdb9/go.mod h1:SnhjPscd9TpLiy1LpzGSKh3bXCfxxXuqd9xmQJy3slM= +github.com/smartystreets/goconvey v1.6.4 h1:fv0U8FUIMPNf1L9lnHLvLhgicrIVChEkdzIKYqbNC9s= +github.com/smartystreets/goconvey v1.6.4/go.mod h1:syvi0/a8iFYH4r/RixwvyeAJjdLS9QV7WQ/tjFTllLA= github.com/smartystreets/gunit v1.4.2/go.mod h1:ZjM1ozSIMJlAz/ay4SG8PeKF00ckUp+zMHZXV9/bvak= github.com/soheilhy/cmux v0.1.4 h1:0HKaf1o97UwFjHH9o5XsHUOF+tqmdA7KEzXLpiyaw0E= github.com/soheilhy/cmux v0.1.4/go.mod h1:IM3LyeVVIOuxMH7sFAkER9+bJ4dT7Ms6E4xg4kGIyLM= @@ -234,14 +272,18 @@ github.com/spf13/pflag v1.0.1 h1:aCvUg6QPl3ibpQUxyLkrEkCHtPqYJL4x9AuhqVqFis4= github.com/spf13/pflag v1.0.1/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= +github.com/stretchr/objx v0.2.0/go.mod h1:qt09Ya8vawLte6SNmTgCsAVtYtaKzEcn8ATUoHMkEqE= github.com/stretchr/testify v1.2.2/go.mod h1:a8OnRcib4nhh0OaRAV+Yts87kKdq0PP7pXfy6kDkUVs= github.com/stretchr/testify v1.3.0/go.mod h1:M5WIy9Dh21IEIfnGCwXGc5bZfKNJtfHm1UVUgZn+9EI= github.com/stretchr/testify v1.4.0/go.mod h1:j7eGeouHqKxXV5pUuKE4zz7dFj8WfuZ+81PSLYec5m4= +github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5cxcmMvtA= github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.7.0 h1:nwc3DEeHmmLAfoZucVR881uASk0Mfjw8xYJ99tb5CcY= github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/tencentyun/qcloud-cos-sts-sdk v0.0.0-20210325043845-84a0811633ca h1:G/aIr3WiUesWHL2YGYgEqjM5tCAJ43Ml+0C18wDkWWs= github.com/tencentyun/qcloud-cos-sts-sdk v0.0.0-20210325043845-84a0811633ca/go.mod h1:b18KQa4IxHbxeseW1GcZox53d7J0z39VNONTxvvlkXw= +github.com/tjfoc/gmsm v1.3.2 h1:7JVkAn5bvUJ7HtU08iW6UiD+UTmJTIToHCfeFzkcCxM= +github.com/tjfoc/gmsm v1.3.2/go.mod h1:HaUcFuY0auTiaHB9MHFGCPx5IaLhTUd2atbCFBQXn9w= github.com/tmc/grpc-websocket-proxy v0.0.0-20170815181823-89b8d40f7ca8/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= github.com/tmc/grpc-websocket-proxy v0.0.0-20190109142713-0ad062ec5ee5 h1:LnC5Kc/wtumK+WB441p7ynQJzVuNRJiqddSIE3IlSEQ= github.com/tmc/grpc-websocket-proxy v0.0.0-20190109142713-0ad062ec5ee5/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= @@ -252,6 +294,8 @@ github.com/ugorji/go/codec v1.1.7/go.mod h1:Ax+UKWsSmolVDwsd+7N3ZtXu+yMGCf907BLY github.com/urfave/cli v1.20.0/go.mod h1:70zkFmudgCuE/ngEzBv17Jvp/497gISqfk5gWijbERA= github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2 h1:eY9dn8+vbi4tKz5Qo6v2eYzo7kUS51QINcR5jNpbZS8= github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2/go.mod h1:UETIi67q53MR2AWcXfiuqkDkRtnGDLqkBTpCHuJHxtU= +github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= +github.com/yuin/goldmark v1.1.30/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= go.etcd.io/bbolt v1.3.4 h1:hi1bXHMVrlQh6WwxAy+qZCV/SYIlqo+Ushwdpa4tAKg= go.etcd.io/bbolt v1.3.4/go.mod h1:G5EMThwa9y8QZGBClrRx5EY+Yw9kAhnjy3bSjsnlVTQ= @@ -273,6 +317,8 @@ golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8U golang.org/x/crypto v0.0.0-20191002192127-34f69633bfdc/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20191205180655-e7c4368fe9dd/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= +golang.org/x/crypto v0.0.0-20191219195013-becbf705a915/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= +golang.org/x/crypto v0.0.0-20200510223506-06a226fb4e37/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9 h1:psW17arqaxU48Z5kZ0CQnkZWQJsqcURM6tKiBApRjXI= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= @@ -282,6 +328,7 @@ golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvx golang.org/x/lint v0.0.0-20190930215403-16217165b5de h1:5hukYrvBGR8/eNkX5mdUezrA6JiaEZDtJb9Ei+1LlBs= golang.org/x/lint v0.0.0-20190930215403-16217165b5de/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= golang.org/x/mod v0.0.0-20190513183733-4bf6d317e70e/go.mod h1:mXi4GBBbnImb6dmsKGUJ2LatrhH/nqhxcFungHvyanc= +golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/mod v0.3.0 h1:RM4zey1++hCTbCVQfnWeKs9/IEsaBLA8vTkd0WVtmH4= golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/net v0.0.0-20180218175443-cbe0f9307d01/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= @@ -294,7 +341,9 @@ golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20190813141303-74dc4d7220e7/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200202094626-16171245cfb2/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200324143707-d3edc9973b7e/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= +golang.org/x/net v0.0.0-20200506145744-7e3656a0809f/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= golang.org/x/net v0.0.0-20201110031124-69a78807bb2b/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= golang.org/x/net v0.0.0-20210917221730-978cfadd31cf h1:R150MpwJIv1MpS0N/pc+NhTM8ajzvlmxlY5OYsrevXQ= @@ -303,6 +352,8 @@ golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAG golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20200317015054-43a5402ce75a/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20181107165924-66b7b1311ac8/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= @@ -314,6 +365,7 @@ golang.org/x/sys v0.0.0-20191026070338-33540a1f6037/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20200116001909-b77594299b42/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200202164722-d101bd2416d5/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200509044756-6aff5f38e54f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210423082822-04245dca01da h1:b3NXsE2LusjYGGjL5bxEVZZORm/YEFFrWFjR8eFrw/c= @@ -330,10 +382,12 @@ golang.org/x/tools v0.0.0-20180221164845-07fd8470d635/go.mod h1:n7NCudcB/nEzxVGm golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY= golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= +golang.org/x/tools v0.0.0-20190328211700-ab21143f2384/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= golang.org/x/tools v0.0.0-20190621195816-6e04913cbbac/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= golang.org/x/tools v0.0.0-20191029041327-9cc4af7d6b2c/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191029190741-b9c20aec41a5/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20200509030707-2212a7e161a5/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= golang.org/x/tools v0.0.0-20210106214847-113979e3529a h1:CB3a9Nez8M13wwlr/E2YtwoU+qYHKfC+JrDa45RXXoQ= golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= @@ -357,11 +411,19 @@ google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp0 google.golang.org/protobuf v1.26.0 h1:bxAC2xTBsZGibn2RTntX0oH50xLsqy1OxA9tTL3p/lk= google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= +gopkg.in/alexcesaro/quotedprintable.v3 v3.0.0-20150716171945-2caba252f4dc h1:2gGKlE2+asNV9m7xrywl36YYNnBG5ZQ0r/BOOxqPpmk= +gopkg.in/alexcesaro/quotedprintable.v3 v3.0.0-20150716171945-2caba252f4dc/go.mod h1:m7x9LTH6d71AHyAX77c9yqWCCa3UKHcVEj9y7hAtKDk= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127 h1:qIbj1fsPNlZgppZ+VLlY7N33q108Sa+fhmuc+sWQYwY= gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/check.v1 v1.0.0-20200227125254-8fa46927fb4f h1:BLraFXnmrev5lT+xlilqcH8XK9/i0At2xKjWk4p6zsU= +gopkg.in/check.v1 v1.0.0-20200227125254-8fa46927fb4f/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/cheggaaa/pb.v1 v1.0.25/go.mod h1:V/YB90LKu/1FcN3WVnfiiE5oMCibMjukxqG/qStrOgw= gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI= +gopkg.in/gomail.v2 v2.0.0-20160411212932-81ebce5c23df h1:n7WqCuqOuCbNr617RXOY0AWRXxgwEyPp2z+p0+hgMuE= +gopkg.in/gomail.v2 v2.0.0-20160411212932-81ebce5c23df/go.mod h1:LRQQ+SO6ZHR7tOkpBDuZnXENFzX8qRjMDMyPD6BRkCw= +gopkg.in/ini.v1 v1.56.0 h1:DPMeDvGTM54DXbPkVIZsp19fp/I2K7zwA/itHYHKo8Y= +gopkg.in/ini.v1 v1.56.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= gopkg.in/mgo.v2 v2.0.0-20190816093944-a6b53ec6cb22 h1:VpOs+IwYnYBaFnrNAeB8UUWtL3vEUnzSCL1nVjPhqrw= gopkg.in/mgo.v2 v2.0.0-20190816093944-a6b53ec6cb22/go.mod h1:yeKp02qBN3iKW1OzL3MGk2IdtZzaj7SFntXj72NppTA= gopkg.in/resty.v1 v1.12.0/go.mod h1:mDo4pnntr5jdWRML875a/NmxYqAlA73dVijT2AXvQQo= diff --git a/internal/demo/register/login.go b/internal/demo/register/login.go new file mode 100644 index 000000000..bc2605e08 --- /dev/null +++ b/internal/demo/register/login.go @@ -0,0 +1,112 @@ +package register + +import ( + "Open_IM/pkg/common/config" + "Open_IM/pkg/common/constant" + "Open_IM/pkg/common/db/mysql_model/im_mysql_model" + "Open_IM/pkg/common/log" + "Open_IM/pkg/utils" + "bytes" + "encoding/json" + "fmt" + "github.com/gin-gonic/gin" + "io/ioutil" + "net/http" +) + +type ParamsLogin struct { + Email string `json:"email"` + PhoneNumber string `json:"phoneNumber"` + Password string `json:"password"` + Platform int32 `json:"platform"` +} + +func Login(c *gin.Context) { + log.NewDebug("Login api is statrting...") + params := ParamsLogin{} + if err := c.BindJSON(¶ms); err != nil { + c.JSON(http.StatusBadRequest, gin.H{"errCode": constant.FormattingError, "errMsg": err.Error()}) + return + } + + var account string + if params.Email != "" { + account = params.Email + } else { + account = params.PhoneNumber + } + + log.InfoByKv("api Login get params", account) + + queryParams := im_mysql_model.Register{ + Account: account, + Password: params.Password, + } + + canLogin := im_mysql_model.Login(&queryParams) + if canLogin == 1 { + log.ErrorByKv("Incorrect phone number password", account, "err", "Mobile phone number is not registered") + c.JSON(http.StatusOK, gin.H{"errCode": constant.LogicalError, "errMsg": "Mobile phone number is not registered"}) + return + } + if canLogin == 2 { + log.ErrorByKv("Incorrect phone number password", account, "err", "Incorrect password") + c.JSON(http.StatusOK, gin.H{"errCode": constant.LogicalError, "errMsg": "Incorrect password"}) + return + } + + resp, err := OpenIMToken(account, params.Platform) + if err != nil { + log.ErrorByKv("get token by phone number err", account, "err", err.Error()) + c.JSON(http.StatusOK, gin.H{"errCode": constant.HttpError, "errMsg": err.Error()}) + return + } + response, err := ioutil.ReadAll(resp.Body) + defer resp.Body.Close() + if err != nil { + log.ErrorByKv("Failed to read file", account, "err", err.Error()) + c.JSON(http.StatusOK, gin.H{"errCode": constant.IoErrot, "errMsg": err.Error()}) + return + } + imRep := IMRegisterResp{} + err = json.Unmarshal(response, &imRep) + if err != nil { + log.ErrorByKv("json parsing failed", account, "err", err.Error()) + c.JSON(http.StatusOK, gin.H{"errCode": constant.FormattingError, "errMsg": err.Error()}) + return + } + + if imRep.ErrCode != 0 { + log.ErrorByKv("openIM Login request failed", account, "err") + c.JSON(http.StatusOK, gin.H{"errCode": constant.HttpError, "errMsg": imRep.ErrMsg}) + return + } + + c.JSON(http.StatusOK, gin.H{"errCode": constant.NoError, "errMsg": "", "data": imRep.Data}) + return + +} + +func OpenIMToken(Account string, platform int32) (*http.Response, error) { + url := fmt.Sprintf("http://%s:10000/auth/user_token", utils.ServerIP) + + client := &http.Client{} + params := make(map[string]interface{}) + + params["secret"] = config.Config.Secret + params["platform"] = platform + params["uid"] = Account + con, err := json.Marshal(params) + if err != nil { + log.ErrorByKv("json parsing failed", Account, "err", err.Error()) + return nil, err + } + req, err := http.NewRequest("POST", url, bytes.NewBuffer([]byte(con))) + if err != nil { + log.ErrorByKv("request error", "/auth/user_token", "err", err.Error()) + return nil, err + } + + resp, err := client.Do(req) + return resp, err +} diff --git a/internal/demo/register/send_code.go b/internal/demo/register/send_code.go new file mode 100644 index 000000000..ecb22095e --- /dev/null +++ b/internal/demo/register/send_code.go @@ -0,0 +1,151 @@ +package register + +import ( + "Open_IM/pkg/common/config" + "Open_IM/pkg/common/constant" + "Open_IM/pkg/common/db" + "Open_IM/pkg/common/db/mysql_model/im_mysql_model" + "Open_IM/pkg/common/log" + "fmt" + openapi "github.com/alibabacloud-go/darabonba-openapi/client" + dysmsapi20170525 "github.com/alibabacloud-go/dysmsapi-20170525/v2/client" + "github.com/alibabacloud-go/tea/tea" + "github.com/garyburd/redigo/redis" + "github.com/gin-gonic/gin" + "gopkg.in/gomail.v2" + "math/rand" + "net/http" + "time" +) + +type paramsVerificationCode struct { + Email string `json:"email"` + PhoneNumber string `json:"phoneNumber"` +} + +func SendVerificationCode(c *gin.Context) { + log.InfoByKv("sendCode api is statrting...", "") + params := paramsVerificationCode{} + + if err := c.BindJSON(¶ms); err != nil { + log.ErrorByKv("request params json parsing failed", params.PhoneNumber, params.Email, "err", err.Error()) + c.JSON(http.StatusBadRequest, gin.H{"errCode": constant.FormattingError, "errMsg": err.Error()}) + return + } + + var account string + if params.Email != "" { + account = params.Email + } else { + account = params.PhoneNumber + } + + queryParams := im_mysql_model.GetRegisterParams{ + Account: account, + } + _, err, rowsAffected := im_mysql_model.GetRegister(&queryParams) + + if err == nil && rowsAffected != 0 { + log.ErrorByKv("The phone number has been registered", queryParams.Account, "err") + c.JSON(http.StatusOK, gin.H{"errCode": constant.LogicalError, "errMsg": "The phone number has been registered"}) + return + } + + log.InfoByKv("begin sendSms", account) + rand.Seed(time.Now().UnixNano()) + code := 100000 + rand.Intn(900000) + log.NewDebug("", config.Config.Demo) + if params.Email != "" { + m := gomail.NewMessage() + m.SetHeader(`From`, config.Config.Demo.Mail.SenderMail) + m.SetHeader(`To`, []string{account}...) + m.SetHeader(`Subject`, config.Config.Demo.Mail.Title) + m.SetBody(`text/html`, fmt.Sprintf("%d", code)) + if err := gomail.NewDialer(config.Config.Demo.Mail.SmtpAddr, config.Config.Demo.Mail.SmtpPort, config.Config.Demo.Mail.SenderMail, config.Config.Demo.Mail.SenderAuthorizationCode).DialAndSend(m); err != nil { + log.ErrorByKv("send mail error", account, "err", err.Error()) + c.JSON(http.StatusOK, gin.H{"errCode": constant.IntentionalError, "errMsg": err.Error()}) + return + } + } else { + client, err := CreateClient(tea.String(config.Config.Demo.AliSMSVerify.AccessKeyID), tea.String(config.Config.Demo.AliSMSVerify.AccessKeySecret)) + if err != nil { + log.ErrorByKv("create sendSms client err", "", "err", err.Error()) + c.JSON(http.StatusOK, gin.H{"errCode": constant.IntentionalError, "errMsg": "Enter the superCode directly in the verification code box, SuperCode can be configured in config.xml"}) + return + } + + sendSmsRequest := &dysmsapi20170525.SendSmsRequest{ + PhoneNumbers: tea.String(account), + SignName: tea.String(config.Config.Demo.AliSMSVerify.SignName), + TemplateCode: tea.String(config.Config.Demo.AliSMSVerify.VerificationCodeTemplateCode), + TemplateParam: tea.String(fmt.Sprintf("{\"code\":\"%d\"}", code)), + } + + response, err := client.SendSms(sendSmsRequest) + if err != nil { + log.ErrorByKv("sendSms error", account, "err", err.Error()) + c.JSON(http.StatusOK, gin.H{"errCode": constant.IntentionalError, "errMsg": "Enter the superCode directly in the verification code box, SuperCode can be configured in config.xml"}) + return + } + if *response.Body.Code != "OK" { + log.ErrorByKv("alibabacloud sendSms error", account, "err", response.Body.Code, response.Body.Message) + c.JSON(http.StatusOK, gin.H{"errCode": constant.IntentionalError, "errMsg": "Enter the superCode directly in the verification code box, SuperCode can be configured in config.xml"}) + return + } + } + + log.InfoByKv("begin store redis", account) + v, err := redis.Int(db.DB.Exec("TTL", account)) + if err != nil { + log.ErrorByKv("get account from redis error", account, "err", err.Error()) + c.JSON(http.StatusOK, gin.H{"errCode": constant.IntentionalError, "errMsg": "Enter the superCode directly in the verification code box, SuperCode can be configured in config.xml"}) + return + } + switch { + case v == -2: + _, err = db.DB.Exec("SET", account, code, "EX", 600) + if err != nil { + log.ErrorByKv("set redis error", account, "err", err.Error()) + c.JSON(http.StatusOK, gin.H{"errCode": constant.IntentionalError, "errMsg": "Enter the superCode directly in the verification code box, SuperCode can be configured in config.xml"}) + return + } + data := make(map[string]interface{}) + data["account"] = account + c.JSON(http.StatusOK, gin.H{"errCode": constant.NoError, "errMsg": "Verification code sent successfully!", "data": data}) + log.InfoByKv("send new verification code", account) + return + case v > 540: + data := make(map[string]interface{}) + data["account"] = account + c.JSON(http.StatusOK, gin.H{"errCode": constant.LogicalError, "errMsg": "Frequent operation!", "data": data}) + log.InfoByKv("frequent operation", account) + return + case v < 540: + _, err = db.DB.Exec("SET", account, code, "EX", 600) + if err != nil { + c.JSON(http.StatusOK, gin.H{"errCode": constant.IntentionalError, "errMsg": "Enterthe superCode directly in the verification code box, SuperCode can be configured in config.xml"}) + return + } + data := make(map[string]interface{}) + data["account"] = account + c.JSON(http.StatusOK, gin.H{"errCode": constant.NoError, "errMsg": "Verification code has been reset!", "data": data}) + log.InfoByKv("Reset verification code", account) + return + } + +} + +func CreateClient(accessKeyId *string, accessKeySecret *string) (result *dysmsapi20170525.Client, err error) { + c := &openapi.Config{ + // 您的AccessKey ID + AccessKeyId: accessKeyId, + // 您的AccessKey Secret + AccessKeySecret: accessKeySecret, + } + + // 访问的域名 + c.Endpoint = tea.String("dysmsapi.aliyuncs.com") + result = &dysmsapi20170525.Client{} + result, err = dysmsapi20170525.NewClient(c) + return result, err +} diff --git a/internal/demo/register/set_password.go b/internal/demo/register/set_password.go new file mode 100644 index 000000000..e854cd10e --- /dev/null +++ b/internal/demo/register/set_password.go @@ -0,0 +1,155 @@ +package register + +import ( + "Open_IM/pkg/common/config" + "Open_IM/pkg/common/constant" + "Open_IM/pkg/common/db" + "Open_IM/pkg/common/db/mysql_model/im_mysql_model" + "Open_IM/pkg/common/log" + "Open_IM/pkg/utils" + "bytes" + "encoding/json" + "fmt" + "github.com/garyburd/redigo/redis" + "github.com/gin-gonic/gin" + "io/ioutil" + "net/http" +) + +type ParamsSetPassword struct { + Email string `json:"email"` + PhoneNumber string `json:"phoneNumber"` + Password string `json:"password"` + VerificationCode string `json:"verificationCode"` +} + +type Data struct { + ExpiredTime int64 `json:"expiredTime"` + Token string `json:"token"` + Uid string `json:"uid"` +} + +type IMRegisterResp struct { + Data Data `json:"data"` + ErrCode int32 `json:"errCode"` + ErrMsg string `json:"errMsg"` +} + +func SetPassword(c *gin.Context) { + log.InfoByKv("setPassword api is statrting...", "") + params := ParamsSetPassword{} + if err := c.BindJSON(¶ms); err != nil { + c.JSON(http.StatusBadRequest, gin.H{"errCode": constant.FormattingError, "errMsg": err.Error()}) + return + } + + var account string + if params.Email != "" { + account = params.Email + } else { + account = params.PhoneNumber + } + + log.InfoByKv("begin store redis", account) + v, err := redis.String(db.DB.Exec("GET", account)) + + if params.VerificationCode == config.Config.Demo.SuperCode { + goto openIMRegisterTab + } + + fmt.Println("Get Redis:", v, err) + if err != nil { + log.ErrorByKv("password Verification code expired", account, "err", err.Error()) + data := make(map[string]interface{}) + data["phoneNumber"] = account + c.JSON(http.StatusOK, gin.H{"errCode": constant.LogicalError, "errMsg": "Verification expired!", "data": data}) + return + } + if v != params.VerificationCode { + log.InfoByKv("password Verification code error", account, params.VerificationCode) + data := make(map[string]interface{}) + data["PhoneNumber"] = account + c.JSON(http.StatusOK, gin.H{"errCode": constant.LogicalError, "errMsg": "Verification code error!", "data": data}) + return + } + +openIMRegisterTab: + log.InfoByKv("openIM register begin", account) + resp, err := OpenIMRegister(account) + + log.InfoByKv("openIM register resp", account, resp, err) + if err != nil { + log.ErrorByKv("request openIM register error", account, "err", err.Error()) + c.JSON(http.StatusOK, gin.H{"errCode": constant.HttpError, "errMsg": err.Error()}) + return + } + response, err := ioutil.ReadAll(resp.Body) + defer resp.Body.Close() + if err != nil { + c.JSON(http.StatusOK, gin.H{"errCode": constant.IoErrot, "errMsg": err.Error()}) + return + } + imrep := IMRegisterResp{} + err = json.Unmarshal(response, &imrep) + if err != nil { + c.JSON(http.StatusOK, gin.H{"errCode": constant.FormattingError, "errMsg": err.Error()}) + return + } + if imrep.ErrCode != 0 { + c.JSON(http.StatusOK, gin.H{"errCode": constant.HttpError, "errMsg": imrep.ErrMsg}) + return + } + + queryParams := im_mysql_model.SetPasswordParams{ + Account: account, + Password: params.Password, + } + + log.InfoByKv("begin store mysql", account, params.Password) + _, err = im_mysql_model.SetPassword(&queryParams) + if err != nil { + log.ErrorByKv("set phone number password error", account, "err", err.Error()) + c.JSON(http.StatusOK, gin.H{"errCode": constant.DatabaseError, "errMsg": err.Error()}) + return + } + + log.InfoByKv("end setPassword", account) + c.JSON(http.StatusOK, gin.H{"errCode": constant.NoError, "errMsg": "", "data": imrep.Data}) + return +} + +func OpenIMRegister(account string) (*http.Response, error) { + url := fmt.Sprintf("http://%s:10000/auth/user_register", utils.ServerIP) + fmt.Println("1:", config.Config.Secret) + + client := &http.Client{} + + params := make(map[string]interface{}) + + params["secret"] = config.Config.Secret + params["platform"] = 7 + params["uid"] = account + params["name"] = account + params["icon"] = "" + params["gender"] = 0 + + params["mobile"] = "" + + params["email"] = "" + params["birth"] = "" + params["ex"] = "" + con, err := json.Marshal(params) + if err != nil { + return nil, err + } + + log.InfoByKv("openIM register params", account, params) + req, err := http.NewRequest("POST", url, bytes.NewBuffer([]byte(con))) + if err != nil { + return nil, err + } + + resp, err := client.Do(req) + + return resp, err +} diff --git a/internal/demo/register/verify.go b/internal/demo/register/verify.go new file mode 100644 index 000000000..c60b17c70 --- /dev/null +++ b/internal/demo/register/verify.go @@ -0,0 +1,69 @@ +package register + +import ( + "Open_IM/pkg/common/config" + "Open_IM/pkg/common/constant" + "Open_IM/pkg/common/db" + "Open_IM/pkg/common/log" + + "github.com/garyburd/redigo/redis" + "github.com/gin-gonic/gin" + "net/http" +) + +type paramsCertification struct { + Email string `json:"email"` + PhoneNumber string `json:"phoneNumber"` + VerificationCode string `json:"verificationCode"` +} + +func Verify(c *gin.Context) { + log.InfoByKv("Verify api is statrting...", "") + params := paramsCertification{} + + if err := c.BindJSON(¶ms); err != nil { + log.ErrorByKv("request params json parsing failed", "", "err", err.Error()) + c.JSON(http.StatusBadRequest, gin.H{"errCode": constant.FormattingError, "errMsg": err.Error()}) + return + } + + var account string + if params.Email != "" { + account = params.Email + } else { + account = params.PhoneNumber + } + + if params.VerificationCode == config.Config.Demo.SuperCode { + log.InfoByKv("Super Code Verified successfully", account) + data := make(map[string]interface{}) + data["account"] = account + data["verificationCode"] = params.VerificationCode + c.JSON(http.StatusOK, gin.H{"errCode": constant.NoError, "errMsg": "Verified successfully!", "data": data}) + return + } + + log.InfoByKv("begin get form redis", account) + v, err := redis.String(db.DB.Exec("GET", account)) + log.InfoByKv("redis phone number and verificating Code", account, v) + if err != nil { + log.ErrorByKv("Verification code expired", account, "err", err.Error()) + data := make(map[string]interface{}) + data["account"] = account + c.JSON(http.StatusOK, gin.H{"errCode": constant.LogicalError, "errMsg": "Verification code expired!", "data": data}) + return + } + if params.VerificationCode == v { + log.InfoByKv("Verified successfully", account) + data := make(map[string]interface{}) + data["account"] = account + data["verificationCode"] = params.VerificationCode + c.JSON(http.StatusOK, gin.H{"errCode": constant.NoError, "errMsg": "Verified successfully!", "data": data}) + return + } else { + log.InfoByKv("Verification code error", account, params.VerificationCode) + data := make(map[string]interface{}) + data["account"] = account + c.JSON(http.StatusOK, gin.H{"errCode": constant.LogicalError, "errMsg": "Verification code error!", "data": data}) + } +} diff --git a/pkg/common/config/config.go b/pkg/common/config/config.go index e0c25f2c7..f7bb65935 100644 --- a/pkg/common/config/config.go +++ b/pkg/common/config/config.go @@ -155,6 +155,23 @@ type config struct { CallbackUrl string `yaml:"callbackUrl"` CallBackTimeOut int `yaml:"callbackTimeOut"` } + Demo struct { + Port []int `yaml:"openImDemoPort"` + AliSMSVerify struct { + AccessKeyID string `yaml:"accessKeyId"` + AccessKeySecret string `yaml:"accessKeySecret"` + SignName string `yaml:"signName"` + VerificationCodeTemplateCode string `yaml:"verificationCodeTemplateCode"` + } + SuperCode string `yaml:"superCode"` + Mail struct { + Title string `yaml:"title"` + SenderMail string `yaml:"senderMail"` + SenderAuthorizationCode string `yaml:"senderAuthorizationCode"` + SmtpAddr string `yaml:"smtpAddr"` + SmtpPort int `yaml:"smtpPort"` + } + } } func init() { diff --git a/pkg/common/constant/error.go b/pkg/common/constant/error.go index 938b49b98..7541a784e 100644 --- a/pkg/common/constant/error.go +++ b/pkg/common/constant/error.go @@ -60,6 +60,17 @@ var ( TokenUnknown = errors.New("couldn't handle this token") ) +const ( + NoError = 0 + FormattingError = 10001 + DatabaseError = 10002 + LogicalError = 10003 + ServerError = 10004 + HttpError = 10005 + IoErrot = 10006 + IntentionalError = 10007 +) + func (e *ErrInfo) Error() string { return e.ErrMsg } diff --git a/pkg/common/db/mysql.go b/pkg/common/db/mysql.go index 0740518ac..859620e36 100644 --- a/pkg/common/db/mysql.go +++ b/pkg/common/db/mysql.go @@ -182,6 +182,16 @@ func initMysqlDB() { panic(err.Error()) } + sqlTable = "CREATE TABLE IF NOT EXISTS `register` (" + + " `account` varchar(255) NOT NULL," + + " `password` varchar(255) NOT NULL," + + " PRIMARY KEY (`account`) USING BTREE" + + " ) ENGINE=InnoDB DEFAULT CHARSET=latin1 ROW_FORMAT=DYNAMIC;" + err = db.Exec(sqlTable).Error + if err != nil { + panic(err.Error()) + } + } func (m *mysqlDB) DefaultGormDB() (*gorm.DB, error) { diff --git a/pkg/common/db/mysql_model/im_mysql_model/demo_model.go b/pkg/common/db/mysql_model/im_mysql_model/demo_model.go new file mode 100644 index 000000000..b0b700eb9 --- /dev/null +++ b/pkg/common/db/mysql_model/im_mysql_model/demo_model.go @@ -0,0 +1,64 @@ +package im_mysql_model + +import ( + "Open_IM/pkg/common/db" + _ "github.com/jinzhu/gorm" +) + +type GetRegisterParams struct { + Account string `json:"account"` +} +type Register struct { + Account string `gorm:"column:account"` + Password string `gorm:"column:password"` +} + +func GetRegister(params *GetRegisterParams) (Register, error, int64) { + var r Register + dbConn, err := db.DB.MysqlDB.DefaultGormDB() + if err != nil { + return r, err, 0 + } + result := dbConn. + Where(&Register{Account: params.Account}). + Find(&r) + return r, result.Error, result.RowsAffected +} + +type SetPasswordParams struct { + Account string `json:"account"` + Password string `json:"password"` +} + +func SetPassword(params *SetPasswordParams) (Register, error) { + r := Register{ + Account: params.Account, + Password: params.Password, + } + dbConn, err := db.DB.MysqlDB.DefaultGormDB() + if err != nil { + return r, err + } + + result := dbConn.Create(&r) + + return r, result.Error +} + +func Login(params *Register) int64 { + var r Register + dbConn, err := db.DB.MysqlDB.DefaultGormDB() + if err != nil { + return 3 + } + result := dbConn. + Where(&Register{Account: params.Account}). + Find(&r) + if result.Error != nil && result.RowsAffected == 0 { + return 1 + } + if r.Password != params.Password { + return 2 + } + return 0 +} diff --git a/pkg/common/db/redisModel.go b/pkg/common/db/redisModel.go index 2b747cb7d..2b916943c 100644 --- a/pkg/common/db/redisModel.go +++ b/pkg/common/db/redisModel.go @@ -88,11 +88,6 @@ func (d *DataBases) GetTokenMapByUidPid(userID, platformID string) (map[string]i } func (d *DataBases) SetTokenMapByUidPid(userID string, platformID int32, m map[string]int) error { key := uidPidToken + userID + ":" + constant.PlatformIDToName(platformID) - //var a []interface{} - //for k, v := range m { - // a = append(a, k) - // a = append(a, v) - //} _, err := d.Exec("hmset", key, redis.Args{}.Add().AddFlat(m)...) return err } diff --git a/pkg/common/db/redisModel_test.go b/pkg/common/db/redisModel_test.go index f8b5c299f..7da463a5b 100644 --- a/pkg/common/db/redisModel_test.go +++ b/pkg/common/db/redisModel_test.go @@ -8,8 +8,8 @@ import ( func Test_SetTokenMapByUidPid(t *testing.T) { m := make(map[string]int, 0) - m["哈哈"] = 1 - m["heihei"] = 2 + m["test1"] = 1 + m["test2"] = 2 m["2332"] = 4 _ = DB.SetTokenMapByUidPid("1234", 2, m) diff --git a/script/check_all.sh b/script/check_all.sh index 9e6d45db4..ce65c9533 100644 --- a/script/check_all.sh +++ b/script/check_all.sh @@ -14,6 +14,7 @@ service_port_name=( openImPushPort openImWsPort openImSdkWsPort + openImDemoPort ) for i in ${service_port_name[*]}; do list=$(cat $config_path | grep -w ${i} | awk -F '[:]' '{print $NF}') diff --git a/script/demo_svr_start.sh b/script/demo_svr_start.sh new file mode 100644 index 000000000..083f9c6ed --- /dev/null +++ b/script/demo_svr_start.sh @@ -0,0 +1,47 @@ +#!/usr/bin/env bash +#Include shell font styles and some basic information +source ./style_info.cfg +source ./path_info.cfg +source ./function.sh +switch=$(cat $config_path | grep demoswitch ) +if [[ ${switch} -ne true ]]; then + echo -e ${YELLOW_PREFIX}" demo service switch is false not start demo "${COLOR_SUFFIX} + exit 0 +fi +list1=$(cat $config_path | grep openImDemoPort | awk -F '[:]' '{print $NF}') +list_to_string $list1 +api_ports=($ports_array) + +#Check if the service exists +#If it is exists,kill this process +check=$(ps aux | grep -w ./${demo_server_name} | grep -v grep | wc -l) +if [ $check -ge 1 ]; then + oldPid=$(ps aux | grep -w ./${demo_server_name} | grep -v grep | awk '{print $2}') + kill -9 $oldPid +fi +#Waiting port recycling +sleep 1 +cd ${demo_server_source_root} + +for ((i = 0; i < ${#rpc_ports[@]}; i++)); do + nohup ./${demo_server_name} -port ${rpc_ports[$i]} >>../logs/openIM.log 2>&1 & +done + +sleep 3 +#Check launched service process +check=$(ps aux | grep -w ./${demo_server_name} | grep -v grep | wc -l) +if [ $check -ge 1 ]; then + newPid=$(ps aux | grep -w ./${demo_server_name} | grep -v grep | awk '{print $2}') + ports=$(netstat -netulp | grep -w ${newPid} | awk '{print $4}' | awk -F '[:]' '{print $NF}') + allPorts="" + + for i in $ports; do + allPorts=${allPorts}"$i " + done + echo -e ${SKY_BLUE_PREFIX}"SERVICE START SUCCESS "${COLOR_SUFFIX} + echo -e ${SKY_BLUE_PREFIX}"SERVICE_NAME: "${COLOR_SUFFIX}${YELLOW_PREFIX}${demo_server_name}${COLOR_SUFFIX} + echo -e ${SKY_BLUE_PREFIX}"PID: "${COLOR_SUFFIX}${YELLOW_PREFIX}${newPid}${COLOR_SUFFIX} + echo -e ${SKY_BLUE_PREFIX}"LISTENING_PORT: "${COLOR_SUFFIX}${YELLOW_PREFIX}${allPorts}${COLOR_SUFFIX} +else + echo -e ${YELLOW_PREFIX}${demo_server_name}${COLOR_SUFFIX}${RED_PREFIX}"SERVICE START ERROR, PLEASE CHECK openIM.log"${COLOR_SUFFIX} +fi diff --git a/script/docker_start_all.sh b/script/docker_start_all.sh index 5d0c19b2e..5c81305c3 100644 --- a/script/docker_start_all.sh +++ b/script/docker_start_all.sh @@ -10,6 +10,7 @@ need_to_start_server_shell=( msg_transfer_start.sh sdk_svr_start.sh timer_start.sh + demo_svr_start.sh ) #fixme The 10 second delay to start the project is for the docker-compose one-click to start openIM when the infrastructure dependencies are not started diff --git a/script/path_info.cfg b/script/path_info.cfg index b97588e61..ecbcb8356 100644 --- a/script/path_info.cfg +++ b/script/path_info.cfg @@ -27,6 +27,10 @@ sdk_server_name="open_im_sdk_server" sdk_server_binary_root="../bin/" sdk_server_source_root="../cmd/Open-IM-SDK-Core/" +demo_server_name="open_im_sdk_server" +demo_server_binary_root="../bin/" +demo_server_source_root="../cmd/open_im_demo/" + #Global configuration file default dir config_path="../config/config.yaml" @@ -46,6 +50,7 @@ service_source_root=( ${push_source_root} ${sdk_server_source_root} ${timer_task_source_root} + ${demo_server_source_root} ) #service filename service_names=( @@ -62,6 +67,7 @@ service_names=( ${push_name} ${sdk_server_name} ${timer_task_name} + ${demo_server_name} ) diff --git a/script/start_all.sh b/script/start_all.sh index 956bc0d51..dd9420adc 100644 --- a/script/start_all.sh +++ b/script/start_all.sh @@ -10,6 +10,7 @@ need_to_start_server_shell=( msg_transfer_start.sh sdk_svr_start.sh timer_start.sh + demo_svr_start.sh ) for i in ${need_to_start_server_shell[*]}; do From 23b965a20a1cd9a56ee48427e0f60ce1fa8ef2c0 Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Wed, 1 Dec 2021 12:30:27 +0800 Subject: [PATCH 136/814] demo merge into project --- script/demo_svr_start.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/script/demo_svr_start.sh b/script/demo_svr_start.sh index 083f9c6ed..57046b950 100644 --- a/script/demo_svr_start.sh +++ b/script/demo_svr_start.sh @@ -3,7 +3,7 @@ source ./style_info.cfg source ./path_info.cfg source ./function.sh -switch=$(cat $config_path | grep demoswitch ) +switch=$(cat $config_path | grep demoswitch |awk -F '[:]' '{print $NF}') if [[ ${switch} -ne true ]]; then echo -e ${YELLOW_PREFIX}" demo service switch is false not start demo "${COLOR_SUFFIX} exit 0 From a8341ec86d6ce570e4a4a20b8393e68918752e9c Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Wed, 1 Dec 2021 12:31:51 +0800 Subject: [PATCH 137/814] demo merge into project --- script/demo_svr_start.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/script/demo_svr_start.sh b/script/demo_svr_start.sh index 57046b950..7b019fd50 100644 --- a/script/demo_svr_start.sh +++ b/script/demo_svr_start.sh @@ -23,8 +23,8 @@ fi sleep 1 cd ${demo_server_source_root} -for ((i = 0; i < ${#rpc_ports[@]}; i++)); do - nohup ./${demo_server_name} -port ${rpc_ports[$i]} >>../logs/openIM.log 2>&1 & +for ((i = 0; i < ${#api_ports[@]}; i++)); do + nohup ./${demo_server_name} -port ${api_ports[$i]} >>../logs/openIM.log 2>&1 & done sleep 3 From cf069970bd48bb7bf6adf1a32523a5580274de42 Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Wed, 1 Dec 2021 12:35:21 +0800 Subject: [PATCH 138/814] demo merge into project --- script/demo_svr_start.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/script/demo_svr_start.sh b/script/demo_svr_start.sh index 7b019fd50..104eecaed 100644 --- a/script/demo_svr_start.sh +++ b/script/demo_svr_start.sh @@ -21,7 +21,7 @@ if [ $check -ge 1 ]; then fi #Waiting port recycling sleep 1 -cd ${demo_server_source_root} +cd ${demo_server_binary_root} for ((i = 0; i < ${#api_ports[@]}; i++)); do nohup ./${demo_server_name} -port ${api_ports[$i]} >>../logs/openIM.log 2>&1 & From c476c255b80eccc64c282d38293395fb6ee77df1 Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Wed, 1 Dec 2021 12:44:34 +0800 Subject: [PATCH 139/814] demo merge into project --- cmd/Open-IM-SDK-Core | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cmd/Open-IM-SDK-Core b/cmd/Open-IM-SDK-Core index 0e5729141..369973051 160000 --- a/cmd/Open-IM-SDK-Core +++ b/cmd/Open-IM-SDK-Core @@ -1 +1 @@ -Subproject commit 0e57291413f3cccd365c6947875387638349276a +Subproject commit 369973051405db1102fd1b99a0226ab79b9922e0 From 140724d665ca89bbf409be9c5cb39e38f026734b Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Wed, 1 Dec 2021 12:44:39 +0800 Subject: [PATCH 140/814] demo merge into project --- script/path_info.cfg | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/script/path_info.cfg b/script/path_info.cfg index ecbcb8356..ea9fa76e9 100644 --- a/script/path_info.cfg +++ b/script/path_info.cfg @@ -27,7 +27,7 @@ sdk_server_name="open_im_sdk_server" sdk_server_binary_root="../bin/" sdk_server_source_root="../cmd/Open-IM-SDK-Core/" -demo_server_name="open_im_sdk_server" +demo_server_name="open_im_demo" demo_server_binary_root="../bin/" demo_server_source_root="../cmd/open_im_demo/" From ace6ef00298fea653f7277a98778278bd0cae6c4 Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Wed, 1 Dec 2021 13:14:17 +0800 Subject: [PATCH 141/814] demo merge into project --- script/check_all.sh | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/script/check_all.sh b/script/check_all.sh index ce65c9533..6b3e1e8b7 100644 --- a/script/check_all.sh +++ b/script/check_all.sh @@ -16,7 +16,11 @@ service_port_name=( openImSdkWsPort openImDemoPort ) +switch=$(cat $config_path | grep demoswitch |awk -F '[:]' '{print $NF}') for i in ${service_port_name[*]}; do + if [[ ${switch} -ne true ]]&&[$i -eq openImDemoPort]; then + continue + fi list=$(cat $config_path | grep -w ${i} | awk -F '[:]' '{print $NF}') list_to_string $list for j in ${ports_array}; do From 3ae5c9dca13f3f094069e4596e82563e0ee9b8b1 Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Wed, 1 Dec 2021 13:35:28 +0800 Subject: [PATCH 142/814] demo merge into project --- script/check_all.sh | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/script/check_all.sh b/script/check_all.sh index 6b3e1e8b7..d4c467eab 100644 --- a/script/check_all.sh +++ b/script/check_all.sh @@ -18,8 +18,10 @@ service_port_name=( ) switch=$(cat $config_path | grep demoswitch |awk -F '[:]' '{print $NF}') for i in ${service_port_name[*]}; do - if [[ ${switch} -ne true ]]&&[$i -eq openImDemoPort]; then - continue + if [[ ${switch} -ne true ]]; then + if [ $i -eq openImDemoPort]; then + continue + fi fi list=$(cat $config_path | grep -w ${i} | awk -F '[:]' '{print $NF}') list_to_string $list From c1ed2f14c8d17b81731ec17bc051bee0921fda23 Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Wed, 1 Dec 2021 14:28:47 +0800 Subject: [PATCH 143/814] demo merge into project --- config/config.yaml | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/config/config.yaml b/config/config.yaml index 75f07ca73..7dd3403b0 100644 --- a/config/config.yaml +++ b/config/config.yaml @@ -151,15 +151,15 @@ demoswitch: true demo: openImDemoPort: [ 42233 ] alismsverify: - accessKeyId: LTAI5tJPkn4HuuePdiLdGqe7 - accessKeySecret: 4n9OJ7ZCVN1U6KeHDAtOyNeVZcjOuV + accessKeyId: LTAI5tJPkn4HuuePdiLdGqe71 + accessKeySecret: 4n9OJ7ZCVN1U6KeHDAtOyNeVZcjOuV1 signName: OpenIM Corporation - verificationCodeTemplateCode: SMS_226810164 + verificationCodeTemplateCode: SMS_2268101641 superCode: 666666 mail: - title: "挼信" - senderMail: "765567899@qq.com" - senderAuthorizationCode: "gxyausfoevlzbfag" + title: "openIM" + senderMail: "1765567899@qq.com" + senderAuthorizationCode: "1gxyausfoevlzbfag" smtpAddr: "smtp.qq.com" smtpPort: 25 From f08941c0bd2267da0334ee18500e00ee494313da Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Wed, 1 Dec 2021 14:39:29 +0800 Subject: [PATCH 144/814] demo merge into project --- pkg/common/db/mysql_model/im_mysql_model/user_model.go | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) 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 f378fdbb5..cbf87f7fe 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 @@ -121,7 +121,10 @@ func SelectAllUID() ([]string, error) { if err != nil { return uid, err } - rows, _ := dbConn.Raw("select uid from user").Rows() + rows, err := dbConn.Raw("select uid from user").Rows() + if err != nil { + return uid, err + } defer rows.Close() var strUID string for rows.Next() { From 0501cbcf4c7b225dbe52748777a82b5942eac553 Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Wed, 1 Dec 2021 14:52:55 +0800 Subject: [PATCH 145/814] demo merge into project --- script/check_all.sh | 4 ++-- script/demo_svr_start.sh | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/script/check_all.sh b/script/check_all.sh index d4c467eab..0c7313743 100644 --- a/script/check_all.sh +++ b/script/check_all.sh @@ -18,8 +18,8 @@ service_port_name=( ) switch=$(cat $config_path | grep demoswitch |awk -F '[:]' '{print $NF}') for i in ${service_port_name[*]}; do - if [[ ${switch} -ne true ]]; then - if [ $i -eq openImDemoPort]; then + if [ ${switch} != "true" ]; then + if [ ${i} == "openImDemoPort"]; then continue fi fi diff --git a/script/demo_svr_start.sh b/script/demo_svr_start.sh index 104eecaed..55aaa88b1 100644 --- a/script/demo_svr_start.sh +++ b/script/demo_svr_start.sh @@ -4,7 +4,7 @@ source ./style_info.cfg source ./path_info.cfg source ./function.sh switch=$(cat $config_path | grep demoswitch |awk -F '[:]' '{print $NF}') -if [[ ${switch} -ne true ]]; then +if [ ${switch} != "true" ]; then echo -e ${YELLOW_PREFIX}" demo service switch is false not start demo "${COLOR_SUFFIX} exit 0 fi From aac7a0f5afb071266f228be8c17d0eacecde907e Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Wed, 1 Dec 2021 20:03:06 +0800 Subject: [PATCH 146/814] script --- script/docker_check_service.sh | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/script/docker_check_service.sh b/script/docker_check_service.sh index c65d38d7f..6579d400c 100644 --- a/script/docker_check_service.sh +++ b/script/docker_check_service.sh @@ -1,10 +1,10 @@ #!/usr/bin/env bash -echo "docker-compose ps....................." +echo "docker-compose ps..........................." docker-compose ps -sleep 10 +echo "check OpenIM, waiting 30s...................." +sleep 30 -echo "check OpenIM.........................." +echo "check OpenIM................................" ./check_all.sh - From 6d1c70b8d3380101bb9e214b4f19b3557a8b3f1e Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Thu, 2 Dec 2021 11:27:06 +0800 Subject: [PATCH 147/814] get online state by secret --- internal/api/user/get_user_info.go | 68 ++++++++++++++++++++++++++++++ 1 file changed, 68 insertions(+) diff --git a/internal/api/user/get_user_info.go b/internal/api/user/get_user_info.go index ac7875356..db8a6d77d 100644 --- a/internal/api/user/get_user_info.go +++ b/internal/api/user/get_user_info.go @@ -2,8 +2,10 @@ package user import ( "Open_IM/pkg/common/config" + "Open_IM/pkg/common/constant" "Open_IM/pkg/common/log" "Open_IM/pkg/grpc-etcdv3/getcdv3" + pbRelay "Open_IM/pkg/proto/relay" pbUser "Open_IM/pkg/proto/user" "context" "github.com/gin-gonic/gin" @@ -22,6 +24,72 @@ type userInfo struct { Ex string `json:"ex"` } +type paramsGetUsersOnlineStatus struct { + OperationID string `json:"operationID" binding:"required"` + UserIDList []string `json:"userIDList" binding:"required,lte=200"` + Secret string `json:"secret" binding:"required,max=32"` +} + +func GetUsersOnlineStatus(c *gin.Context) { + params := paramsGetUsersOnlineStatus{} + if err := c.BindJSON(¶ms); err != nil { + log.NewError(params.OperationID, "bind json failed ", err.Error(), c) + c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": err.Error()}) + return + } + + if params.Secret != config.Config.Secret { + log.NewError(params.OperationID, "parse token failed ", params.Secret, config.Config.Secret) + c.JSON(http.StatusBadRequest, gin.H{"errCode": 401, "errMsg": "secret failed"}) + return + } + + req := &pbRelay.GetUsersOnlineStatusReq{ + OperationID: params.OperationID, + UserIDList: params.UserIDList, + } + var wsResult []*pbRelay.GetUsersOnlineStatusResp_SuccessResult + var respResult []*pbRelay.GetUsersOnlineStatusResp_SuccessResult + flag := false + log.NewDebug(params.OperationID, "GetUsersOnlineStatus req come here", params.UserIDList) + + grpcCons := getcdv3.GetConn4Unique(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImOnlineMessageRelayName) + for _, v := range grpcCons { + client := pbRelay.NewOnlineMessageRelayServiceClient(v) + reply, err := client.GetUsersOnlineStatus(context.Background(), req) + if err != nil { + log.NewError(params.OperationID, "GetUsersOnlineStatus rpc err", req.String(), err.Error()) + continue + } else { + if reply.ErrCode == 0 { + wsResult = append(wsResult, reply.SuccessResult...) + } + } + } + log.NewDebug(params.OperationID, "call GetUsersOnlineStatus rpc server is success", wsResult) + //Online data merge of each node + for _, v1 := range params.UserIDList { + flag = false + temp := new(pbRelay.GetUsersOnlineStatusResp_SuccessResult) + for _, v2 := range wsResult { + if v2.UserID == v1 { + flag = true + temp.UserID = v1 + temp.Status = constant.OnlineStatus + temp.DetailPlatformStatus = append(temp.DetailPlatformStatus, v2.DetailPlatformStatus...) + } + } + if !flag { + temp.UserID = v1 + temp.Status = constant.OfflineStatus + } + respResult = append(respResult, temp) + } + log.NewDebug(params.OperationID, "Finished merged data", respResult) + resp := gin.H{"errCode": 0, "errMsg": "", "successResult": respResult} + c.JSON(http.StatusOK, resp) +} + func GetUserInfo(c *gin.Context) { log.InfoByKv("api get userinfo init...", "") From 5cd1af5b485132062734ede39ab53b9f2724c54b Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Thu, 2 Dec 2021 11:47:30 +0800 Subject: [PATCH 148/814] script --- script/build_images.sh | 11 +++++++++++ 1 file changed, 11 insertions(+) create mode 100644 script/build_images.sh diff --git a/script/build_images.sh b/script/build_images.sh new file mode 100644 index 000000000..ad37e24e4 --- /dev/null +++ b/script/build_images.sh @@ -0,0 +1,11 @@ +#!/usr/bin/env bash +image=openim/open_im_server:v1.0.5 +rm Open-IM-Server -rf +git clone https://github.com/OpenIMSDK/Open-IM-Server.git --recursive +cd Open-IM-Server +git checkout tuoyun +cd cmd/Open-IM-SDK-Core/ +git checkout tuoyun +cd ../../ +docker build -t $image . -f deploy.Dockerfile +docker push $image \ No newline at end of file From e6b58190994344cbdbb307dfc675d7fe0ff99def Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Thu, 2 Dec 2021 14:10:47 +0800 Subject: [PATCH 149/814] redis prefix modify --- internal/demo/register/set_password.go | 2 +- pkg/common/db/redisModel.go | 2 +- pkg/common/log/es_hk.go | 7 +++---- 3 files changed, 5 insertions(+), 6 deletions(-) diff --git a/internal/demo/register/set_password.go b/internal/demo/register/set_password.go index e854cd10e..7dca79dc6 100644 --- a/internal/demo/register/set_password.go +++ b/internal/demo/register/set_password.go @@ -127,7 +127,7 @@ func OpenIMRegister(account string) (*http.Response, error) { params := make(map[string]interface{}) params["secret"] = config.Config.Secret - params["platform"] = 7 + params["platform"] = 2 params["uid"] = account params["name"] = account params["icon"] = "" diff --git a/pkg/common/db/redisModel.go b/pkg/common/db/redisModel.go index 2b916943c..d991408ef 100644 --- a/pkg/common/db/redisModel.go +++ b/pkg/common/db/redisModel.go @@ -11,7 +11,7 @@ const ( appleDeviceToken = "DEVICE_TOKEN" lastGetSeq = "LAST_GET_SEQ" userMinSeq = "REDIS_USER_MIN_SEQ:" - uidPidToken = "UID_PID_TOKEN:" + uidPidToken = "UID_PID_TOKEN_STATUS:" ) func (d *DataBases) Exec(cmd string, key interface{}, args ...interface{}) (interface{}, error) { diff --git a/pkg/common/log/es_hk.go b/pkg/common/log/es_hk.go index 061773e5d..19eafaed5 100644 --- a/pkg/common/log/es_hk.go +++ b/pkg/common/log/es_hk.go @@ -61,19 +61,18 @@ func newEsHook(moduleName string) *esHook { return &esHook{client: es, moduleName: moduleName} } -//Fire log hook interface 方法 +//Fire log hook interface func (hook *esHook) Fire(entry *logrus.Entry) error { doc := newEsLog(entry) go hook.sendEs(doc) return nil } -//Levels log hook interface 方法,此hook影响的日志 func (hook *esHook) Levels() []logrus.Level { return logrus.AllLevels } -//sendEs 异步发送日志到es +//sendEs func (hook *esHook) sendEs(doc appLogDocModel) { defer func() { if r := recover(); r != nil { @@ -102,7 +101,7 @@ func newEsLog(e *logrus.Entry) appLogDocModel { return ins } -// indexName es index name 时间分割 +// indexName es index name func (m *appLogDocModel) indexName() string { return time.Now().Format("2006-01-02") } From 67ede12fd8e43f82d4ded7af292b3b1d51c602c1 Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Thu, 2 Dec 2021 20:42:17 +0800 Subject: [PATCH 150/814] online state --- cmd/open_im_api/main.go | 1 + 1 file changed, 1 insertion(+) diff --git a/cmd/open_im_api/main.go b/cmd/open_im_api/main.go index 6d6bf85c4..42e0dcabf 100644 --- a/cmd/open_im_api/main.go +++ b/cmd/open_im_api/main.go @@ -33,6 +33,7 @@ func main() { { userRouterGroup.POST("/update_user_info", user.UpdateUserInfo) userRouterGroup.POST("/get_user_info", user.GetUserInfo) + userRouterGroup.POST("/get_users_online_status", user.GetUsersOnlineStatus) } //friend routing group friendRouterGroup := r.Group("/friend") From 65398fb1472049b996c126957c8660aa20011402 Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Thu, 2 Dec 2021 21:35:01 +0800 Subject: [PATCH 151/814] callback config --- config/config.yaml | 21 ++++++++++++++++++--- 1 file changed, 18 insertions(+), 3 deletions(-) diff --git a/config/config.yaml b/config/config.yaml index 7dd3403b0..02dbc6638 100644 --- a/config/config.yaml +++ b/config/config.yaml @@ -79,7 +79,15 @@ rpcport: openImGroupPort: [ 10500 ] openImAuthPort: [ 10600 ] openImPushPort: [ 10700 ] - + c2c: + callbackBeforeSendMsg: + switch: false + timeoutStrategy: 1 #1:send + callbackAfterSendMsg: + switch: false + state: + stateChange: + switch: false rpcregistername: openImUserName: User @@ -139,11 +147,18 @@ tokenpolicy: accessExpire: 7 messagecallback: - callbackSwitch: false callbackUrl: "http://www.xxx.com/msg/judge" #TimeOut use second as unit callbackTimeOut: 10 - + c2c: + callbackBeforeSendMsg: + switch: false + timeoutStrategy: 1 #1:send + callbackAfterSendMsg: + switch: false + state: + stateChange: + switch: false #---------------demo configuration---------------------# #The following configuration items are applied to openIM Demo configuration From f1b51f9c97b7057886d9751ac330be470fe8afcc Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Fri, 3 Dec 2021 11:50:30 +0800 Subject: [PATCH 152/814] fix bug: QuitGroup Find ->Scan --- pkg/common/db/mysql_model/im_mysql_model/group_member_model.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkg/common/db/mysql_model/im_mysql_model/group_member_model.go b/pkg/common/db/mysql_model/im_mysql_model/group_member_model.go index 60ad86e85..a31f973e1 100644 --- a/pkg/common/db/mysql_model/im_mysql_model/group_member_model.go +++ b/pkg/common/db/mysql_model/im_mysql_model/group_member_model.go @@ -63,7 +63,7 @@ func FindGroupMemberInfoByGroupIdAndUserId(groupId, uid string) (*GroupMember, e return nil, err } var groupMember GroupMember - err = dbConn.Raw("select * from `group_member` where group_id=? and uid=? limit 1", groupId, uid).Scan(&groupMember).Error + err = dbConn.Raw("select * from `group_member` where group_id=? and uid=? limit 1", groupId, uid).Find(&groupMember).Error if err != nil { return nil, err } From 70eaa7d9688244e1999d9f2e238ebdefcae14528 Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Mon, 6 Dec 2021 16:06:19 +0800 Subject: [PATCH 153/814] redis add message receive opt --- pkg/common/constant/constant.go | 5 +++++ pkg/common/db/redisModel.go | 27 ++++++++++++--------------- 2 files changed, 17 insertions(+), 15 deletions(-) diff --git a/pkg/common/constant/constant.go b/pkg/common/constant/constant.go index 42a4d07c3..9115e6cf5 100644 --- a/pkg/common/constant/constant.go +++ b/pkg/common/constant/constant.go @@ -89,6 +89,11 @@ const ( OnlineStatus = "online" OfflineStatus = "offline" + + //MsgReceiveOpt + ReceiveMessage = 0 + NotReceiveMessage = 1 + ReceiveNotNotifyMessage = 2 ) var ContentType2PushContent = map[int64]string{ diff --git a/pkg/common/db/redisModel.go b/pkg/common/db/redisModel.go index d991408ef..362eec15d 100644 --- a/pkg/common/db/redisModel.go +++ b/pkg/common/db/redisModel.go @@ -7,11 +7,11 @@ import ( ) const ( - userIncrSeq = "REDIS_USER_INCR_SEQ:" // user incr seq - appleDeviceToken = "DEVICE_TOKEN" - lastGetSeq = "LAST_GET_SEQ" - userMinSeq = "REDIS_USER_MIN_SEQ:" - uidPidToken = "UID_PID_TOKEN_STATUS:" + userIncrSeq = "REDIS_USER_INCR_SEQ:" // user incr seq + appleDeviceToken = "DEVICE_TOKEN" + userMinSeq = "REDIS_USER_MIN_SEQ:" + uidPidToken = "UID_PID_TOKEN_STATUS:" + conversationReceiveMessageOpt = "CON_RECV_MSG_OPT:" ) func (d *DataBases) Exec(cmd string, key interface{}, args ...interface{}) (interface{}, error) { @@ -91,15 +91,12 @@ func (d *DataBases) SetTokenMapByUidPid(userID string, platformID int32, m map[s _, err := d.Exec("hmset", key, redis.Args{}.Add().AddFlat(m)...) return err } - -//Check exists userid and platform class from redis -func (d *DataBases) ExistsUserIDAndPlatform(userID, platformClass string) (int64, error) { - key := userID + platformClass - return redis.Int64(d.Exec("EXISTS", key)) +func (d *DataBases) SetConversationMsgOpt(userID, conversationID string, opt int) error { + key := conversationReceiveMessageOpt + userID + _, err1 := d.Exec("HSet", key, conversationID, opt) + return err1 } - -//Get platform class Token -func (d *DataBases) GetPlatformToken(userID, platformClass string) (string, error) { - key := userID + platformClass - return redis.String(d.Exec("GET", key)) +func (d *DataBases) GetConversationMsgOpt(userID, conversationID string) (int, error) { + key := conversationReceiveMessageOpt + userID + return redis.Int(d.Exec("HGet", key, conversationID)) } From 33b96859853842576322be00945cdfe2cf2d1d49 Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Mon, 6 Dec 2021 20:03:59 +0800 Subject: [PATCH 154/814] send message by message receive opt --- internal/rpc/chat/send_msg.go | 56 ++++++++++++++++++++++++++++++----- pkg/utils/map.go | 5 +++- pkg/utils/strings.go | 10 +++++++ 3 files changed, 62 insertions(+), 9 deletions(-) diff --git a/internal/rpc/chat/send_msg.go b/internal/rpc/chat/send_msg.go index 298f3ab65..530db7fd4 100644 --- a/internal/rpc/chat/send_msg.go +++ b/internal/rpc/chat/send_msg.go @@ -5,6 +5,7 @@ import ( "Open_IM/internal/push/content_struct" "Open_IM/pkg/common/config" "Open_IM/pkg/common/constant" + "Open_IM/pkg/common/db" http2 "Open_IM/pkg/common/http" "Open_IM/pkg/common/log" "Open_IM/pkg/grpc-etcdv3/getcdv3" @@ -105,9 +106,17 @@ func (rpc *rpcChat) UserSendMsg(_ context.Context, pb *pbChat.UserSendMsgReq) (* } switch pbData.SessionType { case constant.SingleChatType: - err1 := rpc.sendMsgToKafka(&pbData, pbData.RecvID) + isSend := modifyMessageByUserMessageReceiveOpt(pbData.RecvID, pbData.SendID, constant.SingleChatType, &pbData) + if isSend { + err1 := rpc.sendMsgToKafka(&pbData, pbData.RecvID) + if err1 != nil { + log.NewError(pbData.OperationID, "kafka send msg err:RecvID", pbData.RecvID, pbData.String()) + return returnMsg(&replay, pb, 201, "kafka send msg err", "", 0) + } + } err2 := rpc.sendMsgToKafka(&pbData, pbData.SendID) - if err1 != nil || err2 != nil { + if err2 != nil { + log.NewError(pbData.OperationID, "kafka send msg err:SendID", pbData.SendID, pbData.String()) return returnMsg(&replay, pb, 201, "kafka send msg err", "", 0) } return returnMsg(&replay, pb, 0, "", serverMsgID, pbData.SendTime) @@ -154,16 +163,25 @@ func (rpc *rpcChat) UserSendMsg(_ context.Context, pb *pbChat.UserSendMsgReq) (* groupID := pbData.RecvID for i, v := range reply.MemberList { pbData.RecvID = v.UserId + " " + groupID - err := rpc.sendMsgToKafka(&pbData, utils.IntToString(i)) - if err != nil { - return returnMsg(&replay, pb, 201, "kafka send msg err", "", 0) + isSend := modifyMessageByUserMessageReceiveOpt(v.UserId, groupID, constant.GroupChatType, &pbData) + if isSend { + err := rpc.sendMsgToKafka(&pbData, utils.IntToString(i)) + if err != nil { + log.NewError(pbData.OperationID, "kafka send msg err:UserId", v.UserId, pbData.String()) + return returnMsg(&replay, pb, 201, "kafka send msg err", "", 0) + } } + } for i, v := range addUidList { pbData.RecvID = v + " " + groupID - err := rpc.sendMsgToKafka(&pbData, utils.IntToString(i+1)) - if err != nil { - return returnMsg(&replay, pb, 201, "kafka send msg err", "", 0) + isSend := modifyMessageByUserMessageReceiveOpt(v, groupID, constant.GroupChatType, &pbData) + if isSend { + err := rpc.sendMsgToKafka(&pbData, utils.IntToString(i+1)) + if err != nil { + log.NewError(pbData.OperationID, "kafka send msg err:UserId", v, pbData.String()) + return returnMsg(&replay, pb, 201, "kafka send msg err", "", 0) + } } } return returnMsg(&replay, pb, 0, "", serverMsgID, pbData.SendTime) @@ -193,3 +211,25 @@ func returnMsg(replay *pbChat.UserSendMsgResp, pb *pbChat.UserSendMsgReq, errCod replay.SendTime = sendTime return replay, nil } +func modifyMessageByUserMessageReceiveOpt(userID, sourceID string, sessionType int, msg *pbChat.WSToMsgSvrChatMsg) bool { + conversationID := utils.GetConversationIDBySessionType(sourceID, sessionType) + opt, err := db.DB.GetConversationMsgOpt(userID, conversationID) + if err != nil { + log.NewError(msg.OperationID, "GetConversationMsgOpt from redis err", msg.String()) + return true + } + switch opt { + case constant.ReceiveMessage: + return true + case constant.NotReceiveMessage: + return false + case constant.ReceiveNotNotifyMessage: + m := utils.JsonStringToMap(msg.OfflineInfo) + utils.SetSwitchFromOptions(m, "offlinePush", 0) + s := utils.MapToJsonString(m) + msg.OfflineInfo = s + return true + } + + return true +} diff --git a/pkg/utils/map.go b/pkg/utils/map.go index 2807805db..48acadc60 100644 --- a/pkg/utils/map.go +++ b/pkg/utils/map.go @@ -116,8 +116,11 @@ func JsonStringToMap(str string) (tempMap map[string]interface{}) { return tempMap } func GetSwitchFromOptions(Options map[string]interface{}, key string) (result bool) { - if flag, ok := Options[key]; !ok || flag == 1 { + if flag, ok := Options[key]; !ok || flag.(int) == 1 { return true } return false } +func SetSwitchFromOptions(Options map[string]interface{}, key string, value interface{}) { + Options[key] = value +} diff --git a/pkg/utils/strings.go b/pkg/utils/strings.go index 4249eee6b..5ee2a6503 100644 --- a/pkg/utils/strings.go +++ b/pkg/utils/strings.go @@ -7,6 +7,7 @@ package utils import ( + "Open_IM/pkg/common/constant" "encoding/json" "math/rand" "strconv" @@ -63,6 +64,15 @@ func GetMsgID(sendID string) string { t := int64ToString(GetCurrentTimestampByNano()) return Md5(t + sendID + int64ToString(rand.Int63n(GetCurrentTimestampByNano()))) } +func GetConversationIDBySessionType(sourceID string, sessionType int) string { + switch sessionType { + case constant.SingleChatType: + return "single_" + sourceID + case constant.GroupChatType: + return "group_" + sourceID + } + return "" +} func int64ToString(i int64) string { return strconv.FormatInt(i, 10) } From d50a0abd2a3336c384b4628de864188078b5f596 Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Tue, 7 Dec 2021 10:22:49 +0800 Subject: [PATCH 155/814] send message by message receive opt --- internal/rpc/chat/send_msg.go | 4 ++-- pkg/common/db/redisModel.go | 17 +++++++++++++++-- 2 files changed, 17 insertions(+), 4 deletions(-) diff --git a/internal/rpc/chat/send_msg.go b/internal/rpc/chat/send_msg.go index 530db7fd4..b0e8f663a 100644 --- a/internal/rpc/chat/send_msg.go +++ b/internal/rpc/chat/send_msg.go @@ -213,9 +213,9 @@ func returnMsg(replay *pbChat.UserSendMsgResp, pb *pbChat.UserSendMsgReq, errCod } func modifyMessageByUserMessageReceiveOpt(userID, sourceID string, sessionType int, msg *pbChat.WSToMsgSvrChatMsg) bool { conversationID := utils.GetConversationIDBySessionType(sourceID, sessionType) - opt, err := db.DB.GetConversationMsgOpt(userID, conversationID) + opt, err := db.DB.GetSingleConversationMsgOpt(userID, conversationID) if err != nil { - log.NewError(msg.OperationID, "GetConversationMsgOpt from redis err", msg.String()) + log.NewError(msg.OperationID, "GetSingleConversationMsgOpt from redis err", msg.String()) return true } switch opt { diff --git a/pkg/common/db/redisModel.go b/pkg/common/db/redisModel.go index 362eec15d..3fb8c076a 100644 --- a/pkg/common/db/redisModel.go +++ b/pkg/common/db/redisModel.go @@ -91,12 +91,25 @@ func (d *DataBases) SetTokenMapByUidPid(userID string, platformID int32, m map[s _, err := d.Exec("hmset", key, redis.Args{}.Add().AddFlat(m)...) return err } -func (d *DataBases) SetConversationMsgOpt(userID, conversationID string, opt int) error { +func (d *DataBases) SetSingleConversationMsgOpt(userID, conversationID string, opt int) error { key := conversationReceiveMessageOpt + userID _, err1 := d.Exec("HSet", key, conversationID, opt) return err1 } -func (d *DataBases) GetConversationMsgOpt(userID, conversationID string) (int, error) { +func (d *DataBases) GetSingleConversationMsgOpt(userID, conversationID string) (int, error) { key := conversationReceiveMessageOpt + userID return redis.Int(d.Exec("HGet", key, conversationID)) } +func (d *DataBases) GetAllConversationMsgOpt(userID string) (map[string]int, error) { + key := conversationReceiveMessageOpt + userID + return redis.IntMap(d.Exec("HGETALL", key)) +} +func (d *DataBases) SetMultiConversationMsgOpt(userID string, m map[string]int) error { + key := conversationReceiveMessageOpt + userID + _, err := d.Exec("hmset", key, redis.Args{}.Add().AddFlat(m)...) + return err +} +func (d *DataBases) GetMultiConversationMsgOpt(userID string, conversationIDs []string) ([]int, error) { + key := conversationReceiveMessageOpt + userID + return redis.Ints(d.Exec("hmget", key, redis.Args{}.Add().AddFlat(conversationIDs)...)) +} From 7da98935b96bd3365bbb83f12f3ac33020eefcc4 Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Tue, 7 Dec 2021 11:46:24 +0800 Subject: [PATCH 156/814] redis add func --- pkg/common/db/redisModel.go | 13 +++++++++++-- pkg/common/db/redisModel_test.go | 6 ++++++ 2 files changed, 17 insertions(+), 2 deletions(-) diff --git a/pkg/common/db/redisModel.go b/pkg/common/db/redisModel.go index 3fb8c076a..a9d552699 100644 --- a/pkg/common/db/redisModel.go +++ b/pkg/common/db/redisModel.go @@ -109,7 +109,16 @@ func (d *DataBases) SetMultiConversationMsgOpt(userID string, m map[string]int) _, err := d.Exec("hmset", key, redis.Args{}.Add().AddFlat(m)...) return err } -func (d *DataBases) GetMultiConversationMsgOpt(userID string, conversationIDs []string) ([]int, error) { +func (d *DataBases) GetMultiConversationMsgOpt(userID string, conversationIDs []string) (m map[string]int, err error) { + m = make(map[string]int) key := conversationReceiveMessageOpt + userID - return redis.Ints(d.Exec("hmget", key, redis.Args{}.Add().AddFlat(conversationIDs)...)) + i, err := redis.Ints(d.Exec("hmget", key, redis.Args{}.Add().AddFlat(conversationIDs)...)) + if err != nil { + return m, err + } + for k, v := range conversationIDs { + m[v] = i[k] + } + return m, nil + } diff --git a/pkg/common/db/redisModel_test.go b/pkg/common/db/redisModel_test.go index 7da463a5b..1d9d254b7 100644 --- a/pkg/common/db/redisModel_test.go +++ b/pkg/common/db/redisModel_test.go @@ -19,3 +19,9 @@ func Test_GetTokenMapByUidPid(t *testing.T) { assert.Nil(t, err) fmt.Println(m) } + +func TestDataBases_GetMultiConversationMsgOpt(t *testing.T) { + m, err := DB.GetMultiConversationMsgOpt("fg", []string{"user", "age", "color"}) + assert.Nil(t, err) + fmt.Println(m) +} From d6298744682c9813f885ab1c1e541d2411cc8018 Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Tue, 7 Dec 2021 14:28:07 +0800 Subject: [PATCH 157/814] ReceiveMessageOpt --- cmd/open_im_api/main.go | 15 +- internal/api/conversation/conversation.go | 155 ++++++ internal/push/logic/push_to_client.go | 2 +- pkg/proto/user/user.pb.go | 590 ++++++++++++++++++++-- pkg/proto/user/user.proto | 46 +- 5 files changed, 745 insertions(+), 63 deletions(-) create mode 100644 internal/api/conversation/conversation.go diff --git a/cmd/open_im_api/main.go b/cmd/open_im_api/main.go index 42e0dcabf..0bd70d7e3 100644 --- a/cmd/open_im_api/main.go +++ b/cmd/open_im_api/main.go @@ -3,6 +3,7 @@ package main import ( apiAuth "Open_IM/internal/api/auth" apiChat "Open_IM/internal/api/chat" + "Open_IM/internal/api/conversation" "Open_IM/internal/api/friend" "Open_IM/internal/api/group" "Open_IM/internal/api/manage" @@ -17,15 +18,6 @@ import ( ) func main() { - - //logFile, err := os.OpenFile("./fatal.log", os.O_CREATE|os.O_APPEND|os.O_RDWR, 0660) - // if err != nil { - - // return - // } - //syscall.Dup2(int(logFile.Fd()), int(os.Stderr.Fd())) - - //log.Info("", "", "api server running...") r := gin.Default() r.Use(utils.CorsHandler()) // user routing group, which handles user registration and login services @@ -100,8 +92,9 @@ func main() { //Conversation conversationGroup := r.Group("/conversation") { - conversationGroup.POST("/delete_user", manage.DeleteUser) - + conversationGroup.POST("/set_receive_message_opt", conversation.SetReceiveMessageOpt) + conversationGroup.POST("/get_receive_message_opt", conversation.GetReceiveMessageOpt) + conversationGroup.POST("/get_all_conversation_message_opt", conversation.GetAllConversationMessageOpt) } log.NewPrivateLog("api") diff --git a/internal/api/conversation/conversation.go b/internal/api/conversation/conversation.go new file mode 100644 index 000000000..c73e161c5 --- /dev/null +++ b/internal/api/conversation/conversation.go @@ -0,0 +1,155 @@ +package conversation + +import ( + "Open_IM/pkg/common/config" + "Open_IM/pkg/common/log" + "Open_IM/pkg/common/token_verify" + "Open_IM/pkg/grpc-etcdv3/getcdv3" + "Open_IM/pkg/proto/user" + "context" + "github.com/gin-gonic/gin" + "net/http" + "strings" +) + +type paramsSetReceiveMessageOpt struct { + OperationID string `json:"operationID" binding:"required"` + Option int32 `json:"operationID" binding:"required"` + ConversationIdList []string `json:"conversationIdList" binding:"required"` +} + +type SetReceiveMessageOptResp struct { + ErrCode int32 `json:"errCode"` + ErrMsg string `json:"errMsg"` + Data []*user.OptResult `json:"data"` +} + +type paramGetReceiveMessageOpt struct { + ConversationIdList []string `json:"ConversationIdList" binding:"required"` + OperationID string `json:"operationID" binding:"required"` +} + +type GetReceiveMessageOptResp struct { + SetReceiveMessageOptResp +} + +type paramGetAllConversationMessageOpt struct { + OperationID string `json:"operationID" binding:"required"` +} + +type GetAllConversationMessageOptResp struct { + SetReceiveMessageOptResp +} + +func GetAllConversationMessageOpt(c *gin.Context) { + params := paramGetAllConversationMessageOpt{} + if err := c.BindJSON(¶ms); err != nil { + log.NewError(params.OperationID, "bind json failed ", err.Error(), c) + c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": "bind json failed " + err.Error()}) + return + } + + claims, err := token_verify.ParseToken(c.Request.Header.Get("token")) + if err != nil { + log.NewError(params.OperationID, "ParseToken failed, ", err.Error(), c.Request.Header.Get("token")) + c.JSON(http.StatusBadRequest, gin.H{"errCode": 401, "errMsg": "ParseToken failed, " + err.Error()}) + return + } + + req := &user.GetAllConversationMsgOptReq{ + UId: claims.UID, + OperationID: params.OperationID, + } + log.NewInfo(req.OperationID, "GetAllConversationMsgOpt req: ", req) + etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImUserName) + client := user.NewUserClient(etcdConn) + resp, err := client.GetAllConversationMsgOpt(context.Background(), req) + if err != nil { + log.NewError(params.OperationID, "GetAllConversationMsgOpt rpc failed, ", req, err.Error()) + c.JSON(http.StatusBadRequest, gin.H{"errCode": 401, "errMsg": "GetAllConversationMsgOpt rpc failed, " + err.Error()}) + return + } + var ginResp GetAllConversationMessageOptResp + ginResp.ErrCode = resp.ErrCode + ginResp.ErrMsg = resp.ErrMsg + ginResp.Data = resp.ConversationOptResult + log.NewInfo(req.OperationID, "GetAllConversationMsgOpt resp: ", ginResp, req) + c.JSON(http.StatusOK, ginResp) +} + +func GetReceiveMessageOpt(c *gin.Context) { + params := paramGetReceiveMessageOpt{} + if err := c.BindJSON(¶ms); err != nil { + log.NewError(params.OperationID, "bind json failed ", err.Error(), c) + c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": "bind json failed " + err.Error()}) + return + } + + claims, err := token_verify.ParseToken(c.Request.Header.Get("token")) + if err != nil { + log.NewError(params.OperationID, "ParseToken failed, ", err.Error(), c.Request.Header.Get("token")) + c.JSON(http.StatusBadRequest, gin.H{"errCode": 401, "errMsg": "ParseToken failed, " + err.Error()}) + return + } + + req := &user.GetReceiveMessageOptReq{ + UId: claims.UID, + ConversationId: params.ConversationIdList, + OperationID: params.OperationID, + } + log.NewInfo(req.OperationID, "GetReceiveMessageOptReq req: ", req) + etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImUserName) + client := user.NewUserClient(etcdConn) + resp, err := client.GetReceiveMessageOpt(context.Background(), req) + if err != nil { + log.NewError(params.OperationID, "GetReceiveMessageOpt rpc failed, ", req, err.Error()) + c.JSON(http.StatusBadRequest, gin.H{"errCode": 401, "errMsg": "GetReceiveMessageOpt rpc failed, " + err.Error()}) + return + } + var ginResp GetReceiveMessageOptResp + ginResp.ErrCode = resp.ErrCode + ginResp.ErrMsg = resp.ErrMsg + ginResp.Data = resp.ConversationOptResult + log.NewInfo(req.OperationID, "GetReceiveMessageOpt resp: ", ginResp) + c.JSON(http.StatusOK, ginResp) +} + +func SetReceiveMessageOpt(c *gin.Context) { + params := paramsSetReceiveMessageOpt{} + if err := c.BindJSON(¶ms); err != nil { + log.NewError(params.OperationID, "bind json failed ", err.Error(), c) + c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": "bind json failed " + err.Error()}) + return + } + + claims, err := token_verify.ParseToken(c.Request.Header.Get("token")) + if err != nil { + log.NewError(params.OperationID, "ParseToken failed, ", err.Error(), c.Request.Header.Get("token")) + c.JSON(http.StatusBadRequest, gin.H{"errCode": 401, "errMsg": "ParseToken failed, " + err.Error()}) + return + } + + req := &user.SetReceiveMessageOptReq{ + UId: claims.UID, + Opt: params.Option, + ConversationId: params.ConversationIdList, + OperationID: params.OperationID, + } + log.NewInfo(req.OperationID, "SetReceiveMessageOpt req: ", req) + etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImUserName) + client := user.NewUserClient(etcdConn) + resp, err := client.SetReceiveMessageOpt(context.Background(), req) + if err != nil { + log.NewError(params.OperationID, "SetReceiveMessageOpt rpc failed, ", req, err.Error()) + c.JSON(http.StatusBadRequest, gin.H{"errCode": 401, "errMsg": "SetReceiveMessageOpt rpc failed, " + err.Error()}) + return + } + + ginResp := SetReceiveMessageOptResp{ + ErrCode: resp.ErrCode, + ErrMsg: resp.ErrMsg, + Data: resp.OptResult, + } + log.NewInfo(req.OperationID, "SetReceiveMessageOpt resp: ", ginResp) + c.JSON(http.StatusOK, ginResp) +} diff --git a/internal/push/logic/push_to_client.go b/internal/push/logic/push_to_client.go index c2d986a59..390ba42c5 100644 --- a/internal/push/logic/push_to_client.go +++ b/internal/push/logic/push_to_client.go @@ -146,8 +146,8 @@ func SendMsgByWS(m *pbChat.WSToMsgSvrChatMsg) { default: } - } + func sendMsgToKafka(m *pbChat.WSToMsgSvrChatMsg, key string, flag string) { pid, offset, err := producer.SendMessage(m, key) if err != nil { diff --git a/pkg/proto/user/user.pb.go b/pkg/proto/user/user.pb.go index 298512e1b..af16cf75a 100644 --- a/pkg/proto/user/user.pb.go +++ b/pkg/proto/user/user.pb.go @@ -35,7 +35,7 @@ func (m *CommonResp) Reset() { *m = CommonResp{} } func (m *CommonResp) String() string { return proto.CompactTextString(m) } func (*CommonResp) ProtoMessage() {} func (*CommonResp) Descriptor() ([]byte, []int) { - return fileDescriptor_user_23985c8245c722d0, []int{0} + return fileDescriptor_user_2aac409c3ed42d0b, []int{0} } func (m *CommonResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_CommonResp.Unmarshal(m, b) @@ -81,7 +81,7 @@ func (m *DeleteUsersResp) Reset() { *m = DeleteUsersResp{} } func (m *DeleteUsersResp) String() string { return proto.CompactTextString(m) } func (*DeleteUsersResp) ProtoMessage() {} func (*DeleteUsersResp) Descriptor() ([]byte, []int) { - return fileDescriptor_user_23985c8245c722d0, []int{1} + return fileDescriptor_user_2aac409c3ed42d0b, []int{1} } func (m *DeleteUsersResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_DeleteUsersResp.Unmarshal(m, b) @@ -128,7 +128,7 @@ func (m *DeleteUsersReq) Reset() { *m = DeleteUsersReq{} } func (m *DeleteUsersReq) String() string { return proto.CompactTextString(m) } func (*DeleteUsersReq) ProtoMessage() {} func (*DeleteUsersReq) Descriptor() ([]byte, []int) { - return fileDescriptor_user_23985c8245c722d0, []int{2} + return fileDescriptor_user_2aac409c3ed42d0b, []int{2} } func (m *DeleteUsersReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_DeleteUsersReq.Unmarshal(m, b) @@ -181,7 +181,7 @@ func (m *GetAllUsersUidReq) Reset() { *m = GetAllUsersUidReq{} } func (m *GetAllUsersUidReq) String() string { return proto.CompactTextString(m) } func (*GetAllUsersUidReq) ProtoMessage() {} func (*GetAllUsersUidReq) Descriptor() ([]byte, []int) { - return fileDescriptor_user_23985c8245c722d0, []int{3} + return fileDescriptor_user_2aac409c3ed42d0b, []int{3} } func (m *GetAllUsersUidReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetAllUsersUidReq.Unmarshal(m, b) @@ -227,7 +227,7 @@ func (m *GetAllUsersUidResp) Reset() { *m = GetAllUsersUidResp{} } func (m *GetAllUsersUidResp) String() string { return proto.CompactTextString(m) } func (*GetAllUsersUidResp) ProtoMessage() {} func (*GetAllUsersUidResp) Descriptor() ([]byte, []int) { - return fileDescriptor_user_23985c8245c722d0, []int{4} + return fileDescriptor_user_2aac409c3ed42d0b, []int{4} } func (m *GetAllUsersUidResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetAllUsersUidResp.Unmarshal(m, b) @@ -274,7 +274,7 @@ 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_user_23985c8245c722d0, []int{5} + return fileDescriptor_user_2aac409c3ed42d0b, []int{5} } func (m *GetUserInfoReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetUserInfoReq.Unmarshal(m, b) @@ -328,7 +328,7 @@ 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_user_23985c8245c722d0, []int{6} + return fileDescriptor_user_2aac409c3ed42d0b, []int{6} } func (m *GetUserInfoResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetUserInfoResp.Unmarshal(m, b) @@ -387,7 +387,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_user_23985c8245c722d0, []int{7} + return fileDescriptor_user_2aac409c3ed42d0b, []int{7} } func (m *UserInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_UserInfo.Unmarshal(m, b) @@ -475,7 +475,7 @@ func (m *LogoutReq) Reset() { *m = LogoutReq{} } func (m *LogoutReq) String() string { return proto.CompactTextString(m) } func (*LogoutReq) ProtoMessage() {} func (*LogoutReq) Descriptor() ([]byte, []int) { - return fileDescriptor_user_23985c8245c722d0, []int{8} + return fileDescriptor_user_2aac409c3ed42d0b, []int{8} } func (m *LogoutReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_LogoutReq.Unmarshal(m, b) @@ -529,7 +529,7 @@ 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_user_23985c8245c722d0, []int{9} + return fileDescriptor_user_2aac409c3ed42d0b, []int{9} } func (m *UpdateUserInfoReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_UpdateUserInfoReq.Unmarshal(m, b) @@ -619,6 +619,376 @@ func (m *UpdateUserInfoReq) GetUid() string { return "" } +type SetReceiveMessageOptReq struct { + UId string `protobuf:"bytes,1,opt,name=uId" json:"uId,omitempty"` + Opt int32 `protobuf:"varint,2,opt,name=opt" json:"opt,omitempty"` + ConversationId []string `protobuf:"bytes,3,rep,name=conversationId" json:"conversationId,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 *SetReceiveMessageOptReq) Reset() { *m = SetReceiveMessageOptReq{} } +func (m *SetReceiveMessageOptReq) String() string { return proto.CompactTextString(m) } +func (*SetReceiveMessageOptReq) ProtoMessage() {} +func (*SetReceiveMessageOptReq) Descriptor() ([]byte, []int) { + return fileDescriptor_user_2aac409c3ed42d0b, []int{10} +} +func (m *SetReceiveMessageOptReq) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_SetReceiveMessageOptReq.Unmarshal(m, b) +} +func (m *SetReceiveMessageOptReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_SetReceiveMessageOptReq.Marshal(b, m, deterministic) +} +func (dst *SetReceiveMessageOptReq) XXX_Merge(src proto.Message) { + xxx_messageInfo_SetReceiveMessageOptReq.Merge(dst, src) +} +func (m *SetReceiveMessageOptReq) XXX_Size() int { + return xxx_messageInfo_SetReceiveMessageOptReq.Size(m) +} +func (m *SetReceiveMessageOptReq) XXX_DiscardUnknown() { + xxx_messageInfo_SetReceiveMessageOptReq.DiscardUnknown(m) +} + +var xxx_messageInfo_SetReceiveMessageOptReq proto.InternalMessageInfo + +func (m *SetReceiveMessageOptReq) GetUId() string { + if m != nil { + return m.UId + } + return "" +} + +func (m *SetReceiveMessageOptReq) GetOpt() int32 { + if m != nil { + return m.Opt + } + return 0 +} + +func (m *SetReceiveMessageOptReq) GetConversationId() []string { + if m != nil { + return m.ConversationId + } + return nil +} + +func (m *SetReceiveMessageOptReq) GetOperationID() string { + if m != nil { + return m.OperationID + } + return "" +} + +type SetReceiveMessageOptResp struct { + ErrCode int32 `protobuf:"varint,1,opt,name=errCode" json:"errCode,omitempty"` + ErrMsg string `protobuf:"bytes,2,opt,name=errMsg" json:"errMsg,omitempty"` + OptResult []*OptResult `protobuf:"bytes,3,rep,name=optResult" json:"optResult,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *SetReceiveMessageOptResp) Reset() { *m = SetReceiveMessageOptResp{} } +func (m *SetReceiveMessageOptResp) String() string { return proto.CompactTextString(m) } +func (*SetReceiveMessageOptResp) ProtoMessage() {} +func (*SetReceiveMessageOptResp) Descriptor() ([]byte, []int) { + return fileDescriptor_user_2aac409c3ed42d0b, []int{11} +} +func (m *SetReceiveMessageOptResp) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_SetReceiveMessageOptResp.Unmarshal(m, b) +} +func (m *SetReceiveMessageOptResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_SetReceiveMessageOptResp.Marshal(b, m, deterministic) +} +func (dst *SetReceiveMessageOptResp) XXX_Merge(src proto.Message) { + xxx_messageInfo_SetReceiveMessageOptResp.Merge(dst, src) +} +func (m *SetReceiveMessageOptResp) XXX_Size() int { + return xxx_messageInfo_SetReceiveMessageOptResp.Size(m) +} +func (m *SetReceiveMessageOptResp) XXX_DiscardUnknown() { + xxx_messageInfo_SetReceiveMessageOptResp.DiscardUnknown(m) +} + +var xxx_messageInfo_SetReceiveMessageOptResp proto.InternalMessageInfo + +func (m *SetReceiveMessageOptResp) GetErrCode() int32 { + if m != nil { + return m.ErrCode + } + return 0 +} + +func (m *SetReceiveMessageOptResp) GetErrMsg() string { + if m != nil { + return m.ErrMsg + } + return "" +} + +func (m *SetReceiveMessageOptResp) GetOptResult() []*OptResult { + if m != nil { + return m.OptResult + } + return nil +} + +type GetReceiveMessageOptReq struct { + UId string `protobuf:"bytes,1,opt,name=uId" json:"uId,omitempty"` + ConversationId []string `protobuf:"bytes,2,rep,name=conversationId" json:"conversationId,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 *GetReceiveMessageOptReq) Reset() { *m = GetReceiveMessageOptReq{} } +func (m *GetReceiveMessageOptReq) String() string { return proto.CompactTextString(m) } +func (*GetReceiveMessageOptReq) ProtoMessage() {} +func (*GetReceiveMessageOptReq) Descriptor() ([]byte, []int) { + return fileDescriptor_user_2aac409c3ed42d0b, []int{12} +} +func (m *GetReceiveMessageOptReq) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GetReceiveMessageOptReq.Unmarshal(m, b) +} +func (m *GetReceiveMessageOptReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GetReceiveMessageOptReq.Marshal(b, m, deterministic) +} +func (dst *GetReceiveMessageOptReq) XXX_Merge(src proto.Message) { + xxx_messageInfo_GetReceiveMessageOptReq.Merge(dst, src) +} +func (m *GetReceiveMessageOptReq) XXX_Size() int { + return xxx_messageInfo_GetReceiveMessageOptReq.Size(m) +} +func (m *GetReceiveMessageOptReq) XXX_DiscardUnknown() { + xxx_messageInfo_GetReceiveMessageOptReq.DiscardUnknown(m) +} + +var xxx_messageInfo_GetReceiveMessageOptReq proto.InternalMessageInfo + +func (m *GetReceiveMessageOptReq) GetUId() string { + if m != nil { + return m.UId + } + return "" +} + +func (m *GetReceiveMessageOptReq) GetConversationId() []string { + if m != nil { + return m.ConversationId + } + return nil +} + +func (m *GetReceiveMessageOptReq) GetOperationID() string { + if m != nil { + return m.OperationID + } + return "" +} + +type OptResult struct { + ConversationId string `protobuf:"bytes,1,opt,name=conversationId" json:"conversationId,omitempty"` + Result int32 `protobuf:"varint,2,opt,name=result" json:"result,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *OptResult) Reset() { *m = OptResult{} } +func (m *OptResult) String() string { return proto.CompactTextString(m) } +func (*OptResult) ProtoMessage() {} +func (*OptResult) Descriptor() ([]byte, []int) { + return fileDescriptor_user_2aac409c3ed42d0b, []int{13} +} +func (m *OptResult) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_OptResult.Unmarshal(m, b) +} +func (m *OptResult) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_OptResult.Marshal(b, m, deterministic) +} +func (dst *OptResult) XXX_Merge(src proto.Message) { + xxx_messageInfo_OptResult.Merge(dst, src) +} +func (m *OptResult) XXX_Size() int { + return xxx_messageInfo_OptResult.Size(m) +} +func (m *OptResult) XXX_DiscardUnknown() { + xxx_messageInfo_OptResult.DiscardUnknown(m) +} + +var xxx_messageInfo_OptResult proto.InternalMessageInfo + +func (m *OptResult) GetConversationId() string { + if m != nil { + return m.ConversationId + } + return "" +} + +func (m *OptResult) GetResult() int32 { + if m != nil { + return m.Result + } + return 0 +} + +type GetReceiveMessageOptResp struct { + ErrCode int32 `protobuf:"varint,1,opt,name=errCode" json:"errCode,omitempty"` + ErrMsg string `protobuf:"bytes,2,opt,name=errMsg" json:"errMsg,omitempty"` + ConversationOptResult []*OptResult `protobuf:"bytes,3,rep,name=conversationOptResult" json:"conversationOptResult,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *GetReceiveMessageOptResp) Reset() { *m = GetReceiveMessageOptResp{} } +func (m *GetReceiveMessageOptResp) String() string { return proto.CompactTextString(m) } +func (*GetReceiveMessageOptResp) ProtoMessage() {} +func (*GetReceiveMessageOptResp) Descriptor() ([]byte, []int) { + return fileDescriptor_user_2aac409c3ed42d0b, []int{14} +} +func (m *GetReceiveMessageOptResp) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GetReceiveMessageOptResp.Unmarshal(m, b) +} +func (m *GetReceiveMessageOptResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GetReceiveMessageOptResp.Marshal(b, m, deterministic) +} +func (dst *GetReceiveMessageOptResp) XXX_Merge(src proto.Message) { + xxx_messageInfo_GetReceiveMessageOptResp.Merge(dst, src) +} +func (m *GetReceiveMessageOptResp) XXX_Size() int { + return xxx_messageInfo_GetReceiveMessageOptResp.Size(m) +} +func (m *GetReceiveMessageOptResp) XXX_DiscardUnknown() { + xxx_messageInfo_GetReceiveMessageOptResp.DiscardUnknown(m) +} + +var xxx_messageInfo_GetReceiveMessageOptResp proto.InternalMessageInfo + +func (m *GetReceiveMessageOptResp) GetErrCode() int32 { + if m != nil { + return m.ErrCode + } + return 0 +} + +func (m *GetReceiveMessageOptResp) GetErrMsg() string { + if m != nil { + return m.ErrMsg + } + return "" +} + +func (m *GetReceiveMessageOptResp) GetConversationOptResult() []*OptResult { + if m != nil { + return m.ConversationOptResult + } + return nil +} + +type GetAllConversationMsgOptReq struct { + UId string `protobuf:"bytes,1,opt,name=uId" json:"uId,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 *GetAllConversationMsgOptReq) Reset() { *m = GetAllConversationMsgOptReq{} } +func (m *GetAllConversationMsgOptReq) String() string { return proto.CompactTextString(m) } +func (*GetAllConversationMsgOptReq) ProtoMessage() {} +func (*GetAllConversationMsgOptReq) Descriptor() ([]byte, []int) { + return fileDescriptor_user_2aac409c3ed42d0b, []int{15} +} +func (m *GetAllConversationMsgOptReq) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GetAllConversationMsgOptReq.Unmarshal(m, b) +} +func (m *GetAllConversationMsgOptReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GetAllConversationMsgOptReq.Marshal(b, m, deterministic) +} +func (dst *GetAllConversationMsgOptReq) XXX_Merge(src proto.Message) { + xxx_messageInfo_GetAllConversationMsgOptReq.Merge(dst, src) +} +func (m *GetAllConversationMsgOptReq) XXX_Size() int { + return xxx_messageInfo_GetAllConversationMsgOptReq.Size(m) +} +func (m *GetAllConversationMsgOptReq) XXX_DiscardUnknown() { + xxx_messageInfo_GetAllConversationMsgOptReq.DiscardUnknown(m) +} + +var xxx_messageInfo_GetAllConversationMsgOptReq proto.InternalMessageInfo + +func (m *GetAllConversationMsgOptReq) GetUId() string { + if m != nil { + return m.UId + } + return "" +} + +func (m *GetAllConversationMsgOptReq) GetOperationID() string { + if m != nil { + return m.OperationID + } + return "" +} + +type GetAllConversationMsgOptResp struct { + ErrCode int32 `protobuf:"varint,1,opt,name=errCode" json:"errCode,omitempty"` + ErrMsg string `protobuf:"bytes,2,opt,name=errMsg" json:"errMsg,omitempty"` + ConversationOptResult []*OptResult `protobuf:"bytes,3,rep,name=conversationOptResult" json:"conversationOptResult,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *GetAllConversationMsgOptResp) Reset() { *m = GetAllConversationMsgOptResp{} } +func (m *GetAllConversationMsgOptResp) String() string { return proto.CompactTextString(m) } +func (*GetAllConversationMsgOptResp) ProtoMessage() {} +func (*GetAllConversationMsgOptResp) Descriptor() ([]byte, []int) { + return fileDescriptor_user_2aac409c3ed42d0b, []int{16} +} +func (m *GetAllConversationMsgOptResp) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GetAllConversationMsgOptResp.Unmarshal(m, b) +} +func (m *GetAllConversationMsgOptResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GetAllConversationMsgOptResp.Marshal(b, m, deterministic) +} +func (dst *GetAllConversationMsgOptResp) XXX_Merge(src proto.Message) { + xxx_messageInfo_GetAllConversationMsgOptResp.Merge(dst, src) +} +func (m *GetAllConversationMsgOptResp) XXX_Size() int { + return xxx_messageInfo_GetAllConversationMsgOptResp.Size(m) +} +func (m *GetAllConversationMsgOptResp) XXX_DiscardUnknown() { + xxx_messageInfo_GetAllConversationMsgOptResp.DiscardUnknown(m) +} + +var xxx_messageInfo_GetAllConversationMsgOptResp proto.InternalMessageInfo + +func (m *GetAllConversationMsgOptResp) GetErrCode() int32 { + if m != nil { + return m.ErrCode + } + return 0 +} + +func (m *GetAllConversationMsgOptResp) GetErrMsg() string { + if m != nil { + return m.ErrMsg + } + return "" +} + +func (m *GetAllConversationMsgOptResp) GetConversationOptResult() []*OptResult { + if m != nil { + return m.ConversationOptResult + } + return nil +} + func init() { proto.RegisterType((*CommonResp)(nil), "user.CommonResp") proto.RegisterType((*DeleteUsersResp)(nil), "user.DeleteUsersResp") @@ -630,6 +1000,13 @@ func init() { proto.RegisterType((*UserInfo)(nil), "user.UserInfo") proto.RegisterType((*LogoutReq)(nil), "user.LogoutReq") proto.RegisterType((*UpdateUserInfoReq)(nil), "user.UpdateUserInfoReq") + proto.RegisterType((*SetReceiveMessageOptReq)(nil), "user.SetReceiveMessageOptReq") + proto.RegisterType((*SetReceiveMessageOptResp)(nil), "user.SetReceiveMessageOptResp") + proto.RegisterType((*GetReceiveMessageOptReq)(nil), "user.GetReceiveMessageOptReq") + proto.RegisterType((*OptResult)(nil), "user.OptResult") + proto.RegisterType((*GetReceiveMessageOptResp)(nil), "user.GetReceiveMessageOptResp") + proto.RegisterType((*GetAllConversationMsgOptReq)(nil), "user.GetAllConversationMsgOptReq") + proto.RegisterType((*GetAllConversationMsgOptResp)(nil), "user.GetAllConversationMsgOptResp") } // Reference imports to suppress errors if they are not otherwise used. @@ -647,6 +1024,9 @@ type UserClient interface { UpdateUserInfo(ctx context.Context, in *UpdateUserInfoReq, opts ...grpc.CallOption) (*CommonResp, error) DeleteUsers(ctx context.Context, in *DeleteUsersReq, opts ...grpc.CallOption) (*DeleteUsersResp, error) GetAllUsersUid(ctx context.Context, in *GetAllUsersUidReq, opts ...grpc.CallOption) (*GetAllUsersUidResp, error) + SetReceiveMessageOpt(ctx context.Context, in *SetReceiveMessageOptReq, opts ...grpc.CallOption) (*SetReceiveMessageOptResp, error) + GetReceiveMessageOpt(ctx context.Context, in *GetReceiveMessageOptReq, opts ...grpc.CallOption) (*GetReceiveMessageOptResp, error) + GetAllConversationMsgOpt(ctx context.Context, in *GetAllConversationMsgOptReq, opts ...grpc.CallOption) (*GetAllConversationMsgOptResp, error) } type userClient struct { @@ -693,6 +1073,33 @@ func (c *userClient) GetAllUsersUid(ctx context.Context, in *GetAllUsersUidReq, return out, nil } +func (c *userClient) SetReceiveMessageOpt(ctx context.Context, in *SetReceiveMessageOptReq, opts ...grpc.CallOption) (*SetReceiveMessageOptResp, error) { + out := new(SetReceiveMessageOptResp) + err := grpc.Invoke(ctx, "/user.user/SetReceiveMessageOpt", in, out, c.cc, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *userClient) GetReceiveMessageOpt(ctx context.Context, in *GetReceiveMessageOptReq, opts ...grpc.CallOption) (*GetReceiveMessageOptResp, error) { + out := new(GetReceiveMessageOptResp) + err := grpc.Invoke(ctx, "/user.user/GetReceiveMessageOpt", in, out, c.cc, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *userClient) GetAllConversationMsgOpt(ctx context.Context, in *GetAllConversationMsgOptReq, opts ...grpc.CallOption) (*GetAllConversationMsgOptResp, error) { + out := new(GetAllConversationMsgOptResp) + err := grpc.Invoke(ctx, "/user.user/GetAllConversationMsgOpt", in, out, c.cc, opts...) + if err != nil { + return nil, err + } + return out, nil +} + // Server API for User service type UserServer interface { @@ -700,6 +1107,9 @@ type UserServer interface { UpdateUserInfo(context.Context, *UpdateUserInfoReq) (*CommonResp, error) DeleteUsers(context.Context, *DeleteUsersReq) (*DeleteUsersResp, error) GetAllUsersUid(context.Context, *GetAllUsersUidReq) (*GetAllUsersUidResp, error) + SetReceiveMessageOpt(context.Context, *SetReceiveMessageOptReq) (*SetReceiveMessageOptResp, error) + GetReceiveMessageOpt(context.Context, *GetReceiveMessageOptReq) (*GetReceiveMessageOptResp, error) + GetAllConversationMsgOpt(context.Context, *GetAllConversationMsgOptReq) (*GetAllConversationMsgOptResp, error) } func RegisterUserServer(s *grpc.Server, srv UserServer) { @@ -778,6 +1188,60 @@ func _User_GetAllUsersUid_Handler(srv interface{}, ctx context.Context, dec func return interceptor(ctx, in, info, handler) } +func _User_SetReceiveMessageOpt_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(SetReceiveMessageOptReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(UserServer).SetReceiveMessageOpt(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/user.user/SetReceiveMessageOpt", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(UserServer).SetReceiveMessageOpt(ctx, req.(*SetReceiveMessageOptReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _User_GetReceiveMessageOpt_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetReceiveMessageOptReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(UserServer).GetReceiveMessageOpt(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/user.user/GetReceiveMessageOpt", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(UserServer).GetReceiveMessageOpt(ctx, req.(*GetReceiveMessageOptReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _User_GetAllConversationMsgOpt_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetAllConversationMsgOptReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(UserServer).GetAllConversationMsgOpt(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/user.user/GetAllConversationMsgOpt", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(UserServer).GetAllConversationMsgOpt(ctx, req.(*GetAllConversationMsgOptReq)) + } + return interceptor(ctx, in, info, handler) +} + var _User_serviceDesc = grpc.ServiceDesc{ ServiceName: "user.user", HandlerType: (*UserServer)(nil), @@ -798,49 +1262,75 @@ var _User_serviceDesc = grpc.ServiceDesc{ MethodName: "GetAllUsersUid", Handler: _User_GetAllUsersUid_Handler, }, + { + MethodName: "SetReceiveMessageOpt", + Handler: _User_SetReceiveMessageOpt_Handler, + }, + { + MethodName: "GetReceiveMessageOpt", + Handler: _User_GetReceiveMessageOpt_Handler, + }, + { + MethodName: "GetAllConversationMsgOpt", + Handler: _User_GetAllConversationMsgOpt_Handler, + }, }, Streams: []grpc.StreamDesc{}, Metadata: "user/user.proto", } -func init() { proto.RegisterFile("user/user.proto", fileDescriptor_user_23985c8245c722d0) } - -var fileDescriptor_user_23985c8245c722d0 = []byte{ - // 562 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xa4, 0x54, 0x4d, 0x6f, 0xd3, 0x40, - 0x10, 0x95, 0xed, 0x24, 0x8d, 0x27, 0x6a, 0x92, 0xae, 0x0a, 0xac, 0x22, 0x84, 0x22, 0x8b, 0x43, - 0x4e, 0x01, 0x85, 0x1b, 0x3d, 0x41, 0x22, 0xaa, 0x88, 0xa2, 0x4a, 0x96, 0x7c, 0xe1, 0x84, 0xd3, - 0x9d, 0xa6, 0x2b, 0x1c, 0xaf, 0xb1, 0x37, 0x52, 0x8f, 0xfc, 0x24, 0xfe, 0x1a, 0xff, 0x00, 0xed, - 0x38, 0x4e, 0xfc, 0x55, 0x0e, 0x70, 0xb1, 0x76, 0xde, 0xae, 0xdf, 0xdb, 0x37, 0x33, 0x3b, 0x30, - 0xda, 0x67, 0x98, 0xbe, 0x31, 0x9f, 0x79, 0x92, 0x2a, 0xad, 0x58, 0xc7, 0xac, 0xbd, 0x4f, 0x00, - 0x4b, 0xb5, 0xdb, 0xa9, 0xd8, 0xc7, 0x2c, 0x61, 0x2f, 0xc1, 0xc5, 0x34, 0x55, 0xe9, 0x52, 0x09, - 0xe4, 0xd6, 0xd4, 0x9a, 0x75, 0xfd, 0x13, 0xc0, 0x26, 0xd0, 0xa7, 0xe0, 0x4b, 0xb6, 0xe5, 0xf6, - 0xd4, 0x9a, 0xb9, 0xfe, 0x31, 0xf6, 0x24, 0x8c, 0x56, 0x18, 0xa1, 0xc6, 0x20, 0xc3, 0x34, 0x23, - 0xb2, 0xb7, 0x00, 0x77, 0x47, 0x6a, 0x62, 0x1b, 0x2c, 0xc6, 0x73, 0xba, 0xc1, 0x49, 0xd2, 0x2f, - 0x9d, 0x61, 0xaf, 0xe1, 0xfc, 0x3e, 0x94, 0x11, 0x8a, 0x40, 0x8a, 0x1b, 0x99, 0x69, 0x6e, 0x4f, - 0x9d, 0x99, 0xeb, 0x57, 0x41, 0x2f, 0x86, 0x61, 0x45, 0xea, 0x87, 0xf9, 0x4f, 0xe4, 0x48, 0xf5, - 0xbf, 0x0a, 0xc8, 0x2e, 0xa1, 0xab, 0xd5, 0x77, 0x8c, 0xb9, 0x43, 0x77, 0xcf, 0x03, 0x36, 0x85, - 0xc1, 0x6d, 0x82, 0x69, 0xa8, 0xa5, 0x8a, 0xd7, 0x2b, 0xde, 0xa1, 0xbd, 0x32, 0xe4, 0x7d, 0x86, - 0x8b, 0x6b, 0xd4, 0x1f, 0xa2, 0x88, 0xf4, 0x02, 0x29, 0x8c, 0xe4, 0x91, 0xcc, 0xae, 0x91, 0xa9, - 0x12, 0x59, 0x2e, 0x54, 0x86, 0xbc, 0x6f, 0xc0, 0xea, 0x64, 0xff, 0x94, 0x2a, 0x0e, 0x67, 0xfb, - 0x8a, 0xd9, 0x22, 0xf4, 0x1e, 0x60, 0x78, 0x8d, 0xda, 0xd0, 0xaf, 0xe3, 0x7b, 0x65, 0xee, 0xfa, - 0x0a, 0xc0, 0x50, 0xad, 0x57, 0x74, 0xdc, 0xa2, 0xe3, 0x25, 0xe4, 0x69, 0x2f, 0xb7, 0x4d, 0x2f, - 0xe5, 0xc4, 0x28, 0x18, 0x55, 0x94, 0xfe, 0xa7, 0x81, 0x98, 0x07, 0x9d, 0x55, 0xa8, 0x43, 0xee, - 0x4c, 0x9d, 0xd9, 0x60, 0x31, 0xcc, 0xcd, 0x1f, 0xb9, 0x69, 0xcf, 0xfb, 0x65, 0x41, 0xbf, 0x80, - 0xd8, 0x18, 0x9c, 0xbd, 0x14, 0x24, 0xe2, 0xfa, 0x66, 0xc9, 0x18, 0x74, 0xe2, 0x70, 0x87, 0x07, - 0x6a, 0x5a, 0x1b, 0x4c, 0xde, 0xa9, 0xa2, 0xe6, 0xb4, 0x66, 0xcf, 0xa1, 0xb7, 0xc5, 0x58, 0x60, - 0x4a, 0xd5, 0xee, 0xfa, 0x87, 0xc8, 0xe0, 0x3b, 0xb5, 0x91, 0x11, 0xf2, 0x2e, 0x9d, 0x3e, 0x44, - 0x26, 0x3f, 0x1b, 0x99, 0xea, 0x07, 0xde, 0xcb, 0xf3, 0x43, 0x81, 0x41, 0x71, 0x17, 0xca, 0x88, - 0x9f, 0xe5, 0x28, 0x05, 0x6c, 0x08, 0x36, 0x3e, 0xf2, 0x3e, 0x41, 0x36, 0x3e, 0x7a, 0x4b, 0x70, - 0x6f, 0xd4, 0x56, 0xed, 0xb5, 0x29, 0x44, 0x2d, 0xa5, 0x56, 0x23, 0xa5, 0xed, 0xa5, 0xf0, 0x7e, - 0x5b, 0x70, 0x11, 0x24, 0x22, 0xcc, 0x5b, 0xbe, 0x28, 0x6b, 0x61, 0xcd, 0x2a, 0x59, 0x6b, 0x4b, - 0xc1, 0xc9, 0xae, 0xf3, 0x84, 0xdd, 0x4e, 0xbb, 0xdd, 0x6e, 0xab, 0xdd, 0x5e, 0xd3, 0xee, 0x59, - 0x61, 0xf7, 0x74, 0xff, 0xfe, 0x5f, 0x5a, 0xc9, 0x6d, 0xfa, 0x1e, 0x83, 0x13, 0x48, 0xc1, 0x21, - 0x2f, 0x66, 0x20, 0xc5, 0xe2, 0xa7, 0x0d, 0x34, 0xa1, 0xd8, 0x7b, 0x18, 0x6c, 0x4f, 0x5d, 0xc6, - 0x2e, 0xf3, 0xce, 0xa8, 0xb6, 0xf8, 0xe4, 0x59, 0x0b, 0x9a, 0x25, 0xec, 0x0a, 0x86, 0xd5, 0xbc, - 0xb1, 0x17, 0x87, 0xc6, 0xaa, 0x67, 0x73, 0xd2, 0x78, 0x6e, 0x46, 0xb8, 0x34, 0x67, 0x0a, 0xe1, - 0xea, 0xe8, 0x29, 0x84, 0xeb, 0xb3, 0x6f, 0x49, 0x8f, 0xb0, 0xf4, 0xcc, 0x0b, 0xe1, 0xc6, 0x24, - 0x99, 0xf0, 0xf6, 0x8d, 0x2c, 0xf9, 0x78, 0xfe, 0x75, 0x30, 0xa7, 0x89, 0x7d, 0x65, 0x3e, 0x9b, - 0x1e, 0xcd, 0xed, 0x77, 0x7f, 0x02, 0x00, 0x00, 0xff, 0xff, 0x30, 0xbd, 0x59, 0x5b, 0xca, 0x05, - 0x00, 0x00, +func init() { proto.RegisterFile("user/user.proto", fileDescriptor_user_2aac409c3ed42d0b) } + +var fileDescriptor_user_2aac409c3ed42d0b = []byte{ + // 796 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x56, 0xcb, 0x6e, 0xdb, 0x3a, + 0x10, 0x85, 0xfc, 0x8a, 0x35, 0x46, 0xec, 0x84, 0xc8, 0x83, 0xf0, 0xcd, 0x0d, 0x7c, 0x89, 0x8b, + 0xc2, 0x9b, 0xa6, 0x45, 0xba, 0x6b, 0x56, 0xad, 0xdd, 0x1a, 0x46, 0x12, 0x18, 0x55, 0xe1, 0x4d, + 0x57, 0x55, 0xac, 0x89, 0x23, 0xd4, 0x16, 0x55, 0x49, 0x0e, 0x02, 0xf4, 0x03, 0xba, 0x2e, 0xba, + 0xe8, 0x6f, 0xf4, 0xd7, 0xfa, 0x07, 0x05, 0x49, 0xcb, 0xa2, 0x1e, 0x76, 0x82, 0xb6, 0x40, 0x37, + 0x02, 0xe7, 0x90, 0x3c, 0xc3, 0x33, 0x33, 0xe4, 0x08, 0x5a, 0x8b, 0x10, 0x83, 0x27, 0xe2, 0x73, + 0xe2, 0x07, 0x3c, 0xe2, 0xa4, 0x22, 0xc6, 0xec, 0x35, 0x40, 0x8f, 0xcf, 0xe7, 0xdc, 0xb3, 0x30, + 0xf4, 0xc9, 0x11, 0x98, 0x18, 0x04, 0x3c, 0xe8, 0x71, 0x07, 0xa9, 0xd1, 0x31, 0xba, 0x55, 0x2b, + 0x01, 0x48, 0x1b, 0xea, 0xd2, 0xb8, 0x0c, 0xa7, 0xb4, 0xd4, 0x31, 0xba, 0xa6, 0xb5, 0xb2, 0x99, + 0x0b, 0xad, 0x3e, 0xce, 0x30, 0xc2, 0x71, 0x88, 0x41, 0x28, 0xc9, 0x9e, 0x02, 0x4c, 0x56, 0xd4, + 0x92, 0xad, 0x71, 0xba, 0x73, 0x22, 0x4f, 0x90, 0xb8, 0xb4, 0xb4, 0x35, 0xe4, 0x7f, 0xd8, 0xbe, + 0xb6, 0xdd, 0x19, 0x3a, 0x63, 0xd7, 0xb9, 0x70, 0xc3, 0x88, 0x96, 0x3a, 0xe5, 0xae, 0x69, 0xa5, + 0x41, 0xe6, 0x41, 0x33, 0xe5, 0xea, 0xa3, 0xd8, 0xe7, 0x28, 0x24, 0xbd, 0x2f, 0x05, 0x92, 0x3d, + 0xa8, 0x46, 0xfc, 0x03, 0x7a, 0xb4, 0x2c, 0xcf, 0xae, 0x0c, 0xd2, 0x81, 0xc6, 0xc8, 0xc7, 0xc0, + 0x8e, 0x5c, 0xee, 0x0d, 0xfb, 0xb4, 0x22, 0xe7, 0x74, 0x88, 0x9d, 0xc3, 0xee, 0x00, 0xa3, 0x17, + 0xb3, 0x99, 0xf4, 0x37, 0x76, 0x1d, 0xe1, 0x72, 0x45, 0x56, 0xca, 0x90, 0x71, 0x8d, 0x4c, 0x39, + 0xd2, 0x21, 0xf6, 0x1e, 0x48, 0x96, 0xec, 0x97, 0x42, 0x45, 0x61, 0x6b, 0x91, 0x12, 0x1b, 0x9b, + 0xec, 0x06, 0x9a, 0x03, 0x8c, 0x04, 0xfd, 0xd0, 0xbb, 0xe6, 0xe2, 0xac, 0xc7, 0x00, 0x82, 0x6a, + 0xd8, 0x97, 0xcb, 0x0d, 0xb9, 0x5c, 0x43, 0xd6, 0x6b, 0x19, 0xe5, 0xb5, 0xe8, 0x81, 0xe1, 0xd0, + 0x4a, 0x79, 0xfa, 0x9d, 0x02, 0x22, 0x0c, 0x2a, 0x7d, 0x3b, 0xb2, 0x69, 0xb9, 0x53, 0xee, 0x36, + 0x4e, 0x9b, 0x4a, 0xfc, 0x8a, 0x5b, 0xce, 0xb1, 0xef, 0x06, 0xd4, 0x63, 0x88, 0xec, 0x40, 0x79, + 0xe1, 0x3a, 0xd2, 0x89, 0x69, 0x89, 0x21, 0x21, 0x50, 0xf1, 0xec, 0x39, 0x2e, 0xa9, 0xe5, 0x58, + 0x60, 0xee, 0x84, 0xc7, 0x39, 0x97, 0x63, 0x72, 0x00, 0xb5, 0x29, 0x7a, 0x0e, 0x06, 0x32, 0xdb, + 0x55, 0x6b, 0x69, 0x09, 0x7c, 0xce, 0xaf, 0xdc, 0x19, 0xd2, 0xaa, 0x5c, 0xbd, 0xb4, 0x44, 0x7c, + 0xae, 0xdc, 0x20, 0xba, 0xa1, 0x35, 0x15, 0x1f, 0x69, 0x08, 0x14, 0xe7, 0xb6, 0x3b, 0xa3, 0x5b, + 0x0a, 0x95, 0x06, 0x69, 0x42, 0x09, 0xef, 0x68, 0x5d, 0x42, 0x25, 0xbc, 0x63, 0x3d, 0x30, 0x2f, + 0xf8, 0x94, 0x2f, 0x22, 0x91, 0x88, 0x4c, 0x48, 0x8d, 0x5c, 0x48, 0x8b, 0x53, 0xc1, 0x7e, 0x18, + 0xb0, 0x3b, 0xf6, 0x1d, 0x5b, 0x95, 0x7c, 0x9c, 0xd6, 0x58, 0x9a, 0xa1, 0x49, 0x2b, 0x0a, 0x41, + 0x22, 0xb7, 0xbc, 0x46, 0x6e, 0xa5, 0x58, 0x6e, 0xb5, 0x50, 0x6e, 0x2d, 0x2f, 0x77, 0x2b, 0x96, + 0x9b, 0x9c, 0xbf, 0xbe, 0xa1, 0x94, 0xcc, 0xbc, 0xee, 0x1d, 0x28, 0x8f, 0x5d, 0x87, 0x82, 0x4a, + 0xe6, 0xd8, 0x75, 0xd8, 0x67, 0x03, 0x0e, 0xdf, 0x62, 0x64, 0xe1, 0x04, 0xdd, 0x5b, 0xbc, 0xc4, + 0x30, 0xb4, 0xa7, 0x38, 0xf2, 0x65, 0x1c, 0x45, 0xea, 0x87, 0x49, 0xea, 0x87, 0x8e, 0x40, 0xb8, + 0x1f, 0x49, 0xd9, 0x55, 0x4b, 0x0c, 0xc9, 0x23, 0x68, 0x4e, 0xb8, 0x77, 0x8b, 0x41, 0xa8, 0x7c, + 0x38, 0xb2, 0xb2, 0x4c, 0x2b, 0x83, 0x66, 0xaf, 0x6c, 0x25, 0x7f, 0x65, 0x3f, 0x01, 0x2d, 0x3e, + 0x88, 0xba, 0x86, 0x18, 0xe8, 0xd5, 0x1e, 0x9b, 0x22, 0xba, 0x18, 0x68, 0x95, 0xbe, 0xb4, 0xc8, + 0x63, 0x30, 0xb9, 0xdc, 0xbc, 0x98, 0x45, 0xcb, 0x62, 0x6f, 0xa9, 0x62, 0x1f, 0xc5, 0xb0, 0x95, + 0xac, 0x60, 0x0b, 0x38, 0x1c, 0x3c, 0x38, 0x0a, 0x79, 0xcd, 0xa5, 0x87, 0x68, 0x2e, 0x78, 0xa6, + 0xce, 0xc1, 0x5c, 0x1d, 0xa7, 0x80, 0x56, 0xf9, 0xcc, 0xd2, 0x1e, 0x40, 0x2d, 0x50, 0xba, 0x54, + 0x1e, 0x96, 0x16, 0xfb, 0x6a, 0x00, 0x1d, 0xfc, 0xb9, 0x08, 0xbe, 0x82, 0x7d, 0xdd, 0xf1, 0xe8, + 0xbe, 0x68, 0x16, 0xaf, 0x66, 0x6f, 0xe0, 0x1f, 0xf5, 0x12, 0xf7, 0xb4, 0xe9, 0xcb, 0x70, 0xba, + 0x36, 0xba, 0x99, 0xa8, 0x95, 0xf2, 0x51, 0xfb, 0x66, 0xc0, 0xd1, 0x7a, 0xce, 0xbf, 0x28, 0xf6, + 0xf4, 0x4b, 0x05, 0x64, 0xbf, 0x27, 0xcf, 0xa1, 0x31, 0x4d, 0xde, 0x6c, 0xb2, 0xa7, 0xf6, 0xa7, + 0x1b, 0x46, 0x7b, 0xbf, 0x00, 0x0d, 0x7d, 0x72, 0x06, 0xcd, 0xf4, 0x2b, 0x44, 0x0e, 0x97, 0xcf, + 0x74, 0xf6, 0x6d, 0x6a, 0xe7, 0x9a, 0x97, 0x70, 0xac, 0x75, 0xed, 0xd8, 0x71, 0xba, 0x91, 0xc7, + 0x8e, 0xb3, 0x7f, 0x12, 0x3d, 0xd9, 0xd2, 0xb4, 0xa6, 0x19, 0x3b, 0xce, 0xf5, 0xe5, 0x36, 0x2d, + 0x9e, 0x08, 0x7d, 0x32, 0x86, 0xbd, 0xa2, 0x6b, 0x4c, 0xfe, 0x55, 0x3b, 0xd6, 0xbc, 0x35, 0xed, + 0xe3, 0x4d, 0xd3, 0x8a, 0x76, 0xb0, 0x81, 0x76, 0xb0, 0x99, 0x76, 0xed, 0xb5, 0xb0, 0xe5, 0x95, + 0x29, 0xac, 0x24, 0xf2, 0x9f, 0xae, 0xb1, 0xb0, 0x7a, 0xdb, 0xec, 0xbe, 0x25, 0xa1, 0xff, 0x72, + 0xfb, 0x5d, 0xe3, 0x44, 0xfe, 0x10, 0x9e, 0x89, 0xcf, 0x55, 0x4d, 0xfe, 0x16, 0x3e, 0xfb, 0x19, + 0x00, 0x00, 0xff, 0xff, 0xac, 0xcf, 0xd3, 0x1b, 0x29, 0x0a, 0x00, 0x00, } diff --git a/pkg/proto/user/user.proto b/pkg/proto/user/user.proto index 883ab5d73..2e9c98e39 100644 --- a/pkg/proto/user/user.proto +++ b/pkg/proto/user/user.proto @@ -65,11 +65,55 @@ message UpdateUserInfoReq{ string Uid = 10; } +message SetReceiveMessageOptReq{ + string uId = 1; + int32 opt = 2; + repeated string conversationId = 3; + string operationID = 4; +} + +message SetReceiveMessageOptResp{ + int32 errCode = 1; + string errMsg = 2; + repeated OptResult optResult = 3; +} + + +message GetReceiveMessageOptReq{ + string uId = 1; + repeated string conversationId = 2; + string operationID = 3; +} + +message OptResult{ + string conversationId = 1; + int32 result = 2; //-1: failed; 0:default; 1: not receive ; 2: not jpush +} + +message GetReceiveMessageOptResp{ + int32 errCode = 1; + string errMsg = 2; + repeated OptResult conversationOptResult = 3; +} + +message GetAllConversationMsgOptReq{ + string uId = 1; + string operationID = 2; +} + +message GetAllConversationMsgOptResp{ + int32 errCode = 1; + string errMsg = 2; + repeated OptResult conversationOptResult = 3; +} + service user { rpc getUserInfo(GetUserInfoReq) returns(GetUserInfoResp); rpc UpdateUserInfo(UpdateUserInfoReq) returns(CommonResp); rpc DeleteUsers(DeleteUsersReq)returns(DeleteUsersResp); rpc GetAllUsersUid(GetAllUsersUidReq)returns(GetAllUsersUidResp); - + rpc SetReceiveMessageOpt(SetReceiveMessageOptReq)returns(SetReceiveMessageOptResp); + rpc GetReceiveMessageOpt(GetReceiveMessageOptReq)returns(GetReceiveMessageOptResp); + rpc GetAllConversationMsgOpt(GetAllConversationMsgOptReq)returns(GetAllConversationMsgOptResp); } From e4e5608c8c6c78afded9400672e9ed4b8d3b3d4c Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Tue, 7 Dec 2021 14:34:41 +0800 Subject: [PATCH 158/814] ReceiveMessageOpt --- internal/rpc/user/conversation.go | 59 +++++++++++++++++++++++++++++++ 1 file changed, 59 insertions(+) create mode 100644 internal/rpc/user/conversation.go diff --git a/internal/rpc/user/conversation.go b/internal/rpc/user/conversation.go new file mode 100644 index 000000000..1f87c1cd4 --- /dev/null +++ b/internal/rpc/user/conversation.go @@ -0,0 +1,59 @@ +package user + +import ( + "Open_IM/pkg/common/constant" + "Open_IM/pkg/common/db" + "Open_IM/pkg/common/log" + pbUser "Open_IM/pkg/proto/user" + "context" +) + +func (s *userServer) SetReceiveMessageOpt(ctx context.Context, req *pbUser.SetReceiveMessageOptReq) (*pbUser.SetReceiveMessageOptResp, error) { + m := make(map[string]int, len(req.ConversationId)) + for _, v := range req.ConversationId { + m[v] = int(req.Opt) + } + err := db.DB.SetMultiConversationMsgOpt(req.UId, m) + if err != nil { + log.NewError(req.OperationID, "SetMultiConversationMsgOpt failed ", err.Error(), req) + return &pbUser.SetReceiveMessageOptResp{ErrCode: constant.DatabaseError, ErrMsg: err.Error()}, nil + } + var resp pbUser.SetReceiveMessageOptResp + resp.ErrCode = 0 + + for _, v := range req.ConversationId { + resp.OptResult = append(resp.OptResult, &pbUser.OptResult{ConversationId: v, Result: 0}) + } + log.NewInfo(req.OperationID, "SetReceiveMessageOpt req, resp ", req, resp) + return &resp, nil +} + +func (s *userServer) GetReceiveMessageOpt(ctx context.Context, req *pbUser.GetReceiveMessageOptReq) (*pbUser.GetReceiveMessageOptResp, error) { + m, err := db.DB.GetMultiConversationMsgOpt(req.UId, req.ConversationId) + if err != nil { + log.NewError(req.OperationID, "GetMultiConversationMsgOpt failed ", err.Error(), req) + return &pbUser.GetReceiveMessageOptResp{ErrCode: constant.DatabaseError, ErrMsg: err.Error()}, nil + } + var resp pbUser.GetReceiveMessageOptResp + resp.ErrCode = 0 + for k, v := range m { + resp.ConversationOptResult = append(resp.ConversationOptResult, &pbUser.OptResult{ConversationId: k, Result: int32(v)}) + } + log.NewInfo(req.OperationID, "GetReceiveMessageOpt, req, resp", req, resp) + return &resp, nil +} + +func (s *userServer) GetAllConversationMsgOpt(ctx context.Context, req *pbUser.GetAllConversationMsgOptReq) (*pbUser.GetAllConversationMsgOptResp, error) { + m, err := db.DB.GetAllConversationMsgOpt(req.UId) + if err != nil { + log.NewError(req.OperationID, "GetAllConversationMsgOpt failed ", err.Error(), req) + return &pbUser.GetAllConversationMsgOptResp{ErrCode: constant.DatabaseError, ErrMsg: err.Error()}, nil + } + var resp pbUser.GetAllConversationMsgOptResp + resp.ErrCode = 0 + for k, v := range m { + resp.ConversationOptResult = append(resp.ConversationOptResult, &pbUser.OptResult{ConversationId: k, Result: int32(v)}) + } + log.NewInfo(req.OperationID, "GetAllConversationMsgOpt, req, resp", req, resp) + return &resp, nil +} From 52498bf05e2a82b95756f5f1830b9ab1e5a19509 Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Tue, 7 Dec 2021 14:39:56 +0800 Subject: [PATCH 159/814] ReceiveMessageOpt --- internal/api/conversation/conversation.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/internal/api/conversation/conversation.go b/internal/api/conversation/conversation.go index c73e161c5..4046f611c 100644 --- a/internal/api/conversation/conversation.go +++ b/internal/api/conversation/conversation.go @@ -14,7 +14,7 @@ import ( type paramsSetReceiveMessageOpt struct { OperationID string `json:"operationID" binding:"required"` - Option int32 `json:"operationID" binding:"required"` + Option int32 `json:"option" binding:"required"` ConversationIdList []string `json:"conversationIdList" binding:"required"` } From 9dbad9ce53777bb2af242bb424edba0d16d525b8 Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Tue, 7 Dec 2021 15:44:12 +0800 Subject: [PATCH 160/814] ReceiveMessageOpt --- internal/api/conversation/conversation.go | 46 ++++++++++++++++--- pkg/utils/utils.go | 55 +++++++++++++++++++++++ 2 files changed, 95 insertions(+), 6 deletions(-) create mode 100644 pkg/utils/utils.go diff --git a/internal/api/conversation/conversation.go b/internal/api/conversation/conversation.go index 4046f611c..41d82474a 100644 --- a/internal/api/conversation/conversation.go +++ b/internal/api/conversation/conversation.go @@ -6,6 +6,7 @@ import ( "Open_IM/pkg/common/token_verify" "Open_IM/pkg/grpc-etcdv3/getcdv3" "Open_IM/pkg/proto/user" + "Open_IM/pkg/utils" "context" "github.com/gin-gonic/gin" "net/http" @@ -18,10 +19,15 @@ type paramsSetReceiveMessageOpt struct { ConversationIdList []string `json:"conversationIdList" binding:"required"` } +type OptResult struct { + ConversationId string `json:"conversationId" binding:"required"` + Result int32 `json:"result" binding:"required"` +} + type SetReceiveMessageOptResp struct { - ErrCode int32 `json:"errCode"` - ErrMsg string `json:"errMsg"` - Data []*user.OptResult `json:"data"` + ErrCode int32 `json:"errCode"` + ErrMsg string `json:"errMsg"` + Data []OptResult `json:"data"` } type paramGetReceiveMessageOpt struct { @@ -41,6 +47,8 @@ type GetAllConversationMessageOptResp struct { SetReceiveMessageOptResp } +//CopyStructFields + func GetAllConversationMessageOpt(c *gin.Context) { params := paramGetAllConversationMessageOpt{} if err := c.BindJSON(¶ms); err != nil { @@ -72,7 +80,15 @@ func GetAllConversationMessageOpt(c *gin.Context) { var ginResp GetAllConversationMessageOptResp ginResp.ErrCode = resp.ErrCode ginResp.ErrMsg = resp.ErrMsg - ginResp.Data = resp.ConversationOptResult + for _, v := range resp.ConversationOptResult { + var opt OptResult + err := utils.CopyStructFields(&opt, v) + if err != nil { + log.NewError(req.OperationID, "CopyStructFields failed ", err.Error()) + continue + } + ginResp.Data = append(ginResp.Data, opt) + } log.NewInfo(req.OperationID, "GetAllConversationMsgOpt resp: ", ginResp, req) c.JSON(http.StatusOK, ginResp) } @@ -109,7 +125,16 @@ func GetReceiveMessageOpt(c *gin.Context) { var ginResp GetReceiveMessageOptResp ginResp.ErrCode = resp.ErrCode ginResp.ErrMsg = resp.ErrMsg - ginResp.Data = resp.ConversationOptResult + + for _, v := range resp.ConversationOptResult { + var opt OptResult + err := utils.CopyStructFields(&opt, v) + if err != nil { + log.NewError(req.OperationID, "CopyStructFields failed ", err.Error()) + continue + } + ginResp.Data = append(ginResp.Data, opt) + } log.NewInfo(req.OperationID, "GetReceiveMessageOpt resp: ", ginResp) c.JSON(http.StatusOK, ginResp) } @@ -148,7 +173,16 @@ func SetReceiveMessageOpt(c *gin.Context) { ginResp := SetReceiveMessageOptResp{ ErrCode: resp.ErrCode, ErrMsg: resp.ErrMsg, - Data: resp.OptResult, + } + + for _, v := range resp.OptResult { + var opt OptResult + err := utils.CopyStructFields(&opt, v) + if err != nil { + log.NewError(req.OperationID, "CopyStructFields failed ", err.Error()) + continue + } + ginResp.Data = append(ginResp.Data, opt) } log.NewInfo(req.OperationID, "SetReceiveMessageOpt resp: ", ginResp) c.JSON(http.StatusOK, ginResp) diff --git a/pkg/utils/utils.go b/pkg/utils/utils.go new file mode 100644 index 000000000..5f6e9a6ca --- /dev/null +++ b/pkg/utils/utils.go @@ -0,0 +1,55 @@ +package utils + +import ( + "fmt" + "reflect" +) + +// copy a by b b->a +func CopyStructFields(a interface{}, b interface{}, fields ...string) (err error) { + at := reflect.TypeOf(a) + av := reflect.ValueOf(a) + bt := reflect.TypeOf(b) + bv := reflect.ValueOf(b) + + if at.Kind() != reflect.Ptr { + err = fmt.Errorf("a must be a struct pointer") + return err + } + av = reflect.ValueOf(av.Interface()) + + _fields := make([]string, 0) + if len(fields) > 0 { + _fields = fields + } else { + for i := 0; i < bv.NumField(); i++ { + _fields = append(_fields, bt.Field(i).Name) + } + } + + if len(_fields) == 0 { + err = fmt.Errorf("no fields to copy") + return err + } + + for i := 0; i < len(_fields); i++ { + name := _fields[i] + f := av.Elem().FieldByName(name) + bValue := bv.FieldByName(name) + + if f.IsValid() && f.Kind() == bValue.Kind() { + f.Set(bValue) + } + } + return nil +} + +type S1 struct { + Name string + Age int +} + +type S2 struct { + Name string + Age int32 +} From 2adbf9f686777460425080668dfa5ac49c5b5b41 Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Tue, 7 Dec 2021 15:56:33 +0800 Subject: [PATCH 161/814] ReceiveMessageOpt debug log --- internal/api/conversation/conversation.go | 2 ++ 1 file changed, 2 insertions(+) diff --git a/internal/api/conversation/conversation.go b/internal/api/conversation/conversation.go index 41d82474a..f08b1103b 100644 --- a/internal/api/conversation/conversation.go +++ b/internal/api/conversation/conversation.go @@ -128,7 +128,9 @@ func GetReceiveMessageOpt(c *gin.Context) { for _, v := range resp.ConversationOptResult { var opt OptResult + log.NewDebug("CopyStructFields begin ", v, req.OperationID) err := utils.CopyStructFields(&opt, v) + log.NewDebug("CopyStructFields end ", v, req.OperationID) if err != nil { log.NewError(req.OperationID, "CopyStructFields failed ", err.Error()) continue From 5dd494d9a2e55a315cfa6504368c7175f11e4810 Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Tue, 7 Dec 2021 16:01:48 +0800 Subject: [PATCH 162/814] ReceiveMessageOpt debug log --- internal/api/conversation/conversation.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/internal/api/conversation/conversation.go b/internal/api/conversation/conversation.go index f08b1103b..f1e1fd05a 100644 --- a/internal/api/conversation/conversation.go +++ b/internal/api/conversation/conversation.go @@ -128,9 +128,9 @@ func GetReceiveMessageOpt(c *gin.Context) { for _, v := range resp.ConversationOptResult { var opt OptResult - log.NewDebug("CopyStructFields begin ", v, req.OperationID) + log.NewInfo("CopyStructFields begin ", v, req.OperationID) err := utils.CopyStructFields(&opt, v) - log.NewDebug("CopyStructFields end ", v, req.OperationID) + log.NewInfo("CopyStructFields end ", v, req.OperationID) if err != nil { log.NewError(req.OperationID, "CopyStructFields failed ", err.Error()) continue From 19489afefc0e22c60f8575d87ce20de49976ab44 Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Tue, 7 Dec 2021 16:07:56 +0800 Subject: [PATCH 163/814] ReceiveMessageOpt debug log --- internal/api/conversation/conversation.go | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/internal/api/conversation/conversation.go b/internal/api/conversation/conversation.go index f1e1fd05a..3840ee987 100644 --- a/internal/api/conversation/conversation.go +++ b/internal/api/conversation/conversation.go @@ -122,6 +122,7 @@ func GetReceiveMessageOpt(c *gin.Context) { c.JSON(http.StatusBadRequest, gin.H{"errCode": 401, "errMsg": "GetReceiveMessageOpt rpc failed, " + err.Error()}) return } + log.NewInfo(req.OperationID, "GetReceiveMessageOptReq req: ", req, resp) var ginResp GetReceiveMessageOptResp ginResp.ErrCode = resp.ErrCode ginResp.ErrMsg = resp.ErrMsg @@ -171,7 +172,7 @@ func SetReceiveMessageOpt(c *gin.Context) { c.JSON(http.StatusBadRequest, gin.H{"errCode": 401, "errMsg": "SetReceiveMessageOpt rpc failed, " + err.Error()}) return } - + log.NewInfo(req.OperationID, "SetReceiveMessageOpt req: ", req, resp) ginResp := SetReceiveMessageOptResp{ ErrCode: resp.ErrCode, ErrMsg: resp.ErrMsg, From 31212d4f4b39a68c871d3853c26e0ed3a1b97007 Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Tue, 7 Dec 2021 16:10:49 +0800 Subject: [PATCH 164/814] ReceiveMessageOpt debug log --- internal/api/conversation/conversation.go | 2 ++ 1 file changed, 2 insertions(+) diff --git a/internal/api/conversation/conversation.go b/internal/api/conversation/conversation.go index 3840ee987..b8c96fc28 100644 --- a/internal/api/conversation/conversation.go +++ b/internal/api/conversation/conversation.go @@ -180,7 +180,9 @@ func SetReceiveMessageOpt(c *gin.Context) { for _, v := range resp.OptResult { var opt OptResult + log.NewDebug("CopyStructFields begin ", v, req.OperationID) err := utils.CopyStructFields(&opt, v) + log.NewDebug("CopyStructFields end ", v, req.OperationID) if err != nil { log.NewError(req.OperationID, "CopyStructFields failed ", err.Error()) continue From 053792e89da7d6199616f71dd2ff9f5887f0b7b6 Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Tue, 7 Dec 2021 16:12:55 +0800 Subject: [PATCH 165/814] ReceiveMessageOpt debug log --- internal/api/conversation/conversation.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/internal/api/conversation/conversation.go b/internal/api/conversation/conversation.go index b8c96fc28..4d0330f77 100644 --- a/internal/api/conversation/conversation.go +++ b/internal/api/conversation/conversation.go @@ -181,7 +181,7 @@ func SetReceiveMessageOpt(c *gin.Context) { for _, v := range resp.OptResult { var opt OptResult log.NewDebug("CopyStructFields begin ", v, req.OperationID) - err := utils.CopyStructFields(&opt, v) + err := utils.CopyStructFields(&opt, *v, "ConversationId", "Result") log.NewDebug("CopyStructFields end ", v, req.OperationID) if err != nil { log.NewError(req.OperationID, "CopyStructFields failed ", err.Error()) From 570c0cb9a1ec7cab4111ff02bc8e88bf37b9bf15 Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Tue, 7 Dec 2021 16:13:11 +0800 Subject: [PATCH 166/814] remove log --- cmd/open_im_timer_task/main.go | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/cmd/open_im_timer_task/main.go b/cmd/open_im_timer_task/main.go index d5cf8150c..56fd6a4c0 100644 --- a/cmd/open_im_timer_task/main.go +++ b/cmd/open_im_timer_task/main.go @@ -42,17 +42,17 @@ func main() { for { uidList, err := im_mysql_model.SelectAllUID() if err != nil { - log.NewError("999999", err.Error()) + //log.NewError("999999", err.Error()) } else { for _, v := range uidList { minSeq, err := commonDB.DB.GetMinSeqFromMongo(v) if err != nil { - log.NewError("999999", "get user minSeq err", err.Error(), v) + //log.NewError("999999", "get user minSeq err", err.Error(), v) continue } else { err := commonDB.DB.SetUserMinSeq(v, minSeq) if err != nil { - log.NewError("999999", "set user minSeq err", err.Error(), v) + //log.NewError("999999", "set user minSeq err", err.Error(), v) } } time.Sleep(time.Duration(100) * time.Millisecond) From d7028f22e20a24e42418aae528e518c9bfa57500 Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Tue, 7 Dec 2021 16:15:21 +0800 Subject: [PATCH 167/814] fix bug --- internal/api/conversation/conversation.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/internal/api/conversation/conversation.go b/internal/api/conversation/conversation.go index 4d0330f77..718af6f9f 100644 --- a/internal/api/conversation/conversation.go +++ b/internal/api/conversation/conversation.go @@ -82,7 +82,7 @@ func GetAllConversationMessageOpt(c *gin.Context) { ginResp.ErrMsg = resp.ErrMsg for _, v := range resp.ConversationOptResult { var opt OptResult - err := utils.CopyStructFields(&opt, v) + err := utils.CopyStructFields(&opt, *v, "ConversationId", "Result") if err != nil { log.NewError(req.OperationID, "CopyStructFields failed ", err.Error()) continue @@ -130,7 +130,7 @@ func GetReceiveMessageOpt(c *gin.Context) { for _, v := range resp.ConversationOptResult { var opt OptResult log.NewInfo("CopyStructFields begin ", v, req.OperationID) - err := utils.CopyStructFields(&opt, v) + err := utils.CopyStructFields(&opt, *v, "ConversationId", "Result") log.NewInfo("CopyStructFields end ", v, req.OperationID) if err != nil { log.NewError(req.OperationID, "CopyStructFields failed ", err.Error()) From 5b026e13f6ef58366d31ea0fdf4cf11b093b5f7a Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Wed, 8 Dec 2021 10:42:04 +0800 Subject: [PATCH 168/814] conversation update --- internal/api/conversation/conversation.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/internal/api/conversation/conversation.go b/internal/api/conversation/conversation.go index 718af6f9f..c1e42daf8 100644 --- a/internal/api/conversation/conversation.go +++ b/internal/api/conversation/conversation.go @@ -31,7 +31,7 @@ type SetReceiveMessageOptResp struct { } type paramGetReceiveMessageOpt struct { - ConversationIdList []string `json:"ConversationIdList" binding:"required"` + ConversationIdList []string `json:"conversationIdList" binding:"required"` OperationID string `json:"operationID" binding:"required"` } From c9a48081fdb13df59d76422cffffcec139e9a25a Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Wed, 8 Dec 2021 12:24:55 +0800 Subject: [PATCH 169/814] conversation update --- internal/api/conversation/conversation.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/internal/api/conversation/conversation.go b/internal/api/conversation/conversation.go index c1e42daf8..810e157db 100644 --- a/internal/api/conversation/conversation.go +++ b/internal/api/conversation/conversation.go @@ -15,7 +15,7 @@ import ( type paramsSetReceiveMessageOpt struct { OperationID string `json:"operationID" binding:"required"` - Option int32 `json:"option" binding:"required"` + Option int32 `json:"option"` ConversationIdList []string `json:"conversationIdList" binding:"required"` } From a090e602b321cfdd036bb5a587ef2136cc53f0bc Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Wed, 8 Dec 2021 12:30:17 +0800 Subject: [PATCH 170/814] conversation update --- internal/api/conversation/conversation.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/internal/api/conversation/conversation.go b/internal/api/conversation/conversation.go index 810e157db..4e4316b05 100644 --- a/internal/api/conversation/conversation.go +++ b/internal/api/conversation/conversation.go @@ -15,7 +15,7 @@ import ( type paramsSetReceiveMessageOpt struct { OperationID string `json:"operationID" binding:"required"` - Option int32 `json:"option"` + Option *int32 `json:"option" binding:"required"` ConversationIdList []string `json:"conversationIdList" binding:"required"` } @@ -159,7 +159,7 @@ func SetReceiveMessageOpt(c *gin.Context) { req := &user.SetReceiveMessageOptReq{ UId: claims.UID, - Opt: params.Option, + Opt: *params.Option, ConversationId: params.ConversationIdList, OperationID: params.OperationID, } From 93ffbe2a7938c11a01ceea1c2ff21e662e21a528 Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Wed, 8 Dec 2021 14:49:47 +0800 Subject: [PATCH 171/814] demo log --- internal/demo/register/verify.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/internal/demo/register/verify.go b/internal/demo/register/verify.go index c60b17c70..fc04a1b85 100644 --- a/internal/demo/register/verify.go +++ b/internal/demo/register/verify.go @@ -42,7 +42,7 @@ func Verify(c *gin.Context) { c.JSON(http.StatusOK, gin.H{"errCode": constant.NoError, "errMsg": "Verified successfully!", "data": data}) return } - + log.NewInfo("0", "params.VerificationCode != config.Config.Demo.SuperCode", params.VerificationCode, config.Config.Demo) log.InfoByKv("begin get form redis", account) v, err := redis.String(db.DB.Exec("GET", account)) log.InfoByKv("redis phone number and verificating Code", account, v) From 1f40c87dd98f72b3bb74bbbaa03402328ebb3fa2 Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Wed, 8 Dec 2021 14:56:09 +0800 Subject: [PATCH 172/814] demo log --- internal/demo/register/verify.go | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/internal/demo/register/verify.go b/internal/demo/register/verify.go index fc04a1b85..b52da8216 100644 --- a/internal/demo/register/verify.go +++ b/internal/demo/register/verify.go @@ -26,6 +26,7 @@ func Verify(c *gin.Context) { c.JSON(http.StatusBadRequest, gin.H{"errCode": constant.FormattingError, "errMsg": err.Error()}) return } + log.NewInfo("recv req: ", params) var account string if params.Email != "" { @@ -42,7 +43,7 @@ func Verify(c *gin.Context) { c.JSON(http.StatusOK, gin.H{"errCode": constant.NoError, "errMsg": "Verified successfully!", "data": data}) return } - log.NewInfo("0", "params.VerificationCode != config.Config.Demo.SuperCode", params.VerificationCode, config.Config.Demo) + log.NewInfo("0", " params.VerificationCode != config.Config.Demo.SuperCode", params.VerificationCode, config.Config.Demo) log.InfoByKv("begin get form redis", account) v, err := redis.String(db.DB.Exec("GET", account)) log.InfoByKv("redis phone number and verificating Code", account, v) From 687933a63ed87deefebc9e8144588c3c1879a7f5 Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Wed, 8 Dec 2021 17:23:26 +0800 Subject: [PATCH 173/814] conversation update --- pkg/utils/map.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkg/utils/map.go b/pkg/utils/map.go index 48acadc60..f2c2d07b5 100644 --- a/pkg/utils/map.go +++ b/pkg/utils/map.go @@ -116,7 +116,7 @@ func JsonStringToMap(str string) (tempMap map[string]interface{}) { return tempMap } func GetSwitchFromOptions(Options map[string]interface{}, key string) (result bool) { - if flag, ok := Options[key]; !ok || flag.(int) == 1 { + if flag, ok := Options[key]; !ok || flag.(float64) == 1 { return true } return false From ebd867a6d5d32db9769f676f744bdc7b75e906bf Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Wed, 8 Dec 2021 17:44:16 +0800 Subject: [PATCH 174/814] conversation update --- internal/api/chat/get_max_min_seq.go | 3 ++- internal/api/chat/pull_msg.go | 3 ++- internal/api/chat/send_msg.go | 7 ++++++- internal/rpc/chat/send_msg.go | 2 +- 4 files changed, 11 insertions(+), 4 deletions(-) diff --git a/internal/api/chat/get_max_min_seq.go b/internal/api/chat/get_max_min_seq.go index 7103cae4a..984497c18 100644 --- a/internal/api/chat/get_max_min_seq.go +++ b/internal/api/chat/get_max_min_seq.go @@ -42,7 +42,8 @@ func UserGetSeq(c *gin.Context) { msgClient := pbMsg.NewChatClient(grpcConn) reply, err := msgClient.GetMaxAndMinSeq(context.Background(), &pbData) if err != nil { - log.ErrorByKv("rpc call failed to getNewSeq", pbData.OperationID, "err", err, "pbData", pbData.String()) + log.NewError(params.OperationID, "UserGetSeq rpc failed, ", params, err.Error()) + c.JSON(http.StatusBadRequest, gin.H{"errCode": 401, "errMsg": "UserGetSeq rpc failed, " + err.Error()}) return } diff --git a/internal/api/chat/pull_msg.go b/internal/api/chat/pull_msg.go index 46b568284..c0fa578e9 100644 --- a/internal/api/chat/pull_msg.go +++ b/internal/api/chat/pull_msg.go @@ -43,7 +43,8 @@ func UserPullMsg(c *gin.Context) { msgClient := pbChat.NewChatClient(grpcConn) reply, err := msgClient.PullMessage(context.Background(), &pbData) if err != nil { - log.ErrorByKv("PullMessage error", pbData.OperationID, "err", err.Error()) + log.NewError(params.OperationID, "UserPullMsg rpc failed, ", params, err.Error()) + c.JSON(http.StatusBadRequest, gin.H{"errCode": 401, "errMsg": "UserPullMsg rpc failed, " + err.Error()}) return } log.InfoByKv("rpc call success to pullMsgRep", pbData.OperationID, "ReplyArgs", reply.String(), "maxSeq", reply.GetMaxSeq(), diff --git a/internal/api/chat/send_msg.go b/internal/api/chat/send_msg.go index 6d7294109..4d53bf769 100644 --- a/internal/api/chat/send_msg.go +++ b/internal/api/chat/send_msg.go @@ -77,7 +77,12 @@ func UserSendMsg(c *gin.Context) { log.Info("", "", "api UserSendMsg call, api call rpc...") - reply, _ := client.UserSendMsg(context.Background(), pbData) + reply, err := client.UserSendMsg(context.Background(), pbData) + if err != nil { + log.NewError(params.OperationID, "UserSendMsg rpc failed, ", params, err.Error()) + c.JSON(http.StatusBadRequest, gin.H{"errCode": 401, "errMsg": "UserSendMsg rpc failed, " + err.Error()}) + return + } log.Info("", "", "api UserSendMsg call end..., [data: %s] [reply: %s]", pbData.String(), reply.String()) c.JSON(http.StatusOK, gin.H{ diff --git a/internal/rpc/chat/send_msg.go b/internal/rpc/chat/send_msg.go index b0e8f663a..42d83e1a7 100644 --- a/internal/rpc/chat/send_msg.go +++ b/internal/rpc/chat/send_msg.go @@ -224,7 +224,7 @@ func modifyMessageByUserMessageReceiveOpt(userID, sourceID string, sessionType i case constant.NotReceiveMessage: return false case constant.ReceiveNotNotifyMessage: - m := utils.JsonStringToMap(msg.OfflineInfo) + m := utils.JsonStringToMap(msg.Options) utils.SetSwitchFromOptions(m, "offlinePush", 0) s := utils.MapToJsonString(m) msg.OfflineInfo = s From 058a191e6150bc205684efa246ec83ab548b69e2 Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Wed, 8 Dec 2021 18:08:48 +0800 Subject: [PATCH 175/814] rpc protocol update --- pkg/proto/chat/chat.proto | 6 +-- pkg/proto/push/push.pb.go | 106 ++++++++++++++++++++------------------ pkg/proto/push/push.proto | 2 +- 3 files changed, 59 insertions(+), 55 deletions(-) diff --git a/pkg/proto/chat/chat.proto b/pkg/proto/chat/chat.proto index 3c66c99dc..f65b1de73 100644 --- a/pkg/proto/chat/chat.proto +++ b/pkg/proto/chat/chat.proto @@ -16,7 +16,7 @@ message WSToMsgSvrChatMsg{ string MsgID = 11; string Token = 12; string OfflineInfo =13; - string Options = 14; + map Options = 14; int32 PlatformID =15; repeated string ForceList = 16; string ClientMsgID = 17; @@ -37,7 +37,7 @@ message MsgSvrToPushSvrChatMsg { string OperationID = 11; string MsgID = 12; string OfflineInfo = 13; - string Options =14; + map Options =14; int32 PlatformID =15; string ClientMsgID = 16; @@ -121,7 +121,7 @@ message UserSendMsgReq { string RecvID = 11; repeated string ForceList = 12; string Content = 13; - string Options = 14; + map Options = 14; string ClientMsgID = 15; string OffLineInfo = 16; string Ex = 17; diff --git a/pkg/proto/push/push.pb.go b/pkg/proto/push/push.pb.go index 2fdbd2f53..ea30d3911 100644 --- a/pkg/proto/push/push.pb.go +++ b/pkg/proto/push/push.pb.go @@ -24,32 +24,32 @@ var _ = math.Inf const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package type PushMsgReq struct { - SendID string `protobuf:"bytes,1,opt,name=SendID" json:"SendID,omitempty"` - RecvID string `protobuf:"bytes,2,opt,name=RecvID" json:"RecvID,omitempty"` - Content string `protobuf:"bytes,3,opt,name=Content" json:"Content,omitempty"` - RecvSeq int64 `protobuf:"varint,4,opt,name=RecvSeq" json:"RecvSeq,omitempty"` - SendTime int64 `protobuf:"varint,5,opt,name=SendTime" json:"SendTime,omitempty"` - MsgFrom int32 `protobuf:"varint,6,opt,name=MsgFrom" json:"MsgFrom,omitempty"` - ContentType int32 `protobuf:"varint,7,opt,name=ContentType" json:"ContentType,omitempty"` - SessionType int32 `protobuf:"varint,8,opt,name=SessionType" json:"SessionType,omitempty"` - OperationID string `protobuf:"bytes,9,opt,name=OperationID" json:"OperationID,omitempty"` - MsgID string `protobuf:"bytes,10,opt,name=MsgID" json:"MsgID,omitempty"` - OfflineInfo string `protobuf:"bytes,11,opt,name=OfflineInfo" json:"OfflineInfo,omitempty"` - Options string `protobuf:"bytes,12,opt,name=Options" json:"Options,omitempty"` - PlatformID int32 `protobuf:"varint,13,opt,name=PlatformID" json:"PlatformID,omitempty"` - SenderNickName string `protobuf:"bytes,14,opt,name=SenderNickName" json:"SenderNickName,omitempty"` - SenderFaceURL string `protobuf:"bytes,15,opt,name=SenderFaceURL" json:"SenderFaceURL,omitempty"` - ClientMsgID string `protobuf:"bytes,16,opt,name=ClientMsgID" json:"ClientMsgID,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + SendID string `protobuf:"bytes,1,opt,name=SendID" json:"SendID,omitempty"` + RecvID string `protobuf:"bytes,2,opt,name=RecvID" json:"RecvID,omitempty"` + Content string `protobuf:"bytes,3,opt,name=Content" json:"Content,omitempty"` + RecvSeq int64 `protobuf:"varint,4,opt,name=RecvSeq" json:"RecvSeq,omitempty"` + SendTime int64 `protobuf:"varint,5,opt,name=SendTime" json:"SendTime,omitempty"` + MsgFrom int32 `protobuf:"varint,6,opt,name=MsgFrom" json:"MsgFrom,omitempty"` + ContentType int32 `protobuf:"varint,7,opt,name=ContentType" json:"ContentType,omitempty"` + SessionType int32 `protobuf:"varint,8,opt,name=SessionType" json:"SessionType,omitempty"` + OperationID string `protobuf:"bytes,9,opt,name=OperationID" json:"OperationID,omitempty"` + MsgID string `protobuf:"bytes,10,opt,name=MsgID" json:"MsgID,omitempty"` + OfflineInfo string `protobuf:"bytes,11,opt,name=OfflineInfo" json:"OfflineInfo,omitempty"` + Options map[string]int32 `protobuf:"bytes,12,rep,name=Options" json:"Options,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` + PlatformID int32 `protobuf:"varint,13,opt,name=PlatformID" json:"PlatformID,omitempty"` + SenderNickName string `protobuf:"bytes,14,opt,name=SenderNickName" json:"SenderNickName,omitempty"` + SenderFaceURL string `protobuf:"bytes,15,opt,name=SenderFaceURL" json:"SenderFaceURL,omitempty"` + ClientMsgID string `protobuf:"bytes,16,opt,name=ClientMsgID" json:"ClientMsgID,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } func (m *PushMsgReq) Reset() { *m = PushMsgReq{} } func (m *PushMsgReq) String() string { return proto.CompactTextString(m) } func (*PushMsgReq) ProtoMessage() {} func (*PushMsgReq) Descriptor() ([]byte, []int) { - return fileDescriptor_push_4f08d2ff54ba8af2, []int{0} + return fileDescriptor_push_380e4afdaa5f6119, []int{0} } func (m *PushMsgReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_PushMsgReq.Unmarshal(m, b) @@ -146,11 +146,11 @@ func (m *PushMsgReq) GetOfflineInfo() string { return "" } -func (m *PushMsgReq) GetOptions() string { +func (m *PushMsgReq) GetOptions() map[string]int32 { if m != nil { return m.Options } - return "" + return nil } func (m *PushMsgReq) GetPlatformID() int32 { @@ -192,7 +192,7 @@ func (m *PushMsgResp) Reset() { *m = PushMsgResp{} } func (m *PushMsgResp) String() string { return proto.CompactTextString(m) } func (*PushMsgResp) ProtoMessage() {} func (*PushMsgResp) Descriptor() ([]byte, []int) { - return fileDescriptor_push_4f08d2ff54ba8af2, []int{1} + return fileDescriptor_push_380e4afdaa5f6119, []int{1} } func (m *PushMsgResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_PushMsgResp.Unmarshal(m, b) @@ -221,6 +221,7 @@ func (m *PushMsgResp) GetResultCode() int32 { func init() { proto.RegisterType((*PushMsgReq)(nil), "push.PushMsgReq") + proto.RegisterMapType((map[string]int32)(nil), "push.PushMsgReq.OptionsEntry") proto.RegisterType((*PushMsgResp)(nil), "push.PushMsgResp") } @@ -296,32 +297,35 @@ var _PushMsgService_serviceDesc = grpc.ServiceDesc{ Metadata: "push/push.proto", } -func init() { proto.RegisterFile("push/push.proto", fileDescriptor_push_4f08d2ff54ba8af2) } - -var fileDescriptor_push_4f08d2ff54ba8af2 = []byte{ - // 378 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x5c, 0x92, 0x5d, 0xeb, 0xda, 0x30, - 0x14, 0xc6, 0xe9, 0xb4, 0xbe, 0x1c, 0xe7, 0xcb, 0xc2, 0x18, 0xc1, 0x8b, 0x51, 0x64, 0x0c, 0x6f, - 0xd6, 0xc1, 0x76, 0xb9, 0x9b, 0x31, 0x8b, 0x50, 0x98, 0x2f, 0xa4, 0xee, 0x66, 0x77, 0xb5, 0x9e, - 0x6a, 0x59, 0x9b, 0xc4, 0xa6, 0x0a, 0xfb, 0xd2, 0xfb, 0x0c, 0x23, 0x49, 0xd5, 0xfe, 0xbd, 0x29, - 0x7d, 0x7e, 0xe7, 0x39, 0x87, 0x27, 0xc9, 0x81, 0xb1, 0xbc, 0xa8, 0xd3, 0x67, 0xfd, 0xf1, 0x65, - 0x29, 0x2a, 0x41, 0xda, 0xfa, 0x7f, 0xf6, 0xaf, 0x05, 0xb0, 0xbd, 0xa8, 0xd3, 0x4a, 0x1d, 0x19, - 0x9e, 0xc9, 0x3b, 0xe8, 0x44, 0xc8, 0x0f, 0x61, 0x40, 0x1d, 0xcf, 0x99, 0xf7, 0x59, 0xad, 0x34, - 0x67, 0x98, 0x5c, 0xc3, 0x80, 0xbe, 0xb2, 0xdc, 0x2a, 0x42, 0xa1, 0xbb, 0x10, 0xbc, 0x42, 0x5e, - 0xd1, 0x96, 0x29, 0xdc, 0xa4, 0xae, 0x68, 0x4f, 0x84, 0x67, 0xda, 0xf6, 0x9c, 0x79, 0x8b, 0xdd, - 0x24, 0x99, 0x42, 0x4f, 0x4f, 0xdd, 0x65, 0x05, 0x52, 0xd7, 0x94, 0xee, 0x5a, 0x77, 0xad, 0xd4, - 0x71, 0x59, 0x8a, 0x82, 0x76, 0x3c, 0x67, 0xee, 0xb2, 0x9b, 0x24, 0x1e, 0x0c, 0xea, 0xd1, 0xbb, - 0xbf, 0x12, 0x69, 0xd7, 0x54, 0x9b, 0x48, 0x3b, 0x22, 0x54, 0x2a, 0x13, 0xdc, 0x38, 0x7a, 0xd6, - 0xd1, 0x40, 0xda, 0xb1, 0x91, 0x58, 0xc6, 0x55, 0x26, 0x78, 0x18, 0xd0, 0xbe, 0x49, 0xdc, 0x44, - 0xe4, 0x2d, 0xb8, 0x2b, 0x75, 0x0c, 0x03, 0x0a, 0xa6, 0x66, 0x85, 0xe9, 0x4b, 0xd3, 0x3c, 0xe3, - 0x18, 0xf2, 0x54, 0xd0, 0x41, 0xdd, 0xf7, 0x40, 0x3a, 0xf7, 0x46, 0xea, 0x19, 0x8a, 0xbe, 0xb6, - 0xf7, 0x50, 0x4b, 0xf2, 0x1e, 0x60, 0x9b, 0xc7, 0x55, 0x2a, 0xca, 0x22, 0x0c, 0xe8, 0xd0, 0x84, - 0x6a, 0x10, 0xf2, 0x11, 0x46, 0xfa, 0xf4, 0x58, 0xae, 0xb3, 0xe4, 0xcf, 0x3a, 0x2e, 0x90, 0x8e, - 0xcc, 0x80, 0x27, 0x4a, 0x3e, 0xc0, 0xd0, 0x92, 0x65, 0x9c, 0xe0, 0x2f, 0xf6, 0x93, 0x8e, 0x8d, - 0xed, 0x25, 0x34, 0xb7, 0x94, 0x67, 0xc8, 0x2b, 0x7b, 0x8a, 0x89, 0x4d, 0xda, 0x40, 0xb3, 0x4f, - 0x30, 0xb8, 0xbf, 0xb7, 0x92, 0x3a, 0x1e, 0x43, 0x75, 0xc9, 0xab, 0x85, 0x38, 0xa0, 0x79, 0x74, - 0x97, 0x35, 0xc8, 0x97, 0xef, 0x30, 0xaa, 0xed, 0x11, 0x96, 0xd7, 0x2c, 0x41, 0xe2, 0x43, 0xb7, - 0x26, 0x64, 0xe2, 0x9b, 0x7d, 0x7a, 0xec, 0xcf, 0xf4, 0xcd, 0x13, 0x51, 0xf2, 0xc7, 0xf8, 0xf7, - 0xd0, 0x37, 0x7b, 0xf7, 0x4d, 0xee, 0x35, 0xdf, 0x77, 0xcc, 0xfe, 0x7d, 0xfd, 0x1f, 0x00, 0x00, - 0xff, 0xff, 0x6b, 0x53, 0xf4, 0xd4, 0x92, 0x02, 0x00, 0x00, +func init() { proto.RegisterFile("push/push.proto", fileDescriptor_push_380e4afdaa5f6119) } + +var fileDescriptor_push_380e4afdaa5f6119 = []byte{ + // 426 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x5c, 0x92, 0x5f, 0x6b, 0xdb, 0x30, + 0x14, 0xc5, 0x71, 0x13, 0x27, 0xed, 0x4d, 0xf3, 0x67, 0x62, 0x0c, 0x11, 0xd8, 0x30, 0x65, 0x8c, + 0xbc, 0xcc, 0x83, 0xee, 0x61, 0xa3, 0x7b, 0x19, 0xab, 0x57, 0x30, 0x2c, 0x6d, 0x51, 0xba, 0x97, + 0xbd, 0xb9, 0xe9, 0x4d, 0x6a, 0xea, 0x48, 0xaa, 0x25, 0x07, 0xf2, 0x11, 0xf7, 0xad, 0x86, 0xae, + 0xec, 0xc6, 0xcb, 0x8b, 0xd1, 0xf9, 0xdd, 0xa3, 0x6b, 0xdd, 0xc3, 0x85, 0xb1, 0xae, 0xcc, 0xe3, + 0x27, 0xf7, 0x89, 0x75, 0xa9, 0xac, 0x62, 0x5d, 0x77, 0x3e, 0xfb, 0xdb, 0x05, 0xb8, 0xad, 0xcc, + 0xe3, 0xdc, 0xac, 0x05, 0x3e, 0xb3, 0x37, 0xd0, 0x5b, 0xa0, 0x7c, 0x48, 0x13, 0x1e, 0x44, 0xc1, + 0xec, 0x44, 0xd4, 0xca, 0x71, 0x81, 0xcb, 0x6d, 0x9a, 0xf0, 0x23, 0xcf, 0xbd, 0x62, 0x1c, 0xfa, + 0x97, 0x4a, 0x5a, 0x94, 0x96, 0x77, 0xa8, 0xd0, 0x48, 0x57, 0x71, 0x9e, 0x05, 0x3e, 0xf3, 0x6e, + 0x14, 0xcc, 0x3a, 0xa2, 0x91, 0x6c, 0x0a, 0xc7, 0xae, 0xeb, 0x5d, 0xbe, 0x41, 0x1e, 0x52, 0xe9, + 0x45, 0xbb, 0x5b, 0x73, 0xb3, 0xbe, 0x2a, 0xd5, 0x86, 0xf7, 0xa2, 0x60, 0x16, 0x8a, 0x46, 0xb2, + 0x08, 0x06, 0x75, 0xeb, 0xbb, 0x9d, 0x46, 0xde, 0xa7, 0x6a, 0x1b, 0x39, 0xc7, 0x02, 0x8d, 0xc9, + 0x95, 0x24, 0xc7, 0xb1, 0x77, 0xb4, 0x90, 0x73, 0xdc, 0x68, 0x2c, 0x33, 0x9b, 0x2b, 0x99, 0x26, + 0xfc, 0x84, 0x5e, 0xdc, 0x46, 0xec, 0x35, 0x84, 0x73, 0xb3, 0x4e, 0x13, 0x0e, 0x54, 0xf3, 0x82, + 0xee, 0xad, 0x56, 0x45, 0x2e, 0x31, 0x95, 0x2b, 0xc5, 0x07, 0xf5, 0xbd, 0x3d, 0x62, 0x5f, 0xa0, + 0x7f, 0xa3, 0x5d, 0x0f, 0xc3, 0x4f, 0xa3, 0xce, 0x6c, 0x70, 0xfe, 0x36, 0xa6, 0xa8, 0xf7, 0xd1, + 0xc6, 0x75, 0xfd, 0xa7, 0xb4, 0xe5, 0x4e, 0x34, 0x6e, 0xf6, 0x0e, 0xe0, 0xb6, 0xc8, 0xec, 0x4a, + 0x95, 0x9b, 0x34, 0xe1, 0x43, 0x7a, 0x73, 0x8b, 0xb0, 0x0f, 0x30, 0x72, 0xe1, 0x60, 0x79, 0x9d, + 0x2f, 0x9f, 0xae, 0xb3, 0x0d, 0xf2, 0x11, 0xfd, 0xfd, 0x80, 0xb2, 0xf7, 0x30, 0xf4, 0xe4, 0x2a, + 0x5b, 0xe2, 0x6f, 0xf1, 0x8b, 0x8f, 0xc9, 0xf6, 0x3f, 0xa4, 0x10, 0x8b, 0x1c, 0xa5, 0xf5, 0x43, + 0x4e, 0xfc, 0x20, 0x2d, 0x34, 0xbd, 0x80, 0xd3, 0xf6, 0x43, 0xd9, 0x04, 0x3a, 0x4f, 0xb8, 0xab, + 0xb7, 0xc1, 0x1d, 0x5d, 0x44, 0xdb, 0xac, 0xa8, 0x90, 0x36, 0x21, 0x14, 0x5e, 0x5c, 0x1c, 0x7d, + 0x0d, 0xce, 0x3e, 0xc2, 0xe0, 0x65, 0x5e, 0xa3, 0xdd, 0x68, 0x02, 0x4d, 0x55, 0xd8, 0x4b, 0xf5, + 0x80, 0xd4, 0x21, 0x14, 0x2d, 0x72, 0xfe, 0x1d, 0x46, 0xb5, 0x7d, 0x81, 0xe5, 0x36, 0x5f, 0x22, + 0x8b, 0xa1, 0x5f, 0x13, 0x36, 0x39, 0xcc, 0x6f, 0xfa, 0xea, 0x80, 0x18, 0xfd, 0x63, 0xfc, 0x67, + 0x18, 0xd3, 0x4a, 0x7f, 0xd3, 0xf7, 0x8e, 0xdf, 0xf7, 0x68, 0xb5, 0x3f, 0xff, 0x0b, 0x00, 0x00, + 0xff, 0xff, 0xf0, 0x9a, 0xaa, 0x81, 0xed, 0x02, 0x00, 0x00, } diff --git a/pkg/proto/push/push.proto b/pkg/proto/push/push.proto index 60fddfe3b..ed8dd4337 100644 --- a/pkg/proto/push/push.proto +++ b/pkg/proto/push/push.proto @@ -14,7 +14,7 @@ message PushMsgReq { string OperationID = 9; string MsgID = 10; string OfflineInfo = 11; - string Options =12; + map Options =12; int32 PlatformID =13; string SenderNickName = 14; string SenderFaceURL = 15; From 0e99fb27b551423014bc01bd931cf4e143e09c12 Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Wed, 8 Dec 2021 18:09:34 +0800 Subject: [PATCH 176/814] rpc protocol update --- pkg/proto/chat/chat.pb.go | 293 +++++++++++++++++++------------------- 1 file changed, 150 insertions(+), 143 deletions(-) diff --git a/pkg/proto/chat/chat.pb.go b/pkg/proto/chat/chat.pb.go index b48d2cee1..06118c3d1 100644 --- a/pkg/proto/chat/chat.pb.go +++ b/pkg/proto/chat/chat.pb.go @@ -24,33 +24,33 @@ var _ = math.Inf const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package type WSToMsgSvrChatMsg struct { - SendID string `protobuf:"bytes,1,opt,name=SendID" json:"SendID,omitempty"` - RecvID string `protobuf:"bytes,2,opt,name=RecvID" json:"RecvID,omitempty"` - Content string `protobuf:"bytes,3,opt,name=Content" json:"Content,omitempty"` - SendTime int64 `protobuf:"varint,4,opt,name=SendTime" json:"SendTime,omitempty"` - MsgFrom int32 `protobuf:"varint,5,opt,name=MsgFrom" json:"MsgFrom,omitempty"` - SenderNickName string `protobuf:"bytes,6,opt,name=SenderNickName" json:"SenderNickName,omitempty"` - SenderFaceURL string `protobuf:"bytes,7,opt,name=SenderFaceURL" json:"SenderFaceURL,omitempty"` - ContentType int32 `protobuf:"varint,8,opt,name=ContentType" json:"ContentType,omitempty"` - SessionType int32 `protobuf:"varint,9,opt,name=SessionType" json:"SessionType,omitempty"` - OperationID string `protobuf:"bytes,10,opt,name=OperationID" json:"OperationID,omitempty"` - MsgID string `protobuf:"bytes,11,opt,name=MsgID" json:"MsgID,omitempty"` - Token string `protobuf:"bytes,12,opt,name=Token" json:"Token,omitempty"` - OfflineInfo string `protobuf:"bytes,13,opt,name=OfflineInfo" json:"OfflineInfo,omitempty"` - Options string `protobuf:"bytes,14,opt,name=Options" json:"Options,omitempty"` - PlatformID int32 `protobuf:"varint,15,opt,name=PlatformID" json:"PlatformID,omitempty"` - ForceList []string `protobuf:"bytes,16,rep,name=ForceList" json:"ForceList,omitempty"` - ClientMsgID string `protobuf:"bytes,17,opt,name=ClientMsgID" json:"ClientMsgID,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + SendID string `protobuf:"bytes,1,opt,name=SendID" json:"SendID,omitempty"` + RecvID string `protobuf:"bytes,2,opt,name=RecvID" json:"RecvID,omitempty"` + Content string `protobuf:"bytes,3,opt,name=Content" json:"Content,omitempty"` + SendTime int64 `protobuf:"varint,4,opt,name=SendTime" json:"SendTime,omitempty"` + MsgFrom int32 `protobuf:"varint,5,opt,name=MsgFrom" json:"MsgFrom,omitempty"` + SenderNickName string `protobuf:"bytes,6,opt,name=SenderNickName" json:"SenderNickName,omitempty"` + SenderFaceURL string `protobuf:"bytes,7,opt,name=SenderFaceURL" json:"SenderFaceURL,omitempty"` + ContentType int32 `protobuf:"varint,8,opt,name=ContentType" json:"ContentType,omitempty"` + SessionType int32 `protobuf:"varint,9,opt,name=SessionType" json:"SessionType,omitempty"` + OperationID string `protobuf:"bytes,10,opt,name=OperationID" json:"OperationID,omitempty"` + MsgID string `protobuf:"bytes,11,opt,name=MsgID" json:"MsgID,omitempty"` + Token string `protobuf:"bytes,12,opt,name=Token" json:"Token,omitempty"` + OfflineInfo string `protobuf:"bytes,13,opt,name=OfflineInfo" json:"OfflineInfo,omitempty"` + Options map[string]int32 `protobuf:"bytes,14,rep,name=Options" json:"Options,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` + PlatformID int32 `protobuf:"varint,15,opt,name=PlatformID" json:"PlatformID,omitempty"` + ForceList []string `protobuf:"bytes,16,rep,name=ForceList" json:"ForceList,omitempty"` + ClientMsgID string `protobuf:"bytes,17,opt,name=ClientMsgID" json:"ClientMsgID,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } func (m *WSToMsgSvrChatMsg) Reset() { *m = WSToMsgSvrChatMsg{} } func (m *WSToMsgSvrChatMsg) String() string { return proto.CompactTextString(m) } func (*WSToMsgSvrChatMsg) ProtoMessage() {} func (*WSToMsgSvrChatMsg) Descriptor() ([]byte, []int) { - return fileDescriptor_chat_feb94a5514034c46, []int{0} + return fileDescriptor_chat_3707ac912effe95d, []int{0} } func (m *WSToMsgSvrChatMsg) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_WSToMsgSvrChatMsg.Unmarshal(m, b) @@ -161,11 +161,11 @@ func (m *WSToMsgSvrChatMsg) GetOfflineInfo() string { return "" } -func (m *WSToMsgSvrChatMsg) GetOptions() string { +func (m *WSToMsgSvrChatMsg) GetOptions() map[string]int32 { if m != nil { return m.Options } - return "" + return nil } func (m *WSToMsgSvrChatMsg) GetPlatformID() int32 { @@ -190,32 +190,32 @@ func (m *WSToMsgSvrChatMsg) GetClientMsgID() string { } type MsgSvrToPushSvrChatMsg struct { - SendID string `protobuf:"bytes,1,opt,name=SendID" json:"SendID,omitempty"` - RecvID string `protobuf:"bytes,2,opt,name=RecvID" json:"RecvID,omitempty"` - Content string `protobuf:"bytes,3,opt,name=Content" json:"Content,omitempty"` - RecvSeq int64 `protobuf:"varint,4,opt,name=RecvSeq" json:"RecvSeq,omitempty"` - SendTime int64 `protobuf:"varint,5,opt,name=SendTime" json:"SendTime,omitempty"` - MsgFrom int32 `protobuf:"varint,6,opt,name=MsgFrom" json:"MsgFrom,omitempty"` - SenderNickName string `protobuf:"bytes,7,opt,name=SenderNickName" json:"SenderNickName,omitempty"` - SenderFaceURL string `protobuf:"bytes,8,opt,name=SenderFaceURL" json:"SenderFaceURL,omitempty"` - ContentType int32 `protobuf:"varint,9,opt,name=ContentType" json:"ContentType,omitempty"` - SessionType int32 `protobuf:"varint,10,opt,name=SessionType" json:"SessionType,omitempty"` - OperationID string `protobuf:"bytes,11,opt,name=OperationID" json:"OperationID,omitempty"` - MsgID string `protobuf:"bytes,12,opt,name=MsgID" json:"MsgID,omitempty"` - OfflineInfo string `protobuf:"bytes,13,opt,name=OfflineInfo" json:"OfflineInfo,omitempty"` - Options string `protobuf:"bytes,14,opt,name=Options" json:"Options,omitempty"` - PlatformID int32 `protobuf:"varint,15,opt,name=PlatformID" json:"PlatformID,omitempty"` - ClientMsgID string `protobuf:"bytes,16,opt,name=ClientMsgID" json:"ClientMsgID,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + SendID string `protobuf:"bytes,1,opt,name=SendID" json:"SendID,omitempty"` + RecvID string `protobuf:"bytes,2,opt,name=RecvID" json:"RecvID,omitempty"` + Content string `protobuf:"bytes,3,opt,name=Content" json:"Content,omitempty"` + RecvSeq int64 `protobuf:"varint,4,opt,name=RecvSeq" json:"RecvSeq,omitempty"` + SendTime int64 `protobuf:"varint,5,opt,name=SendTime" json:"SendTime,omitempty"` + MsgFrom int32 `protobuf:"varint,6,opt,name=MsgFrom" json:"MsgFrom,omitempty"` + SenderNickName string `protobuf:"bytes,7,opt,name=SenderNickName" json:"SenderNickName,omitempty"` + SenderFaceURL string `protobuf:"bytes,8,opt,name=SenderFaceURL" json:"SenderFaceURL,omitempty"` + ContentType int32 `protobuf:"varint,9,opt,name=ContentType" json:"ContentType,omitempty"` + SessionType int32 `protobuf:"varint,10,opt,name=SessionType" json:"SessionType,omitempty"` + OperationID string `protobuf:"bytes,11,opt,name=OperationID" json:"OperationID,omitempty"` + MsgID string `protobuf:"bytes,12,opt,name=MsgID" json:"MsgID,omitempty"` + OfflineInfo string `protobuf:"bytes,13,opt,name=OfflineInfo" json:"OfflineInfo,omitempty"` + Options map[string]int32 `protobuf:"bytes,14,rep,name=Options" json:"Options,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` + PlatformID int32 `protobuf:"varint,15,opt,name=PlatformID" json:"PlatformID,omitempty"` + ClientMsgID string `protobuf:"bytes,16,opt,name=ClientMsgID" json:"ClientMsgID,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } func (m *MsgSvrToPushSvrChatMsg) Reset() { *m = MsgSvrToPushSvrChatMsg{} } func (m *MsgSvrToPushSvrChatMsg) String() string { return proto.CompactTextString(m) } func (*MsgSvrToPushSvrChatMsg) ProtoMessage() {} func (*MsgSvrToPushSvrChatMsg) Descriptor() ([]byte, []int) { - return fileDescriptor_chat_feb94a5514034c46, []int{1} + return fileDescriptor_chat_3707ac912effe95d, []int{1} } func (m *MsgSvrToPushSvrChatMsg) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MsgSvrToPushSvrChatMsg.Unmarshal(m, b) @@ -326,11 +326,11 @@ func (m *MsgSvrToPushSvrChatMsg) GetOfflineInfo() string { return "" } -func (m *MsgSvrToPushSvrChatMsg) GetOptions() string { +func (m *MsgSvrToPushSvrChatMsg) GetOptions() map[string]int32 { if m != nil { return m.Options } - return "" + return nil } func (m *MsgSvrToPushSvrChatMsg) GetPlatformID() int32 { @@ -361,7 +361,7 @@ func (m *PullMessageReq) Reset() { *m = PullMessageReq{} } func (m *PullMessageReq) String() string { return proto.CompactTextString(m) } func (*PullMessageReq) ProtoMessage() {} func (*PullMessageReq) Descriptor() ([]byte, []int) { - return fileDescriptor_chat_feb94a5514034c46, []int{2} + return fileDescriptor_chat_3707ac912effe95d, []int{2} } func (m *PullMessageReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_PullMessageReq.Unmarshal(m, b) @@ -425,7 +425,7 @@ func (m *PullMessageResp) Reset() { *m = PullMessageResp{} } func (m *PullMessageResp) String() string { return proto.CompactTextString(m) } func (*PullMessageResp) ProtoMessage() {} func (*PullMessageResp) Descriptor() ([]byte, []int) { - return fileDescriptor_chat_feb94a5514034c46, []int{3} + return fileDescriptor_chat_3707ac912effe95d, []int{3} } func (m *PullMessageResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_PullMessageResp.Unmarshal(m, b) @@ -500,7 +500,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_chat_feb94a5514034c46, []int{4} + return fileDescriptor_chat_3707ac912effe95d, []int{4} } func (m *PullMessageBySeqListReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_PullMessageBySeqListReq.Unmarshal(m, b) @@ -553,7 +553,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_chat_feb94a5514034c46, []int{5} + return fileDescriptor_chat_3707ac912effe95d, []int{5} } func (m *GetMaxAndMinSeqReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetMaxAndMinSeqReq.Unmarshal(m, b) @@ -601,7 +601,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_chat_feb94a5514034c46, []int{6} + return fileDescriptor_chat_3707ac912effe95d, []int{6} } func (m *GetMaxAndMinSeqResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetMaxAndMinSeqResp.Unmarshal(m, b) @@ -663,7 +663,7 @@ func (m *GatherFormat) Reset() { *m = GatherFormat{} } func (m *GatherFormat) String() string { return proto.CompactTextString(m) } func (*GatherFormat) ProtoMessage() {} func (*GatherFormat) Descriptor() ([]byte, []int) { - return fileDescriptor_chat_feb94a5514034c46, []int{7} + return fileDescriptor_chat_3707ac912effe95d, []int{7} } func (m *GatherFormat) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GatherFormat.Unmarshal(m, b) @@ -731,7 +731,7 @@ func (m *MsgFormat) Reset() { *m = MsgFormat{} } func (m *MsgFormat) String() string { return proto.CompactTextString(m) } func (*MsgFormat) ProtoMessage() {} func (*MsgFormat) Descriptor() ([]byte, []int) { - return fileDescriptor_chat_feb94a5514034c46, []int{8} + return fileDescriptor_chat_3707ac912effe95d, []int{8} } func (m *MsgFormat) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MsgFormat.Unmarshal(m, b) @@ -836,34 +836,34 @@ func (m *MsgFormat) GetClientMsgID() string { } type UserSendMsgReq struct { - ReqIdentifier int32 `protobuf:"varint,1,opt,name=ReqIdentifier" json:"ReqIdentifier,omitempty"` - Token string `protobuf:"bytes,2,opt,name=Token" json:"Token,omitempty"` - SendID string `protobuf:"bytes,3,opt,name=SendID" json:"SendID,omitempty"` - OperationID string `protobuf:"bytes,4,opt,name=OperationID" json:"OperationID,omitempty"` - SenderNickName string `protobuf:"bytes,5,opt,name=SenderNickName" json:"SenderNickName,omitempty"` - SenderFaceURL string `protobuf:"bytes,6,opt,name=SenderFaceURL" json:"SenderFaceURL,omitempty"` - PlatformID int32 `protobuf:"varint,7,opt,name=PlatformID" json:"PlatformID,omitempty"` - SessionType int32 `protobuf:"varint,8,opt,name=SessionType" json:"SessionType,omitempty"` - MsgFrom int32 `protobuf:"varint,9,opt,name=MsgFrom" json:"MsgFrom,omitempty"` - ContentType int32 `protobuf:"varint,10,opt,name=ContentType" json:"ContentType,omitempty"` - RecvID string `protobuf:"bytes,11,opt,name=RecvID" json:"RecvID,omitempty"` - ForceList []string `protobuf:"bytes,12,rep,name=ForceList" json:"ForceList,omitempty"` - Content string `protobuf:"bytes,13,opt,name=Content" json:"Content,omitempty"` - Options string `protobuf:"bytes,14,opt,name=Options" json:"Options,omitempty"` - ClientMsgID string `protobuf:"bytes,15,opt,name=ClientMsgID" json:"ClientMsgID,omitempty"` - OffLineInfo string `protobuf:"bytes,16,opt,name=OffLineInfo" json:"OffLineInfo,omitempty"` - Ex string `protobuf:"bytes,17,opt,name=Ex" json:"Ex,omitempty"` - SendTime int64 `protobuf:"varint,18,opt,name=sendTime" json:"sendTime,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + ReqIdentifier int32 `protobuf:"varint,1,opt,name=ReqIdentifier" json:"ReqIdentifier,omitempty"` + Token string `protobuf:"bytes,2,opt,name=Token" json:"Token,omitempty"` + SendID string `protobuf:"bytes,3,opt,name=SendID" json:"SendID,omitempty"` + OperationID string `protobuf:"bytes,4,opt,name=OperationID" json:"OperationID,omitempty"` + SenderNickName string `protobuf:"bytes,5,opt,name=SenderNickName" json:"SenderNickName,omitempty"` + SenderFaceURL string `protobuf:"bytes,6,opt,name=SenderFaceURL" json:"SenderFaceURL,omitempty"` + PlatformID int32 `protobuf:"varint,7,opt,name=PlatformID" json:"PlatformID,omitempty"` + SessionType int32 `protobuf:"varint,8,opt,name=SessionType" json:"SessionType,omitempty"` + MsgFrom int32 `protobuf:"varint,9,opt,name=MsgFrom" json:"MsgFrom,omitempty"` + ContentType int32 `protobuf:"varint,10,opt,name=ContentType" json:"ContentType,omitempty"` + RecvID string `protobuf:"bytes,11,opt,name=RecvID" json:"RecvID,omitempty"` + ForceList []string `protobuf:"bytes,12,rep,name=ForceList" json:"ForceList,omitempty"` + Content string `protobuf:"bytes,13,opt,name=Content" json:"Content,omitempty"` + Options map[string]int32 `protobuf:"bytes,14,rep,name=Options" json:"Options,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` + ClientMsgID string `protobuf:"bytes,15,opt,name=ClientMsgID" json:"ClientMsgID,omitempty"` + OffLineInfo string `protobuf:"bytes,16,opt,name=OffLineInfo" json:"OffLineInfo,omitempty"` + Ex string `protobuf:"bytes,17,opt,name=Ex" json:"Ex,omitempty"` + SendTime int64 `protobuf:"varint,18,opt,name=sendTime" json:"sendTime,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } func (m *UserSendMsgReq) Reset() { *m = UserSendMsgReq{} } func (m *UserSendMsgReq) String() string { return proto.CompactTextString(m) } func (*UserSendMsgReq) ProtoMessage() {} func (*UserSendMsgReq) Descriptor() ([]byte, []int) { - return fileDescriptor_chat_feb94a5514034c46, []int{9} + return fileDescriptor_chat_3707ac912effe95d, []int{9} } func (m *UserSendMsgReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_UserSendMsgReq.Unmarshal(m, b) @@ -974,11 +974,11 @@ func (m *UserSendMsgReq) GetContent() string { return "" } -func (m *UserSendMsgReq) GetOptions() string { +func (m *UserSendMsgReq) GetOptions() map[string]int32 { if m != nil { return m.Options } - return "" + return nil } func (m *UserSendMsgReq) GetClientMsgID() string { @@ -1025,7 +1025,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_chat_feb94a5514034c46, []int{10} + return fileDescriptor_chat_3707ac912effe95d, []int{10} } func (m *UserSendMsgResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_UserSendMsgResp.Unmarshal(m, b) @@ -1089,7 +1089,9 @@ func (m *UserSendMsgResp) GetSendTime() int64 { func init() { proto.RegisterType((*WSToMsgSvrChatMsg)(nil), "pbChat.WSToMsgSvrChatMsg") + proto.RegisterMapType((map[string]int32)(nil), "pbChat.WSToMsgSvrChatMsg.OptionsEntry") proto.RegisterType((*MsgSvrToPushSvrChatMsg)(nil), "pbChat.MsgSvrToPushSvrChatMsg") + proto.RegisterMapType((map[string]int32)(nil), "pbChat.MsgSvrToPushSvrChatMsg.OptionsEntry") proto.RegisterType((*PullMessageReq)(nil), "pbChat.PullMessageReq") proto.RegisterType((*PullMessageResp)(nil), "pbChat.PullMessageResp") proto.RegisterType((*PullMessageBySeqListReq)(nil), "pbChat.PullMessageBySeqListReq") @@ -1098,6 +1100,7 @@ func init() { proto.RegisterType((*GatherFormat)(nil), "pbChat.GatherFormat") proto.RegisterType((*MsgFormat)(nil), "pbChat.MsgFormat") proto.RegisterType((*UserSendMsgReq)(nil), "pbChat.UserSendMsgReq") + proto.RegisterMapType((map[string]int32)(nil), "pbChat.UserSendMsgReq.OptionsEntry") proto.RegisterType((*UserSendMsgResp)(nil), "pbChat.UserSendMsgResp") } @@ -1272,70 +1275,74 @@ var _Chat_serviceDesc = grpc.ServiceDesc{ Metadata: "chat/chat.proto", } -func init() { proto.RegisterFile("chat/chat.proto", fileDescriptor_chat_feb94a5514034c46) } - -var fileDescriptor_chat_feb94a5514034c46 = []byte{ - // 981 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0x57, 0xdd, 0x6a, 0xe3, 0x46, - 0x14, 0xc6, 0x92, 0x2d, 0xdb, 0xc7, 0xbf, 0x99, 0x86, 0xec, 0x90, 0x96, 0xd6, 0x88, 0x6d, 0x31, - 0xbd, 0x48, 0x61, 0x7b, 0x53, 0x5a, 0x58, 0x68, 0x62, 0x27, 0xa8, 0x44, 0xd9, 0x20, 0x7b, 0x29, - 0xf4, 0x4e, 0x6b, 0x8f, 0x15, 0xb1, 0xb6, 0x24, 0xcf, 0x28, 0x69, 0xf6, 0xa6, 0xaf, 0xd0, 0x97, - 0xe8, 0x65, 0x5f, 0xa4, 0x8f, 0xd2, 0x57, 0x28, 0x14, 0xca, 0xcc, 0x48, 0xd6, 0xe8, 0xc7, 0x49, - 0xd8, 0xb2, 0x7b, 0x13, 0x38, 0x9f, 0xce, 0xfc, 0x9c, 0xf3, 0x7d, 0xf3, 0x1d, 0x07, 0x06, 0x8b, - 0x1b, 0x37, 0xfe, 0x86, 0xff, 0x39, 0x89, 0x68, 0x18, 0x87, 0xc8, 0x88, 0xde, 0x9c, 0xdd, 0xb8, - 0xb1, 0xf9, 0x7b, 0x1d, 0x0e, 0x7e, 0x9e, 0xcd, 0x43, 0x9b, 0x79, 0xb3, 0x3b, 0xca, 0x21, 0x9b, - 0x79, 0xe8, 0x08, 0x8c, 0x19, 0x09, 0x96, 0xd6, 0x04, 0xd7, 0x46, 0xb5, 0x71, 0xdb, 0x49, 0x22, - 0x8e, 0x3b, 0x64, 0x71, 0x67, 0x4d, 0xb0, 0x26, 0x71, 0x19, 0x21, 0x0c, 0xcd, 0xb3, 0x30, 0x88, - 0x49, 0x10, 0x63, 0x5d, 0x7c, 0x48, 0x43, 0x74, 0x0c, 0x2d, 0xbe, 0x76, 0xee, 0x6f, 0x08, 0xae, - 0x8f, 0x6a, 0x63, 0xdd, 0xd9, 0xc5, 0x7c, 0x95, 0xcd, 0xbc, 0x73, 0x1a, 0x6e, 0x70, 0x63, 0x54, - 0x1b, 0x37, 0x9c, 0x34, 0x44, 0x5f, 0x41, 0x9f, 0x67, 0x11, 0x7a, 0xe5, 0x2f, 0xde, 0x5e, 0xb9, - 0x1b, 0x82, 0x0d, 0xb1, 0x6d, 0x01, 0x45, 0xcf, 0xa1, 0x27, 0x91, 0x73, 0x77, 0x41, 0x5e, 0x3b, - 0x97, 0xb8, 0x29, 0xd2, 0xf2, 0x20, 0x1a, 0x41, 0x27, 0xb9, 0xce, 0xfc, 0x5d, 0x44, 0x70, 0x4b, - 0x9c, 0xa5, 0x42, 0x3c, 0x63, 0x46, 0x18, 0xf3, 0xc3, 0x40, 0x64, 0xb4, 0x65, 0x86, 0x02, 0xf1, - 0x8c, 0x57, 0x11, 0xa1, 0x6e, 0xec, 0x87, 0x81, 0x35, 0xc1, 0x20, 0xce, 0x51, 0x21, 0x74, 0x08, - 0x0d, 0x9b, 0x79, 0xd6, 0x04, 0x77, 0xc4, 0x37, 0x19, 0x70, 0x74, 0x1e, 0xbe, 0x25, 0x01, 0xee, - 0x4a, 0x54, 0x04, 0x62, 0xb7, 0xd5, 0x6a, 0xed, 0x07, 0xc4, 0x0a, 0x56, 0x21, 0xee, 0x25, 0xbb, - 0x65, 0x10, 0xef, 0xcd, 0xab, 0x88, 0xef, 0xcc, 0x70, 0x5f, 0x76, 0x34, 0x09, 0xd1, 0xe7, 0x00, - 0xd7, 0x6b, 0x37, 0x5e, 0x85, 0x74, 0x63, 0x4d, 0xf0, 0x40, 0x5c, 0x55, 0x41, 0xd0, 0x67, 0xd0, - 0x3e, 0x0f, 0xe9, 0x82, 0x5c, 0xfa, 0x2c, 0xc6, 0xc3, 0x91, 0x3e, 0x6e, 0x3b, 0x19, 0x20, 0x7a, - 0xb1, 0xf6, 0x49, 0x10, 0xcb, 0xbb, 0x1e, 0xc8, 0x93, 0x15, 0xc8, 0xfc, 0x47, 0x87, 0x23, 0xa9, - 0x86, 0x79, 0x78, 0x7d, 0xcb, 0x6e, 0x3e, 0x88, 0x2c, 0x30, 0x34, 0x79, 0xce, 0x8c, 0x6c, 0x13, - 0x55, 0xa4, 0x61, 0x4e, 0x30, 0x8d, 0xfd, 0x82, 0x31, 0x1e, 0x13, 0x4c, 0xf3, 0x69, 0x82, 0x69, - 0x3d, 0x41, 0x30, 0xed, 0x47, 0x05, 0x03, 0x8f, 0x0a, 0xa6, 0xf3, 0x80, 0x60, 0xba, 0xaa, 0x60, - 0x3e, 0xa4, 0x34, 0x0a, 0xe4, 0x0f, 0xcb, 0xe4, 0xff, 0x06, 0xfd, 0xeb, 0xdb, 0xf5, 0xda, 0x26, - 0x8c, 0xb9, 0x1e, 0x71, 0xc8, 0x96, 0x73, 0xfb, 0x9a, 0x11, 0x9a, 0x71, 0x2e, 0x23, 0xc9, 0xd3, - 0xf6, 0x94, 0x78, 0x7e, 0x20, 0x58, 0x17, 0x3c, 0xc9, 0x58, 0xea, 0x64, 0x3b, 0x0d, 0x96, 0x82, - 0x76, 0xdd, 0x49, 0xa2, 0x62, 0x4f, 0xea, 0xa5, 0x9e, 0x98, 0x7f, 0xd7, 0x60, 0x90, 0xbb, 0x00, - 0x8b, 0x78, 0xbd, 0x53, 0x4a, 0xcf, 0xc2, 0x25, 0x11, 0x57, 0x68, 0x38, 0x69, 0xc8, 0xcf, 0x99, - 0x52, 0x6a, 0x33, 0x2f, 0xd5, 0x9d, 0x8c, 0x38, 0x6e, 0xbb, 0xf7, 0x5c, 0x5c, 0xc9, 0xf9, 0x32, - 0x12, 0xb8, 0x1f, 0x64, 0xa2, 0x4b, 0x22, 0xf4, 0x3d, 0xf4, 0x66, 0x7e, 0xe0, 0xad, 0x09, 0xaf, - 0x8d, 0x6f, 0xd7, 0x18, 0xe9, 0xe3, 0xce, 0x8b, 0xc3, 0x13, 0x69, 0x92, 0x27, 0x17, 0x6e, 0x7c, - 0x43, 0xe8, 0x79, 0x48, 0x37, 0x6e, 0xec, 0xe4, 0x53, 0xd1, 0x77, 0xd0, 0xbd, 0xa0, 0xe1, 0x6d, - 0x94, 0x2e, 0x35, 0x1e, 0x58, 0x9a, 0xcb, 0x34, 0x37, 0xf0, 0x4c, 0x29, 0xf5, 0xf4, 0xdd, 0x8c, - 0x6c, 0xf9, 0x13, 0x7d, 0xa8, 0xe9, 0x85, 0x06, 0x6a, 0x65, 0x51, 0x61, 0x68, 0x32, 0xb9, 0x0f, - 0xd6, 0x47, 0x3a, 0x7f, 0x58, 0x49, 0x68, 0x5e, 0x01, 0xba, 0x20, 0xb1, 0xed, 0xde, 0xff, 0x18, - 0x2c, 0x65, 0xdd, 0xff, 0xeb, 0x24, 0xf3, 0x57, 0xf8, 0xa4, 0xb4, 0xdf, 0xc7, 0x60, 0xcb, 0x9c, - 0x42, 0x57, 0xed, 0x2a, 0xea, 0x83, 0xb6, 0xbb, 0xbe, 0x66, 0x4d, 0xd0, 0x97, 0x50, 0x17, 0xf5, - 0x6b, 0x82, 0x89, 0x83, 0x94, 0x09, 0x6e, 0x15, 0x92, 0x06, 0xf1, 0xd9, 0xfc, 0x57, 0x83, 0xf6, - 0x0e, 0x7b, 0x1f, 0x6b, 0x4b, 0xad, 0x48, 0xcf, 0x5b, 0x51, 0xc1, 0x3c, 0xea, 0x7b, 0xcc, 0x83, - 0xde, 0x09, 0x15, 0x58, 0x13, 0xe1, 0x72, 0x6d, 0x47, 0x85, 0x54, 0xe3, 0x34, 0xf2, 0xc6, 0x39, - 0x04, 0x9d, 0x77, 0xa4, 0x29, 0x3a, 0xa2, 0x17, 0x0d, 0xb3, 0x55, 0x30, 0xcc, 0xaf, 0x61, 0x28, - 0x9d, 0x4d, 0xb1, 0x05, 0xe9, 0x66, 0x25, 0xbc, 0xc2, 0x42, 0xe1, 0x69, 0x16, 0xda, 0xd9, 0x67, - 0xa1, 0x8a, 0xd5, 0x74, 0xcb, 0x56, 0xf3, 0x67, 0x1d, 0xfa, 0x5c, 0x6c, 0x7c, 0x9d, 0xcd, 0x3c, - 0x2e, 0xc6, 0xe7, 0xd0, 0x73, 0xc8, 0xd6, 0x5a, 0x92, 0x20, 0xf6, 0x57, 0x3e, 0xa1, 0x89, 0x82, - 0xf2, 0x60, 0x36, 0x52, 0x35, 0x75, 0xa4, 0x66, 0x04, 0xea, 0x39, 0x02, 0x1f, 0xf5, 0x9c, 0x8a, - 0xc2, 0x1b, 0x4f, 0x2b, 0xdc, 0xa8, 0x2a, 0x3c, 0xef, 0xc1, 0xcd, 0x2a, 0x0f, 0x56, 0x27, 0x47, - 0xab, 0x3c, 0x39, 0x14, 0x69, 0xb5, 0x1f, 0x94, 0x16, 0x94, 0xa5, 0x95, 0xc9, 0xb5, 0x93, 0x93, - 0x6b, 0xee, 0x47, 0x41, 0xb7, 0xf8, 0xa3, 0x40, 0x91, 0x5b, 0xaf, 0x34, 0xa7, 0xf7, 0xcc, 0x9a, - 0x02, 0xc1, 0x83, 0x12, 0xc1, 0xc9, 0x24, 0xbb, 0x4c, 0x27, 0xd9, 0x70, 0x37, 0xc9, 0x52, 0x88, - 0xbf, 0xdc, 0xe9, 0x7d, 0xf2, 0x1b, 0x44, 0x9b, 0xde, 0x73, 0x29, 0xb3, 0x54, 0xca, 0x48, 0x4a, - 0x39, 0x8d, 0xcd, 0xbf, 0x6a, 0x30, 0xc8, 0xc9, 0xe5, 0xbd, 0xbc, 0xa6, 0xa4, 0x30, 0xbd, 0x4a, - 0x61, 0x85, 0x07, 0x5a, 0x2f, 0x3f, 0xd0, 0x42, 0xf5, 0x8d, 0x72, 0xf5, 0x6a, 0x2d, 0x46, 0xbe, - 0x96, 0x17, 0x7f, 0x68, 0x50, 0xe7, 0x9e, 0x84, 0x7e, 0x82, 0x41, 0xc1, 0x43, 0xd1, 0xf1, 0x6e, - 0x72, 0x94, 0xcc, 0xfa, 0xf8, 0xd3, 0xbd, 0xdf, 0x58, 0x84, 0x5e, 0x42, 0x47, 0x19, 0x27, 0xe8, - 0x28, 0xcd, 0xcd, 0xcf, 0xf3, 0xe3, 0x67, 0x95, 0x38, 0x8b, 0xd0, 0x35, 0x1c, 0x56, 0x8d, 0x23, - 0xf4, 0x45, 0xc5, 0x02, 0x75, 0x58, 0xed, 0xdf, 0xf1, 0x25, 0x74, 0x14, 0xc6, 0xb2, 0x1b, 0xe5, - 0x5f, 0x7d, 0xb6, 0xbe, 0x40, 0xef, 0xe9, 0xe0, 0x97, 0xde, 0x89, 0xf8, 0x9f, 0xe5, 0x07, 0x99, - 0xf0, 0xc6, 0x10, 0xff, 0xbb, 0x7c, 0xfb, 0x5f, 0x00, 0x00, 0x00, 0xff, 0xff, 0xc2, 0x44, 0x4e, - 0x52, 0xce, 0x0c, 0x00, 0x00, +func init() { proto.RegisterFile("chat/chat.proto", fileDescriptor_chat_3707ac912effe95d) } + +var fileDescriptor_chat_3707ac912effe95d = []byte{ + // 1049 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0x97, 0xdd, 0x6e, 0xe3, 0x44, + 0x14, 0xc7, 0x15, 0x3b, 0x4e, 0x9a, 0x93, 0xcf, 0x0e, 0x55, 0x77, 0x14, 0x10, 0x44, 0x61, 0x59, + 0x45, 0x20, 0x05, 0x69, 0xb9, 0x59, 0x15, 0xb1, 0x82, 0x36, 0x69, 0x15, 0xd4, 0x74, 0x2b, 0x27, + 0x2b, 0x24, 0xee, 0xbc, 0xc9, 0x24, 0xb5, 0x9a, 0xd8, 0xc9, 0x8c, 0x5b, 0xda, 0x1b, 0xde, 0x80, + 0xb7, 0xe0, 0x65, 0x78, 0x0e, 0xae, 0xb8, 0xe6, 0x1a, 0x09, 0xcd, 0x8c, 0x1d, 0xcf, 0xd8, 0x4e, + 0x53, 0x75, 0x61, 0x6f, 0xaa, 0x9e, 0xe3, 0x33, 0xe3, 0x39, 0xe7, 0xfc, 0xfc, 0x3f, 0x13, 0xa8, + 0x4f, 0xae, 0x9c, 0xe0, 0x6b, 0xfe, 0xa7, 0xbb, 0xa2, 0x7e, 0xe0, 0xa3, 0xc2, 0xea, 0xdd, 0xc9, + 0x95, 0x13, 0xb4, 0xff, 0xce, 0xc3, 0xfe, 0x4f, 0xa3, 0xb1, 0x3f, 0x64, 0xf3, 0xd1, 0x2d, 0xe5, + 0xae, 0x21, 0x9b, 0xa3, 0x43, 0x28, 0x8c, 0x88, 0x37, 0x1d, 0xf4, 0x70, 0xae, 0x95, 0xeb, 0x94, + 0xec, 0xd0, 0xe2, 0x7e, 0x9b, 0x4c, 0x6e, 0x07, 0x3d, 0x6c, 0x48, 0xbf, 0xb4, 0x10, 0x86, 0xe2, + 0x89, 0xef, 0x05, 0xc4, 0x0b, 0xb0, 0x29, 0x1e, 0x44, 0x26, 0x6a, 0xc2, 0x1e, 0x5f, 0x3b, 0x76, + 0x97, 0x04, 0xe7, 0x5b, 0xb9, 0x8e, 0x69, 0x6f, 0x6c, 0xbe, 0x6a, 0xc8, 0xe6, 0xa7, 0xd4, 0x5f, + 0x62, 0xab, 0x95, 0xeb, 0x58, 0x76, 0x64, 0xa2, 0x17, 0x50, 0xe3, 0x51, 0x84, 0x5e, 0xb8, 0x93, + 0xeb, 0x0b, 0x67, 0x49, 0x70, 0x41, 0x6c, 0x9b, 0xf0, 0xa2, 0xe7, 0x50, 0x95, 0x9e, 0x53, 0x67, + 0x42, 0xde, 0xda, 0xe7, 0xb8, 0x28, 0xc2, 0x74, 0x27, 0x6a, 0x41, 0x39, 0x3c, 0xce, 0xf8, 0x7e, + 0x45, 0xf0, 0x9e, 0x78, 0x97, 0xea, 0xe2, 0x11, 0x23, 0xc2, 0x98, 0xeb, 0x7b, 0x22, 0xa2, 0x24, + 0x23, 0x14, 0x17, 0x8f, 0x78, 0xb3, 0x22, 0xd4, 0x09, 0x5c, 0xdf, 0x1b, 0xf4, 0x30, 0x88, 0xf7, + 0xa8, 0x2e, 0x74, 0x00, 0xd6, 0x90, 0xcd, 0x07, 0x3d, 0x5c, 0x16, 0xcf, 0xa4, 0xc1, 0xbd, 0x63, + 0xff, 0x9a, 0x78, 0xb8, 0x22, 0xbd, 0xc2, 0x10, 0xbb, 0xcd, 0x66, 0x0b, 0xd7, 0x23, 0x03, 0x6f, + 0xe6, 0xe3, 0x6a, 0xb8, 0x5b, 0xec, 0x42, 0xdf, 0x43, 0xf1, 0xcd, 0x8a, 0xef, 0xcc, 0x70, 0xad, + 0x65, 0x76, 0xca, 0x2f, 0x5f, 0x74, 0x65, 0xc7, 0xba, 0xa9, 0x6e, 0x75, 0xc3, 0xc0, 0xbe, 0x17, + 0xd0, 0x7b, 0x3b, 0x5a, 0x86, 0x3e, 0x05, 0xb8, 0x5c, 0x38, 0xc1, 0xcc, 0xa7, 0xcb, 0x41, 0x0f, + 0xd7, 0x45, 0x4a, 0x8a, 0x07, 0x7d, 0x02, 0xa5, 0x53, 0x9f, 0x4e, 0xc8, 0xb9, 0xcb, 0x02, 0xdc, + 0x68, 0x99, 0x9d, 0x92, 0x1d, 0x3b, 0x44, 0xcd, 0x16, 0x2e, 0xf1, 0x02, 0x99, 0xd3, 0xbe, 0x3c, + 0xa1, 0xe2, 0x6a, 0x1e, 0x41, 0x45, 0x7d, 0x31, 0x6a, 0x80, 0x79, 0x4d, 0xee, 0x43, 0x60, 0xf8, + 0xbf, 0x3c, 0xf7, 0x5b, 0x67, 0x71, 0x43, 0x04, 0x2c, 0x96, 0x2d, 0x8d, 0x23, 0xe3, 0x55, 0xae, + 0xfd, 0x67, 0x1e, 0x0e, 0x65, 0x0e, 0x63, 0xff, 0xf2, 0x86, 0x5d, 0xfd, 0x2f, 0xe8, 0x61, 0x28, + 0xf2, 0x98, 0x11, 0x59, 0x87, 0xe4, 0x45, 0xa6, 0x06, 0xa5, 0xb5, 0x1d, 0xca, 0xc2, 0x2e, 0x28, + 0x8b, 0x8f, 0x83, 0x72, 0xef, 0x11, 0x50, 0x96, 0x76, 0x42, 0x09, 0x3b, 0xa1, 0x2c, 0x3f, 0x00, + 0x65, 0x45, 0x85, 0x72, 0x37, 0x7e, 0xfd, 0x24, 0x7e, 0x5f, 0x45, 0xf8, 0x65, 0xb7, 0xed, 0x89, + 0x0c, 0x26, 0x28, 0x6b, 0xfc, 0xb7, 0x94, 0xfd, 0x0a, 0xb5, 0xcb, 0x9b, 0xc5, 0x62, 0x48, 0x18, + 0x73, 0xe6, 0xc4, 0x26, 0x6b, 0x0e, 0xd1, 0x5b, 0x46, 0x68, 0x0c, 0x97, 0xb4, 0x24, 0x10, 0xeb, + 0x63, 0x32, 0x77, 0x3d, 0xb1, 0x8d, 0x00, 0x42, 0xda, 0x12, 0xc8, 0x75, 0xdf, 0x9b, 0x0a, 0xbe, + 0x4c, 0x3b, 0xb4, 0x92, 0xc5, 0xcf, 0xa7, 0x8a, 0xdf, 0xfe, 0x2b, 0x07, 0x75, 0xed, 0x00, 0x6c, + 0xc5, 0xf1, 0xea, 0x53, 0x7a, 0xe2, 0x4f, 0x89, 0x38, 0x82, 0x65, 0x47, 0x26, 0x7f, 0x4f, 0x9f, + 0xd2, 0x21, 0x9b, 0x47, 0x80, 0x4b, 0x8b, 0xfb, 0x87, 0xce, 0x1d, 0xa7, 0x38, 0x7c, 0xbf, 0xb4, + 0x84, 0xdf, 0xf5, 0x62, 0xba, 0x43, 0x0b, 0x1d, 0x41, 0x75, 0xe4, 0x7a, 0xf3, 0x05, 0xe1, 0xb9, + 0xf1, 0xed, 0x2c, 0xd1, 0xc0, 0x83, 0xa8, 0x81, 0x67, 0x4e, 0x70, 0x45, 0xe8, 0xa9, 0x4f, 0x97, + 0x4e, 0x60, 0xeb, 0xa1, 0xe8, 0x15, 0x54, 0xce, 0xa8, 0x7f, 0xb3, 0x8a, 0x96, 0x16, 0x1e, 0x58, + 0xaa, 0x45, 0xb6, 0x97, 0xf0, 0x4c, 0x49, 0xf5, 0xf8, 0x7e, 0x44, 0xd6, 0x5c, 0x47, 0x1e, 0x2a, + 0x7a, 0xa2, 0x80, 0x46, 0x9a, 0x5e, 0x0c, 0x45, 0x26, 0xf7, 0xc1, 0x66, 0xcb, 0xe4, 0x5f, 0x70, + 0x68, 0xb6, 0x2f, 0x00, 0x9d, 0x91, 0x60, 0xe8, 0xdc, 0xfd, 0xe0, 0x4d, 0x65, 0xde, 0xef, 0xf5, + 0xa6, 0xf6, 0x2f, 0xf0, 0x51, 0x6a, 0xbf, 0x0f, 0xd1, 0xad, 0x76, 0x1f, 0x2a, 0x6a, 0x55, 0x51, + 0x0d, 0x8c, 0xcd, 0xf1, 0x8d, 0x41, 0x0f, 0x7d, 0x01, 0x79, 0x91, 0xbf, 0x21, 0x3a, 0xb1, 0xaf, + 0x7c, 0x85, 0x61, 0x1b, 0xc4, 0xe3, 0xf6, 0x3f, 0x06, 0x94, 0x36, 0xbe, 0xa7, 0x68, 0x68, 0xa4, + 0x79, 0xa6, 0xae, 0x79, 0x09, 0x95, 0xca, 0x6f, 0x51, 0x29, 0x7a, 0x2b, 0x28, 0x18, 0xf4, 0x84, + 0x9c, 0x96, 0x6c, 0xd5, 0xa5, 0x2a, 0x74, 0x41, 0x57, 0xe8, 0x06, 0x98, 0xbc, 0x22, 0x45, 0x51, + 0x11, 0x33, 0xa9, 0xcc, 0x7b, 0x09, 0x65, 0xfe, 0x12, 0x1a, 0x52, 0x42, 0x15, 0x49, 0x91, 0xb2, + 0x99, 0xf2, 0x67, 0x68, 0x35, 0x3c, 0x4e, 0xab, 0xcb, 0xdb, 0xb4, 0x5a, 0x91, 0xa9, 0x4a, 0x4a, + 0xa6, 0xda, 0xbf, 0x59, 0x50, 0xe3, 0xb0, 0xf1, 0x75, 0x43, 0x36, 0xe7, 0x30, 0x3e, 0x87, 0xaa, + 0x4d, 0xd6, 0x83, 0x29, 0xf1, 0x02, 0x77, 0xe6, 0x12, 0x1a, 0x12, 0xa4, 0x3b, 0xe3, 0xfb, 0x81, + 0xa1, 0xde, 0x0f, 0xe2, 0x06, 0x9a, 0x5a, 0x03, 0x77, 0x6a, 0x4e, 0x46, 0xe2, 0xd6, 0xe3, 0x12, + 0x2f, 0x64, 0x25, 0xae, 0xeb, 0x77, 0x31, 0x4b, 0xbf, 0xd5, 0x11, 0xb5, 0x97, 0x1e, 0x51, 0x0a, + 0x5a, 0xa5, 0x07, 0xd1, 0x82, 0x34, 0x5a, 0x31, 0xae, 0x65, 0x0d, 0x57, 0xed, 0xe6, 0x52, 0x49, + 0xde, 0x5c, 0x14, 0xdc, 0xaa, 0x3a, 0x6e, 0xdf, 0x25, 0x87, 0xda, 0xe7, 0xd1, 0xe7, 0xa4, 0xb7, + 0x6e, 0xcb, 0x30, 0x4b, 0x50, 0x50, 0x4f, 0x51, 0x10, 0xce, 0xd5, 0xf3, 0x68, 0xae, 0x36, 0x36, + 0x73, 0x35, 0x72, 0xf1, 0xcf, 0xbb, 0x7f, 0x17, 0xde, 0xa6, 0x8c, 0xfe, 0x1d, 0xe7, 0x9d, 0x45, + 0xbc, 0x23, 0xc9, 0x7b, 0x64, 0xbf, 0xd7, 0xe8, 0xfb, 0x23, 0x07, 0x75, 0x2d, 0xa9, 0x27, 0x89, + 0x59, 0x0a, 0x61, 0x33, 0x0b, 0xe1, 0x84, 0x02, 0xe4, 0xd3, 0x0a, 0x90, 0xa8, 0x9c, 0x95, 0xae, + 0x9c, 0x5a, 0x87, 0x82, 0x5e, 0x87, 0x97, 0xbf, 0x1b, 0x90, 0xe7, 0x5d, 0x42, 0x3f, 0x42, 0x3d, + 0x21, 0xd2, 0xa8, 0xb9, 0x19, 0x4d, 0xa9, 0x69, 0xd0, 0xfc, 0x78, 0xeb, 0x33, 0xb6, 0x42, 0xaf, + 0xa1, 0xac, 0xcc, 0x2b, 0x74, 0x18, 0xc5, 0xea, 0x17, 0x86, 0xe6, 0xb3, 0x4c, 0x3f, 0x5b, 0xa1, + 0x4b, 0x38, 0xc8, 0x9a, 0x77, 0xe8, 0xb3, 0x8c, 0x05, 0xea, 0x34, 0xdc, 0xbe, 0xe3, 0x6b, 0x28, + 0x2b, 0x1d, 0x8b, 0x4f, 0xa4, 0xb3, 0x19, 0xaf, 0x4f, 0xb4, 0xf7, 0xb8, 0xfe, 0x73, 0xb5, 0x2b, + 0x7e, 0xe1, 0x7d, 0x2b, 0x03, 0xde, 0x15, 0xc4, 0x2f, 0xbd, 0x6f, 0xfe, 0x0d, 0x00, 0x00, 0xff, + 0xff, 0xa2, 0x9b, 0xc2, 0xf2, 0xfc, 0x0d, 0x00, 0x00, } From c6ade8d9bcaed4e1f86f13ffaeac9fcebedfa590 Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Wed, 8 Dec 2021 18:15:14 +0800 Subject: [PATCH 177/814] rpc protocol update --- internal/api/chat/send_msg.go | 4 ++-- internal/api/manage/management_chat.go | 2 +- internal/push/logic/push_to_client.go | 6 ++---- internal/rpc/chat/send_msg.go | 8 ++------ pkg/utils/map.go | 6 +++--- 5 files changed, 10 insertions(+), 16 deletions(-) diff --git a/internal/api/chat/send_msg.go b/internal/api/chat/send_msg.go index 4d53bf769..2c4eee371 100644 --- a/internal/api/chat/send_msg.go +++ b/internal/api/chat/send_msg.go @@ -27,7 +27,7 @@ type paramsUserSendMsg struct { RecvID string `json:"recvID" binding:"required"` ForceList []string `json:"forceList"` Content string `json:"content" binding:"required"` - Options map[string]interface{} `json:"options" ` + Options map[string]int32 `json:"options" ` ClientMsgID string `json:"clientMsgID" binding:"required"` OffLineInfo map[string]interface{} `json:"offlineInfo" ` Ex map[string]interface{} `json:"ext"` @@ -49,7 +49,7 @@ func newUserSendMsgReq(token string, params *paramsUserSendMsg) *pbChat.UserSend RecvID: params.Data.RecvID, ForceList: params.Data.ForceList, Content: params.Data.Content, - Options: utils.MapToJsonString(params.Data.Options), + Options: params.Data.Options, ClientMsgID: params.Data.ClientMsgID, OffLineInfo: utils.MapToJsonString(params.Data.OffLineInfo), Ex: utils.MapToJsonString(params.Data.Ex), diff --git a/internal/api/manage/management_chat.go b/internal/api/manage/management_chat.go index ba056eba1..4cb8f6364 100644 --- a/internal/api/manage/management_chat.go +++ b/internal/api/manage/management_chat.go @@ -72,7 +72,7 @@ func newUserSendMsgReq(params *paramsManagementSendMsg) *pbChat.UserSendMsgReq { ForceList: params.ForceList, Content: newContent, ClientMsgID: utils.GetMsgID(params.SendID), - Options: utils.MapIntToJsonString(options), + Options: options, } return &pbData } diff --git a/internal/push/logic/push_to_client.go b/internal/push/logic/push_to_client.go index 390ba42c5..7051360f3 100644 --- a/internal/push/logic/push_to_client.go +++ b/internal/push/logic/push_to_client.go @@ -34,11 +34,9 @@ type AtContent struct { IsAtSelf bool `json:"isAtSelf"` } -func MsgToUser(sendPbData *pbRelay.MsgToUserReq, OfflineInfo, Options string) { +func MsgToUser(sendPbData *pbRelay.MsgToUserReq, OfflineInfo string, Options map[string]int32) { var wsResult []*pbRelay.SingleMsgToUser - MOptions := utils.JsonStringToMap(Options) //Control whether to push message to sender's other terminal - //isSenderSync := utils.GetSwitchFromOptions(MOptions, "senderSync") - isOfflinePush := utils.GetSwitchFromOptions(MOptions, "offlinePush") + isOfflinePush := utils.GetSwitchFromOptions(Options, "offlinePush") log.InfoByKv("Get chat from msg_transfer And push chat", sendPbData.OperationID, "PushData", sendPbData) grpcCons := getcdv3.GetConn4Unique(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImOnlineMessageRelayName) //Online push message diff --git a/internal/rpc/chat/send_msg.go b/internal/rpc/chat/send_msg.go index 42d83e1a7..d81e9d580 100644 --- a/internal/rpc/chat/send_msg.go +++ b/internal/rpc/chat/send_msg.go @@ -71,8 +71,7 @@ func (rpc *rpcChat) UserSendMsg(_ context.Context, pb *pbChat.UserSendMsgReq) (* } else { pbData.SendTime = pb.SendTime } - Options := utils.JsonStringToMap(pbData.Options) - isHistory := utils.GetSwitchFromOptions(Options, "history") + isHistory := utils.GetSwitchFromOptions(pbData.Options, "history") mReq := MsgCallBackReq{ SendID: pb.SendID, RecvID: pb.RecvID, @@ -224,10 +223,7 @@ func modifyMessageByUserMessageReceiveOpt(userID, sourceID string, sessionType i case constant.NotReceiveMessage: return false case constant.ReceiveNotNotifyMessage: - m := utils.JsonStringToMap(msg.Options) - utils.SetSwitchFromOptions(m, "offlinePush", 0) - s := utils.MapToJsonString(m) - msg.OfflineInfo = s + utils.SetSwitchFromOptions(msg.Options, "offlinePush", 0) return true } diff --git a/pkg/utils/map.go b/pkg/utils/map.go index f2c2d07b5..fec4da23e 100644 --- a/pkg/utils/map.go +++ b/pkg/utils/map.go @@ -115,12 +115,12 @@ func JsonStringToMap(str string) (tempMap map[string]interface{}) { _ = json.Unmarshal([]byte(str), &tempMap) return tempMap } -func GetSwitchFromOptions(Options map[string]interface{}, key string) (result bool) { - if flag, ok := Options[key]; !ok || flag.(float64) == 1 { +func GetSwitchFromOptions(Options map[string]int32, key string) (result bool) { + if flag, ok := Options[key]; !ok || flag == 1 { return true } return false } -func SetSwitchFromOptions(Options map[string]interface{}, key string, value interface{}) { +func SetSwitchFromOptions(Options map[string]int32, key string, value int32) { Options[key] = value } From 822f689c482dcdb4c920006545044b9f76c5967f Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Wed, 8 Dec 2021 18:17:57 +0800 Subject: [PATCH 178/814] rpc protocol update --- internal/msg_gateway/gate/logic.go | 2 +- internal/msg_transfer/logic/history_msg_handler.go | 5 ++--- internal/msg_transfer/logic/persistent_msg_handler.go | 3 +-- 3 files changed, 4 insertions(+), 6 deletions(-) diff --git a/internal/msg_gateway/gate/logic.go b/internal/msg_gateway/gate/logic.go index 9b449d4b2..58358a1e6 100644 --- a/internal/msg_gateway/gate/logic.go +++ b/internal/msg_gateway/gate/logic.go @@ -214,7 +214,7 @@ func (ws *WServer) sendMsgReq(conn *UserConn, m *Req, sendTime int64) { SenderNickName: data.SenderNickName, SenderFaceURL: data.SenderFaceURL, Content: data.Content, - Options: utils.MapIntToJsonString(data.Options), + Options: data.Options, ClientMsgID: data.ClientMsgID, SendTime: sendTime, } diff --git a/internal/msg_transfer/logic/history_msg_handler.go b/internal/msg_transfer/logic/history_msg_handler.go index e3b5efb05..ce6e2ade5 100644 --- a/internal/msg_transfer/logic/history_msg_handler.go +++ b/internal/msg_transfer/logic/history_msg_handler.go @@ -54,11 +54,10 @@ func (mc *HistoryConsumerHandler) handleChatWs2Mongo(msg []byte, msgKey string) pbSaveData.OperationID = pbData.OperationID pbSaveData.RecvID = pbData.RecvID pbSaveData.PlatformID = pbData.PlatformID - Options := utils.JsonStringToMap(pbData.Options) //Control whether to store offline messages (mongo) - isHistory := utils.GetSwitchFromOptions(Options, "history") + isHistory := utils.GetSwitchFromOptions(pbData.Options, "history") //Control whether to store history messages (mysql) - isPersist := utils.GetSwitchFromOptions(Options, "persistent") + isPersist := utils.GetSwitchFromOptions(pbData.Options, "persistent") switch pbData.SessionType { case constant.SingleChatType: log.NewDebug(pbSaveData.OperationID, "msg_transfer chat type = SingleChatType", isHistory, isPersist) diff --git a/internal/msg_transfer/logic/persistent_msg_handler.go b/internal/msg_transfer/logic/persistent_msg_handler.go index 88039041c..aa4c0c7ba 100644 --- a/internal/msg_transfer/logic/persistent_msg_handler.go +++ b/internal/msg_transfer/logic/persistent_msg_handler.go @@ -40,9 +40,8 @@ func (pc *PersistentConsumerHandler) handleChatWs2Mysql(msg []byte, msgKey strin log.ErrorByKv("msg_transfer Unmarshal chat err", "", "chat", string(msg), "err", err.Error()) return } - Options := utils.JsonStringToMap(pbData.Options) //Control whether to store history messages (mysql) - isPersist := utils.GetSwitchFromOptions(Options, "persistent") + isPersist := utils.GetSwitchFromOptions(pbData.Options, "persistent") //Only process receiver data if isPersist { if msgKey == pbData.RecvID && pbData.SessionType == constant.SingleChatType { From d2ce4192cc38932f0ddc9d6be69e35cc47611cb7 Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Wed, 8 Dec 2021 18:30:23 +0800 Subject: [PATCH 179/814] rpc protocol update --- internal/rpc/chat/send_msg.go | 3 +++ 1 file changed, 3 insertions(+) diff --git a/internal/rpc/chat/send_msg.go b/internal/rpc/chat/send_msg.go index d81e9d580..dd4090435 100644 --- a/internal/rpc/chat/send_msg.go +++ b/internal/rpc/chat/send_msg.go @@ -223,6 +223,9 @@ func modifyMessageByUserMessageReceiveOpt(userID, sourceID string, sessionType i case constant.NotReceiveMessage: return false case constant.ReceiveNotNotifyMessage: + if msg.Options == nil { + msg.Options = make(map[string]int32, 2) + } utils.SetSwitchFromOptions(msg.Options, "offlinePush", 0) return true } From fa028fdafd6883cfeca04cb00a4546c86c68df61 Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Thu, 9 Dec 2021 15:43:36 +0800 Subject: [PATCH 180/814] push add ios push --- internal/push/jpush/push.go | 3 +-- .../push/jpush/requestBody/notification.go | 21 ++++++++++++++++--- 2 files changed, 19 insertions(+), 5 deletions(-) diff --git a/internal/push/jpush/push.go b/internal/push/jpush/push.go index 2fe39c27f..03827d9e9 100644 --- a/internal/push/jpush/push.go +++ b/internal/push/jpush/push.go @@ -20,8 +20,7 @@ func JGAccountListPush(accounts []string, content, detailContent, platform strin var au requestBody.Audience au.SetAlias(accounts) var no requestBody.Notification - no.SetAlert(content) - no.SetAndroidIntent() + no.SetAlert(content, platform) var me requestBody.Message me.SetMsgContent(detailContent) var po requestBody.PushObj diff --git a/internal/push/jpush/requestBody/notification.go b/internal/push/jpush/requestBody/notification.go index 838621606..3f2876612 100644 --- a/internal/push/jpush/requestBody/notification.go +++ b/internal/push/jpush/requestBody/notification.go @@ -1,6 +1,9 @@ package requestBody -import "Open_IM/pkg/common/config" +import ( + "Open_IM/pkg/common/config" + "Open_IM/pkg/common/constant" +) type Notification struct { Alert string `json:"alert,omitempty"` @@ -15,11 +18,23 @@ type Android struct { } `json:"intent,omitempty"` } type Ios struct { + Alert string `json:"alert,omitempty"` + Sound string `json:"sound,omitempty"` + Badge string `json:"badge,omitempty"` } -func (n *Notification) SetAlert(alert string) { +func (n *Notification) SetAlert(alert, platform string) { n.Alert = alert - n.Android.Alert = alert + switch platform { + case constant.AndroidPlatformStr: + n.Android.Alert = alert + n.SetAndroidIntent() + case constant.IOSPlatformStr: + n.IOS.Alert = alert + n.IOS.Sound = "default" + n.IOS.Badge = "+1" + default: + } } func (n *Notification) SetAndroidIntent() { n.Android.Intent.URL = config.Config.Push.Jpns.PushIntent From 3e51e781a6aca291c70219a8237fa608180e4f53 Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Thu, 9 Dec 2021 16:05:20 +0800 Subject: [PATCH 181/814] push add ios push --- internal/push/logic/push_to_client.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/internal/push/logic/push_to_client.go b/internal/push/logic/push_to_client.go index 7051360f3..1e8d3acd3 100644 --- a/internal/push/logic/push_to_client.go +++ b/internal/push/logic/push_to_client.go @@ -37,7 +37,7 @@ type AtContent struct { func MsgToUser(sendPbData *pbRelay.MsgToUserReq, OfflineInfo string, Options map[string]int32) { var wsResult []*pbRelay.SingleMsgToUser isOfflinePush := utils.GetSwitchFromOptions(Options, "offlinePush") - log.InfoByKv("Get chat from msg_transfer And push chat", sendPbData.OperationID, "PushData", sendPbData) + log.InfoByKv("Get chat from msg_transfer And push chat", sendPbData.OperationID, "PushData", sendPbData, Options, isOfflinePush) grpcCons := getcdv3.GetConn4Unique(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImOnlineMessageRelayName) //Online push message log.InfoByKv("test", sendPbData.OperationID, "len grpc", len(grpcCons), "data", sendPbData) From 8085c627742e811d5ba7e817b43706172281d176 Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Thu, 9 Dec 2021 17:14:24 +0800 Subject: [PATCH 182/814] push add ios push --- internal/push/jpush/push.go | 2 ++ internal/push/jpush/requestBody/options.go | 9 +++++++++ internal/push/jpush/requestBody/pushObj.go | 4 ++++ internal/push/logic/push_to_client.go | 4 ++-- 4 files changed, 17 insertions(+), 2 deletions(-) create mode 100644 internal/push/jpush/requestBody/options.go diff --git a/internal/push/jpush/push.go b/internal/push/jpush/push.go index 03827d9e9..e5ce9b4ac 100644 --- a/internal/push/jpush/push.go +++ b/internal/push/jpush/push.go @@ -23,6 +23,8 @@ func JGAccountListPush(accounts []string, content, detailContent, platform strin no.SetAlert(content, platform) var me requestBody.Message me.SetMsgContent(detailContent) + var o requestBody.Options + o.SetApnsProduction(true) var po requestBody.PushObj po.SetPlatform(&pf) po.SetAudience(&au) diff --git a/internal/push/jpush/requestBody/options.go b/internal/push/jpush/requestBody/options.go new file mode 100644 index 000000000..97a452fad --- /dev/null +++ b/internal/push/jpush/requestBody/options.go @@ -0,0 +1,9 @@ +package requestBody + +type Options struct { + ApnsProduction bool `json:"apns_production,omitempty"` +} + +func (o *Options) SetApnsProduction(c bool) { + o.ApnsProduction = c +} diff --git a/internal/push/jpush/requestBody/pushObj.go b/internal/push/jpush/requestBody/pushObj.go index 24c912b26..974161407 100644 --- a/internal/push/jpush/requestBody/pushObj.go +++ b/internal/push/jpush/requestBody/pushObj.go @@ -5,6 +5,7 @@ type PushObj struct { Audience interface{} `json:"audience"` Notification interface{} `json:"notification,omitempty"` Message interface{} `json:"message,omitempty"` + Options interface{} `json:"options,omitempty"` } func (p *PushObj) SetPlatform(pf *Platform) { @@ -22,3 +23,6 @@ func (p *PushObj) SetNotification(no *Notification) { func (p *PushObj) SetMessage(m *Message) { p.Message = m } +func (p *PushObj) SetOptions(o *Options) { + p.Options = o +} diff --git a/internal/push/logic/push_to_client.go b/internal/push/logic/push_to_client.go index 1e8d3acd3..b7c8c94af 100644 --- a/internal/push/logic/push_to_client.go +++ b/internal/push/logic/push_to_client.go @@ -98,9 +98,9 @@ func MsgToUser(sendPbData *pbRelay.MsgToUserReq, OfflineInfo string, Options map } pushResult, err := push.JGAccountListPush(UIDList, content, jsonCustomContent, constant.PlatformIDToName(t)) if err != nil { - log.NewError(sendPbData.OperationID, "offline push error", sendPbData.String(), err.Error(), t) + log.NewError(sendPbData.OperationID, "offline push error", sendPbData.String(), err.Error(), constant.PlatformIDToName(t)) } else { - log.NewDebug(sendPbData.OperationID, "offline push return result is ", string(pushResult), sendPbData, t) + log.NewDebug(sendPbData.OperationID, "offline push return result is ", string(pushResult), sendPbData, constant.PlatformIDToName(t)) } } From a69ebf42996302fad9bc174ba475577130724df3 Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Thu, 9 Dec 2021 17:41:06 +0800 Subject: [PATCH 183/814] push add ios push --- internal/push/jpush/push.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/internal/push/jpush/push.go b/internal/push/jpush/push.go index e5ce9b4ac..3334ef7ca 100644 --- a/internal/push/jpush/push.go +++ b/internal/push/jpush/push.go @@ -24,7 +24,7 @@ func JGAccountListPush(accounts []string, content, detailContent, platform strin var me requestBody.Message me.SetMsgContent(detailContent) var o requestBody.Options - o.SetApnsProduction(true) + o.SetApnsProduction(false) var po requestBody.PushObj po.SetPlatform(&pf) po.SetAudience(&au) From d7cd8ba780505534ee034dbe99bc0565b9f34de3 Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Thu, 9 Dec 2021 17:42:02 +0800 Subject: [PATCH 184/814] push add ios push --- internal/push/jpush/push.go | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/internal/push/jpush/push.go b/internal/push/jpush/push.go index 3334ef7ca..0d639c868 100644 --- a/internal/push/jpush/push.go +++ b/internal/push/jpush/push.go @@ -24,12 +24,13 @@ func JGAccountListPush(accounts []string, content, detailContent, platform strin var me requestBody.Message me.SetMsgContent(detailContent) var o requestBody.Options - o.SetApnsProduction(false) + o.SetApnsProduction(true) var po requestBody.PushObj po.SetPlatform(&pf) po.SetAudience(&au) po.SetNotification(&no) po.SetMessage(&me) + po.SetOptions(&o) con, err := json.Marshal(po) if err != nil { From 74beec2b858cb135bb87dce91573b5616950d311 Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Thu, 9 Dec 2021 17:52:05 +0800 Subject: [PATCH 185/814] push add ios push --- internal/push/jpush/push.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/internal/push/jpush/push.go b/internal/push/jpush/push.go index 0d639c868..1258a80a7 100644 --- a/internal/push/jpush/push.go +++ b/internal/push/jpush/push.go @@ -24,7 +24,7 @@ func JGAccountListPush(accounts []string, content, detailContent, platform strin var me requestBody.Message me.SetMsgContent(detailContent) var o requestBody.Options - o.SetApnsProduction(true) + o.SetApnsProduction(false) var po requestBody.PushObj po.SetPlatform(&pf) po.SetAudience(&au) From adc4fec19bf0ea96b91697d05f06cc7bc920565c Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Thu, 9 Dec 2021 17:54:58 +0800 Subject: [PATCH 186/814] push add ios push --- internal/push/jpush/push.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/internal/push/jpush/push.go b/internal/push/jpush/push.go index 1258a80a7..0d639c868 100644 --- a/internal/push/jpush/push.go +++ b/internal/push/jpush/push.go @@ -24,7 +24,7 @@ func JGAccountListPush(accounts []string, content, detailContent, platform strin var me requestBody.Message me.SetMsgContent(detailContent) var o requestBody.Options - o.SetApnsProduction(false) + o.SetApnsProduction(true) var po requestBody.PushObj po.SetPlatform(&pf) po.SetAudience(&au) From 31a558cfea2fa7cdb04976380ca36d0878999027 Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Thu, 9 Dec 2021 18:10:39 +0800 Subject: [PATCH 187/814] push add ios push --- internal/push/jpush/push.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/internal/push/jpush/push.go b/internal/push/jpush/push.go index 0d639c868..1258a80a7 100644 --- a/internal/push/jpush/push.go +++ b/internal/push/jpush/push.go @@ -24,7 +24,7 @@ func JGAccountListPush(accounts []string, content, detailContent, platform strin var me requestBody.Message me.SetMsgContent(detailContent) var o requestBody.Options - o.SetApnsProduction(true) + o.SetApnsProduction(false) var po requestBody.PushObj po.SetPlatform(&pf) po.SetAudience(&au) From 170310e23c0bab12462b8fa0644e7002fa882b39 Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Thu, 9 Dec 2021 18:15:40 +0800 Subject: [PATCH 188/814] push add ios push --- internal/push/jpush/requestBody/options.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/internal/push/jpush/requestBody/options.go b/internal/push/jpush/requestBody/options.go index 97a452fad..f82ebd035 100644 --- a/internal/push/jpush/requestBody/options.go +++ b/internal/push/jpush/requestBody/options.go @@ -1,7 +1,7 @@ package requestBody type Options struct { - ApnsProduction bool `json:"apns_production,omitempty"` + ApnsProduction bool `json:"apns_production"` } func (o *Options) SetApnsProduction(c bool) { From 043f9bde592aedf740453025df7af9d83532e057 Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Thu, 9 Dec 2021 21:22:54 +0800 Subject: [PATCH 189/814] msg add notification --- internal/rpc/chat/send_msg.go | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/internal/rpc/chat/send_msg.go b/internal/rpc/chat/send_msg.go index dd4090435..8e6ad5db5 100644 --- a/internal/rpc/chat/send_msg.go +++ b/internal/rpc/chat/send_msg.go @@ -189,6 +189,20 @@ func (rpc *rpcChat) UserSendMsg(_ context.Context, pb *pbChat.UserSendMsgReq) (* } +} + +type WSToMsgSvrChatMsg struct { + SendID string `protobuf:"bytes,1,opt,name=SendID" json:"SendID,omitempty"` + RecvID string `protobuf:"bytes,2,opt,name=RecvID" json:"RecvID,omitempty"` + Content string `protobuf:"bytes,3,opt,name=Content" json:"Content,omitempty"` + MsgFrom int32 `protobuf:"varint,5,opt,name=MsgFrom" json:"MsgFrom,omitempty"` + ContentType int32 `protobuf:"varint,8,opt,name=ContentType" json:"ContentType,omitempty"` + SessionType int32 `protobuf:"varint,9,opt,name=SessionType" json:"SessionType,omitempty"` + OperationID string `protobuf:"bytes,10,opt,name=OperationID" json:"OperationID,omitempty"` +} + +func Notification(m *WSToMsgSvrChatMsg, onlineUserOnly bool, offlineInfo interface{}) { + } func (rpc *rpcChat) sendMsgToKafka(m *pbChat.WSToMsgSvrChatMsg, key string) error { pid, offset, err := rpc.producer.SendMessage(m, key) From aaf834a33b601e452ec749eb0ce6b1c467dc61f8 Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Fri, 10 Dec 2021 10:35:21 +0800 Subject: [PATCH 190/814] pb change --- pkg/proto/chat/chat.proto | 6 +++--- pkg/proto/push/push.proto | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/pkg/proto/chat/chat.proto b/pkg/proto/chat/chat.proto index f65b1de73..3c66c99dc 100644 --- a/pkg/proto/chat/chat.proto +++ b/pkg/proto/chat/chat.proto @@ -16,7 +16,7 @@ message WSToMsgSvrChatMsg{ string MsgID = 11; string Token = 12; string OfflineInfo =13; - map Options = 14; + string Options = 14; int32 PlatformID =15; repeated string ForceList = 16; string ClientMsgID = 17; @@ -37,7 +37,7 @@ message MsgSvrToPushSvrChatMsg { string OperationID = 11; string MsgID = 12; string OfflineInfo = 13; - map Options =14; + string Options =14; int32 PlatformID =15; string ClientMsgID = 16; @@ -121,7 +121,7 @@ message UserSendMsgReq { string RecvID = 11; repeated string ForceList = 12; string Content = 13; - map Options = 14; + string Options = 14; string ClientMsgID = 15; string OffLineInfo = 16; string Ex = 17; diff --git a/pkg/proto/push/push.proto b/pkg/proto/push/push.proto index ed8dd4337..60fddfe3b 100644 --- a/pkg/proto/push/push.proto +++ b/pkg/proto/push/push.proto @@ -14,7 +14,7 @@ message PushMsgReq { string OperationID = 9; string MsgID = 10; string OfflineInfo = 11; - map Options =12; + string Options =12; int32 PlatformID =13; string SenderNickName = 14; string SenderFaceURL = 15; From d6ec8f49307732f79cb6a5b4f9ea7639f9d94a5f Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Fri, 10 Dec 2021 10:49:49 +0800 Subject: [PATCH 191/814] pb change --- internal/api/chat/send_msg.go | 2 +- internal/api/manage/management_chat.go | 2 +- internal/msg_gateway/gate/logic.go | 2 +- .../msg_transfer/logic/history_msg_handler.go | 5 +- .../logic/persistent_msg_handler.go | 3 +- internal/push/logic/push_handler.go | 3 +- internal/rpc/chat/send_msg.go | 11 +- pkg/common/db/mongoModel.go | 6 +- pkg/proto/push/push.pb.go | 106 +++++++++--------- pkg/utils/map.go | 2 +- 10 files changed, 72 insertions(+), 70 deletions(-) diff --git a/internal/api/chat/send_msg.go b/internal/api/chat/send_msg.go index 2c4eee371..e48582eb1 100644 --- a/internal/api/chat/send_msg.go +++ b/internal/api/chat/send_msg.go @@ -49,7 +49,7 @@ func newUserSendMsgReq(token string, params *paramsUserSendMsg) *pbChat.UserSend RecvID: params.Data.RecvID, ForceList: params.Data.ForceList, Content: params.Data.Content, - Options: params.Data.Options, + Options: utils.MapIntToJsonString(params.Data.Options), ClientMsgID: params.Data.ClientMsgID, OffLineInfo: utils.MapToJsonString(params.Data.OffLineInfo), Ex: utils.MapToJsonString(params.Data.Ex), diff --git a/internal/api/manage/management_chat.go b/internal/api/manage/management_chat.go index 4cb8f6364..ba056eba1 100644 --- a/internal/api/manage/management_chat.go +++ b/internal/api/manage/management_chat.go @@ -72,7 +72,7 @@ func newUserSendMsgReq(params *paramsManagementSendMsg) *pbChat.UserSendMsgReq { ForceList: params.ForceList, Content: newContent, ClientMsgID: utils.GetMsgID(params.SendID), - Options: options, + Options: utils.MapIntToJsonString(options), } return &pbData } diff --git a/internal/msg_gateway/gate/logic.go b/internal/msg_gateway/gate/logic.go index 58358a1e6..9b449d4b2 100644 --- a/internal/msg_gateway/gate/logic.go +++ b/internal/msg_gateway/gate/logic.go @@ -214,7 +214,7 @@ func (ws *WServer) sendMsgReq(conn *UserConn, m *Req, sendTime int64) { SenderNickName: data.SenderNickName, SenderFaceURL: data.SenderFaceURL, Content: data.Content, - Options: data.Options, + Options: utils.MapIntToJsonString(data.Options), ClientMsgID: data.ClientMsgID, SendTime: sendTime, } diff --git a/internal/msg_transfer/logic/history_msg_handler.go b/internal/msg_transfer/logic/history_msg_handler.go index ce6e2ade5..4b25bd9bc 100644 --- a/internal/msg_transfer/logic/history_msg_handler.go +++ b/internal/msg_transfer/logic/history_msg_handler.go @@ -54,10 +54,11 @@ func (mc *HistoryConsumerHandler) handleChatWs2Mongo(msg []byte, msgKey string) pbSaveData.OperationID = pbData.OperationID pbSaveData.RecvID = pbData.RecvID pbSaveData.PlatformID = pbData.PlatformID + options := utils.JsonStringToMap(pbData.Options) //Control whether to store offline messages (mongo) - isHistory := utils.GetSwitchFromOptions(pbData.Options, "history") + isHistory := utils.GetSwitchFromOptions(options, "history") //Control whether to store history messages (mysql) - isPersist := utils.GetSwitchFromOptions(pbData.Options, "persistent") + isPersist := utils.GetSwitchFromOptions(options, "persistent") switch pbData.SessionType { case constant.SingleChatType: log.NewDebug(pbSaveData.OperationID, "msg_transfer chat type = SingleChatType", isHistory, isPersist) diff --git a/internal/msg_transfer/logic/persistent_msg_handler.go b/internal/msg_transfer/logic/persistent_msg_handler.go index aa4c0c7ba..2a13bb4a2 100644 --- a/internal/msg_transfer/logic/persistent_msg_handler.go +++ b/internal/msg_transfer/logic/persistent_msg_handler.go @@ -40,8 +40,9 @@ func (pc *PersistentConsumerHandler) handleChatWs2Mysql(msg []byte, msgKey strin log.ErrorByKv("msg_transfer Unmarshal chat err", "", "chat", string(msg), "err", err.Error()) return } + options := utils.JsonStringToMap(pbData.Options) //Control whether to store history messages (mysql) - isPersist := utils.GetSwitchFromOptions(pbData.Options, "persistent") + isPersist := utils.GetSwitchFromOptions(options, "persistent") //Only process receiver data if isPersist { if msgKey == pbData.RecvID && pbData.SessionType == constant.SingleChatType { diff --git a/internal/push/logic/push_handler.go b/internal/push/logic/push_handler.go index 22382a5b9..5058ce26d 100644 --- a/internal/push/logic/push_handler.go +++ b/internal/push/logic/push_handler.go @@ -12,6 +12,7 @@ import ( "Open_IM/pkg/common/log" pbChat "Open_IM/pkg/proto/chat" pbRelay "Open_IM/pkg/proto/relay" + "Open_IM/pkg/utils" "github.com/Shopify/sarama" "github.com/golang/protobuf/proto" ) @@ -53,7 +54,7 @@ func (ms *PushConsumerHandler) handleMs2PsChat(msg []byte) { sendPbData.PlatformID = pbData.PlatformID sendPbData.RecvSeq = pbData.RecvSeq //Call push module to send message to the user - MsgToUser(&sendPbData, pbData.OfflineInfo, pbData.Options) + MsgToUser(&sendPbData, pbData.OfflineInfo, utils.JsonStringToMap(pbData.Options)) } func (PushConsumerHandler) Setup(_ sarama.ConsumerGroupSession) error { return nil } func (PushConsumerHandler) Cleanup(_ sarama.ConsumerGroupSession) error { return nil } diff --git a/internal/rpc/chat/send_msg.go b/internal/rpc/chat/send_msg.go index 8e6ad5db5..cc9e56177 100644 --- a/internal/rpc/chat/send_msg.go +++ b/internal/rpc/chat/send_msg.go @@ -71,7 +71,8 @@ func (rpc *rpcChat) UserSendMsg(_ context.Context, pb *pbChat.UserSendMsgReq) (* } else { pbData.SendTime = pb.SendTime } - isHistory := utils.GetSwitchFromOptions(pbData.Options, "history") + options := utils.JsonStringToMap(pbData.Options) + isHistory := utils.GetSwitchFromOptions(options, "history") mReq := MsgCallBackReq{ SendID: pb.SendID, RecvID: pb.RecvID, @@ -237,10 +238,12 @@ func modifyMessageByUserMessageReceiveOpt(userID, sourceID string, sessionType i case constant.NotReceiveMessage: return false case constant.ReceiveNotNotifyMessage: - if msg.Options == nil { - msg.Options = make(map[string]int32, 2) + options := utils.JsonStringToMap(msg.Options) + if options == nil { + options = make(map[string]int32, 2) } - utils.SetSwitchFromOptions(msg.Options, "offlinePush", 0) + utils.SetSwitchFromOptions(options, "offlinePush", 0) + msg.Options = utils.MapIntToJsonString(options) return true } diff --git a/pkg/common/db/mongoModel.go b/pkg/common/db/mongoModel.go index 93f64ff5f..4137616ea 100644 --- a/pkg/common/db/mongoModel.go +++ b/pkg/common/db/mongoModel.go @@ -198,14 +198,14 @@ func (d *DataBases) SaveUserChat(uid string, sendTime int64, m *pbMsg.MsgSvrToPu return errors.New("session == nil") } defer session.Close() - log.NewInfo("", "get mgoSession cost time", getCurrentTimestampByMill()-newTime) + log.NewDebug("", "get mgoSession cost time", getCurrentTimestampByMill()-newTime) c := session.DB(config.Config.Mongo.DBDatabase).C(cChat) seqUid = getSeqUid(uid, m.RecvSeq) n, err := c.Find(bson.M{"uid": seqUid}).Count() if err != nil { return err } - log.NewInfo("", "find mgo uid cost time", getCurrentTimestampByMill()-newTime) + log.NewDebug("", "find mgo uid cost time", getCurrentTimestampByMill()-newTime) sMsg := MsgInfo{} sMsg.SendTime = sendTime if sMsg.Msg, err = proto.Marshal(m); err != nil { @@ -225,7 +225,7 @@ func (d *DataBases) SaveUserChat(uid string, sendTime int64, m *pbMsg.MsgSvrToPu return err } } - log.NewInfo("", "insert mgo data cost time", getCurrentTimestampByMill()-newTime) + log.NewDebug("", "insert mgo data cost time", getCurrentTimestampByMill()-newTime) return nil } diff --git a/pkg/proto/push/push.pb.go b/pkg/proto/push/push.pb.go index ea30d3911..b53d2b8a1 100644 --- a/pkg/proto/push/push.pb.go +++ b/pkg/proto/push/push.pb.go @@ -24,32 +24,32 @@ var _ = math.Inf const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package type PushMsgReq struct { - SendID string `protobuf:"bytes,1,opt,name=SendID" json:"SendID,omitempty"` - RecvID string `protobuf:"bytes,2,opt,name=RecvID" json:"RecvID,omitempty"` - Content string `protobuf:"bytes,3,opt,name=Content" json:"Content,omitempty"` - RecvSeq int64 `protobuf:"varint,4,opt,name=RecvSeq" json:"RecvSeq,omitempty"` - SendTime int64 `protobuf:"varint,5,opt,name=SendTime" json:"SendTime,omitempty"` - MsgFrom int32 `protobuf:"varint,6,opt,name=MsgFrom" json:"MsgFrom,omitempty"` - ContentType int32 `protobuf:"varint,7,opt,name=ContentType" json:"ContentType,omitempty"` - SessionType int32 `protobuf:"varint,8,opt,name=SessionType" json:"SessionType,omitempty"` - OperationID string `protobuf:"bytes,9,opt,name=OperationID" json:"OperationID,omitempty"` - MsgID string `protobuf:"bytes,10,opt,name=MsgID" json:"MsgID,omitempty"` - OfflineInfo string `protobuf:"bytes,11,opt,name=OfflineInfo" json:"OfflineInfo,omitempty"` - Options map[string]int32 `protobuf:"bytes,12,rep,name=Options" json:"Options,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` - PlatformID int32 `protobuf:"varint,13,opt,name=PlatformID" json:"PlatformID,omitempty"` - SenderNickName string `protobuf:"bytes,14,opt,name=SenderNickName" json:"SenderNickName,omitempty"` - SenderFaceURL string `protobuf:"bytes,15,opt,name=SenderFaceURL" json:"SenderFaceURL,omitempty"` - ClientMsgID string `protobuf:"bytes,16,opt,name=ClientMsgID" json:"ClientMsgID,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + SendID string `protobuf:"bytes,1,opt,name=SendID" json:"SendID,omitempty"` + RecvID string `protobuf:"bytes,2,opt,name=RecvID" json:"RecvID,omitempty"` + Content string `protobuf:"bytes,3,opt,name=Content" json:"Content,omitempty"` + RecvSeq int64 `protobuf:"varint,4,opt,name=RecvSeq" json:"RecvSeq,omitempty"` + SendTime int64 `protobuf:"varint,5,opt,name=SendTime" json:"SendTime,omitempty"` + MsgFrom int32 `protobuf:"varint,6,opt,name=MsgFrom" json:"MsgFrom,omitempty"` + ContentType int32 `protobuf:"varint,7,opt,name=ContentType" json:"ContentType,omitempty"` + SessionType int32 `protobuf:"varint,8,opt,name=SessionType" json:"SessionType,omitempty"` + OperationID string `protobuf:"bytes,9,opt,name=OperationID" json:"OperationID,omitempty"` + MsgID string `protobuf:"bytes,10,opt,name=MsgID" json:"MsgID,omitempty"` + OfflineInfo string `protobuf:"bytes,11,opt,name=OfflineInfo" json:"OfflineInfo,omitempty"` + Options string `protobuf:"bytes,12,opt,name=Options" json:"Options,omitempty"` + PlatformID int32 `protobuf:"varint,13,opt,name=PlatformID" json:"PlatformID,omitempty"` + SenderNickName string `protobuf:"bytes,14,opt,name=SenderNickName" json:"SenderNickName,omitempty"` + SenderFaceURL string `protobuf:"bytes,15,opt,name=SenderFaceURL" json:"SenderFaceURL,omitempty"` + ClientMsgID string `protobuf:"bytes,16,opt,name=ClientMsgID" json:"ClientMsgID,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } func (m *PushMsgReq) Reset() { *m = PushMsgReq{} } func (m *PushMsgReq) String() string { return proto.CompactTextString(m) } func (*PushMsgReq) ProtoMessage() {} func (*PushMsgReq) Descriptor() ([]byte, []int) { - return fileDescriptor_push_380e4afdaa5f6119, []int{0} + return fileDescriptor_push_e44270f7d93180b9, []int{0} } func (m *PushMsgReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_PushMsgReq.Unmarshal(m, b) @@ -146,11 +146,11 @@ func (m *PushMsgReq) GetOfflineInfo() string { return "" } -func (m *PushMsgReq) GetOptions() map[string]int32 { +func (m *PushMsgReq) GetOptions() string { if m != nil { return m.Options } - return nil + return "" } func (m *PushMsgReq) GetPlatformID() int32 { @@ -192,7 +192,7 @@ func (m *PushMsgResp) Reset() { *m = PushMsgResp{} } func (m *PushMsgResp) String() string { return proto.CompactTextString(m) } func (*PushMsgResp) ProtoMessage() {} func (*PushMsgResp) Descriptor() ([]byte, []int) { - return fileDescriptor_push_380e4afdaa5f6119, []int{1} + return fileDescriptor_push_e44270f7d93180b9, []int{1} } func (m *PushMsgResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_PushMsgResp.Unmarshal(m, b) @@ -221,7 +221,6 @@ func (m *PushMsgResp) GetResultCode() int32 { func init() { proto.RegisterType((*PushMsgReq)(nil), "push.PushMsgReq") - proto.RegisterMapType((map[string]int32)(nil), "push.PushMsgReq.OptionsEntry") proto.RegisterType((*PushMsgResp)(nil), "push.PushMsgResp") } @@ -297,35 +296,32 @@ var _PushMsgService_serviceDesc = grpc.ServiceDesc{ Metadata: "push/push.proto", } -func init() { proto.RegisterFile("push/push.proto", fileDescriptor_push_380e4afdaa5f6119) } - -var fileDescriptor_push_380e4afdaa5f6119 = []byte{ - // 426 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x5c, 0x92, 0x5f, 0x6b, 0xdb, 0x30, - 0x14, 0xc5, 0x71, 0x13, 0x27, 0xed, 0x4d, 0xf3, 0x67, 0x62, 0x0c, 0x11, 0xd8, 0x30, 0x65, 0x8c, - 0xbc, 0xcc, 0x83, 0xee, 0x61, 0xa3, 0x7b, 0x19, 0xab, 0x57, 0x30, 0x2c, 0x6d, 0x51, 0xba, 0x97, - 0xbd, 0xb9, 0xe9, 0x4d, 0x6a, 0xea, 0x48, 0xaa, 0x25, 0x07, 0xf2, 0x11, 0xf7, 0xad, 0x86, 0xae, - 0xec, 0xc6, 0xcb, 0x8b, 0xd1, 0xf9, 0xdd, 0xa3, 0x6b, 0xdd, 0xc3, 0x85, 0xb1, 0xae, 0xcc, 0xe3, - 0x27, 0xf7, 0x89, 0x75, 0xa9, 0xac, 0x62, 0x5d, 0x77, 0x3e, 0xfb, 0xdb, 0x05, 0xb8, 0xad, 0xcc, - 0xe3, 0xdc, 0xac, 0x05, 0x3e, 0xb3, 0x37, 0xd0, 0x5b, 0xa0, 0x7c, 0x48, 0x13, 0x1e, 0x44, 0xc1, - 0xec, 0x44, 0xd4, 0xca, 0x71, 0x81, 0xcb, 0x6d, 0x9a, 0xf0, 0x23, 0xcf, 0xbd, 0x62, 0x1c, 0xfa, - 0x97, 0x4a, 0x5a, 0x94, 0x96, 0x77, 0xa8, 0xd0, 0x48, 0x57, 0x71, 0x9e, 0x05, 0x3e, 0xf3, 0x6e, - 0x14, 0xcc, 0x3a, 0xa2, 0x91, 0x6c, 0x0a, 0xc7, 0xae, 0xeb, 0x5d, 0xbe, 0x41, 0x1e, 0x52, 0xe9, - 0x45, 0xbb, 0x5b, 0x73, 0xb3, 0xbe, 0x2a, 0xd5, 0x86, 0xf7, 0xa2, 0x60, 0x16, 0x8a, 0x46, 0xb2, - 0x08, 0x06, 0x75, 0xeb, 0xbb, 0x9d, 0x46, 0xde, 0xa7, 0x6a, 0x1b, 0x39, 0xc7, 0x02, 0x8d, 0xc9, - 0x95, 0x24, 0xc7, 0xb1, 0x77, 0xb4, 0x90, 0x73, 0xdc, 0x68, 0x2c, 0x33, 0x9b, 0x2b, 0x99, 0x26, - 0xfc, 0x84, 0x5e, 0xdc, 0x46, 0xec, 0x35, 0x84, 0x73, 0xb3, 0x4e, 0x13, 0x0e, 0x54, 0xf3, 0x82, - 0xee, 0xad, 0x56, 0x45, 0x2e, 0x31, 0x95, 0x2b, 0xc5, 0x07, 0xf5, 0xbd, 0x3d, 0x62, 0x5f, 0xa0, - 0x7f, 0xa3, 0x5d, 0x0f, 0xc3, 0x4f, 0xa3, 0xce, 0x6c, 0x70, 0xfe, 0x36, 0xa6, 0xa8, 0xf7, 0xd1, - 0xc6, 0x75, 0xfd, 0xa7, 0xb4, 0xe5, 0x4e, 0x34, 0x6e, 0xf6, 0x0e, 0xe0, 0xb6, 0xc8, 0xec, 0x4a, - 0x95, 0x9b, 0x34, 0xe1, 0x43, 0x7a, 0x73, 0x8b, 0xb0, 0x0f, 0x30, 0x72, 0xe1, 0x60, 0x79, 0x9d, - 0x2f, 0x9f, 0xae, 0xb3, 0x0d, 0xf2, 0x11, 0xfd, 0xfd, 0x80, 0xb2, 0xf7, 0x30, 0xf4, 0xe4, 0x2a, - 0x5b, 0xe2, 0x6f, 0xf1, 0x8b, 0x8f, 0xc9, 0xf6, 0x3f, 0xa4, 0x10, 0x8b, 0x1c, 0xa5, 0xf5, 0x43, - 0x4e, 0xfc, 0x20, 0x2d, 0x34, 0xbd, 0x80, 0xd3, 0xf6, 0x43, 0xd9, 0x04, 0x3a, 0x4f, 0xb8, 0xab, - 0xb7, 0xc1, 0x1d, 0x5d, 0x44, 0xdb, 0xac, 0xa8, 0x90, 0x36, 0x21, 0x14, 0x5e, 0x5c, 0x1c, 0x7d, - 0x0d, 0xce, 0x3e, 0xc2, 0xe0, 0x65, 0x5e, 0xa3, 0xdd, 0x68, 0x02, 0x4d, 0x55, 0xd8, 0x4b, 0xf5, - 0x80, 0xd4, 0x21, 0x14, 0x2d, 0x72, 0xfe, 0x1d, 0x46, 0xb5, 0x7d, 0x81, 0xe5, 0x36, 0x5f, 0x22, - 0x8b, 0xa1, 0x5f, 0x13, 0x36, 0x39, 0xcc, 0x6f, 0xfa, 0xea, 0x80, 0x18, 0xfd, 0x63, 0xfc, 0x67, - 0x18, 0xd3, 0x4a, 0x7f, 0xd3, 0xf7, 0x8e, 0xdf, 0xf7, 0x68, 0xb5, 0x3f, 0xff, 0x0b, 0x00, 0x00, - 0xff, 0xff, 0xf0, 0x9a, 0xaa, 0x81, 0xed, 0x02, 0x00, 0x00, +func init() { proto.RegisterFile("push/push.proto", fileDescriptor_push_e44270f7d93180b9) } + +var fileDescriptor_push_e44270f7d93180b9 = []byte{ + // 378 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x5c, 0x92, 0x5d, 0xeb, 0xda, 0x30, + 0x14, 0xc6, 0xe9, 0xb4, 0xbe, 0x1c, 0xe7, 0xcb, 0xc2, 0x18, 0xc1, 0x8b, 0x51, 0x64, 0x0c, 0x6f, + 0xd6, 0xc1, 0x76, 0xb9, 0x9b, 0x31, 0x8b, 0x50, 0x98, 0x2f, 0xa4, 0xee, 0x66, 0x77, 0xb5, 0x9e, + 0x6a, 0x59, 0x9b, 0xc4, 0xa6, 0x0a, 0xfb, 0xd2, 0xfb, 0x0c, 0x23, 0x49, 0xd5, 0xfe, 0xbd, 0x29, + 0x7d, 0x7e, 0xe7, 0x39, 0x87, 0x27, 0xc9, 0x81, 0xb1, 0xbc, 0xa8, 0xd3, 0x67, 0xfd, 0xf1, 0x65, + 0x29, 0x2a, 0x41, 0xda, 0xfa, 0x7f, 0xf6, 0xaf, 0x05, 0xb0, 0xbd, 0xa8, 0xd3, 0x4a, 0x1d, 0x19, + 0x9e, 0xc9, 0x3b, 0xe8, 0x44, 0xc8, 0x0f, 0x61, 0x40, 0x1d, 0xcf, 0x99, 0xf7, 0x59, 0xad, 0x34, + 0x67, 0x98, 0x5c, 0xc3, 0x80, 0xbe, 0xb2, 0xdc, 0x2a, 0x42, 0xa1, 0xbb, 0x10, 0xbc, 0x42, 0x5e, + 0xd1, 0x96, 0x29, 0xdc, 0xa4, 0xae, 0x68, 0x4f, 0x84, 0x67, 0xda, 0xf6, 0x9c, 0x79, 0x8b, 0xdd, + 0x24, 0x99, 0x42, 0x4f, 0x4f, 0xdd, 0x65, 0x05, 0x52, 0xd7, 0x94, 0xee, 0x5a, 0x77, 0xad, 0xd4, + 0x71, 0x59, 0x8a, 0x82, 0x76, 0x3c, 0x67, 0xee, 0xb2, 0x9b, 0x24, 0x1e, 0x0c, 0xea, 0xd1, 0xbb, + 0xbf, 0x12, 0x69, 0xd7, 0x54, 0x9b, 0x48, 0x3b, 0x22, 0x54, 0x2a, 0x13, 0xdc, 0x38, 0x7a, 0xd6, + 0xd1, 0x40, 0xda, 0xb1, 0x91, 0x58, 0xc6, 0x55, 0x26, 0x78, 0x18, 0xd0, 0xbe, 0x49, 0xdc, 0x44, + 0xe4, 0x2d, 0xb8, 0x2b, 0x75, 0x0c, 0x03, 0x0a, 0xa6, 0x66, 0x85, 0xe9, 0x4b, 0xd3, 0x3c, 0xe3, + 0x18, 0xf2, 0x54, 0xd0, 0x41, 0xdd, 0xf7, 0x40, 0x3a, 0xf7, 0x46, 0xea, 0x19, 0x8a, 0xbe, 0xb6, + 0xf7, 0x50, 0x4b, 0xf2, 0x1e, 0x60, 0x9b, 0xc7, 0x55, 0x2a, 0xca, 0x22, 0x0c, 0xe8, 0xd0, 0x84, + 0x6a, 0x10, 0xf2, 0x11, 0x46, 0xfa, 0xf4, 0x58, 0xae, 0xb3, 0xe4, 0xcf, 0x3a, 0x2e, 0x90, 0x8e, + 0xcc, 0x80, 0x27, 0x4a, 0x3e, 0xc0, 0xd0, 0x92, 0x65, 0x9c, 0xe0, 0x2f, 0xf6, 0x93, 0x8e, 0x8d, + 0xed, 0x25, 0x34, 0xb7, 0x94, 0x67, 0xc8, 0x2b, 0x7b, 0x8a, 0x89, 0x4d, 0xda, 0x40, 0xb3, 0x4f, + 0x30, 0xb8, 0xbf, 0xb7, 0x92, 0x3a, 0x1e, 0x43, 0x75, 0xc9, 0xab, 0x85, 0x38, 0xa0, 0x79, 0x74, + 0x97, 0x35, 0xc8, 0x97, 0xef, 0x30, 0xaa, 0xed, 0x11, 0x96, 0xd7, 0x2c, 0x41, 0xe2, 0x43, 0xb7, + 0x26, 0x64, 0xe2, 0x9b, 0x7d, 0x7a, 0xec, 0xcf, 0xf4, 0xcd, 0x13, 0x51, 0xf2, 0xc7, 0xf8, 0xf7, + 0xd0, 0x37, 0x7b, 0xf7, 0x4d, 0xee, 0x35, 0xdf, 0x77, 0xcc, 0xfe, 0x7d, 0xfd, 0x1f, 0x00, 0x00, + 0xff, 0xff, 0x6b, 0x53, 0xf4, 0xd4, 0x92, 0x02, 0x00, 0x00, } diff --git a/pkg/utils/map.go b/pkg/utils/map.go index fec4da23e..4b8f9fa8d 100644 --- a/pkg/utils/map.go +++ b/pkg/utils/map.go @@ -111,7 +111,7 @@ func MapIntToJsonString(param map[string]int32) string { dataString := string(dataType) return dataString } -func JsonStringToMap(str string) (tempMap map[string]interface{}) { +func JsonStringToMap(str string) (tempMap map[string]int32) { _ = json.Unmarshal([]byte(str), &tempMap) return tempMap } From eabef540cfbf1f9b3497581a0f9c303ad808f37a Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Fri, 10 Dec 2021 10:51:20 +0800 Subject: [PATCH 192/814] pb change --- pkg/proto/chat/chat.pb.go | 293 +++++++++++++++++++------------------- 1 file changed, 143 insertions(+), 150 deletions(-) diff --git a/pkg/proto/chat/chat.pb.go b/pkg/proto/chat/chat.pb.go index 06118c3d1..dfe51b472 100644 --- a/pkg/proto/chat/chat.pb.go +++ b/pkg/proto/chat/chat.pb.go @@ -24,33 +24,33 @@ var _ = math.Inf const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package type WSToMsgSvrChatMsg struct { - SendID string `protobuf:"bytes,1,opt,name=SendID" json:"SendID,omitempty"` - RecvID string `protobuf:"bytes,2,opt,name=RecvID" json:"RecvID,omitempty"` - Content string `protobuf:"bytes,3,opt,name=Content" json:"Content,omitempty"` - SendTime int64 `protobuf:"varint,4,opt,name=SendTime" json:"SendTime,omitempty"` - MsgFrom int32 `protobuf:"varint,5,opt,name=MsgFrom" json:"MsgFrom,omitempty"` - SenderNickName string `protobuf:"bytes,6,opt,name=SenderNickName" json:"SenderNickName,omitempty"` - SenderFaceURL string `protobuf:"bytes,7,opt,name=SenderFaceURL" json:"SenderFaceURL,omitempty"` - ContentType int32 `protobuf:"varint,8,opt,name=ContentType" json:"ContentType,omitempty"` - SessionType int32 `protobuf:"varint,9,opt,name=SessionType" json:"SessionType,omitempty"` - OperationID string `protobuf:"bytes,10,opt,name=OperationID" json:"OperationID,omitempty"` - MsgID string `protobuf:"bytes,11,opt,name=MsgID" json:"MsgID,omitempty"` - Token string `protobuf:"bytes,12,opt,name=Token" json:"Token,omitempty"` - OfflineInfo string `protobuf:"bytes,13,opt,name=OfflineInfo" json:"OfflineInfo,omitempty"` - Options map[string]int32 `protobuf:"bytes,14,rep,name=Options" json:"Options,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` - PlatformID int32 `protobuf:"varint,15,opt,name=PlatformID" json:"PlatformID,omitempty"` - ForceList []string `protobuf:"bytes,16,rep,name=ForceList" json:"ForceList,omitempty"` - ClientMsgID string `protobuf:"bytes,17,opt,name=ClientMsgID" json:"ClientMsgID,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + SendID string `protobuf:"bytes,1,opt,name=SendID" json:"SendID,omitempty"` + RecvID string `protobuf:"bytes,2,opt,name=RecvID" json:"RecvID,omitempty"` + Content string `protobuf:"bytes,3,opt,name=Content" json:"Content,omitempty"` + SendTime int64 `protobuf:"varint,4,opt,name=SendTime" json:"SendTime,omitempty"` + MsgFrom int32 `protobuf:"varint,5,opt,name=MsgFrom" json:"MsgFrom,omitempty"` + SenderNickName string `protobuf:"bytes,6,opt,name=SenderNickName" json:"SenderNickName,omitempty"` + SenderFaceURL string `protobuf:"bytes,7,opt,name=SenderFaceURL" json:"SenderFaceURL,omitempty"` + ContentType int32 `protobuf:"varint,8,opt,name=ContentType" json:"ContentType,omitempty"` + SessionType int32 `protobuf:"varint,9,opt,name=SessionType" json:"SessionType,omitempty"` + OperationID string `protobuf:"bytes,10,opt,name=OperationID" json:"OperationID,omitempty"` + MsgID string `protobuf:"bytes,11,opt,name=MsgID" json:"MsgID,omitempty"` + Token string `protobuf:"bytes,12,opt,name=Token" json:"Token,omitempty"` + OfflineInfo string `protobuf:"bytes,13,opt,name=OfflineInfo" json:"OfflineInfo,omitempty"` + Options string `protobuf:"bytes,14,opt,name=Options" json:"Options,omitempty"` + PlatformID int32 `protobuf:"varint,15,opt,name=PlatformID" json:"PlatformID,omitempty"` + ForceList []string `protobuf:"bytes,16,rep,name=ForceList" json:"ForceList,omitempty"` + ClientMsgID string `protobuf:"bytes,17,opt,name=ClientMsgID" json:"ClientMsgID,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } func (m *WSToMsgSvrChatMsg) Reset() { *m = WSToMsgSvrChatMsg{} } func (m *WSToMsgSvrChatMsg) String() string { return proto.CompactTextString(m) } func (*WSToMsgSvrChatMsg) ProtoMessage() {} func (*WSToMsgSvrChatMsg) Descriptor() ([]byte, []int) { - return fileDescriptor_chat_3707ac912effe95d, []int{0} + return fileDescriptor_chat_163a8d226aa6edb5, []int{0} } func (m *WSToMsgSvrChatMsg) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_WSToMsgSvrChatMsg.Unmarshal(m, b) @@ -161,11 +161,11 @@ func (m *WSToMsgSvrChatMsg) GetOfflineInfo() string { return "" } -func (m *WSToMsgSvrChatMsg) GetOptions() map[string]int32 { +func (m *WSToMsgSvrChatMsg) GetOptions() string { if m != nil { return m.Options } - return nil + return "" } func (m *WSToMsgSvrChatMsg) GetPlatformID() int32 { @@ -190,32 +190,32 @@ func (m *WSToMsgSvrChatMsg) GetClientMsgID() string { } type MsgSvrToPushSvrChatMsg struct { - SendID string `protobuf:"bytes,1,opt,name=SendID" json:"SendID,omitempty"` - RecvID string `protobuf:"bytes,2,opt,name=RecvID" json:"RecvID,omitempty"` - Content string `protobuf:"bytes,3,opt,name=Content" json:"Content,omitempty"` - RecvSeq int64 `protobuf:"varint,4,opt,name=RecvSeq" json:"RecvSeq,omitempty"` - SendTime int64 `protobuf:"varint,5,opt,name=SendTime" json:"SendTime,omitempty"` - MsgFrom int32 `protobuf:"varint,6,opt,name=MsgFrom" json:"MsgFrom,omitempty"` - SenderNickName string `protobuf:"bytes,7,opt,name=SenderNickName" json:"SenderNickName,omitempty"` - SenderFaceURL string `protobuf:"bytes,8,opt,name=SenderFaceURL" json:"SenderFaceURL,omitempty"` - ContentType int32 `protobuf:"varint,9,opt,name=ContentType" json:"ContentType,omitempty"` - SessionType int32 `protobuf:"varint,10,opt,name=SessionType" json:"SessionType,omitempty"` - OperationID string `protobuf:"bytes,11,opt,name=OperationID" json:"OperationID,omitempty"` - MsgID string `protobuf:"bytes,12,opt,name=MsgID" json:"MsgID,omitempty"` - OfflineInfo string `protobuf:"bytes,13,opt,name=OfflineInfo" json:"OfflineInfo,omitempty"` - Options map[string]int32 `protobuf:"bytes,14,rep,name=Options" json:"Options,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` - PlatformID int32 `protobuf:"varint,15,opt,name=PlatformID" json:"PlatformID,omitempty"` - ClientMsgID string `protobuf:"bytes,16,opt,name=ClientMsgID" json:"ClientMsgID,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + SendID string `protobuf:"bytes,1,opt,name=SendID" json:"SendID,omitempty"` + RecvID string `protobuf:"bytes,2,opt,name=RecvID" json:"RecvID,omitempty"` + Content string `protobuf:"bytes,3,opt,name=Content" json:"Content,omitempty"` + RecvSeq int64 `protobuf:"varint,4,opt,name=RecvSeq" json:"RecvSeq,omitempty"` + SendTime int64 `protobuf:"varint,5,opt,name=SendTime" json:"SendTime,omitempty"` + MsgFrom int32 `protobuf:"varint,6,opt,name=MsgFrom" json:"MsgFrom,omitempty"` + SenderNickName string `protobuf:"bytes,7,opt,name=SenderNickName" json:"SenderNickName,omitempty"` + SenderFaceURL string `protobuf:"bytes,8,opt,name=SenderFaceURL" json:"SenderFaceURL,omitempty"` + ContentType int32 `protobuf:"varint,9,opt,name=ContentType" json:"ContentType,omitempty"` + SessionType int32 `protobuf:"varint,10,opt,name=SessionType" json:"SessionType,omitempty"` + OperationID string `protobuf:"bytes,11,opt,name=OperationID" json:"OperationID,omitempty"` + MsgID string `protobuf:"bytes,12,opt,name=MsgID" json:"MsgID,omitempty"` + OfflineInfo string `protobuf:"bytes,13,opt,name=OfflineInfo" json:"OfflineInfo,omitempty"` + Options string `protobuf:"bytes,14,opt,name=Options" json:"Options,omitempty"` + PlatformID int32 `protobuf:"varint,15,opt,name=PlatformID" json:"PlatformID,omitempty"` + ClientMsgID string `protobuf:"bytes,16,opt,name=ClientMsgID" json:"ClientMsgID,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } func (m *MsgSvrToPushSvrChatMsg) Reset() { *m = MsgSvrToPushSvrChatMsg{} } func (m *MsgSvrToPushSvrChatMsg) String() string { return proto.CompactTextString(m) } func (*MsgSvrToPushSvrChatMsg) ProtoMessage() {} func (*MsgSvrToPushSvrChatMsg) Descriptor() ([]byte, []int) { - return fileDescriptor_chat_3707ac912effe95d, []int{1} + return fileDescriptor_chat_163a8d226aa6edb5, []int{1} } func (m *MsgSvrToPushSvrChatMsg) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MsgSvrToPushSvrChatMsg.Unmarshal(m, b) @@ -326,11 +326,11 @@ func (m *MsgSvrToPushSvrChatMsg) GetOfflineInfo() string { return "" } -func (m *MsgSvrToPushSvrChatMsg) GetOptions() map[string]int32 { +func (m *MsgSvrToPushSvrChatMsg) GetOptions() string { if m != nil { return m.Options } - return nil + return "" } func (m *MsgSvrToPushSvrChatMsg) GetPlatformID() int32 { @@ -361,7 +361,7 @@ func (m *PullMessageReq) Reset() { *m = PullMessageReq{} } func (m *PullMessageReq) String() string { return proto.CompactTextString(m) } func (*PullMessageReq) ProtoMessage() {} func (*PullMessageReq) Descriptor() ([]byte, []int) { - return fileDescriptor_chat_3707ac912effe95d, []int{2} + return fileDescriptor_chat_163a8d226aa6edb5, []int{2} } func (m *PullMessageReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_PullMessageReq.Unmarshal(m, b) @@ -425,7 +425,7 @@ func (m *PullMessageResp) Reset() { *m = PullMessageResp{} } func (m *PullMessageResp) String() string { return proto.CompactTextString(m) } func (*PullMessageResp) ProtoMessage() {} func (*PullMessageResp) Descriptor() ([]byte, []int) { - return fileDescriptor_chat_3707ac912effe95d, []int{3} + return fileDescriptor_chat_163a8d226aa6edb5, []int{3} } func (m *PullMessageResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_PullMessageResp.Unmarshal(m, b) @@ -500,7 +500,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_chat_3707ac912effe95d, []int{4} + return fileDescriptor_chat_163a8d226aa6edb5, []int{4} } func (m *PullMessageBySeqListReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_PullMessageBySeqListReq.Unmarshal(m, b) @@ -553,7 +553,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_chat_3707ac912effe95d, []int{5} + return fileDescriptor_chat_163a8d226aa6edb5, []int{5} } func (m *GetMaxAndMinSeqReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetMaxAndMinSeqReq.Unmarshal(m, b) @@ -601,7 +601,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_chat_3707ac912effe95d, []int{6} + return fileDescriptor_chat_163a8d226aa6edb5, []int{6} } func (m *GetMaxAndMinSeqResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetMaxAndMinSeqResp.Unmarshal(m, b) @@ -663,7 +663,7 @@ func (m *GatherFormat) Reset() { *m = GatherFormat{} } func (m *GatherFormat) String() string { return proto.CompactTextString(m) } func (*GatherFormat) ProtoMessage() {} func (*GatherFormat) Descriptor() ([]byte, []int) { - return fileDescriptor_chat_3707ac912effe95d, []int{7} + return fileDescriptor_chat_163a8d226aa6edb5, []int{7} } func (m *GatherFormat) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GatherFormat.Unmarshal(m, b) @@ -731,7 +731,7 @@ func (m *MsgFormat) Reset() { *m = MsgFormat{} } func (m *MsgFormat) String() string { return proto.CompactTextString(m) } func (*MsgFormat) ProtoMessage() {} func (*MsgFormat) Descriptor() ([]byte, []int) { - return fileDescriptor_chat_3707ac912effe95d, []int{8} + return fileDescriptor_chat_163a8d226aa6edb5, []int{8} } func (m *MsgFormat) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MsgFormat.Unmarshal(m, b) @@ -836,34 +836,34 @@ func (m *MsgFormat) GetClientMsgID() string { } type UserSendMsgReq struct { - ReqIdentifier int32 `protobuf:"varint,1,opt,name=ReqIdentifier" json:"ReqIdentifier,omitempty"` - Token string `protobuf:"bytes,2,opt,name=Token" json:"Token,omitempty"` - SendID string `protobuf:"bytes,3,opt,name=SendID" json:"SendID,omitempty"` - OperationID string `protobuf:"bytes,4,opt,name=OperationID" json:"OperationID,omitempty"` - SenderNickName string `protobuf:"bytes,5,opt,name=SenderNickName" json:"SenderNickName,omitempty"` - SenderFaceURL string `protobuf:"bytes,6,opt,name=SenderFaceURL" json:"SenderFaceURL,omitempty"` - PlatformID int32 `protobuf:"varint,7,opt,name=PlatformID" json:"PlatformID,omitempty"` - SessionType int32 `protobuf:"varint,8,opt,name=SessionType" json:"SessionType,omitempty"` - MsgFrom int32 `protobuf:"varint,9,opt,name=MsgFrom" json:"MsgFrom,omitempty"` - ContentType int32 `protobuf:"varint,10,opt,name=ContentType" json:"ContentType,omitempty"` - RecvID string `protobuf:"bytes,11,opt,name=RecvID" json:"RecvID,omitempty"` - ForceList []string `protobuf:"bytes,12,rep,name=ForceList" json:"ForceList,omitempty"` - Content string `protobuf:"bytes,13,opt,name=Content" json:"Content,omitempty"` - Options map[string]int32 `protobuf:"bytes,14,rep,name=Options" json:"Options,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` - ClientMsgID string `protobuf:"bytes,15,opt,name=ClientMsgID" json:"ClientMsgID,omitempty"` - OffLineInfo string `protobuf:"bytes,16,opt,name=OffLineInfo" json:"OffLineInfo,omitempty"` - Ex string `protobuf:"bytes,17,opt,name=Ex" json:"Ex,omitempty"` - SendTime int64 `protobuf:"varint,18,opt,name=sendTime" json:"sendTime,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + ReqIdentifier int32 `protobuf:"varint,1,opt,name=ReqIdentifier" json:"ReqIdentifier,omitempty"` + Token string `protobuf:"bytes,2,opt,name=Token" json:"Token,omitempty"` + SendID string `protobuf:"bytes,3,opt,name=SendID" json:"SendID,omitempty"` + OperationID string `protobuf:"bytes,4,opt,name=OperationID" json:"OperationID,omitempty"` + SenderNickName string `protobuf:"bytes,5,opt,name=SenderNickName" json:"SenderNickName,omitempty"` + SenderFaceURL string `protobuf:"bytes,6,opt,name=SenderFaceURL" json:"SenderFaceURL,omitempty"` + PlatformID int32 `protobuf:"varint,7,opt,name=PlatformID" json:"PlatformID,omitempty"` + SessionType int32 `protobuf:"varint,8,opt,name=SessionType" json:"SessionType,omitempty"` + MsgFrom int32 `protobuf:"varint,9,opt,name=MsgFrom" json:"MsgFrom,omitempty"` + ContentType int32 `protobuf:"varint,10,opt,name=ContentType" json:"ContentType,omitempty"` + RecvID string `protobuf:"bytes,11,opt,name=RecvID" json:"RecvID,omitempty"` + ForceList []string `protobuf:"bytes,12,rep,name=ForceList" json:"ForceList,omitempty"` + Content string `protobuf:"bytes,13,opt,name=Content" json:"Content,omitempty"` + Options string `protobuf:"bytes,14,opt,name=Options" json:"Options,omitempty"` + ClientMsgID string `protobuf:"bytes,15,opt,name=ClientMsgID" json:"ClientMsgID,omitempty"` + OffLineInfo string `protobuf:"bytes,16,opt,name=OffLineInfo" json:"OffLineInfo,omitempty"` + Ex string `protobuf:"bytes,17,opt,name=Ex" json:"Ex,omitempty"` + SendTime int64 `protobuf:"varint,18,opt,name=sendTime" json:"sendTime,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } func (m *UserSendMsgReq) Reset() { *m = UserSendMsgReq{} } func (m *UserSendMsgReq) String() string { return proto.CompactTextString(m) } func (*UserSendMsgReq) ProtoMessage() {} func (*UserSendMsgReq) Descriptor() ([]byte, []int) { - return fileDescriptor_chat_3707ac912effe95d, []int{9} + return fileDescriptor_chat_163a8d226aa6edb5, []int{9} } func (m *UserSendMsgReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_UserSendMsgReq.Unmarshal(m, b) @@ -974,11 +974,11 @@ func (m *UserSendMsgReq) GetContent() string { return "" } -func (m *UserSendMsgReq) GetOptions() map[string]int32 { +func (m *UserSendMsgReq) GetOptions() string { if m != nil { return m.Options } - return nil + return "" } func (m *UserSendMsgReq) GetClientMsgID() string { @@ -1025,7 +1025,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_chat_3707ac912effe95d, []int{10} + return fileDescriptor_chat_163a8d226aa6edb5, []int{10} } func (m *UserSendMsgResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_UserSendMsgResp.Unmarshal(m, b) @@ -1089,9 +1089,7 @@ func (m *UserSendMsgResp) GetSendTime() int64 { func init() { proto.RegisterType((*WSToMsgSvrChatMsg)(nil), "pbChat.WSToMsgSvrChatMsg") - proto.RegisterMapType((map[string]int32)(nil), "pbChat.WSToMsgSvrChatMsg.OptionsEntry") proto.RegisterType((*MsgSvrToPushSvrChatMsg)(nil), "pbChat.MsgSvrToPushSvrChatMsg") - proto.RegisterMapType((map[string]int32)(nil), "pbChat.MsgSvrToPushSvrChatMsg.OptionsEntry") proto.RegisterType((*PullMessageReq)(nil), "pbChat.PullMessageReq") proto.RegisterType((*PullMessageResp)(nil), "pbChat.PullMessageResp") proto.RegisterType((*PullMessageBySeqListReq)(nil), "pbChat.PullMessageBySeqListReq") @@ -1100,7 +1098,6 @@ func init() { proto.RegisterType((*GatherFormat)(nil), "pbChat.GatherFormat") proto.RegisterType((*MsgFormat)(nil), "pbChat.MsgFormat") proto.RegisterType((*UserSendMsgReq)(nil), "pbChat.UserSendMsgReq") - proto.RegisterMapType((map[string]int32)(nil), "pbChat.UserSendMsgReq.OptionsEntry") proto.RegisterType((*UserSendMsgResp)(nil), "pbChat.UserSendMsgResp") } @@ -1275,74 +1272,70 @@ var _Chat_serviceDesc = grpc.ServiceDesc{ Metadata: "chat/chat.proto", } -func init() { proto.RegisterFile("chat/chat.proto", fileDescriptor_chat_3707ac912effe95d) } - -var fileDescriptor_chat_3707ac912effe95d = []byte{ - // 1049 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0x97, 0xdd, 0x6e, 0xe3, 0x44, - 0x14, 0xc7, 0x15, 0x3b, 0x4e, 0x9a, 0x93, 0xcf, 0x0e, 0x55, 0x77, 0x14, 0x10, 0x44, 0x61, 0x59, - 0x45, 0x20, 0x05, 0x69, 0xb9, 0x59, 0x15, 0xb1, 0x82, 0x36, 0x69, 0x15, 0xd4, 0x74, 0x2b, 0x27, - 0x2b, 0x24, 0xee, 0xbc, 0xc9, 0x24, 0xb5, 0x9a, 0xd8, 0xc9, 0x8c, 0x5b, 0xda, 0x1b, 0xde, 0x80, - 0xb7, 0xe0, 0x65, 0x78, 0x0e, 0xae, 0xb8, 0xe6, 0x1a, 0x09, 0xcd, 0x8c, 0x1d, 0xcf, 0xd8, 0x4e, - 0x53, 0x75, 0x61, 0x6f, 0xaa, 0x9e, 0xe3, 0x33, 0xe3, 0x39, 0xe7, 0xfc, 0xfc, 0x3f, 0x13, 0xa8, - 0x4f, 0xae, 0x9c, 0xe0, 0x6b, 0xfe, 0xa7, 0xbb, 0xa2, 0x7e, 0xe0, 0xa3, 0xc2, 0xea, 0xdd, 0xc9, - 0x95, 0x13, 0xb4, 0xff, 0xce, 0xc3, 0xfe, 0x4f, 0xa3, 0xb1, 0x3f, 0x64, 0xf3, 0xd1, 0x2d, 0xe5, - 0xae, 0x21, 0x9b, 0xa3, 0x43, 0x28, 0x8c, 0x88, 0x37, 0x1d, 0xf4, 0x70, 0xae, 0x95, 0xeb, 0x94, - 0xec, 0xd0, 0xe2, 0x7e, 0x9b, 0x4c, 0x6e, 0x07, 0x3d, 0x6c, 0x48, 0xbf, 0xb4, 0x10, 0x86, 0xe2, - 0x89, 0xef, 0x05, 0xc4, 0x0b, 0xb0, 0x29, 0x1e, 0x44, 0x26, 0x6a, 0xc2, 0x1e, 0x5f, 0x3b, 0x76, - 0x97, 0x04, 0xe7, 0x5b, 0xb9, 0x8e, 0x69, 0x6f, 0x6c, 0xbe, 0x6a, 0xc8, 0xe6, 0xa7, 0xd4, 0x5f, - 0x62, 0xab, 0x95, 0xeb, 0x58, 0x76, 0x64, 0xa2, 0x17, 0x50, 0xe3, 0x51, 0x84, 0x5e, 0xb8, 0x93, - 0xeb, 0x0b, 0x67, 0x49, 0x70, 0x41, 0x6c, 0x9b, 0xf0, 0xa2, 0xe7, 0x50, 0x95, 0x9e, 0x53, 0x67, - 0x42, 0xde, 0xda, 0xe7, 0xb8, 0x28, 0xc2, 0x74, 0x27, 0x6a, 0x41, 0x39, 0x3c, 0xce, 0xf8, 0x7e, - 0x45, 0xf0, 0x9e, 0x78, 0x97, 0xea, 0xe2, 0x11, 0x23, 0xc2, 0x98, 0xeb, 0x7b, 0x22, 0xa2, 0x24, - 0x23, 0x14, 0x17, 0x8f, 0x78, 0xb3, 0x22, 0xd4, 0x09, 0x5c, 0xdf, 0x1b, 0xf4, 0x30, 0x88, 0xf7, - 0xa8, 0x2e, 0x74, 0x00, 0xd6, 0x90, 0xcd, 0x07, 0x3d, 0x5c, 0x16, 0xcf, 0xa4, 0xc1, 0xbd, 0x63, - 0xff, 0x9a, 0x78, 0xb8, 0x22, 0xbd, 0xc2, 0x10, 0xbb, 0xcd, 0x66, 0x0b, 0xd7, 0x23, 0x03, 0x6f, - 0xe6, 0xe3, 0x6a, 0xb8, 0x5b, 0xec, 0x42, 0xdf, 0x43, 0xf1, 0xcd, 0x8a, 0xef, 0xcc, 0x70, 0xad, - 0x65, 0x76, 0xca, 0x2f, 0x5f, 0x74, 0x65, 0xc7, 0xba, 0xa9, 0x6e, 0x75, 0xc3, 0xc0, 0xbe, 0x17, - 0xd0, 0x7b, 0x3b, 0x5a, 0x86, 0x3e, 0x05, 0xb8, 0x5c, 0x38, 0xc1, 0xcc, 0xa7, 0xcb, 0x41, 0x0f, - 0xd7, 0x45, 0x4a, 0x8a, 0x07, 0x7d, 0x02, 0xa5, 0x53, 0x9f, 0x4e, 0xc8, 0xb9, 0xcb, 0x02, 0xdc, - 0x68, 0x99, 0x9d, 0x92, 0x1d, 0x3b, 0x44, 0xcd, 0x16, 0x2e, 0xf1, 0x02, 0x99, 0xd3, 0xbe, 0x3c, - 0xa1, 0xe2, 0x6a, 0x1e, 0x41, 0x45, 0x7d, 0x31, 0x6a, 0x80, 0x79, 0x4d, 0xee, 0x43, 0x60, 0xf8, - 0xbf, 0x3c, 0xf7, 0x5b, 0x67, 0x71, 0x43, 0x04, 0x2c, 0x96, 0x2d, 0x8d, 0x23, 0xe3, 0x55, 0xae, - 0xfd, 0x67, 0x1e, 0x0e, 0x65, 0x0e, 0x63, 0xff, 0xf2, 0x86, 0x5d, 0xfd, 0x2f, 0xe8, 0x61, 0x28, - 0xf2, 0x98, 0x11, 0x59, 0x87, 0xe4, 0x45, 0xa6, 0x06, 0xa5, 0xb5, 0x1d, 0xca, 0xc2, 0x2e, 0x28, - 0x8b, 0x8f, 0x83, 0x72, 0xef, 0x11, 0x50, 0x96, 0x76, 0x42, 0x09, 0x3b, 0xa1, 0x2c, 0x3f, 0x00, - 0x65, 0x45, 0x85, 0x72, 0x37, 0x7e, 0xfd, 0x24, 0x7e, 0x5f, 0x45, 0xf8, 0x65, 0xb7, 0xed, 0x89, - 0x0c, 0x26, 0x28, 0x6b, 0xfc, 0xb7, 0x94, 0xfd, 0x0a, 0xb5, 0xcb, 0x9b, 0xc5, 0x62, 0x48, 0x18, - 0x73, 0xe6, 0xc4, 0x26, 0x6b, 0x0e, 0xd1, 0x5b, 0x46, 0x68, 0x0c, 0x97, 0xb4, 0x24, 0x10, 0xeb, - 0x63, 0x32, 0x77, 0x3d, 0xb1, 0x8d, 0x00, 0x42, 0xda, 0x12, 0xc8, 0x75, 0xdf, 0x9b, 0x0a, 0xbe, - 0x4c, 0x3b, 0xb4, 0x92, 0xc5, 0xcf, 0xa7, 0x8a, 0xdf, 0xfe, 0x2b, 0x07, 0x75, 0xed, 0x00, 0x6c, - 0xc5, 0xf1, 0xea, 0x53, 0x7a, 0xe2, 0x4f, 0x89, 0x38, 0x82, 0x65, 0x47, 0x26, 0x7f, 0x4f, 0x9f, - 0xd2, 0x21, 0x9b, 0x47, 0x80, 0x4b, 0x8b, 0xfb, 0x87, 0xce, 0x1d, 0xa7, 0x38, 0x7c, 0xbf, 0xb4, - 0x84, 0xdf, 0xf5, 0x62, 0xba, 0x43, 0x0b, 0x1d, 0x41, 0x75, 0xe4, 0x7a, 0xf3, 0x05, 0xe1, 0xb9, - 0xf1, 0xed, 0x2c, 0xd1, 0xc0, 0x83, 0xa8, 0x81, 0x67, 0x4e, 0x70, 0x45, 0xe8, 0xa9, 0x4f, 0x97, - 0x4e, 0x60, 0xeb, 0xa1, 0xe8, 0x15, 0x54, 0xce, 0xa8, 0x7f, 0xb3, 0x8a, 0x96, 0x16, 0x1e, 0x58, - 0xaa, 0x45, 0xb6, 0x97, 0xf0, 0x4c, 0x49, 0xf5, 0xf8, 0x7e, 0x44, 0xd6, 0x5c, 0x47, 0x1e, 0x2a, - 0x7a, 0xa2, 0x80, 0x46, 0x9a, 0x5e, 0x0c, 0x45, 0x26, 0xf7, 0xc1, 0x66, 0xcb, 0xe4, 0x5f, 0x70, - 0x68, 0xb6, 0x2f, 0x00, 0x9d, 0x91, 0x60, 0xe8, 0xdc, 0xfd, 0xe0, 0x4d, 0x65, 0xde, 0xef, 0xf5, - 0xa6, 0xf6, 0x2f, 0xf0, 0x51, 0x6a, 0xbf, 0x0f, 0xd1, 0xad, 0x76, 0x1f, 0x2a, 0x6a, 0x55, 0x51, - 0x0d, 0x8c, 0xcd, 0xf1, 0x8d, 0x41, 0x0f, 0x7d, 0x01, 0x79, 0x91, 0xbf, 0x21, 0x3a, 0xb1, 0xaf, - 0x7c, 0x85, 0x61, 0x1b, 0xc4, 0xe3, 0xf6, 0x3f, 0x06, 0x94, 0x36, 0xbe, 0xa7, 0x68, 0x68, 0xa4, - 0x79, 0xa6, 0xae, 0x79, 0x09, 0x95, 0xca, 0x6f, 0x51, 0x29, 0x7a, 0x2b, 0x28, 0x18, 0xf4, 0x84, - 0x9c, 0x96, 0x6c, 0xd5, 0xa5, 0x2a, 0x74, 0x41, 0x57, 0xe8, 0x06, 0x98, 0xbc, 0x22, 0x45, 0x51, - 0x11, 0x33, 0xa9, 0xcc, 0x7b, 0x09, 0x65, 0xfe, 0x12, 0x1a, 0x52, 0x42, 0x15, 0x49, 0x91, 0xb2, - 0x99, 0xf2, 0x67, 0x68, 0x35, 0x3c, 0x4e, 0xab, 0xcb, 0xdb, 0xb4, 0x5a, 0x91, 0xa9, 0x4a, 0x4a, - 0xa6, 0xda, 0xbf, 0x59, 0x50, 0xe3, 0xb0, 0xf1, 0x75, 0x43, 0x36, 0xe7, 0x30, 0x3e, 0x87, 0xaa, - 0x4d, 0xd6, 0x83, 0x29, 0xf1, 0x02, 0x77, 0xe6, 0x12, 0x1a, 0x12, 0xa4, 0x3b, 0xe3, 0xfb, 0x81, - 0xa1, 0xde, 0x0f, 0xe2, 0x06, 0x9a, 0x5a, 0x03, 0x77, 0x6a, 0x4e, 0x46, 0xe2, 0xd6, 0xe3, 0x12, - 0x2f, 0x64, 0x25, 0xae, 0xeb, 0x77, 0x31, 0x4b, 0xbf, 0xd5, 0x11, 0xb5, 0x97, 0x1e, 0x51, 0x0a, - 0x5a, 0xa5, 0x07, 0xd1, 0x82, 0x34, 0x5a, 0x31, 0xae, 0x65, 0x0d, 0x57, 0xed, 0xe6, 0x52, 0x49, - 0xde, 0x5c, 0x14, 0xdc, 0xaa, 0x3a, 0x6e, 0xdf, 0x25, 0x87, 0xda, 0xe7, 0xd1, 0xe7, 0xa4, 0xb7, - 0x6e, 0xcb, 0x30, 0x4b, 0x50, 0x50, 0x4f, 0x51, 0x10, 0xce, 0xd5, 0xf3, 0x68, 0xae, 0x36, 0x36, - 0x73, 0x35, 0x72, 0xf1, 0xcf, 0xbb, 0x7f, 0x17, 0xde, 0xa6, 0x8c, 0xfe, 0x1d, 0xe7, 0x9d, 0x45, - 0xbc, 0x23, 0xc9, 0x7b, 0x64, 0xbf, 0xd7, 0xe8, 0xfb, 0x23, 0x07, 0x75, 0x2d, 0xa9, 0x27, 0x89, - 0x59, 0x0a, 0x61, 0x33, 0x0b, 0xe1, 0x84, 0x02, 0xe4, 0xd3, 0x0a, 0x90, 0xa8, 0x9c, 0x95, 0xae, - 0x9c, 0x5a, 0x87, 0x82, 0x5e, 0x87, 0x97, 0xbf, 0x1b, 0x90, 0xe7, 0x5d, 0x42, 0x3f, 0x42, 0x3d, - 0x21, 0xd2, 0xa8, 0xb9, 0x19, 0x4d, 0xa9, 0x69, 0xd0, 0xfc, 0x78, 0xeb, 0x33, 0xb6, 0x42, 0xaf, - 0xa1, 0xac, 0xcc, 0x2b, 0x74, 0x18, 0xc5, 0xea, 0x17, 0x86, 0xe6, 0xb3, 0x4c, 0x3f, 0x5b, 0xa1, - 0x4b, 0x38, 0xc8, 0x9a, 0x77, 0xe8, 0xb3, 0x8c, 0x05, 0xea, 0x34, 0xdc, 0xbe, 0xe3, 0x6b, 0x28, - 0x2b, 0x1d, 0x8b, 0x4f, 0xa4, 0xb3, 0x19, 0xaf, 0x4f, 0xb4, 0xf7, 0xb8, 0xfe, 0x73, 0xb5, 0x2b, - 0x7e, 0xe1, 0x7d, 0x2b, 0x03, 0xde, 0x15, 0xc4, 0x2f, 0xbd, 0x6f, 0xfe, 0x0d, 0x00, 0x00, 0xff, - 0xff, 0xa2, 0x9b, 0xc2, 0xf2, 0xfc, 0x0d, 0x00, 0x00, +func init() { proto.RegisterFile("chat/chat.proto", fileDescriptor_chat_163a8d226aa6edb5) } + +var fileDescriptor_chat_163a8d226aa6edb5 = []byte{ + // 981 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0x57, 0xdd, 0x6a, 0xe3, 0x46, + 0x14, 0xc6, 0x92, 0x2d, 0xdb, 0xc7, 0xbf, 0x99, 0x86, 0xec, 0x90, 0x96, 0xd6, 0x88, 0x6d, 0x31, + 0xbd, 0x48, 0x61, 0x7b, 0x53, 0x5a, 0x58, 0x68, 0x62, 0x27, 0xa8, 0x44, 0xd9, 0x20, 0x7b, 0x29, + 0xf4, 0x4e, 0x6b, 0x8f, 0x15, 0xb1, 0xb6, 0x24, 0xcf, 0x28, 0x69, 0xf6, 0xa6, 0xaf, 0xd0, 0x97, + 0xe8, 0x65, 0x5f, 0xa4, 0x8f, 0xd2, 0x57, 0x28, 0x14, 0xca, 0xcc, 0x48, 0xd6, 0xe8, 0xc7, 0x49, + 0xd8, 0xb2, 0x7b, 0x13, 0x38, 0x9f, 0xce, 0xfc, 0x9c, 0xf3, 0x7d, 0xf3, 0x1d, 0x07, 0x06, 0x8b, + 0x1b, 0x37, 0xfe, 0x86, 0xff, 0x39, 0x89, 0x68, 0x18, 0x87, 0xc8, 0x88, 0xde, 0x9c, 0xdd, 0xb8, + 0xb1, 0xf9, 0x7b, 0x1d, 0x0e, 0x7e, 0x9e, 0xcd, 0x43, 0x9b, 0x79, 0xb3, 0x3b, 0xca, 0x21, 0x9b, + 0x79, 0xe8, 0x08, 0x8c, 0x19, 0x09, 0x96, 0xd6, 0x04, 0xd7, 0x46, 0xb5, 0x71, 0xdb, 0x49, 0x22, + 0x8e, 0x3b, 0x64, 0x71, 0x67, 0x4d, 0xb0, 0x26, 0x71, 0x19, 0x21, 0x0c, 0xcd, 0xb3, 0x30, 0x88, + 0x49, 0x10, 0x63, 0x5d, 0x7c, 0x48, 0x43, 0x74, 0x0c, 0x2d, 0xbe, 0x76, 0xee, 0x6f, 0x08, 0xae, + 0x8f, 0x6a, 0x63, 0xdd, 0xd9, 0xc5, 0x7c, 0x95, 0xcd, 0xbc, 0x73, 0x1a, 0x6e, 0x70, 0x63, 0x54, + 0x1b, 0x37, 0x9c, 0x34, 0x44, 0x5f, 0x41, 0x9f, 0x67, 0x11, 0x7a, 0xe5, 0x2f, 0xde, 0x5e, 0xb9, + 0x1b, 0x82, 0x0d, 0xb1, 0x6d, 0x01, 0x45, 0xcf, 0xa1, 0x27, 0x91, 0x73, 0x77, 0x41, 0x5e, 0x3b, + 0x97, 0xb8, 0x29, 0xd2, 0xf2, 0x20, 0x1a, 0x41, 0x27, 0xb9, 0xce, 0xfc, 0x5d, 0x44, 0x70, 0x4b, + 0x9c, 0xa5, 0x42, 0x3c, 0x63, 0x46, 0x18, 0xf3, 0xc3, 0x40, 0x64, 0xb4, 0x65, 0x86, 0x02, 0xf1, + 0x8c, 0x57, 0x11, 0xa1, 0x6e, 0xec, 0x87, 0x81, 0x35, 0xc1, 0x20, 0xce, 0x51, 0x21, 0x74, 0x08, + 0x0d, 0x9b, 0x79, 0xd6, 0x04, 0x77, 0xc4, 0x37, 0x19, 0x70, 0x74, 0x1e, 0xbe, 0x25, 0x01, 0xee, + 0x4a, 0x54, 0x04, 0x62, 0xb7, 0xd5, 0x6a, 0xed, 0x07, 0xc4, 0x0a, 0x56, 0x21, 0xee, 0x25, 0xbb, + 0x65, 0x10, 0xef, 0xcd, 0xab, 0x88, 0xef, 0xcc, 0x70, 0x5f, 0x76, 0x34, 0x09, 0xd1, 0xe7, 0x00, + 0xd7, 0x6b, 0x37, 0x5e, 0x85, 0x74, 0x63, 0x4d, 0xf0, 0x40, 0x5c, 0x55, 0x41, 0xd0, 0x67, 0xd0, + 0x3e, 0x0f, 0xe9, 0x82, 0x5c, 0xfa, 0x2c, 0xc6, 0xc3, 0x91, 0x3e, 0x6e, 0x3b, 0x19, 0x20, 0x7a, + 0xb1, 0xf6, 0x49, 0x10, 0xcb, 0xbb, 0x1e, 0xc8, 0x93, 0x15, 0xc8, 0xfc, 0x47, 0x87, 0x23, 0xa9, + 0x86, 0x79, 0x78, 0x7d, 0xcb, 0x6e, 0x3e, 0x88, 0x2c, 0x30, 0x34, 0x79, 0xce, 0x8c, 0x6c, 0x13, + 0x55, 0xa4, 0x61, 0x4e, 0x30, 0x8d, 0xfd, 0x82, 0x31, 0x1e, 0x13, 0x4c, 0xf3, 0x69, 0x82, 0x69, + 0x3d, 0x41, 0x30, 0xed, 0x47, 0x05, 0x03, 0x8f, 0x0a, 0xa6, 0xf3, 0x80, 0x60, 0xba, 0xaa, 0x60, + 0x3e, 0xa4, 0x34, 0x0a, 0xe4, 0x0f, 0xcb, 0xe4, 0xff, 0x06, 0xfd, 0xeb, 0xdb, 0xf5, 0xda, 0x26, + 0x8c, 0xb9, 0x1e, 0x71, 0xc8, 0x96, 0x73, 0xfb, 0x9a, 0x11, 0x9a, 0x71, 0x2e, 0x23, 0xc9, 0xd3, + 0xf6, 0x94, 0x78, 0x7e, 0x20, 0x58, 0x17, 0x3c, 0xc9, 0x58, 0xea, 0x64, 0x3b, 0x0d, 0x96, 0x82, + 0x76, 0xdd, 0x49, 0xa2, 0x62, 0x4f, 0xea, 0xa5, 0x9e, 0x98, 0x7f, 0xd7, 0x60, 0x90, 0xbb, 0x00, + 0x8b, 0x78, 0xbd, 0x53, 0x4a, 0xcf, 0xc2, 0x25, 0x11, 0x57, 0x68, 0x38, 0x69, 0xc8, 0xcf, 0x99, + 0x52, 0x6a, 0x33, 0x2f, 0xd5, 0x9d, 0x8c, 0x38, 0x6e, 0xbb, 0xf7, 0x5c, 0x5c, 0xc9, 0xf9, 0x32, + 0x12, 0xb8, 0x1f, 0x64, 0xa2, 0x4b, 0x22, 0xf4, 0x3d, 0xf4, 0x66, 0x7e, 0xe0, 0xad, 0x09, 0xaf, + 0x8d, 0x6f, 0xd7, 0x18, 0xe9, 0xe3, 0xce, 0x8b, 0xc3, 0x13, 0x69, 0x92, 0x27, 0x17, 0x6e, 0x7c, + 0x43, 0xe8, 0x79, 0x48, 0x37, 0x6e, 0xec, 0xe4, 0x53, 0xd1, 0x77, 0xd0, 0xbd, 0xa0, 0xe1, 0x6d, + 0x94, 0x2e, 0x35, 0x1e, 0x58, 0x9a, 0xcb, 0x34, 0x37, 0xf0, 0x4c, 0x29, 0xf5, 0xf4, 0xdd, 0x8c, + 0x6c, 0xf9, 0x13, 0x7d, 0xa8, 0xe9, 0x85, 0x06, 0x6a, 0x65, 0x51, 0x61, 0x68, 0x32, 0xb9, 0x0f, + 0xd6, 0x47, 0x3a, 0x7f, 0x58, 0x49, 0x68, 0x5e, 0x01, 0xba, 0x20, 0xb1, 0xed, 0xde, 0xff, 0x18, + 0x2c, 0x65, 0xdd, 0xff, 0xeb, 0x24, 0xf3, 0x57, 0xf8, 0xa4, 0xb4, 0xdf, 0xc7, 0x60, 0xcb, 0x9c, + 0x42, 0x57, 0xed, 0x2a, 0xea, 0x83, 0xb6, 0xbb, 0xbe, 0x66, 0x4d, 0xd0, 0x97, 0x50, 0x17, 0xf5, + 0x6b, 0x82, 0x89, 0x83, 0x94, 0x09, 0x6e, 0x15, 0x92, 0x06, 0xf1, 0xd9, 0xfc, 0x57, 0x83, 0xf6, + 0x0e, 0x7b, 0x1f, 0x6b, 0x4b, 0xad, 0x48, 0xcf, 0x5b, 0x51, 0xc1, 0x3c, 0xea, 0x7b, 0xcc, 0x83, + 0xde, 0x09, 0x15, 0x58, 0x13, 0xe1, 0x72, 0x6d, 0x47, 0x85, 0x54, 0xe3, 0x34, 0xf2, 0xc6, 0x39, + 0x04, 0x9d, 0x77, 0xa4, 0x29, 0x3a, 0xa2, 0x17, 0x0d, 0xb3, 0x55, 0x30, 0xcc, 0xaf, 0x61, 0x28, + 0x9d, 0x4d, 0xb1, 0x05, 0xe9, 0x66, 0x25, 0xbc, 0xc2, 0x42, 0xe1, 0x69, 0x16, 0xda, 0xd9, 0x67, + 0xa1, 0x8a, 0xd5, 0x74, 0xcb, 0x56, 0xf3, 0x67, 0x1d, 0xfa, 0x5c, 0x6c, 0x7c, 0x9d, 0xcd, 0x3c, + 0x2e, 0xc6, 0xe7, 0xd0, 0x73, 0xc8, 0xd6, 0x5a, 0x92, 0x20, 0xf6, 0x57, 0x3e, 0xa1, 0x89, 0x82, + 0xf2, 0x60, 0x36, 0x52, 0x35, 0x75, 0xa4, 0x66, 0x04, 0xea, 0x39, 0x02, 0x1f, 0xf5, 0x9c, 0x8a, + 0xc2, 0x1b, 0x4f, 0x2b, 0xdc, 0xa8, 0x2a, 0x3c, 0xef, 0xc1, 0xcd, 0x2a, 0x0f, 0x56, 0x27, 0x47, + 0xab, 0x3c, 0x39, 0x14, 0x69, 0xb5, 0x1f, 0x94, 0x16, 0x94, 0xa5, 0x95, 0xc9, 0xb5, 0x93, 0x93, + 0x6b, 0xee, 0x47, 0x41, 0xb7, 0xf8, 0xa3, 0x40, 0x91, 0x5b, 0xaf, 0x34, 0xa7, 0xf7, 0xcc, 0x9a, + 0x02, 0xc1, 0x83, 0x12, 0xc1, 0xc9, 0x24, 0xbb, 0x4c, 0x27, 0xd9, 0x70, 0x37, 0xc9, 0x52, 0x88, + 0xbf, 0xdc, 0xe9, 0x7d, 0xf2, 0x1b, 0x44, 0x9b, 0xde, 0x73, 0x29, 0xb3, 0x54, 0xca, 0x48, 0x4a, + 0x39, 0x8d, 0xcd, 0xbf, 0x6a, 0x30, 0xc8, 0xc9, 0xe5, 0xbd, 0xbc, 0xa6, 0xa4, 0x30, 0xbd, 0x4a, + 0x61, 0x85, 0x07, 0x5a, 0x2f, 0x3f, 0xd0, 0x42, 0xf5, 0x8d, 0x72, 0xf5, 0x6a, 0x2d, 0x46, 0xbe, + 0x96, 0x17, 0x7f, 0x68, 0x50, 0xe7, 0x9e, 0x84, 0x7e, 0x82, 0x41, 0xc1, 0x43, 0xd1, 0xf1, 0x6e, + 0x72, 0x94, 0xcc, 0xfa, 0xf8, 0xd3, 0xbd, 0xdf, 0x58, 0x84, 0x5e, 0x42, 0x47, 0x19, 0x27, 0xe8, + 0x28, 0xcd, 0xcd, 0xcf, 0xf3, 0xe3, 0x67, 0x95, 0x38, 0x8b, 0xd0, 0x35, 0x1c, 0x56, 0x8d, 0x23, + 0xf4, 0x45, 0xc5, 0x02, 0x75, 0x58, 0xed, 0xdf, 0xf1, 0x25, 0x74, 0x14, 0xc6, 0xb2, 0x1b, 0xe5, + 0x5f, 0x7d, 0xb6, 0xbe, 0x40, 0xef, 0xe9, 0xe0, 0x97, 0xde, 0x89, 0xf8, 0x9f, 0xe5, 0x07, 0x99, + 0xf0, 0xc6, 0x10, 0xff, 0xbb, 0x7c, 0xfb, 0x5f, 0x00, 0x00, 0x00, 0xff, 0xff, 0xc2, 0x44, 0x4e, + 0x52, 0xce, 0x0c, 0x00, 0x00, } From 776fa2f4f6252523c8ddc437fedbcf1b70e473f2 Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Fri, 10 Dec 2021 11:04:05 +0800 Subject: [PATCH 193/814] pb change --- internal/push/logic/push_rpc_server.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/internal/push/logic/push_rpc_server.go b/internal/push/logic/push_rpc_server.go index ca0e93880..570f5c28b 100644 --- a/internal/push/logic/push_rpc_server.go +++ b/internal/push/logic/push_rpc_server.go @@ -65,7 +65,7 @@ func (r *RPCServer) PushMsg(_ context.Context, pbData *pbPush.PushMsgReq) (*pbPu sendPbData.PlatformID = pbData.PlatformID sendPbData.RecvSeq = pbData.RecvSeq //Call push module to send message to the user - MsgToUser(&sendPbData, pbData.OfflineInfo, pbData.Options) + MsgToUser(&sendPbData, pbData.OfflineInfo, utils.JsonStringToMap(pbData.Options)) return &pbPush.PushMsgResp{ ResultCode: 0, }, nil From 2ace964573e35f7d4279cc570c679c6e4c37990e Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Fri, 10 Dec 2021 11:07:44 +0800 Subject: [PATCH 194/814] pb: open_im_sdk.OfflinePushInfo --- internal/rpc/chat/send_msg.go | 3 +- pkg/proto/sdk_ws/ws.pb.go | 181 ++++++++++++++++++++++------------ pkg/proto/sdk_ws/ws.proto | 6 ++ 3 files changed, 127 insertions(+), 63 deletions(-) diff --git a/internal/rpc/chat/send_msg.go b/internal/rpc/chat/send_msg.go index cc9e56177..69022b3e1 100644 --- a/internal/rpc/chat/send_msg.go +++ b/internal/rpc/chat/send_msg.go @@ -11,6 +11,7 @@ import ( "Open_IM/pkg/grpc-etcdv3/getcdv3" pbChat "Open_IM/pkg/proto/chat" pbGroup "Open_IM/pkg/proto/group" + open_im_sdk "Open_IM/pkg/proto/sdk_ws" "Open_IM/pkg/utils" "context" "encoding/json" @@ -202,7 +203,7 @@ type WSToMsgSvrChatMsg struct { OperationID string `protobuf:"bytes,10,opt,name=OperationID" json:"OperationID,omitempty"` } -func Notification(m *WSToMsgSvrChatMsg, onlineUserOnly bool, offlineInfo interface{}) { +func Notification(m *WSToMsgSvrChatMsg, onlineUserOnly bool, offlineInfo open_im_sdk.OfflinePushInfo) { } func (rpc *rpcChat) sendMsgToKafka(m *pbChat.WSToMsgSvrChatMsg, key string) error { diff --git a/pkg/proto/sdk_ws/ws.pb.go b/pkg/proto/sdk_ws/ws.pb.go index effde5aa0..573046eb9 100644 --- a/pkg/proto/sdk_ws/ws.pb.go +++ b/pkg/proto/sdk_ws/ws.pb.go @@ -32,7 +32,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_f143de4f947df40f, []int{0} + return fileDescriptor_ws_ff6df30c494aaf36, []int{0} } func (m *PullMessageBySeqListResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_PullMessageBySeqListResp.Unmarshal(m, b) @@ -91,7 +91,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_f143de4f947df40f, []int{1} + return fileDescriptor_ws_ff6df30c494aaf36, []int{1} } func (m *PullMessageBySeqListReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_PullMessageBySeqListReq.Unmarshal(m, b) @@ -128,7 +128,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_f143de4f947df40f, []int{2} + return fileDescriptor_ws_ff6df30c494aaf36, []int{2} } func (m *GetMaxAndMinSeqReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetMaxAndMinSeqReq.Unmarshal(m, b) @@ -160,7 +160,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_f143de4f947df40f, []int{3} + return fileDescriptor_ws_ff6df30c494aaf36, []int{3} } func (m *GetMaxAndMinSeqResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetMaxAndMinSeqResp.Unmarshal(m, b) @@ -208,7 +208,7 @@ func (m *GatherFormat) Reset() { *m = GatherFormat{} } func (m *GatherFormat) String() string { return proto.CompactTextString(m) } func (*GatherFormat) ProtoMessage() {} func (*GatherFormat) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_f143de4f947df40f, []int{4} + return fileDescriptor_ws_ff6df30c494aaf36, []int{4} } func (m *GatherFormat) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GatherFormat.Unmarshal(m, b) @@ -276,7 +276,7 @@ func (m *MsgFormat) Reset() { *m = MsgFormat{} } func (m *MsgFormat) String() string { return proto.CompactTextString(m) } func (*MsgFormat) ProtoMessage() {} func (*MsgFormat) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_f143de4f947df40f, []int{5} + return fileDescriptor_ws_ff6df30c494aaf36, []int{5} } func (m *MsgFormat) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MsgFormat.Unmarshal(m, b) @@ -401,7 +401,7 @@ func (m *UserSendMsgReq) Reset() { *m = UserSendMsgReq{} } func (m *UserSendMsgReq) String() string { return proto.CompactTextString(m) } func (*UserSendMsgReq) ProtoMessage() {} func (*UserSendMsgReq) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_f143de4f947df40f, []int{6} + return fileDescriptor_ws_ff6df30c494aaf36, []int{6} } func (m *UserSendMsgReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_UserSendMsgReq.Unmarshal(m, b) @@ -511,7 +511,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_f143de4f947df40f, []int{7} + return fileDescriptor_ws_ff6df30c494aaf36, []int{7} } func (m *UserSendMsgResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_UserSendMsgResp.Unmarshal(m, b) @@ -575,7 +575,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_f143de4f947df40f, []int{8} + return fileDescriptor_ws_ff6df30c494aaf36, []int{8} } func (m *MsgData) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MsgData.Unmarshal(m, b) @@ -686,6 +686,60 @@ func (m *MsgData) GetClientMsgID() string { return "" } +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"` + Ext string `protobuf:"bytes,3,opt,name=Ext" json:"Ext,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +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_ff6df30c494aaf36, []int{9} +} +func (m *OfflinePushInfo) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_OfflinePushInfo.Unmarshal(m, b) +} +func (m *OfflinePushInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_OfflinePushInfo.Marshal(b, m, deterministic) +} +func (dst *OfflinePushInfo) XXX_Merge(src proto.Message) { + xxx_messageInfo_OfflinePushInfo.Merge(dst, src) +} +func (m *OfflinePushInfo) XXX_Size() int { + return xxx_messageInfo_OfflinePushInfo.Size(m) +} +func (m *OfflinePushInfo) XXX_DiscardUnknown() { + xxx_messageInfo_OfflinePushInfo.DiscardUnknown(m) +} + +var xxx_messageInfo_OfflinePushInfo proto.InternalMessageInfo + +func (m *OfflinePushInfo) GetTitle() string { + if m != nil { + return m.Title + } + return "" +} + +func (m *OfflinePushInfo) GetDesc() string { + if m != nil { + return m.Desc + } + return "" +} + +func (m *OfflinePushInfo) GetExt() string { + if m != nil { + return m.Ext + } + return "" +} + func init() { proto.RegisterType((*PullMessageBySeqListResp)(nil), "open_im_sdk.PullMessageBySeqListResp") proto.RegisterType((*PullMessageBySeqListReq)(nil), "open_im_sdk.PullMessageBySeqListReq") @@ -697,57 +751,60 @@ func init() { proto.RegisterMapType((map[string]int32)(nil), "open_im_sdk.UserSendMsgReq.OptionsEntry") proto.RegisterType((*UserSendMsgResp)(nil), "open_im_sdk.UserSendMsgResp") proto.RegisterType((*MsgData)(nil), "open_im_sdk.MsgData") -} - -func init() { proto.RegisterFile("sdk_ws/ws.proto", fileDescriptor_ws_f143de4f947df40f) } - -var fileDescriptor_ws_f143de4f947df40f = []byte{ - // 739 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x8c, 0x55, 0x4b, 0x6b, 0xdb, 0x4a, - 0x14, 0x46, 0x52, 0xfc, 0xd0, 0xb1, 0xf3, 0x60, 0x6e, 0xc8, 0xd5, 0x0d, 0x97, 0x8b, 0x11, 0x97, - 0x62, 0xb2, 0x70, 0x20, 0xd9, 0x94, 0x94, 0x52, 0x9a, 0x3a, 0x09, 0x2e, 0x71, 0x1a, 0xc6, 0xc9, - 0xa6, 0x9b, 0xa0, 0xda, 0x53, 0x57, 0xd8, 0x7a, 0x58, 0x47, 0x79, 0xf8, 0xc7, 0xf4, 0x0f, 0x75, - 0xd1, 0x7f, 0x54, 0x28, 0x67, 0x46, 0x72, 0x66, 0x6c, 0xd3, 0x76, 0x37, 0xe7, 0xd3, 0x9c, 0x99, - 0x39, 0xdf, 0x03, 0xc1, 0x36, 0x8e, 0x26, 0x77, 0x8f, 0x78, 0xf8, 0x88, 0x9d, 0x34, 0x4b, 0xf2, - 0x84, 0x35, 0x92, 0x54, 0xc4, 0x77, 0x61, 0x74, 0x87, 0xa3, 0x89, 0xff, 0xcd, 0x02, 0xef, 0xfa, - 0x7e, 0x3a, 0xed, 0x0b, 0xc4, 0x60, 0x2c, 0x4e, 0xe7, 0x03, 0x31, 0xbb, 0x0c, 0x31, 0xe7, 0x02, - 0x53, 0xb6, 0x07, 0xd5, 0x7e, 0xf0, 0x34, 0x10, 0x33, 0xcf, 0x6a, 0x59, 0x6d, 0x87, 0x17, 0x95, - 0xc4, 0xc3, 0x98, 0x70, 0xbb, 0xc0, 0x65, 0xc5, 0xde, 0xc0, 0xe6, 0x20, 0x8c, 0xc7, 0x53, 0x71, - 0x8b, 0x22, 0xeb, 0xe3, 0xd8, 0x73, 0x5a, 0x4e, 0xbb, 0x71, 0xf4, 0x4f, 0x47, 0xbb, 0xb1, 0x73, - 0x11, 0xe4, 0x5f, 0x44, 0x76, 0x9e, 0x64, 0x51, 0x90, 0x73, 0x73, 0x3f, 0x7b, 0x0d, 0xcd, 0x8b, - 0x2c, 0xb9, 0x4f, 0xcb, 0xfe, 0x8d, 0xdf, 0xf5, 0x1b, 0xdb, 0xfd, 0x63, 0xf8, 0x7b, 0xfd, 0x2c, - 0x33, 0xe6, 0x41, 0x0d, 0x55, 0xe5, 0x59, 0x2d, 0xa7, 0xed, 0xf0, 0xb2, 0xf4, 0x77, 0x81, 0x5d, - 0x88, 0xbc, 0x1f, 0x3c, 0xbd, 0x8d, 0x47, 0x6a, 0x0e, 0x2e, 0x66, 0xfe, 0x19, 0xfc, 0xb5, 0x82, - 0x2a, 0x46, 0x22, 0x83, 0x91, 0x68, 0xc1, 0x48, 0x64, 0x30, 0xa2, 0x2a, 0xff, 0x3d, 0x34, 0xf5, - 0xf7, 0xb2, 0x2d, 0xb0, 0x7b, 0x5d, 0xd9, 0xeb, 0x72, 0xbb, 0xd7, 0x65, 0x07, 0xb0, 0x21, 0xdf, - 0x64, 0xcb, 0x41, 0xf7, 0x8c, 0x41, 0xfb, 0x38, 0x2e, 0xa6, 0x94, 0x7b, 0xfc, 0x1f, 0x36, 0xb8, - 0x0b, 0x8c, 0x6e, 0x1c, 0x88, 0x78, 0xb4, 0x38, 0xad, 0xa8, 0x08, 0xe7, 0x62, 0xf8, 0xd0, 0xeb, - 0xca, 0x97, 0xb8, 0xbc, 0xa8, 0x88, 0x00, 0x6a, 0xce, 0x92, 0xc8, 0x73, 0x5a, 0x56, 0xbb, 0xc2, - 0xcb, 0x92, 0xb5, 0xa0, 0xf1, 0x2e, 0x89, 0x73, 0x11, 0xe7, 0x37, 0xf3, 0x54, 0x78, 0x1b, 0xf2, - 0xab, 0x0e, 0xd1, 0x8e, 0x81, 0xc8, 0x1e, 0x24, 0xc9, 0xbd, 0xae, 0x57, 0x91, 0x07, 0xeb, 0x10, - 0x9d, 0x5e, 0x34, 0x78, 0x55, 0xf9, 0xb5, 0x2c, 0xd9, 0x0e, 0x38, 0x44, 0x4b, 0x4d, 0xd2, 0x42, - 0x4b, 0xb6, 0x0f, 0x75, 0x7a, 0xeb, 0x4d, 0x18, 0x09, 0xaf, 0x2e, 0xe1, 0x45, 0xcd, 0x0e, 0x60, - 0x87, 0xd6, 0x22, 0xbb, 0x9e, 0x06, 0xf9, 0xe7, 0x24, 0x8b, 0x7a, 0x5d, 0xcf, 0x95, 0x0f, 0x5a, - 0xc1, 0xd9, 0x0b, 0xd8, 0x52, 0xd8, 0x55, 0x38, 0x9c, 0x5c, 0x05, 0x91, 0xf0, 0x40, 0x5e, 0xbd, - 0x84, 0xb2, 0xff, 0x61, 0x53, 0x21, 0xe7, 0xc1, 0x50, 0xdc, 0xf2, 0x4b, 0xaf, 0x21, 0xb7, 0x99, - 0xa0, 0x64, 0x61, 0x1a, 0x8a, 0x38, 0x57, 0x33, 0x36, 0xd5, 0x8c, 0x1a, 0xe4, 0x7f, 0x77, 0x60, - 0x8b, 0x9c, 0x46, 0x7d, 0x7d, 0x1c, 0x93, 0xab, 0x4e, 0xa1, 0xf6, 0x21, 0xcd, 0xc3, 0x24, 0x46, - 0xe9, 0xaa, 0xc6, 0x51, 0xdb, 0x50, 0xd0, 0xdc, 0xdd, 0x29, 0xb6, 0x9e, 0xc5, 0x79, 0x36, 0xe7, - 0x65, 0xe3, 0x9a, 0x31, 0xec, 0x3f, 0x1b, 0xc3, 0x59, 0x37, 0xc6, 0x7f, 0x00, 0x1a, 0x75, 0x4a, - 0x4b, 0x0d, 0x51, 0x52, 0x22, 0x86, 0x49, 0x2c, 0xc5, 0xae, 0x28, 0xb1, 0x35, 0x48, 0x37, 0x4a, - 0xf5, 0x97, 0x46, 0xa9, 0xad, 0x1a, 0xe5, 0xd9, 0x7c, 0x75, 0xc3, 0x7c, 0xff, 0x82, 0x7b, 0x9e, - 0x64, 0x43, 0x21, 0xbd, 0xee, 0xb6, 0x9c, 0xb6, 0xcb, 0x9f, 0x01, 0xdd, 0x3c, 0x60, 0x9a, 0x67, - 0x49, 0x94, 0xc6, 0x8a, 0x28, 0xfb, 0x27, 0xd0, 0xd4, 0x69, 0x25, 0xbb, 0x4d, 0xc4, 0xbc, 0xc8, - 0x04, 0x2d, 0xd9, 0x2e, 0x54, 0x1e, 0x82, 0xe9, 0xbd, 0xa2, 0xb5, 0xc2, 0x55, 0x71, 0x62, 0xbf, - 0xb4, 0xfc, 0x19, 0x6c, 0x1b, 0x0a, 0x61, 0xba, 0xec, 0x74, 0x6b, 0xd5, 0xe9, 0x4b, 0x4f, 0xb2, - 0x57, 0x9e, 0x44, 0xfe, 0xc6, 0xd2, 0xdf, 0x8e, 0xf2, 0x77, 0x59, 0xfb, 0x5f, 0x1d, 0xc9, 0x6e, - 0x37, 0xc8, 0x03, 0x22, 0x0b, 0x8d, 0x04, 0xe3, 0x22, 0xc1, 0x99, 0x91, 0x60, 0x55, 0xd1, 0xcd, - 0xa8, 0x49, 0xa7, 0x52, 0xac, 0x43, 0x44, 0x64, 0x54, 0x48, 0xa7, 0x94, 0x2f, 0x4b, 0xea, 0x1d, - 0x6a, 0xd2, 0x15, 0xb2, 0x0f, 0xcd, 0x8c, 0xa3, 0x36, 0xb9, 0x4a, 0xb1, 0x0e, 0xd1, 0xe9, 0x45, - 0x83, 0x94, 0xde, 0xe5, 0x65, 0x69, 0x4c, 0x5c, 0x37, 0x27, 0x26, 0x41, 0x50, 0xcc, 0x64, 0x88, - 0x1d, 0x4e, 0x4b, 0xca, 0x38, 0x2e, 0x67, 0x1c, 0x54, 0xc6, 0x71, 0x4d, 0xc6, 0xd1, 0x0c, 0x87, - 0xf2, 0xc0, 0x12, 0x4a, 0xe1, 0x40, 0x23, 0x1c, 0x2a, 0xbf, 0x26, 0x28, 0x59, 0xd0, 0xb4, 0xdb, - 0x54, 0x33, 0x6a, 0xd0, 0xe9, 0xde, 0xc7, 0xdd, 0xce, 0xa1, 0xfa, 0x61, 0xbe, 0xd2, 0x92, 0xfc, - 0xa9, 0x2a, 0x7f, 0x9d, 0xc7, 0x3f, 0x03, 0x00, 0x00, 0xff, 0xff, 0x38, 0x51, 0xff, 0xb4, 0x4d, - 0x07, 0x00, 0x00, + proto.RegisterType((*OfflinePushInfo)(nil), "open_im_sdk.OfflinePushInfo") +} + +func init() { proto.RegisterFile("sdk_ws/ws.proto", fileDescriptor_ws_ff6df30c494aaf36) } + +var fileDescriptor_ws_ff6df30c494aaf36 = []byte{ + // 780 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x8c, 0x55, 0x5b, 0x6b, 0x1a, 0x41, + 0x14, 0xc6, 0x5d, 0x6f, 0x7b, 0x34, 0x17, 0xa6, 0x21, 0xdd, 0x86, 0x52, 0x64, 0x29, 0x45, 0xf2, + 0x60, 0x20, 0x79, 0x29, 0x29, 0xa5, 0x34, 0x35, 0x09, 0x96, 0x98, 0x84, 0x35, 0x79, 0xe9, 0x4b, + 0xd8, 0xea, 0x68, 0x16, 0xf7, 0xa2, 0x7b, 0xd6, 0x24, 0xfe, 0x98, 0xfe, 0xa1, 0x3e, 0xf4, 0x1f, + 0x15, 0xca, 0x99, 0xd9, 0x35, 0x33, 0x2a, 0x6d, 0xdf, 0xe6, 0x7c, 0xce, 0x99, 0x99, 0xf3, 0x5d, + 0x5c, 0xd8, 0xc2, 0xc1, 0xf8, 0xee, 0x11, 0x0f, 0x1e, 0xb1, 0x35, 0x49, 0xe2, 0x34, 0x66, 0xb5, + 0x78, 0xc2, 0xa3, 0x3b, 0x3f, 0xbc, 0xc3, 0xc1, 0xd8, 0xf9, 0x59, 0x00, 0xfb, 0x7a, 0x16, 0x04, + 0x5d, 0x8e, 0xe8, 0x8d, 0xf8, 0xc9, 0xbc, 0xc7, 0xa7, 0x17, 0x3e, 0xa6, 0x2e, 0xc7, 0x09, 0xdb, + 0x85, 0x72, 0xd7, 0x7b, 0xea, 0xf1, 0xa9, 0x5d, 0x68, 0x14, 0x9a, 0xa6, 0x9b, 0x55, 0x02, 0xf7, + 0x23, 0xc2, 0x8d, 0x0c, 0x17, 0x15, 0xfb, 0x04, 0x1b, 0x3d, 0x3f, 0x1a, 0x05, 0xfc, 0x16, 0x79, + 0xd2, 0xc5, 0x91, 0x6d, 0x36, 0xcc, 0x66, 0xed, 0xf0, 0x55, 0x4b, 0xb9, 0xb1, 0x75, 0xee, 0xa5, + 0xf7, 0x3c, 0x39, 0x8b, 0x93, 0xd0, 0x4b, 0x5d, 0x7d, 0x3f, 0xfb, 0x08, 0xf5, 0xf3, 0x24, 0x9e, + 0x4d, 0xf2, 0xfe, 0xe2, 0xbf, 0xfa, 0xb5, 0xed, 0xce, 0x11, 0xbc, 0x5c, 0x3f, 0xcb, 0x94, 0xd9, + 0x50, 0x41, 0x59, 0xd9, 0x85, 0x86, 0xd9, 0x34, 0xdd, 0xbc, 0x74, 0x76, 0x80, 0x9d, 0xf3, 0xb4, + 0xeb, 0x3d, 0x7d, 0x8e, 0x06, 0x72, 0x0e, 0x97, 0x4f, 0x9d, 0x53, 0x78, 0xb1, 0x82, 0x4a, 0x46, + 0x42, 0x8d, 0x91, 0x70, 0xc1, 0x48, 0xa8, 0x31, 0x22, 0x2b, 0xe7, 0x2b, 0xd4, 0xd5, 0xf7, 0xb2, + 0x4d, 0x30, 0x3a, 0x6d, 0xd1, 0x6b, 0xb9, 0x46, 0xa7, 0xcd, 0xf6, 0xa1, 0x28, 0xde, 0x64, 0x88, + 0x41, 0x77, 0xb5, 0x41, 0xbb, 0x38, 0xca, 0xa6, 0x14, 0x7b, 0x9c, 0xdf, 0x06, 0x58, 0x0b, 0x8c, + 0x6e, 0xec, 0xf1, 0x68, 0xb0, 0x38, 0x2d, 0xab, 0x08, 0x77, 0x79, 0xff, 0xa1, 0xd3, 0x16, 0x2f, + 0xb1, 0xdc, 0xac, 0x22, 0x02, 0xa8, 0x39, 0x89, 0x43, 0xdb, 0x6c, 0x14, 0x9a, 0x25, 0x37, 0x2f, + 0x59, 0x03, 0x6a, 0x5f, 0xe2, 0x28, 0xe5, 0x51, 0x7a, 0x33, 0x9f, 0x70, 0xbb, 0x28, 0x7e, 0x55, + 0x21, 0xda, 0xd1, 0xe3, 0xc9, 0x83, 0x20, 0xb9, 0xd3, 0xb6, 0x4b, 0xe2, 0x60, 0x15, 0xa2, 0xd3, + 0xb3, 0x06, 0xbb, 0x2c, 0x7e, 0xcd, 0x4b, 0xb6, 0x0d, 0x26, 0xd1, 0x52, 0x11, 0xb4, 0xd0, 0x92, + 0xed, 0x41, 0x95, 0xde, 0x7a, 0xe3, 0x87, 0xdc, 0xae, 0x0a, 0x78, 0x51, 0xb3, 0x7d, 0xd8, 0xa6, + 0x35, 0x4f, 0xae, 0x03, 0x2f, 0x1d, 0xc6, 0x49, 0xd8, 0x69, 0xdb, 0x96, 0x78, 0xd0, 0x0a, 0xce, + 0xde, 0xc1, 0xa6, 0xc4, 0x2e, 0xfd, 0xfe, 0xf8, 0xd2, 0x0b, 0xb9, 0x0d, 0xe2, 0xea, 0x25, 0x94, + 0xbd, 0x85, 0x0d, 0x89, 0x9c, 0x79, 0x7d, 0x7e, 0xeb, 0x5e, 0xd8, 0x35, 0xb1, 0x4d, 0x07, 0x05, + 0x0b, 0x81, 0xcf, 0xa3, 0x54, 0xce, 0x58, 0x97, 0x33, 0x2a, 0x90, 0xf3, 0xcb, 0x84, 0x4d, 0x72, + 0x1a, 0xf5, 0x75, 0x71, 0x44, 0xae, 0x3a, 0x81, 0xca, 0xd5, 0x24, 0xf5, 0xe3, 0x08, 0x85, 0xab, + 0x6a, 0x87, 0x4d, 0x4d, 0x41, 0x7d, 0x77, 0x2b, 0xdb, 0x7a, 0x1a, 0xa5, 0xc9, 0xdc, 0xcd, 0x1b, + 0xd7, 0x8c, 0x61, 0xfc, 0xdf, 0x18, 0xe6, 0xba, 0x31, 0xde, 0x00, 0x28, 0xd4, 0x49, 0x2d, 0x15, + 0x44, 0x4a, 0x89, 0xe8, 0xc7, 0x91, 0x10, 0xbb, 0x24, 0xc5, 0x56, 0x20, 0xd5, 0x28, 0xe5, 0xbf, + 0x1a, 0xa5, 0xb2, 0x6a, 0x94, 0x67, 0xf3, 0x55, 0x35, 0xf3, 0xbd, 0x06, 0xeb, 0x2c, 0x4e, 0xfa, + 0x5c, 0x78, 0xdd, 0x6a, 0x98, 0x4d, 0xcb, 0x7d, 0x06, 0x54, 0xf3, 0x80, 0x6e, 0x9e, 0x25, 0x51, + 0x6a, 0x2b, 0xa2, 0xec, 0x1d, 0x43, 0x5d, 0xa5, 0x95, 0xec, 0x36, 0xe6, 0xf3, 0x2c, 0x13, 0xb4, + 0x64, 0x3b, 0x50, 0x7a, 0xf0, 0x82, 0x99, 0xa4, 0xb5, 0xe4, 0xca, 0xe2, 0xd8, 0x78, 0x5f, 0x70, + 0xa6, 0xb0, 0xa5, 0x29, 0x84, 0x93, 0x65, 0xa7, 0x17, 0x56, 0x9d, 0xbe, 0xf4, 0x24, 0x63, 0xe5, + 0x49, 0xe4, 0x6f, 0xcc, 0xfd, 0x6d, 0x4a, 0x7f, 0xe7, 0xb5, 0xf3, 0xc3, 0x14, 0xec, 0xb6, 0xbd, + 0xd4, 0x23, 0xb2, 0x50, 0x4b, 0x30, 0x2e, 0x12, 0x9c, 0x68, 0x09, 0x96, 0x15, 0xdd, 0x8c, 0x8a, + 0x74, 0x32, 0xc5, 0x2a, 0x44, 0x44, 0x86, 0x99, 0x74, 0x52, 0xf9, 0xbc, 0xa4, 0xde, 0xbe, 0x22, + 0x5d, 0x26, 0x7b, 0x5f, 0xcf, 0x38, 0x2a, 0x93, 0xcb, 0x14, 0xab, 0x10, 0x9d, 0x9e, 0x35, 0x08, + 0xe9, 0x2d, 0x37, 0x2f, 0xb5, 0x89, 0xab, 0xfa, 0xc4, 0x24, 0x08, 0xf2, 0xa9, 0x08, 0xb1, 0xe9, + 0xd2, 0x92, 0x32, 0x8e, 0xcb, 0x19, 0x07, 0x99, 0x71, 0x5c, 0x93, 0x71, 0xd4, 0xc3, 0x21, 0x3d, + 0xb0, 0x84, 0x52, 0x38, 0x50, 0x0b, 0x87, 0xcc, 0xaf, 0x0e, 0x0a, 0x16, 0x14, 0xed, 0x36, 0xe4, + 0x8c, 0x0a, 0xe4, 0x74, 0x61, 0xeb, 0x6a, 0x38, 0x0c, 0xfc, 0x88, 0x5f, 0xcf, 0xf0, 0xbe, 0x13, + 0x0d, 0x63, 0xf2, 0xcf, 0x8d, 0x9f, 0x06, 0x3c, 0x53, 0x49, 0x16, 0x8c, 0x41, 0xb1, 0xcd, 0xb1, + 0x9f, 0x49, 0x24, 0xd6, 0x34, 0xea, 0xe9, 0x53, 0x9a, 0xe5, 0x92, 0x96, 0x27, 0xbb, 0xdf, 0x76, + 0x5a, 0x07, 0xf2, 0xfb, 0xfb, 0x41, 0xf9, 0x63, 0xf8, 0x5e, 0x16, 0x5f, 0xe2, 0xa3, 0x3f, 0x01, + 0x00, 0x00, 0xff, 0xff, 0xf1, 0x1f, 0x85, 0x3b, 0x9c, 0x07, 0x00, 0x00, } diff --git a/pkg/proto/sdk_ws/ws.proto b/pkg/proto/sdk_ws/ws.proto index 589e97a21..259d726a8 100644 --- a/pkg/proto/sdk_ws/ws.proto +++ b/pkg/proto/sdk_ws/ws.proto @@ -87,3 +87,9 @@ message MsgData { string clientMsgID =13; } +message OfflinePushInfo{ + string Title = 1; + string Desc = 2; + string Ext = 3; +} + From 0ed9aa5372c32175b75e89e0abb88db3c2539e1c Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Fri, 10 Dec 2021 17:00:24 +0800 Subject: [PATCH 195/814] sender message sync --- internal/msg_gateway/gate/rpc_server.go | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/internal/msg_gateway/gate/rpc_server.go b/internal/msg_gateway/gate/rpc_server.go index 7a0632fad..972cf30f4 100644 --- a/internal/msg_gateway/gate/rpc_server.go +++ b/internal/msg_gateway/gate/rpc_server.go @@ -115,6 +115,16 @@ func (r *RPCServer) MsgToUser(_ context.Context, in *pbRelay.MsgToUserReq) (*pbR resp = append(resp, temp) } } + //Single chat sender synchronization message + if in.GetSessionType() == constant.SingleChatType { + userIDList = genUidPlatformArray(in.SendID) + for _, v := range userIDList { + UIDAndPID = strings.Split(v, " ") + if conn := ws.getUserConn(v); conn != nil { + _ = sendMsgToUser(conn, replyBytes.Bytes(), in, UIDAndPID[1], UIDAndPID[0]) + } + } + } if !tag { log.NewError(in.OperationID, "push err ,no matched ws conn not in map", in.String()) } From 59fffc6fbe2034d85315a776f86a8cae9ff23369 Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Fri, 10 Dec 2021 17:18:20 +0800 Subject: [PATCH 196/814] server version update --- config/config.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config/config.yaml b/config/config.yaml index 02dbc6638..e67ac4fee 100644 --- a/config/config.yaml +++ b/config/config.yaml @@ -1,7 +1,7 @@ # The class cannot be named by Pascal or camel case. # If it is not used, the corresponding structure will not be set, # and it will not be read naturally. -serverversion: 1.0.3 +serverversion: 1.0.6 #---------------Infrastructure configuration---------------------# etcd: etcdSchema: openIM From 8b4da904973fc86e2dffc4f901695ebd984b5891 Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Fri, 10 Dec 2021 17:30:11 +0800 Subject: [PATCH 197/814] pb --- internal/rpc/chat/send_msg.go | 11 + pkg/proto/sdk_ws/ws.pb.go | 398 ++++++++++++++++++++++++++++------ pkg/proto/sdk_ws/ws.proto | 33 +++ pkg/utils/utils.go | 11 +- 4 files changed, 380 insertions(+), 73 deletions(-) diff --git a/internal/rpc/chat/send_msg.go b/internal/rpc/chat/send_msg.go index 69022b3e1..d237c2507 100644 --- a/internal/rpc/chat/send_msg.go +++ b/internal/rpc/chat/send_msg.go @@ -203,9 +203,20 @@ type WSToMsgSvrChatMsg struct { OperationID string `protobuf:"bytes,10,opt,name=OperationID" json:"OperationID,omitempty"` } +func CreateGroupNotification(SendID, RecvID string, tip open_im_sdk.CreateGroupTip) { + var msg WSToMsgSvrChatMsg + msg.OperationID = utils.OperationIDGenerator() + msg.SendID = SendID + msg.RecvID = RecvID + msg.ContentType = constant.CreateGroupTip + msg.SessionType = constant.SysMsgType + +} + func Notification(m *WSToMsgSvrChatMsg, onlineUserOnly bool, offlineInfo open_im_sdk.OfflinePushInfo) { } + func (rpc *rpcChat) sendMsgToKafka(m *pbChat.WSToMsgSvrChatMsg, key string) error { pid, offset, err := rpc.producer.SendMessage(m, key) if err != nil { diff --git a/pkg/proto/sdk_ws/ws.pb.go b/pkg/proto/sdk_ws/ws.pb.go index 573046eb9..7e1115f94 100644 --- a/pkg/proto/sdk_ws/ws.pb.go +++ b/pkg/proto/sdk_ws/ws.pb.go @@ -32,7 +32,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_ff6df30c494aaf36, []int{0} + return fileDescriptor_ws_d55c44e342c7a2b5, []int{0} } func (m *PullMessageBySeqListResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_PullMessageBySeqListResp.Unmarshal(m, b) @@ -91,7 +91,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_ff6df30c494aaf36, []int{1} + return fileDescriptor_ws_d55c44e342c7a2b5, []int{1} } func (m *PullMessageBySeqListReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_PullMessageBySeqListReq.Unmarshal(m, b) @@ -128,7 +128,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_ff6df30c494aaf36, []int{2} + return fileDescriptor_ws_d55c44e342c7a2b5, []int{2} } func (m *GetMaxAndMinSeqReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetMaxAndMinSeqReq.Unmarshal(m, b) @@ -160,7 +160,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_ff6df30c494aaf36, []int{3} + return fileDescriptor_ws_d55c44e342c7a2b5, []int{3} } func (m *GetMaxAndMinSeqResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetMaxAndMinSeqResp.Unmarshal(m, b) @@ -208,7 +208,7 @@ func (m *GatherFormat) Reset() { *m = GatherFormat{} } func (m *GatherFormat) String() string { return proto.CompactTextString(m) } func (*GatherFormat) ProtoMessage() {} func (*GatherFormat) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_ff6df30c494aaf36, []int{4} + return fileDescriptor_ws_d55c44e342c7a2b5, []int{4} } func (m *GatherFormat) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GatherFormat.Unmarshal(m, b) @@ -276,7 +276,7 @@ func (m *MsgFormat) Reset() { *m = MsgFormat{} } func (m *MsgFormat) String() string { return proto.CompactTextString(m) } func (*MsgFormat) ProtoMessage() {} func (*MsgFormat) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_ff6df30c494aaf36, []int{5} + return fileDescriptor_ws_d55c44e342c7a2b5, []int{5} } func (m *MsgFormat) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MsgFormat.Unmarshal(m, b) @@ -401,7 +401,7 @@ func (m *UserSendMsgReq) Reset() { *m = UserSendMsgReq{} } func (m *UserSendMsgReq) String() string { return proto.CompactTextString(m) } func (*UserSendMsgReq) ProtoMessage() {} func (*UserSendMsgReq) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_ff6df30c494aaf36, []int{6} + return fileDescriptor_ws_d55c44e342c7a2b5, []int{6} } func (m *UserSendMsgReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_UserSendMsgReq.Unmarshal(m, b) @@ -511,7 +511,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_ff6df30c494aaf36, []int{7} + return fileDescriptor_ws_d55c44e342c7a2b5, []int{7} } func (m *UserSendMsgResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_UserSendMsgResp.Unmarshal(m, b) @@ -575,7 +575,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_ff6df30c494aaf36, []int{8} + return fileDescriptor_ws_d55c44e342c7a2b5, []int{8} } func (m *MsgData) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MsgData.Unmarshal(m, b) @@ -699,7 +699,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_ff6df30c494aaf36, []int{9} + return fileDescriptor_ws_d55c44e342c7a2b5, []int{9} } func (m *OfflinePushInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_OfflinePushInfo.Unmarshal(m, b) @@ -740,6 +740,256 @@ func (m *OfflinePushInfo) GetExt() string { return "" } +type GroupInfoTip struct { + GroupID string `protobuf:"bytes,1,opt,name=GroupID" json:"GroupID,omitempty"` + GroupName string `protobuf:"bytes,2,opt,name=GroupName" json:"GroupName,omitempty"` + Notification string `protobuf:"bytes,3,opt,name=Notification" json:"Notification,omitempty"` + Introduction string `protobuf:"bytes,4,opt,name=Introduction" json:"Introduction,omitempty"` + FaceUrl string `protobuf:"bytes,5,opt,name=FaceUrl" json:"FaceUrl,omitempty"` + Ex string `protobuf:"bytes,6,opt,name=Ex" json:"Ex,omitempty"` + OwnerID string `protobuf:"bytes,7,opt,name=OwnerID" json:"OwnerID,omitempty"` + CreateTime uint64 `protobuf:"varint,8,opt,name=CreateTime" json:"CreateTime,omitempty"` + MemberCount uint32 `protobuf:"varint,9,opt,name=MemberCount" json:"MemberCount,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *GroupInfoTip) Reset() { *m = GroupInfoTip{} } +func (m *GroupInfoTip) String() string { return proto.CompactTextString(m) } +func (*GroupInfoTip) ProtoMessage() {} +func (*GroupInfoTip) Descriptor() ([]byte, []int) { + return fileDescriptor_ws_d55c44e342c7a2b5, []int{10} +} +func (m *GroupInfoTip) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GroupInfoTip.Unmarshal(m, b) +} +func (m *GroupInfoTip) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GroupInfoTip.Marshal(b, m, deterministic) +} +func (dst *GroupInfoTip) XXX_Merge(src proto.Message) { + xxx_messageInfo_GroupInfoTip.Merge(dst, src) +} +func (m *GroupInfoTip) XXX_Size() int { + return xxx_messageInfo_GroupInfoTip.Size(m) +} +func (m *GroupInfoTip) XXX_DiscardUnknown() { + xxx_messageInfo_GroupInfoTip.DiscardUnknown(m) +} + +var xxx_messageInfo_GroupInfoTip proto.InternalMessageInfo + +func (m *GroupInfoTip) GetGroupID() string { + if m != nil { + return m.GroupID + } + return "" +} + +func (m *GroupInfoTip) GetGroupName() string { + if m != nil { + return m.GroupName + } + return "" +} + +func (m *GroupInfoTip) GetNotification() string { + if m != nil { + return m.Notification + } + return "" +} + +func (m *GroupInfoTip) GetIntroduction() string { + if m != nil { + return m.Introduction + } + return "" +} + +func (m *GroupInfoTip) GetFaceUrl() string { + if m != nil { + return m.FaceUrl + } + return "" +} + +func (m *GroupInfoTip) GetEx() string { + if m != nil { + return m.Ex + } + return "" +} + +func (m *GroupInfoTip) GetOwnerID() string { + if m != nil { + return m.OwnerID + } + return "" +} + +func (m *GroupInfoTip) GetCreateTime() uint64 { + if m != nil { + return m.CreateTime + } + return 0 +} + +func (m *GroupInfoTip) GetMemberCount() uint32 { + if m != nil { + return m.MemberCount + } + return 0 +} + +type UserInfoTip struct { + UserID string `protobuf:"bytes,1,opt,name=UserID" json:"UserID,omitempty"` + Name string `protobuf:"bytes,2,opt,name=Name" json:"Name,omitempty"` + Icon string `protobuf:"bytes,3,opt,name=Icon" json:"Icon,omitempty"` + Gender int32 `protobuf:"varint,4,opt,name=Gender" json:"Gender,omitempty"` + Mobile string `protobuf:"bytes,5,opt,name=Mobile" json:"Mobile,omitempty"` + Birth string `protobuf:"bytes,6,opt,name=Birth" json:"Birth,omitempty"` + Email string `protobuf:"bytes,7,opt,name=Email" json:"Email,omitempty"` + Ex string `protobuf:"bytes,8,opt,name=Ex" json:"Ex,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *UserInfoTip) Reset() { *m = UserInfoTip{} } +func (m *UserInfoTip) String() string { return proto.CompactTextString(m) } +func (*UserInfoTip) ProtoMessage() {} +func (*UserInfoTip) Descriptor() ([]byte, []int) { + return fileDescriptor_ws_d55c44e342c7a2b5, []int{11} +} +func (m *UserInfoTip) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_UserInfoTip.Unmarshal(m, b) +} +func (m *UserInfoTip) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_UserInfoTip.Marshal(b, m, deterministic) +} +func (dst *UserInfoTip) XXX_Merge(src proto.Message) { + xxx_messageInfo_UserInfoTip.Merge(dst, src) +} +func (m *UserInfoTip) XXX_Size() int { + return xxx_messageInfo_UserInfoTip.Size(m) +} +func (m *UserInfoTip) XXX_DiscardUnknown() { + xxx_messageInfo_UserInfoTip.DiscardUnknown(m) +} + +var xxx_messageInfo_UserInfoTip proto.InternalMessageInfo + +func (m *UserInfoTip) GetUserID() string { + if m != nil { + return m.UserID + } + return "" +} + +func (m *UserInfoTip) GetName() string { + if m != nil { + return m.Name + } + return "" +} + +func (m *UserInfoTip) GetIcon() string { + if m != nil { + return m.Icon + } + return "" +} + +func (m *UserInfoTip) GetGender() int32 { + if m != nil { + return m.Gender + } + return 0 +} + +func (m *UserInfoTip) GetMobile() string { + if m != nil { + return m.Mobile + } + return "" +} + +func (m *UserInfoTip) GetBirth() string { + if m != nil { + return m.Birth + } + return "" +} + +func (m *UserInfoTip) GetEmail() string { + if m != nil { + return m.Email + } + return "" +} + +func (m *UserInfoTip) GetEx() string { + if m != nil { + return m.Ex + } + return "" +} + +type CreateGroupTip struct { + Group *GroupInfoTip `protobuf:"bytes,1,opt,name=group" json:"group,omitempty"` + Creator *UserInfoTip `protobuf:"bytes,2,opt,name=creator" json:"creator,omitempty"` + MemberList []*UserInfoTip `protobuf:"bytes,3,rep,name=memberList" json:"memberList,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *CreateGroupTip) Reset() { *m = CreateGroupTip{} } +func (m *CreateGroupTip) String() string { return proto.CompactTextString(m) } +func (*CreateGroupTip) ProtoMessage() {} +func (*CreateGroupTip) Descriptor() ([]byte, []int) { + return fileDescriptor_ws_d55c44e342c7a2b5, []int{12} +} +func (m *CreateGroupTip) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_CreateGroupTip.Unmarshal(m, b) +} +func (m *CreateGroupTip) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_CreateGroupTip.Marshal(b, m, deterministic) +} +func (dst *CreateGroupTip) XXX_Merge(src proto.Message) { + xxx_messageInfo_CreateGroupTip.Merge(dst, src) +} +func (m *CreateGroupTip) XXX_Size() int { + return xxx_messageInfo_CreateGroupTip.Size(m) +} +func (m *CreateGroupTip) XXX_DiscardUnknown() { + xxx_messageInfo_CreateGroupTip.DiscardUnknown(m) +} + +var xxx_messageInfo_CreateGroupTip proto.InternalMessageInfo + +func (m *CreateGroupTip) GetGroup() *GroupInfoTip { + if m != nil { + return m.Group + } + return nil +} + +func (m *CreateGroupTip) GetCreator() *UserInfoTip { + if m != nil { + return m.Creator + } + return nil +} + +func (m *CreateGroupTip) GetMemberList() []*UserInfoTip { + if m != nil { + return m.MemberList + } + return nil +} + func init() { proto.RegisterType((*PullMessageBySeqListResp)(nil), "open_im_sdk.PullMessageBySeqListResp") proto.RegisterType((*PullMessageBySeqListReq)(nil), "open_im_sdk.PullMessageBySeqListReq") @@ -752,59 +1002,77 @@ func init() { proto.RegisterType((*UserSendMsgResp)(nil), "open_im_sdk.UserSendMsgResp") proto.RegisterType((*MsgData)(nil), "open_im_sdk.MsgData") proto.RegisterType((*OfflinePushInfo)(nil), "open_im_sdk.OfflinePushInfo") -} - -func init() { proto.RegisterFile("sdk_ws/ws.proto", fileDescriptor_ws_ff6df30c494aaf36) } - -var fileDescriptor_ws_ff6df30c494aaf36 = []byte{ - // 780 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x8c, 0x55, 0x5b, 0x6b, 0x1a, 0x41, - 0x14, 0xc6, 0x5d, 0x6f, 0x7b, 0x34, 0x17, 0xa6, 0x21, 0xdd, 0x86, 0x52, 0x64, 0x29, 0x45, 0xf2, - 0x60, 0x20, 0x79, 0x29, 0x29, 0xa5, 0x34, 0x35, 0x09, 0x96, 0x98, 0x84, 0x35, 0x79, 0xe9, 0x4b, - 0xd8, 0xea, 0x68, 0x16, 0xf7, 0xa2, 0x7b, 0xd6, 0x24, 0xfe, 0x98, 0xfe, 0xa1, 0x3e, 0xf4, 0x1f, - 0x15, 0xca, 0x99, 0xd9, 0x35, 0x33, 0x2a, 0x6d, 0xdf, 0xe6, 0x7c, 0xce, 0x99, 0x99, 0xf3, 0x5d, - 0x5c, 0xd8, 0xc2, 0xc1, 0xf8, 0xee, 0x11, 0x0f, 0x1e, 0xb1, 0x35, 0x49, 0xe2, 0x34, 0x66, 0xb5, - 0x78, 0xc2, 0xa3, 0x3b, 0x3f, 0xbc, 0xc3, 0xc1, 0xd8, 0xf9, 0x59, 0x00, 0xfb, 0x7a, 0x16, 0x04, - 0x5d, 0x8e, 0xe8, 0x8d, 0xf8, 0xc9, 0xbc, 0xc7, 0xa7, 0x17, 0x3e, 0xa6, 0x2e, 0xc7, 0x09, 0xdb, - 0x85, 0x72, 0xd7, 0x7b, 0xea, 0xf1, 0xa9, 0x5d, 0x68, 0x14, 0x9a, 0xa6, 0x9b, 0x55, 0x02, 0xf7, - 0x23, 0xc2, 0x8d, 0x0c, 0x17, 0x15, 0xfb, 0x04, 0x1b, 0x3d, 0x3f, 0x1a, 0x05, 0xfc, 0x16, 0x79, - 0xd2, 0xc5, 0x91, 0x6d, 0x36, 0xcc, 0x66, 0xed, 0xf0, 0x55, 0x4b, 0xb9, 0xb1, 0x75, 0xee, 0xa5, - 0xf7, 0x3c, 0x39, 0x8b, 0x93, 0xd0, 0x4b, 0x5d, 0x7d, 0x3f, 0xfb, 0x08, 0xf5, 0xf3, 0x24, 0x9e, - 0x4d, 0xf2, 0xfe, 0xe2, 0xbf, 0xfa, 0xb5, 0xed, 0xce, 0x11, 0xbc, 0x5c, 0x3f, 0xcb, 0x94, 0xd9, - 0x50, 0x41, 0x59, 0xd9, 0x85, 0x86, 0xd9, 0x34, 0xdd, 0xbc, 0x74, 0x76, 0x80, 0x9d, 0xf3, 0xb4, - 0xeb, 0x3d, 0x7d, 0x8e, 0x06, 0x72, 0x0e, 0x97, 0x4f, 0x9d, 0x53, 0x78, 0xb1, 0x82, 0x4a, 0x46, - 0x42, 0x8d, 0x91, 0x70, 0xc1, 0x48, 0xa8, 0x31, 0x22, 0x2b, 0xe7, 0x2b, 0xd4, 0xd5, 0xf7, 0xb2, - 0x4d, 0x30, 0x3a, 0x6d, 0xd1, 0x6b, 0xb9, 0x46, 0xa7, 0xcd, 0xf6, 0xa1, 0x28, 0xde, 0x64, 0x88, - 0x41, 0x77, 0xb5, 0x41, 0xbb, 0x38, 0xca, 0xa6, 0x14, 0x7b, 0x9c, 0xdf, 0x06, 0x58, 0x0b, 0x8c, - 0x6e, 0xec, 0xf1, 0x68, 0xb0, 0x38, 0x2d, 0xab, 0x08, 0x77, 0x79, 0xff, 0xa1, 0xd3, 0x16, 0x2f, - 0xb1, 0xdc, 0xac, 0x22, 0x02, 0xa8, 0x39, 0x89, 0x43, 0xdb, 0x6c, 0x14, 0x9a, 0x25, 0x37, 0x2f, - 0x59, 0x03, 0x6a, 0x5f, 0xe2, 0x28, 0xe5, 0x51, 0x7a, 0x33, 0x9f, 0x70, 0xbb, 0x28, 0x7e, 0x55, - 0x21, 0xda, 0xd1, 0xe3, 0xc9, 0x83, 0x20, 0xb9, 0xd3, 0xb6, 0x4b, 0xe2, 0x60, 0x15, 0xa2, 0xd3, - 0xb3, 0x06, 0xbb, 0x2c, 0x7e, 0xcd, 0x4b, 0xb6, 0x0d, 0x26, 0xd1, 0x52, 0x11, 0xb4, 0xd0, 0x92, - 0xed, 0x41, 0x95, 0xde, 0x7a, 0xe3, 0x87, 0xdc, 0xae, 0x0a, 0x78, 0x51, 0xb3, 0x7d, 0xd8, 0xa6, - 0x35, 0x4f, 0xae, 0x03, 0x2f, 0x1d, 0xc6, 0x49, 0xd8, 0x69, 0xdb, 0x96, 0x78, 0xd0, 0x0a, 0xce, - 0xde, 0xc1, 0xa6, 0xc4, 0x2e, 0xfd, 0xfe, 0xf8, 0xd2, 0x0b, 0xb9, 0x0d, 0xe2, 0xea, 0x25, 0x94, - 0xbd, 0x85, 0x0d, 0x89, 0x9c, 0x79, 0x7d, 0x7e, 0xeb, 0x5e, 0xd8, 0x35, 0xb1, 0x4d, 0x07, 0x05, - 0x0b, 0x81, 0xcf, 0xa3, 0x54, 0xce, 0x58, 0x97, 0x33, 0x2a, 0x90, 0xf3, 0xcb, 0x84, 0x4d, 0x72, - 0x1a, 0xf5, 0x75, 0x71, 0x44, 0xae, 0x3a, 0x81, 0xca, 0xd5, 0x24, 0xf5, 0xe3, 0x08, 0x85, 0xab, - 0x6a, 0x87, 0x4d, 0x4d, 0x41, 0x7d, 0x77, 0x2b, 0xdb, 0x7a, 0x1a, 0xa5, 0xc9, 0xdc, 0xcd, 0x1b, - 0xd7, 0x8c, 0x61, 0xfc, 0xdf, 0x18, 0xe6, 0xba, 0x31, 0xde, 0x00, 0x28, 0xd4, 0x49, 0x2d, 0x15, - 0x44, 0x4a, 0x89, 0xe8, 0xc7, 0x91, 0x10, 0xbb, 0x24, 0xc5, 0x56, 0x20, 0xd5, 0x28, 0xe5, 0xbf, - 0x1a, 0xa5, 0xb2, 0x6a, 0x94, 0x67, 0xf3, 0x55, 0x35, 0xf3, 0xbd, 0x06, 0xeb, 0x2c, 0x4e, 0xfa, - 0x5c, 0x78, 0xdd, 0x6a, 0x98, 0x4d, 0xcb, 0x7d, 0x06, 0x54, 0xf3, 0x80, 0x6e, 0x9e, 0x25, 0x51, - 0x6a, 0x2b, 0xa2, 0xec, 0x1d, 0x43, 0x5d, 0xa5, 0x95, 0xec, 0x36, 0xe6, 0xf3, 0x2c, 0x13, 0xb4, - 0x64, 0x3b, 0x50, 0x7a, 0xf0, 0x82, 0x99, 0xa4, 0xb5, 0xe4, 0xca, 0xe2, 0xd8, 0x78, 0x5f, 0x70, - 0xa6, 0xb0, 0xa5, 0x29, 0x84, 0x93, 0x65, 0xa7, 0x17, 0x56, 0x9d, 0xbe, 0xf4, 0x24, 0x63, 0xe5, - 0x49, 0xe4, 0x6f, 0xcc, 0xfd, 0x6d, 0x4a, 0x7f, 0xe7, 0xb5, 0xf3, 0xc3, 0x14, 0xec, 0xb6, 0xbd, - 0xd4, 0x23, 0xb2, 0x50, 0x4b, 0x30, 0x2e, 0x12, 0x9c, 0x68, 0x09, 0x96, 0x15, 0xdd, 0x8c, 0x8a, - 0x74, 0x32, 0xc5, 0x2a, 0x44, 0x44, 0x86, 0x99, 0x74, 0x52, 0xf9, 0xbc, 0xa4, 0xde, 0xbe, 0x22, - 0x5d, 0x26, 0x7b, 0x5f, 0xcf, 0x38, 0x2a, 0x93, 0xcb, 0x14, 0xab, 0x10, 0x9d, 0x9e, 0x35, 0x08, - 0xe9, 0x2d, 0x37, 0x2f, 0xb5, 0x89, 0xab, 0xfa, 0xc4, 0x24, 0x08, 0xf2, 0xa9, 0x08, 0xb1, 0xe9, - 0xd2, 0x92, 0x32, 0x8e, 0xcb, 0x19, 0x07, 0x99, 0x71, 0x5c, 0x93, 0x71, 0xd4, 0xc3, 0x21, 0x3d, - 0xb0, 0x84, 0x52, 0x38, 0x50, 0x0b, 0x87, 0xcc, 0xaf, 0x0e, 0x0a, 0x16, 0x14, 0xed, 0x36, 0xe4, - 0x8c, 0x0a, 0xe4, 0x74, 0x61, 0xeb, 0x6a, 0x38, 0x0c, 0xfc, 0x88, 0x5f, 0xcf, 0xf0, 0xbe, 0x13, - 0x0d, 0x63, 0xf2, 0xcf, 0x8d, 0x9f, 0x06, 0x3c, 0x53, 0x49, 0x16, 0x8c, 0x41, 0xb1, 0xcd, 0xb1, - 0x9f, 0x49, 0x24, 0xd6, 0x34, 0xea, 0xe9, 0x53, 0x9a, 0xe5, 0x92, 0x96, 0x27, 0xbb, 0xdf, 0x76, - 0x5a, 0x07, 0xf2, 0xfb, 0xfb, 0x41, 0xf9, 0x63, 0xf8, 0x5e, 0x16, 0x5f, 0xe2, 0xa3, 0x3f, 0x01, - 0x00, 0x00, 0xff, 0xff, 0xf1, 0x1f, 0x85, 0x3b, 0x9c, 0x07, 0x00, 0x00, + proto.RegisterType((*GroupInfoTip)(nil), "open_im_sdk.GroupInfoTip") + proto.RegisterType((*UserInfoTip)(nil), "open_im_sdk.UserInfoTip") + proto.RegisterType((*CreateGroupTip)(nil), "open_im_sdk.CreateGroupTip") +} + +func init() { proto.RegisterFile("sdk_ws/ws.proto", fileDescriptor_ws_d55c44e342c7a2b5) } + +var fileDescriptor_ws_d55c44e342c7a2b5 = []byte{ + // 1021 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x8c, 0x56, 0xcb, 0x6e, 0x23, 0xb7, + 0x12, 0x85, 0xba, 0xf5, 0x2c, 0xc9, 0xf6, 0x80, 0xd7, 0xf0, 0xed, 0x0c, 0x82, 0x40, 0x68, 0x04, + 0x81, 0x30, 0x0b, 0x19, 0xf0, 0x6c, 0x06, 0x13, 0x04, 0x41, 0x6c, 0xc9, 0x86, 0x82, 0x91, 0x6d, + 0xb4, 0x3c, 0x9b, 0x6c, 0x8c, 0x76, 0x8b, 0x92, 0x1b, 0xee, 0x87, 0xd4, 0xa4, 0x6c, 0xf9, 0x3f, + 0xb2, 0xcd, 0x37, 0x64, 0x9d, 0x5f, 0xc8, 0x22, 0x7f, 0x14, 0x20, 0xa8, 0x22, 0x5b, 0x26, 0x25, + 0xe7, 0xb1, 0xe3, 0x39, 0xaa, 0x22, 0x59, 0xe7, 0x54, 0xb5, 0x08, 0x07, 0x62, 0xfa, 0x70, 0xfb, + 0x24, 0x8e, 0x9f, 0x44, 0x7f, 0x51, 0xe4, 0x32, 0x67, 0xed, 0x7c, 0xc1, 0xb3, 0xdb, 0x38, 0xbd, + 0x15, 0xd3, 0x07, 0xff, 0xf7, 0x0a, 0x78, 0xd7, 0xab, 0x24, 0x19, 0x73, 0x21, 0xc2, 0x39, 0x3f, + 0x7d, 0x9e, 0xf0, 0xe5, 0xa7, 0x58, 0xc8, 0x80, 0x8b, 0x05, 0x3b, 0x82, 0xfa, 0x38, 0x5c, 0x4f, + 0xf8, 0xd2, 0xab, 0x74, 0x2b, 0x3d, 0x37, 0xd0, 0x88, 0xf8, 0x38, 0x43, 0xde, 0xd1, 0x3c, 0x21, + 0xf6, 0x3d, 0xec, 0x4d, 0xe2, 0x6c, 0x9e, 0xf0, 0xcf, 0x82, 0x17, 0x63, 0x31, 0xf7, 0xdc, 0xae, + 0xdb, 0x6b, 0x9f, 0x7c, 0xd1, 0x37, 0x4e, 0xec, 0x5f, 0x84, 0xf2, 0x9e, 0x17, 0xe7, 0x79, 0x91, + 0x86, 0x32, 0xb0, 0xe3, 0xd9, 0x77, 0xd0, 0xb9, 0x28, 0xf2, 0xd5, 0xa2, 0xcc, 0xaf, 0xfe, 0x5b, + 0xbe, 0x15, 0xee, 0xbf, 0x87, 0xff, 0xbf, 0x5e, 0xcb, 0x92, 0x79, 0xd0, 0x10, 0x0a, 0x79, 0x95, + 0xae, 0xdb, 0x73, 0x83, 0x12, 0xfa, 0x87, 0xc0, 0x2e, 0xb8, 0x1c, 0x87, 0xeb, 0x1f, 0xb2, 0xa9, + 0xaa, 0x23, 0xe0, 0x4b, 0x7f, 0x08, 0xff, 0xdb, 0x61, 0x95, 0x22, 0xa9, 0xa5, 0x48, 0xba, 0x51, + 0x24, 0xb5, 0x14, 0x51, 0xc8, 0xff, 0x11, 0x3a, 0xe6, 0x7d, 0xd9, 0x3e, 0x38, 0xa3, 0x01, 0xe5, + 0xb6, 0x02, 0x67, 0x34, 0x60, 0xef, 0xa0, 0x4a, 0x77, 0x72, 0xa8, 0xd0, 0x23, 0xab, 0xd0, 0xb1, + 0x98, 0xeb, 0x2a, 0x29, 0xc6, 0xff, 0xd3, 0x81, 0xd6, 0x86, 0xc3, 0x13, 0x27, 0x3c, 0x9b, 0x6e, + 0x76, 0xd3, 0x08, 0xf9, 0x80, 0x47, 0x8f, 0xa3, 0x01, 0xdd, 0xa4, 0x15, 0x68, 0x84, 0x02, 0x60, + 0x72, 0x91, 0xa7, 0x9e, 0xdb, 0xad, 0xf4, 0x6a, 0x41, 0x09, 0x59, 0x17, 0xda, 0x67, 0x79, 0x26, + 0x79, 0x26, 0x6f, 0x9e, 0x17, 0xdc, 0xab, 0xd2, 0xaf, 0x26, 0x85, 0x11, 0x13, 0x5e, 0x3c, 0x92, + 0xc8, 0xa3, 0x81, 0x57, 0xa3, 0x8d, 0x4d, 0x0a, 0x77, 0xd7, 0x09, 0x5e, 0x9d, 0x7e, 0x2d, 0x21, + 0x7b, 0x03, 0x2e, 0xca, 0xd2, 0x20, 0x59, 0x70, 0xc9, 0xde, 0x42, 0x13, 0xef, 0x7a, 0x13, 0xa7, + 0xdc, 0x6b, 0x12, 0xbd, 0xc1, 0xec, 0x1d, 0xbc, 0xc1, 0x35, 0x2f, 0xae, 0x93, 0x50, 0xce, 0xf2, + 0x22, 0x1d, 0x0d, 0xbc, 0x16, 0x5d, 0x68, 0x87, 0x67, 0xdf, 0xc0, 0xbe, 0xe2, 0x2e, 0xe3, 0xe8, + 0xe1, 0x32, 0x4c, 0xb9, 0x07, 0x74, 0xf4, 0x16, 0xcb, 0xbe, 0x86, 0x3d, 0xc5, 0x9c, 0x87, 0x11, + 0xff, 0x1c, 0x7c, 0xf2, 0xda, 0x14, 0x66, 0x93, 0xa4, 0x42, 0x12, 0xf3, 0x4c, 0xaa, 0x1a, 0x3b, + 0xaa, 0x46, 0x83, 0xf2, 0xff, 0x70, 0x61, 0x1f, 0x3b, 0x0d, 0xf3, 0xc6, 0x62, 0x8e, 0x5d, 0x75, + 0x0a, 0x8d, 0xab, 0x85, 0x8c, 0xf3, 0x4c, 0x50, 0x57, 0xb5, 0x4f, 0x7a, 0x96, 0x83, 0x76, 0x74, + 0x5f, 0x87, 0x0e, 0x33, 0x59, 0x3c, 0x07, 0x65, 0xe2, 0x2b, 0x65, 0x38, 0xff, 0xad, 0x0c, 0xf7, + 0xb5, 0x32, 0xbe, 0x02, 0x30, 0xa4, 0x53, 0x5e, 0x1a, 0x8c, 0xb2, 0x52, 0x88, 0x38, 0xcf, 0xc8, + 0xec, 0x9a, 0x32, 0xdb, 0xa0, 0xcc, 0x46, 0xa9, 0xff, 0x63, 0xa3, 0x34, 0x76, 0x1b, 0xe5, 0xa5, + 0xf9, 0x9a, 0x56, 0xf3, 0x7d, 0x09, 0xad, 0xf3, 0xbc, 0x88, 0x38, 0xf5, 0x7a, 0xab, 0xeb, 0xf6, + 0x5a, 0xc1, 0x0b, 0x61, 0x36, 0x0f, 0xd8, 0xcd, 0xb3, 0x65, 0x4a, 0x7b, 0xc7, 0x94, 0xb7, 0x1f, + 0xa1, 0x63, 0xca, 0x8a, 0xed, 0xf6, 0xc0, 0x9f, 0xf5, 0x4c, 0xe0, 0x92, 0x1d, 0x42, 0xed, 0x31, + 0x4c, 0x56, 0x4a, 0xd6, 0x5a, 0xa0, 0xc0, 0x47, 0xe7, 0x43, 0xc5, 0x5f, 0xc2, 0x81, 0xe5, 0x90, + 0x58, 0x6c, 0x77, 0x7a, 0x65, 0xb7, 0xd3, 0xb7, 0xae, 0xe4, 0xec, 0x5c, 0x09, 0xfb, 0x5b, 0x94, + 0xfd, 0xed, 0xaa, 0xfe, 0x2e, 0xb1, 0xff, 0x8b, 0x4b, 0xea, 0x0e, 0x42, 0x19, 0xa2, 0x58, 0xc2, + 0x9a, 0x60, 0xb1, 0x99, 0xe0, 0xc2, 0x9a, 0x60, 0x85, 0xf0, 0x64, 0x61, 0x58, 0xa7, 0xa6, 0xd8, + 0xa4, 0x50, 0xc8, 0x54, 0x5b, 0xa7, 0x9c, 0x2f, 0x21, 0xe6, 0x46, 0x86, 0x75, 0xda, 0xf6, 0xc8, + 0x9e, 0x71, 0x61, 0x54, 0xae, 0xa6, 0xd8, 0xa4, 0x70, 0x77, 0x9d, 0x40, 0xd6, 0xb7, 0x82, 0x12, + 0x5a, 0x15, 0x37, 0xed, 0x8a, 0xd1, 0x10, 0xc1, 0x97, 0x34, 0xc4, 0x6e, 0x80, 0x4b, 0x9c, 0x71, + 0xb1, 0x3d, 0xe3, 0xa0, 0x66, 0x5c, 0xbc, 0x32, 0xe3, 0xc2, 0x1e, 0x0e, 0xd5, 0x03, 0x5b, 0x2c, + 0x0e, 0x87, 0xb0, 0x86, 0x43, 0xcd, 0xaf, 0x4d, 0x92, 0x0a, 0x86, 0x77, 0x7b, 0xaa, 0x46, 0x83, + 0xf2, 0xc7, 0x70, 0x70, 0x35, 0x9b, 0x25, 0x71, 0xc6, 0xaf, 0x57, 0xe2, 0x7e, 0x94, 0xcd, 0x72, + 0xec, 0x9f, 0x9b, 0x58, 0x26, 0x5c, 0xbb, 0xa4, 0x00, 0x63, 0x50, 0x1d, 0x70, 0x11, 0x69, 0x8b, + 0x68, 0x8d, 0xa5, 0x0e, 0xd7, 0x52, 0xcf, 0x25, 0x2e, 0xfd, 0x9f, 0x1d, 0xfd, 0x87, 0x86, 0x3b, + 0xdd, 0xc4, 0x0b, 0xd4, 0x50, 0xe1, 0xd2, 0xf4, 0x12, 0xe2, 0x88, 0xd0, 0xd2, 0xf8, 0x02, 0xbc, + 0x10, 0xcc, 0x87, 0xce, 0x65, 0x2e, 0xe3, 0x59, 0x1c, 0x85, 0xd8, 0xec, 0xfa, 0x0c, 0x8b, 0xc3, + 0x98, 0x51, 0x26, 0x8b, 0x7c, 0xba, 0x8a, 0x28, 0xa6, 0xaa, 0x62, 0x4c, 0x0e, 0xcf, 0x27, 0x31, + 0x8a, 0x44, 0x7f, 0xc5, 0x4b, 0x88, 0xff, 0x4c, 0xc3, 0xb5, 0xb6, 0xdd, 0x19, 0xae, 0x31, 0xf2, + 0xea, 0x29, 0xe3, 0xc5, 0x68, 0x50, 0xba, 0xad, 0x21, 0x7e, 0x62, 0xce, 0x0a, 0x1e, 0x4a, 0xbe, + 0xf1, 0xbb, 0x1a, 0x18, 0x0c, 0xaa, 0x3c, 0xe6, 0xe9, 0x1d, 0x2f, 0xce, 0xf2, 0x55, 0x26, 0xc9, + 0xf9, 0xbd, 0xc0, 0xa4, 0xfc, 0xdf, 0x2a, 0xd0, 0xc6, 0xc9, 0x2b, 0x55, 0x39, 0x82, 0x3a, 0xc1, + 0xcd, 0x24, 0x28, 0x84, 0x22, 0x1b, 0x72, 0xd0, 0x1a, 0xb9, 0x51, 0xb4, 0x51, 0x80, 0xd6, 0x98, + 0x7f, 0x41, 0x46, 0xeb, 0xb6, 0xd7, 0x88, 0xde, 0x29, 0xf9, 0x5d, 0x9c, 0x70, 0x5d, 0xac, 0x46, + 0x68, 0xe9, 0x69, 0x5c, 0xc8, 0x7b, 0x5d, 0xae, 0x02, 0xc8, 0x0e, 0xd3, 0x30, 0x4e, 0x74, 0xbd, + 0x0a, 0x68, 0x5d, 0x9a, 0xa5, 0x2e, 0xfe, 0xaf, 0x15, 0xd8, 0x57, 0xc5, 0x92, 0x3b, 0x78, 0xfd, + 0x63, 0xa8, 0xcd, 0x71, 0x4d, 0xb7, 0xdf, 0x79, 0xae, 0x18, 0xf6, 0x07, 0x2a, 0x8e, 0x9d, 0x40, + 0x23, 0xc2, 0x2d, 0xf2, 0x82, 0x4a, 0x6b, 0x9f, 0x78, 0x3b, 0x7f, 0x1b, 0x65, 0x46, 0x19, 0xc8, + 0x3e, 0x00, 0xa4, 0x24, 0x21, 0x7d, 0x43, 0xd5, 0xc3, 0xea, 0xef, 0xd3, 0x8c, 0xd8, 0xd3, 0xa3, + 0x9f, 0x0e, 0xfb, 0xc7, 0xea, 0x11, 0xf8, 0xad, 0x11, 0x7f, 0x57, 0xa7, 0xe7, 0xe0, 0xfb, 0xbf, + 0x02, 0x00, 0x00, 0xff, 0xff, 0xc2, 0x41, 0x03, 0xcb, 0x21, 0x0a, 0x00, 0x00, } diff --git a/pkg/proto/sdk_ws/ws.proto b/pkg/proto/sdk_ws/ws.proto index 259d726a8..9b9d805b4 100644 --- a/pkg/proto/sdk_ws/ws.proto +++ b/pkg/proto/sdk_ws/ws.proto @@ -93,3 +93,36 @@ message OfflinePushInfo{ string Ext = 3; } +message GroupInfoTip{ + string GroupID = 1; + string GroupName = 2; + string Notification = 3; + string Introduction = 4; + string FaceUrl = 5; + string Ex = 6; + string OwnerID = 7; + uint64 CreateTime = 8; + uint32 MemberCount = 9; +} + + + +type GroupMemberFullInfoTip struct { + string GroupId = 1 ; + string UserId = 2 ; + int Role = 3; + uint64 JoinTime = 4; + string NickName = 5; + string FaceUrl =6; +} + + + +message CreateGroupTip{ + GroupInfoTip group = 1; + UserInfoTip creator = 2; + repeated GroupMemberFullInfoTip memberList = 3; +} + + + diff --git a/pkg/utils/utils.go b/pkg/utils/utils.go index 5f6e9a6ca..0ebe55d99 100644 --- a/pkg/utils/utils.go +++ b/pkg/utils/utils.go @@ -3,6 +3,7 @@ package utils import ( "fmt" "reflect" + "strconv" ) // copy a by b b->a @@ -44,12 +45,6 @@ func CopyStructFields(a interface{}, b interface{}, fields ...string) (err error return nil } -type S1 struct { - Name string - Age int -} - -type S2 struct { - Name string - Age int32 +func OperationIDGenerator() string { + return strconv.FormatInt(time.Now().UnixNano()+int64(rand.Uint32()), 10) } From 2dc773ebe618b2eeee9c4c6cb836aaee8510a8a9 Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Fri, 10 Dec 2021 17:50:29 +0800 Subject: [PATCH 198/814] sync message --- internal/msg_gateway/gate/rpc_server.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/internal/msg_gateway/gate/rpc_server.go b/internal/msg_gateway/gate/rpc_server.go index 972cf30f4..a3ef373d6 100644 --- a/internal/msg_gateway/gate/rpc_server.go +++ b/internal/msg_gateway/gate/rpc_server.go @@ -116,7 +116,7 @@ func (r *RPCServer) MsgToUser(_ context.Context, in *pbRelay.MsgToUserReq) (*pbR } } //Single chat sender synchronization message - if in.GetSessionType() == constant.SingleChatType { + if in.GetSessionType() == constant.SingleChatType && in.ContentType <= constant.Quote && in.ContentType != constant.Typing && in.ContentType != constant.HasReadReceipt { userIDList = genUidPlatformArray(in.SendID) for _, v := range userIDList { UIDAndPID = strings.Split(v, " ") From 88d181f9feb94e52b45cd92a9bac1a27b031246a Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Fri, 10 Dec 2021 17:51:19 +0800 Subject: [PATCH 199/814] sync message --- config/config.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config/config.yaml b/config/config.yaml index e67ac4fee..02dbc6638 100644 --- a/config/config.yaml +++ b/config/config.yaml @@ -1,7 +1,7 @@ # The class cannot be named by Pascal or camel case. # If it is not used, the corresponding structure will not be set, # and it will not be read naturally. -serverversion: 1.0.6 +serverversion: 1.0.3 #---------------Infrastructure configuration---------------------# etcd: etcdSchema: openIM From a328080ba4a643dd7c80ca8fe51a0fa21a16de9c Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Fri, 10 Dec 2021 18:07:09 +0800 Subject: [PATCH 200/814] sync message --- pkg/utils/utils.go | 2 ++ 1 file changed, 2 insertions(+) diff --git a/pkg/utils/utils.go b/pkg/utils/utils.go index 0ebe55d99..074712bc8 100644 --- a/pkg/utils/utils.go +++ b/pkg/utils/utils.go @@ -2,8 +2,10 @@ package utils import ( "fmt" + "math/rand" "reflect" "strconv" + "time" ) // copy a by b b->a From 7adde6a0a9a955cdff0a78da3da31a17b951673d Mon Sep 17 00:00:00 2001 From: skiffer-git <44203734@qq.com> Date: Tue, 14 Dec 2021 14:53:27 +0800 Subject: [PATCH 201/814] notification --- config/config.yaml | 13 ++ internal/rpc/chat/send_msg.go | 29 ++- internal/rpc/group/create_group.go | 19 ++ pkg/common/config/config.go | 19 +- pkg/proto/sdk_ws/ws.pb.go | 353 ++++++++++++++++++----------- pkg/proto/sdk_ws/ws.proto | 20 +- 6 files changed, 306 insertions(+), 147 deletions(-) diff --git a/config/config.yaml b/config/config.yaml index 02dbc6638..33899fbae 100644 --- a/config/config.yaml +++ b/config/config.yaml @@ -160,6 +160,19 @@ messagecallback: stateChange: switch: false +notification: + offlinePush: + switch: true + createGroup: + title: "create group title" + desc: "create group desc" + ext: "create group ext" + quitGroup: + title: "quit group title" + desc: "quit group desc" + ext: "quit group ext" + + #---------------demo configuration---------------------# #The following configuration items are applied to openIM Demo configuration demoswitch: true diff --git a/internal/rpc/chat/send_msg.go b/internal/rpc/chat/send_msg.go index d237c2507..cc865e66a 100644 --- a/internal/rpc/chat/send_msg.go +++ b/internal/rpc/chat/send_msg.go @@ -6,6 +6,7 @@ import ( "Open_IM/pkg/common/config" "Open_IM/pkg/common/constant" "Open_IM/pkg/common/db" + "Open_IM/pkg/common/db/mysql_model/im_mysql_model" http2 "Open_IM/pkg/common/http" "Open_IM/pkg/common/log" "Open_IM/pkg/grpc-etcdv3/getcdv3" @@ -203,17 +204,35 @@ type WSToMsgSvrChatMsg struct { OperationID string `protobuf:"bytes,10,opt,name=OperationID" json:"OperationID,omitempty"` } -func CreateGroupNotification(SendID, RecvID string, tip open_im_sdk.CreateGroupTip) { +func CreateGroupNotification(sendID string, creator im_mysql_model.User, group im_mysql_model.Group, memberList []im_mysql_model.GroupMember) { var msg WSToMsgSvrChatMsg msg.OperationID = utils.OperationIDGenerator() - msg.SendID = SendID - msg.RecvID = RecvID + msg.SendID = sendID + msg.RecvID = group.GroupId msg.ContentType = constant.CreateGroupTip - msg.SessionType = constant.SysMsgType + msg.SessionType = constant.GroupChatType + msg.MsgFrom = constant.SysMsgType + var tip open_im_sdk.CreateGroupTip + tip.Group = &open_im_sdk.GroupInfoTip{} + utils.CopyStructFields(tip.Group, group) + tip.Creator = &open_im_sdk.UserInfoTip{} + utils.CopyStructFields(tip.Creator, creator) + for _, v := range memberList { + var groupMemberInfo open_im_sdk.GroupMemberFullInfoTip + utils.CopyStructFields(&groupMemberInfo, v) + tip.MemberList = append(tip.MemberList, &groupMemberInfo) + } + + msg.Content = utils.StructToJsonString(tip) + var offlinePushInfo open_im_sdk.OfflinePushInfo + offlinePushInfo.Title = "create group title" + offlinePushInfo.Desc = "create group desc" + offlinePushInfo.Ext = "create group ext" + Notification(&msg, false, offlinePushInfo) } -func Notification(m *WSToMsgSvrChatMsg, onlineUserOnly bool, offlineInfo open_im_sdk.OfflinePushInfo) { +func Notification(m *WSToMsgSvrChatMsg, onlineUserOnly bool, offlinePushInfo open_im_sdk.OfflinePushInfo) { } diff --git a/internal/rpc/group/create_group.go b/internal/rpc/group/create_group.go index 35e6616ee..e36048304 100644 --- a/internal/rpc/group/create_group.go +++ b/internal/rpc/group/create_group.go @@ -3,6 +3,7 @@ package group import ( "Open_IM/internal/push/content_struct" "Open_IM/internal/push/logic" + "Open_IM/internal/rpc/chat" "Open_IM/pkg/common/config" "Open_IM/pkg/common/constant" "Open_IM/pkg/common/db" @@ -12,6 +13,7 @@ import ( "Open_IM/pkg/grpc-etcdv3/getcdv3" pbChat "Open_IM/pkg/proto/chat" pbGroup "Open_IM/pkg/proto/group" + open_im_sdk "Open_IM/pkg/proto/sdk_ws" "Open_IM/pkg/utils" "context" "google.golang.org/grpc" @@ -157,6 +159,23 @@ func (s *groupServer) CreateGroup(ctx context.Context, req *pbGroup.CreateGroupR }) } + var tip open_im_sdk.CreateGroupTip + groupInfo, err := im_mysql_model.FindGroupInfoByGroupId(groupId) + if err != nil { + return &pbGroup.CreateGroupResp{ErrorCode: constant.ErrCreateGroup.ErrCode, ErrorMsg: constant.ErrCreateGroup.ErrMsg}, nil + } + + creatorInfo, err := im_mysql_model.FindUserByUID(claims.UID) + if err != nil { + + } + + memberList, err := im_mysql_model.FindGroupMemberListByGroupId(groupId) + if err != nil { + + } + chat.CreateGroupNotification(claims.UID, *creatorInfo, *groupInfo, memberList) + log.Info(req.Token, req.OperationID, "rpc create group success return") return &pbGroup.CreateGroupResp{GroupID: groupId}, nil } diff --git a/pkg/common/config/config.go b/pkg/common/config/config.go index f7bb65935..05ce6e9e1 100644 --- a/pkg/common/config/config.go +++ b/pkg/common/config/config.go @@ -1,7 +1,7 @@ package config import ( - "gopkg.in/yaml.v3" + "fmt" "io/ioutil" "path/filepath" "runtime" @@ -172,6 +172,21 @@ type config struct { SmtpPort int `yaml:"smtpPort"` } } + Notification struct { + OfflinePush struct { + Switch bool `yaml:"switch"` + } + CreateGroup struct { + Title string `yaml:"title"` + Desc string `yaml:"desc"` + Ext string `yaml:"ext"` + } + QuiteGroup struct { + Title string `yaml:"title"` + Desc string `yaml:"desc"` + Ext string `yaml:"ext"` + } + } } func init() { @@ -186,5 +201,5 @@ func init() { if err = yaml.Unmarshal(bytes, &Config); err != nil { panic(err.Error()) } - + fmt.Println("init load config: ", Config) } diff --git a/pkg/proto/sdk_ws/ws.pb.go b/pkg/proto/sdk_ws/ws.pb.go index 7e1115f94..bdaa3ab97 100644 --- a/pkg/proto/sdk_ws/ws.pb.go +++ b/pkg/proto/sdk_ws/ws.pb.go @@ -32,7 +32,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_d55c44e342c7a2b5, []int{0} + return fileDescriptor_ws_0e67cfdf7b3776b1, []int{0} } func (m *PullMessageBySeqListResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_PullMessageBySeqListResp.Unmarshal(m, b) @@ -91,7 +91,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_d55c44e342c7a2b5, []int{1} + return fileDescriptor_ws_0e67cfdf7b3776b1, []int{1} } func (m *PullMessageBySeqListReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_PullMessageBySeqListReq.Unmarshal(m, b) @@ -128,7 +128,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_d55c44e342c7a2b5, []int{2} + return fileDescriptor_ws_0e67cfdf7b3776b1, []int{2} } func (m *GetMaxAndMinSeqReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetMaxAndMinSeqReq.Unmarshal(m, b) @@ -160,7 +160,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_d55c44e342c7a2b5, []int{3} + return fileDescriptor_ws_0e67cfdf7b3776b1, []int{3} } func (m *GetMaxAndMinSeqResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetMaxAndMinSeqResp.Unmarshal(m, b) @@ -208,7 +208,7 @@ func (m *GatherFormat) Reset() { *m = GatherFormat{} } func (m *GatherFormat) String() string { return proto.CompactTextString(m) } func (*GatherFormat) ProtoMessage() {} func (*GatherFormat) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_d55c44e342c7a2b5, []int{4} + return fileDescriptor_ws_0e67cfdf7b3776b1, []int{4} } func (m *GatherFormat) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GatherFormat.Unmarshal(m, b) @@ -276,7 +276,7 @@ func (m *MsgFormat) Reset() { *m = MsgFormat{} } func (m *MsgFormat) String() string { return proto.CompactTextString(m) } func (*MsgFormat) ProtoMessage() {} func (*MsgFormat) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_d55c44e342c7a2b5, []int{5} + return fileDescriptor_ws_0e67cfdf7b3776b1, []int{5} } func (m *MsgFormat) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MsgFormat.Unmarshal(m, b) @@ -401,7 +401,7 @@ func (m *UserSendMsgReq) Reset() { *m = UserSendMsgReq{} } func (m *UserSendMsgReq) String() string { return proto.CompactTextString(m) } func (*UserSendMsgReq) ProtoMessage() {} func (*UserSendMsgReq) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_d55c44e342c7a2b5, []int{6} + return fileDescriptor_ws_0e67cfdf7b3776b1, []int{6} } func (m *UserSendMsgReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_UserSendMsgReq.Unmarshal(m, b) @@ -511,7 +511,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_d55c44e342c7a2b5, []int{7} + return fileDescriptor_ws_0e67cfdf7b3776b1, []int{7} } func (m *UserSendMsgResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_UserSendMsgResp.Unmarshal(m, b) @@ -575,7 +575,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_d55c44e342c7a2b5, []int{8} + return fileDescriptor_ws_0e67cfdf7b3776b1, []int{8} } func (m *MsgData) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MsgData.Unmarshal(m, b) @@ -699,7 +699,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_d55c44e342c7a2b5, []int{9} + return fileDescriptor_ws_0e67cfdf7b3776b1, []int{9} } func (m *OfflinePushInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_OfflinePushInfo.Unmarshal(m, b) @@ -759,7 +759,7 @@ func (m *GroupInfoTip) Reset() { *m = GroupInfoTip{} } func (m *GroupInfoTip) String() string { return proto.CompactTextString(m) } func (*GroupInfoTip) ProtoMessage() {} func (*GroupInfoTip) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_d55c44e342c7a2b5, []int{10} + return fileDescriptor_ws_0e67cfdf7b3776b1, []int{10} } func (m *GroupInfoTip) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupInfoTip.Unmarshal(m, b) @@ -842,6 +842,138 @@ func (m *GroupInfoTip) GetMemberCount() uint32 { return 0 } +type GroupMemberFullInfoTip struct { + GroupId string `protobuf:"bytes,1,opt,name=GroupId" json:"GroupId,omitempty"` + UserId string `protobuf:"bytes,2,opt,name=UserId" json:"UserId,omitempty"` + Role int32 `protobuf:"varint,3,opt,name=Role" json:"Role,omitempty"` + JoinTime uint64 `protobuf:"varint,4,opt,name=JoinTime" json:"JoinTime,omitempty"` + NickName string `protobuf:"bytes,5,opt,name=NickName" json:"NickName,omitempty"` + FaceUrl string `protobuf:"bytes,6,opt,name=FaceUrl" json:"FaceUrl,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *GroupMemberFullInfoTip) Reset() { *m = GroupMemberFullInfoTip{} } +func (m *GroupMemberFullInfoTip) String() string { return proto.CompactTextString(m) } +func (*GroupMemberFullInfoTip) ProtoMessage() {} +func (*GroupMemberFullInfoTip) Descriptor() ([]byte, []int) { + return fileDescriptor_ws_0e67cfdf7b3776b1, []int{11} +} +func (m *GroupMemberFullInfoTip) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GroupMemberFullInfoTip.Unmarshal(m, b) +} +func (m *GroupMemberFullInfoTip) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GroupMemberFullInfoTip.Marshal(b, m, deterministic) +} +func (dst *GroupMemberFullInfoTip) XXX_Merge(src proto.Message) { + xxx_messageInfo_GroupMemberFullInfoTip.Merge(dst, src) +} +func (m *GroupMemberFullInfoTip) XXX_Size() int { + return xxx_messageInfo_GroupMemberFullInfoTip.Size(m) +} +func (m *GroupMemberFullInfoTip) XXX_DiscardUnknown() { + xxx_messageInfo_GroupMemberFullInfoTip.DiscardUnknown(m) +} + +var xxx_messageInfo_GroupMemberFullInfoTip proto.InternalMessageInfo + +func (m *GroupMemberFullInfoTip) GetGroupId() string { + if m != nil { + return m.GroupId + } + return "" +} + +func (m *GroupMemberFullInfoTip) GetUserId() string { + if m != nil { + return m.UserId + } + return "" +} + +func (m *GroupMemberFullInfoTip) GetRole() int32 { + if m != nil { + return m.Role + } + return 0 +} + +func (m *GroupMemberFullInfoTip) GetJoinTime() uint64 { + if m != nil { + return m.JoinTime + } + return 0 +} + +func (m *GroupMemberFullInfoTip) GetNickName() string { + if m != nil { + return m.NickName + } + return "" +} + +func (m *GroupMemberFullInfoTip) GetFaceUrl() string { + if m != nil { + return m.FaceUrl + } + return "" +} + +type CreateGroupTip struct { + Group *GroupInfoTip `protobuf:"bytes,1,opt,name=Group" json:"Group,omitempty"` + Creator *UserInfoTip `protobuf:"bytes,2,opt,name=Creator" json:"Creator,omitempty"` + MemberList []*GroupMemberFullInfoTip `protobuf:"bytes,3,rep,name=MemberList" json:"MemberList,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *CreateGroupTip) Reset() { *m = CreateGroupTip{} } +func (m *CreateGroupTip) String() string { return proto.CompactTextString(m) } +func (*CreateGroupTip) ProtoMessage() {} +func (*CreateGroupTip) Descriptor() ([]byte, []int) { + return fileDescriptor_ws_0e67cfdf7b3776b1, []int{12} +} +func (m *CreateGroupTip) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_CreateGroupTip.Unmarshal(m, b) +} +func (m *CreateGroupTip) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_CreateGroupTip.Marshal(b, m, deterministic) +} +func (dst *CreateGroupTip) XXX_Merge(src proto.Message) { + xxx_messageInfo_CreateGroupTip.Merge(dst, src) +} +func (m *CreateGroupTip) XXX_Size() int { + return xxx_messageInfo_CreateGroupTip.Size(m) +} +func (m *CreateGroupTip) XXX_DiscardUnknown() { + xxx_messageInfo_CreateGroupTip.DiscardUnknown(m) +} + +var xxx_messageInfo_CreateGroupTip proto.InternalMessageInfo + +func (m *CreateGroupTip) GetGroup() *GroupInfoTip { + if m != nil { + return m.Group + } + return nil +} + +func (m *CreateGroupTip) GetCreator() *UserInfoTip { + if m != nil { + return m.Creator + } + return nil +} + +func (m *CreateGroupTip) GetMemberList() []*GroupMemberFullInfoTip { + if m != nil { + return m.MemberList + } + return nil +} + type UserInfoTip struct { UserID string `protobuf:"bytes,1,opt,name=UserID" json:"UserID,omitempty"` Name string `protobuf:"bytes,2,opt,name=Name" json:"Name,omitempty"` @@ -860,7 +992,7 @@ func (m *UserInfoTip) Reset() { *m = UserInfoTip{} } func (m *UserInfoTip) String() string { return proto.CompactTextString(m) } func (*UserInfoTip) ProtoMessage() {} func (*UserInfoTip) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_d55c44e342c7a2b5, []int{11} + return fileDescriptor_ws_0e67cfdf7b3776b1, []int{13} } func (m *UserInfoTip) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_UserInfoTip.Unmarshal(m, b) @@ -936,60 +1068,6 @@ func (m *UserInfoTip) GetEx() string { return "" } -type CreateGroupTip struct { - Group *GroupInfoTip `protobuf:"bytes,1,opt,name=group" json:"group,omitempty"` - Creator *UserInfoTip `protobuf:"bytes,2,opt,name=creator" json:"creator,omitempty"` - MemberList []*UserInfoTip `protobuf:"bytes,3,rep,name=memberList" json:"memberList,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *CreateGroupTip) Reset() { *m = CreateGroupTip{} } -func (m *CreateGroupTip) String() string { return proto.CompactTextString(m) } -func (*CreateGroupTip) ProtoMessage() {} -func (*CreateGroupTip) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_d55c44e342c7a2b5, []int{12} -} -func (m *CreateGroupTip) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_CreateGroupTip.Unmarshal(m, b) -} -func (m *CreateGroupTip) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_CreateGroupTip.Marshal(b, m, deterministic) -} -func (dst *CreateGroupTip) XXX_Merge(src proto.Message) { - xxx_messageInfo_CreateGroupTip.Merge(dst, src) -} -func (m *CreateGroupTip) XXX_Size() int { - return xxx_messageInfo_CreateGroupTip.Size(m) -} -func (m *CreateGroupTip) XXX_DiscardUnknown() { - xxx_messageInfo_CreateGroupTip.DiscardUnknown(m) -} - -var xxx_messageInfo_CreateGroupTip proto.InternalMessageInfo - -func (m *CreateGroupTip) GetGroup() *GroupInfoTip { - if m != nil { - return m.Group - } - return nil -} - -func (m *CreateGroupTip) GetCreator() *UserInfoTip { - if m != nil { - return m.Creator - } - return nil -} - -func (m *CreateGroupTip) GetMemberList() []*UserInfoTip { - if m != nil { - return m.MemberList - } - return nil -} - func init() { proto.RegisterType((*PullMessageBySeqListResp)(nil), "open_im_sdk.PullMessageBySeqListResp") proto.RegisterType((*PullMessageBySeqListReq)(nil), "open_im_sdk.PullMessageBySeqListReq") @@ -1003,76 +1081,81 @@ func init() { proto.RegisterType((*MsgData)(nil), "open_im_sdk.MsgData") proto.RegisterType((*OfflinePushInfo)(nil), "open_im_sdk.OfflinePushInfo") proto.RegisterType((*GroupInfoTip)(nil), "open_im_sdk.GroupInfoTip") - proto.RegisterType((*UserInfoTip)(nil), "open_im_sdk.UserInfoTip") + proto.RegisterType((*GroupMemberFullInfoTip)(nil), "open_im_sdk.GroupMemberFullInfoTip") proto.RegisterType((*CreateGroupTip)(nil), "open_im_sdk.CreateGroupTip") + proto.RegisterType((*UserInfoTip)(nil), "open_im_sdk.UserInfoTip") } -func init() { proto.RegisterFile("sdk_ws/ws.proto", fileDescriptor_ws_d55c44e342c7a2b5) } - -var fileDescriptor_ws_d55c44e342c7a2b5 = []byte{ - // 1021 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x8c, 0x56, 0xcb, 0x6e, 0x23, 0xb7, - 0x12, 0x85, 0xba, 0xf5, 0x2c, 0xc9, 0xf6, 0x80, 0xd7, 0xf0, 0xed, 0x0c, 0x82, 0x40, 0x68, 0x04, - 0x81, 0x30, 0x0b, 0x19, 0xf0, 0x6c, 0x06, 0x13, 0x04, 0x41, 0x6c, 0xc9, 0x86, 0x82, 0x91, 0x6d, - 0xb4, 0x3c, 0x9b, 0x6c, 0x8c, 0x76, 0x8b, 0x92, 0x1b, 0xee, 0x87, 0xd4, 0xa4, 0x6c, 0xf9, 0x3f, - 0xb2, 0xcd, 0x37, 0x64, 0x9d, 0x5f, 0xc8, 0x22, 0x7f, 0x14, 0x20, 0xa8, 0x22, 0x5b, 0x26, 0x25, - 0xe7, 0xb1, 0xe3, 0x39, 0xaa, 0x22, 0x59, 0xe7, 0x54, 0xb5, 0x08, 0x07, 0x62, 0xfa, 0x70, 0xfb, - 0x24, 0x8e, 0x9f, 0x44, 0x7f, 0x51, 0xe4, 0x32, 0x67, 0xed, 0x7c, 0xc1, 0xb3, 0xdb, 0x38, 0xbd, - 0x15, 0xd3, 0x07, 0xff, 0xf7, 0x0a, 0x78, 0xd7, 0xab, 0x24, 0x19, 0x73, 0x21, 0xc2, 0x39, 0x3f, - 0x7d, 0x9e, 0xf0, 0xe5, 0xa7, 0x58, 0xc8, 0x80, 0x8b, 0x05, 0x3b, 0x82, 0xfa, 0x38, 0x5c, 0x4f, - 0xf8, 0xd2, 0xab, 0x74, 0x2b, 0x3d, 0x37, 0xd0, 0x88, 0xf8, 0x38, 0x43, 0xde, 0xd1, 0x3c, 0x21, - 0xf6, 0x3d, 0xec, 0x4d, 0xe2, 0x6c, 0x9e, 0xf0, 0xcf, 0x82, 0x17, 0x63, 0x31, 0xf7, 0xdc, 0xae, - 0xdb, 0x6b, 0x9f, 0x7c, 0xd1, 0x37, 0x4e, 0xec, 0x5f, 0x84, 0xf2, 0x9e, 0x17, 0xe7, 0x79, 0x91, - 0x86, 0x32, 0xb0, 0xe3, 0xd9, 0x77, 0xd0, 0xb9, 0x28, 0xf2, 0xd5, 0xa2, 0xcc, 0xaf, 0xfe, 0x5b, - 0xbe, 0x15, 0xee, 0xbf, 0x87, 0xff, 0xbf, 0x5e, 0xcb, 0x92, 0x79, 0xd0, 0x10, 0x0a, 0x79, 0x95, - 0xae, 0xdb, 0x73, 0x83, 0x12, 0xfa, 0x87, 0xc0, 0x2e, 0xb8, 0x1c, 0x87, 0xeb, 0x1f, 0xb2, 0xa9, - 0xaa, 0x23, 0xe0, 0x4b, 0x7f, 0x08, 0xff, 0xdb, 0x61, 0x95, 0x22, 0xa9, 0xa5, 0x48, 0xba, 0x51, - 0x24, 0xb5, 0x14, 0x51, 0xc8, 0xff, 0x11, 0x3a, 0xe6, 0x7d, 0xd9, 0x3e, 0x38, 0xa3, 0x01, 0xe5, - 0xb6, 0x02, 0x67, 0x34, 0x60, 0xef, 0xa0, 0x4a, 0x77, 0x72, 0xa8, 0xd0, 0x23, 0xab, 0xd0, 0xb1, - 0x98, 0xeb, 0x2a, 0x29, 0xc6, 0xff, 0xd3, 0x81, 0xd6, 0x86, 0xc3, 0x13, 0x27, 0x3c, 0x9b, 0x6e, - 0x76, 0xd3, 0x08, 0xf9, 0x80, 0x47, 0x8f, 0xa3, 0x01, 0xdd, 0xa4, 0x15, 0x68, 0x84, 0x02, 0x60, - 0x72, 0x91, 0xa7, 0x9e, 0xdb, 0xad, 0xf4, 0x6a, 0x41, 0x09, 0x59, 0x17, 0xda, 0x67, 0x79, 0x26, - 0x79, 0x26, 0x6f, 0x9e, 0x17, 0xdc, 0xab, 0xd2, 0xaf, 0x26, 0x85, 0x11, 0x13, 0x5e, 0x3c, 0x92, - 0xc8, 0xa3, 0x81, 0x57, 0xa3, 0x8d, 0x4d, 0x0a, 0x77, 0xd7, 0x09, 0x5e, 0x9d, 0x7e, 0x2d, 0x21, - 0x7b, 0x03, 0x2e, 0xca, 0xd2, 0x20, 0x59, 0x70, 0xc9, 0xde, 0x42, 0x13, 0xef, 0x7a, 0x13, 0xa7, - 0xdc, 0x6b, 0x12, 0xbd, 0xc1, 0xec, 0x1d, 0xbc, 0xc1, 0x35, 0x2f, 0xae, 0x93, 0x50, 0xce, 0xf2, - 0x22, 0x1d, 0x0d, 0xbc, 0x16, 0x5d, 0x68, 0x87, 0x67, 0xdf, 0xc0, 0xbe, 0xe2, 0x2e, 0xe3, 0xe8, - 0xe1, 0x32, 0x4c, 0xb9, 0x07, 0x74, 0xf4, 0x16, 0xcb, 0xbe, 0x86, 0x3d, 0xc5, 0x9c, 0x87, 0x11, - 0xff, 0x1c, 0x7c, 0xf2, 0xda, 0x14, 0x66, 0x93, 0xa4, 0x42, 0x12, 0xf3, 0x4c, 0xaa, 0x1a, 0x3b, - 0xaa, 0x46, 0x83, 0xf2, 0xff, 0x70, 0x61, 0x1f, 0x3b, 0x0d, 0xf3, 0xc6, 0x62, 0x8e, 0x5d, 0x75, - 0x0a, 0x8d, 0xab, 0x85, 0x8c, 0xf3, 0x4c, 0x50, 0x57, 0xb5, 0x4f, 0x7a, 0x96, 0x83, 0x76, 0x74, - 0x5f, 0x87, 0x0e, 0x33, 0x59, 0x3c, 0x07, 0x65, 0xe2, 0x2b, 0x65, 0x38, 0xff, 0xad, 0x0c, 0xf7, - 0xb5, 0x32, 0xbe, 0x02, 0x30, 0xa4, 0x53, 0x5e, 0x1a, 0x8c, 0xb2, 0x52, 0x88, 0x38, 0xcf, 0xc8, - 0xec, 0x9a, 0x32, 0xdb, 0xa0, 0xcc, 0x46, 0xa9, 0xff, 0x63, 0xa3, 0x34, 0x76, 0x1b, 0xe5, 0xa5, - 0xf9, 0x9a, 0x56, 0xf3, 0x7d, 0x09, 0xad, 0xf3, 0xbc, 0x88, 0x38, 0xf5, 0x7a, 0xab, 0xeb, 0xf6, - 0x5a, 0xc1, 0x0b, 0x61, 0x36, 0x0f, 0xd8, 0xcd, 0xb3, 0x65, 0x4a, 0x7b, 0xc7, 0x94, 0xb7, 0x1f, - 0xa1, 0x63, 0xca, 0x8a, 0xed, 0xf6, 0xc0, 0x9f, 0xf5, 0x4c, 0xe0, 0x92, 0x1d, 0x42, 0xed, 0x31, - 0x4c, 0x56, 0x4a, 0xd6, 0x5a, 0xa0, 0xc0, 0x47, 0xe7, 0x43, 0xc5, 0x5f, 0xc2, 0x81, 0xe5, 0x90, - 0x58, 0x6c, 0x77, 0x7a, 0x65, 0xb7, 0xd3, 0xb7, 0xae, 0xe4, 0xec, 0x5c, 0x09, 0xfb, 0x5b, 0x94, - 0xfd, 0xed, 0xaa, 0xfe, 0x2e, 0xb1, 0xff, 0x8b, 0x4b, 0xea, 0x0e, 0x42, 0x19, 0xa2, 0x58, 0xc2, - 0x9a, 0x60, 0xb1, 0x99, 0xe0, 0xc2, 0x9a, 0x60, 0x85, 0xf0, 0x64, 0x61, 0x58, 0xa7, 0xa6, 0xd8, - 0xa4, 0x50, 0xc8, 0x54, 0x5b, 0xa7, 0x9c, 0x2f, 0x21, 0xe6, 0x46, 0x86, 0x75, 0xda, 0xf6, 0xc8, - 0x9e, 0x71, 0x61, 0x54, 0xae, 0xa6, 0xd8, 0xa4, 0x70, 0x77, 0x9d, 0x40, 0xd6, 0xb7, 0x82, 0x12, - 0x5a, 0x15, 0x37, 0xed, 0x8a, 0xd1, 0x10, 0xc1, 0x97, 0x34, 0xc4, 0x6e, 0x80, 0x4b, 0x9c, 0x71, - 0xb1, 0x3d, 0xe3, 0xa0, 0x66, 0x5c, 0xbc, 0x32, 0xe3, 0xc2, 0x1e, 0x0e, 0xd5, 0x03, 0x5b, 0x2c, - 0x0e, 0x87, 0xb0, 0x86, 0x43, 0xcd, 0xaf, 0x4d, 0x92, 0x0a, 0x86, 0x77, 0x7b, 0xaa, 0x46, 0x83, - 0xf2, 0xc7, 0x70, 0x70, 0x35, 0x9b, 0x25, 0x71, 0xc6, 0xaf, 0x57, 0xe2, 0x7e, 0x94, 0xcd, 0x72, - 0xec, 0x9f, 0x9b, 0x58, 0x26, 0x5c, 0xbb, 0xa4, 0x00, 0x63, 0x50, 0x1d, 0x70, 0x11, 0x69, 0x8b, - 0x68, 0x8d, 0xa5, 0x0e, 0xd7, 0x52, 0xcf, 0x25, 0x2e, 0xfd, 0x9f, 0x1d, 0xfd, 0x87, 0x86, 0x3b, - 0xdd, 0xc4, 0x0b, 0xd4, 0x50, 0xe1, 0xd2, 0xf4, 0x12, 0xe2, 0x88, 0xd0, 0xd2, 0xf8, 0x02, 0xbc, - 0x10, 0xcc, 0x87, 0xce, 0x65, 0x2e, 0xe3, 0x59, 0x1c, 0x85, 0xd8, 0xec, 0xfa, 0x0c, 0x8b, 0xc3, - 0x98, 0x51, 0x26, 0x8b, 0x7c, 0xba, 0x8a, 0x28, 0xa6, 0xaa, 0x62, 0x4c, 0x0e, 0xcf, 0x27, 0x31, - 0x8a, 0x44, 0x7f, 0xc5, 0x4b, 0x88, 0xff, 0x4c, 0xc3, 0xb5, 0xb6, 0xdd, 0x19, 0xae, 0x31, 0xf2, - 0xea, 0x29, 0xe3, 0xc5, 0x68, 0x50, 0xba, 0xad, 0x21, 0x7e, 0x62, 0xce, 0x0a, 0x1e, 0x4a, 0xbe, - 0xf1, 0xbb, 0x1a, 0x18, 0x0c, 0xaa, 0x3c, 0xe6, 0xe9, 0x1d, 0x2f, 0xce, 0xf2, 0x55, 0x26, 0xc9, - 0xf9, 0xbd, 0xc0, 0xa4, 0xfc, 0xdf, 0x2a, 0xd0, 0xc6, 0xc9, 0x2b, 0x55, 0x39, 0x82, 0x3a, 0xc1, - 0xcd, 0x24, 0x28, 0x84, 0x22, 0x1b, 0x72, 0xd0, 0x1a, 0xb9, 0x51, 0xb4, 0x51, 0x80, 0xd6, 0x98, - 0x7f, 0x41, 0x46, 0xeb, 0xb6, 0xd7, 0x88, 0xde, 0x29, 0xf9, 0x5d, 0x9c, 0x70, 0x5d, 0xac, 0x46, - 0x68, 0xe9, 0x69, 0x5c, 0xc8, 0x7b, 0x5d, 0xae, 0x02, 0xc8, 0x0e, 0xd3, 0x30, 0x4e, 0x74, 0xbd, - 0x0a, 0x68, 0x5d, 0x9a, 0xa5, 0x2e, 0xfe, 0xaf, 0x15, 0xd8, 0x57, 0xc5, 0x92, 0x3b, 0x78, 0xfd, - 0x63, 0xa8, 0xcd, 0x71, 0x4d, 0xb7, 0xdf, 0x79, 0xae, 0x18, 0xf6, 0x07, 0x2a, 0x8e, 0x9d, 0x40, - 0x23, 0xc2, 0x2d, 0xf2, 0x82, 0x4a, 0x6b, 0x9f, 0x78, 0x3b, 0x7f, 0x1b, 0x65, 0x46, 0x19, 0xc8, - 0x3e, 0x00, 0xa4, 0x24, 0x21, 0x7d, 0x43, 0xd5, 0xc3, 0xea, 0xef, 0xd3, 0x8c, 0xd8, 0xd3, 0xa3, - 0x9f, 0x0e, 0xfb, 0xc7, 0xea, 0x11, 0xf8, 0xad, 0x11, 0x7f, 0x57, 0xa7, 0xe7, 0xe0, 0xfb, 0xbf, - 0x02, 0x00, 0x00, 0xff, 0xff, 0xc2, 0x41, 0x03, 0xcb, 0x21, 0x0a, 0x00, 0x00, +func init() { proto.RegisterFile("sdk_ws/ws.proto", fileDescriptor_ws_0e67cfdf7b3776b1) } + +var fileDescriptor_ws_0e67cfdf7b3776b1 = []byte{ + // 1078 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x8c, 0x56, 0x5d, 0x4f, 0xe3, 0x46, + 0x14, 0x95, 0xed, 0x04, 0xc8, 0x0d, 0xb0, 0xab, 0x29, 0xa2, 0xee, 0xaa, 0xaa, 0x22, 0xb7, 0xaa, + 0xa2, 0x7d, 0x00, 0x89, 0x7d, 0xa9, 0xb6, 0xaa, 0xaa, 0x42, 0x02, 0xf2, 0x6a, 0x03, 0x68, 0x60, + 0x5f, 0xfa, 0x82, 0x8c, 0x33, 0x80, 0x85, 0x3f, 0x12, 0x8f, 0x03, 0xe1, 0x7f, 0xf4, 0xb5, 0xff, + 0xa1, 0xaf, 0xed, 0x4f, 0xe8, 0x43, 0xff, 0x51, 0xa5, 0xea, 0xde, 0x19, 0x9b, 0x99, 0x18, 0xb5, + 0x7d, 0x9b, 0x73, 0x72, 0xc7, 0x33, 0xf7, 0x9c, 0x73, 0x1d, 0xc3, 0x2b, 0x39, 0xbd, 0xbf, 0x7a, + 0x94, 0xfb, 0x8f, 0x72, 0x6f, 0x56, 0x16, 0x55, 0xc1, 0xfa, 0xc5, 0x4c, 0xe4, 0x57, 0x49, 0x76, + 0x25, 0xa7, 0xf7, 0xc1, 0x9f, 0x0e, 0xf8, 0xe7, 0x8b, 0x34, 0x9d, 0x08, 0x29, 0xa3, 0x5b, 0x71, + 0xf8, 0x74, 0x21, 0xe6, 0x1f, 0x13, 0x59, 0x71, 0x21, 0x67, 0x6c, 0x17, 0xd6, 0x26, 0xd1, 0xf2, + 0x42, 0xcc, 0x7d, 0x67, 0xe0, 0x0c, 0x3d, 0xae, 0x11, 0xf1, 0x49, 0x8e, 0xbc, 0xab, 0x79, 0x42, + 0xec, 0x47, 0xd8, 0xba, 0x48, 0xf2, 0xdb, 0x54, 0x7c, 0x92, 0xa2, 0x9c, 0xc8, 0x5b, 0xdf, 0x1b, + 0x78, 0xc3, 0xfe, 0xc1, 0x17, 0x7b, 0xc6, 0x89, 0x7b, 0x27, 0x51, 0x75, 0x27, 0xca, 0xe3, 0xa2, + 0xcc, 0xa2, 0x8a, 0xdb, 0xf5, 0xec, 0x07, 0xd8, 0x3c, 0x29, 0x8b, 0xc5, 0xac, 0xde, 0xdf, 0xf9, + 0xaf, 0xfd, 0x56, 0x79, 0xf0, 0x0e, 0x3e, 0x7f, 0xb9, 0x97, 0x39, 0xf3, 0x61, 0x5d, 0x2a, 0xe4, + 0x3b, 0x03, 0x6f, 0xe8, 0xf1, 0x1a, 0x06, 0x3b, 0xc0, 0x4e, 0x44, 0x35, 0x89, 0x96, 0x3f, 0xe5, + 0x53, 0xd5, 0x07, 0x17, 0xf3, 0x60, 0x0c, 0x9f, 0xb5, 0x58, 0xa5, 0x48, 0x66, 0x29, 0x92, 0x35, + 0x8a, 0x64, 0x96, 0x22, 0x0a, 0x05, 0x1f, 0x60, 0xd3, 0xbc, 0x2f, 0xdb, 0x06, 0x37, 0x1c, 0xd1, + 0xde, 0x1e, 0x77, 0xc3, 0x11, 0x7b, 0x0b, 0x1d, 0xba, 0x93, 0x4b, 0x8d, 0xee, 0x5a, 0x8d, 0x4e, + 0xe4, 0xad, 0xee, 0x92, 0x6a, 0x82, 0xbf, 0x5d, 0xe8, 0x35, 0x1c, 0x9e, 0x78, 0x21, 0xf2, 0x69, + 0xf3, 0x34, 0x8d, 0x90, 0xe7, 0x22, 0x7e, 0x08, 0x47, 0x74, 0x93, 0x1e, 0xd7, 0x08, 0x05, 0xc0, + 0xcd, 0x65, 0x91, 0xf9, 0xde, 0xc0, 0x19, 0x76, 0x79, 0x0d, 0xd9, 0x00, 0xfa, 0x47, 0x45, 0x5e, + 0x89, 0xbc, 0xba, 0x7c, 0x9a, 0x09, 0xbf, 0x43, 0xbf, 0x9a, 0x14, 0x56, 0x5c, 0x88, 0xf2, 0x81, + 0x44, 0x0e, 0x47, 0x7e, 0x97, 0x1e, 0x6c, 0x52, 0xf8, 0x74, 0xbd, 0xc1, 0x5f, 0xa3, 0x5f, 0x6b, + 0xc8, 0x5e, 0x83, 0x87, 0xb2, 0xac, 0x93, 0x2c, 0xb8, 0x64, 0x6f, 0x60, 0x03, 0xef, 0x7a, 0x99, + 0x64, 0xc2, 0xdf, 0x20, 0xba, 0xc1, 0xec, 0x2d, 0xbc, 0xc6, 0xb5, 0x28, 0xcf, 0xd3, 0xa8, 0xba, + 0x29, 0xca, 0x2c, 0x1c, 0xf9, 0x3d, 0xba, 0x50, 0x8b, 0x67, 0xdf, 0xc2, 0xb6, 0xe2, 0x4e, 0x93, + 0xf8, 0xfe, 0x34, 0xca, 0x84, 0x0f, 0x74, 0xf4, 0x0a, 0xcb, 0xbe, 0x81, 0x2d, 0xc5, 0x1c, 0x47, + 0xb1, 0xf8, 0xc4, 0x3f, 0xfa, 0x7d, 0x2a, 0xb3, 0x49, 0x52, 0x21, 0x4d, 0x44, 0x5e, 0xa9, 0x1e, + 0x37, 0x55, 0x8f, 0x06, 0x15, 0xfc, 0xe5, 0xc1, 0x36, 0x26, 0x0d, 0xf7, 0x4d, 0xe4, 0x2d, 0xa6, + 0xea, 0x10, 0xd6, 0xcf, 0x66, 0x55, 0x52, 0xe4, 0x92, 0x52, 0xd5, 0x3f, 0x18, 0x5a, 0x0e, 0xda, + 0xd5, 0x7b, 0xba, 0x74, 0x9c, 0x57, 0xe5, 0x13, 0xaf, 0x37, 0xbe, 0xd0, 0x86, 0xfb, 0xff, 0xda, + 0xf0, 0x5e, 0x6a, 0xe3, 0x2b, 0x00, 0x43, 0x3a, 0xe5, 0xa5, 0xc1, 0x28, 0x2b, 0xa5, 0x4c, 0x8a, + 0x9c, 0xcc, 0xee, 0x2a, 0xb3, 0x0d, 0xca, 0x0c, 0xca, 0xda, 0xbf, 0x06, 0x65, 0xbd, 0x1d, 0x94, + 0xe7, 0xf0, 0x6d, 0x58, 0xe1, 0xfb, 0x12, 0x7a, 0xc7, 0x45, 0x19, 0x0b, 0xca, 0x7a, 0x6f, 0xe0, + 0x0d, 0x7b, 0xfc, 0x99, 0x30, 0xc3, 0x03, 0x76, 0x78, 0x56, 0x4c, 0xe9, 0xb7, 0x4c, 0x79, 0xf3, + 0x1e, 0x36, 0x4d, 0x59, 0x31, 0x6e, 0xf7, 0xe2, 0x49, 0xcf, 0x04, 0x2e, 0xd9, 0x0e, 0x74, 0x1f, + 0xa2, 0x74, 0xa1, 0x64, 0xed, 0x72, 0x05, 0xde, 0xbb, 0xdf, 0x39, 0xc1, 0x1c, 0x5e, 0x59, 0x0e, + 0xc9, 0xd9, 0x6a, 0xd2, 0x9d, 0x76, 0xd2, 0x57, 0xae, 0xe4, 0xb6, 0xae, 0x84, 0xf9, 0x96, 0x75, + 0xbe, 0x3d, 0x95, 0xef, 0x1a, 0x07, 0xbf, 0x7a, 0xa4, 0xee, 0x28, 0xaa, 0x22, 0x14, 0x4b, 0x5a, + 0x13, 0x2c, 0x9b, 0x09, 0x2e, 0xad, 0x09, 0x56, 0x08, 0x4f, 0x96, 0x86, 0x75, 0x6a, 0x8a, 0x4d, + 0x0a, 0x85, 0xcc, 0xb4, 0x75, 0xca, 0xf9, 0x1a, 0xe2, 0xde, 0xd8, 0xb0, 0x4e, 0xdb, 0x1e, 0xdb, + 0x33, 0x2e, 0x8d, 0xce, 0xd5, 0x14, 0x9b, 0x14, 0x3e, 0x5d, 0x6f, 0x20, 0xeb, 0x7b, 0xbc, 0x86, + 0x56, 0xc7, 0x1b, 0x76, 0xc7, 0x68, 0x88, 0x14, 0x73, 0x1a, 0x62, 0x8f, 0xe3, 0x12, 0x67, 0x5c, + 0xae, 0xce, 0x38, 0xa8, 0x19, 0x97, 0x2f, 0xcc, 0xb8, 0xb4, 0x87, 0x43, 0x65, 0x60, 0x85, 0xc5, + 0xe1, 0x90, 0xd6, 0x70, 0xa8, 0xf9, 0xb5, 0x49, 0x52, 0xc1, 0xf0, 0x6e, 0x4b, 0xf5, 0x68, 0x50, + 0xc1, 0x04, 0x5e, 0x9d, 0xdd, 0xdc, 0xa4, 0x49, 0x2e, 0xce, 0x17, 0xf2, 0x2e, 0xcc, 0x6f, 0x0a, + 0xcc, 0xcf, 0x65, 0x52, 0xa5, 0x42, 0xbb, 0xa4, 0x00, 0x63, 0xd0, 0x19, 0x09, 0x19, 0x6b, 0x8b, + 0x68, 0x8d, 0xad, 0x8e, 0x97, 0x95, 0x9e, 0x4b, 0x5c, 0x06, 0xbf, 0xb8, 0xfa, 0x0f, 0x0d, 0x9f, + 0x74, 0x99, 0xcc, 0x50, 0x43, 0x85, 0x6b, 0xd3, 0x6b, 0x88, 0x23, 0x42, 0x4b, 0xe3, 0x0d, 0xf0, + 0x4c, 0xb0, 0x00, 0x36, 0x4f, 0x8b, 0x2a, 0xb9, 0x49, 0xe2, 0x08, 0xc3, 0xae, 0xcf, 0xb0, 0x38, + 0xac, 0x09, 0xf3, 0xaa, 0x2c, 0xa6, 0x8b, 0x98, 0x6a, 0x3a, 0xaa, 0xc6, 0xe4, 0xf0, 0x7c, 0x12, + 0xa3, 0x4c, 0xf5, 0x5b, 0xbc, 0x86, 0xf8, 0xcf, 0x34, 0x5e, 0x6a, 0xdb, 0xdd, 0xf1, 0x12, 0x2b, + 0xcf, 0x1e, 0x73, 0x51, 0x86, 0xa3, 0xda, 0x6d, 0x0d, 0xf1, 0x15, 0x73, 0x54, 0x8a, 0xa8, 0x12, + 0x8d, 0xdf, 0x1d, 0x6e, 0x30, 0xa8, 0xf2, 0x44, 0x64, 0xd7, 0xa2, 0x3c, 0x2a, 0x16, 0x79, 0x45, + 0xce, 0x6f, 0x71, 0x93, 0x0a, 0x7e, 0x73, 0x60, 0x97, 0x7a, 0x53, 0xe4, 0xf1, 0x22, 0x4d, 0x5b, + 0x02, 0x4d, 0x6d, 0x81, 0xa6, 0x38, 0x16, 0x38, 0xad, 0xe1, 0xb4, 0x1e, 0x0b, 0x85, 0xd0, 0x09, + 0x5e, 0xa4, 0xf5, 0x3c, 0xd0, 0x1a, 0x03, 0xf9, 0xa1, 0x48, 0x72, 0xba, 0x60, 0x87, 0x2e, 0xd8, + 0x60, 0xfc, 0xad, 0x09, 0x93, 0xd2, 0xa0, 0xc1, 0xa6, 0x3c, 0x6b, 0x96, 0x3c, 0xc1, 0x1f, 0x0e, + 0x6c, 0xab, 0x1e, 0xe9, 0x3e, 0x78, 0xd5, 0x7d, 0xe8, 0xd2, 0x9a, 0x2e, 0xda, 0xfa, 0x4a, 0x31, + 0x5c, 0xe7, 0xaa, 0x8e, 0x1d, 0xc0, 0x3a, 0x3d, 0xa2, 0x28, 0xa9, 0x85, 0xfe, 0x81, 0xdf, 0xfa, + 0xb7, 0xa8, 0x77, 0xd4, 0x85, 0xec, 0x08, 0x40, 0x89, 0x44, 0xaf, 0x4e, 0xf5, 0x3d, 0xf5, 0x75, + 0xfb, 0xa4, 0x96, 0x90, 0xdc, 0xd8, 0x16, 0xfc, 0xee, 0x40, 0xdf, 0x78, 0x7a, 0x23, 0x65, 0xf3, + 0xe6, 0x51, 0x08, 0xa5, 0x34, 0xe2, 0x47, 0x6b, 0xe4, 0xc2, 0xb8, 0x49, 0x1c, 0xad, 0x71, 0xff, + 0x09, 0x0d, 0x96, 0x7e, 0xcd, 0x68, 0x44, 0xdf, 0x85, 0xc5, 0x75, 0x92, 0xd6, 0xc2, 0x6a, 0x84, + 0x23, 0x74, 0x98, 0x94, 0xd5, 0x9d, 0x16, 0x55, 0x01, 0x64, 0xc7, 0x59, 0x94, 0xa4, 0x3a, 0x5f, + 0x0a, 0xe8, 0x1c, 0x6e, 0xd4, 0x39, 0x3c, 0xdc, 0xfd, 0x79, 0x67, 0x6f, 0x5f, 0x7d, 0xc2, 0x7e, + 0x6f, 0xb4, 0x7d, 0xbd, 0x46, 0x1f, 0xb3, 0xef, 0xfe, 0x09, 0x00, 0x00, 0xff, 0xff, 0x6f, 0xce, + 0xa8, 0xe0, 0xdf, 0x0a, 0x00, 0x00, } diff --git a/pkg/proto/sdk_ws/ws.proto b/pkg/proto/sdk_ws/ws.proto index 9b9d805b4..5ffc7bcdd 100644 --- a/pkg/proto/sdk_ws/ws.proto +++ b/pkg/proto/sdk_ws/ws.proto @@ -107,10 +107,10 @@ message GroupInfoTip{ -type GroupMemberFullInfoTip struct { +message GroupMemberFullInfoTip { string GroupId = 1 ; string UserId = 2 ; - int Role = 3; + int32 Role = 3; uint64 JoinTime = 4; string NickName = 5; string FaceUrl =6; @@ -119,10 +119,20 @@ type GroupMemberFullInfoTip struct { message CreateGroupTip{ - GroupInfoTip group = 1; - UserInfoTip creator = 2; - repeated GroupMemberFullInfoTip memberList = 3; + GroupInfoTip Group = 1; + UserInfoTip Creator = 2; + repeated GroupMemberFullInfoTip MemberList = 3; } +message UserInfoTip { + string UserID = 1; + string Name = 2; + string Icon = 3; + int32 Gender = 4; + string Mobile = 5; + string Birth = 6; + string Email = 7; + string Ex = 8; +} From b84dbbc3b8c18d33b16aed4c60ef1833397cec2a Mon Sep 17 00:00:00 2001 From: skiffer-git <44203734@qq.com> Date: Tue, 14 Dec 2021 15:11:35 +0800 Subject: [PATCH 202/814] notification --- cmd/Open-IM-SDK-Core | 2 +- internal/rpc/chat/send_msg.go | 6 ++--- internal/rpc/group/create_group.go | 43 +++++------------------------- 3 files changed, 11 insertions(+), 40 deletions(-) diff --git a/cmd/Open-IM-SDK-Core b/cmd/Open-IM-SDK-Core index 369973051..a85c10dbf 160000 --- a/cmd/Open-IM-SDK-Core +++ b/cmd/Open-IM-SDK-Core @@ -1 +1 @@ -Subproject commit 369973051405db1102fd1b99a0226ab79b9922e0 +Subproject commit a85c10dbffbb797b5b2091e209ff67a5534b9bfc diff --git a/internal/rpc/chat/send_msg.go b/internal/rpc/chat/send_msg.go index cc865e66a..f72404789 100644 --- a/internal/rpc/chat/send_msg.go +++ b/internal/rpc/chat/send_msg.go @@ -226,9 +226,9 @@ func CreateGroupNotification(sendID string, creator im_mysql_model.User, group i msg.Content = utils.StructToJsonString(tip) var offlinePushInfo open_im_sdk.OfflinePushInfo - offlinePushInfo.Title = "create group title" - offlinePushInfo.Desc = "create group desc" - offlinePushInfo.Ext = "create group ext" + offlinePushInfo.Title = config.Config.Notification.CreateGroup.Title + offlinePushInfo.Desc = config.Config.Notification.CreateGroup.Desc + offlinePushInfo.Ext = config.Config.Notification.CreateGroup.Ext Notification(&msg, false, offlinePushInfo) } diff --git a/internal/rpc/group/create_group.go b/internal/rpc/group/create_group.go index e36048304..826a08615 100644 --- a/internal/rpc/group/create_group.go +++ b/internal/rpc/group/create_group.go @@ -1,8 +1,6 @@ package group import ( - "Open_IM/internal/push/content_struct" - "Open_IM/internal/push/logic" "Open_IM/internal/rpc/chat" "Open_IM/pkg/common/config" "Open_IM/pkg/common/constant" @@ -11,9 +9,7 @@ import ( "Open_IM/pkg/common/log" "Open_IM/pkg/common/token_verify" "Open_IM/pkg/grpc-etcdv3/getcdv3" - pbChat "Open_IM/pkg/proto/chat" pbGroup "Open_IM/pkg/proto/group" - open_im_sdk "Open_IM/pkg/proto/sdk_ws" "Open_IM/pkg/utils" "context" "google.golang.org/grpc" @@ -71,7 +67,7 @@ func (s *groupServer) Run() { } func (s *groupServer) CreateGroup(ctx context.Context, req *pbGroup.CreateGroupReq) (*pbGroup.CreateGroupResp, error) { - log.InfoByArgs("rpc create group is server,args=%s", req.String()) + log.NewInfo(req.OperationID, "rpc create group is server,args=%s", req.String()) var ( groupId string ) @@ -133,49 +129,24 @@ func (s *groupServer) CreateGroup(ctx context.Context, req *pbGroup.CreateGroupR } } - if isMagagerFlag == 1 { - - //type NotificationContent struct { - // IsDisplay int32 `json:"isDisplay"` - // DefaultTips string `json:"defaultTips"` - // Detail string `json:"detail"` - //} n := NotificationContent{ - // IsDisplay: 1, - // DefaultTips: "You have joined the group chat:" + createGroupResp.Data.GroupName, - // Detail: createGroupResp.Data.GroupId, - // } - - ////Push message when create group chat - n := content_struct.NotificationContent{1, req.GroupName, groupId} - logic.SendMsgByWS(&pbChat.WSToMsgSvrChatMsg{ - SendID: claims.UID, - RecvID: groupId, - Content: n.ContentToString(), - SendTime: utils.GetCurrentTimestampByNano(), - MsgFrom: constant.SysMsgType, //Notification message identification - ContentType: constant.CreateGroupTip, //Add friend flag - SessionType: constant.GroupChatType, - OperationID: req.OperationID, - }) - } - - var tip open_im_sdk.CreateGroupTip groupInfo, err := im_mysql_model.FindGroupInfoByGroupId(groupId) if err != nil { + log.NewError(req.OperationID, "FindGroupInfoByGroupId failed ", groupId) return &pbGroup.CreateGroupResp{ErrorCode: constant.ErrCreateGroup.ErrCode, ErrorMsg: constant.ErrCreateGroup.ErrMsg}, nil } creatorInfo, err := im_mysql_model.FindUserByUID(claims.UID) if err != nil { - + log.NewError(req.OperationID, "FindUserByUID failed ", claims.UID) + return &pbGroup.CreateGroupResp{ErrorCode: constant.ErrCreateGroup.ErrCode, ErrorMsg: constant.ErrCreateGroup.ErrMsg}, nil } memberList, err := im_mysql_model.FindGroupMemberListByGroupId(groupId) if err != nil { - + log.NewError(req.OperationID, "FindGroupMemberListByGroupId failed ", groupId) } - chat.CreateGroupNotification(claims.UID, *creatorInfo, *groupInfo, memberList) - log.Info(req.Token, req.OperationID, "rpc create group success return") + log.NewInfo(req.OperationID, "creator, group, member list: ", *creatorInfo, *groupInfo, memberList) + chat.CreateGroupNotification(claims.UID, *creatorInfo, *groupInfo, memberList) return &pbGroup.CreateGroupResp{GroupID: groupId}, nil } From 7a6df3abd37eaa5d1a7e06b68ede3ab110fe01b8 Mon Sep 17 00:00:00 2001 From: itltf512116 Date: Fri, 17 Dec 2021 10:49:01 +0800 Subject: [PATCH 203/814] =?UTF-8?q?Tuoyun=20=E6=96=B0=E5=A2=9E=E5=8D=95?= =?UTF-8?q?=E5=AE=B9=E5=99=A8=E5=8D=95=E8=BF=9B=E7=A8=8B=E7=9A=84=E9=83=A8?= =?UTF-8?q?=E7=BD=B2=E6=96=B9=E5=BC=8F=20(#103)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * feat 新增deploy:单容器单进程模型部署 * feat 新增openim内部各组件的host名称配置; fix 独立容器部署镜像文档; * feat 新增注释说明 --- .gitignore | 13 +- cmd/Open-IM-SDK-Core | 2 +- cmd/open_im_api/main.go | 5 +- cmd/open_im_demo/main.go | 5 +- config/config.yaml | 11 + deploy/.dockerignore | 6 + deploy/Makefile | 158 +++++++ deploy/config.example.yaml | 178 ++++++++ deploy/dockerfiles/Dockerfile.api | 16 + deploy/dockerfiles/Dockerfile.demo | 16 + deploy/dockerfiles/Dockerfile.msg_gateway | 16 + deploy/dockerfiles/Dockerfile.msg_transfer | 16 + deploy/dockerfiles/Dockerfile.push | 16 + deploy/dockerfiles/Dockerfile.rpc_auth | 16 + deploy/dockerfiles/Dockerfile.rpc_friend | 16 + deploy/dockerfiles/Dockerfile.rpc_group | 16 + deploy/dockerfiles/Dockerfile.rpc_msg | 16 + deploy/dockerfiles/Dockerfile.rpc_user | 16 + deploy/dockerfiles/Dockerfile.timer_task | 16 + deploy/env.yaml | 101 ++++ deploy/openim.yaml | 223 +++++++++ deploy/readme.md | 30 ++ go.mod | 7 +- go.sum | 508 +++++++++++++++++++-- internal/demo/register/login.go | 7 +- internal/demo/register/set_password.go | 9 +- internal/msg_gateway/gate/rpc_server.go | 10 +- internal/msg_gateway/gate/ws_server.go | 6 +- internal/push/logic/push_rpc_server.go | 12 +- internal/rpc/auth/rpcAuth.go | 10 +- internal/rpc/chat/rpcChat.go | 10 +- internal/rpc/friend/get_firends_info.go | 11 +- internal/rpc/group/create_group.go | 10 +- internal/rpc/user/get_user_info.go | 11 +- pkg/common/config/config.go | 18 +- 35 files changed, 1454 insertions(+), 83 deletions(-) create mode 100644 deploy/.dockerignore create mode 100644 deploy/Makefile create mode 100644 deploy/config.example.yaml create mode 100644 deploy/dockerfiles/Dockerfile.api create mode 100644 deploy/dockerfiles/Dockerfile.demo create mode 100644 deploy/dockerfiles/Dockerfile.msg_gateway create mode 100644 deploy/dockerfiles/Dockerfile.msg_transfer create mode 100644 deploy/dockerfiles/Dockerfile.push create mode 100644 deploy/dockerfiles/Dockerfile.rpc_auth create mode 100644 deploy/dockerfiles/Dockerfile.rpc_friend create mode 100644 deploy/dockerfiles/Dockerfile.rpc_group create mode 100644 deploy/dockerfiles/Dockerfile.rpc_msg create mode 100644 deploy/dockerfiles/Dockerfile.rpc_user create mode 100644 deploy/dockerfiles/Dockerfile.timer_task create mode 100644 deploy/env.yaml create mode 100644 deploy/openim.yaml create mode 100644 deploy/readme.md diff --git a/.gitignore b/.gitignore index 532c7da35..0947afd71 100644 --- a/.gitignore +++ b/.gitignore @@ -6,4 +6,15 @@ logs out-test .github - +deploy/open_im_demo +deploy/open_im_api +deploy/open_im_msg_gateway +deploy/open_im_msg_transfer +deploy/open_im_push +deploy/open_im_timer_task +deploy/open_im_rpc_user +deploy/open_im_rpc_friend +deploy/open_im_rpc_group +deploy/open_im_rpc_msg +deploy/open_im_rpc_auth +deploy/Open-IM-SDK-Core diff --git a/cmd/Open-IM-SDK-Core b/cmd/Open-IM-SDK-Core index 369973051..d6372d6fe 160000 --- a/cmd/Open-IM-SDK-Core +++ b/cmd/Open-IM-SDK-Core @@ -1 +1 @@ -Subproject commit 369973051405db1102fd1b99a0226ab79b9922e0 +Subproject commit d6372d6fe5aeea1a57e5668b510bb6e42a7e49a3 diff --git a/cmd/open_im_api/main.go b/cmd/open_im_api/main.go index 0bd70d7e3..6664ee3bc 100644 --- a/cmd/open_im_api/main.go +++ b/cmd/open_im_api/main.go @@ -12,8 +12,9 @@ import ( "Open_IM/pkg/common/log" "Open_IM/pkg/utils" "flag" - "github.com/gin-gonic/gin" "strconv" + + "github.com/gin-gonic/gin" //"syscall" ) @@ -100,5 +101,5 @@ func main() { log.NewPrivateLog("api") ginPort := flag.Int("port", 10000, "get ginServerPort from cmd,default 10000 as port") flag.Parse() - r.Run(utils.ServerIP + ":" + strconv.Itoa(*ginPort)) + r.Run(":" + strconv.Itoa(*ginPort)) } diff --git a/cmd/open_im_demo/main.go b/cmd/open_im_demo/main.go index d43ab3942..58ef79c9a 100644 --- a/cmd/open_im_demo/main.go +++ b/cmd/open_im_demo/main.go @@ -5,8 +5,9 @@ import ( "Open_IM/pkg/common/log" "Open_IM/pkg/utils" "flag" - "github.com/gin-gonic/gin" "strconv" + + "github.com/gin-gonic/gin" ) func main() { @@ -24,5 +25,5 @@ func main() { log.NewPrivateLog("demo") ginPort := flag.Int("port", 42233, "get ginServerPort from cmd,default 42233 as port") flag.Parse() - r.Run(utils.ServerIP + ":" + strconv.Itoa(*ginPort)) + r.Run(":" + strconv.Itoa(*ginPort)) } diff --git a/config/config.yaml b/config/config.yaml index 02dbc6638..f5edcc8e1 100644 --- a/config/config.yaml +++ b/config/config.yaml @@ -57,6 +57,17 @@ kafka: # otherwise the configuration ip is preferred serverip: 0.0.0.0 +# endpoints 内部组件间访问的端点host名称,访问时,可以内部直接访问 host:port 来访问 +endpoints: + api: openim_api + push: openim_push + msg_gateway: openim_msg_gateway + rpc_auth: openim_rpc_auth + rpc_friend: openim_rpc_friend + rpc_group: openim_rpc_group + rpc_msg: openim_rpc_msg + rpc_user: openim_rpc_user + api: openImApiPort: [ 10000 ] sdk: diff --git a/deploy/.dockerignore b/deploy/.dockerignore new file mode 100644 index 000000000..019893ce7 --- /dev/null +++ b/deploy/.dockerignore @@ -0,0 +1,6 @@ +# 先设为忽略所有内容 +**/** + + +# 然后逐个排除 +!open_im_* \ No newline at end of file diff --git a/deploy/Makefile b/deploy/Makefile new file mode 100644 index 000000000..8250a06a4 --- /dev/null +++ b/deploy/Makefile @@ -0,0 +1,158 @@ + +GREEN_PREFIX="\033[32m" +COLOR_SUFFIX="\033[0m" +SKY_BLUE_PREFIX="\033[36m" + + +# 编译所有需要的组件源码 +win-build-all: + go env -w GOOS=linux + + make build-api && make build-msg-gateway && make build-msg-transfer && make build-push && make build-timer-task + make build-rpc-user && make build-rpc-friend && make build-rpc-group && make build-rpc-msg && make build-rpc-auth + make build-demo + + go env -w GOOS=windows + +# 编译 open_im_api +build-api: + echo -e ${GREEN_PREFIX} "open_im_api building..." ${COLOR_SUFFIX} + go build -ldflags="-w -s" -o open_im_api ../cmd/open_im_api/main.go + echo -e ${GREEN_PREFIX} "open_im_api build ok" ${COLOR_SUFFIX} + +# 编译 open_im_msg_gateway +build-msg-gateway: + echo -e ${GREEN_PREFIX} "open_im_msg_gateway building..." ${COLOR_SUFFIX} + go build -ldflags="-w -s" -o open_im_msg_gateway ../cmd/open_im_msg_gateway/main.go + echo -e ${GREEN_PREFIX} "open_im_msg_gateway build ok" ${COLOR_SUFFIX} + +# 编译 open_im_msg_transfer +build-msg-transfer: + echo -e ${GREEN_PREFIX} "open_im_msg_transfer building..." ${COLOR_SUFFIX} + go build -ldflags="-w -s" -o open_im_msg_transfer ../cmd/open_im_msg_transfer/main.go + echo -e ${GREEN_PREFIX} "open_im_msg_transfer build ok" ${COLOR_SUFFIX} + +# 编译 open_im_push +build-push: + echo -e ${GREEN_PREFIX} "open_im_push building..." ${COLOR_SUFFIX} + go build -ldflags="-w -s" -o open_im_push ../cmd/open_im_push/main.go + echo -e ${GREEN_PREFIX} "open_im_push build ok" ${COLOR_SUFFIX} + +# 编译 open_im_timer_task +build-timer-task: + echo -e ${GREEN_PREFIX} "open_im_timer_task building..." ${COLOR_SUFFIX} + go build -ldflags="-w -s" -o open_im_timer_task ../cmd/open_im_timer_task/main.go + echo -e ${GREEN_PREFIX} "open_im_timer_task build ok" ${COLOR_SUFFIX} + +# 编译 build-rpc-user +build-rpc-user: + echo -e ${SKY_BLUE_PREFIX} "open_im_rpc_user building..." ${COLOR_SUFFIX} + go build -ldflags="-w -s" -o open_im_rpc_user ../cmd/rpc/open_im_user/main.go + echo -e ${SKY_BLUE_PREFIX} "open_im_rpc_user build ok" ${COLOR_SUFFIX} + +# 编译 build-rpc-friend +build-rpc-friend: + echo -e ${SKY_BLUE_PREFIX} "open_im_rpc_friend building..." ${COLOR_SUFFIX} + go build -ldflags="-w -s" -o open_im_rpc_friend ../cmd/rpc/open_im_friend/main.go + echo -e ${SKY_BLUE_PREFIX} "open_im_rpc_friend build ok" ${COLOR_SUFFIX} + +# 编译 build-rpc-group +build-rpc-group: + echo -e ${SKY_BLUE_PREFIX} "open_im_rpc_group building..." ${COLOR_SUFFIX} + go build -ldflags="-w -s" -o open_im_rpc_group ../cmd/rpc/open_im_group/main.go + echo -e ${SKY_BLUE_PREFIX} "open_im_rpc_group build ok" ${COLOR_SUFFIX} + +# 编译 build-rpc-auth +build-rpc-auth: + echo -e ${SKY_BLUE_PREFIX} "open_im_rpc_auth building..." ${COLOR_SUFFIX} + go build -ldflags="-w -s" -o open_im_rpc_auth ../cmd/rpc/open_im_auth/main.go + echo -e ${SKY_BLUE_PREFIX} "open_im_rpc_auth build ok" ${COLOR_SUFFIX} + +# 编译 build-rpc-msg +build-rpc-msg: + echo -e ${SKY_BLUE_PREFIX} "open_im_rpc_msg building..." ${COLOR_SUFFIX} + go build -ldflags="-w -s" -o open_im_rpc_msg ../cmd/rpc/open_im_msg/main.go + echo -e ${SKY_BLUE_PREFIX} "open_im_rpc_msg build ok" ${COLOR_SUFFIX} + +# 编译 open_im_demo +build-demo: + echo -e ${SKY_BLUE_PREFIX} "open_im_demo building..." ${COLOR_SUFFIX} + go build -ldflags="-w -s" -o open_im_demo ../cmd/open_im_demo/main.go + echo -e ${SKY_BLUE_PREFIX} "open_im_demo build ok" ${COLOR_SUFFIX} + +# 打包所有组件为镜像 +image-all: + make image-api && make image-msg-gateway && make image-msg-transfer & make image-push && make image-timer-task + make image-rpc-user && make image-rpc-friend && make image-rpc-group && make image-rpc-msg && make image-rpc-auth + make image-demo + +# 打包 open_im_api +image-api: + echo -e ${GREEN_PREFIX} "IMAGE:openim/api building..." ${COLOR_SUFFIX} + docker build -t openim/api:latest -f ./dockerfiles/Dockerfile.api . + echo -e ${GREEN_PREFIX} "IMAGE:openim/api build ok" ${COLOR_SUFFIX} + +# 打包 open_im_msg_gateway +image-msg-gateway: + echo -e ${GREEN_PREFIX} "IMAGE:openim/msg_gateway building..." ${COLOR_SUFFIX} + docker build -t openim/msg_gateway:latest -f ./dockerfiles/Dockerfile.msg_gateway . + echo -e ${GREEN_PREFIX} "IMAGE:openim/msg_gateway build ok" ${COLOR_SUFFIX} + +# 打包 open_im_msg_transfer +image-msg-transfer: + echo -e ${GREEN_PREFIX} "IMAGE:openim/msg_transfer building..." ${COLOR_SUFFIX} + docker build -t openim/msg_transfer:latest -f ./dockerfiles/Dockerfile.msg_transfer . + echo -e ${GREEN_PREFIX} "IMAGE:openim/msg_transfer build ok" ${COLOR_SUFFIX} + +# 打包 open_im_push +image-push: + echo -e ${GREEN_PREFIX} "IMAGE:openim/push building..." ${COLOR_SUFFIX} + docker build -t openim/push:latest -f ./dockerfiles/Dockerfile.push . + echo -e ${GREEN_PREFIX} "IMAGE:openim/push build ok" ${COLOR_SUFFIX} + +# 打包 open_im_timer_task +image-timer-task: + echo -e ${GREEN_PREFIX} "IMAGE:openim/timer_task building..." ${COLOR_SUFFIX} + docker build -t openim/timer_task:latest -f ./dockerfiles/Dockerfile.timer_task . + echo -e ${GREEN_PREFIX} "IMAGE:openim/timer_task build ok" ${COLOR_SUFFIX} + +# 打包 build-rpc-user +image-rpc-user: + echo -e ${SKY_BLUE_PREFIX} "IMAGE:openim/rpc_user building..." ${COLOR_SUFFIX} + docker build -t openim/rpc_user:latest -f ./dockerfiles/Dockerfile.rpc_user . + echo -e ${SKY_BLUE_PREFIX} "IMAGE:openim/rpc_user build ok" ${COLOR_SUFFIX} + +# 打包 build-rpc-friend +image-rpc-friend: + echo -e ${SKY_BLUE_PREFIX} "IMAGE:openim/rpc_friend building..." ${COLOR_SUFFIX} + docker build -t openim/rpc_friend:latest -f ./dockerfiles/Dockerfile.rpc_friend . + echo -e ${SKY_BLUE_PREFIX} "IMAGE:openim/rpc_friend build ok" ${COLOR_SUFFIX} + +# 打包 build-rpc-group +image-rpc-group: + echo -e ${SKY_BLUE_PREFIX} "IMAGE:openim/rpc_group building..." ${COLOR_SUFFIX} + docker build -t openim/rpc_group:latest -f ./dockerfiles/Dockerfile.rpc_group . + echo -e ${SKY_BLUE_PREFIX} "IMAGE:openim/rpc_group build ok" ${COLOR_SUFFIX} + +# 打包 build-rpc-auth +image-rpc-auth: + echo -e ${SKY_BLUE_PREFIX} "IMAGE:openim/rpc_auth building..." ${COLOR_SUFFIX} + docker build -t openim/rpc_auth:latest -f ./dockerfiles/Dockerfile.rpc_auth . + echo -e ${SKY_BLUE_PREFIX} "IMAGE:openim/rpc_auth build ok" ${COLOR_SUFFIX} + +# 打包 build-rpc-msg +image-rpc-msg: + echo -e ${SKY_BLUE_PREFIX} "IMAGE:openim/rpc_msg building..." ${COLOR_SUFFIX} + docker build -t openim/rpc_msg:latest -f ./dockerfiles/Dockerfile.rpc_msg . + echo -e ${SKY_BLUE_PREFIX} "IMAGE:openim/rpc_msg build ok" ${COLOR_SUFFIX} + +# 打包 open_im_demo +image-demo: + echo -e ${SKY_BLUE_PREFIX} "IMAGE:openim/demo building..." ${COLOR_SUFFIX} + docker build -t openim/demo:latest -f ./dockerfiles/Dockerfile.demo . + echo -e ${SKY_BLUE_PREFIX} "IMAGE:openim/demo build ok" ${COLOR_SUFFIX} + +.PHONY: win-build-all build-api build-msg-gateway build-msg-transfer build-push + build-timer-task build-rpc-user build-rpc-friend build-rpc-group build-rpc-msg build-demo + image-all image-api image-msg-gateway image-msg-transfer image-push + image-timer-task image-rpc-user image-rpc-friend image-rpc-group image-rpc-msg image-demo diff --git a/deploy/config.example.yaml b/deploy/config.example.yaml new file mode 100644 index 000000000..9f14c96d4 --- /dev/null +++ b/deploy/config.example.yaml @@ -0,0 +1,178 @@ +# The class cannot be named by Pascal or camel case. +# If it is not used, the corresponding structure will not be set, +# and it will not be read naturally. +serverversion: 1.0.3 +#---------------Infrastructure configuration---------------------# +etcd: + etcdSchema: openIM + etcdAddr: [ openim_etcd:2379 ] + +mysql: + dbMysqlAddress: [ openim_mysql:3306 ] # openim_mysql 是对应的mysql服务的host + dbMysqlUserName: openIM + dbMysqlPassword: openIM + dbMysqlDatabaseName: openIM + dbTableName: eMsg + dbMsgTableNum: 1 + dbMaxOpenConns: 20 + dbMaxIdleConns: 10 + dbMaxLifeTime: 120 + +mongo: + dbAddress: [ openim_mongo:27017 ] + dbDirect: false + dbTimeout: 10 + dbDatabase: openIM + dbSource: admin + dbUserName: + dbPassword: + dbMaxPoolSize: 20 + dbRetainChatRecords: 7 + +redis: + dbAddress: openim_redis:6379 + dbMaxIdle: 128 + dbMaxActive: 0 + dbIdleTimeout: 120 + dbPassWord: openIM + +kafka: + ws2mschat: + addr: [ openim_kafka:9092 ] + topic: "ws2ms_chat" + ms2pschat: + addr: [ openim_kafka:9092 ] + topic: "ms2ps_chat" + consumergroupid: + msgToMongo: mongo + msgToMySql: mysql + msgToPush: push + + + +#---------------Internal service configuration---------------------# + +# The service ip default is empty, +# automatically obtain the machine's valid network card ip as the service ip, +# otherwise the configuration ip is preferred +serverip: 0.0.0.0 + +# endpoints 内部组件间访问的端点host名称,访问时,可以内部直接访问 host:port 来访问 +# 新增的这一段配置节,主要是位了注册到etcd时,可以使用同一network下的容器名(host)来访问不同的容器,拆分到不同容器后原来全部使用serverip的形式不能用了 +endpoints: + api: openim_api + push: openim_push + msg_gateway: openim_msg_gateway + rpc_auth: openim_rpc_auth + rpc_friend: openim_rpc_friend + rpc_group: openim_rpc_group + rpc_msg: openim_rpc_msg + rpc_user: openim_rpc_user + +api: + openImApiPort: [ 10000 ] +sdk: + openImSdkWsPort: [ 30000 ] + +credential: + tencent: + appID: 1302656840 + region: ap-chengdu + bucket: echat-1302656840 + secretID: AKIDGNYVChzIQinu7QEgtNp0hnNgqcV8vZTC + secretKey: kz15vW83qM6dBUWIq681eBZA0c0vlIbe + + +rpcport: + openImUserPort: [ 10100 ] + openImFriendPort: [ 10200 ] + openImOfflineMessagePort: [ 10300] + openImOnlineRelayPort: [ 10400 ] + openImGroupPort: [ 10500 ] + openImAuthPort: [ 10600 ] + openImPushPort: [ 10700 ] + + +rpcregistername: + openImUserName: User + openImFriendName: Friend + openImOfflineMessageName: OfflineMessage + openImPushName: Push + openImOnlineMessageRelayName: OnlineMessageRelay + openImGroupName: Group + openImAuthName: Auth + +log: + storageLocation: ../logs/ + rotationTime: 24 + remainRotationCount: 5 + remainLogLevel: 6 + elasticSearchSwitch: false + elasticSearchAddr: [ 127.0.0.1:9201 ] + elasticSearchUser: "" + elasticSearchPassword: "" + +modulename: + longConnSvrName: msg_gateway + msgTransferName: msg_transfer + pushName: push + +longconnsvr: + openImWsPort: [ 17778 ] + websocketMaxConnNum: 10000 + websocketMaxMsgLen: 4096 + websocketTimeOut: 10 + +push: + tpns: + ios: + accessID: 1600018281 + secretKey: 3cd68a77a95b89e5089a1aca523f318f + android: + accessID: 111 + secretKey: 111 + jpns: + appKey: cf47465a368f24c659608e7e + masterSecret: 02204efe3f3832947a236ee5 + pushUrl: "https://api.jpush.cn/v3/push" + pushIntent: "intent:#Intent;component=io.openim.app.enterprisechat/io.openim.app.enterprisechat.MainActivity;end" +manager: + appManagerUid: ["openIM123456","openIM654321"] + secrets: ["openIM1","openIM2"] + +secret: tuoyun + +multiloginpolicy: 1 + +#token config +tokenpolicy: + accessSecret: "open_im_server" + # Token effective time day as a unit + accessExpire: 7 + +messagecallback: + callbackSwitch: false + callbackUrl: "http://www.xxx.com/msg/judge" + #TimeOut use second as unit + callbackTimeOut: 10 + + +#---------------demo configuration---------------------# +#The following configuration items are applied to openIM Demo configuration +demoswitch: true +demo: + openImDemoPort: [ 42233 ] + alismsverify: + accessKeyId: LTAI5tJPkn4HuuePdiLdGqe71 + accessKeySecret: 4n9OJ7ZCVN1U6KeHDAtOyNeVZcjOuV1 + signName: OpenIM Corporation + verificationCodeTemplateCode: SMS_2268101641 + superCode: 666666 + mail: + title: "openIM" + senderMail: "1765567899@qq.com" + senderAuthorizationCode: "1gxyausfoevlzbfag" + smtpAddr: "smtp.qq.com" + smtpPort: 25 + + diff --git a/deploy/dockerfiles/Dockerfile.api b/deploy/dockerfiles/Dockerfile.api new file mode 100644 index 000000000..9c70d735d --- /dev/null +++ b/deploy/dockerfiles/Dockerfile.api @@ -0,0 +1,16 @@ +FROM alpine:3.13 + +# 设置固定的项目路径 +ENV WORKDIR /app +ENV CONFIG_NAME $WORKDIR/config/config.yaml + +# 将可执行文件复制到目标目录 +ADD ./open_im_api $WORKDIR/main + +# 创建用于挂载的几个目录,添加可执行权限 +RUN mkdir $WORKDIR/logs $WORKDIR/config $WORKDIR/db && \ + chmod +x $WORKDIR/main + + +WORKDIR $WORKDIR +CMD ./main \ No newline at end of file diff --git a/deploy/dockerfiles/Dockerfile.demo b/deploy/dockerfiles/Dockerfile.demo new file mode 100644 index 000000000..ac77ad8d3 --- /dev/null +++ b/deploy/dockerfiles/Dockerfile.demo @@ -0,0 +1,16 @@ +FROM alpine:3.13 + +# 设置固定的项目路径 +ENV WORKDIR /app +ENV CONFIG_NAME $WORKDIR/config/config.yaml + +# 将可执行文件复制到目标目录 +ADD ./open_im_demo $WORKDIR/main + +# 创建用于挂载的几个目录,添加可执行权限 +RUN mkdir $WORKDIR/logs $WORKDIR/config $WORKDIR/db && \ + chmod +x $WORKDIR/main + + +WORKDIR $WORKDIR +CMD ./main \ No newline at end of file diff --git a/deploy/dockerfiles/Dockerfile.msg_gateway b/deploy/dockerfiles/Dockerfile.msg_gateway new file mode 100644 index 000000000..ffd012bc4 --- /dev/null +++ b/deploy/dockerfiles/Dockerfile.msg_gateway @@ -0,0 +1,16 @@ +FROM alpine:3.13 + +# 设置固定的项目路径 +ENV WORKDIR /app +ENV CONFIG_NAME $WORKDIR/config/config.yaml + +# 将可执行文件复制到目标目录 +ADD ./open_im_msg_gateway $WORKDIR/main + +# 创建用于挂载的几个目录,重命名可执行文件为 main,添加可执行权限 +RUN mkdir $WORKDIR/logs $WORKDIR/config $WORKDIR/db && \ + chmod +x $WORKDIR/main + + +WORKDIR $WORKDIR +CMD ./main \ No newline at end of file diff --git a/deploy/dockerfiles/Dockerfile.msg_transfer b/deploy/dockerfiles/Dockerfile.msg_transfer new file mode 100644 index 000000000..a82c4da8b --- /dev/null +++ b/deploy/dockerfiles/Dockerfile.msg_transfer @@ -0,0 +1,16 @@ +FROM alpine:3.13 + +# 设置固定的项目路径 +ENV WORKDIR /app +ENV CONFIG_NAME $WORKDIR/config/config.yaml + +# 将可执行文件复制到目标目录 +ADD ./open_im_msg_transfer $WORKDIR/main + +# 创建用于挂载的几个目录,添加可执行权限 +RUN mkdir $WORKDIR/logs $WORKDIR/config $WORKDIR/db && \ + chmod +x $WORKDIR/main + + +WORKDIR $WORKDIR +CMD ./main \ No newline at end of file diff --git a/deploy/dockerfiles/Dockerfile.push b/deploy/dockerfiles/Dockerfile.push new file mode 100644 index 000000000..b929dd82c --- /dev/null +++ b/deploy/dockerfiles/Dockerfile.push @@ -0,0 +1,16 @@ +FROM alpine:3.13 + +# 设置固定的项目路径 +ENV WORKDIR /app +ENV CONFIG_NAME $WORKDIR/config/config.yaml + +# 将可执行文件复制到目标目录 +ADD ./open_im_push $WORKDIR/main + +# 创建用于挂载的几个目录,添加可执行权限 +RUN mkdir $WORKDIR/logs $WORKDIR/config $WORKDIR/db && \ + chmod +x $WORKDIR/main + + +WORKDIR $WORKDIR +CMD ./main \ No newline at end of file diff --git a/deploy/dockerfiles/Dockerfile.rpc_auth b/deploy/dockerfiles/Dockerfile.rpc_auth new file mode 100644 index 000000000..a8e50fdb1 --- /dev/null +++ b/deploy/dockerfiles/Dockerfile.rpc_auth @@ -0,0 +1,16 @@ +FROM alpine:3.13 + +# 设置固定的项目路径 +ENV WORKDIR /app +ENV CONFIG_NAME $WORKDIR/config/config.yaml + +# 将可执行文件复制到目标目录 +ADD ./open_im_rpc_auth $WORKDIR/main + +# 创建用于挂载的几个目录,添加可执行权限 +RUN mkdir $WORKDIR/logs $WORKDIR/config $WORKDIR/db && \ + chmod +x $WORKDIR/main + + +WORKDIR $WORKDIR +CMD ./main \ No newline at end of file diff --git a/deploy/dockerfiles/Dockerfile.rpc_friend b/deploy/dockerfiles/Dockerfile.rpc_friend new file mode 100644 index 000000000..cfa2fe18c --- /dev/null +++ b/deploy/dockerfiles/Dockerfile.rpc_friend @@ -0,0 +1,16 @@ +FROM alpine:3.13 + +# 设置固定的项目路径 +ENV WORKDIR /app +ENV CONFIG_NAME $WORKDIR/config/config.yaml + +# 将可执行文件复制到目标目录 +ADD ./open_im_rpc_friend $WORKDIR/main + +# 创建用于挂载的几个目录,添加可执行权限 +RUN mkdir $WORKDIR/logs $WORKDIR/config $WORKDIR/db && \ + chmod +x $WORKDIR/main + + +WORKDIR $WORKDIR +CMD ./main \ No newline at end of file diff --git a/deploy/dockerfiles/Dockerfile.rpc_group b/deploy/dockerfiles/Dockerfile.rpc_group new file mode 100644 index 000000000..d56a0fefe --- /dev/null +++ b/deploy/dockerfiles/Dockerfile.rpc_group @@ -0,0 +1,16 @@ +FROM alpine:3.13 + +# 设置固定的项目路径 +ENV WORKDIR /app +ENV CONFIG_NAME $WORKDIR/config/config.yaml + +# 将可执行文件复制到目标目录 +ADD ./open_im_rpc_group $WORKDIR/main + +# 创建用于挂载的几个目录,添加可执行权限 +RUN mkdir $WORKDIR/logs $WORKDIR/config $WORKDIR/db && \ + chmod +x $WORKDIR/main + + +WORKDIR $WORKDIR +CMD ./main \ No newline at end of file diff --git a/deploy/dockerfiles/Dockerfile.rpc_msg b/deploy/dockerfiles/Dockerfile.rpc_msg new file mode 100644 index 000000000..01b5de02f --- /dev/null +++ b/deploy/dockerfiles/Dockerfile.rpc_msg @@ -0,0 +1,16 @@ +FROM alpine:3.13 + +# 设置固定的项目路径 +ENV WORKDIR /app +ENV CONFIG_NAME $WORKDIR/config/config.yaml + +# 将可执行文件复制到目标目录 +ADD ./open_im_rpc_msg $WORKDIR/main + +# 创建用于挂载的几个目录,添加可执行权限 +RUN mkdir $WORKDIR/logs $WORKDIR/config $WORKDIR/db && \ + chmod +x $WORKDIR/main + + +WORKDIR $WORKDIR +CMD ./main \ No newline at end of file diff --git a/deploy/dockerfiles/Dockerfile.rpc_user b/deploy/dockerfiles/Dockerfile.rpc_user new file mode 100644 index 000000000..5be6298bd --- /dev/null +++ b/deploy/dockerfiles/Dockerfile.rpc_user @@ -0,0 +1,16 @@ +FROM alpine:3.13 + +# 设置固定的项目路径 +ENV WORKDIR /app +ENV CONFIG_NAME $WORKDIR/config/config.yaml + +# 将可执行文件复制到目标目录 +ADD ./open_im_rpc_user $WORKDIR/main + +# 创建用于挂载的几个目录,添加可执行权限 +RUN mkdir $WORKDIR/logs $WORKDIR/config $WORKDIR/db && \ + chmod +x $WORKDIR/main + + +WORKDIR $WORKDIR +CMD ./main \ No newline at end of file diff --git a/deploy/dockerfiles/Dockerfile.timer_task b/deploy/dockerfiles/Dockerfile.timer_task new file mode 100644 index 000000000..0c2222cfb --- /dev/null +++ b/deploy/dockerfiles/Dockerfile.timer_task @@ -0,0 +1,16 @@ +FROM alpine:3.13 + +# 设置固定的项目路径 +ENV WORKDIR /app +ENV CONFIG_NAME $WORKDIR/config/config.yaml + +# 将可执行文件复制到目标目录 +ADD ./open_im_timer_task $WORKDIR/main + +# 创建用于挂载的几个目录,添加可执行权限 +RUN mkdir $WORKDIR/logs $WORKDIR/config $WORKDIR/db && \ + chmod +x $WORKDIR/main + + +WORKDIR $WORKDIR +CMD ./main \ No newline at end of file diff --git a/deploy/env.yaml b/deploy/env.yaml new file mode 100644 index 000000000..423807e4f --- /dev/null +++ b/deploy/env.yaml @@ -0,0 +1,101 @@ +version: "3.7" +networks: + openim: + external: true + +services: + mysql: + networks: + - openim + image: mysql:5.7 + # ports: + # #- 13306:3306 + # - 23306:33060 + container_name: openim_mysql + volumes: + - ./components/mysql/data:/var/lib/mysql + - /etc/localtime:/etc/localtime + environment: + MYSQL_ROOT_PASSWORD: openIM + restart: always + + mongodb: + networks: + - openim + image: mongo:4.4.5-bionic + # ports: + # - 37017:27017 + container_name: openim_mongo + volumes: + - ./components/mongodb/data/db:/data/db + - ./components/mongodb/data/logs:/data/logs + - ./components/mongodb/data/conf:/etc/mongo + environment: + TZ: Asia/Shanghai + # - MONGO_INITDB_ROOT_USERNAME=openIM + # - MONGO_INITDB_ROOT_PASSWORD=openIM + restart: always + + redis: + networks: + - openim + image: redis:6.2.4-alpine + # ports: + # - 16379:6379 + container_name: openim_redis + volumes: + - ./components/redis/data:/data + #redis config file + #- ./components/redis/config/redis.conf:/usr/local/redis/config/redis.conf + environment: + TZ: Asia/Shanghai + restart: always + sysctls: + net.core.somaxconn: 1024 + command: redis-server --requirepass openIM --appendonly yes + + + zookeeper: + networks: + - openim + image: wurstmeister/zookeeper + # ports: + # - 2181:2181 + container_name: openim_zookeeper + volumes: + - /etc/localtime:/etc/localtime + environment: + TZ: Asia/Shanghai + restart: always + + kafka: + networks: + - openim + image: wurstmeister/kafka + container_name: openim_kafka + restart: always + environment: + TZ: Asia/Shanghai + KAFKA_BROKER_ID: 0 + KAFKA_ZOOKEEPER_CONNECT: zookeeper:2181 + KAFKA_ADVERTISED_LISTENERS: PLAINTEXT://kafka:9092 + KAFKA_LISTENERS: PLAINTEXT://0.0.0.0:9092 + depends_on: + - zookeeper + + etcd: + networks: + - openim + image: quay.io/coreos/etcd + # ports: + # - 2379:2379 + # - 2380:2380 + container_name: openim_etcd + volumes: + - /etc/timezone:/etc/timezone + - /etc/localtime:/etc/localtime + environment: + ETCDCTL_API: 3 + restart: always + 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 + diff --git a/deploy/openim.yaml b/deploy/openim.yaml new file mode 100644 index 000000000..350729399 --- /dev/null +++ b/deploy/openim.yaml @@ -0,0 +1,223 @@ +version: "3.7" +networks: + openim: + external: true + +services: + api: + networks: + - openim + image: openim/api + container_name: openim_api + ports: + - 10000:10000 # API,必须开 + volumes: + - ./logs:/app/logs + # Dockerfile 里定义了配置文件的路径环境变量,CONFIG_NAME,默认指向了 /app/config/config.yaml + - ./config/config.yaml:/app/config/config.yaml + - ./db/sdk:/app/db/sdk + restart: always + # depends_on: + # - kafka + # # - mysql + # # - mongodb + # - redis + # - etcd + logging: + driver: json-file + options: + max-size: "1g" + max-file: "2" + + msg_gateway: + networks: + - openim + image: openim/msg_gateway + container_name: openim_msg_gateway + ports: + - 17778:17778 # 消息,必须开 + volumes: + - ./logs:/app/logs + - ./config/config.yaml:/app/config/config.yaml + - ./db/sdk:/app/db/sdk + restart: always + # depends_on: + # - kafka + # # - mysql + # # - mongodb + # - redis + # - etcd + logging: + driver: json-file + options: + max-size: "1g" + max-file: "2" + + msg_transfer: + networks: + - openim + image: openim/msg_transfer + container_name: openim_msg_transfer + volumes: + - ./logs:/app/logs + - ./config/config.yaml:/app/config/config.yaml + - ./db/sdk:/app/db/sdk + restart: always + # depends_on: + # - kafka + # # - mysql + # # - mongodb + # - redis + # - etcd + logging: + driver: json-file + options: + max-size: "1g" + max-file: "2" + + push: + networks: + - openim + image: openim/push + container_name: openim_push + volumes: + - ./logs:/app/logs + - ./config/config.yaml:/app/config/config.yaml + - ./db/sdk:/app/db/sdk + restart: always + # depends_on: + # - kafka + # # - mysql + # # - mongodb + # - redis + # - etcd + logging: + driver: json-file + options: + max-size: "1g" + max-file: "2" + + timer_task: + networks: + - openim + image: openim/timer_task + container_name: openim_timer_task + volumes: + - ./logs:/app/logs + - ./config/config.yaml:/app/config/config.yaml + - ./db/sdk:/app/db/sdk + restart: always + # depends_on: + # - kafka + # # - mysql + # # - mongodb + # - redis + # - etcd + logging: + driver: json-file + options: + max-size: "1g" + max-file: "2" + + rpc_user: + networks: + - openim + image: openim/rpc_user + container_name: openim_rpc_user + volumes: + - ./logs:/app/logs + - ./config/config.yaml:/app/config/config.yaml + - ./db/sdk:/app/db/sdk + restart: always + # depends_on: + # - kafka + # # - mysql + # # - mongodb + # - redis + # - etcd + logging: + driver: json-file + options: + max-size: "1g" + max-file: "2" + + rpc_friend: + networks: + - openim + image: openim/rpc_friend + container_name: openim_rpc_friend + volumes: + - ./logs:/app/logs + - ./config/config.yaml:/app/config/config.yaml + - ./db/sdk:/app/db/sdk + restart: always + # depends_on: + # - kafka + # # - mysql + # # - mongodb + # - redis + # - etcd + + rpc_group: + networks: + - openim + image: openim/rpc_group + container_name: openim_rpc_group + volumes: + - ./logs:/app/logs + - ./config/config.yaml:/app/config/config.yaml + - ./db/sdk:/app/db/sdk + restart: always + # depends_on: + # - kafka + # # - mysql + # # - mongodb + # - redis + # - etcd + + rpc_auth: + networks: + - openim + image: openim/rpc_auth + container_name: openim_rpc_auth + volumes: + - ./logs:/app/logs + - ./config/config.yaml:/app/config/config.yaml + - ./db/sdk:/app/db/sdk + restart: always + # depends_on: + # - kafka + # # - mysql + # # - mongodb + # - redis + # - etcd + + rpc_msg: + networks: + - openim + image: openim/rpc_msg + container_name: openim_rpc_msg + volumes: + - ./logs:/app/logs + - ./config/config.yaml:/app/config/config.yaml + - ./db/sdk:/app/db/sdk + restart: always + # depends_on: + # - kafka + # # - mysql + # # - mongodb + # - redis + # - etcd + + demo: + networks: + - openim + image: openim/demo + container_name: openim_demo + ports: + - 42233:42233 + volumes: + - ./logs:/app/logs + - ./config/config.yaml:/app/config/config.yaml + - ./db/sdk:/app/db/sdk + restart: always \ No newline at end of file diff --git a/deploy/readme.md b/deploy/readme.md new file mode 100644 index 000000000..61fbd9700 --- /dev/null +++ b/deploy/readme.md @@ -0,0 +1,30 @@ + +### 以docker-compose 形式单独部署 +```sh +# 查看 ./Makefile ,先编译各个需要的源码到 ../bin +# win-* 表示在win平台编译位linux二进制,其实就是处理了 go env -w GOOS=linux +make win-build-all + +# 得到各个二进制程序之后,打包为镜像 +# 目前没有处理 Open-IM-SDK-Core ,需要的话可以自己单独处理这个模块 +make image-all + +# docker-compose.yaml 分成了两部分,一部分是openIM的镜像容器 openim.yaml,一部分是依赖的环境 env.yaml +# 两部分使用一个外部的网络来联通,所以首先创建用到的 network +docker network create openim --attachable=true -d bridge + +# 处理openim组件需要的挂载目录,主要是处理config目录 +mkdir ./config +cp ./config.example.yaml ./config/config.yaml # 修改 ./config/config.yaml 内容,比如各个依赖组件的 host + +# 然后拉起env.yaml +docker-compose -f ./env.yaml up -d + +# 等env 容器全部拉起成功之后,拉起openim.yaml +docker-compose -f ./openim.yaml up -d + +# 查看容器运行,推荐使用下 portainer ,web查看容器情况,查看日志等等 +docker container ps -a | grep openim + +# 正常应该是查看api,demo等的容器日志,看到gin打印的路由日志才算是成功 +``` \ No newline at end of file diff --git a/go.mod b/go.mod index c4aa2726e..e86107f08 100644 --- a/go.mod +++ b/go.mod @@ -10,7 +10,6 @@ require ( github.com/alibabacloud-go/tea v1.1.17 github.com/antonfisher/nested-logrus-formatter v1.3.0 github.com/bwmarrin/snowflake v0.3.0 - github.com/coreos/go-semver v0.3.0 // indirect github.com/dustin/go-humanize v1.0.0 // indirect github.com/eapache/go-resiliency v1.2.0 // indirect github.com/eapache/go-xerial-snappy v0.0.0-20180814174437-776d5712da21 // indirect @@ -29,21 +28,21 @@ require ( github.com/lestrrat-go/strftime v1.0.4 // indirect github.com/lib/pq v1.2.0 // indirect github.com/mattn/go-sqlite3 v1.14.6 // indirect - github.com/mitchellh/mapstructure v1.4.1 + github.com/mitchellh/mapstructure v1.4.2 github.com/nfnt/resize v0.0.0-20180221191011-83c6a9932646 github.com/olivere/elastic/v7 v7.0.23 github.com/pierrec/lz4 v2.6.1+incompatible // indirect github.com/rcrowley/go-metrics v0.0.0-20201227073835-cf1acfcdf475 // indirect github.com/rifflock/lfshook v0.0.0-20180920164130-b9218ef580f5 github.com/sirupsen/logrus v1.8.1 + github.com/spf13/viper v1.9.0 github.com/stretchr/testify v1.7.0 github.com/tencentyun/qcloud-cos-sts-sdk v0.0.0-20210325043845-84a0811633ca github.com/tmc/grpc-websocket-proxy v0.0.0-20190109142713-0ad062ec5ee5 // indirect go.etcd.io/etcd v0.0.0-20200402134248-51bdeb39e698 golang.org/x/image v0.0.0-20210220032944-ac19c3e999fb golang.org/x/net v0.0.0-20210917221730-978cfadd31cf - golang.org/x/tools v0.0.0-20210106214847-113979e3529a // indirect - google.golang.org/grpc v1.33.2 + google.golang.org/grpc v1.40.0 gopkg.in/alexcesaro/quotedprintable.v3 v3.0.0-20150716171945-2caba252f4dc // indirect gopkg.in/gomail.v2 v2.0.0-20160411212932-81ebce5c23df gopkg.in/mgo.v2 v2.0.0-20190816093944-a6b53ec6cb22 diff --git a/go.sum b/go.sum index 79d0ddadf..7a4dc5ae5 100644 --- a/go.sum +++ b/go.sum @@ -1,5 +1,48 @@ -github.com/BurntSushi/toml v0.3.1 h1:WXkYYl6Yr3qBf1K79EBnL4mak0OimBfB0XUf9Vl28OQ= +cloud.google.com/go v0.34.0/go.mod h1:aQUYkXzVsufM+DwF1aE+0xfcU+56JwCaLick0ClmMTw= +cloud.google.com/go v0.38.0/go.mod h1:990N+gfupTy94rShfmMCWGDn0LpTmnzTp2qbd1dvSRU= +cloud.google.com/go v0.44.1/go.mod h1:iSa0KzasP4Uvy3f1mN/7PiObzGgflwredwwASm/v6AU= +cloud.google.com/go v0.44.2/go.mod h1:60680Gw3Yr4ikxnPRS/oxxkBccT6SA1yMk63TGekxKY= +cloud.google.com/go v0.45.1/go.mod h1:RpBamKRgapWJb87xiFSdk4g1CME7QZg3uwTez+TSTjc= +cloud.google.com/go v0.46.3/go.mod h1:a6bKKbmY7er1mI7TEI4lsAkts/mkhTSZK8w33B4RAg0= +cloud.google.com/go v0.50.0/go.mod h1:r9sluTvynVuxRIOHXQEHMFffphuXHOMZMycpNR5e6To= +cloud.google.com/go v0.52.0/go.mod h1:pXajvRH/6o3+F9jDHZWQ5PbGhn+o8w9qiu/CffaVdO4= +cloud.google.com/go v0.53.0/go.mod h1:fp/UouUEsRkN6ryDKNW/Upv/JBKnv6WDthjR6+vze6M= +cloud.google.com/go v0.54.0/go.mod h1:1rq2OEkV3YMf6n/9ZvGWI3GWw0VoqH/1x2nd8Is/bPc= +cloud.google.com/go v0.56.0/go.mod h1:jr7tqZxxKOVYizybht9+26Z/gUq7tiRzu+ACVAMbKVk= +cloud.google.com/go v0.57.0/go.mod h1:oXiQ6Rzq3RAkkY7N6t3TcE6jE+CIBBbA36lwQ1JyzZs= +cloud.google.com/go v0.62.0/go.mod h1:jmCYTdRCQuc1PHIIJ/maLInMho30T/Y0M4hTdTShOYc= +cloud.google.com/go v0.65.0/go.mod h1:O5N8zS7uWy9vkA9vayVHs65eM1ubvY4h553ofrNHObY= +cloud.google.com/go v0.72.0/go.mod h1:M+5Vjvlc2wnp6tjzE102Dw08nGShTscUx2nZMufOKPI= +cloud.google.com/go v0.74.0/go.mod h1:VV1xSbzvo+9QJOxLDaJfTjx5e+MePCpCWwvftOeQmWk= +cloud.google.com/go v0.78.0/go.mod h1:QjdrLG0uq+YwhjoVOLsS1t7TW8fs36kLs4XO5R5ECHg= +cloud.google.com/go v0.79.0/go.mod h1:3bzgcEeQlzbuEAYu4mrWhKqWjmpprinYgKJLgKHnbb8= +cloud.google.com/go v0.81.0/go.mod h1:mk/AM35KwGk/Nm2YSeZbxXdrNK3KZOYHmLkOqC2V6E0= +cloud.google.com/go v0.83.0/go.mod h1:Z7MJUsANfY0pYPdw0lbnivPx4/vhy/e2FEkSkF7vAVY= +cloud.google.com/go v0.84.0/go.mod h1:RazrYuxIK6Kb7YrzzhPoLmCVzl7Sup4NrbKPg8KHSUM= +cloud.google.com/go v0.87.0/go.mod h1:TpDYlFy7vuLzZMMZ+B6iRiELaY7z/gJPaqbMx6mlWcY= +cloud.google.com/go v0.90.0/go.mod h1:kRX0mNRHe0e2rC6oNakvwQqzyDmg57xJ+SZU1eT2aDQ= +cloud.google.com/go v0.93.3/go.mod h1:8utlLll2EF5XMAV15woO4lSbWQlk8rer9aLOfLh7+YI= +cloud.google.com/go/bigquery v1.0.1/go.mod h1:i/xbL2UlR5RvWAURpBYZTtm/cXjCha9lbfbpx4poX+o= +cloud.google.com/go/bigquery v1.3.0/go.mod h1:PjpwJnslEMmckchkHFfq+HTD2DmtT67aNFKH1/VBDHE= +cloud.google.com/go/bigquery v1.4.0/go.mod h1:S8dzgnTigyfTmLBfrtrhyYhwRxG72rYxvftPBK2Dvzc= +cloud.google.com/go/bigquery v1.5.0/go.mod h1:snEHRnqQbz117VIFhE8bmtwIDY80NLUZUMb4Nv6dBIg= +cloud.google.com/go/bigquery v1.7.0/go.mod h1://okPTzCYNXSlb24MZs83e2Do+h+VXtc4gLoIoXIAPc= +cloud.google.com/go/bigquery v1.8.0/go.mod h1:J5hqkt3O0uAFnINi6JXValWIb1v0goeZM77hZzJN/fQ= +cloud.google.com/go/datastore v1.0.0/go.mod h1:LXYbyblFSglQ5pkeyhO+Qmw7ukd3C+pD7TKLgZqpHYE= +cloud.google.com/go/datastore v1.1.0/go.mod h1:umbIZjpQpHh4hmRpGhH4tLFup+FVzqBi1b3c64qFpCk= +cloud.google.com/go/firestore v1.6.0/go.mod h1:afJwI0vaXwAG54kI7A//lP/lSPDkQORQuMkv56TxEPU= +cloud.google.com/go/pubsub v1.0.1/go.mod h1:R0Gpsv3s54REJCy4fxDixWD93lHJMoZTyQ2kNxGRt3I= +cloud.google.com/go/pubsub v1.1.0/go.mod h1:EwwdRX2sKPjnvnqCa270oGRyludottCI76h+R3AArQw= +cloud.google.com/go/pubsub v1.2.0/go.mod h1:jhfEVHT8odbXTkndysNHCcx0awwzvfOlguIAii9o8iA= +cloud.google.com/go/pubsub v1.3.1/go.mod h1:i+ucay31+CNRpDW4Lu78I4xXG+O1r/MAHgjpRVR+TSU= +cloud.google.com/go/storage v1.0.0/go.mod h1:IhtSnM/ZTZV8YYJWCY8RULGVqBDmpoyjwiyrjsg+URw= +cloud.google.com/go/storage v1.5.0/go.mod h1:tpKbwo567HUNpVclU5sGELwQWBDZ8gh0ZeosJ0Rtdos= +cloud.google.com/go/storage v1.6.0/go.mod h1:N7U0C8pVQ/+NIKOBQyamJIeKQKkZ+mxpohlUTyfDhBk= +cloud.google.com/go/storage v1.8.0/go.mod h1:Wv1Oy7z6Yz3DshWRJFhqM/UCfaWIRTdp0RXyy7KQOVs= +cloud.google.com/go/storage v1.10.0/go.mod h1:FLPqc6j+Ki4BU591ie1oL6qBQGu2Bl/tZ9ullr3+Kg0= +dmitri.shuralyov.com/gpu/mtl v0.0.0-20190408044501-666a987793e9/go.mod h1:H6x//7gZCb22OMCxBHrMx7a5I7Hp++hsVxbQ4BYO7hU= github.com/BurntSushi/toml v0.3.1/go.mod h1:xHWCNGjB5oqiDr8zfno3MHue2Ht5sIBksp03qcyfWMU= +github.com/BurntSushi/xgb v0.0.0-20160522181843-27f122750802/go.mod h1:IVnqGOEym/WlBOVXweHU+Q+/VP0lqqI8lqeDx9IjBqo= github.com/PuerkitoBio/goquery v1.5.1/go.mod h1:GsLWisAFVj4WgDibEWF4pvYnkVQBpKBKeU+7zCJoLcc= github.com/Shopify/sarama v1.19.0 h1:9oksLxC6uxVPHPVYUmq6xhr1BOF/hHobWH2UzO67z1s= github.com/Shopify/sarama v1.19.0/go.mod h1:FVkBWblsNy7DGZRfXLU0O9RCGt5g3g3yEuWXgklEdEo= @@ -12,7 +55,6 @@ github.com/alibabacloud-go/darabonba-openapi v0.1.11/go.mod h1:MPJMxv7HYrFm5m9uO github.com/alibabacloud-go/darabonba-string v1.0.0/go.mod h1:93cTfV3vuPhhEwGGpKKqhVW4jLe7tDpo3LUM0i0g6mA= github.com/alibabacloud-go/debug v0.0.0-20190504072949-9472017b5c68 h1:NqugFkGxx1TXSh/pBcU00Y6bljgDPaFdh5MUSeJ7e50= github.com/alibabacloud-go/debug v0.0.0-20190504072949-9472017b5c68/go.mod h1:6pb/Qy8c+lqua8cFpEy7g39NRRqOWc3rOwAy8m5Y2BY= -github.com/alibabacloud-go/dysmsapi-20170525 v1.1.2 h1:AiQv4HpDWV0GAXzauPB2Xdrx4cuBo18bqNzIjMJyWjk= github.com/alibabacloud-go/dysmsapi-20170525/v2 v2.0.8 h1:KXMiCg99Jx7B6V+DlRFbWwL9UCGippE5z1wGzhyimiA= github.com/alibabacloud-go/dysmsapi-20170525/v2 v2.0.8/go.mod h1:8aL6tSyQIWJygF7W/Vqxdf/QDbN2S+u57k36bEA8hD8= github.com/alibabacloud-go/endpoint-util v1.1.0 h1:r/4D3VSw888XGaeNpP994zDUaxdgTSHBbVfZlzf6b5Q= @@ -32,8 +74,13 @@ github.com/alibabacloud-go/tea-utils v1.3.9/go.mod h1:EI/o33aBfj3hETm4RLiAxF/ThQ github.com/aliyun/credentials-go v1.1.2 h1:qU1vwGIBb3UJ8BwunHDRFtAhS6jnQLnde/yk0+Ih2GY= github.com/aliyun/credentials-go v1.1.2/go.mod h1:ozcZaMR5kLM7pwtCMEpVmQ242suV6qTJya2bDq4X1Tw= github.com/andybalholm/cascadia v1.1.0/go.mod h1:GsXiBklL0woXo1j/WYWtSYYC4ouU9PqHO0sqidkEA4Y= +github.com/antihax/optional v1.0.0/go.mod h1:uupD/76wgC+ih3iEmQUL+0Ugr19nfwCT1kdvxnR2qWY= github.com/antonfisher/nested-logrus-formatter v1.3.0 h1:8zixYquU1Odk+vzAaAQPAdRh1ZjmUXNQ1T+dUBvlhVo= github.com/antonfisher/nested-logrus-formatter v1.3.0/go.mod h1:6WTfyWFkBc9+zyBaKIqRrg/KwMqBbodBjgbHjDz7zjA= +github.com/armon/circbuf v0.0.0-20150827004946-bbbad097214e/go.mod h1:3U/XgcO3hCbHZ8TKRvWD2dDTCfh9M9ya+I9JpbB7O8o= +github.com/armon/go-metrics v0.0.0-20180917152333-f0300d1749da/go.mod h1:Q73ZrmVTwzkszR9V5SSuryQ31EELlFMUz1kKyl939pY= +github.com/armon/go-radix v0.0.0-20180808171621-7fddfc383310/go.mod h1:ufUuZ+zHj4x4TnLV4JWEpy2hxWSpsRywHrMgIH9cCH8= +github.com/armon/go-radix v1.0.0/go.mod h1:ufUuZ+zHj4x4TnLV4JWEpy2hxWSpsRywHrMgIH9cCH8= github.com/aws/aws-sdk-go v1.38.3/go.mod h1:hcU610XS61/+aQV88ixoOzUoG7v3b31pl2zKMmprdro= github.com/beorn7/perks v0.0.0-20180321164747-3a771d992973/go.mod h1:Dwedo/Wpr24TaqPxmxbtue+5NUziq4I4S80YR8gNf3Q= github.com/beorn7/perks v1.0.0 h1:HWo1m869IqiPhD389kmkxeTalrjNbbJTC8LXupb+sl0= @@ -42,14 +89,18 @@ github.com/bgentry/speakeasy v0.1.0/go.mod h1:+zsyZBPWlz7T6j88CTgSN5bM796AkVf0kB github.com/bwmarrin/snowflake v0.3.0 h1:xm67bEhkKh6ij1790JB83OujPR5CzNe8QuQqAgISZN0= github.com/bwmarrin/snowflake v0.3.0/go.mod h1:NdZxfVWX+oR6y2K0o6qAYv6gIOP9rjG0/E9WsDpxqwE= github.com/census-instrumentation/opencensus-proto v0.2.1/go.mod h1:f6KPmirojxKA12rnyqOA5BBL4O983OfeGPqjHWSTneU= +github.com/chzyer/logex v1.1.10/go.mod h1:+Ywpsq7O8HXn0nuIou7OrIPyXbp3wmkHB+jjWRnGsAI= +github.com/chzyer/readline v0.0.0-20180603132655-2972be24d48e/go.mod h1:nSuG5e5PlCu98SY8svDHJxuZscDgtXS6KTTbou5AhLI= +github.com/chzyer/test v0.0.0-20180213035817-a1ea475d72b1/go.mod h1:Q3SI9o4m/ZMnBNeIyt5eFwwo7qiLfzFZmjNmxjkiQlU= github.com/cncf/udpa/go v0.0.0-20191209042840-269d4d468f6f/go.mod h1:M8M6+tZqaGXZJjfX53e64911xZQV5JYwmTeXPW+k8Sc= github.com/cockroachdb/datadriven v0.0.0-20190809214429-80d97fb3cbaa h1:OaNxuTZr7kxeODyLWsRMC+OD03aFUH+mW6r2d+MWa5Y= github.com/cockroachdb/datadriven v0.0.0-20190809214429-80d97fb3cbaa/go.mod h1:zn76sxSg3SzpJ0PPJaLDCu+Bu0Lg3sKTORVIj19EIF8= github.com/coreos/go-semver v0.2.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk= github.com/coreos/go-semver v0.3.0 h1:wkHLiw0WNATZnSG7epLsujiMCgPAc9xhjJ4tgnAxmfM= github.com/coreos/go-semver v0.3.0/go.mod h1:nnelYz7RCh+5ahJtPPxZlU+153eP4D4r3EedlOD2RNk= -github.com/coreos/go-systemd/v22 v22.0.0 h1:XJIw/+VlJ+87J+doOxznsAWIdmWuViOVhkQamW5YV28= github.com/coreos/go-systemd/v22 v22.0.0/go.mod h1:xO0FLkIi5MaZafQlIrOotqXZ90ih+1atmu1JpKERPPk= +github.com/coreos/go-systemd/v22 v22.3.2 h1:D9/bQk5vlXQFZ6Kwuu6zaiXJ9oTPe68++AzAJc1DzSI= +github.com/coreos/go-systemd/v22 v22.3.2/go.mod h1:Y58oyj3AT4RCenI/lSvhwexgC+NSVTIJ3seZv2GcEnc= github.com/creack/pty v1.1.7/go.mod h1:lj5s0c3V2DBrqTV7llrYr5NG6My20zk30Fl46Y7DoTY= github.com/creack/pty v1.1.9/go.mod h1:oKZEueFk5CKHvIhNR5MUki03XCEU+Q6VDXinZuGJ33E= github.com/davecgh/go-spew v1.1.0/go.mod h1:J7Y8YcW2NihsgmVo/mv3lAwl/skON4iLHjSsI+c5H38= @@ -73,10 +124,13 @@ github.com/envoyproxy/protoc-gen-validate v0.1.0/go.mod h1:iSmxcyjqTsJpI2R4NaDN7 github.com/erikstmartin/go-testdb v0.0.0-20160219214506-8d10e4a1bae5 h1:Yzb9+7DPaBjB8zlTR87/ElzFsnQfuHnVUVqpZZIcV5Y= github.com/erikstmartin/go-testdb v0.0.0-20160219214506-8d10e4a1bae5/go.mod h1:a2zkGnVExMxdzMo3M0Hi/3sEU+cWnZpSni0O6/Yb/P0= github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4= +github.com/fatih/color v1.9.0/go.mod h1:eQcE1qtQxscV5RaZvpXrrb8Drkc3/DdQ+uUYCNjL+zU= github.com/fortytw2/leaktest v1.3.0 h1:u8491cBMTQ8ft8aeV+adlcytMZylmA5nnwwkRZjI8vw= github.com/fortytw2/leaktest v1.3.0/go.mod h1:jDsjWgpAGjm2CA7WthBh/CdZYEPF31XHquHwclZch5g= github.com/frankban/quicktest v1.14.0 h1:+cqqvzZV87b4adx/5ayVOaYZ2CrvM4ejQvUdBzPPUss= github.com/frankban/quicktest v1.14.0/go.mod h1:NeW+ay9A/U67EYXNFA1nPE8e/tnQv/09mUdL/ijj8og= +github.com/fsnotify/fsnotify v1.5.1 h1:mZcQUHVQUQWoPXXtuf9yuEXKudkV2sx1E06UadKWpgI= +github.com/fsnotify/fsnotify v1.5.1/go.mod h1:T3375wBYaZdLLcVNkcVbzGHY7f1l/uK5T5Ai1i3InKU= github.com/garyburd/redigo v1.6.2 h1:yE/pwKCrbLpLpQICzYTeZ7JsTA/C53wFTJHaEtRqniM= github.com/garyburd/redigo v1.6.2/go.mod h1:NR3MbYisc3/PwhQ00EMzDiPmrwpPxAn5GI05/YaO1SY= github.com/ghodss/yaml v1.0.0/go.mod h1:4dBDuWmgqj2HViK6kFavaiC9ZROes6MMH2rRYeMEF04= @@ -84,6 +138,9 @@ github.com/gin-contrib/sse v0.1.0 h1:Y/yl/+YNO8GZSjAhjMsSuLt29uWRFHdHYUb5lYOV9qE github.com/gin-contrib/sse v0.1.0/go.mod h1:RHrZQHXnP2xjPF+u1gW/2HnVO7nvIa9PG3Gm+fLHvGI= github.com/gin-gonic/gin v1.7.0 h1:jGB9xAJQ12AIGNB4HguylppmDK1Am9ppF7XnGXXJuoU= github.com/gin-gonic/gin v1.7.0/go.mod h1:jD2toBW3GZUr5UMcdrwQA10I7RuaFOl/SGeDjXkfUtY= +github.com/go-gl/glfw v0.0.0-20190409004039-e6da0acd62b1/go.mod h1:vR7hzQXu2zJy9AVAgeJqvqgH9Q5CA+iKCZ2gyEVpxRU= +github.com/go-gl/glfw/v3.3/glfw v0.0.0-20191125211704-12ad95a8df72/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= +github.com/go-gl/glfw/v3.3/glfw v0.0.0-20200222043503-6f7a984d4dc4/go.mod h1:tQ2UAYgL5IevRw8kRxooKSPJfGvJ9fJQFa0TUsXzTg8= github.com/go-kit/kit v0.8.0/go.mod h1:xBxKIO96dXMWWy0MnWVtmwkA9/13aqxPnvrjFYMA2as= github.com/go-logfmt/logfmt v0.3.0/go.mod h1:Qt1PoO58o5twSAckw1HlFXLmHsOX5/0LbT9GBnD5lWE= github.com/go-playground/assert/v2 v2.0.1 h1:MsBgLAaY856+nPRTKrp3/OZK38U/wa0CcBYNjji3q3A= @@ -98,49 +155,93 @@ github.com/go-sql-driver/mysql v1.5.0 h1:ozyZYNQW3x3HtqT1jira07DN2PArx2v7/mN66gG github.com/go-sql-driver/mysql v1.5.0/go.mod h1:DCzpHaOWr8IXmIStZouvnhqoel9Qv2LBy8hT2VhHyBg= github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY= github.com/godbus/dbus/v5 v5.0.3/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA= +github.com/godbus/dbus/v5 v5.0.4/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA= github.com/gogo/protobuf v1.1.1/go.mod h1:r8qH/GZQm5c6nD/R0oafs1akxWv10x8SbQlK7atdtwQ= -github.com/gogo/protobuf v1.2.1 h1:/s5zKNz0uPFCZ5hddgPdo2TK2TVrUNMn0OOX8/aZMTE= github.com/gogo/protobuf v1.2.1/go.mod h1:hp+jE20tsWTFYpLwKvXlhS1hjn+gTNwPg2I6zVXpSg4= +github.com/gogo/protobuf v1.3.2 h1:Ov1cvc58UF3b5XjBnZv7+opcTcQFZebYjWzi34vdm4Q= +github.com/gogo/protobuf v1.3.2/go.mod h1:P1XiOD3dCwIKUDQYPy72D8LYyHL2YPYrpS2s69NZV8Q= github.com/golang-jwt/jwt/v4 v4.1.0 h1:XUgk2Ex5veyVFVeLm0xhusUTQybEbexJXrvPNOKkSY0= github.com/golang-jwt/jwt/v4 v4.1.0/go.mod h1:/xlHOz8bRuivTWchD4jCa+NbatV+wEUSzwAxVc6locg= github.com/golang-sql/civil v0.0.0-20190719163853-cb61b32ac6fe h1:lXe2qZdvpiX5WZkZR4hgp4KJVfY3nMkvmwbVkpv1rVY= github.com/golang-sql/civil v0.0.0-20190719163853-cb61b32ac6fe/go.mod h1:8vg3r2VgvsThLBIFL93Qb5yWzgyZWhEmBwUJWevAkK0= github.com/golang/glog v0.0.0-20160126235308-23def4e6c14b/go.mod h1:SBH7ygxi8pfUlaOkMMuAQtPIUF8ecWP5IEl/CR7VP2Q= github.com/golang/groupcache v0.0.0-20160516000752-02826c3e7903/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= +github.com/golang/groupcache v0.0.0-20190702054246-869f871628b6/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= +github.com/golang/groupcache v0.0.0-20191227052852-215e87163ea7/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/groupcache v0.0.0-20200121045136-8c9f03a8e57e h1:1r7pUrabqp18hOBcwBwiTsbnFeTZHV9eER/QT5JVZxY= github.com/golang/groupcache v0.0.0-20200121045136-8c9f03a8e57e/go.mod h1:cIg4eruTrX1D+g88fzRXU5OdNfaM+9IcxsU14FzY7Hc= github.com/golang/mock v1.1.1/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= +github.com/golang/mock v1.2.0/go.mod h1:oTYuIxOrZwtPieC+H1uAHpcLFnEyAGVDL/k47Jfbm0A= +github.com/golang/mock v1.3.1/go.mod h1:sBzyDLLjw3U8JLTeZvSv8jJB+tU5PVekmnlKIyFUx0Y= +github.com/golang/mock v1.4.0/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw= +github.com/golang/mock v1.4.1/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw= +github.com/golang/mock v1.4.3/go.mod h1:UOMv5ysSaYNkG+OFQykRIcU/QvvxJf3p21QfJ2Bt3cw= +github.com/golang/mock v1.4.4/go.mod h1:l3mdAwkq5BuhzHwde/uurv3sEJeZMXNpwsxVWU71h+4= +github.com/golang/mock v1.5.0/go.mod h1:CWnOUgYIOo4TcNZ0wHX3YZCqsaM1I1Jvs6v3mP3KVu8= +github.com/golang/mock v1.6.0/go.mod h1:p6yTPP+5HYm5mzsMV8JkE6ZKdX+/wYM6Hr+LicevLPs= github.com/golang/protobuf v1.2.0/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.3.1/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.3.2/go.mod h1:6lQm79b+lXiMfvg/cZm0SGofjICqVBUtrP5yJMmIC1U= github.com/golang/protobuf v1.3.3/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw= +github.com/golang/protobuf v1.3.4/go.mod h1:vzj43D7+SQXF/4pzW/hwtAqwc6iTitCiVSaWz5lYuqw= +github.com/golang/protobuf v1.3.5/go.mod h1:6O5/vntMXwX2lRkT1hjjk0nAC1IDOTvTlVgjlRvqsdk= github.com/golang/protobuf v1.4.0-rc.1/go.mod h1:ceaxUfeHdC40wWswd/P6IGgMaK3YpKi5j83Wpe3EHw8= github.com/golang/protobuf v1.4.0-rc.1.0.20200221234624-67d41d38c208/go.mod h1:xKAWHe0F5eneWXFV3EuXVDTCmh+JuBKY0li0aMyXATA= github.com/golang/protobuf v1.4.0-rc.2/go.mod h1:LlEzMj4AhA7rCAGe4KMBDvJI+AwstrUpVNzEA03Pprs= github.com/golang/protobuf v1.4.0-rc.4.0.20200313231945-b860323f09d0/go.mod h1:WU3c8KckQ9AFe+yFwt9sWVRKCVIyN9cPHBJSNnbL67w= github.com/golang/protobuf v1.4.0/go.mod h1:jodUvKwWbYaEsadDk5Fwe5c77LiNKVO9IDvqG2KuDX0= +github.com/golang/protobuf v1.4.1/go.mod h1:U8fpvMrcmy5pZrNK1lt4xCsGvpyWQ/VVv6QDs8UjoX8= +github.com/golang/protobuf v1.4.2/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= github.com/golang/protobuf v1.4.3/go.mod h1:oDoupMAO8OvCJWAcko0GGGIgR6R6ocIYbsSw735rRwI= github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaSAoJOfIk= +github.com/golang/protobuf v1.5.1/go.mod h1:DopwsBzvsk0Fs44TXzsVbJyPhcCPeIwnvohx4u74HPM= github.com/golang/protobuf v1.5.2 h1:ROPKBNFfQgOUMifHyP+KYbvpjbdoFNs+aK7DXlji0Tw= github.com/golang/protobuf v1.5.2/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= +github.com/golang/snappy v0.0.3/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= github.com/golang/snappy v0.0.4 h1:yAGX7huGHXlcLOEtBnF4w7FQwA26wojNCwOYAEhLjQM= github.com/golang/snappy v0.0.4/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= +github.com/google/btree v0.0.0-20180813153112-4030bb1f1f0c/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= github.com/google/btree v1.0.0 h1:0udJVsspx3VBr5FwtLhQQtuAsVc79tTq0ocGIPAU6qo= github.com/google/btree v1.0.0/go.mod h1:lNA+9X1NB3Zf8V7Ke586lFgjr2dZNuvo3lPJSGZ5JPQ= github.com/google/go-cmp v0.2.0/go.mod h1:oXzfMopK8JAjlY9xF4vHSVASa0yLyX7SntLO5aqRK0M= github.com/google/go-cmp v0.3.0/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= github.com/google/go-cmp v0.3.1/go.mod h1:8QqcDgzrUqlUb/G2PQTWiueGozuR1884gddMywk6iLU= github.com/google/go-cmp v0.4.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.4.1/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.5.0/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.5.1/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.5.2/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.3/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= +github.com/google/go-cmp v0.5.4/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.5/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/go-cmp v0.5.6 h1:BKbKCqvP6I+rmFHt06ZmyQtvB8xAkWdhFyr0ZUNZcxQ= github.com/google/go-cmp v0.5.6/go.mod h1:v8dTdLbMG2kIc/vJvl+f65V22dbkXbowE6jgT/gNBxE= github.com/google/gofuzz v1.0.0/go.mod h1:dBl0BpW6vV/+mYPU4Po3pmUjxk6FQPldtuIdl/M65Eg= +github.com/google/martian v2.1.0+incompatible/go.mod h1:9I4somxYTbIHy5NJKHRl3wXiIaQGbYVAs8BPL6v8lEs= +github.com/google/martian/v3 v3.0.0/go.mod h1:y5Zk1BBys9G+gd6Jrk0W3cC1+ELVxBWuIGO+w/tUAp0= +github.com/google/martian/v3 v3.1.0/go.mod h1:y5Zk1BBys9G+gd6Jrk0W3cC1+ELVxBWuIGO+w/tUAp0= +github.com/google/martian/v3 v3.2.1/go.mod h1:oBOf6HBosgwRXnUGWUB05QECsc6uvmMiJ3+6W4l/CUk= +github.com/google/pprof v0.0.0-20181206194817-3ea8567a2e57/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc= +github.com/google/pprof v0.0.0-20190515194954-54271f7e092f/go.mod h1:zfwlbNMJ+OItoe0UupaVj+oy1omPYYDuagoSzA8v9mc= +github.com/google/pprof v0.0.0-20191218002539-d4f498aebedc/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= +github.com/google/pprof v0.0.0-20200212024743-f11f1df84d12/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= +github.com/google/pprof v0.0.0-20200229191704-1ebb73c60ed3/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= +github.com/google/pprof v0.0.0-20200430221834-fc25d7d30c6d/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= +github.com/google/pprof v0.0.0-20200708004538-1a94d8640e99/go.mod h1:ZgVRPoUq/hfqzAqh7sHMqb3I9Rq5C59dIz2SbBwJ4eM= +github.com/google/pprof v0.0.0-20201023163331-3e6fc7fc9c4c/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= +github.com/google/pprof v0.0.0-20201203190320-1bf35d6f28c2/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= +github.com/google/pprof v0.0.0-20210122040257-d980be63207e/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= +github.com/google/pprof v0.0.0-20210226084205-cbba55b83ad5/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= +github.com/google/pprof v0.0.0-20210601050228-01bbb1931b22/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= +github.com/google/pprof v0.0.0-20210609004039-a478d1d731e9/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= +github.com/google/pprof v0.0.0-20210720184732-4bb14d4b1be1/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= github.com/google/uuid v1.0.0 h1:b4Gk+7WdP/d3HZH8EJsZpvV7EtDOgaZLtnaNGIu1adA= github.com/google/uuid v1.0.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +github.com/googleapis/gax-go/v2 v2.0.4/go.mod h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+vpHVxEJEs9eg= +github.com/googleapis/gax-go/v2 v2.0.5/go.mod h1:DWXyrwAJ9X0FpwwEdw+IPEYBICEFu5mhpdKc/us6bOk= +github.com/googleapis/gax-go/v2 v2.1.0/go.mod h1:Q3nei7sK6ybPYH7twZdmQpAd1MKb7pfu6SK+H1/DsU0= github.com/gopherjs/gopherjs v0.0.0-20181017120253-0766667cb4d1/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY= -github.com/gopherjs/gopherjs v0.0.0-20200217142428-fce0ec30dd00 h1:l5lAOZEym3oK3SQ2HBHWsJUfbNBiTXJDeW2QDxw9AQ0= github.com/gopherjs/gopherjs v0.0.0-20200217142428-fce0ec30dd00/go.mod h1:wJfORRmW1u3UXTncJ5qlYoELFm8eSnnEO6hX4iZ3EWY= github.com/gorilla/websocket v0.0.0-20170926233335-4201258b820c/go.mod h1:E7qHFY5m1UJ88s3WnNqhKjPHQ0heANvMoAMk2YaljkQ= github.com/gorilla/websocket v1.4.2 h1:+/TMaTYc4QFitKJxsQ7Yye35DkWvkdLcvGKqM+x0Ufc= @@ -149,8 +250,33 @@ github.com/grpc-ecosystem/go-grpc-middleware v1.0.1-0.20190118093823-f849b5445de github.com/grpc-ecosystem/go-grpc-middleware v1.0.1-0.20190118093823-f849b5445de4/go.mod h1:FiyG127CGDf3tlThmgyCl78X/SZQqEOJBCDaAfeWzPs= github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0 h1:Ovs26xHkKqVztRpIrF/92BcuyuQ/YW4NSIpoGtfXNho= github.com/grpc-ecosystem/go-grpc-prometheus v1.2.0/go.mod h1:8NvIoxWQoOIhqOTXgfV/d3M/q6VIi02HzZEHgUlZvzk= -github.com/grpc-ecosystem/grpc-gateway v1.9.5 h1:UImYN5qQ8tuGpGE16ZmjvcTtTw24zw1QAp/SlnNrZhI= github.com/grpc-ecosystem/grpc-gateway v1.9.5/go.mod h1:vNeuVxBJEsws4ogUvrchl83t/GYV9WGTSLVdBhOQFDY= +github.com/grpc-ecosystem/grpc-gateway v1.16.0 h1:gmcG1KaJ57LophUzW0Hy8NmPhnMZb4M0+kPpLofRdBo= +github.com/grpc-ecosystem/grpc-gateway v1.16.0/go.mod h1:BDjrQk3hbvj6Nolgz8mAMFbcEtjT1g+wF4CSlocrBnw= +github.com/hashicorp/consul/api v1.10.1/go.mod h1:XjsvQN+RJGWI2TWy1/kqaE16HrR2J/FWgkYjdZQsX9M= +github.com/hashicorp/consul/sdk v0.8.0/go.mod h1:GBvyrGALthsZObzUGsfgHZQDXjg4lOjagTIwIR1vPms= +github.com/hashicorp/errwrap v1.0.0/go.mod h1:YH+1FKiLXxHSkmPseP+kNlulaMuP3n2brvKWEqk/Jc4= +github.com/hashicorp/go-cleanhttp v0.5.1/go.mod h1:JpRdi6/HCYpAwUzNwuwqhbovhLtngrth3wmdIIUrZ80= +github.com/hashicorp/go-hclog v0.12.0/go.mod h1:whpDNt7SSdeAju8AWKIWsul05p54N/39EeqMAyrmvFQ= +github.com/hashicorp/go-immutable-radix v1.0.0/go.mod h1:0y9vanUI8NX6FsYoO3zeMjhV/C5i9g4Q3DwcSNZ4P60= +github.com/hashicorp/go-msgpack v0.5.3/go.mod h1:ahLV/dePpqEmjfWmKiqvPkv/twdG7iPBM1vqhUKIvfM= +github.com/hashicorp/go-multierror v1.0.0/go.mod h1:dHtQlpGsu+cZNNAkkCN/P3hoUDHhCYQXV3UM06sGGrk= +github.com/hashicorp/go-multierror v1.1.0/go.mod h1:spPvp8C1qA32ftKqdAHm4hHTbPw+vmowP0z+KUhOZdA= +github.com/hashicorp/go-rootcerts v1.0.2/go.mod h1:pqUvnprVnM5bf7AOirdbb01K4ccR319Vf4pU3K5EGc8= +github.com/hashicorp/go-sockaddr v1.0.0/go.mod h1:7Xibr9yA9JjQq1JpNB2Vw7kxv8xerXegt+ozgdvDeDU= +github.com/hashicorp/go-syslog v1.0.0/go.mod h1:qPfqrKkXGihmCqbJM2mZgkZGvKG1dFdvsLplgctolz4= +github.com/hashicorp/go-uuid v1.0.0/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro= +github.com/hashicorp/go-uuid v1.0.1/go.mod h1:6SBZvOh/SIDV7/2o3Jml5SYk/TvGqwFJ/bN7x4byOro= +github.com/hashicorp/golang-lru v0.5.0/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= +github.com/hashicorp/golang-lru v0.5.1/go.mod h1:/m3WP610KZHVQ1SGc6re/UDhFvYD7pJ4Ao+sR/qLZy8= +github.com/hashicorp/hcl v1.0.0 h1:0Anlzjpi4vEasTeNFn2mLJgTSwt0+6sfsiTG8qcWGx4= +github.com/hashicorp/hcl v1.0.0/go.mod h1:E5yfLk+7swimpb2L/Alb/PJmXilQ/rhwaUYs4T20WEQ= +github.com/hashicorp/logutils v1.0.0/go.mod h1:QIAnNjmIWmVIIkWDTG1z5v++HQmx9WQRO+LraFDTW64= +github.com/hashicorp/mdns v1.0.1/go.mod h1:4gW7WsVCke5TE7EPeYliwHlRUyBtfCwuFwuMg2DmyNY= +github.com/hashicorp/memberlist v0.2.2/go.mod h1:MS2lj3INKhZjWNqd3N0m3J+Jxf3DAOnAH9VT3Sh9MUE= +github.com/hashicorp/serf v0.9.5/go.mod h1:UWDWwZeL5cuWDJdl0C6wrvrUwEqtQ4ZKBKKENpqIUyk= +github.com/ianlancetaylor/demangle v0.0.0-20181102032728-5e5cf60278f6/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc= +github.com/ianlancetaylor/demangle v0.0.0-20200824232613-28f6c0f3b639/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc= github.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANytuPF1OarO4DADm73n8= github.com/jinzhu/gorm v1.9.16 h1:+IyIjPEABKRpsu/F8OvDPy9fyQlgsg2luMV2ZIH5i5o= github.com/jinzhu/gorm v1.9.16/go.mod h1:G3LB3wezTOWM2ITLzPxEXgSkOXAntiLHS7UdBefADcs= @@ -167,18 +293,22 @@ github.com/josharian/intern v1.0.0 h1:vlS4z54oSdjm0bgjRigI+G1HpF+tI+9rE5LLzOg8Hm github.com/josharian/intern v1.0.0/go.mod h1:5DoeVV0s6jJacbCEi61lwdGj/aVlrQvzHFFd8Hwg//Y= github.com/json-iterator/go v1.1.6/go.mod h1:+SdeFBvtyEkXs7REEP0seUULqWtbJapLOCVDaaPEHmU= github.com/json-iterator/go v1.1.7/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= -github.com/json-iterator/go v1.1.9 h1:9yzud/Ht36ygwatGx56VwCZtlI/2AD15T1X2sjSuGns= github.com/json-iterator/go v1.1.9/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= -github.com/json-iterator/go v1.1.10 h1:Kz6Cvnvv2wGdaG/V8yMvfkmNiXq9Ya2KUv4rouJJr68= github.com/json-iterator/go v1.1.10/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= -github.com/jtolds/gls v4.20.0+incompatible h1:xdiiI2gbIgH/gLH7ADydsJ1uDOEzR8yvV7C0MuV77Wo= +github.com/json-iterator/go v1.1.11 h1:uVUAXhF2To8cbw/3xN3pxj6kk7TYKs98NIrTqPlMWAQ= +github.com/json-iterator/go v1.1.11/go.mod h1:KdQUCv79m/52Kvf8AW2vK1V8akMuk1QjK/uOdHXbAo4= +github.com/jstemmer/go-junit-report v0.0.0-20190106144839-af01ea7f8024/go.mod h1:6v2b51hI/fHJwM22ozAgKL4VKDeJcHhJFhtBdhmNjmU= +github.com/jstemmer/go-junit-report v0.9.1/go.mod h1:Brl9GWCQeLvo8nXZwPNNblvFj/XSXhF0NWZEnDohbsk= github.com/jtolds/gls v4.20.0+incompatible/go.mod h1:QJZ7F/aHp+rZTRtaJ1ow/lLfFfVYBRgL+9YlvaHOwJU= github.com/julienschmidt/httprouter v1.2.0/go.mod h1:SYymIcj16QtmaHHD7aYtjjsJG7VTCxuUUipMqKk8s4w= github.com/kisielk/errcheck v1.1.0/go.mod h1:EZBBE59ingxPouuu3KfxchcWSUPOHkagtvWXihfKN4Q= +github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8= github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= +github.com/kr/fs v0.1.0/go.mod h1:FFnZGqtBN9Gxj7eW1uZ42v5BccTP0vu6NEaFoC2HwRg= github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod h1:+0opPa2QZZtGFBFZlji/RkVcI2GknAs/DXo4wKdlNEc= github.com/kr/pretty v0.1.0/go.mod h1:dAy3ld7l9f0ibDNOQOHHMYYIIbhfbHSm3C4ZsoJORNo= +github.com/kr/pretty v0.2.0/go.mod h1:ipq/a2n7PKx3OHsz4KJII5eveXtPO4qwEXGdVfWzfnI= github.com/kr/pretty v0.3.0 h1:WgNl7dwNpEZ6jJ9k1snq4pZsg7DOEN8hP9Xw0Tsjwk0= github.com/kr/pretty v0.3.0/go.mod h1:640gp4NfQd8pI5XOwp5fnNeVWj67G7CFk/SaSQn7NBk= github.com/kr/pty v1.1.1/go.mod h1:pFQYn66WHrOpPYNljwOMqo10TkYh1fy3cYio2l3bCsQ= @@ -196,10 +326,18 @@ github.com/lestrrat-go/strftime v1.0.4/go.mod h1:E1nN3pCbtMSu1yjSVeyuRFVm/U0xoR7 github.com/lib/pq v1.1.1/go.mod h1:5WUZQaWbwv1U+lTReE5YruASi9Al49XbQIvNi/34Woo= github.com/lib/pq v1.2.0 h1:LXpIM/LZ5xGFhOpXAQUIMM1HdyqzVYM13zNdjCEEcA0= github.com/lib/pq v1.2.0/go.mod h1:5WUZQaWbwv1U+lTReE5YruASi9Al49XbQIvNi/34Woo= +github.com/magiconair/properties v1.8.5 h1:b6kJs+EmPFMYGkow9GiUyCyOvIwYetYJ3fSaWak/Gls= +github.com/magiconair/properties v1.8.5/go.mod h1:y3VJvCyxH9uVvJTWEGAELF3aiYNyPKd5NZ3oSwXrF60= github.com/mailru/easyjson v0.7.7 h1:UGYAvKxe3sBsEDzO8ZeWOSlIQfWFlxbzLZe7hwFURr0= github.com/mailru/easyjson v0.7.7/go.mod h1:xzfreul335JAWq5oZzymOObrkdz5UnU4kGfJJLY9Nlc= github.com/mattn/go-colorable v0.0.9/go.mod h1:9vuHe8Xs5qXnSaW/c/ABM9alt+Vo+STaOChaDxuIBZU= +github.com/mattn/go-colorable v0.1.4/go.mod h1:U0ppj6V5qS13XJ6of8GYAs25YV2eR4EVcfRqFIhoBtE= +github.com/mattn/go-colorable v0.1.6/go.mod h1:u6P/XSegPjTcexA+o6vUJrdnUu04hMope9wVRipJSqc= +github.com/mattn/go-isatty v0.0.3/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4= github.com/mattn/go-isatty v0.0.4/go.mod h1:M+lRXTBqGeGNdLjl/ufCoiOlB5xdOkqRJdNxMWT7Zi4= +github.com/mattn/go-isatty v0.0.8/go.mod h1:Iq45c/XA43vh69/j3iqttzPXn0bhXyGjM0Hdxcsrc5s= +github.com/mattn/go-isatty v0.0.10/go.mod h1:qgIWMr58cqv1PHHyhnkY9lrL7etaEgOFcMEpPG5Rm84= +github.com/mattn/go-isatty v0.0.11/go.mod h1:PhnuNfih5lzO57/f3n+odYbM4JtupLOxQOAqxQCu2WE= github.com/mattn/go-isatty v0.0.12 h1:wuysRhFDzyxgEmMf5xjvJ2M9dZoWAXNNr5LSBS7uHXY= github.com/mattn/go-isatty v0.0.12/go.mod h1:cbi8OIDigv2wuxKPP5vlRcQ1OAZbq2CE4Kysco4FUpU= github.com/mattn/go-runewidth v0.0.2/go.mod h1:LwmH8dsx7+W8Uxz3IHJYH5QSwggIsqBzpuz5H//U1FU= @@ -208,8 +346,15 @@ github.com/mattn/go-sqlite3 v1.14.6 h1:dNPt6NO46WmLVt2DLNpwczCmdV5boIZ6g/tlDrlRU github.com/mattn/go-sqlite3 v1.14.6/go.mod h1:NyWgC/yNuGj7Q9rpYnZvas74GogHl5/Z4A/KQRfk6bU= github.com/matttproud/golang_protobuf_extensions v1.0.1 h1:4hp9jkHxhMHkqkrB3Ix0jegS5sx/RkqARlsWZ6pIwiU= github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0= -github.com/mitchellh/mapstructure v1.4.1 h1:CpVNEelQCZBooIPDn+AR3NpivK/TIKU8bDxdASFVQag= -github.com/mitchellh/mapstructure v1.4.1/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= +github.com/miekg/dns v1.0.14/go.mod h1:W1PPwlIAgtquWBMBEV9nkV9Cazfe8ScdGz/Lj7v3Nrg= +github.com/miekg/dns v1.1.26/go.mod h1:bPDLeHnStXmXAq1m/Ch/hvfNHr14JKNPMBo3VZKjuso= +github.com/mitchellh/cli v1.1.0/go.mod h1:xcISNoH86gajksDmfB23e/pu+B+GeFRMYmoHXxx3xhI= +github.com/mitchellh/go-homedir v1.1.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0= +github.com/mitchellh/go-testing-interface v1.0.0/go.mod h1:kRemZodwjscx+RGhAo8eIhFbs2+BFgRtFPeD/KE+zxI= +github.com/mitchellh/mapstructure v0.0.0-20160808181253-ca63d7c062ee/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y= +github.com/mitchellh/mapstructure v1.1.2/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y= +github.com/mitchellh/mapstructure v1.4.2 h1:6h7AQ0yhTcIsmFmnAwQls75jp2Gzs4iB8W7pjMO+rqo= +github.com/mitchellh/mapstructure v1.4.2/go.mod h1:bFUtVrKA4DC2yAKiSyO/QUcy7e+RRV2QTWOzhPopBRo= github.com/modern-go/concurrent v0.0.0-20180228061459-e0a39a4cb421/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd h1:TRLaZ9cD/w8PVh93nsPXa1VrQ6jlwL5oN8l14QlcNfg= github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJC0mAP4ikYIbvyc7fijjWJddQyLn8Ig3JB5CqoB9Q= @@ -225,14 +370,20 @@ github.com/olekukonko/tablewriter v0.0.0-20170122224234-a0225b3f23b5/go.mod h1:v github.com/olivere/elastic/v7 v7.0.23 h1:b7tjMogDMhf2CisGI+L02LXLVa0ZyE82Z15XfW1e8t8= github.com/olivere/elastic/v7 v7.0.23/go.mod h1:OuWmD2DiuYhddWegBKPWQuelVKBLrW0fa/VUYgxuGTY= github.com/opentracing/opentracing-go v1.2.0/go.mod h1:GxEUsuufX4nBwe+T+Wl9TAgYrxe9dPLANfrWvHYVTgc= +github.com/pascaldekloe/goe v0.0.0-20180627143212-57f6aae5913c/go.mod h1:lzWF7FIEvWOWxwDKqyGYQf6ZUaNfKdP144TG7ZOy1lc= +github.com/pelletier/go-toml v1.9.4 h1:tjENF6MfZAg8e4ZmZTeWaWiT2vXtsoO6+iuOjFhECwM= +github.com/pelletier/go-toml v1.9.4/go.mod h1:u1nR/EPcESfeI/szUZKdtJ0xRNbUoANCkoOuaOx1Y+c= github.com/pierrec/lz4 v2.6.1+incompatible h1:9UY3+iC23yxF0UfGaYrGplQ+79Rg+h/q9FV9ix19jjM= github.com/pierrec/lz4 v2.6.1+incompatible/go.mod h1:pdkljMzZIN41W+lC3N2tnIh5sFi+IEE17M5jbnwPHcY= github.com/pkg/errors v0.8.0/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/errors v0.8.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= github.com/pkg/errors v0.9.1 h1:FEBLx1zS214owpjy7qsBeixbURkuhQAwrK5UwLGTwt4= github.com/pkg/errors v0.9.1/go.mod h1:bwawxfHBFNV+L2hUp1rHADufV3IMtnDRdf1r5NINEl0= +github.com/pkg/sftp v1.10.1/go.mod h1:lYOWFsE0bwd1+KfKJaKeuokY15vzFx25BLbzYYoAxZI= github.com/pmezard/go-difflib v1.0.0 h1:4DBwDE0NGyQoBHbLQYPwSUPoCMWR5BEzIk/f1lZbAQM= github.com/pmezard/go-difflib v1.0.0/go.mod h1:iKH77koFhYxTK1pcRnkKkqfTogsbg7gZNVY4sRDYZ/4= +github.com/posener/complete v1.1.1/go.mod h1:em0nMJCgc9GFtwrmVmEMR/ZL6WyhyjMBndrE9hABlRI= +github.com/posener/complete v1.2.3/go.mod h1:WZIdtGGp+qx0sLrYKtIRAruyNpv6hFCicSgv7Sy7s/s= github.com/prometheus/client_golang v0.9.1/go.mod h1:7SWBe2y4D6OKWSNQJUaRYU/AaXPKyh/dDVn+NZz0KFw= github.com/prometheus/client_golang v1.0.0 h1:vrDKnkGzuGvhNAL56c7DBz29ZL+KxnoR0x7enabFceM= github.com/prometheus/client_golang v1.0.0/go.mod h1:db9x61etRT2tGnBNRi70OPL5FsnadC4Ky3P0J6CfImo= @@ -250,26 +401,37 @@ github.com/rcrowley/go-metrics v0.0.0-20201227073835-cf1acfcdf475/go.mod h1:bCqn github.com/rifflock/lfshook v0.0.0-20180920164130-b9218ef580f5 h1:mZHayPoR0lNmnHyvtYjDeq0zlVHn9K/ZXoy17ylucdo= github.com/rifflock/lfshook v0.0.0-20180920164130-b9218ef580f5/go.mod h1:GEXHk5HgEKCvEIIrSpFI3ozzG5xOKA2DVlEX/gGnewM= github.com/rogpeppe/fastuuid v0.0.0-20150106093220-6724a57986af/go.mod h1:XWv6SoW27p1b0cqNHllgS5HIMJraePCO15w5zCzIWYg= +github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6LYCDYWNEvQ= github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= github.com/rogpeppe/go-internal v1.6.1 h1:/FiVV8dS/e+YqF2JvO3yXRFbBLTIuSDkuC7aBOAvL+k= github.com/rogpeppe/go-internal v1.6.1/go.mod h1:xXDCJY+GAPziupqXw64V24skbSoqbTEfhy4qGm1nDQc= +github.com/ryanuber/columnize v0.0.0-20160712163229-9b3edd62028f/go.mod h1:sm1tb6uqfes/u+d4ooFouqFdy9/2g9QGwK3SQygK0Ts= +github.com/sagikazarmark/crypt v0.1.0/go.mod h1:B/mN0msZuINBtQ1zZLEQcegFJJf9vnYIR88KRMEuODE= +github.com/sean-/seed v0.0.0-20170313163322-e2103e2c3529/go.mod h1:DxrIzT+xaE7yg65j358z/aeFdxmN0P9QXhEzd20vsDc= github.com/sirupsen/logrus v1.2.0/go.mod h1:LxeOpSwHxABJmUn/MG1IvRgCAasNZTLOkJPxbbu5VWo= github.com/sirupsen/logrus v1.4.2/go.mod h1:tLMulIdttU9McNUspp0xgXVQah82FyeX6MwdIuYE2rE= github.com/sirupsen/logrus v1.8.1 h1:dJKuHgqk1NNQlqoA6BTlM1Wf9DOH3NBjQyu0h9+AZZE= github.com/sirupsen/logrus v1.8.1/go.mod h1:yWOB1SBYBC5VeMP7gHvWumXLIWorT60ONWic61uBYv0= github.com/smartystreets/assertions v0.0.0-20180927180507-b2de0cb4f26d/go.mod h1:OnSkiWE9lh6wB0YB77sQom3nweQdgAjqCqsofrRNTgc= github.com/smartystreets/assertions v1.1.0/go.mod h1:tcbTF8ujkAEcZ8TElKY+i30BzYlVhC/LOxJk7iOWnoo= -github.com/smartystreets/assertions v1.1.1 h1:T/YLemO5Yp7KPzS+lVtu+WsHn8yoSwTfItdAd1r3cck= github.com/smartystreets/assertions v1.1.1/go.mod h1:tcbTF8ujkAEcZ8TElKY+i30BzYlVhC/LOxJk7iOWnoo= github.com/smartystreets/go-aws-auth v0.0.0-20180515143844-0c1422d1fdb9/go.mod h1:SnhjPscd9TpLiy1LpzGSKh3bXCfxxXuqd9xmQJy3slM= -github.com/smartystreets/goconvey v1.6.4 h1:fv0U8FUIMPNf1L9lnHLvLhgicrIVChEkdzIKYqbNC9s= github.com/smartystreets/goconvey v1.6.4/go.mod h1:syvi0/a8iFYH4r/RixwvyeAJjdLS9QV7WQ/tjFTllLA= github.com/smartystreets/gunit v1.4.2/go.mod h1:ZjM1ozSIMJlAz/ay4SG8PeKF00ckUp+zMHZXV9/bvak= github.com/soheilhy/cmux v0.1.4 h1:0HKaf1o97UwFjHH9o5XsHUOF+tqmdA7KEzXLpiyaw0E= github.com/soheilhy/cmux v0.1.4/go.mod h1:IM3LyeVVIOuxMH7sFAkER9+bJ4dT7Ms6E4xg4kGIyLM= +github.com/spf13/afero v1.6.0 h1:xoax2sJ2DT8S8xA2paPFjDCScCNeWsg75VG0DLRreiY= +github.com/spf13/afero v1.6.0/go.mod h1:Ai8FlHk4v/PARR026UzYexafAt9roJ7LcLMAmO6Z93I= +github.com/spf13/cast v1.4.1 h1:s0hze+J0196ZfEMTs80N7UlFt0BDuQ7Q+JDnHiMWKdA= +github.com/spf13/cast v1.4.1/go.mod h1:Qx5cxh0v+4UWYiBimWS+eyWzqEqokIECu5etghLkUJE= github.com/spf13/cobra v0.0.3/go.mod h1:1l0Ry5zgKvJasoi3XT1TypsSe7PqH0Sj9dhYf7v3XqQ= -github.com/spf13/pflag v1.0.1 h1:aCvUg6QPl3ibpQUxyLkrEkCHtPqYJL4x9AuhqVqFis4= +github.com/spf13/jwalterweatherman v1.1.0 h1:ue6voC5bR5F8YxI5S67j9i582FU4Qvo2bmqnqMYADFk= +github.com/spf13/jwalterweatherman v1.1.0/go.mod h1:aNWZUN0dPAAO/Ljvb5BEdw96iTZ0EXowPYD95IqWIGo= github.com/spf13/pflag v1.0.1/go.mod h1:DYY7MBk1bdzusC3SYhjObp+wFpr4gzcvqqNjLnInEg4= +github.com/spf13/pflag v1.0.5 h1:iy+VFUOCP1a+8yFto/drg2CJ5u0yRoB7fZw3DKv/JXA= +github.com/spf13/pflag v1.0.5/go.mod h1:McXfInJRrz4CZXVZOBLb0bTZqETkiAhM9Iw0y3An2Bg= +github.com/spf13/viper v1.9.0 h1:yR6EXjTp0y0cLN8OZg1CRZmOBdI88UcGkhgyJhu6nZk= +github.com/spf13/viper v1.9.0/go.mod h1:+i6ajR7OX2XaiBkrcZJFK21htRk7eDeLg7+O6bhUPP4= github.com/stretchr/objx v0.1.0/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.1.1/go.mod h1:HFkY916IF+rwdDfMAkV7OtwuqBVzrE8GR6GFx+wExME= github.com/stretchr/objx v0.2.0/go.mod h1:qt09Ya8vawLte6SNmTgCsAVtYtaKzEcn8ATUoHMkEqE= @@ -280,6 +442,8 @@ github.com/stretchr/testify v1.5.1/go.mod h1:5W2xD1RspED5o8YsWQXVCued0rvSQ+mT+I5 github.com/stretchr/testify v1.6.1/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= github.com/stretchr/testify v1.7.0 h1:nwc3DEeHmmLAfoZucVR881uASk0Mfjw8xYJ99tb5CcY= github.com/stretchr/testify v1.7.0/go.mod h1:6Fq8oRcR53rry900zMqJjRRixrwX3KX962/h/Wwjteg= +github.com/subosito/gotenv v1.2.0 h1:Slr1R9HxAlEKefgq5jn9U+DnETlIUa6HfgEzj0g5d7s= +github.com/subosito/gotenv v1.2.0/go.mod h1:N0PQaV/YGNqwC0u51sEeR/aUtSLEXKX9iv69rRypqCw= github.com/tencentyun/qcloud-cos-sts-sdk v0.0.0-20210325043845-84a0811633ca h1:G/aIr3WiUesWHL2YGYgEqjM5tCAJ43Ml+0C18wDkWWs= github.com/tencentyun/qcloud-cos-sts-sdk v0.0.0-20210325043845-84a0811633ca/go.mod h1:b18KQa4IxHbxeseW1GcZox53d7J0z39VNONTxvvlkXw= github.com/tjfoc/gmsm v1.3.2 h1:7JVkAn5bvUJ7HtU08iW6UiD+UTmJTIToHCfeFzkcCxM= @@ -294,150 +458,434 @@ github.com/ugorji/go/codec v1.1.7/go.mod h1:Ax+UKWsSmolVDwsd+7N3ZtXu+yMGCf907BLY github.com/urfave/cli v1.20.0/go.mod h1:70zkFmudgCuE/ngEzBv17Jvp/497gISqfk5gWijbERA= github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2 h1:eY9dn8+vbi4tKz5Qo6v2eYzo7kUS51QINcR5jNpbZS8= github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2/go.mod h1:UETIi67q53MR2AWcXfiuqkDkRtnGDLqkBTpCHuJHxtU= +github.com/yuin/goldmark v1.1.25/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.1.30/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= +github.com/yuin/goldmark v1.1.32/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.2.1/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= +github.com/yuin/goldmark v1.3.5/go.mod h1:mwnBkeHKe2W/ZEtQ+71ViKU8L12m81fl3OWwC1Zlc8k= go.etcd.io/bbolt v1.3.4 h1:hi1bXHMVrlQh6WwxAy+qZCV/SYIlqo+Ushwdpa4tAKg= go.etcd.io/bbolt v1.3.4/go.mod h1:G5EMThwa9y8QZGBClrRx5EY+Yw9kAhnjy3bSjsnlVTQ= go.etcd.io/etcd v0.0.0-20200402134248-51bdeb39e698 h1:jWtjCJX1qxhHISBMLRztWwR+EXkI7MJAF2HjHAE/x/I= go.etcd.io/etcd v0.0.0-20200402134248-51bdeb39e698/go.mod h1:YoUyTScD3Vcv2RBm3eGVOq7i1ULiz3OuXoQFWOirmAM= +go.etcd.io/etcd/api/v3 v3.5.0/go.mod h1:cbVKeC6lCfl7j/8jBhAK6aIYO9XOjdptoxU/nLQcPvs= +go.etcd.io/etcd/client/pkg/v3 v3.5.0/go.mod h1:IJHfcCEKxYu1Os13ZdwCwIUTUVGYTSAM3YSwc9/Ac1g= +go.etcd.io/etcd/client/v2 v2.305.0/go.mod h1:h9puh54ZTgAKtEbut2oe9P4L/oqKCVB6xsXlzd7alYQ= +go.opencensus.io v0.21.0/go.mod h1:mSImk1erAIZhrmZN+AvHh14ztQfjbGwt4TtuofqLduU= +go.opencensus.io v0.22.0/go.mod h1:+kGneAE2xo2IficOXnaByMWTGM9T73dGwxeWcUqIpI8= +go.opencensus.io v0.22.2/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= +go.opencensus.io v0.22.3/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= +go.opencensus.io v0.22.4/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= +go.opencensus.io v0.22.5/go.mod h1:5pWMHQbX5EPX2/62yrJeAkowc+lfs/XD7Uxpq3pI6kk= go.opencensus.io v0.23.0/go.mod h1:XItmlyltB5F7CS4xOC1DcqMoFqwtC6OG2xF7mCv7P7E= -go.uber.org/atomic v1.6.0 h1:Ezj3JGmsOnG1MoRWQkPBsKLe9DwWD9QeXzTRzzldNVk= go.uber.org/atomic v1.6.0/go.mod h1:sABNBOSYdrvTF6hTgEIbc7YasKWGhgEQZyfxyTvoXHQ= -go.uber.org/multierr v1.5.0 h1:KCa4XfM8CWFCpxXRGok+Q0SS/0XBhMDbHHGABQLvD2A= +go.uber.org/atomic v1.7.0 h1:ADUqmZGgLDDfbSL9ZmPxKTybcoEYHgpYfELNoN+7hsw= +go.uber.org/atomic v1.7.0/go.mod h1:fEN4uk6kAWBTFdckzkM89CLk9XfWZrxpCo0nPH17wJc= go.uber.org/multierr v1.5.0/go.mod h1:FeouvMocqHpRaaGuG9EjoKcStLC43Zu/fmqdUMPcKYU= -go.uber.org/tools v0.0.0-20190618225709-2cfd321de3ee h1:0mgffUl7nfd+FpvXMVz4IDEaUSmT1ysygQC7qYo7sG4= +go.uber.org/multierr v1.6.0 h1:y6IPFStTAIT5Ytl7/XYmHvzXQ7S3g/IeZW9hyZ5thw4= +go.uber.org/multierr v1.6.0/go.mod h1:cdWPpRnG4AhwMwsgIHip0KRBQjJy5kYEpYjJxpXp9iU= go.uber.org/tools v0.0.0-20190618225709-2cfd321de3ee/go.mod h1:vJERXedbb3MVM5f9Ejo0C68/HhF8uaILCdgjnY+goOA= -go.uber.org/zap v1.14.1 h1:nYDKopTbvAPq/NrUVZwT15y2lpROBiLLyoRTbXOYWOo= go.uber.org/zap v1.14.1/go.mod h1:Mb2vm2krFEG5DV0W9qcHBYFtp/Wku1cvYaqPsS/WYfc= +go.uber.org/zap v1.17.0 h1:MTjgFu6ZLKvY6Pvaqk97GlxNBuMpV4Hy/3P6tRGlI2U= +go.uber.org/zap v1.17.0/go.mod h1:MXVU+bhUf/A7Xi2HNOnopQOrmycQ5Ih87HtOu4q5SSo= golang.org/x/crypto v0.0.0-20180904163835-0709b304e793/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= +golang.org/x/crypto v0.0.0-20181029021203-45a5f77698d3/go.mod h1:6SG95UA2DQfeDnfUPMdvaQW0Q7yPrPDi9nlGo2tz2b4= golang.org/x/crypto v0.0.0-20190308221718-c2843e01d9a2/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20190325154230-a5d413f7728c/go.mod h1:djNgcEr1/C05ACkg1iLfiJU5Ep61QUkGW8qpdssI0+w= golang.org/x/crypto v0.0.0-20190510104115-cbcb75029529/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= +golang.org/x/crypto v0.0.0-20190605123033-f99c8df09eb5/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= +golang.org/x/crypto v0.0.0-20190820162420-60c769a6c586/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= +golang.org/x/crypto v0.0.0-20190923035154-9ee001bba392/go.mod h1:/lpIB1dKB+9EgE3H3cr1v9wB50oz8l4C4h62xy7jSTY= golang.org/x/crypto v0.0.0-20191002192127-34f69633bfdc/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20191011191535-87dc89f01550/go.mod h1:yigFU9vqHzYiE8UmvKecakEJjdnWj3jj499lnFckfCI= golang.org/x/crypto v0.0.0-20191205180655-e7c4368fe9dd/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20191219195013-becbf705a915/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20200510223506-06a226fb4e37/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= -golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9 h1:psW17arqaxU48Z5kZ0CQnkZWQJsqcURM6tKiBApRjXI= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= +golang.org/x/crypto v0.0.0-20210817164053-32db794688a5 h1:HWj/xjIHfjYU5nVXpTM0s39J9CbLn7Cc5a7IC5rwsMQ= +golang.org/x/crypto v0.0.0-20210817164053-32db794688a5/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= +golang.org/x/exp v0.0.0-20190306152737-a1d7652674e8/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= +golang.org/x/exp v0.0.0-20190510132918-efd6b22b2522/go.mod h1:ZjyILWgesfNpC6sMxTJOJm9Kp84zZh5NQWvqDGG3Qr8= +golang.org/x/exp v0.0.0-20190829153037-c13cbed26979/go.mod h1:86+5VVa7VpoJ4kLfm080zCjGlMRFzhUhsZKEZO7MGek= +golang.org/x/exp v0.0.0-20191030013958-a1ab85dbe136/go.mod h1:JXzH8nQsPlswgeRAPE3MuO9GYsAcnJvJ4vnMwN/5qkY= +golang.org/x/exp v0.0.0-20191129062945-2f5052295587/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4= +golang.org/x/exp v0.0.0-20191227195350-da58074b4299/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4= +golang.org/x/exp v0.0.0-20200119233911-0405dc783f0a/go.mod h1:2RIsYlXP63K8oxa1u096TMicItID8zy7Y6sNkU49FU4= +golang.org/x/exp v0.0.0-20200207192155-f17229e696bd/go.mod h1:J/WKrq2StrnmMY6+EHIKF9dgMWnmCNThgcyBT1FY9mM= +golang.org/x/exp v0.0.0-20200224162631-6cc2880d07d6/go.mod h1:3jZMyOhIsHpP37uCMkUooju7aAi5cS1Q23tOzKc+0MU= +golang.org/x/image v0.0.0-20190227222117-0694c2d4d067/go.mod h1:kZ7UVZpmo3dzQBMxlp+ypCbDeSB+sBbTgSJuh5dn5js= +golang.org/x/image v0.0.0-20190802002840-cff245a6509b/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= golang.org/x/image v0.0.0-20210220032944-ac19c3e999fb h1:fqpd0EBDzlHRCjiphRR5Zo/RSWWQlWv34418dnEixWk= golang.org/x/image v0.0.0-20210220032944-ac19c3e999fb/go.mod h1:FeLwcggjj3mMvU+oOTbSwawSJRM1uh48EjtB4UJZlP0= golang.org/x/lint v0.0.0-20190227174305-5b3e6a55c961/go.mod h1:wehouNa3lNwaWXcvxsM5YxQ5yQlVC4a0KAMCusXpPoU= -golang.org/x/lint v0.0.0-20190930215403-16217165b5de h1:5hukYrvBGR8/eNkX5mdUezrA6JiaEZDtJb9Ei+1LlBs= +golang.org/x/lint v0.0.0-20190301231843-5614ed5bae6f/go.mod h1:UVdnD1Gm6xHRNCYTkRU2/jEulfH38KcIWyp/GAMgvoE= +golang.org/x/lint v0.0.0-20190313153728-d0100b6bd8b3/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= +golang.org/x/lint v0.0.0-20190409202823-959b441ac422/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= +golang.org/x/lint v0.0.0-20190909230951-414d861bb4ac/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= golang.org/x/lint v0.0.0-20190930215403-16217165b5de/go.mod h1:6SW0HCj/g11FgYtHlgUYUwCkIfeOF89ocIRzGO/8vkc= +golang.org/x/lint v0.0.0-20191125180803-fdd1cda4f05f/go.mod h1:5qLYkcX4OjUUV8bRuDixDT3tpyyb+LUpUlRWLxfhWrs= +golang.org/x/lint v0.0.0-20200130185559-910be7a94367/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= +golang.org/x/lint v0.0.0-20200302205851-738671d3881b/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= +golang.org/x/lint v0.0.0-20201208152925-83fdc39ff7b5/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= +golang.org/x/lint v0.0.0-20210508222113-6edffad5e616/go.mod h1:3xt1FjdF8hUf6vQPIChWIBhFzV8gjjsPE/fR3IyQdNY= +golang.org/x/mobile v0.0.0-20190312151609-d3739f865fa6/go.mod h1:z+o9i4GpDbdi3rU15maQ/Ox0txvL9dWGYEHz965HBQE= +golang.org/x/mobile v0.0.0-20190719004257-d2bd2a29d028/go.mod h1:E/iHnbuqvinMTCcRqshq8CkpyQDoeVncDDYHnLhea+o= golang.org/x/mod v0.0.0-20190513183733-4bf6d317e70e/go.mod h1:mXi4GBBbnImb6dmsKGUJ2LatrhH/nqhxcFungHvyanc= +golang.org/x/mod v0.1.0/go.mod h1:0QHyrYULN0/3qlju5TqG8bIK38QM8yzMo5ekMj3DlcY= +golang.org/x/mod v0.1.1-0.20191105210325-c90efee705ee/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg= +golang.org/x/mod v0.1.1-0.20191107180719-034126e5016b/go.mod h1:QqPTAvyqsEbceGzBzNggFXnrqF1CaUcvgkdR5Ot7KZg= golang.org/x/mod v0.2.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= -golang.org/x/mod v0.3.0 h1:RM4zey1++hCTbCVQfnWeKs9/IEsaBLA8vTkd0WVtmH4= golang.org/x/mod v0.3.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= +golang.org/x/mod v0.4.0/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= +golang.org/x/mod v0.4.1/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= +golang.org/x/mod v0.4.2/go.mod h1:s0Qsj1ACt9ePp/hMypM3fl4fZqREWJwdYDEqhRiZZUA= golang.org/x/net v0.0.0-20180218175443-cbe0f9307d01/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20180724234803-3673e40ba225/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20181023162649-9b4f9f5ad519/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20181114220301-adae6a3d119a/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20181220203305-927f97764cc3/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= +golang.org/x/net v0.0.0-20190108225652-1e06a53dbb7e/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190213061140-3a22650c66bd/go.mod h1:mL1N/T3taQHkDXs73rZJwtUhF3w3ftmwwsq0BUmARs4= golang.org/x/net v0.0.0-20190311183353-d8887717615a/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= golang.org/x/net v0.0.0-20190404232315-eb5bcb51f2a3/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= +golang.org/x/net v0.0.0-20190501004415-9ce7a6920f09/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= +golang.org/x/net v0.0.0-20190503192946-f4e77d36d62c/go.mod h1:t9HGtf8HONx5eT2rtn7q6eTqICYqUVnKs3thJo3Qplg= +golang.org/x/net v0.0.0-20190603091049-60506f45cf65/go.mod h1:HSz+uSET+XFnRR8LxR5pz3Of3rY3CfYBVs4xY44aLks= golang.org/x/net v0.0.0-20190620200207-3b0461eec859/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20190628185345-da137c7871d7/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20190724013045-ca1201d0de80/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20190813141303-74dc4d7220e7/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20190923162816-aa69164e4478/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20191209160850-c0dbc17a3553/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20200114155413-6afb5195e5aa/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200202094626-16171245cfb2/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20200222125558-5a598a2470a0/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200226121028-0de0cce0169b/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= +golang.org/x/net v0.0.0-20200301022130-244492dfa37a/go.mod h1:z5CRVTTTmAJ677TzLLGU+0bjPO0LkuOLi4/5GtJWs/s= golang.org/x/net v0.0.0-20200324143707-d3edc9973b7e/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= +golang.org/x/net v0.0.0-20200501053045-e0ff5e5a1de5/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= golang.org/x/net v0.0.0-20200506145744-7e3656a0809f/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= +golang.org/x/net v0.0.0-20200513185701-a91f0712d120/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= +golang.org/x/net v0.0.0-20200520182314-0ba52f642ac2/go.mod h1:qpuaurCH72eLCgpAm/N6yyVIVM9cpaDIP3A8BGJEC5A= +golang.org/x/net v0.0.0-20200625001655-4c5254603344/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= +golang.org/x/net v0.0.0-20200707034311-ab3426394381/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= +golang.org/x/net v0.0.0-20200822124328-c89045814202/go.mod h1:/O7V0waA8r7cgGh81Ro3o1hOxt32SMVPicZroKQ2sZA= golang.org/x/net v0.0.0-20201021035429-f5854403a974/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= +golang.org/x/net v0.0.0-20201031054903-ff519b6c9102/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= golang.org/x/net v0.0.0-20201110031124-69a78807bb2b/go.mod h1:sp8m0HH+o8qH0wwXwYZr8TS3Oi6o0r6Gce1SSxlDquU= +golang.org/x/net v0.0.0-20201209123823-ac852fbbde11/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= +golang.org/x/net v0.0.0-20210119194325-5f4716e94777/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= +golang.org/x/net v0.0.0-20210226172049-e18ecbb05110/go.mod h1:m0MpNAwzfU5UDzcl9v0D8zg8gWTRqZa9RBIspLL5mdg= +golang.org/x/net v0.0.0-20210316092652-d523dce5a7f4/go.mod h1:RBQZq4jEuRlivfhVLdyRGr576XBO4/greRjx4P4O3yc= +golang.org/x/net v0.0.0-20210405180319-a5a99cb37ef4/go.mod h1:p54w0d4576C0XHj96bSt6lcn1PtDYWL6XObtHCRCNQM= +golang.org/x/net v0.0.0-20210503060351-7fd8e65b6420/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/net v0.0.0-20210917221730-978cfadd31cf h1:R150MpwJIv1MpS0N/pc+NhTM8ajzvlmxlY5OYsrevXQ= golang.org/x/net v0.0.0-20210917221730-978cfadd31cf/go.mod h1:9nx3DQGgdP8bBQD5qxJ1jj9UTztislL4KSBs9R2vV5Y= golang.org/x/oauth2 v0.0.0-20180821212333-d2e6202438be/go.mod h1:N/0e6XlmueqKjAGxoOufVs8QHGRruUQn6yWY3a++T0U= +golang.org/x/oauth2 v0.0.0-20190226205417-e64efc72b421/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= +golang.org/x/oauth2 v0.0.0-20190604053449-0f29369cfe45/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= +golang.org/x/oauth2 v0.0.0-20191202225959-858c2ad4c8b6/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= +golang.org/x/oauth2 v0.0.0-20200107190931-bf48bf16ab8d/go.mod h1:gOpvHmFTYa4IltrdGE7lF6nIHvwfUNPOp7c8zoXwtLw= +golang.org/x/oauth2 v0.0.0-20200902213428-5d25da1a8d43/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= +golang.org/x/oauth2 v0.0.0-20201109201403-9fd604954f58/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= +golang.org/x/oauth2 v0.0.0-20201208152858-08078c50e5b5/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= +golang.org/x/oauth2 v0.0.0-20210218202405-ba52d332ba99/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= +golang.org/x/oauth2 v0.0.0-20210220000619-9bb904979d93/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= +golang.org/x/oauth2 v0.0.0-20210313182246-cd4f82c27b84/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= +golang.org/x/oauth2 v0.0.0-20210514164344-f6687ab2804c/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= +golang.org/x/oauth2 v0.0.0-20210628180205-a41e5a781914/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= +golang.org/x/oauth2 v0.0.0-20210805134026-6f1e6394065a/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= +golang.org/x/oauth2 v0.0.0-20210819190943-2bc19b11175f/go.mod h1:KelEdhl1UZF7XfJ4dDtk6s++YSgaE7mD/BuKKDLBl4A= golang.org/x/sync v0.0.0-20181108010431-42b317875d0f/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20181221193216-37e7f081c4d4/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20190227155943-e225da77a7e6/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190423024810-112230192c58/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20190911185100-cd5d95a43a6e/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20200317015054-43a5402ce75a/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20200625203802-6e8e738ad208/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20201207232520-09787c993a3a/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sys v0.0.0-20180823144017-11551d06cbcc/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20181026203630-95b1ffbd15a5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20181107165924-66b7b1311ac8/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20181116152217-5ac8a444bdc5/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20190215142949-d0b11bdaac8a/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190222072716-a9d3bda3a223/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= +golang.org/x/sys v0.0.0-20190312061237-fead79001313/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190412213103-97732733099d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20190422165155-953cdadca894/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190502145724-3ef323f4f1fd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190507160741-ecd444e8653b/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190606165138-5da285871e9c/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190624142023-c5567b49c5d0/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190726091711-fc99dfbffb4e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190922100055-0a153f010e69/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20190924154521-2837fb4f24fe/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20191001151750-bb3f8db39f24/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20191008105621-543471e840be/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20191026070338-33540a1f6037/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20191204072324-ce4227a45e2e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20191228213918-04cbcbbfeed8/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200113162924-86b910548bc1/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200116001909-b77594299b42/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200122134326-e047566fdf82/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200124204421-9fbb57f87de9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200202164722-d101bd2416d5/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200212091648-12a6c2dcc1e4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200223170610-d5e6a3e2c0ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200302150141-5c8b2ff67527/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200323222414-85ca7c5b95cd/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200331124033-c3d80250170d/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200501052902-10377860bb8e/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200509044756-6aff5f38e54f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200511232937-7e40ca221e25/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200515095857-1151b9dac4a9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200523222454-059865788121/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200803210538-64077c9b5642/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200905004654-be1d3432aa8f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20201119102817-f84b799fce68/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= -golang.org/x/sys v0.0.0-20210423082822-04245dca01da h1:b3NXsE2LusjYGGjL5bxEVZZORm/YEFFrWFjR8eFrw/c= +golang.org/x/sys v0.0.0-20201201145000-ef89a241ccb3/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210104204734-6f8348627aad/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210119212857-b64e53b001e4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210220050731-9a76102bfb43/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210305230114-8fe3ee5dd75b/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210315160823-c6e025ad8005/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210320140829-1e4c9ba3b0c4/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210330210617-4fbd30eecc44/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210403161142-5e06dd20ab57/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20210423082822-04245dca01da/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20210510120138-977fb7262007/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20210514084401-e8d321eab015/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20210603125802-9665404d3644/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20210615035016-665e8c7367d1/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20210616094352-59db8d763f22/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20210630005230-0f9fa26af87c/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20210806184541-e5e7981a1069/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/sys v0.0.0-20210823070655-63515b42dcdf h1:2ucpDCmfkl8Bd/FsLtiD653Wf96cW37s+iGx93zsu4k= +golang.org/x/sys v0.0.0-20210823070655-63515b42dcdf/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= +golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= +golang.org/x/text v0.3.1-0.20180807135948-17ff2d5776d2/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.2/go.mod h1:bEr9sfX3Q8Zfm5fL9x+3itogRgK3+ptLWKqgva+5dAk= golang.org/x/text v0.3.3/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= +golang.org/x/text v0.3.4/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= +golang.org/x/text v0.3.5/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= golang.org/x/text v0.3.6 h1:aRYxNxv6iGQlyVaZmk6ZgYEDa+Jg18DxebPSrd6bg1M= golang.org/x/text v0.3.6/go.mod h1:5Zoc/QRtKVWzQhOtBMvqHzDpF6irO9z98xDceosuGiQ= -golang.org/x/time v0.0.0-20180412165947-fbb02b2291d2 h1:+DCIGbF/swA92ohVg0//6X2IVY3KZs6p9mix0ziNYJM= golang.org/x/time v0.0.0-20180412165947-fbb02b2291d2/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= +golang.org/x/time v0.0.0-20181108054448-85acf8d2951c/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= +golang.org/x/time v0.0.0-20190308202827-9d24e82272b4/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= +golang.org/x/time v0.0.0-20191024005414-555d28b269f0 h1:/5xXl8Y5W96D+TtHSlonuFqGHIWVuyCkGJLwGh9JJFs= +golang.org/x/time v0.0.0-20191024005414-555d28b269f0/go.mod h1:tRJNPiyCQ0inRvYxbN9jk5I+vvW/OXSQhTDSoE431IQ= golang.org/x/tools v0.0.0-20180221164845-07fd8470d635/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20180917221912-90fa682c2a6e/go.mod h1:n7NCudcB/nEzxVGmLbDWY5pfWTLqBcC2KZ6jyYvM4mQ= golang.org/x/tools v0.0.0-20190226205152-f727befe758c/go.mod h1:9Yl7xja0Znq3iFh3HoIrodX9oNMXvdceNzlUR8zjMvY= golang.org/x/tools v0.0.0-20190311212946-11955173bddd/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= +golang.org/x/tools v0.0.0-20190312151545-0bb0c0a6e846/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= +golang.org/x/tools v0.0.0-20190312170243-e65039ee4138/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= golang.org/x/tools v0.0.0-20190328211700-ab21143f2384/go.mod h1:LCzVGOaR6xXOjkQ3onu1FJEFr0SW1gC7cKk1uF8kGRs= +golang.org/x/tools v0.0.0-20190425150028-36563e24a262/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= +golang.org/x/tools v0.0.0-20190506145303-2d16b83fe98c/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= +golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= +golang.org/x/tools v0.0.0-20190606124116-d0a3d012864b/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= golang.org/x/tools v0.0.0-20190621195816-6e04913cbbac/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= +golang.org/x/tools v0.0.0-20190628153133-6cdbf07be9d0/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= +golang.org/x/tools v0.0.0-20190816200558-6889da9d5479/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20190907020128-2ca718005c18/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20190911174233-4f2ddba30aff/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20191012152004-8de300cfc20a/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191029041327-9cc4af7d6b2c/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191029190741-b9c20aec41a5/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20191113191852-77e3bb0ad9e7/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20191115202509-3a792d9c32b2/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= golang.org/x/tools v0.0.0-20191119224855-298f0cb1881e/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20191125144606-a911d9008d1f/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20191130070609-6e064ea0cf2d/go.mod h1:b+2E5dAYhXwXZwtnZ6UAqBI28+e2cm9otk0dWdXHAEo= +golang.org/x/tools v0.0.0-20191216173652-a0e659d51361/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20191227053925-7b8e75db28f4/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20200117161641-43d50277825c/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20200122220014-bf1340f18c4a/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20200130002326-2f3ba24bd6e7/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20200204074204-1cc6d1ef6c74/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20200207183749-b753a1ba74fa/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20200212150539-ea181f53ac56/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20200224181240-023911ca70b2/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20200227222343-706bc42d1f0d/go.mod h1:TB2adYChydJhpapKDTa4BR/hXlZSLoq2Wpct/0txZ28= +golang.org/x/tools v0.0.0-20200304193943-95d2e580d8eb/go.mod h1:o4KQGtdN14AW+yjsvvwRTJJuXz8XRtIHtEnmAXLyFUw= +golang.org/x/tools v0.0.0-20200312045724-11d5b4c81c7d/go.mod h1:o4KQGtdN14AW+yjsvvwRTJJuXz8XRtIHtEnmAXLyFUw= +golang.org/x/tools v0.0.0-20200331025713-a30bf2db82d4/go.mod h1:Sl4aGygMT6LrqrWclx+PTx3U+LnKx/seiNR+3G19Ar8= +golang.org/x/tools v0.0.0-20200501065659-ab2804fb9c9d/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= golang.org/x/tools v0.0.0-20200509030707-2212a7e161a5/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= -golang.org/x/tools v0.0.0-20210106214847-113979e3529a h1:CB3a9Nez8M13wwlr/E2YtwoU+qYHKfC+JrDa45RXXoQ= +golang.org/x/tools v0.0.0-20200512131952-2bc93b1c0c88/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= +golang.org/x/tools v0.0.0-20200515010526-7d3b6ebf133d/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= +golang.org/x/tools v0.0.0-20200618134242-20370b0cb4b2/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= +golang.org/x/tools v0.0.0-20200619180055-7c47624df98f/go.mod h1:EkVYQZoAsY45+roYkvgYkIh4xh/qjgUK9TdY2XT94GE= +golang.org/x/tools v0.0.0-20200729194436-6467de6f59a7/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= +golang.org/x/tools v0.0.0-20200804011535-6c149bb5ef0d/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= +golang.org/x/tools v0.0.0-20200825202427-b303f430e36d/go.mod h1:njjCfa9FT2d7l9Bc6FUM5FLjQPp3cFF28FI3qnDFljA= +golang.org/x/tools v0.0.0-20200904185747-39188db58858/go.mod h1:Cj7w3i3Rnn0Xh82ur9kSqwfTHTeVxaDqrfMjpcNT6bE= +golang.org/x/tools v0.0.0-20201110124207-079ba7bd75cd/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= +golang.org/x/tools v0.0.0-20201201161351-ac6f37ff4c2a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= +golang.org/x/tools v0.0.0-20201208233053-a543418bbed2/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= +golang.org/x/tools v0.0.0-20210105154028-b0ab187a4818/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= golang.org/x/tools v0.0.0-20210106214847-113979e3529a/go.mod h1:emZCQorbCU4vsT4fOWvOPXz4eW1wZW4PmDk9uLelYpA= +golang.org/x/tools v0.1.0/go.mod h1:xkSsbof2nBLbhDlRMhhhyNLN/zl3eTqcnHD5viDpcZ0= +golang.org/x/tools v0.1.1/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= +golang.org/x/tools v0.1.2/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= +golang.org/x/tools v0.1.3/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= +golang.org/x/tools v0.1.4/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= +golang.org/x/tools v0.1.5/go.mod h1:o0xws9oXOQQZyjljx8fwUC0k7L1pTE6eaCbjGeHmOkk= golang.org/x/xerrors v0.0.0-20190717185122-a985d3407aa7/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191011141410-1b5146add898/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20191204190536-9bdfabe68543/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1 h1:go1bK/D/BFZV2I8cIQd1NKEZ+0owSTG1fDTci4IqFcE= golang.org/x/xerrors v0.0.0-20200804184101-5ec99f83aff1/go.mod h1:I/5z698sn9Ka8TeJc9MKroUUfqBBauWjQqLJ2OPfmY0= +google.golang.org/api v0.4.0/go.mod h1:8k5glujaEP+g9n7WNsDg8QP6cUVNI86fCNMcbazEtwE= +google.golang.org/api v0.7.0/go.mod h1:WtwebWUNSVBH/HAw79HIFXZNqEvBhG+Ra+ax0hx3E3M= +google.golang.org/api v0.8.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg= +google.golang.org/api v0.9.0/go.mod h1:o4eAsZoiT+ibD93RtjEohWalFOjRDx6CVaqeizhEnKg= +google.golang.org/api v0.13.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI= +google.golang.org/api v0.14.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI= +google.golang.org/api v0.15.0/go.mod h1:iLdEw5Ide6rF15KTC1Kkl0iskquN2gFfn9o9XIsbkAI= +google.golang.org/api v0.17.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= +google.golang.org/api v0.18.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= +google.golang.org/api v0.19.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= +google.golang.org/api v0.20.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= +google.golang.org/api v0.22.0/go.mod h1:BwFmGc8tA3vsd7r/7kR8DY7iEEGSU04BFxCo5jP/sfE= +google.golang.org/api v0.24.0/go.mod h1:lIXQywCXRcnZPGlsd8NbLnOjtAoL6em04bJ9+z0MncE= +google.golang.org/api v0.28.0/go.mod h1:lIXQywCXRcnZPGlsd8NbLnOjtAoL6em04bJ9+z0MncE= +google.golang.org/api v0.29.0/go.mod h1:Lcubydp8VUV7KeIHD9z2Bys/sm/vGKnG1UHuDBSrHWM= +google.golang.org/api v0.30.0/go.mod h1:QGmEvQ87FHZNiUVJkT14jQNYJ4ZJjdRF23ZXz5138Fc= +google.golang.org/api v0.35.0/go.mod h1:/XrVsuzM0rZmrsbjJutiuftIzeuTQcEeaYcSk/mQ1dg= +google.golang.org/api v0.36.0/go.mod h1:+z5ficQTmoYpPn8LCUNVpK5I7hwkpjbcgqA7I34qYtE= +google.golang.org/api v0.40.0/go.mod h1:fYKFpnQN0DsDSKRVRcQSDQNtqWPfM9i+zNPxepjRCQ8= +google.golang.org/api v0.41.0/go.mod h1:RkxM5lITDfTzmyKFPt+wGrCJbVfniCr2ool8kTBzRTU= +google.golang.org/api v0.43.0/go.mod h1:nQsDGjRXMo4lvh5hP0TKqF244gqhGcr/YSIykhUk/94= +google.golang.org/api v0.47.0/go.mod h1:Wbvgpq1HddcWVtzsVLyfLp8lDg6AA241LmgIL59tHXo= +google.golang.org/api v0.48.0/go.mod h1:71Pr1vy+TAZRPkPs/xlCf5SsU8WjuAWv1Pfjbtukyy4= +google.golang.org/api v0.50.0/go.mod h1:4bNT5pAuq5ji4SRZm+5QIkjny9JAyVD/3gaSihNefaw= +google.golang.org/api v0.51.0/go.mod h1:t4HdrdoNgyN5cbEfm7Lum0lcLDLiise1F8qDKX00sOU= +google.golang.org/api v0.54.0/go.mod h1:7C4bFFOvVDGXjfDTAsgGwDgAxRDeQ4X8NvUedIt6z3k= +google.golang.org/api v0.56.0/go.mod h1:38yMfeP1kfjsl8isn0tliTjIb1rJXcQi4UXlbqivdVE= google.golang.org/appengine v1.4.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= +google.golang.org/appengine v1.5.0/go.mod h1:xpcJRLb0r/rnEns0DIKYYv+WjYCduHsrkT7/EB5XEv4= +google.golang.org/appengine v1.6.1/go.mod h1:i06prIuMbXzDqacNJfV5OdTW448YApPu5ww/cMBSeb0= +google.golang.org/appengine v1.6.5/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= +google.golang.org/appengine v1.6.6/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= +google.golang.org/appengine v1.6.7/go.mod h1:8WjMMxjGQR8xUklV/ARdw2HLXBOI7O7uCIDZVag1xfc= google.golang.org/genproto v0.0.0-20180817151627-c66870c02cf8/go.mod h1:JiN7NxoALGmiZfu7CAH4rXhgtRTLTxftemlI0sWmxmc= -google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55 h1:gSJIx1SDwno+2ElGhA4+qG2zF97qiUzTM+rQ0klBOcE= +google.golang.org/genproto v0.0.0-20190307195333-5fe7a883aa19/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= +google.golang.org/genproto v0.0.0-20190418145605-e7d98fc518a7/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= +google.golang.org/genproto v0.0.0-20190425155659-357c62f0e4bb/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= +google.golang.org/genproto v0.0.0-20190502173448-54afdca5d873/go.mod h1:VzzqZJRnGkLBvHegQrXjBqPurQTc5/KpmUdxsrq26oE= +google.golang.org/genproto v0.0.0-20190801165951-fa694d86fc64/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= google.golang.org/genproto v0.0.0-20190819201941-24fa4b261c55/go.mod h1:DMBHOl98Agz4BDEuKkezgsaosCRResVns1a3J2ZsMNc= +google.golang.org/genproto v0.0.0-20190911173649-1774047e7e51/go.mod h1:IbNlFCBrqXvoKpeg0TB2l7cyZUmoaFKYIwrEpbDKLA8= +google.golang.org/genproto v0.0.0-20191108220845-16a3f7862a1a/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= +google.golang.org/genproto v0.0.0-20191115194625-c23dd37a84c9/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= +google.golang.org/genproto v0.0.0-20191216164720-4f79533eabd1/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= +google.golang.org/genproto v0.0.0-20191230161307-f3c370f40bfb/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= +google.golang.org/genproto v0.0.0-20200115191322-ca5a22157cba/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= +google.golang.org/genproto v0.0.0-20200122232147-0452cf42e150/go.mod h1:n3cpQtvxv34hfy77yVDNjmbRyujviMdxYliBSkLhpCc= +google.golang.org/genproto v0.0.0-20200204135345-fa8e72b47b90/go.mod h1:GmwEX6Z4W5gMy59cAlVYjN9JhxgbQH6Gn+gFDQe2lzA= +google.golang.org/genproto v0.0.0-20200212174721-66ed5ce911ce/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= +google.golang.org/genproto v0.0.0-20200224152610-e50cd9704f63/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= +google.golang.org/genproto v0.0.0-20200228133532-8c2c7df3a383/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= +google.golang.org/genproto v0.0.0-20200305110556-506484158171/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= +google.golang.org/genproto v0.0.0-20200312145019-da6875a35672/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= +google.golang.org/genproto v0.0.0-20200331122359-1ee6d9798940/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= +google.golang.org/genproto v0.0.0-20200430143042-b979b6f78d84/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= +google.golang.org/genproto v0.0.0-20200511104702-f5ebc3bea380/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= +google.golang.org/genproto v0.0.0-20200513103714-09dca8ec2884/go.mod h1:55QSHmfGQM9UVYDPBsyGGes0y52j32PQ3BqQfXhyH3c= +google.golang.org/genproto v0.0.0-20200515170657-fc4c6c6a6587/go.mod h1:YsZOwe1myG/8QRHRsmBRE1LrgQY60beZKjly0O1fX9U= +google.golang.org/genproto v0.0.0-20200526211855-cb27e3aa2013/go.mod h1:NbSheEEYHJ7i3ixzK3sjbqSGDJWnxyFXZblF3eUsNvo= +google.golang.org/genproto v0.0.0-20200618031413-b414f8b61790/go.mod h1:jDfRM7FcilCzHH/e9qn6dsT145K34l5v+OpcnNgKAAA= +google.golang.org/genproto v0.0.0-20200729003335-053ba62fc06f/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20200804131852-c06518451d9c/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20200825200019-8632dd797987/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20200904004341-0bd0a958aa1d/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20201109203340-2640f1f9cdfb/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20201201144952-b05cb90ed32e/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20201210142538-e3217bee35cc/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20201214200347-8c77b98c765d/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20210222152913-aa3ee6e6a81c/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20210303154014-9728d6b83eeb/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20210310155132-4ce2db91004e/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20210319143718-93e7006c17a6/go.mod h1:FWY/as6DDZQgahTzZj3fqbO1CbirC29ZNUFHwi0/+no= +google.golang.org/genproto v0.0.0-20210402141018-6c239bbf2bb1/go.mod h1:9lPAdzaEmUacj36I+k7YKbEc5CXzPIeORRgDAUOu28A= +google.golang.org/genproto v0.0.0-20210513213006-bf773b8c8384/go.mod h1:P3QM42oQyzQSnHPnZ/vqoCdDmzH28fzWByN9asMeM8A= +google.golang.org/genproto v0.0.0-20210602131652-f16073e35f0c/go.mod h1:UODoCrxHCcBojKKwX1terBiRUaqAsFqJiF615XL43r0= +google.golang.org/genproto v0.0.0-20210604141403-392c879c8b08/go.mod h1:UODoCrxHCcBojKKwX1terBiRUaqAsFqJiF615XL43r0= +google.golang.org/genproto v0.0.0-20210608205507-b6d2f5bf0d7d/go.mod h1:UODoCrxHCcBojKKwX1terBiRUaqAsFqJiF615XL43r0= +google.golang.org/genproto v0.0.0-20210624195500-8bfb893ecb84/go.mod h1:SzzZ/N+nwJDaO1kznhnlzqS8ocJICar6hYhVyhi++24= +google.golang.org/genproto v0.0.0-20210713002101-d411969a0d9a/go.mod h1:AxrInvYm1dci+enl5hChSFPOmmUF1+uAa/UsgNRWd7k= +google.golang.org/genproto v0.0.0-20210716133855-ce7ef5c701ea/go.mod h1:AxrInvYm1dci+enl5hChSFPOmmUF1+uAa/UsgNRWd7k= +google.golang.org/genproto v0.0.0-20210728212813-7823e685a01f/go.mod h1:ob2IJxKrgPT52GcgX759i1sleT07tiKowYBGbczaW48= +google.golang.org/genproto v0.0.0-20210805201207-89edb61ffb67/go.mod h1:ob2IJxKrgPT52GcgX759i1sleT07tiKowYBGbczaW48= +google.golang.org/genproto v0.0.0-20210813162853-db860fec028c/go.mod h1:cFeNkxwySK631ADgubI+/XFU/xp8FD5KIVV4rj8UC5w= +google.golang.org/genproto v0.0.0-20210821163610-241b8fcbd6c8/go.mod h1:eFjDcFEctNawg4eG61bRv87N7iHBWyVhJu7u1kqDUXY= +google.golang.org/genproto v0.0.0-20210828152312-66f60bf46e71 h1:z+ErRPu0+KS02Td3fOAgdX+lnPDh/VyaABEJPD4JRQs= +google.golang.org/genproto v0.0.0-20210828152312-66f60bf46e71/go.mod h1:eFjDcFEctNawg4eG61bRv87N7iHBWyVhJu7u1kqDUXY= google.golang.org/grpc v1.29.1 h1:EC2SB8S04d2r73uptxphDSUG+kTKVgjRPF+N3xpxRB4= google.golang.org/grpc v1.29.1/go.mod h1:itym6AZVZYACWQqET3MqgPpjcuV5QH3BxFS3IjizoKk= +google.golang.org/grpc/cmd/protoc-gen-go-grpc v1.1.0/go.mod h1:6Kw0yEErY5E/yWrBtf03jp27GLLJujG4z/JK95pnjjw= google.golang.org/protobuf v0.0.0-20200109180630-ec00e32a8dfd/go.mod h1:DFci5gLYBciE7Vtevhsrf46CRTquxDuWsQurQQe4oz8= google.golang.org/protobuf v0.0.0-20200221191635-4d8936d0db64/go.mod h1:kwYJMbMJ01Woi6D6+Kah6886xMZcty6N08ah7+eCXa0= google.golang.org/protobuf v0.0.0-20200228230310-ab0ca4ff8a60/go.mod h1:cfTl7dwQJ+fmap5saPgwCLgHXTUD7jkjRqWcaiX5VyM= google.golang.org/protobuf v1.20.1-0.20200309200217-e05f789c0967/go.mod h1:A+miEFZTKqfCUM6K7xSMQL9OKL/b6hQv+e19PK+JZNE= google.golang.org/protobuf v1.21.0/go.mod h1:47Nbq4nVaFHyn7ilMalzfO3qCViNmqZ2kzikPIcrTAo= +google.golang.org/protobuf v1.22.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= google.golang.org/protobuf v1.23.0/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= +google.golang.org/protobuf v1.23.1-0.20200526195155-81db48ad09cc/go.mod h1:EGpADcykh3NcUnDUJcl1+ZksZNG86OlYog2l/sGQquU= +google.golang.org/protobuf v1.24.0/go.mod h1:r/3tXBNzIEhYS9I1OUVjXDlt8tc493IdKGjtUeSXeh4= +google.golang.org/protobuf v1.25.0/go.mod h1:9JNX74DMeImyA3h4bdi1ymwjUzf21/xIlbajtzgsN7c= google.golang.org/protobuf v1.26.0-rc.1/go.mod h1:jlhhOSvTdKEhbULTjvd4ARK9grFBp09yW+WbY/TyQbw= -google.golang.org/protobuf v1.26.0 h1:bxAC2xTBsZGibn2RTntX0oH50xLsqy1OxA9tTL3p/lk= google.golang.org/protobuf v1.26.0/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= +google.golang.org/protobuf v1.27.1 h1:SnqbnDw1V7RiZcXPx5MEeqPv2s79L9i7BJUlG/+RurQ= +google.golang.org/protobuf v1.27.1/go.mod h1:9q0QmTI4eRPtz6boOQmLYwt+qCgq0jsYwAQnmE0givc= gopkg.in/alecthomas/kingpin.v2 v2.2.6/go.mod h1:FMv+mEhP44yOT+4EoQTLFTRgOQ1FBLkstjWtayDeSgw= gopkg.in/alexcesaro/quotedprintable.v3 v3.0.0-20150716171945-2caba252f4dc h1:2gGKlE2+asNV9m7xrywl36YYNnBG5ZQ0r/BOOxqPpmk= gopkg.in/alexcesaro/quotedprintable.v3 v3.0.0-20150716171945-2caba252f4dc/go.mod h1:m7x9LTH6d71AHyAX77c9yqWCCa3UKHcVEj9y7hAtKDk= gopkg.in/check.v1 v0.0.0-20161208181325-20d25e280405/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= -gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127 h1:qIbj1fsPNlZgppZ+VLlY7N33q108Sa+fhmuc+sWQYwY= gopkg.in/check.v1 v1.0.0-20180628173108-788fd7840127/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= +gopkg.in/check.v1 v1.0.0-20190902080502-41f04d3bba15/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/check.v1 v1.0.0-20200227125254-8fa46927fb4f h1:BLraFXnmrev5lT+xlilqcH8XK9/i0At2xKjWk4p6zsU= gopkg.in/check.v1 v1.0.0-20200227125254-8fa46927fb4f/go.mod h1:Co6ibVJAznAaIkqp8huTwlJQCZ016jof/cbN4VW5Yz0= gopkg.in/cheggaaa/pb.v1 v1.0.25/go.mod h1:V/YB90LKu/1FcN3WVnfiiE5oMCibMjukxqG/qStrOgw= gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI= gopkg.in/gomail.v2 v2.0.0-20160411212932-81ebce5c23df h1:n7WqCuqOuCbNr617RXOY0AWRXxgwEyPp2z+p0+hgMuE= gopkg.in/gomail.v2 v2.0.0-20160411212932-81ebce5c23df/go.mod h1:LRQQ+SO6ZHR7tOkpBDuZnXENFzX8qRjMDMyPD6BRkCw= -gopkg.in/ini.v1 v1.56.0 h1:DPMeDvGTM54DXbPkVIZsp19fp/I2K7zwA/itHYHKo8Y= gopkg.in/ini.v1 v1.56.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= +gopkg.in/ini.v1 v1.63.2 h1:tGK/CyBg7SMzb60vP1M03vNZ3VDu3wGQJwn7Sxi9r3c= +gopkg.in/ini.v1 v1.63.2/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= gopkg.in/mgo.v2 v2.0.0-20190816093944-a6b53ec6cb22 h1:VpOs+IwYnYBaFnrNAeB8UUWtL3vEUnzSCL1nVjPhqrw= gopkg.in/mgo.v2 v2.0.0-20190816093944-a6b53ec6cb22/go.mod h1:yeKp02qBN3iKW1OzL3MGk2IdtZzaj7SFntXj72NppTA= gopkg.in/resty.v1 v1.12.0/go.mod h1:mDo4pnntr5jdWRML875a/NmxYqAlA73dVijT2AXvQQo= gopkg.in/yaml.v2 v2.0.0-20170812160011-eb3733d160e7/go.mod h1:JAlM8MvJe8wmxCU4Bli9HhUf9+ttbYbLASfIpnQbh74= gopkg.in/yaml.v2 v2.2.1/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.2/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= -gopkg.in/yaml.v2 v2.2.8 h1:obN1ZagJSUGI0Ek/LBmuj4SNLPfIny3KsKFopxRdj10= +gopkg.in/yaml.v2 v2.2.3/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= gopkg.in/yaml.v2 v2.2.8/go.mod h1:hI93XBmqTisBFMUTm0b8Fm+jr3Dg1NNxqwp+5A1VGuI= +gopkg.in/yaml.v2 v2.4.0 h1:D8xgwECY7CYvx+Y2n4sBz93Jn9JRvxdiyyo8CTfuKaY= +gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b h1:h8qDotaEPuJATrMmW04NCwg7v22aHH28wwpauUhK9Oo= gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= -honnef.co/go/tools v0.0.1-2019.2.3 h1:3JgtbtFHMiCmsznwGVTUWbgGov+pVqnlf1dEJTNAXeM= +honnef.co/go/tools v0.0.0-20190106161140-3f1c8253044a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= +honnef.co/go/tools v0.0.0-20190418001031-e561f6794a2a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= +honnef.co/go/tools v0.0.0-20190523083050-ea95bdfd59fc/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= honnef.co/go/tools v0.0.1-2019.2.3/go.mod h1:a3bituU0lyd329TUQxRnasdCoJDkEUEAqEt0JzvZhAg= +honnef.co/go/tools v0.0.1-2020.1.3/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k= +honnef.co/go/tools v0.0.1-2020.1.4/go.mod h1:X/FiERA/W4tHapMX5mGpAtMSVEeEUOyHaw9vFzvIQ3k= +rsc.io/binaryregexp v0.2.0/go.mod h1:qTv7/COck+e2FymRvadv62gMdZztPaShugOCi3I+8D8= +rsc.io/quote/v3 v3.1.0/go.mod h1:yEA65RcK8LyAZtP9Kv3t0HmxON59tX3rD+tICJqUlj0= +rsc.io/sampler v1.3.0/go.mod h1:T1hPZKmBbMNahiBKFy5HrXp6adAjACjK9JXDnKaTXpA= sigs.k8s.io/yaml v1.1.0/go.mod h1:UJmg0vDUVViEyp3mgSv9WPwZCDxu4rQW1olrI1uml+o= sigs.k8s.io/yaml v1.2.0 h1:kr/MCeFWJWTwyaHoR9c8EjH9OumOmoF9YGiZd7lFm/Q= sigs.k8s.io/yaml v1.2.0/go.mod h1:yfXDCHCao9+ENCvLSE62v9VSji2MKu5jeNfTrofGhJc= diff --git a/internal/demo/register/login.go b/internal/demo/register/login.go index bc2605e08..628828f4a 100644 --- a/internal/demo/register/login.go +++ b/internal/demo/register/login.go @@ -5,13 +5,14 @@ import ( "Open_IM/pkg/common/constant" "Open_IM/pkg/common/db/mysql_model/im_mysql_model" "Open_IM/pkg/common/log" - "Open_IM/pkg/utils" "bytes" "encoding/json" "fmt" - "github.com/gin-gonic/gin" "io/ioutil" "net/http" + + "github.com/gin-gonic/gin" + "github.com/spf13/viper" ) type ParamsLogin struct { @@ -88,7 +89,7 @@ func Login(c *gin.Context) { } func OpenIMToken(Account string, platform int32) (*http.Response, error) { - url := fmt.Sprintf("http://%s:10000/auth/user_token", utils.ServerIP) + url := fmt.Sprintf("http://%s:10000/auth/user_token", viper.GetString("endpoints.api")) client := &http.Client{} params := make(map[string]interface{}) diff --git a/internal/demo/register/set_password.go b/internal/demo/register/set_password.go index 7dca79dc6..abd2358c2 100644 --- a/internal/demo/register/set_password.go +++ b/internal/demo/register/set_password.go @@ -6,14 +6,15 @@ import ( "Open_IM/pkg/common/db" "Open_IM/pkg/common/db/mysql_model/im_mysql_model" "Open_IM/pkg/common/log" - "Open_IM/pkg/utils" "bytes" "encoding/json" "fmt" - "github.com/garyburd/redigo/redis" - "github.com/gin-gonic/gin" "io/ioutil" "net/http" + + "github.com/garyburd/redigo/redis" + "github.com/gin-gonic/gin" + "github.com/spf13/viper" ) type ParamsSetPassword struct { @@ -119,7 +120,7 @@ openIMRegisterTab: } func OpenIMRegister(account string) (*http.Response, error) { - url := fmt.Sprintf("http://%s:10000/auth/user_register", utils.ServerIP) + url := fmt.Sprintf("http://%s:10000/auth/user_register", viper.GetString("endpoints.api")) fmt.Println("1:", config.Config.Secret) client := &http.Client{} diff --git a/internal/msg_gateway/gate/rpc_server.go b/internal/msg_gateway/gate/rpc_server.go index a3ef373d6..dc29c57e2 100644 --- a/internal/msg_gateway/gate/rpc_server.go +++ b/internal/msg_gateway/gate/rpc_server.go @@ -12,10 +12,12 @@ import ( "context" "encoding/gob" "fmt" - "github.com/golang/protobuf/proto" "net" "strings" + "github.com/golang/protobuf/proto" + "github.com/spf13/viper" + "github.com/gorilla/websocket" "google.golang.org/grpc" ) @@ -34,8 +36,7 @@ func (r *RPCServer) onInit(rpcPort int) { r.etcdAddr = config.Config.Etcd.EtcdAddr } func (r *RPCServer) run() { - ip := utils.ServerIP - registerAddress := ip + ":" + utils.IntToString(r.rpcPort) + registerAddress := ":" + utils.IntToString(r.rpcPort) listener, err := net.Listen("tcp", registerAddress) if err != nil { log.ErrorByArgs(fmt.Sprintf("fail to listening consumer, err:%v\n", err)) @@ -45,7 +46,8 @@ func (r *RPCServer) run() { srv := grpc.NewServer() defer srv.GracefulStop() pbRelay.RegisterOnlineMessageRelayServiceServer(srv, r) - err = getcdv3.RegisterEtcd4Unique(r.etcdSchema, strings.Join(r.etcdAddr, ","), ip, r.rpcPort, r.rpcRegisterName, 10) + host := viper.GetString("endpoints.msg_gateway") + err = getcdv3.RegisterEtcd4Unique(r.etcdSchema, strings.Join(r.etcdAddr, ","), host, r.rpcPort, r.rpcRegisterName, 10) if err != nil { log.ErrorByKv("register push message rpc to etcd err", "", "err", err.Error()) } diff --git a/internal/msg_gateway/gate/ws_server.go b/internal/msg_gateway/gate/ws_server.go index 445c9d806..fc6151cf1 100644 --- a/internal/msg_gateway/gate/ws_server.go +++ b/internal/msg_gateway/gate/ws_server.go @@ -9,10 +9,11 @@ import ( "Open_IM/pkg/utils" "bytes" "encoding/gob" - "github.com/gorilla/websocket" "net/http" "sync" "time" + + "github.com/gorilla/websocket" ) type UserConn struct { @@ -28,8 +29,7 @@ type WServer struct { } func (ws *WServer) onInit(wsPort int) { - ip := utils.ServerIP - ws.wsAddr = ip + ":" + utils.IntToString(wsPort) + ws.wsAddr = ":" + utils.IntToString(wsPort) ws.wsMaxConnNum = config.Config.LongConnSvr.WebsocketMaxConnNum ws.wsConnToUser = make(map[*UserConn]string) ws.wsUserToConn = make(map[string]*UserConn) diff --git a/internal/push/logic/push_rpc_server.go b/internal/push/logic/push_rpc_server.go index 570f5c28b..346505a23 100644 --- a/internal/push/logic/push_rpc_server.go +++ b/internal/push/logic/push_rpc_server.go @@ -4,13 +4,15 @@ import ( "Open_IM/pkg/common/config" "Open_IM/pkg/common/log" "Open_IM/pkg/grpc-etcdv3/getcdv3" - "Open_IM/pkg/proto/push" + pbPush "Open_IM/pkg/proto/push" pbRelay "Open_IM/pkg/proto/relay" "Open_IM/pkg/utils" "context" - "google.golang.org/grpc" "net" "strings" + + "github.com/spf13/viper" + "google.golang.org/grpc" ) type RPCServer struct { @@ -27,8 +29,7 @@ func (r *RPCServer) Init(rpcPort int) { r.etcdAddr = config.Config.Etcd.EtcdAddr } func (r *RPCServer) run() { - ip := utils.ServerIP - registerAddress := ip + ":" + utils.IntToString(r.rpcPort) + registerAddress := ":" + utils.IntToString(r.rpcPort) listener, err := net.Listen("tcp", registerAddress) if err != nil { log.ErrorByKv("push module rpc listening port err", "", "err", err.Error()) @@ -38,7 +39,8 @@ func (r *RPCServer) run() { srv := grpc.NewServer() defer srv.GracefulStop() pbPush.RegisterPushMsgServiceServer(srv, r) - err = getcdv3.RegisterEtcd(r.etcdSchema, strings.Join(r.etcdAddr, ","), ip, r.rpcPort, r.rpcRegisterName, 10) + host := viper.GetString("endpoints.push") + err = getcdv3.RegisterEtcd(r.etcdSchema, strings.Join(r.etcdAddr, ","), host, r.rpcPort, r.rpcRegisterName, 10) if err != nil { log.ErrorByKv("register push module rpc to etcd err", "", "err", err.Error()) } diff --git a/internal/rpc/auth/rpcAuth.go b/internal/rpc/auth/rpcAuth.go index 162f04fd5..474b2d7c7 100644 --- a/internal/rpc/auth/rpcAuth.go +++ b/internal/rpc/auth/rpcAuth.go @@ -5,11 +5,12 @@ import ( "Open_IM/pkg/common/log" "Open_IM/pkg/grpc-etcdv3/getcdv3" pbAuth "Open_IM/pkg/proto/auth" - "Open_IM/pkg/utils" - "google.golang.org/grpc" "net" "strconv" "strings" + + "github.com/spf13/viper" + "google.golang.org/grpc" ) type rpcAuth struct { @@ -32,7 +33,7 @@ func NewRpcAuthServer(port int) *rpcAuth { func (rpc *rpcAuth) Run() { log.Info("", "", "rpc get_token init...") - address := utils.ServerIP + ":" + strconv.Itoa(rpc.rpcPort) + address := ":" + strconv.Itoa(rpc.rpcPort) listener, err := net.Listen("tcp", address) if err != nil { log.Error("", "", "listen network failed, err = %s, address = %s", err.Error(), address) @@ -47,7 +48,8 @@ func (rpc *rpcAuth) Run() { //service registers with etcd pbAuth.RegisterAuthServer(srv, rpc) - err = getcdv3.RegisterEtcd(rpc.etcdSchema, strings.Join(rpc.etcdAddr, ","), utils.ServerIP, rpc.rpcPort, rpc.rpcRegisterName, 10) + host := viper.GetString("endpoints.rpc_auth") + err = getcdv3.RegisterEtcd(rpc.etcdSchema, strings.Join(rpc.etcdAddr, ","), host, rpc.rpcPort, rpc.rpcRegisterName, 10) if err != nil { log.Error("", "", "register rpc get_token to etcd failed, err = %s", err.Error()) return diff --git a/internal/rpc/chat/rpcChat.go b/internal/rpc/chat/rpcChat.go index e3d2460dd..ebd2b7049 100644 --- a/internal/rpc/chat/rpcChat.go +++ b/internal/rpc/chat/rpcChat.go @@ -6,11 +6,12 @@ import ( "Open_IM/pkg/common/log" "Open_IM/pkg/grpc-etcdv3/getcdv3" pbChat "Open_IM/pkg/proto/chat" - "Open_IM/pkg/utils" - "google.golang.org/grpc" "net" "strconv" "strings" + + "github.com/spf13/viper" + "google.golang.org/grpc" ) type rpcChat struct { @@ -36,7 +37,7 @@ func NewRpcChatServer(port int) *rpcChat { func (rpc *rpcChat) Run() { log.Info("", "", "rpc get_token init...") - address := utils.ServerIP + ":" + strconv.Itoa(rpc.rpcPort) + address := ":" + strconv.Itoa(rpc.rpcPort) listener, err := net.Listen("tcp", address) if err != nil { log.Error("", "", "listen network failed, err = %s, address = %s", err.Error(), address) @@ -51,7 +52,8 @@ func (rpc *rpcChat) Run() { //service registers with etcd pbChat.RegisterChatServer(srv, rpc) - err = getcdv3.RegisterEtcd(rpc.etcdSchema, strings.Join(rpc.etcdAddr, ","), utils.ServerIP, rpc.rpcPort, rpc.rpcRegisterName, 10) + host := viper.GetString("endpoints.rpc_msg") + err = getcdv3.RegisterEtcd(rpc.etcdSchema, strings.Join(rpc.etcdAddr, ","), host, rpc.rpcPort, rpc.rpcRegisterName, 10) if err != nil { log.Error("", "", "register rpc get_token to etcd failed, err = %s", err.Error()) return diff --git a/internal/rpc/friend/get_firends_info.go b/internal/rpc/friend/get_firends_info.go index d103889bc..ed32a2430 100644 --- a/internal/rpc/friend/get_firends_info.go +++ b/internal/rpc/friend/get_firends_info.go @@ -8,13 +8,14 @@ import ( "Open_IM/pkg/common/token_verify" "Open_IM/pkg/grpc-etcdv3/getcdv3" pbFriend "Open_IM/pkg/proto/friend" - "Open_IM/pkg/utils" "context" "fmt" - "google.golang.org/grpc" "net" "strconv" "strings" + + "github.com/spf13/viper" + "google.golang.org/grpc" ) type friendServer struct { @@ -37,8 +38,7 @@ func NewFriendServer(port int) *friendServer { func (s *friendServer) Run() { log.Info("", "", fmt.Sprintf("rpc friend init....")) - ip := utils.ServerIP - registerAddress := ip + ":" + strconv.Itoa(s.rpcPort) + registerAddress := ":" + strconv.Itoa(s.rpcPort) //listener network listener, err := net.Listen("tcp", registerAddress) if err != nil { @@ -52,7 +52,8 @@ func (s *friendServer) Run() { defer srv.GracefulStop() //User friend related services register to etcd pbFriend.RegisterFriendServer(srv, s) - err = getcdv3.RegisterEtcd(s.etcdSchema, strings.Join(s.etcdAddr, ","), ip, s.rpcPort, s.rpcRegisterName, 10) + host := viper.GetString("endpoints.rpc_friend") + err = getcdv3.RegisterEtcd(s.etcdSchema, strings.Join(s.etcdAddr, ","), host, s.rpcPort, s.rpcRegisterName, 10) if err != nil { log.ErrorByArgs("register rpc fiend service to etcd failed,err=%s", err.Error()) return diff --git a/internal/rpc/group/create_group.go b/internal/rpc/group/create_group.go index 35e6616ee..1a32096fc 100644 --- a/internal/rpc/group/create_group.go +++ b/internal/rpc/group/create_group.go @@ -14,11 +14,13 @@ import ( pbGroup "Open_IM/pkg/proto/group" "Open_IM/pkg/utils" "context" - "google.golang.org/grpc" "net" "strconv" "strings" "time" + + "github.com/spf13/viper" + "google.golang.org/grpc" ) type groupServer struct { @@ -40,8 +42,7 @@ func NewGroupServer(port int) *groupServer { func (s *groupServer) Run() { log.Info("", "", "rpc group init....") - ip := utils.ServerIP - registerAddress := ip + ":" + strconv.Itoa(s.rpcPort) + registerAddress := ":" + strconv.Itoa(s.rpcPort) //listener network listener, err := net.Listen("tcp", registerAddress) if err != nil { @@ -55,7 +56,8 @@ func (s *groupServer) Run() { defer srv.GracefulStop() //Service registers with etcd pbGroup.RegisterGroupServer(srv, s) - err = getcdv3.RegisterEtcd(s.etcdSchema, strings.Join(s.etcdAddr, ","), ip, s.rpcPort, s.rpcRegisterName, 10) + host := viper.GetString("endpoints.rpc_group") + err = getcdv3.RegisterEtcd(s.etcdSchema, strings.Join(s.etcdAddr, ","), host, s.rpcPort, s.rpcRegisterName, 10) if err != nil { log.ErrorByArgs("get etcd failed,err=%s", err.Error()) return diff --git a/internal/rpc/user/get_user_info.go b/internal/rpc/user/get_user_info.go index 3f9cec00f..bab423e49 100644 --- a/internal/rpc/user/get_user_info.go +++ b/internal/rpc/user/get_user_info.go @@ -6,12 +6,13 @@ import ( "Open_IM/pkg/common/log" "Open_IM/pkg/grpc-etcdv3/getcdv3" pbUser "Open_IM/pkg/proto/user" - "Open_IM/pkg/utils" "context" - "google.golang.org/grpc" "net" "strconv" "strings" + + "github.com/spf13/viper" + "google.golang.org/grpc" ) type userServer struct { @@ -34,8 +35,7 @@ func NewUserServer(port int) *userServer { func (s *userServer) Run() { log.Info("", "", "rpc user init....") - ip := utils.ServerIP - registerAddress := ip + ":" + strconv.Itoa(s.rpcPort) + registerAddress := ":" + strconv.Itoa(s.rpcPort) //listener network listener, err := net.Listen("tcp", registerAddress) if err != nil { @@ -49,7 +49,8 @@ func (s *userServer) Run() { defer srv.GracefulStop() //Service registers with etcd pbUser.RegisterUserServer(srv, s) - err = getcdv3.RegisterEtcd(s.etcdSchema, strings.Join(s.etcdAddr, ","), ip, s.rpcPort, s.rpcRegisterName, 10) + host := viper.GetString("endpoints.rpc_user") + err = getcdv3.RegisterEtcd(s.etcdSchema, strings.Join(s.etcdAddr, ","), host, s.rpcPort, s.rpcRegisterName, 10) if err != nil { log.ErrorByArgs("register rpc token to etcd failed,err=%s", err.Error()) return diff --git a/pkg/common/config/config.go b/pkg/common/config/config.go index f7bb65935..2385cffc4 100644 --- a/pkg/common/config/config.go +++ b/pkg/common/config/config.go @@ -1,10 +1,13 @@ package config import ( - "gopkg.in/yaml.v3" "io/ioutil" + "os" "path/filepath" "runtime" + + "github.com/spf13/viper" + "gopkg.in/yaml.v3" ) var ( @@ -179,7 +182,18 @@ func init() { //bytes, err := ioutil.ReadFile(path + "/config/config.yaml") // if we cd Open-IM-Server/src/utils and run go test // it will panic cannot find config/config.yaml - bytes, err := ioutil.ReadFile(Root + "/config/config.yaml") + + cfgName := os.Getenv("CONFIG_NAME") + if len(cfgName) == 0 { + cfgName = Root + "/config/config.yaml" + } + + viper.SetConfigFile(cfgName) + err := viper.ReadInConfig() + if err != nil { + panic(err.Error()) + } + bytes, err := ioutil.ReadFile(cfgName) if err != nil { panic(err.Error()) } From 7403619cbc74c1bc7891663b2c4e8f282d1c11f6 Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Fri, 17 Dec 2021 11:14:43 +0800 Subject: [PATCH 204/814] err handle --- internal/api/manage/management_chat.go | 7 ++++++- pkg/common/constant/constant.go | 2 -- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/internal/api/manage/management_chat.go b/internal/api/manage/management_chat.go index ba056eba1..a72fb1c02 100644 --- a/internal/api/manage/management_chat.go +++ b/internal/api/manage/management_chat.go @@ -146,7 +146,12 @@ func ManagementSendMsg(c *gin.Context) { log.Info("", "", "api ManagementSendMsg call, api call rpc...") - reply, _ := client.UserSendMsg(context.Background(), pbData) + reply, err := client.UserSendMsg(context.Background(), pbData) + if err != nil { + log.NewError(params.OperationID, "call delete UserSendMsg rpc server failed", err.Error()) + c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": "call UserSendMsg rpc server failed"}) + return + } log.Info("", "", "api ManagementSendMsg call end..., [data: %s] [reply: %s]", pbData.String(), reply.String()) c.JSON(http.StatusOK, gin.H{ diff --git a/pkg/common/constant/constant.go b/pkg/common/constant/constant.go index 9115e6cf5..edcf31364 100644 --- a/pkg/common/constant/constant.go +++ b/pkg/common/constant/constant.go @@ -51,8 +51,6 @@ const ( Revoke = 205 C2CMessageAsRead = 206 - KickOnlineTip = 303 - TransferGroupOwnerTip = 501 CreateGroupTip = 502 GroupApplicationResponseTip = 503 From c8b1e5bafcdab48a4fb08e07afb32c36fb738b0f Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Fri, 17 Dec 2021 12:15:33 +0800 Subject: [PATCH 205/814] pb file --- pkg/proto/user/user.proto | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/pkg/proto/user/user.proto b/pkg/proto/user/user.proto index 2e9c98e39..7d32b0ed3 100644 --- a/pkg/proto/user/user.proto +++ b/pkg/proto/user/user.proto @@ -24,6 +24,21 @@ message GetAllUsersUidResp{ CommonResp commonResp = 1; repeated string uidList = 2; +} +message AccountCheckReq{ + repeated string uidList = 1; + string token = 2; + string operationID = 3; + +} +message AccountCheckResp{ + CommonResp commonResp = 1; + message SingleUserStatus { + string userID = 1; + string accountStatus = 2; + } + repeated SingleUserStatus result = 2; + } message GetUserInfoReq{ repeated string userIDList = 1; From be9467450754154b4cca8c47bfb045f90465d376 Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Fri, 17 Dec 2021 12:52:12 +0800 Subject: [PATCH 206/814] pb file --- pkg/proto/user/user.proto | 1 + 1 file changed, 1 insertion(+) diff --git a/pkg/proto/user/user.proto b/pkg/proto/user/user.proto index 7d32b0ed3..e3c6ddffe 100644 --- a/pkg/proto/user/user.proto +++ b/pkg/proto/user/user.proto @@ -131,4 +131,5 @@ service user { rpc SetReceiveMessageOpt(SetReceiveMessageOptReq)returns(SetReceiveMessageOptResp); rpc GetReceiveMessageOpt(GetReceiveMessageOptReq)returns(GetReceiveMessageOptResp); rpc GetAllConversationMsgOpt(GetAllConversationMsgOptReq)returns(GetAllConversationMsgOptResp); + rpc AccountCheck(AccountCheckReq)returns(AccountCheckResp); } From f933abe48ea9459cd952478310804794669e4884 Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Fri, 17 Dec 2021 14:28:43 +0800 Subject: [PATCH 207/814] add check user is registered --- internal/api/manage/management_user.go | 30 ++ internal/rpc/user/management_user.go | 31 ++ pkg/common/constant/constant.go | 2 + .../mysql_model/im_mysql_model/user_model.go | 28 ++ pkg/proto/user/user.pb.go | 330 ++++++++++++++---- 5 files changed, 350 insertions(+), 71 deletions(-) diff --git a/internal/api/manage/management_user.go b/internal/api/manage/management_user.go index 19b25e8a0..60d0c91cc 100644 --- a/internal/api/manage/management_user.go +++ b/internal/api/manage/management_user.go @@ -32,6 +32,10 @@ type paramsGetUsersOnlineStatus struct { OperationID string `json:"operationID" binding:"required"` UserIDList []string `json:"userIDList" binding:"required,lte=200"` } +type paramsAccountCheck struct { + OperationID string `json:"operationID" binding:"required"` + UserIDList []string `json:"userIDList" binding:"required,lte=100"` +} func DeleteUser(c *gin.Context) { params := paramsDeleteUsers{} @@ -87,6 +91,32 @@ func GetAllUsersUid(c *gin.Context) { resp := gin.H{"errCode": RpcResp.CommonResp.ErrorCode, "errMsg": RpcResp.CommonResp.ErrorMsg, "uidList": RpcResp.UidList} c.JSON(http.StatusOK, resp) +} +func AccountCheck(c *gin.Context) { + params := paramsAccountCheck{} + if err := c.BindJSON(¶ms); err != nil { + c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": err.Error()}) + return + } + log.InfoByKv("AccountCheck req come here", params.OperationID, params.UserIDList) + etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImUserName) + client := pbUser.NewUserClient(etcdConn) + //defer etcdConn.Close() + + req := &pbUser.AccountCheckReq{ + OperationID: params.OperationID, + Token: c.Request.Header.Get("token"), + UidList: params.UserIDList, + } + RpcResp, err := client.AccountCheck(context.Background(), req) + if err != nil { + c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": err.Error()}) + return + } + log.InfoByKv("call AccountCheck rpc server is success", params.OperationID, "resp args", RpcResp.String()) + resp := gin.H{"errCode": RpcResp.CommonResp.ErrorCode, "errMsg": RpcResp.CommonResp.ErrorMsg, "Result": RpcResp.Result} + c.JSON(http.StatusOK, resp) + } func GetUsersOnlineStatus(c *gin.Context) { params := paramsGetUsersOnlineStatus{} diff --git a/internal/rpc/user/management_user.go b/internal/rpc/user/management_user.go index 51984b6dc..4c797d9b4 100644 --- a/internal/rpc/user/management_user.go +++ b/internal/rpc/user/management_user.go @@ -63,3 +63,34 @@ func (s *userServer) GetAllUsersUid(_ context.Context, req *pbUser.GetAllUsersUi } } +func (s *userServer) AccountCheck(_ context.Context, req *pbUser.AccountCheckReq) (*pbUser.AccountCheckResp, error) { + log.InfoByKv("rpc AccountCheck arrived server", req.OperationID, "args", req.String()) + c, err := token_verify.ParseToken(req.Token) + if err != nil { + log.InfoByKv("parse token failed", req.OperationID, "err", err.Error()) + return &pbUser.AccountCheckResp{CommonResp: &pbUser.CommonResp{ErrorCode: constant.ErrParseToken.ErrCode, ErrorMsg: err.Error()}}, nil + } + if !utils.IsContain(c.UID, config.Config.Manager.AppManagerUid) { + log.ErrorByKv(" Authentication failed", req.OperationID, "args", c) + return &pbUser.AccountCheckResp{CommonResp: &pbUser.CommonResp{ErrorCode: 401, ErrorMsg: "not authorized"}}, nil + } + uidList, err := im_mysql_model.SelectSomeUID(req.UidList) + if err != nil { + log.ErrorByKv("db get SelectSomeUID failed", req.OperationID, "err", err.Error()) + return &pbUser.AccountCheckResp{CommonResp: &pbUser.CommonResp{ErrorCode: constant.ErrMysql.ErrCode, ErrorMsg: err.Error()}}, nil + } else { + var r []*pbUser.AccountCheckResp_SingleUserStatus + for _, v := range req.UidList { + temp := new(pbUser.AccountCheckResp_SingleUserStatus) + temp.UserID = v + if utils.IsContain(v, uidList) { + temp.AccountStatus = constant.Registered + } else { + temp.AccountStatus = constant.UnRegistered + } + r = append(r, temp) + } + return &pbUser.AccountCheckResp{CommonResp: &pbUser.CommonResp{ErrorCode: 0, ErrorMsg: ""}, Result: r}, nil + } + +} diff --git a/pkg/common/constant/constant.go b/pkg/common/constant/constant.go index edcf31364..c00b98c7d 100644 --- a/pkg/common/constant/constant.go +++ b/pkg/common/constant/constant.go @@ -87,6 +87,8 @@ const ( OnlineStatus = "online" OfflineStatus = "offline" + Registered = "registered" + UnRegistered = "unregistered" //MsgReceiveOpt ReceiveMessage = 0 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 cbf87f7fe..be4e60069 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 @@ -133,6 +133,25 @@ func SelectAllUID() ([]string, error) { } return uid, nil } +func SelectSomeUID(uids []string) ([]string, error) { + var uid []string + + dbConn, err := db.DB.MysqlDB.DefaultGormDB() + if err != nil { + return uid, err + } + rows, err := dbConn.Raw("select uid from user where uid in (" + sqlStringHandle(uids) + ")").Rows() + if err != nil { + return uid, err + } + defer rows.Close() + var strUID string + for rows.Next() { + rows.Scan(&strUID) + uid = append(uid, strUID) + } + return uid, nil +} func IsExistUser(uid string) bool { dbConn, err := db.DB.MysqlDB.DefaultGormDB() @@ -149,3 +168,12 @@ func IsExistUser(uid string) bool { } return true } +func sqlStringHandle(ss []string) (s string) { + for i := 0; i < len(ss); i++ { + s += "'" + ss[i] + "'" + if i < len(ss)-1 { + s += "," + } + } + return s +} diff --git a/pkg/proto/user/user.pb.go b/pkg/proto/user/user.pb.go index af16cf75a..7a6744c06 100644 --- a/pkg/proto/user/user.pb.go +++ b/pkg/proto/user/user.pb.go @@ -35,7 +35,7 @@ func (m *CommonResp) Reset() { *m = CommonResp{} } func (m *CommonResp) String() string { return proto.CompactTextString(m) } func (*CommonResp) ProtoMessage() {} func (*CommonResp) Descriptor() ([]byte, []int) { - return fileDescriptor_user_2aac409c3ed42d0b, []int{0} + return fileDescriptor_user_04b52567a288fdb7, []int{0} } func (m *CommonResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_CommonResp.Unmarshal(m, b) @@ -81,7 +81,7 @@ func (m *DeleteUsersResp) Reset() { *m = DeleteUsersResp{} } func (m *DeleteUsersResp) String() string { return proto.CompactTextString(m) } func (*DeleteUsersResp) ProtoMessage() {} func (*DeleteUsersResp) Descriptor() ([]byte, []int) { - return fileDescriptor_user_2aac409c3ed42d0b, []int{1} + return fileDescriptor_user_04b52567a288fdb7, []int{1} } func (m *DeleteUsersResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_DeleteUsersResp.Unmarshal(m, b) @@ -128,7 +128,7 @@ func (m *DeleteUsersReq) Reset() { *m = DeleteUsersReq{} } func (m *DeleteUsersReq) String() string { return proto.CompactTextString(m) } func (*DeleteUsersReq) ProtoMessage() {} func (*DeleteUsersReq) Descriptor() ([]byte, []int) { - return fileDescriptor_user_2aac409c3ed42d0b, []int{2} + return fileDescriptor_user_04b52567a288fdb7, []int{2} } func (m *DeleteUsersReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_DeleteUsersReq.Unmarshal(m, b) @@ -181,7 +181,7 @@ func (m *GetAllUsersUidReq) Reset() { *m = GetAllUsersUidReq{} } func (m *GetAllUsersUidReq) String() string { return proto.CompactTextString(m) } func (*GetAllUsersUidReq) ProtoMessage() {} func (*GetAllUsersUidReq) Descriptor() ([]byte, []int) { - return fileDescriptor_user_2aac409c3ed42d0b, []int{3} + return fileDescriptor_user_04b52567a288fdb7, []int{3} } func (m *GetAllUsersUidReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetAllUsersUidReq.Unmarshal(m, b) @@ -227,7 +227,7 @@ func (m *GetAllUsersUidResp) Reset() { *m = GetAllUsersUidResp{} } func (m *GetAllUsersUidResp) String() string { return proto.CompactTextString(m) } func (*GetAllUsersUidResp) ProtoMessage() {} func (*GetAllUsersUidResp) Descriptor() ([]byte, []int) { - return fileDescriptor_user_2aac409c3ed42d0b, []int{4} + return fileDescriptor_user_04b52567a288fdb7, []int{4} } func (m *GetAllUsersUidResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetAllUsersUidResp.Unmarshal(m, b) @@ -261,6 +261,152 @@ func (m *GetAllUsersUidResp) GetUidList() []string { return nil } +type AccountCheckReq struct { + UidList []string `protobuf:"bytes,1,rep,name=uidList" json:"uidList,omitempty"` + Token string `protobuf:"bytes,2,opt,name=token" json:"token,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 *AccountCheckReq) Reset() { *m = AccountCheckReq{} } +func (m *AccountCheckReq) String() string { return proto.CompactTextString(m) } +func (*AccountCheckReq) ProtoMessage() {} +func (*AccountCheckReq) Descriptor() ([]byte, []int) { + return fileDescriptor_user_04b52567a288fdb7, []int{5} +} +func (m *AccountCheckReq) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_AccountCheckReq.Unmarshal(m, b) +} +func (m *AccountCheckReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_AccountCheckReq.Marshal(b, m, deterministic) +} +func (dst *AccountCheckReq) XXX_Merge(src proto.Message) { + xxx_messageInfo_AccountCheckReq.Merge(dst, src) +} +func (m *AccountCheckReq) XXX_Size() int { + return xxx_messageInfo_AccountCheckReq.Size(m) +} +func (m *AccountCheckReq) XXX_DiscardUnknown() { + xxx_messageInfo_AccountCheckReq.DiscardUnknown(m) +} + +var xxx_messageInfo_AccountCheckReq proto.InternalMessageInfo + +func (m *AccountCheckReq) GetUidList() []string { + if m != nil { + return m.UidList + } + return nil +} + +func (m *AccountCheckReq) GetToken() string { + if m != nil { + return m.Token + } + return "" +} + +func (m *AccountCheckReq) GetOperationID() string { + if m != nil { + return m.OperationID + } + return "" +} + +type AccountCheckResp struct { + CommonResp *CommonResp `protobuf:"bytes,1,opt,name=commonResp" json:"commonResp,omitempty"` + Result []*AccountCheckResp_SingleUserStatus `protobuf:"bytes,2,rep,name=result" json:"result,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *AccountCheckResp) Reset() { *m = AccountCheckResp{} } +func (m *AccountCheckResp) String() string { return proto.CompactTextString(m) } +func (*AccountCheckResp) ProtoMessage() {} +func (*AccountCheckResp) Descriptor() ([]byte, []int) { + return fileDescriptor_user_04b52567a288fdb7, []int{6} +} +func (m *AccountCheckResp) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_AccountCheckResp.Unmarshal(m, b) +} +func (m *AccountCheckResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_AccountCheckResp.Marshal(b, m, deterministic) +} +func (dst *AccountCheckResp) XXX_Merge(src proto.Message) { + xxx_messageInfo_AccountCheckResp.Merge(dst, src) +} +func (m *AccountCheckResp) XXX_Size() int { + return xxx_messageInfo_AccountCheckResp.Size(m) +} +func (m *AccountCheckResp) XXX_DiscardUnknown() { + xxx_messageInfo_AccountCheckResp.DiscardUnknown(m) +} + +var xxx_messageInfo_AccountCheckResp proto.InternalMessageInfo + +func (m *AccountCheckResp) GetCommonResp() *CommonResp { + if m != nil { + return m.CommonResp + } + return nil +} + +func (m *AccountCheckResp) GetResult() []*AccountCheckResp_SingleUserStatus { + if m != nil { + return m.Result + } + return nil +} + +type AccountCheckResp_SingleUserStatus struct { + UserID string `protobuf:"bytes,1,opt,name=userID" json:"userID,omitempty"` + AccountStatus string `protobuf:"bytes,2,opt,name=accountStatus" json:"accountStatus,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *AccountCheckResp_SingleUserStatus) Reset() { *m = AccountCheckResp_SingleUserStatus{} } +func (m *AccountCheckResp_SingleUserStatus) String() string { return proto.CompactTextString(m) } +func (*AccountCheckResp_SingleUserStatus) ProtoMessage() {} +func (*AccountCheckResp_SingleUserStatus) Descriptor() ([]byte, []int) { + return fileDescriptor_user_04b52567a288fdb7, []int{6, 0} +} +func (m *AccountCheckResp_SingleUserStatus) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_AccountCheckResp_SingleUserStatus.Unmarshal(m, b) +} +func (m *AccountCheckResp_SingleUserStatus) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_AccountCheckResp_SingleUserStatus.Marshal(b, m, deterministic) +} +func (dst *AccountCheckResp_SingleUserStatus) XXX_Merge(src proto.Message) { + xxx_messageInfo_AccountCheckResp_SingleUserStatus.Merge(dst, src) +} +func (m *AccountCheckResp_SingleUserStatus) XXX_Size() int { + return xxx_messageInfo_AccountCheckResp_SingleUserStatus.Size(m) +} +func (m *AccountCheckResp_SingleUserStatus) XXX_DiscardUnknown() { + xxx_messageInfo_AccountCheckResp_SingleUserStatus.DiscardUnknown(m) +} + +var xxx_messageInfo_AccountCheckResp_SingleUserStatus proto.InternalMessageInfo + +func (m *AccountCheckResp_SingleUserStatus) GetUserID() string { + if m != nil { + return m.UserID + } + return "" +} + +func (m *AccountCheckResp_SingleUserStatus) GetAccountStatus() string { + if m != nil { + return m.AccountStatus + } + return "" +} + type GetUserInfoReq struct { UserIDList []string `protobuf:"bytes,1,rep,name=userIDList" json:"userIDList,omitempty"` Token string `protobuf:"bytes,2,opt,name=token" json:"token,omitempty"` @@ -274,7 +420,7 @@ 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_user_2aac409c3ed42d0b, []int{5} + return fileDescriptor_user_04b52567a288fdb7, []int{7} } func (m *GetUserInfoReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetUserInfoReq.Unmarshal(m, b) @@ -328,7 +474,7 @@ 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_user_2aac409c3ed42d0b, []int{6} + return fileDescriptor_user_04b52567a288fdb7, []int{8} } func (m *GetUserInfoResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetUserInfoResp.Unmarshal(m, b) @@ -387,7 +533,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_user_2aac409c3ed42d0b, []int{7} + return fileDescriptor_user_04b52567a288fdb7, []int{9} } func (m *UserInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_UserInfo.Unmarshal(m, b) @@ -475,7 +621,7 @@ func (m *LogoutReq) Reset() { *m = LogoutReq{} } func (m *LogoutReq) String() string { return proto.CompactTextString(m) } func (*LogoutReq) ProtoMessage() {} func (*LogoutReq) Descriptor() ([]byte, []int) { - return fileDescriptor_user_2aac409c3ed42d0b, []int{8} + return fileDescriptor_user_04b52567a288fdb7, []int{10} } func (m *LogoutReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_LogoutReq.Unmarshal(m, b) @@ -529,7 +675,7 @@ 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_user_2aac409c3ed42d0b, []int{9} + return fileDescriptor_user_04b52567a288fdb7, []int{11} } func (m *UpdateUserInfoReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_UpdateUserInfoReq.Unmarshal(m, b) @@ -633,7 +779,7 @@ func (m *SetReceiveMessageOptReq) Reset() { *m = SetReceiveMessageOptReq func (m *SetReceiveMessageOptReq) String() string { return proto.CompactTextString(m) } func (*SetReceiveMessageOptReq) ProtoMessage() {} func (*SetReceiveMessageOptReq) Descriptor() ([]byte, []int) { - return fileDescriptor_user_2aac409c3ed42d0b, []int{10} + return fileDescriptor_user_04b52567a288fdb7, []int{12} } func (m *SetReceiveMessageOptReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SetReceiveMessageOptReq.Unmarshal(m, b) @@ -694,7 +840,7 @@ func (m *SetReceiveMessageOptResp) Reset() { *m = SetReceiveMessageOptRe func (m *SetReceiveMessageOptResp) String() string { return proto.CompactTextString(m) } func (*SetReceiveMessageOptResp) ProtoMessage() {} func (*SetReceiveMessageOptResp) Descriptor() ([]byte, []int) { - return fileDescriptor_user_2aac409c3ed42d0b, []int{11} + return fileDescriptor_user_04b52567a288fdb7, []int{13} } func (m *SetReceiveMessageOptResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SetReceiveMessageOptResp.Unmarshal(m, b) @@ -748,7 +894,7 @@ func (m *GetReceiveMessageOptReq) Reset() { *m = GetReceiveMessageOptReq func (m *GetReceiveMessageOptReq) String() string { return proto.CompactTextString(m) } func (*GetReceiveMessageOptReq) ProtoMessage() {} func (*GetReceiveMessageOptReq) Descriptor() ([]byte, []int) { - return fileDescriptor_user_2aac409c3ed42d0b, []int{12} + return fileDescriptor_user_04b52567a288fdb7, []int{14} } func (m *GetReceiveMessageOptReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetReceiveMessageOptReq.Unmarshal(m, b) @@ -801,7 +947,7 @@ func (m *OptResult) Reset() { *m = OptResult{} } func (m *OptResult) String() string { return proto.CompactTextString(m) } func (*OptResult) ProtoMessage() {} func (*OptResult) Descriptor() ([]byte, []int) { - return fileDescriptor_user_2aac409c3ed42d0b, []int{13} + return fileDescriptor_user_04b52567a288fdb7, []int{15} } func (m *OptResult) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_OptResult.Unmarshal(m, b) @@ -848,7 +994,7 @@ func (m *GetReceiveMessageOptResp) Reset() { *m = GetReceiveMessageOptRe func (m *GetReceiveMessageOptResp) String() string { return proto.CompactTextString(m) } func (*GetReceiveMessageOptResp) ProtoMessage() {} func (*GetReceiveMessageOptResp) Descriptor() ([]byte, []int) { - return fileDescriptor_user_2aac409c3ed42d0b, []int{14} + return fileDescriptor_user_04b52567a288fdb7, []int{16} } func (m *GetReceiveMessageOptResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetReceiveMessageOptResp.Unmarshal(m, b) @@ -901,7 +1047,7 @@ func (m *GetAllConversationMsgOptReq) Reset() { *m = GetAllConversationM func (m *GetAllConversationMsgOptReq) String() string { return proto.CompactTextString(m) } func (*GetAllConversationMsgOptReq) ProtoMessage() {} func (*GetAllConversationMsgOptReq) Descriptor() ([]byte, []int) { - return fileDescriptor_user_2aac409c3ed42d0b, []int{15} + return fileDescriptor_user_04b52567a288fdb7, []int{17} } func (m *GetAllConversationMsgOptReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetAllConversationMsgOptReq.Unmarshal(m, b) @@ -948,7 +1094,7 @@ func (m *GetAllConversationMsgOptResp) Reset() { *m = GetAllConversation func (m *GetAllConversationMsgOptResp) String() string { return proto.CompactTextString(m) } func (*GetAllConversationMsgOptResp) ProtoMessage() {} func (*GetAllConversationMsgOptResp) Descriptor() ([]byte, []int) { - return fileDescriptor_user_2aac409c3ed42d0b, []int{16} + return fileDescriptor_user_04b52567a288fdb7, []int{18} } func (m *GetAllConversationMsgOptResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetAllConversationMsgOptResp.Unmarshal(m, b) @@ -995,6 +1141,9 @@ func init() { proto.RegisterType((*DeleteUsersReq)(nil), "user.DeleteUsersReq") proto.RegisterType((*GetAllUsersUidReq)(nil), "user.GetAllUsersUidReq") proto.RegisterType((*GetAllUsersUidResp)(nil), "user.GetAllUsersUidResp") + proto.RegisterType((*AccountCheckReq)(nil), "user.AccountCheckReq") + proto.RegisterType((*AccountCheckResp)(nil), "user.AccountCheckResp") + proto.RegisterType((*AccountCheckResp_SingleUserStatus)(nil), "user.AccountCheckResp.SingleUserStatus") proto.RegisterType((*GetUserInfoReq)(nil), "user.GetUserInfoReq") proto.RegisterType((*GetUserInfoResp)(nil), "user.GetUserInfoResp") proto.RegisterType((*UserInfo)(nil), "user.UserInfo") @@ -1027,6 +1176,7 @@ type UserClient interface { SetReceiveMessageOpt(ctx context.Context, in *SetReceiveMessageOptReq, opts ...grpc.CallOption) (*SetReceiveMessageOptResp, error) GetReceiveMessageOpt(ctx context.Context, in *GetReceiveMessageOptReq, opts ...grpc.CallOption) (*GetReceiveMessageOptResp, error) GetAllConversationMsgOpt(ctx context.Context, in *GetAllConversationMsgOptReq, opts ...grpc.CallOption) (*GetAllConversationMsgOptResp, error) + AccountCheck(ctx context.Context, in *AccountCheckReq, opts ...grpc.CallOption) (*AccountCheckResp, error) } type userClient struct { @@ -1100,6 +1250,15 @@ func (c *userClient) GetAllConversationMsgOpt(ctx context.Context, in *GetAllCon return out, nil } +func (c *userClient) AccountCheck(ctx context.Context, in *AccountCheckReq, opts ...grpc.CallOption) (*AccountCheckResp, error) { + out := new(AccountCheckResp) + err := grpc.Invoke(ctx, "/user.user/AccountCheck", in, out, c.cc, opts...) + if err != nil { + return nil, err + } + return out, nil +} + // Server API for User service type UserServer interface { @@ -1110,6 +1269,7 @@ type UserServer interface { SetReceiveMessageOpt(context.Context, *SetReceiveMessageOptReq) (*SetReceiveMessageOptResp, error) GetReceiveMessageOpt(context.Context, *GetReceiveMessageOptReq) (*GetReceiveMessageOptResp, error) GetAllConversationMsgOpt(context.Context, *GetAllConversationMsgOptReq) (*GetAllConversationMsgOptResp, error) + AccountCheck(context.Context, *AccountCheckReq) (*AccountCheckResp, error) } func RegisterUserServer(s *grpc.Server, srv UserServer) { @@ -1242,6 +1402,24 @@ func _User_GetAllConversationMsgOpt_Handler(srv interface{}, ctx context.Context return interceptor(ctx, in, info, handler) } +func _User_AccountCheck_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(AccountCheckReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(UserServer).AccountCheck(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/user.user/AccountCheck", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(UserServer).AccountCheck(ctx, req.(*AccountCheckReq)) + } + return interceptor(ctx, in, info, handler) +} + var _User_serviceDesc = grpc.ServiceDesc{ ServiceName: "user.user", HandlerType: (*UserServer)(nil), @@ -1274,63 +1452,73 @@ var _User_serviceDesc = grpc.ServiceDesc{ MethodName: "GetAllConversationMsgOpt", Handler: _User_GetAllConversationMsgOpt_Handler, }, + { + MethodName: "AccountCheck", + Handler: _User_AccountCheck_Handler, + }, }, Streams: []grpc.StreamDesc{}, Metadata: "user/user.proto", } -func init() { proto.RegisterFile("user/user.proto", fileDescriptor_user_2aac409c3ed42d0b) } - -var fileDescriptor_user_2aac409c3ed42d0b = []byte{ - // 796 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x56, 0xcb, 0x6e, 0xdb, 0x3a, - 0x10, 0x85, 0xfc, 0x8a, 0x35, 0x46, 0xec, 0x84, 0xc8, 0x83, 0xf0, 0xcd, 0x0d, 0x7c, 0x89, 0x8b, - 0xc2, 0x9b, 0xa6, 0x45, 0xba, 0x6b, 0x56, 0xad, 0xdd, 0x1a, 0x46, 0x12, 0x18, 0x55, 0xe1, 0x4d, - 0x57, 0x55, 0xac, 0x89, 0x23, 0xd4, 0x16, 0x55, 0x49, 0x0e, 0x02, 0xf4, 0x03, 0xba, 0x2e, 0xba, - 0xe8, 0x6f, 0xf4, 0xd7, 0xfa, 0x07, 0x05, 0x49, 0xcb, 0xa2, 0x1e, 0x76, 0x82, 0xb6, 0x40, 0x37, - 0x02, 0xe7, 0x90, 0x3c, 0xc3, 0x33, 0x33, 0xe4, 0x08, 0x5a, 0x8b, 0x10, 0x83, 0x27, 0xe2, 0x73, - 0xe2, 0x07, 0x3c, 0xe2, 0xa4, 0x22, 0xc6, 0xec, 0x35, 0x40, 0x8f, 0xcf, 0xe7, 0xdc, 0xb3, 0x30, - 0xf4, 0xc9, 0x11, 0x98, 0x18, 0x04, 0x3c, 0xe8, 0x71, 0x07, 0xa9, 0xd1, 0x31, 0xba, 0x55, 0x2b, - 0x01, 0x48, 0x1b, 0xea, 0xd2, 0xb8, 0x0c, 0xa7, 0xb4, 0xd4, 0x31, 0xba, 0xa6, 0xb5, 0xb2, 0x99, - 0x0b, 0xad, 0x3e, 0xce, 0x30, 0xc2, 0x71, 0x88, 0x41, 0x28, 0xc9, 0x9e, 0x02, 0x4c, 0x56, 0xd4, - 0x92, 0xad, 0x71, 0xba, 0x73, 0x22, 0x4f, 0x90, 0xb8, 0xb4, 0xb4, 0x35, 0xe4, 0x7f, 0xd8, 0xbe, - 0xb6, 0xdd, 0x19, 0x3a, 0x63, 0xd7, 0xb9, 0x70, 0xc3, 0x88, 0x96, 0x3a, 0xe5, 0xae, 0x69, 0xa5, - 0x41, 0xe6, 0x41, 0x33, 0xe5, 0xea, 0xa3, 0xd8, 0xe7, 0x28, 0x24, 0xbd, 0x2f, 0x05, 0x92, 0x3d, - 0xa8, 0x46, 0xfc, 0x03, 0x7a, 0xb4, 0x2c, 0xcf, 0xae, 0x0c, 0xd2, 0x81, 0xc6, 0xc8, 0xc7, 0xc0, - 0x8e, 0x5c, 0xee, 0x0d, 0xfb, 0xb4, 0x22, 0xe7, 0x74, 0x88, 0x9d, 0xc3, 0xee, 0x00, 0xa3, 0x17, - 0xb3, 0x99, 0xf4, 0x37, 0x76, 0x1d, 0xe1, 0x72, 0x45, 0x56, 0xca, 0x90, 0x71, 0x8d, 0x4c, 0x39, - 0xd2, 0x21, 0xf6, 0x1e, 0x48, 0x96, 0xec, 0x97, 0x42, 0x45, 0x61, 0x6b, 0x91, 0x12, 0x1b, 0x9b, - 0xec, 0x06, 0x9a, 0x03, 0x8c, 0x04, 0xfd, 0xd0, 0xbb, 0xe6, 0xe2, 0xac, 0xc7, 0x00, 0x82, 0x6a, - 0xd8, 0x97, 0xcb, 0x0d, 0xb9, 0x5c, 0x43, 0xd6, 0x6b, 0x19, 0xe5, 0xb5, 0xe8, 0x81, 0xe1, 0xd0, - 0x4a, 0x79, 0xfa, 0x9d, 0x02, 0x22, 0x0c, 0x2a, 0x7d, 0x3b, 0xb2, 0x69, 0xb9, 0x53, 0xee, 0x36, - 0x4e, 0x9b, 0x4a, 0xfc, 0x8a, 0x5b, 0xce, 0xb1, 0xef, 0x06, 0xd4, 0x63, 0x88, 0xec, 0x40, 0x79, - 0xe1, 0x3a, 0xd2, 0x89, 0x69, 0x89, 0x21, 0x21, 0x50, 0xf1, 0xec, 0x39, 0x2e, 0xa9, 0xe5, 0x58, - 0x60, 0xee, 0x84, 0xc7, 0x39, 0x97, 0x63, 0x72, 0x00, 0xb5, 0x29, 0x7a, 0x0e, 0x06, 0x32, 0xdb, - 0x55, 0x6b, 0x69, 0x09, 0x7c, 0xce, 0xaf, 0xdc, 0x19, 0xd2, 0xaa, 0x5c, 0xbd, 0xb4, 0x44, 0x7c, - 0xae, 0xdc, 0x20, 0xba, 0xa1, 0x35, 0x15, 0x1f, 0x69, 0x08, 0x14, 0xe7, 0xb6, 0x3b, 0xa3, 0x5b, - 0x0a, 0x95, 0x06, 0x69, 0x42, 0x09, 0xef, 0x68, 0x5d, 0x42, 0x25, 0xbc, 0x63, 0x3d, 0x30, 0x2f, - 0xf8, 0x94, 0x2f, 0x22, 0x91, 0x88, 0x4c, 0x48, 0x8d, 0x5c, 0x48, 0x8b, 0x53, 0xc1, 0x7e, 0x18, - 0xb0, 0x3b, 0xf6, 0x1d, 0x5b, 0x95, 0x7c, 0x9c, 0xd6, 0x58, 0x9a, 0xa1, 0x49, 0x2b, 0x0a, 0x41, - 0x22, 0xb7, 0xbc, 0x46, 0x6e, 0xa5, 0x58, 0x6e, 0xb5, 0x50, 0x6e, 0x2d, 0x2f, 0x77, 0x2b, 0x96, - 0x9b, 0x9c, 0xbf, 0xbe, 0xa1, 0x94, 0xcc, 0xbc, 0xee, 0x1d, 0x28, 0x8f, 0x5d, 0x87, 0x82, 0x4a, - 0xe6, 0xd8, 0x75, 0xd8, 0x67, 0x03, 0x0e, 0xdf, 0x62, 0x64, 0xe1, 0x04, 0xdd, 0x5b, 0xbc, 0xc4, - 0x30, 0xb4, 0xa7, 0x38, 0xf2, 0x65, 0x1c, 0x45, 0xea, 0x87, 0x49, 0xea, 0x87, 0x8e, 0x40, 0xb8, - 0x1f, 0x49, 0xd9, 0x55, 0x4b, 0x0c, 0xc9, 0x23, 0x68, 0x4e, 0xb8, 0x77, 0x8b, 0x41, 0xa8, 0x7c, - 0x38, 0xb2, 0xb2, 0x4c, 0x2b, 0x83, 0x66, 0xaf, 0x6c, 0x25, 0x7f, 0x65, 0x3f, 0x01, 0x2d, 0x3e, - 0x88, 0xba, 0x86, 0x18, 0xe8, 0xd5, 0x1e, 0x9b, 0x22, 0xba, 0x18, 0x68, 0x95, 0xbe, 0xb4, 0xc8, - 0x63, 0x30, 0xb9, 0xdc, 0xbc, 0x98, 0x45, 0xcb, 0x62, 0x6f, 0xa9, 0x62, 0x1f, 0xc5, 0xb0, 0x95, - 0xac, 0x60, 0x0b, 0x38, 0x1c, 0x3c, 0x38, 0x0a, 0x79, 0xcd, 0xa5, 0x87, 0x68, 0x2e, 0x78, 0xa6, - 0xce, 0xc1, 0x5c, 0x1d, 0xa7, 0x80, 0x56, 0xf9, 0xcc, 0xd2, 0x1e, 0x40, 0x2d, 0x50, 0xba, 0x54, - 0x1e, 0x96, 0x16, 0xfb, 0x6a, 0x00, 0x1d, 0xfc, 0xb9, 0x08, 0xbe, 0x82, 0x7d, 0xdd, 0xf1, 0xe8, - 0xbe, 0x68, 0x16, 0xaf, 0x66, 0x6f, 0xe0, 0x1f, 0xf5, 0x12, 0xf7, 0xb4, 0xe9, 0xcb, 0x70, 0xba, - 0x36, 0xba, 0x99, 0xa8, 0x95, 0xf2, 0x51, 0xfb, 0x66, 0xc0, 0xd1, 0x7a, 0xce, 0xbf, 0x28, 0xf6, - 0xf4, 0x4b, 0x05, 0x64, 0xbf, 0x27, 0xcf, 0xa1, 0x31, 0x4d, 0xde, 0x6c, 0xb2, 0xa7, 0xf6, 0xa7, - 0x1b, 0x46, 0x7b, 0xbf, 0x00, 0x0d, 0x7d, 0x72, 0x06, 0xcd, 0xf4, 0x2b, 0x44, 0x0e, 0x97, 0xcf, - 0x74, 0xf6, 0x6d, 0x6a, 0xe7, 0x9a, 0x97, 0x70, 0xac, 0x75, 0xed, 0xd8, 0x71, 0xba, 0x91, 0xc7, - 0x8e, 0xb3, 0x7f, 0x12, 0x3d, 0xd9, 0xd2, 0xb4, 0xa6, 0x19, 0x3b, 0xce, 0xf5, 0xe5, 0x36, 0x2d, - 0x9e, 0x08, 0x7d, 0x32, 0x86, 0xbd, 0xa2, 0x6b, 0x4c, 0xfe, 0x55, 0x3b, 0xd6, 0xbc, 0x35, 0xed, - 0xe3, 0x4d, 0xd3, 0x8a, 0x76, 0xb0, 0x81, 0x76, 0xb0, 0x99, 0x76, 0xed, 0xb5, 0xb0, 0xe5, 0x95, - 0x29, 0xac, 0x24, 0xf2, 0x9f, 0xae, 0xb1, 0xb0, 0x7a, 0xdb, 0xec, 0xbe, 0x25, 0xa1, 0xff, 0x72, - 0xfb, 0x5d, 0xe3, 0x44, 0xfe, 0x10, 0x9e, 0x89, 0xcf, 0x55, 0x4d, 0xfe, 0x16, 0x3e, 0xfb, 0x19, - 0x00, 0x00, 0xff, 0xff, 0xac, 0xcf, 0xd3, 0x1b, 0x29, 0x0a, 0x00, 0x00, +func init() { proto.RegisterFile("user/user.proto", fileDescriptor_user_04b52567a288fdb7) } + +var fileDescriptor_user_04b52567a288fdb7 = []byte{ + // 896 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x56, 0xdd, 0x6e, 0xdb, 0x36, + 0x14, 0x86, 0xfc, 0x17, 0xeb, 0x78, 0xb1, 0x1d, 0x22, 0x3f, 0x82, 0x96, 0x05, 0x1e, 0x31, 0x6c, + 0xb9, 0x99, 0x37, 0x64, 0x77, 0x0b, 0x86, 0x21, 0xb5, 0x5b, 0xc3, 0x48, 0x02, 0xb7, 0x0a, 0x7c, + 0xd3, 0xab, 0x2a, 0x12, 0xe3, 0x08, 0x91, 0x45, 0x45, 0x3f, 0x41, 0x80, 0x3e, 0x40, 0x1f, 0xa0, + 0x17, 0x7d, 0x8d, 0x3e, 0x4a, 0xef, 0xfa, 0x1c, 0x7d, 0x83, 0x82, 0xa4, 0x64, 0x53, 0x3f, 0x76, + 0x82, 0xb4, 0x40, 0x6f, 0x04, 0x9e, 0x43, 0xf2, 0x3b, 0xfc, 0x3e, 0x1e, 0x1e, 0x1d, 0xe8, 0xc4, + 0x21, 0x09, 0xfe, 0x62, 0x9f, 0xbe, 0x1f, 0xd0, 0x88, 0xa2, 0x1a, 0x1b, 0xe3, 0x17, 0x00, 0x03, + 0x3a, 0x9f, 0x53, 0xcf, 0x20, 0xa1, 0x8f, 0xf6, 0x41, 0x25, 0x41, 0x40, 0x83, 0x01, 0xb5, 0x89, + 0xa6, 0xf4, 0x94, 0xc3, 0xba, 0xb1, 0x74, 0x20, 0x1d, 0x9a, 0xdc, 0x38, 0x0f, 0x67, 0x5a, 0xa5, + 0xa7, 0x1c, 0xaa, 0xc6, 0xc2, 0xc6, 0x0e, 0x74, 0x86, 0xc4, 0x25, 0x11, 0x99, 0x86, 0x24, 0x08, + 0x39, 0xd8, 0xdf, 0x00, 0xd6, 0x02, 0x9a, 0xa3, 0xb5, 0x8e, 0xba, 0x7d, 0x7e, 0x82, 0x65, 0x48, + 0x43, 0x5a, 0x83, 0x7e, 0x83, 0xcd, 0x2b, 0xd3, 0x71, 0x89, 0x3d, 0x75, 0xec, 0x33, 0x27, 0x8c, + 0xb4, 0x4a, 0xaf, 0x7a, 0xa8, 0x1a, 0x59, 0x27, 0xf6, 0xa0, 0x9d, 0x09, 0x75, 0xcb, 0xf6, 0xd9, + 0xc2, 0x93, 0xdd, 0x97, 0x71, 0xa2, 0x6d, 0xa8, 0x47, 0xf4, 0x86, 0x78, 0x5a, 0x95, 0x9f, 0x5d, + 0x18, 0xa8, 0x07, 0xad, 0x89, 0x4f, 0x02, 0x33, 0x72, 0xa8, 0x37, 0x1e, 0x6a, 0x35, 0x3e, 0x27, + 0xbb, 0xf0, 0x29, 0x6c, 0x8d, 0x48, 0x74, 0xe2, 0xba, 0x3c, 0xde, 0xd4, 0xb1, 0x59, 0xc8, 0x05, + 0x58, 0x25, 0x07, 0x46, 0x25, 0x30, 0x11, 0x48, 0x76, 0xe1, 0x37, 0x80, 0xf2, 0x60, 0x4f, 0x92, + 0x4a, 0x83, 0x8d, 0x38, 0x43, 0x36, 0x35, 0xb1, 0x05, 0x9d, 0x13, 0xcb, 0xa2, 0xb1, 0x17, 0x0d, + 0xae, 0x89, 0x75, 0xc3, 0x0e, 0x2b, 0x2d, 0x56, 0x32, 0x8b, 0x9f, 0x4c, 0xe3, 0xb3, 0x02, 0xdd, + 0x6c, 0x94, 0x27, 0xb1, 0xf8, 0x1f, 0x1a, 0x01, 0x09, 0x63, 0x57, 0x90, 0x68, 0x1d, 0xfd, 0x21, + 0x56, 0xe7, 0x91, 0xfb, 0x17, 0x8e, 0x37, 0x73, 0xf9, 0x7d, 0x5f, 0x44, 0x66, 0x14, 0x87, 0x46, + 0xb2, 0x4d, 0x7f, 0x09, 0xdd, 0xfc, 0x1c, 0xda, 0x85, 0x06, 0x43, 0x19, 0x0f, 0xf9, 0x11, 0x54, + 0x23, 0xb1, 0x58, 0x96, 0x98, 0x02, 0x58, 0x2c, 0x4c, 0x38, 0x67, 0x9d, 0xf8, 0x1a, 0xda, 0x23, + 0x12, 0x31, 0xb8, 0xb1, 0x77, 0x45, 0x99, 0x7a, 0x07, 0x00, 0x02, 0x41, 0x12, 0x50, 0xf2, 0xac, + 0xd6, 0x70, 0x52, 0xd4, 0x50, 0xce, 0x2b, 0x0a, 0x9d, 0x4c, 0xa4, 0x6f, 0x79, 0x7f, 0x08, 0x43, + 0x6d, 0x68, 0x46, 0xa6, 0x56, 0xe5, 0x3a, 0xb6, 0x85, 0x8e, 0x0b, 0x6c, 0x3e, 0x87, 0x3f, 0x2a, + 0xd0, 0x4c, 0x5d, 0xa8, 0x0b, 0xd5, 0xd8, 0xb1, 0x13, 0x89, 0xd8, 0x10, 0x21, 0xa8, 0x79, 0xe6, + 0x9c, 0x24, 0xd0, 0x7c, 0xcc, 0x7c, 0x8e, 0x45, 0xd3, 0x27, 0xc3, 0xc7, 0x4c, 0xdf, 0x19, 0xf1, + 0x6c, 0x12, 0xf0, 0xc7, 0x52, 0x37, 0x12, 0x8b, 0xf9, 0xe7, 0xf4, 0xd2, 0x71, 0x89, 0x56, 0x17, + 0xba, 0x0b, 0x8b, 0xe9, 0x73, 0xe9, 0x04, 0xd1, 0xb5, 0xd6, 0x10, 0xfa, 0x70, 0x83, 0x79, 0xc9, + 0xdc, 0x74, 0x5c, 0x6d, 0x43, 0x78, 0xb9, 0x81, 0xda, 0x50, 0x21, 0xf7, 0x5a, 0x93, 0xbb, 0x2a, + 0xe4, 0x1e, 0x0f, 0x40, 0x3d, 0xa3, 0x33, 0x1a, 0x47, 0xec, 0x22, 0x72, 0x92, 0x2a, 0x05, 0x49, + 0xcb, 0xaf, 0x02, 0x7f, 0x51, 0x60, 0x6b, 0xea, 0xdb, 0xa6, 0xa8, 0x18, 0xe9, 0xb5, 0xa6, 0xd4, + 0x14, 0x89, 0x5a, 0x99, 0x04, 0x4b, 0xba, 0xd5, 0x15, 0x74, 0x6b, 0xe5, 0x74, 0xeb, 0xa5, 0x74, + 0x1b, 0x45, 0xba, 0x1b, 0x29, 0xdd, 0xe5, 0xf9, 0x9b, 0x6b, 0x52, 0x49, 0x2d, 0xf2, 0xee, 0x42, + 0x75, 0xea, 0xd8, 0x1a, 0x88, 0xcb, 0x9c, 0x3a, 0x36, 0x7e, 0xa7, 0xc0, 0xde, 0x05, 0x89, 0x0c, + 0x62, 0x11, 0xe7, 0x8e, 0x9c, 0x93, 0x30, 0x34, 0x67, 0x64, 0xe2, 0x73, 0x1d, 0xd9, 0xd5, 0x8f, + 0x97, 0x57, 0x3f, 0xb6, 0x99, 0x87, 0xfa, 0x11, 0xa7, 0x5d, 0x37, 0xd8, 0x10, 0xfd, 0x0e, 0x6d, + 0x8b, 0x7a, 0x77, 0x24, 0x08, 0x45, 0x0c, 0x9b, 0x67, 0x96, 0x6a, 0xe4, 0xbc, 0xf9, 0x52, 0x51, + 0x2b, 0x96, 0x8a, 0xb7, 0xa0, 0x95, 0x1f, 0x44, 0x54, 0x31, 0x12, 0xc8, 0xd9, 0x9e, 0x9a, 0x4c, + 0x5d, 0x12, 0x48, 0x99, 0x9e, 0x58, 0xe8, 0x4f, 0x50, 0x29, 0xdf, 0xcc, 0x8a, 0x86, 0x48, 0xf6, + 0x8e, 0x48, 0xf6, 0x49, 0xea, 0x36, 0x96, 0x2b, 0x70, 0x0c, 0x7b, 0xa3, 0x47, 0xab, 0x50, 0xe4, + 0x5c, 0x79, 0x0c, 0xe7, 0x92, 0xf2, 0x78, 0x0a, 0xea, 0xe2, 0x38, 0x25, 0xb0, 0x22, 0x66, 0x1e, + 0x76, 0x57, 0x2a, 0x86, 0x3c, 0xd1, 0x84, 0x85, 0xdf, 0x2b, 0xa0, 0x8d, 0xbe, 0x9f, 0x82, 0xcf, + 0x61, 0x47, 0x0e, 0x3c, 0x79, 0x48, 0xcd, 0xf2, 0xd5, 0xf8, 0x15, 0xfc, 0x2c, 0x7e, 0x64, 0x03, + 0x69, 0xfa, 0x3c, 0x9c, 0xad, 0x54, 0x37, 0xa7, 0x5a, 0xa5, 0xa8, 0xda, 0x07, 0x05, 0xf6, 0x57, + 0x63, 0xfe, 0x40, 0xb2, 0x47, 0x9f, 0x6a, 0xc0, 0xdb, 0x25, 0xf4, 0x2f, 0xb4, 0x66, 0xcb, 0x9a, + 0x8d, 0xb6, 0xc5, 0xfe, 0xec, 0x0f, 0x43, 0xdf, 0x29, 0xf1, 0x86, 0x3e, 0x3a, 0x86, 0x76, 0xb6, + 0x0a, 0xa1, 0xbd, 0xa4, 0x4c, 0xe7, 0x6b, 0x93, 0x5e, 0xf8, 0x6b, 0xb2, 0xc0, 0x52, 0xd3, 0x93, + 0x06, 0xce, 0xf6, 0x41, 0x69, 0xe0, 0x7c, 0x23, 0x36, 0xe0, 0xbf, 0x34, 0xa9, 0xe7, 0x48, 0x03, + 0x17, 0xda, 0x1a, 0x5d, 0x2b, 0x9f, 0x08, 0x7d, 0x34, 0x85, 0xed, 0xb2, 0x67, 0x8c, 0x7e, 0x11, + 0x3b, 0x56, 0xd4, 0x1a, 0xfd, 0x60, 0xdd, 0xb4, 0x80, 0x1d, 0xad, 0x81, 0x1d, 0xad, 0x87, 0x5d, + 0xf9, 0x2c, 0x4c, 0xfe, 0x64, 0x4a, 0x33, 0x09, 0xfd, 0x2a, 0x73, 0x2c, 0xcd, 0x5e, 0x1d, 0x3f, + 0xb4, 0x24, 0xf4, 0xd1, 0x7f, 0xf0, 0x93, 0xdc, 0xa7, 0xa0, 0x9d, 0xb2, 0xde, 0xe5, 0x56, 0xdf, + 0x2d, 0x6f, 0x69, 0x9e, 0x6d, 0xbe, 0x6e, 0xf5, 0x79, 0x3b, 0x7e, 0xcc, 0x3e, 0x97, 0x0d, 0xde, + 0x94, 0xff, 0xf3, 0x35, 0x00, 0x00, 0xff, 0xff, 0x24, 0xd7, 0xfe, 0x0d, 0xa7, 0x0b, 0x00, 0x00, } From ff1ac3387bd10b73ab9930af75a12e2657026921 Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Fri, 17 Dec 2021 15:07:17 +0800 Subject: [PATCH 208/814] add check user is registered --- cmd/open_im_api/main.go | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/cmd/open_im_api/main.go b/cmd/open_im_api/main.go index 6664ee3bc..6abb70e32 100644 --- a/cmd/open_im_api/main.go +++ b/cmd/open_im_api/main.go @@ -88,7 +88,8 @@ func main() { managementGroup.POST("/delete_user", manage.DeleteUser) managementGroup.POST("/send_msg", manage.ManagementSendMsg) managementGroup.POST("/get_all_users_uid", manage.GetAllUsersUid) - managementGroup.POST("/get_users_online_status", manage.GetUsersOnlineStatus) + managementGroup.POST("/account_check", manage.AccountCheck) + //managementGroup.POST("/get_users_online_status", manage.GetUsersOnlineStatus) } //Conversation conversationGroup := r.Group("/conversation") From 42726cf2b6a7cfc3e40481da5e6c1d5c3564def6 Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Fri, 17 Dec 2021 15:10:24 +0800 Subject: [PATCH 209/814] add check user is registered --- cmd/open_im_api/main.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cmd/open_im_api/main.go b/cmd/open_im_api/main.go index 6abb70e32..f27e53277 100644 --- a/cmd/open_im_api/main.go +++ b/cmd/open_im_api/main.go @@ -89,7 +89,7 @@ func main() { managementGroup.POST("/send_msg", manage.ManagementSendMsg) managementGroup.POST("/get_all_users_uid", manage.GetAllUsersUid) managementGroup.POST("/account_check", manage.AccountCheck) - //managementGroup.POST("/get_users_online_status", manage.GetUsersOnlineStatus) + managementGroup.POST("/get_users_online_status", manage.GetUsersOnlineStatus) } //Conversation conversationGroup := r.Group("/conversation") From d6614decd1bc288d6eb8c79c2edd19f6a6237fcc Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Fri, 17 Dec 2021 15:55:43 +0800 Subject: [PATCH 210/814] rpc restore --- internal/msg_gateway/gate/rpc_server.go | 10 ++++------ internal/push/logic/push_rpc_server.go | 12 +++++------- internal/rpc/auth/rpcAuth.go | 10 ++++------ internal/rpc/chat/rpcChat.go | 10 ++++------ internal/rpc/friend/get_firends_info.go | 11 +++++------ internal/rpc/group/create_group.go | 10 ++++------ internal/rpc/user/get_user_info.go | 11 +++++------ 7 files changed, 31 insertions(+), 43 deletions(-) diff --git a/internal/msg_gateway/gate/rpc_server.go b/internal/msg_gateway/gate/rpc_server.go index dc29c57e2..a3ef373d6 100644 --- a/internal/msg_gateway/gate/rpc_server.go +++ b/internal/msg_gateway/gate/rpc_server.go @@ -12,12 +12,10 @@ import ( "context" "encoding/gob" "fmt" + "github.com/golang/protobuf/proto" "net" "strings" - "github.com/golang/protobuf/proto" - "github.com/spf13/viper" - "github.com/gorilla/websocket" "google.golang.org/grpc" ) @@ -36,7 +34,8 @@ func (r *RPCServer) onInit(rpcPort int) { r.etcdAddr = config.Config.Etcd.EtcdAddr } func (r *RPCServer) run() { - registerAddress := ":" + utils.IntToString(r.rpcPort) + ip := utils.ServerIP + registerAddress := ip + ":" + utils.IntToString(r.rpcPort) listener, err := net.Listen("tcp", registerAddress) if err != nil { log.ErrorByArgs(fmt.Sprintf("fail to listening consumer, err:%v\n", err)) @@ -46,8 +45,7 @@ func (r *RPCServer) run() { srv := grpc.NewServer() defer srv.GracefulStop() pbRelay.RegisterOnlineMessageRelayServiceServer(srv, r) - host := viper.GetString("endpoints.msg_gateway") - err = getcdv3.RegisterEtcd4Unique(r.etcdSchema, strings.Join(r.etcdAddr, ","), host, r.rpcPort, r.rpcRegisterName, 10) + err = getcdv3.RegisterEtcd4Unique(r.etcdSchema, strings.Join(r.etcdAddr, ","), ip, r.rpcPort, r.rpcRegisterName, 10) if err != nil { log.ErrorByKv("register push message rpc to etcd err", "", "err", err.Error()) } diff --git a/internal/push/logic/push_rpc_server.go b/internal/push/logic/push_rpc_server.go index 346505a23..570f5c28b 100644 --- a/internal/push/logic/push_rpc_server.go +++ b/internal/push/logic/push_rpc_server.go @@ -4,15 +4,13 @@ import ( "Open_IM/pkg/common/config" "Open_IM/pkg/common/log" "Open_IM/pkg/grpc-etcdv3/getcdv3" - pbPush "Open_IM/pkg/proto/push" + "Open_IM/pkg/proto/push" pbRelay "Open_IM/pkg/proto/relay" "Open_IM/pkg/utils" "context" + "google.golang.org/grpc" "net" "strings" - - "github.com/spf13/viper" - "google.golang.org/grpc" ) type RPCServer struct { @@ -29,7 +27,8 @@ func (r *RPCServer) Init(rpcPort int) { r.etcdAddr = config.Config.Etcd.EtcdAddr } func (r *RPCServer) run() { - registerAddress := ":" + utils.IntToString(r.rpcPort) + ip := utils.ServerIP + registerAddress := ip + ":" + utils.IntToString(r.rpcPort) listener, err := net.Listen("tcp", registerAddress) if err != nil { log.ErrorByKv("push module rpc listening port err", "", "err", err.Error()) @@ -39,8 +38,7 @@ func (r *RPCServer) run() { srv := grpc.NewServer() defer srv.GracefulStop() pbPush.RegisterPushMsgServiceServer(srv, r) - host := viper.GetString("endpoints.push") - err = getcdv3.RegisterEtcd(r.etcdSchema, strings.Join(r.etcdAddr, ","), host, r.rpcPort, r.rpcRegisterName, 10) + err = getcdv3.RegisterEtcd(r.etcdSchema, strings.Join(r.etcdAddr, ","), ip, r.rpcPort, r.rpcRegisterName, 10) if err != nil { log.ErrorByKv("register push module rpc to etcd err", "", "err", err.Error()) } diff --git a/internal/rpc/auth/rpcAuth.go b/internal/rpc/auth/rpcAuth.go index 474b2d7c7..162f04fd5 100644 --- a/internal/rpc/auth/rpcAuth.go +++ b/internal/rpc/auth/rpcAuth.go @@ -5,12 +5,11 @@ import ( "Open_IM/pkg/common/log" "Open_IM/pkg/grpc-etcdv3/getcdv3" pbAuth "Open_IM/pkg/proto/auth" + "Open_IM/pkg/utils" + "google.golang.org/grpc" "net" "strconv" "strings" - - "github.com/spf13/viper" - "google.golang.org/grpc" ) type rpcAuth struct { @@ -33,7 +32,7 @@ func NewRpcAuthServer(port int) *rpcAuth { func (rpc *rpcAuth) Run() { log.Info("", "", "rpc get_token init...") - address := ":" + strconv.Itoa(rpc.rpcPort) + address := utils.ServerIP + ":" + strconv.Itoa(rpc.rpcPort) listener, err := net.Listen("tcp", address) if err != nil { log.Error("", "", "listen network failed, err = %s, address = %s", err.Error(), address) @@ -48,8 +47,7 @@ func (rpc *rpcAuth) Run() { //service registers with etcd pbAuth.RegisterAuthServer(srv, rpc) - host := viper.GetString("endpoints.rpc_auth") - err = getcdv3.RegisterEtcd(rpc.etcdSchema, strings.Join(rpc.etcdAddr, ","), host, rpc.rpcPort, rpc.rpcRegisterName, 10) + err = getcdv3.RegisterEtcd(rpc.etcdSchema, strings.Join(rpc.etcdAddr, ","), utils.ServerIP, rpc.rpcPort, rpc.rpcRegisterName, 10) if err != nil { log.Error("", "", "register rpc get_token to etcd failed, err = %s", err.Error()) return diff --git a/internal/rpc/chat/rpcChat.go b/internal/rpc/chat/rpcChat.go index ebd2b7049..e3d2460dd 100644 --- a/internal/rpc/chat/rpcChat.go +++ b/internal/rpc/chat/rpcChat.go @@ -6,12 +6,11 @@ import ( "Open_IM/pkg/common/log" "Open_IM/pkg/grpc-etcdv3/getcdv3" pbChat "Open_IM/pkg/proto/chat" + "Open_IM/pkg/utils" + "google.golang.org/grpc" "net" "strconv" "strings" - - "github.com/spf13/viper" - "google.golang.org/grpc" ) type rpcChat struct { @@ -37,7 +36,7 @@ func NewRpcChatServer(port int) *rpcChat { func (rpc *rpcChat) Run() { log.Info("", "", "rpc get_token init...") - address := ":" + strconv.Itoa(rpc.rpcPort) + address := utils.ServerIP + ":" + strconv.Itoa(rpc.rpcPort) listener, err := net.Listen("tcp", address) if err != nil { log.Error("", "", "listen network failed, err = %s, address = %s", err.Error(), address) @@ -52,8 +51,7 @@ func (rpc *rpcChat) Run() { //service registers with etcd pbChat.RegisterChatServer(srv, rpc) - host := viper.GetString("endpoints.rpc_msg") - err = getcdv3.RegisterEtcd(rpc.etcdSchema, strings.Join(rpc.etcdAddr, ","), host, rpc.rpcPort, rpc.rpcRegisterName, 10) + err = getcdv3.RegisterEtcd(rpc.etcdSchema, strings.Join(rpc.etcdAddr, ","), utils.ServerIP, rpc.rpcPort, rpc.rpcRegisterName, 10) if err != nil { log.Error("", "", "register rpc get_token to etcd failed, err = %s", err.Error()) return diff --git a/internal/rpc/friend/get_firends_info.go b/internal/rpc/friend/get_firends_info.go index ed32a2430..d103889bc 100644 --- a/internal/rpc/friend/get_firends_info.go +++ b/internal/rpc/friend/get_firends_info.go @@ -8,14 +8,13 @@ import ( "Open_IM/pkg/common/token_verify" "Open_IM/pkg/grpc-etcdv3/getcdv3" pbFriend "Open_IM/pkg/proto/friend" + "Open_IM/pkg/utils" "context" "fmt" + "google.golang.org/grpc" "net" "strconv" "strings" - - "github.com/spf13/viper" - "google.golang.org/grpc" ) type friendServer struct { @@ -38,7 +37,8 @@ func NewFriendServer(port int) *friendServer { func (s *friendServer) Run() { log.Info("", "", fmt.Sprintf("rpc friend init....")) - registerAddress := ":" + strconv.Itoa(s.rpcPort) + ip := utils.ServerIP + registerAddress := ip + ":" + strconv.Itoa(s.rpcPort) //listener network listener, err := net.Listen("tcp", registerAddress) if err != nil { @@ -52,8 +52,7 @@ func (s *friendServer) Run() { defer srv.GracefulStop() //User friend related services register to etcd pbFriend.RegisterFriendServer(srv, s) - host := viper.GetString("endpoints.rpc_friend") - err = getcdv3.RegisterEtcd(s.etcdSchema, strings.Join(s.etcdAddr, ","), host, s.rpcPort, s.rpcRegisterName, 10) + err = getcdv3.RegisterEtcd(s.etcdSchema, strings.Join(s.etcdAddr, ","), ip, s.rpcPort, s.rpcRegisterName, 10) if err != nil { log.ErrorByArgs("register rpc fiend service to etcd failed,err=%s", err.Error()) return diff --git a/internal/rpc/group/create_group.go b/internal/rpc/group/create_group.go index 1a32096fc..35e6616ee 100644 --- a/internal/rpc/group/create_group.go +++ b/internal/rpc/group/create_group.go @@ -14,13 +14,11 @@ import ( pbGroup "Open_IM/pkg/proto/group" "Open_IM/pkg/utils" "context" + "google.golang.org/grpc" "net" "strconv" "strings" "time" - - "github.com/spf13/viper" - "google.golang.org/grpc" ) type groupServer struct { @@ -42,7 +40,8 @@ func NewGroupServer(port int) *groupServer { func (s *groupServer) Run() { log.Info("", "", "rpc group init....") - registerAddress := ":" + strconv.Itoa(s.rpcPort) + ip := utils.ServerIP + registerAddress := ip + ":" + strconv.Itoa(s.rpcPort) //listener network listener, err := net.Listen("tcp", registerAddress) if err != nil { @@ -56,8 +55,7 @@ func (s *groupServer) Run() { defer srv.GracefulStop() //Service registers with etcd pbGroup.RegisterGroupServer(srv, s) - host := viper.GetString("endpoints.rpc_group") - err = getcdv3.RegisterEtcd(s.etcdSchema, strings.Join(s.etcdAddr, ","), host, s.rpcPort, s.rpcRegisterName, 10) + err = getcdv3.RegisterEtcd(s.etcdSchema, strings.Join(s.etcdAddr, ","), ip, s.rpcPort, s.rpcRegisterName, 10) if err != nil { log.ErrorByArgs("get etcd failed,err=%s", err.Error()) return diff --git a/internal/rpc/user/get_user_info.go b/internal/rpc/user/get_user_info.go index bab423e49..3f9cec00f 100644 --- a/internal/rpc/user/get_user_info.go +++ b/internal/rpc/user/get_user_info.go @@ -6,13 +6,12 @@ import ( "Open_IM/pkg/common/log" "Open_IM/pkg/grpc-etcdv3/getcdv3" pbUser "Open_IM/pkg/proto/user" + "Open_IM/pkg/utils" "context" + "google.golang.org/grpc" "net" "strconv" "strings" - - "github.com/spf13/viper" - "google.golang.org/grpc" ) type userServer struct { @@ -35,7 +34,8 @@ func NewUserServer(port int) *userServer { func (s *userServer) Run() { log.Info("", "", "rpc user init....") - registerAddress := ":" + strconv.Itoa(s.rpcPort) + ip := utils.ServerIP + registerAddress := ip + ":" + strconv.Itoa(s.rpcPort) //listener network listener, err := net.Listen("tcp", registerAddress) if err != nil { @@ -49,8 +49,7 @@ func (s *userServer) Run() { defer srv.GracefulStop() //Service registers with etcd pbUser.RegisterUserServer(srv, s) - host := viper.GetString("endpoints.rpc_user") - err = getcdv3.RegisterEtcd(s.etcdSchema, strings.Join(s.etcdAddr, ","), host, s.rpcPort, s.rpcRegisterName, 10) + err = getcdv3.RegisterEtcd(s.etcdSchema, strings.Join(s.etcdAddr, ","), ip, s.rpcPort, s.rpcRegisterName, 10) if err != nil { log.ErrorByArgs("register rpc token to etcd failed,err=%s", err.Error()) return From 8987005e606116e30ccaa4f253dadde0286e6b6b Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Fri, 17 Dec 2021 16:23:44 +0800 Subject: [PATCH 211/814] add management interface --- internal/api/manage/management_user.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/internal/api/manage/management_user.go b/internal/api/manage/management_user.go index 60d0c91cc..b911935c2 100644 --- a/internal/api/manage/management_user.go +++ b/internal/api/manage/management_user.go @@ -114,7 +114,7 @@ func AccountCheck(c *gin.Context) { return } log.InfoByKv("call AccountCheck rpc server is success", params.OperationID, "resp args", RpcResp.String()) - resp := gin.H{"errCode": RpcResp.CommonResp.ErrorCode, "errMsg": RpcResp.CommonResp.ErrorMsg, "Result": RpcResp.Result} + resp := gin.H{"errCode": RpcResp.CommonResp.ErrorCode, "errMsg": RpcResp.CommonResp.ErrorMsg, "result": RpcResp.Result} c.JSON(http.StatusOK, resp) } From e63b3ab0e3abb658067922749dd3a29df5c075ec Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Fri, 17 Dec 2021 16:43:41 +0800 Subject: [PATCH 212/814] add management interface --- internal/demo/register/login.go | 7 +++---- internal/demo/register/set_password.go | 9 ++++----- 2 files changed, 7 insertions(+), 9 deletions(-) diff --git a/internal/demo/register/login.go b/internal/demo/register/login.go index 628828f4a..bc2605e08 100644 --- a/internal/demo/register/login.go +++ b/internal/demo/register/login.go @@ -5,14 +5,13 @@ import ( "Open_IM/pkg/common/constant" "Open_IM/pkg/common/db/mysql_model/im_mysql_model" "Open_IM/pkg/common/log" + "Open_IM/pkg/utils" "bytes" "encoding/json" "fmt" + "github.com/gin-gonic/gin" "io/ioutil" "net/http" - - "github.com/gin-gonic/gin" - "github.com/spf13/viper" ) type ParamsLogin struct { @@ -89,7 +88,7 @@ func Login(c *gin.Context) { } func OpenIMToken(Account string, platform int32) (*http.Response, error) { - url := fmt.Sprintf("http://%s:10000/auth/user_token", viper.GetString("endpoints.api")) + url := fmt.Sprintf("http://%s:10000/auth/user_token", utils.ServerIP) client := &http.Client{} params := make(map[string]interface{}) diff --git a/internal/demo/register/set_password.go b/internal/demo/register/set_password.go index abd2358c2..7dca79dc6 100644 --- a/internal/demo/register/set_password.go +++ b/internal/demo/register/set_password.go @@ -6,15 +6,14 @@ import ( "Open_IM/pkg/common/db" "Open_IM/pkg/common/db/mysql_model/im_mysql_model" "Open_IM/pkg/common/log" + "Open_IM/pkg/utils" "bytes" "encoding/json" "fmt" - "io/ioutil" - "net/http" - "github.com/garyburd/redigo/redis" "github.com/gin-gonic/gin" - "github.com/spf13/viper" + "io/ioutil" + "net/http" ) type ParamsSetPassword struct { @@ -120,7 +119,7 @@ openIMRegisterTab: } func OpenIMRegister(account string) (*http.Response, error) { - url := fmt.Sprintf("http://%s:10000/auth/user_register", viper.GetString("endpoints.api")) + url := fmt.Sprintf("http://%s:10000/auth/user_register", utils.ServerIP) fmt.Println("1:", config.Config.Secret) client := &http.Client{} From 264451d9235f1064f93a61a5a8dfce485484a82f Mon Sep 17 00:00:00 2001 From: skiffer-git <44203734@qq.com> Date: Sun, 19 Dec 2021 21:03:05 +0800 Subject: [PATCH 213/814] notification --- config/config.yaml | 38 +- internal/rpc/chat/send_msg.go | 28 +- pkg/common/config/config.go | 35 +- pkg/proto/sdk_ws/ws.pb.go | 1638 ++++++++++++++++++++++++++++----- pkg/proto/sdk_ws/ws.proto | 179 +++- 5 files changed, 1635 insertions(+), 283 deletions(-) diff --git a/config/config.yaml b/config/config.yaml index 33899fbae..fc1f924fe 100644 --- a/config/config.yaml +++ b/config/config.yaml @@ -160,17 +160,35 @@ messagecallback: stateChange: switch: false +iOSPush: + pushSound: "xxx" + badgeCount: 1 + notification: - offlinePush: - switch: true - createGroup: - title: "create group title" - desc: "create group desc" - ext: "create group ext" - quitGroup: - title: "quit group title" - desc: "quit group desc" - ext: "quit group ext" + groupCreated: + conversation: + conversationChanged: 1 + unreadCount: 1 + offlinePush: + switch: true + title: "create group title" + desc: "create group desc" + ext: "create group ext" + defaultTips: + tips: "create the group" # xx create the group + + groupInfoChanged: + conversation: + conversationChanged: 1 + unreadCount: 1 + offlinePush: + switch: true + title: "group info changed title" + desc: "group info changed desc" + ext: "group info changed ext" + defaultTips: + tips: "group info changed by" # group info changed by xx + conversationChanged: 0 #---------------demo configuration---------------------# diff --git a/internal/rpc/chat/send_msg.go b/internal/rpc/chat/send_msg.go index f72404789..640309c91 100644 --- a/internal/rpc/chat/send_msg.go +++ b/internal/rpc/chat/send_msg.go @@ -213,26 +213,24 @@ func CreateGroupNotification(sendID string, creator im_mysql_model.User, group i msg.SessionType = constant.GroupChatType msg.MsgFrom = constant.SysMsgType - var tip open_im_sdk.CreateGroupTip - tip.Group = &open_im_sdk.GroupInfoTip{} - utils.CopyStructFields(tip.Group, group) - tip.Creator = &open_im_sdk.UserInfoTip{} - utils.CopyStructFields(tip.Creator, creator) + var groupCreated open_im_sdk.GroupCreatedTips + groupCreated.Group = &open_im_sdk.GroupInfo{} + utils.CopyStructFields(groupCreated.Group, group) + groupCreated.Creator = &open_im_sdk.GroupMemberFullInfo{} + utils.CopyStructFields(groupCreated.Creator, creator) for _, v := range memberList { - var groupMemberInfo open_im_sdk.GroupMemberFullInfoTip + var groupMemberInfo open_im_sdk.GroupMemberFullInfo utils.CopyStructFields(&groupMemberInfo, v) - tip.MemberList = append(tip.MemberList, &groupMemberInfo) + groupCreated.MemberList = append(groupCreated.MemberList, &groupMemberInfo) } - - msg.Content = utils.StructToJsonString(tip) - var offlinePushInfo open_im_sdk.OfflinePushInfo - offlinePushInfo.Title = config.Config.Notification.CreateGroup.Title - offlinePushInfo.Desc = config.Config.Notification.CreateGroup.Desc - offlinePushInfo.Ext = config.Config.Notification.CreateGroup.Ext - Notification(&msg, false, offlinePushInfo) + var tips open_im_sdk.TipsComm + tips.Detail = utils.StructToJsonString(groupCreated) + tips.DefaultTips = creator.Name + " " + config.Config.DefaultTips.GroupCreatedTips + msg.Content = utils.StructToJsonString(tips) + Notification(&msg, false) } -func Notification(m *WSToMsgSvrChatMsg, onlineUserOnly bool, offlinePushInfo open_im_sdk.OfflinePushInfo) { +func Notification(m *WSToMsgSvrChatMsg, onlineUserOnly bool) { } diff --git a/pkg/common/config/config.go b/pkg/common/config/config.go index 05ce6e9e1..05b9ae904 100644 --- a/pkg/common/config/config.go +++ b/pkg/common/config/config.go @@ -172,19 +172,30 @@ type config struct { SmtpPort int `yaml:"smtpPort"` } } + //notification: + // groupCreated: + // offlinePush: + // switch: true + // title: "create group title" + // desc: "create group desc" + // ext: "create group ext" + // defaultTips: + // tips: "create the group" # xx create the group + // conversationChanged: 1 + // + Notification struct { - OfflinePush struct { - Switch bool `yaml:"switch"` - } - CreateGroup struct { - Title string `yaml:"title"` - Desc string `yaml:"desc"` - Ext string `yaml:"ext"` - } - QuiteGroup struct { - Title string `yaml:"title"` - Desc string `yaml:"desc"` - Ext string `yaml:"ext"` + GroupCreated struct { + OfflinePush struct { + Switch bool `yaml:"switch"` + Title string `yaml:"title"` + Desc string `yaml:"desc"` + Ext string `yaml:"ext"` + } + DefaultTips struct { + GroupCreatedTips string `yaml:"croupCreatedTips"` + GroupInfoChangedTips string `yaml:"groupInfoChangedTips"` + } } } } diff --git a/pkg/proto/sdk_ws/ws.pb.go b/pkg/proto/sdk_ws/ws.pb.go index bdaa3ab97..5ac2ab6c6 100644 --- a/pkg/proto/sdk_ws/ws.pb.go +++ b/pkg/proto/sdk_ws/ws.pb.go @@ -32,7 +32,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_0e67cfdf7b3776b1, []int{0} + return fileDescriptor_ws_e632726fa8a2c9ae, []int{0} } func (m *PullMessageBySeqListResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_PullMessageBySeqListResp.Unmarshal(m, b) @@ -91,7 +91,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_0e67cfdf7b3776b1, []int{1} + return fileDescriptor_ws_e632726fa8a2c9ae, []int{1} } func (m *PullMessageBySeqListReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_PullMessageBySeqListReq.Unmarshal(m, b) @@ -128,7 +128,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_0e67cfdf7b3776b1, []int{2} + return fileDescriptor_ws_e632726fa8a2c9ae, []int{2} } func (m *GetMaxAndMinSeqReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetMaxAndMinSeqReq.Unmarshal(m, b) @@ -160,7 +160,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_0e67cfdf7b3776b1, []int{3} + return fileDescriptor_ws_e632726fa8a2c9ae, []int{3} } func (m *GetMaxAndMinSeqResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetMaxAndMinSeqResp.Unmarshal(m, b) @@ -208,7 +208,7 @@ func (m *GatherFormat) Reset() { *m = GatherFormat{} } func (m *GatherFormat) String() string { return proto.CompactTextString(m) } func (*GatherFormat) ProtoMessage() {} func (*GatherFormat) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_0e67cfdf7b3776b1, []int{4} + return fileDescriptor_ws_e632726fa8a2c9ae, []int{4} } func (m *GatherFormat) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GatherFormat.Unmarshal(m, b) @@ -276,7 +276,7 @@ func (m *MsgFormat) Reset() { *m = MsgFormat{} } func (m *MsgFormat) String() string { return proto.CompactTextString(m) } func (*MsgFormat) ProtoMessage() {} func (*MsgFormat) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_0e67cfdf7b3776b1, []int{5} + return fileDescriptor_ws_e632726fa8a2c9ae, []int{5} } func (m *MsgFormat) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MsgFormat.Unmarshal(m, b) @@ -401,7 +401,7 @@ func (m *UserSendMsgReq) Reset() { *m = UserSendMsgReq{} } func (m *UserSendMsgReq) String() string { return proto.CompactTextString(m) } func (*UserSendMsgReq) ProtoMessage() {} func (*UserSendMsgReq) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_0e67cfdf7b3776b1, []int{6} + return fileDescriptor_ws_e632726fa8a2c9ae, []int{6} } func (m *UserSendMsgReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_UserSendMsgReq.Unmarshal(m, b) @@ -511,7 +511,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_0e67cfdf7b3776b1, []int{7} + return fileDescriptor_ws_e632726fa8a2c9ae, []int{7} } func (m *UserSendMsgResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_UserSendMsgResp.Unmarshal(m, b) @@ -575,7 +575,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_0e67cfdf7b3776b1, []int{8} + return fileDescriptor_ws_e632726fa8a2c9ae, []int{8} } func (m *MsgData) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MsgData.Unmarshal(m, b) @@ -699,7 +699,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_0e67cfdf7b3776b1, []int{9} + return fileDescriptor_ws_e632726fa8a2c9ae, []int{9} } func (m *OfflinePushInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_OfflinePushInfo.Unmarshal(m, b) @@ -740,332 +740,1468 @@ func (m *OfflinePushInfo) GetExt() string { return "" } -type GroupInfoTip struct { - GroupID string `protobuf:"bytes,1,opt,name=GroupID" json:"GroupID,omitempty"` - GroupName string `protobuf:"bytes,2,opt,name=GroupName" json:"GroupName,omitempty"` - Notification string `protobuf:"bytes,3,opt,name=Notification" json:"Notification,omitempty"` - Introduction string `protobuf:"bytes,4,opt,name=Introduction" json:"Introduction,omitempty"` - FaceUrl string `protobuf:"bytes,5,opt,name=FaceUrl" json:"FaceUrl,omitempty"` - Ex string `protobuf:"bytes,6,opt,name=Ex" json:"Ex,omitempty"` - OwnerID string `protobuf:"bytes,7,opt,name=OwnerID" json:"OwnerID,omitempty"` - CreateTime uint64 `protobuf:"varint,8,opt,name=CreateTime" json:"CreateTime,omitempty"` - MemberCount uint32 `protobuf:"varint,9,opt,name=MemberCount" json:"MemberCount,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` +// public +type GroupInfo struct { + GroupID string `protobuf:"bytes,1,opt,name=GroupID" json:"GroupID,omitempty"` + GroupName string `protobuf:"bytes,2,opt,name=GroupName" json:"GroupName,omitempty"` + Notification string `protobuf:"bytes,3,opt,name=Notification" json:"Notification,omitempty"` + Introduction string `protobuf:"bytes,4,opt,name=Introduction" json:"Introduction,omitempty"` + FaceUrl string `protobuf:"bytes,5,opt,name=FaceUrl" json:"FaceUrl,omitempty"` + Ex string `protobuf:"bytes,6,opt,name=Ex" json:"Ex,omitempty"` + Owner *PublicUserInfo `protobuf:"bytes,7,opt,name=Owner" json:"Owner,omitempty"` + CreateTime uint64 `protobuf:"varint,8,opt,name=CreateTime" json:"CreateTime,omitempty"` + MemberCount uint32 `protobuf:"varint,9,opt,name=MemberCount" json:"MemberCount,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (m *GroupInfoTip) Reset() { *m = GroupInfoTip{} } -func (m *GroupInfoTip) String() string { return proto.CompactTextString(m) } -func (*GroupInfoTip) ProtoMessage() {} -func (*GroupInfoTip) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_0e67cfdf7b3776b1, []int{10} +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_e632726fa8a2c9ae, []int{10} } -func (m *GroupInfoTip) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_GroupInfoTip.Unmarshal(m, b) +func (m *GroupInfo) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GroupInfo.Unmarshal(m, b) } -func (m *GroupInfoTip) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_GroupInfoTip.Marshal(b, m, deterministic) +func (m *GroupInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GroupInfo.Marshal(b, m, deterministic) } -func (dst *GroupInfoTip) XXX_Merge(src proto.Message) { - xxx_messageInfo_GroupInfoTip.Merge(dst, src) +func (dst *GroupInfo) XXX_Merge(src proto.Message) { + xxx_messageInfo_GroupInfo.Merge(dst, src) } -func (m *GroupInfoTip) XXX_Size() int { - return xxx_messageInfo_GroupInfoTip.Size(m) +func (m *GroupInfo) XXX_Size() int { + return xxx_messageInfo_GroupInfo.Size(m) } -func (m *GroupInfoTip) XXX_DiscardUnknown() { - xxx_messageInfo_GroupInfoTip.DiscardUnknown(m) +func (m *GroupInfo) XXX_DiscardUnknown() { + xxx_messageInfo_GroupInfo.DiscardUnknown(m) } -var xxx_messageInfo_GroupInfoTip proto.InternalMessageInfo +var xxx_messageInfo_GroupInfo proto.InternalMessageInfo -func (m *GroupInfoTip) GetGroupID() string { +func (m *GroupInfo) GetGroupID() string { if m != nil { return m.GroupID } return "" } -func (m *GroupInfoTip) GetGroupName() string { +func (m *GroupInfo) GetGroupName() string { if m != nil { return m.GroupName } return "" } -func (m *GroupInfoTip) GetNotification() string { +func (m *GroupInfo) GetNotification() string { if m != nil { return m.Notification } return "" } -func (m *GroupInfoTip) GetIntroduction() string { +func (m *GroupInfo) GetIntroduction() string { if m != nil { return m.Introduction } return "" } -func (m *GroupInfoTip) GetFaceUrl() string { +func (m *GroupInfo) GetFaceUrl() string { if m != nil { return m.FaceUrl } return "" } -func (m *GroupInfoTip) GetEx() string { +func (m *GroupInfo) GetEx() string { if m != nil { return m.Ex } return "" } -func (m *GroupInfoTip) GetOwnerID() string { +func (m *GroupInfo) GetOwner() *PublicUserInfo { if m != nil { - return m.OwnerID + return m.Owner } - return "" + return nil } -func (m *GroupInfoTip) GetCreateTime() uint64 { +func (m *GroupInfo) GetCreateTime() uint64 { if m != nil { return m.CreateTime } return 0 } -func (m *GroupInfoTip) GetMemberCount() uint32 { +func (m *GroupInfo) GetMemberCount() uint32 { if m != nil { return m.MemberCount } return 0 } -type GroupMemberFullInfoTip struct { - GroupId string `protobuf:"bytes,1,opt,name=GroupId" json:"GroupId,omitempty"` - UserId string `protobuf:"bytes,2,opt,name=UserId" json:"UserId,omitempty"` +// private, Group members have permission to view +type GroupMemberFullInfo struct { + GroupID string `protobuf:"bytes,1,opt,name=GroupID" json:"GroupID,omitempty"` + UserID string `protobuf:"bytes,2,opt,name=UserID" json:"UserID,omitempty"` Role int32 `protobuf:"varint,3,opt,name=Role" json:"Role,omitempty"` JoinTime uint64 `protobuf:"varint,4,opt,name=JoinTime" json:"JoinTime,omitempty"` NickName string `protobuf:"bytes,5,opt,name=NickName" json:"NickName,omitempty"` FaceUrl string `protobuf:"bytes,6,opt,name=FaceUrl" json:"FaceUrl,omitempty"` + FriendRemark string `protobuf:"bytes,7,opt,name=FriendRemark" json:"FriendRemark,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` } -func (m *GroupMemberFullInfoTip) Reset() { *m = GroupMemberFullInfoTip{} } -func (m *GroupMemberFullInfoTip) String() string { return proto.CompactTextString(m) } -func (*GroupMemberFullInfoTip) ProtoMessage() {} -func (*GroupMemberFullInfoTip) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_0e67cfdf7b3776b1, []int{11} +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_e632726fa8a2c9ae, []int{11} } -func (m *GroupMemberFullInfoTip) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_GroupMemberFullInfoTip.Unmarshal(m, b) +func (m *GroupMemberFullInfo) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GroupMemberFullInfo.Unmarshal(m, b) } -func (m *GroupMemberFullInfoTip) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_GroupMemberFullInfoTip.Marshal(b, m, deterministic) +func (m *GroupMemberFullInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GroupMemberFullInfo.Marshal(b, m, deterministic) } -func (dst *GroupMemberFullInfoTip) XXX_Merge(src proto.Message) { - xxx_messageInfo_GroupMemberFullInfoTip.Merge(dst, src) +func (dst *GroupMemberFullInfo) XXX_Merge(src proto.Message) { + xxx_messageInfo_GroupMemberFullInfo.Merge(dst, src) } -func (m *GroupMemberFullInfoTip) XXX_Size() int { - return xxx_messageInfo_GroupMemberFullInfoTip.Size(m) +func (m *GroupMemberFullInfo) XXX_Size() int { + return xxx_messageInfo_GroupMemberFullInfo.Size(m) } -func (m *GroupMemberFullInfoTip) XXX_DiscardUnknown() { - xxx_messageInfo_GroupMemberFullInfoTip.DiscardUnknown(m) +func (m *GroupMemberFullInfo) XXX_DiscardUnknown() { + xxx_messageInfo_GroupMemberFullInfo.DiscardUnknown(m) } -var xxx_messageInfo_GroupMemberFullInfoTip proto.InternalMessageInfo +var xxx_messageInfo_GroupMemberFullInfo proto.InternalMessageInfo -func (m *GroupMemberFullInfoTip) GetGroupId() string { +func (m *GroupMemberFullInfo) GetGroupID() string { if m != nil { - return m.GroupId + return m.GroupID } return "" } -func (m *GroupMemberFullInfoTip) GetUserId() string { +func (m *GroupMemberFullInfo) GetUserID() string { if m != nil { - return m.UserId + return m.UserID } return "" } -func (m *GroupMemberFullInfoTip) GetRole() int32 { +func (m *GroupMemberFullInfo) GetRole() int32 { if m != nil { return m.Role } return 0 } -func (m *GroupMemberFullInfoTip) GetJoinTime() uint64 { +func (m *GroupMemberFullInfo) GetJoinTime() uint64 { if m != nil { return m.JoinTime } return 0 } -func (m *GroupMemberFullInfoTip) GetNickName() string { +func (m *GroupMemberFullInfo) GetNickName() string { if m != nil { return m.NickName } return "" } -func (m *GroupMemberFullInfoTip) GetFaceUrl() string { +func (m *GroupMemberFullInfo) GetFaceUrl() string { if m != nil { return m.FaceUrl } return "" } -type CreateGroupTip struct { - Group *GroupInfoTip `protobuf:"bytes,1,opt,name=Group" json:"Group,omitempty"` - Creator *UserInfoTip `protobuf:"bytes,2,opt,name=Creator" json:"Creator,omitempty"` - MemberList []*GroupMemberFullInfoTip `protobuf:"bytes,3,rep,name=MemberList" json:"MemberList,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` +func (m *GroupMemberFullInfo) GetFriendRemark() string { + if m != nil { + return m.FriendRemark + } + return "" +} + +// private, Friends have permission to view +type UserInfo struct { + UserID string `protobuf:"bytes,1,opt,name=UserID" json:"UserID,omitempty"` + Name string `protobuf:"bytes,2,opt,name=Name" json:"Name,omitempty"` + Icon string `protobuf:"bytes,3,opt,name=Icon" json:"Icon,omitempty"` + Gender int32 `protobuf:"varint,4,opt,name=Gender" json:"Gender,omitempty"` + Mobile string `protobuf:"bytes,5,opt,name=Mobile" json:"Mobile,omitempty"` + Birth string `protobuf:"bytes,6,opt,name=Birth" json:"Birth,omitempty"` + Email string `protobuf:"bytes,7,opt,name=Email" json:"Email,omitempty"` + Ex string `protobuf:"bytes,8,opt,name=Ex" json:"Ex,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (m *CreateGroupTip) Reset() { *m = CreateGroupTip{} } -func (m *CreateGroupTip) String() string { return proto.CompactTextString(m) } -func (*CreateGroupTip) ProtoMessage() {} -func (*CreateGroupTip) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_0e67cfdf7b3776b1, []int{12} +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_e632726fa8a2c9ae, []int{12} } -func (m *CreateGroupTip) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_CreateGroupTip.Unmarshal(m, b) +func (m *UserInfo) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_UserInfo.Unmarshal(m, b) } -func (m *CreateGroupTip) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_CreateGroupTip.Marshal(b, m, deterministic) +func (m *UserInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_UserInfo.Marshal(b, m, deterministic) } -func (dst *CreateGroupTip) XXX_Merge(src proto.Message) { - xxx_messageInfo_CreateGroupTip.Merge(dst, src) +func (dst *UserInfo) XXX_Merge(src proto.Message) { + xxx_messageInfo_UserInfo.Merge(dst, src) } -func (m *CreateGroupTip) XXX_Size() int { - return xxx_messageInfo_CreateGroupTip.Size(m) +func (m *UserInfo) XXX_Size() int { + return xxx_messageInfo_UserInfo.Size(m) } -func (m *CreateGroupTip) XXX_DiscardUnknown() { - xxx_messageInfo_CreateGroupTip.DiscardUnknown(m) +func (m *UserInfo) XXX_DiscardUnknown() { + xxx_messageInfo_UserInfo.DiscardUnknown(m) } -var xxx_messageInfo_CreateGroupTip proto.InternalMessageInfo +var xxx_messageInfo_UserInfo proto.InternalMessageInfo -func (m *CreateGroupTip) GetGroup() *GroupInfoTip { +func (m *UserInfo) GetUserID() string { if m != nil { - return m.Group + return m.UserID } - return nil + return "" } -func (m *CreateGroupTip) GetCreator() *UserInfoTip { +func (m *UserInfo) GetName() string { if m != nil { - return m.Creator + return m.Name } - return nil + return "" } -func (m *CreateGroupTip) GetMemberList() []*GroupMemberFullInfoTip { +func (m *UserInfo) GetIcon() string { if m != nil { - return m.MemberList + return m.Icon } - return nil + return "" +} + +func (m *UserInfo) GetGender() int32 { + if m != nil { + return m.Gender + } + return 0 +} + +func (m *UserInfo) GetMobile() string { + if m != nil { + return m.Mobile + } + return "" +} + +func (m *UserInfo) GetBirth() string { + if m != nil { + return m.Birth + } + return "" +} + +func (m *UserInfo) GetEmail() string { + if m != nil { + return m.Email + } + return "" } -type UserInfoTip struct { +func (m *UserInfo) GetEx() string { + if m != nil { + return m.Ex + } + return "" +} + +// No permissions required +type PublicUserInfo struct { UserID string `protobuf:"bytes,1,opt,name=UserID" json:"UserID,omitempty"` Name string `protobuf:"bytes,2,opt,name=Name" json:"Name,omitempty"` Icon string `protobuf:"bytes,3,opt,name=Icon" json:"Icon,omitempty"` Gender int32 `protobuf:"varint,4,opt,name=Gender" json:"Gender,omitempty"` - Mobile string `protobuf:"bytes,5,opt,name=Mobile" json:"Mobile,omitempty"` - Birth string `protobuf:"bytes,6,opt,name=Birth" json:"Birth,omitempty"` - Email string `protobuf:"bytes,7,opt,name=Email" json:"Email,omitempty"` - Ex string `protobuf:"bytes,8,opt,name=Ex" json:"Ex,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` } -func (m *UserInfoTip) Reset() { *m = UserInfoTip{} } -func (m *UserInfoTip) String() string { return proto.CompactTextString(m) } -func (*UserInfoTip) ProtoMessage() {} -func (*UserInfoTip) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_0e67cfdf7b3776b1, []int{13} +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_e632726fa8a2c9ae, []int{13} } -func (m *UserInfoTip) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_UserInfoTip.Unmarshal(m, b) +func (m *PublicUserInfo) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_PublicUserInfo.Unmarshal(m, b) } -func (m *UserInfoTip) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_UserInfoTip.Marshal(b, m, deterministic) +func (m *PublicUserInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_PublicUserInfo.Marshal(b, m, deterministic) } -func (dst *UserInfoTip) XXX_Merge(src proto.Message) { - xxx_messageInfo_UserInfoTip.Merge(dst, src) +func (dst *PublicUserInfo) XXX_Merge(src proto.Message) { + xxx_messageInfo_PublicUserInfo.Merge(dst, src) } -func (m *UserInfoTip) XXX_Size() int { - return xxx_messageInfo_UserInfoTip.Size(m) +func (m *PublicUserInfo) XXX_Size() int { + return xxx_messageInfo_PublicUserInfo.Size(m) } -func (m *UserInfoTip) XXX_DiscardUnknown() { - xxx_messageInfo_UserInfoTip.DiscardUnknown(m) +func (m *PublicUserInfo) XXX_DiscardUnknown() { + xxx_messageInfo_PublicUserInfo.DiscardUnknown(m) } -var xxx_messageInfo_UserInfoTip proto.InternalMessageInfo +var xxx_messageInfo_PublicUserInfo proto.InternalMessageInfo -func (m *UserInfoTip) GetUserID() string { +func (m *PublicUserInfo) GetUserID() string { if m != nil { return m.UserID } return "" } -func (m *UserInfoTip) GetName() string { +func (m *PublicUserInfo) GetName() string { if m != nil { return m.Name } return "" } -func (m *UserInfoTip) GetIcon() string { +func (m *PublicUserInfo) GetIcon() string { if m != nil { return m.Icon } return "" } -func (m *UserInfoTip) GetGender() int32 { +func (m *PublicUserInfo) GetGender() int32 { if m != nil { return m.Gender } return 0 } -func (m *UserInfoTip) GetMobile() string { +type TipsComm struct { + Detail string `protobuf:"bytes,1,opt,name=Detail" json:"Detail,omitempty"` + DefaultTips string `protobuf:"bytes,2,opt,name=DefaultTips" json:"DefaultTips,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +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_e632726fa8a2c9ae, []int{14} +} +func (m *TipsComm) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_TipsComm.Unmarshal(m, b) +} +func (m *TipsComm) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_TipsComm.Marshal(b, m, deterministic) +} +func (dst *TipsComm) XXX_Merge(src proto.Message) { + xxx_messageInfo_TipsComm.Merge(dst, src) +} +func (m *TipsComm) XXX_Size() int { + return xxx_messageInfo_TipsComm.Size(m) +} +func (m *TipsComm) XXX_DiscardUnknown() { + xxx_messageInfo_TipsComm.DiscardUnknown(m) +} + +var xxx_messageInfo_TipsComm proto.InternalMessageInfo + +func (m *TipsComm) GetDetail() string { if m != nil { - return m.Mobile + return m.Detail } return "" } -func (m *UserInfoTip) GetBirth() string { +func (m *TipsComm) GetDefaultTips() string { if m != nil { - return m.Birth + return m.DefaultTips } return "" } -func (m *UserInfoTip) GetEmail() string { +// ////////////////////group///////////////////// +// Actively join the group +type MemberEnterTips struct { + Group *GroupInfo `protobuf:"bytes,1,opt,name=Group" json:"Group,omitempty"` + Member *GroupMemberFullInfo `protobuf:"bytes,2,opt,name=Member" json:"Member,omitempty"` + OperationTime uint64 `protobuf:"varint,3,opt,name=OperationTime" json:"OperationTime,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +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_e632726fa8a2c9ae, []int{15} +} +func (m *MemberEnterTips) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_MemberEnterTips.Unmarshal(m, b) +} +func (m *MemberEnterTips) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_MemberEnterTips.Marshal(b, m, deterministic) +} +func (dst *MemberEnterTips) XXX_Merge(src proto.Message) { + xxx_messageInfo_MemberEnterTips.Merge(dst, src) +} +func (m *MemberEnterTips) XXX_Size() int { + return xxx_messageInfo_MemberEnterTips.Size(m) +} +func (m *MemberEnterTips) XXX_DiscardUnknown() { + xxx_messageInfo_MemberEnterTips.DiscardUnknown(m) +} + +var xxx_messageInfo_MemberEnterTips proto.InternalMessageInfo + +func (m *MemberEnterTips) GetGroup() *GroupInfo { if m != nil { - return m.Email + return m.Group } - return "" + return nil } -func (m *UserInfoTip) GetEx() string { +func (m *MemberEnterTips) GetMember() *GroupMemberFullInfo { if m != nil { - return m.Ex + return m.Member } - return "" + return nil +} + +func (m *MemberEnterTips) GetOperationTime() uint64 { + if m != nil { + return m.OperationTime + } + return 0 +} + +// Actively leave the group +type MemberLeaveTips struct { + Group *GroupInfo `protobuf:"bytes,1,opt,name=Group" json:"Group,omitempty"` + Member *GroupMemberFullInfo `protobuf:"bytes,2,opt,name=Member" json:"Member,omitempty"` + OperationTime uint64 `protobuf:"varint,3,opt,name=OperationTime" json:"OperationTime,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *MemberLeaveTips) Reset() { *m = MemberLeaveTips{} } +func (m *MemberLeaveTips) String() string { return proto.CompactTextString(m) } +func (*MemberLeaveTips) ProtoMessage() {} +func (*MemberLeaveTips) Descriptor() ([]byte, []int) { + return fileDescriptor_ws_e632726fa8a2c9ae, []int{16} +} +func (m *MemberLeaveTips) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_MemberLeaveTips.Unmarshal(m, b) +} +func (m *MemberLeaveTips) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_MemberLeaveTips.Marshal(b, m, deterministic) +} +func (dst *MemberLeaveTips) XXX_Merge(src proto.Message) { + xxx_messageInfo_MemberLeaveTips.Merge(dst, src) +} +func (m *MemberLeaveTips) XXX_Size() int { + return xxx_messageInfo_MemberLeaveTips.Size(m) +} +func (m *MemberLeaveTips) XXX_DiscardUnknown() { + xxx_messageInfo_MemberLeaveTips.DiscardUnknown(m) +} + +var xxx_messageInfo_MemberLeaveTips proto.InternalMessageInfo + +func (m *MemberLeaveTips) GetGroup() *GroupInfo { + if m != nil { + return m.Group + } + return nil +} + +func (m *MemberLeaveTips) GetMember() *GroupMemberFullInfo { + if m != nil { + return m.Member + } + return nil +} + +func (m *MemberLeaveTips) GetOperationTime() uint64 { + if m != nil { + return m.OperationTime + } + return 0 +} + +type MemberInvitedTips struct { + Group *GroupInfo `protobuf:"bytes,1,opt,name=Group" json:"Group,omitempty"` + OpUser *GroupMemberFullInfo `protobuf:"bytes,2,opt,name=OpUser" json:"OpUser,omitempty"` + Member *GroupMemberFullInfo `protobuf:"bytes,3,opt,name=Member" json:"Member,omitempty"` + OperationTime uint64 `protobuf:"varint,4,opt,name=OperationTime" json:"OperationTime,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +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_e632726fa8a2c9ae, []int{17} +} +func (m *MemberInvitedTips) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_MemberInvitedTips.Unmarshal(m, b) +} +func (m *MemberInvitedTips) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_MemberInvitedTips.Marshal(b, m, deterministic) +} +func (dst *MemberInvitedTips) XXX_Merge(src proto.Message) { + xxx_messageInfo_MemberInvitedTips.Merge(dst, src) +} +func (m *MemberInvitedTips) XXX_Size() int { + return xxx_messageInfo_MemberInvitedTips.Size(m) +} +func (m *MemberInvitedTips) XXX_DiscardUnknown() { + xxx_messageInfo_MemberInvitedTips.DiscardUnknown(m) +} + +var xxx_messageInfo_MemberInvitedTips proto.InternalMessageInfo + +func (m *MemberInvitedTips) GetGroup() *GroupInfo { + if m != nil { + return m.Group + } + return nil +} + +func (m *MemberInvitedTips) GetOpUser() *GroupMemberFullInfo { + if m != nil { + return m.OpUser + } + return nil +} + +func (m *MemberInvitedTips) GetMember() *GroupMemberFullInfo { + if m != nil { + return m.Member + } + return nil +} + +func (m *MemberInvitedTips) GetOperationTime() uint64 { + if m != nil { + return m.OperationTime + } + return 0 +} + +type MemberKickedTips struct { + Group *GroupInfo `protobuf:"bytes,1,opt,name=Group" json:"Group,omitempty"` + OpUser *GroupMemberFullInfo `protobuf:"bytes,2,opt,name=OpUser" json:"OpUser,omitempty"` + Member *GroupMemberFullInfo `protobuf:"bytes,3,opt,name=Member" json:"Member,omitempty"` + OperationTime uint64 `protobuf:"varint,4,opt,name=OperationTime" json:"OperationTime,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +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_e632726fa8a2c9ae, []int{18} +} +func (m *MemberKickedTips) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_MemberKickedTips.Unmarshal(m, b) +} +func (m *MemberKickedTips) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_MemberKickedTips.Marshal(b, m, deterministic) +} +func (dst *MemberKickedTips) XXX_Merge(src proto.Message) { + xxx_messageInfo_MemberKickedTips.Merge(dst, src) +} +func (m *MemberKickedTips) XXX_Size() int { + return xxx_messageInfo_MemberKickedTips.Size(m) +} +func (m *MemberKickedTips) XXX_DiscardUnknown() { + xxx_messageInfo_MemberKickedTips.DiscardUnknown(m) +} + +var xxx_messageInfo_MemberKickedTips proto.InternalMessageInfo + +func (m *MemberKickedTips) GetGroup() *GroupInfo { + if m != nil { + return m.Group + } + return nil +} + +func (m *MemberKickedTips) GetOpUser() *GroupMemberFullInfo { + if m != nil { + return m.OpUser + } + return nil +} + +func (m *MemberKickedTips) GetMember() *GroupMemberFullInfo { + if m != nil { + return m.Member + } + return nil +} + +func (m *MemberKickedTips) GetOperationTime() uint64 { + if m != nil { + return m.OperationTime + } + return 0 +} + +type GroupMemberChangeInfo struct { + ChangeType int32 `protobuf:"varint,1,opt,name=ChangeType" json:"ChangeType,omitempty"` + OpUser *GroupMemberFullInfo `protobuf:"bytes,2,opt,name=OpUser" json:"OpUser,omitempty"` + Member *GroupMemberFullInfo `protobuf:"bytes,3,opt,name=Member" json:"Member,omitempty"` + MuteTime uint64 `protobuf:"varint,4,opt,name=MuteTime" json:"MuteTime,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *GroupMemberChangeInfo) Reset() { *m = GroupMemberChangeInfo{} } +func (m *GroupMemberChangeInfo) String() string { return proto.CompactTextString(m) } +func (*GroupMemberChangeInfo) ProtoMessage() {} +func (*GroupMemberChangeInfo) Descriptor() ([]byte, []int) { + return fileDescriptor_ws_e632726fa8a2c9ae, []int{19} +} +func (m *GroupMemberChangeInfo) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GroupMemberChangeInfo.Unmarshal(m, b) +} +func (m *GroupMemberChangeInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GroupMemberChangeInfo.Marshal(b, m, deterministic) +} +func (dst *GroupMemberChangeInfo) XXX_Merge(src proto.Message) { + xxx_messageInfo_GroupMemberChangeInfo.Merge(dst, src) +} +func (m *GroupMemberChangeInfo) XXX_Size() int { + return xxx_messageInfo_GroupMemberChangeInfo.Size(m) +} +func (m *GroupMemberChangeInfo) XXX_DiscardUnknown() { + xxx_messageInfo_GroupMemberChangeInfo.DiscardUnknown(m) +} + +var xxx_messageInfo_GroupMemberChangeInfo proto.InternalMessageInfo + +func (m *GroupMemberChangeInfo) GetChangeType() int32 { + if m != nil { + return m.ChangeType + } + return 0 +} + +func (m *GroupMemberChangeInfo) GetOpUser() *GroupMemberFullInfo { + if m != nil { + return m.OpUser + } + return nil +} + +func (m *GroupMemberChangeInfo) GetMember() *GroupMemberFullInfo { + if m != nil { + return m.Member + } + return nil +} + +func (m *GroupMemberChangeInfo) GetMuteTime() uint64 { + if m != nil { + return m.MuteTime + } + return 0 +} + +type MemberInfoChangedTips struct { + Group *GroupInfo `protobuf:"bytes,1,opt,name=Group" json:"Group,omitempty"` + MemberChanged *GroupMemberChangeInfo `protobuf:"bytes,2,opt,name=MemberChanged" json:"MemberChanged,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *MemberInfoChangedTips) Reset() { *m = MemberInfoChangedTips{} } +func (m *MemberInfoChangedTips) String() string { return proto.CompactTextString(m) } +func (*MemberInfoChangedTips) ProtoMessage() {} +func (*MemberInfoChangedTips) Descriptor() ([]byte, []int) { + return fileDescriptor_ws_e632726fa8a2c9ae, []int{20} +} +func (m *MemberInfoChangedTips) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_MemberInfoChangedTips.Unmarshal(m, b) +} +func (m *MemberInfoChangedTips) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_MemberInfoChangedTips.Marshal(b, m, deterministic) +} +func (dst *MemberInfoChangedTips) XXX_Merge(src proto.Message) { + xxx_messageInfo_MemberInfoChangedTips.Merge(dst, src) +} +func (m *MemberInfoChangedTips) XXX_Size() int { + return xxx_messageInfo_MemberInfoChangedTips.Size(m) +} +func (m *MemberInfoChangedTips) XXX_DiscardUnknown() { + xxx_messageInfo_MemberInfoChangedTips.DiscardUnknown(m) +} + +var xxx_messageInfo_MemberInfoChangedTips proto.InternalMessageInfo + +func (m *MemberInfoChangedTips) GetGroup() *GroupInfo { + if m != nil { + return m.Group + } + return nil +} + +func (m *MemberInfoChangedTips) GetMemberChanged() *GroupMemberChangeInfo { + if m != nil { + return m.MemberChanged + } + return nil +} + +type GroupCreatedTips struct { + Group *GroupInfo `protobuf:"bytes,1,opt,name=Group" json:"Group,omitempty"` + Creator *GroupMemberFullInfo `protobuf:"bytes,2,opt,name=Creator" json:"Creator,omitempty"` + MemberList []*GroupMemberFullInfo `protobuf:"bytes,3,rep,name=MemberList" json:"MemberList,omitempty"` + OperationTime uint64 `protobuf:"varint,4,opt,name=OperationTime" json:"OperationTime,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +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_e632726fa8a2c9ae, []int{21} +} +func (m *GroupCreatedTips) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GroupCreatedTips.Unmarshal(m, b) +} +func (m *GroupCreatedTips) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GroupCreatedTips.Marshal(b, m, deterministic) +} +func (dst *GroupCreatedTips) XXX_Merge(src proto.Message) { + xxx_messageInfo_GroupCreatedTips.Merge(dst, src) +} +func (m *GroupCreatedTips) XXX_Size() int { + return xxx_messageInfo_GroupCreatedTips.Size(m) +} +func (m *GroupCreatedTips) XXX_DiscardUnknown() { + xxx_messageInfo_GroupCreatedTips.DiscardUnknown(m) +} + +var xxx_messageInfo_GroupCreatedTips proto.InternalMessageInfo + +func (m *GroupCreatedTips) GetGroup() *GroupInfo { + if m != nil { + return m.Group + } + return nil +} + +func (m *GroupCreatedTips) GetCreator() *GroupMemberFullInfo { + if m != nil { + return m.Creator + } + return nil +} + +func (m *GroupCreatedTips) GetMemberList() []*GroupMemberFullInfo { + if m != nil { + return m.MemberList + } + return nil +} + +func (m *GroupCreatedTips) GetOperationTime() uint64 { + if m != nil { + return m.OperationTime + } + return 0 +} + +type GroupInfoChangedTips struct { + ChangedType int32 `protobuf:"varint,1,opt,name=ChangedType" json:"ChangedType,omitempty"` + Group *GroupInfo `protobuf:"bytes,2,opt,name=Group" json:"Group,omitempty"` + OpUser *GroupMemberFullInfo `protobuf:"bytes,3,opt,name=OpUser" json:"OpUser,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *GroupInfoChangedTips) Reset() { *m = GroupInfoChangedTips{} } +func (m *GroupInfoChangedTips) String() string { return proto.CompactTextString(m) } +func (*GroupInfoChangedTips) ProtoMessage() {} +func (*GroupInfoChangedTips) Descriptor() ([]byte, []int) { + return fileDescriptor_ws_e632726fa8a2c9ae, []int{22} +} +func (m *GroupInfoChangedTips) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GroupInfoChangedTips.Unmarshal(m, b) +} +func (m *GroupInfoChangedTips) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GroupInfoChangedTips.Marshal(b, m, deterministic) +} +func (dst *GroupInfoChangedTips) XXX_Merge(src proto.Message) { + xxx_messageInfo_GroupInfoChangedTips.Merge(dst, src) +} +func (m *GroupInfoChangedTips) XXX_Size() int { + return xxx_messageInfo_GroupInfoChangedTips.Size(m) +} +func (m *GroupInfoChangedTips) XXX_DiscardUnknown() { + xxx_messageInfo_GroupInfoChangedTips.DiscardUnknown(m) +} + +var xxx_messageInfo_GroupInfoChangedTips proto.InternalMessageInfo + +func (m *GroupInfoChangedTips) GetChangedType() int32 { + if m != nil { + return m.ChangedType + } + return 0 +} + +func (m *GroupInfoChangedTips) GetGroup() *GroupInfo { + if m != nil { + return m.Group + } + return nil +} + +func (m *GroupInfoChangedTips) GetOpUser() *GroupMemberFullInfo { + if m != nil { + return m.OpUser + } + return nil +} + +type ReceiveJoinApplicationTips struct { + Group *GroupInfo `protobuf:"bytes,1,opt,name=Group" json:"Group,omitempty"` + Member *GroupMemberFullInfo `protobuf:"bytes,2,opt,name=Member" json:"Member,omitempty"` + Reason string `protobuf:"bytes,3,opt,name=Reason" json:"Reason,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *ReceiveJoinApplicationTips) Reset() { *m = ReceiveJoinApplicationTips{} } +func (m *ReceiveJoinApplicationTips) String() string { return proto.CompactTextString(m) } +func (*ReceiveJoinApplicationTips) ProtoMessage() {} +func (*ReceiveJoinApplicationTips) Descriptor() ([]byte, []int) { + return fileDescriptor_ws_e632726fa8a2c9ae, []int{23} +} +func (m *ReceiveJoinApplicationTips) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_ReceiveJoinApplicationTips.Unmarshal(m, b) +} +func (m *ReceiveJoinApplicationTips) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_ReceiveJoinApplicationTips.Marshal(b, m, deterministic) +} +func (dst *ReceiveJoinApplicationTips) XXX_Merge(src proto.Message) { + xxx_messageInfo_ReceiveJoinApplicationTips.Merge(dst, src) +} +func (m *ReceiveJoinApplicationTips) XXX_Size() int { + return xxx_messageInfo_ReceiveJoinApplicationTips.Size(m) +} +func (m *ReceiveJoinApplicationTips) XXX_DiscardUnknown() { + xxx_messageInfo_ReceiveJoinApplicationTips.DiscardUnknown(m) +} + +var xxx_messageInfo_ReceiveJoinApplicationTips proto.InternalMessageInfo + +func (m *ReceiveJoinApplicationTips) GetGroup() *GroupInfo { + if m != nil { + return m.Group + } + return nil +} + +func (m *ReceiveJoinApplicationTips) GetMember() *GroupMemberFullInfo { + if m != nil { + return m.Member + } + return nil +} + +func (m *ReceiveJoinApplicationTips) GetReason() string { + if m != nil { + return m.Reason + } + return "" +} + +type ApplicationProcessedTips struct { + Group *GroupInfo `protobuf:"bytes,1,opt,name=Group" json:"Group,omitempty"` + OpUser *GroupMemberFullInfo `protobuf:"bytes,2,opt,name=OpUser" json:"OpUser,omitempty"` + Result int32 `protobuf:"varint,3,opt,name=Result" json:"Result,omitempty"` + Reason string `protobuf:"bytes,4,opt,name=Reason" json:"Reason,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *ApplicationProcessedTips) Reset() { *m = ApplicationProcessedTips{} } +func (m *ApplicationProcessedTips) String() string { return proto.CompactTextString(m) } +func (*ApplicationProcessedTips) ProtoMessage() {} +func (*ApplicationProcessedTips) Descriptor() ([]byte, []int) { + return fileDescriptor_ws_e632726fa8a2c9ae, []int{24} +} +func (m *ApplicationProcessedTips) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_ApplicationProcessedTips.Unmarshal(m, b) +} +func (m *ApplicationProcessedTips) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_ApplicationProcessedTips.Marshal(b, m, deterministic) +} +func (dst *ApplicationProcessedTips) XXX_Merge(src proto.Message) { + xxx_messageInfo_ApplicationProcessedTips.Merge(dst, src) +} +func (m *ApplicationProcessedTips) XXX_Size() int { + return xxx_messageInfo_ApplicationProcessedTips.Size(m) +} +func (m *ApplicationProcessedTips) XXX_DiscardUnknown() { + xxx_messageInfo_ApplicationProcessedTips.DiscardUnknown(m) +} + +var xxx_messageInfo_ApplicationProcessedTips proto.InternalMessageInfo + +func (m *ApplicationProcessedTips) GetGroup() *GroupInfo { + if m != nil { + return m.Group + } + return nil +} + +func (m *ApplicationProcessedTips) GetOpUser() *GroupMemberFullInfo { + if m != nil { + return m.OpUser + } + return nil +} + +func (m *ApplicationProcessedTips) GetResult() int32 { + if m != nil { + return m.Result + } + return 0 +} + +func (m *ApplicationProcessedTips) GetReason() string { + if m != nil { + return m.Reason + } + return "" +} + +// ////////////////////friend///////////////////// +type FriendInfo struct { + OwnerUserID string `protobuf:"bytes,1,opt,name=OwnerUserID" json:"OwnerUserID,omitempty"` + Remark string `protobuf:"bytes,2,opt,name=Remark" json:"Remark,omitempty"` + CreateTime uint64 `protobuf:"varint,3,opt,name=CreateTime" json:"CreateTime,omitempty"` + FriendUserInfo *UserInfo `protobuf:"bytes,4,opt,name=FriendUserInfo" json:"FriendUserInfo,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +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_e632726fa8a2c9ae, []int{25} +} +func (m *FriendInfo) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_FriendInfo.Unmarshal(m, b) +} +func (m *FriendInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_FriendInfo.Marshal(b, m, deterministic) +} +func (dst *FriendInfo) XXX_Merge(src proto.Message) { + xxx_messageInfo_FriendInfo.Merge(dst, src) +} +func (m *FriendInfo) XXX_Size() int { + return xxx_messageInfo_FriendInfo.Size(m) +} +func (m *FriendInfo) XXX_DiscardUnknown() { + xxx_messageInfo_FriendInfo.DiscardUnknown(m) +} + +var xxx_messageInfo_FriendInfo proto.InternalMessageInfo + +func (m *FriendInfo) GetOwnerUserID() string { + if m != nil { + return m.OwnerUserID + } + return "" +} + +func (m *FriendInfo) GetRemark() string { + if m != nil { + return m.Remark + } + return "" +} + +func (m *FriendInfo) GetCreateTime() uint64 { + if m != nil { + return m.CreateTime + } + return 0 +} + +func (m *FriendInfo) GetFriendUserInfo() *UserInfo { + if m != nil { + return m.FriendUserInfo + } + return nil +} + +type FriendApplication struct { + AddTime uint64 `protobuf:"varint,4,opt,name=AddTime" json:"AddTime,omitempty"` + AddSource string `protobuf:"bytes,5,opt,name=AddSource" json:"AddSource,omitempty"` + AddWording string `protobuf:"bytes,6,opt,name=AddWording" json:"AddWording,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +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_e632726fa8a2c9ae, []int{26} +} +func (m *FriendApplication) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_FriendApplication.Unmarshal(m, b) +} +func (m *FriendApplication) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_FriendApplication.Marshal(b, m, deterministic) +} +func (dst *FriendApplication) XXX_Merge(src proto.Message) { + xxx_messageInfo_FriendApplication.Merge(dst, src) +} +func (m *FriendApplication) XXX_Size() int { + return xxx_messageInfo_FriendApplication.Size(m) +} +func (m *FriendApplication) XXX_DiscardUnknown() { + xxx_messageInfo_FriendApplication.DiscardUnknown(m) +} + +var xxx_messageInfo_FriendApplication proto.InternalMessageInfo + +func (m *FriendApplication) GetAddTime() uint64 { + if m != nil { + return m.AddTime + } + return 0 +} + +func (m *FriendApplication) GetAddSource() string { + if m != nil { + return m.AddSource + } + return "" +} + +func (m *FriendApplication) GetAddWording() string { + if m != nil { + return m.AddWording + } + return "" +} + +// user1 add user2 +type FriendApplicationListAddedTips struct { + OpUser *PublicUserInfo `protobuf:"bytes,1,opt,name=OpUser" json:"OpUser,omitempty"` + Application *FriendApplication `protobuf:"bytes,2,opt,name=Application" json:"Application,omitempty"` + OpedUser *PublicUserInfo `protobuf:"bytes,3,opt,name=OpedUser" json:"OpedUser,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *FriendApplicationListAddedTips) Reset() { *m = FriendApplicationListAddedTips{} } +func (m *FriendApplicationListAddedTips) String() string { return proto.CompactTextString(m) } +func (*FriendApplicationListAddedTips) ProtoMessage() {} +func (*FriendApplicationListAddedTips) Descriptor() ([]byte, []int) { + return fileDescriptor_ws_e632726fa8a2c9ae, []int{27} +} +func (m *FriendApplicationListAddedTips) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_FriendApplicationListAddedTips.Unmarshal(m, b) +} +func (m *FriendApplicationListAddedTips) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_FriendApplicationListAddedTips.Marshal(b, m, deterministic) +} +func (dst *FriendApplicationListAddedTips) XXX_Merge(src proto.Message) { + xxx_messageInfo_FriendApplicationListAddedTips.Merge(dst, src) +} +func (m *FriendApplicationListAddedTips) XXX_Size() int { + return xxx_messageInfo_FriendApplicationListAddedTips.Size(m) +} +func (m *FriendApplicationListAddedTips) XXX_DiscardUnknown() { + xxx_messageInfo_FriendApplicationListAddedTips.DiscardUnknown(m) +} + +var xxx_messageInfo_FriendApplicationListAddedTips proto.InternalMessageInfo + +func (m *FriendApplicationListAddedTips) GetOpUser() *PublicUserInfo { + if m != nil { + return m.OpUser + } + return nil +} + +func (m *FriendApplicationListAddedTips) GetApplication() *FriendApplication { + if m != nil { + return m.Application + } + return nil +} + +func (m *FriendApplicationListAddedTips) GetOpedUser() *PublicUserInfo { + if m != nil { + return m.OpedUser + } + return nil +} + +// user2 accept +type FriendApplicationListAcceptTips struct { + OpUser *PublicUserInfo `protobuf:"bytes,1,opt,name=OpUser" json:"OpUser,omitempty"` + OpedUser *PublicUserInfo `protobuf:"bytes,2,opt,name=OpedUser" json:"OpedUser,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *FriendApplicationListAcceptTips) Reset() { *m = FriendApplicationListAcceptTips{} } +func (m *FriendApplicationListAcceptTips) String() string { return proto.CompactTextString(m) } +func (*FriendApplicationListAcceptTips) ProtoMessage() {} +func (*FriendApplicationListAcceptTips) Descriptor() ([]byte, []int) { + return fileDescriptor_ws_e632726fa8a2c9ae, []int{28} +} +func (m *FriendApplicationListAcceptTips) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_FriendApplicationListAcceptTips.Unmarshal(m, b) +} +func (m *FriendApplicationListAcceptTips) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_FriendApplicationListAcceptTips.Marshal(b, m, deterministic) +} +func (dst *FriendApplicationListAcceptTips) XXX_Merge(src proto.Message) { + xxx_messageInfo_FriendApplicationListAcceptTips.Merge(dst, src) +} +func (m *FriendApplicationListAcceptTips) XXX_Size() int { + return xxx_messageInfo_FriendApplicationListAcceptTips.Size(m) +} +func (m *FriendApplicationListAcceptTips) XXX_DiscardUnknown() { + xxx_messageInfo_FriendApplicationListAcceptTips.DiscardUnknown(m) +} + +var xxx_messageInfo_FriendApplicationListAcceptTips proto.InternalMessageInfo + +func (m *FriendApplicationListAcceptTips) GetOpUser() *PublicUserInfo { + if m != nil { + return m.OpUser + } + return nil +} + +func (m *FriendApplicationListAcceptTips) GetOpedUser() *PublicUserInfo { + if m != nil { + return m.OpedUser + } + return nil +} + +// user2 reject +type FriendApplicationListRejectTips struct { + OpUser *PublicUserInfo `protobuf:"bytes,1,opt,name=OpUser" json:"OpUser,omitempty"` + OpedUser *PublicUserInfo `protobuf:"bytes,2,opt,name=OpedUser" json:"OpedUser,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *FriendApplicationListRejectTips) Reset() { *m = FriendApplicationListRejectTips{} } +func (m *FriendApplicationListRejectTips) String() string { return proto.CompactTextString(m) } +func (*FriendApplicationListRejectTips) ProtoMessage() {} +func (*FriendApplicationListRejectTips) Descriptor() ([]byte, []int) { + return fileDescriptor_ws_e632726fa8a2c9ae, []int{29} +} +func (m *FriendApplicationListRejectTips) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_FriendApplicationListRejectTips.Unmarshal(m, b) +} +func (m *FriendApplicationListRejectTips) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_FriendApplicationListRejectTips.Marshal(b, m, deterministic) +} +func (dst *FriendApplicationListRejectTips) XXX_Merge(src proto.Message) { + xxx_messageInfo_FriendApplicationListRejectTips.Merge(dst, src) +} +func (m *FriendApplicationListRejectTips) XXX_Size() int { + return xxx_messageInfo_FriendApplicationListRejectTips.Size(m) +} +func (m *FriendApplicationListRejectTips) XXX_DiscardUnknown() { + xxx_messageInfo_FriendApplicationListRejectTips.DiscardUnknown(m) +} + +var xxx_messageInfo_FriendApplicationListRejectTips proto.InternalMessageInfo + +func (m *FriendApplicationListRejectTips) GetOpUser() *PublicUserInfo { + if m != nil { + return m.OpUser + } + return nil +} + +func (m *FriendApplicationListRejectTips) GetOpedUser() *PublicUserInfo { + if m != nil { + return m.OpedUser + } + return nil +} + +type FriendListAddedTips struct { + Friend *FriendInfo `protobuf:"bytes,1,opt,name=Friend" json:"Friend,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *FriendListAddedTips) Reset() { *m = FriendListAddedTips{} } +func (m *FriendListAddedTips) String() string { return proto.CompactTextString(m) } +func (*FriendListAddedTips) ProtoMessage() {} +func (*FriendListAddedTips) Descriptor() ([]byte, []int) { + return fileDescriptor_ws_e632726fa8a2c9ae, []int{30} +} +func (m *FriendListAddedTips) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_FriendListAddedTips.Unmarshal(m, b) +} +func (m *FriendListAddedTips) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_FriendListAddedTips.Marshal(b, m, deterministic) +} +func (dst *FriendListAddedTips) XXX_Merge(src proto.Message) { + xxx_messageInfo_FriendListAddedTips.Merge(dst, src) +} +func (m *FriendListAddedTips) XXX_Size() int { + return xxx_messageInfo_FriendListAddedTips.Size(m) +} +func (m *FriendListAddedTips) XXX_DiscardUnknown() { + xxx_messageInfo_FriendListAddedTips.DiscardUnknown(m) +} + +var xxx_messageInfo_FriendListAddedTips proto.InternalMessageInfo + +func (m *FriendListAddedTips) GetFriend() *FriendInfo { + if m != nil { + return m.Friend + } + return nil +} + +type FriendListDeletedTips struct { + Friend *FriendInfo `protobuf:"bytes,1,opt,name=Friend" json:"Friend,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *FriendListDeletedTips) Reset() { *m = FriendListDeletedTips{} } +func (m *FriendListDeletedTips) String() string { return proto.CompactTextString(m) } +func (*FriendListDeletedTips) ProtoMessage() {} +func (*FriendListDeletedTips) Descriptor() ([]byte, []int) { + return fileDescriptor_ws_e632726fa8a2c9ae, []int{31} +} +func (m *FriendListDeletedTips) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_FriendListDeletedTips.Unmarshal(m, b) +} +func (m *FriendListDeletedTips) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_FriendListDeletedTips.Marshal(b, m, deterministic) +} +func (dst *FriendListDeletedTips) XXX_Merge(src proto.Message) { + xxx_messageInfo_FriendListDeletedTips.Merge(dst, src) +} +func (m *FriendListDeletedTips) XXX_Size() int { + return xxx_messageInfo_FriendListDeletedTips.Size(m) +} +func (m *FriendListDeletedTips) XXX_DiscardUnknown() { + xxx_messageInfo_FriendListDeletedTips.DiscardUnknown(m) +} + +var xxx_messageInfo_FriendListDeletedTips proto.InternalMessageInfo + +func (m *FriendListDeletedTips) GetFriend() *FriendInfo { + if m != nil { + return m.Friend + } + return nil +} + +type BlackListAddTips struct { + Friend *FriendInfo `protobuf:"bytes,1,opt,name=Friend" json:"Friend,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *BlackListAddTips) Reset() { *m = BlackListAddTips{} } +func (m *BlackListAddTips) String() string { return proto.CompactTextString(m) } +func (*BlackListAddTips) ProtoMessage() {} +func (*BlackListAddTips) Descriptor() ([]byte, []int) { + return fileDescriptor_ws_e632726fa8a2c9ae, []int{32} +} +func (m *BlackListAddTips) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_BlackListAddTips.Unmarshal(m, b) +} +func (m *BlackListAddTips) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_BlackListAddTips.Marshal(b, m, deterministic) +} +func (dst *BlackListAddTips) XXX_Merge(src proto.Message) { + xxx_messageInfo_BlackListAddTips.Merge(dst, src) +} +func (m *BlackListAddTips) XXX_Size() int { + return xxx_messageInfo_BlackListAddTips.Size(m) +} +func (m *BlackListAddTips) XXX_DiscardUnknown() { + xxx_messageInfo_BlackListAddTips.DiscardUnknown(m) +} + +var xxx_messageInfo_BlackListAddTips proto.InternalMessageInfo + +func (m *BlackListAddTips) GetFriend() *FriendInfo { + if m != nil { + return m.Friend + } + return nil +} + +type BlackListDeletedTips struct { + Friend *FriendInfo `protobuf:"bytes,1,opt,name=Friend" json:"Friend,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *BlackListDeletedTips) Reset() { *m = BlackListDeletedTips{} } +func (m *BlackListDeletedTips) String() string { return proto.CompactTextString(m) } +func (*BlackListDeletedTips) ProtoMessage() {} +func (*BlackListDeletedTips) Descriptor() ([]byte, []int) { + return fileDescriptor_ws_e632726fa8a2c9ae, []int{33} +} +func (m *BlackListDeletedTips) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_BlackListDeletedTips.Unmarshal(m, b) +} +func (m *BlackListDeletedTips) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_BlackListDeletedTips.Marshal(b, m, deterministic) +} +func (dst *BlackListDeletedTips) XXX_Merge(src proto.Message) { + xxx_messageInfo_BlackListDeletedTips.Merge(dst, src) +} +func (m *BlackListDeletedTips) XXX_Size() int { + return xxx_messageInfo_BlackListDeletedTips.Size(m) +} +func (m *BlackListDeletedTips) XXX_DiscardUnknown() { + xxx_messageInfo_BlackListDeletedTips.DiscardUnknown(m) +} + +var xxx_messageInfo_BlackListDeletedTips proto.InternalMessageInfo + +func (m *BlackListDeletedTips) GetFriend() *FriendInfo { + if m != nil { + return m.Friend + } + return nil +} + +type FriendInfoChangedTips struct { + Friend *FriendInfo `protobuf:"bytes,1,opt,name=Friend" json:"Friend,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +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_e632726fa8a2c9ae, []int{34} +} +func (m *FriendInfoChangedTips) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_FriendInfoChangedTips.Unmarshal(m, b) +} +func (m *FriendInfoChangedTips) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_FriendInfoChangedTips.Marshal(b, m, deterministic) +} +func (dst *FriendInfoChangedTips) XXX_Merge(src proto.Message) { + xxx_messageInfo_FriendInfoChangedTips.Merge(dst, src) +} +func (m *FriendInfoChangedTips) XXX_Size() int { + return xxx_messageInfo_FriendInfoChangedTips.Size(m) +} +func (m *FriendInfoChangedTips) XXX_DiscardUnknown() { + xxx_messageInfo_FriendInfoChangedTips.DiscardUnknown(m) +} + +var xxx_messageInfo_FriendInfoChangedTips proto.InternalMessageInfo + +func (m *FriendInfoChangedTips) GetFriend() *FriendInfo { + if m != nil { + return m.Friend + } + return nil +} + +// ////////////////////user///////////////////// +type SelfInfoUpdatedTips struct { + SelfUserInfo *UserInfo `protobuf:"bytes,1,opt,name=SelfUserInfo" json:"SelfUserInfo,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *SelfInfoUpdatedTips) Reset() { *m = SelfInfoUpdatedTips{} } +func (m *SelfInfoUpdatedTips) String() string { return proto.CompactTextString(m) } +func (*SelfInfoUpdatedTips) ProtoMessage() {} +func (*SelfInfoUpdatedTips) Descriptor() ([]byte, []int) { + return fileDescriptor_ws_e632726fa8a2c9ae, []int{35} +} +func (m *SelfInfoUpdatedTips) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_SelfInfoUpdatedTips.Unmarshal(m, b) +} +func (m *SelfInfoUpdatedTips) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_SelfInfoUpdatedTips.Marshal(b, m, deterministic) +} +func (dst *SelfInfoUpdatedTips) XXX_Merge(src proto.Message) { + xxx_messageInfo_SelfInfoUpdatedTips.Merge(dst, src) +} +func (m *SelfInfoUpdatedTips) XXX_Size() int { + return xxx_messageInfo_SelfInfoUpdatedTips.Size(m) +} +func (m *SelfInfoUpdatedTips) XXX_DiscardUnknown() { + xxx_messageInfo_SelfInfoUpdatedTips.DiscardUnknown(m) +} + +var xxx_messageInfo_SelfInfoUpdatedTips proto.InternalMessageInfo + +func (m *SelfInfoUpdatedTips) GetSelfUserInfo() *UserInfo { + if m != nil { + return m.SelfUserInfo + } + return nil } func init() { @@ -1080,82 +2216,140 @@ func init() { proto.RegisterType((*UserSendMsgResp)(nil), "open_im_sdk.UserSendMsgResp") proto.RegisterType((*MsgData)(nil), "open_im_sdk.MsgData") proto.RegisterType((*OfflinePushInfo)(nil), "open_im_sdk.OfflinePushInfo") - proto.RegisterType((*GroupInfoTip)(nil), "open_im_sdk.GroupInfoTip") - proto.RegisterType((*GroupMemberFullInfoTip)(nil), "open_im_sdk.GroupMemberFullInfoTip") - proto.RegisterType((*CreateGroupTip)(nil), "open_im_sdk.CreateGroupTip") - proto.RegisterType((*UserInfoTip)(nil), "open_im_sdk.UserInfoTip") -} - -func init() { proto.RegisterFile("sdk_ws/ws.proto", fileDescriptor_ws_0e67cfdf7b3776b1) } - -var fileDescriptor_ws_0e67cfdf7b3776b1 = []byte{ - // 1078 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x8c, 0x56, 0x5d, 0x4f, 0xe3, 0x46, - 0x14, 0x95, 0xed, 0x04, 0xc8, 0x0d, 0xb0, 0xab, 0x29, 0xa2, 0xee, 0xaa, 0xaa, 0x22, 0xb7, 0xaa, - 0xa2, 0x7d, 0x00, 0x89, 0x7d, 0xa9, 0xb6, 0xaa, 0xaa, 0x42, 0x02, 0xf2, 0x6a, 0x03, 0x68, 0x60, - 0x5f, 0xfa, 0x82, 0x8c, 0x33, 0x80, 0x85, 0x3f, 0x12, 0x8f, 0x03, 0xe1, 0x7f, 0xf4, 0xb5, 0xff, - 0xa1, 0xaf, 0xed, 0x4f, 0xe8, 0x43, 0xff, 0x51, 0xa5, 0xea, 0xde, 0x19, 0x9b, 0x99, 0x18, 0xb5, - 0x7d, 0x9b, 0x73, 0x72, 0xc7, 0x33, 0xf7, 0x9c, 0x73, 0x1d, 0xc3, 0x2b, 0x39, 0xbd, 0xbf, 0x7a, - 0x94, 0xfb, 0x8f, 0x72, 0x6f, 0x56, 0x16, 0x55, 0xc1, 0xfa, 0xc5, 0x4c, 0xe4, 0x57, 0x49, 0x76, - 0x25, 0xa7, 0xf7, 0xc1, 0x9f, 0x0e, 0xf8, 0xe7, 0x8b, 0x34, 0x9d, 0x08, 0x29, 0xa3, 0x5b, 0x71, - 0xf8, 0x74, 0x21, 0xe6, 0x1f, 0x13, 0x59, 0x71, 0x21, 0x67, 0x6c, 0x17, 0xd6, 0x26, 0xd1, 0xf2, - 0x42, 0xcc, 0x7d, 0x67, 0xe0, 0x0c, 0x3d, 0xae, 0x11, 0xf1, 0x49, 0x8e, 0xbc, 0xab, 0x79, 0x42, - 0xec, 0x47, 0xd8, 0xba, 0x48, 0xf2, 0xdb, 0x54, 0x7c, 0x92, 0xa2, 0x9c, 0xc8, 0x5b, 0xdf, 0x1b, - 0x78, 0xc3, 0xfe, 0xc1, 0x17, 0x7b, 0xc6, 0x89, 0x7b, 0x27, 0x51, 0x75, 0x27, 0xca, 0xe3, 0xa2, - 0xcc, 0xa2, 0x8a, 0xdb, 0xf5, 0xec, 0x07, 0xd8, 0x3c, 0x29, 0x8b, 0xc5, 0xac, 0xde, 0xdf, 0xf9, - 0xaf, 0xfd, 0x56, 0x79, 0xf0, 0x0e, 0x3e, 0x7f, 0xb9, 0x97, 0x39, 0xf3, 0x61, 0x5d, 0x2a, 0xe4, - 0x3b, 0x03, 0x6f, 0xe8, 0xf1, 0x1a, 0x06, 0x3b, 0xc0, 0x4e, 0x44, 0x35, 0x89, 0x96, 0x3f, 0xe5, - 0x53, 0xd5, 0x07, 0x17, 0xf3, 0x60, 0x0c, 0x9f, 0xb5, 0x58, 0xa5, 0x48, 0x66, 0x29, 0x92, 0x35, - 0x8a, 0x64, 0x96, 0x22, 0x0a, 0x05, 0x1f, 0x60, 0xd3, 0xbc, 0x2f, 0xdb, 0x06, 0x37, 0x1c, 0xd1, - 0xde, 0x1e, 0x77, 0xc3, 0x11, 0x7b, 0x0b, 0x1d, 0xba, 0x93, 0x4b, 0x8d, 0xee, 0x5a, 0x8d, 0x4e, - 0xe4, 0xad, 0xee, 0x92, 0x6a, 0x82, 0xbf, 0x5d, 0xe8, 0x35, 0x1c, 0x9e, 0x78, 0x21, 0xf2, 0x69, - 0xf3, 0x34, 0x8d, 0x90, 0xe7, 0x22, 0x7e, 0x08, 0x47, 0x74, 0x93, 0x1e, 0xd7, 0x08, 0x05, 0xc0, - 0xcd, 0x65, 0x91, 0xf9, 0xde, 0xc0, 0x19, 0x76, 0x79, 0x0d, 0xd9, 0x00, 0xfa, 0x47, 0x45, 0x5e, - 0x89, 0xbc, 0xba, 0x7c, 0x9a, 0x09, 0xbf, 0x43, 0xbf, 0x9a, 0x14, 0x56, 0x5c, 0x88, 0xf2, 0x81, - 0x44, 0x0e, 0x47, 0x7e, 0x97, 0x1e, 0x6c, 0x52, 0xf8, 0x74, 0xbd, 0xc1, 0x5f, 0xa3, 0x5f, 0x6b, - 0xc8, 0x5e, 0x83, 0x87, 0xb2, 0xac, 0x93, 0x2c, 0xb8, 0x64, 0x6f, 0x60, 0x03, 0xef, 0x7a, 0x99, - 0x64, 0xc2, 0xdf, 0x20, 0xba, 0xc1, 0xec, 0x2d, 0xbc, 0xc6, 0xb5, 0x28, 0xcf, 0xd3, 0xa8, 0xba, - 0x29, 0xca, 0x2c, 0x1c, 0xf9, 0x3d, 0xba, 0x50, 0x8b, 0x67, 0xdf, 0xc2, 0xb6, 0xe2, 0x4e, 0x93, - 0xf8, 0xfe, 0x34, 0xca, 0x84, 0x0f, 0x74, 0xf4, 0x0a, 0xcb, 0xbe, 0x81, 0x2d, 0xc5, 0x1c, 0x47, - 0xb1, 0xf8, 0xc4, 0x3f, 0xfa, 0x7d, 0x2a, 0xb3, 0x49, 0x52, 0x21, 0x4d, 0x44, 0x5e, 0xa9, 0x1e, - 0x37, 0x55, 0x8f, 0x06, 0x15, 0xfc, 0xe5, 0xc1, 0x36, 0x26, 0x0d, 0xf7, 0x4d, 0xe4, 0x2d, 0xa6, - 0xea, 0x10, 0xd6, 0xcf, 0x66, 0x55, 0x52, 0xe4, 0x92, 0x52, 0xd5, 0x3f, 0x18, 0x5a, 0x0e, 0xda, - 0xd5, 0x7b, 0xba, 0x74, 0x9c, 0x57, 0xe5, 0x13, 0xaf, 0x37, 0xbe, 0xd0, 0x86, 0xfb, 0xff, 0xda, - 0xf0, 0x5e, 0x6a, 0xe3, 0x2b, 0x00, 0x43, 0x3a, 0xe5, 0xa5, 0xc1, 0x28, 0x2b, 0xa5, 0x4c, 0x8a, - 0x9c, 0xcc, 0xee, 0x2a, 0xb3, 0x0d, 0xca, 0x0c, 0xca, 0xda, 0xbf, 0x06, 0x65, 0xbd, 0x1d, 0x94, - 0xe7, 0xf0, 0x6d, 0x58, 0xe1, 0xfb, 0x12, 0x7a, 0xc7, 0x45, 0x19, 0x0b, 0xca, 0x7a, 0x6f, 0xe0, - 0x0d, 0x7b, 0xfc, 0x99, 0x30, 0xc3, 0x03, 0x76, 0x78, 0x56, 0x4c, 0xe9, 0xb7, 0x4c, 0x79, 0xf3, - 0x1e, 0x36, 0x4d, 0x59, 0x31, 0x6e, 0xf7, 0xe2, 0x49, 0xcf, 0x04, 0x2e, 0xd9, 0x0e, 0x74, 0x1f, - 0xa2, 0x74, 0xa1, 0x64, 0xed, 0x72, 0x05, 0xde, 0xbb, 0xdf, 0x39, 0xc1, 0x1c, 0x5e, 0x59, 0x0e, - 0xc9, 0xd9, 0x6a, 0xd2, 0x9d, 0x76, 0xd2, 0x57, 0xae, 0xe4, 0xb6, 0xae, 0x84, 0xf9, 0x96, 0x75, - 0xbe, 0x3d, 0x95, 0xef, 0x1a, 0x07, 0xbf, 0x7a, 0xa4, 0xee, 0x28, 0xaa, 0x22, 0x14, 0x4b, 0x5a, - 0x13, 0x2c, 0x9b, 0x09, 0x2e, 0xad, 0x09, 0x56, 0x08, 0x4f, 0x96, 0x86, 0x75, 0x6a, 0x8a, 0x4d, - 0x0a, 0x85, 0xcc, 0xb4, 0x75, 0xca, 0xf9, 0x1a, 0xe2, 0xde, 0xd8, 0xb0, 0x4e, 0xdb, 0x1e, 0xdb, - 0x33, 0x2e, 0x8d, 0xce, 0xd5, 0x14, 0x9b, 0x14, 0x3e, 0x5d, 0x6f, 0x20, 0xeb, 0x7b, 0xbc, 0x86, - 0x56, 0xc7, 0x1b, 0x76, 0xc7, 0x68, 0x88, 0x14, 0x73, 0x1a, 0x62, 0x8f, 0xe3, 0x12, 0x67, 0x5c, - 0xae, 0xce, 0x38, 0xa8, 0x19, 0x97, 0x2f, 0xcc, 0xb8, 0xb4, 0x87, 0x43, 0x65, 0x60, 0x85, 0xc5, - 0xe1, 0x90, 0xd6, 0x70, 0xa8, 0xf9, 0xb5, 0x49, 0x52, 0xc1, 0xf0, 0x6e, 0x4b, 0xf5, 0x68, 0x50, - 0xc1, 0x04, 0x5e, 0x9d, 0xdd, 0xdc, 0xa4, 0x49, 0x2e, 0xce, 0x17, 0xf2, 0x2e, 0xcc, 0x6f, 0x0a, - 0xcc, 0xcf, 0x65, 0x52, 0xa5, 0x42, 0xbb, 0xa4, 0x00, 0x63, 0xd0, 0x19, 0x09, 0x19, 0x6b, 0x8b, - 0x68, 0x8d, 0xad, 0x8e, 0x97, 0x95, 0x9e, 0x4b, 0x5c, 0x06, 0xbf, 0xb8, 0xfa, 0x0f, 0x0d, 0x9f, - 0x74, 0x99, 0xcc, 0x50, 0x43, 0x85, 0x6b, 0xd3, 0x6b, 0x88, 0x23, 0x42, 0x4b, 0xe3, 0x0d, 0xf0, - 0x4c, 0xb0, 0x00, 0x36, 0x4f, 0x8b, 0x2a, 0xb9, 0x49, 0xe2, 0x08, 0xc3, 0xae, 0xcf, 0xb0, 0x38, - 0xac, 0x09, 0xf3, 0xaa, 0x2c, 0xa6, 0x8b, 0x98, 0x6a, 0x3a, 0xaa, 0xc6, 0xe4, 0xf0, 0x7c, 0x12, - 0xa3, 0x4c, 0xf5, 0x5b, 0xbc, 0x86, 0xf8, 0xcf, 0x34, 0x5e, 0x6a, 0xdb, 0xdd, 0xf1, 0x12, 0x2b, - 0xcf, 0x1e, 0x73, 0x51, 0x86, 0xa3, 0xda, 0x6d, 0x0d, 0xf1, 0x15, 0x73, 0x54, 0x8a, 0xa8, 0x12, - 0x8d, 0xdf, 0x1d, 0x6e, 0x30, 0xa8, 0xf2, 0x44, 0x64, 0xd7, 0xa2, 0x3c, 0x2a, 0x16, 0x79, 0x45, - 0xce, 0x6f, 0x71, 0x93, 0x0a, 0x7e, 0x73, 0x60, 0x97, 0x7a, 0x53, 0xe4, 0xf1, 0x22, 0x4d, 0x5b, - 0x02, 0x4d, 0x6d, 0x81, 0xa6, 0x38, 0x16, 0x38, 0xad, 0xe1, 0xb4, 0x1e, 0x0b, 0x85, 0xd0, 0x09, - 0x5e, 0xa4, 0xf5, 0x3c, 0xd0, 0x1a, 0x03, 0xf9, 0xa1, 0x48, 0x72, 0xba, 0x60, 0x87, 0x2e, 0xd8, - 0x60, 0xfc, 0xad, 0x09, 0x93, 0xd2, 0xa0, 0xc1, 0xa6, 0x3c, 0x6b, 0x96, 0x3c, 0xc1, 0x1f, 0x0e, - 0x6c, 0xab, 0x1e, 0xe9, 0x3e, 0x78, 0xd5, 0x7d, 0xe8, 0xd2, 0x9a, 0x2e, 0xda, 0xfa, 0x4a, 0x31, - 0x5c, 0xe7, 0xaa, 0x8e, 0x1d, 0xc0, 0x3a, 0x3d, 0xa2, 0x28, 0xa9, 0x85, 0xfe, 0x81, 0xdf, 0xfa, - 0xb7, 0xa8, 0x77, 0xd4, 0x85, 0xec, 0x08, 0x40, 0x89, 0x44, 0xaf, 0x4e, 0xf5, 0x3d, 0xf5, 0x75, - 0xfb, 0xa4, 0x96, 0x90, 0xdc, 0xd8, 0x16, 0xfc, 0xee, 0x40, 0xdf, 0x78, 0x7a, 0x23, 0x65, 0xf3, - 0xe6, 0x51, 0x08, 0xa5, 0x34, 0xe2, 0x47, 0x6b, 0xe4, 0xc2, 0xb8, 0x49, 0x1c, 0xad, 0x71, 0xff, - 0x09, 0x0d, 0x96, 0x7e, 0xcd, 0x68, 0x44, 0xdf, 0x85, 0xc5, 0x75, 0x92, 0xd6, 0xc2, 0x6a, 0x84, - 0x23, 0x74, 0x98, 0x94, 0xd5, 0x9d, 0x16, 0x55, 0x01, 0x64, 0xc7, 0x59, 0x94, 0xa4, 0x3a, 0x5f, - 0x0a, 0xe8, 0x1c, 0x6e, 0xd4, 0x39, 0x3c, 0xdc, 0xfd, 0x79, 0x67, 0x6f, 0x5f, 0x7d, 0xc2, 0x7e, - 0x6f, 0xb4, 0x7d, 0xbd, 0x46, 0x1f, 0xb3, 0xef, 0xfe, 0x09, 0x00, 0x00, 0xff, 0xff, 0x6f, 0xce, - 0xa8, 0xe0, 0xdf, 0x0a, 0x00, 0x00, + proto.RegisterType((*GroupInfo)(nil), "open_im_sdk.GroupInfo") + proto.RegisterType((*GroupMemberFullInfo)(nil), "open_im_sdk.GroupMemberFullInfo") + proto.RegisterType((*UserInfo)(nil), "open_im_sdk.UserInfo") + proto.RegisterType((*PublicUserInfo)(nil), "open_im_sdk.PublicUserInfo") + proto.RegisterType((*TipsComm)(nil), "open_im_sdk.TipsComm") + proto.RegisterType((*MemberEnterTips)(nil), "open_im_sdk.MemberEnterTips") + proto.RegisterType((*MemberLeaveTips)(nil), "open_im_sdk.MemberLeaveTips") + proto.RegisterType((*MemberInvitedTips)(nil), "open_im_sdk.MemberInvitedTips") + proto.RegisterType((*MemberKickedTips)(nil), "open_im_sdk.MemberKickedTips") + proto.RegisterType((*GroupMemberChangeInfo)(nil), "open_im_sdk.GroupMemberChangeInfo") + proto.RegisterType((*MemberInfoChangedTips)(nil), "open_im_sdk.MemberInfoChangedTips") + proto.RegisterType((*GroupCreatedTips)(nil), "open_im_sdk.GroupCreatedTips") + proto.RegisterType((*GroupInfoChangedTips)(nil), "open_im_sdk.GroupInfoChangedTips") + proto.RegisterType((*ReceiveJoinApplicationTips)(nil), "open_im_sdk.ReceiveJoinApplicationTips") + proto.RegisterType((*ApplicationProcessedTips)(nil), "open_im_sdk.ApplicationProcessedTips") + proto.RegisterType((*FriendInfo)(nil), "open_im_sdk.FriendInfo") + proto.RegisterType((*FriendApplication)(nil), "open_im_sdk.FriendApplication") + proto.RegisterType((*FriendApplicationListAddedTips)(nil), "open_im_sdk.FriendApplicationListAddedTips") + proto.RegisterType((*FriendApplicationListAcceptTips)(nil), "open_im_sdk.FriendApplicationListAcceptTips") + proto.RegisterType((*FriendApplicationListRejectTips)(nil), "open_im_sdk.FriendApplicationListRejectTips") + proto.RegisterType((*FriendListAddedTips)(nil), "open_im_sdk.FriendListAddedTips") + proto.RegisterType((*FriendListDeletedTips)(nil), "open_im_sdk.FriendListDeletedTips") + proto.RegisterType((*BlackListAddTips)(nil), "open_im_sdk.BlackListAddTips") + proto.RegisterType((*BlackListDeletedTips)(nil), "open_im_sdk.BlackListDeletedTips") + proto.RegisterType((*FriendInfoChangedTips)(nil), "open_im_sdk.FriendInfoChangedTips") + proto.RegisterType((*SelfInfoUpdatedTips)(nil), "open_im_sdk.SelfInfoUpdatedTips") +} + +func init() { proto.RegisterFile("sdk_ws/ws.proto", fileDescriptor_ws_e632726fa8a2c9ae) } + +var fileDescriptor_ws_e632726fa8a2c9ae = []byte{ + // 1649 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xdc, 0x58, 0xcd, 0x6e, 0x1b, 0x47, + 0x12, 0xc6, 0x70, 0x28, 0x8a, 0x2c, 0xea, 0xcf, 0xa3, 0x1f, 0x73, 0xb5, 0x0b, 0x2f, 0x31, 0x58, + 0x2c, 0x04, 0x63, 0x21, 0x63, 0xe5, 0x43, 0x1c, 0x07, 0x46, 0x2c, 0x89, 0x92, 0x4c, 0xc7, 0xb4, + 0x84, 0x91, 0x8c, 0x00, 0xb9, 0x18, 0xa3, 0x99, 0xa6, 0x34, 0xe1, 0xfc, 0x50, 0xd3, 0x43, 0x59, + 0x7a, 0x8a, 0xbc, 0x40, 0x82, 0xe4, 0x92, 0x4b, 0x8e, 0x39, 0xe4, 0x15, 0x02, 0xe4, 0x10, 0x24, + 0xd7, 0xe4, 0x9a, 0xd7, 0x08, 0x10, 0x54, 0x75, 0xcf, 0xb0, 0x9b, 0x54, 0x2c, 0x59, 0x4e, 0xec, + 0x20, 0xb7, 0xae, 0x8f, 0x55, 0xdd, 0x5f, 0xfd, 0x75, 0x17, 0x07, 0x66, 0xb9, 0xdf, 0x7b, 0xfe, + 0x82, 0xdf, 0x79, 0xc1, 0x57, 0xfb, 0x69, 0x92, 0x25, 0x56, 0x3d, 0xe9, 0xb3, 0xf8, 0x79, 0x10, + 0x3d, 0xe7, 0x7e, 0xcf, 0xfe, 0xce, 0x80, 0xc6, 0xde, 0x20, 0x0c, 0x3b, 0x8c, 0x73, 0xf7, 0x88, + 0x6d, 0x9c, 0xef, 0xb3, 0x93, 0x27, 0x01, 0xcf, 0x1c, 0xc6, 0xfb, 0xd6, 0x12, 0x54, 0x3a, 0xee, + 0xd9, 0x3e, 0x3b, 0x69, 0x18, 0x4d, 0x63, 0xc5, 0x74, 0xa4, 0x44, 0x78, 0x10, 0x23, 0x5e, 0x92, + 0x38, 0x49, 0xd6, 0xfb, 0x30, 0xbd, 0x1f, 0xc4, 0x47, 0x21, 0x7b, 0xc6, 0x59, 0xda, 0xe1, 0x47, + 0x0d, 0xb3, 0x69, 0xae, 0xd4, 0xd7, 0xfe, 0xb1, 0xaa, 0x9c, 0xb8, 0xba, 0xe3, 0x66, 0xc7, 0x2c, + 0xdd, 0x4e, 0xd2, 0xc8, 0xcd, 0x1c, 0x5d, 0xdf, 0x7a, 0x00, 0x53, 0x3b, 0x69, 0x32, 0xe8, 0xe7, + 0xf6, 0xe5, 0xcb, 0xec, 0x35, 0x75, 0xfb, 0x2e, 0xdc, 0xbc, 0xd8, 0x97, 0x13, 0xab, 0x01, 0x93, + 0x5c, 0x48, 0x0d, 0xa3, 0x69, 0xae, 0x98, 0x4e, 0x2e, 0xda, 0x0b, 0x60, 0xed, 0xb0, 0xac, 0xe3, + 0x9e, 0xad, 0xc7, 0xbe, 0xf0, 0xc3, 0x61, 0x27, 0xf6, 0x16, 0xcc, 0x8f, 0xa1, 0x22, 0x22, 0x91, + 0x16, 0x91, 0xa8, 0x88, 0x48, 0xa4, 0x45, 0x44, 0x48, 0xf6, 0x63, 0x98, 0x52, 0xf9, 0x5a, 0x33, + 0x50, 0x6a, 0xb7, 0xc8, 0xb6, 0xe6, 0x94, 0xda, 0x2d, 0xeb, 0x36, 0x94, 0x89, 0x53, 0x89, 0x1c, + 0x5d, 0xd2, 0x1c, 0xed, 0xf0, 0x23, 0xe9, 0x25, 0xe9, 0xd8, 0xbf, 0x96, 0xa0, 0x56, 0x60, 0x78, + 0xe2, 0x3e, 0x8b, 0xfd, 0x62, 0x37, 0x29, 0x21, 0xee, 0x30, 0xef, 0xb4, 0xdd, 0x22, 0x26, 0x35, + 0x47, 0x4a, 0x18, 0x00, 0x34, 0x4e, 0x93, 0xa8, 0x61, 0x36, 0x8d, 0x95, 0x09, 0x27, 0x17, 0xad, + 0x26, 0xd4, 0x37, 0x93, 0x38, 0x63, 0x71, 0x76, 0x70, 0xde, 0x67, 0x8d, 0x32, 0xfd, 0xaa, 0x42, + 0xa8, 0xb1, 0xcf, 0xd2, 0x53, 0x0a, 0x72, 0xbb, 0xd5, 0x98, 0xa0, 0x8d, 0x55, 0x08, 0x77, 0x97, + 0x06, 0x8d, 0x0a, 0xfd, 0x9a, 0x8b, 0xd6, 0x1c, 0x98, 0x18, 0x96, 0x49, 0x0a, 0x0b, 0x2e, 0xad, + 0x65, 0xa8, 0x22, 0xd7, 0x83, 0x20, 0x62, 0x8d, 0x2a, 0xc1, 0x85, 0x6c, 0xdd, 0x86, 0x39, 0x5c, + 0xb3, 0x74, 0x2f, 0x74, 0xb3, 0x6e, 0x92, 0x46, 0xed, 0x56, 0xa3, 0x46, 0x84, 0xc6, 0x70, 0xeb, + 0xbf, 0x30, 0x23, 0xb0, 0xa7, 0x81, 0xd7, 0x7b, 0xea, 0x46, 0xac, 0x01, 0x74, 0xf4, 0x08, 0x6a, + 0xfd, 0x07, 0xa6, 0x05, 0xb2, 0xed, 0x7a, 0xec, 0x99, 0xf3, 0xa4, 0x51, 0x27, 0x35, 0x1d, 0xa4, + 0x28, 0x84, 0x01, 0x8b, 0x33, 0xe1, 0xe3, 0x94, 0xf0, 0x51, 0x81, 0xec, 0xef, 0x4d, 0x98, 0xc1, + 0x4a, 0x43, 0xbb, 0x0e, 0x3f, 0xc2, 0xaa, 0xda, 0x80, 0xc9, 0xdd, 0x7e, 0x16, 0x24, 0x31, 0xa7, + 0xaa, 0xaa, 0xaf, 0xad, 0x68, 0x19, 0xd4, 0xb5, 0x57, 0xa5, 0xea, 0x56, 0x9c, 0xa5, 0xe7, 0x4e, + 0x6e, 0x78, 0x81, 0x1b, 0xa5, 0xab, 0xb9, 0x61, 0x5e, 0xe4, 0xc6, 0x2d, 0x00, 0x25, 0x74, 0x22, + 0x97, 0x0a, 0x22, 0x52, 0xc9, 0x79, 0x90, 0xc4, 0x94, 0xec, 0x09, 0x91, 0x6c, 0x05, 0x52, 0x0b, + 0xa5, 0xf2, 0xd2, 0x42, 0x99, 0x1c, 0x2f, 0x94, 0x61, 0xf1, 0x55, 0xb5, 0xe2, 0xfb, 0x17, 0xd4, + 0xb6, 0x93, 0xd4, 0x63, 0x54, 0xeb, 0xb5, 0xa6, 0xb9, 0x52, 0x73, 0x86, 0x80, 0x5a, 0x3c, 0xa0, + 0x17, 0xcf, 0x48, 0x52, 0xea, 0x63, 0x49, 0x59, 0xbe, 0x0f, 0x53, 0x6a, 0x58, 0xb1, 0xdc, 0x7a, + 0xec, 0x5c, 0xf6, 0x04, 0x2e, 0xad, 0x05, 0x98, 0x38, 0x75, 0xc3, 0x81, 0x08, 0xeb, 0x84, 0x23, + 0x84, 0xfb, 0xa5, 0x7b, 0x86, 0x7d, 0x02, 0xb3, 0x5a, 0x86, 0x78, 0x7f, 0xb4, 0xd2, 0x8d, 0xf1, + 0x4a, 0x1f, 0xa1, 0x54, 0x1a, 0xa3, 0x84, 0xf5, 0xcd, 0xf3, 0xfa, 0x36, 0x45, 0x7d, 0xe7, 0xb2, + 0xfd, 0x99, 0x49, 0xd1, 0x6d, 0xb9, 0x99, 0x8b, 0xc1, 0xe2, 0x5a, 0x07, 0xf3, 0xa2, 0x83, 0x53, + 0xad, 0x83, 0x85, 0x84, 0x27, 0x73, 0x25, 0x75, 0xa2, 0x8b, 0x55, 0x08, 0x03, 0x19, 0xc9, 0xd4, + 0x89, 0xcc, 0xe7, 0x22, 0xda, 0x7a, 0x4a, 0xea, 0x64, 0xda, 0x3d, 0xbd, 0xc7, 0xb9, 0xe2, 0xb9, + 0xe8, 0x62, 0x15, 0xc2, 0xdd, 0xa5, 0x01, 0xa5, 0xbe, 0xe6, 0xe4, 0xa2, 0xe6, 0x71, 0x55, 0xf7, + 0x18, 0x13, 0xc2, 0xd9, 0x09, 0x35, 0xb1, 0xe9, 0xe0, 0x12, 0x7b, 0x9c, 0x8f, 0xf6, 0x38, 0x88, + 0x1e, 0xe7, 0x17, 0xf4, 0x38, 0xd7, 0x9b, 0x43, 0xd4, 0xc0, 0x08, 0x8a, 0xcd, 0xc1, 0xb5, 0xe6, + 0x10, 0xfd, 0xab, 0x83, 0x14, 0x05, 0x25, 0x77, 0xd3, 0xc2, 0x47, 0x05, 0xb2, 0x3b, 0x30, 0xbb, + 0xdb, 0xed, 0x86, 0x41, 0xcc, 0xf6, 0x06, 0xfc, 0xb8, 0x1d, 0x77, 0x13, 0xac, 0x9f, 0x83, 0x20, + 0x0b, 0x99, 0xcc, 0x92, 0x10, 0x2c, 0x0b, 0xca, 0x2d, 0xc6, 0x3d, 0x99, 0x22, 0x5a, 0xa3, 0xab, + 0x5b, 0x67, 0x99, 0xec, 0x4b, 0x5c, 0xda, 0x5f, 0x95, 0xa0, 0x46, 0x2f, 0x14, 0xed, 0xd4, 0x80, + 0x49, 0x21, 0xe4, 0x19, 0xcf, 0x45, 0xec, 0x0f, 0x5a, 0x2a, 0xed, 0x3f, 0x04, 0x2c, 0x1b, 0xa6, + 0x9e, 0x26, 0x59, 0xd0, 0x0d, 0x3c, 0x17, 0x2b, 0x5d, 0x1e, 0xa0, 0x61, 0xa8, 0xd3, 0x8e, 0xb3, + 0x34, 0xf1, 0x07, 0x1e, 0xe9, 0x94, 0x85, 0x8e, 0x8a, 0xe1, 0xf9, 0x14, 0x89, 0x34, 0x94, 0x57, + 0x78, 0x2e, 0xe2, 0xb3, 0xb4, 0x75, 0x26, 0x73, 0x5e, 0xda, 0x3a, 0xb3, 0xfe, 0x0f, 0x13, 0xbb, + 0x2f, 0x62, 0x96, 0x52, 0xa2, 0xeb, 0x6b, 0xff, 0xd4, 0x6e, 0xb5, 0xbd, 0xc1, 0x61, 0x18, 0x78, + 0xd8, 0x39, 0xe8, 0x95, 0x23, 0x34, 0xf1, 0xe2, 0xd9, 0x4c, 0x99, 0x9b, 0xb1, 0xa2, 0x0a, 0xca, + 0x8e, 0x82, 0x60, 0xec, 0x3b, 0x2c, 0x3a, 0x64, 0xe9, 0x66, 0x32, 0x88, 0x33, 0xaa, 0x87, 0x69, + 0x47, 0x85, 0xec, 0x1f, 0x0d, 0x98, 0x27, 0xa7, 0x05, 0xb8, 0x3d, 0x08, 0xc3, 0x4b, 0xc2, 0xb6, + 0x04, 0x15, 0xa2, 0x51, 0x74, 0x8a, 0x90, 0x30, 0x39, 0x4e, 0x12, 0xe6, 0x2d, 0x42, 0x6b, 0xac, + 0xd1, 0xc7, 0x49, 0x10, 0x13, 0xbb, 0x32, 0xb1, 0x2b, 0x64, 0xfc, 0xad, 0xa8, 0x2f, 0x11, 0x99, + 0x42, 0x56, 0x83, 0x56, 0xd1, 0x83, 0x66, 0xc3, 0xd4, 0x76, 0x1a, 0xb0, 0xd8, 0x77, 0x58, 0xe4, + 0xa6, 0x3d, 0xd9, 0x14, 0x1a, 0x66, 0x7f, 0x63, 0x40, 0x35, 0x8f, 0x94, 0x42, 0xd7, 0x18, 0xa5, + 0xab, 0x24, 0x9e, 0xd6, 0x88, 0xb5, 0xbd, 0x22, 0xd7, 0xb4, 0x46, 0xfb, 0x1d, 0xaa, 0x67, 0xd9, + 0xdd, 0x52, 0xa2, 0x71, 0x2c, 0x39, 0x0c, 0xc2, 0x9c, 0xbc, 0x94, 0xb0, 0x72, 0x37, 0x82, 0x34, + 0x3b, 0x96, 0xc4, 0x85, 0x80, 0xe8, 0x56, 0xe4, 0x06, 0xa1, 0xe4, 0x2b, 0x04, 0x59, 0x01, 0xd5, + 0xbc, 0x02, 0xec, 0x63, 0x98, 0xd1, 0xf3, 0xfc, 0x67, 0xb1, 0xb7, 0x5b, 0x50, 0x3d, 0x08, 0xfa, + 0x7c, 0x33, 0x89, 0x22, 0xd4, 0x69, 0xb1, 0x0c, 0xc9, 0xc9, 0x33, 0x84, 0x84, 0xc5, 0xd3, 0x62, + 0x5d, 0x77, 0x10, 0x66, 0xa8, 0x9a, 0x5f, 0xba, 0x0a, 0x64, 0x7f, 0x6e, 0xc0, 0xac, 0xa8, 0x9b, + 0xad, 0x38, 0x63, 0x29, 0x62, 0xd6, 0xff, 0x60, 0x82, 0x2a, 0x85, 0x36, 0x1b, 0x9d, 0xae, 0x8a, + 0xb6, 0x74, 0x84, 0x92, 0x75, 0x0f, 0x2a, 0x62, 0x03, 0xda, 0xbe, 0xbe, 0xd6, 0x1c, 0x57, 0xd7, + 0x0b, 0xd3, 0x91, 0xfa, 0x78, 0xf9, 0xec, 0xf6, 0x59, 0x4a, 0x8d, 0x58, 0xdc, 0xfa, 0x65, 0x47, + 0x07, 0x15, 0x86, 0x4f, 0x98, 0x7b, 0xca, 0xfe, 0x82, 0x0c, 0x7f, 0x36, 0xe0, 0x86, 0x30, 0x68, + 0xc7, 0xa7, 0x41, 0xc6, 0xfc, 0xeb, 0x71, 0xdc, 0xa5, 0x79, 0xfc, 0xea, 0x1c, 0x85, 0xbe, 0xe2, + 0x9d, 0xf9, 0xba, 0xde, 0x95, 0x2f, 0xf2, 0xee, 0x27, 0x03, 0xe6, 0x84, 0xc1, 0x07, 0x81, 0xd7, + 0xfb, 0x9b, 0x39, 0xf7, 0xad, 0x01, 0x8b, 0xca, 0x2e, 0x9b, 0xc7, 0x6e, 0x7c, 0xc4, 0xa8, 0x6d, + 0xf1, 0x5e, 0x26, 0x89, 0x1e, 0x7e, 0x43, 0x0c, 0x84, 0x43, 0xe4, 0xad, 0xf8, 0xb4, 0x0c, 0xd5, + 0xce, 0x40, 0xbe, 0x14, 0xf2, 0x2e, 0xce, 0x65, 0xfb, 0x13, 0x03, 0x16, 0xf3, 0x22, 0xec, 0x26, + 0x82, 0xe8, 0x75, 0x72, 0xf5, 0x08, 0xa6, 0xd5, 0x58, 0xf8, 0xd2, 0x3d, 0xfb, 0xf7, 0x48, 0x0e, + 0x43, 0xe6, 0xe8, 0x86, 0xf6, 0x2f, 0x06, 0xcc, 0x91, 0xa2, 0x78, 0xcd, 0xae, 0x43, 0xe6, 0x3e, + 0x4c, 0x92, 0x71, 0x72, 0xf5, 0x28, 0xe7, 0x06, 0xd6, 0x43, 0x00, 0x79, 0x6d, 0xe0, 0xf0, 0x2c, + 0xfe, 0x51, 0x5f, 0x6e, 0xae, 0xd8, 0x5c, 0xb1, 0x84, 0xbe, 0x30, 0x60, 0xa1, 0x20, 0xae, 0xc6, + 0x1d, 0x27, 0x5e, 0x29, 0x0e, 0x4b, 0x48, 0x85, 0x86, 0xc1, 0x28, 0xbd, 0x5a, 0x17, 0x99, 0xaf, + 0x56, 0x71, 0xf6, 0xa7, 0x06, 0x2c, 0x3b, 0xcc, 0x63, 0xc1, 0x29, 0xc3, 0xb7, 0x7b, 0xbd, 0xdf, + 0x0f, 0xe5, 0xfc, 0xf3, 0x46, 0x6f, 0x53, 0xfa, 0x97, 0xe3, 0xf2, 0xe2, 0x7d, 0x93, 0x92, 0xfd, + 0xb5, 0x01, 0x0d, 0x85, 0xd3, 0x5e, 0x9a, 0x78, 0x8c, 0xf3, 0x37, 0x7c, 0xd3, 0x10, 0x39, 0x3e, + 0x08, 0x33, 0x39, 0xfd, 0x48, 0x49, 0x21, 0x5d, 0xd6, 0x48, 0x7f, 0x69, 0x00, 0x88, 0x91, 0x85, + 0xae, 0x8b, 0x26, 0xd4, 0x69, 0x9e, 0xd3, 0x9e, 0x7a, 0x15, 0x12, 0x1b, 0xd1, 0xc0, 0x53, 0x7c, + 0x60, 0x40, 0x69, 0x64, 0x00, 0x34, 0xc7, 0x06, 0xc0, 0x07, 0x30, 0x23, 0xce, 0xc9, 0x27, 0x0a, + 0x22, 0x52, 0x5f, 0x5b, 0x1c, 0xfb, 0xcb, 0x4c, 0xfe, 0x8c, 0x28, 0xdb, 0x3d, 0xb8, 0x21, 0x10, + 0x25, 0xc2, 0x38, 0x9c, 0xad, 0xfb, 0xbe, 0x52, 0xd3, 0xb9, 0x88, 0x13, 0xf5, 0xba, 0xef, 0xef, + 0x27, 0x83, 0xd4, 0xcb, 0xc7, 0xa2, 0x21, 0x80, 0x5c, 0xd7, 0x7d, 0xff, 0xc3, 0x24, 0xf5, 0x83, + 0xf8, 0x48, 0x8e, 0x47, 0x0a, 0x62, 0xff, 0x60, 0xc0, 0xad, 0xb1, 0xd3, 0xb0, 0x97, 0xd6, 0x7d, + 0x5f, 0xe6, 0xf3, 0x6e, 0x91, 0x21, 0xe3, 0xf2, 0x19, 0x39, 0x4f, 0xce, 0x43, 0xa8, 0x2b, 0x1b, + 0xca, 0xdc, 0xde, 0xd2, 0x2c, 0xc7, 0x8e, 0x75, 0x54, 0x13, 0xeb, 0x1d, 0xa8, 0xee, 0xf6, 0x99, + 0xaf, 0xb4, 0xcf, 0x4b, 0x0f, 0x2e, 0x94, 0xf1, 0x5e, 0xfd, 0xf7, 0xc5, 0x2e, 0x79, 0x1e, 0xeb, + 0x67, 0xd7, 0xf7, 0x49, 0x65, 0x54, 0xfa, 0x43, 0x18, 0x39, 0xec, 0x63, 0xe6, 0xbd, 0x0d, 0x46, + 0xdb, 0x30, 0x2f, 0x08, 0xe9, 0xa9, 0xbe, 0x03, 0x15, 0x01, 0x4b, 0x12, 0x37, 0x2f, 0x48, 0x98, + 0x20, 0x20, 0xd6, 0xf6, 0x23, 0x58, 0x1c, 0xee, 0xd3, 0x62, 0x21, 0xcb, 0xae, 0xbb, 0xd3, 0x26, + 0xcc, 0x6d, 0x84, 0xae, 0xd7, 0x93, 0x84, 0xae, 0xb7, 0xc9, 0x0e, 0x2c, 0x14, 0x9b, 0xbc, 0x16, + 0x9b, 0xc2, 0xaf, 0xd1, 0x27, 0xe2, 0x95, 0x77, 0xda, 0x83, 0xf9, 0x7d, 0x16, 0x76, 0x11, 0x7b, + 0xd6, 0xf7, 0x8b, 0x57, 0xf5, 0x5d, 0x98, 0x42, 0xb8, 0xb8, 0x21, 0x8c, 0x97, 0xdd, 0x10, 0x9a, + 0xea, 0xc6, 0xd2, 0x47, 0x0b, 0xab, 0x77, 0xc4, 0xa7, 0xee, 0xf7, 0x14, 0xf5, 0xc3, 0x0a, 0x7d, + 0xf4, 0xbe, 0xfb, 0x5b, 0x00, 0x00, 0x00, 0xff, 0xff, 0x47, 0x77, 0x52, 0x8c, 0x07, 0x17, 0x00, + 0x00, } diff --git a/pkg/proto/sdk_ws/ws.proto b/pkg/proto/sdk_ws/ws.proto index 5ffc7bcdd..f2279873e 100644 --- a/pkg/proto/sdk_ws/ws.proto +++ b/pkg/proto/sdk_ws/ws.proto @@ -93,38 +93,33 @@ message OfflinePushInfo{ string Ext = 3; } -message GroupInfoTip{ - string GroupID = 1; - string GroupName = 2; - string Notification = 3; - string Introduction = 4; - string FaceUrl = 5; - string Ex = 6; - string OwnerID = 7; - uint64 CreateTime = 8; - uint32 MemberCount = 9; +//public +message GroupInfo{ + string GroupID = 1; + string GroupName = 2; + string Notification = 3; + string Introduction = 4; + string FaceUrl = 5; + string Ex = 6; + PublicUserInfo Owner = 7; + uint64 CreateTime = 8; + uint32 MemberCount = 9; } - -message GroupMemberFullInfoTip { - string GroupId = 1 ; - string UserId = 2 ; +//private, Group members have permission to view +message GroupMemberFullInfo { + string GroupID = 1 ; + string UserID = 2 ; int32 Role = 3; uint64 JoinTime = 4; string NickName = 5; - string FaceUrl =6; + string FaceUrl = 6; + string FriendRemark = 7; } - - -message CreateGroupTip{ - GroupInfoTip Group = 1; - UserInfoTip Creator = 2; - repeated GroupMemberFullInfoTip MemberList = 3; -} - -message UserInfoTip { +//private, Friends have permission to view +message UserInfo{ string UserID = 1; string Name = 2; string Icon = 3; @@ -135,4 +130,140 @@ message UserInfoTip { string Ex = 8; } +//No permissions required +message PublicUserInfo{ + string UserID = 1; + string Name = 2; + string Icon = 3; + int32 Gender = 4; +} + +message TipsComm{ + string Detail = 1; + string DefaultTips = 2; +} + +//////////////////////group///////////////////// +//Actively join the group +message MemberEnterTips{ + GroupInfo Group = 1; + GroupMemberFullInfo Member = 2; + uint64 OperationTime = 3; +} + + +//Actively leave the group +message MemberLeaveTips{ + GroupInfo Group = 1; + GroupMemberFullInfo Member = 2; + uint64 OperationTime = 3; +} + +message MemberInvitedTips{ + GroupInfo Group = 1; + GroupMemberFullInfo OpUser = 2; + GroupMemberFullInfo Member = 3; + uint64 OperationTime = 4; +} + +message MemberKickedTips{ + GroupInfo Group = 1; + GroupMemberFullInfo OpUser = 2; + GroupMemberFullInfo Member = 3; + uint64 OperationTime = 4; +} + +message GroupMemberChangeInfo{ + int32 ChangeType = 1; //1:info changed; 2:mute + GroupMemberFullInfo OpUser = 2; //who do this + GroupMemberFullInfo Member = 3; + uint64 MuteTime = 4; +} + +message MemberInfoChangedTips{ + GroupInfo Group = 1; + GroupMemberChangeInfo MemberChanged = 2; +} + +message GroupCreatedTips{ + GroupInfo Group = 1; + GroupMemberFullInfo Creator = 2; + repeated GroupMemberFullInfo MemberList = 3; + uint64 OperationTime = 4; +} + +message GroupInfoChangedTips{ + int32 ChangedType = 1; //1:name;2:Notification ... + GroupInfo Group = 2; + GroupMemberFullInfo OpUser = 3; +} + +message ReceiveJoinApplicationTips{ + GroupInfo Group = 1; + GroupMemberFullInfo Member = 2; + string Reason = 3; +} + +message ApplicationProcessedTips{ + GroupInfo Group = 1; + GroupMemberFullInfo OpUser = 2; + int32 Result = 3; + string Reason = 4; +} + +//////////////////////friend///////////////////// +message FriendInfo{ + string OwnerUserID = 1; + string Remark = 2; + uint64 CreateTime = 3; + UserInfo FriendUserInfo = 4; +} + +message FriendApplication{ + uint64 AddTime = 4; + string AddSource = 5; + string AddWording = 6; +} + +//user1 add user2 +message FriendApplicationListAddedTips{ + PublicUserInfo OpUser = 1; //user1 + FriendApplication Application = 2; + PublicUserInfo OpedUser = 3; //user2 +} +// user2 accept +message FriendApplicationListAcceptTips{ + PublicUserInfo OpUser = 1; //user2 + PublicUserInfo OpedUser = 2; //user1 +} + +// user2 reject +message FriendApplicationListRejectTips{ + PublicUserInfo OpUser = 1; //user2 + PublicUserInfo OpedUser = 2; //user1 +} + +message FriendListAddedTips{ + FriendInfo Friend = 1; +} + +message FriendListDeletedTips{ + FriendInfo Friend = 1; +} + +message BlackListAddTips{ + FriendInfo Friend = 1; +} + +message BlackListDeletedTips{ + FriendInfo Friend = 1; +} + +message FriendInfoChangedTips{ + FriendInfo Friend = 1; +} +//////////////////////user///////////////////// +message SelfInfoUpdatedTips{ + UserInfo SelfUserInfo = 1; +} \ No newline at end of file From 3ba881f641bad5d2501c344c3ebc8f4aae6506f1 Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Mon, 20 Dec 2021 16:29:24 +0800 Subject: [PATCH 214/814] pb: open_im_sdk.OfflinePushInfo --- config/config.yaml | 31 +++++++++++++++++++++++++++++++ internal/rpc/chat/send_msg.go | 27 ++++++++++++++++++++++----- pkg/proto/sdk_ws/ws.proto | 2 ++ 3 files changed, 55 insertions(+), 5 deletions(-) diff --git a/config/config.yaml b/config/config.yaml index f5edcc8e1..ca754a55b 100644 --- a/config/config.yaml +++ b/config/config.yaml @@ -171,6 +171,37 @@ messagecallback: stateChange: switch: false +iOSPush: + pushSound: "xxx" + badgeCount: 1 + +notification: + groupCreated: + conversation: + conversationChanged: 1 + unreadCount: 1 + offlinePush: + switch: true + title: "create group title" + desc: "create group desc" + ext: "create group ext" + defaultTips: + tips: "create the group" # xx create the group + + groupInfoChanged: + conversation: + conversationChanged: 1 + unreadCount: 1 + offlinePush: + switch: true + title: "group info changed title" + desc: "group info changed desc" + ext: "group info changed ext" + defaultTips: + tips: "group info changed by" # group info changed by xx + conversationChanged: 0 + + #---------------demo configuration---------------------# #The following configuration items are applied to openIM Demo configuration demoswitch: true diff --git a/internal/rpc/chat/send_msg.go b/internal/rpc/chat/send_msg.go index d237c2507..640309c91 100644 --- a/internal/rpc/chat/send_msg.go +++ b/internal/rpc/chat/send_msg.go @@ -6,6 +6,7 @@ import ( "Open_IM/pkg/common/config" "Open_IM/pkg/common/constant" "Open_IM/pkg/common/db" + "Open_IM/pkg/common/db/mysql_model/im_mysql_model" http2 "Open_IM/pkg/common/http" "Open_IM/pkg/common/log" "Open_IM/pkg/grpc-etcdv3/getcdv3" @@ -203,17 +204,33 @@ type WSToMsgSvrChatMsg struct { OperationID string `protobuf:"bytes,10,opt,name=OperationID" json:"OperationID,omitempty"` } -func CreateGroupNotification(SendID, RecvID string, tip open_im_sdk.CreateGroupTip) { +func CreateGroupNotification(sendID string, creator im_mysql_model.User, group im_mysql_model.Group, memberList []im_mysql_model.GroupMember) { var msg WSToMsgSvrChatMsg msg.OperationID = utils.OperationIDGenerator() - msg.SendID = SendID - msg.RecvID = RecvID + msg.SendID = sendID + msg.RecvID = group.GroupId msg.ContentType = constant.CreateGroupTip - msg.SessionType = constant.SysMsgType + msg.SessionType = constant.GroupChatType + msg.MsgFrom = constant.SysMsgType + var groupCreated open_im_sdk.GroupCreatedTips + groupCreated.Group = &open_im_sdk.GroupInfo{} + utils.CopyStructFields(groupCreated.Group, group) + groupCreated.Creator = &open_im_sdk.GroupMemberFullInfo{} + utils.CopyStructFields(groupCreated.Creator, creator) + for _, v := range memberList { + var groupMemberInfo open_im_sdk.GroupMemberFullInfo + utils.CopyStructFields(&groupMemberInfo, v) + groupCreated.MemberList = append(groupCreated.MemberList, &groupMemberInfo) + } + var tips open_im_sdk.TipsComm + tips.Detail = utils.StructToJsonString(groupCreated) + tips.DefaultTips = creator.Name + " " + config.Config.DefaultTips.GroupCreatedTips + msg.Content = utils.StructToJsonString(tips) + Notification(&msg, false) } -func Notification(m *WSToMsgSvrChatMsg, onlineUserOnly bool, offlineInfo open_im_sdk.OfflinePushInfo) { +func Notification(m *WSToMsgSvrChatMsg, onlineUserOnly bool) { } diff --git a/pkg/proto/sdk_ws/ws.proto b/pkg/proto/sdk_ws/ws.proto index 9b9d805b4..456195d64 100644 --- a/pkg/proto/sdk_ws/ws.proto +++ b/pkg/proto/sdk_ws/ws.proto @@ -91,6 +91,8 @@ message OfflinePushInfo{ string Title = 1; string Desc = 2; string Ext = 3; + string PushSound = 4; + bool ISBadgeCount = 5; } message GroupInfoTip{ From 2876e77a08f2548dedb2027e7a94668c00ffff99 Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Mon, 20 Dec 2021 17:27:05 +0800 Subject: [PATCH 215/814] UserInfo FriendInfo GroupInfo --- pkg/proto/sdk_ws/ws.proto | 58 ++++++++++++++++++++++++++++----------- 1 file changed, 42 insertions(+), 16 deletions(-) diff --git a/pkg/proto/sdk_ws/ws.proto b/pkg/proto/sdk_ws/ws.proto index 456195d64..25d79632c 100644 --- a/pkg/proto/sdk_ws/ws.proto +++ b/pkg/proto/sdk_ws/ws.proto @@ -95,36 +95,62 @@ message OfflinePushInfo{ bool ISBadgeCount = 5; } -message GroupInfoTip{ + +message GroupInfo{ string GroupID = 1; - string GroupName = 2; + string GroupName = 2; string Notification = 3; - string Introduction = 4; + string Introduction = 4; string FaceUrl = 5; - string Ex = 6; - string OwnerID = 7; - uint64 CreateTime = 8; - uint32 MemberCount = 9; + string OwnerID = 6; + int64 CreateTime = 7; + uint32 MemberCount = 8; } - -type GroupMemberFullInfoTip struct { - string GroupId = 1 ; - string UserId = 2 ; - int Role = 3; - uint64 JoinTime = 4; +message GroupMemberFullInfo{ + string GroupID = 1 ; + string UserID = 2 ; + int32 Role = 3; + int64 JoinTime = 4; string NickName = 5; string FaceUrl =6; } +message FriendInfo{ + string UserID = 1; + string Nickname = 2; + string FaceUrl = 3; + int32 Gender = 4; + string Mobile = 5; + string Birth = 6; + string Email = 7; + string Remark = 8; +} +message UserInfo{ + string UserID = 1; + string Nickname = 2; + string FaceUrl = 3; + int32 Gender = 4; + string Mobile = 5; + string Birth = 6; + string Email = 7; +} + +message UserPublicInfo{ + string UserID = 1; + string Nickname = 2; + string FaceUrl = 3; + int32 Gender = 4; +} message CreateGroupTip{ - GroupInfoTip group = 1; - UserInfoTip creator = 2; - repeated GroupMemberFullInfoTip memberList = 3; + GroupInfo group = 1; + UserInfo creator = 2; + repeated GroupMemberFullInfo memberList = 3; } + From 75e1e2e678687500f88b76261bd7c118a59dbb85 Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Tue, 21 Dec 2021 21:40:50 +0800 Subject: [PATCH 216/814] notification --- config/config.yaml | 10 +- .../api/group/group_application_response.go | 2 + internal/rpc/auth/user_register.go | 3 - internal/rpc/chat/send_msg.go | 283 ++- internal/rpc/group/create_group.go | 74 +- internal/rpc/group/group.go | 4 +- .../rpc/group/group_application_response.go | 17 +- internal/rpc/group/join_group.go | 44 +- internal/rpc/group/set_group_info.go | 38 +- pkg/common/config/config.go | 56 +- pkg/common/constant/constant.go | 3 +- .../im_mysql_model/friend_model.go | 8 +- .../im_mysql_model/group_member_model.go | 4 +- .../mysql_model/im_mysql_model/group_model.go | 54 +- .../im_mysql_model/model_struct.go | 36 +- .../im_mysql_model/user_black_list_model.go | 2 +- .../mysql_model/im_mysql_model/user_model.go | 6 +- .../im_mysql_msg_model/receive_model.go | 17 - pkg/proto/chat/chat.pb.go | 583 ++---- pkg/proto/chat/chat.proto | 30 +- pkg/proto/group/group.proto | 11 +- pkg/proto/relay/relay.proto | 4 +- pkg/proto/sdk_ws/ws.pb.go | 1677 +++++++++++++++-- pkg/proto/sdk_ws/ws.proto | 205 +- pkg/utils/strings.go | 5 + 25 files changed, 2229 insertions(+), 947 deletions(-) diff --git a/config/config.yaml b/config/config.yaml index ca754a55b..84728c201 100644 --- a/config/config.yaml +++ b/config/config.yaml @@ -173,13 +173,13 @@ messagecallback: iOSPush: pushSound: "xxx" - badgeCount: 1 + badgeCount: true notification: groupCreated: conversation: - conversationChanged: 1 - unreadCount: 1 + conversationChanged: true + unreadCount: true offlinePush: switch: true title: "create group title" @@ -190,8 +190,8 @@ notification: groupInfoChanged: conversation: - conversationChanged: 1 - unreadCount: 1 + conversationChanged: true + unreadCount: true offlinePush: switch: true title: "group info changed title" diff --git a/internal/api/group/group_application_response.go b/internal/api/group/group_application_response.go index ea38d45a1..3a7e9343c 100644 --- a/internal/api/group/group_application_response.go +++ b/internal/api/group/group_application_response.go @@ -27,6 +27,8 @@ type paramsGroupApplicationResponse struct { Type int32 `json:"type"` HandleStatus int32 `json:"handleStatus"` HandleResult int32 `json:"handleResult"` + + UserID string `json:"userID"` } func newGroupApplicationResponse(params *paramsGroupApplicationResponse) *group.GroupApplicationResponseReq { diff --git a/internal/rpc/auth/user_register.go b/internal/rpc/auth/user_register.go index 5f7aa9023..3f5de7032 100644 --- a/internal/rpc/auth/user_register.go +++ b/internal/rpc/auth/user_register.go @@ -10,9 +10,6 @@ import ( func (rpc *rpcAuth) UserRegister(_ context.Context, pb *pbAuth.UserRegisterReq) (*pbAuth.UserRegisterResp, error) { log.Info("", "", "rpc user_register start, [data: %s]", pb.String()) - //if len(pb.UID) == 0 { - // pb.UID = utils.GenID() - //} if err := im_mysql_model.UserRegister(pb); err != nil { log.Error("", "", "rpc user_register error, [data: %s] [err: %s]", pb.String(), err.Error()) return &pbAuth.UserRegisterResp{Success: false}, err diff --git a/internal/rpc/chat/send_msg.go b/internal/rpc/chat/send_msg.go index 640309c91..1f2737bf1 100644 --- a/internal/rpc/chat/send_msg.go +++ b/internal/rpc/chat/send_msg.go @@ -6,7 +6,7 @@ import ( "Open_IM/pkg/common/config" "Open_IM/pkg/common/constant" "Open_IM/pkg/common/db" - "Open_IM/pkg/common/db/mysql_model/im_mysql_model" + immysql "Open_IM/pkg/common/db/mysql_model/im_mysql_model" http2 "Open_IM/pkg/common/http" "Open_IM/pkg/common/log" "Open_IM/pkg/grpc-etcdv3/getcdv3" @@ -189,49 +189,7 @@ func (rpc *rpcChat) UserSendMsg(_ context.Context, pb *pbChat.UserSendMsgReq) (* return returnMsg(&replay, pb, 0, "", serverMsgID, pbData.SendTime) default: return returnMsg(&replay, pb, 203, "unkonwn sessionType", "", 0) - - } - -} - -type WSToMsgSvrChatMsg struct { - SendID string `protobuf:"bytes,1,opt,name=SendID" json:"SendID,omitempty"` - RecvID string `protobuf:"bytes,2,opt,name=RecvID" json:"RecvID,omitempty"` - Content string `protobuf:"bytes,3,opt,name=Content" json:"Content,omitempty"` - MsgFrom int32 `protobuf:"varint,5,opt,name=MsgFrom" json:"MsgFrom,omitempty"` - ContentType int32 `protobuf:"varint,8,opt,name=ContentType" json:"ContentType,omitempty"` - SessionType int32 `protobuf:"varint,9,opt,name=SessionType" json:"SessionType,omitempty"` - OperationID string `protobuf:"bytes,10,opt,name=OperationID" json:"OperationID,omitempty"` -} - -func CreateGroupNotification(sendID string, creator im_mysql_model.User, group im_mysql_model.Group, memberList []im_mysql_model.GroupMember) { - var msg WSToMsgSvrChatMsg - msg.OperationID = utils.OperationIDGenerator() - msg.SendID = sendID - msg.RecvID = group.GroupId - msg.ContentType = constant.CreateGroupTip - msg.SessionType = constant.GroupChatType - msg.MsgFrom = constant.SysMsgType - - var groupCreated open_im_sdk.GroupCreatedTips - groupCreated.Group = &open_im_sdk.GroupInfo{} - utils.CopyStructFields(groupCreated.Group, group) - groupCreated.Creator = &open_im_sdk.GroupMemberFullInfo{} - utils.CopyStructFields(groupCreated.Creator, creator) - for _, v := range memberList { - var groupMemberInfo open_im_sdk.GroupMemberFullInfo - utils.CopyStructFields(&groupMemberInfo, v) - groupCreated.MemberList = append(groupCreated.MemberList, &groupMemberInfo) } - var tips open_im_sdk.TipsComm - tips.Detail = utils.StructToJsonString(groupCreated) - tips.DefaultTips = creator.Name + " " + config.Config.DefaultTips.GroupCreatedTips - msg.Content = utils.StructToJsonString(tips) - Notification(&msg, false) -} - -func Notification(m *WSToMsgSvrChatMsg, onlineUserOnly bool) { - } func (rpc *rpcChat) sendMsgToKafka(m *pbChat.WSToMsgSvrChatMsg, key string) error { @@ -245,6 +203,7 @@ func GetMsgID(sendID string) string { t := time.Now().Format("2006-01-02 15:04:05") return t + "-" + sendID + "-" + strconv.Itoa(rand.Int()) } + func returnMsg(replay *pbChat.UserSendMsgResp, pb *pbChat.UserSendMsgReq, errCode int32, errMsg, serverMsgID string, sendTime int64) (*pbChat.UserSendMsgResp, error) { replay.ErrCode = errCode replay.ErrMsg = errMsg @@ -254,6 +213,7 @@ func returnMsg(replay *pbChat.UserSendMsgResp, pb *pbChat.UserSendMsgReq, errCod replay.SendTime = sendTime return replay, nil } + func modifyMessageByUserMessageReceiveOpt(userID, sourceID string, sessionType int, msg *pbChat.WSToMsgSvrChatMsg) bool { conversationID := utils.GetConversationIDBySessionType(sourceID, sessionType) opt, err := db.DB.GetSingleConversationMsgOpt(userID, conversationID) @@ -278,3 +238,240 @@ func modifyMessageByUserMessageReceiveOpt(userID, sourceID string, sessionType i return true } + +type NotificationMsg struct { + SendID string + RecvID string + Content []byte + MsgFrom int32 + ContentType int32 + SessionType int32 + OperationID string +} + +func Notification(n *NotificationMsg, onlineUserOnly bool) { + +} + +//message GroupCreatedTips{ +// GroupInfo Group = 1; +// GroupMemberFullInfo Creator = 2; +// repeated GroupMemberFullInfo MemberList = 3; +// uint64 OperationTime = 4; +//} +func GroupCreatedNotification(operationID string, creator *immysql.User, group *immysql.Group, memberList []immysql.GroupMember) { + var n NotificationMsg + n.SendID = creator.UserID + n.RecvID = group.GroupID + n.ContentType = constant.CreateGroupTip + n.SessionType = constant.GroupChatType + n.MsgFrom = constant.SysMsgType + n.OperationID = operationID + + var groupCreated open_im_sdk.GroupCreatedTips + groupCreated.Group = &open_im_sdk.GroupInfo{} + utils.CopyStructFields(groupCreated.Group, group) + groupCreated.Creator = &open_im_sdk.GroupMemberFullInfo{} + utils.CopyStructFields(groupCreated.Creator, creator) + for _, v := range memberList { + var groupMemberInfo open_im_sdk.GroupMemberFullInfo + utils.CopyStructFields(&groupMemberInfo, v) + groupCreated.MemberList = append(groupCreated.MemberList, &groupMemberInfo) + } + var tips open_im_sdk.TipsComm + tips.Detail, _ = json.Marshal(groupCreated) + tips.DefaultTips = config.Config.Notification.GroupCreated.DefaultTips.Tips + n.Content, _ = json.Marshal(tips) + Notification(&n, false) +} + +//message ReceiveJoinApplicationTips{ +// GroupInfo Group = 1; +// PublicUserInfo Applicant = 2; +// string Reason = 3; +//} +func ReceiveJoinApplicationNotification(operationID, RecvID string, applicant *immysql.User, group *immysql.Group) { + var n NotificationMsg + n.SendID = applicant.UserID + n.RecvID = RecvID + n.ContentType = constant.ApplyJoinGroupTip + n.SessionType = constant.SingleChatType + n.MsgFrom = constant.SysMsgType + n.OperationID = operationID + + var joniGroup open_im_sdk.ReceiveJoinApplicationTips + joniGroup.Group = &open_im_sdk.GroupInfo{} + utils.CopyStructFields(joniGroup.Group, group) + joniGroup.Applicant = &open_im_sdk.PublicUserInfo{} + utils.CopyStructFields(joniGroup.Applicant, applicant) + + var tips open_im_sdk.TipsComm + tips.Detail, _ = json.Marshal(joniGroup) + tips.DefaultTips = config.Config.Notification.ApplyJoinGroup.DefaultTips.Tips + n.Content, _ = json.Marshal(tips) + Notification(&n, false) +} + +//message ApplicationProcessedTips{ +// GroupInfo Group = 1; +// GroupMemberFullInfo OpUser = 2; +// int32 Result = 3; +// string Reason = 4; +//} +func ApplicationProcessedNotification(operationID, RecvID string, group immysql.Group, opUser immysql.GroupMember, result int32, Reason string) { + +} + +//message MemberInvitedTips{ +// GroupInfo Group = 1; +// GroupMemberFullInfo OpUser = 2; +// GroupMemberFullInfo InvitedUser = 3; +// uint64 OperationTime = 4; +//} +func MemberInvitedNotification(operationID string, group immysql.Group, opUser immysql.GroupMember, invitedUser immysql.GroupMember) { + +} + +//message MemberKickedTips{ +// GroupInfo Group = 1; +// GroupMemberFullInfo OpUser = 2; +// GroupMemberFullInfo KickedUser = 3; +// uint64 OperationTime = 4; +//} +func MemberKickedNotification(operationID string, group immysql.Group, opUser immysql.GroupMember, KickedUser immysql.GroupMember) { + +} + +//message GroupInfoChangedTips{ +// int32 ChangedType = 1; //bitwise operators: 1:groupName; 10:Notification 100:Introduction; 1000:FaceUrl +// GroupInfo Group = 2; +// GroupMemberFullInfo OpUser = 3; +//} +func GroupInfoChangedNotification(operationID string, changedType int32, group *immysql.Group, opUser *immysql.GroupMember) { + var n NotificationMsg + n.SendID = opUser.UserID + n.RecvID = group.GroupID + n.ContentType = constant.ChangeGroupInfoTip + n.SessionType = constant.GroupChatType + n.MsgFrom = constant.SysMsgType + n.OperationID = operationID + + var groupInfoChanged open_im_sdk.GroupInfoChangedTips + groupInfoChanged.Group = &open_im_sdk.GroupInfo{} + utils.CopyStructFields(groupInfoChanged.Group, group) + groupInfoChanged.OpUser = &open_im_sdk.GroupMemberFullInfo{} + utils.CopyStructFields(groupInfoChanged.OpUser, opUser) + groupInfoChanged.ChangedType = changedType + + var tips open_im_sdk.TipsComm + tips.Detail, _ = json.Marshal(groupInfoChanged) + tips.DefaultTips = config.Config.Notification.GroupInfoChanged.DefaultTips.Tips + n.Content, _ = json.Marshal(tips) + Notification(&n, false) +} + +//message MemberLeaveTips{ +// GroupInfo Group = 1; +// GroupMemberFullInfo LeaverUser = 2; +// uint64 OperationTime = 3; +//} +func MemberLeaveNotification(operationID string, group *immysql.Group, leaverUser *immysql.GroupMember) { + +} + +//message MemberEnterTips{ +// GroupInfo Group = 1; +// GroupMemberFullInfo EntrantUser = 2; +// uint64 OperationTime = 3; +//} +func MemberEnterNotification(operationID string, group *immysql.Group, entrantUser *immysql.GroupMember) { + +} + +//message MemberInfoChangedTips{ +// int32 ChangeType = 1; //1:info changed; 2:mute +// GroupMemberFullInfo OpUser = 2; //who do this +// GroupMemberFullInfo FinalInfo = 3; // +// uint64 MuteTime = 4; +// GroupInfo Group = 5; +//} +func MemberInfoChangedNotification(operationID string, group *immysql.Group, opUser *immysql.GroupMember, userFinalInfo *immysql.GroupMember) { + +} + +//message FriendApplicationAddedTips{ +// PublicUserInfo OpUser = 1; //user1 +// FriendApplication Application = 2; +// PublicUserInfo OpedUser = 3; //user2 +//} +func FriendApplicationAddedNotification(operationID string, opUser *immysql.User, opedUser *immysql.User, application *immysql.FriendRequest) { + +} + +//message FriendApplicationProcessedTips{ +// PublicUserInfo OpUser = 1; //user2 +// PublicUserInfo OpedUser = 2; //user1 +// int32 result = 3; //1: accept; -1: reject +//} +func FriendApplicationProcessedNotification(operationID string, opUser *immysql.User, OpedUser *immysql.User, result int32) { + +} + +//message FriendAddedTips{ +// FriendInfo Friend = 1; +//} +//message FriendInfo{ +// UserInfo OwnerUser = 1; +// string Remark = 2; +// uint64 CreateTime = 3; +// UserInfo FriendUser = 4; +//} + +func FriendAddedNotification(operationID string, opUser *immysql.User, friendUser *immysql.Friend) { + +} + +//message FriendDeletedTips{ +// FriendInfo Friend = 1; +//} +func FriendDeletedNotification(operationID string, opUser *immysql.User, friendUser *immysql.Friend) { + +} + +//message FriendInfoChangedTips{ +// FriendInfo Friend = 1; +// PublicUserInfo OpUser = 2; +// uint64 OperationTime = 3; +//} +func FriendInfoChangedNotification(operationID string, opUser *immysql.User, friendUser *immysql.Friend) { + +} + +//message BlackAddedTips{ +// BlackInfo Black = 1; +//} +//message BlackInfo{ +// PublicUserInfo OwnerUser = 1; +// string Remark = 2; +// uint64 CreateTime = 3; +// PublicUserInfo BlackUser = 4; +//} +func BlackAddedNotification(operationID string, opUser *immysql.User, blackUser *immysql.User) { + +} + +//message BlackDeletedTips{ +// BlackInfo Black = 1; +//} +func BlackDeletedNotification(operationID string, opUser *immysql.User, blackUser *immysql.User) { + +} + +//message SelfInfoUpdatedTips{ +// UserInfo SelfUserInfo = 1; +// PublicUserInfo OpUser = 2; +// uint64 OperationTime = 3; +//} +func SelfInfoUpdatedNotification(operationID string, opUser *immysql.User, selfUser *immysql.User) { + +} diff --git a/internal/rpc/group/create_group.go b/internal/rpc/group/create_group.go index 35e6616ee..8edc72885 100644 --- a/internal/rpc/group/create_group.go +++ b/internal/rpc/group/create_group.go @@ -1,8 +1,7 @@ package group import ( - "Open_IM/internal/push/content_struct" - "Open_IM/internal/push/logic" + "Open_IM/internal/rpc/chat" "Open_IM/pkg/common/config" "Open_IM/pkg/common/constant" "Open_IM/pkg/common/db" @@ -10,7 +9,6 @@ import ( "Open_IM/pkg/common/log" "Open_IM/pkg/common/token_verify" "Open_IM/pkg/grpc-etcdv3/getcdv3" - pbChat "Open_IM/pkg/proto/chat" pbGroup "Open_IM/pkg/proto/group" "Open_IM/pkg/utils" "context" @@ -69,39 +67,40 @@ func (s *groupServer) Run() { } func (s *groupServer) CreateGroup(ctx context.Context, req *pbGroup.CreateGroupReq) (*pbGroup.CreateGroupResp, error) { - log.InfoByArgs("rpc create group is server,args=%s", req.String()) + log.NewInfo(req.OperationID, "CreateGroup, args=%s", req.String()) var ( groupId string ) //Parse token, to find current user information claims, err := token_verify.ParseToken(req.Token) if err != nil { - log.Error(req.Token, req.OperationID, "err=%s,parse token failed", err.Error()) + log.NewError(req.OperationID, "ParseToken failed, ", err.Error(), req.String()) return &pbGroup.CreateGroupResp{ErrorCode: constant.ErrParseToken.ErrCode, ErrorMsg: constant.ErrParseToken.ErrMsg}, nil } //Time stamp + MD5 to generate group chat id groupId = utils.Md5(strconv.FormatInt(time.Now().UnixNano(), 10)) err = im_mysql_model.InsertIntoGroup(groupId, req.GroupName, req.Introduction, req.Notification, req.FaceUrl, req.Ex) if err != nil { - log.ErrorByKv("create group chat failed", req.OperationID, "err=%s", err.Error()) + log.NewError(req.OperationID, "InsertIntoGroup failed, ", err.Error(), req.String()) return &pbGroup.CreateGroupResp{ErrorCode: constant.ErrCreateGroup.ErrCode, ErrorMsg: constant.ErrCreateGroup.ErrMsg}, nil } - isMagagerFlag := 0 + isManagerFlag := 0 tokenUid := claims.UID if utils.IsContain(tokenUid, config.Config.Manager.AppManagerUid) { - isMagagerFlag = 1 + isManagerFlag = 1 } - if isMagagerFlag == 0 { + us, err := im_mysql_model.FindUserByUID(claims.UID) + if err != nil { + log.Error("", req.OperationID, "find userInfo failed", err.Error()) + return &pbGroup.CreateGroupResp{ErrorCode: constant.ErrCreateGroup.ErrCode, ErrorMsg: constant.ErrCreateGroup.ErrMsg}, nil + } + + if isManagerFlag == 0 { //Add the group owner to the group first, otherwise the group creation will fail - us, err := im_mysql_model.FindUserByUID(claims.UID) - if err != nil { - log.Error("", req.OperationID, "find userInfo failed", err.Error()) - return &pbGroup.CreateGroupResp{ErrorCode: constant.ErrCreateGroup.ErrCode, ErrorMsg: constant.ErrCreateGroup.ErrMsg}, nil - } - err = im_mysql_model.InsertIntoGroupMember(groupId, claims.UID, us.Name, us.Icon, constant.GroupOwner) + err = im_mysql_model.InsertIntoGroupMember(groupId, claims.UID, us.Nickname, us.FaceUrl, constant.GroupOwner) if err != nil { log.Error("", req.OperationID, "create group chat failed,err=%s", err.Error()) return &pbGroup.CreateGroupResp{ErrorCode: constant.ErrCreateGroup.ErrCode, ErrorMsg: constant.ErrCreateGroup.ErrMsg}, nil @@ -109,7 +108,7 @@ func (s *groupServer) CreateGroup(ctx context.Context, req *pbGroup.CreateGroupR err = db.DB.AddGroupMember(groupId, claims.UID) if err != nil { - log.Error("", "", "create mongo group member failed, db.DB.AddGroupMember fail [err: %s]", err.Error()) + log.NewError(req.OperationID, "AddGroupMember failed ", err.Error(), groupId, claims.UID) return &pbGroup.CreateGroupResp{ErrorCode: constant.ErrCreateGroup.ErrCode, ErrorMsg: constant.ErrCreateGroup.ErrMsg}, nil } } @@ -118,12 +117,12 @@ func (s *groupServer) CreateGroup(ctx context.Context, req *pbGroup.CreateGroupR for _, user := range req.MemberList { us, err := im_mysql_model.FindUserByUID(user.Uid) if err != nil { - log.Error("", req.OperationID, "find userInfo failed,uid=%s", user.Uid, err.Error()) + log.NewError(req.OperationID, "FindUserByUID failed ", err.Error(), user.Uid) continue } - err = im_mysql_model.InsertIntoGroupMember(groupId, user.Uid, us.Name, us.Icon, user.SetRole) + err = im_mysql_model.InsertIntoGroupMember(groupId, user.Uid, us.Nickname, us.FaceUrl, user.SetRole) if err != nil { - log.ErrorByArgs("pull %s to group %s failed,err=%s", user.Uid, groupId, err.Error()) + log.ErrorByArgs("InsertIntoGroupMember failed", user.Uid, groupId, err.Error()) } err = db.DB.AddGroupMember(groupId, user.Uid) if err != nil { @@ -131,32 +130,21 @@ func (s *groupServer) CreateGroup(ctx context.Context, req *pbGroup.CreateGroupR } } - if isMagagerFlag == 1 { - - //type NotificationContent struct { - // IsDisplay int32 `json:"isDisplay"` - // DefaultTips string `json:"defaultTips"` - // Detail string `json:"detail"` - //} n := NotificationContent{ - // IsDisplay: 1, - // DefaultTips: "You have joined the group chat:" + createGroupResp.Data.GroupName, - // Detail: createGroupResp.Data.GroupId, - // } + if isManagerFlag == 1 { - ////Push message when create group chat - n := content_struct.NotificationContent{1, req.GroupName, groupId} - logic.SendMsgByWS(&pbChat.WSToMsgSvrChatMsg{ - SendID: claims.UID, - RecvID: groupId, - Content: n.ContentToString(), - SendTime: utils.GetCurrentTimestampByNano(), - MsgFrom: constant.SysMsgType, //Notification message identification - ContentType: constant.CreateGroupTip, //Add friend flag - SessionType: constant.GroupChatType, - OperationID: req.OperationID, - }) } + group, err := im_mysql_model.FindGroupInfoByGroupId(groupId) + if err != nil { + log.NewError(req.OperationID, "FindGroupInfoByGroupId failed ", err.Error(), groupId) + return &pbGroup.CreateGroupResp{GroupID: groupId}, nil + } + memberList, err := im_mysql_model.FindGroupMemberListByGroupId(groupId) + if err != nil { + log.NewError(req.OperationID, "FindGroupMemberListByGroupId failed ", err.Error(), groupId) + return &pbGroup.CreateGroupResp{GroupID: groupId}, nil + } + chat.GroupCreatedNotification(req.OperationID, us, group, memberList) + log.NewInfo(req.OperationID, "GroupCreatedNotification, rpc CreateGroup success return ", groupId) - log.Info(req.Token, req.OperationID, "rpc create group success return") return &pbGroup.CreateGroupResp{GroupID: groupId}, nil } diff --git a/internal/rpc/group/group.go b/internal/rpc/group/group.go index 15740800f..e5b7cfc7d 100644 --- a/internal/rpc/group/group.go +++ b/internal/rpc/group/group.go @@ -384,9 +384,9 @@ func (s *groupServer) GetGroupMembersInfo(ctx context.Context, req *pbGroup.GetG } user, err := imdb.FindUserByUID(v) if err == nil && user != nil { - memberNode.FaceUrl = user.Icon + memberNode.FaceUrl = user.FaceUrl memberNode.JoinTime = uint64(memberInfo.JoinTime.Unix()) - memberNode.UserId = user.UID + memberNode.UserId = user.UserID memberNode.NickName = memberInfo.NickName memberNode.Role = memberInfo.AdministratorLevel } diff --git a/internal/rpc/group/group_application_response.go b/internal/rpc/group/group_application_response.go index 4282de51b..c8a077ae9 100644 --- a/internal/rpc/group/group_application_response.go +++ b/internal/rpc/group/group_application_response.go @@ -1,6 +1,7 @@ package group import ( + "Open_IM/internal/rpc/chat" "Open_IM/pkg/common/db" "Open_IM/pkg/common/db/mysql_model/im_mysql_model" "Open_IM/pkg/common/log" @@ -9,12 +10,11 @@ import ( ) func (s *groupServer) GroupApplicationResponse(_ context.Context, pb *group.GroupApplicationResponseReq) (*group.GroupApplicationResponseResp, error) { - log.Info("", "", "rpc GroupApplicationResponse call start..., [pb: %s]", pb.String()) - + log.NewInfo(pb.OperationID, "GroupApplicationResponse args: ", pb.String()) reply, err := im_mysql_model.GroupApplicationResponse(pb) if err != nil { - log.Error("", "", "rpc GroupApplicationResponse call..., im_mysql_model.GroupApplicationResponse fail [pb: %s] [err: %s]", pb.String(), err.Error()) - return &group.GroupApplicationResponseResp{ErrCode: 702, ErrMsg: "rpc GroupApplicationResponse failed"}, nil + log.NewError(pb.OperationID, "GroupApplicationResponse failed ", err.Error(), pb) + return &group.GroupApplicationResponseResp{ErrCode: 702, ErrMsg: err.Error()}, nil } if pb.HandleResult == 1 { @@ -32,8 +32,15 @@ func (s *groupServer) GroupApplicationResponse(_ context.Context, pb *group.Grou } } } + if pb.ToUserID == "0" { + chat.ApplicationProcessedNotification(pb.OperationID, pb.FromUserID) + } + + if pb.HandleResult == 1 { + + } - log.Info("", "", "rpc GroupApplicationResponse call..., im_mysql_model.GroupApplicationResponse") + log.NewInfo(pb.OperationID, "rpc GroupApplicationResponse ok ", reply) return reply, nil } diff --git a/internal/rpc/group/join_group.go b/internal/rpc/group/join_group.go index 0aed0d4e4..5a26181dd 100644 --- a/internal/rpc/group/join_group.go +++ b/internal/rpc/group/join_group.go @@ -1,6 +1,7 @@ package group import ( + "Open_IM/internal/rpc/chat" "Open_IM/pkg/common/constant" "Open_IM/pkg/common/db/mysql_model/im_mysql_model" "Open_IM/pkg/common/log" @@ -10,16 +11,16 @@ import ( ) func (s *groupServer) JoinGroup(ctx context.Context, req *pbGroup.JoinGroupReq) (*pbGroup.CommonResp, error) { - log.Info(req.Token, req.OperationID, "rpc join group is server,args=%s", req.String()) + log.NewInfo(req.Token, req.OperationID, "JoinGroup args ", req.String()) //Parse token, to find current user information claims, err := token_verify.ParseToken(req.Token) if err != nil { - log.Error(req.Token, req.OperationID, "err=%s,parse token failed", err.Error()) + log.NewError(req.OperationID, "ParseToken failed", err.Error(), req.String()) return &pbGroup.CommonResp{ErrorCode: constant.ErrParseToken.ErrCode, ErrorMsg: constant.ErrParseToken.ErrMsg}, nil } applicationUserInfo, err := im_mysql_model.FindUserByUID(claims.UID) if err != nil { - log.Error(req.Token, req.OperationID, "No this user,err=%s", err.Error()) + log.NewError(req.OperationID, "FindUserByUID failed", err.Error(), claims.UID) return &pbGroup.CommonResp{ErrorCode: constant.ErrSearchUserInfo.ErrCode, ErrorMsg: constant.ErrSearchUserInfo.ErrMsg}, nil } @@ -28,30 +29,23 @@ func (s *groupServer) JoinGroup(ctx context.Context, req *pbGroup.JoinGroupReq) err = im_mysql_model.DelGroupRequest(req.GroupID, claims.UID, "0") } - log.Info(req.Token, req.OperationID, "args: ", req.GroupID, claims.UID, "0", req.Message, applicationUserInfo.Name, applicationUserInfo.Icon) - - if err = im_mysql_model.InsertIntoGroupRequest(req.GroupID, claims.UID, "0", req.Message, applicationUserInfo.Name, applicationUserInfo.Icon); err != nil { + if err = im_mysql_model.InsertIntoGroupRequest(req.GroupID, claims.UID, "0", req.Message, applicationUserInfo.Nickname, applicationUserInfo.FaceUrl); err != nil { log.Error(req.Token, req.OperationID, "Insert into group request failed,er=%s", err.Error()) return &pbGroup.CommonResp{ErrorCode: constant.ErrJoinGroupApplication.ErrCode, ErrorMsg: constant.ErrJoinGroupApplication.ErrMsg}, nil } - ////Find the the group owner - //groupCreatorInfo, err := im_mysql_model.FindGroupMemberListByGroupIdAndFilterInfo(req.GroupID, constant.GroupCreator) - //if err != nil { - // log.Error(req.Token, req.OperationID, "find group creator failed", err.Error()) - //} else { - // //Push message when join group chat - // logic.SendMsgByWS(&pbChat.WSToMsgSvrChatMsg{ - // SendID: claims.UID, - // RecvID: groupCreatorInfo[0].Uid, - // Content: content_struct.NewContentStructString(0, "", req.String()), - // SendTime: utils.GetCurrentTimestampBySecond(), - // MsgFrom: constant.SysMsgType, - // ContentType: constant.JoinGroupTip, - // SessionType: constant.SingleChatType, - // OperationID: req.OperationID, - // }) - //} - log.Info(req.Token, req.OperationID, "rpc join group success return") - return &pbGroup.CommonResp{}, nil + memberList, err := im_mysql_model.FindGroupMemberListByGroupIdAndFilterInfo(req.GroupID, constant.GroupOwner) + if len(memberList) == 0 { + log.NewError(req.OperationID, "FindGroupMemberListByGroupIdAndFilterInfo failed ", req.GroupID, constant.GroupOwner, err) + return &pbGroup.CommonResp{ErrorCode: 0, ErrorMsg: ""}, nil + } + group, err := im_mysql_model.FindGroupInfoByGroupId(req.GroupID) + if err != nil { + log.NewError(req.OperationID, "FindGroupInfoByGroupId failed ", req.GroupID) + return &pbGroup.CommonResp{ErrorCode: 0, ErrorMsg: ""}, nil + } + chat.ReceiveJoinApplicationNotification(req.OperationID, memberList[0].UserID, applicationUserInfo, group) + + log.NewInfo(req.OperationID, "ReceiveJoinApplicationNotification rpc JoinGroup success return") + return &pbGroup.CommonResp{ErrorCode: 0, ErrorMsg: ""}, nil } diff --git a/internal/rpc/group/set_group_info.go b/internal/rpc/group/set_group_info.go index 3e1f25854..55532a04e 100644 --- a/internal/rpc/group/set_group_info.go +++ b/internal/rpc/group/set_group_info.go @@ -1,6 +1,7 @@ package group import ( + "Open_IM/internal/rpc/chat" "Open_IM/pkg/common/constant" "Open_IM/pkg/common/db/mysql_model/im_mysql_model" "Open_IM/pkg/common/log" @@ -18,6 +19,7 @@ func (s *groupServer) SetGroupInfo(ctx context.Context, req *pbGroup.SetGroupInf log.Error(req.Token, req.OperationID, "err=%s,parse token failed", err.Error()) return &pbGroup.CommonResp{ErrorCode: constant.ErrParseToken.ErrCode, ErrorMsg: constant.ErrParseToken.ErrMsg}, nil } + groupUserInfo, err := im_mysql_model.FindGroupMemberInfoByGroupIdAndUserId(req.GroupID, claims.UID) if err != nil { log.Error("", req.OperationID, "your are not in the group,can not change this group info,err=%s", err.Error()) @@ -26,21 +28,33 @@ func (s *groupServer) SetGroupInfo(ctx context.Context, req *pbGroup.SetGroupInf if groupUserInfo.AdministratorLevel == constant.OrdinaryMember { return &pbGroup.CommonResp{ErrorCode: constant.ErrSetGroupInfo.ErrCode, ErrorMsg: constant.ErrAccess.ErrMsg}, nil } + group, err := im_mysql_model.FindGroupInfoByGroupId(req.GroupID) + if err != nil { + log.NewError(req.OperationID, "FindGroupInfoByGroupId failed, ", err.Error(), req.GroupID) + return &pbGroup.CommonResp{ErrorCode: constant.ErrSetGroupInfo.ErrCode, ErrorMsg: constant.ErrAccess.ErrMsg}, nil + } + ////bitwise operators: 1:groupName; 10:Notification 100:Introduction; 1000:FaceUrl + var changedType int32 + if group.GroupName != req.GroupName && req.GroupName != "" { + changedType = 1 + } + if group.Notification != req.Notification && req.Notification != "" { + changedType = changedType | (1 << 1) + } + if group.Introduction != req.Introduction && req.Introduction != "" { + changedType = changedType | (1 << 2) + } + if group.FaceUrl != req.FaceUrl && req.FaceUrl != "" { + changedType = changedType | (1 << 3) + } //only administrators can set group information if err = im_mysql_model.SetGroupInfo(req.GroupID, req.GroupName, req.Introduction, req.Notification, req.FaceUrl, ""); err != nil { return &pbGroup.CommonResp{ErrorCode: constant.ErrSetGroupInfo.ErrCode, ErrorMsg: constant.ErrSetGroupInfo.ErrMsg}, nil } - ////Push message when set group info - //jsonInfo, _ := json.Marshal(req) - //logic.SendMsgByWS(&pbChat.WSToMsgSvrChatMsg{ - // SendID: claims.UID, - // RecvID: req.GroupID, - // Content: string(jsonInfo), - // SendTime: utils.GetCurrentTimestampBySecond(), - // MsgFrom: constant.SysMsgType, - // ContentType: constant.SetGroupInfoTip, - // SessionType: constant.GroupChatType, - // OperationID: req.OperationID, - //}) + + if changedType != 0 { + chat.GroupInfoChangedNotification(req.OperationID, claims.UID, changedType, group, groupUserInfo) + } + return &pbGroup.CommonResp{}, nil } diff --git a/pkg/common/config/config.go b/pkg/common/config/config.go index 2385cffc4..8e4f198e8 100644 --- a/pkg/common/config/config.go +++ b/pkg/common/config/config.go @@ -1,6 +1,7 @@ package config import ( + "fmt" "io/ioutil" "os" "path/filepath" @@ -158,6 +159,59 @@ type config struct { CallbackUrl string `yaml:"callbackUrl"` CallBackTimeOut int `yaml:"callbackTimeOut"` } + IOSPush struct { + PushSound string `yaml:"pushSound"` + BadgeCount bool `yaml:"badgeCount"` + } + Notification struct { + GroupCreated struct { + Conversation struct { + ConversationChanged bool `yaml:"conversationChanged"` + UnreadCount bool `yaml:"unreadCount"` + } + OfflinePush struct { + PushSwitch bool `yaml:"switch"` + Title string `yaml:"title"` + Desc string `yaml:"desc"` + Ext string `yaml:"ext"` + } + DefaultTips struct { + Tips string `yaml:"tips"` + } + } + + GroupInfoChanged struct { + Conversation struct { + ConversationChanged bool `yaml:"conversationChanged"` + UnreadCount bool `yaml:"unreadCount"` + } + OfflinePush struct { + PushSwitch bool `yaml:"switch"` + Title string `yaml:"title"` + Desc string `yaml:"desc"` + Ext string `yaml:"ext"` + } + DefaultTips struct { + Tips string `yaml:"tips"` + } + } + + ApplyJoinGroup struct { + Conversation struct { + ConversationChanged bool `yaml:"conversationChanged"` + UnreadCount bool `yaml:"unreadCount"` + } + OfflinePush struct { + PushSwitch bool `yaml:"switch"` + Title string `yaml:"title"` + Desc string `yaml:"desc"` + Ext string `yaml:"ext"` + } + DefaultTips struct { + Tips string `yaml:"tips"` + } + } + } Demo struct { Port []int `yaml:"openImDemoPort"` AliSMSVerify struct { @@ -200,5 +254,5 @@ func init() { if err = yaml.Unmarshal(bytes, &Config); err != nil { panic(err.Error()) } - + fmt.Println("load config: ", Config) } diff --git a/pkg/common/constant/constant.go b/pkg/common/constant/constant.go index c00b98c7d..9cabc19b3 100644 --- a/pkg/common/constant/constant.go +++ b/pkg/common/constant/constant.go @@ -54,13 +54,14 @@ const ( TransferGroupOwnerTip = 501 CreateGroupTip = 502 GroupApplicationResponseTip = 503 - JoinGroupTip = 504 + ApplyJoinGroupTip = 504 QuitGroupTip = 505 SetGroupInfoTip = 506 AcceptGroupApplicationTip = 507 RefuseGroupApplicationTip = 508 KickGroupMemberTip = 509 InviteUserToGroupTip = 510 + ChangeGroupInfoTip = 511 //MsgFrom UserMsgType = 100 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 ce029a0bb..8eefd1c63 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 @@ -12,10 +12,10 @@ func InsertToFriend(ownerId, friendId string, flag int32) error { return err } toInsertFollow := Friend{ - OwnerId: ownerId, - FriendId: friendId, - FriendFlag: flag, - CreateTime: time.Now(), + OwnerUserID: ownerId, + FriendUserID: friendId, + FriendFlag: flag, + CreateTime: time.Now(), } err = dbConn.Table("friend").Create(toInsertFollow).Error if err != nil { diff --git a/pkg/common/db/mysql_model/im_mysql_model/group_member_model.go b/pkg/common/db/mysql_model/im_mysql_model/group_member_model.go index a31f973e1..46381dd45 100644 --- a/pkg/common/db/mysql_model/im_mysql_model/group_member_model.go +++ b/pkg/common/db/mysql_model/im_mysql_model/group_member_model.go @@ -10,7 +10,7 @@ func InsertIntoGroupMember(groupId, uid, nickName, userGroupFaceUrl string, admi if err != nil { return err } - toInsertInfo := GroupMember{GroupId: groupId, Uid: uid, NickName: nickName, AdministratorLevel: administratorLevel, JoinTime: time.Now(), UserGroupFaceUrl: userGroupFaceUrl} + toInsertInfo := GroupMember{GroupID: groupId, UserID: uid, NickName: nickName, AdministratorLevel: administratorLevel, JoinTime: time.Now(), FaceUrl: userGroupFaceUrl} err = dbConn.Table("group_member").Create(toInsertInfo).Error if err != nil { return err @@ -206,7 +206,7 @@ func GetGroupOwnerByGroupId(groupId string) string { } for _, v := range omList { if v.AdministratorLevel == 1 { - return v.Uid + return v.UserID } } return "" diff --git a/pkg/common/db/mysql_model/im_mysql_model/group_model.go b/pkg/common/db/mysql_model/im_mysql_model/group_model.go index 2988741e5..798f9bf1d 100644 --- a/pkg/common/db/mysql_model/im_mysql_model/group_model.go +++ b/pkg/common/db/mysql_model/im_mysql_model/group_model.go @@ -17,7 +17,7 @@ func InsertIntoGroup(groupId, name, introduction, notification, faceUrl, ex stri if name == "" { name = "groupChat" } - toInsertInfo := Group{GroupId: groupId, Name: name, Introduction: introduction, Notification: notification, FaceUrl: faceUrl, CreateTime: time.Now(), Ex: ex} + toInsertInfo := Group{GroupID: groupId, GroupName: name, Introduction: introduction, Notification: notification, FaceUrl: faceUrl, CreateTime: time.Now(), Ex: ex} err = dbConn.Table("group").Create(toInsertInfo).Error if err != nil { return err @@ -174,7 +174,7 @@ func TransferGroupOwner(pb *group.TransferGroupOwnerReq) (*group.TransferGroupOw return nil, err } - if oldOwner.Uid == newOwner.Uid { + if oldOwner.UserID == newOwner.UserID { return nil, errors.New("the self") } @@ -248,55 +248,5 @@ func GroupApplicationResponse(pb *group.GroupApplicationResponseReq) (*group.Gro } } - //if err != nil { - // err = dbConn.Raw("select * from `group_request` where handled_user = ? and group_id = ? and to_user_id = ? and from_user_id = ?", "", pb.GroupID, "0", pb.UID).Scan(&groupRequest).Error - // if err != nil { - // return nil, err - // } - // if pb.Flag == 1 { - // err = dbConn.Exec("update `group_request` set flag = ?, handled_msg = ?, handled_user = ? where group_id = ? and to_user_id = ? and from_user_id = ?", - // pb.Flag, pb.RespMsg, pb.OwnerID, pb.GroupID, "0", pb.UID).Error - // if err != nil { - // return nil, err - // } - // - // // add to group member - // err = InsertIntoGroupMember(pb.GroupID, pb.UID, groupRequest.FromUserNickname, groupRequest.FromUserFaceUrl, 0) - // if err != nil { - // return nil, err - // } - // } else if pb.Flag == -1 { - // err = dbConn.Exec("update `group_request` set flag = ?, handled_msg = ?, handled_user = ? where group_id = ? and to_user_id = ? and from_user_id = ?", - // pb.Flag, pb.RespMsg, pb.OwnerID, pb.GroupID, "0", pb.UID).Error - // if err != nil { - // return nil, err - // } - // } else { - // return nil, errors.New("flag error") - // } - //} else { - // if pb.Flag == 1 { - // err = dbConn.Exec("update `group_request` set flag = ?, handled_msg = ?, handled_user = ? where group_id = ? and to_user_id = ?", - // pb.Flag, pb.RespMsg, pb.OwnerID, pb.GroupID, pb.UID).Error - // if err != nil { - // return nil, err - // } - // - // // add to group member - // err = InsertIntoGroupMember(pb.GroupID, pb.UID, groupRequest.ToUserNickname, groupRequest.ToUserFaceUrl, 0) - // if err != nil { - // return nil, err - // } - // } else if pb.Flag == -1 { - // err = dbConn.Exec("update `group_request` set flag = ?, handled_msg = ?, handled_user = ? where group_id = ? and to_user_id = ?", - // pb.Flag, pb.RespMsg, pb.OwnerID, pb.GroupID, pb.UID).Error - // if err != nil { - // return nil, err - // } - // } else { - // return nil, errors.New("flag error") - // } - //} - return &group.GroupApplicationResponseResp{}, nil } diff --git a/pkg/common/db/mysql_model/im_mysql_model/model_struct.go b/pkg/common/db/mysql_model/im_mysql_model/model_struct.go index d8576ac19..198362ca2 100644 --- a/pkg/common/db/mysql_model/im_mysql_model/model_struct.go +++ b/pkg/common/db/mysql_model/im_mysql_model/model_struct.go @@ -3,9 +3,9 @@ package im_mysql_model import "time" type User struct { - UID string `gorm:"column:uid;primaryKey;"` - Name string `gorm:"column:name"` - Icon string `gorm:"column:icon"` + UserID string `gorm:"column:uid;primaryKey;"` + Nickname string `gorm:"column:name"` + FaceUrl string `gorm:"column:icon"` Gender int32 `gorm:"column:gender"` Mobile string `gorm:"column:mobile"` Birth string `gorm:"column:birth"` @@ -15,28 +15,28 @@ type User struct { } type Friend struct { - OwnerId string `gorm:"column:owner_id"` - FriendId string `gorm:"column:friend_id"` - Comment string `gorm:"column:comment"` - FriendFlag int32 `gorm:"column:friend_flag"` - CreateTime time.Time `gorm:"column:create_time"` + OwnerUserID string `gorm:"column:owner_id"` + FriendUserID string `gorm:"column:friend_id"` + Remark string `gorm:"column:comment"` + FriendFlag int32 `gorm:"column:friend_flag"` + CreateTime time.Time `gorm:"column:create_time"` } type FriendRequest struct { - ReqId string `gorm:"column:req_id"` - Uid string `gorm:"column:user_id"` + ReqID string `gorm:"column:req_id"` + UserID string `gorm:"column:user_id"` Flag int32 `gorm:"column:flag"` ReqMessage string `gorm:"column:req_message"` CreateTime time.Time `gorm:"column:create_time"` } type BlackList struct { - OwnerId string `gorm:"column:owner_id"` - BlockId string `gorm:"column:block_id"` - CreateTime time.Time `gorm:"column:create_time"` + OwnerUserID string `gorm:"column:owner_id"` + BlockUserID string `gorm:"column:block_id"` + CreateTime time.Time `gorm:"column:create_time"` } type Group struct { - GroupId string `gorm:"column:group_id"` - Name string `gorm:"column:name"` + GroupID string `gorm:"column:group_id"` + GroupName string `gorm:"column:name"` Introduction string `gorm:"column:introduction"` Notification string `gorm:"column:notification"` FaceUrl string `gorm:"column:face_url"` @@ -45,12 +45,12 @@ type Group struct { } type GroupMember struct { - GroupId string `gorm:"column:group_id"` - Uid string `gorm:"column:uid"` + GroupID string `gorm:"column:group_id"` + UserID string `gorm:"column:uid"` NickName string `gorm:"column:nickname"` AdministratorLevel int32 `gorm:"column:administrator_level"` JoinTime time.Time `gorm:"column:join_time"` - UserGroupFaceUrl string `gorm:"user_group_face_url"` + FaceUrl string `gorm:"user_group_face_url"` } type GroupRequest struct { diff --git a/pkg/common/db/mysql_model/im_mysql_model/user_black_list_model.go b/pkg/common/db/mysql_model/im_mysql_model/user_black_list_model.go index 907b0f223..39ad51a13 100644 --- a/pkg/common/db/mysql_model/im_mysql_model/user_black_list_model.go +++ b/pkg/common/db/mysql_model/im_mysql_model/user_black_list_model.go @@ -10,7 +10,7 @@ func InsertInToUserBlackList(ownerID, blockID string) error { if err != nil { return err } - toInsertInfo := BlackList{OwnerId: ownerID, BlockId: blockID, CreateTime: time.Now()} + toInsertInfo := BlackList{OwnerUserID: ownerID, BlockUserID: blockID, CreateTime: time.Now()} err = dbConn.Table("user_black_list").Create(toInsertInfo).Error return err } 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 be4e60069..98ddcb7fc 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 @@ -30,9 +30,9 @@ func UserRegister(pb *pbAuth.UserRegisterReq) error { return err } addUser := User{ - UID: pb.UID, - Name: pb.Name, - Icon: pb.Icon, + UserID: pb.UID, + Nickname: pb.Name, + FaceUrl: pb.Icon, Gender: pb.Gender, Mobile: pb.Mobile, Birth: pb.Birth, diff --git a/pkg/common/db/mysql_model/im_mysql_msg_model/receive_model.go b/pkg/common/db/mysql_model/im_mysql_msg_model/receive_model.go index 3973f71ef..48d5f6c4d 100644 --- a/pkg/common/db/mysql_model/im_mysql_msg_model/receive_model.go +++ b/pkg/common/db/mysql_model/im_mysql_msg_model/receive_model.go @@ -17,20 +17,3 @@ type Receive struct { MsgId string CreateTime *time.Time } - -//func InsertMessageToReceive(seq int64, userid, msgid string) error { -// conn := db.NewDbConnection() -// receive := Receive{ -// UID: userid, -// Seq: seq, -// MsgId: msgid, -// } -// err := conn.Table("receive").Create(&receive).Error -// return err -//} -//func GetBiggestSeqFromReceive(userid string) (seq int64, err error) { -// //得到数据库的连接(并非真连接,调用时才连接,由gorm自动维护数据库连接池) -// conn := db.NewDbConnection() -// err = conn.Raw("select max(seq) from receive where user_id = ?", userid).Row().Scan(&seq) -// return seq, err -//} diff --git a/pkg/proto/chat/chat.pb.go b/pkg/proto/chat/chat.pb.go index dfe51b472..d208317a5 100644 --- a/pkg/proto/chat/chat.pb.go +++ b/pkg/proto/chat/chat.pb.go @@ -1,16 +1,12 @@ // Code generated by protoc-gen-go. DO NOT EDIT. -// source: chat/chat.proto +// source: chat.proto -package pbChat // import "./chat" +package pbChat 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" -) +import sdk_ws "Open_IM/pkg/proto/sdk_ws" // Reference imports to suppress errors if they are not otherwise used. var _ = proto.Marshal @@ -50,7 +46,7 @@ func (m *WSToMsgSvrChatMsg) Reset() { *m = WSToMsgSvrChatMsg{} } func (m *WSToMsgSvrChatMsg) String() string { return proto.CompactTextString(m) } func (*WSToMsgSvrChatMsg) ProtoMessage() {} func (*WSToMsgSvrChatMsg) Descriptor() ([]byte, []int) { - return fileDescriptor_chat_163a8d226aa6edb5, []int{0} + return fileDescriptor_chat_955d1f0dcca586dd, []int{0} } func (m *WSToMsgSvrChatMsg) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_WSToMsgSvrChatMsg.Unmarshal(m, b) @@ -215,7 +211,7 @@ func (m *MsgSvrToPushSvrChatMsg) Reset() { *m = MsgSvrToPushSvrChatMsg{} func (m *MsgSvrToPushSvrChatMsg) String() string { return proto.CompactTextString(m) } func (*MsgSvrToPushSvrChatMsg) ProtoMessage() {} func (*MsgSvrToPushSvrChatMsg) Descriptor() ([]byte, []int) { - return fileDescriptor_chat_163a8d226aa6edb5, []int{1} + return fileDescriptor_chat_955d1f0dcca586dd, []int{1} } func (m *MsgSvrToPushSvrChatMsg) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MsgSvrToPushSvrChatMsg.Unmarshal(m, b) @@ -361,7 +357,7 @@ func (m *PullMessageReq) Reset() { *m = PullMessageReq{} } func (m *PullMessageReq) String() string { return proto.CompactTextString(m) } func (*PullMessageReq) ProtoMessage() {} func (*PullMessageReq) Descriptor() ([]byte, []int) { - return fileDescriptor_chat_163a8d226aa6edb5, []int{2} + return fileDescriptor_chat_955d1f0dcca586dd, []int{2} } func (m *PullMessageReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_PullMessageReq.Unmarshal(m, b) @@ -425,7 +421,7 @@ func (m *PullMessageResp) Reset() { *m = PullMessageResp{} } func (m *PullMessageResp) String() string { return proto.CompactTextString(m) } func (*PullMessageResp) ProtoMessage() {} func (*PullMessageResp) Descriptor() ([]byte, []int) { - return fileDescriptor_chat_163a8d226aa6edb5, []int{3} + return fileDescriptor_chat_955d1f0dcca586dd, []int{3} } func (m *PullMessageResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_PullMessageResp.Unmarshal(m, b) @@ -500,7 +496,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_chat_163a8d226aa6edb5, []int{4} + return fileDescriptor_chat_955d1f0dcca586dd, []int{4} } func (m *PullMessageBySeqListReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_PullMessageBySeqListReq.Unmarshal(m, b) @@ -553,7 +549,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_chat_163a8d226aa6edb5, []int{5} + return fileDescriptor_chat_955d1f0dcca586dd, []int{5} } func (m *GetMaxAndMinSeqReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetMaxAndMinSeqReq.Unmarshal(m, b) @@ -601,7 +597,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_chat_163a8d226aa6edb5, []int{6} + return fileDescriptor_chat_955d1f0dcca586dd, []int{6} } func (m *GetMaxAndMinSeqResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetMaxAndMinSeqResp.Unmarshal(m, b) @@ -651,9 +647,9 @@ func (m *GetMaxAndMinSeqResp) GetMinSeq() int64 { type GatherFormat struct { // @inject_tag: json:"id" - ID string `protobuf:"bytes,1,opt,name=ID" json:"id"` + ID string `protobuf:"bytes,1,opt,name=ID" json:"ID,omitempty"` // @inject_tag: json:"list" - List []*MsgFormat `protobuf:"bytes,2,rep,name=List" json:"list"` + List []*MsgFormat `protobuf:"bytes,2,rep,name=List" json:"List,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -663,7 +659,7 @@ func (m *GatherFormat) Reset() { *m = GatherFormat{} } func (m *GatherFormat) String() string { return proto.CompactTextString(m) } func (*GatherFormat) ProtoMessage() {} func (*GatherFormat) Descriptor() ([]byte, []int) { - return fileDescriptor_chat_163a8d226aa6edb5, []int{7} + return fileDescriptor_chat_955d1f0dcca586dd, []int{7} } func (m *GatherFormat) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GatherFormat.Unmarshal(m, b) @@ -699,29 +695,29 @@ func (m *GatherFormat) GetList() []*MsgFormat { type MsgFormat struct { // @inject_tag: json:"sendID" - SendID string `protobuf:"bytes,1,opt,name=SendID" json:"sendID"` + SendID string `protobuf:"bytes,1,opt,name=SendID" json:"SendID,omitempty"` // @inject_tag: json:"recvID" - RecvID string `protobuf:"bytes,2,opt,name=RecvID" json:"recvID"` + RecvID string `protobuf:"bytes,2,opt,name=RecvID" json:"RecvID,omitempty"` // @inject_tag: json:"msgFrom" - MsgFrom int32 `protobuf:"varint,3,opt,name=MsgFrom" json:"msgFrom"` + MsgFrom int32 `protobuf:"varint,3,opt,name=MsgFrom" json:"MsgFrom,omitempty"` // @inject_tag: json:"contentType" - ContentType int32 `protobuf:"varint,4,opt,name=ContentType" json:"contentType"` + ContentType int32 `protobuf:"varint,4,opt,name=ContentType" json:"ContentType,omitempty"` // @inject_tag: json:"serverMsgID" - ServerMsgID string `protobuf:"bytes,5,opt,name=ServerMsgID" json:"serverMsgID"` + ServerMsgID string `protobuf:"bytes,5,opt,name=ServerMsgID" json:"ServerMsgID,omitempty"` // @inject_tag: json:"content" - Content string `protobuf:"bytes,6,opt,name=Content" json:"content"` + Content string `protobuf:"bytes,6,opt,name=Content" json:"Content,omitempty"` // @inject_tag: json:"seq" - Seq int64 `protobuf:"varint,7,opt,name=Seq" json:"seq"` + Seq int64 `protobuf:"varint,7,opt,name=Seq" json:"Seq,omitempty"` // @inject_tag: json:"sendTime" - SendTime int64 `protobuf:"varint,8,opt,name=SendTime" json:"sendTime"` + SendTime int64 `protobuf:"varint,8,opt,name=SendTime" json:"SendTime,omitempty"` // @inject_tag: json:"senderPlatformID" - SenderPlatformID int32 `protobuf:"varint,9,opt,name=SenderPlatformID" json:"senderPlatformID"` + SenderPlatformID int32 `protobuf:"varint,9,opt,name=SenderPlatformID" json:"SenderPlatformID,omitempty"` // @inject_tag: json:"senderNickName" - SenderNickName string `protobuf:"bytes,10,opt,name=SenderNickName" json:"senderNickName"` + SenderNickName string `protobuf:"bytes,10,opt,name=SenderNickName" json:"SenderNickName,omitempty"` // @inject_tag: json:"senderFaceUrl" - SenderFaceURL string `protobuf:"bytes,11,opt,name=SenderFaceURL" json:"senderFaceUrl"` + SenderFaceURL string `protobuf:"bytes,11,opt,name=SenderFaceURL" json:"SenderFaceURL,omitempty"` // @inject_tag: json:"clientMsgID" - ClientMsgID string `protobuf:"bytes,12,opt,name=ClientMsgID" json:"clientMsgID"` + ClientMsgID string `protobuf:"bytes,12,opt,name=ClientMsgID" json:"ClientMsgID,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -731,7 +727,7 @@ func (m *MsgFormat) Reset() { *m = MsgFormat{} } func (m *MsgFormat) String() string { return proto.CompactTextString(m) } func (*MsgFormat) ProtoMessage() {} func (*MsgFormat) Descriptor() ([]byte, []int) { - return fileDescriptor_chat_163a8d226aa6edb5, []int{8} + return fileDescriptor_chat_955d1f0dcca586dd, []int{8} } func (m *MsgFormat) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MsgFormat.Unmarshal(m, b) @@ -835,181 +831,61 @@ func (m *MsgFormat) GetClientMsgID() string { return "" } -type UserSendMsgReq struct { - ReqIdentifier int32 `protobuf:"varint,1,opt,name=ReqIdentifier" json:"ReqIdentifier,omitempty"` - Token string `protobuf:"bytes,2,opt,name=Token" json:"Token,omitempty"` - SendID string `protobuf:"bytes,3,opt,name=SendID" json:"SendID,omitempty"` - OperationID string `protobuf:"bytes,4,opt,name=OperationID" json:"OperationID,omitempty"` - SenderNickName string `protobuf:"bytes,5,opt,name=SenderNickName" json:"SenderNickName,omitempty"` - SenderFaceURL string `protobuf:"bytes,6,opt,name=SenderFaceURL" json:"SenderFaceURL,omitempty"` - PlatformID int32 `protobuf:"varint,7,opt,name=PlatformID" json:"PlatformID,omitempty"` - SessionType int32 `protobuf:"varint,8,opt,name=SessionType" json:"SessionType,omitempty"` - MsgFrom int32 `protobuf:"varint,9,opt,name=MsgFrom" json:"MsgFrom,omitempty"` - ContentType int32 `protobuf:"varint,10,opt,name=ContentType" json:"ContentType,omitempty"` - RecvID string `protobuf:"bytes,11,opt,name=RecvID" json:"RecvID,omitempty"` - ForceList []string `protobuf:"bytes,12,rep,name=ForceList" json:"ForceList,omitempty"` - Content string `protobuf:"bytes,13,opt,name=Content" json:"Content,omitempty"` - Options string `protobuf:"bytes,14,opt,name=Options" json:"Options,omitempty"` - ClientMsgID string `protobuf:"bytes,15,opt,name=ClientMsgID" json:"ClientMsgID,omitempty"` - OffLineInfo string `protobuf:"bytes,16,opt,name=OffLineInfo" json:"OffLineInfo,omitempty"` - Ex string `protobuf:"bytes,17,opt,name=Ex" json:"Ex,omitempty"` - SendTime int64 `protobuf:"varint,18,opt,name=sendTime" json:"sendTime,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` +type SendMsgReq struct { + Token string `protobuf:"bytes,1,opt,name=token" json:"token,omitempty"` + OperationID string `protobuf:"bytes,2,opt,name=operationID" json:"operationID,omitempty"` + MsgData *sdk_ws.MsgData `protobuf:"bytes,3,opt,name=msgData" json:"msgData,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (m *UserSendMsgReq) Reset() { *m = UserSendMsgReq{} } -func (m *UserSendMsgReq) String() string { return proto.CompactTextString(m) } -func (*UserSendMsgReq) ProtoMessage() {} -func (*UserSendMsgReq) Descriptor() ([]byte, []int) { - return fileDescriptor_chat_163a8d226aa6edb5, []int{9} +func (m *SendMsgReq) Reset() { *m = SendMsgReq{} } +func (m *SendMsgReq) String() string { return proto.CompactTextString(m) } +func (*SendMsgReq) ProtoMessage() {} +func (*SendMsgReq) Descriptor() ([]byte, []int) { + return fileDescriptor_chat_955d1f0dcca586dd, []int{9} } -func (m *UserSendMsgReq) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_UserSendMsgReq.Unmarshal(m, b) +func (m *SendMsgReq) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_SendMsgReq.Unmarshal(m, b) } -func (m *UserSendMsgReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_UserSendMsgReq.Marshal(b, m, deterministic) +func (m *SendMsgReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_SendMsgReq.Marshal(b, m, deterministic) } -func (dst *UserSendMsgReq) XXX_Merge(src proto.Message) { - xxx_messageInfo_UserSendMsgReq.Merge(dst, src) +func (dst *SendMsgReq) XXX_Merge(src proto.Message) { + xxx_messageInfo_SendMsgReq.Merge(dst, src) } -func (m *UserSendMsgReq) XXX_Size() int { - return xxx_messageInfo_UserSendMsgReq.Size(m) +func (m *SendMsgReq) XXX_Size() int { + return xxx_messageInfo_SendMsgReq.Size(m) } -func (m *UserSendMsgReq) XXX_DiscardUnknown() { - xxx_messageInfo_UserSendMsgReq.DiscardUnknown(m) +func (m *SendMsgReq) XXX_DiscardUnknown() { + xxx_messageInfo_SendMsgReq.DiscardUnknown(m) } -var xxx_messageInfo_UserSendMsgReq proto.InternalMessageInfo +var xxx_messageInfo_SendMsgReq proto.InternalMessageInfo -func (m *UserSendMsgReq) GetReqIdentifier() int32 { - if m != nil { - return m.ReqIdentifier - } - return 0 -} - -func (m *UserSendMsgReq) GetToken() string { +func (m *SendMsgReq) GetToken() string { if m != nil { return m.Token } return "" } -func (m *UserSendMsgReq) GetSendID() string { - if m != nil { - return m.SendID - } - return "" -} - -func (m *UserSendMsgReq) GetOperationID() string { +func (m *SendMsgReq) GetOperationID() string { if m != nil { return m.OperationID } return "" } -func (m *UserSendMsgReq) GetSenderNickName() string { - if m != nil { - return m.SenderNickName - } - return "" -} - -func (m *UserSendMsgReq) GetSenderFaceURL() string { +func (m *SendMsgReq) GetMsgData() *sdk_ws.MsgData { if m != nil { - return m.SenderFaceURL - } - return "" -} - -func (m *UserSendMsgReq) GetPlatformID() int32 { - if m != nil { - return m.PlatformID - } - return 0 -} - -func (m *UserSendMsgReq) GetSessionType() int32 { - if m != nil { - return m.SessionType - } - return 0 -} - -func (m *UserSendMsgReq) GetMsgFrom() int32 { - if m != nil { - return m.MsgFrom - } - return 0 -} - -func (m *UserSendMsgReq) GetContentType() int32 { - if m != nil { - return m.ContentType - } - return 0 -} - -func (m *UserSendMsgReq) GetRecvID() string { - if m != nil { - return m.RecvID - } - return "" -} - -func (m *UserSendMsgReq) GetForceList() []string { - if m != nil { - return m.ForceList + return m.MsgData } return nil } -func (m *UserSendMsgReq) GetContent() string { - if m != nil { - return m.Content - } - return "" -} - -func (m *UserSendMsgReq) GetOptions() string { - if m != nil { - return m.Options - } - return "" -} - -func (m *UserSendMsgReq) GetClientMsgID() string { - if m != nil { - return m.ClientMsgID - } - return "" -} - -func (m *UserSendMsgReq) GetOffLineInfo() string { - if m != nil { - return m.OffLineInfo - } - return "" -} - -func (m *UserSendMsgReq) GetEx() string { - if m != nil { - return m.Ex - } - return "" -} - -func (m *UserSendMsgReq) GetSendTime() int64 { - if m != nil { - return m.SendTime - } - return 0 -} - -type UserSendMsgResp struct { +type SendMsgResp struct { ErrCode int32 `protobuf:"varint,1,opt,name=ErrCode" json:"ErrCode,omitempty"` ErrMsg string `protobuf:"bytes,2,opt,name=ErrMsg" json:"ErrMsg,omitempty"` ReqIdentifier int32 `protobuf:"varint,3,opt,name=ReqIdentifier" json:"ReqIdentifier,omitempty"` @@ -1021,66 +897,66 @@ type UserSendMsgResp struct { XXX_sizecache int32 `json:"-"` } -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_chat_163a8d226aa6edb5, []int{10} +func (m *SendMsgResp) Reset() { *m = SendMsgResp{} } +func (m *SendMsgResp) String() string { return proto.CompactTextString(m) } +func (*SendMsgResp) ProtoMessage() {} +func (*SendMsgResp) Descriptor() ([]byte, []int) { + return fileDescriptor_chat_955d1f0dcca586dd, []int{10} } -func (m *UserSendMsgResp) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_UserSendMsgResp.Unmarshal(m, b) +func (m *SendMsgResp) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_SendMsgResp.Unmarshal(m, b) } -func (m *UserSendMsgResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_UserSendMsgResp.Marshal(b, m, deterministic) +func (m *SendMsgResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_SendMsgResp.Marshal(b, m, deterministic) } -func (dst *UserSendMsgResp) XXX_Merge(src proto.Message) { - xxx_messageInfo_UserSendMsgResp.Merge(dst, src) +func (dst *SendMsgResp) XXX_Merge(src proto.Message) { + xxx_messageInfo_SendMsgResp.Merge(dst, src) } -func (m *UserSendMsgResp) XXX_Size() int { - return xxx_messageInfo_UserSendMsgResp.Size(m) +func (m *SendMsgResp) XXX_Size() int { + return xxx_messageInfo_SendMsgResp.Size(m) } -func (m *UserSendMsgResp) XXX_DiscardUnknown() { - xxx_messageInfo_UserSendMsgResp.DiscardUnknown(m) +func (m *SendMsgResp) XXX_DiscardUnknown() { + xxx_messageInfo_SendMsgResp.DiscardUnknown(m) } -var xxx_messageInfo_UserSendMsgResp proto.InternalMessageInfo +var xxx_messageInfo_SendMsgResp proto.InternalMessageInfo -func (m *UserSendMsgResp) GetErrCode() int32 { +func (m *SendMsgResp) GetErrCode() int32 { if m != nil { return m.ErrCode } return 0 } -func (m *UserSendMsgResp) GetErrMsg() string { +func (m *SendMsgResp) GetErrMsg() string { if m != nil { return m.ErrMsg } return "" } -func (m *UserSendMsgResp) GetReqIdentifier() int32 { +func (m *SendMsgResp) GetReqIdentifier() int32 { if m != nil { return m.ReqIdentifier } return 0 } -func (m *UserSendMsgResp) GetServerMsgID() string { +func (m *SendMsgResp) GetServerMsgID() string { if m != nil { return m.ServerMsgID } return "" } -func (m *UserSendMsgResp) GetClientMsgID() string { +func (m *SendMsgResp) GetClientMsgID() string { if m != nil { return m.ClientMsgID } return "" } -func (m *UserSendMsgResp) GetSendTime() int64 { +func (m *SendMsgResp) GetSendTime() int64 { if m != nil { return m.SendTime } @@ -1097,245 +973,70 @@ func init() { proto.RegisterType((*GetMaxAndMinSeqResp)(nil), "pbChat.GetMaxAndMinSeqResp") proto.RegisterType((*GatherFormat)(nil), "pbChat.GatherFormat") proto.RegisterType((*MsgFormat)(nil), "pbChat.MsgFormat") - proto.RegisterType((*UserSendMsgReq)(nil), "pbChat.UserSendMsgReq") - proto.RegisterType((*UserSendMsgResp)(nil), "pbChat.UserSendMsgResp") -} - -// 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 Chat service - -type ChatClient interface { - GetMaxAndMinSeq(ctx context.Context, in *GetMaxAndMinSeqReq, opts ...grpc.CallOption) (*GetMaxAndMinSeqResp, error) - PullMessage(ctx context.Context, in *PullMessageReq, opts ...grpc.CallOption) (*PullMessageResp, error) - PullMessageBySeqList(ctx context.Context, in *PullMessageBySeqListReq, opts ...grpc.CallOption) (*PullMessageResp, error) - UserSendMsg(ctx context.Context, in *UserSendMsgReq, opts ...grpc.CallOption) (*UserSendMsgResp, error) -} - -type chatClient struct { - cc *grpc.ClientConn -} - -func NewChatClient(cc *grpc.ClientConn) ChatClient { - return &chatClient{cc} -} - -func (c *chatClient) GetMaxAndMinSeq(ctx context.Context, in *GetMaxAndMinSeqReq, opts ...grpc.CallOption) (*GetMaxAndMinSeqResp, error) { - out := new(GetMaxAndMinSeqResp) - err := grpc.Invoke(ctx, "/pbChat.Chat/GetMaxAndMinSeq", in, out, c.cc, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *chatClient) PullMessage(ctx context.Context, in *PullMessageReq, opts ...grpc.CallOption) (*PullMessageResp, error) { - out := new(PullMessageResp) - err := grpc.Invoke(ctx, "/pbChat.Chat/PullMessage", in, out, c.cc, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *chatClient) PullMessageBySeqList(ctx context.Context, in *PullMessageBySeqListReq, opts ...grpc.CallOption) (*PullMessageResp, error) { - out := new(PullMessageResp) - err := grpc.Invoke(ctx, "/pbChat.Chat/PullMessageBySeqList", in, out, c.cc, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *chatClient) UserSendMsg(ctx context.Context, in *UserSendMsgReq, opts ...grpc.CallOption) (*UserSendMsgResp, error) { - out := new(UserSendMsgResp) - err := grpc.Invoke(ctx, "/pbChat.Chat/UserSendMsg", in, out, c.cc, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -// Server API for Chat service - -type ChatServer interface { - GetMaxAndMinSeq(context.Context, *GetMaxAndMinSeqReq) (*GetMaxAndMinSeqResp, error) - PullMessage(context.Context, *PullMessageReq) (*PullMessageResp, error) - PullMessageBySeqList(context.Context, *PullMessageBySeqListReq) (*PullMessageResp, error) - UserSendMsg(context.Context, *UserSendMsgReq) (*UserSendMsgResp, error) -} - -func RegisterChatServer(s *grpc.Server, srv ChatServer) { - s.RegisterService(&_Chat_serviceDesc, srv) -} - -func _Chat_GetMaxAndMinSeq_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(GetMaxAndMinSeqReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(ChatServer).GetMaxAndMinSeq(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/pbChat.Chat/GetMaxAndMinSeq", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(ChatServer).GetMaxAndMinSeq(ctx, req.(*GetMaxAndMinSeqReq)) - } - return interceptor(ctx, in, info, handler) -} - -func _Chat_PullMessage_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(PullMessageReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(ChatServer).PullMessage(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/pbChat.Chat/PullMessage", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(ChatServer).PullMessage(ctx, req.(*PullMessageReq)) - } - return interceptor(ctx, in, info, handler) -} - -func _Chat_PullMessageBySeqList_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(PullMessageBySeqListReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(ChatServer).PullMessageBySeqList(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/pbChat.Chat/PullMessageBySeqList", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(ChatServer).PullMessageBySeqList(ctx, req.(*PullMessageBySeqListReq)) - } - return interceptor(ctx, in, info, handler) -} - -func _Chat_UserSendMsg_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(UserSendMsgReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(ChatServer).UserSendMsg(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/pbChat.Chat/UserSendMsg", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(ChatServer).UserSendMsg(ctx, req.(*UserSendMsgReq)) - } - return interceptor(ctx, in, info, handler) -} - -var _Chat_serviceDesc = grpc.ServiceDesc{ - ServiceName: "pbChat.Chat", - HandlerType: (*ChatServer)(nil), - Methods: []grpc.MethodDesc{ - { - MethodName: "GetMaxAndMinSeq", - Handler: _Chat_GetMaxAndMinSeq_Handler, - }, - { - MethodName: "PullMessage", - Handler: _Chat_PullMessage_Handler, - }, - { - MethodName: "PullMessageBySeqList", - Handler: _Chat_PullMessageBySeqList_Handler, - }, - { - MethodName: "UserSendMsg", - Handler: _Chat_UserSendMsg_Handler, - }, - }, - Streams: []grpc.StreamDesc{}, - Metadata: "chat/chat.proto", -} - -func init() { proto.RegisterFile("chat/chat.proto", fileDescriptor_chat_163a8d226aa6edb5) } - -var fileDescriptor_chat_163a8d226aa6edb5 = []byte{ - // 981 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0x57, 0xdd, 0x6a, 0xe3, 0x46, - 0x14, 0xc6, 0x92, 0x2d, 0xdb, 0xc7, 0xbf, 0x99, 0x86, 0xec, 0x90, 0x96, 0xd6, 0x88, 0x6d, 0x31, - 0xbd, 0x48, 0x61, 0x7b, 0x53, 0x5a, 0x58, 0x68, 0x62, 0x27, 0xa8, 0x44, 0xd9, 0x20, 0x7b, 0x29, - 0xf4, 0x4e, 0x6b, 0x8f, 0x15, 0xb1, 0xb6, 0x24, 0xcf, 0x28, 0x69, 0xf6, 0xa6, 0xaf, 0xd0, 0x97, - 0xe8, 0x65, 0x5f, 0xa4, 0x8f, 0xd2, 0x57, 0x28, 0x14, 0xca, 0xcc, 0x48, 0xd6, 0xe8, 0xc7, 0x49, - 0xd8, 0xb2, 0x7b, 0x13, 0x38, 0x9f, 0xce, 0xfc, 0x9c, 0xf3, 0x7d, 0xf3, 0x1d, 0x07, 0x06, 0x8b, - 0x1b, 0x37, 0xfe, 0x86, 0xff, 0x39, 0x89, 0x68, 0x18, 0x87, 0xc8, 0x88, 0xde, 0x9c, 0xdd, 0xb8, - 0xb1, 0xf9, 0x7b, 0x1d, 0x0e, 0x7e, 0x9e, 0xcd, 0x43, 0x9b, 0x79, 0xb3, 0x3b, 0xca, 0x21, 0x9b, - 0x79, 0xe8, 0x08, 0x8c, 0x19, 0x09, 0x96, 0xd6, 0x04, 0xd7, 0x46, 0xb5, 0x71, 0xdb, 0x49, 0x22, - 0x8e, 0x3b, 0x64, 0x71, 0x67, 0x4d, 0xb0, 0x26, 0x71, 0x19, 0x21, 0x0c, 0xcd, 0xb3, 0x30, 0x88, - 0x49, 0x10, 0x63, 0x5d, 0x7c, 0x48, 0x43, 0x74, 0x0c, 0x2d, 0xbe, 0x76, 0xee, 0x6f, 0x08, 0xae, - 0x8f, 0x6a, 0x63, 0xdd, 0xd9, 0xc5, 0x7c, 0x95, 0xcd, 0xbc, 0x73, 0x1a, 0x6e, 0x70, 0x63, 0x54, - 0x1b, 0x37, 0x9c, 0x34, 0x44, 0x5f, 0x41, 0x9f, 0x67, 0x11, 0x7a, 0xe5, 0x2f, 0xde, 0x5e, 0xb9, - 0x1b, 0x82, 0x0d, 0xb1, 0x6d, 0x01, 0x45, 0xcf, 0xa1, 0x27, 0x91, 0x73, 0x77, 0x41, 0x5e, 0x3b, - 0x97, 0xb8, 0x29, 0xd2, 0xf2, 0x20, 0x1a, 0x41, 0x27, 0xb9, 0xce, 0xfc, 0x5d, 0x44, 0x70, 0x4b, - 0x9c, 0xa5, 0x42, 0x3c, 0x63, 0x46, 0x18, 0xf3, 0xc3, 0x40, 0x64, 0xb4, 0x65, 0x86, 0x02, 0xf1, - 0x8c, 0x57, 0x11, 0xa1, 0x6e, 0xec, 0x87, 0x81, 0x35, 0xc1, 0x20, 0xce, 0x51, 0x21, 0x74, 0x08, - 0x0d, 0x9b, 0x79, 0xd6, 0x04, 0x77, 0xc4, 0x37, 0x19, 0x70, 0x74, 0x1e, 0xbe, 0x25, 0x01, 0xee, - 0x4a, 0x54, 0x04, 0x62, 0xb7, 0xd5, 0x6a, 0xed, 0x07, 0xc4, 0x0a, 0x56, 0x21, 0xee, 0x25, 0xbb, - 0x65, 0x10, 0xef, 0xcd, 0xab, 0x88, 0xef, 0xcc, 0x70, 0x5f, 0x76, 0x34, 0x09, 0xd1, 0xe7, 0x00, - 0xd7, 0x6b, 0x37, 0x5e, 0x85, 0x74, 0x63, 0x4d, 0xf0, 0x40, 0x5c, 0x55, 0x41, 0xd0, 0x67, 0xd0, - 0x3e, 0x0f, 0xe9, 0x82, 0x5c, 0xfa, 0x2c, 0xc6, 0xc3, 0x91, 0x3e, 0x6e, 0x3b, 0x19, 0x20, 0x7a, - 0xb1, 0xf6, 0x49, 0x10, 0xcb, 0xbb, 0x1e, 0xc8, 0x93, 0x15, 0xc8, 0xfc, 0x47, 0x87, 0x23, 0xa9, - 0x86, 0x79, 0x78, 0x7d, 0xcb, 0x6e, 0x3e, 0x88, 0x2c, 0x30, 0x34, 0x79, 0xce, 0x8c, 0x6c, 0x13, - 0x55, 0xa4, 0x61, 0x4e, 0x30, 0x8d, 0xfd, 0x82, 0x31, 0x1e, 0x13, 0x4c, 0xf3, 0x69, 0x82, 0x69, - 0x3d, 0x41, 0x30, 0xed, 0x47, 0x05, 0x03, 0x8f, 0x0a, 0xa6, 0xf3, 0x80, 0x60, 0xba, 0xaa, 0x60, - 0x3e, 0xa4, 0x34, 0x0a, 0xe4, 0x0f, 0xcb, 0xe4, 0xff, 0x06, 0xfd, 0xeb, 0xdb, 0xf5, 0xda, 0x26, - 0x8c, 0xb9, 0x1e, 0x71, 0xc8, 0x96, 0x73, 0xfb, 0x9a, 0x11, 0x9a, 0x71, 0x2e, 0x23, 0xc9, 0xd3, - 0xf6, 0x94, 0x78, 0x7e, 0x20, 0x58, 0x17, 0x3c, 0xc9, 0x58, 0xea, 0x64, 0x3b, 0x0d, 0x96, 0x82, - 0x76, 0xdd, 0x49, 0xa2, 0x62, 0x4f, 0xea, 0xa5, 0x9e, 0x98, 0x7f, 0xd7, 0x60, 0x90, 0xbb, 0x00, - 0x8b, 0x78, 0xbd, 0x53, 0x4a, 0xcf, 0xc2, 0x25, 0x11, 0x57, 0x68, 0x38, 0x69, 0xc8, 0xcf, 0x99, - 0x52, 0x6a, 0x33, 0x2f, 0xd5, 0x9d, 0x8c, 0x38, 0x6e, 0xbb, 0xf7, 0x5c, 0x5c, 0xc9, 0xf9, 0x32, - 0x12, 0xb8, 0x1f, 0x64, 0xa2, 0x4b, 0x22, 0xf4, 0x3d, 0xf4, 0x66, 0x7e, 0xe0, 0xad, 0x09, 0xaf, - 0x8d, 0x6f, 0xd7, 0x18, 0xe9, 0xe3, 0xce, 0x8b, 0xc3, 0x13, 0x69, 0x92, 0x27, 0x17, 0x6e, 0x7c, - 0x43, 0xe8, 0x79, 0x48, 0x37, 0x6e, 0xec, 0xe4, 0x53, 0xd1, 0x77, 0xd0, 0xbd, 0xa0, 0xe1, 0x6d, - 0x94, 0x2e, 0x35, 0x1e, 0x58, 0x9a, 0xcb, 0x34, 0x37, 0xf0, 0x4c, 0x29, 0xf5, 0xf4, 0xdd, 0x8c, - 0x6c, 0xf9, 0x13, 0x7d, 0xa8, 0xe9, 0x85, 0x06, 0x6a, 0x65, 0x51, 0x61, 0x68, 0x32, 0xb9, 0x0f, - 0xd6, 0x47, 0x3a, 0x7f, 0x58, 0x49, 0x68, 0x5e, 0x01, 0xba, 0x20, 0xb1, 0xed, 0xde, 0xff, 0x18, - 0x2c, 0x65, 0xdd, 0xff, 0xeb, 0x24, 0xf3, 0x57, 0xf8, 0xa4, 0xb4, 0xdf, 0xc7, 0x60, 0xcb, 0x9c, - 0x42, 0x57, 0xed, 0x2a, 0xea, 0x83, 0xb6, 0xbb, 0xbe, 0x66, 0x4d, 0xd0, 0x97, 0x50, 0x17, 0xf5, - 0x6b, 0x82, 0x89, 0x83, 0x94, 0x09, 0x6e, 0x15, 0x92, 0x06, 0xf1, 0xd9, 0xfc, 0x57, 0x83, 0xf6, - 0x0e, 0x7b, 0x1f, 0x6b, 0x4b, 0xad, 0x48, 0xcf, 0x5b, 0x51, 0xc1, 0x3c, 0xea, 0x7b, 0xcc, 0x83, - 0xde, 0x09, 0x15, 0x58, 0x13, 0xe1, 0x72, 0x6d, 0x47, 0x85, 0x54, 0xe3, 0x34, 0xf2, 0xc6, 0x39, - 0x04, 0x9d, 0x77, 0xa4, 0x29, 0x3a, 0xa2, 0x17, 0x0d, 0xb3, 0x55, 0x30, 0xcc, 0xaf, 0x61, 0x28, - 0x9d, 0x4d, 0xb1, 0x05, 0xe9, 0x66, 0x25, 0xbc, 0xc2, 0x42, 0xe1, 0x69, 0x16, 0xda, 0xd9, 0x67, - 0xa1, 0x8a, 0xd5, 0x74, 0xcb, 0x56, 0xf3, 0x67, 0x1d, 0xfa, 0x5c, 0x6c, 0x7c, 0x9d, 0xcd, 0x3c, - 0x2e, 0xc6, 0xe7, 0xd0, 0x73, 0xc8, 0xd6, 0x5a, 0x92, 0x20, 0xf6, 0x57, 0x3e, 0xa1, 0x89, 0x82, - 0xf2, 0x60, 0x36, 0x52, 0x35, 0x75, 0xa4, 0x66, 0x04, 0xea, 0x39, 0x02, 0x1f, 0xf5, 0x9c, 0x8a, - 0xc2, 0x1b, 0x4f, 0x2b, 0xdc, 0xa8, 0x2a, 0x3c, 0xef, 0xc1, 0xcd, 0x2a, 0x0f, 0x56, 0x27, 0x47, - 0xab, 0x3c, 0x39, 0x14, 0x69, 0xb5, 0x1f, 0x94, 0x16, 0x94, 0xa5, 0x95, 0xc9, 0xb5, 0x93, 0x93, - 0x6b, 0xee, 0x47, 0x41, 0xb7, 0xf8, 0xa3, 0x40, 0x91, 0x5b, 0xaf, 0x34, 0xa7, 0xf7, 0xcc, 0x9a, - 0x02, 0xc1, 0x83, 0x12, 0xc1, 0xc9, 0x24, 0xbb, 0x4c, 0x27, 0xd9, 0x70, 0x37, 0xc9, 0x52, 0x88, - 0xbf, 0xdc, 0xe9, 0x7d, 0xf2, 0x1b, 0x44, 0x9b, 0xde, 0x73, 0x29, 0xb3, 0x54, 0xca, 0x48, 0x4a, - 0x39, 0x8d, 0xcd, 0xbf, 0x6a, 0x30, 0xc8, 0xc9, 0xe5, 0xbd, 0xbc, 0xa6, 0xa4, 0x30, 0xbd, 0x4a, - 0x61, 0x85, 0x07, 0x5a, 0x2f, 0x3f, 0xd0, 0x42, 0xf5, 0x8d, 0x72, 0xf5, 0x6a, 0x2d, 0x46, 0xbe, - 0x96, 0x17, 0x7f, 0x68, 0x50, 0xe7, 0x9e, 0x84, 0x7e, 0x82, 0x41, 0xc1, 0x43, 0xd1, 0xf1, 0x6e, - 0x72, 0x94, 0xcc, 0xfa, 0xf8, 0xd3, 0xbd, 0xdf, 0x58, 0x84, 0x5e, 0x42, 0x47, 0x19, 0x27, 0xe8, - 0x28, 0xcd, 0xcd, 0xcf, 0xf3, 0xe3, 0x67, 0x95, 0x38, 0x8b, 0xd0, 0x35, 0x1c, 0x56, 0x8d, 0x23, - 0xf4, 0x45, 0xc5, 0x02, 0x75, 0x58, 0xed, 0xdf, 0xf1, 0x25, 0x74, 0x14, 0xc6, 0xb2, 0x1b, 0xe5, - 0x5f, 0x7d, 0xb6, 0xbe, 0x40, 0xef, 0xe9, 0xe0, 0x97, 0xde, 0x89, 0xf8, 0x9f, 0xe5, 0x07, 0x99, - 0xf0, 0xc6, 0x10, 0xff, 0xbb, 0x7c, 0xfb, 0x5f, 0x00, 0x00, 0x00, 0xff, 0xff, 0xc2, 0x44, 0x4e, - 0x52, 0xce, 0x0c, 0x00, 0x00, + proto.RegisterType((*SendMsgReq)(nil), "pbChat.SendMsgReq") + proto.RegisterType((*SendMsgResp)(nil), "pbChat.SendMsgResp") +} + +func init() { proto.RegisterFile("chat.proto", fileDescriptor_chat_955d1f0dcca586dd) } + +var fileDescriptor_chat_955d1f0dcca586dd = []byte{ + // 927 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0x56, 0xcb, 0x6e, 0xe3, 0x36, + 0x14, 0x85, 0x2d, 0x3f, 0xe2, 0x6b, 0xe7, 0xc5, 0x09, 0x32, 0x84, 0x5b, 0xb4, 0xae, 0x30, 0x2d, + 0x8c, 0x2e, 0x12, 0x20, 0xdd, 0x14, 0x5d, 0x14, 0xe8, 0xc4, 0x49, 0xa0, 0x62, 0x94, 0x04, 0xb2, + 0x07, 0x5d, 0x06, 0x1a, 0x9b, 0x56, 0x04, 0xdb, 0xa2, 0x4c, 0x32, 0xc9, 0xcc, 0xa6, 0xbf, 0xd0, + 0x6d, 0x7f, 0xa8, 0x1f, 0xd3, 0x5f, 0x28, 0x50, 0xa0, 0xb8, 0xa4, 0x14, 0xeb, 0x11, 0x27, 0xc1, + 0x14, 0x33, 0xcb, 0x73, 0x78, 0x79, 0x49, 0xdd, 0x73, 0x78, 0x6c, 0x80, 0xf1, 0xb5, 0xaf, 0x0e, + 0x62, 0xc1, 0x15, 0x27, 0x8d, 0xf8, 0xdd, 0xf1, 0xb5, 0xaf, 0xba, 0xdf, 0x5c, 0xc4, 0x2c, 0xba, + 0x72, 0xdc, 0xc3, 0x78, 0x16, 0x1c, 0xea, 0xa5, 0x43, 0x39, 0x99, 0x5d, 0xdd, 0xc9, 0xc3, 0x3b, + 0x69, 0x4a, 0xed, 0x3f, 0x6a, 0xb0, 0xfb, 0xdb, 0x70, 0xc4, 0x5d, 0x19, 0x0c, 0x6f, 0x05, 0xee, + 0x72, 0x65, 0x40, 0xf6, 0xa1, 0x31, 0x64, 0xd1, 0xc4, 0x19, 0xd0, 0x4a, 0xaf, 0xd2, 0x6f, 0x79, + 0x09, 0x42, 0xde, 0x63, 0xe3, 0x5b, 0x67, 0x40, 0xab, 0x86, 0x37, 0x88, 0x50, 0x68, 0x1e, 0xf3, + 0x48, 0xb1, 0x48, 0x51, 0x4b, 0x2f, 0xa4, 0x90, 0x74, 0x61, 0x03, 0xf7, 0x8e, 0xc2, 0x05, 0xa3, + 0xb5, 0x5e, 0xa5, 0x6f, 0x79, 0xf7, 0x18, 0x77, 0xb9, 0x32, 0x38, 0x15, 0x7c, 0x41, 0xeb, 0xbd, + 0x4a, 0xbf, 0xee, 0xa5, 0x90, 0x7c, 0x07, 0x5b, 0x58, 0xc5, 0xc4, 0x79, 0x38, 0x9e, 0x9d, 0xfb, + 0x0b, 0x46, 0x1b, 0xba, 0x6d, 0x81, 0x25, 0xaf, 0x60, 0xd3, 0x30, 0xa7, 0xfe, 0x98, 0xbd, 0xf5, + 0xde, 0xd0, 0xa6, 0x2e, 0xcb, 0x93, 0xa4, 0x07, 0xed, 0xe4, 0x3a, 0xa3, 0x0f, 0x31, 0xa3, 0x1b, + 0xfa, 0xac, 0x2c, 0x85, 0x15, 0x43, 0x26, 0x65, 0xc8, 0x23, 0x5d, 0xd1, 0x32, 0x15, 0x19, 0x0a, + 0x2b, 0x2e, 0x62, 0x26, 0x7c, 0x15, 0xf2, 0xc8, 0x19, 0x50, 0xd0, 0xe7, 0x64, 0x29, 0xb2, 0x07, + 0x75, 0x57, 0x06, 0xce, 0x80, 0xb6, 0xf5, 0x9a, 0x01, 0xc8, 0x8e, 0xf8, 0x8c, 0x45, 0xb4, 0x63, + 0x58, 0x0d, 0x74, 0xb7, 0xe9, 0x74, 0x1e, 0x46, 0xcc, 0x89, 0xa6, 0x9c, 0x6e, 0x26, 0xdd, 0x56, + 0x14, 0xce, 0xe6, 0x22, 0xc6, 0xce, 0x92, 0x6e, 0x99, 0x89, 0x26, 0x90, 0x7c, 0x05, 0x70, 0x39, + 0xf7, 0xd5, 0x94, 0x8b, 0x85, 0x33, 0xa0, 0xdb, 0xfa, 0xaa, 0x19, 0x86, 0x7c, 0x09, 0xad, 0x53, + 0x2e, 0xc6, 0xec, 0x4d, 0x28, 0x15, 0xdd, 0xe9, 0x59, 0xfd, 0x96, 0xb7, 0x22, 0xf4, 0x2c, 0xe6, + 0x21, 0x8b, 0x94, 0xb9, 0xeb, 0xae, 0x39, 0x39, 0x43, 0xd9, 0xff, 0x58, 0xb0, 0x6f, 0xdc, 0x30, + 0xe2, 0x97, 0x37, 0xf2, 0xfa, 0x93, 0xd8, 0x82, 0x42, 0x13, 0x6b, 0x86, 0x6c, 0x99, 0xb8, 0x22, + 0x85, 0x39, 0xc3, 0xd4, 0xd7, 0x1b, 0xa6, 0xf1, 0x94, 0x61, 0x9a, 0xcf, 0x33, 0xcc, 0xc6, 0x33, + 0x0c, 0xd3, 0x7a, 0xd2, 0x30, 0xf0, 0xa4, 0x61, 0xda, 0x8f, 0x18, 0xa6, 0x93, 0x35, 0xcc, 0xa7, + 0xb4, 0x46, 0x41, 0xfc, 0x9d, 0xb2, 0xf8, 0xbf, 0xc3, 0xd6, 0xe5, 0xcd, 0x7c, 0xee, 0x32, 0x29, + 0xfd, 0x80, 0x79, 0x6c, 0x89, 0xda, 0xbe, 0x95, 0x4c, 0xac, 0x34, 0x37, 0xc8, 0xe8, 0xb4, 0x7c, + 0xcd, 0x82, 0x30, 0xd2, 0xaa, 0x6b, 0x9d, 0x0c, 0x36, 0x3e, 0x59, 0x9e, 0x44, 0x13, 0x2d, 0xbb, + 0xe5, 0x25, 0xa8, 0x38, 0x93, 0x5a, 0x69, 0x26, 0xf6, 0xdf, 0x15, 0xd8, 0xce, 0x5d, 0x40, 0xc6, + 0xf8, 0xbd, 0x27, 0x42, 0x1c, 0xf3, 0x09, 0xd3, 0x57, 0xa8, 0x7b, 0x29, 0xc4, 0x73, 0x4e, 0x84, + 0x70, 0x65, 0x90, 0xfa, 0xce, 0x20, 0xe4, 0x5d, 0xff, 0x3d, 0x9a, 0x2b, 0x39, 0xdf, 0x20, 0xcd, + 0x87, 0xd1, 0xca, 0x74, 0x09, 0x22, 0x3f, 0xc1, 0xe6, 0x30, 0x8c, 0x82, 0x39, 0xc3, 0x6f, 0xc3, + 0x76, 0xf5, 0x9e, 0xd5, 0x6f, 0x1f, 0xed, 0x1d, 0x98, 0x1c, 0x3d, 0x38, 0xf3, 0xd5, 0x35, 0x13, + 0xa7, 0x5c, 0x2c, 0x7c, 0xe5, 0xe5, 0x4b, 0xc9, 0x8f, 0xd0, 0x39, 0x13, 0xfc, 0x26, 0x4e, 0xb7, + 0x36, 0x1e, 0xd9, 0x9a, 0xab, 0xb4, 0x17, 0xf0, 0x32, 0xf3, 0xa9, 0xaf, 0x3f, 0x0c, 0xd9, 0x12, + 0x9f, 0xe8, 0x63, 0x43, 0x2f, 0x0c, 0xb0, 0x5a, 0x36, 0x15, 0x85, 0xa6, 0x34, 0x7d, 0xa8, 0xd5, + 0xb3, 0xf0, 0x61, 0x25, 0xd0, 0x3e, 0x07, 0x72, 0xc6, 0x94, 0xeb, 0xbf, 0xff, 0x25, 0x9a, 0x98, + 0xef, 0xfe, 0x5f, 0x27, 0xd9, 0x77, 0xf0, 0xa2, 0xd4, 0xef, 0x73, 0xa8, 0x65, 0x9f, 0x40, 0x27, + 0x3b, 0x55, 0xb2, 0x05, 0xd5, 0xfb, 0xeb, 0x57, 0x9d, 0x01, 0xf9, 0x16, 0x6a, 0xfa, 0xfb, 0xab, + 0x5a, 0x89, 0xdd, 0x54, 0x09, 0x8c, 0x0a, 0x23, 0x83, 0x5e, 0xb6, 0xff, 0xad, 0x42, 0xeb, 0x9e, + 0xfb, 0x98, 0x68, 0x4b, 0xa3, 0xc8, 0xca, 0x47, 0x51, 0x21, 0x3c, 0x6a, 0x6b, 0xc2, 0x43, 0xdc, + 0x6a, 0x17, 0x38, 0x03, 0x9d, 0x72, 0x2d, 0x2f, 0x4b, 0x65, 0x83, 0xb3, 0x91, 0x0f, 0xce, 0x1d, + 0xb0, 0x70, 0x22, 0x4d, 0x3d, 0x11, 0xab, 0x18, 0x98, 0x1b, 0x85, 0xc0, 0xfc, 0x1e, 0x76, 0x4c, + 0xb2, 0x65, 0x62, 0xc1, 0xa4, 0x59, 0x89, 0x7f, 0x20, 0x42, 0xe1, 0x79, 0x11, 0xda, 0x5e, 0x17, + 0xa1, 0x99, 0xa8, 0xe9, 0x94, 0xa3, 0x46, 0x01, 0xe0, 0x16, 0x57, 0x06, 0xe8, 0xc3, 0x3d, 0xa8, + 0x2b, 0xfd, 0x3b, 0x69, 0xc6, 0x6f, 0x00, 0x76, 0xe1, 0x65, 0x17, 0x66, 0x28, 0x72, 0x00, 0xcd, + 0x85, 0x0c, 0x06, 0xbe, 0xf2, 0xb5, 0x0e, 0xf8, 0xf2, 0x38, 0xfe, 0xe9, 0x09, 0x17, 0x57, 0x72, + 0x32, 0x43, 0xd1, 0x71, 0xcd, 0x4b, 0x8b, 0xec, 0xbf, 0x2a, 0x38, 0xfc, 0xe4, 0xd8, 0x8f, 0xb2, + 0xeb, 0x2b, 0xd8, 0xf4, 0xd8, 0xd2, 0x99, 0xb0, 0x48, 0x85, 0xd3, 0x90, 0x89, 0x44, 0xff, 0x3c, + 0x59, 0xd4, 0xb8, 0x56, 0xd6, 0xb8, 0x30, 0xa1, 0x7a, 0x69, 0x42, 0xa8, 0xac, 0x4c, 0x95, 0x6d, + 0x18, 0x65, 0x53, 0x7c, 0xf4, 0x67, 0x15, 0x6a, 0x68, 0x6b, 0xf2, 0x2b, 0x6c, 0x17, 0x9e, 0x21, + 0xe9, 0xde, 0x87, 0x4f, 0xe9, 0xbd, 0x77, 0xbf, 0x58, 0xbb, 0x26, 0x63, 0xf2, 0x33, 0xb4, 0x33, + 0x89, 0x44, 0xf6, 0xd3, 0xda, 0xfc, 0x4f, 0x42, 0xf7, 0xe5, 0x83, 0xbc, 0x8c, 0xc9, 0x25, 0xec, + 0x3d, 0x94, 0x68, 0xe4, 0xeb, 0x07, 0x36, 0x64, 0xf3, 0x6e, 0x7d, 0xc7, 0x23, 0x68, 0x26, 0x6a, + 0x11, 0x92, 0xd6, 0xac, 0x5c, 0xd3, 0x7d, 0x51, 0xe2, 0x64, 0xfc, 0xae, 0xa1, 0xff, 0xd9, 0xfe, + 0xf0, 0x5f, 0x00, 0x00, 0x00, 0xff, 0xff, 0x9c, 0x2f, 0xc4, 0xa9, 0x12, 0x0b, 0x00, 0x00, } diff --git a/pkg/proto/chat/chat.proto b/pkg/proto/chat/chat.proto index 3c66c99dc..0f5638bd9 100644 --- a/pkg/proto/chat/chat.proto +++ b/pkg/proto/chat/chat.proto @@ -1,6 +1,7 @@ syntax = "proto3"; +import "Open_IM/pkg/proto/sdk_ws/ws.proto"; package pbChat;//The package name to which the proto file belongs -option go_package = "./chat;pbChat";//The generated go pb file is in the current directory, and the package name is pbChat +//option go_package = ".;pbChat";//The generated go pb file is in the current directory, and the package name is pbChat message WSToMsgSvrChatMsg{ string SendID = 1; @@ -106,31 +107,16 @@ message MsgFormat{ string ClientMsgID = 12; } -message UserSendMsgReq { +message SendMsgReq { - int32 ReqIdentifier = 1; - string Token = 2; - string SendID = 3; - string OperationID = 4; - string SenderNickName = 5; - string SenderFaceURL = 6; - int32 PlatformID = 7; - int32 SessionType = 8; - int32 MsgFrom = 9; - int32 ContentType = 10; - string RecvID = 11; - repeated string ForceList = 12; - string Content = 13; - string Options = 14; - string ClientMsgID = 15; - string OffLineInfo = 16; - string Ex = 17; - int64 sendTime = 18; +string token =1; +string operationID = 2; +open_im_sdk.MsgData msgData = 3; } -message UserSendMsgResp { +message SendMsgResp { int32 ErrCode = 1; string ErrMsg = 2; int32 ReqIdentifier = 3; @@ -143,5 +129,5 @@ service Chat { rpc GetMaxAndMinSeq(GetMaxAndMinSeqReq) returns(GetMaxAndMinSeqResp); rpc PullMessage(PullMessageReq) returns(PullMessageResp); rpc PullMessageBySeqList(PullMessageBySeqListReq) returns(PullMessageResp); - rpc UserSendMsg(UserSendMsgReq) returns(UserSendMsgResp); + rpc SendMsg(SendMsgReq) returns(SendMsgResp); } diff --git a/pkg/proto/group/group.proto b/pkg/proto/group/group.proto index ff1821ec2..f767c5220 100644 --- a/pkg/proto/group/group.proto +++ b/pkg/proto/group/group.proto @@ -15,8 +15,10 @@ message CreateGroupReq{ string faceUrl = 5; string token = 6; string operationID = 7; - string ex = 8; + string CreatorUserID = 8; } + + message GroupAddMemberInfo{ string uid = 1; int32 setRole = 2; @@ -31,6 +33,7 @@ message GetGroupsInfoReq{ repeated string groupIDList = 1; string token = 2; string operationID = 3; + string UserID = 4; } message GetGroupsInfoResp{ int32 ErrorCode = 1; @@ -105,12 +108,12 @@ message JoinGroupReq{ message GroupApplicationResponseReq{ string OperationID = 1; - string OwnerID = 2; + string UserID = 2; string GroupID = 3; - string FromUserID = 4; + string FromUserID = 4; //请求加群:请求者,邀请加群:邀请人 string FromUserNickName = 5; string FromUserFaceUrl = 6; - string ToUserID = 7; + string ToUserID = 7; //请求加群:0,邀请加群:被邀请人 string ToUserNickName = 8; string ToUserFaceUrl = 9; int64 AddTime = 10; diff --git a/pkg/proto/relay/relay.proto b/pkg/proto/relay/relay.proto index a3464e077..704c323ce 100644 --- a/pkg/proto/relay/relay.proto +++ b/pkg/proto/relay/relay.proto @@ -20,8 +20,7 @@ message MsgToUserReq { } message MsgToUserResp{ repeated SingleMsgToUser resp = 1; -} -//message SendMsgByWSReq{ +}//message SendMsgByWSReq{ // string SendID = 1; // string RecvID = 2; // string Content = 3; @@ -32,6 +31,7 @@ repeated SingleMsgToUser resp = 1; // string OperationID = 8; // int64 PlatformID = 9; //} + message SingleMsgToUser{ int64 ResultCode = 1; string RecvID = 2; diff --git a/pkg/proto/sdk_ws/ws.pb.go b/pkg/proto/sdk_ws/ws.pb.go index 7e1115f94..5a4ae90c5 100644 --- a/pkg/proto/sdk_ws/ws.pb.go +++ b/pkg/proto/sdk_ws/ws.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. -// source: sdk_ws/ws.proto +// source: ws.proto -package open_im_sdk // import "./sdk_ws" +package open_im_sdk import proto "github.com/golang/protobuf/proto" import fmt "fmt" @@ -32,7 +32,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_d55c44e342c7a2b5, []int{0} + return fileDescriptor_ws_e1a0eca386827677, []int{0} } func (m *PullMessageBySeqListResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_PullMessageBySeqListResp.Unmarshal(m, b) @@ -91,7 +91,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_d55c44e342c7a2b5, []int{1} + return fileDescriptor_ws_e1a0eca386827677, []int{1} } func (m *PullMessageBySeqListReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_PullMessageBySeqListReq.Unmarshal(m, b) @@ -128,7 +128,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_d55c44e342c7a2b5, []int{2} + return fileDescriptor_ws_e1a0eca386827677, []int{2} } func (m *GetMaxAndMinSeqReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetMaxAndMinSeqReq.Unmarshal(m, b) @@ -160,7 +160,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_d55c44e342c7a2b5, []int{3} + return fileDescriptor_ws_e1a0eca386827677, []int{3} } func (m *GetMaxAndMinSeqResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetMaxAndMinSeqResp.Unmarshal(m, b) @@ -196,9 +196,9 @@ func (m *GetMaxAndMinSeqResp) GetMinSeq() int64 { type GatherFormat struct { // @inject_tag: json:"id" - ID string `protobuf:"bytes,1,opt,name=ID" json:"id"` + ID string `protobuf:"bytes,1,opt,name=ID" json:"ID,omitempty"` // @inject_tag: json:"list" - List []*MsgFormat `protobuf:"bytes,2,rep,name=List" json:"list"` + List []*MsgFormat `protobuf:"bytes,2,rep,name=List" json:"List,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -208,7 +208,7 @@ func (m *GatherFormat) Reset() { *m = GatherFormat{} } func (m *GatherFormat) String() string { return proto.CompactTextString(m) } func (*GatherFormat) ProtoMessage() {} func (*GatherFormat) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_d55c44e342c7a2b5, []int{4} + return fileDescriptor_ws_e1a0eca386827677, []int{4} } func (m *GatherFormat) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GatherFormat.Unmarshal(m, b) @@ -244,29 +244,29 @@ func (m *GatherFormat) GetList() []*MsgFormat { type MsgFormat struct { // @inject_tag: json:"sendID" - SendID string `protobuf:"bytes,1,opt,name=SendID" json:"sendID"` + SendID string `protobuf:"bytes,1,opt,name=SendID" json:"SendID,omitempty"` // @inject_tag: json:"recvID" - RecvID string `protobuf:"bytes,2,opt,name=RecvID" json:"recvID"` + RecvID string `protobuf:"bytes,2,opt,name=RecvID" json:"RecvID,omitempty"` // @inject_tag: json:"msgFrom" - MsgFrom int32 `protobuf:"varint,3,opt,name=MsgFrom" json:"msgFrom"` + MsgFrom int32 `protobuf:"varint,3,opt,name=MsgFrom" json:"MsgFrom,omitempty"` // @inject_tag: json:"contentType" - ContentType int32 `protobuf:"varint,4,opt,name=ContentType" json:"contentType"` + ContentType int32 `protobuf:"varint,4,opt,name=ContentType" json:"ContentType,omitempty"` // @inject_tag: json:"serverMsgID" - ServerMsgID string `protobuf:"bytes,5,opt,name=ServerMsgID" json:"serverMsgID"` + ServerMsgID string `protobuf:"bytes,5,opt,name=ServerMsgID" json:"ServerMsgID,omitempty"` // @inject_tag: json:"content" - Content string `protobuf:"bytes,6,opt,name=Content" json:"content"` + Content string `protobuf:"bytes,6,opt,name=Content" json:"Content,omitempty"` // @inject_tag: json:"seq" - Seq int64 `protobuf:"varint,7,opt,name=Seq" json:"seq"` + Seq int64 `protobuf:"varint,7,opt,name=Seq" json:"Seq,omitempty"` // @inject_tag: json:"sendTime" - SendTime int64 `protobuf:"varint,8,opt,name=SendTime" json:"sendTime"` + SendTime int64 `protobuf:"varint,8,opt,name=SendTime" json:"SendTime,omitempty"` // @inject_tag: json:"senderPlatformID" - SenderPlatformID int32 `protobuf:"varint,9,opt,name=SenderPlatformID" json:"senderPlatformID"` + SenderPlatformID int32 `protobuf:"varint,9,opt,name=SenderPlatformID" json:"SenderPlatformID,omitempty"` // @inject_tag: json:"senderNickName" - SenderNickName string `protobuf:"bytes,10,opt,name=SenderNickName" json:"senderNickName"` + SenderNickName string `protobuf:"bytes,10,opt,name=SenderNickName" json:"SenderNickName,omitempty"` // @inject_tag: json:"senderFaceUrl" - SenderFaceURL string `protobuf:"bytes,11,opt,name=SenderFaceURL" json:"senderFaceUrl"` + SenderFaceURL string `protobuf:"bytes,11,opt,name=SenderFaceURL" json:"SenderFaceURL,omitempty"` // @inject_tag: json:"clientMsgID" - ClientMsgID string `protobuf:"bytes,12,opt,name=ClientMsgID" json:"clientMsgID"` + ClientMsgID string `protobuf:"bytes,12,opt,name=ClientMsgID" json:"ClientMsgID,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -276,7 +276,7 @@ func (m *MsgFormat) Reset() { *m = MsgFormat{} } func (m *MsgFormat) String() string { return proto.CompactTextString(m) } func (*MsgFormat) ProtoMessage() {} func (*MsgFormat) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_d55c44e342c7a2b5, []int{5} + return fileDescriptor_ws_e1a0eca386827677, []int{5} } func (m *MsgFormat) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MsgFormat.Unmarshal(m, b) @@ -401,7 +401,7 @@ func (m *UserSendMsgReq) Reset() { *m = UserSendMsgReq{} } func (m *UserSendMsgReq) String() string { return proto.CompactTextString(m) } func (*UserSendMsgReq) ProtoMessage() {} func (*UserSendMsgReq) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_d55c44e342c7a2b5, []int{6} + return fileDescriptor_ws_e1a0eca386827677, []int{6} } func (m *UserSendMsgReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_UserSendMsgReq.Unmarshal(m, b) @@ -511,7 +511,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_d55c44e342c7a2b5, []int{7} + return fileDescriptor_ws_e1a0eca386827677, []int{7} } func (m *UserSendMsgResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_UserSendMsgResp.Unmarshal(m, b) @@ -559,7 +559,7 @@ type MsgData struct { MsgFrom int32 `protobuf:"varint,4,opt,name=msgFrom" json:"msgFrom,omitempty"` ContentType int32 `protobuf:"varint,5,opt,name=contentType" json:"contentType,omitempty"` ServerMsgID string `protobuf:"bytes,6,opt,name=serverMsgID" json:"serverMsgID,omitempty"` - Content string `protobuf:"bytes,7,opt,name=content" json:"content,omitempty"` + Content []byte `protobuf:"bytes,7,opt,name=content,proto3" json:"content,omitempty"` SendTime int64 `protobuf:"varint,8,opt,name=sendTime" json:"sendTime,omitempty"` Seq int64 `protobuf:"varint,9,opt,name=seq" json:"seq,omitempty"` SenderPlatformID int32 `protobuf:"varint,10,opt,name=senderPlatformID" json:"senderPlatformID,omitempty"` @@ -575,7 +575,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_d55c44e342c7a2b5, []int{8} + return fileDescriptor_ws_e1a0eca386827677, []int{8} } func (m *MsgData) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MsgData.Unmarshal(m, b) @@ -637,11 +637,11 @@ func (m *MsgData) GetServerMsgID() string { return "" } -func (m *MsgData) GetContent() string { +func (m *MsgData) GetContent() []byte { if m != nil { return m.Content } - return "" + return nil } func (m *MsgData) GetSendTime() int64 { @@ -690,6 +690,8 @@ 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"` Ext string `protobuf:"bytes,3,opt,name=Ext" json:"Ext,omitempty"` + IOSPushSound string `protobuf:"bytes,4,opt,name=iOSPushSound" json:"iOSPushSound,omitempty"` + IOSBadgeCount bool `protobuf:"varint,5,opt,name=iOSBadgeCount" json:"iOSBadgeCount,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -699,7 +701,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_d55c44e342c7a2b5, []int{9} + return fileDescriptor_ws_e1a0eca386827677, []int{9} } func (m *OfflinePushInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_OfflinePushInfo.Unmarshal(m, b) @@ -740,109 +742,204 @@ func (m *OfflinePushInfo) GetExt() string { return "" } -type GroupInfoTip struct { - GroupID string `protobuf:"bytes,1,opt,name=GroupID" json:"GroupID,omitempty"` - GroupName string `protobuf:"bytes,2,opt,name=GroupName" json:"GroupName,omitempty"` - Notification string `protobuf:"bytes,3,opt,name=Notification" json:"Notification,omitempty"` - Introduction string `protobuf:"bytes,4,opt,name=Introduction" json:"Introduction,omitempty"` - FaceUrl string `protobuf:"bytes,5,opt,name=FaceUrl" json:"FaceUrl,omitempty"` - Ex string `protobuf:"bytes,6,opt,name=Ex" json:"Ex,omitempty"` - OwnerID string `protobuf:"bytes,7,opt,name=OwnerID" json:"OwnerID,omitempty"` - CreateTime uint64 `protobuf:"varint,8,opt,name=CreateTime" json:"CreateTime,omitempty"` - MemberCount uint32 `protobuf:"varint,9,opt,name=MemberCount" json:"MemberCount,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` +func (m *OfflinePushInfo) GetIOSPushSound() string { + if m != nil { + return m.IOSPushSound + } + return "" +} + +func (m *OfflinePushInfo) GetIOSBadgeCount() bool { + if m != nil { + return m.IOSBadgeCount + } + return false +} + +// public +type GroupInfo struct { + GroupID string `protobuf:"bytes,1,opt,name=GroupID" json:"GroupID,omitempty"` + GroupName string `protobuf:"bytes,2,opt,name=GroupName" json:"GroupName,omitempty"` + Notification string `protobuf:"bytes,3,opt,name=Notification" json:"Notification,omitempty"` + Introduction string `protobuf:"bytes,4,opt,name=Introduction" json:"Introduction,omitempty"` + FaceUrl string `protobuf:"bytes,5,opt,name=FaceUrl" json:"FaceUrl,omitempty"` + Owner *PublicUserInfo `protobuf:"bytes,6,opt,name=Owner" json:"Owner,omitempty"` + CreateTime uint64 `protobuf:"varint,7,opt,name=CreateTime" json:"CreateTime,omitempty"` + MemberCount uint32 `protobuf:"varint,8,opt,name=MemberCount" json:"MemberCount,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (m *GroupInfoTip) Reset() { *m = GroupInfoTip{} } -func (m *GroupInfoTip) String() string { return proto.CompactTextString(m) } -func (*GroupInfoTip) ProtoMessage() {} -func (*GroupInfoTip) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_d55c44e342c7a2b5, []int{10} +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_e1a0eca386827677, []int{10} } -func (m *GroupInfoTip) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_GroupInfoTip.Unmarshal(m, b) +func (m *GroupInfo) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GroupInfo.Unmarshal(m, b) } -func (m *GroupInfoTip) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_GroupInfoTip.Marshal(b, m, deterministic) +func (m *GroupInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GroupInfo.Marshal(b, m, deterministic) } -func (dst *GroupInfoTip) XXX_Merge(src proto.Message) { - xxx_messageInfo_GroupInfoTip.Merge(dst, src) +func (dst *GroupInfo) XXX_Merge(src proto.Message) { + xxx_messageInfo_GroupInfo.Merge(dst, src) } -func (m *GroupInfoTip) XXX_Size() int { - return xxx_messageInfo_GroupInfoTip.Size(m) +func (m *GroupInfo) XXX_Size() int { + return xxx_messageInfo_GroupInfo.Size(m) } -func (m *GroupInfoTip) XXX_DiscardUnknown() { - xxx_messageInfo_GroupInfoTip.DiscardUnknown(m) +func (m *GroupInfo) XXX_DiscardUnknown() { + xxx_messageInfo_GroupInfo.DiscardUnknown(m) } -var xxx_messageInfo_GroupInfoTip proto.InternalMessageInfo +var xxx_messageInfo_GroupInfo proto.InternalMessageInfo -func (m *GroupInfoTip) GetGroupID() string { +func (m *GroupInfo) GetGroupID() string { if m != nil { return m.GroupID } return "" } -func (m *GroupInfoTip) GetGroupName() string { +func (m *GroupInfo) GetGroupName() string { if m != nil { return m.GroupName } return "" } -func (m *GroupInfoTip) GetNotification() string { +func (m *GroupInfo) GetNotification() string { if m != nil { return m.Notification } return "" } -func (m *GroupInfoTip) GetIntroduction() string { +func (m *GroupInfo) GetIntroduction() string { if m != nil { return m.Introduction } return "" } -func (m *GroupInfoTip) GetFaceUrl() string { +func (m *GroupInfo) GetFaceUrl() string { if m != nil { return m.FaceUrl } return "" } -func (m *GroupInfoTip) GetEx() string { +func (m *GroupInfo) GetOwner() *PublicUserInfo { + if m != nil { + return m.Owner + } + return nil +} + +func (m *GroupInfo) GetCreateTime() uint64 { + if m != nil { + return m.CreateTime + } + return 0 +} + +func (m *GroupInfo) GetMemberCount() uint32 { + if m != nil { + return m.MemberCount + } + return 0 +} + +// private, Group members have permission to view +type GroupMemberFullInfo struct { + GroupID string `protobuf:"bytes,1,opt,name=GroupID" json:"GroupID,omitempty"` + UserID string `protobuf:"bytes,2,opt,name=UserID" json:"UserID,omitempty"` + AdministratorLevel int32 `protobuf:"varint,3,opt,name=AdministratorLevel" json:"AdministratorLevel,omitempty"` + JoinTime uint64 `protobuf:"varint,4,opt,name=JoinTime" json:"JoinTime,omitempty"` + NickName string `protobuf:"bytes,5,opt,name=NickName" json:"NickName,omitempty"` + FaceUrl string `protobuf:"bytes,6,opt,name=FaceUrl" json:"FaceUrl,omitempty"` + FriendRemark string `protobuf:"bytes,7,opt,name=FriendRemark" json:"FriendRemark,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +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_e1a0eca386827677, []int{11} +} +func (m *GroupMemberFullInfo) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GroupMemberFullInfo.Unmarshal(m, b) +} +func (m *GroupMemberFullInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GroupMemberFullInfo.Marshal(b, m, deterministic) +} +func (dst *GroupMemberFullInfo) XXX_Merge(src proto.Message) { + xxx_messageInfo_GroupMemberFullInfo.Merge(dst, src) +} +func (m *GroupMemberFullInfo) XXX_Size() int { + return xxx_messageInfo_GroupMemberFullInfo.Size(m) +} +func (m *GroupMemberFullInfo) XXX_DiscardUnknown() { + xxx_messageInfo_GroupMemberFullInfo.DiscardUnknown(m) +} + +var xxx_messageInfo_GroupMemberFullInfo proto.InternalMessageInfo + +func (m *GroupMemberFullInfo) GetGroupID() string { if m != nil { - return m.Ex + return m.GroupID } return "" } -func (m *GroupInfoTip) GetOwnerID() string { +func (m *GroupMemberFullInfo) GetUserID() string { if m != nil { - return m.OwnerID + return m.UserID } return "" } -func (m *GroupInfoTip) GetCreateTime() uint64 { +func (m *GroupMemberFullInfo) GetAdministratorLevel() int32 { if m != nil { - return m.CreateTime + return m.AdministratorLevel } return 0 } -func (m *GroupInfoTip) GetMemberCount() uint32 { +func (m *GroupMemberFullInfo) GetJoinTime() uint64 { if m != nil { - return m.MemberCount + return m.JoinTime } return 0 } -type UserInfoTip struct { +func (m *GroupMemberFullInfo) GetNickName() string { + if m != nil { + return m.NickName + } + return "" +} + +func (m *GroupMemberFullInfo) GetFaceUrl() string { + if m != nil { + return m.FaceUrl + } + return "" +} + +func (m *GroupMemberFullInfo) GetFriendRemark() string { + if m != nil { + return m.FriendRemark + } + return "" +} + +// private, Friends have permission to view +type UserInfo struct { UserID string `protobuf:"bytes,1,opt,name=UserID" json:"UserID,omitempty"` Name string `protobuf:"bytes,2,opt,name=Name" json:"Name,omitempty"` Icon string `protobuf:"bytes,3,opt,name=Icon" json:"Icon,omitempty"` @@ -850,142 +947,1259 @@ type UserInfoTip struct { Mobile string `protobuf:"bytes,5,opt,name=Mobile" json:"Mobile,omitempty"` Birth string `protobuf:"bytes,6,opt,name=Birth" json:"Birth,omitempty"` Email string `protobuf:"bytes,7,opt,name=Email" json:"Email,omitempty"` - Ex string `protobuf:"bytes,8,opt,name=Ex" json:"Ex,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` } -func (m *UserInfoTip) Reset() { *m = UserInfoTip{} } -func (m *UserInfoTip) String() string { return proto.CompactTextString(m) } -func (*UserInfoTip) ProtoMessage() {} -func (*UserInfoTip) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_d55c44e342c7a2b5, []int{11} +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_e1a0eca386827677, []int{12} } -func (m *UserInfoTip) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_UserInfoTip.Unmarshal(m, b) +func (m *UserInfo) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_UserInfo.Unmarshal(m, b) } -func (m *UserInfoTip) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_UserInfoTip.Marshal(b, m, deterministic) +func (m *UserInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_UserInfo.Marshal(b, m, deterministic) } -func (dst *UserInfoTip) XXX_Merge(src proto.Message) { - xxx_messageInfo_UserInfoTip.Merge(dst, src) +func (dst *UserInfo) XXX_Merge(src proto.Message) { + xxx_messageInfo_UserInfo.Merge(dst, src) } -func (m *UserInfoTip) XXX_Size() int { - return xxx_messageInfo_UserInfoTip.Size(m) +func (m *UserInfo) XXX_Size() int { + return xxx_messageInfo_UserInfo.Size(m) } -func (m *UserInfoTip) XXX_DiscardUnknown() { - xxx_messageInfo_UserInfoTip.DiscardUnknown(m) +func (m *UserInfo) XXX_DiscardUnknown() { + xxx_messageInfo_UserInfo.DiscardUnknown(m) } -var xxx_messageInfo_UserInfoTip proto.InternalMessageInfo +var xxx_messageInfo_UserInfo proto.InternalMessageInfo -func (m *UserInfoTip) GetUserID() string { +func (m *UserInfo) GetUserID() string { if m != nil { return m.UserID } return "" } -func (m *UserInfoTip) GetName() string { +func (m *UserInfo) GetName() string { if m != nil { return m.Name } return "" } -func (m *UserInfoTip) GetIcon() string { +func (m *UserInfo) GetIcon() string { if m != nil { return m.Icon } return "" } -func (m *UserInfoTip) GetGender() int32 { +func (m *UserInfo) GetGender() int32 { if m != nil { return m.Gender } return 0 } -func (m *UserInfoTip) GetMobile() string { +func (m *UserInfo) GetMobile() string { if m != nil { return m.Mobile } return "" } -func (m *UserInfoTip) GetBirth() string { +func (m *UserInfo) GetBirth() string { if m != nil { return m.Birth } return "" } -func (m *UserInfoTip) GetEmail() string { +func (m *UserInfo) GetEmail() string { if m != nil { return m.Email } return "" } -func (m *UserInfoTip) GetEx() string { +// No permissions required +type PublicUserInfo struct { + UserID string `protobuf:"bytes,1,opt,name=UserID" json:"UserID,omitempty"` + Nickname string `protobuf:"bytes,2,opt,name=Nickname" json:"Nickname,omitempty"` + FaceUrl string `protobuf:"bytes,3,opt,name=FaceUrl" json:"FaceUrl,omitempty"` + Gender int32 `protobuf:"varint,4,opt,name=Gender" json:"Gender,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +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_e1a0eca386827677, []int{13} +} +func (m *PublicUserInfo) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_PublicUserInfo.Unmarshal(m, b) +} +func (m *PublicUserInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_PublicUserInfo.Marshal(b, m, deterministic) +} +func (dst *PublicUserInfo) XXX_Merge(src proto.Message) { + xxx_messageInfo_PublicUserInfo.Merge(dst, src) +} +func (m *PublicUserInfo) XXX_Size() int { + return xxx_messageInfo_PublicUserInfo.Size(m) +} +func (m *PublicUserInfo) XXX_DiscardUnknown() { + xxx_messageInfo_PublicUserInfo.DiscardUnknown(m) +} + +var xxx_messageInfo_PublicUserInfo proto.InternalMessageInfo + +func (m *PublicUserInfo) GetUserID() string { + if m != nil { + return m.UserID + } + return "" +} + +func (m *PublicUserInfo) GetNickname() string { + if m != nil { + return m.Nickname + } + return "" +} + +func (m *PublicUserInfo) GetFaceUrl() string { + if m != nil { + return m.FaceUrl + } + return "" +} + +func (m *PublicUserInfo) GetGender() int32 { + if m != nil { + return m.Gender + } + return 0 +} + +type TipsComm struct { + Detail []byte `protobuf:"bytes,1,opt,name=Detail,proto3" json:"Detail,omitempty"` + DefaultTips string `protobuf:"bytes,2,opt,name=DefaultTips" json:"DefaultTips,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +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_e1a0eca386827677, []int{14} +} +func (m *TipsComm) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_TipsComm.Unmarshal(m, b) +} +func (m *TipsComm) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_TipsComm.Marshal(b, m, deterministic) +} +func (dst *TipsComm) XXX_Merge(src proto.Message) { + xxx_messageInfo_TipsComm.Merge(dst, src) +} +func (m *TipsComm) XXX_Size() int { + return xxx_messageInfo_TipsComm.Size(m) +} +func (m *TipsComm) XXX_DiscardUnknown() { + xxx_messageInfo_TipsComm.DiscardUnknown(m) +} + +var xxx_messageInfo_TipsComm proto.InternalMessageInfo + +func (m *TipsComm) GetDetail() []byte { if m != nil { - return m.Ex + return m.Detail + } + return nil +} + +func (m *TipsComm) GetDefaultTips() string { + if m != nil { + return m.DefaultTips } return "" } -type CreateGroupTip struct { - Group *GroupInfoTip `protobuf:"bytes,1,opt,name=group" json:"group,omitempty"` - Creator *UserInfoTip `protobuf:"bytes,2,opt,name=creator" json:"creator,omitempty"` - MemberList []*UserInfoTip `protobuf:"bytes,3,rep,name=memberList" json:"memberList,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` +// ////////////////////group///////////////////// +// Actively join the group +type MemberEnterTips struct { + Group *GroupInfo `protobuf:"bytes,1,opt,name=Group" json:"Group,omitempty"` + Member *GroupMemberFullInfo `protobuf:"bytes,2,opt,name=Member" json:"Member,omitempty"` + OperationTime uint64 `protobuf:"varint,3,opt,name=OperationTime" json:"OperationTime,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (m *CreateGroupTip) Reset() { *m = CreateGroupTip{} } -func (m *CreateGroupTip) String() string { return proto.CompactTextString(m) } -func (*CreateGroupTip) ProtoMessage() {} -func (*CreateGroupTip) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_d55c44e342c7a2b5, []int{12} +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_e1a0eca386827677, []int{15} } -func (m *CreateGroupTip) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_CreateGroupTip.Unmarshal(m, b) +func (m *MemberEnterTips) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_MemberEnterTips.Unmarshal(m, b) } -func (m *CreateGroupTip) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_CreateGroupTip.Marshal(b, m, deterministic) +func (m *MemberEnterTips) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_MemberEnterTips.Marshal(b, m, deterministic) } -func (dst *CreateGroupTip) XXX_Merge(src proto.Message) { - xxx_messageInfo_CreateGroupTip.Merge(dst, src) +func (dst *MemberEnterTips) XXX_Merge(src proto.Message) { + xxx_messageInfo_MemberEnterTips.Merge(dst, src) } -func (m *CreateGroupTip) XXX_Size() int { - return xxx_messageInfo_CreateGroupTip.Size(m) +func (m *MemberEnterTips) XXX_Size() int { + return xxx_messageInfo_MemberEnterTips.Size(m) } -func (m *CreateGroupTip) XXX_DiscardUnknown() { - xxx_messageInfo_CreateGroupTip.DiscardUnknown(m) +func (m *MemberEnterTips) XXX_DiscardUnknown() { + xxx_messageInfo_MemberEnterTips.DiscardUnknown(m) } -var xxx_messageInfo_CreateGroupTip proto.InternalMessageInfo +var xxx_messageInfo_MemberEnterTips proto.InternalMessageInfo -func (m *CreateGroupTip) GetGroup() *GroupInfoTip { +func (m *MemberEnterTips) GetGroup() *GroupInfo { if m != nil { return m.Group } return nil } -func (m *CreateGroupTip) GetCreator() *UserInfoTip { +func (m *MemberEnterTips) GetMember() *GroupMemberFullInfo { if m != nil { - return m.Creator + return m.Member } return nil } -func (m *CreateGroupTip) GetMemberList() []*UserInfoTip { +func (m *MemberEnterTips) GetOperationTime() uint64 { if m != nil { - return m.MemberList + return m.OperationTime + } + return 0 +} + +// Actively leave the group +type MemberLeaveTips struct { + Group *GroupInfo `protobuf:"bytes,1,opt,name=Group" json:"Group,omitempty"` + Member *GroupMemberFullInfo `protobuf:"bytes,2,opt,name=Member" json:"Member,omitempty"` + OperationTime uint64 `protobuf:"varint,3,opt,name=OperationTime" json:"OperationTime,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *MemberLeaveTips) Reset() { *m = MemberLeaveTips{} } +func (m *MemberLeaveTips) String() string { return proto.CompactTextString(m) } +func (*MemberLeaveTips) ProtoMessage() {} +func (*MemberLeaveTips) Descriptor() ([]byte, []int) { + return fileDescriptor_ws_e1a0eca386827677, []int{16} +} +func (m *MemberLeaveTips) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_MemberLeaveTips.Unmarshal(m, b) +} +func (m *MemberLeaveTips) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_MemberLeaveTips.Marshal(b, m, deterministic) +} +func (dst *MemberLeaveTips) XXX_Merge(src proto.Message) { + xxx_messageInfo_MemberLeaveTips.Merge(dst, src) +} +func (m *MemberLeaveTips) XXX_Size() int { + return xxx_messageInfo_MemberLeaveTips.Size(m) +} +func (m *MemberLeaveTips) XXX_DiscardUnknown() { + xxx_messageInfo_MemberLeaveTips.DiscardUnknown(m) +} + +var xxx_messageInfo_MemberLeaveTips proto.InternalMessageInfo + +func (m *MemberLeaveTips) GetGroup() *GroupInfo { + if m != nil { + return m.Group + } + return nil +} + +func (m *MemberLeaveTips) GetMember() *GroupMemberFullInfo { + if m != nil { + return m.Member + } + return nil +} + +func (m *MemberLeaveTips) GetOperationTime() uint64 { + if m != nil { + return m.OperationTime + } + return 0 +} + +type MemberInvitedTips struct { + Group *GroupInfo `protobuf:"bytes,1,opt,name=Group" json:"Group,omitempty"` + OpUser *GroupMemberFullInfo `protobuf:"bytes,2,opt,name=OpUser" json:"OpUser,omitempty"` + Member *GroupMemberFullInfo `protobuf:"bytes,3,opt,name=Member" json:"Member,omitempty"` + OperationTime uint64 `protobuf:"varint,4,opt,name=OperationTime" json:"OperationTime,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +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_e1a0eca386827677, []int{17} +} +func (m *MemberInvitedTips) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_MemberInvitedTips.Unmarshal(m, b) +} +func (m *MemberInvitedTips) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_MemberInvitedTips.Marshal(b, m, deterministic) +} +func (dst *MemberInvitedTips) XXX_Merge(src proto.Message) { + xxx_messageInfo_MemberInvitedTips.Merge(dst, src) +} +func (m *MemberInvitedTips) XXX_Size() int { + return xxx_messageInfo_MemberInvitedTips.Size(m) +} +func (m *MemberInvitedTips) XXX_DiscardUnknown() { + xxx_messageInfo_MemberInvitedTips.DiscardUnknown(m) +} + +var xxx_messageInfo_MemberInvitedTips proto.InternalMessageInfo + +func (m *MemberInvitedTips) GetGroup() *GroupInfo { + if m != nil { + return m.Group + } + return nil +} + +func (m *MemberInvitedTips) GetOpUser() *GroupMemberFullInfo { + if m != nil { + return m.OpUser + } + return nil +} + +func (m *MemberInvitedTips) GetMember() *GroupMemberFullInfo { + if m != nil { + return m.Member + } + return nil +} + +func (m *MemberInvitedTips) GetOperationTime() uint64 { + if m != nil { + return m.OperationTime + } + return 0 +} + +type MemberKickedTips struct { + Group *GroupInfo `protobuf:"bytes,1,opt,name=Group" json:"Group,omitempty"` + OpUser *GroupMemberFullInfo `protobuf:"bytes,2,opt,name=OpUser" json:"OpUser,omitempty"` + Member *GroupMemberFullInfo `protobuf:"bytes,3,opt,name=Member" json:"Member,omitempty"` + OperationTime uint64 `protobuf:"varint,4,opt,name=OperationTime" json:"OperationTime,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +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_e1a0eca386827677, []int{18} +} +func (m *MemberKickedTips) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_MemberKickedTips.Unmarshal(m, b) +} +func (m *MemberKickedTips) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_MemberKickedTips.Marshal(b, m, deterministic) +} +func (dst *MemberKickedTips) XXX_Merge(src proto.Message) { + xxx_messageInfo_MemberKickedTips.Merge(dst, src) +} +func (m *MemberKickedTips) XXX_Size() int { + return xxx_messageInfo_MemberKickedTips.Size(m) +} +func (m *MemberKickedTips) XXX_DiscardUnknown() { + xxx_messageInfo_MemberKickedTips.DiscardUnknown(m) +} + +var xxx_messageInfo_MemberKickedTips proto.InternalMessageInfo + +func (m *MemberKickedTips) GetGroup() *GroupInfo { + if m != nil { + return m.Group + } + return nil +} + +func (m *MemberKickedTips) GetOpUser() *GroupMemberFullInfo { + if m != nil { + return m.OpUser + } + return nil +} + +func (m *MemberKickedTips) GetMember() *GroupMemberFullInfo { + if m != nil { + return m.Member + } + return nil +} + +func (m *MemberKickedTips) GetOperationTime() uint64 { + if m != nil { + return m.OperationTime + } + return 0 +} + +type GroupMemberChangeInfo struct { + ChangeType int32 `protobuf:"varint,1,opt,name=ChangeType" json:"ChangeType,omitempty"` + OpUser *GroupMemberFullInfo `protobuf:"bytes,2,opt,name=OpUser" json:"OpUser,omitempty"` + Member *GroupMemberFullInfo `protobuf:"bytes,3,opt,name=Member" json:"Member,omitempty"` + MuteTime uint64 `protobuf:"varint,4,opt,name=MuteTime" json:"MuteTime,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *GroupMemberChangeInfo) Reset() { *m = GroupMemberChangeInfo{} } +func (m *GroupMemberChangeInfo) String() string { return proto.CompactTextString(m) } +func (*GroupMemberChangeInfo) ProtoMessage() {} +func (*GroupMemberChangeInfo) Descriptor() ([]byte, []int) { + return fileDescriptor_ws_e1a0eca386827677, []int{19} +} +func (m *GroupMemberChangeInfo) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GroupMemberChangeInfo.Unmarshal(m, b) +} +func (m *GroupMemberChangeInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GroupMemberChangeInfo.Marshal(b, m, deterministic) +} +func (dst *GroupMemberChangeInfo) XXX_Merge(src proto.Message) { + xxx_messageInfo_GroupMemberChangeInfo.Merge(dst, src) +} +func (m *GroupMemberChangeInfo) XXX_Size() int { + return xxx_messageInfo_GroupMemberChangeInfo.Size(m) +} +func (m *GroupMemberChangeInfo) XXX_DiscardUnknown() { + xxx_messageInfo_GroupMemberChangeInfo.DiscardUnknown(m) +} + +var xxx_messageInfo_GroupMemberChangeInfo proto.InternalMessageInfo + +func (m *GroupMemberChangeInfo) GetChangeType() int32 { + if m != nil { + return m.ChangeType + } + return 0 +} + +func (m *GroupMemberChangeInfo) GetOpUser() *GroupMemberFullInfo { + if m != nil { + return m.OpUser + } + return nil +} + +func (m *GroupMemberChangeInfo) GetMember() *GroupMemberFullInfo { + if m != nil { + return m.Member + } + return nil +} + +func (m *GroupMemberChangeInfo) GetMuteTime() uint64 { + if m != nil { + return m.MuteTime + } + return 0 +} + +type MemberInfoChangedTips struct { + Group *GroupInfo `protobuf:"bytes,1,opt,name=Group" json:"Group,omitempty"` + MemberChanged *GroupMemberChangeInfo `protobuf:"bytes,2,opt,name=MemberChanged" json:"MemberChanged,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *MemberInfoChangedTips) Reset() { *m = MemberInfoChangedTips{} } +func (m *MemberInfoChangedTips) String() string { return proto.CompactTextString(m) } +func (*MemberInfoChangedTips) ProtoMessage() {} +func (*MemberInfoChangedTips) Descriptor() ([]byte, []int) { + return fileDescriptor_ws_e1a0eca386827677, []int{20} +} +func (m *MemberInfoChangedTips) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_MemberInfoChangedTips.Unmarshal(m, b) +} +func (m *MemberInfoChangedTips) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_MemberInfoChangedTips.Marshal(b, m, deterministic) +} +func (dst *MemberInfoChangedTips) XXX_Merge(src proto.Message) { + xxx_messageInfo_MemberInfoChangedTips.Merge(dst, src) +} +func (m *MemberInfoChangedTips) XXX_Size() int { + return xxx_messageInfo_MemberInfoChangedTips.Size(m) +} +func (m *MemberInfoChangedTips) XXX_DiscardUnknown() { + xxx_messageInfo_MemberInfoChangedTips.DiscardUnknown(m) +} + +var xxx_messageInfo_MemberInfoChangedTips proto.InternalMessageInfo + +func (m *MemberInfoChangedTips) GetGroup() *GroupInfo { + if m != nil { + return m.Group + } + return nil +} + +func (m *MemberInfoChangedTips) GetMemberChanged() *GroupMemberChangeInfo { + if m != nil { + return m.MemberChanged + } + return nil +} + +type GroupCreatedTips struct { + Group *GroupInfo `protobuf:"bytes,1,opt,name=Group" json:"Group,omitempty"` + Creator *GroupMemberFullInfo `protobuf:"bytes,2,opt,name=Creator" json:"Creator,omitempty"` + MemberList []*GroupMemberFullInfo `protobuf:"bytes,3,rep,name=MemberList" json:"MemberList,omitempty"` + OperationTime uint64 `protobuf:"varint,4,opt,name=OperationTime" json:"OperationTime,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +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_e1a0eca386827677, []int{21} +} +func (m *GroupCreatedTips) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GroupCreatedTips.Unmarshal(m, b) +} +func (m *GroupCreatedTips) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GroupCreatedTips.Marshal(b, m, deterministic) +} +func (dst *GroupCreatedTips) XXX_Merge(src proto.Message) { + xxx_messageInfo_GroupCreatedTips.Merge(dst, src) +} +func (m *GroupCreatedTips) XXX_Size() int { + return xxx_messageInfo_GroupCreatedTips.Size(m) +} +func (m *GroupCreatedTips) XXX_DiscardUnknown() { + xxx_messageInfo_GroupCreatedTips.DiscardUnknown(m) +} + +var xxx_messageInfo_GroupCreatedTips proto.InternalMessageInfo + +func (m *GroupCreatedTips) GetGroup() *GroupInfo { + if m != nil { + return m.Group + } + return nil +} + +func (m *GroupCreatedTips) GetCreator() *GroupMemberFullInfo { + if m != nil { + return m.Creator + } + return nil +} + +func (m *GroupCreatedTips) GetMemberList() []*GroupMemberFullInfo { + if m != nil { + return m.MemberList + } + return nil +} + +func (m *GroupCreatedTips) GetOperationTime() uint64 { + if m != nil { + return m.OperationTime + } + return 0 +} + +type GroupInfoChangedTips struct { + ChangedType int32 `protobuf:"varint,1,opt,name=ChangedType" json:"ChangedType,omitempty"` + Group *GroupInfo `protobuf:"bytes,2,opt,name=Group" json:"Group,omitempty"` + OpUser *GroupMemberFullInfo `protobuf:"bytes,3,opt,name=OpUser" json:"OpUser,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *GroupInfoChangedTips) Reset() { *m = GroupInfoChangedTips{} } +func (m *GroupInfoChangedTips) String() string { return proto.CompactTextString(m) } +func (*GroupInfoChangedTips) ProtoMessage() {} +func (*GroupInfoChangedTips) Descriptor() ([]byte, []int) { + return fileDescriptor_ws_e1a0eca386827677, []int{22} +} +func (m *GroupInfoChangedTips) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GroupInfoChangedTips.Unmarshal(m, b) +} +func (m *GroupInfoChangedTips) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GroupInfoChangedTips.Marshal(b, m, deterministic) +} +func (dst *GroupInfoChangedTips) XXX_Merge(src proto.Message) { + xxx_messageInfo_GroupInfoChangedTips.Merge(dst, src) +} +func (m *GroupInfoChangedTips) XXX_Size() int { + return xxx_messageInfo_GroupInfoChangedTips.Size(m) +} +func (m *GroupInfoChangedTips) XXX_DiscardUnknown() { + xxx_messageInfo_GroupInfoChangedTips.DiscardUnknown(m) +} + +var xxx_messageInfo_GroupInfoChangedTips proto.InternalMessageInfo + +func (m *GroupInfoChangedTips) GetChangedType() int32 { + if m != nil { + return m.ChangedType + } + return 0 +} + +func (m *GroupInfoChangedTips) GetGroup() *GroupInfo { + if m != nil { + return m.Group + } + return nil +} + +func (m *GroupInfoChangedTips) GetOpUser() *GroupMemberFullInfo { + if m != nil { + return m.OpUser + } + return nil +} + +type ReceiveJoinApplicationTips struct { + Group *GroupInfo `protobuf:"bytes,1,opt,name=Group" json:"Group,omitempty"` + Applicant *PublicUserInfo `protobuf:"bytes,2,opt,name=Applicant" json:"Applicant,omitempty"` + Reason string `protobuf:"bytes,3,opt,name=Reason" json:"Reason,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *ReceiveJoinApplicationTips) Reset() { *m = ReceiveJoinApplicationTips{} } +func (m *ReceiveJoinApplicationTips) String() string { return proto.CompactTextString(m) } +func (*ReceiveJoinApplicationTips) ProtoMessage() {} +func (*ReceiveJoinApplicationTips) Descriptor() ([]byte, []int) { + return fileDescriptor_ws_e1a0eca386827677, []int{23} +} +func (m *ReceiveJoinApplicationTips) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_ReceiveJoinApplicationTips.Unmarshal(m, b) +} +func (m *ReceiveJoinApplicationTips) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_ReceiveJoinApplicationTips.Marshal(b, m, deterministic) +} +func (dst *ReceiveJoinApplicationTips) XXX_Merge(src proto.Message) { + xxx_messageInfo_ReceiveJoinApplicationTips.Merge(dst, src) +} +func (m *ReceiveJoinApplicationTips) XXX_Size() int { + return xxx_messageInfo_ReceiveJoinApplicationTips.Size(m) +} +func (m *ReceiveJoinApplicationTips) XXX_DiscardUnknown() { + xxx_messageInfo_ReceiveJoinApplicationTips.DiscardUnknown(m) +} + +var xxx_messageInfo_ReceiveJoinApplicationTips proto.InternalMessageInfo + +func (m *ReceiveJoinApplicationTips) GetGroup() *GroupInfo { + if m != nil { + return m.Group + } + return nil +} + +func (m *ReceiveJoinApplicationTips) GetApplicant() *PublicUserInfo { + if m != nil { + return m.Applicant + } + return nil +} + +func (m *ReceiveJoinApplicationTips) GetReason() string { + if m != nil { + return m.Reason + } + return "" +} + +type ApplicationProcessedTips struct { + Group *GroupInfo `protobuf:"bytes,1,opt,name=Group" json:"Group,omitempty"` + OpUser *GroupMemberFullInfo `protobuf:"bytes,2,opt,name=OpUser" json:"OpUser,omitempty"` + Result int32 `protobuf:"varint,3,opt,name=Result" json:"Result,omitempty"` + Reason string `protobuf:"bytes,4,opt,name=Reason" json:"Reason,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *ApplicationProcessedTips) Reset() { *m = ApplicationProcessedTips{} } +func (m *ApplicationProcessedTips) String() string { return proto.CompactTextString(m) } +func (*ApplicationProcessedTips) ProtoMessage() {} +func (*ApplicationProcessedTips) Descriptor() ([]byte, []int) { + return fileDescriptor_ws_e1a0eca386827677, []int{24} +} +func (m *ApplicationProcessedTips) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_ApplicationProcessedTips.Unmarshal(m, b) +} +func (m *ApplicationProcessedTips) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_ApplicationProcessedTips.Marshal(b, m, deterministic) +} +func (dst *ApplicationProcessedTips) XXX_Merge(src proto.Message) { + xxx_messageInfo_ApplicationProcessedTips.Merge(dst, src) +} +func (m *ApplicationProcessedTips) XXX_Size() int { + return xxx_messageInfo_ApplicationProcessedTips.Size(m) +} +func (m *ApplicationProcessedTips) XXX_DiscardUnknown() { + xxx_messageInfo_ApplicationProcessedTips.DiscardUnknown(m) +} + +var xxx_messageInfo_ApplicationProcessedTips proto.InternalMessageInfo + +func (m *ApplicationProcessedTips) GetGroup() *GroupInfo { + if m != nil { + return m.Group + } + return nil +} + +func (m *ApplicationProcessedTips) GetOpUser() *GroupMemberFullInfo { + if m != nil { + return m.OpUser + } + return nil +} + +func (m *ApplicationProcessedTips) GetResult() int32 { + if m != nil { + return m.Result + } + return 0 +} + +func (m *ApplicationProcessedTips) GetReason() string { + if m != nil { + return m.Reason + } + return "" +} + +// ////////////////////friend///////////////////// +type FriendInfo struct { + OwnerUserID string `protobuf:"bytes,1,opt,name=OwnerUserID" json:"OwnerUserID,omitempty"` + Remark string `protobuf:"bytes,2,opt,name=Remark" json:"Remark,omitempty"` + CreateTime uint64 `protobuf:"varint,3,opt,name=CreateTime" json:"CreateTime,omitempty"` + FriendUserInfo *UserInfo `protobuf:"bytes,4,opt,name=FriendUserInfo" json:"FriendUserInfo,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +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_e1a0eca386827677, []int{25} +} +func (m *FriendInfo) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_FriendInfo.Unmarshal(m, b) +} +func (m *FriendInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_FriendInfo.Marshal(b, m, deterministic) +} +func (dst *FriendInfo) XXX_Merge(src proto.Message) { + xxx_messageInfo_FriendInfo.Merge(dst, src) +} +func (m *FriendInfo) XXX_Size() int { + return xxx_messageInfo_FriendInfo.Size(m) +} +func (m *FriendInfo) XXX_DiscardUnknown() { + xxx_messageInfo_FriendInfo.DiscardUnknown(m) +} + +var xxx_messageInfo_FriendInfo proto.InternalMessageInfo + +func (m *FriendInfo) GetOwnerUserID() string { + if m != nil { + return m.OwnerUserID + } + return "" +} + +func (m *FriendInfo) GetRemark() string { + if m != nil { + return m.Remark + } + return "" +} + +func (m *FriendInfo) GetCreateTime() uint64 { + if m != nil { + return m.CreateTime + } + return 0 +} + +func (m *FriendInfo) GetFriendUserInfo() *UserInfo { + if m != nil { + return m.FriendUserInfo + } + return nil +} + +type FriendApplication struct { + AddTime uint64 `protobuf:"varint,4,opt,name=AddTime" json:"AddTime,omitempty"` + AddSource string `protobuf:"bytes,5,opt,name=AddSource" json:"AddSource,omitempty"` + AddWording string `protobuf:"bytes,6,opt,name=AddWording" json:"AddWording,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +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_e1a0eca386827677, []int{26} +} +func (m *FriendApplication) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_FriendApplication.Unmarshal(m, b) +} +func (m *FriendApplication) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_FriendApplication.Marshal(b, m, deterministic) +} +func (dst *FriendApplication) XXX_Merge(src proto.Message) { + xxx_messageInfo_FriendApplication.Merge(dst, src) +} +func (m *FriendApplication) XXX_Size() int { + return xxx_messageInfo_FriendApplication.Size(m) +} +func (m *FriendApplication) XXX_DiscardUnknown() { + xxx_messageInfo_FriendApplication.DiscardUnknown(m) +} + +var xxx_messageInfo_FriendApplication proto.InternalMessageInfo + +func (m *FriendApplication) GetAddTime() uint64 { + if m != nil { + return m.AddTime + } + return 0 +} + +func (m *FriendApplication) GetAddSource() string { + if m != nil { + return m.AddSource + } + return "" +} + +func (m *FriendApplication) GetAddWording() string { + if m != nil { + return m.AddWording + } + return "" +} + +// user1 add user2 +type FriendApplicationListAddedTips struct { + OpUser *PublicUserInfo `protobuf:"bytes,1,opt,name=OpUser" json:"OpUser,omitempty"` + Application *FriendApplication `protobuf:"bytes,2,opt,name=Application" json:"Application,omitempty"` + OpedUser *PublicUserInfo `protobuf:"bytes,3,opt,name=OpedUser" json:"OpedUser,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *FriendApplicationListAddedTips) Reset() { *m = FriendApplicationListAddedTips{} } +func (m *FriendApplicationListAddedTips) String() string { return proto.CompactTextString(m) } +func (*FriendApplicationListAddedTips) ProtoMessage() {} +func (*FriendApplicationListAddedTips) Descriptor() ([]byte, []int) { + return fileDescriptor_ws_e1a0eca386827677, []int{27} +} +func (m *FriendApplicationListAddedTips) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_FriendApplicationListAddedTips.Unmarshal(m, b) +} +func (m *FriendApplicationListAddedTips) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_FriendApplicationListAddedTips.Marshal(b, m, deterministic) +} +func (dst *FriendApplicationListAddedTips) XXX_Merge(src proto.Message) { + xxx_messageInfo_FriendApplicationListAddedTips.Merge(dst, src) +} +func (m *FriendApplicationListAddedTips) XXX_Size() int { + return xxx_messageInfo_FriendApplicationListAddedTips.Size(m) +} +func (m *FriendApplicationListAddedTips) XXX_DiscardUnknown() { + xxx_messageInfo_FriendApplicationListAddedTips.DiscardUnknown(m) +} + +var xxx_messageInfo_FriendApplicationListAddedTips proto.InternalMessageInfo + +func (m *FriendApplicationListAddedTips) GetOpUser() *PublicUserInfo { + if m != nil { + return m.OpUser + } + return nil +} + +func (m *FriendApplicationListAddedTips) GetApplication() *FriendApplication { + if m != nil { + return m.Application + } + return nil +} + +func (m *FriendApplicationListAddedTips) GetOpedUser() *PublicUserInfo { + if m != nil { + return m.OpedUser + } + return nil +} + +// user2 accept +type FriendApplicationListAcceptTips struct { + OpUser *PublicUserInfo `protobuf:"bytes,1,opt,name=OpUser" json:"OpUser,omitempty"` + OpedUser *PublicUserInfo `protobuf:"bytes,2,opt,name=OpedUser" json:"OpedUser,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *FriendApplicationListAcceptTips) Reset() { *m = FriendApplicationListAcceptTips{} } +func (m *FriendApplicationListAcceptTips) String() string { return proto.CompactTextString(m) } +func (*FriendApplicationListAcceptTips) ProtoMessage() {} +func (*FriendApplicationListAcceptTips) Descriptor() ([]byte, []int) { + return fileDescriptor_ws_e1a0eca386827677, []int{28} +} +func (m *FriendApplicationListAcceptTips) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_FriendApplicationListAcceptTips.Unmarshal(m, b) +} +func (m *FriendApplicationListAcceptTips) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_FriendApplicationListAcceptTips.Marshal(b, m, deterministic) +} +func (dst *FriendApplicationListAcceptTips) XXX_Merge(src proto.Message) { + xxx_messageInfo_FriendApplicationListAcceptTips.Merge(dst, src) +} +func (m *FriendApplicationListAcceptTips) XXX_Size() int { + return xxx_messageInfo_FriendApplicationListAcceptTips.Size(m) +} +func (m *FriendApplicationListAcceptTips) XXX_DiscardUnknown() { + xxx_messageInfo_FriendApplicationListAcceptTips.DiscardUnknown(m) +} + +var xxx_messageInfo_FriendApplicationListAcceptTips proto.InternalMessageInfo + +func (m *FriendApplicationListAcceptTips) GetOpUser() *PublicUserInfo { + if m != nil { + return m.OpUser + } + return nil +} + +func (m *FriendApplicationListAcceptTips) GetOpedUser() *PublicUserInfo { + if m != nil { + return m.OpedUser + } + return nil +} + +// user2 reject +type FriendApplicationListRejectTips struct { + OpUser *PublicUserInfo `protobuf:"bytes,1,opt,name=OpUser" json:"OpUser,omitempty"` + OpedUser *PublicUserInfo `protobuf:"bytes,2,opt,name=OpedUser" json:"OpedUser,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *FriendApplicationListRejectTips) Reset() { *m = FriendApplicationListRejectTips{} } +func (m *FriendApplicationListRejectTips) String() string { return proto.CompactTextString(m) } +func (*FriendApplicationListRejectTips) ProtoMessage() {} +func (*FriendApplicationListRejectTips) Descriptor() ([]byte, []int) { + return fileDescriptor_ws_e1a0eca386827677, []int{29} +} +func (m *FriendApplicationListRejectTips) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_FriendApplicationListRejectTips.Unmarshal(m, b) +} +func (m *FriendApplicationListRejectTips) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_FriendApplicationListRejectTips.Marshal(b, m, deterministic) +} +func (dst *FriendApplicationListRejectTips) XXX_Merge(src proto.Message) { + xxx_messageInfo_FriendApplicationListRejectTips.Merge(dst, src) +} +func (m *FriendApplicationListRejectTips) XXX_Size() int { + return xxx_messageInfo_FriendApplicationListRejectTips.Size(m) +} +func (m *FriendApplicationListRejectTips) XXX_DiscardUnknown() { + xxx_messageInfo_FriendApplicationListRejectTips.DiscardUnknown(m) +} + +var xxx_messageInfo_FriendApplicationListRejectTips proto.InternalMessageInfo + +func (m *FriendApplicationListRejectTips) GetOpUser() *PublicUserInfo { + if m != nil { + return m.OpUser + } + return nil +} + +func (m *FriendApplicationListRejectTips) GetOpedUser() *PublicUserInfo { + if m != nil { + return m.OpedUser + } + return nil +} + +type FriendListAddedTips struct { + Friend *FriendInfo `protobuf:"bytes,1,opt,name=Friend" json:"Friend,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *FriendListAddedTips) Reset() { *m = FriendListAddedTips{} } +func (m *FriendListAddedTips) String() string { return proto.CompactTextString(m) } +func (*FriendListAddedTips) ProtoMessage() {} +func (*FriendListAddedTips) Descriptor() ([]byte, []int) { + return fileDescriptor_ws_e1a0eca386827677, []int{30} +} +func (m *FriendListAddedTips) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_FriendListAddedTips.Unmarshal(m, b) +} +func (m *FriendListAddedTips) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_FriendListAddedTips.Marshal(b, m, deterministic) +} +func (dst *FriendListAddedTips) XXX_Merge(src proto.Message) { + xxx_messageInfo_FriendListAddedTips.Merge(dst, src) +} +func (m *FriendListAddedTips) XXX_Size() int { + return xxx_messageInfo_FriendListAddedTips.Size(m) +} +func (m *FriendListAddedTips) XXX_DiscardUnknown() { + xxx_messageInfo_FriendListAddedTips.DiscardUnknown(m) +} + +var xxx_messageInfo_FriendListAddedTips proto.InternalMessageInfo + +func (m *FriendListAddedTips) GetFriend() *FriendInfo { + if m != nil { + return m.Friend + } + return nil +} + +type FriendListDeletedTips struct { + Friend *FriendInfo `protobuf:"bytes,1,opt,name=Friend" json:"Friend,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *FriendListDeletedTips) Reset() { *m = FriendListDeletedTips{} } +func (m *FriendListDeletedTips) String() string { return proto.CompactTextString(m) } +func (*FriendListDeletedTips) ProtoMessage() {} +func (*FriendListDeletedTips) Descriptor() ([]byte, []int) { + return fileDescriptor_ws_e1a0eca386827677, []int{31} +} +func (m *FriendListDeletedTips) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_FriendListDeletedTips.Unmarshal(m, b) +} +func (m *FriendListDeletedTips) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_FriendListDeletedTips.Marshal(b, m, deterministic) +} +func (dst *FriendListDeletedTips) XXX_Merge(src proto.Message) { + xxx_messageInfo_FriendListDeletedTips.Merge(dst, src) +} +func (m *FriendListDeletedTips) XXX_Size() int { + return xxx_messageInfo_FriendListDeletedTips.Size(m) +} +func (m *FriendListDeletedTips) XXX_DiscardUnknown() { + xxx_messageInfo_FriendListDeletedTips.DiscardUnknown(m) +} + +var xxx_messageInfo_FriendListDeletedTips proto.InternalMessageInfo + +func (m *FriendListDeletedTips) GetFriend() *FriendInfo { + if m != nil { + return m.Friend + } + return nil +} + +type BlackListAddTips struct { + Friend *FriendInfo `protobuf:"bytes,1,opt,name=Friend" json:"Friend,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *BlackListAddTips) Reset() { *m = BlackListAddTips{} } +func (m *BlackListAddTips) String() string { return proto.CompactTextString(m) } +func (*BlackListAddTips) ProtoMessage() {} +func (*BlackListAddTips) Descriptor() ([]byte, []int) { + return fileDescriptor_ws_e1a0eca386827677, []int{32} +} +func (m *BlackListAddTips) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_BlackListAddTips.Unmarshal(m, b) +} +func (m *BlackListAddTips) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_BlackListAddTips.Marshal(b, m, deterministic) +} +func (dst *BlackListAddTips) XXX_Merge(src proto.Message) { + xxx_messageInfo_BlackListAddTips.Merge(dst, src) +} +func (m *BlackListAddTips) XXX_Size() int { + return xxx_messageInfo_BlackListAddTips.Size(m) +} +func (m *BlackListAddTips) XXX_DiscardUnknown() { + xxx_messageInfo_BlackListAddTips.DiscardUnknown(m) +} + +var xxx_messageInfo_BlackListAddTips proto.InternalMessageInfo + +func (m *BlackListAddTips) GetFriend() *FriendInfo { + if m != nil { + return m.Friend + } + return nil +} + +type BlackListDeletedTips struct { + Friend *FriendInfo `protobuf:"bytes,1,opt,name=Friend" json:"Friend,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *BlackListDeletedTips) Reset() { *m = BlackListDeletedTips{} } +func (m *BlackListDeletedTips) String() string { return proto.CompactTextString(m) } +func (*BlackListDeletedTips) ProtoMessage() {} +func (*BlackListDeletedTips) Descriptor() ([]byte, []int) { + return fileDescriptor_ws_e1a0eca386827677, []int{33} +} +func (m *BlackListDeletedTips) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_BlackListDeletedTips.Unmarshal(m, b) +} +func (m *BlackListDeletedTips) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_BlackListDeletedTips.Marshal(b, m, deterministic) +} +func (dst *BlackListDeletedTips) XXX_Merge(src proto.Message) { + xxx_messageInfo_BlackListDeletedTips.Merge(dst, src) +} +func (m *BlackListDeletedTips) XXX_Size() int { + return xxx_messageInfo_BlackListDeletedTips.Size(m) +} +func (m *BlackListDeletedTips) XXX_DiscardUnknown() { + xxx_messageInfo_BlackListDeletedTips.DiscardUnknown(m) +} + +var xxx_messageInfo_BlackListDeletedTips proto.InternalMessageInfo + +func (m *BlackListDeletedTips) GetFriend() *FriendInfo { + if m != nil { + return m.Friend + } + return nil +} + +type FriendInfoChangedTips struct { + Friend *FriendInfo `protobuf:"bytes,1,opt,name=Friend" json:"Friend,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +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_e1a0eca386827677, []int{34} +} +func (m *FriendInfoChangedTips) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_FriendInfoChangedTips.Unmarshal(m, b) +} +func (m *FriendInfoChangedTips) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_FriendInfoChangedTips.Marshal(b, m, deterministic) +} +func (dst *FriendInfoChangedTips) XXX_Merge(src proto.Message) { + xxx_messageInfo_FriendInfoChangedTips.Merge(dst, src) +} +func (m *FriendInfoChangedTips) XXX_Size() int { + return xxx_messageInfo_FriendInfoChangedTips.Size(m) +} +func (m *FriendInfoChangedTips) XXX_DiscardUnknown() { + xxx_messageInfo_FriendInfoChangedTips.DiscardUnknown(m) +} + +var xxx_messageInfo_FriendInfoChangedTips proto.InternalMessageInfo + +func (m *FriendInfoChangedTips) GetFriend() *FriendInfo { + if m != nil { + return m.Friend + } + return nil +} + +// ////////////////////user///////////////////// +type SelfInfoUpdatedTips struct { + SelfUserInfo *UserInfo `protobuf:"bytes,1,opt,name=SelfUserInfo" json:"SelfUserInfo,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *SelfInfoUpdatedTips) Reset() { *m = SelfInfoUpdatedTips{} } +func (m *SelfInfoUpdatedTips) String() string { return proto.CompactTextString(m) } +func (*SelfInfoUpdatedTips) ProtoMessage() {} +func (*SelfInfoUpdatedTips) Descriptor() ([]byte, []int) { + return fileDescriptor_ws_e1a0eca386827677, []int{35} +} +func (m *SelfInfoUpdatedTips) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_SelfInfoUpdatedTips.Unmarshal(m, b) +} +func (m *SelfInfoUpdatedTips) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_SelfInfoUpdatedTips.Marshal(b, m, deterministic) +} +func (dst *SelfInfoUpdatedTips) XXX_Merge(src proto.Message) { + xxx_messageInfo_SelfInfoUpdatedTips.Merge(dst, src) +} +func (m *SelfInfoUpdatedTips) XXX_Size() int { + return xxx_messageInfo_SelfInfoUpdatedTips.Size(m) +} +func (m *SelfInfoUpdatedTips) XXX_DiscardUnknown() { + xxx_messageInfo_SelfInfoUpdatedTips.DiscardUnknown(m) +} + +var xxx_messageInfo_SelfInfoUpdatedTips proto.InternalMessageInfo + +func (m *SelfInfoUpdatedTips) GetSelfUserInfo() *UserInfo { + if m != nil { + return m.SelfUserInfo } return nil } @@ -1002,77 +2216,142 @@ func init() { proto.RegisterType((*UserSendMsgResp)(nil), "open_im_sdk.UserSendMsgResp") proto.RegisterType((*MsgData)(nil), "open_im_sdk.MsgData") proto.RegisterType((*OfflinePushInfo)(nil), "open_im_sdk.OfflinePushInfo") - proto.RegisterType((*GroupInfoTip)(nil), "open_im_sdk.GroupInfoTip") - proto.RegisterType((*UserInfoTip)(nil), "open_im_sdk.UserInfoTip") - proto.RegisterType((*CreateGroupTip)(nil), "open_im_sdk.CreateGroupTip") -} - -func init() { proto.RegisterFile("sdk_ws/ws.proto", fileDescriptor_ws_d55c44e342c7a2b5) } - -var fileDescriptor_ws_d55c44e342c7a2b5 = []byte{ - // 1021 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x8c, 0x56, 0xcb, 0x6e, 0x23, 0xb7, - 0x12, 0x85, 0xba, 0xf5, 0x2c, 0xc9, 0xf6, 0x80, 0xd7, 0xf0, 0xed, 0x0c, 0x82, 0x40, 0x68, 0x04, - 0x81, 0x30, 0x0b, 0x19, 0xf0, 0x6c, 0x06, 0x13, 0x04, 0x41, 0x6c, 0xc9, 0x86, 0x82, 0x91, 0x6d, - 0xb4, 0x3c, 0x9b, 0x6c, 0x8c, 0x76, 0x8b, 0x92, 0x1b, 0xee, 0x87, 0xd4, 0xa4, 0x6c, 0xf9, 0x3f, - 0xb2, 0xcd, 0x37, 0x64, 0x9d, 0x5f, 0xc8, 0x22, 0x7f, 0x14, 0x20, 0xa8, 0x22, 0x5b, 0x26, 0x25, - 0xe7, 0xb1, 0xe3, 0x39, 0xaa, 0x22, 0x59, 0xe7, 0x54, 0xb5, 0x08, 0x07, 0x62, 0xfa, 0x70, 0xfb, - 0x24, 0x8e, 0x9f, 0x44, 0x7f, 0x51, 0xe4, 0x32, 0x67, 0xed, 0x7c, 0xc1, 0xb3, 0xdb, 0x38, 0xbd, - 0x15, 0xd3, 0x07, 0xff, 0xf7, 0x0a, 0x78, 0xd7, 0xab, 0x24, 0x19, 0x73, 0x21, 0xc2, 0x39, 0x3f, - 0x7d, 0x9e, 0xf0, 0xe5, 0xa7, 0x58, 0xc8, 0x80, 0x8b, 0x05, 0x3b, 0x82, 0xfa, 0x38, 0x5c, 0x4f, - 0xf8, 0xd2, 0xab, 0x74, 0x2b, 0x3d, 0x37, 0xd0, 0x88, 0xf8, 0x38, 0x43, 0xde, 0xd1, 0x3c, 0x21, - 0xf6, 0x3d, 0xec, 0x4d, 0xe2, 0x6c, 0x9e, 0xf0, 0xcf, 0x82, 0x17, 0x63, 0x31, 0xf7, 0xdc, 0xae, - 0xdb, 0x6b, 0x9f, 0x7c, 0xd1, 0x37, 0x4e, 0xec, 0x5f, 0x84, 0xf2, 0x9e, 0x17, 0xe7, 0x79, 0x91, - 0x86, 0x32, 0xb0, 0xe3, 0xd9, 0x77, 0xd0, 0xb9, 0x28, 0xf2, 0xd5, 0xa2, 0xcc, 0xaf, 0xfe, 0x5b, - 0xbe, 0x15, 0xee, 0xbf, 0x87, 0xff, 0xbf, 0x5e, 0xcb, 0x92, 0x79, 0xd0, 0x10, 0x0a, 0x79, 0x95, - 0xae, 0xdb, 0x73, 0x83, 0x12, 0xfa, 0x87, 0xc0, 0x2e, 0xb8, 0x1c, 0x87, 0xeb, 0x1f, 0xb2, 0xa9, - 0xaa, 0x23, 0xe0, 0x4b, 0x7f, 0x08, 0xff, 0xdb, 0x61, 0x95, 0x22, 0xa9, 0xa5, 0x48, 0xba, 0x51, - 0x24, 0xb5, 0x14, 0x51, 0xc8, 0xff, 0x11, 0x3a, 0xe6, 0x7d, 0xd9, 0x3e, 0x38, 0xa3, 0x01, 0xe5, - 0xb6, 0x02, 0x67, 0x34, 0x60, 0xef, 0xa0, 0x4a, 0x77, 0x72, 0xa8, 0xd0, 0x23, 0xab, 0xd0, 0xb1, - 0x98, 0xeb, 0x2a, 0x29, 0xc6, 0xff, 0xd3, 0x81, 0xd6, 0x86, 0xc3, 0x13, 0x27, 0x3c, 0x9b, 0x6e, - 0x76, 0xd3, 0x08, 0xf9, 0x80, 0x47, 0x8f, 0xa3, 0x01, 0xdd, 0xa4, 0x15, 0x68, 0x84, 0x02, 0x60, - 0x72, 0x91, 0xa7, 0x9e, 0xdb, 0xad, 0xf4, 0x6a, 0x41, 0x09, 0x59, 0x17, 0xda, 0x67, 0x79, 0x26, - 0x79, 0x26, 0x6f, 0x9e, 0x17, 0xdc, 0xab, 0xd2, 0xaf, 0x26, 0x85, 0x11, 0x13, 0x5e, 0x3c, 0x92, - 0xc8, 0xa3, 0x81, 0x57, 0xa3, 0x8d, 0x4d, 0x0a, 0x77, 0xd7, 0x09, 0x5e, 0x9d, 0x7e, 0x2d, 0x21, - 0x7b, 0x03, 0x2e, 0xca, 0xd2, 0x20, 0x59, 0x70, 0xc9, 0xde, 0x42, 0x13, 0xef, 0x7a, 0x13, 0xa7, - 0xdc, 0x6b, 0x12, 0xbd, 0xc1, 0xec, 0x1d, 0xbc, 0xc1, 0x35, 0x2f, 0xae, 0x93, 0x50, 0xce, 0xf2, - 0x22, 0x1d, 0x0d, 0xbc, 0x16, 0x5d, 0x68, 0x87, 0x67, 0xdf, 0xc0, 0xbe, 0xe2, 0x2e, 0xe3, 0xe8, - 0xe1, 0x32, 0x4c, 0xb9, 0x07, 0x74, 0xf4, 0x16, 0xcb, 0xbe, 0x86, 0x3d, 0xc5, 0x9c, 0x87, 0x11, - 0xff, 0x1c, 0x7c, 0xf2, 0xda, 0x14, 0x66, 0x93, 0xa4, 0x42, 0x12, 0xf3, 0x4c, 0xaa, 0x1a, 0x3b, - 0xaa, 0x46, 0x83, 0xf2, 0xff, 0x70, 0x61, 0x1f, 0x3b, 0x0d, 0xf3, 0xc6, 0x62, 0x8e, 0x5d, 0x75, - 0x0a, 0x8d, 0xab, 0x85, 0x8c, 0xf3, 0x4c, 0x50, 0x57, 0xb5, 0x4f, 0x7a, 0x96, 0x83, 0x76, 0x74, - 0x5f, 0x87, 0x0e, 0x33, 0x59, 0x3c, 0x07, 0x65, 0xe2, 0x2b, 0x65, 0x38, 0xff, 0xad, 0x0c, 0xf7, - 0xb5, 0x32, 0xbe, 0x02, 0x30, 0xa4, 0x53, 0x5e, 0x1a, 0x8c, 0xb2, 0x52, 0x88, 0x38, 0xcf, 0xc8, - 0xec, 0x9a, 0x32, 0xdb, 0xa0, 0xcc, 0x46, 0xa9, 0xff, 0x63, 0xa3, 0x34, 0x76, 0x1b, 0xe5, 0xa5, - 0xf9, 0x9a, 0x56, 0xf3, 0x7d, 0x09, 0xad, 0xf3, 0xbc, 0x88, 0x38, 0xf5, 0x7a, 0xab, 0xeb, 0xf6, - 0x5a, 0xc1, 0x0b, 0x61, 0x36, 0x0f, 0xd8, 0xcd, 0xb3, 0x65, 0x4a, 0x7b, 0xc7, 0x94, 0xb7, 0x1f, - 0xa1, 0x63, 0xca, 0x8a, 0xed, 0xf6, 0xc0, 0x9f, 0xf5, 0x4c, 0xe0, 0x92, 0x1d, 0x42, 0xed, 0x31, - 0x4c, 0x56, 0x4a, 0xd6, 0x5a, 0xa0, 0xc0, 0x47, 0xe7, 0x43, 0xc5, 0x5f, 0xc2, 0x81, 0xe5, 0x90, - 0x58, 0x6c, 0x77, 0x7a, 0x65, 0xb7, 0xd3, 0xb7, 0xae, 0xe4, 0xec, 0x5c, 0x09, 0xfb, 0x5b, 0x94, - 0xfd, 0xed, 0xaa, 0xfe, 0x2e, 0xb1, 0xff, 0x8b, 0x4b, 0xea, 0x0e, 0x42, 0x19, 0xa2, 0x58, 0xc2, - 0x9a, 0x60, 0xb1, 0x99, 0xe0, 0xc2, 0x9a, 0x60, 0x85, 0xf0, 0x64, 0x61, 0x58, 0xa7, 0xa6, 0xd8, - 0xa4, 0x50, 0xc8, 0x54, 0x5b, 0xa7, 0x9c, 0x2f, 0x21, 0xe6, 0x46, 0x86, 0x75, 0xda, 0xf6, 0xc8, - 0x9e, 0x71, 0x61, 0x54, 0xae, 0xa6, 0xd8, 0xa4, 0x70, 0x77, 0x9d, 0x40, 0xd6, 0xb7, 0x82, 0x12, - 0x5a, 0x15, 0x37, 0xed, 0x8a, 0xd1, 0x10, 0xc1, 0x97, 0x34, 0xc4, 0x6e, 0x80, 0x4b, 0x9c, 0x71, - 0xb1, 0x3d, 0xe3, 0xa0, 0x66, 0x5c, 0xbc, 0x32, 0xe3, 0xc2, 0x1e, 0x0e, 0xd5, 0x03, 0x5b, 0x2c, - 0x0e, 0x87, 0xb0, 0x86, 0x43, 0xcd, 0xaf, 0x4d, 0x92, 0x0a, 0x86, 0x77, 0x7b, 0xaa, 0x46, 0x83, - 0xf2, 0xc7, 0x70, 0x70, 0x35, 0x9b, 0x25, 0x71, 0xc6, 0xaf, 0x57, 0xe2, 0x7e, 0x94, 0xcd, 0x72, - 0xec, 0x9f, 0x9b, 0x58, 0x26, 0x5c, 0xbb, 0xa4, 0x00, 0x63, 0x50, 0x1d, 0x70, 0x11, 0x69, 0x8b, - 0x68, 0x8d, 0xa5, 0x0e, 0xd7, 0x52, 0xcf, 0x25, 0x2e, 0xfd, 0x9f, 0x1d, 0xfd, 0x87, 0x86, 0x3b, - 0xdd, 0xc4, 0x0b, 0xd4, 0x50, 0xe1, 0xd2, 0xf4, 0x12, 0xe2, 0x88, 0xd0, 0xd2, 0xf8, 0x02, 0xbc, - 0x10, 0xcc, 0x87, 0xce, 0x65, 0x2e, 0xe3, 0x59, 0x1c, 0x85, 0xd8, 0xec, 0xfa, 0x0c, 0x8b, 0xc3, - 0x98, 0x51, 0x26, 0x8b, 0x7c, 0xba, 0x8a, 0x28, 0xa6, 0xaa, 0x62, 0x4c, 0x0e, 0xcf, 0x27, 0x31, - 0x8a, 0x44, 0x7f, 0xc5, 0x4b, 0x88, 0xff, 0x4c, 0xc3, 0xb5, 0xb6, 0xdd, 0x19, 0xae, 0x31, 0xf2, - 0xea, 0x29, 0xe3, 0xc5, 0x68, 0x50, 0xba, 0xad, 0x21, 0x7e, 0x62, 0xce, 0x0a, 0x1e, 0x4a, 0xbe, - 0xf1, 0xbb, 0x1a, 0x18, 0x0c, 0xaa, 0x3c, 0xe6, 0xe9, 0x1d, 0x2f, 0xce, 0xf2, 0x55, 0x26, 0xc9, - 0xf9, 0xbd, 0xc0, 0xa4, 0xfc, 0xdf, 0x2a, 0xd0, 0xc6, 0xc9, 0x2b, 0x55, 0x39, 0x82, 0x3a, 0xc1, - 0xcd, 0x24, 0x28, 0x84, 0x22, 0x1b, 0x72, 0xd0, 0x1a, 0xb9, 0x51, 0xb4, 0x51, 0x80, 0xd6, 0x98, - 0x7f, 0x41, 0x46, 0xeb, 0xb6, 0xd7, 0x88, 0xde, 0x29, 0xf9, 0x5d, 0x9c, 0x70, 0x5d, 0xac, 0x46, - 0x68, 0xe9, 0x69, 0x5c, 0xc8, 0x7b, 0x5d, 0xae, 0x02, 0xc8, 0x0e, 0xd3, 0x30, 0x4e, 0x74, 0xbd, - 0x0a, 0x68, 0x5d, 0x9a, 0xa5, 0x2e, 0xfe, 0xaf, 0x15, 0xd8, 0x57, 0xc5, 0x92, 0x3b, 0x78, 0xfd, - 0x63, 0xa8, 0xcd, 0x71, 0x4d, 0xb7, 0xdf, 0x79, 0xae, 0x18, 0xf6, 0x07, 0x2a, 0x8e, 0x9d, 0x40, - 0x23, 0xc2, 0x2d, 0xf2, 0x82, 0x4a, 0x6b, 0x9f, 0x78, 0x3b, 0x7f, 0x1b, 0x65, 0x46, 0x19, 0xc8, - 0x3e, 0x00, 0xa4, 0x24, 0x21, 0x7d, 0x43, 0xd5, 0xc3, 0xea, 0xef, 0xd3, 0x8c, 0xd8, 0xd3, 0xa3, - 0x9f, 0x0e, 0xfb, 0xc7, 0xea, 0x11, 0xf8, 0xad, 0x11, 0x7f, 0x57, 0xa7, 0xe7, 0xe0, 0xfb, 0xbf, - 0x02, 0x00, 0x00, 0xff, 0xff, 0xc2, 0x41, 0x03, 0xcb, 0x21, 0x0a, 0x00, 0x00, + proto.RegisterType((*GroupInfo)(nil), "open_im_sdk.GroupInfo") + proto.RegisterType((*GroupMemberFullInfo)(nil), "open_im_sdk.GroupMemberFullInfo") + proto.RegisterType((*UserInfo)(nil), "open_im_sdk.UserInfo") + proto.RegisterType((*PublicUserInfo)(nil), "open_im_sdk.PublicUserInfo") + proto.RegisterType((*TipsComm)(nil), "open_im_sdk.TipsComm") + proto.RegisterType((*MemberEnterTips)(nil), "open_im_sdk.MemberEnterTips") + proto.RegisterType((*MemberLeaveTips)(nil), "open_im_sdk.MemberLeaveTips") + proto.RegisterType((*MemberInvitedTips)(nil), "open_im_sdk.MemberInvitedTips") + proto.RegisterType((*MemberKickedTips)(nil), "open_im_sdk.MemberKickedTips") + proto.RegisterType((*GroupMemberChangeInfo)(nil), "open_im_sdk.GroupMemberChangeInfo") + proto.RegisterType((*MemberInfoChangedTips)(nil), "open_im_sdk.MemberInfoChangedTips") + proto.RegisterType((*GroupCreatedTips)(nil), "open_im_sdk.GroupCreatedTips") + proto.RegisterType((*GroupInfoChangedTips)(nil), "open_im_sdk.GroupInfoChangedTips") + proto.RegisterType((*ReceiveJoinApplicationTips)(nil), "open_im_sdk.ReceiveJoinApplicationTips") + proto.RegisterType((*ApplicationProcessedTips)(nil), "open_im_sdk.ApplicationProcessedTips") + proto.RegisterType((*FriendInfo)(nil), "open_im_sdk.FriendInfo") + proto.RegisterType((*FriendApplication)(nil), "open_im_sdk.FriendApplication") + proto.RegisterType((*FriendApplicationListAddedTips)(nil), "open_im_sdk.FriendApplicationListAddedTips") + proto.RegisterType((*FriendApplicationListAcceptTips)(nil), "open_im_sdk.FriendApplicationListAcceptTips") + proto.RegisterType((*FriendApplicationListRejectTips)(nil), "open_im_sdk.FriendApplicationListRejectTips") + proto.RegisterType((*FriendListAddedTips)(nil), "open_im_sdk.FriendListAddedTips") + proto.RegisterType((*FriendListDeletedTips)(nil), "open_im_sdk.FriendListDeletedTips") + proto.RegisterType((*BlackListAddTips)(nil), "open_im_sdk.BlackListAddTips") + proto.RegisterType((*BlackListDeletedTips)(nil), "open_im_sdk.BlackListDeletedTips") + proto.RegisterType((*FriendInfoChangedTips)(nil), "open_im_sdk.FriendInfoChangedTips") + proto.RegisterType((*SelfInfoUpdatedTips)(nil), "open_im_sdk.SelfInfoUpdatedTips") +} + +func init() { proto.RegisterFile("ws.proto", fileDescriptor_ws_e1a0eca386827677) } + +var fileDescriptor_ws_e1a0eca386827677 = []byte{ + // 1689 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xdc, 0x58, 0x4f, 0x6f, 0x1b, 0x45, + 0x14, 0xd7, 0x7a, 0x1d, 0xc7, 0x7e, 0x76, 0xd2, 0x74, 0x93, 0xb4, 0x4b, 0x40, 0xc5, 0x5a, 0x21, + 0x14, 0x55, 0x28, 0x88, 0xf4, 0x40, 0x5b, 0xa9, 0xa2, 0x49, 0x9c, 0xa4, 0x2e, 0x71, 0x1d, 0xad, + 0x53, 0x71, 0xac, 0x36, 0xbb, 0x63, 0x67, 0xc9, 0xfe, 0x71, 0x76, 0xd6, 0x6e, 0xf3, 0x29, 0x38, + 0x22, 0x21, 0x55, 0x70, 0x81, 0x0f, 0xc0, 0x97, 0x40, 0xe2, 0x80, 0x38, 0xc3, 0x95, 0x2b, 0x1f, + 0x01, 0x09, 0xbd, 0x99, 0xd9, 0xf5, 0x8c, 0xed, 0x26, 0xa9, 0x8b, 0x28, 0xe2, 0x36, 0xef, 0xe7, + 0x37, 0xb3, 0xbf, 0xf7, 0xde, 0xef, 0xcd, 0xbc, 0x04, 0xca, 0xcf, 0xe9, 0x46, 0x3f, 0x89, 0xd3, + 0xd8, 0xa8, 0xc6, 0x7d, 0x12, 0x3d, 0xf3, 0xc3, 0x67, 0xd4, 0x3b, 0xb5, 0x7e, 0xd6, 0xc0, 0x3c, + 0x1c, 0x04, 0x41, 0x8b, 0x50, 0xea, 0xf4, 0xc8, 0xf6, 0x79, 0x87, 0x9c, 0x1d, 0xf8, 0x34, 0xb5, + 0x09, 0xed, 0x1b, 0x37, 0xa0, 0xd4, 0x72, 0x5e, 0x74, 0xc8, 0x99, 0xa9, 0xd5, 0xb5, 0x75, 0xdd, + 0x16, 0x16, 0xc3, 0xfd, 0x08, 0xf1, 0x82, 0xc0, 0x99, 0x65, 0x7c, 0x06, 0x0b, 0x1d, 0x3f, 0xea, + 0x05, 0xe4, 0x29, 0x25, 0x49, 0x8b, 0xf6, 0x4c, 0xbd, 0xae, 0xaf, 0x57, 0x37, 0xdf, 0xd9, 0x90, + 0xbe, 0xb8, 0xb1, 0xef, 0xa4, 0x27, 0x24, 0xd9, 0x8b, 0x93, 0xd0, 0x49, 0x6d, 0xd5, 0xdf, 0x78, + 0x00, 0xb5, 0xfd, 0x24, 0x1e, 0xf4, 0xb3, 0xfd, 0xc5, 0xcb, 0xf6, 0x2b, 0xee, 0xd6, 0x1d, 0xb8, + 0x39, 0x3d, 0x96, 0x33, 0xc3, 0x84, 0x79, 0xca, 0x2d, 0x53, 0xab, 0xeb, 0xeb, 0xba, 0x9d, 0x99, + 0xd6, 0x0a, 0x18, 0xfb, 0x24, 0x6d, 0x39, 0x2f, 0xb6, 0x22, 0x8f, 0xc7, 0x61, 0x93, 0x33, 0x6b, + 0x17, 0x96, 0x27, 0x50, 0x9e, 0x91, 0x50, 0xc9, 0x48, 0x98, 0x67, 0x24, 0x54, 0x32, 0xc2, 0x2d, + 0xeb, 0x31, 0xd4, 0x64, 0xbe, 0xc6, 0x22, 0x14, 0x9a, 0x0d, 0xb6, 0xb7, 0x62, 0x17, 0x9a, 0x0d, + 0xe3, 0x36, 0x14, 0x19, 0xa7, 0x02, 0x0b, 0xf4, 0x86, 0x12, 0x68, 0x8b, 0xf6, 0x44, 0x94, 0xcc, + 0xc7, 0xfa, 0xab, 0x00, 0x95, 0x1c, 0xc3, 0x2f, 0x76, 0x48, 0xe4, 0xe5, 0xa7, 0x09, 0x0b, 0x71, + 0x9b, 0xb8, 0xc3, 0x66, 0x83, 0x31, 0xa9, 0xd8, 0xc2, 0xc2, 0x04, 0xe0, 0xe6, 0x24, 0x0e, 0x4d, + 0xbd, 0xae, 0xad, 0xcf, 0xd9, 0x99, 0x69, 0xd4, 0xa1, 0xba, 0x13, 0x47, 0x29, 0x89, 0xd2, 0xa3, + 0xf3, 0x3e, 0x31, 0x8b, 0xec, 0x57, 0x19, 0x42, 0x8f, 0x0e, 0x49, 0x86, 0x2c, 0xc9, 0xcd, 0x86, + 0x39, 0xc7, 0x0e, 0x96, 0x21, 0x3c, 0x5d, 0x6c, 0x30, 0x4b, 0xec, 0xd7, 0xcc, 0x34, 0x96, 0x40, + 0xc7, 0xb4, 0xcc, 0xb3, 0xb4, 0xe0, 0xd2, 0x58, 0x83, 0x32, 0x72, 0x3d, 0xf2, 0x43, 0x62, 0x96, + 0x19, 0x9c, 0xdb, 0xc6, 0x6d, 0x58, 0xc2, 0x35, 0x49, 0x0e, 0x03, 0x27, 0xed, 0xc6, 0x49, 0xd8, + 0x6c, 0x98, 0x15, 0x46, 0x68, 0x02, 0x37, 0x3e, 0x84, 0x45, 0x8e, 0x3d, 0xf1, 0xdd, 0xd3, 0x27, + 0x4e, 0x48, 0x4c, 0x60, 0x9f, 0x1e, 0x43, 0x8d, 0x0f, 0x60, 0x81, 0x23, 0x7b, 0x8e, 0x4b, 0x9e, + 0xda, 0x07, 0x66, 0x95, 0xb9, 0xa9, 0x20, 0xcb, 0x42, 0xe0, 0x93, 0x28, 0xe5, 0x31, 0xd6, 0x78, + 0x8c, 0x12, 0x64, 0xfd, 0xa2, 0xc3, 0x22, 0x2a, 0x0d, 0xf7, 0xb5, 0x68, 0x0f, 0x55, 0xb5, 0x0d, + 0xf3, 0xed, 0x7e, 0xea, 0xc7, 0x11, 0x65, 0xaa, 0xaa, 0x6e, 0xae, 0x2b, 0x15, 0x54, 0xbd, 0x37, + 0x84, 0xeb, 0x6e, 0x94, 0x26, 0xe7, 0x76, 0xb6, 0x71, 0x4a, 0x18, 0x85, 0xab, 0x85, 0xa1, 0x4f, + 0x0b, 0xe3, 0x16, 0x80, 0x94, 0x3a, 0x5e, 0x4b, 0x09, 0xe1, 0xa5, 0xa4, 0xd4, 0x8f, 0x23, 0x56, + 0xec, 0x39, 0x5e, 0x6c, 0x09, 0x92, 0x85, 0x52, 0xba, 0x50, 0x28, 0xf3, 0x93, 0x42, 0x19, 0x89, + 0xaf, 0xac, 0x88, 0xef, 0x3d, 0xa8, 0xec, 0xc5, 0x89, 0x4b, 0x98, 0xd6, 0x2b, 0x75, 0x7d, 0xbd, + 0x62, 0x8f, 0x00, 0x59, 0x3c, 0xa0, 0x8a, 0x67, 0xac, 0x28, 0xd5, 0x89, 0xa2, 0xac, 0xdd, 0x87, + 0x9a, 0x9c, 0x56, 0x94, 0xdb, 0x29, 0x39, 0x17, 0x3d, 0x81, 0x4b, 0x63, 0x05, 0xe6, 0x86, 0x4e, + 0x30, 0xe0, 0x69, 0x9d, 0xb3, 0xb9, 0x71, 0xbf, 0x70, 0x57, 0xb3, 0xce, 0xe0, 0x9a, 0x52, 0x21, + 0xda, 0x1f, 0x57, 0xba, 0x36, 0xa9, 0xf4, 0x31, 0x4a, 0x85, 0x09, 0x4a, 0xa8, 0x6f, 0x9a, 0xe9, + 0x5b, 0xe7, 0xfa, 0xce, 0x6c, 0xeb, 0xa5, 0xce, 0xb2, 0xdb, 0x70, 0x52, 0x07, 0x93, 0x45, 0x95, + 0x0e, 0xa6, 0x79, 0x07, 0x27, 0x4a, 0x07, 0x73, 0x0b, 0xbf, 0x4c, 0xa5, 0xd2, 0xf1, 0x2e, 0x96, + 0x21, 0x4c, 0x64, 0x28, 0x4a, 0xc7, 0x2b, 0x9f, 0x99, 0xb8, 0xd7, 0x95, 0x4a, 0x27, 0xca, 0xee, + 0xaa, 0x3d, 0x4e, 0xa5, 0xc8, 0x79, 0x17, 0xcb, 0x10, 0x9e, 0x2e, 0x36, 0xb0, 0xd2, 0xd7, 0xec, + 0xcc, 0x54, 0x22, 0x2e, 0xab, 0x11, 0x63, 0x41, 0x28, 0x39, 0x63, 0x4d, 0xac, 0xdb, 0xb8, 0xc4, + 0x1e, 0xa7, 0xe3, 0x3d, 0x0e, 0xbc, 0xc7, 0xe9, 0x94, 0x1e, 0xa7, 0x6a, 0x73, 0x70, 0x0d, 0x8c, + 0xa1, 0xd8, 0x1c, 0x54, 0x69, 0x0e, 0xde, 0xbf, 0x2a, 0xc8, 0xb2, 0x20, 0xd5, 0x6e, 0x81, 0xc7, + 0x28, 0x41, 0xd6, 0xd7, 0x1a, 0x5c, 0x6b, 0x77, 0xbb, 0x81, 0x1f, 0x91, 0xc3, 0x01, 0x3d, 0x69, + 0x46, 0xdd, 0x18, 0x05, 0x74, 0xe4, 0xa7, 0x01, 0x11, 0x65, 0xe2, 0x86, 0x61, 0x40, 0xb1, 0x41, + 0xa8, 0x2b, 0x6a, 0xc4, 0xd6, 0x18, 0xeb, 0xee, 0x8b, 0x54, 0x34, 0x26, 0x2e, 0x0d, 0x0b, 0x6a, + 0x7e, 0xbb, 0x83, 0x47, 0x75, 0xe2, 0x41, 0xe4, 0xb1, 0xb2, 0x54, 0x6c, 0x05, 0x43, 0xee, 0x7e, + 0xbb, 0xb3, 0xed, 0x78, 0x3d, 0xb2, 0x13, 0x0f, 0xa2, 0x94, 0x55, 0xa7, 0x6c, 0xab, 0xa0, 0xf5, + 0x4d, 0x01, 0x2a, 0xec, 0xb1, 0x63, 0x9c, 0x4c, 0x98, 0xe7, 0x46, 0x26, 0x9e, 0xcc, 0xc4, 0x56, + 0x63, 0x4b, 0xe9, 0x26, 0x19, 0x01, 0xc8, 0xe7, 0x49, 0x9c, 0xfa, 0x5d, 0xdf, 0x75, 0xb0, 0x69, + 0x04, 0x55, 0x05, 0x43, 0x9f, 0x66, 0x94, 0x26, 0xb1, 0x37, 0x70, 0x99, 0x8f, 0xe0, 0x2c, 0x63, + 0xf8, 0x7d, 0x96, 0xd4, 0x24, 0x10, 0xaf, 0x41, 0x66, 0x1a, 0x9f, 0xc0, 0x5c, 0xfb, 0x79, 0x44, + 0x12, 0xa6, 0xa0, 0xea, 0xe6, 0xbb, 0xca, 0x85, 0x78, 0x38, 0x38, 0x0e, 0x7c, 0x17, 0x9b, 0x0e, + 0xa3, 0xb0, 0xb9, 0x27, 0xde, 0x59, 0x3b, 0x09, 0x71, 0x52, 0xc2, 0x04, 0x84, 0xda, 0x2a, 0xda, + 0x12, 0x82, 0x65, 0x6b, 0x91, 0xf0, 0x98, 0x24, 0x3c, 0x3d, 0xa8, 0xb0, 0x05, 0x5b, 0x86, 0xac, + 0x3f, 0x35, 0x58, 0x66, 0x41, 0x72, 0x70, 0x6f, 0x10, 0x04, 0x97, 0xa4, 0xe9, 0x06, 0x94, 0x18, + 0x8d, 0xbc, 0xc9, 0xb8, 0x65, 0x6c, 0x80, 0xb1, 0xe5, 0x85, 0x7e, 0xe4, 0xd3, 0x34, 0x71, 0xd2, + 0x38, 0x39, 0x20, 0x43, 0x12, 0x88, 0x5e, 0x9b, 0xf2, 0x0b, 0x4a, 0xff, 0x71, 0xec, 0x47, 0x8c, + 0x79, 0x91, 0x31, 0xcf, 0x6d, 0xfc, 0x2d, 0x97, 0x2d, 0xcf, 0x52, 0x6e, 0xcb, 0x09, 0x2c, 0xa9, + 0x09, 0xb4, 0xa0, 0xb6, 0x97, 0xf8, 0x24, 0xf2, 0x6c, 0x12, 0x3a, 0xc9, 0x29, 0xcb, 0x47, 0xc5, + 0x56, 0x30, 0xeb, 0x07, 0x0d, 0xca, 0x59, 0x16, 0xa5, 0x50, 0x34, 0x25, 0x14, 0x03, 0x8a, 0x92, + 0x08, 0xd8, 0x1a, 0xb1, 0xa6, 0x9b, 0xd7, 0x9d, 0xad, 0x71, 0xff, 0x3e, 0x6b, 0x13, 0x71, 0x69, + 0x08, 0x8b, 0x4d, 0x79, 0xf1, 0xb1, 0x1f, 0x64, 0xe4, 0x85, 0x85, 0xfd, 0xb0, 0xed, 0x27, 0xe9, + 0x89, 0x20, 0xce, 0x0d, 0x44, 0x77, 0x43, 0xc7, 0x0f, 0x04, 0x5f, 0x6e, 0x58, 0x43, 0x58, 0x54, + 0x6b, 0xfe, 0x4a, 0xb6, 0x22, 0x59, 0xd1, 0x88, 0x71, 0x6e, 0xcb, 0xc9, 0xd2, 0xd5, 0x64, 0xbd, + 0x82, 0xbb, 0xd5, 0x80, 0xf2, 0x91, 0xdf, 0xa7, 0x3b, 0x71, 0x18, 0xa2, 0x4f, 0x83, 0xa4, 0x48, + 0x4d, 0x63, 0xd7, 0x96, 0xb0, 0x50, 0x56, 0x0d, 0xd2, 0x75, 0x06, 0x41, 0x8a, 0xae, 0xd9, 0x4d, + 0x2e, 0x41, 0xd6, 0xb7, 0x1a, 0x5c, 0xe3, 0x8a, 0xda, 0x8d, 0x52, 0x92, 0x20, 0x66, 0x7c, 0x04, + 0x73, 0x4c, 0x43, 0xec, 0xb0, 0xf1, 0x91, 0x2d, 0x6f, 0x50, 0x9b, 0x3b, 0x19, 0x77, 0xa1, 0xc4, + 0x0f, 0x60, 0xc7, 0x57, 0x37, 0xeb, 0x93, 0xee, 0xaa, 0x64, 0x6d, 0xe1, 0x8f, 0xb7, 0x42, 0xbb, + 0x4f, 0x12, 0xd6, 0x92, 0xf9, 0x53, 0x52, 0xb4, 0x55, 0x50, 0x62, 0x78, 0x40, 0x9c, 0x21, 0xf9, + 0x0f, 0x32, 0xfc, 0x5d, 0x83, 0xeb, 0x7c, 0x43, 0x33, 0x1a, 0xfa, 0x29, 0xf1, 0x66, 0xe3, 0xd8, + 0x66, 0x43, 0xfe, 0xd5, 0x39, 0x72, 0x7f, 0x29, 0x3a, 0xfd, 0x4d, 0xa3, 0x2b, 0x4e, 0x8b, 0xee, + 0x37, 0x0d, 0x96, 0xf8, 0x86, 0xcf, 0x7d, 0xf7, 0xf4, 0x7f, 0x16, 0xdc, 0x4f, 0x1a, 0xac, 0x4a, + 0xa7, 0xec, 0x9c, 0x38, 0x51, 0x8f, 0xb0, 0x26, 0xc6, 0x1b, 0x9b, 0x59, 0x6c, 0x9a, 0xd0, 0xf8, + 0x94, 0x39, 0x42, 0xde, 0x4a, 0x4c, 0x6b, 0x50, 0x6e, 0x0d, 0xc4, 0x1b, 0x22, 0x6e, 0xe2, 0xcc, + 0xb6, 0xbe, 0xd2, 0x60, 0x35, 0x13, 0x61, 0x37, 0xe6, 0x44, 0x67, 0xa9, 0xd5, 0x23, 0x58, 0x90, + 0x73, 0xe1, 0x89, 0xf0, 0xac, 0x57, 0x91, 0x1c, 0xa5, 0xcc, 0x56, 0x37, 0x5a, 0x7f, 0x68, 0xb0, + 0xc4, 0x1c, 0xf9, 0x3b, 0x37, 0x0b, 0x99, 0xfb, 0x30, 0xcf, 0x36, 0xc7, 0x57, 0xcf, 0x72, 0xb6, + 0xc1, 0x78, 0x08, 0x20, 0xae, 0x0d, 0x9c, 0xc8, 0xf9, 0x9f, 0xe9, 0x97, 0x6f, 0x97, 0xf6, 0x5c, + 0x51, 0x42, 0xdf, 0x69, 0xb0, 0x92, 0x13, 0x97, 0xf3, 0x8e, 0x63, 0xb4, 0x30, 0x47, 0x12, 0x92, + 0xa1, 0x51, 0x32, 0x0a, 0xaf, 0xd7, 0x45, 0xfa, 0xeb, 0x29, 0xce, 0x7a, 0xa9, 0xc1, 0x9a, 0x4d, + 0x5c, 0xe2, 0x0f, 0x09, 0xbe, 0xdc, 0x5b, 0xfd, 0x7e, 0x20, 0x26, 0xa1, 0x19, 0x6a, 0x72, 0x0f, + 0x2a, 0xe2, 0x80, 0x28, 0x15, 0xc4, 0x2f, 0x9c, 0x80, 0x46, 0xde, 0xfc, 0x6f, 0x27, 0x87, 0xe6, + 0x8f, 0xb3, 0xb0, 0xac, 0x1f, 0x35, 0x30, 0x25, 0x52, 0x87, 0x49, 0xec, 0x12, 0x4a, 0xff, 0xe5, + 0xab, 0x86, 0x91, 0xa3, 0x83, 0x20, 0x15, 0xa3, 0x90, 0xb0, 0x24, 0xd2, 0x45, 0x85, 0xf4, 0xf7, + 0x1a, 0x00, 0x9f, 0x58, 0xd8, 0x7d, 0x51, 0x87, 0x2a, 0x1b, 0xf5, 0x94, 0x97, 0x5f, 0x86, 0xf8, + 0x41, 0x6c, 0xde, 0xc9, 0xff, 0x6d, 0x81, 0xd6, 0xd8, 0x6c, 0xa8, 0x4f, 0xcc, 0x86, 0x0f, 0x60, + 0x91, 0x7f, 0x27, 0x4b, 0x29, 0x23, 0x52, 0xdd, 0x5c, 0x9d, 0xf8, 0x43, 0x9c, 0xc5, 0x33, 0xe6, + 0x6c, 0x9d, 0xc2, 0x75, 0x8e, 0x48, 0x19, 0xc6, 0x71, 0x63, 0xcb, 0xf3, 0x24, 0x51, 0x67, 0x26, + 0x0e, 0xd7, 0x5b, 0x9e, 0xd7, 0x89, 0x07, 0x89, 0x9b, 0x4d, 0x45, 0x23, 0x00, 0xb9, 0x6e, 0x79, + 0xde, 0x17, 0x71, 0xe2, 0xf9, 0x51, 0x4f, 0x4c, 0x47, 0x12, 0x62, 0xfd, 0xaa, 0xc1, 0xad, 0x89, + 0xaf, 0x61, 0x33, 0x6d, 0x79, 0x9e, 0xa8, 0xe7, 0x9d, 0xbc, 0x42, 0xda, 0xe5, 0xe2, 0xc9, 0x8a, + 0xf3, 0x10, 0xaa, 0xd2, 0x81, 0xa2, 0xb6, 0xb7, 0x94, 0x9d, 0x13, 0x9f, 0xb5, 0xe5, 0x2d, 0xc6, + 0xa7, 0x50, 0x6e, 0xf7, 0x89, 0x27, 0xf5, 0xcf, 0x85, 0x1f, 0xce, 0x9d, 0xf1, 0x62, 0x7d, 0x7f, + 0x7a, 0x48, 0xae, 0x4b, 0xfa, 0xe9, 0xec, 0x31, 0xc9, 0x8c, 0x0a, 0xff, 0x08, 0x23, 0x9b, 0x7c, + 0x49, 0xdc, 0xb7, 0xc1, 0x68, 0x0f, 0x96, 0x39, 0x21, 0xb5, 0xd4, 0x1f, 0x43, 0x89, 0xc3, 0x82, + 0xc4, 0xcd, 0x29, 0x05, 0xe3, 0x04, 0xf8, 0xda, 0x7a, 0x04, 0xab, 0xa3, 0x73, 0x1a, 0x24, 0x20, + 0xe9, 0xac, 0x27, 0xed, 0xc0, 0xd2, 0x76, 0xe0, 0xb8, 0xa7, 0x82, 0xd0, 0x6c, 0x87, 0xec, 0xc3, + 0x4a, 0x7e, 0xc8, 0x1b, 0xb1, 0xc9, 0xe3, 0x1a, 0x7f, 0x23, 0x5e, 0xfb, 0xa4, 0x43, 0x58, 0xee, + 0x90, 0xa0, 0x8b, 0xd8, 0xd3, 0xbe, 0x97, 0x3f, 0xab, 0xf7, 0xa0, 0x86, 0x70, 0x7e, 0x43, 0x68, + 0x17, 0xdd, 0x10, 0x8a, 0xeb, 0x71, 0x89, 0xfd, 0xcb, 0xfc, 0xce, 0xdf, 0x01, 0x00, 0x00, 0xff, + 0xff, 0xca, 0x9b, 0xa2, 0xe6, 0x3e, 0x17, 0x00, 0x00, } diff --git a/pkg/proto/sdk_ws/ws.proto b/pkg/proto/sdk_ws/ws.proto index 25d79632c..6f276be87 100644 --- a/pkg/proto/sdk_ws/ws.proto +++ b/pkg/proto/sdk_ws/ws.proto @@ -1,6 +1,6 @@ syntax = "proto3"; package open_im_sdk;//The package name to which the proto file belongs -option go_package = "./sdk_ws;open_im_sdk";//The generated go pb file is in the current directory, and the package name is open_im_sdk +//option go_package = "./sdk_ws;open_im_sdk";//The generated go pb file is in the current directory, and the package name is open_im_sdk message PullMessageBySeqListResp { @@ -78,7 +78,7 @@ message MsgData { int32 msgFrom = 4; int32 contentType = 5; string serverMsgID = 6; - string content =7; + bytes content =7; int64 sendTime =8; int64 seq =9; int32 senderPlatformID =10; @@ -91,66 +91,187 @@ message OfflinePushInfo{ string Title = 1; string Desc = 2; string Ext = 3; - string PushSound = 4; - bool ISBadgeCount = 5; + string iOSPushSound = 4; + bool iOSBadgeCount = 5; } - +//public message GroupInfo{ - string GroupID = 1; - string GroupName = 2; - string Notification = 3; - string Introduction = 4; - string FaceUrl = 5; - string OwnerID = 6; - int64 CreateTime = 7; - uint32 MemberCount = 8; + string GroupID = 1; + string GroupName = 2; + string Notification = 3; + string Introduction = 4; + string FaceUrl = 5; + PublicUserInfo Owner = 6; + uint64 CreateTime = 7; + uint32 MemberCount = 8; } -message GroupMemberFullInfo{ +//private, Group members have permission to view +message GroupMemberFullInfo { string GroupID = 1 ; string UserID = 2 ; - int32 Role = 3; - int64 JoinTime = 4; + int32 AdministratorLevel = 3; + uint64 JoinTime = 4; string NickName = 5; - string FaceUrl =6; + string FaceUrl = 6; + string FriendRemark = 7; +} + +//private, Friends have permission to view +message UserInfo{ + string UserID = 1; + string Nickname = 2; + string FaceUrl = 3; + int32 Gender = 4; + string Mobile = 5; + string Birth = 6; + string Email = 7; +} + +//No permissions required +message PublicUserInfo{ + string UserID = 1; + string Nickname = 2; + string FaceUrl = 3; + int32 Gender = 4; +} + +message TipsComm{ + bytes Detail = 1; + string DefaultTips = 2; +} + +//////////////////////group///////////////////// +//Actively join the group +message MemberEnterTips{ + GroupInfo Group = 1; + GroupMemberFullInfo EntrantUser = 2; + uint64 OperationTime = 3; +} + + +//Actively leave the group +message MemberLeaveTips{ + GroupInfo Group = 1; + GroupMemberFullInfo LeaverUser = 2; + uint64 OperationTime = 3; +} + +message MemberInvitedTips{ + GroupInfo Group = 1; + GroupMemberFullInfo OpUser = 2; + GroupMemberFullInfo InvitedUser = 3; + uint64 OperationTime = 4; +} + +message MemberKickedTips{ + GroupInfo Group = 1; + GroupMemberFullInfo OpUser = 2; + GroupMemberFullInfo KickedUser = 3; + uint64 OperationTime = 4; +} + + +message MemberInfoChangedTips{ + int32 ChangeType = 1; //1:info changed; 2:mute + GroupMemberFullInfo OpUser = 2; //who do this + GroupMemberFullInfo FinalInfo = 3; // + uint64 MuteTime = 4; + GroupInfo Group = 5; +} + +message GroupCreatedTips{ + GroupInfo Group = 1; + GroupMemberFullInfo Creator = 2; + repeated GroupMemberFullInfo MemberList = 3; + uint64 OperationTime = 4; +} + +message GroupInfoChangedTips{ + int32 ChangedType = 1; //bitwise operators: 1:groupName; 10:Notification 100:Introduction; 1000:FaceUrl + GroupInfo Group = 2; + GroupMemberFullInfo OpUser = 3; } +message ReceiveJoinApplicationTips{ + GroupInfo Group = 1; + PublicUserInfo Applicant = 2; + string Reason = 3; +} + +message ApplicationProcessedTips{ + GroupInfo Group = 1; + GroupMemberFullInfo OpUser = 2; + int32 Result = 3; + string Reason = 4; +} + +//////////////////////friend///////////////////// message FriendInfo{ - string UserID = 1; - string Nickname = 2; - string FaceUrl = 3; - int32 Gender = 4; - string Mobile = 5; - string Birth = 6; - string Email = 7; - string Remark = 8; + UserInfo OwnerUser = 1; + string Remark = 2; + uint64 CreateTime = 3; + UserInfo FriendUser = 4; } -message UserInfo{ - string UserID = 1; - string Nickname = 2; - string FaceUrl = 3; - int32 Gender = 4; - string Mobile = 5; - string Birth = 6; - string Email = 7; +message FriendApplication{ + uint64 AddTime = 1; + string AddSource = 2; + string AddWording = 3; } -message UserPublicInfo{ - string UserID = 1; - string Nickname = 2; - string FaceUrl = 3; - int32 Gender = 4; +//user1 add user2 +message FriendApplicationAddedTips{ + PublicUserInfo OpUser = 1; //user1 + FriendApplication Application = 2; + PublicUserInfo OpedUser = 3; //user2 + uint64 OperationTime = 4; } -message CreateGroupTip{ - GroupInfo group = 1; - UserInfo creator = 2; - repeated GroupMemberFullInfo memberList = 3; +// user2 accept or reject +message FriendApplicationProcessedTips{ + PublicUserInfo OpUser = 1; //user2 + PublicUserInfo OpedUser = 2; //user1 + int32 result = 3; //1: accept; -1: reject + uint64 OperationTime = 4; } +message FriendAddedTips{ + FriendInfo Friend = 1; + uint64 OperationTime = 2; +} +message FriendDeletedTips{ + FriendInfo Friend = 1; + uint64 OperationTime = 2; +} +message BlackInfo{ + PublicUserInfo OwnerUser = 1; + uint64 CreateTime = 3; + PublicUserInfo BlackUser = 4; +} + +message BlackAddedTips{ + BlackInfo Black = 1; + uint64 OperationTime = 2; +} +message BlackDeletedTips{ + BlackInfo Black = 1; + uint64 OperationTime = 2; +} + +message FriendInfoChangedTips{ + FriendInfo Friend = 1; + PublicUserInfo OpUser = 2; + uint64 OperationTime = 3; +} +//////////////////////user///////////////////// +message SelfInfoUpdatedTips{ + UserInfo SelfUserInfo = 1; + PublicUserInfo OpUser = 2; + uint64 OperationTime = 3; +} diff --git a/pkg/utils/strings.go b/pkg/utils/strings.go index 5ee2a6503..9eec1ab94 100644 --- a/pkg/utils/strings.go +++ b/pkg/utils/strings.go @@ -54,6 +54,11 @@ func StructToJsonString(param interface{}) string { return dataString } +func StructToJsonBytes(param interface{}) []byte { + dataType, _ := json.Marshal(param) + return dataType +} + //The incoming parameter must be a pointer func JsonStringToStruct(s string, args interface{}) error { err := json.Unmarshal([]byte(s), args) From 7db98e55c50e01715ec88deae3b31cb965130251 Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Wed, 22 Dec 2021 09:31:33 +0800 Subject: [PATCH 217/814] proto file --- pkg/proto/sdk_ws/ws.proto | 26 +++++++++++++++----------- 1 file changed, 15 insertions(+), 11 deletions(-) diff --git a/pkg/proto/sdk_ws/ws.proto b/pkg/proto/sdk_ws/ws.proto index 25d79632c..1f3ef1124 100644 --- a/pkg/proto/sdk_ws/ws.proto +++ b/pkg/proto/sdk_ws/ws.proto @@ -74,17 +74,21 @@ message UserSendMsgResp { message MsgData { string sendID = 1; string recvID = 2; - int32 sessionType = 3; - int32 msgFrom = 4; - int32 contentType = 5; - string serverMsgID = 6; - string content =7; - int64 sendTime =8; - int64 seq =9; - int32 senderPlatformID =10; - string senderNickName =11; - string senderFaceURL =12; - string clientMsgID =13; + string groupID = 3; + string clientMsgID =4; + string serverMsgID =5; + int32 senderPlatformID =6; + string senderNickName =7; + string senderFaceURL =8; + int32 sessionType = 9; + int32 msgFrom = 10; + int32 contentType = 11; + string content =12; + repeated string forceList = 13; + int64 seq =14; + int64 sendTime = 15; + int64 createTime = 16; + OfflinePushInfo offlinePushInfo =17; } message OfflinePushInfo{ From 5f18723e2ce24e3d5b949ea2de51a65e7b13b597 Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Wed, 22 Dec 2021 09:37:19 +0800 Subject: [PATCH 218/814] proto file --- pkg/proto/sdk_ws/ws.proto | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/pkg/proto/sdk_ws/ws.proto b/pkg/proto/sdk_ws/ws.proto index 1f3ef1124..819e036fd 100644 --- a/pkg/proto/sdk_ws/ws.proto +++ b/pkg/proto/sdk_ws/ws.proto @@ -83,12 +83,13 @@ message MsgData { int32 sessionType = 9; int32 msgFrom = 10; int32 contentType = 11; - string content =12; + bytes content =12; repeated string forceList = 13; int64 seq =14; int64 sendTime = 15; int64 createTime = 16; - OfflinePushInfo offlinePushInfo =17; + map Options= 17; + OfflinePushInfo offlinePushInfo =18; } message OfflinePushInfo{ From fb5ea3be847205bb6b96b0b4eb215f75aa9e6083 Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Wed, 22 Dec 2021 10:47:07 +0800 Subject: [PATCH 219/814] proto file --- pkg/proto/chat/chat.proto | 47 +++++++++---------------------------- pkg/proto/push/push.proto | 18 ++------------ pkg/proto/relay/relay.proto | 22 ++++------------- 3 files changed, 18 insertions(+), 69 deletions(-) diff --git a/pkg/proto/chat/chat.proto b/pkg/proto/chat/chat.proto index 0f5638bd9..7dc88d9c4 100644 --- a/pkg/proto/chat/chat.proto +++ b/pkg/proto/chat/chat.proto @@ -1,48 +1,23 @@ syntax = "proto3"; import "Open_IM/pkg/proto/sdk_ws/ws.proto"; package pbChat;//The package name to which the proto file belongs -//option go_package = ".;pbChat";//The generated go pb file is in the current directory, and the package name is pbChat +option go_package = "./msg;pbChat";//The generated go pb file is in the current directory, and the package name is pbChat -message WSToMsgSvrChatMsg{ - string SendID = 1; - string RecvID = 2; - string Content = 3; - int64 SendTime = 4; - int32 MsgFrom = 5; - string SenderNickName = 6; - string SenderFaceURL = 7; - int32 ContentType = 8; - int32 SessionType = 9; - string OperationID = 10; - string MsgID = 11; - string Token = 12; - string OfflineInfo =13; - string Options = 14; - int32 PlatformID =15; - repeated string ForceList = 16; - string ClientMsgID = 17; +message MsgDataToMQ{ + string token =1; + string operationID = 2; + open_im_sdk.MsgData msgData = 3; } -message MsgSvrToPushSvrChatMsg { - string SendID = 1; - string RecvID = 2; - string Content = 3; - int64 RecvSeq = 4; - int64 SendTime = 5; - int32 MsgFrom = 6; - string SenderNickName = 7; - string SenderFaceURL = 8; - int32 ContentType = 9; - int32 SessionType = 10; - string OperationID = 11; - string MsgID = 12; - string OfflineInfo = 13; - string Options =14; - int32 PlatformID =15; - string ClientMsgID = 16; +message MsgDataToDB { + open_im_sdk.MsgData msgData = 1; } +message PushMsgDataToMQ{ + string OperationID = 1; + open_im_sdk.MsgData msgData = 2; +} message PullMessageReq { string UserID = 1; diff --git a/pkg/proto/push/push.proto b/pkg/proto/push/push.proto index 60fddfe3b..1116c3e05 100644 --- a/pkg/proto/push/push.proto +++ b/pkg/proto/push/push.proto @@ -3,22 +3,8 @@ option go_package = "./push;pbPush"; package push; message PushMsgReq { - string SendID = 1; - string RecvID = 2; - string Content = 3; - int64 RecvSeq = 4; - int64 SendTime = 5; - int32 MsgFrom = 6; - int32 ContentType = 7; - int32 SessionType = 8; - string OperationID = 9; - string MsgID = 10; - string OfflineInfo = 11; - string Options =12; - int32 PlatformID =13; - string SenderNickName = 14; - string SenderFaceURL = 15; - string ClientMsgID = 16; + string operationID = 1; + open_im_sdk.MsgData msgData = 2; } message PushMsgResp{ int32 ResultCode = 1; diff --git a/pkg/proto/relay/relay.proto b/pkg/proto/relay/relay.proto index 704c323ce..0cbfcd0e1 100644 --- a/pkg/proto/relay/relay.proto +++ b/pkg/proto/relay/relay.proto @@ -2,23 +2,11 @@ syntax = "proto3"; option go_package = "./relay;pbRelay"; package relay; -message MsgToUserReq { - string SendID = 1; - string RecvID = 2; - string Content = 5; - int64 RecvSeq = 6; - int64 SendTime = 7; - int32 MsgFrom = 8; - int32 ContentType = 9; - int32 SessionType = 10; - string OperationID = 11; - string ServerMsgID = 12; - int32 PlatformID = 13; - string SenderNickName = 14; - string SenderFaceURL = 15; - string ClientMsgID = 16; +message OnlinePushMsgReq { + string OperationID = 1; + open_im_sdk.MsgData msgData = 2; } -message MsgToUserResp{ +message OnlinePushMsgResp{ repeated SingleMsgToUser resp = 1; }//message SendMsgByWSReq{ // string SendID = 1; @@ -63,7 +51,7 @@ message GetUsersOnlineStatusResp{ } } service OnlineMessageRelayService { - rpc MsgToUser(MsgToUserReq) returns(MsgToUserResp); + rpc OnlinePushMsg(OnlinePushMsgReq) returns(OnlinePushMsgResp); rpc GetUsersOnlineStatus(GetUsersOnlineStatusReq)returns(GetUsersOnlineStatusResp); // rpc SendMsgByWS(SendMsgByWSReq) returns(MsgToUserResp); } From 57e08e282c3c39035591bf41ce041ebeb716a20e Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Wed, 22 Dec 2021 10:50:03 +0800 Subject: [PATCH 220/814] proto file --- pkg/proto/chat/chat.proto | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkg/proto/chat/chat.proto b/pkg/proto/chat/chat.proto index 7dc88d9c4..aec58df7d 100644 --- a/pkg/proto/chat/chat.proto +++ b/pkg/proto/chat/chat.proto @@ -1,7 +1,7 @@ syntax = "proto3"; import "Open_IM/pkg/proto/sdk_ws/ws.proto"; package pbChat;//The package name to which the proto file belongs -option go_package = "./msg;pbChat";//The generated go pb file is in the current directory, and the package name is pbChat +option go_package = "./chat;pbChat";//The generated go pb file is in the current directory, and the package name is pbChat message MsgDataToMQ{ string token =1; From 777805fc1a4c30d57128b35fefabffa176f9f30d Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Wed, 22 Dec 2021 11:10:13 +0800 Subject: [PATCH 221/814] proto file --- pkg/proto/auto_proto.sh | 2 +- pkg/proto/push/push.proto | 1 + pkg/proto/relay/relay.pb.go | 318 ++++++++++++------------------------ pkg/proto/relay/relay.proto | 1 + 4 files changed, 106 insertions(+), 216 deletions(-) diff --git a/pkg/proto/auto_proto.sh b/pkg/proto/auto_proto.sh index 309186817..25408d46e 100644 --- a/pkg/proto/auto_proto.sh +++ b/pkg/proto/auto_proto.sh @@ -4,7 +4,7 @@ source ./proto_dir.cfg for ((i = 0; i < ${#all_proto[*]}; i++)); do proto=${all_proto[$i]} - protoc --go_out=plugins=grpc:. $proto + protoc -I ../../../ -I ./ --go_out=plugins=grpc:. $proto s=`echo $proto | sed 's/ //g'` v=${s//proto/pb.go} protoc-go-inject-tag -input=./$v diff --git a/pkg/proto/push/push.proto b/pkg/proto/push/push.proto index 1116c3e05..99b2a170a 100644 --- a/pkg/proto/push/push.proto +++ b/pkg/proto/push/push.proto @@ -1,4 +1,5 @@ syntax = "proto3"; +import "Open_IM/pkg/proto/sdk_ws/ws.proto"; option go_package = "./push;pbPush"; package push; diff --git a/pkg/proto/relay/relay.pb.go b/pkg/proto/relay/relay.pb.go index d56aae9e0..02eb997e0 100644 --- a/pkg/proto/relay/relay.pb.go +++ b/pkg/proto/relay/relay.pb.go @@ -6,6 +6,7 @@ package pbRelay // import "./relay" 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" @@ -23,197 +24,90 @@ var _ = math.Inf // proto package needs to be updated. const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package -type MsgToUserReq struct { - SendID string `protobuf:"bytes,1,opt,name=SendID" json:"SendID,omitempty"` - RecvID string `protobuf:"bytes,2,opt,name=RecvID" json:"RecvID,omitempty"` - Content string `protobuf:"bytes,5,opt,name=Content" json:"Content,omitempty"` - RecvSeq int64 `protobuf:"varint,6,opt,name=RecvSeq" json:"RecvSeq,omitempty"` - SendTime int64 `protobuf:"varint,7,opt,name=SendTime" json:"SendTime,omitempty"` - MsgFrom int32 `protobuf:"varint,8,opt,name=MsgFrom" json:"MsgFrom,omitempty"` - ContentType int32 `protobuf:"varint,9,opt,name=ContentType" json:"ContentType,omitempty"` - SessionType int32 `protobuf:"varint,10,opt,name=SessionType" json:"SessionType,omitempty"` - OperationID string `protobuf:"bytes,11,opt,name=OperationID" json:"OperationID,omitempty"` - ServerMsgID string `protobuf:"bytes,12,opt,name=ServerMsgID" json:"ServerMsgID,omitempty"` - PlatformID int32 `protobuf:"varint,13,opt,name=PlatformID" json:"PlatformID,omitempty"` - SenderNickName string `protobuf:"bytes,14,opt,name=SenderNickName" json:"SenderNickName,omitempty"` - SenderFaceURL string `protobuf:"bytes,15,opt,name=SenderFaceURL" json:"SenderFaceURL,omitempty"` - ClientMsgID string `protobuf:"bytes,16,opt,name=ClientMsgID" json:"ClientMsgID,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` +type OnlinePushMsgReq struct { + OperationID string `protobuf:"bytes,1,opt,name=OperationID" json:"OperationID,omitempty"` + MsgData *sdk_ws.MsgData `protobuf:"bytes,2,opt,name=msgData" json:"msgData,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (m *MsgToUserReq) Reset() { *m = MsgToUserReq{} } -func (m *MsgToUserReq) String() string { return proto.CompactTextString(m) } -func (*MsgToUserReq) ProtoMessage() {} -func (*MsgToUserReq) Descriptor() ([]byte, []int) { - return fileDescriptor_relay_709d2b3cc3a7ad83, []int{0} -} -func (m *MsgToUserReq) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_MsgToUserReq.Unmarshal(m, b) +func (m *OnlinePushMsgReq) Reset() { *m = OnlinePushMsgReq{} } +func (m *OnlinePushMsgReq) String() string { return proto.CompactTextString(m) } +func (*OnlinePushMsgReq) ProtoMessage() {} +func (*OnlinePushMsgReq) Descriptor() ([]byte, []int) { + return fileDescriptor_relay_f80d9497f96c724f, []int{0} } -func (m *MsgToUserReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_MsgToUserReq.Marshal(b, m, deterministic) +func (m *OnlinePushMsgReq) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_OnlinePushMsgReq.Unmarshal(m, b) } -func (dst *MsgToUserReq) XXX_Merge(src proto.Message) { - xxx_messageInfo_MsgToUserReq.Merge(dst, src) +func (m *OnlinePushMsgReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_OnlinePushMsgReq.Marshal(b, m, deterministic) } -func (m *MsgToUserReq) XXX_Size() int { - return xxx_messageInfo_MsgToUserReq.Size(m) -} -func (m *MsgToUserReq) XXX_DiscardUnknown() { - xxx_messageInfo_MsgToUserReq.DiscardUnknown(m) -} - -var xxx_messageInfo_MsgToUserReq proto.InternalMessageInfo - -func (m *MsgToUserReq) GetSendID() string { - if m != nil { - return m.SendID - } - return "" -} - -func (m *MsgToUserReq) GetRecvID() string { - if m != nil { - return m.RecvID - } - return "" +func (dst *OnlinePushMsgReq) XXX_Merge(src proto.Message) { + xxx_messageInfo_OnlinePushMsgReq.Merge(dst, src) } - -func (m *MsgToUserReq) GetContent() string { - if m != nil { - return m.Content - } - return "" +func (m *OnlinePushMsgReq) XXX_Size() int { + return xxx_messageInfo_OnlinePushMsgReq.Size(m) } - -func (m *MsgToUserReq) GetRecvSeq() int64 { - if m != nil { - return m.RecvSeq - } - return 0 +func (m *OnlinePushMsgReq) XXX_DiscardUnknown() { + xxx_messageInfo_OnlinePushMsgReq.DiscardUnknown(m) } -func (m *MsgToUserReq) GetSendTime() int64 { - if m != nil { - return m.SendTime - } - return 0 -} +var xxx_messageInfo_OnlinePushMsgReq proto.InternalMessageInfo -func (m *MsgToUserReq) GetMsgFrom() int32 { - if m != nil { - return m.MsgFrom - } - return 0 -} - -func (m *MsgToUserReq) GetContentType() int32 { - if m != nil { - return m.ContentType - } - return 0 -} - -func (m *MsgToUserReq) GetSessionType() int32 { - if m != nil { - return m.SessionType - } - return 0 -} - -func (m *MsgToUserReq) GetOperationID() string { +func (m *OnlinePushMsgReq) GetOperationID() string { if m != nil { return m.OperationID } return "" } -func (m *MsgToUserReq) GetServerMsgID() string { - if m != nil { - return m.ServerMsgID - } - return "" -} - -func (m *MsgToUserReq) GetPlatformID() int32 { +func (m *OnlinePushMsgReq) GetMsgData() *sdk_ws.MsgData { if m != nil { - return m.PlatformID + return m.MsgData } - return 0 -} - -func (m *MsgToUserReq) GetSenderNickName() string { - if m != nil { - return m.SenderNickName - } - return "" -} - -func (m *MsgToUserReq) GetSenderFaceURL() string { - if m != nil { - return m.SenderFaceURL - } - return "" -} - -func (m *MsgToUserReq) GetClientMsgID() string { - if m != nil { - return m.ClientMsgID - } - return "" + return nil } -type MsgToUserResp struct { +type OnlinePushMsgResp struct { Resp []*SingleMsgToUser `protobuf:"bytes,1,rep,name=resp" json:"resp,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` } -func (m *MsgToUserResp) Reset() { *m = MsgToUserResp{} } -func (m *MsgToUserResp) String() string { return proto.CompactTextString(m) } -func (*MsgToUserResp) ProtoMessage() {} -func (*MsgToUserResp) Descriptor() ([]byte, []int) { - return fileDescriptor_relay_709d2b3cc3a7ad83, []int{1} +func (m *OnlinePushMsgResp) Reset() { *m = OnlinePushMsgResp{} } +func (m *OnlinePushMsgResp) String() string { return proto.CompactTextString(m) } +func (*OnlinePushMsgResp) ProtoMessage() {} +func (*OnlinePushMsgResp) Descriptor() ([]byte, []int) { + return fileDescriptor_relay_f80d9497f96c724f, []int{1} } -func (m *MsgToUserResp) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_MsgToUserResp.Unmarshal(m, b) +func (m *OnlinePushMsgResp) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_OnlinePushMsgResp.Unmarshal(m, b) } -func (m *MsgToUserResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_MsgToUserResp.Marshal(b, m, deterministic) +func (m *OnlinePushMsgResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_OnlinePushMsgResp.Marshal(b, m, deterministic) } -func (dst *MsgToUserResp) XXX_Merge(src proto.Message) { - xxx_messageInfo_MsgToUserResp.Merge(dst, src) +func (dst *OnlinePushMsgResp) XXX_Merge(src proto.Message) { + xxx_messageInfo_OnlinePushMsgResp.Merge(dst, src) } -func (m *MsgToUserResp) XXX_Size() int { - return xxx_messageInfo_MsgToUserResp.Size(m) +func (m *OnlinePushMsgResp) XXX_Size() int { + return xxx_messageInfo_OnlinePushMsgResp.Size(m) } -func (m *MsgToUserResp) XXX_DiscardUnknown() { - xxx_messageInfo_MsgToUserResp.DiscardUnknown(m) +func (m *OnlinePushMsgResp) XXX_DiscardUnknown() { + xxx_messageInfo_OnlinePushMsgResp.DiscardUnknown(m) } -var xxx_messageInfo_MsgToUserResp proto.InternalMessageInfo +var xxx_messageInfo_OnlinePushMsgResp proto.InternalMessageInfo -func (m *MsgToUserResp) GetResp() []*SingleMsgToUser { +func (m *OnlinePushMsgResp) GetResp() []*SingleMsgToUser { if m != nil { return m.Resp } return nil } -// message SendMsgByWSReq{ -// string SendID = 1; -// string RecvID = 2; -// string Content = 3; -// int64 SendTime = 4; -// int64 MsgFrom = 5; -// int64 ContentType = 6; -// int64 SessionType = 7; -// string OperationID = 8; -// int64 PlatformID = 9; -// } type SingleMsgToUser struct { ResultCode int64 `protobuf:"varint,1,opt,name=ResultCode" json:"ResultCode,omitempty"` RecvID string `protobuf:"bytes,2,opt,name=RecvID" json:"RecvID,omitempty"` @@ -227,7 +121,7 @@ func (m *SingleMsgToUser) Reset() { *m = SingleMsgToUser{} } func (m *SingleMsgToUser) String() string { return proto.CompactTextString(m) } func (*SingleMsgToUser) ProtoMessage() {} func (*SingleMsgToUser) Descriptor() ([]byte, []int) { - return fileDescriptor_relay_709d2b3cc3a7ad83, []int{2} + return fileDescriptor_relay_f80d9497f96c724f, []int{2} } func (m *SingleMsgToUser) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SingleMsgToUser.Unmarshal(m, b) @@ -280,7 +174,7 @@ func (m *GetUsersOnlineStatusReq) Reset() { *m = GetUsersOnlineStatusReq func (m *GetUsersOnlineStatusReq) String() string { return proto.CompactTextString(m) } func (*GetUsersOnlineStatusReq) ProtoMessage() {} func (*GetUsersOnlineStatusReq) Descriptor() ([]byte, []int) { - return fileDescriptor_relay_709d2b3cc3a7ad83, []int{3} + return fileDescriptor_relay_f80d9497f96c724f, []int{3} } func (m *GetUsersOnlineStatusReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetUsersOnlineStatusReq.Unmarshal(m, b) @@ -328,7 +222,7 @@ func (m *GetUsersOnlineStatusResp) Reset() { *m = GetUsersOnlineStatusRe func (m *GetUsersOnlineStatusResp) String() string { return proto.CompactTextString(m) } func (*GetUsersOnlineStatusResp) ProtoMessage() {} func (*GetUsersOnlineStatusResp) Descriptor() ([]byte, []int) { - return fileDescriptor_relay_709d2b3cc3a7ad83, []int{4} + return fileDescriptor_relay_f80d9497f96c724f, []int{4} } func (m *GetUsersOnlineStatusResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetUsersOnlineStatusResp.Unmarshal(m, b) @@ -390,7 +284,7 @@ func (m *GetUsersOnlineStatusResp_SuccessDetail) Reset() { func (m *GetUsersOnlineStatusResp_SuccessDetail) String() string { return proto.CompactTextString(m) } func (*GetUsersOnlineStatusResp_SuccessDetail) ProtoMessage() {} func (*GetUsersOnlineStatusResp_SuccessDetail) Descriptor() ([]byte, []int) { - return fileDescriptor_relay_709d2b3cc3a7ad83, []int{4, 0} + return fileDescriptor_relay_f80d9497f96c724f, []int{4, 0} } func (m *GetUsersOnlineStatusResp_SuccessDetail) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetUsersOnlineStatusResp_SuccessDetail.Unmarshal(m, b) @@ -437,7 +331,7 @@ func (m *GetUsersOnlineStatusResp_FailedDetail) Reset() { *m = GetUsersO func (m *GetUsersOnlineStatusResp_FailedDetail) String() string { return proto.CompactTextString(m) } func (*GetUsersOnlineStatusResp_FailedDetail) ProtoMessage() {} func (*GetUsersOnlineStatusResp_FailedDetail) Descriptor() ([]byte, []int) { - return fileDescriptor_relay_709d2b3cc3a7ad83, []int{4, 1} + return fileDescriptor_relay_f80d9497f96c724f, []int{4, 1} } func (m *GetUsersOnlineStatusResp_FailedDetail) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetUsersOnlineStatusResp_FailedDetail.Unmarshal(m, b) @@ -493,7 +387,7 @@ func (m *GetUsersOnlineStatusResp_SuccessResult) Reset() { func (m *GetUsersOnlineStatusResp_SuccessResult) String() string { return proto.CompactTextString(m) } func (*GetUsersOnlineStatusResp_SuccessResult) ProtoMessage() {} func (*GetUsersOnlineStatusResp_SuccessResult) Descriptor() ([]byte, []int) { - return fileDescriptor_relay_709d2b3cc3a7ad83, []int{4, 2} + return fileDescriptor_relay_f80d9497f96c724f, []int{4, 2} } func (m *GetUsersOnlineStatusResp_SuccessResult) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetUsersOnlineStatusResp_SuccessResult.Unmarshal(m, b) @@ -535,8 +429,8 @@ func (m *GetUsersOnlineStatusResp_SuccessResult) GetDetailPlatformStatus() []*Ge } func init() { - proto.RegisterType((*MsgToUserReq)(nil), "relay.MsgToUserReq") - proto.RegisterType((*MsgToUserResp)(nil), "relay.MsgToUserResp") + proto.RegisterType((*OnlinePushMsgReq)(nil), "relay.OnlinePushMsgReq") + proto.RegisterType((*OnlinePushMsgResp)(nil), "relay.OnlinePushMsgResp") proto.RegisterType((*SingleMsgToUser)(nil), "relay.SingleMsgToUser") proto.RegisterType((*GetUsersOnlineStatusReq)(nil), "relay.GetUsersOnlineStatusReq") proto.RegisterType((*GetUsersOnlineStatusResp)(nil), "relay.GetUsersOnlineStatusResp") @@ -556,7 +450,7 @@ const _ = grpc.SupportPackageIsVersion4 // Client API for OnlineMessageRelayService service type OnlineMessageRelayServiceClient interface { - MsgToUser(ctx context.Context, in *MsgToUserReq, opts ...grpc.CallOption) (*MsgToUserResp, error) + OnlinePushMsg(ctx context.Context, in *OnlinePushMsgReq, opts ...grpc.CallOption) (*OnlinePushMsgResp, error) GetUsersOnlineStatus(ctx context.Context, in *GetUsersOnlineStatusReq, opts ...grpc.CallOption) (*GetUsersOnlineStatusResp, error) } @@ -568,9 +462,9 @@ func NewOnlineMessageRelayServiceClient(cc *grpc.ClientConn) OnlineMessageRelayS return &onlineMessageRelayServiceClient{cc} } -func (c *onlineMessageRelayServiceClient) MsgToUser(ctx context.Context, in *MsgToUserReq, opts ...grpc.CallOption) (*MsgToUserResp, error) { - out := new(MsgToUserResp) - err := grpc.Invoke(ctx, "/relay.OnlineMessageRelayService/MsgToUser", in, out, c.cc, opts...) +func (c *onlineMessageRelayServiceClient) OnlinePushMsg(ctx context.Context, in *OnlinePushMsgReq, opts ...grpc.CallOption) (*OnlinePushMsgResp, error) { + out := new(OnlinePushMsgResp) + err := grpc.Invoke(ctx, "/relay.OnlineMessageRelayService/OnlinePushMsg", in, out, c.cc, opts...) if err != nil { return nil, err } @@ -589,7 +483,7 @@ func (c *onlineMessageRelayServiceClient) GetUsersOnlineStatus(ctx context.Conte // Server API for OnlineMessageRelayService service type OnlineMessageRelayServiceServer interface { - MsgToUser(context.Context, *MsgToUserReq) (*MsgToUserResp, error) + OnlinePushMsg(context.Context, *OnlinePushMsgReq) (*OnlinePushMsgResp, error) GetUsersOnlineStatus(context.Context, *GetUsersOnlineStatusReq) (*GetUsersOnlineStatusResp, error) } @@ -597,20 +491,20 @@ func RegisterOnlineMessageRelayServiceServer(s *grpc.Server, srv OnlineMessageRe s.RegisterService(&_OnlineMessageRelayService_serviceDesc, srv) } -func _OnlineMessageRelayService_MsgToUser_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(MsgToUserReq) +func _OnlineMessageRelayService_OnlinePushMsg_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(OnlinePushMsgReq) if err := dec(in); err != nil { return nil, err } if interceptor == nil { - return srv.(OnlineMessageRelayServiceServer).MsgToUser(ctx, in) + return srv.(OnlineMessageRelayServiceServer).OnlinePushMsg(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/relay.OnlineMessageRelayService/MsgToUser", + FullMethod: "/relay.OnlineMessageRelayService/OnlinePushMsg", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(OnlineMessageRelayServiceServer).MsgToUser(ctx, req.(*MsgToUserReq)) + return srv.(OnlineMessageRelayServiceServer).OnlinePushMsg(ctx, req.(*OnlinePushMsgReq)) } return interceptor(ctx, in, info, handler) } @@ -638,8 +532,8 @@ var _OnlineMessageRelayService_serviceDesc = grpc.ServiceDesc{ HandlerType: (*OnlineMessageRelayServiceServer)(nil), Methods: []grpc.MethodDesc{ { - MethodName: "MsgToUser", - Handler: _OnlineMessageRelayService_MsgToUser_Handler, + MethodName: "OnlinePushMsg", + Handler: _OnlineMessageRelayService_OnlinePushMsg_Handler, }, { MethodName: "GetUsersOnlineStatus", @@ -650,48 +544,42 @@ var _OnlineMessageRelayService_serviceDesc = grpc.ServiceDesc{ Metadata: "relay/relay.proto", } -func init() { proto.RegisterFile("relay/relay.proto", fileDescriptor_relay_709d2b3cc3a7ad83) } - -var fileDescriptor_relay_709d2b3cc3a7ad83 = []byte{ - // 628 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x94, 0x54, 0x41, 0x6b, 0xdb, 0x4c, - 0x10, 0x45, 0x9f, 0xe2, 0x24, 0x9e, 0xd8, 0xc9, 0x97, 0x6d, 0x48, 0xb7, 0x3a, 0xa4, 0xc6, 0x94, - 0x60, 0x4a, 0xeb, 0x42, 0x0a, 0xbd, 0xe4, 0x56, 0x0b, 0x17, 0x41, 0x9c, 0x84, 0x95, 0x43, 0x4b, - 0x7b, 0x52, 0xe4, 0x89, 0x11, 0x95, 0x25, 0x79, 0x77, 0x1d, 0xc8, 0xdf, 0xe9, 0xb9, 0xf7, 0x5e, - 0xfb, 0xd3, 0xca, 0xee, 0x4a, 0xf6, 0xda, 0xb5, 0x1b, 0x72, 0x31, 0x7e, 0x6f, 0x66, 0xdf, 0xcc, - 0xbc, 0xd9, 0x15, 0x1c, 0x72, 0x4c, 0xa3, 0x87, 0x77, 0xfa, 0xb7, 0x5b, 0xf0, 0x5c, 0xe6, 0xa4, - 0xa6, 0x41, 0xfb, 0xb7, 0x0b, 0x8d, 0x81, 0x18, 0x0f, 0xf3, 0x1b, 0x81, 0x9c, 0xe1, 0x94, 0x1c, - 0xc3, 0x76, 0x88, 0xd9, 0x28, 0xf0, 0xa9, 0xd3, 0x72, 0x3a, 0x75, 0x56, 0x22, 0xc5, 0x33, 0x8c, - 0xef, 0x03, 0x9f, 0xfe, 0x67, 0x78, 0x83, 0x08, 0x85, 0x9d, 0x5e, 0x9e, 0x49, 0xcc, 0x24, 0xad, - 0xe9, 0x40, 0x05, 0x55, 0x44, 0xe5, 0x84, 0x38, 0xa5, 0xdb, 0x2d, 0xa7, 0xe3, 0xb2, 0x0a, 0x12, - 0x0f, 0x76, 0x95, 0xea, 0x30, 0x99, 0x20, 0xdd, 0xd1, 0xa1, 0x39, 0x56, 0xa7, 0x06, 0x62, 0xdc, - 0xe7, 0xf9, 0x84, 0xee, 0xb6, 0x9c, 0x4e, 0x8d, 0x55, 0x90, 0xb4, 0x60, 0xaf, 0x94, 0x1e, 0x3e, - 0x14, 0x48, 0xeb, 0x3a, 0x6a, 0x53, 0x2a, 0x23, 0x44, 0x21, 0x92, 0x3c, 0xd3, 0x19, 0x60, 0x32, - 0x2c, 0x4a, 0x65, 0x5c, 0x15, 0xc8, 0x23, 0x99, 0xe4, 0x59, 0xe0, 0xd3, 0x3d, 0xdd, 0xb1, 0x4d, - 0x19, 0x0d, 0x7e, 0x8f, 0x7c, 0x20, 0xc6, 0x81, 0x4f, 0x1b, 0x26, 0xc3, 0xa2, 0xc8, 0x09, 0xc0, - 0x75, 0x1a, 0xc9, 0xbb, 0x9c, 0x4f, 0x02, 0x9f, 0x36, 0x75, 0x11, 0x8b, 0x21, 0xa7, 0xb0, 0xaf, - 0xa6, 0x41, 0x7e, 0x99, 0xc4, 0xdf, 0x2f, 0xa3, 0x09, 0xd2, 0x7d, 0x2d, 0xb2, 0xc2, 0x92, 0x57, - 0xd0, 0x34, 0x4c, 0x3f, 0x8a, 0xf1, 0x86, 0x5d, 0xd0, 0x03, 0x9d, 0xb6, 0x4c, 0xea, 0xa9, 0xd3, - 0x04, 0x33, 0x69, 0xfa, 0xf9, 0xdf, 0xf4, 0x63, 0x51, 0xed, 0x73, 0x68, 0x5a, 0x1b, 0x14, 0x05, - 0x79, 0x0d, 0x5b, 0x1c, 0x45, 0x41, 0x9d, 0x96, 0xdb, 0xd9, 0x3b, 0x3b, 0xee, 0x9a, 0xb5, 0x87, - 0x49, 0x36, 0x4e, 0x71, 0x91, 0xa9, 0x73, 0xda, 0x53, 0x38, 0x58, 0x09, 0xa8, 0xf9, 0x18, 0x8a, - 0x59, 0x2a, 0x7b, 0xf9, 0x08, 0xf5, 0x2d, 0x70, 0x99, 0xc5, 0x6c, 0xbc, 0x09, 0xa7, 0xb0, 0xaf, - 0xfe, 0x29, 0x27, 0xfa, 0xc6, 0x1b, 0x57, 0x7b, 0xb3, 0xc2, 0xb6, 0xbf, 0xc1, 0xf3, 0x4f, 0x28, - 0x55, 0x29, 0x71, 0x95, 0xa5, 0x49, 0x86, 0xa1, 0x8c, 0xe4, 0x4c, 0xa8, 0xcb, 0x77, 0x02, 0x30, - 0x13, 0xc8, 0x03, 0xff, 0x22, 0x11, 0x52, 0xf7, 0x5f, 0x67, 0x16, 0xa3, 0xcc, 0xc8, 0xad, 0xf5, - 0x99, 0xfa, 0x36, 0xd5, 0xfe, 0xb5, 0x05, 0x74, 0xbd, 0xba, 0x28, 0xd4, 0xdd, 0x42, 0xce, 0xe7, - 0x63, 0xd5, 0x58, 0x05, 0xd5, 0x4c, 0xc8, 0xd5, 0x7e, 0xab, 0x99, 0x0c, 0x22, 0x21, 0x34, 0xc5, - 0x2c, 0x8e, 0x51, 0x08, 0x63, 0x00, 0x75, 0xb5, 0xa7, 0x6f, 0x4b, 0x4f, 0x37, 0x55, 0xea, 0x86, - 0xf6, 0x21, 0xb6, 0xac, 0x41, 0xae, 0xa1, 0x71, 0x17, 0x25, 0x29, 0x8e, 0x4a, 0xcd, 0x2d, 0xad, - 0xf9, 0xe6, 0x31, 0xcd, 0xbe, 0x3e, 0xe3, 0xa3, 0x8c, 0x92, 0x94, 0x2d, 0x29, 0x78, 0x3d, 0x68, - 0x96, 0x15, 0x4d, 0x58, 0xbd, 0xb0, 0xa2, 0xbc, 0x91, 0xe5, 0x3b, 0x9e, 0x63, 0x35, 0xab, 0xd0, - 0xaa, 0xd5, 0xac, 0x06, 0x79, 0x5f, 0xa0, 0x61, 0x97, 0x50, 0x79, 0xc6, 0x7a, 0xbd, 0xc7, 0x3a, - 0x2b, 0xd1, 0xd3, 0x5d, 0xf4, 0x7e, 0x38, 0xf3, 0xfe, 0x4a, 0x0b, 0x16, 0xda, 0xce, 0x92, 0xf6, - 0x86, 0xde, 0x48, 0x04, 0x47, 0x23, 0xdd, 0x55, 0xf5, 0xce, 0x8c, 0x2f, 0x4f, 0x5c, 0x47, 0xe9, - 0xdd, 0x5a, 0xa9, 0xb3, 0x9f, 0x0e, 0xbc, 0x30, 0x07, 0x07, 0x28, 0x44, 0x34, 0x46, 0xa6, 0x34, - 0xd5, 0xc3, 0x4f, 0x62, 0x24, 0x1f, 0xa0, 0xbe, 0x78, 0x21, 0xcf, 0xca, 0x7a, 0xf6, 0x87, 0xd3, - 0x3b, 0xfa, 0x9b, 0x14, 0x05, 0xf9, 0x0c, 0x47, 0xeb, 0xba, 0x22, 0x27, 0xff, 0x6c, 0x79, 0xea, - 0xbd, 0x7c, 0x64, 0xa4, 0x8f, 0x87, 0x5f, 0x0f, 0xba, 0xe6, 0x83, 0x7e, 0x5e, 0xdc, 0xea, 0x56, - 0x6f, 0xb7, 0xf5, 0x97, 0xfd, 0xfd, 0x9f, 0x00, 0x00, 0x00, 0xff, 0xff, 0x4e, 0xe4, 0x7c, 0xdc, - 0xee, 0x05, 0x00, 0x00, +func init() { proto.RegisterFile("relay/relay.proto", fileDescriptor_relay_f80d9497f96c724f) } + +var fileDescriptor_relay_f80d9497f96c724f = []byte{ + // 531 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x94, 0x54, 0x5f, 0x6f, 0xd2, 0x50, + 0x14, 0x4f, 0x65, 0x6c, 0x72, 0x18, 0x4e, 0x6e, 0xc8, 0x56, 0xfb, 0x80, 0xc8, 0x83, 0x21, 0x46, + 0x4b, 0x82, 0x8f, 0x3e, 0x98, 0x6c, 0xcd, 0x0c, 0x89, 0x0d, 0xe4, 0xa2, 0xd1, 0xe8, 0x03, 0xb9, + 0xa3, 0x67, 0xb5, 0xa1, 0xd0, 0x72, 0xcf, 0xed, 0x16, 0xbf, 0x8e, 0x5f, 0x42, 0x3f, 0x9e, 0xe9, + 0xbd, 0x05, 0x0b, 0x61, 0x2e, 0x7b, 0x21, 0x9c, 0x3f, 0xf7, 0xf7, 0xaf, 0xed, 0x85, 0xa6, 0xc4, + 0x58, 0xfc, 0xec, 0xeb, 0x5f, 0x37, 0x95, 0x89, 0x4a, 0x58, 0x55, 0x17, 0xce, 0x8b, 0x51, 0x8a, + 0xcb, 0xe9, 0xd0, 0xef, 0xa7, 0xf3, 0xb0, 0xaf, 0x27, 0x7d, 0x0a, 0xe6, 0xd3, 0x5b, 0xea, 0xdf, + 0x92, 0xd9, 0xec, 0x06, 0xf0, 0x74, 0xb4, 0x8c, 0xa3, 0x25, 0x8e, 0x33, 0xfa, 0xe1, 0x53, 0xc8, + 0x71, 0xc5, 0x3a, 0x50, 0x1f, 0xa5, 0x28, 0x85, 0x8a, 0x92, 0xe5, 0xd0, 0xb3, 0xad, 0x8e, 0xd5, + 0xab, 0xf1, 0x72, 0x8b, 0xb9, 0x70, 0xb4, 0xa0, 0xd0, 0x13, 0x4a, 0xd8, 0x8f, 0x3a, 0x56, 0xaf, + 0x3e, 0x68, 0xb9, 0x49, 0x4e, 0x15, 0x2d, 0xa6, 0x14, 0xcc, 0x5d, 0xdf, 0xcc, 0xf8, 0x7a, 0xa9, + 0xfb, 0x1e, 0x9a, 0x3b, 0x2c, 0x94, 0xb2, 0x57, 0x70, 0x20, 0x91, 0x52, 0xdb, 0xea, 0x54, 0x7a, + 0xf5, 0xc1, 0xa9, 0x6b, 0x0c, 0x4c, 0xa2, 0x65, 0x18, 0xa3, 0x4f, 0xe1, 0xa7, 0xe4, 0x33, 0xa1, + 0xe4, 0x7a, 0xa7, 0xbb, 0x82, 0x93, 0x9d, 0x01, 0x6b, 0x03, 0x70, 0xa4, 0x2c, 0x56, 0x17, 0x49, + 0x80, 0x5a, 0x64, 0x85, 0x97, 0x3a, 0xec, 0x14, 0x0e, 0x39, 0xce, 0x6e, 0x86, 0x9e, 0x96, 0x58, + 0xe3, 0x45, 0xc5, 0x5e, 0xc2, 0x93, 0xfc, 0xdf, 0x38, 0x16, 0xea, 0x32, 0x91, 0x8b, 0xa1, 0x67, + 0x57, 0x3a, 0x56, 0xaf, 0xca, 0x77, 0xba, 0xdd, 0xef, 0x70, 0xf6, 0x01, 0x55, 0x4e, 0x45, 0x46, + 0xfb, 0x44, 0x09, 0x95, 0x51, 0x1e, 0x50, 0x1b, 0x20, 0x23, 0x94, 0x43, 0xef, 0x63, 0x44, 0x4a, + 0xeb, 0xaf, 0xf1, 0x52, 0x27, 0x0f, 0x30, 0x29, 0x05, 0x68, 0xf8, 0xcb, 0xad, 0xee, 0xef, 0x03, + 0xb0, 0xf7, 0xa3, 0x53, 0xca, 0x6c, 0x38, 0x42, 0x29, 0x37, 0xb6, 0xaa, 0x7c, 0x5d, 0xe6, 0x9e, + 0x50, 0x4a, 0x9f, 0xc2, 0xb5, 0x27, 0x53, 0xb1, 0x09, 0x34, 0x28, 0x9b, 0xcd, 0x90, 0xc8, 0x04, + 0x60, 0x57, 0x74, 0xa6, 0x6f, 0x8a, 0x4c, 0xef, 0x62, 0x72, 0x27, 0xe5, 0x43, 0x7c, 0x1b, 0x83, + 0x8d, 0xe1, 0xf8, 0x5a, 0x44, 0x31, 0x06, 0x05, 0xe6, 0x81, 0xc6, 0x7c, 0x7d, 0x1f, 0xe6, 0xa5, + 0x3e, 0xe3, 0xa1, 0x12, 0x51, 0xcc, 0xb7, 0x10, 0x9c, 0x0b, 0x68, 0x14, 0x8c, 0x66, 0xcc, 0x1c, + 0x78, 0x9c, 0xc6, 0x42, 0x5d, 0x27, 0x72, 0x51, 0xbc, 0x66, 0x9b, 0x3a, 0xf7, 0x4a, 0x1a, 0x75, + 0xed, 0xd5, 0x54, 0xce, 0x57, 0x38, 0x2e, 0x53, 0xe4, 0x7b, 0x26, 0x7a, 0xfd, 0x1c, 0x6b, 0xbc, + 0xa8, 0x1e, 0x9e, 0xa2, 0xf3, 0xcb, 0xda, 0xe8, 0x2b, 0x22, 0xf8, 0x87, 0x6d, 0x6d, 0x61, 0xdf, + 0xa1, 0x8d, 0x09, 0x68, 0x05, 0x5a, 0xd5, 0xb8, 0x70, 0x61, 0x72, 0x79, 0xe0, 0xe3, 0x28, 0xb2, + 0xdb, 0x0b, 0x35, 0xf8, 0x63, 0xc1, 0x33, 0x73, 0xd0, 0x47, 0x22, 0x11, 0x22, 0xcf, 0x31, 0x27, + 0x28, 0x6f, 0xa2, 0x19, 0xb2, 0x73, 0x68, 0x6c, 0x7d, 0x68, 0xec, 0xac, 0xe0, 0xdc, 0xfd, 0xc8, + 0x1d, 0x7b, 0xff, 0x80, 0x52, 0xf6, 0x05, 0x5a, 0xfb, 0x14, 0xb2, 0xf6, 0x7f, 0xe5, 0xaf, 0x9c, + 0xe7, 0xf7, 0xd8, 0x3b, 0x6f, 0x7e, 0x3b, 0x71, 0xcd, 0x35, 0xf5, 0x2e, 0xbd, 0xd2, 0xb2, 0xaf, + 0x0e, 0xf5, 0x2d, 0xf4, 0xf6, 0x6f, 0x00, 0x00, 0x00, 0xff, 0xff, 0x81, 0xe6, 0x3c, 0x27, 0xc4, + 0x04, 0x00, 0x00, } diff --git a/pkg/proto/relay/relay.proto b/pkg/proto/relay/relay.proto index 0cbfcd0e1..c3215db3f 100644 --- a/pkg/proto/relay/relay.proto +++ b/pkg/proto/relay/relay.proto @@ -1,4 +1,5 @@ syntax = "proto3"; +import "Open_IM/pkg/proto/sdk_ws/ws.proto"; option go_package = "./relay;pbRelay"; package relay; From 26640b3b07e3d8c05b40995e1f4c40ea14a691b3 Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Wed, 22 Dec 2021 11:13:51 +0800 Subject: [PATCH 222/814] proto file --- pkg/proto/chat/chat.pb.go | 687 ++++++++++++++++++-------------------- 1 file changed, 334 insertions(+), 353 deletions(-) diff --git a/pkg/proto/chat/chat.pb.go b/pkg/proto/chat/chat.pb.go index d208317a5..63c35ae18 100644 --- a/pkg/proto/chat/chat.pb.go +++ b/pkg/proto/chat/chat.pb.go @@ -1,13 +1,18 @@ // Code generated by protoc-gen-go. DO NOT EDIT. -// source: chat.proto +// source: chat/chat.proto -package pbChat +package pbChat // import "./chat" 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 @@ -19,328 +24,142 @@ var _ = math.Inf // proto package needs to be updated. const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package -type WSToMsgSvrChatMsg struct { - SendID string `protobuf:"bytes,1,opt,name=SendID" json:"SendID,omitempty"` - RecvID string `protobuf:"bytes,2,opt,name=RecvID" json:"RecvID,omitempty"` - Content string `protobuf:"bytes,3,opt,name=Content" json:"Content,omitempty"` - SendTime int64 `protobuf:"varint,4,opt,name=SendTime" json:"SendTime,omitempty"` - MsgFrom int32 `protobuf:"varint,5,opt,name=MsgFrom" json:"MsgFrom,omitempty"` - SenderNickName string `protobuf:"bytes,6,opt,name=SenderNickName" json:"SenderNickName,omitempty"` - SenderFaceURL string `protobuf:"bytes,7,opt,name=SenderFaceURL" json:"SenderFaceURL,omitempty"` - ContentType int32 `protobuf:"varint,8,opt,name=ContentType" json:"ContentType,omitempty"` - SessionType int32 `protobuf:"varint,9,opt,name=SessionType" json:"SessionType,omitempty"` - OperationID string `protobuf:"bytes,10,opt,name=OperationID" json:"OperationID,omitempty"` - MsgID string `protobuf:"bytes,11,opt,name=MsgID" json:"MsgID,omitempty"` - Token string `protobuf:"bytes,12,opt,name=Token" json:"Token,omitempty"` - OfflineInfo string `protobuf:"bytes,13,opt,name=OfflineInfo" json:"OfflineInfo,omitempty"` - Options string `protobuf:"bytes,14,opt,name=Options" json:"Options,omitempty"` - PlatformID int32 `protobuf:"varint,15,opt,name=PlatformID" json:"PlatformID,omitempty"` - ForceList []string `protobuf:"bytes,16,rep,name=ForceList" json:"ForceList,omitempty"` - ClientMsgID string `protobuf:"bytes,17,opt,name=ClientMsgID" json:"ClientMsgID,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *WSToMsgSvrChatMsg) Reset() { *m = WSToMsgSvrChatMsg{} } -func (m *WSToMsgSvrChatMsg) String() string { return proto.CompactTextString(m) } -func (*WSToMsgSvrChatMsg) ProtoMessage() {} -func (*WSToMsgSvrChatMsg) Descriptor() ([]byte, []int) { - return fileDescriptor_chat_955d1f0dcca586dd, []int{0} -} -func (m *WSToMsgSvrChatMsg) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_WSToMsgSvrChatMsg.Unmarshal(m, b) -} -func (m *WSToMsgSvrChatMsg) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_WSToMsgSvrChatMsg.Marshal(b, m, deterministic) -} -func (dst *WSToMsgSvrChatMsg) XXX_Merge(src proto.Message) { - xxx_messageInfo_WSToMsgSvrChatMsg.Merge(dst, src) -} -func (m *WSToMsgSvrChatMsg) XXX_Size() int { - return xxx_messageInfo_WSToMsgSvrChatMsg.Size(m) -} -func (m *WSToMsgSvrChatMsg) XXX_DiscardUnknown() { - xxx_messageInfo_WSToMsgSvrChatMsg.DiscardUnknown(m) -} - -var xxx_messageInfo_WSToMsgSvrChatMsg proto.InternalMessageInfo - -func (m *WSToMsgSvrChatMsg) GetSendID() string { - if m != nil { - return m.SendID - } - return "" -} - -func (m *WSToMsgSvrChatMsg) GetRecvID() string { - if m != nil { - return m.RecvID - } - return "" -} - -func (m *WSToMsgSvrChatMsg) GetContent() string { - if m != nil { - return m.Content - } - return "" -} - -func (m *WSToMsgSvrChatMsg) GetSendTime() int64 { - if m != nil { - return m.SendTime - } - return 0 +type MsgDataToMQ struct { + Token string `protobuf:"bytes,1,opt,name=token" json:"token,omitempty"` + OperationID string `protobuf:"bytes,2,opt,name=operationID" json:"operationID,omitempty"` + MsgData *sdk_ws.MsgData `protobuf:"bytes,3,opt,name=msgData" json:"msgData,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (m *WSToMsgSvrChatMsg) GetMsgFrom() int32 { - if m != nil { - return m.MsgFrom - } - return 0 +func (m *MsgDataToMQ) Reset() { *m = MsgDataToMQ{} } +func (m *MsgDataToMQ) String() string { return proto.CompactTextString(m) } +func (*MsgDataToMQ) ProtoMessage() {} +func (*MsgDataToMQ) Descriptor() ([]byte, []int) { + return fileDescriptor_chat_e46047b47969b559, []int{0} } - -func (m *WSToMsgSvrChatMsg) GetSenderNickName() string { - if m != nil { - return m.SenderNickName - } - return "" +func (m *MsgDataToMQ) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_MsgDataToMQ.Unmarshal(m, b) } - -func (m *WSToMsgSvrChatMsg) GetSenderFaceURL() string { - if m != nil { - return m.SenderFaceURL - } - return "" +func (m *MsgDataToMQ) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_MsgDataToMQ.Marshal(b, m, deterministic) } - -func (m *WSToMsgSvrChatMsg) GetContentType() int32 { - if m != nil { - return m.ContentType - } - return 0 +func (dst *MsgDataToMQ) XXX_Merge(src proto.Message) { + xxx_messageInfo_MsgDataToMQ.Merge(dst, src) } - -func (m *WSToMsgSvrChatMsg) GetSessionType() int32 { - if m != nil { - return m.SessionType - } - return 0 +func (m *MsgDataToMQ) XXX_Size() int { + return xxx_messageInfo_MsgDataToMQ.Size(m) } - -func (m *WSToMsgSvrChatMsg) GetOperationID() string { - if m != nil { - return m.OperationID - } - return "" +func (m *MsgDataToMQ) XXX_DiscardUnknown() { + xxx_messageInfo_MsgDataToMQ.DiscardUnknown(m) } -func (m *WSToMsgSvrChatMsg) GetMsgID() string { - if m != nil { - return m.MsgID - } - return "" -} +var xxx_messageInfo_MsgDataToMQ proto.InternalMessageInfo -func (m *WSToMsgSvrChatMsg) GetToken() string { +func (m *MsgDataToMQ) GetToken() string { if m != nil { return m.Token } return "" } -func (m *WSToMsgSvrChatMsg) GetOfflineInfo() string { +func (m *MsgDataToMQ) GetOperationID() string { if m != nil { - return m.OfflineInfo - } - return "" -} - -func (m *WSToMsgSvrChatMsg) GetOptions() string { - if m != nil { - return m.Options + return m.OperationID } return "" } -func (m *WSToMsgSvrChatMsg) GetPlatformID() int32 { +func (m *MsgDataToMQ) GetMsgData() *sdk_ws.MsgData { if m != nil { - return m.PlatformID - } - return 0 -} - -func (m *WSToMsgSvrChatMsg) GetForceList() []string { - if m != nil { - return m.ForceList + return m.MsgData } return nil } -func (m *WSToMsgSvrChatMsg) GetClientMsgID() string { - if m != nil { - return m.ClientMsgID - } - return "" -} - -type MsgSvrToPushSvrChatMsg struct { - SendID string `protobuf:"bytes,1,opt,name=SendID" json:"SendID,omitempty"` - RecvID string `protobuf:"bytes,2,opt,name=RecvID" json:"RecvID,omitempty"` - Content string `protobuf:"bytes,3,opt,name=Content" json:"Content,omitempty"` - RecvSeq int64 `protobuf:"varint,4,opt,name=RecvSeq" json:"RecvSeq,omitempty"` - SendTime int64 `protobuf:"varint,5,opt,name=SendTime" json:"SendTime,omitempty"` - MsgFrom int32 `protobuf:"varint,6,opt,name=MsgFrom" json:"MsgFrom,omitempty"` - SenderNickName string `protobuf:"bytes,7,opt,name=SenderNickName" json:"SenderNickName,omitempty"` - SenderFaceURL string `protobuf:"bytes,8,opt,name=SenderFaceURL" json:"SenderFaceURL,omitempty"` - ContentType int32 `protobuf:"varint,9,opt,name=ContentType" json:"ContentType,omitempty"` - SessionType int32 `protobuf:"varint,10,opt,name=SessionType" json:"SessionType,omitempty"` - OperationID string `protobuf:"bytes,11,opt,name=OperationID" json:"OperationID,omitempty"` - MsgID string `protobuf:"bytes,12,opt,name=MsgID" json:"MsgID,omitempty"` - OfflineInfo string `protobuf:"bytes,13,opt,name=OfflineInfo" json:"OfflineInfo,omitempty"` - Options string `protobuf:"bytes,14,opt,name=Options" json:"Options,omitempty"` - PlatformID int32 `protobuf:"varint,15,opt,name=PlatformID" json:"PlatformID,omitempty"` - ClientMsgID string `protobuf:"bytes,16,opt,name=ClientMsgID" json:"ClientMsgID,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` +type MsgDataToDB struct { + MsgData *sdk_ws.MsgData `protobuf:"bytes,1,opt,name=msgData" json:"msgData,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (m *MsgSvrToPushSvrChatMsg) Reset() { *m = MsgSvrToPushSvrChatMsg{} } -func (m *MsgSvrToPushSvrChatMsg) String() string { return proto.CompactTextString(m) } -func (*MsgSvrToPushSvrChatMsg) ProtoMessage() {} -func (*MsgSvrToPushSvrChatMsg) Descriptor() ([]byte, []int) { - return fileDescriptor_chat_955d1f0dcca586dd, []int{1} +func (m *MsgDataToDB) Reset() { *m = MsgDataToDB{} } +func (m *MsgDataToDB) String() string { return proto.CompactTextString(m) } +func (*MsgDataToDB) ProtoMessage() {} +func (*MsgDataToDB) Descriptor() ([]byte, []int) { + return fileDescriptor_chat_e46047b47969b559, []int{1} } -func (m *MsgSvrToPushSvrChatMsg) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_MsgSvrToPushSvrChatMsg.Unmarshal(m, b) +func (m *MsgDataToDB) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_MsgDataToDB.Unmarshal(m, b) } -func (m *MsgSvrToPushSvrChatMsg) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_MsgSvrToPushSvrChatMsg.Marshal(b, m, deterministic) +func (m *MsgDataToDB) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_MsgDataToDB.Marshal(b, m, deterministic) } -func (dst *MsgSvrToPushSvrChatMsg) XXX_Merge(src proto.Message) { - xxx_messageInfo_MsgSvrToPushSvrChatMsg.Merge(dst, src) +func (dst *MsgDataToDB) XXX_Merge(src proto.Message) { + xxx_messageInfo_MsgDataToDB.Merge(dst, src) } -func (m *MsgSvrToPushSvrChatMsg) XXX_Size() int { - return xxx_messageInfo_MsgSvrToPushSvrChatMsg.Size(m) +func (m *MsgDataToDB) XXX_Size() int { + return xxx_messageInfo_MsgDataToDB.Size(m) } -func (m *MsgSvrToPushSvrChatMsg) XXX_DiscardUnknown() { - xxx_messageInfo_MsgSvrToPushSvrChatMsg.DiscardUnknown(m) +func (m *MsgDataToDB) XXX_DiscardUnknown() { + xxx_messageInfo_MsgDataToDB.DiscardUnknown(m) } -var xxx_messageInfo_MsgSvrToPushSvrChatMsg proto.InternalMessageInfo +var xxx_messageInfo_MsgDataToDB proto.InternalMessageInfo -func (m *MsgSvrToPushSvrChatMsg) GetSendID() string { +func (m *MsgDataToDB) GetMsgData() *sdk_ws.MsgData { if m != nil { - return m.SendID - } - return "" -} - -func (m *MsgSvrToPushSvrChatMsg) GetRecvID() string { - if m != nil { - return m.RecvID + return m.MsgData } - return "" + return nil } -func (m *MsgSvrToPushSvrChatMsg) GetContent() string { - if m != nil { - return m.Content - } - return "" +type PushMsgDataToMQ struct { + OperationID string `protobuf:"bytes,1,opt,name=OperationID" json:"OperationID,omitempty"` + MsgData *sdk_ws.MsgData `protobuf:"bytes,2,opt,name=msgData" json:"msgData,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (m *MsgSvrToPushSvrChatMsg) GetRecvSeq() int64 { - if m != nil { - return m.RecvSeq - } - return 0 +func (m *PushMsgDataToMQ) Reset() { *m = PushMsgDataToMQ{} } +func (m *PushMsgDataToMQ) String() string { return proto.CompactTextString(m) } +func (*PushMsgDataToMQ) ProtoMessage() {} +func (*PushMsgDataToMQ) Descriptor() ([]byte, []int) { + return fileDescriptor_chat_e46047b47969b559, []int{2} } - -func (m *MsgSvrToPushSvrChatMsg) GetSendTime() int64 { - if m != nil { - return m.SendTime - } - return 0 +func (m *PushMsgDataToMQ) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_PushMsgDataToMQ.Unmarshal(m, b) } - -func (m *MsgSvrToPushSvrChatMsg) GetMsgFrom() int32 { - if m != nil { - return m.MsgFrom - } - return 0 +func (m *PushMsgDataToMQ) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_PushMsgDataToMQ.Marshal(b, m, deterministic) } - -func (m *MsgSvrToPushSvrChatMsg) GetSenderNickName() string { - if m != nil { - return m.SenderNickName - } - return "" +func (dst *PushMsgDataToMQ) XXX_Merge(src proto.Message) { + xxx_messageInfo_PushMsgDataToMQ.Merge(dst, src) } - -func (m *MsgSvrToPushSvrChatMsg) GetSenderFaceURL() string { - if m != nil { - return m.SenderFaceURL - } - return "" +func (m *PushMsgDataToMQ) XXX_Size() int { + return xxx_messageInfo_PushMsgDataToMQ.Size(m) } - -func (m *MsgSvrToPushSvrChatMsg) GetContentType() int32 { - if m != nil { - return m.ContentType - } - return 0 +func (m *PushMsgDataToMQ) XXX_DiscardUnknown() { + xxx_messageInfo_PushMsgDataToMQ.DiscardUnknown(m) } -func (m *MsgSvrToPushSvrChatMsg) GetSessionType() int32 { - if m != nil { - return m.SessionType - } - return 0 -} +var xxx_messageInfo_PushMsgDataToMQ proto.InternalMessageInfo -func (m *MsgSvrToPushSvrChatMsg) GetOperationID() string { +func (m *PushMsgDataToMQ) GetOperationID() string { if m != nil { return m.OperationID } return "" } -func (m *MsgSvrToPushSvrChatMsg) GetMsgID() string { - if m != nil { - return m.MsgID - } - return "" -} - -func (m *MsgSvrToPushSvrChatMsg) GetOfflineInfo() string { - if m != nil { - return m.OfflineInfo - } - return "" -} - -func (m *MsgSvrToPushSvrChatMsg) GetOptions() string { - if m != nil { - return m.Options - } - return "" -} - -func (m *MsgSvrToPushSvrChatMsg) GetPlatformID() int32 { - if m != nil { - return m.PlatformID - } - return 0 -} - -func (m *MsgSvrToPushSvrChatMsg) GetClientMsgID() string { +func (m *PushMsgDataToMQ) GetMsgData() *sdk_ws.MsgData { if m != nil { - return m.ClientMsgID + return m.MsgData } - return "" + return nil } type PullMessageReq struct { @@ -357,7 +176,7 @@ func (m *PullMessageReq) Reset() { *m = PullMessageReq{} } func (m *PullMessageReq) String() string { return proto.CompactTextString(m) } func (*PullMessageReq) ProtoMessage() {} func (*PullMessageReq) Descriptor() ([]byte, []int) { - return fileDescriptor_chat_955d1f0dcca586dd, []int{2} + return fileDescriptor_chat_e46047b47969b559, []int{3} } func (m *PullMessageReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_PullMessageReq.Unmarshal(m, b) @@ -421,7 +240,7 @@ func (m *PullMessageResp) Reset() { *m = PullMessageResp{} } func (m *PullMessageResp) String() string { return proto.CompactTextString(m) } func (*PullMessageResp) ProtoMessage() {} func (*PullMessageResp) Descriptor() ([]byte, []int) { - return fileDescriptor_chat_955d1f0dcca586dd, []int{3} + return fileDescriptor_chat_e46047b47969b559, []int{4} } func (m *PullMessageResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_PullMessageResp.Unmarshal(m, b) @@ -496,7 +315,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_chat_955d1f0dcca586dd, []int{4} + return fileDescriptor_chat_e46047b47969b559, []int{5} } func (m *PullMessageBySeqListReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_PullMessageBySeqListReq.Unmarshal(m, b) @@ -549,7 +368,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_chat_955d1f0dcca586dd, []int{5} + return fileDescriptor_chat_e46047b47969b559, []int{6} } func (m *GetMaxAndMinSeqReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetMaxAndMinSeqReq.Unmarshal(m, b) @@ -597,7 +416,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_chat_955d1f0dcca586dd, []int{6} + return fileDescriptor_chat_e46047b47969b559, []int{7} } func (m *GetMaxAndMinSeqResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetMaxAndMinSeqResp.Unmarshal(m, b) @@ -647,9 +466,9 @@ func (m *GetMaxAndMinSeqResp) GetMinSeq() int64 { type GatherFormat struct { // @inject_tag: json:"id" - ID string `protobuf:"bytes,1,opt,name=ID" json:"ID,omitempty"` + ID string `protobuf:"bytes,1,opt,name=ID" json:"id"` // @inject_tag: json:"list" - List []*MsgFormat `protobuf:"bytes,2,rep,name=List" json:"List,omitempty"` + List []*MsgFormat `protobuf:"bytes,2,rep,name=List" json:"list"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -659,7 +478,7 @@ func (m *GatherFormat) Reset() { *m = GatherFormat{} } func (m *GatherFormat) String() string { return proto.CompactTextString(m) } func (*GatherFormat) ProtoMessage() {} func (*GatherFormat) Descriptor() ([]byte, []int) { - return fileDescriptor_chat_955d1f0dcca586dd, []int{7} + return fileDescriptor_chat_e46047b47969b559, []int{8} } func (m *GatherFormat) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GatherFormat.Unmarshal(m, b) @@ -695,29 +514,29 @@ func (m *GatherFormat) GetList() []*MsgFormat { type MsgFormat struct { // @inject_tag: json:"sendID" - SendID string `protobuf:"bytes,1,opt,name=SendID" json:"SendID,omitempty"` + SendID string `protobuf:"bytes,1,opt,name=SendID" json:"sendID"` // @inject_tag: json:"recvID" - RecvID string `protobuf:"bytes,2,opt,name=RecvID" json:"RecvID,omitempty"` + RecvID string `protobuf:"bytes,2,opt,name=RecvID" json:"recvID"` // @inject_tag: json:"msgFrom" - MsgFrom int32 `protobuf:"varint,3,opt,name=MsgFrom" json:"MsgFrom,omitempty"` + MsgFrom int32 `protobuf:"varint,3,opt,name=MsgFrom" json:"msgFrom"` // @inject_tag: json:"contentType" - ContentType int32 `protobuf:"varint,4,opt,name=ContentType" json:"ContentType,omitempty"` + ContentType int32 `protobuf:"varint,4,opt,name=ContentType" json:"contentType"` // @inject_tag: json:"serverMsgID" - ServerMsgID string `protobuf:"bytes,5,opt,name=ServerMsgID" json:"ServerMsgID,omitempty"` + ServerMsgID string `protobuf:"bytes,5,opt,name=ServerMsgID" json:"serverMsgID"` // @inject_tag: json:"content" - Content string `protobuf:"bytes,6,opt,name=Content" json:"Content,omitempty"` + Content string `protobuf:"bytes,6,opt,name=Content" json:"content"` // @inject_tag: json:"seq" - Seq int64 `protobuf:"varint,7,opt,name=Seq" json:"Seq,omitempty"` + Seq int64 `protobuf:"varint,7,opt,name=Seq" json:"seq"` // @inject_tag: json:"sendTime" - SendTime int64 `protobuf:"varint,8,opt,name=SendTime" json:"SendTime,omitempty"` + SendTime int64 `protobuf:"varint,8,opt,name=SendTime" json:"sendTime"` // @inject_tag: json:"senderPlatformID" - SenderPlatformID int32 `protobuf:"varint,9,opt,name=SenderPlatformID" json:"SenderPlatformID,omitempty"` + SenderPlatformID int32 `protobuf:"varint,9,opt,name=SenderPlatformID" json:"senderPlatformID"` // @inject_tag: json:"senderNickName" - SenderNickName string `protobuf:"bytes,10,opt,name=SenderNickName" json:"SenderNickName,omitempty"` + SenderNickName string `protobuf:"bytes,10,opt,name=SenderNickName" json:"senderNickName"` // @inject_tag: json:"senderFaceUrl" - SenderFaceURL string `protobuf:"bytes,11,opt,name=SenderFaceURL" json:"SenderFaceURL,omitempty"` + SenderFaceURL string `protobuf:"bytes,11,opt,name=SenderFaceURL" json:"senderFaceUrl"` // @inject_tag: json:"clientMsgID" - ClientMsgID string `protobuf:"bytes,12,opt,name=ClientMsgID" json:"ClientMsgID,omitempty"` + ClientMsgID string `protobuf:"bytes,12,opt,name=ClientMsgID" json:"clientMsgID"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -727,7 +546,7 @@ func (m *MsgFormat) Reset() { *m = MsgFormat{} } func (m *MsgFormat) String() string { return proto.CompactTextString(m) } func (*MsgFormat) ProtoMessage() {} func (*MsgFormat) Descriptor() ([]byte, []int) { - return fileDescriptor_chat_955d1f0dcca586dd, []int{8} + return fileDescriptor_chat_e46047b47969b559, []int{9} } func (m *MsgFormat) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MsgFormat.Unmarshal(m, b) @@ -844,7 +663,7 @@ func (m *SendMsgReq) Reset() { *m = SendMsgReq{} } func (m *SendMsgReq) String() string { return proto.CompactTextString(m) } func (*SendMsgReq) ProtoMessage() {} func (*SendMsgReq) Descriptor() ([]byte, []int) { - return fileDescriptor_chat_955d1f0dcca586dd, []int{9} + return fileDescriptor_chat_e46047b47969b559, []int{10} } func (m *SendMsgReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SendMsgReq.Unmarshal(m, b) @@ -901,7 +720,7 @@ func (m *SendMsgResp) Reset() { *m = SendMsgResp{} } func (m *SendMsgResp) String() string { return proto.CompactTextString(m) } func (*SendMsgResp) ProtoMessage() {} func (*SendMsgResp) Descriptor() ([]byte, []int) { - return fileDescriptor_chat_955d1f0dcca586dd, []int{10} + return fileDescriptor_chat_e46047b47969b559, []int{11} } func (m *SendMsgResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SendMsgResp.Unmarshal(m, b) @@ -964,8 +783,9 @@ func (m *SendMsgResp) GetSendTime() int64 { } func init() { - proto.RegisterType((*WSToMsgSvrChatMsg)(nil), "pbChat.WSToMsgSvrChatMsg") - proto.RegisterType((*MsgSvrToPushSvrChatMsg)(nil), "pbChat.MsgSvrToPushSvrChatMsg") + proto.RegisterType((*MsgDataToMQ)(nil), "pbChat.MsgDataToMQ") + proto.RegisterType((*MsgDataToDB)(nil), "pbChat.MsgDataToDB") + proto.RegisterType((*PushMsgDataToMQ)(nil), "pbChat.PushMsgDataToMQ") proto.RegisterType((*PullMessageReq)(nil), "pbChat.PullMessageReq") proto.RegisterType((*PullMessageResp)(nil), "pbChat.PullMessageResp") proto.RegisterType((*PullMessageBySeqListReq)(nil), "pbChat.PullMessageBySeqListReq") @@ -977,66 +797,227 @@ func init() { proto.RegisterType((*SendMsgResp)(nil), "pbChat.SendMsgResp") } -func init() { proto.RegisterFile("chat.proto", fileDescriptor_chat_955d1f0dcca586dd) } - -var fileDescriptor_chat_955d1f0dcca586dd = []byte{ - // 927 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0x56, 0xcb, 0x6e, 0xe3, 0x36, - 0x14, 0x85, 0x2d, 0x3f, 0xe2, 0x6b, 0xe7, 0xc5, 0x09, 0x32, 0x84, 0x5b, 0xb4, 0xae, 0x30, 0x2d, - 0x8c, 0x2e, 0x12, 0x20, 0xdd, 0x14, 0x5d, 0x14, 0xe8, 0xc4, 0x49, 0xa0, 0x62, 0x94, 0x04, 0xb2, - 0x07, 0x5d, 0x06, 0x1a, 0x9b, 0x56, 0x04, 0xdb, 0xa2, 0x4c, 0x32, 0xc9, 0xcc, 0xa6, 0xbf, 0xd0, - 0x6d, 0x7f, 0xa8, 0x1f, 0xd3, 0x5f, 0x28, 0x50, 0xa0, 0xb8, 0xa4, 0x14, 0xeb, 0x11, 0x27, 0xc1, - 0x14, 0x33, 0xcb, 0x73, 0x78, 0x79, 0x49, 0xdd, 0x73, 0x78, 0x6c, 0x80, 0xf1, 0xb5, 0xaf, 0x0e, - 0x62, 0xc1, 0x15, 0x27, 0x8d, 0xf8, 0xdd, 0xf1, 0xb5, 0xaf, 0xba, 0xdf, 0x5c, 0xc4, 0x2c, 0xba, - 0x72, 0xdc, 0xc3, 0x78, 0x16, 0x1c, 0xea, 0xa5, 0x43, 0x39, 0x99, 0x5d, 0xdd, 0xc9, 0xc3, 0x3b, - 0x69, 0x4a, 0xed, 0x3f, 0x6a, 0xb0, 0xfb, 0xdb, 0x70, 0xc4, 0x5d, 0x19, 0x0c, 0x6f, 0x05, 0xee, - 0x72, 0x65, 0x40, 0xf6, 0xa1, 0x31, 0x64, 0xd1, 0xc4, 0x19, 0xd0, 0x4a, 0xaf, 0xd2, 0x6f, 0x79, - 0x09, 0x42, 0xde, 0x63, 0xe3, 0x5b, 0x67, 0x40, 0xab, 0x86, 0x37, 0x88, 0x50, 0x68, 0x1e, 0xf3, - 0x48, 0xb1, 0x48, 0x51, 0x4b, 0x2f, 0xa4, 0x90, 0x74, 0x61, 0x03, 0xf7, 0x8e, 0xc2, 0x05, 0xa3, - 0xb5, 0x5e, 0xa5, 0x6f, 0x79, 0xf7, 0x18, 0x77, 0xb9, 0x32, 0x38, 0x15, 0x7c, 0x41, 0xeb, 0xbd, - 0x4a, 0xbf, 0xee, 0xa5, 0x90, 0x7c, 0x07, 0x5b, 0x58, 0xc5, 0xc4, 0x79, 0x38, 0x9e, 0x9d, 0xfb, - 0x0b, 0x46, 0x1b, 0xba, 0x6d, 0x81, 0x25, 0xaf, 0x60, 0xd3, 0x30, 0xa7, 0xfe, 0x98, 0xbd, 0xf5, - 0xde, 0xd0, 0xa6, 0x2e, 0xcb, 0x93, 0xa4, 0x07, 0xed, 0xe4, 0x3a, 0xa3, 0x0f, 0x31, 0xa3, 0x1b, - 0xfa, 0xac, 0x2c, 0x85, 0x15, 0x43, 0x26, 0x65, 0xc8, 0x23, 0x5d, 0xd1, 0x32, 0x15, 0x19, 0x0a, - 0x2b, 0x2e, 0x62, 0x26, 0x7c, 0x15, 0xf2, 0xc8, 0x19, 0x50, 0xd0, 0xe7, 0x64, 0x29, 0xb2, 0x07, - 0x75, 0x57, 0x06, 0xce, 0x80, 0xb6, 0xf5, 0x9a, 0x01, 0xc8, 0x8e, 0xf8, 0x8c, 0x45, 0xb4, 0x63, - 0x58, 0x0d, 0x74, 0xb7, 0xe9, 0x74, 0x1e, 0x46, 0xcc, 0x89, 0xa6, 0x9c, 0x6e, 0x26, 0xdd, 0x56, - 0x14, 0xce, 0xe6, 0x22, 0xc6, 0xce, 0x92, 0x6e, 0x99, 0x89, 0x26, 0x90, 0x7c, 0x05, 0x70, 0x39, - 0xf7, 0xd5, 0x94, 0x8b, 0x85, 0x33, 0xa0, 0xdb, 0xfa, 0xaa, 0x19, 0x86, 0x7c, 0x09, 0xad, 0x53, - 0x2e, 0xc6, 0xec, 0x4d, 0x28, 0x15, 0xdd, 0xe9, 0x59, 0xfd, 0x96, 0xb7, 0x22, 0xf4, 0x2c, 0xe6, - 0x21, 0x8b, 0x94, 0xb9, 0xeb, 0xae, 0x39, 0x39, 0x43, 0xd9, 0xff, 0x58, 0xb0, 0x6f, 0xdc, 0x30, - 0xe2, 0x97, 0x37, 0xf2, 0xfa, 0x93, 0xd8, 0x82, 0x42, 0x13, 0x6b, 0x86, 0x6c, 0x99, 0xb8, 0x22, - 0x85, 0x39, 0xc3, 0xd4, 0xd7, 0x1b, 0xa6, 0xf1, 0x94, 0x61, 0x9a, 0xcf, 0x33, 0xcc, 0xc6, 0x33, - 0x0c, 0xd3, 0x7a, 0xd2, 0x30, 0xf0, 0xa4, 0x61, 0xda, 0x8f, 0x18, 0xa6, 0x93, 0x35, 0xcc, 0xa7, - 0xb4, 0x46, 0x41, 0xfc, 0x9d, 0xb2, 0xf8, 0xbf, 0xc3, 0xd6, 0xe5, 0xcd, 0x7c, 0xee, 0x32, 0x29, - 0xfd, 0x80, 0x79, 0x6c, 0x89, 0xda, 0xbe, 0x95, 0x4c, 0xac, 0x34, 0x37, 0xc8, 0xe8, 0xb4, 0x7c, - 0xcd, 0x82, 0x30, 0xd2, 0xaa, 0x6b, 0x9d, 0x0c, 0x36, 0x3e, 0x59, 0x9e, 0x44, 0x13, 0x2d, 0xbb, - 0xe5, 0x25, 0xa8, 0x38, 0x93, 0x5a, 0x69, 0x26, 0xf6, 0xdf, 0x15, 0xd8, 0xce, 0x5d, 0x40, 0xc6, - 0xf8, 0xbd, 0x27, 0x42, 0x1c, 0xf3, 0x09, 0xd3, 0x57, 0xa8, 0x7b, 0x29, 0xc4, 0x73, 0x4e, 0x84, - 0x70, 0x65, 0x90, 0xfa, 0xce, 0x20, 0xe4, 0x5d, 0xff, 0x3d, 0x9a, 0x2b, 0x39, 0xdf, 0x20, 0xcd, - 0x87, 0xd1, 0xca, 0x74, 0x09, 0x22, 0x3f, 0xc1, 0xe6, 0x30, 0x8c, 0x82, 0x39, 0xc3, 0x6f, 0xc3, - 0x76, 0xf5, 0x9e, 0xd5, 0x6f, 0x1f, 0xed, 0x1d, 0x98, 0x1c, 0x3d, 0x38, 0xf3, 0xd5, 0x35, 0x13, - 0xa7, 0x5c, 0x2c, 0x7c, 0xe5, 0xe5, 0x4b, 0xc9, 0x8f, 0xd0, 0x39, 0x13, 0xfc, 0x26, 0x4e, 0xb7, - 0x36, 0x1e, 0xd9, 0x9a, 0xab, 0xb4, 0x17, 0xf0, 0x32, 0xf3, 0xa9, 0xaf, 0x3f, 0x0c, 0xd9, 0x12, - 0x9f, 0xe8, 0x63, 0x43, 0x2f, 0x0c, 0xb0, 0x5a, 0x36, 0x15, 0x85, 0xa6, 0x34, 0x7d, 0xa8, 0xd5, - 0xb3, 0xf0, 0x61, 0x25, 0xd0, 0x3e, 0x07, 0x72, 0xc6, 0x94, 0xeb, 0xbf, 0xff, 0x25, 0x9a, 0x98, - 0xef, 0xfe, 0x5f, 0x27, 0xd9, 0x77, 0xf0, 0xa2, 0xd4, 0xef, 0x73, 0xa8, 0x65, 0x9f, 0x40, 0x27, - 0x3b, 0x55, 0xb2, 0x05, 0xd5, 0xfb, 0xeb, 0x57, 0x9d, 0x01, 0xf9, 0x16, 0x6a, 0xfa, 0xfb, 0xab, - 0x5a, 0x89, 0xdd, 0x54, 0x09, 0x8c, 0x0a, 0x23, 0x83, 0x5e, 0xb6, 0xff, 0xad, 0x42, 0xeb, 0x9e, - 0xfb, 0x98, 0x68, 0x4b, 0xa3, 0xc8, 0xca, 0x47, 0x51, 0x21, 0x3c, 0x6a, 0x6b, 0xc2, 0x43, 0xdc, - 0x6a, 0x17, 0x38, 0x03, 0x9d, 0x72, 0x2d, 0x2f, 0x4b, 0x65, 0x83, 0xb3, 0x91, 0x0f, 0xce, 0x1d, - 0xb0, 0x70, 0x22, 0x4d, 0x3d, 0x11, 0xab, 0x18, 0x98, 0x1b, 0x85, 0xc0, 0xfc, 0x1e, 0x76, 0x4c, - 0xb2, 0x65, 0x62, 0xc1, 0xa4, 0x59, 0x89, 0x7f, 0x20, 0x42, 0xe1, 0x79, 0x11, 0xda, 0x5e, 0x17, - 0xa1, 0x99, 0xa8, 0xe9, 0x94, 0xa3, 0x46, 0x01, 0xe0, 0x16, 0x57, 0x06, 0xe8, 0xc3, 0x3d, 0xa8, - 0x2b, 0xfd, 0x3b, 0x69, 0xc6, 0x6f, 0x00, 0x76, 0xe1, 0x65, 0x17, 0x66, 0x28, 0x72, 0x00, 0xcd, - 0x85, 0x0c, 0x06, 0xbe, 0xf2, 0xb5, 0x0e, 0xf8, 0xf2, 0x38, 0xfe, 0xe9, 0x09, 0x17, 0x57, 0x72, - 0x32, 0x43, 0xd1, 0x71, 0xcd, 0x4b, 0x8b, 0xec, 0xbf, 0x2a, 0x38, 0xfc, 0xe4, 0xd8, 0x8f, 0xb2, - 0xeb, 0x2b, 0xd8, 0xf4, 0xd8, 0xd2, 0x99, 0xb0, 0x48, 0x85, 0xd3, 0x90, 0x89, 0x44, 0xff, 0x3c, - 0x59, 0xd4, 0xb8, 0x56, 0xd6, 0xb8, 0x30, 0xa1, 0x7a, 0x69, 0x42, 0xa8, 0xac, 0x4c, 0x95, 0x6d, - 0x18, 0x65, 0x53, 0x7c, 0xf4, 0x67, 0x15, 0x6a, 0x68, 0x6b, 0xf2, 0x2b, 0x6c, 0x17, 0x9e, 0x21, - 0xe9, 0xde, 0x87, 0x4f, 0xe9, 0xbd, 0x77, 0xbf, 0x58, 0xbb, 0x26, 0x63, 0xf2, 0x33, 0xb4, 0x33, - 0x89, 0x44, 0xf6, 0xd3, 0xda, 0xfc, 0x4f, 0x42, 0xf7, 0xe5, 0x83, 0xbc, 0x8c, 0xc9, 0x25, 0xec, - 0x3d, 0x94, 0x68, 0xe4, 0xeb, 0x07, 0x36, 0x64, 0xf3, 0x6e, 0x7d, 0xc7, 0x23, 0x68, 0x26, 0x6a, - 0x11, 0x92, 0xd6, 0xac, 0x5c, 0xd3, 0x7d, 0x51, 0xe2, 0x64, 0xfc, 0xae, 0xa1, 0xff, 0xd9, 0xfe, - 0xf0, 0x5f, 0x00, 0x00, 0x00, 0xff, 0xff, 0x9c, 0x2f, 0xc4, 0xa9, 0x12, 0x0b, 0x00, 0x00, +// 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 Chat service + +type ChatClient interface { + GetMaxAndMinSeq(ctx context.Context, in *GetMaxAndMinSeqReq, opts ...grpc.CallOption) (*GetMaxAndMinSeqResp, error) + PullMessage(ctx context.Context, in *PullMessageReq, opts ...grpc.CallOption) (*PullMessageResp, error) + PullMessageBySeqList(ctx context.Context, in *PullMessageBySeqListReq, opts ...grpc.CallOption) (*PullMessageResp, error) + SendMsg(ctx context.Context, in *SendMsgReq, opts ...grpc.CallOption) (*SendMsgResp, error) +} + +type chatClient struct { + cc *grpc.ClientConn +} + +func NewChatClient(cc *grpc.ClientConn) ChatClient { + return &chatClient{cc} +} + +func (c *chatClient) GetMaxAndMinSeq(ctx context.Context, in *GetMaxAndMinSeqReq, opts ...grpc.CallOption) (*GetMaxAndMinSeqResp, error) { + out := new(GetMaxAndMinSeqResp) + err := grpc.Invoke(ctx, "/pbChat.Chat/GetMaxAndMinSeq", in, out, c.cc, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *chatClient) PullMessage(ctx context.Context, in *PullMessageReq, opts ...grpc.CallOption) (*PullMessageResp, error) { + out := new(PullMessageResp) + err := grpc.Invoke(ctx, "/pbChat.Chat/PullMessage", in, out, c.cc, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *chatClient) PullMessageBySeqList(ctx context.Context, in *PullMessageBySeqListReq, opts ...grpc.CallOption) (*PullMessageResp, error) { + out := new(PullMessageResp) + err := grpc.Invoke(ctx, "/pbChat.Chat/PullMessageBySeqList", in, out, c.cc, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *chatClient) SendMsg(ctx context.Context, in *SendMsgReq, opts ...grpc.CallOption) (*SendMsgResp, error) { + out := new(SendMsgResp) + err := grpc.Invoke(ctx, "/pbChat.Chat/SendMsg", in, out, c.cc, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +// Server API for Chat service + +type ChatServer interface { + GetMaxAndMinSeq(context.Context, *GetMaxAndMinSeqReq) (*GetMaxAndMinSeqResp, error) + PullMessage(context.Context, *PullMessageReq) (*PullMessageResp, error) + PullMessageBySeqList(context.Context, *PullMessageBySeqListReq) (*PullMessageResp, error) + SendMsg(context.Context, *SendMsgReq) (*SendMsgResp, error) +} + +func RegisterChatServer(s *grpc.Server, srv ChatServer) { + s.RegisterService(&_Chat_serviceDesc, srv) +} + +func _Chat_GetMaxAndMinSeq_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetMaxAndMinSeqReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ChatServer).GetMaxAndMinSeq(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/pbChat.Chat/GetMaxAndMinSeq", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ChatServer).GetMaxAndMinSeq(ctx, req.(*GetMaxAndMinSeqReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _Chat_PullMessage_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(PullMessageReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ChatServer).PullMessage(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/pbChat.Chat/PullMessage", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ChatServer).PullMessage(ctx, req.(*PullMessageReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _Chat_PullMessageBySeqList_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(PullMessageBySeqListReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ChatServer).PullMessageBySeqList(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/pbChat.Chat/PullMessageBySeqList", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ChatServer).PullMessageBySeqList(ctx, req.(*PullMessageBySeqListReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _Chat_SendMsg_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(SendMsgReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(ChatServer).SendMsg(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/pbChat.Chat/SendMsg", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(ChatServer).SendMsg(ctx, req.(*SendMsgReq)) + } + return interceptor(ctx, in, info, handler) +} + +var _Chat_serviceDesc = grpc.ServiceDesc{ + ServiceName: "pbChat.Chat", + HandlerType: (*ChatServer)(nil), + Methods: []grpc.MethodDesc{ + { + MethodName: "GetMaxAndMinSeq", + Handler: _Chat_GetMaxAndMinSeq_Handler, + }, + { + MethodName: "PullMessage", + Handler: _Chat_PullMessage_Handler, + }, + { + MethodName: "PullMessageBySeqList", + Handler: _Chat_PullMessageBySeqList_Handler, + }, + { + MethodName: "SendMsg", + Handler: _Chat_SendMsg_Handler, + }, + }, + Streams: []grpc.StreamDesc{}, + Metadata: "chat/chat.proto", +} + +func init() { proto.RegisterFile("chat/chat.proto", fileDescriptor_chat_e46047b47969b559) } + +var fileDescriptor_chat_e46047b47969b559 = []byte{ + // 766 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0x56, 0xcd, 0x4e, 0xdb, 0x4a, + 0x14, 0x56, 0xec, 0x38, 0x81, 0x13, 0x42, 0xb8, 0x03, 0x02, 0x2b, 0x77, 0x71, 0x73, 0x2d, 0xee, + 0x15, 0xea, 0x22, 0x91, 0xe8, 0xa6, 0x6a, 0xd5, 0x4a, 0x0d, 0x09, 0x28, 0x15, 0x86, 0xd4, 0x81, + 0x4d, 0x37, 0xc8, 0xc4, 0x83, 0x63, 0x25, 0xfe, 0xc9, 0xcc, 0x84, 0x9f, 0x4d, 0x9f, 0xa3, 0x2f, + 0xd4, 0x87, 0xe9, 0x43, 0x54, 0xaa, 0x66, 0xc6, 0x0e, 0x93, 0x18, 0x10, 0x6a, 0x25, 0x36, 0x28, + 0xdf, 0x37, 0xe7, 0xf7, 0x3b, 0x67, 0xc6, 0x40, 0x6d, 0x38, 0x72, 0x59, 0x8b, 0xff, 0x69, 0x26, + 0x24, 0x66, 0x31, 0x2a, 0x25, 0x97, 0x07, 0x23, 0x97, 0xd5, 0xff, 0x3d, 0x4d, 0x70, 0x74, 0xd1, + 0xb3, 0x5b, 0xc9, 0xd8, 0x6f, 0x89, 0xa3, 0x16, 0xf5, 0xc6, 0x17, 0x37, 0xb4, 0x75, 0x43, 0xa5, + 0xa9, 0x35, 0x83, 0x8a, 0x4d, 0xfd, 0x8e, 0xcb, 0xdc, 0xb3, 0xd8, 0xfe, 0x8c, 0xb6, 0xc0, 0x60, + 0xf1, 0x18, 0x47, 0x66, 0xa1, 0x51, 0xd8, 0x5b, 0x75, 0x24, 0x40, 0x0d, 0xa8, 0xc4, 0x09, 0x26, + 0x2e, 0x0b, 0xe2, 0xa8, 0xd7, 0x31, 0x35, 0x71, 0xa6, 0x52, 0xa8, 0x09, 0xe5, 0x50, 0x86, 0x31, + 0xf5, 0x46, 0x61, 0xaf, 0xb2, 0xbf, 0xd5, 0x8c, 0x79, 0xee, 0x20, 0xbc, 0xa0, 0xde, 0xb8, 0x99, + 0xa6, 0x70, 0x32, 0x23, 0xeb, 0xbd, 0x92, 0xb6, 0xd3, 0x56, 0xdd, 0x0b, 0xcf, 0x71, 0x1f, 0x42, + 0xad, 0x3f, 0xa3, 0x23, 0xb5, 0xf2, 0x06, 0x54, 0x4e, 0x95, 0x1a, 0x65, 0xfd, 0x2a, 0xa5, 0x26, + 0xd1, 0x9e, 0x93, 0xe4, 0x2b, 0xac, 0xf7, 0x67, 0x93, 0x89, 0x8d, 0x29, 0x75, 0x7d, 0xec, 0xe0, + 0x29, 0xda, 0x86, 0xd2, 0x39, 0xc5, 0x64, 0x1e, 0x3e, 0x45, 0xa8, 0x0e, 0x2b, 0x03, 0x3c, 0x6d, + 0x63, 0x3f, 0x88, 0x44, 0x68, 0xdd, 0x99, 0x63, 0xee, 0x33, 0xc0, 0xd3, 0x6e, 0xe4, 0x09, 0x61, + 0x74, 0x27, 0x45, 0xcb, 0xf5, 0x16, 0x73, 0xf5, 0x5a, 0x3f, 0x0a, 0xbc, 0x4b, 0xa5, 0x00, 0x9a, + 0x20, 0x13, 0xca, 0x5d, 0x42, 0x0e, 0x62, 0x0f, 0x8b, 0x12, 0x0c, 0x27, 0x83, 0x3c, 0x4f, 0x97, + 0x10, 0x9b, 0xfa, 0xe9, 0x78, 0x52, 0xc4, 0x79, 0xdb, 0xbd, 0x1d, 0xe0, 0x69, 0x96, 0x5f, 0x22, + 0xc1, 0x07, 0x11, 0xe7, 0x8b, 0x29, 0x2f, 0x10, 0x7a, 0x0b, 0xd5, 0x41, 0x10, 0xf9, 0x13, 0xcc, + 0x7b, 0xe3, 0xe1, 0x8c, 0x86, 0x2e, 0xb4, 0x92, 0x3b, 0xd5, 0x3c, 0x72, 0xd9, 0x08, 0x93, 0xc3, + 0x98, 0x84, 0x2e, 0x73, 0x16, 0x4d, 0xd1, 0x1b, 0x58, 0x3b, 0x22, 0xf1, 0x2c, 0xc9, 0x5c, 0x4b, + 0x4f, 0xb8, 0x2e, 0x58, 0x5a, 0x21, 0xec, 0x28, 0xad, 0xb6, 0xef, 0x06, 0x78, 0x7a, 0x1c, 0x50, + 0xf6, 0x94, 0xe8, 0x4b, 0x02, 0x6a, 0xf9, 0x81, 0x9b, 0x50, 0xa6, 0x32, 0x8e, 0xa9, 0x37, 0xf4, + 0x3d, 0xdd, 0xc9, 0xa0, 0x75, 0x02, 0xe8, 0x08, 0x33, 0xdb, 0xbd, 0xfd, 0x18, 0x79, 0xb2, 0xef, + 0x3f, 0xca, 0x64, 0xdd, 0xc0, 0x66, 0x2e, 0xde, 0x4b, 0x4c, 0xcb, 0xea, 0xc2, 0x9a, 0xaa, 0x2a, + 0x5a, 0x07, 0x6d, 0x5e, 0xbe, 0xd6, 0xeb, 0xa0, 0xff, 0xa0, 0x28, 0xfa, 0xd7, 0xc4, 0x24, 0xfe, + 0xca, 0x26, 0x61, 0x53, 0x3f, 0x1d, 0x83, 0x38, 0xb6, 0x7e, 0x6a, 0xb0, 0x3a, 0xe7, 0xe4, 0xca, + 0x46, 0xde, 0xbd, 0x0e, 0x12, 0x71, 0xde, 0xc1, 0xc3, 0xeb, 0xb9, 0x04, 0x29, 0xe2, 0x6d, 0x72, + 0x67, 0x12, 0x87, 0xa2, 0x6a, 0xc3, 0xc9, 0x20, 0x57, 0xee, 0x20, 0x8e, 0x18, 0x8e, 0xd8, 0xd9, + 0x5d, 0x82, 0x45, 0xed, 0x86, 0xa3, 0x52, 0xdc, 0x62, 0x80, 0xc9, 0xb5, 0xd8, 0x82, 0x5e, 0xc7, + 0x34, 0xa4, 0xb6, 0x0a, 0xc5, 0xa3, 0xa7, 0x0e, 0x66, 0x49, 0x9c, 0x66, 0x10, 0x6d, 0x80, 0xce, + 0x15, 0x29, 0x0b, 0x45, 0xf8, 0x4f, 0x79, 0x11, 0x23, 0xef, 0x2c, 0x08, 0xb1, 0xb9, 0x92, 0x5d, + 0x44, 0x89, 0xd1, 0x2b, 0xd8, 0xe0, 0xbf, 0x31, 0xe9, 0x4f, 0x5c, 0x76, 0x15, 0x93, 0xb0, 0xd7, + 0x31, 0x57, 0x45, 0x41, 0x39, 0x1e, 0xfd, 0x0f, 0xeb, 0x92, 0x3b, 0x09, 0x86, 0xe3, 0x13, 0x37, + 0xc4, 0x26, 0x88, 0xd4, 0x4b, 0x2c, 0xda, 0x85, 0xaa, 0x64, 0x0e, 0xdd, 0x21, 0x3e, 0x77, 0x8e, + 0xcd, 0x8a, 0x30, 0x5b, 0x24, 0x85, 0x0a, 0x93, 0x00, 0x47, 0x4c, 0xf6, 0xb8, 0x26, 0x7b, 0x54, + 0x28, 0x8b, 0x01, 0x70, 0x17, 0x9b, 0xfa, 0x7c, 0x0f, 0x5f, 0xea, 0x11, 0xfe, 0x5e, 0xe0, 0xe2, + 0xa7, 0x69, 0x7f, 0x6b, 0x5d, 0x77, 0xa1, 0xea, 0xe0, 0x69, 0xcf, 0xc3, 0x11, 0x0b, 0xae, 0x02, + 0x4c, 0xd2, 0xf9, 0x2f, 0x92, 0xcb, 0x33, 0x2e, 0xe6, 0x67, 0xbc, 0xa4, 0x90, 0x91, 0x53, 0x88, + 0x4f, 0x96, 0x66, 0x93, 0x2d, 0xc9, 0xc9, 0x66, 0x78, 0xff, 0x9b, 0x06, 0x45, 0xbe, 0xd6, 0xe8, + 0x13, 0xd4, 0x96, 0xae, 0x21, 0xaa, 0xcf, 0x1f, 0x9f, 0xdc, 0x7d, 0xaf, 0xff, 0xfd, 0xe8, 0x19, + 0x4d, 0xd0, 0x07, 0xa8, 0x28, 0x2f, 0x12, 0xda, 0xce, 0x6c, 0x17, 0x3f, 0x09, 0xf5, 0x9d, 0x07, + 0x79, 0x9a, 0xa0, 0x3e, 0x6c, 0x3d, 0xf4, 0xa2, 0xa1, 0x7f, 0x1e, 0x70, 0x50, 0xdf, 0xbb, 0xc7, + 0x23, 0xee, 0x43, 0x39, 0x9d, 0x16, 0x42, 0x99, 0xcd, 0xfd, 0xd6, 0xd4, 0x37, 0x73, 0x1c, 0x4d, + 0xda, 0xb5, 0x2f, 0xd5, 0xa6, 0xf8, 0xcf, 0xe0, 0x9d, 0x3c, 0xbc, 0x2c, 0x89, 0xcf, 0xfe, 0xeb, + 0x5f, 0x01, 0x00, 0x00, 0xff, 0xff, 0x48, 0x7f, 0xf6, 0xd7, 0x34, 0x08, 0x00, 0x00, } From 6bdfc570a87b98e94b372d97ca940762e51fc6e2 Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Wed, 22 Dec 2021 11:14:03 +0800 Subject: [PATCH 223/814] proto file --- pkg/proto/push/push.pb.go | 179 ++++++-------------------------------- 1 file changed, 29 insertions(+), 150 deletions(-) diff --git a/pkg/proto/push/push.pb.go b/pkg/proto/push/push.pb.go index b53d2b8a1..f4ef70cfb 100644 --- a/pkg/proto/push/push.pb.go +++ b/pkg/proto/push/push.pb.go @@ -6,6 +6,7 @@ package pbPush // import "./push" 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" @@ -24,32 +25,18 @@ var _ = math.Inf const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package type PushMsgReq struct { - SendID string `protobuf:"bytes,1,opt,name=SendID" json:"SendID,omitempty"` - RecvID string `protobuf:"bytes,2,opt,name=RecvID" json:"RecvID,omitempty"` - Content string `protobuf:"bytes,3,opt,name=Content" json:"Content,omitempty"` - RecvSeq int64 `protobuf:"varint,4,opt,name=RecvSeq" json:"RecvSeq,omitempty"` - SendTime int64 `protobuf:"varint,5,opt,name=SendTime" json:"SendTime,omitempty"` - MsgFrom int32 `protobuf:"varint,6,opt,name=MsgFrom" json:"MsgFrom,omitempty"` - ContentType int32 `protobuf:"varint,7,opt,name=ContentType" json:"ContentType,omitempty"` - SessionType int32 `protobuf:"varint,8,opt,name=SessionType" json:"SessionType,omitempty"` - OperationID string `protobuf:"bytes,9,opt,name=OperationID" json:"OperationID,omitempty"` - MsgID string `protobuf:"bytes,10,opt,name=MsgID" json:"MsgID,omitempty"` - OfflineInfo string `protobuf:"bytes,11,opt,name=OfflineInfo" json:"OfflineInfo,omitempty"` - Options string `protobuf:"bytes,12,opt,name=Options" json:"Options,omitempty"` - PlatformID int32 `protobuf:"varint,13,opt,name=PlatformID" json:"PlatformID,omitempty"` - SenderNickName string `protobuf:"bytes,14,opt,name=SenderNickName" json:"SenderNickName,omitempty"` - SenderFaceURL string `protobuf:"bytes,15,opt,name=SenderFaceURL" json:"SenderFaceURL,omitempty"` - ClientMsgID string `protobuf:"bytes,16,opt,name=ClientMsgID" json:"ClientMsgID,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + OperationID string `protobuf:"bytes,1,opt,name=operationID" json:"operationID,omitempty"` + MsgData *sdk_ws.MsgData `protobuf:"bytes,2,opt,name=msgData" json:"msgData,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } func (m *PushMsgReq) Reset() { *m = PushMsgReq{} } func (m *PushMsgReq) String() string { return proto.CompactTextString(m) } func (*PushMsgReq) ProtoMessage() {} func (*PushMsgReq) Descriptor() ([]byte, []int) { - return fileDescriptor_push_e44270f7d93180b9, []int{0} + return fileDescriptor_push_e9dec9fedbbc6360, []int{0} } func (m *PushMsgReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_PushMsgReq.Unmarshal(m, b) @@ -69,62 +56,6 @@ func (m *PushMsgReq) XXX_DiscardUnknown() { var xxx_messageInfo_PushMsgReq proto.InternalMessageInfo -func (m *PushMsgReq) GetSendID() string { - if m != nil { - return m.SendID - } - return "" -} - -func (m *PushMsgReq) GetRecvID() string { - if m != nil { - return m.RecvID - } - return "" -} - -func (m *PushMsgReq) GetContent() string { - if m != nil { - return m.Content - } - return "" -} - -func (m *PushMsgReq) GetRecvSeq() int64 { - if m != nil { - return m.RecvSeq - } - return 0 -} - -func (m *PushMsgReq) GetSendTime() int64 { - if m != nil { - return m.SendTime - } - return 0 -} - -func (m *PushMsgReq) GetMsgFrom() int32 { - if m != nil { - return m.MsgFrom - } - return 0 -} - -func (m *PushMsgReq) GetContentType() int32 { - if m != nil { - return m.ContentType - } - return 0 -} - -func (m *PushMsgReq) GetSessionType() int32 { - if m != nil { - return m.SessionType - } - return 0 -} - func (m *PushMsgReq) GetOperationID() string { if m != nil { return m.OperationID @@ -132,53 +63,11 @@ func (m *PushMsgReq) GetOperationID() string { return "" } -func (m *PushMsgReq) GetMsgID() string { +func (m *PushMsgReq) GetMsgData() *sdk_ws.MsgData { if m != nil { - return m.MsgID + return m.MsgData } - return "" -} - -func (m *PushMsgReq) GetOfflineInfo() string { - if m != nil { - return m.OfflineInfo - } - return "" -} - -func (m *PushMsgReq) GetOptions() string { - if m != nil { - return m.Options - } - return "" -} - -func (m *PushMsgReq) GetPlatformID() int32 { - if m != nil { - return m.PlatformID - } - return 0 -} - -func (m *PushMsgReq) GetSenderNickName() string { - if m != nil { - return m.SenderNickName - } - return "" -} - -func (m *PushMsgReq) GetSenderFaceURL() string { - if m != nil { - return m.SenderFaceURL - } - return "" -} - -func (m *PushMsgReq) GetClientMsgID() string { - if m != nil { - return m.ClientMsgID - } - return "" + return nil } type PushMsgResp struct { @@ -192,7 +81,7 @@ func (m *PushMsgResp) Reset() { *m = PushMsgResp{} } func (m *PushMsgResp) String() string { return proto.CompactTextString(m) } func (*PushMsgResp) ProtoMessage() {} func (*PushMsgResp) Descriptor() ([]byte, []int) { - return fileDescriptor_push_e44270f7d93180b9, []int{1} + return fileDescriptor_push_e9dec9fedbbc6360, []int{1} } func (m *PushMsgResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_PushMsgResp.Unmarshal(m, b) @@ -296,32 +185,22 @@ var _PushMsgService_serviceDesc = grpc.ServiceDesc{ Metadata: "push/push.proto", } -func init() { proto.RegisterFile("push/push.proto", fileDescriptor_push_e44270f7d93180b9) } - -var fileDescriptor_push_e44270f7d93180b9 = []byte{ - // 378 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x5c, 0x92, 0x5d, 0xeb, 0xda, 0x30, - 0x14, 0xc6, 0xe9, 0xb4, 0xbe, 0x1c, 0xe7, 0xcb, 0xc2, 0x18, 0xc1, 0x8b, 0x51, 0x64, 0x0c, 0x6f, - 0xd6, 0xc1, 0x76, 0xb9, 0x9b, 0x31, 0x8b, 0x50, 0x98, 0x2f, 0xa4, 0xee, 0x66, 0x77, 0xb5, 0x9e, - 0x6a, 0x59, 0x9b, 0xc4, 0xa6, 0x0a, 0xfb, 0xd2, 0xfb, 0x0c, 0x23, 0x49, 0xd5, 0xfe, 0xbd, 0x29, - 0x7d, 0x7e, 0xe7, 0x39, 0x87, 0x27, 0xc9, 0x81, 0xb1, 0xbc, 0xa8, 0xd3, 0x67, 0xfd, 0xf1, 0x65, - 0x29, 0x2a, 0x41, 0xda, 0xfa, 0x7f, 0xf6, 0xaf, 0x05, 0xb0, 0xbd, 0xa8, 0xd3, 0x4a, 0x1d, 0x19, - 0x9e, 0xc9, 0x3b, 0xe8, 0x44, 0xc8, 0x0f, 0x61, 0x40, 0x1d, 0xcf, 0x99, 0xf7, 0x59, 0xad, 0x34, - 0x67, 0x98, 0x5c, 0xc3, 0x80, 0xbe, 0xb2, 0xdc, 0x2a, 0x42, 0xa1, 0xbb, 0x10, 0xbc, 0x42, 0x5e, - 0xd1, 0x96, 0x29, 0xdc, 0xa4, 0xae, 0x68, 0x4f, 0x84, 0x67, 0xda, 0xf6, 0x9c, 0x79, 0x8b, 0xdd, - 0x24, 0x99, 0x42, 0x4f, 0x4f, 0xdd, 0x65, 0x05, 0x52, 0xd7, 0x94, 0xee, 0x5a, 0x77, 0xad, 0xd4, - 0x71, 0x59, 0x8a, 0x82, 0x76, 0x3c, 0x67, 0xee, 0xb2, 0x9b, 0x24, 0x1e, 0x0c, 0xea, 0xd1, 0xbb, - 0xbf, 0x12, 0x69, 0xd7, 0x54, 0x9b, 0x48, 0x3b, 0x22, 0x54, 0x2a, 0x13, 0xdc, 0x38, 0x7a, 0xd6, - 0xd1, 0x40, 0xda, 0xb1, 0x91, 0x58, 0xc6, 0x55, 0x26, 0x78, 0x18, 0xd0, 0xbe, 0x49, 0xdc, 0x44, - 0xe4, 0x2d, 0xb8, 0x2b, 0x75, 0x0c, 0x03, 0x0a, 0xa6, 0x66, 0x85, 0xe9, 0x4b, 0xd3, 0x3c, 0xe3, - 0x18, 0xf2, 0x54, 0xd0, 0x41, 0xdd, 0xf7, 0x40, 0x3a, 0xf7, 0x46, 0xea, 0x19, 0x8a, 0xbe, 0xb6, - 0xf7, 0x50, 0x4b, 0xf2, 0x1e, 0x60, 0x9b, 0xc7, 0x55, 0x2a, 0xca, 0x22, 0x0c, 0xe8, 0xd0, 0x84, - 0x6a, 0x10, 0xf2, 0x11, 0x46, 0xfa, 0xf4, 0x58, 0xae, 0xb3, 0xe4, 0xcf, 0x3a, 0x2e, 0x90, 0x8e, - 0xcc, 0x80, 0x27, 0x4a, 0x3e, 0xc0, 0xd0, 0x92, 0x65, 0x9c, 0xe0, 0x2f, 0xf6, 0x93, 0x8e, 0x8d, - 0xed, 0x25, 0x34, 0xb7, 0x94, 0x67, 0xc8, 0x2b, 0x7b, 0x8a, 0x89, 0x4d, 0xda, 0x40, 0xb3, 0x4f, - 0x30, 0xb8, 0xbf, 0xb7, 0x92, 0x3a, 0x1e, 0x43, 0x75, 0xc9, 0xab, 0x85, 0x38, 0xa0, 0x79, 0x74, - 0x97, 0x35, 0xc8, 0x97, 0xef, 0x30, 0xaa, 0xed, 0x11, 0x96, 0xd7, 0x2c, 0x41, 0xe2, 0x43, 0xb7, - 0x26, 0x64, 0xe2, 0x9b, 0x7d, 0x7a, 0xec, 0xcf, 0xf4, 0xcd, 0x13, 0x51, 0xf2, 0xc7, 0xf8, 0xf7, - 0xd0, 0x37, 0x7b, 0xf7, 0x4d, 0xee, 0x35, 0xdf, 0x77, 0xcc, 0xfe, 0x7d, 0xfd, 0x1f, 0x00, 0x00, - 0xff, 0xff, 0x6b, 0x53, 0xf4, 0xd4, 0x92, 0x02, 0x00, 0x00, +func init() { proto.RegisterFile("push/push.proto", fileDescriptor_push_e9dec9fedbbc6360) } + +var fileDescriptor_push_e9dec9fedbbc6360 = []byte{ + // 221 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0xe2, 0x2f, 0x28, 0x2d, 0xce, + 0xd0, 0x07, 0x11, 0x7a, 0x05, 0x45, 0xf9, 0x25, 0xf9, 0x42, 0x2c, 0x20, 0xb6, 0x94, 0xa2, 0x7f, + 0x41, 0x6a, 0x5e, 0xbc, 0xa7, 0xaf, 0x7e, 0x41, 0x76, 0xba, 0x3e, 0x58, 0x42, 0xbf, 0x38, 0x25, + 0x3b, 0xbe, 0xbc, 0x58, 0xbf, 0xbc, 0x18, 0xa2, 0x50, 0x29, 0x8e, 0x8b, 0x2b, 0xa0, 0xb4, 0x38, + 0xc3, 0xb7, 0x38, 0x3d, 0x28, 0xb5, 0x50, 0x48, 0x81, 0x8b, 0x3b, 0xbf, 0x20, 0xb5, 0x28, 0xb1, + 0x24, 0x33, 0x3f, 0xcf, 0xd3, 0x45, 0x82, 0x51, 0x81, 0x51, 0x83, 0x33, 0x08, 0x59, 0x48, 0x48, + 0x8f, 0x8b, 0x3d, 0xb7, 0x38, 0xdd, 0x25, 0xb1, 0x24, 0x51, 0x82, 0x49, 0x81, 0x51, 0x83, 0xdb, + 0x48, 0x44, 0x2f, 0x1f, 0x64, 0x49, 0x66, 0x6e, 0x7c, 0x71, 0x4a, 0xb6, 0x9e, 0x2f, 0x44, 0x2e, + 0x08, 0xa6, 0x48, 0x49, 0x97, 0x8b, 0x1b, 0x6e, 0x7e, 0x71, 0x81, 0x90, 0x1c, 0x17, 0x57, 0x50, + 0x6a, 0x71, 0x69, 0x4e, 0x89, 0x73, 0x7e, 0x4a, 0x2a, 0xd8, 0x7c, 0xd6, 0x20, 0x24, 0x11, 0x23, + 0x07, 0x2e, 0x3e, 0xa8, 0xf2, 0xe0, 0xd4, 0xa2, 0xb2, 0xcc, 0xe4, 0x54, 0x90, 0x85, 0x50, 0x11, + 0x21, 0x01, 0x3d, 0xb0, 0x0f, 0x11, 0xee, 0x95, 0x12, 0x44, 0x13, 0x29, 0x2e, 0x70, 0xe2, 0x8f, + 0xe2, 0xd5, 0x03, 0x87, 0x84, 0x75, 0x41, 0x12, 0x48, 0x3c, 0x89, 0x0d, 0xec, 0x51, 0x63, 0x40, + 0x00, 0x00, 0x00, 0xff, 0xff, 0x02, 0x62, 0xa4, 0x3d, 0x24, 0x01, 0x00, 0x00, } From a5518eb492fccd0c37a519e833b0a9f060d9e1fb Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Wed, 22 Dec 2021 11:14:57 +0800 Subject: [PATCH 224/814] OpUserID --- internal/rpc/group/group_application_response.go | 16 +++++++++++++--- pkg/proto/group/group.proto | 2 +- 2 files changed, 14 insertions(+), 4 deletions(-) diff --git a/internal/rpc/group/group_application_response.go b/internal/rpc/group/group_application_response.go index c8a077ae9..e51339575 100644 --- a/internal/rpc/group/group_application_response.go +++ b/internal/rpc/group/group_application_response.go @@ -3,7 +3,7 @@ package group import ( "Open_IM/internal/rpc/chat" "Open_IM/pkg/common/db" - "Open_IM/pkg/common/db/mysql_model/im_mysql_model" + immsql "Open_IM/pkg/common/db/mysql_model/im_mysql_model" "Open_IM/pkg/common/log" "Open_IM/pkg/proto/group" "context" @@ -11,7 +11,7 @@ import ( func (s *groupServer) GroupApplicationResponse(_ context.Context, pb *group.GroupApplicationResponseReq) (*group.GroupApplicationResponseResp, error) { log.NewInfo(pb.OperationID, "GroupApplicationResponse args: ", pb.String()) - reply, err := im_mysql_model.GroupApplicationResponse(pb) + reply, err := immsql.GroupApplicationResponse(pb) if err != nil { log.NewError(pb.OperationID, "GroupApplicationResponse failed ", err.Error(), pb) return &group.GroupApplicationResponseResp{ErrCode: 702, ErrMsg: err.Error()}, nil @@ -33,7 +33,17 @@ func (s *groupServer) GroupApplicationResponse(_ context.Context, pb *group.Grou } } if pb.ToUserID == "0" { - chat.ApplicationProcessedNotification(pb.OperationID, pb.FromUserID) + group, err := immsql.FindGroupInfoByGroupId(pb.GroupID) + if err != nil { + + } + member, err := immsql.FindGroupMemberInfoByGroupIdAndUserId(pb.GroupID, pb.OwnerID) + if err != nil { + + } + chat.ApplicationProcessedNotification(pb.OperationID, pb.FromUserID, *group, *member, pb.HandleResult, pb.HandledMsg) + } else { + } if pb.HandleResult == 1 { diff --git a/pkg/proto/group/group.proto b/pkg/proto/group/group.proto index f767c5220..4859fc359 100644 --- a/pkg/proto/group/group.proto +++ b/pkg/proto/group/group.proto @@ -108,7 +108,7 @@ message JoinGroupReq{ message GroupApplicationResponseReq{ string OperationID = 1; - string UserID = 2; + string OpUserID = 2; string GroupID = 3; string FromUserID = 4; //请求加群:请求者,邀请加群:邀请人 string FromUserNickName = 5; From cf94122406500c8ad4d7af47c86a50c44be3cd75 Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Wed, 22 Dec 2021 11:20:10 +0800 Subject: [PATCH 225/814] proto file --- pkg/proto/sdk_ws/ws.pb.go | 1009 ++++++++++++++++++++----------------- 1 file changed, 558 insertions(+), 451 deletions(-) diff --git a/pkg/proto/sdk_ws/ws.pb.go b/pkg/proto/sdk_ws/ws.pb.go index 5a4ae90c5..1ce815b28 100644 --- a/pkg/proto/sdk_ws/ws.pb.go +++ b/pkg/proto/sdk_ws/ws.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. -// source: ws.proto +// source: sdk_ws/ws.proto -package open_im_sdk +package open_im_sdk // import "./sdk_ws" import proto "github.com/golang/protobuf/proto" import fmt "fmt" @@ -32,7 +32,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_e1a0eca386827677, []int{0} + return fileDescriptor_ws_a9634e8f434358ba, []int{0} } func (m *PullMessageBySeqListResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_PullMessageBySeqListResp.Unmarshal(m, b) @@ -91,7 +91,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_e1a0eca386827677, []int{1} + return fileDescriptor_ws_a9634e8f434358ba, []int{1} } func (m *PullMessageBySeqListReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_PullMessageBySeqListReq.Unmarshal(m, b) @@ -128,7 +128,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_e1a0eca386827677, []int{2} + return fileDescriptor_ws_a9634e8f434358ba, []int{2} } func (m *GetMaxAndMinSeqReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetMaxAndMinSeqReq.Unmarshal(m, b) @@ -160,7 +160,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_e1a0eca386827677, []int{3} + return fileDescriptor_ws_a9634e8f434358ba, []int{3} } func (m *GetMaxAndMinSeqResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetMaxAndMinSeqResp.Unmarshal(m, b) @@ -196,9 +196,9 @@ func (m *GetMaxAndMinSeqResp) GetMinSeq() int64 { type GatherFormat struct { // @inject_tag: json:"id" - ID string `protobuf:"bytes,1,opt,name=ID" json:"ID,omitempty"` + ID string `protobuf:"bytes,1,opt,name=ID" json:"id"` // @inject_tag: json:"list" - List []*MsgFormat `protobuf:"bytes,2,rep,name=List" json:"List,omitempty"` + List []*MsgFormat `protobuf:"bytes,2,rep,name=List" json:"list"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -208,7 +208,7 @@ func (m *GatherFormat) Reset() { *m = GatherFormat{} } func (m *GatherFormat) String() string { return proto.CompactTextString(m) } func (*GatherFormat) ProtoMessage() {} func (*GatherFormat) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_e1a0eca386827677, []int{4} + return fileDescriptor_ws_a9634e8f434358ba, []int{4} } func (m *GatherFormat) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GatherFormat.Unmarshal(m, b) @@ -244,29 +244,29 @@ func (m *GatherFormat) GetList() []*MsgFormat { type MsgFormat struct { // @inject_tag: json:"sendID" - SendID string `protobuf:"bytes,1,opt,name=SendID" json:"SendID,omitempty"` + SendID string `protobuf:"bytes,1,opt,name=SendID" json:"sendID"` // @inject_tag: json:"recvID" - RecvID string `protobuf:"bytes,2,opt,name=RecvID" json:"RecvID,omitempty"` + RecvID string `protobuf:"bytes,2,opt,name=RecvID" json:"recvID"` // @inject_tag: json:"msgFrom" - MsgFrom int32 `protobuf:"varint,3,opt,name=MsgFrom" json:"MsgFrom,omitempty"` + MsgFrom int32 `protobuf:"varint,3,opt,name=MsgFrom" json:"msgFrom"` // @inject_tag: json:"contentType" - ContentType int32 `protobuf:"varint,4,opt,name=ContentType" json:"ContentType,omitempty"` + ContentType int32 `protobuf:"varint,4,opt,name=ContentType" json:"contentType"` // @inject_tag: json:"serverMsgID" - ServerMsgID string `protobuf:"bytes,5,opt,name=ServerMsgID" json:"ServerMsgID,omitempty"` + ServerMsgID string `protobuf:"bytes,5,opt,name=ServerMsgID" json:"serverMsgID"` // @inject_tag: json:"content" - Content string `protobuf:"bytes,6,opt,name=Content" json:"Content,omitempty"` + Content string `protobuf:"bytes,6,opt,name=Content" json:"content"` // @inject_tag: json:"seq" - Seq int64 `protobuf:"varint,7,opt,name=Seq" json:"Seq,omitempty"` + Seq int64 `protobuf:"varint,7,opt,name=Seq" json:"seq"` // @inject_tag: json:"sendTime" - SendTime int64 `protobuf:"varint,8,opt,name=SendTime" json:"SendTime,omitempty"` + SendTime int64 `protobuf:"varint,8,opt,name=SendTime" json:"sendTime"` // @inject_tag: json:"senderPlatformID" - SenderPlatformID int32 `protobuf:"varint,9,opt,name=SenderPlatformID" json:"SenderPlatformID,omitempty"` + SenderPlatformID int32 `protobuf:"varint,9,opt,name=SenderPlatformID" json:"senderPlatformID"` // @inject_tag: json:"senderNickName" - SenderNickName string `protobuf:"bytes,10,opt,name=SenderNickName" json:"SenderNickName,omitempty"` + SenderNickName string `protobuf:"bytes,10,opt,name=SenderNickName" json:"senderNickName"` // @inject_tag: json:"senderFaceUrl" - SenderFaceURL string `protobuf:"bytes,11,opt,name=SenderFaceURL" json:"SenderFaceURL,omitempty"` + SenderFaceURL string `protobuf:"bytes,11,opt,name=SenderFaceURL" json:"senderFaceUrl"` // @inject_tag: json:"clientMsgID" - ClientMsgID string `protobuf:"bytes,12,opt,name=ClientMsgID" json:"ClientMsgID,omitempty"` + ClientMsgID string `protobuf:"bytes,12,opt,name=ClientMsgID" json:"clientMsgID"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -276,7 +276,7 @@ func (m *MsgFormat) Reset() { *m = MsgFormat{} } func (m *MsgFormat) String() string { return proto.CompactTextString(m) } func (*MsgFormat) ProtoMessage() {} func (*MsgFormat) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_e1a0eca386827677, []int{5} + return fileDescriptor_ws_a9634e8f434358ba, []int{5} } func (m *MsgFormat) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MsgFormat.Unmarshal(m, b) @@ -401,7 +401,7 @@ func (m *UserSendMsgReq) Reset() { *m = UserSendMsgReq{} } func (m *UserSendMsgReq) String() string { return proto.CompactTextString(m) } func (*UserSendMsgReq) ProtoMessage() {} func (*UserSendMsgReq) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_e1a0eca386827677, []int{6} + return fileDescriptor_ws_a9634e8f434358ba, []int{6} } func (m *UserSendMsgReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_UserSendMsgReq.Unmarshal(m, b) @@ -511,7 +511,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_e1a0eca386827677, []int{7} + return fileDescriptor_ws_a9634e8f434358ba, []int{7} } func (m *UserSendMsgResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_UserSendMsgResp.Unmarshal(m, b) @@ -553,29 +553,34 @@ func (m *UserSendMsgResp) GetSendTime() int64 { } type MsgData struct { - SendID string `protobuf:"bytes,1,opt,name=sendID" json:"sendID,omitempty"` - RecvID string `protobuf:"bytes,2,opt,name=recvID" json:"recvID,omitempty"` - SessionType int32 `protobuf:"varint,3,opt,name=sessionType" json:"sessionType,omitempty"` - MsgFrom int32 `protobuf:"varint,4,opt,name=msgFrom" json:"msgFrom,omitempty"` - ContentType int32 `protobuf:"varint,5,opt,name=contentType" json:"contentType,omitempty"` - ServerMsgID string `protobuf:"bytes,6,opt,name=serverMsgID" json:"serverMsgID,omitempty"` - Content []byte `protobuf:"bytes,7,opt,name=content,proto3" json:"content,omitempty"` - SendTime int64 `protobuf:"varint,8,opt,name=sendTime" json:"sendTime,omitempty"` - Seq int64 `protobuf:"varint,9,opt,name=seq" json:"seq,omitempty"` - SenderPlatformID int32 `protobuf:"varint,10,opt,name=senderPlatformID" json:"senderPlatformID,omitempty"` - SenderNickName string `protobuf:"bytes,11,opt,name=senderNickName" json:"senderNickName,omitempty"` - SenderFaceURL string `protobuf:"bytes,12,opt,name=senderFaceURL" json:"senderFaceURL,omitempty"` - ClientMsgID string `protobuf:"bytes,13,opt,name=clientMsgID" json:"clientMsgID,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + SendID string `protobuf:"bytes,1,opt,name=sendID" json:"sendID,omitempty"` + RecvID string `protobuf:"bytes,2,opt,name=recvID" json:"recvID,omitempty"` + GroupID string `protobuf:"bytes,3,opt,name=groupID" json:"groupID,omitempty"` + ClientMsgID string `protobuf:"bytes,4,opt,name=clientMsgID" json:"clientMsgID,omitempty"` + ServerMsgID string `protobuf:"bytes,5,opt,name=serverMsgID" json:"serverMsgID,omitempty"` + SenderPlatformID int32 `protobuf:"varint,6,opt,name=senderPlatformID" json:"senderPlatformID,omitempty"` + SenderNickName string `protobuf:"bytes,7,opt,name=senderNickName" json:"senderNickName,omitempty"` + SenderFaceURL string `protobuf:"bytes,8,opt,name=senderFaceURL" json:"senderFaceURL,omitempty"` + SessionType int32 `protobuf:"varint,9,opt,name=sessionType" json:"sessionType,omitempty"` + MsgFrom int32 `protobuf:"varint,10,opt,name=msgFrom" json:"msgFrom,omitempty"` + ContentType int32 `protobuf:"varint,11,opt,name=contentType" json:"contentType,omitempty"` + Content []byte `protobuf:"bytes,12,opt,name=content,proto3" json:"content,omitempty"` + ForceList []string `protobuf:"bytes,13,rep,name=forceList" json:"forceList,omitempty"` + Seq int64 `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"` + Options map[string]bool `protobuf:"bytes,17,rep,name=Options" json:"Options,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` + OfflinePushInfo *OfflinePushInfo `protobuf:"bytes,18,opt,name=offlinePushInfo" json:"offlinePushInfo,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } 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_e1a0eca386827677, []int{8} + return fileDescriptor_ws_a9634e8f434358ba, []int{8} } func (m *MsgData) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MsgData.Unmarshal(m, b) @@ -609,6 +614,48 @@ func (m *MsgData) GetRecvID() string { return "" } +func (m *MsgData) GetGroupID() string { + if m != nil { + return m.GroupID + } + return "" +} + +func (m *MsgData) GetClientMsgID() string { + if m != nil { + return m.ClientMsgID + } + return "" +} + +func (m *MsgData) GetServerMsgID() string { + if m != nil { + return m.ServerMsgID + } + return "" +} + +func (m *MsgData) GetSenderPlatformID() int32 { + if m != nil { + return m.SenderPlatformID + } + return 0 +} + +func (m *MsgData) GetSenderNickName() string { + if m != nil { + return m.SenderNickName + } + return "" +} + +func (m *MsgData) GetSenderFaceURL() string { + if m != nil { + return m.SenderFaceURL + } + return "" +} + func (m *MsgData) GetSessionType() int32 { if m != nil { return m.SessionType @@ -630,13 +677,6 @@ func (m *MsgData) GetContentType() int32 { return 0 } -func (m *MsgData) GetServerMsgID() string { - if m != nil { - return m.ServerMsgID - } - return "" -} - func (m *MsgData) GetContent() []byte { if m != nil { return m.Content @@ -644,11 +684,11 @@ func (m *MsgData) GetContent() []byte { return nil } -func (m *MsgData) GetSendTime() int64 { +func (m *MsgData) GetForceList() []string { if m != nil { - return m.SendTime + return m.ForceList } - return 0 + return nil } func (m *MsgData) GetSeq() int64 { @@ -658,32 +698,32 @@ func (m *MsgData) GetSeq() int64 { return 0 } -func (m *MsgData) GetSenderPlatformID() int32 { +func (m *MsgData) GetSendTime() int64 { if m != nil { - return m.SenderPlatformID + return m.SendTime } return 0 } -func (m *MsgData) GetSenderNickName() string { +func (m *MsgData) GetCreateTime() int64 { if m != nil { - return m.SenderNickName + return m.CreateTime } - return "" + return 0 } -func (m *MsgData) GetSenderFaceURL() string { +func (m *MsgData) GetOptions() map[string]bool { if m != nil { - return m.SenderFaceURL + return m.Options } - return "" + return nil } -func (m *MsgData) GetClientMsgID() string { +func (m *MsgData) GetOfflinePushInfo() *OfflinePushInfo { if m != nil { - return m.ClientMsgID + return m.OfflinePushInfo } - return "" + return nil } type OfflinePushInfo struct { @@ -701,7 +741,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_e1a0eca386827677, []int{9} + return fileDescriptor_ws_a9634e8f434358ba, []int{9} } func (m *OfflinePushInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_OfflinePushInfo.Unmarshal(m, b) @@ -775,7 +815,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_e1a0eca386827677, []int{10} + return fileDescriptor_ws_a9634e8f434358ba, []int{10} } func (m *GroupInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupInfo.Unmarshal(m, b) @@ -869,7 +909,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_e1a0eca386827677, []int{11} + return fileDescriptor_ws_a9634e8f434358ba, []int{11} } func (m *GroupMemberFullInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupMemberFullInfo.Unmarshal(m, b) @@ -941,8 +981,8 @@ func (m *GroupMemberFullInfo) GetFriendRemark() string { // private, Friends have permission to view type UserInfo struct { UserID string `protobuf:"bytes,1,opt,name=UserID" json:"UserID,omitempty"` - Name string `protobuf:"bytes,2,opt,name=Name" json:"Name,omitempty"` - Icon string `protobuf:"bytes,3,opt,name=Icon" json:"Icon,omitempty"` + Nickname string `protobuf:"bytes,2,opt,name=Nickname" json:"Nickname,omitempty"` + FaceUrl string `protobuf:"bytes,3,opt,name=FaceUrl" json:"FaceUrl,omitempty"` Gender int32 `protobuf:"varint,4,opt,name=Gender" json:"Gender,omitempty"` Mobile string `protobuf:"bytes,5,opt,name=Mobile" json:"Mobile,omitempty"` Birth string `protobuf:"bytes,6,opt,name=Birth" json:"Birth,omitempty"` @@ -956,7 +996,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_e1a0eca386827677, []int{12} + return fileDescriptor_ws_a9634e8f434358ba, []int{12} } func (m *UserInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_UserInfo.Unmarshal(m, b) @@ -983,16 +1023,16 @@ func (m *UserInfo) GetUserID() string { return "" } -func (m *UserInfo) GetName() string { +func (m *UserInfo) GetNickname() string { if m != nil { - return m.Name + return m.Nickname } return "" } -func (m *UserInfo) GetIcon() string { +func (m *UserInfo) GetFaceUrl() string { if m != nil { - return m.Icon + return m.FaceUrl } return "" } @@ -1040,7 +1080,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_e1a0eca386827677, []int{13} + return fileDescriptor_ws_a9634e8f434358ba, []int{13} } func (m *PublicUserInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_PublicUserInfo.Unmarshal(m, b) @@ -1100,7 +1140,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_e1a0eca386827677, []int{14} + return fileDescriptor_ws_a9634e8f434358ba, []int{14} } func (m *TipsComm) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_TipsComm.Unmarshal(m, b) @@ -1138,7 +1178,7 @@ func (m *TipsComm) GetDefaultTips() string { // Actively join the group type MemberEnterTips struct { Group *GroupInfo `protobuf:"bytes,1,opt,name=Group" json:"Group,omitempty"` - Member *GroupMemberFullInfo `protobuf:"bytes,2,opt,name=Member" json:"Member,omitempty"` + EntrantUser *GroupMemberFullInfo `protobuf:"bytes,2,opt,name=EntrantUser" json:"EntrantUser,omitempty"` OperationTime uint64 `protobuf:"varint,3,opt,name=OperationTime" json:"OperationTime,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` @@ -1149,7 +1189,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_e1a0eca386827677, []int{15} + return fileDescriptor_ws_a9634e8f434358ba, []int{15} } func (m *MemberEnterTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MemberEnterTips.Unmarshal(m, b) @@ -1176,9 +1216,9 @@ func (m *MemberEnterTips) GetGroup() *GroupInfo { return nil } -func (m *MemberEnterTips) GetMember() *GroupMemberFullInfo { +func (m *MemberEnterTips) GetEntrantUser() *GroupMemberFullInfo { if m != nil { - return m.Member + return m.EntrantUser } return nil } @@ -1193,7 +1233,7 @@ func (m *MemberEnterTips) GetOperationTime() uint64 { // Actively leave the group type MemberLeaveTips struct { Group *GroupInfo `protobuf:"bytes,1,opt,name=Group" json:"Group,omitempty"` - Member *GroupMemberFullInfo `protobuf:"bytes,2,opt,name=Member" json:"Member,omitempty"` + LeaverUser *GroupMemberFullInfo `protobuf:"bytes,2,opt,name=LeaverUser" json:"LeaverUser,omitempty"` OperationTime uint64 `protobuf:"varint,3,opt,name=OperationTime" json:"OperationTime,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` @@ -1204,7 +1244,7 @@ func (m *MemberLeaveTips) Reset() { *m = MemberLeaveTips{} } func (m *MemberLeaveTips) String() string { return proto.CompactTextString(m) } func (*MemberLeaveTips) ProtoMessage() {} func (*MemberLeaveTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_e1a0eca386827677, []int{16} + return fileDescriptor_ws_a9634e8f434358ba, []int{16} } func (m *MemberLeaveTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MemberLeaveTips.Unmarshal(m, b) @@ -1231,9 +1271,9 @@ func (m *MemberLeaveTips) GetGroup() *GroupInfo { return nil } -func (m *MemberLeaveTips) GetMember() *GroupMemberFullInfo { +func (m *MemberLeaveTips) GetLeaverUser() *GroupMemberFullInfo { if m != nil { - return m.Member + return m.LeaverUser } return nil } @@ -1248,7 +1288,7 @@ func (m *MemberLeaveTips) GetOperationTime() uint64 { type MemberInvitedTips struct { Group *GroupInfo `protobuf:"bytes,1,opt,name=Group" json:"Group,omitempty"` OpUser *GroupMemberFullInfo `protobuf:"bytes,2,opt,name=OpUser" json:"OpUser,omitempty"` - Member *GroupMemberFullInfo `protobuf:"bytes,3,opt,name=Member" json:"Member,omitempty"` + InvitedUser *GroupMemberFullInfo `protobuf:"bytes,3,opt,name=InvitedUser" json:"InvitedUser,omitempty"` OperationTime uint64 `protobuf:"varint,4,opt,name=OperationTime" json:"OperationTime,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` @@ -1259,7 +1299,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_e1a0eca386827677, []int{17} + return fileDescriptor_ws_a9634e8f434358ba, []int{17} } func (m *MemberInvitedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MemberInvitedTips.Unmarshal(m, b) @@ -1293,9 +1333,9 @@ func (m *MemberInvitedTips) GetOpUser() *GroupMemberFullInfo { return nil } -func (m *MemberInvitedTips) GetMember() *GroupMemberFullInfo { +func (m *MemberInvitedTips) GetInvitedUser() *GroupMemberFullInfo { if m != nil { - return m.Member + return m.InvitedUser } return nil } @@ -1310,7 +1350,7 @@ func (m *MemberInvitedTips) GetOperationTime() uint64 { type MemberKickedTips struct { Group *GroupInfo `protobuf:"bytes,1,opt,name=Group" json:"Group,omitempty"` OpUser *GroupMemberFullInfo `protobuf:"bytes,2,opt,name=OpUser" json:"OpUser,omitempty"` - Member *GroupMemberFullInfo `protobuf:"bytes,3,opt,name=Member" json:"Member,omitempty"` + KickedUser *GroupMemberFullInfo `protobuf:"bytes,3,opt,name=KickedUser" json:"KickedUser,omitempty"` OperationTime uint64 `protobuf:"varint,4,opt,name=OperationTime" json:"OperationTime,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` @@ -1321,7 +1361,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_e1a0eca386827677, []int{18} + return fileDescriptor_ws_a9634e8f434358ba, []int{18} } func (m *MemberKickedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MemberKickedTips.Unmarshal(m, b) @@ -1355,9 +1395,9 @@ func (m *MemberKickedTips) GetOpUser() *GroupMemberFullInfo { return nil } -func (m *MemberKickedTips) GetMember() *GroupMemberFullInfo { +func (m *MemberKickedTips) GetKickedUser() *GroupMemberFullInfo { if m != nil { - return m.Member + return m.KickedUser } return nil } @@ -1369,100 +1409,69 @@ func (m *MemberKickedTips) GetOperationTime() uint64 { return 0 } -type GroupMemberChangeInfo struct { +type MemberInfoChangedTips struct { ChangeType int32 `protobuf:"varint,1,opt,name=ChangeType" json:"ChangeType,omitempty"` OpUser *GroupMemberFullInfo `protobuf:"bytes,2,opt,name=OpUser" json:"OpUser,omitempty"` - Member *GroupMemberFullInfo `protobuf:"bytes,3,opt,name=Member" json:"Member,omitempty"` + FinalInfo *GroupMemberFullInfo `protobuf:"bytes,3,opt,name=FinalInfo" json:"FinalInfo,omitempty"` MuteTime uint64 `protobuf:"varint,4,opt,name=MuteTime" json:"MuteTime,omitempty"` + Group *GroupInfo `protobuf:"bytes,5,opt,name=Group" json:"Group,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` } -func (m *GroupMemberChangeInfo) Reset() { *m = GroupMemberChangeInfo{} } -func (m *GroupMemberChangeInfo) String() string { return proto.CompactTextString(m) } -func (*GroupMemberChangeInfo) ProtoMessage() {} -func (*GroupMemberChangeInfo) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_e1a0eca386827677, []int{19} +func (m *MemberInfoChangedTips) Reset() { *m = MemberInfoChangedTips{} } +func (m *MemberInfoChangedTips) String() string { return proto.CompactTextString(m) } +func (*MemberInfoChangedTips) ProtoMessage() {} +func (*MemberInfoChangedTips) Descriptor() ([]byte, []int) { + return fileDescriptor_ws_a9634e8f434358ba, []int{19} } -func (m *GroupMemberChangeInfo) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_GroupMemberChangeInfo.Unmarshal(m, b) +func (m *MemberInfoChangedTips) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_MemberInfoChangedTips.Unmarshal(m, b) } -func (m *GroupMemberChangeInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_GroupMemberChangeInfo.Marshal(b, m, deterministic) +func (m *MemberInfoChangedTips) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_MemberInfoChangedTips.Marshal(b, m, deterministic) } -func (dst *GroupMemberChangeInfo) XXX_Merge(src proto.Message) { - xxx_messageInfo_GroupMemberChangeInfo.Merge(dst, src) +func (dst *MemberInfoChangedTips) XXX_Merge(src proto.Message) { + xxx_messageInfo_MemberInfoChangedTips.Merge(dst, src) } -func (m *GroupMemberChangeInfo) XXX_Size() int { - return xxx_messageInfo_GroupMemberChangeInfo.Size(m) +func (m *MemberInfoChangedTips) XXX_Size() int { + return xxx_messageInfo_MemberInfoChangedTips.Size(m) } -func (m *GroupMemberChangeInfo) XXX_DiscardUnknown() { - xxx_messageInfo_GroupMemberChangeInfo.DiscardUnknown(m) +func (m *MemberInfoChangedTips) XXX_DiscardUnknown() { + xxx_messageInfo_MemberInfoChangedTips.DiscardUnknown(m) } -var xxx_messageInfo_GroupMemberChangeInfo proto.InternalMessageInfo +var xxx_messageInfo_MemberInfoChangedTips proto.InternalMessageInfo -func (m *GroupMemberChangeInfo) GetChangeType() int32 { +func (m *MemberInfoChangedTips) GetChangeType() int32 { if m != nil { return m.ChangeType } return 0 } -func (m *GroupMemberChangeInfo) GetOpUser() *GroupMemberFullInfo { +func (m *MemberInfoChangedTips) GetOpUser() *GroupMemberFullInfo { if m != nil { return m.OpUser } return nil } -func (m *GroupMemberChangeInfo) GetMember() *GroupMemberFullInfo { +func (m *MemberInfoChangedTips) GetFinalInfo() *GroupMemberFullInfo { if m != nil { - return m.Member + return m.FinalInfo } return nil } -func (m *GroupMemberChangeInfo) GetMuteTime() uint64 { +func (m *MemberInfoChangedTips) GetMuteTime() uint64 { if m != nil { return m.MuteTime } return 0 } -type MemberInfoChangedTips struct { - Group *GroupInfo `protobuf:"bytes,1,opt,name=Group" json:"Group,omitempty"` - MemberChanged *GroupMemberChangeInfo `protobuf:"bytes,2,opt,name=MemberChanged" json:"MemberChanged,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *MemberInfoChangedTips) Reset() { *m = MemberInfoChangedTips{} } -func (m *MemberInfoChangedTips) String() string { return proto.CompactTextString(m) } -func (*MemberInfoChangedTips) ProtoMessage() {} -func (*MemberInfoChangedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_e1a0eca386827677, []int{20} -} -func (m *MemberInfoChangedTips) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_MemberInfoChangedTips.Unmarshal(m, b) -} -func (m *MemberInfoChangedTips) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_MemberInfoChangedTips.Marshal(b, m, deterministic) -} -func (dst *MemberInfoChangedTips) XXX_Merge(src proto.Message) { - xxx_messageInfo_MemberInfoChangedTips.Merge(dst, src) -} -func (m *MemberInfoChangedTips) XXX_Size() int { - return xxx_messageInfo_MemberInfoChangedTips.Size(m) -} -func (m *MemberInfoChangedTips) XXX_DiscardUnknown() { - xxx_messageInfo_MemberInfoChangedTips.DiscardUnknown(m) -} - -var xxx_messageInfo_MemberInfoChangedTips proto.InternalMessageInfo - func (m *MemberInfoChangedTips) GetGroup() *GroupInfo { if m != nil { return m.Group @@ -1470,13 +1479,6 @@ func (m *MemberInfoChangedTips) GetGroup() *GroupInfo { return nil } -func (m *MemberInfoChangedTips) GetMemberChanged() *GroupMemberChangeInfo { - if m != nil { - return m.MemberChanged - } - return nil -} - type GroupCreatedTips struct { Group *GroupInfo `protobuf:"bytes,1,opt,name=Group" json:"Group,omitempty"` Creator *GroupMemberFullInfo `protobuf:"bytes,2,opt,name=Creator" json:"Creator,omitempty"` @@ -1491,7 +1493,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_e1a0eca386827677, []int{21} + return fileDescriptor_ws_a9634e8f434358ba, []int{20} } func (m *GroupCreatedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupCreatedTips.Unmarshal(m, b) @@ -1552,7 +1554,7 @@ func (m *GroupInfoChangedTips) Reset() { *m = GroupInfoChangedTips{} } func (m *GroupInfoChangedTips) String() string { return proto.CompactTextString(m) } func (*GroupInfoChangedTips) ProtoMessage() {} func (*GroupInfoChangedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_e1a0eca386827677, []int{22} + return fileDescriptor_ws_a9634e8f434358ba, []int{21} } func (m *GroupInfoChangedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupInfoChangedTips.Unmarshal(m, b) @@ -1606,7 +1608,7 @@ func (m *ReceiveJoinApplicationTips) Reset() { *m = ReceiveJoinApplicati func (m *ReceiveJoinApplicationTips) String() string { return proto.CompactTextString(m) } func (*ReceiveJoinApplicationTips) ProtoMessage() {} func (*ReceiveJoinApplicationTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_e1a0eca386827677, []int{23} + return fileDescriptor_ws_a9634e8f434358ba, []int{22} } func (m *ReceiveJoinApplicationTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ReceiveJoinApplicationTips.Unmarshal(m, b) @@ -1661,7 +1663,7 @@ func (m *ApplicationProcessedTips) Reset() { *m = ApplicationProcessedTi func (m *ApplicationProcessedTips) String() string { return proto.CompactTextString(m) } func (*ApplicationProcessedTips) ProtoMessage() {} func (*ApplicationProcessedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_e1a0eca386827677, []int{24} + return fileDescriptor_ws_a9634e8f434358ba, []int{23} } func (m *ApplicationProcessedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ApplicationProcessedTips.Unmarshal(m, b) @@ -1711,10 +1713,10 @@ func (m *ApplicationProcessedTips) GetReason() string { // ////////////////////friend///////////////////// type FriendInfo struct { - OwnerUserID string `protobuf:"bytes,1,opt,name=OwnerUserID" json:"OwnerUserID,omitempty"` + OwnerUser *UserInfo `protobuf:"bytes,1,opt,name=OwnerUser" json:"OwnerUser,omitempty"` Remark string `protobuf:"bytes,2,opt,name=Remark" json:"Remark,omitempty"` CreateTime uint64 `protobuf:"varint,3,opt,name=CreateTime" json:"CreateTime,omitempty"` - FriendUserInfo *UserInfo `protobuf:"bytes,4,opt,name=FriendUserInfo" json:"FriendUserInfo,omitempty"` + FriendUser *UserInfo `protobuf:"bytes,4,opt,name=FriendUser" json:"FriendUser,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -1724,7 +1726,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_e1a0eca386827677, []int{25} + return fileDescriptor_ws_a9634e8f434358ba, []int{24} } func (m *FriendInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FriendInfo.Unmarshal(m, b) @@ -1744,11 +1746,11 @@ func (m *FriendInfo) XXX_DiscardUnknown() { var xxx_messageInfo_FriendInfo proto.InternalMessageInfo -func (m *FriendInfo) GetOwnerUserID() string { +func (m *FriendInfo) GetOwnerUser() *UserInfo { if m != nil { - return m.OwnerUserID + return m.OwnerUser } - return "" + return nil } func (m *FriendInfo) GetRemark() string { @@ -1765,17 +1767,17 @@ func (m *FriendInfo) GetCreateTime() uint64 { return 0 } -func (m *FriendInfo) GetFriendUserInfo() *UserInfo { +func (m *FriendInfo) GetFriendUser() *UserInfo { if m != nil { - return m.FriendUserInfo + return m.FriendUser } return nil } type FriendApplication struct { - AddTime uint64 `protobuf:"varint,4,opt,name=AddTime" json:"AddTime,omitempty"` - AddSource string `protobuf:"bytes,5,opt,name=AddSource" json:"AddSource,omitempty"` - AddWording string `protobuf:"bytes,6,opt,name=AddWording" json:"AddWording,omitempty"` + AddTime uint64 `protobuf:"varint,1,opt,name=AddTime" json:"AddTime,omitempty"` + AddSource string `protobuf:"bytes,2,opt,name=AddSource" json:"AddSource,omitempty"` + AddWording string `protobuf:"bytes,3,opt,name=AddWording" json:"AddWording,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -1785,7 +1787,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_e1a0eca386827677, []int{26} + return fileDescriptor_ws_a9634e8f434358ba, []int{25} } func (m *FriendApplication) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FriendApplication.Unmarshal(m, b) @@ -1827,318 +1829,383 @@ func (m *FriendApplication) GetAddWording() string { } // user1 add user2 -type FriendApplicationListAddedTips struct { +type FriendApplicationAddedTips struct { OpUser *PublicUserInfo `protobuf:"bytes,1,opt,name=OpUser" json:"OpUser,omitempty"` Application *FriendApplication `protobuf:"bytes,2,opt,name=Application" json:"Application,omitempty"` OpedUser *PublicUserInfo `protobuf:"bytes,3,opt,name=OpedUser" json:"OpedUser,omitempty"` + OperationTime uint64 `protobuf:"varint,4,opt,name=OperationTime" json:"OperationTime,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` } -func (m *FriendApplicationListAddedTips) Reset() { *m = FriendApplicationListAddedTips{} } -func (m *FriendApplicationListAddedTips) String() string { return proto.CompactTextString(m) } -func (*FriendApplicationListAddedTips) ProtoMessage() {} -func (*FriendApplicationListAddedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_e1a0eca386827677, []int{27} +func (m *FriendApplicationAddedTips) Reset() { *m = FriendApplicationAddedTips{} } +func (m *FriendApplicationAddedTips) String() string { return proto.CompactTextString(m) } +func (*FriendApplicationAddedTips) ProtoMessage() {} +func (*FriendApplicationAddedTips) Descriptor() ([]byte, []int) { + return fileDescriptor_ws_a9634e8f434358ba, []int{26} } -func (m *FriendApplicationListAddedTips) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_FriendApplicationListAddedTips.Unmarshal(m, b) +func (m *FriendApplicationAddedTips) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_FriendApplicationAddedTips.Unmarshal(m, b) } -func (m *FriendApplicationListAddedTips) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_FriendApplicationListAddedTips.Marshal(b, m, deterministic) +func (m *FriendApplicationAddedTips) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_FriendApplicationAddedTips.Marshal(b, m, deterministic) } -func (dst *FriendApplicationListAddedTips) XXX_Merge(src proto.Message) { - xxx_messageInfo_FriendApplicationListAddedTips.Merge(dst, src) +func (dst *FriendApplicationAddedTips) XXX_Merge(src proto.Message) { + xxx_messageInfo_FriendApplicationAddedTips.Merge(dst, src) } -func (m *FriendApplicationListAddedTips) XXX_Size() int { - return xxx_messageInfo_FriendApplicationListAddedTips.Size(m) +func (m *FriendApplicationAddedTips) XXX_Size() int { + return xxx_messageInfo_FriendApplicationAddedTips.Size(m) } -func (m *FriendApplicationListAddedTips) XXX_DiscardUnknown() { - xxx_messageInfo_FriendApplicationListAddedTips.DiscardUnknown(m) +func (m *FriendApplicationAddedTips) XXX_DiscardUnknown() { + xxx_messageInfo_FriendApplicationAddedTips.DiscardUnknown(m) } -var xxx_messageInfo_FriendApplicationListAddedTips proto.InternalMessageInfo +var xxx_messageInfo_FriendApplicationAddedTips proto.InternalMessageInfo -func (m *FriendApplicationListAddedTips) GetOpUser() *PublicUserInfo { +func (m *FriendApplicationAddedTips) GetOpUser() *PublicUserInfo { if m != nil { return m.OpUser } return nil } -func (m *FriendApplicationListAddedTips) GetApplication() *FriendApplication { +func (m *FriendApplicationAddedTips) GetApplication() *FriendApplication { if m != nil { return m.Application } return nil } -func (m *FriendApplicationListAddedTips) GetOpedUser() *PublicUserInfo { +func (m *FriendApplicationAddedTips) GetOpedUser() *PublicUserInfo { if m != nil { return m.OpedUser } return nil } -// user2 accept -type FriendApplicationListAcceptTips struct { +func (m *FriendApplicationAddedTips) GetOperationTime() uint64 { + if m != nil { + return m.OperationTime + } + return 0 +} + +// user2 accept or reject +type FriendApplicationProcessedTips struct { OpUser *PublicUserInfo `protobuf:"bytes,1,opt,name=OpUser" json:"OpUser,omitempty"` OpedUser *PublicUserInfo `protobuf:"bytes,2,opt,name=OpedUser" json:"OpedUser,omitempty"` + Result int32 `protobuf:"varint,3,opt,name=result" json:"result,omitempty"` + OperationTime uint64 `protobuf:"varint,4,opt,name=OperationTime" json:"OperationTime,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` } -func (m *FriendApplicationListAcceptTips) Reset() { *m = FriendApplicationListAcceptTips{} } -func (m *FriendApplicationListAcceptTips) String() string { return proto.CompactTextString(m) } -func (*FriendApplicationListAcceptTips) ProtoMessage() {} -func (*FriendApplicationListAcceptTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_e1a0eca386827677, []int{28} +func (m *FriendApplicationProcessedTips) Reset() { *m = FriendApplicationProcessedTips{} } +func (m *FriendApplicationProcessedTips) String() string { return proto.CompactTextString(m) } +func (*FriendApplicationProcessedTips) ProtoMessage() {} +func (*FriendApplicationProcessedTips) Descriptor() ([]byte, []int) { + return fileDescriptor_ws_a9634e8f434358ba, []int{27} } -func (m *FriendApplicationListAcceptTips) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_FriendApplicationListAcceptTips.Unmarshal(m, b) +func (m *FriendApplicationProcessedTips) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_FriendApplicationProcessedTips.Unmarshal(m, b) } -func (m *FriendApplicationListAcceptTips) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_FriendApplicationListAcceptTips.Marshal(b, m, deterministic) +func (m *FriendApplicationProcessedTips) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_FriendApplicationProcessedTips.Marshal(b, m, deterministic) } -func (dst *FriendApplicationListAcceptTips) XXX_Merge(src proto.Message) { - xxx_messageInfo_FriendApplicationListAcceptTips.Merge(dst, src) +func (dst *FriendApplicationProcessedTips) XXX_Merge(src proto.Message) { + xxx_messageInfo_FriendApplicationProcessedTips.Merge(dst, src) } -func (m *FriendApplicationListAcceptTips) XXX_Size() int { - return xxx_messageInfo_FriendApplicationListAcceptTips.Size(m) +func (m *FriendApplicationProcessedTips) XXX_Size() int { + return xxx_messageInfo_FriendApplicationProcessedTips.Size(m) } -func (m *FriendApplicationListAcceptTips) XXX_DiscardUnknown() { - xxx_messageInfo_FriendApplicationListAcceptTips.DiscardUnknown(m) +func (m *FriendApplicationProcessedTips) XXX_DiscardUnknown() { + xxx_messageInfo_FriendApplicationProcessedTips.DiscardUnknown(m) } -var xxx_messageInfo_FriendApplicationListAcceptTips proto.InternalMessageInfo +var xxx_messageInfo_FriendApplicationProcessedTips proto.InternalMessageInfo -func (m *FriendApplicationListAcceptTips) GetOpUser() *PublicUserInfo { +func (m *FriendApplicationProcessedTips) GetOpUser() *PublicUserInfo { if m != nil { return m.OpUser } return nil } -func (m *FriendApplicationListAcceptTips) GetOpedUser() *PublicUserInfo { +func (m *FriendApplicationProcessedTips) GetOpedUser() *PublicUserInfo { if m != nil { return m.OpedUser } return nil } -// user2 reject -type FriendApplicationListRejectTips struct { - OpUser *PublicUserInfo `protobuf:"bytes,1,opt,name=OpUser" json:"OpUser,omitempty"` - OpedUser *PublicUserInfo `protobuf:"bytes,2,opt,name=OpedUser" json:"OpedUser,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` +func (m *FriendApplicationProcessedTips) GetResult() int32 { + if m != nil { + return m.Result + } + return 0 } -func (m *FriendApplicationListRejectTips) Reset() { *m = FriendApplicationListRejectTips{} } -func (m *FriendApplicationListRejectTips) String() string { return proto.CompactTextString(m) } -func (*FriendApplicationListRejectTips) ProtoMessage() {} -func (*FriendApplicationListRejectTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_e1a0eca386827677, []int{29} +func (m *FriendApplicationProcessedTips) GetOperationTime() uint64 { + if m != nil { + return m.OperationTime + } + return 0 } -func (m *FriendApplicationListRejectTips) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_FriendApplicationListRejectTips.Unmarshal(m, b) + +type FriendAddedTips struct { + Friend *FriendInfo `protobuf:"bytes,1,opt,name=Friend" json:"Friend,omitempty"` + OperationTime uint64 `protobuf:"varint,2,opt,name=OperationTime" json:"OperationTime,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (m *FriendApplicationListRejectTips) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_FriendApplicationListRejectTips.Marshal(b, m, deterministic) + +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_a9634e8f434358ba, []int{28} +} +func (m *FriendAddedTips) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_FriendAddedTips.Unmarshal(m, b) } -func (dst *FriendApplicationListRejectTips) XXX_Merge(src proto.Message) { - xxx_messageInfo_FriendApplicationListRejectTips.Merge(dst, src) +func (m *FriendAddedTips) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_FriendAddedTips.Marshal(b, m, deterministic) } -func (m *FriendApplicationListRejectTips) XXX_Size() int { - return xxx_messageInfo_FriendApplicationListRejectTips.Size(m) +func (dst *FriendAddedTips) XXX_Merge(src proto.Message) { + xxx_messageInfo_FriendAddedTips.Merge(dst, src) } -func (m *FriendApplicationListRejectTips) XXX_DiscardUnknown() { - xxx_messageInfo_FriendApplicationListRejectTips.DiscardUnknown(m) +func (m *FriendAddedTips) XXX_Size() int { + return xxx_messageInfo_FriendAddedTips.Size(m) +} +func (m *FriendAddedTips) XXX_DiscardUnknown() { + xxx_messageInfo_FriendAddedTips.DiscardUnknown(m) } -var xxx_messageInfo_FriendApplicationListRejectTips proto.InternalMessageInfo +var xxx_messageInfo_FriendAddedTips proto.InternalMessageInfo -func (m *FriendApplicationListRejectTips) GetOpUser() *PublicUserInfo { +func (m *FriendAddedTips) GetFriend() *FriendInfo { if m != nil { - return m.OpUser + return m.Friend } return nil } -func (m *FriendApplicationListRejectTips) GetOpedUser() *PublicUserInfo { +func (m *FriendAddedTips) GetOperationTime() uint64 { if m != nil { - return m.OpedUser + return m.OperationTime } - return nil + return 0 } -type FriendListAddedTips struct { +type FriendDeletedTips struct { Friend *FriendInfo `protobuf:"bytes,1,opt,name=Friend" json:"Friend,omitempty"` + OperationTime uint64 `protobuf:"varint,2,opt,name=OperationTime" json:"OperationTime,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` } -func (m *FriendListAddedTips) Reset() { *m = FriendListAddedTips{} } -func (m *FriendListAddedTips) String() string { return proto.CompactTextString(m) } -func (*FriendListAddedTips) ProtoMessage() {} -func (*FriendListAddedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_e1a0eca386827677, []int{30} +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_a9634e8f434358ba, []int{29} } -func (m *FriendListAddedTips) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_FriendListAddedTips.Unmarshal(m, b) +func (m *FriendDeletedTips) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_FriendDeletedTips.Unmarshal(m, b) } -func (m *FriendListAddedTips) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_FriendListAddedTips.Marshal(b, m, deterministic) +func (m *FriendDeletedTips) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_FriendDeletedTips.Marshal(b, m, deterministic) } -func (dst *FriendListAddedTips) XXX_Merge(src proto.Message) { - xxx_messageInfo_FriendListAddedTips.Merge(dst, src) +func (dst *FriendDeletedTips) XXX_Merge(src proto.Message) { + xxx_messageInfo_FriendDeletedTips.Merge(dst, src) } -func (m *FriendListAddedTips) XXX_Size() int { - return xxx_messageInfo_FriendListAddedTips.Size(m) +func (m *FriendDeletedTips) XXX_Size() int { + return xxx_messageInfo_FriendDeletedTips.Size(m) } -func (m *FriendListAddedTips) XXX_DiscardUnknown() { - xxx_messageInfo_FriendListAddedTips.DiscardUnknown(m) +func (m *FriendDeletedTips) XXX_DiscardUnknown() { + xxx_messageInfo_FriendDeletedTips.DiscardUnknown(m) } -var xxx_messageInfo_FriendListAddedTips proto.InternalMessageInfo +var xxx_messageInfo_FriendDeletedTips proto.InternalMessageInfo -func (m *FriendListAddedTips) GetFriend() *FriendInfo { +func (m *FriendDeletedTips) GetFriend() *FriendInfo { if m != nil { return m.Friend } return nil } -type FriendListDeletedTips struct { - Friend *FriendInfo `protobuf:"bytes,1,opt,name=Friend" json:"Friend,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` +func (m *FriendDeletedTips) GetOperationTime() uint64 { + if m != nil { + return m.OperationTime + } + return 0 +} + +type BlackInfo struct { + OwnerUser *PublicUserInfo `protobuf:"bytes,1,opt,name=OwnerUser" json:"OwnerUser,omitempty"` + CreateTime uint64 `protobuf:"varint,3,opt,name=CreateTime" json:"CreateTime,omitempty"` + BlackUser *PublicUserInfo `protobuf:"bytes,4,opt,name=BlackUser" json:"BlackUser,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (m *FriendListDeletedTips) Reset() { *m = FriendListDeletedTips{} } -func (m *FriendListDeletedTips) String() string { return proto.CompactTextString(m) } -func (*FriendListDeletedTips) ProtoMessage() {} -func (*FriendListDeletedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_e1a0eca386827677, []int{31} +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_a9634e8f434358ba, []int{30} } -func (m *FriendListDeletedTips) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_FriendListDeletedTips.Unmarshal(m, b) +func (m *BlackInfo) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_BlackInfo.Unmarshal(m, b) } -func (m *FriendListDeletedTips) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_FriendListDeletedTips.Marshal(b, m, deterministic) +func (m *BlackInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_BlackInfo.Marshal(b, m, deterministic) } -func (dst *FriendListDeletedTips) XXX_Merge(src proto.Message) { - xxx_messageInfo_FriendListDeletedTips.Merge(dst, src) +func (dst *BlackInfo) XXX_Merge(src proto.Message) { + xxx_messageInfo_BlackInfo.Merge(dst, src) } -func (m *FriendListDeletedTips) XXX_Size() int { - return xxx_messageInfo_FriendListDeletedTips.Size(m) +func (m *BlackInfo) XXX_Size() int { + return xxx_messageInfo_BlackInfo.Size(m) } -func (m *FriendListDeletedTips) XXX_DiscardUnknown() { - xxx_messageInfo_FriendListDeletedTips.DiscardUnknown(m) +func (m *BlackInfo) XXX_DiscardUnknown() { + xxx_messageInfo_BlackInfo.DiscardUnknown(m) } -var xxx_messageInfo_FriendListDeletedTips proto.InternalMessageInfo +var xxx_messageInfo_BlackInfo proto.InternalMessageInfo -func (m *FriendListDeletedTips) GetFriend() *FriendInfo { +func (m *BlackInfo) GetOwnerUser() *PublicUserInfo { if m != nil { - return m.Friend + return m.OwnerUser } return nil } -type BlackListAddTips struct { - Friend *FriendInfo `protobuf:"bytes,1,opt,name=Friend" json:"Friend,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` +func (m *BlackInfo) GetCreateTime() uint64 { + if m != nil { + return m.CreateTime + } + return 0 } -func (m *BlackListAddTips) Reset() { *m = BlackListAddTips{} } -func (m *BlackListAddTips) String() string { return proto.CompactTextString(m) } -func (*BlackListAddTips) ProtoMessage() {} -func (*BlackListAddTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_e1a0eca386827677, []int{32} +func (m *BlackInfo) GetBlackUser() *PublicUserInfo { + if m != nil { + return m.BlackUser + } + return nil +} + +type BlackAddedTips struct { + Black *BlackInfo `protobuf:"bytes,1,opt,name=Black" json:"Black,omitempty"` + OperationTime uint64 `protobuf:"varint,2,opt,name=OperationTime" json:"OperationTime,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +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_a9634e8f434358ba, []int{31} } -func (m *BlackListAddTips) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_BlackListAddTips.Unmarshal(m, b) +func (m *BlackAddedTips) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_BlackAddedTips.Unmarshal(m, b) } -func (m *BlackListAddTips) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_BlackListAddTips.Marshal(b, m, deterministic) +func (m *BlackAddedTips) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_BlackAddedTips.Marshal(b, m, deterministic) } -func (dst *BlackListAddTips) XXX_Merge(src proto.Message) { - xxx_messageInfo_BlackListAddTips.Merge(dst, src) +func (dst *BlackAddedTips) XXX_Merge(src proto.Message) { + xxx_messageInfo_BlackAddedTips.Merge(dst, src) } -func (m *BlackListAddTips) XXX_Size() int { - return xxx_messageInfo_BlackListAddTips.Size(m) +func (m *BlackAddedTips) XXX_Size() int { + return xxx_messageInfo_BlackAddedTips.Size(m) } -func (m *BlackListAddTips) XXX_DiscardUnknown() { - xxx_messageInfo_BlackListAddTips.DiscardUnknown(m) +func (m *BlackAddedTips) XXX_DiscardUnknown() { + xxx_messageInfo_BlackAddedTips.DiscardUnknown(m) } -var xxx_messageInfo_BlackListAddTips proto.InternalMessageInfo +var xxx_messageInfo_BlackAddedTips proto.InternalMessageInfo -func (m *BlackListAddTips) GetFriend() *FriendInfo { +func (m *BlackAddedTips) GetBlack() *BlackInfo { if m != nil { - return m.Friend + return m.Black } return nil } -type BlackListDeletedTips struct { - Friend *FriendInfo `protobuf:"bytes,1,opt,name=Friend" json:"Friend,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` +func (m *BlackAddedTips) GetOperationTime() uint64 { + if m != nil { + return m.OperationTime + } + return 0 } -func (m *BlackListDeletedTips) Reset() { *m = BlackListDeletedTips{} } -func (m *BlackListDeletedTips) String() string { return proto.CompactTextString(m) } -func (*BlackListDeletedTips) ProtoMessage() {} -func (*BlackListDeletedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_e1a0eca386827677, []int{33} +type BlackDeletedTips struct { + Black *BlackInfo `protobuf:"bytes,1,opt,name=Black" json:"Black,omitempty"` + OperationTime uint64 `protobuf:"varint,2,opt,name=OperationTime" json:"OperationTime,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (m *BlackListDeletedTips) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_BlackListDeletedTips.Unmarshal(m, b) + +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_a9634e8f434358ba, []int{32} +} +func (m *BlackDeletedTips) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_BlackDeletedTips.Unmarshal(m, b) } -func (m *BlackListDeletedTips) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_BlackListDeletedTips.Marshal(b, m, deterministic) +func (m *BlackDeletedTips) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_BlackDeletedTips.Marshal(b, m, deterministic) } -func (dst *BlackListDeletedTips) XXX_Merge(src proto.Message) { - xxx_messageInfo_BlackListDeletedTips.Merge(dst, src) +func (dst *BlackDeletedTips) XXX_Merge(src proto.Message) { + xxx_messageInfo_BlackDeletedTips.Merge(dst, src) } -func (m *BlackListDeletedTips) XXX_Size() int { - return xxx_messageInfo_BlackListDeletedTips.Size(m) +func (m *BlackDeletedTips) XXX_Size() int { + return xxx_messageInfo_BlackDeletedTips.Size(m) } -func (m *BlackListDeletedTips) XXX_DiscardUnknown() { - xxx_messageInfo_BlackListDeletedTips.DiscardUnknown(m) +func (m *BlackDeletedTips) XXX_DiscardUnknown() { + xxx_messageInfo_BlackDeletedTips.DiscardUnknown(m) } -var xxx_messageInfo_BlackListDeletedTips proto.InternalMessageInfo +var xxx_messageInfo_BlackDeletedTips proto.InternalMessageInfo -func (m *BlackListDeletedTips) GetFriend() *FriendInfo { +func (m *BlackDeletedTips) GetBlack() *BlackInfo { if m != nil { - return m.Friend + return m.Black } return nil } +func (m *BlackDeletedTips) GetOperationTime() uint64 { + if m != nil { + return m.OperationTime + } + return 0 +} + type FriendInfoChangedTips struct { - Friend *FriendInfo `protobuf:"bytes,1,opt,name=Friend" json:"Friend,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + Friend *FriendInfo `protobuf:"bytes,1,opt,name=Friend" json:"Friend,omitempty"` + OpUser *PublicUserInfo `protobuf:"bytes,2,opt,name=OpUser" json:"OpUser,omitempty"` + OperationTime uint64 `protobuf:"varint,3,opt,name=OperationTime" json:"OperationTime,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } 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_e1a0eca386827677, []int{34} + return fileDescriptor_ws_a9634e8f434358ba, []int{33} } func (m *FriendInfoChangedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FriendInfoChangedTips.Unmarshal(m, b) @@ -2165,19 +2232,35 @@ func (m *FriendInfoChangedTips) GetFriend() *FriendInfo { return nil } +func (m *FriendInfoChangedTips) GetOpUser() *PublicUserInfo { + if m != nil { + return m.OpUser + } + return nil +} + +func (m *FriendInfoChangedTips) GetOperationTime() uint64 { + if m != nil { + return m.OperationTime + } + return 0 +} + // ////////////////////user///////////////////// type SelfInfoUpdatedTips struct { - SelfUserInfo *UserInfo `protobuf:"bytes,1,opt,name=SelfUserInfo" json:"SelfUserInfo,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + SelfUserInfo *UserInfo `protobuf:"bytes,1,opt,name=SelfUserInfo" json:"SelfUserInfo,omitempty"` + OpUser *PublicUserInfo `protobuf:"bytes,2,opt,name=OpUser" json:"OpUser,omitempty"` + OperationTime uint64 `protobuf:"varint,3,opt,name=OperationTime" json:"OperationTime,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } func (m *SelfInfoUpdatedTips) Reset() { *m = SelfInfoUpdatedTips{} } func (m *SelfInfoUpdatedTips) String() string { return proto.CompactTextString(m) } func (*SelfInfoUpdatedTips) ProtoMessage() {} func (*SelfInfoUpdatedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_e1a0eca386827677, []int{35} + return fileDescriptor_ws_a9634e8f434358ba, []int{34} } func (m *SelfInfoUpdatedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SelfInfoUpdatedTips.Unmarshal(m, b) @@ -2204,6 +2287,20 @@ func (m *SelfInfoUpdatedTips) GetSelfUserInfo() *UserInfo { return nil } +func (m *SelfInfoUpdatedTips) GetOpUser() *PublicUserInfo { + if m != nil { + return m.OpUser + } + return nil +} + +func (m *SelfInfoUpdatedTips) GetOperationTime() uint64 { + if m != nil { + return m.OperationTime + } + return 0 +} + func init() { proto.RegisterType((*PullMessageBySeqListResp)(nil), "open_im_sdk.PullMessageBySeqListResp") proto.RegisterType((*PullMessageBySeqListReq)(nil), "open_im_sdk.PullMessageBySeqListReq") @@ -2215,6 +2312,7 @@ func init() { proto.RegisterMapType((map[string]int32)(nil), "open_im_sdk.UserSendMsgReq.OptionsEntry") proto.RegisterType((*UserSendMsgResp)(nil), "open_im_sdk.UserSendMsgResp") proto.RegisterType((*MsgData)(nil), "open_im_sdk.MsgData") + proto.RegisterMapType((map[string]bool)(nil), "open_im_sdk.MsgData.OptionsEntry") proto.RegisterType((*OfflinePushInfo)(nil), "open_im_sdk.OfflinePushInfo") proto.RegisterType((*GroupInfo)(nil), "open_im_sdk.GroupInfo") proto.RegisterType((*GroupMemberFullInfo)(nil), "open_im_sdk.GroupMemberFullInfo") @@ -2225,7 +2323,6 @@ func init() { proto.RegisterType((*MemberLeaveTips)(nil), "open_im_sdk.MemberLeaveTips") proto.RegisterType((*MemberInvitedTips)(nil), "open_im_sdk.MemberInvitedTips") proto.RegisterType((*MemberKickedTips)(nil), "open_im_sdk.MemberKickedTips") - proto.RegisterType((*GroupMemberChangeInfo)(nil), "open_im_sdk.GroupMemberChangeInfo") proto.RegisterType((*MemberInfoChangedTips)(nil), "open_im_sdk.MemberInfoChangedTips") proto.RegisterType((*GroupCreatedTips)(nil), "open_im_sdk.GroupCreatedTips") proto.RegisterType((*GroupInfoChangedTips)(nil), "open_im_sdk.GroupInfoChangedTips") @@ -2233,125 +2330,135 @@ func init() { proto.RegisterType((*ApplicationProcessedTips)(nil), "open_im_sdk.ApplicationProcessedTips") proto.RegisterType((*FriendInfo)(nil), "open_im_sdk.FriendInfo") proto.RegisterType((*FriendApplication)(nil), "open_im_sdk.FriendApplication") - proto.RegisterType((*FriendApplicationListAddedTips)(nil), "open_im_sdk.FriendApplicationListAddedTips") - proto.RegisterType((*FriendApplicationListAcceptTips)(nil), "open_im_sdk.FriendApplicationListAcceptTips") - proto.RegisterType((*FriendApplicationListRejectTips)(nil), "open_im_sdk.FriendApplicationListRejectTips") - proto.RegisterType((*FriendListAddedTips)(nil), "open_im_sdk.FriendListAddedTips") - proto.RegisterType((*FriendListDeletedTips)(nil), "open_im_sdk.FriendListDeletedTips") - proto.RegisterType((*BlackListAddTips)(nil), "open_im_sdk.BlackListAddTips") - proto.RegisterType((*BlackListDeletedTips)(nil), "open_im_sdk.BlackListDeletedTips") + proto.RegisterType((*FriendApplicationAddedTips)(nil), "open_im_sdk.FriendApplicationAddedTips") + proto.RegisterType((*FriendApplicationProcessedTips)(nil), "open_im_sdk.FriendApplicationProcessedTips") + proto.RegisterType((*FriendAddedTips)(nil), "open_im_sdk.FriendAddedTips") + proto.RegisterType((*FriendDeletedTips)(nil), "open_im_sdk.FriendDeletedTips") + proto.RegisterType((*BlackInfo)(nil), "open_im_sdk.BlackInfo") + proto.RegisterType((*BlackAddedTips)(nil), "open_im_sdk.BlackAddedTips") + proto.RegisterType((*BlackDeletedTips)(nil), "open_im_sdk.BlackDeletedTips") proto.RegisterType((*FriendInfoChangedTips)(nil), "open_im_sdk.FriendInfoChangedTips") proto.RegisterType((*SelfInfoUpdatedTips)(nil), "open_im_sdk.SelfInfoUpdatedTips") } -func init() { proto.RegisterFile("ws.proto", fileDescriptor_ws_e1a0eca386827677) } - -var fileDescriptor_ws_e1a0eca386827677 = []byte{ - // 1689 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xdc, 0x58, 0x4f, 0x6f, 0x1b, 0x45, - 0x14, 0xd7, 0x7a, 0x1d, 0xc7, 0x7e, 0x76, 0xd2, 0x74, 0x93, 0xb4, 0x4b, 0x40, 0xc5, 0x5a, 0x21, - 0x14, 0x55, 0x28, 0x88, 0xf4, 0x40, 0x5b, 0xa9, 0xa2, 0x49, 0x9c, 0xa4, 0x2e, 0x71, 0x1d, 0xad, - 0x53, 0x71, 0xac, 0x36, 0xbb, 0x63, 0x67, 0xc9, 0xfe, 0x71, 0x76, 0xd6, 0x6e, 0xf3, 0x29, 0x38, - 0x22, 0x21, 0x55, 0x70, 0x81, 0x0f, 0xc0, 0x97, 0x40, 0xe2, 0x80, 0x38, 0xc3, 0x95, 0x2b, 0x1f, - 0x01, 0x09, 0xbd, 0x99, 0xd9, 0xf5, 0x8c, 0xed, 0x26, 0xa9, 0x8b, 0x28, 0xe2, 0x36, 0xef, 0xe7, - 0x37, 0xb3, 0xbf, 0xf7, 0xde, 0xef, 0xcd, 0xbc, 0x04, 0xca, 0xcf, 0xe9, 0x46, 0x3f, 0x89, 0xd3, - 0xd8, 0xa8, 0xc6, 0x7d, 0x12, 0x3d, 0xf3, 0xc3, 0x67, 0xd4, 0x3b, 0xb5, 0x7e, 0xd6, 0xc0, 0x3c, - 0x1c, 0x04, 0x41, 0x8b, 0x50, 0xea, 0xf4, 0xc8, 0xf6, 0x79, 0x87, 0x9c, 0x1d, 0xf8, 0x34, 0xb5, - 0x09, 0xed, 0x1b, 0x37, 0xa0, 0xd4, 0x72, 0x5e, 0x74, 0xc8, 0x99, 0xa9, 0xd5, 0xb5, 0x75, 0xdd, - 0x16, 0x16, 0xc3, 0xfd, 0x08, 0xf1, 0x82, 0xc0, 0x99, 0x65, 0x7c, 0x06, 0x0b, 0x1d, 0x3f, 0xea, - 0x05, 0xe4, 0x29, 0x25, 0x49, 0x8b, 0xf6, 0x4c, 0xbd, 0xae, 0xaf, 0x57, 0x37, 0xdf, 0xd9, 0x90, - 0xbe, 0xb8, 0xb1, 0xef, 0xa4, 0x27, 0x24, 0xd9, 0x8b, 0x93, 0xd0, 0x49, 0x6d, 0xd5, 0xdf, 0x78, - 0x00, 0xb5, 0xfd, 0x24, 0x1e, 0xf4, 0xb3, 0xfd, 0xc5, 0xcb, 0xf6, 0x2b, 0xee, 0xd6, 0x1d, 0xb8, - 0x39, 0x3d, 0x96, 0x33, 0xc3, 0x84, 0x79, 0xca, 0x2d, 0x53, 0xab, 0xeb, 0xeb, 0xba, 0x9d, 0x99, - 0xd6, 0x0a, 0x18, 0xfb, 0x24, 0x6d, 0x39, 0x2f, 0xb6, 0x22, 0x8f, 0xc7, 0x61, 0x93, 0x33, 0x6b, - 0x17, 0x96, 0x27, 0x50, 0x9e, 0x91, 0x50, 0xc9, 0x48, 0x98, 0x67, 0x24, 0x54, 0x32, 0xc2, 0x2d, - 0xeb, 0x31, 0xd4, 0x64, 0xbe, 0xc6, 0x22, 0x14, 0x9a, 0x0d, 0xb6, 0xb7, 0x62, 0x17, 0x9a, 0x0d, - 0xe3, 0x36, 0x14, 0x19, 0xa7, 0x02, 0x0b, 0xf4, 0x86, 0x12, 0x68, 0x8b, 0xf6, 0x44, 0x94, 0xcc, - 0xc7, 0xfa, 0xab, 0x00, 0x95, 0x1c, 0xc3, 0x2f, 0x76, 0x48, 0xe4, 0xe5, 0xa7, 0x09, 0x0b, 0x71, - 0x9b, 0xb8, 0xc3, 0x66, 0x83, 0x31, 0xa9, 0xd8, 0xc2, 0xc2, 0x04, 0xe0, 0xe6, 0x24, 0x0e, 0x4d, - 0xbd, 0xae, 0xad, 0xcf, 0xd9, 0x99, 0x69, 0xd4, 0xa1, 0xba, 0x13, 0x47, 0x29, 0x89, 0xd2, 0xa3, - 0xf3, 0x3e, 0x31, 0x8b, 0xec, 0x57, 0x19, 0x42, 0x8f, 0x0e, 0x49, 0x86, 0x2c, 0xc9, 0xcd, 0x86, - 0x39, 0xc7, 0x0e, 0x96, 0x21, 0x3c, 0x5d, 0x6c, 0x30, 0x4b, 0xec, 0xd7, 0xcc, 0x34, 0x96, 0x40, - 0xc7, 0xb4, 0xcc, 0xb3, 0xb4, 0xe0, 0xd2, 0x58, 0x83, 0x32, 0x72, 0x3d, 0xf2, 0x43, 0x62, 0x96, - 0x19, 0x9c, 0xdb, 0xc6, 0x6d, 0x58, 0xc2, 0x35, 0x49, 0x0e, 0x03, 0x27, 0xed, 0xc6, 0x49, 0xd8, - 0x6c, 0x98, 0x15, 0x46, 0x68, 0x02, 0x37, 0x3e, 0x84, 0x45, 0x8e, 0x3d, 0xf1, 0xdd, 0xd3, 0x27, - 0x4e, 0x48, 0x4c, 0x60, 0x9f, 0x1e, 0x43, 0x8d, 0x0f, 0x60, 0x81, 0x23, 0x7b, 0x8e, 0x4b, 0x9e, - 0xda, 0x07, 0x66, 0x95, 0xb9, 0xa9, 0x20, 0xcb, 0x42, 0xe0, 0x93, 0x28, 0xe5, 0x31, 0xd6, 0x78, - 0x8c, 0x12, 0x64, 0xfd, 0xa2, 0xc3, 0x22, 0x2a, 0x0d, 0xf7, 0xb5, 0x68, 0x0f, 0x55, 0xb5, 0x0d, - 0xf3, 0xed, 0x7e, 0xea, 0xc7, 0x11, 0x65, 0xaa, 0xaa, 0x6e, 0xae, 0x2b, 0x15, 0x54, 0xbd, 0x37, - 0x84, 0xeb, 0x6e, 0x94, 0x26, 0xe7, 0x76, 0xb6, 0x71, 0x4a, 0x18, 0x85, 0xab, 0x85, 0xa1, 0x4f, - 0x0b, 0xe3, 0x16, 0x80, 0x94, 0x3a, 0x5e, 0x4b, 0x09, 0xe1, 0xa5, 0xa4, 0xd4, 0x8f, 0x23, 0x56, - 0xec, 0x39, 0x5e, 0x6c, 0x09, 0x92, 0x85, 0x52, 0xba, 0x50, 0x28, 0xf3, 0x93, 0x42, 0x19, 0x89, - 0xaf, 0xac, 0x88, 0xef, 0x3d, 0xa8, 0xec, 0xc5, 0x89, 0x4b, 0x98, 0xd6, 0x2b, 0x75, 0x7d, 0xbd, - 0x62, 0x8f, 0x00, 0x59, 0x3c, 0xa0, 0x8a, 0x67, 0xac, 0x28, 0xd5, 0x89, 0xa2, 0xac, 0xdd, 0x87, - 0x9a, 0x9c, 0x56, 0x94, 0xdb, 0x29, 0x39, 0x17, 0x3d, 0x81, 0x4b, 0x63, 0x05, 0xe6, 0x86, 0x4e, - 0x30, 0xe0, 0x69, 0x9d, 0xb3, 0xb9, 0x71, 0xbf, 0x70, 0x57, 0xb3, 0xce, 0xe0, 0x9a, 0x52, 0x21, - 0xda, 0x1f, 0x57, 0xba, 0x36, 0xa9, 0xf4, 0x31, 0x4a, 0x85, 0x09, 0x4a, 0xa8, 0x6f, 0x9a, 0xe9, - 0x5b, 0xe7, 0xfa, 0xce, 0x6c, 0xeb, 0xa5, 0xce, 0xb2, 0xdb, 0x70, 0x52, 0x07, 0x93, 0x45, 0x95, - 0x0e, 0xa6, 0x79, 0x07, 0x27, 0x4a, 0x07, 0x73, 0x0b, 0xbf, 0x4c, 0xa5, 0xd2, 0xf1, 0x2e, 0x96, - 0x21, 0x4c, 0x64, 0x28, 0x4a, 0xc7, 0x2b, 0x9f, 0x99, 0xb8, 0xd7, 0x95, 0x4a, 0x27, 0xca, 0xee, - 0xaa, 0x3d, 0x4e, 0xa5, 0xc8, 0x79, 0x17, 0xcb, 0x10, 0x9e, 0x2e, 0x36, 0xb0, 0xd2, 0xd7, 0xec, - 0xcc, 0x54, 0x22, 0x2e, 0xab, 0x11, 0x63, 0x41, 0x28, 0x39, 0x63, 0x4d, 0xac, 0xdb, 0xb8, 0xc4, - 0x1e, 0xa7, 0xe3, 0x3d, 0x0e, 0xbc, 0xc7, 0xe9, 0x94, 0x1e, 0xa7, 0x6a, 0x73, 0x70, 0x0d, 0x8c, - 0xa1, 0xd8, 0x1c, 0x54, 0x69, 0x0e, 0xde, 0xbf, 0x2a, 0xc8, 0xb2, 0x20, 0xd5, 0x6e, 0x81, 0xc7, - 0x28, 0x41, 0xd6, 0xd7, 0x1a, 0x5c, 0x6b, 0x77, 0xbb, 0x81, 0x1f, 0x91, 0xc3, 0x01, 0x3d, 0x69, - 0x46, 0xdd, 0x18, 0x05, 0x74, 0xe4, 0xa7, 0x01, 0x11, 0x65, 0xe2, 0x86, 0x61, 0x40, 0xb1, 0x41, - 0xa8, 0x2b, 0x6a, 0xc4, 0xd6, 0x18, 0xeb, 0xee, 0x8b, 0x54, 0x34, 0x26, 0x2e, 0x0d, 0x0b, 0x6a, - 0x7e, 0xbb, 0x83, 0x47, 0x75, 0xe2, 0x41, 0xe4, 0xb1, 0xb2, 0x54, 0x6c, 0x05, 0x43, 0xee, 0x7e, - 0xbb, 0xb3, 0xed, 0x78, 0x3d, 0xb2, 0x13, 0x0f, 0xa2, 0x94, 0x55, 0xa7, 0x6c, 0xab, 0xa0, 0xf5, - 0x4d, 0x01, 0x2a, 0xec, 0xb1, 0x63, 0x9c, 0x4c, 0x98, 0xe7, 0x46, 0x26, 0x9e, 0xcc, 0xc4, 0x56, - 0x63, 0x4b, 0xe9, 0x26, 0x19, 0x01, 0xc8, 0xe7, 0x49, 0x9c, 0xfa, 0x5d, 0xdf, 0x75, 0xb0, 0x69, - 0x04, 0x55, 0x05, 0x43, 0x9f, 0x66, 0x94, 0x26, 0xb1, 0x37, 0x70, 0x99, 0x8f, 0xe0, 0x2c, 0x63, - 0xf8, 0x7d, 0x96, 0xd4, 0x24, 0x10, 0xaf, 0x41, 0x66, 0x1a, 0x9f, 0xc0, 0x5c, 0xfb, 0x79, 0x44, - 0x12, 0xa6, 0xa0, 0xea, 0xe6, 0xbb, 0xca, 0x85, 0x78, 0x38, 0x38, 0x0e, 0x7c, 0x17, 0x9b, 0x0e, - 0xa3, 0xb0, 0xb9, 0x27, 0xde, 0x59, 0x3b, 0x09, 0x71, 0x52, 0xc2, 0x04, 0x84, 0xda, 0x2a, 0xda, - 0x12, 0x82, 0x65, 0x6b, 0x91, 0xf0, 0x98, 0x24, 0x3c, 0x3d, 0xa8, 0xb0, 0x05, 0x5b, 0x86, 0xac, - 0x3f, 0x35, 0x58, 0x66, 0x41, 0x72, 0x70, 0x6f, 0x10, 0x04, 0x97, 0xa4, 0xe9, 0x06, 0x94, 0x18, - 0x8d, 0xbc, 0xc9, 0xb8, 0x65, 0x6c, 0x80, 0xb1, 0xe5, 0x85, 0x7e, 0xe4, 0xd3, 0x34, 0x71, 0xd2, - 0x38, 0x39, 0x20, 0x43, 0x12, 0x88, 0x5e, 0x9b, 0xf2, 0x0b, 0x4a, 0xff, 0x71, 0xec, 0x47, 0x8c, - 0x79, 0x91, 0x31, 0xcf, 0x6d, 0xfc, 0x2d, 0x97, 0x2d, 0xcf, 0x52, 0x6e, 0xcb, 0x09, 0x2c, 0xa9, - 0x09, 0xb4, 0xa0, 0xb6, 0x97, 0xf8, 0x24, 0xf2, 0x6c, 0x12, 0x3a, 0xc9, 0x29, 0xcb, 0x47, 0xc5, - 0x56, 0x30, 0xeb, 0x07, 0x0d, 0xca, 0x59, 0x16, 0xa5, 0x50, 0x34, 0x25, 0x14, 0x03, 0x8a, 0x92, - 0x08, 0xd8, 0x1a, 0xb1, 0xa6, 0x9b, 0xd7, 0x9d, 0xad, 0x71, 0xff, 0x3e, 0x6b, 0x13, 0x71, 0x69, - 0x08, 0x8b, 0x4d, 0x79, 0xf1, 0xb1, 0x1f, 0x64, 0xe4, 0x85, 0x85, 0xfd, 0xb0, 0xed, 0x27, 0xe9, - 0x89, 0x20, 0xce, 0x0d, 0x44, 0x77, 0x43, 0xc7, 0x0f, 0x04, 0x5f, 0x6e, 0x58, 0x43, 0x58, 0x54, - 0x6b, 0xfe, 0x4a, 0xb6, 0x22, 0x59, 0xd1, 0x88, 0x71, 0x6e, 0xcb, 0xc9, 0xd2, 0xd5, 0x64, 0xbd, - 0x82, 0xbb, 0xd5, 0x80, 0xf2, 0x91, 0xdf, 0xa7, 0x3b, 0x71, 0x18, 0xa2, 0x4f, 0x83, 0xa4, 0x48, - 0x4d, 0x63, 0xd7, 0x96, 0xb0, 0x50, 0x56, 0x0d, 0xd2, 0x75, 0x06, 0x41, 0x8a, 0xae, 0xd9, 0x4d, - 0x2e, 0x41, 0xd6, 0xb7, 0x1a, 0x5c, 0xe3, 0x8a, 0xda, 0x8d, 0x52, 0x92, 0x20, 0x66, 0x7c, 0x04, - 0x73, 0x4c, 0x43, 0xec, 0xb0, 0xf1, 0x91, 0x2d, 0x6f, 0x50, 0x9b, 0x3b, 0x19, 0x77, 0xa1, 0xc4, - 0x0f, 0x60, 0xc7, 0x57, 0x37, 0xeb, 0x93, 0xee, 0xaa, 0x64, 0x6d, 0xe1, 0x8f, 0xb7, 0x42, 0xbb, - 0x4f, 0x12, 0xd6, 0x92, 0xf9, 0x53, 0x52, 0xb4, 0x55, 0x50, 0x62, 0x78, 0x40, 0x9c, 0x21, 0xf9, - 0x0f, 0x32, 0xfc, 0x5d, 0x83, 0xeb, 0x7c, 0x43, 0x33, 0x1a, 0xfa, 0x29, 0xf1, 0x66, 0xe3, 0xd8, - 0x66, 0x43, 0xfe, 0xd5, 0x39, 0x72, 0x7f, 0x29, 0x3a, 0xfd, 0x4d, 0xa3, 0x2b, 0x4e, 0x8b, 0xee, - 0x37, 0x0d, 0x96, 0xf8, 0x86, 0xcf, 0x7d, 0xf7, 0xf4, 0x7f, 0x16, 0xdc, 0x4f, 0x1a, 0xac, 0x4a, - 0xa7, 0xec, 0x9c, 0x38, 0x51, 0x8f, 0xb0, 0x26, 0xc6, 0x1b, 0x9b, 0x59, 0x6c, 0x9a, 0xd0, 0xf8, - 0x94, 0x39, 0x42, 0xde, 0x4a, 0x4c, 0x6b, 0x50, 0x6e, 0x0d, 0xc4, 0x1b, 0x22, 0x6e, 0xe2, 0xcc, - 0xb6, 0xbe, 0xd2, 0x60, 0x35, 0x13, 0x61, 0x37, 0xe6, 0x44, 0x67, 0xa9, 0xd5, 0x23, 0x58, 0x90, - 0x73, 0xe1, 0x89, 0xf0, 0xac, 0x57, 0x91, 0x1c, 0xa5, 0xcc, 0x56, 0x37, 0x5a, 0x7f, 0x68, 0xb0, - 0xc4, 0x1c, 0xf9, 0x3b, 0x37, 0x0b, 0x99, 0xfb, 0x30, 0xcf, 0x36, 0xc7, 0x57, 0xcf, 0x72, 0xb6, - 0xc1, 0x78, 0x08, 0x20, 0xae, 0x0d, 0x9c, 0xc8, 0xf9, 0x9f, 0xe9, 0x97, 0x6f, 0x97, 0xf6, 0x5c, - 0x51, 0x42, 0xdf, 0x69, 0xb0, 0x92, 0x13, 0x97, 0xf3, 0x8e, 0x63, 0xb4, 0x30, 0x47, 0x12, 0x92, - 0xa1, 0x51, 0x32, 0x0a, 0xaf, 0xd7, 0x45, 0xfa, 0xeb, 0x29, 0xce, 0x7a, 0xa9, 0xc1, 0x9a, 0x4d, - 0x5c, 0xe2, 0x0f, 0x09, 0xbe, 0xdc, 0x5b, 0xfd, 0x7e, 0x20, 0x26, 0xa1, 0x19, 0x6a, 0x72, 0x0f, - 0x2a, 0xe2, 0x80, 0x28, 0x15, 0xc4, 0x2f, 0x9c, 0x80, 0x46, 0xde, 0xfc, 0x6f, 0x27, 0x87, 0xe6, - 0x8f, 0xb3, 0xb0, 0xac, 0x1f, 0x35, 0x30, 0x25, 0x52, 0x87, 0x49, 0xec, 0x12, 0x4a, 0xff, 0xe5, - 0xab, 0x86, 0x91, 0xa3, 0x83, 0x20, 0x15, 0xa3, 0x90, 0xb0, 0x24, 0xd2, 0x45, 0x85, 0xf4, 0xf7, - 0x1a, 0x00, 0x9f, 0x58, 0xd8, 0x7d, 0x51, 0x87, 0x2a, 0x1b, 0xf5, 0x94, 0x97, 0x5f, 0x86, 0xf8, - 0x41, 0x6c, 0xde, 0xc9, 0xff, 0x6d, 0x81, 0xd6, 0xd8, 0x6c, 0xa8, 0x4f, 0xcc, 0x86, 0x0f, 0x60, - 0x91, 0x7f, 0x27, 0x4b, 0x29, 0x23, 0x52, 0xdd, 0x5c, 0x9d, 0xf8, 0x43, 0x9c, 0xc5, 0x33, 0xe6, - 0x6c, 0x9d, 0xc2, 0x75, 0x8e, 0x48, 0x19, 0xc6, 0x71, 0x63, 0xcb, 0xf3, 0x24, 0x51, 0x67, 0x26, - 0x0e, 0xd7, 0x5b, 0x9e, 0xd7, 0x89, 0x07, 0x89, 0x9b, 0x4d, 0x45, 0x23, 0x00, 0xb9, 0x6e, 0x79, - 0xde, 0x17, 0x71, 0xe2, 0xf9, 0x51, 0x4f, 0x4c, 0x47, 0x12, 0x62, 0xfd, 0xaa, 0xc1, 0xad, 0x89, - 0xaf, 0x61, 0x33, 0x6d, 0x79, 0x9e, 0xa8, 0xe7, 0x9d, 0xbc, 0x42, 0xda, 0xe5, 0xe2, 0xc9, 0x8a, - 0xf3, 0x10, 0xaa, 0xd2, 0x81, 0xa2, 0xb6, 0xb7, 0x94, 0x9d, 0x13, 0x9f, 0xb5, 0xe5, 0x2d, 0xc6, - 0xa7, 0x50, 0x6e, 0xf7, 0x89, 0x27, 0xf5, 0xcf, 0x85, 0x1f, 0xce, 0x9d, 0xf1, 0x62, 0x7d, 0x7f, - 0x7a, 0x48, 0xae, 0x4b, 0xfa, 0xe9, 0xec, 0x31, 0xc9, 0x8c, 0x0a, 0xff, 0x08, 0x23, 0x9b, 0x7c, - 0x49, 0xdc, 0xb7, 0xc1, 0x68, 0x0f, 0x96, 0x39, 0x21, 0xb5, 0xd4, 0x1f, 0x43, 0x89, 0xc3, 0x82, - 0xc4, 0xcd, 0x29, 0x05, 0xe3, 0x04, 0xf8, 0xda, 0x7a, 0x04, 0xab, 0xa3, 0x73, 0x1a, 0x24, 0x20, - 0xe9, 0xac, 0x27, 0xed, 0xc0, 0xd2, 0x76, 0xe0, 0xb8, 0xa7, 0x82, 0xd0, 0x6c, 0x87, 0xec, 0xc3, - 0x4a, 0x7e, 0xc8, 0x1b, 0xb1, 0xc9, 0xe3, 0x1a, 0x7f, 0x23, 0x5e, 0xfb, 0xa4, 0x43, 0x58, 0xee, - 0x90, 0xa0, 0x8b, 0xd8, 0xd3, 0xbe, 0x97, 0x3f, 0xab, 0xf7, 0xa0, 0x86, 0x70, 0x7e, 0x43, 0x68, - 0x17, 0xdd, 0x10, 0x8a, 0xeb, 0x71, 0x89, 0xfd, 0xcb, 0xfc, 0xce, 0xdf, 0x01, 0x00, 0x00, 0xff, - 0xff, 0xca, 0x9b, 0xa2, 0xe6, 0x3e, 0x17, 0x00, 0x00, +func init() { proto.RegisterFile("sdk_ws/ws.proto", fileDescriptor_ws_a9634e8f434358ba) } + +var fileDescriptor_ws_a9634e8f434358ba = []byte{ + // 1855 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0x59, 0x5f, 0x6f, 0xdc, 0x5a, + 0x11, 0x97, 0xf7, 0x5f, 0xb2, 0xb3, 0x69, 0x92, 0xba, 0x6d, 0xae, 0x29, 0x57, 0x55, 0xb0, 0x10, + 0x8a, 0xae, 0xae, 0x52, 0x91, 0x08, 0x71, 0xdb, 0x2b, 0xe0, 0x26, 0xd9, 0x24, 0xda, 0xd2, 0x34, + 0x91, 0xb7, 0x15, 0x12, 0x2f, 0x95, 0x6b, 0x9f, 0xdd, 0x98, 0xf5, 0x9f, 0x8d, 0x8f, 0x77, 0xdb, + 0x7e, 0x12, 0x24, 0x24, 0x24, 0x10, 0x0f, 0x08, 0xf1, 0x82, 0x10, 0xe2, 0x43, 0x20, 0xc4, 0x87, + 0x40, 0xf0, 0xc8, 0x0b, 0xaf, 0x08, 0x09, 0xcd, 0x9c, 0x63, 0xfb, 0x9c, 0xf5, 0x92, 0xec, 0xe6, + 0xaa, 0x7d, 0xf3, 0xfc, 0x3c, 0x73, 0xe6, 0xdf, 0x6f, 0xc6, 0x27, 0x1b, 0xd8, 0xe0, 0xfe, 0xe8, + 0xf5, 0x5b, 0xfe, 0xf8, 0x2d, 0xdf, 0x1d, 0xa7, 0x49, 0x96, 0x98, 0x9d, 0x64, 0xcc, 0xe2, 0xd7, + 0x41, 0xf4, 0x9a, 0xfb, 0x23, 0xfb, 0x2f, 0x06, 0x58, 0x17, 0x93, 0x30, 0x3c, 0x63, 0x9c, 0xbb, + 0x43, 0x76, 0xf8, 0xbe, 0xcf, 0xae, 0x9e, 0x07, 0x3c, 0x73, 0x18, 0x1f, 0x9b, 0x5b, 0xd0, 0x3a, + 0x73, 0xdf, 0xf5, 0xd9, 0x95, 0x65, 0x6c, 0x1b, 0x3b, 0x75, 0x47, 0x4a, 0x84, 0x07, 0x31, 0xe2, + 0x35, 0x89, 0x93, 0x64, 0xfe, 0x08, 0xee, 0xf4, 0x83, 0x78, 0x18, 0xb2, 0x57, 0x9c, 0xa5, 0x67, + 0x7c, 0x68, 0xd5, 0xb7, 0xeb, 0x3b, 0x9d, 0xbd, 0x6f, 0xec, 0x2a, 0x1e, 0x77, 0x4f, 0xdd, 0xec, + 0x92, 0xa5, 0x27, 0x49, 0x1a, 0xb9, 0x99, 0xa3, 0xeb, 0x9b, 0x3f, 0x80, 0xb5, 0xd3, 0x34, 0x99, + 0x8c, 0x73, 0xfb, 0xc6, 0x4d, 0xf6, 0x9a, 0xba, 0xbd, 0x0f, 0x9f, 0xcc, 0xcf, 0xe5, 0xca, 0xb4, + 0x60, 0x85, 0x0b, 0xc9, 0x32, 0xb6, 0xeb, 0x3b, 0x75, 0x27, 0x17, 0xed, 0xfb, 0x60, 0x9e, 0xb2, + 0xec, 0xcc, 0x7d, 0x77, 0x10, 0xfb, 0x22, 0x0f, 0x87, 0x5d, 0xd9, 0xc7, 0x70, 0xaf, 0x82, 0x8a, + 0x8a, 0x44, 0x5a, 0x45, 0xa2, 0xa2, 0x22, 0x91, 0x56, 0x11, 0x21, 0xd9, 0xcf, 0x60, 0x4d, 0x8d, + 0xd7, 0x5c, 0x87, 0x5a, 0xaf, 0x4b, 0xb6, 0x6d, 0xa7, 0xd6, 0xeb, 0x9a, 0x9f, 0x41, 0x83, 0x62, + 0xaa, 0x51, 0xa2, 0x5b, 0x5a, 0xa2, 0x67, 0x7c, 0x28, 0xb3, 0x24, 0x1d, 0xfb, 0xbf, 0x35, 0x68, + 0x17, 0x18, 0x7a, 0xec, 0xb3, 0xd8, 0x2f, 0x4e, 0x93, 0x12, 0xe2, 0x0e, 0xf3, 0xa6, 0xbd, 0x2e, + 0x45, 0xd2, 0x76, 0xa4, 0x84, 0x05, 0x40, 0xe3, 0x34, 0x89, 0xac, 0xfa, 0xb6, 0xb1, 0xd3, 0x74, + 0x72, 0xd1, 0xdc, 0x86, 0xce, 0x51, 0x12, 0x67, 0x2c, 0xce, 0x5e, 0xbe, 0x1f, 0x33, 0xab, 0x41, + 0x6f, 0x55, 0x08, 0x35, 0xfa, 0x2c, 0x9d, 0x52, 0x91, 0x7b, 0x5d, 0xab, 0x49, 0x07, 0xab, 0x10, + 0x9e, 0x2e, 0x0d, 0xac, 0x16, 0xbd, 0xcd, 0x45, 0x73, 0x13, 0xea, 0x58, 0x96, 0x15, 0x2a, 0x0b, + 0x3e, 0x9a, 0x0f, 0x61, 0x15, 0x63, 0x7d, 0x19, 0x44, 0xcc, 0x5a, 0x25, 0xb8, 0x90, 0xcd, 0xcf, + 0x60, 0x13, 0x9f, 0x59, 0x7a, 0x11, 0xba, 0xd9, 0x20, 0x49, 0xa3, 0x5e, 0xd7, 0x6a, 0x53, 0x40, + 0x15, 0xdc, 0xfc, 0x0e, 0xac, 0x0b, 0xec, 0x45, 0xe0, 0x8d, 0x5e, 0xb8, 0x11, 0xb3, 0x80, 0x5c, + 0xcf, 0xa0, 0xe6, 0xb7, 0xe1, 0x8e, 0x40, 0x4e, 0x5c, 0x8f, 0xbd, 0x72, 0x9e, 0x5b, 0x1d, 0x52, + 0xd3, 0x41, 0xaa, 0x42, 0x18, 0xb0, 0x38, 0x13, 0x39, 0xae, 0x89, 0x1c, 0x15, 0xc8, 0xfe, 0x5b, + 0x1d, 0xd6, 0x91, 0x69, 0x68, 0x77, 0xc6, 0x87, 0xc8, 0xaa, 0x43, 0x58, 0x39, 0x1f, 0x67, 0x41, + 0x12, 0x73, 0x62, 0x55, 0x67, 0x6f, 0x47, 0xeb, 0xa0, 0xae, 0xbd, 0x2b, 0x55, 0x8f, 0xe3, 0x2c, + 0x7d, 0xef, 0xe4, 0x86, 0x73, 0xd2, 0xa8, 0x2d, 0x96, 0x46, 0x7d, 0x5e, 0x1a, 0x8f, 0x00, 0x94, + 0xd2, 0x89, 0x5e, 0x2a, 0x88, 0x68, 0x25, 0xe7, 0x41, 0x12, 0x53, 0xb3, 0x9b, 0xa2, 0xd9, 0x0a, + 0xa4, 0x12, 0xa5, 0x75, 0x2d, 0x51, 0x56, 0xaa, 0x44, 0x29, 0xc9, 0xb7, 0xaa, 0x91, 0xef, 0x53, + 0x68, 0x9f, 0x24, 0xa9, 0xc7, 0x88, 0xeb, 0xed, 0xed, 0xfa, 0x4e, 0xdb, 0x29, 0x01, 0x95, 0x3c, + 0xa0, 0x93, 0x67, 0xa6, 0x29, 0x9d, 0x4a, 0x53, 0x1e, 0x3e, 0x85, 0x35, 0xb5, 0xac, 0x48, 0xb7, + 0x11, 0x7b, 0x2f, 0x67, 0x02, 0x1f, 0xcd, 0xfb, 0xd0, 0x9c, 0xba, 0xe1, 0x44, 0x94, 0xb5, 0xe9, + 0x08, 0xe1, 0x69, 0xed, 0x0b, 0xc3, 0xbe, 0x82, 0x0d, 0xad, 0x43, 0x7c, 0x3c, 0xcb, 0x74, 0xa3, + 0xca, 0xf4, 0x99, 0x90, 0x6a, 0x95, 0x90, 0x90, 0xdf, 0x3c, 0xe7, 0x77, 0x5d, 0xf0, 0x3b, 0x97, + 0xed, 0x3f, 0x37, 0xa9, 0xba, 0x5d, 0x37, 0x73, 0xb1, 0x58, 0x5c, 0x9b, 0x60, 0x5e, 0x4c, 0x70, + 0xaa, 0x4d, 0x70, 0x5a, 0x4c, 0xf0, 0x10, 0xb7, 0x5d, 0xaf, 0x2b, 0x5b, 0x9f, 0x8b, 0x18, 0x93, + 0xa7, 0xc4, 0xd4, 0x10, 0x31, 0x29, 0x10, 0x6a, 0xf0, 0xea, 0x04, 0x2b, 0x10, 0x4e, 0x1e, 0x9f, + 0x9d, 0x3c, 0xd1, 0xff, 0x0a, 0x8e, 0x94, 0xe5, 0x3a, 0x65, 0x57, 0x04, 0x65, 0x79, 0x85, 0xb2, + 0x5c, 0xa3, 0xac, 0x60, 0x85, 0x0e, 0x8a, 0xd8, 0x4a, 0x4a, 0x8a, 0x71, 0x57, 0x21, 0xcc, 0x3c, + 0x92, 0x94, 0x04, 0x41, 0xc9, 0xa8, 0xa4, 0xa4, 0xa7, 0x50, 0xb2, 0x23, 0x6c, 0x15, 0x08, 0x6d, + 0xa5, 0x48, 0x33, 0xbd, 0xe6, 0xe4, 0x22, 0x92, 0x72, 0x50, 0x90, 0xf2, 0x8e, 0x20, 0x65, 0x01, + 0x20, 0x91, 0x38, 0xbb, 0xb2, 0xd6, 0xc5, 0xde, 0xe2, 0x62, 0x6f, 0x15, 0x7d, 0xdd, 0xd0, 0xfb, + 0x8a, 0x63, 0xe7, 0xa5, 0xcc, 0xcd, 0x18, 0xbd, 0xdd, 0xa4, 0xb7, 0x0a, 0x62, 0x7e, 0x59, 0x2e, + 0x8a, 0xbb, 0xb4, 0x28, 0xbe, 0x35, 0xbb, 0xea, 0x91, 0x12, 0xff, 0x67, 0x43, 0x9c, 0xc0, 0x46, + 0x32, 0x18, 0x84, 0x41, 0xcc, 0x2e, 0x26, 0xfc, 0xb2, 0x17, 0x0f, 0x12, 0xcb, 0xdc, 0x36, 0x76, + 0x3a, 0x7b, 0x9f, 0x6a, 0x87, 0x9c, 0xeb, 0x3a, 0xce, 0xac, 0xd1, 0xb2, 0xb3, 0xb2, 0xaa, 0xce, + 0xca, 0xcf, 0x0d, 0xd8, 0x98, 0x71, 0x80, 0xda, 0x2f, 0x83, 0x2c, 0x64, 0xf2, 0x04, 0x21, 0x98, + 0x26, 0x34, 0xba, 0x8c, 0x7b, 0x92, 0xbc, 0xf4, 0x8c, 0x9e, 0x8e, 0xdf, 0x65, 0x92, 0xb6, 0xf8, + 0x68, 0xda, 0xb0, 0x16, 0x9c, 0xf7, 0xf1, 0xa8, 0x7e, 0x32, 0x89, 0x7d, 0xc9, 0x59, 0x0d, 0x43, + 0xfa, 0x04, 0xe7, 0xfd, 0x43, 0xd7, 0x1f, 0xb2, 0xa3, 0x64, 0x12, 0x67, 0x44, 0xdb, 0x55, 0x47, + 0x07, 0xed, 0x5f, 0xd4, 0xa0, 0x4d, 0xb7, 0x00, 0x8a, 0xc9, 0x82, 0x95, 0x53, 0x39, 0x24, 0x22, + 0xaa, 0x5c, 0xc4, 0x76, 0xd3, 0xa3, 0xb2, 0x62, 0x4b, 0x00, 0xe3, 0x79, 0x91, 0x64, 0xc1, 0x20, + 0xf0, 0x5c, 0xac, 0x90, 0x0c, 0x55, 0xc3, 0x50, 0xa7, 0x17, 0x67, 0x69, 0xe2, 0x4f, 0x3c, 0xd2, + 0x91, 0x31, 0xab, 0x18, 0xfa, 0x27, 0x5e, 0xa7, 0xa1, 0x1c, 0xb2, 0x5c, 0x34, 0xbf, 0x0b, 0xcd, + 0xf3, 0xb7, 0x31, 0x4b, 0x69, 0xaa, 0x3a, 0x7b, 0xdf, 0xd4, 0x7a, 0x77, 0x31, 0x79, 0x13, 0x06, + 0x1e, 0x6e, 0x23, 0x6a, 0x9d, 0xd0, 0x44, 0x56, 0x1d, 0x95, 0xac, 0xc2, 0x19, 0x6b, 0x38, 0x0a, + 0x82, 0xec, 0x3f, 0x63, 0xd1, 0x1b, 0x96, 0x8a, 0xf2, 0xe0, 0x74, 0xdd, 0x71, 0x54, 0xc8, 0xfe, + 0x97, 0x01, 0xf7, 0x28, 0x49, 0x01, 0x9e, 0x4c, 0xc2, 0xf0, 0x86, 0x32, 0x6d, 0x41, 0x8b, 0xc2, + 0x28, 0xb6, 0x8f, 0x90, 0xcc, 0x5d, 0x30, 0x0f, 0xfc, 0x28, 0x88, 0x03, 0x9e, 0xa5, 0x6e, 0x96, + 0xa4, 0xcf, 0xd9, 0x94, 0x85, 0xf2, 0x2a, 0x31, 0xe7, 0x0d, 0x4e, 0xcb, 0xb3, 0x24, 0x88, 0x29, + 0xf2, 0x06, 0x45, 0x5e, 0xc8, 0xf8, 0xae, 0xd8, 0x1c, 0xa2, 0x4a, 0x85, 0xac, 0x16, 0xb0, 0xa5, + 0x17, 0xd0, 0x86, 0xb5, 0x93, 0x34, 0x60, 0xb1, 0xef, 0xb0, 0xc8, 0x4d, 0x47, 0x72, 0xe7, 0x68, + 0x98, 0xfd, 0x27, 0x03, 0x56, 0xf3, 0x2a, 0x2a, 0xa9, 0x18, 0x5a, 0x2a, 0xd2, 0x7d, 0x5c, 0x12, + 0xa1, 0x90, 0x55, 0xf7, 0x75, 0xdd, 0xfd, 0x16, 0xb4, 0x4e, 0x69, 0x6f, 0xc9, 0xaf, 0xaa, 0x94, + 0xe8, 0x32, 0x9c, 0xbc, 0x09, 0xc2, 0x3c, 0x15, 0x29, 0xe1, 0x74, 0x1c, 0x06, 0x69, 0x76, 0x29, + 0xd3, 0x10, 0x02, 0xa2, 0xc7, 0x91, 0x1b, 0x84, 0x32, 0x7a, 0x21, 0xd8, 0x53, 0x58, 0xd7, 0x19, + 0xf0, 0x71, 0x62, 0xb7, 0xbb, 0xb0, 0xfa, 0x32, 0x18, 0xf3, 0xa3, 0x24, 0x8a, 0x50, 0xa7, 0xcb, + 0x32, 0x0c, 0xcd, 0xa0, 0x3d, 0x29, 0x25, 0x24, 0x59, 0x97, 0x0d, 0xdc, 0x49, 0x98, 0xa1, 0x6a, + 0xfe, 0xc1, 0x53, 0x20, 0xfb, 0x77, 0x06, 0x6c, 0x08, 0x7e, 0x1d, 0xc7, 0x19, 0x4b, 0x11, 0x33, + 0x3f, 0x87, 0x26, 0x31, 0x8a, 0x0e, 0x9b, 0xbd, 0xd9, 0x16, 0xe3, 0xea, 0x08, 0x25, 0xf3, 0x10, + 0x3a, 0xb8, 0x92, 0xdc, 0x38, 0xc3, 0x34, 0xc9, 0x47, 0x67, 0x6f, 0xbb, 0x6a, 0xa3, 0xb3, 0xd8, + 0x51, 0x8d, 0x70, 0x5b, 0x9c, 0x8f, 0x59, 0x4a, 0xa3, 0x5a, 0x7c, 0x7b, 0x1b, 0x8e, 0x0e, 0xda, + 0xbf, 0x2d, 0x62, 0x7d, 0xce, 0xdc, 0x29, 0xbb, 0x45, 0xac, 0x5f, 0x01, 0x90, 0x69, 0xba, 0x54, + 0xa8, 0x8a, 0xcd, 0x82, 0x91, 0xfe, 0xd3, 0x80, 0xbb, 0xe2, 0x90, 0x5e, 0x3c, 0x0d, 0x32, 0xe6, + 0xdf, 0x22, 0xd6, 0x2f, 0xa0, 0x75, 0x3e, 0x5e, 0x2a, 0x4e, 0xa9, 0x8f, 0x1d, 0x91, 0x6e, 0xc9, + 0xbc, 0xbe, 0x68, 0x47, 0x14, 0xa3, 0x6a, 0x9e, 0x8d, 0x79, 0x79, 0xfe, 0xdd, 0x80, 0x4d, 0x71, + 0xca, 0x8f, 0x03, 0x6f, 0xf4, 0x91, 0xd3, 0xfc, 0x0a, 0x40, 0x78, 0x5d, 0x2a, 0x4b, 0xc5, 0x66, + 0xc1, 0x24, 0xff, 0x63, 0xc0, 0x83, 0xbc, 0x99, 0x83, 0xe4, 0xe8, 0xd2, 0x8d, 0x87, 0x32, 0x53, + 0xdc, 0xf1, 0x24, 0xd2, 0x05, 0xc6, 0x10, 0x17, 0xf6, 0x12, 0xf9, 0x1a, 0xb9, 0xfd, 0x10, 0xda, + 0x27, 0x41, 0xec, 0x12, 0xb8, 0x70, 0x6a, 0xa5, 0x09, 0xae, 0x9a, 0xb3, 0x89, 0xfc, 0xf6, 0xc8, + 0x0d, 0x9e, 0xcb, 0x65, 0x7f, 0x9a, 0x0b, 0xf4, 0xc7, 0xfe, 0x87, 0x01, 0x9b, 0xf4, 0x24, 0xbe, + 0x5d, 0xb7, 0x69, 0xf1, 0x53, 0x58, 0x21, 0xe3, 0x64, 0xf1, 0x3a, 0xe4, 0x06, 0xd8, 0x64, 0x39, + 0xf2, 0x78, 0xd3, 0x13, 0xbf, 0x49, 0x2c, 0xd0, 0xe4, 0xd2, 0x66, 0xc1, 0x26, 0xff, 0xca, 0x80, + 0xfb, 0x45, 0xe0, 0x6a, 0x8f, 0xf1, 0x6f, 0x06, 0x29, 0x96, 0x4d, 0x56, 0xa1, 0xb2, 0x18, 0xb5, + 0xe5, 0xf8, 0x5e, 0x5f, 0x8e, 0x13, 0xf6, 0x2f, 0x0d, 0x78, 0xe8, 0x30, 0x8f, 0x05, 0x53, 0x86, + 0x5f, 0xe3, 0x83, 0xf1, 0x38, 0x94, 0xb7, 0x9b, 0x5b, 0xf4, 0xe4, 0x09, 0xb4, 0xe5, 0x01, 0x71, + 0x26, 0x03, 0xbf, 0xf6, 0x56, 0x53, 0x6a, 0x8b, 0x3f, 0x14, 0x5d, 0x5e, 0x5c, 0xb4, 0xa4, 0x64, + 0xff, 0xd1, 0x00, 0x4b, 0x09, 0xea, 0x22, 0x4d, 0x3c, 0xc6, 0xf9, 0x47, 0x5e, 0x0a, 0x14, 0x1c, + 0x9f, 0x84, 0x99, 0xbc, 0xde, 0x48, 0x49, 0x09, 0xba, 0xa1, 0x05, 0xfd, 0x07, 0x03, 0x40, 0xdc, + 0x42, 0x68, 0x6e, 0xf6, 0xa1, 0x4d, 0xd7, 0x37, 0xf2, 0x2d, 0x42, 0x7d, 0x50, 0xf9, 0x59, 0x40, + 0x14, 0xa4, 0xd0, 0x13, 0x67, 0xd3, 0xb5, 0xa6, 0xf8, 0xd9, 0x06, 0xa5, 0x99, 0x2b, 0x60, 0xbd, + 0x72, 0x05, 0xfc, 0x5e, 0xee, 0x9a, 0xbc, 0x35, 0xae, 0xf3, 0xa6, 0x28, 0xda, 0x23, 0xb8, 0x2b, + 0x24, 0xa5, 0xd8, 0x78, 0x7f, 0x38, 0xf0, 0xc5, 0xdf, 0x37, 0x06, 0x39, 0xca, 0x45, 0xbc, 0x3b, + 0x1f, 0xf8, 0x7e, 0x3f, 0x99, 0xa4, 0x5e, 0x71, 0x77, 0x2e, 0x00, 0x8c, 0xf1, 0xc0, 0xf7, 0x7f, + 0x92, 0xa4, 0x7e, 0x10, 0x0f, 0x65, 0x43, 0x15, 0xc4, 0xfe, 0xb7, 0x01, 0x0f, 0x2b, 0xde, 0x0e, + 0x7c, 0x5f, 0xb6, 0x75, 0xbf, 0x68, 0x94, 0x71, 0x33, 0x87, 0xca, 0xc5, 0xdd, 0x51, 0x0e, 0x93, + 0x2d, 0x7e, 0xa4, 0x59, 0x56, 0x5c, 0x3a, 0xaa, 0x89, 0xf9, 0x7d, 0x58, 0x3d, 0x1f, 0x6b, 0x8b, + 0xff, 0x5a, 0xc7, 0x85, 0xf2, 0x82, 0xcb, 0xe0, 0xaf, 0x06, 0x3c, 0xaa, 0x44, 0xa0, 0xf3, 0xf9, + 0x56, 0x89, 0xab, 0x61, 0xd7, 0x96, 0x09, 0x9b, 0x7e, 0x56, 0x50, 0x59, 0x2d, 0xa4, 0x05, 0xd3, + 0xb9, 0x84, 0x0d, 0x99, 0x4d, 0xd1, 0xb7, 0xc7, 0xd0, 0x12, 0x90, 0x0c, 0xff, 0x93, 0x39, 0xd5, + 0x17, 0xa1, 0x8b, 0xe7, 0xaa, 0xa7, 0xda, 0x3c, 0x4f, 0x3f, 0xcb, 0xa9, 0xd9, 0x65, 0x21, 0xcb, + 0x3e, 0xac, 0xaf, 0x5f, 0x1b, 0xd0, 0x3e, 0x0c, 0x5d, 0x6f, 0x44, 0x83, 0xfb, 0xa4, 0x3a, 0xb8, + 0xd7, 0xef, 0xb3, 0x72, 0x7c, 0x6f, 0x1a, 0xd3, 0x27, 0xd2, 0x8f, 0x32, 0xa5, 0xd7, 0x1f, 0x5d, + 0x68, 0xdb, 0x3e, 0xac, 0x93, 0x50, 0x16, 0xfe, 0x73, 0x68, 0x12, 0x32, 0x77, 0x0f, 0x16, 0xe9, + 0x38, 0x42, 0x69, 0xc1, 0x4a, 0x0c, 0x60, 0x93, 0xd4, 0xd5, 0xa2, 0x7f, 0x08, 0x3f, 0xbf, 0x31, + 0xe0, 0x41, 0xd9, 0x2e, 0xf5, 0x23, 0xb9, 0x74, 0x8b, 0xf7, 0x67, 0x16, 0xfc, 0x42, 0xe3, 0xb3, + 0xd8, 0xdd, 0xfb, 0xf7, 0x06, 0xdc, 0xeb, 0xb3, 0x70, 0x80, 0xa6, 0xaf, 0xc6, 0x7e, 0x71, 0x67, + 0x79, 0x02, 0x6b, 0x08, 0xe7, 0xa7, 0x5e, 0xbf, 0xdd, 0x35, 0xd5, 0x0f, 0x18, 0xed, 0xe1, 0xd6, + 0x4f, 0xef, 0xef, 0x3e, 0x16, 0xff, 0xe5, 0xf9, 0x52, 0x39, 0xf4, 0x4d, 0x8b, 0xfe, 0xdf, 0xb3, + 0xff, 0xbf, 0x00, 0x00, 0x00, 0xff, 0xff, 0x45, 0x72, 0x9b, 0x6e, 0x02, 0x1a, 0x00, 0x00, } From a8e80a44e6bfe5560ae966ff791c2d8f7c17e25d Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Wed, 22 Dec 2021 15:24:49 +0800 Subject: [PATCH 226/814] notification --- internal/rpc/chat/send_msg.go | 14 +- internal/rpc/group/create_group.go | 150 ----- .../rpc/group/get_group_applicationList.go | 21 - internal/rpc/group/get_groups_info.go | 42 -- internal/rpc/group/group.go | 581 +++++++++++++----- .../rpc/group/group_application_response.go | 56 -- internal/rpc/group/join_group.go | 51 -- internal/rpc/group/quit_group.go | 55 -- internal/rpc/group/set_group_info.go | 60 -- internal/rpc/group/transfer_group_owner.go | 21 - pkg/proto/group/group.pb.go | 523 +++++++++------- pkg/proto/group/group.proto | 60 +- 12 files changed, 797 insertions(+), 837 deletions(-) delete mode 100644 internal/rpc/group/create_group.go delete mode 100644 internal/rpc/group/get_group_applicationList.go delete mode 100644 internal/rpc/group/get_groups_info.go delete mode 100644 internal/rpc/group/group_application_response.go delete mode 100644 internal/rpc/group/join_group.go delete mode 100644 internal/rpc/group/quit_group.go delete mode 100644 internal/rpc/group/set_group_info.go delete mode 100644 internal/rpc/group/transfer_group_owner.go diff --git a/internal/rpc/chat/send_msg.go b/internal/rpc/chat/send_msg.go index 1f2737bf1..3403e84bc 100644 --- a/internal/rpc/chat/send_msg.go +++ b/internal/rpc/chat/send_msg.go @@ -328,7 +328,7 @@ func ApplicationProcessedNotification(operationID, RecvID string, group immysql. // GroupMemberFullInfo InvitedUser = 3; // uint64 OperationTime = 4; //} -func MemberInvitedNotification(operationID string, group immysql.Group, opUser immysql.GroupMember, invitedUser immysql.GroupMember) { +func MemberInvitedNotification(operationID string, group immysql.Group, opUser immysql.User, invitedUser immysql.GroupMember) { } @@ -338,6 +338,10 @@ func MemberInvitedNotification(operationID string, group immysql.Group, opUser i // GroupMemberFullInfo KickedUser = 3; // uint64 OperationTime = 4; //} + +func MemberKickedNotificationID(operationID, GroupID, opUserID, kickedUserID, reason string) { + +} func MemberKickedNotification(operationID string, group immysql.Group, opUser immysql.GroupMember, KickedUser immysql.GroupMember) { } @@ -347,6 +351,11 @@ func MemberKickedNotification(operationID string, group immysql.Group, opUser im // GroupInfo Group = 2; // GroupMemberFullInfo OpUser = 3; //} +func GroupInfoChangedNotification(operationID string, changedType int32, groupID string, opUserID string) { + +} + +/* func GroupInfoChangedNotification(operationID string, changedType int32, group *immysql.Group, opUser *immysql.GroupMember) { var n NotificationMsg n.SendID = opUser.UserID @@ -369,13 +378,14 @@ func GroupInfoChangedNotification(operationID string, changedType int32, group * n.Content, _ = json.Marshal(tips) Notification(&n, false) } +*/ //message MemberLeaveTips{ // GroupInfo Group = 1; // GroupMemberFullInfo LeaverUser = 2; // uint64 OperationTime = 3; //} -func MemberLeaveNotification(operationID string, group *immysql.Group, leaverUser *immysql.GroupMember) { +func MemberLeaveNotification(operationID, groupID, leaverUserID string) { } diff --git a/internal/rpc/group/create_group.go b/internal/rpc/group/create_group.go deleted file mode 100644 index 8edc72885..000000000 --- a/internal/rpc/group/create_group.go +++ /dev/null @@ -1,150 +0,0 @@ -package group - -import ( - "Open_IM/internal/rpc/chat" - "Open_IM/pkg/common/config" - "Open_IM/pkg/common/constant" - "Open_IM/pkg/common/db" - "Open_IM/pkg/common/db/mysql_model/im_mysql_model" - "Open_IM/pkg/common/log" - "Open_IM/pkg/common/token_verify" - "Open_IM/pkg/grpc-etcdv3/getcdv3" - pbGroup "Open_IM/pkg/proto/group" - "Open_IM/pkg/utils" - "context" - "google.golang.org/grpc" - "net" - "strconv" - "strings" - "time" -) - -type groupServer struct { - rpcPort int - rpcRegisterName string - etcdSchema string - etcdAddr []string -} - -func NewGroupServer(port int) *groupServer { - log.NewPrivateLog("group") - return &groupServer{ - rpcPort: port, - rpcRegisterName: config.Config.RpcRegisterName.OpenImGroupName, - etcdSchema: config.Config.Etcd.EtcdSchema, - etcdAddr: config.Config.Etcd.EtcdAddr, - } -} -func (s *groupServer) Run() { - log.Info("", "", "rpc group init....") - - ip := utils.ServerIP - registerAddress := ip + ":" + strconv.Itoa(s.rpcPort) - //listener network - listener, err := net.Listen("tcp", registerAddress) - if err != nil { - log.InfoByArgs("listen network failed,err=%s", err.Error()) - return - } - log.Info("", "", "listen network success, address = %s", registerAddress) - defer listener.Close() - //grpc server - srv := grpc.NewServer() - defer srv.GracefulStop() - //Service registers with etcd - pbGroup.RegisterGroupServer(srv, s) - err = getcdv3.RegisterEtcd(s.etcdSchema, strings.Join(s.etcdAddr, ","), ip, s.rpcPort, s.rpcRegisterName, 10) - if err != nil { - log.ErrorByArgs("get etcd failed,err=%s", err.Error()) - return - } - err = srv.Serve(listener) - if err != nil { - log.ErrorByArgs("listen rpc_group error,err=%s", err.Error()) - return - } - log.Info("", "", "rpc create group init success") -} - -func (s *groupServer) CreateGroup(ctx context.Context, req *pbGroup.CreateGroupReq) (*pbGroup.CreateGroupResp, error) { - log.NewInfo(req.OperationID, "CreateGroup, args=%s", req.String()) - var ( - groupId string - ) - //Parse token, to find current user information - claims, err := token_verify.ParseToken(req.Token) - if err != nil { - log.NewError(req.OperationID, "ParseToken failed, ", err.Error(), req.String()) - return &pbGroup.CreateGroupResp{ErrorCode: constant.ErrParseToken.ErrCode, ErrorMsg: constant.ErrParseToken.ErrMsg}, nil - } - //Time stamp + MD5 to generate group chat id - groupId = utils.Md5(strconv.FormatInt(time.Now().UnixNano(), 10)) - err = im_mysql_model.InsertIntoGroup(groupId, req.GroupName, req.Introduction, req.Notification, req.FaceUrl, req.Ex) - if err != nil { - log.NewError(req.OperationID, "InsertIntoGroup failed, ", err.Error(), req.String()) - return &pbGroup.CreateGroupResp{ErrorCode: constant.ErrCreateGroup.ErrCode, ErrorMsg: constant.ErrCreateGroup.ErrMsg}, nil - } - - isManagerFlag := 0 - tokenUid := claims.UID - - if utils.IsContain(tokenUid, config.Config.Manager.AppManagerUid) { - isManagerFlag = 1 - } - - us, err := im_mysql_model.FindUserByUID(claims.UID) - if err != nil { - log.Error("", req.OperationID, "find userInfo failed", err.Error()) - return &pbGroup.CreateGroupResp{ErrorCode: constant.ErrCreateGroup.ErrCode, ErrorMsg: constant.ErrCreateGroup.ErrMsg}, nil - } - - if isManagerFlag == 0 { - //Add the group owner to the group first, otherwise the group creation will fail - err = im_mysql_model.InsertIntoGroupMember(groupId, claims.UID, us.Nickname, us.FaceUrl, constant.GroupOwner) - if err != nil { - log.Error("", req.OperationID, "create group chat failed,err=%s", err.Error()) - return &pbGroup.CreateGroupResp{ErrorCode: constant.ErrCreateGroup.ErrCode, ErrorMsg: constant.ErrCreateGroup.ErrMsg}, nil - } - - err = db.DB.AddGroupMember(groupId, claims.UID) - if err != nil { - log.NewError(req.OperationID, "AddGroupMember failed ", err.Error(), groupId, claims.UID) - return &pbGroup.CreateGroupResp{ErrorCode: constant.ErrCreateGroup.ErrCode, ErrorMsg: constant.ErrCreateGroup.ErrMsg}, nil - } - } - - //Binding group id and member id - for _, user := range req.MemberList { - us, err := im_mysql_model.FindUserByUID(user.Uid) - if err != nil { - log.NewError(req.OperationID, "FindUserByUID failed ", err.Error(), user.Uid) - continue - } - err = im_mysql_model.InsertIntoGroupMember(groupId, user.Uid, us.Nickname, us.FaceUrl, user.SetRole) - if err != nil { - log.ErrorByArgs("InsertIntoGroupMember failed", user.Uid, groupId, err.Error()) - } - err = db.DB.AddGroupMember(groupId, user.Uid) - if err != nil { - log.Error("", "", "add mongo group member failed, db.DB.AddGroupMember fail [err: %s]", err.Error()) - } - } - - if isManagerFlag == 1 { - - } - group, err := im_mysql_model.FindGroupInfoByGroupId(groupId) - if err != nil { - log.NewError(req.OperationID, "FindGroupInfoByGroupId failed ", err.Error(), groupId) - return &pbGroup.CreateGroupResp{GroupID: groupId}, nil - } - memberList, err := im_mysql_model.FindGroupMemberListByGroupId(groupId) - if err != nil { - log.NewError(req.OperationID, "FindGroupMemberListByGroupId failed ", err.Error(), groupId) - return &pbGroup.CreateGroupResp{GroupID: groupId}, nil - } - chat.GroupCreatedNotification(req.OperationID, us, group, memberList) - log.NewInfo(req.OperationID, "GroupCreatedNotification, rpc CreateGroup success return ", groupId) - - return &pbGroup.CreateGroupResp{GroupID: groupId}, nil -} diff --git a/internal/rpc/group/get_group_applicationList.go b/internal/rpc/group/get_group_applicationList.go deleted file mode 100644 index a08b32f8e..000000000 --- a/internal/rpc/group/get_group_applicationList.go +++ /dev/null @@ -1,21 +0,0 @@ -package group - -import ( - "Open_IM/pkg/common/db/mysql_model/im_mysql_model" - "Open_IM/pkg/common/log" - "Open_IM/pkg/proto/group" - "context" -) - -func (s *groupServer) GetGroupApplicationList(_ context.Context, pb *group.GetGroupApplicationListReq) (*group.GetGroupApplicationListResp, error) { - log.Info("", "", "rpc GetGroupApplicationList call start..., [pb: %s]", pb.String()) - - reply, err := im_mysql_model.GetGroupApplicationList(pb.UID) - if err != nil { - log.Error("", "", "rpc GetGroupApplicationList call..., im_mysql_model.GetGroupApplicationList fail [uid: %s] [err: %s]", pb.UID, err.Error()) - return &group.GetGroupApplicationListResp{ErrCode: 701, ErrMsg: "GetGroupApplicationList failed"}, nil - } - log.Info("", "", "rpc GetGroupApplicationList call..., im_mysql_model.GetGroupApplicationList") - - return reply, nil -} diff --git a/internal/rpc/group/get_groups_info.go b/internal/rpc/group/get_groups_info.go deleted file mode 100644 index f0d952e94..000000000 --- a/internal/rpc/group/get_groups_info.go +++ /dev/null @@ -1,42 +0,0 @@ -package group - -import ( - "Open_IM/pkg/common/constant" - "Open_IM/pkg/common/db/mysql_model/im_mysql_model" - "Open_IM/pkg/common/log" - "Open_IM/pkg/common/token_verify" - pbGroup "Open_IM/pkg/proto/group" - "context" -) - -func (s *groupServer) GetGroupsInfo(ctx context.Context, req *pbGroup.GetGroupsInfoReq) (*pbGroup.GetGroupsInfoResp, error) { - log.Info(req.Token, req.OperationID, "rpc get group info is server,args=%s", req.String()) - //Parse token, to find current user information - claims, err := token_verify.ParseToken(req.Token) - if err != nil { - log.Error(req.Token, req.OperationID, "err=%s,parse token failed", err.Error()) - return &pbGroup.GetGroupsInfoResp{ErrorCode: constant.ErrParseToken.ErrCode, ErrorMsg: constant.ErrParseToken.ErrMsg}, nil - } - log.Info("", req.OperationID, "args:", req.GroupIDList, claims.UID) - groupsInfoList := make([]*pbGroup.GroupInfo, 0) - for _, groupID := range req.GroupIDList { - groupInfoFromMysql, err := im_mysql_model.FindGroupInfoByGroupId(groupID) - if err != nil { - log.Error(req.Token, req.OperationID, "find group info failed,err=%s", err.Error()) - continue - } - var groupInfo pbGroup.GroupInfo - groupInfo.GroupId = groupID - groupInfo.GroupName = groupInfoFromMysql.Name - groupInfo.Introduction = groupInfoFromMysql.Introduction - groupInfo.Notification = groupInfoFromMysql.Notification - groupInfo.FaceUrl = groupInfoFromMysql.FaceUrl - groupInfo.OwnerId = im_mysql_model.GetGroupOwnerByGroupId(groupID) - groupInfo.MemberCount = uint32(im_mysql_model.GetGroupMemberNumByGroupId(groupID)) - groupInfo.CreateTime = uint64(groupInfoFromMysql.CreateTime.Unix()) - - groupsInfoList = append(groupsInfoList, &groupInfo) - } - log.Info(req.Token, req.OperationID, "rpc get groupsInfo success return") - return &pbGroup.GetGroupsInfoResp{Data: groupsInfoList}, nil -} diff --git a/internal/rpc/group/group.go b/internal/rpc/group/group.go index e5b7cfc7d..bd8d3dd86 100644 --- a/internal/rpc/group/group.go +++ b/internal/rpc/group/group.go @@ -1,50 +1,183 @@ package group import ( - "Open_IM/internal/push/content_struct" - "Open_IM/internal/push/logic" + "Open_IM/internal/rpc/chat" "Open_IM/pkg/common/config" "Open_IM/pkg/common/constant" "Open_IM/pkg/common/db" - "Open_IM/pkg/common/token_verify" - pbChat "Open_IM/pkg/proto/chat" - "encoding/json" - + "Open_IM/pkg/common/db/mysql_model/im_mysql_model" imdb "Open_IM/pkg/common/db/mysql_model/im_mysql_model" "Open_IM/pkg/common/log" + "Open_IM/pkg/common/token_verify" + "Open_IM/pkg/grpc-etcdv3/getcdv3" pbGroup "Open_IM/pkg/proto/group" "Open_IM/pkg/utils" "context" - + "encoding/json" "fmt" + "google.golang.org/grpc" + "net" + "strconv" + "strings" + "time" ) +type groupServer struct { + rpcPort int + rpcRegisterName string + etcdSchema string + etcdAddr []string +} + +func NewGroupServer(port int) *groupServer { + log.NewPrivateLog("group") + return &groupServer{ + rpcPort: port, + rpcRegisterName: config.Config.RpcRegisterName.OpenImGroupName, + etcdSchema: config.Config.Etcd.EtcdSchema, + etcdAddr: config.Config.Etcd.EtcdAddr, + } +} +func (s *groupServer) Run() { + log.Info("", "", "rpc group init....") + + ip := utils.ServerIP + registerAddress := ip + ":" + strconv.Itoa(s.rpcPort) + //listener network + listener, err := net.Listen("tcp", registerAddress) + if err != nil { + log.InfoByArgs("listen network failed,err=%s", err.Error()) + return + } + log.Info("", "", "listen network success, address = %s", registerAddress) + defer listener.Close() + //grpc server + srv := grpc.NewServer() + defer srv.GracefulStop() + //Service registers with etcd + pbGroup.RegisterGroupServer(srv, s) + err = getcdv3.RegisterEtcd(s.etcdSchema, strings.Join(s.etcdAddr, ","), ip, s.rpcPort, s.rpcRegisterName, 10) + if err != nil { + log.ErrorByArgs("get etcd failed,err=%s", err.Error()) + return + } + err = srv.Serve(listener) + if err != nil { + log.ErrorByArgs("listen rpc_group error,err=%s", err.Error()) + return + } + log.Info("", "", "rpc create group init success") +} + +func (s *groupServer) CreateGroup(ctx context.Context, req *pbGroup.CreateGroupReq) (*pbGroup.CreateGroupResp, error) { + log.NewInfo(req.OperationID, "CreateGroup, args=%s", req.String()) + var ( + groupId string + ) + //Parse token, to find current user information + claims, err := token_verify.ParseToken(req.Token) + if err != nil { + log.NewError(req.OperationID, "ParseToken failed, ", err.Error(), req.String()) + return &pbGroup.CreateGroupResp{ErrCode: constant.ErrParseToken.ErrCode, ErrMsg: constant.ErrParseToken.ErrMsg}, nil + } + //Time stamp + MD5 to generate group chat id + groupId = utils.Md5(strconv.FormatInt(time.Now().UnixNano(), 10)) + err = im_mysql_model.InsertIntoGroup(groupId, req.GroupName, req.Introduction, req.Notification, req.FaceUrl, req.Ext) + if err != nil { + log.NewError(req.OperationID, "InsertIntoGroup failed, ", err.Error(), req.String()) + return &pbGroup.CreateGroupResp{ErrCode: constant.ErrCreateGroup.ErrCode, ErrMsg: constant.ErrCreateGroup.ErrMsg}, nil + } + + isManagerFlag := 0 + tokenUid := claims.UID + + if utils.IsContain(tokenUid, config.Config.Manager.AppManagerUid) { + isManagerFlag = 1 + } + + us, err := im_mysql_model.FindUserByUID(claims.UID) + if err != nil { + log.Error("", req.OperationID, "find userInfo failed", err.Error()) + return &pbGroup.CreateGroupResp{ErrCode: constant.ErrCreateGroup.ErrCode, ErrMsg: constant.ErrCreateGroup.ErrMsg}, nil + } + + if isManagerFlag == 0 { + //Add the group owner to the group first, otherwise the group creation will fail + err = im_mysql_model.InsertIntoGroupMember(groupId, claims.UID, us.Nickname, us.FaceUrl, constant.GroupOwner) + if err != nil { + log.Error("", req.OperationID, "create group chat failed,err=%s", err.Error()) + return &pbGroup.CreateGroupResp{ErrCode: constant.ErrCreateGroup.ErrCode, ErrMsg: constant.ErrCreateGroup.ErrMsg}, nil + } + + err = db.DB.AddGroupMember(groupId, claims.UID) + if err != nil { + log.NewError(req.OperationID, "AddGroupMember failed ", err.Error(), groupId, claims.UID) + return &pbGroup.CreateGroupResp{ErrCode: constant.ErrCreateGroup.ErrCode, ErrMsg: constant.ErrCreateGroup.ErrMsg}, nil + } + } + + //Binding group id and member id + for _, user := range req.MemberList { + us, err := im_mysql_model.FindUserByUID(user.Uid) + if err != nil { + log.NewError(req.OperationID, "FindUserByUID failed ", err.Error(), user.Uid) + continue + } + err = im_mysql_model.InsertIntoGroupMember(groupId, user.Uid, us.Nickname, us.FaceUrl, user.SetRole) + if err != nil { + log.ErrorByArgs("InsertIntoGroupMember failed", user.Uid, groupId, err.Error()) + } + err = db.DB.AddGroupMember(groupId, user.Uid) + if err != nil { + log.Error("", "", "add mongo group member failed, db.DB.AddGroupMember fail [err: %s]", err.Error()) + } + } + + if isManagerFlag == 1 { + + } + group, err := im_mysql_model.FindGroupInfoByGroupId(groupId) + if err != nil { + log.NewError(req.OperationID, "FindGroupInfoByGroupId failed ", err.Error(), groupId) + return &pbGroup.CreateGroupResp{GroupID: groupId}, nil + } + memberList, err := im_mysql_model.FindGroupMemberListByGroupId(groupId) + if err != nil { + log.NewError(req.OperationID, "FindGroupMemberListByGroupId failed ", err.Error(), groupId) + return &pbGroup.CreateGroupResp{GroupID: groupId}, nil + } + chat.GroupCreatedNotification(req.OperationID, us, group, memberList) + log.NewInfo(req.OperationID, "GroupCreatedNotification, rpc CreateGroup success return ", groupId) + + return &pbGroup.CreateGroupResp{GroupID: groupId}, nil +} + func (s *groupServer) GetJoinedGroupList(ctx context.Context, req *pbGroup.GetJoinedGroupListReq) (*pbGroup.GetJoinedGroupListResp, error) { claims, err := token_verify.ParseToken(req.Token) if err != nil { log.Error(req.Token, req.OperationID, "err=%s,parse token failed", err.Error()) - return &pbGroup.GetJoinedGroupListResp{ErrorCode: constant.ErrParseToken.ErrCode, ErrorMsg: constant.ErrParseToken.ErrMsg}, nil + return &pbGroup.GetJoinedGroupListResp{ErrCode: constant.ErrParseToken.ErrCode, ErrorMsg: constant.ErrParseToken.ErrMsg}, nil } log.Info(claims.UID, req.OperationID, "recv req: ", req.String()) joinedGroupList, err := imdb.GetJoinedGroupIdListByMemberId(claims.UID) if err != nil { log.Error(claims.UID, req.OperationID, "GetJoinedGroupIdListByMemberId failed, err: ", err.Error()) - return &pbGroup.GetJoinedGroupListResp{ErrorCode: constant.ErrParam.ErrCode, ErrorMsg: constant.ErrParam.ErrMsg}, nil + return &pbGroup.GetJoinedGroupListResp{ErrCode: constant.ErrParam.ErrCode, ErrorMsg: constant.ErrParam.ErrMsg}, nil } var resp pbGroup.GetJoinedGroupListResp for _, v := range joinedGroupList { var groupNode pbGroup.GroupInfo - num := imdb.GetGroupMemberNumByGroupId(v.GroupId) - owner := imdb.GetGroupOwnerByGroupId(v.GroupId) - group, err := imdb.FindGroupInfoByGroupId(v.GroupId) + num := imdb.GetGroupMemberNumByGroupId(v.GroupID) + owner := imdb.GetGroupOwnerByGroupId(v.GroupID) + group, err := imdb.FindGroupInfoByGroupId(v.GroupID) if num > 0 && owner != "" && err == nil { - groupNode.GroupId = v.GroupId + groupNode.GroupId = v.GroupID groupNode.FaceUrl = group.FaceUrl groupNode.CreateTime = uint64(group.CreateTime.Unix()) - groupNode.GroupName = group.Name + groupNode.GroupName = group.GroupName groupNode.Introduction = group.Introduction groupNode.Notification = group.Notification groupNode.OwnerId = owner @@ -53,28 +186,21 @@ func (s *groupServer) GetJoinedGroupList(ctx context.Context, req *pbGroup.GetJo } log.Info(claims.UID, req.OperationID, "member num: ", num, "owner: ", owner) } - resp.ErrorCode = 0 + resp.ErrCode = 0 return &resp, nil } func (s *groupServer) InviteUserToGroup(ctx context.Context, req *pbGroup.InviteUserToGroupReq) (*pbGroup.InviteUserToGroupResp, error) { - claims, err := token_verify.ParseToken(req.Token) - if err != nil { - log.Error(req.Token, req.OperationID, "err=%s,parse token failed", err.Error()) - return &pbGroup.InviteUserToGroupResp{ErrorCode: constant.ErrParseToken.ErrCode, ErrorMsg: constant.ErrParseToken.ErrMsg}, nil - } - log.Info(claims.UID, req.OperationID, "recv req: ", req.String()) - // if !imdb.IsExistGroupMember(req.GroupID, claims.UID) && claims.UID != config.Config.AppManagerUid - - if !imdb.IsExistGroupMember(req.GroupID, claims.UID) && !utils.IsContain(claims.UID, config.Config.Manager.AppManagerUid) { - log.Error(req.Token, req.OperationID, "err= invite user not in group") - return &pbGroup.InviteUserToGroupResp{ErrorCode: constant.ErrAccess.ErrCode, ErrorMsg: constant.ErrAccess.ErrMsg}, nil + log.NewInfo(req.OperationID, "InviteUserToGroup args: ", req.String()) + if !imdb.IsExistGroupMember(req.GroupID, req.OpUserID) && !utils.IsContain(req.OpUserID, config.Config.Manager.AppManagerUid) { + log.NewError(req.OperationID, "no permission InviteUserToGroup ", req.GroupID) + return &pbGroup.InviteUserToGroupResp{ErrCode: constant.ErrAccess.ErrCode, ErrMsg: constant.ErrAccess.ErrMsg}, nil } groupInfoFromMysql, err := imdb.FindGroupInfoByGroupId(req.GroupID) if err != nil || groupInfoFromMysql == nil { - log.NewError(req.OperationID, "get group info error", req.GroupID, req.UidList) - return &pbGroup.InviteUserToGroupResp{ErrorCode: constant.ErrAccess.ErrCode, ErrorMsg: constant.ErrAccess.ErrMsg}, nil + log.NewError(req.OperationID, "FindGroupInfoByGroupId failed", req.GroupID) + return &pbGroup.InviteUserToGroupResp{ErrCode: constant.ErrAccess.ErrCode, ErrMsg: constant.ErrAccess.ErrMsg}, nil } // @@ -82,12 +208,10 @@ func (s *groupServer) InviteUserToGroup(ctx context.Context, req *pbGroup.Invite //to user: invite: invited //to application var resp pbGroup.InviteUserToGroupResp - /* - fromUserInfo, err := imdb.FindUserByUID(claims.UID) - if err != nil { - log.Error(claims.UID, req.OperationID, "FindUserByUID failed, err: ", err.Error()) - return &pbGroup.InviteUserToGroupResp{ErrorCode: config.ErrParam.ErrCode, ErrorMsg: config.ErrParam.ErrMsg}, nil - }*/ + opUser, err := imdb.FindUserByUID(req.OpUserID) + if err != nil { + log.NewError(req.OperationID, "FindUserByUID failed ", err.Error(), req.OpUserID) + } var nicknameList string for _, v := range req.UidList { var resultNode pbGroup.Id2Result @@ -95,58 +219,42 @@ func (s *groupServer) InviteUserToGroup(ctx context.Context, req *pbGroup.Invite resultNode.Result = 0 toUserInfo, err := imdb.FindUserByUID(v) if err != nil { - log.Error(v, req.OperationID, "FindUserByUID failed, err: ", err.Error()) + log.NewError(req.OperationID, "FindUserByUID failed ", err.Error()) resultNode.Result = -1 resp.Id2Result = append(resp.Id2Result, &resultNode) continue } if imdb.IsExistGroupMember(req.GroupID, v) { - log.Error(v, req.OperationID, "user has already in group") + log.NewError(req.OperationID, "ExistGroupMember failed ", req.GroupID, v) resultNode.Result = -1 resp.Id2Result = append(resp.Id2Result, &resultNode) continue } - err = imdb.InsertGroupMember(req.GroupID, toUserInfo.UID, toUserInfo.Name, toUserInfo.Icon, 0) + err = imdb.InsertGroupMember(req.GroupID, toUserInfo.UserID, toUserInfo.Nickname, toUserInfo.FaceUrl, 0) if err != nil { - log.Error(v, req.OperationID, "InsertGroupMember failed, ", err.Error(), "params: ", - req.GroupID, toUserInfo.UID, toUserInfo.Name, toUserInfo.Icon) + log.NewError(req.OperationID, "InsertGroupMember failed ", req.GroupID, toUserInfo.UserID, toUserInfo.Nickname, toUserInfo.FaceUrl) resultNode.Result = -1 resp.Id2Result = append(resp.Id2Result, &resultNode) continue } - err = db.DB.AddGroupMember(req.GroupID, toUserInfo.UID) + member, err := imdb.GetMemberInfoById(req.GroupID, v) + if groupInfoFromMysql != nil && opUser != nil && member != nil { + chat.MemberInvitedNotification(req.OperationID, *groupInfoFromMysql, *opUser, *member) + } else { + log.NewError(req.OperationID, "args failed, nil ", groupInfoFromMysql, opUser, member) + } + + err = db.DB.AddGroupMember(req.GroupID, toUserInfo.UserID) if err != nil { log.Error("", "", "add mongo group member failed, db.DB.AddGroupMember fail [err: %s]", err.Error()) } - nicknameList = nicknameList + toUserInfo.Name + " " + nicknameList = nicknameList + toUserInfo.Nickname + " " resp.Id2Result = append(resp.Id2Result, &resultNode) } - resp.ErrorCode = 0 - resp.ErrorMsg = "ok" - - //if claims.UID == config.Config.AppManagerUid - if utils.IsContain(claims.UID, config.Config.Manager.AppManagerUid) { - m, _ := imdb.FindUserByUID(claims.UID) - var iu inviteUserToGroupReq - iu.GroupID = req.GroupID - iu.OperationID = req.OperationID - iu.Reason = req.Reason - iu.UidList = req.UidList - n := content_struct.NotificationContent{1, nicknameList + " invited into the group chat by " + m.Name, iu.ContentToString()} - logic.SendMsgByWS(&pbChat.WSToMsgSvrChatMsg{ - SendID: claims.UID, - RecvID: req.GroupID, - Content: n.ContentToString(), - SendTime: utils.GetCurrentTimestampByNano(), - MsgFrom: constant.UserMsgType, - ContentType: constant.InviteUserToGroupTip, - SessionType: constant.GroupChatType, - OperationID: req.OperationID, - }) - } + resp.ErrCode = 0 return &resp, nil } @@ -164,20 +272,12 @@ func (c *inviteUserToGroupReq) ContentToString() string { } func (s *groupServer) GetGroupAllMember(ctx context.Context, req *pbGroup.GetGroupAllMemberReq) (*pbGroup.GetGroupAllMemberResp, error) { - //claims, err := utils.ParseToken(req.Token) - //if err != nil { - // log.Error(req.Token, req.OperationID, "err=%s,parse token failed", err.Error()) - // if req.Token != config.Config.Secret { - // return &pbGroup.GetGroupAllMemberResp{ErrorCode: config.ErrParseToken.ErrCode, ErrorMsg: config.ErrParseToken.ErrMsg}, nil - // } - //} - var resp pbGroup.GetGroupAllMemberResp - resp.ErrorCode = 0 + resp.ErrCode = 0 memberList, err := imdb.FindGroupMemberListByGroupId(req.GroupID) if err != nil { - resp.ErrorCode = constant.ErrDb.ErrCode - resp.ErrorMsg = err.Error() + resp.ErrCode = constant.ErrDb.ErrCode + resp.ErrMsg = err.Error() log.NewError(req.OperationID, "FindGroupMemberListByGroupId failed,", err.Error(), req.GroupID) return &resp, nil } @@ -186,13 +286,13 @@ func (s *groupServer) GetGroupAllMember(ctx context.Context, req *pbGroup.GetGro var node pbGroup.GroupMemberFullInfo node.Role = v.AdministratorLevel node.NickName = v.NickName - node.UserId = v.Uid - node.FaceUrl = v.UserGroupFaceUrl + node.UserId = v.UserID + node.FaceUrl = v.FaceUrl node.JoinTime = uint64(v.JoinTime.Unix()) resp.MemberList = append(resp.MemberList, &node) } - resp.ErrorCode = 0 + resp.ErrCode = 0 return &resp, nil } @@ -200,16 +300,16 @@ func (s *groupServer) GetGroupMemberList(ctx context.Context, req *pbGroup.GetGr claims, err := token_verify.ParseToken(req.Token) if err != nil { log.Error(req.Token, req.OperationID, "err=%s,parse token failed", err.Error()) - return &pbGroup.GetGroupMemberListResp{ErrorCode: constant.ErrParseToken.ErrCode, ErrorMsg: constant.ErrParseToken.ErrMsg}, nil + return &pbGroup.GetGroupMemberListResp{ErrCode: constant.ErrParseToken.ErrCode, ErrMsg: constant.ErrParseToken.ErrMsg}, nil } // log.Info(claims.UID, req.OperationID, "recv req: ", req.String()) fmt.Println("req: ", req.GroupID) var resp pbGroup.GetGroupMemberListResp - resp.ErrorCode = 0 + resp.ErrCode = 0 memberList, err := imdb.GetGroupMemberByGroupId(req.GroupID, req.Filter, req.NextSeq, 30) if err != nil { - resp.ErrorCode = constant.ErrDb.ErrCode - resp.ErrorMsg = err.Error() + resp.ErrCode = constant.ErrDb.ErrCode + resp.ErrMsg = err.Error() log.Error(claims.UID, req.OperationID, "GetGroupMemberByGroupId failed, ", err.Error(), "params: ", req.GroupID, req.Filter, req.NextSeq) return &resp, nil } @@ -218,7 +318,7 @@ func (s *groupServer) GetGroupMemberList(ctx context.Context, req *pbGroup.GetGr var node pbGroup.GroupMemberFullInfo node.Role = v.AdministratorLevel node.NickName = v.NickName - node.UserId = v.Uid + node.UserId = v.UserID // node.FaceUrl = node.JoinTime = uint64(v.JoinTime.Unix()) resp.MemberList = append(resp.MemberList, &node) @@ -230,7 +330,7 @@ func (s *groupServer) GetGroupMemberList(ctx context.Context, req *pbGroup.GetGr resp.NextSeq = req.NextSeq + int32(len(memberList)) } - resp.ErrorCode = 0 + resp.ErrCode = 0 return &resp, nil } @@ -257,54 +357,51 @@ func (c *kickGroupMemberApiReq) ContentToString() string { } func (s *groupServer) KickGroupMember(ctx context.Context, req *pbGroup.KickGroupMemberReq) (*pbGroup.KickGroupMemberResp, error) { - claims, err := token_verify.ParseToken(req.Token) - if err != nil { - log.Error(req.Token, req.OperationID, "err=%s,parse token failed", err.Error()) - return &pbGroup.KickGroupMemberResp{ErrorCode: constant.ErrParseToken.ErrCode, ErrorMsg: constant.ErrParseToken.ErrMsg}, nil - } - log.Info(claims.UID, req.OperationID, "recv req: ", req.String()) - + log.NewInfo(req.OperationID, "KickGroupMember failed ", req.String()) ownerList, err := imdb.GetOwnerManagerByGroupId(req.GroupID) if err != nil { - log.Error(claims.UID, req.OperationID, req.GroupID, "GetOwnerManagerByGroupId, ", err.Error()) - return &pbGroup.KickGroupMemberResp{ErrorCode: constant.ErrParam.ErrCode, ErrorMsg: constant.ErrParam.ErrMsg}, nil + log.NewError(req.OperationID, "GetOwnerManagerByGroupId failed ", err.Error(), req.GroupID) + return &pbGroup.KickGroupMemberResp{ErrCode: constant.ErrParam.ErrCode, ErrMsg: constant.ErrParam.ErrMsg}, nil } //op is group owner? var flag = 0 for _, v := range ownerList { - if v.Uid == claims.UID { + if v.UserID == req.OpUserID { flag = 1 + log.NewInfo(req.OperationID, "is group owner ", req.OpUserID, req.GroupID) break } } + if flag != 1 { - // if claims.UID == config.Config.AppManagerUid { - if utils.IsContain(claims.UID, config.Config.Manager.AppManagerUid) { + if utils.IsContain(req.OpUserID, config.Config.Manager.AppManagerUid) { flag = 1 + log.NewInfo(req.OperationID, "is app manager ", req.OpUserID, req.GroupID) } } if flag != 1 { - log.Error(claims.UID, req.OperationID, "no access kick") - return &pbGroup.KickGroupMemberResp{ErrorCode: constant.ErrAccess.ErrCode, ErrorMsg: constant.ErrAccess.ErrMsg}, nil + log.NewError(req.OperationID, "failed, no access kick") + return &pbGroup.KickGroupMemberResp{ErrCode: constant.ErrAccess.ErrCode, ErrMsg: constant.ErrAccess.ErrMsg}, nil } if len(req.UidListInfo) == 0 { - log.Error(claims.UID, req.OperationID, "kick list 0") - return &pbGroup.KickGroupMemberResp{ErrorCode: constant.ErrParam.ErrCode, ErrorMsg: constant.ErrParam.ErrMsg}, nil + log.NewError(req.OperationID, "failed, kick list 0") + return &pbGroup.KickGroupMemberResp{ErrCode: constant.ErrParam.ErrCode, ErrMsg: constant.ErrParam.ErrMsg}, nil } + //remove var resp pbGroup.KickGroupMemberResp for _, v := range req.UidListInfo { //owner cant kicked - if v.UserId == claims.UID { - log.Error(claims.UID, req.OperationID, v.UserId, "cant kick owner") + if v.UserId == req.OpUserID { + log.NewError(req.OperationID, v.UserId, "failed, can't kick owner ", req.OpUserID) resp.Id2Result = append(resp.Id2Result, &pbGroup.Id2Result{UId: v.UserId, Result: -1}) continue } err := imdb.RemoveGroupMember(req.GroupID, v.UserId) if err != nil { - log.Error(claims.UID, req.OperationID, v.UserId, req.GroupID, "RemoveGroupMember failed ", err.Error()) + log.NewError(req.OperationID, "RemoveGroupMember failed ", err.Error(), req.GroupID, v.UserId) resp.Id2Result = append(resp.Id2Result, &pbGroup.Id2Result{UId: v.UserId, Result: -1}) } else { resp.Id2Result = append(resp.Id2Result, &pbGroup.Id2Result{UId: v.UserId, Result: 0}) @@ -312,53 +409,15 @@ func (s *groupServer) KickGroupMember(ctx context.Context, req *pbGroup.KickGrou err = db.DB.DelGroupMember(req.GroupID, v.UserId) if err != nil { - log.Error("", "", "delete mongo group member failed, db.DB.DelGroupMember fail [err: %s]", err.Error()) + log.NewError(req.OperationID, "DelGroupMember failed ", err.Error(), req.GroupID, v.UserId) } - } - var kq kickGroupMemberApiReq - - kq.GroupID = req.GroupID - kq.OperationID = req.OperationID - kq.Reason = req.Reason - var gf groupMemberFullInfo for _, v := range req.UidListInfo { - gf.UserId = v.UserId - gf.GroupId = req.GroupID - kq.UidListInfo = append(kq.UidListInfo, gf) - } - - n := content_struct.NotificationContent{1, req.GroupID, kq.ContentToString()} - - if utils.IsContain(claims.UID, config.Config.Manager.AppManagerUid) { - log.Info("", req.OperationID, claims.UID, req.GroupID) - logic.SendMsgByWS(&pbChat.WSToMsgSvrChatMsg{ - SendID: claims.UID, - RecvID: req.GroupID, - Content: n.ContentToString(), - SendTime: utils.GetCurrentTimestampByNano(), - MsgFrom: constant.UserMsgType, - ContentType: constant.KickGroupMemberTip, - SessionType: constant.GroupChatType, - OperationID: req.OperationID, - }) - - for _, v := range req.UidListInfo { - log.Info("", req.OperationID, claims.UID, v.UserId) - logic.SendMsgByWS(&pbChat.WSToMsgSvrChatMsg{ - SendID: claims.UID, - RecvID: v.UserId, - Content: n.ContentToString(), - SendTime: utils.GetCurrentTimestampBySecond(), - MsgFrom: constant.UserMsgType, - ContentType: constant.KickGroupMemberTip, - SessionType: constant.SingleChatType, - OperationID: req.OperationID, - }) - } + chat.MemberKickedNotificationID(req.OperationID, req.GroupID, req.OpUserID, v.UserId, req.Reason) } - resp.ErrorCode = 0 + + resp.ErrCode = 0 return &resp, nil } @@ -366,7 +425,7 @@ func (s *groupServer) GetGroupMembersInfo(ctx context.Context, req *pbGroup.GetG claims, err := token_verify.ParseToken(req.Token) if err != nil { log.Error(req.Token, req.OperationID, "err=%s,parse token failed", err.Error()) - return &pbGroup.GetGroupMembersInfoResp{ErrorCode: constant.ErrParseToken.ErrCode, ErrorMsg: constant.ErrParseToken.ErrMsg}, nil + return &pbGroup.GetGroupMembersInfoResp{ErrCode: constant.ErrParseToken.ErrCode, ErrMsg: constant.ErrParseToken.ErrMsg}, nil } log.InfoByKv(claims.UID, req.OperationID, "param: ", req.MemberList) var resp pbGroup.GetGroupMembersInfoResp @@ -392,6 +451,234 @@ func (s *groupServer) GetGroupMembersInfo(ctx context.Context, req *pbGroup.GetG } resp.MemberList = append(resp.MemberList, &memberNode) } - resp.ErrorCode = 0 + resp.ErrCode = 0 return &resp, nil } + +func (s *groupServer) GetGroupApplicationList(_ context.Context, pb *pbGroup.GetGroupApplicationListReq) (*pbGroup.GetGroupApplicationListResp, error) { + log.Info("", "", "rpc GetGroupApplicationList call start..., [pb: %s]", pb.String()) + + reply, err := im_mysql_model.GetGroupApplicationList(pb.OpUserID) + if err != nil { + return &pbGroup.GetGroupApplicationListResp{ErrCode: 701, ErrMsg: "GetGroupApplicationList failed"}, nil + } + log.Info("", "", "rpc GetGroupApplicationList call..., im_mysql_model.GetGroupApplicationList") + + return reply, nil +} + +func (s *groupServer) GetGroupsInfo(ctx context.Context, req *pbGroup.GetGroupsInfoReq) (*pbGroup.GetGroupsInfoResp, error) { + log.Info(req.Token, req.OperationID, "rpc get group info is server,args=%s", req.String()) + //Parse token, to find current user information + claims, err := token_verify.ParseToken(req.Token) + if err != nil { + log.Error(req.Token, req.OperationID, "err=%s,parse token failed", err.Error()) + return &pbGroup.GetGroupsInfoResp{ErrCode: constant.ErrParseToken.ErrCode, ErrMsg: constant.ErrParseToken.ErrMsg}, nil + } + log.Info("", req.OperationID, "args:", req.GroupIDList, claims.UID) + groupsInfoList := make([]*pbGroup.GroupInfo, 0) + for _, groupID := range req.GroupIDList { + groupInfoFromMysql, err := im_mysql_model.FindGroupInfoByGroupId(groupID) + if err != nil { + log.Error(req.Token, req.OperationID, "find group info failed,err=%s", err.Error()) + continue + } + var groupInfo pbGroup.GroupInfo + groupInfo.GroupId = groupID + groupInfo.GroupName = groupInfoFromMysql.GroupName + groupInfo.Introduction = groupInfoFromMysql.Introduction + groupInfo.Notification = groupInfoFromMysql.Notification + groupInfo.FaceUrl = groupInfoFromMysql.FaceUrl + groupInfo.OwnerId = im_mysql_model.GetGroupOwnerByGroupId(groupID) + groupInfo.MemberCount = uint32(im_mysql_model.GetGroupMemberNumByGroupId(groupID)) + groupInfo.CreateTime = uint64(groupInfoFromMysql.CreateTime.Unix()) + + groupsInfoList = append(groupsInfoList, &groupInfo) + } + log.Info(req.Token, req.OperationID, "rpc get groupsInfo success return") + return &pbGroup.GetGroupsInfoResp{Data: groupsInfoList}, nil +} + +func (s *groupServer) GroupApplicationResponse(_ context.Context, pb *pbGroup.GroupApplicationResponseReq) (*pbGroup.GroupApplicationResponseResp, error) { + log.NewInfo(pb.OperationID, "GroupApplicationResponse args: ", pb.String()) + reply, err := imdb.GroupApplicationResponse(pb) + if err != nil { + log.NewError(pb.OperationID, "GroupApplicationResponse failed ", err.Error(), pb.String()) + return &pbGroup.GroupApplicationResponseResp{ErrCode: 702, ErrMsg: err.Error()}, nil + } + + if pb.HandleResult == 1 { + if pb.ToUserID == "0" { + err = db.DB.AddGroupMember(pb.GroupID, pb.FromUserID) + if err != nil { + log.Error("", "", "rpc GroupApplicationResponse call..., db.DB.AddGroupMember fail [pb: %s] [err: %s]", pb.String(), err.Error()) + return nil, err + } + } else { + err = db.DB.AddGroupMember(pb.GroupID, pb.ToUserID) + if err != nil { + log.Error("", "", "rpc GroupApplicationResponse call..., db.DB.AddGroupMember fail [pb: %s] [err: %s]", pb.String(), err.Error()) + return nil, err + } + } + } + if pb.ToUserID == "0" { + group, err := imdb.FindGroupInfoByGroupId(pb.GroupID) + if err != nil { + log.NewError(pb.OperationID, "FindGroupInfoByGroupId failed ", pb.GroupID) + return reply, nil + } + member, err := imdb.FindGroupMemberInfoByGroupIdAndUserId(pb.GroupID, pb.OpUserID) + if err != nil { + log.NewError(pb.OperationID, "FindGroupMemberInfoByGroupIdAndUserId failed ", pb.GroupID, pb.OpUserID) + return reply, nil + } + chat.ApplicationProcessedNotification(pb.OperationID, pb.FromUserID, *group, *member, pb.HandleResult, pb.HandledMsg) + if pb.HandleResult == 1 { + entrantUser, err := imdb.FindGroupMemberInfoByGroupIdAndUserId(pb.GroupID, pb.FromUserID) + if err != nil { + log.NewError(pb.OperationID, "FindGroupMemberInfoByGroupIdAndUserId failed ", err.Error(), pb.GroupID, pb.FromUserID) + return reply, nil + } + chat.MemberEnterNotification(pb.OperationID, group, entrantUser) + } + } else { + log.NewError(pb.OperationID, "args failed ", pb.String()) + } + + log.NewInfo(pb.OperationID, "rpc GroupApplicationResponse ok ", reply) + return reply, nil +} + +func (s *groupServer) JoinGroup(ctx context.Context, req *pbGroup.JoinGroupReq) (*pbGroup.CommonResp, error) { + log.NewInfo(req.Token, req.OperationID, "JoinGroup args ", req.String()) + //Parse token, to find current user information + claims, err := token_verify.ParseToken(req.Token) + if err != nil { + log.NewError(req.OperationID, "ParseToken failed", err.Error(), req.String()) + return &pbGroup.CommonResp{ErrCode: constant.ErrParseToken.ErrCode, ErrMsg: constant.ErrParseToken.ErrMsg}, nil + } + applicationUserInfo, err := im_mysql_model.FindUserByUID(claims.UID) + if err != nil { + log.NewError(req.OperationID, "FindUserByUID failed", err.Error(), claims.UID) + return &pbGroup.CommonResp{ErrCode: constant.ErrSearchUserInfo.ErrCode, ErrMsg: constant.ErrSearchUserInfo.ErrMsg}, nil + } + + _, err = im_mysql_model.FindGroupRequestUserInfoByGroupIDAndUid(req.GroupID, claims.UID) + if err == nil { + err = im_mysql_model.DelGroupRequest(req.GroupID, claims.UID, "0") + } + + if err = im_mysql_model.InsertIntoGroupRequest(req.GroupID, claims.UID, "0", req.Message, applicationUserInfo.Nickname, applicationUserInfo.FaceUrl); err != nil { + log.Error(req.Token, req.OperationID, "Insert into group request failed,er=%s", err.Error()) + return &pbGroup.CommonResp{ErrCode: constant.ErrJoinGroupApplication.ErrCode, ErrMsg: constant.ErrJoinGroupApplication.ErrMsg}, nil + } + + memberList, err := im_mysql_model.FindGroupMemberListByGroupIdAndFilterInfo(req.GroupID, constant.GroupOwner) + if len(memberList) == 0 { + log.NewError(req.OperationID, "FindGroupMemberListByGroupIdAndFilterInfo failed ", req.GroupID, constant.GroupOwner, err) + return &pbGroup.CommonResp{ErrCode: 0, ErrMsg: ""}, nil + } + group, err := im_mysql_model.FindGroupInfoByGroupId(req.GroupID) + if err != nil { + log.NewError(req.OperationID, "FindGroupInfoByGroupId failed ", req.GroupID) + return &pbGroup.CommonResp{ErrCode: 0, ErrMsg: ""}, nil + } + chat.ReceiveJoinApplicationNotification(req.OperationID, memberList[0].UserID, applicationUserInfo, group) + + log.NewInfo(req.OperationID, "ReceiveJoinApplicationNotification rpc JoinGroup success return") + return &pbGroup.CommonResp{ErrCode: 0, ErrMsg: ""}, nil +} + +func (s *groupServer) QuitGroup(ctx context.Context, req *pbGroup.QuitGroupReq) (*pbGroup.CommonResp, error) { + log.NewError("QuitGroup args ", req.String()) + + _, err := im_mysql_model.FindGroupMemberInfoByGroupIdAndUserId(req.GroupID, req.OpUserID) + if err != nil { + log.NewError(req.OperationID, "FindGroupMemberInfoByGroupIdAndUserId failed", err.Error(), req.GroupID, req.OpUserID) + return &pbGroup.CommonResp{ErrCode: constant.ErrQuitGroup.ErrCode, ErrMsg: constant.ErrQuitGroup.ErrMsg}, nil + } + + err = im_mysql_model.DeleteGroupMemberByGroupIdAndUserId(req.GroupID, req.OpUserID) + if err != nil { + log.NewError(req.OperationID, "DeleteGroupMemberByGroupIdAndUserId failed ", err.Error(), req.GroupID, req.OpUserID) + return &pbGroup.CommonResp{ErrCode: constant.ErrQuitGroup.ErrCode, ErrMsg: constant.ErrQuitGroup.ErrMsg}, nil + } + + err = db.DB.DelGroupMember(req.GroupID, req.OpUserID) + if err != nil { + log.NewError(req.OperationID, "DelGroupMember failed ", req.GroupID, req.OpUserID) + // return &pbGroup.CommonResp{ErrorCode: constant.ErrQuitGroup.ErrCode, ErrorMsg: constant.ErrQuitGroup.ErrMsg}, nil + } + + chat.MemberLeaveNotification(req.OperationID, req.GroupID, req.OpUserID) + log.NewInfo(req.OperationID, "rpc quit group is success return") + return &pbGroup.CommonResp{}, nil +} + +func hasAccess(req *pbGroup.SetGroupInfoReq) bool { + if utils.IsContain(req.OpUserID, config.Config.Manager.AppManagerUid) { + return true + } + groupUserInfo, err := im_mysql_model.FindGroupMemberInfoByGroupIdAndUserId(req.GroupID, req.OpUserID) + if err != nil { + log.NewError(req.OperationID, "FindGroupMemberInfoByGroupIdAndUserId failed, ", err.Error(), req.GroupID, req.OpUserID) + return false + + } + if groupUserInfo.AdministratorLevel == constant.OrdinaryMember { + return true + } +} + +func (s *groupServer) SetGroupInfo(ctx context.Context, req *pbGroup.SetGroupInfoReq) (*pbGroup.CommonResp, error) { + log.NewInfo(req.OperationID, "SetGroupInfo args ", req.String()) + if !hasAccess(req) { + log.NewError(req.OperationID, "no access ") + return &pbGroup.CommonResp{ErrCode: constant.ErrSetGroupInfo.ErrCode, ErrMsg: constant.ErrAccess.ErrMsg}, nil + } + + group, err := im_mysql_model.FindGroupInfoByGroupId(req.GroupID) + if err != nil { + log.NewError(req.OperationID, "FindGroupInfoByGroupId failed, ", err.Error(), req.GroupID) + return &pbGroup.CommonResp{ErrCode: constant.ErrSetGroupInfo.ErrCode, ErrMsg: constant.ErrAccess.ErrMsg}, nil + } + + ////bitwise operators: 1:groupName; 10:Notification 100:Introduction; 1000:FaceUrl + var changedType int32 + if group.GroupName != req.GroupName && req.GroupName != "" { + changedType = 1 + } + if group.Notification != req.Notification && req.Notification != "" { + changedType = changedType | (1 << 1) + } + if group.Introduction != req.Introduction && req.Introduction != "" { + changedType = changedType | (1 << 2) + } + if group.FaceUrl != req.FaceUrl && req.FaceUrl != "" { + changedType = changedType | (1 << 3) + } + //only administrators can set group information + if err = im_mysql_model.SetGroupInfo(req.GroupID, req.GroupName, req.Introduction, req.Notification, req.FaceUrl, ""); err != nil { + return &pbGroup.CommonResp{ErrCode: constant.ErrSetGroupInfo.ErrCode, ErrMsg: constant.ErrSetGroupInfo.ErrMsg}, nil + } + + if changedType != 0 { + chat.GroupInfoChangedNotification(req.OperationID, changedType, req.GroupID, req.OpUserID) + } + + return &pbGroup.CommonResp{}, nil +} + +func (s *groupServer) TransferGroupOwner(_ context.Context, pb *pbGroup.TransferGroupOwnerReq) (*pbGroup.TransferGroupOwnerResp, error) { + log.Info("", "", "rpc TransferGroupOwner call start..., [pb: %s]", pb.String()) + + reply, err := im_mysql_model.TransferGroupOwner(pb) + if err != nil { + log.Error("", "", "rpc TransferGroupOwner call..., im_mysql_model.TransferGroupOwner fail [pb: %s] [err: %s]", pb.String(), err.Error()) + return nil, err + } + log.Info("", "", "rpc TransferGroupOwner call..., im_mysql_model.TransferGroupOwner") + + return reply, nil +} diff --git a/internal/rpc/group/group_application_response.go b/internal/rpc/group/group_application_response.go deleted file mode 100644 index e51339575..000000000 --- a/internal/rpc/group/group_application_response.go +++ /dev/null @@ -1,56 +0,0 @@ -package group - -import ( - "Open_IM/internal/rpc/chat" - "Open_IM/pkg/common/db" - immsql "Open_IM/pkg/common/db/mysql_model/im_mysql_model" - "Open_IM/pkg/common/log" - "Open_IM/pkg/proto/group" - "context" -) - -func (s *groupServer) GroupApplicationResponse(_ context.Context, pb *group.GroupApplicationResponseReq) (*group.GroupApplicationResponseResp, error) { - log.NewInfo(pb.OperationID, "GroupApplicationResponse args: ", pb.String()) - reply, err := immsql.GroupApplicationResponse(pb) - if err != nil { - log.NewError(pb.OperationID, "GroupApplicationResponse failed ", err.Error(), pb) - return &group.GroupApplicationResponseResp{ErrCode: 702, ErrMsg: err.Error()}, nil - } - - if pb.HandleResult == 1 { - if pb.ToUserID == "0" { - err = db.DB.AddGroupMember(pb.GroupID, pb.FromUserID) - if err != nil { - log.Error("", "", "rpc GroupApplicationResponse call..., db.DB.AddGroupMember fail [pb: %s] [err: %s]", pb.String(), err.Error()) - return nil, err - } - } else { - err = db.DB.AddGroupMember(pb.GroupID, pb.ToUserID) - if err != nil { - log.Error("", "", "rpc GroupApplicationResponse call..., db.DB.AddGroupMember fail [pb: %s] [err: %s]", pb.String(), err.Error()) - return nil, err - } - } - } - if pb.ToUserID == "0" { - group, err := immsql.FindGroupInfoByGroupId(pb.GroupID) - if err != nil { - - } - member, err := immsql.FindGroupMemberInfoByGroupIdAndUserId(pb.GroupID, pb.OwnerID) - if err != nil { - - } - chat.ApplicationProcessedNotification(pb.OperationID, pb.FromUserID, *group, *member, pb.HandleResult, pb.HandledMsg) - } else { - - } - - if pb.HandleResult == 1 { - - } - - log.NewInfo(pb.OperationID, "rpc GroupApplicationResponse ok ", reply) - - return reply, nil -} diff --git a/internal/rpc/group/join_group.go b/internal/rpc/group/join_group.go deleted file mode 100644 index 5a26181dd..000000000 --- a/internal/rpc/group/join_group.go +++ /dev/null @@ -1,51 +0,0 @@ -package group - -import ( - "Open_IM/internal/rpc/chat" - "Open_IM/pkg/common/constant" - "Open_IM/pkg/common/db/mysql_model/im_mysql_model" - "Open_IM/pkg/common/log" - "Open_IM/pkg/common/token_verify" - pbGroup "Open_IM/pkg/proto/group" - "context" -) - -func (s *groupServer) JoinGroup(ctx context.Context, req *pbGroup.JoinGroupReq) (*pbGroup.CommonResp, error) { - log.NewInfo(req.Token, req.OperationID, "JoinGroup args ", req.String()) - //Parse token, to find current user information - claims, err := token_verify.ParseToken(req.Token) - if err != nil { - log.NewError(req.OperationID, "ParseToken failed", err.Error(), req.String()) - return &pbGroup.CommonResp{ErrorCode: constant.ErrParseToken.ErrCode, ErrorMsg: constant.ErrParseToken.ErrMsg}, nil - } - applicationUserInfo, err := im_mysql_model.FindUserByUID(claims.UID) - if err != nil { - log.NewError(req.OperationID, "FindUserByUID failed", err.Error(), claims.UID) - return &pbGroup.CommonResp{ErrorCode: constant.ErrSearchUserInfo.ErrCode, ErrorMsg: constant.ErrSearchUserInfo.ErrMsg}, nil - } - - _, err = im_mysql_model.FindGroupRequestUserInfoByGroupIDAndUid(req.GroupID, claims.UID) - if err == nil { - err = im_mysql_model.DelGroupRequest(req.GroupID, claims.UID, "0") - } - - if err = im_mysql_model.InsertIntoGroupRequest(req.GroupID, claims.UID, "0", req.Message, applicationUserInfo.Nickname, applicationUserInfo.FaceUrl); err != nil { - log.Error(req.Token, req.OperationID, "Insert into group request failed,er=%s", err.Error()) - return &pbGroup.CommonResp{ErrorCode: constant.ErrJoinGroupApplication.ErrCode, ErrorMsg: constant.ErrJoinGroupApplication.ErrMsg}, nil - } - - memberList, err := im_mysql_model.FindGroupMemberListByGroupIdAndFilterInfo(req.GroupID, constant.GroupOwner) - if len(memberList) == 0 { - log.NewError(req.OperationID, "FindGroupMemberListByGroupIdAndFilterInfo failed ", req.GroupID, constant.GroupOwner, err) - return &pbGroup.CommonResp{ErrorCode: 0, ErrorMsg: ""}, nil - } - group, err := im_mysql_model.FindGroupInfoByGroupId(req.GroupID) - if err != nil { - log.NewError(req.OperationID, "FindGroupInfoByGroupId failed ", req.GroupID) - return &pbGroup.CommonResp{ErrorCode: 0, ErrorMsg: ""}, nil - } - chat.ReceiveJoinApplicationNotification(req.OperationID, memberList[0].UserID, applicationUserInfo, group) - - log.NewInfo(req.OperationID, "ReceiveJoinApplicationNotification rpc JoinGroup success return") - return &pbGroup.CommonResp{ErrorCode: 0, ErrorMsg: ""}, nil -} diff --git a/internal/rpc/group/quit_group.go b/internal/rpc/group/quit_group.go deleted file mode 100644 index e77a34009..000000000 --- a/internal/rpc/group/quit_group.go +++ /dev/null @@ -1,55 +0,0 @@ -package group - -import ( - "Open_IM/pkg/common/constant" - "Open_IM/pkg/common/db" - "Open_IM/pkg/common/db/mysql_model/im_mysql_model" - "Open_IM/pkg/common/log" - "Open_IM/pkg/common/token_verify" - pbGroup "Open_IM/pkg/proto/group" - "context" -) - -func (s *groupServer) QuitGroup(ctx context.Context, req *pbGroup.QuitGroupReq) (*pbGroup.CommonResp, error) { - log.InfoByArgs("rpc quit group is server,args:", req.String()) - //Parse token, to find current user information - claims, err := token_verify.ParseToken(req.Token) - if err != nil { - log.Error(req.Token, req.OperationID, "err=%s,parse token failed", err.Error()) - return &pbGroup.CommonResp{ErrorCode: constant.ErrParseToken.ErrCode, ErrorMsg: constant.ErrParseToken.ErrMsg}, nil - } - log.InfoByKv("args:", req.OperationID, req.GetGroupID(), claims.UID) - //Check to see whether there is a user in the group. - _, err = im_mysql_model.FindGroupMemberInfoByGroupIdAndUserId(req.GroupID, claims.UID) - if err != nil { - log.Error(req.Token, req.OperationID, "no such group or you are not in the group,err=%s", err.Error(), req.OperationID, req.GroupID, claims.UID) - return &pbGroup.CommonResp{ErrorCode: constant.ErrQuitGroup.ErrCode, ErrorMsg: constant.ErrQuitGroup.ErrMsg}, nil - } - //After the user's verification is successful, user will quit the group chat. - err = im_mysql_model.DeleteGroupMemberByGroupIdAndUserId(req.GroupID, claims.UID) - if err != nil { - log.ErrorByArgs("this user exit the group failed,err=%s", err.Error(), req.OperationID, req.GroupID, claims.UID) - return &pbGroup.CommonResp{ErrorCode: constant.ErrQuitGroup.ErrCode, ErrorMsg: constant.ErrQuitGroup.ErrMsg}, nil - } - - err = db.DB.DelGroupMember(req.GroupID, claims.UID) - if err != nil { - log.Error("", "", "delete mongo group member failed, db.DB.DelGroupMember fail [err: %s]", err.Error()) - return &pbGroup.CommonResp{ErrorCode: constant.ErrQuitGroup.ErrCode, ErrorMsg: constant.ErrQuitGroup.ErrMsg}, nil - } - ////Push message when quit group chat - //jsonInfo, _ := json.Marshal(req) - //logic.SendMsgByWS(&pbChat.WSToMsgSvrChatMsg{ - // SendID: claims.UID, - // RecvID: req.GroupID, - // Content: string(jsonInfo), - // SendTime: utils.GetCurrentTimestampBySecond(), - // MsgFrom: constant.SysMsgType, - // ContentType: constant.QuitGroupTip, - // SessionType: constant.GroupChatType, - // OperationID: req.OperationID, - //}) - log.Info(req.Token, req.OperationID, "rpc quit group is success return") - - return &pbGroup.CommonResp{}, nil -} diff --git a/internal/rpc/group/set_group_info.go b/internal/rpc/group/set_group_info.go deleted file mode 100644 index 55532a04e..000000000 --- a/internal/rpc/group/set_group_info.go +++ /dev/null @@ -1,60 +0,0 @@ -package group - -import ( - "Open_IM/internal/rpc/chat" - "Open_IM/pkg/common/constant" - "Open_IM/pkg/common/db/mysql_model/im_mysql_model" - "Open_IM/pkg/common/log" - "Open_IM/pkg/common/token_verify" - pbGroup "Open_IM/pkg/proto/group" - "context" -) - -func (s *groupServer) SetGroupInfo(ctx context.Context, req *pbGroup.SetGroupInfoReq) (*pbGroup.CommonResp, error) { - log.Info(req.Token, req.OperationID, "rpc set group info is server,args=%s", req.String()) - - //Parse token, to find current user information - claims, err := token_verify.ParseToken(req.Token) - if err != nil { - log.Error(req.Token, req.OperationID, "err=%s,parse token failed", err.Error()) - return &pbGroup.CommonResp{ErrorCode: constant.ErrParseToken.ErrCode, ErrorMsg: constant.ErrParseToken.ErrMsg}, nil - } - - groupUserInfo, err := im_mysql_model.FindGroupMemberInfoByGroupIdAndUserId(req.GroupID, claims.UID) - if err != nil { - log.Error("", req.OperationID, "your are not in the group,can not change this group info,err=%s", err.Error()) - return &pbGroup.CommonResp{ErrorCode: constant.ErrSetGroupInfo.ErrCode, ErrorMsg: constant.ErrSetGroupInfo.ErrMsg}, nil - } - if groupUserInfo.AdministratorLevel == constant.OrdinaryMember { - return &pbGroup.CommonResp{ErrorCode: constant.ErrSetGroupInfo.ErrCode, ErrorMsg: constant.ErrAccess.ErrMsg}, nil - } - group, err := im_mysql_model.FindGroupInfoByGroupId(req.GroupID) - if err != nil { - log.NewError(req.OperationID, "FindGroupInfoByGroupId failed, ", err.Error(), req.GroupID) - return &pbGroup.CommonResp{ErrorCode: constant.ErrSetGroupInfo.ErrCode, ErrorMsg: constant.ErrAccess.ErrMsg}, nil - } - ////bitwise operators: 1:groupName; 10:Notification 100:Introduction; 1000:FaceUrl - var changedType int32 - if group.GroupName != req.GroupName && req.GroupName != "" { - changedType = 1 - } - if group.Notification != req.Notification && req.Notification != "" { - changedType = changedType | (1 << 1) - } - if group.Introduction != req.Introduction && req.Introduction != "" { - changedType = changedType | (1 << 2) - } - if group.FaceUrl != req.FaceUrl && req.FaceUrl != "" { - changedType = changedType | (1 << 3) - } - //only administrators can set group information - if err = im_mysql_model.SetGroupInfo(req.GroupID, req.GroupName, req.Introduction, req.Notification, req.FaceUrl, ""); err != nil { - return &pbGroup.CommonResp{ErrorCode: constant.ErrSetGroupInfo.ErrCode, ErrorMsg: constant.ErrSetGroupInfo.ErrMsg}, nil - } - - if changedType != 0 { - chat.GroupInfoChangedNotification(req.OperationID, claims.UID, changedType, group, groupUserInfo) - } - - return &pbGroup.CommonResp{}, nil -} diff --git a/internal/rpc/group/transfer_group_owner.go b/internal/rpc/group/transfer_group_owner.go deleted file mode 100644 index 4595fa1f1..000000000 --- a/internal/rpc/group/transfer_group_owner.go +++ /dev/null @@ -1,21 +0,0 @@ -package group - -import ( - "Open_IM/pkg/common/db/mysql_model/im_mysql_model" - "Open_IM/pkg/common/log" - "Open_IM/pkg/proto/group" - "context" -) - -func (s *groupServer) TransferGroupOwner(_ context.Context, pb *group.TransferGroupOwnerReq) (*group.TransferGroupOwnerResp, error) { - log.Info("", "", "rpc TransferGroupOwner call start..., [pb: %s]", pb.String()) - - reply, err := im_mysql_model.TransferGroupOwner(pb) - if err != nil { - log.Error("", "", "rpc TransferGroupOwner call..., im_mysql_model.TransferGroupOwner fail [pb: %s] [err: %s]", pb.String(), err.Error()) - return nil, err - } - log.Info("", "", "rpc TransferGroupOwner call..., im_mysql_model.TransferGroupOwner") - - return reply, nil -} diff --git a/pkg/proto/group/group.pb.go b/pkg/proto/group/group.pb.go index fae312019..bc8371177 100644 --- a/pkg/proto/group/group.pb.go +++ b/pkg/proto/group/group.pb.go @@ -24,8 +24,8 @@ var _ = math.Inf const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package type CommonResp struct { - ErrorCode int32 `protobuf:"varint,1,opt,name=ErrorCode" json:"ErrorCode,omitempty"` - ErrorMsg string `protobuf:"bytes,2,opt,name=ErrorMsg" json:"ErrorMsg,omitempty"` + ErrCode int32 `protobuf:"varint,1,opt,name=ErrCode" json:"ErrCode,omitempty"` + ErrMsg string `protobuf:"bytes,2,opt,name=ErrMsg" json:"ErrMsg,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -35,7 +35,7 @@ func (m *CommonResp) Reset() { *m = CommonResp{} } func (m *CommonResp) String() string { return proto.CompactTextString(m) } func (*CommonResp) ProtoMessage() {} func (*CommonResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_ed07d0078ff66bfe, []int{0} + return fileDescriptor_group_ac6850665f72c22b, []int{0} } func (m *CommonResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_CommonResp.Unmarshal(m, b) @@ -55,16 +55,16 @@ func (m *CommonResp) XXX_DiscardUnknown() { var xxx_messageInfo_CommonResp proto.InternalMessageInfo -func (m *CommonResp) GetErrorCode() int32 { +func (m *CommonResp) GetErrCode() int32 { if m != nil { - return m.ErrorCode + return m.ErrCode } return 0 } -func (m *CommonResp) GetErrorMsg() string { +func (m *CommonResp) GetErrMsg() string { if m != nil { - return m.ErrorMsg + return m.ErrMsg } return "" } @@ -77,7 +77,8 @@ type CreateGroupReq struct { FaceUrl string `protobuf:"bytes,5,opt,name=faceUrl" json:"faceUrl,omitempty"` Token string `protobuf:"bytes,6,opt,name=token" json:"token,omitempty"` OperationID string `protobuf:"bytes,7,opt,name=operationID" json:"operationID,omitempty"` - Ex string `protobuf:"bytes,8,opt,name=ex" json:"ex,omitempty"` + OpUserID string `protobuf:"bytes,8,opt,name=OpUserID" json:"OpUserID,omitempty"` + Ext string `protobuf:"bytes,9,opt,name=Ext" json:"Ext,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -87,7 +88,7 @@ func (m *CreateGroupReq) Reset() { *m = CreateGroupReq{} } func (m *CreateGroupReq) String() string { return proto.CompactTextString(m) } func (*CreateGroupReq) ProtoMessage() {} func (*CreateGroupReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_ed07d0078ff66bfe, []int{1} + return fileDescriptor_group_ac6850665f72c22b, []int{1} } func (m *CreateGroupReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_CreateGroupReq.Unmarshal(m, b) @@ -156,9 +157,16 @@ func (m *CreateGroupReq) GetOperationID() string { return "" } -func (m *CreateGroupReq) GetEx() string { +func (m *CreateGroupReq) GetOpUserID() string { if m != nil { - return m.Ex + return m.OpUserID + } + return "" +} + +func (m *CreateGroupReq) GetExt() string { + if m != nil { + return m.Ext } return "" } @@ -175,7 +183,7 @@ func (m *GroupAddMemberInfo) Reset() { *m = GroupAddMemberInfo{} } func (m *GroupAddMemberInfo) String() string { return proto.CompactTextString(m) } func (*GroupAddMemberInfo) ProtoMessage() {} func (*GroupAddMemberInfo) Descriptor() ([]byte, []int) { - return fileDescriptor_group_ed07d0078ff66bfe, []int{2} + return fileDescriptor_group_ac6850665f72c22b, []int{2} } func (m *GroupAddMemberInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupAddMemberInfo.Unmarshal(m, b) @@ -210,8 +218,8 @@ func (m *GroupAddMemberInfo) GetSetRole() int32 { } type CreateGroupResp struct { - ErrorCode int32 `protobuf:"varint,1,opt,name=ErrorCode" json:"ErrorCode,omitempty"` - ErrorMsg string `protobuf:"bytes,2,opt,name=ErrorMsg" json:"ErrorMsg,omitempty"` + ErrCode int32 `protobuf:"varint,1,opt,name=ErrCode" json:"ErrCode,omitempty"` + ErrMsg string `protobuf:"bytes,2,opt,name=ErrMsg" json:"ErrMsg,omitempty"` GroupID string `protobuf:"bytes,3,opt,name=groupID" json:"groupID,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` @@ -222,7 +230,7 @@ func (m *CreateGroupResp) Reset() { *m = CreateGroupResp{} } func (m *CreateGroupResp) String() string { return proto.CompactTextString(m) } func (*CreateGroupResp) ProtoMessage() {} func (*CreateGroupResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_ed07d0078ff66bfe, []int{3} + return fileDescriptor_group_ac6850665f72c22b, []int{3} } func (m *CreateGroupResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_CreateGroupResp.Unmarshal(m, b) @@ -242,16 +250,16 @@ func (m *CreateGroupResp) XXX_DiscardUnknown() { var xxx_messageInfo_CreateGroupResp proto.InternalMessageInfo -func (m *CreateGroupResp) GetErrorCode() int32 { +func (m *CreateGroupResp) GetErrCode() int32 { if m != nil { - return m.ErrorCode + return m.ErrCode } return 0 } -func (m *CreateGroupResp) GetErrorMsg() string { +func (m *CreateGroupResp) GetErrMsg() string { if m != nil { - return m.ErrorMsg + return m.ErrMsg } return "" } @@ -267,6 +275,7 @@ type GetGroupsInfoReq struct { GroupIDList []string `protobuf:"bytes,1,rep,name=groupIDList" json:"groupIDList,omitempty"` Token string `protobuf:"bytes,2,opt,name=token" json:"token,omitempty"` OperationID string `protobuf:"bytes,3,opt,name=operationID" json:"operationID,omitempty"` + OpUserID string `protobuf:"bytes,4,opt,name=OpUserID" json:"OpUserID,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -276,7 +285,7 @@ func (m *GetGroupsInfoReq) Reset() { *m = GetGroupsInfoReq{} } func (m *GetGroupsInfoReq) String() string { return proto.CompactTextString(m) } func (*GetGroupsInfoReq) ProtoMessage() {} func (*GetGroupsInfoReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_ed07d0078ff66bfe, []int{4} + return fileDescriptor_group_ac6850665f72c22b, []int{4} } func (m *GetGroupsInfoReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetGroupsInfoReq.Unmarshal(m, b) @@ -317,9 +326,16 @@ func (m *GetGroupsInfoReq) GetOperationID() string { return "" } +func (m *GetGroupsInfoReq) GetOpUserID() string { + if m != nil { + return m.OpUserID + } + return "" +} + type GetGroupsInfoResp struct { - ErrorCode int32 `protobuf:"varint,1,opt,name=ErrorCode" json:"ErrorCode,omitempty"` - ErrorMsg string `protobuf:"bytes,2,opt,name=ErrorMsg" json:"ErrorMsg,omitempty"` + ErrCode int32 `protobuf:"varint,1,opt,name=ErrCode" json:"ErrCode,omitempty"` + ErrMsg string `protobuf:"bytes,2,opt,name=ErrMsg" json:"ErrMsg,omitempty"` Data []*GroupInfo `protobuf:"bytes,3,rep,name=data" json:"data,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` @@ -330,7 +346,7 @@ func (m *GetGroupsInfoResp) Reset() { *m = GetGroupsInfoResp{} } func (m *GetGroupsInfoResp) String() string { return proto.CompactTextString(m) } func (*GetGroupsInfoResp) ProtoMessage() {} func (*GetGroupsInfoResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_ed07d0078ff66bfe, []int{5} + return fileDescriptor_group_ac6850665f72c22b, []int{5} } func (m *GetGroupsInfoResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetGroupsInfoResp.Unmarshal(m, b) @@ -350,16 +366,16 @@ func (m *GetGroupsInfoResp) XXX_DiscardUnknown() { var xxx_messageInfo_GetGroupsInfoResp proto.InternalMessageInfo -func (m *GetGroupsInfoResp) GetErrorCode() int32 { +func (m *GetGroupsInfoResp) GetErrCode() int32 { if m != nil { - return m.ErrorCode + return m.ErrCode } return 0 } -func (m *GetGroupsInfoResp) GetErrorMsg() string { +func (m *GetGroupsInfoResp) GetErrMsg() string { if m != nil { - return m.ErrorMsg + return m.ErrMsg } return "" } @@ -379,6 +395,7 @@ type SetGroupInfoReq struct { FaceUrl string `protobuf:"bytes,5,opt,name=faceUrl" json:"faceUrl,omitempty"` Token string `protobuf:"bytes,6,opt,name=token" json:"token,omitempty"` OperationID string `protobuf:"bytes,7,opt,name=operationID" json:"operationID,omitempty"` + OpUserID string `protobuf:"bytes,8,opt,name=OpUserID" json:"OpUserID,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -388,7 +405,7 @@ func (m *SetGroupInfoReq) Reset() { *m = SetGroupInfoReq{} } func (m *SetGroupInfoReq) String() string { return proto.CompactTextString(m) } func (*SetGroupInfoReq) ProtoMessage() {} func (*SetGroupInfoReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_ed07d0078ff66bfe, []int{6} + return fileDescriptor_group_ac6850665f72c22b, []int{6} } func (m *SetGroupInfoReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SetGroupInfoReq.Unmarshal(m, b) @@ -457,8 +474,15 @@ func (m *SetGroupInfoReq) GetOperationID() string { return "" } +func (m *SetGroupInfoReq) GetOpUserID() string { + if m != nil { + return m.OpUserID + } + return "" +} + type GetGroupApplicationListReq struct { - UID string `protobuf:"bytes,1,opt,name=UID" json:"UID,omitempty"` + OpUserID string `protobuf:"bytes,1,opt,name=OpUserID" json:"OpUserID,omitempty"` OperationID string `protobuf:"bytes,2,opt,name=OperationID" json:"OperationID,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` @@ -469,7 +493,7 @@ func (m *GetGroupApplicationListReq) Reset() { *m = GetGroupApplicationL func (m *GetGroupApplicationListReq) String() string { return proto.CompactTextString(m) } func (*GetGroupApplicationListReq) ProtoMessage() {} func (*GetGroupApplicationListReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_ed07d0078ff66bfe, []int{7} + return fileDescriptor_group_ac6850665f72c22b, []int{7} } func (m *GetGroupApplicationListReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetGroupApplicationListReq.Unmarshal(m, b) @@ -489,9 +513,9 @@ func (m *GetGroupApplicationListReq) XXX_DiscardUnknown() { var xxx_messageInfo_GetGroupApplicationListReq proto.InternalMessageInfo -func (m *GetGroupApplicationListReq) GetUID() string { +func (m *GetGroupApplicationListReq) GetOpUserID() string { if m != nil { - return m.UID + return m.OpUserID } return "" } @@ -529,7 +553,7 @@ func (m *GetGroupApplicationList_Data_User) Reset() { *m = GetGroupAppli func (m *GetGroupApplicationList_Data_User) String() string { return proto.CompactTextString(m) } func (*GetGroupApplicationList_Data_User) ProtoMessage() {} func (*GetGroupApplicationList_Data_User) Descriptor() ([]byte, []int) { - return fileDescriptor_group_ed07d0078ff66bfe, []int{8} + return fileDescriptor_group_ac6850665f72c22b, []int{8} } func (m *GetGroupApplicationList_Data_User) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetGroupApplicationList_Data_User.Unmarshal(m, b) @@ -673,7 +697,7 @@ func (m *GetGroupApplicationListData) Reset() { *m = GetGroupApplication func (m *GetGroupApplicationListData) String() string { return proto.CompactTextString(m) } func (*GetGroupApplicationListData) ProtoMessage() {} func (*GetGroupApplicationListData) Descriptor() ([]byte, []int) { - return fileDescriptor_group_ed07d0078ff66bfe, []int{9} + return fileDescriptor_group_ac6850665f72c22b, []int{9} } func (m *GetGroupApplicationListData) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetGroupApplicationListData.Unmarshal(m, b) @@ -720,7 +744,7 @@ func (m *GetGroupApplicationListResp) Reset() { *m = GetGroupApplication func (m *GetGroupApplicationListResp) String() string { return proto.CompactTextString(m) } func (*GetGroupApplicationListResp) ProtoMessage() {} func (*GetGroupApplicationListResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_ed07d0078ff66bfe, []int{10} + return fileDescriptor_group_ac6850665f72c22b, []int{10} } func (m *GetGroupApplicationListResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetGroupApplicationListResp.Unmarshal(m, b) @@ -766,6 +790,7 @@ type TransferGroupOwnerReq struct { OldOwner string `protobuf:"bytes,2,opt,name=OldOwner" json:"OldOwner,omitempty"` NewOwner string `protobuf:"bytes,3,opt,name=NewOwner" json:"NewOwner,omitempty"` OperationID string `protobuf:"bytes,4,opt,name=OperationID" json:"OperationID,omitempty"` + OpUserID string `protobuf:"bytes,5,opt,name=OpUserID" json:"OpUserID,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -775,7 +800,7 @@ func (m *TransferGroupOwnerReq) Reset() { *m = TransferGroupOwnerReq{} } func (m *TransferGroupOwnerReq) String() string { return proto.CompactTextString(m) } func (*TransferGroupOwnerReq) ProtoMessage() {} func (*TransferGroupOwnerReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_ed07d0078ff66bfe, []int{11} + return fileDescriptor_group_ac6850665f72c22b, []int{11} } func (m *TransferGroupOwnerReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_TransferGroupOwnerReq.Unmarshal(m, b) @@ -823,6 +848,13 @@ func (m *TransferGroupOwnerReq) GetOperationID() string { return "" } +func (m *TransferGroupOwnerReq) GetOpUserID() string { + if m != nil { + return m.OpUserID + } + return "" +} + type TransferGroupOwnerResp struct { ErrCode int32 `protobuf:"varint,1,opt,name=ErrCode" json:"ErrCode,omitempty"` ErrMsg string `protobuf:"bytes,2,opt,name=ErrMsg" json:"ErrMsg,omitempty"` @@ -835,7 +867,7 @@ func (m *TransferGroupOwnerResp) Reset() { *m = TransferGroupOwnerResp{} func (m *TransferGroupOwnerResp) String() string { return proto.CompactTextString(m) } func (*TransferGroupOwnerResp) ProtoMessage() {} func (*TransferGroupOwnerResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_ed07d0078ff66bfe, []int{12} + return fileDescriptor_group_ac6850665f72c22b, []int{12} } func (m *TransferGroupOwnerResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_TransferGroupOwnerResp.Unmarshal(m, b) @@ -874,6 +906,7 @@ type JoinGroupReq struct { Message string `protobuf:"bytes,2,opt,name=message" json:"message,omitempty"` Token string `protobuf:"bytes,3,opt,name=token" json:"token,omitempty"` OperationID string `protobuf:"bytes,4,opt,name=OperationID" json:"OperationID,omitempty"` + OpUserID string `protobuf:"bytes,5,opt,name=OpUserID" json:"OpUserID,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -883,7 +916,7 @@ func (m *JoinGroupReq) Reset() { *m = JoinGroupReq{} } func (m *JoinGroupReq) String() string { return proto.CompactTextString(m) } func (*JoinGroupReq) ProtoMessage() {} func (*JoinGroupReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_ed07d0078ff66bfe, []int{13} + return fileDescriptor_group_ac6850665f72c22b, []int{13} } func (m *JoinGroupReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_JoinGroupReq.Unmarshal(m, b) @@ -931,9 +964,16 @@ func (m *JoinGroupReq) GetOperationID() string { return "" } +func (m *JoinGroupReq) GetOpUserID() string { + if m != nil { + return m.OpUserID + } + return "" +} + type GroupApplicationResponseReq struct { OperationID string `protobuf:"bytes,1,opt,name=OperationID" json:"OperationID,omitempty"` - OwnerID string `protobuf:"bytes,2,opt,name=OwnerID" json:"OwnerID,omitempty"` + OpUserID string `protobuf:"bytes,2,opt,name=OpUserID" json:"OpUserID,omitempty"` GroupID string `protobuf:"bytes,3,opt,name=GroupID" json:"GroupID,omitempty"` FromUserID string `protobuf:"bytes,4,opt,name=FromUserID" json:"FromUserID,omitempty"` FromUserNickName string `protobuf:"bytes,5,opt,name=FromUserNickName" json:"FromUserNickName,omitempty"` @@ -956,7 +996,7 @@ func (m *GroupApplicationResponseReq) Reset() { *m = GroupApplicationRes func (m *GroupApplicationResponseReq) String() string { return proto.CompactTextString(m) } func (*GroupApplicationResponseReq) ProtoMessage() {} func (*GroupApplicationResponseReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_ed07d0078ff66bfe, []int{14} + return fileDescriptor_group_ac6850665f72c22b, []int{14} } func (m *GroupApplicationResponseReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupApplicationResponseReq.Unmarshal(m, b) @@ -983,9 +1023,9 @@ func (m *GroupApplicationResponseReq) GetOperationID() string { return "" } -func (m *GroupApplicationResponseReq) GetOwnerID() string { +func (m *GroupApplicationResponseReq) GetOpUserID() string { if m != nil { - return m.OwnerID + return m.OpUserID } return "" } @@ -1093,7 +1133,7 @@ func (m *GroupApplicationResponseResp) Reset() { *m = GroupApplicationRe func (m *GroupApplicationResponseResp) String() string { return proto.CompactTextString(m) } func (*GroupApplicationResponseResp) ProtoMessage() {} func (*GroupApplicationResponseResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_ed07d0078ff66bfe, []int{15} + return fileDescriptor_group_ac6850665f72c22b, []int{15} } func (m *GroupApplicationResponseResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupApplicationResponseResp.Unmarshal(m, b) @@ -1132,6 +1172,7 @@ type SetOwnerGroupNickNameReq struct { NickName string `protobuf:"bytes,2,opt,name=nickName" json:"nickName,omitempty"` OperationID string `protobuf:"bytes,3,opt,name=OperationID" json:"OperationID,omitempty"` Token string `protobuf:"bytes,4,opt,name=token" json:"token,omitempty"` + OpUserID string `protobuf:"bytes,5,opt,name=OpUserID" json:"OpUserID,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -1141,7 +1182,7 @@ func (m *SetOwnerGroupNickNameReq) Reset() { *m = SetOwnerGroupNickNameR func (m *SetOwnerGroupNickNameReq) String() string { return proto.CompactTextString(m) } func (*SetOwnerGroupNickNameReq) ProtoMessage() {} func (*SetOwnerGroupNickNameReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_ed07d0078ff66bfe, []int{16} + return fileDescriptor_group_ac6850665f72c22b, []int{16} } func (m *SetOwnerGroupNickNameReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SetOwnerGroupNickNameReq.Unmarshal(m, b) @@ -1189,10 +1230,18 @@ func (m *SetOwnerGroupNickNameReq) GetToken() string { return "" } +func (m *SetOwnerGroupNickNameReq) GetOpUserID() string { + if m != nil { + return m.OpUserID + } + return "" +} + type QuitGroupReq struct { GroupID string `protobuf:"bytes,1,opt,name=groupID" json:"groupID,omitempty"` OperationID string `protobuf:"bytes,2,opt,name=operationID" json:"operationID,omitempty"` Token string `protobuf:"bytes,3,opt,name=token" json:"token,omitempty"` + OpUserID string `protobuf:"bytes,4,opt,name=OpUserID" json:"OpUserID,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -1202,7 +1251,7 @@ func (m *QuitGroupReq) Reset() { *m = QuitGroupReq{} } func (m *QuitGroupReq) String() string { return proto.CompactTextString(m) } func (*QuitGroupReq) ProtoMessage() {} func (*QuitGroupReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_ed07d0078ff66bfe, []int{17} + return fileDescriptor_group_ac6850665f72c22b, []int{17} } func (m *QuitGroupReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_QuitGroupReq.Unmarshal(m, b) @@ -1243,6 +1292,13 @@ func (m *QuitGroupReq) GetToken() string { return "" } +func (m *QuitGroupReq) GetOpUserID() string { + if m != nil { + return m.OpUserID + } + return "" +} + type GroupApplicationUserInfo struct { GroupID string `protobuf:"bytes,1,opt,name=groupID" json:"groupID,omitempty"` Uid string `protobuf:"bytes,2,opt,name=uid" json:"uid,omitempty"` @@ -1262,7 +1318,7 @@ func (m *GroupApplicationUserInfo) Reset() { *m = GroupApplicationUserIn func (m *GroupApplicationUserInfo) String() string { return proto.CompactTextString(m) } func (*GroupApplicationUserInfo) ProtoMessage() {} func (*GroupApplicationUserInfo) Descriptor() ([]byte, []int) { - return fileDescriptor_group_ed07d0078ff66bfe, []int{18} + return fileDescriptor_group_ac6850665f72c22b, []int{18} } func (m *GroupApplicationUserInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupApplicationUserInfo.Unmarshal(m, b) @@ -1360,7 +1416,7 @@ func (m *GroupMemberFullInfo) Reset() { *m = GroupMemberFullInfo{} } func (m *GroupMemberFullInfo) String() string { return proto.CompactTextString(m) } func (*GroupMemberFullInfo) ProtoMessage() {} func (*GroupMemberFullInfo) Descriptor() ([]byte, []int) { - return fileDescriptor_group_ed07d0078ff66bfe, []int{19} + return fileDescriptor_group_ac6850665f72c22b, []int{19} } func (m *GroupMemberFullInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupMemberFullInfo.Unmarshal(m, b) @@ -1421,6 +1477,7 @@ type GetGroupMemberListReq struct { OperationID string `protobuf:"bytes,3,opt,name=operationID" json:"operationID,omitempty"` Filter int32 `protobuf:"varint,4,opt,name=filter" json:"filter,omitempty"` NextSeq int32 `protobuf:"varint,5,opt,name=nextSeq" json:"nextSeq,omitempty"` + OpUserID string `protobuf:"bytes,6,opt,name=OpUserID" json:"OpUserID,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -1430,7 +1487,7 @@ func (m *GetGroupMemberListReq) Reset() { *m = GetGroupMemberListReq{} } func (m *GetGroupMemberListReq) String() string { return proto.CompactTextString(m) } func (*GetGroupMemberListReq) ProtoMessage() {} func (*GetGroupMemberListReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_ed07d0078ff66bfe, []int{20} + return fileDescriptor_group_ac6850665f72c22b, []int{20} } func (m *GetGroupMemberListReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetGroupMemberListReq.Unmarshal(m, b) @@ -1485,9 +1542,16 @@ func (m *GetGroupMemberListReq) GetNextSeq() int32 { return 0 } +func (m *GetGroupMemberListReq) GetOpUserID() string { + if m != nil { + return m.OpUserID + } + return "" +} + type GetGroupMemberListResp struct { - ErrorCode int32 `protobuf:"varint,1,opt,name=errorCode" json:"errorCode,omitempty"` - ErrorMsg string `protobuf:"bytes,2,opt,name=errorMsg" json:"errorMsg,omitempty"` + ErrCode int32 `protobuf:"varint,1,opt,name=ErrCode" json:"ErrCode,omitempty"` + ErrMsg string `protobuf:"bytes,2,opt,name=ErrMsg" json:"ErrMsg,omitempty"` MemberList []*GroupMemberFullInfo `protobuf:"bytes,3,rep,name=memberList" json:"memberList,omitempty"` NextSeq int32 `protobuf:"varint,4,opt,name=nextSeq" json:"nextSeq,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` @@ -1499,7 +1563,7 @@ func (m *GetGroupMemberListResp) Reset() { *m = GetGroupMemberListResp{} func (m *GetGroupMemberListResp) String() string { return proto.CompactTextString(m) } func (*GetGroupMemberListResp) ProtoMessage() {} func (*GetGroupMemberListResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_ed07d0078ff66bfe, []int{21} + return fileDescriptor_group_ac6850665f72c22b, []int{21} } func (m *GetGroupMemberListResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetGroupMemberListResp.Unmarshal(m, b) @@ -1519,16 +1583,16 @@ func (m *GetGroupMemberListResp) XXX_DiscardUnknown() { var xxx_messageInfo_GetGroupMemberListResp proto.InternalMessageInfo -func (m *GetGroupMemberListResp) GetErrorCode() int32 { +func (m *GetGroupMemberListResp) GetErrCode() int32 { if m != nil { - return m.ErrorCode + return m.ErrCode } return 0 } -func (m *GetGroupMemberListResp) GetErrorMsg() string { +func (m *GetGroupMemberListResp) GetErrMsg() string { if m != nil { - return m.ErrorMsg + return m.ErrMsg } return "" } @@ -1552,6 +1616,7 @@ type GetGroupMembersInfoReq struct { MemberList []string `protobuf:"bytes,2,rep,name=memberList" json:"memberList,omitempty"` Token string `protobuf:"bytes,3,opt,name=token" json:"token,omitempty"` OperationID string `protobuf:"bytes,4,opt,name=operationID" json:"operationID,omitempty"` + OpUserID string `protobuf:"bytes,5,opt,name=OpUserID" json:"OpUserID,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -1561,7 +1626,7 @@ func (m *GetGroupMembersInfoReq) Reset() { *m = GetGroupMembersInfoReq{} func (m *GetGroupMembersInfoReq) String() string { return proto.CompactTextString(m) } func (*GetGroupMembersInfoReq) ProtoMessage() {} func (*GetGroupMembersInfoReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_ed07d0078ff66bfe, []int{22} + return fileDescriptor_group_ac6850665f72c22b, []int{22} } func (m *GetGroupMembersInfoReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetGroupMembersInfoReq.Unmarshal(m, b) @@ -1609,9 +1674,16 @@ func (m *GetGroupMembersInfoReq) GetOperationID() string { return "" } +func (m *GetGroupMembersInfoReq) GetOpUserID() string { + if m != nil { + return m.OpUserID + } + return "" +} + type GetGroupMembersInfoResp struct { - ErrorCode int32 `protobuf:"varint,1,opt,name=errorCode" json:"errorCode,omitempty"` - ErrorMsg string `protobuf:"bytes,2,opt,name=errorMsg" json:"errorMsg,omitempty"` + ErrCode int32 `protobuf:"varint,1,opt,name=ErrCode" json:"ErrCode,omitempty"` + ErrMsg string `protobuf:"bytes,2,opt,name=ErrMsg" json:"ErrMsg,omitempty"` MemberList []*GroupMemberFullInfo `protobuf:"bytes,3,rep,name=memberList" json:"memberList,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` @@ -1622,7 +1694,7 @@ func (m *GetGroupMembersInfoResp) Reset() { *m = GetGroupMembersInfoResp func (m *GetGroupMembersInfoResp) String() string { return proto.CompactTextString(m) } func (*GetGroupMembersInfoResp) ProtoMessage() {} func (*GetGroupMembersInfoResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_ed07d0078ff66bfe, []int{23} + return fileDescriptor_group_ac6850665f72c22b, []int{23} } func (m *GetGroupMembersInfoResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetGroupMembersInfoResp.Unmarshal(m, b) @@ -1642,16 +1714,16 @@ func (m *GetGroupMembersInfoResp) XXX_DiscardUnknown() { var xxx_messageInfo_GetGroupMembersInfoResp proto.InternalMessageInfo -func (m *GetGroupMembersInfoResp) GetErrorCode() int32 { +func (m *GetGroupMembersInfoResp) GetErrCode() int32 { if m != nil { - return m.ErrorCode + return m.ErrCode } return 0 } -func (m *GetGroupMembersInfoResp) GetErrorMsg() string { +func (m *GetGroupMembersInfoResp) GetErrMsg() string { if m != nil { - return m.ErrorMsg + return m.ErrMsg } return "" } @@ -1669,6 +1741,7 @@ type KickGroupMemberReq struct { Reason string `protobuf:"bytes,3,opt,name=reason" json:"reason,omitempty"` Token string `protobuf:"bytes,4,opt,name=token" json:"token,omitempty"` OperationID string `protobuf:"bytes,5,opt,name=operationID" json:"operationID,omitempty"` + OpUserID string `protobuf:"bytes,6,opt,name=OpUserID" json:"OpUserID,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -1678,7 +1751,7 @@ func (m *KickGroupMemberReq) Reset() { *m = KickGroupMemberReq{} } func (m *KickGroupMemberReq) String() string { return proto.CompactTextString(m) } func (*KickGroupMemberReq) ProtoMessage() {} func (*KickGroupMemberReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_ed07d0078ff66bfe, []int{24} + return fileDescriptor_group_ac6850665f72c22b, []int{24} } func (m *KickGroupMemberReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_KickGroupMemberReq.Unmarshal(m, b) @@ -1733,6 +1806,13 @@ func (m *KickGroupMemberReq) GetOperationID() string { return "" } +func (m *KickGroupMemberReq) GetOpUserID() string { + if m != nil { + return m.OpUserID + } + return "" +} + type Id2Result struct { UId string `protobuf:"bytes,1,opt,name=uId" json:"uId,omitempty"` Result int32 `protobuf:"varint,2,opt,name=result" json:"result,omitempty"` @@ -1745,7 +1825,7 @@ func (m *Id2Result) Reset() { *m = Id2Result{} } func (m *Id2Result) String() string { return proto.CompactTextString(m) } func (*Id2Result) ProtoMessage() {} func (*Id2Result) Descriptor() ([]byte, []int) { - return fileDescriptor_group_ed07d0078ff66bfe, []int{25} + return fileDescriptor_group_ac6850665f72c22b, []int{25} } func (m *Id2Result) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_Id2Result.Unmarshal(m, b) @@ -1780,8 +1860,8 @@ func (m *Id2Result) GetResult() int32 { } type KickGroupMemberResp struct { - ErrorCode int32 `protobuf:"varint,1,opt,name=errorCode" json:"errorCode,omitempty"` - ErrorMsg string `protobuf:"bytes,2,opt,name=errorMsg" json:"errorMsg,omitempty"` + ErrCode int32 `protobuf:"varint,1,opt,name=ErrCode" json:"ErrCode,omitempty"` + ErrMsg string `protobuf:"bytes,2,opt,name=ErrMsg" json:"ErrMsg,omitempty"` Id2Result []*Id2Result `protobuf:"bytes,3,rep,name=id2result" json:"id2result,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` @@ -1792,7 +1872,7 @@ func (m *KickGroupMemberResp) Reset() { *m = KickGroupMemberResp{} } func (m *KickGroupMemberResp) String() string { return proto.CompactTextString(m) } func (*KickGroupMemberResp) ProtoMessage() {} func (*KickGroupMemberResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_ed07d0078ff66bfe, []int{26} + return fileDescriptor_group_ac6850665f72c22b, []int{26} } func (m *KickGroupMemberResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_KickGroupMemberResp.Unmarshal(m, b) @@ -1812,16 +1892,16 @@ func (m *KickGroupMemberResp) XXX_DiscardUnknown() { var xxx_messageInfo_KickGroupMemberResp proto.InternalMessageInfo -func (m *KickGroupMemberResp) GetErrorCode() int32 { +func (m *KickGroupMemberResp) GetErrCode() int32 { if m != nil { - return m.ErrorCode + return m.ErrCode } return 0 } -func (m *KickGroupMemberResp) GetErrorMsg() string { +func (m *KickGroupMemberResp) GetErrMsg() string { if m != nil { - return m.ErrorMsg + return m.ErrMsg } return "" } @@ -1836,6 +1916,7 @@ func (m *KickGroupMemberResp) GetId2Result() []*Id2Result { type GetJoinedGroupListReq struct { Token string `protobuf:"bytes,1,opt,name=token" json:"token,omitempty"` OperationID string `protobuf:"bytes,2,opt,name=operationID" json:"operationID,omitempty"` + OpUserID string `protobuf:"bytes,3,opt,name=OpUserID" json:"OpUserID,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -1845,7 +1926,7 @@ func (m *GetJoinedGroupListReq) Reset() { *m = GetJoinedGroupListReq{} } func (m *GetJoinedGroupListReq) String() string { return proto.CompactTextString(m) } func (*GetJoinedGroupListReq) ProtoMessage() {} func (*GetJoinedGroupListReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_ed07d0078ff66bfe, []int{27} + return fileDescriptor_group_ac6850665f72c22b, []int{27} } func (m *GetJoinedGroupListReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetJoinedGroupListReq.Unmarshal(m, b) @@ -1879,6 +1960,13 @@ func (m *GetJoinedGroupListReq) GetOperationID() string { return "" } +func (m *GetJoinedGroupListReq) GetOpUserID() string { + if m != nil { + return m.OpUserID + } + return "" +} + type GroupInfo struct { GroupId string `protobuf:"bytes,1,opt,name=groupId" json:"groupId,omitempty"` GroupName string `protobuf:"bytes,2,opt,name=groupName" json:"groupName,omitempty"` @@ -1897,7 +1985,7 @@ func (m *GroupInfo) Reset() { *m = GroupInfo{} } func (m *GroupInfo) String() string { return proto.CompactTextString(m) } func (*GroupInfo) ProtoMessage() {} func (*GroupInfo) Descriptor() ([]byte, []int) { - return fileDescriptor_group_ed07d0078ff66bfe, []int{28} + return fileDescriptor_group_ac6850665f72c22b, []int{28} } func (m *GroupInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupInfo.Unmarshal(m, b) @@ -1974,9 +2062,9 @@ func (m *GroupInfo) GetMemberCount() uint32 { } type GetJoinedGroupListResp struct { - ErrorCode int32 `protobuf:"varint,1,opt,name=errorCode" json:"errorCode,omitempty"` - ErrorMsg string `protobuf:"bytes,2,opt,name=errorMsg" json:"errorMsg,omitempty"` - GroupList []*GroupInfo `protobuf:"bytes,3,rep,name=groupList" json:"groupList,omitempty"` + ErrCode int32 `protobuf:"varint,1,opt,name=ErrCode" json:"ErrCode,omitempty"` + ErrorMsg string `protobuf:"bytes,2,opt,name=ErrorMsg" json:"ErrorMsg,omitempty"` + GroupList []*GroupInfo `protobuf:"bytes,3,rep,name=GroupList" json:"GroupList,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -1986,7 +2074,7 @@ func (m *GetJoinedGroupListResp) Reset() { *m = GetJoinedGroupListResp{} func (m *GetJoinedGroupListResp) String() string { return proto.CompactTextString(m) } func (*GetJoinedGroupListResp) ProtoMessage() {} func (*GetJoinedGroupListResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_ed07d0078ff66bfe, []int{29} + return fileDescriptor_group_ac6850665f72c22b, []int{29} } func (m *GetJoinedGroupListResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetJoinedGroupListResp.Unmarshal(m, b) @@ -2006,9 +2094,9 @@ func (m *GetJoinedGroupListResp) XXX_DiscardUnknown() { var xxx_messageInfo_GetJoinedGroupListResp proto.InternalMessageInfo -func (m *GetJoinedGroupListResp) GetErrorCode() int32 { +func (m *GetJoinedGroupListResp) GetErrCode() int32 { if m != nil { - return m.ErrorCode + return m.ErrCode } return 0 } @@ -2033,6 +2121,7 @@ type InviteUserToGroupReq struct { GroupID string `protobuf:"bytes,3,opt,name=groupID" json:"groupID,omitempty"` Reason string `protobuf:"bytes,4,opt,name=reason" json:"reason,omitempty"` UidList []string `protobuf:"bytes,5,rep,name=uidList" json:"uidList,omitempty"` + OpUserID string `protobuf:"bytes,6,opt,name=OpUserID" json:"OpUserID,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -2042,7 +2131,7 @@ func (m *InviteUserToGroupReq) Reset() { *m = InviteUserToGroupReq{} } func (m *InviteUserToGroupReq) String() string { return proto.CompactTextString(m) } func (*InviteUserToGroupReq) ProtoMessage() {} func (*InviteUserToGroupReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_ed07d0078ff66bfe, []int{30} + return fileDescriptor_group_ac6850665f72c22b, []int{30} } func (m *InviteUserToGroupReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_InviteUserToGroupReq.Unmarshal(m, b) @@ -2097,10 +2186,17 @@ func (m *InviteUserToGroupReq) GetUidList() []string { return nil } +func (m *InviteUserToGroupReq) GetOpUserID() string { + if m != nil { + return m.OpUserID + } + return "" +} + type InviteUserToGroupResp struct { - ErrorCode int32 `protobuf:"varint,1,opt,name=errorCode" json:"errorCode,omitempty"` - ErrorMsg string `protobuf:"bytes,2,opt,name=errorMsg" json:"errorMsg,omitempty"` - Id2Result []*Id2Result `protobuf:"bytes,3,rep,name=id2result" json:"id2result,omitempty"` + ErrCode int32 `protobuf:"varint,1,opt,name=ErrCode" json:"ErrCode,omitempty"` + ErrMsg string `protobuf:"bytes,2,opt,name=ErrMsg" json:"ErrMsg,omitempty"` + Id2Result []*Id2Result `protobuf:"bytes,3,rep,name=Id2Result" json:"Id2Result,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -2110,7 +2206,7 @@ func (m *InviteUserToGroupResp) Reset() { *m = InviteUserToGroupResp{} } func (m *InviteUserToGroupResp) String() string { return proto.CompactTextString(m) } func (*InviteUserToGroupResp) ProtoMessage() {} func (*InviteUserToGroupResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_ed07d0078ff66bfe, []int{31} + return fileDescriptor_group_ac6850665f72c22b, []int{31} } func (m *InviteUserToGroupResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_InviteUserToGroupResp.Unmarshal(m, b) @@ -2130,16 +2226,16 @@ func (m *InviteUserToGroupResp) XXX_DiscardUnknown() { var xxx_messageInfo_InviteUserToGroupResp proto.InternalMessageInfo -func (m *InviteUserToGroupResp) GetErrorCode() int32 { +func (m *InviteUserToGroupResp) GetErrCode() int32 { if m != nil { - return m.ErrorCode + return m.ErrCode } return 0 } -func (m *InviteUserToGroupResp) GetErrorMsg() string { +func (m *InviteUserToGroupResp) GetErrMsg() string { if m != nil { - return m.ErrorMsg + return m.ErrMsg } return "" } @@ -2155,6 +2251,7 @@ type GetGroupAllMemberReq struct { GroupID string `protobuf:"bytes,1,opt,name=groupID" json:"groupID,omitempty"` Token string `protobuf:"bytes,2,opt,name=token" json:"token,omitempty"` OperationID string `protobuf:"bytes,3,opt,name=operationID" json:"operationID,omitempty"` + OpUserID string `protobuf:"bytes,4,opt,name=OpUserID" json:"OpUserID,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -2164,7 +2261,7 @@ func (m *GetGroupAllMemberReq) Reset() { *m = GetGroupAllMemberReq{} } func (m *GetGroupAllMemberReq) String() string { return proto.CompactTextString(m) } func (*GetGroupAllMemberReq) ProtoMessage() {} func (*GetGroupAllMemberReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_ed07d0078ff66bfe, []int{32} + return fileDescriptor_group_ac6850665f72c22b, []int{32} } func (m *GetGroupAllMemberReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetGroupAllMemberReq.Unmarshal(m, b) @@ -2205,9 +2302,16 @@ func (m *GetGroupAllMemberReq) GetOperationID() string { return "" } +func (m *GetGroupAllMemberReq) GetOpUserID() string { + if m != nil { + return m.OpUserID + } + return "" +} + type GetGroupAllMemberResp struct { - ErrorCode int32 `protobuf:"varint,1,opt,name=errorCode" json:"errorCode,omitempty"` - ErrorMsg string `protobuf:"bytes,2,opt,name=errorMsg" json:"errorMsg,omitempty"` + ErrCode int32 `protobuf:"varint,1,opt,name=ErrCode" json:"ErrCode,omitempty"` + ErrMsg string `protobuf:"bytes,2,opt,name=ErrMsg" json:"ErrMsg,omitempty"` MemberList []*GroupMemberFullInfo `protobuf:"bytes,3,rep,name=memberList" json:"memberList,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` @@ -2218,7 +2322,7 @@ func (m *GetGroupAllMemberResp) Reset() { *m = GetGroupAllMemberResp{} } func (m *GetGroupAllMemberResp) String() string { return proto.CompactTextString(m) } func (*GetGroupAllMemberResp) ProtoMessage() {} func (*GetGroupAllMemberResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_ed07d0078ff66bfe, []int{33} + return fileDescriptor_group_ac6850665f72c22b, []int{33} } func (m *GetGroupAllMemberResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetGroupAllMemberResp.Unmarshal(m, b) @@ -2238,16 +2342,16 @@ func (m *GetGroupAllMemberResp) XXX_DiscardUnknown() { var xxx_messageInfo_GetGroupAllMemberResp proto.InternalMessageInfo -func (m *GetGroupAllMemberResp) GetErrorCode() int32 { +func (m *GetGroupAllMemberResp) GetErrCode() int32 { if m != nil { - return m.ErrorCode + return m.ErrCode } return 0 } -func (m *GetGroupAllMemberResp) GetErrorMsg() string { +func (m *GetGroupAllMemberResp) GetErrMsg() string { if m != nil { - return m.ErrorMsg + return m.ErrMsg } return "" } @@ -2799,116 +2903,117 @@ var _Group_serviceDesc = grpc.ServiceDesc{ Metadata: "group/group.proto", } -func init() { proto.RegisterFile("group/group.proto", fileDescriptor_group_ed07d0078ff66bfe) } - -var fileDescriptor_group_ed07d0078ff66bfe = []byte{ - // 1718 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x59, 0xcd, 0x6e, 0xdc, 0xb6, - 0x13, 0x87, 0x76, 0xb5, 0xb6, 0x77, 0xfc, 0x4d, 0xc7, 0x8e, 0xfe, 0x8a, 0xff, 0x86, 0xc3, 0x06, - 0x85, 0xd1, 0x83, 0x0b, 0x38, 0x68, 0x81, 0xb4, 0x39, 0x34, 0xb1, 0x63, 0xc7, 0x69, 0x63, 0x27, - 0xb2, 0x73, 0xe9, 0x25, 0x51, 0x56, 0xf4, 0x46, 0xf1, 0xae, 0xb4, 0x96, 0xb4, 0x4d, 0xda, 0x4b, - 0x91, 0xa2, 0x40, 0xbf, 0x50, 0xf4, 0x90, 0x53, 0xdb, 0x17, 0xe8, 0xa9, 0x4f, 0xd0, 0xb7, 0xe9, - 0x8b, 0x14, 0x1c, 0x92, 0x12, 0xf5, 0xb5, 0x1b, 0xd8, 0x45, 0x73, 0x59, 0x68, 0x86, 0x43, 0x72, - 0x66, 0x38, 0xf3, 0xe3, 0x0c, 0x17, 0x16, 0xbb, 0x51, 0x38, 0x1c, 0xbc, 0x8f, 0xbf, 0x9b, 0x83, - 0x28, 0x4c, 0x42, 0xd2, 0x42, 0x82, 0xee, 0x02, 0x6c, 0x87, 0xfd, 0x7e, 0x18, 0x38, 0x2c, 0x1e, - 0x90, 0x55, 0x68, 0xdf, 0x89, 0xa2, 0x30, 0xda, 0x0e, 0x3d, 0x66, 0x19, 0xeb, 0xc6, 0x46, 0xcb, - 0xc9, 0x18, 0xc4, 0x86, 0x29, 0x24, 0xee, 0xc7, 0x5d, 0xab, 0xb1, 0x6e, 0x6c, 0xb4, 0x9d, 0x94, - 0xa6, 0xaf, 0x1b, 0x30, 0xb7, 0x1d, 0x31, 0x37, 0x61, 0x7b, 0x7c, 0x5d, 0x87, 0x9d, 0x91, 0x1b, - 0x00, 0x7d, 0xd6, 0x7f, 0xca, 0xa2, 0xcf, 0xfc, 0x38, 0xb1, 0x8c, 0xf5, 0xe6, 0xc6, 0xf4, 0xd6, - 0xff, 0x36, 0x85, 0x0e, 0x28, 0x74, 0xcb, 0xf3, 0xee, 0xa3, 0xc0, 0x7e, 0x70, 0x12, 0x3a, 0x9a, - 0x30, 0xd7, 0x03, 0xe5, 0x0e, 0xdc, 0x3e, 0x93, 0x5b, 0x65, 0x0c, 0x42, 0x61, 0xc6, 0x0f, 0x92, - 0x28, 0xf4, 0x86, 0x9d, 0xc4, 0x0f, 0x03, 0xab, 0x89, 0x02, 0x39, 0x1e, 0x97, 0x09, 0xc2, 0xc4, - 0x3f, 0xf1, 0x3b, 0x2e, 0xca, 0x98, 0x42, 0x46, 0xe7, 0x11, 0x0b, 0x26, 0x4f, 0xdc, 0x0e, 0x7b, - 0x14, 0xf5, 0xac, 0x16, 0x0e, 0x2b, 0x92, 0x5c, 0x82, 0x56, 0x12, 0x9e, 0xb2, 0xc0, 0x9a, 0x40, - 0xbe, 0x20, 0xc8, 0x3a, 0x4c, 0x87, 0x03, 0x16, 0xe1, 0xe4, 0xfd, 0x1d, 0x6b, 0x12, 0xc7, 0x74, - 0x16, 0x99, 0x83, 0x06, 0x7b, 0x69, 0x4d, 0xe1, 0x40, 0x83, 0xbd, 0xa4, 0x9f, 0x00, 0x29, 0x5b, - 0x4a, 0x16, 0xa0, 0x39, 0xf4, 0x3d, 0xf4, 0x6f, 0xdb, 0xe1, 0x9f, 0x5c, 0x93, 0x98, 0x25, 0x4e, - 0xd8, 0x13, 0xd6, 0xb6, 0x1c, 0x45, 0x52, 0x06, 0xf3, 0x39, 0xb7, 0x5e, 0xe4, 0x90, 0xf8, 0x36, - 0xe8, 0xc5, 0xfd, 0x1d, 0xe9, 0x33, 0x45, 0xd2, 0x1e, 0x2c, 0xec, 0xb1, 0x04, 0xf7, 0x88, 0xf1, - 0x34, 0xd8, 0x19, 0x37, 0x57, 0x0e, 0xa7, 0x07, 0xd8, 0x76, 0x74, 0x56, 0xe6, 0xa6, 0xc6, 0x08, - 0x37, 0x35, 0x4b, 0x6e, 0xa2, 0x31, 0x2c, 0x16, 0x76, 0xbb, 0x90, 0x59, 0xd7, 0xc0, 0xf4, 0xdc, - 0xc4, 0xb5, 0x9a, 0x18, 0x62, 0x0b, 0x7a, 0x88, 0xe1, 0xea, 0x38, 0x4a, 0xff, 0x36, 0x60, 0xfe, - 0x48, 0xee, 0xaa, 0x4c, 0xd4, 0x1c, 0x62, 0xe4, 0x1c, 0x32, 0x3e, 0x02, 0x73, 0xd1, 0xd5, 0xac, - 0x88, 0xae, 0x62, 0x94, 0x9a, 0x15, 0x51, 0xfa, 0xaf, 0x47, 0x20, 0x7d, 0x00, 0xb6, 0x72, 0xed, - 0xad, 0xc1, 0xa0, 0x27, 0x95, 0xe1, 0xa7, 0xc5, 0xed, 0x5d, 0x80, 0xe6, 0xa3, 0xd4, 0x56, 0xfe, - 0xc9, 0x57, 0x3c, 0xd4, 0x56, 0x14, 0x96, 0xea, 0x2c, 0xfa, 0xab, 0x09, 0x57, 0x6b, 0x96, 0x7c, - 0xbc, 0xe3, 0x26, 0xee, 0xe3, 0x47, 0x31, 0x8b, 0x78, 0xe4, 0xa7, 0x0b, 0x37, 0xf6, 0x77, 0xb8, - 0x65, 0x7b, 0xd2, 0xb3, 0x62, 0x4d, 0x45, 0x92, 0x35, 0x80, 0xdd, 0x28, 0xec, 0xf3, 0x59, 0x69, - 0x74, 0x68, 0x1c, 0x7e, 0xd2, 0xc7, 0xa1, 0x1c, 0x15, 0x3e, 0x4b, 0x69, 0x42, 0xc0, 0xdc, 0xed, - 0xb9, 0x5d, 0x74, 0x56, 0xcb, 0xc1, 0x6f, 0xbe, 0x9e, 0xc3, 0xce, 0x86, 0x2c, 0x4e, 0x78, 0x6c, - 0x08, 0x77, 0x69, 0x1c, 0x3e, 0x7e, 0xd7, 0x0d, 0xbc, 0x1e, 0xf3, 0xf8, 0xb8, 0x70, 0x99, 0xc6, - 0xe1, 0x9a, 0xde, 0xf2, 0xbc, 0x63, 0xbf, 0xcf, 0x30, 0x71, 0x9b, 0x8e, 0x22, 0xc9, 0x7b, 0xb0, - 0xa0, 0xf4, 0x3a, 0xf0, 0x3b, 0xa7, 0x01, 0x0f, 0x85, 0x36, 0xce, 0x2f, 0xf1, 0xc9, 0xbb, 0x30, - 0x27, 0xb4, 0x4c, 0x25, 0x01, 0x25, 0x0b, 0x5c, 0xb2, 0x01, 0xf3, 0x6a, 0xee, 0xae, 0x3c, 0xf9, - 0x69, 0x14, 0x2c, 0xb2, 0xc9, 0x35, 0x98, 0x15, 0x73, 0x95, 0xdc, 0x0c, 0xca, 0xe5, 0x99, 0xfc, - 0xfc, 0xa4, 0x2d, 0x9c, 0x6b, 0xcd, 0x8a, 0xf3, 0xd3, 0x58, 0xdc, 0x67, 0xc7, 0x5f, 0x0e, 0x98, - 0x35, 0x27, 0x7c, 0xc6, 0xbf, 0x79, 0x6c, 0x0a, 0x91, 0xa3, 0xc4, 0x4d, 0x86, 0xb1, 0x35, 0x8f, - 0x63, 0x39, 0x5e, 0x26, 0xe3, 0xb0, 0x78, 0xd8, 0x4b, 0xac, 0x05, 0x5d, 0x46, 0xf0, 0xe8, 0x19, - 0x5c, 0xa9, 0x09, 0x0d, 0x1e, 0x19, 0x3c, 0x88, 0xb7, 0xc3, 0x61, 0x90, 0xc8, 0x74, 0x16, 0x04, - 0xb9, 0x09, 0x26, 0xea, 0xda, 0xc0, 0x74, 0xdd, 0x50, 0xe9, 0x3a, 0x2e, 0xc4, 0x1c, 0x9c, 0x45, - 0xbf, 0x33, 0x6a, 0xf7, 0x44, 0x18, 0xb1, 0x60, 0xf2, 0x4e, 0xa4, 0x83, 0x88, 0x22, 0xc9, 0x0a, - 0x4c, 0xdc, 0x89, 0x34, 0x00, 0x91, 0x14, 0xf9, 0x10, 0xcc, 0x1d, 0x01, 0x1f, 0xc6, 0xc6, 0xf4, - 0x16, 0x1d, 0xad, 0x0f, 0x97, 0x74, 0x50, 0x9e, 0xfe, 0x64, 0xc0, 0xf2, 0x71, 0xe4, 0x06, 0xf1, - 0x09, 0x8b, 0x50, 0xf4, 0xf0, 0x45, 0xc0, 0x22, 0x09, 0x2b, 0x7b, 0x79, 0x58, 0x51, 0xc1, 0x6f, - 0xc3, 0xd4, 0x61, 0xcf, 0x43, 0x41, 0x05, 0x63, 0x8a, 0xe6, 0x63, 0x07, 0xec, 0x85, 0x18, 0x13, - 0x69, 0x91, 0xd2, 0xc5, 0x34, 0x35, 0xcb, 0x69, 0x7a, 0x0f, 0x56, 0xaa, 0x94, 0x39, 0x8f, 0x47, - 0xe8, 0x57, 0x30, 0x73, 0x2f, 0xf4, 0x83, 0xf4, 0x26, 0xaf, 0x87, 0x49, 0x0b, 0x26, 0xfb, 0x2c, - 0x8e, 0xdd, 0xae, 0x02, 0x49, 0x45, 0x66, 0x00, 0xd6, 0x2c, 0x00, 0xd8, 0x18, 0x3b, 0x7e, 0x30, - 0xe1, 0x4a, 0xd1, 0xf1, 0xdc, 0x8c, 0x30, 0x88, 0x99, 0xbc, 0x95, 0xf4, 0x15, 0x8c, 0xd2, 0x0a, - 0x5c, 0x27, 0x34, 0x3e, 0x83, 0x1e, 0x49, 0xea, 0xe7, 0xd2, 0x1c, 0x05, 0x4a, 0x66, 0x09, 0x94, - 0x0a, 0x50, 0x80, 0xb7, 0x42, 0xab, 0x0c, 0x05, 0x07, 0x35, 0x29, 0x3e, 0x51, 0x9d, 0xe2, 0x3a, - 0xd4, 0x4d, 0x16, 0xa0, 0x2e, 0x07, 0x28, 0xb8, 0xdf, 0x54, 0x11, 0x50, 0x70, 0xb7, 0x12, 0x4c, - 0xb4, 0xab, 0x60, 0x42, 0x03, 0x39, 0xc8, 0x83, 0x5c, 0x1e, 0x3e, 0xa7, 0xc7, 0xc0, 0xe7, 0x4c, - 0x09, 0x3e, 0x15, 0xbc, 0xcc, 0x8e, 0x80, 0x97, 0xb9, 0x37, 0x80, 0x97, 0xf9, 0x0a, 0x78, 0x79, - 0x00, 0xab, 0xf5, 0xa1, 0x70, 0xae, 0xc8, 0xfe, 0xde, 0x00, 0xeb, 0x88, 0x25, 0x18, 0x10, 0xb8, - 0xb4, 0xf2, 0xe3, 0xe8, 0x30, 0xb7, 0x61, 0x2a, 0x50, 0xc7, 0x20, 0xd3, 0x56, 0xd1, 0xc5, 0x80, - 0x6c, 0x96, 0x03, 0x32, 0x4d, 0x05, 0x53, 0x4b, 0x05, 0xfa, 0x04, 0x66, 0x1e, 0x0e, 0xfd, 0xe4, - 0x0d, 0x92, 0xac, 0x70, 0xeb, 0x37, 0xca, 0x75, 0x67, 0x65, 0xb2, 0xd1, 0x6f, 0x1b, 0x60, 0x15, - 0xfd, 0x87, 0xd1, 0xc5, 0x8b, 0xd0, 0xfa, 0xed, 0x64, 0x79, 0xda, 0xc8, 0xca, 0x53, 0x02, 0x26, - 0x5e, 0x69, 0x62, 0x75, 0xfc, 0xe6, 0x3c, 0xbf, 0x93, 0x96, 0x35, 0xf8, 0xcd, 0xbd, 0x1e, 0xb1, - 0x33, 0xee, 0x75, 0x91, 0x1b, 0x92, 0xe2, 0x19, 0xe1, 0x66, 0x2a, 0x60, 0x14, 0x4e, 0x60, 0x14, - 0x16, 0xd9, 0x7c, 0xd5, 0x13, 0x7e, 0xc1, 0x4f, 0x8a, 0x68, 0x3a, 0x91, 0x17, 0xbc, 0xb0, 0x35, - 0xe4, 0x79, 0x22, 0xb2, 0x40, 0xe3, 0xf0, 0xf1, 0x67, 0x59, 0x84, 0x8a, 0xf0, 0xd7, 0x38, 0xf4, - 0xb5, 0x01, 0x4b, 0xe8, 0x06, 0x51, 0x82, 0xef, 0x0e, 0x7b, 0x3d, 0xf4, 0xc0, 0x0a, 0x4c, 0x0c, - 0xb9, 0x37, 0x54, 0x25, 0x2e, 0x29, 0xae, 0x43, 0x94, 0x55, 0xe2, 0xf8, 0xcd, 0x03, 0xe0, 0x79, - 0xe8, 0x0b, 0xd5, 0xb9, 0x17, 0x4c, 0x27, 0xa5, 0x73, 0xc1, 0x61, 0x16, 0x82, 0xa3, 0xb6, 0xc0, - 0xa3, 0xbf, 0x1b, 0xb0, 0xac, 0xee, 0x98, 0xfb, 0x69, 0xe7, 0x33, 0x3a, 0x10, 0xce, 0x59, 0x6f, - 0x73, 0x4b, 0x4f, 0xfc, 0x5e, 0xc2, 0x22, 0xd4, 0xaf, 0xe5, 0x48, 0x8a, 0xef, 0x14, 0xb0, 0x97, - 0xc9, 0x11, 0x3b, 0x93, 0x15, 0x95, 0x22, 0xe9, 0x1f, 0x06, 0xac, 0x54, 0x69, 0x27, 0xea, 0x74, - 0x56, 0xac, 0xd3, 0x99, 0x5e, 0xa7, 0xb3, 0x42, 0x9d, 0xae, 0x68, 0xf2, 0x51, 0xae, 0x21, 0x14, - 0xd5, 0xba, 0xad, 0x57, 0xeb, 0xf9, 0x03, 0xca, 0x75, 0x84, 0x9a, 0xaa, 0x66, 0x5e, 0xd5, 0x1f, - 0x4b, 0xaa, 0xc6, 0xe3, 0xcb, 0xfb, 0xb5, 0x9c, 0x2a, 0x0d, 0x6c, 0x6d, 0xf4, 0xed, 0x6a, 0x6f, - 0xaf, 0xb0, 0x7c, 0x7b, 0xe9, 0xe5, 0xf7, 0x2f, 0x06, 0x5c, 0xae, 0x54, 0xe6, 0x6d, 0x39, 0x8e, - 0xfe, 0x65, 0x00, 0xf9, 0xd4, 0xef, 0x9c, 0x6a, 0x72, 0xa3, 0x5d, 0x73, 0x13, 0xa6, 0x87, 0xbe, - 0xc7, 0xe7, 0xf2, 0xb5, 0x64, 0x95, 0x36, 0x6a, 0x37, 0x5d, 0x5c, 0x40, 0x80, 0x1b, 0xa7, 0x3d, - 0x91, 0xa4, 0xaa, 0x31, 0xb0, 0xe8, 0xd0, 0x56, 0xd9, 0xa1, 0x1f, 0x40, 0x7b, 0xdf, 0xdb, 0x12, - 0xf7, 0x01, 0x22, 0xd3, 0x7e, 0xd6, 0x38, 0xef, 0x7b, 0x62, 0x3b, 0xbc, 0x3f, 0x44, 0xb6, 0x4a, - 0x8a, 0x7e, 0x0d, 0x4b, 0x25, 0xa3, 0x2f, 0x74, 0x04, 0x9b, 0xd0, 0xf6, 0xbd, 0x2d, 0xb9, 0x57, - 0xbe, 0xd1, 0x4c, 0xf5, 0x73, 0x32, 0x11, 0x7a, 0x08, 0xcb, 0x5d, 0x96, 0xf0, 0x2a, 0x8a, 0x79, - 0xa8, 0x85, 0xca, 0xee, 0xd4, 0x11, 0xc6, 0x08, 0x47, 0x94, 0x21, 0x9e, 0xbe, 0x6a, 0x40, 0x3b, - 0xed, 0x5d, 0xb3, 0xe3, 0xf3, 0xf2, 0xc7, 0xe7, 0xbd, 0xf5, 0xc6, 0x75, 0x0d, 0xa0, 0x83, 0x0f, - 0x16, 0x29, 0xcc, 0x9b, 0x8e, 0xc6, 0xe1, 0x33, 0x43, 0x2c, 0xc7, 0x3c, 0x59, 0xf2, 0x28, 0x92, - 0xfb, 0x40, 0xc4, 0xad, 0xe8, 0x19, 0x38, 0xd0, 0xcf, 0x3a, 0x3a, 0x8b, 0x7e, 0x63, 0xc0, 0x4a, - 0x95, 0x57, 0x2f, 0x7a, 0xb2, 0x5d, 0xb5, 0x54, 0xed, 0x13, 0x42, 0x26, 0x42, 0x7f, 0x33, 0xe0, - 0x92, 0x1f, 0x7c, 0xe1, 0x27, 0x8c, 0xdf, 0xa5, 0xc7, 0x61, 0x7a, 0x81, 0x9f, 0xf3, 0x64, 0xeb, - 0x5f, 0x65, 0xb4, 0x64, 0x32, 0x73, 0xc9, 0x64, 0xc1, 0xa4, 0xcc, 0x39, 0xab, 0x85, 0xd0, 0xa5, - 0x48, 0xfa, 0xca, 0x80, 0xe5, 0x0a, 0xe5, 0xfe, 0xd3, 0xd0, 0x7f, 0x06, 0x97, 0xd2, 0xe6, 0xa9, - 0xd7, 0x7b, 0x13, 0xc8, 0x39, 0xef, 0x3b, 0xd2, 0xcf, 0xda, 0x1d, 0xaa, 0x6d, 0xf5, 0xb6, 0xb0, - 0x76, 0xeb, 0xcf, 0x29, 0x10, 0xcf, 0xaa, 0x1c, 0x44, 0x3b, 0xd9, 0xb3, 0x1d, 0x59, 0x96, 0x0b, - 0xe4, 0x5f, 0x48, 0xed, 0x95, 0x2a, 0x76, 0x3c, 0x20, 0xd7, 0xa1, 0xfd, 0x5c, 0xf5, 0x5f, 0x64, - 0x49, 0x0a, 0xe9, 0x1d, 0x99, 0xbd, 0xa8, 0x66, 0x66, 0x6f, 0xb7, 0xd7, 0xa1, 0x7d, 0xa6, 0xea, - 0xc9, 0x74, 0x92, 0x5e, 0x61, 0x56, 0x4d, 0xba, 0x0d, 0xb3, 0x5d, 0xfd, 0x25, 0x8e, 0x5c, 0x2e, - 0xb4, 0xbf, 0xea, 0x2e, 0xb5, 0xad, 0xea, 0x81, 0x78, 0x40, 0x6e, 0xc0, 0x4c, 0xac, 0xbd, 0xab, - 0x11, 0x65, 0x55, 0xe1, 0xb1, 0xad, 0x6a, 0xfb, 0x27, 0x70, 0xb9, 0x5b, 0xdd, 0x67, 0x93, 0xab, - 0xa3, 0xfb, 0x70, 0xbe, 0x20, 0x1d, 0x27, 0x12, 0x0f, 0xc8, 0x43, 0x20, 0x49, 0xa9, 0x2d, 0x26, - 0xab, 0x72, 0x66, 0x65, 0xfb, 0x6e, 0xff, 0x7f, 0xc4, 0x68, 0x3c, 0x20, 0x1d, 0xb0, 0xba, 0x35, - 0x5d, 0x09, 0xa1, 0xb9, 0xf7, 0xed, 0xca, 0x0e, 0xd6, 0x7e, 0x67, 0xac, 0x8c, 0xd0, 0xbb, 0x5b, - 0xaa, 0xbf, 0x52, 0xbd, 0x2b, 0x0b, 0xc7, 0x54, 0xef, 0x9a, 0xc2, 0xed, 0x18, 0x96, 0xba, 0xe5, - 0xd2, 0x84, 0x54, 0xcf, 0x4a, 0xcf, 0x7d, 0x6d, 0xd4, 0x70, 0x3c, 0x20, 0x77, 0x61, 0xfe, 0x34, - 0x7f, 0xd3, 0x12, 0xf5, 0xc8, 0x5f, 0x2e, 0x3b, 0x6c, 0xbb, 0x6e, 0x28, 0x35, 0xb9, 0x00, 0xee, - 0xa9, 0xc9, 0x95, 0xb7, 0x69, 0x6a, 0x72, 0xcd, 0xad, 0x70, 0x00, 0x8b, 0x25, 0x34, 0x24, 0x57, - 0xe4, 0x9c, 0x2a, 0x10, 0xb7, 0x57, 0xeb, 0x07, 0xc5, 0x7a, 0xdd, 0x22, 0xde, 0xa4, 0xeb, 0x55, - 0x81, 0x9e, 0xbd, 0x5a, 0x3f, 0x18, 0x0f, 0x6e, 0xcf, 0x7f, 0x3e, 0xbb, 0x29, 0xfe, 0x95, 0xf9, - 0x18, 0x7f, 0x9f, 0x4e, 0xe0, 0x9f, 0x33, 0xd7, 0xff, 0x09, 0x00, 0x00, 0xff, 0xff, 0xc0, 0xd8, - 0xe8, 0x44, 0xb1, 0x19, 0x00, 0x00, +func init() { proto.RegisterFile("group/group.proto", fileDescriptor_group_ac6850665f72c22b) } + +var fileDescriptor_group_ac6850665f72c22b = []byte{ + // 1744 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x59, 0xdb, 0x6f, 0xdc, 0x44, + 0x17, 0x97, 0x77, 0xbd, 0x9b, 0xec, 0xc9, 0x7d, 0xd2, 0xa4, 0xfe, 0xdc, 0x7c, 0x51, 0xea, 0xaf, + 0xfa, 0x14, 0xf1, 0x10, 0xa4, 0x54, 0x20, 0x15, 0x2a, 0x44, 0x9b, 0x5b, 0xb7, 0xd0, 0x94, 0x3a, + 0xe9, 0x4b, 0x25, 0x54, 0xdc, 0xf5, 0xec, 0xe2, 0x66, 0xd7, 0xf6, 0xda, 0x5e, 0xda, 0x4a, 0x08, + 0x09, 0xa9, 0xa8, 0x48, 0x3c, 0x22, 0x21, 0xf1, 0xc6, 0x03, 0x82, 0x37, 0x24, 0x5e, 0xe0, 0x5f, + 0xe1, 0xbf, 0x01, 0xcd, 0xd5, 0xe3, 0x6b, 0xa2, 0x45, 0x94, 0x97, 0x95, 0xcf, 0x99, 0x33, 0x33, + 0x67, 0x7e, 0x73, 0xce, 0x6f, 0xce, 0xcc, 0xc2, 0xca, 0x20, 0x0a, 0x26, 0xe1, 0x9b, 0xf4, 0x77, + 0x27, 0x8c, 0x82, 0x24, 0x40, 0x2d, 0x2a, 0x58, 0xef, 0x01, 0xec, 0x05, 0xa3, 0x51, 0xe0, 0xdb, + 0x38, 0x0e, 0x91, 0x01, 0x33, 0x07, 0x51, 0xb4, 0x17, 0xb8, 0xd8, 0xd0, 0xb6, 0xb4, 0xed, 0x96, + 0x2d, 0x44, 0xb4, 0x0e, 0xed, 0x83, 0x28, 0xba, 0x17, 0x0f, 0x8c, 0xc6, 0x96, 0xb6, 0xdd, 0xb1, + 0xb9, 0x64, 0xfd, 0xda, 0x80, 0xc5, 0xbd, 0x08, 0x3b, 0x09, 0x3e, 0x22, 0xe3, 0xd9, 0x78, 0x8c, + 0x6e, 0x00, 0x8c, 0xf0, 0xe8, 0x09, 0x8e, 0x3e, 0xf4, 0xe2, 0xc4, 0xd0, 0xb6, 0x9a, 0xdb, 0x73, + 0xbb, 0xff, 0xd9, 0x61, 0x73, 0x53, 0xa3, 0x5b, 0xae, 0x7b, 0x8f, 0x1a, 0x74, 0xfd, 0x7e, 0x60, + 0x2b, 0xc6, 0x68, 0x03, 0x3a, 0xd4, 0xee, 0xd8, 0x19, 0x61, 0x3e, 0x51, 0xaa, 0x40, 0x16, 0xcc, + 0x7b, 0x7e, 0x12, 0x05, 0xee, 0xa4, 0x97, 0x78, 0x81, 0x6f, 0x34, 0xa9, 0x41, 0x46, 0x47, 0x6c, + 0xfc, 0x20, 0xf1, 0xfa, 0x5e, 0xcf, 0xa1, 0x36, 0x3a, 0xb3, 0x51, 0x75, 0x64, 0x95, 0x7d, 0xa7, + 0x87, 0x1f, 0x46, 0x43, 0xa3, 0x45, 0x9b, 0x85, 0x88, 0x2e, 0x41, 0x2b, 0x09, 0xce, 0xb0, 0x6f, + 0xb4, 0xa9, 0x9e, 0x09, 0x68, 0x0b, 0xe6, 0x82, 0x10, 0x47, 0xb4, 0x73, 0x77, 0xdf, 0x98, 0xa1, + 0x6d, 0xaa, 0x0a, 0x99, 0x30, 0x7b, 0x3f, 0x7c, 0x18, 0xe3, 0xa8, 0xbb, 0x6f, 0xcc, 0xd2, 0x66, + 0x29, 0xa3, 0x65, 0x68, 0x1e, 0x3c, 0x4f, 0x8c, 0x0e, 0x55, 0x93, 0x4f, 0xeb, 0x7d, 0x40, 0x45, + 0x1c, 0x88, 0xdd, 0xc4, 0x73, 0x29, 0xee, 0x1d, 0x9b, 0x7c, 0x12, 0x3f, 0x63, 0x9c, 0xd8, 0xc1, + 0x90, 0x61, 0xd1, 0xb2, 0x85, 0x68, 0x7d, 0x0c, 0x4b, 0x19, 0xd0, 0xa7, 0xd9, 0x3a, 0xd2, 0x83, + 0x62, 0xdb, 0xdd, 0xe7, 0x48, 0x0a, 0xd1, 0xfa, 0x5a, 0x83, 0xe5, 0x23, 0x9c, 0xd0, 0xc1, 0x63, + 0xba, 0x49, 0x78, 0x4c, 0x50, 0xe0, 0xed, 0x72, 0x5f, 0x3b, 0xb6, 0xaa, 0x4a, 0xd1, 0x6b, 0xd4, + 0xa0, 0xd7, 0xac, 0x47, 0x4f, 0xcf, 0xa2, 0x67, 0x9d, 0xc1, 0x4a, 0xce, 0x93, 0xa9, 0xd6, 0x7a, + 0x0d, 0x74, 0xd7, 0x49, 0x1c, 0xa3, 0x49, 0xa3, 0x71, 0x59, 0x8d, 0x46, 0x3a, 0x2a, 0x6d, 0xb5, + 0xfe, 0xd4, 0x60, 0xe9, 0x84, 0xcf, 0x26, 0x96, 0xad, 0xa0, 0xa4, 0x65, 0x50, 0x3a, 0x3f, 0x58, + 0x33, 0x81, 0xd8, 0x2c, 0x09, 0xc4, 0x7c, 0x40, 0xeb, 0x25, 0x01, 0xfd, 0x5a, 0x83, 0xd5, 0x7a, + 0x04, 0xa6, 0x80, 0xfb, 0x56, 0x18, 0x0e, 0xb9, 0xa3, 0x64, 0x77, 0x09, 0x16, 0x6a, 0x4f, 0x2d, + 0x17, 0xe6, 0x5b, 0x30, 0x77, 0x5f, 0x99, 0x97, 0xe1, 0xa1, 0xaa, 0xac, 0xef, 0x75, 0xb8, 0x5a, + 0x31, 0xf8, 0xe3, 0x7d, 0x27, 0x71, 0x1e, 0x93, 0x91, 0xd0, 0x22, 0x34, 0xe4, 0xe8, 0x8d, 0xee, + 0x3e, 0x59, 0xff, 0x11, 0xc7, 0x9f, 0x8d, 0x29, 0x44, 0xb4, 0x09, 0x70, 0x18, 0x05, 0x23, 0xee, + 0x0f, 0xc3, 0x57, 0xd1, 0x10, 0x6f, 0x4f, 0x83, 0x6c, 0x58, 0x09, 0x19, 0x21, 0xd0, 0x0f, 0x87, + 0xce, 0x80, 0x42, 0xda, 0xb2, 0xe9, 0x37, 0x19, 0xcf, 0xc6, 0xe3, 0x09, 0x8e, 0x13, 0x12, 0x3f, + 0x0c, 0x54, 0x45, 0x43, 0xda, 0xef, 0x38, 0xbe, 0x3b, 0xc4, 0x2e, 0x69, 0x67, 0xc0, 0x2a, 0x1a, + 0xe2, 0xe9, 0x2d, 0xd7, 0x3d, 0xf5, 0x46, 0x98, 0xc2, 0xda, 0xb4, 0x85, 0x88, 0xde, 0x80, 0x65, + 0xe1, 0xd7, 0xb1, 0xd7, 0x3b, 0xf3, 0x49, 0xc0, 0x30, 0x3e, 0x28, 0xe8, 0xd1, 0xff, 0x61, 0x91, + 0x79, 0x29, 0x2d, 0x81, 0x5a, 0xe6, 0xb4, 0x68, 0x1b, 0x96, 0x44, 0xdf, 0x43, 0x1e, 0x1f, 0x73, + 0xd4, 0x30, 0xaf, 0x46, 0xd7, 0x60, 0x81, 0xf5, 0x15, 0x76, 0xf3, 0xd4, 0x2e, 0xab, 0x24, 0xfb, + 0xc7, 0xd7, 0x42, 0xb4, 0xc6, 0x02, 0xdb, 0x3f, 0x45, 0x45, 0x30, 0x3b, 0x7d, 0x11, 0x62, 0x63, + 0x91, 0x61, 0x46, 0xbe, 0x49, 0x04, 0x33, 0x93, 0x93, 0xc4, 0x49, 0x26, 0xb1, 0xb1, 0x44, 0xdb, + 0x32, 0xba, 0xd4, 0xc6, 0xc6, 0xf1, 0x64, 0x98, 0x18, 0xcb, 0xaa, 0x0d, 0xd3, 0x59, 0x63, 0xb8, + 0x52, 0x11, 0x1a, 0x24, 0x32, 0x48, 0xa8, 0xef, 0x05, 0x13, 0x3f, 0xe1, 0xe9, 0xce, 0x04, 0x74, + 0x13, 0x74, 0xea, 0x6b, 0x83, 0x26, 0xf5, 0xb6, 0x48, 0xea, 0xf3, 0x42, 0xcc, 0xa6, 0xbd, 0xac, + 0x57, 0x5a, 0xe5, 0x9c, 0x53, 0x92, 0xcc, 0xdb, 0xa0, 0xef, 0x33, 0x92, 0xd1, 0xb6, 0xe7, 0x76, + 0xad, 0x7a, 0x7f, 0x88, 0xa5, 0x4d, 0xed, 0xad, 0x9f, 0x35, 0x58, 0x3b, 0x8d, 0x1c, 0x3f, 0xee, + 0xe3, 0x88, 0x9a, 0xde, 0x7f, 0xe6, 0xe3, 0x88, 0x93, 0xcf, 0x51, 0x96, 0x7c, 0x44, 0xf0, 0x93, + 0x54, 0x1c, 0xba, 0xd4, 0x90, 0x7b, 0x21, 0x65, 0xd2, 0x76, 0x8c, 0x9f, 0xb1, 0x36, 0x96, 0x16, + 0x52, 0xce, 0xa7, 0xa9, 0x5e, 0x48, 0xd3, 0x4c, 0x92, 0xb7, 0x72, 0xf4, 0x70, 0x17, 0xd6, 0xcb, + 0x1c, 0x9d, 0xaa, 0x72, 0xf8, 0x4e, 0x83, 0xf9, 0xbb, 0x81, 0xe7, 0xcb, 0xba, 0xa1, 0x9a, 0x69, + 0x0d, 0x98, 0x19, 0xe1, 0x38, 0x76, 0x06, 0x82, 0x67, 0x85, 0x98, 0x72, 0x60, 0x33, 0xc7, 0x81, + 0x7f, 0x63, 0x91, 0xdf, 0xe8, 0x70, 0x25, 0xbf, 0x63, 0x64, 0x8d, 0x81, 0x1f, 0x63, 0x7e, 0x10, + 0xaa, 0xa3, 0x6b, 0xf5, 0xa3, 0x37, 0x72, 0x3c, 0xa9, 0x6c, 0x69, 0xb3, 0x8e, 0xcf, 0xf4, 0x02, + 0x9f, 0xe5, 0x58, 0x84, 0x1e, 0x3b, 0xad, 0x22, 0x8b, 0x1c, 0x57, 0xb0, 0x43, 0xbb, 0x9c, 0x1d, + 0x54, 0x96, 0x9c, 0xc9, 0xb1, 0x64, 0x86, 0x8b, 0xe8, 0x7c, 0xb3, 0x79, 0x2e, 0xa2, 0xb3, 0x15, + 0x18, 0xa6, 0x53, 0xc6, 0x30, 0x0a, 0x3f, 0x42, 0x96, 0x1f, 0xb3, 0xcc, 0x3b, 0x77, 0x0e, 0xf3, + 0xce, 0x17, 0x98, 0x57, 0x30, 0xd3, 0x42, 0x0d, 0x33, 0x2d, 0x5e, 0x80, 0x99, 0x96, 0x4a, 0x98, + 0xe9, 0x23, 0xd8, 0xa8, 0x0e, 0x86, 0xa9, 0x02, 0xff, 0x47, 0x0d, 0x8c, 0x13, 0x9c, 0xd0, 0xdc, + 0xa1, 0x43, 0x0b, 0x1c, 0xeb, 0x93, 0xc0, 0x84, 0x59, 0x5f, 0x6c, 0x03, 0x0f, 0x2a, 0x21, 0xe7, + 0x43, 0xb2, 0x59, 0x0c, 0x49, 0x99, 0x28, 0xba, 0x9a, 0x28, 0x75, 0x69, 0xf0, 0x39, 0xcc, 0x3f, + 0x98, 0x78, 0xc9, 0x05, 0xd2, 0x33, 0x57, 0x72, 0x34, 0x8a, 0x25, 0x47, 0x79, 0x9a, 0xd6, 0xd5, + 0x7d, 0x2f, 0x1b, 0x60, 0xe4, 0x71, 0xa7, 0x4d, 0xa4, 0x54, 0xae, 0x76, 0x85, 0x17, 0xd1, 0x8d, + 0xb4, 0x88, 0x46, 0xa0, 0xd3, 0x53, 0x94, 0xcd, 0x4c, 0xbf, 0x89, 0xce, 0xeb, 0xc9, 0x7a, 0x8b, + 0x7e, 0x93, 0xdd, 0x8a, 0xf0, 0x98, 0xec, 0x16, 0x03, 0x82, 0x4b, 0x24, 0x93, 0x9c, 0xd4, 0x05, + 0x1a, 0xbd, 0x6d, 0x1a, 0xbd, 0x79, 0x35, 0x19, 0xb5, 0x4f, 0x6a, 0x8a, 0x19, 0x16, 0x85, 0x7d, + 0x5e, 0x53, 0x30, 0x1c, 0x82, 0xb4, 0xda, 0x52, 0x34, 0xa4, 0xfd, 0xd3, 0x34, 0xb2, 0x59, 0xda, + 0x28, 0x1a, 0xeb, 0x5b, 0x0d, 0x56, 0x29, 0x0c, 0xec, 0xa2, 0x70, 0x38, 0x19, 0x0e, 0x29, 0x02, + 0xeb, 0xd0, 0x9e, 0x10, 0x34, 0xc4, 0x7d, 0x81, 0x4b, 0xc4, 0x87, 0x28, 0xbd, 0x2f, 0xd0, 0x6f, + 0x02, 0xf3, 0xd3, 0xc0, 0x63, 0xae, 0x13, 0x14, 0x74, 0x5b, 0xca, 0x99, 0xa0, 0xd2, 0x73, 0x41, + 0x55, 0x59, 0x79, 0x5a, 0xbf, 0x6b, 0xb0, 0x26, 0x8e, 0xb5, 0x7b, 0xf2, 0xf6, 0x56, 0x1f, 0x24, + 0xd3, 0x5e, 0x0e, 0xd6, 0xa1, 0xdd, 0xf7, 0x86, 0x09, 0x8e, 0xa8, 0x7f, 0x2d, 0x9b, 0x4b, 0x64, + 0x26, 0x1f, 0x3f, 0x4f, 0x4e, 0xf0, 0x98, 0x17, 0x71, 0x42, 0xcc, 0x84, 0x55, 0x3b, 0x17, 0x56, + 0x3f, 0x68, 0xb0, 0x5e, 0xe6, 0xf9, 0x54, 0xe7, 0xfd, 0x3b, 0x99, 0x8b, 0x2e, 0xbb, 0x5a, 0x98, + 0xea, 0xd5, 0x22, 0xbb, 0x69, 0x99, 0x9b, 0xae, 0xe2, 0xbe, 0x9e, 0x71, 0xdf, 0xfa, 0xa9, 0xe0, + 0x62, 0x7c, 0xfe, 0x5d, 0x64, 0x33, 0xe3, 0x4a, 0x83, 0xde, 0xcd, 0xd4, 0xe9, 0x2a, 0xcf, 0xc9, + 0xa0, 0x78, 0x4e, 0x06, 0x17, 0x3c, 0x27, 0x5f, 0x69, 0x70, 0xb9, 0xd4, 0xd1, 0xd7, 0x0d, 0xa6, + 0xf5, 0x87, 0x06, 0xe8, 0x03, 0xaf, 0x77, 0xa6, 0xd8, 0xd5, 0xc3, 0x75, 0x13, 0xe6, 0x26, 0x9e, + 0x4b, 0xfa, 0x92, 0xb1, 0x78, 0x01, 0x59, 0x37, 0x9b, 0x6a, 0xce, 0xa8, 0xc2, 0x89, 0xe5, 0xa5, + 0x8e, 0x4b, 0x15, 0x1c, 0x9b, 0x03, 0xb9, 0x55, 0x0f, 0x72, 0x3e, 0x60, 0xdf, 0x82, 0x4e, 0xd7, + 0xdd, 0x65, 0x67, 0x11, 0x65, 0xb7, 0x6e, 0xfa, 0x44, 0xd0, 0x75, 0x99, 0x2b, 0xf4, 0xec, 0x62, + 0x19, 0xcf, 0x25, 0xeb, 0x19, 0xac, 0x16, 0x00, 0x99, 0x6a, 0x5b, 0x76, 0xa0, 0xe3, 0xb9, 0xbb, + 0x7c, 0x8e, 0xec, 0xed, 0x59, 0xfa, 0x65, 0xa7, 0x26, 0xd6, 0x19, 0xac, 0x0d, 0x70, 0x42, 0xea, + 0x3a, 0xec, 0xd2, 0xd9, 0x05, 0x33, 0x48, 0x70, 0xb4, 0x1a, 0x70, 0x1a, 0xf5, 0xe0, 0x34, 0x73, + 0xe0, 0x7c, 0xd9, 0x80, 0x8e, 0xbc, 0xac, 0xa7, 0xdb, 0xed, 0x66, 0xb7, 0xdb, 0xfd, 0xd7, 0x6f, + 0xea, 0x9b, 0x00, 0x3d, 0xfa, 0x5c, 0x23, 0x8f, 0x0f, 0xdd, 0x56, 0x34, 0xa4, 0x67, 0x40, 0xaa, + 0x81, 0xae, 0xcb, 0x4b, 0x30, 0x21, 0x12, 0x7c, 0x58, 0x9c, 0xb3, 0xeb, 0x0f, 0x39, 0x40, 0x16, + 0x6c, 0x55, 0x65, 0x7d, 0x01, 0xeb, 0x65, 0x80, 0xd7, 0x6e, 0xb6, 0x09, 0xb3, 0x07, 0x51, 0x14, + 0x28, 0xdb, 0x2d, 0x65, 0xb2, 0xe1, 0x72, 0x98, 0xca, 0xe7, 0x92, 0xd4, 0xc4, 0xfa, 0x4d, 0x83, + 0x4b, 0x9e, 0xff, 0x99, 0x97, 0x60, 0xb2, 0x29, 0xa7, 0x81, 0xac, 0x17, 0xa6, 0xdd, 0xf0, 0xca, + 0x67, 0x29, 0x25, 0xef, 0xf4, 0x4c, 0xde, 0x19, 0x30, 0xc3, 0xd3, 0xd3, 0x68, 0x51, 0xe6, 0x13, + 0x62, 0x6d, 0x66, 0xbd, 0x80, 0xb5, 0x12, 0xbf, 0xa7, 0x4d, 0x12, 0x99, 0x0c, 0xd5, 0x49, 0x22, + 0x3f, 0xad, 0x97, 0x1a, 0x5c, 0x92, 0xd7, 0xc2, 0xe1, 0xf0, 0x22, 0x8c, 0xf5, 0x4f, 0xbc, 0xad, + 0x7d, 0xa5, 0x1c, 0xe3, 0x8a, 0x1b, 0xaf, 0x9b, 0xbe, 0x77, 0x7f, 0x99, 0x05, 0xf6, 0x1a, 0x4d, + 0x78, 0xb9, 0x97, 0xbe, 0x6b, 0xa2, 0x35, 0x3e, 0x40, 0xf6, 0x81, 0xd9, 0x5c, 0x2f, 0x53, 0xc7, + 0x21, 0xba, 0x0e, 0x9d, 0xa7, 0xe2, 0x42, 0x89, 0x56, 0xb9, 0x91, 0x7a, 0xc5, 0x34, 0x57, 0x44, + 0xcf, 0xf4, 0xc9, 0xfb, 0x3a, 0x74, 0xc6, 0xa2, 0xcc, 0x95, 0x9d, 0xd4, 0xc2, 0xb7, 0xac, 0xd3, + 0x6d, 0x58, 0x18, 0xa8, 0xaf, 0x92, 0xe8, 0x72, 0xee, 0xb2, 0x2f, 0x8e, 0x6c, 0xd3, 0x28, 0x6f, + 0x88, 0x43, 0x74, 0x03, 0xe6, 0x63, 0xe5, 0xad, 0x11, 0x89, 0x55, 0xe5, 0x1e, 0x20, 0xcb, 0xa6, + 0xff, 0x04, 0x2e, 0x0f, 0xca, 0x5f, 0x15, 0xd0, 0xd5, 0xfa, 0x57, 0x07, 0x32, 0xa0, 0x75, 0x9e, + 0x49, 0x1c, 0xa2, 0x07, 0x80, 0x92, 0xc2, 0x45, 0x1f, 0x6d, 0xf0, 0x9e, 0xa5, 0x8f, 0x15, 0xe6, + 0x7f, 0x6b, 0x5a, 0xe3, 0x10, 0xf5, 0xc0, 0x18, 0x54, 0x5c, 0xa4, 0x90, 0x95, 0xf9, 0x7b, 0xa0, + 0xf4, 0xda, 0x6d, 0xfe, 0xef, 0x5c, 0x1b, 0xe6, 0xf7, 0xa0, 0x50, 0xde, 0x49, 0xbf, 0x4b, 0x6b, + 0x56, 0xe9, 0x77, 0x45, 0x5d, 0x78, 0x0a, 0xab, 0x83, 0x62, 0x95, 0x83, 0xca, 0x7b, 0xc9, 0x7d, + 0xdf, 0xac, 0x6b, 0x8e, 0x43, 0x74, 0x07, 0x96, 0xce, 0xb2, 0x07, 0x34, 0x12, 0xff, 0x91, 0x14, + 0x2b, 0x19, 0xd3, 0xac, 0x6a, 0x92, 0x4b, 0xce, 0x1d, 0x00, 0x72, 0xc9, 0xa5, 0x87, 0xb1, 0x5c, + 0x72, 0xc5, 0xc9, 0x71, 0x0c, 0x2b, 0x05, 0x6a, 0x44, 0x57, 0x78, 0x9f, 0x32, 0xb2, 0x37, 0x37, + 0xaa, 0x1b, 0xd9, 0x78, 0x83, 0x3c, 0xcf, 0xc8, 0xf1, 0xca, 0x88, 0xd0, 0xdc, 0xa8, 0x6e, 0x8c, + 0xc3, 0xdb, 0x4b, 0x8f, 0x16, 0x76, 0xd8, 0x9f, 0x59, 0xef, 0xd2, 0xdf, 0x27, 0x6d, 0xfa, 0x9f, + 0xd6, 0xf5, 0xbf, 0x02, 0x00, 0x00, 0xff, 0xff, 0xdb, 0x12, 0xfa, 0x38, 0xe8, 0x1a, 0x00, 0x00, } diff --git a/pkg/proto/group/group.proto b/pkg/proto/group/group.proto index 4859fc359..5b3deb002 100644 --- a/pkg/proto/group/group.proto +++ b/pkg/proto/group/group.proto @@ -3,8 +3,8 @@ option go_package = "./group;group"; package group; message CommonResp{ - int32 ErrorCode = 1; - string ErrorMsg = 2; + int32 ErrCode = 1; + string ErrMsg = 2; } message CreateGroupReq{ @@ -15,7 +15,8 @@ message CreateGroupReq{ string faceUrl = 5; string token = 6; string operationID = 7; - string CreatorUserID = 8; + string OpUserID = 8; + string Ext = 9; } @@ -23,9 +24,10 @@ message GroupAddMemberInfo{ string uid = 1; int32 setRole = 2; } + message CreateGroupResp{ - int32 ErrorCode = 1; - string ErrorMsg = 2; + int32 ErrCode = 1; + string ErrMsg = 2; string groupID = 3; } @@ -33,11 +35,12 @@ message GetGroupsInfoReq{ repeated string groupIDList = 1; string token = 2; string operationID = 3; - string UserID = 4; + string OpUserID = 4; } + message GetGroupsInfoResp{ - int32 ErrorCode = 1; - string ErrorMsg = 2; + int32 ErrCode = 1; + string ErrMsg = 2; repeated GroupInfo data = 3; } @@ -49,11 +52,12 @@ message SetGroupInfoReq{ string faceUrl = 5; string token = 6; string operationID = 7; + string OpUserID = 8; } message GetGroupApplicationListReq { - string UID = 1; + string OpUserID = 1; string OperationID = 2; } @@ -92,6 +96,7 @@ message TransferGroupOwnerReq { string OldOwner = 2; string NewOwner = 3; string OperationID = 4; + string OpUserID = 5; } message TransferGroupOwnerResp{ @@ -104,6 +109,7 @@ message JoinGroupReq{ string message = 2; string token = 3; string OperationID = 4; + string OpUserID = 5; } message GroupApplicationResponseReq{ @@ -135,6 +141,7 @@ message SetOwnerGroupNickNameReq{ string nickName = 2; string OperationID = 3; string token = 4; + string OpUserID = 5; } @@ -142,6 +149,7 @@ message QuitGroupReq{ string groupID = 1; string operationID = 2; string token = 3; + string OpUserID = 4; } @@ -171,11 +179,12 @@ message GetGroupMemberListReq { string operationID = 3; int32 filter = 4; int32 nextSeq = 5; + string OpUserID = 6; } message GetGroupMemberListResp { - int32 errorCode = 1; - string errorMsg = 2; + int32 ErrCode = 1; + string ErrMsg = 2; repeated GroupMemberFullInfo memberList = 3; int32 nextSeq = 4; } @@ -187,11 +196,12 @@ message GetGroupMembersInfoReq { repeated string memberList = 2; string token = 3; string operationID = 4; + string OpUserID = 5; } message GetGroupMembersInfoResp { - int32 errorCode = 1; - string errorMsg = 2; + int32 ErrCode = 1; + string ErrMsg = 2; repeated GroupMemberFullInfo memberList = 3; } @@ -202,6 +212,7 @@ message KickGroupMemberReq { string reason = 3; string token = 4; string operationID = 5; + string OpUserID = 6; } message Id2Result { @@ -210,8 +221,8 @@ message Id2Result { } message KickGroupMemberResp { - int32 errorCode = 1; - string errorMsg = 2; + int32 ErrCode = 1; + string ErrMsg = 2; repeated Id2Result id2result = 3; } @@ -219,6 +230,7 @@ message KickGroupMemberResp { message getJoinedGroupListReq { string token = 1; string operationID = 2; + string OpUserID = 3; } message GroupInfo { @@ -233,9 +245,9 @@ message GroupInfo { } message getJoinedGroupListResp{ - int32 errorCode = 1; - string errorMsg = 2; - repeated GroupInfo groupList = 3; + int32 ErrCode = 1; + string ErrorMsg = 2; + repeated GroupInfo GroupList = 3; } @@ -245,23 +257,25 @@ message inviteUserToGroupReq { string groupID = 3; string reason = 4; repeated string uidList = 5; + string OpUserID = 6; } message inviteUserToGroupResp { - int32 errorCode = 1; - string errorMsg = 2; - repeated Id2Result id2result = 3; // 0 ok, -1 error + int32 ErrCode = 1; + string ErrMsg = 2; + repeated Id2Result Id2Result = 3; // 0 ok, -1 error } message GetGroupAllMemberReq { string groupID = 1; string token = 2; string operationID = 3; + string OpUserID = 4; } message GetGroupAllMemberResp { - int32 errorCode = 1; - string errorMsg = 2; + int32 ErrCode = 1; + string ErrMsg = 2; repeated GroupMemberFullInfo memberList = 3; } From 3a01ee9973644feb5c2dbb68386b0bcfe99c810e Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Thu, 23 Dec 2021 10:04:21 +0800 Subject: [PATCH 227/814] config file modify --- pkg/common/config/config.go | 62 ++++++++++++++----------------------- 1 file changed, 23 insertions(+), 39 deletions(-) diff --git a/pkg/common/config/config.go b/pkg/common/config/config.go index 8e4f198e8..5182de6d6 100644 --- a/pkg/common/config/config.go +++ b/pkg/common/config/config.go @@ -165,51 +165,21 @@ type config struct { } Notification struct { GroupCreated struct { - Conversation struct { - ConversationChanged bool `yaml:"conversationChanged"` - UnreadCount bool `yaml:"unreadCount"` - } - OfflinePush struct { - PushSwitch bool `yaml:"switch"` - Title string `yaml:"title"` - Desc string `yaml:"desc"` - Ext string `yaml:"ext"` - } - DefaultTips struct { - Tips string `yaml:"tips"` - } + conversation Conversation `yaml:"conversation"` + offlinePush OfflinePush `yaml:"offlinePush"` + defaultTips DefaultTips `yaml:"defaultTips"` } GroupInfoChanged struct { - Conversation struct { - ConversationChanged bool `yaml:"conversationChanged"` - UnreadCount bool `yaml:"unreadCount"` - } - OfflinePush struct { - PushSwitch bool `yaml:"switch"` - Title string `yaml:"title"` - Desc string `yaml:"desc"` - Ext string `yaml:"ext"` - } - DefaultTips struct { - Tips string `yaml:"tips"` - } + conversation Conversation `yaml:"conversation"` + offlinePush OfflinePush `yaml:"offlinePush"` + defaultTips DefaultTips `yaml:"defaultTips"` } ApplyJoinGroup struct { - Conversation struct { - ConversationChanged bool `yaml:"conversationChanged"` - UnreadCount bool `yaml:"unreadCount"` - } - OfflinePush struct { - PushSwitch bool `yaml:"switch"` - Title string `yaml:"title"` - Desc string `yaml:"desc"` - Ext string `yaml:"ext"` - } - DefaultTips struct { - Tips string `yaml:"tips"` - } + conversation Conversation `yaml:"conversation"` + offlinePush OfflinePush `yaml:"offlinePush"` + defaultTips DefaultTips `yaml:"defaultTips"` } } Demo struct { @@ -230,6 +200,20 @@ type config struct { } } } +type Conversation struct { + ConversationChanged bool `yaml:"conversationChanged"` + UnreadCount bool `yaml:"unreadCount"` +} + +type OfflinePush struct { + PushSwitch bool `yaml:"switch"` + Title string `yaml:"title"` + Desc string `yaml:"desc"` + Ext string `yaml:"ext"` +} +type DefaultTips struct { + Tips string `yaml:"tips"` +} func init() { //path, _ := os.Getwd() From cfddc75ccbdbd5f42dae6359f1b71b57bd3e0e46 Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Thu, 23 Dec 2021 14:28:44 +0800 Subject: [PATCH 228/814] config file modify --- pkg/common/config/config.go | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/pkg/common/config/config.go b/pkg/common/config/config.go index 5182de6d6..b2679bf9b 100644 --- a/pkg/common/config/config.go +++ b/pkg/common/config/config.go @@ -165,21 +165,21 @@ type config struct { } Notification struct { GroupCreated struct { - conversation Conversation `yaml:"conversation"` - offlinePush OfflinePush `yaml:"offlinePush"` - defaultTips DefaultTips `yaml:"defaultTips"` + Conversation PConversation `yaml:"conversation"` + OfflinePush POfflinePush `yaml:"offlinePush"` + DefaultTips PDefaultTips `yaml:"defaultTips"` } GroupInfoChanged struct { - conversation Conversation `yaml:"conversation"` - offlinePush OfflinePush `yaml:"offlinePush"` - defaultTips DefaultTips `yaml:"defaultTips"` + Conversation PConversation `yaml:"conversation"` + OfflinePush POfflinePush `yaml:"offlinePush"` + DefaultTips PDefaultTips `yaml:"defaultTips"` } ApplyJoinGroup struct { - conversation Conversation `yaml:"conversation"` - offlinePush OfflinePush `yaml:"offlinePush"` - defaultTips DefaultTips `yaml:"defaultTips"` + Conversation PConversation `yaml:"conversation"` + OfflinePush POfflinePush `yaml:"offlinePush"` + DefaultTips PDefaultTips `yaml:"defaultTips"` } } Demo struct { @@ -200,18 +200,18 @@ type config struct { } } } -type Conversation struct { +type PConversation struct { ConversationChanged bool `yaml:"conversationChanged"` UnreadCount bool `yaml:"unreadCount"` } -type OfflinePush struct { +type POfflinePush struct { PushSwitch bool `yaml:"switch"` Title string `yaml:"title"` Desc string `yaml:"desc"` Ext string `yaml:"ext"` } -type DefaultTips struct { +type PDefaultTips struct { Tips string `yaml:"tips"` } From 333453df79c57d4b0da2baa4e057823dcd8b93ce Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Thu, 23 Dec 2021 17:19:57 +0800 Subject: [PATCH 229/814] send msg file modify --- internal/rpc/{chat => msg}/send_msg.go | 264 +++++++++++++++---------- 1 file changed, 156 insertions(+), 108 deletions(-) rename internal/rpc/{chat => msg}/send_msg.go (61%) diff --git a/internal/rpc/chat/send_msg.go b/internal/rpc/msg/send_msg.go similarity index 61% rename from internal/rpc/chat/send_msg.go rename to internal/rpc/msg/send_msg.go index 3403e84bc..de52d7022 100644 --- a/internal/rpc/chat/send_msg.go +++ b/internal/rpc/msg/send_msg.go @@ -1,8 +1,6 @@ -package chat +package msg import ( - "Open_IM/internal/api/group" - "Open_IM/internal/push/content_struct" "Open_IM/pkg/common/config" "Open_IM/pkg/common/constant" "Open_IM/pkg/common/db" @@ -13,9 +11,11 @@ import ( pbChat "Open_IM/pkg/proto/chat" pbGroup "Open_IM/pkg/proto/group" open_im_sdk "Open_IM/pkg/proto/sdk_ws" + sdk_ws "Open_IM/pkg/proto/sdk_ws" "Open_IM/pkg/utils" "context" "encoding/json" + "github.com/garyburd/redigo/redis" "math/rand" "net/http" "strconv" @@ -45,46 +45,72 @@ type MsgCallBackResp struct { } } -func (rpc *rpcChat) UserSendMsg(_ context.Context, pb *pbChat.UserSendMsgReq) (*pbChat.UserSendMsgResp, error) { - replay := pbChat.UserSendMsgResp{} +func (rpc *rpcChat) encapsulateMsgData(msg *sdk_ws.MsgData) { + msg.ServerMsgID = GetMsgID(msg.SendID) + if msg.SendTime == 0 { + msg.SendTime = utils.GetCurrentTimestampByNano() + } + switch msg.ContentType { + case constant.Text: + fallthrough + case constant.Picture: + fallthrough + case constant.Voice: + fallthrough + case constant.Video: + fallthrough + case constant.File: + fallthrough + case constant.AtText: + fallthrough + case constant.Merger: + fallthrough + case constant.Card: + fallthrough + case constant.Location: + fallthrough + case constant.Custom: + fallthrough + case constant.Quote: + utils.SetSwitchFromOptions(msg.Options, constant.IsConversationUpdate, true) + utils.SetSwitchFromOptions(msg.Options, constant.IsUnreadCount, true) + utils.SetSwitchFromOptions(msg.Options, constant.IsSenderSync, true) + case constant.Revoke: + utils.SetSwitchFromOptions(msg.Options, constant.IsUnreadCount, false) + utils.SetSwitchFromOptions(msg.Options, constant.IsOfflinePush, false) + case constant.HasReadReceipt: + utils.SetSwitchFromOptions(msg.Options, constant.IsConversationUpdate, false) + utils.SetSwitchFromOptions(msg.Options, constant.IsUnreadCount, false) + utils.SetSwitchFromOptions(msg.Options, constant.IsOfflinePush, false) + case constant.Typing: + utils.SetSwitchFromOptions(msg.Options, constant.IsHistory, false) + utils.SetSwitchFromOptions(msg.Options, constant.IsPersistent, false) + utils.SetSwitchFromOptions(msg.Options, constant.IsSenderSync, false) + utils.SetSwitchFromOptions(msg.Options, constant.IsConversationUpdate, false) + utils.SetSwitchFromOptions(msg.Options, constant.IsUnreadCount, false) + utils.SetSwitchFromOptions(msg.Options, constant.IsOfflinePush, false) + + } +} +func (rpc *rpcChat) SendMsg(_ context.Context, pb *pbChat.SendMsgReq) (*pbChat.SendMsgResp, error) { + replay := pbChat.SendMsgResp{} log.NewDebug(pb.OperationID, "rpc sendMsg come here", pb.String()) //if !utils.VerifyToken(pb.Token, pb.SendID) { // return returnMsg(&replay, pb, http.StatusUnauthorized, "token validate err,not authorized", "", 0) - serverMsgID := GetMsgID(pb.SendID) - pbData := pbChat.WSToMsgSvrChatMsg{} - pbData.MsgFrom = pb.MsgFrom - pbData.SessionType = pb.SessionType - pbData.ContentType = pb.ContentType - pbData.Content = pb.Content - pbData.RecvID = pb.RecvID - pbData.ForceList = pb.ForceList - pbData.OfflineInfo = pb.OffLineInfo - pbData.Options = pb.Options - pbData.PlatformID = pb.PlatformID - pbData.ClientMsgID = pb.ClientMsgID - pbData.SendID = pb.SendID - pbData.SenderNickName = pb.SenderNickName - pbData.SenderFaceURL = pb.SenderFaceURL - pbData.MsgID = serverMsgID - pbData.OperationID = pb.OperationID - pbData.Token = pb.Token - if pb.SendTime == 0 { - pbData.SendTime = utils.GetCurrentTimestampByNano() - } else { - pbData.SendTime = pb.SendTime - } - options := utils.JsonStringToMap(pbData.Options) - isHistory := utils.GetSwitchFromOptions(options, "history") + rpc.encapsulateMsgData(pb.MsgData) + msgToMQ := pbChat.MsgDataToMQ{Token: pb.Token, OperationID: pb.OperationID} + //options := utils.JsonStringToMap(pbData.Options) + isHistory := utils.GetSwitchFromOptions(pb.MsgData.Options, constant.IsHistory) mReq := MsgCallBackReq{ - SendID: pb.SendID, - RecvID: pb.RecvID, - Content: pb.Content, - SendTime: pbData.SendTime, - MsgFrom: pbData.MsgFrom, - ContentType: pb.ContentType, - SessionType: pb.SessionType, - PlatformID: pb.PlatformID, - MsgID: pb.ClientMsgID, + SendID: pb.MsgData.SendID, + RecvID: pb.MsgData.RecvID, + Content: string(pb.MsgData.Content), + SendTime: pb.MsgData.SendTime, + MsgFrom: pb.MsgData.MsgFrom, + ContentType: pb.MsgData.ContentType, + SessionType: pb.MsgData.SessionType, + PlatformID: pb.MsgData.SenderPlatformID, + MsgID: pb.MsgData.ClientMsgID, } if !isHistory { mReq.IsOnlineOnly = true @@ -102,97 +128,65 @@ func (rpc *rpcChat) UserSendMsg(_ context.Context, pb *pbChat.UserSendMsgReq) (* if mResp.ErrCode != 0 { return returnMsg(&replay, pb, mResp.ResponseErrCode, mResp.ErrMsg, "", 0) } else { - pbData.Content = mResp.ResponseResult.ModifiedMsg + pb.MsgData.Content = []byte(mResp.ResponseResult.ModifiedMsg) } } } - switch pbData.SessionType { + switch pb.MsgData.SessionType { case constant.SingleChatType: - isSend := modifyMessageByUserMessageReceiveOpt(pbData.RecvID, pbData.SendID, constant.SingleChatType, &pbData) + isSend := modifyMessageByUserMessageReceiveOpt(pb.MsgData.RecvID, pb.MsgData.SendID, constant.SingleChatType, pb) if isSend { - err1 := rpc.sendMsgToKafka(&pbData, pbData.RecvID) + msgToMQ.MsgData = pb.MsgData + err1 := rpc.sendMsgToKafka(&msgToMQ, msgToMQ.MsgData.RecvID) if err1 != nil { - log.NewError(pbData.OperationID, "kafka send msg err:RecvID", pbData.RecvID, pbData.String()) + log.NewError(msgToMQ.OperationID, "kafka send msg err:RecvID", msgToMQ.MsgData.RecvID, msgToMQ.String()) return returnMsg(&replay, pb, 201, "kafka send msg err", "", 0) } } - err2 := rpc.sendMsgToKafka(&pbData, pbData.SendID) + err2 := rpc.sendMsgToKafka(&msgToMQ, msgToMQ.MsgData.SendID) if err2 != nil { - log.NewError(pbData.OperationID, "kafka send msg err:SendID", pbData.SendID, pbData.String()) + log.NewError(msgToMQ.OperationID, "kafka send msg err:SendID", msgToMQ.MsgData.SendID, msgToMQ.String()) return returnMsg(&replay, pb, 201, "kafka send msg err", "", 0) } - return returnMsg(&replay, pb, 0, "", serverMsgID, pbData.SendTime) + return returnMsg(&replay, pb, 0, "", msgToMQ.MsgData.ServerMsgID, msgToMQ.MsgData.SendTime) case constant.GroupChatType: etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImGroupName) client := pbGroup.NewGroupClient(etcdConn) req := &pbGroup.GetGroupAllMemberReq{ - GroupID: pbData.RecvID, - Token: pbData.Token, - OperationID: pbData.OperationID, + GroupID: pb.MsgData.GroupID, + Token: pb.Token, + OperationID: pb.OperationID, } reply, err := client.GetGroupAllMember(context.Background(), req) if err != nil { - log.Error(pbData.Token, pbData.OperationID, "rpc send_msg getGroupInfo failed, err = %s", err.Error()) + log.Error(pb.Token, pb.OperationID, "rpc send_msg getGroupInfo failed, err = %s", err.Error()) return returnMsg(&replay, pb, 201, err.Error(), "", 0) } - if reply.ErrorCode != 0 { - log.Error(pbData.Token, pbData.OperationID, "rpc send_msg getGroupInfo failed, err = %s", reply.ErrorMsg) - return returnMsg(&replay, pb, reply.ErrorCode, reply.ErrorMsg, "", 0) + if reply.ErrCode != 0 { + log.Error(pb.Token, pb.OperationID, "rpc send_msg getGroupInfo failed, err = %s", reply.ErrMsg) + return returnMsg(&replay, pb, reply.ErrCode, reply.ErrMsg, "", 0) } - var addUidList []string - switch pbData.ContentType { - case constant.KickGroupMemberTip: - var notification content_struct.NotificationContent - var kickContent group.KickGroupMemberReq - err := utils.JsonStringToStruct(pbData.Content, ¬ification) - if err != nil { - log.ErrorByKv("json unmarshall err", pbData.OperationID, "err", err.Error()) - return returnMsg(&replay, pb, 200, err.Error(), "", 0) - } else { - err := utils.JsonStringToStruct(notification.Detail, &kickContent) - if err != nil { - log.ErrorByKv("json unmarshall err", pbData.OperationID, "err", err.Error()) - return returnMsg(&replay, pb, 200, err.Error(), "", 0) - } - for _, v := range kickContent.UidListInfo { - addUidList = append(addUidList, v.UserId) - } - } - case constant.QuitGroupTip: - addUidList = append(addUidList, pbData.SendID) - default: - } - groupID := pbData.RecvID - for i, v := range reply.MemberList { - pbData.RecvID = v.UserId + " " + groupID - isSend := modifyMessageByUserMessageReceiveOpt(v.UserId, groupID, constant.GroupChatType, &pbData) + groupID := pb.MsgData.GroupID + for _, v := range reply.MemberList { + pb.MsgData.RecvID = v.UserId + isSend := modifyMessageByUserMessageReceiveOpt(v.UserId, groupID, constant.GroupChatType, pb) if isSend { - err := rpc.sendMsgToKafka(&pbData, utils.IntToString(i)) + msgToMQ.MsgData = pb.MsgData + err := rpc.sendMsgToKafka(&msgToMQ, v.UserId) if err != nil { - log.NewError(pbData.OperationID, "kafka send msg err:UserId", v.UserId, pbData.String()) + log.NewError(msgToMQ.OperationID, "kafka send msg err:UserId", v.UserId, msgToMQ.String()) return returnMsg(&replay, pb, 201, "kafka send msg err", "", 0) } } } - for i, v := range addUidList { - pbData.RecvID = v + " " + groupID - isSend := modifyMessageByUserMessageReceiveOpt(v, groupID, constant.GroupChatType, &pbData) - if isSend { - err := rpc.sendMsgToKafka(&pbData, utils.IntToString(i+1)) - if err != nil { - log.NewError(pbData.OperationID, "kafka send msg err:UserId", v, pbData.String()) - return returnMsg(&replay, pb, 201, "kafka send msg err", "", 0) - } - } - } - return returnMsg(&replay, pb, 0, "", serverMsgID, pbData.SendTime) + return returnMsg(&replay, pb, 0, "", msgToMQ.MsgData.ServerMsgID, msgToMQ.MsgData.SendTime) default: return returnMsg(&replay, pb, 203, "unkonwn sessionType", "", 0) } } -func (rpc *rpcChat) sendMsgToKafka(m *pbChat.WSToMsgSvrChatMsg, key string) error { +func (rpc *rpcChat) sendMsgToKafka(m *pbChat.MsgDataToMQ, key string) error { pid, offset, err := rpc.producer.SendMessage(m, key) if err != nil { log.ErrorByKv("kafka send failed", m.OperationID, "send data", m.String(), "pid", pid, "offset", offset, "err", err.Error(), "key", key) @@ -204,21 +198,20 @@ func GetMsgID(sendID string) string { return t + "-" + sendID + "-" + strconv.Itoa(rand.Int()) } -func returnMsg(replay *pbChat.UserSendMsgResp, pb *pbChat.UserSendMsgReq, errCode int32, errMsg, serverMsgID string, sendTime int64) (*pbChat.UserSendMsgResp, error) { +func returnMsg(replay *pbChat.SendMsgResp, pb *pbChat.SendMsgReq, errCode int32, errMsg, serverMsgID string, sendTime int64) (*pbChat.SendMsgResp, error) { replay.ErrCode = errCode replay.ErrMsg = errMsg - replay.ReqIdentifier = pb.ReqIdentifier - replay.ClientMsgID = pb.ClientMsgID replay.ServerMsgID = serverMsgID + replay.ClientMsgID = pb.MsgData.ClientMsgID replay.SendTime = sendTime return replay, nil } -func modifyMessageByUserMessageReceiveOpt(userID, sourceID string, sessionType int, msg *pbChat.WSToMsgSvrChatMsg) bool { +func modifyMessageByUserMessageReceiveOpt(userID, sourceID string, sessionType int, pb *pbChat.SendMsgReq) bool { conversationID := utils.GetConversationIDBySessionType(sourceID, sessionType) opt, err := db.DB.GetSingleConversationMsgOpt(userID, conversationID) - if err != nil { - log.NewError(msg.OperationID, "GetSingleConversationMsgOpt from redis err", msg.String()) + if err != nil || err != redis.ErrNil { + log.NewError(pb.OperationID, "GetSingleConversationMsgOpt from redis err", pb.String()) return true } switch opt { @@ -227,12 +220,10 @@ func modifyMessageByUserMessageReceiveOpt(userID, sourceID string, sessionType i case constant.NotReceiveMessage: return false case constant.ReceiveNotNotifyMessage: - options := utils.JsonStringToMap(msg.Options) - if options == nil { - options = make(map[string]int32, 2) + if pb.MsgData.Options == nil { + pb.MsgData.Options = make(map[string]bool, 10) } - utils.SetSwitchFromOptions(options, "offlinePush", 0) - msg.Options = utils.MapIntToJsonString(options) + utils.SetSwitchFromOptions(pb.MsgData.Options, constant.IsOfflinePush, false) return true } @@ -250,7 +241,64 @@ type NotificationMsg struct { } func Notification(n *NotificationMsg, onlineUserOnly bool) { - + var req pbChat.SendMsgReq + var msg sdk_ws.MsgData + var offlineInfo sdk_ws.OfflinePushInfo + var title, desc, ext string + var pushSwitch bool + req.OperationID = n.OperationID + msg.SendID = n.SendID + msg.RecvID = n.RecvID + msg.Content = n.Content + msg.MsgFrom = n.MsgFrom + msg.ContentType = n.ContentType + msg.SessionType = n.SessionType + msg.CreateTime = utils.GetCurrentTimestampByNano() + msg.ClientMsgID = utils.GetMsgID(n.SendID) + switch n.SessionType { + case constant.GroupChatType: + msg.RecvID = "" + msg.GroupID = n.RecvID + } + if onlineUserOnly { + msg.Options = make(map[string]bool, 10) + utils.SetSwitchFromOptions(msg.Options, constant.IsOfflinePush, false) + utils.SetSwitchFromOptions(msg.Options, constant.IsHistory, false) + utils.SetSwitchFromOptions(msg.Options, constant.IsPersistent, false) + } + offlineInfo.IOSBadgeCount = config.Config.IOSPush.BadgeCount + offlineInfo.IOSPushSound = config.Config.IOSPush.PushSound + switch msg.ContentType { + case constant.CreateGroupTip: + pushSwitch = config.Config.Notification.GroupCreated.OfflinePush.PushSwitch + title = config.Config.Notification.GroupCreated.OfflinePush.Title + desc = config.Config.Notification.GroupCreated.OfflinePush.Desc + ext = config.Config.Notification.GroupCreated.OfflinePush.Ext + case constant.ChangeGroupInfoTip: + pushSwitch = config.Config.Notification.GroupInfoChanged.OfflinePush.PushSwitch + title = config.Config.Notification.GroupInfoChanged.OfflinePush.Title + desc = config.Config.Notification.GroupInfoChanged.OfflinePush.Desc + ext = config.Config.Notification.GroupInfoChanged.OfflinePush.Ext + case constant.ApplyJoinGroupTip: + pushSwitch = config.Config.Notification.ApplyJoinGroup.OfflinePush.PushSwitch + title = config.Config.Notification.ApplyJoinGroup.OfflinePush.Title + desc = config.Config.Notification.ApplyJoinGroup.OfflinePush.Desc + ext = config.Config.Notification.ApplyJoinGroup.OfflinePush.Ext + } + utils.SetSwitchFromOptions(msg.Options, constant.IsOfflinePush, pushSwitch) + offlineInfo.Title = title + offlineInfo.Desc = desc + offlineInfo.Ext = ext + msg.OfflinePushInfo = &offlineInfo + req.MsgData = &msg + etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImOfflineMessageName) + client := pbChat.NewChatClient(etcdConn) + reply, err := client.SendMsg(context.Background(), &req) + if err != nil { + log.NewError(req.OperationID, "SendMsg rpc failed, ", req.String(), err.Error()) + } else if reply.ErrCode != 0 { + log.NewError(req.OperationID, "SendMsg rpc failed, ", req.String()) + } } //message GroupCreatedTips{ From 2d56dacd0e42e91153c6685b883c2566b00627ad Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Thu, 23 Dec 2021 17:22:26 +0800 Subject: [PATCH 230/814] send msg file modify --- pkg/common/constant/constant.go | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/pkg/common/constant/constant.go b/pkg/common/constant/constant.go index 9cabc19b3..710200cd2 100644 --- a/pkg/common/constant/constant.go +++ b/pkg/common/constant/constant.go @@ -37,6 +37,7 @@ const ( Card = 108 Location = 109 Custom = 110 + Revoke = 111 HasReadReceipt = 112 Typing = 113 Quote = 114 @@ -48,8 +49,6 @@ const ( AddFriendTip = 202 RefuseFriendApplicationTip = 203 SetSelfInfoTip = 204 - Revoke = 205 - C2CMessageAsRead = 206 TransferGroupOwnerTip = 501 CreateGroupTip = 502 @@ -95,6 +94,14 @@ const ( ReceiveMessage = 0 NotReceiveMessage = 1 ReceiveNotNotifyMessage = 2 + + //OptionsKey + IsHistory = "history" + IsPersistent = "persistent" + IsOfflinePush = "offlinePush" + IsUnreadCount = "unreadCount" + IsConversationUpdate = "conversationUpdate" + IsSenderSync = "senderSync" ) var ContentType2PushContent = map[int64]string{ From 27fd4f444b5931a2c2c92cbec3a1bd6613a52333 Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Thu, 23 Dec 2021 17:22:49 +0800 Subject: [PATCH 231/814] notification --- internal/api/friend/add_blacklist.go | 49 - internal/api/friend/add_friend.go | 88 -- internal/api/friend/add_friend_response.go | 49 - internal/api/friend/delete_friend.go | 48 - internal/api/friend/friend.go | 604 +++++++++ internal/api/friend/get_blcaklist.go | 79 -- internal/api/friend/get_friend_apply_list.go | 129 -- internal/api/friend/get_friend_list.go | 83 -- internal/api/friend/get_friends_info.go | 70 - internal/api/friend/is_friend.go | 47 - internal/api/friend/remove_blacklist.go | 47 - internal/api/friend/set_friend_comment.go | 48 - internal/api/group/create_group.go | 61 - .../api/group/get_group_applicationList.go | 113 -- internal/api/group/get_groups_info.go | 67 - internal/api/group/group.go | 450 +++++- .../api/group/group_application_response.go | 89 -- internal/api/group/join_group.go | 47 - internal/api/group/quit_group.go | 46 - internal/api/group/set_group_info.go | 53 - internal/api/group/transfer_group_owner.go | 65 - internal/rpc/friend/add_blacklist.go | 47 - internal/rpc/friend/add_friend.go | 133 -- internal/rpc/friend/add_friend_response.go | 84 -- internal/rpc/friend/delete_friend.go | 27 - internal/rpc/friend/firend.go | 487 +++++++ internal/rpc/friend/get_blacklist.go | 55 - internal/rpc/friend/get_firends_info.go | 113 -- internal/rpc/friend/get_friend_apply_list.go | 95 -- internal/rpc/friend/get_friend_list.go | 57 - internal/rpc/friend/is_friend.go | 29 - internal/rpc/friend/is_in_blacklist.go | 20 - internal/rpc/friend/remove_blacklist.go | 27 - internal/rpc/friend/set_friend_comment.go | 27 - internal/rpc/group/group.go | 456 +++---- pkg/common/constant/constant.go | 2 +- .../im_mysql_model/friend_request_model.go | 3 + .../im_mysql_model/group_member_model.go | 13 + .../mysql_model/im_mysql_model/group_model.go | 16 +- .../im_mysql_model/model_struct.go | 2 +- pkg/common/token_verify/jwt_token.go | 38 + pkg/proto/friend/friend.pb.go | 973 +++++-------- pkg/proto/friend/friend.proto | 157 +-- pkg/proto/group/group.pb.go | 1202 +++++------------ pkg/proto/group/group.proto | 207 ++- pkg/proto/sdk_ws/ws.pb.go | 312 ++--- pkg/proto/sdk_ws/ws.proto | 4 +- 47 files changed, 2761 insertions(+), 4157 deletions(-) delete mode 100644 internal/api/friend/add_blacklist.go delete mode 100644 internal/api/friend/add_friend.go delete mode 100644 internal/api/friend/add_friend_response.go delete mode 100644 internal/api/friend/delete_friend.go create mode 100644 internal/api/friend/friend.go delete mode 100644 internal/api/friend/get_blcaklist.go delete mode 100644 internal/api/friend/get_friend_apply_list.go delete mode 100644 internal/api/friend/get_friend_list.go delete mode 100644 internal/api/friend/get_friends_info.go delete mode 100644 internal/api/friend/is_friend.go delete mode 100644 internal/api/friend/remove_blacklist.go delete mode 100644 internal/api/friend/set_friend_comment.go delete mode 100644 internal/api/group/create_group.go delete mode 100644 internal/api/group/get_group_applicationList.go delete mode 100644 internal/api/group/get_groups_info.go delete mode 100644 internal/api/group/group_application_response.go delete mode 100644 internal/api/group/join_group.go delete mode 100644 internal/api/group/quit_group.go delete mode 100644 internal/api/group/set_group_info.go delete mode 100644 internal/api/group/transfer_group_owner.go delete mode 100644 internal/rpc/friend/add_blacklist.go delete mode 100644 internal/rpc/friend/add_friend.go delete mode 100644 internal/rpc/friend/add_friend_response.go delete mode 100644 internal/rpc/friend/delete_friend.go create mode 100644 internal/rpc/friend/firend.go delete mode 100644 internal/rpc/friend/get_blacklist.go delete mode 100644 internal/rpc/friend/get_firends_info.go delete mode 100644 internal/rpc/friend/get_friend_apply_list.go delete mode 100644 internal/rpc/friend/get_friend_list.go delete mode 100644 internal/rpc/friend/is_friend.go delete mode 100644 internal/rpc/friend/is_in_blacklist.go delete mode 100644 internal/rpc/friend/remove_blacklist.go delete mode 100644 internal/rpc/friend/set_friend_comment.go diff --git a/internal/api/friend/add_blacklist.go b/internal/api/friend/add_blacklist.go deleted file mode 100644 index e5708c659..000000000 --- a/internal/api/friend/add_blacklist.go +++ /dev/null @@ -1,49 +0,0 @@ -package friend - -import ( - "Open_IM/pkg/common/config" - "Open_IM/pkg/common/log" - "Open_IM/pkg/grpc-etcdv3/getcdv3" - pbFriend "Open_IM/pkg/proto/friend" - "context" - "github.com/gin-gonic/gin" - "net/http" - "strings" -) - -/* -type paramsAddBlackList struct { - OperationID string `json:"operationID" binding:"required"` - UID string `json:"uid" binding:"required"` -}*/ - -func AddBlacklist(c *gin.Context) { - log.Info("", "", "api add blacklist init ....") - - etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImFriendName) - client := pbFriend.NewFriendClient(etcdConn) - //defer etcdConn.Close() - - params := paramsSearchFriend{} - if err := c.BindJSON(¶ms); err != nil { - c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": err.Error()}) - return - } - req := &pbFriend.AddBlacklistReq{ - Uid: params.UID, - OperationID: params.OperationID, - Token: c.Request.Header.Get("token"), - OwnerUid: params.OwnerUid, - } - log.Info(req.Token, req.OperationID, "api add blacklist is server:userID=%s", req.Uid) - RpcResp, err := client.AddBlacklist(context.Background(), req) - if err != nil { - log.Error(req.Token, req.OperationID, "err=%s,call add blacklist rpc server failed", err) - c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": "call add blacklist rpc server failed"}) - return - } - log.InfoByArgs("call add blacklist rpc server success,args=%s", RpcResp.String()) - resp := gin.H{"errCode": RpcResp.ErrorCode, "errMsg": RpcResp.ErrorMsg} - c.JSON(http.StatusOK, resp) - log.InfoByArgs("api add blacklist success return,get args=%s,return args=%s", req.String(), RpcResp.String()) -} diff --git a/internal/api/friend/add_friend.go b/internal/api/friend/add_friend.go deleted file mode 100644 index 8753a2350..000000000 --- a/internal/api/friend/add_friend.go +++ /dev/null @@ -1,88 +0,0 @@ -package friend - -import ( - "Open_IM/pkg/common/config" - "Open_IM/pkg/common/log" - "Open_IM/pkg/grpc-etcdv3/getcdv3" - pbFriend "Open_IM/pkg/proto/friend" - "context" - "github.com/gin-gonic/gin" - "net/http" - "strings" -) - -type paramsImportFriendReq struct { - OperationID string `json:"operationID" binding:"required"` - UIDList []string `json:"uidList" binding:"required"` - OwnerUid string `json:"ownerUid" binding:"required"` -} - -type paramsAddFriend struct { - OperationID string `json:"operationID" binding:"required"` - UID string `json:"uid" binding:"required"` - ReqMessage string `json:"reqMessage"` -} - -// -func ImportFriend(c *gin.Context) { - log.Info("", "", "ImportFriend init ....") - log.NewDebug("", "api importFriend start") - etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImFriendName) - client := pbFriend.NewFriendClient(etcdConn) - - params := paramsImportFriendReq{} - if err := c.BindJSON(¶ms); err != nil { - c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": err.Error()}) - return - } - req := &pbFriend.ImportFriendReq{ - UidList: params.UIDList, - OperationID: params.OperationID, - OwnerUid: params.OwnerUid, - Token: c.Request.Header.Get("token"), - } - log.NewDebug(req.OperationID, "args is ", req.String()) - RpcResp, err := client.ImportFriend(context.Background(), req) - if err != nil { - log.NewError(req.OperationID, "rpc importFriend failed", err.Error()) - c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": "cImportFriend failed " + err.Error()}) - return - } - failedUidList := make([]string, 0) - for _, v := range RpcResp.FailedUidList { - failedUidList = append(failedUidList, v) - } - log.NewDebug(req.OperationID, "rpc importFriend success", RpcResp.CommonResp.ErrorMsg, RpcResp.CommonResp.ErrorCode, RpcResp.FailedUidList) - c.JSON(http.StatusOK, gin.H{"errCode": RpcResp.CommonResp.ErrorCode, "errMsg": RpcResp.CommonResp.ErrorMsg, "failedUidList": failedUidList}) -} - -func AddFriend(c *gin.Context) { - log.Info("", "", "api add friend init ....") - - etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImFriendName) - client := pbFriend.NewFriendClient(etcdConn) - - params := paramsAddFriend{} - if err := c.BindJSON(¶ms); err != nil { - c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": err.Error()}) - return - } - req := &pbFriend.AddFriendReq{ - Uid: params.UID, - OperationID: params.OperationID, - ReqMessage: params.ReqMessage, - Token: c.Request.Header.Get("token"), - } - log.Info(req.Token, req.OperationID, "api add friend is server") - RpcResp, err := client.AddFriend(context.Background(), req) - if err != nil { - log.Error(req.Token, req.OperationID, "err=%s,call add friend rpc server failed", err) - c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": "call add friend rpc server failed"}) - return - } - log.InfoByArgs("call add friend rpc server success,args=%s", RpcResp.String()) - c.JSON(http.StatusOK, gin.H{ - "errCode": RpcResp.ErrorCode, - "errMsg": RpcResp.ErrorMsg, - }) -} diff --git a/internal/api/friend/add_friend_response.go b/internal/api/friend/add_friend_response.go deleted file mode 100644 index c29f2181e..000000000 --- a/internal/api/friend/add_friend_response.go +++ /dev/null @@ -1,49 +0,0 @@ -package friend - -import ( - "Open_IM/pkg/common/config" - "Open_IM/pkg/common/log" - "Open_IM/pkg/grpc-etcdv3/getcdv3" - pbFriend "Open_IM/pkg/proto/friend" - "context" - "fmt" - "github.com/gin-gonic/gin" - "net/http" - "strings" -) - -type paramsAddFriendResponse struct { - OperationID string `json:"operationID" binding:"required"` - UID string `json:"uid" binding:"required"` - Flag int32 `json:"flag" binding:"required"` -} - -func AddFriendResponse(c *gin.Context) { - log.Info("", "", fmt.Sprintf("api add friend response init ....")) - - etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImFriendName) - client := pbFriend.NewFriendClient(etcdConn) - //defer etcdConn.Close() - - params := paramsAddFriendResponse{} - if err := c.BindJSON(¶ms); err != nil { - c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": err.Error()}) - return - } - req := &pbFriend.AddFriendResponseReq{ - Uid: params.UID, - Flag: params.Flag, - OperationID: params.OperationID, - Token: c.Request.Header.Get("token"), - } - log.Info(req.Token, req.OperationID, "api add friend response is server:userID=%s", req.Uid) - RpcResp, err := client.AddFriendResponse(context.Background(), req) - if err != nil { - log.Error(req.Token, req.OperationID, "err=%s,call add_friend_response rpc server failed", err) - c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": "call add_friend_response rpc server failed"}) - return - } - log.InfoByArgs("call add friend response rpc server success,args=%s", RpcResp.String()) - c.JSON(http.StatusOK, gin.H{"errCode": RpcResp.ErrorCode, "errMsg": RpcResp.ErrorMsg}) - log.InfoByArgs("api add friend response success return,get args=%s,return args=%s", req.String(), RpcResp.String()) -} diff --git a/internal/api/friend/delete_friend.go b/internal/api/friend/delete_friend.go deleted file mode 100644 index daf81f340..000000000 --- a/internal/api/friend/delete_friend.go +++ /dev/null @@ -1,48 +0,0 @@ -package friend - -import ( - "Open_IM/pkg/common/config" - "Open_IM/pkg/common/log" - "Open_IM/pkg/grpc-etcdv3/getcdv3" - pbFriend "Open_IM/pkg/proto/friend" - "context" - "fmt" - "github.com/gin-gonic/gin" - "net/http" - "strings" -) - -type paramsDeleteFriend struct { - OperationID string `json:"operationID" binding:"required"` - UID string `json:"uid" binding:"required"` -} - -func DeleteFriend(c *gin.Context) { - log.Info("", "", fmt.Sprintf("api delete_friend init ....")) - - etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImFriendName) - client := pbFriend.NewFriendClient(etcdConn) - //defer etcdConn.Close() - - params := paramsDeleteFriend{} - if err := c.BindJSON(¶ms); err != nil { - c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": err.Error()}) - return - } - req := &pbFriend.DeleteFriendReq{ - Uid: params.UID, - OperationID: params.OperationID, - Token: c.Request.Header.Get("token"), - } - log.Info(req.Token, req.OperationID, "api delete_friend is server:%s", req.Uid) - RpcResp, err := client.DeleteFriend(context.Background(), req) - if err != nil { - log.Error(req.Token, req.OperationID, "err=%s,call delete_friend rpc server failed", err) - c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": "call delete_friend rpc server failed"}) - return - } - log.InfoByArgs("call delete_friend rpc server,args=%s", RpcResp.String()) - resp := gin.H{"errCode": RpcResp.ErrorCode, "errMsg": RpcResp.ErrorMsg} - c.JSON(http.StatusOK, resp) - log.InfoByArgs("api delete_friend success return,get args=%s,return args=%s", req.String(), RpcResp.String()) -} diff --git a/internal/api/friend/friend.go b/internal/api/friend/friend.go new file mode 100644 index 000000000..1bd0fa6fa --- /dev/null +++ b/internal/api/friend/friend.go @@ -0,0 +1,604 @@ +package friend + +import ( + "Open_IM/pkg/common/config" + "Open_IM/pkg/common/log" + "Open_IM/pkg/common/token_verify" + "Open_IM/pkg/grpc-etcdv3/getcdv3" + pbFriend "Open_IM/pkg/proto/friend" + "Open_IM/pkg/utils" + "context" + "github.com/gin-gonic/gin" + "net/http" + "strings" +) + +type paramsCommFriend struct { + OperationID string `json:"operationID" binding:"required"` + ToUserID string `json:"toUserID" binding:"required"` + FromUserID string `json:"fromUserID" binding:"required"` +} + +func AddBlacklist(c *gin.Context) { + params := paramsCommFriend{} + if err := c.BindJSON(¶ms); err != nil { + c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": err.Error()}) + log.NewError("0", "BindJSON failed ", err.Error()) + return + } + req := &pbFriend.AddBlacklistReq{} + utils.CopyStructFields(req.CommID, params) + var ok bool + ok, req.CommID.OpUserID = token_verify.GetUserIDFromToken(c.Request.Header.Get("token")) + if !ok { + log.NewError(req.CommID.OperationID, "GetUserIDFromToken false ", c.Request.Header.Get("token")) + c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": "GetUserIDFromToken failed"}) + return + } + log.NewInfo(params.OperationID, "AddBlacklist args ", req.String()) + + etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImFriendName) + client := pbFriend.NewFriendClient(etcdConn) + RpcResp, err := client.AddBlacklist(context.Background(), req) + if err != nil { + log.NewError(req.CommID.OperationID, "AddBlacklist failed ", err.Error()) + c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": "call add blacklist rpc server failed"}) + return + } + + resp := gin.H{"errCode": RpcResp.ErrCode, "errMsg": RpcResp.ErrMsg} + c.JSON(http.StatusOK, resp) + log.NewInfo(req.CommID.OperationID, "AddBlacklist api return ", resp) +} + +type paramsImportFriendReq struct { + FriendUserIDList []string `json:"friendUserIDList" binding:"required"` + OperationID string `json:"operationID" binding:"required"` + Token string `json:"token"` + FromUserID string `json:"fromUserID" binding:"required"` + OpUserID string `json:"opUserID" binding:"required"` +} + +func ImportFriend(c *gin.Context) { + params := paramsImportFriendReq{} + if err := c.BindJSON(¶ms); err != nil { + c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": err.Error()}) + log.NewError("0", "BindJSON failed ", err.Error()) + return + } + + req := &pbFriend.ImportFriendReq{} + utils.CopyStructFields(req, params) + var ok bool + ok, req.OpUserID = token_verify.GetUserIDFromToken(c.Request.Header.Get("token")) + if !ok { + log.NewError(req.OperationID, "GetUserIDFromToken false ", c.Request.Header.Get("token")) + c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": "GetUserIDFromToken failed"}) + return + } + + log.NewInfo(req.OperationID, "ImportFriend args ", req.String()) + etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImFriendName) + client := pbFriend.NewFriendClient(etcdConn) + RpcResp, err := client.ImportFriend(context.Background(), req) + if err != nil { + log.NewError(req.OperationID, "ImportFriend failed", err.Error(), req.String()) + c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": "cImportFriend failed " + err.Error()}) + return + } + + failedUidList := make([]string, 0) + for _, v := range RpcResp.FailedUidList { + failedUidList = append(failedUidList, v) + } + resp := gin.H{"errCode": RpcResp.CommonResp.ErrCode, "errMsg": RpcResp.CommonResp.ErrMsg, "failedUidList": failedUidList} + c.JSON(http.StatusOK, resp) + log.NewInfo(req.OperationID, "AddBlacklist api return ", resp) +} + +type paramsAddFriend struct { + paramsCommFriend + ReqMessage string `json:"reqMessage"` +} + +func AddFriend(c *gin.Context) { + params := paramsAddFriend{} + if err := c.BindJSON(¶ms); err != nil { + log.NewError("0", "BindJSON failed ", err.Error()) + c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": err.Error()}) + return + } + req := &pbFriend.AddFriendReq{} + utils.CopyStructFields(req.CommID, params) + var ok bool + ok, req.CommID.OpUserID = token_verify.GetUserIDFromToken(c.Request.Header.Get("token")) + if !ok { + log.NewError(req.CommID.OperationID, "GetUserIDFromToken false ", c.Request.Header.Get("token")) + c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": "GetUserIDFromToken failed"}) + return + } + req.ReqMessage = params.ReqMessage + log.NewInfo("AddFriend args ", req.String()) + + etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImFriendName) + client := pbFriend.NewFriendClient(etcdConn) + RpcResp, err := client.AddFriend(context.Background(), req) + if err != nil { + log.NewError(req.CommID.OperationID, "AddFriend failed ", err.Error(), req.String()) + c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": "call AddFriend rpc server failed"}) + return + } + + resp := gin.H{"errCode": RpcResp.ErrCode, "errMsg": RpcResp.ErrMsg} + c.JSON(http.StatusOK, resp) + log.NewInfo(req.CommID.OperationID, "AddFriend api return ", resp) +} + +type paramsAddFriendResponse struct { + paramsCommFriend + Flag int32 `json:"flag" binding:"required"` +} + +func AddFriendResponse(c *gin.Context) { + params := paramsAddFriendResponse{} + if err := c.BindJSON(¶ms); err != nil { + log.NewError("0", "BindJSON failed ", err.Error()) + c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": err.Error()}) + return + } + req := &pbFriend.AddFriendResponseReq{} + utils.CopyStructFields(req.CommID, params) + var ok bool + ok, req.CommID.OpUserID = token_verify.GetUserIDFromToken(c.Request.Header.Get("token")) + if !ok { + log.NewError(req.CommID.OperationID, "GetUserIDFromToken false ", c.Request.Header.Get("token")) + c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": "GetUserIDFromToken failed"}) + return + } + req.Flag = params.Flag + + log.NewInfo(req.CommID.OperationID, "AddFriendResponse args ", req.String()) + etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImFriendName) + client := pbFriend.NewFriendClient(etcdConn) + RpcResp, err := client.AddFriendResponse(context.Background(), req) + if err != nil { + log.NewError(req.CommID.OperationID, "AddFriendResponse failed ", err.Error(), req.String()) + c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": "call add_friend_response rpc server failed"}) + return + } + + resp := gin.H{"errCode": RpcResp.ErrCode, "errMsg": RpcResp.ErrMsg} + c.JSON(http.StatusOK, resp) + log.NewInfo(req.CommID.OperationID, "AddFriendResponse api return ", resp) +} + +type paramsDeleteFriend struct { + paramsCommFriend +} + +func DeleteFriend(c *gin.Context) { + params := paramsDeleteFriend{} + if err := c.BindJSON(¶ms); err != nil { + log.NewError("0", "BindJSON failed ", err.Error()) + c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": err.Error()}) + return + } + req := &pbFriend.DeleteFriendReq{} + utils.CopyStructFields(req.CommID, params) + var ok bool + ok, req.CommID.OpUserID = token_verify.GetUserIDFromToken(c.Request.Header.Get("token")) + if !ok { + log.NewError(req.CommID.OperationID, "GetUserIDFromToken false ", c.Request.Header.Get("token")) + c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": "GetUserIDFromToken failed"}) + return + } + log.NewInfo(req.CommID.OperationID, "DeleteFriend args ", req.String()) + + etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImFriendName) + client := pbFriend.NewFriendClient(etcdConn) + RpcResp, err := client.DeleteFriend(context.Background(), req) + if err != nil { + log.NewError(req.CommID.OperationID, "DeleteFriend failed ", err, req.String()) + c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": "call delete_friend rpc server failed"}) + return + } + + resp := gin.H{"errCode": RpcResp.ErrCode, "errMsg": RpcResp.ErrMsg} + c.JSON(http.StatusOK, resp) + log.NewInfo(req.CommID.OperationID, "AddFriendResponse api return ", resp) +} + +type paramsGetBlackList struct { + paramsCommFriend +} + +type PublicUserInfo struct { + UserID string `json:"userID"` + Nickname string `json:"nickname"` + FaceUrl string `json:"faceUrl"` + Gender int32 `json:"gender"` +} + +type blackUserInfo struct { + PublicUserInfo +} + +func GetBlacklist(c *gin.Context) { + params := paramsGetBlackList{} + if err := c.BindJSON(¶ms); err != nil { + log.NewError("0", "BindJSON failed ", err.Error()) + c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": err.Error()}) + return + } + req := &pbFriend.GetBlacklistReq{} + utils.CopyStructFields(req.CommID, params) + var ok bool + ok, req.CommID.OpUserID = token_verify.GetUserIDFromToken(c.Request.Header.Get("token")) + if !ok { + log.NewError(req.CommID.OperationID, "GetUserIDFromToken false ", c.Request.Header.Get("token")) + c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": "GetUserIDFromToken failed"}) + return + } + + log.NewInfo(req.CommID.OperationID, "GetBlacklist args ", req.String()) + etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImFriendName) + client := pbFriend.NewFriendClient(etcdConn) + RpcResp, err := client.GetBlacklist(context.Background(), req) + if err != nil { + log.NewError(req.CommID.OperationID, "GetBlacklist failed ", err.Error(), req.String()) + c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": "call get blacklist rpc server failed"}) + return + } + + if RpcResp.ErrCode == 0 { + userBlackList := make([]blackUserInfo, 0) + for _, friend := range RpcResp.Data { + var b blackUserInfo + utils.CopyStructFields(&b, friend) + + userBlackList = append(userBlackList, b) + } + resp := gin.H{ + "errCode": RpcResp.ErrCode, + "errMsg": RpcResp.ErrMsg, + "data": userBlackList, + } + c.JSON(http.StatusOK, resp) + log.NewInfo(req.CommID.OperationID, "GetBlacklist api return ", resp) + } else { + resp := gin.H{"errCode": RpcResp.ErrCode, "errMsg": RpcResp.ErrMsg} + c.JSON(http.StatusOK, resp) + log.NewError(req.CommID.OperationID, "GetBlacklist api return ", resp) + } +} + +type paramsSetFriendComment struct { + paramsCommFriend + remark string `json:"remark" binding:"required"` +} + +func SetFriendComment(c *gin.Context) { + params := paramsSetFriendComment{} + if err := c.BindJSON(¶ms); err != nil { + log.NewError("0", "BindJSON failed ", err.Error()) + c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": err.Error()}) + return + } + req := &pbFriend.SetFriendCommentReq{} + utils.CopyStructFields(req.CommID, params) + var ok bool + ok, req.CommID.OpUserID = token_verify.GetUserIDFromToken(c.Request.Header.Get("token")) + if !ok { + log.NewError(req.CommID.OperationID, "GetUserIDFromToken false ", c.Request.Header.Get("token")) + c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": "GetUserIDFromToken failed"}) + return + } + req.Remark = params.remark + + log.NewInfo(req.CommID.OperationID, "SetFriendComment args ", req.String()) + etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImFriendName) + client := pbFriend.NewFriendClient(etcdConn) + RpcResp, err := client.SetFriendComment(context.Background(), req) + if err != nil { + log.NewError(req.CommID.OperationID, "SetFriendComment failed ", err.Error(), req.String()) + c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": "call set friend comment rpc server failed"}) + return + } + resp := gin.H{"errCode": RpcResp.ErrCode, "errMsg": RpcResp.ErrMsg} + c.JSON(http.StatusOK, resp) + log.NewInfo(req.CommID.OperationID, "SetFriendComment api return ", resp) +} + +type paramsRemoveBlackList struct { + paramsCommFriend +} + +func RemoveBlacklist(c *gin.Context) { + params := paramsRemoveBlackList{} + if err := c.BindJSON(¶ms); err != nil { + log.NewError("0", "BindJSON failed ", err.Error()) + c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": err.Error()}) + return + } + req := &pbFriend.RemoveBlacklistReq{} + utils.CopyStructFields(req.CommID, params) + var ok bool + ok, req.CommID.OpUserID = token_verify.GetUserIDFromToken(c.Request.Header.Get("token")) + if !ok { + log.NewError(req.CommID.OperationID, "GetUserIDFromToken false ", c.Request.Header.Get("token")) + c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": "GetUserIDFromToken failed"}) + return + } + + log.NewInfo(req.CommID.OperationID, "RemoveBlacklist args ", req.String()) + etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImFriendName) + client := pbFriend.NewFriendClient(etcdConn) + RpcResp, err := client.RemoveBlacklist(context.Background(), req) + if err != nil { + log.NewError(req.CommID.OperationID, "RemoveBlacklist failed ", err.Error(), req.String()) + c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": "call remove blacklist rpc server failed"}) + return + } + + resp := gin.H{"errCode": RpcResp.ErrCode, "errMsg": RpcResp.ErrMsg} + c.JSON(http.StatusOK, resp) + log.NewInfo(req.CommID.OperationID, "SetFriendComment api return ", resp) +} + +type paramsIsFriend struct { + paramsCommFriend +} + +func IsFriend(c *gin.Context) { + params := paramsIsFriend{} + if err := c.BindJSON(¶ms); err != nil { + log.NewError("0", "BindJSON failed ", err.Error()) + c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": err.Error()}) + return + } + req := &pbFriend.IsFriendReq{} + utils.CopyStructFields(req.CommID, params) + var ok bool + ok, req.CommID.OpUserID = token_verify.GetUserIDFromToken(c.Request.Header.Get("token")) + if !ok { + log.NewError(req.CommID.OperationID, "GetUserIDFromToken false ", c.Request.Header.Get("token")) + c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": "GetUserIDFromToken failed"}) + return + } + log.NewInfo(req.CommID.OperationID, "IsFriend args ", req.String()) + + etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImFriendName) + client := pbFriend.NewFriendClient(etcdConn) + RpcResp, err := client.IsFriend(context.Background(), req) + if err != nil { + log.NewError(req.CommID.OperationID, "IsFriend failed ", err.Error(), req.String()) + c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": "call add friend rpc server failed"}) + return + } + resp := gin.H{"errCode": RpcResp.ErrCode, "errMsg": RpcResp.ErrMsg, "isFriend": RpcResp.ShipType} + c.JSON(http.StatusOK, resp) + log.NewInfo(req.CommID.OperationID, "IsFriend api return ", resp) +} + +type paramsSearchFriend struct { + paramsCommFriend +} + +func GetFriendsInfo(c *gin.Context) { + params := paramsSearchFriend{} + if err := c.BindJSON(¶ms); err != nil { + log.NewError("0", "BindJSON failed ", err.Error()) + c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": err.Error()}) + return + } + req := &pbFriend.GetFriendsInfoReq{} + utils.CopyStructFields(req.CommID, params) + var ok bool + ok, req.CommID.OpUserID = token_verify.GetUserIDFromToken(c.Request.Header.Get("token")) + if !ok { + log.NewError(req.CommID.OperationID, "GetUserIDFromToken false ", c.Request.Header.Get("token")) + c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": "GetUserIDFromToken failed"}) + return + } + log.NewInfo(req.CommID.OperationID, "GetFriendsInfo args ", req.String()) + + etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImFriendName) + client := pbFriend.NewFriendClient(etcdConn) + RpcResp, err := client.GetFriendsInfo(context.Background(), req) + if err != nil { + log.NewError(req.CommID.OperationID, "GetFriendsInfo failed ", err.Error(), req.String()) + c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": "call search friend rpc server failed"}) + return + } + + if RpcResp.ErrCode == 0 { + var fi friendInfo + utils.CopyStructFields(&fi, RpcResp.Data.FriendUser) + utils.CopyStructFields(&fi, RpcResp.Data) + + resp := gin.H{ + "errCode": RpcResp.ErrCode, + "errMsg": RpcResp.ErrMsg, + "data": fi, + } + log.NewInfo(req.CommID.OperationID, "IsFriend api return ", resp) + c.JSON(http.StatusOK, resp) + } else { + resp := gin.H{ + "errCode": RpcResp.ErrCode, + "errMsg": RpcResp.ErrMsg, + } + log.NewInfo(req.CommID.OperationID, "IsFriend api return ", resp) + c.JSON(http.StatusOK, resp) + } +} + +type paramsGetFriendList struct { + paramsCommFriend +} + +type friendInfo struct { + UserID string `json:"userID"` + Nickname string `json:"nickname"` + FaceUrl string `json:"faceUrl"` + Gender int32 `json:"gender"` + Mobile string `json:"mobile"` + Birth string `json:"birth"` + Email string `json:"email"` + Ext string `json:"ext"` + Remark string `json:"remark"` + IsBlack int32 `json:"isBlack"` +} + +func GetFriendList(c *gin.Context) { + params := paramsGetFriendList{} + if err := c.BindJSON(¶ms); err != nil { + log.NewError("0", "BindJSON failed ", err.Error()) + c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": err.Error()}) + return + } + req := &pbFriend.GetFriendListReq{} + utils.CopyStructFields(req.CommID, params) + var ok bool + ok, req.CommID.OpUserID = token_verify.GetUserIDFromToken(c.Request.Header.Get("token")) + if !ok { + log.NewError(req.CommID.OperationID, "GetUserIDFromToken false ", c.Request.Header.Get("token")) + c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": "GetUserIDFromToken failed"}) + return + } + log.NewInfo(req.CommID.OperationID, "GetFriendList args ", req.String()) + + etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImFriendName) + client := pbFriend.NewFriendClient(etcdConn) + RpcResp, err := client.GetFriendList(context.Background(), req) + if err != nil { + log.NewError(req.CommID.OperationID, "GetFriendList failed ", err.Error(), req.String()) + c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": "call get friend list rpc server failed"}) + return + } + + if RpcResp.ErrCode == 0 { + friendsInfo := make([]friendInfo, 0) + for _, friend := range RpcResp.Data { + + var fi friendInfo + utils.CopyStructFields(&fi, friend.FriendUser) + utils.CopyStructFields(&fi, RpcResp.Data) + friendsInfo = append(friendsInfo, fi) + } + resp := gin.H{ + "errCode": RpcResp.ErrCode, + "errMsg": RpcResp.ErrMsg, + "data": friendsInfo, + } + c.JSON(http.StatusOK, resp) + log.NewInfo(req.CommID.OperationID, "IsFriend api return ", resp) + } else { + resp := gin.H{"errCode": RpcResp.ErrCode, "errMsg": RpcResp.ErrMsg} + c.JSON(http.StatusOK, resp) + log.NewInfo(req.CommID.OperationID, "IsFriend api return ", resp) + } + +} + +type paramsGetApplyList struct { + paramsCommFriend +} + +type FriendApplicationUserInfo struct { + PublicUserInfo + ApplyTime int64 `json:"applyTime"` + ReqMessage string `json:"reqMessage` + Flag int32 `json:"flag"` +} + +func GetFriendApplyList(c *gin.Context) { + params := paramsGetApplyList{} + if err := c.BindJSON(¶ms); err != nil { + log.NewError("0", "BindJSON failed ", err.Error()) + c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": err.Error()}) + return + } + req := &pbFriend.GetFriendApplyReq{} + utils.CopyStructFields(req.CommID, params) + var ok bool + ok, req.CommID.OpUserID = token_verify.GetUserIDFromToken(c.Request.Header.Get("token")) + if !ok { + log.NewError(req.CommID.OperationID, "GetUserIDFromToken false ", c.Request.Header.Get("token")) + c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": "GetUserIDFromToken failed"}) + return + } + log.NewInfo(req.CommID.OperationID, "GetFriendApplyList args ", req.String()) + + etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImFriendName) + client := pbFriend.NewFriendClient(etcdConn) + + RpcResp, err := client.GetFriendApplyList(context.Background(), req) + if err != nil { + log.NewError(req.CommID.OperationID, "GetFriendApplyList failed ", err.Error(), req.String()) + c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": "call get friend apply list rpc server failed"}) + return + } + + if RpcResp.ErrCode == 0 { + userInfoList := make([]FriendApplicationUserInfo, 0) + for _, applyUserinfo := range RpcResp.Data { + var un FriendApplicationUserInfo + utils.CopyStructFields(&un, applyUserinfo.UserInfo) + utils.CopyStructFields(&un, applyUserinfo) + userInfoList = append(userInfoList, un) + } + resp := gin.H{"errCode": RpcResp.ErrCode, "errMsg": RpcResp.ErrMsg, "data": userInfoList} + c.JSON(http.StatusOK, resp) + log.NewInfo(req.CommID.OperationID, "IsFriend api return ", resp) + } else { + resp := gin.H{"errCode": RpcResp.ErrCode, "errMsg": RpcResp.ErrMsg} + c.JSON(http.StatusOK, resp) + log.NewInfo(req.CommID.OperationID, "IsFriend api return ", resp) + } +} + +func GetSelfApplyList(c *gin.Context) { + params := paramsGetApplyList{} + if err := c.BindJSON(¶ms); err != nil { + log.NewError("0", "BindJSON failed ", err.Error()) + c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": err.Error()}) + return + } + req := &pbFriend.GetFriendApplyReq{} + utils.CopyStructFields(req.CommID, params) + var ok bool + ok, req.CommID.OpUserID = token_verify.GetUserIDFromToken(c.Request.Header.Get("token")) + if !ok { + log.NewError(req.CommID.OperationID, "GetUserIDFromToken false ", c.Request.Header.Get("token")) + c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": "GetUserIDFromToken failed"}) + return + } + log.NewInfo(req.CommID.OperationID, "GetSelfApplyList args ", req.String()) + + etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImFriendName) + client := pbFriend.NewFriendClient(etcdConn) + RpcResp, err := client.GetSelfApplyList(context.Background(), req) + if err != nil { + log.NewError(req.CommID.OperationID, "GetSelfApplyList failed ", err.Error(), req.String()) + c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": "call get self apply list rpc server failed"}) + return + } + + if RpcResp.ErrCode == 0 { + userInfoList := make([]FriendApplicationUserInfo, 0) + for _, applyUserinfo := range RpcResp.Data { + var un FriendApplicationUserInfo + utils.CopyStructFields(&un, applyUserinfo.UserInfo) + utils.CopyStructFields(&un, applyUserinfo) + userInfoList = append(userInfoList, un) + } + resp := gin.H{"errCode": RpcResp.ErrCode, "errMsg": RpcResp.ErrMsg, "data": userInfoList} + c.JSON(http.StatusOK, resp) + log.NewInfo(req.CommID.OperationID, "IsFriend api return ", resp) + } else { + resp := gin.H{"errCode": RpcResp.ErrCode, "errMsg": RpcResp.ErrMsg} + c.JSON(http.StatusOK, resp) + log.NewInfo(req.CommID.OperationID, "IsFriend api return ", resp) + } +} diff --git a/internal/api/friend/get_blcaklist.go b/internal/api/friend/get_blcaklist.go deleted file mode 100644 index 3b36dc107..000000000 --- a/internal/api/friend/get_blcaklist.go +++ /dev/null @@ -1,79 +0,0 @@ -package friend - -import ( - "Open_IM/pkg/common/config" - "Open_IM/pkg/common/log" - "Open_IM/pkg/grpc-etcdv3/getcdv3" - pbFriend "Open_IM/pkg/proto/friend" - "context" - "fmt" - "github.com/gin-gonic/gin" - "net/http" - "strings" -) - -type paramsGetBlackList struct { - OperationID string `json:"operationID" binding:"required"` -} - -type blackListUserInfo struct { - UID string `json:"uid"` - Name string `json:"name"` - Icon string `json:"icon"` - Gender int32 `json:"gender"` - Mobile string `json:"mobile"` - Birth string `json:"birth"` - Email string `json:"email"` - Ex string `json:"ex"` -} - -func GetBlacklist(c *gin.Context) { - log.Info("", "", "api get blacklist init ....") - - etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImFriendName) - client := pbFriend.NewFriendClient(etcdConn) - //defer etcdConn.Close() - - params := paramsGetBlackList{} - if err := c.BindJSON(¶ms); err != nil { - c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": err.Error()}) - return - } - req := &pbFriend.GetBlacklistReq{ - OperationID: params.OperationID, - Token: c.Request.Header.Get("token"), - } - log.Info(req.Token, req.OperationID, fmt.Sprintf("api get blacklist is server")) - RpcResp, err := client.GetBlacklist(context.Background(), req) - if err != nil { - log.Error(req.Token, req.OperationID, "err=%s,call get_friend_list rpc server failed", err) - c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": "call get blacklist rpc server failed"}) - return - } - log.InfoByArgs("call get blacklist rpc server success,args=%s", RpcResp.String()) - if RpcResp.ErrorCode == 0 { - userBlackList := make([]blackListUserInfo, 0) - for _, friend := range RpcResp.Data { - var fi blackListUserInfo - fi.UID = friend.Uid - fi.Name = friend.Name - fi.Icon = friend.Icon - fi.Gender = friend.Gender - fi.Mobile = friend.Mobile - fi.Birth = friend.Birth - fi.Email = friend.Email - fi.Ex = friend.Ex - userBlackList = append(userBlackList, fi) - } - resp := gin.H{ - "errCode": RpcResp.ErrorCode, - "errMsg": RpcResp.ErrorMsg, - "data": userBlackList, - } - c.JSON(http.StatusOK, resp) - } else { - resp := gin.H{"errCode": RpcResp.ErrorCode, "errMsg": RpcResp.ErrorMsg} - c.JSON(http.StatusOK, resp) - } - log.InfoByArgs("api get black list success return,get args=%s,return=%s", req.String(), RpcResp.String()) -} diff --git a/internal/api/friend/get_friend_apply_list.go b/internal/api/friend/get_friend_apply_list.go deleted file mode 100644 index 1ace2bcac..000000000 --- a/internal/api/friend/get_friend_apply_list.go +++ /dev/null @@ -1,129 +0,0 @@ -package friend - -import ( - "Open_IM/pkg/common/config" - "Open_IM/pkg/common/log" - "Open_IM/pkg/grpc-etcdv3/getcdv3" - pbFriend "Open_IM/pkg/proto/friend" - "context" - "github.com/gin-gonic/gin" - "net/http" - "strings" -) - -type paramsGetApplyList struct { - OperationID string `json:"operationID" binding:"required"` -} -type UserInfo struct { - UID string `json:"uid"` - Name string `json:"name"` - Icon string `json:"icon"` - Gender int32 `json:"gender"` - Mobile string `json:"mobile"` - Birth string `json:"birth"` - Email string `json:"email"` - Ex string `json:"ex"` - ReqMessage string `json:"reqMessage"` - ApplyTime string `json:"applyTime"` - Flag int32 `json:"flag"` -} - -func GetFriendApplyList(c *gin.Context) { - log.Info("", "", "api get_friend_apply_list init ....") - - etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImFriendName) - client := pbFriend.NewFriendClient(etcdConn) - //defer etcdConn.Close() - - params := paramsGetApplyList{} - if err := c.BindJSON(¶ms); err != nil { - c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": err.Error()}) - return - } - req := &pbFriend.GetFriendApplyReq{ - OperationID: params.OperationID, - Token: c.Request.Header.Get("token"), - } - log.Info(req.Token, req.OperationID, "api get friend apply list is server") - RpcResp, err := client.GetFriendApplyList(context.Background(), req) - if err != nil { - log.Error(req.Token, req.OperationID, "err=%s,call get friend apply list rpc server failed", err) - c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": "call get friend apply list rpc server failed"}) - return - } - log.InfoByArgs("call get friend apply list rpc server success,args=%s", RpcResp.String()) - if RpcResp.ErrorCode == 0 { - userInfoList := make([]UserInfo, 0) - for _, applyUserinfo := range RpcResp.Data { - var un UserInfo - un.UID = applyUserinfo.Uid - un.Name = applyUserinfo.Name - un.Icon = applyUserinfo.Icon - un.Gender = applyUserinfo.Gender - un.Mobile = applyUserinfo.Mobile - un.Birth = applyUserinfo.Birth - un.Email = applyUserinfo.Email - un.Ex = applyUserinfo.Ex - un.Flag = applyUserinfo.Flag - un.ApplyTime = applyUserinfo.ApplyTime - un.ReqMessage = applyUserinfo.ReqMessage - userInfoList = append(userInfoList, un) - } - resp := gin.H{"errCode": RpcResp.ErrorCode, "errMsg": RpcResp.ErrorMsg, "data": userInfoList} - c.JSON(http.StatusOK, resp) - } else { - resp := gin.H{"errCode": RpcResp.ErrorCode, "errMsg": RpcResp.ErrorMsg} - c.JSON(http.StatusOK, resp) - } - log.InfoByArgs("api get friend apply list success return,get args=%s,return args=%s", req.String(), RpcResp.String()) -} - -func GetSelfApplyList(c *gin.Context) { - log.Info("", "", "api get self friend apply list init ....") - - etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImFriendName) - client := pbFriend.NewFriendClient(etcdConn) - //defer etcdConn.Close() - - params := paramsGetApplyList{} - if err := c.BindJSON(¶ms); err != nil { - c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": err.Error()}) - return - } - req := &pbFriend.GetFriendApplyReq{ - OperationID: params.OperationID, - Token: c.Request.Header.Get("token"), - } - log.Info(req.Token, req.OperationID, "api get self apply list is server") - RpcResp, err := client.GetSelfApplyList(context.Background(), req) - if err != nil { - log.Error(req.Token, req.OperationID, "err=%s,call get self apply list rpc server failed", err) - c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": "call get self apply list rpc server failed"}) - return - } - log.InfoByArgs("call get self apply list rpc server success,args=%s", RpcResp.String()) - if RpcResp.ErrorCode == 0 { - userInfoList := make([]UserInfo, 0) - for _, selfApplyOtherUserinfo := range RpcResp.Data { - var un UserInfo - un.UID = selfApplyOtherUserinfo.Uid - un.Name = selfApplyOtherUserinfo.Name - un.Icon = selfApplyOtherUserinfo.Icon - un.Gender = selfApplyOtherUserinfo.Gender - un.Mobile = selfApplyOtherUserinfo.Mobile - un.Birth = selfApplyOtherUserinfo.Birth - un.Email = selfApplyOtherUserinfo.Email - un.Ex = selfApplyOtherUserinfo.Ex - un.Flag = selfApplyOtherUserinfo.Flag - un.ApplyTime = selfApplyOtherUserinfo.ApplyTime - un.ReqMessage = selfApplyOtherUserinfo.ReqMessage - userInfoList = append(userInfoList, un) - } - resp := gin.H{"errCode": RpcResp.ErrorCode, "errMsg": RpcResp.ErrorMsg, "data": userInfoList} - c.JSON(http.StatusOK, resp) - } else { - resp := gin.H{"errCode": RpcResp.ErrorCode, "errMsg": RpcResp.ErrorMsg} - c.JSON(http.StatusOK, resp) - } - log.InfoByArgs("api get self apply list success return,get args=%s,return args=%s", req.String(), RpcResp.String()) -} diff --git a/internal/api/friend/get_friend_list.go b/internal/api/friend/get_friend_list.go deleted file mode 100644 index 3c87e1ced..000000000 --- a/internal/api/friend/get_friend_list.go +++ /dev/null @@ -1,83 +0,0 @@ -package friend - -import ( - "Open_IM/pkg/common/config" - "Open_IM/pkg/common/log" - "Open_IM/pkg/grpc-etcdv3/getcdv3" - pbFriend "Open_IM/pkg/proto/friend" - "context" - "fmt" - "github.com/gin-gonic/gin" - "net/http" - "strings" -) - -type paramsGetFriendLIst struct { - OperationID string `json:"operationID" binding:"required"` -} - -type friendInfo struct { - UID string `json:"uid"` - Name string `json:"name"` - Icon string `json:"icon"` - Gender int32 `json:"gender"` - Mobile string `json:"mobile"` - Birth string `json:"birth"` - Email string `json:"email"` - Ex string `json:"ex"` - Comment string `json:"comment"` - IsInBlackList int32 `json:"isInBlackList"` -} - -func GetFriendList(c *gin.Context) { - log.Info("", "", fmt.Sprintf("api get_friendlist init ....")) - - etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImFriendName) - client := pbFriend.NewFriendClient(etcdConn) - //defer etcdConn.Close() - - params := paramsGetFriendLIst{} - if err := c.BindJSON(¶ms); err != nil { - c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": err.Error()}) - return - } - req := &pbFriend.GetFriendListReq{ - OperationID: params.OperationID, - Token: c.Request.Header.Get("token"), - } - log.Info(req.Token, req.OperationID, "api get friend list is server") - RpcResp, err := client.GetFriendList(context.Background(), req) - if err != nil { - log.Error(req.Token, req.OperationID, "err=%s,call get friend list rpc server failed", err) - c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": "call get friend list rpc server failed"}) - return - } - log.InfoByArgs("call get friend list rpc server success,args=%s", RpcResp.String()) - if RpcResp.ErrorCode == 0 { - friendsInfo := make([]friendInfo, 0) - for _, friend := range RpcResp.Data { - var fi friendInfo - fi.UID = friend.Uid - fi.Name = friend.Name - fi.Icon = friend.Icon - fi.Gender = friend.Gender - fi.Mobile = friend.Mobile - fi.Birth = friend.Birth - fi.Email = friend.Email - fi.Ex = friend.Ex - fi.Comment = friend.Comment - fi.IsInBlackList = friend.IsInBlackList - friendsInfo = append(friendsInfo, fi) - } - resp := gin.H{ - "errCode": RpcResp.ErrorCode, - "errMsg": RpcResp.ErrorMsg, - "data": friendsInfo, - } - c.JSON(http.StatusOK, resp) - } else { - resp := gin.H{"errCode": RpcResp.ErrorCode, "errMsg": RpcResp.ErrorMsg} - c.JSON(http.StatusOK, resp) - } - log.InfoByArgs("api get friend list success return,get args=%s,return=%s", req.String(), RpcResp.String()) -} diff --git a/internal/api/friend/get_friends_info.go b/internal/api/friend/get_friends_info.go deleted file mode 100644 index 636d4db7c..000000000 --- a/internal/api/friend/get_friends_info.go +++ /dev/null @@ -1,70 +0,0 @@ -package friend - -import ( - "Open_IM/pkg/common/config" - "Open_IM/pkg/common/log" - "Open_IM/pkg/grpc-etcdv3/getcdv3" - pbFriend "Open_IM/pkg/proto/friend" - "context" - "fmt" - "github.com/gin-gonic/gin" - "net/http" - "strings" -) - -type paramsSearchFriend struct { - OperationID string `json:"operationID" binding:"required"` - UID string `json:"uid" binding:"required"` - OwnerUid string `json:"ownerUid"` -} - -func GetFriendsInfo(c *gin.Context) { - log.Info("", "", fmt.Sprintf("api search friend init ....")) - etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImFriendName) - client := pbFriend.NewFriendClient(etcdConn) - //defer etcdConn.Close() - - params := paramsSearchFriend{} - if err := c.BindJSON(¶ms); err != nil { - c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": err.Error()}) - return - } - req := &pbFriend.GetFriendsInfoReq{ - Uid: params.UID, - OperationID: params.OperationID, - Token: c.Request.Header.Get("token"), - } - log.Info(req.Token, req.OperationID, "api search_friend is server") - RpcResp, err := client.GetFriendsInfo(context.Background(), req) - if err != nil { - log.Error(req.Token, req.OperationID, "err=%s,call search friend rpc server failed", err) - c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": "call search friend rpc server failed"}) - return - } - log.InfoByArgs("call search friend rpc server success,args=%s", RpcResp.String()) - if RpcResp.ErrorCode == 0 { - resp := gin.H{ - "errCode": RpcResp.ErrorCode, - "errMsg": RpcResp.ErrorMsg, - "data": gin.H{ - "uid": RpcResp.Data.Uid, - "icon": RpcResp.Data.Icon, - "name": RpcResp.Data.Name, - "gender": RpcResp.Data.Gender, - "mobile": RpcResp.Data.Mobile, - "birth": RpcResp.Data.Birth, - "email": RpcResp.Data.Email, - "ex": RpcResp.Data.Ex, - "comment": RpcResp.Data.Comment, - }, - } - c.JSON(http.StatusOK, resp) - } else { - resp := gin.H{ - "errCode": RpcResp.ErrorCode, - "errMsg": RpcResp.ErrorMsg, - } - c.JSON(http.StatusOK, resp) - } - log.InfoByArgs("api search_friend success return,get args=%s,return=%s", req.String(), RpcResp.String()) -} diff --git a/internal/api/friend/is_friend.go b/internal/api/friend/is_friend.go deleted file mode 100644 index e5e51ed8d..000000000 --- a/internal/api/friend/is_friend.go +++ /dev/null @@ -1,47 +0,0 @@ -package friend - -import ( - "Open_IM/pkg/common/config" - "Open_IM/pkg/common/log" - "Open_IM/pkg/grpc-etcdv3/getcdv3" - pbFriend "Open_IM/pkg/proto/friend" - "context" - "github.com/gin-gonic/gin" - "net/http" - "strings" -) - -type paramsIsFriend struct { - OperationID string `json:"operationID" binding:"required"` - ReceiveUid string `json:"receive_uid"` -} - -func IsFriend(c *gin.Context) { - log.Info("", "", "api is friend init....") - - etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImFriendName) - client := pbFriend.NewFriendClient(etcdConn) - //defer etcdConn.Close() - - params := paramsIsFriend{} - if err := c.BindJSON(¶ms); err != nil { - c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": err.Error()}) - return - } - req := &pbFriend.IsFriendReq{ - OperationID: params.OperationID, - ReceiveUid: params.OperationID, - Token: c.Request.Header.Get("token"), - } - log.Info(req.Token, req.OperationID, "api is friend is server") - RpcResp, err := client.IsFriend(context.Background(), req) - if err != nil { - log.Error(req.Token, req.OperationID, "err=%s,call add friend rpc server failed", err) - c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": "call add friend rpc server failed"}) - return - } - log.InfoByArgs("call is friend rpc server success,args=%s", RpcResp.String()) - resp := gin.H{"errCode": RpcResp.ErrorCode, "errMsg": RpcResp.ErrorMsg, "isFriend": RpcResp.ShipType} - c.JSON(http.StatusOK, resp) - log.InfoByArgs("api is friend success return,get args=%s,return args=%s", req.String(), RpcResp.String()) -} diff --git a/internal/api/friend/remove_blacklist.go b/internal/api/friend/remove_blacklist.go deleted file mode 100644 index 6952da091..000000000 --- a/internal/api/friend/remove_blacklist.go +++ /dev/null @@ -1,47 +0,0 @@ -package friend - -import ( - "Open_IM/pkg/common/config" - "Open_IM/pkg/common/log" - "Open_IM/pkg/grpc-etcdv3/getcdv3" - pbFriend "Open_IM/pkg/proto/friend" - "context" - "github.com/gin-gonic/gin" - "net/http" - "strings" -) - -type paramsRemoveBlackList struct { - OperationID string `json:"operationID" binding:"required"` - UID string `json:"uid" binding:"required"` -} - -func RemoveBlacklist(c *gin.Context) { - log.Info("", "", "api remove_blacklist init ....") - - etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImFriendName) - client := pbFriend.NewFriendClient(etcdConn) - //defer etcdConn.Close() - - params := paramsRemoveBlackList{} - if err := c.BindJSON(¶ms); err != nil { - c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": err.Error()}) - return - } - req := &pbFriend.RemoveBlacklistReq{ - Uid: params.UID, - OperationID: params.OperationID, - Token: c.Request.Header.Get("token"), - } - log.Info(req.Token, req.OperationID, "api remove blacklist is server:userID=%s", req.Uid) - RpcResp, err := client.RemoveBlacklist(context.Background(), req) - if err != nil { - log.Error(req.Token, req.OperationID, "err=%s,call remove blacklist rpc server failed", err) - c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": "call remove blacklist rpc server failed"}) - return - } - log.InfoByArgs("call remove blacklist rpc server success,args=%s", RpcResp.String()) - resp := gin.H{"errCode": RpcResp.ErrorCode, "errMsg": RpcResp.ErrorMsg} - c.JSON(http.StatusOK, resp) - log.InfoByArgs("api remove blacklist success return,get args=%s,return args=%s", req.String(), RpcResp.String()) -} diff --git a/internal/api/friend/set_friend_comment.go b/internal/api/friend/set_friend_comment.go deleted file mode 100644 index 77fe3411f..000000000 --- a/internal/api/friend/set_friend_comment.go +++ /dev/null @@ -1,48 +0,0 @@ -package friend - -import ( - "Open_IM/pkg/common/config" - "Open_IM/pkg/common/log" - "Open_IM/pkg/grpc-etcdv3/getcdv3" - pbFriend "Open_IM/pkg/proto/friend" - "context" - "github.com/gin-gonic/gin" - "net/http" - "strings" -) - -type paramsSetFriendComment struct { - OperationID string `json:"operationID" binding:"required"` - UID string `json:"uid" binding:"required"` - Comment string `json:"comment"` -} - -func SetFriendComment(c *gin.Context) { - log.Info("", "", "api set friend comment init ....") - - etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImFriendName) - client := pbFriend.NewFriendClient(etcdConn) - //defer etcdConn.Close() - - params := paramsSetFriendComment{} - if err := c.BindJSON(¶ms); err != nil { - c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": err.Error()}) - return - } - req := &pbFriend.SetFriendCommentReq{ - Uid: params.UID, - OperationID: params.OperationID, - Comment: params.Comment, - Token: c.Request.Header.Get("token"), - } - log.Info(req.Token, req.OperationID, "api set friend comment is server") - RpcResp, err := client.SetFriendComment(context.Background(), req) - if err != nil { - log.Error(req.Token, req.OperationID, "err=%s,call set friend comment rpc server failed", err) - c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": "call set friend comment rpc server failed"}) - return - } - log.Info("", "", "call set friend comment rpc server success,args=%s", RpcResp.String()) - c.JSON(http.StatusOK, gin.H{"errCode": RpcResp.ErrorCode, "errMsg": RpcResp.ErrorMsg}) - log.Info("", "", "api set friend comment success return,get args=%s,return args=%s", req.String(), RpcResp.String()) -} diff --git a/internal/api/group/create_group.go b/internal/api/group/create_group.go deleted file mode 100644 index 564aee400..000000000 --- a/internal/api/group/create_group.go +++ /dev/null @@ -1,61 +0,0 @@ -package group - -import ( - "Open_IM/pkg/common/config" - "Open_IM/pkg/common/log" - "Open_IM/pkg/grpc-etcdv3/getcdv3" - pb "Open_IM/pkg/proto/group" - "context" - "github.com/gin-gonic/gin" - "net/http" - "strings" -) - -type paramsCreateGroupStruct struct { - MemberList []*pb.GroupAddMemberInfo `json:"memberList"` - GroupName string `json:"groupName"` - Introduction string `json:"introduction"` - Notification string `json:"notification"` - FaceUrl string `json:"faceUrl"` - OperationID string `json:"operationID" binding:"required"` - Ex string `json:"ex"` -} - -func CreateGroup(c *gin.Context) { - log.Info("", "", "api create group init ....") - - etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImGroupName) - client := pb.NewGroupClient(etcdConn) - //defer etcdConn.Close() - - params := paramsCreateGroupStruct{} - if err := c.BindJSON(¶ms); err != nil { - c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": err.Error()}) - return - } - req := &pb.CreateGroupReq{ - MemberList: params.MemberList, - GroupName: params.GroupName, - Introduction: params.Introduction, - Notification: params.Notification, - FaceUrl: params.FaceUrl, - OperationID: params.OperationID, - Ex: params.Ex, - Token: c.Request.Header.Get("token"), - } - log.Info(req.Token, req.OperationID, "api create group is server,params=%s", req.String()) - RpcResp, err := client.CreateGroup(context.Background(), req) - if err != nil { - log.Error(req.Token, req.OperationID, "err=%s,call create group rpc server failed", err.Error()) - c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": "call rpc server failed"}) - return - } - log.InfoByArgs("call create group rpc server success,args=%s", RpcResp.String()) - if RpcResp.ErrorCode == 0 { - resp := gin.H{"errCode": RpcResp.ErrorCode, "errMsg": RpcResp.ErrorMsg, "data": gin.H{"groupID": RpcResp.GroupID}} - c.JSON(http.StatusOK, resp) - } else { - c.JSON(http.StatusOK, gin.H{"errCode": RpcResp.ErrorCode, "errMsg": RpcResp.ErrorMsg}) - } - log.InfoByArgs("api create group success return,get args=%s,return args=%s", req.String(), RpcResp.String()) -} diff --git a/internal/api/group/get_group_applicationList.go b/internal/api/group/get_group_applicationList.go deleted file mode 100644 index a9fa1c73c..000000000 --- a/internal/api/group/get_group_applicationList.go +++ /dev/null @@ -1,113 +0,0 @@ -package group - -import ( - "Open_IM/pkg/common/config" - "Open_IM/pkg/common/log" - "Open_IM/pkg/common/token_verify" - "Open_IM/pkg/grpc-etcdv3/getcdv3" - "Open_IM/pkg/proto/group" - "context" - "github.com/gin-gonic/gin" - "net/http" - "strings" -) - -type paramsGroupApplicationList struct { - OperationID string `json:"operationID" binding:"required"` -} - -func newUserRegisterReq(params *paramsGroupApplicationList) *group.GetGroupApplicationListReq { - pbData := group.GetGroupApplicationListReq{ - OperationID: params.OperationID, - } - return &pbData -} - -type paramsGroupApplicationListRet struct { - ID string `json:"id"` - GroupID string `json:"groupID"` - FromUserID string `json:"fromUserID"` - ToUserID string `json:"toUserID"` - Flag int32 `json:"flag"` - RequestMsg string `json:"reqMsg"` - HandledMsg string `json:"handledMsg"` - AddTime int64 `json:"createTime"` - FromUserNickname string `json:"fromUserNickName"` - ToUserNickname string `json:"toUserNickName"` - FromUserFaceUrl string `json:"fromUserFaceURL"` - ToUserFaceUrl string `json:"toUserFaceURL"` - HandledUser string `json:"handledUser"` - Type int32 `json:"type"` - HandleStatus int32 `json:"handleStatus"` - HandleResult int32 `json:"handleResult"` -} - -func GetGroupApplicationList(c *gin.Context) { - log.Info("", "", "api GetGroupApplicationList init ....") - etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImGroupName) - client := group.NewGroupClient(etcdConn) - //defer etcdConn.Close() - - params := paramsGroupApplicationList{} - if err := c.BindJSON(¶ms); err != nil { - c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": err.Error()}) - return - } - pbData := newUserRegisterReq(¶ms) - - token := c.Request.Header.Get("token") - if claims, err := token_verify.ParseToken(token); err != nil { - c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": "token validate err"}) - return - } else { - pbData.UID = claims.UID - } - - log.Info("", "", "api GetGroupApplicationList is server, [data: %s]", pbData.String()) - reply, err := client.GetGroupApplicationList(context.Background(), pbData) - if err != nil { - log.Error("", "", "api GetGroupApplicationList call rpc fail, [data: %s] [err: %s]", pbData.String(), err.Error()) - c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": err.Error()}) - return - } - log.Info("", "", "api GetGroupApplicationList call rpc success, [data: %s] [reply: %s]", pbData.String(), reply.String()) - - unProcessCount := 0 - userReq := make([]paramsGroupApplicationListRet, 0) - if reply != nil && reply.Data != nil && reply.Data.User != nil { - for i := 0; i < len(reply.Data.User); i++ { - req := paramsGroupApplicationListRet{} - req.ID = reply.Data.User[i].ID - req.GroupID = reply.Data.User[i].GroupID - req.FromUserID = reply.Data.User[i].FromUserID - req.ToUserID = reply.Data.User[i].ToUserID - req.Flag = reply.Data.User[i].Flag - req.RequestMsg = reply.Data.User[i].RequestMsg - req.HandledMsg = reply.Data.User[i].HandledMsg - req.AddTime = reply.Data.User[i].AddTime - req.FromUserNickname = reply.Data.User[i].FromUserNickname - req.ToUserNickname = reply.Data.User[i].ToUserNickname - req.FromUserFaceUrl = reply.Data.User[i].FromUserFaceUrl - req.ToUserFaceUrl = reply.Data.User[i].ToUserFaceUrl - req.HandledUser = reply.Data.User[i].HandledUser - req.Type = reply.Data.User[i].Type - req.HandleStatus = reply.Data.User[i].HandleStatus - req.HandleResult = reply.Data.User[i].HandleResult - userReq = append(userReq, req) - - if req.Flag == 0 { - unProcessCount++ - } - } - } - - c.JSON(http.StatusOK, gin.H{ - "errCode": reply.ErrCode, - "errMsg": reply.ErrMsg, - "data": gin.H{ - "count": unProcessCount, - "user": userReq, - }, - }) - -} diff --git a/internal/api/group/get_groups_info.go b/internal/api/group/get_groups_info.go deleted file mode 100644 index 251cd8b09..000000000 --- a/internal/api/group/get_groups_info.go +++ /dev/null @@ -1,67 +0,0 @@ -package group - -import ( - "Open_IM/pkg/common/config" - "Open_IM/pkg/common/log" - "Open_IM/pkg/grpc-etcdv3/getcdv3" - pb "Open_IM/pkg/proto/group" - "context" - "github.com/gin-gonic/gin" - "net/http" - "strings" -) - -type paramsGetGroupInfo struct { - GroupIDList []string `json:"groupIDList" binding:"required"` - OperationID string `json:"operationID" binding:"required"` -} - -func GetGroupsInfo(c *gin.Context) { - log.Info("", "", "api get groups info init ....") - - etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImGroupName) - client := pb.NewGroupClient(etcdConn) - //defer etcdConn.Close() - - params := paramsGetGroupInfo{} - if err := c.BindJSON(¶ms); err != nil { - c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": err.Error()}) - return - } - req := &pb.GetGroupsInfoReq{ - GroupIDList: params.GroupIDList, - Token: c.Request.Header.Get("token"), - OperationID: params.OperationID, - } - log.Info(req.Token, req.OperationID, "get groups info is server,params=%s", req.String()) - RpcResp, err := client.GetGroupsInfo(context.Background(), req) - if err != nil { - log.Error(req.Token, req.OperationID, "call get groups info rpc server failed,err=%s", err.Error()) - c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": "call rpc server failed"}) - return - } - log.InfoByArgs("call get groups info rpc server success", RpcResp.String()) - if RpcResp.ErrorCode == 0 { - groupsInfo := make([]pb.GroupInfo, 0) - for _, v := range RpcResp.Data { - var groupInfo pb.GroupInfo - groupInfo.GroupId = v.GroupId - groupInfo.GroupName = v.GroupName - groupInfo.Notification = v.Notification - groupInfo.Introduction = v.Introduction - groupInfo.FaceUrl = v.FaceUrl - groupInfo.CreateTime = v.CreateTime - groupInfo.OwnerId = v.OwnerId - groupInfo.MemberCount = v.MemberCount - - groupsInfo = append(groupsInfo, groupInfo) - } - c.JSON(http.StatusOK, gin.H{ - "errCode": RpcResp.ErrorCode, - "errMsg": RpcResp.ErrorMsg, - "data": groupsInfo, - }) - } else { - c.JSON(http.StatusOK, gin.H{"errCode": RpcResp.ErrorCode, "errMsg": RpcResp.ErrorMsg}) - } -} diff --git a/internal/api/group/group.go b/internal/api/group/group.go index 0fd05b3bd..10ddf9ddd 100644 --- a/internal/api/group/group.go +++ b/internal/api/group/group.go @@ -3,6 +3,7 @@ package group import ( "Open_IM/pkg/common/config" "Open_IM/pkg/common/log" + "Open_IM/pkg/common/token_verify" "Open_IM/pkg/grpc-etcdv3/getcdv3" pb "Open_IM/pkg/proto/group" "context" @@ -31,10 +32,6 @@ type KickGroupMemberReq struct { } func KickGroupMember(c *gin.Context) { - log.Info("", "", "KickGroupMember start....") - - etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImGroupName) - client := pb.NewGroupClient(etcdConn) params := KickGroupMemberReq{} if err := c.BindJSON(¶ms); err != nil { @@ -50,7 +47,8 @@ func KickGroupMember(c *gin.Context) { UidListInfo: params.UidListInfo, } log.Info(req.Token, req.OperationID, "recv req: ", req.String()) - + etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImGroupName) + client := pb.NewGroupClient(etcdConn) RpcResp, err := client.KickGroupMember(context.Background(), req) if err != nil { log.Error(req.Token, req.OperationID, "GetGroupMemberList failed, err: ", err.Error()) @@ -349,3 +347,445 @@ func InviteUserToGroup(c *gin.Context) { //resp := gin.H{"errCode": RpcResp.ErrorCode, "errMsg": RpcResp.ErrorMsg, "data": RpcResp.Id2Result} c.JSON(http.StatusOK, iResp) } + +type paramsCreateGroupStruct struct { + MemberList []*pb.GroupAddMemberInfo `json:"memberList"` + GroupName string `json:"groupName"` + Introduction string `json:"introduction"` + Notification string `json:"notification"` + FaceUrl string `json:"faceUrl"` + OperationID string `json:"operationID" binding:"required"` + Ex string `json:"ex"` +} + +func CreateGroup(c *gin.Context) { + log.Info("", "", "api create group init ....") + + etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImGroupName) + client := pb.NewGroupClient(etcdConn) + //defer etcdConn.Close() + + params := paramsCreateGroupStruct{} + if err := c.BindJSON(¶ms); err != nil { + c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": err.Error()}) + return + } + req := &pb.CreateGroupReq{ + MemberList: params.MemberList, + GroupName: params.GroupName, + Introduction: params.Introduction, + Notification: params.Notification, + FaceUrl: params.FaceUrl, + OperationID: params.OperationID, + Ex: params.Ex, + Token: c.Request.Header.Get("token"), + } + log.Info(req.Token, req.OperationID, "api create group is server,params=%s", req.String()) + RpcResp, err := client.CreateGroup(context.Background(), req) + if err != nil { + log.Error(req.Token, req.OperationID, "err=%s,call create group rpc server failed", err.Error()) + c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": "call rpc server failed"}) + return + } + log.InfoByArgs("call create group rpc server success,args=%s", RpcResp.String()) + if RpcResp.ErrorCode == 0 { + resp := gin.H{"errCode": RpcResp.ErrorCode, "errMsg": RpcResp.ErrorMsg, "data": gin.H{"groupID": RpcResp.GroupID}} + c.JSON(http.StatusOK, resp) + } else { + c.JSON(http.StatusOK, gin.H{"errCode": RpcResp.ErrorCode, "errMsg": RpcResp.ErrorMsg}) + } + log.InfoByArgs("api create group success return,get args=%s,return args=%s", req.String(), RpcResp.String()) +} + +type paramsGroupApplicationList struct { + OperationID string `json:"operationID" binding:"required"` +} + +func newUserRegisterReq(params *paramsGroupApplicationList) *group.GetGroupApplicationListReq { + pbData := group.GetGroupApplicationListReq{ + OperationID: params.OperationID, + } + return &pbData +} + +type paramsGroupApplicationListRet struct { + ID string `json:"id"` + GroupID string `json:"groupID"` + FromUserID string `json:"fromUserID"` + ToUserID string `json:"toUserID"` + Flag int32 `json:"flag"` + RequestMsg string `json:"reqMsg"` + HandledMsg string `json:"handledMsg"` + AddTime int64 `json:"createTime"` + FromUserNickname string `json:"fromUserNickName"` + ToUserNickname string `json:"toUserNickName"` + FromUserFaceUrl string `json:"fromUserFaceURL"` + ToUserFaceUrl string `json:"toUserFaceURL"` + HandledUser string `json:"handledUser"` + Type int32 `json:"type"` + HandleStatus int32 `json:"handleStatus"` + HandleResult int32 `json:"handleResult"` +} + +func GetGroupApplicationList(c *gin.Context) { + log.Info("", "", "api GetGroupApplicationList init ....") + etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImGroupName) + client := group.NewGroupClient(etcdConn) + //defer etcdConn.Close() + + params := paramsGroupApplicationList{} + if err := c.BindJSON(¶ms); err != nil { + c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": err.Error()}) + return + } + pbData := newUserRegisterReq(¶ms) + + token := c.Request.Header.Get("token") + if claims, err := token_verify.ParseToken(token); err != nil { + c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": "token validate err"}) + return + } else { + pbData.UID = claims.UID + } + + log.Info("", "", "api GetGroupApplicationList is server, [data: %s]", pbData.String()) + reply, err := client.GetGroupApplicationList(context.Background(), pbData) + if err != nil { + log.Error("", "", "api GetGroupApplicationList call rpc fail, [data: %s] [err: %s]", pbData.String(), err.Error()) + c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": err.Error()}) + return + } + log.Info("", "", "api GetGroupApplicationList call rpc success, [data: %s] [reply: %s]", pbData.String(), reply.String()) + + unProcessCount := 0 + userReq := make([]paramsGroupApplicationListRet, 0) + if reply != nil && reply.Data != nil && reply.Data.User != nil { + for i := 0; i < len(reply.Data.User); i++ { + req := paramsGroupApplicationListRet{} + req.ID = reply.Data.User[i].ID + req.GroupID = reply.Data.User[i].GroupID + req.FromUserID = reply.Data.User[i].FromUserID + req.ToUserID = reply.Data.User[i].ToUserID + req.Flag = reply.Data.User[i].Flag + req.RequestMsg = reply.Data.User[i].RequestMsg + req.HandledMsg = reply.Data.User[i].HandledMsg + req.AddTime = reply.Data.User[i].AddTime + req.FromUserNickname = reply.Data.User[i].FromUserNickname + req.ToUserNickname = reply.Data.User[i].ToUserNickname + req.FromUserFaceUrl = reply.Data.User[i].FromUserFaceUrl + req.ToUserFaceUrl = reply.Data.User[i].ToUserFaceUrl + req.HandledUser = reply.Data.User[i].HandledUser + req.Type = reply.Data.User[i].Type + req.HandleStatus = reply.Data.User[i].HandleStatus + req.HandleResult = reply.Data.User[i].HandleResult + userReq = append(userReq, req) + + if req.Flag == 0 { + unProcessCount++ + } + } + } + + c.JSON(http.StatusOK, gin.H{ + "errCode": reply.ErrCode, + "errMsg": reply.ErrMsg, + "data": gin.H{ + "count": unProcessCount, + "user": userReq, + }, + }) + +} + +type paramsGetGroupInfo struct { + GroupIDList []string `json:"groupIDList" binding:"required"` + OperationID string `json:"operationID" binding:"required"` +} + +func GetGroupsInfo(c *gin.Context) { + log.Info("", "", "api get groups info init ....") + + etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImGroupName) + client := pb.NewGroupClient(etcdConn) + //defer etcdConn.Close() + + params := paramsGetGroupInfo{} + if err := c.BindJSON(¶ms); err != nil { + c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": err.Error()}) + return + } + req := &pb.GetGroupsInfoReq{ + GroupIDList: params.GroupIDList, + Token: c.Request.Header.Get("token"), + OperationID: params.OperationID, + } + log.Info(req.Token, req.OperationID, "get groups info is server,params=%s", req.String()) + RpcResp, err := client.GetGroupsInfo(context.Background(), req) + if err != nil { + log.Error(req.Token, req.OperationID, "call get groups info rpc server failed,err=%s", err.Error()) + c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": "call rpc server failed"}) + return + } + log.InfoByArgs("call get groups info rpc server success", RpcResp.String()) + if RpcResp.ErrorCode == 0 { + groupsInfo := make([]pb.GroupInfo, 0) + for _, v := range RpcResp.Data { + var groupInfo pb.GroupInfo + groupInfo.GroupId = v.GroupId + groupInfo.GroupName = v.GroupName + groupInfo.Notification = v.Notification + groupInfo.Introduction = v.Introduction + groupInfo.FaceUrl = v.FaceUrl + groupInfo.CreateTime = v.CreateTime + groupInfo.OwnerId = v.OwnerId + groupInfo.MemberCount = v.MemberCount + + groupsInfo = append(groupsInfo, groupInfo) + } + c.JSON(http.StatusOK, gin.H{ + "errCode": RpcResp.ErrorCode, + "errMsg": RpcResp.ErrorMsg, + "data": groupsInfo, + }) + } else { + c.JSON(http.StatusOK, gin.H{"errCode": RpcResp.ErrorCode, "errMsg": RpcResp.ErrorMsg}) + } +} + +type paramsGroupApplicationResponse struct { + OperationID string `json:"operationID" binding:"required"` + GroupID string `json:"groupID" binding:"required"` + FromUserID string `json:"fromUserID" binding:"required"` + FromUserNickName string `json:"fromUserNickName"` + FromUserFaceUrl string `json:"fromUserFaceUrl"` + ToUserID string `json:"toUserID" binding:"required"` + ToUserNickName string `json:"toUserNickName"` + ToUserFaceUrl string `json:"toUserFaceUrl"` + AddTime int64 `json:"addTime"` + RequestMsg string `json:"requestMsg"` + HandledMsg string `json:"handledMsg"` + Type int32 `json:"type"` + HandleStatus int32 `json:"handleStatus"` + HandleResult int32 `json:"handleResult"` + + UserID string `json:"userID"` +} + +func newGroupApplicationResponse(params *paramsGroupApplicationResponse) *group.GroupApplicationResponseReq { + pbData := group.GroupApplicationResponseReq{ + OperationID: params.OperationID, + GroupID: params.GroupID, + FromUserID: params.FromUserID, + FromUserNickName: params.FromUserNickName, + FromUserFaceUrl: params.FromUserFaceUrl, + ToUserID: params.ToUserID, + ToUserNickName: params.ToUserNickName, + ToUserFaceUrl: params.ToUserFaceUrl, + AddTime: params.AddTime, + RequestMsg: params.RequestMsg, + HandledMsg: params.HandledMsg, + Type: params.Type, + HandleStatus: params.HandleStatus, + HandleResult: params.HandleResult, + } + return &pbData +} + +func ApplicationGroupResponse(c *gin.Context) { + log.Info("", "", "api GroupApplicationResponse init ....") + etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImGroupName) + client := group.NewGroupClient(etcdConn) + //defer etcdConn.Close() + + params := paramsGroupApplicationResponse{} + if err := c.BindJSON(¶ms); err != nil { + c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": err.Error()}) + return + } + pbData := newGroupApplicationResponse(¶ms) + + token := c.Request.Header.Get("token") + if claims, err := token_verify.ParseToken(token); err != nil { + c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": "token validate err"}) + return + } else { + pbData.OwnerID = claims.UID + } + + log.Info("", "", "api GroupApplicationResponse is server, [data: %s]", pbData.String()) + reply, err := client.GroupApplicationResponse(context.Background(), pbData) + if err != nil { + log.Error("", "", "api GroupApplicationResponse call rpc fail, [data: %s] [err: %s]", pbData.String(), err.Error()) + c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": err.Error()}) + return + } + log.Info("", "", "api GroupApplicationResponse call rpc success, [data: %s] [reply: %s]", pbData.String(), reply.String()) + + c.JSON(http.StatusOK, gin.H{ + "errCode": reply.ErrCode, + "errMsg": reply.ErrMsg, + }) + +} + +type paramsJoinGroup struct { + GroupID string `json:"groupID" binding:"required"` + Message string `json:"message"` + OperationID string `json:"operationID" binding:"required"` +} + +func JoinGroup(c *gin.Context) { + log.Info("", "", "api join group init....") + + etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImGroupName) + client := pb.NewGroupClient(etcdConn) + //defer etcdConn.Close() + + params := paramsJoinGroup{} + if err := c.BindJSON(¶ms); err != nil { + c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": err.Error()}) + return + } + req := &pb.JoinGroupReq{ + GroupID: params.GroupID, + Message: params.Message, + Token: c.Request.Header.Get("token"), + OperationID: params.OperationID, + } + log.Info(req.Token, req.OperationID, "api join group is server,params=%s", req.String()) + RpcResp, err := client.JoinGroup(context.Background(), req) + if err != nil { + log.Error(req.Token, req.OperationID, "call join group rpc server failed,err=%s", err.Error()) + c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": "call rpc server failed"}) + return + } + log.InfoByArgs("call join group rpc server success,args=%s", RpcResp.String()) + c.JSON(http.StatusOK, gin.H{"errCode": RpcResp.ErrorCode, "errMsg": RpcResp.ErrorMsg}) +} + +type paramsQuitGroup struct { + GroupID string `json:"groupID" binding:"required"` + OperationID string `json:"operationID" binding:"required"` +} + +func QuitGroup(c *gin.Context) { + log.Info("", "", "api quit group init ....") + + etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImGroupName) + client := pb.NewGroupClient(etcdConn) + //defer etcdConn.Close() + + params := paramsQuitGroup{} + if err := c.BindJSON(¶ms); err != nil { + c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": err.Error()}) + return + } + req := &pb.QuitGroupReq{ + GroupID: params.GroupID, + OperationID: params.OperationID, + Token: c.Request.Header.Get("token"), + } + log.Info(req.Token, req.OperationID, "api quit group is server,params=%s", req.String()) + RpcResp, err := client.QuitGroup(context.Background(), req) + if err != nil { + log.Error(req.Token, req.OperationID, "call quit group rpc server failed,err=%s", err.Error()) + c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": "call rpc server failed"}) + return + } + log.InfoByArgs("call quit group rpc server success,args=%s", RpcResp.String()) + c.JSON(http.StatusOK, gin.H{"errCode": RpcResp.ErrorCode, "errMsg": RpcResp.ErrorMsg}) + log.InfoByArgs("api quit group success return,get args=%s,return args=%s", req.String(), RpcResp.String()) +} + +type paramsSetGroupInfo struct { + GroupID string `json:"groupId" binding:"required"` + GroupName string `json:"groupName"` + Notification string `json:"notification"` + Introduction string `json:"introduction"` + FaceUrl string `json:"faceUrl"` + OperationID string `json:"operationID" binding:"required"` +} + +func SetGroupInfo(c *gin.Context) { + log.Info("", "", "api set group info init...") + + etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImGroupName) + client := pb.NewGroupClient(etcdConn) + //defer etcdConn.Close() + + params := paramsSetGroupInfo{} + if err := c.BindJSON(¶ms); err != nil { + c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": err.Error()}) + return + } + req := &pb.SetGroupInfoReq{ + GroupID: params.GroupID, + GroupName: params.GroupName, + Notification: params.Notification, + Introduction: params.Introduction, + FaceUrl: params.FaceUrl, + Token: c.Request.Header.Get("token"), + OperationID: params.OperationID, + } + log.Info(req.Token, req.OperationID, "api set group info is server,params=%s", req.String()) + RpcResp, err := client.SetGroupInfo(context.Background(), req) + if err != nil { + log.Error(req.Token, req.OperationID, "call set group info rpc server failed,err=%s", err.Error()) + c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": "call rpc server failed"}) + return + } + log.InfoByArgs("call set group info rpc server success,args=%s", RpcResp.String()) + c.JSON(http.StatusOK, gin.H{"errCode": RpcResp.ErrorCode, "errMsg": RpcResp.ErrorMsg}) +} + +type paramsTransferGroupOwner struct { + OperationID string `json:"operationID" binding:"required"` + GroupID string `json:"groupID" binding:"required"` + UID string `json:"uid" binding:"required"` +} + +func newTransferGroupOwnerReq(params *paramsTransferGroupOwner) *group.TransferGroupOwnerReq { + pbData := group.TransferGroupOwnerReq{ + OperationID: params.OperationID, + GroupID: params.GroupID, + NewOwner: params.UID, + } + return &pbData +} + +func TransferGroupOwner(c *gin.Context) { + log.Info("", "", "api TransferGroupOwner init ....") + etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImGroupName) + client := group.NewGroupClient(etcdConn) + //defer etcdConn.Close() + + params := paramsTransferGroupOwner{} + if err := c.BindJSON(¶ms); err != nil { + c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": err.Error()}) + return + } + pbData := newTransferGroupOwnerReq(¶ms) + + token := c.Request.Header.Get("token") + if claims, err := token_verify.ParseToken(token); err != nil { + c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": "token validate err"}) + return + } else { + pbData.OldOwner = claims.UID + } + + log.Info("", "", "api TransferGroupOwner is server, [data: %s]", pbData.String()) + reply, err := client.TransferGroupOwner(context.Background(), pbData) + if err != nil { + log.Error("", "", "api TransferGroupOwner call rpc fail, [data: %s] [err: %s]", pbData.String(), err.Error()) + c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": err.Error()}) + return + } + log.Info("", "", "api TransferGroupOwner call rpc success, [data: %s] [reply: %s]", pbData.String(), reply.String()) + + c.JSON(http.StatusOK, gin.H{ + "errCode": reply.ErrCode, + "errMsg": reply.ErrMsg, + }) + +} diff --git a/internal/api/group/group_application_response.go b/internal/api/group/group_application_response.go deleted file mode 100644 index 3a7e9343c..000000000 --- a/internal/api/group/group_application_response.go +++ /dev/null @@ -1,89 +0,0 @@ -package group - -import ( - "Open_IM/pkg/common/config" - "Open_IM/pkg/common/log" - "Open_IM/pkg/common/token_verify" - "Open_IM/pkg/grpc-etcdv3/getcdv3" - "Open_IM/pkg/proto/group" - "context" - "github.com/gin-gonic/gin" - "net/http" - "strings" -) - -type paramsGroupApplicationResponse struct { - OperationID string `json:"operationID" binding:"required"` - GroupID string `json:"groupID" binding:"required"` - FromUserID string `json:"fromUserID" binding:"required"` - FromUserNickName string `json:"fromUserNickName"` - FromUserFaceUrl string `json:"fromUserFaceUrl"` - ToUserID string `json:"toUserID" binding:"required"` - ToUserNickName string `json:"toUserNickName"` - ToUserFaceUrl string `json:"toUserFaceUrl"` - AddTime int64 `json:"addTime"` - RequestMsg string `json:"requestMsg"` - HandledMsg string `json:"handledMsg"` - Type int32 `json:"type"` - HandleStatus int32 `json:"handleStatus"` - HandleResult int32 `json:"handleResult"` - - UserID string `json:"userID"` -} - -func newGroupApplicationResponse(params *paramsGroupApplicationResponse) *group.GroupApplicationResponseReq { - pbData := group.GroupApplicationResponseReq{ - OperationID: params.OperationID, - GroupID: params.GroupID, - FromUserID: params.FromUserID, - FromUserNickName: params.FromUserNickName, - FromUserFaceUrl: params.FromUserFaceUrl, - ToUserID: params.ToUserID, - ToUserNickName: params.ToUserNickName, - ToUserFaceUrl: params.ToUserFaceUrl, - AddTime: params.AddTime, - RequestMsg: params.RequestMsg, - HandledMsg: params.HandledMsg, - Type: params.Type, - HandleStatus: params.HandleStatus, - HandleResult: params.HandleResult, - } - return &pbData -} - -func ApplicationGroupResponse(c *gin.Context) { - log.Info("", "", "api GroupApplicationResponse init ....") - etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImGroupName) - client := group.NewGroupClient(etcdConn) - //defer etcdConn.Close() - - params := paramsGroupApplicationResponse{} - if err := c.BindJSON(¶ms); err != nil { - c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": err.Error()}) - return - } - pbData := newGroupApplicationResponse(¶ms) - - token := c.Request.Header.Get("token") - if claims, err := token_verify.ParseToken(token); err != nil { - c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": "token validate err"}) - return - } else { - pbData.OwnerID = claims.UID - } - - log.Info("", "", "api GroupApplicationResponse is server, [data: %s]", pbData.String()) - reply, err := client.GroupApplicationResponse(context.Background(), pbData) - if err != nil { - log.Error("", "", "api GroupApplicationResponse call rpc fail, [data: %s] [err: %s]", pbData.String(), err.Error()) - c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": err.Error()}) - return - } - log.Info("", "", "api GroupApplicationResponse call rpc success, [data: %s] [reply: %s]", pbData.String(), reply.String()) - - c.JSON(http.StatusOK, gin.H{ - "errCode": reply.ErrCode, - "errMsg": reply.ErrMsg, - }) - -} diff --git a/internal/api/group/join_group.go b/internal/api/group/join_group.go deleted file mode 100644 index cc4600333..000000000 --- a/internal/api/group/join_group.go +++ /dev/null @@ -1,47 +0,0 @@ -package group - -import ( - "Open_IM/pkg/common/config" - "Open_IM/pkg/common/log" - "Open_IM/pkg/grpc-etcdv3/getcdv3" - pb "Open_IM/pkg/proto/group" - "context" - "github.com/gin-gonic/gin" - "net/http" - "strings" -) - -type paramsJoinGroup struct { - GroupID string `json:"groupID" binding:"required"` - Message string `json:"message"` - OperationID string `json:"operationID" binding:"required"` -} - -func JoinGroup(c *gin.Context) { - log.Info("", "", "api join group init....") - - etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImGroupName) - client := pb.NewGroupClient(etcdConn) - //defer etcdConn.Close() - - params := paramsJoinGroup{} - if err := c.BindJSON(¶ms); err != nil { - c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": err.Error()}) - return - } - req := &pb.JoinGroupReq{ - GroupID: params.GroupID, - Message: params.Message, - Token: c.Request.Header.Get("token"), - OperationID: params.OperationID, - } - log.Info(req.Token, req.OperationID, "api join group is server,params=%s", req.String()) - RpcResp, err := client.JoinGroup(context.Background(), req) - if err != nil { - log.Error(req.Token, req.OperationID, "call join group rpc server failed,err=%s", err.Error()) - c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": "call rpc server failed"}) - return - } - log.InfoByArgs("call join group rpc server success,args=%s", RpcResp.String()) - c.JSON(http.StatusOK, gin.H{"errCode": RpcResp.ErrorCode, "errMsg": RpcResp.ErrorMsg}) -} diff --git a/internal/api/group/quit_group.go b/internal/api/group/quit_group.go deleted file mode 100644 index 5ee485459..000000000 --- a/internal/api/group/quit_group.go +++ /dev/null @@ -1,46 +0,0 @@ -package group - -import ( - "Open_IM/pkg/common/config" - "Open_IM/pkg/common/log" - "Open_IM/pkg/grpc-etcdv3/getcdv3" - pb "Open_IM/pkg/proto/group" - "context" - "github.com/gin-gonic/gin" - "net/http" - "strings" -) - -type paramsQuitGroup struct { - GroupID string `json:"groupID" binding:"required"` - OperationID string `json:"operationID" binding:"required"` -} - -func QuitGroup(c *gin.Context) { - log.Info("", "", "api quit group init ....") - - etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImGroupName) - client := pb.NewGroupClient(etcdConn) - //defer etcdConn.Close() - - params := paramsQuitGroup{} - if err := c.BindJSON(¶ms); err != nil { - c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": err.Error()}) - return - } - req := &pb.QuitGroupReq{ - GroupID: params.GroupID, - OperationID: params.OperationID, - Token: c.Request.Header.Get("token"), - } - log.Info(req.Token, req.OperationID, "api quit group is server,params=%s", req.String()) - RpcResp, err := client.QuitGroup(context.Background(), req) - if err != nil { - log.Error(req.Token, req.OperationID, "call quit group rpc server failed,err=%s", err.Error()) - c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": "call rpc server failed"}) - return - } - log.InfoByArgs("call quit group rpc server success,args=%s", RpcResp.String()) - c.JSON(http.StatusOK, gin.H{"errCode": RpcResp.ErrorCode, "errMsg": RpcResp.ErrorMsg}) - log.InfoByArgs("api quit group success return,get args=%s,return args=%s", req.String(), RpcResp.String()) -} diff --git a/internal/api/group/set_group_info.go b/internal/api/group/set_group_info.go deleted file mode 100644 index 0075acc86..000000000 --- a/internal/api/group/set_group_info.go +++ /dev/null @@ -1,53 +0,0 @@ -package group - -import ( - "Open_IM/pkg/common/config" - "Open_IM/pkg/common/log" - "Open_IM/pkg/grpc-etcdv3/getcdv3" - pb "Open_IM/pkg/proto/group" - "context" - "github.com/gin-gonic/gin" - "net/http" - "strings" -) - -type paramsSetGroupInfo struct { - GroupID string `json:"groupId" binding:"required"` - GroupName string `json:"groupName"` - Notification string `json:"notification"` - Introduction string `json:"introduction"` - FaceUrl string `json:"faceUrl"` - OperationID string `json:"operationID" binding:"required"` -} - -func SetGroupInfo(c *gin.Context) { - log.Info("", "", "api set group info init...") - - etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImGroupName) - client := pb.NewGroupClient(etcdConn) - //defer etcdConn.Close() - - params := paramsSetGroupInfo{} - if err := c.BindJSON(¶ms); err != nil { - c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": err.Error()}) - return - } - req := &pb.SetGroupInfoReq{ - GroupID: params.GroupID, - GroupName: params.GroupName, - Notification: params.Notification, - Introduction: params.Introduction, - FaceUrl: params.FaceUrl, - Token: c.Request.Header.Get("token"), - OperationID: params.OperationID, - } - log.Info(req.Token, req.OperationID, "api set group info is server,params=%s", req.String()) - RpcResp, err := client.SetGroupInfo(context.Background(), req) - if err != nil { - log.Error(req.Token, req.OperationID, "call set group info rpc server failed,err=%s", err.Error()) - c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": "call rpc server failed"}) - return - } - log.InfoByArgs("call set group info rpc server success,args=%s", RpcResp.String()) - c.JSON(http.StatusOK, gin.H{"errCode": RpcResp.ErrorCode, "errMsg": RpcResp.ErrorMsg}) -} diff --git a/internal/api/group/transfer_group_owner.go b/internal/api/group/transfer_group_owner.go deleted file mode 100644 index d8cc9d662..000000000 --- a/internal/api/group/transfer_group_owner.go +++ /dev/null @@ -1,65 +0,0 @@ -package group - -import ( - "Open_IM/pkg/common/config" - "Open_IM/pkg/common/log" - "Open_IM/pkg/common/token_verify" - "Open_IM/pkg/grpc-etcdv3/getcdv3" - "Open_IM/pkg/proto/group" - "context" - "github.com/gin-gonic/gin" - "net/http" - "strings" -) - -type paramsTransferGroupOwner struct { - OperationID string `json:"operationID" binding:"required"` - GroupID string `json:"groupID" binding:"required"` - UID string `json:"uid" binding:"required"` -} - -func newTransferGroupOwnerReq(params *paramsTransferGroupOwner) *group.TransferGroupOwnerReq { - pbData := group.TransferGroupOwnerReq{ - OperationID: params.OperationID, - GroupID: params.GroupID, - NewOwner: params.UID, - } - return &pbData -} - -func TransferGroupOwner(c *gin.Context) { - log.Info("", "", "api TransferGroupOwner init ....") - etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImGroupName) - client := group.NewGroupClient(etcdConn) - //defer etcdConn.Close() - - params := paramsTransferGroupOwner{} - if err := c.BindJSON(¶ms); err != nil { - c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": err.Error()}) - return - } - pbData := newTransferGroupOwnerReq(¶ms) - - token := c.Request.Header.Get("token") - if claims, err := token_verify.ParseToken(token); err != nil { - c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": "token validate err"}) - return - } else { - pbData.OldOwner = claims.UID - } - - log.Info("", "", "api TransferGroupOwner is server, [data: %s]", pbData.String()) - reply, err := client.TransferGroupOwner(context.Background(), pbData) - if err != nil { - log.Error("", "", "api TransferGroupOwner call rpc fail, [data: %s] [err: %s]", pbData.String(), err.Error()) - c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": err.Error()}) - return - } - log.Info("", "", "api TransferGroupOwner call rpc success, [data: %s] [reply: %s]", pbData.String(), reply.String()) - - c.JSON(http.StatusOK, gin.H{ - "errCode": reply.ErrCode, - "errMsg": reply.ErrMsg, - }) - -} diff --git a/internal/rpc/friend/add_blacklist.go b/internal/rpc/friend/add_blacklist.go deleted file mode 100644 index 07fa2d032..000000000 --- a/internal/rpc/friend/add_blacklist.go +++ /dev/null @@ -1,47 +0,0 @@ -package friend - -import ( - "Open_IM/pkg/common/config" - "Open_IM/pkg/common/constant" - "Open_IM/pkg/common/db/mysql_model/im_mysql_model" - "Open_IM/pkg/common/log" - "Open_IM/pkg/common/token_verify" - pbFriend "Open_IM/pkg/proto/friend" - "Open_IM/pkg/utils" - "context" -) - -func (s *friendServer) AddBlacklist(ctx context.Context, req *pbFriend.AddBlacklistReq) (*pbFriend.CommonResp, error) { - log.Info(req.Token, req.OperationID, "rpc add blacklist is server,args=%s", req.String()) - //Parse token, to find current user information - claims, err := token_verify.ParseToken(req.Token) - if err != nil { - log.Error(req.Token, req.OperationID, "err=%s,parse token failed", err.Error()) - return &pbFriend.CommonResp{ErrorCode: constant.ErrParseToken.ErrCode, ErrorMsg: constant.ErrParseToken.ErrMsg}, nil - } - - isMagagerFlag := 0 - tokenUid := claims.UID - - if utils.IsContain(tokenUid, config.Config.Manager.AppManagerUid) { - isMagagerFlag = 1 - } - - if isMagagerFlag == 0 { - err = im_mysql_model.InsertInToUserBlackList(claims.UID, req.Uid) - if err != nil { - log.Error(req.Token, req.OperationID, "err=%s,Failed to add blacklist", err.Error()) - return &pbFriend.CommonResp{ErrorCode: constant.ErrMysql.ErrCode, ErrorMsg: constant.ErrMysql.ErrMsg}, nil - } - log.Info(req.Token, req.OperationID, "rpc add blacklist success return,uid=%s", req.Uid) - return &pbFriend.CommonResp{}, nil - } - - err = im_mysql_model.InsertInToUserBlackList(req.OwnerUid, req.Uid) - if err != nil { - log.Error(req.Token, req.OperationID, "err=%s,Failed to add blacklist", err.Error()) - return &pbFriend.CommonResp{ErrorCode: constant.ErrMysql.ErrCode, ErrorMsg: constant.ErrMysql.ErrMsg}, nil - } - log.Info(req.Token, req.OperationID, "rpc add blacklist success return,uid=%s", req.Uid) - return &pbFriend.CommonResp{}, nil -} diff --git a/internal/rpc/friend/add_friend.go b/internal/rpc/friend/add_friend.go deleted file mode 100644 index cc10572b5..000000000 --- a/internal/rpc/friend/add_friend.go +++ /dev/null @@ -1,133 +0,0 @@ -package friend - -import ( - "Open_IM/internal/push/content_struct" - "Open_IM/internal/push/logic" - "Open_IM/pkg/common/config" - "Open_IM/pkg/common/constant" - "Open_IM/pkg/common/db/mysql_model/im_mysql_model" - "Open_IM/pkg/common/log" - "Open_IM/pkg/common/token_verify" - pbChat "Open_IM/pkg/proto/chat" - pbFriend "Open_IM/pkg/proto/friend" - "Open_IM/pkg/utils" - "context" -) - -func (s *friendServer) AddFriend(ctx context.Context, req *pbFriend.AddFriendReq) (*pbFriend.CommonResp, error) { - log.Info(req.Token, req.OperationID, "rpc add friend is server,userid=%s", req.Uid) - //Parse token, to find current user information - claims, err := token_verify.ParseToken(req.Token) - if err != nil { - log.Error(req.Token, req.OperationID, "err=%s,parse token failed", err.Error()) - return &pbFriend.CommonResp{ErrorCode: constant.ErrParseToken.ErrCode, ErrorMsg: constant.ErrParseToken.ErrMsg}, nil - } - //Cannot add non-existent users - if _, err = im_mysql_model.FindUserByUID(req.Uid); err != nil { - log.Error(req.Token, req.OperationID, "this user not exists,cant not add friend") - return &pbFriend.CommonResp{ErrorCode: constant.ErrAddFriend.ErrCode, ErrorMsg: constant.ErrSearchUserInfo.ErrMsg}, nil - } - - //Establish a latest relationship in the friend request table - err = im_mysql_model.ReplaceIntoFriendReq(claims.UID, req.Uid, constant.ApplicationFriendFlag, req.ReqMessage) - if err != nil { - log.Error(req.Token, req.OperationID, "err=%s,create friend request record failed", err.Error()) - return &pbFriend.CommonResp{ErrorCode: constant.ErrAddFriend.ErrCode, ErrorMsg: constant.ErrAddFriend.ErrMsg}, nil - } - log.Info(req.Token, req.OperationID, "rpc add friend is success return,uid=%s", req.Uid) - //Push message when add friend successfully - senderInfo, errSend := im_mysql_model.FindUserByUID(claims.UID) - receiverInfo, errReceive := im_mysql_model.FindUserByUID(req.Uid) - if errSend == nil && errReceive == nil { - logic.SendMsgByWS(&pbChat.WSToMsgSvrChatMsg{ - SendID: senderInfo.UID, - RecvID: receiverInfo.UID, - Content: content_struct.NewContentStructString(0, "", senderInfo.Name+" asked to add you as a friend"), - SendTime: utils.GetCurrentTimestampBySecond(), - MsgFrom: constant.SysMsgType, - ContentType: constant.AddFriendTip, - SessionType: constant.SingleChatType, - OperationID: req.OperationID, - }) - } - return &pbFriend.CommonResp{}, nil -} - -func (s *friendServer) ImportFriend(ctx context.Context, req *pbFriend.ImportFriendReq) (*pbFriend.ImportFriendResp, error) { - log.Info(req.Token, req.OperationID, "ImportFriend come here,args=%s", req.String()) - var resp pbFriend.ImportFriendResp - var c pbFriend.CommonResp - //Parse token, to find current user information - claims, err := token_verify.ParseToken(req.Token) - if err != nil { - log.NewError(req.OperationID, "parse token failed", err.Error()) - c.ErrorCode = constant.ErrAddFriend.ErrCode - c.ErrorMsg = constant.ErrParseToken.ErrMsg - return &pbFriend.ImportFriendResp{CommonResp: &c, FailedUidList: req.UidList}, nil - } - - if !utils.IsContain(claims.UID, config.Config.Manager.AppManagerUid) { - log.NewError(req.OperationID, "not manager uid", claims.UID) - c.ErrorCode = constant.ErrAddFriend.ErrCode - c.ErrorMsg = "not authorized" - return &pbFriend.ImportFriendResp{CommonResp: &c, FailedUidList: req.UidList}, nil - } - if _, err = im_mysql_model.FindUserByUID(req.OwnerUid); err != nil { - log.NewError(req.OperationID, "this user not exists,cant not add friend", req.OwnerUid) - c.ErrorCode = constant.ErrAddFriend.ErrCode - c.ErrorMsg = "this user not exists,cant not add friend" - return &pbFriend.ImportFriendResp{CommonResp: &c, FailedUidList: req.UidList}, nil - } - for _, v := range req.UidList { - if _, fErr := im_mysql_model.FindUserByUID(v); fErr != nil { - c.ErrorMsg = "some uid establish failed" - c.ErrorCode = 408 - resp.FailedUidList = append(resp.FailedUidList, v) - } else { - if _, err = im_mysql_model.FindFriendRelationshipFromFriend(req.OwnerUid, v); err != nil { - //Establish two single friendship - err1 := im_mysql_model.InsertToFriend(req.OwnerUid, v, 1) - if err1 != nil { - resp.FailedUidList = append(resp.FailedUidList, v) - log.NewError(req.OperationID, "err1,create friendship failed", req.OwnerUid, v, err1.Error()) - } - err2 := im_mysql_model.InsertToFriend(v, req.OwnerUid, 1) - if err2 != nil { - log.NewError(req.OperationID, "err2,create friendship failed", v, req.OwnerUid, err2.Error()) - } - if err1 == nil && err2 == nil { - var name, faceUrl string - n := content_struct.NotificationContent{IsDisplay: 1, DefaultTips: constant.FriendAcceptTip} - r, err := im_mysql_model.FindUserByUID(v) - if err != nil { - log.NewError(req.OperationID, "get info failed", err.Error(), v) - } - if r != nil { - name, faceUrl = r.Name, r.Icon - } - - logic.SendMsgByWS(&pbChat.WSToMsgSvrChatMsg{ - SendID: v, - RecvID: req.OwnerUid, - SenderFaceURL: faceUrl, - SenderNickName: name, - Content: n.ContentToString(), - SendTime: utils.GetCurrentTimestampByNano(), - MsgFrom: constant.UserMsgType, //Notification message identification - ContentType: constant.AcceptFriendApplicationTip, //Add friend flag - SessionType: constant.SingleChatType, - OperationID: req.OperationID, - }) - } else { - c.ErrorMsg = "some uid establish failed" - c.ErrorCode = 408 - resp.FailedUidList = append(resp.FailedUidList, v) - } - } - } - } - resp.CommonResp = &c - log.NewDebug(req.OperationID, "rpc come end", resp.CommonResp.ErrorCode, resp.CommonResp.ErrorMsg, resp.FailedUidList) - return &resp, nil - -} diff --git a/internal/rpc/friend/add_friend_response.go b/internal/rpc/friend/add_friend_response.go deleted file mode 100644 index e1e914ffd..000000000 --- a/internal/rpc/friend/add_friend_response.go +++ /dev/null @@ -1,84 +0,0 @@ -package friend - -import ( - "Open_IM/internal/push/content_struct" - "Open_IM/internal/push/logic" - "Open_IM/pkg/common/constant" - "Open_IM/pkg/common/db/mysql_model/im_mysql_model" - "Open_IM/pkg/common/log" - "Open_IM/pkg/common/token_verify" - pbChat "Open_IM/pkg/proto/chat" - pbFriend "Open_IM/pkg/proto/friend" - "Open_IM/pkg/utils" - "context" -) - -func (s *friendServer) AddFriendResponse(ctx context.Context, req *pbFriend.AddFriendResponseReq) (*pbFriend.CommonResp, error) { - log.Info(req.Token, req.OperationID, "rpc add friend response is server,args=%s", req.String()) - //Parse token, to find current user information - claims, err := token_verify.ParseToken(req.Token) - if err != nil { - log.Error(req.Token, req.OperationID, "err=%s,parse token failed", err.Error()) - return &pbFriend.CommonResp{ErrorCode: constant.ErrParseToken.ErrCode, ErrorMsg: constant.ErrParseToken.ErrMsg}, nil - } - //Check there application before agreeing or refuse to a friend's application - if _, err = im_mysql_model.FindFriendApplyFromFriendReqByUid(req.Uid, claims.UID); err != nil { - log.Error(req.Token, req.OperationID, "No such application record") - return &pbFriend.CommonResp{ErrorCode: constant.ErrAgreeToAddFriend.ErrCode, ErrorMsg: constant.ErrAgreeToAddFriend.ErrMsg}, nil - } - //Change friend request status flag - err = im_mysql_model.UpdateFriendRelationshipToFriendReq(req.Uid, claims.UID, req.Flag) - if err != nil { - log.Error(req.Token, req.OperationID, "err=%s,update friend request table failed", err.Error()) - return &pbFriend.CommonResp{ErrorCode: constant.ErrMysql.ErrCode, ErrorMsg: constant.ErrAgreeToAddFriend.ErrMsg}, nil - } - log.Info(req.Token, req.OperationID, "rpc add friend response success return,userid=%s,flag=%d", req.Uid, req.Flag) - //Change the status of the friend request form - if req.Flag == constant.FriendFlag { - //Establish friendship after find friend relationship not exists - _, err := im_mysql_model.FindFriendRelationshipFromFriend(claims.UID, req.Uid) - //fixme If there is an error, it means that there is no friend record or database err, if no friend record should be inserted,Continue down execution - if err != nil { - log.Error("", req.OperationID, err.Error()) - } - //Establish two single friendship - err = im_mysql_model.InsertToFriend(claims.UID, req.Uid, req.Flag) - if err != nil { - log.Error(req.Token, req.OperationID, "err=%s,create friendship failed", err.Error()) - } - err = im_mysql_model.InsertToFriend(req.Uid, claims.UID, req.Flag) - if err != nil { - log.Error(req.Token, req.OperationID, "err=%s,create friendship failed", err.Error()) - } - //Push message when establish friends successfully - //senderInfo, errSend := im_mysql_model.FindUserByUID(claims.UID) - //if errSend == nil { - // logic.SendMsgByWS(&pbChat.WSToMsgSvrChatMsg{ - // SendID: claims.UID, - // RecvID: req.Uid, - // Content: content_struct.NewContentStructString(1, "", senderInfo.Name+" agreed to add you as a friend."), - // SendTime: utils.GetCurrentTimestampBySecond(), - // MsgFrom: constant.UserMsgType, //Notification message identification - // ContentType: constant.AcceptFriendApplicationTip, //Add friend flag - // SessionType: constant.SingleChatType, - // OperationID: req.OperationID, - // }) - //} - } - if req.Flag == constant.RefuseFriendFlag { - senderInfo, errSend := im_mysql_model.FindUserByUID(claims.UID) - if errSend == nil { - logic.SendMsgByWS(&pbChat.WSToMsgSvrChatMsg{ - SendID: claims.UID, - RecvID: req.Uid, - Content: content_struct.NewContentStructString(0, "", senderInfo.Name+" refuse to add you as a friend."), - SendTime: utils.GetCurrentTimestampBySecond(), - MsgFrom: constant.UserMsgType, //Notification message identification - ContentType: constant.RefuseFriendApplicationTip, //Add friend flag - SessionType: constant.SingleChatType, - OperationID: req.OperationID, - }) - } - } - return &pbFriend.CommonResp{}, nil -} diff --git a/internal/rpc/friend/delete_friend.go b/internal/rpc/friend/delete_friend.go deleted file mode 100644 index b1db00aa7..000000000 --- a/internal/rpc/friend/delete_friend.go +++ /dev/null @@ -1,27 +0,0 @@ -package friend - -import ( - "Open_IM/pkg/common/constant" - "Open_IM/pkg/common/db/mysql_model/im_mysql_model" - "Open_IM/pkg/common/log" - "Open_IM/pkg/common/token_verify" - pbFriend "Open_IM/pkg/proto/friend" - "context" -) - -func (s *friendServer) DeleteFriend(ctx context.Context, req *pbFriend.DeleteFriendReq) (*pbFriend.CommonResp, error) { - log.Info(req.Token, req.OperationID, "rpc delete friend is server,args=%s", req.String()) - //Parse token, to find current user information - claims, err := token_verify.ParseToken(req.Token) - if err != nil { - log.Error(req.Token, req.OperationID, "err=%s,parse token failed", err.Error()) - return &pbFriend.CommonResp{ErrorCode: constant.ErrParseToken.ErrCode, ErrorMsg: constant.ErrParseToken.ErrMsg}, nil - } - err = im_mysql_model.DeleteSingleFriendInfo(claims.UID, req.Uid) - if err != nil { - log.Error(req.Token, req.OperationID, "err=%s,delete friend failed", err.Error()) - return &pbFriend.CommonResp{ErrorCode: constant.ErrMysql.ErrCode, ErrorMsg: constant.ErrMysql.ErrMsg}, nil - } - log.Info(req.Token, req.OperationID, "rpc delete friend success return") - return &pbFriend.CommonResp{}, nil -} diff --git a/internal/rpc/friend/firend.go b/internal/rpc/friend/firend.go new file mode 100644 index 000000000..52f422083 --- /dev/null +++ b/internal/rpc/friend/firend.go @@ -0,0 +1,487 @@ +package friend + +import ( + "Open_IM/internal/rpc/chat" + "Open_IM/pkg/common/config" + "Open_IM/pkg/common/constant" + imdb "Open_IM/pkg/common/db/mysql_model/im_mysql_model" + "Open_IM/pkg/common/log" + "Open_IM/pkg/common/token_verify" + "Open_IM/pkg/grpc-etcdv3/getcdv3" + pbFriend "Open_IM/pkg/proto/friend" + sdk_ws "Open_IM/pkg/proto/sdk_ws" + "Open_IM/pkg/utils" + "context" + "fmt" + "google.golang.org/grpc" + "net" + "strconv" + "strings" +) + +type friendServer struct { + rpcPort int + rpcRegisterName string + etcdSchema string + etcdAddr []string +} + +func NewFriendServer(port int) *friendServer { + log.NewPrivateLog("friend") + return &friendServer{ + rpcPort: port, + rpcRegisterName: config.Config.RpcRegisterName.OpenImFriendName, + etcdSchema: config.Config.Etcd.EtcdSchema, + etcdAddr: config.Config.Etcd.EtcdAddr, + } +} + +func (s *friendServer) Run() { + log.Info("", "", fmt.Sprintf("rpc friend init....")) + + ip := utils.ServerIP + registerAddress := ip + ":" + strconv.Itoa(s.rpcPort) + //listener network + listener, err := net.Listen("tcp", registerAddress) + if err != nil { + log.InfoByArgs(fmt.Sprintf("Failed to listen rpc friend network,err=%s", err.Error())) + return + } + log.Info("", "", "listen network success, address = %s", registerAddress) + defer listener.Close() + //grpc server + srv := grpc.NewServer() + defer srv.GracefulStop() + //User friend related services register to etcd + pbFriend.RegisterFriendServer(srv, s) + err = getcdv3.RegisterEtcd(s.etcdSchema, strings.Join(s.etcdAddr, ","), ip, s.rpcPort, s.rpcRegisterName, 10) + if err != nil { + log.ErrorByArgs("register rpc fiend service to etcd failed,err=%s", err.Error()) + return + } + err = srv.Serve(listener) + if err != nil { + log.ErrorByArgs("listen rpc friend error,err=%s", err.Error()) + return + } +} + +func (s *friendServer) GetFriendsInfo(ctx context.Context, req *pbFriend.GetFriendsInfoReq) (*pbFriend.GetFriendInfoResp, error) { + log.NewInfo(req.CommID.OperationID, "GetFriendsInfo args ", req.String()) + var ( + isInBlackList int32 + // isFriend int32 + comment string + ) + + friendShip, err := imdb.FindFriendRelationshipFromFriend(req.CommID.FromUserID, req.CommID.ToUserID) + if err != nil { + log.NewError(req.CommID.OperationID, "FindFriendRelationshipFromFriend failed ", err.Error()) + return &pbFriend.GetFriendInfoResp{ErrCode: constant.ErrSearchUserInfo.ErrCode, ErrMsg: constant.ErrSearchUserInfo.ErrMsg}, nil + // isFriend = constant.FriendFlag + } + comment = friendShip.Remark + + friendUserInfo, err := imdb.FindUserByUID(req.CommID.ToUserID) + if err != nil { + log.NewError(req.CommID.OperationID, "FindUserByUID failed ", err.Error()) + return &pbFriend.GetFriendInfoResp{ErrCode: constant.ErrSearchUserInfo.ErrCode, ErrMsg: constant.ErrSearchUserInfo.ErrMsg}, nil + } + + err = imdb.FindRelationshipFromBlackList(req.CommID.FromUserID, req.CommID.ToUserID) + if err == nil { + isInBlackList = constant.BlackListFlag + } + + resp := pbFriend.GetFriendInfoResp{ + ErrCode: 0, + ErrMsg: "", + Data: &pbFriend.FriendInfo{ + IsBlack: isInBlackList, + }, + } + utils.CopyStructFields(resp.Data.FriendUser, friendUserInfo) + resp.Data.IsBlack = isInBlackList + resp.Data.OwnerUserID = req.CommID.FromUserID + resp.Data.Remark = comment + resp.Data.CreateTime = friendUserInfo.CreateTime + + log.NewInfo(req.CommID.OperationID, "GetFriendsInfo ok ", resp) + return &resp, nil + +} + +func (s *friendServer) AddBlacklist(ctx context.Context, req *pbFriend.AddBlacklistReq) (*pbFriend.CommonResp, error) { + log.NewInfo(req.CommID.OperationID, "AddBlacklist args ", req.String()) + ok := token_verify.CheckAccess(req.CommID.OpUserID, req.CommID.FromUserID) + if !ok { + log.NewError(req.CommID.OperationID, "CheckAccess failed ", req.CommID.OpUserID, req.CommID.FromUserID) + } + + err := imdb.InsertInToUserBlackList(req.CommID.FromUserID, req.CommID.ToUserID) + if err != nil { + log.NewError(req.CommID.OperationID, "InsertInToUserBlackList failed ", err.Error()) + return &pbFriend.CommonResp{ErrCode: constant.ErrMysql.ErrCode, ErrMsg: constant.ErrMysql.ErrMsg}, nil + } + log.NewInfo(req.CommID.OperationID, "InsertInToUserBlackList ok ", req.CommID.FromUserID, req.CommID.ToUserID) + chat.BlackAddedNotification(req.CommID.OperationID, req.CommID.OpUserID, req.CommID.FromUserID, req.CommID.ToUserID) + return &pbFriend.CommonResp{}, nil + +} + +func (s *friendServer) AddFriend(ctx context.Context, req *pbFriend.AddFriendReq) (*pbFriend.CommonResp, error) { + log.NewInfo(req.CommID.OperationID, "AddFriend args ", req.String()) + ok := token_verify.CheckAccess(req.CommID.OpUserID, req.CommID.FromUserID) + if !ok { + log.NewError(req.CommID.OperationID, "CheckAccess failed ", req.CommID.OpUserID, req.CommID.FromUserID) + } + //Cannot add non-existent users + if _, err := imdb.FindUserByUID(req.CommID.ToUserID); err != nil { + log.NewError(req.CommID.OperationID, "FindUserByUID failed ", err.Error(), req.CommID.ToUserID) + return &pbFriend.CommonResp{ErrCode: constant.ErrAddFriend.ErrCode, ErrMsg: constant.ErrSearchUserInfo.ErrMsg}, nil + } + + //Establish a latest relationship in the friend request table + err := imdb.ReplaceIntoFriendReq(req.CommID.FromUserID, req.CommID.ToUserID, constant.ApplicationFriendFlag, req.ReqMessage) + if err != nil { + log.NewError(req.CommID.OperationID, "ReplaceIntoFriendReq failed ", err.Error()) + return &pbFriend.CommonResp{ErrCode: constant.ErrAddFriend.ErrCode, ErrMsg: constant.ErrAddFriend.ErrMsg}, nil + } + + chat.FriendApplicationAddedNotification(req.CommID.OperationID, req.CommID.OpUserID, req.CommID.FromUserID, req.CommID.ToUserID, req.ReqMessage) + return &pbFriend.CommonResp{}, nil +} + +func (s *friendServer) ImportFriend(ctx context.Context, req *pbFriend.ImportFriendReq) (*pbFriend.ImportFriendResp, error) { + log.NewInfo(req.OperationID, "ImportFriend failed ", req.String()) + var resp pbFriend.ImportFriendResp + var c pbFriend.CommonResp + + if !utils.IsContain(req.OpUserID, config.Config.Manager.AppManagerUid) { + log.NewError(req.OperationID, "not authorized", req.OpUserID) + c.ErrCode = constant.ErrAddFriend.ErrCode + c.ErrMsg = "not authorized" + return &pbFriend.ImportFriendResp{CommonResp: &c, FailedUidList: req.FriendUserIDList}, nil + } + + if _, err := imdb.FindUserByUID(req.FromUserID); err != nil { + log.NewError(req.OperationID, "FindUserByUID failed ", err.Error(), req.FromUserID) + c.ErrCode = constant.ErrAddFriend.ErrCode + c.ErrMsg = "this user not exists,cant not add friend" + return &pbFriend.ImportFriendResp{CommonResp: &c, FailedUidList: req.FriendUserIDList}, nil + } + + for _, v := range req.FriendUserIDList { + if _, fErr := imdb.FindUserByUID(v); fErr != nil { + c.ErrMsg = "some uid establish failed" + c.ErrCode = 408 + resp.FailedUidList = append(resp.FailedUidList, v) + } else { + if _, err := imdb.FindFriendRelationshipFromFriend(req.FromUserID, v); err != nil { + //Establish two single friendship + err1 := imdb.InsertToFriend(req.FromUserID, v, 1) + if err1 != nil { + resp.FailedUidList = append(resp.FailedUidList, v) + log.NewError(req.OperationID, "InsertToFriend failed", req.FromUserID, v, err1.Error()) + c.ErrMsg = "some uid establish failed" + c.ErrCode = 408 + continue + } + err2 := imdb.InsertToFriend(v, req.FromUserID, 1) + if err2 != nil { + resp.FailedUidList = append(resp.FailedUidList, v) + log.NewError(req.OperationID, "InsertToFriend failed", v, req.FromUserID, err2.Error()) + c.ErrMsg = "some uid establish failed" + c.ErrCode = 408 + continue + } + chat.FriendAddedNotification(req.OperationID, req.OpUserID, req.FromUserID, v) + } + } + } + resp.CommonResp = &c + log.NewInfo(req.OperationID, "ImportFriend rpc ok ", resp) + return &resp, nil +} + +func (s *friendServer) AddFriendResponse(ctx context.Context, req *pbFriend.AddFriendResponseReq) (*pbFriend.CommonResp, error) { + log.NewInfo(req.CommID.OperationID, "AddFriendResponse args ", req.String()) + + if !token_verify.CheckAccess(rreq.CommID.FromUserID, req.CommID.ToUserID) { + log.NewError(req.CommID.OperationID, "CheckAccess failed ", req.CommID.FromUserID, req.CommID.ToUserID) + return &pbFriend.CommonResp{ErrCode: constant.ErrAgreeToAddFriend.ErrCode, ErrMsg: constant.ErrAgreeToAddFriend.ErrMsg}, nil + } + + //Check there application before agreeing or refuse to a friend's application + //req.CommID.FromUserID process req.CommID.ToUserID + if _, err := imdb.FindFriendApplyFromFriendReqByUid(req.CommID.ToUserID, req.CommID.FromUserID); err != nil { + log.NewError(req.CommID.OperationID, "FindFriendApplyFromFriendReqByUid failed ", err.Error(), req.CommID.ToUserID, req.CommID.FromUserID) + return &pbFriend.CommonResp{ErrCode: constant.ErrAgreeToAddFriend.ErrCode, ErrMsg: constant.ErrAgreeToAddFriend.ErrMsg}, nil + } + + //Change friend request status flag + err := imdb.UpdateFriendRelationshipToFriendReq(req.CommID.ToUserID, req.CommID.FromUserID, req.Flag) + if err != nil { + log.NewError(req.CommID.OperationID, "UpdateFriendRelationshipToFriendReq failed ", err.Error(), req.CommID.ToUserID, req.CommID.FromUserID, req.Flag) + return &pbFriend.CommonResp{ErrCode: constant.ErrMysql.ErrCode, ErrMsg: constant.ErrAgreeToAddFriend.ErrMsg}, nil + } + log.NewInfo(req.CommID.OperationID, "rpc AddFriendResponse ok") + //Change the status of the friend request form + if req.Flag == constant.FriendFlag { + //Establish friendship after find friend relationship not exists + _, err := imdb.FindFriendRelationshipFromFriend(req.CommID.FromUserID, req.CommID.ToUserID) + if err == nil { + log.NewWarn(req.CommID.OperationID, "FindFriendRelationshipFromFriend exist", req.CommID.FromUserID, req.CommID.ToUserID) + } else { + //Establish two single friendship + err = imdb.InsertToFriend(req.CommID.FromUserID, req.CommID.ToUserID, req.Flag) + if err != nil { + log.NewError(req.CommID.OperationID, "InsertToFriend failed ", err.Error(), req.CommID.FromUserID, req.CommID.ToUserID, req.Flag) + return &pbFriend.CommonResp{ErrCode: constant.ErrAgreeToAddFriend.ErrCode, ErrMsg: constant.ErrAgreeToAddFriend.ErrMsg}, nil + } + } + + _, err = imdb.FindFriendRelationshipFromFriend(req.CommID.ToUserID, req.CommID.FromUserID) + if err == nil { + log.NewWarn(req.CommID.OperationID, "FindFriendRelationshipFromFriend exist", req.CommID.ToUserID, req.CommID.FromUserID) + return &pbFriend.CommonResp{}, nil + } + err = imdb.InsertToFriend(req.CommID.ToUserID, req.CommID.FromUserID, req.Flag) + if err != nil { + log.NewError(req.CommID.OperationID, "InsertToFriend failed ", err.Error(), req.CommID.FromUserID, req.CommID.ToUserID, req.Flag) + return &pbFriend.CommonResp{ErrCode: constant.ErrAgreeToAddFriend.ErrCode, ErrMsg: constant.ErrAgreeToAddFriend.ErrMsg}, nil + } + } + + chat.FriendApplicationProcessedNotification(req.CommID.OperationID, req.CommID.OpUserID, req.CommID.FromUserID, req.CommID.ToUserID, req.Flag) + return &pbFriend.CommonResp{}, nil +} + +func (s *friendServer) DeleteFriend(ctx context.Context, req *pbFriend.DeleteFriendReq) (*pbFriend.CommonResp, error) { + log.NewInfo(req.CommID.OperationID, "DeleteFriend args ", req.String()) + //Parse token, to find current user information + if !token_verify.CheckAccess(req.CommID.OpUserID, req.CommID.FromUserID) { + log.NewError(req.CommID.OperationID, "CheckAccess false ", req.CommID.OpUserID, req.CommID.FromUserID) + return &pbFriend.CommonResp{ErrCode: constant.ErrParseToken.ErrCode, ErrMsg: constant.ErrParseToken.ErrMsg}, nil + } + + err := imdb.DeleteSingleFriendInfo(req.CommID.FromUserID, req.CommID.ToUserID) + if err != nil { + log.NewError(req.CommID.OperationID, "DeleteSingleFriendInfo failed", err.Error(), req.CommID.FromUserID, req.CommID.ToUserID) + return &pbFriend.CommonResp{ErrCode: constant.ErrMysql.ErrCode, ErrMsg: constant.ErrMysql.ErrMsg}, nil + } + log.NewInfo(req.CommID.OperationID, "DeleteFriend rpc ok") + chat.FriendDeletedNotification(req.CommID.OperationID, req.CommID.OpUserID, req.CommID.FromUserID, req.CommID.ToUserID) + return &pbFriend.CommonResp{}, nil +} + +func (s *friendServer) GetBlacklist(ctx context.Context, req *pbFriend.GetBlacklistReq) (*pbFriend.GetBlacklistResp, error) { + log.NewInfo(req.CommID.OperationID, "GetBlacklist args ", req.String()) + + //Parse token, to find current user information + if !token_verify.CheckAccess(req.CommID.OpUserID, req.CommID.FromUserID) { + log.NewError(req.CommID.OperationID, "CheckAccess failed", req.CommID.OpUserID, req.CommID.FromUserID) + return &pbFriend.GetBlacklistResp{ErrCode: constant.ErrParseToken.ErrCode, ErrMsg: constant.ErrParseToken.ErrMsg}, nil + } + + blackListInfo, err := imdb.GetBlackListByUID(req.CommID.FromUserID) + if err != nil { + log.NewError(req.CommID.OperationID, "GetBlackListByUID failed ", err.Error(), req.CommID.FromUserID) + return &pbFriend.GetBlacklistResp{ErrCode: constant.ErrGetBlackList.ErrCode, ErrMsg: constant.ErrGetBlackList.ErrMsg}, nil + } + + var ( + userInfoList []*sdk_ws.PublicUserInfo + ) + for _, blackUser := range blackListInfo { + var blackUserInfo sdk_ws.PublicUserInfo + //Find black user information + us, err := imdb.FindUserByUID(blackUser.BlockUserID) + if err != nil { + log.NewError(req.CommID.OperationID, "FindUserByUID failed ", err.Error(), blackUser.BlockUserID) + continue + } + utils.CopyStructFields(&blackUserInfo, us) + userInfoList = append(userInfoList, &blackUserInfo) + } + log.NewInfo(req.CommID.OperationID, "rpc GetBlacklist ok") + return &pbFriend.GetBlacklistResp{Data: userInfoList}, nil +} + +func (s *friendServer) SetFriendComment(ctx context.Context, req *pbFriend.SetFriendCommentReq) (*pbFriend.CommonResp, error) { + log.NewInfo(req.CommID.OperationID, "SetFriendComment args ", req.String()) + //Parse token, to find current user information + if !token_verify.CheckAccess(req.CommID.OpUserID, req.CommID.FromUserID) { + log.NewError(req.CommID.OperationID, "CheckAccess false", req.CommID.OpUserID, req.CommID.FromUserID) + return &pbFriend.CommonResp{ErrCode: constant.ErrParseToken.ErrCode, ErrMsg: constant.ErrParseToken.ErrMsg}, nil + } + + err := imdb.UpdateFriendComment(req.CommID.FromUserID, req.CommID.OpUserID, req.Remark) + if err != nil { + log.NewError(req.CommID.OperationID, "UpdateFriendComment failed ", err.Error(), req.CommID.FromUserID, req.CommID.OpUserID, req.Remark) + return &pbFriend.CommonResp{ErrCode: constant.ErrSetFriendComment.ErrCode, ErrMsg: constant.ErrSetFriendComment.ErrMsg}, nil + } + log.NewInfo(req.CommID.OperationID, "rpc SetFriendComment ok") + chat.FriendInfoChangedNotification(req.CommID.OperationID, req.CommID.OpUserID, req.CommID.FromUserID, req.CommID.ToUserID) + return &pbFriend.CommonResp{}, nil +} + +func (s *friendServer) RemoveBlacklist(ctx context.Context, req *pbFriend.RemoveBlacklistReq) (*pbFriend.CommonResp, error) { + log.NewInfo(req.CommID.OperationID, "RemoveBlacklist args ", req.String()) + //Parse token, to find current user information + if !token_verify.CheckAccess(req.CommID.OpUserID, req.CommID.FromUserID) { + log.NewError(req.CommID.OperationID, "CheckAccess false", req.CommID.OpUserID, req.CommID.FromUserID) + return &pbFriend.CommonResp{ErrCode: constant.ErrParseToken.ErrCode, ErrMsg: constant.ErrParseToken.ErrMsg}, nil + } + err := imdb.RemoveBlackList(req.CommID.FromUserID, req.CommID.ToUserID) + if err != nil { + log.NewError(req.CommID.OperationID, "RemoveBlackList failed", err.Error(), req.CommID.FromUserID, req.CommID.ToUserID) + return &pbFriend.CommonResp{ErrCode: constant.ErrMysql.ErrCode, ErrMsg: constant.ErrMysql.ErrMsg}, nil + } + log.NewInfo(req.CommID.OperationID, "rpc RemoveBlacklist ok") + chat.BlackDeletedNotification(req.CommID.OperationID, req.CommID.OpUserID, req.CommID.FromUserID, req.CommID.ToUserID) + return &pbFriend.CommonResp{}, nil +} + +func (s *friendServer) IsInBlackList(ctx context.Context, req *pbFriend.IsInBlackListReq) (*pbFriend.IsInBlackListResp, error) { + log.NewInfo("IsInBlackList args ", req.String()) + if !token_verify.CheckAccess(req.CommID.OpUserID, req.CommID.FromUserID) { + log.NewError(req.CommID.OperationID, "CheckAccess false", req.CommID.OpUserID, req.CommID.FromUserID) + return &pbFriend.IsInBlackListResp{ErrCode: constant.ErrParseToken.ErrCode, ErrMsg: constant.ErrParseToken.ErrMsg}, nil + } + + var isInBlacklist = false + err := imdb.FindRelationshipFromBlackList(req.CommID.FromUserID, req.CommID.ToUserID) + if err == nil { + isInBlacklist = true + } + log.NewInfo(req.CommID.OperationID, "IsInBlackList rpc ok") + return &pbFriend.IsInBlackListResp{Response: isInBlacklist}, nil +} + +func (s *friendServer) IsFriend(ctx context.Context, req *pbFriend.IsFriendReq) (*pbFriend.IsFriendResp, error) { + log.NewInfo("IsFriend args ", req.String()) + var isFriend int32 + if !token_verify.CheckAccess(req.CommID.OpUserID, req.CommID.FromUserID) { + log.NewError(req.CommID.OperationID, "CheckAccess false ", req.CommID.OpUserID, req.CommID.FromUserID) + return &pbFriend.IsFriendResp{ErrCode: constant.ErrParseToken.ErrCode, ErrMsg: constant.ErrParseToken.ErrMsg}, nil + } + _, err := imdb.FindFriendRelationshipFromFriend(req.CommID.FromUserID, req.CommID.ToUserID) + if err == nil { + isFriend = constant.FriendFlag + } else { + isFriend = constant.ApplicationFriendFlag + } + log.NewInfo("IsFriend rpc ok") + return &pbFriend.IsFriendResp{ShipType: isFriend}, nil +} + +func (s *friendServer) GetFriendList(ctx context.Context, req *pbFriend.GetFriendListReq) (*pbFriend.GetFriendListResp, error) { + log.NewInfo("GetFriendList args ", req.String()) + var userInfoList []*pbFriend.FriendInfo + //Parse token, to find current user information + if !token_verify.CheckAccess(req.CommID.OpUserID, req.CommID.FromUserID) { + log.NewError(req.CommID.OperationID, "CheckAccess false ", req.CommID.OpUserID, req.CommID.FromUserID) + return &pbFriend.GetFriendListResp{ErrCode: constant.ErrParseToken.ErrCode, ErrMsg: constant.ErrParseToken.ErrMsg}, nil + } + + friends, err := imdb.FindUserInfoFromFriend(req.CommID.FromUserID) + if err != nil { + log.NewError(req.CommID.OperationID, "FindUserInfoFromFriend failed", err.Error(), req.CommID.FromUserID) + return &pbFriend.GetFriendListResp{ErrCode: constant.ErrSearchUserInfo.ErrCode, ErrMsg: constant.ErrSearchUserInfo.ErrMsg}, nil + } + for _, friendUser := range friends { + var friendUserInfo pbFriend.FriendInfo + //find user is in blackList + err = imdb.FindRelationshipFromBlackList(req.CommID.FromUserID, friendUser.FriendUserID) + if err == nil { + friendUserInfo.IsBlack = constant.BlackListFlag + } else { + friendUserInfo.IsBlack = 0 + } + //Find user information + us, err := imdb.FindUserByUID(friendUser.FriendUserID) + if err != nil { + log.NewError(req.CommID.OperationID, "FindUserByUID failed", err.Error(), friendUser.FriendUserID) + continue + } + utils.CopyStructFields(friendUserInfo.FriendUser, us) + friendUserInfo.Remark = friendUser.Remark + friendUserInfo.OwnerUserID = req.CommID.FromUserID + friendUserInfo.CreateTime = friendUser.CreateTime + userInfoList = append(userInfoList, &friendUserInfo) + } + log.NewInfo(req.CommID.OperationID, "rpc GetFriendList ok", pbFriend.GetFriendListResp{Data: userInfoList}) + return &pbFriend.GetFriendListResp{Data: userInfoList}, nil +} + +func (s *friendServer) GetFriendApplyList(ctx context.Context, req *pbFriend.GetFriendApplyReq) (*pbFriend.GetFriendApplyResp, error) { + log.NewInfo(req.CommID.OperationID, "GetFriendApplyList args ", req.String()) + var appleUserList []*pbFriend.ApplyUserInfo + //Parse token, to find current user information + if !token_verify.CheckAccess(req.CommID.OpUserID, req.CommID.FromUserID) { + log.NewError(req.CommID.OperationID, "CheckAccess false ", req.CommID.OpUserID, req.CommID.FromUserID) + return &pbFriend.GetFriendApplyResp{ErrCode: constant.ErrParseToken.ErrCode, ErrMsg: constant.ErrParseToken.ErrMsg}, nil + } + + // Find the current user friend applications received + ApplyUsersInfo, err := imdb.FindFriendsApplyFromFriendReq(req.CommID.FromUserID) + if err != nil { + log.NewError(req.CommID.OperationID, "FindFriendsApplyFromFriendReq ", err.Error(), req.CommID.FromUserID) + return &pbFriend.GetFriendApplyResp{ErrCode: constant.ErrMysql.ErrCode, ErrMsg: constant.ErrMysql.ErrMsg}, nil + } + + for _, applyUserInfo := range ApplyUsersInfo { + var userInfo pbFriend.ApplyUserInfo + //Find friend application status + userInfo.Flag = applyUserInfo.Flag + userInfo.ReqMessage = applyUserInfo.ReqMessage + userInfo.ApplyTime = applyUserInfo.CreateTime + + //Find user information + us, err := imdb.FindUserByUID(applyUserInfo.ReqID) + if err != nil { + log.NewError(req.CommID.OperationID, "FindUserByUID failed ", err.Error(), applyUserInfo.ReqID) + continue + } + utils.CopyStructFields(userInfo.UserInfo, us) + appleUserList = append(appleUserList, &userInfo) + + } + log.NewInfo(req.CommID.OperationID, "rpc GetFriendApplyList ok", pbFriend.GetFriendApplyResp{Data: appleUserList}) + return &pbFriend.GetFriendApplyResp{Data: appleUserList}, nil +} + +func (s *friendServer) GetSelfApplyList(ctx context.Context, req *pbFriend.GetFriendApplyReq) (*pbFriend.GetFriendApplyResp, error) { + log.NewInfo(req.CommID.OperationID, "GetSelfApplyList args ", req.String()) + var selfApplyOtherUserList []*pbFriend.ApplyUserInfo + //Parse token, to find current user information + if !token_verify.CheckAccess(req.CommID.OpUserID, req.CommID.FromUserID) { + log.NewError(req.CommID.OperationID, "CheckAccess false ", req.CommID.OpUserID, req.CommID.FromUserID) + return &pbFriend.GetFriendApplyResp{ErrCode: constant.ErrParseToken.ErrCode, ErrMsg: constant.ErrParseToken.ErrMsg}, nil + } + + // Find the self add other userinfo + usersInfo, err := imdb.FindSelfApplyFromFriendReq(req.CommID.FromUserID) + if err != nil { + log.NewError(req.CommID.OperationID, "FindSelfApplyFromFriendReq failed ", err.Error(), req.CommID.FromUserID) + return &pbFriend.GetFriendApplyResp{ErrCode: constant.ErrMysql.ErrCode, ErrMsg: constant.ErrMysql.ErrMsg}, nil + } + for _, selfApplyOtherUserInfo := range usersInfo { + var userInfo pbFriend.ApplyUserInfo + //Find friend application status + userInfo.Flag = selfApplyOtherUserInfo.Flag + userInfo.ReqMessage = selfApplyOtherUserInfo.ReqMessage + userInfo.ApplyTime = selfApplyOtherUserInfo.CreateTime + //Find user information + us, err := imdb.FindUserByUID(selfApplyOtherUserInfo.UserID) + if err != nil { + log.NewError(req.CommID.OperationID, "FindUserByUID failed", err.Error(), selfApplyOtherUserInfo.UserID) + continue + } + utils.CopyStructFields(userInfo.UserInfo, us) + selfApplyOtherUserList = append(selfApplyOtherUserList, &userInfo) + } + log.NewInfo(req.CommID.OperationID, "rpc GetSelfApplyList ok", pbFriend.GetFriendApplyResp{Data: selfApplyOtherUserList}) + return &pbFriend.GetFriendApplyResp{Data: selfApplyOtherUserList}, nil +} diff --git a/internal/rpc/friend/get_blacklist.go b/internal/rpc/friend/get_blacklist.go deleted file mode 100644 index 503e80da6..000000000 --- a/internal/rpc/friend/get_blacklist.go +++ /dev/null @@ -1,55 +0,0 @@ -package friend - -import ( - "Open_IM/pkg/common/constant" - "Open_IM/pkg/common/db/mysql_model/im_mysql_model" - "Open_IM/pkg/common/log" - "Open_IM/pkg/common/token_verify" - pbFriend "Open_IM/pkg/proto/friend" - "context" -) - -func (s *friendServer) GetBlacklist(ctx context.Context, req *pbFriend.GetBlacklistReq) (*pbFriend.GetBlacklistResp, error) { - log.Info(req.Token, req.OperationID, "rpc get blacklist is server,args=%s", req.String()) - var ( - userInfoList []*pbFriend.UserInfo - comment string - ) - //Parse token, to find current user information - claims, err := token_verify.ParseToken(req.Token) - if err != nil { - log.Error(req.Token, req.OperationID, "err=%s,parse token failed", err.Error()) - return &pbFriend.GetBlacklistResp{ErrorCode: constant.ErrParseToken.ErrCode, ErrorMsg: constant.ErrParseToken.ErrMsg}, nil - } - blackListInfo, err := im_mysql_model.GetBlackListByUID(claims.UID) - if err != nil { - log.Error(req.Token, req.OperationID, "err=%s get blacklist failed", err.Error()) - return &pbFriend.GetBlacklistResp{ErrorCode: constant.ErrGetBlackList.ErrCode, ErrorMsg: constant.ErrGetBlackList.ErrMsg}, nil - } - for _, blackUser := range blackListInfo { - var blackUserInfo pbFriend.UserInfo - //Find black user information - us, err := im_mysql_model.FindUserByUID(blackUser.BlockId) - if err != nil { - log.Error(req.Token, req.OperationID, "err=%s search black list userInfo failed", err.Error()) - continue - } - friendShip, err := im_mysql_model.FindFriendRelationshipFromFriend(claims.UID, blackUser.BlockId) - if err == nil { - comment = friendShip.Comment - } - blackUserInfo.Uid = us.UID - blackUserInfo.Icon = us.Icon - blackUserInfo.Name = us.Name - blackUserInfo.Gender = us.Gender - blackUserInfo.Mobile = us.Mobile - blackUserInfo.Birth = us.Birth - blackUserInfo.Email = us.Email - blackUserInfo.Ex = us.Ex - blackUserInfo.Comment = comment - - userInfoList = append(userInfoList, &blackUserInfo) - } - log.Info(req.Token, req.OperationID, "rpc get blacklist success return") - return &pbFriend.GetBlacklistResp{Data: userInfoList}, nil -} diff --git a/internal/rpc/friend/get_firends_info.go b/internal/rpc/friend/get_firends_info.go deleted file mode 100644 index d103889bc..000000000 --- a/internal/rpc/friend/get_firends_info.go +++ /dev/null @@ -1,113 +0,0 @@ -package friend - -import ( - "Open_IM/pkg/common/config" - "Open_IM/pkg/common/constant" - "Open_IM/pkg/common/db/mysql_model/im_mysql_model" - "Open_IM/pkg/common/log" - "Open_IM/pkg/common/token_verify" - "Open_IM/pkg/grpc-etcdv3/getcdv3" - pbFriend "Open_IM/pkg/proto/friend" - "Open_IM/pkg/utils" - "context" - "fmt" - "google.golang.org/grpc" - "net" - "strconv" - "strings" -) - -type friendServer struct { - rpcPort int - rpcRegisterName string - etcdSchema string - etcdAddr []string -} - -func NewFriendServer(port int) *friendServer { - log.NewPrivateLog("friend") - return &friendServer{ - rpcPort: port, - rpcRegisterName: config.Config.RpcRegisterName.OpenImFriendName, - etcdSchema: config.Config.Etcd.EtcdSchema, - etcdAddr: config.Config.Etcd.EtcdAddr, - } -} - -func (s *friendServer) Run() { - log.Info("", "", fmt.Sprintf("rpc friend init....")) - - ip := utils.ServerIP - registerAddress := ip + ":" + strconv.Itoa(s.rpcPort) - //listener network - listener, err := net.Listen("tcp", registerAddress) - if err != nil { - log.InfoByArgs(fmt.Sprintf("Failed to listen rpc friend network,err=%s", err.Error())) - return - } - log.Info("", "", "listen network success, address = %s", registerAddress) - defer listener.Close() - //grpc server - srv := grpc.NewServer() - defer srv.GracefulStop() - //User friend related services register to etcd - pbFriend.RegisterFriendServer(srv, s) - err = getcdv3.RegisterEtcd(s.etcdSchema, strings.Join(s.etcdAddr, ","), ip, s.rpcPort, s.rpcRegisterName, 10) - if err != nil { - log.ErrorByArgs("register rpc fiend service to etcd failed,err=%s", err.Error()) - return - } - err = srv.Serve(listener) - if err != nil { - log.ErrorByArgs("listen rpc friend error,err=%s", err.Error()) - return - } -} - -func (s *friendServer) GetFriendsInfo(ctx context.Context, req *pbFriend.GetFriendsInfoReq) (*pbFriend.GetFriendInfoResp, error) { - log.Info(req.Token, req.OperationID, "rpc search user is server,args=%s", req.String()) - var ( - isInBlackList int32 - isFriend int32 - comment string - ) - //Parse token, to find current user information - claims, err := token_verify.ParseToken(req.Token) - if err != nil { - log.Error(req.Token, req.OperationID, "err=%s,parse token failed", err.Error()) - return &pbFriend.GetFriendInfoResp{ErrorCode: constant.ErrParseToken.ErrCode, ErrorMsg: constant.ErrParseToken.ErrMsg}, nil - } - friendShip, err := im_mysql_model.FindFriendRelationshipFromFriend(claims.UID, req.Uid) - if err == nil { - isFriend = constant.FriendFlag - comment = friendShip.Comment - } - friendUserInfo, err := im_mysql_model.FindUserByUID(req.Uid) - if err != nil { - log.Error(req.Token, req.OperationID, "err=%s,no this user", err.Error()) - return &pbFriend.GetFriendInfoResp{ErrorCode: constant.ErrSearchUserInfo.ErrCode, ErrorMsg: constant.ErrSearchUserInfo.ErrMsg}, nil - } - err = im_mysql_model.FindRelationshipFromBlackList(claims.UID, req.Uid) - if err == nil { - isInBlackList = constant.BlackListFlag - } - log.Info(req.Token, req.OperationID, "rpc search friend success return") - return &pbFriend.GetFriendInfoResp{ - ErrorCode: 0, - ErrorMsg: "", - Data: &pbFriend.GetFriendData{ - Uid: friendUserInfo.UID, - Icon: friendUserInfo.Icon, - Name: friendUserInfo.Name, - Gender: friendUserInfo.Gender, - Mobile: friendUserInfo.Mobile, - Birth: friendUserInfo.Birth, - Email: friendUserInfo.Email, - Ex: friendUserInfo.Ex, - Comment: comment, - IsFriend: isFriend, - IsInBlackList: isInBlackList, - }, - }, nil - -} diff --git a/internal/rpc/friend/get_friend_apply_list.go b/internal/rpc/friend/get_friend_apply_list.go deleted file mode 100644 index 6542d9097..000000000 --- a/internal/rpc/friend/get_friend_apply_list.go +++ /dev/null @@ -1,95 +0,0 @@ -package friend - -import ( - "Open_IM/pkg/common/constant" - "Open_IM/pkg/common/db/mysql_model/im_mysql_model" - "Open_IM/pkg/common/log" - "Open_IM/pkg/common/token_verify" - pbFriend "Open_IM/pkg/proto/friend" - "context" - "fmt" - "strconv" -) - -func (s *friendServer) GetFriendApplyList(ctx context.Context, req *pbFriend.GetFriendApplyReq) (*pbFriend.GetFriendApplyResp, error) { - log.Info(req.Token, req.OperationID, "rpc get friend apply list is server,args=%s", req.String()) - var appleUserList []*pbFriend.ApplyUserInfo - //Parse token, to find current user information - claims, err := token_verify.ParseToken(req.Token) - if err != nil { - log.Error(req.Token, req.OperationID, "err=%s,parse token failed", err.Error()) - return &pbFriend.GetFriendApplyResp{ErrorCode: constant.ErrParseToken.ErrCode, ErrorMsg: constant.ErrParseToken.ErrMsg}, nil - } - // Find the current user friend applications received - ApplyUsersInfo, err := im_mysql_model.FindFriendsApplyFromFriendReq(claims.UID) - if err != nil { - log.Error(req.Token, req.OperationID, "err=%s,search applyInfo failed", err.Error()) - return &pbFriend.GetFriendApplyResp{ErrorCode: constant.ErrMysql.ErrCode, ErrorMsg: constant.ErrMysql.ErrMsg}, nil - } - for _, applyUserInfo := range ApplyUsersInfo { - var userInfo pbFriend.ApplyUserInfo - //Find friend application status - userInfo.Flag = applyUserInfo.Flag - userInfo.ReqMessage = applyUserInfo.ReqMessage - userInfo.ApplyTime = strconv.FormatInt(applyUserInfo.CreateTime.Unix(), 10) - //Find user information - us, err := im_mysql_model.FindUserByUID(applyUserInfo.ReqId) - if err != nil { - log.Error(req.Token, req.OperationID, "err=%s,search userInfo failed", err.Error()) - continue - } - userInfo.Uid = us.UID - userInfo.Icon = us.Icon - userInfo.Name = us.Name - userInfo.Gender = us.Gender - userInfo.Mobile = us.Mobile - userInfo.Birth = us.Birth - userInfo.Email = us.Email - userInfo.Ex = us.Ex - appleUserList = append(appleUserList, &userInfo) - - } - log.Info(req.Token, req.OperationID, fmt.Sprintf("rpc get friendapplylist success return")) - return &pbFriend.GetFriendApplyResp{Data: appleUserList}, nil -} - -func (s *friendServer) GetSelfApplyList(ctx context.Context, req *pbFriend.GetFriendApplyReq) (*pbFriend.GetFriendApplyResp, error) { - log.Info(req.Token, req.OperationID, "rpc get self apply list is server,args=%s", req.String()) - var selfApplyOtherUserList []*pbFriend.ApplyUserInfo - //Parse token, to find current user information - claims, err := token_verify.ParseToken(req.Token) - if err != nil { - log.Error(req.Token, req.OperationID, "err=%s,parse token failed", err.Error()) - return &pbFriend.GetFriendApplyResp{ErrorCode: constant.ErrParseToken.ErrCode, ErrorMsg: constant.ErrParseToken.ErrMsg}, nil - } - // Find the self add other userinfo - usersInfo, err := im_mysql_model.FindSelfApplyFromFriendReq(claims.UID) - if err != nil { - log.Error(req.Token, req.OperationID, "err=%s,search self to other user Info failed", err.Error()) - return &pbFriend.GetFriendApplyResp{ErrorCode: constant.ErrMysql.ErrCode, ErrorMsg: constant.ErrMysql.ErrMsg}, nil - } - for _, selfApplyOtherUserInfo := range usersInfo { - var userInfo pbFriend.ApplyUserInfo - //Find friend application status - userInfo.Flag = selfApplyOtherUserInfo.Flag - userInfo.ReqMessage = selfApplyOtherUserInfo.ReqMessage - userInfo.ApplyTime = strconv.FormatInt(selfApplyOtherUserInfo.CreateTime.Unix(), 10) - //Find user information - us, err := im_mysql_model.FindUserByUID(selfApplyOtherUserInfo.Uid) - if err != nil { - log.Error(req.Token, req.OperationID, "err=%s,search userInfo failed", err.Error()) - continue - } - userInfo.Uid = us.UID - userInfo.Icon = us.Icon - userInfo.Name = us.Name - userInfo.Gender = us.Gender - userInfo.Mobile = us.Mobile - userInfo.Birth = us.Birth - userInfo.Email = us.Email - userInfo.Ex = us.Ex - selfApplyOtherUserList = append(selfApplyOtherUserList, &userInfo) - } - log.Info(req.Token, req.OperationID, fmt.Sprintf("rpc get self apply list success return")) - return &pbFriend.GetFriendApplyResp{Data: selfApplyOtherUserList}, nil -} diff --git a/internal/rpc/friend/get_friend_list.go b/internal/rpc/friend/get_friend_list.go deleted file mode 100644 index ff3e521ee..000000000 --- a/internal/rpc/friend/get_friend_list.go +++ /dev/null @@ -1,57 +0,0 @@ -package friend - -import ( - "Open_IM/pkg/common/constant" - "Open_IM/pkg/common/db/mysql_model/im_mysql_model" - "Open_IM/pkg/common/log" - "Open_IM/pkg/common/token_verify" - pbFriend "Open_IM/pkg/proto/friend" - "context" -) - -func (s *friendServer) GetFriendList(ctx context.Context, req *pbFriend.GetFriendListReq) (*pbFriend.GetFriendListResp, error) { - log.Info(req.Token, req.OperationID, "rpc get friend list is server,args=%s", req.String()) - var userInfoList []*pbFriend.UserInfo - //Parse token, to find current user information - claims, err := token_verify.ParseToken(req.Token) - if err != nil { - log.Error(req.Token, req.OperationID, "err=%s,parse token failed", err.Error()) - return &pbFriend.GetFriendListResp{ErrorCode: constant.ErrParseToken.ErrCode, ErrorMsg: constant.ErrParseToken.ErrMsg}, nil - } - friends, err := im_mysql_model.FindUserInfoFromFriend(claims.UID) - if err != nil { - log.Error(req.Token, req.OperationID, "err=%s search friendInfo failed", err.Error()) - return &pbFriend.GetFriendListResp{ErrorCode: constant.ErrSearchUserInfo.ErrCode, ErrorMsg: constant.ErrSearchUserInfo.ErrMsg}, nil - } - for _, friendUser := range friends { - var friendUserInfo pbFriend.UserInfo - - //find user is in blackList - err = im_mysql_model.FindRelationshipFromBlackList(claims.UID, friendUser.FriendId) - if err == nil { - friendUserInfo.IsInBlackList = constant.BlackListFlag - } else { - friendUserInfo.IsInBlackList = 0 - } - //Find user information - us, err := im_mysql_model.FindUserByUID(friendUser.FriendId) - if err != nil { - log.Error(req.Token, req.OperationID, "err=%s search userInfo failed", err.Error()) - continue - } - friendUserInfo.Uid = friendUser.FriendId - friendUserInfo.Comment = friendUser.Comment - friendUserInfo.Icon = us.Icon - friendUserInfo.Name = us.Name - friendUserInfo.Gender = us.Gender - friendUserInfo.Mobile = us.Mobile - friendUserInfo.Birth = us.Birth - friendUserInfo.Email = us.Email - friendUserInfo.Ex = us.Ex - - userInfoList = append(userInfoList, &friendUserInfo) - - } - log.Info(req.Token, req.OperationID, "rpc get friend list success return") - return &pbFriend.GetFriendListResp{Data: userInfoList}, nil -} diff --git a/internal/rpc/friend/is_friend.go b/internal/rpc/friend/is_friend.go deleted file mode 100644 index d8739b81f..000000000 --- a/internal/rpc/friend/is_friend.go +++ /dev/null @@ -1,29 +0,0 @@ -package friend - -import ( - "Open_IM/pkg/common/constant" - "Open_IM/pkg/common/db/mysql_model/im_mysql_model" - "Open_IM/pkg/common/log" - "Open_IM/pkg/common/token_verify" - pbFriend "Open_IM/pkg/proto/friend" - "context" - "fmt" -) - -func (s *friendServer) IsFriend(ctx context.Context, req *pbFriend.IsFriendReq) (*pbFriend.IsFriendResp, error) { - log.InfoByArgs("rpc is friend is server,args=%s", req.String()) - var isFriend int32 - claims, err := token_verify.ParseToken(req.Token) - if err != nil { - log.Error(req.Token, req.OperationID, "err=%s,parse token failed", err.Error()) - return &pbFriend.IsFriendResp{ErrorCode: constant.ErrParseToken.ErrCode, ErrorMsg: constant.ErrParseToken.ErrMsg}, nil - } - _, err = im_mysql_model.FindFriendRelationshipFromFriend(claims.UID, req.ReceiveUid) - if err == nil { - isFriend = constant.FriendFlag - } else { - isFriend = constant.ApplicationFriendFlag - } - log.InfoByArgs(fmt.Sprintf("rpc is friend success return")) - return &pbFriend.IsFriendResp{ShipType: isFriend}, nil -} diff --git a/internal/rpc/friend/is_in_blacklist.go b/internal/rpc/friend/is_in_blacklist.go deleted file mode 100644 index 6275f5300..000000000 --- a/internal/rpc/friend/is_in_blacklist.go +++ /dev/null @@ -1,20 +0,0 @@ -package friend - -import ( - "Open_IM/pkg/common/db/mysql_model/im_mysql_model" - "Open_IM/pkg/common/log" - pbFriend "Open_IM/pkg/proto/friend" - "context" - "fmt" -) - -func (s *friendServer) IsInBlackList(ctx context.Context, req *pbFriend.IsInBlackListReq) (*pbFriend.IsInBlackListResp, error) { - log.InfoByArgs("rpc is in blacklist is server,args=%s", req.String()) - var isInBlacklist = false - err := im_mysql_model.FindRelationshipFromBlackList(req.ReceiveUid, req.SendUid) - if err == nil { - isInBlacklist = true - } - log.InfoByArgs(fmt.Sprintf("rpc is in blackList success return")) - return &pbFriend.IsInBlackListResp{Response: isInBlacklist}, nil -} diff --git a/internal/rpc/friend/remove_blacklist.go b/internal/rpc/friend/remove_blacklist.go deleted file mode 100644 index f96cbf9b4..000000000 --- a/internal/rpc/friend/remove_blacklist.go +++ /dev/null @@ -1,27 +0,0 @@ -package friend - -import ( - "Open_IM/pkg/common/constant" - "Open_IM/pkg/common/db/mysql_model/im_mysql_model" - "Open_IM/pkg/common/log" - "Open_IM/pkg/common/token_verify" - pbFriend "Open_IM/pkg/proto/friend" - "context" -) - -func (s *friendServer) RemoveBlacklist(ctx context.Context, req *pbFriend.RemoveBlacklistReq) (*pbFriend.CommonResp, error) { - log.Info(req.Token, req.OperationID, "rpc remove blacklist is server,userid=%s", req.Uid) - //Parse token, to find current user information - claims, err := token_verify.ParseToken(req.Token) - if err != nil { - log.Error(req.Token, req.OperationID, "err=%s,parse token failed", err.Error()) - return &pbFriend.CommonResp{ErrorCode: constant.ErrParseToken.ErrCode, ErrorMsg: constant.ErrParseToken.ErrMsg}, nil - } - err = im_mysql_model.RemoveBlackList(claims.UID, req.Uid) - if err != nil { - log.Error(req.Token, req.OperationID, "err=%s,remove blacklist failed", err.Error()) - return &pbFriend.CommonResp{ErrorCode: constant.ErrMysql.ErrCode, ErrorMsg: constant.ErrMysql.ErrMsg}, nil - } - log.Info(req.Token, req.OperationID, "rpc remove blacklist success return,userid=%s", req.Uid) - return &pbFriend.CommonResp{}, nil -} diff --git a/internal/rpc/friend/set_friend_comment.go b/internal/rpc/friend/set_friend_comment.go deleted file mode 100644 index 8ddfe1fb9..000000000 --- a/internal/rpc/friend/set_friend_comment.go +++ /dev/null @@ -1,27 +0,0 @@ -package friend - -import ( - "Open_IM/pkg/common/constant" - "Open_IM/pkg/common/db/mysql_model/im_mysql_model" - "Open_IM/pkg/common/log" - "Open_IM/pkg/common/token_verify" - pbFriend "Open_IM/pkg/proto/friend" - "context" -) - -func (s *friendServer) SetFriendComment(ctx context.Context, req *pbFriend.SetFriendCommentReq) (*pbFriend.CommonResp, error) { - log.Info(req.Token, req.OperationID, "rpc set friend comment is server,params=%s", req.String()) - //Parse token, to find current user information - claims, err := token_verify.ParseToken(req.Token) - if err != nil { - log.Error(req.Token, req.OperationID, "err=%s,parse token failed", err.Error()) - return &pbFriend.CommonResp{ErrorCode: constant.ErrParseToken.ErrCode, ErrorMsg: constant.ErrParseToken.ErrMsg}, nil - } - err = im_mysql_model.UpdateFriendComment(claims.UID, req.Uid, req.Comment) - if err != nil { - log.Error(req.Token, req.OperationID, "set friend comment failed,err=%s", err.Error()) - return &pbFriend.CommonResp{ErrorCode: constant.ErrSetFriendComment.ErrCode, ErrorMsg: constant.ErrSetFriendComment.ErrMsg}, nil - } - log.Info(req.Token, req.OperationID, "rpc set friend comment is success return") - return &pbFriend.CommonResp{}, nil -} diff --git a/internal/rpc/group/group.go b/internal/rpc/group/group.go index bd8d3dd86..6d85ccf83 100644 --- a/internal/rpc/group/group.go +++ b/internal/rpc/group/group.go @@ -11,6 +11,7 @@ import ( "Open_IM/pkg/common/token_verify" "Open_IM/pkg/grpc-etcdv3/getcdv3" pbGroup "Open_IM/pkg/proto/group" + "Open_IM/pkg/proto/sdk_ws" "Open_IM/pkg/utils" "context" "encoding/json" @@ -70,165 +71,142 @@ func (s *groupServer) Run() { } func (s *groupServer) CreateGroup(ctx context.Context, req *pbGroup.CreateGroupReq) (*pbGroup.CreateGroupResp, error) { - log.NewInfo(req.OperationID, "CreateGroup, args=%s", req.String()) - var ( - groupId string - ) - //Parse token, to find current user information - claims, err := token_verify.ParseToken(req.Token) - if err != nil { - log.NewError(req.OperationID, "ParseToken failed, ", err.Error(), req.String()) + log.NewInfo(req.OperationID, "CreateGroup, args ", req.String()) + if !token_verify.CheckAccess(req.OpUserID, req.FromUserID) { + log.NewError(req.OperationID, "CheckAccess false ", req.OpUserID, req.FromUserID) return &pbGroup.CreateGroupResp{ErrCode: constant.ErrParseToken.ErrCode, ErrMsg: constant.ErrParseToken.ErrMsg}, nil } //Time stamp + MD5 to generate group chat id - groupId = utils.Md5(strconv.FormatInt(time.Now().UnixNano(), 10)) - err = im_mysql_model.InsertIntoGroup(groupId, req.GroupName, req.Introduction, req.Notification, req.FaceUrl, req.Ext) + groupId := utils.Md5(strconv.FormatInt(time.Now().UnixNano(), 10)) + err := im_mysql_model.InsertIntoGroup(groupId, req.GroupName, req.Introduction, req.Notification, req.FaceUrl, req.Ext) if err != nil { - log.NewError(req.OperationID, "InsertIntoGroup failed, ", err.Error(), req.String()) + log.NewError(req.OperationID, "InsertIntoGroup failed, ", err.Error(), groupId, req.GroupName, req.Introduction, req.Notification, req.FaceUrl, req.Ext) return &pbGroup.CreateGroupResp{ErrCode: constant.ErrCreateGroup.ErrCode, ErrMsg: constant.ErrCreateGroup.ErrMsg}, nil } - isManagerFlag := 0 - tokenUid := claims.UID - - if utils.IsContain(tokenUid, config.Config.Manager.AppManagerUid) { - isManagerFlag = 1 + us, err := im_mysql_model.FindUserByUID(req.FromUserID) + if err != nil { + log.NewError(req.OperationID, "FindUserByUID failed ", err.Error(), req.FromUserID) + return &pbGroup.CreateGroupResp{ErrCode: constant.ErrCreateGroup.ErrCode, ErrMsg: constant.ErrCreateGroup.ErrMsg}, nil } - us, err := im_mysql_model.FindUserByUID(claims.UID) + //Add the group owner to the group first, otherwise the group creation will fail + err = im_mysql_model.InsertIntoGroupMember(groupId, us.UserID, us.Nickname, us.FaceUrl, constant.GroupOwner) if err != nil { - log.Error("", req.OperationID, "find userInfo failed", err.Error()) + log.NewError(req.OperationID, "InsertIntoGroupMember failed ", err.Error()) return &pbGroup.CreateGroupResp{ErrCode: constant.ErrCreateGroup.ErrCode, ErrMsg: constant.ErrCreateGroup.ErrMsg}, nil } - if isManagerFlag == 0 { - //Add the group owner to the group first, otherwise the group creation will fail - err = im_mysql_model.InsertIntoGroupMember(groupId, claims.UID, us.Nickname, us.FaceUrl, constant.GroupOwner) - if err != nil { - log.Error("", req.OperationID, "create group chat failed,err=%s", err.Error()) - return &pbGroup.CreateGroupResp{ErrCode: constant.ErrCreateGroup.ErrCode, ErrMsg: constant.ErrCreateGroup.ErrMsg}, nil - } - - err = db.DB.AddGroupMember(groupId, claims.UID) - if err != nil { - log.NewError(req.OperationID, "AddGroupMember failed ", err.Error(), groupId, claims.UID) - return &pbGroup.CreateGroupResp{ErrCode: constant.ErrCreateGroup.ErrCode, ErrMsg: constant.ErrCreateGroup.ErrMsg}, nil - } + err = db.DB.AddGroupMember(groupId, req.FromUserID) + if err != nil { + log.NewError(req.OperationID, "AddGroupMember failed ", err.Error(), groupId, req.FromUserID) + // return &pbGroup.CreateGroupResp{ErrCode: constant.ErrCreateGroup.ErrCode, ErrMsg: constant.ErrCreateGroup.ErrMsg}, nil } //Binding group id and member id - for _, user := range req.MemberList { - us, err := im_mysql_model.FindUserByUID(user.Uid) + for _, user := range req.InitMemberList { + us, err := im_mysql_model.FindUserByUID(user.UserID) if err != nil { - log.NewError(req.OperationID, "FindUserByUID failed ", err.Error(), user.Uid) + log.NewError(req.OperationID, "FindUserByUID failed ", err.Error(), user.UserID) continue } - err = im_mysql_model.InsertIntoGroupMember(groupId, user.Uid, us.Nickname, us.FaceUrl, user.SetRole) + if user.Role == 1 { + log.NewError(req.OperationID, "only one owner, failed ", user) + continue + } + err = im_mysql_model.InsertIntoGroupMember(groupId, user.UserID, us.Nickname, us.FaceUrl, user.Role) if err != nil { - log.ErrorByArgs("InsertIntoGroupMember failed", user.Uid, groupId, err.Error()) + log.NewError(req.OperationID, "InsertIntoGroupMember failed ", groupId, user.UserID, us.Nickname, us.FaceUrl, user.Role) } - err = db.DB.AddGroupMember(groupId, user.Uid) + err = db.DB.AddGroupMember(groupId, user.UserID) if err != nil { - log.Error("", "", "add mongo group member failed, db.DB.AddGroupMember fail [err: %s]", err.Error()) + log.NewError(req.OperationID, "add mongo group member failed, db.DB.AddGroupMember failed ", err.Error()) } } + resp := &pbGroup.CreateGroupResp{} - if isManagerFlag == 1 { - - } group, err := im_mysql_model.FindGroupInfoByGroupId(groupId) if err != nil { log.NewError(req.OperationID, "FindGroupInfoByGroupId failed ", err.Error(), groupId) - return &pbGroup.CreateGroupResp{GroupID: groupId}, nil - } - memberList, err := im_mysql_model.FindGroupMemberListByGroupId(groupId) - if err != nil { - log.NewError(req.OperationID, "FindGroupMemberListByGroupId failed ", err.Error(), groupId) - return &pbGroup.CreateGroupResp{GroupID: groupId}, nil - } - chat.GroupCreatedNotification(req.OperationID, us, group, memberList) - log.NewInfo(req.OperationID, "GroupCreatedNotification, rpc CreateGroup success return ", groupId) - - return &pbGroup.CreateGroupResp{GroupID: groupId}, nil + resp.ErrCode = constant.ErrCreateGroup.ErrCode + resp.ErrMsg = constant.ErrCreateGroup.ErrMsg + return resp, nil + } + chat.GroupCreatedNotification(req) + utils.CopyStructFields(resp.GroupInfo, group) + log.NewInfo(req.OperationID, "rpc CreateGroup return ", resp.String()) + return resp, nil } func (s *groupServer) GetJoinedGroupList(ctx context.Context, req *pbGroup.GetJoinedGroupListReq) (*pbGroup.GetJoinedGroupListResp, error) { - claims, err := token_verify.ParseToken(req.Token) - if err != nil { - log.Error(req.Token, req.OperationID, "err=%s,parse token failed", err.Error()) - return &pbGroup.GetJoinedGroupListResp{ErrCode: constant.ErrParseToken.ErrCode, ErrorMsg: constant.ErrParseToken.ErrMsg}, nil + log.NewInfo(req.OperationID, "GetJoinedGroupList, args ", req.String()) + if !token_verify.CheckAccess(req.OpUserID, req.FromUserID) { + log.NewError(req.OperationID, "CheckAccess false ", req.OpUserID, req.FromUserID) + return &pbGroup.GetJoinedGroupListResp{ErrCode: constant.ErrParseToken.ErrCode, ErrMsg: constant.ErrParseToken.ErrMsg}, nil } - log.Info(claims.UID, req.OperationID, "recv req: ", req.String()) - joinedGroupList, err := imdb.GetJoinedGroupIdListByMemberId(claims.UID) + joinedGroupList, err := imdb.GetJoinedGroupIdListByMemberId(req.FromUserID) if err != nil { - log.Error(claims.UID, req.OperationID, "GetJoinedGroupIdListByMemberId failed, err: ", err.Error()) - return &pbGroup.GetJoinedGroupListResp{ErrCode: constant.ErrParam.ErrCode, ErrorMsg: constant.ErrParam.ErrMsg}, nil + log.NewError(req.OperationID, "GetJoinedGroupIdListByMemberId failed ", err.Error(), req.FromUserID) + return &pbGroup.GetJoinedGroupListResp{ErrCode: constant.ErrParam.ErrCode, ErrMsg: constant.ErrParam.ErrMsg}, nil } var resp pbGroup.GetJoinedGroupListResp for _, v := range joinedGroupList { - var groupNode pbGroup.GroupInfo + var groupNode open_im_sdk.GroupInfo num := imdb.GetGroupMemberNumByGroupId(v.GroupID) - owner := imdb.GetGroupOwnerByGroupId(v.GroupID) + owner, err2 := imdb.GetGroupOwnerInfoByGroupId(v.GroupID) group, err := imdb.FindGroupInfoByGroupId(v.GroupID) - if num > 0 && owner != "" && err == nil { - groupNode.GroupId = v.GroupID - groupNode.FaceUrl = group.FaceUrl - groupNode.CreateTime = uint64(group.CreateTime.Unix()) - groupNode.GroupName = group.GroupName - groupNode.Introduction = group.Introduction - groupNode.Notification = group.Notification - groupNode.OwnerId = owner - groupNode.MemberCount = uint32(int32(num)) + if num > 0 && owner != nil && err2 == nil && group != nil && err == nil { + utils.CopyStructFields(&groupNode, group) + utils.CopyStructFields(groupNode.Owner, owner) + groupNode.MemberCount = uint32(num) resp.GroupList = append(resp.GroupList, &groupNode) + } else { + log.NewError(req.OperationID, "check nil ", num, owner, err, group) + continue } - log.Info(claims.UID, req.OperationID, "member num: ", num, "owner: ", owner) + log.NewDebug(req.OperationID, "joinedGroup ", groupNode) } resp.ErrCode = 0 + log.NewInfo(req.OperationID, "GetJoinedGroupList return ", resp.String()) return &resp, nil } func (s *groupServer) InviteUserToGroup(ctx context.Context, req *pbGroup.InviteUserToGroupReq) (*pbGroup.InviteUserToGroupResp, error) { - log.NewInfo(req.OperationID, "InviteUserToGroup args: ", req.String()) + log.NewInfo(req.OperationID, "InviteUserToGroup args ", req.String()) + if !imdb.IsExistGroupMember(req.GroupID, req.OpUserID) && !utils.IsContain(req.OpUserID, config.Config.Manager.AppManagerUid) { - log.NewError(req.OperationID, "no permission InviteUserToGroup ", req.GroupID) + log.NewError(req.OperationID, "no permission InviteUserToGroup ", req.GroupID, req.OpUserID) return &pbGroup.InviteUserToGroupResp{ErrCode: constant.ErrAccess.ErrCode, ErrMsg: constant.ErrAccess.ErrMsg}, nil } groupInfoFromMysql, err := imdb.FindGroupInfoByGroupId(req.GroupID) if err != nil || groupInfoFromMysql == nil { - log.NewError(req.OperationID, "FindGroupInfoByGroupId failed", req.GroupID) + log.NewError(req.OperationID, "FindGroupInfoByGroupId failed ", req.GroupID, err) return &pbGroup.InviteUserToGroupResp{ErrCode: constant.ErrAccess.ErrCode, ErrMsg: constant.ErrAccess.ErrMsg}, nil } - // //from User: invite: applicant //to user: invite: invited - //to application var resp pbGroup.InviteUserToGroupResp - opUser, err := imdb.FindUserByUID(req.OpUserID) - if err != nil { - log.NewError(req.OperationID, "FindUserByUID failed ", err.Error(), req.OpUserID) - } - var nicknameList string - for _, v := range req.UidList { + for _, v := range req.InvitedUserIDList { var resultNode pbGroup.Id2Result - resultNode.UId = v + resultNode.UserID = v resultNode.Result = 0 toUserInfo, err := imdb.FindUserByUID(v) if err != nil { - log.NewError(req.OperationID, "FindUserByUID failed ", err.Error()) + log.NewError(req.OperationID, "FindUserByUID failed ", err.Error(), v) resultNode.Result = -1 - resp.Id2Result = append(resp.Id2Result, &resultNode) + resp.Id2ResultList = append(resp.Id2ResultList, &resultNode) continue } if imdb.IsExistGroupMember(req.GroupID, v) { - log.NewError(req.OperationID, "ExistGroupMember failed ", req.GroupID, v) + log.NewError(req.OperationID, "IsExistGroupMember ", req.GroupID, v) resultNode.Result = -1 - resp.Id2Result = append(resp.Id2Result, &resultNode) + resp.Id2ResultList = append(resp.Id2ResultList, &resultNode) continue } @@ -236,91 +214,69 @@ func (s *groupServer) InviteUserToGroup(ctx context.Context, req *pbGroup.Invite if err != nil { log.NewError(req.OperationID, "InsertGroupMember failed ", req.GroupID, toUserInfo.UserID, toUserInfo.Nickname, toUserInfo.FaceUrl) resultNode.Result = -1 - resp.Id2Result = append(resp.Id2Result, &resultNode) + resp.Id2ResultList = append(resp.Id2ResultList, &resultNode) continue } - member, err := imdb.GetMemberInfoById(req.GroupID, v) - if groupInfoFromMysql != nil && opUser != nil && member != nil { - chat.MemberInvitedNotification(req.OperationID, *groupInfoFromMysql, *opUser, *member) - } else { - log.NewError(req.OperationID, "args failed, nil ", groupInfoFromMysql, opUser, member) - } - + chat.MemberInvitedNotification(req.OperationID, req.GroupID, req.OpUserID, v) err = db.DB.AddGroupMember(req.GroupID, toUserInfo.UserID) if err != nil { - log.Error("", "", "add mongo group member failed, db.DB.AddGroupMember fail [err: %s]", err.Error()) + log.NewError(req.OperationID, "AddGroupMember failed ", err.Error(), req.GroupID, toUserInfo.UserID) } - nicknameList = nicknameList + toUserInfo.Nickname + " " - resp.Id2Result = append(resp.Id2Result, &resultNode) + resp.Id2ResultList = append(resp.Id2ResultList, &resultNode) } resp.ErrCode = 0 + log.NewInfo(req.OperationID, "InviteUserToGroup rpc return ", resp) return &resp, nil } -type inviteUserToGroupReq struct { - GroupID string `json:"groupID"` - UidList []string `json:"uidList"` - Reason string `json:"reason"` - OperationID string `json:"operationID"` -} - -func (c *inviteUserToGroupReq) ContentToString() string { - data, _ := json.Marshal(c) - dataString := string(data) - return dataString -} - func (s *groupServer) GetGroupAllMember(ctx context.Context, req *pbGroup.GetGroupAllMemberReq) (*pbGroup.GetGroupAllMemberResp, error) { + log.NewInfo(req.OperationID, "GetGroupAllMember, args ", req.String()) var resp pbGroup.GetGroupAllMemberResp resp.ErrCode = 0 memberList, err := imdb.FindGroupMemberListByGroupId(req.GroupID) if err != nil { resp.ErrCode = constant.ErrDb.ErrCode - resp.ErrMsg = err.Error() + resp.ErrMsg = constant.ErrDb.ErrMsg log.NewError(req.OperationID, "FindGroupMemberListByGroupId failed,", err.Error(), req.GroupID) return &resp, nil } - + m := token_verify.IsMangerUserID(req.OpUserID) + in := false + if m { + in = true + } for _, v := range memberList { - var node pbGroup.GroupMemberFullInfo - node.Role = v.AdministratorLevel - node.NickName = v.NickName - node.UserId = v.UserID - node.FaceUrl = v.FaceUrl - node.JoinTime = uint64(v.JoinTime.Unix()) + var node open_im_sdk.GroupMemberFullInfo + utils.CopyStructFields(node, v) resp.MemberList = append(resp.MemberList, &node) + if !m && req.OpUserID == v.UserID { + in = true + } } + if !in { + } resp.ErrCode = 0 return &resp, nil } func (s *groupServer) GetGroupMemberList(ctx context.Context, req *pbGroup.GetGroupMemberListReq) (*pbGroup.GetGroupMemberListResp, error) { - claims, err := token_verify.ParseToken(req.Token) - if err != nil { - log.Error(req.Token, req.OperationID, "err=%s,parse token failed", err.Error()) - return &pbGroup.GetGroupMemberListResp{ErrCode: constant.ErrParseToken.ErrCode, ErrMsg: constant.ErrParseToken.ErrMsg}, nil - } - // log.Info(claims.UID, req.OperationID, "recv req: ", req.String()) - fmt.Println("req: ", req.GroupID) + log.NewInfo(req.OperationID, "GetGroupMemberList, args ", req.String()) + var resp pbGroup.GetGroupMemberListResp resp.ErrCode = 0 memberList, err := imdb.GetGroupMemberByGroupId(req.GroupID, req.Filter, req.NextSeq, 30) if err != nil { resp.ErrCode = constant.ErrDb.ErrCode resp.ErrMsg = err.Error() - log.Error(claims.UID, req.OperationID, "GetGroupMemberByGroupId failed, ", err.Error(), "params: ", req.GroupID, req.Filter, req.NextSeq) + log.NewError(req.OperationID, "GetGroupMemberByGroupId failed,", req.GroupID, req.Filter, req.NextSeq, 30) return &resp, nil } for _, v := range memberList { - var node pbGroup.GroupMemberFullInfo - node.Role = v.AdministratorLevel - node.NickName = v.NickName - node.UserId = v.UserID - // node.FaceUrl = - node.JoinTime = uint64(v.JoinTime.Unix()) + var node open_im_sdk.GroupMemberFullInfo + utils.CopyStructFields(&node, v) resp.MemberList = append(resp.MemberList, &node) } //db operate get db sorted by join time @@ -331,33 +287,12 @@ func (s *groupServer) GetGroupMemberList(ctx context.Context, req *pbGroup.GetGr } resp.ErrCode = 0 + log.NewInfo(req.OperationID, "GetGroupMemberList rpc return ", resp) return &resp, nil } -type groupMemberFullInfo struct { - GroupId string `json:"groupID"` - UserId string `json:"userId"` - Role int `json:"role"` - JoinTime uint64 `json:"joinTime"` - NickName string `json:"nickName"` - FaceUrl string `json:"faceUrl"` -} - -type kickGroupMemberApiReq struct { - GroupID string `json:"groupID"` - UidListInfo []groupMemberFullInfo `json:"uidListInfo"` - Reason string `json:"reason"` - OperationID string `json:"operationID"` -} - -func (c *kickGroupMemberApiReq) ContentToString() string { - data, _ := json.Marshal(c) - dataString := string(data) - return dataString -} - func (s *groupServer) KickGroupMember(ctx context.Context, req *pbGroup.KickGroupMemberReq) (*pbGroup.KickGroupMemberResp, error) { - log.NewInfo(req.OperationID, "KickGroupMember failed ", req.String()) + log.NewInfo(req.OperationID, "KickGroupMember args ", req.String()) ownerList, err := imdb.GetOwnerManagerByGroupId(req.GroupID) if err != nil { log.NewError(req.OperationID, "GetOwnerManagerByGroupId failed ", err.Error(), req.GroupID) @@ -368,209 +303,188 @@ func (s *groupServer) KickGroupMember(ctx context.Context, req *pbGroup.KickGrou for _, v := range ownerList { if v.UserID == req.OpUserID { flag = 1 - log.NewInfo(req.OperationID, "is group owner ", req.OpUserID, req.GroupID) + log.NewDebug(req.OperationID, "is group owner ", req.OpUserID, req.GroupID) break } } if flag != 1 { - if utils.IsContain(req.OpUserID, config.Config.Manager.AppManagerUid) { + if token_verify.IsMangerUserID(req.OpUserID) { flag = 1 - log.NewInfo(req.OperationID, "is app manager ", req.OpUserID, req.GroupID) + log.NewDebug(req.OperationID, "is app manager ", req.OpUserID) } } if flag != 1 { - log.NewError(req.OperationID, "failed, no access kick") + log.NewError(req.OperationID, "failed, no access kick ") return &pbGroup.KickGroupMemberResp{ErrCode: constant.ErrAccess.ErrCode, ErrMsg: constant.ErrAccess.ErrMsg}, nil } - if len(req.UidListInfo) == 0 { + if len(req.KickedUserIDList) == 0 { log.NewError(req.OperationID, "failed, kick list 0") return &pbGroup.KickGroupMemberResp{ErrCode: constant.ErrParam.ErrCode, ErrMsg: constant.ErrParam.ErrMsg}, nil } + groupOwnerUserID := "" + for _, v := range ownerList { + if v.AdministratorLevel == 1 { + groupOwnerUserID = v.UserID + } + } + //remove var resp pbGroup.KickGroupMemberResp - for _, v := range req.UidListInfo { + for _, v := range req.KickedUserIDList { //owner cant kicked - if v.UserId == req.OpUserID { - log.NewError(req.OperationID, v.UserId, "failed, can't kick owner ", req.OpUserID) - resp.Id2Result = append(resp.Id2Result, &pbGroup.Id2Result{UId: v.UserId, Result: -1}) + if v == groupOwnerUserID { + log.NewError(req.OperationID, "failed, can't kick owner ", v) + resp.Id2ResultList = append(resp.Id2ResultList, &pbGroup.Id2Result{UserID: v, Result: -1}) continue } - err := imdb.RemoveGroupMember(req.GroupID, v.UserId) + err := imdb.RemoveGroupMember(req.GroupID, v) if err != nil { - log.NewError(req.OperationID, "RemoveGroupMember failed ", err.Error(), req.GroupID, v.UserId) - resp.Id2Result = append(resp.Id2Result, &pbGroup.Id2Result{UId: v.UserId, Result: -1}) + log.NewError(req.OperationID, "RemoveGroupMember failed ", err.Error(), req.GroupID, v) + resp.Id2ResultList = append(resp.Id2ResultList, &pbGroup.Id2Result{UserID: v, Result: -1}) } else { - resp.Id2Result = append(resp.Id2Result, &pbGroup.Id2Result{UId: v.UserId, Result: 0}) + resp.Id2ResultList = append(resp.Id2ResultList, &pbGroup.Id2Result{UserID: v, Result: 0}) } - - err = db.DB.DelGroupMember(req.GroupID, v.UserId) + err = db.DB.DelGroupMember(req.GroupID, v) if err != nil { log.NewError(req.OperationID, "DelGroupMember failed ", err.Error(), req.GroupID, v.UserId) } } - for _, v := range req.UidListInfo { - chat.MemberKickedNotificationID(req.OperationID, req.GroupID, req.OpUserID, v.UserId, req.Reason) + for _, v := range req.KickedUserIDList { + chat.MemberKickedNotification(req.OperationID, req.GroupID, req.OpUserID, v, req.Reason) } resp.ErrCode = 0 + log.NewInfo(req.OperationID, "GetGroupMemberList rpc return ", resp) return &resp, nil } func (s *groupServer) GetGroupMembersInfo(ctx context.Context, req *pbGroup.GetGroupMembersInfoReq) (*pbGroup.GetGroupMembersInfoResp, error) { - claims, err := token_verify.ParseToken(req.Token) - if err != nil { - log.Error(req.Token, req.OperationID, "err=%s,parse token failed", err.Error()) - return &pbGroup.GetGroupMembersInfoResp{ErrCode: constant.ErrParseToken.ErrCode, ErrMsg: constant.ErrParseToken.ErrMsg}, nil - } - log.InfoByKv(claims.UID, req.OperationID, "param: ", req.MemberList) + log.NewInfo(req.OperationID, "GetGroupMembersInfo args ", req.String()) + var resp pbGroup.GetGroupMembersInfoResp for _, v := range req.MemberList { - var memberNode pbGroup.GroupMemberFullInfo + var memberNode open_im_sdk.GroupMemberFullInfo memberInfo, err := imdb.GetMemberInfoById(req.GroupID, v) - memberNode.UserId = v - fmt.Println("id : ", memberNode.UserId) + memberNode.UserID = v if err != nil { - log.Error(claims.UID, req.OperationID, req.GroupID, v, "GetMemberInfoById failed, ", err.Error()) - //error occurs, only id is valid - resp.MemberList = append(resp.MemberList, &memberNode) + log.NewError(req.OperationID, "GetMemberInfoById failed ", err.Error(), req.GroupID, v) continue + } else { + utils.CopyStructFields(&memberNode, memberInfo) + resp.MemberList = append(resp.MemberList, &memberNode) } - user, err := imdb.FindUserByUID(v) - if err == nil && user != nil { - memberNode.FaceUrl = user.FaceUrl - memberNode.JoinTime = uint64(memberInfo.JoinTime.Unix()) - memberNode.UserId = user.UserID - memberNode.NickName = memberInfo.NickName - memberNode.Role = memberInfo.AdministratorLevel - } - resp.MemberList = append(resp.MemberList, &memberNode) } resp.ErrCode = 0 + log.NewInfo(req.OperationID, "GetGroupMembersInfo rpc return ", resp) return &resp, nil } -func (s *groupServer) GetGroupApplicationList(_ context.Context, pb *pbGroup.GetGroupApplicationListReq) (*pbGroup.GetGroupApplicationListResp, error) { - log.Info("", "", "rpc GetGroupApplicationList call start..., [pb: %s]", pb.String()) - - reply, err := im_mysql_model.GetGroupApplicationList(pb.OpUserID) +func (s *groupServer) GetGroupApplicationList(_ context.Context, req *pbGroup.GetGroupApplicationListReq) (*pbGroup.GetGroupApplicationListResp, error) { + log.NewInfo(req.OperationID, "GetGroupMembersInfo args ", req.String()) + reply, err := im_mysql_model.GetGroupApplicationList(req.OpUserID) if err != nil { + log.NewError(req.OperationID, "GetGroupApplicationList failed ", err.Error(), req.OpUserID) return &pbGroup.GetGroupApplicationListResp{ErrCode: 701, ErrMsg: "GetGroupApplicationList failed"}, nil } - log.Info("", "", "rpc GetGroupApplicationList call..., im_mysql_model.GetGroupApplicationList") - + log.NewInfo(req.OperationID, "GetGroupMembersInfo rpc return ", reply) return reply, nil } func (s *groupServer) GetGroupsInfo(ctx context.Context, req *pbGroup.GetGroupsInfoReq) (*pbGroup.GetGroupsInfoResp, error) { - log.Info(req.Token, req.OperationID, "rpc get group info is server,args=%s", req.String()) - //Parse token, to find current user information - claims, err := token_verify.ParseToken(req.Token) - if err != nil { - log.Error(req.Token, req.OperationID, "err=%s,parse token failed", err.Error()) - return &pbGroup.GetGroupsInfoResp{ErrCode: constant.ErrParseToken.ErrCode, ErrMsg: constant.ErrParseToken.ErrMsg}, nil - } - log.Info("", req.OperationID, "args:", req.GroupIDList, claims.UID) - groupsInfoList := make([]*pbGroup.GroupInfo, 0) + log.NewInfo(req.OperationID, "GetGroupsInfo args ", req.String()) + groupsInfoList := make([]*open_im_sdk.GroupInfo, 0) for _, groupID := range req.GroupIDList { groupInfoFromMysql, err := im_mysql_model.FindGroupInfoByGroupId(groupID) if err != nil { - log.Error(req.Token, req.OperationID, "find group info failed,err=%s", err.Error()) + log.NewError(req.OperationID, "FindGroupInfoByGroupId failed ", err.Error(), groupID) continue } - var groupInfo pbGroup.GroupInfo - groupInfo.GroupId = groupID - groupInfo.GroupName = groupInfoFromMysql.GroupName - groupInfo.Introduction = groupInfoFromMysql.Introduction - groupInfo.Notification = groupInfoFromMysql.Notification - groupInfo.FaceUrl = groupInfoFromMysql.FaceUrl - groupInfo.OwnerId = im_mysql_model.GetGroupOwnerByGroupId(groupID) - groupInfo.MemberCount = uint32(im_mysql_model.GetGroupMemberNumByGroupId(groupID)) - groupInfo.CreateTime = uint64(groupInfoFromMysql.CreateTime.Unix()) - + var groupInfo open_im_sdk.GroupInfo + utils.CopyStructFields(&groupInfo, groupInfoFromMysql) groupsInfoList = append(groupsInfoList, &groupInfo) } - log.Info(req.Token, req.OperationID, "rpc get groupsInfo success return") - return &pbGroup.GetGroupsInfoResp{Data: groupsInfoList}, nil + + resp := pbGroup.GetGroupsInfoResp{GroupInfoList: groupsInfoList} + log.NewInfo(req.OperationID, "GetGroupsInfo rpc return ", resp) + return &resp, nil } -func (s *groupServer) GroupApplicationResponse(_ context.Context, pb *pbGroup.GroupApplicationResponseReq) (*pbGroup.GroupApplicationResponseResp, error) { - log.NewInfo(pb.OperationID, "GroupApplicationResponse args: ", pb.String()) - reply, err := imdb.GroupApplicationResponse(pb) +func (s *groupServer) GroupApplicationResponse(_ context.Context, req *pbGroup.GroupApplicationResponseReq) (*pbGroup.CommonResp, error) { + log.NewInfo(req.OperationID, "GroupApplicationResponse args ", req.String()) + reply, err := imdb.GroupApplicationResponse(req) if err != nil { - log.NewError(pb.OperationID, "GroupApplicationResponse failed ", err.Error(), pb.String()) - return &pbGroup.GroupApplicationResponseResp{ErrCode: 702, ErrMsg: err.Error()}, nil + log.NewError(req.OperationID, "GroupApplicationResponse failed ", err.Error(), req.String()) + return &pbGroup.CommonResp{ErrCode: 702, ErrMsg: err.Error()}, nil } - if pb.HandleResult == 1 { - if pb.ToUserID == "0" { - err = db.DB.AddGroupMember(pb.GroupID, pb.FromUserID) + if req.HandleResult == 1 { + if req.ToUserID == "0" { + err = db.DB.AddGroupMember(req.GroupID, req.FromUserID) if err != nil { - log.Error("", "", "rpc GroupApplicationResponse call..., db.DB.AddGroupMember fail [pb: %s] [err: %s]", pb.String(), err.Error()) - return nil, err + log.NewError(req.OperationID, "AddGroupMember failed ", err.Error(), req.GroupID, req.FromUserID) } } else { - err = db.DB.AddGroupMember(pb.GroupID, pb.ToUserID) + err = db.DB.AddGroupMember(req.GroupID, req.ToUserID) if err != nil { - log.Error("", "", "rpc GroupApplicationResponse call..., db.DB.AddGroupMember fail [pb: %s] [err: %s]", pb.String(), err.Error()) - return nil, err + log.NewError(req.OperationID, "AddGroupMember failed ", err.Error(), req.GroupID, req.ToUserID) } } } - if pb.ToUserID == "0" { - group, err := imdb.FindGroupInfoByGroupId(pb.GroupID) + if req.ToUserID == "0" { + group, err := imdb.FindGroupInfoByGroupId(req.GroupID) if err != nil { - log.NewError(pb.OperationID, "FindGroupInfoByGroupId failed ", pb.GroupID) + log.NewError(req.OperationID, "FindGroupInfoByGroupId failed ", req.GroupID) return reply, nil } - member, err := imdb.FindGroupMemberInfoByGroupIdAndUserId(pb.GroupID, pb.OpUserID) + member, err := imdb.FindGroupMemberInfoByGroupIdAndUserId(req.GroupID, req.OpUserID) if err != nil { - log.NewError(pb.OperationID, "FindGroupMemberInfoByGroupIdAndUserId failed ", pb.GroupID, pb.OpUserID) + log.NewError(req.OperationID, "FindGroupMemberInfoByGroupIdAndUserId failed ", req.GroupID, req.OpUserID) return reply, nil } - chat.ApplicationProcessedNotification(pb.OperationID, pb.FromUserID, *group, *member, pb.HandleResult, pb.HandledMsg) - if pb.HandleResult == 1 { - entrantUser, err := imdb.FindGroupMemberInfoByGroupIdAndUserId(pb.GroupID, pb.FromUserID) + chat.ApplicationProcessedNotification(req.OperationID, req.FromUserID, *group, *member, req.HandleResult, req.HandledMsg) + if req.HandleResult == 1 { + entrantUser, err := imdb.FindGroupMemberInfoByGroupIdAndUserId(req.GroupID, req.FromUserID) if err != nil { - log.NewError(pb.OperationID, "FindGroupMemberInfoByGroupIdAndUserId failed ", err.Error(), pb.GroupID, pb.FromUserID) + log.NewError(req.OperationID, "FindGroupMemberInfoByGroupIdAndUserId failed ", err.Error(), req.GroupID, req.FromUserID) return reply, nil } - chat.MemberEnterNotification(pb.OperationID, group, entrantUser) + chat.MemberEnterNotification(req.OperationID, req.GroupID, entrantUser) } } else { - log.NewError(pb.OperationID, "args failed ", pb.String()) + log.NewError(req.OperationID, "args failed ", req.String()) } - log.NewInfo(pb.OperationID, "rpc GroupApplicationResponse ok ", reply) + log.NewInfo(req.OperationID, "rpc GroupApplicationResponse ok ", reply) return reply, nil } func (s *groupServer) JoinGroup(ctx context.Context, req *pbGroup.JoinGroupReq) (*pbGroup.CommonResp, error) { - log.NewInfo(req.Token, req.OperationID, "JoinGroup args ", req.String()) + log.NewInfo(req.OperationID, "JoinGroup args ", req.String()) //Parse token, to find current user information - claims, err := token_verify.ParseToken(req.Token) - if err != nil { - log.NewError(req.OperationID, "ParseToken failed", err.Error(), req.String()) - return &pbGroup.CommonResp{ErrCode: constant.ErrParseToken.ErrCode, ErrMsg: constant.ErrParseToken.ErrMsg}, nil - } - applicationUserInfo, err := im_mysql_model.FindUserByUID(claims.UID) + //claims, err := token_verify.ParseToken(req.Token) + //if err != nil { + // log.NewError(req.OperationID, "ParseToken failed", err.Error(), req.String()) + // return &pbGroup.CommonResp{ErrCode: constant.ErrParseToken.ErrCode, ErrMsg: constant.ErrParseToken.ErrMsg}, nil + //} + applicationUserInfo, err := im_mysql_model.FindUserByUID(req.FromUserID) if err != nil { - log.NewError(req.OperationID, "FindUserByUID failed", err.Error(), claims.UID) + log.NewError(req.OperationID, "FindUserByUID failed ", err.Error(), req.FromUserID) return &pbGroup.CommonResp{ErrCode: constant.ErrSearchUserInfo.ErrCode, ErrMsg: constant.ErrSearchUserInfo.ErrMsg}, nil } - _, err = im_mysql_model.FindGroupRequestUserInfoByGroupIDAndUid(req.GroupID, claims.UID) + _, err = im_mysql_model.FindGroupRequestUserInfoByGroupIDAndUid(req.GroupID, req.FromUserID) if err == nil { - err = im_mysql_model.DelGroupRequest(req.GroupID, claims.UID, "0") + err = im_mysql_model.DelGroupRequest(req.GroupID, req.FromUserID, "0") } - if err = im_mysql_model.InsertIntoGroupRequest(req.GroupID, claims.UID, "0", req.Message, applicationUserInfo.Nickname, applicationUserInfo.FaceUrl); err != nil { - log.Error(req.Token, req.OperationID, "Insert into group request failed,er=%s", err.Error()) + if err = im_mysql_model.InsertIntoGroupRequest(req.GroupID, req.FromUserID, "0", req.ReqMessage, applicationUserInfo.Nickname, applicationUserInfo.FaceUrl); err != nil { + log.NewError(req.OperationID, "InsertIntoGroupRequest ", err.Error(), req.GroupID, req.FromUserID, "0", req.ReqMessage, applicationUserInfo.Nickname, applicationUserInfo.FaceUrl) return &pbGroup.CommonResp{ErrCode: constant.ErrJoinGroupApplication.ErrCode, ErrMsg: constant.ErrJoinGroupApplication.ErrMsg}, nil } @@ -620,9 +534,9 @@ func hasAccess(req *pbGroup.SetGroupInfoReq) bool { if utils.IsContain(req.OpUserID, config.Config.Manager.AppManagerUid) { return true } - groupUserInfo, err := im_mysql_model.FindGroupMemberInfoByGroupIdAndUserId(req.GroupID, req.OpUserID) + groupUserInfo, err := im_mysql_model.FindGroupMemberInfoByGroupIdAndUserId(req.GroupInfo.GroupID, req.OpUserID) if err != nil { - log.NewError(req.OperationID, "FindGroupMemberInfoByGroupIdAndUserId failed, ", err.Error(), req.GroupID, req.OpUserID) + log.NewError(req.OperationID, "FindGroupMemberInfoByGroupIdAndUserId failed, ", err.Error(), req.GroupInfo.GroupID, req.OpUserID) return false } @@ -638,39 +552,39 @@ func (s *groupServer) SetGroupInfo(ctx context.Context, req *pbGroup.SetGroupInf return &pbGroup.CommonResp{ErrCode: constant.ErrSetGroupInfo.ErrCode, ErrMsg: constant.ErrAccess.ErrMsg}, nil } - group, err := im_mysql_model.FindGroupInfoByGroupId(req.GroupID) + group, err := im_mysql_model.FindGroupInfoByGroupId(req.GroupInfo.GroupID) if err != nil { - log.NewError(req.OperationID, "FindGroupInfoByGroupId failed, ", err.Error(), req.GroupID) + log.NewError(req.OperationID, "FindGroupInfoByGroupId failed, ", err.Error(), req.GroupInfo.GroupID) return &pbGroup.CommonResp{ErrCode: constant.ErrSetGroupInfo.ErrCode, ErrMsg: constant.ErrAccess.ErrMsg}, nil } ////bitwise operators: 1:groupName; 10:Notification 100:Introduction; 1000:FaceUrl var changedType int32 - if group.GroupName != req.GroupName && req.GroupName != "" { + if group.GroupName != req.GroupInfo.GroupName && req.GroupInfo.GroupName != "" { changedType = 1 } - if group.Notification != req.Notification && req.Notification != "" { + if group.Notification != req.GroupInfo.Notification && req.GroupInfo.Notification != "" { changedType = changedType | (1 << 1) } - if group.Introduction != req.Introduction && req.Introduction != "" { + if group.Introduction != req.GroupInfo.Introduction && req.GroupInfo.Introduction != "" { changedType = changedType | (1 << 2) } - if group.FaceUrl != req.FaceUrl && req.FaceUrl != "" { + if group.FaceUrl != req.GroupInfo.FaceUrl && req.GroupInfo.FaceUrl != "" { changedType = changedType | (1 << 3) } //only administrators can set group information - if err = im_mysql_model.SetGroupInfo(req.GroupID, req.GroupName, req.Introduction, req.Notification, req.FaceUrl, ""); err != nil { + if err = im_mysql_model.SetGroupInfo(req.GroupInfo.GroupID, req.GroupInfo.GroupName, req.GroupInfo.Introduction, req.GroupInfo.Notification, req.GroupInfo.FaceUrl, ""); err != nil { return &pbGroup.CommonResp{ErrCode: constant.ErrSetGroupInfo.ErrCode, ErrMsg: constant.ErrSetGroupInfo.ErrMsg}, nil } if changedType != 0 { - chat.GroupInfoChangedNotification(req.OperationID, changedType, req.GroupID, req.OpUserID) + chat.GroupInfoChangedNotification(req.OperationID, changedType, req.GroupInfo.GroupID, req.OpUserID) } return &pbGroup.CommonResp{}, nil } -func (s *groupServer) TransferGroupOwner(_ context.Context, pb *pbGroup.TransferGroupOwnerReq) (*pbGroup.TransferGroupOwnerResp, error) { +func (s *groupServer) TransferGroupOwner(_ context.Context, pb *pbGroup.TransferGroupOwnerReq) (*pbGroup.CommonResp, error) { log.Info("", "", "rpc TransferGroupOwner call start..., [pb: %s]", pb.String()) reply, err := im_mysql_model.TransferGroupOwner(pb) diff --git a/pkg/common/constant/constant.go b/pkg/common/constant/constant.go index 9cabc19b3..9cfdf5859 100644 --- a/pkg/common/constant/constant.go +++ b/pkg/common/constant/constant.go @@ -10,7 +10,7 @@ const ( Application = 0 AgreeApplication = 1 - //feiend related + //friend related BlackListFlag = 1 ApplicationFriendFlag = 0 FriendFlag = 1 diff --git a/pkg/common/db/mysql_model/im_mysql_model/friend_request_model.go b/pkg/common/db/mysql_model/im_mysql_model/friend_request_model.go index 1a7308cb9..9ccf17a0e 100644 --- a/pkg/common/db/mysql_model/im_mysql_model/friend_request_model.go +++ b/pkg/common/db/mysql_model/im_mysql_model/friend_request_model.go @@ -5,6 +5,7 @@ import ( "time" ) +// reqId add userId func ReplaceIntoFriendReq(reqId, userId string, flag int32, reqMessage string) error { dbConn, err := db.DB.MysqlDB.DefaultGormDB() if err != nil { @@ -44,6 +45,7 @@ func FindSelfApplyFromFriendReq(userId string) ([]FriendRequest, error) { return usersInfo, nil } +//reqId apply to add userId already func FindFriendApplyFromFriendReqByUid(reqId, userId string) (*FriendRequest, error) { dbConn, err := db.DB.MysqlDB.DefaultGormDB() if err != nil { @@ -57,6 +59,7 @@ func FindFriendApplyFromFriendReqByUid(reqId, userId string) (*FriendRequest, er return &friendRequest, nil } +//userId process reqId func UpdateFriendRelationshipToFriendReq(reqId, userId string, flag int32) error { dbConn, err := db.DB.MysqlDB.DefaultGormDB() if err != nil { diff --git a/pkg/common/db/mysql_model/im_mysql_model/group_member_model.go b/pkg/common/db/mysql_model/im_mysql_model/group_member_model.go index 46381dd45..578b56632 100644 --- a/pkg/common/db/mysql_model/im_mysql_model/group_member_model.go +++ b/pkg/common/db/mysql_model/im_mysql_model/group_member_model.go @@ -212,6 +212,19 @@ func GetGroupOwnerByGroupId(groupId string) string { return "" } +func GetGroupOwnerInfoByGroupId(groupId string) (*GroupMember, error) { + omList, err := GetOwnerManagerByGroupId(groupId) + if err != nil { + return nil, err + } + for _, v := range omList { + if v.AdministratorLevel == 1 { + return v, nil + } + } + return nil, nil +} + func InsertGroupMember(groupId, userId, nickName, userFaceUrl string, role int32) error { return InsertIntoGroupMember(groupId, userId, nickName, userFaceUrl, role) } diff --git a/pkg/common/db/mysql_model/im_mysql_model/group_model.go b/pkg/common/db/mysql_model/im_mysql_model/group_model.go index 798f9bf1d..d9c69fdc0 100644 --- a/pkg/common/db/mysql_model/im_mysql_model/group_model.go +++ b/pkg/common/db/mysql_model/im_mysql_model/group_model.go @@ -164,12 +164,12 @@ func GetGroupApplicationList(uid string) (*group.GetGroupApplicationListResp, er return reply, nil } -func TransferGroupOwner(pb *group.TransferGroupOwnerReq) (*group.TransferGroupOwnerResp, error) { - oldOwner, err := FindGroupMemberInfoByGroupIdAndUserId(pb.GroupID, pb.OldOwner) +func TransferGroupOwner(pb *group.TransferGroupOwnerReq) (*group.CommonResp, error) { + oldOwner, err := FindGroupMemberInfoByGroupIdAndUserId(pb.GroupID, pb.OldOwnerUserID) if err != nil { return nil, err } - newOwner, err := FindGroupMemberInfoByGroupIdAndUserId(pb.GroupID, pb.NewOwner) + newOwner, err := FindGroupMemberInfoByGroupIdAndUserId(pb.GroupID, pb.NewOwnerUserID) if err != nil { return nil, err } @@ -178,19 +178,19 @@ func TransferGroupOwner(pb *group.TransferGroupOwnerReq) (*group.TransferGroupOw return nil, errors.New("the self") } - if err = UpdateTheUserAdministratorLevel(pb.GroupID, pb.OldOwner, 0); err != nil { + if err = UpdateTheUserAdministratorLevel(pb.GroupID, pb.OldOwnerUserID, 0); err != nil { return nil, err } - if err = UpdateTheUserAdministratorLevel(pb.GroupID, pb.NewOwner, 1); err != nil { - UpdateTheUserAdministratorLevel(pb.GroupID, pb.OldOwner, 1) + if err = UpdateTheUserAdministratorLevel(pb.GroupID, pb.NewOwnerUserID, 1); err != nil { + UpdateTheUserAdministratorLevel(pb.GroupID, pb.OldOwnerUserID, 1) return nil, err } - return &group.TransferGroupOwnerResp{}, nil + return &group.CommonResp{}, nil } -func GroupApplicationResponse(pb *group.GroupApplicationResponseReq) (*group.GroupApplicationResponseResp, error) { +func GroupApplicationResponse(pb *group.GroupApplicationResponseReq) (*group.CommonResp, error) { ownerUser, err := FindGroupMemberInfoByGroupIdAndUserId(pb.GroupID, pb.OwnerID) if err != nil { diff --git a/pkg/common/db/mysql_model/im_mysql_model/model_struct.go b/pkg/common/db/mysql_model/im_mysql_model/model_struct.go index 198362ca2..f25f4081f 100644 --- a/pkg/common/db/mysql_model/im_mysql_model/model_struct.go +++ b/pkg/common/db/mysql_model/im_mysql_model/model_struct.go @@ -41,7 +41,7 @@ type Group struct { Notification string `gorm:"column:notification"` FaceUrl string `gorm:"column:face_url"` CreateTime time.Time `gorm:"column:create_time"` - Ex string `gorm:"column:ex"` + Ext string `gorm:"column:ex"` } type GroupMember struct { diff --git a/pkg/common/token_verify/jwt_token.go b/pkg/common/token_verify/jwt_token.go index 961919605..1f3f444b2 100644 --- a/pkg/common/token_verify/jwt_token.go +++ b/pkg/common/token_verify/jwt_token.go @@ -5,6 +5,7 @@ import ( "Open_IM/pkg/common/constant" commonDB "Open_IM/pkg/common/db" "Open_IM/pkg/common/log" + "Open_IM/pkg/utils" "github.com/golang-jwt/jwt/v4" "time" ) @@ -80,6 +81,43 @@ func GetClaimFromToken(tokensString string) (*Claims, error) { } } +func IsAppManagerAccess(token string, OpUserID string) bool { + claims, err := ParseToken(token) + if err != nil { + return false + } + if utils.IsContain(claims.UID, config.Config.Manager.AppManagerUid) && claims.UID == OpUserID { + return true + } + return false +} + +func IsMangerUserID(OpUserID string) bool { + if utils.IsContain(OpUserID, config.Config.Manager.AppManagerUid) { + return true + } else { + return false + } +} + +func CheckAccess(OpUserID string, OwnerUserID string) bool { + if utils.IsContain(OpUserID, config.Config.Manager.AppManagerUid) { + return true + } + if OpUserID == OwnerUserID { + return true + } + return false +} + +func GetUserIDFromToken(token string) (bool, string) { + claims, err := ParseToken(token) + if err != nil { + return false, "" + } + return true, claims.UID +} + func ParseToken(tokensString string) (claims *Claims, err error) { claims, err = GetClaimFromToken(tokensString) diff --git a/pkg/proto/friend/friend.pb.go b/pkg/proto/friend/friend.pb.go index a393857af..a0c0fb25e 100644 --- a/pkg/proto/friend/friend.pb.go +++ b/pkg/proto/friend/friend.pb.go @@ -6,6 +6,7 @@ package friend // import "./friend" 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" @@ -24,8 +25,8 @@ var _ = math.Inf const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package type CommonResp struct { - ErrorCode int32 `protobuf:"varint,1,opt,name=errorCode" json:"errorCode,omitempty"` - ErrorMsg string `protobuf:"bytes,2,opt,name=errorMsg" json:"errorMsg,omitempty"` + ErrCode int32 `protobuf:"varint,1,opt,name=errCode" json:"errCode,omitempty"` + ErrMsg string `protobuf:"bytes,2,opt,name=errMsg" json:"errMsg,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -35,7 +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_friend_03bf5fbe59a174aa, []int{0} + return fileDescriptor_friend_525e368387d696e2, []int{0} } func (m *CommonResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_CommonResp.Unmarshal(m, b) @@ -55,24 +56,84 @@ func (m *CommonResp) XXX_DiscardUnknown() { var xxx_messageInfo_CommonResp proto.InternalMessageInfo -func (m *CommonResp) GetErrorCode() int32 { +func (m *CommonResp) GetErrCode() int32 { if m != nil { - return m.ErrorCode + return m.ErrCode } return 0 } -func (m *CommonResp) GetErrorMsg() string { +func (m *CommonResp) GetErrMsg() string { if m != nil { - return m.ErrorMsg + return m.ErrMsg } return "" } -type GetFriendsInfoReq struct { - Uid string `protobuf:"bytes,1,opt,name=uid" json:"uid,omitempty"` +type CommID struct { + OpUserID string `protobuf:"bytes,1,opt,name=OpUserID" json:"OpUserID,omitempty"` OperationID string `protobuf:"bytes,2,opt,name=OperationID" json:"OperationID,omitempty"` - Token string `protobuf:"bytes,3,opt,name=Token" json:"Token,omitempty"` + ToUserID string `protobuf:"bytes,4,opt,name=ToUserID" json:"ToUserID,omitempty"` + FromUserID string `protobuf:"bytes,5,opt,name=FromUserID" json:"FromUserID,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *CommID) Reset() { *m = CommID{} } +func (m *CommID) String() string { return proto.CompactTextString(m) } +func (*CommID) ProtoMessage() {} +func (*CommID) Descriptor() ([]byte, []int) { + return fileDescriptor_friend_525e368387d696e2, []int{1} +} +func (m *CommID) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_CommID.Unmarshal(m, b) +} +func (m *CommID) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_CommID.Marshal(b, m, deterministic) +} +func (dst *CommID) XXX_Merge(src proto.Message) { + xxx_messageInfo_CommID.Merge(dst, src) +} +func (m *CommID) XXX_Size() int { + return xxx_messageInfo_CommID.Size(m) +} +func (m *CommID) XXX_DiscardUnknown() { + xxx_messageInfo_CommID.DiscardUnknown(m) +} + +var xxx_messageInfo_CommID proto.InternalMessageInfo + +func (m *CommID) GetOpUserID() string { + if m != nil { + return m.OpUserID + } + return "" +} + +func (m *CommID) GetOperationID() string { + if m != nil { + return m.OperationID + } + return "" +} + +func (m *CommID) GetToUserID() string { + if m != nil { + return m.ToUserID + } + return "" +} + +func (m *CommID) GetFromUserID() string { + if m != nil { + return m.FromUserID + } + return "" +} + +type GetFriendsInfoReq struct { + CommID *CommID `protobuf:"bytes,1,opt,name=CommID" json:"CommID,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -82,7 +143,7 @@ func (m *GetFriendsInfoReq) Reset() { *m = GetFriendsInfoReq{} } func (m *GetFriendsInfoReq) String() string { return proto.CompactTextString(m) } func (*GetFriendsInfoReq) ProtoMessage() {} func (*GetFriendsInfoReq) Descriptor() ([]byte, []int) { - return fileDescriptor_friend_03bf5fbe59a174aa, []int{1} + return fileDescriptor_friend_525e368387d696e2, []int{2} } func (m *GetFriendsInfoReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetFriendsInfoReq.Unmarshal(m, b) @@ -102,41 +163,27 @@ func (m *GetFriendsInfoReq) XXX_DiscardUnknown() { var xxx_messageInfo_GetFriendsInfoReq proto.InternalMessageInfo -func (m *GetFriendsInfoReq) GetUid() string { - if m != nil { - return m.Uid - } - return "" -} - -func (m *GetFriendsInfoReq) GetOperationID() string { - if m != nil { - return m.OperationID - } - return "" -} - -func (m *GetFriendsInfoReq) GetToken() string { +func (m *GetFriendsInfoReq) GetCommID() *CommID { if m != nil { - return m.Token + return m.CommID } - return "" + return nil } type GetFriendInfoResp struct { - ErrorCode int32 `protobuf:"varint,1,opt,name=errorCode" json:"errorCode,omitempty"` - ErrorMsg string `protobuf:"bytes,2,opt,name=errorMsg" json:"errorMsg,omitempty"` - Data *GetFriendData `protobuf:"bytes,3,opt,name=Data" json:"Data,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + ErrCode int32 `protobuf:"varint,1,opt,name=ErrCode" json:"ErrCode,omitempty"` + ErrMsg string `protobuf:"bytes,2,opt,name=ErrMsg" json:"ErrMsg,omitempty"` + Data *FriendInfo `protobuf:"bytes,3,opt,name=Data" json:"Data,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } func (m *GetFriendInfoResp) Reset() { *m = GetFriendInfoResp{} } func (m *GetFriendInfoResp) String() string { return proto.CompactTextString(m) } func (*GetFriendInfoResp) ProtoMessage() {} func (*GetFriendInfoResp) Descriptor() ([]byte, []int) { - return fileDescriptor_friend_03bf5fbe59a174aa, []int{2} + return fileDescriptor_friend_525e368387d696e2, []int{3} } func (m *GetFriendInfoResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetFriendInfoResp.Unmarshal(m, b) @@ -156,150 +203,100 @@ func (m *GetFriendInfoResp) XXX_DiscardUnknown() { var xxx_messageInfo_GetFriendInfoResp proto.InternalMessageInfo -func (m *GetFriendInfoResp) GetErrorCode() int32 { +func (m *GetFriendInfoResp) GetErrCode() int32 { if m != nil { - return m.ErrorCode + return m.ErrCode } return 0 } -func (m *GetFriendInfoResp) GetErrorMsg() string { +func (m *GetFriendInfoResp) GetErrMsg() string { if m != nil { - return m.ErrorMsg + return m.ErrMsg } return "" } -func (m *GetFriendInfoResp) GetData() *GetFriendData { +func (m *GetFriendInfoResp) GetData() *FriendInfo { if m != nil { return m.Data } return nil } -type GetFriendData struct { - Uid string `protobuf:"bytes,1,opt,name=uid" json:"uid,omitempty"` - Icon string `protobuf:"bytes,2,opt,name=icon" json:"icon,omitempty"` - Name string `protobuf:"bytes,3,opt,name=name" json:"name,omitempty"` - Gender int32 `protobuf:"varint,4,opt,name=gender" json:"gender,omitempty"` - Mobile string `protobuf:"bytes,5,opt,name=mobile" json:"mobile,omitempty"` - Birth string `protobuf:"bytes,6,opt,name=birth" json:"birth,omitempty"` - Email string `protobuf:"bytes,7,opt,name=email" json:"email,omitempty"` - Ex string `protobuf:"bytes,8,opt,name=ex" json:"ex,omitempty"` - Comment string `protobuf:"bytes,9,opt,name=comment" json:"comment,omitempty"` - IsFriend int32 `protobuf:"varint,10,opt,name=isFriend" json:"isFriend,omitempty"` - IsInBlackList int32 `protobuf:"varint,11,opt,name=isInBlackList" json:"isInBlackList,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` +type FriendInfo struct { + OwnerUserID string `protobuf:"bytes,1,opt,name=OwnerUserID" json:"OwnerUserID,omitempty"` + Remark string `protobuf:"bytes,2,opt,name=Remark" json:"Remark,omitempty"` + CreateTime uint64 `protobuf:"varint,3,opt,name=CreateTime" json:"CreateTime,omitempty"` + FriendUser *sdk_ws.UserInfo `protobuf:"bytes,4,opt,name=FriendUser" json:"FriendUser,omitempty"` + IsBlack int32 `protobuf:"varint,5,opt,name=IsBlack" json:"IsBlack,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (m *GetFriendData) Reset() { *m = GetFriendData{} } -func (m *GetFriendData) String() string { return proto.CompactTextString(m) } -func (*GetFriendData) ProtoMessage() {} -func (*GetFriendData) Descriptor() ([]byte, []int) { - return fileDescriptor_friend_03bf5fbe59a174aa, []int{3} +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_friend_525e368387d696e2, []int{4} } -func (m *GetFriendData) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_GetFriendData.Unmarshal(m, b) +func (m *FriendInfo) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_FriendInfo.Unmarshal(m, b) } -func (m *GetFriendData) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_GetFriendData.Marshal(b, m, deterministic) +func (m *FriendInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_FriendInfo.Marshal(b, m, deterministic) } -func (dst *GetFriendData) XXX_Merge(src proto.Message) { - xxx_messageInfo_GetFriendData.Merge(dst, src) +func (dst *FriendInfo) XXX_Merge(src proto.Message) { + xxx_messageInfo_FriendInfo.Merge(dst, src) } -func (m *GetFriendData) XXX_Size() int { - return xxx_messageInfo_GetFriendData.Size(m) +func (m *FriendInfo) XXX_Size() int { + return xxx_messageInfo_FriendInfo.Size(m) } -func (m *GetFriendData) XXX_DiscardUnknown() { - xxx_messageInfo_GetFriendData.DiscardUnknown(m) +func (m *FriendInfo) XXX_DiscardUnknown() { + xxx_messageInfo_FriendInfo.DiscardUnknown(m) } -var xxx_messageInfo_GetFriendData proto.InternalMessageInfo +var xxx_messageInfo_FriendInfo proto.InternalMessageInfo -func (m *GetFriendData) GetUid() string { +func (m *FriendInfo) GetOwnerUserID() string { if m != nil { - return m.Uid + return m.OwnerUserID } return "" } -func (m *GetFriendData) GetIcon() string { +func (m *FriendInfo) GetRemark() string { if m != nil { - return m.Icon + return m.Remark } return "" } -func (m *GetFriendData) GetName() string { +func (m *FriendInfo) GetCreateTime() uint64 { if m != nil { - return m.Name - } - return "" -} - -func (m *GetFriendData) GetGender() int32 { - if m != nil { - return m.Gender + return m.CreateTime } return 0 } -func (m *GetFriendData) GetMobile() string { +func (m *FriendInfo) GetFriendUser() *sdk_ws.UserInfo { if m != nil { - return m.Mobile + return m.FriendUser } - return "" -} - -func (m *GetFriendData) GetBirth() string { - if m != nil { - return m.Birth - } - return "" -} - -func (m *GetFriendData) GetEmail() string { - if m != nil { - return m.Email - } - return "" -} - -func (m *GetFriendData) GetEx() string { - if m != nil { - return m.Ex - } - return "" -} - -func (m *GetFriendData) GetComment() string { - if m != nil { - return m.Comment - } - return "" -} - -func (m *GetFriendData) GetIsFriend() int32 { - if m != nil { - return m.IsFriend - } - return 0 + return nil } -func (m *GetFriendData) GetIsInBlackList() int32 { +func (m *FriendInfo) GetIsBlack() int32 { if m != nil { - return m.IsInBlackList + return m.IsBlack } return 0 } type AddFriendReq struct { - Uid string `protobuf:"bytes,1,opt,name=uid" json:"uid,omitempty"` - OperationID string `protobuf:"bytes,2,opt,name=OperationID" json:"OperationID,omitempty"` - Token string `protobuf:"bytes,3,opt,name=Token" json:"Token,omitempty"` - ReqMessage string `protobuf:"bytes,4,opt,name=ReqMessage" json:"ReqMessage,omitempty"` + CommID *CommID `protobuf:"bytes,1,opt,name=CommID" json:"CommID,omitempty"` + ReqMessage string `protobuf:"bytes,2,opt,name=ReqMessage" json:"ReqMessage,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -309,7 +306,7 @@ func (m *AddFriendReq) Reset() { *m = AddFriendReq{} } func (m *AddFriendReq) String() string { return proto.CompactTextString(m) } func (*AddFriendReq) ProtoMessage() {} func (*AddFriendReq) Descriptor() ([]byte, []int) { - return fileDescriptor_friend_03bf5fbe59a174aa, []int{4} + return fileDescriptor_friend_525e368387d696e2, []int{5} } func (m *AddFriendReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_AddFriendReq.Unmarshal(m, b) @@ -329,25 +326,11 @@ func (m *AddFriendReq) XXX_DiscardUnknown() { var xxx_messageInfo_AddFriendReq proto.InternalMessageInfo -func (m *AddFriendReq) GetUid() string { - if m != nil { - return m.Uid - } - return "" -} - -func (m *AddFriendReq) GetOperationID() string { - if m != nil { - return m.OperationID - } - return "" -} - -func (m *AddFriendReq) GetToken() string { +func (m *AddFriendReq) GetCommID() *CommID { if m != nil { - return m.Token + return m.CommID } - return "" + return nil } func (m *AddFriendReq) GetReqMessage() string { @@ -358,10 +341,10 @@ func (m *AddFriendReq) GetReqMessage() string { } type ImportFriendReq struct { - UidList []string `protobuf:"bytes,1,rep,name=uidList" json:"uidList,omitempty"` + FriendUserIDList []string `protobuf:"bytes,1,rep,name=FriendUserIDList" json:"FriendUserIDList,omitempty"` OperationID string `protobuf:"bytes,2,opt,name=OperationID" json:"OperationID,omitempty"` - Token string `protobuf:"bytes,3,opt,name=Token" json:"Token,omitempty"` - OwnerUid string `protobuf:"bytes,4,opt,name=OwnerUid" json:"OwnerUid,omitempty"` + FromUserID string `protobuf:"bytes,3,opt,name=FromUserID" json:"FromUserID,omitempty"` + OpUserID string `protobuf:"bytes,4,opt,name=OpUserID" json:"OpUserID,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -371,7 +354,7 @@ func (m *ImportFriendReq) Reset() { *m = ImportFriendReq{} } func (m *ImportFriendReq) String() string { return proto.CompactTextString(m) } func (*ImportFriendReq) ProtoMessage() {} func (*ImportFriendReq) Descriptor() ([]byte, []int) { - return fileDescriptor_friend_03bf5fbe59a174aa, []int{5} + return fileDescriptor_friend_525e368387d696e2, []int{6} } func (m *ImportFriendReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ImportFriendReq.Unmarshal(m, b) @@ -391,9 +374,9 @@ func (m *ImportFriendReq) XXX_DiscardUnknown() { var xxx_messageInfo_ImportFriendReq proto.InternalMessageInfo -func (m *ImportFriendReq) GetUidList() []string { +func (m *ImportFriendReq) GetFriendUserIDList() []string { if m != nil { - return m.UidList + return m.FriendUserIDList } return nil } @@ -405,16 +388,16 @@ func (m *ImportFriendReq) GetOperationID() string { return "" } -func (m *ImportFriendReq) GetToken() string { +func (m *ImportFriendReq) GetFromUserID() string { if m != nil { - return m.Token + return m.FromUserID } return "" } -func (m *ImportFriendReq) GetOwnerUid() string { +func (m *ImportFriendReq) GetOpUserID() string { if m != nil { - return m.OwnerUid + return m.OpUserID } return "" } @@ -431,7 +414,7 @@ func (m *ImportFriendResp) Reset() { *m = ImportFriendResp{} } func (m *ImportFriendResp) String() string { return proto.CompactTextString(m) } func (*ImportFriendResp) ProtoMessage() {} func (*ImportFriendResp) Descriptor() ([]byte, []int) { - return fileDescriptor_friend_03bf5fbe59a174aa, []int{6} + return fileDescriptor_friend_525e368387d696e2, []int{7} } func (m *ImportFriendResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ImportFriendResp.Unmarshal(m, b) @@ -466,8 +449,7 @@ func (m *ImportFriendResp) GetFailedUidList() []string { } type GetFriendApplyReq struct { - OperationID string `protobuf:"bytes,1,opt,name=OperationID" json:"OperationID,omitempty"` - Token string `protobuf:"bytes,2,opt,name=Token" json:"Token,omitempty"` + CommID *CommID `protobuf:"bytes,1,opt,name=CommID" json:"CommID,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -477,7 +459,7 @@ func (m *GetFriendApplyReq) Reset() { *m = GetFriendApplyReq{} } func (m *GetFriendApplyReq) String() string { return proto.CompactTextString(m) } func (*GetFriendApplyReq) ProtoMessage() {} func (*GetFriendApplyReq) Descriptor() ([]byte, []int) { - return fileDescriptor_friend_03bf5fbe59a174aa, []int{7} + return fileDescriptor_friend_525e368387d696e2, []int{8} } func (m *GetFriendApplyReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetFriendApplyReq.Unmarshal(m, b) @@ -497,23 +479,16 @@ func (m *GetFriendApplyReq) XXX_DiscardUnknown() { var xxx_messageInfo_GetFriendApplyReq proto.InternalMessageInfo -func (m *GetFriendApplyReq) GetOperationID() string { +func (m *GetFriendApplyReq) GetCommID() *CommID { if m != nil { - return m.OperationID + return m.CommID } - return "" -} - -func (m *GetFriendApplyReq) GetToken() string { - if m != nil { - return m.Token - } - return "" + return nil } type GetFriendApplyResp struct { - ErrorCode int32 `protobuf:"varint,1,opt,name=errorCode" json:"errorCode,omitempty"` - ErrorMsg string `protobuf:"bytes,2,opt,name=errorMsg" json:"errorMsg,omitempty"` + ErrCode int32 `protobuf:"varint,1,opt,name=ErrCode" json:"ErrCode,omitempty"` + ErrMsg string `protobuf:"bytes,2,opt,name=ErrMsg" json:"ErrMsg,omitempty"` Data []*ApplyUserInfo `protobuf:"bytes,4,rep,name=data" json:"data,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` @@ -524,7 +499,7 @@ func (m *GetFriendApplyResp) Reset() { *m = GetFriendApplyResp{} } func (m *GetFriendApplyResp) String() string { return proto.CompactTextString(m) } func (*GetFriendApplyResp) ProtoMessage() {} func (*GetFriendApplyResp) Descriptor() ([]byte, []int) { - return fileDescriptor_friend_03bf5fbe59a174aa, []int{8} + return fileDescriptor_friend_525e368387d696e2, []int{9} } func (m *GetFriendApplyResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetFriendApplyResp.Unmarshal(m, b) @@ -544,16 +519,16 @@ func (m *GetFriendApplyResp) XXX_DiscardUnknown() { var xxx_messageInfo_GetFriendApplyResp proto.InternalMessageInfo -func (m *GetFriendApplyResp) GetErrorCode() int32 { +func (m *GetFriendApplyResp) GetErrCode() int32 { if m != nil { - return m.ErrorCode + return m.ErrCode } return 0 } -func (m *GetFriendApplyResp) GetErrorMsg() string { +func (m *GetFriendApplyResp) GetErrMsg() string { if m != nil { - return m.ErrorMsg + return m.ErrMsg } return "" } @@ -566,27 +541,20 @@ func (m *GetFriendApplyResp) GetData() []*ApplyUserInfo { } type ApplyUserInfo struct { - Uid string `protobuf:"bytes,1,opt,name=uid" json:"uid,omitempty"` - Name string `protobuf:"bytes,2,opt,name=name" json:"name,omitempty"` - Icon string `protobuf:"bytes,3,opt,name=icon" json:"icon,omitempty"` - Gender int32 `protobuf:"varint,4,opt,name=gender" json:"gender,omitempty"` - Mobile string `protobuf:"bytes,5,opt,name=mobile" json:"mobile,omitempty"` - Birth string `protobuf:"bytes,6,opt,name=birth" json:"birth,omitempty"` - Email string `protobuf:"bytes,7,opt,name=email" json:"email,omitempty"` - Ex string `protobuf:"bytes,8,opt,name=ex" json:"ex,omitempty"` - Flag int32 `protobuf:"varint,9,opt,name=flag" json:"flag,omitempty"` - ApplyTime string `protobuf:"bytes,10,opt,name=applyTime" json:"applyTime,omitempty"` - ReqMessage string `protobuf:"bytes,11,opt,name=reqMessage" json:"reqMessage,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + UserInfo *sdk_ws.PublicUserInfo `protobuf:"bytes,1,opt,name=UserInfo" json:"UserInfo,omitempty"` + ApplyTime int64 `protobuf:"varint,2,opt,name=applyTime" json:"applyTime,omitempty"` + ReqMessage string `protobuf:"bytes,3,opt,name=reqMessage" json:"reqMessage,omitempty"` + Flag int32 `protobuf:"varint,4,opt,name=Flag" json:"Flag,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } func (m *ApplyUserInfo) Reset() { *m = ApplyUserInfo{} } func (m *ApplyUserInfo) String() string { return proto.CompactTextString(m) } func (*ApplyUserInfo) ProtoMessage() {} func (*ApplyUserInfo) Descriptor() ([]byte, []int) { - return fileDescriptor_friend_03bf5fbe59a174aa, []int{9} + return fileDescriptor_friend_525e368387d696e2, []int{10} } func (m *ApplyUserInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ApplyUserInfo.Unmarshal(m, b) @@ -606,58 +574,23 @@ func (m *ApplyUserInfo) XXX_DiscardUnknown() { var xxx_messageInfo_ApplyUserInfo proto.InternalMessageInfo -func (m *ApplyUserInfo) GetUid() string { +func (m *ApplyUserInfo) GetUserInfo() *sdk_ws.PublicUserInfo { if m != nil { - return m.Uid + return m.UserInfo } - return "" -} - -func (m *ApplyUserInfo) GetName() string { - if m != nil { - return m.Name - } - return "" -} - -func (m *ApplyUserInfo) GetIcon() string { - if m != nil { - return m.Icon - } - return "" + return nil } -func (m *ApplyUserInfo) GetGender() int32 { +func (m *ApplyUserInfo) GetApplyTime() int64 { if m != nil { - return m.Gender + return m.ApplyTime } return 0 } -func (m *ApplyUserInfo) GetMobile() string { - if m != nil { - return m.Mobile - } - return "" -} - -func (m *ApplyUserInfo) GetBirth() string { - if m != nil { - return m.Birth - } - return "" -} - -func (m *ApplyUserInfo) GetEmail() string { - if m != nil { - return m.Email - } - return "" -} - -func (m *ApplyUserInfo) GetEx() string { +func (m *ApplyUserInfo) GetReqMessage() string { if m != nil { - return m.Ex + return m.ReqMessage } return "" } @@ -669,23 +602,8 @@ func (m *ApplyUserInfo) GetFlag() int32 { return 0 } -func (m *ApplyUserInfo) GetApplyTime() string { - if m != nil { - return m.ApplyTime - } - return "" -} - -func (m *ApplyUserInfo) GetReqMessage() string { - if m != nil { - return m.ReqMessage - } - return "" -} - type GetFriendListReq struct { - OperationID string `protobuf:"bytes,1,opt,name=OperationID" json:"OperationID,omitempty"` - Token string `protobuf:"bytes,2,opt,name=Token" json:"Token,omitempty"` + CommID *CommID `protobuf:"bytes,1,opt,name=CommID" json:"CommID,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -695,7 +613,7 @@ func (m *GetFriendListReq) Reset() { *m = GetFriendListReq{} } func (m *GetFriendListReq) String() string { return proto.CompactTextString(m) } func (*GetFriendListReq) ProtoMessage() {} func (*GetFriendListReq) Descriptor() ([]byte, []int) { - return fileDescriptor_friend_03bf5fbe59a174aa, []int{10} + return fileDescriptor_friend_525e368387d696e2, []int{11} } func (m *GetFriendListReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetFriendListReq.Unmarshal(m, b) @@ -715,34 +633,27 @@ func (m *GetFriendListReq) XXX_DiscardUnknown() { var xxx_messageInfo_GetFriendListReq proto.InternalMessageInfo -func (m *GetFriendListReq) GetOperationID() string { +func (m *GetFriendListReq) GetCommID() *CommID { if m != nil { - return m.OperationID + return m.CommID } - return "" -} - -func (m *GetFriendListReq) GetToken() string { - if m != nil { - return m.Token - } - return "" + return nil } type GetFriendListResp struct { - ErrorCode int32 `protobuf:"varint,1,opt,name=errorCode" json:"errorCode,omitempty"` - ErrorMsg string `protobuf:"bytes,2,opt,name=errorMsg" json:"errorMsg,omitempty"` - Data []*UserInfo `protobuf:"bytes,3,rep,name=data" json:"data,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + ErrCode int32 `protobuf:"varint,1,opt,name=ErrCode" json:"ErrCode,omitempty"` + ErrMsg string `protobuf:"bytes,2,opt,name=ErrMsg" json:"ErrMsg,omitempty"` + Data []*FriendInfo `protobuf:"bytes,3,rep,name=Data" json:"Data,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } func (m *GetFriendListResp) Reset() { *m = GetFriendListResp{} } func (m *GetFriendListResp) String() string { return proto.CompactTextString(m) } func (*GetFriendListResp) ProtoMessage() {} func (*GetFriendListResp) Descriptor() ([]byte, []int) { - return fileDescriptor_friend_03bf5fbe59a174aa, []int{11} + return fileDescriptor_friend_525e368387d696e2, []int{12} } func (m *GetFriendListResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetFriendListResp.Unmarshal(m, b) @@ -762,142 +673,29 @@ func (m *GetFriendListResp) XXX_DiscardUnknown() { var xxx_messageInfo_GetFriendListResp proto.InternalMessageInfo -func (m *GetFriendListResp) GetErrorCode() int32 { +func (m *GetFriendListResp) GetErrCode() int32 { if m != nil { - return m.ErrorCode + return m.ErrCode } return 0 } -func (m *GetFriendListResp) GetErrorMsg() string { +func (m *GetFriendListResp) GetErrMsg() string { if m != nil { - return m.ErrorMsg + return m.ErrMsg } return "" } -func (m *GetFriendListResp) GetData() []*UserInfo { +func (m *GetFriendListResp) GetData() []*FriendInfo { if m != nil { return m.Data } return nil } -type UserInfo struct { - Uid string `protobuf:"bytes,1,opt,name=uid" json:"uid,omitempty"` - Name string `protobuf:"bytes,3,opt,name=name" json:"name,omitempty"` - Icon string `protobuf:"bytes,2,opt,name=icon" json:"icon,omitempty"` - Gender int32 `protobuf:"varint,4,opt,name=gender" json:"gender,omitempty"` - Mobile string `protobuf:"bytes,5,opt,name=mobile" json:"mobile,omitempty"` - Birth string `protobuf:"bytes,6,opt,name=birth" json:"birth,omitempty"` - Email string `protobuf:"bytes,7,opt,name=email" json:"email,omitempty"` - Ex string `protobuf:"bytes,8,opt,name=ex" json:"ex,omitempty"` - Comment string `protobuf:"bytes,9,opt,name=comment" json:"comment,omitempty"` - IsInBlackList int32 `protobuf:"varint,10,opt,name=isInBlackList" json:"isInBlackList,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -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_friend_03bf5fbe59a174aa, []int{12} -} -func (m *UserInfo) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_UserInfo.Unmarshal(m, b) -} -func (m *UserInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_UserInfo.Marshal(b, m, deterministic) -} -func (dst *UserInfo) XXX_Merge(src proto.Message) { - xxx_messageInfo_UserInfo.Merge(dst, src) -} -func (m *UserInfo) XXX_Size() int { - return xxx_messageInfo_UserInfo.Size(m) -} -func (m *UserInfo) XXX_DiscardUnknown() { - xxx_messageInfo_UserInfo.DiscardUnknown(m) -} - -var xxx_messageInfo_UserInfo proto.InternalMessageInfo - -func (m *UserInfo) GetUid() string { - if m != nil { - return m.Uid - } - return "" -} - -func (m *UserInfo) GetName() string { - if m != nil { - return m.Name - } - return "" -} - -func (m *UserInfo) GetIcon() string { - if m != nil { - return m.Icon - } - return "" -} - -func (m *UserInfo) GetGender() int32 { - if m != nil { - return m.Gender - } - return 0 -} - -func (m *UserInfo) GetMobile() string { - if m != nil { - return m.Mobile - } - return "" -} - -func (m *UserInfo) GetBirth() string { - if m != nil { - return m.Birth - } - return "" -} - -func (m *UserInfo) GetEmail() string { - if m != nil { - return m.Email - } - return "" -} - -func (m *UserInfo) GetEx() string { - if m != nil { - return m.Ex - } - return "" -} - -func (m *UserInfo) GetComment() string { - if m != nil { - return m.Comment - } - return "" -} - -func (m *UserInfo) GetIsInBlackList() int32 { - if m != nil { - return m.IsInBlackList - } - return 0 -} - type AddBlacklistReq struct { - Uid string `protobuf:"bytes,1,opt,name=uid" json:"uid,omitempty"` - OperationID string `protobuf:"bytes,2,opt,name=OperationID" json:"OperationID,omitempty"` - Token string `protobuf:"bytes,3,opt,name=Token" json:"Token,omitempty"` - OwnerUid string `protobuf:"bytes,4,opt,name=OwnerUid" json:"OwnerUid,omitempty"` + CommID *CommID `protobuf:"bytes,1,opt,name=CommID" json:"CommID,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -907,7 +705,7 @@ func (m *AddBlacklistReq) Reset() { *m = AddBlacklistReq{} } func (m *AddBlacklistReq) String() string { return proto.CompactTextString(m) } func (*AddBlacklistReq) ProtoMessage() {} func (*AddBlacklistReq) Descriptor() ([]byte, []int) { - return fileDescriptor_friend_03bf5fbe59a174aa, []int{13} + return fileDescriptor_friend_525e368387d696e2, []int{13} } func (m *AddBlacklistReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_AddBlacklistReq.Unmarshal(m, b) @@ -927,38 +725,15 @@ func (m *AddBlacklistReq) XXX_DiscardUnknown() { var xxx_messageInfo_AddBlacklistReq proto.InternalMessageInfo -func (m *AddBlacklistReq) GetUid() string { +func (m *AddBlacklistReq) GetCommID() *CommID { if m != nil { - return m.Uid + return m.CommID } - return "" -} - -func (m *AddBlacklistReq) GetOperationID() string { - if m != nil { - return m.OperationID - } - return "" -} - -func (m *AddBlacklistReq) GetToken() string { - if m != nil { - return m.Token - } - return "" -} - -func (m *AddBlacklistReq) GetOwnerUid() string { - if m != nil { - return m.OwnerUid - } - return "" + return nil } type RemoveBlacklistReq struct { - Uid string `protobuf:"bytes,1,opt,name=uid" json:"uid,omitempty"` - OperationID string `protobuf:"bytes,2,opt,name=OperationID" json:"OperationID,omitempty"` - Token string `protobuf:"bytes,3,opt,name=Token" json:"Token,omitempty"` + CommID *CommID `protobuf:"bytes,1,opt,name=CommID" json:"CommID,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -968,7 +743,7 @@ func (m *RemoveBlacklistReq) Reset() { *m = RemoveBlacklistReq{} } func (m *RemoveBlacklistReq) String() string { return proto.CompactTextString(m) } func (*RemoveBlacklistReq) ProtoMessage() {} func (*RemoveBlacklistReq) Descriptor() ([]byte, []int) { - return fileDescriptor_friend_03bf5fbe59a174aa, []int{14} + return fileDescriptor_friend_525e368387d696e2, []int{14} } func (m *RemoveBlacklistReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_RemoveBlacklistReq.Unmarshal(m, b) @@ -988,30 +763,15 @@ func (m *RemoveBlacklistReq) XXX_DiscardUnknown() { var xxx_messageInfo_RemoveBlacklistReq proto.InternalMessageInfo -func (m *RemoveBlacklistReq) GetUid() string { +func (m *RemoveBlacklistReq) GetCommID() *CommID { if m != nil { - return m.Uid + return m.CommID } - return "" -} - -func (m *RemoveBlacklistReq) GetOperationID() string { - if m != nil { - return m.OperationID - } - return "" -} - -func (m *RemoveBlacklistReq) GetToken() string { - if m != nil { - return m.Token - } - return "" + return nil } type GetBlacklistReq struct { - OperationID string `protobuf:"bytes,1,opt,name=OperationID" json:"OperationID,omitempty"` - Token string `protobuf:"bytes,2,opt,name=token" json:"token,omitempty"` + CommID *CommID `protobuf:"bytes,1,opt,name=CommID" json:"CommID,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -1021,7 +781,7 @@ func (m *GetBlacklistReq) Reset() { *m = GetBlacklistReq{} } func (m *GetBlacklistReq) String() string { return proto.CompactTextString(m) } func (*GetBlacklistReq) ProtoMessage() {} func (*GetBlacklistReq) Descriptor() ([]byte, []int) { - return fileDescriptor_friend_03bf5fbe59a174aa, []int{15} + return fileDescriptor_friend_525e368387d696e2, []int{15} } func (m *GetBlacklistReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetBlacklistReq.Unmarshal(m, b) @@ -1041,34 +801,27 @@ func (m *GetBlacklistReq) XXX_DiscardUnknown() { var xxx_messageInfo_GetBlacklistReq proto.InternalMessageInfo -func (m *GetBlacklistReq) GetOperationID() string { - if m != nil { - return m.OperationID - } - return "" -} - -func (m *GetBlacklistReq) GetToken() string { +func (m *GetBlacklistReq) GetCommID() *CommID { if m != nil { - return m.Token + return m.CommID } - return "" + return nil } type GetBlacklistResp struct { - ErrorCode int32 `protobuf:"varint,1,opt,name=errorCode" json:"errorCode,omitempty"` - ErrorMsg string `protobuf:"bytes,2,opt,name=errorMsg" json:"errorMsg,omitempty"` - Data []*UserInfo `protobuf:"bytes,3,rep,name=data" json:"data,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + ErrCode int32 `protobuf:"varint,1,opt,name=ErrCode" json:"ErrCode,omitempty"` + ErrMsg string `protobuf:"bytes,2,opt,name=ErrMsg" json:"ErrMsg,omitempty"` + Data []*sdk_ws.PublicUserInfo `protobuf:"bytes,3,rep,name=data" json:"data,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } func (m *GetBlacklistResp) Reset() { *m = GetBlacklistResp{} } func (m *GetBlacklistResp) String() string { return proto.CompactTextString(m) } func (*GetBlacklistResp) ProtoMessage() {} func (*GetBlacklistResp) Descriptor() ([]byte, []int) { - return fileDescriptor_friend_03bf5fbe59a174aa, []int{16} + return fileDescriptor_friend_525e368387d696e2, []int{16} } func (m *GetBlacklistResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetBlacklistResp.Unmarshal(m, b) @@ -1088,21 +841,21 @@ func (m *GetBlacklistResp) XXX_DiscardUnknown() { var xxx_messageInfo_GetBlacklistResp proto.InternalMessageInfo -func (m *GetBlacklistResp) GetErrorCode() int32 { +func (m *GetBlacklistResp) GetErrCode() int32 { if m != nil { - return m.ErrorCode + return m.ErrCode } return 0 } -func (m *GetBlacklistResp) GetErrorMsg() string { +func (m *GetBlacklistResp) GetErrMsg() string { if m != nil { - return m.ErrorMsg + return m.ErrMsg } return "" } -func (m *GetBlacklistResp) GetData() []*UserInfo { +func (m *GetBlacklistResp) GetData() []*sdk_ws.PublicUserInfo { if m != nil { return m.Data } @@ -1110,9 +863,7 @@ func (m *GetBlacklistResp) GetData() []*UserInfo { } type IsFriendReq struct { - Token string `protobuf:"bytes,1,opt,name=token" json:"token,omitempty"` - ReceiveUid string `protobuf:"bytes,2,opt,name=receiveUid" json:"receiveUid,omitempty"` - OperationID string `protobuf:"bytes,3,opt,name=OperationID" json:"OperationID,omitempty"` + CommID *CommID `protobuf:"bytes,1,opt,name=CommID" json:"CommID,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -1122,7 +873,7 @@ func (m *IsFriendReq) Reset() { *m = IsFriendReq{} } func (m *IsFriendReq) String() string { return proto.CompactTextString(m) } func (*IsFriendReq) ProtoMessage() {} func (*IsFriendReq) Descriptor() ([]byte, []int) { - return fileDescriptor_friend_03bf5fbe59a174aa, []int{17} + return fileDescriptor_friend_525e368387d696e2, []int{17} } func (m *IsFriendReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_IsFriendReq.Unmarshal(m, b) @@ -1142,31 +893,17 @@ func (m *IsFriendReq) XXX_DiscardUnknown() { var xxx_messageInfo_IsFriendReq proto.InternalMessageInfo -func (m *IsFriendReq) GetToken() string { +func (m *IsFriendReq) GetCommID() *CommID { if m != nil { - return m.Token + return m.CommID } - return "" -} - -func (m *IsFriendReq) GetReceiveUid() string { - if m != nil { - return m.ReceiveUid - } - return "" -} - -func (m *IsFriendReq) GetOperationID() string { - if m != nil { - return m.OperationID - } - return "" + return nil } type IsFriendResp struct { - ErrorCode int32 `protobuf:"varint,1,opt,name=errorCode" json:"errorCode,omitempty"` - ErrorMsg string `protobuf:"bytes,2,opt,name=errorMsg" json:"errorMsg,omitempty"` - ShipType int32 `protobuf:"varint,3,opt,name=shipType" json:"shipType,omitempty"` + ErrCode int32 `protobuf:"varint,1,opt,name=ErrCode" json:"ErrCode,omitempty"` + ErrMsg string `protobuf:"bytes,2,opt,name=ErrMsg" json:"ErrMsg,omitempty"` + ShipType int32 `protobuf:"varint,3,opt,name=ShipType" json:"ShipType,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -1176,7 +913,7 @@ func (m *IsFriendResp) Reset() { *m = IsFriendResp{} } func (m *IsFriendResp) String() string { return proto.CompactTextString(m) } func (*IsFriendResp) ProtoMessage() {} func (*IsFriendResp) Descriptor() ([]byte, []int) { - return fileDescriptor_friend_03bf5fbe59a174aa, []int{18} + return fileDescriptor_friend_525e368387d696e2, []int{18} } func (m *IsFriendResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_IsFriendResp.Unmarshal(m, b) @@ -1196,16 +933,16 @@ func (m *IsFriendResp) XXX_DiscardUnknown() { var xxx_messageInfo_IsFriendResp proto.InternalMessageInfo -func (m *IsFriendResp) GetErrorCode() int32 { +func (m *IsFriendResp) GetErrCode() int32 { if m != nil { - return m.ErrorCode + return m.ErrCode } return 0 } -func (m *IsFriendResp) GetErrorMsg() string { +func (m *IsFriendResp) GetErrMsg() string { if m != nil { - return m.ErrorMsg + return m.ErrMsg } return "" } @@ -1218,9 +955,7 @@ func (m *IsFriendResp) GetShipType() int32 { } type IsInBlackListReq struct { - SendUid string `protobuf:"bytes,1,opt,name=sendUid" json:"sendUid,omitempty"` - ReceiveUid string `protobuf:"bytes,2,opt,name=receiveUid" json:"receiveUid,omitempty"` - OperationID string `protobuf:"bytes,3,opt,name=OperationID" json:"OperationID,omitempty"` + CommID *CommID `protobuf:"bytes,1,opt,name=CommID" json:"CommID,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -1230,7 +965,7 @@ func (m *IsInBlackListReq) Reset() { *m = IsInBlackListReq{} } func (m *IsInBlackListReq) String() string { return proto.CompactTextString(m) } func (*IsInBlackListReq) ProtoMessage() {} func (*IsInBlackListReq) Descriptor() ([]byte, []int) { - return fileDescriptor_friend_03bf5fbe59a174aa, []int{19} + return fileDescriptor_friend_525e368387d696e2, []int{19} } func (m *IsInBlackListReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_IsInBlackListReq.Unmarshal(m, b) @@ -1250,31 +985,17 @@ func (m *IsInBlackListReq) XXX_DiscardUnknown() { var xxx_messageInfo_IsInBlackListReq proto.InternalMessageInfo -func (m *IsInBlackListReq) GetSendUid() string { +func (m *IsInBlackListReq) GetCommID() *CommID { if m != nil { - return m.SendUid - } - return "" -} - -func (m *IsInBlackListReq) GetReceiveUid() string { - if m != nil { - return m.ReceiveUid - } - return "" -} - -func (m *IsInBlackListReq) GetOperationID() string { - if m != nil { - return m.OperationID + return m.CommID } - return "" + return nil } type IsInBlackListResp struct { - ErrorCode int32 `protobuf:"varint,1,opt,name=errorCode" json:"errorCode,omitempty"` - ErrorMsg string `protobuf:"bytes,2,opt,name=errorMsg" json:"errorMsg,omitempty"` - Response bool `protobuf:"varint,3,opt,name=response" json:"response,omitempty"` + ErrCode int32 `protobuf:"varint,1,opt,name=ErrCode" json:"ErrCode,omitempty"` + ErrMsg string `protobuf:"bytes,2,opt,name=ErrMsg" json:"ErrMsg,omitempty"` + Response bool `protobuf:"varint,3,opt,name=Response" json:"Response,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -1284,7 +1005,7 @@ func (m *IsInBlackListResp) Reset() { *m = IsInBlackListResp{} } func (m *IsInBlackListResp) String() string { return proto.CompactTextString(m) } func (*IsInBlackListResp) ProtoMessage() {} func (*IsInBlackListResp) Descriptor() ([]byte, []int) { - return fileDescriptor_friend_03bf5fbe59a174aa, []int{20} + return fileDescriptor_friend_525e368387d696e2, []int{20} } func (m *IsInBlackListResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_IsInBlackListResp.Unmarshal(m, b) @@ -1304,16 +1025,16 @@ func (m *IsInBlackListResp) XXX_DiscardUnknown() { var xxx_messageInfo_IsInBlackListResp proto.InternalMessageInfo -func (m *IsInBlackListResp) GetErrorCode() int32 { +func (m *IsInBlackListResp) GetErrCode() int32 { if m != nil { - return m.ErrorCode + return m.ErrCode } return 0 } -func (m *IsInBlackListResp) GetErrorMsg() string { +func (m *IsInBlackListResp) GetErrMsg() string { if m != nil { - return m.ErrorMsg + return m.ErrMsg } return "" } @@ -1326,9 +1047,7 @@ func (m *IsInBlackListResp) GetResponse() bool { } type DeleteFriendReq struct { - Uid string `protobuf:"bytes,1,opt,name=uid" json:"uid,omitempty"` - OperationID string `protobuf:"bytes,2,opt,name=OperationID" json:"OperationID,omitempty"` - Token string `protobuf:"bytes,3,opt,name=Token" json:"Token,omitempty"` + CommID *CommID `protobuf:"bytes,1,opt,name=CommID" json:"CommID,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -1338,7 +1057,7 @@ func (m *DeleteFriendReq) Reset() { *m = DeleteFriendReq{} } func (m *DeleteFriendReq) String() string { return proto.CompactTextString(m) } func (*DeleteFriendReq) ProtoMessage() {} func (*DeleteFriendReq) Descriptor() ([]byte, []int) { - return fileDescriptor_friend_03bf5fbe59a174aa, []int{21} + return fileDescriptor_friend_525e368387d696e2, []int{21} } func (m *DeleteFriendReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_DeleteFriendReq.Unmarshal(m, b) @@ -1358,32 +1077,16 @@ func (m *DeleteFriendReq) XXX_DiscardUnknown() { var xxx_messageInfo_DeleteFriendReq proto.InternalMessageInfo -func (m *DeleteFriendReq) GetUid() string { +func (m *DeleteFriendReq) GetCommID() *CommID { if m != nil { - return m.Uid + return m.CommID } - return "" -} - -func (m *DeleteFriendReq) GetOperationID() string { - if m != nil { - return m.OperationID - } - return "" -} - -func (m *DeleteFriendReq) GetToken() string { - if m != nil { - return m.Token - } - return "" + return nil } type AddFriendResponseReq struct { - Uid string `protobuf:"bytes,1,opt,name=uid" json:"uid,omitempty"` + CommID *CommID `protobuf:"bytes,1,opt,name=CommID" json:"CommID,omitempty"` Flag int32 `protobuf:"varint,2,opt,name=flag" json:"flag,omitempty"` - OperationID string `protobuf:"bytes,3,opt,name=OperationID" json:"OperationID,omitempty"` - Token string `protobuf:"bytes,4,opt,name=Token" json:"Token,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -1393,7 +1096,7 @@ func (m *AddFriendResponseReq) Reset() { *m = AddFriendResponseReq{} } func (m *AddFriendResponseReq) String() string { return proto.CompactTextString(m) } func (*AddFriendResponseReq) ProtoMessage() {} func (*AddFriendResponseReq) Descriptor() ([]byte, []int) { - return fileDescriptor_friend_03bf5fbe59a174aa, []int{22} + return fileDescriptor_friend_525e368387d696e2, []int{22} } func (m *AddFriendResponseReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_AddFriendResponseReq.Unmarshal(m, b) @@ -1413,11 +1116,11 @@ func (m *AddFriendResponseReq) XXX_DiscardUnknown() { var xxx_messageInfo_AddFriendResponseReq proto.InternalMessageInfo -func (m *AddFriendResponseReq) GetUid() string { +func (m *AddFriendResponseReq) GetCommID() *CommID { if m != nil { - return m.Uid + return m.CommID } - return "" + return nil } func (m *AddFriendResponseReq) GetFlag() int32 { @@ -1427,25 +1130,9 @@ func (m *AddFriendResponseReq) GetFlag() int32 { return 0 } -func (m *AddFriendResponseReq) GetOperationID() string { - if m != nil { - return m.OperationID - } - return "" -} - -func (m *AddFriendResponseReq) GetToken() string { - if m != nil { - return m.Token - } - return "" -} - type SetFriendCommentReq struct { - Uid string `protobuf:"bytes,1,opt,name=uid" json:"uid,omitempty"` - OperationID string `protobuf:"bytes,2,opt,name=operationID" json:"operationID,omitempty"` - Comment string `protobuf:"bytes,3,opt,name=comment" json:"comment,omitempty"` - Token string `protobuf:"bytes,4,opt,name=token" json:"token,omitempty"` + CommID *CommID `protobuf:"bytes,1,opt,name=CommID" json:"CommID,omitempty"` + Remark string `protobuf:"bytes,2,opt,name=Remark" json:"Remark,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -1455,7 +1142,7 @@ func (m *SetFriendCommentReq) Reset() { *m = SetFriendCommentReq{} } func (m *SetFriendCommentReq) String() string { return proto.CompactTextString(m) } func (*SetFriendCommentReq) ProtoMessage() {} func (*SetFriendCommentReq) Descriptor() ([]byte, []int) { - return fileDescriptor_friend_03bf5fbe59a174aa, []int{23} + return fileDescriptor_friend_525e368387d696e2, []int{23} } func (m *SetFriendCommentReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SetFriendCommentReq.Unmarshal(m, b) @@ -1475,39 +1162,26 @@ func (m *SetFriendCommentReq) XXX_DiscardUnknown() { var xxx_messageInfo_SetFriendCommentReq proto.InternalMessageInfo -func (m *SetFriendCommentReq) GetUid() string { +func (m *SetFriendCommentReq) GetCommID() *CommID { if m != nil { - return m.Uid + return m.CommID } - return "" -} - -func (m *SetFriendCommentReq) GetOperationID() string { - if m != nil { - return m.OperationID - } - return "" -} - -func (m *SetFriendCommentReq) GetComment() string { - if m != nil { - return m.Comment - } - return "" + return nil } -func (m *SetFriendCommentReq) GetToken() string { +func (m *SetFriendCommentReq) GetRemark() string { if m != nil { - return m.Token + return m.Remark } return "" } func init() { proto.RegisterType((*CommonResp)(nil), "friend.CommonResp") + proto.RegisterType((*CommID)(nil), "friend.CommID") proto.RegisterType((*GetFriendsInfoReq)(nil), "friend.GetFriendsInfoReq") proto.RegisterType((*GetFriendInfoResp)(nil), "friend.GetFriendInfoResp") - proto.RegisterType((*GetFriendData)(nil), "friend.GetFriendData") + proto.RegisterType((*FriendInfo)(nil), "friend.FriendInfo") proto.RegisterType((*AddFriendReq)(nil), "friend.AddFriendReq") proto.RegisterType((*ImportFriendReq)(nil), "friend.ImportFriendReq") proto.RegisterType((*ImportFriendResp)(nil), "friend.ImportFriendResp") @@ -1516,7 +1190,6 @@ func init() { proto.RegisterType((*ApplyUserInfo)(nil), "friend.ApplyUserInfo") proto.RegisterType((*GetFriendListReq)(nil), "friend.getFriendListReq") proto.RegisterType((*GetFriendListResp)(nil), "friend.getFriendListResp") - proto.RegisterType((*UserInfo)(nil), "friend.UserInfo") proto.RegisterType((*AddBlacklistReq)(nil), "friend.AddBlacklistReq") proto.RegisterType((*RemoveBlacklistReq)(nil), "friend.RemoveBlacklistReq") proto.RegisterType((*GetBlacklistReq)(nil), "friend.GetBlacklistReq") @@ -2031,72 +1704,68 @@ var _Friend_serviceDesc = grpc.ServiceDesc{ Metadata: "friend/friend.proto", } -func init() { proto.RegisterFile("friend/friend.proto", fileDescriptor_friend_03bf5fbe59a174aa) } - -var fileDescriptor_friend_03bf5fbe59a174aa = []byte{ - // 1013 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x57, 0xcd, 0x6e, 0xdb, 0x46, - 0x10, 0x86, 0x48, 0xc9, 0x96, 0x46, 0x72, 0x24, 0xad, 0xdd, 0x96, 0x65, 0x83, 0x42, 0x20, 0x72, - 0x48, 0x2f, 0x2e, 0xe0, 0x22, 0xa7, 0x9c, 0x14, 0xbb, 0x0e, 0xd4, 0x34, 0x08, 0xc0, 0xd8, 0x97, - 0x16, 0x2d, 0x40, 0x8b, 0x23, 0x66, 0x11, 0xfe, 0x85, 0xcb, 0x24, 0xf6, 0xa9, 0xc7, 0x9e, 0xfb, - 0x28, 0x7d, 0xb3, 0x3e, 0x42, 0xb1, 0xbb, 0x24, 0x77, 0xf9, 0xa3, 0x34, 0xa8, 0x1c, 0xe7, 0x24, - 0xce, 0x70, 0x35, 0x3b, 0xdf, 0xcc, 0x7c, 0x33, 0x43, 0x38, 0xdc, 0x64, 0x14, 0x63, 0xff, 0x7b, - 0xf9, 0x73, 0x9c, 0x66, 0x49, 0x9e, 0x90, 0x3d, 0x29, 0x39, 0xe7, 0x00, 0xa7, 0x49, 0x14, 0x25, - 0xb1, 0x8b, 0x2c, 0x25, 0xf7, 0x61, 0x84, 0x59, 0x96, 0x64, 0xa7, 0x89, 0x8f, 0x56, 0x6f, 0xd1, - 0x7b, 0x38, 0x70, 0x95, 0x82, 0xd8, 0x30, 0x14, 0xc2, 0x73, 0x16, 0x58, 0xc6, 0xa2, 0xf7, 0x70, - 0xe4, 0x56, 0xb2, 0xf3, 0x1b, 0xcc, 0x9f, 0x62, 0x7e, 0x2e, 0x8c, 0xb2, 0x55, 0xbc, 0x49, 0x5c, - 0x7c, 0x43, 0x66, 0x60, 0xbe, 0xa5, 0xbe, 0x30, 0x34, 0x72, 0xf9, 0x23, 0x59, 0xc0, 0xf8, 0x45, - 0x8a, 0x99, 0x97, 0xd3, 0x24, 0x5e, 0x9d, 0x15, 0x56, 0x74, 0x15, 0x39, 0x82, 0xc1, 0x45, 0xf2, - 0x1a, 0x63, 0xcb, 0x14, 0xef, 0xa4, 0xe0, 0x5c, 0x6b, 0xe6, 0xa5, 0xf5, 0x5d, 0xbc, 0x25, 0xdf, - 0x41, 0xff, 0xcc, 0xcb, 0x3d, 0x71, 0xc7, 0xf8, 0xe4, 0x8b, 0xe3, 0x22, 0x34, 0xd5, 0x15, 0xfc, - 0xa5, 0x2b, 0x8e, 0x38, 0x7f, 0x19, 0x70, 0x50, 0xd3, 0x77, 0xa0, 0x22, 0xd0, 0xa7, 0xeb, 0x24, - 0x2e, 0xae, 0x11, 0xcf, 0x5c, 0x17, 0x7b, 0x11, 0x16, 0x30, 0xc4, 0x33, 0xf9, 0x12, 0xf6, 0x02, - 0x8c, 0x7d, 0xcc, 0xac, 0xbe, 0xf0, 0xb6, 0x90, 0xb8, 0x3e, 0x4a, 0xae, 0x68, 0x88, 0xd6, 0x40, - 0x9c, 0x2e, 0x24, 0x1e, 0x8b, 0x2b, 0x9a, 0xe5, 0xaf, 0xac, 0x3d, 0x19, 0x0b, 0x21, 0x70, 0x2d, - 0x46, 0x1e, 0x0d, 0xad, 0x7d, 0xa9, 0x15, 0x02, 0xb9, 0x07, 0x06, 0x5e, 0x5b, 0x43, 0xa1, 0x32, - 0xf0, 0x9a, 0x58, 0xb0, 0xbf, 0x4e, 0xa2, 0x08, 0xe3, 0xdc, 0x1a, 0x09, 0x65, 0x29, 0xf2, 0xc0, - 0x50, 0x26, 0xf1, 0x58, 0x20, 0xfc, 0xa8, 0x64, 0xf2, 0x00, 0x0e, 0x28, 0x5b, 0xc5, 0x4f, 0x42, - 0x6f, 0xfd, 0xfa, 0x67, 0xca, 0x72, 0x6b, 0x2c, 0x0e, 0xd4, 0x95, 0xce, 0x35, 0x4c, 0x96, 0xbe, - 0x2f, 0xff, 0x72, 0xab, 0x79, 0x26, 0xdf, 0x02, 0xb8, 0xf8, 0xe6, 0x39, 0x32, 0xe6, 0x05, 0x28, - 0xa2, 0x34, 0x72, 0x35, 0x8d, 0xf3, 0x07, 0x4c, 0x57, 0x51, 0x9a, 0x64, 0xb9, 0xba, 0xdc, 0x82, - 0xfd, 0xb7, 0xd4, 0x17, 0xce, 0xf6, 0x16, 0x26, 0x07, 0x5a, 0x88, 0xff, 0xdb, 0x09, 0x1b, 0x86, - 0x2f, 0xde, 0xc7, 0x98, 0x5d, 0x52, 0xbf, 0x70, 0xa1, 0x92, 0x9d, 0x10, 0x66, 0x75, 0x07, 0x58, - 0x4a, 0x4e, 0x00, 0xd6, 0x15, 0x87, 0x44, 0x14, 0xc6, 0x27, 0xa4, 0xac, 0x29, 0xc5, 0x2e, 0x57, - 0x3b, 0xc5, 0x03, 0xbd, 0xf1, 0x68, 0x88, 0xfe, 0x65, 0xe1, 0xbb, 0x21, 0x7c, 0xaf, 0x2b, 0x9d, - 0x67, 0x5a, 0xd9, 0x2f, 0xd3, 0x34, 0xbc, 0xe1, 0x80, 0x1b, 0xb0, 0x7a, 0x1f, 0x80, 0x65, 0xe8, - 0x1c, 0xba, 0x01, 0xd2, 0x34, 0xb6, 0x2b, 0x89, 0x7c, 0x4e, 0xa2, 0xfe, 0xc2, 0xd4, 0x49, 0x24, - 0x4c, 0x5f, 0x32, 0xcc, 0x04, 0x4f, 0xc5, 0x11, 0xe7, 0x4f, 0x03, 0x0e, 0x6a, 0xfa, 0x6e, 0x12, - 0x09, 0xc2, 0x18, 0x1a, 0x61, 0x4a, 0x62, 0x99, 0x1a, 0xb1, 0xee, 0x92, 0x44, 0x04, 0xfa, 0x9b, - 0xd0, 0x0b, 0x04, 0x83, 0x06, 0xae, 0x78, 0xe6, 0x01, 0xf3, 0x38, 0x94, 0x0b, 0x1a, 0xa1, 0xe0, - 0xcf, 0xc8, 0x55, 0x0a, 0x5e, 0xc0, 0x99, 0x2a, 0xe0, 0xb1, 0x2c, 0x60, 0xa5, 0x71, 0x7e, 0x82, - 0x59, 0x50, 0x26, 0x81, 0xa7, 0x78, 0x97, 0x84, 0x32, 0x98, 0x37, 0x6c, 0xed, 0x94, 0xcf, 0x07, - 0x45, 0x3e, 0x4d, 0x91, 0xcf, 0x59, 0x99, 0xcf, 0x46, 0x2a, 0xff, 0xe9, 0xc1, 0xf0, 0x23, 0xb2, - 0x68, 0x76, 0x64, 0xd1, 0xf8, 0x4c, 0x59, 0xdc, 0xde, 0x0a, 0x5b, 0xed, 0x0e, 0xba, 0xda, 0xdd, - 0x7b, 0x98, 0x2e, 0x7d, 0x5f, 0xc8, 0x61, 0x91, 0xb2, 0xdb, 0xeb, 0x78, 0x1f, 0x6a, 0x36, 0xbf, - 0x03, 0x71, 0x31, 0x4a, 0xde, 0xe1, 0xa7, 0xb9, 0xdb, 0x59, 0xc1, 0xf4, 0x29, 0xe6, 0x35, 0xe3, - 0x1f, 0x55, 0x8b, 0xb9, 0x5e, 0x8b, 0x42, 0x70, 0x32, 0x98, 0xd5, 0x4d, 0xdd, 0x41, 0x29, 0x22, - 0x8c, 0x57, 0x4c, 0x0d, 0x82, 0xca, 0xb1, 0x9e, 0xe6, 0x98, 0x24, 0xe4, 0x1a, 0xe9, 0x3b, 0xe4, - 0x11, 0x36, 0x4a, 0x42, 0x96, 0x9a, 0x26, 0x60, 0xb3, 0x05, 0xd8, 0xf1, 0x61, 0xa2, 0xae, 0xd9, - 0x09, 0x96, 0x0d, 0x43, 0xf6, 0x8a, 0xa6, 0x17, 0x37, 0xa9, 0x24, 0xc8, 0xc0, 0xad, 0x64, 0x27, - 0x86, 0xd9, 0x4a, 0xaf, 0xba, 0x62, 0xb4, 0x31, 0x8c, 0xf9, 0x34, 0x28, 0x30, 0x95, 0xe2, 0x2d, - 0xa0, 0xa2, 0x30, 0x6f, 0xdc, 0xb7, 0x2b, 0xb4, 0x0c, 0x59, 0x9a, 0xc4, 0x4c, 0x42, 0x1b, 0xba, - 0x95, 0xec, 0xfc, 0x0a, 0xd3, 0x33, 0x0c, 0x31, 0xc7, 0x4f, 0xb0, 0x31, 0x38, 0x39, 0x1c, 0x69, - 0xbb, 0x88, 0xbc, 0xb1, 0xfb, 0x86, 0xb2, 0x99, 0x1b, 0x5a, 0x33, 0xff, 0xcf, 0x38, 0xa9, 0x5b, - 0xfb, 0xf5, 0x59, 0x7a, 0xf8, 0xb2, 0x6c, 0xbd, 0xa7, 0xb2, 0x99, 0x6c, 0x85, 0x95, 0xb4, 0x61, - 0x69, 0x2a, 0xbd, 0x3b, 0x99, 0xf5, 0xee, 0x54, 0x15, 0x74, 0x5f, 0x2b, 0xe8, 0x93, 0xbf, 0xf7, - 0xa1, 0x58, 0xde, 0xc9, 0x39, 0xdc, 0x0b, 0x6a, 0x4b, 0x37, 0xf9, 0xba, 0xb5, 0xca, 0x96, 0xcb, - 0xb8, 0xdd, 0x7e, 0x55, 0x2d, 0xd2, 0x8f, 0x60, 0xe4, 0x95, 0x31, 0x24, 0x47, 0xd5, 0x20, 0xd7, - 0x56, 0x3c, 0xbb, 0x63, 0x9f, 0x21, 0xcf, 0x80, 0x04, 0xb5, 0x85, 0x42, 0x6c, 0x5d, 0xed, 0x7b, - 0xca, 0xcd, 0xc5, 0xb6, 0xb7, 0xbd, 0x62, 0x29, 0x59, 0x89, 0xc1, 0xf8, 0x12, 0xc3, 0xcd, 0xce, - 0xa6, 0xce, 0xe0, 0xa0, 0x36, 0x17, 0x89, 0x55, 0x1e, 0x6e, 0x8e, 0x5e, 0x15, 0x94, 0xf6, 0x20, - 0x7d, 0x0c, 0x13, 0x4f, 0xeb, 0xfa, 0xe4, 0x2b, 0x2d, 0x2e, 0x7a, 0xcb, 0xec, 0x0c, 0xcd, 0x12, - 0xa6, 0x59, 0xbd, 0x73, 0x93, 0xca, 0xe3, 0x76, 0x4b, 0xef, 0x34, 0xf1, 0x48, 0xad, 0xe9, 0xe4, - 0xb0, 0x7c, 0xaf, 0xf5, 0x3b, 0xfb, 0xa8, 0xad, 0x94, 0xe0, 0x6b, 0xd3, 0x4b, 0x81, 0x6f, 0xb6, - 0x17, 0x05, 0xbe, 0xdd, 0x08, 0x96, 0x30, 0x09, 0xb4, 0x76, 0xae, 0xc0, 0x37, 0xe6, 0x85, 0x6d, - 0x75, 0xbf, 0x90, 0xf1, 0xf3, 0x35, 0xd6, 0x2b, 0x13, 0x8d, 0x5e, 0xd0, 0x09, 0xfe, 0x47, 0x98, - 0x7b, 0x4d, 0x56, 0x93, 0xfb, 0x1d, 0x95, 0x59, 0x11, 0xbe, 0xd3, 0xcc, 0x29, 0xcc, 0x58, 0x83, - 0xa6, 0xe4, 0x9b, 0xf2, 0x5c, 0x07, 0x81, 0xb7, 0xe4, 0x72, 0xa2, 0xaf, 0xfc, 0x0a, 0x48, 0xe3, - 0x4b, 0x44, 0xc5, 0xa2, 0xf9, 0x85, 0xf0, 0x64, 0xfe, 0xcb, 0xf4, 0xb8, 0xf8, 0xfe, 0x7e, 0x2c, - 0x7f, 0xae, 0xf6, 0xc4, 0x77, 0xf8, 0x0f, 0xff, 0x06, 0x00, 0x00, 0xff, 0xff, 0x6e, 0xf2, 0x29, - 0xc4, 0x9e, 0x0f, 0x00, 0x00, +func init() { proto.RegisterFile("friend/friend.proto", fileDescriptor_friend_525e368387d696e2) } + +var fileDescriptor_friend_525e368387d696e2 = []byte{ + // 950 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xa4, 0x57, 0x5f, 0x6f, 0xe3, 0x44, + 0x10, 0x57, 0x9a, 0xa4, 0x97, 0x4c, 0xd3, 0x4b, 0x3a, 0x2d, 0x10, 0x7c, 0x27, 0x14, 0x2c, 0x74, + 0x2a, 0x3c, 0x24, 0x52, 0x51, 0x85, 0x8e, 0x22, 0xa4, 0x5c, 0xd3, 0x9e, 0x2c, 0xa8, 0x8a, 0xb6, + 0x2d, 0x0f, 0x08, 0xa9, 0xf2, 0xd5, 0x9b, 0x60, 0xc5, 0xff, 0xea, 0xf5, 0x51, 0xdd, 0x2b, 0x1f, + 0x03, 0x3e, 0x05, 0x4f, 0x7c, 0x3d, 0xb4, 0xbb, 0x5e, 0x7b, 0xd7, 0x49, 0x4f, 0xe7, 0xdc, 0x53, + 0xbc, 0x33, 0x3b, 0xb3, 0x33, 0x3f, 0xff, 0xe6, 0xe7, 0x0d, 0xec, 0xcf, 0x53, 0x9f, 0x46, 0xde, + 0x44, 0xfe, 0x8c, 0x93, 0x34, 0xce, 0x62, 0xdc, 0x96, 0x2b, 0xeb, 0xcb, 0xcb, 0x84, 0x46, 0xb7, + 0xce, 0xc5, 0x24, 0x59, 0x2e, 0x26, 0xc2, 0x35, 0x61, 0xde, 0xf2, 0xf6, 0x81, 0x4d, 0x1e, 0x98, + 0xdc, 0x6a, 0xff, 0x08, 0x70, 0x1a, 0x87, 0x61, 0x1c, 0x11, 0xca, 0x12, 0x1c, 0xc2, 0x13, 0x9a, + 0xa6, 0xa7, 0xb1, 0x47, 0x87, 0x8d, 0x51, 0xe3, 0xb0, 0x4d, 0xd4, 0x12, 0x3f, 0x85, 0x6d, 0x9a, + 0xa6, 0x17, 0x6c, 0x31, 0xdc, 0x1a, 0x35, 0x0e, 0xbb, 0x24, 0x5f, 0xd9, 0x7f, 0x35, 0x60, 0x9b, + 0x27, 0x70, 0x66, 0x68, 0x41, 0xe7, 0x32, 0xb9, 0x61, 0x34, 0x75, 0x66, 0x22, 0xba, 0x4b, 0x8a, + 0x35, 0x8e, 0x60, 0xe7, 0x32, 0xa1, 0xa9, 0x9b, 0xf9, 0x71, 0xe4, 0xcc, 0xf2, 0x1c, 0xba, 0x89, + 0x47, 0x5f, 0xc7, 0x79, 0x74, 0x4b, 0x46, 0xab, 0x35, 0x7e, 0x01, 0x70, 0x9e, 0xc6, 0x61, 0xee, + 0x6d, 0x0b, 0xaf, 0x66, 0xb1, 0x4f, 0x60, 0xef, 0x35, 0xcd, 0xce, 0x45, 0xd3, 0xcc, 0x89, 0xe6, + 0x31, 0xa1, 0xf7, 0xf8, 0x42, 0x15, 0x26, 0x8a, 0xd9, 0x39, 0x7a, 0x3a, 0xce, 0x31, 0x92, 0x56, + 0x92, 0x7b, 0xed, 0x50, 0x0b, 0x96, 0xb1, 0x12, 0x88, 0x33, 0x13, 0x88, 0xb3, 0x12, 0x88, 0x33, + 0x03, 0x08, 0xb9, 0xc2, 0x17, 0xd0, 0x9a, 0xb9, 0x99, 0x3b, 0x6c, 0x8a, 0xc3, 0x50, 0x1d, 0xa6, + 0xe5, 0x15, 0x7e, 0xfb, 0xbf, 0x06, 0x6f, 0x46, 0x19, 0x05, 0x30, 0x0f, 0x11, 0x4d, 0x0d, 0xdc, + 0x74, 0x13, 0x3f, 0x90, 0xd0, 0xd0, 0x4d, 0x97, 0xea, 0x40, 0xb9, 0xe2, 0xa0, 0x9c, 0xa6, 0xd4, + 0xcd, 0xe8, 0xb5, 0x1f, 0x52, 0x71, 0x6c, 0x8b, 0x68, 0x16, 0x3c, 0x56, 0xe7, 0xf0, 0x3c, 0x02, + 0xd2, 0x9d, 0xa3, 0x4f, 0xc6, 0x31, 0x67, 0x84, 0x1f, 0xde, 0x32, 0x6f, 0x39, 0x16, 0x07, 0xf0, + 0xca, 0xb4, 0x8d, 0xbc, 0x73, 0x87, 0xbd, 0x0a, 0xdc, 0xbb, 0xa5, 0x00, 0xba, 0x4d, 0xd4, 0xd2, + 0xfe, 0x15, 0x7a, 0x53, 0xcf, 0x93, 0x5b, 0x6b, 0x00, 0xcc, 0x0b, 0x25, 0xf4, 0xfe, 0x82, 0x32, + 0xe6, 0x2e, 0x68, 0xde, 0x84, 0x66, 0xb1, 0xff, 0x69, 0x40, 0xdf, 0x09, 0x93, 0x38, 0xcd, 0xca, + 0xdc, 0xdf, 0xc0, 0xa0, 0xac, 0xc9, 0x99, 0xfd, 0xec, 0xb3, 0x6c, 0xd8, 0x18, 0x35, 0x0f, 0xbb, + 0x64, 0xc5, 0xfe, 0x01, 0xdc, 0x32, 0xf9, 0xd3, 0xac, 0xf2, 0xc7, 0x60, 0x6e, 0xcb, 0x64, 0xae, + 0x1d, 0xc0, 0xc0, 0x2c, 0x8e, 0x25, 0x78, 0x04, 0x70, 0x57, 0x0c, 0x4d, 0xde, 0x3d, 0xea, 0xdd, + 0x4b, 0x0f, 0xd1, 0x76, 0xe1, 0x57, 0xb0, 0x3b, 0x77, 0xfd, 0x80, 0x7a, 0x37, 0xbe, 0x27, 0xda, + 0xd9, 0x12, 0xed, 0x98, 0x46, 0x83, 0xc9, 0xd3, 0x24, 0x09, 0xde, 0xd5, 0x61, 0xf2, 0x3d, 0x60, + 0x35, 0x78, 0x23, 0x2a, 0x7f, 0x0d, 0x2d, 0x8f, 0x53, 0xb9, 0x35, 0x6a, 0x0a, 0xce, 0xe4, 0xa7, + 0x89, 0x94, 0x05, 0x67, 0xc4, 0x16, 0xfb, 0xef, 0x06, 0xec, 0x1a, 0x76, 0xfc, 0x0e, 0x3a, 0xea, + 0x39, 0x2f, 0xf7, 0x99, 0x41, 0xba, 0x5f, 0xde, 0xbe, 0x09, 0xfc, 0xbb, 0x22, 0x4d, 0xb1, 0x19, + 0x9f, 0x43, 0xd7, 0xe5, 0x99, 0x04, 0x9d, 0x79, 0x41, 0x4d, 0x52, 0x1a, 0xf8, 0x2b, 0x4c, 0x4b, + 0x12, 0xe5, 0xaf, 0xb0, 0xb4, 0x20, 0x42, 0xeb, 0x3c, 0x70, 0x17, 0xe2, 0xf5, 0xb5, 0x89, 0x78, + 0xb6, 0xbf, 0x87, 0xc1, 0x42, 0xe1, 0xc1, 0xd1, 0xad, 0xa9, 0x0a, 0x95, 0xd8, 0x8f, 0x54, 0x85, + 0xe6, 0x7b, 0x55, 0xe1, 0x25, 0xf4, 0xa7, 0x9e, 0x27, 0xe6, 0x2c, 0xa8, 0x59, 0xe9, 0x0f, 0x80, + 0x84, 0x86, 0xf1, 0x9f, 0x74, 0xa3, 0xe8, 0x97, 0xd0, 0x7f, 0x4d, 0xb3, 0x8d, 0x42, 0xdf, 0xc2, + 0xc0, 0x0c, 0xdd, 0x08, 0xa1, 0x49, 0x4e, 0x36, 0x89, 0xd0, 0x7b, 0xb9, 0x22, 0x29, 0x77, 0x0c, + 0x3b, 0x0e, 0xab, 0xad, 0x42, 0xf6, 0xef, 0xd0, 0x2b, 0xc3, 0x36, 0xaa, 0xd4, 0x82, 0xce, 0xd5, + 0x1f, 0x7e, 0x72, 0xfd, 0x2e, 0x91, 0x04, 0x6c, 0x93, 0x62, 0xcd, 0xa9, 0xe6, 0x30, 0x27, 0x12, + 0x60, 0xd4, 0xa5, 0x9a, 0x0b, 0x7b, 0x95, 0xd8, 0x4d, 0xcb, 0xe3, 0x91, 0x71, 0xc4, 0x64, 0x79, + 0x1d, 0x52, 0xac, 0xf9, 0x5b, 0x9e, 0xd1, 0x80, 0x66, 0xb4, 0x3e, 0x6e, 0x04, 0x0e, 0x34, 0xd5, + 0x97, 0xf9, 0xea, 0xa8, 0x3f, 0x42, 0x6b, 0xce, 0x07, 0x73, 0x4b, 0x0e, 0x26, 0x7f, 0xb6, 0x6f, + 0x60, 0xff, 0x4a, 0x0d, 0x17, 0xdf, 0x46, 0xa3, 0x3a, 0x80, 0x3d, 0xf6, 0x45, 0x3c, 0xfa, 0xf7, + 0x09, 0xe4, 0x37, 0x1f, 0x3c, 0x87, 0xa7, 0x0b, 0xe3, 0x46, 0x80, 0x9f, 0xab, 0x64, 0x2b, 0x37, + 0x05, 0x6b, 0xd5, 0x55, 0xdc, 0x03, 0x8e, 0xa1, 0xeb, 0xaa, 0xee, 0xf1, 0xa0, 0x50, 0x42, 0xed, + 0x33, 0x68, 0xad, 0x11, 0x7e, 0xfc, 0x09, 0x70, 0x61, 0x28, 0xb1, 0xf8, 0x50, 0xad, 0x9e, 0xa3, + 0x24, 0xde, 0xb2, 0x1e, 0x73, 0xb1, 0x04, 0x1d, 0x21, 0x63, 0x57, 0x34, 0x98, 0x7f, 0x74, 0xaa, + 0x19, 0xec, 0x1a, 0xaa, 0x86, 0x43, 0xb5, 0xb9, 0x2a, 0x94, 0x25, 0x28, 0xab, 0x32, 0x78, 0x02, + 0x3d, 0x57, 0x13, 0x2b, 0xfc, 0x4c, 0xc3, 0x45, 0x57, 0x92, 0xb5, 0xd0, 0x4c, 0xa1, 0x9f, 0x9a, + 0x72, 0x85, 0x45, 0xc5, 0xab, 0x3a, 0xb6, 0x36, 0xc5, 0x31, 0x74, 0xfc, 0x7c, 0x94, 0x71, 0x5f, + 0xf9, 0x35, 0x4d, 0xb0, 0x0e, 0x56, 0x8d, 0xb2, 0x79, 0x5f, 0x9f, 0xb3, 0xb2, 0xf9, 0xea, 0xe8, + 0x96, 0xcd, 0xaf, 0x0e, 0xe6, 0x14, 0x7a, 0x0b, 0x4d, 0xf5, 0xca, 0xe6, 0x2b, 0x32, 0x6a, 0x0d, + 0xd7, 0x3b, 0x24, 0x7e, 0x9e, 0x36, 0x8d, 0x65, 0x8a, 0xca, 0x8c, 0xae, 0x6d, 0xfe, 0x0c, 0xf6, + 0xdc, 0xea, 0x3c, 0xe2, 0xf3, 0x35, 0xcc, 0x2c, 0x46, 0x75, 0x6d, 0x9a, 0x53, 0x18, 0xb0, 0xca, + 0x08, 0xe2, 0x33, 0xb5, 0x6f, 0xcd, 0x70, 0x3e, 0xf2, 0x2e, 0x7b, 0xfa, 0xdd, 0xa8, 0x6c, 0xa4, + 0x72, 0x9d, 0x2b, 0xb1, 0xa8, 0x5e, 0xa5, 0x5e, 0xed, 0xfd, 0xd6, 0x1f, 0xe7, 0x7f, 0x5e, 0x4e, + 0xe4, 0xcf, 0x9b, 0x6d, 0xf1, 0xcf, 0xe4, 0xdb, 0xff, 0x03, 0x00, 0x00, 0xff, 0xff, 0x3e, 0x04, + 0x07, 0x68, 0xdb, 0x0c, 0x00, 0x00, } diff --git a/pkg/proto/friend/friend.proto b/pkg/proto/friend/friend.proto index 52b50d277..4591e9704 100644 --- a/pkg/proto/friend/friend.proto +++ b/pkg/proto/friend/friend.proto @@ -1,168 +1,137 @@ syntax = "proto3"; +import "Open_IM/pkg/proto/sdk_ws/ws.proto"; option go_package = "./friend;friend"; package friend; message CommonResp{ - int32 errorCode = 1; - string errorMsg = 2; + int32 errCode = 1; + string errMsg = 2; } -message GetFriendsInfoReq{ - string uid = 1; +message CommID{ + string OpUserID = 1; string OperationID = 2; - string Token = 3; + string ToUserID = 4; + string FromUserID = 5; } + +message GetFriendsInfoReq{ + CommID CommID = 1; +} + message GetFriendInfoResp{ - int32 errorCode = 1; - string errorMsg = 2; - GetFriendData Data = 3; + int32 ErrCode = 1; + string ErrMsg = 2; + FriendInfo Data = 3; } -message GetFriendData{ - string uid = 1; - string icon = 2; - string name = 3; - int32 gender = 4; - string mobile = 5; - string birth = 6; - string email = 7; - string ex = 8; - string comment = 9; - int32 isFriend = 10; - int32 isInBlackList = 11; +message FriendInfo{ + string OwnerUserID = 1; + string Remark = 2; + uint64 CreateTime = 3; + open_im_sdk.UserInfo FriendUser = 4; + int32 IsBlack = 5; } + message AddFriendReq{ - string uid = 1; - string OperationID = 2; - string Token = 3; - string ReqMessage = 4; + CommID CommID = 1; + string ReqMessage = 2; } - message ImportFriendReq{ - repeated string uidList = 1; + repeated string FriendUserIDList = 1; string OperationID = 2; - string Token = 3; - string OwnerUid = 4; + string FromUserID = 3; + string OpUserID = 4; } + message ImportFriendResp{ CommonResp commonResp = 1; repeated string failedUidList = 2; } message GetFriendApplyReq{ - string OperationID = 1; - string Token = 2; + CommID CommID = 1; } message GetFriendApplyResp{ - int32 errorCode = 1; - string errorMsg = 2; + int32 ErrCode = 1; + string ErrMsg = 2; repeated ApplyUserInfo data = 4; } message ApplyUserInfo{ - string uid = 1; - string name = 2; - string icon = 3; - int32 gender = 4; - string mobile = 5; - string birth = 6; - string email = 7; - string ex = 8; - int32 flag = 9; - string applyTime = 10; - string reqMessage = 11; + open_im_sdk.PublicUserInfo UserInfo = 1; + int64 applyTime = 2; + string reqMessage = 3; + int32 Flag = 4; } message getFriendListReq{ - string OperationID = 1; - string Token = 2; + CommID CommID = 1; } + message getFriendListResp{ - int32 errorCode = 1; - string errorMsg = 2; - repeated UserInfo data = 3; -} -message UserInfo{ - string uid = 1; - string name = 3; - string icon = 2; - int32 gender = 4; - string mobile = 5; - string birth = 6; - string email = 7; - string ex = 8; - string comment = 9; - int32 isInBlackList = 10; + int32 ErrCode = 1; + string ErrMsg = 2; + repeated FriendInfo Data = 3; } + message AddBlacklistReq{ - string uid = 1; - string OperationID = 2; - string Token = 3; - string OwnerUid = 4; + CommID CommID = 1; } message RemoveBlacklistReq{ - string uid = 1; - string OperationID = 2; - string Token = 3; + CommID CommID = 1; } message GetBlacklistReq{ - string OperationID = 1; - string token = 2; + CommID CommID = 1; } + message GetBlacklistResp{ - int32 errorCode = 1; - string errorMsg = 2; - repeated UserInfo data = 3; + int32 ErrCode = 1; + string ErrMsg = 2; + repeated open_im_sdk.PublicUserInfo data = 3; } message IsFriendReq{ - string token = 1; - string receiveUid = 2; - string OperationID = 3; + CommID CommID = 1; } + message IsFriendResp{ - int32 errorCode = 1; - string errorMsg = 2; - int32 shipType = 3; + int32 ErrCode = 1; + string ErrMsg = 2; + int32 ShipType = 3; } + message IsInBlackListReq{ - string sendUid = 1; - string receiveUid = 2; - string OperationID = 3; + CommID CommID = 1; } + message IsInBlackListResp{ - int32 errorCode = 1; - string errorMsg = 2; - bool response = 3; + int32 ErrCode = 1; + string ErrMsg = 2; + bool Response = 3; } message DeleteFriendReq{ - string uid = 1; - string OperationID = 2; - string Token = 3; + CommID CommID = 1; } message AddFriendResponseReq{ - string uid = 1; + CommID CommID = 1; int32 flag = 2; - string OperationID = 3; - string Token = 4; } message SetFriendCommentReq{ - string uid = 1; - string operationID = 2; - string comment = 3; - string token = 4; + CommID CommID = 1; + string Remark = 2; } service friend{ diff --git a/pkg/proto/group/group.pb.go b/pkg/proto/group/group.pb.go index bc8371177..b18a09367 100644 --- a/pkg/proto/group/group.pb.go +++ b/pkg/proto/group/group.pb.go @@ -6,6 +6,7 @@ package group // import "./group" 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" @@ -35,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_group_ac6850665f72c22b, []int{0} + return fileDescriptor_group_23d97c4cd172f0ff, []int{0} } func (m *CommonResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_CommonResp.Unmarshal(m, b) @@ -69,16 +70,62 @@ func (m *CommonResp) GetErrMsg() string { return "" } +type GroupAddMemberInfo struct { + UserID string `protobuf:"bytes,1,opt,name=UserID" json:"UserID,omitempty"` + Role int32 `protobuf:"varint,2,opt,name=Role" json:"Role,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *GroupAddMemberInfo) Reset() { *m = GroupAddMemberInfo{} } +func (m *GroupAddMemberInfo) String() string { return proto.CompactTextString(m) } +func (*GroupAddMemberInfo) ProtoMessage() {} +func (*GroupAddMemberInfo) Descriptor() ([]byte, []int) { + return fileDescriptor_group_23d97c4cd172f0ff, []int{1} +} +func (m *GroupAddMemberInfo) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GroupAddMemberInfo.Unmarshal(m, b) +} +func (m *GroupAddMemberInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GroupAddMemberInfo.Marshal(b, m, deterministic) +} +func (dst *GroupAddMemberInfo) XXX_Merge(src proto.Message) { + xxx_messageInfo_GroupAddMemberInfo.Merge(dst, src) +} +func (m *GroupAddMemberInfo) XXX_Size() int { + return xxx_messageInfo_GroupAddMemberInfo.Size(m) +} +func (m *GroupAddMemberInfo) XXX_DiscardUnknown() { + xxx_messageInfo_GroupAddMemberInfo.DiscardUnknown(m) +} + +var xxx_messageInfo_GroupAddMemberInfo proto.InternalMessageInfo + +func (m *GroupAddMemberInfo) GetUserID() string { + if m != nil { + return m.UserID + } + return "" +} + +func (m *GroupAddMemberInfo) GetRole() int32 { + if m != nil { + return m.Role + } + return 0 +} + type CreateGroupReq struct { - MemberList []*GroupAddMemberInfo `protobuf:"bytes,1,rep,name=memberList" json:"memberList,omitempty"` - GroupName string `protobuf:"bytes,2,opt,name=groupName" json:"groupName,omitempty"` - Introduction string `protobuf:"bytes,3,opt,name=introduction" json:"introduction,omitempty"` - Notification string `protobuf:"bytes,4,opt,name=notification" json:"notification,omitempty"` - FaceUrl string `protobuf:"bytes,5,opt,name=faceUrl" json:"faceUrl,omitempty"` - Token string `protobuf:"bytes,6,opt,name=token" json:"token,omitempty"` - OperationID string `protobuf:"bytes,7,opt,name=operationID" json:"operationID,omitempty"` + InitMemberList []*GroupAddMemberInfo `protobuf:"bytes,1,rep,name=InitMemberList" json:"InitMemberList,omitempty"` + GroupName string `protobuf:"bytes,2,opt,name=GroupName" json:"GroupName,omitempty"` + Introduction string `protobuf:"bytes,3,opt,name=Introduction" json:"Introduction,omitempty"` + Notification string `protobuf:"bytes,4,opt,name=Notification" json:"Notification,omitempty"` + FaceUrl string `protobuf:"bytes,5,opt,name=FaceUrl" json:"FaceUrl,omitempty"` + Ext string `protobuf:"bytes,6,opt,name=Ext" json:"Ext,omitempty"` + OperationID string `protobuf:"bytes,7,opt,name=OperationID" json:"OperationID,omitempty"` OpUserID string `protobuf:"bytes,8,opt,name=OpUserID" json:"OpUserID,omitempty"` - Ext string `protobuf:"bytes,9,opt,name=Ext" json:"Ext,omitempty"` + FromUserID string `protobuf:"bytes,9,opt,name=FromUserID" json:"FromUserID,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -88,7 +135,7 @@ func (m *CreateGroupReq) Reset() { *m = CreateGroupReq{} } func (m *CreateGroupReq) String() string { return proto.CompactTextString(m) } func (*CreateGroupReq) ProtoMessage() {} func (*CreateGroupReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_ac6850665f72c22b, []int{1} + return fileDescriptor_group_23d97c4cd172f0ff, []int{2} } func (m *CreateGroupReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_CreateGroupReq.Unmarshal(m, b) @@ -108,9 +155,9 @@ func (m *CreateGroupReq) XXX_DiscardUnknown() { var xxx_messageInfo_CreateGroupReq proto.InternalMessageInfo -func (m *CreateGroupReq) GetMemberList() []*GroupAddMemberInfo { +func (m *CreateGroupReq) GetInitMemberList() []*GroupAddMemberInfo { if m != nil { - return m.MemberList + return m.InitMemberList } return nil } @@ -143,9 +190,9 @@ func (m *CreateGroupReq) GetFaceUrl() string { return "" } -func (m *CreateGroupReq) GetToken() string { +func (m *CreateGroupReq) GetExt() string { if m != nil { - return m.Token + return m.Ext } return "" } @@ -164,73 +211,27 @@ func (m *CreateGroupReq) GetOpUserID() string { return "" } -func (m *CreateGroupReq) GetExt() string { - if m != nil { - return m.Ext - } - return "" -} - -type GroupAddMemberInfo struct { - Uid string `protobuf:"bytes,1,opt,name=uid" json:"uid,omitempty"` - SetRole int32 `protobuf:"varint,2,opt,name=setRole" json:"setRole,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *GroupAddMemberInfo) Reset() { *m = GroupAddMemberInfo{} } -func (m *GroupAddMemberInfo) String() string { return proto.CompactTextString(m) } -func (*GroupAddMemberInfo) ProtoMessage() {} -func (*GroupAddMemberInfo) Descriptor() ([]byte, []int) { - return fileDescriptor_group_ac6850665f72c22b, []int{2} -} -func (m *GroupAddMemberInfo) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_GroupAddMemberInfo.Unmarshal(m, b) -} -func (m *GroupAddMemberInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_GroupAddMemberInfo.Marshal(b, m, deterministic) -} -func (dst *GroupAddMemberInfo) XXX_Merge(src proto.Message) { - xxx_messageInfo_GroupAddMemberInfo.Merge(dst, src) -} -func (m *GroupAddMemberInfo) XXX_Size() int { - return xxx_messageInfo_GroupAddMemberInfo.Size(m) -} -func (m *GroupAddMemberInfo) XXX_DiscardUnknown() { - xxx_messageInfo_GroupAddMemberInfo.DiscardUnknown(m) -} - -var xxx_messageInfo_GroupAddMemberInfo proto.InternalMessageInfo - -func (m *GroupAddMemberInfo) GetUid() string { +func (m *CreateGroupReq) GetFromUserID() string { if m != nil { - return m.Uid + return m.FromUserID } return "" } -func (m *GroupAddMemberInfo) GetSetRole() int32 { - if m != nil { - return m.SetRole - } - return 0 -} - type CreateGroupResp struct { - ErrCode int32 `protobuf:"varint,1,opt,name=ErrCode" json:"ErrCode,omitempty"` - ErrMsg string `protobuf:"bytes,2,opt,name=ErrMsg" json:"ErrMsg,omitempty"` - GroupID string `protobuf:"bytes,3,opt,name=groupID" json:"groupID,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + ErrCode int32 `protobuf:"varint,1,opt,name=ErrCode" json:"ErrCode,omitempty"` + ErrMsg string `protobuf:"bytes,2,opt,name=ErrMsg" json:"ErrMsg,omitempty"` + GroupInfo *sdk_ws.GroupInfo `protobuf:"bytes,3,opt,name=GroupInfo" json:"GroupInfo,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } func (m *CreateGroupResp) Reset() { *m = CreateGroupResp{} } func (m *CreateGroupResp) String() string { return proto.CompactTextString(m) } func (*CreateGroupResp) ProtoMessage() {} func (*CreateGroupResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_ac6850665f72c22b, []int{3} + return fileDescriptor_group_23d97c4cd172f0ff, []int{3} } func (m *CreateGroupResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_CreateGroupResp.Unmarshal(m, b) @@ -264,18 +265,17 @@ func (m *CreateGroupResp) GetErrMsg() string { return "" } -func (m *CreateGroupResp) GetGroupID() string { +func (m *CreateGroupResp) GetGroupInfo() *sdk_ws.GroupInfo { if m != nil { - return m.GroupID + return m.GroupInfo } - return "" + return nil } type GetGroupsInfoReq struct { - GroupIDList []string `protobuf:"bytes,1,rep,name=groupIDList" json:"groupIDList,omitempty"` - Token string `protobuf:"bytes,2,opt,name=token" json:"token,omitempty"` - OperationID string `protobuf:"bytes,3,opt,name=operationID" json:"operationID,omitempty"` - OpUserID string `protobuf:"bytes,4,opt,name=OpUserID" json:"OpUserID,omitempty"` + GroupIDList []string `protobuf:"bytes,1,rep,name=GroupIDList" json:"GroupIDList,omitempty"` + OperationID string `protobuf:"bytes,2,opt,name=OperationID" json:"OperationID,omitempty"` + OpUserID string `protobuf:"bytes,3,opt,name=OpUserID" json:"OpUserID,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -285,7 +285,7 @@ func (m *GetGroupsInfoReq) Reset() { *m = GetGroupsInfoReq{} } func (m *GetGroupsInfoReq) String() string { return proto.CompactTextString(m) } func (*GetGroupsInfoReq) ProtoMessage() {} func (*GetGroupsInfoReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_ac6850665f72c22b, []int{4} + return fileDescriptor_group_23d97c4cd172f0ff, []int{4} } func (m *GetGroupsInfoReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetGroupsInfoReq.Unmarshal(m, b) @@ -312,13 +312,6 @@ func (m *GetGroupsInfoReq) GetGroupIDList() []string { return nil } -func (m *GetGroupsInfoReq) GetToken() string { - if m != nil { - return m.Token - } - return "" -} - func (m *GetGroupsInfoReq) GetOperationID() string { if m != nil { return m.OperationID @@ -334,19 +327,19 @@ func (m *GetGroupsInfoReq) GetOpUserID() string { } type GetGroupsInfoResp struct { - ErrCode int32 `protobuf:"varint,1,opt,name=ErrCode" json:"ErrCode,omitempty"` - ErrMsg string `protobuf:"bytes,2,opt,name=ErrMsg" json:"ErrMsg,omitempty"` - Data []*GroupInfo `protobuf:"bytes,3,rep,name=data" json:"data,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + ErrCode int32 `protobuf:"varint,1,opt,name=ErrCode" json:"ErrCode,omitempty"` + ErrMsg string `protobuf:"bytes,2,opt,name=ErrMsg" json:"ErrMsg,omitempty"` + GroupInfoList []*sdk_ws.GroupInfo `protobuf:"bytes,3,rep,name=GroupInfoList" json:"GroupInfoList,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } func (m *GetGroupsInfoResp) Reset() { *m = GetGroupsInfoResp{} } func (m *GetGroupsInfoResp) String() string { return proto.CompactTextString(m) } func (*GetGroupsInfoResp) ProtoMessage() {} func (*GetGroupsInfoResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_ac6850665f72c22b, []int{5} + return fileDescriptor_group_23d97c4cd172f0ff, []int{5} } func (m *GetGroupsInfoResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetGroupsInfoResp.Unmarshal(m, b) @@ -380,32 +373,28 @@ func (m *GetGroupsInfoResp) GetErrMsg() string { return "" } -func (m *GetGroupsInfoResp) GetData() []*GroupInfo { +func (m *GetGroupsInfoResp) GetGroupInfoList() []*sdk_ws.GroupInfo { if m != nil { - return m.Data + return m.GroupInfoList } return nil } type SetGroupInfoReq struct { - GroupID string `protobuf:"bytes,1,opt,name=groupID" json:"groupID,omitempty"` - GroupName string `protobuf:"bytes,2,opt,name=groupName" json:"groupName,omitempty"` - Notification string `protobuf:"bytes,3,opt,name=notification" json:"notification,omitempty"` - Introduction string `protobuf:"bytes,4,opt,name=introduction" json:"introduction,omitempty"` - FaceUrl string `protobuf:"bytes,5,opt,name=faceUrl" json:"faceUrl,omitempty"` - Token string `protobuf:"bytes,6,opt,name=token" json:"token,omitempty"` - OperationID string `protobuf:"bytes,7,opt,name=operationID" json:"operationID,omitempty"` - OpUserID string `protobuf:"bytes,8,opt,name=OpUserID" json:"OpUserID,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + GroupInfo *sdk_ws.GroupInfo `protobuf:"bytes,1,opt,name=GroupInfo" json:"GroupInfo,omitempty"` + OpUserID string `protobuf:"bytes,2,opt,name=OpUserID" json:"OpUserID,omitempty"` + FromUserID string `protobuf:"bytes,3,opt,name=FromUserID" json:"FromUserID,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 *SetGroupInfoReq) Reset() { *m = SetGroupInfoReq{} } func (m *SetGroupInfoReq) String() string { return proto.CompactTextString(m) } func (*SetGroupInfoReq) ProtoMessage() {} func (*SetGroupInfoReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_ac6850665f72c22b, []int{6} + return fileDescriptor_group_23d97c4cd172f0ff, []int{6} } func (m *SetGroupInfoReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SetGroupInfoReq.Unmarshal(m, b) @@ -425,44 +414,23 @@ func (m *SetGroupInfoReq) XXX_DiscardUnknown() { var xxx_messageInfo_SetGroupInfoReq proto.InternalMessageInfo -func (m *SetGroupInfoReq) GetGroupID() string { - if m != nil { - return m.GroupID - } - return "" -} - -func (m *SetGroupInfoReq) GetGroupName() string { - if m != nil { - return m.GroupName - } - return "" -} - -func (m *SetGroupInfoReq) GetNotification() string { +func (m *SetGroupInfoReq) GetGroupInfo() *sdk_ws.GroupInfo { if m != nil { - return m.Notification + return m.GroupInfo } - return "" -} - -func (m *SetGroupInfoReq) GetIntroduction() string { - if m != nil { - return m.Introduction - } - return "" + return nil } -func (m *SetGroupInfoReq) GetFaceUrl() string { +func (m *SetGroupInfoReq) GetOpUserID() string { if m != nil { - return m.FaceUrl + return m.OpUserID } return "" } -func (m *SetGroupInfoReq) GetToken() string { +func (m *SetGroupInfoReq) GetFromUserID() string { if m != nil { - return m.Token + return m.FromUserID } return "" } @@ -474,16 +442,11 @@ func (m *SetGroupInfoReq) GetOperationID() string { return "" } -func (m *SetGroupInfoReq) GetOpUserID() string { - if m != nil { - return m.OpUserID - } - return "" -} - +// owner or manager type GetGroupApplicationListReq struct { OpUserID string `protobuf:"bytes,1,opt,name=OpUserID" json:"OpUserID,omitempty"` OperationID string `protobuf:"bytes,2,opt,name=OperationID" json:"OperationID,omitempty"` + FromUserID string `protobuf:"bytes,3,opt,name=FromUserID" json:"FromUserID,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -493,7 +456,7 @@ func (m *GetGroupApplicationListReq) Reset() { *m = GetGroupApplicationL func (m *GetGroupApplicationListReq) String() string { return proto.CompactTextString(m) } func (*GetGroupApplicationListReq) ProtoMessage() {} func (*GetGroupApplicationListReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_ac6850665f72c22b, []int{7} + return fileDescriptor_group_23d97c4cd172f0ff, []int{7} } func (m *GetGroupApplicationListReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetGroupApplicationListReq.Unmarshal(m, b) @@ -527,6 +490,13 @@ func (m *GetGroupApplicationListReq) GetOperationID() string { return "" } +func (m *GetGroupApplicationListReq) GetFromUserID() string { + if m != nil { + return m.FromUserID + } + return "" +} + type GetGroupApplicationList_Data_User struct { ID string `protobuf:"bytes,1,opt,name=ID" json:"ID,omitempty"` GroupID string `protobuf:"bytes,2,opt,name=GroupID" json:"GroupID,omitempty"` @@ -553,7 +523,7 @@ func (m *GetGroupApplicationList_Data_User) Reset() { *m = GetGroupAppli func (m *GetGroupApplicationList_Data_User) String() string { return proto.CompactTextString(m) } func (*GetGroupApplicationList_Data_User) ProtoMessage() {} func (*GetGroupApplicationList_Data_User) Descriptor() ([]byte, []int) { - return fileDescriptor_group_ac6850665f72c22b, []int{8} + return fileDescriptor_group_23d97c4cd172f0ff, []int{8} } func (m *GetGroupApplicationList_Data_User) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetGroupApplicationList_Data_User.Unmarshal(m, b) @@ -697,7 +667,7 @@ func (m *GetGroupApplicationListData) Reset() { *m = GetGroupApplication func (m *GetGroupApplicationListData) String() string { return proto.CompactTextString(m) } func (*GetGroupApplicationListData) ProtoMessage() {} func (*GetGroupApplicationListData) Descriptor() ([]byte, []int) { - return fileDescriptor_group_ac6850665f72c22b, []int{9} + return fileDescriptor_group_23d97c4cd172f0ff, []int{9} } func (m *GetGroupApplicationListData) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetGroupApplicationListData.Unmarshal(m, b) @@ -744,7 +714,7 @@ func (m *GetGroupApplicationListResp) Reset() { *m = GetGroupApplication func (m *GetGroupApplicationListResp) String() string { return proto.CompactTextString(m) } func (*GetGroupApplicationListResp) ProtoMessage() {} func (*GetGroupApplicationListResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_ac6850665f72c22b, []int{10} + return fileDescriptor_group_23d97c4cd172f0ff, []int{10} } func (m *GetGroupApplicationListResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetGroupApplicationListResp.Unmarshal(m, b) @@ -787,8 +757,8 @@ func (m *GetGroupApplicationListResp) GetData() *GetGroupApplicationListData { type TransferGroupOwnerReq struct { GroupID string `protobuf:"bytes,1,opt,name=GroupID" json:"GroupID,omitempty"` - OldOwner string `protobuf:"bytes,2,opt,name=OldOwner" json:"OldOwner,omitempty"` - NewOwner string `protobuf:"bytes,3,opt,name=NewOwner" json:"NewOwner,omitempty"` + OldOwnerUserID string `protobuf:"bytes,2,opt,name=OldOwnerUserID" json:"OldOwnerUserID,omitempty"` + NewOwnerUserID string `protobuf:"bytes,3,opt,name=NewOwnerUserID" json:"NewOwnerUserID,omitempty"` OperationID string `protobuf:"bytes,4,opt,name=OperationID" json:"OperationID,omitempty"` OpUserID string `protobuf:"bytes,5,opt,name=OpUserID" json:"OpUserID,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` @@ -800,7 +770,7 @@ func (m *TransferGroupOwnerReq) Reset() { *m = TransferGroupOwnerReq{} } func (m *TransferGroupOwnerReq) String() string { return proto.CompactTextString(m) } func (*TransferGroupOwnerReq) ProtoMessage() {} func (*TransferGroupOwnerReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_ac6850665f72c22b, []int{11} + return fileDescriptor_group_23d97c4cd172f0ff, []int{11} } func (m *TransferGroupOwnerReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_TransferGroupOwnerReq.Unmarshal(m, b) @@ -827,16 +797,16 @@ func (m *TransferGroupOwnerReq) GetGroupID() string { return "" } -func (m *TransferGroupOwnerReq) GetOldOwner() string { +func (m *TransferGroupOwnerReq) GetOldOwnerUserID() string { if m != nil { - return m.OldOwner + return m.OldOwnerUserID } return "" } -func (m *TransferGroupOwnerReq) GetNewOwner() string { +func (m *TransferGroupOwnerReq) GetNewOwnerUserID() string { if m != nil { - return m.NewOwner + return m.NewOwnerUserID } return "" } @@ -855,56 +825,10 @@ func (m *TransferGroupOwnerReq) GetOpUserID() string { return "" } -type TransferGroupOwnerResp struct { - ErrCode int32 `protobuf:"varint,1,opt,name=ErrCode" json:"ErrCode,omitempty"` - ErrMsg string `protobuf:"bytes,2,opt,name=ErrMsg" json:"ErrMsg,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *TransferGroupOwnerResp) Reset() { *m = TransferGroupOwnerResp{} } -func (m *TransferGroupOwnerResp) String() string { return proto.CompactTextString(m) } -func (*TransferGroupOwnerResp) ProtoMessage() {} -func (*TransferGroupOwnerResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_ac6850665f72c22b, []int{12} -} -func (m *TransferGroupOwnerResp) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_TransferGroupOwnerResp.Unmarshal(m, b) -} -func (m *TransferGroupOwnerResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_TransferGroupOwnerResp.Marshal(b, m, deterministic) -} -func (dst *TransferGroupOwnerResp) XXX_Merge(src proto.Message) { - xxx_messageInfo_TransferGroupOwnerResp.Merge(dst, src) -} -func (m *TransferGroupOwnerResp) XXX_Size() int { - return xxx_messageInfo_TransferGroupOwnerResp.Size(m) -} -func (m *TransferGroupOwnerResp) XXX_DiscardUnknown() { - xxx_messageInfo_TransferGroupOwnerResp.DiscardUnknown(m) -} - -var xxx_messageInfo_TransferGroupOwnerResp proto.InternalMessageInfo - -func (m *TransferGroupOwnerResp) GetErrCode() int32 { - if m != nil { - return m.ErrCode - } - return 0 -} - -func (m *TransferGroupOwnerResp) GetErrMsg() string { - if m != nil { - return m.ErrMsg - } - return "" -} - type JoinGroupReq struct { - GroupID string `protobuf:"bytes,1,opt,name=groupID" json:"groupID,omitempty"` - Message string `protobuf:"bytes,2,opt,name=message" json:"message,omitempty"` - Token string `protobuf:"bytes,3,opt,name=token" json:"token,omitempty"` + GroupID string `protobuf:"bytes,1,opt,name=GroupID" json:"GroupID,omitempty"` + ReqMessage string `protobuf:"bytes,2,opt,name=ReqMessage" json:"ReqMessage,omitempty"` + FromUserID string `protobuf:"bytes,3,opt,name=FromUserID" json:"FromUserID,omitempty"` OperationID string `protobuf:"bytes,4,opt,name=OperationID" json:"OperationID,omitempty"` OpUserID string `protobuf:"bytes,5,opt,name=OpUserID" json:"OpUserID,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` @@ -916,7 +840,7 @@ func (m *JoinGroupReq) Reset() { *m = JoinGroupReq{} } func (m *JoinGroupReq) String() string { return proto.CompactTextString(m) } func (*JoinGroupReq) ProtoMessage() {} func (*JoinGroupReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_ac6850665f72c22b, []int{13} + return fileDescriptor_group_23d97c4cd172f0ff, []int{12} } func (m *JoinGroupReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_JoinGroupReq.Unmarshal(m, b) @@ -943,16 +867,16 @@ func (m *JoinGroupReq) GetGroupID() string { return "" } -func (m *JoinGroupReq) GetMessage() string { +func (m *JoinGroupReq) GetReqMessage() string { if m != nil { - return m.Message + return m.ReqMessage } return "" } -func (m *JoinGroupReq) GetToken() string { +func (m *JoinGroupReq) GetFromUserID() string { if m != nil { - return m.Token + return m.FromUserID } return "" } @@ -972,20 +896,15 @@ func (m *JoinGroupReq) GetOpUserID() string { } type GroupApplicationResponseReq struct { - OperationID string `protobuf:"bytes,1,opt,name=OperationID" json:"OperationID,omitempty"` - OpUserID string `protobuf:"bytes,2,opt,name=OpUserID" json:"OpUserID,omitempty"` - GroupID string `protobuf:"bytes,3,opt,name=GroupID" json:"GroupID,omitempty"` - FromUserID string `protobuf:"bytes,4,opt,name=FromUserID" json:"FromUserID,omitempty"` - FromUserNickName string `protobuf:"bytes,5,opt,name=FromUserNickName" json:"FromUserNickName,omitempty"` - FromUserFaceUrl string `protobuf:"bytes,6,opt,name=FromUserFaceUrl" json:"FromUserFaceUrl,omitempty"` - ToUserID string `protobuf:"bytes,7,opt,name=ToUserID" json:"ToUserID,omitempty"` - ToUserNickName string `protobuf:"bytes,8,opt,name=ToUserNickName" json:"ToUserNickName,omitempty"` - ToUserFaceUrl string `protobuf:"bytes,9,opt,name=ToUserFaceUrl" json:"ToUserFaceUrl,omitempty"` - AddTime int64 `protobuf:"varint,10,opt,name=AddTime" json:"AddTime,omitempty"` - RequestMsg string `protobuf:"bytes,11,opt,name=RequestMsg" json:"RequestMsg,omitempty"` - HandledMsg string `protobuf:"bytes,12,opt,name=HandledMsg" json:"HandledMsg,omitempty"` - Type int32 `protobuf:"varint,13,opt,name=Type" json:"Type,omitempty"` - HandleStatus int32 `protobuf:"varint,14,opt,name=HandleStatus" json:"HandleStatus,omitempty"` + OperationID string `protobuf:"bytes,1,opt,name=OperationID" json:"OperationID,omitempty"` + OpUserID string `protobuf:"bytes,2,opt,name=OpUserID" json:"OpUserID,omitempty"` + GroupID string `protobuf:"bytes,3,opt,name=GroupID" json:"GroupID,omitempty"` + FromUserID string `protobuf:"bytes,4,opt,name=FromUserID" json:"FromUserID,omitempty"` + ToUserID string `protobuf:"bytes,7,opt,name=ToUserID" json:"ToUserID,omitempty"` + AddTime int64 `protobuf:"varint,10,opt,name=AddTime" json:"AddTime,omitempty"` + HandledMsg string `protobuf:"bytes,12,opt,name=HandledMsg" json:"HandledMsg,omitempty"` + // int32 Type = 13; + // int32 HandleStatus = 14; HandleResult int32 `protobuf:"varint,15,opt,name=HandleResult" json:"HandleResult,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` @@ -996,7 +915,7 @@ func (m *GroupApplicationResponseReq) Reset() { *m = GroupApplicationRes func (m *GroupApplicationResponseReq) String() string { return proto.CompactTextString(m) } func (*GroupApplicationResponseReq) ProtoMessage() {} func (*GroupApplicationResponseReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_ac6850665f72c22b, []int{14} + return fileDescriptor_group_23d97c4cd172f0ff, []int{13} } func (m *GroupApplicationResponseReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupApplicationResponseReq.Unmarshal(m, b) @@ -1044,20 +963,6 @@ func (m *GroupApplicationResponseReq) GetFromUserID() string { return "" } -func (m *GroupApplicationResponseReq) GetFromUserNickName() string { - if m != nil { - return m.FromUserNickName - } - return "" -} - -func (m *GroupApplicationResponseReq) GetFromUserFaceUrl() string { - if m != nil { - return m.FromUserFaceUrl - } - return "" -} - func (m *GroupApplicationResponseReq) GetToUserID() string { if m != nil { return m.ToUserID @@ -1065,20 +970,6 @@ func (m *GroupApplicationResponseReq) GetToUserID() string { return "" } -func (m *GroupApplicationResponseReq) GetToUserNickName() string { - if m != nil { - return m.ToUserNickName - } - return "" -} - -func (m *GroupApplicationResponseReq) GetToUserFaceUrl() string { - if m != nil { - return m.ToUserFaceUrl - } - return "" -} - func (m *GroupApplicationResponseReq) GetAddTime() int64 { if m != nil { return m.AddTime @@ -1086,13 +977,6 @@ func (m *GroupApplicationResponseReq) GetAddTime() int64 { return 0 } -func (m *GroupApplicationResponseReq) GetRequestMsg() string { - if m != nil { - return m.RequestMsg - } - return "" -} - func (m *GroupApplicationResponseReq) GetHandledMsg() string { if m != nil { return m.HandledMsg @@ -1100,20 +984,6 @@ func (m *GroupApplicationResponseReq) GetHandledMsg() string { return "" } -func (m *GroupApplicationResponseReq) GetType() int32 { - if m != nil { - return m.Type - } - return 0 -} - -func (m *GroupApplicationResponseReq) GetHandleStatus() int32 { - if m != nil { - return m.HandleStatus - } - return 0 -} - func (m *GroupApplicationResponseReq) GetHandleResult() int32 { if m != nil { return m.HandleResult @@ -1121,57 +991,11 @@ func (m *GroupApplicationResponseReq) GetHandleResult() int32 { return 0 } -type GroupApplicationResponseResp 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 *GroupApplicationResponseResp) Reset() { *m = GroupApplicationResponseResp{} } -func (m *GroupApplicationResponseResp) String() string { return proto.CompactTextString(m) } -func (*GroupApplicationResponseResp) ProtoMessage() {} -func (*GroupApplicationResponseResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_ac6850665f72c22b, []int{15} -} -func (m *GroupApplicationResponseResp) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_GroupApplicationResponseResp.Unmarshal(m, b) -} -func (m *GroupApplicationResponseResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_GroupApplicationResponseResp.Marshal(b, m, deterministic) -} -func (dst *GroupApplicationResponseResp) XXX_Merge(src proto.Message) { - xxx_messageInfo_GroupApplicationResponseResp.Merge(dst, src) -} -func (m *GroupApplicationResponseResp) XXX_Size() int { - return xxx_messageInfo_GroupApplicationResponseResp.Size(m) -} -func (m *GroupApplicationResponseResp) XXX_DiscardUnknown() { - xxx_messageInfo_GroupApplicationResponseResp.DiscardUnknown(m) -} - -var xxx_messageInfo_GroupApplicationResponseResp proto.InternalMessageInfo - -func (m *GroupApplicationResponseResp) GetErrCode() int32 { - if m != nil { - return m.ErrCode - } - return 0 -} - -func (m *GroupApplicationResponseResp) GetErrMsg() string { - if m != nil { - return m.ErrMsg - } - return "" -} - type SetOwnerGroupNickNameReq struct { - GroupID string `protobuf:"bytes,1,opt,name=groupID" json:"groupID,omitempty"` - NickName string `protobuf:"bytes,2,opt,name=nickName" json:"nickName,omitempty"` + GroupID string `protobuf:"bytes,1,opt,name=GroupID" json:"GroupID,omitempty"` + Nickname string `protobuf:"bytes,2,opt,name=Nickname" json:"Nickname,omitempty"` OperationID string `protobuf:"bytes,3,opt,name=OperationID" json:"OperationID,omitempty"` - Token string `protobuf:"bytes,4,opt,name=token" json:"token,omitempty"` + FromUserID string `protobuf:"bytes,4,opt,name=FromUserID" json:"FromUserID,omitempty"` OpUserID string `protobuf:"bytes,5,opt,name=OpUserID" json:"OpUserID,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` @@ -1182,7 +1006,7 @@ func (m *SetOwnerGroupNickNameReq) Reset() { *m = SetOwnerGroupNickNameR func (m *SetOwnerGroupNickNameReq) String() string { return proto.CompactTextString(m) } func (*SetOwnerGroupNickNameReq) ProtoMessage() {} func (*SetOwnerGroupNickNameReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_ac6850665f72c22b, []int{16} + return fileDescriptor_group_23d97c4cd172f0ff, []int{14} } func (m *SetOwnerGroupNickNameReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SetOwnerGroupNickNameReq.Unmarshal(m, b) @@ -1209,9 +1033,9 @@ func (m *SetOwnerGroupNickNameReq) GetGroupID() string { return "" } -func (m *SetOwnerGroupNickNameReq) GetNickName() string { +func (m *SetOwnerGroupNickNameReq) GetNickname() string { if m != nil { - return m.NickName + return m.Nickname } return "" } @@ -1223,9 +1047,9 @@ func (m *SetOwnerGroupNickNameReq) GetOperationID() string { return "" } -func (m *SetOwnerGroupNickNameReq) GetToken() string { +func (m *SetOwnerGroupNickNameReq) GetFromUserID() string { if m != nil { - return m.Token + return m.FromUserID } return "" } @@ -1238,9 +1062,9 @@ func (m *SetOwnerGroupNickNameReq) GetOpUserID() string { } type QuitGroupReq struct { - GroupID string `protobuf:"bytes,1,opt,name=groupID" json:"groupID,omitempty"` - OperationID string `protobuf:"bytes,2,opt,name=operationID" json:"operationID,omitempty"` - Token string `protobuf:"bytes,3,opt,name=token" json:"token,omitempty"` + GroupID string `protobuf:"bytes,1,opt,name=GroupID" json:"GroupID,omitempty"` + OperationID string `protobuf:"bytes,2,opt,name=OperationID" json:"OperationID,omitempty"` + FromUserID string `protobuf:"bytes,3,opt,name=FromUserID" json:"FromUserID,omitempty"` OpUserID string `protobuf:"bytes,4,opt,name=OpUserID" json:"OpUserID,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` @@ -1251,7 +1075,7 @@ func (m *QuitGroupReq) Reset() { *m = QuitGroupReq{} } func (m *QuitGroupReq) String() string { return proto.CompactTextString(m) } func (*QuitGroupReq) ProtoMessage() {} func (*QuitGroupReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_ac6850665f72c22b, []int{17} + return fileDescriptor_group_23d97c4cd172f0ff, []int{15} } func (m *QuitGroupReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_QuitGroupReq.Unmarshal(m, b) @@ -1285,9 +1109,9 @@ func (m *QuitGroupReq) GetOperationID() string { return "" } -func (m *QuitGroupReq) GetToken() string { +func (m *QuitGroupReq) GetFromUserID() string { if m != nil { - return m.Token + return m.FromUserID } return "" } @@ -1299,185 +1123,12 @@ func (m *QuitGroupReq) GetOpUserID() string { return "" } -type GroupApplicationUserInfo struct { - GroupID string `protobuf:"bytes,1,opt,name=groupID" json:"groupID,omitempty"` - Uid string `protobuf:"bytes,2,opt,name=uid" json:"uid,omitempty"` - Name string `protobuf:"bytes,3,opt,name=name" json:"name,omitempty"` - Icon string `protobuf:"bytes,4,opt,name=icon" json:"icon,omitempty"` - ReqMsg string `protobuf:"bytes,5,opt,name=reqMsg" json:"reqMsg,omitempty"` - ApplicationTime int64 `protobuf:"varint,6,opt,name=applicationTime" json:"applicationTime,omitempty"` - Flag int32 `protobuf:"varint,7,opt,name=flag" json:"flag,omitempty"` - OperatorID string `protobuf:"bytes,8,opt,name=operatorID" json:"operatorID,omitempty"` - HandledMsg string `protobuf:"bytes,9,opt,name=handledMsg" json:"handledMsg,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *GroupApplicationUserInfo) Reset() { *m = GroupApplicationUserInfo{} } -func (m *GroupApplicationUserInfo) String() string { return proto.CompactTextString(m) } -func (*GroupApplicationUserInfo) ProtoMessage() {} -func (*GroupApplicationUserInfo) Descriptor() ([]byte, []int) { - return fileDescriptor_group_ac6850665f72c22b, []int{18} -} -func (m *GroupApplicationUserInfo) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_GroupApplicationUserInfo.Unmarshal(m, b) -} -func (m *GroupApplicationUserInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_GroupApplicationUserInfo.Marshal(b, m, deterministic) -} -func (dst *GroupApplicationUserInfo) XXX_Merge(src proto.Message) { - xxx_messageInfo_GroupApplicationUserInfo.Merge(dst, src) -} -func (m *GroupApplicationUserInfo) XXX_Size() int { - return xxx_messageInfo_GroupApplicationUserInfo.Size(m) -} -func (m *GroupApplicationUserInfo) XXX_DiscardUnknown() { - xxx_messageInfo_GroupApplicationUserInfo.DiscardUnknown(m) -} - -var xxx_messageInfo_GroupApplicationUserInfo proto.InternalMessageInfo - -func (m *GroupApplicationUserInfo) GetGroupID() string { - if m != nil { - return m.GroupID - } - return "" -} - -func (m *GroupApplicationUserInfo) GetUid() string { - if m != nil { - return m.Uid - } - return "" -} - -func (m *GroupApplicationUserInfo) GetName() string { - if m != nil { - return m.Name - } - return "" -} - -func (m *GroupApplicationUserInfo) GetIcon() string { - if m != nil { - return m.Icon - } - return "" -} - -func (m *GroupApplicationUserInfo) GetReqMsg() string { - if m != nil { - return m.ReqMsg - } - return "" -} - -func (m *GroupApplicationUserInfo) GetApplicationTime() int64 { - if m != nil { - return m.ApplicationTime - } - return 0 -} - -func (m *GroupApplicationUserInfo) GetFlag() int32 { - if m != nil { - return m.Flag - } - return 0 -} - -func (m *GroupApplicationUserInfo) GetOperatorID() string { - if m != nil { - return m.OperatorID - } - return "" -} - -func (m *GroupApplicationUserInfo) GetHandledMsg() string { - if m != nil { - return m.HandledMsg - } - return "" -} - -type GroupMemberFullInfo struct { - UserId string `protobuf:"bytes,1,opt,name=userId" json:"userId,omitempty"` - Role int32 `protobuf:"varint,2,opt,name=role" json:"role,omitempty"` - JoinTime uint64 `protobuf:"varint,3,opt,name=joinTime" json:"joinTime,omitempty"` - NickName string `protobuf:"bytes,4,opt,name=nickName" json:"nickName,omitempty"` - FaceUrl string `protobuf:"bytes,5,opt,name=faceUrl" json:"faceUrl,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *GroupMemberFullInfo) Reset() { *m = GroupMemberFullInfo{} } -func (m *GroupMemberFullInfo) String() string { return proto.CompactTextString(m) } -func (*GroupMemberFullInfo) ProtoMessage() {} -func (*GroupMemberFullInfo) Descriptor() ([]byte, []int) { - return fileDescriptor_group_ac6850665f72c22b, []int{19} -} -func (m *GroupMemberFullInfo) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_GroupMemberFullInfo.Unmarshal(m, b) -} -func (m *GroupMemberFullInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_GroupMemberFullInfo.Marshal(b, m, deterministic) -} -func (dst *GroupMemberFullInfo) XXX_Merge(src proto.Message) { - xxx_messageInfo_GroupMemberFullInfo.Merge(dst, src) -} -func (m *GroupMemberFullInfo) XXX_Size() int { - return xxx_messageInfo_GroupMemberFullInfo.Size(m) -} -func (m *GroupMemberFullInfo) XXX_DiscardUnknown() { - xxx_messageInfo_GroupMemberFullInfo.DiscardUnknown(m) -} - -var xxx_messageInfo_GroupMemberFullInfo proto.InternalMessageInfo - -func (m *GroupMemberFullInfo) GetUserId() string { - if m != nil { - return m.UserId - } - return "" -} - -func (m *GroupMemberFullInfo) GetRole() int32 { - if m != nil { - return m.Role - } - return 0 -} - -func (m *GroupMemberFullInfo) GetJoinTime() uint64 { - if m != nil { - return m.JoinTime - } - return 0 -} - -func (m *GroupMemberFullInfo) GetNickName() string { - if m != nil { - return m.NickName - } - return "" -} - -func (m *GroupMemberFullInfo) GetFaceUrl() string { - if m != nil { - return m.FaceUrl - } - return "" -} - type GetGroupMemberListReq struct { - GroupID string `protobuf:"bytes,1,opt,name=groupID" json:"groupID,omitempty"` - Token string `protobuf:"bytes,2,opt,name=token" json:"token,omitempty"` - OperationID string `protobuf:"bytes,3,opt,name=operationID" json:"operationID,omitempty"` - Filter int32 `protobuf:"varint,4,opt,name=filter" json:"filter,omitempty"` - NextSeq int32 `protobuf:"varint,5,opt,name=nextSeq" json:"nextSeq,omitempty"` - OpUserID string `protobuf:"bytes,6,opt,name=OpUserID" json:"OpUserID,omitempty"` + GroupID string `protobuf:"bytes,1,opt,name=GroupID" json:"GroupID,omitempty"` + OpUserID string `protobuf:"bytes,2,opt,name=OpUserID" json:"OpUserID,omitempty"` + OperationID string `protobuf:"bytes,3,opt,name=OperationID" json:"OperationID,omitempty"` + Filter int32 `protobuf:"varint,4,opt,name=Filter" json:"Filter,omitempty"` + NextSeq int32 `protobuf:"varint,5,opt,name=NextSeq" json:"NextSeq,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -1487,7 +1138,7 @@ func (m *GetGroupMemberListReq) Reset() { *m = GetGroupMemberListReq{} } func (m *GetGroupMemberListReq) String() string { return proto.CompactTextString(m) } func (*GetGroupMemberListReq) ProtoMessage() {} func (*GetGroupMemberListReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_ac6850665f72c22b, []int{20} + return fileDescriptor_group_23d97c4cd172f0ff, []int{16} } func (m *GetGroupMemberListReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetGroupMemberListReq.Unmarshal(m, b) @@ -1514,9 +1165,9 @@ func (m *GetGroupMemberListReq) GetGroupID() string { return "" } -func (m *GetGroupMemberListReq) GetToken() string { +func (m *GetGroupMemberListReq) GetOpUserID() string { if m != nil { - return m.Token + return m.OpUserID } return "" } @@ -1542,28 +1193,21 @@ func (m *GetGroupMemberListReq) GetNextSeq() int32 { return 0 } -func (m *GetGroupMemberListReq) GetOpUserID() string { - if m != nil { - return m.OpUserID - } - return "" -} - type GetGroupMemberListResp struct { - ErrCode int32 `protobuf:"varint,1,opt,name=ErrCode" json:"ErrCode,omitempty"` - ErrMsg string `protobuf:"bytes,2,opt,name=ErrMsg" json:"ErrMsg,omitempty"` - MemberList []*GroupMemberFullInfo `protobuf:"bytes,3,rep,name=memberList" json:"memberList,omitempty"` - NextSeq int32 `protobuf:"varint,4,opt,name=nextSeq" json:"nextSeq,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + ErrCode int32 `protobuf:"varint,1,opt,name=ErrCode" json:"ErrCode,omitempty"` + ErrMsg string `protobuf:"bytes,2,opt,name=ErrMsg" json:"ErrMsg,omitempty"` + MemberList []*sdk_ws.GroupMemberFullInfo `protobuf:"bytes,3,rep,name=memberList" json:"memberList,omitempty"` + NextSeq int32 `protobuf:"varint,4,opt,name=nextSeq" json:"nextSeq,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } func (m *GetGroupMemberListResp) Reset() { *m = GetGroupMemberListResp{} } func (m *GetGroupMemberListResp) String() string { return proto.CompactTextString(m) } func (*GetGroupMemberListResp) ProtoMessage() {} func (*GetGroupMemberListResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_ac6850665f72c22b, []int{21} + return fileDescriptor_group_23d97c4cd172f0ff, []int{17} } func (m *GetGroupMemberListResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetGroupMemberListResp.Unmarshal(m, b) @@ -1597,7 +1241,7 @@ func (m *GetGroupMemberListResp) GetErrMsg() string { return "" } -func (m *GetGroupMemberListResp) GetMemberList() []*GroupMemberFullInfo { +func (m *GetGroupMemberListResp) GetMemberList() []*sdk_ws.GroupMemberFullInfo { if m != nil { return m.MemberList } @@ -1612,11 +1256,10 @@ func (m *GetGroupMemberListResp) GetNextSeq() int32 { } type GetGroupMembersInfoReq struct { - GroupID string `protobuf:"bytes,1,opt,name=groupID" json:"groupID,omitempty"` + GroupID string `protobuf:"bytes,1,opt,name=GroupID" json:"GroupID,omitempty"` MemberList []string `protobuf:"bytes,2,rep,name=memberList" json:"memberList,omitempty"` - Token string `protobuf:"bytes,3,opt,name=token" json:"token,omitempty"` - OperationID string `protobuf:"bytes,4,opt,name=operationID" json:"operationID,omitempty"` - OpUserID string `protobuf:"bytes,5,opt,name=OpUserID" json:"OpUserID,omitempty"` + OpUserID string `protobuf:"bytes,3,opt,name=OpUserID" json:"OpUserID,omitempty"` + OperationID string `protobuf:"bytes,4,opt,name=OperationID" json:"OperationID,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -1626,7 +1269,7 @@ func (m *GetGroupMembersInfoReq) Reset() { *m = GetGroupMembersInfoReq{} func (m *GetGroupMembersInfoReq) String() string { return proto.CompactTextString(m) } func (*GetGroupMembersInfoReq) ProtoMessage() {} func (*GetGroupMembersInfoReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_ac6850665f72c22b, []int{22} + return fileDescriptor_group_23d97c4cd172f0ff, []int{18} } func (m *GetGroupMembersInfoReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetGroupMembersInfoReq.Unmarshal(m, b) @@ -1660,9 +1303,9 @@ func (m *GetGroupMembersInfoReq) GetMemberList() []string { return nil } -func (m *GetGroupMembersInfoReq) GetToken() string { +func (m *GetGroupMembersInfoReq) GetOpUserID() string { if m != nil { - return m.Token + return m.OpUserID } return "" } @@ -1674,27 +1317,20 @@ func (m *GetGroupMembersInfoReq) GetOperationID() string { return "" } -func (m *GetGroupMembersInfoReq) GetOpUserID() string { - if m != nil { - return m.OpUserID - } - return "" -} - type GetGroupMembersInfoResp struct { - ErrCode int32 `protobuf:"varint,1,opt,name=ErrCode" json:"ErrCode,omitempty"` - ErrMsg string `protobuf:"bytes,2,opt,name=ErrMsg" json:"ErrMsg,omitempty"` - MemberList []*GroupMemberFullInfo `protobuf:"bytes,3,rep,name=memberList" json:"memberList,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + ErrCode int32 `protobuf:"varint,1,opt,name=ErrCode" json:"ErrCode,omitempty"` + ErrMsg string `protobuf:"bytes,2,opt,name=ErrMsg" json:"ErrMsg,omitempty"` + MemberList []*sdk_ws.GroupMemberFullInfo `protobuf:"bytes,3,rep,name=memberList" json:"memberList,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } func (m *GetGroupMembersInfoResp) Reset() { *m = GetGroupMembersInfoResp{} } func (m *GetGroupMembersInfoResp) String() string { return proto.CompactTextString(m) } func (*GetGroupMembersInfoResp) ProtoMessage() {} func (*GetGroupMembersInfoResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_ac6850665f72c22b, []int{23} + return fileDescriptor_group_23d97c4cd172f0ff, []int{19} } func (m *GetGroupMembersInfoResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetGroupMembersInfoResp.Unmarshal(m, b) @@ -1728,7 +1364,7 @@ func (m *GetGroupMembersInfoResp) GetErrMsg() string { return "" } -func (m *GetGroupMembersInfoResp) GetMemberList() []*GroupMemberFullInfo { +func (m *GetGroupMembersInfoResp) GetMemberList() []*sdk_ws.GroupMemberFullInfo { if m != nil { return m.MemberList } @@ -1736,22 +1372,21 @@ func (m *GetGroupMembersInfoResp) GetMemberList() []*GroupMemberFullInfo { } type KickGroupMemberReq struct { - GroupID string `protobuf:"bytes,1,opt,name=groupID" json:"groupID,omitempty"` - UidListInfo []*GroupMemberFullInfo `protobuf:"bytes,2,rep,name=uidListInfo" json:"uidListInfo,omitempty"` - Reason string `protobuf:"bytes,3,opt,name=reason" json:"reason,omitempty"` - Token string `protobuf:"bytes,4,opt,name=token" json:"token,omitempty"` - OperationID string `protobuf:"bytes,5,opt,name=operationID" json:"operationID,omitempty"` - OpUserID string `protobuf:"bytes,6,opt,name=OpUserID" json:"OpUserID,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + GroupID string `protobuf:"bytes,1,opt,name=GroupID" json:"GroupID,omitempty"` + KickedUserIDList []string `protobuf:"bytes,2,rep,name=KickedUserIDList" json:"KickedUserIDList,omitempty"` + Reason string `protobuf:"bytes,3,opt,name=Reason" json:"Reason,omitempty"` + OperationID string `protobuf:"bytes,5,opt,name=OperationID" json:"OperationID,omitempty"` + OpUserID string `protobuf:"bytes,6,opt,name=OpUserID" json:"OpUserID,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } func (m *KickGroupMemberReq) Reset() { *m = KickGroupMemberReq{} } func (m *KickGroupMemberReq) String() string { return proto.CompactTextString(m) } func (*KickGroupMemberReq) ProtoMessage() {} func (*KickGroupMemberReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_ac6850665f72c22b, []int{24} + return fileDescriptor_group_23d97c4cd172f0ff, []int{20} } func (m *KickGroupMemberReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_KickGroupMemberReq.Unmarshal(m, b) @@ -1778,9 +1413,9 @@ func (m *KickGroupMemberReq) GetGroupID() string { return "" } -func (m *KickGroupMemberReq) GetUidListInfo() []*GroupMemberFullInfo { +func (m *KickGroupMemberReq) GetKickedUserIDList() []string { if m != nil { - return m.UidListInfo + return m.KickedUserIDList } return nil } @@ -1792,13 +1427,6 @@ func (m *KickGroupMemberReq) GetReason() string { return "" } -func (m *KickGroupMemberReq) GetToken() string { - if m != nil { - return m.Token - } - return "" -} - func (m *KickGroupMemberReq) GetOperationID() string { if m != nil { return m.OperationID @@ -1814,8 +1442,8 @@ func (m *KickGroupMemberReq) GetOpUserID() string { } type Id2Result struct { - UId string `protobuf:"bytes,1,opt,name=uId" json:"uId,omitempty"` - Result int32 `protobuf:"varint,2,opt,name=result" json:"result,omitempty"` + UserID string `protobuf:"bytes,1,opt,name=UserID" json:"UserID,omitempty"` + Result int32 `protobuf:"varint,2,opt,name=Result" json:"Result,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -1825,7 +1453,7 @@ func (m *Id2Result) Reset() { *m = Id2Result{} } func (m *Id2Result) String() string { return proto.CompactTextString(m) } func (*Id2Result) ProtoMessage() {} func (*Id2Result) Descriptor() ([]byte, []int) { - return fileDescriptor_group_ac6850665f72c22b, []int{25} + return fileDescriptor_group_23d97c4cd172f0ff, []int{21} } func (m *Id2Result) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_Id2Result.Unmarshal(m, b) @@ -1845,9 +1473,9 @@ func (m *Id2Result) XXX_DiscardUnknown() { var xxx_messageInfo_Id2Result proto.InternalMessageInfo -func (m *Id2Result) GetUId() string { +func (m *Id2Result) GetUserID() string { if m != nil { - return m.UId + return m.UserID } return "" } @@ -1862,7 +1490,7 @@ func (m *Id2Result) GetResult() int32 { type KickGroupMemberResp struct { ErrCode int32 `protobuf:"varint,1,opt,name=ErrCode" json:"ErrCode,omitempty"` ErrMsg string `protobuf:"bytes,2,opt,name=ErrMsg" json:"ErrMsg,omitempty"` - Id2Result []*Id2Result `protobuf:"bytes,3,rep,name=id2result" json:"id2result,omitempty"` + Id2ResultList []*Id2Result `protobuf:"bytes,3,rep,name=Id2ResultList" json:"Id2ResultList,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -1872,7 +1500,7 @@ func (m *KickGroupMemberResp) Reset() { *m = KickGroupMemberResp{} } func (m *KickGroupMemberResp) String() string { return proto.CompactTextString(m) } func (*KickGroupMemberResp) ProtoMessage() {} func (*KickGroupMemberResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_ac6850665f72c22b, []int{26} + return fileDescriptor_group_23d97c4cd172f0ff, []int{22} } func (m *KickGroupMemberResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_KickGroupMemberResp.Unmarshal(m, b) @@ -1906,15 +1534,15 @@ func (m *KickGroupMemberResp) GetErrMsg() string { return "" } -func (m *KickGroupMemberResp) GetId2Result() []*Id2Result { +func (m *KickGroupMemberResp) GetId2ResultList() []*Id2Result { if m != nil { - return m.Id2Result + return m.Id2ResultList } return nil } type GetJoinedGroupListReq struct { - Token string `protobuf:"bytes,1,opt,name=token" json:"token,omitempty"` + FromUserID string `protobuf:"bytes,1,opt,name=FromUserID" json:"FromUserID,omitempty"` OperationID string `protobuf:"bytes,2,opt,name=operationID" json:"operationID,omitempty"` OpUserID string `protobuf:"bytes,3,opt,name=OpUserID" json:"OpUserID,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` @@ -1926,7 +1554,7 @@ func (m *GetJoinedGroupListReq) Reset() { *m = GetJoinedGroupListReq{} } func (m *GetJoinedGroupListReq) String() string { return proto.CompactTextString(m) } func (*GetJoinedGroupListReq) ProtoMessage() {} func (*GetJoinedGroupListReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_ac6850665f72c22b, []int{27} + return fileDescriptor_group_23d97c4cd172f0ff, []int{23} } func (m *GetJoinedGroupListReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetJoinedGroupListReq.Unmarshal(m, b) @@ -1946,9 +1574,9 @@ func (m *GetJoinedGroupListReq) XXX_DiscardUnknown() { var xxx_messageInfo_GetJoinedGroupListReq proto.InternalMessageInfo -func (m *GetJoinedGroupListReq) GetToken() string { +func (m *GetJoinedGroupListReq) GetFromUserID() string { if m != nil { - return m.Token + return m.FromUserID } return "" } @@ -1967,114 +1595,20 @@ func (m *GetJoinedGroupListReq) GetOpUserID() string { return "" } -type GroupInfo struct { - GroupId string `protobuf:"bytes,1,opt,name=groupId" json:"groupId,omitempty"` - GroupName string `protobuf:"bytes,2,opt,name=groupName" json:"groupName,omitempty"` - Notification string `protobuf:"bytes,3,opt,name=notification" json:"notification,omitempty"` - Introduction string `protobuf:"bytes,4,opt,name=introduction" json:"introduction,omitempty"` - FaceUrl string `protobuf:"bytes,5,opt,name=faceUrl" json:"faceUrl,omitempty"` - CreateTime uint64 `protobuf:"varint,6,opt,name=createTime" json:"createTime,omitempty"` - OwnerId string `protobuf:"bytes,7,opt,name=ownerId" json:"ownerId,omitempty"` - MemberCount uint32 `protobuf:"varint,8,opt,name=memberCount" json:"memberCount,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *GroupInfo) Reset() { *m = GroupInfo{} } -func (m *GroupInfo) String() string { return proto.CompactTextString(m) } -func (*GroupInfo) ProtoMessage() {} -func (*GroupInfo) Descriptor() ([]byte, []int) { - return fileDescriptor_group_ac6850665f72c22b, []int{28} -} -func (m *GroupInfo) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_GroupInfo.Unmarshal(m, b) -} -func (m *GroupInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_GroupInfo.Marshal(b, m, deterministic) -} -func (dst *GroupInfo) XXX_Merge(src proto.Message) { - xxx_messageInfo_GroupInfo.Merge(dst, src) -} -func (m *GroupInfo) XXX_Size() int { - return xxx_messageInfo_GroupInfo.Size(m) -} -func (m *GroupInfo) XXX_DiscardUnknown() { - xxx_messageInfo_GroupInfo.DiscardUnknown(m) -} - -var xxx_messageInfo_GroupInfo proto.InternalMessageInfo - -func (m *GroupInfo) GetGroupId() string { - if m != nil { - return m.GroupId - } - return "" -} - -func (m *GroupInfo) GetGroupName() string { - if m != nil { - return m.GroupName - } - return "" -} - -func (m *GroupInfo) GetNotification() string { - if m != nil { - return m.Notification - } - return "" -} - -func (m *GroupInfo) GetIntroduction() string { - if m != nil { - return m.Introduction - } - return "" -} - -func (m *GroupInfo) GetFaceUrl() string { - if m != nil { - return m.FaceUrl - } - return "" -} - -func (m *GroupInfo) GetCreateTime() uint64 { - if m != nil { - return m.CreateTime - } - return 0 -} - -func (m *GroupInfo) GetOwnerId() string { - if m != nil { - return m.OwnerId - } - return "" -} - -func (m *GroupInfo) GetMemberCount() uint32 { - if m != nil { - return m.MemberCount - } - return 0 -} - type GetJoinedGroupListResp struct { - ErrCode int32 `protobuf:"varint,1,opt,name=ErrCode" json:"ErrCode,omitempty"` - ErrorMsg string `protobuf:"bytes,2,opt,name=ErrorMsg" json:"ErrorMsg,omitempty"` - GroupList []*GroupInfo `protobuf:"bytes,3,rep,name=GroupList" json:"GroupList,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + ErrCode int32 `protobuf:"varint,1,opt,name=ErrCode" json:"ErrCode,omitempty"` + ErrMsg string `protobuf:"bytes,2,opt,name=ErrMsg" json:"ErrMsg,omitempty"` + GroupList []*sdk_ws.GroupInfo `protobuf:"bytes,3,rep,name=GroupList" json:"GroupList,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } func (m *GetJoinedGroupListResp) Reset() { *m = GetJoinedGroupListResp{} } func (m *GetJoinedGroupListResp) String() string { return proto.CompactTextString(m) } func (*GetJoinedGroupListResp) ProtoMessage() {} func (*GetJoinedGroupListResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_ac6850665f72c22b, []int{29} + return fileDescriptor_group_23d97c4cd172f0ff, []int{24} } func (m *GetJoinedGroupListResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetJoinedGroupListResp.Unmarshal(m, b) @@ -2101,14 +1635,14 @@ func (m *GetJoinedGroupListResp) GetErrCode() int32 { return 0 } -func (m *GetJoinedGroupListResp) GetErrorMsg() string { +func (m *GetJoinedGroupListResp) GetErrMsg() string { if m != nil { - return m.ErrorMsg + return m.ErrMsg } return "" } -func (m *GetJoinedGroupListResp) GetGroupList() []*GroupInfo { +func (m *GetJoinedGroupListResp) GetGroupList() []*sdk_ws.GroupInfo { if m != nil { return m.GroupList } @@ -2116,11 +1650,10 @@ func (m *GetJoinedGroupListResp) GetGroupList() []*GroupInfo { } type InviteUserToGroupReq struct { - Token string `protobuf:"bytes,1,opt,name=token" json:"token,omitempty"` - OperationID string `protobuf:"bytes,2,opt,name=operationID" json:"operationID,omitempty"` - GroupID string `protobuf:"bytes,3,opt,name=groupID" json:"groupID,omitempty"` - Reason string `protobuf:"bytes,4,opt,name=reason" json:"reason,omitempty"` - UidList []string `protobuf:"bytes,5,rep,name=uidList" json:"uidList,omitempty"` + OperationID string `protobuf:"bytes,2,opt,name=OperationID" json:"OperationID,omitempty"` + GroupID string `protobuf:"bytes,3,opt,name=GroupID" json:"GroupID,omitempty"` + Reason string `protobuf:"bytes,4,opt,name=Reason" json:"Reason,omitempty"` + InvitedUserIDList []string `protobuf:"bytes,5,rep,name=InvitedUserIDList" json:"InvitedUserIDList,omitempty"` OpUserID string `protobuf:"bytes,6,opt,name=OpUserID" json:"OpUserID,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` @@ -2131,7 +1664,7 @@ func (m *InviteUserToGroupReq) Reset() { *m = InviteUserToGroupReq{} } func (m *InviteUserToGroupReq) String() string { return proto.CompactTextString(m) } func (*InviteUserToGroupReq) ProtoMessage() {} func (*InviteUserToGroupReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_ac6850665f72c22b, []int{30} + return fileDescriptor_group_23d97c4cd172f0ff, []int{25} } func (m *InviteUserToGroupReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_InviteUserToGroupReq.Unmarshal(m, b) @@ -2151,13 +1684,6 @@ func (m *InviteUserToGroupReq) XXX_DiscardUnknown() { var xxx_messageInfo_InviteUserToGroupReq proto.InternalMessageInfo -func (m *InviteUserToGroupReq) GetToken() string { - if m != nil { - return m.Token - } - return "" -} - func (m *InviteUserToGroupReq) GetOperationID() string { if m != nil { return m.OperationID @@ -2179,9 +1705,9 @@ func (m *InviteUserToGroupReq) GetReason() string { return "" } -func (m *InviteUserToGroupReq) GetUidList() []string { +func (m *InviteUserToGroupReq) GetInvitedUserIDList() []string { if m != nil { - return m.UidList + return m.InvitedUserIDList } return nil } @@ -2196,7 +1722,7 @@ func (m *InviteUserToGroupReq) GetOpUserID() string { type InviteUserToGroupResp struct { ErrCode int32 `protobuf:"varint,1,opt,name=ErrCode" json:"ErrCode,omitempty"` ErrMsg string `protobuf:"bytes,2,opt,name=ErrMsg" json:"ErrMsg,omitempty"` - Id2Result []*Id2Result `protobuf:"bytes,3,rep,name=Id2Result" json:"Id2Result,omitempty"` + Id2ResultList []*Id2Result `protobuf:"bytes,3,rep,name=Id2ResultList" json:"Id2ResultList,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -2206,7 +1732,7 @@ func (m *InviteUserToGroupResp) Reset() { *m = InviteUserToGroupResp{} } func (m *InviteUserToGroupResp) String() string { return proto.CompactTextString(m) } func (*InviteUserToGroupResp) ProtoMessage() {} func (*InviteUserToGroupResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_ac6850665f72c22b, []int{31} + return fileDescriptor_group_23d97c4cd172f0ff, []int{26} } func (m *InviteUserToGroupResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_InviteUserToGroupResp.Unmarshal(m, b) @@ -2240,17 +1766,17 @@ func (m *InviteUserToGroupResp) GetErrMsg() string { return "" } -func (m *InviteUserToGroupResp) GetId2Result() []*Id2Result { +func (m *InviteUserToGroupResp) GetId2ResultList() []*Id2Result { if m != nil { - return m.Id2Result + return m.Id2ResultList } return nil } type GetGroupAllMemberReq struct { - GroupID string `protobuf:"bytes,1,opt,name=groupID" json:"groupID,omitempty"` - Token string `protobuf:"bytes,2,opt,name=token" json:"token,omitempty"` - OperationID string `protobuf:"bytes,3,opt,name=operationID" json:"operationID,omitempty"` + GroupID string `protobuf:"bytes,1,opt,name=GroupID" json:"GroupID,omitempty"` + FromUserID string `protobuf:"bytes,2,opt,name=FromUserID" json:"FromUserID,omitempty"` + OperationID string `protobuf:"bytes,3,opt,name=OperationID" json:"OperationID,omitempty"` OpUserID string `protobuf:"bytes,4,opt,name=OpUserID" json:"OpUserID,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` @@ -2261,7 +1787,7 @@ func (m *GetGroupAllMemberReq) Reset() { *m = GetGroupAllMemberReq{} } func (m *GetGroupAllMemberReq) String() string { return proto.CompactTextString(m) } func (*GetGroupAllMemberReq) ProtoMessage() {} func (*GetGroupAllMemberReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_ac6850665f72c22b, []int{32} + return fileDescriptor_group_23d97c4cd172f0ff, []int{27} } func (m *GetGroupAllMemberReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetGroupAllMemberReq.Unmarshal(m, b) @@ -2288,9 +1814,9 @@ func (m *GetGroupAllMemberReq) GetGroupID() string { return "" } -func (m *GetGroupAllMemberReq) GetToken() string { +func (m *GetGroupAllMemberReq) GetFromUserID() string { if m != nil { - return m.Token + return m.FromUserID } return "" } @@ -2310,19 +1836,19 @@ func (m *GetGroupAllMemberReq) GetOpUserID() string { } type GetGroupAllMemberResp struct { - ErrCode int32 `protobuf:"varint,1,opt,name=ErrCode" json:"ErrCode,omitempty"` - ErrMsg string `protobuf:"bytes,2,opt,name=ErrMsg" json:"ErrMsg,omitempty"` - MemberList []*GroupMemberFullInfo `protobuf:"bytes,3,rep,name=memberList" json:"memberList,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + ErrCode int32 `protobuf:"varint,1,opt,name=ErrCode" json:"ErrCode,omitempty"` + ErrMsg string `protobuf:"bytes,2,opt,name=ErrMsg" json:"ErrMsg,omitempty"` + MemberList []*sdk_ws.GroupMemberFullInfo `protobuf:"bytes,3,rep,name=memberList" json:"memberList,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } func (m *GetGroupAllMemberResp) Reset() { *m = GetGroupAllMemberResp{} } func (m *GetGroupAllMemberResp) String() string { return proto.CompactTextString(m) } func (*GetGroupAllMemberResp) ProtoMessage() {} func (*GetGroupAllMemberResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_ac6850665f72c22b, []int{33} + return fileDescriptor_group_23d97c4cd172f0ff, []int{28} } func (m *GetGroupAllMemberResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetGroupAllMemberResp.Unmarshal(m, b) @@ -2356,7 +1882,7 @@ func (m *GetGroupAllMemberResp) GetErrMsg() string { return "" } -func (m *GetGroupAllMemberResp) GetMemberList() []*GroupMemberFullInfo { +func (m *GetGroupAllMemberResp) GetMemberList() []*sdk_ws.GroupMemberFullInfo { if m != nil { return m.MemberList } @@ -2365,8 +1891,8 @@ func (m *GetGroupAllMemberResp) GetMemberList() []*GroupMemberFullInfo { func init() { proto.RegisterType((*CommonResp)(nil), "group.CommonResp") - proto.RegisterType((*CreateGroupReq)(nil), "group.CreateGroupReq") proto.RegisterType((*GroupAddMemberInfo)(nil), "group.GroupAddMemberInfo") + proto.RegisterType((*CreateGroupReq)(nil), "group.CreateGroupReq") proto.RegisterType((*CreateGroupResp)(nil), "group.CreateGroupResp") proto.RegisterType((*GetGroupsInfoReq)(nil), "group.GetGroupsInfoReq") proto.RegisterType((*GetGroupsInfoResp)(nil), "group.GetGroupsInfoResp") @@ -2376,14 +1902,10 @@ func init() { proto.RegisterType((*GetGroupApplicationListData)(nil), "group.GetGroupApplicationListData") proto.RegisterType((*GetGroupApplicationListResp)(nil), "group.GetGroupApplicationListResp") proto.RegisterType((*TransferGroupOwnerReq)(nil), "group.TransferGroupOwnerReq") - proto.RegisterType((*TransferGroupOwnerResp)(nil), "group.TransferGroupOwnerResp") proto.RegisterType((*JoinGroupReq)(nil), "group.JoinGroupReq") proto.RegisterType((*GroupApplicationResponseReq)(nil), "group.GroupApplicationResponseReq") - proto.RegisterType((*GroupApplicationResponseResp)(nil), "group.GroupApplicationResponseResp") proto.RegisterType((*SetOwnerGroupNickNameReq)(nil), "group.SetOwnerGroupNickNameReq") proto.RegisterType((*QuitGroupReq)(nil), "group.QuitGroupReq") - proto.RegisterType((*GroupApplicationUserInfo)(nil), "group.GroupApplicationUserInfo") - proto.RegisterType((*GroupMemberFullInfo)(nil), "group.GroupMemberFullInfo") proto.RegisterType((*GetGroupMemberListReq)(nil), "group.GetGroupMemberListReq") proto.RegisterType((*GetGroupMemberListResp)(nil), "group.GetGroupMemberListResp") proto.RegisterType((*GetGroupMembersInfoReq)(nil), "group.GetGroupMembersInfoReq") @@ -2391,11 +1913,10 @@ func init() { proto.RegisterType((*KickGroupMemberReq)(nil), "group.KickGroupMemberReq") proto.RegisterType((*Id2Result)(nil), "group.Id2Result") proto.RegisterType((*KickGroupMemberResp)(nil), "group.KickGroupMemberResp") - proto.RegisterType((*GetJoinedGroupListReq)(nil), "group.getJoinedGroupListReq") - proto.RegisterType((*GroupInfo)(nil), "group.GroupInfo") - proto.RegisterType((*GetJoinedGroupListResp)(nil), "group.getJoinedGroupListResp") - proto.RegisterType((*InviteUserToGroupReq)(nil), "group.inviteUserToGroupReq") - proto.RegisterType((*InviteUserToGroupResp)(nil), "group.inviteUserToGroupResp") + proto.RegisterType((*GetJoinedGroupListReq)(nil), "group.GetJoinedGroupListReq") + proto.RegisterType((*GetJoinedGroupListResp)(nil), "group.GetJoinedGroupListResp") + proto.RegisterType((*InviteUserToGroupReq)(nil), "group.InviteUserToGroupReq") + proto.RegisterType((*InviteUserToGroupResp)(nil), "group.InviteUserToGroupResp") proto.RegisterType((*GetGroupAllMemberReq)(nil), "group.GetGroupAllMemberReq") proto.RegisterType((*GetGroupAllMemberResp)(nil), "group.GetGroupAllMemberResp") } @@ -2417,8 +1938,8 @@ type GroupClient interface { GetGroupsInfo(ctx context.Context, in *GetGroupsInfoReq, opts ...grpc.CallOption) (*GetGroupsInfoResp, error) SetGroupInfo(ctx context.Context, in *SetGroupInfoReq, opts ...grpc.CallOption) (*CommonResp, error) GetGroupApplicationList(ctx context.Context, in *GetGroupApplicationListReq, opts ...grpc.CallOption) (*GetGroupApplicationListResp, error) - TransferGroupOwner(ctx context.Context, in *TransferGroupOwnerReq, opts ...grpc.CallOption) (*TransferGroupOwnerResp, error) - GroupApplicationResponse(ctx context.Context, in *GroupApplicationResponseReq, opts ...grpc.CallOption) (*GroupApplicationResponseResp, error) + TransferGroupOwner(ctx context.Context, in *TransferGroupOwnerReq, opts ...grpc.CallOption) (*CommonResp, error) + GroupApplicationResponse(ctx context.Context, in *GroupApplicationResponseReq, opts ...grpc.CallOption) (*CommonResp, error) // rpc setOwnerGroupNickName(SetOwnerGroupNickNameReq) returns(CommonResp); GetGroupMemberList(ctx context.Context, in *GetGroupMemberListReq, opts ...grpc.CallOption) (*GetGroupMemberListResp, error) GetGroupMembersInfo(ctx context.Context, in *GetGroupMembersInfoReq, opts ...grpc.CallOption) (*GetGroupMembersInfoResp, error) @@ -2490,8 +2011,8 @@ func (c *groupClient) GetGroupApplicationList(ctx context.Context, in *GetGroupA return out, nil } -func (c *groupClient) TransferGroupOwner(ctx context.Context, in *TransferGroupOwnerReq, opts ...grpc.CallOption) (*TransferGroupOwnerResp, error) { - out := new(TransferGroupOwnerResp) +func (c *groupClient) TransferGroupOwner(ctx context.Context, in *TransferGroupOwnerReq, opts ...grpc.CallOption) (*CommonResp, error) { + out := new(CommonResp) err := grpc.Invoke(ctx, "/group.group/transferGroupOwner", in, out, c.cc, opts...) if err != nil { return nil, err @@ -2499,8 +2020,8 @@ func (c *groupClient) TransferGroupOwner(ctx context.Context, in *TransferGroupO return out, nil } -func (c *groupClient) GroupApplicationResponse(ctx context.Context, in *GroupApplicationResponseReq, opts ...grpc.CallOption) (*GroupApplicationResponseResp, error) { - out := new(GroupApplicationResponseResp) +func (c *groupClient) GroupApplicationResponse(ctx context.Context, in *GroupApplicationResponseReq, opts ...grpc.CallOption) (*CommonResp, error) { + out := new(CommonResp) err := grpc.Invoke(ctx, "/group.group/groupApplicationResponse", in, out, c.cc, opts...) if err != nil { return nil, err @@ -2571,8 +2092,8 @@ type GroupServer interface { GetGroupsInfo(context.Context, *GetGroupsInfoReq) (*GetGroupsInfoResp, error) SetGroupInfo(context.Context, *SetGroupInfoReq) (*CommonResp, error) GetGroupApplicationList(context.Context, *GetGroupApplicationListReq) (*GetGroupApplicationListResp, error) - TransferGroupOwner(context.Context, *TransferGroupOwnerReq) (*TransferGroupOwnerResp, error) - GroupApplicationResponse(context.Context, *GroupApplicationResponseReq) (*GroupApplicationResponseResp, error) + TransferGroupOwner(context.Context, *TransferGroupOwnerReq) (*CommonResp, error) + GroupApplicationResponse(context.Context, *GroupApplicationResponseReq) (*CommonResp, error) // rpc setOwnerGroupNickName(SetOwnerGroupNickNameReq) returns(CommonResp); GetGroupMemberList(context.Context, *GetGroupMemberListReq) (*GetGroupMemberListResp, error) GetGroupMembersInfo(context.Context, *GetGroupMembersInfoReq) (*GetGroupMembersInfoResp, error) @@ -2903,117 +2424,102 @@ var _Group_serviceDesc = grpc.ServiceDesc{ Metadata: "group/group.proto", } -func init() { proto.RegisterFile("group/group.proto", fileDescriptor_group_ac6850665f72c22b) } - -var fileDescriptor_group_ac6850665f72c22b = []byte{ - // 1744 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x59, 0xdb, 0x6f, 0xdc, 0x44, - 0x17, 0x97, 0x77, 0xbd, 0x9b, 0xec, 0xc9, 0x7d, 0xd2, 0xa4, 0xfe, 0xdc, 0x7c, 0x51, 0xea, 0xaf, - 0xfa, 0x14, 0xf1, 0x10, 0xa4, 0x54, 0x20, 0x15, 0x2a, 0x44, 0x9b, 0x5b, 0xb7, 0xd0, 0x94, 0x3a, - 0xe9, 0x4b, 0x25, 0x54, 0xdc, 0xf5, 0xec, 0xe2, 0x66, 0xd7, 0xf6, 0xda, 0x5e, 0xda, 0x4a, 0x08, - 0x09, 0xa9, 0xa8, 0x48, 0x3c, 0x22, 0x21, 0xf1, 0xc6, 0x03, 0x82, 0x37, 0x24, 0x5e, 0xe0, 0x5f, - 0xe1, 0xbf, 0x01, 0xcd, 0xd5, 0xe3, 0x6b, 0xa2, 0x45, 0x94, 0x97, 0x95, 0xcf, 0x99, 0x33, 0x33, - 0x67, 0x7e, 0x73, 0xce, 0x6f, 0xce, 0xcc, 0xc2, 0xca, 0x20, 0x0a, 0x26, 0xe1, 0x9b, 0xf4, 0x77, - 0x27, 0x8c, 0x82, 0x24, 0x40, 0x2d, 0x2a, 0x58, 0xef, 0x01, 0xec, 0x05, 0xa3, 0x51, 0xe0, 0xdb, - 0x38, 0x0e, 0x91, 0x01, 0x33, 0x07, 0x51, 0xb4, 0x17, 0xb8, 0xd8, 0xd0, 0xb6, 0xb4, 0xed, 0x96, - 0x2d, 0x44, 0xb4, 0x0e, 0xed, 0x83, 0x28, 0xba, 0x17, 0x0f, 0x8c, 0xc6, 0x96, 0xb6, 0xdd, 0xb1, - 0xb9, 0x64, 0xfd, 0xda, 0x80, 0xc5, 0xbd, 0x08, 0x3b, 0x09, 0x3e, 0x22, 0xe3, 0xd9, 0x78, 0x8c, - 0x6e, 0x00, 0x8c, 0xf0, 0xe8, 0x09, 0x8e, 0x3e, 0xf4, 0xe2, 0xc4, 0xd0, 0xb6, 0x9a, 0xdb, 0x73, - 0xbb, 0xff, 0xd9, 0x61, 0x73, 0x53, 0xa3, 0x5b, 0xae, 0x7b, 0x8f, 0x1a, 0x74, 0xfd, 0x7e, 0x60, - 0x2b, 0xc6, 0x68, 0x03, 0x3a, 0xd4, 0xee, 0xd8, 0x19, 0x61, 0x3e, 0x51, 0xaa, 0x40, 0x16, 0xcc, - 0x7b, 0x7e, 0x12, 0x05, 0xee, 0xa4, 0x97, 0x78, 0x81, 0x6f, 0x34, 0xa9, 0x41, 0x46, 0x47, 0x6c, - 0xfc, 0x20, 0xf1, 0xfa, 0x5e, 0xcf, 0xa1, 0x36, 0x3a, 0xb3, 0x51, 0x75, 0x64, 0x95, 0x7d, 0xa7, - 0x87, 0x1f, 0x46, 0x43, 0xa3, 0x45, 0x9b, 0x85, 0x88, 0x2e, 0x41, 0x2b, 0x09, 0xce, 0xb0, 0x6f, - 0xb4, 0xa9, 0x9e, 0x09, 0x68, 0x0b, 0xe6, 0x82, 0x10, 0x47, 0xb4, 0x73, 0x77, 0xdf, 0x98, 0xa1, - 0x6d, 0xaa, 0x0a, 0x99, 0x30, 0x7b, 0x3f, 0x7c, 0x18, 0xe3, 0xa8, 0xbb, 0x6f, 0xcc, 0xd2, 0x66, - 0x29, 0xa3, 0x65, 0x68, 0x1e, 0x3c, 0x4f, 0x8c, 0x0e, 0x55, 0x93, 0x4f, 0xeb, 0x7d, 0x40, 0x45, - 0x1c, 0x88, 0xdd, 0xc4, 0x73, 0x29, 0xee, 0x1d, 0x9b, 0x7c, 0x12, 0x3f, 0x63, 0x9c, 0xd8, 0xc1, - 0x90, 0x61, 0xd1, 0xb2, 0x85, 0x68, 0x7d, 0x0c, 0x4b, 0x19, 0xd0, 0xa7, 0xd9, 0x3a, 0xd2, 0x83, - 0x62, 0xdb, 0xdd, 0xe7, 0x48, 0x0a, 0xd1, 0xfa, 0x5a, 0x83, 0xe5, 0x23, 0x9c, 0xd0, 0xc1, 0x63, - 0xba, 0x49, 0x78, 0x4c, 0x50, 0xe0, 0xed, 0x72, 0x5f, 0x3b, 0xb6, 0xaa, 0x4a, 0xd1, 0x6b, 0xd4, - 0xa0, 0xd7, 0xac, 0x47, 0x4f, 0xcf, 0xa2, 0x67, 0x9d, 0xc1, 0x4a, 0xce, 0x93, 0xa9, 0xd6, 0x7a, - 0x0d, 0x74, 0xd7, 0x49, 0x1c, 0xa3, 0x49, 0xa3, 0x71, 0x59, 0x8d, 0x46, 0x3a, 0x2a, 0x6d, 0xb5, - 0xfe, 0xd4, 0x60, 0xe9, 0x84, 0xcf, 0x26, 0x96, 0xad, 0xa0, 0xa4, 0x65, 0x50, 0x3a, 0x3f, 0x58, - 0x33, 0x81, 0xd8, 0x2c, 0x09, 0xc4, 0x7c, 0x40, 0xeb, 0x25, 0x01, 0xfd, 0x5a, 0x83, 0xd5, 0x7a, - 0x04, 0xa6, 0x80, 0xfb, 0x56, 0x18, 0x0e, 0xb9, 0xa3, 0x64, 0x77, 0x09, 0x16, 0x6a, 0x4f, 0x2d, - 0x17, 0xe6, 0x5b, 0x30, 0x77, 0x5f, 0x99, 0x97, 0xe1, 0xa1, 0xaa, 0xac, 0xef, 0x75, 0xb8, 0x5a, - 0x31, 0xf8, 0xe3, 0x7d, 0x27, 0x71, 0x1e, 0x93, 0x91, 0xd0, 0x22, 0x34, 0xe4, 0xe8, 0x8d, 0xee, - 0x3e, 0x59, 0xff, 0x11, 0xc7, 0x9f, 0x8d, 0x29, 0x44, 0xb4, 0x09, 0x70, 0x18, 0x05, 0x23, 0xee, - 0x0f, 0xc3, 0x57, 0xd1, 0x10, 0x6f, 0x4f, 0x83, 0x6c, 0x58, 0x09, 0x19, 0x21, 0xd0, 0x0f, 0x87, - 0xce, 0x80, 0x42, 0xda, 0xb2, 0xe9, 0x37, 0x19, 0xcf, 0xc6, 0xe3, 0x09, 0x8e, 0x13, 0x12, 0x3f, - 0x0c, 0x54, 0x45, 0x43, 0xda, 0xef, 0x38, 0xbe, 0x3b, 0xc4, 0x2e, 0x69, 0x67, 0xc0, 0x2a, 0x1a, - 0xe2, 0xe9, 0x2d, 0xd7, 0x3d, 0xf5, 0x46, 0x98, 0xc2, 0xda, 0xb4, 0x85, 0x88, 0xde, 0x80, 0x65, - 0xe1, 0xd7, 0xb1, 0xd7, 0x3b, 0xf3, 0x49, 0xc0, 0x30, 0x3e, 0x28, 0xe8, 0xd1, 0xff, 0x61, 0x91, - 0x79, 0x29, 0x2d, 0x81, 0x5a, 0xe6, 0xb4, 0x68, 0x1b, 0x96, 0x44, 0xdf, 0x43, 0x1e, 0x1f, 0x73, - 0xd4, 0x30, 0xaf, 0x46, 0xd7, 0x60, 0x81, 0xf5, 0x15, 0x76, 0xf3, 0xd4, 0x2e, 0xab, 0x24, 0xfb, - 0xc7, 0xd7, 0x42, 0xb4, 0xc6, 0x02, 0xdb, 0x3f, 0x45, 0x45, 0x30, 0x3b, 0x7d, 0x11, 0x62, 0x63, - 0x91, 0x61, 0x46, 0xbe, 0x49, 0x04, 0x33, 0x93, 0x93, 0xc4, 0x49, 0x26, 0xb1, 0xb1, 0x44, 0xdb, - 0x32, 0xba, 0xd4, 0xc6, 0xc6, 0xf1, 0x64, 0x98, 0x18, 0xcb, 0xaa, 0x0d, 0xd3, 0x59, 0x63, 0xb8, - 0x52, 0x11, 0x1a, 0x24, 0x32, 0x48, 0xa8, 0xef, 0x05, 0x13, 0x3f, 0xe1, 0xe9, 0xce, 0x04, 0x74, - 0x13, 0x74, 0xea, 0x6b, 0x83, 0x26, 0xf5, 0xb6, 0x48, 0xea, 0xf3, 0x42, 0xcc, 0xa6, 0xbd, 0xac, - 0x57, 0x5a, 0xe5, 0x9c, 0x53, 0x92, 0xcc, 0xdb, 0xa0, 0xef, 0x33, 0x92, 0xd1, 0xb6, 0xe7, 0x76, - 0xad, 0x7a, 0x7f, 0x88, 0xa5, 0x4d, 0xed, 0xad, 0x9f, 0x35, 0x58, 0x3b, 0x8d, 0x1c, 0x3f, 0xee, - 0xe3, 0x88, 0x9a, 0xde, 0x7f, 0xe6, 0xe3, 0x88, 0x93, 0xcf, 0x51, 0x96, 0x7c, 0x44, 0xf0, 0x93, - 0x54, 0x1c, 0xba, 0xd4, 0x90, 0x7b, 0x21, 0x65, 0xd2, 0x76, 0x8c, 0x9f, 0xb1, 0x36, 0x96, 0x16, - 0x52, 0xce, 0xa7, 0xa9, 0x5e, 0x48, 0xd3, 0x4c, 0x92, 0xb7, 0x72, 0xf4, 0x70, 0x17, 0xd6, 0xcb, - 0x1c, 0x9d, 0xaa, 0x72, 0xf8, 0x4e, 0x83, 0xf9, 0xbb, 0x81, 0xe7, 0xcb, 0xba, 0xa1, 0x9a, 0x69, - 0x0d, 0x98, 0x19, 0xe1, 0x38, 0x76, 0x06, 0x82, 0x67, 0x85, 0x98, 0x72, 0x60, 0x33, 0xc7, 0x81, - 0x7f, 0x63, 0x91, 0xdf, 0xe8, 0x70, 0x25, 0xbf, 0x63, 0x64, 0x8d, 0x81, 0x1f, 0x63, 0x7e, 0x10, - 0xaa, 0xa3, 0x6b, 0xf5, 0xa3, 0x37, 0x72, 0x3c, 0xa9, 0x6c, 0x69, 0xb3, 0x8e, 0xcf, 0xf4, 0x02, - 0x9f, 0xe5, 0x58, 0x84, 0x1e, 0x3b, 0xad, 0x22, 0x8b, 0x1c, 0x57, 0xb0, 0x43, 0xbb, 0x9c, 0x1d, - 0x54, 0x96, 0x9c, 0xc9, 0xb1, 0x64, 0x86, 0x8b, 0xe8, 0x7c, 0xb3, 0x79, 0x2e, 0xa2, 0xb3, 0x15, - 0x18, 0xa6, 0x53, 0xc6, 0x30, 0x0a, 0x3f, 0x42, 0x96, 0x1f, 0xb3, 0xcc, 0x3b, 0x77, 0x0e, 0xf3, - 0xce, 0x17, 0x98, 0x57, 0x30, 0xd3, 0x42, 0x0d, 0x33, 0x2d, 0x5e, 0x80, 0x99, 0x96, 0x4a, 0x98, - 0xe9, 0x23, 0xd8, 0xa8, 0x0e, 0x86, 0xa9, 0x02, 0xff, 0x47, 0x0d, 0x8c, 0x13, 0x9c, 0xd0, 0xdc, - 0xa1, 0x43, 0x0b, 0x1c, 0xeb, 0x93, 0xc0, 0x84, 0x59, 0x5f, 0x6c, 0x03, 0x0f, 0x2a, 0x21, 0xe7, - 0x43, 0xb2, 0x59, 0x0c, 0x49, 0x99, 0x28, 0xba, 0x9a, 0x28, 0x75, 0x69, 0xf0, 0x39, 0xcc, 0x3f, - 0x98, 0x78, 0xc9, 0x05, 0xd2, 0x33, 0x57, 0x72, 0x34, 0x8a, 0x25, 0x47, 0x79, 0x9a, 0xd6, 0xd5, - 0x7d, 0x2f, 0x1b, 0x60, 0xe4, 0x71, 0xa7, 0x4d, 0xa4, 0x54, 0xae, 0x76, 0x85, 0x17, 0xd1, 0x8d, - 0xb4, 0x88, 0x46, 0xa0, 0xd3, 0x53, 0x94, 0xcd, 0x4c, 0xbf, 0x89, 0xce, 0xeb, 0xc9, 0x7a, 0x8b, - 0x7e, 0x93, 0xdd, 0x8a, 0xf0, 0x98, 0xec, 0x16, 0x03, 0x82, 0x4b, 0x24, 0x93, 0x9c, 0xd4, 0x05, - 0x1a, 0xbd, 0x6d, 0x1a, 0xbd, 0x79, 0x35, 0x19, 0xb5, 0x4f, 0x6a, 0x8a, 0x19, 0x16, 0x85, 0x7d, - 0x5e, 0x53, 0x30, 0x1c, 0x82, 0xb4, 0xda, 0x52, 0x34, 0xa4, 0xfd, 0xd3, 0x34, 0xb2, 0x59, 0xda, - 0x28, 0x1a, 0xeb, 0x5b, 0x0d, 0x56, 0x29, 0x0c, 0xec, 0xa2, 0x70, 0x38, 0x19, 0x0e, 0x29, 0x02, - 0xeb, 0xd0, 0x9e, 0x10, 0x34, 0xc4, 0x7d, 0x81, 0x4b, 0xc4, 0x87, 0x28, 0xbd, 0x2f, 0xd0, 0x6f, - 0x02, 0xf3, 0xd3, 0xc0, 0x63, 0xae, 0x13, 0x14, 0x74, 0x5b, 0xca, 0x99, 0xa0, 0xd2, 0x73, 0x41, - 0x55, 0x59, 0x79, 0x5a, 0xbf, 0x6b, 0xb0, 0x26, 0x8e, 0xb5, 0x7b, 0xf2, 0xf6, 0x56, 0x1f, 0x24, - 0xd3, 0x5e, 0x0e, 0xd6, 0xa1, 0xdd, 0xf7, 0x86, 0x09, 0x8e, 0xa8, 0x7f, 0x2d, 0x9b, 0x4b, 0x64, - 0x26, 0x1f, 0x3f, 0x4f, 0x4e, 0xf0, 0x98, 0x17, 0x71, 0x42, 0xcc, 0x84, 0x55, 0x3b, 0x17, 0x56, - 0x3f, 0x68, 0xb0, 0x5e, 0xe6, 0xf9, 0x54, 0xe7, 0xfd, 0x3b, 0x99, 0x8b, 0x2e, 0xbb, 0x5a, 0x98, - 0xea, 0xd5, 0x22, 0xbb, 0x69, 0x99, 0x9b, 0xae, 0xe2, 0xbe, 0x9e, 0x71, 0xdf, 0xfa, 0xa9, 0xe0, - 0x62, 0x7c, 0xfe, 0x5d, 0x64, 0x33, 0xe3, 0x4a, 0x83, 0xde, 0xcd, 0xd4, 0xe9, 0x2a, 0xcf, 0xc9, - 0xa0, 0x78, 0x4e, 0x06, 0x17, 0x3c, 0x27, 0x5f, 0x69, 0x70, 0xb9, 0xd4, 0xd1, 0xd7, 0x0d, 0xa6, - 0xf5, 0x87, 0x06, 0xe8, 0x03, 0xaf, 0x77, 0xa6, 0xd8, 0xd5, 0xc3, 0x75, 0x13, 0xe6, 0x26, 0x9e, - 0x4b, 0xfa, 0x92, 0xb1, 0x78, 0x01, 0x59, 0x37, 0x9b, 0x6a, 0xce, 0xa8, 0xc2, 0x89, 0xe5, 0xa5, - 0x8e, 0x4b, 0x15, 0x1c, 0x9b, 0x03, 0xb9, 0x55, 0x0f, 0x72, 0x3e, 0x60, 0xdf, 0x82, 0x4e, 0xd7, - 0xdd, 0x65, 0x67, 0x11, 0x65, 0xb7, 0x6e, 0xfa, 0x44, 0xd0, 0x75, 0x99, 0x2b, 0xf4, 0xec, 0x62, - 0x19, 0xcf, 0x25, 0xeb, 0x19, 0xac, 0x16, 0x00, 0x99, 0x6a, 0x5b, 0x76, 0xa0, 0xe3, 0xb9, 0xbb, - 0x7c, 0x8e, 0xec, 0xed, 0x59, 0xfa, 0x65, 0xa7, 0x26, 0xd6, 0x19, 0xac, 0x0d, 0x70, 0x42, 0xea, - 0x3a, 0xec, 0xd2, 0xd9, 0x05, 0x33, 0x48, 0x70, 0xb4, 0x1a, 0x70, 0x1a, 0xf5, 0xe0, 0x34, 0x73, - 0xe0, 0x7c, 0xd9, 0x80, 0x8e, 0xbc, 0xac, 0xa7, 0xdb, 0xed, 0x66, 0xb7, 0xdb, 0xfd, 0xd7, 0x6f, - 0xea, 0x9b, 0x00, 0x3d, 0xfa, 0x5c, 0x23, 0x8f, 0x0f, 0xdd, 0x56, 0x34, 0xa4, 0x67, 0x40, 0xaa, - 0x81, 0xae, 0xcb, 0x4b, 0x30, 0x21, 0x12, 0x7c, 0x58, 0x9c, 0xb3, 0xeb, 0x0f, 0x39, 0x40, 0x16, - 0x6c, 0x55, 0x65, 0x7d, 0x01, 0xeb, 0x65, 0x80, 0xd7, 0x6e, 0xb6, 0x09, 0xb3, 0x07, 0x51, 0x14, - 0x28, 0xdb, 0x2d, 0x65, 0xb2, 0xe1, 0x72, 0x98, 0xca, 0xe7, 0x92, 0xd4, 0xc4, 0xfa, 0x4d, 0x83, - 0x4b, 0x9e, 0xff, 0x99, 0x97, 0x60, 0xb2, 0x29, 0xa7, 0x81, 0xac, 0x17, 0xa6, 0xdd, 0xf0, 0xca, - 0x67, 0x29, 0x25, 0xef, 0xf4, 0x4c, 0xde, 0x19, 0x30, 0xc3, 0xd3, 0xd3, 0x68, 0x51, 0xe6, 0x13, - 0x62, 0x6d, 0x66, 0xbd, 0x80, 0xb5, 0x12, 0xbf, 0xa7, 0x4d, 0x12, 0x99, 0x0c, 0xd5, 0x49, 0x22, - 0x3f, 0xad, 0x97, 0x1a, 0x5c, 0x92, 0xd7, 0xc2, 0xe1, 0xf0, 0x22, 0x8c, 0xf5, 0x4f, 0xbc, 0xad, - 0x7d, 0xa5, 0x1c, 0xe3, 0x8a, 0x1b, 0xaf, 0x9b, 0xbe, 0x77, 0x7f, 0x99, 0x05, 0xf6, 0x1a, 0x4d, - 0x78, 0xb9, 0x97, 0xbe, 0x6b, 0xa2, 0x35, 0x3e, 0x40, 0xf6, 0x81, 0xd9, 0x5c, 0x2f, 0x53, 0xc7, - 0x21, 0xba, 0x0e, 0x9d, 0xa7, 0xe2, 0x42, 0x89, 0x56, 0xb9, 0x91, 0x7a, 0xc5, 0x34, 0x57, 0x44, - 0xcf, 0xf4, 0xc9, 0xfb, 0x3a, 0x74, 0xc6, 0xa2, 0xcc, 0x95, 0x9d, 0xd4, 0xc2, 0xb7, 0xac, 0xd3, - 0x6d, 0x58, 0x18, 0xa8, 0xaf, 0x92, 0xe8, 0x72, 0xee, 0xb2, 0x2f, 0x8e, 0x6c, 0xd3, 0x28, 0x6f, - 0x88, 0x43, 0x74, 0x03, 0xe6, 0x63, 0xe5, 0xad, 0x11, 0x89, 0x55, 0xe5, 0x1e, 0x20, 0xcb, 0xa6, - 0xff, 0x04, 0x2e, 0x0f, 0xca, 0x5f, 0x15, 0xd0, 0xd5, 0xfa, 0x57, 0x07, 0x32, 0xa0, 0x75, 0x9e, - 0x49, 0x1c, 0xa2, 0x07, 0x80, 0x92, 0xc2, 0x45, 0x1f, 0x6d, 0xf0, 0x9e, 0xa5, 0x8f, 0x15, 0xe6, - 0x7f, 0x6b, 0x5a, 0xe3, 0x10, 0xf5, 0xc0, 0x18, 0x54, 0x5c, 0xa4, 0x90, 0x95, 0xf9, 0x7b, 0xa0, - 0xf4, 0xda, 0x6d, 0xfe, 0xef, 0x5c, 0x1b, 0xe6, 0xf7, 0xa0, 0x50, 0xde, 0x49, 0xbf, 0x4b, 0x6b, - 0x56, 0xe9, 0x77, 0x45, 0x5d, 0x78, 0x0a, 0xab, 0x83, 0x62, 0x95, 0x83, 0xca, 0x7b, 0xc9, 0x7d, - 0xdf, 0xac, 0x6b, 0x8e, 0x43, 0x74, 0x07, 0x96, 0xce, 0xb2, 0x07, 0x34, 0x12, 0xff, 0x91, 0x14, - 0x2b, 0x19, 0xd3, 0xac, 0x6a, 0x92, 0x4b, 0xce, 0x1d, 0x00, 0x72, 0xc9, 0xa5, 0x87, 0xb1, 0x5c, - 0x72, 0xc5, 0xc9, 0x71, 0x0c, 0x2b, 0x05, 0x6a, 0x44, 0x57, 0x78, 0x9f, 0x32, 0xb2, 0x37, 0x37, - 0xaa, 0x1b, 0xd9, 0x78, 0x83, 0x3c, 0xcf, 0xc8, 0xf1, 0xca, 0x88, 0xd0, 0xdc, 0xa8, 0x6e, 0x8c, - 0xc3, 0xdb, 0x4b, 0x8f, 0x16, 0x76, 0xd8, 0x9f, 0x59, 0xef, 0xd2, 0xdf, 0x27, 0x6d, 0xfa, 0x9f, - 0xd6, 0xf5, 0xbf, 0x02, 0x00, 0x00, 0xff, 0xff, 0xdb, 0x12, 0xfa, 0x38, 0xe8, 0x1a, 0x00, 0x00, +func init() { proto.RegisterFile("group/group.proto", fileDescriptor_group_23d97c4cd172f0ff) } + +var fileDescriptor_group_23d97c4cd172f0ff = []byte{ + // 1492 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x58, 0xcb, 0x6f, 0x1c, 0x45, + 0x13, 0xd7, 0xec, 0xc3, 0xf1, 0x96, 0x1f, 0x6b, 0x77, 0x62, 0x67, 0xbe, 0x89, 0xbf, 0xc8, 0x19, + 0xa1, 0xc8, 0x8a, 0x90, 0x2d, 0x39, 0x08, 0x09, 0x25, 0x42, 0x71, 0xfc, 0x48, 0x16, 0xb0, 0xad, + 0x8c, 0x37, 0x17, 0x2e, 0x66, 0xb2, 0xd3, 0x59, 0x0d, 0x3b, 0x3b, 0x33, 0x3b, 0x3d, 0x8b, 0x13, + 0x2e, 0x80, 0x90, 0xe0, 0x80, 0x80, 0x5c, 0x39, 0x72, 0x80, 0x23, 0xe2, 0xc0, 0x9d, 0x03, 0xff, + 0x18, 0xea, 0xc7, 0xcc, 0xf6, 0xf4, 0x3c, 0x76, 0x65, 0x4b, 0xe4, 0xb2, 0xda, 0xae, 0xaa, 0xee, + 0x7a, 0x74, 0xd5, 0xaf, 0x6a, 0x1a, 0x56, 0xfb, 0x51, 0x30, 0x0e, 0x77, 0xd8, 0xef, 0x76, 0x18, + 0x05, 0x71, 0x80, 0x9a, 0x6c, 0x61, 0xdc, 0x39, 0x0d, 0xb1, 0x7f, 0xde, 0x39, 0xde, 0x09, 0x07, + 0xfd, 0x1d, 0xc6, 0xd9, 0x21, 0xce, 0xe0, 0xfc, 0x82, 0xec, 0x5c, 0x10, 0x2e, 0x69, 0x7e, 0x08, + 0xb0, 0x1f, 0x0c, 0x87, 0x81, 0x6f, 0x61, 0x12, 0x22, 0x1d, 0xae, 0x1d, 0x46, 0xd1, 0x7e, 0xe0, + 0x60, 0x5d, 0xdb, 0xd4, 0xb6, 0x9a, 0x56, 0xb2, 0x44, 0xeb, 0x30, 0x77, 0x18, 0x45, 0xc7, 0xa4, + 0xaf, 0xd7, 0x36, 0xb5, 0xad, 0x96, 0x25, 0x56, 0xe6, 0x23, 0x40, 0x4f, 0xa8, 0xae, 0x3d, 0xc7, + 0x39, 0xc6, 0xc3, 0x17, 0x38, 0xea, 0xf8, 0x2f, 0x03, 0x2a, 0xfd, 0x9c, 0xe0, 0xa8, 0x73, 0xc0, + 0x8e, 0x69, 0x59, 0x62, 0x85, 0x10, 0x34, 0xac, 0xc0, 0xc3, 0xec, 0x8c, 0xa6, 0xc5, 0xfe, 0x9b, + 0xff, 0xd4, 0x60, 0x79, 0x3f, 0xc2, 0x76, 0x8c, 0xd9, 0x41, 0x16, 0x1e, 0xa1, 0x3d, 0x58, 0xee, + 0xf8, 0x6e, 0xcc, 0x0f, 0xfc, 0xc4, 0x25, 0xb1, 0xae, 0x6d, 0xd6, 0xb7, 0x16, 0x76, 0xff, 0xb7, + 0xcd, 0x9d, 0xcc, 0x6b, 0xb4, 0x94, 0x0d, 0x68, 0x03, 0x5a, 0x4c, 0xea, 0xc4, 0x1e, 0x62, 0x61, + 0xf2, 0x84, 0x80, 0x4c, 0x58, 0xec, 0xf8, 0x71, 0x14, 0x38, 0xe3, 0x5e, 0xec, 0x06, 0xbe, 0x5e, + 0x67, 0x02, 0x19, 0x1a, 0x95, 0x39, 0x09, 0x62, 0xf7, 0xa5, 0xdb, 0xb3, 0x99, 0x4c, 0x83, 0xcb, + 0xc8, 0x34, 0x1a, 0xaf, 0x23, 0xbb, 0x87, 0x9f, 0x47, 0x9e, 0xde, 0x64, 0xec, 0x64, 0x89, 0x56, + 0xa0, 0x7e, 0xf8, 0x2a, 0xd6, 0xe7, 0x18, 0x95, 0xfe, 0x45, 0x9b, 0xb0, 0x70, 0x1a, 0xe2, 0x88, + 0x6d, 0xec, 0x1c, 0xe8, 0xd7, 0x18, 0x47, 0x26, 0x21, 0x03, 0xe6, 0x4f, 0x43, 0x11, 0xb7, 0x79, + 0xc6, 0x4e, 0xd7, 0xe8, 0x36, 0xc0, 0x51, 0x14, 0x0c, 0x05, 0xb7, 0xc5, 0xb8, 0x12, 0xc5, 0x7c, + 0x0d, 0xed, 0x4c, 0x10, 0x2f, 0x73, 0x99, 0xe8, 0x3d, 0x11, 0x34, 0x1a, 0x51, 0x16, 0x93, 0x85, + 0xdd, 0xf5, 0xed, 0x80, 0xe6, 0x90, 0x3b, 0x3c, 0x27, 0xce, 0x60, 0x3b, 0xe5, 0x5a, 0x13, 0x41, + 0x33, 0x82, 0x95, 0x27, 0x38, 0x66, 0x6b, 0xc2, 0x78, 0x78, 0x44, 0x9d, 0xe5, 0x02, 0x07, 0xe9, + 0xf5, 0xb5, 0x2c, 0x99, 0xa4, 0x86, 0xa3, 0x56, 0x1d, 0x8e, 0x7a, 0x36, 0x1c, 0xe6, 0xb7, 0x1a, + 0xac, 0x2a, 0x4a, 0x2f, 0xe5, 0xf1, 0x43, 0x58, 0x4a, 0x1d, 0x61, 0x96, 0xd6, 0x59, 0xa2, 0x95, + 0x79, 0x9d, 0x15, 0x36, 0x7f, 0xd3, 0xa0, 0x7d, 0x26, 0xac, 0x48, 0x3c, 0xcf, 0xc4, 0x50, 0x9b, + 0x31, 0x86, 0x19, 0x5f, 0x6b, 0x95, 0x57, 0x5f, 0x57, 0xaf, 0x5e, 0x8d, 0x64, 0x23, 0x17, 0x49, + 0xf3, 0x4b, 0x30, 0x92, 0x60, 0xed, 0x85, 0xa1, 0x27, 0xb2, 0x97, 0xba, 0x40, 0x2d, 0x96, 0x75, + 0x6b, 0x8a, 0xee, 0xe9, 0xb7, 0x34, 0xc5, 0x3a, 0xf3, 0x97, 0x06, 0xdc, 0x29, 0x51, 0x7e, 0x7e, + 0x60, 0xc7, 0xf6, 0x39, 0x95, 0x43, 0xcb, 0x50, 0x4b, 0xb5, 0xd7, 0x3a, 0x07, 0xf4, 0x26, 0x45, + 0xb2, 0x08, 0x9d, 0xc9, 0x72, 0x6a, 0x34, 0x0c, 0x98, 0xef, 0x06, 0x82, 0xcb, 0x43, 0x91, 0xae, + 0x29, 0xfc, 0x1c, 0x79, 0x76, 0x9f, 0xd5, 0x6a, 0xd3, 0x62, 0xff, 0xe9, 0x79, 0x16, 0x1e, 0x8d, + 0x31, 0x89, 0x69, 0x76, 0xf0, 0x7a, 0x95, 0x28, 0x94, 0xff, 0xd4, 0xf6, 0x1d, 0x0f, 0x3b, 0x94, + 0xcf, 0xab, 0x56, 0xa2, 0x50, 0x4b, 0xf7, 0x1c, 0xa7, 0xeb, 0x0e, 0x31, 0xab, 0xd9, 0xba, 0x95, + 0x2c, 0xd1, 0x3d, 0x58, 0x49, 0xec, 0x3a, 0x71, 0x7b, 0x03, 0x9f, 0x22, 0x11, 0x2f, 0xdc, 0x1c, + 0x1d, 0xdd, 0x85, 0x65, 0x6e, 0x65, 0x2a, 0x09, 0x4c, 0x52, 0xa1, 0xa2, 0x2d, 0x68, 0x27, 0x7b, + 0x13, 0xe0, 0x59, 0x60, 0x82, 0x2a, 0x19, 0xbd, 0x03, 0x4b, 0x7c, 0x6f, 0x22, 0xb7, 0xc8, 0xe4, + 0xb2, 0x44, 0x7a, 0xbf, 0xc2, 0x17, 0x4a, 0xd5, 0x97, 0xf8, 0xfd, 0x4a, 0x24, 0x1a, 0xb3, 0xee, + 0xeb, 0x10, 0xeb, 0xcb, 0x3c, 0x66, 0xf4, 0x3f, 0x85, 0x46, 0x2e, 0x72, 0x16, 0xdb, 0xf1, 0x98, + 0xe8, 0x6d, 0xc6, 0xcb, 0xd0, 0x26, 0x32, 0x16, 0x26, 0x63, 0x2f, 0xd6, 0x57, 0x64, 0x19, 0x4e, + 0x33, 0x47, 0x70, 0xab, 0x24, 0x35, 0x68, 0x66, 0xa0, 0x1b, 0xd0, 0xdc, 0x0f, 0xc6, 0x7e, 0x2c, + 0x8a, 0x99, 0x2f, 0xd0, 0x43, 0x68, 0x30, 0x5b, 0x6b, 0xac, 0x52, 0xb7, 0x92, 0x96, 0x30, 0x2d, + 0xc5, 0x2c, 0xb6, 0xcb, 0xfc, 0x5e, 0x2b, 0xd5, 0x79, 0x49, 0x08, 0x79, 0x1f, 0x1a, 0x54, 0x89, + 0xc0, 0x4b, 0xb3, 0xda, 0x1e, 0x2a, 0x69, 0x31, 0x79, 0xf3, 0x6f, 0x0d, 0xd6, 0xba, 0x91, 0xed, + 0x93, 0x97, 0x38, 0x62, 0xa2, 0xa7, 0x17, 0x3e, 0x8e, 0x68, 0x41, 0x4a, 0xc9, 0xaf, 0x65, 0x93, + 0xff, 0x2e, 0x2c, 0x9f, 0x7a, 0x0e, 0x13, 0xcc, 0x80, 0x85, 0x42, 0xa5, 0x72, 0x27, 0xf8, 0x42, + 0x96, 0xe3, 0x85, 0xa2, 0x50, 0xa7, 0x43, 0x47, 0x06, 0x1c, 0x9a, 0x0a, 0x08, 0xff, 0xae, 0xc1, + 0xe2, 0x47, 0x81, 0xeb, 0xa7, 0x7d, 0xbb, 0xdc, 0x70, 0x5e, 0x65, 0xc7, 0x98, 0x10, 0xbb, 0x9f, + 0xf4, 0x63, 0x89, 0x72, 0x75, 0x8c, 0xab, 0x34, 0xf4, 0xe7, 0x1a, 0xdc, 0x52, 0x6f, 0x83, 0xde, + 0x76, 0xe0, 0x13, 0x2c, 0xba, 0x95, 0x7c, 0xba, 0x56, 0x7d, 0xba, 0x8a, 0xcf, 0x92, 0xd7, 0xf5, + 0x2a, 0xac, 0x6a, 0x54, 0x62, 0xd5, 0x35, 0x05, 0xab, 0x24, 0x5c, 0x81, 0x2c, 0xae, 0x64, 0x11, + 0x69, 0x31, 0x87, 0x48, 0x6a, 0xe5, 0xb5, 0x0b, 0x2a, 0xef, 0x0f, 0x0d, 0xf4, 0x33, 0x1c, 0xb3, + 0x5c, 0xe0, 0x63, 0x91, 0xdb, 0x1b, 0xd0, 0xd1, 0xa8, 0xfa, 0x1a, 0x0d, 0x98, 0x4f, 0x01, 0x4a, + 0x84, 0x21, 0x85, 0x26, 0x25, 0x88, 0xf5, 0x69, 0xad, 0xa2, 0x30, 0x1c, 0xa5, 0x57, 0xf8, 0x9d, + 0x06, 0x8b, 0xcf, 0xc6, 0x6e, 0x3c, 0x43, 0xae, 0x5d, 0xb9, 0x67, 0x65, 0x0c, 0x69, 0x28, 0x86, + 0xfc, 0xaa, 0xc1, 0x5a, 0x52, 0xdc, 0x93, 0x79, 0x73, 0x6a, 0xd8, 0x4a, 0xb3, 0x67, 0x7a, 0xd8, + 0xd6, 0x61, 0xee, 0xc8, 0xf5, 0x62, 0x1c, 0x31, 0x5b, 0x9a, 0x96, 0x58, 0x51, 0x7d, 0x27, 0xf8, + 0x55, 0x7c, 0x86, 0x47, 0xa2, 0xa1, 0x25, 0x4b, 0x5a, 0x98, 0xeb, 0x45, 0x36, 0x5e, 0x0a, 0xdf, + 0x1e, 0x01, 0x0c, 0x27, 0x83, 0x38, 0x9f, 0x8f, 0x36, 0xf3, 0x13, 0x0d, 0xd7, 0x73, 0x34, 0xf6, + 0x3c, 0x36, 0xdb, 0x48, 0x7b, 0xa8, 0x4e, 0x5f, 0x18, 0xca, 0x3d, 0x48, 0x96, 0xe6, 0x9b, 0x9c, + 0xa1, 0xe9, 0x04, 0x59, 0x89, 0x25, 0x92, 0x41, 0x35, 0x36, 0x5a, 0xca, 0xea, 0x2a, 0xe6, 0xc6, + 0x19, 0x66, 0xa5, 0x1f, 0x35, 0xb8, 0x59, 0x68, 0xd2, 0xdb, 0x09, 0x9e, 0xf9, 0xa7, 0x06, 0xe8, + 0x63, 0xb7, 0x37, 0x90, 0xe4, 0xaa, 0xc3, 0x73, 0x0f, 0x56, 0xa8, 0x3c, 0x6f, 0xdf, 0x62, 0xfe, + 0xe6, 0x41, 0xca, 0xd1, 0xa9, 0xd9, 0x16, 0xb6, 0x49, 0xfa, 0x05, 0x24, 0x56, 0x6a, 0x98, 0x9a, + 0xd5, 0x80, 0x38, 0xa7, 0x94, 0xc8, 0x03, 0x68, 0x75, 0x9c, 0x5d, 0x8e, 0x34, 0xa5, 0x9f, 0x82, + 0x4c, 0x35, 0xc3, 0x27, 0xfe, 0x31, 0x28, 0x56, 0xe6, 0x57, 0x70, 0x3d, 0xe7, 0xee, 0x25, 0xfb, + 0xf2, 0x52, 0x6a, 0x85, 0x14, 0xfd, 0x15, 0xd1, 0xa0, 0x53, 0x9e, 0x95, 0x15, 0x33, 0xc7, 0xac, + 0xbe, 0x69, 0x5f, 0xc3, 0x0e, 0xb3, 0x22, 0xa9, 0xef, 0x2c, 0x6a, 0x68, 0x45, 0x3d, 0x2a, 0xc8, + 0xe3, 0x4e, 0x30, 0xe3, 0x17, 0xcd, 0xd7, 0xbc, 0x14, 0x72, 0x7a, 0xaf, 0xf4, 0x21, 0x37, 0xc3, + 0x27, 0xcd, 0x44, 0xd0, 0xfc, 0x4b, 0x83, 0x1b, 0x1d, 0xff, 0x0b, 0x37, 0xc6, 0xd4, 0xa6, 0x6e, + 0x90, 0x62, 0xed, 0x74, 0x44, 0x2d, 0xef, 0x81, 0x93, 0x14, 0x6b, 0x64, 0x52, 0xec, 0x5d, 0x58, + 0xe5, 0xba, 0xe4, 0x3c, 0x6d, 0xb2, 0x3c, 0xcd, 0x33, 0x2a, 0xd3, 0xed, 0x1b, 0x0d, 0xd6, 0x0a, + 0xcc, 0xfe, 0x4f, 0x93, 0xe6, 0x27, 0x0d, 0x6e, 0xa4, 0x23, 0x9f, 0xe7, 0xcd, 0x52, 0xa7, 0xd9, + 0x74, 0xaa, 0x4d, 0x1b, 0x79, 0xea, 0xd5, 0x35, 0xa8, 0xb6, 0xa9, 0x1f, 0xa4, 0x36, 0x25, 0x19, + 0xf4, 0x76, 0x40, 0x6c, 0xf7, 0xcd, 0x3c, 0xf0, 0x27, 0x29, 0xf4, 0x10, 0x16, 0x7a, 0x93, 0x77, + 0x0a, 0xb4, 0x26, 0x02, 0x9b, 0x7d, 0x00, 0x32, 0xd6, 0x8b, 0xc8, 0x24, 0x44, 0xf7, 0xa1, 0xf5, + 0x79, 0x32, 0x70, 0xa2, 0xeb, 0x42, 0x48, 0x1e, 0x41, 0x8d, 0xd5, 0x64, 0xe7, 0xe4, 0x51, 0xeb, + 0x3e, 0xb4, 0x46, 0xc9, 0xe4, 0x90, 0x6e, 0x92, 0x67, 0x89, 0xa2, 0x4d, 0x8f, 0x61, 0xa9, 0x2f, + 0xbf, 0x2f, 0xa0, 0x9b, 0xca, 0x60, 0x9f, 0x34, 0x2a, 0x43, 0x2f, 0x66, 0x90, 0x10, 0x7d, 0x00, + 0x8b, 0x44, 0x7a, 0x1d, 0x40, 0x89, 0x57, 0xca, 0x93, 0x41, 0x91, 0xfa, 0xcf, 0xe0, 0x66, 0xbf, + 0xf8, 0x0b, 0x02, 0xdd, 0xa9, 0xfe, 0xc2, 0xa0, 0x07, 0x9a, 0xd3, 0x44, 0x48, 0x88, 0x0e, 0x01, + 0xc5, 0xb9, 0xaf, 0x0f, 0xb4, 0x21, 0x76, 0x16, 0x7e, 0x98, 0x14, 0x19, 0xfa, 0x0c, 0xf4, 0x7e, + 0xc9, 0x64, 0x8d, 0xcc, 0xcc, 0x73, 0x5d, 0xe1, 0xe8, 0x5d, 0x7c, 0x24, 0xea, 0xe7, 0x86, 0x97, + 0xd4, 0xb2, 0xc2, 0xd9, 0xcb, 0xf8, 0x7f, 0x05, 0x97, 0x84, 0xa8, 0x0b, 0xd7, 0xfb, 0xf9, 0x9e, + 0x8e, 0x8a, 0x77, 0xa5, 0x37, 0x7b, 0xbb, 0x8a, 0x4d, 0x42, 0xf4, 0x14, 0xda, 0x83, 0x6c, 0xab, + 0x42, 0xc9, 0x0b, 0x65, 0xbe, 0x63, 0x1b, 0x46, 0x19, 0x2b, 0x75, 0x59, 0xc1, 0x7e, 0xd9, 0xe5, + 0x7c, 0x3b, 0x92, 0x5d, 0x2e, 0x6a, 0x1a, 0x27, 0xb0, 0xea, 0xaa, 0xa0, 0x88, 0x6e, 0x25, 0x38, + 0x56, 0x80, 0xf2, 0xc6, 0x46, 0x39, 0x93, 0x9f, 0xd7, 0x57, 0xf1, 0x24, 0x3d, 0xaf, 0x08, 0xfa, + 0x8c, 0x8d, 0x72, 0x26, 0x09, 0x1f, 0xb7, 0x3f, 0x5d, 0xda, 0xe6, 0x6f, 0xd6, 0x0f, 0xd8, 0xef, + 0x8b, 0x39, 0xf6, 0x20, 0x7d, 0xff, 0xdf, 0x00, 0x00, 0x00, 0xff, 0xff, 0xaa, 0xd5, 0x63, 0xdb, + 0xcf, 0x16, 0x00, 0x00, } diff --git a/pkg/proto/group/group.proto b/pkg/proto/group/group.proto index 5b3deb002..f81b9da41 100644 --- a/pkg/proto/group/group.proto +++ b/pkg/proto/group/group.proto @@ -1,4 +1,5 @@ syntax = "proto3"; +import "Open_IM/pkg/proto/sdk_ws/ws.proto"; option go_package = "./group;group"; package group; @@ -7,58 +8,54 @@ message CommonResp{ string ErrMsg = 2; } -message CreateGroupReq{ - repeated GroupAddMemberInfo memberList = 1; - string groupName = 2; - string introduction = 3; - string notification = 4; - string faceUrl = 5; - string token = 6; - string operationID = 7; - string OpUserID = 8; - string Ext = 9; +message GroupAddMemberInfo{ + string UserID = 1; + int32 Role = 2; } - -message GroupAddMemberInfo{ - string uid = 1; - int32 setRole = 2; +message CreateGroupReq{ + repeated GroupAddMemberInfo InitMemberList = 1; // + string GroupName = 2; + string Introduction = 3; + string Notification = 4; + string FaceUrl = 5; + string Ext = 6; + string OperationID = 7; + string OpUserID = 8; + string FromUserID = 9; } message CreateGroupResp{ int32 ErrCode = 1; string ErrMsg = 2; - string groupID = 3; + open_im_sdk.GroupInfo GroupInfo = 3; } message GetGroupsInfoReq{ - repeated string groupIDList = 1; - string token = 2; - string operationID = 3; - string OpUserID = 4; + repeated string GroupIDList = 1; + string OperationID = 2; + string OpUserID = 3; } message GetGroupsInfoResp{ int32 ErrCode = 1; string ErrMsg = 2; - repeated GroupInfo data = 3; + repeated open_im_sdk.GroupInfo GroupInfoList = 3; } + message SetGroupInfoReq{ - string groupID = 1; - string groupName = 2; - string notification = 3; - string introduction = 4; - string faceUrl = 5; - string token = 6; - string operationID = 7; - string OpUserID = 8; + open_im_sdk.GroupInfo GroupInfo = 1; + string OpUserID = 2; + string FromUserID = 3; + string OperationID = 4; } - +//owner or manager message GetGroupApplicationListReq { string OpUserID = 1; string OperationID = 2; + string FromUserID = 3; //owner or manager } message GetGroupApplicationList_Data_User { @@ -93,21 +90,17 @@ message GetGroupApplicationListResp { message TransferGroupOwnerReq { string GroupID = 1; - string OldOwner = 2; - string NewOwner = 3; + string OldOwnerUserID = 2; + string NewOwnerUserID = 3; string OperationID = 4; string OpUserID = 5; } -message TransferGroupOwnerResp{ - int32 ErrCode = 1; - string ErrMsg = 2; -} message JoinGroupReq{ - string groupID = 1; - string message = 2; - string token = 3; + string GroupID = 1; + string ReqMessage = 2; + string FromUserID = 3; string OperationID = 4; string OpUserID = 5; } @@ -117,166 +110,124 @@ message GroupApplicationResponseReq{ string OpUserID = 2; string GroupID = 3; string FromUserID = 4; //请求加群:请求者,邀请加群:邀请人 - string FromUserNickName = 5; - string FromUserFaceUrl = 6; string ToUserID = 7; //请求加群:0,邀请加群:被邀请人 - string ToUserNickName = 8; - string ToUserFaceUrl = 9; int64 AddTime = 10; - string RequestMsg = 11; string HandledMsg = 12; - int32 Type = 13; - int32 HandleStatus = 14; - int32 HandleResult = 15; + // int32 Type = 13; +// int32 HandleStatus = 14; + int32 HandleResult = 15; } -message GroupApplicationResponseResp{ - int32 ErrCode = 1; - string ErrMsg = 2; -} + message SetOwnerGroupNickNameReq{ - string groupID = 1; - string nickName = 2; + string GroupID = 1; + string Nickname = 2; string OperationID = 3; - string token = 4; + string FromUserID = 4; string OpUserID = 5; } message QuitGroupReq{ - string groupID = 1; - string operationID = 2; - string token = 3; + string GroupID = 1; + string OperationID = 2; + string FromUserID = 3; string OpUserID = 4; } -message GroupApplicationUserInfo{ - string groupID = 1; - string uid = 2; - string name = 3; - string icon = 4; - string reqMsg = 5; - int64 applicationTime = 6; - int32 flag = 7; - string operatorID = 8; - string handledMsg = 9; -} - -message GroupMemberFullInfo { - string userId = 1; - int32 role = 2; - uint64 joinTime = 3; - string nickName = 4; - string faceUrl = 5; -} message GetGroupMemberListReq { - string groupID = 1; - string token = 2; - string operationID = 3; - int32 filter = 4; - int32 nextSeq = 5; - string OpUserID = 6; + string GroupID = 1; + string OpUserID = 2; + string OperationID = 3; + int32 Filter = 4; + int32 NextSeq = 5; } message GetGroupMemberListResp { int32 ErrCode = 1; string ErrMsg = 2; - repeated GroupMemberFullInfo memberList = 3; + repeated open_im_sdk.GroupMemberFullInfo memberList = 3; int32 nextSeq = 4; } message GetGroupMembersInfoReq { - string groupID = 1; + string GroupID = 1; repeated string memberList = 2; - string token = 3; - string operationID = 4; - string OpUserID = 5; + string OpUserID = 3; + string OperationID = 4; } message GetGroupMembersInfoResp { int32 ErrCode = 1; string ErrMsg = 2; - repeated GroupMemberFullInfo memberList = 3; - + repeated open_im_sdk.GroupMemberFullInfo memberList = 3; } message KickGroupMemberReq { - string groupID = 1; - repeated GroupMemberFullInfo uidListInfo = 2; - string reason = 3; - string token = 4; - string operationID = 5; + string GroupID = 1; + repeated string KickedUserIDList = 2; + string Reason = 3; + string OperationID = 5; string OpUserID = 6; } message Id2Result { - string uId = 1; - int32 result = 2; //0 ok; -1 error + string UserID = 1; + int32 Result = 2; //0 ok; -1 error } message KickGroupMemberResp { int32 ErrCode = 1; string ErrMsg = 2; - repeated Id2Result id2result = 3; + repeated Id2Result Id2ResultList = 3; } -message getJoinedGroupListReq { - string token = 1; +message GetJoinedGroupListReq { + string FromUserID = 1; string operationID = 2; string OpUserID = 3; } -message GroupInfo { - string groupId = 1; - string groupName = 2; - string notification = 3; - string introduction = 4; - string faceUrl = 5; - uint64 createTime = 6; - string ownerId = 7; - uint32 memberCount = 8; -} -message getJoinedGroupListResp{ +message GetJoinedGroupListResp{ int32 ErrCode = 1; - string ErrorMsg = 2; - repeated GroupInfo GroupList = 3; + string ErrMsg = 2; + repeated open_im_sdk.GroupInfo GroupList = 3; } -message inviteUserToGroupReq { - string token = 1; - string operationID = 2; - string groupID = 3; - string reason = 4; - repeated string uidList = 5; +message InviteUserToGroupReq { + string OperationID = 2; + string GroupID = 3; + string Reason = 4; + repeated string InvitedUserIDList = 5; string OpUserID = 6; } -message inviteUserToGroupResp { +message InviteUserToGroupResp { int32 ErrCode = 1; string ErrMsg = 2; - repeated Id2Result Id2Result = 3; // 0 ok, -1 error + repeated Id2Result Id2ResultList = 3; // 0 ok, -1 error } + message GetGroupAllMemberReq { - string groupID = 1; - string token = 2; - string operationID = 3; - string OpUserID = 4; + string GroupID = 1; + string OpUserID = 2; + string OperationID = 3; } message GetGroupAllMemberResp { int32 ErrCode = 1; string ErrMsg = 2; - repeated GroupMemberFullInfo memberList = 3; + repeated open_im_sdk.GroupMemberFullInfo memberList = 3; } @@ -288,14 +239,14 @@ service group{ rpc getGroupsInfo(GetGroupsInfoReq) returns(GetGroupsInfoResp); rpc setGroupInfo(SetGroupInfoReq) returns(CommonResp); rpc getGroupApplicationList(GetGroupApplicationListReq) returns(GetGroupApplicationListResp); - rpc transferGroupOwner(TransferGroupOwnerReq) returns(TransferGroupOwnerResp); - rpc groupApplicationResponse(GroupApplicationResponseReq) returns(GroupApplicationResponseResp); + rpc transferGroupOwner(TransferGroupOwnerReq) returns(CommonResp); + rpc groupApplicationResponse(GroupApplicationResponseReq) returns(CommonResp); // rpc setOwnerGroupNickName(SetOwnerGroupNickNameReq) returns(CommonResp); rpc getGroupMemberList(GetGroupMemberListReq) returns(GetGroupMemberListResp); rpc getGroupMembersInfo(GetGroupMembersInfoReq) returns(GetGroupMembersInfoResp); rpc kickGroupMember(KickGroupMemberReq) returns (KickGroupMemberResp); - rpc getJoinedGroupList(getJoinedGroupListReq) returns (getJoinedGroupListResp); - rpc inviteUserToGroup(inviteUserToGroupReq) returns (inviteUserToGroupResp); + rpc getJoinedGroupList(GetJoinedGroupListReq) returns (GetJoinedGroupListResp); + rpc inviteUserToGroup(InviteUserToGroupReq) returns (InviteUserToGroupResp); rpc getGroupAllMember(GetGroupAllMemberReq) returns(GetGroupAllMemberResp); } diff --git a/pkg/proto/sdk_ws/ws.pb.go b/pkg/proto/sdk_ws/ws.pb.go index 1ce815b28..4e7bd82bc 100644 --- a/pkg/proto/sdk_ws/ws.pb.go +++ b/pkg/proto/sdk_ws/ws.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // source: sdk_ws/ws.proto -package open_im_sdk // import "./sdk_ws" +package open_im_sdk import proto "github.com/golang/protobuf/proto" import fmt "fmt" @@ -32,7 +32,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_a9634e8f434358ba, []int{0} + return fileDescriptor_ws_ca4877c90b77c1e9, []int{0} } func (m *PullMessageBySeqListResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_PullMessageBySeqListResp.Unmarshal(m, b) @@ -91,7 +91,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_a9634e8f434358ba, []int{1} + return fileDescriptor_ws_ca4877c90b77c1e9, []int{1} } func (m *PullMessageBySeqListReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_PullMessageBySeqListReq.Unmarshal(m, b) @@ -128,7 +128,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_a9634e8f434358ba, []int{2} + return fileDescriptor_ws_ca4877c90b77c1e9, []int{2} } func (m *GetMaxAndMinSeqReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetMaxAndMinSeqReq.Unmarshal(m, b) @@ -160,7 +160,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_a9634e8f434358ba, []int{3} + return fileDescriptor_ws_ca4877c90b77c1e9, []int{3} } func (m *GetMaxAndMinSeqResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetMaxAndMinSeqResp.Unmarshal(m, b) @@ -208,7 +208,7 @@ func (m *GatherFormat) Reset() { *m = GatherFormat{} } func (m *GatherFormat) String() string { return proto.CompactTextString(m) } func (*GatherFormat) ProtoMessage() {} func (*GatherFormat) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_a9634e8f434358ba, []int{4} + return fileDescriptor_ws_ca4877c90b77c1e9, []int{4} } func (m *GatherFormat) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GatherFormat.Unmarshal(m, b) @@ -276,7 +276,7 @@ func (m *MsgFormat) Reset() { *m = MsgFormat{} } func (m *MsgFormat) String() string { return proto.CompactTextString(m) } func (*MsgFormat) ProtoMessage() {} func (*MsgFormat) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_a9634e8f434358ba, []int{5} + return fileDescriptor_ws_ca4877c90b77c1e9, []int{5} } func (m *MsgFormat) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MsgFormat.Unmarshal(m, b) @@ -401,7 +401,7 @@ func (m *UserSendMsgReq) Reset() { *m = UserSendMsgReq{} } func (m *UserSendMsgReq) String() string { return proto.CompactTextString(m) } func (*UserSendMsgReq) ProtoMessage() {} func (*UserSendMsgReq) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_a9634e8f434358ba, []int{6} + return fileDescriptor_ws_ca4877c90b77c1e9, []int{6} } func (m *UserSendMsgReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_UserSendMsgReq.Unmarshal(m, b) @@ -511,7 +511,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_a9634e8f434358ba, []int{7} + return fileDescriptor_ws_ca4877c90b77c1e9, []int{7} } func (m *UserSendMsgResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_UserSendMsgResp.Unmarshal(m, b) @@ -580,7 +580,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_a9634e8f434358ba, []int{8} + return fileDescriptor_ws_ca4877c90b77c1e9, []int{8} } func (m *MsgData) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MsgData.Unmarshal(m, b) @@ -741,7 +741,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_a9634e8f434358ba, []int{9} + return fileDescriptor_ws_ca4877c90b77c1e9, []int{9} } func (m *OfflinePushInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_OfflinePushInfo.Unmarshal(m, b) @@ -815,7 +815,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_a9634e8f434358ba, []int{10} + return fileDescriptor_ws_ca4877c90b77c1e9, []int{10} } func (m *GroupInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupInfo.Unmarshal(m, b) @@ -909,7 +909,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_a9634e8f434358ba, []int{11} + return fileDescriptor_ws_ca4877c90b77c1e9, []int{11} } func (m *GroupMemberFullInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupMemberFullInfo.Unmarshal(m, b) @@ -996,7 +996,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_a9634e8f434358ba, []int{12} + return fileDescriptor_ws_ca4877c90b77c1e9, []int{12} } func (m *UserInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_UserInfo.Unmarshal(m, b) @@ -1080,7 +1080,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_a9634e8f434358ba, []int{13} + return fileDescriptor_ws_ca4877c90b77c1e9, []int{13} } func (m *PublicUserInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_PublicUserInfo.Unmarshal(m, b) @@ -1140,7 +1140,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_a9634e8f434358ba, []int{14} + return fileDescriptor_ws_ca4877c90b77c1e9, []int{14} } func (m *TipsComm) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_TipsComm.Unmarshal(m, b) @@ -1189,7 +1189,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_a9634e8f434358ba, []int{15} + return fileDescriptor_ws_ca4877c90b77c1e9, []int{15} } func (m *MemberEnterTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MemberEnterTips.Unmarshal(m, b) @@ -1244,7 +1244,7 @@ func (m *MemberLeaveTips) Reset() { *m = MemberLeaveTips{} } func (m *MemberLeaveTips) String() string { return proto.CompactTextString(m) } func (*MemberLeaveTips) ProtoMessage() {} func (*MemberLeaveTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_a9634e8f434358ba, []int{16} + return fileDescriptor_ws_ca4877c90b77c1e9, []int{16} } func (m *MemberLeaveTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MemberLeaveTips.Unmarshal(m, b) @@ -1299,7 +1299,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_a9634e8f434358ba, []int{17} + return fileDescriptor_ws_ca4877c90b77c1e9, []int{17} } func (m *MemberInvitedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MemberInvitedTips.Unmarshal(m, b) @@ -1361,7 +1361,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_a9634e8f434358ba, []int{18} + return fileDescriptor_ws_ca4877c90b77c1e9, []int{18} } func (m *MemberKickedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MemberKickedTips.Unmarshal(m, b) @@ -1424,7 +1424,7 @@ func (m *MemberInfoChangedTips) Reset() { *m = MemberInfoChangedTips{} } func (m *MemberInfoChangedTips) String() string { return proto.CompactTextString(m) } func (*MemberInfoChangedTips) ProtoMessage() {} func (*MemberInfoChangedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_a9634e8f434358ba, []int{19} + return fileDescriptor_ws_ca4877c90b77c1e9, []int{19} } func (m *MemberInfoChangedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MemberInfoChangedTips.Unmarshal(m, b) @@ -1493,7 +1493,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_a9634e8f434358ba, []int{20} + return fileDescriptor_ws_ca4877c90b77c1e9, []int{20} } func (m *GroupCreatedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupCreatedTips.Unmarshal(m, b) @@ -1554,7 +1554,7 @@ func (m *GroupInfoChangedTips) Reset() { *m = GroupInfoChangedTips{} } func (m *GroupInfoChangedTips) String() string { return proto.CompactTextString(m) } func (*GroupInfoChangedTips) ProtoMessage() {} func (*GroupInfoChangedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_a9634e8f434358ba, []int{21} + return fileDescriptor_ws_ca4877c90b77c1e9, []int{21} } func (m *GroupInfoChangedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupInfoChangedTips.Unmarshal(m, b) @@ -1608,7 +1608,7 @@ func (m *ReceiveJoinApplicationTips) Reset() { *m = ReceiveJoinApplicati func (m *ReceiveJoinApplicationTips) String() string { return proto.CompactTextString(m) } func (*ReceiveJoinApplicationTips) ProtoMessage() {} func (*ReceiveJoinApplicationTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_a9634e8f434358ba, []int{22} + return fileDescriptor_ws_ca4877c90b77c1e9, []int{22} } func (m *ReceiveJoinApplicationTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ReceiveJoinApplicationTips.Unmarshal(m, b) @@ -1663,7 +1663,7 @@ func (m *ApplicationProcessedTips) Reset() { *m = ApplicationProcessedTi func (m *ApplicationProcessedTips) String() string { return proto.CompactTextString(m) } func (*ApplicationProcessedTips) ProtoMessage() {} func (*ApplicationProcessedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_a9634e8f434358ba, []int{23} + return fileDescriptor_ws_ca4877c90b77c1e9, []int{23} } func (m *ApplicationProcessedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ApplicationProcessedTips.Unmarshal(m, b) @@ -1726,7 +1726,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_a9634e8f434358ba, []int{24} + return fileDescriptor_ws_ca4877c90b77c1e9, []int{24} } func (m *FriendInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FriendInfo.Unmarshal(m, b) @@ -1787,7 +1787,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_a9634e8f434358ba, []int{25} + return fileDescriptor_ws_ca4877c90b77c1e9, []int{25} } func (m *FriendApplication) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FriendApplication.Unmarshal(m, b) @@ -1843,7 +1843,7 @@ func (m *FriendApplicationAddedTips) Reset() { *m = FriendApplicationAdd func (m *FriendApplicationAddedTips) String() string { return proto.CompactTextString(m) } func (*FriendApplicationAddedTips) ProtoMessage() {} func (*FriendApplicationAddedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_a9634e8f434358ba, []int{26} + return fileDescriptor_ws_ca4877c90b77c1e9, []int{26} } func (m *FriendApplicationAddedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FriendApplicationAddedTips.Unmarshal(m, b) @@ -1906,7 +1906,7 @@ func (m *FriendApplicationProcessedTips) Reset() { *m = FriendApplicatio func (m *FriendApplicationProcessedTips) String() string { return proto.CompactTextString(m) } func (*FriendApplicationProcessedTips) ProtoMessage() {} func (*FriendApplicationProcessedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_a9634e8f434358ba, []int{27} + return fileDescriptor_ws_ca4877c90b77c1e9, []int{27} } func (m *FriendApplicationProcessedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FriendApplicationProcessedTips.Unmarshal(m, b) @@ -1966,7 +1966,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_a9634e8f434358ba, []int{28} + return fileDescriptor_ws_ca4877c90b77c1e9, []int{28} } func (m *FriendAddedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FriendAddedTips.Unmarshal(m, b) @@ -2012,7 +2012,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_a9634e8f434358ba, []int{29} + return fileDescriptor_ws_ca4877c90b77c1e9, []int{29} } func (m *FriendDeletedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FriendDeletedTips.Unmarshal(m, b) @@ -2059,7 +2059,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_a9634e8f434358ba, []int{30} + return fileDescriptor_ws_ca4877c90b77c1e9, []int{30} } func (m *BlackInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_BlackInfo.Unmarshal(m, b) @@ -2112,7 +2112,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_a9634e8f434358ba, []int{31} + return fileDescriptor_ws_ca4877c90b77c1e9, []int{31} } func (m *BlackAddedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_BlackAddedTips.Unmarshal(m, b) @@ -2158,7 +2158,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_a9634e8f434358ba, []int{32} + return fileDescriptor_ws_ca4877c90b77c1e9, []int{32} } func (m *BlackDeletedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_BlackDeletedTips.Unmarshal(m, b) @@ -2205,7 +2205,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_a9634e8f434358ba, []int{33} + return fileDescriptor_ws_ca4877c90b77c1e9, []int{33} } func (m *FriendInfoChangedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FriendInfoChangedTips.Unmarshal(m, b) @@ -2260,7 +2260,7 @@ func (m *SelfInfoUpdatedTips) Reset() { *m = SelfInfoUpdatedTips{} } func (m *SelfInfoUpdatedTips) String() string { return proto.CompactTextString(m) } func (*SelfInfoUpdatedTips) ProtoMessage() {} func (*SelfInfoUpdatedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_a9634e8f434358ba, []int{34} + return fileDescriptor_ws_ca4877c90b77c1e9, []int{34} } func (m *SelfInfoUpdatedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SelfInfoUpdatedTips.Unmarshal(m, b) @@ -2341,124 +2341,124 @@ func init() { proto.RegisterType((*SelfInfoUpdatedTips)(nil), "open_im_sdk.SelfInfoUpdatedTips") } -func init() { proto.RegisterFile("sdk_ws/ws.proto", fileDescriptor_ws_a9634e8f434358ba) } - -var fileDescriptor_ws_a9634e8f434358ba = []byte{ - // 1855 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0x59, 0x5f, 0x6f, 0xdc, 0x5a, - 0x11, 0x97, 0xf7, 0x5f, 0xb2, 0xb3, 0x69, 0x92, 0xba, 0x6d, 0xae, 0x29, 0x57, 0x55, 0xb0, 0x10, - 0x8a, 0xae, 0xae, 0x52, 0x91, 0x08, 0x71, 0xdb, 0x2b, 0xe0, 0x26, 0xd9, 0x24, 0xda, 0xd2, 0x34, - 0x91, 0xb7, 0x15, 0x12, 0x2f, 0x95, 0x6b, 0x9f, 0xdd, 0x98, 0xf5, 0x9f, 0x8d, 0x8f, 0x77, 0xdb, - 0x7e, 0x12, 0x24, 0x24, 0x24, 0x10, 0x0f, 0x08, 0xf1, 0x82, 0x10, 0xe2, 0x43, 0x20, 0xc4, 0x87, - 0x40, 0xf0, 0xc8, 0x0b, 0xaf, 0x08, 0x09, 0xcd, 0x9c, 0x63, 0xfb, 0x9c, 0xf5, 0x92, 0xec, 0xe6, - 0xaa, 0x7d, 0xf3, 0xfc, 0x3c, 0x73, 0xe6, 0xdf, 0x6f, 0xc6, 0x27, 0x1b, 0xd8, 0xe0, 0xfe, 0xe8, - 0xf5, 0x5b, 0xfe, 0xf8, 0x2d, 0xdf, 0x1d, 0xa7, 0x49, 0x96, 0x98, 0x9d, 0x64, 0xcc, 0xe2, 0xd7, - 0x41, 0xf4, 0x9a, 0xfb, 0x23, 0xfb, 0x2f, 0x06, 0x58, 0x17, 0x93, 0x30, 0x3c, 0x63, 0x9c, 0xbb, - 0x43, 0x76, 0xf8, 0xbe, 0xcf, 0xae, 0x9e, 0x07, 0x3c, 0x73, 0x18, 0x1f, 0x9b, 0x5b, 0xd0, 0x3a, - 0x73, 0xdf, 0xf5, 0xd9, 0x95, 0x65, 0x6c, 0x1b, 0x3b, 0x75, 0x47, 0x4a, 0x84, 0x07, 0x31, 0xe2, - 0x35, 0x89, 0x93, 0x64, 0xfe, 0x08, 0xee, 0xf4, 0x83, 0x78, 0x18, 0xb2, 0x57, 0x9c, 0xa5, 0x67, - 0x7c, 0x68, 0xd5, 0xb7, 0xeb, 0x3b, 0x9d, 0xbd, 0x6f, 0xec, 0x2a, 0x1e, 0x77, 0x4f, 0xdd, 0xec, - 0x92, 0xa5, 0x27, 0x49, 0x1a, 0xb9, 0x99, 0xa3, 0xeb, 0x9b, 0x3f, 0x80, 0xb5, 0xd3, 0x34, 0x99, - 0x8c, 0x73, 0xfb, 0xc6, 0x4d, 0xf6, 0x9a, 0xba, 0xbd, 0x0f, 0x9f, 0xcc, 0xcf, 0xe5, 0xca, 0xb4, - 0x60, 0x85, 0x0b, 0xc9, 0x32, 0xb6, 0xeb, 0x3b, 0x75, 0x27, 0x17, 0xed, 0xfb, 0x60, 0x9e, 0xb2, - 0xec, 0xcc, 0x7d, 0x77, 0x10, 0xfb, 0x22, 0x0f, 0x87, 0x5d, 0xd9, 0xc7, 0x70, 0xaf, 0x82, 0x8a, - 0x8a, 0x44, 0x5a, 0x45, 0xa2, 0xa2, 0x22, 0x91, 0x56, 0x11, 0x21, 0xd9, 0xcf, 0x60, 0x4d, 0x8d, - 0xd7, 0x5c, 0x87, 0x5a, 0xaf, 0x4b, 0xb6, 0x6d, 0xa7, 0xd6, 0xeb, 0x9a, 0x9f, 0x41, 0x83, 0x62, - 0xaa, 0x51, 0xa2, 0x5b, 0x5a, 0xa2, 0x67, 0x7c, 0x28, 0xb3, 0x24, 0x1d, 0xfb, 0xbf, 0x35, 0x68, - 0x17, 0x18, 0x7a, 0xec, 0xb3, 0xd8, 0x2f, 0x4e, 0x93, 0x12, 0xe2, 0x0e, 0xf3, 0xa6, 0xbd, 0x2e, - 0x45, 0xd2, 0x76, 0xa4, 0x84, 0x05, 0x40, 0xe3, 0x34, 0x89, 0xac, 0xfa, 0xb6, 0xb1, 0xd3, 0x74, - 0x72, 0xd1, 0xdc, 0x86, 0xce, 0x51, 0x12, 0x67, 0x2c, 0xce, 0x5e, 0xbe, 0x1f, 0x33, 0xab, 0x41, - 0x6f, 0x55, 0x08, 0x35, 0xfa, 0x2c, 0x9d, 0x52, 0x91, 0x7b, 0x5d, 0xab, 0x49, 0x07, 0xab, 0x10, - 0x9e, 0x2e, 0x0d, 0xac, 0x16, 0xbd, 0xcd, 0x45, 0x73, 0x13, 0xea, 0x58, 0x96, 0x15, 0x2a, 0x0b, - 0x3e, 0x9a, 0x0f, 0x61, 0x15, 0x63, 0x7d, 0x19, 0x44, 0xcc, 0x5a, 0x25, 0xb8, 0x90, 0xcd, 0xcf, - 0x60, 0x13, 0x9f, 0x59, 0x7a, 0x11, 0xba, 0xd9, 0x20, 0x49, 0xa3, 0x5e, 0xd7, 0x6a, 0x53, 0x40, - 0x15, 0xdc, 0xfc, 0x0e, 0xac, 0x0b, 0xec, 0x45, 0xe0, 0x8d, 0x5e, 0xb8, 0x11, 0xb3, 0x80, 0x5c, - 0xcf, 0xa0, 0xe6, 0xb7, 0xe1, 0x8e, 0x40, 0x4e, 0x5c, 0x8f, 0xbd, 0x72, 0x9e, 0x5b, 0x1d, 0x52, - 0xd3, 0x41, 0xaa, 0x42, 0x18, 0xb0, 0x38, 0x13, 0x39, 0xae, 0x89, 0x1c, 0x15, 0xc8, 0xfe, 0x5b, - 0x1d, 0xd6, 0x91, 0x69, 0x68, 0x77, 0xc6, 0x87, 0xc8, 0xaa, 0x43, 0x58, 0x39, 0x1f, 0x67, 0x41, - 0x12, 0x73, 0x62, 0x55, 0x67, 0x6f, 0x47, 0xeb, 0xa0, 0xae, 0xbd, 0x2b, 0x55, 0x8f, 0xe3, 0x2c, - 0x7d, 0xef, 0xe4, 0x86, 0x73, 0xd2, 0xa8, 0x2d, 0x96, 0x46, 0x7d, 0x5e, 0x1a, 0x8f, 0x00, 0x94, - 0xd2, 0x89, 0x5e, 0x2a, 0x88, 0x68, 0x25, 0xe7, 0x41, 0x12, 0x53, 0xb3, 0x9b, 0xa2, 0xd9, 0x0a, - 0xa4, 0x12, 0xa5, 0x75, 0x2d, 0x51, 0x56, 0xaa, 0x44, 0x29, 0xc9, 0xb7, 0xaa, 0x91, 0xef, 0x53, - 0x68, 0x9f, 0x24, 0xa9, 0xc7, 0x88, 0xeb, 0xed, 0xed, 0xfa, 0x4e, 0xdb, 0x29, 0x01, 0x95, 0x3c, - 0xa0, 0x93, 0x67, 0xa6, 0x29, 0x9d, 0x4a, 0x53, 0x1e, 0x3e, 0x85, 0x35, 0xb5, 0xac, 0x48, 0xb7, - 0x11, 0x7b, 0x2f, 0x67, 0x02, 0x1f, 0xcd, 0xfb, 0xd0, 0x9c, 0xba, 0xe1, 0x44, 0x94, 0xb5, 0xe9, - 0x08, 0xe1, 0x69, 0xed, 0x0b, 0xc3, 0xbe, 0x82, 0x0d, 0xad, 0x43, 0x7c, 0x3c, 0xcb, 0x74, 0xa3, - 0xca, 0xf4, 0x99, 0x90, 0x6a, 0x95, 0x90, 0x90, 0xdf, 0x3c, 0xe7, 0x77, 0x5d, 0xf0, 0x3b, 0x97, - 0xed, 0x3f, 0x37, 0xa9, 0xba, 0x5d, 0x37, 0x73, 0xb1, 0x58, 0x5c, 0x9b, 0x60, 0x5e, 0x4c, 0x70, - 0xaa, 0x4d, 0x70, 0x5a, 0x4c, 0xf0, 0x10, 0xb7, 0x5d, 0xaf, 0x2b, 0x5b, 0x9f, 0x8b, 0x18, 0x93, - 0xa7, 0xc4, 0xd4, 0x10, 0x31, 0x29, 0x10, 0x6a, 0xf0, 0xea, 0x04, 0x2b, 0x10, 0x4e, 0x1e, 0x9f, - 0x9d, 0x3c, 0xd1, 0xff, 0x0a, 0x8e, 0x94, 0xe5, 0x3a, 0x65, 0x57, 0x04, 0x65, 0x79, 0x85, 0xb2, - 0x5c, 0xa3, 0xac, 0x60, 0x85, 0x0e, 0x8a, 0xd8, 0x4a, 0x4a, 0x8a, 0x71, 0x57, 0x21, 0xcc, 0x3c, - 0x92, 0x94, 0x04, 0x41, 0xc9, 0xa8, 0xa4, 0xa4, 0xa7, 0x50, 0xb2, 0x23, 0x6c, 0x15, 0x08, 0x6d, - 0xa5, 0x48, 0x33, 0xbd, 0xe6, 0xe4, 0x22, 0x92, 0x72, 0x50, 0x90, 0xf2, 0x8e, 0x20, 0x65, 0x01, - 0x20, 0x91, 0x38, 0xbb, 0xb2, 0xd6, 0xc5, 0xde, 0xe2, 0x62, 0x6f, 0x15, 0x7d, 0xdd, 0xd0, 0xfb, - 0x8a, 0x63, 0xe7, 0xa5, 0xcc, 0xcd, 0x18, 0xbd, 0xdd, 0xa4, 0xb7, 0x0a, 0x62, 0x7e, 0x59, 0x2e, - 0x8a, 0xbb, 0xb4, 0x28, 0xbe, 0x35, 0xbb, 0xea, 0x91, 0x12, 0xff, 0x67, 0x43, 0x9c, 0xc0, 0x46, - 0x32, 0x18, 0x84, 0x41, 0xcc, 0x2e, 0x26, 0xfc, 0xb2, 0x17, 0x0f, 0x12, 0xcb, 0xdc, 0x36, 0x76, - 0x3a, 0x7b, 0x9f, 0x6a, 0x87, 0x9c, 0xeb, 0x3a, 0xce, 0xac, 0xd1, 0xb2, 0xb3, 0xb2, 0xaa, 0xce, - 0xca, 0xcf, 0x0d, 0xd8, 0x98, 0x71, 0x80, 0xda, 0x2f, 0x83, 0x2c, 0x64, 0xf2, 0x04, 0x21, 0x98, - 0x26, 0x34, 0xba, 0x8c, 0x7b, 0x92, 0xbc, 0xf4, 0x8c, 0x9e, 0x8e, 0xdf, 0x65, 0x92, 0xb6, 0xf8, - 0x68, 0xda, 0xb0, 0x16, 0x9c, 0xf7, 0xf1, 0xa8, 0x7e, 0x32, 0x89, 0x7d, 0xc9, 0x59, 0x0d, 0x43, - 0xfa, 0x04, 0xe7, 0xfd, 0x43, 0xd7, 0x1f, 0xb2, 0xa3, 0x64, 0x12, 0x67, 0x44, 0xdb, 0x55, 0x47, - 0x07, 0xed, 0x5f, 0xd4, 0xa0, 0x4d, 0xb7, 0x00, 0x8a, 0xc9, 0x82, 0x95, 0x53, 0x39, 0x24, 0x22, - 0xaa, 0x5c, 0xc4, 0x76, 0xd3, 0xa3, 0xb2, 0x62, 0x4b, 0x00, 0xe3, 0x79, 0x91, 0x64, 0xc1, 0x20, - 0xf0, 0x5c, 0xac, 0x90, 0x0c, 0x55, 0xc3, 0x50, 0xa7, 0x17, 0x67, 0x69, 0xe2, 0x4f, 0x3c, 0xd2, - 0x91, 0x31, 0xab, 0x18, 0xfa, 0x27, 0x5e, 0xa7, 0xa1, 0x1c, 0xb2, 0x5c, 0x34, 0xbf, 0x0b, 0xcd, - 0xf3, 0xb7, 0x31, 0x4b, 0x69, 0xaa, 0x3a, 0x7b, 0xdf, 0xd4, 0x7a, 0x77, 0x31, 0x79, 0x13, 0x06, - 0x1e, 0x6e, 0x23, 0x6a, 0x9d, 0xd0, 0x44, 0x56, 0x1d, 0x95, 0xac, 0xc2, 0x19, 0x6b, 0x38, 0x0a, - 0x82, 0xec, 0x3f, 0x63, 0xd1, 0x1b, 0x96, 0x8a, 0xf2, 0xe0, 0x74, 0xdd, 0x71, 0x54, 0xc8, 0xfe, - 0x97, 0x01, 0xf7, 0x28, 0x49, 0x01, 0x9e, 0x4c, 0xc2, 0xf0, 0x86, 0x32, 0x6d, 0x41, 0x8b, 0xc2, - 0x28, 0xb6, 0x8f, 0x90, 0xcc, 0x5d, 0x30, 0x0f, 0xfc, 0x28, 0x88, 0x03, 0x9e, 0xa5, 0x6e, 0x96, - 0xa4, 0xcf, 0xd9, 0x94, 0x85, 0xf2, 0x2a, 0x31, 0xe7, 0x0d, 0x4e, 0xcb, 0xb3, 0x24, 0x88, 0x29, - 0xf2, 0x06, 0x45, 0x5e, 0xc8, 0xf8, 0xae, 0xd8, 0x1c, 0xa2, 0x4a, 0x85, 0xac, 0x16, 0xb0, 0xa5, - 0x17, 0xd0, 0x86, 0xb5, 0x93, 0x34, 0x60, 0xb1, 0xef, 0xb0, 0xc8, 0x4d, 0x47, 0x72, 0xe7, 0x68, - 0x98, 0xfd, 0x27, 0x03, 0x56, 0xf3, 0x2a, 0x2a, 0xa9, 0x18, 0x5a, 0x2a, 0xd2, 0x7d, 0x5c, 0x12, - 0xa1, 0x90, 0x55, 0xf7, 0x75, 0xdd, 0xfd, 0x16, 0xb4, 0x4e, 0x69, 0x6f, 0xc9, 0xaf, 0xaa, 0x94, - 0xe8, 0x32, 0x9c, 0xbc, 0x09, 0xc2, 0x3c, 0x15, 0x29, 0xe1, 0x74, 0x1c, 0x06, 0x69, 0x76, 0x29, - 0xd3, 0x10, 0x02, 0xa2, 0xc7, 0x91, 0x1b, 0x84, 0x32, 0x7a, 0x21, 0xd8, 0x53, 0x58, 0xd7, 0x19, - 0xf0, 0x71, 0x62, 0xb7, 0xbb, 0xb0, 0xfa, 0x32, 0x18, 0xf3, 0xa3, 0x24, 0x8a, 0x50, 0xa7, 0xcb, - 0x32, 0x0c, 0xcd, 0xa0, 0x3d, 0x29, 0x25, 0x24, 0x59, 0x97, 0x0d, 0xdc, 0x49, 0x98, 0xa1, 0x6a, - 0xfe, 0xc1, 0x53, 0x20, 0xfb, 0x77, 0x06, 0x6c, 0x08, 0x7e, 0x1d, 0xc7, 0x19, 0x4b, 0x11, 0x33, - 0x3f, 0x87, 0x26, 0x31, 0x8a, 0x0e, 0x9b, 0xbd, 0xd9, 0x16, 0xe3, 0xea, 0x08, 0x25, 0xf3, 0x10, - 0x3a, 0xb8, 0x92, 0xdc, 0x38, 0xc3, 0x34, 0xc9, 0x47, 0x67, 0x6f, 0xbb, 0x6a, 0xa3, 0xb3, 0xd8, - 0x51, 0x8d, 0x70, 0x5b, 0x9c, 0x8f, 0x59, 0x4a, 0xa3, 0x5a, 0x7c, 0x7b, 0x1b, 0x8e, 0x0e, 0xda, - 0xbf, 0x2d, 0x62, 0x7d, 0xce, 0xdc, 0x29, 0xbb, 0x45, 0xac, 0x5f, 0x01, 0x90, 0x69, 0xba, 0x54, - 0xa8, 0x8a, 0xcd, 0x82, 0x91, 0xfe, 0xd3, 0x80, 0xbb, 0xe2, 0x90, 0x5e, 0x3c, 0x0d, 0x32, 0xe6, - 0xdf, 0x22, 0xd6, 0x2f, 0xa0, 0x75, 0x3e, 0x5e, 0x2a, 0x4e, 0xa9, 0x8f, 0x1d, 0x91, 0x6e, 0xc9, - 0xbc, 0xbe, 0x68, 0x47, 0x14, 0xa3, 0x6a, 0x9e, 0x8d, 0x79, 0x79, 0xfe, 0xdd, 0x80, 0x4d, 0x71, - 0xca, 0x8f, 0x03, 0x6f, 0xf4, 0x91, 0xd3, 0xfc, 0x0a, 0x40, 0x78, 0x5d, 0x2a, 0x4b, 0xc5, 0x66, - 0xc1, 0x24, 0xff, 0x63, 0xc0, 0x83, 0xbc, 0x99, 0x83, 0xe4, 0xe8, 0xd2, 0x8d, 0x87, 0x32, 0x53, - 0xdc, 0xf1, 0x24, 0xd2, 0x05, 0xc6, 0x10, 0x17, 0xf6, 0x12, 0xf9, 0x1a, 0xb9, 0xfd, 0x10, 0xda, - 0x27, 0x41, 0xec, 0x12, 0xb8, 0x70, 0x6a, 0xa5, 0x09, 0xae, 0x9a, 0xb3, 0x89, 0xfc, 0xf6, 0xc8, - 0x0d, 0x9e, 0xcb, 0x65, 0x7f, 0x9a, 0x0b, 0xf4, 0xc7, 0xfe, 0x87, 0x01, 0x9b, 0xf4, 0x24, 0xbe, - 0x5d, 0xb7, 0x69, 0xf1, 0x53, 0x58, 0x21, 0xe3, 0x64, 0xf1, 0x3a, 0xe4, 0x06, 0xd8, 0x64, 0x39, - 0xf2, 0x78, 0xd3, 0x13, 0xbf, 0x49, 0x2c, 0xd0, 0xe4, 0xd2, 0x66, 0xc1, 0x26, 0xff, 0xca, 0x80, - 0xfb, 0x45, 0xe0, 0x6a, 0x8f, 0xf1, 0x6f, 0x06, 0x29, 0x96, 0x4d, 0x56, 0xa1, 0xb2, 0x18, 0xb5, - 0xe5, 0xf8, 0x5e, 0x5f, 0x8e, 0x13, 0xf6, 0x2f, 0x0d, 0x78, 0xe8, 0x30, 0x8f, 0x05, 0x53, 0x86, - 0x5f, 0xe3, 0x83, 0xf1, 0x38, 0x94, 0xb7, 0x9b, 0x5b, 0xf4, 0xe4, 0x09, 0xb4, 0xe5, 0x01, 0x71, - 0x26, 0x03, 0xbf, 0xf6, 0x56, 0x53, 0x6a, 0x8b, 0x3f, 0x14, 0x5d, 0x5e, 0x5c, 0xb4, 0xa4, 0x64, - 0xff, 0xd1, 0x00, 0x4b, 0x09, 0xea, 0x22, 0x4d, 0x3c, 0xc6, 0xf9, 0x47, 0x5e, 0x0a, 0x14, 0x1c, - 0x9f, 0x84, 0x99, 0xbc, 0xde, 0x48, 0x49, 0x09, 0xba, 0xa1, 0x05, 0xfd, 0x07, 0x03, 0x40, 0xdc, - 0x42, 0x68, 0x6e, 0xf6, 0xa1, 0x4d, 0xd7, 0x37, 0xf2, 0x2d, 0x42, 0x7d, 0x50, 0xf9, 0x59, 0x40, - 0x14, 0xa4, 0xd0, 0x13, 0x67, 0xd3, 0xb5, 0xa6, 0xf8, 0xd9, 0x06, 0xa5, 0x99, 0x2b, 0x60, 0xbd, - 0x72, 0x05, 0xfc, 0x5e, 0xee, 0x9a, 0xbc, 0x35, 0xae, 0xf3, 0xa6, 0x28, 0xda, 0x23, 0xb8, 0x2b, - 0x24, 0xa5, 0xd8, 0x78, 0x7f, 0x38, 0xf0, 0xc5, 0xdf, 0x37, 0x06, 0x39, 0xca, 0x45, 0xbc, 0x3b, - 0x1f, 0xf8, 0x7e, 0x3f, 0x99, 0xa4, 0x5e, 0x71, 0x77, 0x2e, 0x00, 0x8c, 0xf1, 0xc0, 0xf7, 0x7f, - 0x92, 0xa4, 0x7e, 0x10, 0x0f, 0x65, 0x43, 0x15, 0xc4, 0xfe, 0xb7, 0x01, 0x0f, 0x2b, 0xde, 0x0e, - 0x7c, 0x5f, 0xb6, 0x75, 0xbf, 0x68, 0x94, 0x71, 0x33, 0x87, 0xca, 0xc5, 0xdd, 0x51, 0x0e, 0x93, - 0x2d, 0x7e, 0xa4, 0x59, 0x56, 0x5c, 0x3a, 0xaa, 0x89, 0xf9, 0x7d, 0x58, 0x3d, 0x1f, 0x6b, 0x8b, - 0xff, 0x5a, 0xc7, 0x85, 0xf2, 0x82, 0xcb, 0xe0, 0xaf, 0x06, 0x3c, 0xaa, 0x44, 0xa0, 0xf3, 0xf9, - 0x56, 0x89, 0xab, 0x61, 0xd7, 0x96, 0x09, 0x9b, 0x7e, 0x56, 0x50, 0x59, 0x2d, 0xa4, 0x05, 0xd3, - 0xb9, 0x84, 0x0d, 0x99, 0x4d, 0xd1, 0xb7, 0xc7, 0xd0, 0x12, 0x90, 0x0c, 0xff, 0x93, 0x39, 0xd5, - 0x17, 0xa1, 0x8b, 0xe7, 0xaa, 0xa7, 0xda, 0x3c, 0x4f, 0x3f, 0xcb, 0xa9, 0xd9, 0x65, 0x21, 0xcb, - 0x3e, 0xac, 0xaf, 0x5f, 0x1b, 0xd0, 0x3e, 0x0c, 0x5d, 0x6f, 0x44, 0x83, 0xfb, 0xa4, 0x3a, 0xb8, - 0xd7, 0xef, 0xb3, 0x72, 0x7c, 0x6f, 0x1a, 0xd3, 0x27, 0xd2, 0x8f, 0x32, 0xa5, 0xd7, 0x1f, 0x5d, - 0x68, 0xdb, 0x3e, 0xac, 0x93, 0x50, 0x16, 0xfe, 0x73, 0x68, 0x12, 0x32, 0x77, 0x0f, 0x16, 0xe9, - 0x38, 0x42, 0x69, 0xc1, 0x4a, 0x0c, 0x60, 0x93, 0xd4, 0xd5, 0xa2, 0x7f, 0x08, 0x3f, 0xbf, 0x31, - 0xe0, 0x41, 0xd9, 0x2e, 0xf5, 0x23, 0xb9, 0x74, 0x8b, 0xf7, 0x67, 0x16, 0xfc, 0x42, 0xe3, 0xb3, - 0xd8, 0xdd, 0xfb, 0xf7, 0x06, 0xdc, 0xeb, 0xb3, 0x70, 0x80, 0xa6, 0xaf, 0xc6, 0x7e, 0x71, 0x67, - 0x79, 0x02, 0x6b, 0x08, 0xe7, 0xa7, 0x5e, 0xbf, 0xdd, 0x35, 0xd5, 0x0f, 0x18, 0xed, 0xe1, 0xd6, - 0x4f, 0xef, 0xef, 0x3e, 0x16, 0xff, 0xe5, 0xf9, 0x52, 0x39, 0xf4, 0x4d, 0x8b, 0xfe, 0xdf, 0xb3, - 0xff, 0xbf, 0x00, 0x00, 0x00, 0xff, 0xff, 0x45, 0x72, 0x9b, 0x6e, 0x02, 0x1a, 0x00, 0x00, +func init() { proto.RegisterFile("sdk_ws/ws.proto", fileDescriptor_ws_ca4877c90b77c1e9) } + +var fileDescriptor_ws_ca4877c90b77c1e9 = []byte{ + // 1841 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0x59, 0xdd, 0x6f, 0xdc, 0x5a, + 0x11, 0x97, 0xf7, 0x2b, 0xd9, 0xd9, 0x34, 0x49, 0xdd, 0x8f, 0x6b, 0xca, 0x55, 0x15, 0x2c, 0x84, + 0xa2, 0xab, 0xab, 0x5c, 0x91, 0x08, 0x71, 0x5b, 0x04, 0xdc, 0x24, 0x9b, 0x44, 0x5b, 0x9a, 0x6e, + 0xe4, 0x6d, 0xc5, 0x63, 0xe5, 0xda, 0x67, 0x37, 0x66, 0xfd, 0xb1, 0xf1, 0xf1, 0x6e, 0xdb, 0xbf, + 0x04, 0x09, 0x09, 0x09, 0xc4, 0x03, 0x42, 0xbc, 0x20, 0x84, 0xf8, 0x23, 0x10, 0xe2, 0x8f, 0x40, + 0xf0, 0xc8, 0x0b, 0xaf, 0x08, 0x09, 0xcd, 0x9c, 0x63, 0xfb, 0x9c, 0xf5, 0x92, 0xec, 0xe6, 0xaa, + 0x7d, 0xf3, 0xfc, 0x3c, 0x73, 0xe6, 0xeb, 0x37, 0xe3, 0x93, 0x0d, 0x6c, 0x71, 0x7f, 0xfc, 0xfa, + 0x2d, 0xff, 0xe2, 0x2d, 0xdf, 0x9b, 0xa4, 0x49, 0x96, 0x98, 0x9d, 0x64, 0xc2, 0xe2, 0xd7, 0x41, + 0xf4, 0x9a, 0xfb, 0x63, 0xfb, 0x2f, 0x06, 0x58, 0x17, 0xd3, 0x30, 0x3c, 0x67, 0x9c, 0xbb, 0x23, + 0x76, 0xf4, 0x7e, 0xc0, 0xae, 0x9e, 0x07, 0x3c, 0x73, 0x18, 0x9f, 0x98, 0x0f, 0xa1, 0x75, 0xee, + 0xbe, 0x1b, 0xb0, 0x2b, 0xcb, 0xd8, 0x31, 0x76, 0xeb, 0x8e, 0x94, 0x08, 0x0f, 0x62, 0xc4, 0x6b, + 0x12, 0x27, 0xc9, 0xfc, 0x31, 0xdc, 0x19, 0x04, 0xf1, 0x28, 0x64, 0xaf, 0x38, 0x4b, 0xcf, 0xf9, + 0xc8, 0xaa, 0xef, 0xd4, 0x77, 0x3b, 0xfb, 0xdf, 0xd8, 0x53, 0x3c, 0xee, 0x9d, 0xb9, 0xd9, 0x25, + 0x4b, 0x4f, 0x93, 0x34, 0x72, 0x33, 0x47, 0xd7, 0x37, 0x7f, 0x08, 0x1b, 0x67, 0x69, 0x32, 0x9d, + 0xe4, 0xf6, 0x8d, 0x9b, 0xec, 0x35, 0x75, 0xfb, 0x00, 0x3e, 0x59, 0x9c, 0xcb, 0x95, 0x69, 0xc1, + 0x1a, 0x17, 0x92, 0x65, 0xec, 0xd4, 0x77, 0xeb, 0x4e, 0x2e, 0xda, 0xf7, 0xc1, 0x3c, 0x63, 0xd9, + 0xb9, 0xfb, 0xee, 0x30, 0xf6, 0x45, 0x1e, 0x0e, 0xbb, 0xb2, 0x4f, 0xe0, 0x5e, 0x05, 0x15, 0x15, + 0x89, 0xb4, 0x8a, 0x44, 0x45, 0x45, 0x22, 0xad, 0x22, 0x42, 0xb2, 0x9f, 0xc1, 0x86, 0x1a, 0xaf, + 0xb9, 0x09, 0xb5, 0x5e, 0x97, 0x6c, 0xdb, 0x4e, 0xad, 0xd7, 0x35, 0x3f, 0x83, 0x06, 0xc5, 0x54, + 0xa3, 0x44, 0x1f, 0x6a, 0x89, 0x9e, 0xf3, 0x91, 0xcc, 0x92, 0x74, 0xec, 0xff, 0xd6, 0xa0, 0x5d, + 0x60, 0xe8, 0x71, 0xc0, 0x62, 0xbf, 0x38, 0x4d, 0x4a, 0x88, 0x3b, 0xcc, 0x9b, 0xf5, 0xba, 0x14, + 0x49, 0xdb, 0x91, 0x12, 0x16, 0x00, 0x8d, 0xd3, 0x24, 0xb2, 0xea, 0x3b, 0xc6, 0x6e, 0xd3, 0xc9, + 0x45, 0x73, 0x07, 0x3a, 0xc7, 0x49, 0x9c, 0xb1, 0x38, 0x7b, 0xf9, 0x7e, 0xc2, 0xac, 0x06, 0xbd, + 0x55, 0x21, 0xd4, 0x18, 0xb0, 0x74, 0x46, 0x45, 0xee, 0x75, 0xad, 0x26, 0x1d, 0xac, 0x42, 0x78, + 0xba, 0x34, 0xb0, 0x5a, 0xf4, 0x36, 0x17, 0xcd, 0x6d, 0xa8, 0x63, 0x59, 0xd6, 0xa8, 0x2c, 0xf8, + 0x68, 0x3e, 0x82, 0x75, 0x8c, 0xf5, 0x65, 0x10, 0x31, 0x6b, 0x9d, 0xe0, 0x42, 0x36, 0x3f, 0x83, + 0x6d, 0x7c, 0x66, 0xe9, 0x45, 0xe8, 0x66, 0xc3, 0x24, 0x8d, 0x7a, 0x5d, 0xab, 0x4d, 0x01, 0x55, + 0x70, 0xf3, 0x3b, 0xb0, 0x29, 0xb0, 0x17, 0x81, 0x37, 0x7e, 0xe1, 0x46, 0xcc, 0x02, 0x72, 0x3d, + 0x87, 0x9a, 0xdf, 0x86, 0x3b, 0x02, 0x39, 0x75, 0x3d, 0xf6, 0xca, 0x79, 0x6e, 0x75, 0x48, 0x4d, + 0x07, 0xa9, 0x0a, 0x61, 0xc0, 0xe2, 0x4c, 0xe4, 0xb8, 0x21, 0x72, 0x54, 0x20, 0xfb, 0x6f, 0x75, + 0xd8, 0x44, 0xa6, 0xa1, 0xdd, 0x39, 0x1f, 0x21, 0xab, 0x8e, 0x60, 0xad, 0x3f, 0xc9, 0x82, 0x24, + 0xe6, 0xc4, 0xaa, 0xce, 0xfe, 0xae, 0xd6, 0x41, 0x5d, 0x7b, 0x4f, 0xaa, 0x9e, 0xc4, 0x59, 0xfa, + 0xde, 0xc9, 0x0d, 0x17, 0xa4, 0x51, 0x5b, 0x2e, 0x8d, 0xfa, 0xa2, 0x34, 0x1e, 0x03, 0x28, 0xa5, + 0x13, 0xbd, 0x54, 0x10, 0xd1, 0x4a, 0xce, 0x83, 0x24, 0xa6, 0x66, 0x37, 0x45, 0xb3, 0x15, 0x48, + 0x25, 0x4a, 0xeb, 0x5a, 0xa2, 0xac, 0x55, 0x89, 0x52, 0x92, 0x6f, 0x5d, 0x23, 0xdf, 0xa7, 0xd0, + 0x3e, 0x4d, 0x52, 0x8f, 0x11, 0xd7, 0xdb, 0x3b, 0xf5, 0xdd, 0xb6, 0x53, 0x02, 0x2a, 0x79, 0x40, + 0x27, 0xcf, 0x5c, 0x53, 0x3a, 0x95, 0xa6, 0x3c, 0x7a, 0x0a, 0x1b, 0x6a, 0x59, 0x91, 0x6e, 0x63, + 0xf6, 0x5e, 0xce, 0x04, 0x3e, 0x9a, 0xf7, 0xa1, 0x39, 0x73, 0xc3, 0xa9, 0x28, 0x6b, 0xd3, 0x11, + 0xc2, 0xd3, 0xda, 0x97, 0x86, 0x7d, 0x05, 0x5b, 0x5a, 0x87, 0xf8, 0x64, 0x9e, 0xe9, 0x46, 0x95, + 0xe9, 0x73, 0x21, 0xd5, 0x2a, 0x21, 0x21, 0xbf, 0x79, 0xce, 0xef, 0xba, 0xe0, 0x77, 0x2e, 0xdb, + 0x7f, 0x6e, 0x52, 0x75, 0xbb, 0x6e, 0xe6, 0x62, 0xb1, 0xb8, 0x36, 0xc1, 0xbc, 0x98, 0xe0, 0x54, + 0x9b, 0xe0, 0xb4, 0x98, 0xe0, 0x11, 0x6e, 0xbb, 0x5e, 0x57, 0xb6, 0x3e, 0x17, 0x31, 0x26, 0x4f, + 0x89, 0xa9, 0x21, 0x62, 0x52, 0x20, 0xd4, 0xe0, 0xd5, 0x09, 0x56, 0x20, 0x9c, 0x3c, 0x3e, 0x3f, + 0x79, 0xa2, 0xff, 0x15, 0x1c, 0x29, 0xcb, 0x75, 0xca, 0xae, 0x09, 0xca, 0xf2, 0x0a, 0x65, 0xb9, + 0x46, 0x59, 0xc1, 0x0a, 0x1d, 0x14, 0xb1, 0x95, 0x94, 0x14, 0xe3, 0xae, 0x42, 0x98, 0x79, 0x24, + 0x29, 0x09, 0x82, 0x92, 0x51, 0x49, 0x49, 0x4f, 0xa1, 0x64, 0x47, 0xd8, 0x2a, 0x10, 0xda, 0x4a, + 0x91, 0x66, 0x7a, 0xc3, 0xc9, 0x45, 0x24, 0xe5, 0xb0, 0x20, 0xe5, 0x1d, 0x41, 0xca, 0x02, 0x40, + 0x22, 0x71, 0x76, 0x65, 0x6d, 0x8a, 0xbd, 0xc5, 0xc5, 0xde, 0x2a, 0xfa, 0xba, 0xa5, 0xf7, 0x15, + 0xc7, 0xce, 0x4b, 0x99, 0x9b, 0x31, 0x7a, 0xbb, 0x4d, 0x6f, 0x15, 0xc4, 0xfc, 0x41, 0xb9, 0x28, + 0xee, 0xd2, 0xa2, 0xf8, 0xd6, 0xfc, 0xaa, 0x47, 0x4a, 0xfc, 0x9f, 0x0d, 0x71, 0x0a, 0x5b, 0xc9, + 0x70, 0x18, 0x06, 0x31, 0xbb, 0x98, 0xf2, 0xcb, 0x5e, 0x3c, 0x4c, 0x2c, 0x73, 0xc7, 0xd8, 0xed, + 0xec, 0x7f, 0xaa, 0x1d, 0xd2, 0xd7, 0x75, 0x9c, 0x79, 0xa3, 0x55, 0x67, 0x65, 0x5d, 0x9d, 0x95, + 0x9f, 0x1b, 0xb0, 0x35, 0xe7, 0x00, 0xb5, 0x5f, 0x06, 0x59, 0xc8, 0xe4, 0x09, 0x42, 0x30, 0x4d, + 0x68, 0x74, 0x19, 0xf7, 0x24, 0x79, 0xe9, 0x19, 0x3d, 0x9d, 0xbc, 0xcb, 0x24, 0x6d, 0xf1, 0xd1, + 0xb4, 0x61, 0x23, 0xe8, 0x0f, 0xf0, 0xa8, 0x41, 0x32, 0x8d, 0x7d, 0xc9, 0x59, 0x0d, 0x43, 0xfa, + 0x04, 0xfd, 0xc1, 0x91, 0xeb, 0x8f, 0xd8, 0x71, 0x32, 0x8d, 0x33, 0xa2, 0xed, 0xba, 0xa3, 0x83, + 0xf6, 0x2f, 0x6a, 0xd0, 0xa6, 0x5b, 0x00, 0xc5, 0x64, 0xc1, 0xda, 0x99, 0x1c, 0x12, 0x11, 0x55, + 0x2e, 0x62, 0xbb, 0xe9, 0x51, 0x59, 0xb1, 0x25, 0x80, 0xf1, 0xbc, 0x48, 0xb2, 0x60, 0x18, 0x78, + 0x2e, 0x56, 0x48, 0x86, 0xaa, 0x61, 0xa8, 0xd3, 0x8b, 0xb3, 0x34, 0xf1, 0xa7, 0x1e, 0xe9, 0xc8, + 0x98, 0x55, 0x0c, 0xfd, 0x13, 0xaf, 0xd3, 0x50, 0x0e, 0x59, 0x2e, 0x9a, 0xdf, 0x85, 0x66, 0xff, + 0x6d, 0xcc, 0x52, 0x9a, 0xaa, 0xce, 0xfe, 0x37, 0xb5, 0xde, 0x5d, 0x4c, 0xdf, 0x84, 0x81, 0x87, + 0xdb, 0x88, 0x5a, 0x27, 0x34, 0x91, 0x55, 0xc7, 0x25, 0xab, 0x70, 0xc6, 0x1a, 0x8e, 0x82, 0x20, + 0xfb, 0xcf, 0x59, 0xf4, 0x86, 0xa5, 0xa2, 0x3c, 0x38, 0x5d, 0x77, 0x1c, 0x15, 0xb2, 0xff, 0x65, + 0xc0, 0x3d, 0x4a, 0x52, 0x80, 0xa7, 0xd3, 0x30, 0xbc, 0xa1, 0x4c, 0x0f, 0xa1, 0x45, 0x61, 0x14, + 0xdb, 0x47, 0x48, 0xe6, 0x1e, 0x98, 0x87, 0x7e, 0x14, 0xc4, 0x01, 0xcf, 0x52, 0x37, 0x4b, 0xd2, + 0xe7, 0x6c, 0xc6, 0x42, 0x79, 0x95, 0x58, 0xf0, 0x06, 0xa7, 0xe5, 0x59, 0x12, 0xc4, 0x14, 0x79, + 0x83, 0x22, 0x2f, 0x64, 0x7c, 0x57, 0x6c, 0x0e, 0x51, 0xa5, 0x42, 0x56, 0x0b, 0xd8, 0xd2, 0x0b, + 0x68, 0xc3, 0xc6, 0x69, 0x1a, 0xb0, 0xd8, 0x77, 0x58, 0xe4, 0xa6, 0x63, 0xb9, 0x73, 0x34, 0xcc, + 0xfe, 0x93, 0x01, 0xeb, 0x79, 0x15, 0x95, 0x54, 0x0c, 0x2d, 0x15, 0xe9, 0x3e, 0x2e, 0x89, 0x50, + 0xc8, 0xaa, 0xfb, 0xba, 0xee, 0xfe, 0x21, 0xb4, 0xce, 0x68, 0x6f, 0xc9, 0xaf, 0xaa, 0x94, 0xe8, + 0x32, 0x9c, 0xbc, 0x09, 0xc2, 0x3c, 0x15, 0x29, 0xe1, 0x74, 0x1c, 0x05, 0x69, 0x76, 0x29, 0xd3, + 0x10, 0x02, 0xa2, 0x27, 0x91, 0x1b, 0x84, 0x32, 0x7a, 0x21, 0xd8, 0x33, 0xd8, 0xd4, 0x19, 0xf0, + 0x71, 0x62, 0xb7, 0xbb, 0xb0, 0xfe, 0x32, 0x98, 0xf0, 0xe3, 0x24, 0x8a, 0x50, 0xa7, 0xcb, 0x32, + 0x0c, 0xcd, 0xa0, 0x3d, 0x29, 0x25, 0x24, 0x59, 0x97, 0x0d, 0xdd, 0x69, 0x98, 0xa1, 0x6a, 0xfe, + 0xc1, 0x53, 0x20, 0xfb, 0x77, 0x06, 0x6c, 0x09, 0x7e, 0x9d, 0xc4, 0x19, 0x4b, 0x11, 0x33, 0x3f, + 0x87, 0x26, 0x31, 0x8a, 0x0e, 0x9b, 0xbf, 0xd9, 0x16, 0xe3, 0xea, 0x08, 0x25, 0xf3, 0x08, 0x3a, + 0xb8, 0x92, 0xdc, 0x38, 0xc3, 0x34, 0xc9, 0x47, 0x67, 0x7f, 0xa7, 0x6a, 0xa3, 0xb3, 0xd8, 0x51, + 0x8d, 0x70, 0x5b, 0xf4, 0x27, 0x2c, 0xa5, 0x51, 0x2d, 0xbe, 0xbd, 0x0d, 0x47, 0x07, 0xed, 0xdf, + 0x16, 0xb1, 0x3e, 0x67, 0xee, 0x8c, 0xdd, 0x22, 0xd6, 0xaf, 0x00, 0xc8, 0x34, 0x5d, 0x29, 0x54, + 0xc5, 0x66, 0xc9, 0x48, 0xff, 0x69, 0xc0, 0x5d, 0x71, 0x48, 0x2f, 0x9e, 0x05, 0x19, 0xf3, 0x6f, + 0x11, 0xeb, 0x97, 0xd0, 0xea, 0x4f, 0x56, 0x8a, 0x53, 0xea, 0x63, 0x47, 0xa4, 0x5b, 0x32, 0xaf, + 0x2f, 0xdb, 0x11, 0xc5, 0xa8, 0x9a, 0x67, 0x63, 0x51, 0x9e, 0x7f, 0x37, 0x60, 0x5b, 0x9c, 0xf2, + 0x93, 0xc0, 0x1b, 0x7f, 0xe4, 0x34, 0xbf, 0x02, 0x10, 0x5e, 0x57, 0xca, 0x52, 0xb1, 0x59, 0x32, + 0xc9, 0xff, 0x18, 0xf0, 0x20, 0x6f, 0xe6, 0x30, 0x39, 0xbe, 0x74, 0xe3, 0x91, 0xcc, 0x14, 0x77, + 0x3c, 0x89, 0x74, 0x81, 0x31, 0xc4, 0x85, 0xbd, 0x44, 0xbe, 0x46, 0x6e, 0x3f, 0x82, 0xf6, 0x69, + 0x10, 0xbb, 0x04, 0x2e, 0x9d, 0x5a, 0x69, 0x82, 0xab, 0xe6, 0x7c, 0x2a, 0xbf, 0x3d, 0x72, 0x83, + 0xe7, 0x72, 0xd9, 0x9f, 0xe6, 0x12, 0xfd, 0xb1, 0xff, 0x61, 0xc0, 0x36, 0x3d, 0x89, 0x6f, 0xd7, + 0x6d, 0x5a, 0xfc, 0x14, 0xd6, 0xc8, 0x38, 0x59, 0xbe, 0x0e, 0xb9, 0x01, 0x36, 0x59, 0x8e, 0x3c, + 0xde, 0xf4, 0xc4, 0x6f, 0x12, 0x4b, 0x34, 0xb9, 0xb4, 0x59, 0xb2, 0xc9, 0xbf, 0x32, 0xe0, 0x7e, + 0x11, 0xb8, 0xda, 0x63, 0xfc, 0x9b, 0x41, 0x8a, 0x65, 0x93, 0x55, 0xa8, 0x2c, 0x46, 0x6d, 0x35, + 0xbe, 0xd7, 0x57, 0xe3, 0x84, 0xfd, 0x4b, 0x03, 0x1e, 0x39, 0xcc, 0x63, 0xc1, 0x8c, 0xe1, 0xd7, + 0xf8, 0x70, 0x32, 0x09, 0xe5, 0xed, 0xe6, 0x16, 0x3d, 0x79, 0x02, 0x6d, 0x79, 0x40, 0x9c, 0xc9, + 0xc0, 0xaf, 0xbd, 0xd5, 0x94, 0xda, 0xe2, 0x0f, 0x45, 0x97, 0x17, 0x17, 0x2d, 0x29, 0xd9, 0x7f, + 0x34, 0xc0, 0x52, 0x82, 0xba, 0x48, 0x13, 0x8f, 0x71, 0xfe, 0x91, 0x97, 0x02, 0x05, 0xc7, 0xa7, + 0x61, 0x26, 0xaf, 0x37, 0x52, 0x52, 0x82, 0x6e, 0x68, 0x41, 0xff, 0xc1, 0x00, 0x10, 0xb7, 0x10, + 0x9a, 0x9b, 0x03, 0x68, 0xd3, 0xf5, 0x8d, 0x7c, 0x8b, 0x50, 0x1f, 0x54, 0x7e, 0x16, 0x10, 0x05, + 0x29, 0xf4, 0xc4, 0xd9, 0x74, 0xad, 0x29, 0x7e, 0xb6, 0x41, 0x69, 0xee, 0x0a, 0x58, 0xaf, 0x5c, + 0x01, 0xbf, 0x97, 0xbb, 0x26, 0x6f, 0x8d, 0xeb, 0xbc, 0x29, 0x8a, 0xf6, 0x18, 0xee, 0x0a, 0x49, + 0x29, 0x36, 0xde, 0x1f, 0x0e, 0x7d, 0xf1, 0xf7, 0x8d, 0x41, 0x8e, 0x72, 0x11, 0xef, 0xce, 0x87, + 0xbe, 0x3f, 0x48, 0xa6, 0xa9, 0x57, 0xdc, 0x9d, 0x0b, 0x00, 0x63, 0x3c, 0xf4, 0xfd, 0x9f, 0x26, + 0xa9, 0x1f, 0xc4, 0x23, 0xd9, 0x50, 0x05, 0xb1, 0xff, 0x6d, 0xc0, 0xa3, 0x8a, 0xb7, 0x43, 0xdf, + 0x97, 0x6d, 0x3d, 0x28, 0x1a, 0x65, 0xdc, 0xcc, 0xa1, 0x72, 0x71, 0x77, 0x94, 0xc3, 0x64, 0x8b, + 0x1f, 0x6b, 0x96, 0x15, 0x97, 0x8e, 0x6a, 0x62, 0x7e, 0x1f, 0xd6, 0xfb, 0x13, 0x6d, 0xf1, 0x5f, + 0xeb, 0xb8, 0x50, 0x5e, 0x72, 0x19, 0xfc, 0xd5, 0x80, 0xc7, 0x95, 0x08, 0x74, 0x3e, 0xdf, 0x2a, + 0x71, 0x35, 0xec, 0xda, 0x2a, 0x61, 0xd3, 0xcf, 0x0a, 0x2a, 0xab, 0x85, 0xb4, 0x64, 0x3a, 0x97, + 0xb0, 0x25, 0xb3, 0x29, 0xfa, 0xf6, 0x05, 0xb4, 0x04, 0x24, 0xc3, 0xff, 0x64, 0x41, 0xf5, 0x45, + 0xe8, 0xe2, 0xb9, 0xea, 0xa9, 0xb6, 0xc8, 0xd3, 0xcf, 0x72, 0x6a, 0x76, 0x59, 0xc8, 0xb2, 0x0f, + 0xeb, 0xeb, 0xd7, 0x06, 0xb4, 0x8f, 0x42, 0xd7, 0x1b, 0xd3, 0xe0, 0x3e, 0xa9, 0x0e, 0xee, 0xf5, + 0xfb, 0xac, 0x1c, 0xdf, 0x9b, 0xc6, 0xf4, 0x89, 0xf4, 0xa3, 0x4c, 0xe9, 0xf5, 0x47, 0x17, 0xda, + 0xb6, 0x0f, 0x9b, 0x24, 0x94, 0x85, 0xff, 0x1c, 0x9a, 0x84, 0x2c, 0xdc, 0x83, 0x45, 0x3a, 0x8e, + 0x50, 0x5a, 0xb2, 0x12, 0x43, 0xd8, 0x26, 0x75, 0xb5, 0xe8, 0x1f, 0xc2, 0xcf, 0x6f, 0x0c, 0x78, + 0x50, 0xb6, 0x4b, 0xfd, 0x48, 0xae, 0xdc, 0xe2, 0x83, 0xb9, 0x05, 0xbf, 0xd4, 0xf8, 0x2c, 0x77, + 0xf7, 0xfe, 0xbd, 0x01, 0xf7, 0x06, 0x2c, 0x1c, 0xa2, 0xe9, 0xab, 0x89, 0x5f, 0xdc, 0x59, 0x9e, + 0xc0, 0x06, 0xc2, 0xf9, 0xa9, 0xd7, 0x6f, 0x77, 0x4d, 0xf5, 0x03, 0x46, 0xfb, 0xa6, 0x45, 0xff, + 0xd7, 0x39, 0xf8, 0x5f, 0x00, 0x00, 0x00, 0xff, 0xff, 0x4b, 0x94, 0x7a, 0xcf, 0xea, 0x19, 0x00, + 0x00, } diff --git a/pkg/proto/sdk_ws/ws.proto b/pkg/proto/sdk_ws/ws.proto index 8d6713f75..c0f93c5ad 100644 --- a/pkg/proto/sdk_ws/ws.proto +++ b/pkg/proto/sdk_ws/ws.proto @@ -1,6 +1,6 @@ syntax = "proto3"; package open_im_sdk;//The package name to which the proto file belongs -option go_package = "./sdk_ws;open_im_sdk";//The generated go pb file is in the current directory, and the package name is open_im_sdk +//option go_package = "./sdk_ws;open_im_sdk";//The generated go pb file is in the current directory, and the package name is open_im_sdk message PullMessageBySeqListResp { @@ -110,6 +110,7 @@ message GroupInfo{ PublicUserInfo Owner = 6; uint64 CreateTime = 7; uint32 MemberCount = 8; + string Ext = 9; } @@ -133,6 +134,7 @@ message UserInfo{ string Mobile = 5; string Birth = 6; string Email = 7; + string Ext = 8; } //No permissions required From 5f09d6a26fc30303b4f047177bd143a7640f9f2d Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Thu, 23 Dec 2021 17:34:32 +0800 Subject: [PATCH 232/814] send msg file modify --- cmd/open_im_api/main.go | 2 +- cmd/rpc/open_im_msg/main.go | 2 +- internal/api/chat/send_msg.go | 16 +- internal/msg_gateway/gate/logic.go | 48 +- internal/msg_gateway/gate/rpc_server.go | 80 +-- internal/msg_gateway/gate/ws_server.go | 155 +++-- internal/msg_transfer/logic/db.go | 12 +- .../msg_transfer/logic/history_msg_handler.go | 109 ++-- .../logic/persistent_msg_handler.go | 32 +- internal/push/logic/push_handler.go | 24 +- internal/push/logic/push_rpc_server.go | 18 +- internal/push/logic/push_to_client.go | 195 +++--- internal/rpc/{chat => msg}/pull_message.go | 34 +- internal/rpc/{chat => msg}/rpcChat.go | 2 +- pkg/common/db/mongoModel.go | 81 +-- .../im_mysql_msg_model/chat_log_model.go | 27 +- pkg/proto/chat/chat.proto | 118 ++-- pkg/proto/sdk_ws/ws.pb.go | 609 ++++++------------ pkg/proto/sdk_ws/ws.proto | 103 +-- pkg/utils/map.go | 6 +- 20 files changed, 683 insertions(+), 990 deletions(-) rename internal/rpc/{chat => msg}/pull_message.go (81%) rename internal/rpc/{chat => msg}/rpcChat.go (99%) diff --git a/cmd/open_im_api/main.go b/cmd/open_im_api/main.go index f27e53277..d199bcdbb 100644 --- a/cmd/open_im_api/main.go +++ b/cmd/open_im_api/main.go @@ -75,7 +75,7 @@ func main() { thirdGroup.POST("/tencent_cloud_storage_credential", apiThird.TencentCloudStorageCredential) } //Message - chatGroup := r.Group("/chat") + chatGroup := r.Group("/msg") { chatGroup.POST("/newest_seq", apiChat.UserGetSeq) chatGroup.POST("/pull_msg", apiChat.UserPullMsg) diff --git a/cmd/rpc/open_im_msg/main.go b/cmd/rpc/open_im_msg/main.go index 0dffe8aaa..7344facf4 100644 --- a/cmd/rpc/open_im_msg/main.go +++ b/cmd/rpc/open_im_msg/main.go @@ -1,7 +1,7 @@ package main import ( - rpcChat "Open_IM/internal/rpc/chat" + rpcChat "Open_IM/internal/rpc/msg" "flag" ) diff --git a/internal/api/chat/send_msg.go b/internal/api/chat/send_msg.go index e48582eb1..310be2ec2 100644 --- a/internal/api/chat/send_msg.go +++ b/internal/api/chat/send_msg.go @@ -34,8 +34,8 @@ type paramsUserSendMsg struct { } } -func newUserSendMsgReq(token string, params *paramsUserSendMsg) *pbChat.UserSendMsgReq { - pbData := pbChat.UserSendMsgReq{ +func newUserSendMsgReq(token string, params *paramsUserSendMsg) *pbChat.SendMsgReq { + pbData := pbChat.SendMsgReq{ ReqIdentifier: params.ReqIdentifier, Token: token, SendID: params.SendID, @@ -70,20 +70,20 @@ func UserSendMsg(c *gin.Context) { log.InfoByKv("api call success to sendMsgReq", params.OperationID, "Parameters", params) pbData := newUserSendMsgReq(token, ¶ms) - log.Info("", "", "api UserSendMsg call start..., [data: %s]", pbData.String()) + log.Info("", "", "api SendMsg call start..., [data: %s]", pbData.String()) etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImOfflineMessageName) client := pbChat.NewChatClient(etcdConn) - log.Info("", "", "api UserSendMsg call, api call rpc...") + log.Info("", "", "api SendMsg call, api call rpc...") - reply, err := client.UserSendMsg(context.Background(), pbData) + reply, err := client.SendMsg(context.Background(), pbData) if err != nil { - log.NewError(params.OperationID, "UserSendMsg rpc failed, ", params, err.Error()) - c.JSON(http.StatusBadRequest, gin.H{"errCode": 401, "errMsg": "UserSendMsg rpc failed, " + err.Error()}) + log.NewError(params.OperationID, "SendMsg rpc failed, ", params, err.Error()) + c.JSON(http.StatusBadRequest, gin.H{"errCode": 401, "errMsg": "SendMsg rpc failed, " + err.Error()}) return } - log.Info("", "", "api UserSendMsg call end..., [data: %s] [reply: %s]", pbData.String(), reply.String()) + log.Info("", "", "api SendMsg call end..., [data: %s] [reply: %s]", pbData.String(), reply.String()) c.JSON(http.StatusOK, gin.H{ "errCode": reply.ErrCode, diff --git a/internal/msg_gateway/gate/logic.go b/internal/msg_gateway/gate/logic.go index 9b449d4b2..9838d0808 100644 --- a/internal/msg_gateway/gate/logic.go +++ b/internal/msg_gateway/gate/logic.go @@ -6,7 +6,7 @@ import ( "Open_IM/pkg/common/log" "Open_IM/pkg/grpc-etcdv3/getcdv3" pbChat "Open_IM/pkg/proto/chat" - open_im_sdk "Open_IM/pkg/proto/sdk_ws" + sdk_ws "Open_IM/pkg/proto/sdk_ws" "Open_IM/pkg/utils" "bytes" "context" @@ -86,7 +86,7 @@ func (ws *WServer) getSeqReq(conn *UserConn, m *Req) { } } func (ws *WServer) getSeqResp(conn *UserConn, m *Req, pb *pbChat.GetMaxAndMinSeqResp) { - var mReplyData open_im_sdk.GetMaxAndMinSeqResp + var mReplyData sdk_ws.GetMaxAndMinSeqResp mReplyData.MaxSeq = pb.GetMaxSeq() mReplyData.MinSeq = pb.GetMinSeq() b, _ := proto.Marshal(&mReplyData) @@ -131,7 +131,7 @@ func (ws *WServer) pullMsgReq(conn *UserConn, m *Req) { } func (ws *WServer) pullMsgResp(conn *UserConn, m *Req, pb *pbChat.PullMessageResp) { log.NewInfo(m.OperationID, "pullMsgResp come here ", pb.String()) - var mReplyData open_im_sdk.PullMessageBySeqListResp + var mReplyData sdk_ws.PullMessageBySeqListResp a, err := json.Marshal(pb.SingleUserMsg) if err != nil { log.NewError(m.OperationID, "GetSingleUserMsg,json marshal,err", err.Error()) @@ -170,10 +170,10 @@ func (ws *WServer) pullMsgBySeqListReq(conn *UserConn, m *Req) { log.NewInfo(m.OperationID, "Ws call success to pullMsgBySeqListReq start", m.SendID, m.ReqIdentifier, m.MsgIncr) nReply := new(pbChat.PullMessageResp) isPass, errCode, errMsg, data := ws.argsValidate(m, constant.WSPullMsgBySeqList) - log.NewInfo(m.OperationID, "Ws call success to pullMsgBySeqListReq middle", m.SendID, m.ReqIdentifier, m.MsgIncr, data.(open_im_sdk.PullMessageBySeqListReq).SeqList) + log.NewInfo(m.OperationID, "Ws call success to pullMsgBySeqListReq middle", m.SendID, m.ReqIdentifier, m.MsgIncr, data.(sdk_ws.PullMessageBySeqListReq).SeqList) if isPass { pbData := pbChat.PullMessageBySeqListReq{} - pbData.SeqList = data.(open_im_sdk.PullMessageBySeqListReq).SeqList + pbData.SeqList = data.(sdk_ws.PullMessageBySeqListReq).SeqList pbData.UserID = m.SendID pbData.OperationID = m.OperationID grpcConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImOfflineMessageName) @@ -196,32 +196,20 @@ func (ws *WServer) pullMsgBySeqListReq(conn *UserConn, m *Req) { } func (ws *WServer) sendMsgReq(conn *UserConn, m *Req, sendTime int64) { log.NewInfo(m.OperationID, "Ws call success to sendMsgReq start", m.MsgIncr, m.ReqIdentifier, m.SendID, sendTime) - nReply := new(pbChat.UserSendMsgResp) + nReply := new(pbChat.SendMsgResp) isPass, errCode, errMsg, pData := ws.argsValidate(m, constant.WSSendMsg) if isPass { - data := pData.(open_im_sdk.UserSendMsgReq) - pbData := pbChat.UserSendMsgReq{ - ReqIdentifier: m.ReqIdentifier, - Token: m.Token, - SendID: m.SendID, - OperationID: m.OperationID, - PlatformID: data.PlatformID, - SessionType: data.SessionType, - MsgFrom: data.MsgFrom, - ContentType: data.ContentType, - RecvID: data.RecvID, - ForceList: data.ForceList, - SenderNickName: data.SenderNickName, - SenderFaceURL: data.SenderFaceURL, - Content: data.Content, - Options: utils.MapIntToJsonString(data.Options), - ClientMsgID: data.ClientMsgID, - SendTime: sendTime, + data := pData.(sdk_ws.MsgData) + data.SendTime = sendTime + pbData := pbChat.SendMsgReq{ + Token: m.Token, + OperationID: m.OperationID, + MsgData: &data, } log.NewInfo(m.OperationID, "Ws call success to sendMsgReq middle", m.ReqIdentifier, m.SendID, m.MsgIncr, data) etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImOfflineMessageName) client := pbChat.NewChatClient(etcdConn) - reply, err := client.UserSendMsg(context.Background(), &pbData) + reply, err := client.SendMsg(context.Background(), &pbData) if err != nil { log.NewError(pbData.OperationID, "UserSendMsg err", err.Error()) nReply.ErrCode = 200 @@ -239,10 +227,10 @@ func (ws *WServer) sendMsgReq(conn *UserConn, m *Req, sendTime int64) { } } -func (ws *WServer) sendMsgResp(conn *UserConn, m *Req, pb *pbChat.UserSendMsgResp, sendTime int64) { +func (ws *WServer) sendMsgResp(conn *UserConn, m *Req, pb *pbChat.SendMsgResp, sendTime int64) { // := make(map[string]interface{}) - var mReplyData open_im_sdk.UserSendMsgResp + var mReplyData sdk_ws.UserSendMsgResp mReplyData.ClientMsgID = pb.GetClientMsgID() mReplyData.ServerMsgID = pb.GetServerMsgID() mReplyData.SendTime = sendTime @@ -263,12 +251,14 @@ func (ws *WServer) sendMsg(conn *UserConn, mReply interface{}) { enc := gob.NewEncoder(&b) err := enc.Encode(mReply) if err != nil { - log.NewError(mReply.(Resp).OperationID, mReply.(Resp).ReqIdentifier, mReply.(Resp).ErrCode, mReply.(Resp).ErrMsg, "Encode Msg error", conn.RemoteAddr().String(), ws.getUserUid(conn), err.Error()) + uid, platform := ws.getUserUid(conn) + log.NewError(mReply.(Resp).OperationID, mReply.(Resp).ReqIdentifier, mReply.(Resp).ErrCode, mReply.(Resp).ErrMsg, "Encode Msg error", conn.RemoteAddr().String(), uid, platform, err.Error()) return } err = ws.writeMsg(conn, websocket.BinaryMessage, b.Bytes()) if err != nil { - log.NewError(mReply.(Resp).OperationID, mReply.(Resp).ReqIdentifier, mReply.(Resp).ErrCode, mReply.(Resp).ErrMsg, "WS WriteMsg error", conn.RemoteAddr().String(), ws.getUserUid(conn), err.Error()) + uid, platform := ws.getUserUid(conn) + log.NewError(mReply.(Resp).OperationID, mReply.(Resp).ReqIdentifier, mReply.(Resp).ErrCode, mReply.(Resp).ErrMsg, "WS WriteMsg error", conn.RemoteAddr().String(), uid, platform, err.Error()) } } func (ws *WServer) sendErrMsg(conn *UserConn, errCode int32, errMsg string, reqIdentifier int32, msgIncr string, operationID string) { diff --git a/internal/msg_gateway/gate/rpc_server.go b/internal/msg_gateway/gate/rpc_server.go index a3ef373d6..4c9c03f34 100644 --- a/internal/msg_gateway/gate/rpc_server.go +++ b/internal/msg_gateway/gate/rpc_server.go @@ -6,7 +6,6 @@ import ( "Open_IM/pkg/common/log" "Open_IM/pkg/grpc-etcdv3/getcdv3" pbRelay "Open_IM/pkg/proto/relay" - open_im_sdk "Open_IM/pkg/proto/sdk_ws" "Open_IM/pkg/utils" "bytes" "context" @@ -55,26 +54,10 @@ func (r *RPCServer) run() { return } } -func (r *RPCServer) MsgToUser(_ context.Context, in *pbRelay.MsgToUserReq) (*pbRelay.MsgToUserResp, error) { +func (r *RPCServer) OnlinePushMsg(_ context.Context, in *pbRelay.OnlinePushMsgReq) (*pbRelay.OnlinePushMsgResp, error) { log.InfoByKv("PushMsgToUser is arriving", in.OperationID, "args", in.String()) var resp []*pbRelay.SingleMsgToUser - var RecvID string - msg := open_im_sdk.MsgData{ - SendID: in.SendID, - RecvID: in.RecvID, - MsgFrom: in.MsgFrom, - ContentType: in.ContentType, - SessionType: in.SessionType, - SenderNickName: in.SenderNickName, - SenderFaceURL: in.SenderFaceURL, - ClientMsgID: in.ClientMsgID, - ServerMsgID: in.ServerMsgID, - Content: in.Content, - Seq: in.RecvSeq, - SendTime: in.SendTime, - SenderPlatformID: in.PlatformID, - } - msgBytes, _ := proto.Marshal(&msg) + msgBytes, _ := proto.Marshal(in.MsgData) mReply := Resp{ ReqIdentifier: constant.WSPushMsg, OperationID: in.OperationID, @@ -86,65 +69,52 @@ func (r *RPCServer) MsgToUser(_ context.Context, in *pbRelay.MsgToUserReq) (*pbR if err != nil { log.NewError(in.OperationID, "data encode err", err.Error()) } - switch in.GetSessionType() { - case constant.SingleChatType: - RecvID = in.GetRecvID() - case constant.GroupChatType: - RecvID = strings.Split(in.GetRecvID(), " ")[0] - } var tag bool - var UIDAndPID []string - userIDList := genUidPlatformArray(RecvID) - for _, v := range userIDList { - UIDAndPID = strings.Split(v, " ") - if conn := ws.getUserConn(v); conn != nil { + recvID := in.MsgData.RecvID + platformList := genPlatformArray() + for _, v := range platformList { + if conn := ws.getUserConn(recvID, v); conn != nil { tag = true - resultCode := sendMsgToUser(conn, replyBytes.Bytes(), in, UIDAndPID[1], UIDAndPID[0]) + resultCode := sendMsgToUser(conn, replyBytes.Bytes(), in, v, recvID) temp := &pbRelay.SingleMsgToUser{ ResultCode: resultCode, - RecvID: UIDAndPID[0], - RecvPlatFormID: constant.PlatformNameToID(UIDAndPID[1]), + RecvID: recvID, + RecvPlatFormID: constant.PlatformNameToID(v), } resp = append(resp, temp) } else { temp := &pbRelay.SingleMsgToUser{ ResultCode: -1, - RecvID: UIDAndPID[0], - RecvPlatFormID: constant.PlatformNameToID(UIDAndPID[1]), + RecvID: recvID, + RecvPlatFormID: constant.PlatformNameToID(v), } resp = append(resp, temp) } } //Single chat sender synchronization message - if in.GetSessionType() == constant.SingleChatType && in.ContentType <= constant.Quote && in.ContentType != constant.Typing && in.ContentType != constant.HasReadReceipt { - userIDList = genUidPlatformArray(in.SendID) - for _, v := range userIDList { - UIDAndPID = strings.Split(v, " ") - if conn := ws.getUserConn(v); conn != nil { - _ = sendMsgToUser(conn, replyBytes.Bytes(), in, UIDAndPID[1], UIDAndPID[0]) - } + if in.MsgData.GetSessionType() == constant.SingleChatType { + for k, v := range ws.getSingleUserAllConn(recvID) { + _ = sendMsgToUser(v, replyBytes.Bytes(), in, k, recvID) } } if !tag { log.NewError(in.OperationID, "push err ,no matched ws conn not in map", in.String()) } - return &pbRelay.MsgToUserResp{ + return &pbRelay.OnlinePushMsgResp{ Resp: resp, }, nil } func (r *RPCServer) GetUsersOnlineStatus(_ context.Context, req *pbRelay.GetUsersOnlineStatusReq) (*pbRelay.GetUsersOnlineStatusResp, error) { log.NewDebug(req.OperationID, "rpc GetUsersOnlineStatus arrived server", req.String()) - var UIDAndPID []string var resp pbRelay.GetUsersOnlineStatusResp - for _, v1 := range req.UserIDList { - userIDList := genUidPlatformArray(v1) + for _, userID := range req.UserIDList { + platformList := genPlatformArray() temp := new(pbRelay.GetUsersOnlineStatusResp_SuccessResult) - temp.UserID = v1 - for _, v2 := range userIDList { - UIDAndPID = strings.Split(v2, " ") - if conn := ws.getUserConn(v2); conn != nil { + temp.UserID = userID + for _, platform := range platformList { + if conn := ws.getUserConn(userID, platform); conn != nil { ps := new(pbRelay.GetUsersOnlineStatusResp_SuccessDetail) - ps.Platform = UIDAndPID[1] + ps.Platform = platform ps.Status = constant.OnlineStatus temp.Status = constant.OnlineStatus temp.DetailPlatformStatus = append(temp.DetailPlatformStatus, ps) @@ -157,11 +127,11 @@ func (r *RPCServer) GetUsersOnlineStatus(_ context.Context, req *pbRelay.GetUser } return &resp, nil } -func sendMsgToUser(conn *UserConn, bMsg []byte, in *pbRelay.MsgToUserReq, RecvPlatForm, RecvID string) (ResultCode int64) { +func sendMsgToUser(conn *UserConn, bMsg []byte, in *pbRelay.OnlinePushMsgReq, RecvPlatForm, RecvID string) (ResultCode int64) { err := ws.writeMsg(conn, websocket.BinaryMessage, bMsg) if err != nil { log.ErrorByKv("PushMsgToUser is failed By Ws", "", "Addr", conn.RemoteAddr().String(), - "error", err, "senderPlatform", constant.PlatformIDToName(in.PlatformID), "recvPlatform", RecvPlatForm, "args", in.String(), "recvID", RecvID) + "error", err, "senderPlatform", constant.PlatformIDToName(in.MsgData.SenderPlatformID), "recvPlatform", RecvPlatForm, "args", in.String(), "recvID", RecvID) ResultCode = -2 return ResultCode } else { @@ -171,9 +141,9 @@ func sendMsgToUser(conn *UserConn, bMsg []byte, in *pbRelay.MsgToUserReq, RecvPl } } -func genUidPlatformArray(uid string) (array []string) { +func genPlatformArray() (array []string) { for i := 1; i <= constant.LinuxPlatformID; i++ { - array = append(array, uid+" "+constant.PlatformIDToName(int32(i))) + array = append(array, constant.PlatformIDToName(int32(i))) } return array } diff --git a/internal/msg_gateway/gate/ws_server.go b/internal/msg_gateway/gate/ws_server.go index fc6151cf1..150a11b64 100644 --- a/internal/msg_gateway/gate/ws_server.go +++ b/internal/msg_gateway/gate/ws_server.go @@ -9,6 +9,7 @@ import ( "Open_IM/pkg/utils" "bytes" "encoding/gob" + "github.com/garyburd/redigo/redis" "net/http" "sync" "time" @@ -24,15 +25,15 @@ type WServer struct { wsAddr string wsMaxConnNum int wsUpGrader *websocket.Upgrader - wsConnToUser map[*UserConn]string - wsUserToConn map[string]*UserConn + wsConnToUser map[*UserConn]map[string]string + wsUserToConn map[string]map[string]*UserConn } func (ws *WServer) onInit(wsPort int) { ws.wsAddr = ":" + utils.IntToString(wsPort) ws.wsMaxConnNum = config.Config.LongConnSvr.WebsocketMaxConnNum - ws.wsConnToUser = make(map[*UserConn]string) - ws.wsUserToConn = make(map[string]*UserConn) + ws.wsConnToUser = make(map[*UserConn]map[string]string) + ws.wsUserToConn = make(map[string]map[string]*UserConn) ws.wsUpGrader = &websocket.Upgrader{ HandshakeTimeout: time.Duration(config.Config.LongConnSvr.WebsocketTimeOut) * time.Second, ReadBufferSize: config.Config.LongConnSvr.WebsocketMaxMsgLen, @@ -74,7 +75,8 @@ func (ws *WServer) readMsg(conn *UserConn) { log.NewInfo("", "this is a pingMessage") } if err != nil { - log.ErrorByKv("WS ReadMsg error", "", "userIP", conn.RemoteAddr().String(), "userUid", ws.getUserUid(conn), "error", err) + uid, platform := ws.getUserUid(conn) + log.ErrorByKv("WS ReadMsg error", "", "userIP", conn.RemoteAddr().String(), "userUid", uid, "platform", platform, "error", err.Error()) ws.delUserConn(conn) return } else { @@ -94,34 +96,43 @@ func (ws *WServer) writeMsg(conn *UserConn, a int, msg []byte) error { func (ws *WServer) MultiTerminalLoginChecker(uid string, platformID int32, newConn *UserConn, token string) { switch config.Config.MultiLoginPolicy { case constant.AllLoginButSameTermKick: - if oldConn, ok := ws.wsUserToConn[genMapKey(uid, platformID)]; ok { - log.NewDebug("", uid, platformID, "kick old conn") - ws.sendKickMsg(oldConn, newConn) - m, err := db.DB.GetTokenMapByUidPid(uid, constant.PlatformIDToName(platformID)) - if err != nil { - log.NewError("", "get token from redis err", err.Error()) - return - } - if m == nil { - log.NewError("", "get token from redis err", "m is nil") - return - } - for k, _ := range m { - if k != token { - m[k] = constant.KickedToken + if oldConnMap, ok := ws.wsUserToConn[uid]; ok { + if oldConn, ok := oldConnMap[constant.PlatformIDToName(platformID)]; ok { + log.NewDebug("", uid, platformID, "kick old conn") + ws.sendKickMsg(oldConn, newConn) + m, err := db.DB.GetTokenMapByUidPid(uid, constant.PlatformIDToName(platformID)) + if err != nil && err != redis.ErrNil { + log.NewError("", "get token from redis err", err.Error()) + return } + if m == nil { + log.NewError("", "get token from redis err", "m is nil") + return + } + for k, _ := range m { + if k != token { + m[k] = constant.KickedToken + } + } + log.NewDebug("get map is ", m) + err = db.DB.SetTokenMapByUidPid(uid, platformID, m) + if err != nil { + log.NewError("", "SetTokenMapByUidPid err", err.Error()) + return + } + err = oldConn.Close() + delete(oldConnMap, constant.PlatformIDToName(platformID)) + ws.wsUserToConn[uid] = oldConnMap + if len(oldConnMap) == 0 { + delete(ws.wsUserToConn, uid) + } + delete(ws.wsConnToUser, oldConn) + if err != nil { + log.NewError("", "conn close err", err.Error()) + } + } - log.NewDebug("get map is ", m) - err = db.DB.SetTokenMapByUidPid(uid, platformID, m) - if err != nil { - log.NewError("", "SetTokenMapByUidPid err", err.Error()) - return - } - err = oldConn.Close() - delete(ws.wsConnToUser, oldConn) - if err != nil { - log.NewError("", "conn close err", err.Error()) - } + } else { log.NewDebug("no other conn", ws.wsUserToConn) } @@ -149,53 +160,97 @@ func (ws *WServer) sendKickMsg(oldConn, newConn *UserConn) { } } func (ws *WServer) addUserConn(uid string, platformID int32, conn *UserConn, token string) { - key := genMapKey(uid, platformID) rwLock.Lock() defer rwLock.Unlock() ws.MultiTerminalLoginChecker(uid, platformID, conn, token) - ws.wsConnToUser[conn] = key - ws.wsUserToConn[key] = conn - log.WarnByKv("WS Add operation", "", "wsUser added", ws.wsUserToConn, "uid", uid, "online_num", len(ws.wsUserToConn)) + if oldConnMap, ok := ws.wsUserToConn[uid]; ok { + oldConnMap[constant.PlatformIDToName(platformID)] = conn + ws.wsUserToConn[uid] = oldConnMap + } else { + i := make(map[string]*UserConn) + i[constant.PlatformIDToName(platformID)] = conn + ws.wsUserToConn[uid] = i + } + if oldStringMap, ok := ws.wsConnToUser[conn]; ok { + oldStringMap[constant.PlatformIDToName(platformID)] = uid + ws.wsConnToUser[conn] = oldStringMap + } else { + i := make(map[string]string) + i[constant.PlatformIDToName(platformID)] = uid + ws.wsConnToUser[conn] = i + } + count := 0 + for _, v := range ws.wsUserToConn { + count = count + len(v) + } + log.WarnByKv("WS Add operation", "", "wsUser added", ws.wsUserToConn, "uid", uid, "online_user_num", len(ws.wsUserToConn), "online_conn_num", count) } func (ws *WServer) delUserConn(conn *UserConn) { rwLock.Lock() defer rwLock.Unlock() - var uidPlatform string - if uid, ok := ws.wsConnToUser[conn]; ok { - uidPlatform = uid - if _, ok = ws.wsUserToConn[uid]; ok { - delete(ws.wsUserToConn, uid) - log.WarnByKv("WS delete operation", "", "wsUser deleted", ws.wsUserToConn, "uid", uid, "online_num", len(ws.wsUserToConn)) + var platform, uid string + if oldStringMap, ok := ws.wsConnToUser[conn]; ok { + for k, v := range oldStringMap { + platform = k + uid = v + } + if oldConnMap, ok := ws.wsUserToConn[uid]; ok { + delete(oldConnMap, platform) + ws.wsUserToConn[uid] = oldConnMap + if len(oldConnMap) == 0 { + delete(ws.wsUserToConn, uid) + } + count := 0 + for _, v := range ws.wsUserToConn { + count = count + len(v) + } + log.WarnByKv("WS delete operation", "", "wsUser deleted", ws.wsUserToConn, "uid", uid, "online_user_num", len(ws.wsUserToConn), "online_conn_num", count) } else { - log.WarnByKv("uid not exist", "", "wsUser deleted", ws.wsUserToConn, "uid", uid, "online_num", len(ws.wsUserToConn)) + log.WarnByKv("WS delete operation", "", "wsUser deleted", ws.wsUserToConn, "uid", uid, "online_user_num", len(ws.wsUserToConn)) } delete(ws.wsConnToUser, conn) + } err := conn.Close() if err != nil { - log.ErrorByKv("close err", "", "uid", uidPlatform) + log.ErrorByKv("close err", "", "uid", uid, "platform", platform) + } } -func (ws *WServer) getUserConn(uid string) *UserConn { +func (ws *WServer) getUserConn(uid string, platform string) *UserConn { rwLock.RLock() defer rwLock.RUnlock() - if conn, ok := ws.wsUserToConn[uid]; ok { - return conn + if connMap, ok := ws.wsUserToConn[uid]; ok { + if conn, flag := connMap[platform]; flag { + return conn + } } return nil } -func (ws *WServer) getUserUid(conn *UserConn) string { +func (ws *WServer) getSingleUserAllConn(uid string) map[string]*UserConn { + rwLock.RLock() + defer rwLock.RUnlock() + if connMap, ok := ws.wsUserToConn[uid]; ok { + return connMap + } + return nil +} +func (ws *WServer) getUserUid(conn *UserConn) (uid, platform string) { rwLock.RLock() defer rwLock.RUnlock() - if uid, ok := ws.wsConnToUser[conn]; ok { - return uid + if stringMap, ok := ws.wsConnToUser[conn]; ok { + for k, v := range stringMap { + platform = k + uid = v + } + return uid, platform } - return "" + return "", "" } func (ws *WServer) headerCheck(w http.ResponseWriter, r *http.Request) bool { status := http.StatusUnauthorized diff --git a/internal/msg_transfer/logic/db.go b/internal/msg_transfer/logic/db.go index 3d6e0e3f6..bd1972386 100644 --- a/internal/msg_transfer/logic/db.go +++ b/internal/msg_transfer/logic/db.go @@ -8,16 +8,18 @@ import ( "Open_IM/pkg/utils" ) -func saveUserChat(uid string, pbMsg *pbMsg.MsgSvrToPushSvrChatMsg) error { +func saveUserChat(uid string, msg *pbMsg.MsgDataToMQ) error { time := utils.GetCurrentTimestampByMill() seq, err := db.DB.IncrUserSeq(uid) if err != nil { - log.NewError(pbMsg.OperationID, "data insert to redis err", err.Error(), pbMsg.String()) + log.NewError(msg.OperationID, "data insert to redis err", err.Error(), msg.String()) return err } - pbMsg.RecvSeq = seq - log.NewInfo(pbMsg.OperationID, "IncrUserSeq cost time", utils.GetCurrentTimestampByMill()-time) - return db.DB.SaveUserChat(uid, pbMsg.SendTime, pbMsg) + msg.MsgData.Seq = seq + pbSaveData := pbMsg.MsgDataToDB{} + pbSaveData.MsgData = msg.MsgData + log.NewInfo(msg.OperationID, "IncrUserSeq cost time", utils.GetCurrentTimestampByMill()-time) + return db.DB.SaveUserChat(uid, pbSaveData.MsgData.SendTime, &pbSaveData) } func getGroupList(groupID string) ([]string, error) { diff --git a/internal/msg_transfer/logic/history_msg_handler.go b/internal/msg_transfer/logic/history_msg_handler.go index 4b25bd9bc..01677cdb0 100644 --- a/internal/msg_transfer/logic/history_msg_handler.go +++ b/internal/msg_transfer/logic/history_msg_handler.go @@ -32,80 +32,60 @@ func (mc *HistoryConsumerHandler) Init() { } func (mc *HistoryConsumerHandler) handleChatWs2Mongo(msg []byte, msgKey string) { - log.InfoByKv("chat come mongo!!!", "", "chat", string(msg)) + log.InfoByKv("msg come mongo!!!", "", "msg", string(msg)) time := utils.GetCurrentTimestampByNano() - pbData := pbMsg.WSToMsgSvrChatMsg{} - err := proto.Unmarshal(msg, &pbData) + msgFromMQ := pbMsg.MsgDataToMQ{} + err := proto.Unmarshal(msg, &msgFromMQ) if err != nil { - log.ErrorByKv("msg_transfer Unmarshal chat err", "", "chat", string(msg), "err", err.Error()) + log.ErrorByKv("msg_transfer Unmarshal msg err", "", "msg", string(msg), "err", err.Error()) return } - pbSaveData := pbMsg.MsgSvrToPushSvrChatMsg{} - pbSaveData.SendID = pbData.SendID - pbSaveData.SenderNickName = pbData.SenderNickName - pbSaveData.SenderFaceURL = pbData.SenderFaceURL - pbSaveData.ClientMsgID = pbData.ClientMsgID - pbSaveData.SendTime = pbData.SendTime - pbSaveData.Content = pbData.Content - pbSaveData.MsgFrom = pbData.MsgFrom - pbSaveData.ContentType = pbData.ContentType - pbSaveData.SessionType = pbData.SessionType - pbSaveData.MsgID = pbData.MsgID - pbSaveData.OperationID = pbData.OperationID - pbSaveData.RecvID = pbData.RecvID - pbSaveData.PlatformID = pbData.PlatformID - options := utils.JsonStringToMap(pbData.Options) + operationID := msgFromMQ.OperationID //Control whether to store offline messages (mongo) - isHistory := utils.GetSwitchFromOptions(options, "history") + isHistory := utils.GetSwitchFromOptions(msgFromMQ.MsgData.Options, constant.IsHistory) //Control whether to store history messages (mysql) - isPersist := utils.GetSwitchFromOptions(options, "persistent") - switch pbData.SessionType { + isPersist := utils.GetSwitchFromOptions(msgFromMQ.MsgData.Options, constant.IsPersistent) + switch msgFromMQ.MsgData.SessionType { case constant.SingleChatType: - log.NewDebug(pbSaveData.OperationID, "msg_transfer chat type = SingleChatType", isHistory, isPersist) + log.NewDebug(msgFromMQ.OperationID, "msg_transfer msg type = SingleChatType", isHistory, isPersist) if isHistory { - if msgKey == pbSaveData.RecvID { - err := saveUserChat(pbData.RecvID, &pbSaveData) + if msgKey == msgFromMQ.MsgData.RecvID { + err := saveUserChat(msgFromMQ.MsgData.RecvID, &msgFromMQ) if err != nil { - log.NewError(pbSaveData.OperationID, "single data insert to mongo err", err.Error(), pbSaveData.String()) + log.NewError(operationID, "single data insert to mongo err", err.Error(), msgFromMQ.String()) return } - } else if msgKey == pbSaveData.SendID { - err := saveUserChat(pbData.SendID, &pbSaveData) + } else if msgKey == msgFromMQ.MsgData.SendID { + err := saveUserChat(msgFromMQ.MsgData.SendID, &msgFromMQ) if err != nil { - log.NewError(pbSaveData.OperationID, "single data insert to mongo err", err.Error(), pbSaveData.String()) + log.NewError(operationID, "single data insert to mongo err", err.Error(), msgFromMQ.String()) return } - } - log.NewDebug(pbSaveData.OperationID, "saveUserChat cost time ", utils.GetCurrentTimestampByNano()-time) + log.NewDebug(operationID, "saveUserChat cost time ", utils.GetCurrentTimestampByNano()-time) } - if msgKey == pbSaveData.RecvID { - pbSaveData.Options = pbData.Options - pbSaveData.OfflineInfo = pbData.OfflineInfo - go sendMessageToPush(&pbSaveData) - log.NewDebug(pbSaveData.OperationID, "sendMessageToPush cost time ", utils.GetCurrentTimestampByNano()-time) + if msgKey == msgFromMQ.MsgData.RecvID { + go sendMessageToPush(&msgFromMQ) + log.NewDebug(msgFromMQ.OperationID, "sendMessageToPush cost time ", utils.GetCurrentTimestampByNano()-time) } case constant.GroupChatType: - log.NewDebug(pbSaveData.OperationID, "msg_transfer chat type = GroupChatType", isHistory, isPersist) + log.NewDebug(msgFromMQ.OperationID, "msg_transfer msg type = GroupChatType", isHistory, isPersist) if isHistory { - uidAndGroupID := strings.Split(pbData.RecvID, " ") - err := saveUserChat(uidAndGroupID[0], &pbSaveData) + err := saveUserChat(msgFromMQ.MsgData.RecvID, &msgFromMQ) if err != nil { - log.NewError(pbSaveData.OperationID, "group data insert to mongo err", pbSaveData.String(), uidAndGroupID[0], err.Error()) + log.NewError(operationID, "group data insert to mongo err", msgFromMQ.String(), msgFromMQ.MsgData.RecvID, err.Error()) return } } - pbSaveData.Options = pbData.Options - pbSaveData.OfflineInfo = pbData.OfflineInfo - go sendMessageToPush(&pbSaveData) + go sendMessageToPush(&msgFromMQ) default: - log.NewError(pbSaveData.OperationID, "SessionType error", pbSaveData.String()) + log.NewError(msgFromMQ.OperationID, "SessionType error", msgFromMQ.String()) return } - log.NewDebug(pbSaveData.OperationID, "msg_transfer handle topic data to database success...", pbSaveData.String()) + log.NewDebug(msgFromMQ.OperationID, "msg_transfer handle topic data to database success...", msgFromMQ.String()) } func (HistoryConsumerHandler) Setup(_ sarama.ConsumerGroupSession) error { return nil } @@ -113,50 +93,35 @@ func (HistoryConsumerHandler) Cleanup(_ sarama.ConsumerGroupSession) error { ret func (mc *HistoryConsumerHandler) ConsumeClaim(sess sarama.ConsumerGroupSession, claim sarama.ConsumerGroupClaim) error { for msg := range claim.Messages() { - log.InfoByKv("kafka get info to mongo", "", "msgTopic", msg.Topic, "msgPartition", msg.Partition, "chat", string(msg.Value)) + log.InfoByKv("kafka get info to mongo", "", "msgTopic", msg.Topic, "msgPartition", msg.Partition, "msg", string(msg.Value)) mc.msgHandle[msg.Topic](msg.Value, string(msg.Key)) sess.MarkMessage(msg, "") } return nil } -func sendMessageToPush(message *pbMsg.MsgSvrToPushSvrChatMsg) { +func sendMessageToPush(message *pbMsg.MsgDataToMQ) { log.InfoByKv("msg_transfer send message to push", message.OperationID, "message", message.String()) - msg := pbPush.PushMsgReq{} - msg.OperationID = message.OperationID - msg.PlatformID = message.PlatformID - msg.Content = message.Content - msg.ContentType = message.ContentType - msg.SessionType = message.SessionType - msg.RecvID = message.RecvID - msg.SendID = message.SendID - msg.SenderNickName = message.SenderNickName - msg.SenderFaceURL = message.SenderFaceURL - msg.ClientMsgID = message.ClientMsgID - msg.MsgFrom = message.MsgFrom - msg.Options = message.Options - msg.RecvSeq = message.RecvSeq - msg.SendTime = message.SendTime - msg.MsgID = message.MsgID - msg.OfflineInfo = message.OfflineInfo + rpcPushMsg := pbPush.PushMsgReq{OperationID: message.OperationID, MsgData: message.MsgData} + mqPushMsg := pbMsg.PushMsgDataToMQ{OperationID: message.OperationID, MsgData: message.MsgData} grpcConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImPushName) if grpcConn == nil { - log.ErrorByKv("rpc dial failed", msg.OperationID, "push data", msg.String()) - pid, offset, err := producer.SendMessage(message) + log.ErrorByKv("rpc dial failed", rpcPushMsg.OperationID, "push data", rpcPushMsg.String()) + pid, offset, err := producer.SendMessage(&mqPushMsg) if err != nil { - log.ErrorByKv("kafka send failed", msg.OperationID, "send data", message.String(), "pid", pid, "offset", offset, "err", err.Error()) + log.ErrorByKv("kafka send failed", mqPushMsg.OperationID, "send data", message.String(), "pid", pid, "offset", offset, "err", err.Error()) } return } msgClient := pbPush.NewPushMsgServiceClient(grpcConn) - _, err := msgClient.PushMsg(context.Background(), &msg) + _, err := msgClient.PushMsg(context.Background(), &rpcPushMsg) if err != nil { - log.ErrorByKv("rpc send failed", msg.OperationID, "push data", msg.String(), "err", err.Error()) - pid, offset, err := producer.SendMessage(message) + log.ErrorByKv("rpc send failed", rpcPushMsg.OperationID, "push data", rpcPushMsg.String(), "err", err.Error()) + pid, offset, err := producer.SendMessage(&mqPushMsg) if err != nil { - log.ErrorByKv("kafka send failed", msg.OperationID, "send data", message.String(), "pid", pid, "offset", offset, "err", err.Error()) + log.ErrorByKv("kafka send failed", mqPushMsg.OperationID, "send data", mqPushMsg.String(), "pid", pid, "offset", offset, "err", err.Error()) } } else { - log.InfoByKv("rpc send success", msg.OperationID, "push data", msg.String()) + log.InfoByKv("rpc send success", rpcPushMsg.OperationID, "push data", rpcPushMsg.String()) } } diff --git a/internal/msg_transfer/logic/persistent_msg_handler.go b/internal/msg_transfer/logic/persistent_msg_handler.go index 2a13bb4a2..c90901212 100644 --- a/internal/msg_transfer/logic/persistent_msg_handler.go +++ b/internal/msg_transfer/logic/persistent_msg_handler.go @@ -16,7 +16,6 @@ import ( "Open_IM/pkg/utils" "github.com/Shopify/sarama" "github.com/golang/protobuf/proto" - "strings" ) type PersistentConsumerHandler struct { @@ -32,30 +31,29 @@ func (pc *PersistentConsumerHandler) Init() { config.Config.Kafka.Ws2mschat.Addr, config.Config.Kafka.ConsumerGroupID.MsgToMySql) } + func (pc *PersistentConsumerHandler) handleChatWs2Mysql(msg []byte, msgKey string) { - log.InfoByKv("chat come here mysql!!!", "", "chat", string(msg)) - pbData := pbMsg.WSToMsgSvrChatMsg{} - err := proto.Unmarshal(msg, &pbData) + log.InfoByKv("msg come here mysql!!!", "", "msg", string(msg)) + msgFromMQ := pbMsg.MsgDataToMQ{} + err := proto.Unmarshal(msg, &msgFromMQ) if err != nil { - log.ErrorByKv("msg_transfer Unmarshal chat err", "", "chat", string(msg), "err", err.Error()) + log.ErrorByKv("msg_transfer Unmarshal msg err", "", "msg", string(msg), "err", err.Error()) return } - options := utils.JsonStringToMap(pbData.Options) //Control whether to store history messages (mysql) - isPersist := utils.GetSwitchFromOptions(options, "persistent") + isPersist := utils.GetSwitchFromOptions(msgFromMQ.MsgData.Options, constant.IsPersistent) //Only process receiver data if isPersist { - if msgKey == pbData.RecvID && pbData.SessionType == constant.SingleChatType { - log.InfoByKv("msg_transfer chat persisting", pbData.OperationID) - if err = im_mysql_msg_model.InsertMessageToChatLog(pbData); err != nil { - log.ErrorByKv("Message insert failed", pbData.OperationID, "err", err.Error(), "chat", pbData.String()) + if msgKey == msgFromMQ.MsgData.RecvID && msgFromMQ.MsgData.SessionType == constant.SingleChatType { + log.InfoByKv("msg_transfer msg persisting", msgFromMQ.OperationID) + if err = im_mysql_msg_model.InsertMessageToChatLog(msgFromMQ); err != nil { + log.ErrorByKv("Message insert failed", msgFromMQ.OperationID, "err", err.Error(), "msg", msgFromMQ.String()) return } - } else if pbData.SessionType == constant.GroupChatType && msgKey == "0" { - pbData.RecvID = strings.Split(pbData.RecvID, " ")[1] - log.InfoByKv("msg_transfer chat persisting", pbData.OperationID) - if err = im_mysql_msg_model.InsertMessageToChatLog(pbData); err != nil { - log.ErrorByKv("Message insert failed", pbData.OperationID, "err", err.Error(), "chat", pbData.String()) + } else if msgFromMQ.MsgData.SessionType == constant.GroupChatType && msgKey == msgFromMQ.MsgData.SendID { + log.InfoByKv("msg_transfer msg persisting", msgFromMQ.OperationID) + if err = im_mysql_msg_model.InsertMessageToChatLog(msgFromMQ); err != nil { + log.ErrorByKv("Message insert failed", msgFromMQ.OperationID, "err", err.Error(), "msg", msgFromMQ.String()) return } } @@ -67,7 +65,7 @@ func (PersistentConsumerHandler) Cleanup(_ sarama.ConsumerGroupSession) error { func (pc *PersistentConsumerHandler) ConsumeClaim(sess sarama.ConsumerGroupSession, claim sarama.ConsumerGroupClaim) error { for msg := range claim.Messages() { - log.InfoByKv("kafka get info to mysql", "", "msgTopic", msg.Topic, "msgPartition", msg.Partition, "chat", string(msg.Value)) + log.InfoByKv("kafka get info to mysql", "", "msgTopic", msg.Topic, "msgPartition", msg.Partition, "msg", string(msg.Value)) pc.msgHandle[msg.Topic](msg.Value, string(msg.Key)) sess.MarkMessage(msg, "") } diff --git a/internal/push/logic/push_handler.go b/internal/push/logic/push_handler.go index 5058ce26d..294c48f15 100644 --- a/internal/push/logic/push_handler.go +++ b/internal/push/logic/push_handler.go @@ -11,8 +11,7 @@ import ( kfk "Open_IM/pkg/common/kafka" "Open_IM/pkg/common/log" pbChat "Open_IM/pkg/proto/chat" - pbRelay "Open_IM/pkg/proto/relay" - "Open_IM/pkg/utils" + pbPush "Open_IM/pkg/proto/push" "github.com/Shopify/sarama" "github.com/golang/protobuf/proto" ) @@ -33,28 +32,13 @@ func (ms *PushConsumerHandler) Init() { } func (ms *PushConsumerHandler) handleMs2PsChat(msg []byte) { log.InfoByKv("msg come from kafka And push!!!", "", "msg", string(msg)) - pbData := pbChat.MsgSvrToPushSvrChatMsg{} - if err := proto.Unmarshal(msg, &pbData); err != nil { + msgFromMQ := pbChat.PushMsgDataToMQ{} + if err := proto.Unmarshal(msg, &msgFromMQ); err != nil { log.ErrorByKv("push Unmarshal msg err", "", "msg", string(msg), "err", err.Error()) return } - sendPbData := pbRelay.MsgToUserReq{} - sendPbData.SendTime = pbData.SendTime - sendPbData.OperationID = pbData.OperationID - sendPbData.ServerMsgID = pbData.MsgID - sendPbData.MsgFrom = pbData.MsgFrom - sendPbData.ContentType = pbData.ContentType - sendPbData.SessionType = pbData.SessionType - sendPbData.RecvID = pbData.RecvID - sendPbData.Content = pbData.Content - sendPbData.SendID = pbData.SendID - sendPbData.SenderNickName = pbData.SenderNickName - sendPbData.SenderFaceURL = pbData.SenderFaceURL - sendPbData.ClientMsgID = pbData.ClientMsgID - sendPbData.PlatformID = pbData.PlatformID - sendPbData.RecvSeq = pbData.RecvSeq //Call push module to send message to the user - MsgToUser(&sendPbData, pbData.OfflineInfo, utils.JsonStringToMap(pbData.Options)) + MsgToUser((*pbPush.PushMsgReq)(&msgFromMQ)) } func (PushConsumerHandler) Setup(_ sarama.ConsumerGroupSession) error { return nil } func (PushConsumerHandler) Cleanup(_ sarama.ConsumerGroupSession) error { return nil } diff --git a/internal/push/logic/push_rpc_server.go b/internal/push/logic/push_rpc_server.go index 570f5c28b..b622ba721 100644 --- a/internal/push/logic/push_rpc_server.go +++ b/internal/push/logic/push_rpc_server.go @@ -5,7 +5,6 @@ import ( "Open_IM/pkg/common/log" "Open_IM/pkg/grpc-etcdv3/getcdv3" "Open_IM/pkg/proto/push" - pbRelay "Open_IM/pkg/proto/relay" "Open_IM/pkg/utils" "context" "google.golang.org/grpc" @@ -49,23 +48,8 @@ func (r *RPCServer) run() { } } func (r *RPCServer) PushMsg(_ context.Context, pbData *pbPush.PushMsgReq) (*pbPush.PushMsgResp, error) { - sendPbData := pbRelay.MsgToUserReq{} - sendPbData.SendTime = pbData.SendTime - sendPbData.OperationID = pbData.OperationID - sendPbData.ServerMsgID = pbData.MsgID - sendPbData.MsgFrom = pbData.MsgFrom - sendPbData.ContentType = pbData.ContentType - sendPbData.SenderNickName = pbData.SenderNickName - sendPbData.SenderFaceURL = pbData.SenderFaceURL - sendPbData.ClientMsgID = pbData.ClientMsgID - sendPbData.SessionType = pbData.SessionType - sendPbData.RecvID = pbData.RecvID - sendPbData.Content = pbData.Content - sendPbData.SendID = pbData.SendID - sendPbData.PlatformID = pbData.PlatformID - sendPbData.RecvSeq = pbData.RecvSeq //Call push module to send message to the user - MsgToUser(&sendPbData, pbData.OfflineInfo, utils.JsonStringToMap(pbData.Options)) + MsgToUser(pbData) return &pbPush.PushMsgResp{ ResultCode: 0, }, nil diff --git a/internal/push/logic/push_to_client.go b/internal/push/logic/push_to_client.go index b7c8c94af..e7cbf20e0 100644 --- a/internal/push/logic/push_to_client.go +++ b/internal/push/logic/push_to_client.go @@ -8,13 +8,11 @@ package logic import ( push "Open_IM/internal/push/jpush" - rpcChat "Open_IM/internal/rpc/chat" "Open_IM/pkg/common/config" "Open_IM/pkg/common/constant" "Open_IM/pkg/common/log" "Open_IM/pkg/grpc-etcdv3/getcdv3" - pbChat "Open_IM/pkg/proto/chat" - pbGroup "Open_IM/pkg/proto/group" + pbPush "Open_IM/pkg/proto/push" pbRelay "Open_IM/pkg/proto/relay" "Open_IM/pkg/utils" "context" @@ -34,122 +32,119 @@ type AtContent struct { IsAtSelf bool `json:"isAtSelf"` } -func MsgToUser(sendPbData *pbRelay.MsgToUserReq, OfflineInfo string, Options map[string]int32) { +func MsgToUser(pushMsg *pbPush.PushMsgReq) { var wsResult []*pbRelay.SingleMsgToUser - isOfflinePush := utils.GetSwitchFromOptions(Options, "offlinePush") - log.InfoByKv("Get chat from msg_transfer And push chat", sendPbData.OperationID, "PushData", sendPbData, Options, isOfflinePush) + isOfflinePush := utils.GetSwitchFromOptions(pushMsg.MsgData.Options, constant.IsOfflinePush) + log.InfoByKv("Get msg from msg_transfer And push msg", pushMsg.OperationID, "PushData", pushMsg.String()) grpcCons := getcdv3.GetConn4Unique(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImOnlineMessageRelayName) //Online push message - log.InfoByKv("test", sendPbData.OperationID, "len grpc", len(grpcCons), "data", sendPbData) + log.InfoByKv("test", pushMsg.OperationID, "len grpc", len(grpcCons), "data", pushMsg.String()) for _, v := range grpcCons { msgClient := pbRelay.NewOnlineMessageRelayServiceClient(v) - reply, err := msgClient.MsgToUser(context.Background(), sendPbData) + reply, err := msgClient.OnlinePushMsg(context.Background(), &pbRelay.OnlinePushMsgReq{OperationID: pushMsg.OperationID, MsgData: pushMsg.MsgData}) if err != nil { - log.InfoByKv("push data to client rpc err", sendPbData.OperationID, "err", err) + log.InfoByKv("push data to client rpc err", pushMsg.OperationID, "err", err) continue } if reply != nil && reply.Resp != nil { wsResult = append(wsResult, reply.Resp...) } } - log.InfoByKv("push_result", sendPbData.OperationID, "result", wsResult, "sendData", sendPbData) - if sendPbData.ContentType != constant.Typing && sendPbData.ContentType != constant.HasReadReceipt { - if isOfflinePush { - for _, v := range wsResult { - if v.ResultCode == 0 { - continue - } - //supported terminal - for _, t := range pushTerminal { - if v.RecvPlatFormID == t { - //Use offline push messaging - var UIDList []string - UIDList = append(UIDList, v.RecvID) - customContent := OpenIMContent{ - SessionType: int(sendPbData.SessionType), - From: sendPbData.SendID, - To: sendPbData.RecvID, - Seq: sendPbData.RecvSeq, - } - bCustomContent, _ := json.Marshal(customContent) - jsonCustomContent := string(bCustomContent) - var content string - switch sendPbData.ContentType { - case constant.Text: - content = constant.ContentType2PushContent[constant.Text] - case constant.Picture: - content = constant.ContentType2PushContent[constant.Picture] - case constant.Voice: - content = constant.ContentType2PushContent[constant.Voice] - case constant.Video: - content = constant.ContentType2PushContent[constant.Video] - case constant.File: - content = constant.ContentType2PushContent[constant.File] - case constant.AtText: - a := AtContent{} - _ = utils.JsonStringToStruct(sendPbData.Content, &a) - if utils.IsContain(v.RecvID, a.AtUserList) { - content = constant.ContentType2PushContent[constant.AtText] + constant.ContentType2PushContent[constant.Common] - } else { - content = constant.ContentType2PushContent[constant.GroupMsg] - } - default: - content = constant.ContentType2PushContent[constant.Common] - } - pushResult, err := push.JGAccountListPush(UIDList, content, jsonCustomContent, constant.PlatformIDToName(t)) - if err != nil { - log.NewError(sendPbData.OperationID, "offline push error", sendPbData.String(), err.Error(), constant.PlatformIDToName(t)) + log.InfoByKv("push_result", pushMsg.OperationID, "result", wsResult, "sendData", pushMsg.MsgData) + if isOfflinePush { + for _, v := range wsResult { + if v.ResultCode == 0 { + continue + } + //supported terminal + for _, t := range pushTerminal { + if v.RecvPlatFormID == t { + //Use offline push messaging + var UIDList []string + UIDList = append(UIDList, v.RecvID) + customContent := OpenIMContent{ + SessionType: int(pushMsg.MsgData.SessionType), + From: pushMsg.MsgData.SendID, + To: pushMsg.MsgData.RecvID, + Seq: pushMsg.MsgData.Seq, + } + bCustomContent, _ := json.Marshal(customContent) + jsonCustomContent := string(bCustomContent) + var content string + switch pushMsg.MsgData.ContentType { + case constant.Text: + content = constant.ContentType2PushContent[constant.Text] + case constant.Picture: + content = constant.ContentType2PushContent[constant.Picture] + case constant.Voice: + content = constant.ContentType2PushContent[constant.Voice] + case constant.Video: + content = constant.ContentType2PushContent[constant.Video] + case constant.File: + content = constant.ContentType2PushContent[constant.File] + case constant.AtText: + a := AtContent{} + _ = utils.JsonStringToStruct(string(pushMsg.MsgData.Content), &a) + if utils.IsContain(v.RecvID, a.AtUserList) { + content = constant.ContentType2PushContent[constant.AtText] + constant.ContentType2PushContent[constant.Common] } else { - log.NewDebug(sendPbData.OperationID, "offline push return result is ", string(pushResult), sendPbData, constant.PlatformIDToName(t)) + content = constant.ContentType2PushContent[constant.GroupMsg] } - + default: + content = constant.ContentType2PushContent[constant.Common] } + pushResult, err := push.JGAccountListPush(UIDList, content, jsonCustomContent, constant.PlatformIDToName(t)) + if err != nil { + log.NewError(pushMsg.OperationID, "offline push error", pushMsg.String(), err.Error(), constant.PlatformIDToName(t)) + } else { + log.NewDebug(pushMsg.OperationID, "offline push return result is ", string(pushResult), pushMsg.MsgData, constant.PlatformIDToName(t)) + } + } } - } - } - -} - -func SendMsgByWS(m *pbChat.WSToMsgSvrChatMsg) { - m.MsgID = rpcChat.GetMsgID(m.SendID) - m.ClientMsgID = m.MsgID - switch m.SessionType { - case constant.SingleChatType: - sendMsgToKafka(m, m.SendID, "msgKey--sendID") - sendMsgToKafka(m, m.RecvID, "msgKey--recvID") - case constant.GroupChatType: - etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImGroupName) - client := pbGroup.NewGroupClient(etcdConn) - req := &pbGroup.GetGroupAllMemberReq{ - GroupID: m.RecvID, - Token: config.Config.Secret, - OperationID: m.OperationID, - } - reply, err := client.GetGroupAllMember(context.Background(), req) - if err != nil { - log.Error(m.Token, m.OperationID, "rpc getGroupInfo failed, err = %s", err.Error()) - return - } - if reply.ErrorCode != 0 { - log.Error(m.Token, m.OperationID, "rpc getGroupInfo failed, err = %s", reply.ErrorMsg) - return - } - groupID := m.RecvID - for i, v := range reply.MemberList { - m.RecvID = v.UserId + " " + groupID - sendMsgToKafka(m, utils.IntToString(i), "msgKey--recvID+\" \"+groupID") - } - default: } } -func sendMsgToKafka(m *pbChat.WSToMsgSvrChatMsg, key string, flag string) { - pid, offset, err := producer.SendMessage(m, key) - if err != nil { - log.ErrorByKv("kafka send failed", m.OperationID, "send data", m.String(), "pid", pid, "offset", offset, "err", err.Error(), flag, key) - } - -} +//func SendMsgByWS(m *pbChat.WSToMsgSvrChatMsg) { +// m.MsgID = rpcChat.GetMsgID(m.SendID) +// m.ClientMsgID = m.MsgID +// switch m.SessionType { +// case constant.SingleChatType: +// sendMsgToKafka(m, m.SendID, "msgKey--sendID") +// sendMsgToKafka(m, m.RecvID, "msgKey--recvID") +// case constant.GroupChatType: +// etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImGroupName) +// client := pbGroup.NewGroupClient(etcdConn) +// req := &pbGroup.GetGroupAllMemberReq{ +// GroupID: m.RecvID, +// Token: config.Config.Secret, +// OperationID: m.OperationID, +// } +// reply, err := client.GetGroupAllMember(context.Background(), req) +// if err != nil { +// log.Error(m.Token, m.OperationID, "rpc getGroupInfo failed, err = %s", err.Error()) +// return +// } +// if reply.ErrorCode != 0 { +// log.Error(m.Token, m.OperationID, "rpc getGroupInfo failed, err = %s", reply.ErrorMsg) +// return +// } +// groupID := m.RecvID +// for i, v := range reply.MemberList { +// m.RecvID = v.UserId + " " + groupID +// sendMsgToKafka(m, utils.IntToString(i), "msgKey--recvID+\" \"+groupID") +// } +// default: +// +// } +//} +// +//func sendMsgToKafka(m *pbChat.WSToMsgSvrChatMsg, key string, flag string) { +// pid, offset, err := producer.SendMessage(m, key) +// if err != nil { +// log.ErrorByKv("kafka send failed", m.OperationID, "send data", m.String(), "pid", pid, "offset", offset, "err", err.Error(), flag, key) +// } +// +//} diff --git a/internal/rpc/chat/pull_message.go b/internal/rpc/msg/pull_message.go similarity index 81% rename from internal/rpc/chat/pull_message.go rename to internal/rpc/msg/pull_message.go index 725725037..dab729984 100644 --- a/internal/rpc/chat/pull_message.go +++ b/internal/rpc/msg/pull_message.go @@ -1,4 +1,4 @@ -package chat +package msg import ( "context" @@ -6,7 +6,7 @@ import ( commonDB "Open_IM/pkg/common/db" "Open_IM/pkg/common/log" - + "Open_IM/pkg/proto/sdk_ws" "sort" "strings" @@ -44,8 +44,8 @@ func (rpc *rpcChat) GetMaxAndMinSeq(_ context.Context, in *pbMsg.GetMaxAndMinSeq func (rpc *rpcChat) PullMessage(_ context.Context, in *pbMsg.PullMessageReq) (*pbMsg.PullMessageResp, error) { log.InfoByKv("rpc pullMessage is arriving", in.OperationID, "args", in.String()) resp := new(pbMsg.PullMessageResp) - var respSingleMsgFormat []*pbMsg.GatherFormat - var respGroupMsgFormat []*pbMsg.GatherFormat + var respSingleMsgFormat []*open_im_sdk.GatherFormat + var respGroupMsgFormat []*open_im_sdk.GatherFormat SingleMsgFormat, GroupMsgFormat, MaxSeq, MinSeq, err := commonDB.DB.GetMsgBySeqRange(in.UserID, in.SeqBegin, in.SeqEnd) if err != nil { log.ErrorByKv("pullMsg data error", in.OperationID, in.String()) @@ -60,15 +60,15 @@ func (rpc *rpcChat) PullMessage(_ context.Context, in *pbMsg.PullMessageReq) (*p ErrMsg: "", MaxSeq: MaxSeq, MinSeq: MinSeq, - SingleUserMsg: respSingleMsgFormat, + SingleUserMsg: []*pbMsg.GatherFormat(respSingleMsgFormat), GroupUserMsg: respGroupMsgFormat, }, nil } -func (rpc *rpcChat) PullMessageBySeqList(_ context.Context, in *pbMsg.PullMessageBySeqListReq) (*pbMsg.PullMessageResp, error) { +func (rpc *rpcChat) PullMessageBySeqList(_ context.Context, in *open_im_sdk.PullMessageBySeqListReq) (*open_im_sdk.PullMessageBySeqListResp, error) { log.NewInfo(in.OperationID, "rpc PullMessageBySeqList is arriving", in.String()) - resp := new(pbMsg.PullMessageResp) - var respSingleMsgFormat []*pbMsg.GatherFormat - var respGroupMsgFormat []*pbMsg.GatherFormat + resp := new(open_im_sdk.PullMessageBySeqListResp) + var respSingleMsgFormat []*open_im_sdk.GatherFormat + var respGroupMsgFormat []*open_im_sdk.GatherFormat SingleMsgFormat, GroupMsgFormat, MaxSeq, MinSeq, err := commonDB.DB.GetMsgBySeqList(in.UserID, in.SeqList) if err != nil { log.ErrorByKv("PullMessageBySeqList data error", in.OperationID, in.String()) @@ -78,7 +78,7 @@ func (rpc *rpcChat) PullMessageBySeqList(_ context.Context, in *pbMsg.PullMessag } respSingleMsgFormat = singleMsgHandleByUser(SingleMsgFormat, in.UserID) respGroupMsgFormat = groupMsgHandleByUser(GroupMsgFormat) - return &pbMsg.PullMessageResp{ + return &open_im_sdk.PullMessageBySeqListResp{ ErrCode: 0, ErrMsg: "", MaxSeq: MaxSeq, @@ -87,9 +87,9 @@ func (rpc *rpcChat) PullMessageBySeqList(_ context.Context, in *pbMsg.PullMessag GroupUserMsg: respGroupMsgFormat, }, nil } -func singleMsgHandleByUser(allMsg []*pbMsg.MsgFormat, ownerId string) []*pbMsg.GatherFormat { +func singleMsgHandleByUser(allMsg []*open_im_sdk.MsgData, ownerId string) []*open_im_sdk.GatherFormat { var userid string - var respMsgFormat []*pbMsg.GatherFormat + var respMsgFormat []*open_im_sdk.GatherFormat m := make(map[string]MsgFormats) //Gather messages in the dimension of users for _, v := range allMsg { @@ -107,7 +107,7 @@ func singleMsgHandleByUser(allMsg []*pbMsg.MsgFormat, ownerId string) []*pbMsg.G } //Return in pb format for user, msg := range m { - tempUserMsg := new(pbMsg.GatherFormat) + tempUserMsg := new(open_im_sdk.GatherFormat) tempUserMsg.ID = user tempUserMsg.List = msg sort.Sort(msg) @@ -115,8 +115,8 @@ func singleMsgHandleByUser(allMsg []*pbMsg.MsgFormat, ownerId string) []*pbMsg.G } return respMsgFormat } -func groupMsgHandleByUser(allMsg []*pbMsg.MsgFormat) []*pbMsg.GatherFormat { - var respMsgFormat []*pbMsg.GatherFormat +func groupMsgHandleByUser(allMsg []*open_im_sdk.MsgData) []*open_im_sdk.GatherFormat { + var respMsgFormat []*open_im_sdk.GatherFormat m := make(map[string]MsgFormats) //Gather messages in the dimension of users for _, v := range allMsg { @@ -132,7 +132,7 @@ func groupMsgHandleByUser(allMsg []*pbMsg.MsgFormat) []*pbMsg.GatherFormat { } //Return in pb format for groupID, msg := range m { - tempUserMsg := new(pbMsg.GatherFormat) + tempUserMsg := new(open_im_sdk.GatherFormat) tempUserMsg.ID = groupID tempUserMsg.List = msg sort.Sort(msg) @@ -141,7 +141,7 @@ func groupMsgHandleByUser(allMsg []*pbMsg.MsgFormat) []*pbMsg.GatherFormat { return respMsgFormat } -type MsgFormats []*pbMsg.MsgFormat +type MsgFormats []*open_im_sdk.MsgData // Implement the sort.Interface interface to get the number of elements method func (s MsgFormats) Len() int { diff --git a/internal/rpc/chat/rpcChat.go b/internal/rpc/msg/rpcChat.go similarity index 99% rename from internal/rpc/chat/rpcChat.go rename to internal/rpc/msg/rpcChat.go index e3d2460dd..43113ae51 100644 --- a/internal/rpc/chat/rpcChat.go +++ b/internal/rpc/msg/rpcChat.go @@ -1,4 +1,4 @@ -package chat +package msg import ( "Open_IM/pkg/common/config" diff --git a/pkg/common/db/mongoModel.go b/pkg/common/db/mongoModel.go index 4137616ea..99da02b0b 100644 --- a/pkg/common/db/mongoModel.go +++ b/pkg/common/db/mongoModel.go @@ -5,6 +5,7 @@ import ( "Open_IM/pkg/common/constant" "Open_IM/pkg/common/log" pbMsg "Open_IM/pkg/proto/chat" + "Open_IM/pkg/proto/sdk_ws" "errors" "github.com/garyburd/redigo/redis" "github.com/golang/protobuf/proto" @@ -13,7 +14,7 @@ import ( "time" ) -const cChat = "chat" +const cChat = "msg" const cGroup = "group" const singleGocMsgNum = 5000 @@ -32,7 +33,7 @@ type GroupMember struct { UIDList []string } -func (d *DataBases) GetMsgBySeqRange(uid string, seqBegin, seqEnd int64) (SingleMsg []*pbMsg.MsgFormat, GroupMsg []*pbMsg.MsgFormat, MaxSeq int64, MinSeq int64, err error) { +func (d *DataBases) GetMsgBySeqRange(uid string, seqBegin, seqEnd int64) (SingleMsg []*open_im_sdk.MsgData, GroupMsg []*open_im_sdk.MsgData, MaxSeq int64, MinSeq int64, err error) { var count int64 session := d.mgoSession.Clone() if session == nil { @@ -46,38 +47,25 @@ func (d *DataBases) GetMsgBySeqRange(uid string, seqBegin, seqEnd int64) (Single if err = c.Find(bson.M{"uid": uid}).One(&sChat); err != nil { return nil, nil, MaxSeq, MinSeq, err } - pChat := pbMsg.MsgSvrToPushSvrChatMsg{} for i := 0; i < len(sChat.Msg); i++ { - temp := new(pbMsg.MsgFormat) - if err = proto.Unmarshal(sChat.Msg[i].Msg, &pChat); err != nil { + msg := new(open_im_sdk.MsgData) + if err = proto.Unmarshal(sChat.Msg[i].Msg, msg); err != nil { return nil, nil, MaxSeq, MinSeq, err } - if pChat.RecvSeq >= seqBegin && pChat.RecvSeq <= seqEnd { - temp.SendID = pChat.SendID - temp.RecvID = pChat.RecvID - temp.MsgFrom = pChat.MsgFrom - temp.Seq = pChat.RecvSeq - temp.ServerMsgID = pChat.MsgID - temp.SendTime = pChat.SendTime - temp.Content = pChat.Content - temp.ContentType = pChat.ContentType - temp.SenderPlatformID = pChat.PlatformID - temp.ClientMsgID = pChat.ClientMsgID - temp.SenderFaceURL = pChat.SenderFaceURL - temp.SenderNickName = pChat.SenderNickName - if pChat.RecvSeq > MaxSeq { - MaxSeq = pChat.RecvSeq + if msg.Seq >= seqBegin && msg.Seq <= seqEnd { + if msg.Seq > MaxSeq { + MaxSeq = msg.Seq } if count == 0 { - MinSeq = pChat.RecvSeq + MinSeq = msg.Seq } - if pChat.RecvSeq < MinSeq { - MinSeq = pChat.RecvSeq + if msg.Seq < MinSeq { + MinSeq = msg.Seq } - if pChat.SessionType == constant.SingleChatType { - SingleMsg = append(SingleMsg, temp) + if msg.SessionType == constant.SingleChatType { + SingleMsg = append(SingleMsg, msg) } else { - GroupMsg = append(GroupMsg, temp) + GroupMsg = append(GroupMsg, msg) } count++ if count == (seqEnd - seqBegin + 1) { @@ -116,7 +104,7 @@ func (d *DataBases) GetMinSeqFromMongo(uid string) (MinSeq int64, err error) { } return MinSeq, nil } -func (d *DataBases) GetMsgBySeqList(uid string, seqList []int64) (SingleMsg []*pbMsg.MsgFormat, GroupMsg []*pbMsg.MsgFormat, MaxSeq int64, MinSeq int64, err error) { +func (d *DataBases) GetMsgBySeqList(uid string, seqList []int64) (SingleMsg []*open_im_sdk.MsgData, GroupMsg []*open_im_sdk.MsgData, MaxSeq int64, MinSeq int64, err error) { allCount := 0 singleCount := 0 session := d.mgoSession.Clone() @@ -140,7 +128,6 @@ func (d *DataBases) GetMsgBySeqList(uid string, seqList []int64) (SingleMsg []*p return t }(uid, seqList) sChat := UserChat{} - pChat := pbMsg.MsgSvrToPushSvrChatMsg{} for seqUid, value := range m { if err = c.Find(bson.M{"uid": seqUid}).One(&sChat); err != nil { log.NewError("", "not find seqUid", seqUid, value, uid, seqList) @@ -148,37 +135,25 @@ func (d *DataBases) GetMsgBySeqList(uid string, seqList []int64) (SingleMsg []*p } singleCount = 0 for i := 0; i < len(sChat.Msg); i++ { - temp := new(pbMsg.MsgFormat) - if err = proto.Unmarshal(sChat.Msg[i].Msg, &pChat); err != nil { + msg := new(open_im_sdk.MsgData) + if err = proto.Unmarshal(sChat.Msg[i].Msg, msg); err != nil { log.NewError("", "not find seqUid", seqUid, value, uid, seqList) return nil, nil, MaxSeq, MinSeq, err } - if isContainInt64(pChat.RecvSeq, value) { - temp.SendID = pChat.SendID - temp.RecvID = pChat.RecvID - temp.MsgFrom = pChat.MsgFrom - temp.Seq = pChat.RecvSeq - temp.ServerMsgID = pChat.MsgID - temp.SendTime = pChat.SendTime - temp.Content = pChat.Content - temp.ContentType = pChat.ContentType - temp.SenderPlatformID = pChat.PlatformID - temp.ClientMsgID = pChat.ClientMsgID - temp.SenderFaceURL = pChat.SenderFaceURL - temp.SenderNickName = pChat.SenderNickName - if pChat.RecvSeq > MaxSeq { - MaxSeq = pChat.RecvSeq + if isContainInt64(msg.Seq, value) { + if msg.Seq > MaxSeq { + MaxSeq = msg.Seq } if allCount == 0 { - MinSeq = pChat.RecvSeq + MinSeq = msg.Seq } - if pChat.RecvSeq < MinSeq { - MinSeq = pChat.RecvSeq + if msg.Seq < MinSeq { + MinSeq = msg.Seq } - if pChat.SessionType == constant.SingleChatType { - SingleMsg = append(SingleMsg, temp) + if msg.SessionType == constant.SingleChatType { + SingleMsg = append(SingleMsg, msg) } else { - GroupMsg = append(GroupMsg, temp) + GroupMsg = append(GroupMsg, msg) } allCount++ singleCount++ @@ -190,7 +165,7 @@ func (d *DataBases) GetMsgBySeqList(uid string, seqList []int64) (SingleMsg []*p } return SingleMsg, GroupMsg, MaxSeq, MinSeq, nil } -func (d *DataBases) SaveUserChat(uid string, sendTime int64, m *pbMsg.MsgSvrToPushSvrChatMsg) error { +func (d *DataBases) SaveUserChat(uid string, sendTime int64, m *pbMsg.MsgDataToDB) error { var seqUid string newTime := getCurrentTimestampByMill() session := d.mgoSession.Clone() @@ -200,7 +175,7 @@ func (d *DataBases) SaveUserChat(uid string, sendTime int64, m *pbMsg.MsgSvrToPu defer session.Close() log.NewDebug("", "get mgoSession cost time", getCurrentTimestampByMill()-newTime) c := session.DB(config.Config.Mongo.DBDatabase).C(cChat) - seqUid = getSeqUid(uid, m.RecvSeq) + seqUid = getSeqUid(uid, m.MsgData.Seq) n, err := c.Find(bson.M{"uid": seqUid}).Count() if err != nil { return err diff --git a/pkg/common/db/mysql_model/im_mysql_msg_model/chat_log_model.go b/pkg/common/db/mysql_model/im_mysql_msg_model/chat_log_model.go index 73defd89d..5a80e6bb2 100644 --- a/pkg/common/db/mysql_model/im_mysql_msg_model/chat_log_model.go +++ b/pkg/common/db/mysql_model/im_mysql_msg_model/chat_log_model.go @@ -7,6 +7,7 @@ package im_mysql_msg_model import ( + "Open_IM/pkg/common/constant" "Open_IM/pkg/common/db" pbMsg "Open_IM/pkg/proto/chat" "Open_IM/pkg/utils" @@ -28,21 +29,27 @@ type ChatLog struct { Remark sql.NullString `gorm:"column:remark"` // remark } -func InsertMessageToChatLog(msgData pbMsg.WSToMsgSvrChatMsg) error { +func InsertMessageToChatLog(msg pbMsg.MsgDataToMQ) error { dbConn, err := db.DB.MysqlDB.DefaultGormDB() if err != nil { return err } chatLog := ChatLog{ - MsgId: msgData.MsgID, - SendID: msgData.SendID, - RecvID: msgData.RecvID, - SendTime: utils.UnixNanoSecondToTime(msgData.SendTime), - SessionType: msgData.SessionType, - ContentType: msgData.ContentType, - MsgFrom: msgData.MsgFrom, - Content: msgData.Content, - SenderPlatformID: msgData.PlatformID, + MsgId: msg.MsgData.ServerMsgID, + SendID: msg.MsgData.SendID, + SendTime: utils.UnixNanoSecondToTime(msg.MsgData.SendTime), + SessionType: msg.MsgData.SessionType, + ContentType: msg.MsgData.ContentType, + MsgFrom: msg.MsgData.MsgFrom, + Content: string(msg.MsgData.Content), + SenderPlatformID: msg.MsgData.SenderPlatformID, } + switch msg.MsgData.SessionType { + case constant.GroupChatType: + chatLog.RecvID = msg.MsgData.GroupID + case constant.SingleChatType: + chatLog.RecvID = msg.MsgData.RecvID + } + return dbConn.Table("chat_log").Create(chatLog).Error } diff --git a/pkg/proto/chat/chat.proto b/pkg/proto/chat/chat.proto index aec58df7d..6a969ac20 100644 --- a/pkg/proto/chat/chat.proto +++ b/pkg/proto/chat/chat.proto @@ -12,6 +12,7 @@ message MsgDataToMQ{ message MsgDataToDB { open_im_sdk.MsgData msgData = 1; + string operationID = 2; } message PushMsgDataToMQ{ @@ -19,26 +20,26 @@ message PushMsgDataToMQ{ open_im_sdk.MsgData msgData = 2; } -message PullMessageReq { - string UserID = 1; - int64 SeqBegin = 2; - int64 SeqEnd = 3; - string OperationID = 4; -} - -message PullMessageResp { - int32 ErrCode = 1; - string ErrMsg = 2; - int64 MaxSeq = 3; - int64 MinSeq = 4; - repeated GatherFormat SingleUserMsg = 5; - repeated GatherFormat GroupUserMsg = 6; -} -message PullMessageBySeqListReq{ - string UserID = 1; - string OperationID = 2; - repeated int64 seqList =3; -} +//message PullMessageReq { +// string UserID = 1; +// int64 SeqBegin = 2; +// int64 SeqEnd = 3; +// string OperationID = 4; +//} +// +//message PullMessageResp { +// int32 ErrCode = 1; +// string ErrMsg = 2; +// int64 MaxSeq = 3; +// int64 MinSeq = 4; +// repeated GatherFormat SingleUserMsg = 5; +// repeated GatherFormat GroupUserMsg = 6; +//} +//message PullMessageBySeqListReq{ +// string UserID = 1; +// string OperationID = 2; +// repeated int64 seqList =3; +//} message GetMaxAndMinSeqReq { string UserID = 1; string OperationID = 2; @@ -49,38 +50,38 @@ message GetMaxAndMinSeqResp { int64 MaxSeq = 3; int64 MinSeq = 4; } -message GatherFormat{ - // @inject_tag: json:"id" - string ID = 1; - // @inject_tag: json:"list" - repeated MsgFormat List = 2;//detail msg -} -message MsgFormat{ - // @inject_tag: json:"sendID" - string SendID = 1; - // @inject_tag: json:"recvID" - string RecvID = 2; - // @inject_tag: json:"msgFrom" - int32 MsgFrom = 3; - // @inject_tag: json:"contentType" - int32 ContentType = 4; - // @inject_tag: json:"serverMsgID" - string ServerMsgID = 5; - // @inject_tag: json:"content" - string Content = 6; - // @inject_tag: json:"seq" - int64 Seq = 7; - // @inject_tag: json:"sendTime" - int64 SendTime = 8; - // @inject_tag: json:"senderPlatformID" - int32 SenderPlatformID = 9; - // @inject_tag: json:"senderNickName" - string SenderNickName = 10; - // @inject_tag: json:"senderFaceUrl" - string SenderFaceURL = 11; - // @inject_tag: json:"clientMsgID" - string ClientMsgID = 12; -} +//message GatherFormat{ +// // @inject_tag: json:"id" +// string ID = 1; +// // @inject_tag: json:"list" +// repeated MsgFormat List = 2;//detail msg +//} +//message MsgFormat{ +// // @inject_tag: json:"sendID" +// string SendID = 1; +// // @inject_tag: json:"recvID" +// string RecvID = 2; +// // @inject_tag: json:"msgFrom" +// int32 MsgFrom = 3; +// // @inject_tag: json:"contentType" +// int32 ContentType = 4; +// // @inject_tag: json:"serverMsgID" +// string ServerMsgID = 5; +// // @inject_tag: json:"content" +// string Content = 6; +// // @inject_tag: json:"seq" +// int64 Seq = 7; +// // @inject_tag: json:"sendTime" +// int64 SendTime = 8; +// // @inject_tag: json:"senderPlatformID" +// int32 SenderPlatformID = 9; +// // @inject_tag: json:"senderNickName" +// string SenderNickName = 10; +// // @inject_tag: json:"senderFaceUrl" +// string SenderFaceURL = 11; +// // @inject_tag: json:"clientMsgID" +// string ClientMsgID = 12; +//} message SendMsgReq { @@ -92,17 +93,16 @@ open_im_sdk.MsgData msgData = 3; } message SendMsgResp { - int32 ErrCode = 1; - string ErrMsg = 2; - int32 ReqIdentifier = 3; - string ServerMsgID = 4; - string ClientMsgID = 5; + int32 errCode = 1; + string errMsg = 2; + string serverMsgID = 4; + string clientMsgID = 5; int64 sendTime = 6; } service Chat { rpc GetMaxAndMinSeq(GetMaxAndMinSeqReq) returns(GetMaxAndMinSeqResp); - rpc PullMessage(PullMessageReq) returns(PullMessageResp); - rpc PullMessageBySeqList(PullMessageBySeqListReq) returns(PullMessageResp); + rpc PullMessage(open_im_sdk.PullMessageReq) returns(open_im_sdk.PullMessageResp); + rpc PullMessageBySeqList(open_im_sdk.PullMessageBySeqListReq) returns(open_im_sdk.PullMessageBySeqListResp); rpc SendMsg(SendMsgReq) returns(SendMsgResp); } diff --git a/pkg/proto/sdk_ws/ws.pb.go b/pkg/proto/sdk_ws/ws.pb.go index 1ce815b28..48480cfa1 100644 --- a/pkg/proto/sdk_ws/ws.pb.go +++ b/pkg/proto/sdk_ws/ws.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // source: sdk_ws/ws.proto -package open_im_sdk // import "./sdk_ws" +package open_im_sdk import proto "github.com/golang/protobuf/proto" import fmt "fmt" @@ -19,10 +19,12 @@ var _ = math.Inf const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package type PullMessageBySeqListResp struct { - MaxSeq int64 `protobuf:"varint,1,opt,name=MaxSeq" json:"MaxSeq,omitempty"` - MinSeq int64 `protobuf:"varint,2,opt,name=MinSeq" json:"MinSeq,omitempty"` - SingleUserMsg []*GatherFormat `protobuf:"bytes,3,rep,name=SingleUserMsg" json:"SingleUserMsg,omitempty"` - GroupUserMsg []*GatherFormat `protobuf:"bytes,4,rep,name=GroupUserMsg" json:"GroupUserMsg,omitempty"` + ErrCode int32 `protobuf:"varint,1,opt,name=errCode" json:"errCode,omitempty"` + ErrMsg string `protobuf:"bytes,2,opt,name=errMsg" json:"errMsg,omitempty"` + MaxSeq int64 `protobuf:"varint,3,opt,name=maxSeq" json:"maxSeq,omitempty"` + MinSeq int64 `protobuf:"varint,4,opt,name=minSeq" json:"minSeq,omitempty"` + SingleUserMsg []*GatherFormat `protobuf:"bytes,5,rep,name=singleUserMsg" json:"singleUserMsg,omitempty"` + GroupUserMsg []*GatherFormat `protobuf:"bytes,6,rep,name=groupUserMsg" json:"groupUserMsg,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -32,7 +34,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_a9634e8f434358ba, []int{0} + return fileDescriptor_ws_9a4768ae4ab79d99, []int{0} } func (m *PullMessageBySeqListResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_PullMessageBySeqListResp.Unmarshal(m, b) @@ -52,6 +54,20 @@ func (m *PullMessageBySeqListResp) XXX_DiscardUnknown() { var xxx_messageInfo_PullMessageBySeqListResp proto.InternalMessageInfo +func (m *PullMessageBySeqListResp) GetErrCode() int32 { + if m != nil { + return m.ErrCode + } + return 0 +} + +func (m *PullMessageBySeqListResp) GetErrMsg() string { + if m != nil { + return m.ErrMsg + } + return "" +} + func (m *PullMessageBySeqListResp) GetMaxSeq() int64 { if m != nil { return m.MaxSeq @@ -81,7 +97,9 @@ func (m *PullMessageBySeqListResp) GetGroupUserMsg() []*GatherFormat { } type PullMessageBySeqListReq struct { - SeqList []int64 `protobuf:"varint,1,rep,packed,name=seqList" json:"seqList,omitempty"` + UserID string `protobuf:"bytes,1,opt,name=userID" json:"userID,omitempty"` + OperationID string `protobuf:"bytes,2,opt,name=operationID" json:"operationID,omitempty"` + SeqList []int64 `protobuf:"varint,3,rep,packed,name=seqList" json:"seqList,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -91,7 +109,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_a9634e8f434358ba, []int{1} + return fileDescriptor_ws_9a4768ae4ab79d99, []int{1} } func (m *PullMessageBySeqListReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_PullMessageBySeqListReq.Unmarshal(m, b) @@ -111,6 +129,20 @@ func (m *PullMessageBySeqListReq) XXX_DiscardUnknown() { var xxx_messageInfo_PullMessageBySeqListReq proto.InternalMessageInfo +func (m *PullMessageBySeqListReq) GetUserID() string { + if m != nil { + return m.UserID + } + return "" +} + +func (m *PullMessageBySeqListReq) GetOperationID() string { + if m != nil { + return m.OperationID + } + return "" +} + func (m *PullMessageBySeqListReq) GetSeqList() []int64 { if m != nil { return m.SeqList @@ -128,7 +160,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_a9634e8f434358ba, []int{2} + return fileDescriptor_ws_9a4768ae4ab79d99, []int{2} } func (m *GetMaxAndMinSeqReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetMaxAndMinSeqReq.Unmarshal(m, b) @@ -160,7 +192,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_a9634e8f434358ba, []int{3} + return fileDescriptor_ws_9a4768ae4ab79d99, []int{3} } func (m *GetMaxAndMinSeqResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetMaxAndMinSeqResp.Unmarshal(m, b) @@ -198,17 +230,17 @@ type GatherFormat struct { // @inject_tag: json:"id" ID string `protobuf:"bytes,1,opt,name=ID" json:"id"` // @inject_tag: json:"list" - List []*MsgFormat `protobuf:"bytes,2,rep,name=List" json:"list"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + List []*MsgData `protobuf:"bytes,2,rep,name=List" json:"list"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } func (m *GatherFormat) Reset() { *m = GatherFormat{} } func (m *GatherFormat) String() string { return proto.CompactTextString(m) } func (*GatherFormat) ProtoMessage() {} func (*GatherFormat) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_a9634e8f434358ba, []int{4} + return fileDescriptor_ws_9a4768ae4ab79d99, []int{4} } func (m *GatherFormat) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GatherFormat.Unmarshal(m, b) @@ -235,269 +267,13 @@ func (m *GatherFormat) GetID() string { return "" } -func (m *GatherFormat) GetList() []*MsgFormat { +func (m *GatherFormat) GetList() []*MsgData { if m != nil { return m.List } return nil } -type MsgFormat struct { - // @inject_tag: json:"sendID" - SendID string `protobuf:"bytes,1,opt,name=SendID" json:"sendID"` - // @inject_tag: json:"recvID" - RecvID string `protobuf:"bytes,2,opt,name=RecvID" json:"recvID"` - // @inject_tag: json:"msgFrom" - MsgFrom int32 `protobuf:"varint,3,opt,name=MsgFrom" json:"msgFrom"` - // @inject_tag: json:"contentType" - ContentType int32 `protobuf:"varint,4,opt,name=ContentType" json:"contentType"` - // @inject_tag: json:"serverMsgID" - ServerMsgID string `protobuf:"bytes,5,opt,name=ServerMsgID" json:"serverMsgID"` - // @inject_tag: json:"content" - Content string `protobuf:"bytes,6,opt,name=Content" json:"content"` - // @inject_tag: json:"seq" - Seq int64 `protobuf:"varint,7,opt,name=Seq" json:"seq"` - // @inject_tag: json:"sendTime" - SendTime int64 `protobuf:"varint,8,opt,name=SendTime" json:"sendTime"` - // @inject_tag: json:"senderPlatformID" - SenderPlatformID int32 `protobuf:"varint,9,opt,name=SenderPlatformID" json:"senderPlatformID"` - // @inject_tag: json:"senderNickName" - SenderNickName string `protobuf:"bytes,10,opt,name=SenderNickName" json:"senderNickName"` - // @inject_tag: json:"senderFaceUrl" - SenderFaceURL string `protobuf:"bytes,11,opt,name=SenderFaceURL" json:"senderFaceUrl"` - // @inject_tag: json:"clientMsgID" - ClientMsgID string `protobuf:"bytes,12,opt,name=ClientMsgID" json:"clientMsgID"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *MsgFormat) Reset() { *m = MsgFormat{} } -func (m *MsgFormat) String() string { return proto.CompactTextString(m) } -func (*MsgFormat) ProtoMessage() {} -func (*MsgFormat) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_a9634e8f434358ba, []int{5} -} -func (m *MsgFormat) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_MsgFormat.Unmarshal(m, b) -} -func (m *MsgFormat) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_MsgFormat.Marshal(b, m, deterministic) -} -func (dst *MsgFormat) XXX_Merge(src proto.Message) { - xxx_messageInfo_MsgFormat.Merge(dst, src) -} -func (m *MsgFormat) XXX_Size() int { - return xxx_messageInfo_MsgFormat.Size(m) -} -func (m *MsgFormat) XXX_DiscardUnknown() { - xxx_messageInfo_MsgFormat.DiscardUnknown(m) -} - -var xxx_messageInfo_MsgFormat proto.InternalMessageInfo - -func (m *MsgFormat) GetSendID() string { - if m != nil { - return m.SendID - } - return "" -} - -func (m *MsgFormat) GetRecvID() string { - if m != nil { - return m.RecvID - } - return "" -} - -func (m *MsgFormat) GetMsgFrom() int32 { - if m != nil { - return m.MsgFrom - } - return 0 -} - -func (m *MsgFormat) GetContentType() int32 { - if m != nil { - return m.ContentType - } - return 0 -} - -func (m *MsgFormat) GetServerMsgID() string { - if m != nil { - return m.ServerMsgID - } - return "" -} - -func (m *MsgFormat) GetContent() string { - if m != nil { - return m.Content - } - return "" -} - -func (m *MsgFormat) GetSeq() int64 { - if m != nil { - return m.Seq - } - return 0 -} - -func (m *MsgFormat) GetSendTime() int64 { - if m != nil { - return m.SendTime - } - return 0 -} - -func (m *MsgFormat) GetSenderPlatformID() int32 { - if m != nil { - return m.SenderPlatformID - } - return 0 -} - -func (m *MsgFormat) GetSenderNickName() string { - if m != nil { - return m.SenderNickName - } - return "" -} - -func (m *MsgFormat) GetSenderFaceURL() string { - if m != nil { - return m.SenderFaceURL - } - return "" -} - -func (m *MsgFormat) GetClientMsgID() string { - if m != nil { - return m.ClientMsgID - } - return "" -} - -type UserSendMsgReq struct { - Options map[string]int32 `protobuf:"bytes,1,rep,name=Options" json:"Options,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` - SenderNickName string `protobuf:"bytes,2,opt,name=SenderNickName" json:"SenderNickName,omitempty"` - SenderFaceURL string `protobuf:"bytes,3,opt,name=SenderFaceURL" json:"SenderFaceURL,omitempty"` - PlatformID int32 `protobuf:"varint,4,opt,name=PlatformID" json:"PlatformID,omitempty"` - SessionType int32 `protobuf:"varint,5,opt,name=SessionType" json:"SessionType,omitempty"` - MsgFrom int32 `protobuf:"varint,6,opt,name=MsgFrom" json:"MsgFrom,omitempty"` - ContentType int32 `protobuf:"varint,7,opt,name=ContentType" json:"ContentType,omitempty"` - RecvID string `protobuf:"bytes,8,opt,name=RecvID" json:"RecvID,omitempty"` - ForceList []string `protobuf:"bytes,9,rep,name=ForceList" json:"ForceList,omitempty"` - Content string `protobuf:"bytes,10,opt,name=Content" json:"Content,omitempty"` - ClientMsgID string `protobuf:"bytes,11,opt,name=ClientMsgID" json:"ClientMsgID,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *UserSendMsgReq) Reset() { *m = UserSendMsgReq{} } -func (m *UserSendMsgReq) String() string { return proto.CompactTextString(m) } -func (*UserSendMsgReq) ProtoMessage() {} -func (*UserSendMsgReq) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_a9634e8f434358ba, []int{6} -} -func (m *UserSendMsgReq) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_UserSendMsgReq.Unmarshal(m, b) -} -func (m *UserSendMsgReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_UserSendMsgReq.Marshal(b, m, deterministic) -} -func (dst *UserSendMsgReq) XXX_Merge(src proto.Message) { - xxx_messageInfo_UserSendMsgReq.Merge(dst, src) -} -func (m *UserSendMsgReq) XXX_Size() int { - return xxx_messageInfo_UserSendMsgReq.Size(m) -} -func (m *UserSendMsgReq) XXX_DiscardUnknown() { - xxx_messageInfo_UserSendMsgReq.DiscardUnknown(m) -} - -var xxx_messageInfo_UserSendMsgReq proto.InternalMessageInfo - -func (m *UserSendMsgReq) GetOptions() map[string]int32 { - if m != nil { - return m.Options - } - return nil -} - -func (m *UserSendMsgReq) GetSenderNickName() string { - if m != nil { - return m.SenderNickName - } - return "" -} - -func (m *UserSendMsgReq) GetSenderFaceURL() string { - if m != nil { - return m.SenderFaceURL - } - return "" -} - -func (m *UserSendMsgReq) GetPlatformID() int32 { - if m != nil { - return m.PlatformID - } - return 0 -} - -func (m *UserSendMsgReq) GetSessionType() int32 { - if m != nil { - return m.SessionType - } - return 0 -} - -func (m *UserSendMsgReq) GetMsgFrom() int32 { - if m != nil { - return m.MsgFrom - } - return 0 -} - -func (m *UserSendMsgReq) GetContentType() int32 { - if m != nil { - return m.ContentType - } - return 0 -} - -func (m *UserSendMsgReq) GetRecvID() string { - if m != nil { - return m.RecvID - } - return "" -} - -func (m *UserSendMsgReq) GetForceList() []string { - if m != nil { - return m.ForceList - } - return nil -} - -func (m *UserSendMsgReq) GetContent() string { - if m != nil { - return m.Content - } - return "" -} - -func (m *UserSendMsgReq) GetClientMsgID() string { - if m != nil { - return m.ClientMsgID - } - return "" -} - type UserSendMsgResp struct { ServerMsgID string `protobuf:"bytes,1,opt,name=ServerMsgID" json:"ServerMsgID,omitempty"` ClientMsgID string `protobuf:"bytes,2,opt,name=ClientMsgID" json:"ClientMsgID,omitempty"` @@ -511,7 +287,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_a9634e8f434358ba, []int{7} + return fileDescriptor_ws_9a4768ae4ab79d99, []int{5} } func (m *UserSendMsgResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_UserSendMsgResp.Unmarshal(m, b) @@ -580,7 +356,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_a9634e8f434358ba, []int{8} + return fileDescriptor_ws_9a4768ae4ab79d99, []int{6} } func (m *MsgData) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MsgData.Unmarshal(m, b) @@ -741,7 +517,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_a9634e8f434358ba, []int{9} + return fileDescriptor_ws_9a4768ae4ab79d99, []int{7} } func (m *OfflinePushInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_OfflinePushInfo.Unmarshal(m, b) @@ -815,7 +591,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_a9634e8f434358ba, []int{10} + return fileDescriptor_ws_9a4768ae4ab79d99, []int{8} } func (m *GroupInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupInfo.Unmarshal(m, b) @@ -909,7 +685,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_a9634e8f434358ba, []int{11} + return fileDescriptor_ws_9a4768ae4ab79d99, []int{9} } func (m *GroupMemberFullInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupMemberFullInfo.Unmarshal(m, b) @@ -996,7 +772,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_a9634e8f434358ba, []int{12} + return fileDescriptor_ws_9a4768ae4ab79d99, []int{10} } func (m *UserInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_UserInfo.Unmarshal(m, b) @@ -1080,7 +856,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_a9634e8f434358ba, []int{13} + return fileDescriptor_ws_9a4768ae4ab79d99, []int{11} } func (m *PublicUserInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_PublicUserInfo.Unmarshal(m, b) @@ -1140,7 +916,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_a9634e8f434358ba, []int{14} + return fileDescriptor_ws_9a4768ae4ab79d99, []int{12} } func (m *TipsComm) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_TipsComm.Unmarshal(m, b) @@ -1189,7 +965,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_a9634e8f434358ba, []int{15} + return fileDescriptor_ws_9a4768ae4ab79d99, []int{13} } func (m *MemberEnterTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MemberEnterTips.Unmarshal(m, b) @@ -1244,7 +1020,7 @@ func (m *MemberLeaveTips) Reset() { *m = MemberLeaveTips{} } func (m *MemberLeaveTips) String() string { return proto.CompactTextString(m) } func (*MemberLeaveTips) ProtoMessage() {} func (*MemberLeaveTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_a9634e8f434358ba, []int{16} + return fileDescriptor_ws_9a4768ae4ab79d99, []int{14} } func (m *MemberLeaveTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MemberLeaveTips.Unmarshal(m, b) @@ -1299,7 +1075,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_a9634e8f434358ba, []int{17} + return fileDescriptor_ws_9a4768ae4ab79d99, []int{15} } func (m *MemberInvitedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MemberInvitedTips.Unmarshal(m, b) @@ -1361,7 +1137,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_a9634e8f434358ba, []int{18} + return fileDescriptor_ws_9a4768ae4ab79d99, []int{16} } func (m *MemberKickedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MemberKickedTips.Unmarshal(m, b) @@ -1424,7 +1200,7 @@ func (m *MemberInfoChangedTips) Reset() { *m = MemberInfoChangedTips{} } func (m *MemberInfoChangedTips) String() string { return proto.CompactTextString(m) } func (*MemberInfoChangedTips) ProtoMessage() {} func (*MemberInfoChangedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_a9634e8f434358ba, []int{19} + return fileDescriptor_ws_9a4768ae4ab79d99, []int{17} } func (m *MemberInfoChangedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MemberInfoChangedTips.Unmarshal(m, b) @@ -1493,7 +1269,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_a9634e8f434358ba, []int{20} + return fileDescriptor_ws_9a4768ae4ab79d99, []int{18} } func (m *GroupCreatedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupCreatedTips.Unmarshal(m, b) @@ -1554,7 +1330,7 @@ func (m *GroupInfoChangedTips) Reset() { *m = GroupInfoChangedTips{} } func (m *GroupInfoChangedTips) String() string { return proto.CompactTextString(m) } func (*GroupInfoChangedTips) ProtoMessage() {} func (*GroupInfoChangedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_a9634e8f434358ba, []int{21} + return fileDescriptor_ws_9a4768ae4ab79d99, []int{19} } func (m *GroupInfoChangedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupInfoChangedTips.Unmarshal(m, b) @@ -1608,7 +1384,7 @@ func (m *ReceiveJoinApplicationTips) Reset() { *m = ReceiveJoinApplicati func (m *ReceiveJoinApplicationTips) String() string { return proto.CompactTextString(m) } func (*ReceiveJoinApplicationTips) ProtoMessage() {} func (*ReceiveJoinApplicationTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_a9634e8f434358ba, []int{22} + return fileDescriptor_ws_9a4768ae4ab79d99, []int{20} } func (m *ReceiveJoinApplicationTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ReceiveJoinApplicationTips.Unmarshal(m, b) @@ -1663,7 +1439,7 @@ func (m *ApplicationProcessedTips) Reset() { *m = ApplicationProcessedTi func (m *ApplicationProcessedTips) String() string { return proto.CompactTextString(m) } func (*ApplicationProcessedTips) ProtoMessage() {} func (*ApplicationProcessedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_a9634e8f434358ba, []int{23} + return fileDescriptor_ws_9a4768ae4ab79d99, []int{21} } func (m *ApplicationProcessedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ApplicationProcessedTips.Unmarshal(m, b) @@ -1726,7 +1502,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_a9634e8f434358ba, []int{24} + return fileDescriptor_ws_9a4768ae4ab79d99, []int{22} } func (m *FriendInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FriendInfo.Unmarshal(m, b) @@ -1787,7 +1563,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_a9634e8f434358ba, []int{25} + return fileDescriptor_ws_9a4768ae4ab79d99, []int{23} } func (m *FriendApplication) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FriendApplication.Unmarshal(m, b) @@ -1843,7 +1619,7 @@ func (m *FriendApplicationAddedTips) Reset() { *m = FriendApplicationAdd func (m *FriendApplicationAddedTips) String() string { return proto.CompactTextString(m) } func (*FriendApplicationAddedTips) ProtoMessage() {} func (*FriendApplicationAddedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_a9634e8f434358ba, []int{26} + return fileDescriptor_ws_9a4768ae4ab79d99, []int{24} } func (m *FriendApplicationAddedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FriendApplicationAddedTips.Unmarshal(m, b) @@ -1906,7 +1682,7 @@ func (m *FriendApplicationProcessedTips) Reset() { *m = FriendApplicatio func (m *FriendApplicationProcessedTips) String() string { return proto.CompactTextString(m) } func (*FriendApplicationProcessedTips) ProtoMessage() {} func (*FriendApplicationProcessedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_a9634e8f434358ba, []int{27} + return fileDescriptor_ws_9a4768ae4ab79d99, []int{25} } func (m *FriendApplicationProcessedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FriendApplicationProcessedTips.Unmarshal(m, b) @@ -1966,7 +1742,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_a9634e8f434358ba, []int{28} + return fileDescriptor_ws_9a4768ae4ab79d99, []int{26} } func (m *FriendAddedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FriendAddedTips.Unmarshal(m, b) @@ -2012,7 +1788,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_a9634e8f434358ba, []int{29} + return fileDescriptor_ws_9a4768ae4ab79d99, []int{27} } func (m *FriendDeletedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FriendDeletedTips.Unmarshal(m, b) @@ -2059,7 +1835,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_a9634e8f434358ba, []int{30} + return fileDescriptor_ws_9a4768ae4ab79d99, []int{28} } func (m *BlackInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_BlackInfo.Unmarshal(m, b) @@ -2112,7 +1888,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_a9634e8f434358ba, []int{31} + return fileDescriptor_ws_9a4768ae4ab79d99, []int{29} } func (m *BlackAddedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_BlackAddedTips.Unmarshal(m, b) @@ -2158,7 +1934,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_a9634e8f434358ba, []int{32} + return fileDescriptor_ws_9a4768ae4ab79d99, []int{30} } func (m *BlackDeletedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_BlackDeletedTips.Unmarshal(m, b) @@ -2205,7 +1981,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_a9634e8f434358ba, []int{33} + return fileDescriptor_ws_9a4768ae4ab79d99, []int{31} } func (m *FriendInfoChangedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FriendInfoChangedTips.Unmarshal(m, b) @@ -2260,7 +2036,7 @@ func (m *SelfInfoUpdatedTips) Reset() { *m = SelfInfoUpdatedTips{} } func (m *SelfInfoUpdatedTips) String() string { return proto.CompactTextString(m) } func (*SelfInfoUpdatedTips) ProtoMessage() {} func (*SelfInfoUpdatedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_a9634e8f434358ba, []int{34} + return fileDescriptor_ws_9a4768ae4ab79d99, []int{32} } func (m *SelfInfoUpdatedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SelfInfoUpdatedTips.Unmarshal(m, b) @@ -2307,9 +2083,6 @@ func init() { proto.RegisterType((*GetMaxAndMinSeqReq)(nil), "open_im_sdk.GetMaxAndMinSeqReq") proto.RegisterType((*GetMaxAndMinSeqResp)(nil), "open_im_sdk.GetMaxAndMinSeqResp") proto.RegisterType((*GatherFormat)(nil), "open_im_sdk.GatherFormat") - proto.RegisterType((*MsgFormat)(nil), "open_im_sdk.MsgFormat") - proto.RegisterType((*UserSendMsgReq)(nil), "open_im_sdk.UserSendMsgReq") - proto.RegisterMapType((map[string]int32)(nil), "open_im_sdk.UserSendMsgReq.OptionsEntry") proto.RegisterType((*UserSendMsgResp)(nil), "open_im_sdk.UserSendMsgResp") proto.RegisterType((*MsgData)(nil), "open_im_sdk.MsgData") proto.RegisterMapType((map[string]bool)(nil), "open_im_sdk.MsgData.OptionsEntry") @@ -2341,124 +2114,114 @@ func init() { proto.RegisterType((*SelfInfoUpdatedTips)(nil), "open_im_sdk.SelfInfoUpdatedTips") } -func init() { proto.RegisterFile("sdk_ws/ws.proto", fileDescriptor_ws_a9634e8f434358ba) } - -var fileDescriptor_ws_a9634e8f434358ba = []byte{ - // 1855 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0x59, 0x5f, 0x6f, 0xdc, 0x5a, - 0x11, 0x97, 0xf7, 0x5f, 0xb2, 0xb3, 0x69, 0x92, 0xba, 0x6d, 0xae, 0x29, 0x57, 0x55, 0xb0, 0x10, - 0x8a, 0xae, 0xae, 0x52, 0x91, 0x08, 0x71, 0xdb, 0x2b, 0xe0, 0x26, 0xd9, 0x24, 0xda, 0xd2, 0x34, - 0x91, 0xb7, 0x15, 0x12, 0x2f, 0x95, 0x6b, 0x9f, 0xdd, 0x98, 0xf5, 0x9f, 0x8d, 0x8f, 0x77, 0xdb, - 0x7e, 0x12, 0x24, 0x24, 0x24, 0x10, 0x0f, 0x08, 0xf1, 0x82, 0x10, 0xe2, 0x43, 0x20, 0xc4, 0x87, - 0x40, 0xf0, 0xc8, 0x0b, 0xaf, 0x08, 0x09, 0xcd, 0x9c, 0x63, 0xfb, 0x9c, 0xf5, 0x92, 0xec, 0xe6, - 0xaa, 0x7d, 0xf3, 0xfc, 0x3c, 0x73, 0xe6, 0xdf, 0x6f, 0xc6, 0x27, 0x1b, 0xd8, 0xe0, 0xfe, 0xe8, - 0xf5, 0x5b, 0xfe, 0xf8, 0x2d, 0xdf, 0x1d, 0xa7, 0x49, 0x96, 0x98, 0x9d, 0x64, 0xcc, 0xe2, 0xd7, - 0x41, 0xf4, 0x9a, 0xfb, 0x23, 0xfb, 0x2f, 0x06, 0x58, 0x17, 0x93, 0x30, 0x3c, 0x63, 0x9c, 0xbb, - 0x43, 0x76, 0xf8, 0xbe, 0xcf, 0xae, 0x9e, 0x07, 0x3c, 0x73, 0x18, 0x1f, 0x9b, 0x5b, 0xd0, 0x3a, - 0x73, 0xdf, 0xf5, 0xd9, 0x95, 0x65, 0x6c, 0x1b, 0x3b, 0x75, 0x47, 0x4a, 0x84, 0x07, 0x31, 0xe2, - 0x35, 0x89, 0x93, 0x64, 0xfe, 0x08, 0xee, 0xf4, 0x83, 0x78, 0x18, 0xb2, 0x57, 0x9c, 0xa5, 0x67, - 0x7c, 0x68, 0xd5, 0xb7, 0xeb, 0x3b, 0x9d, 0xbd, 0x6f, 0xec, 0x2a, 0x1e, 0x77, 0x4f, 0xdd, 0xec, - 0x92, 0xa5, 0x27, 0x49, 0x1a, 0xb9, 0x99, 0xa3, 0xeb, 0x9b, 0x3f, 0x80, 0xb5, 0xd3, 0x34, 0x99, - 0x8c, 0x73, 0xfb, 0xc6, 0x4d, 0xf6, 0x9a, 0xba, 0xbd, 0x0f, 0x9f, 0xcc, 0xcf, 0xe5, 0xca, 0xb4, - 0x60, 0x85, 0x0b, 0xc9, 0x32, 0xb6, 0xeb, 0x3b, 0x75, 0x27, 0x17, 0xed, 0xfb, 0x60, 0x9e, 0xb2, - 0xec, 0xcc, 0x7d, 0x77, 0x10, 0xfb, 0x22, 0x0f, 0x87, 0x5d, 0xd9, 0xc7, 0x70, 0xaf, 0x82, 0x8a, - 0x8a, 0x44, 0x5a, 0x45, 0xa2, 0xa2, 0x22, 0x91, 0x56, 0x11, 0x21, 0xd9, 0xcf, 0x60, 0x4d, 0x8d, - 0xd7, 0x5c, 0x87, 0x5a, 0xaf, 0x4b, 0xb6, 0x6d, 0xa7, 0xd6, 0xeb, 0x9a, 0x9f, 0x41, 0x83, 0x62, - 0xaa, 0x51, 0xa2, 0x5b, 0x5a, 0xa2, 0x67, 0x7c, 0x28, 0xb3, 0x24, 0x1d, 0xfb, 0xbf, 0x35, 0x68, - 0x17, 0x18, 0x7a, 0xec, 0xb3, 0xd8, 0x2f, 0x4e, 0x93, 0x12, 0xe2, 0x0e, 0xf3, 0xa6, 0xbd, 0x2e, - 0x45, 0xd2, 0x76, 0xa4, 0x84, 0x05, 0x40, 0xe3, 0x34, 0x89, 0xac, 0xfa, 0xb6, 0xb1, 0xd3, 0x74, - 0x72, 0xd1, 0xdc, 0x86, 0xce, 0x51, 0x12, 0x67, 0x2c, 0xce, 0x5e, 0xbe, 0x1f, 0x33, 0xab, 0x41, - 0x6f, 0x55, 0x08, 0x35, 0xfa, 0x2c, 0x9d, 0x52, 0x91, 0x7b, 0x5d, 0xab, 0x49, 0x07, 0xab, 0x10, - 0x9e, 0x2e, 0x0d, 0xac, 0x16, 0xbd, 0xcd, 0x45, 0x73, 0x13, 0xea, 0x58, 0x96, 0x15, 0x2a, 0x0b, - 0x3e, 0x9a, 0x0f, 0x61, 0x15, 0x63, 0x7d, 0x19, 0x44, 0xcc, 0x5a, 0x25, 0xb8, 0x90, 0xcd, 0xcf, - 0x60, 0x13, 0x9f, 0x59, 0x7a, 0x11, 0xba, 0xd9, 0x20, 0x49, 0xa3, 0x5e, 0xd7, 0x6a, 0x53, 0x40, - 0x15, 0xdc, 0xfc, 0x0e, 0xac, 0x0b, 0xec, 0x45, 0xe0, 0x8d, 0x5e, 0xb8, 0x11, 0xb3, 0x80, 0x5c, - 0xcf, 0xa0, 0xe6, 0xb7, 0xe1, 0x8e, 0x40, 0x4e, 0x5c, 0x8f, 0xbd, 0x72, 0x9e, 0x5b, 0x1d, 0x52, - 0xd3, 0x41, 0xaa, 0x42, 0x18, 0xb0, 0x38, 0x13, 0x39, 0xae, 0x89, 0x1c, 0x15, 0xc8, 0xfe, 0x5b, - 0x1d, 0xd6, 0x91, 0x69, 0x68, 0x77, 0xc6, 0x87, 0xc8, 0xaa, 0x43, 0x58, 0x39, 0x1f, 0x67, 0x41, - 0x12, 0x73, 0x62, 0x55, 0x67, 0x6f, 0x47, 0xeb, 0xa0, 0xae, 0xbd, 0x2b, 0x55, 0x8f, 0xe3, 0x2c, - 0x7d, 0xef, 0xe4, 0x86, 0x73, 0xd2, 0xa8, 0x2d, 0x96, 0x46, 0x7d, 0x5e, 0x1a, 0x8f, 0x00, 0x94, - 0xd2, 0x89, 0x5e, 0x2a, 0x88, 0x68, 0x25, 0xe7, 0x41, 0x12, 0x53, 0xb3, 0x9b, 0xa2, 0xd9, 0x0a, - 0xa4, 0x12, 0xa5, 0x75, 0x2d, 0x51, 0x56, 0xaa, 0x44, 0x29, 0xc9, 0xb7, 0xaa, 0x91, 0xef, 0x53, - 0x68, 0x9f, 0x24, 0xa9, 0xc7, 0x88, 0xeb, 0xed, 0xed, 0xfa, 0x4e, 0xdb, 0x29, 0x01, 0x95, 0x3c, - 0xa0, 0x93, 0x67, 0xa6, 0x29, 0x9d, 0x4a, 0x53, 0x1e, 0x3e, 0x85, 0x35, 0xb5, 0xac, 0x48, 0xb7, - 0x11, 0x7b, 0x2f, 0x67, 0x02, 0x1f, 0xcd, 0xfb, 0xd0, 0x9c, 0xba, 0xe1, 0x44, 0x94, 0xb5, 0xe9, - 0x08, 0xe1, 0x69, 0xed, 0x0b, 0xc3, 0xbe, 0x82, 0x0d, 0xad, 0x43, 0x7c, 0x3c, 0xcb, 0x74, 0xa3, - 0xca, 0xf4, 0x99, 0x90, 0x6a, 0x95, 0x90, 0x90, 0xdf, 0x3c, 0xe7, 0x77, 0x5d, 0xf0, 0x3b, 0x97, - 0xed, 0x3f, 0x37, 0xa9, 0xba, 0x5d, 0x37, 0x73, 0xb1, 0x58, 0x5c, 0x9b, 0x60, 0x5e, 0x4c, 0x70, - 0xaa, 0x4d, 0x70, 0x5a, 0x4c, 0xf0, 0x10, 0xb7, 0x5d, 0xaf, 0x2b, 0x5b, 0x9f, 0x8b, 0x18, 0x93, - 0xa7, 0xc4, 0xd4, 0x10, 0x31, 0x29, 0x10, 0x6a, 0xf0, 0xea, 0x04, 0x2b, 0x10, 0x4e, 0x1e, 0x9f, - 0x9d, 0x3c, 0xd1, 0xff, 0x0a, 0x8e, 0x94, 0xe5, 0x3a, 0x65, 0x57, 0x04, 0x65, 0x79, 0x85, 0xb2, - 0x5c, 0xa3, 0xac, 0x60, 0x85, 0x0e, 0x8a, 0xd8, 0x4a, 0x4a, 0x8a, 0x71, 0x57, 0x21, 0xcc, 0x3c, - 0x92, 0x94, 0x04, 0x41, 0xc9, 0xa8, 0xa4, 0xa4, 0xa7, 0x50, 0xb2, 0x23, 0x6c, 0x15, 0x08, 0x6d, - 0xa5, 0x48, 0x33, 0xbd, 0xe6, 0xe4, 0x22, 0x92, 0x72, 0x50, 0x90, 0xf2, 0x8e, 0x20, 0x65, 0x01, - 0x20, 0x91, 0x38, 0xbb, 0xb2, 0xd6, 0xc5, 0xde, 0xe2, 0x62, 0x6f, 0x15, 0x7d, 0xdd, 0xd0, 0xfb, - 0x8a, 0x63, 0xe7, 0xa5, 0xcc, 0xcd, 0x18, 0xbd, 0xdd, 0xa4, 0xb7, 0x0a, 0x62, 0x7e, 0x59, 0x2e, - 0x8a, 0xbb, 0xb4, 0x28, 0xbe, 0x35, 0xbb, 0xea, 0x91, 0x12, 0xff, 0x67, 0x43, 0x9c, 0xc0, 0x46, - 0x32, 0x18, 0x84, 0x41, 0xcc, 0x2e, 0x26, 0xfc, 0xb2, 0x17, 0x0f, 0x12, 0xcb, 0xdc, 0x36, 0x76, - 0x3a, 0x7b, 0x9f, 0x6a, 0x87, 0x9c, 0xeb, 0x3a, 0xce, 0xac, 0xd1, 0xb2, 0xb3, 0xb2, 0xaa, 0xce, - 0xca, 0xcf, 0x0d, 0xd8, 0x98, 0x71, 0x80, 0xda, 0x2f, 0x83, 0x2c, 0x64, 0xf2, 0x04, 0x21, 0x98, - 0x26, 0x34, 0xba, 0x8c, 0x7b, 0x92, 0xbc, 0xf4, 0x8c, 0x9e, 0x8e, 0xdf, 0x65, 0x92, 0xb6, 0xf8, - 0x68, 0xda, 0xb0, 0x16, 0x9c, 0xf7, 0xf1, 0xa8, 0x7e, 0x32, 0x89, 0x7d, 0xc9, 0x59, 0x0d, 0x43, - 0xfa, 0x04, 0xe7, 0xfd, 0x43, 0xd7, 0x1f, 0xb2, 0xa3, 0x64, 0x12, 0x67, 0x44, 0xdb, 0x55, 0x47, - 0x07, 0xed, 0x5f, 0xd4, 0xa0, 0x4d, 0xb7, 0x00, 0x8a, 0xc9, 0x82, 0x95, 0x53, 0x39, 0x24, 0x22, - 0xaa, 0x5c, 0xc4, 0x76, 0xd3, 0xa3, 0xb2, 0x62, 0x4b, 0x00, 0xe3, 0x79, 0x91, 0x64, 0xc1, 0x20, - 0xf0, 0x5c, 0xac, 0x90, 0x0c, 0x55, 0xc3, 0x50, 0xa7, 0x17, 0x67, 0x69, 0xe2, 0x4f, 0x3c, 0xd2, - 0x91, 0x31, 0xab, 0x18, 0xfa, 0x27, 0x5e, 0xa7, 0xa1, 0x1c, 0xb2, 0x5c, 0x34, 0xbf, 0x0b, 0xcd, - 0xf3, 0xb7, 0x31, 0x4b, 0x69, 0xaa, 0x3a, 0x7b, 0xdf, 0xd4, 0x7a, 0x77, 0x31, 0x79, 0x13, 0x06, - 0x1e, 0x6e, 0x23, 0x6a, 0x9d, 0xd0, 0x44, 0x56, 0x1d, 0x95, 0xac, 0xc2, 0x19, 0x6b, 0x38, 0x0a, - 0x82, 0xec, 0x3f, 0x63, 0xd1, 0x1b, 0x96, 0x8a, 0xf2, 0xe0, 0x74, 0xdd, 0x71, 0x54, 0xc8, 0xfe, - 0x97, 0x01, 0xf7, 0x28, 0x49, 0x01, 0x9e, 0x4c, 0xc2, 0xf0, 0x86, 0x32, 0x6d, 0x41, 0x8b, 0xc2, - 0x28, 0xb6, 0x8f, 0x90, 0xcc, 0x5d, 0x30, 0x0f, 0xfc, 0x28, 0x88, 0x03, 0x9e, 0xa5, 0x6e, 0x96, - 0xa4, 0xcf, 0xd9, 0x94, 0x85, 0xf2, 0x2a, 0x31, 0xe7, 0x0d, 0x4e, 0xcb, 0xb3, 0x24, 0x88, 0x29, - 0xf2, 0x06, 0x45, 0x5e, 0xc8, 0xf8, 0xae, 0xd8, 0x1c, 0xa2, 0x4a, 0x85, 0xac, 0x16, 0xb0, 0xa5, - 0x17, 0xd0, 0x86, 0xb5, 0x93, 0x34, 0x60, 0xb1, 0xef, 0xb0, 0xc8, 0x4d, 0x47, 0x72, 0xe7, 0x68, - 0x98, 0xfd, 0x27, 0x03, 0x56, 0xf3, 0x2a, 0x2a, 0xa9, 0x18, 0x5a, 0x2a, 0xd2, 0x7d, 0x5c, 0x12, - 0xa1, 0x90, 0x55, 0xf7, 0x75, 0xdd, 0xfd, 0x16, 0xb4, 0x4e, 0x69, 0x6f, 0xc9, 0xaf, 0xaa, 0x94, - 0xe8, 0x32, 0x9c, 0xbc, 0x09, 0xc2, 0x3c, 0x15, 0x29, 0xe1, 0x74, 0x1c, 0x06, 0x69, 0x76, 0x29, - 0xd3, 0x10, 0x02, 0xa2, 0xc7, 0x91, 0x1b, 0x84, 0x32, 0x7a, 0x21, 0xd8, 0x53, 0x58, 0xd7, 0x19, - 0xf0, 0x71, 0x62, 0xb7, 0xbb, 0xb0, 0xfa, 0x32, 0x18, 0xf3, 0xa3, 0x24, 0x8a, 0x50, 0xa7, 0xcb, - 0x32, 0x0c, 0xcd, 0xa0, 0x3d, 0x29, 0x25, 0x24, 0x59, 0x97, 0x0d, 0xdc, 0x49, 0x98, 0xa1, 0x6a, - 0xfe, 0xc1, 0x53, 0x20, 0xfb, 0x77, 0x06, 0x6c, 0x08, 0x7e, 0x1d, 0xc7, 0x19, 0x4b, 0x11, 0x33, - 0x3f, 0x87, 0x26, 0x31, 0x8a, 0x0e, 0x9b, 0xbd, 0xd9, 0x16, 0xe3, 0xea, 0x08, 0x25, 0xf3, 0x10, - 0x3a, 0xb8, 0x92, 0xdc, 0x38, 0xc3, 0x34, 0xc9, 0x47, 0x67, 0x6f, 0xbb, 0x6a, 0xa3, 0xb3, 0xd8, - 0x51, 0x8d, 0x70, 0x5b, 0x9c, 0x8f, 0x59, 0x4a, 0xa3, 0x5a, 0x7c, 0x7b, 0x1b, 0x8e, 0x0e, 0xda, - 0xbf, 0x2d, 0x62, 0x7d, 0xce, 0xdc, 0x29, 0xbb, 0x45, 0xac, 0x5f, 0x01, 0x90, 0x69, 0xba, 0x54, - 0xa8, 0x8a, 0xcd, 0x82, 0x91, 0xfe, 0xd3, 0x80, 0xbb, 0xe2, 0x90, 0x5e, 0x3c, 0x0d, 0x32, 0xe6, - 0xdf, 0x22, 0xd6, 0x2f, 0xa0, 0x75, 0x3e, 0x5e, 0x2a, 0x4e, 0xa9, 0x8f, 0x1d, 0x91, 0x6e, 0xc9, - 0xbc, 0xbe, 0x68, 0x47, 0x14, 0xa3, 0x6a, 0x9e, 0x8d, 0x79, 0x79, 0xfe, 0xdd, 0x80, 0x4d, 0x71, - 0xca, 0x8f, 0x03, 0x6f, 0xf4, 0x91, 0xd3, 0xfc, 0x0a, 0x40, 0x78, 0x5d, 0x2a, 0x4b, 0xc5, 0x66, - 0xc1, 0x24, 0xff, 0x63, 0xc0, 0x83, 0xbc, 0x99, 0x83, 0xe4, 0xe8, 0xd2, 0x8d, 0x87, 0x32, 0x53, - 0xdc, 0xf1, 0x24, 0xd2, 0x05, 0xc6, 0x10, 0x17, 0xf6, 0x12, 0xf9, 0x1a, 0xb9, 0xfd, 0x10, 0xda, - 0x27, 0x41, 0xec, 0x12, 0xb8, 0x70, 0x6a, 0xa5, 0x09, 0xae, 0x9a, 0xb3, 0x89, 0xfc, 0xf6, 0xc8, - 0x0d, 0x9e, 0xcb, 0x65, 0x7f, 0x9a, 0x0b, 0xf4, 0xc7, 0xfe, 0x87, 0x01, 0x9b, 0xf4, 0x24, 0xbe, - 0x5d, 0xb7, 0x69, 0xf1, 0x53, 0x58, 0x21, 0xe3, 0x64, 0xf1, 0x3a, 0xe4, 0x06, 0xd8, 0x64, 0x39, - 0xf2, 0x78, 0xd3, 0x13, 0xbf, 0x49, 0x2c, 0xd0, 0xe4, 0xd2, 0x66, 0xc1, 0x26, 0xff, 0xca, 0x80, - 0xfb, 0x45, 0xe0, 0x6a, 0x8f, 0xf1, 0x6f, 0x06, 0x29, 0x96, 0x4d, 0x56, 0xa1, 0xb2, 0x18, 0xb5, - 0xe5, 0xf8, 0x5e, 0x5f, 0x8e, 0x13, 0xf6, 0x2f, 0x0d, 0x78, 0xe8, 0x30, 0x8f, 0x05, 0x53, 0x86, - 0x5f, 0xe3, 0x83, 0xf1, 0x38, 0x94, 0xb7, 0x9b, 0x5b, 0xf4, 0xe4, 0x09, 0xb4, 0xe5, 0x01, 0x71, - 0x26, 0x03, 0xbf, 0xf6, 0x56, 0x53, 0x6a, 0x8b, 0x3f, 0x14, 0x5d, 0x5e, 0x5c, 0xb4, 0xa4, 0x64, - 0xff, 0xd1, 0x00, 0x4b, 0x09, 0xea, 0x22, 0x4d, 0x3c, 0xc6, 0xf9, 0x47, 0x5e, 0x0a, 0x14, 0x1c, - 0x9f, 0x84, 0x99, 0xbc, 0xde, 0x48, 0x49, 0x09, 0xba, 0xa1, 0x05, 0xfd, 0x07, 0x03, 0x40, 0xdc, - 0x42, 0x68, 0x6e, 0xf6, 0xa1, 0x4d, 0xd7, 0x37, 0xf2, 0x2d, 0x42, 0x7d, 0x50, 0xf9, 0x59, 0x40, - 0x14, 0xa4, 0xd0, 0x13, 0x67, 0xd3, 0xb5, 0xa6, 0xf8, 0xd9, 0x06, 0xa5, 0x99, 0x2b, 0x60, 0xbd, - 0x72, 0x05, 0xfc, 0x5e, 0xee, 0x9a, 0xbc, 0x35, 0xae, 0xf3, 0xa6, 0x28, 0xda, 0x23, 0xb8, 0x2b, - 0x24, 0xa5, 0xd8, 0x78, 0x7f, 0x38, 0xf0, 0xc5, 0xdf, 0x37, 0x06, 0x39, 0xca, 0x45, 0xbc, 0x3b, - 0x1f, 0xf8, 0x7e, 0x3f, 0x99, 0xa4, 0x5e, 0x71, 0x77, 0x2e, 0x00, 0x8c, 0xf1, 0xc0, 0xf7, 0x7f, - 0x92, 0xa4, 0x7e, 0x10, 0x0f, 0x65, 0x43, 0x15, 0xc4, 0xfe, 0xb7, 0x01, 0x0f, 0x2b, 0xde, 0x0e, - 0x7c, 0x5f, 0xb6, 0x75, 0xbf, 0x68, 0x94, 0x71, 0x33, 0x87, 0xca, 0xc5, 0xdd, 0x51, 0x0e, 0x93, - 0x2d, 0x7e, 0xa4, 0x59, 0x56, 0x5c, 0x3a, 0xaa, 0x89, 0xf9, 0x7d, 0x58, 0x3d, 0x1f, 0x6b, 0x8b, - 0xff, 0x5a, 0xc7, 0x85, 0xf2, 0x82, 0xcb, 0xe0, 0xaf, 0x06, 0x3c, 0xaa, 0x44, 0xa0, 0xf3, 0xf9, - 0x56, 0x89, 0xab, 0x61, 0xd7, 0x96, 0x09, 0x9b, 0x7e, 0x56, 0x50, 0x59, 0x2d, 0xa4, 0x05, 0xd3, - 0xb9, 0x84, 0x0d, 0x99, 0x4d, 0xd1, 0xb7, 0xc7, 0xd0, 0x12, 0x90, 0x0c, 0xff, 0x93, 0x39, 0xd5, - 0x17, 0xa1, 0x8b, 0xe7, 0xaa, 0xa7, 0xda, 0x3c, 0x4f, 0x3f, 0xcb, 0xa9, 0xd9, 0x65, 0x21, 0xcb, - 0x3e, 0xac, 0xaf, 0x5f, 0x1b, 0xd0, 0x3e, 0x0c, 0x5d, 0x6f, 0x44, 0x83, 0xfb, 0xa4, 0x3a, 0xb8, - 0xd7, 0xef, 0xb3, 0x72, 0x7c, 0x6f, 0x1a, 0xd3, 0x27, 0xd2, 0x8f, 0x32, 0xa5, 0xd7, 0x1f, 0x5d, - 0x68, 0xdb, 0x3e, 0xac, 0x93, 0x50, 0x16, 0xfe, 0x73, 0x68, 0x12, 0x32, 0x77, 0x0f, 0x16, 0xe9, - 0x38, 0x42, 0x69, 0xc1, 0x4a, 0x0c, 0x60, 0x93, 0xd4, 0xd5, 0xa2, 0x7f, 0x08, 0x3f, 0xbf, 0x31, - 0xe0, 0x41, 0xd9, 0x2e, 0xf5, 0x23, 0xb9, 0x74, 0x8b, 0xf7, 0x67, 0x16, 0xfc, 0x42, 0xe3, 0xb3, - 0xd8, 0xdd, 0xfb, 0xf7, 0x06, 0xdc, 0xeb, 0xb3, 0x70, 0x80, 0xa6, 0xaf, 0xc6, 0x7e, 0x71, 0x67, - 0x79, 0x02, 0x6b, 0x08, 0xe7, 0xa7, 0x5e, 0xbf, 0xdd, 0x35, 0xd5, 0x0f, 0x18, 0xed, 0xe1, 0xd6, - 0x4f, 0xef, 0xef, 0x3e, 0x16, 0xff, 0xe5, 0xf9, 0x52, 0x39, 0xf4, 0x4d, 0x8b, 0xfe, 0xdf, 0xb3, - 0xff, 0xbf, 0x00, 0x00, 0x00, 0xff, 0xff, 0x45, 0x72, 0x9b, 0x6e, 0x02, 0x1a, 0x00, 0x00, +func init() { proto.RegisterFile("sdk_ws/ws.proto", fileDescriptor_ws_9a4768ae4ab79d99) } + +var fileDescriptor_ws_9a4768ae4ab79d99 = []byte{ + // 1690 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0x58, 0x5b, 0x6f, 0x1b, 0x45, + 0x14, 0xd6, 0xfa, 0x96, 0xf8, 0xd8, 0xb9, 0x74, 0x9b, 0xa6, 0x4b, 0xa8, 0x2a, 0xb3, 0x42, 0xc8, + 0x42, 0x55, 0x2a, 0x12, 0x21, 0x9a, 0x22, 0xa0, 0x49, 0x9c, 0x04, 0x43, 0x5c, 0x47, 0xeb, 0x44, + 0x3c, 0x56, 0x1b, 0xef, 0xd8, 0x59, 0xbc, 0x17, 0x67, 0x66, 0xed, 0x36, 0xbf, 0x04, 0x09, 0x09, + 0x09, 0xc4, 0x03, 0x42, 0xbc, 0x20, 0x84, 0xf8, 0x15, 0xfc, 0x0a, 0x04, 0x8f, 0xbc, 0xf0, 0x0a, + 0x0f, 0x68, 0xce, 0xcc, 0xee, 0xce, 0xc6, 0x21, 0x71, 0x82, 0xda, 0xb7, 0x3d, 0x9f, 0xcf, 0x99, + 0xf3, 0x9d, 0xeb, 0xce, 0x1a, 0x16, 0x98, 0x33, 0x78, 0xf6, 0x9c, 0x3d, 0x7c, 0xce, 0x56, 0x87, + 0x34, 0x8c, 0x42, 0xbd, 0x12, 0x0e, 0x49, 0xf0, 0xcc, 0xf5, 0x9f, 0x31, 0x67, 0x60, 0xfe, 0xa3, + 0x81, 0x71, 0x30, 0xf2, 0xbc, 0x16, 0x61, 0xcc, 0xee, 0x93, 0xad, 0xb3, 0x0e, 0x39, 0xdd, 0x77, + 0x59, 0x64, 0x11, 0x36, 0xd4, 0x0d, 0x98, 0x21, 0x94, 0x6e, 0x87, 0x0e, 0x31, 0xb4, 0x9a, 0x56, + 0x2f, 0x5a, 0xb1, 0xa8, 0x2f, 0x43, 0x89, 0x50, 0xda, 0x62, 0x7d, 0x23, 0x57, 0xd3, 0xea, 0x65, + 0x4b, 0x4a, 0x1c, 0xf7, 0xed, 0x17, 0x1d, 0x72, 0x6a, 0xe4, 0x6b, 0x5a, 0x3d, 0x6f, 0x49, 0x09, + 0x71, 0x37, 0xe0, 0x78, 0x41, 0xe2, 0x28, 0xe9, 0x1f, 0xc1, 0x1c, 0x73, 0x83, 0xbe, 0x47, 0x8e, + 0x18, 0xc1, 0xe3, 0x8a, 0xb5, 0x7c, 0xbd, 0xb2, 0xf6, 0xda, 0xaa, 0xc2, 0x71, 0x75, 0xcf, 0x8e, + 0x4e, 0x08, 0xdd, 0x0d, 0xa9, 0x6f, 0x47, 0x56, 0x56, 0x5f, 0xff, 0x00, 0xaa, 0x7d, 0x1a, 0x8e, + 0x86, 0xb1, 0x7d, 0xe9, 0x2a, 0xfb, 0x8c, 0xba, 0xe9, 0xc3, 0xdd, 0x8b, 0xa3, 0x47, 0xca, 0x23, + 0x46, 0x68, 0xb3, 0x81, 0xb1, 0x97, 0x2d, 0x29, 0xe9, 0x35, 0xe0, 0x09, 0xa4, 0x76, 0xe4, 0x86, + 0x41, 0xb3, 0x21, 0xe3, 0x57, 0x21, 0x9e, 0x36, 0x26, 0xce, 0x31, 0xf2, 0xb5, 0x7c, 0x3d, 0x6f, + 0xc5, 0xa2, 0xb9, 0x04, 0xfa, 0x1e, 0x89, 0x5a, 0xf6, 0x8b, 0xcd, 0xc0, 0x69, 0x61, 0x06, 0x2c, + 0x72, 0x6a, 0xee, 0xc0, 0xed, 0x09, 0x94, 0x0d, 0x95, 0x5c, 0x6a, 0xff, 0x91, 0xcb, 0x9c, 0x9a, + 0x4b, 0xf3, 0x63, 0xa8, 0xaa, 0x91, 0xea, 0xf3, 0x90, 0x4b, 0xc8, 0xe7, 0x9a, 0x0d, 0xbd, 0x0e, + 0x05, 0xe4, 0x94, 0xc3, 0x14, 0x2d, 0x65, 0x52, 0xd4, 0x62, 0xfd, 0x86, 0x1d, 0xd9, 0x16, 0x6a, + 0x98, 0xa7, 0xb0, 0xc0, 0x13, 0xd4, 0x21, 0x81, 0xd3, 0x62, 0x7d, 0x24, 0x53, 0x83, 0x4a, 0x87, + 0xd0, 0x31, 0x66, 0x2d, 0x39, 0x55, 0x85, 0xb8, 0xc6, 0xb6, 0xe7, 0x92, 0x20, 0x12, 0x1a, 0x32, + 0x2f, 0x0a, 0xa4, 0xaf, 0xc0, 0x2c, 0x23, 0x81, 0x73, 0xe8, 0xfa, 0x44, 0xb6, 0x47, 0x22, 0x9b, + 0xbf, 0x14, 0x61, 0x46, 0x92, 0xe0, 0x01, 0x72, 0x3c, 0xcd, 0xbc, 0x90, 0x38, 0x4e, 0x49, 0x77, + 0x9c, 0x1c, 0x2e, 0x25, 0x9e, 0x6f, 0x2c, 0x6a, 0xb3, 0x81, 0xc7, 0x96, 0xad, 0x58, 0xe4, 0x9c, + 0xba, 0x0a, 0xa7, 0x82, 0xe0, 0xa4, 0x40, 0x5c, 0x83, 0x29, 0x71, 0x15, 0x85, 0x86, 0x02, 0xe9, + 0x6f, 0xc3, 0x22, 0xf7, 0x4f, 0xe8, 0x81, 0x67, 0x47, 0xbd, 0x90, 0xfa, 0xcd, 0x86, 0x51, 0xc2, + 0x69, 0x98, 0xc0, 0xf5, 0xb7, 0x60, 0x5e, 0x60, 0x4f, 0xdd, 0xee, 0xe0, 0xa9, 0xed, 0x13, 0x63, + 0x06, 0x0f, 0x3c, 0x87, 0xea, 0x6f, 0xc2, 0x9c, 0x40, 0x76, 0xed, 0x2e, 0x39, 0xb2, 0xf6, 0x8d, + 0x59, 0x54, 0xcb, 0x82, 0x82, 0x1b, 0x63, 0x6e, 0x18, 0x1c, 0x9e, 0x0d, 0x89, 0x51, 0x46, 0xa7, + 0x2a, 0xc4, 0x23, 0xf7, 0x59, 0x7f, 0x97, 0x86, 0xbe, 0x01, 0x62, 0x40, 0xa5, 0x88, 0x91, 0x87, + 0x41, 0x44, 0x82, 0x08, 0x6d, 0x2b, 0xc2, 0x56, 0x81, 0xb8, 0xad, 0x14, 0x8d, 0x6a, 0x4d, 0xab, + 0x57, 0xad, 0x58, 0xd4, 0xef, 0x41, 0xb9, 0x17, 0xd2, 0x2e, 0xc1, 0x6e, 0x99, 0xab, 0xe5, 0xeb, + 0x65, 0x2b, 0x05, 0xf4, 0x45, 0xc8, 0x33, 0x72, 0x6a, 0xcc, 0x63, 0x01, 0xf9, 0x63, 0xa6, 0xae, + 0x0b, 0xd9, 0xba, 0xea, 0xf7, 0x01, 0xba, 0x94, 0xd8, 0x11, 0xc1, 0x5f, 0x17, 0xf1, 0x57, 0x05, + 0xd1, 0xdf, 0x87, 0x99, 0xf6, 0x90, 0xcf, 0x0d, 0x33, 0x6e, 0x61, 0x5f, 0xbe, 0x71, 0x51, 0x5f, + 0xae, 0x4a, 0x9d, 0x9d, 0x20, 0xa2, 0x67, 0x56, 0x6c, 0xa1, 0xef, 0xc2, 0x42, 0xd8, 0xeb, 0x79, + 0x6e, 0x40, 0x0e, 0x46, 0xec, 0xa4, 0x19, 0xf4, 0x42, 0x43, 0xaf, 0x69, 0xf5, 0xca, 0xda, 0xbd, + 0xcc, 0x21, 0xed, 0xac, 0x8e, 0x75, 0xde, 0x68, 0xe5, 0x31, 0x54, 0x55, 0x07, 0x3c, 0xc4, 0x01, + 0x39, 0x93, 0xdd, 0xc7, 0x1f, 0xf5, 0x25, 0x28, 0x8e, 0x6d, 0x6f, 0x44, 0xb0, 0xf3, 0x66, 0x2d, + 0x21, 0x3c, 0xce, 0x3d, 0xd2, 0xcc, 0x2f, 0x34, 0x58, 0x38, 0xe7, 0x80, 0x6b, 0x1f, 0xba, 0x91, + 0x47, 0xe4, 0x09, 0x42, 0xd0, 0x75, 0x28, 0x34, 0x08, 0xeb, 0xca, 0xe6, 0xc5, 0x67, 0xee, 0x69, + 0xe7, 0x45, 0x24, 0xdb, 0x96, 0x3f, 0xea, 0x26, 0x54, 0xdd, 0x76, 0x87, 0x1f, 0xd5, 0x09, 0x47, + 0x81, 0x23, 0x7b, 0x36, 0x83, 0xf1, 0xf6, 0x71, 0xdb, 0x9d, 0x2d, 0xdb, 0xe9, 0x93, 0xed, 0x70, + 0x14, 0x44, 0xd8, 0xb6, 0xb3, 0x56, 0x16, 0x34, 0xbf, 0xcc, 0x41, 0x79, 0x0f, 0x07, 0x81, 0x73, + 0x32, 0x60, 0x66, 0x4f, 0x0e, 0x89, 0x60, 0x15, 0x8b, 0xbc, 0xdc, 0xf8, 0x88, 0xfd, 0x2a, 0xc8, + 0xa5, 0x00, 0xe7, 0xf3, 0x34, 0x8c, 0xdc, 0x9e, 0xdb, 0xc5, 0xf5, 0x26, 0xa9, 0x66, 0x30, 0xae, + 0xd3, 0x0c, 0x22, 0x1a, 0x3a, 0xa3, 0x2e, 0xea, 0x48, 0xce, 0x2a, 0xc6, 0xfd, 0x63, 0x5f, 0x53, + 0x4f, 0x0e, 0x59, 0x2c, 0xea, 0xef, 0x40, 0xb1, 0xfd, 0x3c, 0x20, 0x14, 0xa7, 0xaa, 0xb2, 0xf6, + 0x7a, 0xa6, 0x76, 0x07, 0xa3, 0x63, 0xcf, 0xed, 0xf2, 0x6d, 0x84, 0xa5, 0x13, 0x9a, 0xbc, 0xab, + 0xb6, 0xd3, 0xae, 0xe2, 0x33, 0x56, 0xb0, 0x14, 0x84, 0x77, 0x7f, 0x8b, 0xf8, 0xc7, 0x84, 0x8a, + 0xf4, 0xf0, 0xe9, 0x9a, 0xb3, 0x54, 0xc8, 0xfc, 0x53, 0x83, 0xdb, 0x18, 0xa4, 0x00, 0x77, 0x47, + 0x9e, 0x77, 0x45, 0x9a, 0x96, 0xa1, 0x74, 0x24, 0xde, 0x07, 0x72, 0xfb, 0x08, 0x49, 0x5f, 0x05, + 0x7d, 0xd3, 0xf1, 0xdd, 0xc0, 0x65, 0x11, 0xb5, 0xa3, 0x90, 0xee, 0x93, 0x31, 0xf1, 0x30, 0x4d, + 0x45, 0xeb, 0x82, 0x5f, 0xf8, 0xb4, 0x7c, 0x12, 0xba, 0x01, 0x32, 0x2f, 0x20, 0xf3, 0x44, 0xe6, + 0xbf, 0x25, 0x9b, 0x43, 0x64, 0x29, 0x91, 0xd5, 0x04, 0x96, 0xb2, 0x09, 0x34, 0xa1, 0xba, 0x4b, + 0x5d, 0x12, 0x38, 0x16, 0xf1, 0x6d, 0x3a, 0x90, 0x3b, 0x27, 0x83, 0x99, 0x3f, 0x6b, 0x30, 0x1b, + 0x67, 0x51, 0x09, 0x45, 0xcb, 0x84, 0x22, 0xdd, 0x07, 0x69, 0x23, 0x24, 0xb2, 0xea, 0x3e, 0x9f, + 0x75, 0xbf, 0x0c, 0xa5, 0x3d, 0xdc, 0x5b, 0x18, 0x4e, 0xd1, 0x92, 0x12, 0xc7, 0x5b, 0xe1, 0xb1, + 0xeb, 0xc5, 0xa1, 0x48, 0x89, 0x4f, 0xc7, 0x96, 0x4b, 0xa3, 0x13, 0x19, 0x86, 0x10, 0x38, 0xba, + 0xe3, 0xdb, 0xae, 0x27, 0xd9, 0x0b, 0xc1, 0x1c, 0xc3, 0x7c, 0xb6, 0x03, 0x5e, 0x0d, 0x77, 0xb3, + 0x01, 0xb3, 0x87, 0xee, 0x90, 0x6d, 0x87, 0xbe, 0xcf, 0x75, 0x1a, 0x24, 0xe2, 0xd4, 0x34, 0xdc, + 0x93, 0x52, 0xe2, 0x4d, 0xd6, 0x20, 0x3d, 0x7b, 0xe4, 0x45, 0x5c, 0x35, 0x7e, 0xe1, 0x29, 0x90, + 0xf9, 0xbd, 0x06, 0x0b, 0xa2, 0xbf, 0x76, 0x82, 0x88, 0x50, 0x8e, 0xe9, 0x0f, 0xa0, 0x88, 0x1d, + 0x85, 0x87, 0x55, 0xd6, 0x96, 0xb3, 0x37, 0x95, 0x78, 0x5c, 0x2d, 0xa1, 0xa4, 0x6f, 0x41, 0x85, + 0xaf, 0x24, 0x3b, 0x88, 0x78, 0x98, 0xe8, 0xa3, 0xb2, 0x56, 0x9b, 0xb4, 0xc9, 0x76, 0xb1, 0xa5, + 0x1a, 0xf1, 0x6d, 0xd1, 0x8e, 0x6f, 0x27, 0xc9, 0xbb, 0xb7, 0x60, 0x65, 0x41, 0xf3, 0xbb, 0x84, + 0xeb, 0x3e, 0xb1, 0xc7, 0xe4, 0x06, 0x5c, 0x9f, 0x00, 0xa0, 0x29, 0xbd, 0x16, 0x55, 0xc5, 0x66, + 0x4a, 0xa6, 0x7f, 0x68, 0x70, 0x4b, 0x1c, 0xd2, 0x0c, 0xc6, 0x6e, 0x44, 0x9c, 0x1b, 0x70, 0x7d, + 0x04, 0xa5, 0xf6, 0xf0, 0x5a, 0x3c, 0xa5, 0x3e, 0xaf, 0x88, 0x74, 0x8b, 0xe6, 0xf9, 0x69, 0x2b, + 0xa2, 0x18, 0x4d, 0xc6, 0x59, 0xb8, 0x28, 0xce, 0xdf, 0x34, 0x58, 0x14, 0xa7, 0x7c, 0xea, 0x76, + 0x07, 0xaf, 0x38, 0xcc, 0x27, 0x00, 0xc2, 0xeb, 0xb5, 0xa2, 0x54, 0x6c, 0xa6, 0x0c, 0xf2, 0x6f, + 0x0d, 0xee, 0xc4, 0xc5, 0xec, 0x85, 0xdb, 0x27, 0x76, 0xd0, 0x97, 0x91, 0xf2, 0x1d, 0x8f, 0x22, + 0x5e, 0x60, 0xc4, 0xf7, 0x87, 0x82, 0xfc, 0x8f, 0xd8, 0x3e, 0x84, 0xf2, 0xae, 0x1b, 0xd8, 0x08, + 0x4e, 0x1d, 0x5a, 0x6a, 0xc2, 0x57, 0x4d, 0x6b, 0x24, 0xdf, 0x3d, 0x72, 0x83, 0xc7, 0x72, 0x5a, + 0x9f, 0xe2, 0x14, 0xf5, 0x31, 0x7f, 0xd7, 0x60, 0x11, 0x9f, 0xc4, 0xbb, 0xeb, 0x26, 0x25, 0x7e, + 0x0c, 0x33, 0x68, 0x1c, 0x4e, 0x9f, 0x87, 0xd8, 0x80, 0x17, 0x59, 0x8e, 0x7c, 0xfc, 0xad, 0x32, + 0x55, 0x91, 0x53, 0x9b, 0x29, 0x8b, 0xfc, 0xb5, 0x06, 0x4b, 0x09, 0x71, 0xb5, 0xc6, 0xfc, 0x9b, + 0x41, 0x8a, 0x69, 0x91, 0x55, 0x28, 0x4d, 0x46, 0xee, 0x7a, 0xfd, 0x9e, 0xbf, 0x5e, 0x4f, 0x98, + 0x5f, 0x69, 0xb0, 0x62, 0x91, 0x2e, 0x71, 0xc7, 0x84, 0xbf, 0x8d, 0x37, 0x87, 0x43, 0x4f, 0xde, + 0x6e, 0x6e, 0x50, 0x93, 0x0d, 0x28, 0xcb, 0x03, 0x82, 0x48, 0x12, 0xbf, 0xf4, 0x56, 0x93, 0x6a, + 0xf3, 0x97, 0x8d, 0x45, 0x6c, 0x96, 0x5c, 0xb4, 0xa4, 0x64, 0xfe, 0xa4, 0x81, 0xa1, 0x90, 0x3a, + 0xa0, 0x61, 0x97, 0x30, 0xf6, 0x8a, 0x97, 0x02, 0x92, 0x63, 0x23, 0x2f, 0x92, 0xd7, 0x1b, 0x29, + 0x29, 0xa4, 0x0b, 0x19, 0xd2, 0x3f, 0x6a, 0x00, 0xe2, 0x16, 0x82, 0x73, 0xb3, 0x0e, 0x65, 0xbc, + 0xbe, 0xa1, 0x6f, 0x41, 0xf5, 0x4e, 0xc6, 0x77, 0x9a, 0x90, 0x44, 0x4f, 0x9c, 0x8d, 0xd7, 0x9a, + 0x5c, 0x7c, 0x36, 0x97, 0xce, 0x5d, 0x01, 0xf3, 0x13, 0x57, 0xc0, 0x77, 0x63, 0xd7, 0xe8, 0xad, + 0x70, 0x99, 0x37, 0x45, 0xd1, 0x1c, 0xc0, 0x2d, 0x21, 0x29, 0xc9, 0xe6, 0xf7, 0x87, 0x4d, 0x47, + 0x7c, 0xdf, 0x68, 0xe8, 0x28, 0x16, 0xf9, 0xdd, 0x79, 0xd3, 0x71, 0x3a, 0xe1, 0x88, 0x76, 0x93, + 0xbb, 0x73, 0x02, 0x70, 0x8e, 0x9b, 0x8e, 0xf3, 0x59, 0x48, 0x1d, 0x37, 0xe8, 0xcb, 0x82, 0x2a, + 0x88, 0xf9, 0x97, 0x06, 0x2b, 0x13, 0xde, 0x36, 0x1d, 0x47, 0x96, 0x75, 0x3d, 0x29, 0x94, 0x76, + 0x75, 0x0f, 0xa5, 0x8b, 0xbb, 0xa2, 0x1c, 0x26, 0x4b, 0x7c, 0x3f, 0x63, 0x39, 0xe1, 0xd2, 0x52, + 0x4d, 0xf4, 0xf7, 0x60, 0xb6, 0x3d, 0xcc, 0x2c, 0xfe, 0x4b, 0x1d, 0x27, 0xca, 0x53, 0x2e, 0x83, + 0x5f, 0x35, 0xb8, 0x3f, 0xc1, 0x20, 0xdb, 0xcf, 0x37, 0x0a, 0x5c, 0xa5, 0x9d, 0xbb, 0x0e, 0x6d, + 0xfc, 0x5b, 0x41, 0xed, 0x6a, 0x21, 0x4d, 0x19, 0xce, 0x09, 0x2c, 0xc8, 0x68, 0x92, 0xba, 0x3d, + 0x84, 0x92, 0x80, 0x24, 0xfd, 0xbb, 0x17, 0x64, 0x5f, 0x50, 0x17, 0xcf, 0x93, 0x9e, 0x72, 0x17, + 0x79, 0xfa, 0x3c, 0x6e, 0xcd, 0x06, 0xf1, 0x48, 0xf4, 0x72, 0x7d, 0x7d, 0xa3, 0x41, 0x79, 0xcb, + 0xb3, 0xbb, 0x03, 0x1c, 0xdc, 0x8d, 0xc9, 0xc1, 0xbd, 0x7c, 0x9f, 0xa5, 0xe3, 0x7b, 0xd5, 0x98, + 0x6e, 0x48, 0x3f, 0xca, 0x94, 0x5e, 0x7e, 0x74, 0xa2, 0x6d, 0x3a, 0x30, 0x8f, 0x42, 0x9a, 0xf8, + 0x07, 0x50, 0x44, 0xe4, 0xc2, 0x3d, 0x98, 0x84, 0x63, 0x09, 0xa5, 0x29, 0x33, 0xd1, 0x83, 0x45, + 0x54, 0x57, 0x93, 0xfe, 0x32, 0xfc, 0x7c, 0xab, 0xc1, 0x9d, 0xb4, 0x5c, 0xea, 0x4b, 0xf2, 0xda, + 0x25, 0x5e, 0x3f, 0xb7, 0xe0, 0xa7, 0x1a, 0x9f, 0xe9, 0xee, 0xde, 0x3f, 0x68, 0x70, 0xbb, 0x43, + 0xbc, 0x1e, 0x37, 0x3d, 0x1a, 0x3a, 0xc9, 0x9d, 0x65, 0x03, 0xaa, 0x1c, 0x8e, 0x4f, 0xbd, 0x7c, + 0xbb, 0x67, 0x54, 0x5f, 0x22, 0xdb, 0xe3, 0x12, 0xfe, 0xe1, 0xbd, 0xfe, 0x6f, 0x00, 0x00, 0x00, + 0xff, 0xff, 0x86, 0x83, 0x68, 0xe9, 0x03, 0x17, 0x00, 0x00, } diff --git a/pkg/proto/sdk_ws/ws.proto b/pkg/proto/sdk_ws/ws.proto index 8d6713f75..8ee089fb6 100644 --- a/pkg/proto/sdk_ws/ws.proto +++ b/pkg/proto/sdk_ws/ws.proto @@ -1,16 +1,34 @@ syntax = "proto3"; package open_im_sdk;//The package name to which the proto file belongs -option go_package = "./sdk_ws;open_im_sdk";//The generated go pb file is in the current directory, and the package name is open_im_sdk +//option go_package = "./sdk_ws;open_im_sdk";//The generated go pb file is in the current directory, and the package name is open_im_sdk message PullMessageBySeqListResp { - int64 MaxSeq = 1; - int64 MinSeq = 2; - repeated GatherFormat SingleUserMsg = 3; - repeated GatherFormat GroupUserMsg = 4; + int32 errCode = 1; + string errMsg = 2; + int64 maxSeq = 3; + int64 minSeq = 4; + repeated GatherFormat singleUserMsg = 5; + repeated GatherFormat groupUserMsg = 6; } message PullMessageBySeqListReq{ - repeated int64 seqList =1; + string userID = 1; + string operationID = 2; + repeated int64 seqList =3; +} +message PullMessageReq { + string userID = 1; + int64 seqBegin = 2; + int64 seqEnd = 3; + string operationID = 4; +} +message PullMessageResp { + int32 errCode = 1; + string errMsg = 2; + int64 maxSeq = 3; + int64 minSeq = 4; + repeated GatherFormat singleUserMsg = 5; + repeated GatherFormat groupUserMsg = 6; } message GetMaxAndMinSeqReq { } @@ -20,50 +38,37 @@ message GetMaxAndMinSeqResp { } message GatherFormat{ // @inject_tag: json:"id" - string ID = 1; + string id = 1; // @inject_tag: json:"list" - repeated MsgFormat List = 2;//detail msg -} -message MsgFormat{ - // @inject_tag: json:"sendID" - string SendID = 1; - // @inject_tag: json:"recvID" - string RecvID = 2; - // @inject_tag: json:"msgFrom" - int32 MsgFrom = 3; - // @inject_tag: json:"contentType" - int32 ContentType = 4; - // @inject_tag: json:"serverMsgID" - string ServerMsgID = 5; - // @inject_tag: json:"content" - string Content = 6; - // @inject_tag: json:"seq" - int64 Seq = 7; - // @inject_tag: json:"sendTime" - int64 SendTime = 8; - // @inject_tag: json:"senderPlatformID" - int32 SenderPlatformID = 9; - // @inject_tag: json:"senderNickName" - string SenderNickName = 10; - // @inject_tag: json:"senderFaceUrl" - string SenderFaceURL = 11; - // @inject_tag: json:"clientMsgID" - string ClientMsgID = 12; -} - -message UserSendMsgReq { - map Options= 1; - string SenderNickName = 2; - string SenderFaceURL = 3; - int32 PlatformID = 4; - int32 SessionType = 5; - int32 MsgFrom = 6; - int32 ContentType = 7; - string RecvID = 8; - repeated string ForceList = 9; - string Content = 10; - string ClientMsgID = 11; -} + repeated MsgData list = 2;//detail msg +} +//message MsgFormat{ +// // @inject_tag: json:"sendID" +// string SendID = 1; +// // @inject_tag: json:"recvID" +// string RecvID = 2; +// // @inject_tag: json:"msgFrom" +// int32 MsgFrom = 3; +// // @inject_tag: json:"contentType" +// int32 ContentType = 4; +// // @inject_tag: json:"serverMsgID" +// string ServerMsgID = 5; +// // @inject_tag: json:"content" +// string Content = 6; +// // @inject_tag: json:"seq" +// int64 Seq = 7; +// // @inject_tag: json:"sendTime" +// int64 SendTime = 8; +// // @inject_tag: json:"senderPlatformID" +// int32 SenderPlatformID = 9; +// // @inject_tag: json:"senderNickName" +// string SenderNickName = 10; +// // @inject_tag: json:"senderFaceUrl" +// string SenderFaceURL = 11; +// // @inject_tag: json:"clientMsgID" +// string ClientMsgID = 12; +//} + message UserSendMsgResp { string ServerMsgID = 1; diff --git a/pkg/utils/map.go b/pkg/utils/map.go index 4b8f9fa8d..05712fe64 100644 --- a/pkg/utils/map.go +++ b/pkg/utils/map.go @@ -115,12 +115,12 @@ func JsonStringToMap(str string) (tempMap map[string]int32) { _ = json.Unmarshal([]byte(str), &tempMap) return tempMap } -func GetSwitchFromOptions(Options map[string]int32, key string) (result bool) { - if flag, ok := Options[key]; !ok || flag == 1 { +func GetSwitchFromOptions(Options map[string]bool, key string) (result bool) { + if flag, ok := Options[key]; !ok || flag { return true } return false } -func SetSwitchFromOptions(Options map[string]int32, key string, value int32) { +func SetSwitchFromOptions(Options map[string]bool, key string, value bool) { Options[key] = value } From 743715fa7387931d0f9aeeb5ebf1735c9f30577a Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Thu, 23 Dec 2021 17:35:07 +0800 Subject: [PATCH 233/814] send msg file modify --- pkg/proto/chat/chat.pb.go | 156 +++++++++++++++++++------------------- 1 file changed, 78 insertions(+), 78 deletions(-) diff --git a/pkg/proto/chat/chat.pb.go b/pkg/proto/chat/chat.pb.go index 63c35ae18..59bf6cefd 100644 --- a/pkg/proto/chat/chat.pb.go +++ b/pkg/proto/chat/chat.pb.go @@ -37,7 +37,7 @@ func (m *MsgDataToMQ) Reset() { *m = MsgDataToMQ{} } func (m *MsgDataToMQ) String() string { return proto.CompactTextString(m) } func (*MsgDataToMQ) ProtoMessage() {} func (*MsgDataToMQ) Descriptor() ([]byte, []int) { - return fileDescriptor_chat_e46047b47969b559, []int{0} + return fileDescriptor_chat_d22d2bd62db4e275, []int{0} } func (m *MsgDataToMQ) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MsgDataToMQ.Unmarshal(m, b) @@ -80,6 +80,7 @@ func (m *MsgDataToMQ) GetMsgData() *sdk_ws.MsgData { type MsgDataToDB struct { MsgData *sdk_ws.MsgData `protobuf:"bytes,1,opt,name=msgData" json:"msgData,omitempty"` + OperationID string `protobuf:"bytes,2,opt,name=operationID" json:"operationID,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -89,7 +90,7 @@ func (m *MsgDataToDB) Reset() { *m = MsgDataToDB{} } func (m *MsgDataToDB) String() string { return proto.CompactTextString(m) } func (*MsgDataToDB) ProtoMessage() {} func (*MsgDataToDB) Descriptor() ([]byte, []int) { - return fileDescriptor_chat_e46047b47969b559, []int{1} + return fileDescriptor_chat_d22d2bd62db4e275, []int{1} } func (m *MsgDataToDB) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MsgDataToDB.Unmarshal(m, b) @@ -116,6 +117,13 @@ func (m *MsgDataToDB) GetMsgData() *sdk_ws.MsgData { return nil } +func (m *MsgDataToDB) GetOperationID() string { + if m != nil { + return m.OperationID + } + return "" +} + type PushMsgDataToMQ struct { OperationID string `protobuf:"bytes,1,opt,name=OperationID" json:"OperationID,omitempty"` MsgData *sdk_ws.MsgData `protobuf:"bytes,2,opt,name=msgData" json:"msgData,omitempty"` @@ -128,7 +136,7 @@ func (m *PushMsgDataToMQ) Reset() { *m = PushMsgDataToMQ{} } func (m *PushMsgDataToMQ) String() string { return proto.CompactTextString(m) } func (*PushMsgDataToMQ) ProtoMessage() {} func (*PushMsgDataToMQ) Descriptor() ([]byte, []int) { - return fileDescriptor_chat_e46047b47969b559, []int{2} + return fileDescriptor_chat_d22d2bd62db4e275, []int{2} } func (m *PushMsgDataToMQ) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_PushMsgDataToMQ.Unmarshal(m, b) @@ -176,7 +184,7 @@ func (m *PullMessageReq) Reset() { *m = PullMessageReq{} } func (m *PullMessageReq) String() string { return proto.CompactTextString(m) } func (*PullMessageReq) ProtoMessage() {} func (*PullMessageReq) Descriptor() ([]byte, []int) { - return fileDescriptor_chat_e46047b47969b559, []int{3} + return fileDescriptor_chat_d22d2bd62db4e275, []int{3} } func (m *PullMessageReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_PullMessageReq.Unmarshal(m, b) @@ -240,7 +248,7 @@ func (m *PullMessageResp) Reset() { *m = PullMessageResp{} } func (m *PullMessageResp) String() string { return proto.CompactTextString(m) } func (*PullMessageResp) ProtoMessage() {} func (*PullMessageResp) Descriptor() ([]byte, []int) { - return fileDescriptor_chat_e46047b47969b559, []int{4} + return fileDescriptor_chat_d22d2bd62db4e275, []int{4} } func (m *PullMessageResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_PullMessageResp.Unmarshal(m, b) @@ -315,7 +323,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_chat_e46047b47969b559, []int{5} + return fileDescriptor_chat_d22d2bd62db4e275, []int{5} } func (m *PullMessageBySeqListReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_PullMessageBySeqListReq.Unmarshal(m, b) @@ -368,7 +376,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_chat_e46047b47969b559, []int{6} + return fileDescriptor_chat_d22d2bd62db4e275, []int{6} } func (m *GetMaxAndMinSeqReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetMaxAndMinSeqReq.Unmarshal(m, b) @@ -416,7 +424,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_chat_e46047b47969b559, []int{7} + return fileDescriptor_chat_d22d2bd62db4e275, []int{7} } func (m *GetMaxAndMinSeqResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetMaxAndMinSeqResp.Unmarshal(m, b) @@ -478,7 +486,7 @@ func (m *GatherFormat) Reset() { *m = GatherFormat{} } func (m *GatherFormat) String() string { return proto.CompactTextString(m) } func (*GatherFormat) ProtoMessage() {} func (*GatherFormat) Descriptor() ([]byte, []int) { - return fileDescriptor_chat_e46047b47969b559, []int{8} + return fileDescriptor_chat_d22d2bd62db4e275, []int{8} } func (m *GatherFormat) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GatherFormat.Unmarshal(m, b) @@ -546,7 +554,7 @@ func (m *MsgFormat) Reset() { *m = MsgFormat{} } func (m *MsgFormat) String() string { return proto.CompactTextString(m) } func (*MsgFormat) ProtoMessage() {} func (*MsgFormat) Descriptor() ([]byte, []int) { - return fileDescriptor_chat_e46047b47969b559, []int{9} + return fileDescriptor_chat_d22d2bd62db4e275, []int{9} } func (m *MsgFormat) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MsgFormat.Unmarshal(m, b) @@ -663,7 +671,7 @@ func (m *SendMsgReq) Reset() { *m = SendMsgReq{} } func (m *SendMsgReq) String() string { return proto.CompactTextString(m) } func (*SendMsgReq) ProtoMessage() {} func (*SendMsgReq) Descriptor() ([]byte, []int) { - return fileDescriptor_chat_e46047b47969b559, []int{10} + return fileDescriptor_chat_d22d2bd62db4e275, []int{10} } func (m *SendMsgReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SendMsgReq.Unmarshal(m, b) @@ -707,7 +715,6 @@ func (m *SendMsgReq) GetMsgData() *sdk_ws.MsgData { type SendMsgResp struct { ErrCode int32 `protobuf:"varint,1,opt,name=ErrCode" json:"ErrCode,omitempty"` ErrMsg string `protobuf:"bytes,2,opt,name=ErrMsg" json:"ErrMsg,omitempty"` - ReqIdentifier int32 `protobuf:"varint,3,opt,name=ReqIdentifier" json:"ReqIdentifier,omitempty"` ServerMsgID string `protobuf:"bytes,4,opt,name=ServerMsgID" json:"ServerMsgID,omitempty"` ClientMsgID string `protobuf:"bytes,5,opt,name=ClientMsgID" json:"ClientMsgID,omitempty"` SendTime int64 `protobuf:"varint,6,opt,name=sendTime" json:"sendTime,omitempty"` @@ -720,7 +727,7 @@ func (m *SendMsgResp) Reset() { *m = SendMsgResp{} } func (m *SendMsgResp) String() string { return proto.CompactTextString(m) } func (*SendMsgResp) ProtoMessage() {} func (*SendMsgResp) Descriptor() ([]byte, []int) { - return fileDescriptor_chat_e46047b47969b559, []int{11} + return fileDescriptor_chat_d22d2bd62db4e275, []int{11} } func (m *SendMsgResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SendMsgResp.Unmarshal(m, b) @@ -754,13 +761,6 @@ func (m *SendMsgResp) GetErrMsg() string { return "" } -func (m *SendMsgResp) GetReqIdentifier() int32 { - if m != nil { - return m.ReqIdentifier - } - return 0 -} - func (m *SendMsgResp) GetServerMsgID() string { if m != nil { return m.ServerMsgID @@ -810,7 +810,7 @@ const _ = grpc.SupportPackageIsVersion4 type ChatClient interface { GetMaxAndMinSeq(ctx context.Context, in *GetMaxAndMinSeqReq, opts ...grpc.CallOption) (*GetMaxAndMinSeqResp, error) PullMessage(ctx context.Context, in *PullMessageReq, opts ...grpc.CallOption) (*PullMessageResp, error) - PullMessageBySeqList(ctx context.Context, in *PullMessageBySeqListReq, opts ...grpc.CallOption) (*PullMessageResp, error) + PullMessageBySeqList(ctx context.Context, in *sdk_ws.PullMessageBySeqListReq, opts ...grpc.CallOption) (*sdk_ws.PullMessageBySeqListResp, error) SendMsg(ctx context.Context, in *SendMsgReq, opts ...grpc.CallOption) (*SendMsgResp, error) } @@ -840,8 +840,8 @@ func (c *chatClient) PullMessage(ctx context.Context, in *PullMessageReq, opts . return out, nil } -func (c *chatClient) PullMessageBySeqList(ctx context.Context, in *PullMessageBySeqListReq, opts ...grpc.CallOption) (*PullMessageResp, error) { - out := new(PullMessageResp) +func (c *chatClient) PullMessageBySeqList(ctx context.Context, in *sdk_ws.PullMessageBySeqListReq, opts ...grpc.CallOption) (*sdk_ws.PullMessageBySeqListResp, error) { + out := new(sdk_ws.PullMessageBySeqListResp) err := grpc.Invoke(ctx, "/pbChat.Chat/PullMessageBySeqList", in, out, c.cc, opts...) if err != nil { return nil, err @@ -863,7 +863,7 @@ func (c *chatClient) SendMsg(ctx context.Context, in *SendMsgReq, opts ...grpc.C type ChatServer interface { GetMaxAndMinSeq(context.Context, *GetMaxAndMinSeqReq) (*GetMaxAndMinSeqResp, error) PullMessage(context.Context, *PullMessageReq) (*PullMessageResp, error) - PullMessageBySeqList(context.Context, *PullMessageBySeqListReq) (*PullMessageResp, error) + PullMessageBySeqList(context.Context, *sdk_ws.PullMessageBySeqListReq) (*sdk_ws.PullMessageBySeqListResp, error) SendMsg(context.Context, *SendMsgReq) (*SendMsgResp, error) } @@ -908,7 +908,7 @@ func _Chat_PullMessage_Handler(srv interface{}, ctx context.Context, dec func(in } func _Chat_PullMessageBySeqList_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(PullMessageBySeqListReq) + in := new(sdk_ws.PullMessageBySeqListReq) if err := dec(in); err != nil { return nil, err } @@ -920,7 +920,7 @@ func _Chat_PullMessageBySeqList_Handler(srv interface{}, ctx context.Context, de FullMethod: "/pbChat.Chat/PullMessageBySeqList", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(ChatServer).PullMessageBySeqList(ctx, req.(*PullMessageBySeqListReq)) + return srv.(ChatServer).PullMessageBySeqList(ctx, req.(*sdk_ws.PullMessageBySeqListReq)) } return interceptor(ctx, in, info, handler) } @@ -968,56 +968,56 @@ var _Chat_serviceDesc = grpc.ServiceDesc{ Metadata: "chat/chat.proto", } -func init() { proto.RegisterFile("chat/chat.proto", fileDescriptor_chat_e46047b47969b559) } - -var fileDescriptor_chat_e46047b47969b559 = []byte{ - // 766 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0x56, 0xcd, 0x4e, 0xdb, 0x4a, - 0x14, 0x56, 0xec, 0x38, 0x81, 0x13, 0x42, 0xb8, 0x03, 0x02, 0x2b, 0x77, 0x71, 0x73, 0x2d, 0xee, - 0x15, 0xea, 0x22, 0x91, 0xe8, 0xa6, 0x6a, 0xd5, 0x4a, 0x0d, 0x09, 0x28, 0x15, 0x86, 0xd4, 0x81, - 0x4d, 0x37, 0xc8, 0xc4, 0x83, 0x63, 0x25, 0xfe, 0xc9, 0xcc, 0x84, 0x9f, 0x4d, 0x9f, 0xa3, 0x2f, - 0xd4, 0x87, 0xe9, 0x43, 0x54, 0xaa, 0x66, 0xc6, 0x0e, 0x93, 0x18, 0x10, 0x6a, 0x25, 0x36, 0x28, - 0xdf, 0x37, 0xe7, 0xf7, 0x3b, 0x67, 0xc6, 0x40, 0x6d, 0x38, 0x72, 0x59, 0x8b, 0xff, 0x69, 0x26, - 0x24, 0x66, 0x31, 0x2a, 0x25, 0x97, 0x07, 0x23, 0x97, 0xd5, 0xff, 0x3d, 0x4d, 0x70, 0x74, 0xd1, - 0xb3, 0x5b, 0xc9, 0xd8, 0x6f, 0x89, 0xa3, 0x16, 0xf5, 0xc6, 0x17, 0x37, 0xb4, 0x75, 0x43, 0xa5, - 0xa9, 0x35, 0x83, 0x8a, 0x4d, 0xfd, 0x8e, 0xcb, 0xdc, 0xb3, 0xd8, 0xfe, 0x8c, 0xb6, 0xc0, 0x60, - 0xf1, 0x18, 0x47, 0x66, 0xa1, 0x51, 0xd8, 0x5b, 0x75, 0x24, 0x40, 0x0d, 0xa8, 0xc4, 0x09, 0x26, - 0x2e, 0x0b, 0xe2, 0xa8, 0xd7, 0x31, 0x35, 0x71, 0xa6, 0x52, 0xa8, 0x09, 0xe5, 0x50, 0x86, 0x31, - 0xf5, 0x46, 0x61, 0xaf, 0xb2, 0xbf, 0xd5, 0x8c, 0x79, 0xee, 0x20, 0xbc, 0xa0, 0xde, 0xb8, 0x99, - 0xa6, 0x70, 0x32, 0x23, 0xeb, 0xbd, 0x92, 0xb6, 0xd3, 0x56, 0xdd, 0x0b, 0xcf, 0x71, 0x1f, 0x42, - 0xad, 0x3f, 0xa3, 0x23, 0xb5, 0xf2, 0x06, 0x54, 0x4e, 0x95, 0x1a, 0x65, 0xfd, 0x2a, 0xa5, 0x26, - 0xd1, 0x9e, 0x93, 0xe4, 0x2b, 0xac, 0xf7, 0x67, 0x93, 0x89, 0x8d, 0x29, 0x75, 0x7d, 0xec, 0xe0, - 0x29, 0xda, 0x86, 0xd2, 0x39, 0xc5, 0x64, 0x1e, 0x3e, 0x45, 0xa8, 0x0e, 0x2b, 0x03, 0x3c, 0x6d, - 0x63, 0x3f, 0x88, 0x44, 0x68, 0xdd, 0x99, 0x63, 0xee, 0x33, 0xc0, 0xd3, 0x6e, 0xe4, 0x09, 0x61, - 0x74, 0x27, 0x45, 0xcb, 0xf5, 0x16, 0x73, 0xf5, 0x5a, 0x3f, 0x0a, 0xbc, 0x4b, 0xa5, 0x00, 0x9a, - 0x20, 0x13, 0xca, 0x5d, 0x42, 0x0e, 0x62, 0x0f, 0x8b, 0x12, 0x0c, 0x27, 0x83, 0x3c, 0x4f, 0x97, - 0x10, 0x9b, 0xfa, 0xe9, 0x78, 0x52, 0xc4, 0x79, 0xdb, 0xbd, 0x1d, 0xe0, 0x69, 0x96, 0x5f, 0x22, - 0xc1, 0x07, 0x11, 0xe7, 0x8b, 0x29, 0x2f, 0x10, 0x7a, 0x0b, 0xd5, 0x41, 0x10, 0xf9, 0x13, 0xcc, - 0x7b, 0xe3, 0xe1, 0x8c, 0x86, 0x2e, 0xb4, 0x92, 0x3b, 0xd5, 0x3c, 0x72, 0xd9, 0x08, 0x93, 0xc3, - 0x98, 0x84, 0x2e, 0x73, 0x16, 0x4d, 0xd1, 0x1b, 0x58, 0x3b, 0x22, 0xf1, 0x2c, 0xc9, 0x5c, 0x4b, - 0x4f, 0xb8, 0x2e, 0x58, 0x5a, 0x21, 0xec, 0x28, 0xad, 0xb6, 0xef, 0x06, 0x78, 0x7a, 0x1c, 0x50, - 0xf6, 0x94, 0xe8, 0x4b, 0x02, 0x6a, 0xf9, 0x81, 0x9b, 0x50, 0xa6, 0x32, 0x8e, 0xa9, 0x37, 0xf4, - 0x3d, 0xdd, 0xc9, 0xa0, 0x75, 0x02, 0xe8, 0x08, 0x33, 0xdb, 0xbd, 0xfd, 0x18, 0x79, 0xb2, 0xef, - 0x3f, 0xca, 0x64, 0xdd, 0xc0, 0x66, 0x2e, 0xde, 0x4b, 0x4c, 0xcb, 0xea, 0xc2, 0x9a, 0xaa, 0x2a, - 0x5a, 0x07, 0x6d, 0x5e, 0xbe, 0xd6, 0xeb, 0xa0, 0xff, 0xa0, 0x28, 0xfa, 0xd7, 0xc4, 0x24, 0xfe, - 0xca, 0x26, 0x61, 0x53, 0x3f, 0x1d, 0x83, 0x38, 0xb6, 0x7e, 0x6a, 0xb0, 0x3a, 0xe7, 0xe4, 0xca, - 0x46, 0xde, 0xbd, 0x0e, 0x12, 0x71, 0xde, 0xc1, 0xc3, 0xeb, 0xb9, 0x04, 0x29, 0xe2, 0x6d, 0x72, - 0x67, 0x12, 0x87, 0xa2, 0x6a, 0xc3, 0xc9, 0x20, 0x57, 0xee, 0x20, 0x8e, 0x18, 0x8e, 0xd8, 0xd9, - 0x5d, 0x82, 0x45, 0xed, 0x86, 0xa3, 0x52, 0xdc, 0x62, 0x80, 0xc9, 0xb5, 0xd8, 0x82, 0x5e, 0xc7, - 0x34, 0xa4, 0xb6, 0x0a, 0xc5, 0xa3, 0xa7, 0x0e, 0x66, 0x49, 0x9c, 0x66, 0x10, 0x6d, 0x80, 0xce, - 0x15, 0x29, 0x0b, 0x45, 0xf8, 0x4f, 0x79, 0x11, 0x23, 0xef, 0x2c, 0x08, 0xb1, 0xb9, 0x92, 0x5d, - 0x44, 0x89, 0xd1, 0x2b, 0xd8, 0xe0, 0xbf, 0x31, 0xe9, 0x4f, 0x5c, 0x76, 0x15, 0x93, 0xb0, 0xd7, - 0x31, 0x57, 0x45, 0x41, 0x39, 0x1e, 0xfd, 0x0f, 0xeb, 0x92, 0x3b, 0x09, 0x86, 0xe3, 0x13, 0x37, - 0xc4, 0x26, 0x88, 0xd4, 0x4b, 0x2c, 0xda, 0x85, 0xaa, 0x64, 0x0e, 0xdd, 0x21, 0x3e, 0x77, 0x8e, - 0xcd, 0x8a, 0x30, 0x5b, 0x24, 0x85, 0x0a, 0x93, 0x00, 0x47, 0x4c, 0xf6, 0xb8, 0x26, 0x7b, 0x54, - 0x28, 0x8b, 0x01, 0x70, 0x17, 0x9b, 0xfa, 0x7c, 0x0f, 0x5f, 0xea, 0x11, 0xfe, 0x5e, 0xe0, 0xe2, - 0xa7, 0x69, 0x7f, 0x6b, 0x5d, 0x77, 0xa1, 0xea, 0xe0, 0x69, 0xcf, 0xc3, 0x11, 0x0b, 0xae, 0x02, - 0x4c, 0xd2, 0xf9, 0x2f, 0x92, 0xcb, 0x33, 0x2e, 0xe6, 0x67, 0xbc, 0xa4, 0x90, 0x91, 0x53, 0x88, - 0x4f, 0x96, 0x66, 0x93, 0x2d, 0xc9, 0xc9, 0x66, 0x78, 0xff, 0x9b, 0x06, 0x45, 0xbe, 0xd6, 0xe8, - 0x13, 0xd4, 0x96, 0xae, 0x21, 0xaa, 0xcf, 0x1f, 0x9f, 0xdc, 0x7d, 0xaf, 0xff, 0xfd, 0xe8, 0x19, - 0x4d, 0xd0, 0x07, 0xa8, 0x28, 0x2f, 0x12, 0xda, 0xce, 0x6c, 0x17, 0x3f, 0x09, 0xf5, 0x9d, 0x07, - 0x79, 0x9a, 0xa0, 0x3e, 0x6c, 0x3d, 0xf4, 0xa2, 0xa1, 0x7f, 0x1e, 0x70, 0x50, 0xdf, 0xbb, 0xc7, - 0x23, 0xee, 0x43, 0x39, 0x9d, 0x16, 0x42, 0x99, 0xcd, 0xfd, 0xd6, 0xd4, 0x37, 0x73, 0x1c, 0x4d, - 0xda, 0xb5, 0x2f, 0xd5, 0xa6, 0xf8, 0xcf, 0xe0, 0x9d, 0x3c, 0xbc, 0x2c, 0x89, 0xcf, 0xfe, 0xeb, - 0x5f, 0x01, 0x00, 0x00, 0xff, 0xff, 0x48, 0x7f, 0xf6, 0xd7, 0x34, 0x08, 0x00, 0x00, +func init() { proto.RegisterFile("chat/chat.proto", fileDescriptor_chat_d22d2bd62db4e275) } + +var fileDescriptor_chat_d22d2bd62db4e275 = []byte{ + // 754 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0x56, 0xcb, 0x4e, 0xdb, 0x40, + 0x14, 0x55, 0xec, 0x3c, 0xe0, 0x06, 0x08, 0x1d, 0x10, 0x58, 0xee, 0x26, 0xb5, 0xa0, 0x42, 0x5d, + 0x24, 0x12, 0xdd, 0x54, 0xad, 0x54, 0xa9, 0x21, 0x01, 0xa5, 0xc2, 0x40, 0x1d, 0xd8, 0x74, 0x13, + 0x99, 0x78, 0xea, 0x58, 0x89, 0x1f, 0x99, 0x99, 0xf0, 0xd8, 0xf4, 0x57, 0xfa, 0x01, 0xfd, 0xb2, + 0x7e, 0x44, 0xa5, 0x6a, 0x66, 0xec, 0x30, 0x89, 0x81, 0xa2, 0x56, 0x62, 0x13, 0xe5, 0x9c, 0xb9, + 0xcf, 0x73, 0xef, 0x8c, 0x0c, 0xb5, 0xc1, 0xd0, 0x65, 0x4d, 0xfe, 0xd3, 0x48, 0x48, 0xcc, 0x62, + 0x54, 0x4e, 0x2e, 0x0f, 0x86, 0x2e, 0x33, 0x5f, 0x9d, 0x26, 0x38, 0xea, 0x77, 0xed, 0x66, 0x32, + 0xf2, 0x9b, 0xe2, 0xa8, 0x49, 0xbd, 0x51, 0xff, 0x9a, 0x36, 0xaf, 0xa9, 0x34, 0xb5, 0xa6, 0x50, + 0xb5, 0xa9, 0xdf, 0x76, 0x99, 0x7b, 0x1e, 0xdb, 0x5f, 0xd0, 0x26, 0x94, 0x58, 0x3c, 0xc2, 0x91, + 0x51, 0xa8, 0x17, 0xf6, 0x96, 0x1d, 0x09, 0x50, 0x1d, 0xaa, 0x71, 0x82, 0x89, 0xcb, 0x82, 0x38, + 0xea, 0xb6, 0x0d, 0x4d, 0x9c, 0xa9, 0x14, 0x6a, 0x40, 0x25, 0x94, 0x61, 0x0c, 0xbd, 0x5e, 0xd8, + 0xab, 0xee, 0x6f, 0x36, 0x62, 0x9e, 0x3b, 0x08, 0xfb, 0xd4, 0x1b, 0x35, 0xd2, 0x14, 0x4e, 0x66, + 0x64, 0xf5, 0x95, 0xb4, 0xed, 0x96, 0xea, 0x5e, 0x78, 0x82, 0xfb, 0xdf, 0x0b, 0xb2, 0x06, 0x50, + 0x3b, 0x9b, 0xd2, 0xa1, 0xda, 0x5b, 0x1d, 0xaa, 0xa7, 0x8a, 0x93, 0xec, 0x50, 0xa5, 0xd4, 0x32, + 0xb4, 0xa7, 0x74, 0xf1, 0x1d, 0xd6, 0xce, 0xa6, 0xe3, 0xb1, 0x8d, 0x29, 0x75, 0x7d, 0xec, 0xe0, + 0x09, 0xda, 0x82, 0xf2, 0x05, 0xc5, 0x64, 0x16, 0x3e, 0x45, 0xc8, 0x84, 0xa5, 0x1e, 0x9e, 0xb4, + 0xb0, 0x1f, 0x44, 0x22, 0xb4, 0xee, 0xcc, 0x30, 0xf7, 0xe9, 0xe1, 0x49, 0x27, 0xf2, 0x84, 0x74, + 0xba, 0x93, 0xa2, 0xc5, 0x7a, 0x8b, 0xb9, 0x7a, 0xad, 0x5f, 0x05, 0xde, 0xa5, 0x52, 0x00, 0x4d, + 0x90, 0x01, 0x95, 0x0e, 0x21, 0x07, 0xb1, 0x87, 0x45, 0x09, 0x25, 0x27, 0x83, 0x3c, 0x4f, 0x87, + 0x10, 0x9b, 0xfa, 0xa9, 0x5e, 0x29, 0xe2, 0xbc, 0xed, 0xde, 0xf4, 0xf0, 0x24, 0xcb, 0x2f, 0x91, + 0xe0, 0x83, 0x88, 0xf3, 0xc5, 0x94, 0x17, 0x08, 0xbd, 0x87, 0xd5, 0x5e, 0x10, 0xf9, 0x63, 0xcc, + 0x7b, 0xe3, 0xe1, 0x4a, 0x75, 0x5d, 0x68, 0x25, 0xb7, 0xae, 0x71, 0xe4, 0xb2, 0x21, 0x26, 0x87, + 0x31, 0x09, 0x5d, 0xe6, 0xcc, 0x9b, 0xa2, 0x77, 0xb0, 0x72, 0x44, 0xe2, 0x69, 0x92, 0xb9, 0x96, + 0x1f, 0x71, 0x9d, 0xb3, 0xb4, 0x42, 0xd8, 0x56, 0x5a, 0x6d, 0xdd, 0xf6, 0xf0, 0xe4, 0x38, 0xa0, + 0xec, 0x31, 0xd1, 0x17, 0x04, 0xd4, 0xf2, 0x03, 0x37, 0xa0, 0x42, 0x65, 0x1c, 0x43, 0xaf, 0xeb, + 0x7b, 0xba, 0x93, 0x41, 0xeb, 0x04, 0xd0, 0x11, 0x66, 0xb6, 0x7b, 0xf3, 0x29, 0xf2, 0x64, 0xdf, + 0xff, 0x95, 0xc9, 0xba, 0x86, 0x8d, 0x5c, 0xbc, 0xe7, 0x98, 0x96, 0xd5, 0x81, 0x15, 0x55, 0x55, + 0xb4, 0x06, 0xda, 0xac, 0x7c, 0xad, 0xdb, 0x46, 0xbb, 0x50, 0x14, 0xfd, 0x6b, 0x62, 0x12, 0x2f, + 0xb2, 0x49, 0xd8, 0xd4, 0x4f, 0xc7, 0x20, 0x8e, 0xad, 0xdf, 0x1a, 0x2c, 0xcf, 0x38, 0xb9, 0xb2, + 0x91, 0x77, 0xa7, 0x83, 0x44, 0x9c, 0x77, 0xf0, 0xe0, 0x6a, 0x26, 0x41, 0x8a, 0x78, 0x9b, 0xdc, + 0x99, 0xc4, 0xa1, 0xa8, 0xba, 0xe4, 0x64, 0x90, 0x2b, 0x77, 0x10, 0x47, 0x0c, 0x47, 0xec, 0xfc, + 0x36, 0xc1, 0xa2, 0xf6, 0x92, 0xa3, 0x52, 0xdc, 0xa2, 0x87, 0xc9, 0x95, 0xd8, 0x82, 0x6e, 0xdb, + 0x28, 0x49, 0x6d, 0x15, 0x8a, 0x47, 0x4f, 0x1d, 0x8c, 0xb2, 0x38, 0xcd, 0x20, 0x5a, 0x07, 0x9d, + 0x2b, 0x52, 0x11, 0x8a, 0xf0, 0xbf, 0xf2, 0x22, 0x46, 0xde, 0x79, 0x10, 0x62, 0x63, 0x29, 0xbb, + 0x88, 0x12, 0xa3, 0x37, 0xb0, 0xce, 0xff, 0x63, 0x72, 0x36, 0x76, 0xd9, 0xb7, 0x98, 0x84, 0xdd, + 0xb6, 0xb1, 0x2c, 0x0a, 0xca, 0xf1, 0xe8, 0x35, 0xac, 0x49, 0xee, 0x24, 0x18, 0x8c, 0x4e, 0xdc, + 0x10, 0x1b, 0x20, 0x52, 0x2f, 0xb0, 0x68, 0x07, 0x56, 0x25, 0x73, 0xe8, 0x0e, 0xf0, 0x85, 0x73, + 0x6c, 0x54, 0x85, 0xd9, 0x3c, 0x29, 0x54, 0x18, 0x07, 0x38, 0x62, 0xb2, 0xc7, 0x15, 0xd9, 0xa3, + 0x42, 0x59, 0x0c, 0x80, 0xbb, 0xd8, 0xd4, 0xe7, 0x7b, 0xf8, 0x5c, 0xcf, 0xf4, 0x8f, 0x02, 0x17, + 0x3f, 0x4d, 0xfb, 0x4f, 0xeb, 0xba, 0x30, 0xbd, 0x62, 0x7e, 0x7a, 0x0b, 0xbd, 0x97, 0x72, 0xbd, + 0xf3, 0x99, 0xd1, 0x6c, 0x66, 0x65, 0x39, 0xb3, 0x0c, 0xef, 0xff, 0xd4, 0xa0, 0xc8, 0x17, 0x16, + 0x7d, 0x86, 0xda, 0xc2, 0x05, 0x43, 0xe6, 0xec, 0x59, 0xc9, 0xdd, 0x64, 0xf3, 0xe5, 0x83, 0x67, + 0x34, 0x41, 0x1f, 0xa1, 0xaa, 0xbc, 0x35, 0x68, 0x2b, 0xb3, 0x9d, 0x7f, 0xec, 0xcd, 0xed, 0x7b, + 0x79, 0x9a, 0xa0, 0x01, 0x6c, 0xde, 0xf7, 0x56, 0xa1, 0x9d, 0x39, 0xb5, 0x1f, 0x78, 0xce, 0xcc, + 0xdd, 0x27, 0x58, 0xd1, 0x04, 0xed, 0x43, 0x25, 0x1d, 0x0d, 0x42, 0x59, 0x21, 0x77, 0x2b, 0x62, + 0x6e, 0xe4, 0x38, 0x9a, 0xb4, 0x6a, 0x5f, 0x57, 0x1b, 0xe2, 0x43, 0xe1, 0x83, 0x3c, 0xbc, 0x2c, + 0x8b, 0xaf, 0x80, 0xb7, 0x7f, 0x02, 0x00, 0x00, 0xff, 0xff, 0xcb, 0x2c, 0x3b, 0x8f, 0x43, 0x08, + 0x00, 0x00, } From 1be993801f73933c34b3ba5dd2220f4c1083dc6e Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Thu, 23 Dec 2021 17:48:06 +0800 Subject: [PATCH 234/814] send msg file modify --- internal/msg_gateway/gate/logic.go | 49 +- internal/rpc/msg/pull_message.go | 12 +- pkg/proto/chat/chat.pb.go | 525 +++---------------- pkg/proto/sdk_ws/ws.pb.go | 775 +++++++++++++---------------- 4 files changed, 470 insertions(+), 891 deletions(-) diff --git a/internal/msg_gateway/gate/logic.go b/internal/msg_gateway/gate/logic.go index 9838d0808..fce7448bd 100644 --- a/internal/msg_gateway/gate/logic.go +++ b/internal/msg_gateway/gate/logic.go @@ -102,10 +102,10 @@ func (ws *WServer) getSeqResp(conn *UserConn, m *Req, pb *pbChat.GetMaxAndMinSeq } func (ws *WServer) pullMsgReq(conn *UserConn, m *Req) { log.NewInfo(m.OperationID, "Ws call success to pullMsgReq", m.ReqIdentifier, m.MsgIncr, m.SendID) - nReply := new(pbChat.PullMessageResp) + nReply := new(sdk_ws.PullMessageResp) isPass, errCode, errMsg, data := ws.argsValidate(m, constant.WSPullMsg) if isPass { - pbData := pbChat.PullMessageReq{} + pbData := sdk_ws.PullMessageReq{} pbData.UserID = m.SendID pbData.OperationID = m.OperationID pbData.SeqBegin = data.(SeqData).SeqBegin @@ -129,7 +129,7 @@ func (ws *WServer) pullMsgReq(conn *UserConn, m *Req) { ws.pullMsgResp(conn, m, nReply) } } -func (ws *WServer) pullMsgResp(conn *UserConn, m *Req, pb *pbChat.PullMessageResp) { +func (ws *WServer) pullMsgResp(conn *UserConn, m *Req, pb *sdk_ws.PullMessageResp) { log.NewInfo(m.OperationID, "pullMsgResp come here ", pb.String()) var mReplyData sdk_ws.PullMessageBySeqListResp a, err := json.Marshal(pb.SingleUserMsg) @@ -168,11 +168,11 @@ func (ws *WServer) pullMsgResp(conn *UserConn, m *Req, pb *pbChat.PullMessageRes } func (ws *WServer) pullMsgBySeqListReq(conn *UserConn, m *Req) { log.NewInfo(m.OperationID, "Ws call success to pullMsgBySeqListReq start", m.SendID, m.ReqIdentifier, m.MsgIncr) - nReply := new(pbChat.PullMessageResp) + nReply := new(sdk_ws.PullMessageResp) isPass, errCode, errMsg, data := ws.argsValidate(m, constant.WSPullMsgBySeqList) log.NewInfo(m.OperationID, "Ws call success to pullMsgBySeqListReq middle", m.SendID, m.ReqIdentifier, m.MsgIncr, data.(sdk_ws.PullMessageBySeqListReq).SeqList) if isPass { - pbData := pbChat.PullMessageBySeqListReq{} + pbData := sdk_ws.PullMessageBySeqListReq{} pbData.SeqList = data.(sdk_ws.PullMessageBySeqListReq).SeqList pbData.UserID = m.SendID pbData.OperationID = m.OperationID @@ -186,7 +186,7 @@ func (ws *WServer) pullMsgBySeqListReq(conn *UserConn, m *Req) { ws.pullMsgResp(conn, m, nReply) } else { log.NewInfo(pbData.OperationID, "rpc call success to pullMsgBySeqListReq", reply.String(), reply.GetMaxSeq(), reply.GetMinSeq(), len(reply.GetSingleUserMsg()), len(reply.GetGroupUserMsg())) - ws.pullMsgResp(conn, m, reply) + ws.pullMsgBySeqListResp(conn, m, reply) } } else { nReply.ErrCode = errCode @@ -194,6 +194,43 @@ func (ws *WServer) pullMsgBySeqListReq(conn *UserConn, m *Req) { ws.pullMsgResp(conn, m, nReply) } } +func (ws *WServer) pullMsgBySeqListResp(conn *UserConn, m *Req, pb *sdk_ws.PullMessageBySeqListResp) { + log.NewInfo(m.OperationID, "pullMsgResp come here ", pb.String()) + var mReplyData sdk_ws.PullMessageBySeqListResp + a, err := json.Marshal(pb.SingleUserMsg) + if err != nil { + log.NewError(m.OperationID, "GetSingleUserMsg,json marshal,err", err.Error()) + } + log.NewInfo(m.OperationID, "pullMsgResp json is ", len(pb.SingleUserMsg)) + err = json.Unmarshal(a, &mReplyData.SingleUserMsg) + if err != nil { + log.NewError(m.OperationID, "SingleUserMsg,json Unmarshal,err", err.Error()) + } + b, err := json.Marshal(pb.GroupUserMsg) + if err != nil { + log.NewError(m.OperationID, "mReplyData,json marshal,err", err.Error()) + } + err = json.Unmarshal(b, &mReplyData.GroupUserMsg) + if err != nil { + log.NewError(m.OperationID, "test SingleUserMsg,json Unmarshal,err", err.Error()) + } + c, err := proto.Marshal(&mReplyData) + log.NewInfo(m.OperationID, "test info is ", len(mReplyData.SingleUserMsg), mReplyData.SingleUserMsg) + + mReply := Resp{ + ReqIdentifier: m.ReqIdentifier, + MsgIncr: m.MsgIncr, + ErrCode: pb.GetErrCode(), + ErrMsg: pb.GetErrMsg(), + OperationID: m.OperationID, + Data: c, + } + log.NewInfo(m.OperationID, "pullMsgResp all data is ", mReply.ReqIdentifier, mReply.MsgIncr, mReply.ErrCode, mReply.ErrMsg, + len(mReply.Data)) + + ws.sendMsg(conn, mReply) + +} func (ws *WServer) sendMsgReq(conn *UserConn, m *Req, sendTime int64) { log.NewInfo(m.OperationID, "Ws call success to sendMsgReq start", m.MsgIncr, m.ReqIdentifier, m.SendID, sendTime) nReply := new(pbChat.SendMsgResp) diff --git a/internal/rpc/msg/pull_message.go b/internal/rpc/msg/pull_message.go index dab729984..46d0ad78a 100644 --- a/internal/rpc/msg/pull_message.go +++ b/internal/rpc/msg/pull_message.go @@ -41,9 +41,9 @@ func (rpc *rpcChat) GetMaxAndMinSeq(_ context.Context, in *pbMsg.GetMaxAndMinSeq } return resp, nil } -func (rpc *rpcChat) PullMessage(_ context.Context, in *pbMsg.PullMessageReq) (*pbMsg.PullMessageResp, error) { +func (rpc *rpcChat) PullMessage(_ context.Context, in *open_im_sdk.PullMessageReq) (*open_im_sdk.PullMessageResp, error) { log.InfoByKv("rpc pullMessage is arriving", in.OperationID, "args", in.String()) - resp := new(pbMsg.PullMessageResp) + resp := new(open_im_sdk.PullMessageResp) var respSingleMsgFormat []*open_im_sdk.GatherFormat var respGroupMsgFormat []*open_im_sdk.GatherFormat SingleMsgFormat, GroupMsgFormat, MaxSeq, MinSeq, err := commonDB.DB.GetMsgBySeqRange(in.UserID, in.SeqBegin, in.SeqEnd) @@ -55,12 +55,12 @@ func (rpc *rpcChat) PullMessage(_ context.Context, in *pbMsg.PullMessageReq) (*p } respSingleMsgFormat = singleMsgHandleByUser(SingleMsgFormat, in.UserID) respGroupMsgFormat = groupMsgHandleByUser(GroupMsgFormat) - return &pbMsg.PullMessageResp{ + return &open_im_sdk.PullMessageResp{ ErrCode: 0, ErrMsg: "", MaxSeq: MaxSeq, MinSeq: MinSeq, - SingleUserMsg: []*pbMsg.GatherFormat(respSingleMsgFormat), + SingleUserMsg: respSingleMsgFormat, GroupUserMsg: respGroupMsgFormat, }, nil } @@ -108,7 +108,7 @@ func singleMsgHandleByUser(allMsg []*open_im_sdk.MsgData, ownerId string) []*ope //Return in pb format for user, msg := range m { tempUserMsg := new(open_im_sdk.GatherFormat) - tempUserMsg.ID = user + tempUserMsg.Id = user tempUserMsg.List = msg sort.Sort(msg) respMsgFormat = append(respMsgFormat, tempUserMsg) @@ -133,7 +133,7 @@ func groupMsgHandleByUser(allMsg []*open_im_sdk.MsgData) []*open_im_sdk.GatherFo //Return in pb format for groupID, msg := range m { tempUserMsg := new(open_im_sdk.GatherFormat) - tempUserMsg.ID = groupID + tempUserMsg.Id = groupID tempUserMsg.List = msg sort.Sort(msg) respMsgFormat = append(respMsgFormat, tempUserMsg) diff --git a/pkg/proto/chat/chat.pb.go b/pkg/proto/chat/chat.pb.go index 59bf6cefd..f404d783d 100644 --- a/pkg/proto/chat/chat.pb.go +++ b/pkg/proto/chat/chat.pb.go @@ -37,7 +37,7 @@ func (m *MsgDataToMQ) Reset() { *m = MsgDataToMQ{} } func (m *MsgDataToMQ) String() string { return proto.CompactTextString(m) } func (*MsgDataToMQ) ProtoMessage() {} func (*MsgDataToMQ) Descriptor() ([]byte, []int) { - return fileDescriptor_chat_d22d2bd62db4e275, []int{0} + return fileDescriptor_chat_6e4ec29226096c3a, []int{0} } func (m *MsgDataToMQ) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MsgDataToMQ.Unmarshal(m, b) @@ -90,7 +90,7 @@ func (m *MsgDataToDB) Reset() { *m = MsgDataToDB{} } func (m *MsgDataToDB) String() string { return proto.CompactTextString(m) } func (*MsgDataToDB) ProtoMessage() {} func (*MsgDataToDB) Descriptor() ([]byte, []int) { - return fileDescriptor_chat_d22d2bd62db4e275, []int{1} + return fileDescriptor_chat_6e4ec29226096c3a, []int{1} } func (m *MsgDataToDB) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MsgDataToDB.Unmarshal(m, b) @@ -136,7 +136,7 @@ func (m *PushMsgDataToMQ) Reset() { *m = PushMsgDataToMQ{} } func (m *PushMsgDataToMQ) String() string { return proto.CompactTextString(m) } func (*PushMsgDataToMQ) ProtoMessage() {} func (*PushMsgDataToMQ) Descriptor() ([]byte, []int) { - return fileDescriptor_chat_d22d2bd62db4e275, []int{2} + return fileDescriptor_chat_6e4ec29226096c3a, []int{2} } func (m *PushMsgDataToMQ) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_PushMsgDataToMQ.Unmarshal(m, b) @@ -170,200 +170,26 @@ func (m *PushMsgDataToMQ) GetMsgData() *sdk_ws.MsgData { return nil } -type PullMessageReq struct { - UserID string `protobuf:"bytes,1,opt,name=UserID" json:"UserID,omitempty"` - SeqBegin int64 `protobuf:"varint,2,opt,name=SeqBegin" json:"SeqBegin,omitempty"` - SeqEnd int64 `protobuf:"varint,3,opt,name=SeqEnd" json:"SeqEnd,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 *PullMessageReq) Reset() { *m = PullMessageReq{} } -func (m *PullMessageReq) String() string { return proto.CompactTextString(m) } -func (*PullMessageReq) ProtoMessage() {} -func (*PullMessageReq) Descriptor() ([]byte, []int) { - return fileDescriptor_chat_d22d2bd62db4e275, []int{3} -} -func (m *PullMessageReq) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_PullMessageReq.Unmarshal(m, b) -} -func (m *PullMessageReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_PullMessageReq.Marshal(b, m, deterministic) -} -func (dst *PullMessageReq) XXX_Merge(src proto.Message) { - xxx_messageInfo_PullMessageReq.Merge(dst, src) -} -func (m *PullMessageReq) XXX_Size() int { - return xxx_messageInfo_PullMessageReq.Size(m) -} -func (m *PullMessageReq) XXX_DiscardUnknown() { - xxx_messageInfo_PullMessageReq.DiscardUnknown(m) -} - -var xxx_messageInfo_PullMessageReq proto.InternalMessageInfo - -func (m *PullMessageReq) GetUserID() string { - if m != nil { - return m.UserID - } - return "" -} - -func (m *PullMessageReq) GetSeqBegin() int64 { - if m != nil { - return m.SeqBegin - } - return 0 -} - -func (m *PullMessageReq) GetSeqEnd() int64 { - if m != nil { - return m.SeqEnd - } - return 0 -} - -func (m *PullMessageReq) GetOperationID() string { - if m != nil { - return m.OperationID - } - return "" -} - -type PullMessageResp struct { - ErrCode int32 `protobuf:"varint,1,opt,name=ErrCode" json:"ErrCode,omitempty"` - ErrMsg string `protobuf:"bytes,2,opt,name=ErrMsg" json:"ErrMsg,omitempty"` - MaxSeq int64 `protobuf:"varint,3,opt,name=MaxSeq" json:"MaxSeq,omitempty"` - MinSeq int64 `protobuf:"varint,4,opt,name=MinSeq" json:"MinSeq,omitempty"` - SingleUserMsg []*GatherFormat `protobuf:"bytes,5,rep,name=SingleUserMsg" json:"SingleUserMsg,omitempty"` - GroupUserMsg []*GatherFormat `protobuf:"bytes,6,rep,name=GroupUserMsg" json:"GroupUserMsg,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *PullMessageResp) Reset() { *m = PullMessageResp{} } -func (m *PullMessageResp) String() string { return proto.CompactTextString(m) } -func (*PullMessageResp) ProtoMessage() {} -func (*PullMessageResp) Descriptor() ([]byte, []int) { - return fileDescriptor_chat_d22d2bd62db4e275, []int{4} -} -func (m *PullMessageResp) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_PullMessageResp.Unmarshal(m, b) -} -func (m *PullMessageResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_PullMessageResp.Marshal(b, m, deterministic) -} -func (dst *PullMessageResp) XXX_Merge(src proto.Message) { - xxx_messageInfo_PullMessageResp.Merge(dst, src) -} -func (m *PullMessageResp) XXX_Size() int { - return xxx_messageInfo_PullMessageResp.Size(m) -} -func (m *PullMessageResp) XXX_DiscardUnknown() { - xxx_messageInfo_PullMessageResp.DiscardUnknown(m) -} - -var xxx_messageInfo_PullMessageResp proto.InternalMessageInfo - -func (m *PullMessageResp) GetErrCode() int32 { - if m != nil { - return m.ErrCode - } - return 0 -} - -func (m *PullMessageResp) GetErrMsg() string { - if m != nil { - return m.ErrMsg - } - return "" -} - -func (m *PullMessageResp) GetMaxSeq() int64 { - if m != nil { - return m.MaxSeq - } - return 0 -} - -func (m *PullMessageResp) GetMinSeq() int64 { - if m != nil { - return m.MinSeq - } - return 0 -} - -func (m *PullMessageResp) GetSingleUserMsg() []*GatherFormat { - if m != nil { - return m.SingleUserMsg - } - return nil -} - -func (m *PullMessageResp) GetGroupUserMsg() []*GatherFormat { - if m != nil { - return m.GroupUserMsg - } - return nil -} - -type PullMessageBySeqListReq struct { - UserID string `protobuf:"bytes,1,opt,name=UserID" json:"UserID,omitempty"` - OperationID string `protobuf:"bytes,2,opt,name=OperationID" json:"OperationID,omitempty"` - SeqList []int64 `protobuf:"varint,3,rep,packed,name=seqList" json:"seqList,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -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_chat_d22d2bd62db4e275, []int{5} -} -func (m *PullMessageBySeqListReq) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_PullMessageBySeqListReq.Unmarshal(m, b) -} -func (m *PullMessageBySeqListReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_PullMessageBySeqListReq.Marshal(b, m, deterministic) -} -func (dst *PullMessageBySeqListReq) XXX_Merge(src proto.Message) { - xxx_messageInfo_PullMessageBySeqListReq.Merge(dst, src) -} -func (m *PullMessageBySeqListReq) XXX_Size() int { - return xxx_messageInfo_PullMessageBySeqListReq.Size(m) -} -func (m *PullMessageBySeqListReq) XXX_DiscardUnknown() { - xxx_messageInfo_PullMessageBySeqListReq.DiscardUnknown(m) -} - -var xxx_messageInfo_PullMessageBySeqListReq proto.InternalMessageInfo - -func (m *PullMessageBySeqListReq) GetUserID() string { - if m != nil { - return m.UserID - } - return "" -} - -func (m *PullMessageBySeqListReq) GetOperationID() string { - if m != nil { - return m.OperationID - } - return "" -} - -func (m *PullMessageBySeqListReq) GetSeqList() []int64 { - if m != nil { - return m.SeqList - } - return nil -} - +// message PullMessageReq { +// string UserID = 1; +// int64 SeqBegin = 2; +// int64 SeqEnd = 3; +// string OperationID = 4; +// } +// +// message PullMessageResp { +// int32 ErrCode = 1; +// string ErrMsg = 2; +// int64 MaxSeq = 3; +// int64 MinSeq = 4; +// repeated GatherFormat SingleUserMsg = 5; +// repeated GatherFormat GroupUserMsg = 6; +// } +// message PullMessageBySeqListReq{ +// string UserID = 1; +// string OperationID = 2; +// repeated int64 seqList =3; +// } type GetMaxAndMinSeqReq struct { UserID string `protobuf:"bytes,1,opt,name=UserID" json:"UserID,omitempty"` OperationID string `protobuf:"bytes,2,opt,name=OperationID" json:"OperationID,omitempty"` @@ -376,7 +202,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_chat_d22d2bd62db4e275, []int{6} + return fileDescriptor_chat_6e4ec29226096c3a, []int{3} } func (m *GetMaxAndMinSeqReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetMaxAndMinSeqReq.Unmarshal(m, b) @@ -424,7 +250,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_chat_d22d2bd62db4e275, []int{7} + return fileDescriptor_chat_6e4ec29226096c3a, []int{4} } func (m *GetMaxAndMinSeqResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetMaxAndMinSeqResp.Unmarshal(m, b) @@ -472,192 +298,6 @@ func (m *GetMaxAndMinSeqResp) GetMinSeq() int64 { return 0 } -type GatherFormat struct { - // @inject_tag: json:"id" - ID string `protobuf:"bytes,1,opt,name=ID" json:"id"` - // @inject_tag: json:"list" - List []*MsgFormat `protobuf:"bytes,2,rep,name=List" json:"list"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *GatherFormat) Reset() { *m = GatherFormat{} } -func (m *GatherFormat) String() string { return proto.CompactTextString(m) } -func (*GatherFormat) ProtoMessage() {} -func (*GatherFormat) Descriptor() ([]byte, []int) { - return fileDescriptor_chat_d22d2bd62db4e275, []int{8} -} -func (m *GatherFormat) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_GatherFormat.Unmarshal(m, b) -} -func (m *GatherFormat) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_GatherFormat.Marshal(b, m, deterministic) -} -func (dst *GatherFormat) XXX_Merge(src proto.Message) { - xxx_messageInfo_GatherFormat.Merge(dst, src) -} -func (m *GatherFormat) XXX_Size() int { - return xxx_messageInfo_GatherFormat.Size(m) -} -func (m *GatherFormat) XXX_DiscardUnknown() { - xxx_messageInfo_GatherFormat.DiscardUnknown(m) -} - -var xxx_messageInfo_GatherFormat proto.InternalMessageInfo - -func (m *GatherFormat) GetID() string { - if m != nil { - return m.ID - } - return "" -} - -func (m *GatherFormat) GetList() []*MsgFormat { - if m != nil { - return m.List - } - return nil -} - -type MsgFormat struct { - // @inject_tag: json:"sendID" - SendID string `protobuf:"bytes,1,opt,name=SendID" json:"sendID"` - // @inject_tag: json:"recvID" - RecvID string `protobuf:"bytes,2,opt,name=RecvID" json:"recvID"` - // @inject_tag: json:"msgFrom" - MsgFrom int32 `protobuf:"varint,3,opt,name=MsgFrom" json:"msgFrom"` - // @inject_tag: json:"contentType" - ContentType int32 `protobuf:"varint,4,opt,name=ContentType" json:"contentType"` - // @inject_tag: json:"serverMsgID" - ServerMsgID string `protobuf:"bytes,5,opt,name=ServerMsgID" json:"serverMsgID"` - // @inject_tag: json:"content" - Content string `protobuf:"bytes,6,opt,name=Content" json:"content"` - // @inject_tag: json:"seq" - Seq int64 `protobuf:"varint,7,opt,name=Seq" json:"seq"` - // @inject_tag: json:"sendTime" - SendTime int64 `protobuf:"varint,8,opt,name=SendTime" json:"sendTime"` - // @inject_tag: json:"senderPlatformID" - SenderPlatformID int32 `protobuf:"varint,9,opt,name=SenderPlatformID" json:"senderPlatformID"` - // @inject_tag: json:"senderNickName" - SenderNickName string `protobuf:"bytes,10,opt,name=SenderNickName" json:"senderNickName"` - // @inject_tag: json:"senderFaceUrl" - SenderFaceURL string `protobuf:"bytes,11,opt,name=SenderFaceURL" json:"senderFaceUrl"` - // @inject_tag: json:"clientMsgID" - ClientMsgID string `protobuf:"bytes,12,opt,name=ClientMsgID" json:"clientMsgID"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *MsgFormat) Reset() { *m = MsgFormat{} } -func (m *MsgFormat) String() string { return proto.CompactTextString(m) } -func (*MsgFormat) ProtoMessage() {} -func (*MsgFormat) Descriptor() ([]byte, []int) { - return fileDescriptor_chat_d22d2bd62db4e275, []int{9} -} -func (m *MsgFormat) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_MsgFormat.Unmarshal(m, b) -} -func (m *MsgFormat) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_MsgFormat.Marshal(b, m, deterministic) -} -func (dst *MsgFormat) XXX_Merge(src proto.Message) { - xxx_messageInfo_MsgFormat.Merge(dst, src) -} -func (m *MsgFormat) XXX_Size() int { - return xxx_messageInfo_MsgFormat.Size(m) -} -func (m *MsgFormat) XXX_DiscardUnknown() { - xxx_messageInfo_MsgFormat.DiscardUnknown(m) -} - -var xxx_messageInfo_MsgFormat proto.InternalMessageInfo - -func (m *MsgFormat) GetSendID() string { - if m != nil { - return m.SendID - } - return "" -} - -func (m *MsgFormat) GetRecvID() string { - if m != nil { - return m.RecvID - } - return "" -} - -func (m *MsgFormat) GetMsgFrom() int32 { - if m != nil { - return m.MsgFrom - } - return 0 -} - -func (m *MsgFormat) GetContentType() int32 { - if m != nil { - return m.ContentType - } - return 0 -} - -func (m *MsgFormat) GetServerMsgID() string { - if m != nil { - return m.ServerMsgID - } - return "" -} - -func (m *MsgFormat) GetContent() string { - if m != nil { - return m.Content - } - return "" -} - -func (m *MsgFormat) GetSeq() int64 { - if m != nil { - return m.Seq - } - return 0 -} - -func (m *MsgFormat) GetSendTime() int64 { - if m != nil { - return m.SendTime - } - return 0 -} - -func (m *MsgFormat) GetSenderPlatformID() int32 { - if m != nil { - return m.SenderPlatformID - } - return 0 -} - -func (m *MsgFormat) GetSenderNickName() string { - if m != nil { - return m.SenderNickName - } - return "" -} - -func (m *MsgFormat) GetSenderFaceURL() string { - if m != nil { - return m.SenderFaceURL - } - return "" -} - -func (m *MsgFormat) GetClientMsgID() string { - if m != nil { - return m.ClientMsgID - } - return "" -} - type SendMsgReq struct { Token string `protobuf:"bytes,1,opt,name=token" json:"token,omitempty"` OperationID string `protobuf:"bytes,2,opt,name=operationID" json:"operationID,omitempty"` @@ -671,7 +311,7 @@ func (m *SendMsgReq) Reset() { *m = SendMsgReq{} } func (m *SendMsgReq) String() string { return proto.CompactTextString(m) } func (*SendMsgReq) ProtoMessage() {} func (*SendMsgReq) Descriptor() ([]byte, []int) { - return fileDescriptor_chat_d22d2bd62db4e275, []int{10} + return fileDescriptor_chat_6e4ec29226096c3a, []int{5} } func (m *SendMsgReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SendMsgReq.Unmarshal(m, b) @@ -713,10 +353,10 @@ func (m *SendMsgReq) GetMsgData() *sdk_ws.MsgData { } type SendMsgResp struct { - ErrCode int32 `protobuf:"varint,1,opt,name=ErrCode" json:"ErrCode,omitempty"` - ErrMsg string `protobuf:"bytes,2,opt,name=ErrMsg" json:"ErrMsg,omitempty"` - ServerMsgID string `protobuf:"bytes,4,opt,name=ServerMsgID" json:"ServerMsgID,omitempty"` - ClientMsgID string `protobuf:"bytes,5,opt,name=ClientMsgID" json:"ClientMsgID,omitempty"` + ErrCode int32 `protobuf:"varint,1,opt,name=errCode" json:"errCode,omitempty"` + ErrMsg string `protobuf:"bytes,2,opt,name=errMsg" json:"errMsg,omitempty"` + ServerMsgID string `protobuf:"bytes,4,opt,name=serverMsgID" json:"serverMsgID,omitempty"` + ClientMsgID string `protobuf:"bytes,5,opt,name=clientMsgID" json:"clientMsgID,omitempty"` SendTime int64 `protobuf:"varint,6,opt,name=sendTime" json:"sendTime,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` @@ -727,7 +367,7 @@ func (m *SendMsgResp) Reset() { *m = SendMsgResp{} } func (m *SendMsgResp) String() string { return proto.CompactTextString(m) } func (*SendMsgResp) ProtoMessage() {} func (*SendMsgResp) Descriptor() ([]byte, []int) { - return fileDescriptor_chat_d22d2bd62db4e275, []int{11} + return fileDescriptor_chat_6e4ec29226096c3a, []int{6} } func (m *SendMsgResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SendMsgResp.Unmarshal(m, b) @@ -786,13 +426,8 @@ func init() { proto.RegisterType((*MsgDataToMQ)(nil), "pbChat.MsgDataToMQ") proto.RegisterType((*MsgDataToDB)(nil), "pbChat.MsgDataToDB") proto.RegisterType((*PushMsgDataToMQ)(nil), "pbChat.PushMsgDataToMQ") - proto.RegisterType((*PullMessageReq)(nil), "pbChat.PullMessageReq") - proto.RegisterType((*PullMessageResp)(nil), "pbChat.PullMessageResp") - proto.RegisterType((*PullMessageBySeqListReq)(nil), "pbChat.PullMessageBySeqListReq") proto.RegisterType((*GetMaxAndMinSeqReq)(nil), "pbChat.GetMaxAndMinSeqReq") proto.RegisterType((*GetMaxAndMinSeqResp)(nil), "pbChat.GetMaxAndMinSeqResp") - proto.RegisterType((*GatherFormat)(nil), "pbChat.GatherFormat") - proto.RegisterType((*MsgFormat)(nil), "pbChat.MsgFormat") proto.RegisterType((*SendMsgReq)(nil), "pbChat.SendMsgReq") proto.RegisterType((*SendMsgResp)(nil), "pbChat.SendMsgResp") } @@ -809,7 +444,7 @@ const _ = grpc.SupportPackageIsVersion4 type ChatClient interface { GetMaxAndMinSeq(ctx context.Context, in *GetMaxAndMinSeqReq, opts ...grpc.CallOption) (*GetMaxAndMinSeqResp, error) - PullMessage(ctx context.Context, in *PullMessageReq, opts ...grpc.CallOption) (*PullMessageResp, error) + PullMessage(ctx context.Context, in *sdk_ws.PullMessageReq, opts ...grpc.CallOption) (*sdk_ws.PullMessageResp, error) PullMessageBySeqList(ctx context.Context, in *sdk_ws.PullMessageBySeqListReq, opts ...grpc.CallOption) (*sdk_ws.PullMessageBySeqListResp, error) SendMsg(ctx context.Context, in *SendMsgReq, opts ...grpc.CallOption) (*SendMsgResp, error) } @@ -831,8 +466,8 @@ func (c *chatClient) GetMaxAndMinSeq(ctx context.Context, in *GetMaxAndMinSeqReq return out, nil } -func (c *chatClient) PullMessage(ctx context.Context, in *PullMessageReq, opts ...grpc.CallOption) (*PullMessageResp, error) { - out := new(PullMessageResp) +func (c *chatClient) PullMessage(ctx context.Context, in *sdk_ws.PullMessageReq, opts ...grpc.CallOption) (*sdk_ws.PullMessageResp, error) { + out := new(sdk_ws.PullMessageResp) err := grpc.Invoke(ctx, "/pbChat.Chat/PullMessage", in, out, c.cc, opts...) if err != nil { return nil, err @@ -862,7 +497,7 @@ func (c *chatClient) SendMsg(ctx context.Context, in *SendMsgReq, opts ...grpc.C type ChatServer interface { GetMaxAndMinSeq(context.Context, *GetMaxAndMinSeqReq) (*GetMaxAndMinSeqResp, error) - PullMessage(context.Context, *PullMessageReq) (*PullMessageResp, error) + PullMessage(context.Context, *sdk_ws.PullMessageReq) (*sdk_ws.PullMessageResp, error) PullMessageBySeqList(context.Context, *sdk_ws.PullMessageBySeqListReq) (*sdk_ws.PullMessageBySeqListResp, error) SendMsg(context.Context, *SendMsgReq) (*SendMsgResp, error) } @@ -890,7 +525,7 @@ func _Chat_GetMaxAndMinSeq_Handler(srv interface{}, ctx context.Context, dec fun } func _Chat_PullMessage_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(PullMessageReq) + in := new(sdk_ws.PullMessageReq) if err := dec(in); err != nil { return nil, err } @@ -902,7 +537,7 @@ func _Chat_PullMessage_Handler(srv interface{}, ctx context.Context, dec func(in FullMethod: "/pbChat.Chat/PullMessage", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(ChatServer).PullMessage(ctx, req.(*PullMessageReq)) + return srv.(ChatServer).PullMessage(ctx, req.(*sdk_ws.PullMessageReq)) } return interceptor(ctx, in, info, handler) } @@ -968,56 +603,38 @@ var _Chat_serviceDesc = grpc.ServiceDesc{ Metadata: "chat/chat.proto", } -func init() { proto.RegisterFile("chat/chat.proto", fileDescriptor_chat_d22d2bd62db4e275) } - -var fileDescriptor_chat_d22d2bd62db4e275 = []byte{ - // 754 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0x56, 0xcb, 0x4e, 0xdb, 0x40, - 0x14, 0x55, 0xec, 0x3c, 0xe0, 0x06, 0x08, 0x1d, 0x10, 0x58, 0xee, 0x26, 0xb5, 0xa0, 0x42, 0x5d, - 0x24, 0x12, 0xdd, 0x54, 0xad, 0x54, 0xa9, 0x21, 0x01, 0xa5, 0xc2, 0x40, 0x1d, 0xd8, 0x74, 0x13, - 0x99, 0x78, 0xea, 0x58, 0x89, 0x1f, 0x99, 0x99, 0xf0, 0xd8, 0xf4, 0x57, 0xfa, 0x01, 0xfd, 0xb2, - 0x7e, 0x44, 0xa5, 0x6a, 0x66, 0xec, 0x30, 0x89, 0x81, 0xa2, 0x56, 0x62, 0x13, 0xe5, 0x9c, 0xb9, - 0xcf, 0x73, 0xef, 0x8c, 0x0c, 0xb5, 0xc1, 0xd0, 0x65, 0x4d, 0xfe, 0xd3, 0x48, 0x48, 0xcc, 0x62, - 0x54, 0x4e, 0x2e, 0x0f, 0x86, 0x2e, 0x33, 0x5f, 0x9d, 0x26, 0x38, 0xea, 0x77, 0xed, 0x66, 0x32, - 0xf2, 0x9b, 0xe2, 0xa8, 0x49, 0xbd, 0x51, 0xff, 0x9a, 0x36, 0xaf, 0xa9, 0x34, 0xb5, 0xa6, 0x50, - 0xb5, 0xa9, 0xdf, 0x76, 0x99, 0x7b, 0x1e, 0xdb, 0x5f, 0xd0, 0x26, 0x94, 0x58, 0x3c, 0xc2, 0x91, - 0x51, 0xa8, 0x17, 0xf6, 0x96, 0x1d, 0x09, 0x50, 0x1d, 0xaa, 0x71, 0x82, 0x89, 0xcb, 0x82, 0x38, - 0xea, 0xb6, 0x0d, 0x4d, 0x9c, 0xa9, 0x14, 0x6a, 0x40, 0x25, 0x94, 0x61, 0x0c, 0xbd, 0x5e, 0xd8, - 0xab, 0xee, 0x6f, 0x36, 0x62, 0x9e, 0x3b, 0x08, 0xfb, 0xd4, 0x1b, 0x35, 0xd2, 0x14, 0x4e, 0x66, - 0x64, 0xf5, 0x95, 0xb4, 0xed, 0x96, 0xea, 0x5e, 0x78, 0x82, 0xfb, 0xdf, 0x0b, 0xb2, 0x06, 0x50, - 0x3b, 0x9b, 0xd2, 0xa1, 0xda, 0x5b, 0x1d, 0xaa, 0xa7, 0x8a, 0x93, 0xec, 0x50, 0xa5, 0xd4, 0x32, - 0xb4, 0xa7, 0x74, 0xf1, 0x1d, 0xd6, 0xce, 0xa6, 0xe3, 0xb1, 0x8d, 0x29, 0x75, 0x7d, 0xec, 0xe0, - 0x09, 0xda, 0x82, 0xf2, 0x05, 0xc5, 0x64, 0x16, 0x3e, 0x45, 0xc8, 0x84, 0xa5, 0x1e, 0x9e, 0xb4, - 0xb0, 0x1f, 0x44, 0x22, 0xb4, 0xee, 0xcc, 0x30, 0xf7, 0xe9, 0xe1, 0x49, 0x27, 0xf2, 0x84, 0x74, - 0xba, 0x93, 0xa2, 0xc5, 0x7a, 0x8b, 0xb9, 0x7a, 0xad, 0x5f, 0x05, 0xde, 0xa5, 0x52, 0x00, 0x4d, - 0x90, 0x01, 0x95, 0x0e, 0x21, 0x07, 0xb1, 0x87, 0x45, 0x09, 0x25, 0x27, 0x83, 0x3c, 0x4f, 0x87, - 0x10, 0x9b, 0xfa, 0xa9, 0x5e, 0x29, 0xe2, 0xbc, 0xed, 0xde, 0xf4, 0xf0, 0x24, 0xcb, 0x2f, 0x91, - 0xe0, 0x83, 0x88, 0xf3, 0xc5, 0x94, 0x17, 0x08, 0xbd, 0x87, 0xd5, 0x5e, 0x10, 0xf9, 0x63, 0xcc, - 0x7b, 0xe3, 0xe1, 0x4a, 0x75, 0x5d, 0x68, 0x25, 0xb7, 0xae, 0x71, 0xe4, 0xb2, 0x21, 0x26, 0x87, - 0x31, 0x09, 0x5d, 0xe6, 0xcc, 0x9b, 0xa2, 0x77, 0xb0, 0x72, 0x44, 0xe2, 0x69, 0x92, 0xb9, 0x96, - 0x1f, 0x71, 0x9d, 0xb3, 0xb4, 0x42, 0xd8, 0x56, 0x5a, 0x6d, 0xdd, 0xf6, 0xf0, 0xe4, 0x38, 0xa0, - 0xec, 0x31, 0xd1, 0x17, 0x04, 0xd4, 0xf2, 0x03, 0x37, 0xa0, 0x42, 0x65, 0x1c, 0x43, 0xaf, 0xeb, - 0x7b, 0xba, 0x93, 0x41, 0xeb, 0x04, 0xd0, 0x11, 0x66, 0xb6, 0x7b, 0xf3, 0x29, 0xf2, 0x64, 0xdf, - 0xff, 0x95, 0xc9, 0xba, 0x86, 0x8d, 0x5c, 0xbc, 0xe7, 0x98, 0x96, 0xd5, 0x81, 0x15, 0x55, 0x55, - 0xb4, 0x06, 0xda, 0xac, 0x7c, 0xad, 0xdb, 0x46, 0xbb, 0x50, 0x14, 0xfd, 0x6b, 0x62, 0x12, 0x2f, - 0xb2, 0x49, 0xd8, 0xd4, 0x4f, 0xc7, 0x20, 0x8e, 0xad, 0xdf, 0x1a, 0x2c, 0xcf, 0x38, 0xb9, 0xb2, - 0x91, 0x77, 0xa7, 0x83, 0x44, 0x9c, 0x77, 0xf0, 0xe0, 0x6a, 0x26, 0x41, 0x8a, 0x78, 0x9b, 0xdc, - 0x99, 0xc4, 0xa1, 0xa8, 0xba, 0xe4, 0x64, 0x90, 0x2b, 0x77, 0x10, 0x47, 0x0c, 0x47, 0xec, 0xfc, - 0x36, 0xc1, 0xa2, 0xf6, 0x92, 0xa3, 0x52, 0xdc, 0xa2, 0x87, 0xc9, 0x95, 0xd8, 0x82, 0x6e, 0xdb, - 0x28, 0x49, 0x6d, 0x15, 0x8a, 0x47, 0x4f, 0x1d, 0x8c, 0xb2, 0x38, 0xcd, 0x20, 0x5a, 0x07, 0x9d, - 0x2b, 0x52, 0x11, 0x8a, 0xf0, 0xbf, 0xf2, 0x22, 0x46, 0xde, 0x79, 0x10, 0x62, 0x63, 0x29, 0xbb, - 0x88, 0x12, 0xa3, 0x37, 0xb0, 0xce, 0xff, 0x63, 0x72, 0x36, 0x76, 0xd9, 0xb7, 0x98, 0x84, 0xdd, - 0xb6, 0xb1, 0x2c, 0x0a, 0xca, 0xf1, 0xe8, 0x35, 0xac, 0x49, 0xee, 0x24, 0x18, 0x8c, 0x4e, 0xdc, - 0x10, 0x1b, 0x20, 0x52, 0x2f, 0xb0, 0x68, 0x07, 0x56, 0x25, 0x73, 0xe8, 0x0e, 0xf0, 0x85, 0x73, - 0x6c, 0x54, 0x85, 0xd9, 0x3c, 0x29, 0x54, 0x18, 0x07, 0x38, 0x62, 0xb2, 0xc7, 0x15, 0xd9, 0xa3, - 0x42, 0x59, 0x0c, 0x80, 0xbb, 0xd8, 0xd4, 0xe7, 0x7b, 0xf8, 0x5c, 0xcf, 0xf4, 0x8f, 0x02, 0x17, - 0x3f, 0x4d, 0xfb, 0x4f, 0xeb, 0xba, 0x30, 0xbd, 0x62, 0x7e, 0x7a, 0x0b, 0xbd, 0x97, 0x72, 0xbd, - 0xf3, 0x99, 0xd1, 0x6c, 0x66, 0x65, 0x39, 0xb3, 0x0c, 0xef, 0xff, 0xd4, 0xa0, 0xc8, 0x17, 0x16, - 0x7d, 0x86, 0xda, 0xc2, 0x05, 0x43, 0xe6, 0xec, 0x59, 0xc9, 0xdd, 0x64, 0xf3, 0xe5, 0x83, 0x67, - 0x34, 0x41, 0x1f, 0xa1, 0xaa, 0xbc, 0x35, 0x68, 0x2b, 0xb3, 0x9d, 0x7f, 0xec, 0xcd, 0xed, 0x7b, - 0x79, 0x9a, 0xa0, 0x01, 0x6c, 0xde, 0xf7, 0x56, 0xa1, 0x9d, 0x39, 0xb5, 0x1f, 0x78, 0xce, 0xcc, - 0xdd, 0x27, 0x58, 0xd1, 0x04, 0xed, 0x43, 0x25, 0x1d, 0x0d, 0x42, 0x59, 0x21, 0x77, 0x2b, 0x62, - 0x6e, 0xe4, 0x38, 0x9a, 0xb4, 0x6a, 0x5f, 0x57, 0x1b, 0xe2, 0x43, 0xe1, 0x83, 0x3c, 0xbc, 0x2c, - 0x8b, 0xaf, 0x80, 0xb7, 0x7f, 0x02, 0x00, 0x00, 0xff, 0xff, 0xcb, 0x2c, 0x3b, 0x8f, 0x43, 0x08, - 0x00, 0x00, +func init() { proto.RegisterFile("chat/chat.proto", fileDescriptor_chat_6e4ec29226096c3a) } + +var fileDescriptor_chat_6e4ec29226096c3a = []byte{ + // 477 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0x54, 0x4d, 0x6f, 0xda, 0x40, + 0x10, 0x15, 0x24, 0x40, 0x33, 0x56, 0x85, 0xb4, 0x41, 0x95, 0xe5, 0xf4, 0x40, 0xad, 0x56, 0xca, + 0xc9, 0x96, 0xe8, 0xb1, 0xa7, 0x12, 0xa2, 0x96, 0xaa, 0xdb, 0xa4, 0x26, 0xbd, 0xf4, 0x82, 0x1c, + 0x3c, 0x32, 0x16, 0x60, 0x2f, 0x9e, 0xa5, 0xa4, 0xbf, 0xa6, 0xbf, 0xa2, 0xff, 0xaf, 0xda, 0x5d, + 0x43, 0x96, 0x20, 0x54, 0x4e, 0xb9, 0x58, 0x7a, 0x6f, 0x66, 0xde, 0xdb, 0xe7, 0xfd, 0x80, 0xf6, + 0x64, 0x1a, 0xcb, 0x50, 0x7d, 0x02, 0x51, 0x16, 0xb2, 0x60, 0x4d, 0x71, 0x7f, 0x35, 0x8d, 0xa5, + 0xf7, 0xe6, 0x46, 0x60, 0x3e, 0x1e, 0xf2, 0x50, 0xcc, 0xd2, 0x50, 0x97, 0x42, 0x4a, 0x66, 0xe3, + 0x35, 0x85, 0x6b, 0x32, 0xad, 0xfe, 0x0a, 0x1c, 0x4e, 0xe9, 0x20, 0x96, 0xf1, 0x5d, 0xc1, 0xbf, + 0xb3, 0x0e, 0x34, 0x64, 0x31, 0xc3, 0xdc, 0xad, 0x75, 0x6b, 0x97, 0x67, 0x91, 0x01, 0xac, 0x0b, + 0x4e, 0x21, 0xb0, 0x8c, 0x65, 0x56, 0xe4, 0xc3, 0x81, 0x5b, 0xd7, 0x35, 0x9b, 0x62, 0x01, 0xb4, + 0x16, 0x46, 0xc6, 0x3d, 0xe9, 0xd6, 0x2e, 0x9d, 0x5e, 0x27, 0x28, 0x94, 0x77, 0xb6, 0x18, 0x53, + 0x32, 0x0b, 0x2a, 0x8b, 0x68, 0xd3, 0xe4, 0x8f, 0x2d, 0xdb, 0x41, 0xdf, 0x1e, 0xaf, 0x1d, 0x31, + 0xfe, 0xff, 0x05, 0xf9, 0x13, 0x68, 0xdf, 0xae, 0x68, 0x6a, 0x67, 0xeb, 0x82, 0x73, 0x63, 0x0d, + 0x99, 0x84, 0x36, 0x65, 0x2f, 0xa3, 0x7e, 0x4c, 0x8a, 0x6f, 0xc0, 0x3e, 0xa1, 0xe4, 0xf1, 0xc3, + 0xc7, 0x3c, 0xe1, 0x59, 0x3e, 0xc2, 0x65, 0x84, 0x4b, 0xf6, 0x0a, 0x9a, 0x3f, 0x08, 0xcb, 0xad, + 0x45, 0x85, 0x9e, 0xfa, 0xd7, 0xf7, 0xfc, 0xfd, 0x35, 0x9c, 0xef, 0xe9, 0x91, 0x60, 0x2e, 0xb4, + 0xae, 0xcb, 0xf2, 0xaa, 0x48, 0x50, 0x2b, 0x36, 0xa2, 0x0d, 0x54, 0x56, 0xd7, 0x65, 0xc9, 0x29, + 0xad, 0xd4, 0x2a, 0xa4, 0x78, 0x1e, 0x3f, 0x8c, 0x70, 0xa9, 0x77, 0xe3, 0x24, 0xaa, 0x90, 0xe6, + 0xb5, 0xae, 0x7b, 0x5a, 0xf1, 0x1a, 0xf9, 0x12, 0x60, 0x84, 0x79, 0xc2, 0x29, 0x55, 0x01, 0x9e, + 0xeb, 0x10, 0xfc, 0xa9, 0x81, 0xb3, 0xb5, 0x35, 0x39, 0x71, 0x37, 0x27, 0x3e, 0xe6, 0xc4, 0x9d, + 0x9c, 0x06, 0xa9, 0x35, 0x11, 0x96, 0xbf, 0x50, 0x81, 0xe1, 0x40, 0x87, 0x3a, 0x8b, 0x6c, 0x4a, + 0x75, 0x4c, 0xe6, 0x19, 0xe6, 0xd2, 0x74, 0x34, 0x4c, 0x87, 0x45, 0x31, 0x0f, 0x5e, 0x10, 0xe6, + 0xc9, 0x5d, 0xb6, 0x40, 0xb7, 0xa9, 0xff, 0xca, 0x16, 0xf7, 0xfe, 0xd6, 0xe1, 0x54, 0xdd, 0x24, + 0xf6, 0x05, 0xda, 0x4f, 0x76, 0x86, 0x79, 0x81, 0xb9, 0x65, 0xc1, 0xfe, 0x11, 0xf0, 0x2e, 0x0e, + 0xd6, 0x48, 0xb0, 0xcf, 0xe0, 0xdc, 0xae, 0xe6, 0x73, 0x8e, 0x44, 0x71, 0x8a, 0xec, 0x62, 0xe7, + 0x27, 0x59, 0x15, 0x25, 0xf4, 0xfa, 0x70, 0x91, 0x04, 0x9b, 0x40, 0xc7, 0xa2, 0xfa, 0xbf, 0x47, + 0xb8, 0xfc, 0x9a, 0x91, 0x64, 0x6f, 0x0f, 0x4d, 0x6d, 0x5b, 0x94, 0xf6, 0xbb, 0x23, 0xba, 0x48, + 0xb0, 0x1e, 0xb4, 0xaa, 0x4d, 0x62, 0x6c, 0x13, 0xeb, 0xf1, 0xb0, 0x78, 0xe7, 0x7b, 0x1c, 0x89, + 0x7e, 0xfb, 0xe7, 0xcb, 0x40, 0x3f, 0x48, 0x1f, 0x4c, 0xf1, 0xbe, 0xa9, 0x5f, 0x9b, 0xf7, 0xff, + 0x02, 0x00, 0x00, 0xff, 0xff, 0xb3, 0x57, 0x8f, 0x13, 0xab, 0x04, 0x00, 0x00, } diff --git a/pkg/proto/sdk_ws/ws.pb.go b/pkg/proto/sdk_ws/ws.pb.go index 4e7bd82bc..b65f2980c 100644 --- a/pkg/proto/sdk_ws/ws.pb.go +++ b/pkg/proto/sdk_ws/ws.pb.go @@ -19,10 +19,12 @@ var _ = math.Inf const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package type PullMessageBySeqListResp struct { - MaxSeq int64 `protobuf:"varint,1,opt,name=MaxSeq" json:"MaxSeq,omitempty"` - MinSeq int64 `protobuf:"varint,2,opt,name=MinSeq" json:"MinSeq,omitempty"` - SingleUserMsg []*GatherFormat `protobuf:"bytes,3,rep,name=SingleUserMsg" json:"SingleUserMsg,omitempty"` - GroupUserMsg []*GatherFormat `protobuf:"bytes,4,rep,name=GroupUserMsg" json:"GroupUserMsg,omitempty"` + ErrCode int32 `protobuf:"varint,1,opt,name=errCode" json:"errCode,omitempty"` + ErrMsg string `protobuf:"bytes,2,opt,name=errMsg" json:"errMsg,omitempty"` + MaxSeq int64 `protobuf:"varint,3,opt,name=maxSeq" json:"maxSeq,omitempty"` + MinSeq int64 `protobuf:"varint,4,opt,name=minSeq" json:"minSeq,omitempty"` + SingleUserMsg []*GatherFormat `protobuf:"bytes,5,rep,name=singleUserMsg" json:"singleUserMsg,omitempty"` + GroupUserMsg []*GatherFormat `protobuf:"bytes,6,rep,name=groupUserMsg" json:"groupUserMsg,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -32,7 +34,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_ca4877c90b77c1e9, []int{0} + return fileDescriptor_ws_9a3c519aa1c52df5, []int{0} } func (m *PullMessageBySeqListResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_PullMessageBySeqListResp.Unmarshal(m, b) @@ -52,6 +54,20 @@ func (m *PullMessageBySeqListResp) XXX_DiscardUnknown() { var xxx_messageInfo_PullMessageBySeqListResp proto.InternalMessageInfo +func (m *PullMessageBySeqListResp) GetErrCode() int32 { + if m != nil { + return m.ErrCode + } + return 0 +} + +func (m *PullMessageBySeqListResp) GetErrMsg() string { + if m != nil { + return m.ErrMsg + } + return "" +} + func (m *PullMessageBySeqListResp) GetMaxSeq() int64 { if m != nil { return m.MaxSeq @@ -81,7 +97,9 @@ func (m *PullMessageBySeqListResp) GetGroupUserMsg() []*GatherFormat { } type PullMessageBySeqListReq struct { - SeqList []int64 `protobuf:"varint,1,rep,packed,name=seqList" json:"seqList,omitempty"` + UserID string `protobuf:"bytes,1,opt,name=userID" json:"userID,omitempty"` + OperationID string `protobuf:"bytes,2,opt,name=operationID" json:"operationID,omitempty"` + SeqList []int64 `protobuf:"varint,3,rep,packed,name=seqList" json:"seqList,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -91,7 +109,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_ca4877c90b77c1e9, []int{1} + return fileDescriptor_ws_9a3c519aa1c52df5, []int{1} } func (m *PullMessageBySeqListReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_PullMessageBySeqListReq.Unmarshal(m, b) @@ -111,6 +129,20 @@ func (m *PullMessageBySeqListReq) XXX_DiscardUnknown() { var xxx_messageInfo_PullMessageBySeqListReq proto.InternalMessageInfo +func (m *PullMessageBySeqListReq) GetUserID() string { + if m != nil { + return m.UserID + } + return "" +} + +func (m *PullMessageBySeqListReq) GetOperationID() string { + if m != nil { + return m.OperationID + } + return "" +} + func (m *PullMessageBySeqListReq) GetSeqList() []int64 { if m != nil { return m.SeqList @@ -118,6 +150,146 @@ func (m *PullMessageBySeqListReq) GetSeqList() []int64 { return nil } +type PullMessageReq struct { + UserID string `protobuf:"bytes,1,opt,name=userID" json:"userID,omitempty"` + SeqBegin int64 `protobuf:"varint,2,opt,name=seqBegin" json:"seqBegin,omitempty"` + SeqEnd int64 `protobuf:"varint,3,opt,name=seqEnd" json:"seqEnd,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 *PullMessageReq) Reset() { *m = PullMessageReq{} } +func (m *PullMessageReq) String() string { return proto.CompactTextString(m) } +func (*PullMessageReq) ProtoMessage() {} +func (*PullMessageReq) Descriptor() ([]byte, []int) { + return fileDescriptor_ws_9a3c519aa1c52df5, []int{2} +} +func (m *PullMessageReq) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_PullMessageReq.Unmarshal(m, b) +} +func (m *PullMessageReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_PullMessageReq.Marshal(b, m, deterministic) +} +func (dst *PullMessageReq) XXX_Merge(src proto.Message) { + xxx_messageInfo_PullMessageReq.Merge(dst, src) +} +func (m *PullMessageReq) XXX_Size() int { + return xxx_messageInfo_PullMessageReq.Size(m) +} +func (m *PullMessageReq) XXX_DiscardUnknown() { + xxx_messageInfo_PullMessageReq.DiscardUnknown(m) +} + +var xxx_messageInfo_PullMessageReq proto.InternalMessageInfo + +func (m *PullMessageReq) GetUserID() string { + if m != nil { + return m.UserID + } + return "" +} + +func (m *PullMessageReq) GetSeqBegin() int64 { + if m != nil { + return m.SeqBegin + } + return 0 +} + +func (m *PullMessageReq) GetSeqEnd() int64 { + if m != nil { + return m.SeqEnd + } + return 0 +} + +func (m *PullMessageReq) GetOperationID() string { + if m != nil { + return m.OperationID + } + return "" +} + +type PullMessageResp struct { + ErrCode int32 `protobuf:"varint,1,opt,name=errCode" json:"errCode,omitempty"` + ErrMsg string `protobuf:"bytes,2,opt,name=errMsg" json:"errMsg,omitempty"` + MaxSeq int64 `protobuf:"varint,3,opt,name=maxSeq" json:"maxSeq,omitempty"` + MinSeq int64 `protobuf:"varint,4,opt,name=minSeq" json:"minSeq,omitempty"` + SingleUserMsg []*GatherFormat `protobuf:"bytes,5,rep,name=singleUserMsg" json:"singleUserMsg,omitempty"` + GroupUserMsg []*GatherFormat `protobuf:"bytes,6,rep,name=groupUserMsg" json:"groupUserMsg,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *PullMessageResp) Reset() { *m = PullMessageResp{} } +func (m *PullMessageResp) String() string { return proto.CompactTextString(m) } +func (*PullMessageResp) ProtoMessage() {} +func (*PullMessageResp) Descriptor() ([]byte, []int) { + return fileDescriptor_ws_9a3c519aa1c52df5, []int{3} +} +func (m *PullMessageResp) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_PullMessageResp.Unmarshal(m, b) +} +func (m *PullMessageResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_PullMessageResp.Marshal(b, m, deterministic) +} +func (dst *PullMessageResp) XXX_Merge(src proto.Message) { + xxx_messageInfo_PullMessageResp.Merge(dst, src) +} +func (m *PullMessageResp) XXX_Size() int { + return xxx_messageInfo_PullMessageResp.Size(m) +} +func (m *PullMessageResp) XXX_DiscardUnknown() { + xxx_messageInfo_PullMessageResp.DiscardUnknown(m) +} + +var xxx_messageInfo_PullMessageResp proto.InternalMessageInfo + +func (m *PullMessageResp) GetErrCode() int32 { + if m != nil { + return m.ErrCode + } + return 0 +} + +func (m *PullMessageResp) GetErrMsg() string { + if m != nil { + return m.ErrMsg + } + return "" +} + +func (m *PullMessageResp) GetMaxSeq() int64 { + if m != nil { + return m.MaxSeq + } + return 0 +} + +func (m *PullMessageResp) GetMinSeq() int64 { + if m != nil { + return m.MinSeq + } + return 0 +} + +func (m *PullMessageResp) GetSingleUserMsg() []*GatherFormat { + if m != nil { + return m.SingleUserMsg + } + return nil +} + +func (m *PullMessageResp) GetGroupUserMsg() []*GatherFormat { + if m != nil { + return m.GroupUserMsg + } + return nil +} + type GetMaxAndMinSeqReq struct { XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` @@ -128,7 +300,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_ca4877c90b77c1e9, []int{2} + return fileDescriptor_ws_9a3c519aa1c52df5, []int{4} } func (m *GetMaxAndMinSeqReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetMaxAndMinSeqReq.Unmarshal(m, b) @@ -160,7 +332,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_ca4877c90b77c1e9, []int{3} + return fileDescriptor_ws_9a3c519aa1c52df5, []int{5} } func (m *GetMaxAndMinSeqResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetMaxAndMinSeqResp.Unmarshal(m, b) @@ -196,19 +368,19 @@ func (m *GetMaxAndMinSeqResp) GetMinSeq() int64 { type GatherFormat struct { // @inject_tag: json:"id" - ID string `protobuf:"bytes,1,opt,name=ID" json:"id"` + Id string `protobuf:"bytes,1,opt,name=id" json:"id"` // @inject_tag: json:"list" - List []*MsgFormat `protobuf:"bytes,2,rep,name=List" json:"list"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + List []*MsgData `protobuf:"bytes,2,rep,name=list" json:"list"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } func (m *GatherFormat) Reset() { *m = GatherFormat{} } func (m *GatherFormat) String() string { return proto.CompactTextString(m) } func (*GatherFormat) ProtoMessage() {} func (*GatherFormat) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_ca4877c90b77c1e9, []int{4} + return fileDescriptor_ws_9a3c519aa1c52df5, []int{6} } func (m *GatherFormat) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GatherFormat.Unmarshal(m, b) @@ -228,276 +400,20 @@ func (m *GatherFormat) XXX_DiscardUnknown() { var xxx_messageInfo_GatherFormat proto.InternalMessageInfo -func (m *GatherFormat) GetID() string { +func (m *GatherFormat) GetId() string { if m != nil { - return m.ID + return m.Id } return "" } -func (m *GatherFormat) GetList() []*MsgFormat { +func (m *GatherFormat) GetList() []*MsgData { if m != nil { return m.List } return nil } -type MsgFormat struct { - // @inject_tag: json:"sendID" - SendID string `protobuf:"bytes,1,opt,name=SendID" json:"sendID"` - // @inject_tag: json:"recvID" - RecvID string `protobuf:"bytes,2,opt,name=RecvID" json:"recvID"` - // @inject_tag: json:"msgFrom" - MsgFrom int32 `protobuf:"varint,3,opt,name=MsgFrom" json:"msgFrom"` - // @inject_tag: json:"contentType" - ContentType int32 `protobuf:"varint,4,opt,name=ContentType" json:"contentType"` - // @inject_tag: json:"serverMsgID" - ServerMsgID string `protobuf:"bytes,5,opt,name=ServerMsgID" json:"serverMsgID"` - // @inject_tag: json:"content" - Content string `protobuf:"bytes,6,opt,name=Content" json:"content"` - // @inject_tag: json:"seq" - Seq int64 `protobuf:"varint,7,opt,name=Seq" json:"seq"` - // @inject_tag: json:"sendTime" - SendTime int64 `protobuf:"varint,8,opt,name=SendTime" json:"sendTime"` - // @inject_tag: json:"senderPlatformID" - SenderPlatformID int32 `protobuf:"varint,9,opt,name=SenderPlatformID" json:"senderPlatformID"` - // @inject_tag: json:"senderNickName" - SenderNickName string `protobuf:"bytes,10,opt,name=SenderNickName" json:"senderNickName"` - // @inject_tag: json:"senderFaceUrl" - SenderFaceURL string `protobuf:"bytes,11,opt,name=SenderFaceURL" json:"senderFaceUrl"` - // @inject_tag: json:"clientMsgID" - ClientMsgID string `protobuf:"bytes,12,opt,name=ClientMsgID" json:"clientMsgID"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *MsgFormat) Reset() { *m = MsgFormat{} } -func (m *MsgFormat) String() string { return proto.CompactTextString(m) } -func (*MsgFormat) ProtoMessage() {} -func (*MsgFormat) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_ca4877c90b77c1e9, []int{5} -} -func (m *MsgFormat) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_MsgFormat.Unmarshal(m, b) -} -func (m *MsgFormat) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_MsgFormat.Marshal(b, m, deterministic) -} -func (dst *MsgFormat) XXX_Merge(src proto.Message) { - xxx_messageInfo_MsgFormat.Merge(dst, src) -} -func (m *MsgFormat) XXX_Size() int { - return xxx_messageInfo_MsgFormat.Size(m) -} -func (m *MsgFormat) XXX_DiscardUnknown() { - xxx_messageInfo_MsgFormat.DiscardUnknown(m) -} - -var xxx_messageInfo_MsgFormat proto.InternalMessageInfo - -func (m *MsgFormat) GetSendID() string { - if m != nil { - return m.SendID - } - return "" -} - -func (m *MsgFormat) GetRecvID() string { - if m != nil { - return m.RecvID - } - return "" -} - -func (m *MsgFormat) GetMsgFrom() int32 { - if m != nil { - return m.MsgFrom - } - return 0 -} - -func (m *MsgFormat) GetContentType() int32 { - if m != nil { - return m.ContentType - } - return 0 -} - -func (m *MsgFormat) GetServerMsgID() string { - if m != nil { - return m.ServerMsgID - } - return "" -} - -func (m *MsgFormat) GetContent() string { - if m != nil { - return m.Content - } - return "" -} - -func (m *MsgFormat) GetSeq() int64 { - if m != nil { - return m.Seq - } - return 0 -} - -func (m *MsgFormat) GetSendTime() int64 { - if m != nil { - return m.SendTime - } - return 0 -} - -func (m *MsgFormat) GetSenderPlatformID() int32 { - if m != nil { - return m.SenderPlatformID - } - return 0 -} - -func (m *MsgFormat) GetSenderNickName() string { - if m != nil { - return m.SenderNickName - } - return "" -} - -func (m *MsgFormat) GetSenderFaceURL() string { - if m != nil { - return m.SenderFaceURL - } - return "" -} - -func (m *MsgFormat) GetClientMsgID() string { - if m != nil { - return m.ClientMsgID - } - return "" -} - -type UserSendMsgReq struct { - Options map[string]int32 `protobuf:"bytes,1,rep,name=Options" json:"Options,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` - SenderNickName string `protobuf:"bytes,2,opt,name=SenderNickName" json:"SenderNickName,omitempty"` - SenderFaceURL string `protobuf:"bytes,3,opt,name=SenderFaceURL" json:"SenderFaceURL,omitempty"` - PlatformID int32 `protobuf:"varint,4,opt,name=PlatformID" json:"PlatformID,omitempty"` - SessionType int32 `protobuf:"varint,5,opt,name=SessionType" json:"SessionType,omitempty"` - MsgFrom int32 `protobuf:"varint,6,opt,name=MsgFrom" json:"MsgFrom,omitempty"` - ContentType int32 `protobuf:"varint,7,opt,name=ContentType" json:"ContentType,omitempty"` - RecvID string `protobuf:"bytes,8,opt,name=RecvID" json:"RecvID,omitempty"` - ForceList []string `protobuf:"bytes,9,rep,name=ForceList" json:"ForceList,omitempty"` - Content string `protobuf:"bytes,10,opt,name=Content" json:"Content,omitempty"` - ClientMsgID string `protobuf:"bytes,11,opt,name=ClientMsgID" json:"ClientMsgID,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *UserSendMsgReq) Reset() { *m = UserSendMsgReq{} } -func (m *UserSendMsgReq) String() string { return proto.CompactTextString(m) } -func (*UserSendMsgReq) ProtoMessage() {} -func (*UserSendMsgReq) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_ca4877c90b77c1e9, []int{6} -} -func (m *UserSendMsgReq) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_UserSendMsgReq.Unmarshal(m, b) -} -func (m *UserSendMsgReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_UserSendMsgReq.Marshal(b, m, deterministic) -} -func (dst *UserSendMsgReq) XXX_Merge(src proto.Message) { - xxx_messageInfo_UserSendMsgReq.Merge(dst, src) -} -func (m *UserSendMsgReq) XXX_Size() int { - return xxx_messageInfo_UserSendMsgReq.Size(m) -} -func (m *UserSendMsgReq) XXX_DiscardUnknown() { - xxx_messageInfo_UserSendMsgReq.DiscardUnknown(m) -} - -var xxx_messageInfo_UserSendMsgReq proto.InternalMessageInfo - -func (m *UserSendMsgReq) GetOptions() map[string]int32 { - if m != nil { - return m.Options - } - return nil -} - -func (m *UserSendMsgReq) GetSenderNickName() string { - if m != nil { - return m.SenderNickName - } - return "" -} - -func (m *UserSendMsgReq) GetSenderFaceURL() string { - if m != nil { - return m.SenderFaceURL - } - return "" -} - -func (m *UserSendMsgReq) GetPlatformID() int32 { - if m != nil { - return m.PlatformID - } - return 0 -} - -func (m *UserSendMsgReq) GetSessionType() int32 { - if m != nil { - return m.SessionType - } - return 0 -} - -func (m *UserSendMsgReq) GetMsgFrom() int32 { - if m != nil { - return m.MsgFrom - } - return 0 -} - -func (m *UserSendMsgReq) GetContentType() int32 { - if m != nil { - return m.ContentType - } - return 0 -} - -func (m *UserSendMsgReq) GetRecvID() string { - if m != nil { - return m.RecvID - } - return "" -} - -func (m *UserSendMsgReq) GetForceList() []string { - if m != nil { - return m.ForceList - } - return nil -} - -func (m *UserSendMsgReq) GetContent() string { - if m != nil { - return m.Content - } - return "" -} - -func (m *UserSendMsgReq) GetClientMsgID() string { - if m != nil { - return m.ClientMsgID - } - return "" -} - type UserSendMsgResp struct { ServerMsgID string `protobuf:"bytes,1,opt,name=ServerMsgID" json:"ServerMsgID,omitempty"` ClientMsgID string `protobuf:"bytes,2,opt,name=ClientMsgID" json:"ClientMsgID,omitempty"` @@ -511,7 +427,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_ca4877c90b77c1e9, []int{7} + return fileDescriptor_ws_9a3c519aa1c52df5, []int{7} } func (m *UserSendMsgResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_UserSendMsgResp.Unmarshal(m, b) @@ -580,7 +496,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_ca4877c90b77c1e9, []int{8} + return fileDescriptor_ws_9a3c519aa1c52df5, []int{8} } func (m *MsgData) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MsgData.Unmarshal(m, b) @@ -741,7 +657,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_ca4877c90b77c1e9, []int{9} + return fileDescriptor_ws_9a3c519aa1c52df5, []int{9} } func (m *OfflinePushInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_OfflinePushInfo.Unmarshal(m, b) @@ -806,6 +722,7 @@ type GroupInfo struct { Owner *PublicUserInfo `protobuf:"bytes,6,opt,name=Owner" json:"Owner,omitempty"` CreateTime uint64 `protobuf:"varint,7,opt,name=CreateTime" json:"CreateTime,omitempty"` MemberCount uint32 `protobuf:"varint,8,opt,name=MemberCount" json:"MemberCount,omitempty"` + Ext string `protobuf:"bytes,9,opt,name=Ext" json:"Ext,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -815,7 +732,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_ca4877c90b77c1e9, []int{10} + return fileDescriptor_ws_9a3c519aa1c52df5, []int{10} } func (m *GroupInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupInfo.Unmarshal(m, b) @@ -891,6 +808,13 @@ func (m *GroupInfo) GetMemberCount() uint32 { return 0 } +func (m *GroupInfo) GetExt() string { + if m != nil { + return m.Ext + } + return "" +} + // private, Group members have permission to view type GroupMemberFullInfo struct { GroupID string `protobuf:"bytes,1,opt,name=GroupID" json:"GroupID,omitempty"` @@ -909,7 +833,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_ca4877c90b77c1e9, []int{11} + return fileDescriptor_ws_9a3c519aa1c52df5, []int{11} } func (m *GroupMemberFullInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupMemberFullInfo.Unmarshal(m, b) @@ -987,6 +911,7 @@ type UserInfo struct { Mobile string `protobuf:"bytes,5,opt,name=Mobile" json:"Mobile,omitempty"` Birth string `protobuf:"bytes,6,opt,name=Birth" json:"Birth,omitempty"` Email string `protobuf:"bytes,7,opt,name=Email" json:"Email,omitempty"` + Ext string `protobuf:"bytes,8,opt,name=Ext" json:"Ext,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -996,7 +921,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_ca4877c90b77c1e9, []int{12} + return fileDescriptor_ws_9a3c519aa1c52df5, []int{12} } func (m *UserInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_UserInfo.Unmarshal(m, b) @@ -1065,6 +990,13 @@ func (m *UserInfo) GetEmail() string { return "" } +func (m *UserInfo) GetExt() string { + if m != nil { + return m.Ext + } + return "" +} + // No permissions required type PublicUserInfo struct { UserID string `protobuf:"bytes,1,opt,name=UserID" json:"UserID,omitempty"` @@ -1080,7 +1012,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_ca4877c90b77c1e9, []int{13} + return fileDescriptor_ws_9a3c519aa1c52df5, []int{13} } func (m *PublicUserInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_PublicUserInfo.Unmarshal(m, b) @@ -1140,7 +1072,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_ca4877c90b77c1e9, []int{14} + return fileDescriptor_ws_9a3c519aa1c52df5, []int{14} } func (m *TipsComm) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_TipsComm.Unmarshal(m, b) @@ -1189,7 +1121,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_ca4877c90b77c1e9, []int{15} + return fileDescriptor_ws_9a3c519aa1c52df5, []int{15} } func (m *MemberEnterTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MemberEnterTips.Unmarshal(m, b) @@ -1244,7 +1176,7 @@ func (m *MemberLeaveTips) Reset() { *m = MemberLeaveTips{} } func (m *MemberLeaveTips) String() string { return proto.CompactTextString(m) } func (*MemberLeaveTips) ProtoMessage() {} func (*MemberLeaveTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_ca4877c90b77c1e9, []int{16} + return fileDescriptor_ws_9a3c519aa1c52df5, []int{16} } func (m *MemberLeaveTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MemberLeaveTips.Unmarshal(m, b) @@ -1299,7 +1231,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_ca4877c90b77c1e9, []int{17} + return fileDescriptor_ws_9a3c519aa1c52df5, []int{17} } func (m *MemberInvitedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MemberInvitedTips.Unmarshal(m, b) @@ -1361,7 +1293,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_ca4877c90b77c1e9, []int{18} + return fileDescriptor_ws_9a3c519aa1c52df5, []int{18} } func (m *MemberKickedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MemberKickedTips.Unmarshal(m, b) @@ -1424,7 +1356,7 @@ func (m *MemberInfoChangedTips) Reset() { *m = MemberInfoChangedTips{} } func (m *MemberInfoChangedTips) String() string { return proto.CompactTextString(m) } func (*MemberInfoChangedTips) ProtoMessage() {} func (*MemberInfoChangedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_ca4877c90b77c1e9, []int{19} + return fileDescriptor_ws_9a3c519aa1c52df5, []int{19} } func (m *MemberInfoChangedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MemberInfoChangedTips.Unmarshal(m, b) @@ -1493,7 +1425,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_ca4877c90b77c1e9, []int{20} + return fileDescriptor_ws_9a3c519aa1c52df5, []int{20} } func (m *GroupCreatedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupCreatedTips.Unmarshal(m, b) @@ -1554,7 +1486,7 @@ func (m *GroupInfoChangedTips) Reset() { *m = GroupInfoChangedTips{} } func (m *GroupInfoChangedTips) String() string { return proto.CompactTextString(m) } func (*GroupInfoChangedTips) ProtoMessage() {} func (*GroupInfoChangedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_ca4877c90b77c1e9, []int{21} + return fileDescriptor_ws_9a3c519aa1c52df5, []int{21} } func (m *GroupInfoChangedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupInfoChangedTips.Unmarshal(m, b) @@ -1608,7 +1540,7 @@ func (m *ReceiveJoinApplicationTips) Reset() { *m = ReceiveJoinApplicati func (m *ReceiveJoinApplicationTips) String() string { return proto.CompactTextString(m) } func (*ReceiveJoinApplicationTips) ProtoMessage() {} func (*ReceiveJoinApplicationTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_ca4877c90b77c1e9, []int{22} + return fileDescriptor_ws_9a3c519aa1c52df5, []int{22} } func (m *ReceiveJoinApplicationTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ReceiveJoinApplicationTips.Unmarshal(m, b) @@ -1663,7 +1595,7 @@ func (m *ApplicationProcessedTips) Reset() { *m = ApplicationProcessedTi func (m *ApplicationProcessedTips) String() string { return proto.CompactTextString(m) } func (*ApplicationProcessedTips) ProtoMessage() {} func (*ApplicationProcessedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_ca4877c90b77c1e9, []int{23} + return fileDescriptor_ws_9a3c519aa1c52df5, []int{23} } func (m *ApplicationProcessedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ApplicationProcessedTips.Unmarshal(m, b) @@ -1726,7 +1658,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_ca4877c90b77c1e9, []int{24} + return fileDescriptor_ws_9a3c519aa1c52df5, []int{24} } func (m *FriendInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FriendInfo.Unmarshal(m, b) @@ -1787,7 +1719,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_ca4877c90b77c1e9, []int{25} + return fileDescriptor_ws_9a3c519aa1c52df5, []int{25} } func (m *FriendApplication) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FriendApplication.Unmarshal(m, b) @@ -1843,7 +1775,7 @@ func (m *FriendApplicationAddedTips) Reset() { *m = FriendApplicationAdd func (m *FriendApplicationAddedTips) String() string { return proto.CompactTextString(m) } func (*FriendApplicationAddedTips) ProtoMessage() {} func (*FriendApplicationAddedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_ca4877c90b77c1e9, []int{26} + return fileDescriptor_ws_9a3c519aa1c52df5, []int{26} } func (m *FriendApplicationAddedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FriendApplicationAddedTips.Unmarshal(m, b) @@ -1906,7 +1838,7 @@ func (m *FriendApplicationProcessedTips) Reset() { *m = FriendApplicatio func (m *FriendApplicationProcessedTips) String() string { return proto.CompactTextString(m) } func (*FriendApplicationProcessedTips) ProtoMessage() {} func (*FriendApplicationProcessedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_ca4877c90b77c1e9, []int{27} + return fileDescriptor_ws_9a3c519aa1c52df5, []int{27} } func (m *FriendApplicationProcessedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FriendApplicationProcessedTips.Unmarshal(m, b) @@ -1966,7 +1898,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_ca4877c90b77c1e9, []int{28} + return fileDescriptor_ws_9a3c519aa1c52df5, []int{28} } func (m *FriendAddedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FriendAddedTips.Unmarshal(m, b) @@ -2012,7 +1944,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_ca4877c90b77c1e9, []int{29} + return fileDescriptor_ws_9a3c519aa1c52df5, []int{29} } func (m *FriendDeletedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FriendDeletedTips.Unmarshal(m, b) @@ -2059,7 +1991,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_ca4877c90b77c1e9, []int{30} + return fileDescriptor_ws_9a3c519aa1c52df5, []int{30} } func (m *BlackInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_BlackInfo.Unmarshal(m, b) @@ -2112,7 +2044,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_ca4877c90b77c1e9, []int{31} + return fileDescriptor_ws_9a3c519aa1c52df5, []int{31} } func (m *BlackAddedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_BlackAddedTips.Unmarshal(m, b) @@ -2158,7 +2090,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_ca4877c90b77c1e9, []int{32} + return fileDescriptor_ws_9a3c519aa1c52df5, []int{32} } func (m *BlackDeletedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_BlackDeletedTips.Unmarshal(m, b) @@ -2205,7 +2137,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_ca4877c90b77c1e9, []int{33} + return fileDescriptor_ws_9a3c519aa1c52df5, []int{33} } func (m *FriendInfoChangedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FriendInfoChangedTips.Unmarshal(m, b) @@ -2260,7 +2192,7 @@ func (m *SelfInfoUpdatedTips) Reset() { *m = SelfInfoUpdatedTips{} } func (m *SelfInfoUpdatedTips) String() string { return proto.CompactTextString(m) } func (*SelfInfoUpdatedTips) ProtoMessage() {} func (*SelfInfoUpdatedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_ca4877c90b77c1e9, []int{34} + return fileDescriptor_ws_9a3c519aa1c52df5, []int{34} } func (m *SelfInfoUpdatedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SelfInfoUpdatedTips.Unmarshal(m, b) @@ -2304,12 +2236,11 @@ func (m *SelfInfoUpdatedTips) GetOperationTime() uint64 { func init() { proto.RegisterType((*PullMessageBySeqListResp)(nil), "open_im_sdk.PullMessageBySeqListResp") proto.RegisterType((*PullMessageBySeqListReq)(nil), "open_im_sdk.PullMessageBySeqListReq") + proto.RegisterType((*PullMessageReq)(nil), "open_im_sdk.PullMessageReq") + proto.RegisterType((*PullMessageResp)(nil), "open_im_sdk.PullMessageResp") proto.RegisterType((*GetMaxAndMinSeqReq)(nil), "open_im_sdk.GetMaxAndMinSeqReq") proto.RegisterType((*GetMaxAndMinSeqResp)(nil), "open_im_sdk.GetMaxAndMinSeqResp") proto.RegisterType((*GatherFormat)(nil), "open_im_sdk.GatherFormat") - proto.RegisterType((*MsgFormat)(nil), "open_im_sdk.MsgFormat") - proto.RegisterType((*UserSendMsgReq)(nil), "open_im_sdk.UserSendMsgReq") - proto.RegisterMapType((map[string]int32)(nil), "open_im_sdk.UserSendMsgReq.OptionsEntry") proto.RegisterType((*UserSendMsgResp)(nil), "open_im_sdk.UserSendMsgResp") proto.RegisterType((*MsgData)(nil), "open_im_sdk.MsgData") proto.RegisterMapType((map[string]bool)(nil), "open_im_sdk.MsgData.OptionsEntry") @@ -2341,124 +2272,118 @@ func init() { proto.RegisterType((*SelfInfoUpdatedTips)(nil), "open_im_sdk.SelfInfoUpdatedTips") } -func init() { proto.RegisterFile("sdk_ws/ws.proto", fileDescriptor_ws_ca4877c90b77c1e9) } - -var fileDescriptor_ws_ca4877c90b77c1e9 = []byte{ - // 1841 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0x59, 0xdd, 0x6f, 0xdc, 0x5a, - 0x11, 0x97, 0xf7, 0x2b, 0xd9, 0xd9, 0x34, 0x49, 0xdd, 0x8f, 0x6b, 0xca, 0x55, 0x15, 0x2c, 0x84, - 0xa2, 0xab, 0xab, 0x5c, 0x91, 0x08, 0x71, 0x5b, 0x04, 0xdc, 0x24, 0x9b, 0x44, 0x5b, 0x9a, 0x6e, - 0xe4, 0x6d, 0xc5, 0x63, 0xe5, 0xda, 0x67, 0x37, 0x66, 0xfd, 0xb1, 0xf1, 0xf1, 0x6e, 0xdb, 0xbf, - 0x04, 0x09, 0x09, 0x09, 0xc4, 0x03, 0x42, 0xbc, 0x20, 0x84, 0xf8, 0x23, 0x10, 0xe2, 0x8f, 0x40, - 0xf0, 0xc8, 0x0b, 0xaf, 0x08, 0x09, 0xcd, 0x9c, 0x63, 0xfb, 0x9c, 0xf5, 0x92, 0xec, 0xe6, 0xaa, - 0x7d, 0xf3, 0xfc, 0x3c, 0x73, 0xe6, 0xeb, 0x37, 0xe3, 0x93, 0x0d, 0x6c, 0x71, 0x7f, 0xfc, 0xfa, - 0x2d, 0xff, 0xe2, 0x2d, 0xdf, 0x9b, 0xa4, 0x49, 0x96, 0x98, 0x9d, 0x64, 0xc2, 0xe2, 0xd7, 0x41, - 0xf4, 0x9a, 0xfb, 0x63, 0xfb, 0x2f, 0x06, 0x58, 0x17, 0xd3, 0x30, 0x3c, 0x67, 0x9c, 0xbb, 0x23, - 0x76, 0xf4, 0x7e, 0xc0, 0xae, 0x9e, 0x07, 0x3c, 0x73, 0x18, 0x9f, 0x98, 0x0f, 0xa1, 0x75, 0xee, - 0xbe, 0x1b, 0xb0, 0x2b, 0xcb, 0xd8, 0x31, 0x76, 0xeb, 0x8e, 0x94, 0x08, 0x0f, 0x62, 0xc4, 0x6b, - 0x12, 0x27, 0xc9, 0xfc, 0x31, 0xdc, 0x19, 0x04, 0xf1, 0x28, 0x64, 0xaf, 0x38, 0x4b, 0xcf, 0xf9, - 0xc8, 0xaa, 0xef, 0xd4, 0x77, 0x3b, 0xfb, 0xdf, 0xd8, 0x53, 0x3c, 0xee, 0x9d, 0xb9, 0xd9, 0x25, - 0x4b, 0x4f, 0x93, 0x34, 0x72, 0x33, 0x47, 0xd7, 0x37, 0x7f, 0x08, 0x1b, 0x67, 0x69, 0x32, 0x9d, - 0xe4, 0xf6, 0x8d, 0x9b, 0xec, 0x35, 0x75, 0xfb, 0x00, 0x3e, 0x59, 0x9c, 0xcb, 0x95, 0x69, 0xc1, - 0x1a, 0x17, 0x92, 0x65, 0xec, 0xd4, 0x77, 0xeb, 0x4e, 0x2e, 0xda, 0xf7, 0xc1, 0x3c, 0x63, 0xd9, - 0xb9, 0xfb, 0xee, 0x30, 0xf6, 0x45, 0x1e, 0x0e, 0xbb, 0xb2, 0x4f, 0xe0, 0x5e, 0x05, 0x15, 0x15, - 0x89, 0xb4, 0x8a, 0x44, 0x45, 0x45, 0x22, 0xad, 0x22, 0x42, 0xb2, 0x9f, 0xc1, 0x86, 0x1a, 0xaf, - 0xb9, 0x09, 0xb5, 0x5e, 0x97, 0x6c, 0xdb, 0x4e, 0xad, 0xd7, 0x35, 0x3f, 0x83, 0x06, 0xc5, 0x54, - 0xa3, 0x44, 0x1f, 0x6a, 0x89, 0x9e, 0xf3, 0x91, 0xcc, 0x92, 0x74, 0xec, 0xff, 0xd6, 0xa0, 0x5d, - 0x60, 0xe8, 0x71, 0xc0, 0x62, 0xbf, 0x38, 0x4d, 0x4a, 0x88, 0x3b, 0xcc, 0x9b, 0xf5, 0xba, 0x14, - 0x49, 0xdb, 0x91, 0x12, 0x16, 0x00, 0x8d, 0xd3, 0x24, 0xb2, 0xea, 0x3b, 0xc6, 0x6e, 0xd3, 0xc9, - 0x45, 0x73, 0x07, 0x3a, 0xc7, 0x49, 0x9c, 0xb1, 0x38, 0x7b, 0xf9, 0x7e, 0xc2, 0xac, 0x06, 0xbd, - 0x55, 0x21, 0xd4, 0x18, 0xb0, 0x74, 0x46, 0x45, 0xee, 0x75, 0xad, 0x26, 0x1d, 0xac, 0x42, 0x78, - 0xba, 0x34, 0xb0, 0x5a, 0xf4, 0x36, 0x17, 0xcd, 0x6d, 0xa8, 0x63, 0x59, 0xd6, 0xa8, 0x2c, 0xf8, - 0x68, 0x3e, 0x82, 0x75, 0x8c, 0xf5, 0x65, 0x10, 0x31, 0x6b, 0x9d, 0xe0, 0x42, 0x36, 0x3f, 0x83, - 0x6d, 0x7c, 0x66, 0xe9, 0x45, 0xe8, 0x66, 0xc3, 0x24, 0x8d, 0x7a, 0x5d, 0xab, 0x4d, 0x01, 0x55, - 0x70, 0xf3, 0x3b, 0xb0, 0x29, 0xb0, 0x17, 0x81, 0x37, 0x7e, 0xe1, 0x46, 0xcc, 0x02, 0x72, 0x3d, - 0x87, 0x9a, 0xdf, 0x86, 0x3b, 0x02, 0x39, 0x75, 0x3d, 0xf6, 0xca, 0x79, 0x6e, 0x75, 0x48, 0x4d, - 0x07, 0xa9, 0x0a, 0x61, 0xc0, 0xe2, 0x4c, 0xe4, 0xb8, 0x21, 0x72, 0x54, 0x20, 0xfb, 0x6f, 0x75, - 0xd8, 0x44, 0xa6, 0xa1, 0xdd, 0x39, 0x1f, 0x21, 0xab, 0x8e, 0x60, 0xad, 0x3f, 0xc9, 0x82, 0x24, - 0xe6, 0xc4, 0xaa, 0xce, 0xfe, 0xae, 0xd6, 0x41, 0x5d, 0x7b, 0x4f, 0xaa, 0x9e, 0xc4, 0x59, 0xfa, - 0xde, 0xc9, 0x0d, 0x17, 0xa4, 0x51, 0x5b, 0x2e, 0x8d, 0xfa, 0xa2, 0x34, 0x1e, 0x03, 0x28, 0xa5, - 0x13, 0xbd, 0x54, 0x10, 0xd1, 0x4a, 0xce, 0x83, 0x24, 0xa6, 0x66, 0x37, 0x45, 0xb3, 0x15, 0x48, - 0x25, 0x4a, 0xeb, 0x5a, 0xa2, 0xac, 0x55, 0x89, 0x52, 0x92, 0x6f, 0x5d, 0x23, 0xdf, 0xa7, 0xd0, - 0x3e, 0x4d, 0x52, 0x8f, 0x11, 0xd7, 0xdb, 0x3b, 0xf5, 0xdd, 0xb6, 0x53, 0x02, 0x2a, 0x79, 0x40, - 0x27, 0xcf, 0x5c, 0x53, 0x3a, 0x95, 0xa6, 0x3c, 0x7a, 0x0a, 0x1b, 0x6a, 0x59, 0x91, 0x6e, 0x63, - 0xf6, 0x5e, 0xce, 0x04, 0x3e, 0x9a, 0xf7, 0xa1, 0x39, 0x73, 0xc3, 0xa9, 0x28, 0x6b, 0xd3, 0x11, - 0xc2, 0xd3, 0xda, 0x97, 0x86, 0x7d, 0x05, 0x5b, 0x5a, 0x87, 0xf8, 0x64, 0x9e, 0xe9, 0x46, 0x95, - 0xe9, 0x73, 0x21, 0xd5, 0x2a, 0x21, 0x21, 0xbf, 0x79, 0xce, 0xef, 0xba, 0xe0, 0x77, 0x2e, 0xdb, - 0x7f, 0x6e, 0x52, 0x75, 0xbb, 0x6e, 0xe6, 0x62, 0xb1, 0xb8, 0x36, 0xc1, 0xbc, 0x98, 0xe0, 0x54, - 0x9b, 0xe0, 0xb4, 0x98, 0xe0, 0x11, 0x6e, 0xbb, 0x5e, 0x57, 0xb6, 0x3e, 0x17, 0x31, 0x26, 0x4f, - 0x89, 0xa9, 0x21, 0x62, 0x52, 0x20, 0xd4, 0xe0, 0xd5, 0x09, 0x56, 0x20, 0x9c, 0x3c, 0x3e, 0x3f, - 0x79, 0xa2, 0xff, 0x15, 0x1c, 0x29, 0xcb, 0x75, 0xca, 0xae, 0x09, 0xca, 0xf2, 0x0a, 0x65, 0xb9, - 0x46, 0x59, 0xc1, 0x0a, 0x1d, 0x14, 0xb1, 0x95, 0x94, 0x14, 0xe3, 0xae, 0x42, 0x98, 0x79, 0x24, - 0x29, 0x09, 0x82, 0x92, 0x51, 0x49, 0x49, 0x4f, 0xa1, 0x64, 0x47, 0xd8, 0x2a, 0x10, 0xda, 0x4a, - 0x91, 0x66, 0x7a, 0xc3, 0xc9, 0x45, 0x24, 0xe5, 0xb0, 0x20, 0xe5, 0x1d, 0x41, 0xca, 0x02, 0x40, - 0x22, 0x71, 0x76, 0x65, 0x6d, 0x8a, 0xbd, 0xc5, 0xc5, 0xde, 0x2a, 0xfa, 0xba, 0xa5, 0xf7, 0x15, - 0xc7, 0xce, 0x4b, 0x99, 0x9b, 0x31, 0x7a, 0xbb, 0x4d, 0x6f, 0x15, 0xc4, 0xfc, 0x41, 0xb9, 0x28, - 0xee, 0xd2, 0xa2, 0xf8, 0xd6, 0xfc, 0xaa, 0x47, 0x4a, 0xfc, 0x9f, 0x0d, 0x71, 0x0a, 0x5b, 0xc9, - 0x70, 0x18, 0x06, 0x31, 0xbb, 0x98, 0xf2, 0xcb, 0x5e, 0x3c, 0x4c, 0x2c, 0x73, 0xc7, 0xd8, 0xed, - 0xec, 0x7f, 0xaa, 0x1d, 0xd2, 0xd7, 0x75, 0x9c, 0x79, 0xa3, 0x55, 0x67, 0x65, 0x5d, 0x9d, 0x95, - 0x9f, 0x1b, 0xb0, 0x35, 0xe7, 0x00, 0xb5, 0x5f, 0x06, 0x59, 0xc8, 0xe4, 0x09, 0x42, 0x30, 0x4d, - 0x68, 0x74, 0x19, 0xf7, 0x24, 0x79, 0xe9, 0x19, 0x3d, 0x9d, 0xbc, 0xcb, 0x24, 0x6d, 0xf1, 0xd1, - 0xb4, 0x61, 0x23, 0xe8, 0x0f, 0xf0, 0xa8, 0x41, 0x32, 0x8d, 0x7d, 0xc9, 0x59, 0x0d, 0x43, 0xfa, - 0x04, 0xfd, 0xc1, 0x91, 0xeb, 0x8f, 0xd8, 0x71, 0x32, 0x8d, 0x33, 0xa2, 0xed, 0xba, 0xa3, 0x83, - 0xf6, 0x2f, 0x6a, 0xd0, 0xa6, 0x5b, 0x00, 0xc5, 0x64, 0xc1, 0xda, 0x99, 0x1c, 0x12, 0x11, 0x55, - 0x2e, 0x62, 0xbb, 0xe9, 0x51, 0x59, 0xb1, 0x25, 0x80, 0xf1, 0xbc, 0x48, 0xb2, 0x60, 0x18, 0x78, - 0x2e, 0x56, 0x48, 0x86, 0xaa, 0x61, 0xa8, 0xd3, 0x8b, 0xb3, 0x34, 0xf1, 0xa7, 0x1e, 0xe9, 0xc8, - 0x98, 0x55, 0x0c, 0xfd, 0x13, 0xaf, 0xd3, 0x50, 0x0e, 0x59, 0x2e, 0x9a, 0xdf, 0x85, 0x66, 0xff, - 0x6d, 0xcc, 0x52, 0x9a, 0xaa, 0xce, 0xfe, 0x37, 0xb5, 0xde, 0x5d, 0x4c, 0xdf, 0x84, 0x81, 0x87, - 0xdb, 0x88, 0x5a, 0x27, 0x34, 0x91, 0x55, 0xc7, 0x25, 0xab, 0x70, 0xc6, 0x1a, 0x8e, 0x82, 0x20, - 0xfb, 0xcf, 0x59, 0xf4, 0x86, 0xa5, 0xa2, 0x3c, 0x38, 0x5d, 0x77, 0x1c, 0x15, 0xb2, 0xff, 0x65, - 0xc0, 0x3d, 0x4a, 0x52, 0x80, 0xa7, 0xd3, 0x30, 0xbc, 0xa1, 0x4c, 0x0f, 0xa1, 0x45, 0x61, 0x14, - 0xdb, 0x47, 0x48, 0xe6, 0x1e, 0x98, 0x87, 0x7e, 0x14, 0xc4, 0x01, 0xcf, 0x52, 0x37, 0x4b, 0xd2, - 0xe7, 0x6c, 0xc6, 0x42, 0x79, 0x95, 0x58, 0xf0, 0x06, 0xa7, 0xe5, 0x59, 0x12, 0xc4, 0x14, 0x79, - 0x83, 0x22, 0x2f, 0x64, 0x7c, 0x57, 0x6c, 0x0e, 0x51, 0xa5, 0x42, 0x56, 0x0b, 0xd8, 0xd2, 0x0b, - 0x68, 0xc3, 0xc6, 0x69, 0x1a, 0xb0, 0xd8, 0x77, 0x58, 0xe4, 0xa6, 0x63, 0xb9, 0x73, 0x34, 0xcc, - 0xfe, 0x93, 0x01, 0xeb, 0x79, 0x15, 0x95, 0x54, 0x0c, 0x2d, 0x15, 0xe9, 0x3e, 0x2e, 0x89, 0x50, - 0xc8, 0xaa, 0xfb, 0xba, 0xee, 0xfe, 0x21, 0xb4, 0xce, 0x68, 0x6f, 0xc9, 0xaf, 0xaa, 0x94, 0xe8, - 0x32, 0x9c, 0xbc, 0x09, 0xc2, 0x3c, 0x15, 0x29, 0xe1, 0x74, 0x1c, 0x05, 0x69, 0x76, 0x29, 0xd3, - 0x10, 0x02, 0xa2, 0x27, 0x91, 0x1b, 0x84, 0x32, 0x7a, 0x21, 0xd8, 0x33, 0xd8, 0xd4, 0x19, 0xf0, - 0x71, 0x62, 0xb7, 0xbb, 0xb0, 0xfe, 0x32, 0x98, 0xf0, 0xe3, 0x24, 0x8a, 0x50, 0xa7, 0xcb, 0x32, - 0x0c, 0xcd, 0xa0, 0x3d, 0x29, 0x25, 0x24, 0x59, 0x97, 0x0d, 0xdd, 0x69, 0x98, 0xa1, 0x6a, 0xfe, - 0xc1, 0x53, 0x20, 0xfb, 0x77, 0x06, 0x6c, 0x09, 0x7e, 0x9d, 0xc4, 0x19, 0x4b, 0x11, 0x33, 0x3f, - 0x87, 0x26, 0x31, 0x8a, 0x0e, 0x9b, 0xbf, 0xd9, 0x16, 0xe3, 0xea, 0x08, 0x25, 0xf3, 0x08, 0x3a, - 0xb8, 0x92, 0xdc, 0x38, 0xc3, 0x34, 0xc9, 0x47, 0x67, 0x7f, 0xa7, 0x6a, 0xa3, 0xb3, 0xd8, 0x51, - 0x8d, 0x70, 0x5b, 0xf4, 0x27, 0x2c, 0xa5, 0x51, 0x2d, 0xbe, 0xbd, 0x0d, 0x47, 0x07, 0xed, 0xdf, - 0x16, 0xb1, 0x3e, 0x67, 0xee, 0x8c, 0xdd, 0x22, 0xd6, 0xaf, 0x00, 0xc8, 0x34, 0x5d, 0x29, 0x54, - 0xc5, 0x66, 0xc9, 0x48, 0xff, 0x69, 0xc0, 0x5d, 0x71, 0x48, 0x2f, 0x9e, 0x05, 0x19, 0xf3, 0x6f, - 0x11, 0xeb, 0x97, 0xd0, 0xea, 0x4f, 0x56, 0x8a, 0x53, 0xea, 0x63, 0x47, 0xa4, 0x5b, 0x32, 0xaf, - 0x2f, 0xdb, 0x11, 0xc5, 0xa8, 0x9a, 0x67, 0x63, 0x51, 0x9e, 0x7f, 0x37, 0x60, 0x5b, 0x9c, 0xf2, - 0x93, 0xc0, 0x1b, 0x7f, 0xe4, 0x34, 0xbf, 0x02, 0x10, 0x5e, 0x57, 0xca, 0x52, 0xb1, 0x59, 0x32, - 0xc9, 0xff, 0x18, 0xf0, 0x20, 0x6f, 0xe6, 0x30, 0x39, 0xbe, 0x74, 0xe3, 0x91, 0xcc, 0x14, 0x77, - 0x3c, 0x89, 0x74, 0x81, 0x31, 0xc4, 0x85, 0xbd, 0x44, 0xbe, 0x46, 0x6e, 0x3f, 0x82, 0xf6, 0x69, - 0x10, 0xbb, 0x04, 0x2e, 0x9d, 0x5a, 0x69, 0x82, 0xab, 0xe6, 0x7c, 0x2a, 0xbf, 0x3d, 0x72, 0x83, - 0xe7, 0x72, 0xd9, 0x9f, 0xe6, 0x12, 0xfd, 0xb1, 0xff, 0x61, 0xc0, 0x36, 0x3d, 0x89, 0x6f, 0xd7, - 0x6d, 0x5a, 0xfc, 0x14, 0xd6, 0xc8, 0x38, 0x59, 0xbe, 0x0e, 0xb9, 0x01, 0x36, 0x59, 0x8e, 0x3c, - 0xde, 0xf4, 0xc4, 0x6f, 0x12, 0x4b, 0x34, 0xb9, 0xb4, 0x59, 0xb2, 0xc9, 0xbf, 0x32, 0xe0, 0x7e, - 0x11, 0xb8, 0xda, 0x63, 0xfc, 0x9b, 0x41, 0x8a, 0x65, 0x93, 0x55, 0xa8, 0x2c, 0x46, 0x6d, 0x35, - 0xbe, 0xd7, 0x57, 0xe3, 0x84, 0xfd, 0x4b, 0x03, 0x1e, 0x39, 0xcc, 0x63, 0xc1, 0x8c, 0xe1, 0xd7, - 0xf8, 0x70, 0x32, 0x09, 0xe5, 0xed, 0xe6, 0x16, 0x3d, 0x79, 0x02, 0x6d, 0x79, 0x40, 0x9c, 0xc9, - 0xc0, 0xaf, 0xbd, 0xd5, 0x94, 0xda, 0xe2, 0x0f, 0x45, 0x97, 0x17, 0x17, 0x2d, 0x29, 0xd9, 0x7f, - 0x34, 0xc0, 0x52, 0x82, 0xba, 0x48, 0x13, 0x8f, 0x71, 0xfe, 0x91, 0x97, 0x02, 0x05, 0xc7, 0xa7, - 0x61, 0x26, 0xaf, 0x37, 0x52, 0x52, 0x82, 0x6e, 0x68, 0x41, 0xff, 0xc1, 0x00, 0x10, 0xb7, 0x10, - 0x9a, 0x9b, 0x03, 0x68, 0xd3, 0xf5, 0x8d, 0x7c, 0x8b, 0x50, 0x1f, 0x54, 0x7e, 0x16, 0x10, 0x05, - 0x29, 0xf4, 0xc4, 0xd9, 0x74, 0xad, 0x29, 0x7e, 0xb6, 0x41, 0x69, 0xee, 0x0a, 0x58, 0xaf, 0x5c, - 0x01, 0xbf, 0x97, 0xbb, 0x26, 0x6f, 0x8d, 0xeb, 0xbc, 0x29, 0x8a, 0xf6, 0x18, 0xee, 0x0a, 0x49, - 0x29, 0x36, 0xde, 0x1f, 0x0e, 0x7d, 0xf1, 0xf7, 0x8d, 0x41, 0x8e, 0x72, 0x11, 0xef, 0xce, 0x87, - 0xbe, 0x3f, 0x48, 0xa6, 0xa9, 0x57, 0xdc, 0x9d, 0x0b, 0x00, 0x63, 0x3c, 0xf4, 0xfd, 0x9f, 0x26, - 0xa9, 0x1f, 0xc4, 0x23, 0xd9, 0x50, 0x05, 0xb1, 0xff, 0x6d, 0xc0, 0xa3, 0x8a, 0xb7, 0x43, 0xdf, - 0x97, 0x6d, 0x3d, 0x28, 0x1a, 0x65, 0xdc, 0xcc, 0xa1, 0x72, 0x71, 0x77, 0x94, 0xc3, 0x64, 0x8b, - 0x1f, 0x6b, 0x96, 0x15, 0x97, 0x8e, 0x6a, 0x62, 0x7e, 0x1f, 0xd6, 0xfb, 0x13, 0x6d, 0xf1, 0x5f, - 0xeb, 0xb8, 0x50, 0x5e, 0x72, 0x19, 0xfc, 0xd5, 0x80, 0xc7, 0x95, 0x08, 0x74, 0x3e, 0xdf, 0x2a, - 0x71, 0x35, 0xec, 0xda, 0x2a, 0x61, 0xd3, 0xcf, 0x0a, 0x2a, 0xab, 0x85, 0xb4, 0x64, 0x3a, 0x97, - 0xb0, 0x25, 0xb3, 0x29, 0xfa, 0xf6, 0x05, 0xb4, 0x04, 0x24, 0xc3, 0xff, 0x64, 0x41, 0xf5, 0x45, - 0xe8, 0xe2, 0xb9, 0xea, 0xa9, 0xb6, 0xc8, 0xd3, 0xcf, 0x72, 0x6a, 0x76, 0x59, 0xc8, 0xb2, 0x0f, - 0xeb, 0xeb, 0xd7, 0x06, 0xb4, 0x8f, 0x42, 0xd7, 0x1b, 0xd3, 0xe0, 0x3e, 0xa9, 0x0e, 0xee, 0xf5, - 0xfb, 0xac, 0x1c, 0xdf, 0x9b, 0xc6, 0xf4, 0x89, 0xf4, 0xa3, 0x4c, 0xe9, 0xf5, 0x47, 0x17, 0xda, - 0xb6, 0x0f, 0x9b, 0x24, 0x94, 0x85, 0xff, 0x1c, 0x9a, 0x84, 0x2c, 0xdc, 0x83, 0x45, 0x3a, 0x8e, - 0x50, 0x5a, 0xb2, 0x12, 0x43, 0xd8, 0x26, 0x75, 0xb5, 0xe8, 0x1f, 0xc2, 0xcf, 0x6f, 0x0c, 0x78, - 0x50, 0xb6, 0x4b, 0xfd, 0x48, 0xae, 0xdc, 0xe2, 0x83, 0xb9, 0x05, 0xbf, 0xd4, 0xf8, 0x2c, 0x77, - 0xf7, 0xfe, 0xbd, 0x01, 0xf7, 0x06, 0x2c, 0x1c, 0xa2, 0xe9, 0xab, 0x89, 0x5f, 0xdc, 0x59, 0x9e, - 0xc0, 0x06, 0xc2, 0xf9, 0xa9, 0xd7, 0x6f, 0x77, 0x4d, 0xf5, 0x03, 0x46, 0xfb, 0xa6, 0x45, 0xff, - 0xd7, 0x39, 0xf8, 0x5f, 0x00, 0x00, 0x00, 0xff, 0xff, 0x4b, 0x94, 0x7a, 0xcf, 0xea, 0x19, 0x00, - 0x00, +func init() { proto.RegisterFile("sdk_ws/ws.proto", fileDescriptor_ws_9a3c519aa1c52df5) } + +var fileDescriptor_ws_9a3c519aa1c52df5 = []byte{ + // 1753 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe4, 0x59, 0x4f, 0x6f, 0x23, 0x4b, + 0x11, 0xd7, 0xf8, 0x5f, 0xec, 0xb2, 0x37, 0xce, 0xce, 0xee, 0xe6, 0x0d, 0xe1, 0x69, 0x65, 0x46, + 0x08, 0x59, 0xe8, 0x29, 0x4f, 0x24, 0x42, 0xbc, 0x2c, 0x02, 0x36, 0x89, 0x93, 0x10, 0x88, 0xd7, + 0xd1, 0x38, 0x11, 0xc7, 0xd5, 0xc4, 0xd3, 0x76, 0x1a, 0x8f, 0x7b, 0x9c, 0xee, 0xb1, 0x77, 0x73, + 0xe1, 0x6b, 0x70, 0x42, 0x02, 0x71, 0x40, 0x08, 0x0e, 0x88, 0x03, 0x1f, 0x81, 0x13, 0x9f, 0x02, + 0xc1, 0x91, 0x0b, 0x1c, 0xe1, 0x80, 0xba, 0xba, 0x67, 0xa6, 0x27, 0x0e, 0x89, 0x13, 0xb4, 0x7b, + 0x79, 0xb7, 0xa9, 0x9f, 0xab, 0xba, 0x7e, 0xf5, 0xa7, 0x6b, 0x6a, 0x12, 0x68, 0x8a, 0x60, 0xfc, + 0xf6, 0x9d, 0xf8, 0xfc, 0x9d, 0xd8, 0x9c, 0xf2, 0x28, 0x8e, 0xec, 0x7a, 0x34, 0x25, 0xec, 0x2d, + 0x9d, 0xbc, 0x15, 0xc1, 0xd8, 0xfd, 0x8f, 0x05, 0xce, 0xe9, 0x2c, 0x0c, 0xbb, 0x44, 0x08, 0x7f, + 0x44, 0xf6, 0xae, 0xfb, 0xe4, 0xea, 0x84, 0x8a, 0xd8, 0x23, 0x62, 0x6a, 0x3b, 0xb0, 0x42, 0x38, + 0xdf, 0x8f, 0x02, 0xe2, 0x58, 0x2d, 0xab, 0x5d, 0xf6, 0x12, 0xd1, 0x5e, 0x87, 0x0a, 0xe1, 0xbc, + 0x2b, 0x46, 0x4e, 0xa1, 0x65, 0xb5, 0x6b, 0x9e, 0x96, 0x24, 0x3e, 0xf1, 0xdf, 0xf7, 0xc9, 0x95, + 0x53, 0x6c, 0x59, 0xed, 0xa2, 0xa7, 0x25, 0xc4, 0x29, 0x93, 0x78, 0x49, 0xe3, 0x28, 0xd9, 0x3f, + 0x80, 0x27, 0x82, 0xb2, 0x51, 0x48, 0xce, 0x05, 0xc1, 0xe3, 0xca, 0xad, 0x62, 0xbb, 0xbe, 0xf5, + 0x95, 0x4d, 0x83, 0xe3, 0xe6, 0x91, 0x1f, 0x5f, 0x12, 0x7e, 0x18, 0xf1, 0x89, 0x1f, 0x7b, 0x79, + 0x7d, 0xfb, 0x7b, 0xd0, 0x18, 0xf1, 0x68, 0x36, 0x4d, 0xec, 0x2b, 0xf7, 0xd9, 0xe7, 0xd4, 0xdd, + 0x09, 0x7c, 0x72, 0x7b, 0xf4, 0x48, 0x79, 0x26, 0x08, 0x3f, 0xee, 0x60, 0xec, 0x35, 0x4f, 0x4b, + 0x76, 0x0b, 0x64, 0x02, 0xb9, 0x1f, 0xd3, 0x88, 0x1d, 0x77, 0x74, 0xfc, 0x26, 0x24, 0xd3, 0x26, + 0xd4, 0x39, 0x4e, 0xb1, 0x55, 0x6c, 0x17, 0xbd, 0x44, 0x74, 0x7f, 0x06, 0xab, 0x86, 0xbb, 0xbb, + 0xbc, 0x6c, 0x40, 0x55, 0x90, 0xab, 0x3d, 0x32, 0xa2, 0x0c, 0x5d, 0x14, 0xbd, 0x54, 0x96, 0x36, + 0x82, 0x5c, 0x1d, 0xb0, 0x20, 0x49, 0xb2, 0x92, 0x6e, 0x32, 0x2b, 0x2d, 0x30, 0x73, 0xff, 0x65, + 0x41, 0x33, 0x47, 0xe0, 0x4b, 0x51, 0xe4, 0xe7, 0x60, 0x1f, 0x91, 0xb8, 0xeb, 0xbf, 0xdf, 0x65, + 0x41, 0x17, 0x29, 0x79, 0xe4, 0xca, 0x3d, 0x80, 0x67, 0x0b, 0xa8, 0x98, 0x1a, 0xc1, 0x59, 0xff, + 0x23, 0xb8, 0x82, 0x19, 0x9c, 0xfb, 0x43, 0x68, 0x98, 0xae, 0xed, 0x55, 0x28, 0xd0, 0x40, 0x17, + 0xb3, 0x40, 0x03, 0xbb, 0x0d, 0xa5, 0x50, 0x76, 0x42, 0x01, 0x39, 0x3f, 0xcf, 0x71, 0xee, 0x8a, + 0x51, 0xc7, 0x8f, 0x7d, 0x0f, 0x35, 0xdc, 0x2b, 0x68, 0x4a, 0xc6, 0x7d, 0xc2, 0x82, 0xae, 0x18, + 0x21, 0x99, 0x16, 0xd4, 0xfb, 0x84, 0xcf, 0x31, 0x8c, 0xb4, 0x45, 0x4c, 0x48, 0x6a, 0xec, 0x87, + 0x94, 0xb0, 0x58, 0x69, 0xe8, 0x6e, 0x34, 0x20, 0xd5, 0x49, 0x2c, 0x38, 0xa3, 0x13, 0xa2, 0xeb, + 0x95, 0xca, 0xee, 0x9f, 0xca, 0xb0, 0xa2, 0x49, 0xa8, 0xae, 0x62, 0x41, 0xd6, 0x89, 0x4a, 0x92, + 0x38, 0x27, 0x83, 0x79, 0x7a, 0xb8, 0x96, 0x64, 0xdf, 0x60, 0x96, 0x8f, 0x3b, 0x78, 0x6c, 0xcd, + 0x4b, 0x44, 0xc9, 0x69, 0x60, 0x70, 0xd2, 0x7d, 0x68, 0x40, 0x52, 0x43, 0x18, 0x71, 0x95, 0x95, + 0x86, 0x01, 0xd9, 0xdf, 0x84, 0x35, 0xe9, 0x9f, 0xf0, 0xd3, 0xd0, 0x8f, 0x87, 0x11, 0x9f, 0x1c, + 0x77, 0x9c, 0x0a, 0xb6, 0xe7, 0x02, 0x6e, 0x7f, 0x03, 0x56, 0x15, 0xf6, 0x86, 0x0e, 0xc6, 0x6f, + 0xfc, 0x09, 0x71, 0x56, 0xf0, 0xc0, 0x1b, 0xa8, 0xfd, 0x75, 0x78, 0xa2, 0x90, 0x43, 0x7f, 0x40, + 0xce, 0xbd, 0x13, 0xa7, 0x8a, 0x6a, 0x79, 0x50, 0x71, 0x13, 0x82, 0x46, 0xec, 0xec, 0x7a, 0x4a, + 0x9c, 0x1a, 0x3a, 0x35, 0x21, 0x19, 0xf9, 0x44, 0x8c, 0x0e, 0x79, 0x34, 0x71, 0x40, 0xdd, 0x18, + 0x2d, 0x62, 0xe4, 0x11, 0x8b, 0x09, 0x8b, 0xd1, 0xb6, 0xae, 0x6c, 0x0d, 0x48, 0xda, 0x6a, 0xd1, + 0x69, 0xb4, 0xac, 0x76, 0xc3, 0x4b, 0x44, 0xfb, 0x53, 0xa8, 0x0d, 0x23, 0x3e, 0x20, 0x38, 0x37, + 0x9e, 0xb4, 0x8a, 0xed, 0x9a, 0x97, 0x01, 0xf6, 0x1a, 0x14, 0x05, 0xb9, 0x72, 0x56, 0xb1, 0x80, + 0xf2, 0x31, 0x57, 0xd7, 0x66, 0xbe, 0xae, 0xf6, 0x4b, 0x80, 0x01, 0x27, 0x7e, 0x4c, 0xf0, 0xd7, + 0x35, 0xfc, 0xd5, 0x40, 0xec, 0xef, 0xc2, 0x4a, 0x6f, 0x2a, 0x67, 0x82, 0x70, 0x9e, 0x62, 0x5f, + 0x7e, 0xed, 0xb6, 0xbe, 0xdc, 0xd4, 0x3a, 0x07, 0x2c, 0xe6, 0xd7, 0x5e, 0x62, 0x61, 0x1f, 0x42, + 0x33, 0x1a, 0x0e, 0x43, 0xca, 0xc8, 0xe9, 0x4c, 0x5c, 0x1e, 0xb3, 0x61, 0xe4, 0xd8, 0x2d, 0xab, + 0x5d, 0xdf, 0xfa, 0x34, 0x77, 0x48, 0x2f, 0xaf, 0xe3, 0xdd, 0x34, 0xda, 0x78, 0x05, 0x0d, 0xd3, + 0x81, 0x0c, 0x71, 0x4c, 0xae, 0x75, 0xf7, 0xc9, 0x47, 0xfb, 0x39, 0x94, 0xe7, 0x7e, 0x38, 0x23, + 0xd8, 0x79, 0x55, 0x4f, 0x09, 0xaf, 0x0a, 0x5f, 0x58, 0xee, 0xcf, 0x2d, 0x68, 0xde, 0x70, 0x20, + 0xb5, 0xcf, 0x68, 0x1c, 0x12, 0x7d, 0x82, 0x12, 0x6c, 0x1b, 0x4a, 0x1d, 0x22, 0x06, 0xba, 0x79, + 0xf1, 0x59, 0x7a, 0x3a, 0x78, 0x1f, 0xeb, 0xb6, 0x95, 0x8f, 0xb6, 0x0b, 0x0d, 0xda, 0xeb, 0xcb, + 0xa3, 0xfa, 0xd1, 0x8c, 0x05, 0xba, 0x67, 0x73, 0x98, 0x6c, 0x1f, 0xda, 0xeb, 0xef, 0xf9, 0xc1, + 0x88, 0xec, 0x47, 0x33, 0x16, 0x63, 0xdb, 0x56, 0xbd, 0x3c, 0xe8, 0xfe, 0xbe, 0x00, 0xb5, 0x23, + 0xbc, 0x08, 0x92, 0x93, 0x03, 0x2b, 0x47, 0xfa, 0x92, 0x28, 0x56, 0x89, 0x28, 0xcb, 0x8d, 0x8f, + 0xd8, 0xaf, 0x8a, 0x5c, 0x06, 0x48, 0x3e, 0x6f, 0xa2, 0x98, 0x0e, 0xe9, 0x00, 0x47, 0xb7, 0xa6, + 0x9a, 0xc3, 0xa4, 0xce, 0x31, 0x8b, 0x79, 0x14, 0xcc, 0x06, 0xa8, 0xa3, 0x39, 0x9b, 0x98, 0xf4, + 0x8f, 0x7d, 0xcd, 0x43, 0x7d, 0xc9, 0x12, 0xd1, 0xfe, 0x16, 0x94, 0x7b, 0xef, 0x18, 0xe1, 0x78, + 0xab, 0xea, 0x5b, 0x5f, 0xcd, 0xd5, 0xee, 0x74, 0x76, 0x11, 0xd2, 0x81, 0x9c, 0x46, 0x58, 0x3a, + 0xa5, 0x29, 0xbb, 0x6a, 0x3f, 0xeb, 0x2a, 0x79, 0xc7, 0x4a, 0x9e, 0x81, 0xc8, 0xee, 0xef, 0x92, + 0xc9, 0x05, 0xe1, 0x2a, 0x3d, 0xf2, 0x76, 0x3d, 0xf1, 0x4c, 0x28, 0x49, 0x7c, 0x2d, 0x4d, 0xbc, + 0xfb, 0x0f, 0x0b, 0x9e, 0x61, 0xd8, 0x4a, 0xed, 0x70, 0x16, 0x86, 0xf7, 0x24, 0x6e, 0x1d, 0x2a, + 0xe7, 0xea, 0x8d, 0xa9, 0xe7, 0x91, 0x92, 0xec, 0x4d, 0xb0, 0x77, 0x83, 0x09, 0x65, 0x54, 0xc4, + 0xdc, 0x8f, 0x23, 0x7e, 0x42, 0xe6, 0x24, 0xc4, 0xc4, 0x95, 0xbd, 0x5b, 0x7e, 0x91, 0xf7, 0xe7, + 0x47, 0x11, 0x65, 0x18, 0x4b, 0x09, 0x63, 0x49, 0x65, 0xf9, 0x5b, 0x3a, 0x4b, 0x54, 0xde, 0x52, + 0xd9, 0x4c, 0x69, 0x25, 0x9f, 0x52, 0x17, 0x1a, 0x87, 0x9c, 0x12, 0x16, 0x78, 0x64, 0xe2, 0xf3, + 0xb1, 0x9e, 0x42, 0x39, 0xcc, 0xfd, 0xb3, 0x05, 0xd5, 0x24, 0xaf, 0x46, 0x28, 0x56, 0x2e, 0x14, + 0xed, 0x9e, 0x65, 0xad, 0x91, 0xca, 0xa6, 0xfb, 0x62, 0xde, 0xfd, 0x3a, 0x54, 0x8e, 0x70, 0x92, + 0x61, 0x38, 0x65, 0x4f, 0x4b, 0x12, 0xef, 0x46, 0x17, 0x34, 0x4c, 0x42, 0xd1, 0x92, 0xbc, 0x2f, + 0x7b, 0x94, 0xc7, 0x97, 0x3a, 0x0c, 0x25, 0x48, 0xf4, 0x60, 0xe2, 0xd3, 0x50, 0xb3, 0x57, 0x42, + 0x52, 0xb8, 0x6a, 0x56, 0xb8, 0xb9, 0x5c, 0x65, 0xcc, 0x2e, 0xf9, 0x38, 0xd1, 0xb8, 0x1d, 0xa8, + 0x9e, 0xd1, 0xa9, 0xd8, 0x8f, 0x26, 0x13, 0xa9, 0xd3, 0x21, 0xb1, 0x24, 0x6b, 0xe1, 0x2c, 0xd5, + 0x92, 0x6c, 0xc4, 0x0e, 0x19, 0xfa, 0xb3, 0x30, 0x96, 0xaa, 0xc9, 0x4b, 0xd1, 0x80, 0xdc, 0xdf, + 0x5a, 0xd0, 0x54, 0x1d, 0x77, 0xc0, 0x62, 0xc2, 0x25, 0x66, 0x7f, 0x06, 0x65, 0xec, 0x31, 0x3c, + 0xac, 0xbe, 0xb5, 0x9e, 0x5f, 0x2f, 0x92, 0x2b, 0xed, 0x29, 0x25, 0x7b, 0x0f, 0xea, 0x72, 0x6c, + 0xf9, 0x2c, 0x96, 0x61, 0xa2, 0x8f, 0xfa, 0x56, 0x6b, 0xd1, 0x26, 0xdf, 0xd7, 0x9e, 0x69, 0x24, + 0x27, 0x4a, 0x2f, 0xd9, 0xce, 0xd2, 0xf7, 0x73, 0xc9, 0xcb, 0x83, 0xee, 0x6f, 0x52, 0xae, 0x27, + 0xc4, 0x9f, 0x93, 0x47, 0x70, 0x7d, 0x0d, 0x80, 0xa6, 0xfc, 0x41, 0x54, 0x0d, 0x9b, 0x25, 0x99, + 0xfe, 0xdd, 0x82, 0xa7, 0xea, 0x90, 0x63, 0x36, 0xa7, 0x31, 0x09, 0x1e, 0xc1, 0xf5, 0x0b, 0xa8, + 0xf4, 0xa6, 0x0f, 0xe2, 0xa9, 0xf5, 0x65, 0x45, 0xb4, 0x5b, 0x34, 0x2f, 0x2e, 0x5b, 0x11, 0xc3, + 0x68, 0x31, 0xce, 0xd2, 0x6d, 0x71, 0xfe, 0xd5, 0x82, 0x35, 0x75, 0xca, 0x8f, 0xe9, 0x60, 0xfc, + 0x91, 0xc3, 0x7c, 0x0d, 0xa0, 0xbc, 0x3e, 0x28, 0x4a, 0xc3, 0x66, 0xc9, 0x20, 0xff, 0x6d, 0xc1, + 0x8b, 0xa4, 0x98, 0xc3, 0x68, 0xff, 0xd2, 0x67, 0x23, 0x1d, 0xa9, 0x7c, 0x0f, 0xa0, 0x88, 0x4b, + 0x8e, 0xfa, 0x68, 0x30, 0x90, 0xff, 0x23, 0xb6, 0xef, 0x43, 0xed, 0x90, 0x32, 0x1f, 0xc1, 0xa5, + 0x43, 0xcb, 0x4c, 0xe4, 0xa8, 0xe9, 0xce, 0xf4, 0xfb, 0x49, 0xcf, 0xf4, 0x44, 0xce, 0xea, 0x53, + 0x5e, 0xa2, 0x3e, 0xee, 0xdf, 0x2c, 0x58, 0xc3, 0x27, 0xf5, 0x7e, 0x7b, 0x4c, 0x89, 0x5f, 0xc1, + 0x0a, 0x1a, 0x47, 0xcb, 0xe7, 0x21, 0x31, 0x90, 0x45, 0xd6, 0x57, 0x3e, 0xf9, 0x8a, 0x5c, 0xaa, + 0xc8, 0x99, 0xcd, 0x92, 0x45, 0xfe, 0xa5, 0x05, 0xcf, 0x53, 0xe2, 0x66, 0x8d, 0xe5, 0x77, 0x85, + 0x16, 0xb3, 0x22, 0x9b, 0x50, 0x96, 0x8c, 0xc2, 0xc3, 0xfa, 0xbd, 0xf8, 0xb0, 0x9e, 0x70, 0x7f, + 0x61, 0xc1, 0x86, 0x47, 0x06, 0x84, 0xce, 0x89, 0x7c, 0x3f, 0xef, 0x4e, 0xa7, 0xa1, 0xde, 0x80, + 0x1e, 0x51, 0x93, 0x1d, 0xa8, 0xe9, 0x03, 0x58, 0xac, 0x89, 0xdf, 0xb9, 0xf9, 0x64, 0xda, 0xf2, + 0x65, 0xe3, 0x11, 0x5f, 0xa4, 0xcb, 0x98, 0x96, 0xdc, 0x3f, 0x5a, 0xe0, 0x18, 0xa4, 0x4e, 0x79, + 0x34, 0x20, 0x42, 0x7c, 0xe4, 0xa1, 0x80, 0xe4, 0xc4, 0x2c, 0x8c, 0xf5, 0xc2, 0xa3, 0x25, 0x83, + 0x74, 0x29, 0x47, 0xfa, 0x0f, 0x16, 0x80, 0xda, 0x4b, 0xf0, 0xde, 0x6c, 0x43, 0x0d, 0x57, 0x3c, + 0xf4, 0xad, 0xa8, 0xbe, 0xc8, 0xf9, 0xce, 0x12, 0x92, 0xea, 0xa9, 0xb3, 0x71, 0xd1, 0x29, 0x24, + 0x67, 0x4b, 0xe9, 0xc6, 0x9a, 0x58, 0x5c, 0x58, 0x13, 0xbf, 0x9d, 0xb8, 0x46, 0x6f, 0xa5, 0xbb, + 0xbc, 0x19, 0x8a, 0xee, 0x18, 0x9e, 0x2a, 0xc9, 0x48, 0xb6, 0xdc, 0x1f, 0x76, 0x03, 0xf5, 0x0d, + 0x64, 0xa1, 0xa3, 0x44, 0x94, 0xfb, 0xf5, 0x6e, 0x10, 0xf4, 0xa3, 0x19, 0x1f, 0xa4, 0xfb, 0x75, + 0x0a, 0x48, 0x8e, 0xbb, 0x41, 0xf0, 0x93, 0x88, 0x07, 0x94, 0x8d, 0x74, 0x41, 0x0d, 0xc4, 0xfd, + 0xa7, 0x05, 0x1b, 0x0b, 0xde, 0x76, 0x83, 0x40, 0x97, 0x75, 0x3b, 0x2d, 0x94, 0x75, 0x7f, 0x0f, + 0x65, 0x83, 0xbb, 0x6e, 0x1c, 0xa6, 0x4b, 0xfc, 0x32, 0x67, 0xb9, 0xe0, 0xd2, 0x33, 0x4d, 0xec, + 0xef, 0x40, 0xb5, 0x37, 0xcd, 0x0d, 0xfe, 0x3b, 0x1d, 0xa7, 0xca, 0x4b, 0x0e, 0x83, 0xbf, 0x58, + 0xf0, 0x72, 0x81, 0x41, 0xbe, 0x9f, 0x1f, 0x15, 0xb8, 0x49, 0xbb, 0xf0, 0x10, 0xda, 0xf8, 0xa7, + 0x07, 0xb3, 0xab, 0x95, 0xb4, 0x64, 0x38, 0x97, 0xd0, 0xd4, 0xd1, 0xa4, 0x75, 0xfb, 0x1c, 0x2a, + 0x0a, 0xd2, 0xf4, 0x3f, 0xb9, 0x25, 0xfb, 0x8a, 0xba, 0x7a, 0x5e, 0xf4, 0x54, 0xb8, 0xcd, 0xd3, + 0x4f, 0x93, 0xd6, 0xec, 0x90, 0x90, 0xc4, 0x1f, 0xd6, 0xd7, 0xaf, 0x2c, 0xa8, 0xed, 0x85, 0xfe, + 0x60, 0x8c, 0x17, 0x77, 0x67, 0xf1, 0xe2, 0xde, 0x3d, 0xcf, 0xb2, 0xeb, 0x7b, 0xdf, 0x35, 0xdd, + 0xd1, 0x7e, 0x8c, 0x5b, 0x7a, 0xf7, 0xd1, 0xa9, 0xb6, 0x1b, 0xc0, 0x2a, 0x0a, 0x59, 0xe2, 0x3f, + 0x83, 0x32, 0x22, 0xb7, 0xce, 0xc1, 0x34, 0x1c, 0x4f, 0x29, 0x2d, 0x99, 0x89, 0x21, 0xac, 0xa1, + 0xba, 0x99, 0xf4, 0x0f, 0xe1, 0xe7, 0xd7, 0x16, 0xbc, 0xc8, 0xca, 0x65, 0xbe, 0x24, 0x1f, 0x5c, + 0xe2, 0xed, 0x1b, 0x03, 0x7e, 0xa9, 0xeb, 0xb3, 0xdc, 0xee, 0xfd, 0x3b, 0x0b, 0x9e, 0xf5, 0x49, + 0x38, 0x94, 0xa6, 0xe7, 0xd3, 0x20, 0xdd, 0x59, 0x76, 0xa0, 0x21, 0xe1, 0xe4, 0xd4, 0xbb, 0xa7, + 0x7b, 0x4e, 0xf5, 0x03, 0xb2, 0xbd, 0xa8, 0xe0, 0xbf, 0x22, 0xb6, 0xff, 0x1b, 0x00, 0x00, 0xff, + 0xff, 0x8b, 0x1e, 0x2f, 0xb4, 0x9d, 0x18, 0x00, 0x00, } From d40e1e47fdb882b25fcf3cc06c7fd7a750a3286f Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Thu, 23 Dec 2021 18:29:39 +0800 Subject: [PATCH 235/814] notification --- internal/rpc/group/group.go | 4 +- internal/rpc/msg/send_msg.go | 43 +++-- pkg/proto/group/group.pb.go | 267 +++++++++++++++--------------- pkg/proto/group/group.proto | 47 +++--- pkg/proto/sdk_ws/ws.pb.go | 303 ++++++++++++++++++----------------- pkg/proto/sdk_ws/ws.proto | 1 + 6 files changed, 343 insertions(+), 322 deletions(-) diff --git a/internal/rpc/group/group.go b/internal/rpc/group/group.go index 6d85ccf83..6ac49ac72 100644 --- a/internal/rpc/group/group.go +++ b/internal/rpc/group/group.go @@ -1,7 +1,7 @@ package group import ( - "Open_IM/internal/rpc/chat" + chat "Open_IM/internal/rpc/msg" "Open_IM/pkg/common/config" "Open_IM/pkg/common/constant" "Open_IM/pkg/common/db" @@ -132,7 +132,7 @@ func (s *groupServer) CreateGroup(ctx context.Context, req *pbGroup.CreateGroupR resp.ErrMsg = constant.ErrCreateGroup.ErrMsg return resp, nil } - chat.GroupCreatedNotification(req) + chat.GroupCreatedNotification(req, groupId) utils.CopyStructFields(resp.GroupInfo, group) log.NewInfo(req.OperationID, "rpc CreateGroup return ", resp.String()) return resp, nil diff --git a/internal/rpc/msg/send_msg.go b/internal/rpc/msg/send_msg.go index de52d7022..26e49bfa8 100644 --- a/internal/rpc/msg/send_msg.go +++ b/internal/rpc/msg/send_msg.go @@ -4,9 +4,10 @@ import ( "Open_IM/pkg/common/config" "Open_IM/pkg/common/constant" "Open_IM/pkg/common/db" - immysql "Open_IM/pkg/common/db/mysql_model/im_mysql_model" + imdb "Open_IM/pkg/common/db/mysql_model/im_mysql_model" http2 "Open_IM/pkg/common/http" "Open_IM/pkg/common/log" + "Open_IM/pkg/common/token_verify" "Open_IM/pkg/grpc-etcdv3/getcdv3" pbChat "Open_IM/pkg/proto/chat" pbGroup "Open_IM/pkg/proto/group" @@ -306,26 +307,50 @@ func Notification(n *NotificationMsg, onlineUserOnly bool) { // GroupMemberFullInfo Creator = 2; // repeated GroupMemberFullInfo MemberList = 3; // uint64 OperationTime = 4; -//} -func GroupCreatedNotification(operationID string, creator *immysql.User, group *immysql.Group, memberList []immysql.GroupMember) { +//} creator->group +func GroupCreatedNotification(req *pbGroup.CreateGroupReq, groupID string) { var n NotificationMsg - n.SendID = creator.UserID - n.RecvID = group.GroupID + n.SendID = req.OpUserID + n.RecvID = groupID n.ContentType = constant.CreateGroupTip n.SessionType = constant.GroupChatType n.MsgFrom = constant.SysMsgType - n.OperationID = operationID + n.OperationID = req.OperationID var groupCreated open_im_sdk.GroupCreatedTips groupCreated.Group = &open_im_sdk.GroupInfo{} + + if token_verify.IsMangerUserID(req.OpUserID) { + u, err := imdb.FindUserByUID(req.OpUserID) + if err != nil || u == nil { + return + } + utils.CopyStructFields(groupCreated.Creator, u) + groupCreated.Creator.AppMangerLevel = 1 + } else { + u, err := imdb.FindGroupMemberInfoByGroupIdAndUserId(groupID, req.OpUserID) + if err != nil || u == nil { + return + } + utils.CopyStructFields(groupCreated.Creator, u) + } + + group, err := imdb.FindGroupInfoByGroupId(groupID) + if err != nil || group == nil { + return + } utils.CopyStructFields(groupCreated.Group, group) groupCreated.Creator = &open_im_sdk.GroupMemberFullInfo{} - utils.CopyStructFields(groupCreated.Creator, creator) - for _, v := range memberList { + + for _, v := range req.InitMemberList { var groupMemberInfo open_im_sdk.GroupMemberFullInfo - utils.CopyStructFields(&groupMemberInfo, v) + member, err := imdb.GetMemberInfoById(groupID, v.UserID) + if err != nil { + utils.CopyStructFields(&groupMemberInfo, member) + } groupCreated.MemberList = append(groupCreated.MemberList, &groupMemberInfo) } + var tips open_im_sdk.TipsComm tips.Detail, _ = json.Marshal(groupCreated) tips.DefaultTips = config.Config.Notification.GroupCreated.DefaultTips.Tips diff --git a/pkg/proto/group/group.pb.go b/pkg/proto/group/group.pb.go index b18a09367..caa26e0e5 100644 --- a/pkg/proto/group/group.pb.go +++ b/pkg/proto/group/group.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_group_23d97c4cd172f0ff, []int{0} + return fileDescriptor_group_2ff972788727c811, []int{0} } func (m *CommonResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_CommonResp.Unmarshal(m, b) @@ -82,7 +82,7 @@ func (m *GroupAddMemberInfo) Reset() { *m = GroupAddMemberInfo{} } func (m *GroupAddMemberInfo) String() string { return proto.CompactTextString(m) } func (*GroupAddMemberInfo) ProtoMessage() {} func (*GroupAddMemberInfo) Descriptor() ([]byte, []int) { - return fileDescriptor_group_23d97c4cd172f0ff, []int{1} + return fileDescriptor_group_2ff972788727c811, []int{1} } func (m *GroupAddMemberInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupAddMemberInfo.Unmarshal(m, b) @@ -135,7 +135,7 @@ func (m *CreateGroupReq) Reset() { *m = CreateGroupReq{} } func (m *CreateGroupReq) String() string { return proto.CompactTextString(m) } func (*CreateGroupReq) ProtoMessage() {} func (*CreateGroupReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_23d97c4cd172f0ff, []int{2} + return fileDescriptor_group_2ff972788727c811, []int{2} } func (m *CreateGroupReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_CreateGroupReq.Unmarshal(m, b) @@ -231,7 +231,7 @@ func (m *CreateGroupResp) Reset() { *m = CreateGroupResp{} } func (m *CreateGroupResp) String() string { return proto.CompactTextString(m) } func (*CreateGroupResp) ProtoMessage() {} func (*CreateGroupResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_23d97c4cd172f0ff, []int{3} + return fileDescriptor_group_2ff972788727c811, []int{3} } func (m *CreateGroupResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_CreateGroupResp.Unmarshal(m, b) @@ -285,7 +285,7 @@ func (m *GetGroupsInfoReq) Reset() { *m = GetGroupsInfoReq{} } func (m *GetGroupsInfoReq) String() string { return proto.CompactTextString(m) } func (*GetGroupsInfoReq) ProtoMessage() {} func (*GetGroupsInfoReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_23d97c4cd172f0ff, []int{4} + return fileDescriptor_group_2ff972788727c811, []int{4} } func (m *GetGroupsInfoReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetGroupsInfoReq.Unmarshal(m, b) @@ -339,7 +339,7 @@ func (m *GetGroupsInfoResp) Reset() { *m = GetGroupsInfoResp{} } func (m *GetGroupsInfoResp) String() string { return proto.CompactTextString(m) } func (*GetGroupsInfoResp) ProtoMessage() {} func (*GetGroupsInfoResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_23d97c4cd172f0ff, []int{5} + return fileDescriptor_group_2ff972788727c811, []int{5} } func (m *GetGroupsInfoResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetGroupsInfoResp.Unmarshal(m, b) @@ -394,7 +394,7 @@ func (m *SetGroupInfoReq) Reset() { *m = SetGroupInfoReq{} } func (m *SetGroupInfoReq) String() string { return proto.CompactTextString(m) } func (*SetGroupInfoReq) ProtoMessage() {} func (*SetGroupInfoReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_23d97c4cd172f0ff, []int{6} + return fileDescriptor_group_2ff972788727c811, []int{6} } func (m *SetGroupInfoReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SetGroupInfoReq.Unmarshal(m, b) @@ -456,7 +456,7 @@ func (m *GetGroupApplicationListReq) Reset() { *m = GetGroupApplicationL func (m *GetGroupApplicationListReq) String() string { return proto.CompactTextString(m) } func (*GetGroupApplicationListReq) ProtoMessage() {} func (*GetGroupApplicationListReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_23d97c4cd172f0ff, []int{7} + return fileDescriptor_group_2ff972788727c811, []int{7} } func (m *GetGroupApplicationListReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetGroupApplicationListReq.Unmarshal(m, b) @@ -523,7 +523,7 @@ func (m *GetGroupApplicationList_Data_User) Reset() { *m = GetGroupAppli func (m *GetGroupApplicationList_Data_User) String() string { return proto.CompactTextString(m) } func (*GetGroupApplicationList_Data_User) ProtoMessage() {} func (*GetGroupApplicationList_Data_User) Descriptor() ([]byte, []int) { - return fileDescriptor_group_23d97c4cd172f0ff, []int{8} + return fileDescriptor_group_2ff972788727c811, []int{8} } func (m *GetGroupApplicationList_Data_User) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetGroupApplicationList_Data_User.Unmarshal(m, b) @@ -667,7 +667,7 @@ func (m *GetGroupApplicationListData) Reset() { *m = GetGroupApplication func (m *GetGroupApplicationListData) String() string { return proto.CompactTextString(m) } func (*GetGroupApplicationListData) ProtoMessage() {} func (*GetGroupApplicationListData) Descriptor() ([]byte, []int) { - return fileDescriptor_group_23d97c4cd172f0ff, []int{9} + return fileDescriptor_group_2ff972788727c811, []int{9} } func (m *GetGroupApplicationListData) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetGroupApplicationListData.Unmarshal(m, b) @@ -714,7 +714,7 @@ func (m *GetGroupApplicationListResp) Reset() { *m = GetGroupApplication func (m *GetGroupApplicationListResp) String() string { return proto.CompactTextString(m) } func (*GetGroupApplicationListResp) ProtoMessage() {} func (*GetGroupApplicationListResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_23d97c4cd172f0ff, []int{10} + return fileDescriptor_group_2ff972788727c811, []int{10} } func (m *GetGroupApplicationListResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetGroupApplicationListResp.Unmarshal(m, b) @@ -770,7 +770,7 @@ func (m *TransferGroupOwnerReq) Reset() { *m = TransferGroupOwnerReq{} } func (m *TransferGroupOwnerReq) String() string { return proto.CompactTextString(m) } func (*TransferGroupOwnerReq) ProtoMessage() {} func (*TransferGroupOwnerReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_23d97c4cd172f0ff, []int{11} + return fileDescriptor_group_2ff972788727c811, []int{11} } func (m *TransferGroupOwnerReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_TransferGroupOwnerReq.Unmarshal(m, b) @@ -840,7 +840,7 @@ func (m *JoinGroupReq) Reset() { *m = JoinGroupReq{} } func (m *JoinGroupReq) String() string { return proto.CompactTextString(m) } func (*JoinGroupReq) ProtoMessage() {} func (*JoinGroupReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_23d97c4cd172f0ff, []int{12} + return fileDescriptor_group_2ff972788727c811, []int{12} } func (m *JoinGroupReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_JoinGroupReq.Unmarshal(m, b) @@ -915,7 +915,7 @@ func (m *GroupApplicationResponseReq) Reset() { *m = GroupApplicationRes func (m *GroupApplicationResponseReq) String() string { return proto.CompactTextString(m) } func (*GroupApplicationResponseReq) ProtoMessage() {} func (*GroupApplicationResponseReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_23d97c4cd172f0ff, []int{13} + return fileDescriptor_group_2ff972788727c811, []int{13} } func (m *GroupApplicationResponseReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupApplicationResponseReq.Unmarshal(m, b) @@ -1006,7 +1006,7 @@ func (m *SetOwnerGroupNickNameReq) Reset() { *m = SetOwnerGroupNickNameR func (m *SetOwnerGroupNickNameReq) String() string { return proto.CompactTextString(m) } func (*SetOwnerGroupNickNameReq) ProtoMessage() {} func (*SetOwnerGroupNickNameReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_23d97c4cd172f0ff, []int{14} + return fileDescriptor_group_2ff972788727c811, []int{14} } func (m *SetOwnerGroupNickNameReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SetOwnerGroupNickNameReq.Unmarshal(m, b) @@ -1075,7 +1075,7 @@ func (m *QuitGroupReq) Reset() { *m = QuitGroupReq{} } func (m *QuitGroupReq) String() string { return proto.CompactTextString(m) } func (*QuitGroupReq) ProtoMessage() {} func (*QuitGroupReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_23d97c4cd172f0ff, []int{15} + return fileDescriptor_group_2ff972788727c811, []int{15} } func (m *QuitGroupReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_QuitGroupReq.Unmarshal(m, b) @@ -1138,7 +1138,7 @@ func (m *GetGroupMemberListReq) Reset() { *m = GetGroupMemberListReq{} } func (m *GetGroupMemberListReq) String() string { return proto.CompactTextString(m) } func (*GetGroupMemberListReq) ProtoMessage() {} func (*GetGroupMemberListReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_23d97c4cd172f0ff, []int{16} + return fileDescriptor_group_2ff972788727c811, []int{16} } func (m *GetGroupMemberListReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetGroupMemberListReq.Unmarshal(m, b) @@ -1207,7 +1207,7 @@ func (m *GetGroupMemberListResp) Reset() { *m = GetGroupMemberListResp{} func (m *GetGroupMemberListResp) String() string { return proto.CompactTextString(m) } func (*GetGroupMemberListResp) ProtoMessage() {} func (*GetGroupMemberListResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_23d97c4cd172f0ff, []int{17} + return fileDescriptor_group_2ff972788727c811, []int{17} } func (m *GetGroupMemberListResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetGroupMemberListResp.Unmarshal(m, b) @@ -1269,7 +1269,7 @@ func (m *GetGroupMembersInfoReq) Reset() { *m = GetGroupMembersInfoReq{} func (m *GetGroupMembersInfoReq) String() string { return proto.CompactTextString(m) } func (*GetGroupMembersInfoReq) ProtoMessage() {} func (*GetGroupMembersInfoReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_23d97c4cd172f0ff, []int{18} + return fileDescriptor_group_2ff972788727c811, []int{18} } func (m *GetGroupMembersInfoReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetGroupMembersInfoReq.Unmarshal(m, b) @@ -1330,7 +1330,7 @@ func (m *GetGroupMembersInfoResp) Reset() { *m = GetGroupMembersInfoResp func (m *GetGroupMembersInfoResp) String() string { return proto.CompactTextString(m) } func (*GetGroupMembersInfoResp) ProtoMessage() {} func (*GetGroupMembersInfoResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_23d97c4cd172f0ff, []int{19} + return fileDescriptor_group_2ff972788727c811, []int{19} } func (m *GetGroupMembersInfoResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetGroupMembersInfoResp.Unmarshal(m, b) @@ -1386,7 +1386,7 @@ func (m *KickGroupMemberReq) Reset() { *m = KickGroupMemberReq{} } func (m *KickGroupMemberReq) String() string { return proto.CompactTextString(m) } func (*KickGroupMemberReq) ProtoMessage() {} func (*KickGroupMemberReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_23d97c4cd172f0ff, []int{20} + return fileDescriptor_group_2ff972788727c811, []int{20} } func (m *KickGroupMemberReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_KickGroupMemberReq.Unmarshal(m, b) @@ -1453,7 +1453,7 @@ func (m *Id2Result) Reset() { *m = Id2Result{} } func (m *Id2Result) String() string { return proto.CompactTextString(m) } func (*Id2Result) ProtoMessage() {} func (*Id2Result) Descriptor() ([]byte, []int) { - return fileDescriptor_group_23d97c4cd172f0ff, []int{21} + return fileDescriptor_group_2ff972788727c811, []int{21} } func (m *Id2Result) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_Id2Result.Unmarshal(m, b) @@ -1500,7 +1500,7 @@ func (m *KickGroupMemberResp) Reset() { *m = KickGroupMemberResp{} } func (m *KickGroupMemberResp) String() string { return proto.CompactTextString(m) } func (*KickGroupMemberResp) ProtoMessage() {} func (*KickGroupMemberResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_23d97c4cd172f0ff, []int{22} + return fileDescriptor_group_2ff972788727c811, []int{22} } func (m *KickGroupMemberResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_KickGroupMemberResp.Unmarshal(m, b) @@ -1554,7 +1554,7 @@ func (m *GetJoinedGroupListReq) Reset() { *m = GetJoinedGroupListReq{} } func (m *GetJoinedGroupListReq) String() string { return proto.CompactTextString(m) } func (*GetJoinedGroupListReq) ProtoMessage() {} func (*GetJoinedGroupListReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_23d97c4cd172f0ff, []int{23} + return fileDescriptor_group_2ff972788727c811, []int{23} } func (m *GetJoinedGroupListReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetJoinedGroupListReq.Unmarshal(m, b) @@ -1608,7 +1608,7 @@ func (m *GetJoinedGroupListResp) Reset() { *m = GetJoinedGroupListResp{} func (m *GetJoinedGroupListResp) String() string { return proto.CompactTextString(m) } func (*GetJoinedGroupListResp) ProtoMessage() {} func (*GetJoinedGroupListResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_23d97c4cd172f0ff, []int{24} + return fileDescriptor_group_2ff972788727c811, []int{24} } func (m *GetJoinedGroupListResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetJoinedGroupListResp.Unmarshal(m, b) @@ -1664,7 +1664,7 @@ func (m *InviteUserToGroupReq) Reset() { *m = InviteUserToGroupReq{} } func (m *InviteUserToGroupReq) String() string { return proto.CompactTextString(m) } func (*InviteUserToGroupReq) ProtoMessage() {} func (*InviteUserToGroupReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_23d97c4cd172f0ff, []int{25} + return fileDescriptor_group_2ff972788727c811, []int{25} } func (m *InviteUserToGroupReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_InviteUserToGroupReq.Unmarshal(m, b) @@ -1732,7 +1732,7 @@ func (m *InviteUserToGroupResp) Reset() { *m = InviteUserToGroupResp{} } func (m *InviteUserToGroupResp) String() string { return proto.CompactTextString(m) } func (*InviteUserToGroupResp) ProtoMessage() {} func (*InviteUserToGroupResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_23d97c4cd172f0ff, []int{26} + return fileDescriptor_group_2ff972788727c811, []int{26} } func (m *InviteUserToGroupResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_InviteUserToGroupResp.Unmarshal(m, b) @@ -1775,9 +1775,8 @@ func (m *InviteUserToGroupResp) GetId2ResultList() []*Id2Result { type GetGroupAllMemberReq struct { GroupID string `protobuf:"bytes,1,opt,name=GroupID" json:"GroupID,omitempty"` - FromUserID string `protobuf:"bytes,2,opt,name=FromUserID" json:"FromUserID,omitempty"` + OpUserID string `protobuf:"bytes,2,opt,name=OpUserID" json:"OpUserID,omitempty"` OperationID string `protobuf:"bytes,3,opt,name=OperationID" json:"OperationID,omitempty"` - OpUserID string `protobuf:"bytes,4,opt,name=OpUserID" json:"OpUserID,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -1787,7 +1786,7 @@ func (m *GetGroupAllMemberReq) Reset() { *m = GetGroupAllMemberReq{} } func (m *GetGroupAllMemberReq) String() string { return proto.CompactTextString(m) } func (*GetGroupAllMemberReq) ProtoMessage() {} func (*GetGroupAllMemberReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_23d97c4cd172f0ff, []int{27} + return fileDescriptor_group_2ff972788727c811, []int{27} } func (m *GetGroupAllMemberReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetGroupAllMemberReq.Unmarshal(m, b) @@ -1814,9 +1813,9 @@ func (m *GetGroupAllMemberReq) GetGroupID() string { return "" } -func (m *GetGroupAllMemberReq) GetFromUserID() string { +func (m *GetGroupAllMemberReq) GetOpUserID() string { if m != nil { - return m.FromUserID + return m.OpUserID } return "" } @@ -1828,13 +1827,6 @@ func (m *GetGroupAllMemberReq) GetOperationID() string { return "" } -func (m *GetGroupAllMemberReq) GetOpUserID() string { - if m != nil { - return m.OpUserID - } - return "" -} - type GetGroupAllMemberResp struct { ErrCode int32 `protobuf:"varint,1,opt,name=ErrCode" json:"ErrCode,omitempty"` ErrMsg string `protobuf:"bytes,2,opt,name=ErrMsg" json:"ErrMsg,omitempty"` @@ -1848,7 +1840,7 @@ func (m *GetGroupAllMemberResp) Reset() { *m = GetGroupAllMemberResp{} } func (m *GetGroupAllMemberResp) String() string { return proto.CompactTextString(m) } func (*GetGroupAllMemberResp) ProtoMessage() {} func (*GetGroupAllMemberResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_23d97c4cd172f0ff, []int{28} + return fileDescriptor_group_2ff972788727c811, []int{28} } func (m *GetGroupAllMemberResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetGroupAllMemberResp.Unmarshal(m, b) @@ -2424,102 +2416,101 @@ var _Group_serviceDesc = grpc.ServiceDesc{ Metadata: "group/group.proto", } -func init() { proto.RegisterFile("group/group.proto", fileDescriptor_group_23d97c4cd172f0ff) } - -var fileDescriptor_group_23d97c4cd172f0ff = []byte{ - // 1492 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x58, 0xcb, 0x6f, 0x1c, 0x45, - 0x13, 0xd7, 0xec, 0xc3, 0xf1, 0x96, 0x1f, 0x6b, 0x77, 0x62, 0x67, 0xbe, 0x89, 0xbf, 0xc8, 0x19, - 0xa1, 0xc8, 0x8a, 0x90, 0x2d, 0x39, 0x08, 0x09, 0x25, 0x42, 0x71, 0xfc, 0x48, 0x16, 0xb0, 0xad, - 0x8c, 0x37, 0x17, 0x2e, 0x66, 0xb2, 0xd3, 0x59, 0x0d, 0x3b, 0x3b, 0x33, 0x3b, 0x3d, 0x8b, 0x13, - 0x2e, 0x80, 0x90, 0xe0, 0x80, 0x80, 0x5c, 0x39, 0x72, 0x80, 0x23, 0xe2, 0xc0, 0x9d, 0x03, 0xff, - 0x18, 0xea, 0xc7, 0xcc, 0xf6, 0xf4, 0x3c, 0x76, 0x65, 0x4b, 0xe4, 0xb2, 0xda, 0xae, 0xaa, 0xee, - 0x7a, 0x74, 0xd5, 0xaf, 0x6a, 0x1a, 0x56, 0xfb, 0x51, 0x30, 0x0e, 0x77, 0xd8, 0xef, 0x76, 0x18, - 0x05, 0x71, 0x80, 0x9a, 0x6c, 0x61, 0xdc, 0x39, 0x0d, 0xb1, 0x7f, 0xde, 0x39, 0xde, 0x09, 0x07, - 0xfd, 0x1d, 0xc6, 0xd9, 0x21, 0xce, 0xe0, 0xfc, 0x82, 0xec, 0x5c, 0x10, 0x2e, 0x69, 0x7e, 0x08, - 0xb0, 0x1f, 0x0c, 0x87, 0x81, 0x6f, 0x61, 0x12, 0x22, 0x1d, 0xae, 0x1d, 0x46, 0xd1, 0x7e, 0xe0, - 0x60, 0x5d, 0xdb, 0xd4, 0xb6, 0x9a, 0x56, 0xb2, 0x44, 0xeb, 0x30, 0x77, 0x18, 0x45, 0xc7, 0xa4, - 0xaf, 0xd7, 0x36, 0xb5, 0xad, 0x96, 0x25, 0x56, 0xe6, 0x23, 0x40, 0x4f, 0xa8, 0xae, 0x3d, 0xc7, - 0x39, 0xc6, 0xc3, 0x17, 0x38, 0xea, 0xf8, 0x2f, 0x03, 0x2a, 0xfd, 0x9c, 0xe0, 0xa8, 0x73, 0xc0, - 0x8e, 0x69, 0x59, 0x62, 0x85, 0x10, 0x34, 0xac, 0xc0, 0xc3, 0xec, 0x8c, 0xa6, 0xc5, 0xfe, 0x9b, - 0xff, 0xd4, 0x60, 0x79, 0x3f, 0xc2, 0x76, 0x8c, 0xd9, 0x41, 0x16, 0x1e, 0xa1, 0x3d, 0x58, 0xee, - 0xf8, 0x6e, 0xcc, 0x0f, 0xfc, 0xc4, 0x25, 0xb1, 0xae, 0x6d, 0xd6, 0xb7, 0x16, 0x76, 0xff, 0xb7, - 0xcd, 0x9d, 0xcc, 0x6b, 0xb4, 0x94, 0x0d, 0x68, 0x03, 0x5a, 0x4c, 0xea, 0xc4, 0x1e, 0x62, 0x61, - 0xf2, 0x84, 0x80, 0x4c, 0x58, 0xec, 0xf8, 0x71, 0x14, 0x38, 0xe3, 0x5e, 0xec, 0x06, 0xbe, 0x5e, - 0x67, 0x02, 0x19, 0x1a, 0x95, 0x39, 0x09, 0x62, 0xf7, 0xa5, 0xdb, 0xb3, 0x99, 0x4c, 0x83, 0xcb, - 0xc8, 0x34, 0x1a, 0xaf, 0x23, 0xbb, 0x87, 0x9f, 0x47, 0x9e, 0xde, 0x64, 0xec, 0x64, 0x89, 0x56, - 0xa0, 0x7e, 0xf8, 0x2a, 0xd6, 0xe7, 0x18, 0x95, 0xfe, 0x45, 0x9b, 0xb0, 0x70, 0x1a, 0xe2, 0x88, - 0x6d, 0xec, 0x1c, 0xe8, 0xd7, 0x18, 0x47, 0x26, 0x21, 0x03, 0xe6, 0x4f, 0x43, 0x11, 0xb7, 0x79, - 0xc6, 0x4e, 0xd7, 0xe8, 0x36, 0xc0, 0x51, 0x14, 0x0c, 0x05, 0xb7, 0xc5, 0xb8, 0x12, 0xc5, 0x7c, - 0x0d, 0xed, 0x4c, 0x10, 0x2f, 0x73, 0x99, 0xe8, 0x3d, 0x11, 0x34, 0x1a, 0x51, 0x16, 0x93, 0x85, - 0xdd, 0xf5, 0xed, 0x80, 0xe6, 0x90, 0x3b, 0x3c, 0x27, 0xce, 0x60, 0x3b, 0xe5, 0x5a, 0x13, 0x41, - 0x33, 0x82, 0x95, 0x27, 0x38, 0x66, 0x6b, 0xc2, 0x78, 0x78, 0x44, 0x9d, 0xe5, 0x02, 0x07, 0xe9, - 0xf5, 0xb5, 0x2c, 0x99, 0xa4, 0x86, 0xa3, 0x56, 0x1d, 0x8e, 0x7a, 0x36, 0x1c, 0xe6, 0xb7, 0x1a, - 0xac, 0x2a, 0x4a, 0x2f, 0xe5, 0xf1, 0x43, 0x58, 0x4a, 0x1d, 0x61, 0x96, 0xd6, 0x59, 0xa2, 0x95, - 0x79, 0x9d, 0x15, 0x36, 0x7f, 0xd3, 0xa0, 0x7d, 0x26, 0xac, 0x48, 0x3c, 0xcf, 0xc4, 0x50, 0x9b, - 0x31, 0x86, 0x19, 0x5f, 0x6b, 0x95, 0x57, 0x5f, 0x57, 0xaf, 0x5e, 0x8d, 0x64, 0x23, 0x17, 0x49, - 0xf3, 0x4b, 0x30, 0x92, 0x60, 0xed, 0x85, 0xa1, 0x27, 0xb2, 0x97, 0xba, 0x40, 0x2d, 0x96, 0x75, - 0x6b, 0x8a, 0xee, 0xe9, 0xb7, 0x34, 0xc5, 0x3a, 0xf3, 0x97, 0x06, 0xdc, 0x29, 0x51, 0x7e, 0x7e, - 0x60, 0xc7, 0xf6, 0x39, 0x95, 0x43, 0xcb, 0x50, 0x4b, 0xb5, 0xd7, 0x3a, 0x07, 0xf4, 0x26, 0x45, - 0xb2, 0x08, 0x9d, 0xc9, 0x72, 0x6a, 0x34, 0x0c, 0x98, 0xef, 0x06, 0x82, 0xcb, 0x43, 0x91, 0xae, - 0x29, 0xfc, 0x1c, 0x79, 0x76, 0x9f, 0xd5, 0x6a, 0xd3, 0x62, 0xff, 0xe9, 0x79, 0x16, 0x1e, 0x8d, - 0x31, 0x89, 0x69, 0x76, 0xf0, 0x7a, 0x95, 0x28, 0x94, 0xff, 0xd4, 0xf6, 0x1d, 0x0f, 0x3b, 0x94, - 0xcf, 0xab, 0x56, 0xa2, 0x50, 0x4b, 0xf7, 0x1c, 0xa7, 0xeb, 0x0e, 0x31, 0xab, 0xd9, 0xba, 0x95, - 0x2c, 0xd1, 0x3d, 0x58, 0x49, 0xec, 0x3a, 0x71, 0x7b, 0x03, 0x9f, 0x22, 0x11, 0x2f, 0xdc, 0x1c, - 0x1d, 0xdd, 0x85, 0x65, 0x6e, 0x65, 0x2a, 0x09, 0x4c, 0x52, 0xa1, 0xa2, 0x2d, 0x68, 0x27, 0x7b, - 0x13, 0xe0, 0x59, 0x60, 0x82, 0x2a, 0x19, 0xbd, 0x03, 0x4b, 0x7c, 0x6f, 0x22, 0xb7, 0xc8, 0xe4, - 0xb2, 0x44, 0x7a, 0xbf, 0xc2, 0x17, 0x4a, 0xd5, 0x97, 0xf8, 0xfd, 0x4a, 0x24, 0x1a, 0xb3, 0xee, - 0xeb, 0x10, 0xeb, 0xcb, 0x3c, 0x66, 0xf4, 0x3f, 0x85, 0x46, 0x2e, 0x72, 0x16, 0xdb, 0xf1, 0x98, - 0xe8, 0x6d, 0xc6, 0xcb, 0xd0, 0x26, 0x32, 0x16, 0x26, 0x63, 0x2f, 0xd6, 0x57, 0x64, 0x19, 0x4e, - 0x33, 0x47, 0x70, 0xab, 0x24, 0x35, 0x68, 0x66, 0xa0, 0x1b, 0xd0, 0xdc, 0x0f, 0xc6, 0x7e, 0x2c, - 0x8a, 0x99, 0x2f, 0xd0, 0x43, 0x68, 0x30, 0x5b, 0x6b, 0xac, 0x52, 0xb7, 0x92, 0x96, 0x30, 0x2d, - 0xc5, 0x2c, 0xb6, 0xcb, 0xfc, 0x5e, 0x2b, 0xd5, 0x79, 0x49, 0x08, 0x79, 0x1f, 0x1a, 0x54, 0x89, - 0xc0, 0x4b, 0xb3, 0xda, 0x1e, 0x2a, 0x69, 0x31, 0x79, 0xf3, 0x6f, 0x0d, 0xd6, 0xba, 0x91, 0xed, - 0x93, 0x97, 0x38, 0x62, 0xa2, 0xa7, 0x17, 0x3e, 0x8e, 0x68, 0x41, 0x4a, 0xc9, 0xaf, 0x65, 0x93, - 0xff, 0x2e, 0x2c, 0x9f, 0x7a, 0x0e, 0x13, 0xcc, 0x80, 0x85, 0x42, 0xa5, 0x72, 0x27, 0xf8, 0x42, - 0x96, 0xe3, 0x85, 0xa2, 0x50, 0xa7, 0x43, 0x47, 0x06, 0x1c, 0x9a, 0x0a, 0x08, 0xff, 0xae, 0xc1, - 0xe2, 0x47, 0x81, 0xeb, 0xa7, 0x7d, 0xbb, 0xdc, 0x70, 0x5e, 0x65, 0xc7, 0x98, 0x10, 0xbb, 0x9f, - 0xf4, 0x63, 0x89, 0x72, 0x75, 0x8c, 0xab, 0x34, 0xf4, 0xe7, 0x1a, 0xdc, 0x52, 0x6f, 0x83, 0xde, - 0x76, 0xe0, 0x13, 0x2c, 0xba, 0x95, 0x7c, 0xba, 0x56, 0x7d, 0xba, 0x8a, 0xcf, 0x92, 0xd7, 0xf5, - 0x2a, 0xac, 0x6a, 0x54, 0x62, 0xd5, 0x35, 0x05, 0xab, 0x24, 0x5c, 0x81, 0x2c, 0xae, 0x64, 0x11, - 0x69, 0x31, 0x87, 0x48, 0x6a, 0xe5, 0xb5, 0x0b, 0x2a, 0xef, 0x0f, 0x0d, 0xf4, 0x33, 0x1c, 0xb3, - 0x5c, 0xe0, 0x63, 0x91, 0xdb, 0x1b, 0xd0, 0xd1, 0xa8, 0xfa, 0x1a, 0x0d, 0x98, 0x4f, 0x01, 0x4a, - 0x84, 0x21, 0x85, 0x26, 0x25, 0x88, 0xf5, 0x69, 0xad, 0xa2, 0x30, 0x1c, 0xa5, 0x57, 0xf8, 0x9d, - 0x06, 0x8b, 0xcf, 0xc6, 0x6e, 0x3c, 0x43, 0xae, 0x5d, 0xb9, 0x67, 0x65, 0x0c, 0x69, 0x28, 0x86, - 0xfc, 0xaa, 0xc1, 0x5a, 0x52, 0xdc, 0x93, 0x79, 0x73, 0x6a, 0xd8, 0x4a, 0xb3, 0x67, 0x7a, 0xd8, - 0xd6, 0x61, 0xee, 0xc8, 0xf5, 0x62, 0x1c, 0x31, 0x5b, 0x9a, 0x96, 0x58, 0x51, 0x7d, 0x27, 0xf8, - 0x55, 0x7c, 0x86, 0x47, 0xa2, 0xa1, 0x25, 0x4b, 0x5a, 0x98, 0xeb, 0x45, 0x36, 0x5e, 0x0a, 0xdf, - 0x1e, 0x01, 0x0c, 0x27, 0x83, 0x38, 0x9f, 0x8f, 0x36, 0xf3, 0x13, 0x0d, 0xd7, 0x73, 0x34, 0xf6, - 0x3c, 0x36, 0xdb, 0x48, 0x7b, 0xa8, 0x4e, 0x5f, 0x18, 0xca, 0x3d, 0x48, 0x96, 0xe6, 0x9b, 0x9c, - 0xa1, 0xe9, 0x04, 0x59, 0x89, 0x25, 0x92, 0x41, 0x35, 0x36, 0x5a, 0xca, 0xea, 0x2a, 0xe6, 0xc6, - 0x19, 0x66, 0xa5, 0x1f, 0x35, 0xb8, 0x59, 0x68, 0xd2, 0xdb, 0x09, 0x9e, 0xf9, 0xa7, 0x06, 0xe8, - 0x63, 0xb7, 0x37, 0x90, 0xe4, 0xaa, 0xc3, 0x73, 0x0f, 0x56, 0xa8, 0x3c, 0x6f, 0xdf, 0x62, 0xfe, - 0xe6, 0x41, 0xca, 0xd1, 0xa9, 0xd9, 0x16, 0xb6, 0x49, 0xfa, 0x05, 0x24, 0x56, 0x6a, 0x98, 0x9a, - 0xd5, 0x80, 0x38, 0xa7, 0x94, 0xc8, 0x03, 0x68, 0x75, 0x9c, 0x5d, 0x8e, 0x34, 0xa5, 0x9f, 0x82, - 0x4c, 0x35, 0xc3, 0x27, 0xfe, 0x31, 0x28, 0x56, 0xe6, 0x57, 0x70, 0x3d, 0xe7, 0xee, 0x25, 0xfb, - 0xf2, 0x52, 0x6a, 0x85, 0x14, 0xfd, 0x15, 0xd1, 0xa0, 0x53, 0x9e, 0x95, 0x15, 0x33, 0xc7, 0xac, - 0xbe, 0x69, 0x5f, 0xc3, 0x0e, 0xb3, 0x22, 0xa9, 0xef, 0x2c, 0x6a, 0x68, 0x45, 0x3d, 0x2a, 0xc8, - 0xe3, 0x4e, 0x30, 0xe3, 0x17, 0xcd, 0xd7, 0xbc, 0x14, 0x72, 0x7a, 0xaf, 0xf4, 0x21, 0x37, 0xc3, - 0x27, 0xcd, 0x44, 0xd0, 0xfc, 0x4b, 0x83, 0x1b, 0x1d, 0xff, 0x0b, 0x37, 0xc6, 0xd4, 0xa6, 0x6e, - 0x90, 0x62, 0xed, 0x74, 0x44, 0x2d, 0xef, 0x81, 0x93, 0x14, 0x6b, 0x64, 0x52, 0xec, 0x5d, 0x58, - 0xe5, 0xba, 0xe4, 0x3c, 0x6d, 0xb2, 0x3c, 0xcd, 0x33, 0x2a, 0xd3, 0xed, 0x1b, 0x0d, 0xd6, 0x0a, - 0xcc, 0xfe, 0x4f, 0x93, 0xe6, 0x27, 0x0d, 0x6e, 0xa4, 0x23, 0x9f, 0xe7, 0xcd, 0x52, 0xa7, 0xd9, - 0x74, 0xaa, 0x4d, 0x1b, 0x79, 0xea, 0xd5, 0x35, 0xa8, 0xb6, 0xa9, 0x1f, 0xa4, 0x36, 0x25, 0x19, - 0xf4, 0x76, 0x40, 0x6c, 0xf7, 0xcd, 0x3c, 0xf0, 0x27, 0x29, 0xf4, 0x10, 0x16, 0x7a, 0x93, 0x77, - 0x0a, 0xb4, 0x26, 0x02, 0x9b, 0x7d, 0x00, 0x32, 0xd6, 0x8b, 0xc8, 0x24, 0x44, 0xf7, 0xa1, 0xf5, - 0x79, 0x32, 0x70, 0xa2, 0xeb, 0x42, 0x48, 0x1e, 0x41, 0x8d, 0xd5, 0x64, 0xe7, 0xe4, 0x51, 0xeb, - 0x3e, 0xb4, 0x46, 0xc9, 0xe4, 0x90, 0x6e, 0x92, 0x67, 0x89, 0xa2, 0x4d, 0x8f, 0x61, 0xa9, 0x2f, - 0xbf, 0x2f, 0xa0, 0x9b, 0xca, 0x60, 0x9f, 0x34, 0x2a, 0x43, 0x2f, 0x66, 0x90, 0x10, 0x7d, 0x00, - 0x8b, 0x44, 0x7a, 0x1d, 0x40, 0x89, 0x57, 0xca, 0x93, 0x41, 0x91, 0xfa, 0xcf, 0xe0, 0x66, 0xbf, - 0xf8, 0x0b, 0x02, 0xdd, 0xa9, 0xfe, 0xc2, 0xa0, 0x07, 0x9a, 0xd3, 0x44, 0x48, 0x88, 0x0e, 0x01, - 0xc5, 0xb9, 0xaf, 0x0f, 0xb4, 0x21, 0x76, 0x16, 0x7e, 0x98, 0x14, 0x19, 0xfa, 0x0c, 0xf4, 0x7e, - 0xc9, 0x64, 0x8d, 0xcc, 0xcc, 0x73, 0x5d, 0xe1, 0xe8, 0x5d, 0x7c, 0x24, 0xea, 0xe7, 0x86, 0x97, - 0xd4, 0xb2, 0xc2, 0xd9, 0xcb, 0xf8, 0x7f, 0x05, 0x97, 0x84, 0xa8, 0x0b, 0xd7, 0xfb, 0xf9, 0x9e, - 0x8e, 0x8a, 0x77, 0xa5, 0x37, 0x7b, 0xbb, 0x8a, 0x4d, 0x42, 0xf4, 0x14, 0xda, 0x83, 0x6c, 0xab, - 0x42, 0xc9, 0x0b, 0x65, 0xbe, 0x63, 0x1b, 0x46, 0x19, 0x2b, 0x75, 0x59, 0xc1, 0x7e, 0xd9, 0xe5, - 0x7c, 0x3b, 0x92, 0x5d, 0x2e, 0x6a, 0x1a, 0x27, 0xb0, 0xea, 0xaa, 0xa0, 0x88, 0x6e, 0x25, 0x38, - 0x56, 0x80, 0xf2, 0xc6, 0x46, 0x39, 0x93, 0x9f, 0xd7, 0x57, 0xf1, 0x24, 0x3d, 0xaf, 0x08, 0xfa, - 0x8c, 0x8d, 0x72, 0x26, 0x09, 0x1f, 0xb7, 0x3f, 0x5d, 0xda, 0xe6, 0x6f, 0xd6, 0x0f, 0xd8, 0xef, - 0x8b, 0x39, 0xf6, 0x20, 0x7d, 0xff, 0xdf, 0x00, 0x00, 0x00, 0xff, 0xff, 0xaa, 0xd5, 0x63, 0xdb, - 0xcf, 0x16, 0x00, 0x00, +func init() { proto.RegisterFile("group/group.proto", fileDescriptor_group_2ff972788727c811) } + +var fileDescriptor_group_2ff972788727c811 = []byte{ + // 1480 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x58, 0xcd, 0x6f, 0xdc, 0x44, + 0x14, 0x97, 0xf7, 0x23, 0xcd, 0xbe, 0x7c, 0x6c, 0x32, 0x6d, 0x52, 0xe3, 0x86, 0x2a, 0xb5, 0x50, + 0x15, 0x55, 0x28, 0x91, 0x52, 0x84, 0x84, 0x5a, 0xa1, 0xa6, 0xf9, 0x68, 0x17, 0x48, 0xa2, 0x3a, + 0xdb, 0x0b, 0x97, 0xe0, 0xae, 0xa7, 0x2b, 0xb3, 0x5e, 0xdb, 0xeb, 0xf1, 0x92, 0x96, 0x0b, 0x20, + 0x24, 0x38, 0x20, 0x44, 0xaf, 0x1c, 0x39, 0xc0, 0x11, 0x71, 0xe0, 0xce, 0x81, 0x7f, 0x0c, 0xcd, + 0x87, 0xbd, 0xe3, 0xf1, 0xc7, 0xae, 0x12, 0x89, 0x5e, 0x56, 0x3b, 0xef, 0xbd, 0x99, 0xf7, 0x31, + 0xef, 0xfd, 0xde, 0x1b, 0xc3, 0x6a, 0x3f, 0x0a, 0xc6, 0xe1, 0x0e, 0xfb, 0xdd, 0x0e, 0xa3, 0x20, + 0x0e, 0x50, 0x93, 0x2d, 0x8c, 0x3b, 0xa7, 0x21, 0xf6, 0xcf, 0x3b, 0xc7, 0x3b, 0xe1, 0xa0, 0xbf, + 0xc3, 0x38, 0x3b, 0xc4, 0x19, 0x9c, 0x5f, 0x90, 0x9d, 0x0b, 0xc2, 0x25, 0xcd, 0x8f, 0x01, 0xf6, + 0x83, 0xe1, 0x30, 0xf0, 0x2d, 0x4c, 0x42, 0xa4, 0xc3, 0xb5, 0xc3, 0x28, 0xda, 0x0f, 0x1c, 0xac, + 0x6b, 0x9b, 0xda, 0x56, 0xd3, 0x4a, 0x96, 0x68, 0x1d, 0xe6, 0x0e, 0xa3, 0xe8, 0x98, 0xf4, 0xf5, + 0xda, 0xa6, 0xb6, 0xd5, 0xb2, 0xc4, 0xca, 0x7c, 0x04, 0xe8, 0x09, 0xd5, 0xb5, 0xe7, 0x38, 0xc7, + 0x78, 0xf8, 0x02, 0x47, 0x1d, 0xff, 0x65, 0x40, 0xa5, 0x9f, 0x13, 0x1c, 0x75, 0x0e, 0xd8, 0x31, + 0x2d, 0x4b, 0xac, 0x10, 0x82, 0x86, 0x15, 0x78, 0x98, 0x9d, 0xd1, 0xb4, 0xd8, 0x7f, 0xf3, 0xdf, + 0x1a, 0x2c, 0xef, 0x47, 0xd8, 0x8e, 0x31, 0x3b, 0xc8, 0xc2, 0x23, 0xb4, 0x07, 0xcb, 0x1d, 0xdf, + 0x8d, 0xf9, 0x81, 0x9f, 0xb9, 0x24, 0xd6, 0xb5, 0xcd, 0xfa, 0xd6, 0xc2, 0xee, 0x3b, 0xdb, 0xdc, + 0xc9, 0xbc, 0x46, 0x4b, 0xd9, 0x80, 0x36, 0xa0, 0xc5, 0xa4, 0x4e, 0xec, 0x21, 0x16, 0x26, 0x4f, + 0x08, 0xc8, 0x84, 0xc5, 0x8e, 0x1f, 0x47, 0x81, 0x33, 0xee, 0xc5, 0x6e, 0xe0, 0xeb, 0x75, 0x26, + 0x90, 0xa1, 0x51, 0x99, 0x93, 0x20, 0x76, 0x5f, 0xba, 0x3d, 0x9b, 0xc9, 0x34, 0xb8, 0x8c, 0x4c, + 0xa3, 0xf1, 0x3a, 0xb2, 0x7b, 0xf8, 0x79, 0xe4, 0xe9, 0x4d, 0xc6, 0x4e, 0x96, 0x68, 0x05, 0xea, + 0x87, 0xaf, 0x62, 0x7d, 0x8e, 0x51, 0xe9, 0x5f, 0xb4, 0x09, 0x0b, 0xa7, 0x21, 0x8e, 0xd8, 0xc6, + 0xce, 0x81, 0x7e, 0x8d, 0x71, 0x64, 0x12, 0x32, 0x60, 0xfe, 0x34, 0x14, 0x71, 0x9b, 0x67, 0xec, + 0x74, 0x8d, 0x6e, 0x03, 0x1c, 0x45, 0xc1, 0x50, 0x70, 0x5b, 0x8c, 0x2b, 0x51, 0xcc, 0xd7, 0xd0, + 0xce, 0x04, 0xf1, 0x32, 0x97, 0x89, 0x3e, 0x10, 0x41, 0xa3, 0x11, 0x65, 0x31, 0x59, 0xd8, 0x5d, + 0xdf, 0x0e, 0x68, 0x0e, 0xb9, 0xc3, 0x73, 0xe2, 0x0c, 0xb6, 0x53, 0xae, 0x35, 0x11, 0x34, 0x23, + 0x58, 0x79, 0x82, 0x63, 0xb6, 0x26, 0x8c, 0x87, 0x47, 0xd4, 0x59, 0x2e, 0x70, 0x90, 0x5e, 0x5f, + 0xcb, 0x92, 0x49, 0x6a, 0x38, 0x6a, 0xd5, 0xe1, 0xa8, 0x67, 0xc3, 0x61, 0x7e, 0xaf, 0xc1, 0xaa, + 0xa2, 0xf4, 0x52, 0x1e, 0x3f, 0x84, 0xa5, 0xd4, 0x11, 0x66, 0x69, 0x9d, 0x25, 0x5a, 0x99, 0xd7, + 0x59, 0x61, 0xf3, 0x77, 0x0d, 0xda, 0x67, 0xc2, 0x8a, 0xc4, 0xf3, 0x4c, 0x0c, 0xb5, 0x19, 0x63, + 0x98, 0xf1, 0xb5, 0x56, 0x79, 0xf5, 0x75, 0xf5, 0xea, 0xd5, 0x48, 0x36, 0x72, 0x91, 0x34, 0xbf, + 0x06, 0x23, 0x09, 0xd6, 0x5e, 0x18, 0x7a, 0x22, 0x7b, 0xa9, 0x0b, 0xd4, 0x62, 0x59, 0xb7, 0xa6, + 0xe8, 0x9e, 0x7e, 0x4b, 0x53, 0xac, 0x33, 0x7f, 0x6d, 0xc0, 0x9d, 0x12, 0xe5, 0xe7, 0x07, 0x76, + 0x6c, 0x9f, 0x53, 0x39, 0xb4, 0x0c, 0xb5, 0x54, 0x7b, 0xad, 0x73, 0x40, 0x6f, 0x52, 0x24, 0x8b, + 0xd0, 0x99, 0x2c, 0xa7, 0x46, 0xc3, 0x80, 0xf9, 0x6e, 0x20, 0xb8, 0x3c, 0x14, 0xe9, 0x9a, 0xc2, + 0xcf, 0x91, 0x67, 0xf7, 0x59, 0xad, 0x36, 0x2d, 0xf6, 0x9f, 0x9e, 0x67, 0xe1, 0xd1, 0x18, 0x93, + 0x98, 0x66, 0x07, 0xaf, 0x57, 0x89, 0x42, 0xf9, 0x4f, 0x6d, 0xdf, 0xf1, 0xb0, 0x43, 0xf9, 0xbc, + 0x6a, 0x25, 0x0a, 0xb5, 0x74, 0xcf, 0x71, 0xba, 0xee, 0x10, 0xb3, 0x9a, 0xad, 0x5b, 0xc9, 0x12, + 0xdd, 0x83, 0x95, 0xc4, 0xae, 0x13, 0xb7, 0x37, 0xf0, 0x29, 0x12, 0xf1, 0xc2, 0xcd, 0xd1, 0xd1, + 0x5d, 0x58, 0xe6, 0x56, 0xa6, 0x92, 0xc0, 0x24, 0x15, 0x2a, 0xda, 0x82, 0x76, 0xb2, 0x37, 0x01, + 0x9e, 0x05, 0x26, 0xa8, 0x92, 0xd1, 0x7b, 0xb0, 0xc4, 0xf7, 0x26, 0x72, 0x8b, 0x4c, 0x2e, 0x4b, + 0xa4, 0xf7, 0x2b, 0x7c, 0xa1, 0x54, 0x7d, 0x89, 0xdf, 0xaf, 0x44, 0xa2, 0x31, 0xeb, 0xbe, 0x0e, + 0xb1, 0xbe, 0xcc, 0x63, 0x46, 0xff, 0x53, 0x68, 0xe4, 0x22, 0x67, 0xb1, 0x1d, 0x8f, 0x89, 0xde, + 0x66, 0xbc, 0x0c, 0x6d, 0x22, 0x63, 0x61, 0x32, 0xf6, 0x62, 0x7d, 0x45, 0x96, 0xe1, 0x34, 0x73, + 0x04, 0xb7, 0x4a, 0x52, 0x83, 0x66, 0x06, 0xba, 0x01, 0xcd, 0xfd, 0x60, 0xec, 0xc7, 0xa2, 0x98, + 0xf9, 0x02, 0x3d, 0x84, 0x06, 0xb3, 0xb5, 0xc6, 0x2a, 0x75, 0x2b, 0x69, 0x09, 0xd3, 0x52, 0xcc, + 0x62, 0xbb, 0xcc, 0x1f, 0xb5, 0x52, 0x9d, 0x97, 0x84, 0x90, 0x0f, 0xa1, 0x41, 0x95, 0x08, 0xbc, + 0x34, 0xab, 0xed, 0xa1, 0x92, 0x16, 0x93, 0x37, 0xff, 0xd1, 0x60, 0xad, 0x1b, 0xd9, 0x3e, 0x79, + 0x89, 0x23, 0x26, 0x7a, 0x7a, 0xe1, 0xe3, 0x88, 0x16, 0xa4, 0x94, 0xfc, 0x5a, 0x36, 0xf9, 0xef, + 0xc2, 0xf2, 0xa9, 0xe7, 0x30, 0xc1, 0x0c, 0x58, 0x28, 0x54, 0x2a, 0x77, 0x82, 0x2f, 0x64, 0x39, + 0x5e, 0x28, 0x0a, 0x75, 0x3a, 0x74, 0x64, 0xc0, 0xa1, 0xa9, 0x80, 0xf0, 0x1f, 0x1a, 0x2c, 0x7e, + 0x12, 0xb8, 0x7e, 0xda, 0xb7, 0xcb, 0x0d, 0xe7, 0x55, 0x76, 0x8c, 0x09, 0xb1, 0xfb, 0x49, 0x3f, + 0x96, 0x28, 0x57, 0xc7, 0xb8, 0x4a, 0x43, 0x7f, 0xa9, 0xc1, 0x2d, 0xf5, 0x36, 0xe8, 0x6d, 0x07, + 0x3e, 0xc1, 0xa2, 0x5b, 0xc9, 0xa7, 0x6b, 0xd5, 0xa7, 0xab, 0xf8, 0x2c, 0x79, 0x5d, 0xaf, 0xc2, + 0xaa, 0x46, 0x25, 0x56, 0x5d, 0x53, 0xb0, 0x4a, 0xc2, 0x15, 0xc8, 0xe2, 0x4a, 0x16, 0x91, 0x16, + 0x73, 0x88, 0xa4, 0x56, 0x5e, 0xbb, 0xa0, 0xf2, 0xfe, 0xd4, 0x40, 0x3f, 0xc3, 0x31, 0xcb, 0x05, + 0x3e, 0x16, 0xb9, 0xbd, 0x01, 0x1d, 0x8d, 0xaa, 0xaf, 0xd1, 0x80, 0xf9, 0x14, 0xa0, 0x44, 0x18, + 0x52, 0x68, 0x52, 0x82, 0x58, 0x9f, 0xd6, 0x2a, 0x0a, 0xc3, 0x51, 0x7a, 0x85, 0x3f, 0x68, 0xb0, + 0xf8, 0x6c, 0xec, 0xc6, 0x33, 0xe4, 0xda, 0x95, 0x7b, 0x56, 0xc6, 0x90, 0x86, 0x62, 0xc8, 0x6f, + 0x1a, 0xac, 0x25, 0xc5, 0x3d, 0x99, 0x37, 0xa7, 0x86, 0xad, 0x34, 0x7b, 0xa6, 0x87, 0x6d, 0x1d, + 0xe6, 0x8e, 0x5c, 0x2f, 0xc6, 0x11, 0xb3, 0xa5, 0x69, 0x89, 0x15, 0xd5, 0x77, 0x82, 0x5f, 0xc5, + 0x67, 0x78, 0x24, 0x1a, 0x5a, 0xb2, 0xa4, 0x85, 0xb9, 0x5e, 0x64, 0xe3, 0xa5, 0xf0, 0xed, 0x11, + 0xc0, 0x70, 0x32, 0x88, 0xf3, 0xf9, 0x68, 0x33, 0x3f, 0xd1, 0x70, 0x3d, 0x47, 0x63, 0xcf, 0x63, + 0xb3, 0x8d, 0xb4, 0x87, 0xea, 0xf4, 0x85, 0xa1, 0xdc, 0x83, 0x64, 0x69, 0xbe, 0xc9, 0x19, 0x9a, + 0x4e, 0x90, 0x95, 0x58, 0x22, 0x19, 0x54, 0x63, 0xa3, 0xa5, 0xac, 0xae, 0x62, 0x6e, 0x9c, 0x61, + 0x56, 0xfa, 0x59, 0x83, 0x9b, 0x85, 0x26, 0xbd, 0x9d, 0xe0, 0x99, 0x7f, 0x69, 0x80, 0x3e, 0x75, + 0x7b, 0x03, 0x49, 0xae, 0x3a, 0x3c, 0xf7, 0x60, 0x85, 0xca, 0xf3, 0xf6, 0x2d, 0xe6, 0x6f, 0x1e, + 0xa4, 0x1c, 0x9d, 0x9a, 0x6d, 0x61, 0x9b, 0xa4, 0x2f, 0x20, 0xb1, 0x52, 0xc3, 0xd4, 0xac, 0x06, + 0xc4, 0x39, 0xa5, 0x44, 0x1e, 0x40, 0xab, 0xe3, 0xec, 0x72, 0xa4, 0x29, 0x7d, 0x0a, 0x32, 0xd5, + 0x0c, 0x9f, 0xf8, 0x63, 0x50, 0xac, 0xcc, 0x6f, 0xe0, 0x7a, 0xce, 0xdd, 0x4b, 0xf6, 0xe5, 0xa5, + 0xd4, 0x0a, 0x29, 0xfa, 0x2b, 0xa2, 0x41, 0xa7, 0x3c, 0x2b, 0x2b, 0x66, 0x8e, 0x59, 0x7d, 0xd3, + 0xbe, 0x86, 0x1d, 0x66, 0x45, 0x52, 0xdf, 0x59, 0xd4, 0xd0, 0x8a, 0x7a, 0x54, 0x90, 0xc7, 0x9d, + 0x60, 0xc6, 0x17, 0xcd, 0xb7, 0xbc, 0x14, 0x72, 0x7a, 0xaf, 0xf4, 0x90, 0x9b, 0xe1, 0x49, 0x33, + 0x11, 0x34, 0xff, 0xd6, 0xe0, 0x46, 0xc7, 0xff, 0xca, 0x8d, 0x31, 0xb5, 0xa9, 0x1b, 0xa4, 0x58, + 0x3b, 0x1d, 0x51, 0xcb, 0x7b, 0xe0, 0x24, 0xc5, 0x1a, 0x99, 0x14, 0x7b, 0x1f, 0x56, 0xb9, 0x2e, + 0x39, 0x4f, 0x9b, 0x2c, 0x4f, 0xf3, 0x8c, 0xca, 0x74, 0xfb, 0x4e, 0x83, 0xb5, 0x02, 0xb3, 0xff, + 0xd7, 0xa4, 0xf1, 0xe1, 0x46, 0x3a, 0xf1, 0x79, 0xde, 0x2c, 0x65, 0x7a, 0xa5, 0x9e, 0x60, 0xfe, + 0x24, 0x75, 0x21, 0x49, 0xe1, 0xdb, 0xc1, 0xa8, 0xdd, 0x37, 0xf3, 0xc0, 0xbf, 0x38, 0xa1, 0x87, + 0xb0, 0xd0, 0x9b, 0x7c, 0x86, 0x40, 0x6b, 0x22, 0x6e, 0xd9, 0xef, 0x3b, 0xc6, 0x7a, 0x11, 0x99, + 0x84, 0xe8, 0x3e, 0xb4, 0xbe, 0x4c, 0xe6, 0x49, 0x74, 0x5d, 0x08, 0xc9, 0x13, 0xa6, 0xb1, 0x9a, + 0xec, 0x9c, 0x7c, 0xb3, 0xba, 0x0f, 0xad, 0x51, 0x32, 0x18, 0xa4, 0x9b, 0xe4, 0x51, 0xa1, 0x68, + 0xd3, 0x63, 0x58, 0xea, 0xcb, 0x9f, 0x0f, 0xd0, 0x4d, 0x65, 0x6e, 0x4f, 0xfa, 0x90, 0xa1, 0x17, + 0x33, 0x48, 0x88, 0x3e, 0x82, 0x45, 0x22, 0x3d, 0xfe, 0x51, 0xe2, 0x95, 0xf2, 0x45, 0xa0, 0x48, + 0xfd, 0x17, 0x70, 0xb3, 0x5f, 0xfc, 0x40, 0x40, 0x77, 0xaa, 0x1f, 0x10, 0xf4, 0x40, 0x73, 0x9a, + 0x08, 0x09, 0xd1, 0x21, 0xa0, 0x38, 0xf7, 0xb8, 0x40, 0x1b, 0x62, 0x67, 0xe1, 0xbb, 0xa3, 0xc8, + 0xd0, 0x67, 0xa0, 0xf7, 0x4b, 0x06, 0x67, 0x64, 0x66, 0xbe, 0xc6, 0x15, 0x4e, 0xd6, 0xc5, 0x47, + 0xa2, 0x7e, 0x6e, 0x36, 0x49, 0x2d, 0x2b, 0x1c, 0xad, 0x8c, 0x77, 0x2b, 0xb8, 0x24, 0x44, 0x5d, + 0xb8, 0xde, 0xcf, 0xb7, 0x6c, 0x54, 0xbc, 0x2b, 0xbd, 0xd9, 0xdb, 0x55, 0x6c, 0x12, 0xa2, 0xa7, + 0xd0, 0x1e, 0x64, 0x3b, 0x11, 0x4a, 0x3e, 0x40, 0xe6, 0x1b, 0xb2, 0x61, 0x94, 0xb1, 0x52, 0x97, + 0x15, 0x68, 0x97, 0x5d, 0xce, 0x77, 0x1b, 0xd9, 0xe5, 0xa2, 0x9e, 0x70, 0x02, 0xab, 0xae, 0x8a, + 0x79, 0xe8, 0x56, 0x02, 0x53, 0x05, 0x20, 0x6e, 0x6c, 0x94, 0x33, 0xf9, 0x79, 0x7d, 0x15, 0x4f, + 0xd2, 0xf3, 0x8a, 0xa0, 0xcd, 0xd8, 0x28, 0x67, 0x92, 0xf0, 0x71, 0xfb, 0xf3, 0xa5, 0x6d, 0xfe, + 0x49, 0xfa, 0x01, 0xfb, 0x7d, 0x31, 0xc7, 0xbe, 0x37, 0xdf, 0xff, 0x2f, 0x00, 0x00, 0xff, 0xff, + 0x77, 0xc5, 0xd1, 0xfe, 0xae, 0x16, 0x00, 0x00, } diff --git a/pkg/proto/group/group.proto b/pkg/proto/group/group.proto index f81b9da41..cf207d69a 100644 --- a/pkg/proto/group/group.proto +++ b/pkg/proto/group/group.proto @@ -21,7 +21,7 @@ message CreateGroupReq{ string FaceUrl = 5; string Ext = 6; string OperationID = 7; - string OpUserID = 8; + string OpUserID = 8; //app manager or group owner string FromUserID = 9; } @@ -34,7 +34,7 @@ message CreateGroupResp{ message GetGroupsInfoReq{ repeated string GroupIDList = 1; string OperationID = 2; - string OpUserID = 3; + string OpUserID = 3; //No verification permission } message GetGroupsInfoResp{ @@ -46,16 +46,15 @@ message GetGroupsInfoResp{ message SetGroupInfoReq{ open_im_sdk.GroupInfo GroupInfo = 1; - string OpUserID = 2; - string FromUserID = 3; - string OperationID = 4; + string OpUserID = 2; //app manager or group owner + string OperationID = 3; } -//owner or manager + message GetGroupApplicationListReq { - string OpUserID = 1; + string OpUserID = 1; //app manager or group owner(manager) string OperationID = 2; - string FromUserID = 3; //owner or manager + string FromUserID = 3; //owner or manager (Received) } message GetGroupApplicationList_Data_User { @@ -93,16 +92,15 @@ message TransferGroupOwnerReq { string OldOwnerUserID = 2; string NewOwnerUserID = 3; string OperationID = 4; - string OpUserID = 5; + string OpUserID = 5; //app manager or group owner } message JoinGroupReq{ string GroupID = 1; string ReqMessage = 2; - string FromUserID = 3; + string OpUserID = 3; string OperationID = 4; - string OpUserID = 5; } message GroupApplicationResponseReq{ @@ -110,12 +108,10 @@ message GroupApplicationResponseReq{ string OpUserID = 2; string GroupID = 3; string FromUserID = 4; //请求加群:请求者,邀请加群:邀请人 - string ToUserID = 7; //请求加群:0,邀请加群:被邀请人 - int64 AddTime = 10; - string HandledMsg = 12; - // int32 Type = 13; -// int32 HandleStatus = 14; - int32 HandleResult = 15; + string ToUserID = 5; //请求加群:0,邀请加群:被邀请人 + int64 AddTime = 6; + string HandledMsg = 7; + int32 HandleResult = 8; } @@ -126,22 +122,21 @@ message SetOwnerGroupNickNameReq{ string Nickname = 2; string OperationID = 3; string FromUserID = 4; - string OpUserID = 5; + string OpUserID = 5; //app manger or FromUserID } message QuitGroupReq{ string GroupID = 1; string OperationID = 2; - string FromUserID = 3; - string OpUserID = 4; + string OpUserID = 3; } message GetGroupMemberListReq { string GroupID = 1; - string OpUserID = 2; + string OpUserID = 2; //No verification permission string OperationID = 3; int32 Filter = 4; int32 NextSeq = 5; @@ -159,7 +154,7 @@ message GetGroupMemberListResp { message GetGroupMembersInfoReq { string GroupID = 1; repeated string memberList = 2; - string OpUserID = 3; + string OpUserID = 3; //No verification permission string OperationID = 4; } @@ -174,7 +169,7 @@ message KickGroupMemberReq { repeated string KickedUserIDList = 2; string Reason = 3; string OperationID = 5; - string OpUserID = 6; + string OpUserID = 6; //app manger or group manager } message Id2Result { @@ -192,7 +187,7 @@ message KickGroupMemberResp { message GetJoinedGroupListReq { string FromUserID = 1; string operationID = 2; - string OpUserID = 3; + string OpUserID = 3; //app manager or FromUserID } @@ -208,7 +203,7 @@ message InviteUserToGroupReq { string GroupID = 3; string Reason = 4; repeated string InvitedUserIDList = 5; - string OpUserID = 6; + string OpUserID = 6; //group member or app manager } message InviteUserToGroupResp { @@ -220,7 +215,7 @@ message InviteUserToGroupResp { message GetGroupAllMemberReq { string GroupID = 1; - string OpUserID = 2; + string OpUserID = 2; //No verification permission string OperationID = 3; } diff --git a/pkg/proto/sdk_ws/ws.pb.go b/pkg/proto/sdk_ws/ws.pb.go index b65f2980c..6809ce398 100644 --- a/pkg/proto/sdk_ws/ws.pb.go +++ b/pkg/proto/sdk_ws/ws.pb.go @@ -34,7 +34,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_9a3c519aa1c52df5, []int{0} + return fileDescriptor_ws_3380b8a9bc5ee255, []int{0} } func (m *PullMessageBySeqListResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_PullMessageBySeqListResp.Unmarshal(m, b) @@ -109,7 +109,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_9a3c519aa1c52df5, []int{1} + return fileDescriptor_ws_3380b8a9bc5ee255, []int{1} } func (m *PullMessageBySeqListReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_PullMessageBySeqListReq.Unmarshal(m, b) @@ -164,7 +164,7 @@ func (m *PullMessageReq) Reset() { *m = PullMessageReq{} } func (m *PullMessageReq) String() string { return proto.CompactTextString(m) } func (*PullMessageReq) ProtoMessage() {} func (*PullMessageReq) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_9a3c519aa1c52df5, []int{2} + return fileDescriptor_ws_3380b8a9bc5ee255, []int{2} } func (m *PullMessageReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_PullMessageReq.Unmarshal(m, b) @@ -228,7 +228,7 @@ func (m *PullMessageResp) Reset() { *m = PullMessageResp{} } func (m *PullMessageResp) String() string { return proto.CompactTextString(m) } func (*PullMessageResp) ProtoMessage() {} func (*PullMessageResp) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_9a3c519aa1c52df5, []int{3} + return fileDescriptor_ws_3380b8a9bc5ee255, []int{3} } func (m *PullMessageResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_PullMessageResp.Unmarshal(m, b) @@ -300,7 +300,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_9a3c519aa1c52df5, []int{4} + return fileDescriptor_ws_3380b8a9bc5ee255, []int{4} } func (m *GetMaxAndMinSeqReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetMaxAndMinSeqReq.Unmarshal(m, b) @@ -332,7 +332,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_9a3c519aa1c52df5, []int{5} + return fileDescriptor_ws_3380b8a9bc5ee255, []int{5} } func (m *GetMaxAndMinSeqResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetMaxAndMinSeqResp.Unmarshal(m, b) @@ -380,7 +380,7 @@ func (m *GatherFormat) Reset() { *m = GatherFormat{} } func (m *GatherFormat) String() string { return proto.CompactTextString(m) } func (*GatherFormat) ProtoMessage() {} func (*GatherFormat) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_9a3c519aa1c52df5, []int{6} + return fileDescriptor_ws_3380b8a9bc5ee255, []int{6} } func (m *GatherFormat) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GatherFormat.Unmarshal(m, b) @@ -427,7 +427,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_9a3c519aa1c52df5, []int{7} + return fileDescriptor_ws_3380b8a9bc5ee255, []int{7} } func (m *UserSendMsgResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_UserSendMsgResp.Unmarshal(m, b) @@ -496,7 +496,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_9a3c519aa1c52df5, []int{8} + return fileDescriptor_ws_3380b8a9bc5ee255, []int{8} } func (m *MsgData) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MsgData.Unmarshal(m, b) @@ -657,7 +657,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_9a3c519aa1c52df5, []int{9} + return fileDescriptor_ws_3380b8a9bc5ee255, []int{9} } func (m *OfflinePushInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_OfflinePushInfo.Unmarshal(m, b) @@ -732,7 +732,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_9a3c519aa1c52df5, []int{10} + return fileDescriptor_ws_3380b8a9bc5ee255, []int{10} } func (m *GroupInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupInfo.Unmarshal(m, b) @@ -824,6 +824,7 @@ type GroupMemberFullInfo struct { NickName string `protobuf:"bytes,5,opt,name=NickName" json:"NickName,omitempty"` FaceUrl string `protobuf:"bytes,6,opt,name=FaceUrl" json:"FaceUrl,omitempty"` FriendRemark string `protobuf:"bytes,7,opt,name=FriendRemark" json:"FriendRemark,omitempty"` + AppMangerLevel int32 `protobuf:"varint,8,opt,name=AppMangerLevel" json:"AppMangerLevel,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -833,7 +834,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_9a3c519aa1c52df5, []int{11} + return fileDescriptor_ws_3380b8a9bc5ee255, []int{11} } func (m *GroupMemberFullInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupMemberFullInfo.Unmarshal(m, b) @@ -902,6 +903,13 @@ func (m *GroupMemberFullInfo) GetFriendRemark() string { return "" } +func (m *GroupMemberFullInfo) GetAppMangerLevel() int32 { + if m != nil { + return m.AppMangerLevel + } + return 0 +} + // private, Friends have permission to view type UserInfo struct { UserID string `protobuf:"bytes,1,opt,name=UserID" json:"UserID,omitempty"` @@ -921,7 +929,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_9a3c519aa1c52df5, []int{12} + return fileDescriptor_ws_3380b8a9bc5ee255, []int{12} } func (m *UserInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_UserInfo.Unmarshal(m, b) @@ -1012,7 +1020,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_9a3c519aa1c52df5, []int{13} + return fileDescriptor_ws_3380b8a9bc5ee255, []int{13} } func (m *PublicUserInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_PublicUserInfo.Unmarshal(m, b) @@ -1072,7 +1080,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_9a3c519aa1c52df5, []int{14} + return fileDescriptor_ws_3380b8a9bc5ee255, []int{14} } func (m *TipsComm) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_TipsComm.Unmarshal(m, b) @@ -1121,7 +1129,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_9a3c519aa1c52df5, []int{15} + return fileDescriptor_ws_3380b8a9bc5ee255, []int{15} } func (m *MemberEnterTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MemberEnterTips.Unmarshal(m, b) @@ -1176,7 +1184,7 @@ func (m *MemberLeaveTips) Reset() { *m = MemberLeaveTips{} } func (m *MemberLeaveTips) String() string { return proto.CompactTextString(m) } func (*MemberLeaveTips) ProtoMessage() {} func (*MemberLeaveTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_9a3c519aa1c52df5, []int{16} + return fileDescriptor_ws_3380b8a9bc5ee255, []int{16} } func (m *MemberLeaveTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MemberLeaveTips.Unmarshal(m, b) @@ -1231,7 +1239,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_9a3c519aa1c52df5, []int{17} + return fileDescriptor_ws_3380b8a9bc5ee255, []int{17} } func (m *MemberInvitedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MemberInvitedTips.Unmarshal(m, b) @@ -1293,7 +1301,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_9a3c519aa1c52df5, []int{18} + return fileDescriptor_ws_3380b8a9bc5ee255, []int{18} } func (m *MemberKickedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MemberKickedTips.Unmarshal(m, b) @@ -1356,7 +1364,7 @@ func (m *MemberInfoChangedTips) Reset() { *m = MemberInfoChangedTips{} } func (m *MemberInfoChangedTips) String() string { return proto.CompactTextString(m) } func (*MemberInfoChangedTips) ProtoMessage() {} func (*MemberInfoChangedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_9a3c519aa1c52df5, []int{19} + return fileDescriptor_ws_3380b8a9bc5ee255, []int{19} } func (m *MemberInfoChangedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MemberInfoChangedTips.Unmarshal(m, b) @@ -1425,7 +1433,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_9a3c519aa1c52df5, []int{20} + return fileDescriptor_ws_3380b8a9bc5ee255, []int{20} } func (m *GroupCreatedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupCreatedTips.Unmarshal(m, b) @@ -1486,7 +1494,7 @@ func (m *GroupInfoChangedTips) Reset() { *m = GroupInfoChangedTips{} } func (m *GroupInfoChangedTips) String() string { return proto.CompactTextString(m) } func (*GroupInfoChangedTips) ProtoMessage() {} func (*GroupInfoChangedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_9a3c519aa1c52df5, []int{21} + return fileDescriptor_ws_3380b8a9bc5ee255, []int{21} } func (m *GroupInfoChangedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupInfoChangedTips.Unmarshal(m, b) @@ -1540,7 +1548,7 @@ func (m *ReceiveJoinApplicationTips) Reset() { *m = ReceiveJoinApplicati func (m *ReceiveJoinApplicationTips) String() string { return proto.CompactTextString(m) } func (*ReceiveJoinApplicationTips) ProtoMessage() {} func (*ReceiveJoinApplicationTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_9a3c519aa1c52df5, []int{22} + return fileDescriptor_ws_3380b8a9bc5ee255, []int{22} } func (m *ReceiveJoinApplicationTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ReceiveJoinApplicationTips.Unmarshal(m, b) @@ -1595,7 +1603,7 @@ func (m *ApplicationProcessedTips) Reset() { *m = ApplicationProcessedTi func (m *ApplicationProcessedTips) String() string { return proto.CompactTextString(m) } func (*ApplicationProcessedTips) ProtoMessage() {} func (*ApplicationProcessedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_9a3c519aa1c52df5, []int{23} + return fileDescriptor_ws_3380b8a9bc5ee255, []int{23} } func (m *ApplicationProcessedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ApplicationProcessedTips.Unmarshal(m, b) @@ -1658,7 +1666,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_9a3c519aa1c52df5, []int{24} + return fileDescriptor_ws_3380b8a9bc5ee255, []int{24} } func (m *FriendInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FriendInfo.Unmarshal(m, b) @@ -1719,7 +1727,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_9a3c519aa1c52df5, []int{25} + return fileDescriptor_ws_3380b8a9bc5ee255, []int{25} } func (m *FriendApplication) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FriendApplication.Unmarshal(m, b) @@ -1775,7 +1783,7 @@ func (m *FriendApplicationAddedTips) Reset() { *m = FriendApplicationAdd func (m *FriendApplicationAddedTips) String() string { return proto.CompactTextString(m) } func (*FriendApplicationAddedTips) ProtoMessage() {} func (*FriendApplicationAddedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_9a3c519aa1c52df5, []int{26} + return fileDescriptor_ws_3380b8a9bc5ee255, []int{26} } func (m *FriendApplicationAddedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FriendApplicationAddedTips.Unmarshal(m, b) @@ -1838,7 +1846,7 @@ func (m *FriendApplicationProcessedTips) Reset() { *m = FriendApplicatio func (m *FriendApplicationProcessedTips) String() string { return proto.CompactTextString(m) } func (*FriendApplicationProcessedTips) ProtoMessage() {} func (*FriendApplicationProcessedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_9a3c519aa1c52df5, []int{27} + return fileDescriptor_ws_3380b8a9bc5ee255, []int{27} } func (m *FriendApplicationProcessedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FriendApplicationProcessedTips.Unmarshal(m, b) @@ -1898,7 +1906,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_9a3c519aa1c52df5, []int{28} + return fileDescriptor_ws_3380b8a9bc5ee255, []int{28} } func (m *FriendAddedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FriendAddedTips.Unmarshal(m, b) @@ -1944,7 +1952,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_9a3c519aa1c52df5, []int{29} + return fileDescriptor_ws_3380b8a9bc5ee255, []int{29} } func (m *FriendDeletedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FriendDeletedTips.Unmarshal(m, b) @@ -1991,7 +1999,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_9a3c519aa1c52df5, []int{30} + return fileDescriptor_ws_3380b8a9bc5ee255, []int{30} } func (m *BlackInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_BlackInfo.Unmarshal(m, b) @@ -2044,7 +2052,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_9a3c519aa1c52df5, []int{31} + return fileDescriptor_ws_3380b8a9bc5ee255, []int{31} } func (m *BlackAddedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_BlackAddedTips.Unmarshal(m, b) @@ -2090,7 +2098,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_9a3c519aa1c52df5, []int{32} + return fileDescriptor_ws_3380b8a9bc5ee255, []int{32} } func (m *BlackDeletedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_BlackDeletedTips.Unmarshal(m, b) @@ -2137,7 +2145,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_9a3c519aa1c52df5, []int{33} + return fileDescriptor_ws_3380b8a9bc5ee255, []int{33} } func (m *FriendInfoChangedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FriendInfoChangedTips.Unmarshal(m, b) @@ -2192,7 +2200,7 @@ func (m *SelfInfoUpdatedTips) Reset() { *m = SelfInfoUpdatedTips{} } func (m *SelfInfoUpdatedTips) String() string { return proto.CompactTextString(m) } func (*SelfInfoUpdatedTips) ProtoMessage() {} func (*SelfInfoUpdatedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_9a3c519aa1c52df5, []int{34} + return fileDescriptor_ws_3380b8a9bc5ee255, []int{34} } func (m *SelfInfoUpdatedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SelfInfoUpdatedTips.Unmarshal(m, b) @@ -2272,118 +2280,119 @@ func init() { proto.RegisterType((*SelfInfoUpdatedTips)(nil), "open_im_sdk.SelfInfoUpdatedTips") } -func init() { proto.RegisterFile("sdk_ws/ws.proto", fileDescriptor_ws_9a3c519aa1c52df5) } +func init() { proto.RegisterFile("sdk_ws/ws.proto", fileDescriptor_ws_3380b8a9bc5ee255) } -var fileDescriptor_ws_9a3c519aa1c52df5 = []byte{ - // 1753 bytes of a gzipped FileDescriptorProto +var fileDescriptor_ws_3380b8a9bc5ee255 = []byte{ + // 1769 bytes of a gzipped FileDescriptorProto 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe4, 0x59, 0x4f, 0x6f, 0x23, 0x4b, - 0x11, 0xd7, 0xf8, 0x5f, 0xec, 0xb2, 0x37, 0xce, 0xce, 0xee, 0xe6, 0x0d, 0xe1, 0x69, 0x65, 0x46, - 0x08, 0x59, 0xe8, 0x29, 0x4f, 0x24, 0x42, 0xbc, 0x2c, 0x02, 0x36, 0x89, 0x93, 0x10, 0x88, 0xd7, - 0xd1, 0x38, 0x11, 0xc7, 0xd5, 0xc4, 0xd3, 0x76, 0x1a, 0x8f, 0x7b, 0x9c, 0xee, 0xb1, 0x77, 0x73, - 0xe1, 0x6b, 0x70, 0x42, 0x02, 0x71, 0x40, 0x08, 0x0e, 0x88, 0x03, 0x1f, 0x81, 0x13, 0x9f, 0x02, - 0xc1, 0x91, 0x0b, 0x1c, 0xe1, 0x80, 0xba, 0xba, 0x67, 0xa6, 0x27, 0x0e, 0x89, 0x13, 0xb4, 0x7b, - 0x79, 0xb7, 0xa9, 0x9f, 0xab, 0xba, 0x7e, 0xf5, 0xa7, 0x6b, 0x6a, 0x12, 0x68, 0x8a, 0x60, 0xfc, - 0xf6, 0x9d, 0xf8, 0xfc, 0x9d, 0xd8, 0x9c, 0xf2, 0x28, 0x8e, 0xec, 0x7a, 0x34, 0x25, 0xec, 0x2d, - 0x9d, 0xbc, 0x15, 0xc1, 0xd8, 0xfd, 0x8f, 0x05, 0xce, 0xe9, 0x2c, 0x0c, 0xbb, 0x44, 0x08, 0x7f, - 0x44, 0xf6, 0xae, 0xfb, 0xe4, 0xea, 0x84, 0x8a, 0xd8, 0x23, 0x62, 0x6a, 0x3b, 0xb0, 0x42, 0x38, - 0xdf, 0x8f, 0x02, 0xe2, 0x58, 0x2d, 0xab, 0x5d, 0xf6, 0x12, 0xd1, 0x5e, 0x87, 0x0a, 0xe1, 0xbc, - 0x2b, 0x46, 0x4e, 0xa1, 0x65, 0xb5, 0x6b, 0x9e, 0x96, 0x24, 0x3e, 0xf1, 0xdf, 0xf7, 0xc9, 0x95, - 0x53, 0x6c, 0x59, 0xed, 0xa2, 0xa7, 0x25, 0xc4, 0x29, 0x93, 0x78, 0x49, 0xe3, 0x28, 0xd9, 0x3f, - 0x80, 0x27, 0x82, 0xb2, 0x51, 0x48, 0xce, 0x05, 0xc1, 0xe3, 0xca, 0xad, 0x62, 0xbb, 0xbe, 0xf5, - 0x95, 0x4d, 0x83, 0xe3, 0xe6, 0x91, 0x1f, 0x5f, 0x12, 0x7e, 0x18, 0xf1, 0x89, 0x1f, 0x7b, 0x79, - 0x7d, 0xfb, 0x7b, 0xd0, 0x18, 0xf1, 0x68, 0x36, 0x4d, 0xec, 0x2b, 0xf7, 0xd9, 0xe7, 0xd4, 0xdd, - 0x09, 0x7c, 0x72, 0x7b, 0xf4, 0x48, 0x79, 0x26, 0x08, 0x3f, 0xee, 0x60, 0xec, 0x35, 0x4f, 0x4b, - 0x76, 0x0b, 0x64, 0x02, 0xb9, 0x1f, 0xd3, 0x88, 0x1d, 0x77, 0x74, 0xfc, 0x26, 0x24, 0xd3, 0x26, - 0xd4, 0x39, 0x4e, 0xb1, 0x55, 0x6c, 0x17, 0xbd, 0x44, 0x74, 0x7f, 0x06, 0xab, 0x86, 0xbb, 0xbb, - 0xbc, 0x6c, 0x40, 0x55, 0x90, 0xab, 0x3d, 0x32, 0xa2, 0x0c, 0x5d, 0x14, 0xbd, 0x54, 0x96, 0x36, - 0x82, 0x5c, 0x1d, 0xb0, 0x20, 0x49, 0xb2, 0x92, 0x6e, 0x32, 0x2b, 0x2d, 0x30, 0x73, 0xff, 0x65, - 0x41, 0x33, 0x47, 0xe0, 0x4b, 0x51, 0xe4, 0xe7, 0x60, 0x1f, 0x91, 0xb8, 0xeb, 0xbf, 0xdf, 0x65, - 0x41, 0x17, 0x29, 0x79, 0xe4, 0xca, 0x3d, 0x80, 0x67, 0x0b, 0xa8, 0x98, 0x1a, 0xc1, 0x59, 0xff, - 0x23, 0xb8, 0x82, 0x19, 0x9c, 0xfb, 0x43, 0x68, 0x98, 0xae, 0xed, 0x55, 0x28, 0xd0, 0x40, 0x17, - 0xb3, 0x40, 0x03, 0xbb, 0x0d, 0xa5, 0x50, 0x76, 0x42, 0x01, 0x39, 0x3f, 0xcf, 0x71, 0xee, 0x8a, - 0x51, 0xc7, 0x8f, 0x7d, 0x0f, 0x35, 0xdc, 0x2b, 0x68, 0x4a, 0xc6, 0x7d, 0xc2, 0x82, 0xae, 0x18, - 0x21, 0x99, 0x16, 0xd4, 0xfb, 0x84, 0xcf, 0x31, 0x8c, 0xb4, 0x45, 0x4c, 0x48, 0x6a, 0xec, 0x87, - 0x94, 0xb0, 0x58, 0x69, 0xe8, 0x6e, 0x34, 0x20, 0xd5, 0x49, 0x2c, 0x38, 0xa3, 0x13, 0xa2, 0xeb, - 0x95, 0xca, 0xee, 0x9f, 0xca, 0xb0, 0xa2, 0x49, 0xa8, 0xae, 0x62, 0x41, 0xd6, 0x89, 0x4a, 0x92, - 0x38, 0x27, 0x83, 0x79, 0x7a, 0xb8, 0x96, 0x64, 0xdf, 0x60, 0x96, 0x8f, 0x3b, 0x78, 0x6c, 0xcd, - 0x4b, 0x44, 0xc9, 0x69, 0x60, 0x70, 0xd2, 0x7d, 0x68, 0x40, 0x52, 0x43, 0x18, 0x71, 0x95, 0x95, - 0x86, 0x01, 0xd9, 0xdf, 0x84, 0x35, 0xe9, 0x9f, 0xf0, 0xd3, 0xd0, 0x8f, 0x87, 0x11, 0x9f, 0x1c, - 0x77, 0x9c, 0x0a, 0xb6, 0xe7, 0x02, 0x6e, 0x7f, 0x03, 0x56, 0x15, 0xf6, 0x86, 0x0e, 0xc6, 0x6f, - 0xfc, 0x09, 0x71, 0x56, 0xf0, 0xc0, 0x1b, 0xa8, 0xfd, 0x75, 0x78, 0xa2, 0x90, 0x43, 0x7f, 0x40, - 0xce, 0xbd, 0x13, 0xa7, 0x8a, 0x6a, 0x79, 0x50, 0x71, 0x13, 0x82, 0x46, 0xec, 0xec, 0x7a, 0x4a, - 0x9c, 0x1a, 0x3a, 0x35, 0x21, 0x19, 0xf9, 0x44, 0x8c, 0x0e, 0x79, 0x34, 0x71, 0x40, 0xdd, 0x18, - 0x2d, 0x62, 0xe4, 0x11, 0x8b, 0x09, 0x8b, 0xd1, 0xb6, 0xae, 0x6c, 0x0d, 0x48, 0xda, 0x6a, 0xd1, - 0x69, 0xb4, 0xac, 0x76, 0xc3, 0x4b, 0x44, 0xfb, 0x53, 0xa8, 0x0d, 0x23, 0x3e, 0x20, 0x38, 0x37, - 0x9e, 0xb4, 0x8a, 0xed, 0x9a, 0x97, 0x01, 0xf6, 0x1a, 0x14, 0x05, 0xb9, 0x72, 0x56, 0xb1, 0x80, - 0xf2, 0x31, 0x57, 0xd7, 0x66, 0xbe, 0xae, 0xf6, 0x4b, 0x80, 0x01, 0x27, 0x7e, 0x4c, 0xf0, 0xd7, - 0x35, 0xfc, 0xd5, 0x40, 0xec, 0xef, 0xc2, 0x4a, 0x6f, 0x2a, 0x67, 0x82, 0x70, 0x9e, 0x62, 0x5f, - 0x7e, 0xed, 0xb6, 0xbe, 0xdc, 0xd4, 0x3a, 0x07, 0x2c, 0xe6, 0xd7, 0x5e, 0x62, 0x61, 0x1f, 0x42, - 0x33, 0x1a, 0x0e, 0x43, 0xca, 0xc8, 0xe9, 0x4c, 0x5c, 0x1e, 0xb3, 0x61, 0xe4, 0xd8, 0x2d, 0xab, - 0x5d, 0xdf, 0xfa, 0x34, 0x77, 0x48, 0x2f, 0xaf, 0xe3, 0xdd, 0x34, 0xda, 0x78, 0x05, 0x0d, 0xd3, - 0x81, 0x0c, 0x71, 0x4c, 0xae, 0x75, 0xf7, 0xc9, 0x47, 0xfb, 0x39, 0x94, 0xe7, 0x7e, 0x38, 0x23, - 0xd8, 0x79, 0x55, 0x4f, 0x09, 0xaf, 0x0a, 0x5f, 0x58, 0xee, 0xcf, 0x2d, 0x68, 0xde, 0x70, 0x20, - 0xb5, 0xcf, 0x68, 0x1c, 0x12, 0x7d, 0x82, 0x12, 0x6c, 0x1b, 0x4a, 0x1d, 0x22, 0x06, 0xba, 0x79, - 0xf1, 0x59, 0x7a, 0x3a, 0x78, 0x1f, 0xeb, 0xb6, 0x95, 0x8f, 0xb6, 0x0b, 0x0d, 0xda, 0xeb, 0xcb, - 0xa3, 0xfa, 0xd1, 0x8c, 0x05, 0xba, 0x67, 0x73, 0x98, 0x6c, 0x1f, 0xda, 0xeb, 0xef, 0xf9, 0xc1, - 0x88, 0xec, 0x47, 0x33, 0x16, 0x63, 0xdb, 0x56, 0xbd, 0x3c, 0xe8, 0xfe, 0xbe, 0x00, 0xb5, 0x23, - 0xbc, 0x08, 0x92, 0x93, 0x03, 0x2b, 0x47, 0xfa, 0x92, 0x28, 0x56, 0x89, 0x28, 0xcb, 0x8d, 0x8f, - 0xd8, 0xaf, 0x8a, 0x5c, 0x06, 0x48, 0x3e, 0x6f, 0xa2, 0x98, 0x0e, 0xe9, 0x00, 0x47, 0xb7, 0xa6, - 0x9a, 0xc3, 0xa4, 0xce, 0x31, 0x8b, 0x79, 0x14, 0xcc, 0x06, 0xa8, 0xa3, 0x39, 0x9b, 0x98, 0xf4, - 0x8f, 0x7d, 0xcd, 0x43, 0x7d, 0xc9, 0x12, 0xd1, 0xfe, 0x16, 0x94, 0x7b, 0xef, 0x18, 0xe1, 0x78, - 0xab, 0xea, 0x5b, 0x5f, 0xcd, 0xd5, 0xee, 0x74, 0x76, 0x11, 0xd2, 0x81, 0x9c, 0x46, 0x58, 0x3a, - 0xa5, 0x29, 0xbb, 0x6a, 0x3f, 0xeb, 0x2a, 0x79, 0xc7, 0x4a, 0x9e, 0x81, 0xc8, 0xee, 0xef, 0x92, - 0xc9, 0x05, 0xe1, 0x2a, 0x3d, 0xf2, 0x76, 0x3d, 0xf1, 0x4c, 0x28, 0x49, 0x7c, 0x2d, 0x4d, 0xbc, - 0xfb, 0x0f, 0x0b, 0x9e, 0x61, 0xd8, 0x4a, 0xed, 0x70, 0x16, 0x86, 0xf7, 0x24, 0x6e, 0x1d, 0x2a, - 0xe7, 0xea, 0x8d, 0xa9, 0xe7, 0x91, 0x92, 0xec, 0x4d, 0xb0, 0x77, 0x83, 0x09, 0x65, 0x54, 0xc4, - 0xdc, 0x8f, 0x23, 0x7e, 0x42, 0xe6, 0x24, 0xc4, 0xc4, 0x95, 0xbd, 0x5b, 0x7e, 0x91, 0xf7, 0xe7, - 0x47, 0x11, 0x65, 0x18, 0x4b, 0x09, 0x63, 0x49, 0x65, 0xf9, 0x5b, 0x3a, 0x4b, 0x54, 0xde, 0x52, - 0xd9, 0x4c, 0x69, 0x25, 0x9f, 0x52, 0x17, 0x1a, 0x87, 0x9c, 0x12, 0x16, 0x78, 0x64, 0xe2, 0xf3, - 0xb1, 0x9e, 0x42, 0x39, 0xcc, 0xfd, 0xb3, 0x05, 0xd5, 0x24, 0xaf, 0x46, 0x28, 0x56, 0x2e, 0x14, - 0xed, 0x9e, 0x65, 0xad, 0x91, 0xca, 0xa6, 0xfb, 0x62, 0xde, 0xfd, 0x3a, 0x54, 0x8e, 0x70, 0x92, - 0x61, 0x38, 0x65, 0x4f, 0x4b, 0x12, 0xef, 0x46, 0x17, 0x34, 0x4c, 0x42, 0xd1, 0x92, 0xbc, 0x2f, - 0x7b, 0x94, 0xc7, 0x97, 0x3a, 0x0c, 0x25, 0x48, 0xf4, 0x60, 0xe2, 0xd3, 0x50, 0xb3, 0x57, 0x42, - 0x52, 0xb8, 0x6a, 0x56, 0xb8, 0xb9, 0x5c, 0x65, 0xcc, 0x2e, 0xf9, 0x38, 0xd1, 0xb8, 0x1d, 0xa8, - 0x9e, 0xd1, 0xa9, 0xd8, 0x8f, 0x26, 0x13, 0xa9, 0xd3, 0x21, 0xb1, 0x24, 0x6b, 0xe1, 0x2c, 0xd5, - 0x92, 0x6c, 0xc4, 0x0e, 0x19, 0xfa, 0xb3, 0x30, 0x96, 0xaa, 0xc9, 0x4b, 0xd1, 0x80, 0xdc, 0xdf, - 0x5a, 0xd0, 0x54, 0x1d, 0x77, 0xc0, 0x62, 0xc2, 0x25, 0x66, 0x7f, 0x06, 0x65, 0xec, 0x31, 0x3c, - 0xac, 0xbe, 0xb5, 0x9e, 0x5f, 0x2f, 0x92, 0x2b, 0xed, 0x29, 0x25, 0x7b, 0x0f, 0xea, 0x72, 0x6c, - 0xf9, 0x2c, 0x96, 0x61, 0xa2, 0x8f, 0xfa, 0x56, 0x6b, 0xd1, 0x26, 0xdf, 0xd7, 0x9e, 0x69, 0x24, - 0x27, 0x4a, 0x2f, 0xd9, 0xce, 0xd2, 0xf7, 0x73, 0xc9, 0xcb, 0x83, 0xee, 0x6f, 0x52, 0xae, 0x27, - 0xc4, 0x9f, 0x93, 0x47, 0x70, 0x7d, 0x0d, 0x80, 0xa6, 0xfc, 0x41, 0x54, 0x0d, 0x9b, 0x25, 0x99, - 0xfe, 0xdd, 0x82, 0xa7, 0xea, 0x90, 0x63, 0x36, 0xa7, 0x31, 0x09, 0x1e, 0xc1, 0xf5, 0x0b, 0xa8, - 0xf4, 0xa6, 0x0f, 0xe2, 0xa9, 0xf5, 0x65, 0x45, 0xb4, 0x5b, 0x34, 0x2f, 0x2e, 0x5b, 0x11, 0xc3, - 0x68, 0x31, 0xce, 0xd2, 0x6d, 0x71, 0xfe, 0xd5, 0x82, 0x35, 0x75, 0xca, 0x8f, 0xe9, 0x60, 0xfc, - 0x91, 0xc3, 0x7c, 0x0d, 0xa0, 0xbc, 0x3e, 0x28, 0x4a, 0xc3, 0x66, 0xc9, 0x20, 0xff, 0x6d, 0xc1, - 0x8b, 0xa4, 0x98, 0xc3, 0x68, 0xff, 0xd2, 0x67, 0x23, 0x1d, 0xa9, 0x7c, 0x0f, 0xa0, 0x88, 0x4b, - 0x8e, 0xfa, 0x68, 0x30, 0x90, 0xff, 0x23, 0xb6, 0xef, 0x43, 0xed, 0x90, 0x32, 0x1f, 0xc1, 0xa5, - 0x43, 0xcb, 0x4c, 0xe4, 0xa8, 0xe9, 0xce, 0xf4, 0xfb, 0x49, 0xcf, 0xf4, 0x44, 0xce, 0xea, 0x53, - 0x5e, 0xa2, 0x3e, 0xee, 0xdf, 0x2c, 0x58, 0xc3, 0x27, 0xf5, 0x7e, 0x7b, 0x4c, 0x89, 0x5f, 0xc1, - 0x0a, 0x1a, 0x47, 0xcb, 0xe7, 0x21, 0x31, 0x90, 0x45, 0xd6, 0x57, 0x3e, 0xf9, 0x8a, 0x5c, 0xaa, - 0xc8, 0x99, 0xcd, 0x92, 0x45, 0xfe, 0xa5, 0x05, 0xcf, 0x53, 0xe2, 0x66, 0x8d, 0xe5, 0x77, 0x85, - 0x16, 0xb3, 0x22, 0x9b, 0x50, 0x96, 0x8c, 0xc2, 0xc3, 0xfa, 0xbd, 0xf8, 0xb0, 0x9e, 0x70, 0x7f, - 0x61, 0xc1, 0x86, 0x47, 0x06, 0x84, 0xce, 0x89, 0x7c, 0x3f, 0xef, 0x4e, 0xa7, 0xa1, 0xde, 0x80, - 0x1e, 0x51, 0x93, 0x1d, 0xa8, 0xe9, 0x03, 0x58, 0xac, 0x89, 0xdf, 0xb9, 0xf9, 0x64, 0xda, 0xf2, - 0x65, 0xe3, 0x11, 0x5f, 0xa4, 0xcb, 0x98, 0x96, 0xdc, 0x3f, 0x5a, 0xe0, 0x18, 0xa4, 0x4e, 0x79, - 0x34, 0x20, 0x42, 0x7c, 0xe4, 0xa1, 0x80, 0xe4, 0xc4, 0x2c, 0x8c, 0xf5, 0xc2, 0xa3, 0x25, 0x83, - 0x74, 0x29, 0x47, 0xfa, 0x0f, 0x16, 0x80, 0xda, 0x4b, 0xf0, 0xde, 0x6c, 0x43, 0x0d, 0x57, 0x3c, - 0xf4, 0xad, 0xa8, 0xbe, 0xc8, 0xf9, 0xce, 0x12, 0x92, 0xea, 0xa9, 0xb3, 0x71, 0xd1, 0x29, 0x24, - 0x67, 0x4b, 0xe9, 0xc6, 0x9a, 0x58, 0x5c, 0x58, 0x13, 0xbf, 0x9d, 0xb8, 0x46, 0x6f, 0xa5, 0xbb, - 0xbc, 0x19, 0x8a, 0xee, 0x18, 0x9e, 0x2a, 0xc9, 0x48, 0xb6, 0xdc, 0x1f, 0x76, 0x03, 0xf5, 0x0d, - 0x64, 0xa1, 0xa3, 0x44, 0x94, 0xfb, 0xf5, 0x6e, 0x10, 0xf4, 0xa3, 0x19, 0x1f, 0xa4, 0xfb, 0x75, - 0x0a, 0x48, 0x8e, 0xbb, 0x41, 0xf0, 0x93, 0x88, 0x07, 0x94, 0x8d, 0x74, 0x41, 0x0d, 0xc4, 0xfd, - 0xa7, 0x05, 0x1b, 0x0b, 0xde, 0x76, 0x83, 0x40, 0x97, 0x75, 0x3b, 0x2d, 0x94, 0x75, 0x7f, 0x0f, - 0x65, 0x83, 0xbb, 0x6e, 0x1c, 0xa6, 0x4b, 0xfc, 0x32, 0x67, 0xb9, 0xe0, 0xd2, 0x33, 0x4d, 0xec, - 0xef, 0x40, 0xb5, 0x37, 0xcd, 0x0d, 0xfe, 0x3b, 0x1d, 0xa7, 0xca, 0x4b, 0x0e, 0x83, 0xbf, 0x58, - 0xf0, 0x72, 0x81, 0x41, 0xbe, 0x9f, 0x1f, 0x15, 0xb8, 0x49, 0xbb, 0xf0, 0x10, 0xda, 0xf8, 0xa7, - 0x07, 0xb3, 0xab, 0x95, 0xb4, 0x64, 0x38, 0x97, 0xd0, 0xd4, 0xd1, 0xa4, 0x75, 0xfb, 0x1c, 0x2a, - 0x0a, 0xd2, 0xf4, 0x3f, 0xb9, 0x25, 0xfb, 0x8a, 0xba, 0x7a, 0x5e, 0xf4, 0x54, 0xb8, 0xcd, 0xd3, - 0x4f, 0x93, 0xd6, 0xec, 0x90, 0x90, 0xc4, 0x1f, 0xd6, 0xd7, 0xaf, 0x2c, 0xa8, 0xed, 0x85, 0xfe, - 0x60, 0x8c, 0x17, 0x77, 0x67, 0xf1, 0xe2, 0xde, 0x3d, 0xcf, 0xb2, 0xeb, 0x7b, 0xdf, 0x35, 0xdd, - 0xd1, 0x7e, 0x8c, 0x5b, 0x7a, 0xf7, 0xd1, 0xa9, 0xb6, 0x1b, 0xc0, 0x2a, 0x0a, 0x59, 0xe2, 0x3f, - 0x83, 0x32, 0x22, 0xb7, 0xce, 0xc1, 0x34, 0x1c, 0x4f, 0x29, 0x2d, 0x99, 0x89, 0x21, 0xac, 0xa1, - 0xba, 0x99, 0xf4, 0x0f, 0xe1, 0xe7, 0xd7, 0x16, 0xbc, 0xc8, 0xca, 0x65, 0xbe, 0x24, 0x1f, 0x5c, - 0xe2, 0xed, 0x1b, 0x03, 0x7e, 0xa9, 0xeb, 0xb3, 0xdc, 0xee, 0xfd, 0x3b, 0x0b, 0x9e, 0xf5, 0x49, - 0x38, 0x94, 0xa6, 0xe7, 0xd3, 0x20, 0xdd, 0x59, 0x76, 0xa0, 0x21, 0xe1, 0xe4, 0xd4, 0xbb, 0xa7, - 0x7b, 0x4e, 0xf5, 0x03, 0xb2, 0xbd, 0xa8, 0xe0, 0xbf, 0x22, 0xb6, 0xff, 0x1b, 0x00, 0x00, 0xff, - 0xff, 0x8b, 0x1e, 0x2f, 0xb4, 0x9d, 0x18, 0x00, 0x00, + 0x11, 0xd7, 0xf8, 0x5f, 0xec, 0xb2, 0x37, 0xce, 0xce, 0xfe, 0x79, 0xc3, 0xf2, 0xb4, 0x32, 0x23, + 0x84, 0x2c, 0xf4, 0x94, 0x27, 0x12, 0x21, 0x5e, 0x16, 0x01, 0xeb, 0xc4, 0x49, 0x08, 0xc4, 0xeb, + 0x68, 0x9c, 0x88, 0xe3, 0x6a, 0xe2, 0x69, 0x3b, 0x8d, 0xc7, 0x3d, 0x4e, 0xf7, 0xd8, 0xbb, 0xb9, + 0xf0, 0x2d, 0x10, 0x27, 0x24, 0x10, 0x07, 0x84, 0xe0, 0x80, 0x38, 0xf0, 0x11, 0x38, 0xf1, 0x29, + 0x10, 0x7c, 0x01, 0x38, 0xc2, 0x01, 0x75, 0x75, 0xcf, 0x4c, 0x4f, 0x1c, 0x12, 0x27, 0x68, 0xf7, + 0xf2, 0x6e, 0x53, 0x3f, 0x57, 0x75, 0xfd, 0xea, 0x4f, 0xd7, 0xd4, 0x24, 0xd0, 0x14, 0xc1, 0xe4, + 0xed, 0x3b, 0xf1, 0xf9, 0x3b, 0xb1, 0x39, 0xe3, 0x51, 0x1c, 0xd9, 0xf5, 0x68, 0x46, 0xd8, 0x5b, + 0x3a, 0x7d, 0x2b, 0x82, 0x89, 0xfb, 0x1f, 0x0b, 0x9c, 0x93, 0x79, 0x18, 0xf6, 0x88, 0x10, 0xfe, + 0x98, 0xec, 0x5e, 0x0d, 0xc8, 0xe5, 0x31, 0x15, 0xb1, 0x47, 0xc4, 0xcc, 0x76, 0x60, 0x8d, 0x70, + 0xbe, 0x17, 0x05, 0xc4, 0xb1, 0x5a, 0x56, 0xbb, 0xec, 0x25, 0xa2, 0xfd, 0x1c, 0x2a, 0x84, 0xf3, + 0x9e, 0x18, 0x3b, 0x85, 0x96, 0xd5, 0xae, 0x79, 0x5a, 0x92, 0xf8, 0xd4, 0x7f, 0x3f, 0x20, 0x97, + 0x4e, 0xb1, 0x65, 0xb5, 0x8b, 0x9e, 0x96, 0x10, 0xa7, 0x4c, 0xe2, 0x25, 0x8d, 0xa3, 0x64, 0xff, + 0x00, 0x1e, 0x09, 0xca, 0xc6, 0x21, 0x39, 0x13, 0x04, 0x8f, 0x2b, 0xb7, 0x8a, 0xed, 0xfa, 0xd6, + 0x57, 0x36, 0x0d, 0x8e, 0x9b, 0x87, 0x7e, 0x7c, 0x41, 0xf8, 0x41, 0xc4, 0xa7, 0x7e, 0xec, 0xe5, + 0xf5, 0xed, 0xef, 0x41, 0x63, 0xcc, 0xa3, 0xf9, 0x2c, 0xb1, 0xaf, 0xdc, 0x65, 0x9f, 0x53, 0x77, + 0xa7, 0xf0, 0xc9, 0xcd, 0xd1, 0x23, 0xe5, 0xb9, 0x20, 0xfc, 0xa8, 0x8b, 0xb1, 0xd7, 0x3c, 0x2d, + 0xd9, 0x2d, 0x90, 0x09, 0xe4, 0x7e, 0x4c, 0x23, 0x76, 0xd4, 0xd5, 0xf1, 0x9b, 0x90, 0x4c, 0x9b, + 0x50, 0xe7, 0x38, 0xc5, 0x56, 0xb1, 0x5d, 0xf4, 0x12, 0xd1, 0xfd, 0x19, 0xac, 0x1b, 0xee, 0x6e, + 0xf3, 0xf2, 0x02, 0xaa, 0x82, 0x5c, 0xee, 0x92, 0x31, 0x65, 0xe8, 0xa2, 0xe8, 0xa5, 0xb2, 0xb4, + 0x11, 0xe4, 0x72, 0x9f, 0x05, 0x49, 0x92, 0x95, 0x74, 0x9d, 0x59, 0x69, 0x89, 0x99, 0xfb, 0x2f, + 0x0b, 0x9a, 0x39, 0x02, 0x5f, 0x8a, 0x22, 0x3f, 0x05, 0xfb, 0x90, 0xc4, 0x3d, 0xff, 0x7d, 0x87, + 0x05, 0x3d, 0xa4, 0xe4, 0x91, 0x4b, 0x77, 0x1f, 0x9e, 0x2c, 0xa1, 0x62, 0x66, 0x04, 0x67, 0xfd, + 0x8f, 0xe0, 0x0a, 0x66, 0x70, 0xee, 0x0f, 0xa1, 0x61, 0xba, 0xb6, 0xd7, 0xa1, 0x40, 0x03, 0x5d, + 0xcc, 0x02, 0x0d, 0xec, 0x36, 0x94, 0x42, 0xd9, 0x09, 0x05, 0xe4, 0xfc, 0x34, 0xc7, 0xb9, 0x27, + 0xc6, 0x5d, 0x3f, 0xf6, 0x3d, 0xd4, 0x70, 0x2f, 0xa1, 0x29, 0x19, 0x0f, 0x08, 0x0b, 0x7a, 0x62, + 0x8c, 0x64, 0x5a, 0x50, 0x1f, 0x10, 0xbe, 0xc0, 0x30, 0xd2, 0x16, 0x31, 0x21, 0xa9, 0xb1, 0x17, + 0x52, 0xc2, 0x62, 0xa5, 0xa1, 0xbb, 0xd1, 0x80, 0x54, 0x27, 0xb1, 0xe0, 0x94, 0x4e, 0x89, 0xae, + 0x57, 0x2a, 0xbb, 0x7f, 0x2e, 0xc3, 0x9a, 0x26, 0xa1, 0xba, 0x8a, 0x05, 0x59, 0x27, 0x2a, 0x49, + 0xe2, 0x9c, 0x0c, 0x17, 0xe9, 0xe1, 0x5a, 0x92, 0x7d, 0x83, 0x59, 0x3e, 0xea, 0xe2, 0xb1, 0x35, + 0x2f, 0x11, 0x25, 0xa7, 0xa1, 0xc1, 0x49, 0xf7, 0xa1, 0x01, 0x49, 0x0d, 0x61, 0xc4, 0x55, 0x56, + 0x1a, 0x06, 0x64, 0x7f, 0x13, 0x36, 0xa4, 0x7f, 0xc2, 0x4f, 0x42, 0x3f, 0x1e, 0x45, 0x7c, 0x7a, + 0xd4, 0x75, 0x2a, 0xd8, 0x9e, 0x4b, 0xb8, 0xfd, 0x0d, 0x58, 0x57, 0xd8, 0x1b, 0x3a, 0x9c, 0xbc, + 0xf1, 0xa7, 0xc4, 0x59, 0xc3, 0x03, 0xaf, 0xa1, 0xf6, 0xd7, 0xe1, 0x91, 0x42, 0x0e, 0xfc, 0x21, + 0x39, 0xf3, 0x8e, 0x9d, 0x2a, 0xaa, 0xe5, 0x41, 0xc5, 0x4d, 0x08, 0x1a, 0xb1, 0xd3, 0xab, 0x19, + 0x71, 0x6a, 0xe8, 0xd4, 0x84, 0x64, 0xe4, 0x53, 0x31, 0x3e, 0xe0, 0xd1, 0xd4, 0x01, 0x75, 0x63, + 0xb4, 0x88, 0x91, 0x47, 0x2c, 0x26, 0x2c, 0x46, 0xdb, 0xba, 0xb2, 0x35, 0x20, 0x69, 0xab, 0x45, + 0xa7, 0xd1, 0xb2, 0xda, 0x0d, 0x2f, 0x11, 0xed, 0x4f, 0xa1, 0x36, 0x8a, 0xf8, 0x90, 0xe0, 0xdc, + 0x78, 0xd4, 0x2a, 0xb6, 0x6b, 0x5e, 0x06, 0xd8, 0x1b, 0x50, 0x14, 0xe4, 0xd2, 0x59, 0xc7, 0x02, + 0xca, 0xc7, 0x5c, 0x5d, 0x9b, 0xf9, 0xba, 0xda, 0x2f, 0x01, 0x86, 0x9c, 0xf8, 0x31, 0xc1, 0x5f, + 0x37, 0xf0, 0x57, 0x03, 0xb1, 0xbf, 0x0b, 0x6b, 0xfd, 0x99, 0x9c, 0x09, 0xc2, 0x79, 0x8c, 0x7d, + 0xf9, 0xb5, 0x9b, 0xfa, 0x72, 0x53, 0xeb, 0xec, 0xb3, 0x98, 0x5f, 0x79, 0x89, 0x85, 0x7d, 0x00, + 0xcd, 0x68, 0x34, 0x0a, 0x29, 0x23, 0x27, 0x73, 0x71, 0x71, 0xc4, 0x46, 0x91, 0x63, 0xb7, 0xac, + 0x76, 0x7d, 0xeb, 0xd3, 0xdc, 0x21, 0xfd, 0xbc, 0x8e, 0x77, 0xdd, 0xe8, 0xc5, 0x2b, 0x68, 0x98, + 0x0e, 0x64, 0x88, 0x13, 0x72, 0xa5, 0xbb, 0x4f, 0x3e, 0xda, 0x4f, 0xa1, 0xbc, 0xf0, 0xc3, 0x39, + 0xc1, 0xce, 0xab, 0x7a, 0x4a, 0x78, 0x55, 0xf8, 0xc2, 0x72, 0x7f, 0x61, 0x41, 0xf3, 0x9a, 0x03, + 0xa9, 0x7d, 0x4a, 0xe3, 0x90, 0xe8, 0x13, 0x94, 0x60, 0xdb, 0x50, 0xea, 0x12, 0x31, 0xd4, 0xcd, + 0x8b, 0xcf, 0xd2, 0xd3, 0xfe, 0xfb, 0x58, 0xb7, 0xad, 0x7c, 0xb4, 0x5d, 0x68, 0xd0, 0xfe, 0x40, + 0x1e, 0x35, 0x88, 0xe6, 0x2c, 0xd0, 0x3d, 0x9b, 0xc3, 0x64, 0xfb, 0xd0, 0xfe, 0x60, 0xd7, 0x0f, + 0xc6, 0x64, 0x2f, 0x9a, 0xb3, 0x18, 0xdb, 0xb6, 0xea, 0xe5, 0x41, 0xf7, 0x0f, 0x05, 0xa8, 0x1d, + 0xe2, 0x45, 0x90, 0x9c, 0x1c, 0x58, 0x3b, 0xd4, 0x97, 0x44, 0xb1, 0x4a, 0x44, 0x59, 0x6e, 0x7c, + 0xc4, 0x7e, 0x55, 0xe4, 0x32, 0x40, 0xf2, 0x79, 0x13, 0xc5, 0x74, 0x44, 0x87, 0x38, 0xba, 0x35, + 0xd5, 0x1c, 0x26, 0x75, 0x8e, 0x58, 0xcc, 0xa3, 0x60, 0x3e, 0x44, 0x1d, 0xcd, 0xd9, 0xc4, 0xa4, + 0x7f, 0xec, 0x6b, 0x1e, 0xea, 0x4b, 0x96, 0x88, 0xf6, 0xb7, 0xa0, 0xdc, 0x7f, 0xc7, 0x08, 0xc7, + 0x5b, 0x55, 0xdf, 0xfa, 0x6a, 0xae, 0x76, 0x27, 0xf3, 0xf3, 0x90, 0x0e, 0xe5, 0x34, 0xc2, 0xd2, + 0x29, 0x4d, 0xd9, 0x55, 0x7b, 0x59, 0x57, 0xc9, 0x3b, 0x56, 0xf2, 0x0c, 0x44, 0x76, 0x7f, 0x8f, + 0x4c, 0xcf, 0x09, 0x57, 0xe9, 0x91, 0xb7, 0xeb, 0x91, 0x67, 0x42, 0x49, 0xe2, 0x6b, 0x69, 0xe2, + 0xdd, 0x9f, 0x17, 0xe0, 0x09, 0x86, 0xad, 0xd4, 0x0e, 0xe6, 0x61, 0x78, 0x47, 0xe2, 0x9e, 0x43, + 0xe5, 0x4c, 0xbd, 0x31, 0xf5, 0x3c, 0x52, 0x92, 0xbd, 0x09, 0x76, 0x27, 0x98, 0x52, 0x46, 0x45, + 0xcc, 0xfd, 0x38, 0xe2, 0xc7, 0x64, 0x41, 0x42, 0x4c, 0x5c, 0xd9, 0xbb, 0xe1, 0x17, 0x79, 0x7f, + 0x7e, 0x14, 0x51, 0x86, 0xb1, 0x94, 0x30, 0x96, 0x54, 0x96, 0xbf, 0xa5, 0xb3, 0x44, 0xe5, 0x2d, + 0x95, 0xcd, 0x94, 0x56, 0xf2, 0x29, 0x75, 0xa1, 0x71, 0xc0, 0x29, 0x61, 0x81, 0x47, 0xa6, 0x3e, + 0x9f, 0xe8, 0x29, 0x94, 0xc3, 0xe4, 0xac, 0xea, 0xcc, 0x66, 0x3d, 0x9f, 0x8d, 0x89, 0x66, 0x58, + 0x45, 0x86, 0xd7, 0x50, 0xf7, 0x2f, 0x16, 0x54, 0x93, 0xfc, 0x1b, 0x21, 0x5b, 0xb9, 0x90, 0x35, + 0x4d, 0x96, 0xb5, 0x50, 0x2a, 0x9b, 0x34, 0x8b, 0x79, 0x9a, 0xcf, 0xa1, 0x72, 0x88, 0x13, 0x0f, + 0xc3, 0x2e, 0x7b, 0x5a, 0x92, 0x78, 0x2f, 0x3a, 0xa7, 0x61, 0x12, 0xb2, 0x96, 0xe4, 0xbd, 0xda, + 0xa5, 0x3c, 0xbe, 0xd0, 0xe1, 0x2a, 0x41, 0xa2, 0xfb, 0x53, 0x9f, 0x86, 0x3a, 0x4a, 0x25, 0x24, + 0x05, 0xae, 0x66, 0x05, 0x5e, 0xc8, 0x95, 0xc7, 0xec, 0xa6, 0x8f, 0x13, 0x8d, 0xdb, 0x85, 0xea, + 0x29, 0x9d, 0x89, 0xbd, 0x68, 0x3a, 0x95, 0x3a, 0x5d, 0x12, 0x4b, 0xb2, 0x16, 0xce, 0x5c, 0x2d, + 0xc9, 0x86, 0xed, 0x92, 0x91, 0x3f, 0x0f, 0x63, 0xa9, 0x9a, 0xbc, 0x3c, 0x0d, 0xc8, 0xfd, 0x9d, + 0x05, 0x4d, 0xd5, 0x99, 0xfb, 0x2c, 0x26, 0x5c, 0x62, 0xf6, 0x67, 0x50, 0xc6, 0x5e, 0xc4, 0xc3, + 0xea, 0x5b, 0xcf, 0xf3, 0x6b, 0x48, 0x72, 0xf5, 0x3d, 0xa5, 0x64, 0xef, 0x42, 0x5d, 0x8e, 0x37, + 0x9f, 0xc5, 0x32, 0x4c, 0xf4, 0x51, 0xdf, 0x6a, 0x2d, 0xdb, 0xe4, 0xfb, 0xdf, 0x33, 0x8d, 0xe4, + 0xe4, 0xe9, 0x27, 0x5b, 0x5c, 0xfa, 0x1e, 0x2f, 0x79, 0x79, 0xd0, 0xfd, 0x6d, 0xca, 0xf5, 0x98, + 0xf8, 0x0b, 0xf2, 0x00, 0xae, 0xaf, 0x01, 0xd0, 0x94, 0xdf, 0x8b, 0xaa, 0x61, 0xb3, 0x22, 0xd3, + 0x7f, 0x58, 0xf0, 0x58, 0x1d, 0x72, 0xc4, 0x16, 0x34, 0x26, 0xc1, 0x03, 0xb8, 0x7e, 0x01, 0x95, + 0xfe, 0xec, 0x5e, 0x3c, 0xb5, 0xbe, 0xac, 0x88, 0x76, 0x8b, 0xe6, 0xc5, 0x55, 0x2b, 0x62, 0x18, + 0x2d, 0xc7, 0x59, 0xba, 0x29, 0xce, 0xbf, 0x59, 0xb0, 0xa1, 0x4e, 0xf9, 0x31, 0x1d, 0x4e, 0x3e, + 0x72, 0x98, 0xaf, 0x01, 0x94, 0xd7, 0x7b, 0x45, 0x69, 0xd8, 0xac, 0x18, 0xe4, 0xbf, 0x2d, 0x78, + 0x96, 0x14, 0x73, 0x14, 0xed, 0x5d, 0xc8, 0x21, 0xa6, 0x22, 0x95, 0xef, 0x0b, 0x14, 0x71, 0x19, + 0x52, 0x1f, 0x17, 0x06, 0xf2, 0x7f, 0xc4, 0xf6, 0x7d, 0xa8, 0x1d, 0x50, 0xe6, 0x23, 0xb8, 0x72, + 0x68, 0x99, 0x89, 0x1c, 0x35, 0xbd, 0xb9, 0x7e, 0x8f, 0xe9, 0xd9, 0x9f, 0xc8, 0x59, 0x7d, 0xca, + 0x2b, 0xd4, 0xc7, 0xfd, 0xbb, 0x05, 0x1b, 0xf8, 0xa4, 0xde, 0x83, 0x0f, 0x29, 0xf1, 0x2b, 0x58, + 0x43, 0xe3, 0x68, 0xf5, 0x3c, 0x24, 0x06, 0xb2, 0xc8, 0xfa, 0xca, 0x27, 0x5f, 0x9b, 0x2b, 0x15, + 0x39, 0xb3, 0x59, 0xb1, 0xc8, 0xbf, 0xb2, 0xe0, 0x69, 0x4a, 0xdc, 0xac, 0xb1, 0xfc, 0xfe, 0xd0, + 0x62, 0x56, 0x64, 0x13, 0xca, 0x92, 0x51, 0xb8, 0x5f, 0xbf, 0x17, 0xef, 0xd7, 0x13, 0xee, 0x2f, + 0x2d, 0x78, 0xe1, 0x91, 0x21, 0xa1, 0x0b, 0x22, 0xdf, 0xe3, 0x9d, 0xd9, 0x2c, 0xd4, 0x9b, 0xd2, + 0x03, 0x6a, 0xb2, 0x03, 0x35, 0x7d, 0x00, 0x8b, 0x35, 0xf1, 0x5b, 0x37, 0xa4, 0x4c, 0x5b, 0xbe, + 0x6c, 0x3c, 0xe2, 0x8b, 0x74, 0x69, 0xd3, 0x92, 0xfb, 0x27, 0x0b, 0x1c, 0x83, 0xd4, 0x09, 0x8f, + 0x86, 0x44, 0x88, 0x8f, 0x3c, 0x14, 0x90, 0x9c, 0x98, 0x87, 0xb1, 0x5e, 0x8c, 0xb4, 0x64, 0x90, + 0x2e, 0xe5, 0x48, 0xff, 0xd1, 0x02, 0x50, 0xfb, 0x0b, 0xde, 0x9b, 0x6d, 0xa8, 0xe1, 0x2a, 0x88, + 0xbe, 0x15, 0xd5, 0x67, 0x39, 0xdf, 0x59, 0x42, 0x52, 0x3d, 0x75, 0x36, 0x2e, 0x44, 0x85, 0xe4, + 0x6c, 0x5c, 0x85, 0xf2, 0xeb, 0x64, 0x71, 0x69, 0x9d, 0xfc, 0x76, 0xe2, 0x1a, 0xbd, 0x95, 0x6e, + 0xf3, 0x66, 0x28, 0xba, 0x13, 0x78, 0xac, 0x24, 0x23, 0xd9, 0x72, 0x7f, 0xe8, 0x04, 0xea, 0x5b, + 0xc9, 0x42, 0x47, 0x89, 0x28, 0xf7, 0xf0, 0x4e, 0x10, 0x0c, 0xa2, 0x39, 0x1f, 0xa6, 0x7b, 0x78, + 0x0a, 0x48, 0x8e, 0x9d, 0x20, 0xf8, 0x49, 0xc4, 0x03, 0xca, 0xc6, 0xba, 0xa0, 0x06, 0xe2, 0xfe, + 0xd3, 0x82, 0x17, 0x4b, 0xde, 0x3a, 0x41, 0xa0, 0xcb, 0xba, 0x9d, 0x16, 0xca, 0xba, 0xbb, 0x87, + 0xb2, 0xc1, 0x5d, 0x37, 0x0e, 0xd3, 0x25, 0x7e, 0x99, 0xb3, 0x5c, 0x72, 0xe9, 0x99, 0x26, 0xf6, + 0x77, 0xa0, 0xda, 0x9f, 0xe5, 0x06, 0xff, 0xad, 0x8e, 0x53, 0xe5, 0x15, 0x87, 0xc1, 0x5f, 0x2d, + 0x78, 0xb9, 0xc4, 0x20, 0xdf, 0xcf, 0x0f, 0x0a, 0xdc, 0xa4, 0x5d, 0xb8, 0x0f, 0x6d, 0xfc, 0x13, + 0x85, 0xd9, 0xd5, 0x4a, 0x5a, 0x31, 0x9c, 0x0b, 0x68, 0xea, 0x68, 0xd2, 0xba, 0x7d, 0x0e, 0x15, + 0x05, 0x69, 0xfa, 0x9f, 0xdc, 0x90, 0x7d, 0x45, 0x5d, 0x3d, 0x2f, 0x7b, 0x2a, 0xdc, 0xe4, 0xe9, + 0xa7, 0x49, 0x6b, 0x76, 0x49, 0x48, 0xe2, 0x0f, 0xeb, 0xeb, 0xd7, 0x16, 0xd4, 0x76, 0x43, 0x7f, + 0x38, 0xc1, 0x8b, 0xbb, 0xb3, 0x7c, 0x71, 0x6f, 0x9f, 0x67, 0xd9, 0xf5, 0xbd, 0xeb, 0x9a, 0xee, + 0x68, 0x3f, 0xc6, 0x2d, 0xbd, 0xfd, 0xe8, 0x54, 0xdb, 0x0d, 0x60, 0x1d, 0x85, 0x2c, 0xf1, 0x9f, + 0x41, 0x19, 0x91, 0x1b, 0xe7, 0x60, 0x1a, 0x8e, 0xa7, 0x94, 0x56, 0xcc, 0xc4, 0x08, 0x36, 0x50, + 0xdd, 0x4c, 0xfa, 0x87, 0xf0, 0xf3, 0x1b, 0x0b, 0x9e, 0x65, 0xe5, 0x32, 0x5f, 0x92, 0xf7, 0x2e, + 0xf1, 0xf6, 0xb5, 0x01, 0xbf, 0xd2, 0xf5, 0x59, 0x6d, 0xf7, 0xfe, 0xbd, 0x05, 0x4f, 0x06, 0x24, + 0x1c, 0x49, 0xd3, 0xb3, 0x59, 0x90, 0xee, 0x2c, 0x3b, 0xd0, 0x90, 0x70, 0x72, 0xea, 0xed, 0xd3, + 0x3d, 0xa7, 0xfa, 0x01, 0xd9, 0x9e, 0x57, 0xf0, 0x5f, 0x16, 0xdb, 0xff, 0x0d, 0x00, 0x00, 0xff, + 0xff, 0x73, 0x31, 0x8b, 0x68, 0xc5, 0x18, 0x00, 0x00, } diff --git a/pkg/proto/sdk_ws/ws.proto b/pkg/proto/sdk_ws/ws.proto index 05359cf21..3a20f1fcb 100644 --- a/pkg/proto/sdk_ws/ws.proto +++ b/pkg/proto/sdk_ws/ws.proto @@ -128,6 +128,7 @@ message GroupMemberFullInfo { string NickName = 5; string FaceUrl = 6; string FriendRemark = 7; + int32 AppMangerLevel = 8; // >0 } //private, Friends have permission to view From ba249d294eb8c6517bf30e86e53a15815cc952d7 Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Thu, 23 Dec 2021 19:37:41 +0800 Subject: [PATCH 236/814] send msg file modify --- cmd/open_im_api/main.go | 8 +-- internal/api/chat/get_max_min_seq.go | 2 +- internal/api/chat/pull_msg.go | 17 +++--- internal/api/chat/send_msg.go | 78 ++++++++++++------------ internal/api/manage/management_chat.go | 83 ++++++++++++++++---------- internal/rpc/msg/send_msg.go | 9 ++- 6 files changed, 109 insertions(+), 88 deletions(-) diff --git a/cmd/open_im_api/main.go b/cmd/open_im_api/main.go index d199bcdbb..23a4c0ec0 100644 --- a/cmd/open_im_api/main.go +++ b/cmd/open_im_api/main.go @@ -77,10 +77,10 @@ func main() { //Message chatGroup := r.Group("/msg") { - chatGroup.POST("/newest_seq", apiChat.UserGetSeq) - chatGroup.POST("/pull_msg", apiChat.UserPullMsg) - chatGroup.POST("/send_msg", apiChat.UserSendMsg) - chatGroup.POST("/pull_msg_by_seq", apiChat.UserPullMsgBySeqList) + chatGroup.POST("/newest_seq", apiChat.GetSeq) + chatGroup.POST("/pull_msg", apiChat.PullMsg) + chatGroup.POST("/send_msg", apiChat.SendMsg) + chatGroup.POST("/pull_msg_by_seq", apiChat.PullMsgBySeqList) } //Manager managementGroup := r.Group("/manager") diff --git a/internal/api/chat/get_max_min_seq.go b/internal/api/chat/get_max_min_seq.go index 984497c18..95a4b1340 100644 --- a/internal/api/chat/get_max_min_seq.go +++ b/internal/api/chat/get_max_min_seq.go @@ -19,7 +19,7 @@ type paramsUserNewestSeq struct { MsgIncr int `json:"msgIncr" binding:"required"` } -func UserGetSeq(c *gin.Context) { +func GetSeq(c *gin.Context) { params := paramsUserNewestSeq{} if err := c.BindJSON(¶ms); err != nil { c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": err.Error()}) diff --git a/internal/api/chat/pull_msg.go b/internal/api/chat/pull_msg.go index c0fa578e9..881612681 100644 --- a/internal/api/chat/pull_msg.go +++ b/internal/api/chat/pull_msg.go @@ -6,6 +6,7 @@ import ( "Open_IM/pkg/common/token_verify" "Open_IM/pkg/grpc-etcdv3/getcdv3" "Open_IM/pkg/proto/chat" + "Open_IM/pkg/proto/sdk_ws" "context" "github.com/gin-gonic/gin" "net/http" @@ -22,7 +23,7 @@ type paramsUserPullMsg struct { } } -func UserPullMsg(c *gin.Context) { +func PullMsg(c *gin.Context) { params := paramsUserPullMsg{} if err := c.BindJSON(¶ms); err != nil { c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": err.Error()}) @@ -34,7 +35,7 @@ func UserPullMsg(c *gin.Context) { c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": "token validate err" + err.Error()}) return } - pbData := pbChat.PullMessageReq{} + pbData := open_im_sdk.PullMessageReq{} pbData.UserID = params.SendID pbData.OperationID = params.OperationID pbData.SeqBegin = *params.Data.SeqBegin @@ -54,12 +55,12 @@ func UserPullMsg(c *gin.Context) { if v := reply.GetSingleUserMsg(); v != nil { msg["single"] = v } else { - msg["single"] = []pbChat.GatherFormat{} + msg["single"] = []open_im_sdk.GatherFormat{} } if v := reply.GetGroupUserMsg(); v != nil { msg["group"] = v } else { - msg["group"] = []pbChat.GatherFormat{} + msg["group"] = []open_im_sdk.GatherFormat{} } msg["maxSeq"] = reply.GetMaxSeq() msg["minSeq"] = reply.GetMinSeq() @@ -79,7 +80,7 @@ type paramsUserPullMsgBySeqList struct { SeqList []int64 `json:"seqList"` } -func UserPullMsgBySeqList(c *gin.Context) { +func PullMsgBySeqList(c *gin.Context) { params := paramsUserPullMsgBySeqList{} if err := c.BindJSON(¶ms); err != nil { c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": err.Error()}) @@ -91,7 +92,7 @@ func UserPullMsgBySeqList(c *gin.Context) { c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": "token validate err" + err.Error()}) return } - pbData := pbChat.PullMessageBySeqListReq{} + pbData := open_im_sdk.PullMessageBySeqListReq{} pbData.UserID = params.SendID pbData.OperationID = params.OperationID pbData.SeqList = params.SeqList @@ -110,12 +111,12 @@ func UserPullMsgBySeqList(c *gin.Context) { if v := reply.GetSingleUserMsg(); v != nil { msg["single"] = v } else { - msg["single"] = []pbChat.GatherFormat{} + msg["single"] = []open_im_sdk.GatherFormat{} } if v := reply.GetGroupUserMsg(); v != nil { msg["group"] = v } else { - msg["group"] = []pbChat.GatherFormat{} + msg["group"] = []open_im_sdk.GatherFormat{} } msg["maxSeq"] = reply.GetMaxSeq() msg["minSeq"] = reply.GetMinSeq() diff --git a/internal/api/chat/send_msg.go b/internal/api/chat/send_msg.go index 310be2ec2..8522ae228 100644 --- a/internal/api/chat/send_msg.go +++ b/internal/api/chat/send_msg.go @@ -4,7 +4,7 @@ import ( "Open_IM/pkg/common/config" "Open_IM/pkg/common/log" pbChat "Open_IM/pkg/proto/chat" - "Open_IM/pkg/utils" + "Open_IM/pkg/proto/sdk_ws" "context" "Open_IM/pkg/grpc-etcdv3/getcdv3" @@ -14,50 +14,51 @@ import ( ) type paramsUserSendMsg struct { - ReqIdentifier int32 `json:"reqIdentifier" binding:"required"` - PlatformID int32 `json:"platformID" binding:"required"` - SendID string `json:"sendID" binding:"required"` - SenderNickName string `json:"senderNickName"` - SenderFaceURL string `json:"senderFaceUrl"` - OperationID string `json:"operationID" binding:"required"` - Data struct { - SessionType int32 `json:"sessionType" binding:"required"` - MsgFrom int32 `json:"msgFrom" binding:"required"` - ContentType int32 `json:"contentType" binding:"required"` - RecvID string `json:"recvID" binding:"required"` - ForceList []string `json:"forceList"` - Content string `json:"content" binding:"required"` - Options map[string]int32 `json:"options" ` - ClientMsgID string `json:"clientMsgID" binding:"required"` - OffLineInfo map[string]interface{} `json:"offlineInfo" ` - Ex map[string]interface{} `json:"ext"` + SenderPlatformID int32 `json:"senderPlatformID" binding:"required"` + SendID string `json:"sendID" binding:"required"` + SenderNickName string `json:"senderNickName"` + SenderFaceURL string `json:"senderFaceUrl"` + OperationID string `json:"operationID" binding:"required"` + Data struct { + SessionType int32 `json:"sessionType" binding:"required"` + MsgFrom int32 `json:"msgFrom" binding:"required"` + ContentType int32 `json:"contentType" binding:"required"` + RecvID string `json:"recvID" ` + GroupID string `json:"groupID" ` + ForceList []string `json:"forceList"` + Content []byte `json:"content" binding:"required"` + Options map[string]bool `json:"options" ` + ClientMsgID string `json:"clientMsgID" binding:"required"` + CreateTime int64 `json:"createTime" binding:"required"` + OffLineInfo *open_im_sdk.OfflinePushInfo `json:"offlineInfo" ` } } func newUserSendMsgReq(token string, params *paramsUserSendMsg) *pbChat.SendMsgReq { pbData := pbChat.SendMsgReq{ - ReqIdentifier: params.ReqIdentifier, - Token: token, - SendID: params.SendID, - SenderNickName: params.SenderNickName, - SenderFaceURL: params.SenderFaceURL, - OperationID: params.OperationID, - PlatformID: params.PlatformID, - SessionType: params.Data.SessionType, - MsgFrom: params.Data.MsgFrom, - ContentType: params.Data.ContentType, - RecvID: params.Data.RecvID, - ForceList: params.Data.ForceList, - Content: params.Data.Content, - Options: utils.MapIntToJsonString(params.Data.Options), - ClientMsgID: params.Data.ClientMsgID, - OffLineInfo: utils.MapToJsonString(params.Data.OffLineInfo), - Ex: utils.MapToJsonString(params.Data.Ex), + Token: token, + OperationID: params.OperationID, + MsgData: &open_im_sdk.MsgData{ + SendID: params.SendID, + RecvID: params.Data.RecvID, + GroupID: params.Data.GroupID, + ClientMsgID: params.Data.ClientMsgID, + SenderPlatformID: params.SenderPlatformID, + SenderNickName: params.SenderNickName, + SenderFaceURL: params.SenderFaceURL, + SessionType: params.Data.SessionType, + MsgFrom: params.Data.MsgFrom, + ContentType: params.Data.ContentType, + Content: params.Data.Content, + CreateTime: params.Data.CreateTime, + Options: params.Data.Options, + OfflinePushInfo: params.Data.OffLineInfo, + }, } return &pbData } -func UserSendMsg(c *gin.Context) { +func SendMsg(c *gin.Context) { params := paramsUserSendMsg{} if err := c.BindJSON(¶ms); err != nil { c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": err.Error()}) @@ -86,9 +87,8 @@ func UserSendMsg(c *gin.Context) { log.Info("", "", "api SendMsg call end..., [data: %s] [reply: %s]", pbData.String(), reply.String()) c.JSON(http.StatusOK, gin.H{ - "errCode": reply.ErrCode, - "errMsg": reply.ErrMsg, - "reqIdentifier": reply.ReqIdentifier, + "errCode": reply.ErrCode, + "errMsg": reply.ErrMsg, "data": gin.H{ "clientMsgID": reply.ClientMsgID, "serverMsgID": reply.ServerMsgID, diff --git a/internal/api/manage/management_chat.go b/internal/api/manage/management_chat.go index a72fb1c02..298b53836 100644 --- a/internal/api/manage/management_chat.go +++ b/internal/api/manage/management_chat.go @@ -13,6 +13,7 @@ import ( "Open_IM/pkg/common/token_verify" "Open_IM/pkg/grpc-etcdv3/getcdv3" pbChat "Open_IM/pkg/proto/chat" + "Open_IM/pkg/proto/sdk_ws" "Open_IM/pkg/utils" "context" "github.com/gin-gonic/gin" @@ -25,20 +26,22 @@ import ( var validate *validator.Validate type paramsManagementSendMsg struct { - OperationID string `json:"operationID" binding:"required"` - SendID string `json:"sendID" binding:"required"` - RecvID string `json:"recvID" binding:"required"` - SenderNickName string `json:"senderNickName" ` - SenderFaceURL string `json:"senderFaceURL" ` - SenderPlatformID int32 `json:"senderPlatformID"` - ForceList []string `json:"forceList" ` - Content map[string]interface{} `json:"content" binding:"required"` - ContentType int32 `json:"contentType" binding:"required"` - SessionType int32 `json:"sessionType" binding:"required"` - IsOnlineOnly bool `json:"isOnlineOnly"` + OperationID string `json:"operationID" binding:"required"` + SendID string `json:"sendID" binding:"required"` + RecvID string `json:"recvID" ` + GroupID string `json:"groupID" ` + SenderNickName string `json:"senderNickName" ` + SenderFaceURL string `json:"senderFaceURL" ` + SenderPlatformID int32 `json:"senderPlatformID"` + ForceList []string `json:"forceList" ` + Content map[string]interface{} `json:"content" binding:"required"` + ContentType int32 `json:"contentType" binding:"required"` + SessionType int32 `json:"sessionType" binding:"required"` + IsOnlineOnly bool `json:"isOnlineOnly"` + OfflinePushInfo *open_im_sdk.OfflinePushInfo `json:"offlinePushInfo"` } -func newUserSendMsgReq(params *paramsManagementSendMsg) *pbChat.UserSendMsgReq { +func newUserSendMsgReq(params *paramsManagementSendMsg) *pbChat.SendMsgReq { var newContent string switch params.ContentType { case constant.Text: @@ -53,26 +56,31 @@ func newUserSendMsgReq(params *paramsManagementSendMsg) *pbChat.UserSendMsgReq { newContent = utils.StructToJsonString(params.Content) default: } - options := make(map[string]int32, 2) + options := make(map[string]bool, 2) if params.IsOnlineOnly { - options["history"] = 0 - options["persistent"] = 0 + utils.SetSwitchFromOptions(options, constant.IsOfflinePush, false) + utils.SetSwitchFromOptions(options, constant.IsHistory, false) + utils.SetSwitchFromOptions(options, constant.IsPersistent, false) } - pbData := pbChat.UserSendMsgReq{ - ReqIdentifier: constant.WSSendMsg, - SendID: params.SendID, - SenderNickName: params.SenderNickName, - SenderFaceURL: params.SenderFaceURL, - OperationID: params.OperationID, - PlatformID: params.SenderPlatformID, - SessionType: params.SessionType, - MsgFrom: constant.UserMsgType, - ContentType: params.ContentType, - RecvID: params.RecvID, - ForceList: params.ForceList, - Content: newContent, - ClientMsgID: utils.GetMsgID(params.SendID), - Options: utils.MapIntToJsonString(options), + pbData := pbChat.SendMsgReq{ + OperationID: params.OperationID, + MsgData: &open_im_sdk.MsgData{ + SendID: params.SendID, + RecvID: params.RecvID, + GroupID: params.GroupID, + ClientMsgID: utils.GetMsgID(params.SendID), + SenderPlatformID: params.SenderPlatformID, + SenderNickName: params.SenderNickName, + SenderFaceURL: params.SenderFaceURL, + SessionType: params.SessionType, + MsgFrom: constant.SysMsgType, + ContentType: params.ContentType, + Content: []byte(newContent), + ForceList: params.ForceList, + CreateTime: utils.GetCurrentTimestampByNano(), + Options: options, + OfflinePushInfo: params.OfflinePushInfo, + }, } return &pbData } @@ -135,6 +143,19 @@ func ManagementSendMsg(c *gin.Context) { c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": "not authorized", "sendTime": 0, "MsgID": ""}) return + } + switch params.SessionType { + case constant.SingleChatType: + if len(params.RecvID) == 0 { + log.NewError(params.OperationID, "recvID is a null string") + c.JSON(http.StatusBadRequest, gin.H{"errCode": 405, "errMsg": "recvID is a null string", "sendTime": 0, "MsgID": ""}) + } + case constant.GroupChatType: + if len(params.GroupID) == 0 { + log.NewError(params.OperationID, "groupID is a null string") + c.JSON(http.StatusBadRequest, gin.H{"errCode": 405, "errMsg": "groupID is a null string", "sendTime": 0, "MsgID": ""}) + } + } log.InfoByKv("Ws call success to ManagementSendMsgReq", params.OperationID, "Parameters", params) @@ -146,7 +167,7 @@ func ManagementSendMsg(c *gin.Context) { log.Info("", "", "api ManagementSendMsg call, api call rpc...") - reply, err := client.UserSendMsg(context.Background(), pbData) + reply, err := client.SendMsg(context.Background(), pbData) if err != nil { log.NewError(params.OperationID, "call delete UserSendMsg rpc server failed", err.Error()) c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": "call UserSendMsg rpc server failed"}) diff --git a/internal/rpc/msg/send_msg.go b/internal/rpc/msg/send_msg.go index 26e49bfa8..c81878f4b 100644 --- a/internal/rpc/msg/send_msg.go +++ b/internal/rpc/msg/send_msg.go @@ -155,7 +155,6 @@ func (rpc *rpcChat) SendMsg(_ context.Context, pb *pbChat.SendMsgReq) (*pbChat.S client := pbGroup.NewGroupClient(etcdConn) req := &pbGroup.GetGroupAllMemberReq{ GroupID: pb.MsgData.GroupID, - Token: pb.Token, OperationID: pb.OperationID, } reply, err := client.GetGroupAllMember(context.Background(), req) @@ -169,13 +168,13 @@ func (rpc *rpcChat) SendMsg(_ context.Context, pb *pbChat.SendMsgReq) (*pbChat.S } groupID := pb.MsgData.GroupID for _, v := range reply.MemberList { - pb.MsgData.RecvID = v.UserId - isSend := modifyMessageByUserMessageReceiveOpt(v.UserId, groupID, constant.GroupChatType, pb) + pb.MsgData.RecvID = v.UserID + isSend := modifyMessageByUserMessageReceiveOpt(v.UserID, groupID, constant.GroupChatType, pb) if isSend { msgToMQ.MsgData = pb.MsgData - err := rpc.sendMsgToKafka(&msgToMQ, v.UserId) + err := rpc.sendMsgToKafka(&msgToMQ, v.UserID) 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.UserID, msgToMQ.String()) return returnMsg(&replay, pb, 201, "kafka send msg err", "", 0) } } From 33ae9dae0a57c24b0c19b7d16d00382a44124a40 Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Thu, 23 Dec 2021 19:50:04 +0800 Subject: [PATCH 237/814] send msg file modify --- internal/push/jpush/push.go | 4 ++-- internal/push/logic/push_to_client.go | 4 ++++ 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/internal/push/jpush/push.go b/internal/push/jpush/push.go index 1258a80a7..f0843a3f0 100644 --- a/internal/push/jpush/push.go +++ b/internal/push/jpush/push.go @@ -13,14 +13,14 @@ import ( type JPushResp struct { } -func JGAccountListPush(accounts []string, content, detailContent, platform string) ([]byte, error) { +func JGAccountListPush(accounts []string, alert, detailContent, platform string) ([]byte, error) { var pf requestBody.Platform _ = pf.SetPlatform(platform) var au requestBody.Audience au.SetAlias(accounts) var no requestBody.Notification - no.SetAlert(content, platform) + no.SetAlert(alert, platform) var me requestBody.Message me.SetMsgContent(detailContent) var o requestBody.Options diff --git a/internal/push/logic/push_to_client.go b/internal/push/logic/push_to_client.go index e7cbf20e0..7d566a10a 100644 --- a/internal/push/logic/push_to_client.go +++ b/internal/push/logic/push_to_client.go @@ -93,6 +93,10 @@ func MsgToUser(pushMsg *pbPush.PushMsgReq) { default: content = constant.ContentType2PushContent[constant.Common] } + if pushMsg.MsgData.OfflinePushInfo != nil { + content = pushMsg.MsgData.OfflinePushInfo.Title + + } pushResult, err := push.JGAccountListPush(UIDList, content, jsonCustomContent, constant.PlatformIDToName(t)) if err != nil { log.NewError(pushMsg.OperationID, "offline push error", pushMsg.String(), err.Error(), constant.PlatformIDToName(t)) From e64bc40ca9932834aa33cf1eb199fa86e0fb8df5 Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Fri, 24 Dec 2021 15:02:47 +0800 Subject: [PATCH 238/814] notification --- internal/rpc/friend/firend.go | 23 +- internal/rpc/group/group.go | 106 ++- internal/rpc/msg/send_msg.go | 487 +++++++++++-- internal/rpc/user/get_user_info.go | 9 +- internal/rpc/user/update_user_info.go | 5 +- pkg/common/constant/constant.go | 48 +- pkg/common/db/mysql.go | 12 - .../mysql_model/im_mysql_model/group_model.go | 2 +- pkg/proto/group/group.pb.go | 304 ++++---- pkg/proto/sdk_ws/ws.pb.go | 686 ++++++++---------- pkg/proto/sdk_ws/ws.proto | 62 +- 11 files changed, 970 insertions(+), 774 deletions(-) diff --git a/internal/rpc/friend/firend.go b/internal/rpc/friend/firend.go index 52f422083..7acd4f37a 100644 --- a/internal/rpc/friend/firend.go +++ b/internal/rpc/friend/firend.go @@ -1,7 +1,7 @@ package friend import ( - "Open_IM/internal/rpc/chat" + chat "Open_IM/internal/rpc/msg" "Open_IM/pkg/common/config" "Open_IM/pkg/common/constant" imdb "Open_IM/pkg/common/db/mysql_model/im_mysql_model" @@ -124,7 +124,7 @@ func (s *friendServer) AddBlacklist(ctx context.Context, req *pbFriend.AddBlackl return &pbFriend.CommonResp{ErrCode: constant.ErrMysql.ErrCode, ErrMsg: constant.ErrMysql.ErrMsg}, nil } log.NewInfo(req.CommID.OperationID, "InsertInToUserBlackList ok ", req.CommID.FromUserID, req.CommID.ToUserID) - chat.BlackAddedNotification(req.CommID.OperationID, req.CommID.OpUserID, req.CommID.FromUserID, req.CommID.ToUserID) + chat.BlackAddedNotification(req) return &pbFriend.CommonResp{}, nil } @@ -148,7 +148,7 @@ func (s *friendServer) AddFriend(ctx context.Context, req *pbFriend.AddFriendReq return &pbFriend.CommonResp{ErrCode: constant.ErrAddFriend.ErrCode, ErrMsg: constant.ErrAddFriend.ErrMsg}, nil } - chat.FriendApplicationAddedNotification(req.CommID.OperationID, req.CommID.OpUserID, req.CommID.FromUserID, req.CommID.ToUserID, req.ReqMessage) + chat.FriendApplicationAddedNotification(req) return &pbFriend.CommonResp{}, nil } @@ -195,7 +195,10 @@ func (s *friendServer) ImportFriend(ctx context.Context, req *pbFriend.ImportFri c.ErrCode = 408 continue } - chat.FriendAddedNotification(req.OperationID, req.OpUserID, req.FromUserID, v) + for _, v := range req.FriendUserIDList { + chat.FriendAddedNotification(req.OperationID, req.OpUserID, req.FromUserID, v) + } + } } } @@ -204,10 +207,11 @@ func (s *friendServer) ImportFriend(ctx context.Context, req *pbFriend.ImportFri return &resp, nil } +//process Friend application func (s *friendServer) AddFriendResponse(ctx context.Context, req *pbFriend.AddFriendResponseReq) (*pbFriend.CommonResp, error) { log.NewInfo(req.CommID.OperationID, "AddFriendResponse args ", req.String()) - if !token_verify.CheckAccess(rreq.CommID.FromUserID, req.CommID.ToUserID) { + if !token_verify.CheckAccess(req.CommID.FromUserID, req.CommID.ToUserID) { log.NewError(req.CommID.OperationID, "CheckAccess failed ", req.CommID.FromUserID, req.CommID.ToUserID) return &pbFriend.CommonResp{ErrCode: constant.ErrAgreeToAddFriend.ErrCode, ErrMsg: constant.ErrAgreeToAddFriend.ErrMsg}, nil } @@ -253,7 +257,8 @@ func (s *friendServer) AddFriendResponse(ctx context.Context, req *pbFriend.AddF } } - chat.FriendApplicationProcessedNotification(req.CommID.OperationID, req.CommID.OpUserID, req.CommID.FromUserID, req.CommID.ToUserID, req.Flag) + chat.FriendApplicationProcessedNotification(req) + chat.FriendAddedNotification(req.CommID.OperationID, req.CommID.OpUserID, req.CommID.FromUserID, req.CommID.ToUserID) return &pbFriend.CommonResp{}, nil } @@ -271,7 +276,7 @@ func (s *friendServer) DeleteFriend(ctx context.Context, req *pbFriend.DeleteFri return &pbFriend.CommonResp{ErrCode: constant.ErrMysql.ErrCode, ErrMsg: constant.ErrMysql.ErrMsg}, nil } log.NewInfo(req.CommID.OperationID, "DeleteFriend rpc ok") - chat.FriendDeletedNotification(req.CommID.OperationID, req.CommID.OpUserID, req.CommID.FromUserID, req.CommID.ToUserID) + chat.FriendDeletedNotification(req) return &pbFriend.CommonResp{}, nil } @@ -322,7 +327,7 @@ func (s *friendServer) SetFriendComment(ctx context.Context, req *pbFriend.SetFr return &pbFriend.CommonResp{ErrCode: constant.ErrSetFriendComment.ErrCode, ErrMsg: constant.ErrSetFriendComment.ErrMsg}, nil } log.NewInfo(req.CommID.OperationID, "rpc SetFriendComment ok") - chat.FriendInfoChangedNotification(req.CommID.OperationID, req.CommID.OpUserID, req.CommID.FromUserID, req.CommID.ToUserID) + chat.FriendInfoChangedNotification(req) return &pbFriend.CommonResp{}, nil } @@ -339,7 +344,7 @@ func (s *friendServer) RemoveBlacklist(ctx context.Context, req *pbFriend.Remove return &pbFriend.CommonResp{ErrCode: constant.ErrMysql.ErrCode, ErrMsg: constant.ErrMysql.ErrMsg}, nil } log.NewInfo(req.CommID.OperationID, "rpc RemoveBlacklist ok") - chat.BlackDeletedNotification(req.CommID.OperationID, req.CommID.OpUserID, req.CommID.FromUserID, req.CommID.ToUserID) + chat.BlackDeletedNotification(req) return &pbFriend.CommonResp{}, nil } diff --git a/internal/rpc/group/group.go b/internal/rpc/group/group.go index 6ac49ac72..1b3956c37 100644 --- a/internal/rpc/group/group.go +++ b/internal/rpc/group/group.go @@ -11,11 +11,9 @@ import ( "Open_IM/pkg/common/token_verify" "Open_IM/pkg/grpc-etcdv3/getcdv3" pbGroup "Open_IM/pkg/proto/group" - "Open_IM/pkg/proto/sdk_ws" + open_im_sdk "Open_IM/pkg/proto/sdk_ws" "Open_IM/pkg/utils" "context" - "encoding/json" - "fmt" "google.golang.org/grpc" "net" "strconv" @@ -39,6 +37,7 @@ func NewGroupServer(port int) *groupServer { etcdAddr: config.Config.Etcd.EtcdAddr, } } + func (s *groupServer) Run() { log.Info("", "", "rpc group init....") @@ -78,6 +77,7 @@ func (s *groupServer) CreateGroup(ctx context.Context, req *pbGroup.CreateGroupR } //Time stamp + MD5 to generate group chat id groupId := utils.Md5(strconv.FormatInt(time.Now().UnixNano(), 10)) + //to group err := im_mysql_model.InsertIntoGroup(groupId, req.GroupName, req.Introduction, req.Notification, req.FaceUrl, req.Ext) if err != nil { log.NewError(req.OperationID, "InsertIntoGroup failed, ", err.Error(), groupId, req.GroupName, req.Introduction, req.Notification, req.FaceUrl, req.Ext) @@ -90,7 +90,7 @@ func (s *groupServer) CreateGroup(ctx context.Context, req *pbGroup.CreateGroupR return &pbGroup.CreateGroupResp{ErrCode: constant.ErrCreateGroup.ErrCode, ErrMsg: constant.ErrCreateGroup.ErrMsg}, nil } - //Add the group owner to the group first, otherwise the group creation will fail + //to group member err = im_mysql_model.InsertIntoGroupMember(groupId, us.UserID, us.Nickname, us.FaceUrl, constant.GroupOwner) if err != nil { log.NewError(req.OperationID, "InsertIntoGroupMember failed ", err.Error()) @@ -103,7 +103,7 @@ func (s *groupServer) CreateGroup(ctx context.Context, req *pbGroup.CreateGroupR // return &pbGroup.CreateGroupResp{ErrCode: constant.ErrCreateGroup.ErrCode, ErrMsg: constant.ErrCreateGroup.ErrMsg}, nil } - //Binding group id and member id + //to group member for _, user := range req.InitMemberList { us, err := im_mysql_model.FindUserByUID(user.UserID) if err != nil { @@ -123,8 +123,8 @@ func (s *groupServer) CreateGroup(ctx context.Context, req *pbGroup.CreateGroupR log.NewError(req.OperationID, "add mongo group member failed, db.DB.AddGroupMember failed ", err.Error()) } } - resp := &pbGroup.CreateGroupResp{} + resp := &pbGroup.CreateGroupResp{} group, err := im_mysql_model.FindGroupInfoByGroupId(groupId) if err != nil { log.NewError(req.OperationID, "FindGroupInfoByGroupId failed ", err.Error(), groupId) @@ -145,6 +145,7 @@ func (s *groupServer) GetJoinedGroupList(ctx context.Context, req *pbGroup.GetJo return &pbGroup.GetJoinedGroupListResp{ErrCode: constant.ErrParseToken.ErrCode, ErrMsg: constant.ErrParseToken.ErrMsg}, nil } + //group list joinedGroupList, err := imdb.GetJoinedGroupIdListByMemberId(req.FromUserID) if err != nil { log.NewError(req.OperationID, "GetJoinedGroupIdListByMemberId failed ", err.Error(), req.FromUserID) @@ -152,7 +153,6 @@ func (s *groupServer) GetJoinedGroupList(ctx context.Context, req *pbGroup.GetJo } var resp pbGroup.GetJoinedGroupListResp - for _, v := range joinedGroupList { var groupNode open_im_sdk.GroupInfo num := imdb.GetGroupMemberNumByGroupId(v.GroupID) @@ -160,6 +160,7 @@ func (s *groupServer) GetJoinedGroupList(ctx context.Context, req *pbGroup.GetJo group, err := imdb.FindGroupInfoByGroupId(v.GroupID) if num > 0 && owner != nil && err2 == nil && group != nil && err == nil { utils.CopyStructFields(&groupNode, group) + groupNode.CreateTime = group.CreateTime utils.CopyStructFields(groupNode.Owner, owner) groupNode.MemberCount = uint32(num) resp.GroupList = append(resp.GroupList, &groupNode) @@ -177,7 +178,7 @@ func (s *groupServer) GetJoinedGroupList(ctx context.Context, req *pbGroup.GetJo func (s *groupServer) InviteUserToGroup(ctx context.Context, req *pbGroup.InviteUserToGroupReq) (*pbGroup.InviteUserToGroupResp, error) { log.NewInfo(req.OperationID, "InviteUserToGroup args ", req.String()) - if !imdb.IsExistGroupMember(req.GroupID, req.OpUserID) && !utils.IsContain(req.OpUserID, config.Config.Manager.AppManagerUid) { + if !imdb.IsExistGroupMember(req.GroupID, req.OpUserID) && !token_verify.IsMangerUserID(req.OpUserID) { log.NewError(req.OperationID, "no permission InviteUserToGroup ", req.GroupID, req.OpUserID) return &pbGroup.InviteUserToGroupResp{ErrCode: constant.ErrAccess.ErrCode, ErrMsg: constant.ErrAccess.ErrMsg}, nil } @@ -191,6 +192,7 @@ func (s *groupServer) InviteUserToGroup(ctx context.Context, req *pbGroup.Invite //from User: invite: applicant //to user: invite: invited var resp pbGroup.InviteUserToGroupResp + var okUserIDList []string for _, v := range req.InvitedUserIDList { var resultNode pbGroup.Id2Result resultNode.UserID = v @@ -217,7 +219,7 @@ func (s *groupServer) InviteUserToGroup(ctx context.Context, req *pbGroup.Invite resp.Id2ResultList = append(resp.Id2ResultList, &resultNode) continue } - chat.MemberInvitedNotification(req.OperationID, req.GroupID, req.OpUserID, v) + okUserIDList = append(okUserIDList, v) err = db.DB.AddGroupMember(req.GroupID, toUserInfo.UserID) if err != nil { log.NewError(req.OperationID, "AddGroupMember failed ", err.Error(), req.GroupID, toUserInfo.UserID) @@ -225,8 +227,9 @@ func (s *groupServer) InviteUserToGroup(ctx context.Context, req *pbGroup.Invite resp.Id2ResultList = append(resp.Id2ResultList, &resultNode) } + chat.MemberInvitedNotification(req.OperationID, req.GroupID, req.OpUserID, req.Reason, okUserIDList) resp.ErrCode = 0 - log.NewInfo(req.OperationID, "InviteUserToGroup rpc return ", resp) + log.NewInfo(req.OperationID, "InviteUserToGroup rpc return ", resp.String()) return &resp, nil } @@ -308,6 +311,7 @@ func (s *groupServer) KickGroupMember(ctx context.Context, req *pbGroup.KickGrou } } + //op is app manager if flag != 1 { if token_verify.IsMangerUserID(req.OpUserID) { flag = 1 @@ -332,6 +336,7 @@ func (s *groupServer) KickGroupMember(ctx context.Context, req *pbGroup.KickGrou } } + var okUserIDList []string //remove var resp pbGroup.KickGroupMemberResp for _, v := range req.KickedUserIDList { @@ -347,19 +352,17 @@ func (s *groupServer) KickGroupMember(ctx context.Context, req *pbGroup.KickGrou resp.Id2ResultList = append(resp.Id2ResultList, &pbGroup.Id2Result{UserID: v, Result: -1}) } else { resp.Id2ResultList = append(resp.Id2ResultList, &pbGroup.Id2Result{UserID: v, Result: 0}) + okUserIDList = append(okUserIDList, v) } + err = db.DB.DelGroupMember(req.GroupID, v) if err != nil { - log.NewError(req.OperationID, "DelGroupMember failed ", err.Error(), req.GroupID, v.UserId) + log.NewError(req.OperationID, "DelGroupMember failed ", err.Error(), req.GroupID, v) } } - - for _, v := range req.KickedUserIDList { - chat.MemberKickedNotification(req.OperationID, req.GroupID, req.OpUserID, v, req.Reason) - } - + chat.MemberKickedNotification(req, okUserIDList) resp.ErrCode = 0 - log.NewInfo(req.OperationID, "GetGroupMemberList rpc return ", resp) + log.NewInfo(req.OperationID, "GetGroupMemberList rpc return ", resp.String()) return &resp, nil } @@ -377,11 +380,12 @@ func (s *groupServer) GetGroupMembersInfo(ctx context.Context, req *pbGroup.GetG continue } else { utils.CopyStructFields(&memberNode, memberInfo) + memberNode.JoinTime = memberInfo.JoinTime resp.MemberList = append(resp.MemberList, &memberNode) } } resp.ErrCode = 0 - log.NewInfo(req.OperationID, "GetGroupMembersInfo rpc return ", resp) + log.NewInfo(req.OperationID, "GetGroupMembersInfo rpc return ", resp.String()) return &resp, nil } @@ -407,6 +411,7 @@ func (s *groupServer) GetGroupsInfo(ctx context.Context, req *pbGroup.GetGroupsI } var groupInfo open_im_sdk.GroupInfo utils.CopyStructFields(&groupInfo, groupInfoFromMysql) + groupInfo.CreateTime = groupInfoFromMysql.CreateTime groupsInfoList = append(groupsInfoList, &groupInfo) } @@ -437,24 +442,24 @@ func (s *groupServer) GroupApplicationResponse(_ context.Context, req *pbGroup.G } } if req.ToUserID == "0" { - group, err := imdb.FindGroupInfoByGroupId(req.GroupID) - if err != nil { - log.NewError(req.OperationID, "FindGroupInfoByGroupId failed ", req.GroupID) - return reply, nil - } - member, err := imdb.FindGroupMemberInfoByGroupIdAndUserId(req.GroupID, req.OpUserID) - if err != nil { - log.NewError(req.OperationID, "FindGroupMemberInfoByGroupIdAndUserId failed ", req.GroupID, req.OpUserID) - return reply, nil - } - chat.ApplicationProcessedNotification(req.OperationID, req.FromUserID, *group, *member, req.HandleResult, req.HandledMsg) + //group, err := imdb.FindGroupInfoByGroupId(req.GroupID) + //if err != nil { + // log.NewError(req.OperationID, "FindGroupInfoByGroupId failed ", req.GroupID) + // return reply, nil + //} + //member, err := imdb.FindGroupMemberInfoByGroupIdAndUserId(req.GroupID, req.OpUserID) + //if err != nil { + // log.NewError(req.OperationID, "FindGroupMemberInfoByGroupIdAndUserId failed ", req.GroupID, req.OpUserID) + // return reply, nil + //} + chat.ApplicationProcessedNotification(req) if req.HandleResult == 1 { - entrantUser, err := imdb.FindGroupMemberInfoByGroupIdAndUserId(req.GroupID, req.FromUserID) - if err != nil { - log.NewError(req.OperationID, "FindGroupMemberInfoByGroupIdAndUserId failed ", err.Error(), req.GroupID, req.FromUserID) - return reply, nil - } - chat.MemberEnterNotification(req.OperationID, req.GroupID, entrantUser) + // entrantUser, err := imdb.FindGroupMemberInfoByGroupIdAndUserId(req.GroupID, req.FromUserID) + // if err != nil { + // log.NewError(req.OperationID, "FindGroupMemberInfoByGroupIdAndUserId failed ", err.Error(), req.GroupID, req.FromUserID) + // return reply, nil + // } + chat.MemberEnterNotification(req) } } else { log.NewError(req.OperationID, "args failed ", req.String()) @@ -466,25 +471,20 @@ func (s *groupServer) GroupApplicationResponse(_ context.Context, req *pbGroup.G func (s *groupServer) JoinGroup(ctx context.Context, req *pbGroup.JoinGroupReq) (*pbGroup.CommonResp, error) { log.NewInfo(req.OperationID, "JoinGroup args ", req.String()) - //Parse token, to find current user information - //claims, err := token_verify.ParseToken(req.Token) - //if err != nil { - // log.NewError(req.OperationID, "ParseToken failed", err.Error(), req.String()) - // return &pbGroup.CommonResp{ErrCode: constant.ErrParseToken.ErrCode, ErrMsg: constant.ErrParseToken.ErrMsg}, nil - //} - applicationUserInfo, err := im_mysql_model.FindUserByUID(req.FromUserID) + + applicationUserInfo, err := im_mysql_model.FindUserByUID(req.OpUserID) if err != nil { - log.NewError(req.OperationID, "FindUserByUID failed ", err.Error(), req.FromUserID) + log.NewError(req.OperationID, "FindUserByUID failed ", err.Error(), req.OpUserID) return &pbGroup.CommonResp{ErrCode: constant.ErrSearchUserInfo.ErrCode, ErrMsg: constant.ErrSearchUserInfo.ErrMsg}, nil } - _, err = im_mysql_model.FindGroupRequestUserInfoByGroupIDAndUid(req.GroupID, req.FromUserID) + _, err = im_mysql_model.FindGroupRequestUserInfoByGroupIDAndUid(req.GroupID, req.OpUserID) if err == nil { - err = im_mysql_model.DelGroupRequest(req.GroupID, req.FromUserID, "0") + err = im_mysql_model.DelGroupRequest(req.GroupID, req.OpUserID, "0") } - if err = im_mysql_model.InsertIntoGroupRequest(req.GroupID, req.FromUserID, "0", req.ReqMessage, applicationUserInfo.Nickname, applicationUserInfo.FaceUrl); err != nil { - log.NewError(req.OperationID, "InsertIntoGroupRequest ", err.Error(), req.GroupID, req.FromUserID, "0", req.ReqMessage, applicationUserInfo.Nickname, applicationUserInfo.FaceUrl) + if err = im_mysql_model.InsertIntoGroupRequest(req.GroupID, req.OpUserID, "0", req.ReqMessage, applicationUserInfo.Nickname, applicationUserInfo.FaceUrl); err != nil { + log.NewError(req.OperationID, "InsertIntoGroupRequest ", err.Error(), req.GroupID, req.OpUserID, "0", req.ReqMessage, applicationUserInfo.Nickname, applicationUserInfo.FaceUrl) return &pbGroup.CommonResp{ErrCode: constant.ErrJoinGroupApplication.ErrCode, ErrMsg: constant.ErrJoinGroupApplication.ErrMsg}, nil } @@ -493,12 +493,8 @@ func (s *groupServer) JoinGroup(ctx context.Context, req *pbGroup.JoinGroupReq) log.NewError(req.OperationID, "FindGroupMemberListByGroupIdAndFilterInfo failed ", req.GroupID, constant.GroupOwner, err) return &pbGroup.CommonResp{ErrCode: 0, ErrMsg: ""}, nil } - group, err := im_mysql_model.FindGroupInfoByGroupId(req.GroupID) - if err != nil { - log.NewError(req.OperationID, "FindGroupInfoByGroupId failed ", req.GroupID) - return &pbGroup.CommonResp{ErrCode: 0, ErrMsg: ""}, nil - } - chat.ReceiveJoinApplicationNotification(req.OperationID, memberList[0].UserID, applicationUserInfo, group) + + chat.ReceiveJoinApplicationNotification(req) log.NewInfo(req.OperationID, "ReceiveJoinApplicationNotification rpc JoinGroup success return") return &pbGroup.CommonResp{ErrCode: 0, ErrMsg: ""}, nil @@ -525,7 +521,7 @@ func (s *groupServer) QuitGroup(ctx context.Context, req *pbGroup.QuitGroupReq) // return &pbGroup.CommonResp{ErrorCode: constant.ErrQuitGroup.ErrCode, ErrorMsg: constant.ErrQuitGroup.ErrMsg}, nil } - chat.MemberLeaveNotification(req.OperationID, req.GroupID, req.OpUserID) + chat.MemberLeaveNotification(req) log.NewInfo(req.OperationID, "rpc quit group is success return") return &pbGroup.CommonResp{}, nil } @@ -578,7 +574,7 @@ func (s *groupServer) SetGroupInfo(ctx context.Context, req *pbGroup.SetGroupInf } if changedType != 0 { - chat.GroupInfoChangedNotification(req.OperationID, changedType, req.GroupInfo.GroupID, req.OpUserID) + chat.GroupInfoChangedNotification(req) } return &pbGroup.CommonResp{}, nil diff --git a/internal/rpc/msg/send_msg.go b/internal/rpc/msg/send_msg.go index 26e49bfa8..f6162f278 100644 --- a/internal/rpc/msg/send_msg.go +++ b/internal/rpc/msg/send_msg.go @@ -10,6 +10,7 @@ import ( "Open_IM/pkg/common/token_verify" "Open_IM/pkg/grpc-etcdv3/getcdv3" pbChat "Open_IM/pkg/proto/chat" + pbFriend "Open_IM/pkg/proto/friend" pbGroup "Open_IM/pkg/proto/group" open_im_sdk "Open_IM/pkg/proto/sdk_ws" sdk_ws "Open_IM/pkg/proto/sdk_ws" @@ -308,51 +309,82 @@ func Notification(n *NotificationMsg, onlineUserOnly bool) { // repeated GroupMemberFullInfo MemberList = 3; // uint64 OperationTime = 4; //} creator->group -func GroupCreatedNotification(req *pbGroup.CreateGroupReq, groupID string) { - var n NotificationMsg - n.SendID = req.OpUserID - n.RecvID = groupID - n.ContentType = constant.CreateGroupTip - n.SessionType = constant.GroupChatType - n.MsgFrom = constant.SysMsgType - n.OperationID = req.OperationID - var groupCreated open_im_sdk.GroupCreatedTips - groupCreated.Group = &open_im_sdk.GroupInfo{} - - if token_verify.IsMangerUserID(req.OpUserID) { - u, err := imdb.FindUserByUID(req.OpUserID) - if err != nil || u == nil { +func setOpUserInfo(operationID, opUserID, groupID string, groupMemberInfo *open_im_sdk.GroupMemberFullInfo) { + if token_verify.IsMangerUserID(opUserID) { + u, err := imdb.FindUserByUID(opUserID) + if err != nil { + log.NewError(operationID, "FindUserByUID failed ", err.Error(), opUserID) return } - utils.CopyStructFields(groupCreated.Creator, u) - groupCreated.Creator.AppMangerLevel = 1 + utils.CopyStructFields(groupMemberInfo, u) + groupMemberInfo.AppMangerLevel = 1 } else { - u, err := imdb.FindGroupMemberInfoByGroupIdAndUserId(groupID, req.OpUserID) - if err != nil || u == nil { + u, err := imdb.FindGroupMemberInfoByGroupIdAndUserId(groupID, opUserID) + if err != nil { + log.NewError(operationID, "FindGroupMemberInfoByGroupIdAndUserId failed ", err.Error(), groupID, opUserID) return } - utils.CopyStructFields(groupCreated.Creator, u) + utils.CopyStructFields(groupMemberInfo, u) } +} +func setGroupInfo(operationID, groupID string, groupInfo *open_im_sdk.GroupInfo, ownerUserID string) { group, err := imdb.FindGroupInfoByGroupId(groupID) - if err != nil || group == nil { + if err != nil { + log.NewError(operationID, "FindGroupInfoByGroupId failed ", err.Error(), groupID) + return + } + utils.CopyStructFields(groupInfo, group) + + if ownerUserID != "" { + groupInfo.Owner = &open_im_sdk.PublicUserInfo{} + setGroupPublicUserInfo(operationID, groupID, ownerUserID, groupInfo.Owner) + } +} + +func setGroupMemberInfo(operationID, groupID, userID string, groupMemberInfo *open_im_sdk.GroupMemberFullInfo) { + group, err := imdb.FindGroupMemberInfoByGroupIdAndUserId(groupID, userID) + if err != nil { + log.NewError(operationID, "FindGroupMemberInfoByGroupIdAndUserId failed ", err.Error(), groupID, userID) return } - utils.CopyStructFields(groupCreated.Group, group) - groupCreated.Creator = &open_im_sdk.GroupMemberFullInfo{} + utils.CopyStructFields(groupMemberInfo, group) +} + +func setGroupPublicUserInfo(operationID, groupID, userID string, publicUserInfo *open_im_sdk.PublicUserInfo) { + group, err := imdb.FindGroupMemberInfoByGroupIdAndUserId(groupID, userID) + if err != nil { + log.NewError(operationID, "FindGroupMemberInfoByGroupIdAndUserId failed ", err.Error(), groupID, userID) + return + } + utils.CopyStructFields(publicUserInfo, group) +} - for _, v := range req.InitMemberList { +//创建群后调用 +func GroupCreatedNotification(operationID, opUserID, OwnerUserID, groupID string, initMemberList []string) { + var n NotificationMsg + n.SendID = opUserID + n.RecvID = groupID + n.ContentType = constant.GroupCreatedNotification + n.SessionType = constant.GroupChatType + n.MsgFrom = constant.SysMsgType + n.OperationID = operationID + + GroupCreatedTips := open_im_sdk.GroupCreatedTips{Group: &open_im_sdk.GroupInfo{}, + Creator: &open_im_sdk.GroupMemberFullInfo{}} + setOpUserInfo(operationID, GroupCreatedTips.Creator.UserID, groupID, GroupCreatedTips.Creator) + + setGroupInfo(operationID, groupID, GroupCreatedTips.Group, OwnerUserID) + + for _, v := range initMemberList { var groupMemberInfo open_im_sdk.GroupMemberFullInfo - member, err := imdb.GetMemberInfoById(groupID, v.UserID) - if err != nil { - utils.CopyStructFields(&groupMemberInfo, member) - } - groupCreated.MemberList = append(groupCreated.MemberList, &groupMemberInfo) + setGroupMemberInfo(operationID, groupID, v, &groupMemberInfo) + GroupCreatedTips.MemberList = append(GroupCreatedTips.MemberList, &groupMemberInfo) } var tips open_im_sdk.TipsComm - tips.Detail, _ = json.Marshal(groupCreated) + tips.Detail, _ = json.Marshal(GroupCreatedTips) tips.DefaultTips = config.Config.Notification.GroupCreated.DefaultTips.Tips n.Content, _ = json.Marshal(tips) Notification(&n, false) @@ -362,27 +394,44 @@ func GroupCreatedNotification(req *pbGroup.CreateGroupReq, groupID string) { // GroupInfo Group = 1; // PublicUserInfo Applicant = 2; // string Reason = 3; -//} -func ReceiveJoinApplicationNotification(operationID, RecvID string, applicant *immysql.User, group *immysql.Group) { +//} apply->all managers GroupID string `protobuf:"bytes,1,opt,name=GroupID" json:"GroupID,omitempty"` +// ReqMessage string `protobuf:"bytes,2,opt,name=ReqMessage" json:"ReqMessage,omitempty"` +// OpUserID string `protobuf:"bytes,3,opt,name=OpUserID" json:"OpUserID,omitempty"` +// OperationID string `protobuf:"bytes,4,opt,name=OperationID" json:"OperationID,omitempty"` +//申请进群后调用 +func JoinApplicationNotification(req *pbGroup.JoinGroupReq) { + managerList, err := imdb.GetOwnerManagerByGroupId(req.GroupID) + if err != nil { + log.NewError(req.OperationID, "GetOwnerManagerByGroupId failed ", err.Error(), req.GroupID) + return + } + var n NotificationMsg - n.SendID = applicant.UserID - n.RecvID = RecvID - n.ContentType = constant.ApplyJoinGroupTip + n.SendID = req.OpUserID + n.ContentType = constant.JoinApplicationNotification n.SessionType = constant.SingleChatType n.MsgFrom = constant.SysMsgType - n.OperationID = operationID + n.OperationID = req.OperationID - var joniGroup open_im_sdk.ReceiveJoinApplicationTips - joniGroup.Group = &open_im_sdk.GroupInfo{} - utils.CopyStructFields(joniGroup.Group, group) - joniGroup.Applicant = &open_im_sdk.PublicUserInfo{} - utils.CopyStructFields(joniGroup.Applicant, applicant) + JoinGroupApplicationTips := open_im_sdk.JoinGroupApplicationTips{Group: &open_im_sdk.GroupInfo{}, Applicant: &open_im_sdk.PublicUserInfo{}} + setGroupInfo(req.OperationID, req.GroupID, JoinGroupApplicationTips.Group, "") + + apply, err := imdb.FindUserByUID(req.OpUserID) + if err != nil { + log.NewError(req.OperationID, "FindUserByUID failed ", err.Error(), req.OpUserID) + return + } + utils.CopyStructFields(JoinGroupApplicationTips.Applicant, apply) + JoinGroupApplicationTips.Reason = req.ReqMessage var tips open_im_sdk.TipsComm - tips.Detail, _ = json.Marshal(joniGroup) - tips.DefaultTips = config.Config.Notification.ApplyJoinGroup.DefaultTips.Tips + tips.Detail, _ = json.Marshal(JoinGroupApplicationTips) + tips.DefaultTips = "JoinGroupApplicationTips" n.Content, _ = json.Marshal(tips) - Notification(&n, false) + for _, v := range managerList { + n.RecvID = v.UserID + Notification(&n, true) + } } //message ApplicationProcessedTips{ @@ -391,8 +440,28 @@ func ReceiveJoinApplicationNotification(operationID, RecvID string, applicant *i // int32 Result = 3; // string Reason = 4; //} -func ApplicationProcessedNotification(operationID, RecvID string, group immysql.Group, opUser immysql.GroupMember, result int32, Reason string) { +//处理进群请求后调用 +func ApplicationProcessedNotification(req *pbGroup.GroupApplicationResponseReq) { + var n NotificationMsg + n.SendID = req.OpUserID + n.ContentType = constant.ApplicationProcessedNotification + n.SessionType = constant.SingleChatType + n.MsgFrom = constant.SysMsgType + n.OperationID = req.OperationID + n.RecvID = req.ToUserID + ApplicationProcessedTips := open_im_sdk.ApplicationProcessedTips{Group: &open_im_sdk.GroupInfo{}, OpUser: &open_im_sdk.GroupMemberFullInfo{}} + setGroupInfo(req.OperationID, req.GroupID, ApplicationProcessedTips.Group, "") + setOpUserInfo(req.OperationID, req.OpUserID, req.GroupID, ApplicationProcessedTips.OpUser) + ApplicationProcessedTips.Reason = req.HandledMsg + ApplicationProcessedTips.Result = req.HandleResult + + var tips open_im_sdk.TipsComm + tips.Detail, _ = json.Marshal(ApplicationProcessedTips) + tips.DefaultTips = "ApplicationProcessedNotification" + n.Content, _ = json.Marshal(tips) + + Notification(&n, true) } //message MemberInvitedTips{ @@ -401,8 +470,29 @@ func ApplicationProcessedNotification(operationID, RecvID string, group immysql. // GroupMemberFullInfo InvitedUser = 3; // uint64 OperationTime = 4; //} -func MemberInvitedNotification(operationID string, group immysql.Group, opUser immysql.User, invitedUser immysql.GroupMember) { +//被邀请进群后调用 +func MemberInvitedNotification(operationID, groupID, opUserID, reason string, invitedUserIDList []string) { + var n NotificationMsg + n.SendID = opUserID + n.ContentType = constant.MemberInvitedNotification + n.SessionType = constant.GroupChatType + n.MsgFrom = constant.SysMsgType + n.OperationID = operationID + ApplicationProcessedTips := open_im_sdk.MemberInvitedTips{Group: &open_im_sdk.GroupInfo{}, OpUser: &open_im_sdk.GroupMemberFullInfo{}} + setGroupInfo(operationID, groupID, ApplicationProcessedTips.Group, "") + setOpUserInfo(operationID, opUserID, groupID, ApplicationProcessedTips.OpUser) + for _, v := range invitedUserIDList { + var groupMemberInfo open_im_sdk.GroupMemberFullInfo + setGroupMemberInfo(operationID, groupID, v, &groupMemberInfo) + ApplicationProcessedTips.InvitedUserList = append(ApplicationProcessedTips.InvitedUserList, &groupMemberInfo) + } + var tips open_im_sdk.TipsComm + tips.Detail, _ = json.Marshal(ApplicationProcessedTips) + tips.DefaultTips = "MemberInvitedNotification" + n.Content, _ = json.Marshal(tips) + n.RecvID = groupID + Notification(&n, true) } //message MemberKickedTips{ @@ -411,12 +501,35 @@ func MemberInvitedNotification(operationID string, group immysql.Group, opUser i // GroupMemberFullInfo KickedUser = 3; // uint64 OperationTime = 4; //} +//被踢后调用 +func MemberKickedNotification(req *pbGroup.KickGroupMemberReq, kickedUserIDList []string) { + var n NotificationMsg + n.SendID = req.OpUserID + n.ContentType = constant.MemberKickedNotification + n.SessionType = constant.GroupChatType + n.MsgFrom = constant.SysMsgType + n.OperationID = req.OperationID -func MemberKickedNotificationID(operationID, GroupID, opUserID, kickedUserID, reason string) { - -} -func MemberKickedNotification(operationID string, group immysql.Group, opUser immysql.GroupMember, KickedUser immysql.GroupMember) { + MemberKickedTips := open_im_sdk.MemberKickedTips{Group: &open_im_sdk.GroupInfo{}, OpUser: &open_im_sdk.GroupMemberFullInfo{}} + setGroupInfo(req.OperationID, req.GroupID, MemberKickedTips.Group, "") + setOpUserInfo(req.OperationID, req.OpUserID, req.GroupID, MemberKickedTips.OpUser) + for _, v := range kickedUserIDList { + var groupMemberInfo open_im_sdk.GroupMemberFullInfo + setGroupMemberInfo(req.OperationID, req.GroupID, v, &groupMemberInfo) + MemberKickedTips.KickedUserList = append(MemberKickedTips.KickedUserList, &groupMemberInfo) + } + var tips open_im_sdk.TipsComm + tips.Detail, _ = json.Marshal(MemberKickedTips) + tips.DefaultTips = "MemberKickedNotification" + n.Content, _ = json.Marshal(tips) + n.RecvID = req.GroupID + Notification(&n, true) + for _, v := range kickedUserIDList { + n.SessionType = constant.SingleChatType + n.RecvID = v + Notification(&n, true) + } } //message GroupInfoChangedTips{ @@ -424,8 +537,26 @@ func MemberKickedNotification(operationID string, group immysql.Group, opUser im // GroupInfo Group = 2; // GroupMemberFullInfo OpUser = 3; //} -func GroupInfoChangedNotification(operationID string, changedType int32, groupID string, opUserID string) { +//群信息改变后掉用 +func GroupInfoChangedNotification(req *pbGroup.SetGroupInfoReq) { + var n NotificationMsg + n.SendID = req.OpUserID + n.ContentType = constant.GroupInfoChangedNotification + n.SessionType = constant.GroupChatType + n.MsgFrom = constant.SysMsgType + n.OperationID = req.OperationID + + GroupInfoChangedTips := open_im_sdk.GroupInfoChangedTips{Group: &open_im_sdk.GroupInfo{}, OpUser: &open_im_sdk.GroupMemberFullInfo{}} + setGroupInfo(req.OperationID, req.GroupInfo.GroupID, GroupInfoChangedTips.Group, "") + setOpUserInfo(req.OperationID, req.OpUserID, req.GroupInfo.GroupID, GroupInfoChangedTips.OpUser) + + var tips open_im_sdk.TipsComm + tips.Detail, _ = json.Marshal(GroupInfoChangedTips) + tips.DefaultTips = "GroupInfoChangedNotification" + n.Content, _ = json.Marshal(tips) + n.RecvID = req.GroupInfo.GroupID + Notification(&n, true) } /* @@ -458,8 +589,30 @@ func GroupInfoChangedNotification(operationID string, changedType int32, group * // GroupMemberFullInfo LeaverUser = 2; // uint64 OperationTime = 3; //} -func MemberLeaveNotification(operationID, groupID, leaverUserID string) { +//群成员退群后调用 +func MemberLeaveNotification(req *pbGroup.QuitGroupReq) { + var n NotificationMsg + n.SendID = req.OpUserID + n.ContentType = constant.MemberLeaveNotification + n.SessionType = constant.GroupChatType + n.MsgFrom = constant.SysMsgType + n.OperationID = req.OperationID + + MemberLeaveTips := open_im_sdk.MemberLeaveTips{Group: &open_im_sdk.GroupInfo{}, LeaverUser: &open_im_sdk.GroupMemberFullInfo{}} + setGroupInfo(req.OperationID, req.GroupID, MemberLeaveTips.Group, "") + setOpUserInfo(req.OperationID, req.OpUserID, req.GroupID, MemberLeaveTips.LeaverUser) + + var tips open_im_sdk.TipsComm + tips.Detail, _ = json.Marshal(MemberLeaveTips) + tips.DefaultTips = "MemberLeaveNotification" + n.Content, _ = json.Marshal(tips) + n.RecvID = req.GroupID + Notification(&n, true) + + n.SessionType = constant.SingleChatType + n.RecvID = req.OpUserID + Notification(&n, true) } //message MemberEnterTips{ @@ -467,7 +620,25 @@ func MemberLeaveNotification(operationID, groupID, leaverUserID string) { // GroupMemberFullInfo EntrantUser = 2; // uint64 OperationTime = 3; //} -func MemberEnterNotification(operationID string, group *immysql.Group, entrantUser *immysql.GroupMember) { +//群成员主动申请进群,管理员同意后调用, +func MemberEnterNotification(req *pbGroup.GroupApplicationResponseReq) { + var n NotificationMsg + n.SendID = req.OpUserID + n.ContentType = constant.MemberEnterNotification + n.SessionType = constant.GroupChatType + n.MsgFrom = constant.SysMsgType + n.OperationID = req.OperationID + + MemberLeaveTips := open_im_sdk.MemberEnterTips{Group: &open_im_sdk.GroupInfo{}, EntrantUser: &open_im_sdk.GroupMemberFullInfo{}} + setGroupInfo(req.OperationID, req.GroupID, MemberLeaveTips.Group, "") + setOpUserInfo(req.OperationID, req.OpUserID, req.GroupID, MemberLeaveTips.EntrantUser) + + var tips open_im_sdk.TipsComm + tips.Detail, _ = json.Marshal(MemberLeaveTips) + tips.DefaultTips = "MemberEnterNotification" + n.Content, _ = json.Marshal(tips) + n.RecvID = req.GroupID + Notification(&n, true) } @@ -478,47 +649,143 @@ func MemberEnterNotification(operationID string, group *immysql.Group, entrantUs // uint64 MuteTime = 4; // GroupInfo Group = 5; //} -func MemberInfoChangedNotification(operationID string, group *immysql.Group, opUser *immysql.GroupMember, userFinalInfo *immysql.GroupMember) { +//func MemberInfoChangedNotification(operationID string, group *immysql.Group, opUser *immysql.GroupMember, userFinalInfo *immysql.GroupMember) { -} +//} //message FriendApplicationAddedTips{ // PublicUserInfo OpUser = 1; //user1 // FriendApplication Application = 2; // PublicUserInfo OpedUser = 3; //user2 //} -func FriendApplicationAddedNotification(operationID string, opUser *immysql.User, opedUser *immysql.User, application *immysql.FriendRequest) { +func getFromToUserNickname(operationID, fromUserID, toUserID string) (string, string) { + from, err1 := imdb.FindUserByUID(fromUserID) + to, err2 := imdb.FindUserByUID(toUserID) + if err1 != nil || err2 != nil { + log.NewError("FindUserByUID failed ", err1, err2, fromUserID, toUserID) + } + fromNickname, toNickname := "", "" + if from != nil { + fromNickname = from.Nickname + } + if to != nil { + toNickname = to.Nickname + } + return fromNickname, toNickname } -//message FriendApplicationProcessedTips{ -// PublicUserInfo OpUser = 1; //user2 -// PublicUserInfo OpedUser = 2; //user1 -// int32 result = 3; //1: accept; -1: reject -//} -func FriendApplicationProcessedNotification(operationID string, opUser *immysql.User, OpedUser *immysql.User, result int32) { +func FriendApplicationAddedNotification(req *pbFriend.AddFriendReq) { + var n NotificationMsg + n.SendID = req.CommID.FromUserID + n.RecvID = req.CommID.ToUserID + n.ContentType = constant.FriendApplicationAddedNotification + n.SessionType = constant.SingleChatType + n.MsgFrom = constant.SysMsgType + n.OperationID = req.CommID.OperationID + var FriendApplicationAddedTips open_im_sdk.FriendApplicationAddedTips + FriendApplicationAddedTips.FromToUserID.FromUserID = req.CommID.FromUserID + FriendApplicationAddedTips.FromToUserID.ToUserID = req.CommID.ToUserID + fromUserNickname, toUserNickname := getFromToUserNickname(req.CommID.OperationID, req.CommID.FromUserID, req.CommID.ToUserID) + var tips open_im_sdk.TipsComm + tips.Detail, _ = json.Marshal(FriendApplicationAddedTips) + tips.DefaultTips = fromUserNickname + " FriendApplicationAddedNotification " + toUserNickname + n.Content, _ = json.Marshal(tips) + Notification(&n, true) } -//message FriendAddedTips{ -// FriendInfo Friend = 1; -//} -//message FriendInfo{ -// UserInfo OwnerUser = 1; -// string Remark = 2; -// uint64 CreateTime = 3; -// UserInfo FriendUser = 4; -//} +func FriendApplicationProcessedNotification(req *pbFriend.AddFriendResponseReq) { + var n NotificationMsg + n.SendID = req.CommID.FromUserID + n.RecvID = req.CommID.ToUserID + n.ContentType = constant.FriendApplicationProcessedNotification + n.SessionType = constant.SingleChatType + n.MsgFrom = constant.SysMsgType + n.OperationID = req.CommID.OperationID -func FriendAddedNotification(operationID string, opUser *immysql.User, friendUser *immysql.Friend) { + var FriendApplicationProcessedTips open_im_sdk.FriendApplicationProcessedTips + FriendApplicationProcessedTips.FromToUserID.FromUserID = req.CommID.FromUserID + FriendApplicationProcessedTips.FromToUserID.ToUserID = req.CommID.ToUserID + fromUserNickname, toUserNickname := getFromToUserNickname(req.CommID.OperationID, req.CommID.FromUserID, req.CommID.ToUserID) + var tips open_im_sdk.TipsComm + tips.Detail, _ = json.Marshal(FriendApplicationProcessedTips) + tips.DefaultTips = fromUserNickname + " FriendApplicationProcessedNotification " + toUserNickname + n.Content, _ = json.Marshal(tips) + Notification(&n, true) +} + +func FriendAddedNotification(operationID, opUserID, fromUserID, toUserID string) { + var n NotificationMsg + n.SendID = fromUserID + n.RecvID = toUserID + n.ContentType = constant.FriendAddedNotification + n.SessionType = constant.SingleChatType + n.MsgFrom = constant.SysMsgType + n.OperationID = operationID + + var FriendAddedTips open_im_sdk.FriendAddedTips + + user, err := imdb.FindUserByUID(opUserID) + if err != nil { + log.NewError(operationID, "FindUserByUID failed ", err.Error(), opUserID) + + } else { + utils.CopyStructFields(FriendAddedTips.OpUser, user) + } + friend, err := imdb.FindFriendRelationshipFromFriend(fromUserID, toUserID) + if err != nil { + log.NewError(operationID, "FindUserByUID failed ", err.Error(), fromUserID, toUserID) + } else { + FriendAddedTips.Friend.Remark = friend.Remark + } + + from, err := imdb.FindUserByUID(fromUserID) + if err != nil { + log.NewError(operationID, "FindUserByUID failed ", err.Error(), fromUserID) + + } else { + utils.CopyStructFields(FriendAddedTips.Friend.OwnerUser, from) + } + + to, err := imdb.FindUserByUID(toUserID) + if err != nil { + log.NewError(operationID, "FindUserByUID failed ", err.Error(), toUserID) + + } else { + utils.CopyStructFields(FriendAddedTips.Friend.FriendUser, to) + } + + fromUserNickname, toUserNickname := FriendAddedTips.Friend.OwnerUser.Nickname, FriendAddedTips.Friend.FriendUser.Nickname + var tips open_im_sdk.TipsComm + tips.Detail, _ = json.Marshal(FriendAddedTips) + tips.DefaultTips = fromUserNickname + " FriendAddedNotification " + toUserNickname + n.Content, _ = json.Marshal(tips) + Notification(&n, true) } //message FriendDeletedTips{ // FriendInfo Friend = 1; //} -func FriendDeletedNotification(operationID string, opUser *immysql.User, friendUser *immysql.Friend) { +func FriendDeletedNotification(req *pbFriend.DeleteFriendReq) { + var n NotificationMsg + n.SendID = req.CommID.FromUserID + n.RecvID = req.CommID.ToUserID + n.ContentType = constant.FriendDeletedNotification + n.SessionType = constant.SingleChatType + n.MsgFrom = constant.SysMsgType + n.OperationID = req.CommID.OperationID + var FriendDeletedTips open_im_sdk.FriendDeletedTips + FriendDeletedTips.FromToUserID.FromUserID = req.CommID.FromUserID + FriendDeletedTips.FromToUserID.ToUserID = req.CommID.ToUserID + fromUserNickname, toUserNickname := getFromToUserNickname(req.CommID.OperationID, req.CommID.FromUserID, req.CommID.ToUserID) + var tips open_im_sdk.TipsComm + tips.Detail, _ = json.Marshal(FriendDeletedTips) + tips.DefaultTips = fromUserNickname + " FriendDeletedNotification " + toUserNickname + n.Content, _ = json.Marshal(tips) + Notification(&n, true) } //message FriendInfoChangedTips{ @@ -526,8 +793,24 @@ func FriendDeletedNotification(operationID string, opUser *immysql.User, friendU // PublicUserInfo OpUser = 2; // uint64 OperationTime = 3; //} -func FriendInfoChangedNotification(operationID string, opUser *immysql.User, friendUser *immysql.Friend) { +func FriendInfoChangedNotification(req *pbFriend.SetFriendCommentReq) { + var n NotificationMsg + n.SendID = req.CommID.FromUserID + n.RecvID = req.CommID.ToUserID + n.ContentType = constant.FriendInfoChangedNotification + n.SessionType = constant.SingleChatType + n.MsgFrom = constant.SysMsgType + n.OperationID = req.CommID.OperationID + var FriendInfoChangedTips open_im_sdk.FriendInfoChangedTips + FriendInfoChangedTips.FromToUserID.FromUserID = req.CommID.FromUserID + FriendInfoChangedTips.FromToUserID.ToUserID = req.CommID.ToUserID + fromUserNickname, toUserNickname := getFromToUserNickname(req.CommID.OperationID, req.CommID.FromUserID, req.CommID.ToUserID) + var tips open_im_sdk.TipsComm + tips.Detail, _ = json.Marshal(FriendInfoChangedTips) + tips.DefaultTips = fromUserNickname + " FriendDeletedNotification " + toUserNickname + n.Content, _ = json.Marshal(tips) + Notification(&n, true) } //message BlackAddedTips{ @@ -539,15 +822,47 @@ func FriendInfoChangedNotification(operationID string, opUser *immysql.User, fri // uint64 CreateTime = 3; // PublicUserInfo BlackUser = 4; //} -func BlackAddedNotification(operationID string, opUser *immysql.User, blackUser *immysql.User) { +func BlackAddedNotification(req *pbFriend.AddBlacklistReq) { + var n NotificationMsg + n.SendID = req.CommID.FromUserID + n.RecvID = req.CommID.ToUserID + n.ContentType = constant.BlackAddedNotification + n.SessionType = constant.SingleChatType + n.MsgFrom = constant.SysMsgType + n.OperationID = req.CommID.OperationID + var BlackAddedTips open_im_sdk.BlackAddedTips + BlackAddedTips.FromToUserID.FromUserID = req.CommID.FromUserID + BlackAddedTips.FromToUserID.ToUserID = req.CommID.ToUserID + fromUserNickname, toUserNickname := getFromToUserNickname(req.CommID.OperationID, req.CommID.FromUserID, req.CommID.ToUserID) + var tips open_im_sdk.TipsComm + tips.Detail, _ = json.Marshal(BlackAddedTips) + tips.DefaultTips = fromUserNickname + " BlackAddedNotification " + toUserNickname + n.Content, _ = json.Marshal(tips) + Notification(&n, true) } //message BlackDeletedTips{ // BlackInfo Black = 1; //} -func BlackDeletedNotification(operationID string, opUser *immysql.User, blackUser *immysql.User) { +func BlackDeletedNotification(req *pbFriend.RemoveBlacklistReq) { + var n NotificationMsg + n.SendID = req.CommID.FromUserID + n.RecvID = req.CommID.ToUserID + n.ContentType = constant.BlackDeletedNotification + n.SessionType = constant.SingleChatType + n.MsgFrom = constant.SysMsgType + n.OperationID = req.CommID.OperationID + var BlackDeletedTips open_im_sdk.BlackDeletedTips + BlackDeletedTips.FromToUserID.FromUserID = req.CommID.FromUserID + BlackDeletedTips.FromToUserID.ToUserID = req.CommID.ToUserID + fromUserNickname, toUserNickname := getFromToUserNickname(req.CommID.OperationID, req.CommID.FromUserID, req.CommID.ToUserID) + var tips open_im_sdk.TipsComm + tips.Detail, _ = json.Marshal(BlackDeletedTips) + tips.DefaultTips = fromUserNickname + " BlackDeletedNotification " + toUserNickname + n.Content, _ = json.Marshal(tips) + Notification(&n, true) } //message SelfInfoUpdatedTips{ @@ -555,6 +870,26 @@ func BlackDeletedNotification(operationID string, opUser *immysql.User, blackUse // PublicUserInfo OpUser = 2; // uint64 OperationTime = 3; //} -func SelfInfoUpdatedNotification(operationID string, opUser *immysql.User, selfUser *immysql.User) { +func SelfInfoUpdatedNotification(operationID, userID string) { + var n NotificationMsg + n.SendID = userID + n.RecvID = userID + n.ContentType = constant.SelfInfoUpdatedNotification + n.SessionType = constant.SingleChatType + n.MsgFrom = constant.SysMsgType + n.OperationID = operationID + + var SelfInfoUpdatedTips open_im_sdk.SelfInfoUpdatedTips + SelfInfoUpdatedTips.UserID = userID + var tips open_im_sdk.TipsComm + u, err := imdb.FindUserByUID(userID) + if err != nil { + log.NewError(operationID, "FindUserByUID failed ", err.Error(), userID) + } + + tips.Detail, _ = json.Marshal(SelfInfoUpdatedTips) + tips.DefaultTips = u.Nickname + " SelfInfoUpdatedNotification " + n.Content, _ = json.Marshal(tips) + Notification(&n, true) } diff --git a/internal/rpc/user/get_user_info.go b/internal/rpc/user/get_user_info.go index 3f9cec00f..eca8afbd5 100644 --- a/internal/rpc/user/get_user_info.go +++ b/internal/rpc/user/get_user_info.go @@ -75,14 +75,7 @@ func (s *userServer) GetUserInfo(ctx context.Context, req *pbUser.GetUserInfoReq log.ErrorByKv("search userinfo failed", req.OperationID, "userID", userID, "err=%s", err.Error()) continue } - userInfo.Uid = user.UID - userInfo.Icon = user.Icon - userInfo.Name = user.Name - userInfo.Gender = user.Gender - userInfo.Mobile = user.Mobile - userInfo.Birth = user.Birth - userInfo.Email = user.Email - userInfo.Ex = user.Ex + utils.CopyStructFields(&userInfo, user) userInfoList = append(userInfoList, &userInfo) } } else { diff --git a/internal/rpc/user/update_user_info.go b/internal/rpc/user/update_user_info.go index 079cb1b44..f022542e4 100644 --- a/internal/rpc/user/update_user_info.go +++ b/internal/rpc/user/update_user_info.go @@ -2,6 +2,7 @@ package user import ( "Open_IM/internal/push/logic" + chat "Open_IM/internal/rpc/msg" "Open_IM/pkg/common/config" "Open_IM/pkg/common/constant" "Open_IM/pkg/common/db/mysql_model/im_mysql_model" @@ -49,7 +50,7 @@ func (s *userServer) UpdateUserInfo(ctx context.Context, req *pbUser.UpdateUserI log.ErrorByKv("get friend list rpc server failed", req.OperationID, "err", err.Error(), "req", req.String()) return &pbUser.CommonResp{}, nil } - if RpcResp.ErrorCode != 0 { + if RpcResp.ErrCode != 0 { log.ErrorByKv("get friend list rpc server failed", req.OperationID, "err", err.Error(), "req", req.String()) return &pbUser.CommonResp{}, nil } @@ -62,6 +63,8 @@ func (s *userServer) UpdateUserInfo(ctx context.Context, req *pbUser.UpdateUserI if self != nil { name, faceUrl = self.Name, self.Icon } + + chat.SelfInfoUpdatedNotification(req.OperationID, req.Uid) for _, v := range RpcResp.Data { logic.SendMsgByWS(&pbChat.WSToMsgSvrChatMsg{ SendID: ownerUid, diff --git a/pkg/common/constant/constant.go b/pkg/common/constant/constant.go index 0d2b5dae6..44216d1c8 100644 --- a/pkg/common/constant/constant.go +++ b/pkg/common/constant/constant.go @@ -45,22 +45,38 @@ const ( GroupMsg = 201 //SysRelated - AcceptFriendApplicationTip = 201 - AddFriendTip = 202 - RefuseFriendApplicationTip = 203 - SetSelfInfoTip = 204 - - TransferGroupOwnerTip = 501 - CreateGroupTip = 502 - GroupApplicationResponseTip = 503 - ApplyJoinGroupTip = 504 - QuitGroupTip = 505 - SetGroupInfoTip = 506 - AcceptGroupApplicationTip = 507 - RefuseGroupApplicationTip = 508 - KickGroupMemberTip = 509 - InviteUserToGroupTip = 510 - ChangeGroupInfoTip = 511 + FriendApplicationAddedNotification = 201 + FriendApplicationProcessedNotification = 202 + FriendAddedNotification = 203 + FriendDeletedNotification = 204 + FriendInfoChangedNotification = 205 + BlackAddedNotification = 206 + BlackDeletedNotification = 207 + //AcceptFriendApplicationTip = 201 + //AddFriendTip = 202 + //RefuseFriendApplicationTip = 203 + + SelfInfoUpdatedNotification = 301 + + GroupCreatedNotification = 501 + JoinApplicationNotification = 502 + ApplicationProcessedNotification = 503 + MemberInvitedNotification = 504 + MemberKickedNotification = 505 + GroupInfoChangedNotification = 506 + MemberLeaveNotification = 507 + MemberEnterNotification = 508 + //TransferGroupOwnerTip = 501 + //CreateGroupTip = 502 + //GroupApplicationResponseTip = 503 + //ApplyJoinGroupTip = 504 + //QuitGroupTip = 505 + //SetGroupInfoTip = 506 + //AcceptGroupApplicationTip = 507 + //RefuseGroupApplicationTip = 508 + //KickGroupMemberTip = 509 + //InviteUserToGroupTip = 510 + //ChangeGroupInfoTip = 511 //MsgFrom UserMsgType = 100 diff --git a/pkg/common/db/mysql.go b/pkg/common/db/mysql.go index 859620e36..152273f97 100644 --- a/pkg/common/db/mysql.go +++ b/pkg/common/db/mysql.go @@ -91,18 +91,6 @@ func initMysqlDB() { panic(err.Error()) } - sqlTable = "CREATE TABLE IF NOT EXISTS `black_list` (" + - " `uid` varchar(32) NOT NULL COMMENT 'uid'," + - " `begin_disable_time` datetime DEFAULT NULL," + - " `end_disable_time` datetime DEFAULT NULL," + - " `ex` varchar(1024) DEFAULT NULL," + - " PRIMARY KEY (`uid`) USING BTREE" + - " ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 ROW_FORMAT=DYNAMIC;" - err = db.Exec(sqlTable).Error - if err != nil { - panic(err.Error()) - } - sqlTable = "CREATE TABLE IF NOT EXISTS `user_black_list` (" + " `owner_id` varchar(64) NOT NULL," + " `block_id` varchar(64) NOT NULL," + diff --git a/pkg/common/db/mysql_model/im_mysql_model/group_model.go b/pkg/common/db/mysql_model/im_mysql_model/group_model.go index d9c69fdc0..db4e7f3c0 100644 --- a/pkg/common/db/mysql_model/im_mysql_model/group_model.go +++ b/pkg/common/db/mysql_model/im_mysql_model/group_model.go @@ -15,7 +15,7 @@ func InsertIntoGroup(groupId, name, introduction, notification, faceUrl, ex stri } //Default group name if name == "" { - name = "groupChat" + name = "Group Chat" } toInsertInfo := Group{GroupID: groupId, GroupName: name, Introduction: introduction, Notification: notification, FaceUrl: faceUrl, CreateTime: time.Now(), Ex: ex} err = dbConn.Table("group").Create(toInsertInfo).Error diff --git a/pkg/proto/group/group.pb.go b/pkg/proto/group/group.pb.go index caa26e0e5..cbd93fb5e 100644 --- a/pkg/proto/group/group.pb.go +++ b/pkg/proto/group/group.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_group_2ff972788727c811, []int{0} + return fileDescriptor_group_95297d6a59bab850, []int{0} } func (m *CommonResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_CommonResp.Unmarshal(m, b) @@ -82,7 +82,7 @@ func (m *GroupAddMemberInfo) Reset() { *m = GroupAddMemberInfo{} } func (m *GroupAddMemberInfo) String() string { return proto.CompactTextString(m) } func (*GroupAddMemberInfo) ProtoMessage() {} func (*GroupAddMemberInfo) Descriptor() ([]byte, []int) { - return fileDescriptor_group_2ff972788727c811, []int{1} + return fileDescriptor_group_95297d6a59bab850, []int{1} } func (m *GroupAddMemberInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupAddMemberInfo.Unmarshal(m, b) @@ -135,7 +135,7 @@ func (m *CreateGroupReq) Reset() { *m = CreateGroupReq{} } func (m *CreateGroupReq) String() string { return proto.CompactTextString(m) } func (*CreateGroupReq) ProtoMessage() {} func (*CreateGroupReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_2ff972788727c811, []int{2} + return fileDescriptor_group_95297d6a59bab850, []int{2} } func (m *CreateGroupReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_CreateGroupReq.Unmarshal(m, b) @@ -231,7 +231,7 @@ func (m *CreateGroupResp) Reset() { *m = CreateGroupResp{} } func (m *CreateGroupResp) String() string { return proto.CompactTextString(m) } func (*CreateGroupResp) ProtoMessage() {} func (*CreateGroupResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_2ff972788727c811, []int{3} + return fileDescriptor_group_95297d6a59bab850, []int{3} } func (m *CreateGroupResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_CreateGroupResp.Unmarshal(m, b) @@ -285,7 +285,7 @@ func (m *GetGroupsInfoReq) Reset() { *m = GetGroupsInfoReq{} } func (m *GetGroupsInfoReq) String() string { return proto.CompactTextString(m) } func (*GetGroupsInfoReq) ProtoMessage() {} func (*GetGroupsInfoReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_2ff972788727c811, []int{4} + return fileDescriptor_group_95297d6a59bab850, []int{4} } func (m *GetGroupsInfoReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetGroupsInfoReq.Unmarshal(m, b) @@ -339,7 +339,7 @@ func (m *GetGroupsInfoResp) Reset() { *m = GetGroupsInfoResp{} } func (m *GetGroupsInfoResp) String() string { return proto.CompactTextString(m) } func (*GetGroupsInfoResp) ProtoMessage() {} func (*GetGroupsInfoResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_2ff972788727c811, []int{5} + return fileDescriptor_group_95297d6a59bab850, []int{5} } func (m *GetGroupsInfoResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetGroupsInfoResp.Unmarshal(m, b) @@ -383,8 +383,7 @@ func (m *GetGroupsInfoResp) GetGroupInfoList() []*sdk_ws.GroupInfo { type SetGroupInfoReq struct { GroupInfo *sdk_ws.GroupInfo `protobuf:"bytes,1,opt,name=GroupInfo" json:"GroupInfo,omitempty"` OpUserID string `protobuf:"bytes,2,opt,name=OpUserID" json:"OpUserID,omitempty"` - FromUserID string `protobuf:"bytes,3,opt,name=FromUserID" json:"FromUserID,omitempty"` - OperationID string `protobuf:"bytes,4,opt,name=OperationID" json:"OperationID,omitempty"` + OperationID string `protobuf:"bytes,3,opt,name=OperationID" json:"OperationID,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -394,7 +393,7 @@ func (m *SetGroupInfoReq) Reset() { *m = SetGroupInfoReq{} } func (m *SetGroupInfoReq) String() string { return proto.CompactTextString(m) } func (*SetGroupInfoReq) ProtoMessage() {} func (*SetGroupInfoReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_2ff972788727c811, []int{6} + return fileDescriptor_group_95297d6a59bab850, []int{6} } func (m *SetGroupInfoReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SetGroupInfoReq.Unmarshal(m, b) @@ -428,13 +427,6 @@ func (m *SetGroupInfoReq) GetOpUserID() string { return "" } -func (m *SetGroupInfoReq) GetFromUserID() string { - if m != nil { - return m.FromUserID - } - return "" -} - func (m *SetGroupInfoReq) GetOperationID() string { if m != nil { return m.OperationID @@ -442,7 +434,6 @@ func (m *SetGroupInfoReq) GetOperationID() string { return "" } -// owner or manager type GetGroupApplicationListReq struct { OpUserID string `protobuf:"bytes,1,opt,name=OpUserID" json:"OpUserID,omitempty"` OperationID string `protobuf:"bytes,2,opt,name=OperationID" json:"OperationID,omitempty"` @@ -456,7 +447,7 @@ func (m *GetGroupApplicationListReq) Reset() { *m = GetGroupApplicationL func (m *GetGroupApplicationListReq) String() string { return proto.CompactTextString(m) } func (*GetGroupApplicationListReq) ProtoMessage() {} func (*GetGroupApplicationListReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_2ff972788727c811, []int{7} + return fileDescriptor_group_95297d6a59bab850, []int{7} } func (m *GetGroupApplicationListReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetGroupApplicationListReq.Unmarshal(m, b) @@ -523,7 +514,7 @@ func (m *GetGroupApplicationList_Data_User) Reset() { *m = GetGroupAppli func (m *GetGroupApplicationList_Data_User) String() string { return proto.CompactTextString(m) } func (*GetGroupApplicationList_Data_User) ProtoMessage() {} func (*GetGroupApplicationList_Data_User) Descriptor() ([]byte, []int) { - return fileDescriptor_group_2ff972788727c811, []int{8} + return fileDescriptor_group_95297d6a59bab850, []int{8} } func (m *GetGroupApplicationList_Data_User) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetGroupApplicationList_Data_User.Unmarshal(m, b) @@ -667,7 +658,7 @@ func (m *GetGroupApplicationListData) Reset() { *m = GetGroupApplication func (m *GetGroupApplicationListData) String() string { return proto.CompactTextString(m) } func (*GetGroupApplicationListData) ProtoMessage() {} func (*GetGroupApplicationListData) Descriptor() ([]byte, []int) { - return fileDescriptor_group_2ff972788727c811, []int{9} + return fileDescriptor_group_95297d6a59bab850, []int{9} } func (m *GetGroupApplicationListData) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetGroupApplicationListData.Unmarshal(m, b) @@ -714,7 +705,7 @@ func (m *GetGroupApplicationListResp) Reset() { *m = GetGroupApplication func (m *GetGroupApplicationListResp) String() string { return proto.CompactTextString(m) } func (*GetGroupApplicationListResp) ProtoMessage() {} func (*GetGroupApplicationListResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_2ff972788727c811, []int{10} + return fileDescriptor_group_95297d6a59bab850, []int{10} } func (m *GetGroupApplicationListResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetGroupApplicationListResp.Unmarshal(m, b) @@ -770,7 +761,7 @@ func (m *TransferGroupOwnerReq) Reset() { *m = TransferGroupOwnerReq{} } func (m *TransferGroupOwnerReq) String() string { return proto.CompactTextString(m) } func (*TransferGroupOwnerReq) ProtoMessage() {} func (*TransferGroupOwnerReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_2ff972788727c811, []int{11} + return fileDescriptor_group_95297d6a59bab850, []int{11} } func (m *TransferGroupOwnerReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_TransferGroupOwnerReq.Unmarshal(m, b) @@ -828,9 +819,8 @@ func (m *TransferGroupOwnerReq) GetOpUserID() string { type JoinGroupReq struct { GroupID string `protobuf:"bytes,1,opt,name=GroupID" json:"GroupID,omitempty"` ReqMessage string `protobuf:"bytes,2,opt,name=ReqMessage" json:"ReqMessage,omitempty"` - FromUserID string `protobuf:"bytes,3,opt,name=FromUserID" json:"FromUserID,omitempty"` + OpUserID string `protobuf:"bytes,3,opt,name=OpUserID" json:"OpUserID,omitempty"` OperationID string `protobuf:"bytes,4,opt,name=OperationID" json:"OperationID,omitempty"` - OpUserID string `protobuf:"bytes,5,opt,name=OpUserID" json:"OpUserID,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -840,7 +830,7 @@ func (m *JoinGroupReq) Reset() { *m = JoinGroupReq{} } func (m *JoinGroupReq) String() string { return proto.CompactTextString(m) } func (*JoinGroupReq) ProtoMessage() {} func (*JoinGroupReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_2ff972788727c811, []int{12} + return fileDescriptor_group_95297d6a59bab850, []int{12} } func (m *JoinGroupReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_JoinGroupReq.Unmarshal(m, b) @@ -874,9 +864,9 @@ func (m *JoinGroupReq) GetReqMessage() string { return "" } -func (m *JoinGroupReq) GetFromUserID() string { +func (m *JoinGroupReq) GetOpUserID() string { if m != nil { - return m.FromUserID + return m.OpUserID } return "" } @@ -888,24 +878,15 @@ func (m *JoinGroupReq) GetOperationID() string { return "" } -func (m *JoinGroupReq) GetOpUserID() string { - if m != nil { - return m.OpUserID - } - return "" -} - type GroupApplicationResponseReq struct { - OperationID string `protobuf:"bytes,1,opt,name=OperationID" json:"OperationID,omitempty"` - OpUserID string `protobuf:"bytes,2,opt,name=OpUserID" json:"OpUserID,omitempty"` - GroupID string `protobuf:"bytes,3,opt,name=GroupID" json:"GroupID,omitempty"` - FromUserID string `protobuf:"bytes,4,opt,name=FromUserID" json:"FromUserID,omitempty"` - ToUserID string `protobuf:"bytes,7,opt,name=ToUserID" json:"ToUserID,omitempty"` - AddTime int64 `protobuf:"varint,10,opt,name=AddTime" json:"AddTime,omitempty"` - HandledMsg string `protobuf:"bytes,12,opt,name=HandledMsg" json:"HandledMsg,omitempty"` - // int32 Type = 13; - // int32 HandleStatus = 14; - HandleResult int32 `protobuf:"varint,15,opt,name=HandleResult" json:"HandleResult,omitempty"` + OperationID string `protobuf:"bytes,1,opt,name=OperationID" json:"OperationID,omitempty"` + OpUserID string `protobuf:"bytes,2,opt,name=OpUserID" json:"OpUserID,omitempty"` + GroupID string `protobuf:"bytes,3,opt,name=GroupID" json:"GroupID,omitempty"` + FromUserID string `protobuf:"bytes,4,opt,name=FromUserID" json:"FromUserID,omitempty"` + ToUserID string `protobuf:"bytes,5,opt,name=ToUserID" json:"ToUserID,omitempty"` + AddTime int64 `protobuf:"varint,6,opt,name=AddTime" json:"AddTime,omitempty"` + HandledMsg string `protobuf:"bytes,7,opt,name=HandledMsg" json:"HandledMsg,omitempty"` + HandleResult int32 `protobuf:"varint,8,opt,name=HandleResult" json:"HandleResult,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -915,7 +896,7 @@ func (m *GroupApplicationResponseReq) Reset() { *m = GroupApplicationRes func (m *GroupApplicationResponseReq) String() string { return proto.CompactTextString(m) } func (*GroupApplicationResponseReq) ProtoMessage() {} func (*GroupApplicationResponseReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_2ff972788727c811, []int{13} + return fileDescriptor_group_95297d6a59bab850, []int{13} } func (m *GroupApplicationResponseReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupApplicationResponseReq.Unmarshal(m, b) @@ -1006,7 +987,7 @@ func (m *SetOwnerGroupNickNameReq) Reset() { *m = SetOwnerGroupNickNameR func (m *SetOwnerGroupNickNameReq) String() string { return proto.CompactTextString(m) } func (*SetOwnerGroupNickNameReq) ProtoMessage() {} func (*SetOwnerGroupNickNameReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_2ff972788727c811, []int{14} + return fileDescriptor_group_95297d6a59bab850, []int{14} } func (m *SetOwnerGroupNickNameReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SetOwnerGroupNickNameReq.Unmarshal(m, b) @@ -1064,8 +1045,7 @@ func (m *SetOwnerGroupNickNameReq) GetOpUserID() string { type QuitGroupReq struct { GroupID string `protobuf:"bytes,1,opt,name=GroupID" json:"GroupID,omitempty"` OperationID string `protobuf:"bytes,2,opt,name=OperationID" json:"OperationID,omitempty"` - FromUserID string `protobuf:"bytes,3,opt,name=FromUserID" json:"FromUserID,omitempty"` - OpUserID string `protobuf:"bytes,4,opt,name=OpUserID" json:"OpUserID,omitempty"` + OpUserID string `protobuf:"bytes,3,opt,name=OpUserID" json:"OpUserID,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -1075,7 +1055,7 @@ func (m *QuitGroupReq) Reset() { *m = QuitGroupReq{} } func (m *QuitGroupReq) String() string { return proto.CompactTextString(m) } func (*QuitGroupReq) ProtoMessage() {} func (*QuitGroupReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_2ff972788727c811, []int{15} + return fileDescriptor_group_95297d6a59bab850, []int{15} } func (m *QuitGroupReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_QuitGroupReq.Unmarshal(m, b) @@ -1109,13 +1089,6 @@ func (m *QuitGroupReq) GetOperationID() string { return "" } -func (m *QuitGroupReq) GetFromUserID() string { - if m != nil { - return m.FromUserID - } - return "" -} - func (m *QuitGroupReq) GetOpUserID() string { if m != nil { return m.OpUserID @@ -1138,7 +1111,7 @@ func (m *GetGroupMemberListReq) Reset() { *m = GetGroupMemberListReq{} } func (m *GetGroupMemberListReq) String() string { return proto.CompactTextString(m) } func (*GetGroupMemberListReq) ProtoMessage() {} func (*GetGroupMemberListReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_2ff972788727c811, []int{16} + return fileDescriptor_group_95297d6a59bab850, []int{16} } func (m *GetGroupMemberListReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetGroupMemberListReq.Unmarshal(m, b) @@ -1207,7 +1180,7 @@ func (m *GetGroupMemberListResp) Reset() { *m = GetGroupMemberListResp{} func (m *GetGroupMemberListResp) String() string { return proto.CompactTextString(m) } func (*GetGroupMemberListResp) ProtoMessage() {} func (*GetGroupMemberListResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_2ff972788727c811, []int{17} + return fileDescriptor_group_95297d6a59bab850, []int{17} } func (m *GetGroupMemberListResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetGroupMemberListResp.Unmarshal(m, b) @@ -1269,7 +1242,7 @@ func (m *GetGroupMembersInfoReq) Reset() { *m = GetGroupMembersInfoReq{} func (m *GetGroupMembersInfoReq) String() string { return proto.CompactTextString(m) } func (*GetGroupMembersInfoReq) ProtoMessage() {} func (*GetGroupMembersInfoReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_2ff972788727c811, []int{18} + return fileDescriptor_group_95297d6a59bab850, []int{18} } func (m *GetGroupMembersInfoReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetGroupMembersInfoReq.Unmarshal(m, b) @@ -1330,7 +1303,7 @@ func (m *GetGroupMembersInfoResp) Reset() { *m = GetGroupMembersInfoResp func (m *GetGroupMembersInfoResp) String() string { return proto.CompactTextString(m) } func (*GetGroupMembersInfoResp) ProtoMessage() {} func (*GetGroupMembersInfoResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_2ff972788727c811, []int{19} + return fileDescriptor_group_95297d6a59bab850, []int{19} } func (m *GetGroupMembersInfoResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetGroupMembersInfoResp.Unmarshal(m, b) @@ -1386,7 +1359,7 @@ func (m *KickGroupMemberReq) Reset() { *m = KickGroupMemberReq{} } func (m *KickGroupMemberReq) String() string { return proto.CompactTextString(m) } func (*KickGroupMemberReq) ProtoMessage() {} func (*KickGroupMemberReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_2ff972788727c811, []int{20} + return fileDescriptor_group_95297d6a59bab850, []int{20} } func (m *KickGroupMemberReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_KickGroupMemberReq.Unmarshal(m, b) @@ -1453,7 +1426,7 @@ func (m *Id2Result) Reset() { *m = Id2Result{} } func (m *Id2Result) String() string { return proto.CompactTextString(m) } func (*Id2Result) ProtoMessage() {} func (*Id2Result) Descriptor() ([]byte, []int) { - return fileDescriptor_group_2ff972788727c811, []int{21} + return fileDescriptor_group_95297d6a59bab850, []int{21} } func (m *Id2Result) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_Id2Result.Unmarshal(m, b) @@ -1500,7 +1473,7 @@ func (m *KickGroupMemberResp) Reset() { *m = KickGroupMemberResp{} } func (m *KickGroupMemberResp) String() string { return proto.CompactTextString(m) } func (*KickGroupMemberResp) ProtoMessage() {} func (*KickGroupMemberResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_2ff972788727c811, []int{22} + return fileDescriptor_group_95297d6a59bab850, []int{22} } func (m *KickGroupMemberResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_KickGroupMemberResp.Unmarshal(m, b) @@ -1554,7 +1527,7 @@ func (m *GetJoinedGroupListReq) Reset() { *m = GetJoinedGroupListReq{} } func (m *GetJoinedGroupListReq) String() string { return proto.CompactTextString(m) } func (*GetJoinedGroupListReq) ProtoMessage() {} func (*GetJoinedGroupListReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_2ff972788727c811, []int{23} + return fileDescriptor_group_95297d6a59bab850, []int{23} } func (m *GetJoinedGroupListReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetJoinedGroupListReq.Unmarshal(m, b) @@ -1608,7 +1581,7 @@ func (m *GetJoinedGroupListResp) Reset() { *m = GetJoinedGroupListResp{} func (m *GetJoinedGroupListResp) String() string { return proto.CompactTextString(m) } func (*GetJoinedGroupListResp) ProtoMessage() {} func (*GetJoinedGroupListResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_2ff972788727c811, []int{24} + return fileDescriptor_group_95297d6a59bab850, []int{24} } func (m *GetJoinedGroupListResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetJoinedGroupListResp.Unmarshal(m, b) @@ -1664,7 +1637,7 @@ func (m *InviteUserToGroupReq) Reset() { *m = InviteUserToGroupReq{} } func (m *InviteUserToGroupReq) String() string { return proto.CompactTextString(m) } func (*InviteUserToGroupReq) ProtoMessage() {} func (*InviteUserToGroupReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_2ff972788727c811, []int{25} + return fileDescriptor_group_95297d6a59bab850, []int{25} } func (m *InviteUserToGroupReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_InviteUserToGroupReq.Unmarshal(m, b) @@ -1732,7 +1705,7 @@ func (m *InviteUserToGroupResp) Reset() { *m = InviteUserToGroupResp{} } func (m *InviteUserToGroupResp) String() string { return proto.CompactTextString(m) } func (*InviteUserToGroupResp) ProtoMessage() {} func (*InviteUserToGroupResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_2ff972788727c811, []int{26} + return fileDescriptor_group_95297d6a59bab850, []int{26} } func (m *InviteUserToGroupResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_InviteUserToGroupResp.Unmarshal(m, b) @@ -1786,7 +1759,7 @@ func (m *GetGroupAllMemberReq) Reset() { *m = GetGroupAllMemberReq{} } func (m *GetGroupAllMemberReq) String() string { return proto.CompactTextString(m) } func (*GetGroupAllMemberReq) ProtoMessage() {} func (*GetGroupAllMemberReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_2ff972788727c811, []int{27} + return fileDescriptor_group_95297d6a59bab850, []int{27} } func (m *GetGroupAllMemberReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetGroupAllMemberReq.Unmarshal(m, b) @@ -1840,7 +1813,7 @@ func (m *GetGroupAllMemberResp) Reset() { *m = GetGroupAllMemberResp{} } func (m *GetGroupAllMemberResp) String() string { return proto.CompactTextString(m) } func (*GetGroupAllMemberResp) ProtoMessage() {} func (*GetGroupAllMemberResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_2ff972788727c811, []int{28} + return fileDescriptor_group_95297d6a59bab850, []int{28} } func (m *GetGroupAllMemberResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetGroupAllMemberResp.Unmarshal(m, b) @@ -2416,101 +2389,100 @@ var _Group_serviceDesc = grpc.ServiceDesc{ Metadata: "group/group.proto", } -func init() { proto.RegisterFile("group/group.proto", fileDescriptor_group_2ff972788727c811) } - -var fileDescriptor_group_2ff972788727c811 = []byte{ - // 1480 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x58, 0xcd, 0x6f, 0xdc, 0x44, - 0x14, 0x97, 0xf7, 0x23, 0xcd, 0xbe, 0x7c, 0x6c, 0x32, 0x6d, 0x52, 0xe3, 0x86, 0x2a, 0xb5, 0x50, - 0x15, 0x55, 0x28, 0x91, 0x52, 0x84, 0x84, 0x5a, 0xa1, 0xa6, 0xf9, 0x68, 0x17, 0x48, 0xa2, 0x3a, - 0xdb, 0x0b, 0x97, 0xe0, 0xae, 0xa7, 0x2b, 0xb3, 0x5e, 0xdb, 0xeb, 0xf1, 0x92, 0x96, 0x0b, 0x20, - 0x24, 0x38, 0x20, 0x44, 0xaf, 0x1c, 0x39, 0xc0, 0x11, 0x71, 0xe0, 0xce, 0x81, 0x7f, 0x0c, 0xcd, - 0x87, 0xbd, 0xe3, 0xf1, 0xc7, 0xae, 0x12, 0x89, 0x5e, 0x56, 0x3b, 0xef, 0xbd, 0x99, 0xf7, 0x31, - 0xef, 0xfd, 0xde, 0x1b, 0xc3, 0x6a, 0x3f, 0x0a, 0xc6, 0xe1, 0x0e, 0xfb, 0xdd, 0x0e, 0xa3, 0x20, - 0x0e, 0x50, 0x93, 0x2d, 0x8c, 0x3b, 0xa7, 0x21, 0xf6, 0xcf, 0x3b, 0xc7, 0x3b, 0xe1, 0xa0, 0xbf, - 0xc3, 0x38, 0x3b, 0xc4, 0x19, 0x9c, 0x5f, 0x90, 0x9d, 0x0b, 0xc2, 0x25, 0xcd, 0x8f, 0x01, 0xf6, - 0x83, 0xe1, 0x30, 0xf0, 0x2d, 0x4c, 0x42, 0xa4, 0xc3, 0xb5, 0xc3, 0x28, 0xda, 0x0f, 0x1c, 0xac, - 0x6b, 0x9b, 0xda, 0x56, 0xd3, 0x4a, 0x96, 0x68, 0x1d, 0xe6, 0x0e, 0xa3, 0xe8, 0x98, 0xf4, 0xf5, - 0xda, 0xa6, 0xb6, 0xd5, 0xb2, 0xc4, 0xca, 0x7c, 0x04, 0xe8, 0x09, 0xd5, 0xb5, 0xe7, 0x38, 0xc7, - 0x78, 0xf8, 0x02, 0x47, 0x1d, 0xff, 0x65, 0x40, 0xa5, 0x9f, 0x13, 0x1c, 0x75, 0x0e, 0xd8, 0x31, - 0x2d, 0x4b, 0xac, 0x10, 0x82, 0x86, 0x15, 0x78, 0x98, 0x9d, 0xd1, 0xb4, 0xd8, 0x7f, 0xf3, 0xdf, - 0x1a, 0x2c, 0xef, 0x47, 0xd8, 0x8e, 0x31, 0x3b, 0xc8, 0xc2, 0x23, 0xb4, 0x07, 0xcb, 0x1d, 0xdf, - 0x8d, 0xf9, 0x81, 0x9f, 0xb9, 0x24, 0xd6, 0xb5, 0xcd, 0xfa, 0xd6, 0xc2, 0xee, 0x3b, 0xdb, 0xdc, - 0xc9, 0xbc, 0x46, 0x4b, 0xd9, 0x80, 0x36, 0xa0, 0xc5, 0xa4, 0x4e, 0xec, 0x21, 0x16, 0x26, 0x4f, - 0x08, 0xc8, 0x84, 0xc5, 0x8e, 0x1f, 0x47, 0x81, 0x33, 0xee, 0xc5, 0x6e, 0xe0, 0xeb, 0x75, 0x26, - 0x90, 0xa1, 0x51, 0x99, 0x93, 0x20, 0x76, 0x5f, 0xba, 0x3d, 0x9b, 0xc9, 0x34, 0xb8, 0x8c, 0x4c, - 0xa3, 0xf1, 0x3a, 0xb2, 0x7b, 0xf8, 0x79, 0xe4, 0xe9, 0x4d, 0xc6, 0x4e, 0x96, 0x68, 0x05, 0xea, - 0x87, 0xaf, 0x62, 0x7d, 0x8e, 0x51, 0xe9, 0x5f, 0xb4, 0x09, 0x0b, 0xa7, 0x21, 0x8e, 0xd8, 0xc6, - 0xce, 0x81, 0x7e, 0x8d, 0x71, 0x64, 0x12, 0x32, 0x60, 0xfe, 0x34, 0x14, 0x71, 0x9b, 0x67, 0xec, - 0x74, 0x8d, 0x6e, 0x03, 0x1c, 0x45, 0xc1, 0x50, 0x70, 0x5b, 0x8c, 0x2b, 0x51, 0xcc, 0xd7, 0xd0, - 0xce, 0x04, 0xf1, 0x32, 0x97, 0x89, 0x3e, 0x10, 0x41, 0xa3, 0x11, 0x65, 0x31, 0x59, 0xd8, 0x5d, - 0xdf, 0x0e, 0x68, 0x0e, 0xb9, 0xc3, 0x73, 0xe2, 0x0c, 0xb6, 0x53, 0xae, 0x35, 0x11, 0x34, 0x23, - 0x58, 0x79, 0x82, 0x63, 0xb6, 0x26, 0x8c, 0x87, 0x47, 0xd4, 0x59, 0x2e, 0x70, 0x90, 0x5e, 0x5f, - 0xcb, 0x92, 0x49, 0x6a, 0x38, 0x6a, 0xd5, 0xe1, 0xa8, 0x67, 0xc3, 0x61, 0x7e, 0xaf, 0xc1, 0xaa, - 0xa2, 0xf4, 0x52, 0x1e, 0x3f, 0x84, 0xa5, 0xd4, 0x11, 0x66, 0x69, 0x9d, 0x25, 0x5a, 0x99, 0xd7, - 0x59, 0x61, 0xf3, 0x77, 0x0d, 0xda, 0x67, 0xc2, 0x8a, 0xc4, 0xf3, 0x4c, 0x0c, 0xb5, 0x19, 0x63, - 0x98, 0xf1, 0xb5, 0x56, 0x79, 0xf5, 0x75, 0xf5, 0xea, 0xd5, 0x48, 0x36, 0x72, 0x91, 0x34, 0xbf, - 0x06, 0x23, 0x09, 0xd6, 0x5e, 0x18, 0x7a, 0x22, 0x7b, 0xa9, 0x0b, 0xd4, 0x62, 0x59, 0xb7, 0xa6, - 0xe8, 0x9e, 0x7e, 0x4b, 0x53, 0xac, 0x33, 0x7f, 0x6d, 0xc0, 0x9d, 0x12, 0xe5, 0xe7, 0x07, 0x76, - 0x6c, 0x9f, 0x53, 0x39, 0xb4, 0x0c, 0xb5, 0x54, 0x7b, 0xad, 0x73, 0x40, 0x6f, 0x52, 0x24, 0x8b, - 0xd0, 0x99, 0x2c, 0xa7, 0x46, 0xc3, 0x80, 0xf9, 0x6e, 0x20, 0xb8, 0x3c, 0x14, 0xe9, 0x9a, 0xc2, - 0xcf, 0x91, 0x67, 0xf7, 0x59, 0xad, 0x36, 0x2d, 0xf6, 0x9f, 0x9e, 0x67, 0xe1, 0xd1, 0x18, 0x93, - 0x98, 0x66, 0x07, 0xaf, 0x57, 0x89, 0x42, 0xf9, 0x4f, 0x6d, 0xdf, 0xf1, 0xb0, 0x43, 0xf9, 0xbc, - 0x6a, 0x25, 0x0a, 0xb5, 0x74, 0xcf, 0x71, 0xba, 0xee, 0x10, 0xb3, 0x9a, 0xad, 0x5b, 0xc9, 0x12, - 0xdd, 0x83, 0x95, 0xc4, 0xae, 0x13, 0xb7, 0x37, 0xf0, 0x29, 0x12, 0xf1, 0xc2, 0xcd, 0xd1, 0xd1, - 0x5d, 0x58, 0xe6, 0x56, 0xa6, 0x92, 0xc0, 0x24, 0x15, 0x2a, 0xda, 0x82, 0x76, 0xb2, 0x37, 0x01, - 0x9e, 0x05, 0x26, 0xa8, 0x92, 0xd1, 0x7b, 0xb0, 0xc4, 0xf7, 0x26, 0x72, 0x8b, 0x4c, 0x2e, 0x4b, - 0xa4, 0xf7, 0x2b, 0x7c, 0xa1, 0x54, 0x7d, 0x89, 0xdf, 0xaf, 0x44, 0xa2, 0x31, 0xeb, 0xbe, 0x0e, - 0xb1, 0xbe, 0xcc, 0x63, 0x46, 0xff, 0x53, 0x68, 0xe4, 0x22, 0x67, 0xb1, 0x1d, 0x8f, 0x89, 0xde, - 0x66, 0xbc, 0x0c, 0x6d, 0x22, 0x63, 0x61, 0x32, 0xf6, 0x62, 0x7d, 0x45, 0x96, 0xe1, 0x34, 0x73, - 0x04, 0xb7, 0x4a, 0x52, 0x83, 0x66, 0x06, 0xba, 0x01, 0xcd, 0xfd, 0x60, 0xec, 0xc7, 0xa2, 0x98, - 0xf9, 0x02, 0x3d, 0x84, 0x06, 0xb3, 0xb5, 0xc6, 0x2a, 0x75, 0x2b, 0x69, 0x09, 0xd3, 0x52, 0xcc, - 0x62, 0xbb, 0xcc, 0x1f, 0xb5, 0x52, 0x9d, 0x97, 0x84, 0x90, 0x0f, 0xa1, 0x41, 0x95, 0x08, 0xbc, - 0x34, 0xab, 0xed, 0xa1, 0x92, 0x16, 0x93, 0x37, 0xff, 0xd1, 0x60, 0xad, 0x1b, 0xd9, 0x3e, 0x79, - 0x89, 0x23, 0x26, 0x7a, 0x7a, 0xe1, 0xe3, 0x88, 0x16, 0xa4, 0x94, 0xfc, 0x5a, 0x36, 0xf9, 0xef, - 0xc2, 0xf2, 0xa9, 0xe7, 0x30, 0xc1, 0x0c, 0x58, 0x28, 0x54, 0x2a, 0x77, 0x82, 0x2f, 0x64, 0x39, - 0x5e, 0x28, 0x0a, 0x75, 0x3a, 0x74, 0x64, 0xc0, 0xa1, 0xa9, 0x80, 0xf0, 0x1f, 0x1a, 0x2c, 0x7e, - 0x12, 0xb8, 0x7e, 0xda, 0xb7, 0xcb, 0x0d, 0xe7, 0x55, 0x76, 0x8c, 0x09, 0xb1, 0xfb, 0x49, 0x3f, - 0x96, 0x28, 0x57, 0xc7, 0xb8, 0x4a, 0x43, 0x7f, 0xa9, 0xc1, 0x2d, 0xf5, 0x36, 0xe8, 0x6d, 0x07, - 0x3e, 0xc1, 0xa2, 0x5b, 0xc9, 0xa7, 0x6b, 0xd5, 0xa7, 0xab, 0xf8, 0x2c, 0x79, 0x5d, 0xaf, 0xc2, - 0xaa, 0x46, 0x25, 0x56, 0x5d, 0x53, 0xb0, 0x4a, 0xc2, 0x15, 0xc8, 0xe2, 0x4a, 0x16, 0x91, 0x16, - 0x73, 0x88, 0xa4, 0x56, 0x5e, 0xbb, 0xa0, 0xf2, 0xfe, 0xd4, 0x40, 0x3f, 0xc3, 0x31, 0xcb, 0x05, - 0x3e, 0x16, 0xb9, 0xbd, 0x01, 0x1d, 0x8d, 0xaa, 0xaf, 0xd1, 0x80, 0xf9, 0x14, 0xa0, 0x44, 0x18, - 0x52, 0x68, 0x52, 0x82, 0x58, 0x9f, 0xd6, 0x2a, 0x0a, 0xc3, 0x51, 0x7a, 0x85, 0x3f, 0x68, 0xb0, - 0xf8, 0x6c, 0xec, 0xc6, 0x33, 0xe4, 0xda, 0x95, 0x7b, 0x56, 0xc6, 0x90, 0x86, 0x62, 0xc8, 0x6f, - 0x1a, 0xac, 0x25, 0xc5, 0x3d, 0x99, 0x37, 0xa7, 0x86, 0xad, 0x34, 0x7b, 0xa6, 0x87, 0x6d, 0x1d, - 0xe6, 0x8e, 0x5c, 0x2f, 0xc6, 0x11, 0xb3, 0xa5, 0x69, 0x89, 0x15, 0xd5, 0x77, 0x82, 0x5f, 0xc5, - 0x67, 0x78, 0x24, 0x1a, 0x5a, 0xb2, 0xa4, 0x85, 0xb9, 0x5e, 0x64, 0xe3, 0xa5, 0xf0, 0xed, 0x11, - 0xc0, 0x70, 0x32, 0x88, 0xf3, 0xf9, 0x68, 0x33, 0x3f, 0xd1, 0x70, 0x3d, 0x47, 0x63, 0xcf, 0x63, - 0xb3, 0x8d, 0xb4, 0x87, 0xea, 0xf4, 0x85, 0xa1, 0xdc, 0x83, 0x64, 0x69, 0xbe, 0xc9, 0x19, 0x9a, - 0x4e, 0x90, 0x95, 0x58, 0x22, 0x19, 0x54, 0x63, 0xa3, 0xa5, 0xac, 0xae, 0x62, 0x6e, 0x9c, 0x61, - 0x56, 0xfa, 0x59, 0x83, 0x9b, 0x85, 0x26, 0xbd, 0x9d, 0xe0, 0x99, 0x7f, 0x69, 0x80, 0x3e, 0x75, - 0x7b, 0x03, 0x49, 0xae, 0x3a, 0x3c, 0xf7, 0x60, 0x85, 0xca, 0xf3, 0xf6, 0x2d, 0xe6, 0x6f, 0x1e, - 0xa4, 0x1c, 0x9d, 0x9a, 0x6d, 0x61, 0x9b, 0xa4, 0x2f, 0x20, 0xb1, 0x52, 0xc3, 0xd4, 0xac, 0x06, - 0xc4, 0x39, 0xa5, 0x44, 0x1e, 0x40, 0xab, 0xe3, 0xec, 0x72, 0xa4, 0x29, 0x7d, 0x0a, 0x32, 0xd5, - 0x0c, 0x9f, 0xf8, 0x63, 0x50, 0xac, 0xcc, 0x6f, 0xe0, 0x7a, 0xce, 0xdd, 0x4b, 0xf6, 0xe5, 0xa5, - 0xd4, 0x0a, 0x29, 0xfa, 0x2b, 0xa2, 0x41, 0xa7, 0x3c, 0x2b, 0x2b, 0x66, 0x8e, 0x59, 0x7d, 0xd3, - 0xbe, 0x86, 0x1d, 0x66, 0x45, 0x52, 0xdf, 0x59, 0xd4, 0xd0, 0x8a, 0x7a, 0x54, 0x90, 0xc7, 0x9d, - 0x60, 0xc6, 0x17, 0xcd, 0xb7, 0xbc, 0x14, 0x72, 0x7a, 0xaf, 0xf4, 0x90, 0x9b, 0xe1, 0x49, 0x33, - 0x11, 0x34, 0xff, 0xd6, 0xe0, 0x46, 0xc7, 0xff, 0xca, 0x8d, 0x31, 0xb5, 0xa9, 0x1b, 0xa4, 0x58, - 0x3b, 0x1d, 0x51, 0xcb, 0x7b, 0xe0, 0x24, 0xc5, 0x1a, 0x99, 0x14, 0x7b, 0x1f, 0x56, 0xb9, 0x2e, - 0x39, 0x4f, 0x9b, 0x2c, 0x4f, 0xf3, 0x8c, 0xca, 0x74, 0xfb, 0x4e, 0x83, 0xb5, 0x02, 0xb3, 0xff, - 0xd7, 0xa4, 0xf1, 0xe1, 0x46, 0x3a, 0xf1, 0x79, 0xde, 0x2c, 0x65, 0x7a, 0xa5, 0x9e, 0x60, 0xfe, - 0x24, 0x75, 0x21, 0x49, 0xe1, 0xdb, 0xc1, 0xa8, 0xdd, 0x37, 0xf3, 0xc0, 0xbf, 0x38, 0xa1, 0x87, - 0xb0, 0xd0, 0x9b, 0x7c, 0x86, 0x40, 0x6b, 0x22, 0x6e, 0xd9, 0xef, 0x3b, 0xc6, 0x7a, 0x11, 0x99, - 0x84, 0xe8, 0x3e, 0xb4, 0xbe, 0x4c, 0xe6, 0x49, 0x74, 0x5d, 0x08, 0xc9, 0x13, 0xa6, 0xb1, 0x9a, - 0xec, 0x9c, 0x7c, 0xb3, 0xba, 0x0f, 0xad, 0x51, 0x32, 0x18, 0xa4, 0x9b, 0xe4, 0x51, 0xa1, 0x68, - 0xd3, 0x63, 0x58, 0xea, 0xcb, 0x9f, 0x0f, 0xd0, 0x4d, 0x65, 0x6e, 0x4f, 0xfa, 0x90, 0xa1, 0x17, - 0x33, 0x48, 0x88, 0x3e, 0x82, 0x45, 0x22, 0x3d, 0xfe, 0x51, 0xe2, 0x95, 0xf2, 0x45, 0xa0, 0x48, - 0xfd, 0x17, 0x70, 0xb3, 0x5f, 0xfc, 0x40, 0x40, 0x77, 0xaa, 0x1f, 0x10, 0xf4, 0x40, 0x73, 0x9a, - 0x08, 0x09, 0xd1, 0x21, 0xa0, 0x38, 0xf7, 0xb8, 0x40, 0x1b, 0x62, 0x67, 0xe1, 0xbb, 0xa3, 0xc8, - 0xd0, 0x67, 0xa0, 0xf7, 0x4b, 0x06, 0x67, 0x64, 0x66, 0xbe, 0xc6, 0x15, 0x4e, 0xd6, 0xc5, 0x47, - 0xa2, 0x7e, 0x6e, 0x36, 0x49, 0x2d, 0x2b, 0x1c, 0xad, 0x8c, 0x77, 0x2b, 0xb8, 0x24, 0x44, 0x5d, - 0xb8, 0xde, 0xcf, 0xb7, 0x6c, 0x54, 0xbc, 0x2b, 0xbd, 0xd9, 0xdb, 0x55, 0x6c, 0x12, 0xa2, 0xa7, - 0xd0, 0x1e, 0x64, 0x3b, 0x11, 0x4a, 0x3e, 0x40, 0xe6, 0x1b, 0xb2, 0x61, 0x94, 0xb1, 0x52, 0x97, - 0x15, 0x68, 0x97, 0x5d, 0xce, 0x77, 0x1b, 0xd9, 0xe5, 0xa2, 0x9e, 0x70, 0x02, 0xab, 0xae, 0x8a, - 0x79, 0xe8, 0x56, 0x02, 0x53, 0x05, 0x20, 0x6e, 0x6c, 0x94, 0x33, 0xf9, 0x79, 0x7d, 0x15, 0x4f, - 0xd2, 0xf3, 0x8a, 0xa0, 0xcd, 0xd8, 0x28, 0x67, 0x92, 0xf0, 0x71, 0xfb, 0xf3, 0xa5, 0x6d, 0xfe, - 0x49, 0xfa, 0x01, 0xfb, 0x7d, 0x31, 0xc7, 0xbe, 0x37, 0xdf, 0xff, 0x2f, 0x00, 0x00, 0xff, 0xff, - 0x77, 0xc5, 0xd1, 0xfe, 0xae, 0x16, 0x00, 0x00, +func init() { proto.RegisterFile("group/group.proto", fileDescriptor_group_95297d6a59bab850) } + +var fileDescriptor_group_95297d6a59bab850 = []byte{ + // 1464 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x58, 0xcd, 0x6f, 0x1b, 0x45, + 0x14, 0xd7, 0xfa, 0x23, 0x8d, 0x5f, 0xbe, 0x9c, 0x69, 0x93, 0x2e, 0xdb, 0x50, 0xb9, 0x2b, 0x54, + 0x45, 0x15, 0x4a, 0xa4, 0x14, 0x21, 0xa1, 0x46, 0xa8, 0x69, 0x3e, 0x5a, 0x03, 0x71, 0xd4, 0x8d, + 0x7b, 0xe1, 0x12, 0xb6, 0xde, 0x89, 0xb5, 0x78, 0xbd, 0xbb, 0xde, 0x59, 0x93, 0x96, 0x0b, 0x20, + 0x04, 0x1c, 0x10, 0xa2, 0x57, 0x8e, 0x5c, 0x38, 0x22, 0x0e, 0xdc, 0x39, 0xf0, 0x8f, 0xa1, 0xf9, + 0xd8, 0xf5, 0xec, 0xa7, 0x2d, 0x47, 0xa2, 0x17, 0xcb, 0xf3, 0xde, 0x9b, 0x79, 0x1f, 0xf3, 0xde, + 0xef, 0xbd, 0x59, 0x58, 0xef, 0x07, 0xde, 0xd8, 0xdf, 0x65, 0xbf, 0x3b, 0x7e, 0xe0, 0x85, 0x1e, + 0xaa, 0xb3, 0x85, 0x76, 0xef, 0xcc, 0xc7, 0xee, 0x45, 0xfb, 0x74, 0xd7, 0x1f, 0xf4, 0x77, 0x19, + 0x67, 0x97, 0x58, 0x83, 0x8b, 0x2b, 0xb2, 0x7b, 0x45, 0xb8, 0xa4, 0xfe, 0x31, 0xc0, 0xa1, 0x37, + 0x1c, 0x7a, 0xae, 0x81, 0x89, 0x8f, 0x54, 0xb8, 0x71, 0x1c, 0x04, 0x87, 0x9e, 0x85, 0x55, 0xa5, + 0xa5, 0x6c, 0xd7, 0x8d, 0x68, 0x89, 0x36, 0x61, 0xe1, 0x38, 0x08, 0x4e, 0x49, 0x5f, 0xad, 0xb4, + 0x94, 0xed, 0x86, 0x21, 0x56, 0xfa, 0x63, 0x40, 0x4f, 0xa9, 0xae, 0x03, 0xcb, 0x3a, 0xc5, 0xc3, + 0x97, 0x38, 0x68, 0xbb, 0x97, 0x1e, 0x95, 0x7e, 0x41, 0x70, 0xd0, 0x3e, 0x62, 0xc7, 0x34, 0x0c, + 0xb1, 0x42, 0x08, 0x6a, 0x86, 0xe7, 0x60, 0x76, 0x46, 0xdd, 0x60, 0xff, 0xf5, 0x7f, 0x2b, 0xb0, + 0x7a, 0x18, 0x60, 0x33, 0xc4, 0xec, 0x20, 0x03, 0x8f, 0xd0, 0x01, 0xac, 0xb6, 0x5d, 0x3b, 0xe4, + 0x07, 0x7e, 0x66, 0x93, 0x50, 0x55, 0x5a, 0xd5, 0xed, 0xa5, 0xbd, 0x77, 0x76, 0xb8, 0x93, 0x59, + 0x8d, 0x46, 0x6a, 0x03, 0xda, 0x82, 0x06, 0x93, 0xea, 0x98, 0x43, 0x2c, 0x4c, 0x9e, 0x10, 0x90, + 0x0e, 0xcb, 0x6d, 0x37, 0x0c, 0x3c, 0x6b, 0xdc, 0x0b, 0x6d, 0xcf, 0x55, 0xab, 0x4c, 0x20, 0x41, + 0xa3, 0x32, 0x1d, 0x2f, 0xb4, 0x2f, 0xed, 0x9e, 0xc9, 0x64, 0x6a, 0x5c, 0x46, 0xa6, 0xd1, 0x78, + 0x9d, 0x98, 0x3d, 0xfc, 0x22, 0x70, 0xd4, 0x3a, 0x63, 0x47, 0x4b, 0xd4, 0x84, 0xea, 0xf1, 0xab, + 0x50, 0x5d, 0x60, 0x54, 0xfa, 0x17, 0xb5, 0x60, 0xe9, 0xcc, 0xc7, 0x01, 0xdb, 0xd8, 0x3e, 0x52, + 0x6f, 0x30, 0x8e, 0x4c, 0x42, 0x1a, 0x2c, 0x9e, 0xf9, 0x22, 0x6e, 0x8b, 0x8c, 0x1d, 0xaf, 0xd1, + 0x5d, 0x80, 0x93, 0xc0, 0x1b, 0x0a, 0x6e, 0x83, 0x71, 0x25, 0x8a, 0xfe, 0x1a, 0xd6, 0x12, 0x41, + 0x9c, 0xe7, 0x32, 0xd1, 0x07, 0x22, 0x68, 0x34, 0xa2, 0x2c, 0x26, 0x4b, 0x7b, 0x9b, 0x3b, 0x1e, + 0xcd, 0x21, 0x7b, 0x78, 0x41, 0xac, 0xc1, 0x4e, 0xcc, 0x35, 0x26, 0x82, 0x7a, 0x00, 0xcd, 0xa7, + 0x38, 0x64, 0x6b, 0xc2, 0x78, 0x78, 0x44, 0x9d, 0xe5, 0x02, 0x47, 0xf1, 0xf5, 0x35, 0x0c, 0x99, + 0x94, 0x0e, 0x47, 0xa5, 0x3c, 0x1c, 0xd5, 0x64, 0x38, 0xf4, 0xef, 0x15, 0x58, 0x4f, 0x29, 0x9d, + 0xcb, 0xe3, 0x7d, 0x58, 0x89, 0x1d, 0x61, 0x96, 0x56, 0x59, 0xa2, 0x15, 0x79, 0x9d, 0x14, 0xd6, + 0x7f, 0x50, 0x60, 0xed, 0x5c, 0x58, 0x11, 0x79, 0x9e, 0x88, 0xa1, 0x32, 0x63, 0x0c, 0x13, 0xbe, + 0x56, 0x52, 0x57, 0x9f, 0x8a, 0x54, 0x35, 0x13, 0x29, 0xfd, 0x6b, 0xd0, 0xa2, 0x60, 0x1c, 0xf8, + 0xbe, 0x23, 0xb2, 0x93, 0x9a, 0x48, 0x2d, 0x92, 0xcf, 0x56, 0xca, 0xcf, 0xce, 0xb9, 0x85, 0x64, + 0xe2, 0x55, 0x33, 0x89, 0xf7, 0x5b, 0x0d, 0xee, 0x15, 0x28, 0xbf, 0x38, 0x32, 0x43, 0xf3, 0x82, + 0xca, 0xa1, 0x55, 0xa8, 0xc4, 0xda, 0x2b, 0xed, 0x23, 0x7a, 0x53, 0x22, 0x19, 0x84, 0xce, 0x68, + 0x39, 0x4d, 0x1f, 0xf5, 0xa6, 0xeb, 0x09, 0x2e, 0x2f, 0xc9, 0x78, 0x4d, 0xe1, 0xe5, 0xc4, 0x31, + 0xfb, 0xac, 0x16, 0xeb, 0x06, 0xfb, 0x4f, 0xcf, 0x33, 0xf0, 0x68, 0x8c, 0x49, 0x48, 0x6f, 0x9f, + 0xd7, 0xa3, 0x44, 0xa1, 0xfc, 0x67, 0xa6, 0x6b, 0x39, 0xd8, 0xa2, 0x7c, 0x5e, 0x95, 0x12, 0x85, + 0x5a, 0x7a, 0x60, 0x59, 0x5d, 0x7b, 0x88, 0x59, 0x4d, 0x56, 0x8d, 0x68, 0x89, 0x1e, 0x40, 0x33, + 0xb2, 0xab, 0x63, 0xf7, 0x06, 0x2e, 0x45, 0x1a, 0x5e, 0x98, 0x19, 0x3a, 0xba, 0x0f, 0xab, 0xdc, + 0xca, 0x58, 0x12, 0x98, 0x64, 0x8a, 0x8a, 0xb6, 0x61, 0x2d, 0xda, 0x1b, 0x01, 0xcb, 0x12, 0x13, + 0x4c, 0x93, 0xd1, 0x7b, 0xb0, 0xc2, 0xf7, 0x46, 0x72, 0xcb, 0x4c, 0x2e, 0x49, 0xa4, 0xf7, 0x2b, + 0x7c, 0xa1, 0x54, 0x75, 0x85, 0xdf, 0xaf, 0x44, 0xa2, 0x31, 0xeb, 0xbe, 0xf6, 0xb1, 0xba, 0xca, + 0x63, 0x46, 0xff, 0x53, 0xe8, 0xe3, 0x22, 0xe7, 0xa1, 0x19, 0x8e, 0x89, 0xba, 0xc6, 0x78, 0x09, + 0xda, 0x44, 0xc6, 0xc0, 0x64, 0xec, 0x84, 0x6a, 0x53, 0x96, 0xe1, 0x34, 0x7d, 0x04, 0x77, 0x0a, + 0x52, 0x83, 0x66, 0x06, 0xba, 0x05, 0xf5, 0x43, 0x6f, 0xec, 0x86, 0xa2, 0x58, 0xf9, 0x02, 0xed, + 0x43, 0x8d, 0xd9, 0x5a, 0x61, 0x95, 0xb8, 0x1d, 0x41, 0xfe, 0xb4, 0x14, 0x33, 0xd8, 0x2e, 0xfd, + 0x27, 0xa5, 0x50, 0xe7, 0x9c, 0x10, 0xf1, 0x21, 0xd4, 0xa8, 0x12, 0x81, 0x87, 0x7a, 0xb9, 0x3d, + 0x54, 0xd2, 0x60, 0xf2, 0xfa, 0x3f, 0x0a, 0x6c, 0x74, 0x03, 0xd3, 0x25, 0x97, 0x38, 0x60, 0xa2, + 0x67, 0x57, 0x2e, 0x0e, 0x68, 0x41, 0x4a, 0xc9, 0xaf, 0x24, 0x93, 0xff, 0x3e, 0xac, 0x9e, 0x39, + 0x16, 0x13, 0x4c, 0x80, 0x41, 0x8a, 0x4a, 0xe5, 0x3a, 0xf8, 0x4a, 0x96, 0xe3, 0x85, 0x92, 0xa2, + 0xa6, 0xcb, 0xbb, 0x56, 0x0e, 0xb2, 0xf5, 0x14, 0xc8, 0xfe, 0xa8, 0xc0, 0xf2, 0x27, 0x9e, 0xed, + 0xc6, 0x7d, 0xb9, 0xd8, 0x70, 0x5e, 0x65, 0xa7, 0x98, 0x10, 0xb3, 0x1f, 0xf5, 0x5b, 0x89, 0x52, + 0x86, 0xe5, 0xd3, 0x8d, 0xd4, 0x7f, 0xad, 0xc0, 0x9d, 0x74, 0xb4, 0xe9, 0x6d, 0x7a, 0x2e, 0xc1, + 0xa2, 0xdb, 0xc8, 0x27, 0x28, 0xe5, 0x6e, 0xa6, 0xf1, 0x55, 0xf2, 0xaa, 0x5a, 0x86, 0x45, 0xb5, + 0x52, 0x2c, 0xaa, 0xa7, 0xb0, 0x48, 0xc2, 0x8d, 0x85, 0x24, 0x6e, 0x4c, 0x43, 0x9c, 0x74, 0x65, + 0x2d, 0xe6, 0x54, 0xd6, 0x9f, 0x0a, 0xa8, 0xe7, 0x38, 0x64, 0x77, 0xcd, 0xc7, 0x1a, 0xbb, 0x37, + 0xa0, 0xa3, 0x4d, 0xf9, 0x35, 0x69, 0xb0, 0x18, 0x03, 0x90, 0x08, 0x43, 0x0c, 0x3d, 0x53, 0xdb, + 0xcc, 0x2c, 0xe1, 0x28, 0xcc, 0xa5, 0x4b, 0x58, 0x7e, 0x3e, 0xb6, 0xc3, 0x19, 0x52, 0xe9, 0x7a, + 0x83, 0xc1, 0xef, 0x0a, 0x6c, 0x44, 0xb5, 0x39, 0x19, 0x07, 0xa7, 0x46, 0x65, 0xfe, 0xe6, 0x4b, + 0x71, 0xe3, 0xc4, 0x76, 0x42, 0x1c, 0xb0, 0x88, 0xd4, 0x0d, 0xb1, 0xa2, 0xfa, 0x3a, 0xf8, 0x55, + 0x78, 0x8e, 0x47, 0xa2, 0x1f, 0x45, 0x4b, 0xfd, 0x0f, 0x05, 0x36, 0xf3, 0x6c, 0x9c, 0x0b, 0x9e, + 0x1e, 0x03, 0x0c, 0x27, 0x73, 0x32, 0x1f, 0x5f, 0x5a, 0xd9, 0x81, 0x83, 0xeb, 0x39, 0x19, 0x3b, + 0x0e, 0x1b, 0x3d, 0xa4, 0x3d, 0x54, 0xa7, 0x2b, 0x0c, 0xe5, 0x1e, 0x44, 0x4b, 0xfd, 0x4d, 0xc6, + 0xd0, 0x78, 0xc0, 0x2b, 0x85, 0x02, 0xc9, 0xa0, 0x0a, 0x9b, 0xfc, 0x64, 0x75, 0xd7, 0x83, 0x82, + 0x5f, 0x14, 0xb8, 0x9d, 0x6b, 0xd2, 0xdb, 0x09, 0x9e, 0xfe, 0x97, 0x02, 0xe8, 0x53, 0xbb, 0x37, + 0x90, 0xe4, 0xca, 0xc3, 0xf3, 0x00, 0x9a, 0x54, 0x9e, 0x77, 0x5f, 0x31, 0x1e, 0xf3, 0x20, 0x65, + 0xe8, 0xd4, 0x6c, 0x03, 0x9b, 0x24, 0x7e, 0xa0, 0x88, 0x55, 0x3a, 0x4c, 0xf5, 0xf2, 0x12, 0x59, + 0x48, 0x95, 0xc8, 0x23, 0x68, 0xb4, 0xad, 0x3d, 0x0e, 0x24, 0x85, 0x2f, 0x35, 0xa6, 0x9a, 0xc1, + 0x0f, 0x7f, 0xab, 0x89, 0x95, 0xfe, 0x0d, 0xdc, 0xcc, 0xb8, 0x3b, 0x67, 0x5b, 0x5d, 0x89, 0xad, + 0x90, 0xa2, 0xdf, 0x14, 0xfd, 0x35, 0xe6, 0x19, 0x49, 0x31, 0x7d, 0xcc, 0xea, 0x9b, 0xb6, 0x25, + 0x6c, 0x31, 0x2b, 0xa2, 0xfa, 0x4e, 0xa2, 0x93, 0x92, 0x41, 0xa7, 0x16, 0x2c, 0x79, 0x59, 0x5c, + 0xf1, 0x66, 0xc4, 0x95, 0x6f, 0x79, 0x29, 0x64, 0xf4, 0x5e, 0xeb, 0x9d, 0x35, 0xc3, 0x8b, 0x63, + 0x22, 0xa8, 0xff, 0xad, 0xc0, 0xad, 0xb6, 0xfb, 0x95, 0x1d, 0x62, 0x6a, 0x53, 0xd7, 0x8b, 0xb1, + 0x74, 0x3a, 0x62, 0x16, 0xb7, 0xb8, 0x49, 0x8a, 0xd5, 0x12, 0x29, 0xf6, 0x3e, 0xac, 0x73, 0x5d, + 0x72, 0x9e, 0xd6, 0x59, 0x9e, 0x66, 0x19, 0xa5, 0xe9, 0xf6, 0x9d, 0x02, 0x1b, 0x39, 0x66, 0xff, + 0xaf, 0x49, 0xe3, 0xc2, 0xad, 0x78, 0x60, 0x73, 0x9c, 0x59, 0xca, 0xf4, 0x7a, 0x0f, 0xb2, 0x9f, + 0xa5, 0x2e, 0x24, 0x29, 0x7c, 0x3b, 0x18, 0xb5, 0xf7, 0x66, 0x11, 0xf8, 0x07, 0x21, 0xb4, 0x0f, + 0x4b, 0xbd, 0xc9, 0x57, 0x02, 0xb4, 0x21, 0xe2, 0x96, 0xfc, 0xfc, 0xa2, 0x6d, 0xe6, 0x91, 0x89, + 0x8f, 0x1e, 0x42, 0xe3, 0xcb, 0x68, 0x1c, 0x44, 0x37, 0x85, 0x90, 0x3c, 0x20, 0x6a, 0xeb, 0xd1, + 0xce, 0xc9, 0x27, 0xa5, 0x87, 0xd0, 0x18, 0x45, 0x8d, 0x3f, 0xde, 0x24, 0x8f, 0x02, 0x79, 0x9b, + 0x9e, 0xc0, 0x4a, 0x5f, 0x7e, 0xdd, 0xa3, 0xdb, 0xa9, 0xb1, 0x3b, 0xea, 0x43, 0x9a, 0x9a, 0xcf, + 0x20, 0x3e, 0xfa, 0x08, 0x96, 0x89, 0xf4, 0x36, 0x47, 0x91, 0x57, 0xa9, 0x07, 0x7b, 0x9e, 0xfa, + 0x2f, 0xe0, 0x76, 0x3f, 0x7f, 0xbe, 0x47, 0xf7, 0xca, 0xe7, 0x7f, 0x7a, 0xa0, 0x3e, 0x4d, 0x84, + 0xf8, 0xe8, 0x18, 0x50, 0x98, 0x79, 0x1b, 0xa0, 0x2d, 0xb1, 0x33, 0xf7, 0xd9, 0x90, 0x67, 0xe8, + 0x73, 0x50, 0xfb, 0x05, 0x73, 0x31, 0xd2, 0x13, 0x1f, 0xcb, 0x72, 0x07, 0xe7, 0xfc, 0x23, 0x51, + 0x3f, 0x33, 0x9b, 0xc4, 0x96, 0xe5, 0x8e, 0x56, 0xda, 0xbb, 0x25, 0x5c, 0xe2, 0xa3, 0x2e, 0xdc, + 0xec, 0x67, 0x5b, 0x36, 0xca, 0xdf, 0x15, 0xdf, 0xec, 0xdd, 0x32, 0x36, 0xf1, 0xd1, 0x33, 0x58, + 0x1b, 0x24, 0x3b, 0x11, 0x8a, 0xbe, 0x0f, 0x66, 0x1b, 0xb2, 0xa6, 0x15, 0xb1, 0x62, 0x97, 0x53, + 0xd0, 0x2e, 0xbb, 0x9c, 0xed, 0x36, 0xb2, 0xcb, 0x79, 0x3d, 0xa1, 0x03, 0xeb, 0x76, 0x1a, 0xf3, + 0xd0, 0x9d, 0x08, 0xa6, 0x72, 0x40, 0x5c, 0xdb, 0x2a, 0x66, 0xf2, 0xf3, 0xfa, 0x69, 0x3c, 0x89, + 0xcf, 0xcb, 0x83, 0x36, 0x6d, 0xab, 0x98, 0x49, 0xfc, 0x27, 0x6b, 0x9f, 0xaf, 0xec, 0xf0, 0x2f, + 0xc6, 0x8f, 0xd8, 0xef, 0xcb, 0x05, 0xf6, 0x39, 0xf8, 0xe1, 0x7f, 0x01, 0x00, 0x00, 0xff, 0xff, + 0x22, 0xaf, 0xfb, 0xc7, 0x4d, 0x16, 0x00, 0x00, } diff --git a/pkg/proto/sdk_ws/ws.pb.go b/pkg/proto/sdk_ws/ws.pb.go index 6809ce398..979e03888 100644 --- a/pkg/proto/sdk_ws/ws.pb.go +++ b/pkg/proto/sdk_ws/ws.pb.go @@ -34,7 +34,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_3380b8a9bc5ee255, []int{0} + return fileDescriptor_ws_1ed69884ac12b8b9, []int{0} } func (m *PullMessageBySeqListResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_PullMessageBySeqListResp.Unmarshal(m, b) @@ -109,7 +109,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_3380b8a9bc5ee255, []int{1} + return fileDescriptor_ws_1ed69884ac12b8b9, []int{1} } func (m *PullMessageBySeqListReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_PullMessageBySeqListReq.Unmarshal(m, b) @@ -164,7 +164,7 @@ func (m *PullMessageReq) Reset() { *m = PullMessageReq{} } func (m *PullMessageReq) String() string { return proto.CompactTextString(m) } func (*PullMessageReq) ProtoMessage() {} func (*PullMessageReq) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_3380b8a9bc5ee255, []int{2} + return fileDescriptor_ws_1ed69884ac12b8b9, []int{2} } func (m *PullMessageReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_PullMessageReq.Unmarshal(m, b) @@ -228,7 +228,7 @@ func (m *PullMessageResp) Reset() { *m = PullMessageResp{} } func (m *PullMessageResp) String() string { return proto.CompactTextString(m) } func (*PullMessageResp) ProtoMessage() {} func (*PullMessageResp) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_3380b8a9bc5ee255, []int{3} + return fileDescriptor_ws_1ed69884ac12b8b9, []int{3} } func (m *PullMessageResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_PullMessageResp.Unmarshal(m, b) @@ -300,7 +300,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_3380b8a9bc5ee255, []int{4} + return fileDescriptor_ws_1ed69884ac12b8b9, []int{4} } func (m *GetMaxAndMinSeqReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetMaxAndMinSeqReq.Unmarshal(m, b) @@ -332,7 +332,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_3380b8a9bc5ee255, []int{5} + return fileDescriptor_ws_1ed69884ac12b8b9, []int{5} } func (m *GetMaxAndMinSeqResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetMaxAndMinSeqResp.Unmarshal(m, b) @@ -380,7 +380,7 @@ func (m *GatherFormat) Reset() { *m = GatherFormat{} } func (m *GatherFormat) String() string { return proto.CompactTextString(m) } func (*GatherFormat) ProtoMessage() {} func (*GatherFormat) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_3380b8a9bc5ee255, []int{6} + return fileDescriptor_ws_1ed69884ac12b8b9, []int{6} } func (m *GatherFormat) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GatherFormat.Unmarshal(m, b) @@ -427,7 +427,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_3380b8a9bc5ee255, []int{7} + return fileDescriptor_ws_1ed69884ac12b8b9, []int{7} } func (m *UserSendMsgResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_UserSendMsgResp.Unmarshal(m, b) @@ -496,7 +496,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_3380b8a9bc5ee255, []int{8} + return fileDescriptor_ws_1ed69884ac12b8b9, []int{8} } func (m *MsgData) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MsgData.Unmarshal(m, b) @@ -657,7 +657,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_3380b8a9bc5ee255, []int{9} + return fileDescriptor_ws_1ed69884ac12b8b9, []int{9} } func (m *OfflinePushInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_OfflinePushInfo.Unmarshal(m, b) @@ -732,7 +732,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_3380b8a9bc5ee255, []int{10} + return fileDescriptor_ws_1ed69884ac12b8b9, []int{10} } func (m *GroupInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupInfo.Unmarshal(m, b) @@ -834,7 +834,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_3380b8a9bc5ee255, []int{11} + return fileDescriptor_ws_1ed69884ac12b8b9, []int{11} } func (m *GroupMemberFullInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupMemberFullInfo.Unmarshal(m, b) @@ -929,7 +929,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_3380b8a9bc5ee255, []int{12} + return fileDescriptor_ws_1ed69884ac12b8b9, []int{12} } func (m *UserInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_UserInfo.Unmarshal(m, b) @@ -1020,7 +1020,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_3380b8a9bc5ee255, []int{13} + return fileDescriptor_ws_1ed69884ac12b8b9, []int{13} } func (m *PublicUserInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_PublicUserInfo.Unmarshal(m, b) @@ -1080,7 +1080,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_3380b8a9bc5ee255, []int{14} + return fileDescriptor_ws_1ed69884ac12b8b9, []int{14} } func (m *TipsComm) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_TipsComm.Unmarshal(m, b) @@ -1129,7 +1129,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_3380b8a9bc5ee255, []int{15} + return fileDescriptor_ws_1ed69884ac12b8b9, []int{15} } func (m *MemberEnterTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MemberEnterTips.Unmarshal(m, b) @@ -1184,7 +1184,7 @@ func (m *MemberLeaveTips) Reset() { *m = MemberLeaveTips{} } func (m *MemberLeaveTips) String() string { return proto.CompactTextString(m) } func (*MemberLeaveTips) ProtoMessage() {} func (*MemberLeaveTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_3380b8a9bc5ee255, []int{16} + return fileDescriptor_ws_1ed69884ac12b8b9, []int{16} } func (m *MemberLeaveTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MemberLeaveTips.Unmarshal(m, b) @@ -1226,20 +1226,20 @@ func (m *MemberLeaveTips) GetOperationTime() uint64 { } type MemberInvitedTips struct { - Group *GroupInfo `protobuf:"bytes,1,opt,name=Group" json:"Group,omitempty"` - OpUser *GroupMemberFullInfo `protobuf:"bytes,2,opt,name=OpUser" json:"OpUser,omitempty"` - InvitedUser *GroupMemberFullInfo `protobuf:"bytes,3,opt,name=InvitedUser" json:"InvitedUser,omitempty"` - OperationTime uint64 `protobuf:"varint,4,opt,name=OperationTime" json:"OperationTime,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + Group *GroupInfo `protobuf:"bytes,1,opt,name=Group" json:"Group,omitempty"` + OpUser *GroupMemberFullInfo `protobuf:"bytes,2,opt,name=OpUser" json:"OpUser,omitempty"` + InvitedUserList []*GroupMemberFullInfo `protobuf:"bytes,3,rep,name=InvitedUserList" json:"InvitedUserList,omitempty"` + OperationTime uint64 `protobuf:"varint,4,opt,name=OperationTime" json:"OperationTime,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } 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_3380b8a9bc5ee255, []int{17} + return fileDescriptor_ws_1ed69884ac12b8b9, []int{17} } func (m *MemberInvitedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MemberInvitedTips.Unmarshal(m, b) @@ -1273,9 +1273,9 @@ func (m *MemberInvitedTips) GetOpUser() *GroupMemberFullInfo { return nil } -func (m *MemberInvitedTips) GetInvitedUser() *GroupMemberFullInfo { +func (m *MemberInvitedTips) GetInvitedUserList() []*GroupMemberFullInfo { if m != nil { - return m.InvitedUser + return m.InvitedUserList } return nil } @@ -1288,20 +1288,20 @@ func (m *MemberInvitedTips) GetOperationTime() uint64 { } type MemberKickedTips struct { - Group *GroupInfo `protobuf:"bytes,1,opt,name=Group" json:"Group,omitempty"` - OpUser *GroupMemberFullInfo `protobuf:"bytes,2,opt,name=OpUser" json:"OpUser,omitempty"` - KickedUser *GroupMemberFullInfo `protobuf:"bytes,3,opt,name=KickedUser" json:"KickedUser,omitempty"` - OperationTime uint64 `protobuf:"varint,4,opt,name=OperationTime" json:"OperationTime,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + Group *GroupInfo `protobuf:"bytes,1,opt,name=Group" json:"Group,omitempty"` + OpUser *GroupMemberFullInfo `protobuf:"bytes,2,opt,name=OpUser" json:"OpUser,omitempty"` + KickedUserList []*GroupMemberFullInfo `protobuf:"bytes,3,rep,name=KickedUserList" json:"KickedUserList,omitempty"` + OperationTime uint64 `protobuf:"varint,4,opt,name=OperationTime" json:"OperationTime,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } 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_3380b8a9bc5ee255, []int{18} + return fileDescriptor_ws_1ed69884ac12b8b9, []int{18} } func (m *MemberKickedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MemberKickedTips.Unmarshal(m, b) @@ -1335,9 +1335,9 @@ func (m *MemberKickedTips) GetOpUser() *GroupMemberFullInfo { return nil } -func (m *MemberKickedTips) GetKickedUser() *GroupMemberFullInfo { +func (m *MemberKickedTips) GetKickedUserList() []*GroupMemberFullInfo { if m != nil { - return m.KickedUser + return m.KickedUserList } return nil } @@ -1364,7 +1364,7 @@ func (m *MemberInfoChangedTips) Reset() { *m = MemberInfoChangedTips{} } func (m *MemberInfoChangedTips) String() string { return proto.CompactTextString(m) } func (*MemberInfoChangedTips) ProtoMessage() {} func (*MemberInfoChangedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_3380b8a9bc5ee255, []int{19} + return fileDescriptor_ws_1ed69884ac12b8b9, []int{19} } func (m *MemberInfoChangedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MemberInfoChangedTips.Unmarshal(m, b) @@ -1433,7 +1433,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_3380b8a9bc5ee255, []int{20} + return fileDescriptor_ws_1ed69884ac12b8b9, []int{20} } func (m *GroupCreatedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupCreatedTips.Unmarshal(m, b) @@ -1494,7 +1494,7 @@ func (m *GroupInfoChangedTips) Reset() { *m = GroupInfoChangedTips{} } func (m *GroupInfoChangedTips) String() string { return proto.CompactTextString(m) } func (*GroupInfoChangedTips) ProtoMessage() {} func (*GroupInfoChangedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_3380b8a9bc5ee255, []int{21} + return fileDescriptor_ws_1ed69884ac12b8b9, []int{21} } func (m *GroupInfoChangedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupInfoChangedTips.Unmarshal(m, b) @@ -1535,7 +1535,7 @@ func (m *GroupInfoChangedTips) GetOpUser() *GroupMemberFullInfo { return nil } -type ReceiveJoinApplicationTips struct { +type JoinGroupApplicationTips struct { Group *GroupInfo `protobuf:"bytes,1,opt,name=Group" json:"Group,omitempty"` Applicant *PublicUserInfo `protobuf:"bytes,2,opt,name=Applicant" json:"Applicant,omitempty"` Reason string `protobuf:"bytes,3,opt,name=Reason" json:"Reason,omitempty"` @@ -1544,45 +1544,45 @@ type ReceiveJoinApplicationTips struct { XXX_sizecache int32 `json:"-"` } -func (m *ReceiveJoinApplicationTips) Reset() { *m = ReceiveJoinApplicationTips{} } -func (m *ReceiveJoinApplicationTips) String() string { return proto.CompactTextString(m) } -func (*ReceiveJoinApplicationTips) ProtoMessage() {} -func (*ReceiveJoinApplicationTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_3380b8a9bc5ee255, []int{22} +func (m *JoinGroupApplicationTips) Reset() { *m = JoinGroupApplicationTips{} } +func (m *JoinGroupApplicationTips) String() string { return proto.CompactTextString(m) } +func (*JoinGroupApplicationTips) ProtoMessage() {} +func (*JoinGroupApplicationTips) Descriptor() ([]byte, []int) { + return fileDescriptor_ws_1ed69884ac12b8b9, []int{22} } -func (m *ReceiveJoinApplicationTips) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_ReceiveJoinApplicationTips.Unmarshal(m, b) +func (m *JoinGroupApplicationTips) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_JoinGroupApplicationTips.Unmarshal(m, b) } -func (m *ReceiveJoinApplicationTips) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_ReceiveJoinApplicationTips.Marshal(b, m, deterministic) +func (m *JoinGroupApplicationTips) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_JoinGroupApplicationTips.Marshal(b, m, deterministic) } -func (dst *ReceiveJoinApplicationTips) XXX_Merge(src proto.Message) { - xxx_messageInfo_ReceiveJoinApplicationTips.Merge(dst, src) +func (dst *JoinGroupApplicationTips) XXX_Merge(src proto.Message) { + xxx_messageInfo_JoinGroupApplicationTips.Merge(dst, src) } -func (m *ReceiveJoinApplicationTips) XXX_Size() int { - return xxx_messageInfo_ReceiveJoinApplicationTips.Size(m) +func (m *JoinGroupApplicationTips) XXX_Size() int { + return xxx_messageInfo_JoinGroupApplicationTips.Size(m) } -func (m *ReceiveJoinApplicationTips) XXX_DiscardUnknown() { - xxx_messageInfo_ReceiveJoinApplicationTips.DiscardUnknown(m) +func (m *JoinGroupApplicationTips) XXX_DiscardUnknown() { + xxx_messageInfo_JoinGroupApplicationTips.DiscardUnknown(m) } -var xxx_messageInfo_ReceiveJoinApplicationTips proto.InternalMessageInfo +var xxx_messageInfo_JoinGroupApplicationTips proto.InternalMessageInfo -func (m *ReceiveJoinApplicationTips) GetGroup() *GroupInfo { +func (m *JoinGroupApplicationTips) GetGroup() *GroupInfo { if m != nil { return m.Group } return nil } -func (m *ReceiveJoinApplicationTips) GetApplicant() *PublicUserInfo { +func (m *JoinGroupApplicationTips) GetApplicant() *PublicUserInfo { if m != nil { return m.Applicant } return nil } -func (m *ReceiveJoinApplicationTips) GetReason() string { +func (m *JoinGroupApplicationTips) GetReason() string { if m != nil { return m.Reason } @@ -1603,7 +1603,7 @@ func (m *ApplicationProcessedTips) Reset() { *m = ApplicationProcessedTi func (m *ApplicationProcessedTips) String() string { return proto.CompactTextString(m) } func (*ApplicationProcessedTips) ProtoMessage() {} func (*ApplicationProcessedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_3380b8a9bc5ee255, []int{23} + return fileDescriptor_ws_1ed69884ac12b8b9, []int{23} } func (m *ApplicationProcessedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ApplicationProcessedTips.Unmarshal(m, b) @@ -1666,7 +1666,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_3380b8a9bc5ee255, []int{24} + return fileDescriptor_ws_1ed69884ac12b8b9, []int{24} } func (m *FriendInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FriendInfo.Unmarshal(m, b) @@ -1727,7 +1727,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_3380b8a9bc5ee255, []int{25} + return fileDescriptor_ws_1ed69884ac12b8b9, []int{25} } func (m *FriendApplication) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FriendApplication.Unmarshal(m, b) @@ -1768,22 +1768,65 @@ func (m *FriendApplication) GetAddWording() string { return "" } -// user1 add user2 +type FromToUserID struct { + FromUserID string `protobuf:"bytes,1,opt,name=FromUserID" json:"FromUserID,omitempty"` + ToUserID string `protobuf:"bytes,2,opt,name=ToUserID" json:"ToUserID,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +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_1ed69884ac12b8b9, []int{26} +} +func (m *FromToUserID) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_FromToUserID.Unmarshal(m, b) +} +func (m *FromToUserID) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_FromToUserID.Marshal(b, m, deterministic) +} +func (dst *FromToUserID) XXX_Merge(src proto.Message) { + xxx_messageInfo_FromToUserID.Merge(dst, src) +} +func (m *FromToUserID) XXX_Size() int { + return xxx_messageInfo_FromToUserID.Size(m) +} +func (m *FromToUserID) XXX_DiscardUnknown() { + xxx_messageInfo_FromToUserID.DiscardUnknown(m) +} + +var xxx_messageInfo_FromToUserID proto.InternalMessageInfo + +func (m *FromToUserID) GetFromUserID() string { + if m != nil { + return m.FromUserID + } + return "" +} + +func (m *FromToUserID) GetToUserID() string { + if m != nil { + return m.ToUserID + } + return "" +} + +// FromUserID apply to add ToUserID type FriendApplicationAddedTips struct { - OpUser *PublicUserInfo `protobuf:"bytes,1,opt,name=OpUser" json:"OpUser,omitempty"` - Application *FriendApplication `protobuf:"bytes,2,opt,name=Application" json:"Application,omitempty"` - OpedUser *PublicUserInfo `protobuf:"bytes,3,opt,name=OpedUser" json:"OpedUser,omitempty"` - OperationTime uint64 `protobuf:"varint,4,opt,name=OperationTime" json:"OperationTime,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + FromToUserID *FromToUserID `protobuf:"bytes,1,opt,name=FromToUserID" json:"FromToUserID,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } func (m *FriendApplicationAddedTips) Reset() { *m = FriendApplicationAddedTips{} } func (m *FriendApplicationAddedTips) String() string { return proto.CompactTextString(m) } func (*FriendApplicationAddedTips) ProtoMessage() {} func (*FriendApplicationAddedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_3380b8a9bc5ee255, []int{26} + return fileDescriptor_ws_1ed69884ac12b8b9, []int{27} } func (m *FriendApplicationAddedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FriendApplicationAddedTips.Unmarshal(m, b) @@ -1803,50 +1846,26 @@ func (m *FriendApplicationAddedTips) XXX_DiscardUnknown() { var xxx_messageInfo_FriendApplicationAddedTips proto.InternalMessageInfo -func (m *FriendApplicationAddedTips) GetOpUser() *PublicUserInfo { +func (m *FriendApplicationAddedTips) GetFromToUserID() *FromToUserID { if m != nil { - return m.OpUser + return m.FromToUserID } return nil } -func (m *FriendApplicationAddedTips) GetApplication() *FriendApplication { - if m != nil { - return m.Application - } - return nil -} - -func (m *FriendApplicationAddedTips) GetOpedUser() *PublicUserInfo { - if m != nil { - return m.OpedUser - } - return nil -} - -func (m *FriendApplicationAddedTips) GetOperationTime() uint64 { - if m != nil { - return m.OperationTime - } - return 0 -} - -// user2 accept or reject +// FromUserID accept or reject ToUserID type FriendApplicationProcessedTips struct { - OpUser *PublicUserInfo `protobuf:"bytes,1,opt,name=OpUser" json:"OpUser,omitempty"` - OpedUser *PublicUserInfo `protobuf:"bytes,2,opt,name=OpedUser" json:"OpedUser,omitempty"` - Result int32 `protobuf:"varint,3,opt,name=result" json:"result,omitempty"` - OperationTime uint64 `protobuf:"varint,4,opt,name=OperationTime" json:"OperationTime,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + FromToUserID *FromToUserID `protobuf:"bytes,1,opt,name=FromToUserID" json:"FromToUserID,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } func (m *FriendApplicationProcessedTips) Reset() { *m = FriendApplicationProcessedTips{} } func (m *FriendApplicationProcessedTips) String() string { return proto.CompactTextString(m) } func (*FriendApplicationProcessedTips) ProtoMessage() {} func (*FriendApplicationProcessedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_3380b8a9bc5ee255, []int{27} + return fileDescriptor_ws_1ed69884ac12b8b9, []int{28} } func (m *FriendApplicationProcessedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FriendApplicationProcessedTips.Unmarshal(m, b) @@ -1866,47 +1885,28 @@ func (m *FriendApplicationProcessedTips) XXX_DiscardUnknown() { var xxx_messageInfo_FriendApplicationProcessedTips proto.InternalMessageInfo -func (m *FriendApplicationProcessedTips) GetOpUser() *PublicUserInfo { +func (m *FriendApplicationProcessedTips) GetFromToUserID() *FromToUserID { if m != nil { - return m.OpUser + return m.FromToUserID } return nil } -func (m *FriendApplicationProcessedTips) GetOpedUser() *PublicUserInfo { - if m != nil { - return m.OpedUser - } - return nil -} - -func (m *FriendApplicationProcessedTips) GetResult() int32 { - if m != nil { - return m.Result - } - return 0 -} - -func (m *FriendApplicationProcessedTips) GetOperationTime() uint64 { - if m != nil { - return m.OperationTime - } - return 0 -} - +// FromUserID Added a friend ToUserID type FriendAddedTips struct { - Friend *FriendInfo `protobuf:"bytes,1,opt,name=Friend" json:"Friend,omitempty"` - OperationTime uint64 `protobuf:"varint,2,opt,name=OperationTime" json:"OperationTime,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + Friend *FriendInfo `protobuf:"bytes,1,opt,name=Friend" json:"Friend,omitempty"` + OperationTime uint64 `protobuf:"varint,2,opt,name=OperationTime" json:"OperationTime,omitempty"` + OpUser *PublicUserInfo `protobuf:"bytes,3,opt,name=OpUser" json:"OpUser,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } 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_3380b8a9bc5ee255, []int{28} + return fileDescriptor_ws_1ed69884ac12b8b9, []int{29} } func (m *FriendAddedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FriendAddedTips.Unmarshal(m, b) @@ -1940,19 +1940,26 @@ func (m *FriendAddedTips) GetOperationTime() uint64 { return 0 } +func (m *FriendAddedTips) GetOpUser() *PublicUserInfo { + if m != nil { + return m.OpUser + } + return nil +} + +// FromUserID deleted a friend ToUserID type FriendDeletedTips struct { - Friend *FriendInfo `protobuf:"bytes,1,opt,name=Friend" json:"Friend,omitempty"` - OperationTime uint64 `protobuf:"varint,2,opt,name=OperationTime" json:"OperationTime,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + FromToUserID *FromToUserID `protobuf:"bytes,1,opt,name=FromToUserID" json:"FromToUserID,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } 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_3380b8a9bc5ee255, []int{29} + return fileDescriptor_ws_1ed69884ac12b8b9, []int{30} } func (m *FriendDeletedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FriendDeletedTips.Unmarshal(m, b) @@ -1972,87 +1979,25 @@ func (m *FriendDeletedTips) XXX_DiscardUnknown() { var xxx_messageInfo_FriendDeletedTips proto.InternalMessageInfo -func (m *FriendDeletedTips) GetFriend() *FriendInfo { +func (m *FriendDeletedTips) GetFromToUserID() *FromToUserID { if m != nil { - return m.Friend - } - return nil -} - -func (m *FriendDeletedTips) GetOperationTime() uint64 { - if m != nil { - return m.OperationTime - } - return 0 -} - -type BlackInfo struct { - OwnerUser *PublicUserInfo `protobuf:"bytes,1,opt,name=OwnerUser" json:"OwnerUser,omitempty"` - CreateTime uint64 `protobuf:"varint,3,opt,name=CreateTime" json:"CreateTime,omitempty"` - BlackUser *PublicUserInfo `protobuf:"bytes,4,opt,name=BlackUser" json:"BlackUser,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -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_3380b8a9bc5ee255, []int{30} -} -func (m *BlackInfo) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_BlackInfo.Unmarshal(m, b) -} -func (m *BlackInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_BlackInfo.Marshal(b, m, deterministic) -} -func (dst *BlackInfo) XXX_Merge(src proto.Message) { - xxx_messageInfo_BlackInfo.Merge(dst, src) -} -func (m *BlackInfo) XXX_Size() int { - return xxx_messageInfo_BlackInfo.Size(m) -} -func (m *BlackInfo) XXX_DiscardUnknown() { - xxx_messageInfo_BlackInfo.DiscardUnknown(m) -} - -var xxx_messageInfo_BlackInfo proto.InternalMessageInfo - -func (m *BlackInfo) GetOwnerUser() *PublicUserInfo { - if m != nil { - return m.OwnerUser - } - return nil -} - -func (m *BlackInfo) GetCreateTime() uint64 { - if m != nil { - return m.CreateTime - } - return 0 -} - -func (m *BlackInfo) GetBlackUser() *PublicUserInfo { - if m != nil { - return m.BlackUser + return m.FromToUserID } return nil } type BlackAddedTips struct { - Black *BlackInfo `protobuf:"bytes,1,opt,name=Black" json:"Black,omitempty"` - OperationTime uint64 `protobuf:"varint,2,opt,name=OperationTime" json:"OperationTime,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + FromToUserID *FromToUserID `protobuf:"bytes,1,opt,name=FromToUserID" json:"FromToUserID,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } 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_3380b8a9bc5ee255, []int{31} + return fileDescriptor_ws_1ed69884ac12b8b9, []int{31} } func (m *BlackAddedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_BlackAddedTips.Unmarshal(m, b) @@ -2072,33 +2017,25 @@ func (m *BlackAddedTips) XXX_DiscardUnknown() { var xxx_messageInfo_BlackAddedTips proto.InternalMessageInfo -func (m *BlackAddedTips) GetBlack() *BlackInfo { +func (m *BlackAddedTips) GetFromToUserID() *FromToUserID { if m != nil { - return m.Black + return m.FromToUserID } return nil } -func (m *BlackAddedTips) GetOperationTime() uint64 { - if m != nil { - return m.OperationTime - } - return 0 -} - type BlackDeletedTips struct { - Black *BlackInfo `protobuf:"bytes,1,opt,name=Black" json:"Black,omitempty"` - OperationTime uint64 `protobuf:"varint,2,opt,name=OperationTime" json:"OperationTime,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + FromToUserID *FromToUserID `protobuf:"bytes,1,opt,name=FromToUserID" json:"FromToUserID,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } 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_3380b8a9bc5ee255, []int{32} + return fileDescriptor_ws_1ed69884ac12b8b9, []int{32} } func (m *BlackDeletedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_BlackDeletedTips.Unmarshal(m, b) @@ -2118,34 +2055,25 @@ func (m *BlackDeletedTips) XXX_DiscardUnknown() { var xxx_messageInfo_BlackDeletedTips proto.InternalMessageInfo -func (m *BlackDeletedTips) GetBlack() *BlackInfo { +func (m *BlackDeletedTips) GetFromToUserID() *FromToUserID { if m != nil { - return m.Black + return m.FromToUserID } return nil } -func (m *BlackDeletedTips) GetOperationTime() uint64 { - if m != nil { - return m.OperationTime - } - return 0 -} - type FriendInfoChangedTips struct { - Friend *FriendInfo `protobuf:"bytes,1,opt,name=Friend" json:"Friend,omitempty"` - OpUser *PublicUserInfo `protobuf:"bytes,2,opt,name=OpUser" json:"OpUser,omitempty"` - OperationTime uint64 `protobuf:"varint,3,opt,name=OperationTime" json:"OperationTime,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + FromToUserID *FromToUserID `protobuf:"bytes,1,opt,name=FromToUserID" json:"FromToUserID,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } 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_3380b8a9bc5ee255, []int{33} + return fileDescriptor_ws_1ed69884ac12b8b9, []int{33} } func (m *FriendInfoChangedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FriendInfoChangedTips.Unmarshal(m, b) @@ -2165,42 +2093,26 @@ func (m *FriendInfoChangedTips) XXX_DiscardUnknown() { var xxx_messageInfo_FriendInfoChangedTips proto.InternalMessageInfo -func (m *FriendInfoChangedTips) GetFriend() *FriendInfo { +func (m *FriendInfoChangedTips) GetFromToUserID() *FromToUserID { if m != nil { - return m.Friend + return m.FromToUserID } return nil } -func (m *FriendInfoChangedTips) GetOpUser() *PublicUserInfo { - if m != nil { - return m.OpUser - } - return nil -} - -func (m *FriendInfoChangedTips) GetOperationTime() uint64 { - if m != nil { - return m.OperationTime - } - return 0 -} - // ////////////////////user///////////////////// type SelfInfoUpdatedTips struct { - SelfUserInfo *UserInfo `protobuf:"bytes,1,opt,name=SelfUserInfo" json:"SelfUserInfo,omitempty"` - OpUser *PublicUserInfo `protobuf:"bytes,2,opt,name=OpUser" json:"OpUser,omitempty"` - OperationTime uint64 `protobuf:"varint,3,opt,name=OperationTime" json:"OperationTime,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + UserID string `protobuf:"bytes,1,opt,name=UserID" json:"UserID,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } func (m *SelfInfoUpdatedTips) Reset() { *m = SelfInfoUpdatedTips{} } func (m *SelfInfoUpdatedTips) String() string { return proto.CompactTextString(m) } func (*SelfInfoUpdatedTips) ProtoMessage() {} func (*SelfInfoUpdatedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_3380b8a9bc5ee255, []int{34} + return fileDescriptor_ws_1ed69884ac12b8b9, []int{34} } func (m *SelfInfoUpdatedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SelfInfoUpdatedTips.Unmarshal(m, b) @@ -2220,25 +2132,11 @@ func (m *SelfInfoUpdatedTips) XXX_DiscardUnknown() { var xxx_messageInfo_SelfInfoUpdatedTips proto.InternalMessageInfo -func (m *SelfInfoUpdatedTips) GetSelfUserInfo() *UserInfo { +func (m *SelfInfoUpdatedTips) GetUserID() string { if m != nil { - return m.SelfUserInfo - } - return nil -} - -func (m *SelfInfoUpdatedTips) GetOpUser() *PublicUserInfo { - if m != nil { - return m.OpUser - } - return nil -} - -func (m *SelfInfoUpdatedTips) GetOperationTime() uint64 { - if m != nil { - return m.OperationTime + return m.UserID } - return 0 + return "" } func init() { @@ -2265,134 +2163,130 @@ func init() { proto.RegisterType((*MemberInfoChangedTips)(nil), "open_im_sdk.MemberInfoChangedTips") proto.RegisterType((*GroupCreatedTips)(nil), "open_im_sdk.GroupCreatedTips") proto.RegisterType((*GroupInfoChangedTips)(nil), "open_im_sdk.GroupInfoChangedTips") - proto.RegisterType((*ReceiveJoinApplicationTips)(nil), "open_im_sdk.ReceiveJoinApplicationTips") + proto.RegisterType((*JoinGroupApplicationTips)(nil), "open_im_sdk.JoinGroupApplicationTips") proto.RegisterType((*ApplicationProcessedTips)(nil), "open_im_sdk.ApplicationProcessedTips") proto.RegisterType((*FriendInfo)(nil), "open_im_sdk.FriendInfo") proto.RegisterType((*FriendApplication)(nil), "open_im_sdk.FriendApplication") + proto.RegisterType((*FromToUserID)(nil), "open_im_sdk.FromToUserID") proto.RegisterType((*FriendApplicationAddedTips)(nil), "open_im_sdk.FriendApplicationAddedTips") proto.RegisterType((*FriendApplicationProcessedTips)(nil), "open_im_sdk.FriendApplicationProcessedTips") proto.RegisterType((*FriendAddedTips)(nil), "open_im_sdk.FriendAddedTips") proto.RegisterType((*FriendDeletedTips)(nil), "open_im_sdk.FriendDeletedTips") - proto.RegisterType((*BlackInfo)(nil), "open_im_sdk.BlackInfo") proto.RegisterType((*BlackAddedTips)(nil), "open_im_sdk.BlackAddedTips") proto.RegisterType((*BlackDeletedTips)(nil), "open_im_sdk.BlackDeletedTips") proto.RegisterType((*FriendInfoChangedTips)(nil), "open_im_sdk.FriendInfoChangedTips") proto.RegisterType((*SelfInfoUpdatedTips)(nil), "open_im_sdk.SelfInfoUpdatedTips") } -func init() { proto.RegisterFile("sdk_ws/ws.proto", fileDescriptor_ws_3380b8a9bc5ee255) } - -var fileDescriptor_ws_3380b8a9bc5ee255 = []byte{ - // 1769 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe4, 0x59, 0x4f, 0x6f, 0x23, 0x4b, - 0x11, 0xd7, 0xf8, 0x5f, 0xec, 0xb2, 0x37, 0xce, 0xce, 0xfe, 0x79, 0xc3, 0xf2, 0xb4, 0x32, 0x23, - 0x84, 0x2c, 0xf4, 0x94, 0x27, 0x12, 0x21, 0x5e, 0x16, 0x01, 0xeb, 0xc4, 0x49, 0x08, 0xc4, 0xeb, - 0x68, 0x9c, 0x88, 0xe3, 0x6a, 0xe2, 0x69, 0x3b, 0x8d, 0xc7, 0x3d, 0x4e, 0xf7, 0xd8, 0xbb, 0xb9, - 0xf0, 0x2d, 0x10, 0x27, 0x24, 0x10, 0x07, 0x84, 0xe0, 0x80, 0x38, 0xf0, 0x11, 0x38, 0xf1, 0x29, - 0x10, 0x7c, 0x01, 0x38, 0xc2, 0x01, 0x75, 0x75, 0xcf, 0x4c, 0x4f, 0x1c, 0x12, 0x27, 0x68, 0xf7, - 0xf2, 0x6e, 0x53, 0x3f, 0x57, 0x75, 0xfd, 0xea, 0x4f, 0xd7, 0xd4, 0x24, 0xd0, 0x14, 0xc1, 0xe4, - 0xed, 0x3b, 0xf1, 0xf9, 0x3b, 0xb1, 0x39, 0xe3, 0x51, 0x1c, 0xd9, 0xf5, 0x68, 0x46, 0xd8, 0x5b, - 0x3a, 0x7d, 0x2b, 0x82, 0x89, 0xfb, 0x1f, 0x0b, 0x9c, 0x93, 0x79, 0x18, 0xf6, 0x88, 0x10, 0xfe, - 0x98, 0xec, 0x5e, 0x0d, 0xc8, 0xe5, 0x31, 0x15, 0xb1, 0x47, 0xc4, 0xcc, 0x76, 0x60, 0x8d, 0x70, - 0xbe, 0x17, 0x05, 0xc4, 0xb1, 0x5a, 0x56, 0xbb, 0xec, 0x25, 0xa2, 0xfd, 0x1c, 0x2a, 0x84, 0xf3, - 0x9e, 0x18, 0x3b, 0x85, 0x96, 0xd5, 0xae, 0x79, 0x5a, 0x92, 0xf8, 0xd4, 0x7f, 0x3f, 0x20, 0x97, - 0x4e, 0xb1, 0x65, 0xb5, 0x8b, 0x9e, 0x96, 0x10, 0xa7, 0x4c, 0xe2, 0x25, 0x8d, 0xa3, 0x64, 0xff, - 0x00, 0x1e, 0x09, 0xca, 0xc6, 0x21, 0x39, 0x13, 0x04, 0x8f, 0x2b, 0xb7, 0x8a, 0xed, 0xfa, 0xd6, - 0x57, 0x36, 0x0d, 0x8e, 0x9b, 0x87, 0x7e, 0x7c, 0x41, 0xf8, 0x41, 0xc4, 0xa7, 0x7e, 0xec, 0xe5, - 0xf5, 0xed, 0xef, 0x41, 0x63, 0xcc, 0xa3, 0xf9, 0x2c, 0xb1, 0xaf, 0xdc, 0x65, 0x9f, 0x53, 0x77, - 0xa7, 0xf0, 0xc9, 0xcd, 0xd1, 0x23, 0xe5, 0xb9, 0x20, 0xfc, 0xa8, 0x8b, 0xb1, 0xd7, 0x3c, 0x2d, - 0xd9, 0x2d, 0x90, 0x09, 0xe4, 0x7e, 0x4c, 0x23, 0x76, 0xd4, 0xd5, 0xf1, 0x9b, 0x90, 0x4c, 0x9b, - 0x50, 0xe7, 0x38, 0xc5, 0x56, 0xb1, 0x5d, 0xf4, 0x12, 0xd1, 0xfd, 0x19, 0xac, 0x1b, 0xee, 0x6e, - 0xf3, 0xf2, 0x02, 0xaa, 0x82, 0x5c, 0xee, 0x92, 0x31, 0x65, 0xe8, 0xa2, 0xe8, 0xa5, 0xb2, 0xb4, - 0x11, 0xe4, 0x72, 0x9f, 0x05, 0x49, 0x92, 0x95, 0x74, 0x9d, 0x59, 0x69, 0x89, 0x99, 0xfb, 0x2f, - 0x0b, 0x9a, 0x39, 0x02, 0x5f, 0x8a, 0x22, 0x3f, 0x05, 0xfb, 0x90, 0xc4, 0x3d, 0xff, 0x7d, 0x87, - 0x05, 0x3d, 0xa4, 0xe4, 0x91, 0x4b, 0x77, 0x1f, 0x9e, 0x2c, 0xa1, 0x62, 0x66, 0x04, 0x67, 0xfd, - 0x8f, 0xe0, 0x0a, 0x66, 0x70, 0xee, 0x0f, 0xa1, 0x61, 0xba, 0xb6, 0xd7, 0xa1, 0x40, 0x03, 0x5d, - 0xcc, 0x02, 0x0d, 0xec, 0x36, 0x94, 0x42, 0xd9, 0x09, 0x05, 0xe4, 0xfc, 0x34, 0xc7, 0xb9, 0x27, - 0xc6, 0x5d, 0x3f, 0xf6, 0x3d, 0xd4, 0x70, 0x2f, 0xa1, 0x29, 0x19, 0x0f, 0x08, 0x0b, 0x7a, 0x62, - 0x8c, 0x64, 0x5a, 0x50, 0x1f, 0x10, 0xbe, 0xc0, 0x30, 0xd2, 0x16, 0x31, 0x21, 0xa9, 0xb1, 0x17, - 0x52, 0xc2, 0x62, 0xa5, 0xa1, 0xbb, 0xd1, 0x80, 0x54, 0x27, 0xb1, 0xe0, 0x94, 0x4e, 0x89, 0xae, - 0x57, 0x2a, 0xbb, 0x7f, 0x2e, 0xc3, 0x9a, 0x26, 0xa1, 0xba, 0x8a, 0x05, 0x59, 0x27, 0x2a, 0x49, - 0xe2, 0x9c, 0x0c, 0x17, 0xe9, 0xe1, 0x5a, 0x92, 0x7d, 0x83, 0x59, 0x3e, 0xea, 0xe2, 0xb1, 0x35, - 0x2f, 0x11, 0x25, 0xa7, 0xa1, 0xc1, 0x49, 0xf7, 0xa1, 0x01, 0x49, 0x0d, 0x61, 0xc4, 0x55, 0x56, - 0x1a, 0x06, 0x64, 0x7f, 0x13, 0x36, 0xa4, 0x7f, 0xc2, 0x4f, 0x42, 0x3f, 0x1e, 0x45, 0x7c, 0x7a, - 0xd4, 0x75, 0x2a, 0xd8, 0x9e, 0x4b, 0xb8, 0xfd, 0x0d, 0x58, 0x57, 0xd8, 0x1b, 0x3a, 0x9c, 0xbc, - 0xf1, 0xa7, 0xc4, 0x59, 0xc3, 0x03, 0xaf, 0xa1, 0xf6, 0xd7, 0xe1, 0x91, 0x42, 0x0e, 0xfc, 0x21, - 0x39, 0xf3, 0x8e, 0x9d, 0x2a, 0xaa, 0xe5, 0x41, 0xc5, 0x4d, 0x08, 0x1a, 0xb1, 0xd3, 0xab, 0x19, - 0x71, 0x6a, 0xe8, 0xd4, 0x84, 0x64, 0xe4, 0x53, 0x31, 0x3e, 0xe0, 0xd1, 0xd4, 0x01, 0x75, 0x63, - 0xb4, 0x88, 0x91, 0x47, 0x2c, 0x26, 0x2c, 0x46, 0xdb, 0xba, 0xb2, 0x35, 0x20, 0x69, 0xab, 0x45, - 0xa7, 0xd1, 0xb2, 0xda, 0x0d, 0x2f, 0x11, 0xed, 0x4f, 0xa1, 0x36, 0x8a, 0xf8, 0x90, 0xe0, 0xdc, - 0x78, 0xd4, 0x2a, 0xb6, 0x6b, 0x5e, 0x06, 0xd8, 0x1b, 0x50, 0x14, 0xe4, 0xd2, 0x59, 0xc7, 0x02, - 0xca, 0xc7, 0x5c, 0x5d, 0x9b, 0xf9, 0xba, 0xda, 0x2f, 0x01, 0x86, 0x9c, 0xf8, 0x31, 0xc1, 0x5f, - 0x37, 0xf0, 0x57, 0x03, 0xb1, 0xbf, 0x0b, 0x6b, 0xfd, 0x99, 0x9c, 0x09, 0xc2, 0x79, 0x8c, 0x7d, - 0xf9, 0xb5, 0x9b, 0xfa, 0x72, 0x53, 0xeb, 0xec, 0xb3, 0x98, 0x5f, 0x79, 0x89, 0x85, 0x7d, 0x00, - 0xcd, 0x68, 0x34, 0x0a, 0x29, 0x23, 0x27, 0x73, 0x71, 0x71, 0xc4, 0x46, 0x91, 0x63, 0xb7, 0xac, - 0x76, 0x7d, 0xeb, 0xd3, 0xdc, 0x21, 0xfd, 0xbc, 0x8e, 0x77, 0xdd, 0xe8, 0xc5, 0x2b, 0x68, 0x98, - 0x0e, 0x64, 0x88, 0x13, 0x72, 0xa5, 0xbb, 0x4f, 0x3e, 0xda, 0x4f, 0xa1, 0xbc, 0xf0, 0xc3, 0x39, - 0xc1, 0xce, 0xab, 0x7a, 0x4a, 0x78, 0x55, 0xf8, 0xc2, 0x72, 0x7f, 0x61, 0x41, 0xf3, 0x9a, 0x03, - 0xa9, 0x7d, 0x4a, 0xe3, 0x90, 0xe8, 0x13, 0x94, 0x60, 0xdb, 0x50, 0xea, 0x12, 0x31, 0xd4, 0xcd, - 0x8b, 0xcf, 0xd2, 0xd3, 0xfe, 0xfb, 0x58, 0xb7, 0xad, 0x7c, 0xb4, 0x5d, 0x68, 0xd0, 0xfe, 0x40, - 0x1e, 0x35, 0x88, 0xe6, 0x2c, 0xd0, 0x3d, 0x9b, 0xc3, 0x64, 0xfb, 0xd0, 0xfe, 0x60, 0xd7, 0x0f, - 0xc6, 0x64, 0x2f, 0x9a, 0xb3, 0x18, 0xdb, 0xb6, 0xea, 0xe5, 0x41, 0xf7, 0x0f, 0x05, 0xa8, 0x1d, - 0xe2, 0x45, 0x90, 0x9c, 0x1c, 0x58, 0x3b, 0xd4, 0x97, 0x44, 0xb1, 0x4a, 0x44, 0x59, 0x6e, 0x7c, - 0xc4, 0x7e, 0x55, 0xe4, 0x32, 0x40, 0xf2, 0x79, 0x13, 0xc5, 0x74, 0x44, 0x87, 0x38, 0xba, 0x35, - 0xd5, 0x1c, 0x26, 0x75, 0x8e, 0x58, 0xcc, 0xa3, 0x60, 0x3e, 0x44, 0x1d, 0xcd, 0xd9, 0xc4, 0xa4, - 0x7f, 0xec, 0x6b, 0x1e, 0xea, 0x4b, 0x96, 0x88, 0xf6, 0xb7, 0xa0, 0xdc, 0x7f, 0xc7, 0x08, 0xc7, - 0x5b, 0x55, 0xdf, 0xfa, 0x6a, 0xae, 0x76, 0x27, 0xf3, 0xf3, 0x90, 0x0e, 0xe5, 0x34, 0xc2, 0xd2, - 0x29, 0x4d, 0xd9, 0x55, 0x7b, 0x59, 0x57, 0xc9, 0x3b, 0x56, 0xf2, 0x0c, 0x44, 0x76, 0x7f, 0x8f, - 0x4c, 0xcf, 0x09, 0x57, 0xe9, 0x91, 0xb7, 0xeb, 0x91, 0x67, 0x42, 0x49, 0xe2, 0x6b, 0x69, 0xe2, - 0xdd, 0x9f, 0x17, 0xe0, 0x09, 0x86, 0xad, 0xd4, 0x0e, 0xe6, 0x61, 0x78, 0x47, 0xe2, 0x9e, 0x43, - 0xe5, 0x4c, 0xbd, 0x31, 0xf5, 0x3c, 0x52, 0x92, 0xbd, 0x09, 0x76, 0x27, 0x98, 0x52, 0x46, 0x45, - 0xcc, 0xfd, 0x38, 0xe2, 0xc7, 0x64, 0x41, 0x42, 0x4c, 0x5c, 0xd9, 0xbb, 0xe1, 0x17, 0x79, 0x7f, - 0x7e, 0x14, 0x51, 0x86, 0xb1, 0x94, 0x30, 0x96, 0x54, 0x96, 0xbf, 0xa5, 0xb3, 0x44, 0xe5, 0x2d, - 0x95, 0xcd, 0x94, 0x56, 0xf2, 0x29, 0x75, 0xa1, 0x71, 0xc0, 0x29, 0x61, 0x81, 0x47, 0xa6, 0x3e, - 0x9f, 0xe8, 0x29, 0x94, 0xc3, 0xe4, 0xac, 0xea, 0xcc, 0x66, 0x3d, 0x9f, 0x8d, 0x89, 0x66, 0x58, - 0x45, 0x86, 0xd7, 0x50, 0xf7, 0x2f, 0x16, 0x54, 0x93, 0xfc, 0x1b, 0x21, 0x5b, 0xb9, 0x90, 0x35, - 0x4d, 0x96, 0xb5, 0x50, 0x2a, 0x9b, 0x34, 0x8b, 0x79, 0x9a, 0xcf, 0xa1, 0x72, 0x88, 0x13, 0x0f, - 0xc3, 0x2e, 0x7b, 0x5a, 0x92, 0x78, 0x2f, 0x3a, 0xa7, 0x61, 0x12, 0xb2, 0x96, 0xe4, 0xbd, 0xda, - 0xa5, 0x3c, 0xbe, 0xd0, 0xe1, 0x2a, 0x41, 0xa2, 0xfb, 0x53, 0x9f, 0x86, 0x3a, 0x4a, 0x25, 0x24, - 0x05, 0xae, 0x66, 0x05, 0x5e, 0xc8, 0x95, 0xc7, 0xec, 0xa6, 0x8f, 0x13, 0x8d, 0xdb, 0x85, 0xea, - 0x29, 0x9d, 0x89, 0xbd, 0x68, 0x3a, 0x95, 0x3a, 0x5d, 0x12, 0x4b, 0xb2, 0x16, 0xce, 0x5c, 0x2d, - 0xc9, 0x86, 0xed, 0x92, 0x91, 0x3f, 0x0f, 0x63, 0xa9, 0x9a, 0xbc, 0x3c, 0x0d, 0xc8, 0xfd, 0x9d, - 0x05, 0x4d, 0xd5, 0x99, 0xfb, 0x2c, 0x26, 0x5c, 0x62, 0xf6, 0x67, 0x50, 0xc6, 0x5e, 0xc4, 0xc3, - 0xea, 0x5b, 0xcf, 0xf3, 0x6b, 0x48, 0x72, 0xf5, 0x3d, 0xa5, 0x64, 0xef, 0x42, 0x5d, 0x8e, 0x37, - 0x9f, 0xc5, 0x32, 0x4c, 0xf4, 0x51, 0xdf, 0x6a, 0x2d, 0xdb, 0xe4, 0xfb, 0xdf, 0x33, 0x8d, 0xe4, - 0xe4, 0xe9, 0x27, 0x5b, 0x5c, 0xfa, 0x1e, 0x2f, 0x79, 0x79, 0xd0, 0xfd, 0x6d, 0xca, 0xf5, 0x98, - 0xf8, 0x0b, 0xf2, 0x00, 0xae, 0xaf, 0x01, 0xd0, 0x94, 0xdf, 0x8b, 0xaa, 0x61, 0xb3, 0x22, 0xd3, - 0x7f, 0x58, 0xf0, 0x58, 0x1d, 0x72, 0xc4, 0x16, 0x34, 0x26, 0xc1, 0x03, 0xb8, 0x7e, 0x01, 0x95, - 0xfe, 0xec, 0x5e, 0x3c, 0xb5, 0xbe, 0xac, 0x88, 0x76, 0x8b, 0xe6, 0xc5, 0x55, 0x2b, 0x62, 0x18, - 0x2d, 0xc7, 0x59, 0xba, 0x29, 0xce, 0xbf, 0x59, 0xb0, 0xa1, 0x4e, 0xf9, 0x31, 0x1d, 0x4e, 0x3e, - 0x72, 0x98, 0xaf, 0x01, 0x94, 0xd7, 0x7b, 0x45, 0x69, 0xd8, 0xac, 0x18, 0xe4, 0xbf, 0x2d, 0x78, - 0x96, 0x14, 0x73, 0x14, 0xed, 0x5d, 0xc8, 0x21, 0xa6, 0x22, 0x95, 0xef, 0x0b, 0x14, 0x71, 0x19, - 0x52, 0x1f, 0x17, 0x06, 0xf2, 0x7f, 0xc4, 0xf6, 0x7d, 0xa8, 0x1d, 0x50, 0xe6, 0x23, 0xb8, 0x72, - 0x68, 0x99, 0x89, 0x1c, 0x35, 0xbd, 0xb9, 0x7e, 0x8f, 0xe9, 0xd9, 0x9f, 0xc8, 0x59, 0x7d, 0xca, - 0x2b, 0xd4, 0xc7, 0xfd, 0xbb, 0x05, 0x1b, 0xf8, 0xa4, 0xde, 0x83, 0x0f, 0x29, 0xf1, 0x2b, 0x58, - 0x43, 0xe3, 0x68, 0xf5, 0x3c, 0x24, 0x06, 0xb2, 0xc8, 0xfa, 0xca, 0x27, 0x5f, 0x9b, 0x2b, 0x15, - 0x39, 0xb3, 0x59, 0xb1, 0xc8, 0xbf, 0xb2, 0xe0, 0x69, 0x4a, 0xdc, 0xac, 0xb1, 0xfc, 0xfe, 0xd0, - 0x62, 0x56, 0x64, 0x13, 0xca, 0x92, 0x51, 0xb8, 0x5f, 0xbf, 0x17, 0xef, 0xd7, 0x13, 0xee, 0x2f, - 0x2d, 0x78, 0xe1, 0x91, 0x21, 0xa1, 0x0b, 0x22, 0xdf, 0xe3, 0x9d, 0xd9, 0x2c, 0xd4, 0x9b, 0xd2, - 0x03, 0x6a, 0xb2, 0x03, 0x35, 0x7d, 0x00, 0x8b, 0x35, 0xf1, 0x5b, 0x37, 0xa4, 0x4c, 0x5b, 0xbe, - 0x6c, 0x3c, 0xe2, 0x8b, 0x74, 0x69, 0xd3, 0x92, 0xfb, 0x27, 0x0b, 0x1c, 0x83, 0xd4, 0x09, 0x8f, - 0x86, 0x44, 0x88, 0x8f, 0x3c, 0x14, 0x90, 0x9c, 0x98, 0x87, 0xb1, 0x5e, 0x8c, 0xb4, 0x64, 0x90, - 0x2e, 0xe5, 0x48, 0xff, 0xd1, 0x02, 0x50, 0xfb, 0x0b, 0xde, 0x9b, 0x6d, 0xa8, 0xe1, 0x2a, 0x88, - 0xbe, 0x15, 0xd5, 0x67, 0x39, 0xdf, 0x59, 0x42, 0x52, 0x3d, 0x75, 0x36, 0x2e, 0x44, 0x85, 0xe4, - 0x6c, 0x5c, 0x85, 0xf2, 0xeb, 0x64, 0x71, 0x69, 0x9d, 0xfc, 0x76, 0xe2, 0x1a, 0xbd, 0x95, 0x6e, - 0xf3, 0x66, 0x28, 0xba, 0x13, 0x78, 0xac, 0x24, 0x23, 0xd9, 0x72, 0x7f, 0xe8, 0x04, 0xea, 0x5b, - 0xc9, 0x42, 0x47, 0x89, 0x28, 0xf7, 0xf0, 0x4e, 0x10, 0x0c, 0xa2, 0x39, 0x1f, 0xa6, 0x7b, 0x78, - 0x0a, 0x48, 0x8e, 0x9d, 0x20, 0xf8, 0x49, 0xc4, 0x03, 0xca, 0xc6, 0xba, 0xa0, 0x06, 0xe2, 0xfe, - 0xd3, 0x82, 0x17, 0x4b, 0xde, 0x3a, 0x41, 0xa0, 0xcb, 0xba, 0x9d, 0x16, 0xca, 0xba, 0xbb, 0x87, - 0xb2, 0xc1, 0x5d, 0x37, 0x0e, 0xd3, 0x25, 0x7e, 0x99, 0xb3, 0x5c, 0x72, 0xe9, 0x99, 0x26, 0xf6, - 0x77, 0xa0, 0xda, 0x9f, 0xe5, 0x06, 0xff, 0xad, 0x8e, 0x53, 0xe5, 0x15, 0x87, 0xc1, 0x5f, 0x2d, - 0x78, 0xb9, 0xc4, 0x20, 0xdf, 0xcf, 0x0f, 0x0a, 0xdc, 0xa4, 0x5d, 0xb8, 0x0f, 0x6d, 0xfc, 0x13, - 0x85, 0xd9, 0xd5, 0x4a, 0x5a, 0x31, 0x9c, 0x0b, 0x68, 0xea, 0x68, 0xd2, 0xba, 0x7d, 0x0e, 0x15, - 0x05, 0x69, 0xfa, 0x9f, 0xdc, 0x90, 0x7d, 0x45, 0x5d, 0x3d, 0x2f, 0x7b, 0x2a, 0xdc, 0xe4, 0xe9, - 0xa7, 0x49, 0x6b, 0x76, 0x49, 0x48, 0xe2, 0x0f, 0xeb, 0xeb, 0xd7, 0x16, 0xd4, 0x76, 0x43, 0x7f, - 0x38, 0xc1, 0x8b, 0xbb, 0xb3, 0x7c, 0x71, 0x6f, 0x9f, 0x67, 0xd9, 0xf5, 0xbd, 0xeb, 0x9a, 0xee, - 0x68, 0x3f, 0xc6, 0x2d, 0xbd, 0xfd, 0xe8, 0x54, 0xdb, 0x0d, 0x60, 0x1d, 0x85, 0x2c, 0xf1, 0x9f, - 0x41, 0x19, 0x91, 0x1b, 0xe7, 0x60, 0x1a, 0x8e, 0xa7, 0x94, 0x56, 0xcc, 0xc4, 0x08, 0x36, 0x50, - 0xdd, 0x4c, 0xfa, 0x87, 0xf0, 0xf3, 0x1b, 0x0b, 0x9e, 0x65, 0xe5, 0x32, 0x5f, 0x92, 0xf7, 0x2e, - 0xf1, 0xf6, 0xb5, 0x01, 0xbf, 0xd2, 0xf5, 0x59, 0x6d, 0xf7, 0xfe, 0xbd, 0x05, 0x4f, 0x06, 0x24, - 0x1c, 0x49, 0xd3, 0xb3, 0x59, 0x90, 0xee, 0x2c, 0x3b, 0xd0, 0x90, 0x70, 0x72, 0xea, 0xed, 0xd3, - 0x3d, 0xa7, 0xfa, 0x01, 0xd9, 0x9e, 0x57, 0xf0, 0x5f, 0x16, 0xdb, 0xff, 0x0d, 0x00, 0x00, 0xff, - 0xff, 0x73, 0x31, 0x8b, 0x68, 0xc5, 0x18, 0x00, 0x00, +func init() { proto.RegisterFile("sdk_ws/ws.proto", fileDescriptor_ws_1ed69884ac12b8b9) } + +var fileDescriptor_ws_1ed69884ac12b8b9 = []byte{ + // 1703 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe4, 0x58, 0x4f, 0x6f, 0x23, 0x4b, + 0x11, 0xd7, 0xf8, 0x5f, 0xec, 0x72, 0x36, 0xce, 0xce, 0xfe, 0x79, 0xc3, 0xf2, 0xb4, 0x32, 0x23, + 0x84, 0x2c, 0x04, 0x79, 0x22, 0x2b, 0xa4, 0xc7, 0xa2, 0x07, 0x38, 0x71, 0x92, 0x97, 0x65, 0xbd, + 0x0e, 0xe3, 0x2c, 0x1c, 0x38, 0x44, 0x13, 0x4f, 0xdb, 0x19, 0x79, 0xa6, 0xc7, 0xe9, 0x1e, 0x67, + 0x37, 0x17, 0xbe, 0x05, 0xe2, 0x80, 0x90, 0xb8, 0x21, 0x24, 0x0e, 0x88, 0x03, 0x1f, 0x81, 0x4f, + 0xc2, 0x09, 0x89, 0x13, 0x47, 0x38, 0xa0, 0xaa, 0xee, 0x19, 0xf7, 0xd8, 0x79, 0xd9, 0x24, 0xbb, + 0xda, 0xcb, 0xbb, 0x4d, 0xfd, 0x5c, 0x5d, 0xf5, 0xab, 0x3f, 0x5d, 0x5d, 0x09, 0xb4, 0x64, 0x30, + 0x3d, 0x79, 0x23, 0x3f, 0x7b, 0x23, 0xb7, 0x66, 0x22, 0x49, 0x13, 0xbb, 0x99, 0xcc, 0x18, 0x3f, + 0x09, 0xe3, 0x13, 0x19, 0x4c, 0xdd, 0xff, 0x59, 0xe0, 0x1c, 0xcd, 0xa3, 0xa8, 0xcf, 0xa4, 0xf4, + 0x27, 0x6c, 0xe7, 0x72, 0xc8, 0xce, 0x5f, 0x86, 0x32, 0xf5, 0x98, 0x9c, 0xd9, 0x0e, 0xac, 0x31, + 0x21, 0x76, 0x93, 0x80, 0x39, 0x56, 0xdb, 0xea, 0x54, 0xbd, 0x4c, 0xb4, 0x1f, 0x43, 0x8d, 0x09, + 0xd1, 0x97, 0x13, 0xa7, 0xd4, 0xb6, 0x3a, 0x0d, 0x4f, 0x4b, 0x88, 0xc7, 0xfe, 0xdb, 0x21, 0x3b, + 0x77, 0xca, 0x6d, 0xab, 0x53, 0xf6, 0xb4, 0x44, 0x78, 0xc8, 0x11, 0xaf, 0x68, 0x9c, 0x24, 0xfb, + 0xa7, 0x70, 0x4f, 0x86, 0x7c, 0x12, 0xb1, 0xd7, 0x92, 0x91, 0xb9, 0x6a, 0xbb, 0xdc, 0x69, 0x6e, + 0x7f, 0x63, 0xcb, 0xe0, 0xb8, 0x75, 0xe0, 0xa7, 0x67, 0x4c, 0xec, 0x27, 0x22, 0xf6, 0x53, 0xaf, + 0xa8, 0x6f, 0x7f, 0x01, 0xeb, 0x13, 0x91, 0xcc, 0x67, 0xd9, 0xf9, 0xda, 0xbb, 0xce, 0x17, 0xd4, + 0xdd, 0x18, 0x3e, 0xb9, 0x3a, 0x7a, 0xa2, 0x3c, 0x97, 0x4c, 0x1c, 0xf6, 0x28, 0xf6, 0x86, 0xa7, + 0x25, 0xbb, 0x0d, 0x98, 0x40, 0xe1, 0xa7, 0x61, 0xc2, 0x0f, 0x7b, 0x3a, 0x7e, 0x13, 0xc2, 0xb4, + 0x49, 0x65, 0xc7, 0x29, 0xb7, 0xcb, 0x9d, 0xb2, 0x97, 0x89, 0xee, 0x6f, 0x60, 0xc3, 0x70, 0x77, + 0x9d, 0x97, 0x27, 0x50, 0x97, 0xec, 0x7c, 0x87, 0x4d, 0x42, 0x4e, 0x2e, 0xca, 0x5e, 0x2e, 0xe3, + 0x19, 0xc9, 0xce, 0xf7, 0x78, 0x90, 0x25, 0x59, 0x49, 0xcb, 0xcc, 0x2a, 0x2b, 0xcc, 0xdc, 0xff, + 0x58, 0xd0, 0x2a, 0x10, 0xf8, 0x5a, 0x14, 0xf9, 0x21, 0xd8, 0x07, 0x2c, 0xed, 0xfb, 0x6f, 0xbb, + 0x3c, 0xe8, 0x13, 0x25, 0x8f, 0x9d, 0xbb, 0x7b, 0xf0, 0x60, 0x05, 0x95, 0x33, 0x23, 0x38, 0xeb, + 0x2b, 0x82, 0x2b, 0x99, 0xc1, 0xb9, 0x5f, 0xc2, 0xba, 0xe9, 0xda, 0xde, 0x80, 0x52, 0x18, 0xe8, + 0x62, 0x96, 0xc2, 0xc0, 0xee, 0x40, 0x25, 0xc2, 0x4e, 0x28, 0x11, 0xe7, 0x87, 0x05, 0xce, 0x7d, + 0x39, 0xe9, 0xf9, 0xa9, 0xef, 0x91, 0x86, 0x7b, 0x0e, 0x2d, 0x64, 0x3c, 0x64, 0x3c, 0xe8, 0xcb, + 0x09, 0x91, 0x69, 0x43, 0x73, 0xc8, 0xc4, 0x05, 0x85, 0x91, 0xb7, 0x88, 0x09, 0xa1, 0xc6, 0x6e, + 0x14, 0x32, 0x9e, 0x2a, 0x0d, 0xdd, 0x8d, 0x06, 0xa4, 0x3a, 0x89, 0x07, 0xc7, 0x61, 0xcc, 0x74, + 0xbd, 0x72, 0xd9, 0xfd, 0x7b, 0x15, 0xd6, 0x34, 0x09, 0xd5, 0x55, 0x3c, 0x58, 0x74, 0xa2, 0x92, + 0x10, 0x17, 0x6c, 0x74, 0x91, 0x1b, 0xd7, 0x12, 0xf6, 0x0d, 0x65, 0xf9, 0xb0, 0x47, 0x66, 0x1b, + 0x5e, 0x26, 0x22, 0xa7, 0x91, 0xc1, 0x49, 0xf7, 0xa1, 0x01, 0xa1, 0x86, 0x34, 0xe2, 0xaa, 0x2a, + 0x0d, 0x03, 0xb2, 0xbf, 0x0b, 0x9b, 0xe8, 0x9f, 0x89, 0xa3, 0xc8, 0x4f, 0xc7, 0x89, 0x88, 0x0f, + 0x7b, 0x4e, 0x8d, 0xda, 0x73, 0x05, 0xb7, 0xbf, 0x03, 0x1b, 0x0a, 0x7b, 0x15, 0x8e, 0xa6, 0xaf, + 0xfc, 0x98, 0x39, 0x6b, 0x64, 0x70, 0x09, 0xb5, 0xbf, 0x0d, 0xf7, 0x14, 0xb2, 0xef, 0x8f, 0xd8, + 0x6b, 0xef, 0xa5, 0x53, 0x27, 0xb5, 0x22, 0xa8, 0xb8, 0x49, 0x19, 0x26, 0xfc, 0xf8, 0x72, 0xc6, + 0x9c, 0x06, 0x39, 0x35, 0x21, 0x8c, 0x3c, 0x96, 0x93, 0x7d, 0x91, 0xc4, 0x0e, 0xa8, 0x1b, 0xa3, + 0x45, 0x8a, 0x3c, 0xe1, 0x29, 0xe3, 0x29, 0x9d, 0x6d, 0xaa, 0xb3, 0x06, 0x84, 0x67, 0xb5, 0xe8, + 0xac, 0xb7, 0xad, 0xce, 0xba, 0x97, 0x89, 0xf6, 0xa7, 0xd0, 0x18, 0x27, 0x62, 0xc4, 0x68, 0x6e, + 0xdc, 0x6b, 0x97, 0x3b, 0x0d, 0x6f, 0x01, 0xd8, 0x9b, 0x50, 0x96, 0xec, 0xdc, 0xd9, 0xa0, 0x02, + 0xe2, 0x67, 0xa1, 0xae, 0xad, 0x62, 0x5d, 0xed, 0xa7, 0x00, 0x23, 0xc1, 0xfc, 0x94, 0xd1, 0xaf, + 0x9b, 0xf4, 0xab, 0x81, 0xd8, 0x3f, 0x86, 0xb5, 0xc1, 0x0c, 0x67, 0x82, 0x74, 0xee, 0x53, 0x5f, + 0x7e, 0xeb, 0xaa, 0xbe, 0xdc, 0xd2, 0x3a, 0x7b, 0x3c, 0x15, 0x97, 0x5e, 0x76, 0xc2, 0xde, 0x87, + 0x56, 0x32, 0x1e, 0x47, 0x21, 0x67, 0x47, 0x73, 0x79, 0x76, 0xc8, 0xc7, 0x89, 0x63, 0xb7, 0xad, + 0x4e, 0x73, 0xfb, 0xd3, 0x82, 0x91, 0x41, 0x51, 0xc7, 0x5b, 0x3e, 0xf4, 0xe4, 0x39, 0xac, 0x9b, + 0x0e, 0x30, 0xc4, 0x29, 0xbb, 0xd4, 0xdd, 0x87, 0x9f, 0xf6, 0x43, 0xa8, 0x5e, 0xf8, 0xd1, 0x9c, + 0x51, 0xe7, 0xd5, 0x3d, 0x25, 0x3c, 0x2f, 0x7d, 0x6e, 0xb9, 0xbf, 0xb3, 0xa0, 0xb5, 0xe4, 0x00, + 0xb5, 0x8f, 0xc3, 0x34, 0x62, 0xda, 0x82, 0x12, 0x6c, 0x1b, 0x2a, 0x3d, 0x26, 0x47, 0xba, 0x79, + 0xe9, 0x1b, 0x3d, 0xed, 0xbd, 0x4d, 0x75, 0xdb, 0xe2, 0xa7, 0xed, 0xc2, 0x7a, 0x38, 0x18, 0xa2, + 0xa9, 0x61, 0x32, 0xe7, 0x81, 0xee, 0xd9, 0x02, 0x86, 0xed, 0x13, 0x0e, 0x86, 0x3b, 0x7e, 0x30, + 0x61, 0xbb, 0xc9, 0x9c, 0xa7, 0xd4, 0xb6, 0x75, 0xaf, 0x08, 0xba, 0x7f, 0x29, 0x41, 0xe3, 0x80, + 0x2e, 0x02, 0x72, 0x72, 0x60, 0xed, 0x40, 0x5f, 0x12, 0xc5, 0x2a, 0x13, 0xb1, 0xdc, 0xf4, 0x49, + 0xfd, 0xaa, 0xc8, 0x2d, 0x00, 0xe4, 0xf3, 0x2a, 0x49, 0xc3, 0x71, 0x38, 0xa2, 0xd1, 0xad, 0xa9, + 0x16, 0x30, 0xd4, 0x39, 0xe4, 0xa9, 0x48, 0x82, 0xf9, 0x88, 0x74, 0x34, 0x67, 0x13, 0x43, 0xff, + 0xd4, 0xd7, 0x22, 0xd2, 0x97, 0x2c, 0x13, 0xed, 0x1f, 0x40, 0x75, 0xf0, 0x86, 0x33, 0x41, 0xb7, + 0xaa, 0xb9, 0xfd, 0xcd, 0x42, 0xed, 0x8e, 0xe6, 0xa7, 0x51, 0x38, 0xc2, 0x69, 0x44, 0xa5, 0x53, + 0x9a, 0xd8, 0x55, 0xbb, 0x8b, 0xae, 0xc2, 0x3b, 0x56, 0xf1, 0x0c, 0x04, 0xbb, 0xbf, 0xcf, 0xe2, + 0x53, 0x26, 0x54, 0x7a, 0xf0, 0x76, 0xdd, 0xf3, 0x4c, 0x28, 0x4b, 0x7c, 0x23, 0x4f, 0xbc, 0xfb, + 0xdb, 0x12, 0x3c, 0xa0, 0xb0, 0x95, 0xda, 0xfe, 0x3c, 0x8a, 0xde, 0x91, 0xb8, 0xc7, 0x50, 0x7b, + 0xad, 0x5e, 0x4c, 0x3d, 0x8f, 0x94, 0x64, 0x6f, 0x81, 0xdd, 0x0d, 0xe2, 0x90, 0x87, 0x32, 0x15, + 0x7e, 0x9a, 0x88, 0x97, 0xec, 0x82, 0x45, 0x94, 0xb8, 0xaa, 0x77, 0xc5, 0x2f, 0x78, 0x7f, 0x5e, + 0x24, 0x21, 0xa7, 0x58, 0x2a, 0x14, 0x4b, 0x2e, 0xe3, 0x6f, 0xf9, 0x2c, 0x51, 0x79, 0xcb, 0x65, + 0x33, 0xa5, 0xb5, 0x62, 0x4a, 0x5d, 0x58, 0xdf, 0x17, 0x21, 0xe3, 0x81, 0xc7, 0x62, 0x5f, 0x4c, + 0xf5, 0x14, 0x2a, 0x60, 0x38, 0xab, 0xba, 0xb3, 0x59, 0xdf, 0xe7, 0x13, 0xa6, 0x19, 0xd6, 0x89, + 0xe1, 0x12, 0xea, 0xfe, 0xc3, 0x82, 0x7a, 0x96, 0x7f, 0x23, 0x64, 0xab, 0x10, 0xb2, 0xa6, 0xc9, + 0x17, 0x2d, 0x94, 0xcb, 0x26, 0xcd, 0x72, 0x91, 0xe6, 0x63, 0xa8, 0x1d, 0xd0, 0xc4, 0xa3, 0xb0, + 0xab, 0x9e, 0x96, 0x10, 0xef, 0x27, 0xa7, 0x61, 0x94, 0x85, 0xac, 0x25, 0xbc, 0x57, 0x3b, 0xa1, + 0x48, 0xcf, 0x74, 0xb8, 0x4a, 0x40, 0x74, 0x2f, 0xf6, 0xc3, 0x48, 0x47, 0xa9, 0x84, 0xac, 0xc0, + 0xf5, 0x45, 0x81, 0x2f, 0x70, 0xe5, 0x31, 0xbb, 0xe9, 0xe3, 0x44, 0xe3, 0xf6, 0xa0, 0x7e, 0x1c, + 0xce, 0xe4, 0x6e, 0x12, 0xc7, 0xa8, 0xd3, 0x63, 0x29, 0x92, 0xb5, 0x68, 0xe6, 0x6a, 0x09, 0x1b, + 0xb6, 0xc7, 0xc6, 0xfe, 0x3c, 0x4a, 0x51, 0x35, 0x7b, 0x3c, 0x0d, 0xc8, 0xfd, 0xb3, 0x05, 0x2d, + 0xd5, 0x99, 0x7b, 0x3c, 0x65, 0x02, 0x31, 0xfb, 0x7b, 0x50, 0xa5, 0x5e, 0x24, 0x63, 0xcd, 0xed, + 0xc7, 0xc5, 0x35, 0x24, 0xbb, 0xfa, 0x9e, 0x52, 0xb2, 0x77, 0xa0, 0x89, 0xe3, 0xcd, 0xe7, 0x29, + 0x86, 0x49, 0x3e, 0x9a, 0xdb, 0xed, 0xd5, 0x33, 0xc5, 0xfe, 0xf7, 0xcc, 0x43, 0x38, 0x79, 0x06, + 0xd9, 0x16, 0x97, 0xbf, 0xe3, 0x15, 0xaf, 0x08, 0xba, 0x7f, 0xca, 0xb9, 0xbe, 0x64, 0xfe, 0x05, + 0xbb, 0x03, 0xd7, 0x9f, 0x01, 0xd0, 0x51, 0x71, 0x2b, 0xaa, 0xc6, 0x99, 0x1b, 0x32, 0xfd, 0xb7, + 0x05, 0xf7, 0x95, 0x91, 0x43, 0x7e, 0x11, 0xa6, 0x2c, 0xb8, 0x03, 0xd7, 0xcf, 0xa1, 0x36, 0x98, + 0xdd, 0x8a, 0xa7, 0xd6, 0xb7, 0x5f, 0x40, 0x4b, 0xbb, 0x45, 0x31, 0x5f, 0xd3, 0x6f, 0x62, 0x62, + 0xf9, 0xe0, 0x6a, 0xbc, 0x95, 0xab, 0xe2, 0xfd, 0x97, 0x05, 0x9b, 0xca, 0xd2, 0xcf, 0xc3, 0xd1, + 0xf4, 0x23, 0x87, 0xfb, 0x25, 0x6c, 0x28, 0xaf, 0xb7, 0x8e, 0x76, 0xe9, 0xdc, 0x0d, 0x83, 0xfd, + 0xaf, 0x05, 0x8f, 0xb2, 0xe2, 0x8e, 0x93, 0xdd, 0x33, 0x1c, 0x6a, 0x2a, 0x62, 0x7c, 0x3f, 0x48, + 0xa4, 0xe5, 0x48, 0xfd, 0xb1, 0x61, 0x20, 0xef, 0x11, 0xe3, 0x4f, 0xa0, 0xb1, 0x1f, 0x72, 0x9f, + 0x40, 0x6a, 0xb9, 0x9b, 0x1c, 0x5e, 0x1c, 0xc1, 0xd1, 0xd3, 0x9f, 0xeb, 0x77, 0x4d, 0xbf, 0x05, + 0x99, 0xbc, 0xa8, 0x53, 0xf5, 0x06, 0x75, 0x72, 0xff, 0x69, 0xc1, 0x26, 0x7d, 0xa9, 0x77, 0xf1, + 0x2e, 0xa5, 0x7e, 0x0e, 0x6b, 0x74, 0x38, 0xb9, 0x79, 0x1e, 0xb2, 0x03, 0x78, 0x83, 0xf5, 0x08, + 0xb8, 0x4d, 0xa1, 0x8d, 0x33, 0x37, 0x2c, 0xf2, 0x1f, 0x2d, 0x78, 0x98, 0x13, 0x37, 0x6b, 0x8c, + 0x7f, 0x8f, 0x68, 0x71, 0x51, 0x64, 0x13, 0x5a, 0x24, 0xa3, 0x74, 0xbb, 0xbe, 0x2f, 0xdf, 0xae, + 0x27, 0xdc, 0xdf, 0x5b, 0xe0, 0xe0, 0x83, 0x4e, 0x3a, 0xdd, 0xd9, 0x2c, 0xd2, 0x7b, 0xd3, 0x1d, + 0x2a, 0xf2, 0x23, 0x68, 0x68, 0x03, 0x3c, 0xd5, 0xb4, 0xaf, 0xdd, 0x97, 0x16, 0xda, 0xf8, 0xf4, + 0x78, 0xcc, 0x97, 0xf9, 0x0a, 0xa7, 0x25, 0xf7, 0x6f, 0x16, 0x38, 0x06, 0xa9, 0x23, 0x91, 0x8c, + 0x98, 0x94, 0x1f, 0x79, 0x34, 0x10, 0x39, 0x39, 0x8f, 0x52, 0xbd, 0x26, 0x69, 0xc9, 0x20, 0x5d, + 0x29, 0x90, 0xfe, 0xab, 0x05, 0xa0, 0xb6, 0x19, 0xba, 0x35, 0xcf, 0xa0, 0x41, 0x8b, 0x21, 0xf9, + 0x56, 0x54, 0x1f, 0x15, 0x7c, 0x2f, 0x12, 0x92, 0xeb, 0x29, 0xdb, 0xb4, 0x1e, 0x95, 0x32, 0xdb, + 0xb4, 0x18, 0x15, 0x97, 0xcb, 0xf2, 0xca, 0x72, 0xf9, 0xc3, 0xcc, 0x35, 0x79, 0xab, 0x5c, 0xe7, + 0xcd, 0x50, 0x74, 0xa7, 0x70, 0x5f, 0x49, 0x46, 0xb2, 0x71, 0x9b, 0xe8, 0x06, 0xea, 0x2f, 0x27, + 0x8b, 0x1c, 0x65, 0x22, 0x6e, 0xe5, 0xdd, 0x20, 0x18, 0x26, 0x73, 0x31, 0xca, 0xb7, 0xf2, 0x1c, + 0x40, 0x8e, 0xdd, 0x20, 0xf8, 0x55, 0x22, 0x82, 0x90, 0x4f, 0x74, 0x41, 0x0d, 0xc4, 0x7d, 0x81, + 0x0b, 0x60, 0x12, 0x1f, 0x27, 0x7a, 0xa3, 0x79, 0x8a, 0x9c, 0x93, 0xb8, 0xb0, 0xed, 0x18, 0x08, + 0x8e, 0x9d, 0x4c, 0x37, 0xdb, 0x78, 0x32, 0xd9, 0xfd, 0x35, 0x3c, 0x59, 0x21, 0xde, 0x0d, 0x02, + 0xdd, 0x21, 0x5f, 0x14, 0x3d, 0xe9, 0xec, 0x17, 0xff, 0x23, 0x62, 0x2a, 0x78, 0x05, 0x75, 0xf7, + 0x04, 0x9e, 0xae, 0x18, 0x2f, 0xb6, 0xe0, 0x7b, 0x3a, 0xf8, 0x83, 0x05, 0x2d, 0xed, 0x21, 0xe7, + 0xfc, 0x19, 0xd4, 0x14, 0xa4, 0x8d, 0x7d, 0xb2, 0x64, 0x2c, 0xeb, 0x2b, 0x4f, 0xab, 0xad, 0x8e, + 0xa2, 0xd2, 0x15, 0xa3, 0xc8, 0x7e, 0xb6, 0x34, 0x21, 0xae, 0xbd, 0x99, 0xd9, 0x70, 0xf0, 0xb2, + 0xb6, 0xe8, 0xb1, 0x88, 0xa5, 0x1f, 0x26, 0xe6, 0x01, 0x6c, 0xec, 0x44, 0xfe, 0x68, 0xfa, 0xc1, + 0xaa, 0xf4, 0x0b, 0xd8, 0x24, 0x83, 0x1f, 0x90, 0xe3, 0x2f, 0xe1, 0xd1, 0x22, 0xd1, 0xe6, 0xdc, + 0x7e, 0x4f, 0xbb, 0xdf, 0x87, 0x07, 0x43, 0x16, 0x8d, 0xd1, 0xea, 0xeb, 0x59, 0x90, 0x3f, 0x7c, + 0x5f, 0xb1, 0xea, 0x9f, 0xd6, 0xe8, 0x3f, 0xd1, 0xcf, 0xfe, 0x1f, 0x00, 0x00, 0xff, 0xff, 0x45, + 0x62, 0x8c, 0xef, 0x9c, 0x16, 0x00, 0x00, } diff --git a/pkg/proto/sdk_ws/ws.proto b/pkg/proto/sdk_ws/ws.proto index 3a20f1fcb..7ef3d4d22 100644 --- a/pkg/proto/sdk_ws/ws.proto +++ b/pkg/proto/sdk_ws/ws.proto @@ -164,7 +164,6 @@ message MemberEnterTips{ uint64 OperationTime = 3; } - //Actively leave the group message MemberLeaveTips{ GroupInfo Group = 1; @@ -175,20 +174,19 @@ message MemberLeaveTips{ message MemberInvitedTips{ GroupInfo Group = 1; GroupMemberFullInfo OpUser = 2; - GroupMemberFullInfo InvitedUser = 3; + repeated GroupMemberFullInfo InvitedUserList = 3; uint64 OperationTime = 4; } message MemberKickedTips{ GroupInfo Group = 1; GroupMemberFullInfo OpUser = 2; - GroupMemberFullInfo KickedUser = 3; + repeated GroupMemberFullInfo KickedUserList = 3; uint64 OperationTime = 4; } - message MemberInfoChangedTips{ - int32 ChangeType = 1; //1:info changed; 2:mute + int32 ChangeType = 1; ///bitwise operators 0001:member info changed; 0010:mute ; GroupMemberFullInfo OpUser = 2; //who do this GroupMemberFullInfo FinalInfo = 3; // uint64 MuteTime = 4; @@ -203,12 +201,12 @@ message GroupCreatedTips{ } message GroupInfoChangedTips{ - int32 ChangedType = 1; //bitwise operators: 1:groupName; 10:Notification 100:Introduction; 1000:FaceUrl + int32 ChangedType = 1; //bitwise operators: 0001:groupName; 0010:Notification 0100:Introduction; 1000:FaceUrl GroupInfo Group = 2; GroupMemberFullInfo OpUser = 3; } -message ReceiveJoinApplicationTips{ +message JoinGroupApplicationTips{ GroupInfo Group = 1; PublicUserInfo Applicant = 2; string Reason = 3; @@ -235,56 +233,52 @@ message FriendApplication{ string AddWording = 3; } -//user1 add user2 +message FromToUserID{ + string FromUserID = 1; + string ToUserID = 2; +} + +//FromUserID apply to add ToUserID message FriendApplicationAddedTips{ - PublicUserInfo OpUser = 1; //user1 - FriendApplication Application = 2; - PublicUserInfo OpedUser = 3; //user2 - uint64 OperationTime = 4; + FromToUserID FromToUserID = 1; } -// user2 accept or reject +//FromUserID accept or reject ToUserID message FriendApplicationProcessedTips{ - PublicUserInfo OpUser = 1; //user2 - PublicUserInfo OpedUser = 2; //user1 - int32 result = 3; //1: accept; -1: reject - uint64 OperationTime = 4; + FromToUserID FromToUserID = 1; } +// FromUserID Added a friend ToUserID message FriendAddedTips{ FriendInfo Friend = 1; uint64 OperationTime = 2; + PublicUserInfo OpUser = 3; //who do this + } +// FromUserID deleted a friend ToUserID message FriendDeletedTips{ - FriendInfo Friend = 1; - uint64 OperationTime = 2; + FromToUserID FromToUserID = 1; } -message BlackInfo{ - PublicUserInfo OwnerUser = 1; - uint64 CreateTime = 3; - PublicUserInfo BlackUser = 4; -} +//message BlackInfo{ +// PublicUserInfo OwnerUser = 1; +// uint64 CreateTime = 3; +// PublicUserInfo BlackUser = 4; +//} message BlackAddedTips{ - BlackInfo Black = 1; - uint64 OperationTime = 2; + FromToUserID FromToUserID = 1; } message BlackDeletedTips{ - BlackInfo Black = 1; - uint64 OperationTime = 2; + FromToUserID FromToUserID = 1; } message FriendInfoChangedTips{ - FriendInfo Friend = 1; - PublicUserInfo OpUser = 2; - uint64 OperationTime = 3; + FromToUserID FromToUserID = 1; } //////////////////////user///////////////////// message SelfInfoUpdatedTips{ - UserInfo SelfUserInfo = 1; - PublicUserInfo OpUser = 2; - uint64 OperationTime = 3; + string UserID = 1; } From 04e064e86e992c0444e9556f6a865e06d1ddb43c Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Fri, 24 Dec 2021 15:39:26 +0800 Subject: [PATCH 239/814] notification --- pkg/common/constant/constant.go | 50 ++++++++++++--------------------- 1 file changed, 18 insertions(+), 32 deletions(-) diff --git a/pkg/common/constant/constant.go b/pkg/common/constant/constant.go index 44216d1c8..d8aa4a965 100644 --- a/pkg/common/constant/constant.go +++ b/pkg/common/constant/constant.go @@ -45,38 +45,24 @@ const ( GroupMsg = 201 //SysRelated - FriendApplicationAddedNotification = 201 - FriendApplicationProcessedNotification = 202 - FriendAddedNotification = 203 - FriendDeletedNotification = 204 - FriendInfoChangedNotification = 205 - BlackAddedNotification = 206 - BlackDeletedNotification = 207 - //AcceptFriendApplicationTip = 201 - //AddFriendTip = 202 - //RefuseFriendApplicationTip = 203 - - SelfInfoUpdatedNotification = 301 - - GroupCreatedNotification = 501 - JoinApplicationNotification = 502 - ApplicationProcessedNotification = 503 - MemberInvitedNotification = 504 - MemberKickedNotification = 505 - GroupInfoChangedNotification = 506 - MemberLeaveNotification = 507 - MemberEnterNotification = 508 - //TransferGroupOwnerTip = 501 - //CreateGroupTip = 502 - //GroupApplicationResponseTip = 503 - //ApplyJoinGroupTip = 504 - //QuitGroupTip = 505 - //SetGroupInfoTip = 506 - //AcceptGroupApplicationTip = 507 - //RefuseGroupApplicationTip = 508 - //KickGroupMemberTip = 509 - //InviteUserToGroupTip = 510 - //ChangeGroupInfoTip = 511 + FriendApplicationProcessedNotification = 1201 //AcceptFriendApplicationTip = 201 + FriendApplicationAddedNotification = 1202 //AddFriendTip = 202 + FriendAddedNotification = 1203 + FriendDeletedNotification = 1204 + FriendInfoChangedNotification = 1205 + BlackAddedNotification = 1206 + BlackDeletedNotification = 1207 + + SelfInfoUpdatedNotification = 1303 //SetSelfInfoTip = 204 + + GroupCreatedNotification = 1501 //CreateGroupTip = 502 + JoinApplicationNotification = 1502 //JoinGroupTip = 504 + ApplicationProcessedNotification = 1503 //AcceptGroupApplicationTip = 507 RefuseGroupApplicationTip = 508 + MemberInvitedNotification = 1504 //InviteUserToGroupTip = 510 + MemberKickedNotification = 1505 //KickGroupMemberTip = 509 + GroupInfoChangedNotification = 1506 //SetGroupInfoTip = 506 TransferGroupOwnerTip = 501 + MemberLeaveNotification = 1507 //QuitGroupTip = 505 + MemberEnterNotification = 1508 //MsgFrom UserMsgType = 100 From 30b9ca7f3722372c486a2a4ea732178e43dbb457 Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Fri, 24 Dec 2021 16:02:21 +0800 Subject: [PATCH 240/814] notification --- internal/rpc/group/group.go | 35 +++++++++++++++++++---------------- internal/rpc/msg/send_msg.go | 16 ++++++++-------- 2 files changed, 27 insertions(+), 24 deletions(-) diff --git a/internal/rpc/group/group.go b/internal/rpc/group/group.go index 1b3956c37..cd2ce23df 100644 --- a/internal/rpc/group/group.go +++ b/internal/rpc/group/group.go @@ -75,6 +75,7 @@ func (s *groupServer) CreateGroup(ctx context.Context, req *pbGroup.CreateGroupR log.NewError(req.OperationID, "CheckAccess false ", req.OpUserID, req.FromUserID) return &pbGroup.CreateGroupResp{ErrCode: constant.ErrParseToken.ErrCode, ErrMsg: constant.ErrParseToken.ErrMsg}, nil } + var okUserIDList []string //Time stamp + MD5 to generate group chat id groupId := utils.Md5(strconv.FormatInt(time.Now().UnixNano(), 10)) //to group @@ -118,6 +119,7 @@ func (s *groupServer) CreateGroup(ctx context.Context, req *pbGroup.CreateGroupR if err != nil { log.NewError(req.OperationID, "InsertIntoGroupMember failed ", groupId, user.UserID, us.Nickname, us.FaceUrl, user.Role) } + okUserIDList = append(okUserIDList, user.UserID) err = db.DB.AddGroupMember(groupId, user.UserID) if err != nil { log.NewError(req.OperationID, "add mongo group member failed, db.DB.AddGroupMember failed ", err.Error()) @@ -132,7 +134,7 @@ func (s *groupServer) CreateGroup(ctx context.Context, req *pbGroup.CreateGroupR resp.ErrMsg = constant.ErrCreateGroup.ErrMsg return resp, nil } - chat.GroupCreatedNotification(req, groupId) + chat.GroupCreatedNotification(req.OperationID, req.OpUserID, req.FromUserID, groupId, okUserIDList) utils.CopyStructFields(resp.GroupInfo, group) log.NewInfo(req.OperationID, "rpc CreateGroup return ", resp.String()) return resp, nil @@ -290,7 +292,7 @@ func (s *groupServer) GetGroupMemberList(ctx context.Context, req *pbGroup.GetGr } resp.ErrCode = 0 - log.NewInfo(req.OperationID, "GetGroupMemberList rpc return ", resp) + log.NewInfo(req.OperationID, "GetGroupMemberList rpc return ", resp.String()) return &resp, nil } @@ -465,7 +467,7 @@ func (s *groupServer) GroupApplicationResponse(_ context.Context, req *pbGroup.G log.NewError(req.OperationID, "args failed ", req.String()) } - log.NewInfo(req.OperationID, "rpc GroupApplicationResponse ok ", reply) + log.NewInfo(req.OperationID, "rpc GroupApplicationResponse return ", reply) return reply, nil } @@ -494,9 +496,9 @@ func (s *groupServer) JoinGroup(ctx context.Context, req *pbGroup.JoinGroupReq) return &pbGroup.CommonResp{ErrCode: 0, ErrMsg: ""}, nil } - chat.ReceiveJoinApplicationNotification(req) + chat.JoinApplicationNotification(req) - log.NewInfo(req.OperationID, "ReceiveJoinApplicationNotification rpc JoinGroup success return") + log.NewInfo(req.OperationID, "ReceiveJoinApplicationNotification rpc return ") return &pbGroup.CommonResp{ErrCode: 0, ErrMsg: ""}, nil } @@ -522,7 +524,7 @@ func (s *groupServer) QuitGroup(ctx context.Context, req *pbGroup.QuitGroupReq) } chat.MemberLeaveNotification(req) - log.NewInfo(req.OperationID, "rpc quit group is success return") + log.NewInfo(req.OperationID, "rpc QuitGroup return ") return &pbGroup.CommonResp{}, nil } @@ -554,7 +556,7 @@ func (s *groupServer) SetGroupInfo(ctx context.Context, req *pbGroup.SetGroupInf return &pbGroup.CommonResp{ErrCode: constant.ErrSetGroupInfo.ErrCode, ErrMsg: constant.ErrAccess.ErrMsg}, nil } - ////bitwise operators: 1:groupName; 10:Notification 100:Introduction; 1000:FaceUrl + ////bitwise operators: 0001:groupName; 0010:Notification 0100:Introduction; 1000:FaceUrl; 10000:owner var changedType int32 if group.GroupName != req.GroupInfo.GroupName && req.GroupInfo.GroupName != "" { changedType = 1 @@ -574,21 +576,22 @@ func (s *groupServer) SetGroupInfo(ctx context.Context, req *pbGroup.SetGroupInf } if changedType != 0 { - chat.GroupInfoChangedNotification(req) + chat.GroupInfoChangedNotification(req.OperationID, req.OpUserID, req.GroupInfo.GroupID, changedType) } - + log.NewInfo("SetGroupInfo rpc return ") return &pbGroup.CommonResp{}, nil } -func (s *groupServer) TransferGroupOwner(_ context.Context, pb *pbGroup.TransferGroupOwnerReq) (*pbGroup.CommonResp, error) { - log.Info("", "", "rpc TransferGroupOwner call start..., [pb: %s]", pb.String()) +func (s *groupServer) TransferGroupOwner(_ context.Context, req *pbGroup.TransferGroupOwnerReq) (*pbGroup.CommonResp, error) { + log.NewInfo(req.OperationID, "TransferGroupOwner ", req.String()) - reply, err := im_mysql_model.TransferGroupOwner(pb) + reply, err := im_mysql_model.TransferGroupOwner(req) if err != nil { - log.Error("", "", "rpc TransferGroupOwner call..., im_mysql_model.TransferGroupOwner fail [pb: %s] [err: %s]", pb.String(), err.Error()) - return nil, err + log.NewError("TransferGroupOwner ", req.String()) + return &pbGroup.CommonResp{ErrCode: constant.ErrDb.ErrCode, ErrMsg: constant.ErrDb.ErrMsg}, nil } - log.Info("", "", "rpc TransferGroupOwner call..., im_mysql_model.TransferGroupOwner") - + changedType := int32(1) << 4 + chat.GroupInfoChangedNotification(req.OperationID, req.OpUserID, req.GroupID, changedType) + log.NewInfo("TransferGroupOwner rpc return ", reply.String()) return reply, nil } diff --git a/internal/rpc/msg/send_msg.go b/internal/rpc/msg/send_msg.go index c97920445..293abe06b 100644 --- a/internal/rpc/msg/send_msg.go +++ b/internal/rpc/msg/send_msg.go @@ -538,24 +538,24 @@ func MemberKickedNotification(req *pbGroup.KickGroupMemberReq, kickedUserIDList //} //群信息改变后掉用 -func GroupInfoChangedNotification(req *pbGroup.SetGroupInfoReq) { +func GroupInfoChangedNotification(operationID, opUserID, groupID string, changedType int32) { var n NotificationMsg - n.SendID = req.OpUserID + n.SendID = opUserID n.ContentType = constant.GroupInfoChangedNotification n.SessionType = constant.GroupChatType n.MsgFrom = constant.SysMsgType - n.OperationID = req.OperationID + n.OperationID = operationID GroupInfoChangedTips := open_im_sdk.GroupInfoChangedTips{Group: &open_im_sdk.GroupInfo{}, OpUser: &open_im_sdk.GroupMemberFullInfo{}} - setGroupInfo(req.OperationID, req.GroupInfo.GroupID, GroupInfoChangedTips.Group, "") - setOpUserInfo(req.OperationID, req.OpUserID, req.GroupInfo.GroupID, GroupInfoChangedTips.OpUser) - + setGroupInfo(operationID, groupID, GroupInfoChangedTips.Group, opUserID) + setOpUserInfo(operationID, opUserID, groupID, GroupInfoChangedTips.OpUser) + GroupInfoChangedTips.ChangedType = changedType var tips open_im_sdk.TipsComm tips.Detail, _ = json.Marshal(GroupInfoChangedTips) tips.DefaultTips = "GroupInfoChangedNotification" n.Content, _ = json.Marshal(tips) - n.RecvID = req.GroupInfo.GroupID - Notification(&n, true) + n.RecvID = groupID + Notification(&n, false) } /* From 3d4e0a0479d9c31c1d43f88d1ac864f94b357c1c Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Sun, 26 Dec 2021 18:47:11 +0800 Subject: [PATCH 241/814] tidy code --- go.mod | 1 + go.sum | 10 +- internal/api/friend/friend.go | 374 +--- internal/api/group/group.go | 825 +++---- internal/demo/register/login.go | 2 +- internal/demo/register/set_password.go | 2 +- internal/rpc/friend/firend.go | 272 ++- internal/rpc/group/group.go | 85 +- pkg/base_info/friend_api_struct.go | 155 ++ pkg/base_info/group_api_struct.go | 153 ++ pkg/base_info/public_struct.go | 95 + pkg/common/constant/error.go | 93 +- .../im_mysql_model/friend_model.go | 36 +- .../im_mysql_model/friend_request_model.go | 44 +- .../im_mysql_model/group_member_model.go | 182 +- .../mysql_model/im_mysql_model/group_model.go | 15 +- .../im_mysql_model/model_struct.go | 119 +- pkg/proto/base/base.proto | 5 + pkg/proto/friend/friend.pb.go | 912 ++++---- pkg/proto/friend/friend.proto | 105 +- pkg/proto/group/group.pb.go | 808 +++---- pkg/proto/group/group.proto | 102 +- pkg/proto/sdk_ws/ws.pb.go | 1973 ++++++++++------- pkg/proto/sdk_ws/ws.proto | 212 +- 24 files changed, 3470 insertions(+), 3110 deletions(-) create mode 100644 pkg/base_info/friend_api_struct.go create mode 100644 pkg/base_info/group_api_struct.go create mode 100644 pkg/base_info/public_struct.go create mode 100644 pkg/proto/base/base.proto diff --git a/go.mod b/go.mod index e86107f08..663b8e84c 100644 --- a/go.mod +++ b/go.mod @@ -47,6 +47,7 @@ require ( gopkg.in/gomail.v2 v2.0.0-20160411212932-81ebce5c23df gopkg.in/mgo.v2 v2.0.0-20190816093944-a6b53ec6cb22 gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b + gorm.io/driver/mysql v1.2.2 sigs.k8s.io/yaml v1.2.0 // indirect ) diff --git a/go.sum b/go.sum index 7a4dc5ae5..3a6600edb 100644 --- a/go.sum +++ b/go.sum @@ -151,8 +151,9 @@ github.com/go-playground/universal-translator v0.17.0 h1:icxd5fm+REJzpZx7ZfpaD87 github.com/go-playground/universal-translator v0.17.0/go.mod h1:UkSxE5sNxxRwHyU+Scu5vgOQjsIJAF8j9muTVoKLVtA= github.com/go-playground/validator/v10 v10.4.1 h1:pH2c5ADXtd66mxoE0Zm9SUhxE20r7aM3F26W0hOn+GE= github.com/go-playground/validator/v10 v10.4.1/go.mod h1:nlOn6nFhuKACm19sB/8EGNn9GlaMV7XkbRSipzJ0Ii4= -github.com/go-sql-driver/mysql v1.5.0 h1:ozyZYNQW3x3HtqT1jira07DN2PArx2v7/mN66gGcHOs= github.com/go-sql-driver/mysql v1.5.0/go.mod h1:DCzpHaOWr8IXmIStZouvnhqoel9Qv2LBy8hT2VhHyBg= +github.com/go-sql-driver/mysql v1.6.0 h1:BCTh4TKNUYmOmMUcQ3IipzF5prigylS7XXjEkfCHuOE= +github.com/go-sql-driver/mysql v1.6.0/go.mod h1:DCzpHaOWr8IXmIStZouvnhqoel9Qv2LBy8hT2VhHyBg= github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY= github.com/godbus/dbus/v5 v5.0.3/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA= github.com/godbus/dbus/v5 v5.0.4/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA= @@ -282,8 +283,9 @@ github.com/jinzhu/gorm v1.9.16 h1:+IyIjPEABKRpsu/F8OvDPy9fyQlgsg2luMV2ZIH5i5o= github.com/jinzhu/gorm v1.9.16/go.mod h1:G3LB3wezTOWM2ITLzPxEXgSkOXAntiLHS7UdBefADcs= github.com/jinzhu/inflection v1.0.0 h1:K317FqzuhWc8YvSVlFMCCUb36O/S9MCKRDI7QkRKD/E= github.com/jinzhu/inflection v1.0.0/go.mod h1:h+uFLlag+Qp1Va5pdKtLDYj+kHp5pxUVkryuEj+Srlc= -github.com/jinzhu/now v1.0.1 h1:HjfetcXq097iXP0uoPCdnM4Efp5/9MsM0/M+XOTeR3M= github.com/jinzhu/now v1.0.1/go.mod h1:d3SSVoowX0Lcu0IBviAWJpolVfI5UJVZZ7cO71lE/z8= +github.com/jinzhu/now v1.1.3 h1:PlHq1bSCSZL9K0wUhbm2pGLoTWs2GwVhsP6emvGV/ZI= +github.com/jinzhu/now v1.1.3/go.mod h1:d3SSVoowX0Lcu0IBviAWJpolVfI5UJVZZ7cO71lE/z8= github.com/jmespath/go-jmespath v0.4.0/go.mod h1:T8mJZnbsbmF+m6zOOFylbeCJqk5+pHWvzYPziyZiYoo= github.com/jmespath/go-jmespath/internal/testify v1.5.1/go.mod h1:L3OGu8Wl2/fWfCI6z80xFu9LTZmf1ZRjMHUOPmWr69U= github.com/jonboulle/clockwork v0.1.0/go.mod h1:Ii8DK3G1RaLaWxj9trq07+26W01tbo22gdxWY5EU2bo= @@ -876,6 +878,10 @@ gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b h1:h8qDotaEPuJATrMmW04NCwg7v22aHH28wwpauUhK9Oo= gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= +gorm.io/driver/mysql v1.2.2 h1:2qoqhOun1maoJOfLtnzJwq+bZlHkEF34rGntgySqp48= +gorm.io/driver/mysql v1.2.2/go.mod h1:qsiz+XcAyMrS6QY+X3M9R6b/lKM1imKmcuK9kac5LTo= +gorm.io/gorm v1.22.4 h1:8aPcyEJhY0MAt8aY6Dc524Pn+pO29K+ydu+e/cXSpQM= +gorm.io/gorm v1.22.4/go.mod h1:1aeVC+pe9ZmvKZban/gW4QPra7PRoTEssyc922qCAkk= honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= honnef.co/go/tools v0.0.0-20190106161140-3f1c8253044a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= honnef.co/go/tools v0.0.0-20190418001031-e561f6794a2a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= diff --git a/internal/api/friend/friend.go b/internal/api/friend/friend.go index 1bd0fa6fa..2c9f44bf7 100644 --- a/internal/api/friend/friend.go +++ b/internal/api/friend/friend.go @@ -1,11 +1,12 @@ package friend import ( + api "Open_IM/pkg/base_info" "Open_IM/pkg/common/config" "Open_IM/pkg/common/log" "Open_IM/pkg/common/token_verify" "Open_IM/pkg/grpc-etcdv3/getcdv3" - pbFriend "Open_IM/pkg/proto/friend" + rpc "Open_IM/pkg/proto/friend" "Open_IM/pkg/utils" "context" "github.com/gin-gonic/gin" @@ -13,20 +14,14 @@ import ( "strings" ) -type paramsCommFriend struct { - OperationID string `json:"operationID" binding:"required"` - ToUserID string `json:"toUserID" binding:"required"` - FromUserID string `json:"fromUserID" binding:"required"` -} - func AddBlacklist(c *gin.Context) { - params := paramsCommFriend{} + params := api.AddBlacklistReq{} if err := c.BindJSON(¶ms); err != nil { c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": err.Error()}) log.NewError("0", "BindJSON failed ", err.Error()) return } - req := &pbFriend.AddBlacklistReq{} + req := &rpc.AddBlacklistReq{} utils.CopyStructFields(req.CommID, params) var ok bool ok, req.CommID.OpUserID = token_verify.GetUserIDFromToken(c.Request.Header.Get("token")) @@ -38,36 +33,26 @@ func AddBlacklist(c *gin.Context) { log.NewInfo(params.OperationID, "AddBlacklist args ", req.String()) etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImFriendName) - client := pbFriend.NewFriendClient(etcdConn) + client := rpc.NewFriendClient(etcdConn) RpcResp, err := client.AddBlacklist(context.Background(), req) if err != nil { log.NewError(req.CommID.OperationID, "AddBlacklist failed ", err.Error()) c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": "call add blacklist rpc server failed"}) return } - - resp := gin.H{"errCode": RpcResp.ErrCode, "errMsg": RpcResp.ErrMsg} + resp := api.AddBlacklistResp{CommResp: api.CommResp{ErrCode: RpcResp.CommonResp.ErrCode, ErrMsg: RpcResp.CommonResp.ErrMsg}} c.JSON(http.StatusOK, resp) log.NewInfo(req.CommID.OperationID, "AddBlacklist api return ", resp) } -type paramsImportFriendReq struct { - FriendUserIDList []string `json:"friendUserIDList" binding:"required"` - OperationID string `json:"operationID" binding:"required"` - Token string `json:"token"` - FromUserID string `json:"fromUserID" binding:"required"` - OpUserID string `json:"opUserID" binding:"required"` -} - func ImportFriend(c *gin.Context) { - params := paramsImportFriendReq{} + params := api.ImportFriendReq{} if err := c.BindJSON(¶ms); err != nil { c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": err.Error()}) log.NewError("0", "BindJSON failed ", err.Error()) return } - - req := &pbFriend.ImportFriendReq{} + req := &rpc.ImportFriendReq{} utils.CopyStructFields(req, params) var ok bool ok, req.OpUserID = token_verify.GetUserIDFromToken(c.Request.Header.Get("token")) @@ -76,10 +61,10 @@ func ImportFriend(c *gin.Context) { c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": "GetUserIDFromToken failed"}) return } - log.NewInfo(req.OperationID, "ImportFriend args ", req.String()) + etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImFriendName) - client := pbFriend.NewFriendClient(etcdConn) + client := rpc.NewFriendClient(etcdConn) RpcResp, err := client.ImportFriend(context.Background(), req) if err != nil { log.NewError(req.OperationID, "ImportFriend failed", err.Error(), req.String()) @@ -87,28 +72,19 @@ func ImportFriend(c *gin.Context) { return } - failedUidList := make([]string, 0) - for _, v := range RpcResp.FailedUidList { - failedUidList = append(failedUidList, v) - } - resp := gin.H{"errCode": RpcResp.CommonResp.ErrCode, "errMsg": RpcResp.CommonResp.ErrMsg, "failedUidList": failedUidList} + resp := api.ImportFriendResp{CommResp: api.CommResp{ErrCode: RpcResp.CommonResp.ErrCode, ErrMsg: RpcResp.CommonResp.ErrMsg}, Data: RpcResp.FailedFriendUserIDList} c.JSON(http.StatusOK, resp) - log.NewInfo(req.OperationID, "AddBlacklist api return ", resp) -} - -type paramsAddFriend struct { - paramsCommFriend - ReqMessage string `json:"reqMessage"` + log.NewInfo(req.OperationID, "ImportFriend api return ", resp) } func AddFriend(c *gin.Context) { - params := paramsAddFriend{} + params := api.AddFriendReq{} if err := c.BindJSON(¶ms); err != nil { log.NewError("0", "BindJSON failed ", err.Error()) c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": err.Error()}) return } - req := &pbFriend.AddFriendReq{} + req := &rpc.AddFriendReq{} utils.CopyStructFields(req.CommID, params) var ok bool ok, req.CommID.OpUserID = token_verify.GetUserIDFromToken(c.Request.Header.Get("token")) @@ -117,11 +93,10 @@ func AddFriend(c *gin.Context) { c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": "GetUserIDFromToken failed"}) return } - req.ReqMessage = params.ReqMessage log.NewInfo("AddFriend args ", req.String()) etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImFriendName) - client := pbFriend.NewFriendClient(etcdConn) + client := rpc.NewFriendClient(etcdConn) RpcResp, err := client.AddFriend(context.Background(), req) if err != nil { log.NewError(req.CommID.OperationID, "AddFriend failed ", err.Error(), req.String()) @@ -129,24 +104,19 @@ func AddFriend(c *gin.Context) { return } - resp := gin.H{"errCode": RpcResp.ErrCode, "errMsg": RpcResp.ErrMsg} + resp := api.AddFriendResp{CommResp: api.CommResp{ErrCode: RpcResp.ErrCode, ErrMsg: RpcResp.ErrMsg}} c.JSON(http.StatusOK, resp) log.NewInfo(req.CommID.OperationID, "AddFriend api return ", resp) } -type paramsAddFriendResponse struct { - paramsCommFriend - Flag int32 `json:"flag" binding:"required"` -} - func AddFriendResponse(c *gin.Context) { - params := paramsAddFriendResponse{} + params := api.AddFriendResponseReq{} if err := c.BindJSON(¶ms); err != nil { log.NewError("0", "BindJSON failed ", err.Error()) c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": err.Error()}) return } - req := &pbFriend.AddFriendResponseReq{} + req := &rpc.AddFriendResponseReq{} utils.CopyStructFields(req.CommID, params) var ok bool ok, req.CommID.OpUserID = token_verify.GetUserIDFromToken(c.Request.Header.Get("token")) @@ -155,11 +125,11 @@ func AddFriendResponse(c *gin.Context) { c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": "GetUserIDFromToken failed"}) return } - req.Flag = params.Flag - + utils.CopyStructFields(&req, params) log.NewInfo(req.CommID.OperationID, "AddFriendResponse args ", req.String()) + etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImFriendName) - client := pbFriend.NewFriendClient(etcdConn) + client := rpc.NewFriendClient(etcdConn) RpcResp, err := client.AddFriendResponse(context.Background(), req) if err != nil { log.NewError(req.CommID.OperationID, "AddFriendResponse failed ", err.Error(), req.String()) @@ -167,23 +137,19 @@ func AddFriendResponse(c *gin.Context) { return } - resp := gin.H{"errCode": RpcResp.ErrCode, "errMsg": RpcResp.ErrMsg} + resp := api.AddFriendResponseResp{CommResp: api.CommResp{ErrCode: RpcResp.CommonResp.ErrCode, ErrMsg: RpcResp.CommonResp.ErrMsg}} c.JSON(http.StatusOK, resp) log.NewInfo(req.CommID.OperationID, "AddFriendResponse api return ", resp) } -type paramsDeleteFriend struct { - paramsCommFriend -} - func DeleteFriend(c *gin.Context) { - params := paramsDeleteFriend{} + params := api.DeleteFriendReq{} if err := c.BindJSON(¶ms); err != nil { log.NewError("0", "BindJSON failed ", err.Error()) c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": err.Error()}) return } - req := &pbFriend.DeleteFriendReq{} + req := &rpc.DeleteFriendReq{} utils.CopyStructFields(req.CommID, params) var ok bool ok, req.CommID.OpUserID = token_verify.GetUserIDFromToken(c.Request.Header.Get("token")) @@ -195,7 +161,7 @@ func DeleteFriend(c *gin.Context) { log.NewInfo(req.CommID.OperationID, "DeleteFriend args ", req.String()) etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImFriendName) - client := pbFriend.NewFriendClient(etcdConn) + client := rpc.NewFriendClient(etcdConn) RpcResp, err := client.DeleteFriend(context.Background(), req) if err != nil { log.NewError(req.CommID.OperationID, "DeleteFriend failed ", err, req.String()) @@ -203,34 +169,19 @@ func DeleteFriend(c *gin.Context) { return } - resp := gin.H{"errCode": RpcResp.ErrCode, "errMsg": RpcResp.ErrMsg} + resp := api.DeleteFriendResp{CommResp: api.CommResp{ErrCode: RpcResp.CommonResp.ErrCode, ErrMsg: RpcResp.CommonResp.ErrMsg}} c.JSON(http.StatusOK, resp) - log.NewInfo(req.CommID.OperationID, "AddFriendResponse api return ", resp) -} - -type paramsGetBlackList struct { - paramsCommFriend -} - -type PublicUserInfo struct { - UserID string `json:"userID"` - Nickname string `json:"nickname"` - FaceUrl string `json:"faceUrl"` - Gender int32 `json:"gender"` -} - -type blackUserInfo struct { - PublicUserInfo + log.NewInfo(req.CommID.OperationID, "DeleteFriend api return ", resp) } func GetBlacklist(c *gin.Context) { - params := paramsGetBlackList{} + params := api.GetBlackListReq{} if err := c.BindJSON(¶ms); err != nil { log.NewError("0", "BindJSON failed ", err.Error()) c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": err.Error()}) return } - req := &pbFriend.GetBlacklistReq{} + req := &rpc.GetBlacklistReq{} utils.CopyStructFields(req.CommID, params) var ok bool ok, req.CommID.OpUserID = token_verify.GetUserIDFromToken(c.Request.Header.Get("token")) @@ -239,10 +190,10 @@ func GetBlacklist(c *gin.Context) { c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": "GetUserIDFromToken failed"}) return } - log.NewInfo(req.CommID.OperationID, "GetBlacklist args ", req.String()) + etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImFriendName) - client := pbFriend.NewFriendClient(etcdConn) + client := rpc.NewFriendClient(etcdConn) RpcResp, err := client.GetBlacklist(context.Background(), req) if err != nil { log.NewError(req.CommID.OperationID, "GetBlacklist failed ", err.Error(), req.String()) @@ -250,42 +201,22 @@ func GetBlacklist(c *gin.Context) { return } - if RpcResp.ErrCode == 0 { - userBlackList := make([]blackUserInfo, 0) - for _, friend := range RpcResp.Data { - var b blackUserInfo - utils.CopyStructFields(&b, friend) - - userBlackList = append(userBlackList, b) - } - resp := gin.H{ - "errCode": RpcResp.ErrCode, - "errMsg": RpcResp.ErrMsg, - "data": userBlackList, - } - c.JSON(http.StatusOK, resp) - log.NewInfo(req.CommID.OperationID, "GetBlacklist api return ", resp) - } else { - resp := gin.H{"errCode": RpcResp.ErrCode, "errMsg": RpcResp.ErrMsg} - c.JSON(http.StatusOK, resp) - log.NewError(req.CommID.OperationID, "GetBlacklist api return ", resp) - } -} + resp := api.GetBlackListResp{CommResp: api.CommResp{ErrCode: RpcResp.ErrCode, ErrMsg: RpcResp.ErrMsg}} + utils.CopyStructFields(&resp.BlackUserInfoList, RpcResp.BlackUserInfoList) + log.NewInfo(req.CommID.OperationID, "GetBlacklist api return ", resp) -type paramsSetFriendComment struct { - paramsCommFriend - remark string `json:"remark" binding:"required"` } func SetFriendComment(c *gin.Context) { - params := paramsSetFriendComment{} + params := api.SetFriendCommentReq{} if err := c.BindJSON(¶ms); err != nil { log.NewError("0", "BindJSON failed ", err.Error()) c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": err.Error()}) return } - req := &pbFriend.SetFriendCommentReq{} + req := &rpc.SetFriendCommentReq{} utils.CopyStructFields(req.CommID, params) + req.Remark = params.Remark var ok bool ok, req.CommID.OpUserID = token_verify.GetUserIDFromToken(c.Request.Header.Get("token")) if !ok { @@ -293,34 +224,29 @@ func SetFriendComment(c *gin.Context) { c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": "GetUserIDFromToken failed"}) return } - req.Remark = params.remark - log.NewInfo(req.CommID.OperationID, "SetFriendComment args ", req.String()) + etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImFriendName) - client := pbFriend.NewFriendClient(etcdConn) + client := rpc.NewFriendClient(etcdConn) RpcResp, err := client.SetFriendComment(context.Background(), req) if err != nil { log.NewError(req.CommID.OperationID, "SetFriendComment failed ", err.Error(), req.String()) c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": "call set friend comment rpc server failed"}) return } - resp := gin.H{"errCode": RpcResp.ErrCode, "errMsg": RpcResp.ErrMsg} + resp := api.SetFriendCommentResp{CommResp: api.CommResp{ErrCode: RpcResp.CommonResp.ErrCode, ErrMsg: RpcResp.CommonResp.ErrMsg}} c.JSON(http.StatusOK, resp) log.NewInfo(req.CommID.OperationID, "SetFriendComment api return ", resp) } -type paramsRemoveBlackList struct { - paramsCommFriend -} - func RemoveBlacklist(c *gin.Context) { - params := paramsRemoveBlackList{} + params := api.RemoveBlackListReq{} if err := c.BindJSON(¶ms); err != nil { log.NewError("0", "BindJSON failed ", err.Error()) c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": err.Error()}) return } - req := &pbFriend.RemoveBlacklistReq{} + req := &rpc.RemoveBlacklistReq{} utils.CopyStructFields(req.CommID, params) var ok bool ok, req.CommID.OpUserID = token_verify.GetUserIDFromToken(c.Request.Header.Get("token")) @@ -332,31 +258,26 @@ func RemoveBlacklist(c *gin.Context) { log.NewInfo(req.CommID.OperationID, "RemoveBlacklist args ", req.String()) etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImFriendName) - client := pbFriend.NewFriendClient(etcdConn) + client := rpc.NewFriendClient(etcdConn) RpcResp, err := client.RemoveBlacklist(context.Background(), req) if err != nil { log.NewError(req.CommID.OperationID, "RemoveBlacklist failed ", err.Error(), req.String()) c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": "call remove blacklist rpc server failed"}) return } - - resp := gin.H{"errCode": RpcResp.ErrCode, "errMsg": RpcResp.ErrMsg} + resp := api.RemoveBlackListResp{CommResp: api.CommResp{ErrCode: RpcResp.CommonResp.ErrCode, ErrMsg: RpcResp.CommonResp.ErrMsg}} c.JSON(http.StatusOK, resp) - log.NewInfo(req.CommID.OperationID, "SetFriendComment api return ", resp) -} - -type paramsIsFriend struct { - paramsCommFriend + log.NewInfo(req.CommID.OperationID, "RemoveBlacklist api return ", resp) } func IsFriend(c *gin.Context) { - params := paramsIsFriend{} + params := api.IsFriendReq{} if err := c.BindJSON(¶ms); err != nil { log.NewError("0", "BindJSON failed ", err.Error()) c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": err.Error()}) return } - req := &pbFriend.IsFriendReq{} + req := &rpc.IsFriendReq{} utils.CopyStructFields(req.CommID, params) var ok bool ok, req.CommID.OpUserID = token_verify.GetUserIDFromToken(c.Request.Header.Get("token")) @@ -368,96 +289,60 @@ func IsFriend(c *gin.Context) { log.NewInfo(req.CommID.OperationID, "IsFriend args ", req.String()) etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImFriendName) - client := pbFriend.NewFriendClient(etcdConn) + client := rpc.NewFriendClient(etcdConn) RpcResp, err := client.IsFriend(context.Background(), req) if err != nil { log.NewError(req.CommID.OperationID, "IsFriend failed ", err.Error(), req.String()) c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": "call add friend rpc server failed"}) return } - resp := gin.H{"errCode": RpcResp.ErrCode, "errMsg": RpcResp.ErrMsg, "isFriend": RpcResp.ShipType} + resp := api.IsFriendResp{CommResp: api.CommResp{ErrCode: RpcResp.ErrCode, ErrMsg: RpcResp.ErrMsg}, Response: RpcResp.Response} c.JSON(http.StatusOK, resp) log.NewInfo(req.CommID.OperationID, "IsFriend api return ", resp) } -type paramsSearchFriend struct { - paramsCommFriend -} - -func GetFriendsInfo(c *gin.Context) { - params := paramsSearchFriend{} - if err := c.BindJSON(¶ms); err != nil { - log.NewError("0", "BindJSON failed ", err.Error()) - c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": err.Error()}) - return - } - req := &pbFriend.GetFriendsInfoReq{} - utils.CopyStructFields(req.CommID, params) - var ok bool - ok, req.CommID.OpUserID = token_verify.GetUserIDFromToken(c.Request.Header.Get("token")) - if !ok { - log.NewError(req.CommID.OperationID, "GetUserIDFromToken false ", c.Request.Header.Get("token")) - c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": "GetUserIDFromToken failed"}) - return - } - log.NewInfo(req.CommID.OperationID, "GetFriendsInfo args ", req.String()) - - etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImFriendName) - client := pbFriend.NewFriendClient(etcdConn) - RpcResp, err := client.GetFriendsInfo(context.Background(), req) - if err != nil { - log.NewError(req.CommID.OperationID, "GetFriendsInfo failed ", err.Error(), req.String()) - c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": "call search friend rpc server failed"}) - return - } - - if RpcResp.ErrCode == 0 { - var fi friendInfo - utils.CopyStructFields(&fi, RpcResp.Data.FriendUser) - utils.CopyStructFields(&fi, RpcResp.Data) - - resp := gin.H{ - "errCode": RpcResp.ErrCode, - "errMsg": RpcResp.ErrMsg, - "data": fi, - } - log.NewInfo(req.CommID.OperationID, "IsFriend api return ", resp) - c.JSON(http.StatusOK, resp) - } else { - resp := gin.H{ - "errCode": RpcResp.ErrCode, - "errMsg": RpcResp.ErrMsg, - } - log.NewInfo(req.CommID.OperationID, "IsFriend api return ", resp) - c.JSON(http.StatusOK, resp) - } -} - -type paramsGetFriendList struct { - paramsCommFriend -} - -type friendInfo struct { - UserID string `json:"userID"` - Nickname string `json:"nickname"` - FaceUrl string `json:"faceUrl"` - Gender int32 `json:"gender"` - Mobile string `json:"mobile"` - Birth string `json:"birth"` - Email string `json:"email"` - Ext string `json:"ext"` - Remark string `json:"remark"` - IsBlack int32 `json:"isBlack"` -} +// +//func GetFriendsInfo(c *gin.Context) { +// params := api.GetFriendsInfoReq{} +// if err := c.BindJSON(¶ms); err != nil { +// log.NewError("0", "BindJSON failed ", err.Error()) +// c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": err.Error()}) +// return +// } +// req := &rpc.GetFriendsInfoReq{} +// utils.CopyStructFields(req.CommID, params) +// var ok bool +// ok, req.CommID.OpUserID = token_verify.GetUserIDFromToken(c.Request.Header.Get("token")) +// if !ok { +// log.NewError(req.CommID.OperationID, "GetUserIDFromToken false ", c.Request.Header.Get("token")) +// c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": "GetUserIDFromToken failed"}) +// return +// } +// log.NewInfo(req.CommID.OperationID, "GetFriendsInfo args ", req.String()) +// +// etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImFriendName) +// client := rpc.NewFriendClient(etcdConn) +// RpcResp, err := client.GetFriendsInfo(context.Background(), req) +// if err != nil { +// log.NewError(req.CommID.OperationID, "GetFriendsInfo failed ", err.Error(), req.String()) +// c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": "call search friend rpc server failed"}) +// return +// } +// +// resp := api.GetFriendsInfoResp{CommResp:api.CommResp{ErrCode: RpcResp.ErrCode, ErrMsg: RpcResp.ErrMsg}} +// utils.CopyStructFields(&resp, RpcResp) +// c.JSON(http.StatusOK, resp) +// log.NewInfo(req.CommID.OperationID, "GetFriendsInfo api return ", resp) +//} func GetFriendList(c *gin.Context) { - params := paramsGetFriendList{} + params := api.GetFriendListReq{} if err := c.BindJSON(¶ms); err != nil { log.NewError("0", "BindJSON failed ", err.Error()) c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": err.Error()}) return } - req := &pbFriend.GetFriendListReq{} + req := &rpc.GetFriendListReq{} utils.CopyStructFields(req.CommID, params) var ok bool ok, req.CommID.OpUserID = token_verify.GetUserIDFromToken(c.Request.Header.Get("token")) @@ -469,7 +354,7 @@ func GetFriendList(c *gin.Context) { log.NewInfo(req.CommID.OperationID, "GetFriendList args ", req.String()) etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImFriendName) - client := pbFriend.NewFriendClient(etcdConn) + client := rpc.NewFriendClient(etcdConn) RpcResp, err := client.GetFriendList(context.Background(), req) if err != nil { log.NewError(req.CommID.OperationID, "GetFriendList failed ", err.Error(), req.String()) @@ -477,49 +362,19 @@ func GetFriendList(c *gin.Context) { return } - if RpcResp.ErrCode == 0 { - friendsInfo := make([]friendInfo, 0) - for _, friend := range RpcResp.Data { - - var fi friendInfo - utils.CopyStructFields(&fi, friend.FriendUser) - utils.CopyStructFields(&fi, RpcResp.Data) - friendsInfo = append(friendsInfo, fi) - } - resp := gin.H{ - "errCode": RpcResp.ErrCode, - "errMsg": RpcResp.ErrMsg, - "data": friendsInfo, - } - c.JSON(http.StatusOK, resp) - log.NewInfo(req.CommID.OperationID, "IsFriend api return ", resp) - } else { - resp := gin.H{"errCode": RpcResp.ErrCode, "errMsg": RpcResp.ErrMsg} - c.JSON(http.StatusOK, resp) - log.NewInfo(req.CommID.OperationID, "IsFriend api return ", resp) - } - -} - -type paramsGetApplyList struct { - paramsCommFriend -} - -type FriendApplicationUserInfo struct { - PublicUserInfo - ApplyTime int64 `json:"applyTime"` - ReqMessage string `json:"reqMessage` - Flag int32 `json:"flag"` + resp := api.GetFriendListResp{CommResp: api.CommResp{ErrCode: RpcResp.ErrCode, ErrMsg: RpcResp.ErrMsg}} + utils.CopyStructFields(&resp, RpcResp) + log.NewInfo(req.CommID.OperationID, "GetFriendList api return ", resp) } func GetFriendApplyList(c *gin.Context) { - params := paramsGetApplyList{} + params := api.GetFriendApplyListReq{} if err := c.BindJSON(¶ms); err != nil { log.NewError("0", "BindJSON failed ", err.Error()) c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": err.Error()}) return } - req := &pbFriend.GetFriendApplyReq{} + req := &rpc.GetFriendApplyListReq{} utils.CopyStructFields(req.CommID, params) var ok bool ok, req.CommID.OpUserID = token_verify.GetUserIDFromToken(c.Request.Header.Get("token")) @@ -531,7 +386,7 @@ func GetFriendApplyList(c *gin.Context) { log.NewInfo(req.CommID.OperationID, "GetFriendApplyList args ", req.String()) etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImFriendName) - client := pbFriend.NewFriendClient(etcdConn) + client := rpc.NewFriendClient(etcdConn) RpcResp, err := client.GetFriendApplyList(context.Background(), req) if err != nil { @@ -540,32 +395,20 @@ func GetFriendApplyList(c *gin.Context) { return } - if RpcResp.ErrCode == 0 { - userInfoList := make([]FriendApplicationUserInfo, 0) - for _, applyUserinfo := range RpcResp.Data { - var un FriendApplicationUserInfo - utils.CopyStructFields(&un, applyUserinfo.UserInfo) - utils.CopyStructFields(&un, applyUserinfo) - userInfoList = append(userInfoList, un) - } - resp := gin.H{"errCode": RpcResp.ErrCode, "errMsg": RpcResp.ErrMsg, "data": userInfoList} - c.JSON(http.StatusOK, resp) - log.NewInfo(req.CommID.OperationID, "IsFriend api return ", resp) - } else { - resp := gin.H{"errCode": RpcResp.ErrCode, "errMsg": RpcResp.ErrMsg} - c.JSON(http.StatusOK, resp) - log.NewInfo(req.CommID.OperationID, "IsFriend api return ", resp) - } + resp := api.GetFriendApplyListResp{CommResp: api.CommResp{ErrCode: RpcResp.ErrCode, ErrMsg: RpcResp.ErrMsg}} + utils.CopyStructFields(&resp, RpcResp) + log.NewInfo(req.CommID.OperationID, "GetFriendApplyList api return ", resp) + } func GetSelfApplyList(c *gin.Context) { - params := paramsGetApplyList{} + params := api.GetSelfApplyListReq{} if err := c.BindJSON(¶ms); err != nil { log.NewError("0", "BindJSON failed ", err.Error()) c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": err.Error()}) return } - req := &pbFriend.GetFriendApplyReq{} + req := &rpc.GetSelfApplyListReq{} utils.CopyStructFields(req.CommID, params) var ok bool ok, req.CommID.OpUserID = token_verify.GetUserIDFromToken(c.Request.Header.Get("token")) @@ -577,7 +420,7 @@ func GetSelfApplyList(c *gin.Context) { log.NewInfo(req.CommID.OperationID, "GetSelfApplyList args ", req.String()) etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImFriendName) - client := pbFriend.NewFriendClient(etcdConn) + client := rpc.NewFriendClient(etcdConn) RpcResp, err := client.GetSelfApplyList(context.Background(), req) if err != nil { log.NewError(req.CommID.OperationID, "GetSelfApplyList failed ", err.Error(), req.String()) @@ -585,20 +428,9 @@ func GetSelfApplyList(c *gin.Context) { return } - if RpcResp.ErrCode == 0 { - userInfoList := make([]FriendApplicationUserInfo, 0) - for _, applyUserinfo := range RpcResp.Data { - var un FriendApplicationUserInfo - utils.CopyStructFields(&un, applyUserinfo.UserInfo) - utils.CopyStructFields(&un, applyUserinfo) - userInfoList = append(userInfoList, un) - } - resp := gin.H{"errCode": RpcResp.ErrCode, "errMsg": RpcResp.ErrMsg, "data": userInfoList} - c.JSON(http.StatusOK, resp) - log.NewInfo(req.CommID.OperationID, "IsFriend api return ", resp) - } else { - resp := gin.H{"errCode": RpcResp.ErrCode, "errMsg": RpcResp.ErrMsg} - c.JSON(http.StatusOK, resp) - log.NewInfo(req.CommID.OperationID, "IsFriend api return ", resp) - } + resp := api.GetSelfApplyListResp{CommResp: api.CommResp{ErrCode: RpcResp.ErrCode, ErrMsg: RpcResp.ErrMsg}} + utils.CopyStructFields(resp, RpcResp) + c.JSON(http.StatusOK, resp) + log.NewInfo(req.CommID.OperationID, "GetSelfApplyList api return ", resp) + } diff --git a/internal/api/group/group.go b/internal/api/group/group.go index 10ddf9ddd..860350173 100644 --- a/internal/api/group/group.go +++ b/internal/api/group/group.go @@ -1,791 +1,478 @@ package group import ( + api "Open_IM/pkg/base_info" "Open_IM/pkg/common/config" "Open_IM/pkg/common/log" "Open_IM/pkg/common/token_verify" "Open_IM/pkg/grpc-etcdv3/getcdv3" - pb "Open_IM/pkg/proto/group" + rpc "Open_IM/pkg/proto/group" + "Open_IM/pkg/utils" "context" - "fmt" "github.com/gin-gonic/gin" "net/http" "strings" ) -type InviteUserToGroupReq struct { - GroupID string `json:"groupID" binding:"required"` - UidList []string `json:"uidList" binding:"required"` - Reason string `json:"reason"` - OperationID string `json:"operationID" binding:"required"` -} - -type GetJoinedGroupListReq struct { - OperationID string `json:"operationID" binding:"required"` -} - -type KickGroupMemberReq struct { - GroupID string `json:"groupID"` - UidListInfo []*pb.GroupMemberFullInfo `json:"uidListInfo" binding:"required"` - Reason string `json:"reason"` - OperationID string `json:"operationID" binding:"required"` -} - func KickGroupMember(c *gin.Context) { - - params := KickGroupMemberReq{} + params := api.KickGroupMemberReq{} if err := c.BindJSON(¶ms); err != nil { + log.NewError("0", "BindJSON failed ", err.Error()) c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": err.Error()}) return } - req := &pb.KickGroupMemberReq{ - OperationID: params.OperationID, - GroupID: params.GroupID, - Token: c.Request.Header.Get("token"), - - UidListInfo: params.UidListInfo, + req := &rpc.KickGroupMemberReq{} + utils.CopyStructFields(req, params) + var ok bool + ok, req.OpUserID = token_verify.GetUserIDFromToken(c.Request.Header.Get("token")) + if !ok { + log.NewError(req.OperationID, "GetUserIDFromToken false ", c.Request.Header.Get("token")) + c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": "GetUserIDFromToken failed"}) + return } - log.Info(req.Token, req.OperationID, "recv req: ", req.String()) + + log.NewInfo(req.OperationID, "KickGroupMember args ", req.String()) + etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImGroupName) - client := pb.NewGroupClient(etcdConn) + client := rpc.NewGroupClient(etcdConn) RpcResp, err := client.KickGroupMember(context.Background(), req) if err != nil { - log.Error(req.Token, req.OperationID, "GetGroupMemberList failed, err: ", err.Error()) + log.NewError(req.OperationID, "GetGroupMemberList failed ", err.Error()) c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": err.Error()}) return } - type KickGroupMemberResp struct { - ErrorCode int32 `json:"errCode"` - ErrorMsg string `json:"errMsg"` - Data []Id2Result `json:"data"` - } - - var memberListResp KickGroupMemberResp - memberListResp.ErrorMsg = RpcResp.ErrorMsg - memberListResp.ErrorCode = RpcResp.ErrorCode - for _, v := range RpcResp.Id2Result { - memberListResp.Data = append(memberListResp.Data, - Id2Result{UId: v.UId, - Result: v.Result}) + var memberListResp api.KickGroupMemberResp + memberListResp.ErrMsg = RpcResp.ErrMsg + memberListResp.ErrCode = RpcResp.ErrCode + for _, v := range RpcResp.Id2ResultList { + memberListResp.Data = append(memberListResp.Data, &api.Id2Result{UserID: v.UserID, Result: v.Result}) } + log.NewInfo(req.OperationID, "KickGroupMember api return ", memberListResp) c.JSON(http.StatusOK, memberListResp) } -type GetGroupMembersInfoReq struct { - GroupID string `json:"groupID"` - MemberList []string `json:"memberList"` - OperationID string `json:"operationID"` -} -type GetGroupMembersInfoResp struct { - ErrorCode int32 `json:"errCode"` - ErrorMsg string `json:"errMsg"` - Data []MemberResult `json:"data"` -} - func GetGroupMembersInfo(c *gin.Context) { - log.Info("", "", "GetGroupMembersInfo start....") - - etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImGroupName) - client := pb.NewGroupClient(etcdConn) - - params := GetGroupMembersInfoReq{} + params := api.GetGroupMembersInfoReq{} if err := c.BindJSON(¶ms); err != nil { + log.NewError("0", "BindJSON failed ", err.Error()) c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": err.Error()}) return } - - req := &pb.GetGroupMembersInfoReq{ - OperationID: params.OperationID, - GroupID: params.GroupID, - MemberList: params.MemberList, - Token: c.Request.Header.Get("token"), + req := &rpc.GetGroupMembersInfoReq{} + utils.CopyStructFields(req, params) + var ok bool + ok, req.OpUserID = token_verify.GetUserIDFromToken(c.Request.Header.Get("token")) + if !ok { + log.NewError(req.OperationID, "GetUserIDFromToken false ", c.Request.Header.Get("token")) + c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": "GetUserIDFromToken failed"}) + return } - log.Info(req.Token, req.OperationID, "recv req: ", len(params.MemberList)) + log.NewInfo(req.OperationID, "GetGroupMembersInfo args ", req.String()) + + etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImGroupName) + client := rpc.NewGroupClient(etcdConn) RpcResp, err := client.GetGroupMembersInfo(context.Background(), req) if err != nil { - log.Error(req.Token, req.OperationID, "GetGroupMemberList failed, err: ", err.Error()) + log.NewError(req.OperationID, "GetGroupMemberList failed ", err.Error(), req.String()) c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": err.Error()}) return } - var memberListResp GetGroupMembersInfoResp - memberListResp.ErrorMsg = RpcResp.ErrorMsg - memberListResp.ErrorCode = RpcResp.ErrorCode - for _, v := range RpcResp.MemberList { - memberListResp.Data = append(memberListResp.Data, - MemberResult{GroupId: req.GroupID, - UserId: v.UserId, - Role: v.Role, - JoinTime: uint64(v.JoinTime), - Nickname: v.NickName, - FaceUrl: v.FaceUrl}) - } + memberListResp := api.GetGroupMembersInfoResp{CommResp: api.CommResp{ErrCode: RpcResp.ErrCode, ErrMsg: RpcResp.ErrMsg}, Data: RpcResp.MemberList} + log.NewInfo(req.OperationID, "GetGroupMembersInfo api return ", memberListResp) c.JSON(http.StatusOK, memberListResp) } -type GetGroupMemberListReq struct { - GroupID string `json:"groupID"` - Filter int32 `json:"filter"` - NextSeq int32 `json:"nextSeq"` - OperationID string `json:"operationID"` -} -type getGroupAllMemberReq struct { - GroupID string `json:"groupID"` - OperationID string `json:"operationID"` -} - -type MemberResult struct { - GroupId string `json:"groupID"` - UserId string `json:"userId"` - Role int32 `json:"role"` - JoinTime uint64 `json:"joinTime"` - Nickname string `json:"nickName"` - FaceUrl string `json:"faceUrl"` -} - func GetGroupMemberList(c *gin.Context) { - log.Info("", "", "GetGroupMemberList start....") - - etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImGroupName) - client := pb.NewGroupClient(etcdConn) - - params := GetGroupMemberListReq{} + params := api.GetGroupMemberListReq{} if err := c.BindJSON(¶ms); err != nil { + log.NewError("0", "BindJSON failed ", err.Error()) c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": err.Error()}) return } - req := &pb.GetGroupMemberListReq{ - OperationID: params.OperationID, - Filter: params.Filter, - NextSeq: params.NextSeq, - GroupID: params.GroupID, - Token: c.Request.Header.Get("token"), + req := &rpc.GetGroupMemberListReq{} + utils.CopyStructFields(req, params) + var ok bool + ok, req.OpUserID = token_verify.GetUserIDFromToken(c.Request.Header.Get("token")) + if !ok { + log.NewError(req.OperationID, "GetUserIDFromToken false ", c.Request.Header.Get("token")) + c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": "GetUserIDFromToken failed"}) + return } - log.Info(req.Token, req.OperationID, "recv req: ", req.String()) + log.NewInfo(req.OperationID, "GetGroupMemberList args ", req.String()) + + etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImGroupName) + client := rpc.NewGroupClient(etcdConn) + RpcResp, err := client.GetGroupMemberList(context.Background(), req) if err != nil { - log.Error(req.Token, req.OperationID, "GetGroupMemberList failed, err: ", err.Error()) + log.NewError(req.OperationID, "GetGroupMemberList failed, ", err.Error(), req.String()) c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": err.Error()}) return } - type GetGroupMemberListResp struct { - ErrorCode int32 `json:"errCode"` - ErrorMsg string `json:"errMsg"` - NextSeq int32 `json:"nextSeq"` - Data []MemberResult `json:"data"` - } - - var memberListResp GetGroupMemberListResp - memberListResp.ErrorMsg = RpcResp.ErrorMsg - memberListResp.ErrorCode = RpcResp.ErrorCode - memberListResp.NextSeq = RpcResp.NextSeq - for _, v := range RpcResp.MemberList { - memberListResp.Data = append(memberListResp.Data, - MemberResult{GroupId: req.GroupID, - UserId: v.UserId, - Role: v.Role, - JoinTime: uint64(v.JoinTime), - Nickname: v.NickName, - FaceUrl: v.FaceUrl}) - } + memberListResp := api.GetGroupMemberListResp{CommResp: api.CommResp{ErrCode: RpcResp.ErrCode, ErrMsg: RpcResp.ErrMsg}, Data: RpcResp.MemberList, NextSeq: RpcResp.NextSeq} c.JSON(http.StatusOK, memberListResp) - + log.NewInfo(req.OperationID, "GetGroupMemberList api return ", memberListResp) } func GetGroupAllMember(c *gin.Context) { - log.Info("", "", "GetGroupAllMember start....") - - etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImGroupName) - client := pb.NewGroupClient(etcdConn) - - params := getGroupAllMemberReq{} + params := api.GetGroupAllMemberReq{} if err := c.BindJSON(¶ms); err != nil { + log.NewError("0", "BindJSON failed ", err.Error()) c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": err.Error()}) return } - req := &pb.GetGroupAllMemberReq{ - GroupID: params.GroupID, - OperationID: params.OperationID, - Token: c.Request.Header.Get("token"), + req := &rpc.GetGroupAllMemberReq{} + utils.CopyStructFields(req, params) + var ok bool + ok, req.OpUserID = token_verify.GetUserIDFromToken(c.Request.Header.Get("token")) + if !ok { + log.NewError(req.OperationID, "GetUserIDFromToken false ", c.Request.Header.Get("token")) + c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": "GetUserIDFromToken failed"}) + return } - log.Info(req.Token, req.OperationID, "recv req: ", req.String()) + log.NewInfo(req.OperationID, "GetGroupAllMember args ", req.String()) + + etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImGroupName) + client := rpc.NewGroupClient(etcdConn) RpcResp, err := client.GetGroupAllMember(context.Background(), req) if err != nil { - log.Error(req.Token, req.OperationID, "GetGroupAllMember failed, err: ", err.Error()) + log.NewError(req.OperationID, "GetGroupAllMember failed ", err.Error(), req.String()) c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": err.Error()}) return } - type GetGroupMemberListResp struct { - ErrorCode int32 `json:"errCode"` - ErrorMsg string `json:"errMsg"` - Data []MemberResult `json:"data"` - } - - var memberListResp GetGroupMemberListResp - memberListResp.ErrorMsg = RpcResp.ErrorMsg - memberListResp.ErrorCode = RpcResp.ErrorCode - for _, v := range RpcResp.MemberList { - memberListResp.Data = append(memberListResp.Data, - MemberResult{GroupId: req.GroupID, - UserId: v.UserId, - Role: v.Role, - JoinTime: uint64(v.JoinTime), - Nickname: v.NickName, - FaceUrl: v.FaceUrl}) - } + memberListResp := api.GetGroupAllMemberResp{CommResp: api.CommResp{ErrCode: RpcResp.ErrCode, ErrMsg: RpcResp.ErrMsg}, Data: RpcResp.MemberList} c.JSON(http.StatusOK, memberListResp) -} - -type groupResult struct { - GroupId string `json:"groupId"` - GroupName string `json:"groupName"` - Notification string `json:"notification"` - Introduction string `json:"introduction"` - FaceUrl string `json:"faceUrl"` - OwnerId string `json:"ownerId"` - CreateTime uint64 `json:"createTime"` - MemberCount uint32 `json:"memberCount"` + log.NewInfo(req.OperationID, "GetGroupAllMember api return ", memberListResp) } func GetJoinedGroupList(c *gin.Context) { - log.Info("", "", "GetJoinedGroupList start....") - - etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImGroupName) - fmt.Println("config: ", etcdConn, config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImGroupName) - client := pb.NewGroupClient(etcdConn) - - params := GetJoinedGroupListReq{} + params := api.GetJoinedGroupListReq{} if err := c.BindJSON(¶ms); err != nil { + log.NewError("0", "BindJSON failed ", err.Error()) c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": err.Error()}) return } - req := &pb.GetJoinedGroupListReq{ - OperationID: params.OperationID, - Token: c.Request.Header.Get("token"), + req := &rpc.GetJoinedGroupListReq{} + utils.CopyStructFields(req, params) + var ok bool + ok, req.OpUserID = token_verify.GetUserIDFromToken(c.Request.Header.Get("token")) + if !ok { + log.NewError(req.OperationID, "GetUserIDFromToken false ", c.Request.Header.Get("token")) + c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": "GetUserIDFromToken failed"}) + return } - log.Info(req.Token, req.OperationID, "recv req: ", req.String()) + log.NewInfo(req.OperationID, "GetJoinedGroupList args ", req.String()) + etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImGroupName) + client := rpc.NewGroupClient(etcdConn) RpcResp, err := client.GetJoinedGroupList(context.Background(), req) if err != nil { - log.Error(req.Token, req.OperationID, "GetJoinedGroupList failed, err: ", err.Error()) + log.NewError(req.OperationID, "GetJoinedGroupList failed ", err.Error(), req.String()) c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": err.Error()}) return } - log.Info(req.Token, req.OperationID, "GetJoinedGroupList: ", RpcResp) - type GetJoinedGroupListResp struct { - ErrorCode int32 `json:"errCode"` - ErrorMsg string `json:"errMsg"` - Data []groupResult `json:"data"` - } - - var GroupListResp GetJoinedGroupListResp - GroupListResp.ErrorCode = RpcResp.ErrorCode - GroupListResp.ErrorMsg = RpcResp.ErrorMsg - for _, v := range RpcResp.GroupList { - GroupListResp.Data = append(GroupListResp.Data, - groupResult{GroupId: v.GroupId, GroupName: v.GroupName, - Notification: v.Notification, - Introduction: v.Introduction, - FaceUrl: v.FaceUrl, - OwnerId: v.OwnerId, - CreateTime: v.CreateTime, - MemberCount: v.MemberCount}) - } + GroupListResp := api.GetJoinedGroupListResp{CommResp: api.CommResp{ErrCode: RpcResp.ErrCode, ErrMsg: RpcResp.ErrMsg}, Data: RpcResp.GroupList} c.JSON(http.StatusOK, GroupListResp) -} - -type Id2Result struct { - UId string `json:"uid"` - Result int32 `json:"result"` + log.NewInfo(req.OperationID, "GetJoinedGroupList api return ", GroupListResp) } func InviteUserToGroup(c *gin.Context) { - log.Info("", "", "InviteUserToGroup start....") - etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImGroupName) - client := pb.NewGroupClient(etcdConn) - - params := InviteUserToGroupReq{} + params := api.InviteUserToGroupReq{} if err := c.BindJSON(¶ms); err != nil { + log.NewError("0", "BindJSON failed ", err.Error()) c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": err.Error()}) return } - req := &pb.InviteUserToGroupReq{ - OperationID: params.OperationID, - GroupID: params.GroupID, - Reason: params.Reason, - UidList: params.UidList, - Token: c.Request.Header.Get("token"), + req := &rpc.InviteUserToGroupReq{} + utils.CopyStructFields(req, params) + var ok bool + ok, req.OpUserID = token_verify.GetUserIDFromToken(c.Request.Header.Get("token")) + if !ok { + log.NewError(req.OperationID, "GetUserIDFromToken false ", c.Request.Header.Get("token")) + c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": "GetUserIDFromToken failed"}) + return } - log.Info(req.Token, req.OperationID, "recv req: ", req.String()) + log.NewInfo(req.OperationID, "InviteUserToGroup args ", req.String()) + etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImGroupName) + client := rpc.NewGroupClient(etcdConn) RpcResp, err := client.InviteUserToGroup(context.Background(), req) if err != nil { - log.Error(req.Token, req.OperationID, "InviteUserToGroup failed, err: ", err.Error()) + log.NewError(req.OperationID, "InviteUserToGroup failed ", err.Error(), req.String()) c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": err.Error()}) return } - type InviteUserToGroupResp struct { - ErrorCode int32 `json:"errCode"` - ErrorMsg string `json:"errMsg"` - I2R []Id2Result `json:"data"` + Resp := api.InviteUserToGroupResp{CommResp: api.CommResp{ErrCode: RpcResp.ErrCode, ErrMsg: RpcResp.ErrMsg}} + for _, v := range RpcResp.Id2ResultList { + Resp.Data = append(Resp.Data, api.Id2Result{UserID: v.UserID, Result: v.Result}) } - - var iResp InviteUserToGroupResp - iResp.ErrorMsg = RpcResp.ErrorMsg - iResp.ErrorCode = RpcResp.ErrorCode - for _, v := range RpcResp.Id2Result { - iResp.I2R = append(iResp.I2R, Id2Result{UId: v.UId, Result: v.Result}) - } - - //resp := gin.H{"errCode": RpcResp.ErrorCode, "errMsg": RpcResp.ErrorMsg, "data": RpcResp.Id2Result} - c.JSON(http.StatusOK, iResp) -} - -type paramsCreateGroupStruct struct { - MemberList []*pb.GroupAddMemberInfo `json:"memberList"` - GroupName string `json:"groupName"` - Introduction string `json:"introduction"` - Notification string `json:"notification"` - FaceUrl string `json:"faceUrl"` - OperationID string `json:"operationID" binding:"required"` - Ex string `json:"ex"` + c.JSON(http.StatusOK, Resp) + log.NewInfo(req.OperationID, "InviteUserToGroup api return ", Resp) } func CreateGroup(c *gin.Context) { - log.Info("", "", "api create group init ....") - - etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImGroupName) - client := pb.NewGroupClient(etcdConn) - //defer etcdConn.Close() - - params := paramsCreateGroupStruct{} + params := api.CreateGroupReq{} if err := c.BindJSON(¶ms); err != nil { + log.NewError("0", "BindJSON failed ", err.Error()) c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": err.Error()}) return } - req := &pb.CreateGroupReq{ - MemberList: params.MemberList, - GroupName: params.GroupName, - Introduction: params.Introduction, - Notification: params.Notification, - FaceUrl: params.FaceUrl, - OperationID: params.OperationID, - Ex: params.Ex, - Token: c.Request.Header.Get("token"), + req := &rpc.CreateGroupReq{} + utils.CopyStructFields(req, params) + var ok bool + ok, req.OpUserID = token_verify.GetUserIDFromToken(c.Request.Header.Get("token")) + if !ok { + log.NewError(req.OperationID, "GetUserIDFromToken false ", c.Request.Header.Get("token")) + c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": "GetUserIDFromToken failed"}) + return } - log.Info(req.Token, req.OperationID, "api create group is server,params=%s", req.String()) + log.NewInfo(req.OperationID, "CreateGroup args ", req.String()) + + etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImGroupName) + client := rpc.NewGroupClient(etcdConn) RpcResp, err := client.CreateGroup(context.Background(), req) if err != nil { - log.Error(req.Token, req.OperationID, "err=%s,call create group rpc server failed", err.Error()) + log.NewError(req.OperationID, "CreateGroup failed", err.Error(), req.String()) c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": "call rpc server failed"}) return } - log.InfoByArgs("call create group rpc server success,args=%s", RpcResp.String()) - if RpcResp.ErrorCode == 0 { - resp := gin.H{"errCode": RpcResp.ErrorCode, "errMsg": RpcResp.ErrorMsg, "data": gin.H{"groupID": RpcResp.GroupID}} + + if RpcResp.ErrCode == 0 { + resp := gin.H{"errCode": RpcResp.ErrCode, "errMsg": RpcResp.ErrMsg, "data": gin.H{"groupInfo": RpcResp.GroupInfo}} c.JSON(http.StatusOK, resp) } else { - c.JSON(http.StatusOK, gin.H{"errCode": RpcResp.ErrorCode, "errMsg": RpcResp.ErrorMsg}) - } - log.InfoByArgs("api create group success return,get args=%s,return args=%s", req.String(), RpcResp.String()) -} - -type paramsGroupApplicationList struct { - OperationID string `json:"operationID" binding:"required"` -} - -func newUserRegisterReq(params *paramsGroupApplicationList) *group.GetGroupApplicationListReq { - pbData := group.GetGroupApplicationListReq{ - OperationID: params.OperationID, + c.JSON(http.StatusOK, gin.H{"errCode": RpcResp.ErrCode, "errMsg": RpcResp.ErrMsg}) } - return &pbData -} - -type paramsGroupApplicationListRet struct { - ID string `json:"id"` - GroupID string `json:"groupID"` - FromUserID string `json:"fromUserID"` - ToUserID string `json:"toUserID"` - Flag int32 `json:"flag"` - RequestMsg string `json:"reqMsg"` - HandledMsg string `json:"handledMsg"` - AddTime int64 `json:"createTime"` - FromUserNickname string `json:"fromUserNickName"` - ToUserNickname string `json:"toUserNickName"` - FromUserFaceUrl string `json:"fromUserFaceURL"` - ToUserFaceUrl string `json:"toUserFaceURL"` - HandledUser string `json:"handledUser"` - Type int32 `json:"type"` - HandleStatus int32 `json:"handleStatus"` - HandleResult int32 `json:"handleResult"` + log.NewInfo(req.OperationID, "InviteUserToGroup api return ", RpcResp) } +//my application 我发出去的 func GetGroupApplicationList(c *gin.Context) { - log.Info("", "", "api GetGroupApplicationList init ....") - etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImGroupName) - client := group.NewGroupClient(etcdConn) - //defer etcdConn.Close() - - params := paramsGroupApplicationList{} + params := api.GetGroupApplicationListReq{} if err := c.BindJSON(¶ms); err != nil { + log.NewError("0", "BindJSON failed ", err.Error()) c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": err.Error()}) return } - pbData := newUserRegisterReq(¶ms) - - token := c.Request.Header.Get("token") - if claims, err := token_verify.ParseToken(token); err != nil { - c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": "token validate err"}) + req := &rpc.GetGroupApplicationListReq{} + utils.CopyStructFields(req, params) + var ok bool + ok, req.OpUserID = token_verify.GetUserIDFromToken(c.Request.Header.Get("token")) + if !ok { + log.NewError(req.OperationID, "GetUserIDFromToken false ", c.Request.Header.Get("token")) + c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": "GetUserIDFromToken failed"}) return - } else { - pbData.UID = claims.UID } + log.NewInfo(req.OperationID, "GetGroupApplicationList args ", req.String()) + + etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImGroupName) + client := rpc.NewGroupClient(etcdConn) - log.Info("", "", "api GetGroupApplicationList is server, [data: %s]", pbData.String()) - reply, err := client.GetGroupApplicationList(context.Background(), pbData) + reply, err := client.GetGroupApplicationList(context.Background(), req) if err != nil { - log.Error("", "", "api GetGroupApplicationList call rpc fail, [data: %s] [err: %s]", pbData.String(), err.Error()) c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": err.Error()}) return } - log.Info("", "", "api GetGroupApplicationList call rpc success, [data: %s] [reply: %s]", pbData.String(), reply.String()) - - unProcessCount := 0 - userReq := make([]paramsGroupApplicationListRet, 0) - if reply != nil && reply.Data != nil && reply.Data.User != nil { - for i := 0; i < len(reply.Data.User); i++ { - req := paramsGroupApplicationListRet{} - req.ID = reply.Data.User[i].ID - req.GroupID = reply.Data.User[i].GroupID - req.FromUserID = reply.Data.User[i].FromUserID - req.ToUserID = reply.Data.User[i].ToUserID - req.Flag = reply.Data.User[i].Flag - req.RequestMsg = reply.Data.User[i].RequestMsg - req.HandledMsg = reply.Data.User[i].HandledMsg - req.AddTime = reply.Data.User[i].AddTime - req.FromUserNickname = reply.Data.User[i].FromUserNickname - req.ToUserNickname = reply.Data.User[i].ToUserNickname - req.FromUserFaceUrl = reply.Data.User[i].FromUserFaceUrl - req.ToUserFaceUrl = reply.Data.User[i].ToUserFaceUrl - req.HandledUser = reply.Data.User[i].HandledUser - req.Type = reply.Data.User[i].Type - req.HandleStatus = reply.Data.User[i].HandleStatus - req.HandleResult = reply.Data.User[i].HandleResult - userReq = append(userReq, req) - - if req.Flag == 0 { - unProcessCount++ - } - } - } - - c.JSON(http.StatusOK, gin.H{ - "errCode": reply.ErrCode, - "errMsg": reply.ErrMsg, - "data": gin.H{ - "count": unProcessCount, - "user": userReq, - }, - }) -} - -type paramsGetGroupInfo struct { - GroupIDList []string `json:"groupIDList" binding:"required"` - OperationID string `json:"operationID" binding:"required"` + resp := api.GetGroupApplicationListResp{CommResp: api.CommResp{ErrCode: reply.ErrCode, ErrMsg: reply.ErrMsg}, Data: reply.GroupRequestList} + c.JSON(http.StatusOK, resp) + log.NewInfo(req.OperationID, "GetGroupApplicationList api return ", resp) } func GetGroupsInfo(c *gin.Context) { - log.Info("", "", "api get groups info init ....") - - etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImGroupName) - client := pb.NewGroupClient(etcdConn) - //defer etcdConn.Close() - - params := paramsGetGroupInfo{} + params := api.GetGroupInfoReq{} if err := c.BindJSON(¶ms); err != nil { + log.NewError("0", "BindJSON failed ", err.Error()) c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": err.Error()}) return } - req := &pb.GetGroupsInfoReq{ - GroupIDList: params.GroupIDList, - Token: c.Request.Header.Get("token"), - OperationID: params.OperationID, + req := &rpc.GetGroupsInfoReq{} + utils.CopyStructFields(req, params) + var ok bool + ok, req.OpUserID = token_verify.GetUserIDFromToken(c.Request.Header.Get("token")) + if !ok { + log.NewError(req.OperationID, "GetUserIDFromToken false ", c.Request.Header.Get("token")) + c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": "GetUserIDFromToken failed"}) + return } - log.Info(req.Token, req.OperationID, "get groups info is server,params=%s", req.String()) + log.NewInfo(req.OperationID, "GetGroupsInfo args ", req.String()) + + etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImGroupName) + client := rpc.NewGroupClient(etcdConn) RpcResp, err := client.GetGroupsInfo(context.Background(), req) if err != nil { - log.Error(req.Token, req.OperationID, "call get groups info rpc server failed,err=%s", err.Error()) + log.NewError(req.OperationID, "GetGroupsInfo failed ", err.Error(), req.String()) c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": "call rpc server failed"}) return } - log.InfoByArgs("call get groups info rpc server success", RpcResp.String()) - if RpcResp.ErrorCode == 0 { - groupsInfo := make([]pb.GroupInfo, 0) - for _, v := range RpcResp.Data { - var groupInfo pb.GroupInfo - groupInfo.GroupId = v.GroupId - groupInfo.GroupName = v.GroupName - groupInfo.Notification = v.Notification - groupInfo.Introduction = v.Introduction - groupInfo.FaceUrl = v.FaceUrl - groupInfo.CreateTime = v.CreateTime - groupInfo.OwnerId = v.OwnerId - groupInfo.MemberCount = v.MemberCount - - groupsInfo = append(groupsInfo, groupInfo) - } - c.JSON(http.StatusOK, gin.H{ - "errCode": RpcResp.ErrorCode, - "errMsg": RpcResp.ErrorMsg, - "data": groupsInfo, - }) - } else { - c.JSON(http.StatusOK, gin.H{"errCode": RpcResp.ErrorCode, "errMsg": RpcResp.ErrorMsg}) - } -} -type paramsGroupApplicationResponse struct { - OperationID string `json:"operationID" binding:"required"` - GroupID string `json:"groupID" binding:"required"` - FromUserID string `json:"fromUserID" binding:"required"` - FromUserNickName string `json:"fromUserNickName"` - FromUserFaceUrl string `json:"fromUserFaceUrl"` - ToUserID string `json:"toUserID" binding:"required"` - ToUserNickName string `json:"toUserNickName"` - ToUserFaceUrl string `json:"toUserFaceUrl"` - AddTime int64 `json:"addTime"` - RequestMsg string `json:"requestMsg"` - HandledMsg string `json:"handledMsg"` - Type int32 `json:"type"` - HandleStatus int32 `json:"handleStatus"` - HandleResult int32 `json:"handleResult"` - - UserID string `json:"userID"` -} - -func newGroupApplicationResponse(params *paramsGroupApplicationResponse) *group.GroupApplicationResponseReq { - pbData := group.GroupApplicationResponseReq{ - OperationID: params.OperationID, - GroupID: params.GroupID, - FromUserID: params.FromUserID, - FromUserNickName: params.FromUserNickName, - FromUserFaceUrl: params.FromUserFaceUrl, - ToUserID: params.ToUserID, - ToUserNickName: params.ToUserNickName, - ToUserFaceUrl: params.ToUserFaceUrl, - AddTime: params.AddTime, - RequestMsg: params.RequestMsg, - HandledMsg: params.HandledMsg, - Type: params.Type, - HandleStatus: params.HandleStatus, - HandleResult: params.HandleResult, - } - return &pbData + resp := api.CommResp{ErrCode: RpcResp.ErrCode, ErrMsg: RpcResp.ErrMsg} + c.JSON(http.StatusOK, resp) + log.NewInfo(req.OperationID, "GetGroupsInfo api return ", resp) } +//process application func ApplicationGroupResponse(c *gin.Context) { - log.Info("", "", "api GroupApplicationResponse init ....") - etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImGroupName) - client := group.NewGroupClient(etcdConn) - //defer etcdConn.Close() - - params := paramsGroupApplicationResponse{} + params := api.ApplicationGroupResponseReq{} if err := c.BindJSON(¶ms); err != nil { + log.NewError("0", "BindJSON failed ", err.Error()) c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": err.Error()}) return } - pbData := newGroupApplicationResponse(¶ms) - - token := c.Request.Header.Get("token") - if claims, err := token_verify.ParseToken(token); err != nil { - c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": "token validate err"}) + req := &rpc.GroupApplicationResponseReq{} + utils.CopyStructFields(req, params) + var ok bool + ok, req.OpUserID = token_verify.GetUserIDFromToken(c.Request.Header.Get("token")) + if !ok { + log.NewError(req.OperationID, "GetUserIDFromToken false ", c.Request.Header.Get("token")) + c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": "GetUserIDFromToken failed"}) return - } else { - pbData.OwnerID = claims.UID } + log.NewInfo(req.OperationID, "ApplicationGroupResponse args ", req.String()) - log.Info("", "", "api GroupApplicationResponse is server, [data: %s]", pbData.String()) - reply, err := client.GroupApplicationResponse(context.Background(), pbData) + etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImGroupName) + client := rpc.NewGroupClient(etcdConn) + reply, err := client.GroupApplicationResponse(context.Background(), req) if err != nil { - log.Error("", "", "api GroupApplicationResponse call rpc fail, [data: %s] [err: %s]", pbData.String(), err.Error()) + log.NewError(req.OperationID, "GroupApplicationResponse failed ", req.String()) c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": err.Error()}) return } - log.Info("", "", "api GroupApplicationResponse call rpc success, [data: %s] [reply: %s]", pbData.String(), reply.String()) - c.JSON(http.StatusOK, gin.H{ - "errCode": reply.ErrCode, - "errMsg": reply.ErrMsg, - }) - -} - -type paramsJoinGroup struct { - GroupID string `json:"groupID" binding:"required"` - Message string `json:"message"` - OperationID string `json:"operationID" binding:"required"` + resp := api.CommResp{ErrCode: reply.ErrCode, ErrMsg: reply.ErrMsg} + c.JSON(http.StatusOK, resp) + log.NewInfo(req.OperationID, "ApplicationGroupResponse api return ", resp) } func JoinGroup(c *gin.Context) { - log.Info("", "", "api join group init....") - - etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImGroupName) - client := pb.NewGroupClient(etcdConn) - //defer etcdConn.Close() - - params := paramsJoinGroup{} + params := api.JoinGroupReq{} if err := c.BindJSON(¶ms); err != nil { + log.NewError("0", "BindJSON failed ", err.Error()) c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": err.Error()}) return } - req := &pb.JoinGroupReq{ - GroupID: params.GroupID, - Message: params.Message, - Token: c.Request.Header.Get("token"), - OperationID: params.OperationID, + req := &rpc.JoinGroupReq{} + utils.CopyStructFields(req, params) + var ok bool + ok, req.OpUserID = token_verify.GetUserIDFromToken(c.Request.Header.Get("token")) + if !ok { + log.NewError(req.OperationID, "GetUserIDFromToken false ", c.Request.Header.Get("token")) + c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": "GetUserIDFromToken failed"}) + return } - log.Info(req.Token, req.OperationID, "api join group is server,params=%s", req.String()) + log.NewInfo(req.OperationID, "JoinGroup args ", req.String()) + etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImGroupName) + client := rpc.NewGroupClient(etcdConn) + RpcResp, err := client.JoinGroup(context.Background(), req) if err != nil { - log.Error(req.Token, req.OperationID, "call join group rpc server failed,err=%s", err.Error()) + log.NewError(req.OperationID, "JoinGroup failed ", err.Error(), req.String()) c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": "call rpc server failed"}) return } - log.InfoByArgs("call join group rpc server success,args=%s", RpcResp.String()) - c.JSON(http.StatusOK, gin.H{"errCode": RpcResp.ErrorCode, "errMsg": RpcResp.ErrorMsg}) -} - -type paramsQuitGroup struct { - GroupID string `json:"groupID" binding:"required"` - OperationID string `json:"operationID" binding:"required"` + resp := api.CommResp{ErrCode: RpcResp.ErrCode, ErrMsg: RpcResp.ErrMsg} + c.JSON(http.StatusOK, resp) + log.NewInfo("JoinGroup api return", RpcResp.String()) } func QuitGroup(c *gin.Context) { - log.Info("", "", "api quit group init ....") - - etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImGroupName) - client := pb.NewGroupClient(etcdConn) - //defer etcdConn.Close() - - params := paramsQuitGroup{} + params := api.QuitGroupReq{} if err := c.BindJSON(¶ms); err != nil { + log.NewError("0", "BindJSON failed ", err.Error()) c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": err.Error()}) return } - req := &pb.QuitGroupReq{ - GroupID: params.GroupID, - OperationID: params.OperationID, - Token: c.Request.Header.Get("token"), + req := &rpc.QuitGroupReq{} + utils.CopyStructFields(req, params) + var ok bool + ok, req.OpUserID = token_verify.GetUserIDFromToken(c.Request.Header.Get("token")) + if !ok { + log.NewError(req.OperationID, "GetUserIDFromToken false ", c.Request.Header.Get("token")) + c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": "GetUserIDFromToken failed"}) + return } - log.Info(req.Token, req.OperationID, "api quit group is server,params=%s", req.String()) + log.NewInfo(req.OperationID, "QuitGroup args ", req.String()) + + etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImGroupName) + client := rpc.NewGroupClient(etcdConn) RpcResp, err := client.QuitGroup(context.Background(), req) if err != nil { - log.Error(req.Token, req.OperationID, "call quit group rpc server failed,err=%s", err.Error()) + log.NewError(req.OperationID, "call quit group rpc server failed,err=%s", err.Error()) c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": "call rpc server failed"}) return } - log.InfoByArgs("call quit group rpc server success,args=%s", RpcResp.String()) - c.JSON(http.StatusOK, gin.H{"errCode": RpcResp.ErrorCode, "errMsg": RpcResp.ErrorMsg}) - log.InfoByArgs("api quit group success return,get args=%s,return args=%s", req.String(), RpcResp.String()) -} - -type paramsSetGroupInfo struct { - GroupID string `json:"groupId" binding:"required"` - GroupName string `json:"groupName"` - Notification string `json:"notification"` - Introduction string `json:"introduction"` - FaceUrl string `json:"faceUrl"` - OperationID string `json:"operationID" binding:"required"` + resp := api.CommResp{ErrCode: RpcResp.ErrCode, ErrMsg: RpcResp.ErrMsg} + c.JSON(http.StatusOK, resp) + log.NewInfo("QuitGroup api return", RpcResp.String()) } func SetGroupInfo(c *gin.Context) { - log.Info("", "", "api set group info init...") - - etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImGroupName) - client := pb.NewGroupClient(etcdConn) - //defer etcdConn.Close() - - params := paramsSetGroupInfo{} + params := api.SetGroupInfoReq{} if err := c.BindJSON(¶ms); err != nil { + log.NewError("0", "BindJSON failed ", err.Error()) c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": err.Error()}) return } - req := &pb.SetGroupInfoReq{ - GroupID: params.GroupID, - GroupName: params.GroupName, - Notification: params.Notification, - Introduction: params.Introduction, - FaceUrl: params.FaceUrl, - Token: c.Request.Header.Get("token"), - OperationID: params.OperationID, + req := &rpc.SetGroupInfoReq{} + utils.CopyStructFields(req, params) + var ok bool + ok, req.OpUserID = token_verify.GetUserIDFromToken(c.Request.Header.Get("token")) + if !ok { + log.NewError(req.OperationID, "GetUserIDFromToken false ", c.Request.Header.Get("token")) + c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": "GetUserIDFromToken failed"}) + return } - log.Info(req.Token, req.OperationID, "api set group info is server,params=%s", req.String()) + log.NewInfo(req.OperationID, "SetGroupInfo args ", req.String()) + + etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImGroupName) + client := rpc.NewGroupClient(etcdConn) RpcResp, err := client.SetGroupInfo(context.Background(), req) if err != nil { - log.Error(req.Token, req.OperationID, "call set group info rpc server failed,err=%s", err.Error()) + log.NewError(req.OperationID, "SetGroupInfo failed ", err.Error(), req.String()) c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": "call rpc server failed"}) return } - log.InfoByArgs("call set group info rpc server success,args=%s", RpcResp.String()) - c.JSON(http.StatusOK, gin.H{"errCode": RpcResp.ErrorCode, "errMsg": RpcResp.ErrorMsg}) -} - -type paramsTransferGroupOwner struct { - OperationID string `json:"operationID" binding:"required"` - GroupID string `json:"groupID" binding:"required"` - UID string `json:"uid" binding:"required"` -} - -func newTransferGroupOwnerReq(params *paramsTransferGroupOwner) *group.TransferGroupOwnerReq { - pbData := group.TransferGroupOwnerReq{ - OperationID: params.OperationID, - GroupID: params.GroupID, - NewOwner: params.UID, - } - return &pbData + resp := api.CommResp{ErrCode: RpcResp.ErrCode, ErrMsg: RpcResp.ErrMsg} + c.JSON(http.StatusOK, resp) + log.NewInfo(req.OperationID, "SetGroupInfo api return ", resp) } func TransferGroupOwner(c *gin.Context) { - log.Info("", "", "api TransferGroupOwner init ....") - etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImGroupName) - client := group.NewGroupClient(etcdConn) - //defer etcdConn.Close() - - params := paramsTransferGroupOwner{} + params := api.TransferGroupOwnerReq{} if err := c.BindJSON(¶ms); err != nil { + log.NewError("0", "BindJSON failed ", err.Error()) c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": err.Error()}) return } - pbData := newTransferGroupOwnerReq(¶ms) - - token := c.Request.Header.Get("token") - if claims, err := token_verify.ParseToken(token); err != nil { - c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": "token validate err"}) + req := &rpc.TransferGroupOwnerReq{} + utils.CopyStructFields(req, params) + var ok bool + ok, req.OpUserID = token_verify.GetUserIDFromToken(c.Request.Header.Get("token")) + if !ok { + log.NewError(req.OperationID, "GetUserIDFromToken false ", c.Request.Header.Get("token")) + c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": "GetUserIDFromToken failed"}) return - } else { - pbData.OldOwner = claims.UID } + log.NewInfo(req.OperationID, "TransferGroupOwner args ", req.String()) - log.Info("", "", "api TransferGroupOwner is server, [data: %s]", pbData.String()) - reply, err := client.TransferGroupOwner(context.Background(), pbData) + etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImGroupName) + client := rpc.NewGroupClient(etcdConn) + reply, err := client.TransferGroupOwner(context.Background(), req) if err != nil { - log.Error("", "", "api TransferGroupOwner call rpc fail, [data: %s] [err: %s]", pbData.String(), err.Error()) + log.NewError(req.OperationID, "TransferGroupOwner failed ", req.String()) c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": err.Error()}) return } - log.Info("", "", "api TransferGroupOwner call rpc success, [data: %s] [reply: %s]", pbData.String(), reply.String()) - - c.JSON(http.StatusOK, gin.H{ - "errCode": reply.ErrCode, - "errMsg": reply.ErrMsg, - }) + resp := api.CommResp{ErrCode: reply.ErrCode, ErrMsg: reply.ErrMsg} + c.JSON(http.StatusOK, resp) + log.NewInfo(req.OperationID, "TransferGroupOwner api return ", resp) } diff --git a/internal/demo/register/login.go b/internal/demo/register/login.go index bc2605e08..b6702bbf4 100644 --- a/internal/demo/register/login.go +++ b/internal/demo/register/login.go @@ -65,7 +65,7 @@ func Login(c *gin.Context) { defer resp.Body.Close() if err != nil { log.ErrorByKv("Failed to read file", account, "err", err.Error()) - c.JSON(http.StatusOK, gin.H{"errCode": constant.IoErrot, "errMsg": err.Error()}) + c.JSON(http.StatusOK, gin.H{"errCode": constant.IoError, "errMsg": err.Error()}) return } imRep := IMRegisterResp{} diff --git a/internal/demo/register/set_password.go b/internal/demo/register/set_password.go index 7dca79dc6..9d66a09b0 100644 --- a/internal/demo/register/set_password.go +++ b/internal/demo/register/set_password.go @@ -86,7 +86,7 @@ openIMRegisterTab: response, err := ioutil.ReadAll(resp.Body) defer resp.Body.Close() if err != nil { - c.JSON(http.StatusOK, gin.H{"errCode": constant.IoErrot, "errMsg": err.Error()}) + c.JSON(http.StatusOK, gin.H{"errCode": constant.IoError, "errMsg": err.Error()}) return } imrep := IMRegisterResp{} diff --git a/internal/rpc/friend/firend.go b/internal/rpc/friend/firend.go index 7acd4f37a..1b459c49f 100644 --- a/internal/rpc/friend/firend.go +++ b/internal/rpc/friend/firend.go @@ -9,10 +9,9 @@ import ( "Open_IM/pkg/common/token_verify" "Open_IM/pkg/grpc-etcdv3/getcdv3" pbFriend "Open_IM/pkg/proto/friend" - sdk_ws "Open_IM/pkg/proto/sdk_ws" + sdkws "Open_IM/pkg/proto/sdk_ws" "Open_IM/pkg/utils" "context" - "fmt" "google.golang.org/grpc" "net" "strconv" @@ -37,17 +36,17 @@ func NewFriendServer(port int) *friendServer { } func (s *friendServer) Run() { - log.Info("", "", fmt.Sprintf("rpc friend init....")) + log.NewInfo("0", "friendServer run...") ip := utils.ServerIP registerAddress := ip + ":" + strconv.Itoa(s.rpcPort) //listener network listener, err := net.Listen("tcp", registerAddress) if err != nil { - log.InfoByArgs(fmt.Sprintf("Failed to listen rpc friend network,err=%s", err.Error())) + log.NewError("0", "Listen failed ", err.Error(), registerAddress) return } - log.Info("", "", "listen network success, address = %s", registerAddress) + log.NewInfo("0", "listen ok ", registerAddress) defer listener.Close() //grpc server srv := grpc.NewServer() @@ -56,62 +55,59 @@ func (s *friendServer) Run() { pbFriend.RegisterFriendServer(srv, s) err = getcdv3.RegisterEtcd(s.etcdSchema, strings.Join(s.etcdAddr, ","), ip, s.rpcPort, s.rpcRegisterName, 10) if err != nil { - log.ErrorByArgs("register rpc fiend service to etcd failed,err=%s", err.Error()) + log.NewError("0", "RegisterEtcd failed ", err.Error(), s.etcdSchema, strings.Join(s.etcdAddr, ","), ip, s.rpcPort, s.rpcRegisterName) return } err = srv.Serve(listener) if err != nil { - log.ErrorByArgs("listen rpc friend error,err=%s", err.Error()) + log.NewError("0", "Serve failed ", err.Error(), listener) return } } -func (s *friendServer) GetFriendsInfo(ctx context.Context, req *pbFriend.GetFriendsInfoReq) (*pbFriend.GetFriendInfoResp, error) { - log.NewInfo(req.CommID.OperationID, "GetFriendsInfo args ", req.String()) - var ( - isInBlackList int32 - // isFriend int32 - comment string - ) - - friendShip, err := imdb.FindFriendRelationshipFromFriend(req.CommID.FromUserID, req.CommID.ToUserID) - if err != nil { - log.NewError(req.CommID.OperationID, "FindFriendRelationshipFromFriend failed ", err.Error()) - return &pbFriend.GetFriendInfoResp{ErrCode: constant.ErrSearchUserInfo.ErrCode, ErrMsg: constant.ErrSearchUserInfo.ErrMsg}, nil - // isFriend = constant.FriendFlag - } - comment = friendShip.Remark - - friendUserInfo, err := imdb.FindUserByUID(req.CommID.ToUserID) - if err != nil { - log.NewError(req.CommID.OperationID, "FindUserByUID failed ", err.Error()) - return &pbFriend.GetFriendInfoResp{ErrCode: constant.ErrSearchUserInfo.ErrCode, ErrMsg: constant.ErrSearchUserInfo.ErrMsg}, nil - } - - err = imdb.FindRelationshipFromBlackList(req.CommID.FromUserID, req.CommID.ToUserID) - if err == nil { - isInBlackList = constant.BlackListFlag - } - - resp := pbFriend.GetFriendInfoResp{ - ErrCode: 0, - ErrMsg: "", - Data: &pbFriend.FriendInfo{ - IsBlack: isInBlackList, - }, - } - utils.CopyStructFields(resp.Data.FriendUser, friendUserInfo) - resp.Data.IsBlack = isInBlackList - resp.Data.OwnerUserID = req.CommID.FromUserID - resp.Data.Remark = comment - resp.Data.CreateTime = friendUserInfo.CreateTime - - log.NewInfo(req.CommID.OperationID, "GetFriendsInfo ok ", resp) - return &resp, nil - -} - -func (s *friendServer) AddBlacklist(ctx context.Context, req *pbFriend.AddBlacklistReq) (*pbFriend.CommonResp, error) { +//// +//func (s *friendServer) GetFriendsInfo(ctx context.Context, req *pbFriend.GetFriendsInfoReq) (*pbFriend.GetFriendInfoResp, error) { +// return nil, nil +//// log.NewInfo(req.CommID.OperationID, "GetFriendsInfo args ", req.String()) +//// var ( +//// isInBlackList int32 +//// // isFriend int32 +//// comment string +//// ) +//// +//// friendShip, err := imdb.FindFriendRelationshipFromFriend(req.CommID.FromUserID, req.CommID.ToUserID) +//// if err != nil { +//// log.NewError(req.CommID.OperationID, "FindFriendRelationshipFromFriend failed ", err.Error()) +//// return &pbFriend.GetFriendInfoResp{ErrCode: constant.ErrSearchUserInfo.ErrCode, ErrMsg: constant.ErrSearchUserInfo.ErrMsg}, nil +//// // isFriend = constant.FriendFlag +//// } +//// comment = friendShip.Remark +//// +//// friendUserInfo, err := imdb.FindUserByUID(req.CommID.ToUserID) +//// if err != nil { +//// log.NewError(req.CommID.OperationID, "FindUserByUID failed ", err.Error()) +//// return &pbFriend.GetFriendInfoResp{ErrCode: constant.ErrSearchUserInfo.ErrCode, ErrMsg: constant.ErrSearchUserInfo.ErrMsg}, nil +//// } +//// +//// err = imdb.FindRelationshipFromBlackList(req.CommID.FromUserID, req.CommID.ToUserID) +//// if err == nil { +//// isInBlackList = constant.BlackListFlag +//// } +//// +//// resp := pbFriend.GetFriendInfoResp{ErrCode: 0, ErrMsg: "",} +//// +//// utils.CopyStructFields(resp.FriendInfoList, friendUserInfo) +//// resp.Data.IsBlack = isInBlackList +//// resp.Data.OwnerUserID = req.CommID.FromUserID +//// resp.Data.Remark = comment +//// resp.Data.CreateTime = friendUserInfo.CreateTime +//// +//// log.NewInfo(req.CommID.OperationID, "GetFriendsInfo ok ", resp) +//// return &resp, nil +//// +//} + +func (s *friendServer) AddBlacklist(ctx context.Context, req *pbFriend.AddBlacklistReq) (*pbFriend.AddBlacklistResp, error) { log.NewInfo(req.CommID.OperationID, "AddBlacklist args ", req.String()) ok := token_verify.CheckAccess(req.CommID.OpUserID, req.CommID.FromUserID) if !ok { @@ -121,15 +117,14 @@ func (s *friendServer) AddBlacklist(ctx context.Context, req *pbFriend.AddBlackl err := imdb.InsertInToUserBlackList(req.CommID.FromUserID, req.CommID.ToUserID) if err != nil { log.NewError(req.CommID.OperationID, "InsertInToUserBlackList failed ", err.Error()) - return &pbFriend.CommonResp{ErrCode: constant.ErrMysql.ErrCode, ErrMsg: constant.ErrMysql.ErrMsg}, nil + return &pbFriend.AddBlacklistResp{CommonResp: &pbFriend.CommonResp{ErrCode: constant.ErrDB.ErrCode, ErrMsg: constant.ErrDB.ErrMsg}}, nil } log.NewInfo(req.CommID.OperationID, "InsertInToUserBlackList ok ", req.CommID.FromUserID, req.CommID.ToUserID) chat.BlackAddedNotification(req) - return &pbFriend.CommonResp{}, nil - + return &pbFriend.AddBlacklistResp{CommonResp: &pbFriend.CommonResp{}}, nil } -func (s *friendServer) AddFriend(ctx context.Context, req *pbFriend.AddFriendReq) (*pbFriend.CommonResp, error) { +func (s *friendServer) AddFriend(ctx context.Context, req *pbFriend.AddFriendReq) (*pbFriend.AddFriendResp, error) { log.NewInfo(req.CommID.OperationID, "AddFriend args ", req.String()) ok := token_verify.CheckAccess(req.CommID.OpUserID, req.CommID.FromUserID) if !ok { @@ -138,18 +133,18 @@ func (s *friendServer) AddFriend(ctx context.Context, req *pbFriend.AddFriendReq //Cannot add non-existent users if _, err := imdb.FindUserByUID(req.CommID.ToUserID); err != nil { log.NewError(req.CommID.OperationID, "FindUserByUID failed ", err.Error(), req.CommID.ToUserID) - return &pbFriend.CommonResp{ErrCode: constant.ErrAddFriend.ErrCode, ErrMsg: constant.ErrSearchUserInfo.ErrMsg}, nil + return &pbFriend.AddFriendResp{CommonResp: &pbFriend.CommonResp{ErrCode: constant.ErrDB.ErrCode, ErrMsg: constant.ErrDB.ErrMsg}}, nil } //Establish a latest relationship in the friend request table - err := imdb.ReplaceIntoFriendReq(req.CommID.FromUserID, req.CommID.ToUserID, constant.ApplicationFriendFlag, req.ReqMessage) + err := imdb.ReplaceIntoFriendReq(req.CommID.FromUserID, req.CommID.ToUserID, constant.ApplicationFriendFlag, req.ReqMsg) if err != nil { log.NewError(req.CommID.OperationID, "ReplaceIntoFriendReq failed ", err.Error()) - return &pbFriend.CommonResp{ErrCode: constant.ErrAddFriend.ErrCode, ErrMsg: constant.ErrAddFriend.ErrMsg}, nil + return &pbFriend.AddFriendResp{CommonResp: &pbFriend.CommonResp{ErrCode: constant.ErrDB.ErrCode, ErrMsg: constant.ErrDB.ErrMsg}}, nil } chat.FriendApplicationAddedNotification(req) - return &pbFriend.CommonResp{}, nil + return &pbFriend.AddFriendResp{CommonResp: &pbFriend.CommonResp{}}, nil } func (s *friendServer) ImportFriend(ctx context.Context, req *pbFriend.ImportFriendReq) (*pbFriend.ImportFriendResp, error) { @@ -159,29 +154,29 @@ func (s *friendServer) ImportFriend(ctx context.Context, req *pbFriend.ImportFri if !utils.IsContain(req.OpUserID, config.Config.Manager.AppManagerUid) { log.NewError(req.OperationID, "not authorized", req.OpUserID) - c.ErrCode = constant.ErrAddFriend.ErrCode - c.ErrMsg = "not authorized" - return &pbFriend.ImportFriendResp{CommonResp: &c, FailedUidList: req.FriendUserIDList}, nil + c.ErrCode = constant.ErrAccess.ErrCode + c.ErrMsg = constant.ErrAccess.ErrMsg + return &pbFriend.ImportFriendResp{CommonResp: &c, FailedFriendUserIDList: req.FriendUserIDList}, nil } if _, err := imdb.FindUserByUID(req.FromUserID); err != nil { log.NewError(req.OperationID, "FindUserByUID failed ", err.Error(), req.FromUserID) - c.ErrCode = constant.ErrAddFriend.ErrCode + c.ErrCode = constant.ErrDB.ErrCode c.ErrMsg = "this user not exists,cant not add friend" - return &pbFriend.ImportFriendResp{CommonResp: &c, FailedUidList: req.FriendUserIDList}, nil + return &pbFriend.ImportFriendResp{CommonResp: &c, FailedFriendUserIDList: req.FriendUserIDList}, nil } for _, v := range req.FriendUserIDList { if _, fErr := imdb.FindUserByUID(v); fErr != nil { c.ErrMsg = "some uid establish failed" c.ErrCode = 408 - resp.FailedUidList = append(resp.FailedUidList, v) + resp.FailedFriendUserIDList = append(resp.FailedFriendUserIDList, v) } else { if _, err := imdb.FindFriendRelationshipFromFriend(req.FromUserID, v); err != nil { //Establish two single friendship err1 := imdb.InsertToFriend(req.FromUserID, v, 1) if err1 != nil { - resp.FailedUidList = append(resp.FailedUidList, v) + resp.FailedFriendUserIDList = append(resp.FailedFriendUserIDList, v) log.NewError(req.OperationID, "InsertToFriend failed", req.FromUserID, v, err1.Error()) c.ErrMsg = "some uid establish failed" c.ErrCode = 408 @@ -189,7 +184,7 @@ func (s *friendServer) ImportFriend(ctx context.Context, req *pbFriend.ImportFri } err2 := imdb.InsertToFriend(v, req.FromUserID, 1) if err2 != nil { - resp.FailedUidList = append(resp.FailedUidList, v) + resp.FailedFriendUserIDList = append(resp.FailedFriendUserIDList, v) log.NewError(req.OperationID, "InsertToFriend failed", v, req.FromUserID, err2.Error()) c.ErrMsg = "some uid establish failed" c.ErrCode = 408 @@ -208,26 +203,26 @@ func (s *friendServer) ImportFriend(ctx context.Context, req *pbFriend.ImportFri } //process Friend application -func (s *friendServer) AddFriendResponse(ctx context.Context, req *pbFriend.AddFriendResponseReq) (*pbFriend.CommonResp, error) { +func (s *friendServer) AddFriendResponse(ctx context.Context, req *pbFriend.AddFriendResponseReq) (*pbFriend.AddFriendResponseResp, error) { log.NewInfo(req.CommID.OperationID, "AddFriendResponse args ", req.String()) if !token_verify.CheckAccess(req.CommID.FromUserID, req.CommID.ToUserID) { log.NewError(req.CommID.OperationID, "CheckAccess failed ", req.CommID.FromUserID, req.CommID.ToUserID) - return &pbFriend.CommonResp{ErrCode: constant.ErrAgreeToAddFriend.ErrCode, ErrMsg: constant.ErrAgreeToAddFriend.ErrMsg}, nil + return &pbFriend.AddFriendResponseResp{CommonResp: &pbFriend.CommonResp{ErrCode: constant.ErrAccess.ErrCode, ErrMsg: constant.ErrAccess.ErrMsg}}, nil } //Check there application before agreeing or refuse to a friend's application //req.CommID.FromUserID process req.CommID.ToUserID if _, err := imdb.FindFriendApplyFromFriendReqByUid(req.CommID.ToUserID, req.CommID.FromUserID); err != nil { log.NewError(req.CommID.OperationID, "FindFriendApplyFromFriendReqByUid failed ", err.Error(), req.CommID.ToUserID, req.CommID.FromUserID) - return &pbFriend.CommonResp{ErrCode: constant.ErrAgreeToAddFriend.ErrCode, ErrMsg: constant.ErrAgreeToAddFriend.ErrMsg}, nil + return &pbFriend.AddFriendResponseResp{CommonResp: &pbFriend.CommonResp{ErrCode: constant.ErrDB.ErrCode, ErrMsg: constant.ErrDB.ErrMsg}}, nil } //Change friend request status flag err := imdb.UpdateFriendRelationshipToFriendReq(req.CommID.ToUserID, req.CommID.FromUserID, req.Flag) if err != nil { log.NewError(req.CommID.OperationID, "UpdateFriendRelationshipToFriendReq failed ", err.Error(), req.CommID.ToUserID, req.CommID.FromUserID, req.Flag) - return &pbFriend.CommonResp{ErrCode: constant.ErrMysql.ErrCode, ErrMsg: constant.ErrAgreeToAddFriend.ErrMsg}, nil + return &pbFriend.AddFriendResponseResp{CommonResp: &pbFriend.CommonResp{ErrCode: constant.ErrDB.ErrCode, ErrMsg: constant.ErrDB.ErrMsg}}, nil } log.NewInfo(req.CommID.OperationID, "rpc AddFriendResponse ok") //Change the status of the friend request form @@ -241,43 +236,43 @@ func (s *friendServer) AddFriendResponse(ctx context.Context, req *pbFriend.AddF err = imdb.InsertToFriend(req.CommID.FromUserID, req.CommID.ToUserID, req.Flag) if err != nil { log.NewError(req.CommID.OperationID, "InsertToFriend failed ", err.Error(), req.CommID.FromUserID, req.CommID.ToUserID, req.Flag) - return &pbFriend.CommonResp{ErrCode: constant.ErrAgreeToAddFriend.ErrCode, ErrMsg: constant.ErrAgreeToAddFriend.ErrMsg}, nil + return &pbFriend.AddFriendResponseResp{CommonResp: &pbFriend.CommonResp{ErrCode: constant.ErrDB.ErrCode, ErrMsg: constant.ErrDB.ErrMsg}}, nil } } _, err = imdb.FindFriendRelationshipFromFriend(req.CommID.ToUserID, req.CommID.FromUserID) if err == nil { log.NewWarn(req.CommID.OperationID, "FindFriendRelationshipFromFriend exist", req.CommID.ToUserID, req.CommID.FromUserID) - return &pbFriend.CommonResp{}, nil + return &pbFriend.AddFriendResponseResp{CommonResp: &pbFriend.CommonResp{}}, nil } err = imdb.InsertToFriend(req.CommID.ToUserID, req.CommID.FromUserID, req.Flag) if err != nil { log.NewError(req.CommID.OperationID, "InsertToFriend failed ", err.Error(), req.CommID.FromUserID, req.CommID.ToUserID, req.Flag) - return &pbFriend.CommonResp{ErrCode: constant.ErrAgreeToAddFriend.ErrCode, ErrMsg: constant.ErrAgreeToAddFriend.ErrMsg}, nil + return &pbFriend.AddFriendResponseResp{CommonResp: &pbFriend.CommonResp{ErrCode: constant.ErrDB.ErrCode, ErrMsg: constant.ErrDB.ErrMsg}}, nil } } chat.FriendApplicationProcessedNotification(req) chat.FriendAddedNotification(req.CommID.OperationID, req.CommID.OpUserID, req.CommID.FromUserID, req.CommID.ToUserID) - return &pbFriend.CommonResp{}, nil + return &pbFriend.AddFriendResponseResp{CommonResp: &pbFriend.CommonResp{}}, nil } -func (s *friendServer) DeleteFriend(ctx context.Context, req *pbFriend.DeleteFriendReq) (*pbFriend.CommonResp, error) { +func (s *friendServer) DeleteFriend(ctx context.Context, req *pbFriend.DeleteFriendReq) (*pbFriend.DeleteFriendResp, error) { log.NewInfo(req.CommID.OperationID, "DeleteFriend args ", req.String()) //Parse token, to find current user information if !token_verify.CheckAccess(req.CommID.OpUserID, req.CommID.FromUserID) { log.NewError(req.CommID.OperationID, "CheckAccess false ", req.CommID.OpUserID, req.CommID.FromUserID) - return &pbFriend.CommonResp{ErrCode: constant.ErrParseToken.ErrCode, ErrMsg: constant.ErrParseToken.ErrMsg}, nil + return &pbFriend.DeleteFriendResp{CommonResp: &pbFriend.CommonResp{ErrCode: constant.ErrAccess.ErrCode, ErrMsg: constant.ErrAccess.ErrMsg}}, nil } err := imdb.DeleteSingleFriendInfo(req.CommID.FromUserID, req.CommID.ToUserID) if err != nil { log.NewError(req.CommID.OperationID, "DeleteSingleFriendInfo failed", err.Error(), req.CommID.FromUserID, req.CommID.ToUserID) - return &pbFriend.CommonResp{ErrCode: constant.ErrMysql.ErrCode, ErrMsg: constant.ErrMysql.ErrMsg}, nil + return &pbFriend.DeleteFriendResp{CommonResp: &pbFriend.CommonResp{ErrCode: constant.ErrAccess.ErrCode, ErrMsg: constant.ErrAccess.ErrMsg}}, nil } log.NewInfo(req.CommID.OperationID, "DeleteFriend rpc ok") chat.FriendDeletedNotification(req) - return &pbFriend.CommonResp{}, nil + return &pbFriend.DeleteFriendResp{CommonResp: &pbFriend.CommonResp{}}, nil } func (s *friendServer) GetBlacklist(ctx context.Context, req *pbFriend.GetBlacklistReq) (*pbFriend.GetBlacklistResp, error) { @@ -286,20 +281,20 @@ func (s *friendServer) GetBlacklist(ctx context.Context, req *pbFriend.GetBlackl //Parse token, to find current user information if !token_verify.CheckAccess(req.CommID.OpUserID, req.CommID.FromUserID) { log.NewError(req.CommID.OperationID, "CheckAccess failed", req.CommID.OpUserID, req.CommID.FromUserID) - return &pbFriend.GetBlacklistResp{ErrCode: constant.ErrParseToken.ErrCode, ErrMsg: constant.ErrParseToken.ErrMsg}, nil + return &pbFriend.GetBlacklistResp{ErrCode: constant.ErrAccess.ErrCode, ErrMsg: constant.ErrAccess.ErrMsg}, nil } blackListInfo, err := imdb.GetBlackListByUID(req.CommID.FromUserID) if err != nil { log.NewError(req.CommID.OperationID, "GetBlackListByUID failed ", err.Error(), req.CommID.FromUserID) - return &pbFriend.GetBlacklistResp{ErrCode: constant.ErrGetBlackList.ErrCode, ErrMsg: constant.ErrGetBlackList.ErrMsg}, nil + return &pbFriend.GetBlacklistResp{ErrCode: constant.ErrDB.ErrCode, ErrMsg: constant.ErrDB.ErrMsg}, nil } var ( - userInfoList []*sdk_ws.PublicUserInfo + userInfoList []*sdkws.PublicUserInfo ) for _, blackUser := range blackListInfo { - var blackUserInfo sdk_ws.PublicUserInfo + var blackUserInfo sdkws.PublicUserInfo //Find black user information us, err := imdb.FindUserByUID(blackUser.BlockUserID) if err != nil { @@ -310,49 +305,50 @@ func (s *friendServer) GetBlacklist(ctx context.Context, req *pbFriend.GetBlackl userInfoList = append(userInfoList, &blackUserInfo) } log.NewInfo(req.CommID.OperationID, "rpc GetBlacklist ok") - return &pbFriend.GetBlacklistResp{Data: userInfoList}, nil + return &pbFriend.GetBlacklistResp{BlackUserInfoList: userInfoList}, nil } -func (s *friendServer) SetFriendComment(ctx context.Context, req *pbFriend.SetFriendCommentReq) (*pbFriend.CommonResp, error) { +func (s *friendServer) SetFriendComment(ctx context.Context, req *pbFriend.SetFriendCommentReq) (*pbFriend.SetFriendCommentResp, error) { log.NewInfo(req.CommID.OperationID, "SetFriendComment args ", req.String()) //Parse token, to find current user information if !token_verify.CheckAccess(req.CommID.OpUserID, req.CommID.FromUserID) { log.NewError(req.CommID.OperationID, "CheckAccess false", req.CommID.OpUserID, req.CommID.FromUserID) - return &pbFriend.CommonResp{ErrCode: constant.ErrParseToken.ErrCode, ErrMsg: constant.ErrParseToken.ErrMsg}, nil + return &pbFriend.SetFriendCommentResp{CommonResp: &pbFriend.CommonResp{ErrCode: constant.ErrAccess.ErrCode, ErrMsg: constant.ErrAccess.ErrMsg}}, nil } err := imdb.UpdateFriendComment(req.CommID.FromUserID, req.CommID.OpUserID, req.Remark) if err != nil { log.NewError(req.CommID.OperationID, "UpdateFriendComment failed ", err.Error(), req.CommID.FromUserID, req.CommID.OpUserID, req.Remark) - return &pbFriend.CommonResp{ErrCode: constant.ErrSetFriendComment.ErrCode, ErrMsg: constant.ErrSetFriendComment.ErrMsg}, nil + return &pbFriend.SetFriendCommentResp{CommonResp: &pbFriend.CommonResp{ErrCode: constant.ErrDB.ErrCode, ErrMsg: constant.ErrDB.ErrMsg}}, nil } log.NewInfo(req.CommID.OperationID, "rpc SetFriendComment ok") chat.FriendInfoChangedNotification(req) - return &pbFriend.CommonResp{}, nil + return &pbFriend.SetFriendCommentResp{CommonResp: &pbFriend.CommonResp{}}, nil } -func (s *friendServer) RemoveBlacklist(ctx context.Context, req *pbFriend.RemoveBlacklistReq) (*pbFriend.CommonResp, error) { +func (s *friendServer) RemoveBlacklist(ctx context.Context, req *pbFriend.RemoveBlacklistReq) (*pbFriend.RemoveBlacklistResp, error) { log.NewInfo(req.CommID.OperationID, "RemoveBlacklist args ", req.String()) //Parse token, to find current user information if !token_verify.CheckAccess(req.CommID.OpUserID, req.CommID.FromUserID) { log.NewError(req.CommID.OperationID, "CheckAccess false", req.CommID.OpUserID, req.CommID.FromUserID) - return &pbFriend.CommonResp{ErrCode: constant.ErrParseToken.ErrCode, ErrMsg: constant.ErrParseToken.ErrMsg}, nil + return &pbFriend.RemoveBlacklistResp{CommonResp: &pbFriend.CommonResp{ErrCode: constant.ErrAccess.ErrCode, ErrMsg: constant.ErrAccess.ErrMsg}}, nil } err := imdb.RemoveBlackList(req.CommID.FromUserID, req.CommID.ToUserID) if err != nil { log.NewError(req.CommID.OperationID, "RemoveBlackList failed", err.Error(), req.CommID.FromUserID, req.CommID.ToUserID) - return &pbFriend.CommonResp{ErrCode: constant.ErrMysql.ErrCode, ErrMsg: constant.ErrMysql.ErrMsg}, nil + return &pbFriend.RemoveBlacklistResp{CommonResp: &pbFriend.CommonResp{ErrCode: constant.ErrAccess.ErrCode, ErrMsg: constant.ErrAccess.ErrMsg}}, nil + } log.NewInfo(req.CommID.OperationID, "rpc RemoveBlacklist ok") chat.BlackDeletedNotification(req) - return &pbFriend.CommonResp{}, nil + return &pbFriend.RemoveBlacklistResp{CommonResp: &pbFriend.CommonResp{}}, nil } func (s *friendServer) IsInBlackList(ctx context.Context, req *pbFriend.IsInBlackListReq) (*pbFriend.IsInBlackListResp, error) { log.NewInfo("IsInBlackList args ", req.String()) if !token_verify.CheckAccess(req.CommID.OpUserID, req.CommID.FromUserID) { log.NewError(req.CommID.OperationID, "CheckAccess false", req.CommID.OpUserID, req.CommID.FromUserID) - return &pbFriend.IsInBlackListResp{ErrCode: constant.ErrParseToken.ErrCode, ErrMsg: constant.ErrParseToken.ErrMsg}, nil + return &pbFriend.IsInBlackListResp{ErrCode: constant.ErrAccess.ErrCode, ErrMsg: constant.ErrAccess.ErrMsg}, nil } var isInBlacklist = false @@ -366,44 +362,44 @@ func (s *friendServer) IsInBlackList(ctx context.Context, req *pbFriend.IsInBlac func (s *friendServer) IsFriend(ctx context.Context, req *pbFriend.IsFriendReq) (*pbFriend.IsFriendResp, error) { log.NewInfo("IsFriend args ", req.String()) - var isFriend int32 + var isFriend bool if !token_verify.CheckAccess(req.CommID.OpUserID, req.CommID.FromUserID) { log.NewError(req.CommID.OperationID, "CheckAccess false ", req.CommID.OpUserID, req.CommID.FromUserID) - return &pbFriend.IsFriendResp{ErrCode: constant.ErrParseToken.ErrCode, ErrMsg: constant.ErrParseToken.ErrMsg}, nil + return &pbFriend.IsFriendResp{ErrCode: constant.ErrAccess.ErrCode, ErrMsg: constant.ErrAccess.ErrMsg}, nil } _, err := imdb.FindFriendRelationshipFromFriend(req.CommID.FromUserID, req.CommID.ToUserID) if err == nil { - isFriend = constant.FriendFlag + isFriend = true } else { - isFriend = constant.ApplicationFriendFlag + isFriend = false } log.NewInfo("IsFriend rpc ok") - return &pbFriend.IsFriendResp{ShipType: isFriend}, nil + return &pbFriend.IsFriendResp{Response: isFriend}, nil } func (s *friendServer) GetFriendList(ctx context.Context, req *pbFriend.GetFriendListReq) (*pbFriend.GetFriendListResp, error) { log.NewInfo("GetFriendList args ", req.String()) - var userInfoList []*pbFriend.FriendInfo + var userInfoList []*sdkws.FriendInfo //Parse token, to find current user information if !token_verify.CheckAccess(req.CommID.OpUserID, req.CommID.FromUserID) { log.NewError(req.CommID.OperationID, "CheckAccess false ", req.CommID.OpUserID, req.CommID.FromUserID) - return &pbFriend.GetFriendListResp{ErrCode: constant.ErrParseToken.ErrCode, ErrMsg: constant.ErrParseToken.ErrMsg}, nil + return &pbFriend.GetFriendListResp{ErrCode: constant.ErrAccess.ErrCode, ErrMsg: constant.ErrAccess.ErrMsg}, nil } friends, err := imdb.FindUserInfoFromFriend(req.CommID.FromUserID) if err != nil { log.NewError(req.CommID.OperationID, "FindUserInfoFromFriend failed", err.Error(), req.CommID.FromUserID) - return &pbFriend.GetFriendListResp{ErrCode: constant.ErrSearchUserInfo.ErrCode, ErrMsg: constant.ErrSearchUserInfo.ErrMsg}, nil + return &pbFriend.GetFriendListResp{ErrCode: constant.ErrDB.ErrCode, ErrMsg: constant.ErrDB.ErrMsg}, nil } for _, friendUser := range friends { - var friendUserInfo pbFriend.FriendInfo + var friendUserInfo sdkws.FriendInfo //find user is in blackList err = imdb.FindRelationshipFromBlackList(req.CommID.FromUserID, friendUser.FriendUserID) - if err == nil { - friendUserInfo.IsBlack = constant.BlackListFlag - } else { - friendUserInfo.IsBlack = 0 - } + //if err == nil { + // friendUserInfo.IsBlack = constant.BlackListFlag + //} else { + // friendUserInfo.IsBlack = 0 + //} //Find user information us, err := imdb.FindUserByUID(friendUser.FriendUserID) if err != nil { @@ -416,77 +412,57 @@ func (s *friendServer) GetFriendList(ctx context.Context, req *pbFriend.GetFrien friendUserInfo.CreateTime = friendUser.CreateTime userInfoList = append(userInfoList, &friendUserInfo) } - log.NewInfo(req.CommID.OperationID, "rpc GetFriendList ok", pbFriend.GetFriendListResp{Data: userInfoList}) - return &pbFriend.GetFriendListResp{Data: userInfoList}, nil + log.NewInfo(req.CommID.OperationID, "rpc GetFriendList ok", pbFriend.GetFriendListResp{FriendInfoList: userInfoList}) + return &pbFriend.GetFriendListResp{FriendInfoList: userInfoList}, nil } -func (s *friendServer) GetFriendApplyList(ctx context.Context, req *pbFriend.GetFriendApplyReq) (*pbFriend.GetFriendApplyResp, error) { +func (s *friendServer) GetFriendApplyList(ctx context.Context, req *pbFriend.GetFriendApplyListReq) (*pbFriend.GetFriendApplyListResp, error) { log.NewInfo(req.CommID.OperationID, "GetFriendApplyList args ", req.String()) - var appleUserList []*pbFriend.ApplyUserInfo + //Parse token, to find current user information if !token_verify.CheckAccess(req.CommID.OpUserID, req.CommID.FromUserID) { log.NewError(req.CommID.OperationID, "CheckAccess false ", req.CommID.OpUserID, req.CommID.FromUserID) - return &pbFriend.GetFriendApplyResp{ErrCode: constant.ErrParseToken.ErrCode, ErrMsg: constant.ErrParseToken.ErrMsg}, nil + return &pbFriend.GetFriendApplyListResp{ErrCode: constant.ErrAccess.ErrCode, ErrMsg: constant.ErrAccess.ErrMsg}, nil } // Find the current user friend applications received ApplyUsersInfo, err := imdb.FindFriendsApplyFromFriendReq(req.CommID.FromUserID) if err != nil { log.NewError(req.CommID.OperationID, "FindFriendsApplyFromFriendReq ", err.Error(), req.CommID.FromUserID) - return &pbFriend.GetFriendApplyResp{ErrCode: constant.ErrMysql.ErrCode, ErrMsg: constant.ErrMysql.ErrMsg}, nil + return &pbFriend.GetFriendApplyListResp{ErrCode: constant.ErrDB.ErrCode, ErrMsg: constant.ErrDB.ErrMsg}, nil } + var appleUserList []*sdkws.FriendRequest for _, applyUserInfo := range ApplyUsersInfo { - var userInfo pbFriend.ApplyUserInfo - //Find friend application status - userInfo.Flag = applyUserInfo.Flag - userInfo.ReqMessage = applyUserInfo.ReqMessage - userInfo.ApplyTime = applyUserInfo.CreateTime - - //Find user information - us, err := imdb.FindUserByUID(applyUserInfo.ReqID) - if err != nil { - log.NewError(req.CommID.OperationID, "FindUserByUID failed ", err.Error(), applyUserInfo.ReqID) - continue - } - utils.CopyStructFields(userInfo.UserInfo, us) + var userInfo sdkws.FriendRequest + utils.CopyStructFields(&userInfo, applyUserInfo) appleUserList = append(appleUserList, &userInfo) } - log.NewInfo(req.CommID.OperationID, "rpc GetFriendApplyList ok", pbFriend.GetFriendApplyResp{Data: appleUserList}) - return &pbFriend.GetFriendApplyResp{Data: appleUserList}, nil + log.NewInfo(req.CommID.OperationID, "rpc GetFriendApplyList ok", pbFriend.GetFriendApplyListResp{FriendRequestList: appleUserList}) + return &pbFriend.GetFriendApplyListResp{FriendRequestList: appleUserList}, nil } -func (s *friendServer) GetSelfApplyList(ctx context.Context, req *pbFriend.GetFriendApplyReq) (*pbFriend.GetFriendApplyResp, error) { +func (s *friendServer) GetSelfApplyList(ctx context.Context, req *pbFriend.GetSelfApplyListReq) (*pbFriend.GetSelfApplyListResp, error) { log.NewInfo(req.CommID.OperationID, "GetSelfApplyList args ", req.String()) - var selfApplyOtherUserList []*pbFriend.ApplyUserInfo + var selfApplyOtherUserList []*sdkws.FriendRequest //Parse token, to find current user information if !token_verify.CheckAccess(req.CommID.OpUserID, req.CommID.FromUserID) { log.NewError(req.CommID.OperationID, "CheckAccess false ", req.CommID.OpUserID, req.CommID.FromUserID) - return &pbFriend.GetFriendApplyResp{ErrCode: constant.ErrParseToken.ErrCode, ErrMsg: constant.ErrParseToken.ErrMsg}, nil + return &pbFriend.GetSelfApplyListResp{ErrCode: constant.ErrAccess.ErrCode, ErrMsg: constant.ErrAccess.ErrMsg}, nil } // Find the self add other userinfo usersInfo, err := imdb.FindSelfApplyFromFriendReq(req.CommID.FromUserID) if err != nil { log.NewError(req.CommID.OperationID, "FindSelfApplyFromFriendReq failed ", err.Error(), req.CommID.FromUserID) - return &pbFriend.GetFriendApplyResp{ErrCode: constant.ErrMysql.ErrCode, ErrMsg: constant.ErrMysql.ErrMsg}, nil + return &pbFriend.GetSelfApplyListResp{ErrCode: constant.ErrDB.ErrCode, ErrMsg: constant.ErrDB.ErrMsg}, nil } for _, selfApplyOtherUserInfo := range usersInfo { - var userInfo pbFriend.ApplyUserInfo - //Find friend application status - userInfo.Flag = selfApplyOtherUserInfo.Flag - userInfo.ReqMessage = selfApplyOtherUserInfo.ReqMessage - userInfo.ApplyTime = selfApplyOtherUserInfo.CreateTime - //Find user information - us, err := imdb.FindUserByUID(selfApplyOtherUserInfo.UserID) - if err != nil { - log.NewError(req.CommID.OperationID, "FindUserByUID failed", err.Error(), selfApplyOtherUserInfo.UserID) - continue - } - utils.CopyStructFields(userInfo.UserInfo, us) + var userInfo sdkws.FriendRequest // pbFriend.ApplyUserInfo + utils.CopyStructFields(&userInfo, selfApplyOtherUserInfo) selfApplyOtherUserList = append(selfApplyOtherUserList, &userInfo) } - log.NewInfo(req.CommID.OperationID, "rpc GetSelfApplyList ok", pbFriend.GetFriendApplyResp{Data: selfApplyOtherUserList}) - return &pbFriend.GetFriendApplyResp{Data: selfApplyOtherUserList}, nil + log.NewInfo(req.CommID.OperationID, "rpc GetSelfApplyList ok", pbFriend.GetSelfApplyListResp{FriendRequestList: selfApplyOtherUserList}) + return &pbFriend.GetSelfApplyListResp{FriendRequestList: selfApplyOtherUserList}, nil } diff --git a/internal/rpc/group/group.go b/internal/rpc/group/group.go index cd2ce23df..db04d91f7 100644 --- a/internal/rpc/group/group.go +++ b/internal/rpc/group/group.go @@ -71,36 +71,36 @@ func (s *groupServer) Run() { func (s *groupServer) CreateGroup(ctx context.Context, req *pbGroup.CreateGroupReq) (*pbGroup.CreateGroupResp, error) { log.NewInfo(req.OperationID, "CreateGroup, args ", req.String()) - if !token_verify.CheckAccess(req.OpUserID, req.FromUserID) { - log.NewError(req.OperationID, "CheckAccess false ", req.OpUserID, req.FromUserID) - return &pbGroup.CreateGroupResp{ErrCode: constant.ErrParseToken.ErrCode, ErrMsg: constant.ErrParseToken.ErrMsg}, nil + if !token_verify.CheckAccess(req.OpUserID, req.OwnerUserID) { + log.NewError(req.OperationID, "CheckAccess false ", req.OpUserID, req.OwnerUserID) + return &pbGroup.CreateGroupResp{ErrCode: constant.ErrAccess.ErrCode, ErrMsg: constant.ErrAccess.ErrMsg}, nil } var okUserIDList []string //Time stamp + MD5 to generate group chat id groupId := utils.Md5(strconv.FormatInt(time.Now().UnixNano(), 10)) //to group - err := im_mysql_model.InsertIntoGroup(groupId, req.GroupName, req.Introduction, req.Notification, req.FaceUrl, req.Ext) + err := im_mysql_model.InsertIntoGroup(groupId, req.GroupInfo.GroupName, req.GroupInfo.Introduction, req.GroupInfo.Notification, req.GroupInfo.FaceUrl, req.GroupInfo.Ex, req.GroupInfo.GroupType) if err != nil { - log.NewError(req.OperationID, "InsertIntoGroup failed, ", err.Error(), groupId, req.GroupName, req.Introduction, req.Notification, req.FaceUrl, req.Ext) - return &pbGroup.CreateGroupResp{ErrCode: constant.ErrCreateGroup.ErrCode, ErrMsg: constant.ErrCreateGroup.ErrMsg}, nil + log.NewError(req.OperationID, "InsertIntoGroup failed, ", err.Error(), groupId, req.GroupInfo.GroupName, req.GroupInfo.Introduction, req.GroupInfo.Notification, req.GroupInfo.FaceUrl, req.GroupInfo.Ex, req.GroupInfo.GroupType) + return &pbGroup.CreateGroupResp{ErrCode: constant.ErrDB.ErrCode, ErrMsg: constant.ErrDB.ErrMsg}, nil } - us, err := im_mysql_model.FindUserByUID(req.FromUserID) + us, err := im_mysql_model.FindUserByUID(req.OwnerUserID) if err != nil { - log.NewError(req.OperationID, "FindUserByUID failed ", err.Error(), req.FromUserID) - return &pbGroup.CreateGroupResp{ErrCode: constant.ErrCreateGroup.ErrCode, ErrMsg: constant.ErrCreateGroup.ErrMsg}, nil + log.NewError(req.OperationID, "FindUserByUID failed ", err.Error(), req.OwnerUserID) + return &pbGroup.CreateGroupResp{ErrCode: constant.ErrDB.ErrCode, ErrMsg: constant.ErrDB.ErrMsg}, nil } //to group member err = im_mysql_model.InsertIntoGroupMember(groupId, us.UserID, us.Nickname, us.FaceUrl, constant.GroupOwner) if err != nil { log.NewError(req.OperationID, "InsertIntoGroupMember failed ", err.Error()) - return &pbGroup.CreateGroupResp{ErrCode: constant.ErrCreateGroup.ErrCode, ErrMsg: constant.ErrCreateGroup.ErrMsg}, nil + return &pbGroup.CreateGroupResp{ErrCode: constant.ErrDB.ErrCode, ErrMsg: constant.ErrDB.ErrMsg}, nil } - err = db.DB.AddGroupMember(groupId, req.FromUserID) + err = db.DB.AddGroupMember(groupId, req.OwnerUserID) if err != nil { - log.NewError(req.OperationID, "AddGroupMember failed ", err.Error(), groupId, req.FromUserID) + log.NewError(req.OperationID, "AddGroupMember failed ", err.Error(), groupId, req.OwnerUserID) // return &pbGroup.CreateGroupResp{ErrCode: constant.ErrCreateGroup.ErrCode, ErrMsg: constant.ErrCreateGroup.ErrMsg}, nil } @@ -111,13 +111,13 @@ func (s *groupServer) CreateGroup(ctx context.Context, req *pbGroup.CreateGroupR log.NewError(req.OperationID, "FindUserByUID failed ", err.Error(), user.UserID) continue } - if user.Role == 1 { + if user.RoleLevel == 1 { log.NewError(req.OperationID, "only one owner, failed ", user) continue } - err = im_mysql_model.InsertIntoGroupMember(groupId, user.UserID, us.Nickname, us.FaceUrl, user.Role) + err = im_mysql_model.InsertIntoGroupMember(groupId, user.UserID, us.Nickname, us.FaceUrl, user.RoleLevel) if err != nil { - log.NewError(req.OperationID, "InsertIntoGroupMember failed ", groupId, user.UserID, us.Nickname, us.FaceUrl, user.Role) + log.NewError(req.OperationID, "InsertIntoGroupMember failed ", groupId, user.UserID, us.Nickname, us.FaceUrl, user.RoleLevel) } okUserIDList = append(okUserIDList, user.UserID) err = db.DB.AddGroupMember(groupId, user.UserID) @@ -130,11 +130,11 @@ func (s *groupServer) CreateGroup(ctx context.Context, req *pbGroup.CreateGroupR group, err := im_mysql_model.FindGroupInfoByGroupId(groupId) if err != nil { log.NewError(req.OperationID, "FindGroupInfoByGroupId failed ", err.Error(), groupId) - resp.ErrCode = constant.ErrCreateGroup.ErrCode - resp.ErrMsg = constant.ErrCreateGroup.ErrMsg + resp.ErrCode = constant.ErrDB.ErrCode + resp.ErrMsg = constant.ErrDB.ErrMsg return resp, nil } - chat.GroupCreatedNotification(req.OperationID, req.OpUserID, req.FromUserID, groupId, okUserIDList) + chat.GroupCreatedNotification(req.OperationID, req.OpUserID, req.OwnerUserID, groupId, okUserIDList) utils.CopyStructFields(resp.GroupInfo, group) log.NewInfo(req.OperationID, "rpc CreateGroup return ", resp.String()) return resp, nil @@ -144,14 +144,14 @@ func (s *groupServer) GetJoinedGroupList(ctx context.Context, req *pbGroup.GetJo log.NewInfo(req.OperationID, "GetJoinedGroupList, args ", req.String()) if !token_verify.CheckAccess(req.OpUserID, req.FromUserID) { log.NewError(req.OperationID, "CheckAccess false ", req.OpUserID, req.FromUserID) - return &pbGroup.GetJoinedGroupListResp{ErrCode: constant.ErrParseToken.ErrCode, ErrMsg: constant.ErrParseToken.ErrMsg}, nil + return &pbGroup.GetJoinedGroupListResp{ErrCode: constant.ErrAccess.ErrCode, ErrMsg: constant.ErrAccess.ErrMsg}, nil } //group list joinedGroupList, err := imdb.GetJoinedGroupIdListByMemberId(req.FromUserID) if err != nil { log.NewError(req.OperationID, "GetJoinedGroupIdListByMemberId failed ", err.Error(), req.FromUserID) - return &pbGroup.GetJoinedGroupListResp{ErrCode: constant.ErrParam.ErrCode, ErrMsg: constant.ErrParam.ErrMsg}, nil + return &pbGroup.GetJoinedGroupListResp{ErrCode: constant.ErrDB.ErrCode, ErrMsg: constant.ErrDB.ErrMsg}, nil } var resp pbGroup.GetJoinedGroupListResp @@ -163,7 +163,6 @@ func (s *groupServer) GetJoinedGroupList(ctx context.Context, req *pbGroup.GetJo if num > 0 && owner != nil && err2 == nil && group != nil && err == nil { utils.CopyStructFields(&groupNode, group) groupNode.CreateTime = group.CreateTime - utils.CopyStructFields(groupNode.Owner, owner) groupNode.MemberCount = uint32(num) resp.GroupList = append(resp.GroupList, &groupNode) } else { @@ -241,8 +240,8 @@ func (s *groupServer) GetGroupAllMember(ctx context.Context, req *pbGroup.GetGro resp.ErrCode = 0 memberList, err := imdb.FindGroupMemberListByGroupId(req.GroupID) if err != nil { - resp.ErrCode = constant.ErrDb.ErrCode - resp.ErrMsg = constant.ErrDb.ErrMsg + resp.ErrCode = constant.ErrDB.ErrCode + resp.ErrMsg = constant.ErrDB.ErrMsg log.NewError(req.OperationID, "FindGroupMemberListByGroupId failed,", err.Error(), req.GroupID) return &resp, nil } @@ -273,7 +272,7 @@ func (s *groupServer) GetGroupMemberList(ctx context.Context, req *pbGroup.GetGr resp.ErrCode = 0 memberList, err := imdb.GetGroupMemberByGroupId(req.GroupID, req.Filter, req.NextSeq, 30) if err != nil { - resp.ErrCode = constant.ErrDb.ErrCode + resp.ErrCode = constant.ErrDB.ErrCode resp.ErrMsg = err.Error() log.NewError(req.OperationID, "GetGroupMemberByGroupId failed,", req.GroupID, req.Filter, req.NextSeq, 30) return &resp, nil @@ -301,7 +300,7 @@ func (s *groupServer) KickGroupMember(ctx context.Context, req *pbGroup.KickGrou ownerList, err := imdb.GetOwnerManagerByGroupId(req.GroupID) if err != nil { log.NewError(req.OperationID, "GetOwnerManagerByGroupId failed ", err.Error(), req.GroupID) - return &pbGroup.KickGroupMemberResp{ErrCode: constant.ErrParam.ErrCode, ErrMsg: constant.ErrParam.ErrMsg}, nil + return &pbGroup.KickGroupMemberResp{ErrCode: constant.ErrAccess.ErrCode, ErrMsg: constant.ErrAccess.ErrMsg}, nil } //op is group owner? var flag = 0 @@ -328,7 +327,7 @@ func (s *groupServer) KickGroupMember(ctx context.Context, req *pbGroup.KickGrou if len(req.KickedUserIDList) == 0 { log.NewError(req.OperationID, "failed, kick list 0") - return &pbGroup.KickGroupMemberResp{ErrCode: constant.ErrParam.ErrCode, ErrMsg: constant.ErrParam.ErrMsg}, nil + return &pbGroup.KickGroupMemberResp{ErrCode: constant.ErrArgs.ErrCode, ErrMsg: constant.ErrArgs.ErrMsg}, nil } groupOwnerUserID := "" @@ -422,12 +421,12 @@ func (s *groupServer) GetGroupsInfo(ctx context.Context, req *pbGroup.GetGroupsI return &resp, nil } -func (s *groupServer) GroupApplicationResponse(_ context.Context, req *pbGroup.GroupApplicationResponseReq) (*pbGroup.CommonResp, error) { +func (s *groupServer) GroupApplicationResponse(_ context.Context, req *pbGroup.GroupApplicationResponseReq) (*pbGroup.GroupApplicationResponseResp, error) { log.NewInfo(req.OperationID, "GroupApplicationResponse args ", req.String()) reply, err := imdb.GroupApplicationResponse(req) if err != nil { log.NewError(req.OperationID, "GroupApplicationResponse failed ", err.Error(), req.String()) - return &pbGroup.CommonResp{ErrCode: 702, ErrMsg: err.Error()}, nil + return &pbGroup.GroupApplicationResponseResp{CommonResp: &pbGroup.CommonResp{ErrCode: 702, ErrMsg: err.Error()}}, nil } if req.HandleResult == 1 { @@ -471,13 +470,13 @@ func (s *groupServer) GroupApplicationResponse(_ context.Context, req *pbGroup.G return reply, nil } -func (s *groupServer) JoinGroup(ctx context.Context, req *pbGroup.JoinGroupReq) (*pbGroup.CommonResp, error) { +func (s *groupServer) JoinGroup(ctx context.Context, req *pbGroup.JoinGroupReq) (*pbGroup.JoinGroupResp, error) { log.NewInfo(req.OperationID, "JoinGroup args ", req.String()) applicationUserInfo, err := im_mysql_model.FindUserByUID(req.OpUserID) if err != nil { log.NewError(req.OperationID, "FindUserByUID failed ", err.Error(), req.OpUserID) - return &pbGroup.CommonResp{ErrCode: constant.ErrSearchUserInfo.ErrCode, ErrMsg: constant.ErrSearchUserInfo.ErrMsg}, nil + return &pbGroup.JoinGroupResp{CommonResp: &pbGroup.CommonResp{ErrCode: constant.ErrDB.ErrCode, ErrMsg: constant.ErrDB.ErrMsg}}, nil } _, err = im_mysql_model.FindGroupRequestUserInfoByGroupIDAndUid(req.GroupID, req.OpUserID) @@ -487,34 +486,34 @@ func (s *groupServer) JoinGroup(ctx context.Context, req *pbGroup.JoinGroupReq) if err = im_mysql_model.InsertIntoGroupRequest(req.GroupID, req.OpUserID, "0", req.ReqMessage, applicationUserInfo.Nickname, applicationUserInfo.FaceUrl); err != nil { log.NewError(req.OperationID, "InsertIntoGroupRequest ", err.Error(), req.GroupID, req.OpUserID, "0", req.ReqMessage, applicationUserInfo.Nickname, applicationUserInfo.FaceUrl) - return &pbGroup.CommonResp{ErrCode: constant.ErrJoinGroupApplication.ErrCode, ErrMsg: constant.ErrJoinGroupApplication.ErrMsg}, nil + return &pbGroup.JoinGroupResp{CommonResp: &pbGroup.CommonResp{ErrCode: constant.ErrDB.ErrCode, ErrMsg: constant.ErrDB.ErrMsg}}, nil } memberList, err := im_mysql_model.FindGroupMemberListByGroupIdAndFilterInfo(req.GroupID, constant.GroupOwner) if len(memberList) == 0 { log.NewError(req.OperationID, "FindGroupMemberListByGroupIdAndFilterInfo failed ", req.GroupID, constant.GroupOwner, err) - return &pbGroup.CommonResp{ErrCode: 0, ErrMsg: ""}, nil + return &pbGroup.JoinGroupResp{CommonResp: &pbGroup.CommonResp{ErrCode: 0, ErrMsg: ""}}, nil } chat.JoinApplicationNotification(req) log.NewInfo(req.OperationID, "ReceiveJoinApplicationNotification rpc return ") - return &pbGroup.CommonResp{ErrCode: 0, ErrMsg: ""}, nil + return &pbGroup.JoinGroupResp{CommonResp: &pbGroup.CommonResp{ErrCode: 0, ErrMsg: ""}}, nil } -func (s *groupServer) QuitGroup(ctx context.Context, req *pbGroup.QuitGroupReq) (*pbGroup.CommonResp, error) { +func (s *groupServer) QuitGroup(ctx context.Context, req *pbGroup.QuitGroupReq) (*pbGroup.QuitGroupResp, error) { log.NewError("QuitGroup args ", req.String()) _, err := im_mysql_model.FindGroupMemberInfoByGroupIdAndUserId(req.GroupID, req.OpUserID) if err != nil { log.NewError(req.OperationID, "FindGroupMemberInfoByGroupIdAndUserId failed", err.Error(), req.GroupID, req.OpUserID) - return &pbGroup.CommonResp{ErrCode: constant.ErrQuitGroup.ErrCode, ErrMsg: constant.ErrQuitGroup.ErrMsg}, nil + return &pbGroup.QuitGroupResp{CommonResp: &pbGroup.CommonResp{ErrCode: constant.ErrDB.ErrCode, ErrMsg: constant.ErrDB.ErrMsg}}, nil } err = im_mysql_model.DeleteGroupMemberByGroupIdAndUserId(req.GroupID, req.OpUserID) if err != nil { log.NewError(req.OperationID, "DeleteGroupMemberByGroupIdAndUserId failed ", err.Error(), req.GroupID, req.OpUserID) - return &pbGroup.CommonResp{ErrCode: constant.ErrQuitGroup.ErrCode, ErrMsg: constant.ErrQuitGroup.ErrMsg}, nil + return &pbGroup.QuitGroupResp{CommonResp: &pbGroup.CommonResp{ErrCode: constant.ErrDB.ErrCode, ErrMsg: constant.ErrDB.ErrMsg}}, nil } err = db.DB.DelGroupMember(req.GroupID, req.OpUserID) @@ -525,7 +524,7 @@ func (s *groupServer) QuitGroup(ctx context.Context, req *pbGroup.QuitGroupReq) chat.MemberLeaveNotification(req) log.NewInfo(req.OperationID, "rpc QuitGroup return ") - return &pbGroup.CommonResp{}, nil + return &pbGroup.QuitGroupResp{CommonResp: &pbGroup.CommonResp{ErrCode: 0, ErrMsg: ""}}, nil } func hasAccess(req *pbGroup.SetGroupInfoReq) bool { @@ -543,17 +542,17 @@ func hasAccess(req *pbGroup.SetGroupInfoReq) bool { } } -func (s *groupServer) SetGroupInfo(ctx context.Context, req *pbGroup.SetGroupInfoReq) (*pbGroup.CommonResp, error) { +func (s *groupServer) SetGroupInfo(ctx context.Context, req *pbGroup.SetGroupInfoReq) (*pbGroup.SetGroupInfoResp, error) { log.NewInfo(req.OperationID, "SetGroupInfo args ", req.String()) if !hasAccess(req) { log.NewError(req.OperationID, "no access ") - return &pbGroup.CommonResp{ErrCode: constant.ErrSetGroupInfo.ErrCode, ErrMsg: constant.ErrAccess.ErrMsg}, nil + return &pbGroup.SetGroupInfoResp{CommonResp: &pbGroup.CommonResp{ErrCode: constant.ErrAccess.ErrCode, ErrMsg: constant.ErrAccess.ErrMsg}}, nil } group, err := im_mysql_model.FindGroupInfoByGroupId(req.GroupInfo.GroupID) if err != nil { log.NewError(req.OperationID, "FindGroupInfoByGroupId failed, ", err.Error(), req.GroupInfo.GroupID) - return &pbGroup.CommonResp{ErrCode: constant.ErrSetGroupInfo.ErrCode, ErrMsg: constant.ErrAccess.ErrMsg}, nil + return &pbGroup.SetGroupInfoResp{CommonResp: &pbGroup.CommonResp{ErrCode: constant.ErrDB.ErrCode, ErrMsg: constant.ErrAccess.ErrMsg}}, nil } ////bitwise operators: 0001:groupName; 0010:Notification 0100:Introduction; 1000:FaceUrl; 10000:owner @@ -572,7 +571,7 @@ func (s *groupServer) SetGroupInfo(ctx context.Context, req *pbGroup.SetGroupInf } //only administrators can set group information if err = im_mysql_model.SetGroupInfo(req.GroupInfo.GroupID, req.GroupInfo.GroupName, req.GroupInfo.Introduction, req.GroupInfo.Notification, req.GroupInfo.FaceUrl, ""); err != nil { - return &pbGroup.CommonResp{ErrCode: constant.ErrSetGroupInfo.ErrCode, ErrMsg: constant.ErrSetGroupInfo.ErrMsg}, nil + return &pbGroup.CommonResp{ErrCode: constant.ErrDB.ErrCode, ErrMsg: constant.ErrDB.ErrMsg}, nil } if changedType != 0 { @@ -582,13 +581,13 @@ func (s *groupServer) SetGroupInfo(ctx context.Context, req *pbGroup.SetGroupInf return &pbGroup.CommonResp{}, nil } -func (s *groupServer) TransferGroupOwner(_ context.Context, req *pbGroup.TransferGroupOwnerReq) (*pbGroup.CommonResp, error) { +func (s *groupServer) TransferGroupOwner(_ context.Context, req *pbGroup.TransferGroupOwnerReq) (*pbGroup.TransferGroupOwnerResp, error) { log.NewInfo(req.OperationID, "TransferGroupOwner ", req.String()) reply, err := im_mysql_model.TransferGroupOwner(req) if err != nil { log.NewError("TransferGroupOwner ", req.String()) - return &pbGroup.CommonResp{ErrCode: constant.ErrDb.ErrCode, ErrMsg: constant.ErrDb.ErrMsg}, nil + return &pbGroup.TransferGroupOwnerResp{CommonResp: &pbGroup.CommonResp{ErrCode: constant.ErrDB.ErrCode, ErrMsg: constant.ErrDB.ErrMsg}}, nil } changedType := int32(1) << 4 chat.GroupInfoChangedNotification(req.OperationID, req.OpUserID, req.GroupID, changedType) diff --git a/pkg/base_info/friend_api_struct.go b/pkg/base_info/friend_api_struct.go new file mode 100644 index 000000000..3b20185d8 --- /dev/null +++ b/pkg/base_info/friend_api_struct.go @@ -0,0 +1,155 @@ +package base_info + +import open_im_sdk "Open_IM/pkg/proto/sdk_ws" + +open_im_sdk "Open_IM/pkg/proto/sdk_ws" + +type paramsCommFriend struct { + OperationID string `json:"operationID" binding:"required"` + ToUserID string `json:"toUserID" binding:"required"` + FromUserID string `json:"fromUserID" binding:"required"` +} + + + +type AddBlacklistReq struct { + paramsCommFriend +} +type AddBlacklistResp struct { + CommResp +} + + + +type ImportFriendReq struct { + FriendUserIDList []string `json:"friendUserIDList" binding:"required"` + OperationID string `json:"operationID" binding:"required"` + FromUserID string `json:"fromUserID" binding:"required"` +} +type ImportFriendResp struct { + CommResp + Data []string `json:"data"` +} + + +type AddFriendReq struct { + paramsCommFriend + ReqMsg string `json:"reqMsg"` +} +type AddFriendResp struct { + CommResp +} + + +type AddFriendResponseReq struct { + paramsCommFriend + Flag int32 `json:"flag" binding:"required"` + HandleMsg string `json:"handleMsg"` +} +type AddFriendResponseResp struct { + CommResp +} + + + +type DeleteFriendReq struct { + paramsCommFriend +} +type DeleteFriendResp struct { + CommResp +} + + + +type GetBlackListReq struct { + paramsCommFriend +} +type GetBlackListResp struct { + CommResp + BlackUserInfoList []*blackUserInfo `json:"data"` +} + + +//type PublicUserInfo struct { +// UserID string `json:"userID"` +// Nickname string `json:"nickname"` +// FaceUrl string `json:"faceUrl"` +// Gender int32 `json:"gender"` +//} + +type blackUserInfo struct { + open_im_sdk.PublicUserInfo +} + + +type SetFriendCommentReq struct { + paramsCommFriend + Remark string `json:"remark" binding:"required"` +} +type SetFriendCommentResp struct { + CommResp +} + + +type RemoveBlackListReq struct { + paramsCommFriend +} +type RemoveBlackListResp struct { + CommResp +} + +type IsFriendReq struct { + paramsCommFriend +} +type IsFriendResp struct { + CommResp + Response bool `json:"response"` +} + + +type GetFriendsInfoReq struct { + paramsCommFriend +} +type GetFriendsInfoResp struct { + CommResp + FriendInfoList []*open_im_sdk.FriendInfo `json:"data"` +} + +type GetFriendListReq struct { + paramsCommFriend +} +type GetFriendListResp struct { + CommResp + FriendInfoList []*open_im_sdk.FriendInfo `json:"data"` +} + + + + + +type GetFriendApplyListReq struct { + paramsCommFriend +} +type GetFriendApplyListResp struct { + CommResp + FriendRequestList open_im_sdk.FriendRequest `json:"data"` +} + +type GetSelfApplyListReq struct { + paramsCommFriend +} +type GetSelfApplyListResp struct { + CommResp + FriendRequestList open_im_sdk.FriendRequest `json:"data"` +} + + + + + + + + + + + diff --git a/pkg/base_info/group_api_struct.go b/pkg/base_info/group_api_struct.go new file mode 100644 index 000000000..726a9c24a --- /dev/null +++ b/pkg/base_info/group_api_struct.go @@ -0,0 +1,153 @@ +package base_info + +import ( + pb "Open_IM/pkg/proto/group" + open_im_sdk "Open_IM/pkg/proto/sdk_ws" +) + +type CommResp struct { + ErrCode int32 `json:"errCode"` + ErrMsg string `json:"errMsg"` +} +type Id2Result struct { + UserID string `json:"userID"` + Result int32 `json:"result"` +} + +type KickGroupMemberReq struct { + GroupID string `json:"groupID" binding:"required"` + KickedUserIDList []string `json:"kickedUserIDList" binding:"required"` + Reason string `json:"reason"` + OperationID string `json:"operationID" binding:"required"` +} +type KickGroupMemberResp struct { + CommResp + Data []*Id2Result `json:"data"` +} + +type GetGroupMembersInfoReq struct { + GroupID string `json:"groupID" binding:"required"` + MemberList []string `json:"memberList" binding:"required"` + OperationID string `json:"operationID" binding:"required"` +} +type GetGroupMembersInfoResp struct { + CommResp + Data []*open_im_sdk.GroupMemberFullInfo `json:"data"` +} + +type InviteUserToGroupReq struct { + GroupID string `json:"groupID" binding:"required"` + InvitedUserIDList []string `json:"uidList" binding:"required"` + Reason string `json:"reason"` + OperationID string `json:"operationID" binding:"required"` +} +type InviteUserToGroupResp struct { + CommResp + Data []Id2Result `json:"data"` +} + +type GetJoinedGroupListReq struct { + OperationID string `json:"operationID" binding:"required"` + FromUserID string `json:"fromUserID" binding:"required"` +} +type GetJoinedGroupListResp struct { + CommResp + Data []*open_im_sdk.GroupInfo `json:"data"` +} + +type GetGroupMemberListReq struct { + GroupID string `json:"groupID"` + Filter int32 `json:"filter"` + NextSeq int32 `json:"nextSeq"` + OperationID string `json:"operationID"` +} +type GetGroupMemberListResp struct { + CommResp + NextSeq int32 `json:"nextSeq"` + Data []*open_im_sdk.GroupMemberFullInfo `json:"data"` +} + +type GetGroupAllMemberReq struct { + GroupID string `json:"groupID"` + OperationID string `json:"operationID"` +} +type GetGroupAllMemberResp struct { + CommResp + Data []*open_im_sdk.GroupMemberFullInfo `json:"data"` +} + +type CreateGroupReq struct { + MemberList []*pb.GroupAddMemberInfo `json:"memberList"` + GroupName string `json:"groupName"` + Introduction string `json:"introduction"` + Notification string `json:"notification"` + FaceUrl string `json:"faceUrl"` + OperationID string `json:"operationID" binding:"required"` + GroupType int32 `json:"groupType"` + Ex string `json:"ex"` +} +type CreateGroupResp struct { + CommResp + Data open_im_sdk.GroupInfo `json:"data"` +} + +type GetGroupApplicationListReq struct { + OperationID string `json:"operationID" binding:"required"` + FromUserID string `json:"fromUserID" binding:"required"` //my application +} +type GetGroupApplicationListResp struct { + CommResp + Data []*open_im_sdk.GroupRequest `json:"data"` +} + +type GetGroupInfoReq struct { + GroupIDList []string `json:"groupIDList" binding:"required"` + OperationID string `json:"operationID" binding:"required"` +} +type GetGroupInfoResp struct { + CommResp + Data []open_im_sdk.GroupInfo `json:"data"` +} + +type ApplicationGroupResponseReq struct { + OperationID string `json:"groupIDList" binding:"required"` + GroupID string `json:"groupIDList" binding:"required"` + FromUserID string `json:"groupIDList" binding:"required"` + HandledMsg string `json:"groupIDList" binding:"required"` + HandleResult int32 `json:"groupIDList" binding:"required"` +} +type ApplicationGroupResponseResp struct { + CommResp +} + +type JoinGroupReq struct { + GroupID string `json:"groupID"` + ReqMessage string `json:"reqMessage"` + OperationID string `json:"operationID"` +} +type JoinGroupResp struct { + CommResp +} + +type QuitGroupReq struct { + GroupID string `json:"groupID" binding:"required"` + OperationID string `json:"operationID" binding:"required"` +} +type QuitGroupResp struct { + CommResp +} + +type SetGroupInfoReq struct { + open_im_sdk.GroupInfo + OperationID string `json:"operationID" binding:"required"` +} +type SetGroupInfoResp struct { + CommResp +} + +type TransferGroupOwnerReq struct { + GroupID string `json:"groupID" binding:"required"` + OldOwnerUserID string `json:"oldOwnerUserID" binding:"required"` + NewOwnerUserID string `json:"newOwnerUserID" binding:"required"` + OperationID string `json:"operationID" binding:"required"` +} diff --git a/pkg/base_info/public_struct.go b/pkg/base_info/public_struct.go new file mode 100644 index 000000000..3669518e7 --- /dev/null +++ b/pkg/base_info/public_struct.go @@ -0,0 +1,95 @@ +//package base_info +// +//type GroupInfo struct { +// GroupID string `json:"groupID"` +// GroupName string `json:"groupName"` +// Notification string `json:"notification"` +// Introduction string `json:"introduction"` +// FaceUrl string `json:"faceUrl"` +// OperationID string `json:"operationID"` +// OwnerUserID string `json:"ownerUserID"` +// CreateTime int64 `json:"createTime"` +// MemberCount uint32 `json:"memberCount"` +// Ex string `json:"ex"` +// Status int32 `json:"status"` +// CreatorUserID string `json:"creatorUserID"` +// GroupType int32 `json:"groupType"` +//} +// +//type GroupMemberFullInfo struct { +// GroupID string `json:"groupID"` +// UserID string `json:"userID"` +// RoleLevel int32 `json:"roleLevel"` +// JoinTime uint64 `json:"joinTime"` +// Nickname string `json:"nickname"` +// FaceUrl string `json:"faceUrl"` +// FriendRemark string `json:"friendRemark"` +// AppMangerLevel int32 `json:"appMangerLevel"` +// JoinSource int32 `json:"joinSource"` +// OperatorUserID string `json:"operatorUserID"` +// Ex string `json:"ex"` +//} +// +//type PublicUserInfo struct { +// UserID string `json:"userID"` +// Nickname string `json:"nickname"` +// FaceUrl string `json:"faceUrl"` +// Gender int32 `json:"gender"` +//} +// +//type UserInfo struct { +// UserID string `json:"userID"` +// Nickname string `json:"nickname"` +// FaceUrl string `json:"faceUrl"` +// Gender int32 `json:"gender"` +// Mobile string `json:"mobile"` +// Birth string `json:"birth"` +// Email string `json:"email"` +// Ex string `json:"ex"` +//} +// +//type FriendInfo struct { +// OwnerUserID string `json:"ownerUserID"` +// Remark string `json:"remark"` +// CreateTime int64 `json:"createTime"` +// FriendUser UserInfo `json:"friendUser"` +// AddSource int32 `json:"addSource"` +// OperatorUserID string `json:"operatorUserID"` +// Ex string `json:"ex"` +//} +// +//type BlackInfo struct { +// OwnerUserID string `json:"ownerUserID"` +// CreateTime int64 `json:"createTime"` +// BlackUser PublicUserInfo `json:"friendUser"` +// AddSource int32 `json:"addSource"` +// OperatorUserID string `json:"operatorUserID"` +// Ex string `json:"ex"` +//} +// +//type GroupRequest struct { +// UserID string `json:"userID"` +// GroupID string `json:"groupID"` +// HandleResult string `json:"handleResult"` +// ReqMsg string `json:"reqMsg"` +// HandleMsg string `json:"handleMsg"` +// ReqTime int64 `json:"reqTime"` +// HandleUserID string `json:"handleUserID"` +// HandleTime int64 `json:"handleTime"` +// Ex string `json:"ex"` +//} +// +//type FriendRequest struct { +// FromUserID string `json:"fromUserID"` +// ToUserID string `json:"toUserID"` +// HandleResult int32 `json:"handleResult"` +// ReqMessage string `json:"reqMessage"` +// CreateTime int64 `json:"createTime"` +// HandlerUserID string `json:"handlerUserID"` +// HandleMsg string `json:"handleMsg"` +// HandleTime int64 `json:"handleTime"` +// Ex string `json:"ex"` +//} +// +// +// diff --git a/pkg/common/constant/error.go b/pkg/common/constant/error.go index 7541a784e..6df403140 100644 --- a/pkg/common/constant/error.go +++ b/pkg/common/constant/error.go @@ -11,53 +11,60 @@ type ErrInfo struct { var ( OK = ErrInfo{0, ""} - ErrMysql = ErrInfo{100, ""} - ErrMongo = ErrInfo{110, ""} - ErrRedis = ErrInfo{120, ""} - ErrParseToken = ErrInfo{200, "Parse token failed"} - ErrCreateToken = ErrInfo{201, "Create token failed"} - ErrAppServerKey = ErrInfo{300, "key error"} - ErrTencentCredential = ErrInfo{400, ""} + // ErrMysql = ErrInfo{100, ""} + // ErrMongo = ErrInfo{110, ""} + // ErrRedis = ErrInfo{120, ""} + ErrParseToken = ErrInfo{200, ParseTokenMsg.Error()} + // ErrCreateToken = ErrInfo{201, "Create token failed"} + // ErrAppServerKey = ErrInfo{300, "key error"} + ErrTencentCredential = ErrInfo{400, ThirdPartyMsg.Error()} - ErrorUserRegister = ErrInfo{600, "User registration failed"} - ErrAccountExists = ErrInfo{601, "The account is already registered and cannot be registered again"} - ErrUserPassword = ErrInfo{602, "User password error"} - ErrRefreshToken = ErrInfo{605, "Failed to refresh token"} - ErrAddFriend = ErrInfo{606, "Failed to add friends"} - ErrAgreeToAddFriend = ErrInfo{607, "Failed to agree application"} - ErrAddFriendToBlack = ErrInfo{608, "Failed to add friends to the blacklist"} - ErrGetBlackList = ErrInfo{609, "Failed to get blacklist"} - ErrDeleteFriend = ErrInfo{610, "Failed to delete friend"} - ErrGetFriendApplyList = ErrInfo{611, "Failed to get friend application list"} - ErrGetFriendList = ErrInfo{612, "Failed to get friend list"} - ErrRemoveBlackList = ErrInfo{613, "Failed to remove blacklist"} - ErrSearchUserInfo = ErrInfo{614, "Can't find the user information"} - ErrDelAppleDeviceToken = ErrInfo{615, ""} - ErrModifyUserInfo = ErrInfo{616, "update user some attribute failed"} - ErrSetFriendComment = ErrInfo{617, "set friend comment failed"} - ErrSearchUserInfoFromTheGroup = ErrInfo{618, "There is no such group or the user not in the group"} - ErrCreateGroup = ErrInfo{619, "create group chat failed"} - ErrJoinGroupApplication = ErrInfo{620, "Failed to apply to join the group"} - ErrQuitGroup = ErrInfo{621, "Failed to quit the group"} - ErrSetGroupInfo = ErrInfo{622, "Failed to set group info"} - ErrParam = ErrInfo{700, "param failed"} - ErrTokenExpired = ErrInfo{701, TokenExpired.Error()} - ErrTokenInvalid = ErrInfo{702, TokenInvalid.Error()} - ErrTokenMalformed = ErrInfo{703, TokenMalformed.Error()} - ErrTokenNotValidYet = ErrInfo{704, TokenNotValidYet.Error()} - ErrTokenUnknown = ErrInfo{705, TokenUnknown.Error()} + // ErrorUserRegister = ErrInfo{600, "User registration failed"} + // ErrAccountExists = ErrInfo{601, "The account is already registered and cannot be registered again"} + // ErrUserPassword = ErrInfo{602, "User password error"} + // ErrRefreshToken = ErrInfo{605, "Failed to refresh token"} + // ErrAddFriend = ErrInfo{606, "Failed to add friends"} + // ErrAgreeToAddFriend = ErrInfo{607, "Failed to agree application"} + // ErrAddFriendToBlack = ErrInfo{608, "Failed to add friends to the blacklist"} + // ErrGetBlackList = ErrInfo{609, "Failed to get blacklist"} + // ErrDeleteFriend = ErrInfo{610, "Failed to delete friend"} + // ErrGetFriendApplyList = ErrInfo{611, "Failed to get friend application list"} + // ErrGetFriendList = ErrInfo{612, "Failed to get friend list"} + // ErrRemoveBlackList = ErrInfo{613, "Failed to remove blacklist"} + // ErrSearchUserInfo = ErrInfo{614, "Can't find the user information"} + // ErrDelAppleDeviceToken = ErrInfo{615, ""} + // ErrModifyUserInfo = ErrInfo{616, "update user some attribute failed"} + // ErrSetFriendComment = ErrInfo{617, "set friend comment failed"} + // ErrSearchUserInfoFromTheGroup = ErrInfo{618, "There is no such group or the user not in the group"} + // ErrCreateGroup = ErrInfo{619, "create group chat failed"} + // ErrJoinGroupApplication = ErrInfo{620, "Failed to apply to join the group"} + // ErrQuitGroup = ErrInfo{621, "Failed to quit the group"} + // ErrSetGroupInfo = ErrInfo{622, "Failed to set group info"} + // ErrParam = ErrInfo{700, "param failed"} + ErrTokenExpired = ErrInfo{701, TokenExpiredMsg.Error()} + ErrTokenInvalid = ErrInfo{702, TokenInvalidMsg.Error()} + ErrTokenMalformed = ErrInfo{703, TokenMalformedMsg.Error()} + ErrTokenNotValidYet = ErrInfo{704, TokenNotValidYetMsg.Error()} + ErrTokenUnknown = ErrInfo{705, TokenUnknownMsg.Error()} - ErrAccess = ErrInfo{ErrCode: 800, ErrMsg: "no permission"} - - ErrDb = ErrInfo{ErrCode: 900, ErrMsg: "db failed"} + ErrAccess = ErrInfo{ErrCode: 801, ErrMsg: AccessMsg.Error()} + ErrDB = ErrInfo{ErrCode: 802, ErrMsg: DBMsg.Error()} + ErrArgs = ErrInfo{ErrCode: 8003, ErrMsg: ArgsMsg.Error()} ) var ( - TokenExpired = errors.New("token is timed out, please log in again") - TokenInvalid = errors.New("token has been invalidated") - TokenNotValidYet = errors.New("token not active yet") - TokenMalformed = errors.New("that's not even a token") - TokenUnknown = errors.New("couldn't handle this token") + ParseTokenMsg = errors.New("parse token failed") + TokenExpiredMsg = errors.New("token is timed out, please log in again") + TokenInvalidMsg = errors.New("token has been invalidated") + TokenNotValidYetMsg = errors.New("token not active yet") + TokenMalformedMsg = errors.New("that's not even a token") + TokenUnknownMsg = errors.New("couldn't handle this token") + + AccessMsg = errors.New("no permission") + DBMsg = errors.New("db failed") + ArgsMsg = errors.New("args failed") + + ThirdPartyMsg = errors.New("third party error") ) const ( @@ -67,7 +74,7 @@ const ( LogicalError = 10003 ServerError = 10004 HttpError = 10005 - IoErrot = 10006 + IoError = 10006 IntentionalError = 10007 ) 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 8eefd1c63..6f5c5060e 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 @@ -6,17 +6,13 @@ import ( "time" ) -func InsertToFriend(ownerId, friendId string, flag int32) error { +func InsertToFriend(toInsertFollow *Friend) error { dbConn, err := db.DB.MysqlDB.DefaultGormDB() if err != nil { return err } - toInsertFollow := Friend{ - OwnerUserID: ownerId, - FriendUserID: friendId, - FriendFlag: flag, - CreateTime: time.Now(), - } + toInsertFollow.CreateTime = time.Now() + err = dbConn.Table("friend").Create(toInsertFollow).Error if err != nil { return err @@ -24,46 +20,56 @@ func InsertToFriend(ownerId, friendId string, flag int32) error { return nil } -func FindFriendRelationshipFromFriend(ownerId, friendId string) (*Friend, error) { +func FindFriendRelationshipFromFriend(OwnerUserID, FriendUserID string) (*Friend, error) { dbConn, err := db.DB.MysqlDB.DefaultGormDB() if err != nil { return nil, err } var friend Friend - err = dbConn.Table("friend").Where("owner_id=? and friend_id=?", ownerId, friendId).Find(&friend).Error + err = dbConn.Table("friend").Where("owner_user_id=? and friend_user_id=?", OwnerUserID, FriendUserID).Find(&friend).Error if err != nil { return nil, err } return &friend, err } -func FindUserInfoFromFriend(ownerId string) ([]Friend, error) { +func FindUserInfoFromFriend(OwnerUserID string) ([]Friend, error) { dbConn, err := db.DB.MysqlDB.DefaultGormDB() if err != nil { return nil, err } var friends []Friend - err = dbConn.Table("friend").Where("owner_id=?", ownerId).Find(&friends).Error + err = dbConn.Table("friend").Where("owner_user_id=?", OwnerUserID).Find(&friends).Error if err != nil { return nil, err } return friends, nil } -func UpdateFriendComment(ownerId, friendId, comment string) error { +func UpdateFriendComment(OwnerUserID, FriendUserID, Remark string) error { dbConn, err := db.DB.MysqlDB.DefaultGormDB() if err != nil { return err } - err = dbConn.Exec("update friend set comment=? where owner_id=? and friend_id=?", comment, ownerId, friendId).Error + err = dbConn.Exec("update friend set remark=? where owner_user_id=? and friend_user_id=?", Remark, OwnerUserID, FriendUserID).Error return err } -func DeleteSingleFriendInfo(ownerId, friendId string) error { +func DeleteSingleFriendInfo(OwnerUserID, FriendUserID string) error { dbConn, err := db.DB.MysqlDB.DefaultGormDB() if err != nil { return err } - err = dbConn.Table("friend").Where("owner_id=? and friend_id=?", ownerId, friendId).Delete(Friend{}).Error + err = dbConn.Table("friend").Where("owner_user_id=? and friend_user_id=?", OwnerUserID, FriendUserID).Delete(Friend{}).Error return err } + +//type Friend struct { +// OwnerUserID string `gorm:"column:owner_user_id;primaryKey;"` +// FriendUserID string `gorm:"column:friend_user_id;primaryKey;"` +// Remark string `gorm:"column:remark"` +// CreateTime time.Time `gorm:"column:create_time"` +// AddSource int32 `gorm:"column:add_source"` +// OperatorUserID string `gorm:"column:operator_user_id"` +// Ex string `gorm:"column:ex"` +//} diff --git a/pkg/common/db/mysql_model/im_mysql_model/friend_request_model.go b/pkg/common/db/mysql_model/im_mysql_model/friend_request_model.go index 9ccf17a0e..e2a332364 100644 --- a/pkg/common/db/mysql_model/im_mysql_model/friend_request_model.go +++ b/pkg/common/db/mysql_model/im_mysql_model/friend_request_model.go @@ -2,43 +2,42 @@ package im_mysql_model import ( "Open_IM/pkg/common/db" - "time" ) -// reqId add userId -func ReplaceIntoFriendReq(reqId, userId string, flag int32, reqMessage string) error { - dbConn, err := db.DB.MysqlDB.DefaultGormDB() - if err != nil { - return err - } - err = dbConn.Exec("replace into friend_request(req_id,user_id,flag,req_message,create_time) values(?,?,?,?,?)", reqId, userId, flag, reqMessage, time.Now()).Error - if err != nil { - return err - } - return nil -} +//type FriendRequest struct { +// FromUserID string `gorm:"column:from_user_id;primaryKey;"` +// ToUserID string `gorm:"column:to_user_id;primaryKey;"` +// HandleResult int32 `gorm:"column:handle_result"` +// ReqMessage string `gorm:"column:req_message"` +// CreateTime time.Time `gorm:"column:create_time"` +// HandlerUserID string `gorm:"column:handler_user_id"` +// HandleMsg string `gorm:"column:handle_msg"` +// HandleTime time.Time `gorm:"column:handle_time"` +// Ex string `gorm:"column:ex"` +//} -func FindFriendsApplyFromFriendReq(userId string) ([]FriendRequest, error) { +// who apply to add me +func GetReceivedFriendsApplicationListByUserID(ToUserID string) ([]FriendRequest, error) { dbConn, err := db.DB.MysqlDB.DefaultGormDB() if err != nil { return nil, err } var usersInfo []FriendRequest - //dbConn.LogMode(true) - err = dbConn.Table("friend_request").Where("user_id=?", userId).Find(&usersInfo).Error + err = dbConn.Table("friend_request").Where("to_user_id=?", ToUserID).Find(&usersInfo).Error if err != nil { return nil, err } return usersInfo, nil } -func FindSelfApplyFromFriendReq(userId string) ([]FriendRequest, error) { +//I apply to add somebody +func GetSendFriendApplicationListByUserID(FromUserID string) ([]FriendRequest, error) { dbConn, err := db.DB.MysqlDB.DefaultGormDB() if err != nil { return nil, err } var usersInfo []FriendRequest - err = dbConn.Table("friend_request").Where("req_id=?", userId).Find(&usersInfo).Error + err = dbConn.Table("friend_request").Where("from_user_id=?", FromUserID).Find(&usersInfo).Error if err != nil { return nil, err } @@ -46,26 +45,25 @@ func FindSelfApplyFromFriendReq(userId string) ([]FriendRequest, error) { } //reqId apply to add userId already -func FindFriendApplyFromFriendReqByUid(reqId, userId string) (*FriendRequest, error) { +func FindFriendApplicationByBothUserID(FromUserId, ToUserID string) (*FriendRequest, error) { dbConn, err := db.DB.MysqlDB.DefaultGormDB() if err != nil { return nil, err } var friendRequest FriendRequest - err = dbConn.Table("friend_request").Where("req_id=? and user_id=?", reqId, userId).Find(&friendRequest).Error + err = dbConn.Table("friend_request").Where("from_user_id=? and to_user_id=?", FromUserId, ToUserID).Find(&friendRequest).Error if err != nil { return nil, err } return &friendRequest, nil } -//userId process reqId -func UpdateFriendRelationshipToFriendReq(reqId, userId string, flag int32) error { +func UpdateFriendApplication(friendRequest FriendRequest) error { dbConn, err := db.DB.MysqlDB.DefaultGormDB() if err != nil { return err } - err = dbConn.Exec("update friend_request set flag=? where req_id=? and user_id=?", flag, reqId, userId).Error + err = dbConn.Table("friend_request").Where("from_user_id=? and to_user_id=?", friendRequest.FromUserID, friendRequest.ToUserID).Update(&friendRequest).Error if err != nil { return err } diff --git a/pkg/common/db/mysql_model/im_mysql_model/group_member_model.go b/pkg/common/db/mysql_model/im_mysql_model/group_member_model.go index 578b56632..888fff2e8 100644 --- a/pkg/common/db/mysql_model/im_mysql_model/group_member_model.go +++ b/pkg/common/db/mysql_model/im_mysql_model/group_member_model.go @@ -2,15 +2,25 @@ package im_mysql_model import ( "Open_IM/pkg/common/db" - "time" ) -func InsertIntoGroupMember(groupId, uid, nickName, userGroupFaceUrl string, administratorLevel int32) error { +//type GroupMember struct { +// GroupID string `gorm:"column:group_id;primaryKey;"` +// UserID string `gorm:"column:user_id;primaryKey;"` +// NickName string `gorm:"column:nickname"` +// FaceUrl string `gorm:"user_group_face_url"` +// RoleLevel int32 `gorm:"column:role_level"` +// JoinTime time.Time `gorm:"column:join_time"` +// JoinSource int32 `gorm:"column:join_source"` +// OperatorUserID string `gorm:"column:operator_user_id"` +// Ex string `gorm:"column:ex"` +//} + +func InsertIntoGroupMember(toInsertInfo GroupMember) error { dbConn, err := db.DB.MysqlDB.DefaultGormDB() if err != nil { return err } - toInsertInfo := GroupMember{GroupID: groupId, UserID: uid, NickName: nickName, AdministratorLevel: administratorLevel, JoinTime: time.Now(), FaceUrl: userGroupFaceUrl} err = dbConn.Table("group_member").Create(toInsertInfo).Error if err != nil { return err @@ -18,154 +28,154 @@ func InsertIntoGroupMember(groupId, uid, nickName, userGroupFaceUrl string, admi return nil } -func FindGroupMemberListByUserId(uid string) ([]GroupMember, error) { +func GetGroupMemberListByUserID(userID string) ([]GroupMember, error) { dbConn, err := db.DB.MysqlDB.DefaultGormDB() if err != nil { return nil, err } var groupMemberList []GroupMember - err = dbConn.Raw("select * from `group_member` where uid=?", uid).Find(&groupMemberList).Error + err = dbConn.Table("group_member").Where("user_id=?", userID).Find(&groupMemberList).Error if err != nil { return nil, err } return groupMemberList, nil } -func FindGroupMemberListByGroupId(groupId string) ([]GroupMember, error) { +func GetGroupMemberListByGroupID(groupID string) ([]GroupMember, error) { dbConn, err := db.DB.MysqlDB.DefaultGormDB() if err != nil { return nil, err } var groupMemberList []GroupMember - err = dbConn.Raw("select * from `group_member` where group_id=?", groupId).Find(&groupMemberList).Error + err = dbConn.Table("group_member").Where("group_id=?", groupID).Find(&groupMemberList).Error if err != nil { return nil, err } return groupMemberList, nil } -func FindGroupMemberListByGroupIdAndFilterInfo(groupId string, filter int32) ([]GroupMember, error) { +func GetGroupMemberListByGroupIDAndFilter(groupID string, filter int32) ([]GroupMember, error) { dbConn, err := db.DB.MysqlDB.DefaultGormDB() - dbConn.LogMode(true) if err != nil { return nil, err } var groupMemberList []GroupMember - err = dbConn.Raw("select * from `group_member` where group_id=? and administrator_level=?", groupId, filter).Find(&groupMemberList).Error + err = dbConn.Table("group_member").Where("group_id=? and role_level=?", groupID, filter).Find(&groupMemberList).Error if err != nil { return nil, err } return groupMemberList, nil } -func FindGroupMemberInfoByGroupIdAndUserId(groupId, uid string) (*GroupMember, error) { + +func GetGroupMemberInfoByGroupIDAndUserID(groupID, userID string) (*GroupMember, error) { dbConn, err := db.DB.MysqlDB.DefaultGormDB() if err != nil { return nil, err } var groupMember GroupMember - err = dbConn.Raw("select * from `group_member` where group_id=? and uid=? limit 1", groupId, uid).Find(&groupMember).Error + err = dbConn.Table("group_member").Where("group_id=? and user_id=? limit 1", groupID, userID).Find(&groupMember).Error if err != nil { return nil, err } return &groupMember, nil } -func DeleteGroupMemberByGroupIdAndUserId(groupId, uid string) error { +func DeleteGroupMemberByGroupIDAndUserID(groupID, userID string) error { dbConn, err := db.DB.MysqlDB.DefaultGormDB() if err != nil { return err } - err = dbConn.Exec("delete from `group_member` where group_id=? and uid=?", groupId, uid).Error + err = dbConn.Table("group_member").Where("group_id=? and user_id=? limit 1", groupID, userID).Delete(&GroupMember{}).Error if err != nil { return err } return nil } -func UpdateOwnerGroupNickName(groupId, userId, groupNickName string) error { +func UpdateGroupMemberInfo(groupMemberInfo GroupMember) error { dbConn, err := db.DB.MysqlDB.DefaultGormDB() if err != nil { return err } - err = dbConn.Exec("update `group_member` set nickname=? where group_id=? and uid=?", groupNickName, groupId, userId).Error + err = dbConn.Table("group_member").Where("group_id=? and user_id=?", groupMemberInfo.GroupID, groupMemberInfo.UserID).Update(&groupMemberInfo).Error if err != nil { return err } return nil } -func SelectGroupList(groupID string) ([]string, error) { - var groupUserID string - var groupList []string +func GetOwnerManagerByGroupID(groupID string) ([]GroupMember, error) { dbConn, err := db.DB.MysqlDB.DefaultGormDB() if err != nil { - return groupList, err + return nil, err } - - rows, err := dbConn.Model(&GroupMember{}).Where("group_id = ?", groupID).Select("user_id").Rows() + var groupMemberList []GroupMember + err = dbConn.Table("group_member").Where("group_id=? and role_level>0", groupID).Find(&groupMemberList).Error if err != nil { - return groupList, err - } - defer rows.Close() - for rows.Next() { - rows.Scan(&groupUserID) - groupList = append(groupList, groupUserID) + return nil, err } - return groupList, nil + return groupMemberList, nil } -func UpdateTheUserAdministratorLevel(groupId, uid string, administratorLevel int64) error { +func GetGroupMemberNumByGroupID(groupID string) int32 { dbConn, err := db.DB.MysqlDB.DefaultGormDB() if err != nil { - return err + return 0 } - err = dbConn.Exec("update `group_member` set administrator_level=? where group_id=? and uid=?", administratorLevel, groupId, uid).Error + var number int32 + err = dbConn.Table("group_member").Where("group_id=?", groupID).Count(&number).Error if err != nil { - return err + return 0 } - return nil + return number } -func GetOwnerManagerByGroupId(groupId string) ([]GroupMember, error) { - dbConn, err := db.DB.MysqlDB.DefaultGormDB() +func GetGroupOwnerInfoByGroupID(groupID string) (*GroupMember, error) { + omList, err := GetOwnerManagerByGroupID(groupID) if err != nil { return nil, err } - var groupMemberList []GroupMember - err = dbConn.Raw("select * from `group_member` where group_id=? and administrator_level > 0", groupId).Find(&groupMemberList).Error - if err != nil { - return nil, err + for _, v := range omList { + if v.RoleLevel == 1 { + return &v, nil + } } - return groupMemberList, nil + return nil, nil } -func IsExistGroupMember(groupId, uid string) bool { +func IsExistGroupMember(groupID, userID string) bool { dbConn, err := db.DB.MysqlDB.DefaultGormDB() if err != nil { return false } var number int32 - err = dbConn.Raw("select count(*) from `group_member` where group_id = ? and uid = ?", groupId, uid).Count(&number).Error + err = dbConn.Table("group_member").Where("group_id = ? and user_id = ?", groupID, userID).Count(&number).Error if err != nil { return false } - if number != 1 { return false } return true } -func RemoveGroupMember(groupId string, memberId string) error { - return DeleteGroupMemberByGroupIdAndUserId(groupId, memberId) +func RemoveGroupMember(groupID string, UserID string) error { + return DeleteGroupMemberByGroupIDAndUserID(groupID, UserID) } -func GetMemberInfoById(groupId string, memberId string) (*GroupMember, error) { - return FindGroupMemberInfoByGroupIdAndUserId(groupId, memberId) +func GetMemberInfoByID(groupID string, userID string) (*GroupMember, error) { + return GetGroupMemberInfoByGroupIDAndUserID(groupID, userID) } -func GetGroupMemberByGroupId(groupId string, filter int32, begin int32, maxNumber int32) ([]GroupMember, error) { - memberList, err := FindGroupMemberListByGroupId(groupId) //sorted by join time +func GetGroupMemberByGroupID(groupID string, filter int32, begin int32, maxNumber int32) ([]GroupMember, error) { + var memberList []GroupMember + var err error + if filter >= 0 { + memberList, err = GetGroupMemberListByGroupIDAndFilter(groupID, filter) //sorted by join time + } else { + memberList, err = GetGroupMemberListByGroupID(groupID) + } + if err != nil { return nil, err } @@ -182,49 +192,35 @@ func GetGroupMemberByGroupId(groupId string, filter int32, begin int32, maxNumbe return memberList[begin:end], nil } -func GetJoinedGroupIdListByMemberId(memberId string) ([]GroupMember, error) { - return FindGroupMemberListByUserId(memberId) -} - -func GetGroupMemberNumByGroupId(groupId string) int32 { - dbConn, err := db.DB.MysqlDB.DefaultGormDB() - if err != nil { - return 0 - } - var number int32 - err = dbConn.Raw("select count(*) from `group_member` where group_id=? ", groupId).Count(&number).Error - if err != nil { - return 0 - } - return number -} - -func GetGroupOwnerByGroupId(groupId string) string { - omList, err := GetOwnerManagerByGroupId(groupId) - if err != nil { - return "" - } - for _, v := range omList { - if v.AdministratorLevel == 1 { - return v.UserID - } - } - return "" -} - -func GetGroupOwnerInfoByGroupId(groupId string) (*GroupMember, error) { - omList, err := GetOwnerManagerByGroupId(groupId) +func GetJoinedGroupIDListByUserID(userID string) ([]string, error) { + memberList, err := GetGroupMemberListByUserID(userID) if err != nil { return nil, err } - for _, v := range omList { - if v.AdministratorLevel == 1 { - return v, nil - } - } - return nil, nil -} - -func InsertGroupMember(groupId, userId, nickName, userFaceUrl string, role int32) error { - return InsertIntoGroupMember(groupId, userId, nickName, userFaceUrl, role) -} + var groupIDList []string = make([]string, len(memberList)) + for _, v := range memberList { + groupIDList = append(groupIDList, v.GroupID) + } + return groupIDList, nil +} + +// +//func SelectGroupList(groupID string) ([]string, error) { +// var groupUserID string +// var groupList []string +// dbConn, err := db.DB.MysqlDB.DefaultGormDB() +// if err != nil { +// return groupList, err +// } +// +// rows, err := dbConn.Model(&GroupMember{}).Where("group_id = ?", groupID).Select("user_id").Rows() +// if err != nil { +// return groupList, err +// } +// defer rows.Close() +// for rows.Next() { +// rows.Scan(&groupUserID) +// groupList = append(groupList, groupUserID) +// } +// return groupList, nil +//} diff --git a/pkg/common/db/mysql_model/im_mysql_model/group_model.go b/pkg/common/db/mysql_model/im_mysql_model/group_model.go index db4e7f3c0..5fc580c8a 100644 --- a/pkg/common/db/mysql_model/im_mysql_model/group_model.go +++ b/pkg/common/db/mysql_model/im_mysql_model/group_model.go @@ -8,17 +8,16 @@ import ( "time" ) -func InsertIntoGroup(groupId, name, introduction, notification, faceUrl, ex string) error { +func InsertIntoGroup(groupInfo Group) error { dbConn, err := db.DB.MysqlDB.DefaultGormDB() if err != nil { return err } - //Default group name - if name == "" { - name = "Group Chat" + if groupInfo.GroupName == "" { + groupInfo.GroupName = "Group Chat" } - toInsertInfo := Group{GroupID: groupId, GroupName: name, Introduction: introduction, Notification: notification, FaceUrl: faceUrl, CreateTime: time.Now(), Ex: ex} - err = dbConn.Table("group").Create(toInsertInfo).Error + groupInfo.CreateTime = time.Now() + err = dbConn.Table("group").Create(groupInfo).Error if err != nil { return err } @@ -164,7 +163,7 @@ func GetGroupApplicationList(uid string) (*group.GetGroupApplicationListResp, er return reply, nil } -func TransferGroupOwner(pb *group.TransferGroupOwnerReq) (*group.CommonResp, error) { +func TransferGroupOwner(pb *group.TransferGroupOwnerReq) (*group.TransferGroupOwnerResp, error) { oldOwner, err := FindGroupMemberInfoByGroupIdAndUserId(pb.GroupID, pb.OldOwnerUserID) if err != nil { return nil, err @@ -187,7 +186,7 @@ func TransferGroupOwner(pb *group.TransferGroupOwnerReq) (*group.CommonResp, err return nil, err } - return &group.CommonResp{}, nil + return &group.TransferGroupOwnerResp{CommonResp: &group.CommonResp{ErrCode: 0}}, nil } func GroupApplicationResponse(pb *group.GroupApplicationResponseReq) (*group.CommonResp, error) { diff --git a/pkg/common/db/mysql_model/im_mysql_model/model_struct.go b/pkg/common/db/mysql_model/im_mysql_model/model_struct.go index f25f4081f..45741797e 100644 --- a/pkg/common/db/mysql_model/im_mysql_model/model_struct.go +++ b/pkg/common/db/mysql_model/im_mysql_model/model_struct.go @@ -2,69 +2,82 @@ package im_mysql_model import "time" -type User struct { - UserID string `gorm:"column:uid;primaryKey;"` - Nickname string `gorm:"column:name"` - FaceUrl string `gorm:"column:icon"` - Gender int32 `gorm:"column:gender"` - Mobile string `gorm:"column:mobile"` - Birth string `gorm:"column:birth"` - Email string `gorm:"column:email"` - Ex string `gorm:"column:ex"` - CreateTime time.Time `gorm:"column:create_time"` -} - type Friend struct { - OwnerUserID string `gorm:"column:owner_id"` - FriendUserID string `gorm:"column:friend_id"` - Remark string `gorm:"column:comment"` - FriendFlag int32 `gorm:"column:friend_flag"` - CreateTime time.Time `gorm:"column:create_time"` + OwnerUserID string `gorm:"column:owner_user_id;primaryKey;"` + FriendUserID string `gorm:"column:friend_user_id;primaryKey;"` + Remark string `gorm:"column:remark"` + CreateTime time.Time `gorm:"column:create_time"` + AddSource int32 `gorm:"column:add_source"` + OperatorUserID string `gorm:"column:operator_user_id"` + Ex string `gorm:"column:ex"` } + type FriendRequest struct { - ReqID string `gorm:"column:req_id"` - UserID string `gorm:"column:user_id"` - Flag int32 `gorm:"column:flag"` - ReqMessage string `gorm:"column:req_message"` - CreateTime time.Time `gorm:"column:create_time"` -} -type BlackList struct { - OwnerUserID string `gorm:"column:owner_id"` - BlockUserID string `gorm:"column:block_id"` - CreateTime time.Time `gorm:"column:create_time"` + FromUserID string `gorm:"column:from_user_id;primaryKey;"` + ToUserID string `gorm:"column:to_user_id;primaryKey;"` + HandleResult int32 `gorm:"column:handle_result"` + ReqMessage string `gorm:"column:req_message"` + CreateTime time.Time `gorm:"column:create_time"` + HandlerUserID string `gorm:"column:handler_user_id"` + HandleMsg string `gorm:"column:handle_msg"` + HandleTime time.Time `gorm:"column:handle_time"` + Ex string `gorm:"column:ex"` } type Group struct { - GroupID string `gorm:"column:group_id"` - GroupName string `gorm:"column:name"` - Introduction string `gorm:"column:introduction"` - Notification string `gorm:"column:notification"` - FaceUrl string `gorm:"column:face_url"` - CreateTime time.Time `gorm:"column:create_time"` - Ext string `gorm:"column:ex"` + GroupID string `gorm:"column:group_id;primaryKey;"` + GroupName string `gorm:"column:name"` + Introduction string `gorm:"column:introduction"` + Notification string `gorm:"column:notification"` + FaceUrl string `gorm:"column:face_url"` + CreateTime time.Time `gorm:"column:create_time"` + Status int32 `gorm:"column:status"` + CreatorUserID string `gorm:"column:creator_user_id"` + GroupType int32 `gorm:"column:group_type"` + Ex string `gorm:"column:ex"` } type GroupMember struct { - GroupID string `gorm:"column:group_id"` - UserID string `gorm:"column:uid"` - NickName string `gorm:"column:nickname"` - AdministratorLevel int32 `gorm:"column:administrator_level"` - JoinTime time.Time `gorm:"column:join_time"` - FaceUrl string `gorm:"user_group_face_url"` + GroupID string `gorm:"column:group_id;primaryKey;"` + UserID string `gorm:"column:user_id;primaryKey;"` + NickName string `gorm:"column:nickname"` + FaceUrl string `gorm:"user_group_face_url"` + RoleLevel int32 `gorm:"column:role_level"` + JoinTime time.Time `gorm:"column:join_time"` + JoinSource int32 `gorm:"column:join_source"` + OperatorUserID string `gorm:"column:operator_user_id"` + Ex string `gorm:"column:ex"` } type GroupRequest struct { - ID string `gorm:"column:id"` - GroupID string `gorm:"column:group_id"` - FromUserID string `gorm:"column:from_user_id"` - ToUserID string `gorm:"column:to_user_id"` - Flag int32 `gorm:"column:flag"` - ReqMsg string `gorm:"column:req_msg"` - HandledMsg string `gorm:"column:handled_msg"` - CreateTime time.Time `gorm:"column:create_time"` - FromUserNickname string `gorm:"from_user_nickname"` - ToUserNickname string `gorm:"to_user_nickname"` - FromUserFaceUrl string `gorm:"from_user_face_url"` - ToUserFaceUrl string `gorm:"to_user_face_url"` - HandledUser string `gorm:"handled_user"` + UserID string `gorm:"column:user_id;primaryKey;"` + GroupID string `gorm:"column:group_id;primaryKey;"` + HandleResult string `gorm:"column:handle_result"` + ReqMsg string `gorm:"column:req_msg"` + HandledMsg string `gorm:"column:handled_msg"` + ReqTime time.Time `gorm:"column:req_time"` + HandleUserID string `gorm:"column:handle_user_id"` + HandledTime time.Time `gorm:"column:handle_time"` + Ex string `gorm:"column:ex"` +} + +type User struct { + UserID string `gorm:"column:user_id;primaryKey;"` + Nickname string `gorm:"column:name"` + FaceUrl string `gorm:"column:icon"` + Gender int32 `gorm:"column:gender"` + PhoneNumber string `gorm:"column:phone_number"` + Birth string `gorm:"column:birth"` + Email string `gorm:"column:email"` + Ex string `gorm:"column:ex"` + CreateTime time.Time `gorm:"column:create_time"` +} + +type BlackList struct { + OwnerUserID string `gorm:"column:owner_user_id;primaryKey;"` + BlockUserID string `gorm:"column:block_user_id;primaryKey;"` + CreateTime time.Time `gorm:"column:create_time"` + AddSource int32 `gorm:"column:add_source"` + OperatorUserID int32 `gorm:"column:operator_user_id"` + Ex string `gorm:"column:ex"` } diff --git a/pkg/proto/base/base.proto b/pkg/proto/base/base.proto new file mode 100644 index 000000000..6d5144f0b --- /dev/null +++ b/pkg/proto/base/base.proto @@ -0,0 +1,5 @@ +syntax = "proto3"; +package base; + + + diff --git a/pkg/proto/friend/friend.pb.go b/pkg/proto/friend/friend.pb.go index a0c0fb25e..67efb3483 100644 --- a/pkg/proto/friend/friend.pb.go +++ b/pkg/proto/friend/friend.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_friend_525e368387d696e2, []int{0} + return fileDescriptor_friend_a4d5a06cd0a3d99f, []int{0} } func (m *CommonResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_CommonResp.Unmarshal(m, b) @@ -84,7 +84,7 @@ func (m *CommID) Reset() { *m = CommID{} } func (m *CommID) String() string { return proto.CompactTextString(m) } func (*CommID) ProtoMessage() {} func (*CommID) Descriptor() ([]byte, []int) { - return fileDescriptor_friend_525e368387d696e2, []int{1} + return fileDescriptor_friend_a4d5a06cd0a3d99f, []int{1} } func (m *CommID) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_CommID.Unmarshal(m, b) @@ -143,7 +143,7 @@ func (m *GetFriendsInfoReq) Reset() { *m = GetFriendsInfoReq{} } func (m *GetFriendsInfoReq) String() string { return proto.CompactTextString(m) } func (*GetFriendsInfoReq) ProtoMessage() {} func (*GetFriendsInfoReq) Descriptor() ([]byte, []int) { - return fileDescriptor_friend_525e368387d696e2, []int{2} + return fileDescriptor_friend_a4d5a06cd0a3d99f, []int{2} } func (m *GetFriendsInfoReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetFriendsInfoReq.Unmarshal(m, b) @@ -171,19 +171,19 @@ func (m *GetFriendsInfoReq) GetCommID() *CommID { } type GetFriendInfoResp struct { - ErrCode int32 `protobuf:"varint,1,opt,name=ErrCode" json:"ErrCode,omitempty"` - ErrMsg string `protobuf:"bytes,2,opt,name=ErrMsg" json:"ErrMsg,omitempty"` - Data *FriendInfo `protobuf:"bytes,3,opt,name=Data" json:"Data,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + ErrCode int32 `protobuf:"varint,1,opt,name=ErrCode" json:"ErrCode,omitempty"` + ErrMsg string `protobuf:"bytes,2,opt,name=ErrMsg" json:"ErrMsg,omitempty"` + FriendInfoList []*sdk_ws.FriendInfo `protobuf:"bytes,3,rep,name=FriendInfoList" json:"FriendInfoList,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } func (m *GetFriendInfoResp) Reset() { *m = GetFriendInfoResp{} } func (m *GetFriendInfoResp) String() string { return proto.CompactTextString(m) } func (*GetFriendInfoResp) ProtoMessage() {} func (*GetFriendInfoResp) Descriptor() ([]byte, []int) { - return fileDescriptor_friend_525e368387d696e2, []int{3} + return fileDescriptor_friend_a4d5a06cd0a3d99f, []int{3} } func (m *GetFriendInfoResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetFriendInfoResp.Unmarshal(m, b) @@ -217,86 +217,16 @@ func (m *GetFriendInfoResp) GetErrMsg() string { return "" } -func (m *GetFriendInfoResp) GetData() *FriendInfo { - if m != nil { - return m.Data - } - return nil -} - -type FriendInfo struct { - OwnerUserID string `protobuf:"bytes,1,opt,name=OwnerUserID" json:"OwnerUserID,omitempty"` - Remark string `protobuf:"bytes,2,opt,name=Remark" json:"Remark,omitempty"` - CreateTime uint64 `protobuf:"varint,3,opt,name=CreateTime" json:"CreateTime,omitempty"` - FriendUser *sdk_ws.UserInfo `protobuf:"bytes,4,opt,name=FriendUser" json:"FriendUser,omitempty"` - IsBlack int32 `protobuf:"varint,5,opt,name=IsBlack" json:"IsBlack,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -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_friend_525e368387d696e2, []int{4} -} -func (m *FriendInfo) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_FriendInfo.Unmarshal(m, b) -} -func (m *FriendInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_FriendInfo.Marshal(b, m, deterministic) -} -func (dst *FriendInfo) XXX_Merge(src proto.Message) { - xxx_messageInfo_FriendInfo.Merge(dst, src) -} -func (m *FriendInfo) XXX_Size() int { - return xxx_messageInfo_FriendInfo.Size(m) -} -func (m *FriendInfo) XXX_DiscardUnknown() { - xxx_messageInfo_FriendInfo.DiscardUnknown(m) -} - -var xxx_messageInfo_FriendInfo proto.InternalMessageInfo - -func (m *FriendInfo) GetOwnerUserID() string { - if m != nil { - return m.OwnerUserID - } - return "" -} - -func (m *FriendInfo) GetRemark() string { - if m != nil { - return m.Remark - } - return "" -} - -func (m *FriendInfo) GetCreateTime() uint64 { - if m != nil { - return m.CreateTime - } - return 0 -} - -func (m *FriendInfo) GetFriendUser() *sdk_ws.UserInfo { +func (m *GetFriendInfoResp) GetFriendInfoList() []*sdk_ws.FriendInfo { if m != nil { - return m.FriendUser + return m.FriendInfoList } return nil } -func (m *FriendInfo) GetIsBlack() int32 { - if m != nil { - return m.IsBlack - } - return 0 -} - type AddFriendReq struct { CommID *CommID `protobuf:"bytes,1,opt,name=CommID" json:"CommID,omitempty"` - ReqMessage string `protobuf:"bytes,2,opt,name=ReqMessage" json:"ReqMessage,omitempty"` + ReqMsg string `protobuf:"bytes,2,opt,name=ReqMsg" json:"ReqMsg,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -306,7 +236,7 @@ func (m *AddFriendReq) Reset() { *m = AddFriendReq{} } func (m *AddFriendReq) String() string { return proto.CompactTextString(m) } func (*AddFriendReq) ProtoMessage() {} func (*AddFriendReq) Descriptor() ([]byte, []int) { - return fileDescriptor_friend_525e368387d696e2, []int{5} + return fileDescriptor_friend_a4d5a06cd0a3d99f, []int{4} } func (m *AddFriendReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_AddFriendReq.Unmarshal(m, b) @@ -333,13 +263,51 @@ func (m *AddFriendReq) GetCommID() *CommID { return nil } -func (m *AddFriendReq) GetReqMessage() string { +func (m *AddFriendReq) GetReqMsg() string { if m != nil { - return m.ReqMessage + return m.ReqMsg } return "" } +type AddFriendResp 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 *AddFriendResp) Reset() { *m = AddFriendResp{} } +func (m *AddFriendResp) String() string { return proto.CompactTextString(m) } +func (*AddFriendResp) ProtoMessage() {} +func (*AddFriendResp) Descriptor() ([]byte, []int) { + return fileDescriptor_friend_a4d5a06cd0a3d99f, []int{5} +} +func (m *AddFriendResp) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_AddFriendResp.Unmarshal(m, b) +} +func (m *AddFriendResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_AddFriendResp.Marshal(b, m, deterministic) +} +func (dst *AddFriendResp) XXX_Merge(src proto.Message) { + xxx_messageInfo_AddFriendResp.Merge(dst, src) +} +func (m *AddFriendResp) XXX_Size() int { + return xxx_messageInfo_AddFriendResp.Size(m) +} +func (m *AddFriendResp) XXX_DiscardUnknown() { + xxx_messageInfo_AddFriendResp.DiscardUnknown(m) +} + +var xxx_messageInfo_AddFriendResp proto.InternalMessageInfo + +func (m *AddFriendResp) GetCommonResp() *CommonResp { + if m != nil { + return m.CommonResp + } + return nil +} + type ImportFriendReq struct { FriendUserIDList []string `protobuf:"bytes,1,rep,name=FriendUserIDList" json:"FriendUserIDList,omitempty"` OperationID string `protobuf:"bytes,2,opt,name=OperationID" json:"OperationID,omitempty"` @@ -354,7 +322,7 @@ func (m *ImportFriendReq) Reset() { *m = ImportFriendReq{} } func (m *ImportFriendReq) String() string { return proto.CompactTextString(m) } func (*ImportFriendReq) ProtoMessage() {} func (*ImportFriendReq) Descriptor() ([]byte, []int) { - return fileDescriptor_friend_525e368387d696e2, []int{6} + return fileDescriptor_friend_a4d5a06cd0a3d99f, []int{6} } func (m *ImportFriendReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ImportFriendReq.Unmarshal(m, b) @@ -403,18 +371,18 @@ func (m *ImportFriendReq) GetOpUserID() string { } type ImportFriendResp struct { - CommonResp *CommonResp `protobuf:"bytes,1,opt,name=commonResp" json:"commonResp,omitempty"` - FailedUidList []string `protobuf:"bytes,2,rep,name=failedUidList" json:"failedUidList,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + CommonResp *CommonResp `protobuf:"bytes,1,opt,name=CommonResp" json:"CommonResp,omitempty"` + FailedFriendUserIDList []string `protobuf:"bytes,2,rep,name=FailedFriendUserIDList" json:"FailedFriendUserIDList,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } func (m *ImportFriendResp) Reset() { *m = ImportFriendResp{} } func (m *ImportFriendResp) String() string { return proto.CompactTextString(m) } func (*ImportFriendResp) ProtoMessage() {} func (*ImportFriendResp) Descriptor() ([]byte, []int) { - return fileDescriptor_friend_525e368387d696e2, []int{7} + return fileDescriptor_friend_a4d5a06cd0a3d99f, []int{7} } func (m *ImportFriendResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ImportFriendResp.Unmarshal(m, b) @@ -441,167 +409,105 @@ func (m *ImportFriendResp) GetCommonResp() *CommonResp { return nil } -func (m *ImportFriendResp) GetFailedUidList() []string { +func (m *ImportFriendResp) GetFailedFriendUserIDList() []string { if m != nil { - return m.FailedUidList + return m.FailedFriendUserIDList } return nil } -type GetFriendApplyReq struct { +type GetFriendApplyListReq struct { CommID *CommID `protobuf:"bytes,1,opt,name=CommID" json:"CommID,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` } -func (m *GetFriendApplyReq) Reset() { *m = GetFriendApplyReq{} } -func (m *GetFriendApplyReq) String() string { return proto.CompactTextString(m) } -func (*GetFriendApplyReq) ProtoMessage() {} -func (*GetFriendApplyReq) Descriptor() ([]byte, []int) { - return fileDescriptor_friend_525e368387d696e2, []int{8} +func (m *GetFriendApplyListReq) Reset() { *m = GetFriendApplyListReq{} } +func (m *GetFriendApplyListReq) String() string { return proto.CompactTextString(m) } +func (*GetFriendApplyListReq) ProtoMessage() {} +func (*GetFriendApplyListReq) Descriptor() ([]byte, []int) { + return fileDescriptor_friend_a4d5a06cd0a3d99f, []int{8} } -func (m *GetFriendApplyReq) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_GetFriendApplyReq.Unmarshal(m, b) +func (m *GetFriendApplyListReq) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GetFriendApplyListReq.Unmarshal(m, b) } -func (m *GetFriendApplyReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_GetFriendApplyReq.Marshal(b, m, deterministic) +func (m *GetFriendApplyListReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GetFriendApplyListReq.Marshal(b, m, deterministic) } -func (dst *GetFriendApplyReq) XXX_Merge(src proto.Message) { - xxx_messageInfo_GetFriendApplyReq.Merge(dst, src) +func (dst *GetFriendApplyListReq) XXX_Merge(src proto.Message) { + xxx_messageInfo_GetFriendApplyListReq.Merge(dst, src) } -func (m *GetFriendApplyReq) XXX_Size() int { - return xxx_messageInfo_GetFriendApplyReq.Size(m) +func (m *GetFriendApplyListReq) XXX_Size() int { + return xxx_messageInfo_GetFriendApplyListReq.Size(m) } -func (m *GetFriendApplyReq) XXX_DiscardUnknown() { - xxx_messageInfo_GetFriendApplyReq.DiscardUnknown(m) +func (m *GetFriendApplyListReq) XXX_DiscardUnknown() { + xxx_messageInfo_GetFriendApplyListReq.DiscardUnknown(m) } -var xxx_messageInfo_GetFriendApplyReq proto.InternalMessageInfo +var xxx_messageInfo_GetFriendApplyListReq proto.InternalMessageInfo -func (m *GetFriendApplyReq) GetCommID() *CommID { +func (m *GetFriendApplyListReq) GetCommID() *CommID { if m != nil { return m.CommID } return nil } -type GetFriendApplyResp struct { - ErrCode int32 `protobuf:"varint,1,opt,name=ErrCode" json:"ErrCode,omitempty"` - ErrMsg string `protobuf:"bytes,2,opt,name=ErrMsg" json:"ErrMsg,omitempty"` - Data []*ApplyUserInfo `protobuf:"bytes,4,rep,name=data" json:"data,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` +type GetFriendApplyListResp struct { + ErrCode int32 `protobuf:"varint,1,opt,name=ErrCode" json:"ErrCode,omitempty"` + ErrMsg string `protobuf:"bytes,2,opt,name=ErrMsg" json:"ErrMsg,omitempty"` + FriendRequestList []*sdk_ws.FriendRequest `protobuf:"bytes,3,rep,name=FriendRequestList" json:"FriendRequestList,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (m *GetFriendApplyResp) Reset() { *m = GetFriendApplyResp{} } -func (m *GetFriendApplyResp) String() string { return proto.CompactTextString(m) } -func (*GetFriendApplyResp) ProtoMessage() {} -func (*GetFriendApplyResp) Descriptor() ([]byte, []int) { - return fileDescriptor_friend_525e368387d696e2, []int{9} +func (m *GetFriendApplyListResp) Reset() { *m = GetFriendApplyListResp{} } +func (m *GetFriendApplyListResp) String() string { return proto.CompactTextString(m) } +func (*GetFriendApplyListResp) ProtoMessage() {} +func (*GetFriendApplyListResp) Descriptor() ([]byte, []int) { + return fileDescriptor_friend_a4d5a06cd0a3d99f, []int{9} } -func (m *GetFriendApplyResp) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_GetFriendApplyResp.Unmarshal(m, b) +func (m *GetFriendApplyListResp) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GetFriendApplyListResp.Unmarshal(m, b) } -func (m *GetFriendApplyResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_GetFriendApplyResp.Marshal(b, m, deterministic) +func (m *GetFriendApplyListResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GetFriendApplyListResp.Marshal(b, m, deterministic) } -func (dst *GetFriendApplyResp) XXX_Merge(src proto.Message) { - xxx_messageInfo_GetFriendApplyResp.Merge(dst, src) +func (dst *GetFriendApplyListResp) XXX_Merge(src proto.Message) { + xxx_messageInfo_GetFriendApplyListResp.Merge(dst, src) } -func (m *GetFriendApplyResp) XXX_Size() int { - return xxx_messageInfo_GetFriendApplyResp.Size(m) +func (m *GetFriendApplyListResp) XXX_Size() int { + return xxx_messageInfo_GetFriendApplyListResp.Size(m) } -func (m *GetFriendApplyResp) XXX_DiscardUnknown() { - xxx_messageInfo_GetFriendApplyResp.DiscardUnknown(m) +func (m *GetFriendApplyListResp) XXX_DiscardUnknown() { + xxx_messageInfo_GetFriendApplyListResp.DiscardUnknown(m) } -var xxx_messageInfo_GetFriendApplyResp proto.InternalMessageInfo +var xxx_messageInfo_GetFriendApplyListResp proto.InternalMessageInfo -func (m *GetFriendApplyResp) GetErrCode() int32 { +func (m *GetFriendApplyListResp) GetErrCode() int32 { if m != nil { return m.ErrCode } return 0 } -func (m *GetFriendApplyResp) GetErrMsg() string { +func (m *GetFriendApplyListResp) GetErrMsg() string { if m != nil { return m.ErrMsg } return "" } -func (m *GetFriendApplyResp) GetData() []*ApplyUserInfo { - if m != nil { - return m.Data - } - return nil -} - -type ApplyUserInfo struct { - UserInfo *sdk_ws.PublicUserInfo `protobuf:"bytes,1,opt,name=UserInfo" json:"UserInfo,omitempty"` - ApplyTime int64 `protobuf:"varint,2,opt,name=applyTime" json:"applyTime,omitempty"` - ReqMessage string `protobuf:"bytes,3,opt,name=reqMessage" json:"reqMessage,omitempty"` - Flag int32 `protobuf:"varint,4,opt,name=Flag" json:"Flag,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *ApplyUserInfo) Reset() { *m = ApplyUserInfo{} } -func (m *ApplyUserInfo) String() string { return proto.CompactTextString(m) } -func (*ApplyUserInfo) ProtoMessage() {} -func (*ApplyUserInfo) Descriptor() ([]byte, []int) { - return fileDescriptor_friend_525e368387d696e2, []int{10} -} -func (m *ApplyUserInfo) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_ApplyUserInfo.Unmarshal(m, b) -} -func (m *ApplyUserInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_ApplyUserInfo.Marshal(b, m, deterministic) -} -func (dst *ApplyUserInfo) XXX_Merge(src proto.Message) { - xxx_messageInfo_ApplyUserInfo.Merge(dst, src) -} -func (m *ApplyUserInfo) XXX_Size() int { - return xxx_messageInfo_ApplyUserInfo.Size(m) -} -func (m *ApplyUserInfo) XXX_DiscardUnknown() { - xxx_messageInfo_ApplyUserInfo.DiscardUnknown(m) -} - -var xxx_messageInfo_ApplyUserInfo proto.InternalMessageInfo - -func (m *ApplyUserInfo) GetUserInfo() *sdk_ws.PublicUserInfo { +func (m *GetFriendApplyListResp) GetFriendRequestList() []*sdk_ws.FriendRequest { if m != nil { - return m.UserInfo + return m.FriendRequestList } return nil } -func (m *ApplyUserInfo) GetApplyTime() int64 { - if m != nil { - return m.ApplyTime - } - return 0 -} - -func (m *ApplyUserInfo) GetReqMessage() string { - if m != nil { - return m.ReqMessage - } - return "" -} - -func (m *ApplyUserInfo) GetFlag() int32 { - if m != nil { - return m.Flag - } - return 0 -} - type GetFriendListReq struct { CommID *CommID `protobuf:"bytes,1,opt,name=CommID" json:"CommID,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` @@ -613,7 +519,7 @@ func (m *GetFriendListReq) Reset() { *m = GetFriendListReq{} } func (m *GetFriendListReq) String() string { return proto.CompactTextString(m) } func (*GetFriendListReq) ProtoMessage() {} func (*GetFriendListReq) Descriptor() ([]byte, []int) { - return fileDescriptor_friend_525e368387d696e2, []int{11} + return fileDescriptor_friend_a4d5a06cd0a3d99f, []int{10} } func (m *GetFriendListReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetFriendListReq.Unmarshal(m, b) @@ -641,19 +547,19 @@ func (m *GetFriendListReq) GetCommID() *CommID { } type GetFriendListResp struct { - ErrCode int32 `protobuf:"varint,1,opt,name=ErrCode" json:"ErrCode,omitempty"` - ErrMsg string `protobuf:"bytes,2,opt,name=ErrMsg" json:"ErrMsg,omitempty"` - Data []*FriendInfo `protobuf:"bytes,3,rep,name=Data" json:"Data,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + ErrCode int32 `protobuf:"varint,1,opt,name=ErrCode" json:"ErrCode,omitempty"` + ErrMsg string `protobuf:"bytes,2,opt,name=ErrMsg" json:"ErrMsg,omitempty"` + FriendInfoList []*sdk_ws.FriendInfo `protobuf:"bytes,3,rep,name=FriendInfoList" json:"FriendInfoList,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } func (m *GetFriendListResp) Reset() { *m = GetFriendListResp{} } func (m *GetFriendListResp) String() string { return proto.CompactTextString(m) } func (*GetFriendListResp) ProtoMessage() {} func (*GetFriendListResp) Descriptor() ([]byte, []int) { - return fileDescriptor_friend_525e368387d696e2, []int{12} + return fileDescriptor_friend_a4d5a06cd0a3d99f, []int{11} } func (m *GetFriendListResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetFriendListResp.Unmarshal(m, b) @@ -687,9 +593,9 @@ func (m *GetFriendListResp) GetErrMsg() string { return "" } -func (m *GetFriendListResp) GetData() []*FriendInfo { +func (m *GetFriendListResp) GetFriendInfoList() []*sdk_ws.FriendInfo { if m != nil { - return m.Data + return m.FriendInfoList } return nil } @@ -705,7 +611,7 @@ func (m *AddBlacklistReq) Reset() { *m = AddBlacklistReq{} } func (m *AddBlacklistReq) String() string { return proto.CompactTextString(m) } func (*AddBlacklistReq) ProtoMessage() {} func (*AddBlacklistReq) Descriptor() ([]byte, []int) { - return fileDescriptor_friend_525e368387d696e2, []int{13} + return fileDescriptor_friend_a4d5a06cd0a3d99f, []int{12} } func (m *AddBlacklistReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_AddBlacklistReq.Unmarshal(m, b) @@ -732,6 +638,44 @@ func (m *AddBlacklistReq) GetCommID() *CommID { return nil } +type AddBlacklistResp 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 *AddBlacklistResp) Reset() { *m = AddBlacklistResp{} } +func (m *AddBlacklistResp) String() string { return proto.CompactTextString(m) } +func (*AddBlacklistResp) ProtoMessage() {} +func (*AddBlacklistResp) Descriptor() ([]byte, []int) { + return fileDescriptor_friend_a4d5a06cd0a3d99f, []int{13} +} +func (m *AddBlacklistResp) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_AddBlacklistResp.Unmarshal(m, b) +} +func (m *AddBlacklistResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_AddBlacklistResp.Marshal(b, m, deterministic) +} +func (dst *AddBlacklistResp) XXX_Merge(src proto.Message) { + xxx_messageInfo_AddBlacklistResp.Merge(dst, src) +} +func (m *AddBlacklistResp) XXX_Size() int { + return xxx_messageInfo_AddBlacklistResp.Size(m) +} +func (m *AddBlacklistResp) XXX_DiscardUnknown() { + xxx_messageInfo_AddBlacklistResp.DiscardUnknown(m) +} + +var xxx_messageInfo_AddBlacklistResp proto.InternalMessageInfo + +func (m *AddBlacklistResp) GetCommonResp() *CommonResp { + if m != nil { + return m.CommonResp + } + return nil +} + type RemoveBlacklistReq struct { CommID *CommID `protobuf:"bytes,1,opt,name=CommID" json:"CommID,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` @@ -743,7 +687,7 @@ func (m *RemoveBlacklistReq) Reset() { *m = RemoveBlacklistReq{} } func (m *RemoveBlacklistReq) String() string { return proto.CompactTextString(m) } func (*RemoveBlacklistReq) ProtoMessage() {} func (*RemoveBlacklistReq) Descriptor() ([]byte, []int) { - return fileDescriptor_friend_525e368387d696e2, []int{14} + return fileDescriptor_friend_a4d5a06cd0a3d99f, []int{14} } func (m *RemoveBlacklistReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_RemoveBlacklistReq.Unmarshal(m, b) @@ -770,6 +714,44 @@ func (m *RemoveBlacklistReq) GetCommID() *CommID { return nil } +type RemoveBlacklistResp 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 *RemoveBlacklistResp) Reset() { *m = RemoveBlacklistResp{} } +func (m *RemoveBlacklistResp) String() string { return proto.CompactTextString(m) } +func (*RemoveBlacklistResp) ProtoMessage() {} +func (*RemoveBlacklistResp) Descriptor() ([]byte, []int) { + return fileDescriptor_friend_a4d5a06cd0a3d99f, []int{15} +} +func (m *RemoveBlacklistResp) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_RemoveBlacklistResp.Unmarshal(m, b) +} +func (m *RemoveBlacklistResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_RemoveBlacklistResp.Marshal(b, m, deterministic) +} +func (dst *RemoveBlacklistResp) XXX_Merge(src proto.Message) { + xxx_messageInfo_RemoveBlacklistResp.Merge(dst, src) +} +func (m *RemoveBlacklistResp) XXX_Size() int { + return xxx_messageInfo_RemoveBlacklistResp.Size(m) +} +func (m *RemoveBlacklistResp) XXX_DiscardUnknown() { + xxx_messageInfo_RemoveBlacklistResp.DiscardUnknown(m) +} + +var xxx_messageInfo_RemoveBlacklistResp proto.InternalMessageInfo + +func (m *RemoveBlacklistResp) GetCommonResp() *CommonResp { + if m != nil { + return m.CommonResp + } + return nil +} + type GetBlacklistReq struct { CommID *CommID `protobuf:"bytes,1,opt,name=CommID" json:"CommID,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` @@ -781,7 +763,7 @@ func (m *GetBlacklistReq) Reset() { *m = GetBlacklistReq{} } func (m *GetBlacklistReq) String() string { return proto.CompactTextString(m) } func (*GetBlacklistReq) ProtoMessage() {} func (*GetBlacklistReq) Descriptor() ([]byte, []int) { - return fileDescriptor_friend_525e368387d696e2, []int{15} + return fileDescriptor_friend_a4d5a06cd0a3d99f, []int{16} } func (m *GetBlacklistReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetBlacklistReq.Unmarshal(m, b) @@ -811,7 +793,7 @@ func (m *GetBlacklistReq) GetCommID() *CommID { type GetBlacklistResp struct { ErrCode int32 `protobuf:"varint,1,opt,name=ErrCode" json:"ErrCode,omitempty"` ErrMsg string `protobuf:"bytes,2,opt,name=ErrMsg" json:"ErrMsg,omitempty"` - Data []*sdk_ws.PublicUserInfo `protobuf:"bytes,3,rep,name=data" json:"data,omitempty"` + BlackUserInfoList []*sdk_ws.PublicUserInfo `protobuf:"bytes,3,rep,name=BlackUserInfoList" json:"BlackUserInfoList,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -821,7 +803,7 @@ func (m *GetBlacklistResp) Reset() { *m = GetBlacklistResp{} } func (m *GetBlacklistResp) String() string { return proto.CompactTextString(m) } func (*GetBlacklistResp) ProtoMessage() {} func (*GetBlacklistResp) Descriptor() ([]byte, []int) { - return fileDescriptor_friend_525e368387d696e2, []int{16} + return fileDescriptor_friend_a4d5a06cd0a3d99f, []int{17} } func (m *GetBlacklistResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetBlacklistResp.Unmarshal(m, b) @@ -855,9 +837,9 @@ func (m *GetBlacklistResp) GetErrMsg() string { return "" } -func (m *GetBlacklistResp) GetData() []*sdk_ws.PublicUserInfo { +func (m *GetBlacklistResp) GetBlackUserInfoList() []*sdk_ws.PublicUserInfo { if m != nil { - return m.Data + return m.BlackUserInfoList } return nil } @@ -873,7 +855,7 @@ func (m *IsFriendReq) Reset() { *m = IsFriendReq{} } func (m *IsFriendReq) String() string { return proto.CompactTextString(m) } func (*IsFriendReq) ProtoMessage() {} func (*IsFriendReq) Descriptor() ([]byte, []int) { - return fileDescriptor_friend_525e368387d696e2, []int{17} + return fileDescriptor_friend_a4d5a06cd0a3d99f, []int{18} } func (m *IsFriendReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_IsFriendReq.Unmarshal(m, b) @@ -903,7 +885,7 @@ func (m *IsFriendReq) GetCommID() *CommID { type IsFriendResp struct { ErrCode int32 `protobuf:"varint,1,opt,name=ErrCode" json:"ErrCode,omitempty"` ErrMsg string `protobuf:"bytes,2,opt,name=ErrMsg" json:"ErrMsg,omitempty"` - ShipType int32 `protobuf:"varint,3,opt,name=ShipType" json:"ShipType,omitempty"` + Response bool `protobuf:"varint,3,opt,name=Response" json:"Response,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -913,7 +895,7 @@ func (m *IsFriendResp) Reset() { *m = IsFriendResp{} } func (m *IsFriendResp) String() string { return proto.CompactTextString(m) } func (*IsFriendResp) ProtoMessage() {} func (*IsFriendResp) Descriptor() ([]byte, []int) { - return fileDescriptor_friend_525e368387d696e2, []int{18} + return fileDescriptor_friend_a4d5a06cd0a3d99f, []int{19} } func (m *IsFriendResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_IsFriendResp.Unmarshal(m, b) @@ -947,11 +929,11 @@ func (m *IsFriendResp) GetErrMsg() string { return "" } -func (m *IsFriendResp) GetShipType() int32 { +func (m *IsFriendResp) GetResponse() bool { if m != nil { - return m.ShipType + return m.Response } - return 0 + return false } type IsInBlackListReq struct { @@ -965,7 +947,7 @@ func (m *IsInBlackListReq) Reset() { *m = IsInBlackListReq{} } func (m *IsInBlackListReq) String() string { return proto.CompactTextString(m) } func (*IsInBlackListReq) ProtoMessage() {} func (*IsInBlackListReq) Descriptor() ([]byte, []int) { - return fileDescriptor_friend_525e368387d696e2, []int{19} + return fileDescriptor_friend_a4d5a06cd0a3d99f, []int{20} } func (m *IsInBlackListReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_IsInBlackListReq.Unmarshal(m, b) @@ -1005,7 +987,7 @@ func (m *IsInBlackListResp) Reset() { *m = IsInBlackListResp{} } func (m *IsInBlackListResp) String() string { return proto.CompactTextString(m) } func (*IsInBlackListResp) ProtoMessage() {} func (*IsInBlackListResp) Descriptor() ([]byte, []int) { - return fileDescriptor_friend_525e368387d696e2, []int{20} + return fileDescriptor_friend_a4d5a06cd0a3d99f, []int{21} } func (m *IsInBlackListResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_IsInBlackListResp.Unmarshal(m, b) @@ -1057,7 +1039,7 @@ func (m *DeleteFriendReq) Reset() { *m = DeleteFriendReq{} } func (m *DeleteFriendReq) String() string { return proto.CompactTextString(m) } func (*DeleteFriendReq) ProtoMessage() {} func (*DeleteFriendReq) Descriptor() ([]byte, []int) { - return fileDescriptor_friend_525e368387d696e2, []int{21} + return fileDescriptor_friend_a4d5a06cd0a3d99f, []int{22} } func (m *DeleteFriendReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_DeleteFriendReq.Unmarshal(m, b) @@ -1084,9 +1066,49 @@ func (m *DeleteFriendReq) GetCommID() *CommID { return nil } +type DeleteFriendResp 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 *DeleteFriendResp) Reset() { *m = DeleteFriendResp{} } +func (m *DeleteFriendResp) String() string { return proto.CompactTextString(m) } +func (*DeleteFriendResp) ProtoMessage() {} +func (*DeleteFriendResp) Descriptor() ([]byte, []int) { + return fileDescriptor_friend_a4d5a06cd0a3d99f, []int{23} +} +func (m *DeleteFriendResp) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_DeleteFriendResp.Unmarshal(m, b) +} +func (m *DeleteFriendResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_DeleteFriendResp.Marshal(b, m, deterministic) +} +func (dst *DeleteFriendResp) XXX_Merge(src proto.Message) { + xxx_messageInfo_DeleteFriendResp.Merge(dst, src) +} +func (m *DeleteFriendResp) XXX_Size() int { + return xxx_messageInfo_DeleteFriendResp.Size(m) +} +func (m *DeleteFriendResp) XXX_DiscardUnknown() { + xxx_messageInfo_DeleteFriendResp.DiscardUnknown(m) +} + +var xxx_messageInfo_DeleteFriendResp proto.InternalMessageInfo + +func (m *DeleteFriendResp) GetCommonResp() *CommonResp { + if m != nil { + return m.CommonResp + } + return nil +} + +// process type AddFriendResponseReq struct { CommID *CommID `protobuf:"bytes,1,opt,name=CommID" json:"CommID,omitempty"` Flag int32 `protobuf:"varint,2,opt,name=flag" json:"flag,omitempty"` + HandleMsg string `protobuf:"bytes,3,opt,name=handleMsg" json:"handleMsg,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -1096,7 +1118,7 @@ func (m *AddFriendResponseReq) Reset() { *m = AddFriendResponseReq{} } func (m *AddFriendResponseReq) String() string { return proto.CompactTextString(m) } func (*AddFriendResponseReq) ProtoMessage() {} func (*AddFriendResponseReq) Descriptor() ([]byte, []int) { - return fileDescriptor_friend_525e368387d696e2, []int{22} + return fileDescriptor_friend_a4d5a06cd0a3d99f, []int{24} } func (m *AddFriendResponseReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_AddFriendResponseReq.Unmarshal(m, b) @@ -1130,6 +1152,51 @@ func (m *AddFriendResponseReq) GetFlag() int32 { return 0 } +func (m *AddFriendResponseReq) GetHandleMsg() string { + if m != nil { + return m.HandleMsg + } + return "" +} + +type AddFriendResponseResp 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 *AddFriendResponseResp) Reset() { *m = AddFriendResponseResp{} } +func (m *AddFriendResponseResp) String() string { return proto.CompactTextString(m) } +func (*AddFriendResponseResp) ProtoMessage() {} +func (*AddFriendResponseResp) Descriptor() ([]byte, []int) { + return fileDescriptor_friend_a4d5a06cd0a3d99f, []int{25} +} +func (m *AddFriendResponseResp) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_AddFriendResponseResp.Unmarshal(m, b) +} +func (m *AddFriendResponseResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_AddFriendResponseResp.Marshal(b, m, deterministic) +} +func (dst *AddFriendResponseResp) XXX_Merge(src proto.Message) { + xxx_messageInfo_AddFriendResponseResp.Merge(dst, src) +} +func (m *AddFriendResponseResp) XXX_Size() int { + return xxx_messageInfo_AddFriendResponseResp.Size(m) +} +func (m *AddFriendResponseResp) XXX_DiscardUnknown() { + xxx_messageInfo_AddFriendResponseResp.DiscardUnknown(m) +} + +var xxx_messageInfo_AddFriendResponseResp proto.InternalMessageInfo + +func (m *AddFriendResponseResp) GetCommonResp() *CommonResp { + if m != nil { + return m.CommonResp + } + return nil +} + type SetFriendCommentReq struct { CommID *CommID `protobuf:"bytes,1,opt,name=CommID" json:"CommID,omitempty"` Remark string `protobuf:"bytes,2,opt,name=Remark" json:"Remark,omitempty"` @@ -1142,7 +1209,7 @@ func (m *SetFriendCommentReq) Reset() { *m = SetFriendCommentReq{} } func (m *SetFriendCommentReq) String() string { return proto.CompactTextString(m) } func (*SetFriendCommentReq) ProtoMessage() {} func (*SetFriendCommentReq) Descriptor() ([]byte, []int) { - return fileDescriptor_friend_525e368387d696e2, []int{23} + return fileDescriptor_friend_a4d5a06cd0a3d99f, []int{26} } func (m *SetFriendCommentReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SetFriendCommentReq.Unmarshal(m, b) @@ -1176,22 +1243,153 @@ func (m *SetFriendCommentReq) GetRemark() string { return "" } +type SetFriendCommentResp 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 *SetFriendCommentResp) Reset() { *m = SetFriendCommentResp{} } +func (m *SetFriendCommentResp) String() string { return proto.CompactTextString(m) } +func (*SetFriendCommentResp) ProtoMessage() {} +func (*SetFriendCommentResp) Descriptor() ([]byte, []int) { + return fileDescriptor_friend_a4d5a06cd0a3d99f, []int{27} +} +func (m *SetFriendCommentResp) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_SetFriendCommentResp.Unmarshal(m, b) +} +func (m *SetFriendCommentResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_SetFriendCommentResp.Marshal(b, m, deterministic) +} +func (dst *SetFriendCommentResp) XXX_Merge(src proto.Message) { + xxx_messageInfo_SetFriendCommentResp.Merge(dst, src) +} +func (m *SetFriendCommentResp) XXX_Size() int { + return xxx_messageInfo_SetFriendCommentResp.Size(m) +} +func (m *SetFriendCommentResp) XXX_DiscardUnknown() { + xxx_messageInfo_SetFriendCommentResp.DiscardUnknown(m) +} + +var xxx_messageInfo_SetFriendCommentResp proto.InternalMessageInfo + +func (m *SetFriendCommentResp) GetCommonResp() *CommonResp { + if m != nil { + return m.CommonResp + } + return nil +} + +type GetSelfApplyListReq struct { + CommID *CommID `protobuf:"bytes,1,opt,name=CommID" json:"CommID,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *GetSelfApplyListReq) Reset() { *m = GetSelfApplyListReq{} } +func (m *GetSelfApplyListReq) String() string { return proto.CompactTextString(m) } +func (*GetSelfApplyListReq) ProtoMessage() {} +func (*GetSelfApplyListReq) Descriptor() ([]byte, []int) { + return fileDescriptor_friend_a4d5a06cd0a3d99f, []int{28} +} +func (m *GetSelfApplyListReq) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GetSelfApplyListReq.Unmarshal(m, b) +} +func (m *GetSelfApplyListReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GetSelfApplyListReq.Marshal(b, m, deterministic) +} +func (dst *GetSelfApplyListReq) XXX_Merge(src proto.Message) { + xxx_messageInfo_GetSelfApplyListReq.Merge(dst, src) +} +func (m *GetSelfApplyListReq) XXX_Size() int { + return xxx_messageInfo_GetSelfApplyListReq.Size(m) +} +func (m *GetSelfApplyListReq) XXX_DiscardUnknown() { + xxx_messageInfo_GetSelfApplyListReq.DiscardUnknown(m) +} + +var xxx_messageInfo_GetSelfApplyListReq proto.InternalMessageInfo + +func (m *GetSelfApplyListReq) GetCommID() *CommID { + if m != nil { + return m.CommID + } + return nil +} + +type GetSelfApplyListResp struct { + ErrCode int32 `protobuf:"varint,1,opt,name=ErrCode" json:"ErrCode,omitempty"` + ErrMsg string `protobuf:"bytes,2,opt,name=ErrMsg" json:"ErrMsg,omitempty"` + FriendRequestList []*sdk_ws.FriendRequest `protobuf:"bytes,3,rep,name=FriendRequestList" json:"FriendRequestList,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *GetSelfApplyListResp) Reset() { *m = GetSelfApplyListResp{} } +func (m *GetSelfApplyListResp) String() string { return proto.CompactTextString(m) } +func (*GetSelfApplyListResp) ProtoMessage() {} +func (*GetSelfApplyListResp) Descriptor() ([]byte, []int) { + return fileDescriptor_friend_a4d5a06cd0a3d99f, []int{29} +} +func (m *GetSelfApplyListResp) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GetSelfApplyListResp.Unmarshal(m, b) +} +func (m *GetSelfApplyListResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GetSelfApplyListResp.Marshal(b, m, deterministic) +} +func (dst *GetSelfApplyListResp) XXX_Merge(src proto.Message) { + xxx_messageInfo_GetSelfApplyListResp.Merge(dst, src) +} +func (m *GetSelfApplyListResp) XXX_Size() int { + return xxx_messageInfo_GetSelfApplyListResp.Size(m) +} +func (m *GetSelfApplyListResp) XXX_DiscardUnknown() { + xxx_messageInfo_GetSelfApplyListResp.DiscardUnknown(m) +} + +var xxx_messageInfo_GetSelfApplyListResp proto.InternalMessageInfo + +func (m *GetSelfApplyListResp) GetErrCode() int32 { + if m != nil { + return m.ErrCode + } + return 0 +} + +func (m *GetSelfApplyListResp) GetErrMsg() string { + if m != nil { + return m.ErrMsg + } + return "" +} + +func (m *GetSelfApplyListResp) GetFriendRequestList() []*sdk_ws.FriendRequest { + if m != nil { + return m.FriendRequestList + } + return nil +} + func init() { proto.RegisterType((*CommonResp)(nil), "friend.CommonResp") proto.RegisterType((*CommID)(nil), "friend.CommID") proto.RegisterType((*GetFriendsInfoReq)(nil), "friend.GetFriendsInfoReq") proto.RegisterType((*GetFriendInfoResp)(nil), "friend.GetFriendInfoResp") - proto.RegisterType((*FriendInfo)(nil), "friend.FriendInfo") proto.RegisterType((*AddFriendReq)(nil), "friend.AddFriendReq") + proto.RegisterType((*AddFriendResp)(nil), "friend.AddFriendResp") proto.RegisterType((*ImportFriendReq)(nil), "friend.ImportFriendReq") proto.RegisterType((*ImportFriendResp)(nil), "friend.ImportFriendResp") - proto.RegisterType((*GetFriendApplyReq)(nil), "friend.GetFriendApplyReq") - proto.RegisterType((*GetFriendApplyResp)(nil), "friend.GetFriendApplyResp") - proto.RegisterType((*ApplyUserInfo)(nil), "friend.ApplyUserInfo") - proto.RegisterType((*GetFriendListReq)(nil), "friend.getFriendListReq") - proto.RegisterType((*GetFriendListResp)(nil), "friend.getFriendListResp") + proto.RegisterType((*GetFriendApplyListReq)(nil), "friend.GetFriendApplyListReq") + proto.RegisterType((*GetFriendApplyListResp)(nil), "friend.GetFriendApplyListResp") + proto.RegisterType((*GetFriendListReq)(nil), "friend.GetFriendListReq") + proto.RegisterType((*GetFriendListResp)(nil), "friend.GetFriendListResp") proto.RegisterType((*AddBlacklistReq)(nil), "friend.AddBlacklistReq") + proto.RegisterType((*AddBlacklistResp)(nil), "friend.AddBlacklistResp") proto.RegisterType((*RemoveBlacklistReq)(nil), "friend.RemoveBlacklistReq") + proto.RegisterType((*RemoveBlacklistResp)(nil), "friend.RemoveBlacklistResp") proto.RegisterType((*GetBlacklistReq)(nil), "friend.GetBlacklistReq") proto.RegisterType((*GetBlacklistResp)(nil), "friend.GetBlacklistResp") proto.RegisterType((*IsFriendReq)(nil), "friend.IsFriendReq") @@ -1199,8 +1397,13 @@ func init() { proto.RegisterType((*IsInBlackListReq)(nil), "friend.IsInBlackListReq") proto.RegisterType((*IsInBlackListResp)(nil), "friend.IsInBlackListResp") proto.RegisterType((*DeleteFriendReq)(nil), "friend.DeleteFriendReq") + proto.RegisterType((*DeleteFriendResp)(nil), "friend.DeleteFriendResp") proto.RegisterType((*AddFriendResponseReq)(nil), "friend.AddFriendResponseReq") + proto.RegisterType((*AddFriendResponseResp)(nil), "friend.AddFriendResponseResp") proto.RegisterType((*SetFriendCommentReq)(nil), "friend.SetFriendCommentReq") + proto.RegisterType((*SetFriendCommentResp)(nil), "friend.SetFriendCommentResp") + proto.RegisterType((*GetSelfApplyListReq)(nil), "friend.GetSelfApplyListReq") + proto.RegisterType((*GetSelfApplyListResp)(nil), "friend.GetSelfApplyListResp") } // Reference imports to suppress errors if they are not otherwise used. @@ -1214,19 +1417,19 @@ const _ = grpc.SupportPackageIsVersion4 // Client API for Friend service type FriendClient interface { - GetFriendsInfo(ctx context.Context, in *GetFriendsInfoReq, opts ...grpc.CallOption) (*GetFriendInfoResp, error) - AddFriend(ctx context.Context, in *AddFriendReq, opts ...grpc.CallOption) (*CommonResp, error) - GetFriendApplyList(ctx context.Context, in *GetFriendApplyReq, opts ...grpc.CallOption) (*GetFriendApplyResp, error) - GetSelfApplyList(ctx context.Context, in *GetFriendApplyReq, opts ...grpc.CallOption) (*GetFriendApplyResp, error) + // rpc getFriendsInfo(GetFriendsInfoReq) returns(GetFriendInfoResp); + AddFriend(ctx context.Context, in *AddFriendReq, opts ...grpc.CallOption) (*AddFriendResp, error) + GetFriendApplyList(ctx context.Context, in *GetFriendApplyListReq, opts ...grpc.CallOption) (*GetFriendApplyListResp, error) + GetSelfApplyList(ctx context.Context, in *GetSelfApplyListReq, opts ...grpc.CallOption) (*GetSelfApplyListResp, error) GetFriendList(ctx context.Context, in *GetFriendListReq, opts ...grpc.CallOption) (*GetFriendListResp, error) - AddBlacklist(ctx context.Context, in *AddBlacklistReq, opts ...grpc.CallOption) (*CommonResp, error) - RemoveBlacklist(ctx context.Context, in *RemoveBlacklistReq, opts ...grpc.CallOption) (*CommonResp, error) + AddBlacklist(ctx context.Context, in *AddBlacklistReq, opts ...grpc.CallOption) (*AddBlacklistResp, error) + RemoveBlacklist(ctx context.Context, in *RemoveBlacklistReq, opts ...grpc.CallOption) (*RemoveBlacklistResp, error) IsFriend(ctx context.Context, in *IsFriendReq, opts ...grpc.CallOption) (*IsFriendResp, error) IsInBlackList(ctx context.Context, in *IsInBlackListReq, opts ...grpc.CallOption) (*IsInBlackListResp, error) GetBlacklist(ctx context.Context, in *GetBlacklistReq, opts ...grpc.CallOption) (*GetBlacklistResp, error) - DeleteFriend(ctx context.Context, in *DeleteFriendReq, opts ...grpc.CallOption) (*CommonResp, error) - AddFriendResponse(ctx context.Context, in *AddFriendResponseReq, opts ...grpc.CallOption) (*CommonResp, error) - SetFriendComment(ctx context.Context, in *SetFriendCommentReq, opts ...grpc.CallOption) (*CommonResp, error) + DeleteFriend(ctx context.Context, in *DeleteFriendReq, opts ...grpc.CallOption) (*DeleteFriendResp, error) + AddFriendResponse(ctx context.Context, in *AddFriendResponseReq, opts ...grpc.CallOption) (*AddFriendResponseResp, error) + SetFriendComment(ctx context.Context, in *SetFriendCommentReq, opts ...grpc.CallOption) (*SetFriendCommentResp, error) ImportFriend(ctx context.Context, in *ImportFriendReq, opts ...grpc.CallOption) (*ImportFriendResp, error) } @@ -1238,17 +1441,8 @@ func NewFriendClient(cc *grpc.ClientConn) FriendClient { return &friendClient{cc} } -func (c *friendClient) GetFriendsInfo(ctx context.Context, in *GetFriendsInfoReq, opts ...grpc.CallOption) (*GetFriendInfoResp, error) { - out := new(GetFriendInfoResp) - err := grpc.Invoke(ctx, "/friend.friend/getFriendsInfo", in, out, c.cc, opts...) - if err != nil { - return nil, err - } - return out, nil -} - -func (c *friendClient) AddFriend(ctx context.Context, in *AddFriendReq, opts ...grpc.CallOption) (*CommonResp, error) { - out := new(CommonResp) +func (c *friendClient) AddFriend(ctx context.Context, in *AddFriendReq, opts ...grpc.CallOption) (*AddFriendResp, error) { + out := new(AddFriendResp) err := grpc.Invoke(ctx, "/friend.friend/addFriend", in, out, c.cc, opts...) if err != nil { return nil, err @@ -1256,8 +1450,8 @@ func (c *friendClient) AddFriend(ctx context.Context, in *AddFriendReq, opts ... return out, nil } -func (c *friendClient) GetFriendApplyList(ctx context.Context, in *GetFriendApplyReq, opts ...grpc.CallOption) (*GetFriendApplyResp, error) { - out := new(GetFriendApplyResp) +func (c *friendClient) GetFriendApplyList(ctx context.Context, in *GetFriendApplyListReq, opts ...grpc.CallOption) (*GetFriendApplyListResp, error) { + out := new(GetFriendApplyListResp) err := grpc.Invoke(ctx, "/friend.friend/getFriendApplyList", in, out, c.cc, opts...) if err != nil { return nil, err @@ -1265,8 +1459,8 @@ func (c *friendClient) GetFriendApplyList(ctx context.Context, in *GetFriendAppl return out, nil } -func (c *friendClient) GetSelfApplyList(ctx context.Context, in *GetFriendApplyReq, opts ...grpc.CallOption) (*GetFriendApplyResp, error) { - out := new(GetFriendApplyResp) +func (c *friendClient) GetSelfApplyList(ctx context.Context, in *GetSelfApplyListReq, opts ...grpc.CallOption) (*GetSelfApplyListResp, error) { + out := new(GetSelfApplyListResp) err := grpc.Invoke(ctx, "/friend.friend/getSelfApplyList", in, out, c.cc, opts...) if err != nil { return nil, err @@ -1283,8 +1477,8 @@ func (c *friendClient) GetFriendList(ctx context.Context, in *GetFriendListReq, return out, nil } -func (c *friendClient) AddBlacklist(ctx context.Context, in *AddBlacklistReq, opts ...grpc.CallOption) (*CommonResp, error) { - out := new(CommonResp) +func (c *friendClient) AddBlacklist(ctx context.Context, in *AddBlacklistReq, opts ...grpc.CallOption) (*AddBlacklistResp, error) { + out := new(AddBlacklistResp) err := grpc.Invoke(ctx, "/friend.friend/addBlacklist", in, out, c.cc, opts...) if err != nil { return nil, err @@ -1292,8 +1486,8 @@ func (c *friendClient) AddBlacklist(ctx context.Context, in *AddBlacklistReq, op return out, nil } -func (c *friendClient) RemoveBlacklist(ctx context.Context, in *RemoveBlacklistReq, opts ...grpc.CallOption) (*CommonResp, error) { - out := new(CommonResp) +func (c *friendClient) RemoveBlacklist(ctx context.Context, in *RemoveBlacklistReq, opts ...grpc.CallOption) (*RemoveBlacklistResp, error) { + out := new(RemoveBlacklistResp) err := grpc.Invoke(ctx, "/friend.friend/removeBlacklist", in, out, c.cc, opts...) if err != nil { return nil, err @@ -1328,8 +1522,8 @@ func (c *friendClient) GetBlacklist(ctx context.Context, in *GetBlacklistReq, op return out, nil } -func (c *friendClient) DeleteFriend(ctx context.Context, in *DeleteFriendReq, opts ...grpc.CallOption) (*CommonResp, error) { - out := new(CommonResp) +func (c *friendClient) DeleteFriend(ctx context.Context, in *DeleteFriendReq, opts ...grpc.CallOption) (*DeleteFriendResp, error) { + out := new(DeleteFriendResp) err := grpc.Invoke(ctx, "/friend.friend/deleteFriend", in, out, c.cc, opts...) if err != nil { return nil, err @@ -1337,8 +1531,8 @@ func (c *friendClient) DeleteFriend(ctx context.Context, in *DeleteFriendReq, op return out, nil } -func (c *friendClient) AddFriendResponse(ctx context.Context, in *AddFriendResponseReq, opts ...grpc.CallOption) (*CommonResp, error) { - out := new(CommonResp) +func (c *friendClient) AddFriendResponse(ctx context.Context, in *AddFriendResponseReq, opts ...grpc.CallOption) (*AddFriendResponseResp, error) { + out := new(AddFriendResponseResp) err := grpc.Invoke(ctx, "/friend.friend/addFriendResponse", in, out, c.cc, opts...) if err != nil { return nil, err @@ -1346,8 +1540,8 @@ func (c *friendClient) AddFriendResponse(ctx context.Context, in *AddFriendRespo return out, nil } -func (c *friendClient) SetFriendComment(ctx context.Context, in *SetFriendCommentReq, opts ...grpc.CallOption) (*CommonResp, error) { - out := new(CommonResp) +func (c *friendClient) SetFriendComment(ctx context.Context, in *SetFriendCommentReq, opts ...grpc.CallOption) (*SetFriendCommentResp, error) { + out := new(SetFriendCommentResp) err := grpc.Invoke(ctx, "/friend.friend/setFriendComment", in, out, c.cc, opts...) if err != nil { return nil, err @@ -1357,7 +1551,7 @@ func (c *friendClient) SetFriendComment(ctx context.Context, in *SetFriendCommen func (c *friendClient) ImportFriend(ctx context.Context, in *ImportFriendReq, opts ...grpc.CallOption) (*ImportFriendResp, error) { out := new(ImportFriendResp) - err := grpc.Invoke(ctx, "/friend.friend/ImportFriend", in, out, c.cc, opts...) + err := grpc.Invoke(ctx, "/friend.friend/importFriend", in, out, c.cc, opts...) if err != nil { return nil, err } @@ -1367,19 +1561,19 @@ func (c *friendClient) ImportFriend(ctx context.Context, in *ImportFriendReq, op // Server API for Friend service type FriendServer interface { - GetFriendsInfo(context.Context, *GetFriendsInfoReq) (*GetFriendInfoResp, error) - AddFriend(context.Context, *AddFriendReq) (*CommonResp, error) - GetFriendApplyList(context.Context, *GetFriendApplyReq) (*GetFriendApplyResp, error) - GetSelfApplyList(context.Context, *GetFriendApplyReq) (*GetFriendApplyResp, error) + // rpc getFriendsInfo(GetFriendsInfoReq) returns(GetFriendInfoResp); + AddFriend(context.Context, *AddFriendReq) (*AddFriendResp, error) + GetFriendApplyList(context.Context, *GetFriendApplyListReq) (*GetFriendApplyListResp, error) + GetSelfApplyList(context.Context, *GetSelfApplyListReq) (*GetSelfApplyListResp, error) GetFriendList(context.Context, *GetFriendListReq) (*GetFriendListResp, error) - AddBlacklist(context.Context, *AddBlacklistReq) (*CommonResp, error) - RemoveBlacklist(context.Context, *RemoveBlacklistReq) (*CommonResp, error) + AddBlacklist(context.Context, *AddBlacklistReq) (*AddBlacklistResp, error) + RemoveBlacklist(context.Context, *RemoveBlacklistReq) (*RemoveBlacklistResp, error) IsFriend(context.Context, *IsFriendReq) (*IsFriendResp, error) IsInBlackList(context.Context, *IsInBlackListReq) (*IsInBlackListResp, error) GetBlacklist(context.Context, *GetBlacklistReq) (*GetBlacklistResp, error) - DeleteFriend(context.Context, *DeleteFriendReq) (*CommonResp, error) - AddFriendResponse(context.Context, *AddFriendResponseReq) (*CommonResp, error) - SetFriendComment(context.Context, *SetFriendCommentReq) (*CommonResp, error) + DeleteFriend(context.Context, *DeleteFriendReq) (*DeleteFriendResp, error) + AddFriendResponse(context.Context, *AddFriendResponseReq) (*AddFriendResponseResp, error) + SetFriendComment(context.Context, *SetFriendCommentReq) (*SetFriendCommentResp, error) ImportFriend(context.Context, *ImportFriendReq) (*ImportFriendResp, error) } @@ -1387,24 +1581,6 @@ func RegisterFriendServer(s *grpc.Server, srv FriendServer) { s.RegisterService(&_Friend_serviceDesc, srv) } -func _Friend_GetFriendsInfo_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(GetFriendsInfoReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(FriendServer).GetFriendsInfo(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/friend.friend/GetFriendsInfo", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(FriendServer).GetFriendsInfo(ctx, req.(*GetFriendsInfoReq)) - } - return interceptor(ctx, in, info, handler) -} - func _Friend_AddFriend_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(AddFriendReq) if err := dec(in); err != nil { @@ -1424,7 +1600,7 @@ func _Friend_AddFriend_Handler(srv interface{}, ctx context.Context, dec func(in } func _Friend_GetFriendApplyList_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(GetFriendApplyReq) + in := new(GetFriendApplyListReq) if err := dec(in); err != nil { return nil, err } @@ -1436,13 +1612,13 @@ func _Friend_GetFriendApplyList_Handler(srv interface{}, ctx context.Context, de FullMethod: "/friend.friend/GetFriendApplyList", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(FriendServer).GetFriendApplyList(ctx, req.(*GetFriendApplyReq)) + return srv.(FriendServer).GetFriendApplyList(ctx, req.(*GetFriendApplyListReq)) } return interceptor(ctx, in, info, handler) } func _Friend_GetSelfApplyList_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(GetFriendApplyReq) + in := new(GetSelfApplyListReq) if err := dec(in); err != nil { return nil, err } @@ -1454,7 +1630,7 @@ func _Friend_GetSelfApplyList_Handler(srv interface{}, ctx context.Context, dec FullMethod: "/friend.friend/GetSelfApplyList", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(FriendServer).GetSelfApplyList(ctx, req.(*GetFriendApplyReq)) + return srv.(FriendServer).GetSelfApplyList(ctx, req.(*GetSelfApplyListReq)) } return interceptor(ctx, in, info, handler) } @@ -1643,10 +1819,6 @@ var _Friend_serviceDesc = grpc.ServiceDesc{ ServiceName: "friend.friend", HandlerType: (*FriendServer)(nil), Methods: []grpc.MethodDesc{ - { - MethodName: "getFriendsInfo", - Handler: _Friend_GetFriendsInfo_Handler, - }, { MethodName: "addFriend", Handler: _Friend_AddFriend_Handler, @@ -1696,7 +1868,7 @@ var _Friend_serviceDesc = grpc.ServiceDesc{ Handler: _Friend_SetFriendComment_Handler, }, { - MethodName: "ImportFriend", + MethodName: "importFriend", Handler: _Friend_ImportFriend_Handler, }, }, @@ -1704,68 +1876,66 @@ var _Friend_serviceDesc = grpc.ServiceDesc{ Metadata: "friend/friend.proto", } -func init() { proto.RegisterFile("friend/friend.proto", fileDescriptor_friend_525e368387d696e2) } - -var fileDescriptor_friend_525e368387d696e2 = []byte{ - // 950 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xa4, 0x57, 0x5f, 0x6f, 0xe3, 0x44, - 0x10, 0x57, 0x9a, 0xa4, 0x97, 0x4c, 0xd3, 0x4b, 0x3a, 0x2d, 0x10, 0x7c, 0x27, 0x14, 0x2c, 0x74, - 0x2a, 0x3c, 0x24, 0x52, 0x51, 0x85, 0x8e, 0x22, 0xa4, 0x5c, 0xd3, 0x9e, 0x2c, 0xa8, 0x8a, 0xb6, - 0x2d, 0x0f, 0x08, 0xa9, 0xf2, 0xd5, 0x9b, 0x60, 0xc5, 0xff, 0xea, 0xf5, 0x51, 0xdd, 0x2b, 0x1f, - 0x03, 0x3e, 0x05, 0x4f, 0x7c, 0x3d, 0xb4, 0xbb, 0x5e, 0x7b, 0xd7, 0x49, 0x4f, 0xe7, 0xdc, 0x53, - 0xbc, 0x33, 0x3b, 0xb3, 0x33, 0x3f, 0xff, 0xe6, 0xe7, 0x0d, 0xec, 0xcf, 0x53, 0x9f, 0x46, 0xde, - 0x44, 0xfe, 0x8c, 0x93, 0x34, 0xce, 0x62, 0xdc, 0x96, 0x2b, 0xeb, 0xcb, 0xcb, 0x84, 0x46, 0xb7, - 0xce, 0xc5, 0x24, 0x59, 0x2e, 0x26, 0xc2, 0x35, 0x61, 0xde, 0xf2, 0xf6, 0x81, 0x4d, 0x1e, 0x98, - 0xdc, 0x6a, 0xff, 0x08, 0x70, 0x1a, 0x87, 0x61, 0x1c, 0x11, 0xca, 0x12, 0x1c, 0xc2, 0x13, 0x9a, - 0xa6, 0xa7, 0xb1, 0x47, 0x87, 0x8d, 0x51, 0xe3, 0xb0, 0x4d, 0xd4, 0x12, 0x3f, 0x85, 0x6d, 0x9a, - 0xa6, 0x17, 0x6c, 0x31, 0xdc, 0x1a, 0x35, 0x0e, 0xbb, 0x24, 0x5f, 0xd9, 0x7f, 0x35, 0x60, 0x9b, - 0x27, 0x70, 0x66, 0x68, 0x41, 0xe7, 0x32, 0xb9, 0x61, 0x34, 0x75, 0x66, 0x22, 0xba, 0x4b, 0x8a, - 0x35, 0x8e, 0x60, 0xe7, 0x32, 0xa1, 0xa9, 0x9b, 0xf9, 0x71, 0xe4, 0xcc, 0xf2, 0x1c, 0xba, 0x89, - 0x47, 0x5f, 0xc7, 0x79, 0x74, 0x4b, 0x46, 0xab, 0x35, 0x7e, 0x01, 0x70, 0x9e, 0xc6, 0x61, 0xee, - 0x6d, 0x0b, 0xaf, 0x66, 0xb1, 0x4f, 0x60, 0xef, 0x35, 0xcd, 0xce, 0x45, 0xd3, 0xcc, 0x89, 0xe6, - 0x31, 0xa1, 0xf7, 0xf8, 0x42, 0x15, 0x26, 0x8a, 0xd9, 0x39, 0x7a, 0x3a, 0xce, 0x31, 0x92, 0x56, - 0x92, 0x7b, 0xed, 0x50, 0x0b, 0x96, 0xb1, 0x12, 0x88, 0x33, 0x13, 0x88, 0xb3, 0x12, 0x88, 0x33, - 0x03, 0x08, 0xb9, 0xc2, 0x17, 0xd0, 0x9a, 0xb9, 0x99, 0x3b, 0x6c, 0x8a, 0xc3, 0x50, 0x1d, 0xa6, - 0xe5, 0x15, 0x7e, 0xfb, 0xbf, 0x06, 0x6f, 0x46, 0x19, 0x05, 0x30, 0x0f, 0x11, 0x4d, 0x0d, 0xdc, - 0x74, 0x13, 0x3f, 0x90, 0xd0, 0xd0, 0x4d, 0x97, 0xea, 0x40, 0xb9, 0xe2, 0xa0, 0x9c, 0xa6, 0xd4, - 0xcd, 0xe8, 0xb5, 0x1f, 0x52, 0x71, 0x6c, 0x8b, 0x68, 0x16, 0x3c, 0x56, 0xe7, 0xf0, 0x3c, 0x02, - 0xd2, 0x9d, 0xa3, 0x4f, 0xc6, 0x31, 0x67, 0x84, 0x1f, 0xde, 0x32, 0x6f, 0x39, 0x16, 0x07, 0xf0, - 0xca, 0xb4, 0x8d, 0xbc, 0x73, 0x87, 0xbd, 0x0a, 0xdc, 0xbb, 0xa5, 0x00, 0xba, 0x4d, 0xd4, 0xd2, - 0xfe, 0x15, 0x7a, 0x53, 0xcf, 0x93, 0x5b, 0x6b, 0x00, 0xcc, 0x0b, 0x25, 0xf4, 0xfe, 0x82, 0x32, - 0xe6, 0x2e, 0x68, 0xde, 0x84, 0x66, 0xb1, 0xff, 0x69, 0x40, 0xdf, 0x09, 0x93, 0x38, 0xcd, 0xca, - 0xdc, 0xdf, 0xc0, 0xa0, 0xac, 0xc9, 0x99, 0xfd, 0xec, 0xb3, 0x6c, 0xd8, 0x18, 0x35, 0x0f, 0xbb, - 0x64, 0xc5, 0xfe, 0x01, 0xdc, 0x32, 0xf9, 0xd3, 0xac, 0xf2, 0xc7, 0x60, 0x6e, 0xcb, 0x64, 0xae, - 0x1d, 0xc0, 0xc0, 0x2c, 0x8e, 0x25, 0x78, 0x04, 0x70, 0x57, 0x0c, 0x4d, 0xde, 0x3d, 0xea, 0xdd, - 0x4b, 0x0f, 0xd1, 0x76, 0xe1, 0x57, 0xb0, 0x3b, 0x77, 0xfd, 0x80, 0x7a, 0x37, 0xbe, 0x27, 0xda, - 0xd9, 0x12, 0xed, 0x98, 0x46, 0x83, 0xc9, 0xd3, 0x24, 0x09, 0xde, 0xd5, 0x61, 0xf2, 0x3d, 0x60, - 0x35, 0x78, 0x23, 0x2a, 0x7f, 0x0d, 0x2d, 0x8f, 0x53, 0xb9, 0x35, 0x6a, 0x0a, 0xce, 0xe4, 0xa7, - 0x89, 0x94, 0x05, 0x67, 0xc4, 0x16, 0xfb, 0xef, 0x06, 0xec, 0x1a, 0x76, 0xfc, 0x0e, 0x3a, 0xea, - 0x39, 0x2f, 0xf7, 0x99, 0x41, 0xba, 0x5f, 0xde, 0xbe, 0x09, 0xfc, 0xbb, 0x22, 0x4d, 0xb1, 0x19, - 0x9f, 0x43, 0xd7, 0xe5, 0x99, 0x04, 0x9d, 0x79, 0x41, 0x4d, 0x52, 0x1a, 0xf8, 0x2b, 0x4c, 0x4b, - 0x12, 0xe5, 0xaf, 0xb0, 0xb4, 0x20, 0x42, 0xeb, 0x3c, 0x70, 0x17, 0xe2, 0xf5, 0xb5, 0x89, 0x78, - 0xb6, 0xbf, 0x87, 0xc1, 0x42, 0xe1, 0xc1, 0xd1, 0xad, 0xa9, 0x0a, 0x95, 0xd8, 0x8f, 0x54, 0x85, - 0xe6, 0x7b, 0x55, 0xe1, 0x25, 0xf4, 0xa7, 0x9e, 0x27, 0xe6, 0x2c, 0xa8, 0x59, 0xe9, 0x0f, 0x80, - 0x84, 0x86, 0xf1, 0x9f, 0x74, 0xa3, 0xe8, 0x97, 0xd0, 0x7f, 0x4d, 0xb3, 0x8d, 0x42, 0xdf, 0xc2, - 0xc0, 0x0c, 0xdd, 0x08, 0xa1, 0x49, 0x4e, 0x36, 0x89, 0xd0, 0x7b, 0xb9, 0x22, 0x29, 0x77, 0x0c, - 0x3b, 0x0e, 0xab, 0xad, 0x42, 0xf6, 0xef, 0xd0, 0x2b, 0xc3, 0x36, 0xaa, 0xd4, 0x82, 0xce, 0xd5, - 0x1f, 0x7e, 0x72, 0xfd, 0x2e, 0x91, 0x04, 0x6c, 0x93, 0x62, 0xcd, 0xa9, 0xe6, 0x30, 0x27, 0x12, - 0x60, 0xd4, 0xa5, 0x9a, 0x0b, 0x7b, 0x95, 0xd8, 0x4d, 0xcb, 0xe3, 0x91, 0x71, 0xc4, 0x64, 0x79, - 0x1d, 0x52, 0xac, 0xf9, 0x5b, 0x9e, 0xd1, 0x80, 0x66, 0xb4, 0x3e, 0x6e, 0x04, 0x0e, 0x34, 0xd5, - 0x97, 0xf9, 0xea, 0xa8, 0x3f, 0x42, 0x6b, 0xce, 0x07, 0x73, 0x4b, 0x0e, 0x26, 0x7f, 0xb6, 0x6f, - 0x60, 0xff, 0x4a, 0x0d, 0x17, 0xdf, 0x46, 0xa3, 0x3a, 0x80, 0x3d, 0xf6, 0x45, 0x3c, 0xfa, 0xf7, - 0x09, 0xe4, 0x37, 0x1f, 0x3c, 0x87, 0xa7, 0x0b, 0xe3, 0x46, 0x80, 0x9f, 0xab, 0x64, 0x2b, 0x37, - 0x05, 0x6b, 0xd5, 0x55, 0xdc, 0x03, 0x8e, 0xa1, 0xeb, 0xaa, 0xee, 0xf1, 0xa0, 0x50, 0x42, 0xed, - 0x33, 0x68, 0xad, 0x11, 0x7e, 0xfc, 0x09, 0x70, 0x61, 0x28, 0xb1, 0xf8, 0x50, 0xad, 0x9e, 0xa3, - 0x24, 0xde, 0xb2, 0x1e, 0x73, 0xb1, 0x04, 0x1d, 0x21, 0x63, 0x57, 0x34, 0x98, 0x7f, 0x74, 0xaa, - 0x19, 0xec, 0x1a, 0xaa, 0x86, 0x43, 0xb5, 0xb9, 0x2a, 0x94, 0x25, 0x28, 0xab, 0x32, 0x78, 0x02, - 0x3d, 0x57, 0x13, 0x2b, 0xfc, 0x4c, 0xc3, 0x45, 0x57, 0x92, 0xb5, 0xd0, 0x4c, 0xa1, 0x9f, 0x9a, - 0x72, 0x85, 0x45, 0xc5, 0xab, 0x3a, 0xb6, 0x36, 0xc5, 0x31, 0x74, 0xfc, 0x7c, 0x94, 0x71, 0x5f, - 0xf9, 0x35, 0x4d, 0xb0, 0x0e, 0x56, 0x8d, 0xb2, 0x79, 0x5f, 0x9f, 0xb3, 0xb2, 0xf9, 0xea, 0xe8, - 0x96, 0xcd, 0xaf, 0x0e, 0xe6, 0x14, 0x7a, 0x0b, 0x4d, 0xf5, 0xca, 0xe6, 0x2b, 0x32, 0x6a, 0x0d, - 0xd7, 0x3b, 0x24, 0x7e, 0x9e, 0x36, 0x8d, 0x65, 0x8a, 0xca, 0x8c, 0xae, 0x6d, 0xfe, 0x0c, 0xf6, - 0xdc, 0xea, 0x3c, 0xe2, 0xf3, 0x35, 0xcc, 0x2c, 0x46, 0x75, 0x6d, 0x9a, 0x53, 0x18, 0xb0, 0xca, - 0x08, 0xe2, 0x33, 0xb5, 0x6f, 0xcd, 0x70, 0x3e, 0xf2, 0x2e, 0x7b, 0xfa, 0xdd, 0xa8, 0x6c, 0xa4, - 0x72, 0x9d, 0x2b, 0xb1, 0xa8, 0x5e, 0xa5, 0x5e, 0xed, 0xfd, 0xd6, 0x1f, 0xe7, 0x7f, 0x5e, 0x4e, - 0xe4, 0xcf, 0x9b, 0x6d, 0xf1, 0xcf, 0xe4, 0xdb, 0xff, 0x03, 0x00, 0x00, 0xff, 0xff, 0x3e, 0x04, - 0x07, 0x68, 0xdb, 0x0c, 0x00, 0x00, +func init() { proto.RegisterFile("friend/friend.proto", fileDescriptor_friend_a4d5a06cd0a3d99f) } + +var fileDescriptor_friend_a4d5a06cd0a3d99f = []byte{ + // 919 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x57, 0xcb, 0x4f, 0xf3, 0x46, + 0x10, 0x97, 0x09, 0x84, 0x64, 0x12, 0x48, 0xb2, 0x09, 0x90, 0x9a, 0x87, 0x52, 0x1f, 0xaa, 0xa8, + 0x87, 0x44, 0x4a, 0x45, 0x55, 0x4a, 0x5b, 0x14, 0x08, 0xa1, 0xa6, 0xa5, 0x20, 0x53, 0x2e, 0x55, + 0x25, 0x64, 0xf0, 0x26, 0xb5, 0xe2, 0xd8, 0x8b, 0xd7, 0x14, 0xf5, 0xd2, 0x43, 0x0f, 0xbd, 0x56, + 0xaa, 0x7a, 0xeb, 0xad, 0x7f, 0x69, 0x65, 0xaf, 0x1d, 0xaf, 0x1f, 0x41, 0x9f, 0xcd, 0x27, 0x7d, + 0x27, 0x98, 0x99, 0x9d, 0xf1, 0x6f, 0x1e, 0xfb, 0x9b, 0x0d, 0x34, 0x27, 0xb6, 0x8e, 0x4d, 0xad, + 0xcf, 0xfe, 0xf4, 0x88, 0x6d, 0x39, 0x16, 0x2a, 0x32, 0x49, 0xfc, 0xf8, 0x9a, 0x60, 0xf3, 0x5e, + 0xbe, 0xea, 0x93, 0xd9, 0xb4, 0xef, 0x99, 0xfa, 0x54, 0x9b, 0xdd, 0xbf, 0xd0, 0xfe, 0x0b, 0x65, + 0x47, 0xa5, 0x6f, 0x00, 0xce, 0xac, 0xf9, 0xdc, 0x32, 0x15, 0x4c, 0x09, 0x6a, 0xc3, 0x3a, 0xb6, + 0xed, 0x33, 0x4b, 0xc3, 0x6d, 0xa1, 0x23, 0x74, 0xd7, 0x94, 0x40, 0x44, 0xdb, 0x50, 0xc4, 0xb6, + 0x7d, 0x45, 0xa7, 0xed, 0x95, 0x8e, 0xd0, 0x2d, 0x2b, 0xbe, 0x24, 0xfd, 0x21, 0x40, 0xd1, 0x0d, + 0x20, 0x8f, 0x90, 0x08, 0xa5, 0x6b, 0x72, 0x47, 0xb1, 0x2d, 0x8f, 0x3c, 0xef, 0xb2, 0xb2, 0x90, + 0x51, 0x07, 0x2a, 0xd7, 0x04, 0xdb, 0xaa, 0xa3, 0x5b, 0xa6, 0x3c, 0xf2, 0x63, 0xf0, 0x2a, 0xd7, + 0xfb, 0x47, 0xcb, 0xf7, 0x5e, 0x65, 0xde, 0x81, 0x8c, 0x0e, 0x00, 0xc6, 0xb6, 0x35, 0xf7, 0xad, + 0x6b, 0x9e, 0x95, 0xd3, 0x48, 0xc7, 0xd0, 0xb8, 0xc0, 0xce, 0xd8, 0x4b, 0x9a, 0xca, 0xe6, 0xc4, + 0x52, 0xf0, 0x13, 0xfa, 0x24, 0x00, 0xe6, 0x81, 0xa9, 0x0c, 0x36, 0x7b, 0x7e, 0x8d, 0x98, 0x56, + 0xf1, 0xad, 0xd2, 0x9f, 0x02, 0xe7, 0xcd, 0x9c, 0x59, 0x25, 0xce, 0xa3, 0x95, 0x38, 0x0f, 0x2b, + 0x71, 0x1e, 0xa9, 0x04, 0x93, 0xd0, 0x09, 0x6c, 0x86, 0x31, 0xbe, 0xd7, 0xa9, 0xd3, 0x2e, 0x74, + 0x0a, 0xdd, 0xca, 0x60, 0xa7, 0x67, 0xb9, 0x5d, 0xd0, 0xe7, 0xf7, 0x54, 0x9b, 0xf5, 0xb8, 0xcf, + 0xc4, 0x8e, 0x4b, 0x3f, 0x40, 0x75, 0xa8, 0x69, 0x4c, 0x99, 0x21, 0x01, 0x17, 0x90, 0x82, 0x9f, + 0x38, 0x40, 0x4c, 0x92, 0xce, 0x60, 0x83, 0x8b, 0x47, 0x09, 0x1a, 0xf0, 0xbd, 0xf6, 0x83, 0x22, + 0x3e, 0x28, 0xb3, 0x28, 0xdc, 0x29, 0xe9, 0x5f, 0x01, 0x6a, 0xf2, 0x9c, 0x58, 0xb6, 0x13, 0x02, + 0xfb, 0x14, 0xea, 0x4c, 0x60, 0xe5, 0xf7, 0x72, 0x15, 0x3a, 0x85, 0x6e, 0x59, 0x49, 0xe8, 0xdf, + 0xa1, 0xf1, 0xd1, 0xe6, 0x16, 0xe2, 0xcd, 0x8d, 0x8c, 0xd5, 0x6a, 0x74, 0xac, 0xa4, 0xdf, 0xa1, + 0x1e, 0x05, 0x97, 0x2f, 0x4b, 0xf4, 0x39, 0x6c, 0x8f, 0x55, 0xdd, 0xc0, 0x5a, 0x22, 0xaf, 0x15, + 0x2f, 0xaf, 0x25, 0x56, 0xe9, 0x04, 0xb6, 0x16, 0xa3, 0x33, 0x24, 0xc4, 0xf8, 0xcd, 0xd5, 0x66, + 0x19, 0xbe, 0x7f, 0x04, 0xd8, 0x4e, 0x8b, 0x90, 0x6b, 0x02, 0xbf, 0x85, 0xc6, 0xa2, 0x49, 0xcf, + 0x98, 0x3a, 0xdc, 0x10, 0x8a, 0x29, 0x43, 0xe8, 0x9f, 0x52, 0x92, 0x4e, 0xd2, 0x97, 0x50, 0x5f, + 0xa0, 0xca, 0x9a, 0x52, 0xe4, 0x3e, 0xbd, 0x21, 0x9b, 0x37, 0xdf, 0xa7, 0x23, 0xa8, 0x0d, 0x35, + 0xed, 0xd4, 0x50, 0x1f, 0x67, 0x46, 0xc6, 0x1c, 0xc6, 0x50, 0x8f, 0xba, 0xe6, 0xbc, 0x3d, 0x5f, + 0x01, 0x52, 0xf0, 0xdc, 0xfa, 0x15, 0xe7, 0x42, 0x21, 0x43, 0x33, 0xe1, 0x9d, 0x13, 0xc8, 0x11, + 0xd4, 0x2e, 0xb0, 0x93, 0x0b, 0xc5, 0x5f, 0x82, 0x37, 0x0c, 0x51, 0x0c, 0xd9, 0xdb, 0x29, 0x43, + 0xc3, 0x0b, 0xe1, 0xdd, 0x9e, 0x68, 0x47, 0x77, 0x23, 0x1d, 0xbd, 0x79, 0x7e, 0x30, 0xf4, 0xc7, + 0xe0, 0x98, 0x92, 0xf4, 0x92, 0x0e, 0xa1, 0x22, 0xd3, 0xcc, 0x3c, 0x29, 0xfd, 0x0c, 0xd5, 0xd0, + 0x2d, 0x57, 0x0e, 0x22, 0x94, 0x5c, 0x4f, 0xcb, 0xa4, 0xd8, 0x23, 0xaa, 0x92, 0xb2, 0x90, 0xdd, + 0x2b, 0x23, 0x53, 0xd9, 0xf4, 0xd0, 0x66, 0xbd, 0x32, 0x2a, 0x34, 0x62, 0xbe, 0xef, 0x1d, 0xde, + 0x11, 0xd4, 0x46, 0xd8, 0xc0, 0x0e, 0xce, 0x5e, 0xb7, 0x31, 0xd4, 0xa3, 0xae, 0x39, 0x67, 0x90, + 0x40, 0x2b, 0xb2, 0x8f, 0x5c, 0x5c, 0x59, 0xf6, 0x1c, 0x82, 0xd5, 0x89, 0xa1, 0xb2, 0xa4, 0xd7, + 0x14, 0xef, 0x7f, 0xb4, 0x07, 0xe5, 0x5f, 0x54, 0x53, 0x33, 0xb0, 0x5b, 0x0d, 0xb6, 0x3b, 0x42, + 0x85, 0xf4, 0x1d, 0x6c, 0xa5, 0x7c, 0x31, 0x27, 0xfc, 0x3b, 0x68, 0xde, 0x06, 0xb4, 0xe6, 0xaa, + 0xb1, 0xe9, 0x64, 0xde, 0xd2, 0x73, 0xd5, 0x9e, 0x85, 0x5b, 0xda, 0x95, 0xa4, 0x4b, 0x68, 0x25, + 0xc3, 0xe6, 0x84, 0xf8, 0x35, 0x34, 0x2f, 0xb0, 0x73, 0x8b, 0x8d, 0x49, 0xae, 0x65, 0xf4, 0xb7, + 0x00, 0xad, 0xa4, 0xff, 0x87, 0x5d, 0x45, 0x83, 0xff, 0xd6, 0xc1, 0x7f, 0xce, 0xa2, 0x2f, 0xa0, + 0xac, 0x06, 0xed, 0x44, 0xad, 0x20, 0x09, 0xfe, 0xcd, 0x24, 0x6e, 0xa5, 0x68, 0x29, 0x41, 0xb7, + 0x80, 0xa6, 0x89, 0x2d, 0x8b, 0xf6, 0x83, 0xc3, 0xa9, 0x3b, 0x5c, 0x3c, 0x78, 0xcd, 0x4c, 0x09, + 0xba, 0x82, 0xfa, 0x34, 0x56, 0x2d, 0xb4, 0xcb, 0xf9, 0xc4, 0xfb, 0x20, 0xee, 0x2d, 0x37, 0x52, + 0x82, 0x46, 0xb0, 0x31, 0xe5, 0xd7, 0x26, 0x6a, 0x27, 0xbe, 0x1f, 0x04, 0xfa, 0x68, 0x89, 0x85, + 0x12, 0x34, 0x84, 0xaa, 0xca, 0x6d, 0x2e, 0xb4, 0xc3, 0x15, 0x84, 0xa7, 0x7f, 0xb1, 0x9d, 0x6e, + 0xa0, 0x04, 0x5d, 0x42, 0xcd, 0x8e, 0xae, 0x1d, 0x24, 0x06, 0x87, 0x93, 0xdb, 0x4c, 0xdc, 0x5d, + 0x6a, 0xa3, 0x04, 0x1d, 0x42, 0x49, 0xf7, 0x39, 0x17, 0x35, 0x83, 0x83, 0x1c, 0x79, 0x8b, 0xad, + 0xa4, 0x92, 0xd5, 0x42, 0xe7, 0x09, 0x31, 0xac, 0x45, 0x9c, 0x63, 0xc3, 0x5a, 0x24, 0x19, 0x74, + 0x08, 0xd5, 0x29, 0xb7, 0xb8, 0xc2, 0x5a, 0xc4, 0x56, 0xa1, 0xd8, 0x4e, 0x37, 0xb0, 0x10, 0x1a, + 0xc7, 0x7d, 0x61, 0x88, 0x18, 0x99, 0x86, 0x21, 0x12, 0x54, 0x79, 0x03, 0x0d, 0x35, 0x4e, 0x42, + 0x68, 0x2f, 0x75, 0x4e, 0x7d, 0x46, 0x14, 0xf7, 0x5f, 0xb1, 0xb2, 0xc1, 0xa3, 0x31, 0xca, 0x08, + 0x07, 0x2f, 0x85, 0xa3, 0xc2, 0xc1, 0x4b, 0x65, 0x9a, 0x21, 0x54, 0x75, 0xee, 0x11, 0x1d, 0xe6, + 0x18, 0x7b, 0xf7, 0x87, 0x39, 0xc6, 0xdf, 0xdc, 0xa7, 0x8d, 0x9f, 0x6a, 0x3d, 0xff, 0x27, 0xe8, + 0x31, 0xfb, 0xf3, 0x50, 0xf4, 0x7e, 0x5f, 0x7e, 0xf6, 0x7f, 0x00, 0x00, 0x00, 0xff, 0xff, 0xcc, + 0xd1, 0x9d, 0x13, 0xa1, 0x0e, 0x00, 0x00, } diff --git a/pkg/proto/friend/friend.proto b/pkg/proto/friend/friend.proto index 4591e9704..052eb1d9d 100644 --- a/pkg/proto/friend/friend.proto +++ b/pkg/proto/friend/friend.proto @@ -15,138 +15,151 @@ message CommID{ string FromUserID = 5; } + message GetFriendsInfoReq{ CommID CommID = 1; } - message GetFriendInfoResp{ int32 ErrCode = 1; string ErrMsg = 2; - FriendInfo Data = 3; -} - -message FriendInfo{ - string OwnerUserID = 1; - string Remark = 2; - uint64 CreateTime = 3; - open_im_sdk.UserInfo FriendUser = 4; - int32 IsBlack = 5; + repeated open_im_sdk.FriendInfo FriendInfoList = 3; +// int32 IsBlack = 4; } message AddFriendReq{ CommID CommID = 1; - string ReqMessage = 2; + string ReqMsg = 2; +} +message AddFriendResp{ + CommonResp CommonResp = 1; } + message ImportFriendReq{ repeated string FriendUserIDList = 1; string OperationID = 2; string FromUserID = 3; string OpUserID = 4; } - message ImportFriendResp{ - CommonResp commonResp = 1; - repeated string failedUidList = 2; + CommonResp CommonResp = 1; + repeated string FailedFriendUserIDList = 2; } -message GetFriendApplyReq{ + +message GetFriendApplyListReq{ CommID CommID = 1; } -message GetFriendApplyResp{ +message GetFriendApplyListResp{ int32 ErrCode = 1; string ErrMsg = 2; - repeated ApplyUserInfo data = 4; -} - -message ApplyUserInfo{ - open_im_sdk.PublicUserInfo UserInfo = 1; - int64 applyTime = 2; - string reqMessage = 3; - int32 Flag = 4; + repeated open_im_sdk.FriendRequest FriendRequestList = 3; } -message getFriendListReq{ +message GetFriendListReq{ CommID CommID = 1; } - -message getFriendListResp{ +message GetFriendListResp{ int32 ErrCode = 1; string ErrMsg = 2; - repeated FriendInfo Data = 3; + repeated open_im_sdk.FriendInfo FriendInfoList = 3; } message AddBlacklistReq{ CommID CommID = 1; } +message AddBlacklistResp{ + CommonResp CommonResp = 1; +} message RemoveBlacklistReq{ CommID CommID = 1; } - +message RemoveBlacklistResp{ + CommonResp CommonResp = 1; +} message GetBlacklistReq{ CommID CommID = 1; } - message GetBlacklistResp{ int32 ErrCode = 1; string ErrMsg = 2; - repeated open_im_sdk.PublicUserInfo data = 3; + repeated open_im_sdk.PublicUserInfo BlackUserInfoList = 3; } + message IsFriendReq{ CommID CommID = 1; } - message IsFriendResp{ int32 ErrCode = 1; string ErrMsg = 2; - int32 ShipType = 3; + bool Response = 3; } + message IsInBlackListReq{ CommID CommID = 1; } - message IsInBlackListResp{ int32 ErrCode = 1; string ErrMsg = 2; bool Response = 3; } + message DeleteFriendReq{ CommID CommID = 1; } +message DeleteFriendResp{ + CommonResp CommonResp = 1; +} - +//process message AddFriendResponseReq{ CommID CommID = 1; int32 flag = 2; + string handleMsg = 3; +} +message AddFriendResponseResp{ + CommonResp CommonResp = 1; } message SetFriendCommentReq{ CommID CommID = 1; string Remark = 2; } +message SetFriendCommentResp{ + CommonResp CommonResp = 1; +} + +message GetSelfApplyListReq{ + CommID CommID = 1; +} +message GetSelfApplyListResp{ + int32 ErrCode = 1; + string ErrMsg = 2; + repeated open_im_sdk.FriendRequest FriendRequestList = 3; +} service friend{ - rpc getFriendsInfo(GetFriendsInfoReq) returns(GetFriendInfoResp); - rpc addFriend(AddFriendReq) returns(CommonResp); - rpc getFriendApplyList(GetFriendApplyReq) returns(GetFriendApplyResp); - rpc getSelfApplyList(GetFriendApplyReq) returns(GetFriendApplyResp); - rpc getFriendList(getFriendListReq) returns(getFriendListResp); - rpc addBlacklist(AddBlacklistReq) returns(CommonResp); - rpc removeBlacklist(RemoveBlacklistReq) returns(CommonResp); + // rpc getFriendsInfo(GetFriendsInfoReq) returns(GetFriendInfoResp); + rpc addFriend(AddFriendReq) returns(AddFriendResp); + rpc getFriendApplyList(GetFriendApplyListReq) returns(GetFriendApplyListResp); + rpc getSelfApplyList(GetSelfApplyListReq) returns(GetSelfApplyListResp); + rpc getFriendList(GetFriendListReq) returns(GetFriendListResp); + rpc addBlacklist(AddBlacklistReq) returns(AddBlacklistResp); + rpc removeBlacklist(RemoveBlacklistReq) returns(RemoveBlacklistResp); rpc isFriend(IsFriendReq) returns(IsFriendResp); rpc isInBlackList(IsInBlackListReq) returns(IsInBlackListResp); rpc getBlacklist(GetBlacklistReq) returns(GetBlacklistResp); - rpc deleteFriend(DeleteFriendReq) returns(CommonResp); - rpc addFriendResponse(AddFriendResponseReq) returns(CommonResp); - rpc setFriendComment(SetFriendCommentReq) returns(CommonResp); - rpc ImportFriend(ImportFriendReq) returns(ImportFriendResp); + rpc deleteFriend(DeleteFriendReq) returns(DeleteFriendResp); + rpc addFriendResponse(AddFriendResponseReq) returns(AddFriendResponseResp); + rpc setFriendComment(SetFriendCommentReq) returns(SetFriendCommentResp); + rpc importFriend(ImportFriendReq) returns(ImportFriendResp); } \ No newline at end of file diff --git a/pkg/proto/group/group.pb.go b/pkg/proto/group/group.pb.go index cbd93fb5e..ea305a14b 100644 --- a/pkg/proto/group/group.pb.go +++ b/pkg/proto/group/group.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_group_95297d6a59bab850, []int{0} + return fileDescriptor_group_5b7911b898fdd5c5, []int{0} } func (m *CommonResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_CommonResp.Unmarshal(m, b) @@ -72,7 +72,7 @@ func (m *CommonResp) GetErrMsg() string { type GroupAddMemberInfo struct { UserID string `protobuf:"bytes,1,opt,name=UserID" json:"UserID,omitempty"` - Role int32 `protobuf:"varint,2,opt,name=Role" json:"Role,omitempty"` + RoleLevel int32 `protobuf:"varint,2,opt,name=RoleLevel" json:"RoleLevel,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -82,7 +82,7 @@ func (m *GroupAddMemberInfo) Reset() { *m = GroupAddMemberInfo{} } func (m *GroupAddMemberInfo) String() string { return proto.CompactTextString(m) } func (*GroupAddMemberInfo) ProtoMessage() {} func (*GroupAddMemberInfo) Descriptor() ([]byte, []int) { - return fileDescriptor_group_95297d6a59bab850, []int{1} + return fileDescriptor_group_5b7911b898fdd5c5, []int{1} } func (m *GroupAddMemberInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupAddMemberInfo.Unmarshal(m, b) @@ -109,23 +109,19 @@ func (m *GroupAddMemberInfo) GetUserID() string { return "" } -func (m *GroupAddMemberInfo) GetRole() int32 { +func (m *GroupAddMemberInfo) GetRoleLevel() int32 { if m != nil { - return m.Role + return m.RoleLevel } return 0 } type CreateGroupReq struct { InitMemberList []*GroupAddMemberInfo `protobuf:"bytes,1,rep,name=InitMemberList" json:"InitMemberList,omitempty"` - GroupName string `protobuf:"bytes,2,opt,name=GroupName" json:"GroupName,omitempty"` - Introduction string `protobuf:"bytes,3,opt,name=Introduction" json:"Introduction,omitempty"` - Notification string `protobuf:"bytes,4,opt,name=Notification" json:"Notification,omitempty"` - FaceUrl string `protobuf:"bytes,5,opt,name=FaceUrl" json:"FaceUrl,omitempty"` - Ext string `protobuf:"bytes,6,opt,name=Ext" json:"Ext,omitempty"` - OperationID string `protobuf:"bytes,7,opt,name=OperationID" json:"OperationID,omitempty"` - OpUserID string `protobuf:"bytes,8,opt,name=OpUserID" json:"OpUserID,omitempty"` - FromUserID string `protobuf:"bytes,9,opt,name=FromUserID" json:"FromUserID,omitempty"` + GroupInfo *sdk_ws.GroupInfo `protobuf:"bytes,2,opt,name=GroupInfo" json:"GroupInfo,omitempty"` + OperationID string `protobuf:"bytes,3,opt,name=OperationID" json:"OperationID,omitempty"` + OpUserID string `protobuf:"bytes,4,opt,name=OpUserID" json:"OpUserID,omitempty"` + OwnerUserID string `protobuf:"bytes,5,opt,name=OwnerUserID" json:"OwnerUserID,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -135,7 +131,7 @@ func (m *CreateGroupReq) Reset() { *m = CreateGroupReq{} } func (m *CreateGroupReq) String() string { return proto.CompactTextString(m) } func (*CreateGroupReq) ProtoMessage() {} func (*CreateGroupReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_95297d6a59bab850, []int{2} + return fileDescriptor_group_5b7911b898fdd5c5, []int{2} } func (m *CreateGroupReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_CreateGroupReq.Unmarshal(m, b) @@ -162,39 +158,11 @@ func (m *CreateGroupReq) GetInitMemberList() []*GroupAddMemberInfo { return nil } -func (m *CreateGroupReq) GetGroupName() string { +func (m *CreateGroupReq) GetGroupInfo() *sdk_ws.GroupInfo { if m != nil { - return m.GroupName - } - return "" -} - -func (m *CreateGroupReq) GetIntroduction() string { - if m != nil { - return m.Introduction - } - return "" -} - -func (m *CreateGroupReq) GetNotification() string { - if m != nil { - return m.Notification - } - return "" -} - -func (m *CreateGroupReq) GetFaceUrl() string { - if m != nil { - return m.FaceUrl - } - return "" -} - -func (m *CreateGroupReq) GetExt() string { - if m != nil { - return m.Ext + return m.GroupInfo } - return "" + return nil } func (m *CreateGroupReq) GetOperationID() string { @@ -211,9 +179,9 @@ func (m *CreateGroupReq) GetOpUserID() string { return "" } -func (m *CreateGroupReq) GetFromUserID() string { +func (m *CreateGroupReq) GetOwnerUserID() string { if m != nil { - return m.FromUserID + return m.OwnerUserID } return "" } @@ -231,7 +199,7 @@ func (m *CreateGroupResp) Reset() { *m = CreateGroupResp{} } func (m *CreateGroupResp) String() string { return proto.CompactTextString(m) } func (*CreateGroupResp) ProtoMessage() {} func (*CreateGroupResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_95297d6a59bab850, []int{3} + return fileDescriptor_group_5b7911b898fdd5c5, []int{3} } func (m *CreateGroupResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_CreateGroupResp.Unmarshal(m, b) @@ -285,7 +253,7 @@ func (m *GetGroupsInfoReq) Reset() { *m = GetGroupsInfoReq{} } func (m *GetGroupsInfoReq) String() string { return proto.CompactTextString(m) } func (*GetGroupsInfoReq) ProtoMessage() {} func (*GetGroupsInfoReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_95297d6a59bab850, []int{4} + return fileDescriptor_group_5b7911b898fdd5c5, []int{4} } func (m *GetGroupsInfoReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetGroupsInfoReq.Unmarshal(m, b) @@ -339,7 +307,7 @@ func (m *GetGroupsInfoResp) Reset() { *m = GetGroupsInfoResp{} } func (m *GetGroupsInfoResp) String() string { return proto.CompactTextString(m) } func (*GetGroupsInfoResp) ProtoMessage() {} func (*GetGroupsInfoResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_95297d6a59bab850, []int{5} + return fileDescriptor_group_5b7911b898fdd5c5, []int{5} } func (m *GetGroupsInfoResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetGroupsInfoResp.Unmarshal(m, b) @@ -393,7 +361,7 @@ func (m *SetGroupInfoReq) Reset() { *m = SetGroupInfoReq{} } func (m *SetGroupInfoReq) String() string { return proto.CompactTextString(m) } func (*SetGroupInfoReq) ProtoMessage() {} func (*SetGroupInfoReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_95297d6a59bab850, []int{6} + return fileDescriptor_group_5b7911b898fdd5c5, []int{6} } func (m *SetGroupInfoReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SetGroupInfoReq.Unmarshal(m, b) @@ -434,6 +402,44 @@ func (m *SetGroupInfoReq) GetOperationID() string { return "" } +type SetGroupInfoResp 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 *SetGroupInfoResp) Reset() { *m = SetGroupInfoResp{} } +func (m *SetGroupInfoResp) String() string { return proto.CompactTextString(m) } +func (*SetGroupInfoResp) ProtoMessage() {} +func (*SetGroupInfoResp) Descriptor() ([]byte, []int) { + return fileDescriptor_group_5b7911b898fdd5c5, []int{7} +} +func (m *SetGroupInfoResp) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_SetGroupInfoResp.Unmarshal(m, b) +} +func (m *SetGroupInfoResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_SetGroupInfoResp.Marshal(b, m, deterministic) +} +func (dst *SetGroupInfoResp) XXX_Merge(src proto.Message) { + xxx_messageInfo_SetGroupInfoResp.Merge(dst, src) +} +func (m *SetGroupInfoResp) XXX_Size() int { + return xxx_messageInfo_SetGroupInfoResp.Size(m) +} +func (m *SetGroupInfoResp) XXX_DiscardUnknown() { + xxx_messageInfo_SetGroupInfoResp.DiscardUnknown(m) +} + +var xxx_messageInfo_SetGroupInfoResp proto.InternalMessageInfo + +func (m *SetGroupInfoResp) GetCommonResp() *CommonResp { + if m != nil { + return m.CommonResp + } + return nil +} + type GetGroupApplicationListReq struct { OpUserID string `protobuf:"bytes,1,opt,name=OpUserID" json:"OpUserID,omitempty"` OperationID string `protobuf:"bytes,2,opt,name=OperationID" json:"OperationID,omitempty"` @@ -447,7 +453,7 @@ func (m *GetGroupApplicationListReq) Reset() { *m = GetGroupApplicationL func (m *GetGroupApplicationListReq) String() string { return proto.CompactTextString(m) } func (*GetGroupApplicationListReq) ProtoMessage() {} func (*GetGroupApplicationListReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_95297d6a59bab850, []int{7} + return fileDescriptor_group_5b7911b898fdd5c5, []int{8} } func (m *GetGroupApplicationListReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetGroupApplicationListReq.Unmarshal(m, b) @@ -488,224 +494,20 @@ func (m *GetGroupApplicationListReq) GetFromUserID() string { return "" } -type GetGroupApplicationList_Data_User struct { - ID string `protobuf:"bytes,1,opt,name=ID" json:"ID,omitempty"` - GroupID string `protobuf:"bytes,2,opt,name=GroupID" json:"GroupID,omitempty"` - FromUserID string `protobuf:"bytes,3,opt,name=FromUserID" json:"FromUserID,omitempty"` - ToUserID string `protobuf:"bytes,4,opt,name=ToUserID" json:"ToUserID,omitempty"` - Flag int32 `protobuf:"varint,5,opt,name=Flag" json:"Flag,omitempty"` - RequestMsg string `protobuf:"bytes,6,opt,name=RequestMsg" json:"RequestMsg,omitempty"` - HandledMsg string `protobuf:"bytes,7,opt,name=HandledMsg" json:"HandledMsg,omitempty"` - AddTime int64 `protobuf:"varint,8,opt,name=AddTime" json:"AddTime,omitempty"` - FromUserNickname string `protobuf:"bytes,9,opt,name=FromUserNickname" json:"FromUserNickname,omitempty"` - ToUserNickname string `protobuf:"bytes,10,opt,name=ToUserNickname" json:"ToUserNickname,omitempty"` - FromUserFaceUrl string `protobuf:"bytes,11,opt,name=FromUserFaceUrl" json:"FromUserFaceUrl,omitempty"` - ToUserFaceUrl string `protobuf:"bytes,12,opt,name=ToUserFaceUrl" json:"ToUserFaceUrl,omitempty"` - HandledUser string `protobuf:"bytes,13,opt,name=HandledUser" json:"HandledUser,omitempty"` - Type int32 `protobuf:"varint,14,opt,name=Type" json:"Type,omitempty"` - HandleStatus int32 `protobuf:"varint,15,opt,name=HandleStatus" json:"HandleStatus,omitempty"` - HandleResult int32 `protobuf:"varint,16,opt,name=HandleResult" json:"HandleResult,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *GetGroupApplicationList_Data_User) Reset() { *m = GetGroupApplicationList_Data_User{} } -func (m *GetGroupApplicationList_Data_User) String() string { return proto.CompactTextString(m) } -func (*GetGroupApplicationList_Data_User) ProtoMessage() {} -func (*GetGroupApplicationList_Data_User) Descriptor() ([]byte, []int) { - return fileDescriptor_group_95297d6a59bab850, []int{8} -} -func (m *GetGroupApplicationList_Data_User) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_GetGroupApplicationList_Data_User.Unmarshal(m, b) -} -func (m *GetGroupApplicationList_Data_User) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_GetGroupApplicationList_Data_User.Marshal(b, m, deterministic) -} -func (dst *GetGroupApplicationList_Data_User) XXX_Merge(src proto.Message) { - xxx_messageInfo_GetGroupApplicationList_Data_User.Merge(dst, src) -} -func (m *GetGroupApplicationList_Data_User) XXX_Size() int { - return xxx_messageInfo_GetGroupApplicationList_Data_User.Size(m) -} -func (m *GetGroupApplicationList_Data_User) XXX_DiscardUnknown() { - xxx_messageInfo_GetGroupApplicationList_Data_User.DiscardUnknown(m) -} - -var xxx_messageInfo_GetGroupApplicationList_Data_User proto.InternalMessageInfo - -func (m *GetGroupApplicationList_Data_User) GetID() string { - if m != nil { - return m.ID - } - return "" -} - -func (m *GetGroupApplicationList_Data_User) GetGroupID() string { - if m != nil { - return m.GroupID - } - return "" -} - -func (m *GetGroupApplicationList_Data_User) GetFromUserID() string { - if m != nil { - return m.FromUserID - } - return "" -} - -func (m *GetGroupApplicationList_Data_User) GetToUserID() string { - if m != nil { - return m.ToUserID - } - return "" -} - -func (m *GetGroupApplicationList_Data_User) GetFlag() int32 { - if m != nil { - return m.Flag - } - return 0 -} - -func (m *GetGroupApplicationList_Data_User) GetRequestMsg() string { - if m != nil { - return m.RequestMsg - } - return "" -} - -func (m *GetGroupApplicationList_Data_User) GetHandledMsg() string { - if m != nil { - return m.HandledMsg - } - return "" -} - -func (m *GetGroupApplicationList_Data_User) GetAddTime() int64 { - if m != nil { - return m.AddTime - } - return 0 -} - -func (m *GetGroupApplicationList_Data_User) GetFromUserNickname() string { - if m != nil { - return m.FromUserNickname - } - return "" -} - -func (m *GetGroupApplicationList_Data_User) GetToUserNickname() string { - if m != nil { - return m.ToUserNickname - } - return "" -} - -func (m *GetGroupApplicationList_Data_User) GetFromUserFaceUrl() string { - if m != nil { - return m.FromUserFaceUrl - } - return "" -} - -func (m *GetGroupApplicationList_Data_User) GetToUserFaceUrl() string { - if m != nil { - return m.ToUserFaceUrl - } - return "" -} - -func (m *GetGroupApplicationList_Data_User) GetHandledUser() string { - if m != nil { - return m.HandledUser - } - return "" -} - -func (m *GetGroupApplicationList_Data_User) GetType() int32 { - if m != nil { - return m.Type - } - return 0 -} - -func (m *GetGroupApplicationList_Data_User) GetHandleStatus() int32 { - if m != nil { - return m.HandleStatus - } - return 0 -} - -func (m *GetGroupApplicationList_Data_User) GetHandleResult() int32 { - if m != nil { - return m.HandleResult - } - return 0 -} - -type GetGroupApplicationListData struct { - Count int32 `protobuf:"varint,1,opt,name=Count" json:"Count,omitempty"` - User []*GetGroupApplicationList_Data_User `protobuf:"bytes,2,rep,name=User" json:"User,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *GetGroupApplicationListData) Reset() { *m = GetGroupApplicationListData{} } -func (m *GetGroupApplicationListData) String() string { return proto.CompactTextString(m) } -func (*GetGroupApplicationListData) ProtoMessage() {} -func (*GetGroupApplicationListData) Descriptor() ([]byte, []int) { - return fileDescriptor_group_95297d6a59bab850, []int{9} -} -func (m *GetGroupApplicationListData) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_GetGroupApplicationListData.Unmarshal(m, b) -} -func (m *GetGroupApplicationListData) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_GetGroupApplicationListData.Marshal(b, m, deterministic) -} -func (dst *GetGroupApplicationListData) XXX_Merge(src proto.Message) { - xxx_messageInfo_GetGroupApplicationListData.Merge(dst, src) -} -func (m *GetGroupApplicationListData) XXX_Size() int { - return xxx_messageInfo_GetGroupApplicationListData.Size(m) -} -func (m *GetGroupApplicationListData) XXX_DiscardUnknown() { - xxx_messageInfo_GetGroupApplicationListData.DiscardUnknown(m) -} - -var xxx_messageInfo_GetGroupApplicationListData proto.InternalMessageInfo - -func (m *GetGroupApplicationListData) GetCount() int32 { - if m != nil { - return m.Count - } - return 0 -} - -func (m *GetGroupApplicationListData) GetUser() []*GetGroupApplicationList_Data_User { - if m != nil { - return m.User - } - return nil -} - type GetGroupApplicationListResp struct { - ErrCode int32 `protobuf:"varint,1,opt,name=ErrCode" json:"ErrCode,omitempty"` - ErrMsg string `protobuf:"bytes,2,opt,name=ErrMsg" json:"ErrMsg,omitempty"` - Data *GetGroupApplicationListData `protobuf:"bytes,3,opt,name=Data" json:"Data,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + ErrCode int32 `protobuf:"varint,1,opt,name=ErrCode" json:"ErrCode,omitempty"` + ErrMsg string `protobuf:"bytes,2,opt,name=ErrMsg" json:"ErrMsg,omitempty"` + GroupRequestList []*sdk_ws.GroupRequest `protobuf:"bytes,3,rep,name=GroupRequestList" json:"GroupRequestList,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } func (m *GetGroupApplicationListResp) Reset() { *m = GetGroupApplicationListResp{} } func (m *GetGroupApplicationListResp) String() string { return proto.CompactTextString(m) } func (*GetGroupApplicationListResp) ProtoMessage() {} func (*GetGroupApplicationListResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_95297d6a59bab850, []int{10} + return fileDescriptor_group_5b7911b898fdd5c5, []int{9} } func (m *GetGroupApplicationListResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetGroupApplicationListResp.Unmarshal(m, b) @@ -739,9 +541,9 @@ func (m *GetGroupApplicationListResp) GetErrMsg() string { return "" } -func (m *GetGroupApplicationListResp) GetData() *GetGroupApplicationListData { +func (m *GetGroupApplicationListResp) GetGroupRequestList() []*sdk_ws.GroupRequest { if m != nil { - return m.Data + return m.GroupRequestList } return nil } @@ -761,7 +563,7 @@ func (m *TransferGroupOwnerReq) Reset() { *m = TransferGroupOwnerReq{} } func (m *TransferGroupOwnerReq) String() string { return proto.CompactTextString(m) } func (*TransferGroupOwnerReq) ProtoMessage() {} func (*TransferGroupOwnerReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_95297d6a59bab850, []int{11} + return fileDescriptor_group_5b7911b898fdd5c5, []int{10} } func (m *TransferGroupOwnerReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_TransferGroupOwnerReq.Unmarshal(m, b) @@ -816,6 +618,44 @@ func (m *TransferGroupOwnerReq) GetOpUserID() string { return "" } +type TransferGroupOwnerResp 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 *TransferGroupOwnerResp) Reset() { *m = TransferGroupOwnerResp{} } +func (m *TransferGroupOwnerResp) String() string { return proto.CompactTextString(m) } +func (*TransferGroupOwnerResp) ProtoMessage() {} +func (*TransferGroupOwnerResp) Descriptor() ([]byte, []int) { + return fileDescriptor_group_5b7911b898fdd5c5, []int{11} +} +func (m *TransferGroupOwnerResp) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_TransferGroupOwnerResp.Unmarshal(m, b) +} +func (m *TransferGroupOwnerResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_TransferGroupOwnerResp.Marshal(b, m, deterministic) +} +func (dst *TransferGroupOwnerResp) XXX_Merge(src proto.Message) { + xxx_messageInfo_TransferGroupOwnerResp.Merge(dst, src) +} +func (m *TransferGroupOwnerResp) XXX_Size() int { + return xxx_messageInfo_TransferGroupOwnerResp.Size(m) +} +func (m *TransferGroupOwnerResp) XXX_DiscardUnknown() { + xxx_messageInfo_TransferGroupOwnerResp.DiscardUnknown(m) +} + +var xxx_messageInfo_TransferGroupOwnerResp proto.InternalMessageInfo + +func (m *TransferGroupOwnerResp) GetCommonResp() *CommonResp { + if m != nil { + return m.CommonResp + } + return nil +} + type JoinGroupReq struct { GroupID string `protobuf:"bytes,1,opt,name=GroupID" json:"GroupID,omitempty"` ReqMessage string `protobuf:"bytes,2,opt,name=ReqMessage" json:"ReqMessage,omitempty"` @@ -830,7 +670,7 @@ func (m *JoinGroupReq) Reset() { *m = JoinGroupReq{} } func (m *JoinGroupReq) String() string { return proto.CompactTextString(m) } func (*JoinGroupReq) ProtoMessage() {} func (*JoinGroupReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_95297d6a59bab850, []int{12} + return fileDescriptor_group_5b7911b898fdd5c5, []int{12} } func (m *JoinGroupReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_JoinGroupReq.Unmarshal(m, b) @@ -878,15 +718,51 @@ func (m *JoinGroupReq) GetOperationID() string { return "" } +type JoinGroupResp 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 *JoinGroupResp) Reset() { *m = JoinGroupResp{} } +func (m *JoinGroupResp) String() string { return proto.CompactTextString(m) } +func (*JoinGroupResp) ProtoMessage() {} +func (*JoinGroupResp) Descriptor() ([]byte, []int) { + return fileDescriptor_group_5b7911b898fdd5c5, []int{13} +} +func (m *JoinGroupResp) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_JoinGroupResp.Unmarshal(m, b) +} +func (m *JoinGroupResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_JoinGroupResp.Marshal(b, m, deterministic) +} +func (dst *JoinGroupResp) XXX_Merge(src proto.Message) { + xxx_messageInfo_JoinGroupResp.Merge(dst, src) +} +func (m *JoinGroupResp) XXX_Size() int { + return xxx_messageInfo_JoinGroupResp.Size(m) +} +func (m *JoinGroupResp) XXX_DiscardUnknown() { + xxx_messageInfo_JoinGroupResp.DiscardUnknown(m) +} + +var xxx_messageInfo_JoinGroupResp proto.InternalMessageInfo + +func (m *JoinGroupResp) GetCommonResp() *CommonResp { + if m != nil { + return m.CommonResp + } + return nil +} + type GroupApplicationResponseReq struct { OperationID string `protobuf:"bytes,1,opt,name=OperationID" json:"OperationID,omitempty"` OpUserID string `protobuf:"bytes,2,opt,name=OpUserID" json:"OpUserID,omitempty"` GroupID string `protobuf:"bytes,3,opt,name=GroupID" json:"GroupID,omitempty"` FromUserID string `protobuf:"bytes,4,opt,name=FromUserID" json:"FromUserID,omitempty"` - ToUserID string `protobuf:"bytes,5,opt,name=ToUserID" json:"ToUserID,omitempty"` - AddTime int64 `protobuf:"varint,6,opt,name=AddTime" json:"AddTime,omitempty"` - HandledMsg string `protobuf:"bytes,7,opt,name=HandledMsg" json:"HandledMsg,omitempty"` - HandleResult int32 `protobuf:"varint,8,opt,name=HandleResult" json:"HandleResult,omitempty"` + HandledMsg string `protobuf:"bytes,5,opt,name=HandledMsg" json:"HandledMsg,omitempty"` + HandleResult int32 `protobuf:"varint,6,opt,name=HandleResult" json:"HandleResult,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -896,7 +772,7 @@ func (m *GroupApplicationResponseReq) Reset() { *m = GroupApplicationRes func (m *GroupApplicationResponseReq) String() string { return proto.CompactTextString(m) } func (*GroupApplicationResponseReq) ProtoMessage() {} func (*GroupApplicationResponseReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_95297d6a59bab850, []int{13} + return fileDescriptor_group_5b7911b898fdd5c5, []int{14} } func (m *GroupApplicationResponseReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupApplicationResponseReq.Unmarshal(m, b) @@ -944,20 +820,6 @@ func (m *GroupApplicationResponseReq) GetFromUserID() string { return "" } -func (m *GroupApplicationResponseReq) GetToUserID() string { - if m != nil { - return m.ToUserID - } - return "" -} - -func (m *GroupApplicationResponseReq) GetAddTime() int64 { - if m != nil { - return m.AddTime - } - return 0 -} - func (m *GroupApplicationResponseReq) GetHandledMsg() string { if m != nil { return m.HandledMsg @@ -972,74 +834,42 @@ func (m *GroupApplicationResponseReq) GetHandleResult() int32 { return 0 } -type SetOwnerGroupNickNameReq struct { - GroupID string `protobuf:"bytes,1,opt,name=GroupID" json:"GroupID,omitempty"` - Nickname string `protobuf:"bytes,2,opt,name=Nickname" json:"Nickname,omitempty"` - OperationID string `protobuf:"bytes,3,opt,name=OperationID" json:"OperationID,omitempty"` - FromUserID string `protobuf:"bytes,4,opt,name=FromUserID" json:"FromUserID,omitempty"` - OpUserID string `protobuf:"bytes,5,opt,name=OpUserID" json:"OpUserID,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` +type GroupApplicationResponseResp 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 *SetOwnerGroupNickNameReq) Reset() { *m = SetOwnerGroupNickNameReq{} } -func (m *SetOwnerGroupNickNameReq) String() string { return proto.CompactTextString(m) } -func (*SetOwnerGroupNickNameReq) ProtoMessage() {} -func (*SetOwnerGroupNickNameReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_95297d6a59bab850, []int{14} +func (m *GroupApplicationResponseResp) Reset() { *m = GroupApplicationResponseResp{} } +func (m *GroupApplicationResponseResp) String() string { return proto.CompactTextString(m) } +func (*GroupApplicationResponseResp) ProtoMessage() {} +func (*GroupApplicationResponseResp) Descriptor() ([]byte, []int) { + return fileDescriptor_group_5b7911b898fdd5c5, []int{15} } -func (m *SetOwnerGroupNickNameReq) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_SetOwnerGroupNickNameReq.Unmarshal(m, b) +func (m *GroupApplicationResponseResp) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GroupApplicationResponseResp.Unmarshal(m, b) } -func (m *SetOwnerGroupNickNameReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_SetOwnerGroupNickNameReq.Marshal(b, m, deterministic) +func (m *GroupApplicationResponseResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GroupApplicationResponseResp.Marshal(b, m, deterministic) } -func (dst *SetOwnerGroupNickNameReq) XXX_Merge(src proto.Message) { - xxx_messageInfo_SetOwnerGroupNickNameReq.Merge(dst, src) +func (dst *GroupApplicationResponseResp) XXX_Merge(src proto.Message) { + xxx_messageInfo_GroupApplicationResponseResp.Merge(dst, src) } -func (m *SetOwnerGroupNickNameReq) XXX_Size() int { - return xxx_messageInfo_SetOwnerGroupNickNameReq.Size(m) +func (m *GroupApplicationResponseResp) XXX_Size() int { + return xxx_messageInfo_GroupApplicationResponseResp.Size(m) } -func (m *SetOwnerGroupNickNameReq) XXX_DiscardUnknown() { - xxx_messageInfo_SetOwnerGroupNickNameReq.DiscardUnknown(m) +func (m *GroupApplicationResponseResp) XXX_DiscardUnknown() { + xxx_messageInfo_GroupApplicationResponseResp.DiscardUnknown(m) } -var xxx_messageInfo_SetOwnerGroupNickNameReq proto.InternalMessageInfo +var xxx_messageInfo_GroupApplicationResponseResp proto.InternalMessageInfo -func (m *SetOwnerGroupNickNameReq) GetGroupID() string { +func (m *GroupApplicationResponseResp) GetCommonResp() *CommonResp { if m != nil { - return m.GroupID + return m.CommonResp } - return "" -} - -func (m *SetOwnerGroupNickNameReq) GetNickname() string { - if m != nil { - return m.Nickname - } - return "" -} - -func (m *SetOwnerGroupNickNameReq) GetOperationID() string { - if m != nil { - return m.OperationID - } - return "" -} - -func (m *SetOwnerGroupNickNameReq) GetFromUserID() string { - if m != nil { - return m.FromUserID - } - return "" -} - -func (m *SetOwnerGroupNickNameReq) GetOpUserID() string { - if m != nil { - return m.OpUserID - } - return "" + return nil } type QuitGroupReq struct { @@ -1055,7 +885,7 @@ func (m *QuitGroupReq) Reset() { *m = QuitGroupReq{} } func (m *QuitGroupReq) String() string { return proto.CompactTextString(m) } func (*QuitGroupReq) ProtoMessage() {} func (*QuitGroupReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_95297d6a59bab850, []int{15} + return fileDescriptor_group_5b7911b898fdd5c5, []int{16} } func (m *QuitGroupReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_QuitGroupReq.Unmarshal(m, b) @@ -1096,6 +926,44 @@ func (m *QuitGroupReq) GetOpUserID() string { return "" } +type QuitGroupResp 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 *QuitGroupResp) Reset() { *m = QuitGroupResp{} } +func (m *QuitGroupResp) String() string { return proto.CompactTextString(m) } +func (*QuitGroupResp) ProtoMessage() {} +func (*QuitGroupResp) Descriptor() ([]byte, []int) { + return fileDescriptor_group_5b7911b898fdd5c5, []int{17} +} +func (m *QuitGroupResp) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_QuitGroupResp.Unmarshal(m, b) +} +func (m *QuitGroupResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_QuitGroupResp.Marshal(b, m, deterministic) +} +func (dst *QuitGroupResp) XXX_Merge(src proto.Message) { + xxx_messageInfo_QuitGroupResp.Merge(dst, src) +} +func (m *QuitGroupResp) XXX_Size() int { + return xxx_messageInfo_QuitGroupResp.Size(m) +} +func (m *QuitGroupResp) XXX_DiscardUnknown() { + xxx_messageInfo_QuitGroupResp.DiscardUnknown(m) +} + +var xxx_messageInfo_QuitGroupResp proto.InternalMessageInfo + +func (m *QuitGroupResp) GetCommonResp() *CommonResp { + if m != nil { + return m.CommonResp + } + return nil +} + type GetGroupMemberListReq struct { GroupID string `protobuf:"bytes,1,opt,name=GroupID" json:"GroupID,omitempty"` OpUserID string `protobuf:"bytes,2,opt,name=OpUserID" json:"OpUserID,omitempty"` @@ -1111,7 +979,7 @@ func (m *GetGroupMemberListReq) Reset() { *m = GetGroupMemberListReq{} } func (m *GetGroupMemberListReq) String() string { return proto.CompactTextString(m) } func (*GetGroupMemberListReq) ProtoMessage() {} func (*GetGroupMemberListReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_95297d6a59bab850, []int{16} + return fileDescriptor_group_5b7911b898fdd5c5, []int{18} } func (m *GetGroupMemberListReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetGroupMemberListReq.Unmarshal(m, b) @@ -1180,7 +1048,7 @@ func (m *GetGroupMemberListResp) Reset() { *m = GetGroupMemberListResp{} func (m *GetGroupMemberListResp) String() string { return proto.CompactTextString(m) } func (*GetGroupMemberListResp) ProtoMessage() {} func (*GetGroupMemberListResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_95297d6a59bab850, []int{17} + return fileDescriptor_group_5b7911b898fdd5c5, []int{19} } func (m *GetGroupMemberListResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetGroupMemberListResp.Unmarshal(m, b) @@ -1242,7 +1110,7 @@ func (m *GetGroupMembersInfoReq) Reset() { *m = GetGroupMembersInfoReq{} func (m *GetGroupMembersInfoReq) String() string { return proto.CompactTextString(m) } func (*GetGroupMembersInfoReq) ProtoMessage() {} func (*GetGroupMembersInfoReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_95297d6a59bab850, []int{18} + return fileDescriptor_group_5b7911b898fdd5c5, []int{20} } func (m *GetGroupMembersInfoReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetGroupMembersInfoReq.Unmarshal(m, b) @@ -1303,7 +1171,7 @@ func (m *GetGroupMembersInfoResp) Reset() { *m = GetGroupMembersInfoResp func (m *GetGroupMembersInfoResp) String() string { return proto.CompactTextString(m) } func (*GetGroupMembersInfoResp) ProtoMessage() {} func (*GetGroupMembersInfoResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_95297d6a59bab850, []int{19} + return fileDescriptor_group_5b7911b898fdd5c5, []int{21} } func (m *GetGroupMembersInfoResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetGroupMembersInfoResp.Unmarshal(m, b) @@ -1359,7 +1227,7 @@ func (m *KickGroupMemberReq) Reset() { *m = KickGroupMemberReq{} } func (m *KickGroupMemberReq) String() string { return proto.CompactTextString(m) } func (*KickGroupMemberReq) ProtoMessage() {} func (*KickGroupMemberReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_95297d6a59bab850, []int{20} + return fileDescriptor_group_5b7911b898fdd5c5, []int{22} } func (m *KickGroupMemberReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_KickGroupMemberReq.Unmarshal(m, b) @@ -1426,7 +1294,7 @@ func (m *Id2Result) Reset() { *m = Id2Result{} } func (m *Id2Result) String() string { return proto.CompactTextString(m) } func (*Id2Result) ProtoMessage() {} func (*Id2Result) Descriptor() ([]byte, []int) { - return fileDescriptor_group_95297d6a59bab850, []int{21} + return fileDescriptor_group_5b7911b898fdd5c5, []int{23} } func (m *Id2Result) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_Id2Result.Unmarshal(m, b) @@ -1473,7 +1341,7 @@ func (m *KickGroupMemberResp) Reset() { *m = KickGroupMemberResp{} } func (m *KickGroupMemberResp) String() string { return proto.CompactTextString(m) } func (*KickGroupMemberResp) ProtoMessage() {} func (*KickGroupMemberResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_95297d6a59bab850, []int{22} + return fileDescriptor_group_5b7911b898fdd5c5, []int{24} } func (m *KickGroupMemberResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_KickGroupMemberResp.Unmarshal(m, b) @@ -1527,7 +1395,7 @@ func (m *GetJoinedGroupListReq) Reset() { *m = GetJoinedGroupListReq{} } func (m *GetJoinedGroupListReq) String() string { return proto.CompactTextString(m) } func (*GetJoinedGroupListReq) ProtoMessage() {} func (*GetJoinedGroupListReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_95297d6a59bab850, []int{23} + return fileDescriptor_group_5b7911b898fdd5c5, []int{25} } func (m *GetJoinedGroupListReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetJoinedGroupListReq.Unmarshal(m, b) @@ -1581,7 +1449,7 @@ func (m *GetJoinedGroupListResp) Reset() { *m = GetJoinedGroupListResp{} func (m *GetJoinedGroupListResp) String() string { return proto.CompactTextString(m) } func (*GetJoinedGroupListResp) ProtoMessage() {} func (*GetJoinedGroupListResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_95297d6a59bab850, []int{24} + return fileDescriptor_group_5b7911b898fdd5c5, []int{26} } func (m *GetJoinedGroupListResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetJoinedGroupListResp.Unmarshal(m, b) @@ -1637,7 +1505,7 @@ func (m *InviteUserToGroupReq) Reset() { *m = InviteUserToGroupReq{} } func (m *InviteUserToGroupReq) String() string { return proto.CompactTextString(m) } func (*InviteUserToGroupReq) ProtoMessage() {} func (*InviteUserToGroupReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_95297d6a59bab850, []int{25} + return fileDescriptor_group_5b7911b898fdd5c5, []int{27} } func (m *InviteUserToGroupReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_InviteUserToGroupReq.Unmarshal(m, b) @@ -1705,7 +1573,7 @@ func (m *InviteUserToGroupResp) Reset() { *m = InviteUserToGroupResp{} } func (m *InviteUserToGroupResp) String() string { return proto.CompactTextString(m) } func (*InviteUserToGroupResp) ProtoMessage() {} func (*InviteUserToGroupResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_95297d6a59bab850, []int{26} + return fileDescriptor_group_5b7911b898fdd5c5, []int{28} } func (m *InviteUserToGroupResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_InviteUserToGroupResp.Unmarshal(m, b) @@ -1759,7 +1627,7 @@ func (m *GetGroupAllMemberReq) Reset() { *m = GetGroupAllMemberReq{} } func (m *GetGroupAllMemberReq) String() string { return proto.CompactTextString(m) } func (*GetGroupAllMemberReq) ProtoMessage() {} func (*GetGroupAllMemberReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_95297d6a59bab850, []int{27} + return fileDescriptor_group_5b7911b898fdd5c5, []int{29} } func (m *GetGroupAllMemberReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetGroupAllMemberReq.Unmarshal(m, b) @@ -1813,7 +1681,7 @@ func (m *GetGroupAllMemberResp) Reset() { *m = GetGroupAllMemberResp{} } func (m *GetGroupAllMemberResp) String() string { return proto.CompactTextString(m) } func (*GetGroupAllMemberResp) ProtoMessage() {} func (*GetGroupAllMemberResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_95297d6a59bab850, []int{28} + return fileDescriptor_group_5b7911b898fdd5c5, []int{30} } func (m *GetGroupAllMemberResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetGroupAllMemberResp.Unmarshal(m, b) @@ -1862,15 +1730,17 @@ func init() { proto.RegisterType((*GetGroupsInfoReq)(nil), "group.GetGroupsInfoReq") proto.RegisterType((*GetGroupsInfoResp)(nil), "group.GetGroupsInfoResp") proto.RegisterType((*SetGroupInfoReq)(nil), "group.SetGroupInfoReq") + proto.RegisterType((*SetGroupInfoResp)(nil), "group.SetGroupInfoResp") proto.RegisterType((*GetGroupApplicationListReq)(nil), "group.GetGroupApplicationListReq") - proto.RegisterType((*GetGroupApplicationList_Data_User)(nil), "group.GetGroupApplicationList_Data_User") - proto.RegisterType((*GetGroupApplicationListData)(nil), "group.GetGroupApplicationListData") proto.RegisterType((*GetGroupApplicationListResp)(nil), "group.GetGroupApplicationListResp") proto.RegisterType((*TransferGroupOwnerReq)(nil), "group.TransferGroupOwnerReq") + proto.RegisterType((*TransferGroupOwnerResp)(nil), "group.TransferGroupOwnerResp") proto.RegisterType((*JoinGroupReq)(nil), "group.JoinGroupReq") + proto.RegisterType((*JoinGroupResp)(nil), "group.JoinGroupResp") proto.RegisterType((*GroupApplicationResponseReq)(nil), "group.GroupApplicationResponseReq") - proto.RegisterType((*SetOwnerGroupNickNameReq)(nil), "group.SetOwnerGroupNickNameReq") + proto.RegisterType((*GroupApplicationResponseResp)(nil), "group.GroupApplicationResponseResp") proto.RegisterType((*QuitGroupReq)(nil), "group.QuitGroupReq") + proto.RegisterType((*QuitGroupResp)(nil), "group.QuitGroupResp") proto.RegisterType((*GetGroupMemberListReq)(nil), "group.GetGroupMemberListReq") proto.RegisterType((*GetGroupMemberListResp)(nil), "group.GetGroupMemberListResp") proto.RegisterType((*GetGroupMembersInfoReq)(nil), "group.GetGroupMembersInfoReq") @@ -1898,14 +1768,13 @@ const _ = grpc.SupportPackageIsVersion4 type GroupClient interface { CreateGroup(ctx context.Context, in *CreateGroupReq, opts ...grpc.CallOption) (*CreateGroupResp, error) - JoinGroup(ctx context.Context, in *JoinGroupReq, opts ...grpc.CallOption) (*CommonResp, error) - QuitGroup(ctx context.Context, in *QuitGroupReq, opts ...grpc.CallOption) (*CommonResp, error) + JoinGroup(ctx context.Context, in *JoinGroupReq, opts ...grpc.CallOption) (*JoinGroupResp, error) + QuitGroup(ctx context.Context, in *QuitGroupReq, opts ...grpc.CallOption) (*QuitGroupResp, error) GetGroupsInfo(ctx context.Context, in *GetGroupsInfoReq, opts ...grpc.CallOption) (*GetGroupsInfoResp, error) - SetGroupInfo(ctx context.Context, in *SetGroupInfoReq, opts ...grpc.CallOption) (*CommonResp, error) + SetGroupInfo(ctx context.Context, in *SetGroupInfoReq, opts ...grpc.CallOption) (*SetGroupInfoResp, error) GetGroupApplicationList(ctx context.Context, in *GetGroupApplicationListReq, opts ...grpc.CallOption) (*GetGroupApplicationListResp, error) - TransferGroupOwner(ctx context.Context, in *TransferGroupOwnerReq, opts ...grpc.CallOption) (*CommonResp, error) - GroupApplicationResponse(ctx context.Context, in *GroupApplicationResponseReq, opts ...grpc.CallOption) (*CommonResp, error) - // rpc setOwnerGroupNickName(SetOwnerGroupNickNameReq) returns(CommonResp); + TransferGroupOwner(ctx context.Context, in *TransferGroupOwnerReq, opts ...grpc.CallOption) (*TransferGroupOwnerResp, error) + GroupApplicationResponse(ctx context.Context, in *GroupApplicationResponseReq, opts ...grpc.CallOption) (*GroupApplicationResponseResp, error) GetGroupMemberList(ctx context.Context, in *GetGroupMemberListReq, opts ...grpc.CallOption) (*GetGroupMemberListResp, error) GetGroupMembersInfo(ctx context.Context, in *GetGroupMembersInfoReq, opts ...grpc.CallOption) (*GetGroupMembersInfoResp, error) KickGroupMember(ctx context.Context, in *KickGroupMemberReq, opts ...grpc.CallOption) (*KickGroupMemberResp, error) @@ -1931,8 +1800,8 @@ func (c *groupClient) CreateGroup(ctx context.Context, in *CreateGroupReq, opts return out, nil } -func (c *groupClient) JoinGroup(ctx context.Context, in *JoinGroupReq, opts ...grpc.CallOption) (*CommonResp, error) { - out := new(CommonResp) +func (c *groupClient) JoinGroup(ctx context.Context, in *JoinGroupReq, opts ...grpc.CallOption) (*JoinGroupResp, error) { + out := new(JoinGroupResp) err := grpc.Invoke(ctx, "/group.group/joinGroup", in, out, c.cc, opts...) if err != nil { return nil, err @@ -1940,8 +1809,8 @@ func (c *groupClient) JoinGroup(ctx context.Context, in *JoinGroupReq, opts ...g return out, nil } -func (c *groupClient) QuitGroup(ctx context.Context, in *QuitGroupReq, opts ...grpc.CallOption) (*CommonResp, error) { - out := new(CommonResp) +func (c *groupClient) QuitGroup(ctx context.Context, in *QuitGroupReq, opts ...grpc.CallOption) (*QuitGroupResp, error) { + out := new(QuitGroupResp) err := grpc.Invoke(ctx, "/group.group/quitGroup", in, out, c.cc, opts...) if err != nil { return nil, err @@ -1958,8 +1827,8 @@ func (c *groupClient) GetGroupsInfo(ctx context.Context, in *GetGroupsInfoReq, o return out, nil } -func (c *groupClient) SetGroupInfo(ctx context.Context, in *SetGroupInfoReq, opts ...grpc.CallOption) (*CommonResp, error) { - out := new(CommonResp) +func (c *groupClient) SetGroupInfo(ctx context.Context, in *SetGroupInfoReq, opts ...grpc.CallOption) (*SetGroupInfoResp, error) { + out := new(SetGroupInfoResp) err := grpc.Invoke(ctx, "/group.group/setGroupInfo", in, out, c.cc, opts...) if err != nil { return nil, err @@ -1976,8 +1845,8 @@ func (c *groupClient) GetGroupApplicationList(ctx context.Context, in *GetGroupA return out, nil } -func (c *groupClient) TransferGroupOwner(ctx context.Context, in *TransferGroupOwnerReq, opts ...grpc.CallOption) (*CommonResp, error) { - out := new(CommonResp) +func (c *groupClient) TransferGroupOwner(ctx context.Context, in *TransferGroupOwnerReq, opts ...grpc.CallOption) (*TransferGroupOwnerResp, error) { + out := new(TransferGroupOwnerResp) err := grpc.Invoke(ctx, "/group.group/transferGroupOwner", in, out, c.cc, opts...) if err != nil { return nil, err @@ -1985,8 +1854,8 @@ func (c *groupClient) TransferGroupOwner(ctx context.Context, in *TransferGroupO return out, nil } -func (c *groupClient) GroupApplicationResponse(ctx context.Context, in *GroupApplicationResponseReq, opts ...grpc.CallOption) (*CommonResp, error) { - out := new(CommonResp) +func (c *groupClient) GroupApplicationResponse(ctx context.Context, in *GroupApplicationResponseReq, opts ...grpc.CallOption) (*GroupApplicationResponseResp, error) { + out := new(GroupApplicationResponseResp) err := grpc.Invoke(ctx, "/group.group/groupApplicationResponse", in, out, c.cc, opts...) if err != nil { return nil, err @@ -2052,14 +1921,13 @@ func (c *groupClient) GetGroupAllMember(ctx context.Context, in *GetGroupAllMemb type GroupServer interface { CreateGroup(context.Context, *CreateGroupReq) (*CreateGroupResp, error) - JoinGroup(context.Context, *JoinGroupReq) (*CommonResp, error) - QuitGroup(context.Context, *QuitGroupReq) (*CommonResp, error) + JoinGroup(context.Context, *JoinGroupReq) (*JoinGroupResp, error) + QuitGroup(context.Context, *QuitGroupReq) (*QuitGroupResp, error) GetGroupsInfo(context.Context, *GetGroupsInfoReq) (*GetGroupsInfoResp, error) - SetGroupInfo(context.Context, *SetGroupInfoReq) (*CommonResp, error) + SetGroupInfo(context.Context, *SetGroupInfoReq) (*SetGroupInfoResp, error) GetGroupApplicationList(context.Context, *GetGroupApplicationListReq) (*GetGroupApplicationListResp, error) - TransferGroupOwner(context.Context, *TransferGroupOwnerReq) (*CommonResp, error) - GroupApplicationResponse(context.Context, *GroupApplicationResponseReq) (*CommonResp, error) - // rpc setOwnerGroupNickName(SetOwnerGroupNickNameReq) returns(CommonResp); + TransferGroupOwner(context.Context, *TransferGroupOwnerReq) (*TransferGroupOwnerResp, error) + GroupApplicationResponse(context.Context, *GroupApplicationResponseReq) (*GroupApplicationResponseResp, error) GetGroupMemberList(context.Context, *GetGroupMemberListReq) (*GetGroupMemberListResp, error) GetGroupMembersInfo(context.Context, *GetGroupMembersInfoReq) (*GetGroupMembersInfoResp, error) KickGroupMember(context.Context, *KickGroupMemberReq) (*KickGroupMemberResp, error) @@ -2389,100 +2257,86 @@ var _Group_serviceDesc = grpc.ServiceDesc{ Metadata: "group/group.proto", } -func init() { proto.RegisterFile("group/group.proto", fileDescriptor_group_95297d6a59bab850) } - -var fileDescriptor_group_95297d6a59bab850 = []byte{ - // 1464 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x58, 0xcd, 0x6f, 0x1b, 0x45, - 0x14, 0xd7, 0xfa, 0x23, 0x8d, 0x5f, 0xbe, 0x9c, 0x69, 0x93, 0x2e, 0xdb, 0x50, 0xb9, 0x2b, 0x54, - 0x45, 0x15, 0x4a, 0xa4, 0x14, 0x21, 0xa1, 0x46, 0xa8, 0x69, 0x3e, 0x5a, 0x03, 0x71, 0xd4, 0x8d, - 0x7b, 0xe1, 0x12, 0xb6, 0xde, 0x89, 0xb5, 0x78, 0xbd, 0xbb, 0xde, 0x59, 0x93, 0x96, 0x0b, 0x20, - 0x04, 0x1c, 0x10, 0xa2, 0x57, 0x8e, 0x5c, 0x38, 0x22, 0x0e, 0xdc, 0x39, 0xf0, 0x8f, 0xa1, 0xf9, - 0xd8, 0xf5, 0xec, 0xa7, 0x2d, 0x47, 0xa2, 0x17, 0xcb, 0xf3, 0xde, 0x9b, 0x79, 0x1f, 0xf3, 0xde, - 0xef, 0xbd, 0x59, 0x58, 0xef, 0x07, 0xde, 0xd8, 0xdf, 0x65, 0xbf, 0x3b, 0x7e, 0xe0, 0x85, 0x1e, - 0xaa, 0xb3, 0x85, 0x76, 0xef, 0xcc, 0xc7, 0xee, 0x45, 0xfb, 0x74, 0xd7, 0x1f, 0xf4, 0x77, 0x19, - 0x67, 0x97, 0x58, 0x83, 0x8b, 0x2b, 0xb2, 0x7b, 0x45, 0xb8, 0xa4, 0xfe, 0x31, 0xc0, 0xa1, 0x37, - 0x1c, 0x7a, 0xae, 0x81, 0x89, 0x8f, 0x54, 0xb8, 0x71, 0x1c, 0x04, 0x87, 0x9e, 0x85, 0x55, 0xa5, - 0xa5, 0x6c, 0xd7, 0x8d, 0x68, 0x89, 0x36, 0x61, 0xe1, 0x38, 0x08, 0x4e, 0x49, 0x5f, 0xad, 0xb4, - 0x94, 0xed, 0x86, 0x21, 0x56, 0xfa, 0x63, 0x40, 0x4f, 0xa9, 0xae, 0x03, 0xcb, 0x3a, 0xc5, 0xc3, - 0x97, 0x38, 0x68, 0xbb, 0x97, 0x1e, 0x95, 0x7e, 0x41, 0x70, 0xd0, 0x3e, 0x62, 0xc7, 0x34, 0x0c, - 0xb1, 0x42, 0x08, 0x6a, 0x86, 0xe7, 0x60, 0x76, 0x46, 0xdd, 0x60, 0xff, 0xf5, 0x7f, 0x2b, 0xb0, - 0x7a, 0x18, 0x60, 0x33, 0xc4, 0xec, 0x20, 0x03, 0x8f, 0xd0, 0x01, 0xac, 0xb6, 0x5d, 0x3b, 0xe4, - 0x07, 0x7e, 0x66, 0x93, 0x50, 0x55, 0x5a, 0xd5, 0xed, 0xa5, 0xbd, 0x77, 0x76, 0xb8, 0x93, 0x59, - 0x8d, 0x46, 0x6a, 0x03, 0xda, 0x82, 0x06, 0x93, 0xea, 0x98, 0x43, 0x2c, 0x4c, 0x9e, 0x10, 0x90, - 0x0e, 0xcb, 0x6d, 0x37, 0x0c, 0x3c, 0x6b, 0xdc, 0x0b, 0x6d, 0xcf, 0x55, 0xab, 0x4c, 0x20, 0x41, - 0xa3, 0x32, 0x1d, 0x2f, 0xb4, 0x2f, 0xed, 0x9e, 0xc9, 0x64, 0x6a, 0x5c, 0x46, 0xa6, 0xd1, 0x78, - 0x9d, 0x98, 0x3d, 0xfc, 0x22, 0x70, 0xd4, 0x3a, 0x63, 0x47, 0x4b, 0xd4, 0x84, 0xea, 0xf1, 0xab, - 0x50, 0x5d, 0x60, 0x54, 0xfa, 0x17, 0xb5, 0x60, 0xe9, 0xcc, 0xc7, 0x01, 0xdb, 0xd8, 0x3e, 0x52, - 0x6f, 0x30, 0x8e, 0x4c, 0x42, 0x1a, 0x2c, 0x9e, 0xf9, 0x22, 0x6e, 0x8b, 0x8c, 0x1d, 0xaf, 0xd1, - 0x5d, 0x80, 0x93, 0xc0, 0x1b, 0x0a, 0x6e, 0x83, 0x71, 0x25, 0x8a, 0xfe, 0x1a, 0xd6, 0x12, 0x41, - 0x9c, 0xe7, 0x32, 0xd1, 0x07, 0x22, 0x68, 0x34, 0xa2, 0x2c, 0x26, 0x4b, 0x7b, 0x9b, 0x3b, 0x1e, - 0xcd, 0x21, 0x7b, 0x78, 0x41, 0xac, 0xc1, 0x4e, 0xcc, 0x35, 0x26, 0x82, 0x7a, 0x00, 0xcd, 0xa7, - 0x38, 0x64, 0x6b, 0xc2, 0x78, 0x78, 0x44, 0x9d, 0xe5, 0x02, 0x47, 0xf1, 0xf5, 0x35, 0x0c, 0x99, - 0x94, 0x0e, 0x47, 0xa5, 0x3c, 0x1c, 0xd5, 0x64, 0x38, 0xf4, 0xef, 0x15, 0x58, 0x4f, 0x29, 0x9d, - 0xcb, 0xe3, 0x7d, 0x58, 0x89, 0x1d, 0x61, 0x96, 0x56, 0x59, 0xa2, 0x15, 0x79, 0x9d, 0x14, 0xd6, - 0x7f, 0x50, 0x60, 0xed, 0x5c, 0x58, 0x11, 0x79, 0x9e, 0x88, 0xa1, 0x32, 0x63, 0x0c, 0x13, 0xbe, - 0x56, 0x52, 0x57, 0x9f, 0x8a, 0x54, 0x35, 0x13, 0x29, 0xfd, 0x6b, 0xd0, 0xa2, 0x60, 0x1c, 0xf8, - 0xbe, 0x23, 0xb2, 0x93, 0x9a, 0x48, 0x2d, 0x92, 0xcf, 0x56, 0xca, 0xcf, 0xce, 0xb9, 0x85, 0x64, - 0xe2, 0x55, 0x33, 0x89, 0xf7, 0x5b, 0x0d, 0xee, 0x15, 0x28, 0xbf, 0x38, 0x32, 0x43, 0xf3, 0x82, - 0xca, 0xa1, 0x55, 0xa8, 0xc4, 0xda, 0x2b, 0xed, 0x23, 0x7a, 0x53, 0x22, 0x19, 0x84, 0xce, 0x68, - 0x39, 0x4d, 0x1f, 0xf5, 0xa6, 0xeb, 0x09, 0x2e, 0x2f, 0xc9, 0x78, 0x4d, 0xe1, 0xe5, 0xc4, 0x31, - 0xfb, 0xac, 0x16, 0xeb, 0x06, 0xfb, 0x4f, 0xcf, 0x33, 0xf0, 0x68, 0x8c, 0x49, 0x48, 0x6f, 0x9f, - 0xd7, 0xa3, 0x44, 0xa1, 0xfc, 0x67, 0xa6, 0x6b, 0x39, 0xd8, 0xa2, 0x7c, 0x5e, 0x95, 0x12, 0x85, - 0x5a, 0x7a, 0x60, 0x59, 0x5d, 0x7b, 0x88, 0x59, 0x4d, 0x56, 0x8d, 0x68, 0x89, 0x1e, 0x40, 0x33, - 0xb2, 0xab, 0x63, 0xf7, 0x06, 0x2e, 0x45, 0x1a, 0x5e, 0x98, 0x19, 0x3a, 0xba, 0x0f, 0xab, 0xdc, - 0xca, 0x58, 0x12, 0x98, 0x64, 0x8a, 0x8a, 0xb6, 0x61, 0x2d, 0xda, 0x1b, 0x01, 0xcb, 0x12, 0x13, - 0x4c, 0x93, 0xd1, 0x7b, 0xb0, 0xc2, 0xf7, 0x46, 0x72, 0xcb, 0x4c, 0x2e, 0x49, 0xa4, 0xf7, 0x2b, - 0x7c, 0xa1, 0x54, 0x75, 0x85, 0xdf, 0xaf, 0x44, 0xa2, 0x31, 0xeb, 0xbe, 0xf6, 0xb1, 0xba, 0xca, - 0x63, 0x46, 0xff, 0x53, 0xe8, 0xe3, 0x22, 0xe7, 0xa1, 0x19, 0x8e, 0x89, 0xba, 0xc6, 0x78, 0x09, - 0xda, 0x44, 0xc6, 0xc0, 0x64, 0xec, 0x84, 0x6a, 0x53, 0x96, 0xe1, 0x34, 0x7d, 0x04, 0x77, 0x0a, - 0x52, 0x83, 0x66, 0x06, 0xba, 0x05, 0xf5, 0x43, 0x6f, 0xec, 0x86, 0xa2, 0x58, 0xf9, 0x02, 0xed, - 0x43, 0x8d, 0xd9, 0x5a, 0x61, 0x95, 0xb8, 0x1d, 0x41, 0xfe, 0xb4, 0x14, 0x33, 0xd8, 0x2e, 0xfd, - 0x27, 0xa5, 0x50, 0xe7, 0x9c, 0x10, 0xf1, 0x21, 0xd4, 0xa8, 0x12, 0x81, 0x87, 0x7a, 0xb9, 0x3d, - 0x54, 0xd2, 0x60, 0xf2, 0xfa, 0x3f, 0x0a, 0x6c, 0x74, 0x03, 0xd3, 0x25, 0x97, 0x38, 0x60, 0xa2, - 0x67, 0x57, 0x2e, 0x0e, 0x68, 0x41, 0x4a, 0xc9, 0xaf, 0x24, 0x93, 0xff, 0x3e, 0xac, 0x9e, 0x39, - 0x16, 0x13, 0x4c, 0x80, 0x41, 0x8a, 0x4a, 0xe5, 0x3a, 0xf8, 0x4a, 0x96, 0xe3, 0x85, 0x92, 0xa2, - 0xa6, 0xcb, 0xbb, 0x56, 0x0e, 0xb2, 0xf5, 0x14, 0xc8, 0xfe, 0xa8, 0xc0, 0xf2, 0x27, 0x9e, 0xed, - 0xc6, 0x7d, 0xb9, 0xd8, 0x70, 0x5e, 0x65, 0xa7, 0x98, 0x10, 0xb3, 0x1f, 0xf5, 0x5b, 0x89, 0x52, - 0x86, 0xe5, 0xd3, 0x8d, 0xd4, 0x7f, 0xad, 0xc0, 0x9d, 0x74, 0xb4, 0xe9, 0x6d, 0x7a, 0x2e, 0xc1, - 0xa2, 0xdb, 0xc8, 0x27, 0x28, 0xe5, 0x6e, 0xa6, 0xf1, 0x55, 0xf2, 0xaa, 0x5a, 0x86, 0x45, 0xb5, - 0x52, 0x2c, 0xaa, 0xa7, 0xb0, 0x48, 0xc2, 0x8d, 0x85, 0x24, 0x6e, 0x4c, 0x43, 0x9c, 0x74, 0x65, - 0x2d, 0xe6, 0x54, 0xd6, 0x9f, 0x0a, 0xa8, 0xe7, 0x38, 0x64, 0x77, 0xcd, 0xc7, 0x1a, 0xbb, 0x37, - 0xa0, 0xa3, 0x4d, 0xf9, 0x35, 0x69, 0xb0, 0x18, 0x03, 0x90, 0x08, 0x43, 0x0c, 0x3d, 0x53, 0xdb, - 0xcc, 0x2c, 0xe1, 0x28, 0xcc, 0xa5, 0x4b, 0x58, 0x7e, 0x3e, 0xb6, 0xc3, 0x19, 0x52, 0xe9, 0x7a, - 0x83, 0xc1, 0xef, 0x0a, 0x6c, 0x44, 0xb5, 0x39, 0x19, 0x07, 0xa7, 0x46, 0x65, 0xfe, 0xe6, 0x4b, - 0x71, 0xe3, 0xc4, 0x76, 0x42, 0x1c, 0xb0, 0x88, 0xd4, 0x0d, 0xb1, 0xa2, 0xfa, 0x3a, 0xf8, 0x55, - 0x78, 0x8e, 0x47, 0xa2, 0x1f, 0x45, 0x4b, 0xfd, 0x0f, 0x05, 0x36, 0xf3, 0x6c, 0x9c, 0x0b, 0x9e, - 0x1e, 0x03, 0x0c, 0x27, 0x73, 0x32, 0x1f, 0x5f, 0x5a, 0xd9, 0x81, 0x83, 0xeb, 0x39, 0x19, 0x3b, - 0x0e, 0x1b, 0x3d, 0xa4, 0x3d, 0x54, 0xa7, 0x2b, 0x0c, 0xe5, 0x1e, 0x44, 0x4b, 0xfd, 0x4d, 0xc6, - 0xd0, 0x78, 0xc0, 0x2b, 0x85, 0x02, 0xc9, 0xa0, 0x0a, 0x9b, 0xfc, 0x64, 0x75, 0xd7, 0x83, 0x82, - 0x5f, 0x14, 0xb8, 0x9d, 0x6b, 0xd2, 0xdb, 0x09, 0x9e, 0xfe, 0x97, 0x02, 0xe8, 0x53, 0xbb, 0x37, - 0x90, 0xe4, 0xca, 0xc3, 0xf3, 0x00, 0x9a, 0x54, 0x9e, 0x77, 0x5f, 0x31, 0x1e, 0xf3, 0x20, 0x65, - 0xe8, 0xd4, 0x6c, 0x03, 0x9b, 0x24, 0x7e, 0xa0, 0x88, 0x55, 0x3a, 0x4c, 0xf5, 0xf2, 0x12, 0x59, - 0x48, 0x95, 0xc8, 0x23, 0x68, 0xb4, 0xad, 0x3d, 0x0e, 0x24, 0x85, 0x2f, 0x35, 0xa6, 0x9a, 0xc1, - 0x0f, 0x7f, 0xab, 0x89, 0x95, 0xfe, 0x0d, 0xdc, 0xcc, 0xb8, 0x3b, 0x67, 0x5b, 0x5d, 0x89, 0xad, - 0x90, 0xa2, 0xdf, 0x14, 0xfd, 0x35, 0xe6, 0x19, 0x49, 0x31, 0x7d, 0xcc, 0xea, 0x9b, 0xb6, 0x25, - 0x6c, 0x31, 0x2b, 0xa2, 0xfa, 0x4e, 0xa2, 0x93, 0x92, 0x41, 0xa7, 0x16, 0x2c, 0x79, 0x59, 0x5c, - 0xf1, 0x66, 0xc4, 0x95, 0x6f, 0x79, 0x29, 0x64, 0xf4, 0x5e, 0xeb, 0x9d, 0x35, 0xc3, 0x8b, 0x63, - 0x22, 0xa8, 0xff, 0xad, 0xc0, 0xad, 0xb6, 0xfb, 0x95, 0x1d, 0x62, 0x6a, 0x53, 0xd7, 0x8b, 0xb1, - 0x74, 0x3a, 0x62, 0x16, 0xb7, 0xb8, 0x49, 0x8a, 0xd5, 0x12, 0x29, 0xf6, 0x3e, 0xac, 0x73, 0x5d, - 0x72, 0x9e, 0xd6, 0x59, 0x9e, 0x66, 0x19, 0xa5, 0xe9, 0xf6, 0x9d, 0x02, 0x1b, 0x39, 0x66, 0xff, - 0xaf, 0x49, 0xe3, 0xc2, 0xad, 0x78, 0x60, 0x73, 0x9c, 0x59, 0xca, 0xf4, 0x7a, 0x0f, 0xb2, 0x9f, - 0xa5, 0x2e, 0x24, 0x29, 0x7c, 0x3b, 0x18, 0xb5, 0xf7, 0x66, 0x11, 0xf8, 0x07, 0x21, 0xb4, 0x0f, - 0x4b, 0xbd, 0xc9, 0x57, 0x02, 0xb4, 0x21, 0xe2, 0x96, 0xfc, 0xfc, 0xa2, 0x6d, 0xe6, 0x91, 0x89, - 0x8f, 0x1e, 0x42, 0xe3, 0xcb, 0x68, 0x1c, 0x44, 0x37, 0x85, 0x90, 0x3c, 0x20, 0x6a, 0xeb, 0xd1, - 0xce, 0xc9, 0x27, 0xa5, 0x87, 0xd0, 0x18, 0x45, 0x8d, 0x3f, 0xde, 0x24, 0x8f, 0x02, 0x79, 0x9b, - 0x9e, 0xc0, 0x4a, 0x5f, 0x7e, 0xdd, 0xa3, 0xdb, 0xa9, 0xb1, 0x3b, 0xea, 0x43, 0x9a, 0x9a, 0xcf, - 0x20, 0x3e, 0xfa, 0x08, 0x96, 0x89, 0xf4, 0x36, 0x47, 0x91, 0x57, 0xa9, 0x07, 0x7b, 0x9e, 0xfa, - 0x2f, 0xe0, 0x76, 0x3f, 0x7f, 0xbe, 0x47, 0xf7, 0xca, 0xe7, 0x7f, 0x7a, 0xa0, 0x3e, 0x4d, 0x84, - 0xf8, 0xe8, 0x18, 0x50, 0x98, 0x79, 0x1b, 0xa0, 0x2d, 0xb1, 0x33, 0xf7, 0xd9, 0x90, 0x67, 0xe8, - 0x73, 0x50, 0xfb, 0x05, 0x73, 0x31, 0xd2, 0x13, 0x1f, 0xcb, 0x72, 0x07, 0xe7, 0xfc, 0x23, 0x51, - 0x3f, 0x33, 0x9b, 0xc4, 0x96, 0xe5, 0x8e, 0x56, 0xda, 0xbb, 0x25, 0x5c, 0xe2, 0xa3, 0x2e, 0xdc, - 0xec, 0x67, 0x5b, 0x36, 0xca, 0xdf, 0x15, 0xdf, 0xec, 0xdd, 0x32, 0x36, 0xf1, 0xd1, 0x33, 0x58, - 0x1b, 0x24, 0x3b, 0x11, 0x8a, 0xbe, 0x0f, 0x66, 0x1b, 0xb2, 0xa6, 0x15, 0xb1, 0x62, 0x97, 0x53, - 0xd0, 0x2e, 0xbb, 0x9c, 0xed, 0x36, 0xb2, 0xcb, 0x79, 0x3d, 0xa1, 0x03, 0xeb, 0x76, 0x1a, 0xf3, - 0xd0, 0x9d, 0x08, 0xa6, 0x72, 0x40, 0x5c, 0xdb, 0x2a, 0x66, 0xf2, 0xf3, 0xfa, 0x69, 0x3c, 0x89, - 0xcf, 0xcb, 0x83, 0x36, 0x6d, 0xab, 0x98, 0x49, 0xfc, 0x27, 0x6b, 0x9f, 0xaf, 0xec, 0xf0, 0x2f, - 0xc6, 0x8f, 0xd8, 0xef, 0xcb, 0x05, 0xf6, 0x39, 0xf8, 0xe1, 0x7f, 0x01, 0x00, 0x00, 0xff, 0xff, - 0x22, 0xaf, 0xfb, 0xc7, 0x4d, 0x16, 0x00, 0x00, +func init() { proto.RegisterFile("group/group.proto", fileDescriptor_group_5b7911b898fdd5c5) } + +var fileDescriptor_group_5b7911b898fdd5c5 = []byte{ + // 1235 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x58, 0x49, 0x6f, 0x1c, 0x45, + 0x14, 0x56, 0x79, 0x3c, 0x4e, 0xe6, 0xd9, 0xe3, 0xa5, 0xbc, 0x4d, 0x3a, 0xc6, 0x9a, 0x14, 0x12, + 0xb2, 0x10, 0xb2, 0x85, 0x41, 0xb9, 0x24, 0x02, 0xbc, 0x26, 0x93, 0xc4, 0xb6, 0xdc, 0x31, 0x17, + 0x2e, 0x66, 0xe2, 0x2e, 0xb7, 0x1a, 0xf7, 0x74, 0xb7, 0xbb, 0x7a, 0x62, 0xe0, 0x02, 0x08, 0xc1, + 0x05, 0x21, 0x71, 0xe2, 0xce, 0x85, 0x33, 0x07, 0x4e, 0x5c, 0xf8, 0x1d, 0xfc, 0x04, 0xfe, 0x05, + 0xaa, 0xa5, 0x7b, 0xaa, 0x57, 0x8f, 0x66, 0x24, 0x72, 0x19, 0xe9, 0x2d, 0xd5, 0xef, 0xbd, 0xaf, + 0xde, 0x56, 0x03, 0x0b, 0x76, 0xe8, 0xf7, 0x83, 0x2d, 0xf1, 0xbb, 0x19, 0x84, 0x7e, 0xe4, 0xe3, + 0xba, 0x20, 0x8c, 0x07, 0x27, 0x01, 0xf5, 0xce, 0x3b, 0x47, 0x5b, 0xc1, 0x95, 0xbd, 0x25, 0x24, + 0x5b, 0xcc, 0xba, 0x3a, 0xbf, 0x61, 0x5b, 0x37, 0x4c, 0x6a, 0x92, 0x8f, 0x00, 0xf6, 0xfc, 0x5e, + 0xcf, 0xf7, 0x4c, 0xca, 0x02, 0xdc, 0x82, 0x3b, 0x07, 0x61, 0xb8, 0xe7, 0x5b, 0xb4, 0x85, 0xda, + 0x68, 0xa3, 0x6e, 0xc6, 0x24, 0x5e, 0x81, 0xa9, 0x83, 0x30, 0x3c, 0x62, 0x76, 0x6b, 0xa2, 0x8d, + 0x36, 0x1a, 0xa6, 0xa2, 0xc8, 0x33, 0xc0, 0x4f, 0xb8, 0xad, 0x1d, 0xcb, 0x3a, 0xa2, 0xbd, 0x57, + 0x34, 0xec, 0x78, 0x97, 0x3e, 0xd7, 0xfe, 0x94, 0xd1, 0xb0, 0xb3, 0x2f, 0x3e, 0xd3, 0x30, 0x15, + 0x85, 0xd7, 0xa0, 0x61, 0xfa, 0x2e, 0x7d, 0x41, 0x5f, 0x53, 0x57, 0x7c, 0xa8, 0x6e, 0x0e, 0x18, + 0xe4, 0x5f, 0x04, 0xb3, 0x7b, 0x21, 0xed, 0x46, 0x54, 0x7c, 0xd2, 0xa4, 0xd7, 0x78, 0x07, 0x66, + 0x3b, 0x9e, 0x13, 0xc9, 0x4f, 0xbf, 0x70, 0x58, 0xd4, 0x42, 0xed, 0xda, 0xc6, 0xf4, 0xf6, 0xbd, + 0x4d, 0x19, 0x6e, 0xde, 0xb6, 0x99, 0x39, 0x80, 0x3f, 0x84, 0x86, 0xd0, 0xe2, 0x42, 0x61, 0x73, + 0x7a, 0x7b, 0x65, 0xd3, 0xe7, 0xc0, 0x38, 0xbd, 0x73, 0x66, 0x5d, 0x6d, 0x26, 0x52, 0x73, 0xa0, + 0x88, 0xdb, 0x30, 0x7d, 0x12, 0xd0, 0xb0, 0x1b, 0x39, 0xbe, 0xd7, 0xd9, 0x6f, 0xd5, 0x44, 0x18, + 0x3a, 0x0b, 0x1b, 0x70, 0xf7, 0x24, 0x50, 0x51, 0x4e, 0x0a, 0x71, 0x42, 0x8b, 0xd3, 0x37, 0x1e, + 0x0d, 0x95, 0xb8, 0xae, 0x4e, 0x0f, 0x58, 0xe4, 0x2b, 0x98, 0x4b, 0x85, 0x3a, 0x0a, 0xf8, 0xe9, + 0xd0, 0x6a, 0x43, 0x86, 0x46, 0x42, 0x98, 0x7f, 0x42, 0x23, 0x41, 0x33, 0x21, 0xa3, 0xd7, 0xdc, + 0x61, 0xa9, 0xb0, 0x9f, 0x80, 0xdc, 0x30, 0x75, 0x56, 0x16, 0x90, 0x89, 0x6a, 0x40, 0x6a, 0x69, + 0x40, 0xc8, 0xf7, 0x08, 0x16, 0x32, 0x46, 0x47, 0x8a, 0xf8, 0x31, 0x34, 0x93, 0x40, 0x84, 0xa7, + 0x35, 0x91, 0x0e, 0x65, 0x51, 0xa7, 0x95, 0xc9, 0x0f, 0x08, 0xe6, 0x5e, 0x2a, 0x2f, 0xe2, 0xc8, + 0x53, 0x18, 0xa2, 0x61, 0xd3, 0x43, 0x8f, 0x75, 0xa2, 0xe0, 0xf2, 0x2b, 0x53, 0x87, 0x1c, 0xc0, + 0x7c, 0xda, 0x0d, 0x16, 0xe0, 0xf7, 0xf5, 0x42, 0x54, 0x8e, 0x2c, 0xa8, 0x2c, 0x1f, 0x08, 0x4c, + 0x4d, 0x89, 0x7c, 0x0d, 0x46, 0x8c, 0xe9, 0x4e, 0x10, 0xb8, 0xce, 0x85, 0xf8, 0x3e, 0x8f, 0x94, + 0x07, 0xa6, 0xbb, 0x88, 0xaa, 0x5d, 0x2c, 0xb8, 0xcc, 0x75, 0x80, 0xc3, 0xd0, 0xef, 0xa5, 0xae, + 0x53, 0xe3, 0x90, 0x5f, 0x11, 0xdc, 0x2f, 0x35, 0x3e, 0xd2, 0xd5, 0x1e, 0xc0, 0x7c, 0x5c, 0xf6, + 0x7d, 0xca, 0x22, 0xed, 0x76, 0xef, 0xe5, 0xef, 0x43, 0x29, 0x99, 0xb9, 0x23, 0xe4, 0x6f, 0x04, + 0xcb, 0x67, 0x61, 0xd7, 0x63, 0x97, 0x34, 0x14, 0x42, 0x51, 0x75, 0x1c, 0x90, 0x16, 0xdc, 0x51, + 0x09, 0xad, 0xf0, 0x88, 0x49, 0xfc, 0x0e, 0xcc, 0x9e, 0xb8, 0x96, 0x5e, 0xb1, 0xd2, 0xb5, 0x0c, + 0x97, 0xeb, 0x1d, 0xd3, 0x1b, 0x5d, 0x4f, 0x02, 0x93, 0xe1, 0x66, 0xe1, 0x9d, 0xac, 0xae, 0x95, + 0x7a, 0xa6, 0x56, 0x9e, 0xc3, 0x4a, 0x51, 0x00, 0xa3, 0xe5, 0xc8, 0x8f, 0x08, 0x66, 0x9e, 0xf9, + 0x8e, 0x97, 0x74, 0xd4, 0x72, 0x14, 0xd6, 0x01, 0x4c, 0x7a, 0x7d, 0x44, 0x19, 0xeb, 0xda, 0x54, + 0x21, 0xa0, 0x71, 0xaa, 0xea, 0xfb, 0xf6, 0x88, 0xc9, 0x2e, 0x34, 0x35, 0x3f, 0x46, 0x0b, 0xe6, + 0x1f, 0x9e, 0x74, 0x99, 0x8c, 0xe3, 0x02, 0xdf, 0x63, 0x54, 0x75, 0x31, 0xdd, 0x0b, 0x54, 0x8d, + 0x7b, 0xb6, 0x6e, 0x35, 0x64, 0x6a, 0x39, 0x64, 0xb4, 0x62, 0x98, 0xcc, 0x16, 0x03, 0x97, 0x3f, + 0xed, 0x7a, 0x96, 0x4b, 0x2d, 0x9e, 0xd6, 0xf2, 0x3e, 0x35, 0x0e, 0x26, 0x30, 0x23, 0x29, 0x93, + 0xb2, 0xbe, 0x1b, 0xb5, 0xa6, 0x44, 0x45, 0xa4, 0x78, 0xe4, 0x14, 0xd6, 0xca, 0x43, 0x1b, 0x0d, + 0xae, 0x4b, 0x98, 0x39, 0xed, 0x3b, 0xd1, 0x10, 0x57, 0x3f, 0x5e, 0x73, 0xdf, 0x85, 0xa6, 0x66, + 0x67, 0x34, 0x5f, 0x7f, 0x43, 0xb0, 0x1c, 0xf7, 0x93, 0xc1, 0xf0, 0xae, 0xf6, 0x7a, 0xac, 0x26, + 0xcc, 0xfb, 0xd0, 0xa1, 0xe3, 0x46, 0x34, 0x14, 0x17, 0x5a, 0x37, 0x15, 0xc5, 0xed, 0x1d, 0xd3, + 0x2f, 0xa3, 0x97, 0xf4, 0x5a, 0xdc, 0x64, 0xdd, 0x8c, 0x49, 0xf2, 0x3b, 0x82, 0x95, 0x22, 0x1f, + 0x47, 0x6a, 0x77, 0x9f, 0x00, 0xf4, 0x06, 0x5b, 0x8d, 0x6c, 0x74, 0xed, 0x7c, 0xa3, 0x93, 0x76, + 0x0e, 0xfb, 0xae, 0x2b, 0x26, 0x85, 0x76, 0x86, 0xdb, 0xf4, 0x94, 0xa3, 0x32, 0x82, 0x98, 0x24, + 0xbf, 0xe4, 0x1c, 0x4d, 0x06, 0x7d, 0x65, 0xf9, 0x6b, 0x0e, 0x4d, 0x88, 0x0d, 0x40, 0x37, 0x37, + 0x5e, 0xf9, 0xff, 0x8c, 0x60, 0xb5, 0xd0, 0xa5, 0x37, 0x03, 0x1e, 0xf9, 0x03, 0x01, 0x7e, 0xee, + 0x5c, 0x5c, 0x69, 0x7a, 0xd5, 0xf0, 0xbc, 0x0b, 0xf3, 0x5c, 0x9f, 0x5a, 0x32, 0x64, 0x0d, 0xa4, + 0x1c, 0x9f, 0xbb, 0x6d, 0xd2, 0x2e, 0xf3, 0x3d, 0x05, 0x94, 0xa2, 0xb2, 0x30, 0xd5, 0xab, 0xcb, + 0x6c, 0x2a, 0x53, 0x66, 0x8f, 0xa0, 0xd1, 0xb1, 0xb6, 0x65, 0xbb, 0x28, 0xdd, 0xb0, 0x85, 0x69, + 0xd1, 0x64, 0xe4, 0x7a, 0xad, 0x28, 0xf2, 0x0d, 0x2c, 0xe6, 0xc2, 0x1d, 0x09, 0xfa, 0x87, 0xd0, + 0x4c, 0xbc, 0xd0, 0xd0, 0x9f, 0x57, 0xe5, 0x9d, 0xc8, 0xcc, 0xb4, 0x1a, 0xe9, 0x8b, 0xfa, 0xe6, + 0x23, 0x80, 0x5a, 0xc2, 0x8b, 0xb8, 0xbe, 0xd3, 0xcd, 0x15, 0xe5, 0x9a, 0x6b, 0x1b, 0xa6, 0xfd, + 0x7c, 0x6f, 0xf2, 0x87, 0xec, 0x4d, 0xdf, 0xca, 0x52, 0xc8, 0xd9, 0x1d, 0x6b, 0xdf, 0x1e, 0x62, + 0xf3, 0x1c, 0x28, 0x92, 0x3f, 0x11, 0x2c, 0x75, 0xbc, 0xd7, 0x4e, 0x44, 0xb9, 0x4f, 0x67, 0x7e, + 0xd2, 0x8f, 0x6f, 0xef, 0xba, 0xe5, 0x23, 0x69, 0x90, 0x62, 0x93, 0xa9, 0x14, 0x7b, 0x0f, 0x16, + 0xa4, 0x2d, 0x3d, 0x4f, 0xeb, 0x22, 0x4f, 0xf3, 0x82, 0xca, 0x74, 0xfb, 0x0e, 0xc1, 0x72, 0x81, + 0xdb, 0xff, 0x6b, 0xd2, 0x78, 0xb0, 0x94, 0x2c, 0x99, 0xae, 0x3b, 0x4c, 0x99, 0x8e, 0xb7, 0x98, + 0xff, 0xa4, 0x4d, 0x21, 0xcd, 0xe0, 0x9b, 0xe9, 0x51, 0xdb, 0x7f, 0xdd, 0x05, 0xf9, 0x90, 0xc7, + 0x8f, 0x61, 0xfa, 0x62, 0xf0, 0x5a, 0xc4, 0xcb, 0xf1, 0x2c, 0x4d, 0x3d, 0x96, 0x8d, 0x95, 0x22, + 0x36, 0x0b, 0xf0, 0x43, 0x68, 0x7c, 0x11, 0xaf, 0x5e, 0x78, 0x51, 0x29, 0xe9, 0x4b, 0xa1, 0xb1, + 0x94, 0x67, 0xca, 0x73, 0xd7, 0xf1, 0x5c, 0x4f, 0xce, 0xe9, 0x1b, 0x45, 0x72, 0x2e, 0x3d, 0xfe, + 0x77, 0xa1, 0x69, 0xeb, 0x6f, 0x3d, 0xbc, 0x1a, 0xbf, 0xd6, 0x33, 0xcf, 0x4e, 0xa3, 0x55, 0x2c, + 0x60, 0x01, 0xfe, 0x18, 0x66, 0x98, 0xf6, 0x44, 0xc2, 0x71, 0x6c, 0x99, 0xe7, 0x9b, 0xb1, 0x5a, + 0xc8, 0x67, 0x01, 0xfe, 0x1c, 0x56, 0xed, 0xe2, 0xf7, 0x09, 0x7e, 0x90, 0xb1, 0x9a, 0x7f, 0x3c, + 0x19, 0xe4, 0x36, 0x15, 0x16, 0xe0, 0x53, 0xc0, 0x51, 0x6e, 0x4f, 0xc7, 0x6b, 0xea, 0x64, 0xe1, + 0x1b, 0xc4, 0x78, 0xab, 0x42, 0xca, 0x02, 0x7c, 0x01, 0x2d, 0xbb, 0x64, 0x09, 0xc4, 0x24, 0xf5, + 0x97, 0x47, 0xe1, 0x02, 0x6c, 0xbc, 0x7d, 0xab, 0x8e, 0xf4, 0xdb, 0xce, 0x6d, 0x31, 0x89, 0xdf, + 0x85, 0x4b, 0x58, 0xe2, 0x77, 0xc9, 0xfa, 0x73, 0x06, 0x8b, 0x76, 0x7e, 0xb8, 0xe3, 0xe2, 0x53, + 0xc9, 0xed, 0xaf, 0x57, 0x89, 0x59, 0x80, 0x9f, 0xc2, 0xdc, 0x55, 0x7a, 0x66, 0xe1, 0xf8, 0x7f, + 0x9f, 0xfc, 0xe8, 0x36, 0x8c, 0x32, 0x51, 0x12, 0x72, 0x66, 0x08, 0xe8, 0x21, 0xe7, 0xe7, 0x92, + 0x1e, 0x72, 0xd1, 0xf4, 0x38, 0x86, 0x05, 0x27, 0xdb, 0x1d, 0xf1, 0xfd, 0xb8, 0xa1, 0x15, 0xb4, + 0x7b, 0x63, 0xad, 0x5c, 0x28, 0xbf, 0x67, 0x67, 0x3b, 0x4f, 0xf2, 0xbd, 0xa2, 0x26, 0x68, 0xac, + 0x95, 0x0b, 0x59, 0xb0, 0x3b, 0xf7, 0x59, 0x73, 0x53, 0xfe, 0x27, 0xf8, 0x48, 0xfc, 0xbe, 0x9a, + 0x12, 0x7f, 0xf8, 0x7d, 0xf0, 0x5f, 0x00, 0x00, 0x00, 0xff, 0xff, 0xac, 0x58, 0xf3, 0xe0, 0x2f, + 0x14, 0x00, 0x00, } diff --git a/pkg/proto/group/group.proto b/pkg/proto/group/group.proto index cf207d69a..c10ae01f9 100644 --- a/pkg/proto/group/group.proto +++ b/pkg/proto/group/group.proto @@ -10,33 +10,29 @@ message CommonResp{ message GroupAddMemberInfo{ string UserID = 1; - int32 Role = 2; + int32 RoleLevel = 2; } + message CreateGroupReq{ - repeated GroupAddMemberInfo InitMemberList = 1; // - string GroupName = 2; - string Introduction = 3; - string Notification = 4; - string FaceUrl = 5; - string Ext = 6; - string OperationID = 7; - string OpUserID = 8; //app manager or group owner - string FromUserID = 9; + repeated GroupAddMemberInfo InitMemberList = 1; + open_im_sdk.GroupInfo GroupInfo = 2; + string OperationID = 3; + string OpUserID = 4; //app manager or group owner + string OwnerUserID = 5; //owner } - message CreateGroupResp{ int32 ErrCode = 1; string ErrMsg = 2; open_im_sdk.GroupInfo GroupInfo = 3; } + message GetGroupsInfoReq{ repeated string GroupIDList = 1; string OperationID = 2; string OpUserID = 3; //No verification permission } - message GetGroupsInfoResp{ int32 ErrCode = 1; string ErrMsg = 2; @@ -49,44 +45,23 @@ message SetGroupInfoReq{ string OpUserID = 2; //app manager or group owner string OperationID = 3; } +message SetGroupInfoResp{ + CommonResp CommonResp = 1; +} message GetGroupApplicationListReq { string OpUserID = 1; //app manager or group owner(manager) string OperationID = 2; - string FromUserID = 3; //owner or manager (Received) -} - -message GetGroupApplicationList_Data_User { - string ID = 1; - string GroupID = 2; - string FromUserID = 3; - string ToUserID = 4; - int32 Flag = 5; - string RequestMsg = 6; - string HandledMsg = 7; - int64 AddTime = 8; - string FromUserNickname = 9; - string ToUserNickname = 10; - string FromUserFaceUrl = 11; - string ToUserFaceUrl = 12; - string HandledUser = 13; - int32 Type = 14; - int32 HandleStatus = 15; - int32 HandleResult = 16; + string FromUserID = 3; //owner or manager } - -message GetGroupApplicationListData { - int32 Count = 1; - repeated GetGroupApplicationList_Data_User User = 2; -} - message GetGroupApplicationListResp { int32 ErrCode = 1; string ErrMsg = 2; - GetGroupApplicationListData Data = 3; + repeated open_im_sdk.GroupRequest GroupRequestList = 3; } + message TransferGroupOwnerReq { string GroupID = 1; string OldOwnerUserID = 2; @@ -94,7 +69,9 @@ message TransferGroupOwnerReq { string OperationID = 4; string OpUserID = 5; //app manager or group owner } - +message TransferGroupOwnerResp{ + CommonResp CommonResp = 1; +} message JoinGroupReq{ string GroupID = 1; @@ -102,35 +79,33 @@ message JoinGroupReq{ string OpUserID = 3; string OperationID = 4; } +message JoinGroupResp{ + CommonResp CommonResp = 1; +} + message GroupApplicationResponseReq{ string OperationID = 1; string OpUserID = 2; string GroupID = 3; - string FromUserID = 4; //请求加群:请求者,邀请加群:邀请人 - string ToUserID = 5; //请求加群:0,邀请加群:被邀请人 - int64 AddTime = 6; - string HandledMsg = 7; - int32 HandleResult = 8; + string FromUserID = 4; // + string HandledMsg = 5; + int32 HandleResult = 6; } - - - - -message SetOwnerGroupNickNameReq{ - string GroupID = 1; - string Nickname = 2; - string OperationID = 3; - string FromUserID = 4; - string OpUserID = 5; //app manger or FromUserID +message GroupApplicationResponseResp{ + CommonResp CommonResp = 1; } + message QuitGroupReq{ string GroupID = 1; string OperationID = 2; string OpUserID = 3; } +message QuitGroupResp{ + CommonResp CommonResp = 1; +} @@ -150,7 +125,6 @@ message GetGroupMemberListResp { } - message GetGroupMembersInfoReq { string GroupID = 1; repeated string memberList = 2; @@ -189,8 +163,6 @@ message GetJoinedGroupListReq { string operationID = 2; string OpUserID = 3; //app manager or FromUserID } - - message GetJoinedGroupListResp{ int32 ErrCode = 1; string ErrMsg = 2; @@ -205,7 +177,6 @@ message InviteUserToGroupReq { repeated string InvitedUserIDList = 5; string OpUserID = 6; //group member or app manager } - message InviteUserToGroupResp { int32 ErrCode = 1; string ErrMsg = 2; @@ -218,7 +189,6 @@ message GetGroupAllMemberReq { string OpUserID = 2; //No verification permission string OperationID = 3; } - message GetGroupAllMemberResp { int32 ErrCode = 1; string ErrMsg = 2; @@ -229,20 +199,18 @@ message GetGroupAllMemberResp { service group{ rpc createGroup(CreateGroupReq) returns(CreateGroupResp); - rpc joinGroup(JoinGroupReq) returns(CommonResp); - rpc quitGroup(QuitGroupReq) returns(CommonResp); + rpc joinGroup(JoinGroupReq) returns(JoinGroupResp); + rpc quitGroup(QuitGroupReq) returns(QuitGroupResp); rpc getGroupsInfo(GetGroupsInfoReq) returns(GetGroupsInfoResp); - rpc setGroupInfo(SetGroupInfoReq) returns(CommonResp); + rpc setGroupInfo(SetGroupInfoReq) returns(SetGroupInfoResp); rpc getGroupApplicationList(GetGroupApplicationListReq) returns(GetGroupApplicationListResp); - rpc transferGroupOwner(TransferGroupOwnerReq) returns(CommonResp); - rpc groupApplicationResponse(GroupApplicationResponseReq) returns(CommonResp); - // rpc setOwnerGroupNickName(SetOwnerGroupNickNameReq) returns(CommonResp); + rpc transferGroupOwner(TransferGroupOwnerReq) returns(TransferGroupOwnerResp); + rpc groupApplicationResponse(GroupApplicationResponseReq) returns(GroupApplicationResponseResp); rpc getGroupMemberList(GetGroupMemberListReq) returns(GetGroupMemberListResp); rpc getGroupMembersInfo(GetGroupMembersInfoReq) returns(GetGroupMembersInfoResp); rpc kickGroupMember(KickGroupMemberReq) returns (KickGroupMemberResp); rpc getJoinedGroupList(GetJoinedGroupListReq) returns (GetJoinedGroupListResp); rpc inviteUserToGroup(InviteUserToGroupReq) returns (InviteUserToGroupResp); - rpc getGroupAllMember(GetGroupAllMemberReq) returns(GetGroupAllMemberResp); } diff --git a/pkg/proto/sdk_ws/ws.pb.go b/pkg/proto/sdk_ws/ws.pb.go index 979e03888..e4fa4ca6a 100644 --- a/pkg/proto/sdk_ws/ws.pb.go +++ b/pkg/proto/sdk_ws/ws.pb.go @@ -18,1054 +18,1474 @@ var _ = math.Inf // proto package needs to be updated. const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package -type PullMessageBySeqListResp struct { - ErrCode int32 `protobuf:"varint,1,opt,name=errCode" json:"errCode,omitempty"` - ErrMsg string `protobuf:"bytes,2,opt,name=errMsg" json:"errMsg,omitempty"` - MaxSeq int64 `protobuf:"varint,3,opt,name=maxSeq" json:"maxSeq,omitempty"` - MinSeq int64 `protobuf:"varint,4,opt,name=minSeq" json:"minSeq,omitempty"` - SingleUserMsg []*GatherFormat `protobuf:"bytes,5,rep,name=singleUserMsg" json:"singleUserMsg,omitempty"` - GroupUserMsg []*GatherFormat `protobuf:"bytes,6,rep,name=groupUserMsg" json:"groupUserMsg,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` +type GroupInfo struct { + GroupID string `protobuf:"bytes,1,opt,name=GroupID" json:"GroupID,omitempty"` + GroupName string `protobuf:"bytes,2,opt,name=GroupName" json:"GroupName,omitempty"` + Notification string `protobuf:"bytes,3,opt,name=Notification" json:"Notification,omitempty"` + Introduction string `protobuf:"bytes,4,opt,name=Introduction" json:"Introduction,omitempty"` + FaceUrl string `protobuf:"bytes,5,opt,name=FaceUrl" json:"FaceUrl,omitempty"` + OwnerUserID string `protobuf:"bytes,6,opt,name=OwnerUserID" json:"OwnerUserID,omitempty"` + CreateTime int64 `protobuf:"varint,7,opt,name=CreateTime" json:"CreateTime,omitempty"` + MemberCount uint32 `protobuf:"varint,8,opt,name=MemberCount" json:"MemberCount,omitempty"` + Ex string `protobuf:"bytes,9,opt,name=Ex" json:"Ex,omitempty"` + Status int32 `protobuf:"varint,10,opt,name=Status" json:"Status,omitempty"` + CreatorUserID string `protobuf:"bytes,11,opt,name=CreatorUserID" json:"CreatorUserID,omitempty"` + GroupType int32 `protobuf:"varint,12,opt,name=GroupType" json:"GroupType,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (m *PullMessageBySeqListResp) Reset() { *m = PullMessageBySeqListResp{} } -func (m *PullMessageBySeqListResp) String() string { return proto.CompactTextString(m) } -func (*PullMessageBySeqListResp) ProtoMessage() {} -func (*PullMessageBySeqListResp) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_1ed69884ac12b8b9, []int{0} +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_a1fbf2797043d7f3, []int{0} } -func (m *PullMessageBySeqListResp) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_PullMessageBySeqListResp.Unmarshal(m, b) +func (m *GroupInfo) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GroupInfo.Unmarshal(m, b) } -func (m *PullMessageBySeqListResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_PullMessageBySeqListResp.Marshal(b, m, deterministic) +func (m *GroupInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GroupInfo.Marshal(b, m, deterministic) } -func (dst *PullMessageBySeqListResp) XXX_Merge(src proto.Message) { - xxx_messageInfo_PullMessageBySeqListResp.Merge(dst, src) +func (dst *GroupInfo) XXX_Merge(src proto.Message) { + xxx_messageInfo_GroupInfo.Merge(dst, src) } -func (m *PullMessageBySeqListResp) XXX_Size() int { - return xxx_messageInfo_PullMessageBySeqListResp.Size(m) +func (m *GroupInfo) XXX_Size() int { + return xxx_messageInfo_GroupInfo.Size(m) } -func (m *PullMessageBySeqListResp) XXX_DiscardUnknown() { - xxx_messageInfo_PullMessageBySeqListResp.DiscardUnknown(m) +func (m *GroupInfo) XXX_DiscardUnknown() { + xxx_messageInfo_GroupInfo.DiscardUnknown(m) } -var xxx_messageInfo_PullMessageBySeqListResp proto.InternalMessageInfo +var xxx_messageInfo_GroupInfo proto.InternalMessageInfo -func (m *PullMessageBySeqListResp) GetErrCode() int32 { +func (m *GroupInfo) GetGroupID() string { if m != nil { - return m.ErrCode + return m.GroupID } - return 0 + return "" } -func (m *PullMessageBySeqListResp) GetErrMsg() string { +func (m *GroupInfo) GetGroupName() string { if m != nil { - return m.ErrMsg + return m.GroupName } return "" } -func (m *PullMessageBySeqListResp) GetMaxSeq() int64 { +func (m *GroupInfo) GetNotification() string { if m != nil { - return m.MaxSeq + return m.Notification } - return 0 + return "" } -func (m *PullMessageBySeqListResp) GetMinSeq() int64 { +func (m *GroupInfo) GetIntroduction() string { if m != nil { - return m.MinSeq + return m.Introduction } - return 0 + return "" } -func (m *PullMessageBySeqListResp) GetSingleUserMsg() []*GatherFormat { +func (m *GroupInfo) GetFaceUrl() string { if m != nil { - return m.SingleUserMsg + return m.FaceUrl } - return nil + return "" } -func (m *PullMessageBySeqListResp) GetGroupUserMsg() []*GatherFormat { +func (m *GroupInfo) GetOwnerUserID() string { if m != nil { - return m.GroupUserMsg + return m.OwnerUserID } - return nil + return "" } -type PullMessageBySeqListReq struct { - UserID string `protobuf:"bytes,1,opt,name=userID" json:"userID,omitempty"` - OperationID string `protobuf:"bytes,2,opt,name=operationID" json:"operationID,omitempty"` - SeqList []int64 `protobuf:"varint,3,rep,packed,name=seqList" json:"seqList,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` +func (m *GroupInfo) GetCreateTime() int64 { + if m != nil { + return m.CreateTime + } + return 0 } -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_1ed69884ac12b8b9, []int{1} -} -func (m *PullMessageBySeqListReq) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_PullMessageBySeqListReq.Unmarshal(m, b) -} -func (m *PullMessageBySeqListReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_PullMessageBySeqListReq.Marshal(b, m, deterministic) -} -func (dst *PullMessageBySeqListReq) XXX_Merge(src proto.Message) { - xxx_messageInfo_PullMessageBySeqListReq.Merge(dst, src) -} -func (m *PullMessageBySeqListReq) XXX_Size() int { - return xxx_messageInfo_PullMessageBySeqListReq.Size(m) -} -func (m *PullMessageBySeqListReq) XXX_DiscardUnknown() { - xxx_messageInfo_PullMessageBySeqListReq.DiscardUnknown(m) +func (m *GroupInfo) GetMemberCount() uint32 { + if m != nil { + return m.MemberCount + } + return 0 } -var xxx_messageInfo_PullMessageBySeqListReq proto.InternalMessageInfo - -func (m *PullMessageBySeqListReq) GetUserID() string { +func (m *GroupInfo) GetEx() string { if m != nil { - return m.UserID + return m.Ex } return "" } -func (m *PullMessageBySeqListReq) GetOperationID() string { +func (m *GroupInfo) GetStatus() int32 { if m != nil { - return m.OperationID + return m.Status + } + return 0 +} + +func (m *GroupInfo) GetCreatorUserID() string { + if m != nil { + return m.CreatorUserID } return "" } -func (m *PullMessageBySeqListReq) GetSeqList() []int64 { +func (m *GroupInfo) GetGroupType() int32 { if m != nil { - return m.SeqList + return m.GroupType } - return nil + return 0 } -type PullMessageReq struct { - UserID string `protobuf:"bytes,1,opt,name=userID" json:"userID,omitempty"` - SeqBegin int64 `protobuf:"varint,2,opt,name=seqBegin" json:"seqBegin,omitempty"` - SeqEnd int64 `protobuf:"varint,3,opt,name=seqEnd" json:"seqEnd,omitempty"` - OperationID string `protobuf:"bytes,4,opt,name=operationID" json:"operationID,omitempty"` +type GroupMemberFullInfo struct { + GroupID string `protobuf:"bytes,1,opt,name=GroupID" json:"GroupID,omitempty"` + UserID string `protobuf:"bytes,2,opt,name=UserID" json:"UserID,omitempty"` + RoleLevel int32 `protobuf:"varint,3,opt,name=roleLevel" json:"roleLevel,omitempty"` + JoinTime int64 `protobuf:"varint,4,opt,name=JoinTime" json:"JoinTime,omitempty"` + NickName string `protobuf:"bytes,5,opt,name=NickName" json:"NickName,omitempty"` + FaceUrl string `protobuf:"bytes,6,opt,name=FaceUrl" json:"FaceUrl,omitempty"` + FriendRemark string `protobuf:"bytes,7,opt,name=FriendRemark" json:"FriendRemark,omitempty"` + AppMangerLevel int32 `protobuf:"varint,8,opt,name=AppMangerLevel" json:"AppMangerLevel,omitempty"` + JoinSource int32 `protobuf:"varint,9,opt,name=JoinSource" json:"JoinSource,omitempty"` + OperatorUserID string `protobuf:"bytes,10,opt,name=OperatorUserID" json:"OperatorUserID,omitempty"` + Ex string `protobuf:"bytes,11,opt,name=Ex" json:"Ex,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` } -func (m *PullMessageReq) Reset() { *m = PullMessageReq{} } -func (m *PullMessageReq) String() string { return proto.CompactTextString(m) } -func (*PullMessageReq) ProtoMessage() {} -func (*PullMessageReq) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_1ed69884ac12b8b9, []int{2} +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_a1fbf2797043d7f3, []int{1} } -func (m *PullMessageReq) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_PullMessageReq.Unmarshal(m, b) +func (m *GroupMemberFullInfo) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GroupMemberFullInfo.Unmarshal(m, b) } -func (m *PullMessageReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_PullMessageReq.Marshal(b, m, deterministic) +func (m *GroupMemberFullInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GroupMemberFullInfo.Marshal(b, m, deterministic) } -func (dst *PullMessageReq) XXX_Merge(src proto.Message) { - xxx_messageInfo_PullMessageReq.Merge(dst, src) +func (dst *GroupMemberFullInfo) XXX_Merge(src proto.Message) { + xxx_messageInfo_GroupMemberFullInfo.Merge(dst, src) } -func (m *PullMessageReq) XXX_Size() int { - return xxx_messageInfo_PullMessageReq.Size(m) +func (m *GroupMemberFullInfo) XXX_Size() int { + return xxx_messageInfo_GroupMemberFullInfo.Size(m) } -func (m *PullMessageReq) XXX_DiscardUnknown() { - xxx_messageInfo_PullMessageReq.DiscardUnknown(m) +func (m *GroupMemberFullInfo) XXX_DiscardUnknown() { + xxx_messageInfo_GroupMemberFullInfo.DiscardUnknown(m) } -var xxx_messageInfo_PullMessageReq proto.InternalMessageInfo +var xxx_messageInfo_GroupMemberFullInfo proto.InternalMessageInfo -func (m *PullMessageReq) GetUserID() string { +func (m *GroupMemberFullInfo) GetGroupID() string { + if m != nil { + return m.GroupID + } + return "" +} + +func (m *GroupMemberFullInfo) GetUserID() string { if m != nil { return m.UserID } return "" } -func (m *PullMessageReq) GetSeqBegin() int64 { +func (m *GroupMemberFullInfo) GetRoleLevel() int32 { if m != nil { - return m.SeqBegin + return m.RoleLevel } return 0 } -func (m *PullMessageReq) GetSeqEnd() int64 { +func (m *GroupMemberFullInfo) GetJoinTime() int64 { if m != nil { - return m.SeqEnd + return m.JoinTime } return 0 } -func (m *PullMessageReq) GetOperationID() string { +func (m *GroupMemberFullInfo) GetNickName() string { if m != nil { - return m.OperationID + return m.NickName } return "" } -type PullMessageResp struct { - ErrCode int32 `protobuf:"varint,1,opt,name=errCode" json:"errCode,omitempty"` - ErrMsg string `protobuf:"bytes,2,opt,name=errMsg" json:"errMsg,omitempty"` - MaxSeq int64 `protobuf:"varint,3,opt,name=maxSeq" json:"maxSeq,omitempty"` - MinSeq int64 `protobuf:"varint,4,opt,name=minSeq" json:"minSeq,omitempty"` - SingleUserMsg []*GatherFormat `protobuf:"bytes,5,rep,name=singleUserMsg" json:"singleUserMsg,omitempty"` - GroupUserMsg []*GatherFormat `protobuf:"bytes,6,rep,name=groupUserMsg" json:"groupUserMsg,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *PullMessageResp) Reset() { *m = PullMessageResp{} } -func (m *PullMessageResp) String() string { return proto.CompactTextString(m) } -func (*PullMessageResp) ProtoMessage() {} -func (*PullMessageResp) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_1ed69884ac12b8b9, []int{3} -} -func (m *PullMessageResp) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_PullMessageResp.Unmarshal(m, b) -} -func (m *PullMessageResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_PullMessageResp.Marshal(b, m, deterministic) -} -func (dst *PullMessageResp) XXX_Merge(src proto.Message) { - xxx_messageInfo_PullMessageResp.Merge(dst, src) -} -func (m *PullMessageResp) XXX_Size() int { - return xxx_messageInfo_PullMessageResp.Size(m) -} -func (m *PullMessageResp) XXX_DiscardUnknown() { - xxx_messageInfo_PullMessageResp.DiscardUnknown(m) -} - -var xxx_messageInfo_PullMessageResp proto.InternalMessageInfo - -func (m *PullMessageResp) GetErrCode() int32 { +func (m *GroupMemberFullInfo) GetFaceUrl() string { if m != nil { - return m.ErrCode + return m.FaceUrl } - return 0 + return "" } -func (m *PullMessageResp) GetErrMsg() string { +func (m *GroupMemberFullInfo) GetFriendRemark() string { if m != nil { - return m.ErrMsg + return m.FriendRemark } return "" } -func (m *PullMessageResp) GetMaxSeq() int64 { +func (m *GroupMemberFullInfo) GetAppMangerLevel() int32 { if m != nil { - return m.MaxSeq + return m.AppMangerLevel } return 0 } -func (m *PullMessageResp) GetMinSeq() int64 { +func (m *GroupMemberFullInfo) GetJoinSource() int32 { if m != nil { - return m.MinSeq + return m.JoinSource } return 0 } -func (m *PullMessageResp) GetSingleUserMsg() []*GatherFormat { +func (m *GroupMemberFullInfo) GetOperatorUserID() string { if m != nil { - return m.SingleUserMsg + return m.OperatorUserID } - return nil + return "" } -func (m *PullMessageResp) GetGroupUserMsg() []*GatherFormat { +func (m *GroupMemberFullInfo) GetEx() string { if m != nil { - return m.GroupUserMsg + return m.Ex } - return nil + return "" } -type GetMaxAndMinSeqReq struct { +type PublicUserInfo struct { + UserID string `protobuf:"bytes,1,opt,name=UserID" json:"UserID,omitempty"` + Nickname string `protobuf:"bytes,2,opt,name=Nickname" json:"Nickname,omitempty"` + FaceUrl string `protobuf:"bytes,3,opt,name=FaceUrl" json:"FaceUrl,omitempty"` + Gender int32 `protobuf:"varint,4,opt,name=Gender" json:"Gender,omitempty"` + AppMangerLevel int32 `protobuf:"varint,5,opt,name=AppMangerLevel" json:"AppMangerLevel,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` } -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_1ed69884ac12b8b9, []int{4} +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_a1fbf2797043d7f3, []int{2} } -func (m *GetMaxAndMinSeqReq) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_GetMaxAndMinSeqReq.Unmarshal(m, b) +func (m *PublicUserInfo) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_PublicUserInfo.Unmarshal(m, b) } -func (m *GetMaxAndMinSeqReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_GetMaxAndMinSeqReq.Marshal(b, m, deterministic) +func (m *PublicUserInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_PublicUserInfo.Marshal(b, m, deterministic) } -func (dst *GetMaxAndMinSeqReq) XXX_Merge(src proto.Message) { - xxx_messageInfo_GetMaxAndMinSeqReq.Merge(dst, src) +func (dst *PublicUserInfo) XXX_Merge(src proto.Message) { + xxx_messageInfo_PublicUserInfo.Merge(dst, src) } -func (m *GetMaxAndMinSeqReq) XXX_Size() int { - return xxx_messageInfo_GetMaxAndMinSeqReq.Size(m) +func (m *PublicUserInfo) XXX_Size() int { + return xxx_messageInfo_PublicUserInfo.Size(m) } -func (m *GetMaxAndMinSeqReq) XXX_DiscardUnknown() { - xxx_messageInfo_GetMaxAndMinSeqReq.DiscardUnknown(m) +func (m *PublicUserInfo) XXX_DiscardUnknown() { + xxx_messageInfo_PublicUserInfo.DiscardUnknown(m) } -var xxx_messageInfo_GetMaxAndMinSeqReq proto.InternalMessageInfo +var xxx_messageInfo_PublicUserInfo proto.InternalMessageInfo -type GetMaxAndMinSeqResp struct { - MaxSeq int64 `protobuf:"varint,1,opt,name=maxSeq" json:"maxSeq,omitempty"` - MinSeq int64 `protobuf:"varint,2,opt,name=minSeq" json:"minSeq,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` +func (m *PublicUserInfo) GetUserID() string { + if m != nil { + return m.UserID + } + return "" } -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_1ed69884ac12b8b9, []int{5} -} -func (m *GetMaxAndMinSeqResp) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_GetMaxAndMinSeqResp.Unmarshal(m, b) -} -func (m *GetMaxAndMinSeqResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_GetMaxAndMinSeqResp.Marshal(b, m, deterministic) -} -func (dst *GetMaxAndMinSeqResp) XXX_Merge(src proto.Message) { - xxx_messageInfo_GetMaxAndMinSeqResp.Merge(dst, src) -} -func (m *GetMaxAndMinSeqResp) XXX_Size() int { - return xxx_messageInfo_GetMaxAndMinSeqResp.Size(m) -} -func (m *GetMaxAndMinSeqResp) XXX_DiscardUnknown() { - xxx_messageInfo_GetMaxAndMinSeqResp.DiscardUnknown(m) +func (m *PublicUserInfo) GetNickname() string { + if m != nil { + return m.Nickname + } + return "" } -var xxx_messageInfo_GetMaxAndMinSeqResp proto.InternalMessageInfo +func (m *PublicUserInfo) GetFaceUrl() string { + if m != nil { + return m.FaceUrl + } + return "" +} -func (m *GetMaxAndMinSeqResp) GetMaxSeq() int64 { +func (m *PublicUserInfo) GetGender() int32 { if m != nil { - return m.MaxSeq + return m.Gender } return 0 } -func (m *GetMaxAndMinSeqResp) GetMinSeq() int64 { +func (m *PublicUserInfo) GetAppMangerLevel() int32 { if m != nil { - return m.MinSeq + return m.AppMangerLevel } return 0 } -type GatherFormat struct { - // @inject_tag: json:"id" - Id string `protobuf:"bytes,1,opt,name=id" json:"id"` - // @inject_tag: json:"list" - List []*MsgData `protobuf:"bytes,2,rep,name=list" json:"list"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` +type UserInfo struct { + UserID string `protobuf:"bytes,1,opt,name=UserID" json:"UserID,omitempty"` + Nickname string `protobuf:"bytes,2,opt,name=Nickname" json:"Nickname,omitempty"` + FaceUrl string `protobuf:"bytes,3,opt,name=FaceUrl" json:"FaceUrl,omitempty"` + Gender int32 `protobuf:"varint,4,opt,name=Gender" json:"Gender,omitempty"` + PhoneNumber string `protobuf:"bytes,5,opt,name=PhoneNumber" json:"PhoneNumber,omitempty"` + Birth string `protobuf:"bytes,6,opt,name=Birth" json:"Birth,omitempty"` + Email string `protobuf:"bytes,7,opt,name=Email" json:"Email,omitempty"` + Ex string `protobuf:"bytes,8,opt,name=Ex" json:"Ex,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (m *GatherFormat) Reset() { *m = GatherFormat{} } -func (m *GatherFormat) String() string { return proto.CompactTextString(m) } -func (*GatherFormat) ProtoMessage() {} -func (*GatherFormat) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_1ed69884ac12b8b9, []int{6} +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_a1fbf2797043d7f3, []int{3} } -func (m *GatherFormat) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_GatherFormat.Unmarshal(m, b) +func (m *UserInfo) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_UserInfo.Unmarshal(m, b) } -func (m *GatherFormat) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_GatherFormat.Marshal(b, m, deterministic) +func (m *UserInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_UserInfo.Marshal(b, m, deterministic) } -func (dst *GatherFormat) XXX_Merge(src proto.Message) { - xxx_messageInfo_GatherFormat.Merge(dst, src) +func (dst *UserInfo) XXX_Merge(src proto.Message) { + xxx_messageInfo_UserInfo.Merge(dst, src) } -func (m *GatherFormat) XXX_Size() int { - return xxx_messageInfo_GatherFormat.Size(m) +func (m *UserInfo) XXX_Size() int { + return xxx_messageInfo_UserInfo.Size(m) } -func (m *GatherFormat) XXX_DiscardUnknown() { - xxx_messageInfo_GatherFormat.DiscardUnknown(m) +func (m *UserInfo) XXX_DiscardUnknown() { + xxx_messageInfo_UserInfo.DiscardUnknown(m) } -var xxx_messageInfo_GatherFormat proto.InternalMessageInfo +var xxx_messageInfo_UserInfo proto.InternalMessageInfo -func (m *GatherFormat) GetId() string { +func (m *UserInfo) GetUserID() string { if m != nil { - return m.Id + return m.UserID } return "" } -func (m *GatherFormat) GetList() []*MsgData { +func (m *UserInfo) GetNickname() string { if m != nil { - return m.List + return m.Nickname } - return nil + return "" } -type UserSendMsgResp struct { - ServerMsgID string `protobuf:"bytes,1,opt,name=ServerMsgID" json:"ServerMsgID,omitempty"` - ClientMsgID string `protobuf:"bytes,2,opt,name=ClientMsgID" json:"ClientMsgID,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 *UserInfo) GetFaceUrl() string { + if m != nil { + return m.FaceUrl + } + return "" } -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_1ed69884ac12b8b9, []int{7} -} -func (m *UserSendMsgResp) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_UserSendMsgResp.Unmarshal(m, b) -} -func (m *UserSendMsgResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_UserSendMsgResp.Marshal(b, m, deterministic) -} -func (dst *UserSendMsgResp) XXX_Merge(src proto.Message) { - xxx_messageInfo_UserSendMsgResp.Merge(dst, src) -} -func (m *UserSendMsgResp) XXX_Size() int { - return xxx_messageInfo_UserSendMsgResp.Size(m) -} -func (m *UserSendMsgResp) XXX_DiscardUnknown() { - xxx_messageInfo_UserSendMsgResp.DiscardUnknown(m) +func (m *UserInfo) GetGender() int32 { + if m != nil { + return m.Gender + } + return 0 } -var xxx_messageInfo_UserSendMsgResp proto.InternalMessageInfo +func (m *UserInfo) GetPhoneNumber() string { + if m != nil { + return m.PhoneNumber + } + return "" +} -func (m *UserSendMsgResp) GetServerMsgID() string { +func (m *UserInfo) GetBirth() string { if m != nil { - return m.ServerMsgID + return m.Birth } return "" } -func (m *UserSendMsgResp) GetClientMsgID() string { +func (m *UserInfo) GetEmail() string { if m != nil { - return m.ClientMsgID + return m.Email } return "" } -func (m *UserSendMsgResp) GetSendTime() int64 { +func (m *UserInfo) GetEx() string { if m != nil { - return m.SendTime + return m.Ex } - return 0 + return "" } -type MsgData struct { - SendID string `protobuf:"bytes,1,opt,name=sendID" json:"sendID,omitempty"` - RecvID string `protobuf:"bytes,2,opt,name=recvID" json:"recvID,omitempty"` - GroupID string `protobuf:"bytes,3,opt,name=groupID" json:"groupID,omitempty"` - ClientMsgID string `protobuf:"bytes,4,opt,name=clientMsgID" json:"clientMsgID,omitempty"` - ServerMsgID string `protobuf:"bytes,5,opt,name=serverMsgID" json:"serverMsgID,omitempty"` - SenderPlatformID int32 `protobuf:"varint,6,opt,name=senderPlatformID" json:"senderPlatformID,omitempty"` - SenderNickName string `protobuf:"bytes,7,opt,name=senderNickName" json:"senderNickName,omitempty"` - SenderFaceURL string `protobuf:"bytes,8,opt,name=senderFaceURL" json:"senderFaceURL,omitempty"` - SessionType int32 `protobuf:"varint,9,opt,name=sessionType" json:"sessionType,omitempty"` - MsgFrom int32 `protobuf:"varint,10,opt,name=msgFrom" json:"msgFrom,omitempty"` - ContentType int32 `protobuf:"varint,11,opt,name=contentType" json:"contentType,omitempty"` - Content []byte `protobuf:"bytes,12,opt,name=content,proto3" json:"content,omitempty"` - ForceList []string `protobuf:"bytes,13,rep,name=forceList" json:"forceList,omitempty"` - Seq int64 `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"` - Options map[string]bool `protobuf:"bytes,17,rep,name=Options" json:"Options,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` - OfflinePushInfo *OfflinePushInfo `protobuf:"bytes,18,opt,name=offlinePushInfo" json:"offlinePushInfo,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` +type FriendInfo struct { + OwnerUserID string `protobuf:"bytes,1,opt,name=OwnerUserID" json:"OwnerUserID,omitempty"` + Remark string `protobuf:"bytes,2,opt,name=Remark" json:"Remark,omitempty"` + CreateTime int64 `protobuf:"varint,3,opt,name=CreateTime" json:"CreateTime,omitempty"` + FriendUser *UserInfo `protobuf:"bytes,4,opt,name=FriendUser" json:"FriendUser,omitempty"` + AddSource int32 `protobuf:"varint,5,opt,name=AddSource" json:"AddSource,omitempty"` + OperatorUserID string `protobuf:"bytes,6,opt,name=OperatorUserID" json:"OperatorUserID,omitempty"` + Ex string `protobuf:"bytes,7,opt,name=Ex" json:"Ex,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -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_1ed69884ac12b8b9, []int{8} +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_a1fbf2797043d7f3, []int{4} } -func (m *MsgData) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_MsgData.Unmarshal(m, b) +func (m *FriendInfo) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_FriendInfo.Unmarshal(m, b) } -func (m *MsgData) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_MsgData.Marshal(b, m, deterministic) +func (m *FriendInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_FriendInfo.Marshal(b, m, deterministic) } -func (dst *MsgData) XXX_Merge(src proto.Message) { - xxx_messageInfo_MsgData.Merge(dst, src) +func (dst *FriendInfo) XXX_Merge(src proto.Message) { + xxx_messageInfo_FriendInfo.Merge(dst, src) } -func (m *MsgData) XXX_Size() int { - return xxx_messageInfo_MsgData.Size(m) +func (m *FriendInfo) XXX_Size() int { + return xxx_messageInfo_FriendInfo.Size(m) } -func (m *MsgData) XXX_DiscardUnknown() { - xxx_messageInfo_MsgData.DiscardUnknown(m) +func (m *FriendInfo) XXX_DiscardUnknown() { + xxx_messageInfo_FriendInfo.DiscardUnknown(m) } -var xxx_messageInfo_MsgData proto.InternalMessageInfo +var xxx_messageInfo_FriendInfo proto.InternalMessageInfo -func (m *MsgData) GetSendID() string { +func (m *FriendInfo) GetOwnerUserID() string { if m != nil { - return m.SendID + return m.OwnerUserID } return "" } -func (m *MsgData) GetRecvID() string { +func (m *FriendInfo) GetRemark() string { if m != nil { - return m.RecvID + return m.Remark } return "" } -func (m *MsgData) GetGroupID() string { +func (m *FriendInfo) GetCreateTime() int64 { if m != nil { - return m.GroupID + return m.CreateTime } - return "" + return 0 } -func (m *MsgData) GetClientMsgID() string { +func (m *FriendInfo) GetFriendUser() *UserInfo { if m != nil { - return m.ClientMsgID + return m.FriendUser } - return "" + return nil } -func (m *MsgData) GetServerMsgID() string { +func (m *FriendInfo) GetAddSource() int32 { if m != nil { - return m.ServerMsgID + return m.AddSource } - return "" + return 0 } -func (m *MsgData) GetSenderPlatformID() int32 { +func (m *FriendInfo) GetOperatorUserID() string { if m != nil { - return m.SenderPlatformID + return m.OperatorUserID } - return 0 + return "" } -func (m *MsgData) GetSenderNickName() string { +func (m *FriendInfo) GetEx() string { if m != nil { - return m.SenderNickName + return m.Ex } return "" } -func (m *MsgData) GetSenderFaceURL() string { +type BlackInfo struct { + OwnerUserID string `protobuf:"bytes,1,opt,name=OwnerUserID" json:"OwnerUserID,omitempty"` + CreateTime int64 `protobuf:"varint,2,opt,name=CreateTime" json:"CreateTime,omitempty"` + BlackUserInfo *PublicUserInfo `protobuf:"bytes,4,opt,name=BlackUserInfo" json:"BlackUserInfo,omitempty"` + AddSource int32 `protobuf:"varint,5,opt,name=AddSource" json:"AddSource,omitempty"` + OperatorUserID string `protobuf:"bytes,6,opt,name=OperatorUserID" json:"OperatorUserID,omitempty"` + Ex string `protobuf:"bytes,7,opt,name=Ex" json:"Ex,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +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_a1fbf2797043d7f3, []int{5} +} +func (m *BlackInfo) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_BlackInfo.Unmarshal(m, b) +} +func (m *BlackInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_BlackInfo.Marshal(b, m, deterministic) +} +func (dst *BlackInfo) XXX_Merge(src proto.Message) { + xxx_messageInfo_BlackInfo.Merge(dst, src) +} +func (m *BlackInfo) XXX_Size() int { + return xxx_messageInfo_BlackInfo.Size(m) +} +func (m *BlackInfo) XXX_DiscardUnknown() { + xxx_messageInfo_BlackInfo.DiscardUnknown(m) +} + +var xxx_messageInfo_BlackInfo proto.InternalMessageInfo + +func (m *BlackInfo) GetOwnerUserID() string { if m != nil { - return m.SenderFaceURL + return m.OwnerUserID } return "" } -func (m *MsgData) GetSessionType() int32 { +func (m *BlackInfo) GetCreateTime() int64 { if m != nil { - return m.SessionType + return m.CreateTime } return 0 } -func (m *MsgData) GetMsgFrom() int32 { +func (m *BlackInfo) GetBlackUserInfo() *PublicUserInfo { if m != nil { - return m.MsgFrom + return m.BlackUserInfo } - return 0 + return nil } -func (m *MsgData) GetContentType() int32 { +func (m *BlackInfo) GetAddSource() int32 { if m != nil { - return m.ContentType + return m.AddSource } return 0 } -func (m *MsgData) GetContent() []byte { +func (m *BlackInfo) GetOperatorUserID() string { if m != nil { - return m.Content + return m.OperatorUserID } - return nil + return "" } -func (m *MsgData) GetForceList() []string { +func (m *BlackInfo) GetEx() string { if m != nil { - return m.ForceList + return m.Ex } - return nil + return "" } -func (m *MsgData) GetSeq() int64 { +type GroupRequest struct { + UserID string `protobuf:"bytes,1,opt,name=UserID" json:"UserID,omitempty"` + GroupID string `protobuf:"bytes,2,opt,name=GroupID" json:"GroupID,omitempty"` + HandleResult string `protobuf:"bytes,3,opt,name=HandleResult" json:"HandleResult,omitempty"` + ReqMsg string `protobuf:"bytes,4,opt,name=ReqMsg" json:"ReqMsg,omitempty"` + HandleMsg string `protobuf:"bytes,5,opt,name=HandleMsg" json:"HandleMsg,omitempty"` + ReqTime int64 `protobuf:"varint,6,opt,name=ReqTime" json:"ReqTime,omitempty"` + HandleUserID string `protobuf:"bytes,7,opt,name=HandleUserID" json:"HandleUserID,omitempty"` + HandleTime int64 `protobuf:"varint,8,opt,name=HandleTime" json:"HandleTime,omitempty"` + Ex string `protobuf:"bytes,9,opt,name=Ex" json:"Ex,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +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_a1fbf2797043d7f3, []int{6} +} +func (m *GroupRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GroupRequest.Unmarshal(m, b) +} +func (m *GroupRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GroupRequest.Marshal(b, m, deterministic) +} +func (dst *GroupRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_GroupRequest.Merge(dst, src) +} +func (m *GroupRequest) XXX_Size() int { + return xxx_messageInfo_GroupRequest.Size(m) +} +func (m *GroupRequest) XXX_DiscardUnknown() { + xxx_messageInfo_GroupRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_GroupRequest proto.InternalMessageInfo + +func (m *GroupRequest) GetUserID() string { if m != nil { - return m.Seq + return m.UserID } - return 0 + return "" } -func (m *MsgData) GetSendTime() int64 { +func (m *GroupRequest) GetGroupID() string { if m != nil { - return m.SendTime + return m.GroupID } - return 0 + return "" } -func (m *MsgData) GetCreateTime() int64 { +func (m *GroupRequest) GetHandleResult() string { if m != nil { - return m.CreateTime + return m.HandleResult + } + return "" +} + +func (m *GroupRequest) GetReqMsg() string { + if m != nil { + return m.ReqMsg + } + return "" +} + +func (m *GroupRequest) GetHandleMsg() string { + if m != nil { + return m.HandleMsg + } + return "" +} + +func (m *GroupRequest) GetReqTime() int64 { + if m != nil { + return m.ReqTime } return 0 } -func (m *MsgData) GetOptions() map[string]bool { +func (m *GroupRequest) GetHandleUserID() string { if m != nil { - return m.Options + return m.HandleUserID } - return nil + return "" } -func (m *MsgData) GetOfflinePushInfo() *OfflinePushInfo { +func (m *GroupRequest) GetHandleTime() int64 { if m != nil { - return m.OfflinePushInfo + return m.HandleTime } - return nil + return 0 } -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"` - Ext string `protobuf:"bytes,3,opt,name=Ext" json:"Ext,omitempty"` - IOSPushSound string `protobuf:"bytes,4,opt,name=iOSPushSound" json:"iOSPushSound,omitempty"` - IOSBadgeCount bool `protobuf:"varint,5,opt,name=iOSBadgeCount" json:"iOSBadgeCount,omitempty"` +func (m *GroupRequest) GetEx() string { + if m != nil { + return m.Ex + } + return "" +} + +type FriendRequest struct { + FromUserID string `protobuf:"bytes,1,opt,name=FromUserID" json:"FromUserID,omitempty"` + ToUserID string `protobuf:"bytes,2,opt,name=ToUserID" json:"ToUserID,omitempty"` + HandleResult int32 `protobuf:"varint,3,opt,name=HandleResult" json:"HandleResult,omitempty"` + ReqMsg string `protobuf:"bytes,4,opt,name=ReqMsg" json:"ReqMsg,omitempty"` + CreateTime int64 `protobuf:"varint,5,opt,name=CreateTime" json:"CreateTime,omitempty"` + HandlerUserID string `protobuf:"bytes,6,opt,name=HandlerUserID" json:"HandlerUserID,omitempty"` + HandleMsg string `protobuf:"bytes,7,opt,name=HandleMsg" json:"HandleMsg,omitempty"` + HandleTime int64 `protobuf:"varint,8,opt,name=HandleTime" json:"HandleTime,omitempty"` + Ex string `protobuf:"bytes,9,opt,name=Ex" json:"Ex,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` } -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_1ed69884ac12b8b9, []int{9} +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_a1fbf2797043d7f3, []int{7} } -func (m *OfflinePushInfo) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_OfflinePushInfo.Unmarshal(m, b) +func (m *FriendRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_FriendRequest.Unmarshal(m, b) } -func (m *OfflinePushInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_OfflinePushInfo.Marshal(b, m, deterministic) +func (m *FriendRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_FriendRequest.Marshal(b, m, deterministic) } -func (dst *OfflinePushInfo) XXX_Merge(src proto.Message) { - xxx_messageInfo_OfflinePushInfo.Merge(dst, src) +func (dst *FriendRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_FriendRequest.Merge(dst, src) } -func (m *OfflinePushInfo) XXX_Size() int { - return xxx_messageInfo_OfflinePushInfo.Size(m) +func (m *FriendRequest) XXX_Size() int { + return xxx_messageInfo_FriendRequest.Size(m) } -func (m *OfflinePushInfo) XXX_DiscardUnknown() { - xxx_messageInfo_OfflinePushInfo.DiscardUnknown(m) +func (m *FriendRequest) XXX_DiscardUnknown() { + xxx_messageInfo_FriendRequest.DiscardUnknown(m) } -var xxx_messageInfo_OfflinePushInfo proto.InternalMessageInfo +var xxx_messageInfo_FriendRequest proto.InternalMessageInfo -func (m *OfflinePushInfo) GetTitle() string { +func (m *FriendRequest) GetFromUserID() string { if m != nil { - return m.Title + return m.FromUserID } return "" } -func (m *OfflinePushInfo) GetDesc() string { +func (m *FriendRequest) GetToUserID() string { if m != nil { - return m.Desc + return m.ToUserID } return "" } -func (m *OfflinePushInfo) GetExt() string { +func (m *FriendRequest) GetHandleResult() int32 { if m != nil { - return m.Ext + return m.HandleResult } - return "" + return 0 } -func (m *OfflinePushInfo) GetIOSPushSound() string { +func (m *FriendRequest) GetReqMsg() string { if m != nil { - return m.IOSPushSound + return m.ReqMsg } return "" } -func (m *OfflinePushInfo) GetIOSBadgeCount() bool { +func (m *FriendRequest) GetCreateTime() int64 { if m != nil { - return m.IOSBadgeCount + return m.CreateTime } - return false -} - -// public -type GroupInfo struct { - GroupID string `protobuf:"bytes,1,opt,name=GroupID" json:"GroupID,omitempty"` - GroupName string `protobuf:"bytes,2,opt,name=GroupName" json:"GroupName,omitempty"` - Notification string `protobuf:"bytes,3,opt,name=Notification" json:"Notification,omitempty"` - Introduction string `protobuf:"bytes,4,opt,name=Introduction" json:"Introduction,omitempty"` - FaceUrl string `protobuf:"bytes,5,opt,name=FaceUrl" json:"FaceUrl,omitempty"` - Owner *PublicUserInfo `protobuf:"bytes,6,opt,name=Owner" json:"Owner,omitempty"` - CreateTime uint64 `protobuf:"varint,7,opt,name=CreateTime" json:"CreateTime,omitempty"` - MemberCount uint32 `protobuf:"varint,8,opt,name=MemberCount" json:"MemberCount,omitempty"` - Ext string `protobuf:"bytes,9,opt,name=Ext" json:"Ext,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + return 0 } -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_1ed69884ac12b8b9, []int{10} -} -func (m *GroupInfo) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_GroupInfo.Unmarshal(m, b) -} -func (m *GroupInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_GroupInfo.Marshal(b, m, deterministic) -} -func (dst *GroupInfo) XXX_Merge(src proto.Message) { - xxx_messageInfo_GroupInfo.Merge(dst, src) -} -func (m *GroupInfo) XXX_Size() int { - return xxx_messageInfo_GroupInfo.Size(m) -} -func (m *GroupInfo) XXX_DiscardUnknown() { - xxx_messageInfo_GroupInfo.DiscardUnknown(m) +func (m *FriendRequest) GetHandlerUserID() string { + if m != nil { + return m.HandlerUserID + } + return "" } -var xxx_messageInfo_GroupInfo proto.InternalMessageInfo - -func (m *GroupInfo) GetGroupID() string { +func (m *FriendRequest) GetHandleMsg() string { if m != nil { - return m.GroupID + return m.HandleMsg } return "" } -func (m *GroupInfo) GetGroupName() string { +func (m *FriendRequest) GetHandleTime() int64 { if m != nil { - return m.GroupName + return m.HandleTime } - return "" + return 0 } -func (m *GroupInfo) GetNotification() string { +func (m *FriendRequest) GetEx() string { if m != nil { - return m.Notification + return m.Ex } return "" } -func (m *GroupInfo) GetIntroduction() string { +type PullMessageBySeqListResp struct { + ErrCode int32 `protobuf:"varint,1,opt,name=errCode" json:"errCode,omitempty"` + ErrMsg string `protobuf:"bytes,2,opt,name=errMsg" json:"errMsg,omitempty"` + MaxSeq int64 `protobuf:"varint,3,opt,name=maxSeq" json:"maxSeq,omitempty"` + MinSeq int64 `protobuf:"varint,4,opt,name=minSeq" json:"minSeq,omitempty"` + SingleUserMsg []*GatherFormat `protobuf:"bytes,5,rep,name=singleUserMsg" json:"singleUserMsg,omitempty"` + GroupUserMsg []*GatherFormat `protobuf:"bytes,6,rep,name=groupUserMsg" json:"groupUserMsg,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *PullMessageBySeqListResp) Reset() { *m = PullMessageBySeqListResp{} } +func (m *PullMessageBySeqListResp) String() string { return proto.CompactTextString(m) } +func (*PullMessageBySeqListResp) ProtoMessage() {} +func (*PullMessageBySeqListResp) Descriptor() ([]byte, []int) { + return fileDescriptor_ws_a1fbf2797043d7f3, []int{8} +} +func (m *PullMessageBySeqListResp) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_PullMessageBySeqListResp.Unmarshal(m, b) +} +func (m *PullMessageBySeqListResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_PullMessageBySeqListResp.Marshal(b, m, deterministic) +} +func (dst *PullMessageBySeqListResp) XXX_Merge(src proto.Message) { + xxx_messageInfo_PullMessageBySeqListResp.Merge(dst, src) +} +func (m *PullMessageBySeqListResp) XXX_Size() int { + return xxx_messageInfo_PullMessageBySeqListResp.Size(m) +} +func (m *PullMessageBySeqListResp) XXX_DiscardUnknown() { + xxx_messageInfo_PullMessageBySeqListResp.DiscardUnknown(m) +} + +var xxx_messageInfo_PullMessageBySeqListResp proto.InternalMessageInfo + +func (m *PullMessageBySeqListResp) GetErrCode() int32 { if m != nil { - return m.Introduction + return m.ErrCode } - return "" + return 0 } -func (m *GroupInfo) GetFaceUrl() string { +func (m *PullMessageBySeqListResp) GetErrMsg() string { if m != nil { - return m.FaceUrl + return m.ErrMsg } return "" } -func (m *GroupInfo) GetOwner() *PublicUserInfo { +func (m *PullMessageBySeqListResp) GetMaxSeq() int64 { if m != nil { - return m.Owner + return m.MaxSeq } - return nil + return 0 } -func (m *GroupInfo) GetCreateTime() uint64 { +func (m *PullMessageBySeqListResp) GetMinSeq() int64 { if m != nil { - return m.CreateTime + return m.MinSeq } return 0 } -func (m *GroupInfo) GetMemberCount() uint32 { +func (m *PullMessageBySeqListResp) GetSingleUserMsg() []*GatherFormat { if m != nil { - return m.MemberCount + return m.SingleUserMsg } - return 0 + return nil } -func (m *GroupInfo) GetExt() string { +func (m *PullMessageBySeqListResp) GetGroupUserMsg() []*GatherFormat { if m != nil { - return m.Ext + return m.GroupUserMsg } - return "" + return nil } -// private, Group members have permission to view -type GroupMemberFullInfo struct { - GroupID string `protobuf:"bytes,1,opt,name=GroupID" json:"GroupID,omitempty"` - UserID string `protobuf:"bytes,2,opt,name=UserID" json:"UserID,omitempty"` - AdministratorLevel int32 `protobuf:"varint,3,opt,name=AdministratorLevel" json:"AdministratorLevel,omitempty"` - JoinTime uint64 `protobuf:"varint,4,opt,name=JoinTime" json:"JoinTime,omitempty"` - NickName string `protobuf:"bytes,5,opt,name=NickName" json:"NickName,omitempty"` - FaceUrl string `protobuf:"bytes,6,opt,name=FaceUrl" json:"FaceUrl,omitempty"` - FriendRemark string `protobuf:"bytes,7,opt,name=FriendRemark" json:"FriendRemark,omitempty"` - AppMangerLevel int32 `protobuf:"varint,8,opt,name=AppMangerLevel" json:"AppMangerLevel,omitempty"` +type PullMessageBySeqListReq struct { + UserID string `protobuf:"bytes,1,opt,name=userID" json:"userID,omitempty"` + OperationID string `protobuf:"bytes,2,opt,name=operationID" json:"operationID,omitempty"` + SeqList []int64 `protobuf:"varint,3,rep,packed,name=seqList" json:"seqList,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` } -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_1ed69884ac12b8b9, []int{11} +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_a1fbf2797043d7f3, []int{9} } -func (m *GroupMemberFullInfo) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_GroupMemberFullInfo.Unmarshal(m, b) +func (m *PullMessageBySeqListReq) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_PullMessageBySeqListReq.Unmarshal(m, b) } -func (m *GroupMemberFullInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_GroupMemberFullInfo.Marshal(b, m, deterministic) +func (m *PullMessageBySeqListReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_PullMessageBySeqListReq.Marshal(b, m, deterministic) } -func (dst *GroupMemberFullInfo) XXX_Merge(src proto.Message) { - xxx_messageInfo_GroupMemberFullInfo.Merge(dst, src) +func (dst *PullMessageBySeqListReq) XXX_Merge(src proto.Message) { + xxx_messageInfo_PullMessageBySeqListReq.Merge(dst, src) } -func (m *GroupMemberFullInfo) XXX_Size() int { - return xxx_messageInfo_GroupMemberFullInfo.Size(m) +func (m *PullMessageBySeqListReq) XXX_Size() int { + return xxx_messageInfo_PullMessageBySeqListReq.Size(m) +} +func (m *PullMessageBySeqListReq) XXX_DiscardUnknown() { + xxx_messageInfo_PullMessageBySeqListReq.DiscardUnknown(m) +} + +var xxx_messageInfo_PullMessageBySeqListReq proto.InternalMessageInfo + +func (m *PullMessageBySeqListReq) GetUserID() string { + if m != nil { + return m.UserID + } + return "" +} + +func (m *PullMessageBySeqListReq) GetOperationID() string { + if m != nil { + return m.OperationID + } + return "" +} + +func (m *PullMessageBySeqListReq) GetSeqList() []int64 { + if m != nil { + return m.SeqList + } + return nil +} + +type PullMessageReq struct { + UserID string `protobuf:"bytes,1,opt,name=userID" json:"userID,omitempty"` + SeqBegin int64 `protobuf:"varint,2,opt,name=seqBegin" json:"seqBegin,omitempty"` + SeqEnd int64 `protobuf:"varint,3,opt,name=seqEnd" json:"seqEnd,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 *PullMessageReq) Reset() { *m = PullMessageReq{} } +func (m *PullMessageReq) String() string { return proto.CompactTextString(m) } +func (*PullMessageReq) ProtoMessage() {} +func (*PullMessageReq) Descriptor() ([]byte, []int) { + return fileDescriptor_ws_a1fbf2797043d7f3, []int{10} +} +func (m *PullMessageReq) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_PullMessageReq.Unmarshal(m, b) +} +func (m *PullMessageReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_PullMessageReq.Marshal(b, m, deterministic) +} +func (dst *PullMessageReq) XXX_Merge(src proto.Message) { + xxx_messageInfo_PullMessageReq.Merge(dst, src) +} +func (m *PullMessageReq) XXX_Size() int { + return xxx_messageInfo_PullMessageReq.Size(m) +} +func (m *PullMessageReq) XXX_DiscardUnknown() { + xxx_messageInfo_PullMessageReq.DiscardUnknown(m) +} + +var xxx_messageInfo_PullMessageReq proto.InternalMessageInfo + +func (m *PullMessageReq) GetUserID() string { + if m != nil { + return m.UserID + } + return "" +} + +func (m *PullMessageReq) GetSeqBegin() int64 { + if m != nil { + return m.SeqBegin + } + return 0 +} + +func (m *PullMessageReq) GetSeqEnd() int64 { + if m != nil { + return m.SeqEnd + } + return 0 +} + +func (m *PullMessageReq) GetOperationID() string { + if m != nil { + return m.OperationID + } + return "" +} + +type PullMessageResp struct { + ErrCode int32 `protobuf:"varint,1,opt,name=errCode" json:"errCode,omitempty"` + ErrMsg string `protobuf:"bytes,2,opt,name=errMsg" json:"errMsg,omitempty"` + MaxSeq int64 `protobuf:"varint,3,opt,name=maxSeq" json:"maxSeq,omitempty"` + MinSeq int64 `protobuf:"varint,4,opt,name=minSeq" json:"minSeq,omitempty"` + SingleUserMsg []*GatherFormat `protobuf:"bytes,5,rep,name=singleUserMsg" json:"singleUserMsg,omitempty"` + GroupUserMsg []*GatherFormat `protobuf:"bytes,6,rep,name=groupUserMsg" json:"groupUserMsg,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *PullMessageResp) Reset() { *m = PullMessageResp{} } +func (m *PullMessageResp) String() string { return proto.CompactTextString(m) } +func (*PullMessageResp) ProtoMessage() {} +func (*PullMessageResp) Descriptor() ([]byte, []int) { + return fileDescriptor_ws_a1fbf2797043d7f3, []int{11} +} +func (m *PullMessageResp) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_PullMessageResp.Unmarshal(m, b) +} +func (m *PullMessageResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_PullMessageResp.Marshal(b, m, deterministic) +} +func (dst *PullMessageResp) XXX_Merge(src proto.Message) { + xxx_messageInfo_PullMessageResp.Merge(dst, src) +} +func (m *PullMessageResp) XXX_Size() int { + return xxx_messageInfo_PullMessageResp.Size(m) +} +func (m *PullMessageResp) XXX_DiscardUnknown() { + xxx_messageInfo_PullMessageResp.DiscardUnknown(m) +} + +var xxx_messageInfo_PullMessageResp proto.InternalMessageInfo + +func (m *PullMessageResp) GetErrCode() int32 { + if m != nil { + return m.ErrCode + } + return 0 +} + +func (m *PullMessageResp) GetErrMsg() string { + if m != nil { + return m.ErrMsg + } + return "" +} + +func (m *PullMessageResp) GetMaxSeq() int64 { + if m != nil { + return m.MaxSeq + } + return 0 +} + +func (m *PullMessageResp) GetMinSeq() int64 { + if m != nil { + return m.MinSeq + } + return 0 +} + +func (m *PullMessageResp) GetSingleUserMsg() []*GatherFormat { + if m != nil { + return m.SingleUserMsg + } + return nil +} + +func (m *PullMessageResp) GetGroupUserMsg() []*GatherFormat { + if m != nil { + return m.GroupUserMsg + } + return nil +} + +type GetMaxAndMinSeqReq struct { + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +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_a1fbf2797043d7f3, []int{12} +} +func (m *GetMaxAndMinSeqReq) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GetMaxAndMinSeqReq.Unmarshal(m, b) +} +func (m *GetMaxAndMinSeqReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GetMaxAndMinSeqReq.Marshal(b, m, deterministic) +} +func (dst *GetMaxAndMinSeqReq) XXX_Merge(src proto.Message) { + xxx_messageInfo_GetMaxAndMinSeqReq.Merge(dst, src) +} +func (m *GetMaxAndMinSeqReq) XXX_Size() int { + return xxx_messageInfo_GetMaxAndMinSeqReq.Size(m) +} +func (m *GetMaxAndMinSeqReq) XXX_DiscardUnknown() { + xxx_messageInfo_GetMaxAndMinSeqReq.DiscardUnknown(m) +} + +var xxx_messageInfo_GetMaxAndMinSeqReq proto.InternalMessageInfo + +type GetMaxAndMinSeqResp struct { + MaxSeq int64 `protobuf:"varint,1,opt,name=maxSeq" json:"maxSeq,omitempty"` + MinSeq int64 `protobuf:"varint,2,opt,name=minSeq" json:"minSeq,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +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_a1fbf2797043d7f3, []int{13} +} +func (m *GetMaxAndMinSeqResp) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GetMaxAndMinSeqResp.Unmarshal(m, b) +} +func (m *GetMaxAndMinSeqResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GetMaxAndMinSeqResp.Marshal(b, m, deterministic) +} +func (dst *GetMaxAndMinSeqResp) XXX_Merge(src proto.Message) { + xxx_messageInfo_GetMaxAndMinSeqResp.Merge(dst, src) +} +func (m *GetMaxAndMinSeqResp) XXX_Size() int { + return xxx_messageInfo_GetMaxAndMinSeqResp.Size(m) +} +func (m *GetMaxAndMinSeqResp) XXX_DiscardUnknown() { + xxx_messageInfo_GetMaxAndMinSeqResp.DiscardUnknown(m) +} + +var xxx_messageInfo_GetMaxAndMinSeqResp proto.InternalMessageInfo + +func (m *GetMaxAndMinSeqResp) GetMaxSeq() int64 { + if m != nil { + return m.MaxSeq + } + return 0 +} + +func (m *GetMaxAndMinSeqResp) GetMinSeq() int64 { + if m != nil { + return m.MinSeq + } + return 0 +} + +type GatherFormat struct { + // @inject_tag: json:"id" + Id string `protobuf:"bytes,1,opt,name=id" json:"id"` + // @inject_tag: json:"list" + List []*MsgData `protobuf:"bytes,2,rep,name=list" json:"list"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *GatherFormat) Reset() { *m = GatherFormat{} } +func (m *GatherFormat) String() string { return proto.CompactTextString(m) } +func (*GatherFormat) ProtoMessage() {} +func (*GatherFormat) Descriptor() ([]byte, []int) { + return fileDescriptor_ws_a1fbf2797043d7f3, []int{14} +} +func (m *GatherFormat) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GatherFormat.Unmarshal(m, b) +} +func (m *GatherFormat) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GatherFormat.Marshal(b, m, deterministic) +} +func (dst *GatherFormat) XXX_Merge(src proto.Message) { + xxx_messageInfo_GatherFormat.Merge(dst, src) +} +func (m *GatherFormat) XXX_Size() int { + return xxx_messageInfo_GatherFormat.Size(m) +} +func (m *GatherFormat) XXX_DiscardUnknown() { + xxx_messageInfo_GatherFormat.DiscardUnknown(m) +} + +var xxx_messageInfo_GatherFormat proto.InternalMessageInfo + +func (m *GatherFormat) GetId() string { + if m != nil { + return m.Id + } + return "" +} + +func (m *GatherFormat) GetList() []*MsgData { + if m != nil { + return m.List + } + return nil +} + +type UserSendMsgResp struct { + ServerMsgID string `protobuf:"bytes,1,opt,name=ServerMsgID" json:"ServerMsgID,omitempty"` + ClientMsgID string `protobuf:"bytes,2,opt,name=ClientMsgID" json:"ClientMsgID,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 *UserSendMsgResp) Reset() { *m = UserSendMsgResp{} } +func (m *UserSendMsgResp) String() string { return proto.CompactTextString(m) } +func (*UserSendMsgResp) ProtoMessage() {} +func (*UserSendMsgResp) Descriptor() ([]byte, []int) { + return fileDescriptor_ws_a1fbf2797043d7f3, []int{15} +} +func (m *UserSendMsgResp) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_UserSendMsgResp.Unmarshal(m, b) +} +func (m *UserSendMsgResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_UserSendMsgResp.Marshal(b, m, deterministic) +} +func (dst *UserSendMsgResp) XXX_Merge(src proto.Message) { + xxx_messageInfo_UserSendMsgResp.Merge(dst, src) +} +func (m *UserSendMsgResp) XXX_Size() int { + return xxx_messageInfo_UserSendMsgResp.Size(m) +} +func (m *UserSendMsgResp) XXX_DiscardUnknown() { + xxx_messageInfo_UserSendMsgResp.DiscardUnknown(m) +} + +var xxx_messageInfo_UserSendMsgResp proto.InternalMessageInfo + +func (m *UserSendMsgResp) GetServerMsgID() string { + if m != nil { + return m.ServerMsgID + } + return "" +} + +func (m *UserSendMsgResp) GetClientMsgID() string { + if m != nil { + return m.ClientMsgID + } + return "" +} + +func (m *UserSendMsgResp) GetSendTime() int64 { + if m != nil { + return m.SendTime + } + return 0 +} + +type MsgData struct { + SendID string `protobuf:"bytes,1,opt,name=sendID" json:"sendID,omitempty"` + RecvID string `protobuf:"bytes,2,opt,name=recvID" json:"recvID,omitempty"` + GroupID string `protobuf:"bytes,3,opt,name=groupID" json:"groupID,omitempty"` + ClientMsgID string `protobuf:"bytes,4,opt,name=clientMsgID" json:"clientMsgID,omitempty"` + ServerMsgID string `protobuf:"bytes,5,opt,name=serverMsgID" json:"serverMsgID,omitempty"` + SenderPlatformID int32 `protobuf:"varint,6,opt,name=senderPlatformID" json:"senderPlatformID,omitempty"` + SenderNickname string `protobuf:"bytes,7,opt,name=senderNickname" json:"senderNickname,omitempty"` + SenderFaceURL string `protobuf:"bytes,8,opt,name=senderFaceURL" json:"senderFaceURL,omitempty"` + SessionType int32 `protobuf:"varint,9,opt,name=sessionType" json:"sessionType,omitempty"` + MsgFrom int32 `protobuf:"varint,10,opt,name=msgFrom" json:"msgFrom,omitempty"` + ContentType int32 `protobuf:"varint,11,opt,name=contentType" json:"contentType,omitempty"` + Content []byte `protobuf:"bytes,12,opt,name=content,proto3" json:"content,omitempty"` + ForceList []string `protobuf:"bytes,13,rep,name=forceList" json:"forceList,omitempty"` + Seq int64 `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"` + Options map[string]bool `protobuf:"bytes,17,rep,name=Options" json:"Options,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` + OfflinePushInfo *OfflinePushInfo `protobuf:"bytes,18,opt,name=offlinePushInfo" json:"offlinePushInfo,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +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_a1fbf2797043d7f3, []int{16} +} +func (m *MsgData) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_MsgData.Unmarshal(m, b) +} +func (m *MsgData) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_MsgData.Marshal(b, m, deterministic) +} +func (dst *MsgData) XXX_Merge(src proto.Message) { + xxx_messageInfo_MsgData.Merge(dst, src) } -func (m *GroupMemberFullInfo) XXX_DiscardUnknown() { - xxx_messageInfo_GroupMemberFullInfo.DiscardUnknown(m) +func (m *MsgData) XXX_Size() int { + return xxx_messageInfo_MsgData.Size(m) +} +func (m *MsgData) XXX_DiscardUnknown() { + xxx_messageInfo_MsgData.DiscardUnknown(m) } -var xxx_messageInfo_GroupMemberFullInfo proto.InternalMessageInfo +var xxx_messageInfo_MsgData proto.InternalMessageInfo -func (m *GroupMemberFullInfo) GetGroupID() string { +func (m *MsgData) GetSendID() string { if m != nil { - return m.GroupID + return m.SendID } return "" } -func (m *GroupMemberFullInfo) GetUserID() string { +func (m *MsgData) GetRecvID() string { if m != nil { - return m.UserID + return m.RecvID } return "" } -func (m *GroupMemberFullInfo) GetAdministratorLevel() int32 { +func (m *MsgData) GetGroupID() string { if m != nil { - return m.AdministratorLevel + return m.GroupID } - return 0 + return "" } -func (m *GroupMemberFullInfo) GetJoinTime() uint64 { +func (m *MsgData) GetClientMsgID() string { if m != nil { - return m.JoinTime + return m.ClientMsgID } - return 0 + return "" } -func (m *GroupMemberFullInfo) GetNickName() string { +func (m *MsgData) GetServerMsgID() string { if m != nil { - return m.NickName + return m.ServerMsgID } return "" } -func (m *GroupMemberFullInfo) GetFaceUrl() string { +func (m *MsgData) GetSenderPlatformID() int32 { if m != nil { - return m.FaceUrl + return m.SenderPlatformID } - return "" + return 0 } -func (m *GroupMemberFullInfo) GetFriendRemark() string { +func (m *MsgData) GetSenderNickname() string { if m != nil { - return m.FriendRemark + return m.SenderNickname } return "" } -func (m *GroupMemberFullInfo) GetAppMangerLevel() int32 { +func (m *MsgData) GetSenderFaceURL() string { if m != nil { - return m.AppMangerLevel + return m.SenderFaceURL } - return 0 + return "" } -// private, Friends have permission to view -type UserInfo struct { - UserID string `protobuf:"bytes,1,opt,name=UserID" json:"UserID,omitempty"` - Nickname string `protobuf:"bytes,2,opt,name=Nickname" json:"Nickname,omitempty"` - FaceUrl string `protobuf:"bytes,3,opt,name=FaceUrl" json:"FaceUrl,omitempty"` - Gender int32 `protobuf:"varint,4,opt,name=Gender" json:"Gender,omitempty"` - Mobile string `protobuf:"bytes,5,opt,name=Mobile" json:"Mobile,omitempty"` - Birth string `protobuf:"bytes,6,opt,name=Birth" json:"Birth,omitempty"` - Email string `protobuf:"bytes,7,opt,name=Email" json:"Email,omitempty"` - Ext string `protobuf:"bytes,8,opt,name=Ext" json:"Ext,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` +func (m *MsgData) GetSessionType() int32 { + if m != nil { + return m.SessionType + } + return 0 } -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_1ed69884ac12b8b9, []int{12} -} -func (m *UserInfo) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_UserInfo.Unmarshal(m, b) -} -func (m *UserInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_UserInfo.Marshal(b, m, deterministic) -} -func (dst *UserInfo) XXX_Merge(src proto.Message) { - xxx_messageInfo_UserInfo.Merge(dst, src) -} -func (m *UserInfo) XXX_Size() int { - return xxx_messageInfo_UserInfo.Size(m) -} -func (m *UserInfo) XXX_DiscardUnknown() { - xxx_messageInfo_UserInfo.DiscardUnknown(m) +func (m *MsgData) GetMsgFrom() int32 { + if m != nil { + return m.MsgFrom + } + return 0 } -var xxx_messageInfo_UserInfo proto.InternalMessageInfo - -func (m *UserInfo) GetUserID() string { +func (m *MsgData) GetContentType() int32 { if m != nil { - return m.UserID + return m.ContentType } - return "" + return 0 } -func (m *UserInfo) GetNickname() string { +func (m *MsgData) GetContent() []byte { if m != nil { - return m.Nickname + return m.Content } - return "" + return nil } -func (m *UserInfo) GetFaceUrl() string { +func (m *MsgData) GetForceList() []string { if m != nil { - return m.FaceUrl + return m.ForceList } - return "" + return nil } -func (m *UserInfo) GetGender() int32 { +func (m *MsgData) GetSeq() int64 { if m != nil { - return m.Gender + return m.Seq } return 0 } -func (m *UserInfo) GetMobile() string { +func (m *MsgData) GetSendTime() int64 { if m != nil { - return m.Mobile + return m.SendTime } - return "" + return 0 } -func (m *UserInfo) GetBirth() string { +func (m *MsgData) GetCreateTime() int64 { if m != nil { - return m.Birth + return m.CreateTime } - return "" + return 0 } -func (m *UserInfo) GetEmail() string { +func (m *MsgData) GetOptions() map[string]bool { if m != nil { - return m.Email + return m.Options } - return "" + return nil } -func (m *UserInfo) GetExt() string { +func (m *MsgData) GetOfflinePushInfo() *OfflinePushInfo { if m != nil { - return m.Ext + return m.OfflinePushInfo } - return "" + return nil } -// No permissions required -type PublicUserInfo struct { - UserID string `protobuf:"bytes,1,opt,name=UserID" json:"UserID,omitempty"` - Nickname string `protobuf:"bytes,2,opt,name=Nickname" json:"Nickname,omitempty"` - FaceUrl string `protobuf:"bytes,3,opt,name=FaceUrl" json:"FaceUrl,omitempty"` - Gender int32 `protobuf:"varint,4,opt,name=Gender" json:"Gender,omitempty"` +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"` + Ex string `protobuf:"bytes,3,opt,name=Ex" json:"Ex,omitempty"` + IOSPushSound string `protobuf:"bytes,4,opt,name=iOSPushSound" json:"iOSPushSound,omitempty"` + IOSBadgeCount bool `protobuf:"varint,5,opt,name=iOSBadgeCount" json:"iOSBadgeCount,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` } -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_1ed69884ac12b8b9, []int{13} +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_a1fbf2797043d7f3, []int{17} } -func (m *PublicUserInfo) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_PublicUserInfo.Unmarshal(m, b) +func (m *OfflinePushInfo) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_OfflinePushInfo.Unmarshal(m, b) } -func (m *PublicUserInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_PublicUserInfo.Marshal(b, m, deterministic) +func (m *OfflinePushInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_OfflinePushInfo.Marshal(b, m, deterministic) } -func (dst *PublicUserInfo) XXX_Merge(src proto.Message) { - xxx_messageInfo_PublicUserInfo.Merge(dst, src) +func (dst *OfflinePushInfo) XXX_Merge(src proto.Message) { + xxx_messageInfo_OfflinePushInfo.Merge(dst, src) } -func (m *PublicUserInfo) XXX_Size() int { - return xxx_messageInfo_PublicUserInfo.Size(m) +func (m *OfflinePushInfo) XXX_Size() int { + return xxx_messageInfo_OfflinePushInfo.Size(m) } -func (m *PublicUserInfo) XXX_DiscardUnknown() { - xxx_messageInfo_PublicUserInfo.DiscardUnknown(m) +func (m *OfflinePushInfo) XXX_DiscardUnknown() { + xxx_messageInfo_OfflinePushInfo.DiscardUnknown(m) } -var xxx_messageInfo_PublicUserInfo proto.InternalMessageInfo +var xxx_messageInfo_OfflinePushInfo proto.InternalMessageInfo -func (m *PublicUserInfo) GetUserID() string { +func (m *OfflinePushInfo) GetTitle() string { if m != nil { - return m.UserID + return m.Title } return "" } -func (m *PublicUserInfo) GetNickname() string { +func (m *OfflinePushInfo) GetDesc() string { if m != nil { - return m.Nickname + return m.Desc } return "" } -func (m *PublicUserInfo) GetFaceUrl() string { +func (m *OfflinePushInfo) GetEx() string { if m != nil { - return m.FaceUrl + return m.Ex } return "" } -func (m *PublicUserInfo) GetGender() int32 { +func (m *OfflinePushInfo) GetIOSPushSound() string { if m != nil { - return m.Gender + return m.IOSPushSound } - return 0 + return "" +} + +func (m *OfflinePushInfo) GetIOSBadgeCount() bool { + if m != nil { + return m.IOSBadgeCount + } + return false } type TipsComm struct { @@ -1080,7 +1500,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_1ed69884ac12b8b9, []int{14} + return fileDescriptor_ws_a1fbf2797043d7f3, []int{18} } func (m *TipsComm) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_TipsComm.Unmarshal(m, b) @@ -1119,7 +1539,7 @@ func (m *TipsComm) GetDefaultTips() string { type MemberEnterTips struct { Group *GroupInfo `protobuf:"bytes,1,opt,name=Group" json:"Group,omitempty"` EntrantUser *GroupMemberFullInfo `protobuf:"bytes,2,opt,name=EntrantUser" json:"EntrantUser,omitempty"` - OperationTime uint64 `protobuf:"varint,3,opt,name=OperationTime" json:"OperationTime,omitempty"` + OperationTime int64 `protobuf:"varint,3,opt,name=OperationTime" json:"OperationTime,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -1129,7 +1549,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_1ed69884ac12b8b9, []int{15} + return fileDescriptor_ws_a1fbf2797043d7f3, []int{19} } func (m *MemberEnterTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MemberEnterTips.Unmarshal(m, b) @@ -1163,7 +1583,7 @@ func (m *MemberEnterTips) GetEntrantUser() *GroupMemberFullInfo { return nil } -func (m *MemberEnterTips) GetOperationTime() uint64 { +func (m *MemberEnterTips) GetOperationTime() int64 { if m != nil { return m.OperationTime } @@ -1174,7 +1594,7 @@ func (m *MemberEnterTips) GetOperationTime() uint64 { type MemberLeaveTips struct { Group *GroupInfo `protobuf:"bytes,1,opt,name=Group" json:"Group,omitempty"` LeaverUser *GroupMemberFullInfo `protobuf:"bytes,2,opt,name=LeaverUser" json:"LeaverUser,omitempty"` - OperationTime uint64 `protobuf:"varint,3,opt,name=OperationTime" json:"OperationTime,omitempty"` + OperationTime int64 `protobuf:"varint,3,opt,name=OperationTime" json:"OperationTime,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -1184,7 +1604,7 @@ func (m *MemberLeaveTips) Reset() { *m = MemberLeaveTips{} } func (m *MemberLeaveTips) String() string { return proto.CompactTextString(m) } func (*MemberLeaveTips) ProtoMessage() {} func (*MemberLeaveTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_1ed69884ac12b8b9, []int{16} + return fileDescriptor_ws_a1fbf2797043d7f3, []int{20} } func (m *MemberLeaveTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MemberLeaveTips.Unmarshal(m, b) @@ -1218,7 +1638,7 @@ func (m *MemberLeaveTips) GetLeaverUser() *GroupMemberFullInfo { return nil } -func (m *MemberLeaveTips) GetOperationTime() uint64 { +func (m *MemberLeaveTips) GetOperationTime() int64 { if m != nil { return m.OperationTime } @@ -1229,7 +1649,7 @@ type MemberInvitedTips struct { Group *GroupInfo `protobuf:"bytes,1,opt,name=Group" json:"Group,omitempty"` OpUser *GroupMemberFullInfo `protobuf:"bytes,2,opt,name=OpUser" json:"OpUser,omitempty"` InvitedUserList []*GroupMemberFullInfo `protobuf:"bytes,3,rep,name=InvitedUserList" json:"InvitedUserList,omitempty"` - OperationTime uint64 `protobuf:"varint,4,opt,name=OperationTime" json:"OperationTime,omitempty"` + OperationTime int64 `protobuf:"varint,4,opt,name=OperationTime" json:"OperationTime,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -1239,7 +1659,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_1ed69884ac12b8b9, []int{17} + return fileDescriptor_ws_a1fbf2797043d7f3, []int{21} } func (m *MemberInvitedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MemberInvitedTips.Unmarshal(m, b) @@ -1280,7 +1700,7 @@ func (m *MemberInvitedTips) GetInvitedUserList() []*GroupMemberFullInfo { return nil } -func (m *MemberInvitedTips) GetOperationTime() uint64 { +func (m *MemberInvitedTips) GetOperationTime() int64 { if m != nil { return m.OperationTime } @@ -1291,7 +1711,7 @@ type MemberKickedTips struct { Group *GroupInfo `protobuf:"bytes,1,opt,name=Group" json:"Group,omitempty"` OpUser *GroupMemberFullInfo `protobuf:"bytes,2,opt,name=OpUser" json:"OpUser,omitempty"` KickedUserList []*GroupMemberFullInfo `protobuf:"bytes,3,rep,name=KickedUserList" json:"KickedUserList,omitempty"` - OperationTime uint64 `protobuf:"varint,4,opt,name=OperationTime" json:"OperationTime,omitempty"` + OperationTime int64 `protobuf:"varint,4,opt,name=OperationTime" json:"OperationTime,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -1301,7 +1721,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_1ed69884ac12b8b9, []int{18} + return fileDescriptor_ws_a1fbf2797043d7f3, []int{22} } func (m *MemberKickedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MemberKickedTips.Unmarshal(m, b) @@ -1342,7 +1762,7 @@ func (m *MemberKickedTips) GetKickedUserList() []*GroupMemberFullInfo { return nil } -func (m *MemberKickedTips) GetOperationTime() uint64 { +func (m *MemberKickedTips) GetOperationTime() int64 { if m != nil { return m.OperationTime } @@ -1353,7 +1773,7 @@ type MemberInfoChangedTips struct { ChangeType int32 `protobuf:"varint,1,opt,name=ChangeType" json:"ChangeType,omitempty"` OpUser *GroupMemberFullInfo `protobuf:"bytes,2,opt,name=OpUser" json:"OpUser,omitempty"` FinalInfo *GroupMemberFullInfo `protobuf:"bytes,3,opt,name=FinalInfo" json:"FinalInfo,omitempty"` - MuteTime uint64 `protobuf:"varint,4,opt,name=MuteTime" json:"MuteTime,omitempty"` + MuteTime int64 `protobuf:"varint,4,opt,name=MuteTime" json:"MuteTime,omitempty"` Group *GroupInfo `protobuf:"bytes,5,opt,name=Group" json:"Group,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` @@ -1364,7 +1784,7 @@ func (m *MemberInfoChangedTips) Reset() { *m = MemberInfoChangedTips{} } func (m *MemberInfoChangedTips) String() string { return proto.CompactTextString(m) } func (*MemberInfoChangedTips) ProtoMessage() {} func (*MemberInfoChangedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_1ed69884ac12b8b9, []int{19} + return fileDescriptor_ws_a1fbf2797043d7f3, []int{23} } func (m *MemberInfoChangedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MemberInfoChangedTips.Unmarshal(m, b) @@ -1405,7 +1825,7 @@ func (m *MemberInfoChangedTips) GetFinalInfo() *GroupMemberFullInfo { return nil } -func (m *MemberInfoChangedTips) GetMuteTime() uint64 { +func (m *MemberInfoChangedTips) GetMuteTime() int64 { if m != nil { return m.MuteTime } @@ -1423,7 +1843,7 @@ type GroupCreatedTips struct { Group *GroupInfo `protobuf:"bytes,1,opt,name=Group" json:"Group,omitempty"` Creator *GroupMemberFullInfo `protobuf:"bytes,2,opt,name=Creator" json:"Creator,omitempty"` MemberList []*GroupMemberFullInfo `protobuf:"bytes,3,rep,name=MemberList" json:"MemberList,omitempty"` - OperationTime uint64 `protobuf:"varint,4,opt,name=OperationTime" json:"OperationTime,omitempty"` + OperationTime int64 `protobuf:"varint,4,opt,name=OperationTime" json:"OperationTime,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -1433,7 +1853,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_1ed69884ac12b8b9, []int{20} + return fileDescriptor_ws_a1fbf2797043d7f3, []int{24} } func (m *GroupCreatedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupCreatedTips.Unmarshal(m, b) @@ -1474,7 +1894,7 @@ func (m *GroupCreatedTips) GetMemberList() []*GroupMemberFullInfo { return nil } -func (m *GroupCreatedTips) GetOperationTime() uint64 { +func (m *GroupCreatedTips) GetOperationTime() int64 { if m != nil { return m.OperationTime } @@ -1494,7 +1914,7 @@ func (m *GroupInfoChangedTips) Reset() { *m = GroupInfoChangedTips{} } func (m *GroupInfoChangedTips) String() string { return proto.CompactTextString(m) } func (*GroupInfoChangedTips) ProtoMessage() {} func (*GroupInfoChangedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_1ed69884ac12b8b9, []int{21} + return fileDescriptor_ws_a1fbf2797043d7f3, []int{25} } func (m *GroupInfoChangedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupInfoChangedTips.Unmarshal(m, b) @@ -1548,7 +1968,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_1ed69884ac12b8b9, []int{22} + return fileDescriptor_ws_a1fbf2797043d7f3, []int{26} } func (m *JoinGroupApplicationTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_JoinGroupApplicationTips.Unmarshal(m, b) @@ -1603,7 +2023,7 @@ func (m *ApplicationProcessedTips) Reset() { *m = ApplicationProcessedTi func (m *ApplicationProcessedTips) String() string { return proto.CompactTextString(m) } func (*ApplicationProcessedTips) ProtoMessage() {} func (*ApplicationProcessedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_1ed69884ac12b8b9, []int{23} + return fileDescriptor_ws_a1fbf2797043d7f3, []int{27} } func (m *ApplicationProcessedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ApplicationProcessedTips.Unmarshal(m, b) @@ -1651,71 +2071,8 @@ func (m *ApplicationProcessedTips) GetReason() string { return "" } -// ////////////////////friend///////////////////// -type FriendInfo struct { - OwnerUser *UserInfo `protobuf:"bytes,1,opt,name=OwnerUser" json:"OwnerUser,omitempty"` - Remark string `protobuf:"bytes,2,opt,name=Remark" json:"Remark,omitempty"` - CreateTime uint64 `protobuf:"varint,3,opt,name=CreateTime" json:"CreateTime,omitempty"` - FriendUser *UserInfo `protobuf:"bytes,4,opt,name=FriendUser" json:"FriendUser,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -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_1ed69884ac12b8b9, []int{24} -} -func (m *FriendInfo) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_FriendInfo.Unmarshal(m, b) -} -func (m *FriendInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_FriendInfo.Marshal(b, m, deterministic) -} -func (dst *FriendInfo) XXX_Merge(src proto.Message) { - xxx_messageInfo_FriendInfo.Merge(dst, src) -} -func (m *FriendInfo) XXX_Size() int { - return xxx_messageInfo_FriendInfo.Size(m) -} -func (m *FriendInfo) XXX_DiscardUnknown() { - xxx_messageInfo_FriendInfo.DiscardUnknown(m) -} - -var xxx_messageInfo_FriendInfo proto.InternalMessageInfo - -func (m *FriendInfo) GetOwnerUser() *UserInfo { - if m != nil { - return m.OwnerUser - } - return nil -} - -func (m *FriendInfo) GetRemark() string { - if m != nil { - return m.Remark - } - return "" -} - -func (m *FriendInfo) GetCreateTime() uint64 { - if m != nil { - return m.CreateTime - } - return 0 -} - -func (m *FriendInfo) GetFriendUser() *UserInfo { - if m != nil { - return m.FriendUser - } - return nil -} - type FriendApplication struct { - AddTime uint64 `protobuf:"varint,1,opt,name=AddTime" json:"AddTime,omitempty"` + AddTime int64 `protobuf:"varint,1,opt,name=AddTime" json:"AddTime,omitempty"` AddSource string `protobuf:"bytes,2,opt,name=AddSource" json:"AddSource,omitempty"` AddWording string `protobuf:"bytes,3,opt,name=AddWording" json:"AddWording,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` @@ -1727,7 +2084,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_1ed69884ac12b8b9, []int{25} + return fileDescriptor_ws_a1fbf2797043d7f3, []int{28} } func (m *FriendApplication) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FriendApplication.Unmarshal(m, b) @@ -1747,7 +2104,7 @@ func (m *FriendApplication) XXX_DiscardUnknown() { var xxx_messageInfo_FriendApplication proto.InternalMessageInfo -func (m *FriendApplication) GetAddTime() uint64 { +func (m *FriendApplication) GetAddTime() int64 { if m != nil { return m.AddTime } @@ -1780,7 +2137,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_1ed69884ac12b8b9, []int{26} + return fileDescriptor_ws_a1fbf2797043d7f3, []int{29} } func (m *FromToUserID) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FromToUserID.Unmarshal(m, b) @@ -1826,7 +2183,7 @@ func (m *FriendApplicationAddedTips) Reset() { *m = FriendApplicationAdd func (m *FriendApplicationAddedTips) String() string { return proto.CompactTextString(m) } func (*FriendApplicationAddedTips) ProtoMessage() {} func (*FriendApplicationAddedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_1ed69884ac12b8b9, []int{27} + return fileDescriptor_ws_a1fbf2797043d7f3, []int{30} } func (m *FriendApplicationAddedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FriendApplicationAddedTips.Unmarshal(m, b) @@ -1865,7 +2222,7 @@ func (m *FriendApplicationProcessedTips) Reset() { *m = FriendApplicatio func (m *FriendApplicationProcessedTips) String() string { return proto.CompactTextString(m) } func (*FriendApplicationProcessedTips) ProtoMessage() {} func (*FriendApplicationProcessedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_1ed69884ac12b8b9, []int{28} + return fileDescriptor_ws_a1fbf2797043d7f3, []int{31} } func (m *FriendApplicationProcessedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FriendApplicationProcessedTips.Unmarshal(m, b) @@ -1895,7 +2252,7 @@ func (m *FriendApplicationProcessedTips) GetFromToUserID() *FromToUserID { // FromUserID Added a friend ToUserID type FriendAddedTips struct { Friend *FriendInfo `protobuf:"bytes,1,opt,name=Friend" json:"Friend,omitempty"` - OperationTime uint64 `protobuf:"varint,2,opt,name=OperationTime" json:"OperationTime,omitempty"` + OperationTime int64 `protobuf:"varint,2,opt,name=OperationTime" json:"OperationTime,omitempty"` OpUser *PublicUserInfo `protobuf:"bytes,3,opt,name=OpUser" json:"OpUser,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` @@ -1906,7 +2263,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_1ed69884ac12b8b9, []int{29} + return fileDescriptor_ws_a1fbf2797043d7f3, []int{32} } func (m *FriendAddedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FriendAddedTips.Unmarshal(m, b) @@ -1933,7 +2290,7 @@ func (m *FriendAddedTips) GetFriend() *FriendInfo { return nil } -func (m *FriendAddedTips) GetOperationTime() uint64 { +func (m *FriendAddedTips) GetOperationTime() int64 { if m != nil { return m.OperationTime } @@ -1959,7 +2316,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_1ed69884ac12b8b9, []int{30} + return fileDescriptor_ws_a1fbf2797043d7f3, []int{33} } func (m *FriendDeletedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FriendDeletedTips.Unmarshal(m, b) @@ -1997,7 +2354,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_1ed69884ac12b8b9, []int{31} + return fileDescriptor_ws_a1fbf2797043d7f3, []int{34} } func (m *BlackAddedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_BlackAddedTips.Unmarshal(m, b) @@ -2035,7 +2392,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_1ed69884ac12b8b9, []int{32} + return fileDescriptor_ws_a1fbf2797043d7f3, []int{35} } func (m *BlackDeletedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_BlackDeletedTips.Unmarshal(m, b) @@ -2073,7 +2430,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_1ed69884ac12b8b9, []int{33} + return fileDescriptor_ws_a1fbf2797043d7f3, []int{36} } func (m *FriendInfoChangedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FriendInfoChangedTips.Unmarshal(m, b) @@ -2112,7 +2469,7 @@ func (m *SelfInfoUpdatedTips) Reset() { *m = SelfInfoUpdatedTips{} } func (m *SelfInfoUpdatedTips) String() string { return proto.CompactTextString(m) } func (*SelfInfoUpdatedTips) ProtoMessage() {} func (*SelfInfoUpdatedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_1ed69884ac12b8b9, []int{34} + return fileDescriptor_ws_a1fbf2797043d7f3, []int{37} } func (m *SelfInfoUpdatedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SelfInfoUpdatedTips.Unmarshal(m, b) @@ -2140,6 +2497,14 @@ func (m *SelfInfoUpdatedTips) GetUserID() string { } func init() { + proto.RegisterType((*GroupInfo)(nil), "open_im_sdk.GroupInfo") + proto.RegisterType((*GroupMemberFullInfo)(nil), "open_im_sdk.GroupMemberFullInfo") + proto.RegisterType((*PublicUserInfo)(nil), "open_im_sdk.PublicUserInfo") + proto.RegisterType((*UserInfo)(nil), "open_im_sdk.UserInfo") + proto.RegisterType((*FriendInfo)(nil), "open_im_sdk.FriendInfo") + proto.RegisterType((*BlackInfo)(nil), "open_im_sdk.BlackInfo") + proto.RegisterType((*GroupRequest)(nil), "open_im_sdk.GroupRequest") + proto.RegisterType((*FriendRequest)(nil), "open_im_sdk.FriendRequest") proto.RegisterType((*PullMessageBySeqListResp)(nil), "open_im_sdk.PullMessageBySeqListResp") proto.RegisterType((*PullMessageBySeqListReq)(nil), "open_im_sdk.PullMessageBySeqListReq") proto.RegisterType((*PullMessageReq)(nil), "open_im_sdk.PullMessageReq") @@ -2151,10 +2516,6 @@ func init() { proto.RegisterType((*MsgData)(nil), "open_im_sdk.MsgData") proto.RegisterMapType((map[string]bool)(nil), "open_im_sdk.MsgData.OptionsEntry") proto.RegisterType((*OfflinePushInfo)(nil), "open_im_sdk.OfflinePushInfo") - proto.RegisterType((*GroupInfo)(nil), "open_im_sdk.GroupInfo") - proto.RegisterType((*GroupMemberFullInfo)(nil), "open_im_sdk.GroupMemberFullInfo") - proto.RegisterType((*UserInfo)(nil), "open_im_sdk.UserInfo") - proto.RegisterType((*PublicUserInfo)(nil), "open_im_sdk.PublicUserInfo") proto.RegisterType((*TipsComm)(nil), "open_im_sdk.TipsComm") proto.RegisterType((*MemberEnterTips)(nil), "open_im_sdk.MemberEnterTips") proto.RegisterType((*MemberLeaveTips)(nil), "open_im_sdk.MemberLeaveTips") @@ -2165,7 +2526,6 @@ func init() { proto.RegisterType((*GroupInfoChangedTips)(nil), "open_im_sdk.GroupInfoChangedTips") proto.RegisterType((*JoinGroupApplicationTips)(nil), "open_im_sdk.JoinGroupApplicationTips") proto.RegisterType((*ApplicationProcessedTips)(nil), "open_im_sdk.ApplicationProcessedTips") - proto.RegisterType((*FriendInfo)(nil), "open_im_sdk.FriendInfo") proto.RegisterType((*FriendApplication)(nil), "open_im_sdk.FriendApplication") proto.RegisterType((*FromToUserID)(nil), "open_im_sdk.FromToUserID") proto.RegisterType((*FriendApplicationAddedTips)(nil), "open_im_sdk.FriendApplicationAddedTips") @@ -2178,115 +2538,128 @@ func init() { proto.RegisterType((*SelfInfoUpdatedTips)(nil), "open_im_sdk.SelfInfoUpdatedTips") } -func init() { proto.RegisterFile("sdk_ws/ws.proto", fileDescriptor_ws_1ed69884ac12b8b9) } - -var fileDescriptor_ws_1ed69884ac12b8b9 = []byte{ - // 1703 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe4, 0x58, 0x4f, 0x6f, 0x23, 0x4b, - 0x11, 0xd7, 0xf8, 0x5f, 0xec, 0x72, 0x36, 0xce, 0xce, 0xfe, 0x79, 0xc3, 0xf2, 0xb4, 0x32, 0x23, - 0x84, 0x2c, 0x04, 0x79, 0x22, 0x2b, 0xa4, 0xc7, 0xa2, 0x07, 0x38, 0x71, 0x92, 0x97, 0x65, 0xbd, - 0x0e, 0xe3, 0x2c, 0x1c, 0x38, 0x44, 0x13, 0x4f, 0xdb, 0x19, 0x79, 0xa6, 0xc7, 0xe9, 0x1e, 0x67, - 0x37, 0x17, 0xbe, 0x05, 0xe2, 0x80, 0x90, 0xb8, 0x21, 0x24, 0x0e, 0x88, 0x03, 0x1f, 0x81, 0x4f, - 0xc2, 0x09, 0x89, 0x13, 0x47, 0x38, 0xa0, 0xaa, 0xee, 0x19, 0xf7, 0xd8, 0x79, 0xd9, 0x24, 0xbb, - 0xda, 0xcb, 0xbb, 0x4d, 0xfd, 0x5c, 0x5d, 0xf5, 0xab, 0x3f, 0x5d, 0x5d, 0x09, 0xb4, 0x64, 0x30, - 0x3d, 0x79, 0x23, 0x3f, 0x7b, 0x23, 0xb7, 0x66, 0x22, 0x49, 0x13, 0xbb, 0x99, 0xcc, 0x18, 0x3f, - 0x09, 0xe3, 0x13, 0x19, 0x4c, 0xdd, 0xff, 0x59, 0xe0, 0x1c, 0xcd, 0xa3, 0xa8, 0xcf, 0xa4, 0xf4, - 0x27, 0x6c, 0xe7, 0x72, 0xc8, 0xce, 0x5f, 0x86, 0x32, 0xf5, 0x98, 0x9c, 0xd9, 0x0e, 0xac, 0x31, - 0x21, 0x76, 0x93, 0x80, 0x39, 0x56, 0xdb, 0xea, 0x54, 0xbd, 0x4c, 0xb4, 0x1f, 0x43, 0x8d, 0x09, - 0xd1, 0x97, 0x13, 0xa7, 0xd4, 0xb6, 0x3a, 0x0d, 0x4f, 0x4b, 0x88, 0xc7, 0xfe, 0xdb, 0x21, 0x3b, - 0x77, 0xca, 0x6d, 0xab, 0x53, 0xf6, 0xb4, 0x44, 0x78, 0xc8, 0x11, 0xaf, 0x68, 0x9c, 0x24, 0xfb, - 0xa7, 0x70, 0x4f, 0x86, 0x7c, 0x12, 0xb1, 0xd7, 0x92, 0x91, 0xb9, 0x6a, 0xbb, 0xdc, 0x69, 0x6e, - 0x7f, 0x63, 0xcb, 0xe0, 0xb8, 0x75, 0xe0, 0xa7, 0x67, 0x4c, 0xec, 0x27, 0x22, 0xf6, 0x53, 0xaf, - 0xa8, 0x6f, 0x7f, 0x01, 0xeb, 0x13, 0x91, 0xcc, 0x67, 0xd9, 0xf9, 0xda, 0xbb, 0xce, 0x17, 0xd4, - 0xdd, 0x18, 0x3e, 0xb9, 0x3a, 0x7a, 0xa2, 0x3c, 0x97, 0x4c, 0x1c, 0xf6, 0x28, 0xf6, 0x86, 0xa7, - 0x25, 0xbb, 0x0d, 0x98, 0x40, 0xe1, 0xa7, 0x61, 0xc2, 0x0f, 0x7b, 0x3a, 0x7e, 0x13, 0xc2, 0xb4, - 0x49, 0x65, 0xc7, 0x29, 0xb7, 0xcb, 0x9d, 0xb2, 0x97, 0x89, 0xee, 0x6f, 0x60, 0xc3, 0x70, 0x77, - 0x9d, 0x97, 0x27, 0x50, 0x97, 0xec, 0x7c, 0x87, 0x4d, 0x42, 0x4e, 0x2e, 0xca, 0x5e, 0x2e, 0xe3, - 0x19, 0xc9, 0xce, 0xf7, 0x78, 0x90, 0x25, 0x59, 0x49, 0xcb, 0xcc, 0x2a, 0x2b, 0xcc, 0xdc, 0xff, - 0x58, 0xd0, 0x2a, 0x10, 0xf8, 0x5a, 0x14, 0xf9, 0x21, 0xd8, 0x07, 0x2c, 0xed, 0xfb, 0x6f, 0xbb, - 0x3c, 0xe8, 0x13, 0x25, 0x8f, 0x9d, 0xbb, 0x7b, 0xf0, 0x60, 0x05, 0x95, 0x33, 0x23, 0x38, 0xeb, - 0x2b, 0x82, 0x2b, 0x99, 0xc1, 0xb9, 0x5f, 0xc2, 0xba, 0xe9, 0xda, 0xde, 0x80, 0x52, 0x18, 0xe8, - 0x62, 0x96, 0xc2, 0xc0, 0xee, 0x40, 0x25, 0xc2, 0x4e, 0x28, 0x11, 0xe7, 0x87, 0x05, 0xce, 0x7d, - 0x39, 0xe9, 0xf9, 0xa9, 0xef, 0x91, 0x86, 0x7b, 0x0e, 0x2d, 0x64, 0x3c, 0x64, 0x3c, 0xe8, 0xcb, - 0x09, 0x91, 0x69, 0x43, 0x73, 0xc8, 0xc4, 0x05, 0x85, 0x91, 0xb7, 0x88, 0x09, 0xa1, 0xc6, 0x6e, - 0x14, 0x32, 0x9e, 0x2a, 0x0d, 0xdd, 0x8d, 0x06, 0xa4, 0x3a, 0x89, 0x07, 0xc7, 0x61, 0xcc, 0x74, - 0xbd, 0x72, 0xd9, 0xfd, 0x7b, 0x15, 0xd6, 0x34, 0x09, 0xd5, 0x55, 0x3c, 0x58, 0x74, 0xa2, 0x92, - 0x10, 0x17, 0x6c, 0x74, 0x91, 0x1b, 0xd7, 0x12, 0xf6, 0x0d, 0x65, 0xf9, 0xb0, 0x47, 0x66, 0x1b, - 0x5e, 0x26, 0x22, 0xa7, 0x91, 0xc1, 0x49, 0xf7, 0xa1, 0x01, 0xa1, 0x86, 0x34, 0xe2, 0xaa, 0x2a, - 0x0d, 0x03, 0xb2, 0xbf, 0x0b, 0x9b, 0xe8, 0x9f, 0x89, 0xa3, 0xc8, 0x4f, 0xc7, 0x89, 0x88, 0x0f, - 0x7b, 0x4e, 0x8d, 0xda, 0x73, 0x05, 0xb7, 0xbf, 0x03, 0x1b, 0x0a, 0x7b, 0x15, 0x8e, 0xa6, 0xaf, - 0xfc, 0x98, 0x39, 0x6b, 0x64, 0x70, 0x09, 0xb5, 0xbf, 0x0d, 0xf7, 0x14, 0xb2, 0xef, 0x8f, 0xd8, - 0x6b, 0xef, 0xa5, 0x53, 0x27, 0xb5, 0x22, 0xa8, 0xb8, 0x49, 0x19, 0x26, 0xfc, 0xf8, 0x72, 0xc6, - 0x9c, 0x06, 0x39, 0x35, 0x21, 0x8c, 0x3c, 0x96, 0x93, 0x7d, 0x91, 0xc4, 0x0e, 0xa8, 0x1b, 0xa3, - 0x45, 0x8a, 0x3c, 0xe1, 0x29, 0xe3, 0x29, 0x9d, 0x6d, 0xaa, 0xb3, 0x06, 0x84, 0x67, 0xb5, 0xe8, - 0xac, 0xb7, 0xad, 0xce, 0xba, 0x97, 0x89, 0xf6, 0xa7, 0xd0, 0x18, 0x27, 0x62, 0xc4, 0x68, 0x6e, - 0xdc, 0x6b, 0x97, 0x3b, 0x0d, 0x6f, 0x01, 0xd8, 0x9b, 0x50, 0x96, 0xec, 0xdc, 0xd9, 0xa0, 0x02, - 0xe2, 0x67, 0xa1, 0xae, 0xad, 0x62, 0x5d, 0xed, 0xa7, 0x00, 0x23, 0xc1, 0xfc, 0x94, 0xd1, 0xaf, - 0x9b, 0xf4, 0xab, 0x81, 0xd8, 0x3f, 0x86, 0xb5, 0xc1, 0x0c, 0x67, 0x82, 0x74, 0xee, 0x53, 0x5f, - 0x7e, 0xeb, 0xaa, 0xbe, 0xdc, 0xd2, 0x3a, 0x7b, 0x3c, 0x15, 0x97, 0x5e, 0x76, 0xc2, 0xde, 0x87, - 0x56, 0x32, 0x1e, 0x47, 0x21, 0x67, 0x47, 0x73, 0x79, 0x76, 0xc8, 0xc7, 0x89, 0x63, 0xb7, 0xad, - 0x4e, 0x73, 0xfb, 0xd3, 0x82, 0x91, 0x41, 0x51, 0xc7, 0x5b, 0x3e, 0xf4, 0xe4, 0x39, 0xac, 0x9b, - 0x0e, 0x30, 0xc4, 0x29, 0xbb, 0xd4, 0xdd, 0x87, 0x9f, 0xf6, 0x43, 0xa8, 0x5e, 0xf8, 0xd1, 0x9c, - 0x51, 0xe7, 0xd5, 0x3d, 0x25, 0x3c, 0x2f, 0x7d, 0x6e, 0xb9, 0xbf, 0xb3, 0xa0, 0xb5, 0xe4, 0x00, - 0xb5, 0x8f, 0xc3, 0x34, 0x62, 0xda, 0x82, 0x12, 0x6c, 0x1b, 0x2a, 0x3d, 0x26, 0x47, 0xba, 0x79, - 0xe9, 0x1b, 0x3d, 0xed, 0xbd, 0x4d, 0x75, 0xdb, 0xe2, 0xa7, 0xed, 0xc2, 0x7a, 0x38, 0x18, 0xa2, - 0xa9, 0x61, 0x32, 0xe7, 0x81, 0xee, 0xd9, 0x02, 0x86, 0xed, 0x13, 0x0e, 0x86, 0x3b, 0x7e, 0x30, - 0x61, 0xbb, 0xc9, 0x9c, 0xa7, 0xd4, 0xb6, 0x75, 0xaf, 0x08, 0xba, 0x7f, 0x29, 0x41, 0xe3, 0x80, - 0x2e, 0x02, 0x72, 0x72, 0x60, 0xed, 0x40, 0x5f, 0x12, 0xc5, 0x2a, 0x13, 0xb1, 0xdc, 0xf4, 0x49, - 0xfd, 0xaa, 0xc8, 0x2d, 0x00, 0xe4, 0xf3, 0x2a, 0x49, 0xc3, 0x71, 0x38, 0xa2, 0xd1, 0xad, 0xa9, - 0x16, 0x30, 0xd4, 0x39, 0xe4, 0xa9, 0x48, 0x82, 0xf9, 0x88, 0x74, 0x34, 0x67, 0x13, 0x43, 0xff, - 0xd4, 0xd7, 0x22, 0xd2, 0x97, 0x2c, 0x13, 0xed, 0x1f, 0x40, 0x75, 0xf0, 0x86, 0x33, 0x41, 0xb7, - 0xaa, 0xb9, 0xfd, 0xcd, 0x42, 0xed, 0x8e, 0xe6, 0xa7, 0x51, 0x38, 0xc2, 0x69, 0x44, 0xa5, 0x53, - 0x9a, 0xd8, 0x55, 0xbb, 0x8b, 0xae, 0xc2, 0x3b, 0x56, 0xf1, 0x0c, 0x04, 0xbb, 0xbf, 0xcf, 0xe2, - 0x53, 0x26, 0x54, 0x7a, 0xf0, 0x76, 0xdd, 0xf3, 0x4c, 0x28, 0x4b, 0x7c, 0x23, 0x4f, 0xbc, 0xfb, - 0xdb, 0x12, 0x3c, 0xa0, 0xb0, 0x95, 0xda, 0xfe, 0x3c, 0x8a, 0xde, 0x91, 0xb8, 0xc7, 0x50, 0x7b, - 0xad, 0x5e, 0x4c, 0x3d, 0x8f, 0x94, 0x64, 0x6f, 0x81, 0xdd, 0x0d, 0xe2, 0x90, 0x87, 0x32, 0x15, - 0x7e, 0x9a, 0x88, 0x97, 0xec, 0x82, 0x45, 0x94, 0xb8, 0xaa, 0x77, 0xc5, 0x2f, 0x78, 0x7f, 0x5e, - 0x24, 0x21, 0xa7, 0x58, 0x2a, 0x14, 0x4b, 0x2e, 0xe3, 0x6f, 0xf9, 0x2c, 0x51, 0x79, 0xcb, 0x65, - 0x33, 0xa5, 0xb5, 0x62, 0x4a, 0x5d, 0x58, 0xdf, 0x17, 0x21, 0xe3, 0x81, 0xc7, 0x62, 0x5f, 0x4c, - 0xf5, 0x14, 0x2a, 0x60, 0x38, 0xab, 0xba, 0xb3, 0x59, 0xdf, 0xe7, 0x13, 0xa6, 0x19, 0xd6, 0x89, - 0xe1, 0x12, 0xea, 0xfe, 0xc3, 0x82, 0x7a, 0x96, 0x7f, 0x23, 0x64, 0xab, 0x10, 0xb2, 0xa6, 0xc9, - 0x17, 0x2d, 0x94, 0xcb, 0x26, 0xcd, 0x72, 0x91, 0xe6, 0x63, 0xa8, 0x1d, 0xd0, 0xc4, 0xa3, 0xb0, - 0xab, 0x9e, 0x96, 0x10, 0xef, 0x27, 0xa7, 0x61, 0x94, 0x85, 0xac, 0x25, 0xbc, 0x57, 0x3b, 0xa1, - 0x48, 0xcf, 0x74, 0xb8, 0x4a, 0x40, 0x74, 0x2f, 0xf6, 0xc3, 0x48, 0x47, 0xa9, 0x84, 0xac, 0xc0, - 0xf5, 0x45, 0x81, 0x2f, 0x70, 0xe5, 0x31, 0xbb, 0xe9, 0xe3, 0x44, 0xe3, 0xf6, 0xa0, 0x7e, 0x1c, - 0xce, 0xe4, 0x6e, 0x12, 0xc7, 0xa8, 0xd3, 0x63, 0x29, 0x92, 0xb5, 0x68, 0xe6, 0x6a, 0x09, 0x1b, - 0xb6, 0xc7, 0xc6, 0xfe, 0x3c, 0x4a, 0x51, 0x35, 0x7b, 0x3c, 0x0d, 0xc8, 0xfd, 0xb3, 0x05, 0x2d, - 0xd5, 0x99, 0x7b, 0x3c, 0x65, 0x02, 0x31, 0xfb, 0x7b, 0x50, 0xa5, 0x5e, 0x24, 0x63, 0xcd, 0xed, - 0xc7, 0xc5, 0x35, 0x24, 0xbb, 0xfa, 0x9e, 0x52, 0xb2, 0x77, 0xa0, 0x89, 0xe3, 0xcd, 0xe7, 0x29, - 0x86, 0x49, 0x3e, 0x9a, 0xdb, 0xed, 0xd5, 0x33, 0xc5, 0xfe, 0xf7, 0xcc, 0x43, 0x38, 0x79, 0x06, - 0xd9, 0x16, 0x97, 0xbf, 0xe3, 0x15, 0xaf, 0x08, 0xba, 0x7f, 0xca, 0xb9, 0xbe, 0x64, 0xfe, 0x05, - 0xbb, 0x03, 0xd7, 0x9f, 0x01, 0xd0, 0x51, 0x71, 0x2b, 0xaa, 0xc6, 0x99, 0x1b, 0x32, 0xfd, 0xb7, - 0x05, 0xf7, 0x95, 0x91, 0x43, 0x7e, 0x11, 0xa6, 0x2c, 0xb8, 0x03, 0xd7, 0xcf, 0xa1, 0x36, 0x98, - 0xdd, 0x8a, 0xa7, 0xd6, 0xb7, 0x5f, 0x40, 0x4b, 0xbb, 0x45, 0x31, 0x5f, 0xd3, 0x6f, 0x62, 0x62, - 0xf9, 0xe0, 0x6a, 0xbc, 0x95, 0xab, 0xe2, 0xfd, 0x97, 0x05, 0x9b, 0xca, 0xd2, 0xcf, 0xc3, 0xd1, - 0xf4, 0x23, 0x87, 0xfb, 0x25, 0x6c, 0x28, 0xaf, 0xb7, 0x8e, 0x76, 0xe9, 0xdc, 0x0d, 0x83, 0xfd, - 0xaf, 0x05, 0x8f, 0xb2, 0xe2, 0x8e, 0x93, 0xdd, 0x33, 0x1c, 0x6a, 0x2a, 0x62, 0x7c, 0x3f, 0x48, - 0xa4, 0xe5, 0x48, 0xfd, 0xb1, 0x61, 0x20, 0xef, 0x11, 0xe3, 0x4f, 0xa0, 0xb1, 0x1f, 0x72, 0x9f, - 0x40, 0x6a, 0xb9, 0x9b, 0x1c, 0x5e, 0x1c, 0xc1, 0xd1, 0xd3, 0x9f, 0xeb, 0x77, 0x4d, 0xbf, 0x05, - 0x99, 0xbc, 0xa8, 0x53, 0xf5, 0x06, 0x75, 0x72, 0xff, 0x69, 0xc1, 0x26, 0x7d, 0xa9, 0x77, 0xf1, - 0x2e, 0xa5, 0x7e, 0x0e, 0x6b, 0x74, 0x38, 0xb9, 0x79, 0x1e, 0xb2, 0x03, 0x78, 0x83, 0xf5, 0x08, - 0xb8, 0x4d, 0xa1, 0x8d, 0x33, 0x37, 0x2c, 0xf2, 0x1f, 0x2d, 0x78, 0x98, 0x13, 0x37, 0x6b, 0x8c, - 0x7f, 0x8f, 0x68, 0x71, 0x51, 0x64, 0x13, 0x5a, 0x24, 0xa3, 0x74, 0xbb, 0xbe, 0x2f, 0xdf, 0xae, - 0x27, 0xdc, 0xdf, 0x5b, 0xe0, 0xe0, 0x83, 0x4e, 0x3a, 0xdd, 0xd9, 0x2c, 0xd2, 0x7b, 0xd3, 0x1d, - 0x2a, 0xf2, 0x23, 0x68, 0x68, 0x03, 0x3c, 0xd5, 0xb4, 0xaf, 0xdd, 0x97, 0x16, 0xda, 0xf8, 0xf4, - 0x78, 0xcc, 0x97, 0xf9, 0x0a, 0xa7, 0x25, 0xf7, 0x6f, 0x16, 0x38, 0x06, 0xa9, 0x23, 0x91, 0x8c, - 0x98, 0x94, 0x1f, 0x79, 0x34, 0x10, 0x39, 0x39, 0x8f, 0x52, 0xbd, 0x26, 0x69, 0xc9, 0x20, 0x5d, - 0x29, 0x90, 0xfe, 0xab, 0x05, 0xa0, 0xb6, 0x19, 0xba, 0x35, 0xcf, 0xa0, 0x41, 0x8b, 0x21, 0xf9, - 0x56, 0x54, 0x1f, 0x15, 0x7c, 0x2f, 0x12, 0x92, 0xeb, 0x29, 0xdb, 0xb4, 0x1e, 0x95, 0x32, 0xdb, - 0xb4, 0x18, 0x15, 0x97, 0xcb, 0xf2, 0xca, 0x72, 0xf9, 0xc3, 0xcc, 0x35, 0x79, 0xab, 0x5c, 0xe7, - 0xcd, 0x50, 0x74, 0xa7, 0x70, 0x5f, 0x49, 0x46, 0xb2, 0x71, 0x9b, 0xe8, 0x06, 0xea, 0x2f, 0x27, - 0x8b, 0x1c, 0x65, 0x22, 0x6e, 0xe5, 0xdd, 0x20, 0x18, 0x26, 0x73, 0x31, 0xca, 0xb7, 0xf2, 0x1c, - 0x40, 0x8e, 0xdd, 0x20, 0xf8, 0x55, 0x22, 0x82, 0x90, 0x4f, 0x74, 0x41, 0x0d, 0xc4, 0x7d, 0x81, - 0x0b, 0x60, 0x12, 0x1f, 0x27, 0x7a, 0xa3, 0x79, 0x8a, 0x9c, 0x93, 0xb8, 0xb0, 0xed, 0x18, 0x08, - 0x8e, 0x9d, 0x4c, 0x37, 0xdb, 0x78, 0x32, 0xd9, 0xfd, 0x35, 0x3c, 0x59, 0x21, 0xde, 0x0d, 0x02, - 0xdd, 0x21, 0x5f, 0x14, 0x3d, 0xe9, 0xec, 0x17, 0xff, 0x23, 0x62, 0x2a, 0x78, 0x05, 0x75, 0xf7, - 0x04, 0x9e, 0xae, 0x18, 0x2f, 0xb6, 0xe0, 0x7b, 0x3a, 0xf8, 0x83, 0x05, 0x2d, 0xed, 0x21, 0xe7, - 0xfc, 0x19, 0xd4, 0x14, 0xa4, 0x8d, 0x7d, 0xb2, 0x64, 0x2c, 0xeb, 0x2b, 0x4f, 0xab, 0xad, 0x8e, - 0xa2, 0xd2, 0x15, 0xa3, 0xc8, 0x7e, 0xb6, 0x34, 0x21, 0xae, 0xbd, 0x99, 0xd9, 0x70, 0xf0, 0xb2, - 0xb6, 0xe8, 0xb1, 0x88, 0xa5, 0x1f, 0x26, 0xe6, 0x01, 0x6c, 0xec, 0x44, 0xfe, 0x68, 0xfa, 0xc1, - 0xaa, 0xf4, 0x0b, 0xd8, 0x24, 0x83, 0x1f, 0x90, 0xe3, 0x2f, 0xe1, 0xd1, 0x22, 0xd1, 0xe6, 0xdc, - 0x7e, 0x4f, 0xbb, 0xdf, 0x87, 0x07, 0x43, 0x16, 0x8d, 0xd1, 0xea, 0xeb, 0x59, 0x90, 0x3f, 0x7c, - 0x5f, 0xb1, 0xea, 0x9f, 0xd6, 0xe8, 0x3f, 0xd1, 0xcf, 0xfe, 0x1f, 0x00, 0x00, 0xff, 0xff, 0x45, - 0x62, 0x8c, 0xef, 0x9c, 0x16, 0x00, 0x00, +func init() { proto.RegisterFile("sdk_ws/ws.proto", fileDescriptor_ws_a1fbf2797043d7f3) } + +var fileDescriptor_ws_a1fbf2797043d7f3 = []byte{ + // 1916 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe4, 0x59, 0x4f, 0x8f, 0x1b, 0x49, + 0x15, 0x57, 0xb7, 0xc7, 0x1e, 0xcf, 0xb3, 0x67, 0x3c, 0xe9, 0x24, 0xb3, 0x4d, 0x58, 0x45, 0xa6, + 0xb5, 0x42, 0x23, 0x04, 0x59, 0x29, 0x2b, 0xa4, 0x25, 0x68, 0x81, 0xf9, 0x9b, 0x3f, 0xc4, 0xf1, + 0xd0, 0x9e, 0xc0, 0x81, 0x43, 0xd4, 0x71, 0x97, 0x3d, 0x2d, 0xb7, 0xab, 0xed, 0xae, 0xee, 0x49, + 0x72, 0xe1, 0xcc, 0x17, 0xe0, 0xb4, 0x02, 0x71, 0x43, 0x5c, 0x39, 0xf0, 0x31, 0xf8, 0x02, 0x5c, + 0x11, 0x07, 0x24, 0x4e, 0x88, 0x13, 0x1c, 0xd0, 0x7b, 0x55, 0xdd, 0x5d, 0x65, 0x3b, 0x59, 0x4f, + 0x12, 0x72, 0xd9, 0x9b, 0xdf, 0xaf, 0xdf, 0x7b, 0xf5, 0xfe, 0xd5, 0xab, 0x57, 0x65, 0xe8, 0x88, + 0x70, 0xf2, 0xec, 0x85, 0xf8, 0xf4, 0x85, 0xb8, 0x33, 0x4b, 0x93, 0x2c, 0x71, 0x5a, 0xc9, 0x8c, + 0xf1, 0x67, 0xd1, 0xf4, 0x99, 0x08, 0x27, 0xde, 0xbf, 0x6d, 0xd8, 0xba, 0x9f, 0x26, 0xf9, 0xec, + 0x21, 0x1f, 0x25, 0x8e, 0x0b, 0x9b, 0x92, 0x38, 0x76, 0xad, 0xae, 0xb5, 0xbf, 0xe5, 0x17, 0xa4, + 0xf3, 0xb1, 0x62, 0x7b, 0x12, 0x4c, 0x99, 0x6b, 0xd3, 0xb7, 0x0a, 0x70, 0x3c, 0x68, 0x3f, 0x49, + 0xb2, 0x68, 0x14, 0x0d, 0x83, 0x2c, 0x4a, 0xb8, 0x5b, 0x23, 0x06, 0x03, 0x43, 0x9e, 0x87, 0x3c, + 0x4b, 0x93, 0x30, 0x1f, 0x12, 0xcf, 0x86, 0xe4, 0xd1, 0x31, 0x5c, 0xff, 0x34, 0x18, 0xb2, 0xa7, + 0x69, 0xec, 0xd6, 0xe5, 0xfa, 0x8a, 0x74, 0xba, 0xd0, 0xea, 0xbf, 0xe0, 0x2c, 0x7d, 0x2a, 0x58, + 0xfa, 0xf0, 0xd8, 0x6d, 0xd0, 0x57, 0x1d, 0x72, 0x6e, 0x03, 0x1c, 0xa5, 0x2c, 0xc8, 0xd8, 0x79, + 0x34, 0x65, 0xee, 0x66, 0xd7, 0xda, 0xaf, 0xf9, 0x1a, 0x82, 0x1a, 0x7a, 0x6c, 0xfa, 0x9c, 0xa5, + 0x47, 0x49, 0xce, 0x33, 0xb7, 0xd9, 0xb5, 0xf6, 0xb7, 0x7d, 0x1d, 0x72, 0x76, 0xc0, 0x3e, 0x79, + 0xe9, 0x6e, 0x91, 0x6a, 0xfb, 0xe4, 0xa5, 0xb3, 0x07, 0x8d, 0x41, 0x16, 0x64, 0xb9, 0x70, 0xa1, + 0x6b, 0xed, 0xd7, 0x7d, 0x45, 0x39, 0x9f, 0xc0, 0x36, 0xe9, 0x4d, 0x0a, 0x6b, 0x5a, 0x24, 0x62, + 0x82, 0x65, 0xc4, 0xce, 0x5f, 0xcd, 0x98, 0xdb, 0x26, 0x05, 0x15, 0xe0, 0xfd, 0xd5, 0x86, 0xeb, + 0x44, 0x49, 0x03, 0x4e, 0xf3, 0x38, 0xfe, 0x8a, 0x0c, 0xec, 0x41, 0x43, 0x2d, 0x27, 0xc3, 0xdf, + 0xa8, 0xd6, 0x49, 0x93, 0x98, 0x3d, 0x66, 0x97, 0x2c, 0xa6, 0xc0, 0xd7, 0xfd, 0x0a, 0x70, 0x6e, + 0x41, 0xf3, 0x51, 0x12, 0x71, 0x8a, 0xc9, 0x06, 0xc5, 0xa4, 0xa4, 0xf1, 0xdb, 0x93, 0x68, 0x38, + 0xa1, 0x94, 0xca, 0x70, 0x97, 0xb4, 0x9e, 0x89, 0x86, 0x99, 0x09, 0x0f, 0xda, 0xa7, 0x69, 0xc4, + 0x78, 0xe8, 0xb3, 0x69, 0x90, 0x4e, 0x28, 0xd2, 0x5b, 0xbe, 0x81, 0x39, 0xdf, 0x86, 0x9d, 0x83, + 0xd9, 0xac, 0x17, 0xf0, 0x31, 0x4b, 0xa5, 0x61, 0x4d, 0x32, 0x6c, 0x01, 0xc5, 0x9c, 0xa1, 0x35, + 0x83, 0x24, 0x4f, 0x87, 0x8c, 0x22, 0x5f, 0xf7, 0x35, 0x04, 0xf5, 0xf4, 0x67, 0x2c, 0xd5, 0x42, + 0x0d, 0xb4, 0xda, 0x02, 0xaa, 0x32, 0xd7, 0x2a, 0x32, 0xe7, 0xfd, 0xce, 0x82, 0x9d, 0xb3, 0xfc, + 0x79, 0x1c, 0x0d, 0x89, 0x01, 0x03, 0x5b, 0x85, 0xcf, 0x32, 0xc2, 0xa7, 0x82, 0xc0, 0xab, 0xba, + 0x2e, 0x69, 0x3d, 0x08, 0x35, 0x33, 0x08, 0x7b, 0xd0, 0xb8, 0xcf, 0x78, 0xc8, 0x52, 0x0a, 0x6a, + 0xdd, 0x57, 0xd4, 0x0a, 0xc7, 0xeb, 0xab, 0x1c, 0xf7, 0xfe, 0x62, 0x41, 0xf3, 0x03, 0x9b, 0xd6, + 0x85, 0xd6, 0xd9, 0x45, 0xc2, 0xd9, 0x93, 0x1c, 0x0b, 0x4e, 0x25, 0x5c, 0x87, 0x9c, 0x1b, 0x50, + 0x3f, 0x8c, 0xd2, 0xec, 0x42, 0x65, 0x5c, 0x12, 0x88, 0x9e, 0x4c, 0x83, 0x28, 0x56, 0x89, 0x96, + 0x84, 0x8a, 0x78, 0xb3, 0x8c, 0xf8, 0xbf, 0x2c, 0x00, 0x59, 0x02, 0xe4, 0xd2, 0xc2, 0x76, 0xb5, + 0x96, 0xb7, 0xeb, 0x1e, 0x34, 0x54, 0x01, 0xa9, 0x72, 0x56, 0xa5, 0x63, 0x6e, 0xe3, 0xda, 0xd2, + 0x36, 0xfe, 0x7e, 0xb1, 0x0e, 0xea, 0x21, 0x17, 0x5b, 0x77, 0x6f, 0xde, 0xd1, 0x5a, 0xda, 0x9d, + 0x22, 0xae, 0xbe, 0xc6, 0x88, 0xbb, 0xe4, 0x20, 0x0c, 0x55, 0xa1, 0xc9, 0x9c, 0x54, 0xc0, 0x8a, + 0x3a, 0x6b, 0xbc, 0xa1, 0xce, 0x36, 0x4b, 0xaf, 0xff, 0x6e, 0xc1, 0xd6, 0x61, 0x1c, 0x0c, 0x27, + 0x6b, 0x3a, 0x6d, 0x3a, 0x67, 0x2f, 0x39, 0x77, 0x00, 0xdb, 0xa4, 0xae, 0x70, 0x41, 0xf9, 0xf7, + 0x4d, 0xc3, 0x3f, 0xb3, 0xb0, 0x7d, 0x53, 0xe2, 0xff, 0xe4, 0xe8, 0xaf, 0x6d, 0x68, 0x53, 0x23, + 0xf2, 0xd9, 0x3c, 0x67, 0x22, 0x7b, 0x6d, 0xcd, 0x6a, 0xfd, 0xcb, 0x36, 0xfb, 0x97, 0x07, 0xed, + 0x07, 0x01, 0x0f, 0x63, 0xe6, 0x33, 0x91, 0xc7, 0x59, 0x71, 0x46, 0xe8, 0x98, 0x2c, 0x8a, 0x79, + 0x4f, 0x8c, 0xd5, 0xe9, 0xa0, 0x28, 0x74, 0x4a, 0xf2, 0xe1, 0x27, 0x59, 0xb9, 0x15, 0x80, 0x6b, + 0xfa, 0x6c, 0x4e, 0x21, 0x6d, 0x50, 0x48, 0x0b, 0xb2, 0x5a, 0x53, 0xd9, 0xba, 0xa9, 0xaf, 0x59, + 0xe5, 0x44, 0xd2, 0xa4, 0xa0, 0x29, 0x73, 0x52, 0x21, 0x8b, 0xa7, 0x82, 0xf7, 0xa5, 0x0d, 0xdb, + 0x45, 0xb3, 0x93, 0xb1, 0xb8, 0x8d, 0x25, 0x99, 0x4c, 0x8d, 0x78, 0x68, 0x08, 0xee, 0xe3, 0xf3, + 0xc4, 0xe8, 0xdd, 0x25, 0xbd, 0x32, 0x2a, 0xf5, 0x35, 0xa3, 0x62, 0x56, 0x53, 0x7d, 0xa9, 0x9a, + 0x3e, 0x81, 0x6d, 0xa9, 0xc7, 0xcc, 0xb5, 0x09, 0x9a, 0xb1, 0xdd, 0x5c, 0x8c, 0xed, 0x55, 0xa3, + 0xf3, 0x5f, 0x0b, 0xdc, 0xb3, 0x3c, 0x8e, 0x7b, 0x4c, 0x88, 0x60, 0xcc, 0x0e, 0x5f, 0x0d, 0xd8, + 0xfc, 0x71, 0x24, 0x32, 0x9f, 0x89, 0x19, 0x26, 0x8a, 0xa5, 0xe9, 0x51, 0x12, 0x32, 0x8a, 0x52, + 0xdd, 0x2f, 0x48, 0x74, 0x91, 0xa5, 0x29, 0x5a, 0xa0, 0xba, 0x81, 0xa4, 0x10, 0x9f, 0x06, 0x2f, + 0x07, 0x6c, 0xae, 0x3a, 0x81, 0xa2, 0x08, 0x8f, 0x38, 0xe2, 0x1b, 0x0a, 0x27, 0xca, 0xf9, 0x31, + 0x6c, 0x8b, 0x88, 0x8f, 0x65, 0x72, 0x65, 0xb1, 0xd4, 0xf6, 0x5b, 0x77, 0xbf, 0x61, 0x6c, 0xa0, + 0xfb, 0x41, 0x76, 0xc1, 0xd2, 0xd3, 0x24, 0x9d, 0x06, 0x99, 0x6f, 0xf2, 0x3b, 0x5f, 0x40, 0x7b, + 0x8c, 0x05, 0x5b, 0xc8, 0x37, 0xbe, 0x4a, 0xde, 0x60, 0xf7, 0xa6, 0xf0, 0xd1, 0x6a, 0xef, 0xc9, + 0xe4, 0xdc, 0xd8, 0x31, 0x92, 0xc2, 0xae, 0x91, 0xd0, 0xe6, 0x8b, 0x12, 0x5e, 0x16, 0x88, 0x0e, + 0x61, 0xd8, 0x84, 0xd4, 0xe3, 0xd6, 0xba, 0x35, 0xac, 0x6f, 0x45, 0x7a, 0xbf, 0xc2, 0x63, 0xae, + 0x5c, 0xee, 0x4d, 0xab, 0xdc, 0x82, 0xa6, 0x60, 0xf3, 0x43, 0x36, 0x8e, 0xb8, 0xea, 0x3b, 0x25, + 0x8d, 0x32, 0x82, 0xcd, 0x4f, 0x78, 0x58, 0x04, 0x59, 0x52, 0x8b, 0x96, 0x6d, 0x2c, 0x59, 0x86, + 0x5d, 0xbf, 0x63, 0x18, 0xf0, 0xb5, 0x48, 0xf2, 0x0d, 0x70, 0xee, 0xb3, 0xac, 0x17, 0xbc, 0x3c, + 0xe0, 0x61, 0x8f, 0x4c, 0xf2, 0xd9, 0xdc, 0x3b, 0x81, 0xeb, 0x4b, 0xa8, 0x98, 0x69, 0xce, 0x59, + 0xaf, 0x71, 0xce, 0xd6, 0x9d, 0xf3, 0x1e, 0x40, 0x5b, 0x5f, 0x1a, 0x37, 0x58, 0x14, 0xaa, 0x64, + 0xda, 0x51, 0xe8, 0xec, 0xc3, 0x46, 0x8c, 0x95, 0x60, 0x93, 0xcd, 0x37, 0x0c, 0x9b, 0x7b, 0x62, + 0x7c, 0x1c, 0x64, 0x81, 0x4f, 0x1c, 0xde, 0x1c, 0x3a, 0x68, 0xf1, 0x80, 0xf1, 0xb0, 0x27, 0xc6, + 0x64, 0x4c, 0x17, 0x5a, 0x03, 0x96, 0x5e, 0x92, 0x1b, 0xd5, 0x09, 0xa5, 0x41, 0xc8, 0x71, 0x14, + 0x47, 0x8c, 0x67, 0x92, 0x43, 0x55, 0xa3, 0x06, 0xc9, 0x4a, 0xe2, 0xa1, 0x76, 0x3c, 0x97, 0xb4, + 0xf7, 0xe7, 0x3a, 0x6c, 0x2a, 0x23, 0x64, 0x55, 0xf1, 0xb0, 0xaa, 0x44, 0x49, 0x21, 0x9e, 0xb2, + 0xe1, 0x65, 0x35, 0xc7, 0x4a, 0x0a, 0xeb, 0x66, 0xac, 0x4e, 0x0e, 0x35, 0xd1, 0x28, 0x12, 0x6d, + 0x1a, 0x6a, 0x36, 0xa9, 0x3a, 0xd4, 0x20, 0xe4, 0x10, 0x9a, 0x5f, 0x6a, 0xb6, 0xd1, 0x20, 0xe7, + 0x3b, 0xb0, 0x2b, 0x68, 0x0e, 0x3a, 0x8b, 0x83, 0x6c, 0x94, 0xa4, 0x53, 0xd5, 0x0e, 0xeb, 0xfe, + 0x12, 0x8e, 0x87, 0xa4, 0xc4, 0xca, 0xe9, 0x4b, 0xb6, 0xc5, 0x05, 0x14, 0xfb, 0xab, 0x44, 0x68, + 0xf4, 0xf2, 0x1f, 0xab, 0x71, 0xc8, 0x04, 0xa5, 0x6d, 0x42, 0x44, 0x09, 0xa7, 0x9b, 0x80, 0x1c, + 0x72, 0x75, 0x08, 0x3d, 0x9f, 0x8a, 0x31, 0x1e, 0x18, 0xea, 0xa2, 0x51, 0x90, 0xe4, 0x79, 0xc2, + 0x33, 0xc6, 0x33, 0x92, 0x6d, 0x49, 0x59, 0x0d, 0x42, 0x59, 0x45, 0xd2, 0x1d, 0xa3, 0xed, 0x17, + 0x24, 0xf6, 0xf5, 0x51, 0x92, 0x0e, 0x19, 0xf5, 0x8d, 0xed, 0x6e, 0x0d, 0xfb, 0x7a, 0x09, 0x38, + 0xbb, 0x50, 0x13, 0x6c, 0xee, 0xee, 0x50, 0x02, 0xf1, 0xa7, 0x91, 0xd7, 0x8e, 0x99, 0x57, 0x3c, + 0x05, 0x86, 0xd5, 0x49, 0xb3, 0x2b, 0x4f, 0x81, 0x0a, 0x71, 0x7e, 0x08, 0x9b, 0xfd, 0x19, 0xf6, + 0x04, 0xe1, 0x5e, 0xa3, 0xba, 0xfc, 0xd6, 0xaa, 0xba, 0xbc, 0xa3, 0x78, 0x4e, 0x78, 0x96, 0xbe, + 0xf2, 0x0b, 0x09, 0xe7, 0x14, 0x3a, 0xc9, 0x68, 0x14, 0x47, 0x9c, 0x9d, 0xe5, 0xe2, 0x82, 0xc6, + 0x1e, 0x87, 0xc6, 0x9e, 0x8f, 0x0d, 0x25, 0x7d, 0x93, 0xc7, 0x5f, 0x14, 0xba, 0x75, 0x0f, 0xda, + 0xfa, 0x02, 0xe8, 0xe2, 0x84, 0xbd, 0x52, 0xd5, 0x87, 0x3f, 0x71, 0x94, 0xbd, 0x0c, 0xe2, 0x5c, + 0x4e, 0x5e, 0x4d, 0x5f, 0x12, 0xf7, 0xec, 0xcf, 0x2d, 0xef, 0x37, 0x16, 0x74, 0x16, 0x16, 0x40, + 0xee, 0xf3, 0x28, 0x8b, 0x99, 0xd2, 0x20, 0x09, 0xc7, 0x81, 0x8d, 0x63, 0x26, 0x86, 0xaa, 0x78, + 0xe9, 0xb7, 0x3a, 0x04, 0x6b, 0xe5, 0xc5, 0xd1, 0x83, 0x76, 0xd4, 0x1f, 0xa0, 0xa2, 0x41, 0x92, + 0xf3, 0xb0, 0xb8, 0xea, 0xea, 0x18, 0x16, 0x4f, 0xd4, 0x1f, 0x1c, 0x06, 0xe1, 0x98, 0xc9, 0x0b, + 0x69, 0x9d, 0x6c, 0x32, 0x41, 0xef, 0x18, 0x9a, 0xe7, 0xd1, 0x4c, 0x1c, 0x25, 0xd3, 0x29, 0x6e, + 0x9c, 0x63, 0x96, 0xe1, 0x24, 0x6e, 0x51, 0xa6, 0x15, 0x85, 0x45, 0x72, 0xcc, 0x46, 0x41, 0x1e, + 0x67, 0xc8, 0x5a, 0x6c, 0x59, 0x0d, 0xf2, 0xfe, 0x68, 0x41, 0x47, 0xde, 0x33, 0x4f, 0x78, 0xc6, + 0x52, 0xc4, 0x9c, 0xef, 0x42, 0x9d, 0x26, 0x33, 0x52, 0xd6, 0xba, 0xbb, 0x67, 0x36, 0xbf, 0xe2, + 0x45, 0xc0, 0x97, 0x4c, 0xce, 0x21, 0xb4, 0x30, 0xa8, 0x01, 0xcf, 0x68, 0xec, 0xb6, 0x49, 0xa6, + 0xbb, 0x2c, 0x63, 0xde, 0x66, 0x7d, 0x5d, 0x08, 0x3d, 0xee, 0x17, 0x67, 0x87, 0xd6, 0x3d, 0x4c, + 0xd0, 0xfb, 0x43, 0x69, 0xeb, 0x63, 0x16, 0x5c, 0xb2, 0xb7, 0xb0, 0xf5, 0x27, 0x00, 0x24, 0x9a, + 0x5e, 0xc9, 0x54, 0x4d, 0x66, 0x4d, 0x4b, 0xff, 0x69, 0xc1, 0x35, 0xa9, 0xe4, 0x21, 0xbf, 0x8c, + 0x32, 0x16, 0xbe, 0x85, 0xad, 0x9f, 0x43, 0xa3, 0x3f, 0xbb, 0x92, 0x9d, 0x8a, 0xdf, 0x79, 0x04, + 0x1d, 0xb5, 0x2c, 0x92, 0xe5, 0x70, 0xb0, 0x8e, 0x8a, 0x45, 0xc1, 0x65, 0x7f, 0x37, 0x56, 0xf9, + 0xfb, 0x0f, 0x0b, 0x76, 0xa5, 0xa6, 0x9f, 0x46, 0xc3, 0xc9, 0x07, 0x76, 0xf7, 0x01, 0xec, 0xc8, + 0x55, 0xaf, 0xec, 0xed, 0x82, 0xdc, 0x9a, 0xce, 0xfe, 0xc7, 0x82, 0x9b, 0x45, 0x72, 0x47, 0xc9, + 0xd1, 0x05, 0xde, 0xdd, 0xa5, 0xc7, 0x38, 0x75, 0x13, 0x49, 0x2d, 0x59, 0x8e, 0x38, 0x1a, 0xf2, + 0x0e, 0x3e, 0xfe, 0x08, 0xb6, 0x4e, 0x23, 0x1e, 0x10, 0x48, 0x25, 0xb7, 0x8e, 0x70, 0x25, 0x82, + 0x1d, 0xbc, 0x97, 0xab, 0x1e, 0xad, 0xde, 0x7a, 0x0a, 0xba, 0xca, 0x53, 0x7d, 0x8d, 0x3c, 0x79, + 0x7f, 0xb3, 0x60, 0x97, 0x7e, 0xc9, 0xdb, 0xc4, 0xdb, 0xa4, 0xfa, 0x1e, 0x6c, 0xaa, 0xf7, 0xb0, + 0xb5, 0xe3, 0x50, 0x08, 0xe0, 0x0e, 0x56, 0x2d, 0xe0, 0x2a, 0x89, 0xd6, 0x64, 0xd6, 0x4c, 0xf2, + 0xef, 0x2d, 0xb8, 0x51, 0x1a, 0xae, 0xe7, 0x18, 0xa7, 0x20, 0x45, 0x56, 0x49, 0xd6, 0xa1, 0x2a, + 0x18, 0xf6, 0xd5, 0xea, 0xbe, 0x76, 0xb5, 0x9a, 0xf0, 0xbe, 0xb4, 0xc0, 0x7d, 0x94, 0x44, 0x9c, + 0x78, 0x0e, 0x66, 0xb3, 0x58, 0x3d, 0xa7, 0xbe, 0x45, 0x46, 0x7e, 0x00, 0x5b, 0x4a, 0x01, 0xcf, + 0x94, 0xd9, 0x6f, 0x7c, 0x58, 0xa8, 0xb8, 0xe5, 0x0d, 0x34, 0x10, 0xe5, 0xcb, 0xae, 0xa2, 0xbc, + 0x3f, 0x59, 0xe0, 0x6a, 0x46, 0x9d, 0xa5, 0xc9, 0x90, 0x09, 0xf1, 0x81, 0x5b, 0x03, 0x19, 0xa7, + 0x5d, 0x9e, 0x1b, 0xfa, 0xb5, 0x99, 0x8c, 0xde, 0x30, 0x8c, 0x9e, 0xc0, 0x35, 0x79, 0x7f, 0xd7, + 0x2c, 0xc7, 0x39, 0xea, 0x20, 0x94, 0xc3, 0x8f, 0x9c, 0xd3, 0x0b, 0xd2, 0x7c, 0x50, 0x51, 0x2f, + 0xdf, 0xd5, 0x83, 0xca, 0x6d, 0x80, 0x83, 0x30, 0xfc, 0x45, 0x92, 0x86, 0x11, 0x1f, 0xab, 0xe8, + 0x68, 0x88, 0xf7, 0x08, 0xda, 0x38, 0xc9, 0x95, 0xf7, 0xfd, 0x77, 0x78, 0x2b, 0xf0, 0x7e, 0x09, + 0xb7, 0x96, 0x0c, 0x3f, 0x08, 0x43, 0x15, 0xee, 0x2f, 0xcc, 0x95, 0x54, 0xd4, 0xcd, 0x4b, 0x8d, + 0xce, 0xe0, 0x1b, 0xec, 0xde, 0x33, 0xb8, 0xbd, 0xa4, 0xdc, 0xcc, 0xe7, 0x3b, 0x2e, 0xf0, 0x5b, + 0x0b, 0x3a, 0x6a, 0x85, 0xd2, 0xe6, 0x4f, 0xa1, 0x21, 0x21, 0xa5, 0xec, 0xa3, 0x05, 0x65, 0xc5, + 0x7b, 0xa2, 0xaf, 0xd8, 0x96, 0xf7, 0xb5, 0xbd, 0x62, 0x5f, 0x3b, 0x9f, 0x2d, 0x6c, 0xb7, 0x37, + 0x96, 0x79, 0xb1, 0xd3, 0xfc, 0xa2, 0x2c, 0x8e, 0x59, 0xcc, 0xb2, 0xf7, 0xe3, 0x73, 0x1f, 0x76, + 0xe8, 0x75, 0xee, 0xbd, 0x65, 0xe9, 0x67, 0xb0, 0x4b, 0x0a, 0xdf, 0xa3, 0x8d, 0x3f, 0x87, 0x9b, + 0x55, 0xa0, 0xf5, 0x26, 0xf8, 0x8e, 0x7a, 0xbf, 0x07, 0xd7, 0x07, 0x2c, 0x1e, 0xa1, 0xd6, 0xa7, + 0xb3, 0xb0, 0x3c, 0x45, 0x5e, 0xf3, 0x70, 0xf8, 0xbc, 0x41, 0x7f, 0x4e, 0x7d, 0xf6, 0xbf, 0x00, + 0x00, 0x00, 0xff, 0xff, 0x1c, 0xbd, 0xfd, 0xa5, 0xaf, 0x1a, 0x00, 0x00, } diff --git a/pkg/proto/sdk_ws/ws.proto b/pkg/proto/sdk_ws/ws.proto index 7ef3d4d22..1921ef694 100644 --- a/pkg/proto/sdk_ws/ws.proto +++ b/pkg/proto/sdk_ws/ws.proto @@ -2,6 +2,102 @@ syntax = "proto3"; package open_im_sdk;//The package name to which the proto file belongs //option go_package = "./sdk_ws;open_im_sdk";//The generated go pb file is in the current directory, and the package name is open_im_sdk +////////////////////////////////base/////////////////////////////// + + +message GroupInfo{ + string GroupID = 1; + string GroupName = 2; + string Notification = 3; + string Introduction = 4; + string FaceUrl = 5; + string OwnerUserID = 6; + int64 CreateTime = 7; + uint32 MemberCount = 8; + string Ex = 9; + int32 Status = 10; + string CreatorUserID = 11; + int32 GroupType = 12; +} + +message GroupMemberFullInfo { + string GroupID = 1 ; + string UserID = 2 ; + int32 roleLevel = 3; + int64 JoinTime = 4; + string NickName = 5; + string FaceUrl = 6; + string FriendRemark = 7; + int32 AppMangerLevel = 8; //if >0 + int32 JoinSource = 9; + string OperatorUserID = 10; + string Ex = 11; +} + +message PublicUserInfo{ + string UserID = 1; + string Nickname = 2; + string FaceUrl = 3; + int32 Gender = 4; + int32 AppMangerLevel = 5; //if >0 +} + +message UserInfo{ + string UserID = 1; + string Nickname = 2; + string FaceUrl = 3; + int32 Gender = 4; + string PhoneNumber = 5; + string Birth = 6; + string Email = 7; + string Ex = 8; +} + +message FriendInfo{ + string OwnerUserID = 1; + string Remark = 2; + int64 CreateTime = 3; + UserInfo FriendUser = 4; + int32 AddSource = 5; + string OperatorUserID = 6; + string Ex = 7; +} + +message BlackInfo{ + string OwnerUserID = 1; + int64 CreateTime = 2; + PublicUserInfo BlackUserInfo = 4; + int32 AddSource = 5; + string OperatorUserID = 6; + string Ex = 7; +} + +message GroupRequest{ + string UserID = 1; + string GroupID = 2; + string HandleResult = 3; + string ReqMsg = 4; + string HandleMsg = 5; + int64 ReqTime = 6; + string HandleUserID = 7; + int64 HandleTime = 8; + string Ex = 9; +} + +message FriendRequest{ + string FromUserID = 1; + string ToUserID = 2; + int32 HandleResult = 3; + string ReqMsg = 4; + int64 CreateTime = 5; + string HandlerUserID = 6; + string HandleMsg = 7; + int64 HandleTime = 8; + string Ex = 9; +} + +///////////////////////////////////base end///////////////////////////////////// + message PullMessageBySeqListResp { int32 errCode = 1; @@ -14,7 +110,7 @@ message PullMessageBySeqListResp { message PullMessageBySeqListReq{ string userID = 1; string operationID = 2; - repeated int64 seqList =3; + repeated int64 seqList = 3; } message PullMessageReq { string userID = 1; @@ -80,76 +176,38 @@ message MsgData { string sendID = 1; string recvID = 2; string groupID = 3; - string clientMsgID =4; - string serverMsgID =5; - int32 senderPlatformID =6; - string senderNickName =7; - string senderFaceURL =8; + string clientMsgID = 4; + string serverMsgID = 5; + int32 senderPlatformID = 6; + string senderNickname = 7; + string senderFaceURL = 8; int32 sessionType = 9; int32 msgFrom = 10; int32 contentType = 11; - bytes content =12; + bytes content = 12; repeated string forceList = 13; - int64 seq =14; + int64 seq = 14; int64 sendTime = 15; int64 createTime = 16; - map Options= 17; - OfflinePushInfo offlinePushInfo =18; + map Options = 17; + OfflinePushInfo offlinePushInfo = 18; } message OfflinePushInfo{ - string Title = 1; - string Desc = 2; - string Ext = 3; - string iOSPushSound = 4; - bool iOSBadgeCount = 5; + string Title = 1; + string Desc = 2; + string Ex = 3; + string iOSPushSound = 4; + bool iOSBadgeCount = 5; } -//public -message GroupInfo{ - string GroupID = 1; - string GroupName = 2; - string Notification = 3; - string Introduction = 4; - string FaceUrl = 5; - PublicUserInfo Owner = 6; - uint64 CreateTime = 7; - uint32 MemberCount = 8; - string Ext = 9; -} -//private, Group members have permission to view -message GroupMemberFullInfo { - string GroupID = 1 ; - string UserID = 2 ; - int32 AdministratorLevel = 3; - uint64 JoinTime = 4; - string NickName = 5; - string FaceUrl = 6; - string FriendRemark = 7; - int32 AppMangerLevel = 8; // >0 -} -//private, Friends have permission to view -message UserInfo{ - string UserID = 1; - string Nickname = 2; - string FaceUrl = 3; - int32 Gender = 4; - string Mobile = 5; - string Birth = 6; - string Email = 7; - string Ext = 8; -} -//No permissions required -message PublicUserInfo{ - string UserID = 1; - string Nickname = 2; - string FaceUrl = 3; - int32 Gender = 4; -} + + + message TipsComm{ bytes Detail = 1; @@ -161,35 +219,35 @@ message TipsComm{ message MemberEnterTips{ GroupInfo Group = 1; GroupMemberFullInfo EntrantUser = 2; - uint64 OperationTime = 3; + int64 OperationTime = 3; } //Actively leave the group message MemberLeaveTips{ GroupInfo Group = 1; GroupMemberFullInfo LeaverUser = 2; - uint64 OperationTime = 3; + int64 OperationTime = 3; } message MemberInvitedTips{ GroupInfo Group = 1; GroupMemberFullInfo OpUser = 2; repeated GroupMemberFullInfo InvitedUserList = 3; - uint64 OperationTime = 4; + int64 OperationTime = 4; } message MemberKickedTips{ GroupInfo Group = 1; GroupMemberFullInfo OpUser = 2; repeated GroupMemberFullInfo KickedUserList = 3; - uint64 OperationTime = 4; + int64 OperationTime = 4; } message MemberInfoChangedTips{ int32 ChangeType = 1; ///bitwise operators 0001:member info changed; 0010:mute ; GroupMemberFullInfo OpUser = 2; //who do this GroupMemberFullInfo FinalInfo = 3; // - uint64 MuteTime = 4; + int64 MuteTime = 4; GroupInfo Group = 5; } @@ -197,7 +255,7 @@ message GroupCreatedTips{ GroupInfo Group = 1; GroupMemberFullInfo Creator = 2; repeated GroupMemberFullInfo MemberList = 3; - uint64 OperationTime = 4; + int64 OperationTime = 4; } message GroupInfoChangedTips{ @@ -208,27 +266,27 @@ message GroupInfoChangedTips{ message JoinGroupApplicationTips{ GroupInfo Group = 1; - PublicUserInfo Applicant = 2; - string Reason = 3; + PublicUserInfo Applicant = 2; + string Reason = 3; } message ApplicationProcessedTips{ GroupInfo Group = 1; GroupMemberFullInfo OpUser = 2; int32 Result = 3; - string Reason = 4; + string Reason = 4; } //////////////////////friend///////////////////// -message FriendInfo{ - UserInfo OwnerUser = 1; - string Remark = 2; - uint64 CreateTime = 3; - UserInfo FriendUser = 4; -} +//message FriendInfo{ +// UserInfo OwnerUser = 1; +// string Remark = 2; +// uint64 CreateTime = 3; +// UserInfo FriendUser = 4; +//} message FriendApplication{ - uint64 AddTime = 1; + int64 AddTime = 1; string AddSource = 2; string AddWording = 3; } @@ -240,7 +298,7 @@ message FromToUserID{ //FromUserID apply to add ToUserID message FriendApplicationAddedTips{ - FromToUserID FromToUserID = 1; + FromToUserID FromToUserID = 1; } //FromUserID accept or reject ToUserID @@ -251,7 +309,7 @@ message FriendApplicationProcessedTips{ // FromUserID Added a friend ToUserID message FriendAddedTips{ FriendInfo Friend = 1; - uint64 OperationTime = 2; + int64 OperationTime = 2; PublicUserInfo OpUser = 3; //who do this } @@ -261,11 +319,7 @@ message FriendDeletedTips{ FromToUserID FromToUserID = 1; } -//message BlackInfo{ -// PublicUserInfo OwnerUser = 1; -// uint64 CreateTime = 3; -// PublicUserInfo BlackUser = 4; -//} + message BlackAddedTips{ FromToUserID FromToUserID = 1; From 774e348f958ac47cfed8cda1452df991f3534ed4 Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Mon, 27 Dec 2021 11:49:01 +0800 Subject: [PATCH 242/814] send msg file modify --- internal/rpc/msg/send_msg.go | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/internal/rpc/msg/send_msg.go b/internal/rpc/msg/send_msg.go index 293abe06b..2ea8aa2da 100644 --- a/internal/rpc/msg/send_msg.go +++ b/internal/rpc/msg/send_msg.go @@ -245,7 +245,7 @@ func Notification(n *NotificationMsg, onlineUserOnly bool) { var req pbChat.SendMsgReq var msg sdk_ws.MsgData var offlineInfo sdk_ws.OfflinePushInfo - var title, desc, ext string + var title, desc, ex string var pushSwitch bool req.OperationID = n.OperationID msg.SendID = n.SendID @@ -263,33 +263,33 @@ func Notification(n *NotificationMsg, onlineUserOnly bool) { } if onlineUserOnly { msg.Options = make(map[string]bool, 10) - utils.SetSwitchFromOptions(msg.Options, constant.IsOfflinePush, false) + //utils.SetSwitchFromOptions(msg.Options, constant.IsOfflinePush, false) utils.SetSwitchFromOptions(msg.Options, constant.IsHistory, false) utils.SetSwitchFromOptions(msg.Options, constant.IsPersistent, false) } offlineInfo.IOSBadgeCount = config.Config.IOSPush.BadgeCount offlineInfo.IOSPushSound = config.Config.IOSPush.PushSound switch msg.ContentType { - case constant.CreateGroupTip: + case constant.GroupCreatedNotification: pushSwitch = config.Config.Notification.GroupCreated.OfflinePush.PushSwitch title = config.Config.Notification.GroupCreated.OfflinePush.Title desc = config.Config.Notification.GroupCreated.OfflinePush.Desc - ext = config.Config.Notification.GroupCreated.OfflinePush.Ext - case constant.ChangeGroupInfoTip: + ex = config.Config.Notification.GroupCreated.OfflinePush.Ext + case constant.GroupInfoChangedNotification: pushSwitch = config.Config.Notification.GroupInfoChanged.OfflinePush.PushSwitch title = config.Config.Notification.GroupInfoChanged.OfflinePush.Title desc = config.Config.Notification.GroupInfoChanged.OfflinePush.Desc - ext = config.Config.Notification.GroupInfoChanged.OfflinePush.Ext - case constant.ApplyJoinGroupTip: + ex = config.Config.Notification.GroupInfoChanged.OfflinePush.Ext + case constant.JoinApplicationNotification: pushSwitch = config.Config.Notification.ApplyJoinGroup.OfflinePush.PushSwitch title = config.Config.Notification.ApplyJoinGroup.OfflinePush.Title desc = config.Config.Notification.ApplyJoinGroup.OfflinePush.Desc - ext = config.Config.Notification.ApplyJoinGroup.OfflinePush.Ext + ex = config.Config.Notification.ApplyJoinGroup.OfflinePush.Ext } utils.SetSwitchFromOptions(msg.Options, constant.IsOfflinePush, pushSwitch) offlineInfo.Title = title offlineInfo.Desc = desc - offlineInfo.Ext = ext + offlineInfo.Ex = ex msg.OfflinePushInfo = &offlineInfo req.MsgData = &msg etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImOfflineMessageName) From e439ef4ddd76301b73f983125797b99ff66e76e7 Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Mon, 27 Dec 2021 16:48:05 +0800 Subject: [PATCH 243/814] tidy code --- internal/api/user/get_user_info.go | 142 --- internal/api/user/update_user_info.go | 61 -- internal/api/user/user.go | 164 ++++ internal/rpc/auth/auth.go | 100 ++ internal/rpc/auth/rpcAuth.go | 62 -- internal/rpc/auth/user_register.go | 20 - internal/rpc/auth/user_token.go | 29 - internal/rpc/group/group.go | 80 +- internal/rpc/msg/send_msg.go | 23 +- internal/rpc/user/conversation.go | 59 -- internal/rpc/user/get_user_info.go | 90 -- .../get_user_info_to_client.go | 16 - internal/rpc/user/management_user.go | 96 -- internal/rpc/user/update_user_info.go | 85 -- internal/rpc/user/user.go | 238 +++++ pkg/base_info/friend_api_struct.go | 35 +- pkg/base_info/user_api_struct.go | 29 + .../mysql_model/im_mysql_model/group_model.go | 227 +---- .../im_mysql_model/group_request_model.go | 150 ++- .../im_mysql_model/model_struct.go | 6 +- .../im_mysql_model/user_black_list_model.go | 32 +- .../mysql_model/im_mysql_model/user_model.go | 166 +--- pkg/proto/auth/auth.pb.go | 235 ++--- pkg/proto/auth/auth.proto | 33 +- pkg/proto/user/user.pb.go | 896 +++++++----------- pkg/proto/user/user.proto | 138 ++- 26 files changed, 1367 insertions(+), 1845 deletions(-) delete mode 100644 internal/api/user/get_user_info.go create mode 100644 internal/api/user/user.go create mode 100644 internal/rpc/auth/auth.go delete mode 100644 internal/rpc/auth/rpcAuth.go delete mode 100644 internal/rpc/auth/user_register.go delete mode 100644 internal/rpc/auth/user_token.go delete mode 100644 internal/rpc/user/conversation.go delete mode 100644 internal/rpc/user/get_user_info.go delete mode 100644 internal/rpc/user/internal_service/get_user_info_to_client.go delete mode 100644 internal/rpc/user/management_user.go delete mode 100644 internal/rpc/user/update_user_info.go create mode 100644 internal/rpc/user/user.go create mode 100644 pkg/base_info/user_api_struct.go diff --git a/internal/api/user/get_user_info.go b/internal/api/user/get_user_info.go deleted file mode 100644 index db8a6d77d..000000000 --- a/internal/api/user/get_user_info.go +++ /dev/null @@ -1,142 +0,0 @@ -package user - -import ( - "Open_IM/pkg/common/config" - "Open_IM/pkg/common/constant" - "Open_IM/pkg/common/log" - "Open_IM/pkg/grpc-etcdv3/getcdv3" - pbRelay "Open_IM/pkg/proto/relay" - pbUser "Open_IM/pkg/proto/user" - "context" - "github.com/gin-gonic/gin" - "net/http" - "strings" -) - -type userInfo struct { - UID string `json:"uid"` - Name string `json:"name"` - Icon string `json:"icon"` - Gender int32 `json:"gender"` - Mobile string `json:"mobile"` - Birth string `json:"birth"` - Email string `json:"email"` - Ex string `json:"ex"` -} - -type paramsGetUsersOnlineStatus struct { - OperationID string `json:"operationID" binding:"required"` - UserIDList []string `json:"userIDList" binding:"required,lte=200"` - Secret string `json:"secret" binding:"required,max=32"` -} - -func GetUsersOnlineStatus(c *gin.Context) { - params := paramsGetUsersOnlineStatus{} - if err := c.BindJSON(¶ms); err != nil { - log.NewError(params.OperationID, "bind json failed ", err.Error(), c) - c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": err.Error()}) - return - } - - if params.Secret != config.Config.Secret { - log.NewError(params.OperationID, "parse token failed ", params.Secret, config.Config.Secret) - c.JSON(http.StatusBadRequest, gin.H{"errCode": 401, "errMsg": "secret failed"}) - return - } - - req := &pbRelay.GetUsersOnlineStatusReq{ - OperationID: params.OperationID, - UserIDList: params.UserIDList, - } - var wsResult []*pbRelay.GetUsersOnlineStatusResp_SuccessResult - var respResult []*pbRelay.GetUsersOnlineStatusResp_SuccessResult - flag := false - log.NewDebug(params.OperationID, "GetUsersOnlineStatus req come here", params.UserIDList) - - grpcCons := getcdv3.GetConn4Unique(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImOnlineMessageRelayName) - for _, v := range grpcCons { - client := pbRelay.NewOnlineMessageRelayServiceClient(v) - reply, err := client.GetUsersOnlineStatus(context.Background(), req) - if err != nil { - log.NewError(params.OperationID, "GetUsersOnlineStatus rpc err", req.String(), err.Error()) - continue - } else { - if reply.ErrCode == 0 { - wsResult = append(wsResult, reply.SuccessResult...) - } - } - } - log.NewDebug(params.OperationID, "call GetUsersOnlineStatus rpc server is success", wsResult) - //Online data merge of each node - for _, v1 := range params.UserIDList { - flag = false - temp := new(pbRelay.GetUsersOnlineStatusResp_SuccessResult) - for _, v2 := range wsResult { - if v2.UserID == v1 { - flag = true - temp.UserID = v1 - temp.Status = constant.OnlineStatus - temp.DetailPlatformStatus = append(temp.DetailPlatformStatus, v2.DetailPlatformStatus...) - } - } - if !flag { - temp.UserID = v1 - temp.Status = constant.OfflineStatus - } - respResult = append(respResult, temp) - } - log.NewDebug(params.OperationID, "Finished merged data", respResult) - resp := gin.H{"errCode": 0, "errMsg": "", "successResult": respResult} - c.JSON(http.StatusOK, resp) -} - -func GetUserInfo(c *gin.Context) { - log.InfoByKv("api get userinfo init...", "") - - etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImUserName) - client := pbUser.NewUserClient(etcdConn) - //defer etcdConn.Close() - - params := paramsStruct{} - if err := c.BindJSON(¶ms); err != nil { - c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": err.Error()}) - return - } - req := &pbUser.GetUserInfoReq{ - UserIDList: params.UIDList, - OperationID: params.OperationID, - Token: c.Request.Header.Get("token"), - } - log.InfoByKv("api get user info is server", c.PostForm("OperationID"), c.Request.Header.Get("token")) - RpcResp, err := client.GetUserInfo(context.Background(), req) - if err != nil { - log.Error(req.Token, req.OperationID, "err=%s,call get user info rpc server failed", err) - c.JSON(http.StatusInternalServerError, gin.H{ - "errorCode": 500, - "errorMsg": "call rpc server failed", - }) - return - } - log.InfoByKv("call get user info rpc server success", params.OperationID) - if RpcResp.ErrorCode == 0 { - userInfoList := make([]userInfo, 0) - for _, user := range RpcResp.Data { - var ui userInfo - ui.UID = user.Uid - ui.Name = user.Name - ui.Icon = user.Icon - ui.Gender = user.Gender - ui.Mobile = user.Mobile - ui.Birth = user.Birth - ui.Email = user.Email - ui.Ex = user.Ex - userInfoList = append(userInfoList, ui) - } - resp := gin.H{"errCode": RpcResp.ErrorCode, "errMsg": RpcResp.ErrorMsg, "data": userInfoList} - c.JSON(http.StatusOK, resp) - } else { - resp := gin.H{"errCode": RpcResp.ErrorCode, "errMsg": RpcResp.ErrorMsg} - c.JSON(http.StatusOK, resp) - } - log.InfoByKv("api get user info return success", params.OperationID, "args=%s", RpcResp.String()) -} diff --git a/internal/api/user/update_user_info.go b/internal/api/user/update_user_info.go index 89628ded4..a00006b65 100644 --- a/internal/api/user/update_user_info.go +++ b/internal/api/user/update_user_info.go @@ -1,62 +1 @@ package user - -import ( - "Open_IM/pkg/common/config" - "Open_IM/pkg/common/log" - "Open_IM/pkg/grpc-etcdv3/getcdv3" - pbUser "Open_IM/pkg/proto/user" - "context" - "github.com/gin-gonic/gin" - "net/http" - "strings" -) - -type paramsStruct struct { - OperationID string `json:"operationID" binding:"required"` - UIDList []string `json:"uidList"` - Platform int32 `json:"platform"` - Name string `json:"name"` - Icon string `json:"icon"` - Gender int32 `json:"gender"` - Mobile string `json:"mobile"` - Birth string `json:"birth"` - Email string `json:"email"` - Ex string `json:"ex"` - Uid string `json:"uid"` -} - -func UpdateUserInfo(c *gin.Context) { - log.InfoByKv("api update userinfo init...", "") - - etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImUserName) - client := pbUser.NewUserClient(etcdConn) - //defer etcdConn.Close() - - params := paramsStruct{} - if err := c.BindJSON(¶ms); err != nil { - c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": err.Error()}) - return - } - req := &pbUser.UpdateUserInfoReq{ - OperationID: params.OperationID, - Token: c.Request.Header.Get("token"), - Name: params.Name, - Icon: params.Icon, - Gender: params.Gender, - Mobile: params.Mobile, - Birth: params.Birth, - Email: params.Email, - Ex: params.Ex, - Uid: params.Uid, - } - log.InfoByKv("api update user info is server", req.OperationID, req.Token) - RpcResp, err := client.UpdateUserInfo(context.Background(), req) - if err != nil { - log.Error(req.Token, req.OperationID, "err=%s,call get user info rpc server failed", err) - c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": "call rpc server failed"}) - return - } - log.InfoByKv("call update user info rpc server success", params.OperationID) - c.JSON(http.StatusOK, gin.H{"errCode": RpcResp.ErrorCode, "errMsg": RpcResp.ErrorMsg}) - log.InfoByKv("api update user info return success", params.OperationID, "args=%s", RpcResp.String()) -} diff --git a/internal/api/user/user.go b/internal/api/user/user.go new file mode 100644 index 000000000..a3d311649 --- /dev/null +++ b/internal/api/user/user.go @@ -0,0 +1,164 @@ +package user + +import ( + "Open_IM/pkg/common/config" + "Open_IM/pkg/common/log" + "Open_IM/pkg/common/token_verify" + "Open_IM/pkg/grpc-etcdv3/getcdv3" + "Open_IM/pkg/utils" + + // rpc "Open_IM/pkg/proto/relay" + api "Open_IM/pkg/base_info" + rpc "Open_IM/pkg/proto/user" + "context" + "github.com/gin-gonic/gin" + "net/http" + "strings" +) + +// +//func GetUsersOnlineStatus(c *gin.Context) { +// params := api.GetUsersOnlineStatusReq{} +// if err := c.BindJSON(¶ms); err != nil { +// log.NewError(params.OperationID, "bind json failed ", err.Error(), c) +// c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": err.Error()}) +// return +// } +// +// if params.Secret != config.Config.Secret { +// log.NewError(params.OperationID, "parse token failed ", params.Secret, config.Config.Secret) +// c.JSON(http.StatusBadRequest, gin.H{"errCode": 401, "errMsg": "secret failed"}) +// return +// } +// +// req := &pbRelay.GetUsersOnlineStatusReq{ +// OperationID: params.OperationID, +// UserIDList: params.UserIDList, +// } +// var wsResult []*rpc.GetUsersOnlineStatusResp_SuccessResult +// var respResult []*rpc.GetUsersOnlineStatusResp_SuccessResult +// flag := false +// log.NewDebug(params.OperationID, "GetUsersOnlineStatus req come here", params.UserIDList) +// +// grpcCons := getcdv3.GetConn4Unique(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImOnlineMessageRelayName) +// for _, v := range grpcCons { +// client := rpc.NewOnlineMessageRelayServiceClient(v) +// reply, err := client.GetUsersOnlineStatus(context.Background(), req) +// if err != nil { +// log.NewError(params.OperationID, "GetUsersOnlineStatus rpc err", req.String(), err.Error()) +// continue +// } else { +// if reply.ErrCode == 0 { +// wsResult = append(wsResult, reply.SuccessResult...) +// } +// } +// } +// log.NewDebug(params.OperationID, "call GetUsersOnlineStatus rpc server is success", wsResult) +// //Online data merge of each node +// for _, v1 := range params.UserIDList { +// flag = false +// temp := new(pbRelay.GetUsersOnlineStatusResp_SuccessResult) +// for _, v2 := range wsResult { +// if v2.UserID == v1 { +// flag = true +// temp.UserID = v1 +// temp.Status = constant.OnlineStatus +// temp.DetailPlatformStatus = append(temp.DetailPlatformStatus, v2.DetailPlatformStatus...) +// } +// } +// if !flag { +// temp.UserID = v1 +// temp.Status = constant.OfflineStatus +// } +// respResult = append(respResult, temp) +// } +// log.NewDebug(params.OperationID, "Finished merged data", respResult) +// resp := gin.H{"errCode": 0, "errMsg": "", "data": respResult} +// +// c.JSON(http.StatusOK, resp) +//} +//params := api.AddBlacklistReq{} +// if err := c.BindJSON(¶ms); err != nil { +// c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": err.Error()}) +// log.NewError("0", "BindJSON failed ", err.Error()) +// return +// } +// req := &rpc.AddBlacklistReq{} +// utils.CopyStructFields(req.CommID, params) +// var ok bool +// ok, req.CommID.OpUserID = token_verify.GetUserIDFromToken(c.Request.Header.Get("token")) +// if !ok { +// log.NewError(req.CommID.OperationID, "GetUserIDFromToken false ", c.Request.Header.Get("token")) +// c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": "GetUserIDFromToken failed"}) +// return +// } +// log.NewInfo(params.OperationID, "AddBlacklist args ", req.String()) + +func GetUserInfo(c *gin.Context) { + params := api.GetUserInfoReq{} + if err := c.BindJSON(¶ms); err != nil { + c.JSON(http.StatusBadRequest, gin.H{"errCode": http.StatusBadRequest, "errMsg": err.Error()}) + return + } + req := &rpc.GetUserInfoReq{} + utils.CopyStructFields(&req, params) + var ok bool + ok, req.OpUserID = token_verify.GetUserIDFromToken(c.Request.Header.Get("token")) + if !ok { + log.NewError(req.OperationID, "GetUserIDFromToken false ", c.Request.Header.Get("token")) + c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": "GetUserIDFromToken failed"}) + return + } + 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) + if err != nil { + log.NewError(req.OperationID, "GetUserInfo failed ", err.Error(), req.String()) + c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": "call rpc server failed"}) + return + } + + resp := api.GetUserInfoResp{CommResp: api.CommResp{ErrCode: RpcResp.CommonResp.ErrCode, ErrMsg: RpcResp.CommonResp.ErrMsg}} + resp.UserInfoList = RpcResp.UserInfoList + c.JSON(http.StatusOK, resp) + + log.NewInfo(req.OperationID, "GetUserInfo api return ", resp) +} + +func UpdateUserInfo(c *gin.Context) { + log.InfoByKv("api update userinfo init...", "") + + etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImUserName) + client := pbUser.NewUserClient(etcdConn) + //defer etcdConn.Close() + + params := paramsStruct{} + if err := c.BindJSON(¶ms); err != nil { + c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": err.Error()}) + return + } + req := &pbUser.UpdateUserInfoReq{ + OperationID: params.OperationID, + Token: c.Request.Header.Get("token"), + Name: params.Name, + Icon: params.Icon, + Gender: params.Gender, + Mobile: params.Mobile, + Birth: params.Birth, + Email: params.Email, + Ex: params.Ex, + Uid: params.Uid, + } + log.InfoByKv("api update user info is server", req.OperationID, req.Token) + RpcResp, err := client.UpdateUserInfo(context.Background(), req) + if err != nil { + log.Error(req.Token, req.OperationID, "err=%s,call get user info rpc server failed", err) + c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": "call rpc server failed"}) + return + } + log.InfoByKv("call update user info rpc server success", params.OperationID) + c.JSON(http.StatusOK, gin.H{"errCode": RpcResp.ErrorCode, "errMsg": RpcResp.ErrorMsg}) + log.InfoByKv("api update user info return success", params.OperationID, "args=%s", RpcResp.String()) +} diff --git a/internal/rpc/auth/auth.go b/internal/rpc/auth/auth.go new file mode 100644 index 000000000..166df967a --- /dev/null +++ b/internal/rpc/auth/auth.go @@ -0,0 +1,100 @@ +package auth + +import ( + "Open_IM/pkg/common/constant" + 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" + pbAuth "Open_IM/pkg/proto/auth" + "Open_IM/pkg/utils" + "context" + "net" + "strconv" + "strings" + + "Open_IM/pkg/common/config" + + "google.golang.org/grpc" +) + +func (rpc *rpcAuth) UserRegister(_ context.Context, req *pbAuth.UserRegisterReq) (*pbAuth.UserRegisterResp, error) { + log.NewInfo(req.OperationID, "UserRegister args ", req.String()) + var user imdb.User + utils.CopyStructFields(&user, req.UserInfo) + err := imdb.UserRegister(user) + if err != nil { + log.NewError(req.OperationID, "UserRegister failed ", err.Error(), user) + return &pbAuth.UserRegisterResp{CommonResp: &pbAuth.CommonResp{ErrCode: constant.ErrDB.ErrCode, ErrMsg: constant.ErrDB.ErrMsg}}, nil + } + + log.NewInfo(req.OperationID, "rpc UserRegister return") + return &pbAuth.UserRegisterResp{CommonResp: &pbAuth.CommonResp{}}, nil +} + +func (rpc *rpcAuth) UserToken(_ context.Context, req *pbAuth.UserTokenReq) (*pbAuth.UserTokenResp, error) { + log.NewInfo(req.OperationID, "UserToken args ", req.String()) + + _, err := imdb.GetUserByUserID(req.FromUserID) + if err != nil { + log.NewError(req.OperationID, "GetUserByUserID failed ", err.Error(), req.FromUserID) + return &pbAuth.UserTokenResp{CommonResp: &pbAuth.CommonResp{ErrCode: constant.ErrDB.ErrCode, ErrMsg: constant.ErrDB.ErrMsg}}, nil + } + + tokens, expTime, err := token_verify.CreateToken(req.FromUserID, req.Platform) + if err != nil { + log.NewError(req.OperationID, "CreateToken failed ", err.Error(), req.FromUserID, req.Platform) + return &pbAuth.UserTokenResp{CommonResp: &pbAuth.CommonResp{ErrCode: constant.ErrDB.ErrCode, ErrMsg: constant.ErrDB.ErrMsg}}, nil + } + + log.NewInfo(req.OperationID, "rpc UserToken return ") + return &pbAuth.UserTokenResp{Token: tokens, ExpiredTime: expTime}, nil +} + +type rpcAuth struct { + rpcPort int + rpcRegisterName string + etcdSchema string + etcdAddr []string +} + +func NewRpcAuthServer(port int) *rpcAuth { + log.NewPrivateLog("auth") + return &rpcAuth{ + rpcPort: port, + rpcRegisterName: config.Config.RpcRegisterName.OpenImAuthName, + etcdSchema: config.Config.Etcd.EtcdSchema, + etcdAddr: config.Config.Etcd.EtcdAddr, + } +} + +func (rpc *rpcAuth) Run() { + log.NewInfo("0", "rpc auth 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 + pbAuth.RegisterAuthServer(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", "RegisterAuthServer 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 auth ok") +} diff --git a/internal/rpc/auth/rpcAuth.go b/internal/rpc/auth/rpcAuth.go deleted file mode 100644 index 162f04fd5..000000000 --- a/internal/rpc/auth/rpcAuth.go +++ /dev/null @@ -1,62 +0,0 @@ -package auth - -import ( - "Open_IM/pkg/common/config" - "Open_IM/pkg/common/log" - "Open_IM/pkg/grpc-etcdv3/getcdv3" - pbAuth "Open_IM/pkg/proto/auth" - "Open_IM/pkg/utils" - "google.golang.org/grpc" - "net" - "strconv" - "strings" -) - -type rpcAuth struct { - rpcPort int - rpcRegisterName string - etcdSchema string - etcdAddr []string -} - -func NewRpcAuthServer(port int) *rpcAuth { - log.NewPrivateLog("auth") - return &rpcAuth{ - rpcPort: port, - rpcRegisterName: config.Config.RpcRegisterName.OpenImAuthName, - etcdSchema: config.Config.Etcd.EtcdSchema, - etcdAddr: config.Config.Etcd.EtcdAddr, - } -} - -func (rpc *rpcAuth) Run() { - log.Info("", "", "rpc get_token init...") - - address := utils.ServerIP + ":" + strconv.Itoa(rpc.rpcPort) - listener, err := net.Listen("tcp", address) - if err != nil { - log.Error("", "", "listen network failed, err = %s, address = %s", err.Error(), address) - return - } - log.Info("", "", "listen network success, address = %s", address) - - //grpc server - srv := grpc.NewServer() - defer srv.GracefulStop() - - //service registers with etcd - - pbAuth.RegisterAuthServer(srv, rpc) - err = getcdv3.RegisterEtcd(rpc.etcdSchema, strings.Join(rpc.etcdAddr, ","), utils.ServerIP, rpc.rpcPort, rpc.rpcRegisterName, 10) - if err != nil { - log.Error("", "", "register rpc get_token to etcd failed, err = %s", err.Error()) - return - } - - err = srv.Serve(listener) - if err != nil { - log.Info("", "", "rpc get_token fail, err = %s", err.Error()) - return - } - log.Info("", "", "rpc get_token init success") -} diff --git a/internal/rpc/auth/user_register.go b/internal/rpc/auth/user_register.go deleted file mode 100644 index 3f5de7032..000000000 --- a/internal/rpc/auth/user_register.go +++ /dev/null @@ -1,20 +0,0 @@ -package auth - -import ( - "Open_IM/pkg/common/db/mysql_model/im_mysql_model" - "Open_IM/pkg/common/log" - pbAuth "Open_IM/pkg/proto/auth" - "context" -) - -func (rpc *rpcAuth) UserRegister(_ context.Context, pb *pbAuth.UserRegisterReq) (*pbAuth.UserRegisterResp, error) { - log.Info("", "", "rpc user_register start, [data: %s]", pb.String()) - - if err := im_mysql_model.UserRegister(pb); err != nil { - log.Error("", "", "rpc user_register error, [data: %s] [err: %s]", pb.String(), err.Error()) - return &pbAuth.UserRegisterResp{Success: false}, err - } - log.Info("", "", "rpc user_register success return") - - return &pbAuth.UserRegisterResp{Success: true}, nil -} diff --git a/internal/rpc/auth/user_token.go b/internal/rpc/auth/user_token.go deleted file mode 100644 index a1455b237..000000000 --- a/internal/rpc/auth/user_token.go +++ /dev/null @@ -1,29 +0,0 @@ -package auth - -import ( - "Open_IM/pkg/common/db/mysql_model/im_mysql_model" - "Open_IM/pkg/common/log" - "Open_IM/pkg/common/token_verify" - pbAuth "Open_IM/pkg/proto/auth" - "context" -) - -func (rpc *rpcAuth) UserToken(_ context.Context, pb *pbAuth.UserTokenReq) (*pbAuth.UserTokenResp, error) { - log.Info("", "", "rpc user_token call start..., [pbTokenReq: %s]", pb.String()) - - _, err := im_mysql_model.FindUserByUID(pb.UID) - if err != nil { - log.Error("", "", "rpc user_token call..., im_mysql_model.AppServerFindFromUserByUserID fail [uid: %s] [err: %s]", pb.UID, err.Error()) - return &pbAuth.UserTokenResp{ErrCode: 500, ErrMsg: err.Error()}, err - } - log.Info("", "", "rpc user_token call..., im_mysql_model.AppServerFindFromUserByUserID") - - tokens, expTime, err := token_verify.CreateToken(pb.UID, pb.Platform) - if err != nil { - log.Error("", "", "rpc user_token call..., utils.CreateToken fail [uid: %s] [err: %s]", pb.UID, err.Error()) - return &pbAuth.UserTokenResp{ErrCode: 500, ErrMsg: err.Error()}, err - } - log.Info("", "", "rpc user_token success return, [uid: %s] [tokens: %s]", pb.UID, tokens) - - return &pbAuth.UserTokenResp{Token: tokens, ExpiredTime: expTime}, nil -} diff --git a/internal/rpc/group/group.go b/internal/rpc/group/group.go index db04d91f7..da9f82709 100644 --- a/internal/rpc/group/group.go +++ b/internal/rpc/group/group.go @@ -423,51 +423,37 @@ func (s *groupServer) GetGroupsInfo(ctx context.Context, req *pbGroup.GetGroupsI func (s *groupServer) GroupApplicationResponse(_ context.Context, req *pbGroup.GroupApplicationResponseReq) (*pbGroup.GroupApplicationResponseResp, error) { log.NewInfo(req.OperationID, "GroupApplicationResponse args ", req.String()) - reply, err := imdb.GroupApplicationResponse(req) + + groupRequest := imdb.GroupRequest{} + groupRequest.UserID = req.FromUserID + groupRequest.GroupID = req.GroupID + groupRequest.HandledTime = time.Now() + groupRequest.HandleResult = req.HandleResult + groupRequest.HandleUserID = req.OpUserID + groupRequest.HandledMsg = req.HandledMsg + err := imdb.UpdateGroupRequest(groupRequest) if err != nil { log.NewError(req.OperationID, "GroupApplicationResponse failed ", err.Error(), req.String()) - return &pbGroup.GroupApplicationResponseResp{CommonResp: &pbGroup.CommonResp{ErrCode: 702, ErrMsg: err.Error()}}, nil + return &pbGroup.GroupApplicationResponseResp{CommonResp: &pbGroup.CommonResp{ErrCode: constant.ErrDB.ErrCode, ErrMsg: constant.ErrDB.ErrMsg}}, nil } - + chat.ApplicationProcessedNotification(req) if req.HandleResult == 1 { - if req.ToUserID == "0" { - err = db.DB.AddGroupMember(req.GroupID, req.FromUserID) - if err != nil { - log.NewError(req.OperationID, "AddGroupMember failed ", err.Error(), req.GroupID, req.FromUserID) - } - } else { - err = db.DB.AddGroupMember(req.GroupID, req.ToUserID) - if err != nil { - log.NewError(req.OperationID, "AddGroupMember failed ", err.Error(), req.GroupID, req.ToUserID) - } - } - } - if req.ToUserID == "0" { - //group, err := imdb.FindGroupInfoByGroupId(req.GroupID) - //if err != nil { - // log.NewError(req.OperationID, "FindGroupInfoByGroupId failed ", req.GroupID) - // return reply, nil - //} - //member, err := imdb.FindGroupMemberInfoByGroupIdAndUserId(req.GroupID, req.OpUserID) - //if err != nil { - // log.NewError(req.OperationID, "FindGroupMemberInfoByGroupIdAndUserId failed ", req.GroupID, req.OpUserID) - // return reply, nil + chat.MemberEnterNotification(req) + //if req.ToUserID == "0" { + // err = db.DB.AddGroupMember(req.GroupID, req.FromUserID) + // if err != nil { + // log.NewError(req.OperationID, "AddGroupMember failed ", err.Error(), req.GroupID, req.FromUserID) + // } + //} else { + // err = db.DB.AddGroupMember(req.GroupID, req.ToUserID) + // if err != nil { + // log.NewError(req.OperationID, "AddGroupMember failed ", err.Error(), req.GroupID, req.ToUserID) + // } //} - chat.ApplicationProcessedNotification(req) - if req.HandleResult == 1 { - // entrantUser, err := imdb.FindGroupMemberInfoByGroupIdAndUserId(req.GroupID, req.FromUserID) - // if err != nil { - // log.NewError(req.OperationID, "FindGroupMemberInfoByGroupIdAndUserId failed ", err.Error(), req.GroupID, req.FromUserID) - // return reply, nil - // } - chat.MemberEnterNotification(req) - } - } else { - log.NewError(req.OperationID, "args failed ", req.String()) } - log.NewInfo(req.OperationID, "rpc GroupApplicationResponse return ", reply) - return reply, nil + log.NewInfo(req.OperationID, "rpc GroupApplicationResponse return ") + return &pbGroup.GroupApplicationResponseResp{CommonResp: &pbGroup.CommonResp{}}, nil } func (s *groupServer) JoinGroup(ctx context.Context, req *pbGroup.JoinGroupReq) (*pbGroup.JoinGroupResp, error) { @@ -584,13 +570,23 @@ func (s *groupServer) SetGroupInfo(ctx context.Context, req *pbGroup.SetGroupInf func (s *groupServer) TransferGroupOwner(_ context.Context, req *pbGroup.TransferGroupOwnerReq) (*pbGroup.TransferGroupOwnerResp, error) { log.NewInfo(req.OperationID, "TransferGroupOwner ", req.String()) - reply, err := im_mysql_model.TransferGroupOwner(req) + if req.OldOwnerUserID == req.NewOwnerUserID { + log.NewError(req.OperationID, "same owner ", req.String()) + return &pbGroup.TransferGroupOwnerResp{CommonResp: &pbGroup.CommonResp{ErrCode: constant.ErrArgs.ErrCode, ErrMsg: constant.ErrArgs.ErrMsg}}, nil + } + groupMemberInfo := imdb.GroupMember{GroupID: req.GroupID, UserID: req.OldOwnerUserID, RoleLevel: 0} + err := imdb.UpdateGroupMemberInfo(groupMemberInfo) + if err != nil { + return &pbGroup.TransferGroupOwnerResp{CommonResp: &pbGroup.CommonResp{ErrCode: constant.ErrDB.ErrCode, ErrMsg: constant.ErrDB.ErrMsg}}, nil + } + groupMemberInfo = imdb.GroupMember{GroupID: req.GroupID, UserID: req.NewOwnerUserID, RoleLevel: 1} + err = imdb.UpdateGroupMemberInfo(groupMemberInfo) if err != nil { - log.NewError("TransferGroupOwner ", req.String()) return &pbGroup.TransferGroupOwnerResp{CommonResp: &pbGroup.CommonResp{ErrCode: constant.ErrDB.ErrCode, ErrMsg: constant.ErrDB.ErrMsg}}, nil } changedType := int32(1) << 4 chat.GroupInfoChangedNotification(req.OperationID, req.OpUserID, req.GroupID, changedType) - log.NewInfo("TransferGroupOwner rpc return ", reply.String()) - return reply, nil + + return &pbGroup.TransferGroupOwnerResp{CommonResp: &pbGroup.CommonResp{ErrCode: 0, ErrMsg: ""}}, nil + } diff --git a/internal/rpc/msg/send_msg.go b/internal/rpc/msg/send_msg.go index 293abe06b..61fa147cf 100644 --- a/internal/rpc/msg/send_msg.go +++ b/internal/rpc/msg/send_msg.go @@ -792,19 +792,19 @@ func FriendDeletedNotification(req *pbFriend.DeleteFriendReq) { // PublicUserInfo OpUser = 2; // uint64 OperationTime = 3; //} -func FriendInfoChangedNotification(req *pbFriend.SetFriendCommentReq) { +func FriendInfoChangedNotification(operationID, opUserID, fromUserID, toUserID string) { var n NotificationMsg - n.SendID = req.CommID.FromUserID - n.RecvID = req.CommID.ToUserID + n.SendID = fromUserID + n.RecvID = toUserID n.ContentType = constant.FriendInfoChangedNotification n.SessionType = constant.SingleChatType n.MsgFrom = constant.SysMsgType - n.OperationID = req.CommID.OperationID + n.OperationID = operationID var FriendInfoChangedTips open_im_sdk.FriendInfoChangedTips - FriendInfoChangedTips.FromToUserID.FromUserID = req.CommID.FromUserID - FriendInfoChangedTips.FromToUserID.ToUserID = req.CommID.ToUserID - fromUserNickname, toUserNickname := getFromToUserNickname(req.CommID.OperationID, req.CommID.FromUserID, req.CommID.ToUserID) + FriendInfoChangedTips.FromToUserID.FromUserID = fromUserID + FriendInfoChangedTips.FromToUserID.ToUserID = toUserID + fromUserNickname, toUserNickname := getFromToUserNickname(operationID, fromUserID, toUserID) var tips open_im_sdk.TipsComm tips.Detail, _ = json.Marshal(FriendInfoChangedTips) tips.DefaultTips = fromUserNickname + " FriendDeletedNotification " + toUserNickname @@ -812,15 +812,6 @@ func FriendInfoChangedNotification(req *pbFriend.SetFriendCommentReq) { Notification(&n, true) } -//message BlackAddedTips{ -// BlackInfo Black = 1; -//} -//message BlackInfo{ -// PublicUserInfo OwnerUser = 1; -// string Remark = 2; -// uint64 CreateTime = 3; -// PublicUserInfo BlackUser = 4; -//} func BlackAddedNotification(req *pbFriend.AddBlacklistReq) { var n NotificationMsg n.SendID = req.CommID.FromUserID diff --git a/internal/rpc/user/conversation.go b/internal/rpc/user/conversation.go deleted file mode 100644 index 1f87c1cd4..000000000 --- a/internal/rpc/user/conversation.go +++ /dev/null @@ -1,59 +0,0 @@ -package user - -import ( - "Open_IM/pkg/common/constant" - "Open_IM/pkg/common/db" - "Open_IM/pkg/common/log" - pbUser "Open_IM/pkg/proto/user" - "context" -) - -func (s *userServer) SetReceiveMessageOpt(ctx context.Context, req *pbUser.SetReceiveMessageOptReq) (*pbUser.SetReceiveMessageOptResp, error) { - m := make(map[string]int, len(req.ConversationId)) - for _, v := range req.ConversationId { - m[v] = int(req.Opt) - } - err := db.DB.SetMultiConversationMsgOpt(req.UId, m) - if err != nil { - log.NewError(req.OperationID, "SetMultiConversationMsgOpt failed ", err.Error(), req) - return &pbUser.SetReceiveMessageOptResp{ErrCode: constant.DatabaseError, ErrMsg: err.Error()}, nil - } - var resp pbUser.SetReceiveMessageOptResp - resp.ErrCode = 0 - - for _, v := range req.ConversationId { - resp.OptResult = append(resp.OptResult, &pbUser.OptResult{ConversationId: v, Result: 0}) - } - log.NewInfo(req.OperationID, "SetReceiveMessageOpt req, resp ", req, resp) - return &resp, nil -} - -func (s *userServer) GetReceiveMessageOpt(ctx context.Context, req *pbUser.GetReceiveMessageOptReq) (*pbUser.GetReceiveMessageOptResp, error) { - m, err := db.DB.GetMultiConversationMsgOpt(req.UId, req.ConversationId) - if err != nil { - log.NewError(req.OperationID, "GetMultiConversationMsgOpt failed ", err.Error(), req) - return &pbUser.GetReceiveMessageOptResp{ErrCode: constant.DatabaseError, ErrMsg: err.Error()}, nil - } - var resp pbUser.GetReceiveMessageOptResp - resp.ErrCode = 0 - for k, v := range m { - resp.ConversationOptResult = append(resp.ConversationOptResult, &pbUser.OptResult{ConversationId: k, Result: int32(v)}) - } - log.NewInfo(req.OperationID, "GetReceiveMessageOpt, req, resp", req, resp) - return &resp, nil -} - -func (s *userServer) GetAllConversationMsgOpt(ctx context.Context, req *pbUser.GetAllConversationMsgOptReq) (*pbUser.GetAllConversationMsgOptResp, error) { - m, err := db.DB.GetAllConversationMsgOpt(req.UId) - if err != nil { - log.NewError(req.OperationID, "GetAllConversationMsgOpt failed ", err.Error(), req) - return &pbUser.GetAllConversationMsgOptResp{ErrCode: constant.DatabaseError, ErrMsg: err.Error()}, nil - } - var resp pbUser.GetAllConversationMsgOptResp - resp.ErrCode = 0 - for k, v := range m { - resp.ConversationOptResult = append(resp.ConversationOptResult, &pbUser.OptResult{ConversationId: k, Result: int32(v)}) - } - log.NewInfo(req.OperationID, "GetAllConversationMsgOpt, req, resp", req, resp) - return &resp, nil -} diff --git a/internal/rpc/user/get_user_info.go b/internal/rpc/user/get_user_info.go deleted file mode 100644 index eca8afbd5..000000000 --- a/internal/rpc/user/get_user_info.go +++ /dev/null @@ -1,90 +0,0 @@ -package user - -import ( - "Open_IM/pkg/common/config" - "Open_IM/pkg/common/db/mysql_model/im_mysql_model" - "Open_IM/pkg/common/log" - "Open_IM/pkg/grpc-etcdv3/getcdv3" - pbUser "Open_IM/pkg/proto/user" - "Open_IM/pkg/utils" - "context" - "google.golang.org/grpc" - "net" - "strconv" - "strings" -) - -type userServer struct { - rpcPort int - rpcRegisterName string - etcdSchema string - etcdAddr []string -} - -func NewUserServer(port int) *userServer { - log.NewPrivateLog("user") - return &userServer{ - rpcPort: port, - rpcRegisterName: config.Config.RpcRegisterName.OpenImUserName, - etcdSchema: config.Config.Etcd.EtcdSchema, - etcdAddr: config.Config.Etcd.EtcdAddr, - } -} - -func (s *userServer) Run() { - log.Info("", "", "rpc user init....") - - ip := utils.ServerIP - registerAddress := ip + ":" + strconv.Itoa(s.rpcPort) - //listener network - listener, err := net.Listen("tcp", registerAddress) - if err != nil { - log.InfoByArgs("listen network failed,err=%s", err.Error()) - return - } - log.Info("", "", "listen network success, address = %s", registerAddress) - defer listener.Close() - //grpc server - srv := grpc.NewServer() - defer srv.GracefulStop() - //Service registers with etcd - pbUser.RegisterUserServer(srv, s) - err = getcdv3.RegisterEtcd(s.etcdSchema, strings.Join(s.etcdAddr, ","), ip, s.rpcPort, s.rpcRegisterName, 10) - if err != nil { - log.ErrorByArgs("register rpc token to etcd failed,err=%s", err.Error()) - return - } - err = srv.Serve(listener) - if err != nil { - log.ErrorByArgs("listen token failed,err=%s", err.Error()) - return - } - log.Info("", "", "rpc token init success") -} - -func (s *userServer) GetUserInfo(ctx context.Context, req *pbUser.GetUserInfoReq) (*pbUser.GetUserInfoResp, error) { - log.InfoByKv("rpc get_user_info is server", req.OperationID) - - var userInfoList []*pbUser.UserInfo - //Obtain user information according to userID - if len(req.UserIDList) > 0 { - for _, userID := range req.UserIDList { - var userInfo pbUser.UserInfo - user, err := im_mysql_model.FindUserByUID(userID) - if err != nil { - log.ErrorByKv("search userinfo failed", req.OperationID, "userID", userID, "err=%s", err.Error()) - continue - } - utils.CopyStructFields(&userInfo, user) - userInfoList = append(userInfoList, &userInfo) - } - } else { - return &pbUser.GetUserInfoResp{ErrorCode: 999, ErrorMsg: "uidList is nil"}, nil - } - log.InfoByKv("rpc get userInfo return success", req.OperationID, "token", req.Token) - return &pbUser.GetUserInfoResp{ - ErrorCode: 0, - ErrorMsg: "", - Data: userInfoList, - }, nil -} diff --git a/internal/rpc/user/internal_service/get_user_info_to_client.go b/internal/rpc/user/internal_service/get_user_info_to_client.go deleted file mode 100644 index e7281419f..000000000 --- a/internal/rpc/user/internal_service/get_user_info_to_client.go +++ /dev/null @@ -1,16 +0,0 @@ -package internal_service - -import ( - "Open_IM/pkg/common/config" - "Open_IM/pkg/grpc-etcdv3/getcdv3" - pbUser "Open_IM/pkg/proto/user" - "context" - "strings" -) - -func GetUserInfoClient(req *pbUser.GetUserInfoReq) (*pbUser.GetUserInfoResp, error) { - etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImUserName) - client := pbUser.NewUserClient(etcdConn) - RpcResp, err := client.GetUserInfo(context.Background(), req) - return RpcResp, err -} diff --git a/internal/rpc/user/management_user.go b/internal/rpc/user/management_user.go deleted file mode 100644 index 4c797d9b4..000000000 --- a/internal/rpc/user/management_user.go +++ /dev/null @@ -1,96 +0,0 @@ -/* -** description(""). -** copyright('open-im,www.open-im.io'). -** author("fg,Gordon@tuoyun.net"). -** time(2021/9/15 10:28). - */ -package user - -import ( - "Open_IM/pkg/common/config" - "Open_IM/pkg/common/constant" - "Open_IM/pkg/common/db/mysql_model/im_mysql_model" - "Open_IM/pkg/common/log" - "Open_IM/pkg/common/token_verify" - pbUser "Open_IM/pkg/proto/user" - "Open_IM/pkg/utils" - "context" -) - -func (s *userServer) DeleteUsers(_ context.Context, req *pbUser.DeleteUsersReq) (*pbUser.DeleteUsersResp, error) { - log.InfoByKv("rpc DeleteUsers arrived server", req.OperationID, "args", req.String()) - var resp pbUser.DeleteUsersResp - var common pbUser.CommonResp - c, err := token_verify.ParseToken(req.Token) - if err != nil { - log.ErrorByKv("parse token failed", req.OperationID, "err", err.Error()) - return &pbUser.DeleteUsersResp{CommonResp: &pbUser.CommonResp{ErrorCode: constant.ErrParseToken.ErrCode, ErrorMsg: err.Error()}, FailedUidList: req.DeleteUidList}, nil - } - if !utils.IsContain(c.UID, config.Config.Manager.AppManagerUid) { - log.ErrorByKv(" Authentication failed", req.OperationID, "args", c) - return &pbUser.DeleteUsersResp{CommonResp: &pbUser.CommonResp{ErrorCode: 401, ErrorMsg: "not authorized"}, FailedUidList: req.DeleteUidList}, nil - } - for _, uid := range req.DeleteUidList { - err = im_mysql_model.UserDelete(uid) - if err != nil { - common.ErrorCode = 201 - common.ErrorMsg = "some uid deleted failed" - resp.FailedUidList = append(resp.FailedUidList, uid) - } - } - resp.CommonResp = &common - return &resp, nil - -} - -func (s *userServer) GetAllUsersUid(_ context.Context, req *pbUser.GetAllUsersUidReq) (*pbUser.GetAllUsersUidResp, error) { - log.InfoByKv("rpc GetAllUsersUid arrived server", req.OperationID, "args", req.String()) - c, err := token_verify.ParseToken(req.Token) - if err != nil { - log.InfoByKv("parse token failed", req.OperationID, "err", err.Error()) - return &pbUser.GetAllUsersUidResp{CommonResp: &pbUser.CommonResp{ErrorCode: constant.ErrParseToken.ErrCode, ErrorMsg: err.Error()}}, nil - } - if !utils.IsContain(c.UID, config.Config.Manager.AppManagerUid) { - log.ErrorByKv(" Authentication failed", req.OperationID, "args", c) - return &pbUser.GetAllUsersUidResp{CommonResp: &pbUser.CommonResp{ErrorCode: 401, ErrorMsg: "not authorized"}}, nil - } - uidList, err := im_mysql_model.SelectAllUID() - if err != nil { - log.ErrorByKv("db get failed", req.OperationID, "err", err.Error()) - return &pbUser.GetAllUsersUidResp{CommonResp: &pbUser.CommonResp{ErrorCode: constant.ErrMysql.ErrCode, ErrorMsg: err.Error()}}, nil - } else { - return &pbUser.GetAllUsersUidResp{CommonResp: &pbUser.CommonResp{ErrorCode: 0, ErrorMsg: ""}, UidList: uidList}, nil - } - -} -func (s *userServer) AccountCheck(_ context.Context, req *pbUser.AccountCheckReq) (*pbUser.AccountCheckResp, error) { - log.InfoByKv("rpc AccountCheck arrived server", req.OperationID, "args", req.String()) - c, err := token_verify.ParseToken(req.Token) - if err != nil { - log.InfoByKv("parse token failed", req.OperationID, "err", err.Error()) - return &pbUser.AccountCheckResp{CommonResp: &pbUser.CommonResp{ErrorCode: constant.ErrParseToken.ErrCode, ErrorMsg: err.Error()}}, nil - } - if !utils.IsContain(c.UID, config.Config.Manager.AppManagerUid) { - log.ErrorByKv(" Authentication failed", req.OperationID, "args", c) - return &pbUser.AccountCheckResp{CommonResp: &pbUser.CommonResp{ErrorCode: 401, ErrorMsg: "not authorized"}}, nil - } - uidList, err := im_mysql_model.SelectSomeUID(req.UidList) - if err != nil { - log.ErrorByKv("db get SelectSomeUID failed", req.OperationID, "err", err.Error()) - return &pbUser.AccountCheckResp{CommonResp: &pbUser.CommonResp{ErrorCode: constant.ErrMysql.ErrCode, ErrorMsg: err.Error()}}, nil - } else { - var r []*pbUser.AccountCheckResp_SingleUserStatus - for _, v := range req.UidList { - temp := new(pbUser.AccountCheckResp_SingleUserStatus) - temp.UserID = v - if utils.IsContain(v, uidList) { - temp.AccountStatus = constant.Registered - } else { - temp.AccountStatus = constant.UnRegistered - } - r = append(r, temp) - } - return &pbUser.AccountCheckResp{CommonResp: &pbUser.CommonResp{ErrorCode: 0, ErrorMsg: ""}, Result: r}, nil - } - -} diff --git a/internal/rpc/user/update_user_info.go b/internal/rpc/user/update_user_info.go deleted file mode 100644 index f022542e4..000000000 --- a/internal/rpc/user/update_user_info.go +++ /dev/null @@ -1,85 +0,0 @@ -package user - -import ( - "Open_IM/internal/push/logic" - chat "Open_IM/internal/rpc/msg" - "Open_IM/pkg/common/config" - "Open_IM/pkg/common/constant" - "Open_IM/pkg/common/db/mysql_model/im_mysql_model" - "Open_IM/pkg/common/log" - "Open_IM/pkg/common/token_verify" - "Open_IM/pkg/grpc-etcdv3/getcdv3" - pbChat "Open_IM/pkg/proto/chat" - pbFriend "Open_IM/pkg/proto/friend" - pbUser "Open_IM/pkg/proto/user" - "Open_IM/pkg/utils" - "context" - "strings" -) - -func (s *userServer) UpdateUserInfo(ctx context.Context, req *pbUser.UpdateUserInfoReq) (*pbUser.CommonResp, error) { - log.Info(req.Token, req.OperationID, "rpc modify user is server,args=%s", req.String()) - claims, err := token_verify.ParseToken(req.Token) - if err != nil { - log.Error(req.Token, req.OperationID, "err=%s,parse token failed", err.Error()) - return &pbUser.CommonResp{ErrorCode: constant.ErrParseToken.ErrCode, ErrorMsg: err.Error()}, nil - } - - ownerUid := "" - //if claims.UID == config.Config.AppManagerUid { - if utils.IsContain(claims.UID, config.Config.Manager.AppManagerUid) { - ownerUid = req.Uid - } else { - ownerUid = claims.UID - } - - err = im_mysql_model.UpDateUserInfo(ownerUid, req.Name, req.Icon, req.Mobile, req.Birth, req.Email, req.Ex, req.Gender) - if err != nil { - log.Error(req.Token, req.OperationID, "update user some attribute failed,err=%s", err.Error()) - return &pbUser.CommonResp{ErrorCode: constant.ErrModifyUserInfo.ErrCode, ErrorMsg: constant.ErrModifyUserInfo.ErrMsg}, nil - } - etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImFriendName) - client := pbFriend.NewFriendClient(etcdConn) - newReq := &pbFriend.GetFriendListReq{ - OperationID: req.OperationID, - Token: req.Token, - } - - RpcResp, err := client.GetFriendList(context.Background(), newReq) - if err != nil { - log.ErrorByKv("get friend list rpc server failed", req.OperationID, "err", err.Error(), "req", req.String()) - return &pbUser.CommonResp{}, nil - } - if RpcResp.ErrCode != 0 { - log.ErrorByKv("get friend list rpc server failed", req.OperationID, "err", err.Error(), "req", req.String()) - return &pbUser.CommonResp{}, nil - } - self, err := im_mysql_model.FindUserByUID(ownerUid) - if err != nil { - log.ErrorByKv("get self info failed", req.OperationID, "err", err.Error(), "req", req.String()) - return &pbUser.CommonResp{}, nil - } - var name, faceUrl string - if self != nil { - name, faceUrl = self.Name, self.Icon - } - - chat.SelfInfoUpdatedNotification(req.OperationID, req.Uid) - for _, v := range RpcResp.Data { - logic.SendMsgByWS(&pbChat.WSToMsgSvrChatMsg{ - SendID: ownerUid, - RecvID: v.Uid, - SenderNickName: name, - SenderFaceURL: faceUrl, - Content: ownerUid + "'s info has changed", - SendTime: utils.GetCurrentTimestampByNano(), - MsgFrom: constant.SysMsgType, - ContentType: constant.SetSelfInfoTip, - SessionType: constant.SingleChatType, - OperationID: req.OperationID, - Token: req.Token, - }) - - } - return &pbUser.CommonResp{}, nil -} diff --git a/internal/rpc/user/user.go b/internal/rpc/user/user.go new file mode 100644 index 000000000..e9407d8bf --- /dev/null +++ b/internal/rpc/user/user.go @@ -0,0 +1,238 @@ +package user + +import ( + chat "Open_IM/internal/rpc/msg" + "Open_IM/pkg/common/config" + "Open_IM/pkg/common/constant" + "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" + pbFriend "Open_IM/pkg/proto/friend" + pbUser "Open_IM/pkg/proto/user" + "Open_IM/pkg/utils" + "context" + "google.golang.org/grpc" + "net" + "strconv" + "strings" + sdkws "Open_IM/pkg/proto/sdk_ws" +) + +type userServer struct { + rpcPort int + rpcRegisterName string + etcdSchema string + etcdAddr []string +} + +func (s *userServer) Run() { + log.NewInfo("0", "", "rpc user 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 network failed ", err.Error(), registerAddress) + return + } + log.NewInfo("0", "listen network success, address ", registerAddress, listener) + defer listener.Close() + //grpc server + srv := grpc.NewServer() + defer srv.GracefulStop() + //Service registers with etcd + pbUser.RegisterUserServer(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(), s.etcdSchema, strings.Join(s.etcdAddr, ","), ip, s.rpcPort, s.rpcRegisterName) + return + } + err = srv.Serve(listener) + if err != nil { + log.NewError("0", "Serve failed ", err.Error()) + return + } + log.NewInfo("0", "rpc user success") +} + +func (s *userServer) GetUserInfo(ctx context.Context, req *pbUser.GetUserInfoReq) (*pbUser.GetUserInfoResp, error) { + log.NewInfo(req.OperationID, "GetUserInfo args ", req.String()) + var userInfoList []*sdkws.UserInfo + if len(req.UserIDList) > 0 { + for _, userID := range req.UserIDList { + var userInfo sdkws.UserInfo + user, err := imdb.GetUserByUserID(userID) + if err != nil { + log.NewError(req.OperationID, "GetUserByUserID failed ", err.Error(), userID) + continue + } + utils.CopyStructFields(&userInfo, user) + userInfoList = append(userInfoList, &userInfo) + } + } else { + + return &pbUser.GetUserInfoResp{CommonResp: &pbUser.CommonResp{ErrCode: constant.ErrArgs.ErrCode, ErrMsg: constant.ErrArgs.ErrMsg}}, nil + } + log.NewInfo(req.OperationID, "GetUserInfo rpc return ", pbUser.GetUserInfoResp{CommonResp: &pbUser.CommonResp{}, UserInfoList:userInfoList}) + return &pbUser.GetUserInfoResp{CommonResp: &pbUser.CommonResp{}, UserInfoList:userInfoList}, nil +} + + + +func (s *userServer) SetReceiveMessageOpt(ctx context.Context, req *pbUser.SetReceiveMessageOptReq) (*pbUser.SetReceiveMessageOptResp, error) { + log.NewInfo(req.OperationID, "SetReceiveMessageOpt args ", req.String()) + m := make(map[string]int, len(req.ConversationIDList)) + for _, v := range req.ConversationIDList { + m[v] = int(req.Opt) + } + err := db.DB.SetMultiConversationMsgOpt(req.FromUserID, m) + if err != nil { + log.NewError(req.OperationID, "SetMultiConversationMsgOpt failed ", err.Error(), req) + return &pbUser.SetReceiveMessageOptResp{CommonResp: &pbUser.CommonResp{ErrCode: constant.ErrDB.ErrCode, ErrMsg: constant.ErrDB.ErrMsg}}, nil + } + resp := pbUser.SetReceiveMessageOptResp{CommonResp: &pbUser.CommonResp{}} + + for _, v := range req.ConversationIDList { + resp.OptResultList = append(resp.OptResultList, &pbUser.OptResult{ConversationId: v, Result: 0}) + } + log.NewInfo(req.OperationID, "SetReceiveMessageOpt rpc return ", resp.String()) + return &resp, nil +} + +func (s *userServer) GetReceiveMessageOpt(ctx context.Context, req *pbUser.GetReceiveMessageOptReq) (*pbUser.GetReceiveMessageOptResp, error) { + log.NewInfo(req.OperationID, "GetReceiveMessageOpt args ", req.String()) + m, err := db.DB.GetMultiConversationMsgOpt(req.FromUserID, req.ConversationId) + if err != nil { + log.NewError(req.OperationID, "GetMultiConversationMsgOpt failed ", err.Error(), req.FromUserID, req.ConversationId) + return &pbUser.GetReceiveMessageOptResp{CommonResp: &pbUser.CommonResp{ErrCode: constant.ErrDB.ErrCode, ErrMsg: constant.ErrDB.ErrMsg}}, nil + } + resp := pbUser.GetReceiveMessageOptResp{CommonResp: &pbUser.CommonResp{}} + for k, v := range m { + resp.ConversationOptResultList = append(resp.ConversationOptResultList, &pbUser.OptResult{ConversationId: k, Result: int32(v)}) + } + log.NewInfo(req.OperationID, "GetReceiveMessageOpt rpc return ", resp.String()) + return &resp, nil +} + +func (s *userServer) GetAllConversationMsgOpt(ctx context.Context, req *pbUser.GetAllConversationMsgOptReq) (*pbUser.GetAllConversationMsgOptResp, error) { + log.NewInfo(req.OperationID, "GetAllConversationMsgOpt args ", req.String()) + m, err := db.DB.GetAllConversationMsgOpt(req.FromUserId) + if err != nil { + log.NewError(req.OperationID, "GetAllConversationMsgOpt failed ", err.Error(), req.FromUserId) + return &pbUser.GetAllConversationMsgOptResp{CommonResp: &pbUser.CommonResp{ErrCode: constant.ErrDB.ErrCode, ErrMsg: constant.ErrDB.ErrMsg}}, nil + } + resp := pbUser.GetAllConversationMsgOptResp{CommonResp: &pbUser.CommonResp{}} + for k, v := range m { + resp.ConversationOptResultList = append(resp.ConversationOptResultList, &pbUser.OptResult{ConversationId: k, Result: int32(v)}) + } + log.NewInfo(req.OperationID, "GetAllConversationMsgOpt rpc return ", resp.String()) + return &resp, nil +} + + +func (s *userServer) DeleteUsers(_ context.Context, req *pbUser.DeleteUsersReq) (*pbUser.DeleteUsersResp, error) { + log.NewInfo(req.OperationID, "DeleteUsers args ", req.String()) + if token_verify.IsMangerUserID(req.OpUserID){ + log.NewError(req.OperationID, "IsMangerUserID false ", req.OpUserID) + return &pbUser.DeleteUsersResp{CommonResp: &pbUser.CommonResp{ErrCode: constant.ErrAccess.ErrCode, ErrMsg: constant.ErrAccess.ErrMsg}, FailedUserIDList: req.DeleteUserIDList}, nil + } + var common pbUser.CommonResp + resp := pbUser.DeleteUsersResp{CommonResp: &common} + for _, userID := range req.DeleteUserIDList { + err := imdb.DeleteUser(userID) + if err != nil { + common.ErrCode = 201 + common.ErrMsg = "some uid deleted failed" + resp.FailedUserIDList = append(resp.FailedUserIDList, userID) + } + } + log.NewInfo(req.OperationID, "DeleteUsers rpc return ", resp.String()) + return &resp, nil +} + +func (s *userServer) GetAllUserID(_ context.Context, req *pbUser.GetAllUserIDReq) (*pbUser.GetAllUserIDResp, error) { + log.NewInfo(req.OperationID,"GetAllUserID args ", req.String()) + if token_verify.IsMangerUserID(req.OpUserID){ + log.NewError(req.OperationID, "IsMangerUserID false ", req.OpUserID) + return &pbUser.GetAllUserIDResp{CommonResp: &pbUser.CommonResp{ErrCode: constant.ErrAccess.ErrCode, ErrMsg: constant.ErrAccess.ErrMsg}}, nil + } + uidList, err := imdb.SelectAllUserID() + if err != nil { + log.NewError(req.OperationID, "SelectAllUserID false ", err.Error()) + return &pbUser.GetAllUserIDResp{CommonResp: &pbUser.CommonResp{ErrCode: constant.ErrDB.ErrCode, ErrMsg: constant.ErrDB.ErrMsg}}, nil + } else { + log.NewInfo(req.OperationID, "GetAllUserID rpc return ", pbUser.GetAllUserIDResp{CommonResp: &pbUser.CommonResp{}, UserIDList: uidList}) + return &pbUser.GetAllUserIDResp{CommonResp: &pbUser.CommonResp{}, UserIDList: uidList}, nil + } +} + + +func (s *userServer) AccountCheck(_ context.Context, req *pbUser.AccountCheckReq) (*pbUser.AccountCheckResp, error) { + log.NewInfo(req.OperationID,"AccountCheck args ", req.String()) + if token_verify.IsMangerUserID(req.OpUserID){ + log.NewError(req.OperationID, "IsMangerUserID false ", req.OpUserID) + return &pbUser.AccountCheckResp{CommonResp: &pbUser.CommonResp{ErrCode: constant.ErrAccess.ErrCode, ErrMsg: constant.ErrAccess.ErrMsg}}, nil + } + uidList, err := imdb.SelectSomeUserID(req.CheckUserIDList) + if err != nil { + log.NewError(req.OperationID, "SelectSomeUserID failed ", err.Error(), req.CheckUserIDList) + return &pbUser.AccountCheckResp{CommonResp: &pbUser.CommonResp{ErrCode: constant.ErrDB.ErrCode, ErrMsg: constant.ErrDB.ErrMsg}}, nil + } else { + var r []*pbUser.AccountCheckResp_SingleUserStatus + for _, v := range req.CheckUserIDList { + temp := new(pbUser.AccountCheckResp_SingleUserStatus) + temp.UserID = v + if utils.IsContain(v, uidList) { + temp.AccountStatus = constant.Registered + } else { + temp.AccountStatus = constant.UnRegistered + } + r = append(r, temp) + } + resp := pbUser.AccountCheckResp{CommonResp: &pbUser.CommonResp{ErrCode: 0, ErrMsg: ""}, ResultList: r} + log.NewInfo(req.OperationID, "AccountCheck rpc return ", resp.String()) + return &resp, nil + } + +} + + + + +func (s *userServer) UpdateUserInfo(ctx context.Context, req *pbUser.UpdateUserInfoReq) (*pbUser.UpdateUserInfoResp, error) { + log.NewInfo(req.OperationID,"UpdateUserInfo args ", req.String()) + if !token_verify.CheckAccess(req.OpUserID, req.UserInfo.UserID){ + log.NewError(req.OperationID, "CheckAccess false ", req.OpUserID, req.UserInfo.UserID) + return &pbUser.UpdateUserInfoResp{CommonResp: &pbUser.CommonResp{ErrCode: constant.ErrAccess.ErrCode, ErrMsg: constant.ErrAccess.ErrMsg}}, nil + } + + var user imdb.User + utils.CopyStructFields(&user, req.UserInfo) + err := imdb.UpdateUserInfo(user) + if err != nil { + log.NewError(req.OperationID, "UpdateUserInfo failed ", err.Error(), user) + return &pbUser.UpdateUserInfoResp{CommonResp: &pbUser.CommonResp{ErrCode: constant.ErrDB.ErrCode, ErrMsg: constant.ErrDB.ErrMsg}}, nil + } + etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImFriendName) + client := pbFriend.NewFriendClient(etcdConn) + newReq := &pbFriend.GetFriendListReq{ + CommID: &pbFriend.CommID{OperationID: req.OperationID, FromUserID: req.UserInfo.UserID, OpUserID: req.OpUserID} + } + + RpcResp, err := client.GetFriendList(context.Background(), newReq) + if err != nil { + log.NewError(req.OperationID, "GetFriendList failed ", err.Error(), newReq) + return &pbUser.UpdateUserInfoResp{CommonResp: &pbUser.CommonResp{}}, nil + } + for _, v := range RpcResp.FriendInfoList{ + chat.FriendInfoChangedNotification(req.OperationID, req.OpUserID, req.UserInfo.UserID, v.FriendUser.UserID) + } + chat.SelfInfoUpdatedNotification(req.OperationID, req.UserInfo.UserID) + return &pbUser.UpdateUserInfoResp{CommonResp: &pbUser.CommonResp{}}, nil +} + + + diff --git a/pkg/base_info/friend_api_struct.go b/pkg/base_info/friend_api_struct.go index 3b20185d8..94a48662b 100644 --- a/pkg/base_info/friend_api_struct.go +++ b/pkg/base_info/friend_api_struct.go @@ -2,16 +2,12 @@ package base_info import open_im_sdk "Open_IM/pkg/proto/sdk_ws" -open_im_sdk "Open_IM/pkg/proto/sdk_ws" - type paramsCommFriend struct { OperationID string `json:"operationID" binding:"required"` ToUserID string `json:"toUserID" binding:"required"` FromUserID string `json:"fromUserID" binding:"required"` } - - type AddBlacklistReq struct { paramsCommFriend } @@ -19,8 +15,6 @@ type AddBlacklistResp struct { CommResp } - - type ImportFriendReq struct { FriendUserIDList []string `json:"friendUserIDList" binding:"required"` OperationID string `json:"operationID" binding:"required"` @@ -28,10 +22,9 @@ type ImportFriendReq struct { } type ImportFriendResp struct { CommResp - Data []string `json:"data"` + Data []string `json:"data"` } - type AddFriendReq struct { paramsCommFriend ReqMsg string `json:"reqMsg"` @@ -40,18 +33,15 @@ type AddFriendResp struct { CommResp } - type AddFriendResponseReq struct { paramsCommFriend - Flag int32 `json:"flag" binding:"required"` + Flag int32 `json:"flag" binding:"required"` HandleMsg string `json:"handleMsg"` } type AddFriendResponseResp struct { CommResp } - - type DeleteFriendReq struct { paramsCommFriend } @@ -59,8 +49,6 @@ type DeleteFriendResp struct { CommResp } - - type GetBlackListReq struct { paramsCommFriend } @@ -69,7 +57,6 @@ type GetBlackListResp struct { BlackUserInfoList []*blackUserInfo `json:"data"` } - //type PublicUserInfo struct { // UserID string `json:"userID"` // Nickname string `json:"nickname"` @@ -81,7 +68,6 @@ type blackUserInfo struct { open_im_sdk.PublicUserInfo } - type SetFriendCommentReq struct { paramsCommFriend Remark string `json:"remark" binding:"required"` @@ -90,7 +76,6 @@ type SetFriendCommentResp struct { CommResp } - type RemoveBlackListReq struct { paramsCommFriend } @@ -106,7 +91,6 @@ type IsFriendResp struct { Response bool `json:"response"` } - type GetFriendsInfoReq struct { paramsCommFriend } @@ -123,10 +107,6 @@ type GetFriendListResp struct { FriendInfoList []*open_im_sdk.FriendInfo `json:"data"` } - - - - type GetFriendApplyListReq struct { paramsCommFriend } @@ -142,14 +122,3 @@ type GetSelfApplyListResp struct { CommResp FriendRequestList open_im_sdk.FriendRequest `json:"data"` } - - - - - - - - - - - diff --git a/pkg/base_info/user_api_struct.go b/pkg/base_info/user_api_struct.go new file mode 100644 index 000000000..c129e8c76 --- /dev/null +++ b/pkg/base_info/user_api_struct.go @@ -0,0 +1,29 @@ +package base_info + +import ( + open_im_sdk "Open_IM/pkg/proto/sdk_ws" +) + +type GetUsersOnlineStatusReq struct { + OperationID string `json:"operationID" binding:"required"` + UserIDList []string `json:"userIDList" binding:"required,lte=200"` + Secret string `json:"secret" binding:"required,max=32"` +} +type OnlineStatus struct { + UserID string `json:"userID"` + Status string `json:"status"` +} +type GetUsersOnlineStatusResp struct { + CommResp + OnlineStatusList []*OnlineStatus `json:"data"` +} + +type GetUserInfoReq struct { + OperationID string `json:"operationID" binding:"required"` + UserIDList []string `json:"userIDList" binding:"required"` +} + +type GetUserInfoResp struct { + CommResp + UserInfoList []*open_im_sdk.UserInfo `json:"data"` +} diff --git a/pkg/common/db/mysql_model/im_mysql_model/group_model.go b/pkg/common/db/mysql_model/im_mysql_model/group_model.go index 5fc580c8a..120815a61 100644 --- a/pkg/common/db/mysql_model/im_mysql_model/group_model.go +++ b/pkg/common/db/mysql_model/im_mysql_model/group_model.go @@ -8,6 +8,19 @@ import ( "time" ) +//type Group struct { +// GroupID string `gorm:"column:group_id;primaryKey;"` +// GroupName string `gorm:"column:name"` +// Introduction string `gorm:"column:introduction"` +// Notification string `gorm:"column:notification"` +// FaceUrl string `gorm:"column:face_url"` +// CreateTime time.Time `gorm:"column:create_time"` +// Status int32 `gorm:"column:status"` +// CreatorUserID string `gorm:"column:creator_user_id"` +// GroupType int32 `gorm:"column:group_type"` +// Ex string `gorm:"column:ex"` +//} + func InsertIntoGroup(groupInfo Group) error { dbConn, err := db.DB.MysqlDB.DefaultGormDB() if err != nil { @@ -24,228 +37,24 @@ func InsertIntoGroup(groupInfo Group) error { return nil } -func FindGroupInfoByGroupId(groupId string) (*Group, error) { +func GetGroupInfoByGroupID(groupId string) (*Group, error) { dbConn, err := db.DB.MysqlDB.DefaultGormDB() if err != nil { return nil, err } var groupInfo Group - err = dbConn.Raw("select * from `group` where group_id=?", groupId).Scan(&groupInfo).Error + err = dbConn.Table("group").Where("group_id=?", groupId).Find(&groupInfo).Error if err != nil { return nil, err } return &groupInfo, nil } -func SetGroupInfo(groupId, groupName, introduction, notification, groupFaceUrl, ex string) error { +func SetGroupInfo(groupInfo Group) error { dbConn, err := db.DB.MysqlDB.DefaultGormDB() - dbConn.LogMode(true) if err != nil { return err } - if groupName != "" { - if err = dbConn.Exec("update `group` set name=? where group_id=?", groupName, groupId).Error; err != nil { - return err - } - } - if introduction != "" { - if err = dbConn.Exec("update `group` set introduction=? where group_id=?", introduction, groupId).Error; err != nil { - return err - } - } - if notification != "" { - if err = dbConn.Exec("update `group` set notification=? where group_id=?", notification, groupId).Error; err != nil { - return err - } - } - if groupFaceUrl != "" { - if err = dbConn.Exec("update `group` set face_url=? where group_id=?", groupFaceUrl, groupId).Error; err != nil { - return err - } - } - if ex != "" { - if err = dbConn.Exec("update `group` set ex=? where group_id=?", ex, groupId).Error; err != nil { - return err - } - } - return nil -} - -func GetGroupApplicationList(uid string) (*group.GetGroupApplicationListResp, error) { - dbConn, err := db.DB.MysqlDB.DefaultGormDB() - if err != nil { - return nil, err - } - - var gID string - var gIDs []string - rows, err := dbConn.Raw("select group_id from `group_member` where uid = ? and administrator_level > 0", uid).Rows() - defer rows.Close() - if err != nil { - return nil, err - } - - for rows.Next() { - rows.Scan(&gID) - gIDs = append(gIDs, gID) - } - - if len(gIDs) == 0 { - return &group.GetGroupApplicationListResp{}, nil - } - - sql := "select id, group_id, from_user_id, to_user_id, flag, req_msg, handled_msg, create_time, " + - "from_user_nickname, to_user_nickname, from_user_face_url, to_user_face_url, handled_user from `group_request` where group_id in ( " - for i := 0; i < len(gIDs); i++ { - if i == len(gIDs)-1 { - sql = sql + "\"" + gIDs[i] + "\"" + " )" - } else { - sql = sql + "\"" + gIDs[i] + "\"" + ", " - } - } - - var groupRequest GroupRequest - var groupRequests []GroupRequest - log.Info("", "", sql) - rows, err = dbConn.Raw(sql).Rows() - defer rows.Close() - if err != nil { - return nil, err - } - for rows.Next() { - rows.Scan(&groupRequest.ID, &groupRequest.GroupID, &groupRequest.FromUserID, &groupRequest.ToUserID, &groupRequest.Flag, &groupRequest.ReqMsg, - &groupRequest.HandledMsg, &groupRequest.CreateTime, &groupRequest.FromUserNickname, &groupRequest.ToUserNickname, - &groupRequest.FromUserFaceUrl, &groupRequest.ToUserFaceUrl, &groupRequest.HandledUser) - groupRequests = append(groupRequests, groupRequest) - } - - reply := &group.GetGroupApplicationListResp{} - reply.Data = &group.GetGroupApplicationListData{} - reply.Data.Count = int32(len(groupRequests)) - for i := 0; i < int(reply.Data.Count); i++ { - addUser := group.GetGroupApplicationList_Data_User{ - ID: groupRequests[i].ID, - GroupID: groupRequests[i].GroupID, - FromUserID: groupRequests[i].FromUserID, - FromUserNickname: groupRequests[i].FromUserNickname, - FromUserFaceUrl: groupRequests[i].FromUserFaceUrl, - ToUserID: groupRequests[i].ToUserID, - AddTime: groupRequests[i].CreateTime.Unix(), - RequestMsg: groupRequests[i].ReqMsg, - HandledMsg: groupRequests[i].HandledMsg, - Flag: groupRequests[i].Flag, - ToUserNickname: groupRequests[i].ToUserNickname, - ToUserFaceUrl: groupRequests[i].ToUserFaceUrl, - HandledUser: groupRequests[i].HandledUser, - Type: 0, - HandleStatus: 0, - HandleResult: 0, - } - - if addUser.ToUserID != "0" { - addUser.Type = 1 - } - - if len(groupRequests[i].HandledUser) > 0 { - if groupRequests[i].HandledUser == uid { - addUser.HandleStatus = 2 - } else { - addUser.HandleStatus = 1 - } - } - - if groupRequests[i].Flag == 1 { - addUser.HandleResult = 1 - } - - reply.Data.User = append(reply.Data.User, &addUser) - } - return reply, nil -} - -func TransferGroupOwner(pb *group.TransferGroupOwnerReq) (*group.TransferGroupOwnerResp, error) { - oldOwner, err := FindGroupMemberInfoByGroupIdAndUserId(pb.GroupID, pb.OldOwnerUserID) - if err != nil { - return nil, err - } - newOwner, err := FindGroupMemberInfoByGroupIdAndUserId(pb.GroupID, pb.NewOwnerUserID) - if err != nil { - return nil, err - } - - if oldOwner.UserID == newOwner.UserID { - return nil, errors.New("the self") - } - - if err = UpdateTheUserAdministratorLevel(pb.GroupID, pb.OldOwnerUserID, 0); err != nil { - return nil, err - } - - if err = UpdateTheUserAdministratorLevel(pb.GroupID, pb.NewOwnerUserID, 1); err != nil { - UpdateTheUserAdministratorLevel(pb.GroupID, pb.OldOwnerUserID, 1) - return nil, err - } - - return &group.TransferGroupOwnerResp{CommonResp: &group.CommonResp{ErrCode: 0}}, nil -} - -func GroupApplicationResponse(pb *group.GroupApplicationResponseReq) (*group.CommonResp, error) { - - ownerUser, err := FindGroupMemberInfoByGroupIdAndUserId(pb.GroupID, pb.OwnerID) - if err != nil { - log.ErrorByKv("FindGroupMemberInfoByGroupIdAndUserId failed", pb.OperationID, "groupId", pb.GroupID, "ownerID", pb.OwnerID) - return nil, err - } - if ownerUser.AdministratorLevel <= 0 { - return nil, errors.New("insufficient permissions") - } - - dbConn, err := db.DB.MysqlDB.DefaultGormDB() - if err != nil { - return nil, err - } - var groupRequest GroupRequest - err = dbConn.Raw("select * from `group_request` where handled_user = ? and group_id = ? and from_user_id = ? and to_user_id = ?", - "", pb.GroupID, pb.FromUserID, pb.ToUserID).Scan(&groupRequest).Error - if err != nil { - log.ErrorByKv("find group_request info failed", pb.OperationID, "groupId", pb.GroupID, "fromUserId", pb.FromUserID, "toUserId", pb.OwnerID) - return nil, err - } - - if groupRequest.Flag != 0 { - return nil, errors.New("application has already handle") - } - - var saveFlag int - if pb.HandleResult == 0 { - saveFlag = -1 - } else if pb.HandleResult == 1 { - saveFlag = 1 - } else { - return nil, errors.New("parma HandleResult error") - } - err = dbConn.Exec("update `group_request` set flag = ?, handled_msg = ?, handled_user = ? where group_id = ? and from_user_id = ? and to_user_id = ?", - saveFlag, pb.HandledMsg, pb.OwnerID, groupRequest.GroupID, groupRequest.FromUserID, groupRequest.ToUserID).Error - if err != nil { - log.ErrorByKv("update group request failed", pb.OperationID, "groupID", pb.GroupID, "flag", saveFlag, "ownerId", pb.OwnerID, "fromUserId", pb.FromUserID, "toUserID", pb.ToUserID) - return nil, err - } - - if saveFlag == 1 { - if groupRequest.ToUserID == "0" { - err = InsertIntoGroupMember(pb.GroupID, pb.FromUserID, groupRequest.FromUserNickname, groupRequest.FromUserFaceUrl, 0) - if err != nil { - log.ErrorByKv("InsertIntoGroupMember failed", pb.OperationID, "groupID", pb.GroupID, "fromUserId", pb.FromUserID) - return nil, err - } - } else { - err = InsertIntoGroupMember(pb.GroupID, pb.ToUserID, groupRequest.ToUserNickname, groupRequest.ToUserFaceUrl, 0) - if err != nil { - log.ErrorByKv("InsertIntoGroupMember failed", pb.OperationID, "groupID", pb.GroupID, "fromUserId", pb.FromUserID) - return nil, err - } - } - } - - return &group.GroupApplicationResponseResp{}, nil + err = dbConn.Table("friend_request").Where("group_id=?", groupInfo.GroupID).Update(&groupInfo).Error + return err } diff --git a/pkg/common/db/mysql_model/im_mysql_model/group_request_model.go b/pkg/common/db/mysql_model/im_mysql_model/group_request_model.go index da793d331..143cab342 100644 --- a/pkg/common/db/mysql_model/im_mysql_model/group_request_model.go +++ b/pkg/common/db/mysql_model/im_mysql_model/group_request_model.go @@ -2,15 +2,41 @@ package im_mysql_model import ( "Open_IM/pkg/common/db" + "Open_IM/pkg/common/log" + "Open_IM/pkg/proto/group" "time" ) -func InsertIntoGroupRequest(groupId, fromUserId, toUserId, reqMsg, fromUserNickName, fromUserFaceUrl string) error { +//type GroupRequest struct { +// UserID string `gorm:"column:user_id;primaryKey;"` +// GroupID string `gorm:"column:group_id;primaryKey;"` +// HandleResult int32 `gorm:"column:handle_result"` +// ReqMsg string `gorm:"column:req_msg"` +// HandledMsg string `gorm:"column:handled_msg"` +// ReqTime time.Time `gorm:"column:req_time"` +// HandleUserID string `gorm:"column:handle_user_id"` +// HandledTime time.Time `gorm:"column:handle_time"` +// Ex string `gorm:"column:ex"` +//} + +func UpdateGroupRequest(groupRequest GroupRequest) error { + dbConn, err := db.DB.MysqlDB.DefaultGormDB() + if err != nil { + return err + } + err = dbConn.Table("group_request").Where("group_id=? and user_id=?", groupRequest.GroupID, groupRequest.UserID).Update(&groupRequest).Error + if err != nil { + return err + } + return nil +} + +func InsertIntoGroupRequest(toInsertInfo GroupRequest) error { dbConn, err := db.DB.MysqlDB.DefaultGormDB() if err != nil { return err } - toInsertInfo := GroupRequest{GroupID: groupId, FromUserID: fromUserId, ToUserID: toUserId, ReqMsg: reqMsg, FromUserNickname: fromUserNickName, FromUserFaceUrl: fromUserFaceUrl, CreateTime: time.Now()} + toInsertInfo.HandledTime = time.Now() err = dbConn.Table("group_request").Create(&toInsertInfo).Error if err != nil { return err @@ -18,45 +44,139 @@ func InsertIntoGroupRequest(groupId, fromUserId, toUserId, reqMsg, fromUserNickN return nil } -func FindGroupRequestUserInfoByGroupIDAndUid(groupId, uid string) (*GroupRequest, error) { +func GetGroupRequestByGroupIDAndUserID(groupID, userID string) (*GroupRequest, error) { dbConn, err := db.DB.MysqlDB.DefaultGormDB() if err != nil { return nil, err } - var requestUserInfo GroupRequest - err = dbConn.Table("group_request").Where("from_user_id=? and group_id=?", uid, groupId).Find(&requestUserInfo).Error + var groupRequest GroupRequest + err = dbConn.Table("group_request").Where("user_id=? and group_id=?", userID, groupID).Find(&groupRequest).Error if err != nil { return nil, err } - return &requestUserInfo, nil + return &groupRequest, nil } -func DelGroupRequest(groupId, fromUserId, toUserId string) error { +func DelGroupRequestByGroupIDAndUserID(groupID, userID string) error { dbConn, err := db.DB.MysqlDB.DefaultGormDB() if err != nil { return err } - err = dbConn.Exec("delete from group_request where group_id=? and from_user_id=? and to_user_id=?", groupId, fromUserId, toUserId).Error + err = dbConn.Table("group_request").Where("group_id=? and user_id=?", groupID, userID).Delete(&GroupRequest{}).Error if err != nil { return err } return nil } -func FindGroupBeInvitedRequestInfoByUidAndGroupID(groupId, uid string) (*GroupRequest, error) { +func GetGroupRequestByGroupID(groupID string) ([]GroupRequest, error) { dbConn, err := db.DB.MysqlDB.DefaultGormDB() if err != nil { return nil, err } - var beInvitedRequestUserInfo GroupRequest - err = dbConn.Table("group_request").Where("to_user_id=? and group_id=?", uid, groupId).Find(&beInvitedRequestUserInfo).Error + var groupRequestList []GroupRequest + err = dbConn.Table("group_request").Where("group_id=?", groupID).Find(&groupRequestList).Error if err != nil { return nil, err } - return &beInvitedRequestUserInfo, nil - + return groupRequestList, nil } -func InsertGroupRequest(groupId, fromUser, fromUserNickName, fromUserFaceUrl, toUser, requestMsg, handledMsg string, handleStatus int) error { - return nil +//received +func GetGroupApplicationList(userID string) ([]GroupRequest, error) { + var groupRequestList []GroupRequest + memberList, err := GetGroupMemberListByUserID(userID) + if err != nil { + return nil, err + } + for _, v := range memberList { + if v.RoleLevel > 0 { + list, err := GetGroupRequestByGroupID(v.GroupID) + if err != nil { + continue + } + groupRequestList = append(groupRequestList, list...) + } + } + return groupRequestList, nil } + +// +//func GroupApplicationResponse(pb *group.GroupApplicationResponseReq) (*group.CommonResp, error) { +// +// ownerUser, err := FindGroupMemberInfoByGroupIdAndUserId(pb.GroupID, pb.OwnerID) +// if err != nil { +// log.ErrorByKv("FindGroupMemberInfoByGroupIdAndUserId failed", pb.OperationID, "groupId", pb.GroupID, "ownerID", pb.OwnerID) +// return nil, err +// } +// if ownerUser.AdministratorLevel <= 0 { +// return nil, errors.New("insufficient permissions") +// } +// +// dbConn, err := db.DB.MysqlDB.DefaultGormDB() +// if err != nil { +// return nil, err +// } +// var groupRequest GroupRequest +// err = dbConn.Raw("select * from `group_request` where handled_user = ? and group_id = ? and from_user_id = ? and to_user_id = ?", +// "", pb.GroupID, pb.FromUserID, pb.ToUserID).Scan(&groupRequest).Error +// if err != nil { +// log.ErrorByKv("find group_request info failed", pb.OperationID, "groupId", pb.GroupID, "fromUserId", pb.FromUserID, "toUserId", pb.OwnerID) +// return nil, err +// } +// +// if groupRequest.Flag != 0 { +// return nil, errors.New("application has already handle") +// } +// +// var saveFlag int +// if pb.HandleResult == 0 { +// saveFlag = -1 +// } else if pb.HandleResult == 1 { +// saveFlag = 1 +// } else { +// return nil, errors.New("parma HandleResult error") +// } +// err = dbConn.Exec("update `group_request` set flag = ?, handled_msg = ?, handled_user = ? where group_id = ? and from_user_id = ? and to_user_id = ?", +// saveFlag, pb.HandledMsg, pb.OwnerID, groupRequest.GroupID, groupRequest.FromUserID, groupRequest.ToUserID).Error +// if err != nil { +// log.ErrorByKv("update group request failed", pb.OperationID, "groupID", pb.GroupID, "flag", saveFlag, "ownerId", pb.OwnerID, "fromUserId", pb.FromUserID, "toUserID", pb.ToUserID) +// return nil, err +// } +// +// if saveFlag == 1 { +// if groupRequest.ToUserID == "0" { +// err = InsertIntoGroupMember(pb.GroupID, pb.FromUserID, groupRequest.FromUserNickname, groupRequest.FromUserFaceUrl, 0) +// if err != nil { +// log.ErrorByKv("InsertIntoGroupMember failed", pb.OperationID, "groupID", pb.GroupID, "fromUserId", pb.FromUserID) +// return nil, err +// } +// } else { +// err = InsertIntoGroupMember(pb.GroupID, pb.ToUserID, groupRequest.ToUserNickname, groupRequest.ToUserFaceUrl, 0) +// if err != nil { +// log.ErrorByKv("InsertIntoGroupMember failed", pb.OperationID, "groupID", pb.GroupID, "fromUserId", pb.FromUserID) +// return nil, err +// } +// } +// } +// +// return &group.GroupApplicationResponseResp{}, nil +//} + +//func FindGroupBeInvitedRequestInfoByUidAndGroupID(groupId, uid string) (*GroupRequest, error) { +// dbConn, err := db.DB.MysqlDB.DefaultGormDB() +// if err != nil { +// return nil, err +// } +// var beInvitedRequestUserInfo GroupRequest +// err = dbConn.Table("group_request").Where("to_user_id=? and group_id=?", uid, groupId).Find(&beInvitedRequestUserInfo).Error +// if err != nil { +// return nil, err +// } +// return &beInvitedRequestUserInfo, nil +// +//} + +//func InsertGroupRequest(groupId, fromUser, fromUserNickName, fromUserFaceUrl, toUser, requestMsg, handledMsg string, handleStatus int) error { +// return nil +//} diff --git a/pkg/common/db/mysql_model/im_mysql_model/model_struct.go b/pkg/common/db/mysql_model/im_mysql_model/model_struct.go index 45741797e..f67930e8b 100644 --- a/pkg/common/db/mysql_model/im_mysql_model/model_struct.go +++ b/pkg/common/db/mysql_model/im_mysql_model/model_struct.go @@ -40,7 +40,7 @@ type Group struct { type GroupMember struct { GroupID string `gorm:"column:group_id;primaryKey;"` UserID string `gorm:"column:user_id;primaryKey;"` - NickName string `gorm:"column:nickname"` + Nickname string `gorm:"column:nickname"` FaceUrl string `gorm:"user_group_face_url"` RoleLevel int32 `gorm:"column:role_level"` JoinTime time.Time `gorm:"column:join_time"` @@ -52,7 +52,7 @@ type GroupMember struct { type GroupRequest struct { UserID string `gorm:"column:user_id;primaryKey;"` GroupID string `gorm:"column:group_id;primaryKey;"` - HandleResult string `gorm:"column:handle_result"` + HandleResult int32 `gorm:"column:handle_result"` ReqMsg string `gorm:"column:req_msg"` HandledMsg string `gorm:"column:handled_msg"` ReqTime time.Time `gorm:"column:req_time"` @@ -73,7 +73,7 @@ type User struct { CreateTime time.Time `gorm:"column:create_time"` } -type BlackList struct { +type Black struct { OwnerUserID string `gorm:"column:owner_user_id;primaryKey;"` BlockUserID string `gorm:"column:block_user_id;primaryKey;"` CreateTime time.Time `gorm:"column:create_time"` diff --git a/pkg/common/db/mysql_model/im_mysql_model/user_black_list_model.go b/pkg/common/db/mysql_model/im_mysql_model/user_black_list_model.go index 39ad51a13..42a7c2fa9 100644 --- a/pkg/common/db/mysql_model/im_mysql_model/user_black_list_model.go +++ b/pkg/common/db/mysql_model/im_mysql_model/user_black_list_model.go @@ -5,42 +5,52 @@ import ( "time" ) -func InsertInToUserBlackList(ownerID, blockID string) error { +func InsertInToUserBlackList(black Black) error { dbConn, err := db.DB.MysqlDB.DefaultGormDB() if err != nil { return err } - toInsertInfo := BlackList{OwnerUserID: ownerID, BlockUserID: blockID, CreateTime: time.Now()} - err = dbConn.Table("user_black_list").Create(toInsertInfo).Error + black.CreateTime = time.Now() + err = dbConn.Table("user_black_list").Create(black).Error return err } -func FindRelationshipFromBlackList(ownerID, blockID string) error { +//type Black struct { +// OwnerUserID string `gorm:"column:owner_user_id;primaryKey;"` +// BlockUserID string `gorm:"column:block_user_id;primaryKey;"` +// CreateTime time.Time `gorm:"column:create_time"` +// AddSource int32 `gorm:"column:add_source"` +// OperatorUserID int32 `gorm:"column:operator_user_id"` +// Ex string `gorm:"column:ex"` +//} + +func CheckBlack(ownerUserID, blockUserID string) error { dbConn, err := db.DB.MysqlDB.DefaultGormDB() if err != nil { return err } - var blackList BlackList - err = dbConn.Table("user_black_list").Where("owner_id=? and block_id=?", ownerID, blockID).Find(&blackList).Error + var black Black + err = dbConn.Table("user_black_list").Where("owner_user_id=? and block_user_id=?", ownerUserID, blockUserID).Find(&black).Error return err } -func RemoveBlackList(ownerID, blockID string) error { +func RemoveBlackList(ownerUserID, blockUserID string) error { dbConn, err := db.DB.MysqlDB.DefaultGormDB() if err != nil { return err } - err = dbConn.Exec("delete from user_black_list where owner_id=? and block_id=?", ownerID, blockID).Error + + err = dbConn.Table("user_black_list").Where("owner_user_id=? and block_user_id=?", ownerUserID, blockUserID).Delete(&Black{}).Error return err } -func GetBlackListByUID(ownerID string) ([]BlackList, error) { +func GetBlackListByUserID(ownerUserID string) ([]Black, error) { dbConn, err := db.DB.MysqlDB.DefaultGormDB() if err != nil { return nil, err } - var blackListUsersInfo []BlackList - err = dbConn.Table("user_black_list").Where("owner_id=?", ownerID).Find(&blackListUsersInfo).Error + var blackListUsersInfo []Black + err = dbConn.Table("user_black_list").Where("owner_user_id=?", ownerUserID).Find(&blackListUsersInfo).Error if err != nil { return nil, err } 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 98ddcb7fc..4025d2db3 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 @@ -3,7 +3,6 @@ package im_mysql_model import ( "Open_IM/pkg/common/config" "Open_IM/pkg/common/db" - pbAuth "Open_IM/pkg/proto/auth" "Open_IM/pkg/utils" "fmt" _ "github.com/jinzhu/gorm/dialects/mysql" @@ -12,168 +11,101 @@ import ( func init() { //init managers - var pb pbAuth.UserRegisterReq for k, v := range config.Config.Manager.AppManagerUid { - if !IsExistUser(v) { - pb.UID = v - pb.Name = "AppManager" + utils.IntToString(k+1) - err := UserRegister(&pb) - if err != nil { - fmt.Println("AppManager insert error", err.Error()) - } + user, err := GetUserByUserID(v) + if err != nil { + fmt.Println("GetUserByUserID failed ", err.Error(), v, user) + continue } + var appMgr User + appMgr.Nickname = "AppManager" + utils.IntToString(k+1) + err = UserRegister(appMgr) + if err != nil { + fmt.Println("AppManager insert error", err.Error()) + } + } } -func UserRegister(pb *pbAuth.UserRegisterReq) error { + +func UserRegister(user User) error { dbConn, err := db.DB.MysqlDB.DefaultGormDB() if err != nil { return err } - addUser := User{ - UserID: pb.UID, - Nickname: pb.Name, - FaceUrl: pb.Icon, - Gender: pb.Gender, - Mobile: pb.Mobile, - Birth: pb.Birth, - Email: pb.Email, - Ex: pb.Ex, - CreateTime: time.Now(), - } - err = dbConn.Table("user").Create(&addUser).Error + user.CreateTime = time.Now() + + err = dbConn.Table("user").Create(&user).Error if err != nil { return err } return nil } -func UserDelete(uid string) error { +//type User struct { +// UserID string `gorm:"column:user_id;primaryKey;"` +// Nickname string `gorm:"column:name"` +// FaceUrl string `gorm:"column:icon"` +// Gender int32 `gorm:"column:gender"` +// PhoneNumber string `gorm:"column:phone_number"` +// Birth string `gorm:"column:birth"` +// Email string `gorm:"column:email"` +// Ex string `gorm:"column:ex"` +// CreateTime time.Time `gorm:"column:create_time"` +//} + +func DeleteUser(userID string) error { dbConn, err := db.DB.MysqlDB.DefaultGormDB() if err != nil { return err } - err = dbConn.Table("user").Where("uid=?", uid).Delete(User{}).Error - if err != nil { - return err - } - return nil + err = dbConn.Table("user").Where("user_id=?", userID).Delete(User{}).Error + return err } -func FindUserByUID(uid string) (*User, error) { + +func GetUserByUserID(userID string) (*User, error) { dbConn, err := db.DB.MysqlDB.DefaultGormDB() if err != nil { return nil, err } var user User - err = dbConn.Table("user").Where("uid=?", uid).First(&user).Error + err = dbConn.Table("user").Where("user_id=?", userID).First(&user).Error if err != nil { return nil, err } return &user, nil } -func UpDateUserInfo(uid, name, headUrl, mobilePhoneNum, birth, email, extendInfo string, gender int32) error { +func UpdateUserInfo(user User) error { dbConn, err := db.DB.MysqlDB.DefaultGormDB() if err != nil { return err } - if name != "" { - if err = dbConn.Exec("update user set name=? where uid=?", name, uid).Error; err != nil { - return err - } - } - if headUrl != "" { - if err = dbConn.Exec("update user set icon=? where uid=?", headUrl, uid).Error; err != nil { - return err - } - } - if mobilePhoneNum != "" { - if err = dbConn.Exec("update user set mobile=? where uid=?", mobilePhoneNum, uid).Error; err != nil { - return err - } - } - if birth != "" { - if err = dbConn.Exec("update user set birth=? where uid=?", birth, uid).Error; err != nil { - return err - } - } - if email != "" { - if err = dbConn.Exec("update user set email=? where uid=?", email, uid).Error; err != nil { - return err - } - } - if extendInfo != "" { - if err = dbConn.Exec("update user set ex=? where uid=?", extendInfo, uid).Error; err != nil { - return err - } - } - if gender != 0 { - if err = dbConn.Exec("update user set gender=? where uid=?", gender, uid).Error; err != nil { - return err - } - } - return nil -} - -func SelectAllUID() ([]string, error) { - var uid []string - - dbConn, err := db.DB.MysqlDB.DefaultGormDB() - if err != nil { - return uid, err - } - rows, err := dbConn.Raw("select uid from user").Rows() - if err != nil { - return uid, err - } - defer rows.Close() - var strUID string - for rows.Next() { - rows.Scan(&strUID) - uid = append(uid, strUID) - } - return uid, nil + err = dbConn.Table("user").Where("user_id=?", user.UserID).Update(&user).Error + return err } -func SelectSomeUID(uids []string) ([]string, error) { - var uid []string +func SelectAllUserID() ([]string, error) { dbConn, err := db.DB.MysqlDB.DefaultGormDB() if err != nil { - return uid, err + return nil, err } - rows, err := dbConn.Raw("select uid from user where uid in (" + sqlStringHandle(uids) + ")").Rows() + var resultArr []string + err = dbConn.Table("user").Select([]string{"user_id"}).Scan(&resultArr).Error if err != nil { - return uid, err - } - defer rows.Close() - var strUID string - for rows.Next() { - rows.Scan(&strUID) - uid = append(uid, strUID) + return nil, err } - return uid, nil + return resultArr, nil } -func IsExistUser(uid string) bool { +func SelectSomeUserID(userIDList []string) ([]string, error) { dbConn, err := db.DB.MysqlDB.DefaultGormDB() if err != nil { - return false + return nil, err } - var number int32 - err = dbConn.Raw("select count(*) from `user` where uid = ?", uid).Count(&number).Error + var userList []User + err = dbConn.Table("user").Where("(user_id) IN ? ", userIDList).Find(&userList).Error if err != nil { - return false - } - if number != 1 { - return false - } - return true -} -func sqlStringHandle(ss []string) (s string) { - for i := 0; i < len(ss); i++ { - s += "'" + ss[i] + "'" - if i < len(ss)-1 { - s += "," - } + return nil, err } - return s + return userIDList, nil } diff --git a/pkg/proto/auth/auth.pb.go b/pkg/proto/auth/auth.pb.go index 71ab5fe7a..1bc510860 100644 --- a/pkg/proto/auth/auth.pb.go +++ b/pkg/proto/auth/auth.pb.go @@ -6,6 +6,7 @@ package pbAuth // import "./auth" 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" @@ -23,112 +24,110 @@ var _ = math.Inf // proto package needs to be updated. const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package -type UserRegisterReq struct { - UID string `protobuf:"bytes,1,opt,name=UID" json:"UID,omitempty"` - Name string `protobuf:"bytes,2,opt,name=Name" json:"Name,omitempty"` - Icon string `protobuf:"bytes,3,opt,name=Icon" json:"Icon,omitempty"` - Gender int32 `protobuf:"varint,4,opt,name=Gender" json:"Gender,omitempty"` - Mobile string `protobuf:"bytes,5,opt,name=Mobile" json:"Mobile,omitempty"` - Birth string `protobuf:"bytes,6,opt,name=Birth" json:"Birth,omitempty"` - Email string `protobuf:"bytes,7,opt,name=Email" json:"Email,omitempty"` - Ex string `protobuf:"bytes,8,opt,name=Ex" json:"Ex,omitempty"` +type 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 *UserRegisterReq) Reset() { *m = UserRegisterReq{} } -func (m *UserRegisterReq) String() string { return proto.CompactTextString(m) } -func (*UserRegisterReq) ProtoMessage() {} -func (*UserRegisterReq) Descriptor() ([]byte, []int) { - return fileDescriptor_auth_d2199f7b1388fd2f, []int{0} +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_auth_6e5d34ffb6edf37a, []int{0} } -func (m *UserRegisterReq) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_UserRegisterReq.Unmarshal(m, b) +func (m *CommonResp) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_CommonResp.Unmarshal(m, b) } -func (m *UserRegisterReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_UserRegisterReq.Marshal(b, m, deterministic) +func (m *CommonResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_CommonResp.Marshal(b, m, deterministic) } -func (dst *UserRegisterReq) XXX_Merge(src proto.Message) { - xxx_messageInfo_UserRegisterReq.Merge(dst, src) +func (dst *CommonResp) XXX_Merge(src proto.Message) { + xxx_messageInfo_CommonResp.Merge(dst, src) } -func (m *UserRegisterReq) XXX_Size() int { - return xxx_messageInfo_UserRegisterReq.Size(m) +func (m *CommonResp) XXX_Size() int { + return xxx_messageInfo_CommonResp.Size(m) } -func (m *UserRegisterReq) XXX_DiscardUnknown() { - xxx_messageInfo_UserRegisterReq.DiscardUnknown(m) +func (m *CommonResp) XXX_DiscardUnknown() { + xxx_messageInfo_CommonResp.DiscardUnknown(m) } -var xxx_messageInfo_UserRegisterReq proto.InternalMessageInfo +var xxx_messageInfo_CommonResp proto.InternalMessageInfo -func (m *UserRegisterReq) GetUID() string { +func (m *CommonResp) GetErrCode() int32 { if m != nil { - return m.UID + return m.ErrCode } - return "" + return 0 } -func (m *UserRegisterReq) GetName() string { +func (m *CommonResp) GetErrMsg() string { if m != nil { - return m.Name + return m.ErrMsg } return "" } -func (m *UserRegisterReq) GetIcon() string { - if m != nil { - return m.Icon - } - return "" +type UserRegisterReq struct { + UserInfo *sdk_ws.UserInfo `protobuf:"bytes,1,opt,name=UserInfo" json:"UserInfo,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 *UserRegisterReq) GetGender() int32 { - if m != nil { - return m.Gender - } - return 0 +func (m *UserRegisterReq) Reset() { *m = UserRegisterReq{} } +func (m *UserRegisterReq) String() string { return proto.CompactTextString(m) } +func (*UserRegisterReq) ProtoMessage() {} +func (*UserRegisterReq) Descriptor() ([]byte, []int) { + return fileDescriptor_auth_6e5d34ffb6edf37a, []int{1} } - -func (m *UserRegisterReq) GetMobile() string { - if m != nil { - return m.Mobile - } - return "" +func (m *UserRegisterReq) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_UserRegisterReq.Unmarshal(m, b) } - -func (m *UserRegisterReq) GetBirth() string { - if m != nil { - return m.Birth - } - return "" +func (m *UserRegisterReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_UserRegisterReq.Marshal(b, m, deterministic) +} +func (dst *UserRegisterReq) XXX_Merge(src proto.Message) { + xxx_messageInfo_UserRegisterReq.Merge(dst, src) +} +func (m *UserRegisterReq) XXX_Size() int { + return xxx_messageInfo_UserRegisterReq.Size(m) +} +func (m *UserRegisterReq) XXX_DiscardUnknown() { + xxx_messageInfo_UserRegisterReq.DiscardUnknown(m) } -func (m *UserRegisterReq) GetEmail() string { +var xxx_messageInfo_UserRegisterReq proto.InternalMessageInfo + +func (m *UserRegisterReq) GetUserInfo() *sdk_ws.UserInfo { if m != nil { - return m.Email + return m.UserInfo } - return "" + return nil } -func (m *UserRegisterReq) GetEx() string { +func (m *UserRegisterReq) GetOperationID() string { if m != nil { - return m.Ex + return m.OperationID } return "" } type UserRegisterResp struct { - Success bool `protobuf:"varint,1,opt,name=Success" json:"Success,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + 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 *UserRegisterResp) Reset() { *m = UserRegisterResp{} } func (m *UserRegisterResp) String() string { return proto.CompactTextString(m) } func (*UserRegisterResp) ProtoMessage() {} func (*UserRegisterResp) Descriptor() ([]byte, []int) { - return fileDescriptor_auth_d2199f7b1388fd2f, []int{1} + return fileDescriptor_auth_6e5d34ffb6edf37a, []int{2} } func (m *UserRegisterResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_UserRegisterResp.Unmarshal(m, b) @@ -148,16 +147,18 @@ func (m *UserRegisterResp) XXX_DiscardUnknown() { var xxx_messageInfo_UserRegisterResp proto.InternalMessageInfo -func (m *UserRegisterResp) GetSuccess() bool { +func (m *UserRegisterResp) GetCommonResp() *CommonResp { if m != nil { - return m.Success + return m.CommonResp } - return false + return nil } type UserTokenReq struct { Platform int32 `protobuf:"varint,1,opt,name=Platform" json:"Platform,omitempty"` - UID string `protobuf:"bytes,2,opt,name=UID" json:"UID,omitempty"` + FromUserID string `protobuf:"bytes,2,opt,name=FromUserID" json:"FromUserID,omitempty"` + OpUserID string `protobuf:"bytes,3,opt,name=OpUserID" json:"OpUserID,omitempty"` + OperationID string `protobuf:"bytes,4,opt,name=OperationID" json:"OperationID,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -167,7 +168,7 @@ func (m *UserTokenReq) Reset() { *m = UserTokenReq{} } func (m *UserTokenReq) String() string { return proto.CompactTextString(m) } func (*UserTokenReq) ProtoMessage() {} func (*UserTokenReq) Descriptor() ([]byte, []int) { - return fileDescriptor_auth_d2199f7b1388fd2f, []int{2} + return fileDescriptor_auth_6e5d34ffb6edf37a, []int{3} } func (m *UserTokenReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_UserTokenReq.Unmarshal(m, b) @@ -194,28 +195,41 @@ func (m *UserTokenReq) GetPlatform() int32 { return 0 } -func (m *UserTokenReq) GetUID() string { +func (m *UserTokenReq) GetFromUserID() string { if m != nil { - return m.UID + return m.FromUserID + } + return "" +} + +func (m *UserTokenReq) GetOpUserID() string { + if m != nil { + return m.OpUserID + } + return "" +} + +func (m *UserTokenReq) GetOperationID() string { + if m != nil { + return m.OperationID } return "" } type UserTokenResp struct { - ErrCode int32 `protobuf:"varint,1,opt,name=ErrCode" json:"ErrCode,omitempty"` - ErrMsg string `protobuf:"bytes,2,opt,name=ErrMsg" json:"ErrMsg,omitempty"` - Token string `protobuf:"bytes,3,opt,name=Token" json:"Token,omitempty"` - ExpiredTime int64 `protobuf:"varint,4,opt,name=ExpiredTime" json:"ExpiredTime,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + CommonResp *CommonResp `protobuf:"bytes,1,opt,name=CommonResp" json:"CommonResp,omitempty"` + Token string `protobuf:"bytes,2,opt,name=Token" json:"Token,omitempty"` + ExpiredTime int64 `protobuf:"varint,3,opt,name=ExpiredTime" json:"ExpiredTime,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } func (m *UserTokenResp) Reset() { *m = UserTokenResp{} } func (m *UserTokenResp) String() string { return proto.CompactTextString(m) } func (*UserTokenResp) ProtoMessage() {} func (*UserTokenResp) Descriptor() ([]byte, []int) { - return fileDescriptor_auth_d2199f7b1388fd2f, []int{3} + return fileDescriptor_auth_6e5d34ffb6edf37a, []int{4} } func (m *UserTokenResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_UserTokenResp.Unmarshal(m, b) @@ -235,18 +249,11 @@ func (m *UserTokenResp) XXX_DiscardUnknown() { var xxx_messageInfo_UserTokenResp proto.InternalMessageInfo -func (m *UserTokenResp) GetErrCode() int32 { +func (m *UserTokenResp) GetCommonResp() *CommonResp { if m != nil { - return m.ErrCode + return m.CommonResp } - return 0 -} - -func (m *UserTokenResp) GetErrMsg() string { - if m != nil { - return m.ErrMsg - } - return "" + return nil } func (m *UserTokenResp) GetToken() string { @@ -264,6 +271,7 @@ func (m *UserTokenResp) GetExpiredTime() int64 { } func init() { + proto.RegisterType((*CommonResp)(nil), "pbAuth.CommonResp") proto.RegisterType((*UserRegisterReq)(nil), "pbAuth.UserRegisterReq") proto.RegisterType((*UserRegisterResp)(nil), "pbAuth.UserRegisterResp") proto.RegisterType((*UserTokenReq)(nil), "pbAuth.UserTokenReq") @@ -375,30 +383,31 @@ var _Auth_serviceDesc = grpc.ServiceDesc{ Metadata: "auth/auth.proto", } -func init() { proto.RegisterFile("auth/auth.proto", fileDescriptor_auth_d2199f7b1388fd2f) } - -var fileDescriptor_auth_d2199f7b1388fd2f = []byte{ - // 348 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x6c, 0x92, 0x41, 0x4f, 0xf2, 0x40, - 0x10, 0x86, 0xd3, 0x42, 0x0b, 0xcc, 0xf7, 0x21, 0x64, 0x82, 0xba, 0xe1, 0x44, 0x7a, 0xe2, 0x60, - 0x6a, 0xa2, 0x17, 0x13, 0xbd, 0x80, 0x36, 0x86, 0x03, 0xc6, 0x54, 0xb8, 0x78, 0x2b, 0xb0, 0x42, - 0x23, 0x65, 0xeb, 0x6e, 0x49, 0xf0, 0xec, 0x8f, 0xf2, 0xef, 0x99, 0x9d, 0xdd, 0x12, 0x34, 0x5c, - 0xda, 0x79, 0x9f, 0x9d, 0xc9, 0xee, 0x3b, 0x33, 0xd0, 0x4a, 0xb6, 0xc5, 0xea, 0x52, 0x7f, 0xc2, - 0x5c, 0x8a, 0x42, 0xa0, 0x9f, 0xcf, 0x06, 0xdb, 0x62, 0x15, 0x7c, 0x3b, 0xd0, 0x9a, 0x2a, 0x2e, - 0x63, 0xbe, 0x4c, 0x55, 0xa1, 0xff, 0x1f, 0xd8, 0x86, 0xca, 0x74, 0xf4, 0xc0, 0x9c, 0x9e, 0xd3, - 0x6f, 0xc4, 0x3a, 0x44, 0x84, 0xea, 0x53, 0x92, 0x71, 0xe6, 0x12, 0xa2, 0x58, 0xb3, 0xd1, 0x5c, - 0x6c, 0x58, 0xc5, 0x30, 0x1d, 0xe3, 0x19, 0xf8, 0x8f, 0x7c, 0xb3, 0xe0, 0x92, 0x55, 0x7b, 0x4e, - 0xdf, 0x8b, 0xad, 0xd2, 0x7c, 0x2c, 0x66, 0xe9, 0x9a, 0x33, 0x8f, 0xb2, 0xad, 0xc2, 0x0e, 0x78, - 0xc3, 0x54, 0x16, 0x2b, 0xe6, 0x13, 0x36, 0x42, 0xd3, 0x28, 0x4b, 0xd2, 0x35, 0xab, 0x19, 0x4a, - 0x02, 0x4f, 0xc0, 0x8d, 0x76, 0xac, 0x4e, 0xc8, 0x8d, 0x76, 0xc1, 0x05, 0xb4, 0x7f, 0x3f, 0x5c, - 0xe5, 0xc8, 0xa0, 0xf6, 0xb2, 0x9d, 0xcf, 0xb9, 0x52, 0xf4, 0xfa, 0x7a, 0x5c, 0xca, 0xe0, 0x0e, - 0xfe, 0xeb, 0xec, 0x89, 0x78, 0xe7, 0x1b, 0xed, 0xb1, 0x0b, 0xf5, 0xe7, 0x75, 0x52, 0xbc, 0x09, - 0x99, 0x51, 0xaa, 0x17, 0xef, 0x75, 0xe9, 0xdf, 0xdd, 0xfb, 0x0f, 0x3e, 0xa1, 0x79, 0x50, 0x6d, - 0x2e, 0x8a, 0xa4, 0xbc, 0x17, 0x0b, 0x6e, 0xab, 0x4b, 0xa9, 0xad, 0x46, 0x52, 0x8e, 0xd5, 0xd2, - 0xd6, 0x5b, 0xa5, 0x4d, 0x51, 0xb9, 0xed, 0x97, 0x11, 0xd8, 0x83, 0x7f, 0xd1, 0x2e, 0x4f, 0x25, - 0x5f, 0x4c, 0xd2, 0x8c, 0x53, 0xd7, 0x2a, 0xf1, 0x21, 0xba, 0xfa, 0x72, 0xa0, 0xaa, 0x27, 0x85, - 0x03, 0xe3, 0xa0, 0xf4, 0x8b, 0xe7, 0xa1, 0x19, 0x61, 0xf8, 0x67, 0x7c, 0x5d, 0x76, 0xfc, 0x40, - 0xe5, 0x78, 0x03, 0x8d, 0xbd, 0x0d, 0xec, 0x1c, 0xa6, 0x95, 0x7d, 0xe9, 0x9e, 0x1e, 0xa1, 0x2a, - 0x1f, 0xb6, 0x5e, 0x9b, 0x21, 0xad, 0xcf, 0xad, 0x39, 0x9e, 0xf9, 0xb4, 0x46, 0xd7, 0x3f, 0x01, - 0x00, 0x00, 0xff, 0xff, 0x15, 0x5d, 0xc8, 0xb6, 0x59, 0x02, 0x00, 0x00, +func init() { proto.RegisterFile("auth/auth.proto", fileDescriptor_auth_6e5d34ffb6edf37a) } + +var fileDescriptor_auth_6e5d34ffb6edf37a = []byte{ + // 362 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x9c, 0x52, 0x4d, 0x4f, 0xc2, 0x40, + 0x14, 0x4c, 0xe5, 0x43, 0x78, 0x48, 0x30, 0x2f, 0xa0, 0x4d, 0x0f, 0x06, 0x7b, 0xe2, 0xd4, 0x46, + 0xbc, 0x98, 0x98, 0x98, 0x20, 0x4a, 0xc2, 0x81, 0x60, 0x1a, 0xbc, 0x78, 0x21, 0x90, 0x2e, 0xd0, + 0xd4, 0x76, 0xd7, 0xdd, 0x12, 0x4c, 0x3c, 0x7a, 0xf1, 0x67, 0x9b, 0xdd, 0x7e, 0xb8, 0x22, 0x27, + 0x2f, 0x6d, 0x66, 0xe6, 0xf5, 0xcd, 0xcc, 0x76, 0xa1, 0xb5, 0xd8, 0x26, 0x1b, 0x57, 0x3e, 0x1c, + 0xc6, 0x69, 0x42, 0xb1, 0xca, 0x96, 0x83, 0x6d, 0xb2, 0xb1, 0x2e, 0xa7, 0x8c, 0xc4, 0xf3, 0xf1, + 0xc4, 0x65, 0xe1, 0xda, 0x55, 0x92, 0x2b, 0xfc, 0x70, 0xbe, 0x13, 0xee, 0x4e, 0xa4, 0xa3, 0xf6, + 0x1d, 0xc0, 0x90, 0x46, 0x11, 0x8d, 0x3d, 0x22, 0x18, 0x9a, 0x70, 0x4c, 0x38, 0x1f, 0x52, 0x9f, + 0x98, 0x46, 0xd7, 0xe8, 0x55, 0xbc, 0x1c, 0xe2, 0x19, 0x54, 0x09, 0xe7, 0x13, 0xb1, 0x36, 0x8f, + 0xba, 0x46, 0xaf, 0xee, 0x65, 0xc8, 0x5e, 0x41, 0xeb, 0x59, 0x10, 0xee, 0x91, 0x75, 0x20, 0x12, + 0xf9, 0x7e, 0xc3, 0x2b, 0xa8, 0x49, 0x6a, 0x1c, 0xaf, 0xa8, 0xda, 0xd2, 0xe8, 0x77, 0x1c, 0x2a, + 0x83, 0x04, 0xd1, 0x5c, 0xf8, 0xa1, 0x93, 0x8b, 0x5e, 0x31, 0x86, 0x5d, 0x68, 0x4c, 0x19, 0xe1, + 0x8b, 0x24, 0xa0, 0xf1, 0xf8, 0x21, 0xb3, 0xd0, 0x29, 0x7b, 0x04, 0xa7, 0xbf, 0x7d, 0x04, 0xc3, + 0xbe, 0x9e, 0x3d, 0xb3, 0x42, 0x27, 0xed, 0xee, 0xfc, 0x28, 0x9e, 0x36, 0x65, 0x7f, 0x19, 0x70, + 0x22, 0x17, 0xcd, 0x68, 0x48, 0x62, 0x99, 0xd6, 0x82, 0xda, 0xd3, 0xeb, 0x22, 0x59, 0x51, 0x1e, + 0x65, 0x9d, 0x0b, 0x8c, 0x17, 0x00, 0x23, 0x4e, 0x23, 0x15, 0x33, 0x4f, 0xa5, 0x31, 0xf2, 0xdb, + 0x29, 0xcb, 0xd4, 0x92, 0x52, 0x0b, 0xbc, 0x5f, 0xa9, 0xfc, 0xb7, 0xd2, 0x07, 0x34, 0xb5, 0x24, + 0xff, 0xeb, 0x83, 0x6d, 0xa8, 0xa8, 0x05, 0x59, 0xba, 0x14, 0x48, 0xf3, 0xc7, 0x77, 0x16, 0x70, + 0xe2, 0xcf, 0x82, 0x88, 0xa8, 0x6c, 0x25, 0x4f, 0xa7, 0xfa, 0x9f, 0x06, 0x94, 0xe5, 0x5e, 0x1c, + 0xa4, 0xe7, 0x91, 0x1f, 0x2c, 0x9e, 0xe7, 0x86, 0x7b, 0xbf, 0xd5, 0x32, 0x0f, 0x0b, 0x82, 0xe1, + 0x0d, 0xd4, 0x8b, 0x22, 0xd8, 0xd6, 0xc7, 0xf2, 0x53, 0xb6, 0x3a, 0x07, 0x58, 0xc1, 0xee, 0x5b, + 0x2f, 0x4d, 0x47, 0x5d, 0xdc, 0xdb, 0x54, 0x5e, 0x56, 0xd5, 0xad, 0xbc, 0xfe, 0x0e, 0x00, 0x00, + 0xff, 0xff, 0x8c, 0xd6, 0x72, 0x1f, 0xd3, 0x02, 0x00, 0x00, } diff --git a/pkg/proto/auth/auth.proto b/pkg/proto/auth/auth.proto index 21b82ff40..592c4987e 100644 --- a/pkg/proto/auth/auth.proto +++ b/pkg/proto/auth/auth.proto @@ -1,34 +1,35 @@ syntax = "proto3"; +import "Open_IM/pkg/proto/sdk_ws/ws.proto"; package pbAuth; option go_package = "./auth;pbAuth"; -message UserRegisterReq { - string UID = 1; - string Name = 2; - string Icon = 3; - int32 Gender = 4; - string Mobile = 5; - string Birth = 6; - string Email = 7; - string Ex = 8; +message CommonResp{ + int32 errCode = 1; + string errMsg = 2; } +message UserRegisterReq { + open_im_sdk.UserInfo UserInfo = 1; + string OperationID = 2; +} message UserRegisterResp { - bool Success = 1; + CommonResp CommonResp = 1; } + message UserTokenReq { int32 Platform = 1; - string UID = 2; + string FromUserID = 2; + string OpUserID = 3; + string OperationID = 4; } - message UserTokenResp { - int32 ErrCode = 1; - string ErrMsg = 2; - string Token = 3; - int64 ExpiredTime = 4; + CommonResp CommonResp = 1; + string Token = 2; + int64 ExpiredTime = 3; } + service Auth { rpc UserRegister(UserRegisterReq) returns(UserRegisterResp); rpc UserToken(UserTokenReq) returns(UserTokenResp); diff --git a/pkg/proto/user/user.pb.go b/pkg/proto/user/user.pb.go index 7a6744c06..e81e474a9 100644 --- a/pkg/proto/user/user.pb.go +++ b/pkg/proto/user/user.pb.go @@ -6,6 +6,7 @@ package user // import "./user" 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" @@ -24,8 +25,8 @@ var _ = math.Inf const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package type CommonResp struct { - ErrorCode int32 `protobuf:"varint,1,opt,name=errorCode" json:"errorCode,omitempty"` - ErrorMsg string `protobuf:"bytes,2,opt,name=errorMsg" json:"errorMsg,omitempty"` + ErrCode int32 `protobuf:"varint,1,opt,name=errCode" json:"errCode,omitempty"` + ErrMsg string `protobuf:"bytes,2,opt,name=errMsg" json:"errMsg,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -35,7 +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_user_04b52567a288fdb7, []int{0} + return fileDescriptor_user_119cb27841530cfa, []int{0} } func (m *CommonResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_CommonResp.Unmarshal(m, b) @@ -55,69 +56,23 @@ func (m *CommonResp) XXX_DiscardUnknown() { var xxx_messageInfo_CommonResp proto.InternalMessageInfo -func (m *CommonResp) GetErrorCode() int32 { +func (m *CommonResp) GetErrCode() int32 { if m != nil { - return m.ErrorCode + return m.ErrCode } return 0 } -func (m *CommonResp) GetErrorMsg() string { +func (m *CommonResp) GetErrMsg() string { if m != nil { - return m.ErrorMsg + return m.ErrMsg } return "" } -type DeleteUsersResp struct { - CommonResp *CommonResp `protobuf:"bytes,1,opt,name=commonResp" json:"commonResp,omitempty"` - FailedUidList []string `protobuf:"bytes,2,rep,name=failedUidList" json:"failedUidList,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *DeleteUsersResp) Reset() { *m = DeleteUsersResp{} } -func (m *DeleteUsersResp) String() string { return proto.CompactTextString(m) } -func (*DeleteUsersResp) ProtoMessage() {} -func (*DeleteUsersResp) Descriptor() ([]byte, []int) { - return fileDescriptor_user_04b52567a288fdb7, []int{1} -} -func (m *DeleteUsersResp) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_DeleteUsersResp.Unmarshal(m, b) -} -func (m *DeleteUsersResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_DeleteUsersResp.Marshal(b, m, deterministic) -} -func (dst *DeleteUsersResp) XXX_Merge(src proto.Message) { - xxx_messageInfo_DeleteUsersResp.Merge(dst, src) -} -func (m *DeleteUsersResp) XXX_Size() int { - return xxx_messageInfo_DeleteUsersResp.Size(m) -} -func (m *DeleteUsersResp) XXX_DiscardUnknown() { - xxx_messageInfo_DeleteUsersResp.DiscardUnknown(m) -} - -var xxx_messageInfo_DeleteUsersResp proto.InternalMessageInfo - -func (m *DeleteUsersResp) GetCommonResp() *CommonResp { - if m != nil { - return m.CommonResp - } - return nil -} - -func (m *DeleteUsersResp) GetFailedUidList() []string { - if m != nil { - return m.FailedUidList - } - return nil -} - type DeleteUsersReq struct { - DeleteUidList []string `protobuf:"bytes,2,rep,name=deleteUidList" json:"deleteUidList,omitempty"` - Token string `protobuf:"bytes,3,opt,name=token" json:"token,omitempty"` + DeleteUserIDList []string `protobuf:"bytes,2,rep,name=DeleteUserIDList" json:"DeleteUserIDList,omitempty"` + OpUserID string `protobuf:"bytes,3,opt,name=OpUserID" json:"OpUserID,omitempty"` OperationID string `protobuf:"bytes,4,opt,name=OperationID" json:"OperationID,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` @@ -128,7 +83,7 @@ func (m *DeleteUsersReq) Reset() { *m = DeleteUsersReq{} } func (m *DeleteUsersReq) String() string { return proto.CompactTextString(m) } func (*DeleteUsersReq) ProtoMessage() {} func (*DeleteUsersReq) Descriptor() ([]byte, []int) { - return fileDescriptor_user_04b52567a288fdb7, []int{2} + return fileDescriptor_user_119cb27841530cfa, []int{1} } func (m *DeleteUsersReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_DeleteUsersReq.Unmarshal(m, b) @@ -148,16 +103,16 @@ func (m *DeleteUsersReq) XXX_DiscardUnknown() { var xxx_messageInfo_DeleteUsersReq proto.InternalMessageInfo -func (m *DeleteUsersReq) GetDeleteUidList() []string { +func (m *DeleteUsersReq) GetDeleteUserIDList() []string { if m != nil { - return m.DeleteUidList + return m.DeleteUserIDList } return nil } -func (m *DeleteUsersReq) GetToken() string { +func (m *DeleteUsersReq) GetOpUserID() string { if m != nil { - return m.Token + return m.OpUserID } return "" } @@ -169,102 +124,148 @@ func (m *DeleteUsersReq) GetOperationID() string { return "" } -type GetAllUsersUidReq struct { - Token string `protobuf:"bytes,2,opt,name=token" json:"token,omitempty"` - OperationID string `protobuf:"bytes,3,opt,name=operationID" json:"operationID,omitempty"` +type DeleteUsersResp struct { + CommonResp *CommonResp `protobuf:"bytes,1,opt,name=CommonResp" json:"CommonResp,omitempty"` + FailedUserIDList []string `protobuf:"bytes,2,rep,name=FailedUserIDList" json:"FailedUserIDList,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *DeleteUsersResp) Reset() { *m = DeleteUsersResp{} } +func (m *DeleteUsersResp) String() string { return proto.CompactTextString(m) } +func (*DeleteUsersResp) ProtoMessage() {} +func (*DeleteUsersResp) Descriptor() ([]byte, []int) { + return fileDescriptor_user_119cb27841530cfa, []int{2} +} +func (m *DeleteUsersResp) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_DeleteUsersResp.Unmarshal(m, b) +} +func (m *DeleteUsersResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_DeleteUsersResp.Marshal(b, m, deterministic) +} +func (dst *DeleteUsersResp) XXX_Merge(src proto.Message) { + xxx_messageInfo_DeleteUsersResp.Merge(dst, src) +} +func (m *DeleteUsersResp) XXX_Size() int { + return xxx_messageInfo_DeleteUsersResp.Size(m) +} +func (m *DeleteUsersResp) XXX_DiscardUnknown() { + xxx_messageInfo_DeleteUsersResp.DiscardUnknown(m) +} + +var xxx_messageInfo_DeleteUsersResp proto.InternalMessageInfo + +func (m *DeleteUsersResp) GetCommonResp() *CommonResp { + if m != nil { + return m.CommonResp + } + return nil +} + +func (m *DeleteUsersResp) GetFailedUserIDList() []string { + if m != nil { + return m.FailedUserIDList + } + return nil +} + +type GetAllUserIDReq struct { + OpUserID string `protobuf:"bytes,1,opt,name=opUserID" json:"opUserID,omitempty"` + OperationID string `protobuf:"bytes,2,opt,name=operationID" json:"operationID,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` } -func (m *GetAllUsersUidReq) Reset() { *m = GetAllUsersUidReq{} } -func (m *GetAllUsersUidReq) String() string { return proto.CompactTextString(m) } -func (*GetAllUsersUidReq) ProtoMessage() {} -func (*GetAllUsersUidReq) Descriptor() ([]byte, []int) { - return fileDescriptor_user_04b52567a288fdb7, []int{3} +func (m *GetAllUserIDReq) Reset() { *m = GetAllUserIDReq{} } +func (m *GetAllUserIDReq) String() string { return proto.CompactTextString(m) } +func (*GetAllUserIDReq) ProtoMessage() {} +func (*GetAllUserIDReq) Descriptor() ([]byte, []int) { + return fileDescriptor_user_119cb27841530cfa, []int{3} } -func (m *GetAllUsersUidReq) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_GetAllUsersUidReq.Unmarshal(m, b) +func (m *GetAllUserIDReq) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GetAllUserIDReq.Unmarshal(m, b) } -func (m *GetAllUsersUidReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_GetAllUsersUidReq.Marshal(b, m, deterministic) +func (m *GetAllUserIDReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GetAllUserIDReq.Marshal(b, m, deterministic) } -func (dst *GetAllUsersUidReq) XXX_Merge(src proto.Message) { - xxx_messageInfo_GetAllUsersUidReq.Merge(dst, src) +func (dst *GetAllUserIDReq) XXX_Merge(src proto.Message) { + xxx_messageInfo_GetAllUserIDReq.Merge(dst, src) } -func (m *GetAllUsersUidReq) XXX_Size() int { - return xxx_messageInfo_GetAllUsersUidReq.Size(m) +func (m *GetAllUserIDReq) XXX_Size() int { + return xxx_messageInfo_GetAllUserIDReq.Size(m) } -func (m *GetAllUsersUidReq) XXX_DiscardUnknown() { - xxx_messageInfo_GetAllUsersUidReq.DiscardUnknown(m) +func (m *GetAllUserIDReq) XXX_DiscardUnknown() { + xxx_messageInfo_GetAllUserIDReq.DiscardUnknown(m) } -var xxx_messageInfo_GetAllUsersUidReq proto.InternalMessageInfo +var xxx_messageInfo_GetAllUserIDReq proto.InternalMessageInfo -func (m *GetAllUsersUidReq) GetToken() string { +func (m *GetAllUserIDReq) GetOpUserID() string { if m != nil { - return m.Token + return m.OpUserID } return "" } -func (m *GetAllUsersUidReq) GetOperationID() string { +func (m *GetAllUserIDReq) GetOperationID() string { if m != nil { return m.OperationID } return "" } -type GetAllUsersUidResp struct { - CommonResp *CommonResp `protobuf:"bytes,1,opt,name=commonResp" json:"commonResp,omitempty"` - UidList []string `protobuf:"bytes,2,rep,name=uidList" json:"uidList,omitempty"` +type GetAllUserIDResp struct { + CommonResp *CommonResp `protobuf:"bytes,1,opt,name=CommonResp" json:"CommonResp,omitempty"` + UserIDList []string `protobuf:"bytes,2,rep,name=UserIDList" json:"UserIDList,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` } -func (m *GetAllUsersUidResp) Reset() { *m = GetAllUsersUidResp{} } -func (m *GetAllUsersUidResp) String() string { return proto.CompactTextString(m) } -func (*GetAllUsersUidResp) ProtoMessage() {} -func (*GetAllUsersUidResp) Descriptor() ([]byte, []int) { - return fileDescriptor_user_04b52567a288fdb7, []int{4} +func (m *GetAllUserIDResp) Reset() { *m = GetAllUserIDResp{} } +func (m *GetAllUserIDResp) String() string { return proto.CompactTextString(m) } +func (*GetAllUserIDResp) ProtoMessage() {} +func (*GetAllUserIDResp) Descriptor() ([]byte, []int) { + return fileDescriptor_user_119cb27841530cfa, []int{4} } -func (m *GetAllUsersUidResp) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_GetAllUsersUidResp.Unmarshal(m, b) +func (m *GetAllUserIDResp) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GetAllUserIDResp.Unmarshal(m, b) } -func (m *GetAllUsersUidResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_GetAllUsersUidResp.Marshal(b, m, deterministic) +func (m *GetAllUserIDResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GetAllUserIDResp.Marshal(b, m, deterministic) } -func (dst *GetAllUsersUidResp) XXX_Merge(src proto.Message) { - xxx_messageInfo_GetAllUsersUidResp.Merge(dst, src) +func (dst *GetAllUserIDResp) XXX_Merge(src proto.Message) { + xxx_messageInfo_GetAllUserIDResp.Merge(dst, src) } -func (m *GetAllUsersUidResp) XXX_Size() int { - return xxx_messageInfo_GetAllUsersUidResp.Size(m) +func (m *GetAllUserIDResp) XXX_Size() int { + return xxx_messageInfo_GetAllUserIDResp.Size(m) } -func (m *GetAllUsersUidResp) XXX_DiscardUnknown() { - xxx_messageInfo_GetAllUsersUidResp.DiscardUnknown(m) +func (m *GetAllUserIDResp) XXX_DiscardUnknown() { + xxx_messageInfo_GetAllUserIDResp.DiscardUnknown(m) } -var xxx_messageInfo_GetAllUsersUidResp proto.InternalMessageInfo +var xxx_messageInfo_GetAllUserIDResp proto.InternalMessageInfo -func (m *GetAllUsersUidResp) GetCommonResp() *CommonResp { +func (m *GetAllUserIDResp) GetCommonResp() *CommonResp { if m != nil { return m.CommonResp } return nil } -func (m *GetAllUsersUidResp) GetUidList() []string { +func (m *GetAllUserIDResp) GetUserIDList() []string { if m != nil { - return m.UidList + return m.UserIDList } return nil } type AccountCheckReq struct { - UidList []string `protobuf:"bytes,1,rep,name=uidList" json:"uidList,omitempty"` - Token string `protobuf:"bytes,2,opt,name=token" json:"token,omitempty"` - OperationID string `protobuf:"bytes,3,opt,name=operationID" json:"operationID,omitempty"` + CheckUserIDList []string `protobuf:"bytes,1,rep,name=CheckUserIDList" json:"CheckUserIDList,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:"-"` @@ -274,7 +275,7 @@ func (m *AccountCheckReq) Reset() { *m = AccountCheckReq{} } func (m *AccountCheckReq) String() string { return proto.CompactTextString(m) } func (*AccountCheckReq) ProtoMessage() {} func (*AccountCheckReq) Descriptor() ([]byte, []int) { - return fileDescriptor_user_04b52567a288fdb7, []int{5} + return fileDescriptor_user_119cb27841530cfa, []int{5} } func (m *AccountCheckReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_AccountCheckReq.Unmarshal(m, b) @@ -294,16 +295,16 @@ func (m *AccountCheckReq) XXX_DiscardUnknown() { var xxx_messageInfo_AccountCheckReq proto.InternalMessageInfo -func (m *AccountCheckReq) GetUidList() []string { +func (m *AccountCheckReq) GetCheckUserIDList() []string { if m != nil { - return m.UidList + return m.CheckUserIDList } return nil } -func (m *AccountCheckReq) GetToken() string { +func (m *AccountCheckReq) GetOpUserID() string { if m != nil { - return m.Token + return m.OpUserID } return "" } @@ -317,7 +318,7 @@ func (m *AccountCheckReq) GetOperationID() string { type AccountCheckResp struct { CommonResp *CommonResp `protobuf:"bytes,1,opt,name=commonResp" json:"commonResp,omitempty"` - Result []*AccountCheckResp_SingleUserStatus `protobuf:"bytes,2,rep,name=result" json:"result,omitempty"` + ResultList []*AccountCheckResp_SingleUserStatus `protobuf:"bytes,2,rep,name=ResultList" json:"ResultList,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -327,7 +328,7 @@ func (m *AccountCheckResp) Reset() { *m = AccountCheckResp{} } func (m *AccountCheckResp) String() string { return proto.CompactTextString(m) } func (*AccountCheckResp) ProtoMessage() {} func (*AccountCheckResp) Descriptor() ([]byte, []int) { - return fileDescriptor_user_04b52567a288fdb7, []int{6} + return fileDescriptor_user_119cb27841530cfa, []int{6} } func (m *AccountCheckResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_AccountCheckResp.Unmarshal(m, b) @@ -354,9 +355,9 @@ func (m *AccountCheckResp) GetCommonResp() *CommonResp { return nil } -func (m *AccountCheckResp) GetResult() []*AccountCheckResp_SingleUserStatus { +func (m *AccountCheckResp) GetResultList() []*AccountCheckResp_SingleUserStatus { if m != nil { - return m.Result + return m.ResultList } return nil } @@ -373,7 +374,7 @@ func (m *AccountCheckResp_SingleUserStatus) Reset() { *m = AccountCheckR func (m *AccountCheckResp_SingleUserStatus) String() string { return proto.CompactTextString(m) } func (*AccountCheckResp_SingleUserStatus) ProtoMessage() {} func (*AccountCheckResp_SingleUserStatus) Descriptor() ([]byte, []int) { - return fileDescriptor_user_04b52567a288fdb7, []int{6, 0} + return fileDescriptor_user_119cb27841530cfa, []int{6, 0} } func (m *AccountCheckResp_SingleUserStatus) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_AccountCheckResp_SingleUserStatus.Unmarshal(m, b) @@ -409,7 +410,7 @@ func (m *AccountCheckResp_SingleUserStatus) GetAccountStatus() string { type GetUserInfoReq struct { UserIDList []string `protobuf:"bytes,1,rep,name=userIDList" json:"userIDList,omitempty"` - Token string `protobuf:"bytes,2,opt,name=token" json:"token,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:"-"` @@ -420,7 +421,7 @@ 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_user_04b52567a288fdb7, []int{7} + return fileDescriptor_user_119cb27841530cfa, []int{7} } func (m *GetUserInfoReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetUserInfoReq.Unmarshal(m, b) @@ -447,9 +448,9 @@ func (m *GetUserInfoReq) GetUserIDList() []string { return nil } -func (m *GetUserInfoReq) GetToken() string { +func (m *GetUserInfoReq) GetOpUserID() string { if m != nil { - return m.Token + return m.OpUserID } return "" } @@ -462,19 +463,18 @@ func (m *GetUserInfoReq) GetOperationID() string { } type GetUserInfoResp struct { - ErrorCode int32 `protobuf:"varint,1,opt,name=errorCode" json:"errorCode,omitempty"` - ErrorMsg string `protobuf:"bytes,2,opt,name=errorMsg" json:"errorMsg,omitempty"` - Data []*UserInfo `protobuf:"bytes,3,rep,name=Data" json:"Data,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + CommonResp *CommonResp `protobuf:"bytes,1,opt,name=commonResp" json:"commonResp,omitempty"` + UserInfoList []*sdk_ws.UserInfo `protobuf:"bytes,3,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_user_04b52567a288fdb7, []int{8} + return fileDescriptor_user_119cb27841530cfa, []int{8} } func (m *GetUserInfoResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetUserInfoResp.Unmarshal(m, b) @@ -494,188 +494,34 @@ func (m *GetUserInfoResp) XXX_DiscardUnknown() { var xxx_messageInfo_GetUserInfoResp proto.InternalMessageInfo -func (m *GetUserInfoResp) GetErrorCode() int32 { - if m != nil { - return m.ErrorCode - } - return 0 -} - -func (m *GetUserInfoResp) GetErrorMsg() string { - if m != nil { - return m.ErrorMsg - } - return "" -} - -func (m *GetUserInfoResp) GetData() []*UserInfo { +func (m *GetUserInfoResp) GetCommonResp() *CommonResp { if m != nil { - return m.Data + return m.CommonResp } return nil } -type UserInfo struct { - Uid string `protobuf:"bytes,1,opt,name=uid" json:"uid,omitempty"` - Name string `protobuf:"bytes,2,opt,name=name" json:"name,omitempty"` - Icon string `protobuf:"bytes,3,opt,name=icon" json:"icon,omitempty"` - Gender int32 `protobuf:"varint,4,opt,name=gender" json:"gender,omitempty"` - Mobile string `protobuf:"bytes,5,opt,name=mobile" json:"mobile,omitempty"` - Birth string `protobuf:"bytes,6,opt,name=birth" json:"birth,omitempty"` - Email string `protobuf:"bytes,7,opt,name=email" json:"email,omitempty"` - Ex string `protobuf:"bytes,8,opt,name=ex" json:"ex,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -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_user_04b52567a288fdb7, []int{9} -} -func (m *UserInfo) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_UserInfo.Unmarshal(m, b) -} -func (m *UserInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_UserInfo.Marshal(b, m, deterministic) -} -func (dst *UserInfo) XXX_Merge(src proto.Message) { - xxx_messageInfo_UserInfo.Merge(dst, src) -} -func (m *UserInfo) XXX_Size() int { - return xxx_messageInfo_UserInfo.Size(m) -} -func (m *UserInfo) XXX_DiscardUnknown() { - xxx_messageInfo_UserInfo.DiscardUnknown(m) -} - -var xxx_messageInfo_UserInfo proto.InternalMessageInfo - -func (m *UserInfo) GetUid() string { - if m != nil { - return m.Uid - } - return "" -} - -func (m *UserInfo) GetName() string { - if m != nil { - return m.Name - } - return "" -} - -func (m *UserInfo) GetIcon() string { - if m != nil { - return m.Icon - } - return "" -} - -func (m *UserInfo) GetGender() int32 { - if m != nil { - return m.Gender - } - return 0 -} - -func (m *UserInfo) GetMobile() string { - if m != nil { - return m.Mobile - } - return "" -} - -func (m *UserInfo) GetBirth() string { - if m != nil { - return m.Birth - } - return "" -} - -func (m *UserInfo) GetEmail() string { - if m != nil { - return m.Email - } - return "" -} - -func (m *UserInfo) GetEx() string { - if m != nil { - return m.Ex - } - return "" -} - -type LogoutReq struct { - OperationID string `protobuf:"bytes,1,opt,name=OperationID" json:"OperationID,omitempty"` - Token string `protobuf:"bytes,2,opt,name=token" json:"token,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *LogoutReq) Reset() { *m = LogoutReq{} } -func (m *LogoutReq) String() string { return proto.CompactTextString(m) } -func (*LogoutReq) ProtoMessage() {} -func (*LogoutReq) Descriptor() ([]byte, []int) { - return fileDescriptor_user_04b52567a288fdb7, []int{10} -} -func (m *LogoutReq) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_LogoutReq.Unmarshal(m, b) -} -func (m *LogoutReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_LogoutReq.Marshal(b, m, deterministic) -} -func (dst *LogoutReq) XXX_Merge(src proto.Message) { - xxx_messageInfo_LogoutReq.Merge(dst, src) -} -func (m *LogoutReq) XXX_Size() int { - return xxx_messageInfo_LogoutReq.Size(m) -} -func (m *LogoutReq) XXX_DiscardUnknown() { - xxx_messageInfo_LogoutReq.DiscardUnknown(m) -} - -var xxx_messageInfo_LogoutReq proto.InternalMessageInfo - -func (m *LogoutReq) GetOperationID() string { - if m != nil { - return m.OperationID - } - return "" -} - -func (m *LogoutReq) GetToken() string { +func (m *GetUserInfoResp) GetUserInfoList() []*sdk_ws.UserInfo { if m != nil { - return m.Token + return m.UserInfoList } - return "" + return nil } type UpdateUserInfoReq struct { - Icon string `protobuf:"bytes,1,opt,name=icon" json:"icon,omitempty"` - Name string `protobuf:"bytes,2,opt,name=name" json:"name,omitempty"` - Gender int32 `protobuf:"varint,3,opt,name=gender" json:"gender,omitempty"` - Mobile string `protobuf:"bytes,4,opt,name=mobile" json:"mobile,omitempty"` - Birth string `protobuf:"bytes,5,opt,name=birth" json:"birth,omitempty"` - Email string `protobuf:"bytes,6,opt,name=email" json:"email,omitempty"` - Ex string `protobuf:"bytes,7,opt,name=ex" json:"ex,omitempty"` - Token string `protobuf:"bytes,8,opt,name=token" json:"token,omitempty"` - OperationID string `protobuf:"bytes,9,opt,name=OperationID" json:"OperationID,omitempty"` - Uid string `protobuf:"bytes,10,opt,name=Uid" json:"Uid,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + UserInfo *sdk_ws.UserInfo `protobuf:"bytes,1,opt,name=UserInfo" json:"UserInfo,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 *UpdateUserInfoReq) Reset() { *m = UpdateUserInfoReq{} } func (m *UpdateUserInfoReq) String() string { return proto.CompactTextString(m) } func (*UpdateUserInfoReq) ProtoMessage() {} func (*UpdateUserInfoReq) Descriptor() ([]byte, []int) { - return fileDescriptor_user_04b52567a288fdb7, []int{11} + return fileDescriptor_user_119cb27841530cfa, []int{9} } func (m *UpdateUserInfoReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_UpdateUserInfoReq.Unmarshal(m, b) @@ -695,81 +541,71 @@ func (m *UpdateUserInfoReq) XXX_DiscardUnknown() { var xxx_messageInfo_UpdateUserInfoReq proto.InternalMessageInfo -func (m *UpdateUserInfoReq) GetIcon() string { +func (m *UpdateUserInfoReq) GetUserInfo() *sdk_ws.UserInfo { if m != nil { - return m.Icon + return m.UserInfo } - return "" + return nil } -func (m *UpdateUserInfoReq) GetName() string { +func (m *UpdateUserInfoReq) GetOpUserID() string { if m != nil { - return m.Name + return m.OpUserID } return "" } -func (m *UpdateUserInfoReq) GetGender() int32 { - if m != nil { - return m.Gender - } - return 0 -} - -func (m *UpdateUserInfoReq) GetMobile() string { +func (m *UpdateUserInfoReq) GetOperationID() string { if m != nil { - return m.Mobile + return m.OperationID } return "" } -func (m *UpdateUserInfoReq) GetBirth() string { - if m != nil { - return m.Birth - } - 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 *UpdateUserInfoReq) GetEmail() string { - if m != nil { - return m.Email - } - return "" +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_user_119cb27841530cfa, []int{10} } - -func (m *UpdateUserInfoReq) GetEx() string { - if m != nil { - return m.Ex - } - return "" +func (m *UpdateUserInfoResp) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_UpdateUserInfoResp.Unmarshal(m, b) } - -func (m *UpdateUserInfoReq) GetToken() string { - if m != nil { - return m.Token - } - return "" +func (m *UpdateUserInfoResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_UpdateUserInfoResp.Marshal(b, m, deterministic) } - -func (m *UpdateUserInfoReq) GetOperationID() string { - if m != nil { - return m.OperationID - } - return "" +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) } -func (m *UpdateUserInfoReq) GetUid() string { +var xxx_messageInfo_UpdateUserInfoResp proto.InternalMessageInfo + +func (m *UpdateUserInfoResp) GetCommonResp() *CommonResp { if m != nil { - return m.Uid + return m.CommonResp } - return "" + return nil } type SetReceiveMessageOptReq struct { - UId string `protobuf:"bytes,1,opt,name=uId" json:"uId,omitempty"` + FromUserID string `protobuf:"bytes,1,opt,name=FromUserID" json:"FromUserID,omitempty"` Opt int32 `protobuf:"varint,2,opt,name=opt" json:"opt,omitempty"` - ConversationId []string `protobuf:"bytes,3,rep,name=conversationId" json:"conversationId,omitempty"` + ConversationIDList []string `protobuf:"bytes,3,rep,name=conversationIDList" json:"conversationIDList,omitempty"` OperationID string `protobuf:"bytes,4,opt,name=operationID" json:"operationID,omitempty"` + OpUserID string `protobuf:"bytes,5,opt,name=OpUserID" json:"OpUserID,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -779,7 +615,7 @@ func (m *SetReceiveMessageOptReq) Reset() { *m = SetReceiveMessageOptReq func (m *SetReceiveMessageOptReq) String() string { return proto.CompactTextString(m) } func (*SetReceiveMessageOptReq) ProtoMessage() {} func (*SetReceiveMessageOptReq) Descriptor() ([]byte, []int) { - return fileDescriptor_user_04b52567a288fdb7, []int{12} + return fileDescriptor_user_119cb27841530cfa, []int{11} } func (m *SetReceiveMessageOptReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SetReceiveMessageOptReq.Unmarshal(m, b) @@ -799,9 +635,9 @@ func (m *SetReceiveMessageOptReq) XXX_DiscardUnknown() { var xxx_messageInfo_SetReceiveMessageOptReq proto.InternalMessageInfo -func (m *SetReceiveMessageOptReq) GetUId() string { +func (m *SetReceiveMessageOptReq) GetFromUserID() string { if m != nil { - return m.UId + return m.FromUserID } return "" } @@ -813,9 +649,9 @@ func (m *SetReceiveMessageOptReq) GetOpt() int32 { return 0 } -func (m *SetReceiveMessageOptReq) GetConversationId() []string { +func (m *SetReceiveMessageOptReq) GetConversationIDList() []string { if m != nil { - return m.ConversationId + return m.ConversationIDList } return nil } @@ -827,10 +663,62 @@ func (m *SetReceiveMessageOptReq) GetOperationID() string { return "" } +func (m *SetReceiveMessageOptReq) GetOpUserID() string { + if m != nil { + return m.OpUserID + } + return "" +} + +type OptResult struct { + ConversationId string `protobuf:"bytes,1,opt,name=conversationId" json:"conversationId,omitempty"` + Result int32 `protobuf:"varint,2,opt,name=result" json:"result,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *OptResult) Reset() { *m = OptResult{} } +func (m *OptResult) String() string { return proto.CompactTextString(m) } +func (*OptResult) ProtoMessage() {} +func (*OptResult) Descriptor() ([]byte, []int) { + return fileDescriptor_user_119cb27841530cfa, []int{12} +} +func (m *OptResult) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_OptResult.Unmarshal(m, b) +} +func (m *OptResult) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_OptResult.Marshal(b, m, deterministic) +} +func (dst *OptResult) XXX_Merge(src proto.Message) { + xxx_messageInfo_OptResult.Merge(dst, src) +} +func (m *OptResult) XXX_Size() int { + return xxx_messageInfo_OptResult.Size(m) +} +func (m *OptResult) XXX_DiscardUnknown() { + xxx_messageInfo_OptResult.DiscardUnknown(m) +} + +var xxx_messageInfo_OptResult proto.InternalMessageInfo + +func (m *OptResult) GetConversationId() string { + if m != nil { + return m.ConversationId + } + return "" +} + +func (m *OptResult) GetResult() int32 { + if m != nil { + return m.Result + } + return 0 +} + type SetReceiveMessageOptResp struct { - ErrCode int32 `protobuf:"varint,1,opt,name=errCode" json:"errCode,omitempty"` - ErrMsg string `protobuf:"bytes,2,opt,name=errMsg" json:"errMsg,omitempty"` - OptResult []*OptResult `protobuf:"bytes,3,rep,name=optResult" json:"optResult,omitempty"` + CommonResp *CommonResp `protobuf:"bytes,1,opt,name=commonResp" json:"commonResp,omitempty"` + OptResultList []*OptResult `protobuf:"bytes,2,rep,name=optResultList" json:"optResultList,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -840,7 +728,7 @@ func (m *SetReceiveMessageOptResp) Reset() { *m = SetReceiveMessageOptRe func (m *SetReceiveMessageOptResp) String() string { return proto.CompactTextString(m) } func (*SetReceiveMessageOptResp) ProtoMessage() {} func (*SetReceiveMessageOptResp) Descriptor() ([]byte, []int) { - return fileDescriptor_user_04b52567a288fdb7, []int{13} + return fileDescriptor_user_119cb27841530cfa, []int{13} } func (m *SetReceiveMessageOptResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SetReceiveMessageOptResp.Unmarshal(m, b) @@ -860,31 +748,25 @@ func (m *SetReceiveMessageOptResp) XXX_DiscardUnknown() { var xxx_messageInfo_SetReceiveMessageOptResp proto.InternalMessageInfo -func (m *SetReceiveMessageOptResp) GetErrCode() int32 { - if m != nil { - return m.ErrCode - } - return 0 -} - -func (m *SetReceiveMessageOptResp) GetErrMsg() string { +func (m *SetReceiveMessageOptResp) GetCommonResp() *CommonResp { if m != nil { - return m.ErrMsg + return m.CommonResp } - return "" + return nil } -func (m *SetReceiveMessageOptResp) GetOptResult() []*OptResult { +func (m *SetReceiveMessageOptResp) GetOptResultList() []*OptResult { if m != nil { - return m.OptResult + return m.OptResultList } return nil } type GetReceiveMessageOptReq struct { - UId string `protobuf:"bytes,1,opt,name=uId" json:"uId,omitempty"` + FromUserID string `protobuf:"bytes,1,opt,name=FromUserID" json:"FromUserID,omitempty"` ConversationId []string `protobuf:"bytes,2,rep,name=conversationId" json:"conversationId,omitempty"` OperationID string `protobuf:"bytes,3,opt,name=operationID" json:"operationID,omitempty"` + OpUserID string `protobuf:"bytes,4,opt,name=OpUserID" json:"OpUserID,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -894,7 +776,7 @@ func (m *GetReceiveMessageOptReq) Reset() { *m = GetReceiveMessageOptReq func (m *GetReceiveMessageOptReq) String() string { return proto.CompactTextString(m) } func (*GetReceiveMessageOptReq) ProtoMessage() {} func (*GetReceiveMessageOptReq) Descriptor() ([]byte, []int) { - return fileDescriptor_user_04b52567a288fdb7, []int{14} + return fileDescriptor_user_119cb27841530cfa, []int{14} } func (m *GetReceiveMessageOptReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetReceiveMessageOptReq.Unmarshal(m, b) @@ -914,9 +796,9 @@ func (m *GetReceiveMessageOptReq) XXX_DiscardUnknown() { var xxx_messageInfo_GetReceiveMessageOptReq proto.InternalMessageInfo -func (m *GetReceiveMessageOptReq) GetUId() string { +func (m *GetReceiveMessageOptReq) GetFromUserID() string { if m != nil { - return m.UId + return m.FromUserID } return "" } @@ -935,66 +817,26 @@ func (m *GetReceiveMessageOptReq) GetOperationID() string { return "" } -type OptResult struct { - ConversationId string `protobuf:"bytes,1,opt,name=conversationId" json:"conversationId,omitempty"` - Result int32 `protobuf:"varint,2,opt,name=result" json:"result,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *OptResult) Reset() { *m = OptResult{} } -func (m *OptResult) String() string { return proto.CompactTextString(m) } -func (*OptResult) ProtoMessage() {} -func (*OptResult) Descriptor() ([]byte, []int) { - return fileDescriptor_user_04b52567a288fdb7, []int{15} -} -func (m *OptResult) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_OptResult.Unmarshal(m, b) -} -func (m *OptResult) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_OptResult.Marshal(b, m, deterministic) -} -func (dst *OptResult) XXX_Merge(src proto.Message) { - xxx_messageInfo_OptResult.Merge(dst, src) -} -func (m *OptResult) XXX_Size() int { - return xxx_messageInfo_OptResult.Size(m) -} -func (m *OptResult) XXX_DiscardUnknown() { - xxx_messageInfo_OptResult.DiscardUnknown(m) -} - -var xxx_messageInfo_OptResult proto.InternalMessageInfo - -func (m *OptResult) GetConversationId() string { +func (m *GetReceiveMessageOptReq) GetOpUserID() string { if m != nil { - return m.ConversationId + return m.OpUserID } return "" } -func (m *OptResult) GetResult() int32 { - if m != nil { - return m.Result - } - return 0 -} - type GetReceiveMessageOptResp struct { - ErrCode int32 `protobuf:"varint,1,opt,name=errCode" json:"errCode,omitempty"` - ErrMsg string `protobuf:"bytes,2,opt,name=errMsg" json:"errMsg,omitempty"` - ConversationOptResult []*OptResult `protobuf:"bytes,3,rep,name=conversationOptResult" json:"conversationOptResult,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + CommonResp *CommonResp `protobuf:"bytes,1,opt,name=commonResp" json:"commonResp,omitempty"` + ConversationOptResultList []*OptResult `protobuf:"bytes,3,rep,name=conversationOptResultList" json:"conversationOptResultList,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } func (m *GetReceiveMessageOptResp) Reset() { *m = GetReceiveMessageOptResp{} } func (m *GetReceiveMessageOptResp) String() string { return proto.CompactTextString(m) } func (*GetReceiveMessageOptResp) ProtoMessage() {} func (*GetReceiveMessageOptResp) Descriptor() ([]byte, []int) { - return fileDescriptor_user_04b52567a288fdb7, []int{16} + return fileDescriptor_user_119cb27841530cfa, []int{15} } func (m *GetReceiveMessageOptResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetReceiveMessageOptResp.Unmarshal(m, b) @@ -1014,30 +856,24 @@ func (m *GetReceiveMessageOptResp) XXX_DiscardUnknown() { var xxx_messageInfo_GetReceiveMessageOptResp proto.InternalMessageInfo -func (m *GetReceiveMessageOptResp) GetErrCode() int32 { +func (m *GetReceiveMessageOptResp) GetCommonResp() *CommonResp { if m != nil { - return m.ErrCode - } - return 0 -} - -func (m *GetReceiveMessageOptResp) GetErrMsg() string { - if m != nil { - return m.ErrMsg + return m.CommonResp } - return "" + return nil } -func (m *GetReceiveMessageOptResp) GetConversationOptResult() []*OptResult { +func (m *GetReceiveMessageOptResp) GetConversationOptResultList() []*OptResult { if m != nil { - return m.ConversationOptResult + return m.ConversationOptResultList } return nil } type GetAllConversationMsgOptReq struct { - UId string `protobuf:"bytes,1,opt,name=uId" json:"uId,omitempty"` + FromUserId string `protobuf:"bytes,1,opt,name=FromUserId" json:"FromUserId,omitempty"` OperationID string `protobuf:"bytes,2,opt,name=operationID" json:"operationID,omitempty"` + OpUserID string `protobuf:"bytes,3,opt,name=OpUserID" json:"OpUserID,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -1047,7 +883,7 @@ func (m *GetAllConversationMsgOptReq) Reset() { *m = GetAllConversationM func (m *GetAllConversationMsgOptReq) String() string { return proto.CompactTextString(m) } func (*GetAllConversationMsgOptReq) ProtoMessage() {} func (*GetAllConversationMsgOptReq) Descriptor() ([]byte, []int) { - return fileDescriptor_user_04b52567a288fdb7, []int{17} + return fileDescriptor_user_119cb27841530cfa, []int{16} } func (m *GetAllConversationMsgOptReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetAllConversationMsgOptReq.Unmarshal(m, b) @@ -1067,9 +903,9 @@ func (m *GetAllConversationMsgOptReq) XXX_DiscardUnknown() { var xxx_messageInfo_GetAllConversationMsgOptReq proto.InternalMessageInfo -func (m *GetAllConversationMsgOptReq) GetUId() string { +func (m *GetAllConversationMsgOptReq) GetFromUserId() string { if m != nil { - return m.UId + return m.FromUserId } return "" } @@ -1081,20 +917,26 @@ func (m *GetAllConversationMsgOptReq) GetOperationID() string { return "" } +func (m *GetAllConversationMsgOptReq) GetOpUserID() string { + if m != nil { + return m.OpUserID + } + return "" +} + type GetAllConversationMsgOptResp struct { - ErrCode int32 `protobuf:"varint,1,opt,name=errCode" json:"errCode,omitempty"` - ErrMsg string `protobuf:"bytes,2,opt,name=errMsg" json:"errMsg,omitempty"` - ConversationOptResult []*OptResult `protobuf:"bytes,3,rep,name=conversationOptResult" json:"conversationOptResult,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + CommonResp *CommonResp `protobuf:"bytes,1,opt,name=commonResp" json:"commonResp,omitempty"` + ConversationOptResultList []*OptResult `protobuf:"bytes,3,rep,name=conversationOptResultList" json:"conversationOptResultList,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } func (m *GetAllConversationMsgOptResp) Reset() { *m = GetAllConversationMsgOptResp{} } func (m *GetAllConversationMsgOptResp) String() string { return proto.CompactTextString(m) } func (*GetAllConversationMsgOptResp) ProtoMessage() {} func (*GetAllConversationMsgOptResp) Descriptor() ([]byte, []int) { - return fileDescriptor_user_04b52567a288fdb7, []int{18} + return fileDescriptor_user_119cb27841530cfa, []int{17} } func (m *GetAllConversationMsgOptResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetAllConversationMsgOptResp.Unmarshal(m, b) @@ -1114,45 +956,37 @@ func (m *GetAllConversationMsgOptResp) XXX_DiscardUnknown() { var xxx_messageInfo_GetAllConversationMsgOptResp proto.InternalMessageInfo -func (m *GetAllConversationMsgOptResp) GetErrCode() int32 { - if m != nil { - return m.ErrCode - } - return 0 -} - -func (m *GetAllConversationMsgOptResp) GetErrMsg() string { +func (m *GetAllConversationMsgOptResp) GetCommonResp() *CommonResp { if m != nil { - return m.ErrMsg + return m.CommonResp } - return "" + return nil } -func (m *GetAllConversationMsgOptResp) GetConversationOptResult() []*OptResult { +func (m *GetAllConversationMsgOptResp) GetConversationOptResultList() []*OptResult { if m != nil { - return m.ConversationOptResult + return m.ConversationOptResultList } return nil } func init() { proto.RegisterType((*CommonResp)(nil), "user.CommonResp") - proto.RegisterType((*DeleteUsersResp)(nil), "user.DeleteUsersResp") proto.RegisterType((*DeleteUsersReq)(nil), "user.DeleteUsersReq") - proto.RegisterType((*GetAllUsersUidReq)(nil), "user.GetAllUsersUidReq") - proto.RegisterType((*GetAllUsersUidResp)(nil), "user.GetAllUsersUidResp") + proto.RegisterType((*DeleteUsersResp)(nil), "user.DeleteUsersResp") + proto.RegisterType((*GetAllUserIDReq)(nil), "user.GetAllUserIDReq") + proto.RegisterType((*GetAllUserIDResp)(nil), "user.GetAllUserIDResp") proto.RegisterType((*AccountCheckReq)(nil), "user.AccountCheckReq") proto.RegisterType((*AccountCheckResp)(nil), "user.AccountCheckResp") proto.RegisterType((*AccountCheckResp_SingleUserStatus)(nil), "user.AccountCheckResp.SingleUserStatus") proto.RegisterType((*GetUserInfoReq)(nil), "user.GetUserInfoReq") proto.RegisterType((*GetUserInfoResp)(nil), "user.GetUserInfoResp") - proto.RegisterType((*UserInfo)(nil), "user.UserInfo") - proto.RegisterType((*LogoutReq)(nil), "user.LogoutReq") proto.RegisterType((*UpdateUserInfoReq)(nil), "user.UpdateUserInfoReq") + proto.RegisterType((*UpdateUserInfoResp)(nil), "user.UpdateUserInfoResp") proto.RegisterType((*SetReceiveMessageOptReq)(nil), "user.SetReceiveMessageOptReq") + proto.RegisterType((*OptResult)(nil), "user.OptResult") proto.RegisterType((*SetReceiveMessageOptResp)(nil), "user.SetReceiveMessageOptResp") proto.RegisterType((*GetReceiveMessageOptReq)(nil), "user.GetReceiveMessageOptReq") - proto.RegisterType((*OptResult)(nil), "user.OptResult") proto.RegisterType((*GetReceiveMessageOptResp)(nil), "user.GetReceiveMessageOptResp") proto.RegisterType((*GetAllConversationMsgOptReq)(nil), "user.GetAllConversationMsgOptReq") proto.RegisterType((*GetAllConversationMsgOptResp)(nil), "user.GetAllConversationMsgOptResp") @@ -1170,9 +1004,9 @@ const _ = grpc.SupportPackageIsVersion4 type UserClient interface { GetUserInfo(ctx context.Context, in *GetUserInfoReq, opts ...grpc.CallOption) (*GetUserInfoResp, error) - UpdateUserInfo(ctx context.Context, in *UpdateUserInfoReq, opts ...grpc.CallOption) (*CommonResp, error) + UpdateUserInfo(ctx context.Context, in *UpdateUserInfoReq, opts ...grpc.CallOption) (*UpdateUserInfoResp, error) DeleteUsers(ctx context.Context, in *DeleteUsersReq, opts ...grpc.CallOption) (*DeleteUsersResp, error) - GetAllUsersUid(ctx context.Context, in *GetAllUsersUidReq, opts ...grpc.CallOption) (*GetAllUsersUidResp, error) + GetAllUserID(ctx context.Context, in *GetAllUserIDReq, opts ...grpc.CallOption) (*GetAllUserIDResp, error) SetReceiveMessageOpt(ctx context.Context, in *SetReceiveMessageOptReq, opts ...grpc.CallOption) (*SetReceiveMessageOptResp, error) GetReceiveMessageOpt(ctx context.Context, in *GetReceiveMessageOptReq, opts ...grpc.CallOption) (*GetReceiveMessageOptResp, error) GetAllConversationMsgOpt(ctx context.Context, in *GetAllConversationMsgOptReq, opts ...grpc.CallOption) (*GetAllConversationMsgOptResp, error) @@ -1189,15 +1023,15 @@ func NewUserClient(cc *grpc.ClientConn) UserClient { func (c *userClient) GetUserInfo(ctx context.Context, in *GetUserInfoReq, opts ...grpc.CallOption) (*GetUserInfoResp, error) { out := new(GetUserInfoResp) - err := grpc.Invoke(ctx, "/user.user/getUserInfo", in, out, c.cc, opts...) + err := grpc.Invoke(ctx, "/user.user/GetUserInfo", in, out, c.cc, opts...) if err != nil { return nil, err } return out, nil } -func (c *userClient) UpdateUserInfo(ctx context.Context, in *UpdateUserInfoReq, opts ...grpc.CallOption) (*CommonResp, error) { - out := new(CommonResp) +func (c *userClient) UpdateUserInfo(ctx context.Context, in *UpdateUserInfoReq, opts ...grpc.CallOption) (*UpdateUserInfoResp, error) { + out := new(UpdateUserInfoResp) err := grpc.Invoke(ctx, "/user.user/UpdateUserInfo", in, out, c.cc, opts...) if err != nil { return nil, err @@ -1214,9 +1048,9 @@ func (c *userClient) DeleteUsers(ctx context.Context, in *DeleteUsersReq, opts . return out, nil } -func (c *userClient) GetAllUsersUid(ctx context.Context, in *GetAllUsersUidReq, opts ...grpc.CallOption) (*GetAllUsersUidResp, error) { - out := new(GetAllUsersUidResp) - err := grpc.Invoke(ctx, "/user.user/GetAllUsersUid", in, out, c.cc, opts...) +func (c *userClient) GetAllUserID(ctx context.Context, in *GetAllUserIDReq, opts ...grpc.CallOption) (*GetAllUserIDResp, error) { + out := new(GetAllUserIDResp) + err := grpc.Invoke(ctx, "/user.user/GetAllUserID", in, out, c.cc, opts...) if err != nil { return nil, err } @@ -1263,9 +1097,9 @@ func (c *userClient) AccountCheck(ctx context.Context, in *AccountCheckReq, opts type UserServer interface { GetUserInfo(context.Context, *GetUserInfoReq) (*GetUserInfoResp, error) - UpdateUserInfo(context.Context, *UpdateUserInfoReq) (*CommonResp, error) + UpdateUserInfo(context.Context, *UpdateUserInfoReq) (*UpdateUserInfoResp, error) DeleteUsers(context.Context, *DeleteUsersReq) (*DeleteUsersResp, error) - GetAllUsersUid(context.Context, *GetAllUsersUidReq) (*GetAllUsersUidResp, error) + GetAllUserID(context.Context, *GetAllUserIDReq) (*GetAllUserIDResp, error) SetReceiveMessageOpt(context.Context, *SetReceiveMessageOptReq) (*SetReceiveMessageOptResp, error) GetReceiveMessageOpt(context.Context, *GetReceiveMessageOptReq) (*GetReceiveMessageOptResp, error) GetAllConversationMsgOpt(context.Context, *GetAllConversationMsgOptReq) (*GetAllConversationMsgOptResp, error) @@ -1330,20 +1164,20 @@ func _User_DeleteUsers_Handler(srv interface{}, ctx context.Context, dec func(in return interceptor(ctx, in, info, handler) } -func _User_GetAllUsersUid_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(GetAllUsersUidReq) +func _User_GetAllUserID_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetAllUserIDReq) if err := dec(in); err != nil { return nil, err } if interceptor == nil { - return srv.(UserServer).GetAllUsersUid(ctx, in) + return srv.(UserServer).GetAllUserID(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/user.user/GetAllUsersUid", + FullMethod: "/user.user/GetAllUserID", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(UserServer).GetAllUsersUid(ctx, req.(*GetAllUsersUidReq)) + return srv.(UserServer).GetAllUserID(ctx, req.(*GetAllUserIDReq)) } return interceptor(ctx, in, info, handler) } @@ -1425,7 +1259,7 @@ var _User_serviceDesc = grpc.ServiceDesc{ HandlerType: (*UserServer)(nil), Methods: []grpc.MethodDesc{ { - MethodName: "getUserInfo", + MethodName: "GetUserInfo", Handler: _User_GetUserInfo_Handler, }, { @@ -1437,8 +1271,8 @@ var _User_serviceDesc = grpc.ServiceDesc{ Handler: _User_DeleteUsers_Handler, }, { - MethodName: "GetAllUsersUid", - Handler: _User_GetAllUsersUid_Handler, + MethodName: "GetAllUserID", + Handler: _User_GetAllUserID_Handler, }, { MethodName: "SetReceiveMessageOpt", @@ -1461,64 +1295,60 @@ var _User_serviceDesc = grpc.ServiceDesc{ Metadata: "user/user.proto", } -func init() { proto.RegisterFile("user/user.proto", fileDescriptor_user_04b52567a288fdb7) } - -var fileDescriptor_user_04b52567a288fdb7 = []byte{ - // 896 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x56, 0xdd, 0x6e, 0xdb, 0x36, - 0x14, 0x86, 0xfc, 0x17, 0xeb, 0x78, 0xb1, 0x1d, 0x22, 0x3f, 0x82, 0x96, 0x05, 0x1e, 0x31, 0x6c, - 0xb9, 0x99, 0x37, 0x64, 0x77, 0x0b, 0x86, 0x21, 0xb5, 0x5b, 0xc3, 0x48, 0x02, 0xb7, 0x0a, 0x7c, - 0xd3, 0xab, 0x2a, 0x12, 0xe3, 0x08, 0x91, 0x45, 0x45, 0x3f, 0x41, 0x80, 0x3e, 0x40, 0x1f, 0xa0, - 0x17, 0x7d, 0x8d, 0x3e, 0x4a, 0xef, 0xfa, 0x1c, 0x7d, 0x83, 0x82, 0xa4, 0x64, 0x53, 0x3f, 0x76, - 0x82, 0xb4, 0x40, 0x6f, 0x04, 0x9e, 0x43, 0xf2, 0x3b, 0xfc, 0x3e, 0x1e, 0x1e, 0x1d, 0xe8, 0xc4, - 0x21, 0x09, 0xfe, 0x62, 0x9f, 0xbe, 0x1f, 0xd0, 0x88, 0xa2, 0x1a, 0x1b, 0xe3, 0x17, 0x00, 0x03, - 0x3a, 0x9f, 0x53, 0xcf, 0x20, 0xa1, 0x8f, 0xf6, 0x41, 0x25, 0x41, 0x40, 0x83, 0x01, 0xb5, 0x89, - 0xa6, 0xf4, 0x94, 0xc3, 0xba, 0xb1, 0x74, 0x20, 0x1d, 0x9a, 0xdc, 0x38, 0x0f, 0x67, 0x5a, 0xa5, - 0xa7, 0x1c, 0xaa, 0xc6, 0xc2, 0xc6, 0x0e, 0x74, 0x86, 0xc4, 0x25, 0x11, 0x99, 0x86, 0x24, 0x08, - 0x39, 0xd8, 0xdf, 0x00, 0xd6, 0x02, 0x9a, 0xa3, 0xb5, 0x8e, 0xba, 0x7d, 0x7e, 0x82, 0x65, 0x48, - 0x43, 0x5a, 0x83, 0x7e, 0x83, 0xcd, 0x2b, 0xd3, 0x71, 0x89, 0x3d, 0x75, 0xec, 0x33, 0x27, 0x8c, - 0xb4, 0x4a, 0xaf, 0x7a, 0xa8, 0x1a, 0x59, 0x27, 0xf6, 0xa0, 0x9d, 0x09, 0x75, 0xcb, 0xf6, 0xd9, - 0xc2, 0x93, 0xdd, 0x97, 0x71, 0xa2, 0x6d, 0xa8, 0x47, 0xf4, 0x86, 0x78, 0x5a, 0x95, 0x9f, 0x5d, - 0x18, 0xa8, 0x07, 0xad, 0x89, 0x4f, 0x02, 0x33, 0x72, 0xa8, 0x37, 0x1e, 0x6a, 0x35, 0x3e, 0x27, - 0xbb, 0xf0, 0x29, 0x6c, 0x8d, 0x48, 0x74, 0xe2, 0xba, 0x3c, 0xde, 0xd4, 0xb1, 0x59, 0xc8, 0x05, - 0x58, 0x25, 0x07, 0x46, 0x25, 0x30, 0x11, 0x48, 0x76, 0xe1, 0x37, 0x80, 0xf2, 0x60, 0x4f, 0x92, - 0x4a, 0x83, 0x8d, 0x38, 0x43, 0x36, 0x35, 0xb1, 0x05, 0x9d, 0x13, 0xcb, 0xa2, 0xb1, 0x17, 0x0d, - 0xae, 0x89, 0x75, 0xc3, 0x0e, 0x2b, 0x2d, 0x56, 0x32, 0x8b, 0x9f, 0x4c, 0xe3, 0xb3, 0x02, 0xdd, - 0x6c, 0x94, 0x27, 0xb1, 0xf8, 0x1f, 0x1a, 0x01, 0x09, 0x63, 0x57, 0x90, 0x68, 0x1d, 0xfd, 0x21, - 0x56, 0xe7, 0x91, 0xfb, 0x17, 0x8e, 0x37, 0x73, 0xf9, 0x7d, 0x5f, 0x44, 0x66, 0x14, 0x87, 0x46, - 0xb2, 0x4d, 0x7f, 0x09, 0xdd, 0xfc, 0x1c, 0xda, 0x85, 0x06, 0x43, 0x19, 0x0f, 0xf9, 0x11, 0x54, - 0x23, 0xb1, 0x58, 0x96, 0x98, 0x02, 0x58, 0x2c, 0x4c, 0x38, 0x67, 0x9d, 0xf8, 0x1a, 0xda, 0x23, - 0x12, 0x31, 0xb8, 0xb1, 0x77, 0x45, 0x99, 0x7a, 0x07, 0x00, 0x02, 0x41, 0x12, 0x50, 0xf2, 0xac, - 0xd6, 0x70, 0x52, 0xd4, 0x50, 0xce, 0x2b, 0x0a, 0x9d, 0x4c, 0xa4, 0x6f, 0x79, 0x7f, 0x08, 0x43, - 0x6d, 0x68, 0x46, 0xa6, 0x56, 0xe5, 0x3a, 0xb6, 0x85, 0x8e, 0x0b, 0x6c, 0x3e, 0x87, 0x3f, 0x2a, - 0xd0, 0x4c, 0x5d, 0xa8, 0x0b, 0xd5, 0xd8, 0xb1, 0x13, 0x89, 0xd8, 0x10, 0x21, 0xa8, 0x79, 0xe6, - 0x9c, 0x24, 0xd0, 0x7c, 0xcc, 0x7c, 0x8e, 0x45, 0xd3, 0x27, 0xc3, 0xc7, 0x4c, 0xdf, 0x19, 0xf1, - 0x6c, 0x12, 0xf0, 0xc7, 0x52, 0x37, 0x12, 0x8b, 0xf9, 0xe7, 0xf4, 0xd2, 0x71, 0x89, 0x56, 0x17, - 0xba, 0x0b, 0x8b, 0xe9, 0x73, 0xe9, 0x04, 0xd1, 0xb5, 0xd6, 0x10, 0xfa, 0x70, 0x83, 0x79, 0xc9, - 0xdc, 0x74, 0x5c, 0x6d, 0x43, 0x78, 0xb9, 0x81, 0xda, 0x50, 0x21, 0xf7, 0x5a, 0x93, 0xbb, 0x2a, - 0xe4, 0x1e, 0x0f, 0x40, 0x3d, 0xa3, 0x33, 0x1a, 0x47, 0xec, 0x22, 0x72, 0x92, 0x2a, 0x05, 0x49, - 0xcb, 0xaf, 0x02, 0x7f, 0x51, 0x60, 0x6b, 0xea, 0xdb, 0xa6, 0xa8, 0x18, 0xe9, 0xb5, 0xa6, 0xd4, - 0x14, 0x89, 0x5a, 0x99, 0x04, 0x4b, 0xba, 0xd5, 0x15, 0x74, 0x6b, 0xe5, 0x74, 0xeb, 0xa5, 0x74, - 0x1b, 0x45, 0xba, 0x1b, 0x29, 0xdd, 0xe5, 0xf9, 0x9b, 0x6b, 0x52, 0x49, 0x2d, 0xf2, 0xee, 0x42, - 0x75, 0xea, 0xd8, 0x1a, 0x88, 0xcb, 0x9c, 0x3a, 0x36, 0x7e, 0xa7, 0xc0, 0xde, 0x05, 0x89, 0x0c, - 0x62, 0x11, 0xe7, 0x8e, 0x9c, 0x93, 0x30, 0x34, 0x67, 0x64, 0xe2, 0x73, 0x1d, 0xd9, 0xd5, 0x8f, - 0x97, 0x57, 0x3f, 0xb6, 0x99, 0x87, 0xfa, 0x11, 0xa7, 0x5d, 0x37, 0xd8, 0x10, 0xfd, 0x0e, 0x6d, - 0x8b, 0x7a, 0x77, 0x24, 0x08, 0x45, 0x0c, 0x9b, 0x67, 0x96, 0x6a, 0xe4, 0xbc, 0xf9, 0x52, 0x51, - 0x2b, 0x96, 0x8a, 0xb7, 0xa0, 0x95, 0x1f, 0x44, 0x54, 0x31, 0x12, 0xc8, 0xd9, 0x9e, 0x9a, 0x4c, - 0x5d, 0x12, 0x48, 0x99, 0x9e, 0x58, 0xe8, 0x4f, 0x50, 0x29, 0xdf, 0xcc, 0x8a, 0x86, 0x48, 0xf6, - 0x8e, 0x48, 0xf6, 0x49, 0xea, 0x36, 0x96, 0x2b, 0x70, 0x0c, 0x7b, 0xa3, 0x47, 0xab, 0x50, 0xe4, - 0x5c, 0x79, 0x0c, 0xe7, 0x92, 0xf2, 0x78, 0x0a, 0xea, 0xe2, 0x38, 0x25, 0xb0, 0x22, 0x66, 0x1e, - 0x76, 0x57, 0x2a, 0x86, 0x3c, 0xd1, 0x84, 0x85, 0xdf, 0x2b, 0xa0, 0x8d, 0xbe, 0x9f, 0x82, 0xcf, - 0x61, 0x47, 0x0e, 0x3c, 0x79, 0x48, 0xcd, 0xf2, 0xd5, 0xf8, 0x15, 0xfc, 0x2c, 0x7e, 0x64, 0x03, - 0x69, 0xfa, 0x3c, 0x9c, 0xad, 0x54, 0x37, 0xa7, 0x5a, 0xa5, 0xa8, 0xda, 0x07, 0x05, 0xf6, 0x57, - 0x63, 0xfe, 0x40, 0xb2, 0x47, 0x9f, 0x6a, 0xc0, 0xdb, 0x25, 0xf4, 0x2f, 0xb4, 0x66, 0xcb, 0x9a, - 0x8d, 0xb6, 0xc5, 0xfe, 0xec, 0x0f, 0x43, 0xdf, 0x29, 0xf1, 0x86, 0x3e, 0x3a, 0x86, 0x76, 0xb6, - 0x0a, 0xa1, 0xbd, 0xa4, 0x4c, 0xe7, 0x6b, 0x93, 0x5e, 0xf8, 0x6b, 0xb2, 0xc0, 0x52, 0xd3, 0x93, - 0x06, 0xce, 0xf6, 0x41, 0x69, 0xe0, 0x7c, 0x23, 0x36, 0xe0, 0xbf, 0x34, 0xa9, 0xe7, 0x48, 0x03, - 0x17, 0xda, 0x1a, 0x5d, 0x2b, 0x9f, 0x08, 0x7d, 0x34, 0x85, 0xed, 0xb2, 0x67, 0x8c, 0x7e, 0x11, - 0x3b, 0x56, 0xd4, 0x1a, 0xfd, 0x60, 0xdd, 0xb4, 0x80, 0x1d, 0xad, 0x81, 0x1d, 0xad, 0x87, 0x5d, - 0xf9, 0x2c, 0x4c, 0xfe, 0x64, 0x4a, 0x33, 0x09, 0xfd, 0x2a, 0x73, 0x2c, 0xcd, 0x5e, 0x1d, 0x3f, - 0xb4, 0x24, 0xf4, 0xd1, 0x7f, 0xf0, 0x93, 0xdc, 0xa7, 0xa0, 0x9d, 0xb2, 0xde, 0xe5, 0x56, 0xdf, - 0x2d, 0x6f, 0x69, 0x9e, 0x6d, 0xbe, 0x6e, 0xf5, 0x79, 0x3b, 0x7e, 0xcc, 0x3e, 0x97, 0x0d, 0xde, - 0x94, 0xff, 0xf3, 0x35, 0x00, 0x00, 0xff, 0xff, 0x24, 0xd7, 0xfe, 0x0d, 0xa7, 0x0b, 0x00, 0x00, +func init() { proto.RegisterFile("user/user.proto", fileDescriptor_user_119cb27841530cfa) } + +var fileDescriptor_user_119cb27841530cfa = []byte{ + // 825 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x56, 0xdf, 0x6e, 0xd3, 0x3e, + 0x14, 0x56, 0xd6, 0x6e, 0xbf, 0xf5, 0x74, 0x6b, 0xfb, 0xb3, 0xf6, 0x27, 0x04, 0x98, 0x3a, 0x0b, + 0x41, 0xb5, 0x8b, 0x14, 0x86, 0xb8, 0x00, 0x04, 0xd2, 0xe8, 0xb4, 0x68, 0x82, 0xaa, 0x28, 0xd3, + 0x6e, 0xb8, 0x99, 0x42, 0x63, 0x4a, 0xd5, 0x36, 0x0e, 0x71, 0xba, 0x09, 0x90, 0xb8, 0x81, 0xb7, + 0xe0, 0x82, 0xe7, 0xe0, 0x35, 0x78, 0x01, 0x5e, 0x05, 0xc5, 0x4e, 0x5a, 0x3b, 0x49, 0x5b, 0x54, + 0xb8, 0xe0, 0xa6, 0xaa, 0x3f, 0x1f, 0x1f, 0x7f, 0xdf, 0xe7, 0x63, 0xe7, 0x40, 0x75, 0xcc, 0x48, + 0xd0, 0x8c, 0x7e, 0x4c, 0x3f, 0xa0, 0x21, 0x45, 0xc5, 0xe8, 0xbf, 0xb1, 0xdf, 0xf1, 0x89, 0x77, + 0x71, 0xda, 0x6e, 0xfa, 0x83, 0x5e, 0x93, 0x4f, 0x34, 0x99, 0x3b, 0xb8, 0xb8, 0x62, 0xcd, 0x2b, + 0x26, 0x02, 0xf1, 0x53, 0x80, 0x16, 0x1d, 0x8d, 0xa8, 0x67, 0x13, 0xe6, 0x23, 0x1d, 0xfe, 0x23, + 0x41, 0xd0, 0xa2, 0x2e, 0xd1, 0xb5, 0xba, 0xd6, 0x58, 0xb5, 0x93, 0x21, 0xda, 0x81, 0x35, 0x12, + 0x04, 0x6d, 0xd6, 0xd3, 0x57, 0xea, 0x5a, 0xa3, 0x64, 0xc7, 0x23, 0xfc, 0x01, 0x2a, 0xc7, 0x64, + 0x48, 0x42, 0x72, 0xce, 0x48, 0xc0, 0x6c, 0xf2, 0x0e, 0x1d, 0x40, 0x6d, 0x8a, 0x9c, 0x1e, 0xbf, + 0xe8, 0xb3, 0x50, 0x5f, 0xa9, 0x17, 0x1a, 0x25, 0x3b, 0x83, 0x23, 0x03, 0xd6, 0x3b, 0xbe, 0x18, + 0xeb, 0x05, 0x9e, 0x77, 0x32, 0x46, 0x75, 0x28, 0x77, 0x7c, 0x12, 0x38, 0x61, 0x9f, 0x7a, 0xa7, + 0xc7, 0x7a, 0x91, 0x4f, 0xcb, 0x10, 0xa6, 0x50, 0x55, 0xf6, 0x66, 0x3e, 0xba, 0x2b, 0xcb, 0xe1, + 0x1a, 0xca, 0x87, 0x35, 0x93, 0x1b, 0x33, 0xc5, 0x6d, 0x59, 0xf2, 0x01, 0xd4, 0x4e, 0x9c, 0xfe, + 0x90, 0xb8, 0x59, 0xba, 0x69, 0x1c, 0x77, 0xa0, 0x6a, 0x91, 0xf0, 0x68, 0x38, 0x14, 0x58, 0xa4, + 0xd6, 0x80, 0x75, 0x9a, 0x28, 0xd0, 0x84, 0x02, 0x2a, 0x29, 0xa0, 0x92, 0x02, 0x61, 0x9c, 0x0c, + 0x61, 0x17, 0x6a, 0x6a, 0xc2, 0xa5, 0x24, 0xec, 0x01, 0x64, 0xc8, 0x4b, 0x08, 0x7e, 0x0f, 0xd5, + 0xa3, 0x6e, 0x97, 0x8e, 0xbd, 0xb0, 0xf5, 0x96, 0x74, 0x07, 0x11, 0xed, 0x06, 0x54, 0xf9, 0x7f, + 0x69, 0x9d, 0xc6, 0xd7, 0xa5, 0x61, 0xe5, 0x88, 0x56, 0xe6, 0x1f, 0x51, 0x21, 0x7b, 0x44, 0x3f, + 0x35, 0xa8, 0xa9, 0x7b, 0x0b, 0x85, 0xdd, 0xdf, 0x50, 0x38, 0x8d, 0x41, 0x16, 0x80, 0x4d, 0xd8, + 0x78, 0x18, 0x4e, 0x14, 0x96, 0x0f, 0xef, 0x88, 0x15, 0xe9, 0xec, 0xe6, 0x59, 0xdf, 0xeb, 0x0d, + 0x79, 0x49, 0x9c, 0x85, 0x4e, 0x38, 0x66, 0xb6, 0xb4, 0xd4, 0x78, 0x09, 0xb5, 0xf4, 0x7c, 0x54, + 0xda, 0x63, 0xf9, 0x00, 0xe3, 0x11, 0xba, 0x05, 0x9b, 0x8e, 0x48, 0x2e, 0x02, 0x63, 0xf9, 0x2a, + 0x88, 0x3d, 0xa8, 0x58, 0x24, 0xe4, 0x86, 0x78, 0x6f, 0x68, 0xe4, 0xed, 0x1e, 0xc0, 0x38, 0x6d, + 0xab, 0x84, 0xfc, 0xa1, 0xa3, 0x9f, 0x78, 0x0d, 0x4e, 0xf7, 0x5b, 0xca, 0xcf, 0x87, 0xb0, 0x91, + 0x64, 0xe0, 0x24, 0x0b, 0xdc, 0xd1, 0x6d, 0x93, 0x46, 0xef, 0x45, 0x7f, 0x74, 0xc1, 0xdc, 0x81, + 0x39, 0xd9, 0x42, 0x09, 0xc5, 0x5f, 0x34, 0xf8, 0xff, 0xdc, 0x77, 0x9d, 0xf8, 0x1e, 0xc7, 0x9a, + 0xef, 0xc1, 0x7a, 0x32, 0x8c, 0x09, 0xcc, 0x48, 0x36, 0x09, 0x5b, 0x64, 0x03, 0xcd, 0xda, 0x20, + 0xdf, 0x9c, 0x13, 0x40, 0x69, 0x16, 0xcb, 0x38, 0x81, 0xbf, 0x6b, 0xb0, 0x7b, 0x46, 0x42, 0x9b, + 0x74, 0x49, 0xff, 0x92, 0xb4, 0x09, 0x63, 0x4e, 0x8f, 0x74, 0xfc, 0x30, 0x3e, 0xc8, 0x93, 0x80, + 0x8e, 0x94, 0xdb, 0x2d, 0x21, 0xa8, 0x06, 0x05, 0xea, 0x87, 0x9c, 0xfc, 0xaa, 0x1d, 0xfd, 0x45, + 0x26, 0xa0, 0x2e, 0xf5, 0x2e, 0x49, 0xc0, 0x62, 0x9e, 0x13, 0x77, 0x4b, 0x76, 0xce, 0x4c, 0x5a, + 0x67, 0x31, 0xa3, 0x53, 0x71, 0x69, 0x55, 0x75, 0x09, 0x3f, 0x87, 0x12, 0x67, 0x1a, 0x55, 0x37, + 0xba, 0x0d, 0x15, 0x65, 0x03, 0x37, 0x26, 0x9c, 0x42, 0xa3, 0x6a, 0x0f, 0xf8, 0x8a, 0x98, 0x77, + 0x3c, 0xc2, 0x9f, 0x35, 0xd0, 0xf3, 0x8d, 0x58, 0xaa, 0xc2, 0x1e, 0xc0, 0x26, 0x4d, 0xb8, 0x49, + 0x97, 0xb6, 0x2a, 0x16, 0x4d, 0x68, 0xdb, 0x6a, 0x14, 0xfe, 0xa6, 0xc1, 0xae, 0xb5, 0xe4, 0x71, + 0x64, 0x1d, 0x10, 0x4f, 0x61, 0xda, 0x81, 0x85, 0xc5, 0xa5, 0x98, 0x5e, 0x4c, 0x99, 0xfe, 0x55, + 0x03, 0xdd, 0xfa, 0x7b, 0x3e, 0xb5, 0xe1, 0x9a, 0x4c, 0xaf, 0xa3, 0x78, 0x56, 0xc8, 0xf7, 0x6c, + 0xf6, 0x0a, 0xfc, 0x11, 0xae, 0x8b, 0x0f, 0x4a, 0x4b, 0x0a, 0x69, 0xb3, 0x5e, 0x8e, 0x85, 0x6e, + 0xc6, 0x42, 0x77, 0xf1, 0x17, 0x6b, 0xde, 0x17, 0x3b, 0x3a, 0xbc, 0x1b, 0xb3, 0x77, 0xff, 0x07, + 0xec, 0x39, 0xfc, 0x51, 0x04, 0xde, 0x19, 0xa1, 0x47, 0x50, 0x96, 0x5e, 0x51, 0xb4, 0x25, 0x72, + 0xa8, 0x0f, 0xb9, 0xb1, 0x9d, 0x83, 0x32, 0x1f, 0xb5, 0xa0, 0xa2, 0x3e, 0x3d, 0x68, 0x57, 0x04, + 0x66, 0x9e, 0x45, 0x43, 0xcf, 0x9f, 0x60, 0x7e, 0x44, 0x40, 0xea, 0x5d, 0x12, 0x02, 0x6a, 0x2b, + 0x95, 0x10, 0x48, 0x37, 0x39, 0x4f, 0x60, 0x43, 0xee, 0x1a, 0xd0, 0x94, 0xa7, 0xdc, 0x9a, 0x18, + 0x3b, 0x79, 0x30, 0xf3, 0xd1, 0x39, 0x6c, 0xe5, 0x5d, 0x74, 0x74, 0x53, 0xc4, 0xcf, 0x78, 0x0d, + 0x8d, 0xbd, 0x79, 0xd3, 0x22, 0xad, 0x35, 0x27, 0xad, 0x35, 0x3f, 0xed, 0xcc, 0x2b, 0xe5, 0xf0, + 0xeb, 0x96, 0x5b, 0x53, 0x68, 0x5f, 0x56, 0x98, 0x5b, 0xf1, 0x06, 0x5e, 0x14, 0x22, 0xfc, 0x94, + 0xbb, 0x88, 0xc4, 0xcf, 0x54, 0xcf, 0x94, 0xf8, 0x99, 0x6e, 0x38, 0x9e, 0x6d, 0xbe, 0x2a, 0x9b, + 0xbc, 0xf7, 0x7e, 0x1c, 0xfd, 0xbc, 0x5e, 0xe3, 0x8d, 0xf5, 0xfd, 0x5f, 0x01, 0x00, 0x00, 0xff, + 0xff, 0x24, 0xc8, 0xbf, 0xca, 0x94, 0x0b, 0x00, 0x00, } diff --git a/pkg/proto/user/user.proto b/pkg/proto/user/user.proto index e3c6ddffe..2efd32ae4 100644 --- a/pkg/proto/user/user.proto +++ b/pkg/proto/user/user.proto @@ -1,34 +1,38 @@ syntax = "proto3"; +import "Open_IM/pkg/proto/sdk_ws/ws.proto"; option go_package = "./user;user"; package user; message CommonResp{ - int32 errorCode = 1; - string errorMsg = 2; -} -message DeleteUsersResp{ - CommonResp commonResp = 1; - repeated string failedUidList = 2; + int32 errCode = 1; + string errMsg = 2; } + message DeleteUsersReq{ - repeated string deleteUidList = 2; - string token = 3; + repeated string DeleteUserIDList = 2; + string OpUserID = 3; string OperationID = 4; } -message GetAllUsersUidReq{ - string token = 2; - string operationID = 3; - +message DeleteUsersResp{ + CommonResp CommonResp = 1; + repeated string FailedUserIDList = 2; } -message GetAllUsersUidResp{ - CommonResp commonResp = 1; - repeated string uidList = 2; + +message GetAllUserIDReq{ + string opUserID = 1; + string operationID = 2; +} +message GetAllUserIDResp{ + CommonResp CommonResp = 1; + repeated string UserIDList = 2; } + + message AccountCheckReq{ - repeated string uidList = 1; - string token = 2; - string operationID = 3; + repeated string CheckUserIDList = 1; + string OpUserID = 2; + string OperationID = 3; } message AccountCheckResp{ @@ -37,97 +41,77 @@ message AccountCheckResp{ string userID = 1; string accountStatus = 2; } - repeated SingleUserStatus result = 2; - + repeated SingleUserStatus ResultList = 2; } + + message GetUserInfoReq{ repeated string userIDList = 1; - string token = 2; + string OpUserID = 2; string OperationID = 3; } message GetUserInfoResp{ - int32 errorCode = 1; - string errorMsg = 2; - repeated UserInfo Data = 3; -} -message UserInfo{ - string uid = 1; - string name = 2; - string icon = 3; - int32 gender = 4; - string mobile = 5; - string birth = 6; - string email = 7; - string ex = 8; + CommonResp commonResp = 1; + repeated open_im_sdk.UserInfo UserInfoList = 3; } -message LogoutReq{ - string OperationID = 1; - string token = 2; -} message UpdateUserInfoReq{ - string icon = 1; - string name = 2; - int32 gender = 3; - string mobile = 4; - string birth = 5; - string email = 6; - string ex = 7; - string token = 8; - string OperationID = 9; - string Uid = 10; + open_im_sdk.UserInfo UserInfo = 1; + string OpUserID = 2; + string operationID = 3; +} +message UpdateUserInfoResp{ + CommonResp commonResp = 1; } + message SetReceiveMessageOptReq{ - string uId = 1; - int32 opt = 2; - repeated string conversationId = 3; - string operationID = 4; + string FromUserID = 1; + int32 opt = 2; + repeated string conversationIDList = 3; + string operationID = 4; + string OpUserID = 5; +} +message OptResult{ + string conversationId = 1; + int32 result = 2; //-1: failed; 0:default; 1: not receive ; 2: not jpush } - message SetReceiveMessageOptResp{ - int32 errCode = 1; - string errMsg = 2; - repeated OptResult optResult = 3; + CommonResp commonResp = 1; + repeated OptResult optResultList = 2; } message GetReceiveMessageOptReq{ - string uId = 1; - repeated string conversationId = 2; - string operationID = 3; + string FromUserID = 1; + repeated string conversationId = 2; + string operationID = 3; + string OpUserID = 4; } - -message OptResult{ - string conversationId = 1; - int32 result = 2; //-1: failed; 0:default; 1: not receive ; 2: not jpush -} - message GetReceiveMessageOptResp{ - int32 errCode = 1; - string errMsg = 2; - repeated OptResult conversationOptResult = 3; + CommonResp commonResp = 1; + repeated OptResult conversationOptResultList = 3; } + message GetAllConversationMsgOptReq{ - string uId = 1; - string operationID = 2; + string FromUserId = 1; + string operationID = 2; + string OpUserID = 3; } - message GetAllConversationMsgOptResp{ - int32 errCode = 1; - string errMsg = 2; - repeated OptResult conversationOptResult = 3; + CommonResp commonResp = 1; + repeated OptResult conversationOptResultList = 3; } service user { - rpc getUserInfo(GetUserInfoReq) returns(GetUserInfoResp); - rpc UpdateUserInfo(UpdateUserInfoReq) returns(CommonResp); + rpc GetUserInfo(GetUserInfoReq) returns(GetUserInfoResp); + rpc UpdateUserInfo(UpdateUserInfoReq) returns(UpdateUserInfoResp); rpc DeleteUsers(DeleteUsersReq)returns(DeleteUsersResp); - rpc GetAllUsersUid(GetAllUsersUidReq)returns(GetAllUsersUidResp); + rpc GetAllUserID(GetAllUserIDReq)returns(GetAllUserIDResp); rpc SetReceiveMessageOpt(SetReceiveMessageOptReq)returns(SetReceiveMessageOptResp); rpc GetReceiveMessageOpt(GetReceiveMessageOptReq)returns(GetReceiveMessageOptResp); rpc GetAllConversationMsgOpt(GetAllConversationMsgOptReq)returns(GetAllConversationMsgOptResp); From 30024c981451b6adebce7636dea373c1c01ceb4a Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Mon, 27 Dec 2021 18:22:32 +0800 Subject: [PATCH 244/814] tidy code --- internal/api/auth/auth.go | 81 +++++++++++++++++++++++++ internal/api/auth/user_register.go | 95 ------------------------------ internal/api/auth/user_token.go | 72 ---------------------- internal/api/friend/friend.go | 3 +- internal/api/group/group.go | 3 +- internal/api/user/user.go | 61 ++++++------------- pkg/base_info/auth_api_struct.go | 39 ++++++++++++ pkg/base_info/public_struct.go | 26 +++++++- 8 files changed, 167 insertions(+), 213 deletions(-) create mode 100644 internal/api/auth/auth.go delete mode 100644 internal/api/auth/user_register.go delete mode 100644 internal/api/auth/user_token.go create mode 100644 pkg/base_info/auth_api_struct.go diff --git a/internal/api/auth/auth.go b/internal/api/auth/auth.go new file mode 100644 index 000000000..b31384cf8 --- /dev/null +++ b/internal/api/auth/auth.go @@ -0,0 +1,81 @@ +package apiAuth + +import ( + api "Open_IM/pkg/base_info" + "Open_IM/pkg/common/config" + "Open_IM/pkg/common/log" + "Open_IM/pkg/grpc-etcdv3/getcdv3" + rpc "Open_IM/pkg/proto/auth" + "context" + "github.com/gin-gonic/gin" + "net/http" + "strings" +) + +func UserRegister(c *gin.Context) { + params := api.UserRegisterReq{} + if err := c.BindJSON(¶ms); err != nil { + log.NewError("0", "BindJSON failed ", err.Error()) + c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": err.Error()}) + return + } + + if params.Secret != config.Config.Secret { + log.NewError(params.OperationID, "params.Secret != config.Config.Secret", params.Secret, config.Config.Secret) + c.JSON(http.StatusBadRequest, gin.H{"errCode": 401, "errMsg": "not authorized"}) + return + } + req := &rpc.UserRegisterReq{} + log.NewInfo("UserRegister args ", req.String()) + etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImAuthName) + client := rpc.NewAuthClient(etcdConn) + reply, err := client.UserRegister(context.Background(), req) + + if err != nil || reply.CommonResp.ErrCode != 0 { + log.NewError("0", "UserRegister failed ", err.Error(), req.String()) + c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": err.Error()}) + return + } + + pbDataToken := &rpc.UserTokenReq{Platform: params.Platform, FromUserID: params.UserID, OperationID: params.OperationID} + replyToken, err := client.UserToken(context.Background(), pbDataToken) + if err != nil { + log.NewError(req.OperationID, "UserToken failed ", err.Error(), pbDataToken) + c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": err.Error()}) + return + } + resp := api.UserRegisterResp{CommResp: api.CommResp{ErrCode: replyToken.CommonResp.ErrCode, ErrMsg: replyToken.CommonResp.ErrMsg}, + UserToken: api.UserTokenInfo{UserID: req.UserInfo.UserID, Token: replyToken.Token, ExpiredTime: replyToken.ExpiredTime}} + c.JSON(http.StatusOK, resp) + log.NewInfo(req.OperationID, "UserRegister return ", resp) +} + +func UserToken(c *gin.Context) { + params := api.UserTokenReq{} + if err := c.BindJSON(¶ms); err != nil { + log.NewError("0", "BindJSON failed ", err.Error()) + c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": err.Error()}) + return + } + + if params.Secret != config.Config.Secret { + log.NewError(params.OperationID, "params.Secret != config.Config.Secret", params.Secret, config.Config.Secret) + c.JSON(http.StatusBadRequest, gin.H{"errCode": 401, "errMsg": "not authorized"}) + return + } + req := &rpc.UserTokenReq{Platform: params.Platform, FromUserID: params.UserID, OperationID: params.OperationID} + log.NewInfo("UserToken args ", req.String()) + etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImAuthName) + client := rpc.NewAuthClient(etcdConn) + reply, err := client.UserToken(context.Background(), req) + if err != nil { + log.NewError(req.OperationID, "UserToken failed ", err.Error(), req.String()) + c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": err.Error()}) + return + } + + 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}} + c.JSON(http.StatusOK, resp) + log.NewInfo(req.OperationID, "UserRegister return ", resp) +} diff --git a/internal/api/auth/user_register.go b/internal/api/auth/user_register.go deleted file mode 100644 index e0d69eeda..000000000 --- a/internal/api/auth/user_register.go +++ /dev/null @@ -1,95 +0,0 @@ -package apiAuth - -import ( - "Open_IM/pkg/common/config" - "Open_IM/pkg/common/log" - "Open_IM/pkg/grpc-etcdv3/getcdv3" - pbAuth "Open_IM/pkg/proto/auth" - "context" - "github.com/gin-gonic/gin" - "net/http" - "strings" -) - -type paramsUserRegister struct { - Secret string `json:"secret" binding:"required,max=32"` - Platform int32 `json:"platform" binding:"required,min=1,max=7"` - UID string `json:"uid" binding:"required,min=1,max=64"` - Name string `json:"name" binding:"required,min=1,max=64"` - Icon string `json:"icon" binding:"omitempty,max=1024"` - Gender int32 `json:"gender" binding:"omitempty,oneof=0 1 2"` - Mobile string `json:"mobile" binding:"omitempty,max=32"` - Birth string `json:"birth" binding:"omitempty,max=16"` - Email string `json:"email" binding:"omitempty,max=64"` - Ex string `json:"ex" binding:"omitempty,max=1024"` -} - -func newUserRegisterReq(params *paramsUserRegister) *pbAuth.UserRegisterReq { - pbData := pbAuth.UserRegisterReq{ - UID: params.UID, - Name: params.Name, - Icon: params.Icon, - Gender: params.Gender, - Mobile: params.Mobile, - Birth: params.Birth, - Email: params.Email, - Ex: params.Ex, - } - return &pbData -} - -func UserRegister(c *gin.Context) { - log.Info("", "", "api user_register init ....") - etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImAuthName) - client := pbAuth.NewAuthClient(etcdConn) - //defer etcdConn.Close() - - params := paramsUserRegister{} - if err := c.BindJSON(¶ms); err != nil { - c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": err.Error()}) - return - } - if params.Secret != config.Config.Secret { - c.JSON(http.StatusBadRequest, gin.H{"errCode": 401, "errMsg": "not authorized"}) - return - } - pbData := newUserRegisterReq(¶ms) - - log.Info("", "", "api user_register is server, [data: %s]", pbData.String()) - reply, err := client.UserRegister(context.Background(), pbData) - if err != nil || !reply.Success { - log.Error("", "", "api user_register call rpc fail, [data: %s] [err: %s]", pbData.String(), err.Error()) - c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": err.Error()}) - return - } - log.Info("", "", "api user_register call rpc success, [data: %s] [reply: %s]", pbData.String(), reply.String()) - - pbDataToken := &pbAuth.UserTokenReq{ - Platform: params.Platform, - UID: params.UID, - } - replyToken, err := client.UserToken(context.Background(), pbDataToken) - if err != nil { - log.Error("", "", "api user_register call rpc fail, [data: %s] [err: %s]", pbData.String(), err.Error()) - c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": err.Error()}) - return - } - log.Info("", "", "api user_register call success, [data: %s] [reply: %s]", pbData.String(), reply.String()) - - if replyToken.ErrCode == 0 { - c.JSON(http.StatusOK, gin.H{ - "errCode": replyToken.ErrCode, - "errMsg": replyToken.ErrMsg, - "data": gin.H{ - "uid": pbData.UID, - "token": replyToken.Token, - "expiredTime": replyToken.ExpiredTime, - }, - }) - } else { - c.JSON(http.StatusOK, gin.H{ - "errCode": replyToken.ErrCode, - "errMsg": replyToken.ErrMsg, - }) - } -} diff --git a/internal/api/auth/user_token.go b/internal/api/auth/user_token.go deleted file mode 100644 index 31839b6b0..000000000 --- a/internal/api/auth/user_token.go +++ /dev/null @@ -1,72 +0,0 @@ -package apiAuth - -import ( - "Open_IM/pkg/common/config" - "Open_IM/pkg/common/log" - "Open_IM/pkg/grpc-etcdv3/getcdv3" - pbAuth "Open_IM/pkg/proto/auth" - "context" - "github.com/gin-gonic/gin" - "net/http" - "strings" -) - -type paramsUserToken struct { - Secret string `json:"secret" binding:"required,max=32"` - Platform int32 `json:"platform" binding:"required,min=1,max=8"` - UID string `json:"uid" binding:"required,min=1,max=64"` -} - -func newUserTokenReq(params *paramsUserToken) *pbAuth.UserTokenReq { - pbData := pbAuth.UserTokenReq{ - Platform: params.Platform, - UID: params.UID, - } - return &pbData -} - -func UserToken(c *gin.Context) { - log.Info("", "", "api user_token init ....") - etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImAuthName) - client := pbAuth.NewAuthClient(etcdConn) - //defer etcdConn.Close() - - params := paramsUserToken{} - if err := c.BindJSON(¶ms); err != nil { - log.Error("", "", params.UID, params.Platform, params.Secret) - c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": err.Error()}) - return - } - if params.Secret != config.Config.Secret { - c.JSON(http.StatusBadRequest, gin.H{"errCode": 401, "errMsg": "not authorized"}) - return - } - pbData := newUserTokenReq(¶ms) - - log.Info("", "", "api user_token is server, [data: %s]", pbData.String()) - reply, err := client.UserToken(context.Background(), pbData) - if err != nil { - log.Error("", "", "api user_token call rpc fail, [data: %s] [err: %s]", pbData.String(), err.Error()) - c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": err.Error()}) - return - } - log.Info("", "", "api user_token call rpc success, [data: %s] [reply: %s]", pbData.String(), reply.String()) - - if reply.ErrCode == 0 { - c.JSON(http.StatusOK, gin.H{ - "errCode": reply.ErrCode, - "errMsg": reply.ErrMsg, - "data": gin.H{ - "uid": pbData.UID, - "token": reply.Token, - "expiredTime": reply.ExpiredTime, - }, - }) - } else { - c.JSON(http.StatusOK, gin.H{ - "errCode": reply.ErrCode, - "errMsg": reply.ErrMsg, - }) - } - -} diff --git a/internal/api/friend/friend.go b/internal/api/friend/friend.go index 2c9f44bf7..55be48d69 100644 --- a/internal/api/friend/friend.go +++ b/internal/api/friend/friend.go @@ -48,6 +48,7 @@ func AddBlacklist(c *gin.Context) { func ImportFriend(c *gin.Context) { params := api.ImportFriendReq{} if err := c.BindJSON(¶ms); err != nil { + c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": err.Error()}) log.NewError("0", "BindJSON failed ", err.Error()) return @@ -104,7 +105,7 @@ func AddFriend(c *gin.Context) { return } - resp := api.AddFriendResp{CommResp: api.CommResp{ErrCode: RpcResp.ErrCode, ErrMsg: RpcResp.ErrMsg}} + resp := api.AddFriendResp{CommResp: api.CommResp{ErrCode: RpcResp.CommonResp.ErrCode, ErrMsg: RpcResp.CommonResp.ErrMsg}} c.JSON(http.StatusOK, resp) log.NewInfo(req.CommID.OperationID, "AddFriend api return ", resp) } diff --git a/internal/api/group/group.go b/internal/api/group/group.go index 860350173..b7f04296f 100644 --- a/internal/api/group/group.go +++ b/internal/api/group/group.go @@ -66,7 +66,8 @@ func GetGroupMembersInfo(c *gin.Context) { ok, req.OpUserID = token_verify.GetUserIDFromToken(c.Request.Header.Get("token")) if !ok { log.NewError(req.OperationID, "GetUserIDFromToken false ", c.Request.Header.Get("token")) - c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": "GetUserIDFromToken failed"}) + //c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": "GetUserIDFromToken failed"}) + api.SetErrCodeMsg(c, http.StatusInternalServerError) return } log.NewInfo(req.OperationID, "GetGroupMembersInfo args ", req.String()) diff --git a/internal/api/user/user.go b/internal/api/user/user.go index a3d311649..b6d550f1d 100644 --- a/internal/api/user/user.go +++ b/internal/api/user/user.go @@ -1,15 +1,13 @@ package user import ( + api "Open_IM/pkg/base_info" "Open_IM/pkg/common/config" "Open_IM/pkg/common/log" "Open_IM/pkg/common/token_verify" "Open_IM/pkg/grpc-etcdv3/getcdv3" - "Open_IM/pkg/utils" - - // rpc "Open_IM/pkg/proto/relay" - api "Open_IM/pkg/base_info" rpc "Open_IM/pkg/proto/user" + "Open_IM/pkg/utils" "context" "github.com/gin-gonic/gin" "net/http" @@ -77,22 +75,6 @@ import ( // // c.JSON(http.StatusOK, resp) //} -//params := api.AddBlacklistReq{} -// if err := c.BindJSON(¶ms); err != nil { -// c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": err.Error()}) -// log.NewError("0", "BindJSON failed ", err.Error()) -// return -// } -// req := &rpc.AddBlacklistReq{} -// utils.CopyStructFields(req.CommID, params) -// var ok bool -// ok, req.CommID.OpUserID = token_verify.GetUserIDFromToken(c.Request.Header.Get("token")) -// if !ok { -// log.NewError(req.CommID.OperationID, "GetUserIDFromToken false ", c.Request.Header.Get("token")) -// c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": "GetUserIDFromToken failed"}) -// return -// } -// log.NewInfo(params.OperationID, "AddBlacklist args ", req.String()) func GetUserInfo(c *gin.Context) { params := api.GetUserInfoReq{} @@ -128,37 +110,30 @@ func GetUserInfo(c *gin.Context) { } func UpdateUserInfo(c *gin.Context) { - log.InfoByKv("api update userinfo init...", "") - - etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImUserName) - client := pbUser.NewUserClient(etcdConn) - //defer etcdConn.Close() - - params := paramsStruct{} + params := api.GetUserInfoReq{} if err := c.BindJSON(¶ms); err != nil { c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": err.Error()}) return } - req := &pbUser.UpdateUserInfoReq{ - OperationID: params.OperationID, - Token: c.Request.Header.Get("token"), - Name: params.Name, - Icon: params.Icon, - Gender: params.Gender, - Mobile: params.Mobile, - Birth: params.Birth, - Email: params.Email, - Ex: params.Ex, - Uid: params.Uid, + req := &rpc.UpdateUserInfoReq{} + utils.CopyStructFields(&req, params) + var ok bool + ok, req.OpUserID = token_verify.GetUserIDFromToken(c.Request.Header.Get("token")) + if !ok { + log.NewError(req.OperationID, "GetUserIDFromToken false ", c.Request.Header.Get("token")) + c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": "GetUserIDFromToken failed"}) + return } - log.InfoByKv("api update user info is server", req.OperationID, req.Token) + 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) if err != nil { - log.Error(req.Token, req.OperationID, "err=%s,call get user info rpc server failed", err) + log.NewError(req.OperationID, "UpdateUserInfo failed ", err.Error(), req.String()) c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": "call rpc server failed"}) return } - log.InfoByKv("call update user info rpc server success", params.OperationID) - c.JSON(http.StatusOK, gin.H{"errCode": RpcResp.ErrorCode, "errMsg": RpcResp.ErrorMsg}) - log.InfoByKv("api update user info return success", params.OperationID, "args=%s", RpcResp.String()) + c.JSON(http.StatusOK, gin.H{"errCode": RpcResp.CommonResp.ErrCode, "errMsg": RpcResp.CommonResp.ErrMsg}) + log.NewInfo(req.OperationID, "UpdateUserInfo api return ", RpcResp.CommonResp) } diff --git a/pkg/base_info/auth_api_struct.go b/pkg/base_info/auth_api_struct.go new file mode 100644 index 000000000..8dd3923a4 --- /dev/null +++ b/pkg/base_info/auth_api_struct.go @@ -0,0 +1,39 @@ +package base_info + +//UserID string `protobuf:"bytes,1,opt,name=UserID" json:"UserID,omitempty"` +// Nickname string `protobuf:"bytes,2,opt,name=Nickname" json:"Nickname,omitempty"` +// FaceUrl string `protobuf:"bytes,3,opt,name=FaceUrl" json:"FaceUrl,omitempty"` +// Gender int32 `protobuf:"varint,4,opt,name=Gender" json:"Gender,omitempty"` +// PhoneNumber string `protobuf:"bytes,5,opt,name=PhoneNumber" json:"PhoneNumber,omitempty"` +// Birth string `protobuf:"bytes,6,opt,name=Birth" json:"Birth,omitempty"` +// Email string `protobuf:"bytes,7,opt,name=Email" json:"Email,omitempty"` +// Ex string `protobuf:"bytes,8,opt,name=Ex" json:"Ex,omitempty"` + +type UserRegisterReq struct { + Secret string `json:"secret" binding:"required,max=32"` + Platform int32 `json:"platform" binding:"required,min=1,max=7"` + UserInfo + OperationID string `json:"operationID" binding:"required"` +} + +type UserTokenInfo struct { + UserID string `json:"secret"` + Token string `json:"token"` + ExpiredTime int64 `json:"expiredTime"` +} +type UserRegisterResp struct { + CommResp + UserToken UserTokenInfo `json:"data"` +} + +type UserTokenReq struct { + Secret string `json:"secret" binding:"required,max=32"` + Platform int32 `json:"platform" binding:"required,min=1,max=8"` + UserID string `json:"userID" binding:"required,min=1,max=64"` + OperationID string `json:"operationID" binding:"required"` +} + +type UserTokenResp struct { + CommResp + UserToken UserTokenInfo `json:"data"` +} diff --git a/pkg/base_info/public_struct.go b/pkg/base_info/public_struct.go index 3669518e7..dd0689c6b 100644 --- a/pkg/base_info/public_struct.go +++ b/pkg/base_info/public_struct.go @@ -1,4 +1,28 @@ -//package base_info +package base_info + +import ( + "github.com/gin-gonic/gin" + "net/http" +) + +type UserInfo struct { + UserID string `json:"userID" binding:"required,min=1,max=64"` + Nickname string `json:"nickname" binding:"required,min=1,max=64"` + FaceUrl string `json:"faceUrl" binding:"omitempty,max=1024"` + Gender int32 `json:"gender" binding:"omitempty,oneof=0 1 2"` + PhoneNumber string `json:"phoneNumber" binding:"omitempty,max=32"` + Birth string `json:"birth" binding:"omitempty,max=16"` + Email string `json:"email" binding:"omitempty,max=64"` + Ex string `json:"ex" binding:"omitempty,max=1024"` +} + +//c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": err.Error()}) +func SetErrCodeMsg(c *gin.Context, status int) *CommResp { + resp := CommResp{ErrCode: int32(status), ErrMsg: http.StatusText(status)} + c.JSON(status, resp) + return &resp +} + // //type GroupInfo struct { // GroupID string `json:"groupID"` From f0f1c54244e78789cfdbc074484f53ed43cebced Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Mon, 27 Dec 2021 21:08:42 +0800 Subject: [PATCH 245/814] tidy code --- internal/api/group/group.go | 10 +- internal/api/user/update_user_info.go | 1 - internal/rpc/friend/firend.go | 58 ++++---- internal/rpc/group/group.go | 136 +++++++++--------- pkg/base_info/public_struct.go | 1 - pkg/base_info/user_api_struct.go | 1 - .../im_mysql_model/friend_model.go | 4 +- .../im_mysql_model/friend_request_model.go | 4 +- .../im_mysql_model/group_member_model.go | 5 +- .../mysql_model/im_mysql_model/group_model.go | 1 - 10 files changed, 113 insertions(+), 108 deletions(-) delete mode 100644 internal/api/user/update_user_info.go diff --git a/internal/api/group/group.go b/internal/api/group/group.go index b7f04296f..62c3ab8df 100644 --- a/internal/api/group/group.go +++ b/internal/api/group/group.go @@ -348,7 +348,7 @@ func ApplicationGroupResponse(c *gin.Context) { return } - resp := api.CommResp{ErrCode: reply.ErrCode, ErrMsg: reply.ErrMsg} + resp := api.CommResp{ErrCode: reply.CommonResp.ErrCode, ErrMsg: reply.CommonResp.ErrMsg} c.JSON(http.StatusOK, resp) log.NewInfo(req.OperationID, "ApplicationGroupResponse api return ", resp) } @@ -379,7 +379,7 @@ func JoinGroup(c *gin.Context) { c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": "call rpc server failed"}) return } - resp := api.CommResp{ErrCode: RpcResp.ErrCode, ErrMsg: RpcResp.ErrMsg} + resp := api.CommResp{ErrCode: RpcResp.CommonResp.ErrCode, ErrMsg: RpcResp.CommonResp.ErrMsg} c.JSON(http.StatusOK, resp) log.NewInfo("JoinGroup api return", RpcResp.String()) } @@ -410,7 +410,7 @@ func QuitGroup(c *gin.Context) { c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": "call rpc server failed"}) return } - resp := api.CommResp{ErrCode: RpcResp.ErrCode, ErrMsg: RpcResp.ErrMsg} + resp := api.CommResp{ErrCode: RpcResp.CommonResp.ErrCode, ErrMsg: RpcResp.CommonResp.ErrMsg} c.JSON(http.StatusOK, resp) log.NewInfo("QuitGroup api return", RpcResp.String()) } @@ -441,7 +441,7 @@ func SetGroupInfo(c *gin.Context) { c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": "call rpc server failed"}) return } - resp := api.CommResp{ErrCode: RpcResp.ErrCode, ErrMsg: RpcResp.ErrMsg} + resp := api.CommResp{ErrCode: RpcResp.CommonResp.ErrCode, ErrMsg: RpcResp.CommonResp.ErrMsg} c.JSON(http.StatusOK, resp) log.NewInfo(req.OperationID, "SetGroupInfo api return ", resp) } @@ -473,7 +473,7 @@ func TransferGroupOwner(c *gin.Context) { return } - resp := api.CommResp{ErrCode: reply.ErrCode, ErrMsg: reply.ErrMsg} + resp := api.CommResp{ErrCode: reply.CommonResp.ErrCode, ErrMsg: reply.CommonResp.ErrMsg} c.JSON(http.StatusOK, resp) log.NewInfo(req.OperationID, "TransferGroupOwner api return ", resp) } diff --git a/internal/api/user/update_user_info.go b/internal/api/user/update_user_info.go deleted file mode 100644 index a00006b65..000000000 --- a/internal/api/user/update_user_info.go +++ /dev/null @@ -1 +0,0 @@ -package user diff --git a/internal/rpc/friend/firend.go b/internal/rpc/friend/firend.go index 1b459c49f..ed0d4e5ff 100644 --- a/internal/rpc/friend/firend.go +++ b/internal/rpc/friend/firend.go @@ -113,8 +113,9 @@ func (s *friendServer) AddBlacklist(ctx context.Context, req *pbFriend.AddBlackl if !ok { log.NewError(req.CommID.OperationID, "CheckAccess failed ", req.CommID.OpUserID, req.CommID.FromUserID) } + black := imdb.Black{OwnerUserID: req.CommID.FromUserID, BlockUserID: req.CommID.ToUserID} - err := imdb.InsertInToUserBlackList(req.CommID.FromUserID, req.CommID.ToUserID) + err := imdb.InsertInToUserBlackList(black) if err != nil { log.NewError(req.CommID.OperationID, "InsertInToUserBlackList failed ", err.Error()) return &pbFriend.AddBlacklistResp{CommonResp: &pbFriend.CommonResp{ErrCode: constant.ErrDB.ErrCode, ErrMsg: constant.ErrDB.ErrMsg}}, nil @@ -131,15 +132,17 @@ func (s *friendServer) AddFriend(ctx context.Context, req *pbFriend.AddFriendReq log.NewError(req.CommID.OperationID, "CheckAccess failed ", req.CommID.OpUserID, req.CommID.FromUserID) } //Cannot add non-existent users - if _, err := imdb.FindUserByUID(req.CommID.ToUserID); err != nil { - log.NewError(req.CommID.OperationID, "FindUserByUID failed ", err.Error(), req.CommID.ToUserID) + if _, err := imdb.GetUserByUserID(req.CommID.ToUserID); err != nil { + log.NewError(req.CommID.OperationID, "GetUserByUserID failed ", err.Error(), req.CommID.ToUserID) return &pbFriend.AddFriendResp{CommonResp: &pbFriend.CommonResp{ErrCode: constant.ErrDB.ErrCode, ErrMsg: constant.ErrDB.ErrMsg}}, nil } //Establish a latest relationship in the friend request table - err := imdb.ReplaceIntoFriendReq(req.CommID.FromUserID, req.CommID.ToUserID, constant.ApplicationFriendFlag, req.ReqMsg) + friendRequest := imdb.FriendRequest{ReqMessage: req.ReqMsg} + utils.CopyStructFields(&friendRequest, req.CommID) + err := imdb.UpdateFriendApplication(&friendRequest) if err != nil { - log.NewError(req.CommID.OperationID, "ReplaceIntoFriendReq failed ", err.Error()) + log.NewError(req.CommID.OperationID, "UpdateFriendApplication failed ", err.Error()) return &pbFriend.AddFriendResp{CommonResp: &pbFriend.CommonResp{ErrCode: constant.ErrDB.ErrCode, ErrMsg: constant.ErrDB.ErrMsg}}, nil } @@ -158,8 +161,7 @@ func (s *friendServer) ImportFriend(ctx context.Context, req *pbFriend.ImportFri c.ErrMsg = constant.ErrAccess.ErrMsg return &pbFriend.ImportFriendResp{CommonResp: &c, FailedFriendUserIDList: req.FriendUserIDList}, nil } - - if _, err := imdb.FindUserByUID(req.FromUserID); err != nil { + if _, err := imdb.GetUserByUserID(req.FromUserID); err != nil { log.NewError(req.OperationID, "FindUserByUID failed ", err.Error(), req.FromUserID) c.ErrCode = constant.ErrDB.ErrCode c.ErrMsg = "this user not exists,cant not add friend" @@ -167,14 +169,15 @@ func (s *friendServer) ImportFriend(ctx context.Context, req *pbFriend.ImportFri } for _, v := range req.FriendUserIDList { - if _, fErr := imdb.FindUserByUID(v); fErr != nil { + if _, fErr := imdb.GetUserByUserID(v); fErr != nil { c.ErrMsg = "some uid establish failed" c.ErrCode = 408 resp.FailedFriendUserIDList = append(resp.FailedFriendUserIDList, v) } else { - if _, err := imdb.FindFriendRelationshipFromFriend(req.FromUserID, v); err != nil { + if _, err := imdb.GetFriendRelationshipFromFriend(req.FromUserID, v); err != nil { //Establish two single friendship - err1 := imdb.InsertToFriend(req.FromUserID, v, 1) + toInsertFollow := imdb.Friend{OwnerUserID: req.FromUserID, FriendUserID: v} + err1 := imdb.InsertToFriend(&toInsertFollow) if err1 != nil { resp.FailedFriendUserIDList = append(resp.FailedFriendUserIDList, v) log.NewError(req.OperationID, "InsertToFriend failed", req.FromUserID, v, err1.Error()) @@ -182,7 +185,8 @@ func (s *friendServer) ImportFriend(ctx context.Context, req *pbFriend.ImportFri c.ErrCode = 408 continue } - err2 := imdb.InsertToFriend(v, req.FromUserID, 1) + toInsertFollow = imdb.Friend{OwnerUserID: v, FriendUserID: req.FromUserID} + err2 := imdb.InsertToFriend(&toInsertFollow) if err2 != nil { resp.FailedFriendUserIDList = append(resp.FailedFriendUserIDList, v) log.NewError(req.OperationID, "InsertToFriend failed", v, req.FromUserID, err2.Error()) @@ -193,7 +197,6 @@ func (s *friendServer) ImportFriend(ctx context.Context, req *pbFriend.ImportFri for _, v := range req.FriendUserIDList { chat.FriendAddedNotification(req.OperationID, req.OpUserID, req.FromUserID, v) } - } } } @@ -213,18 +216,21 @@ func (s *friendServer) AddFriendResponse(ctx context.Context, req *pbFriend.AddF //Check there application before agreeing or refuse to a friend's application //req.CommID.FromUserID process req.CommID.ToUserID - if _, err := imdb.FindFriendApplyFromFriendReqByUid(req.CommID.ToUserID, req.CommID.FromUserID); err != nil { - log.NewError(req.CommID.OperationID, "FindFriendApplyFromFriendReqByUid failed ", err.Error(), req.CommID.ToUserID, req.CommID.FromUserID) + friendRequest, err := imdb.GetFriendApplicationByBothUserID(req.CommID.ToUserID, req.CommID.FromUserID) + if err != nil { + log.NewError(req.CommID.OperationID, "GetFriendApplicationByBothUserID failed ", err.Error(), req.CommID.ToUserID, req.CommID.FromUserID) return &pbFriend.AddFriendResponseResp{CommonResp: &pbFriend.CommonResp{ErrCode: constant.ErrDB.ErrCode, ErrMsg: constant.ErrDB.ErrMsg}}, nil } + friendRequest.HandleResult = req.Flag //Change friend request status flag - err := imdb.UpdateFriendRelationshipToFriendReq(req.CommID.ToUserID, req.CommID.FromUserID, req.Flag) + err = imdb.UpdateFriendApplication(friendRequest) if err != nil { - log.NewError(req.CommID.OperationID, "UpdateFriendRelationshipToFriendReq failed ", err.Error(), req.CommID.ToUserID, req.CommID.FromUserID, req.Flag) + log.NewError(req.CommID.OperationID, "UpdateFriendApplication failed ", err.Error(), friendRequest) return &pbFriend.AddFriendResponseResp{CommonResp: &pbFriend.CommonResp{ErrCode: constant.ErrDB.ErrCode, ErrMsg: constant.ErrDB.ErrMsg}}, nil } log.NewInfo(req.CommID.OperationID, "rpc AddFriendResponse ok") + //Change the status of the friend request form if req.Flag == constant.FriendFlag { //Establish friendship after find friend relationship not exists @@ -284,7 +290,7 @@ func (s *friendServer) GetBlacklist(ctx context.Context, req *pbFriend.GetBlackl return &pbFriend.GetBlacklistResp{ErrCode: constant.ErrAccess.ErrCode, ErrMsg: constant.ErrAccess.ErrMsg}, nil } - blackListInfo, err := imdb.GetBlackListByUID(req.CommID.FromUserID) + blackListInfo, err := imdb.GetBlackListByUserID(req.CommID.FromUserID) if err != nil { log.NewError(req.CommID.OperationID, "GetBlackListByUID failed ", err.Error(), req.CommID.FromUserID) return &pbFriend.GetBlacklistResp{ErrCode: constant.ErrDB.ErrCode, ErrMsg: constant.ErrDB.ErrMsg}, nil @@ -296,7 +302,7 @@ func (s *friendServer) GetBlacklist(ctx context.Context, req *pbFriend.GetBlackl for _, blackUser := range blackListInfo { var blackUserInfo sdkws.PublicUserInfo //Find black user information - us, err := imdb.FindUserByUID(blackUser.BlockUserID) + us, err := imdb.GetUserByUserID(blackUser.BlockUserID) if err != nil { log.NewError(req.CommID.OperationID, "FindUserByUID failed ", err.Error(), blackUser.BlockUserID) continue @@ -322,7 +328,7 @@ func (s *friendServer) SetFriendComment(ctx context.Context, req *pbFriend.SetFr return &pbFriend.SetFriendCommentResp{CommonResp: &pbFriend.CommonResp{ErrCode: constant.ErrDB.ErrCode, ErrMsg: constant.ErrDB.ErrMsg}}, nil } log.NewInfo(req.CommID.OperationID, "rpc SetFriendComment ok") - chat.FriendInfoChangedNotification(req) + chat.FriendInfoChangedNotification(req.CommID.OperationID, req.CommID.OpUserID, req.CommID.FromUserID, req.CommID.ToUserID) return &pbFriend.SetFriendCommentResp{CommonResp: &pbFriend.CommonResp{}}, nil } @@ -352,7 +358,7 @@ func (s *friendServer) IsInBlackList(ctx context.Context, req *pbFriend.IsInBlac } var isInBlacklist = false - err := imdb.FindRelationshipFromBlackList(req.CommID.FromUserID, req.CommID.ToUserID) + err := imdb.CheckBlack(req.CommID.FromUserID, req.CommID.ToUserID) if err == nil { isInBlacklist = true } @@ -367,7 +373,7 @@ func (s *friendServer) IsFriend(ctx context.Context, req *pbFriend.IsFriendReq) log.NewError(req.CommID.OperationID, "CheckAccess false ", req.CommID.OpUserID, req.CommID.FromUserID) return &pbFriend.IsFriendResp{ErrCode: constant.ErrAccess.ErrCode, ErrMsg: constant.ErrAccess.ErrMsg}, nil } - _, err := imdb.FindFriendRelationshipFromFriend(req.CommID.FromUserID, req.CommID.ToUserID) + _, err := imdb.GetFriendRelationshipFromFriend(req.CommID.FromUserID, req.CommID.ToUserID) if err == nil { isFriend = true } else { @@ -386,7 +392,7 @@ func (s *friendServer) GetFriendList(ctx context.Context, req *pbFriend.GetFrien return &pbFriend.GetFriendListResp{ErrCode: constant.ErrAccess.ErrCode, ErrMsg: constant.ErrAccess.ErrMsg}, nil } - friends, err := imdb.FindUserInfoFromFriend(req.CommID.FromUserID) + friends, err := imdb.GetUserInfoFromFriend(req.CommID.FromUserID) if err != nil { log.NewError(req.CommID.OperationID, "FindUserInfoFromFriend failed", err.Error(), req.CommID.FromUserID) return &pbFriend.GetFriendListResp{ErrCode: constant.ErrDB.ErrCode, ErrMsg: constant.ErrDB.ErrMsg}, nil @@ -394,14 +400,14 @@ func (s *friendServer) GetFriendList(ctx context.Context, req *pbFriend.GetFrien for _, friendUser := range friends { var friendUserInfo sdkws.FriendInfo //find user is in blackList - err = imdb.FindRelationshipFromBlackList(req.CommID.FromUserID, friendUser.FriendUserID) + // err = imdb.GetRelationshipFromBlackList(req.CommID.FromUserID, friendUser.FriendUserID) //if err == nil { // friendUserInfo.IsBlack = constant.BlackListFlag //} else { // friendUserInfo.IsBlack = 0 //} //Find user information - us, err := imdb.FindUserByUID(friendUser.FriendUserID) + us, err := imdb.GetUserByUserID(friendUser.FriendUserID) if err != nil { log.NewError(req.CommID.OperationID, "FindUserByUID failed", err.Error(), friendUser.FriendUserID) continue @@ -426,7 +432,7 @@ func (s *friendServer) GetFriendApplyList(ctx context.Context, req *pbFriend.Get } // Find the current user friend applications received - ApplyUsersInfo, err := imdb.FindFriendsApplyFromFriendReq(req.CommID.FromUserID) + ApplyUsersInfo, err := imdb.GetReceivedFriendsApplicationListByUserID(req.CommID.FromUserID) if err != nil { log.NewError(req.CommID.OperationID, "FindFriendsApplyFromFriendReq ", err.Error(), req.CommID.FromUserID) return &pbFriend.GetFriendApplyListResp{ErrCode: constant.ErrDB.ErrCode, ErrMsg: constant.ErrDB.ErrMsg}, nil @@ -453,7 +459,7 @@ func (s *friendServer) GetSelfApplyList(ctx context.Context, req *pbFriend.GetSe } // Find the self add other userinfo - usersInfo, err := imdb.FindSelfApplyFromFriendReq(req.CommID.FromUserID) + usersInfo, err := imdb.GetSendFriendApplicationListByUserID(req.CommID.FromUserID) if err != nil { log.NewError(req.CommID.OperationID, "FindSelfApplyFromFriendReq failed ", err.Error(), req.CommID.FromUserID) return &pbFriend.GetSelfApplyListResp{ErrCode: constant.ErrDB.ErrCode, ErrMsg: constant.ErrDB.ErrMsg}, nil diff --git a/internal/rpc/group/group.go b/internal/rpc/group/group.go index da9f82709..cf36f01ad 100644 --- a/internal/rpc/group/group.go +++ b/internal/rpc/group/group.go @@ -39,17 +39,16 @@ func NewGroupServer(port int) *groupServer { } func (s *groupServer) Run() { - log.Info("", "", "rpc group init....") - + log.NewInfo("0", "group rpc start ") ip := utils.ServerIP registerAddress := ip + ":" + strconv.Itoa(s.rpcPort) //listener network listener, err := net.Listen("tcp", registerAddress) if err != nil { - log.InfoByArgs("listen network failed,err=%s", err.Error()) + log.NewError("0", "Listen failed ", err.Error(), registerAddress) return } - log.Info("", "", "listen network success, address = %s", registerAddress) + log.NewInfo("0", "listen network success, ", registerAddress, listener) defer listener.Close() //grpc server srv := grpc.NewServer() @@ -58,15 +57,15 @@ func (s *groupServer) Run() { pbGroup.RegisterGroupServer(srv, s) err = getcdv3.RegisterEtcd(s.etcdSchema, strings.Join(s.etcdAddr, ","), ip, s.rpcPort, s.rpcRegisterName, 10) if err != nil { - log.ErrorByArgs("get etcd failed,err=%s", err.Error()) + log.NewError("0", "RegisterEtcd failed ", err.Error()) return } err = srv.Serve(listener) if err != nil { - log.ErrorByArgs("listen rpc_group error,err=%s", err.Error()) + log.NewError("0", "Serve failed ", err.Error()) return } - log.Info("", "", "rpc create group init success") + log.NewInfo("0", "group rpc success") } func (s *groupServer) CreateGroup(ctx context.Context, req *pbGroup.CreateGroupReq) (*pbGroup.CreateGroupResp, error) { @@ -79,20 +78,24 @@ func (s *groupServer) CreateGroup(ctx context.Context, req *pbGroup.CreateGroupR //Time stamp + MD5 to generate group chat id groupId := utils.Md5(strconv.FormatInt(time.Now().UnixNano(), 10)) //to group - err := im_mysql_model.InsertIntoGroup(groupId, req.GroupInfo.GroupName, req.GroupInfo.Introduction, req.GroupInfo.Notification, req.GroupInfo.FaceUrl, req.GroupInfo.Ex, req.GroupInfo.GroupType) + groupInfo := imdb.Group{} + utils.CopyStructFields(&groupInfo, req.GroupInfo) + err := im_mysql_model.InsertIntoGroup(groupInfo) if err != nil { log.NewError(req.OperationID, "InsertIntoGroup failed, ", err.Error(), groupId, req.GroupInfo.GroupName, req.GroupInfo.Introduction, req.GroupInfo.Notification, req.GroupInfo.FaceUrl, req.GroupInfo.Ex, req.GroupInfo.GroupType) return &pbGroup.CreateGroupResp{ErrCode: constant.ErrDB.ErrCode, ErrMsg: constant.ErrDB.ErrMsg}, nil } - us, err := im_mysql_model.FindUserByUID(req.OwnerUserID) + us, err := imdb.GetUserByUserID(req.OwnerUserID) if err != nil { log.NewError(req.OperationID, "FindUserByUID failed ", err.Error(), req.OwnerUserID) return &pbGroup.CreateGroupResp{ErrCode: constant.ErrDB.ErrCode, ErrMsg: constant.ErrDB.ErrMsg}, nil } //to group member - err = im_mysql_model.InsertIntoGroupMember(groupId, us.UserID, us.Nickname, us.FaceUrl, constant.GroupOwner) + groupMember := imdb.GroupMember{GroupID: groupId, RoleLevel: 1} + utils.CopyStructFields(&groupMember, us) + err = im_mysql_model.InsertIntoGroupMember(groupMember) if err != nil { log.NewError(req.OperationID, "InsertIntoGroupMember failed ", err.Error()) return &pbGroup.CreateGroupResp{ErrCode: constant.ErrDB.ErrCode, ErrMsg: constant.ErrDB.ErrMsg}, nil @@ -106,7 +109,7 @@ func (s *groupServer) CreateGroup(ctx context.Context, req *pbGroup.CreateGroupR //to group member for _, user := range req.InitMemberList { - us, err := im_mysql_model.FindUserByUID(user.UserID) + us, err := im_mysql_model.GetUserByUserID(user.UserID) if err != nil { log.NewError(req.OperationID, "FindUserByUID failed ", err.Error(), user.UserID) continue @@ -115,9 +118,10 @@ func (s *groupServer) CreateGroup(ctx context.Context, req *pbGroup.CreateGroupR log.NewError(req.OperationID, "only one owner, failed ", user) continue } - err = im_mysql_model.InsertIntoGroupMember(groupId, user.UserID, us.Nickname, us.FaceUrl, user.RoleLevel) + utils.CopyStructFields(&groupMember, us) + err = im_mysql_model.InsertIntoGroupMember(groupMember) if err != nil { - log.NewError(req.OperationID, "InsertIntoGroupMember failed ", groupId, user.UserID, us.Nickname, us.FaceUrl, user.RoleLevel) + log.NewError(req.OperationID, "InsertIntoGroupMember failed ", err.Error(), groupMember) } okUserIDList = append(okUserIDList, user.UserID) err = db.DB.AddGroupMember(groupId, user.UserID) @@ -127,9 +131,9 @@ func (s *groupServer) CreateGroup(ctx context.Context, req *pbGroup.CreateGroupR } resp := &pbGroup.CreateGroupResp{} - group, err := im_mysql_model.FindGroupInfoByGroupId(groupId) + group, err := im_mysql_model.GetGroupInfoByGroupID(groupId) if err != nil { - log.NewError(req.OperationID, "FindGroupInfoByGroupId failed ", err.Error(), groupId) + log.NewError(req.OperationID, "GetGroupInfoByGroupID failed ", err.Error(), groupId) resp.ErrCode = constant.ErrDB.ErrCode resp.ErrMsg = constant.ErrDB.ErrMsg return resp, nil @@ -146,20 +150,19 @@ func (s *groupServer) GetJoinedGroupList(ctx context.Context, req *pbGroup.GetJo log.NewError(req.OperationID, "CheckAccess false ", req.OpUserID, req.FromUserID) return &pbGroup.GetJoinedGroupListResp{ErrCode: constant.ErrAccess.ErrCode, ErrMsg: constant.ErrAccess.ErrMsg}, nil } - //group list - joinedGroupList, err := imdb.GetJoinedGroupIdListByMemberId(req.FromUserID) + joinedGroupList, err := imdb.GetJoinedGroupIDListByUserID(req.FromUserID) if err != nil { - log.NewError(req.OperationID, "GetJoinedGroupIdListByMemberId failed ", err.Error(), req.FromUserID) + log.NewError(req.OperationID, "GetJoinedGroupIDListByUserID failed ", err.Error(), req.FromUserID) return &pbGroup.GetJoinedGroupListResp{ErrCode: constant.ErrDB.ErrCode, ErrMsg: constant.ErrDB.ErrMsg}, nil } var resp pbGroup.GetJoinedGroupListResp for _, v := range joinedGroupList { var groupNode open_im_sdk.GroupInfo - num := imdb.GetGroupMemberNumByGroupId(v.GroupID) - owner, err2 := imdb.GetGroupOwnerInfoByGroupId(v.GroupID) - group, err := imdb.FindGroupInfoByGroupId(v.GroupID) + num := imdb.GetGroupMemberNumByGroupID(v) + owner, err2 := imdb.GetGroupOwnerInfoByGroupID(v) + group, err := imdb.GetGroupInfoByGroupID(v) if num > 0 && owner != nil && err2 == nil && group != nil && err == nil { utils.CopyStructFields(&groupNode, group) groupNode.CreateTime = group.CreateTime @@ -184,7 +187,7 @@ func (s *groupServer) InviteUserToGroup(ctx context.Context, req *pbGroup.Invite return &pbGroup.InviteUserToGroupResp{ErrCode: constant.ErrAccess.ErrCode, ErrMsg: constant.ErrAccess.ErrMsg}, nil } - groupInfoFromMysql, err := imdb.FindGroupInfoByGroupId(req.GroupID) + groupInfoFromMysql, err := imdb.GetGroupInfoByGroupID(req.GroupID) if err != nil || groupInfoFromMysql == nil { log.NewError(req.OperationID, "FindGroupInfoByGroupId failed ", req.GroupID, err) return &pbGroup.InviteUserToGroupResp{ErrCode: constant.ErrAccess.ErrCode, ErrMsg: constant.ErrAccess.ErrMsg}, nil @@ -198,7 +201,8 @@ func (s *groupServer) InviteUserToGroup(ctx context.Context, req *pbGroup.Invite var resultNode pbGroup.Id2Result resultNode.UserID = v resultNode.Result = 0 - toUserInfo, err := imdb.FindUserByUID(v) + toUserInfo, err := imdb.GetUserByUserID(v) + if err != nil { log.NewError(req.OperationID, "FindUserByUID failed ", err.Error(), v) resultNode.Result = -1 @@ -212,10 +216,13 @@ func (s *groupServer) InviteUserToGroup(ctx context.Context, req *pbGroup.Invite resp.Id2ResultList = append(resp.Id2ResultList, &resultNode) continue } - - err = imdb.InsertGroupMember(req.GroupID, toUserInfo.UserID, toUserInfo.Nickname, toUserInfo.FaceUrl, 0) + var toInsertInfo imdb.GroupMember + utils.CopyStructFields(&toInsertInfo, toUserInfo) + toInsertInfo.GroupID = req.GroupID + toInsertInfo.RoleLevel = 0 + err = imdb.InsertIntoGroupMember(toInsertInfo) if err != nil { - log.NewError(req.OperationID, "InsertGroupMember failed ", req.GroupID, toUserInfo.UserID, toUserInfo.Nickname, toUserInfo.FaceUrl) + log.NewError(req.OperationID, "InsertIntoGroupMember failed ", req.GroupID, toUserInfo.UserID, toUserInfo.Nickname, toUserInfo.FaceUrl) resultNode.Result = -1 resp.Id2ResultList = append(resp.Id2ResultList, &resultNode) continue @@ -238,7 +245,7 @@ func (s *groupServer) GetGroupAllMember(ctx context.Context, req *pbGroup.GetGro log.NewInfo(req.OperationID, "GetGroupAllMember, args ", req.String()) var resp pbGroup.GetGroupAllMemberResp resp.ErrCode = 0 - memberList, err := imdb.FindGroupMemberListByGroupId(req.GroupID) + memberList, err := imdb.GetGroupMemberListByGroupID(req.GroupID) if err != nil { resp.ErrCode = constant.ErrDB.ErrCode resp.ErrMsg = constant.ErrDB.ErrMsg @@ -270,7 +277,7 @@ func (s *groupServer) GetGroupMemberList(ctx context.Context, req *pbGroup.GetGr var resp pbGroup.GetGroupMemberListResp resp.ErrCode = 0 - memberList, err := imdb.GetGroupMemberByGroupId(req.GroupID, req.Filter, req.NextSeq, 30) + memberList, err := imdb.GetGroupMemberByGroupID(req.GroupID, req.Filter, req.NextSeq, 30) if err != nil { resp.ErrCode = constant.ErrDB.ErrCode resp.ErrMsg = err.Error() @@ -297,7 +304,7 @@ func (s *groupServer) GetGroupMemberList(ctx context.Context, req *pbGroup.GetGr func (s *groupServer) KickGroupMember(ctx context.Context, req *pbGroup.KickGroupMemberReq) (*pbGroup.KickGroupMemberResp, error) { log.NewInfo(req.OperationID, "KickGroupMember args ", req.String()) - ownerList, err := imdb.GetOwnerManagerByGroupId(req.GroupID) + ownerList, err := imdb.GetOwnerManagerByGroupID(req.GroupID) if err != nil { log.NewError(req.OperationID, "GetOwnerManagerByGroupId failed ", err.Error(), req.GroupID) return &pbGroup.KickGroupMemberResp{ErrCode: constant.ErrAccess.ErrCode, ErrMsg: constant.ErrAccess.ErrMsg}, nil @@ -332,7 +339,7 @@ func (s *groupServer) KickGroupMember(ctx context.Context, req *pbGroup.KickGrou groupOwnerUserID := "" for _, v := range ownerList { - if v.AdministratorLevel == 1 { + if v.RoleLevel == 1 { groupOwnerUserID = v.UserID } } @@ -374,7 +381,7 @@ func (s *groupServer) GetGroupMembersInfo(ctx context.Context, req *pbGroup.GetG for _, v := range req.MemberList { var memberNode open_im_sdk.GroupMemberFullInfo - memberInfo, err := imdb.GetMemberInfoById(req.GroupID, v) + memberInfo, err := imdb.GetMemberInfoByID(req.GroupID, v) memberNode.UserID = v if err != nil { log.NewError(req.OperationID, "GetMemberInfoById failed ", err.Error(), req.GroupID, v) @@ -397,15 +404,21 @@ func (s *groupServer) GetGroupApplicationList(_ context.Context, req *pbGroup.Ge log.NewError(req.OperationID, "GetGroupApplicationList failed ", err.Error(), req.OpUserID) return &pbGroup.GetGroupApplicationListResp{ErrCode: 701, ErrMsg: "GetGroupApplicationList failed"}, nil } - log.NewInfo(req.OperationID, "GetGroupMembersInfo rpc return ", reply) - return reply, nil + + resp := pbGroup.GetGroupApplicationListResp{} + for _, v := range reply { + var node open_im_sdk.GroupRequest + utils.CopyStructFields(&node, v) + } + log.NewInfo(req.OperationID, "GetGroupMembersInfo rpc return ", resp) + return &resp, nil } func (s *groupServer) GetGroupsInfo(ctx context.Context, req *pbGroup.GetGroupsInfoReq) (*pbGroup.GetGroupsInfoResp, error) { log.NewInfo(req.OperationID, "GetGroupsInfo args ", req.String()) groupsInfoList := make([]*open_im_sdk.GroupInfo, 0) for _, groupID := range req.GroupIDList { - groupInfoFromMysql, err := im_mysql_model.FindGroupInfoByGroupId(groupID) + groupInfoFromMysql, err := im_mysql_model.GetGroupInfoByGroupID(groupID) if err != nil { log.NewError(req.OperationID, "FindGroupInfoByGroupId failed ", err.Error(), groupID) continue @@ -439,17 +452,6 @@ func (s *groupServer) GroupApplicationResponse(_ context.Context, req *pbGroup.G chat.ApplicationProcessedNotification(req) if req.HandleResult == 1 { chat.MemberEnterNotification(req) - //if req.ToUserID == "0" { - // err = db.DB.AddGroupMember(req.GroupID, req.FromUserID) - // if err != nil { - // log.NewError(req.OperationID, "AddGroupMember failed ", err.Error(), req.GroupID, req.FromUserID) - // } - //} else { - // err = db.DB.AddGroupMember(req.GroupID, req.ToUserID) - // if err != nil { - // log.NewError(req.OperationID, "AddGroupMember failed ", err.Error(), req.GroupID, req.ToUserID) - // } - //} } log.NewInfo(req.OperationID, "rpc GroupApplicationResponse return ") @@ -458,26 +460,23 @@ func (s *groupServer) GroupApplicationResponse(_ context.Context, req *pbGroup.G func (s *groupServer) JoinGroup(ctx context.Context, req *pbGroup.JoinGroupReq) (*pbGroup.JoinGroupResp, error) { log.NewInfo(req.OperationID, "JoinGroup args ", req.String()) - - applicationUserInfo, err := im_mysql_model.FindUserByUID(req.OpUserID) + applicationUserInfo, err := imdb.GetUserByUserID(req.OpUserID) if err != nil { log.NewError(req.OperationID, "FindUserByUID failed ", err.Error(), req.OpUserID) return &pbGroup.JoinGroupResp{CommonResp: &pbGroup.CommonResp{ErrCode: constant.ErrDB.ErrCode, ErrMsg: constant.ErrDB.ErrMsg}}, nil } - _, err = im_mysql_model.FindGroupRequestUserInfoByGroupIDAndUid(req.GroupID, req.OpUserID) - if err == nil { - err = im_mysql_model.DelGroupRequest(req.GroupID, req.OpUserID, "0") - } - - if err = im_mysql_model.InsertIntoGroupRequest(req.GroupID, req.OpUserID, "0", req.ReqMessage, applicationUserInfo.Nickname, applicationUserInfo.FaceUrl); err != nil { - log.NewError(req.OperationID, "InsertIntoGroupRequest ", err.Error(), req.GroupID, req.OpUserID, "0", req.ReqMessage, applicationUserInfo.Nickname, applicationUserInfo.FaceUrl) + var groupRequest imdb.GroupRequest + utils.CopyStructFields(&groupRequest, req) + err = imdb.UpdateGroupRequest(groupRequest) + if err != nil { + log.NewError(req.OperationID, "UpdateGroupRequest ", err.Error(), groupRequest) return &pbGroup.JoinGroupResp{CommonResp: &pbGroup.CommonResp{ErrCode: constant.ErrDB.ErrCode, ErrMsg: constant.ErrDB.ErrMsg}}, nil } - memberList, err := im_mysql_model.FindGroupMemberListByGroupIdAndFilterInfo(req.GroupID, constant.GroupOwner) - if len(memberList) == 0 { - log.NewError(req.OperationID, "FindGroupMemberListByGroupIdAndFilterInfo failed ", req.GroupID, constant.GroupOwner, err) + _, err = imdb.GetGroupMemberListByGroupIDAndRoleLevel(req.GroupID, constant.GroupOwner) + if err != nil { + log.NewError(req.OperationID, "GetGroupMemberListByGroupIDAndRoleLevel failed ", err.Error(), req.GroupID, constant.GroupOwner) return &pbGroup.JoinGroupResp{CommonResp: &pbGroup.CommonResp{ErrCode: 0, ErrMsg: ""}}, nil } @@ -490,13 +489,13 @@ 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("QuitGroup args ", req.String()) - _, err := im_mysql_model.FindGroupMemberInfoByGroupIdAndUserId(req.GroupID, req.OpUserID) + _, err := imdb.GetGroupMemberInfoByGroupIDAndUserID(req.GroupID, req.OpUserID) if err != nil { log.NewError(req.OperationID, "FindGroupMemberInfoByGroupIdAndUserId failed", err.Error(), req.GroupID, req.OpUserID) return &pbGroup.QuitGroupResp{CommonResp: &pbGroup.CommonResp{ErrCode: constant.ErrDB.ErrCode, ErrMsg: constant.ErrDB.ErrMsg}}, nil } - err = im_mysql_model.DeleteGroupMemberByGroupIdAndUserId(req.GroupID, req.OpUserID) + err = imdb.DeleteGroupMemberByGroupIDAndUserID(req.GroupID, req.OpUserID) if err != nil { log.NewError(req.OperationID, "DeleteGroupMemberByGroupIdAndUserId failed ", err.Error(), req.GroupID, req.OpUserID) return &pbGroup.QuitGroupResp{CommonResp: &pbGroup.CommonResp{ErrCode: constant.ErrDB.ErrCode, ErrMsg: constant.ErrDB.ErrMsg}}, nil @@ -517,13 +516,13 @@ func hasAccess(req *pbGroup.SetGroupInfoReq) bool { if utils.IsContain(req.OpUserID, config.Config.Manager.AppManagerUid) { return true } - groupUserInfo, err := im_mysql_model.FindGroupMemberInfoByGroupIdAndUserId(req.GroupInfo.GroupID, req.OpUserID) + groupUserInfo, err := im_mysql_model.GetGroupMemberInfoByGroupIDAndUserID(req.GroupInfo.GroupID, req.OpUserID) if err != nil { log.NewError(req.OperationID, "FindGroupMemberInfoByGroupIdAndUserId failed, ", err.Error(), req.GroupInfo.GroupID, req.OpUserID) return false } - if groupUserInfo.AdministratorLevel == constant.OrdinaryMember { + if groupUserInfo.RoleLevel == constant.OrdinaryMember { return true } } @@ -535,9 +534,9 @@ func (s *groupServer) SetGroupInfo(ctx context.Context, req *pbGroup.SetGroupInf return &pbGroup.SetGroupInfoResp{CommonResp: &pbGroup.CommonResp{ErrCode: constant.ErrAccess.ErrCode, ErrMsg: constant.ErrAccess.ErrMsg}}, nil } - group, err := im_mysql_model.FindGroupInfoByGroupId(req.GroupInfo.GroupID) + group, err := im_mysql_model.GetGroupInfoByGroupID(req.GroupInfo.GroupID) if err != nil { - log.NewError(req.OperationID, "FindGroupInfoByGroupId failed, ", err.Error(), req.GroupInfo.GroupID) + log.NewError(req.OperationID, "FindGroupInfoByGroupId failed ", err.Error(), req.GroupInfo.GroupID) return &pbGroup.SetGroupInfoResp{CommonResp: &pbGroup.CommonResp{ErrCode: constant.ErrDB.ErrCode, ErrMsg: constant.ErrAccess.ErrMsg}}, nil } @@ -556,15 +555,18 @@ func (s *groupServer) SetGroupInfo(ctx context.Context, req *pbGroup.SetGroupInf changedType = changedType | (1 << 3) } //only administrators can set group information - if err = im_mysql_model.SetGroupInfo(req.GroupInfo.GroupID, req.GroupInfo.GroupName, req.GroupInfo.Introduction, req.GroupInfo.Notification, req.GroupInfo.FaceUrl, ""); err != nil { - return &pbGroup.CommonResp{ErrCode: constant.ErrDB.ErrCode, ErrMsg: constant.ErrDB.ErrMsg}, nil + var groupInfo imdb.Group + utils.CopyStructFields(&groupInfo, req.GroupInfo) + err = imdb.SetGroupInfo(groupInfo) + if err != nil { + return &pbGroup.SetGroupInfoResp{CommonResp: &pbGroup.CommonResp{ErrCode: constant.ErrDB.ErrCode, ErrMsg: constant.ErrAccess.ErrMsg}}, nil } if changedType != 0 { chat.GroupInfoChangedNotification(req.OperationID, req.OpUserID, req.GroupInfo.GroupID, changedType) } - log.NewInfo("SetGroupInfo rpc return ") - return &pbGroup.CommonResp{}, nil + log.NewInfo("SetGroupInfo rpc return ", pbGroup.SetGroupInfoResp{CommonResp: &pbGroup.CommonResp{}}) + return &pbGroup.SetGroupInfoResp{CommonResp: &pbGroup.CommonResp{}}, nil } func (s *groupServer) TransferGroupOwner(_ context.Context, req *pbGroup.TransferGroupOwnerReq) (*pbGroup.TransferGroupOwnerResp, error) { diff --git a/pkg/base_info/public_struct.go b/pkg/base_info/public_struct.go index dd0689c6b..679b58082 100644 --- a/pkg/base_info/public_struct.go +++ b/pkg/base_info/public_struct.go @@ -16,7 +16,6 @@ type UserInfo struct { Ex string `json:"ex" binding:"omitempty,max=1024"` } -//c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": err.Error()}) func SetErrCodeMsg(c *gin.Context, status int) *CommResp { resp := CommResp{ErrCode: int32(status), ErrMsg: http.StatusText(status)} c.JSON(status, resp) diff --git a/pkg/base_info/user_api_struct.go b/pkg/base_info/user_api_struct.go index c129e8c76..2e736e97f 100644 --- a/pkg/base_info/user_api_struct.go +++ b/pkg/base_info/user_api_struct.go @@ -22,7 +22,6 @@ type GetUserInfoReq struct { OperationID string `json:"operationID" binding:"required"` UserIDList []string `json:"userIDList" binding:"required"` } - type GetUserInfoResp struct { CommResp UserInfoList []*open_im_sdk.UserInfo `json:"data"` 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 6f5c5060e..0ef118f14 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 @@ -20,7 +20,7 @@ func InsertToFriend(toInsertFollow *Friend) error { return nil } -func FindFriendRelationshipFromFriend(OwnerUserID, FriendUserID string) (*Friend, error) { +func GetFriendRelationshipFromFriend(OwnerUserID, FriendUserID string) (*Friend, error) { dbConn, err := db.DB.MysqlDB.DefaultGormDB() if err != nil { return nil, err @@ -33,7 +33,7 @@ func FindFriendRelationshipFromFriend(OwnerUserID, FriendUserID string) (*Friend return &friend, err } -func FindUserInfoFromFriend(OwnerUserID string) ([]Friend, error) { +func GetUserInfoFromFriend(OwnerUserID string) ([]Friend, error) { dbConn, err := db.DB.MysqlDB.DefaultGormDB() if err != nil { return nil, err diff --git a/pkg/common/db/mysql_model/im_mysql_model/friend_request_model.go b/pkg/common/db/mysql_model/im_mysql_model/friend_request_model.go index e2a332364..735380d0b 100644 --- a/pkg/common/db/mysql_model/im_mysql_model/friend_request_model.go +++ b/pkg/common/db/mysql_model/im_mysql_model/friend_request_model.go @@ -45,7 +45,7 @@ func GetSendFriendApplicationListByUserID(FromUserID string) ([]FriendRequest, e } //reqId apply to add userId already -func FindFriendApplicationByBothUserID(FromUserId, ToUserID string) (*FriendRequest, error) { +func GetFriendApplicationByBothUserID(FromUserId, ToUserID string) (*FriendRequest, error) { dbConn, err := db.DB.MysqlDB.DefaultGormDB() if err != nil { return nil, err @@ -58,7 +58,7 @@ func FindFriendApplicationByBothUserID(FromUserId, ToUserID string) (*FriendRequ return &friendRequest, nil } -func UpdateFriendApplication(friendRequest FriendRequest) error { +func UpdateFriendApplication(friendRequest *FriendRequest) error { dbConn, err := db.DB.MysqlDB.DefaultGormDB() if err != nil { return err diff --git a/pkg/common/db/mysql_model/im_mysql_model/group_member_model.go b/pkg/common/db/mysql_model/im_mysql_model/group_member_model.go index 888fff2e8..0f159abee 100644 --- a/pkg/common/db/mysql_model/im_mysql_model/group_member_model.go +++ b/pkg/common/db/mysql_model/im_mysql_model/group_member_model.go @@ -21,6 +21,7 @@ func InsertIntoGroupMember(toInsertInfo GroupMember) error { if err != nil { return err } + toInsertInfo.JoinSource = time.Now() err = dbConn.Table("group_member").Create(toInsertInfo).Error if err != nil { return err @@ -54,13 +55,13 @@ func GetGroupMemberListByGroupID(groupID string) ([]GroupMember, error) { return groupMemberList, nil } -func GetGroupMemberListByGroupIDAndFilter(groupID string, filter int32) ([]GroupMember, error) { +func GetGroupMemberListByGroupIDAndRoleLevel(groupID string, roleLevel int32) ([]GroupMember, error) { dbConn, err := db.DB.MysqlDB.DefaultGormDB() if err != nil { return nil, err } var groupMemberList []GroupMember - err = dbConn.Table("group_member").Where("group_id=? and role_level=?", groupID, filter).Find(&groupMemberList).Error + err = dbConn.Table("group_member").Where("group_id=? and role_level=?", groupID, role_level).Find(&groupMemberList).Error if err != nil { return nil, err } diff --git a/pkg/common/db/mysql_model/im_mysql_model/group_model.go b/pkg/common/db/mysql_model/im_mysql_model/group_model.go index 120815a61..672e2ae93 100644 --- a/pkg/common/db/mysql_model/im_mysql_model/group_model.go +++ b/pkg/common/db/mysql_model/im_mysql_model/group_model.go @@ -2,7 +2,6 @@ package im_mysql_model import ( "Open_IM/pkg/common/db" - "Open_IM/pkg/common/log" "Open_IM/pkg/proto/group" "errors" "time" From 292a8620e05a7a3e3102f007f2c19164996598bf Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Tue, 28 Dec 2021 10:59:01 +0800 Subject: [PATCH 246/814] remove invalid token --- internal/api/chat/send_msg.go | 2 +- pkg/common/db/redisModel.go | 9 +++++++-- pkg/common/token_verify/jwt_token.go | 16 ++++++++++++++++ 3 files changed, 24 insertions(+), 3 deletions(-) diff --git a/internal/api/chat/send_msg.go b/internal/api/chat/send_msg.go index 8522ae228..3909ac125 100644 --- a/internal/api/chat/send_msg.go +++ b/internal/api/chat/send_msg.go @@ -44,7 +44,7 @@ func newUserSendMsgReq(token string, params *paramsUserSendMsg) *pbChat.SendMsgR GroupID: params.Data.GroupID, ClientMsgID: params.Data.ClientMsgID, SenderPlatformID: params.SenderPlatformID, - SenderNickName: params.SenderNickName, + SenderNickname: params.SenderNickName, SenderFaceURL: params.SenderFaceURL, SessionType: params.Data.SessionType, MsgFrom: params.Data.MsgFrom, diff --git a/pkg/common/db/redisModel.go b/pkg/common/db/redisModel.go index a9d552699..7364d7e68 100644 --- a/pkg/common/db/redisModel.go +++ b/pkg/common/db/redisModel.go @@ -91,10 +91,15 @@ func (d *DataBases) SetTokenMapByUidPid(userID string, platformID int32, m map[s _, err := d.Exec("hmset", key, redis.Args{}.Add().AddFlat(m)...) return err } +func (d *DataBases) DeleteTokenByUidPid(userID string, platformID int32, fields []string) error { + key := uidPidToken + userID + ":" + constant.PlatformIDToName(platformID) + _, err := d.Exec("HDEL", key, redis.Args{}.Add().AddFlat(fields)...) + return err +} func (d *DataBases) SetSingleConversationMsgOpt(userID, conversationID string, opt int) error { key := conversationReceiveMessageOpt + userID - _, err1 := d.Exec("HSet", key, conversationID, opt) - return err1 + _, err := d.Exec("HSet", key, conversationID, opt) + return err } func (d *DataBases) GetSingleConversationMsgOpt(userID, conversationID string) (int, error) { key := conversationReceiveMessageOpt + userID diff --git a/pkg/common/token_verify/jwt_token.go b/pkg/common/token_verify/jwt_token.go index 1f3f444b2..4d33c3a58 100644 --- a/pkg/common/token_verify/jwt_token.go +++ b/pkg/common/token_verify/jwt_token.go @@ -6,6 +6,7 @@ import ( commonDB "Open_IM/pkg/common/db" "Open_IM/pkg/common/log" "Open_IM/pkg/utils" + "github.com/garyburd/redigo/redis" "github.com/golang-jwt/jwt/v4" "time" ) @@ -43,6 +44,21 @@ func CreateToken(userID string, platformID int32) (string, int64, error) { if err != nil { return "", 0, err } + //remove Invalid token + m, err := commonDB.DB.GetTokenMapByUidPid(userID, constant.PlatformIDToName(platformID)) + if err != nil && err != redis.ErrNil { + return "", 0, err + } + var deleteTokenKey []string + for k, v := range m { + if v != constant.NormalToken { + deleteTokenKey = append(deleteTokenKey, k) + } + } + err = commonDB.DB.DeleteTokenByUidPid(userID, platformID, deleteTokenKey) + if err != nil { + return "", 0, err + } err = commonDB.DB.AddTokenFlag(userID, platformID, tokenString, constant.NormalToken) if err != nil { return "", 0, err From 6b1f4e16867e3b38aa24f02202c8928527fb512d Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Tue, 28 Dec 2021 11:57:12 +0800 Subject: [PATCH 247/814] tidy code --- internal/rpc/friend/firend.go | 104 ++++++++---------- internal/rpc/group/group.go | 51 ++++----- .../im_mysql_model/friend_model.go | 2 +- .../im_mysql_model/friend_request_model.go | 19 +++- .../im_mysql_model/group_member_model.go | 2 +- pkg/proto/sdk_ws/ws.proto | 1 - 6 files changed, 85 insertions(+), 94 deletions(-) diff --git a/internal/rpc/friend/firend.go b/internal/rpc/friend/firend.go index ed0d4e5ff..eff77a572 100644 --- a/internal/rpc/friend/firend.go +++ b/internal/rpc/friend/firend.go @@ -111,7 +111,8 @@ func (s *friendServer) AddBlacklist(ctx context.Context, req *pbFriend.AddBlackl log.NewInfo(req.CommID.OperationID, "AddBlacklist args ", req.String()) ok := token_verify.CheckAccess(req.CommID.OpUserID, req.CommID.FromUserID) if !ok { - log.NewError(req.CommID.OperationID, "CheckAccess failed ", req.CommID.OpUserID, req.CommID.FromUserID) + log.NewError(req.CommID.OperationID, "CheckAccess false ", req.CommID.OpUserID, req.CommID.FromUserID) + return &pbFriend.AddBlacklistResp{CommonResp: &pbFriend.CommonResp{ErrCode: constant.ErrAccess.ErrCode, ErrMsg: constant.ErrAccess.ErrMsg}}, nil } black := imdb.Black{OwnerUserID: req.CommID.FromUserID, BlockUserID: req.CommID.ToUserID} @@ -120,7 +121,7 @@ func (s *friendServer) AddBlacklist(ctx context.Context, req *pbFriend.AddBlackl log.NewError(req.CommID.OperationID, "InsertInToUserBlackList failed ", err.Error()) return &pbFriend.AddBlacklistResp{CommonResp: &pbFriend.CommonResp{ErrCode: constant.ErrDB.ErrCode, ErrMsg: constant.ErrDB.ErrMsg}}, nil } - log.NewInfo(req.CommID.OperationID, "InsertInToUserBlackList ok ", req.CommID.FromUserID, req.CommID.ToUserID) + log.NewInfo(req.CommID.OperationID, "AddBlacklist rpc ok ", req.CommID.FromUserID, req.CommID.ToUserID) chat.BlackAddedNotification(req) return &pbFriend.AddBlacklistResp{CommonResp: &pbFriend.CommonResp{}}, nil } @@ -129,7 +130,8 @@ func (s *friendServer) AddFriend(ctx context.Context, req *pbFriend.AddFriendReq log.NewInfo(req.CommID.OperationID, "AddFriend args ", req.String()) ok := token_verify.CheckAccess(req.CommID.OpUserID, req.CommID.FromUserID) if !ok { - log.NewError(req.CommID.OperationID, "CheckAccess failed ", req.CommID.OpUserID, req.CommID.FromUserID) + log.NewError(req.CommID.OperationID, "CheckAccess false ", req.CommID.OpUserID, req.CommID.FromUserID) + return &pbFriend.AddFriendResp{CommonResp: &pbFriend.CommonResp{ErrCode: constant.ErrAccess.ErrCode, ErrMsg: constant.ErrAccess.ErrMsg}}, nil } //Cannot add non-existent users if _, err := imdb.GetUserByUserID(req.CommID.ToUserID); err != nil { @@ -142,7 +144,7 @@ func (s *friendServer) AddFriend(ctx context.Context, req *pbFriend.AddFriendReq utils.CopyStructFields(&friendRequest, req.CommID) err := imdb.UpdateFriendApplication(&friendRequest) if err != nil { - log.NewError(req.CommID.OperationID, "UpdateFriendApplication failed ", err.Error()) + log.NewError(req.CommID.OperationID, "UpdateFriendApplication failed ", err.Error(), friendRequest) return &pbFriend.AddFriendResp{CommonResp: &pbFriend.CommonResp{ErrCode: constant.ErrDB.ErrCode, ErrMsg: constant.ErrDB.ErrMsg}}, nil } @@ -150,19 +152,20 @@ func (s *friendServer) AddFriend(ctx context.Context, req *pbFriend.AddFriendReq return &pbFriend.AddFriendResp{CommonResp: &pbFriend.CommonResp{}}, nil } +//todo func (s *friendServer) ImportFriend(ctx context.Context, req *pbFriend.ImportFriendReq) (*pbFriend.ImportFriendResp, error) { log.NewInfo(req.OperationID, "ImportFriend failed ", req.String()) var resp pbFriend.ImportFriendResp var c pbFriend.CommonResp if !utils.IsContain(req.OpUserID, config.Config.Manager.AppManagerUid) { - log.NewError(req.OperationID, "not authorized", req.OpUserID) + log.NewError(req.OperationID, "not authorized", req.OpUserID, config.Config.Manager.AppManagerUid) c.ErrCode = constant.ErrAccess.ErrCode c.ErrMsg = constant.ErrAccess.ErrMsg return &pbFriend.ImportFriendResp{CommonResp: &c, FailedFriendUserIDList: req.FriendUserIDList}, nil } if _, err := imdb.GetUserByUserID(req.FromUserID); err != nil { - log.NewError(req.OperationID, "FindUserByUID failed ", err.Error(), req.FromUserID) + log.NewError(req.OperationID, "GetUserByUserID failed ", err.Error(), req.FromUserID) c.ErrCode = constant.ErrDB.ErrCode c.ErrMsg = "this user not exists,cant not add friend" return &pbFriend.ImportFriendResp{CommonResp: &c, FailedFriendUserIDList: req.FriendUserIDList}, nil @@ -209,8 +212,8 @@ func (s *friendServer) ImportFriend(ctx context.Context, req *pbFriend.ImportFri func (s *friendServer) AddFriendResponse(ctx context.Context, req *pbFriend.AddFriendResponseReq) (*pbFriend.AddFriendResponseResp, error) { log.NewInfo(req.CommID.OperationID, "AddFriendResponse args ", req.String()) - if !token_verify.CheckAccess(req.CommID.FromUserID, req.CommID.ToUserID) { - log.NewError(req.CommID.OperationID, "CheckAccess failed ", req.CommID.FromUserID, req.CommID.ToUserID) + if !token_verify.CheckAccess(req.CommID.OpUserID, req.CommID.FromUserID) { + log.NewError(req.CommID.OperationID, "CheckAccess false ", req.CommID.OpUserID, req.CommID.FromUserID) return &pbFriend.AddFriendResponseResp{CommonResp: &pbFriend.CommonResp{ErrCode: constant.ErrAccess.ErrCode, ErrMsg: constant.ErrAccess.ErrMsg}}, nil } @@ -221,45 +224,47 @@ func (s *friendServer) AddFriendResponse(ctx context.Context, req *pbFriend.AddF log.NewError(req.CommID.OperationID, "GetFriendApplicationByBothUserID failed ", err.Error(), req.CommID.ToUserID, req.CommID.FromUserID) return &pbFriend.AddFriendResponseResp{CommonResp: &pbFriend.CommonResp{ErrCode: constant.ErrDB.ErrCode, ErrMsg: constant.ErrDB.ErrMsg}}, nil } - friendRequest.HandleResult = req.Flag - //Change friend request status flag + friendRequest.HandleTime = time.Now() + friendRequest.HandleMsg = req.HandleMsg + friendRequest.HandlerUserID = req.CommID.OpUserID err = imdb.UpdateFriendApplication(friendRequest) if err != nil { log.NewError(req.CommID.OperationID, "UpdateFriendApplication failed ", err.Error(), friendRequest) return &pbFriend.AddFriendResponseResp{CommonResp: &pbFriend.CommonResp{ErrCode: constant.ErrDB.ErrCode, ErrMsg: constant.ErrDB.ErrMsg}}, nil } - log.NewInfo(req.CommID.OperationID, "rpc AddFriendResponse ok") //Change the status of the friend request form if req.Flag == constant.FriendFlag { //Establish friendship after find friend relationship not exists - _, err := imdb.FindFriendRelationshipFromFriend(req.CommID.FromUserID, req.CommID.ToUserID) + _, err := imdb.GetFriendRelationshipFromFriend(req.CommID.FromUserID, req.CommID.ToUserID) if err == nil { - log.NewWarn(req.CommID.OperationID, "FindFriendRelationshipFromFriend exist", req.CommID.FromUserID, req.CommID.ToUserID) + log.NewWarn(req.CommID.OperationID, "GetFriendRelationshipFromFriend exist", req.CommID.FromUserID, req.CommID.ToUserID) } else { //Establish two single friendship - err = imdb.InsertToFriend(req.CommID.FromUserID, req.CommID.ToUserID, req.Flag) + toInsertFollow := imdb.Friend{OwnerUserID: req.CommID.FromUserID, FriendUserID: req.CommID.ToUserID, OperatorUserID: req.CommID.OpUserID} + err = imdb.InsertToFriend(&toInsertFollow) if err != nil { - log.NewError(req.CommID.OperationID, "InsertToFriend failed ", err.Error(), req.CommID.FromUserID, req.CommID.ToUserID, req.Flag) + log.NewError(req.CommID.OperationID, "InsertToFriend failed ", err.Error(), toInsertFollow) return &pbFriend.AddFriendResponseResp{CommonResp: &pbFriend.CommonResp{ErrCode: constant.ErrDB.ErrCode, ErrMsg: constant.ErrDB.ErrMsg}}, nil } } - _, err = imdb.FindFriendRelationshipFromFriend(req.CommID.ToUserID, req.CommID.FromUserID) + _, err = imdb.GetFriendRelationshipFromFriend(req.CommID.ToUserID, req.CommID.FromUserID) if err == nil { log.NewWarn(req.CommID.OperationID, "FindFriendRelationshipFromFriend exist", req.CommID.ToUserID, req.CommID.FromUserID) - return &pbFriend.AddFriendResponseResp{CommonResp: &pbFriend.CommonResp{}}, nil } - err = imdb.InsertToFriend(req.CommID.ToUserID, req.CommID.FromUserID, req.Flag) + toInsertFollow := imdb.Friend{OwnerUserID: req.CommID.ToUserID, FriendUserID: req.CommID.FromUserID, OperatorUserID: req.CommID.OpUserID} + err = imdb.InsertToFriend(&toInsertFollow) if err != nil { - log.NewError(req.CommID.OperationID, "InsertToFriend failed ", err.Error(), req.CommID.FromUserID, req.CommID.ToUserID, req.Flag) + log.NewError(req.CommID.OperationID, "InsertToFriend failed ", err.Error(), toInsertFollow) return &pbFriend.AddFriendResponseResp{CommonResp: &pbFriend.CommonResp{ErrCode: constant.ErrDB.ErrCode, ErrMsg: constant.ErrDB.ErrMsg}}, nil } + chat.FriendAddedNotification(req.CommID.OperationID, req.CommID.OpUserID, req.CommID.FromUserID, req.CommID.ToUserID) } chat.FriendApplicationProcessedNotification(req) - chat.FriendAddedNotification(req.CommID.OperationID, req.CommID.OpUserID, req.CommID.FromUserID, req.CommID.ToUserID) + log.NewInfo(req.CommID.OperationID, "rpc AddFriendResponse ok") return &pbFriend.AddFriendResponseResp{CommonResp: &pbFriend.CommonResp{}}, nil } @@ -286,7 +291,7 @@ func (s *friendServer) GetBlacklist(ctx context.Context, req *pbFriend.GetBlackl //Parse token, to find current user information if !token_verify.CheckAccess(req.CommID.OpUserID, req.CommID.FromUserID) { - log.NewError(req.CommID.OperationID, "CheckAccess failed", req.CommID.OpUserID, req.CommID.FromUserID) + log.NewError(req.CommID.OperationID, "CheckAccess false ", req.CommID.OpUserID, req.CommID.FromUserID) return &pbFriend.GetBlacklistResp{ErrCode: constant.ErrAccess.ErrCode, ErrMsg: constant.ErrAccess.ErrMsg}, nil } @@ -304,13 +309,13 @@ func (s *friendServer) GetBlacklist(ctx context.Context, req *pbFriend.GetBlackl //Find black user information us, err := imdb.GetUserByUserID(blackUser.BlockUserID) if err != nil { - log.NewError(req.CommID.OperationID, "FindUserByUID failed ", err.Error(), blackUser.BlockUserID) + log.NewError(req.CommID.OperationID, "GetUserByUserID failed ", err.Error(), blackUser.BlockUserID) continue } utils.CopyStructFields(&blackUserInfo, us) userInfoList = append(userInfoList, &blackUserInfo) } - log.NewInfo(req.CommID.OperationID, "rpc GetBlacklist ok") + log.NewInfo(req.CommID.OperationID, "rpc GetBlacklist ok ", pbFriend.GetBlacklistResp{BlackUserInfoList: userInfoList}) return &pbFriend.GetBlacklistResp{BlackUserInfoList: userInfoList}, nil } @@ -318,13 +323,13 @@ func (s *friendServer) SetFriendComment(ctx context.Context, req *pbFriend.SetFr log.NewInfo(req.CommID.OperationID, "SetFriendComment args ", req.String()) //Parse token, to find current user information if !token_verify.CheckAccess(req.CommID.OpUserID, req.CommID.FromUserID) { - log.NewError(req.CommID.OperationID, "CheckAccess false", req.CommID.OpUserID, req.CommID.FromUserID) + log.NewError(req.CommID.OperationID, "CheckAccess false ", req.CommID.OpUserID, req.CommID.FromUserID) return &pbFriend.SetFriendCommentResp{CommonResp: &pbFriend.CommonResp{ErrCode: constant.ErrAccess.ErrCode, ErrMsg: constant.ErrAccess.ErrMsg}}, nil } - err := imdb.UpdateFriendComment(req.CommID.FromUserID, req.CommID.OpUserID, req.Remark) + err := imdb.UpdateFriendComment(req.CommID.FromUserID, req.CommID.ToUserID, req.Remark) if err != nil { - log.NewError(req.CommID.OperationID, "UpdateFriendComment failed ", err.Error(), req.CommID.FromUserID, req.CommID.OpUserID, req.Remark) + log.NewError(req.CommID.OperationID, "UpdateFriendComment failed ", req.CommID.FromUserID, req.CommID.ToUserID, req.Remark) return &pbFriend.SetFriendCommentResp{CommonResp: &pbFriend.CommonResp{ErrCode: constant.ErrDB.ErrCode, ErrMsg: constant.ErrDB.ErrMsg}}, nil } log.NewInfo(req.CommID.OperationID, "rpc SetFriendComment ok") @@ -336,7 +341,7 @@ func (s *friendServer) RemoveBlacklist(ctx context.Context, req *pbFriend.Remove log.NewInfo(req.CommID.OperationID, "RemoveBlacklist args ", req.String()) //Parse token, to find current user information if !token_verify.CheckAccess(req.CommID.OpUserID, req.CommID.FromUserID) { - log.NewError(req.CommID.OperationID, "CheckAccess false", req.CommID.OpUserID, req.CommID.FromUserID) + log.NewError(req.CommID.OperationID, "CheckAccess false ", req.CommID.OpUserID, req.CommID.FromUserID) return &pbFriend.RemoveBlacklistResp{CommonResp: &pbFriend.CommonResp{ErrCode: constant.ErrAccess.ErrCode, ErrMsg: constant.ErrAccess.ErrMsg}}, nil } err := imdb.RemoveBlackList(req.CommID.FromUserID, req.CommID.ToUserID) @@ -345,7 +350,7 @@ func (s *friendServer) RemoveBlacklist(ctx context.Context, req *pbFriend.Remove return &pbFriend.RemoveBlacklistResp{CommonResp: &pbFriend.CommonResp{ErrCode: constant.ErrAccess.ErrCode, ErrMsg: constant.ErrAccess.ErrMsg}}, nil } - log.NewInfo(req.CommID.OperationID, "rpc RemoveBlacklist ok") + log.NewInfo(req.CommID.OperationID, "rpc RemoveBlacklist ok ") chat.BlackDeletedNotification(req) return &pbFriend.RemoveBlacklistResp{CommonResp: &pbFriend.CommonResp{}}, nil } @@ -353,7 +358,7 @@ func (s *friendServer) RemoveBlacklist(ctx context.Context, req *pbFriend.Remove func (s *friendServer) IsInBlackList(ctx context.Context, req *pbFriend.IsInBlackListReq) (*pbFriend.IsInBlackListResp, error) { log.NewInfo("IsInBlackList args ", req.String()) if !token_verify.CheckAccess(req.CommID.OpUserID, req.CommID.FromUserID) { - log.NewError(req.CommID.OperationID, "CheckAccess false", req.CommID.OpUserID, req.CommID.FromUserID) + log.NewError(req.CommID.OperationID, "CheckAccess false ", req.CommID.OpUserID, req.CommID.FromUserID) return &pbFriend.IsInBlackListResp{ErrCode: constant.ErrAccess.ErrCode, ErrMsg: constant.ErrAccess.ErrMsg}, nil } @@ -362,7 +367,7 @@ func (s *friendServer) IsInBlackList(ctx context.Context, req *pbFriend.IsInBlac if err == nil { isInBlacklist = true } - log.NewInfo(req.CommID.OperationID, "IsInBlackList rpc ok") + log.NewInfo(req.CommID.OperationID, "IsInBlackList rpc ok ", pbFriend.IsInBlackListResp{Response: isInBlacklist}) return &pbFriend.IsInBlackListResp{Response: isInBlacklist}, nil } @@ -379,62 +384,45 @@ func (s *friendServer) IsFriend(ctx context.Context, req *pbFriend.IsFriendReq) } else { isFriend = false } - log.NewInfo("IsFriend rpc ok") + log.NewInfo("IsFriend rpc ok ", pbFriend.IsFriendResp{Response: isFriend}) return &pbFriend.IsFriendResp{Response: isFriend}, nil } func (s *friendServer) GetFriendList(ctx context.Context, req *pbFriend.GetFriendListReq) (*pbFriend.GetFriendListResp, error) { log.NewInfo("GetFriendList args ", req.String()) - var userInfoList []*sdkws.FriendInfo - //Parse token, to find current user information if !token_verify.CheckAccess(req.CommID.OpUserID, req.CommID.FromUserID) { log.NewError(req.CommID.OperationID, "CheckAccess false ", req.CommID.OpUserID, req.CommID.FromUserID) return &pbFriend.GetFriendListResp{ErrCode: constant.ErrAccess.ErrCode, ErrMsg: constant.ErrAccess.ErrMsg}, nil } - friends, err := imdb.GetUserInfoFromFriend(req.CommID.FromUserID) + friends, err := imdb.GetFriendListByUserID(req.CommID.FromUserID) if err != nil { - log.NewError(req.CommID.OperationID, "FindUserInfoFromFriend failed", err.Error(), req.CommID.FromUserID) + log.NewError(req.CommID.OperationID, "FindUserInfoFromFriend failed ", err.Error(), req.CommID.FromUserID) return &pbFriend.GetFriendListResp{ErrCode: constant.ErrDB.ErrCode, ErrMsg: constant.ErrDB.ErrMsg}, nil } + var userInfoList []*sdkws.FriendInfo for _, friendUser := range friends { + var friendUserInfo sdkws.FriendInfo - //find user is in blackList - // err = imdb.GetRelationshipFromBlackList(req.CommID.FromUserID, friendUser.FriendUserID) - //if err == nil { - // friendUserInfo.IsBlack = constant.BlackListFlag - //} else { - // friendUserInfo.IsBlack = 0 - //} - //Find user information - us, err := imdb.GetUserByUserID(friendUser.FriendUserID) - if err != nil { - log.NewError(req.CommID.OperationID, "FindUserByUID failed", err.Error(), friendUser.FriendUserID) - continue - } - utils.CopyStructFields(friendUserInfo.FriendUser, us) - friendUserInfo.Remark = friendUser.Remark - friendUserInfo.OwnerUserID = req.CommID.FromUserID - friendUserInfo.CreateTime = friendUser.CreateTime + utils.CopyStructFields(&friendUserInfo, friendUser) userInfoList = append(userInfoList, &friendUserInfo) } log.NewInfo(req.CommID.OperationID, "rpc GetFriendList ok", pbFriend.GetFriendListResp{FriendInfoList: userInfoList}) return &pbFriend.GetFriendListResp{FriendInfoList: userInfoList}, nil } +//received func (s *friendServer) GetFriendApplyList(ctx context.Context, req *pbFriend.GetFriendApplyListReq) (*pbFriend.GetFriendApplyListResp, error) { log.NewInfo(req.CommID.OperationID, "GetFriendApplyList args ", req.String()) - //Parse token, to find current user information if !token_verify.CheckAccess(req.CommID.OpUserID, req.CommID.FromUserID) { log.NewError(req.CommID.OperationID, "CheckAccess false ", req.CommID.OpUserID, req.CommID.FromUserID) return &pbFriend.GetFriendApplyListResp{ErrCode: constant.ErrAccess.ErrCode, ErrMsg: constant.ErrAccess.ErrMsg}, nil } - // Find the current user friend applications received ApplyUsersInfo, err := imdb.GetReceivedFriendsApplicationListByUserID(req.CommID.FromUserID) if err != nil { - log.NewError(req.CommID.OperationID, "FindFriendsApplyFromFriendReq ", err.Error(), req.CommID.FromUserID) + log.NewError(req.CommID.OperationID, "GetReceivedFriendsApplicationListByUserID ", err.Error(), req.CommID.FromUserID) return &pbFriend.GetFriendApplyListResp{ErrCode: constant.ErrDB.ErrCode, ErrMsg: constant.ErrDB.ErrMsg}, nil } @@ -451,19 +439,19 @@ func (s *friendServer) GetFriendApplyList(ctx context.Context, req *pbFriend.Get func (s *friendServer) GetSelfApplyList(ctx context.Context, req *pbFriend.GetSelfApplyListReq) (*pbFriend.GetSelfApplyListResp, error) { log.NewInfo(req.CommID.OperationID, "GetSelfApplyList args ", req.String()) - var selfApplyOtherUserList []*sdkws.FriendRequest + //Parse token, to find current user information if !token_verify.CheckAccess(req.CommID.OpUserID, req.CommID.FromUserID) { log.NewError(req.CommID.OperationID, "CheckAccess false ", req.CommID.OpUserID, req.CommID.FromUserID) return &pbFriend.GetSelfApplyListResp{ErrCode: constant.ErrAccess.ErrCode, ErrMsg: constant.ErrAccess.ErrMsg}, nil } - // Find the self add other userinfo usersInfo, err := imdb.GetSendFriendApplicationListByUserID(req.CommID.FromUserID) if err != nil { - log.NewError(req.CommID.OperationID, "FindSelfApplyFromFriendReq failed ", err.Error(), req.CommID.FromUserID) + log.NewError(req.CommID.OperationID, "GetSendFriendApplicationListByUserID failed ", err.Error(), req.CommID.FromUserID) return &pbFriend.GetSelfApplyListResp{ErrCode: constant.ErrDB.ErrCode, ErrMsg: constant.ErrDB.ErrMsg}, nil } + var selfApplyOtherUserList []*sdkws.FriendRequest for _, selfApplyOtherUserInfo := range usersInfo { var userInfo sdkws.FriendRequest // pbFriend.ApplyUserInfo utils.CopyStructFields(&userInfo, selfApplyOtherUserInfo) diff --git a/internal/rpc/group/group.go b/internal/rpc/group/group.go index cf36f01ad..53ab002d8 100644 --- a/internal/rpc/group/group.go +++ b/internal/rpc/group/group.go @@ -74,21 +74,22 @@ func (s *groupServer) CreateGroup(ctx context.Context, req *pbGroup.CreateGroupR log.NewError(req.OperationID, "CheckAccess false ", req.OpUserID, req.OwnerUserID) return &pbGroup.CreateGroupResp{ErrCode: constant.ErrAccess.ErrCode, ErrMsg: constant.ErrAccess.ErrMsg}, nil } - var okUserIDList []string + //Time stamp + MD5 to generate group chat id groupId := utils.Md5(strconv.FormatInt(time.Now().UnixNano(), 10)) //to group - groupInfo := imdb.Group{} + groupInfo := imdb.Group{GroupID: groupId} utils.CopyStructFields(&groupInfo, req.GroupInfo) + groupInfo.CreatorUserID = req.OpUserID err := im_mysql_model.InsertIntoGroup(groupInfo) if err != nil { - log.NewError(req.OperationID, "InsertIntoGroup failed, ", err.Error(), groupId, req.GroupInfo.GroupName, req.GroupInfo.Introduction, req.GroupInfo.Notification, req.GroupInfo.FaceUrl, req.GroupInfo.Ex, req.GroupInfo.GroupType) + log.NewError(req.OperationID, "InsertIntoGroup failed, ", err.Error(), groupInfo) return &pbGroup.CreateGroupResp{ErrCode: constant.ErrDB.ErrCode, ErrMsg: constant.ErrDB.ErrMsg}, nil } us, err := imdb.GetUserByUserID(req.OwnerUserID) if err != nil { - log.NewError(req.OperationID, "FindUserByUID failed ", err.Error(), req.OwnerUserID) + log.NewError(req.OperationID, "GetUserByUserID failed ", err.Error(), req.OwnerUserID) return &pbGroup.CreateGroupResp{ErrCode: constant.ErrDB.ErrCode, ErrMsg: constant.ErrDB.ErrMsg}, nil } @@ -97,16 +98,15 @@ func (s *groupServer) CreateGroup(ctx context.Context, req *pbGroup.CreateGroupR utils.CopyStructFields(&groupMember, us) err = im_mysql_model.InsertIntoGroupMember(groupMember) if err != nil { - log.NewError(req.OperationID, "InsertIntoGroupMember failed ", err.Error()) + log.NewError(req.OperationID, "InsertIntoGroupMember failed ", err.Error(), groupMember) return &pbGroup.CreateGroupResp{ErrCode: constant.ErrDB.ErrCode, ErrMsg: constant.ErrDB.ErrMsg}, nil } err = db.DB.AddGroupMember(groupId, req.OwnerUserID) if err != nil { log.NewError(req.OperationID, "AddGroupMember failed ", err.Error(), groupId, req.OwnerUserID) - // return &pbGroup.CreateGroupResp{ErrCode: constant.ErrCreateGroup.ErrCode, ErrMsg: constant.ErrCreateGroup.ErrMsg}, nil } - + var okUserIDList []string //to group member for _, user := range req.InitMemberList { us, err := im_mysql_model.GetUserByUserID(user.UserID) @@ -118,11 +118,14 @@ func (s *groupServer) CreateGroup(ctx context.Context, req *pbGroup.CreateGroupR log.NewError(req.OperationID, "only one owner, failed ", user) continue } + groupMember.RoleLevel = user.RoleLevel utils.CopyStructFields(&groupMember, us) err = im_mysql_model.InsertIntoGroupMember(groupMember) if err != nil { log.NewError(req.OperationID, "InsertIntoGroupMember failed ", err.Error(), groupMember) + continue } + okUserIDList = append(okUserIDList, user.UserID) err = db.DB.AddGroupMember(groupId, user.UserID) if err != nil { @@ -140,6 +143,9 @@ func (s *groupServer) CreateGroup(ctx context.Context, req *pbGroup.CreateGroupR } chat.GroupCreatedNotification(req.OperationID, req.OpUserID, req.OwnerUserID, groupId, okUserIDList) utils.CopyStructFields(resp.GroupInfo, group) + resp.GroupInfo.MemberCount = uint32(imdb.GetGroupMemberNumByGroupID(groupId)) + resp.GroupInfo.OwnerUserID = req.OwnerUserID + log.NewInfo(req.OperationID, "rpc CreateGroup return ", resp.String()) return resp, nil } @@ -167,6 +173,7 @@ func (s *groupServer) GetJoinedGroupList(ctx context.Context, req *pbGroup.GetJo utils.CopyStructFields(&groupNode, group) groupNode.CreateTime = group.CreateTime groupNode.MemberCount = uint32(num) + groupNode.OwnerUserID = owner.UserID resp.GroupList = append(resp.GroupList, &groupNode) } else { log.NewError(req.OperationID, "check nil ", num, owner, err, group) @@ -174,8 +181,7 @@ func (s *groupServer) GetJoinedGroupList(ctx context.Context, req *pbGroup.GetJo } log.NewDebug(req.OperationID, "joinedGroup ", groupNode) } - resp.ErrCode = 0 - log.NewInfo(req.OperationID, "GetJoinedGroupList return ", resp.String()) + log.NewInfo(req.OperationID, "GetJoinedGroupList rpc return ", resp.String()) return &resp, nil } @@ -187,8 +193,8 @@ func (s *groupServer) InviteUserToGroup(ctx context.Context, req *pbGroup.Invite return &pbGroup.InviteUserToGroupResp{ErrCode: constant.ErrAccess.ErrCode, ErrMsg: constant.ErrAccess.ErrMsg}, nil } - groupInfoFromMysql, err := imdb.GetGroupInfoByGroupID(req.GroupID) - if err != nil || groupInfoFromMysql == nil { + _, err := imdb.GetGroupInfoByGroupID(req.GroupID) + if err != nil { log.NewError(req.OperationID, "FindGroupInfoByGroupId failed ", req.GroupID, err) return &pbGroup.InviteUserToGroupResp{ErrCode: constant.ErrAccess.ErrCode, ErrMsg: constant.ErrAccess.ErrMsg}, nil } @@ -202,7 +208,6 @@ func (s *groupServer) InviteUserToGroup(ctx context.Context, req *pbGroup.Invite resultNode.UserID = v resultNode.Result = 0 toUserInfo, err := imdb.GetUserByUserID(v) - if err != nil { log.NewError(req.OperationID, "FindUserByUID failed ", err.Error(), v) resultNode.Result = -1 @@ -244,7 +249,6 @@ func (s *groupServer) InviteUserToGroup(ctx context.Context, req *pbGroup.Invite func (s *groupServer) GetGroupAllMember(ctx context.Context, req *pbGroup.GetGroupAllMemberReq) (*pbGroup.GetGroupAllMemberResp, error) { log.NewInfo(req.OperationID, "GetGroupAllMember, args ", req.String()) var resp pbGroup.GetGroupAllMemberResp - resp.ErrCode = 0 memberList, err := imdb.GetGroupMemberListByGroupID(req.GroupID) if err != nil { resp.ErrCode = constant.ErrDB.ErrCode @@ -252,35 +256,23 @@ func (s *groupServer) GetGroupAllMember(ctx context.Context, req *pbGroup.GetGro log.NewError(req.OperationID, "FindGroupMemberListByGroupId failed,", err.Error(), req.GroupID) return &resp, nil } - m := token_verify.IsMangerUserID(req.OpUserID) - in := false - if m { - in = true - } + for _, v := range memberList { var node open_im_sdk.GroupMemberFullInfo utils.CopyStructFields(node, v) resp.MemberList = append(resp.MemberList, &node) - if !m && req.OpUserID == v.UserID { - in = true - } - } - if !in { - } - resp.ErrCode = 0 + log.NewInfo(req.OperationID, "GetGroupAllMember rpc return ", resp.String()) return &resp, nil } func (s *groupServer) GetGroupMemberList(ctx context.Context, req *pbGroup.GetGroupMemberListReq) (*pbGroup.GetGroupMemberListResp, error) { log.NewInfo(req.OperationID, "GetGroupMemberList, args ", req.String()) - var resp pbGroup.GetGroupMemberListResp - resp.ErrCode = 0 memberList, err := imdb.GetGroupMemberByGroupID(req.GroupID, req.Filter, req.NextSeq, 30) if err != nil { resp.ErrCode = constant.ErrDB.ErrCode - resp.ErrMsg = err.Error() + resp.ErrMsg = constant.ErrDB.ErrMsg log.NewError(req.OperationID, "GetGroupMemberByGroupId failed,", req.GroupID, req.Filter, req.NextSeq, 30) return &resp, nil } @@ -328,7 +320,7 @@ func (s *groupServer) KickGroupMember(ctx context.Context, req *pbGroup.KickGrou } if flag != 1 { - log.NewError(req.OperationID, "failed, no access kick ") + log.NewError(req.OperationID, "failed, no access kick ", req.OpUserID) return &pbGroup.KickGroupMemberResp{ErrCode: constant.ErrAccess.ErrCode, ErrMsg: constant.ErrAccess.ErrMsg}, nil } @@ -369,7 +361,6 @@ func (s *groupServer) KickGroupMember(ctx context.Context, req *pbGroup.KickGrou } } chat.MemberKickedNotification(req, okUserIDList) - resp.ErrCode = 0 log.NewInfo(req.OperationID, "GetGroupMemberList rpc return ", resp.String()) return &resp, nil } 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 0ef118f14..a5e6a5de2 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 @@ -33,7 +33,7 @@ func GetFriendRelationshipFromFriend(OwnerUserID, FriendUserID string) (*Friend, return &friend, err } -func GetUserInfoFromFriend(OwnerUserID string) ([]Friend, error) { +func GetFriendListByUserID(OwnerUserID string) ([]Friend, error) { dbConn, err := db.DB.MysqlDB.DefaultGormDB() if err != nil { return nil, err diff --git a/pkg/common/db/mysql_model/im_mysql_model/friend_request_model.go b/pkg/common/db/mysql_model/im_mysql_model/friend_request_model.go index 735380d0b..dd8164521 100644 --- a/pkg/common/db/mysql_model/im_mysql_model/friend_request_model.go +++ b/pkg/common/db/mysql_model/im_mysql_model/friend_request_model.go @@ -44,14 +44,14 @@ func GetSendFriendApplicationListByUserID(FromUserID string) ([]FriendRequest, e return usersInfo, nil } -//reqId apply to add userId already -func GetFriendApplicationByBothUserID(FromUserId, ToUserID string) (*FriendRequest, error) { +//FromUserId apply to add ToUserID +func GetFriendApplicationByBothUserID(FromUserID, ToUserID string) (*FriendRequest, error) { dbConn, err := db.DB.MysqlDB.DefaultGormDB() if err != nil { return nil, err } var friendRequest FriendRequest - err = dbConn.Table("friend_request").Where("from_user_id=? and to_user_id=?", FromUserId, ToUserID).Find(&friendRequest).Error + err = dbConn.Table("friend_request").Where("from_user_id=? and to_user_id=?", FromUserID, ToUserID).Find(&friendRequest).Error if err != nil { return nil, err } @@ -63,9 +63,22 @@ func UpdateFriendApplication(friendRequest *FriendRequest) error { if err != nil { return err } + friendRequest.CreateTime = time.Now() err = dbConn.Table("friend_request").Where("from_user_id=? and to_user_id=?", friendRequest.FromUserID, friendRequest.ToUserID).Update(&friendRequest).Error if err != nil { return err } return nil } + +func InsertFriendApplication(friendRequest *FriendRequest) error { + dbConn, err := db.DB.MysqlDB.DefaultGormDB() + if err != nil { + return err + } + err = dbConn.Table("friend_request").Create(friendRequest).Error + if err != nil { + return err + } + return nil +} diff --git a/pkg/common/db/mysql_model/im_mysql_model/group_member_model.go b/pkg/common/db/mysql_model/im_mysql_model/group_member_model.go index 0f159abee..5845b5ef5 100644 --- a/pkg/common/db/mysql_model/im_mysql_model/group_member_model.go +++ b/pkg/common/db/mysql_model/im_mysql_model/group_member_model.go @@ -172,7 +172,7 @@ func GetGroupMemberByGroupID(groupID string, filter int32, begin int32, maxNumbe var memberList []GroupMember var err error if filter >= 0 { - memberList, err = GetGroupMemberListByGroupIDAndFilter(groupID, filter) //sorted by join time + memberList, err = GetGroupMemberListByGroupIDAndRoleLevel(groupID, filter) //sorted by join time } else { memberList, err = GetGroupMemberListByGroupID(groupID) } diff --git a/pkg/proto/sdk_ws/ws.proto b/pkg/proto/sdk_ws/ws.proto index 1921ef694..60dfb0ee6 100644 --- a/pkg/proto/sdk_ws/ws.proto +++ b/pkg/proto/sdk_ws/ws.proto @@ -27,7 +27,6 @@ message GroupMemberFullInfo { int64 JoinTime = 4; string NickName = 5; string FaceUrl = 6; - string FriendRemark = 7; int32 AppMangerLevel = 8; //if >0 int32 JoinSource = 9; string OperatorUserID = 10; From c0db257e9bbdfa9d4b6e317158161a06d63c9aea Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Tue, 28 Dec 2021 14:07:06 +0800 Subject: [PATCH 248/814] tidy code --- internal/rpc/friend/firend.go | 4 +- internal/rpc/msg/send_msg.go | 2 +- .../im_mysql_model/group_member_model.go | 4 +- .../im_mysql_model/model_struct.go | 121 +++++- pkg/proto/sdk_ws/ws.pb.go | 365 +++++++++--------- pkg/proto/sdk_ws/ws.proto | 19 +- pkg/utils/utils.go | 82 ++++ 7 files changed, 387 insertions(+), 210 deletions(-) diff --git a/internal/rpc/friend/firend.go b/internal/rpc/friend/firend.go index eff77a572..b18ee0d1b 100644 --- a/internal/rpc/friend/firend.go +++ b/internal/rpc/friend/firend.go @@ -140,7 +140,7 @@ func (s *friendServer) AddFriend(ctx context.Context, req *pbFriend.AddFriendReq } //Establish a latest relationship in the friend request table - friendRequest := imdb.FriendRequest{ReqMessage: req.ReqMsg} + friendRequest := imdb.FriendRequest{ReqMsg: req.ReqMsg} utils.CopyStructFields(&friendRequest, req.CommID) err := imdb.UpdateFriendApplication(&friendRequest) if err != nil { @@ -454,7 +454,7 @@ func (s *friendServer) GetSelfApplyList(ctx context.Context, req *pbFriend.GetSe var selfApplyOtherUserList []*sdkws.FriendRequest for _, selfApplyOtherUserInfo := range usersInfo { var userInfo sdkws.FriendRequest // pbFriend.ApplyUserInfo - utils.CopyStructFields(&userInfo, selfApplyOtherUserInfo) + utils.FriendRequestDBCopyOpenIM(&userInfo, selfApplyOtherUserInfo) selfApplyOtherUserList = append(selfApplyOtherUserList, &userInfo) } log.NewInfo(req.CommID.OperationID, "rpc GetSelfApplyList ok", pbFriend.GetSelfApplyListResp{FriendRequestList: selfApplyOtherUserList}) diff --git a/internal/rpc/msg/send_msg.go b/internal/rpc/msg/send_msg.go index 4643628fb..6242dfee4 100644 --- a/internal/rpc/msg/send_msg.go +++ b/internal/rpc/msg/send_msg.go @@ -311,7 +311,7 @@ func Notification(n *NotificationMsg, onlineUserOnly bool) { func setOpUserInfo(operationID, opUserID, groupID string, groupMemberInfo *open_im_sdk.GroupMemberFullInfo) { if token_verify.IsMangerUserID(opUserID) { - u, err := imdb.FindUserByUID(opUserID) + u, err := imdb.GetUserByUserID(opUserID) if err != nil { log.NewError(operationID, "FindUserByUID failed ", err.Error(), opUserID) return diff --git a/pkg/common/db/mysql_model/im_mysql_model/group_member_model.go b/pkg/common/db/mysql_model/im_mysql_model/group_member_model.go index 5845b5ef5..0601f4a6e 100644 --- a/pkg/common/db/mysql_model/im_mysql_model/group_member_model.go +++ b/pkg/common/db/mysql_model/im_mysql_model/group_member_model.go @@ -118,12 +118,12 @@ func GetOwnerManagerByGroupID(groupID string) ([]GroupMember, error) { return groupMemberList, nil } -func GetGroupMemberNumByGroupID(groupID string) int32 { +func GetGroupMemberNumByGroupID(groupID string) uint32 { dbConn, err := db.DB.MysqlDB.DefaultGormDB() if err != nil { return 0 } - var number int32 + var number uint32 err = dbConn.Table("group_member").Where("group_id=?", groupID).Count(&number).Error if err != nil { return 0 diff --git a/pkg/common/db/mysql_model/im_mysql_model/model_struct.go b/pkg/common/db/mysql_model/im_mysql_model/model_struct.go index f67930e8b..4ee23bfe0 100644 --- a/pkg/common/db/mysql_model/im_mysql_model/model_struct.go +++ b/pkg/common/db/mysql_model/im_mysql_model/model_struct.go @@ -2,21 +2,44 @@ package im_mysql_model import "time" +// +//message FriendInfo{ +//string OwnerUserID = 1; +//string Remark = 2; +//int64 CreateTime = 3; +//UserInfo FriendUser = 4; +//int32 AddSource = 5; +//string OperatorUserID = 6; +//string Ex = 7; +//} +//open_im_sdk.FriendInfo(FriendUser) != imdb.Friend(FriendUserID) type Friend struct { OwnerUserID string `gorm:"column:owner_user_id;primaryKey;"` - FriendUserID string `gorm:"column:friend_user_id;primaryKey;"` Remark string `gorm:"column:remark"` CreateTime time.Time `gorm:"column:create_time"` + FriendUserID string `gorm:"column:friend_user_id;primaryKey;"` AddSource int32 `gorm:"column:add_source"` OperatorUserID string `gorm:"column:operator_user_id"` Ex string `gorm:"column:ex"` } +//message FriendRequest{ +//string FromUserID = 1; +//string ToUserID = 2; +//int32 HandleResult = 3; +//string ReqMsg = 4; +//int64 CreateTime = 5; +//string HandlerUserID = 6; +//string HandleMsg = 7; +//int64 HandleTime = 8; +//string Ex = 9; +//} +//open_im_sdk.FriendRequest == imdb.FriendRequest type FriendRequest struct { FromUserID string `gorm:"column:from_user_id;primaryKey;"` ToUserID string `gorm:"column:to_user_id;primaryKey;"` HandleResult int32 `gorm:"column:handle_result"` - ReqMessage string `gorm:"column:req_message"` + ReqMsg string `gorm:"column:req_msg"` CreateTime time.Time `gorm:"column:create_time"` HandlerUserID string `gorm:"column:handler_user_id"` HandleMsg string `gorm:"column:handle_msg"` @@ -24,12 +47,28 @@ type FriendRequest struct { Ex string `gorm:"column:ex"` } +//message GroupInfo{ +// string GroupID = 1; +// string GroupName = 2; +// string Notification = 3; +// string Introduction = 4; +// string FaceUrl = 5; +// string OwnerUserID = 6; +// uint32 MemberCount = 8; +// int64 CreateTime = 7; +// string Ex = 9; +// int32 Status = 10; +// string CreatorUserID = 11; +// int32 GroupType = 12; +//} +// open_im_sdk.GroupInfo (OwnerUserID , MemberCount )> imdb.Group type Group struct { - GroupID string `gorm:"column:group_id;primaryKey;"` - GroupName string `gorm:"column:name"` - Introduction string `gorm:"column:introduction"` - Notification string `gorm:"column:notification"` - FaceUrl string `gorm:"column:face_url"` + GroupID string `gorm:"column:group_id;primaryKey;"` + GroupName string `gorm:"column:name"` + Notification string `gorm:"column:notification"` + Introduction string `gorm:"column:introduction"` + FaceUrl string `gorm:"column:face_url"` + CreateTime time.Time `gorm:"column:create_time"` Status int32 `gorm:"column:status"` CreatorUserID string `gorm:"column:creator_user_id"` @@ -37,18 +76,41 @@ type Group struct { Ex string `gorm:"column:ex"` } +//message GroupMemberFullInfo { +//string GroupID = 1 ; +//string UserID = 2 ; +//int32 roleLevel = 3; +//int64 JoinTime = 4; +//string NickName = 5; +//string FaceUrl = 6; +//int32 JoinSource = 8; +//string OperatorUserID = 9; +//string Ex = 10; +//int32 AppMangerLevel = 7; //if >0 +//} open_im_sdk.GroupMemberFullInfo(AppMangerLevel) > imdb.GroupMember type GroupMember struct { GroupID string `gorm:"column:group_id;primaryKey;"` UserID string `gorm:"column:user_id;primaryKey;"` - Nickname string `gorm:"column:nickname"` - FaceUrl string `gorm:"user_group_face_url"` RoleLevel int32 `gorm:"column:role_level"` JoinTime time.Time `gorm:"column:join_time"` + Nickname string `gorm:"column:nickname"` + FaceUrl string `gorm:"user_group_face_url"` JoinSource int32 `gorm:"column:join_source"` OperatorUserID string `gorm:"column:operator_user_id"` Ex string `gorm:"column:ex"` } +//message GroupRequest{ +//string UserID = 1; +//string GroupID = 2; +//string HandleResult = 3; +//string ReqMsg = 4; +//string HandleMsg = 5; +//int64 ReqTime = 6; +//string HandleUserID = 7; +//int64 HandleTime = 8; +//string Ex = 9; +//}open_im_sdk.GroupRequest == imdb.GroupRequest type GroupRequest struct { UserID string `gorm:"column:user_id;primaryKey;"` GroupID string `gorm:"column:group_id;primaryKey;"` @@ -61,22 +123,43 @@ type GroupRequest struct { Ex string `gorm:"column:ex"` } +//string UserID = 1; +//string Nickname = 2; +//string FaceUrl = 3; +//int32 Gender = 4; +//string PhoneNumber = 5; +//string Birth = 6; +//string Email = 7; +//string Ex = 8; +//int64 CreateTime = 9; +//int32 AppMangerLevel = 10; +//open_im_sdk.User == imdb.User type User struct { - UserID string `gorm:"column:user_id;primaryKey;"` - Nickname string `gorm:"column:name"` - FaceUrl string `gorm:"column:icon"` - Gender int32 `gorm:"column:gender"` - PhoneNumber string `gorm:"column:phone_number"` - Birth string `gorm:"column:birth"` - Email string `gorm:"column:email"` - Ex string `gorm:"column:ex"` - CreateTime time.Time `gorm:"column:create_time"` + UserID string `gorm:"column:user_id;primaryKey;"` + Nickname string `gorm:"column:name"` + FaceUrl string `gorm:"column:icon"` + Gender int32 `gorm:"column:gender"` + PhoneNumber string `gorm:"column:phone_number"` + Birth string `gorm:"column:birth"` + Email string `gorm:"column:email"` + Ex string `gorm:"column:ex"` + CreateTime time.Time `gorm:"column:create_time"` + AppMangerLevel int32 `gorm:"column:app_manger_level"` } +//message BlackInfo{ +//string OwnerUserID = 1; +//int64 CreateTime = 2; +//PublicUserInfo BlackUserInfo = 4; +//int32 AddSource = 5; +//string OperatorUserID = 6; +//string Ex = 7; +//} +// open_im_sdk.BlackInfo(BlackUserInfo) != imdb.Black (BlockUserID) type Black struct { OwnerUserID string `gorm:"column:owner_user_id;primaryKey;"` - BlockUserID string `gorm:"column:block_user_id;primaryKey;"` CreateTime time.Time `gorm:"column:create_time"` + BlockUserID string `gorm:"column:block_user_id;primaryKey;"` AddSource int32 `gorm:"column:add_source"` OperatorUserID int32 `gorm:"column:operator_user_id"` Ex string `gorm:"column:ex"` diff --git a/pkg/proto/sdk_ws/ws.pb.go b/pkg/proto/sdk_ws/ws.pb.go index e4fa4ca6a..3b087bdde 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_a1fbf2797043d7f3, []int{0} + return fileDescriptor_ws_b7876bd3c094d103, []int{0} } func (m *GroupInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupInfo.Unmarshal(m, b) @@ -151,11 +151,10 @@ type GroupMemberFullInfo struct { JoinTime int64 `protobuf:"varint,4,opt,name=JoinTime" json:"JoinTime,omitempty"` NickName string `protobuf:"bytes,5,opt,name=NickName" json:"NickName,omitempty"` FaceUrl string `protobuf:"bytes,6,opt,name=FaceUrl" json:"FaceUrl,omitempty"` - FriendRemark string `protobuf:"bytes,7,opt,name=FriendRemark" json:"FriendRemark,omitempty"` - AppMangerLevel int32 `protobuf:"varint,8,opt,name=AppMangerLevel" json:"AppMangerLevel,omitempty"` - JoinSource int32 `protobuf:"varint,9,opt,name=JoinSource" json:"JoinSource,omitempty"` - OperatorUserID string `protobuf:"bytes,10,opt,name=OperatorUserID" json:"OperatorUserID,omitempty"` - Ex string `protobuf:"bytes,11,opt,name=Ex" json:"Ex,omitempty"` + AppMangerLevel int32 `protobuf:"varint,7,opt,name=AppMangerLevel" json:"AppMangerLevel,omitempty"` + JoinSource int32 `protobuf:"varint,8,opt,name=JoinSource" json:"JoinSource,omitempty"` + OperatorUserID string `protobuf:"bytes,9,opt,name=OperatorUserID" json:"OperatorUserID,omitempty"` + Ex string `protobuf:"bytes,10,opt,name=Ex" json:"Ex,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -165,7 +164,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_a1fbf2797043d7f3, []int{1} + return fileDescriptor_ws_b7876bd3c094d103, []int{1} } func (m *GroupMemberFullInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupMemberFullInfo.Unmarshal(m, b) @@ -227,13 +226,6 @@ func (m *GroupMemberFullInfo) GetFaceUrl() string { return "" } -func (m *GroupMemberFullInfo) GetFriendRemark() string { - if m != nil { - return m.FriendRemark - } - return "" -} - func (m *GroupMemberFullInfo) GetAppMangerLevel() int32 { if m != nil { return m.AppMangerLevel @@ -277,7 +269,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_a1fbf2797043d7f3, []int{2} + return fileDescriptor_ws_b7876bd3c094d103, []int{2} } func (m *PublicUserInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_PublicUserInfo.Unmarshal(m, b) @@ -341,6 +333,8 @@ type UserInfo struct { Birth string `protobuf:"bytes,6,opt,name=Birth" json:"Birth,omitempty"` Email string `protobuf:"bytes,7,opt,name=Email" json:"Email,omitempty"` Ex string `protobuf:"bytes,8,opt,name=Ex" json:"Ex,omitempty"` + CreateTime int64 `protobuf:"varint,9,opt,name=CreateTime" json:"CreateTime,omitempty"` + AppMangerLevel int32 `protobuf:"varint,10,opt,name=AppMangerLevel" json:"AppMangerLevel,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -350,7 +344,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_a1fbf2797043d7f3, []int{3} + return fileDescriptor_ws_b7876bd3c094d103, []int{3} } func (m *UserInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_UserInfo.Unmarshal(m, b) @@ -426,6 +420,20 @@ func (m *UserInfo) GetEx() string { return "" } +func (m *UserInfo) GetCreateTime() int64 { + if m != nil { + return m.CreateTime + } + return 0 +} + +func (m *UserInfo) GetAppMangerLevel() int32 { + if m != nil { + return m.AppMangerLevel + } + return 0 +} + type FriendInfo struct { OwnerUserID string `protobuf:"bytes,1,opt,name=OwnerUserID" json:"OwnerUserID,omitempty"` Remark string `protobuf:"bytes,2,opt,name=Remark" json:"Remark,omitempty"` @@ -443,7 +451,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_a1fbf2797043d7f3, []int{4} + return fileDescriptor_ws_b7876bd3c094d103, []int{4} } func (m *FriendInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FriendInfo.Unmarshal(m, b) @@ -515,10 +523,10 @@ func (m *FriendInfo) GetEx() string { type BlackInfo struct { OwnerUserID string `protobuf:"bytes,1,opt,name=OwnerUserID" json:"OwnerUserID,omitempty"` CreateTime int64 `protobuf:"varint,2,opt,name=CreateTime" json:"CreateTime,omitempty"` - BlackUserInfo *PublicUserInfo `protobuf:"bytes,4,opt,name=BlackUserInfo" json:"BlackUserInfo,omitempty"` - AddSource int32 `protobuf:"varint,5,opt,name=AddSource" json:"AddSource,omitempty"` - OperatorUserID string `protobuf:"bytes,6,opt,name=OperatorUserID" json:"OperatorUserID,omitempty"` - Ex string `protobuf:"bytes,7,opt,name=Ex" json:"Ex,omitempty"` + BlackUserInfo *PublicUserInfo `protobuf:"bytes,3,opt,name=BlackUserInfo" json:"BlackUserInfo,omitempty"` + AddSource int32 `protobuf:"varint,4,opt,name=AddSource" json:"AddSource,omitempty"` + OperatorUserID string `protobuf:"bytes,5,opt,name=OperatorUserID" json:"OperatorUserID,omitempty"` + Ex string `protobuf:"bytes,6,opt,name=Ex" json:"Ex,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -528,7 +536,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_a1fbf2797043d7f3, []int{5} + return fileDescriptor_ws_b7876bd3c094d103, []int{5} } func (m *BlackInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_BlackInfo.Unmarshal(m, b) @@ -609,7 +617,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_a1fbf2797043d7f3, []int{6} + return fileDescriptor_ws_b7876bd3c094d103, []int{6} } func (m *GroupRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupRequest.Unmarshal(m, b) @@ -711,7 +719,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_a1fbf2797043d7f3, []int{7} + return fileDescriptor_ws_b7876bd3c094d103, []int{7} } func (m *FriendRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FriendRequest.Unmarshal(m, b) @@ -810,7 +818,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_a1fbf2797043d7f3, []int{8} + return fileDescriptor_ws_b7876bd3c094d103, []int{8} } func (m *PullMessageBySeqListResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_PullMessageBySeqListResp.Unmarshal(m, b) @@ -885,7 +893,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_a1fbf2797043d7f3, []int{9} + return fileDescriptor_ws_b7876bd3c094d103, []int{9} } func (m *PullMessageBySeqListReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_PullMessageBySeqListReq.Unmarshal(m, b) @@ -940,7 +948,7 @@ func (m *PullMessageReq) Reset() { *m = PullMessageReq{} } func (m *PullMessageReq) String() string { return proto.CompactTextString(m) } func (*PullMessageReq) ProtoMessage() {} func (*PullMessageReq) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_a1fbf2797043d7f3, []int{10} + return fileDescriptor_ws_b7876bd3c094d103, []int{10} } func (m *PullMessageReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_PullMessageReq.Unmarshal(m, b) @@ -1004,7 +1012,7 @@ func (m *PullMessageResp) Reset() { *m = PullMessageResp{} } func (m *PullMessageResp) String() string { return proto.CompactTextString(m) } func (*PullMessageResp) ProtoMessage() {} func (*PullMessageResp) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_a1fbf2797043d7f3, []int{11} + return fileDescriptor_ws_b7876bd3c094d103, []int{11} } func (m *PullMessageResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_PullMessageResp.Unmarshal(m, b) @@ -1076,7 +1084,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_a1fbf2797043d7f3, []int{12} + return fileDescriptor_ws_b7876bd3c094d103, []int{12} } func (m *GetMaxAndMinSeqReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetMaxAndMinSeqReq.Unmarshal(m, b) @@ -1108,7 +1116,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_a1fbf2797043d7f3, []int{13} + return fileDescriptor_ws_b7876bd3c094d103, []int{13} } func (m *GetMaxAndMinSeqResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetMaxAndMinSeqResp.Unmarshal(m, b) @@ -1156,7 +1164,7 @@ func (m *GatherFormat) Reset() { *m = GatherFormat{} } func (m *GatherFormat) String() string { return proto.CompactTextString(m) } func (*GatherFormat) ProtoMessage() {} func (*GatherFormat) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_a1fbf2797043d7f3, []int{14} + return fileDescriptor_ws_b7876bd3c094d103, []int{14} } func (m *GatherFormat) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GatherFormat.Unmarshal(m, b) @@ -1203,7 +1211,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_a1fbf2797043d7f3, []int{15} + return fileDescriptor_ws_b7876bd3c094d103, []int{15} } func (m *UserSendMsgResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_UserSendMsgResp.Unmarshal(m, b) @@ -1272,7 +1280,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_a1fbf2797043d7f3, []int{16} + return fileDescriptor_ws_b7876bd3c094d103, []int{16} } func (m *MsgData) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MsgData.Unmarshal(m, b) @@ -1433,7 +1441,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_a1fbf2797043d7f3, []int{17} + return fileDescriptor_ws_b7876bd3c094d103, []int{17} } func (m *OfflinePushInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_OfflinePushInfo.Unmarshal(m, b) @@ -1500,7 +1508,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_a1fbf2797043d7f3, []int{18} + return fileDescriptor_ws_b7876bd3c094d103, []int{18} } func (m *TipsComm) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_TipsComm.Unmarshal(m, b) @@ -1549,7 +1557,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_a1fbf2797043d7f3, []int{19} + return fileDescriptor_ws_b7876bd3c094d103, []int{19} } func (m *MemberEnterTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MemberEnterTips.Unmarshal(m, b) @@ -1604,7 +1612,7 @@ func (m *MemberLeaveTips) Reset() { *m = MemberLeaveTips{} } func (m *MemberLeaveTips) String() string { return proto.CompactTextString(m) } func (*MemberLeaveTips) ProtoMessage() {} func (*MemberLeaveTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_a1fbf2797043d7f3, []int{20} + return fileDescriptor_ws_b7876bd3c094d103, []int{20} } func (m *MemberLeaveTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MemberLeaveTips.Unmarshal(m, b) @@ -1659,7 +1667,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_a1fbf2797043d7f3, []int{21} + return fileDescriptor_ws_b7876bd3c094d103, []int{21} } func (m *MemberInvitedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MemberInvitedTips.Unmarshal(m, b) @@ -1721,7 +1729,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_a1fbf2797043d7f3, []int{22} + return fileDescriptor_ws_b7876bd3c094d103, []int{22} } func (m *MemberKickedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MemberKickedTips.Unmarshal(m, b) @@ -1784,7 +1792,7 @@ func (m *MemberInfoChangedTips) Reset() { *m = MemberInfoChangedTips{} } func (m *MemberInfoChangedTips) String() string { return proto.CompactTextString(m) } func (*MemberInfoChangedTips) ProtoMessage() {} func (*MemberInfoChangedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_a1fbf2797043d7f3, []int{23} + return fileDescriptor_ws_b7876bd3c094d103, []int{23} } func (m *MemberInfoChangedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MemberInfoChangedTips.Unmarshal(m, b) @@ -1853,7 +1861,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_a1fbf2797043d7f3, []int{24} + return fileDescriptor_ws_b7876bd3c094d103, []int{24} } func (m *GroupCreatedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupCreatedTips.Unmarshal(m, b) @@ -1914,7 +1922,7 @@ func (m *GroupInfoChangedTips) Reset() { *m = GroupInfoChangedTips{} } func (m *GroupInfoChangedTips) String() string { return proto.CompactTextString(m) } func (*GroupInfoChangedTips) ProtoMessage() {} func (*GroupInfoChangedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_a1fbf2797043d7f3, []int{25} + return fileDescriptor_ws_b7876bd3c094d103, []int{25} } func (m *GroupInfoChangedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupInfoChangedTips.Unmarshal(m, b) @@ -1968,7 +1976,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_a1fbf2797043d7f3, []int{26} + return fileDescriptor_ws_b7876bd3c094d103, []int{26} } func (m *JoinGroupApplicationTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_JoinGroupApplicationTips.Unmarshal(m, b) @@ -2023,7 +2031,7 @@ func (m *ApplicationProcessedTips) Reset() { *m = ApplicationProcessedTi func (m *ApplicationProcessedTips) String() string { return proto.CompactTextString(m) } func (*ApplicationProcessedTips) ProtoMessage() {} func (*ApplicationProcessedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_a1fbf2797043d7f3, []int{27} + return fileDescriptor_ws_b7876bd3c094d103, []int{27} } func (m *ApplicationProcessedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ApplicationProcessedTips.Unmarshal(m, b) @@ -2084,7 +2092,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_a1fbf2797043d7f3, []int{28} + return fileDescriptor_ws_b7876bd3c094d103, []int{28} } func (m *FriendApplication) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FriendApplication.Unmarshal(m, b) @@ -2137,7 +2145,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_a1fbf2797043d7f3, []int{29} + return fileDescriptor_ws_b7876bd3c094d103, []int{29} } func (m *FromToUserID) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FromToUserID.Unmarshal(m, b) @@ -2183,7 +2191,7 @@ func (m *FriendApplicationAddedTips) Reset() { *m = FriendApplicationAdd func (m *FriendApplicationAddedTips) String() string { return proto.CompactTextString(m) } func (*FriendApplicationAddedTips) ProtoMessage() {} func (*FriendApplicationAddedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_a1fbf2797043d7f3, []int{30} + return fileDescriptor_ws_b7876bd3c094d103, []int{30} } func (m *FriendApplicationAddedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FriendApplicationAddedTips.Unmarshal(m, b) @@ -2222,7 +2230,7 @@ func (m *FriendApplicationProcessedTips) Reset() { *m = FriendApplicatio func (m *FriendApplicationProcessedTips) String() string { return proto.CompactTextString(m) } func (*FriendApplicationProcessedTips) ProtoMessage() {} func (*FriendApplicationProcessedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_a1fbf2797043d7f3, []int{31} + return fileDescriptor_ws_b7876bd3c094d103, []int{31} } func (m *FriendApplicationProcessedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FriendApplicationProcessedTips.Unmarshal(m, b) @@ -2263,7 +2271,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_a1fbf2797043d7f3, []int{32} + return fileDescriptor_ws_b7876bd3c094d103, []int{32} } func (m *FriendAddedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FriendAddedTips.Unmarshal(m, b) @@ -2316,7 +2324,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_a1fbf2797043d7f3, []int{33} + return fileDescriptor_ws_b7876bd3c094d103, []int{33} } func (m *FriendDeletedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FriendDeletedTips.Unmarshal(m, b) @@ -2354,7 +2362,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_a1fbf2797043d7f3, []int{34} + return fileDescriptor_ws_b7876bd3c094d103, []int{34} } func (m *BlackAddedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_BlackAddedTips.Unmarshal(m, b) @@ -2392,7 +2400,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_a1fbf2797043d7f3, []int{35} + return fileDescriptor_ws_b7876bd3c094d103, []int{35} } func (m *BlackDeletedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_BlackDeletedTips.Unmarshal(m, b) @@ -2430,7 +2438,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_a1fbf2797043d7f3, []int{36} + return fileDescriptor_ws_b7876bd3c094d103, []int{36} } func (m *FriendInfoChangedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FriendInfoChangedTips.Unmarshal(m, b) @@ -2469,7 +2477,7 @@ func (m *SelfInfoUpdatedTips) Reset() { *m = SelfInfoUpdatedTips{} } func (m *SelfInfoUpdatedTips) String() string { return proto.CompactTextString(m) } func (*SelfInfoUpdatedTips) ProtoMessage() {} func (*SelfInfoUpdatedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_a1fbf2797043d7f3, []int{37} + return fileDescriptor_ws_b7876bd3c094d103, []int{37} } func (m *SelfInfoUpdatedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SelfInfoUpdatedTips.Unmarshal(m, b) @@ -2538,128 +2546,129 @@ func init() { proto.RegisterType((*SelfInfoUpdatedTips)(nil), "open_im_sdk.SelfInfoUpdatedTips") } -func init() { proto.RegisterFile("sdk_ws/ws.proto", fileDescriptor_ws_a1fbf2797043d7f3) } - -var fileDescriptor_ws_a1fbf2797043d7f3 = []byte{ - // 1916 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe4, 0x59, 0x4f, 0x8f, 0x1b, 0x49, - 0x15, 0x57, 0xb7, 0xc7, 0x1e, 0xcf, 0xb3, 0x67, 0x3c, 0xe9, 0x24, 0xb3, 0x4d, 0x58, 0x45, 0xa6, - 0xb5, 0x42, 0x23, 0x04, 0x59, 0x29, 0x2b, 0xa4, 0x25, 0x68, 0x81, 0xf9, 0x9b, 0x3f, 0xc4, 0xf1, - 0xd0, 0x9e, 0xc0, 0x81, 0x43, 0xd4, 0x71, 0x97, 0x3d, 0x2d, 0xb7, 0xab, 0xed, 0xae, 0xee, 0x49, - 0x72, 0xe1, 0xcc, 0x17, 0xe0, 0xb4, 0x02, 0x71, 0x43, 0x5c, 0x39, 0xf0, 0x31, 0xf8, 0x02, 0x5c, - 0x11, 0x07, 0x24, 0x4e, 0x88, 0x13, 0x1c, 0xd0, 0x7b, 0x55, 0xdd, 0x5d, 0x65, 0x3b, 0x59, 0x4f, - 0x12, 0x72, 0xd9, 0x9b, 0xdf, 0xaf, 0xdf, 0x7b, 0xf5, 0xfe, 0xd5, 0xab, 0x57, 0x65, 0xe8, 0x88, - 0x70, 0xf2, 0xec, 0x85, 0xf8, 0xf4, 0x85, 0xb8, 0x33, 0x4b, 0x93, 0x2c, 0x71, 0x5a, 0xc9, 0x8c, - 0xf1, 0x67, 0xd1, 0xf4, 0x99, 0x08, 0x27, 0xde, 0xbf, 0x6d, 0xd8, 0xba, 0x9f, 0x26, 0xf9, 0xec, - 0x21, 0x1f, 0x25, 0x8e, 0x0b, 0x9b, 0x92, 0x38, 0x76, 0xad, 0xae, 0xb5, 0xbf, 0xe5, 0x17, 0xa4, - 0xf3, 0xb1, 0x62, 0x7b, 0x12, 0x4c, 0x99, 0x6b, 0xd3, 0xb7, 0x0a, 0x70, 0x3c, 0x68, 0x3f, 0x49, - 0xb2, 0x68, 0x14, 0x0d, 0x83, 0x2c, 0x4a, 0xb8, 0x5b, 0x23, 0x06, 0x03, 0x43, 0x9e, 0x87, 0x3c, - 0x4b, 0x93, 0x30, 0x1f, 0x12, 0xcf, 0x86, 0xe4, 0xd1, 0x31, 0x5c, 0xff, 0x34, 0x18, 0xb2, 0xa7, - 0x69, 0xec, 0xd6, 0xe5, 0xfa, 0x8a, 0x74, 0xba, 0xd0, 0xea, 0xbf, 0xe0, 0x2c, 0x7d, 0x2a, 0x58, - 0xfa, 0xf0, 0xd8, 0x6d, 0xd0, 0x57, 0x1d, 0x72, 0x6e, 0x03, 0x1c, 0xa5, 0x2c, 0xc8, 0xd8, 0x79, - 0x34, 0x65, 0xee, 0x66, 0xd7, 0xda, 0xaf, 0xf9, 0x1a, 0x82, 0x1a, 0x7a, 0x6c, 0xfa, 0x9c, 0xa5, - 0x47, 0x49, 0xce, 0x33, 0xb7, 0xd9, 0xb5, 0xf6, 0xb7, 0x7d, 0x1d, 0x72, 0x76, 0xc0, 0x3e, 0x79, - 0xe9, 0x6e, 0x91, 0x6a, 0xfb, 0xe4, 0xa5, 0xb3, 0x07, 0x8d, 0x41, 0x16, 0x64, 0xb9, 0x70, 0xa1, - 0x6b, 0xed, 0xd7, 0x7d, 0x45, 0x39, 0x9f, 0xc0, 0x36, 0xe9, 0x4d, 0x0a, 0x6b, 0x5a, 0x24, 0x62, - 0x82, 0x65, 0xc4, 0xce, 0x5f, 0xcd, 0x98, 0xdb, 0x26, 0x05, 0x15, 0xe0, 0xfd, 0xd5, 0x86, 0xeb, - 0x44, 0x49, 0x03, 0x4e, 0xf3, 0x38, 0xfe, 0x8a, 0x0c, 0xec, 0x41, 0x43, 0x2d, 0x27, 0xc3, 0xdf, - 0xa8, 0xd6, 0x49, 0x93, 0x98, 0x3d, 0x66, 0x97, 0x2c, 0xa6, 0xc0, 0xd7, 0xfd, 0x0a, 0x70, 0x6e, - 0x41, 0xf3, 0x51, 0x12, 0x71, 0x8a, 0xc9, 0x06, 0xc5, 0xa4, 0xa4, 0xf1, 0xdb, 0x93, 0x68, 0x38, - 0xa1, 0x94, 0xca, 0x70, 0x97, 0xb4, 0x9e, 0x89, 0x86, 0x99, 0x09, 0x0f, 0xda, 0xa7, 0x69, 0xc4, - 0x78, 0xe8, 0xb3, 0x69, 0x90, 0x4e, 0x28, 0xd2, 0x5b, 0xbe, 0x81, 0x39, 0xdf, 0x86, 0x9d, 0x83, - 0xd9, 0xac, 0x17, 0xf0, 0x31, 0x4b, 0xa5, 0x61, 0x4d, 0x32, 0x6c, 0x01, 0xc5, 0x9c, 0xa1, 0x35, - 0x83, 0x24, 0x4f, 0x87, 0x8c, 0x22, 0x5f, 0xf7, 0x35, 0x04, 0xf5, 0xf4, 0x67, 0x2c, 0xd5, 0x42, - 0x0d, 0xb4, 0xda, 0x02, 0xaa, 0x32, 0xd7, 0x2a, 0x32, 0xe7, 0xfd, 0xce, 0x82, 0x9d, 0xb3, 0xfc, - 0x79, 0x1c, 0x0d, 0x89, 0x01, 0x03, 0x5b, 0x85, 0xcf, 0x32, 0xc2, 0xa7, 0x82, 0xc0, 0xab, 0xba, - 0x2e, 0x69, 0x3d, 0x08, 0x35, 0x33, 0x08, 0x7b, 0xd0, 0xb8, 0xcf, 0x78, 0xc8, 0x52, 0x0a, 0x6a, - 0xdd, 0x57, 0xd4, 0x0a, 0xc7, 0xeb, 0xab, 0x1c, 0xf7, 0xfe, 0x62, 0x41, 0xf3, 0x03, 0x9b, 0xd6, - 0x85, 0xd6, 0xd9, 0x45, 0xc2, 0xd9, 0x93, 0x1c, 0x0b, 0x4e, 0x25, 0x5c, 0x87, 0x9c, 0x1b, 0x50, - 0x3f, 0x8c, 0xd2, 0xec, 0x42, 0x65, 0x5c, 0x12, 0x88, 0x9e, 0x4c, 0x83, 0x28, 0x56, 0x89, 0x96, - 0x84, 0x8a, 0x78, 0xb3, 0x8c, 0xf8, 0xbf, 0x2c, 0x00, 0x59, 0x02, 0xe4, 0xd2, 0xc2, 0x76, 0xb5, - 0x96, 0xb7, 0xeb, 0x1e, 0x34, 0x54, 0x01, 0xa9, 0x72, 0x56, 0xa5, 0x63, 0x6e, 0xe3, 0xda, 0xd2, - 0x36, 0xfe, 0x7e, 0xb1, 0x0e, 0xea, 0x21, 0x17, 0x5b, 0x77, 0x6f, 0xde, 0xd1, 0x5a, 0xda, 0x9d, - 0x22, 0xae, 0xbe, 0xc6, 0x88, 0xbb, 0xe4, 0x20, 0x0c, 0x55, 0xa1, 0xc9, 0x9c, 0x54, 0xc0, 0x8a, - 0x3a, 0x6b, 0xbc, 0xa1, 0xce, 0x36, 0x4b, 0xaf, 0xff, 0x6e, 0xc1, 0xd6, 0x61, 0x1c, 0x0c, 0x27, - 0x6b, 0x3a, 0x6d, 0x3a, 0x67, 0x2f, 0x39, 0x77, 0x00, 0xdb, 0xa4, 0xae, 0x70, 0x41, 0xf9, 0xf7, - 0x4d, 0xc3, 0x3f, 0xb3, 0xb0, 0x7d, 0x53, 0xe2, 0xff, 0xe4, 0xe8, 0xaf, 0x6d, 0x68, 0x53, 0x23, - 0xf2, 0xd9, 0x3c, 0x67, 0x22, 0x7b, 0x6d, 0xcd, 0x6a, 0xfd, 0xcb, 0x36, 0xfb, 0x97, 0x07, 0xed, - 0x07, 0x01, 0x0f, 0x63, 0xe6, 0x33, 0x91, 0xc7, 0x59, 0x71, 0x46, 0xe8, 0x98, 0x2c, 0x8a, 0x79, - 0x4f, 0x8c, 0xd5, 0xe9, 0xa0, 0x28, 0x74, 0x4a, 0xf2, 0xe1, 0x27, 0x59, 0xb9, 0x15, 0x80, 0x6b, - 0xfa, 0x6c, 0x4e, 0x21, 0x6d, 0x50, 0x48, 0x0b, 0xb2, 0x5a, 0x53, 0xd9, 0xba, 0xa9, 0xaf, 0x59, - 0xe5, 0x44, 0xd2, 0xa4, 0xa0, 0x29, 0x73, 0x52, 0x21, 0x8b, 0xa7, 0x82, 0xf7, 0xa5, 0x0d, 0xdb, - 0x45, 0xb3, 0x93, 0xb1, 0xb8, 0x8d, 0x25, 0x99, 0x4c, 0x8d, 0x78, 0x68, 0x08, 0xee, 0xe3, 0xf3, - 0xc4, 0xe8, 0xdd, 0x25, 0xbd, 0x32, 0x2a, 0xf5, 0x35, 0xa3, 0x62, 0x56, 0x53, 0x7d, 0xa9, 0x9a, - 0x3e, 0x81, 0x6d, 0xa9, 0xc7, 0xcc, 0xb5, 0x09, 0x9a, 0xb1, 0xdd, 0x5c, 0x8c, 0xed, 0x55, 0xa3, - 0xf3, 0x5f, 0x0b, 0xdc, 0xb3, 0x3c, 0x8e, 0x7b, 0x4c, 0x88, 0x60, 0xcc, 0x0e, 0x5f, 0x0d, 0xd8, - 0xfc, 0x71, 0x24, 0x32, 0x9f, 0x89, 0x19, 0x26, 0x8a, 0xa5, 0xe9, 0x51, 0x12, 0x32, 0x8a, 0x52, - 0xdd, 0x2f, 0x48, 0x74, 0x91, 0xa5, 0x29, 0x5a, 0xa0, 0xba, 0x81, 0xa4, 0x10, 0x9f, 0x06, 0x2f, - 0x07, 0x6c, 0xae, 0x3a, 0x81, 0xa2, 0x08, 0x8f, 0x38, 0xe2, 0x1b, 0x0a, 0x27, 0xca, 0xf9, 0x31, - 0x6c, 0x8b, 0x88, 0x8f, 0x65, 0x72, 0x65, 0xb1, 0xd4, 0xf6, 0x5b, 0x77, 0xbf, 0x61, 0x6c, 0xa0, - 0xfb, 0x41, 0x76, 0xc1, 0xd2, 0xd3, 0x24, 0x9d, 0x06, 0x99, 0x6f, 0xf2, 0x3b, 0x5f, 0x40, 0x7b, - 0x8c, 0x05, 0x5b, 0xc8, 0x37, 0xbe, 0x4a, 0xde, 0x60, 0xf7, 0xa6, 0xf0, 0xd1, 0x6a, 0xef, 0xc9, - 0xe4, 0xdc, 0xd8, 0x31, 0x92, 0xc2, 0xae, 0x91, 0xd0, 0xe6, 0x8b, 0x12, 0x5e, 0x16, 0x88, 0x0e, - 0x61, 0xd8, 0x84, 0xd4, 0xe3, 0xd6, 0xba, 0x35, 0xac, 0x6f, 0x45, 0x7a, 0xbf, 0xc2, 0x63, 0xae, - 0x5c, 0xee, 0x4d, 0xab, 0xdc, 0x82, 0xa6, 0x60, 0xf3, 0x43, 0x36, 0x8e, 0xb8, 0xea, 0x3b, 0x25, - 0x8d, 0x32, 0x82, 0xcd, 0x4f, 0x78, 0x58, 0x04, 0x59, 0x52, 0x8b, 0x96, 0x6d, 0x2c, 0x59, 0x86, - 0x5d, 0xbf, 0x63, 0x18, 0xf0, 0xb5, 0x48, 0xf2, 0x0d, 0x70, 0xee, 0xb3, 0xac, 0x17, 0xbc, 0x3c, - 0xe0, 0x61, 0x8f, 0x4c, 0xf2, 0xd9, 0xdc, 0x3b, 0x81, 0xeb, 0x4b, 0xa8, 0x98, 0x69, 0xce, 0x59, - 0xaf, 0x71, 0xce, 0xd6, 0x9d, 0xf3, 0x1e, 0x40, 0x5b, 0x5f, 0x1a, 0x37, 0x58, 0x14, 0xaa, 0x64, - 0xda, 0x51, 0xe8, 0xec, 0xc3, 0x46, 0x8c, 0x95, 0x60, 0x93, 0xcd, 0x37, 0x0c, 0x9b, 0x7b, 0x62, - 0x7c, 0x1c, 0x64, 0x81, 0x4f, 0x1c, 0xde, 0x1c, 0x3a, 0x68, 0xf1, 0x80, 0xf1, 0xb0, 0x27, 0xc6, - 0x64, 0x4c, 0x17, 0x5a, 0x03, 0x96, 0x5e, 0x92, 0x1b, 0xd5, 0x09, 0xa5, 0x41, 0xc8, 0x71, 0x14, - 0x47, 0x8c, 0x67, 0x92, 0x43, 0x55, 0xa3, 0x06, 0xc9, 0x4a, 0xe2, 0xa1, 0x76, 0x3c, 0x97, 0xb4, - 0xf7, 0xe7, 0x3a, 0x6c, 0x2a, 0x23, 0x64, 0x55, 0xf1, 0xb0, 0xaa, 0x44, 0x49, 0x21, 0x9e, 0xb2, - 0xe1, 0x65, 0x35, 0xc7, 0x4a, 0x0a, 0xeb, 0x66, 0xac, 0x4e, 0x0e, 0x35, 0xd1, 0x28, 0x12, 0x6d, - 0x1a, 0x6a, 0x36, 0xa9, 0x3a, 0xd4, 0x20, 0xe4, 0x10, 0x9a, 0x5f, 0x6a, 0xb6, 0xd1, 0x20, 0xe7, - 0x3b, 0xb0, 0x2b, 0x68, 0x0e, 0x3a, 0x8b, 0x83, 0x6c, 0x94, 0xa4, 0x53, 0xd5, 0x0e, 0xeb, 0xfe, - 0x12, 0x8e, 0x87, 0xa4, 0xc4, 0xca, 0xe9, 0x4b, 0xb6, 0xc5, 0x05, 0x14, 0xfb, 0xab, 0x44, 0x68, - 0xf4, 0xf2, 0x1f, 0xab, 0x71, 0xc8, 0x04, 0xa5, 0x6d, 0x42, 0x44, 0x09, 0xa7, 0x9b, 0x80, 0x1c, - 0x72, 0x75, 0x08, 0x3d, 0x9f, 0x8a, 0x31, 0x1e, 0x18, 0xea, 0xa2, 0x51, 0x90, 0xe4, 0x79, 0xc2, - 0x33, 0xc6, 0x33, 0x92, 0x6d, 0x49, 0x59, 0x0d, 0x42, 0x59, 0x45, 0xd2, 0x1d, 0xa3, 0xed, 0x17, - 0x24, 0xf6, 0xf5, 0x51, 0x92, 0x0e, 0x19, 0xf5, 0x8d, 0xed, 0x6e, 0x0d, 0xfb, 0x7a, 0x09, 0x38, - 0xbb, 0x50, 0x13, 0x6c, 0xee, 0xee, 0x50, 0x02, 0xf1, 0xa7, 0x91, 0xd7, 0x8e, 0x99, 0x57, 0x3c, - 0x05, 0x86, 0xd5, 0x49, 0xb3, 0x2b, 0x4f, 0x81, 0x0a, 0x71, 0x7e, 0x08, 0x9b, 0xfd, 0x19, 0xf6, - 0x04, 0xe1, 0x5e, 0xa3, 0xba, 0xfc, 0xd6, 0xaa, 0xba, 0xbc, 0xa3, 0x78, 0x4e, 0x78, 0x96, 0xbe, - 0xf2, 0x0b, 0x09, 0xe7, 0x14, 0x3a, 0xc9, 0x68, 0x14, 0x47, 0x9c, 0x9d, 0xe5, 0xe2, 0x82, 0xc6, - 0x1e, 0x87, 0xc6, 0x9e, 0x8f, 0x0d, 0x25, 0x7d, 0x93, 0xc7, 0x5f, 0x14, 0xba, 0x75, 0x0f, 0xda, - 0xfa, 0x02, 0xe8, 0xe2, 0x84, 0xbd, 0x52, 0xd5, 0x87, 0x3f, 0x71, 0x94, 0xbd, 0x0c, 0xe2, 0x5c, - 0x4e, 0x5e, 0x4d, 0x5f, 0x12, 0xf7, 0xec, 0xcf, 0x2d, 0xef, 0x37, 0x16, 0x74, 0x16, 0x16, 0x40, - 0xee, 0xf3, 0x28, 0x8b, 0x99, 0xd2, 0x20, 0x09, 0xc7, 0x81, 0x8d, 0x63, 0x26, 0x86, 0xaa, 0x78, - 0xe9, 0xb7, 0x3a, 0x04, 0x6b, 0xe5, 0xc5, 0xd1, 0x83, 0x76, 0xd4, 0x1f, 0xa0, 0xa2, 0x41, 0x92, - 0xf3, 0xb0, 0xb8, 0xea, 0xea, 0x18, 0x16, 0x4f, 0xd4, 0x1f, 0x1c, 0x06, 0xe1, 0x98, 0xc9, 0x0b, - 0x69, 0x9d, 0x6c, 0x32, 0x41, 0xef, 0x18, 0x9a, 0xe7, 0xd1, 0x4c, 0x1c, 0x25, 0xd3, 0x29, 0x6e, - 0x9c, 0x63, 0x96, 0xe1, 0x24, 0x6e, 0x51, 0xa6, 0x15, 0x85, 0x45, 0x72, 0xcc, 0x46, 0x41, 0x1e, - 0x67, 0xc8, 0x5a, 0x6c, 0x59, 0x0d, 0xf2, 0xfe, 0x68, 0x41, 0x47, 0xde, 0x33, 0x4f, 0x78, 0xc6, - 0x52, 0xc4, 0x9c, 0xef, 0x42, 0x9d, 0x26, 0x33, 0x52, 0xd6, 0xba, 0xbb, 0x67, 0x36, 0xbf, 0xe2, - 0x45, 0xc0, 0x97, 0x4c, 0xce, 0x21, 0xb4, 0x30, 0xa8, 0x01, 0xcf, 0x68, 0xec, 0xb6, 0x49, 0xa6, - 0xbb, 0x2c, 0x63, 0xde, 0x66, 0x7d, 0x5d, 0x08, 0x3d, 0xee, 0x17, 0x67, 0x87, 0xd6, 0x3d, 0x4c, - 0xd0, 0xfb, 0x43, 0x69, 0xeb, 0x63, 0x16, 0x5c, 0xb2, 0xb7, 0xb0, 0xf5, 0x27, 0x00, 0x24, 0x9a, - 0x5e, 0xc9, 0x54, 0x4d, 0x66, 0x4d, 0x4b, 0xff, 0x69, 0xc1, 0x35, 0xa9, 0xe4, 0x21, 0xbf, 0x8c, - 0x32, 0x16, 0xbe, 0x85, 0xad, 0x9f, 0x43, 0xa3, 0x3f, 0xbb, 0x92, 0x9d, 0x8a, 0xdf, 0x79, 0x04, - 0x1d, 0xb5, 0x2c, 0x92, 0xe5, 0x70, 0xb0, 0x8e, 0x8a, 0x45, 0xc1, 0x65, 0x7f, 0x37, 0x56, 0xf9, - 0xfb, 0x0f, 0x0b, 0x76, 0xa5, 0xa6, 0x9f, 0x46, 0xc3, 0xc9, 0x07, 0x76, 0xf7, 0x01, 0xec, 0xc8, - 0x55, 0xaf, 0xec, 0xed, 0x82, 0xdc, 0x9a, 0xce, 0xfe, 0xc7, 0x82, 0x9b, 0x45, 0x72, 0x47, 0xc9, - 0xd1, 0x05, 0xde, 0xdd, 0xa5, 0xc7, 0x38, 0x75, 0x13, 0x49, 0x2d, 0x59, 0x8e, 0x38, 0x1a, 0xf2, - 0x0e, 0x3e, 0xfe, 0x08, 0xb6, 0x4e, 0x23, 0x1e, 0x10, 0x48, 0x25, 0xb7, 0x8e, 0x70, 0x25, 0x82, - 0x1d, 0xbc, 0x97, 0xab, 0x1e, 0xad, 0xde, 0x7a, 0x0a, 0xba, 0xca, 0x53, 0x7d, 0x8d, 0x3c, 0x79, - 0x7f, 0xb3, 0x60, 0x97, 0x7e, 0xc9, 0xdb, 0xc4, 0xdb, 0xa4, 0xfa, 0x1e, 0x6c, 0xaa, 0xf7, 0xb0, - 0xb5, 0xe3, 0x50, 0x08, 0xe0, 0x0e, 0x56, 0x2d, 0xe0, 0x2a, 0x89, 0xd6, 0x64, 0xd6, 0x4c, 0xf2, - 0xef, 0x2d, 0xb8, 0x51, 0x1a, 0xae, 0xe7, 0x18, 0xa7, 0x20, 0x45, 0x56, 0x49, 0xd6, 0xa1, 0x2a, - 0x18, 0xf6, 0xd5, 0xea, 0xbe, 0x76, 0xb5, 0x9a, 0xf0, 0xbe, 0xb4, 0xc0, 0x7d, 0x94, 0x44, 0x9c, - 0x78, 0x0e, 0x66, 0xb3, 0x58, 0x3d, 0xa7, 0xbe, 0x45, 0x46, 0x7e, 0x00, 0x5b, 0x4a, 0x01, 0xcf, - 0x94, 0xd9, 0x6f, 0x7c, 0x58, 0xa8, 0xb8, 0xe5, 0x0d, 0x34, 0x10, 0xe5, 0xcb, 0xae, 0xa2, 0xbc, - 0x3f, 0x59, 0xe0, 0x6a, 0x46, 0x9d, 0xa5, 0xc9, 0x90, 0x09, 0xf1, 0x81, 0x5b, 0x03, 0x19, 0xa7, - 0x5d, 0x9e, 0x1b, 0xfa, 0xb5, 0x99, 0x8c, 0xde, 0x30, 0x8c, 0x9e, 0xc0, 0x35, 0x79, 0x7f, 0xd7, - 0x2c, 0xc7, 0x39, 0xea, 0x20, 0x94, 0xc3, 0x8f, 0x9c, 0xd3, 0x0b, 0xd2, 0x7c, 0x50, 0x51, 0x2f, - 0xdf, 0xd5, 0x83, 0xca, 0x6d, 0x80, 0x83, 0x30, 0xfc, 0x45, 0x92, 0x86, 0x11, 0x1f, 0xab, 0xe8, - 0x68, 0x88, 0xf7, 0x08, 0xda, 0x38, 0xc9, 0x95, 0xf7, 0xfd, 0x77, 0x78, 0x2b, 0xf0, 0x7e, 0x09, - 0xb7, 0x96, 0x0c, 0x3f, 0x08, 0x43, 0x15, 0xee, 0x2f, 0xcc, 0x95, 0x54, 0xd4, 0xcd, 0x4b, 0x8d, - 0xce, 0xe0, 0x1b, 0xec, 0xde, 0x33, 0xb8, 0xbd, 0xa4, 0xdc, 0xcc, 0xe7, 0x3b, 0x2e, 0xf0, 0x5b, - 0x0b, 0x3a, 0x6a, 0x85, 0xd2, 0xe6, 0x4f, 0xa1, 0x21, 0x21, 0xa5, 0xec, 0xa3, 0x05, 0x65, 0xc5, - 0x7b, 0xa2, 0xaf, 0xd8, 0x96, 0xf7, 0xb5, 0xbd, 0x62, 0x5f, 0x3b, 0x9f, 0x2d, 0x6c, 0xb7, 0x37, - 0x96, 0x79, 0xb1, 0xd3, 0xfc, 0xa2, 0x2c, 0x8e, 0x59, 0xcc, 0xb2, 0xf7, 0xe3, 0x73, 0x1f, 0x76, - 0xe8, 0x75, 0xee, 0xbd, 0x65, 0xe9, 0x67, 0xb0, 0x4b, 0x0a, 0xdf, 0xa3, 0x8d, 0x3f, 0x87, 0x9b, - 0x55, 0xa0, 0xf5, 0x26, 0xf8, 0x8e, 0x7a, 0xbf, 0x07, 0xd7, 0x07, 0x2c, 0x1e, 0xa1, 0xd6, 0xa7, - 0xb3, 0xb0, 0x3c, 0x45, 0x5e, 0xf3, 0x70, 0xf8, 0xbc, 0x41, 0x7f, 0x4e, 0x7d, 0xf6, 0xbf, 0x00, - 0x00, 0x00, 0xff, 0xff, 0x1c, 0xbd, 0xfd, 0xa5, 0xaf, 0x1a, 0x00, 0x00, +func init() { proto.RegisterFile("sdk_ws/ws.proto", fileDescriptor_ws_b7876bd3c094d103) } + +var fileDescriptor_ws_b7876bd3c094d103 = []byte{ + // 1922 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe4, 0x59, 0xcd, 0x8f, 0x1b, 0x49, + 0x15, 0x57, 0xb7, 0xdd, 0xfe, 0x78, 0xf6, 0x8c, 0x27, 0x9d, 0x64, 0xb6, 0x09, 0xab, 0xc8, 0xb4, + 0x56, 0x68, 0x84, 0x20, 0x2b, 0x65, 0x85, 0xb4, 0x04, 0x2d, 0xe0, 0x19, 0xcf, 0xe4, 0x83, 0x38, + 0x1e, 0xda, 0x13, 0x38, 0x70, 0x88, 0x3a, 0xee, 0xb2, 0xa7, 0xe5, 0x76, 0xb5, 0xdd, 0xd5, 0x3d, + 0x49, 0x2e, 0x9c, 0xf9, 0x07, 0xe0, 0xb2, 0x02, 0x71, 0x43, 0x5c, 0x39, 0xc0, 0x3f, 0x84, 0x38, + 0x20, 0x71, 0x42, 0x9c, 0xe0, 0x80, 0x5e, 0x55, 0x75, 0x77, 0x95, 0xed, 0x4c, 0x3c, 0x99, 0x28, + 0x17, 0x6e, 0x7e, 0xbf, 0x7e, 0xf5, 0xbe, 0xeb, 0xd5, 0xab, 0x32, 0x74, 0x58, 0x30, 0x7b, 0xf1, + 0x8a, 0x7d, 0xfe, 0x8a, 0xdd, 0x5b, 0x24, 0x71, 0x1a, 0xdb, 0xad, 0x78, 0x41, 0xe8, 0x8b, 0x70, + 0xfe, 0x82, 0x05, 0x33, 0xf7, 0xdf, 0x26, 0x34, 0x1f, 0x26, 0x71, 0xb6, 0x78, 0x4c, 0x27, 0xb1, + 0xed, 0x40, 0x5d, 0x10, 0x7d, 0xc7, 0xe8, 0x1a, 0x07, 0x4d, 0x2f, 0x27, 0xed, 0x4f, 0x25, 0xdb, + 0x33, 0x7f, 0x4e, 0x1c, 0x93, 0x7f, 0x2b, 0x01, 0xdb, 0x85, 0xf6, 0xb3, 0x38, 0x0d, 0x27, 0xe1, + 0xd8, 0x4f, 0xc3, 0x98, 0x3a, 0x15, 0xce, 0xa0, 0x61, 0xc8, 0xf3, 0x98, 0xa6, 0x49, 0x1c, 0x64, + 0x63, 0xce, 0x53, 0x15, 0x3c, 0x2a, 0x86, 0xfa, 0x4f, 0xfc, 0x31, 0x79, 0x9e, 0x44, 0x8e, 0x25, + 0xf4, 0x4b, 0xd2, 0xee, 0x42, 0x6b, 0xf8, 0x8a, 0x92, 0xe4, 0x39, 0x23, 0xc9, 0xe3, 0xbe, 0x53, + 0xe3, 0x5f, 0x55, 0xc8, 0xbe, 0x0b, 0x70, 0x94, 0x10, 0x3f, 0x25, 0x67, 0xe1, 0x9c, 0x38, 0xf5, + 0xae, 0x71, 0x50, 0xf1, 0x14, 0x04, 0x25, 0x0c, 0xc8, 0xfc, 0x25, 0x49, 0x8e, 0xe2, 0x8c, 0xa6, + 0x4e, 0xa3, 0x6b, 0x1c, 0xec, 0x78, 0x2a, 0x64, 0xef, 0x82, 0x79, 0xfc, 0xda, 0x69, 0x72, 0xd1, + 0xe6, 0xf1, 0x6b, 0x7b, 0x1f, 0x6a, 0xa3, 0xd4, 0x4f, 0x33, 0xe6, 0x40, 0xd7, 0x38, 0xb0, 0x3c, + 0x49, 0xd9, 0x9f, 0xc1, 0x0e, 0x97, 0x1b, 0xe7, 0xd6, 0xb4, 0xf8, 0x12, 0x1d, 0x2c, 0x22, 0x76, + 0xf6, 0x66, 0x41, 0x9c, 0x36, 0x17, 0x50, 0x02, 0xee, 0x5f, 0x4d, 0xb8, 0xc9, 0x29, 0x61, 0xc0, + 0x49, 0x16, 0x45, 0xef, 0xc8, 0xc0, 0x3e, 0xd4, 0xa4, 0x3a, 0x11, 0xfe, 0x5a, 0xa9, 0x27, 0x89, + 0x23, 0xf2, 0x94, 0x5c, 0x90, 0x88, 0x07, 0xde, 0xf2, 0x4a, 0xc0, 0xbe, 0x03, 0x8d, 0x27, 0x71, + 0x48, 0x79, 0x4c, 0xaa, 0x3c, 0x26, 0x05, 0x8d, 0xdf, 0x9e, 0x85, 0xe3, 0x19, 0x4f, 0xa9, 0x08, + 0x77, 0x41, 0xab, 0x99, 0xa8, 0xe9, 0x99, 0xf8, 0x36, 0xec, 0xf6, 0x16, 0x8b, 0x81, 0x4f, 0xa7, + 0x24, 0x11, 0x4a, 0xeb, 0x5c, 0xe9, 0x0a, 0x8a, 0xf9, 0x40, 0x4d, 0xa3, 0x38, 0x4b, 0xc6, 0x84, + 0x87, 0xdb, 0xf2, 0x14, 0x04, 0xe5, 0x0c, 0x17, 0x24, 0x51, 0xc2, 0x28, 0x22, 0xbf, 0x82, 0xca, + 0xac, 0x40, 0x9e, 0x15, 0xf7, 0xf7, 0x06, 0xec, 0x9e, 0x66, 0x2f, 0xa3, 0x70, 0xcc, 0x19, 0x30, + 0x68, 0x65, 0x68, 0x0c, 0x2d, 0x34, 0xd2, 0x41, 0x5a, 0xd6, 0x6c, 0x41, 0xab, 0x0e, 0x56, 0x74, + 0x07, 0xf7, 0xa1, 0xf6, 0x90, 0xd0, 0x80, 0x24, 0x3c, 0x60, 0x96, 0x27, 0xa9, 0x0d, 0x8e, 0x5b, + 0x9b, 0x1c, 0x77, 0x7f, 0x6b, 0x42, 0xe3, 0x23, 0x9b, 0xd6, 0x85, 0xd6, 0xe9, 0x79, 0x4c, 0xc9, + 0xb3, 0x0c, 0x8b, 0x49, 0x26, 0x53, 0x85, 0xec, 0x5b, 0x60, 0x1d, 0x86, 0x49, 0x7a, 0x2e, 0xb3, + 0x29, 0x08, 0x44, 0x8f, 0xe7, 0x7e, 0x28, 0x52, 0xd8, 0xf4, 0x04, 0x21, 0x23, 0xde, 0x28, 0xf6, + 0x81, 0xbe, 0xb3, 0x9a, 0x6b, 0x3b, 0x6b, 0x3d, 0x30, 0xb0, 0x31, 0x30, 0xff, 0x32, 0x00, 0x4e, + 0x92, 0x90, 0xd0, 0x80, 0x87, 0x66, 0x65, 0x4b, 0x1b, 0xeb, 0x5b, 0x7a, 0x1f, 0x6a, 0x1e, 0x99, + 0xfb, 0xc9, 0x2c, 0x2f, 0x79, 0x41, 0xad, 0x18, 0x54, 0x59, 0x33, 0xe8, 0xfb, 0xb9, 0x1e, 0x94, + 0xc3, 0x43, 0xd5, 0xba, 0x7f, 0xfb, 0x9e, 0xd2, 0xf6, 0xee, 0xe5, 0xf9, 0xf1, 0x14, 0x46, 0xdc, + 0x49, 0xbd, 0x20, 0x90, 0x05, 0x2b, 0x72, 0x5b, 0x02, 0x1b, 0xea, 0xb5, 0x76, 0x49, 0xbd, 0xd6, + 0x8b, 0x7a, 0xfd, 0xbb, 0x01, 0xcd, 0xc3, 0xc8, 0x1f, 0xcf, 0xb6, 0x74, 0x5a, 0x77, 0xce, 0x5c, + 0x73, 0xae, 0x07, 0x3b, 0x5c, 0x5c, 0xee, 0x02, 0xf7, 0xbf, 0x75, 0xff, 0x9b, 0x9a, 0x7f, 0xfa, + 0x06, 0xf1, 0xf4, 0x15, 0xba, 0xa3, 0xd5, 0x77, 0x3b, 0x6a, 0x5d, 0xe2, 0x68, 0xad, 0x70, 0xf4, + 0xd7, 0x26, 0xb4, 0x79, 0xb3, 0xf2, 0xc8, 0x32, 0x23, 0x2c, 0x7d, 0x6b, 0xed, 0x2b, 0x3d, 0xce, + 0xd4, 0x7b, 0x9c, 0x0b, 0xed, 0x47, 0x3e, 0x0d, 0x22, 0xe2, 0x11, 0x96, 0x45, 0x69, 0x7e, 0x8e, + 0xa8, 0x98, 0x28, 0x8a, 0xe5, 0x80, 0x4d, 0xe5, 0x09, 0x22, 0x29, 0x74, 0x4a, 0xf0, 0xe1, 0x27, + 0x61, 0x71, 0x09, 0xa0, 0x4e, 0x8f, 0x2c, 0x79, 0x48, 0x6b, 0x3c, 0xa4, 0x39, 0x59, 0xea, 0x94, + 0xb6, 0xd6, 0x55, 0x9d, 0x65, 0x4e, 0x04, 0xcd, 0x05, 0x34, 0x44, 0x4e, 0x4a, 0x64, 0xf5, 0xe4, + 0x70, 0xbf, 0x36, 0x61, 0x47, 0x14, 0x56, 0x1e, 0x8b, 0xbb, 0x58, 0x92, 0xf1, 0x5c, 0x8b, 0x87, + 0x82, 0x60, 0x3f, 0x38, 0x8b, 0xb5, 0xfe, 0x5e, 0xd0, 0x1b, 0xa3, 0x62, 0x6d, 0x19, 0x15, 0xbd, + 0x9a, 0xac, 0xb5, 0x6a, 0xfa, 0x0c, 0x76, 0x84, 0x1c, 0xbd, 0xa8, 0x75, 0x50, 0x8f, 0x6d, 0x7d, + 0x35, 0xb6, 0x57, 0x8d, 0xce, 0x7f, 0x0d, 0x70, 0x4e, 0xb3, 0x28, 0x1a, 0x10, 0xc6, 0xfc, 0x29, + 0x39, 0x7c, 0x33, 0x22, 0xcb, 0xa7, 0x21, 0x4b, 0x3d, 0xc2, 0x16, 0x98, 0x28, 0x92, 0x24, 0x47, + 0x71, 0x40, 0x78, 0x94, 0x2c, 0x2f, 0x27, 0xd1, 0x45, 0x92, 0x24, 0x68, 0x81, 0xec, 0x06, 0x82, + 0x42, 0x7c, 0xee, 0xbf, 0x1e, 0x91, 0xa5, 0xec, 0x04, 0x92, 0xe2, 0x78, 0x48, 0x11, 0xaf, 0x4a, + 0x9c, 0x53, 0xf6, 0x8f, 0x61, 0x87, 0x85, 0x74, 0x2a, 0x92, 0x2b, 0x8a, 0xa5, 0x72, 0xd0, 0xba, + 0xff, 0x0d, 0x6d, 0x03, 0x3d, 0xf4, 0xd3, 0x73, 0x92, 0x9c, 0xc4, 0xc9, 0xdc, 0x4f, 0x3d, 0x9d, + 0xdf, 0xfe, 0x0a, 0xda, 0x53, 0x2c, 0xd8, 0x7c, 0x7d, 0xed, 0x5d, 0xeb, 0x35, 0x76, 0x77, 0x0e, + 0x9f, 0x6c, 0xf6, 0x9e, 0x9b, 0x9c, 0x69, 0x3b, 0x46, 0x50, 0xd8, 0x35, 0x62, 0xbe, 0xf9, 0xc2, + 0x98, 0x16, 0x05, 0xa2, 0x42, 0x18, 0x36, 0x26, 0xe4, 0x38, 0x95, 0x6e, 0x05, 0xeb, 0x5b, 0x92, + 0xee, 0xaf, 0xf0, 0xb8, 0x2c, 0xd4, 0x5d, 0xa6, 0xe5, 0x0e, 0x34, 0x18, 0x59, 0x1e, 0x92, 0x69, + 0x48, 0x65, 0xdf, 0x29, 0x68, 0x5c, 0xc3, 0xc8, 0xf2, 0x98, 0x06, 0x79, 0x90, 0x05, 0xb5, 0x6a, + 0x59, 0x75, 0xcd, 0x32, 0xec, 0xfa, 0x1d, 0xcd, 0x80, 0xff, 0x8b, 0x24, 0xdf, 0x02, 0xfb, 0x21, + 0x49, 0x07, 0xfe, 0xeb, 0x1e, 0x0d, 0x06, 0xdc, 0x24, 0x8f, 0x2c, 0xdd, 0x63, 0xb8, 0xb9, 0x86, + 0xb2, 0x85, 0xe2, 0x9c, 0xf1, 0x16, 0xe7, 0x4c, 0xd5, 0x39, 0xf7, 0x11, 0xb4, 0x55, 0xd5, 0xb8, + 0xc1, 0xc2, 0x40, 0x26, 0xd3, 0x0c, 0x03, 0xfb, 0x00, 0xaa, 0x11, 0x56, 0x82, 0xc9, 0x6d, 0xbe, + 0xa5, 0xd9, 0x3c, 0x60, 0xd3, 0xbe, 0x9f, 0xfa, 0x1e, 0xe7, 0x70, 0x97, 0xd0, 0x41, 0x8b, 0x47, + 0x84, 0x06, 0x03, 0x36, 0xe5, 0xc6, 0x74, 0xa1, 0x35, 0x22, 0xc9, 0x05, 0x77, 0xa3, 0x3c, 0xa1, + 0x14, 0x08, 0x39, 0x8e, 0xa2, 0x90, 0xd0, 0x54, 0x70, 0xc8, 0x6a, 0x54, 0x20, 0x51, 0x49, 0x34, + 0x50, 0x8e, 0xe7, 0x82, 0x76, 0xff, 0x62, 0x41, 0x5d, 0x1a, 0x21, 0xaa, 0x8a, 0x06, 0x65, 0x25, + 0x0a, 0x0a, 0xf1, 0x84, 0x8c, 0x2f, 0xca, 0x59, 0x57, 0x50, 0x58, 0x37, 0x53, 0x79, 0x72, 0xc8, + 0xc9, 0x48, 0x92, 0x68, 0xd3, 0x58, 0xb1, 0x49, 0xd6, 0xa1, 0x02, 0x21, 0x07, 0x53, 0xfc, 0x92, + 0x33, 0x92, 0x02, 0xd9, 0xdf, 0x81, 0x3d, 0xc6, 0xe7, 0xa9, 0xd3, 0xc8, 0x4f, 0x27, 0x71, 0x32, + 0x97, 0xed, 0xd0, 0xf2, 0xd6, 0x70, 0x3c, 0x24, 0x05, 0x56, 0x4c, 0x71, 0xa2, 0x2d, 0xae, 0xa0, + 0xd8, 0x5f, 0x05, 0xc2, 0x47, 0x38, 0xef, 0xa9, 0x1c, 0xab, 0x74, 0x50, 0xd8, 0xc6, 0x58, 0x18, + 0x53, 0x7e, 0x5b, 0x68, 0x72, 0xa5, 0x2a, 0x84, 0x9e, 0xcf, 0xd9, 0x14, 0x0f, 0x0c, 0x39, 0x5c, + 0xe5, 0x24, 0xf7, 0x3c, 0xa6, 0x29, 0xa1, 0x29, 0x5f, 0xdb, 0x12, 0x6b, 0x15, 0x08, 0xd7, 0x4a, + 0x92, 0xdf, 0x43, 0xda, 0x5e, 0x4e, 0x62, 0x5f, 0x9f, 0xc4, 0xc9, 0x98, 0xf0, 0xbe, 0xb1, 0xd3, + 0xad, 0x60, 0x5f, 0x2f, 0x00, 0x7b, 0x0f, 0x2a, 0x8c, 0x2c, 0x9d, 0x5d, 0x9e, 0x40, 0xfc, 0xa9, + 0xe5, 0xb5, 0xa3, 0xe7, 0x15, 0x4f, 0x81, 0x71, 0x79, 0xd2, 0xec, 0x89, 0x53, 0xa0, 0x44, 0xec, + 0x1f, 0x42, 0x7d, 0xb8, 0xc0, 0x9e, 0xc0, 0x9c, 0x1b, 0xbc, 0x2e, 0xbf, 0xb5, 0xa9, 0x2e, 0xef, + 0x49, 0x9e, 0x63, 0x9a, 0x26, 0x6f, 0xbc, 0x7c, 0x85, 0x7d, 0x02, 0x9d, 0x78, 0x32, 0x89, 0x42, + 0x4a, 0x4e, 0x33, 0x76, 0xce, 0xc7, 0x1e, 0x9b, 0x8f, 0x3d, 0x9f, 0x6a, 0x42, 0x86, 0x3a, 0x8f, + 0xb7, 0xba, 0xe8, 0xce, 0x03, 0x68, 0xab, 0x0a, 0xd0, 0xc5, 0x19, 0x79, 0x23, 0xab, 0x0f, 0x7f, + 0xe2, 0x48, 0x7c, 0xe1, 0x47, 0x99, 0x98, 0xbc, 0x1a, 0x9e, 0x20, 0x1e, 0x98, 0x5f, 0x1a, 0xee, + 0x6f, 0x0c, 0xe8, 0xac, 0x28, 0x40, 0xee, 0xb3, 0x30, 0x8d, 0x88, 0x94, 0x20, 0x08, 0xdb, 0x86, + 0x6a, 0x9f, 0xb0, 0xb1, 0x2c, 0x5e, 0xfe, 0x5b, 0x1e, 0x82, 0x95, 0x62, 0xa8, 0x76, 0xa1, 0x1d, + 0x0e, 0x47, 0x28, 0x68, 0x14, 0x67, 0x34, 0xc8, 0xaf, 0xc3, 0x2a, 0x86, 0xc5, 0x13, 0x0e, 0x47, + 0x87, 0x7e, 0x30, 0x25, 0xe2, 0xd2, 0x6a, 0x71, 0x9b, 0x74, 0xd0, 0xed, 0x43, 0xe3, 0x2c, 0x5c, + 0xb0, 0xa3, 0x78, 0x3e, 0xc7, 0x8d, 0xd3, 0x27, 0x29, 0x4e, 0xf4, 0x06, 0xcf, 0xb4, 0xa4, 0xb0, + 0x48, 0xfa, 0x64, 0xe2, 0x67, 0x51, 0x8a, 0xac, 0xf9, 0x96, 0x55, 0x20, 0xf7, 0x4f, 0x06, 0x74, + 0xc4, 0x5d, 0xf4, 0x98, 0xa6, 0x24, 0x41, 0xcc, 0xfe, 0x2e, 0x58, 0x7c, 0x32, 0xe3, 0xc2, 0x5a, + 0xf7, 0xf7, 0xf5, 0xe6, 0x97, 0xbf, 0x1a, 0x78, 0x82, 0xc9, 0x3e, 0x84, 0x16, 0x06, 0xd5, 0xa7, + 0x29, 0x1f, 0xbb, 0x4d, 0xbe, 0xa6, 0xbb, 0xbe, 0x46, 0xbf, 0xf1, 0x7a, 0xea, 0x22, 0xf4, 0x78, + 0x98, 0x9f, 0x1d, 0x4a, 0xf7, 0xd0, 0x41, 0xf7, 0x8f, 0x85, 0xad, 0x4f, 0x89, 0x7f, 0x41, 0xde, + 0xc3, 0xd6, 0x9f, 0x00, 0xf0, 0xa5, 0xc9, 0x95, 0x4c, 0x55, 0xd6, 0x6c, 0x69, 0xe9, 0x3f, 0x0d, + 0xb8, 0x21, 0x84, 0x3c, 0xa6, 0x17, 0x61, 0x4a, 0x82, 0xf7, 0xb0, 0xf5, 0x4b, 0xa8, 0x0d, 0x17, + 0x57, 0xb2, 0x53, 0xf2, 0xdb, 0x4f, 0xa0, 0x23, 0xd5, 0x22, 0x59, 0x0c, 0x07, 0xdb, 0x88, 0x58, + 0x5d, 0xb8, 0xee, 0x6f, 0x75, 0x93, 0xbf, 0xff, 0x30, 0x60, 0x4f, 0x48, 0xfa, 0x69, 0x38, 0x9e, + 0x7d, 0x64, 0x77, 0x1f, 0xc1, 0xae, 0xd0, 0x7a, 0x65, 0x6f, 0x57, 0xd6, 0x6d, 0xe9, 0xec, 0x7f, + 0x0c, 0xb8, 0x9d, 0x27, 0x77, 0x12, 0x1f, 0x9d, 0xe3, 0x55, 0x57, 0x78, 0x8c, 0x53, 0x37, 0x27, + 0x79, 0x4b, 0x16, 0x23, 0x8e, 0x82, 0x5c, 0xc3, 0xc7, 0x1f, 0x41, 0xf3, 0x24, 0xa4, 0x7e, 0xa4, + 0xdc, 0xfc, 0xde, 0xbd, 0xb8, 0x5c, 0x82, 0x1d, 0x7c, 0x90, 0xc9, 0x1e, 0x2d, 0xdf, 0x83, 0x72, + 0xba, 0xcc, 0x93, 0xb5, 0x45, 0x9e, 0xdc, 0xbf, 0x19, 0xb0, 0xc7, 0x7f, 0x89, 0xdb, 0xc4, 0xfb, + 0xa4, 0xfa, 0x01, 0xd4, 0xe5, 0x9b, 0xd9, 0xd6, 0x71, 0xc8, 0x17, 0xe0, 0x0e, 0x96, 0x2d, 0xe0, + 0x2a, 0x89, 0x56, 0xd6, 0x6c, 0x99, 0xe4, 0x3f, 0x18, 0x70, 0xab, 0x30, 0x5c, 0xcd, 0x31, 0x4e, + 0x41, 0x92, 0x2c, 0x93, 0xac, 0x42, 0x65, 0x30, 0xcc, 0xab, 0xd5, 0x7d, 0xe5, 0x6a, 0x35, 0xe1, + 0x7e, 0x6d, 0x80, 0xf3, 0x24, 0x0e, 0x29, 0xe7, 0xe9, 0x2d, 0x16, 0x91, 0x7c, 0x72, 0x7d, 0x8f, + 0x8c, 0xfc, 0x00, 0x9a, 0x52, 0x00, 0x4d, 0xa5, 0xd9, 0x97, 0x3e, 0x2c, 0x94, 0xdc, 0xe2, 0x06, + 0xea, 0xb3, 0xe2, 0xf5, 0x57, 0x52, 0xee, 0x9f, 0x0d, 0x70, 0x14, 0xa3, 0x4e, 0x93, 0x78, 0x4c, + 0x18, 0xfb, 0xc8, 0xad, 0x81, 0x1b, 0xa7, 0x5c, 0x9e, 0x6b, 0xea, 0xb5, 0x99, 0x1b, 0x5d, 0xd5, + 0x8c, 0x9e, 0xc1, 0x0d, 0x71, 0x7f, 0x57, 0x2c, 0xc7, 0x39, 0xaa, 0x17, 0x88, 0xe1, 0x47, 0xcc, + 0xe9, 0x39, 0xa9, 0x3f, 0xa8, 0xc8, 0xd7, 0xf1, 0xf2, 0x41, 0xe5, 0x2e, 0x40, 0x2f, 0x08, 0x7e, + 0x11, 0x27, 0x41, 0x48, 0xa7, 0x32, 0x3a, 0x0a, 0xe2, 0x3e, 0x81, 0x36, 0x4e, 0x72, 0xc5, 0x7d, + 0xff, 0x1a, 0x6f, 0x05, 0xee, 0x2f, 0xe1, 0xce, 0x9a, 0xe1, 0xbd, 0x20, 0x90, 0xe1, 0xfe, 0x4a, + 0xd7, 0x24, 0xa3, 0xae, 0x5f, 0x6a, 0x54, 0x06, 0x4f, 0x63, 0x77, 0x5f, 0xc0, 0xdd, 0x35, 0xe1, + 0x7a, 0x3e, 0xaf, 0xa9, 0xe0, 0x77, 0x06, 0x74, 0xa4, 0x86, 0xc2, 0xe6, 0xcf, 0xa1, 0x26, 0x20, + 0x29, 0xec, 0x93, 0x15, 0x61, 0xf9, 0x7b, 0xa2, 0x27, 0xd9, 0xd6, 0xf7, 0xb5, 0xb9, 0x61, 0x5f, + 0xdb, 0x5f, 0xac, 0x6c, 0xb7, 0x4b, 0xcb, 0x3c, 0xdf, 0x69, 0x5e, 0x5e, 0x16, 0x7d, 0x12, 0x91, + 0xf4, 0xc3, 0xf8, 0x3c, 0x84, 0x5d, 0xfe, 0x3a, 0xf7, 0xc1, 0xb2, 0xf4, 0x33, 0xd8, 0xe3, 0x02, + 0x3f, 0xa0, 0x8d, 0x3f, 0x87, 0xdb, 0x65, 0xa0, 0xd5, 0x26, 0x78, 0x4d, 0xb9, 0xdf, 0x83, 0x9b, + 0x23, 0x12, 0x4d, 0x50, 0xea, 0xf3, 0x45, 0x50, 0x9c, 0x22, 0x6f, 0x79, 0x38, 0x7c, 0x59, 0xe3, + 0x7f, 0x60, 0x7d, 0xf1, 0xbf, 0x00, 0x00, 0x00, 0xff, 0xff, 0x97, 0x0c, 0x33, 0xae, 0xd3, 0x1a, + 0x00, 0x00, } diff --git a/pkg/proto/sdk_ws/ws.proto b/pkg/proto/sdk_ws/ws.proto index 60dfb0ee6..0dfde946b 100644 --- a/pkg/proto/sdk_ws/ws.proto +++ b/pkg/proto/sdk_ws/ws.proto @@ -20,6 +20,7 @@ message GroupInfo{ int32 GroupType = 12; } + message GroupMemberFullInfo { string GroupID = 1 ; string UserID = 2 ; @@ -27,10 +28,10 @@ message GroupMemberFullInfo { int64 JoinTime = 4; string NickName = 5; string FaceUrl = 6; - int32 AppMangerLevel = 8; //if >0 - int32 JoinSource = 9; - string OperatorUserID = 10; - string Ex = 11; + int32 AppMangerLevel = 7; //if >0 + int32 JoinSource = 8; + string OperatorUserID = 9; + string Ex = 10; } message PublicUserInfo{ @@ -50,6 +51,8 @@ message UserInfo{ string Birth = 6; string Email = 7; string Ex = 8; + int64 CreateTime = 9; + int32 AppMangerLevel = 10; } message FriendInfo{ @@ -65,10 +68,10 @@ message FriendInfo{ message BlackInfo{ string OwnerUserID = 1; int64 CreateTime = 2; - PublicUserInfo BlackUserInfo = 4; - int32 AddSource = 5; - string OperatorUserID = 6; - string Ex = 7; + PublicUserInfo BlackUserInfo = 3; + int32 AddSource = 4; + string OperatorUserID = 5; + string Ex = 6; } message GroupRequest{ diff --git a/pkg/utils/utils.go b/pkg/utils/utils.go index 074712bc8..2c393d337 100644 --- a/pkg/utils/utils.go +++ b/pkg/utils/utils.go @@ -1,6 +1,9 @@ package utils import ( + imdb "Open_IM/pkg/common/db/mysql_model/im_mysql_model" + "Open_IM/pkg/common/token_verify" + open_im_sdk "Open_IM/pkg/proto/sdk_ws" "fmt" "math/rand" "reflect" @@ -50,3 +53,82 @@ func CopyStructFields(a interface{}, b interface{}, fields ...string) (err error func OperationIDGenerator() string { return strconv.FormatInt(time.Now().UnixNano()+int64(rand.Uint32()), 10) } + +func FriendOpenIMCopyDB(dst *imdb.Friend, src open_im_sdk.FriendInfo) { + CopyStructFields(dst, src) + dst.FriendUserID = src.FriendUser.UserID +} + +func FriendDBCopyOpenIM(dst *open_im_sdk.FriendInfo, src imdb.Friend) { + CopyStructFields(dst, src) + user, _ := imdb.GetUserByUserID(src.FriendUserID) + if user != nil { + CopyStructFields(dst.FriendUser, user) + } +} + +// +func FriendRequestOpenIMCopyDB(dst *imdb.FriendRequest, src open_im_sdk.FriendRequest) { + CopyStructFields(dst, src) +} + +func FriendRequestDBCopyOpenIM(dst *open_im_sdk.FriendRequest, src imdb.FriendRequest) { + CopyStructFields(dst, src) +} + +func GroupOpenIMCopyDB(dst *imdb.Group, src open_im_sdk.GroupInfo) { + CopyStructFields(dst, src) +} + +func GroupDBCopyOpenIM(dst *open_im_sdk.GroupInfo, src imdb.Group) { + CopyStructFields(dst, src) + user, _ := imdb.GetGroupOwnerInfoByGroupID(src.GroupID) + if user != nil { + dst.OwnerUserID = user.UserID + } + dst.MemberCount = imdb.GetGroupMemberNumByGroupID(src.GroupID) +} + +func GroupMemberOpenIMCopyDB(dst *imdb.GroupMember, src open_im_sdk.GroupMemberFullInfo) { + CopyStructFields(dst, src) +} + +func GroupMemberDBCopyOpenIM(dst *open_im_sdk.GroupMemberFullInfo, src imdb.GroupMember) { + CopyStructFields(dst, src) + if token_verify.IsMangerUserID(src.UserID) { + u, _ := imdb.GetUserByUserID(src.UserID) + if u != nil { + CopyStructFields(dst, u) + } + dst.AppMangerLevel = 1 + } +} + +func GroupRequestOpenIMCopyDB(dst *imdb.GroupRequest, src open_im_sdk.GroupRequest) { + CopyStructFields(dst, src) +} + +func GroupRequestDBCopyOpenIM(dst *open_im_sdk.GroupRequest, src imdb.GroupRequest) { + CopyStructFields(dst, src) +} + +func UserOpenIMCopyDB(dst *imdb.User, src open_im_sdk.UserInfo) { + CopyStructFields(dst, src) +} + +func UserDBCopyOpenIM(dst *open_im_sdk.UserInfo, src imdb.User) { + CopyStructFields(dst, src) +} + +func BlackOpenIMCopyDB(dst *imdb.Black, src open_im_sdk.BlackInfo) { + CopyStructFields(dst, src) + dst.BlockUserID = src.BlackUserInfo.UserID +} + +func BlackDBCopyOpenIM(dst *open_im_sdk.BlackInfo, src imdb.Black) { + CopyStructFields(dst, src) + user, _ := imdb.GetUserByUserID(src.BlockUserID) + if user != nil { + CopyStructFields(dst.BlackUserInfo, user) + } +} From 38542f9888075f9e36bbfb4c4e729ce4734becc8 Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Tue, 28 Dec 2021 14:23:14 +0800 Subject: [PATCH 249/814] tidy code --- internal/rpc/msg/notification.go | 595 +++++++++++++++++++++++++++++++ internal/rpc/msg/send_msg.go | 586 ------------------------------ 2 files changed, 595 insertions(+), 586 deletions(-) create mode 100644 internal/rpc/msg/notification.go diff --git a/internal/rpc/msg/notification.go b/internal/rpc/msg/notification.go new file mode 100644 index 000000000..fc88bf05d --- /dev/null +++ b/internal/rpc/msg/notification.go @@ -0,0 +1,595 @@ +package msg + +import ( + "Open_IM/pkg/common/constant" + imdb "Open_IM/pkg/common/db/mysql_model/im_mysql_model" + "Open_IM/pkg/common/log" + "Open_IM/pkg/common/token_verify" + pbFriend "Open_IM/pkg/proto/friend" + pbGroup "Open_IM/pkg/proto/group" + open_im_sdk "Open_IM/pkg/proto/sdk_ws" + "Open_IM/pkg/utils" + "encoding/json" +) + +//message GroupCreatedTips{ +// GroupInfo Group = 1; +// GroupMemberFullInfo Creator = 2; +// repeated GroupMemberFullInfo MemberList = 3; +// uint64 OperationTime = 4; +//} creator->group + +func setOpUserInfo(operationID, opUserID, groupID string, groupMemberInfo *open_im_sdk.GroupMemberFullInfo) { + if token_verify.IsMangerUserID(opUserID) { + u, err := imdb.GetUserByUserID(opUserID) + if err != nil { + log.NewError(operationID, "FindUserByUID failed ", err.Error(), opUserID) + return + } + utils.CopyStructFields(groupMemberInfo, u) + groupMemberInfo.AppMangerLevel = 1 + } else { + u, err := imdb.GetGroupMemberInfoByGroupIDAndUserID(groupID, opUserID) + if err != nil { + log.NewError(operationID, "FindGroupMemberInfoByGroupIdAndUserId failed ", err.Error(), groupID, opUserID) + return + } + utils.CopyStructFields(groupMemberInfo, u) + } +} + +func setGroupInfo(operationID, groupID string, groupInfo *open_im_sdk.GroupInfo, ownerUserID string) { + group, err := imdb.GetGroupInfoByGroupID(groupID) + if err != nil { + log.NewError(operationID, "FindGroupInfoByGroupId failed ", err.Error(), groupID) + return + } + utils.CopyStructFields(groupInfo, group) + + if ownerUserID != "" { + groupInfo.OwnerUserID = ownerUserID + // setGroupPublicUserInfo(operationID, groupID, ownerUserID, groupInfo.Owner) + } +} + +func setGroupMemberInfo(operationID, groupID, userID string, groupMemberInfo *open_im_sdk.GroupMemberFullInfo) { + group, err := imdb.GetGroupMemberInfoByGroupIDAndUserID(groupID, userID) + if err != nil { + log.NewError(operationID, "FindGroupMemberInfoByGroupIdAndUserId failed ", err.Error(), groupID, userID) + return + } + utils.CopyStructFields(groupMemberInfo, group) +} + +//func setGroupPublicUserInfo(operationID, groupID, userID string, publicUserInfo *open_im_sdk.PublicUserInfo) { +// group, err := imdb.GetGroupMemberInfoByGroupIDAndUserID(groupID, userID) +// if err != nil { +// log.NewError(operationID, "FindGroupMemberInfoByGroupIdAndUserId failed ", err.Error(), groupID, userID) +// return +// } +// utils.CopyStructFields(publicUserInfo, group) +//} + +//创建群后调用 +func GroupCreatedNotification(operationID, opUserID, OwnerUserID, groupID string, initMemberList []string) { + var n NotificationMsg + n.SendID = opUserID + n.RecvID = groupID + n.ContentType = constant.GroupCreatedNotification + n.SessionType = constant.GroupChatType + n.MsgFrom = constant.SysMsgType + n.OperationID = operationID + + GroupCreatedTips := open_im_sdk.GroupCreatedTips{Group: &open_im_sdk.GroupInfo{}, + Creator: &open_im_sdk.GroupMemberFullInfo{}} + setOpUserInfo(operationID, GroupCreatedTips.Creator.UserID, groupID, GroupCreatedTips.Creator) + + setGroupInfo(operationID, groupID, GroupCreatedTips.Group, OwnerUserID) + + for _, v := range initMemberList { + var groupMemberInfo open_im_sdk.GroupMemberFullInfo + setGroupMemberInfo(operationID, groupID, v, &groupMemberInfo) + GroupCreatedTips.MemberList = append(GroupCreatedTips.MemberList, &groupMemberInfo) + } + + var tips open_im_sdk.TipsComm + tips.Detail, _ = json.Marshal(GroupCreatedTips) + tips.DefaultTips = config.Config.Notification.GroupCreated.DefaultTips.Tips + n.Content, _ = json.Marshal(tips) + Notification(&n, false) +} + +//message ReceiveJoinApplicationTips{ +// GroupInfo Group = 1; +// PublicUserInfo Applicant = 2; +// string Reason = 3; +//} apply->all managers GroupID string `protobuf:"bytes,1,opt,name=GroupID" json:"GroupID,omitempty"` +// ReqMessage string `protobuf:"bytes,2,opt,name=ReqMessage" json:"ReqMessage,omitempty"` +// OpUserID string `protobuf:"bytes,3,opt,name=OpUserID" json:"OpUserID,omitempty"` +// OperationID string `protobuf:"bytes,4,opt,name=OperationID" json:"OperationID,omitempty"` +//申请进群后调用 +func JoinApplicationNotification(req *pbGroup.JoinGroupReq) { + managerList, err := imdb.GetOwnerManagerByGroupID(req.GroupID) + if err != nil { + log.NewError(req.OperationID, "GetOwnerManagerByGroupId failed ", err.Error(), req.GroupID) + return + } + + var n NotificationMsg + n.SendID = req.OpUserID + n.ContentType = constant.JoinApplicationNotification + n.SessionType = constant.SingleChatType + n.MsgFrom = constant.SysMsgType + n.OperationID = req.OperationID + + JoinGroupApplicationTips := open_im_sdk.JoinGroupApplicationTips{Group: &open_im_sdk.GroupInfo{}, Applicant: &open_im_sdk.PublicUserInfo{}} + setGroupInfo(req.OperationID, req.GroupID, JoinGroupApplicationTips.Group, "") + + apply, err := imdb.GetUserByUserID(req.OpUserID) + if err != nil { + log.NewError(req.OperationID, "FindUserByUID failed ", err.Error(), req.OpUserID) + return + } + utils.CopyStructFields(JoinGroupApplicationTips.Applicant, apply) + JoinGroupApplicationTips.Reason = req.ReqMessage + + var tips open_im_sdk.TipsComm + tips.Detail, _ = json.Marshal(JoinGroupApplicationTips) + tips.DefaultTips = "JoinGroupApplicationTips" + n.Content, _ = json.Marshal(tips) + for _, v := range managerList { + n.RecvID = v.UserID + Notification(&n, true) + } +} + +//message ApplicationProcessedTips{ +// GroupInfo Group = 1; +// GroupMemberFullInfo OpUser = 2; +// int32 Result = 3; +// string Reason = 4; +//} +//处理进群请求后调用 +func ApplicationProcessedNotification(req *pbGroup.GroupApplicationResponseReq) { + var n NotificationMsg + n.SendID = req.OpUserID + n.ContentType = constant.ApplicationProcessedNotification + n.SessionType = constant.SingleChatType + n.MsgFrom = constant.SysMsgType + n.OperationID = req.OperationID + n.RecvID = req.FromUserID + + ApplicationProcessedTips := open_im_sdk.ApplicationProcessedTips{Group: &open_im_sdk.GroupInfo{}, OpUser: &open_im_sdk.GroupMemberFullInfo{}} + setGroupInfo(req.OperationID, req.GroupID, ApplicationProcessedTips.Group, "") + setOpUserInfo(req.OperationID, req.OpUserID, req.GroupID, ApplicationProcessedTips.OpUser) + ApplicationProcessedTips.Reason = req.HandledMsg + ApplicationProcessedTips.Result = req.HandleResult + + var tips open_im_sdk.TipsComm + tips.Detail, _ = json.Marshal(ApplicationProcessedTips) + tips.DefaultTips = "ApplicationProcessedNotification" + n.Content, _ = json.Marshal(tips) + + Notification(&n, true) +} + +//message MemberInvitedTips{ +// GroupInfo Group = 1; +// GroupMemberFullInfo OpUser = 2; +// GroupMemberFullInfo InvitedUser = 3; +// uint64 OperationTime = 4; +//} +//被邀请进群后调用 +func MemberInvitedNotification(operationID, groupID, opUserID, reason string, invitedUserIDList []string) { + var n NotificationMsg + n.SendID = opUserID + n.ContentType = constant.MemberInvitedNotification + n.SessionType = constant.GroupChatType + n.MsgFrom = constant.SysMsgType + n.OperationID = operationID + + ApplicationProcessedTips := open_im_sdk.MemberInvitedTips{Group: &open_im_sdk.GroupInfo{}, OpUser: &open_im_sdk.GroupMemberFullInfo{}} + setGroupInfo(operationID, groupID, ApplicationProcessedTips.Group, "") + setOpUserInfo(operationID, opUserID, groupID, ApplicationProcessedTips.OpUser) + for _, v := range invitedUserIDList { + var groupMemberInfo open_im_sdk.GroupMemberFullInfo + setGroupMemberInfo(operationID, groupID, v, &groupMemberInfo) + ApplicationProcessedTips.InvitedUserList = append(ApplicationProcessedTips.InvitedUserList, &groupMemberInfo) + } + var tips open_im_sdk.TipsComm + tips.Detail, _ = json.Marshal(ApplicationProcessedTips) + tips.DefaultTips = "MemberInvitedNotification" + n.Content, _ = json.Marshal(tips) + n.RecvID = groupID + Notification(&n, true) +} + +//message MemberKickedTips{ +// GroupInfo Group = 1; +// GroupMemberFullInfo OpUser = 2; +// GroupMemberFullInfo KickedUser = 3; +// uint64 OperationTime = 4; +//} +//被踢后调用 +func MemberKickedNotification(req *pbGroup.KickGroupMemberReq, kickedUserIDList []string) { + var n NotificationMsg + n.SendID = req.OpUserID + n.ContentType = constant.MemberKickedNotification + n.SessionType = constant.GroupChatType + n.MsgFrom = constant.SysMsgType + n.OperationID = req.OperationID + + MemberKickedTips := open_im_sdk.MemberKickedTips{Group: &open_im_sdk.GroupInfo{}, OpUser: &open_im_sdk.GroupMemberFullInfo{}} + setGroupInfo(req.OperationID, req.GroupID, MemberKickedTips.Group, "") + setOpUserInfo(req.OperationID, req.OpUserID, req.GroupID, MemberKickedTips.OpUser) + for _, v := range kickedUserIDList { + var groupMemberInfo open_im_sdk.GroupMemberFullInfo + setGroupMemberInfo(req.OperationID, req.GroupID, v, &groupMemberInfo) + MemberKickedTips.KickedUserList = append(MemberKickedTips.KickedUserList, &groupMemberInfo) + } + var tips open_im_sdk.TipsComm + tips.Detail, _ = json.Marshal(MemberKickedTips) + tips.DefaultTips = "MemberKickedNotification" + n.Content, _ = json.Marshal(tips) + n.RecvID = req.GroupID + Notification(&n, true) + + for _, v := range kickedUserIDList { + n.SessionType = constant.SingleChatType + n.RecvID = v + Notification(&n, true) + } +} + +//message GroupInfoChangedTips{ +// int32 ChangedType = 1; //bitwise operators: 1:groupName; 10:Notification 100:Introduction; 1000:FaceUrl +// GroupInfo Group = 2; +// GroupMemberFullInfo OpUser = 3; +//} + +//群信息改变后掉用 +func GroupInfoChangedNotification(operationID, opUserID, groupID string, changedType int32) { + var n NotificationMsg + n.SendID = opUserID + n.ContentType = constant.GroupInfoChangedNotification + n.SessionType = constant.GroupChatType + n.MsgFrom = constant.SysMsgType + n.OperationID = operationID + + GroupInfoChangedTips := open_im_sdk.GroupInfoChangedTips{Group: &open_im_sdk.GroupInfo{}, OpUser: &open_im_sdk.GroupMemberFullInfo{}} + setGroupInfo(operationID, groupID, GroupInfoChangedTips.Group, opUserID) + setOpUserInfo(operationID, opUserID, groupID, GroupInfoChangedTips.OpUser) + GroupInfoChangedTips.ChangedType = changedType + var tips open_im_sdk.TipsComm + tips.Detail, _ = json.Marshal(GroupInfoChangedTips) + tips.DefaultTips = "GroupInfoChangedNotification" + n.Content, _ = json.Marshal(tips) + n.RecvID = groupID + Notification(&n, false) +} + +/* +func GroupInfoChangedNotification(operationID string, changedType int32, group *immysql.Group, opUser *immysql.GroupMember) { + var n NotificationMsg + n.SendID = opUser.UserID + n.RecvID = group.GroupID + n.ContentType = constant.ChangeGroupInfoTip + n.SessionType = constant.GroupChatType + n.MsgFrom = constant.SysMsgType + n.OperationID = operationID + + var groupInfoChanged open_im_sdk.GroupInfoChangedTips + groupInfoChanged.Group = &open_im_sdk.GroupInfo{} + utils.CopyStructFields(groupInfoChanged.Group, group) + groupInfoChanged.OpUser = &open_im_sdk.GroupMemberFullInfo{} + utils.CopyStructFields(groupInfoChanged.OpUser, opUser) + groupInfoChanged.ChangedType = changedType + + var tips open_im_sdk.TipsComm + tips.Detail, _ = json.Marshal(groupInfoChanged) + tips.DefaultTips = config.Config.Notification.GroupInfoChanged.DefaultTips.Tips + n.Content, _ = json.Marshal(tips) + Notification(&n, false) +} +*/ + +//message MemberLeaveTips{ +// GroupInfo Group = 1; +// GroupMemberFullInfo LeaverUser = 2; +// uint64 OperationTime = 3; +//} + +//群成员退群后调用 +func MemberLeaveNotification(req *pbGroup.QuitGroupReq) { + var n NotificationMsg + n.SendID = req.OpUserID + n.ContentType = constant.MemberLeaveNotification + n.SessionType = constant.GroupChatType + n.MsgFrom = constant.SysMsgType + n.OperationID = req.OperationID + + MemberLeaveTips := open_im_sdk.MemberLeaveTips{Group: &open_im_sdk.GroupInfo{}, LeaverUser: &open_im_sdk.GroupMemberFullInfo{}} + setGroupInfo(req.OperationID, req.GroupID, MemberLeaveTips.Group, "") + setOpUserInfo(req.OperationID, req.OpUserID, req.GroupID, MemberLeaveTips.LeaverUser) + + var tips open_im_sdk.TipsComm + tips.Detail, _ = json.Marshal(MemberLeaveTips) + tips.DefaultTips = "MemberLeaveNotification" + n.Content, _ = json.Marshal(tips) + n.RecvID = req.GroupID + Notification(&n, true) + + n.SessionType = constant.SingleChatType + n.RecvID = req.OpUserID + Notification(&n, true) +} + +//message MemberEnterTips{ +// GroupInfo Group = 1; +// GroupMemberFullInfo EntrantUser = 2; +// uint64 OperationTime = 3; +//} +//群成员主动申请进群,管理员同意后调用, +func MemberEnterNotification(req *pbGroup.GroupApplicationResponseReq) { + var n NotificationMsg + n.SendID = req.OpUserID + n.ContentType = constant.MemberEnterNotification + n.SessionType = constant.GroupChatType + n.MsgFrom = constant.SysMsgType + n.OperationID = req.OperationID + + MemberLeaveTips := open_im_sdk.MemberEnterTips{Group: &open_im_sdk.GroupInfo{}, EntrantUser: &open_im_sdk.GroupMemberFullInfo{}} + setGroupInfo(req.OperationID, req.GroupID, MemberLeaveTips.Group, "") + setOpUserInfo(req.OperationID, req.OpUserID, req.GroupID, MemberLeaveTips.EntrantUser) + + var tips open_im_sdk.TipsComm + tips.Detail, _ = json.Marshal(MemberLeaveTips) + tips.DefaultTips = "MemberEnterNotification" + n.Content, _ = json.Marshal(tips) + n.RecvID = req.GroupID + Notification(&n, true) + +} + +//message MemberInfoChangedTips{ +// int32 ChangeType = 1; //1:info changed; 2:mute +// GroupMemberFullInfo OpUser = 2; //who do this +// GroupMemberFullInfo FinalInfo = 3; // +// uint64 MuteTime = 4; +// GroupInfo Group = 5; +//} +//func MemberInfoChangedNotification(operationID string, group *immysql.Group, opUser *immysql.GroupMember, userFinalInfo *immysql.GroupMember) { + +//} + +//message FriendApplicationAddedTips{ +// PublicUserInfo OpUser = 1; //user1 +// FriendApplication Application = 2; +// PublicUserInfo OpedUser = 3; //user2 +//} + +func getFromToUserNickname(operationID, fromUserID, toUserID string) (string, string) { + from, err1 := imdb.GetUserByUserID(fromUserID) + to, err2 := imdb.GetUserByUserID(toUserID) + if err1 != nil || err2 != nil { + log.NewError("FindUserByUID failed ", err1, err2, fromUserID, toUserID) + } + fromNickname, toNickname := "", "" + if from != nil { + fromNickname = from.Nickname + } + if to != nil { + toNickname = to.Nickname + } + return fromNickname, toNickname +} + +func FriendApplicationAddedNotification(req *pbFriend.AddFriendReq) { + var n NotificationMsg + n.SendID = req.CommID.FromUserID + n.RecvID = req.CommID.ToUserID + n.ContentType = constant.FriendApplicationAddedNotification + n.SessionType = constant.SingleChatType + n.MsgFrom = constant.SysMsgType + n.OperationID = req.CommID.OperationID + + var FriendApplicationAddedTips open_im_sdk.FriendApplicationAddedTips + FriendApplicationAddedTips.FromToUserID.FromUserID = req.CommID.FromUserID + FriendApplicationAddedTips.FromToUserID.ToUserID = req.CommID.ToUserID + fromUserNickname, toUserNickname := getFromToUserNickname(req.CommID.OperationID, req.CommID.FromUserID, req.CommID.ToUserID) + var tips open_im_sdk.TipsComm + tips.Detail, _ = json.Marshal(FriendApplicationAddedTips) + tips.DefaultTips = fromUserNickname + " FriendApplicationAddedNotification " + toUserNickname + n.Content, _ = json.Marshal(tips) + Notification(&n, true) +} + +func FriendApplicationProcessedNotification(req *pbFriend.AddFriendResponseReq) { + var n NotificationMsg + n.SendID = req.CommID.FromUserID + n.RecvID = req.CommID.ToUserID + n.ContentType = constant.FriendApplicationProcessedNotification + n.SessionType = constant.SingleChatType + n.MsgFrom = constant.SysMsgType + n.OperationID = req.CommID.OperationID + + var FriendApplicationProcessedTips open_im_sdk.FriendApplicationProcessedTips + FriendApplicationProcessedTips.FromToUserID.FromUserID = req.CommID.FromUserID + FriendApplicationProcessedTips.FromToUserID.ToUserID = req.CommID.ToUserID + fromUserNickname, toUserNickname := getFromToUserNickname(req.CommID.OperationID, req.CommID.FromUserID, req.CommID.ToUserID) + var tips open_im_sdk.TipsComm + tips.Detail, _ = json.Marshal(FriendApplicationProcessedTips) + tips.DefaultTips = fromUserNickname + " FriendApplicationProcessedNotification " + toUserNickname + n.Content, _ = json.Marshal(tips) + Notification(&n, true) +} + +func FriendAddedNotification(operationID, opUserID, fromUserID, toUserID string) { + var n NotificationMsg + n.SendID = fromUserID + n.RecvID = toUserID + n.ContentType = constant.FriendAddedNotification + n.SessionType = constant.SingleChatType + n.MsgFrom = constant.SysMsgType + n.OperationID = operationID + + var FriendAddedTips open_im_sdk.FriendAddedTips + + user, err := imdb.GetUserByUserID(opUserID) + if err != nil { + log.NewError(operationID, "FindUserByUID failed ", err.Error(), opUserID) + + } else { + utils.CopyStructFields(FriendAddedTips.OpUser, user) + } + + friend, err := imdb.GetFriendRelationshipFromFriend(fromUserID, toUserID) + if err != nil { + log.NewError(operationID, "FindUserByUID failed ", err.Error(), fromUserID, toUserID) + } else { + FriendAddedTips.Friend.Remark = friend.Remark + } + + from, err := imdb.GetUserByUserID(fromUserID) + if err != nil { + log.NewError(operationID, "FindUserByUID failed ", err.Error(), fromUserID) + + } else { + utils.CopyStructFields(FriendAddedTips.Friend, from) + } + + to, err := imdb.GetUserByUserID(toUserID) + if err != nil { + log.NewError(operationID, "FindUserByUID failed ", err.Error(), toUserID) + + } else { + utils.CopyStructFields(FriendAddedTips.Friend.FriendUser, to) + } + + fromUserNickname, toUserNickname := from.Nickname, to.Nickname + var tips open_im_sdk.TipsComm + tips.Detail, _ = json.Marshal(FriendAddedTips) + tips.DefaultTips = fromUserNickname + " FriendAddedNotification " + toUserNickname + n.Content, _ = json.Marshal(tips) + Notification(&n, true) +} + +//message FriendDeletedTips{ +// FriendInfo Friend = 1; +//} +func FriendDeletedNotification(req *pbFriend.DeleteFriendReq) { + var n NotificationMsg + n.SendID = req.CommID.FromUserID + n.RecvID = req.CommID.ToUserID + n.ContentType = constant.FriendDeletedNotification + n.SessionType = constant.SingleChatType + n.MsgFrom = constant.SysMsgType + n.OperationID = req.CommID.OperationID + + var FriendDeletedTips open_im_sdk.FriendDeletedTips + FriendDeletedTips.FromToUserID.FromUserID = req.CommID.FromUserID + FriendDeletedTips.FromToUserID.ToUserID = req.CommID.ToUserID + fromUserNickname, toUserNickname := getFromToUserNickname(req.CommID.OperationID, req.CommID.FromUserID, req.CommID.ToUserID) + var tips open_im_sdk.TipsComm + tips.Detail, _ = json.Marshal(FriendDeletedTips) + tips.DefaultTips = fromUserNickname + " FriendDeletedNotification " + toUserNickname + n.Content, _ = json.Marshal(tips) + Notification(&n, true) +} + +//message FriendInfoChangedTips{ +// FriendInfo Friend = 1; +// PublicUserInfo OpUser = 2; +// uint64 OperationTime = 3; +//} +func FriendInfoChangedNotification(operationID, opUserID, fromUserID, toUserID string) { + var n NotificationMsg + n.SendID = fromUserID + n.RecvID = toUserID + n.ContentType = constant.FriendInfoChangedNotification + n.SessionType = constant.SingleChatType + n.MsgFrom = constant.SysMsgType + n.OperationID = operationID + + var FriendInfoChangedTips open_im_sdk.FriendInfoChangedTips + FriendInfoChangedTips.FromToUserID.FromUserID = fromUserID + FriendInfoChangedTips.FromToUserID.ToUserID = toUserID + fromUserNickname, toUserNickname := getFromToUserNickname(operationID, fromUserID, toUserID) + var tips open_im_sdk.TipsComm + tips.Detail, _ = json.Marshal(FriendInfoChangedTips) + tips.DefaultTips = fromUserNickname + " FriendDeletedNotification " + toUserNickname + n.Content, _ = json.Marshal(tips) + Notification(&n, true) +} + +func BlackAddedNotification(req *pbFriend.AddBlacklistReq) { + var n NotificationMsg + n.SendID = req.CommID.FromUserID + n.RecvID = req.CommID.ToUserID + n.ContentType = constant.BlackAddedNotification + n.SessionType = constant.SingleChatType + n.MsgFrom = constant.SysMsgType + n.OperationID = req.CommID.OperationID + + var BlackAddedTips open_im_sdk.BlackAddedTips + BlackAddedTips.FromToUserID.FromUserID = req.CommID.FromUserID + BlackAddedTips.FromToUserID.ToUserID = req.CommID.ToUserID + fromUserNickname, toUserNickname := getFromToUserNickname(req.CommID.OperationID, req.CommID.FromUserID, req.CommID.ToUserID) + var tips open_im_sdk.TipsComm + tips.Detail, _ = json.Marshal(BlackAddedTips) + tips.DefaultTips = fromUserNickname + " BlackAddedNotification " + toUserNickname + n.Content, _ = json.Marshal(tips) + Notification(&n, true) +} + +//message BlackDeletedTips{ +// BlackInfo Black = 1; +//} +func BlackDeletedNotification(req *pbFriend.RemoveBlacklistReq) { + var n NotificationMsg + n.SendID = req.CommID.FromUserID + n.RecvID = req.CommID.ToUserID + n.ContentType = constant.BlackDeletedNotification + n.SessionType = constant.SingleChatType + n.MsgFrom = constant.SysMsgType + n.OperationID = req.CommID.OperationID + + var BlackDeletedTips open_im_sdk.BlackDeletedTips + BlackDeletedTips.FromToUserID.FromUserID = req.CommID.FromUserID + BlackDeletedTips.FromToUserID.ToUserID = req.CommID.ToUserID + fromUserNickname, toUserNickname := getFromToUserNickname(req.CommID.OperationID, req.CommID.FromUserID, req.CommID.ToUserID) + var tips open_im_sdk.TipsComm + tips.Detail, _ = json.Marshal(BlackDeletedTips) + tips.DefaultTips = fromUserNickname + " BlackDeletedNotification " + toUserNickname + n.Content, _ = json.Marshal(tips) + Notification(&n, true) +} + +//message SelfInfoUpdatedTips{ +// UserInfo SelfUserInfo = 1; +// PublicUserInfo OpUser = 2; +// uint64 OperationTime = 3; +//} +func SelfInfoUpdatedNotification(operationID, userID string) { + var n NotificationMsg + n.SendID = userID + n.RecvID = userID + n.ContentType = constant.SelfInfoUpdatedNotification + n.SessionType = constant.SingleChatType + n.MsgFrom = constant.SysMsgType + n.OperationID = operationID + + var SelfInfoUpdatedTips open_im_sdk.SelfInfoUpdatedTips + SelfInfoUpdatedTips.UserID = userID + + var tips open_im_sdk.TipsComm + u, err := imdb.GetUserByUserID(userID) + if err != nil { + log.NewError(operationID, "FindUserByUID failed ", err.Error(), userID) + } + + tips.Detail, _ = json.Marshal(SelfInfoUpdatedTips) + tips.DefaultTips = u.Nickname + " SelfInfoUpdatedNotification " + n.Content, _ = json.Marshal(tips) + Notification(&n, true) +} diff --git a/internal/rpc/msg/send_msg.go b/internal/rpc/msg/send_msg.go index 6242dfee4..4c0c3ad2d 100644 --- a/internal/rpc/msg/send_msg.go +++ b/internal/rpc/msg/send_msg.go @@ -4,15 +4,11 @@ import ( "Open_IM/pkg/common/config" "Open_IM/pkg/common/constant" "Open_IM/pkg/common/db" - imdb "Open_IM/pkg/common/db/mysql_model/im_mysql_model" http2 "Open_IM/pkg/common/http" "Open_IM/pkg/common/log" - "Open_IM/pkg/common/token_verify" "Open_IM/pkg/grpc-etcdv3/getcdv3" pbChat "Open_IM/pkg/proto/chat" - pbFriend "Open_IM/pkg/proto/friend" pbGroup "Open_IM/pkg/proto/group" - open_im_sdk "Open_IM/pkg/proto/sdk_ws" sdk_ws "Open_IM/pkg/proto/sdk_ws" "Open_IM/pkg/utils" "context" @@ -301,585 +297,3 @@ func Notification(n *NotificationMsg, onlineUserOnly bool) { log.NewError(req.OperationID, "SendMsg rpc failed, ", req.String()) } } - -//message GroupCreatedTips{ -// GroupInfo Group = 1; -// GroupMemberFullInfo Creator = 2; -// repeated GroupMemberFullInfo MemberList = 3; -// uint64 OperationTime = 4; -//} creator->group - -func setOpUserInfo(operationID, opUserID, groupID string, groupMemberInfo *open_im_sdk.GroupMemberFullInfo) { - if token_verify.IsMangerUserID(opUserID) { - u, err := imdb.GetUserByUserID(opUserID) - if err != nil { - log.NewError(operationID, "FindUserByUID failed ", err.Error(), opUserID) - return - } - utils.CopyStructFields(groupMemberInfo, u) - groupMemberInfo.AppMangerLevel = 1 - } else { - u, err := imdb.FindGroupMemberInfoByGroupIdAndUserId(groupID, opUserID) - if err != nil { - log.NewError(operationID, "FindGroupMemberInfoByGroupIdAndUserId failed ", err.Error(), groupID, opUserID) - return - } - utils.CopyStructFields(groupMemberInfo, u) - } -} - -func setGroupInfo(operationID, groupID string, groupInfo *open_im_sdk.GroupInfo, ownerUserID string) { - group, err := imdb.FindGroupInfoByGroupId(groupID) - if err != nil { - log.NewError(operationID, "FindGroupInfoByGroupId failed ", err.Error(), groupID) - return - } - utils.CopyStructFields(groupInfo, group) - - if ownerUserID != "" { - groupInfo.Owner = &open_im_sdk.PublicUserInfo{} - setGroupPublicUserInfo(operationID, groupID, ownerUserID, groupInfo.Owner) - } -} - -func setGroupMemberInfo(operationID, groupID, userID string, groupMemberInfo *open_im_sdk.GroupMemberFullInfo) { - group, err := imdb.FindGroupMemberInfoByGroupIdAndUserId(groupID, userID) - if err != nil { - log.NewError(operationID, "FindGroupMemberInfoByGroupIdAndUserId failed ", err.Error(), groupID, userID) - return - } - utils.CopyStructFields(groupMemberInfo, group) -} - -func setGroupPublicUserInfo(operationID, groupID, userID string, publicUserInfo *open_im_sdk.PublicUserInfo) { - group, err := imdb.FindGroupMemberInfoByGroupIdAndUserId(groupID, userID) - if err != nil { - log.NewError(operationID, "FindGroupMemberInfoByGroupIdAndUserId failed ", err.Error(), groupID, userID) - return - } - utils.CopyStructFields(publicUserInfo, group) -} - -//创建群后调用 -func GroupCreatedNotification(operationID, opUserID, OwnerUserID, groupID string, initMemberList []string) { - var n NotificationMsg - n.SendID = opUserID - n.RecvID = groupID - n.ContentType = constant.GroupCreatedNotification - n.SessionType = constant.GroupChatType - n.MsgFrom = constant.SysMsgType - n.OperationID = operationID - - GroupCreatedTips := open_im_sdk.GroupCreatedTips{Group: &open_im_sdk.GroupInfo{}, - Creator: &open_im_sdk.GroupMemberFullInfo{}} - setOpUserInfo(operationID, GroupCreatedTips.Creator.UserID, groupID, GroupCreatedTips.Creator) - - setGroupInfo(operationID, groupID, GroupCreatedTips.Group, OwnerUserID) - - for _, v := range initMemberList { - var groupMemberInfo open_im_sdk.GroupMemberFullInfo - setGroupMemberInfo(operationID, groupID, v, &groupMemberInfo) - GroupCreatedTips.MemberList = append(GroupCreatedTips.MemberList, &groupMemberInfo) - } - - var tips open_im_sdk.TipsComm - tips.Detail, _ = json.Marshal(GroupCreatedTips) - tips.DefaultTips = config.Config.Notification.GroupCreated.DefaultTips.Tips - n.Content, _ = json.Marshal(tips) - Notification(&n, false) -} - -//message ReceiveJoinApplicationTips{ -// GroupInfo Group = 1; -// PublicUserInfo Applicant = 2; -// string Reason = 3; -//} apply->all managers GroupID string `protobuf:"bytes,1,opt,name=GroupID" json:"GroupID,omitempty"` -// ReqMessage string `protobuf:"bytes,2,opt,name=ReqMessage" json:"ReqMessage,omitempty"` -// OpUserID string `protobuf:"bytes,3,opt,name=OpUserID" json:"OpUserID,omitempty"` -// OperationID string `protobuf:"bytes,4,opt,name=OperationID" json:"OperationID,omitempty"` -//申请进群后调用 -func JoinApplicationNotification(req *pbGroup.JoinGroupReq) { - managerList, err := imdb.GetOwnerManagerByGroupId(req.GroupID) - if err != nil { - log.NewError(req.OperationID, "GetOwnerManagerByGroupId failed ", err.Error(), req.GroupID) - return - } - - var n NotificationMsg - n.SendID = req.OpUserID - n.ContentType = constant.JoinApplicationNotification - n.SessionType = constant.SingleChatType - n.MsgFrom = constant.SysMsgType - n.OperationID = req.OperationID - - JoinGroupApplicationTips := open_im_sdk.JoinGroupApplicationTips{Group: &open_im_sdk.GroupInfo{}, Applicant: &open_im_sdk.PublicUserInfo{}} - setGroupInfo(req.OperationID, req.GroupID, JoinGroupApplicationTips.Group, "") - - apply, err := imdb.FindUserByUID(req.OpUserID) - if err != nil { - log.NewError(req.OperationID, "FindUserByUID failed ", err.Error(), req.OpUserID) - return - } - utils.CopyStructFields(JoinGroupApplicationTips.Applicant, apply) - JoinGroupApplicationTips.Reason = req.ReqMessage - - var tips open_im_sdk.TipsComm - tips.Detail, _ = json.Marshal(JoinGroupApplicationTips) - tips.DefaultTips = "JoinGroupApplicationTips" - n.Content, _ = json.Marshal(tips) - for _, v := range managerList { - n.RecvID = v.UserID - Notification(&n, true) - } -} - -//message ApplicationProcessedTips{ -// GroupInfo Group = 1; -// GroupMemberFullInfo OpUser = 2; -// int32 Result = 3; -// string Reason = 4; -//} -//处理进群请求后调用 -func ApplicationProcessedNotification(req *pbGroup.GroupApplicationResponseReq) { - var n NotificationMsg - n.SendID = req.OpUserID - n.ContentType = constant.ApplicationProcessedNotification - n.SessionType = constant.SingleChatType - n.MsgFrom = constant.SysMsgType - n.OperationID = req.OperationID - n.RecvID = req.ToUserID - - ApplicationProcessedTips := open_im_sdk.ApplicationProcessedTips{Group: &open_im_sdk.GroupInfo{}, OpUser: &open_im_sdk.GroupMemberFullInfo{}} - setGroupInfo(req.OperationID, req.GroupID, ApplicationProcessedTips.Group, "") - setOpUserInfo(req.OperationID, req.OpUserID, req.GroupID, ApplicationProcessedTips.OpUser) - ApplicationProcessedTips.Reason = req.HandledMsg - ApplicationProcessedTips.Result = req.HandleResult - - var tips open_im_sdk.TipsComm - tips.Detail, _ = json.Marshal(ApplicationProcessedTips) - tips.DefaultTips = "ApplicationProcessedNotification" - n.Content, _ = json.Marshal(tips) - - Notification(&n, true) -} - -//message MemberInvitedTips{ -// GroupInfo Group = 1; -// GroupMemberFullInfo OpUser = 2; -// GroupMemberFullInfo InvitedUser = 3; -// uint64 OperationTime = 4; -//} -//被邀请进群后调用 -func MemberInvitedNotification(operationID, groupID, opUserID, reason string, invitedUserIDList []string) { - var n NotificationMsg - n.SendID = opUserID - n.ContentType = constant.MemberInvitedNotification - n.SessionType = constant.GroupChatType - n.MsgFrom = constant.SysMsgType - n.OperationID = operationID - - ApplicationProcessedTips := open_im_sdk.MemberInvitedTips{Group: &open_im_sdk.GroupInfo{}, OpUser: &open_im_sdk.GroupMemberFullInfo{}} - setGroupInfo(operationID, groupID, ApplicationProcessedTips.Group, "") - setOpUserInfo(operationID, opUserID, groupID, ApplicationProcessedTips.OpUser) - for _, v := range invitedUserIDList { - var groupMemberInfo open_im_sdk.GroupMemberFullInfo - setGroupMemberInfo(operationID, groupID, v, &groupMemberInfo) - ApplicationProcessedTips.InvitedUserList = append(ApplicationProcessedTips.InvitedUserList, &groupMemberInfo) - } - var tips open_im_sdk.TipsComm - tips.Detail, _ = json.Marshal(ApplicationProcessedTips) - tips.DefaultTips = "MemberInvitedNotification" - n.Content, _ = json.Marshal(tips) - n.RecvID = groupID - Notification(&n, true) -} - -//message MemberKickedTips{ -// GroupInfo Group = 1; -// GroupMemberFullInfo OpUser = 2; -// GroupMemberFullInfo KickedUser = 3; -// uint64 OperationTime = 4; -//} -//被踢后调用 -func MemberKickedNotification(req *pbGroup.KickGroupMemberReq, kickedUserIDList []string) { - var n NotificationMsg - n.SendID = req.OpUserID - n.ContentType = constant.MemberKickedNotification - n.SessionType = constant.GroupChatType - n.MsgFrom = constant.SysMsgType - n.OperationID = req.OperationID - - MemberKickedTips := open_im_sdk.MemberKickedTips{Group: &open_im_sdk.GroupInfo{}, OpUser: &open_im_sdk.GroupMemberFullInfo{}} - setGroupInfo(req.OperationID, req.GroupID, MemberKickedTips.Group, "") - setOpUserInfo(req.OperationID, req.OpUserID, req.GroupID, MemberKickedTips.OpUser) - for _, v := range kickedUserIDList { - var groupMemberInfo open_im_sdk.GroupMemberFullInfo - setGroupMemberInfo(req.OperationID, req.GroupID, v, &groupMemberInfo) - MemberKickedTips.KickedUserList = append(MemberKickedTips.KickedUserList, &groupMemberInfo) - } - var tips open_im_sdk.TipsComm - tips.Detail, _ = json.Marshal(MemberKickedTips) - tips.DefaultTips = "MemberKickedNotification" - n.Content, _ = json.Marshal(tips) - n.RecvID = req.GroupID - Notification(&n, true) - - for _, v := range kickedUserIDList { - n.SessionType = constant.SingleChatType - n.RecvID = v - Notification(&n, true) - } -} - -//message GroupInfoChangedTips{ -// int32 ChangedType = 1; //bitwise operators: 1:groupName; 10:Notification 100:Introduction; 1000:FaceUrl -// GroupInfo Group = 2; -// GroupMemberFullInfo OpUser = 3; -//} - -//群信息改变后掉用 -func GroupInfoChangedNotification(operationID, opUserID, groupID string, changedType int32) { - var n NotificationMsg - n.SendID = opUserID - n.ContentType = constant.GroupInfoChangedNotification - n.SessionType = constant.GroupChatType - n.MsgFrom = constant.SysMsgType - n.OperationID = operationID - - GroupInfoChangedTips := open_im_sdk.GroupInfoChangedTips{Group: &open_im_sdk.GroupInfo{}, OpUser: &open_im_sdk.GroupMemberFullInfo{}} - setGroupInfo(operationID, groupID, GroupInfoChangedTips.Group, opUserID) - setOpUserInfo(operationID, opUserID, groupID, GroupInfoChangedTips.OpUser) - GroupInfoChangedTips.ChangedType = changedType - var tips open_im_sdk.TipsComm - tips.Detail, _ = json.Marshal(GroupInfoChangedTips) - tips.DefaultTips = "GroupInfoChangedNotification" - n.Content, _ = json.Marshal(tips) - n.RecvID = groupID - Notification(&n, false) -} - -/* -func GroupInfoChangedNotification(operationID string, changedType int32, group *immysql.Group, opUser *immysql.GroupMember) { - var n NotificationMsg - n.SendID = opUser.UserID - n.RecvID = group.GroupID - n.ContentType = constant.ChangeGroupInfoTip - n.SessionType = constant.GroupChatType - n.MsgFrom = constant.SysMsgType - n.OperationID = operationID - - var groupInfoChanged open_im_sdk.GroupInfoChangedTips - groupInfoChanged.Group = &open_im_sdk.GroupInfo{} - utils.CopyStructFields(groupInfoChanged.Group, group) - groupInfoChanged.OpUser = &open_im_sdk.GroupMemberFullInfo{} - utils.CopyStructFields(groupInfoChanged.OpUser, opUser) - groupInfoChanged.ChangedType = changedType - - var tips open_im_sdk.TipsComm - tips.Detail, _ = json.Marshal(groupInfoChanged) - tips.DefaultTips = config.Config.Notification.GroupInfoChanged.DefaultTips.Tips - n.Content, _ = json.Marshal(tips) - Notification(&n, false) -} -*/ - -//message MemberLeaveTips{ -// GroupInfo Group = 1; -// GroupMemberFullInfo LeaverUser = 2; -// uint64 OperationTime = 3; -//} - -//群成员退群后调用 -func MemberLeaveNotification(req *pbGroup.QuitGroupReq) { - var n NotificationMsg - n.SendID = req.OpUserID - n.ContentType = constant.MemberLeaveNotification - n.SessionType = constant.GroupChatType - n.MsgFrom = constant.SysMsgType - n.OperationID = req.OperationID - - MemberLeaveTips := open_im_sdk.MemberLeaveTips{Group: &open_im_sdk.GroupInfo{}, LeaverUser: &open_im_sdk.GroupMemberFullInfo{}} - setGroupInfo(req.OperationID, req.GroupID, MemberLeaveTips.Group, "") - setOpUserInfo(req.OperationID, req.OpUserID, req.GroupID, MemberLeaveTips.LeaverUser) - - var tips open_im_sdk.TipsComm - tips.Detail, _ = json.Marshal(MemberLeaveTips) - tips.DefaultTips = "MemberLeaveNotification" - n.Content, _ = json.Marshal(tips) - n.RecvID = req.GroupID - Notification(&n, true) - - n.SessionType = constant.SingleChatType - n.RecvID = req.OpUserID - Notification(&n, true) -} - -//message MemberEnterTips{ -// GroupInfo Group = 1; -// GroupMemberFullInfo EntrantUser = 2; -// uint64 OperationTime = 3; -//} -//群成员主动申请进群,管理员同意后调用, -func MemberEnterNotification(req *pbGroup.GroupApplicationResponseReq) { - var n NotificationMsg - n.SendID = req.OpUserID - n.ContentType = constant.MemberEnterNotification - n.SessionType = constant.GroupChatType - n.MsgFrom = constant.SysMsgType - n.OperationID = req.OperationID - - MemberLeaveTips := open_im_sdk.MemberEnterTips{Group: &open_im_sdk.GroupInfo{}, EntrantUser: &open_im_sdk.GroupMemberFullInfo{}} - setGroupInfo(req.OperationID, req.GroupID, MemberLeaveTips.Group, "") - setOpUserInfo(req.OperationID, req.OpUserID, req.GroupID, MemberLeaveTips.EntrantUser) - - var tips open_im_sdk.TipsComm - tips.Detail, _ = json.Marshal(MemberLeaveTips) - tips.DefaultTips = "MemberEnterNotification" - n.Content, _ = json.Marshal(tips) - n.RecvID = req.GroupID - Notification(&n, true) - -} - -//message MemberInfoChangedTips{ -// int32 ChangeType = 1; //1:info changed; 2:mute -// GroupMemberFullInfo OpUser = 2; //who do this -// GroupMemberFullInfo FinalInfo = 3; // -// uint64 MuteTime = 4; -// GroupInfo Group = 5; -//} -//func MemberInfoChangedNotification(operationID string, group *immysql.Group, opUser *immysql.GroupMember, userFinalInfo *immysql.GroupMember) { - -//} - -//message FriendApplicationAddedTips{ -// PublicUserInfo OpUser = 1; //user1 -// FriendApplication Application = 2; -// PublicUserInfo OpedUser = 3; //user2 -//} - -func getFromToUserNickname(operationID, fromUserID, toUserID string) (string, string) { - from, err1 := imdb.FindUserByUID(fromUserID) - to, err2 := imdb.FindUserByUID(toUserID) - if err1 != nil || err2 != nil { - log.NewError("FindUserByUID failed ", err1, err2, fromUserID, toUserID) - } - fromNickname, toNickname := "", "" - if from != nil { - fromNickname = from.Nickname - } - if to != nil { - toNickname = to.Nickname - } - return fromNickname, toNickname -} - -func FriendApplicationAddedNotification(req *pbFriend.AddFriendReq) { - var n NotificationMsg - n.SendID = req.CommID.FromUserID - n.RecvID = req.CommID.ToUserID - n.ContentType = constant.FriendApplicationAddedNotification - n.SessionType = constant.SingleChatType - n.MsgFrom = constant.SysMsgType - n.OperationID = req.CommID.OperationID - - var FriendApplicationAddedTips open_im_sdk.FriendApplicationAddedTips - FriendApplicationAddedTips.FromToUserID.FromUserID = req.CommID.FromUserID - FriendApplicationAddedTips.FromToUserID.ToUserID = req.CommID.ToUserID - fromUserNickname, toUserNickname := getFromToUserNickname(req.CommID.OperationID, req.CommID.FromUserID, req.CommID.ToUserID) - var tips open_im_sdk.TipsComm - tips.Detail, _ = json.Marshal(FriendApplicationAddedTips) - tips.DefaultTips = fromUserNickname + " FriendApplicationAddedNotification " + toUserNickname - n.Content, _ = json.Marshal(tips) - Notification(&n, true) -} - -func FriendApplicationProcessedNotification(req *pbFriend.AddFriendResponseReq) { - var n NotificationMsg - n.SendID = req.CommID.FromUserID - n.RecvID = req.CommID.ToUserID - n.ContentType = constant.FriendApplicationProcessedNotification - n.SessionType = constant.SingleChatType - n.MsgFrom = constant.SysMsgType - n.OperationID = req.CommID.OperationID - - var FriendApplicationProcessedTips open_im_sdk.FriendApplicationProcessedTips - FriendApplicationProcessedTips.FromToUserID.FromUserID = req.CommID.FromUserID - FriendApplicationProcessedTips.FromToUserID.ToUserID = req.CommID.ToUserID - fromUserNickname, toUserNickname := getFromToUserNickname(req.CommID.OperationID, req.CommID.FromUserID, req.CommID.ToUserID) - var tips open_im_sdk.TipsComm - tips.Detail, _ = json.Marshal(FriendApplicationProcessedTips) - tips.DefaultTips = fromUserNickname + " FriendApplicationProcessedNotification " + toUserNickname - n.Content, _ = json.Marshal(tips) - Notification(&n, true) -} - -func FriendAddedNotification(operationID, opUserID, fromUserID, toUserID string) { - var n NotificationMsg - n.SendID = fromUserID - n.RecvID = toUserID - n.ContentType = constant.FriendAddedNotification - n.SessionType = constant.SingleChatType - n.MsgFrom = constant.SysMsgType - n.OperationID = operationID - - var FriendAddedTips open_im_sdk.FriendAddedTips - - user, err := imdb.FindUserByUID(opUserID) - if err != nil { - log.NewError(operationID, "FindUserByUID failed ", err.Error(), opUserID) - - } else { - utils.CopyStructFields(FriendAddedTips.OpUser, user) - } - - friend, err := imdb.FindFriendRelationshipFromFriend(fromUserID, toUserID) - if err != nil { - log.NewError(operationID, "FindUserByUID failed ", err.Error(), fromUserID, toUserID) - } else { - FriendAddedTips.Friend.Remark = friend.Remark - } - - from, err := imdb.FindUserByUID(fromUserID) - if err != nil { - log.NewError(operationID, "FindUserByUID failed ", err.Error(), fromUserID) - - } else { - utils.CopyStructFields(FriendAddedTips.Friend.OwnerUser, from) - } - - to, err := imdb.FindUserByUID(toUserID) - if err != nil { - log.NewError(operationID, "FindUserByUID failed ", err.Error(), toUserID) - - } else { - utils.CopyStructFields(FriendAddedTips.Friend.FriendUser, to) - } - - fromUserNickname, toUserNickname := FriendAddedTips.Friend.OwnerUser.Nickname, FriendAddedTips.Friend.FriendUser.Nickname - var tips open_im_sdk.TipsComm - tips.Detail, _ = json.Marshal(FriendAddedTips) - tips.DefaultTips = fromUserNickname + " FriendAddedNotification " + toUserNickname - n.Content, _ = json.Marshal(tips) - Notification(&n, true) -} - -//message FriendDeletedTips{ -// FriendInfo Friend = 1; -//} -func FriendDeletedNotification(req *pbFriend.DeleteFriendReq) { - var n NotificationMsg - n.SendID = req.CommID.FromUserID - n.RecvID = req.CommID.ToUserID - n.ContentType = constant.FriendDeletedNotification - n.SessionType = constant.SingleChatType - n.MsgFrom = constant.SysMsgType - n.OperationID = req.CommID.OperationID - - var FriendDeletedTips open_im_sdk.FriendDeletedTips - FriendDeletedTips.FromToUserID.FromUserID = req.CommID.FromUserID - FriendDeletedTips.FromToUserID.ToUserID = req.CommID.ToUserID - fromUserNickname, toUserNickname := getFromToUserNickname(req.CommID.OperationID, req.CommID.FromUserID, req.CommID.ToUserID) - var tips open_im_sdk.TipsComm - tips.Detail, _ = json.Marshal(FriendDeletedTips) - tips.DefaultTips = fromUserNickname + " FriendDeletedNotification " + toUserNickname - n.Content, _ = json.Marshal(tips) - Notification(&n, true) -} - -//message FriendInfoChangedTips{ -// FriendInfo Friend = 1; -// PublicUserInfo OpUser = 2; -// uint64 OperationTime = 3; -//} -func FriendInfoChangedNotification(operationID, opUserID, fromUserID, toUserID string) { - var n NotificationMsg - n.SendID = fromUserID - n.RecvID = toUserID - n.ContentType = constant.FriendInfoChangedNotification - n.SessionType = constant.SingleChatType - n.MsgFrom = constant.SysMsgType - n.OperationID = operationID - - var FriendInfoChangedTips open_im_sdk.FriendInfoChangedTips - FriendInfoChangedTips.FromToUserID.FromUserID = fromUserID - FriendInfoChangedTips.FromToUserID.ToUserID = toUserID - fromUserNickname, toUserNickname := getFromToUserNickname(operationID, fromUserID, toUserID) - var tips open_im_sdk.TipsComm - tips.Detail, _ = json.Marshal(FriendInfoChangedTips) - tips.DefaultTips = fromUserNickname + " FriendDeletedNotification " + toUserNickname - n.Content, _ = json.Marshal(tips) - Notification(&n, true) -} - -func BlackAddedNotification(req *pbFriend.AddBlacklistReq) { - var n NotificationMsg - n.SendID = req.CommID.FromUserID - n.RecvID = req.CommID.ToUserID - n.ContentType = constant.BlackAddedNotification - n.SessionType = constant.SingleChatType - n.MsgFrom = constant.SysMsgType - n.OperationID = req.CommID.OperationID - - var BlackAddedTips open_im_sdk.BlackAddedTips - BlackAddedTips.FromToUserID.FromUserID = req.CommID.FromUserID - BlackAddedTips.FromToUserID.ToUserID = req.CommID.ToUserID - fromUserNickname, toUserNickname := getFromToUserNickname(req.CommID.OperationID, req.CommID.FromUserID, req.CommID.ToUserID) - var tips open_im_sdk.TipsComm - tips.Detail, _ = json.Marshal(BlackAddedTips) - tips.DefaultTips = fromUserNickname + " BlackAddedNotification " + toUserNickname - n.Content, _ = json.Marshal(tips) - Notification(&n, true) -} - -//message BlackDeletedTips{ -// BlackInfo Black = 1; -//} -func BlackDeletedNotification(req *pbFriend.RemoveBlacklistReq) { - var n NotificationMsg - n.SendID = req.CommID.FromUserID - n.RecvID = req.CommID.ToUserID - n.ContentType = constant.BlackDeletedNotification - n.SessionType = constant.SingleChatType - n.MsgFrom = constant.SysMsgType - n.OperationID = req.CommID.OperationID - - var BlackDeletedTips open_im_sdk.BlackDeletedTips - BlackDeletedTips.FromToUserID.FromUserID = req.CommID.FromUserID - BlackDeletedTips.FromToUserID.ToUserID = req.CommID.ToUserID - fromUserNickname, toUserNickname := getFromToUserNickname(req.CommID.OperationID, req.CommID.FromUserID, req.CommID.ToUserID) - var tips open_im_sdk.TipsComm - tips.Detail, _ = json.Marshal(BlackDeletedTips) - tips.DefaultTips = fromUserNickname + " BlackDeletedNotification " + toUserNickname - n.Content, _ = json.Marshal(tips) - Notification(&n, true) -} - -//message SelfInfoUpdatedTips{ -// UserInfo SelfUserInfo = 1; -// PublicUserInfo OpUser = 2; -// uint64 OperationTime = 3; -//} -func SelfInfoUpdatedNotification(operationID, userID string) { - var n NotificationMsg - n.SendID = userID - n.RecvID = userID - n.ContentType = constant.SelfInfoUpdatedNotification - n.SessionType = constant.SingleChatType - n.MsgFrom = constant.SysMsgType - n.OperationID = operationID - - var SelfInfoUpdatedTips open_im_sdk.SelfInfoUpdatedTips - SelfInfoUpdatedTips.UserID = userID - - var tips open_im_sdk.TipsComm - u, err := imdb.FindUserByUID(userID) - if err != nil { - log.NewError(operationID, "FindUserByUID failed ", err.Error(), userID) - } - - tips.Detail, _ = json.Marshal(SelfInfoUpdatedTips) - tips.DefaultTips = u.Nickname + " SelfInfoUpdatedNotification " - n.Content, _ = json.Marshal(tips) - Notification(&n, true) -} From b6944c430853f97ed4222df7256ba22e56d99419 Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Tue, 28 Dec 2021 15:33:47 +0800 Subject: [PATCH 250/814] tidy code --- cmd/open_im_api/main.go | 12 +- internal/api/conversation/conversation.go | 366 +++++++++-------- internal/api/manage/management_chat.go | 383 +++++++----------- internal/api/manage/management_user.go | 316 +++++++-------- internal/rpc/friend/firend.go | 5 +- internal/rpc/group/group.go | 9 +- internal/rpc/msg/notification.go | 21 + internal/rpc/user/user.go | 48 +-- pkg/base_info/conversation_api_struct.go | 1 + pkg/base_info/manage_api_struct.go | 98 +++++ .../im_mysql_model/friend_request_model.go | 1 + .../im_mysql_model/group_member_model.go | 3 +- .../mysql_model/im_mysql_model/group_model.go | 2 - .../im_mysql_model/group_request_model.go | 2 - .../im_mysql_model/model_struct.go | 2 +- pkg/common/utils/utils.go | 95 +++++ pkg/utils/utils.go | 89 ---- 17 files changed, 734 insertions(+), 719 deletions(-) create mode 100644 pkg/base_info/conversation_api_struct.go create mode 100644 pkg/base_info/manage_api_struct.go create mode 100644 pkg/common/utils/utils.go diff --git a/cmd/open_im_api/main.go b/cmd/open_im_api/main.go index 23a4c0ec0..1730812bb 100644 --- a/cmd/open_im_api/main.go +++ b/cmd/open_im_api/main.go @@ -26,12 +26,12 @@ func main() { { userRouterGroup.POST("/update_user_info", user.UpdateUserInfo) userRouterGroup.POST("/get_user_info", user.GetUserInfo) - userRouterGroup.POST("/get_users_online_status", user.GetUsersOnlineStatus) + //userRouterGroup.POST("/get_users_online_status", user.GetUsersOnlineStatus) } //friend routing group friendRouterGroup := r.Group("/friend") { - friendRouterGroup.POST("/get_friends_info", friend.GetFriendsInfo) + // friendRouterGroup.POST("/get_friends_info", friend.GetFriendsInfo) friendRouterGroup.POST("/add_friend", friend.AddFriend) friendRouterGroup.POST("/get_friend_apply_list", friend.GetFriendApplyList) friendRouterGroup.POST("/get_self_apply_list", friend.GetSelfApplyList) @@ -87,15 +87,15 @@ func main() { { managementGroup.POST("/delete_user", manage.DeleteUser) managementGroup.POST("/send_msg", manage.ManagementSendMsg) - managementGroup.POST("/get_all_users_uid", manage.GetAllUsersUid) - managementGroup.POST("/account_check", manage.AccountCheck) - managementGroup.POST("/get_users_online_status", manage.GetUsersOnlineStatus) + // managementGroup.POST("/get_all_users_uid", manage.GetAllUsersUid) + // managementGroup.POST("/account_check", manage.AccountCheck) + // managementGroup.POST("/get_users_online_status", manage.GetUsersOnlineStatus) } //Conversation conversationGroup := r.Group("/conversation") { conversationGroup.POST("/set_receive_message_opt", conversation.SetReceiveMessageOpt) - conversationGroup.POST("/get_receive_message_opt", conversation.GetReceiveMessageOpt) + // conversationGroup.POST("/get_receive_message_opt", conversation.GetReceiveMessageOpt) conversationGroup.POST("/get_all_conversation_message_opt", conversation.GetAllConversationMessageOpt) } diff --git a/internal/api/conversation/conversation.go b/internal/api/conversation/conversation.go index 4e4316b05..1d47c2c70 100644 --- a/internal/api/conversation/conversation.go +++ b/internal/api/conversation/conversation.go @@ -1,194 +1,192 @@ package conversation -import ( - "Open_IM/pkg/common/config" - "Open_IM/pkg/common/log" - "Open_IM/pkg/common/token_verify" - "Open_IM/pkg/grpc-etcdv3/getcdv3" - "Open_IM/pkg/proto/user" - "Open_IM/pkg/utils" - "context" - "github.com/gin-gonic/gin" - "net/http" - "strings" -) - -type paramsSetReceiveMessageOpt struct { - OperationID string `json:"operationID" binding:"required"` - Option *int32 `json:"option" binding:"required"` - ConversationIdList []string `json:"conversationIdList" binding:"required"` -} - -type OptResult struct { - ConversationId string `json:"conversationId" binding:"required"` - Result int32 `json:"result" binding:"required"` -} - -type SetReceiveMessageOptResp struct { - ErrCode int32 `json:"errCode"` - ErrMsg string `json:"errMsg"` - Data []OptResult `json:"data"` -} - -type paramGetReceiveMessageOpt struct { - ConversationIdList []string `json:"conversationIdList" binding:"required"` - OperationID string `json:"operationID" binding:"required"` -} - -type GetReceiveMessageOptResp struct { - SetReceiveMessageOptResp -} - -type paramGetAllConversationMessageOpt struct { - OperationID string `json:"operationID" binding:"required"` -} - -type GetAllConversationMessageOptResp struct { - SetReceiveMessageOptResp -} - -//CopyStructFields +import "github.com/gin-gonic/gin" + +// +//type paramsSetReceiveMessageOpt struct { +// OperationID string `json:"operationID" binding:"required"` +// Option *int32 `json:"option" binding:"required"` +// ConversationIdList []string `json:"conversationIdList" binding:"required"` +//} +// +//type OptResult struct { +// ConversationId string `json:"conversationId" binding:"required"` +// Result int32 `json:"result" binding:"required"` +//} +// +//type SetReceiveMessageOptResp struct { +// ErrCode int32 `json:"errCode"` +// ErrMsg string `json:"errMsg"` +// Data []OptResult `json:"data"` +//} +// +//type paramGetReceiveMessageOpt struct { +// ConversationIdList []string `json:"conversationIdList" binding:"required"` +// OperationID string `json:"operationID" binding:"required"` +//} +// +//type GetReceiveMessageOptResp struct { +// SetReceiveMessageOptResp +//} +// +//type paramGetAllConversationMessageOpt struct { +// OperationID string `json:"operationID" binding:"required"` +//} +// +//type GetAllConversationMessageOptResp struct { +// SetReceiveMessageOptResp +//} +// +////CopyStructFields func GetAllConversationMessageOpt(c *gin.Context) { - params := paramGetAllConversationMessageOpt{} - if err := c.BindJSON(¶ms); err != nil { - log.NewError(params.OperationID, "bind json failed ", err.Error(), c) - c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": "bind json failed " + err.Error()}) - return - } - - claims, err := token_verify.ParseToken(c.Request.Header.Get("token")) - if err != nil { - log.NewError(params.OperationID, "ParseToken failed, ", err.Error(), c.Request.Header.Get("token")) - c.JSON(http.StatusBadRequest, gin.H{"errCode": 401, "errMsg": "ParseToken failed, " + err.Error()}) - return - } - - req := &user.GetAllConversationMsgOptReq{ - UId: claims.UID, - OperationID: params.OperationID, - } - log.NewInfo(req.OperationID, "GetAllConversationMsgOpt req: ", req) - etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImUserName) - client := user.NewUserClient(etcdConn) - resp, err := client.GetAllConversationMsgOpt(context.Background(), req) - if err != nil { - log.NewError(params.OperationID, "GetAllConversationMsgOpt rpc failed, ", req, err.Error()) - c.JSON(http.StatusBadRequest, gin.H{"errCode": 401, "errMsg": "GetAllConversationMsgOpt rpc failed, " + err.Error()}) - return - } - var ginResp GetAllConversationMessageOptResp - ginResp.ErrCode = resp.ErrCode - ginResp.ErrMsg = resp.ErrMsg - for _, v := range resp.ConversationOptResult { - var opt OptResult - err := utils.CopyStructFields(&opt, *v, "ConversationId", "Result") - if err != nil { - log.NewError(req.OperationID, "CopyStructFields failed ", err.Error()) - continue - } - ginResp.Data = append(ginResp.Data, opt) - } - log.NewInfo(req.OperationID, "GetAllConversationMsgOpt resp: ", ginResp, req) - c.JSON(http.StatusOK, ginResp) -} -func GetReceiveMessageOpt(c *gin.Context) { - params := paramGetReceiveMessageOpt{} - if err := c.BindJSON(¶ms); err != nil { - log.NewError(params.OperationID, "bind json failed ", err.Error(), c) - c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": "bind json failed " + err.Error()}) - return - } - - claims, err := token_verify.ParseToken(c.Request.Header.Get("token")) - if err != nil { - log.NewError(params.OperationID, "ParseToken failed, ", err.Error(), c.Request.Header.Get("token")) - c.JSON(http.StatusBadRequest, gin.H{"errCode": 401, "errMsg": "ParseToken failed, " + err.Error()}) - return - } - - req := &user.GetReceiveMessageOptReq{ - UId: claims.UID, - ConversationId: params.ConversationIdList, - OperationID: params.OperationID, - } - log.NewInfo(req.OperationID, "GetReceiveMessageOptReq req: ", req) - etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImUserName) - client := user.NewUserClient(etcdConn) - resp, err := client.GetReceiveMessageOpt(context.Background(), req) - if err != nil { - log.NewError(params.OperationID, "GetReceiveMessageOpt rpc failed, ", req, err.Error()) - c.JSON(http.StatusBadRequest, gin.H{"errCode": 401, "errMsg": "GetReceiveMessageOpt rpc failed, " + err.Error()}) - return - } - log.NewInfo(req.OperationID, "GetReceiveMessageOptReq req: ", req, resp) - var ginResp GetReceiveMessageOptResp - ginResp.ErrCode = resp.ErrCode - ginResp.ErrMsg = resp.ErrMsg - - for _, v := range resp.ConversationOptResult { - var opt OptResult - log.NewInfo("CopyStructFields begin ", v, req.OperationID) - err := utils.CopyStructFields(&opt, *v, "ConversationId", "Result") - log.NewInfo("CopyStructFields end ", v, req.OperationID) - if err != nil { - log.NewError(req.OperationID, "CopyStructFields failed ", err.Error()) - continue - } - ginResp.Data = append(ginResp.Data, opt) - } - log.NewInfo(req.OperationID, "GetReceiveMessageOpt resp: ", ginResp) - c.JSON(http.StatusOK, ginResp) } +//func GetAllConversationMessageOpt(c *gin.Context) { +// params := paramGetAllConversationMessageOpt{} +// if err := c.BindJSON(¶ms); err != nil { +// log.NewError(params.OperationID, "bind json failed ", err.Error(), c) +// c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": "bind json failed " + err.Error()}) +// return +// } +// +// claims, err := token_verify.ParseToken(c.Request.Header.Get("token")) +// if err != nil { +// log.NewError(params.OperationID, "ParseToken failed, ", err.Error(), c.Request.Header.Get("token")) +// c.JSON(http.StatusBadRequest, gin.H{"errCode": 401, "errMsg": "ParseToken failed, " + err.Error()}) +// return +// } +// +// req := &user.GetAllConversationMsgOptReq{ +// UId: claims.UID, +// OperationID: params.OperationID, +// } +// log.NewInfo(req.OperationID, "GetAllConversationMsgOpt req: ", req) +// etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImUserName) +// client := user.NewUserClient(etcdConn) +// resp, err := client.GetAllConversationMsgOpt(context.Background(), req) +// if err != nil { +// log.NewError(params.OperationID, "GetAllConversationMsgOpt rpc failed, ", req, err.Error()) +// c.JSON(http.StatusBadRequest, gin.H{"errCode": 401, "errMsg": "GetAllConversationMsgOpt rpc failed, " + err.Error()}) +// return +// } +// var ginResp GetAllConversationMessageOptResp +// ginResp.ErrCode = resp.ErrCode +// ginResp.ErrMsg = resp.ErrMsg +// for _, v := range resp.ConversationOptResult { +// var opt OptResult +// err := utils.CopyStructFields(&opt, *v, "ConversationId", "Result") +// if err != nil { +// log.NewError(req.OperationID, "CopyStructFields failed ", err.Error()) +// continue +// } +// ginResp.Data = append(ginResp.Data, opt) +// } +// log.NewInfo(req.OperationID, "GetAllConversationMsgOpt resp: ", ginResp, req) +// c.JSON(http.StatusOK, ginResp) +//} +// +//func GetReceiveMessageOpt(c *gin.Context) { +// params := paramGetReceiveMessageOpt{} +// if err := c.BindJSON(¶ms); err != nil { +// log.NewError(params.OperationID, "bind json failed ", err.Error(), c) +// c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": "bind json failed " + err.Error()}) +// return +// } +// +// claims, err := token_verify.ParseToken(c.Request.Header.Get("token")) +// if err != nil { +// log.NewError(params.OperationID, "ParseToken failed, ", err.Error(), c.Request.Header.Get("token")) +// c.JSON(http.StatusBadRequest, gin.H{"errCode": 401, "errMsg": "ParseToken failed, " + err.Error()}) +// return +// } +// +// req := &user.GetReceiveMessageOptReq{ +// UId: claims.UID, +// ConversationId: params.ConversationIdList, +// OperationID: params.OperationID, +// } +// log.NewInfo(req.OperationID, "GetReceiveMessageOptReq req: ", req) +// etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImUserName) +// client := user.NewUserClient(etcdConn) +// resp, err := client.GetReceiveMessageOpt(context.Background(), req) +// if err != nil { +// log.NewError(params.OperationID, "GetReceiveMessageOpt rpc failed, ", req, err.Error()) +// c.JSON(http.StatusBadRequest, gin.H{"errCode": 401, "errMsg": "GetReceiveMessageOpt rpc failed, " + err.Error()}) +// return +// } +// log.NewInfo(req.OperationID, "GetReceiveMessageOptReq req: ", req, resp) +// var ginResp GetReceiveMessageOptResp +// ginResp.ErrCode = resp.ErrCode +// ginResp.ErrMsg = resp.ErrMsg +// +// for _, v := range resp.ConversationOptResult { +// var opt OptResult +// log.NewInfo("CopyStructFields begin ", v, req.OperationID) +// err := utils.CopyStructFields(&opt, *v, "ConversationId", "Result") +// log.NewInfo("CopyStructFields end ", v, req.OperationID) +// if err != nil { +// log.NewError(req.OperationID, "CopyStructFields failed ", err.Error()) +// continue +// } +// ginResp.Data = append(ginResp.Data, opt) +// } +// log.NewInfo(req.OperationID, "GetReceiveMessageOpt resp: ", ginResp) +// c.JSON(http.StatusOK, ginResp) +//} +// func SetReceiveMessageOpt(c *gin.Context) { - params := paramsSetReceiveMessageOpt{} - if err := c.BindJSON(¶ms); err != nil { - log.NewError(params.OperationID, "bind json failed ", err.Error(), c) - c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": "bind json failed " + err.Error()}) - return - } - claims, err := token_verify.ParseToken(c.Request.Header.Get("token")) - if err != nil { - log.NewError(params.OperationID, "ParseToken failed, ", err.Error(), c.Request.Header.Get("token")) - c.JSON(http.StatusBadRequest, gin.H{"errCode": 401, "errMsg": "ParseToken failed, " + err.Error()}) - return - } - - req := &user.SetReceiveMessageOptReq{ - UId: claims.UID, - Opt: *params.Option, - ConversationId: params.ConversationIdList, - OperationID: params.OperationID, - } - log.NewInfo(req.OperationID, "SetReceiveMessageOpt req: ", req) - etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImUserName) - client := user.NewUserClient(etcdConn) - resp, err := client.SetReceiveMessageOpt(context.Background(), req) - if err != nil { - log.NewError(params.OperationID, "SetReceiveMessageOpt rpc failed, ", req, err.Error()) - c.JSON(http.StatusBadRequest, gin.H{"errCode": 401, "errMsg": "SetReceiveMessageOpt rpc failed, " + err.Error()}) - return - } - log.NewInfo(req.OperationID, "SetReceiveMessageOpt req: ", req, resp) - ginResp := SetReceiveMessageOptResp{ - ErrCode: resp.ErrCode, - ErrMsg: resp.ErrMsg, - } - - for _, v := range resp.OptResult { - var opt OptResult - log.NewDebug("CopyStructFields begin ", v, req.OperationID) - err := utils.CopyStructFields(&opt, *v, "ConversationId", "Result") - log.NewDebug("CopyStructFields end ", v, req.OperationID) - if err != nil { - log.NewError(req.OperationID, "CopyStructFields failed ", err.Error()) - continue - } - ginResp.Data = append(ginResp.Data, opt) - } - log.NewInfo(req.OperationID, "SetReceiveMessageOpt resp: ", ginResp) - c.JSON(http.StatusOK, ginResp) } + +//func SetReceiveMessageOpt(c *gin.Context) { +// params := paramsSetReceiveMessageOpt{} +// if err := c.BindJSON(¶ms); err != nil { +// log.NewError(params.OperationID, "bind json failed ", err.Error(), c) +// c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": "bind json failed " + err.Error()}) +// return +// } +// +// claims, err := token_verify.ParseToken(c.Request.Header.Get("token")) +// if err != nil { +// log.NewError(params.OperationID, "ParseToken failed, ", err.Error(), c.Request.Header.Get("token")) +// c.JSON(http.StatusBadRequest, gin.H{"errCode": 401, "errMsg": "ParseToken failed, " + err.Error()}) +// return +// } +// +// req := &user.SetReceiveMessageOptReq{ +// UId: claims.UID, +// Opt: *params.Option, +// ConversationId: params.ConversationIdList, +// OperationID: params.OperationID, +// } +// log.NewInfo(req.OperationID, "SetReceiveMessageOpt req: ", req) +// etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImUserName) +// client := user.NewUserClient(etcdConn) +// resp, err := client.SetReceiveMessageOpt(context.Background(), req) +// if err != nil { +// log.NewError(params.OperationID, "SetReceiveMessageOpt rpc failed, ", req, err.Error()) +// c.JSON(http.StatusBadRequest, gin.H{"errCode": 401, "errMsg": "SetReceiveMessageOpt rpc failed, " + err.Error()}) +// return +// } +// log.NewInfo(req.OperationID, "SetReceiveMessageOpt req: ", req, resp) +// ginResp := SetReceiveMessageOptResp{ +// ErrCode: resp.ErrCode, +// ErrMsg: resp.ErrMsg, +// } +// +// for _, v := range resp.OptResult { +// var opt OptResult +// log.NewDebug("CopyStructFields begin ", v, req.OperationID) +// err := utils.CopyStructFields(&opt, *v, "ConversationId", "Result") +// log.NewDebug("CopyStructFields end ", v, req.OperationID) +// if err != nil { +// log.NewError(req.OperationID, "CopyStructFields failed ", err.Error()) +// continue +// } +// ginResp.Data = append(ginResp.Data, opt) +// } +// log.NewInfo(req.OperationID, "SetReceiveMessageOpt resp: ", ginResp) +// c.JSON(http.StatusOK, ginResp) +//} diff --git a/internal/api/manage/management_chat.go b/internal/api/manage/management_chat.go index 298b53836..1bb2a9961 100644 --- a/internal/api/manage/management_chat.go +++ b/internal/api/manage/management_chat.go @@ -6,251 +6,164 @@ */ package manage -import ( - "Open_IM/pkg/common/config" - "Open_IM/pkg/common/constant" - "Open_IM/pkg/common/log" - "Open_IM/pkg/common/token_verify" - "Open_IM/pkg/grpc-etcdv3/getcdv3" - pbChat "Open_IM/pkg/proto/chat" - "Open_IM/pkg/proto/sdk_ws" - "Open_IM/pkg/utils" - "context" - "github.com/gin-gonic/gin" - "github.com/go-playground/validator/v10" - "github.com/mitchellh/mapstructure" - "net/http" - "strings" -) - -var validate *validator.Validate - -type paramsManagementSendMsg struct { - OperationID string `json:"operationID" binding:"required"` - SendID string `json:"sendID" binding:"required"` - RecvID string `json:"recvID" ` - GroupID string `json:"groupID" ` - SenderNickName string `json:"senderNickName" ` - SenderFaceURL string `json:"senderFaceURL" ` - SenderPlatformID int32 `json:"senderPlatformID"` - ForceList []string `json:"forceList" ` - Content map[string]interface{} `json:"content" binding:"required"` - ContentType int32 `json:"contentType" binding:"required"` - SessionType int32 `json:"sessionType" binding:"required"` - IsOnlineOnly bool `json:"isOnlineOnly"` - OfflinePushInfo *open_im_sdk.OfflinePushInfo `json:"offlinePushInfo"` -} - -func newUserSendMsgReq(params *paramsManagementSendMsg) *pbChat.SendMsgReq { - var newContent string - switch params.ContentType { - case constant.Text: - newContent = params.Content["text"].(string) - case constant.Picture: - fallthrough - case constant.Custom: - fallthrough - case constant.Voice: - fallthrough - case constant.File: - newContent = utils.StructToJsonString(params.Content) - default: - } - options := make(map[string]bool, 2) - if params.IsOnlineOnly { - utils.SetSwitchFromOptions(options, constant.IsOfflinePush, false) - utils.SetSwitchFromOptions(options, constant.IsHistory, false) - utils.SetSwitchFromOptions(options, constant.IsPersistent, false) - } - pbData := pbChat.SendMsgReq{ - OperationID: params.OperationID, - MsgData: &open_im_sdk.MsgData{ - SendID: params.SendID, - RecvID: params.RecvID, - GroupID: params.GroupID, - ClientMsgID: utils.GetMsgID(params.SendID), - SenderPlatformID: params.SenderPlatformID, - SenderNickName: params.SenderNickName, - SenderFaceURL: params.SenderFaceURL, - SessionType: params.SessionType, - MsgFrom: constant.SysMsgType, - ContentType: params.ContentType, - Content: []byte(newContent), - ForceList: params.ForceList, - CreateTime: utils.GetCurrentTimestampByNano(), - Options: options, - OfflinePushInfo: params.OfflinePushInfo, - }, - } - return &pbData -} -func init() { - validate = validator.New() -} +import "github.com/gin-gonic/gin" + +// +//var validate *validator.Validate +// +// +//func newUserSendMsgReq(params *paramsManagementSendMsg) *pbChat.SendMsgReq { +// var newContent string +// switch params.ContentType { +// case constant.Text: +// newContent = params.Content["text"].(string) +// case constant.Picture: +// fallthrough +// case constant.Custom: +// fallthrough +// case constant.Voice: +// fallthrough +// case constant.File: +// newContent = utils.StructToJsonString(params.Content) +// default: +// } +// options := make(map[string]bool, 2) +// if params.IsOnlineOnly { +// utils.SetSwitchFromOptions(options, constant.IsOfflinePush, false) +// utils.SetSwitchFromOptions(options, constant.IsHistory, false) +// utils.SetSwitchFromOptions(options, constant.IsPersistent, false) +// } +// pbData := pbChat.SendMsgReq{ +// OperationID: params.OperationID, +// MsgData: &open_im_sdk.MsgData{ +// SendID: params.SendID, +// RecvID: params.RecvID, +// GroupID: params.GroupID, +// ClientMsgID: utils.GetMsgID(params.SendID), +// SenderPlatformID: params.SenderPlatformID, +// SenderNickName: params.SenderNickName, +// SenderFaceURL: params.SenderFaceURL, +// SessionType: params.SessionType, +// MsgFrom: constant.SysMsgType, +// ContentType: params.ContentType, +// Content: []byte(newContent), +// ForceList: params.ForceList, +// CreateTime: utils.GetCurrentTimestampByNano(), +// Options: options, +// OfflinePushInfo: params.OfflinePushInfo, +// }, +// } +// return &pbData +//} +//func init() { +// validate = validator.New() +//} func ManagementSendMsg(c *gin.Context) { - var data interface{} - params := paramsManagementSendMsg{} - if err := c.BindJSON(¶ms); err != nil { - c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": err.Error()}) - log.ErrorByKv("json unmarshal err", c.PostForm("operationID"), "err", err.Error(), "content", c.PostForm("content")) - return - } - switch params.ContentType { - case constant.Text: - data = TextElem{} - case constant.Picture: - data = PictureElem{} - case constant.Voice: - data = SoundElem{} - case constant.Video: - data = VideoElem{} - case constant.File: - data = FileElem{} - //case constant.AtText: - // data = AtElem{} - //case constant.Merger: - // data = - //case constant.Card: - //case constant.Location: - case constant.Custom: - data = CustomElem{} - //case constant.Revoke: - //case constant.HasReadReceipt: - //case constant.Typing: - //case constant.Quote: - default: - c.JSON(http.StatusBadRequest, gin.H{"errCode": 404, "errMsg": "contentType err"}) - log.ErrorByKv("contentType err", c.PostForm("operationID"), "content", c.PostForm("content")) - return - } - if err := mapstructure.WeakDecode(params.Content, &data); err != nil { - c.JSON(http.StatusBadRequest, gin.H{"errCode": 401, "errMsg": err.Error()}) - log.ErrorByKv("content to Data struct err", "", "err", err.Error()) - return - } else if err := validate.Struct(data); err != nil { - c.JSON(http.StatusBadRequest, gin.H{"errCode": 403, "errMsg": err.Error()}) - log.ErrorByKv("data args validate err", "", "err", err.Error()) - return - } - - token := c.Request.Header.Get("token") - claims, err := token_verify.ParseToken(token) - if err != nil { - log.NewError(params.OperationID, "parse token failed", err.Error()) - c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": "parse token failed", "sendTime": 0, "MsgID": ""}) - } - if !utils.IsContain(claims.UID, config.Config.Manager.AppManagerUid) { - c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": "not authorized", "sendTime": 0, "MsgID": ""}) - return - - } - switch params.SessionType { - case constant.SingleChatType: - if len(params.RecvID) == 0 { - log.NewError(params.OperationID, "recvID is a null string") - c.JSON(http.StatusBadRequest, gin.H{"errCode": 405, "errMsg": "recvID is a null string", "sendTime": 0, "MsgID": ""}) - } - case constant.GroupChatType: - if len(params.GroupID) == 0 { - log.NewError(params.OperationID, "groupID is a null string") - c.JSON(http.StatusBadRequest, gin.H{"errCode": 405, "errMsg": "groupID is a null string", "sendTime": 0, "MsgID": ""}) - } - - } - log.InfoByKv("Ws call success to ManagementSendMsgReq", params.OperationID, "Parameters", params) - - pbData := newUserSendMsgReq(¶ms) - log.Info("", "", "api ManagementSendMsg call start..., [data: %s]", pbData.String()) - - etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImOfflineMessageName) - client := pbChat.NewChatClient(etcdConn) - - log.Info("", "", "api ManagementSendMsg call, api call rpc...") - reply, err := client.SendMsg(context.Background(), pbData) - if err != nil { - log.NewError(params.OperationID, "call delete UserSendMsg rpc server failed", err.Error()) - c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": "call UserSendMsg rpc server failed"}) - return - } - log.Info("", "", "api ManagementSendMsg call end..., [data: %s] [reply: %s]", pbData.String(), reply.String()) - - c.JSON(http.StatusOK, gin.H{ - "errCode": reply.ErrCode, - "errMsg": reply.ErrMsg, - "sendTime": reply.SendTime, - "msgID": reply.ClientMsgID, - }) - -} - -type PictureBaseInfo struct { - UUID string `mapstructure:"uuid"` - Type string `mapstructure:"type" validate:"required"` - Size int64 `mapstructure:"size" validate:"required"` - Width int32 `mapstructure:"width" validate:"required"` - Height int32 `mapstructure:"height" validate:"required"` - Url string `mapstructure:"url" validate:"required"` } -type PictureElem struct { - SourcePath string `mapstructure:"sourcePath"` - SourcePicture PictureBaseInfo `mapstructure:"sourcePicture" validate:"required"` - BigPicture PictureBaseInfo `mapstructure:"bigPicture" ` - SnapshotPicture PictureBaseInfo `mapstructure:"snapshotPicture"` -} -type SoundElem struct { - UUID string `mapstructure:"uuid"` - SoundPath string `mapstructure:"soundPath"` - SourceURL string `mapstructure:"sourceUrl"` - DataSize int64 `mapstructure:"dataSize"` - Duration int64 `mapstructure:"duration"` -} -type VideoElem struct { - VideoPath string `mapstructure:"videoPath"` - VideoUUID string `mapstructure:"videoUUID"` - VideoURL string `mapstructure:"videoUrl"` - VideoType string `mapstructure:"videoType"` - VideoSize int64 `mapstructure:"videoSize"` - Duration int64 `mapstructure:"duration"` - SnapshotPath string `mapstructure:"snapshotPath"` - SnapshotUUID string `mapstructure:"snapshotUUID"` - SnapshotSize int64 `mapstructure:"snapshotSize"` - SnapshotURL string `mapstructure:"snapshotUrl"` - SnapshotWidth int32 `mapstructure:"snapshotWidth"` - SnapshotHeight int32 `mapstructure:"snapshotHeight"` -} -type FileElem struct { - FilePath string `mapstructure:"filePath"` - UUID string `mapstructure:"uuid"` - SourceURL string `mapstructure:"sourceUrl"` - FileName string `mapstructure:"fileName"` - FileSize int64 `mapstructure:"fileSize"` -} +//func ManagementSendMsg(c *gin.Context) { +// var data interface{} +// params := paramsManagementSendMsg{} +// if err := c.BindJSON(¶ms); err != nil { +// c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": err.Error()}) +// log.ErrorByKv("json unmarshal err", c.PostForm("operationID"), "err", err.Error(), "content", c.PostForm("content")) +// return +// } +// switch params.ContentType { +// case constant.Text: +// data = TextElem{} +// case constant.Picture: +// data = PictureElem{} +// case constant.Voice: +// data = SoundElem{} +// case constant.Video: +// data = VideoElem{} +// case constant.File: +// data = FileElem{} +// //case constant.AtText: +// // data = AtElem{} +// //case constant.Merger: +// // data = +// //case constant.Card: +// //case constant.Location: +// case constant.Custom: +// data = CustomElem{} +// //case constant.Revoke: +// //case constant.HasReadReceipt: +// //case constant.Typing: +// //case constant.Quote: +// default: +// c.JSON(http.StatusBadRequest, gin.H{"errCode": 404, "errMsg": "contentType err"}) +// log.ErrorByKv("contentType err", c.PostForm("operationID"), "content", c.PostForm("content")) +// return +// } +// if err := mapstructure.WeakDecode(params.Content, &data); err != nil { +// c.JSON(http.StatusBadRequest, gin.H{"errCode": 401, "errMsg": err.Error()}) +// log.ErrorByKv("content to Data struct err", "", "err", err.Error()) +// return +// } else if err := validate.Struct(data); err != nil { +// c.JSON(http.StatusBadRequest, gin.H{"errCode": 403, "errMsg": err.Error()}) +// log.ErrorByKv("data args validate err", "", "err", err.Error()) +// return +// } +// +// token := c.Request.Header.Get("token") +// claims, err := token_verify.ParseToken(token) +// if err != nil { +// log.NewError(params.OperationID, "parse token failed", err.Error()) +// c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": "parse token failed", "sendTime": 0, "MsgID": ""}) +// } +// if !utils.IsContain(claims.UID, config.Config.Manager.AppManagerUid) { +// c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": "not authorized", "sendTime": 0, "MsgID": ""}) +// return +// +// } +// switch params.SessionType { +// case constant.SingleChatType: +// if len(params.RecvID) == 0 { +// log.NewError(params.OperationID, "recvID is a null string") +// c.JSON(http.StatusBadRequest, gin.H{"errCode": 405, "errMsg": "recvID is a null string", "sendTime": 0, "MsgID": ""}) +// } +// case constant.GroupChatType: +// if len(params.GroupID) == 0 { +// log.NewError(params.OperationID, "groupID is a null string") +// c.JSON(http.StatusBadRequest, gin.H{"errCode": 405, "errMsg": "groupID is a null string", "sendTime": 0, "MsgID": ""}) +// } +// +// } +// log.InfoByKv("Ws call success to ManagementSendMsgReq", params.OperationID, "Parameters", params) +// +// pbData := newUserSendMsgReq(¶ms) +// log.Info("", "", "api ManagementSendMsg call start..., [data: %s]", pbData.String()) +// +// etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImOfflineMessageName) +// client := pbChat.NewChatClient(etcdConn) +// +// log.Info("", "", "api ManagementSendMsg call, api call rpc...") +// +// reply, err := client.SendMsg(context.Background(), pbData) +// if err != nil { +// log.NewError(params.OperationID, "call delete UserSendMsg rpc server failed", err.Error()) +// c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": "call UserSendMsg rpc server failed"}) +// return +// } +// log.Info("", "", "api ManagementSendMsg call end..., [data: %s] [reply: %s]", pbData.String(), reply.String()) +// +// c.JSON(http.StatusOK, gin.H{ +// "errCode": reply.ErrCode, +// "errMsg": reply.ErrMsg, +// "sendTime": reply.SendTime, +// "msgID": reply.ClientMsgID, +// }) +// +//} //type MergeElem struct { // Title string `json:"title"` // AbstractList []string `json:"abstractList"` // MultiMessage []*MsgStruct `json:"multiMessage"` //} -type AtElem struct { - Text string `mapstructure:"text"` - AtUserList []string `mapstructure:"atUserList"` - IsAtSelf bool `mapstructure:"isAtSelf"` -} -type LocationElem struct { - Description string `mapstructure:"description"` - Longitude float64 `mapstructure:"longitude"` - Latitude float64 `mapstructure:"latitude"` -} -type CustomElem struct { - Data string `mapstructure:"data" validate:"required"` - Description string `mapstructure:"description"` - Extension string `mapstructure:"extension"` -} -type TextElem struct { - Text string `mapstructure:"text" validate:"required"` -} //type QuoteElem struct { // Text string `json:"text"` diff --git a/internal/api/manage/management_user.go b/internal/api/manage/management_user.go index b911935c2..1cf8585a1 100644 --- a/internal/api/manage/management_user.go +++ b/internal/api/manage/management_user.go @@ -6,178 +6,154 @@ */ package manage -import ( - "Open_IM/pkg/common/config" - "Open_IM/pkg/common/constant" - "Open_IM/pkg/common/log" - "Open_IM/pkg/common/token_verify" - "Open_IM/pkg/grpc-etcdv3/getcdv3" - pbRelay "Open_IM/pkg/proto/relay" - pbUser "Open_IM/pkg/proto/user" - "Open_IM/pkg/utils" - "context" - "github.com/gin-gonic/gin" - "net/http" - "strings" -) - -type paramsDeleteUsers struct { - OperationID string `json:"operationID" binding:"required"` - DeleteUidList []string `json:"deleteUidList" binding:"required"` -} -type paramsGetAllUsersUid struct { - OperationID string `json:"operationID" binding:"required"` -} -type paramsGetUsersOnlineStatus struct { - OperationID string `json:"operationID" binding:"required"` - UserIDList []string `json:"userIDList" binding:"required,lte=200"` -} -type paramsAccountCheck struct { - OperationID string `json:"operationID" binding:"required"` - UserIDList []string `json:"userIDList" binding:"required,lte=100"` -} +import "github.com/gin-gonic/gin" func DeleteUser(c *gin.Context) { - params := paramsDeleteUsers{} - if err := c.BindJSON(¶ms); err != nil { - c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": err.Error()}) - return - } - log.InfoByKv("DeleteUser req come here", params.OperationID, "DeleteUidList", params.DeleteUidList) - etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImUserName) - client := pbUser.NewUserClient(etcdConn) - //defer etcdConn.Close() - req := &pbUser.DeleteUsersReq{ - OperationID: params.OperationID, - DeleteUidList: params.DeleteUidList, - Token: c.Request.Header.Get("token"), - } - RpcResp, err := client.DeleteUsers(context.Background(), req) - if err != nil { - log.NewError(req.OperationID, "call delete users rpc server failed", err.Error()) - c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": "call delete users rpc server failed"}) - return - } - failedUidList := make([]string, 0) - for _, v := range RpcResp.FailedUidList { - failedUidList = append(failedUidList, v) - } - log.InfoByKv("call delete user rpc server is success", params.OperationID, "resp args", RpcResp.String()) - resp := gin.H{"errCode": RpcResp.CommonResp.ErrorCode, "errMsg": RpcResp.CommonResp.ErrorMsg, "failedUidList": RpcResp.FailedUidList} - c.JSON(http.StatusOK, resp) } -func GetAllUsersUid(c *gin.Context) { - params := paramsGetAllUsersUid{} - if err := c.BindJSON(¶ms); err != nil { - c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": err.Error()}) - return - } - log.InfoByKv("GetAllUsersUid req come here", params.OperationID) - etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImUserName) - client := pbUser.NewUserClient(etcdConn) - //defer etcdConn.Close() - - req := &pbUser.GetAllUsersUidReq{ - OperationID: params.OperationID, - Token: c.Request.Header.Get("token"), - } - RpcResp, err := client.GetAllUsersUid(context.Background(), req) - if err != nil { - c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": err.Error(), "uidList": []string{}}) - return - } - log.InfoByKv("call GetAllUsersUid rpc server is success", params.OperationID, "resp args", RpcResp.String()) - resp := gin.H{"errCode": RpcResp.CommonResp.ErrorCode, "errMsg": RpcResp.CommonResp.ErrorMsg, "uidList": RpcResp.UidList} - c.JSON(http.StatusOK, resp) -} -func AccountCheck(c *gin.Context) { - params := paramsAccountCheck{} - if err := c.BindJSON(¶ms); err != nil { - c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": err.Error()}) - return - } - log.InfoByKv("AccountCheck req come here", params.OperationID, params.UserIDList) - etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImUserName) - client := pbUser.NewUserClient(etcdConn) - //defer etcdConn.Close() - - req := &pbUser.AccountCheckReq{ - OperationID: params.OperationID, - Token: c.Request.Header.Get("token"), - UidList: params.UserIDList, - } - RpcResp, err := client.AccountCheck(context.Background(), req) - if err != nil { - c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": err.Error()}) - return - } - log.InfoByKv("call AccountCheck rpc server is success", params.OperationID, "resp args", RpcResp.String()) - resp := gin.H{"errCode": RpcResp.CommonResp.ErrorCode, "errMsg": RpcResp.CommonResp.ErrorMsg, "result": RpcResp.Result} - c.JSON(http.StatusOK, resp) - -} -func GetUsersOnlineStatus(c *gin.Context) { - params := paramsGetUsersOnlineStatus{} - if err := c.BindJSON(¶ms); err != nil { - c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": err.Error()}) - return - } - claims, err := token_verify.ParseToken(c.Request.Header.Get("token")) - if err != nil { - log.ErrorByKv("parse token failed", params.OperationID, "err", err.Error()) - c.JSON(http.StatusBadRequest, gin.H{"errCode": 401, "errMsg": err.Error()}) - return - } - if !utils.IsContain(claims.UID, config.Config.Manager.AppManagerUid) { - log.ErrorByKv(" Authentication failed", params.OperationID, "args", c) - c.JSON(http.StatusBadRequest, gin.H{"errCode": 402, "errMsg": "not authorized"}) - return - } - req := &pbRelay.GetUsersOnlineStatusReq{ - OperationID: params.OperationID, - UserIDList: params.UserIDList, - } - var wsResult []*pbRelay.GetUsersOnlineStatusResp_SuccessResult - var respResult []*pbRelay.GetUsersOnlineStatusResp_SuccessResult - flag := false - log.NewDebug(params.OperationID, "GetUsersOnlineStatus req come here", params.UserIDList) - grpcCons := getcdv3.GetConn4Unique(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImOnlineMessageRelayName) - for _, v := range grpcCons { - client := pbRelay.NewOnlineMessageRelayServiceClient(v) - reply, err := client.GetUsersOnlineStatus(context.Background(), req) - if err != nil { - log.NewError(params.OperationID, "GetUsersOnlineStatus rpc err", req.String(), err.Error()) - continue - } else { - if reply.ErrCode == 0 { - wsResult = append(wsResult, reply.SuccessResult...) - } - } - } - log.NewDebug(params.OperationID, "call GetUsersOnlineStatus rpc server is success", wsResult) - //Online data merge of each node - for _, v1 := range params.UserIDList { - flag = false - temp := new(pbRelay.GetUsersOnlineStatusResp_SuccessResult) - for _, v2 := range wsResult { - if v2.UserID == v1 { - flag = true - temp.UserID = v1 - temp.Status = constant.OnlineStatus - temp.DetailPlatformStatus = append(temp.DetailPlatformStatus, v2.DetailPlatformStatus...) - } - - } - if !flag { - temp.UserID = v1 - temp.Status = constant.OfflineStatus - } - respResult = append(respResult, temp) - } - log.NewDebug(params.OperationID, "Finished merged data", respResult) - resp := gin.H{"errCode": 0, "errMsg": "", "successResult": respResult} - c.JSON(http.StatusOK, resp) - -} +// +//func DeleteUser(c *gin.Context) { +// params := paramsDeleteUsers{} +// if err := c.BindJSON(¶ms); err != nil { +// c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": err.Error()}) +// return +// } +// log.InfoByKv("DeleteUser req come here", params.OperationID, "DeleteUidList", params.DeleteUidList) +// etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImUserName) +// client := pbUser.NewUserClient(etcdConn) +// //defer etcdConn.Close() +// +// req := &pbUser.DeleteUsersReq{ +// OperationID: params.OperationID, +// DeleteUidList: params.DeleteUidList, +// Token: c.Request.Header.Get("token"), +// } +// RpcResp, err := client.DeleteUsers(context.Background(), req) +// if err != nil { +// log.NewError(req.OperationID, "call delete users rpc server failed", err.Error()) +// c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": "call delete users rpc server failed"}) +// return +// } +// failedUidList := make([]string, 0) +// for _, v := range RpcResp.FailedUidList { +// failedUidList = append(failedUidList, v) +// } +// log.InfoByKv("call delete user rpc server is success", params.OperationID, "resp args", RpcResp.String()) +// resp := gin.H{"errCode": RpcResp.CommonResp.ErrorCode, "errMsg": RpcResp.CommonResp.ErrorMsg, "failedUidList": RpcResp.FailedUidList} +// c.JSON(http.StatusOK, resp) +//} +//func GetAllUsersUid(c *gin.Context) { +// params := paramsGetAllUsersUid{} +// if err := c.BindJSON(¶ms); err != nil { +// c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": err.Error()}) +// return +// } +// log.InfoByKv("GetAllUsersUid req come here", params.OperationID) +// etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImUserName) +// client := pbUser.NewUserClient(etcdConn) +// //defer etcdConn.Close() +// +// req := &pbUser.GetAllUsersUidReq{ +// OperationID: params.OperationID, +// Token: c.Request.Header.Get("token"), +// } +// RpcResp, err := client.GetAllUsersUid(context.Background(), req) +// if err != nil { +// c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": err.Error(), "uidList": []string{}}) +// return +// } +// log.InfoByKv("call GetAllUsersUid rpc server is success", params.OperationID, "resp args", RpcResp.String()) +// resp := gin.H{"errCode": RpcResp.CommonResp.ErrorCode, "errMsg": RpcResp.CommonResp.ErrorMsg, "uidList": RpcResp.UidList} +// c.JSON(http.StatusOK, resp) +// +//} +//func AccountCheck(c *gin.Context) { +// params := paramsAccountCheck{} +// if err := c.BindJSON(¶ms); err != nil { +// c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": err.Error()}) +// return +// } +// log.InfoByKv("AccountCheck req come here", params.OperationID, params.UserIDList) +// etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImUserName) +// client := pbUser.NewUserClient(etcdConn) +// //defer etcdConn.Close() +// +// req := &pbUser.AccountCheckReq{ +// OperationID: params.OperationID, +// Token: c.Request.Header.Get("token"), +// UidList: params.UserIDList, +// } +// RpcResp, err := client.AccountCheck(context.Background(), req) +// if err != nil { +// c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": err.Error()}) +// return +// } +// log.InfoByKv("call AccountCheck rpc server is success", params.OperationID, "resp args", RpcResp.String()) +// resp := gin.H{"errCode": RpcResp.CommonResp.ErrorCode, "errMsg": RpcResp.CommonResp.ErrorMsg, "result": RpcResp.Result} +// c.JSON(http.StatusOK, resp) +// +//} +//func GetUsersOnlineStatus(c *gin.Context) { +// params := paramsGetUsersOnlineStatus{} +// if err := c.BindJSON(¶ms); err != nil { +// c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": err.Error()}) +// return +// } +// claims, err := token_verify.ParseToken(c.Request.Header.Get("token")) +// if err != nil { +// log.ErrorByKv("parse token failed", params.OperationID, "err", err.Error()) +// c.JSON(http.StatusBadRequest, gin.H{"errCode": 401, "errMsg": err.Error()}) +// return +// } +// if !utils.IsContain(claims.UID, config.Config.Manager.AppManagerUid) { +// log.ErrorByKv(" Authentication failed", params.OperationID, "args", c) +// c.JSON(http.StatusBadRequest, gin.H{"errCode": 402, "errMsg": "not authorized"}) +// return +// } +// req := &pbRelay.GetUsersOnlineStatusReq{ +// OperationID: params.OperationID, +// UserIDList: params.UserIDList, +// } +// var wsResult []*pbRelay.GetUsersOnlineStatusResp_SuccessResult +// var respResult []*pbRelay.GetUsersOnlineStatusResp_SuccessResult +// flag := false +// log.NewDebug(params.OperationID, "GetUsersOnlineStatus req come here", params.UserIDList) +// grpcCons := getcdv3.GetConn4Unique(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImOnlineMessageRelayName) +// for _, v := range grpcCons { +// client := pbRelay.NewOnlineMessageRelayServiceClient(v) +// reply, err := client.GetUsersOnlineStatus(context.Background(), req) +// if err != nil { +// log.NewError(params.OperationID, "GetUsersOnlineStatus rpc err", req.String(), err.Error()) +// continue +// } else { +// if reply.ErrCode == 0 { +// wsResult = append(wsResult, reply.SuccessResult...) +// } +// } +// } +// log.NewDebug(params.OperationID, "call GetUsersOnlineStatus rpc server is success", wsResult) +// //Online data merge of each node +// for _, v1 := range params.UserIDList { +// flag = false +// temp := new(pbRelay.GetUsersOnlineStatusResp_SuccessResult) +// for _, v2 := range wsResult { +// if v2.UserID == v1 { +// flag = true +// temp.UserID = v1 +// temp.Status = constant.OnlineStatus +// temp.DetailPlatformStatus = append(temp.DetailPlatformStatus, v2.DetailPlatformStatus...) +// } +// +// } +// if !flag { +// temp.UserID = v1 +// temp.Status = constant.OfflineStatus +// } +// respResult = append(respResult, temp) +// } +// log.NewDebug(params.OperationID, "Finished merged data", respResult) +// resp := gin.H{"errCode": 0, "errMsg": "", "successResult": respResult} +// c.JSON(http.StatusOK, resp) +// +//} diff --git a/internal/rpc/friend/firend.go b/internal/rpc/friend/firend.go index b18ee0d1b..8836bf40e 100644 --- a/internal/rpc/friend/firend.go +++ b/internal/rpc/friend/firend.go @@ -7,6 +7,7 @@ import ( imdb "Open_IM/pkg/common/db/mysql_model/im_mysql_model" "Open_IM/pkg/common/log" "Open_IM/pkg/common/token_verify" + cp "Open_IM/pkg/common/utils" "Open_IM/pkg/grpc-etcdv3/getcdv3" pbFriend "Open_IM/pkg/proto/friend" sdkws "Open_IM/pkg/proto/sdk_ws" @@ -16,6 +17,7 @@ import ( "net" "strconv" "strings" + "time" ) type friendServer struct { @@ -226,6 +228,7 @@ func (s *friendServer) AddFriendResponse(ctx context.Context, req *pbFriend.AddF } friendRequest.HandleResult = req.Flag friendRequest.HandleTime = time.Now() + //friendRequest.HandleTime.Unix() friendRequest.HandleMsg = req.HandleMsg friendRequest.HandlerUserID = req.CommID.OpUserID err = imdb.UpdateFriendApplication(friendRequest) @@ -454,7 +457,7 @@ func (s *friendServer) GetSelfApplyList(ctx context.Context, req *pbFriend.GetSe var selfApplyOtherUserList []*sdkws.FriendRequest for _, selfApplyOtherUserInfo := range usersInfo { var userInfo sdkws.FriendRequest // pbFriend.ApplyUserInfo - utils.FriendRequestDBCopyOpenIM(&userInfo, selfApplyOtherUserInfo) + cp.FriendRequestDBCopyOpenIM(&userInfo, selfApplyOtherUserInfo) selfApplyOtherUserList = append(selfApplyOtherUserList, &userInfo) } log.NewInfo(req.CommID.OperationID, "rpc GetSelfApplyList ok", pbFriend.GetSelfApplyListResp{FriendRequestList: selfApplyOtherUserList}) diff --git a/internal/rpc/group/group.go b/internal/rpc/group/group.go index 53ab002d8..1192155ea 100644 --- a/internal/rpc/group/group.go +++ b/internal/rpc/group/group.go @@ -171,7 +171,7 @@ func (s *groupServer) GetJoinedGroupList(ctx context.Context, req *pbGroup.GetJo group, err := imdb.GetGroupInfoByGroupID(v) if num > 0 && owner != nil && err2 == nil && group != nil && err == nil { utils.CopyStructFields(&groupNode, group) - groupNode.CreateTime = group.CreateTime + groupNode.CreateTime = group.CreateTime.Unix() groupNode.MemberCount = uint32(num) groupNode.OwnerUserID = owner.UserID resp.GroupList = append(resp.GroupList, &groupNode) @@ -379,7 +379,7 @@ func (s *groupServer) GetGroupMembersInfo(ctx context.Context, req *pbGroup.GetG continue } else { utils.CopyStructFields(&memberNode, memberInfo) - memberNode.JoinTime = memberInfo.JoinTime + memberNode.JoinTime = memberInfo.JoinTime.Unix() resp.MemberList = append(resp.MemberList, &memberNode) } } @@ -416,7 +416,7 @@ func (s *groupServer) GetGroupsInfo(ctx context.Context, req *pbGroup.GetGroupsI } var groupInfo open_im_sdk.GroupInfo utils.CopyStructFields(&groupInfo, groupInfoFromMysql) - groupInfo.CreateTime = groupInfoFromMysql.CreateTime + groupInfo.CreateTime = groupInfoFromMysql.CreateTime.Unix() groupsInfoList = append(groupsInfoList, &groupInfo) } @@ -451,7 +451,7 @@ func (s *groupServer) GroupApplicationResponse(_ context.Context, req *pbGroup.G func (s *groupServer) JoinGroup(ctx context.Context, req *pbGroup.JoinGroupReq) (*pbGroup.JoinGroupResp, error) { log.NewInfo(req.OperationID, "JoinGroup args ", req.String()) - applicationUserInfo, err := imdb.GetUserByUserID(req.OpUserID) + _, err := imdb.GetUserByUserID(req.OpUserID) if err != nil { log.NewError(req.OperationID, "FindUserByUID failed ", err.Error(), req.OpUserID) return &pbGroup.JoinGroupResp{CommonResp: &pbGroup.CommonResp{ErrCode: constant.ErrDB.ErrCode, ErrMsg: constant.ErrDB.ErrMsg}}, nil @@ -516,6 +516,7 @@ func hasAccess(req *pbGroup.SetGroupInfoReq) bool { if groupUserInfo.RoleLevel == constant.OrdinaryMember { return true } + return false } func (s *groupServer) SetGroupInfo(ctx context.Context, req *pbGroup.SetGroupInfoReq) (*pbGroup.SetGroupInfoResp, error) { diff --git a/internal/rpc/msg/notification.go b/internal/rpc/msg/notification.go index fc88bf05d..76023b851 100644 --- a/internal/rpc/msg/notification.go +++ b/internal/rpc/msg/notification.go @@ -1,6 +1,7 @@ package msg import ( + "Open_IM/pkg/common/config" "Open_IM/pkg/common/constant" imdb "Open_IM/pkg/common/db/mysql_model/im_mysql_model" "Open_IM/pkg/common/log" @@ -20,6 +21,7 @@ import ( //} creator->group func setOpUserInfo(operationID, opUserID, groupID string, groupMemberInfo *open_im_sdk.GroupMemberFullInfo) { + return if token_verify.IsMangerUserID(opUserID) { u, err := imdb.GetUserByUserID(opUserID) if err != nil { @@ -39,6 +41,7 @@ func setOpUserInfo(operationID, opUserID, groupID string, groupMemberInfo *open_ } func setGroupInfo(operationID, groupID string, groupInfo *open_im_sdk.GroupInfo, ownerUserID string) { + return group, err := imdb.GetGroupInfoByGroupID(groupID) if err != nil { log.NewError(operationID, "FindGroupInfoByGroupId failed ", err.Error(), groupID) @@ -53,6 +56,7 @@ func setGroupInfo(operationID, groupID string, groupInfo *open_im_sdk.GroupInfo, } func setGroupMemberInfo(operationID, groupID, userID string, groupMemberInfo *open_im_sdk.GroupMemberFullInfo) { + return group, err := imdb.GetGroupMemberInfoByGroupIDAndUserID(groupID, userID) if err != nil { log.NewError(operationID, "FindGroupMemberInfoByGroupIdAndUserId failed ", err.Error(), groupID, userID) @@ -72,6 +76,7 @@ func setGroupMemberInfo(operationID, groupID, userID string, groupMemberInfo *op //创建群后调用 func GroupCreatedNotification(operationID, opUserID, OwnerUserID, groupID string, initMemberList []string) { + return var n NotificationMsg n.SendID = opUserID n.RecvID = groupID @@ -109,6 +114,7 @@ func GroupCreatedNotification(operationID, opUserID, OwnerUserID, groupID string // OperationID string `protobuf:"bytes,4,opt,name=OperationID" json:"OperationID,omitempty"` //申请进群后调用 func JoinApplicationNotification(req *pbGroup.JoinGroupReq) { + return managerList, err := imdb.GetOwnerManagerByGroupID(req.GroupID) if err != nil { log.NewError(req.OperationID, "GetOwnerManagerByGroupId failed ", err.Error(), req.GroupID) @@ -151,6 +157,7 @@ func JoinApplicationNotification(req *pbGroup.JoinGroupReq) { //} //处理进群请求后调用 func ApplicationProcessedNotification(req *pbGroup.GroupApplicationResponseReq) { + return var n NotificationMsg n.SendID = req.OpUserID n.ContentType = constant.ApplicationProcessedNotification @@ -181,6 +188,7 @@ func ApplicationProcessedNotification(req *pbGroup.GroupApplicationResponseReq) //} //被邀请进群后调用 func MemberInvitedNotification(operationID, groupID, opUserID, reason string, invitedUserIDList []string) { + return var n NotificationMsg n.SendID = opUserID n.ContentType = constant.MemberInvitedNotification @@ -212,6 +220,7 @@ func MemberInvitedNotification(operationID, groupID, opUserID, reason string, in //} //被踢后调用 func MemberKickedNotification(req *pbGroup.KickGroupMemberReq, kickedUserIDList []string) { + return var n NotificationMsg n.SendID = req.OpUserID n.ContentType = constant.MemberKickedNotification @@ -249,6 +258,7 @@ func MemberKickedNotification(req *pbGroup.KickGroupMemberReq, kickedUserIDList //群信息改变后掉用 func GroupInfoChangedNotification(operationID, opUserID, groupID string, changedType int32) { + return var n NotificationMsg n.SendID = opUserID n.ContentType = constant.GroupInfoChangedNotification @@ -301,6 +311,7 @@ func GroupInfoChangedNotification(operationID string, changedType int32, group * //群成员退群后调用 func MemberLeaveNotification(req *pbGroup.QuitGroupReq) { + return var n NotificationMsg n.SendID = req.OpUserID n.ContentType = constant.MemberLeaveNotification @@ -331,6 +342,7 @@ func MemberLeaveNotification(req *pbGroup.QuitGroupReq) { //} //群成员主动申请进群,管理员同意后调用, func MemberEnterNotification(req *pbGroup.GroupApplicationResponseReq) { + return var n NotificationMsg n.SendID = req.OpUserID n.ContentType = constant.MemberEnterNotification @@ -369,6 +381,7 @@ func MemberEnterNotification(req *pbGroup.GroupApplicationResponseReq) { //} func getFromToUserNickname(operationID, fromUserID, toUserID string) (string, string) { + return from, err1 := imdb.GetUserByUserID(fromUserID) to, err2 := imdb.GetUserByUserID(toUserID) if err1 != nil || err2 != nil { @@ -385,6 +398,7 @@ func getFromToUserNickname(operationID, fromUserID, toUserID string) (string, st } func FriendApplicationAddedNotification(req *pbFriend.AddFriendReq) { + return var n NotificationMsg n.SendID = req.CommID.FromUserID n.RecvID = req.CommID.ToUserID @@ -405,6 +419,7 @@ func FriendApplicationAddedNotification(req *pbFriend.AddFriendReq) { } func FriendApplicationProcessedNotification(req *pbFriend.AddFriendResponseReq) { + return var n NotificationMsg n.SendID = req.CommID.FromUserID n.RecvID = req.CommID.ToUserID @@ -425,6 +440,7 @@ func FriendApplicationProcessedNotification(req *pbFriend.AddFriendResponseReq) } func FriendAddedNotification(operationID, opUserID, fromUserID, toUserID string) { + return var n NotificationMsg n.SendID = fromUserID n.RecvID = toUserID @@ -478,6 +494,7 @@ func FriendAddedNotification(operationID, opUserID, fromUserID, toUserID string) // FriendInfo Friend = 1; //} func FriendDeletedNotification(req *pbFriend.DeleteFriendReq) { + return var n NotificationMsg n.SendID = req.CommID.FromUserID n.RecvID = req.CommID.ToUserID @@ -503,6 +520,7 @@ func FriendDeletedNotification(req *pbFriend.DeleteFriendReq) { // uint64 OperationTime = 3; //} func FriendInfoChangedNotification(operationID, opUserID, fromUserID, toUserID string) { + return var n NotificationMsg n.SendID = fromUserID n.RecvID = toUserID @@ -523,6 +541,7 @@ func FriendInfoChangedNotification(operationID, opUserID, fromUserID, toUserID s } func BlackAddedNotification(req *pbFriend.AddBlacklistReq) { + return var n NotificationMsg n.SendID = req.CommID.FromUserID n.RecvID = req.CommID.ToUserID @@ -546,6 +565,7 @@ func BlackAddedNotification(req *pbFriend.AddBlacklistReq) { // BlackInfo Black = 1; //} func BlackDeletedNotification(req *pbFriend.RemoveBlacklistReq) { + return var n NotificationMsg n.SendID = req.CommID.FromUserID n.RecvID = req.CommID.ToUserID @@ -571,6 +591,7 @@ func BlackDeletedNotification(req *pbFriend.RemoveBlacklistReq) { // uint64 OperationTime = 3; //} func SelfInfoUpdatedNotification(operationID, userID string) { + return var n NotificationMsg n.SendID = userID n.RecvID = userID diff --git a/internal/rpc/user/user.go b/internal/rpc/user/user.go index e9407d8bf..e0bb07d3c 100644 --- a/internal/rpc/user/user.go +++ b/internal/rpc/user/user.go @@ -10,6 +10,7 @@ import ( "Open_IM/pkg/common/token_verify" "Open_IM/pkg/grpc-etcdv3/getcdv3" pbFriend "Open_IM/pkg/proto/friend" + sdkws "Open_IM/pkg/proto/sdk_ws" pbUser "Open_IM/pkg/proto/user" "Open_IM/pkg/utils" "context" @@ -17,7 +18,6 @@ import ( "net" "strconv" "strings" - sdkws "Open_IM/pkg/proto/sdk_ws" ) type userServer struct { @@ -27,6 +27,16 @@ type userServer struct { etcdAddr []string } +func NewUserServer(port int) *userServer { + log.NewPrivateLog("user") + return &userServer{ + rpcPort: port, + rpcRegisterName: config.Config.RpcRegisterName.OpenImUserName, + etcdSchema: config.Config.Etcd.EtcdSchema, + etcdAddr: config.Config.Etcd.EtcdAddr, + } +} + func (s *userServer) Run() { log.NewInfo("0", "", "rpc user start...") @@ -38,7 +48,7 @@ func (s *userServer) Run() { log.NewError("0", "listen network failed ", err.Error(), registerAddress) return } - log.NewInfo("0", "listen network success, address ", registerAddress, listener) + log.NewInfo("0", "listen network success, address ", registerAddress, listener) defer listener.Close() //grpc server srv := grpc.NewServer() @@ -55,7 +65,7 @@ func (s *userServer) Run() { log.NewError("0", "Serve failed ", err.Error()) return } - log.NewInfo("0", "rpc user success") + log.NewInfo("0", "rpc user success") } func (s *userServer) GetUserInfo(ctx context.Context, req *pbUser.GetUserInfoReq) (*pbUser.GetUserInfoResp, error) { @@ -76,12 +86,10 @@ func (s *userServer) GetUserInfo(ctx context.Context, req *pbUser.GetUserInfoReq return &pbUser.GetUserInfoResp{CommonResp: &pbUser.CommonResp{ErrCode: constant.ErrArgs.ErrCode, ErrMsg: constant.ErrArgs.ErrMsg}}, nil } - log.NewInfo(req.OperationID, "GetUserInfo rpc return ", pbUser.GetUserInfoResp{CommonResp: &pbUser.CommonResp{}, UserInfoList:userInfoList}) - return &pbUser.GetUserInfoResp{CommonResp: &pbUser.CommonResp{}, UserInfoList:userInfoList}, nil + log.NewInfo(req.OperationID, "GetUserInfo rpc return ", pbUser.GetUserInfoResp{CommonResp: &pbUser.CommonResp{}, UserInfoList: userInfoList}) + return &pbUser.GetUserInfoResp{CommonResp: &pbUser.CommonResp{}, UserInfoList: userInfoList}, nil } - - func (s *userServer) SetReceiveMessageOpt(ctx context.Context, req *pbUser.SetReceiveMessageOptReq) (*pbUser.SetReceiveMessageOptResp, error) { log.NewInfo(req.OperationID, "SetReceiveMessageOpt args ", req.String()) m := make(map[string]int, len(req.ConversationIDList)) @@ -132,10 +140,9 @@ func (s *userServer) GetAllConversationMsgOpt(ctx context.Context, req *pbUser.G return &resp, nil } - func (s *userServer) DeleteUsers(_ context.Context, req *pbUser.DeleteUsersReq) (*pbUser.DeleteUsersResp, error) { log.NewInfo(req.OperationID, "DeleteUsers args ", req.String()) - if token_verify.IsMangerUserID(req.OpUserID){ + if token_verify.IsMangerUserID(req.OpUserID) { log.NewError(req.OperationID, "IsMangerUserID false ", req.OpUserID) return &pbUser.DeleteUsersResp{CommonResp: &pbUser.CommonResp{ErrCode: constant.ErrAccess.ErrCode, ErrMsg: constant.ErrAccess.ErrMsg}, FailedUserIDList: req.DeleteUserIDList}, nil } @@ -154,8 +161,8 @@ func (s *userServer) DeleteUsers(_ context.Context, req *pbUser.DeleteUsersReq) } func (s *userServer) GetAllUserID(_ context.Context, req *pbUser.GetAllUserIDReq) (*pbUser.GetAllUserIDResp, error) { - log.NewInfo(req.OperationID,"GetAllUserID args ", req.String()) - if token_verify.IsMangerUserID(req.OpUserID){ + log.NewInfo(req.OperationID, "GetAllUserID args ", req.String()) + if token_verify.IsMangerUserID(req.OpUserID) { log.NewError(req.OperationID, "IsMangerUserID false ", req.OpUserID) return &pbUser.GetAllUserIDResp{CommonResp: &pbUser.CommonResp{ErrCode: constant.ErrAccess.ErrCode, ErrMsg: constant.ErrAccess.ErrMsg}}, nil } @@ -169,10 +176,9 @@ func (s *userServer) GetAllUserID(_ context.Context, req *pbUser.GetAllUserIDReq } } - func (s *userServer) AccountCheck(_ context.Context, req *pbUser.AccountCheckReq) (*pbUser.AccountCheckResp, error) { - log.NewInfo(req.OperationID,"AccountCheck args ", req.String()) - if token_verify.IsMangerUserID(req.OpUserID){ + log.NewInfo(req.OperationID, "AccountCheck args ", req.String()) + if token_verify.IsMangerUserID(req.OpUserID) { log.NewError(req.OperationID, "IsMangerUserID false ", req.OpUserID) return &pbUser.AccountCheckResp{CommonResp: &pbUser.CommonResp{ErrCode: constant.ErrAccess.ErrCode, ErrMsg: constant.ErrAccess.ErrMsg}}, nil } @@ -199,12 +205,9 @@ func (s *userServer) AccountCheck(_ context.Context, req *pbUser.AccountCheckReq } - - - func (s *userServer) UpdateUserInfo(ctx context.Context, req *pbUser.UpdateUserInfoReq) (*pbUser.UpdateUserInfoResp, error) { - log.NewInfo(req.OperationID,"UpdateUserInfo args ", req.String()) - if !token_verify.CheckAccess(req.OpUserID, req.UserInfo.UserID){ + log.NewInfo(req.OperationID, "UpdateUserInfo args ", req.String()) + if !token_verify.CheckAccess(req.OpUserID, req.UserInfo.UserID) { log.NewError(req.OperationID, "CheckAccess false ", req.OpUserID, req.UserInfo.UserID) return &pbUser.UpdateUserInfoResp{CommonResp: &pbUser.CommonResp{ErrCode: constant.ErrAccess.ErrCode, ErrMsg: constant.ErrAccess.ErrMsg}}, nil } @@ -219,7 +222,7 @@ func (s *userServer) UpdateUserInfo(ctx context.Context, req *pbUser.UpdateUserI etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImFriendName) client := pbFriend.NewFriendClient(etcdConn) newReq := &pbFriend.GetFriendListReq{ - CommID: &pbFriend.CommID{OperationID: req.OperationID, FromUserID: req.UserInfo.UserID, OpUserID: req.OpUserID} + CommID: &pbFriend.CommID{OperationID: req.OperationID, FromUserID: req.UserInfo.UserID, OpUserID: req.OpUserID}, } RpcResp, err := client.GetFriendList(context.Background(), newReq) @@ -227,12 +230,9 @@ func (s *userServer) UpdateUserInfo(ctx context.Context, req *pbUser.UpdateUserI log.NewError(req.OperationID, "GetFriendList failed ", err.Error(), newReq) return &pbUser.UpdateUserInfoResp{CommonResp: &pbUser.CommonResp{}}, nil } - for _, v := range RpcResp.FriendInfoList{ + for _, v := range RpcResp.FriendInfoList { chat.FriendInfoChangedNotification(req.OperationID, req.OpUserID, req.UserInfo.UserID, v.FriendUser.UserID) } chat.SelfInfoUpdatedNotification(req.OperationID, req.UserInfo.UserID) return &pbUser.UpdateUserInfoResp{CommonResp: &pbUser.CommonResp{}}, nil } - - - diff --git a/pkg/base_info/conversation_api_struct.go b/pkg/base_info/conversation_api_struct.go new file mode 100644 index 000000000..7775a2f42 --- /dev/null +++ b/pkg/base_info/conversation_api_struct.go @@ -0,0 +1 @@ +package base_info diff --git a/pkg/base_info/manage_api_struct.go b/pkg/base_info/manage_api_struct.go new file mode 100644 index 000000000..3a00437a7 --- /dev/null +++ b/pkg/base_info/manage_api_struct.go @@ -0,0 +1,98 @@ +package base_info + +import open_im_sdk "Open_IM/pkg/proto/sdk_ws" + +type paramsManagementSendMsg struct { + OperationID string `json:"operationID" binding:"required"` + SendID string `json:"sendID" binding:"required"` + RecvID string `json:"recvID" ` + GroupID string `json:"groupID" ` + SenderNickName string `json:"senderNickName" ` + SenderFaceURL string `json:"senderFaceURL" ` + SenderPlatformID int32 `json:"senderPlatformID"` + ForceList []string `json:"forceList" ` + Content map[string]interface{} `json:"content" binding:"required"` + ContentType int32 `json:"contentType" binding:"required"` + SessionType int32 `json:"sessionType" binding:"required"` + IsOnlineOnly bool `json:"isOnlineOnly"` + OfflinePushInfo *open_im_sdk.OfflinePushInfo `json:"offlinePushInfo"` +} + +type PictureBaseInfo struct { + UUID string `mapstructure:"uuid"` + Type string `mapstructure:"type" validate:"required"` + Size int64 `mapstructure:"size" validate:"required"` + Width int32 `mapstructure:"width" validate:"required"` + Height int32 `mapstructure:"height" validate:"required"` + Url string `mapstructure:"url" validate:"required"` +} + +type PictureElem struct { + SourcePath string `mapstructure:"sourcePath"` + SourcePicture PictureBaseInfo `mapstructure:"sourcePicture" validate:"required"` + BigPicture PictureBaseInfo `mapstructure:"bigPicture" ` + SnapshotPicture PictureBaseInfo `mapstructure:"snapshotPicture"` +} +type SoundElem struct { + UUID string `mapstructure:"uuid"` + SoundPath string `mapstructure:"soundPath"` + SourceURL string `mapstructure:"sourceUrl"` + DataSize int64 `mapstructure:"dataSize"` + Duration int64 `mapstructure:"duration"` +} +type VideoElem struct { + VideoPath string `mapstructure:"videoPath"` + VideoUUID string `mapstructure:"videoUUID"` + VideoURL string `mapstructure:"videoUrl"` + VideoType string `mapstructure:"videoType"` + VideoSize int64 `mapstructure:"videoSize"` + Duration int64 `mapstructure:"duration"` + SnapshotPath string `mapstructure:"snapshotPath"` + SnapshotUUID string `mapstructure:"snapshotUUID"` + SnapshotSize int64 `mapstructure:"snapshotSize"` + SnapshotURL string `mapstructure:"snapshotUrl"` + SnapshotWidth int32 `mapstructure:"snapshotWidth"` + SnapshotHeight int32 `mapstructure:"snapshotHeight"` +} +type FileElem struct { + FilePath string `mapstructure:"filePath"` + UUID string `mapstructure:"uuid"` + SourceURL string `mapstructure:"sourceUrl"` + FileName string `mapstructure:"fileName"` + FileSize int64 `mapstructure:"fileSize"` +} + +type paramsDeleteUsers struct { + OperationID string `json:"operationID" binding:"required"` + DeleteUidList []string `json:"deleteUidList" binding:"required"` +} +type paramsGetAllUsersUid struct { + OperationID string `json:"operationID" binding:"required"` +} +type paramsGetUsersOnlineStatus struct { + OperationID string `json:"operationID" binding:"required"` + UserIDList []string `json:"userIDList" binding:"required,lte=200"` +} +type paramsAccountCheck struct { + OperationID string `json:"operationID" binding:"required"` + UserIDList []string `json:"userIDList" binding:"required,lte=100"` +} + +type AtElem struct { + Text string `mapstructure:"text"` + AtUserList []string `mapstructure:"atUserList"` + IsAtSelf bool `mapstructure:"isAtSelf"` +} +type LocationElem struct { + Description string `mapstructure:"description"` + Longitude float64 `mapstructure:"longitude"` + Latitude float64 `mapstructure:"latitude"` +} +type CustomElem struct { + Data string `mapstructure:"data" validate:"required"` + Description string `mapstructure:"description"` + Extension string `mapstructure:"extension"` +} +type TextElem struct { + Text string `mapstructure:"text" validate:"required"` +} diff --git a/pkg/common/db/mysql_model/im_mysql_model/friend_request_model.go b/pkg/common/db/mysql_model/im_mysql_model/friend_request_model.go index dd8164521..891020ec0 100644 --- a/pkg/common/db/mysql_model/im_mysql_model/friend_request_model.go +++ b/pkg/common/db/mysql_model/im_mysql_model/friend_request_model.go @@ -2,6 +2,7 @@ package im_mysql_model import ( "Open_IM/pkg/common/db" + "time" ) //type FriendRequest struct { diff --git a/pkg/common/db/mysql_model/im_mysql_model/group_member_model.go b/pkg/common/db/mysql_model/im_mysql_model/group_member_model.go index 0601f4a6e..84175c0a1 100644 --- a/pkg/common/db/mysql_model/im_mysql_model/group_member_model.go +++ b/pkg/common/db/mysql_model/im_mysql_model/group_member_model.go @@ -2,6 +2,7 @@ package im_mysql_model import ( "Open_IM/pkg/common/db" + "time" ) //type GroupMember struct { @@ -61,7 +62,7 @@ func GetGroupMemberListByGroupIDAndRoleLevel(groupID string, roleLevel int32) ([ return nil, err } var groupMemberList []GroupMember - err = dbConn.Table("group_member").Where("group_id=? and role_level=?", groupID, role_level).Find(&groupMemberList).Error + err = dbConn.Table("group_member").Where("group_id=? and role_level=?", groupID, roleLevel).Find(&groupMemberList).Error if err != nil { return nil, err } diff --git a/pkg/common/db/mysql_model/im_mysql_model/group_model.go b/pkg/common/db/mysql_model/im_mysql_model/group_model.go index 672e2ae93..cc53a8036 100644 --- a/pkg/common/db/mysql_model/im_mysql_model/group_model.go +++ b/pkg/common/db/mysql_model/im_mysql_model/group_model.go @@ -2,8 +2,6 @@ package im_mysql_model import ( "Open_IM/pkg/common/db" - "Open_IM/pkg/proto/group" - "errors" "time" ) diff --git a/pkg/common/db/mysql_model/im_mysql_model/group_request_model.go b/pkg/common/db/mysql_model/im_mysql_model/group_request_model.go index 143cab342..e8f64208b 100644 --- a/pkg/common/db/mysql_model/im_mysql_model/group_request_model.go +++ b/pkg/common/db/mysql_model/im_mysql_model/group_request_model.go @@ -2,8 +2,6 @@ package im_mysql_model import ( "Open_IM/pkg/common/db" - "Open_IM/pkg/common/log" - "Open_IM/pkg/proto/group" "time" ) diff --git a/pkg/common/db/mysql_model/im_mysql_model/model_struct.go b/pkg/common/db/mysql_model/im_mysql_model/model_struct.go index 4ee23bfe0..150aedd70 100644 --- a/pkg/common/db/mysql_model/im_mysql_model/model_struct.go +++ b/pkg/common/db/mysql_model/im_mysql_model/model_struct.go @@ -95,7 +95,7 @@ type GroupMember struct { JoinTime time.Time `gorm:"column:join_time"` Nickname string `gorm:"column:nickname"` FaceUrl string `gorm:"user_group_face_url"` - JoinSource int32 `gorm:"column:join_source"` + JoinSource time.Time `gorm:"column:join_source"` OperatorUserID string `gorm:"column:operator_user_id"` Ex string `gorm:"column:ex"` } diff --git a/pkg/common/utils/utils.go b/pkg/common/utils/utils.go new file mode 100644 index 000000000..ba5d3257b --- /dev/null +++ b/pkg/common/utils/utils.go @@ -0,0 +1,95 @@ +package utils + +import ( + imdb "Open_IM/pkg/common/db/mysql_model/im_mysql_model" + "Open_IM/pkg/common/token_verify" + open_im_sdk "Open_IM/pkg/proto/sdk_ws" + "Open_IM/pkg/utils" + "math/rand" + "strconv" + "time" +) + +func OperationIDGenerator() string { + return strconv.FormatInt(time.Now().UnixNano()+int64(rand.Uint32()), 10) +} + +func FriendOpenIMCopyDB(dst *imdb.Friend, src open_im_sdk.FriendInfo) { + utils.CopyStructFields(dst, src) + dst.FriendUserID = src.FriendUser.UserID +} + +func FriendDBCopyOpenIM(dst *open_im_sdk.FriendInfo, src imdb.Friend) { + utils.CopyStructFields(dst, src) + user, _ := imdb.GetUserByUserID(src.FriendUserID) + if user != nil { + utils.CopyStructFields(dst.FriendUser, user) + } +} + +// +func FriendRequestOpenIMCopyDB(dst *imdb.FriendRequest, src open_im_sdk.FriendRequest) { + utils.CopyStructFields(dst, src) +} + +func FriendRequestDBCopyOpenIM(dst *open_im_sdk.FriendRequest, src imdb.FriendRequest) { + utils.CopyStructFields(dst, src) +} + +func GroupOpenIMCopyDB(dst *imdb.Group, src open_im_sdk.GroupInfo) { + utils.CopyStructFields(dst, src) +} + +func GroupDBCopyOpenIM(dst *open_im_sdk.GroupInfo, src imdb.Group) { + utils.CopyStructFields(dst, src) + user, _ := imdb.GetGroupOwnerInfoByGroupID(src.GroupID) + if user != nil { + dst.OwnerUserID = user.UserID + } + dst.MemberCount = imdb.GetGroupMemberNumByGroupID(src.GroupID) +} + +func GroupMemberOpenIMCopyDB(dst *imdb.GroupMember, src open_im_sdk.GroupMemberFullInfo) { + utils.CopyStructFields(dst, src) +} + +func GroupMemberDBCopyOpenIM(dst *open_im_sdk.GroupMemberFullInfo, src imdb.GroupMember) { + utils.CopyStructFields(dst, src) + if token_verify.IsMangerUserID(src.UserID) { + u, _ := imdb.GetUserByUserID(src.UserID) + if u != nil { + utils.CopyStructFields(dst, u) + } + dst.AppMangerLevel = 1 + } +} + +func GroupRequestOpenIMCopyDB(dst *imdb.GroupRequest, src open_im_sdk.GroupRequest) { + utils.CopyStructFields(dst, src) +} + +func GroupRequestDBCopyOpenIM(dst *open_im_sdk.GroupRequest, src imdb.GroupRequest) { + utils.CopyStructFields(dst, src) +} + +func UserOpenIMCopyDB(dst *imdb.User, src open_im_sdk.UserInfo) { + utils.CopyStructFields(dst, src) +} + +func UserDBCopyOpenIM(dst *open_im_sdk.UserInfo, src imdb.User) { + utils.CopyStructFields(dst, src) +} + +func BlackOpenIMCopyDB(dst *imdb.Black, src open_im_sdk.BlackInfo) { + utils.CopyStructFields(dst, src) + dst.BlockUserID = src.BlackUserInfo.UserID +} + +func BlackDBCopyOpenIM(dst *open_im_sdk.BlackInfo, src imdb.Black) { + utils.CopyStructFields(dst, src) + dst.CreateTime = src.CreateTime.Unix() + user, _ := imdb.GetUserByUserID(src.BlockUserID) + if user != nil { + utils.CopyStructFields(dst.BlackUserInfo, user) + } +} diff --git a/pkg/utils/utils.go b/pkg/utils/utils.go index 2c393d337..9953227a1 100644 --- a/pkg/utils/utils.go +++ b/pkg/utils/utils.go @@ -1,14 +1,8 @@ package utils import ( - imdb "Open_IM/pkg/common/db/mysql_model/im_mysql_model" - "Open_IM/pkg/common/token_verify" - open_im_sdk "Open_IM/pkg/proto/sdk_ws" "fmt" - "math/rand" "reflect" - "strconv" - "time" ) // copy a by b b->a @@ -49,86 +43,3 @@ func CopyStructFields(a interface{}, b interface{}, fields ...string) (err error } return nil } - -func OperationIDGenerator() string { - return strconv.FormatInt(time.Now().UnixNano()+int64(rand.Uint32()), 10) -} - -func FriendOpenIMCopyDB(dst *imdb.Friend, src open_im_sdk.FriendInfo) { - CopyStructFields(dst, src) - dst.FriendUserID = src.FriendUser.UserID -} - -func FriendDBCopyOpenIM(dst *open_im_sdk.FriendInfo, src imdb.Friend) { - CopyStructFields(dst, src) - user, _ := imdb.GetUserByUserID(src.FriendUserID) - if user != nil { - CopyStructFields(dst.FriendUser, user) - } -} - -// -func FriendRequestOpenIMCopyDB(dst *imdb.FriendRequest, src open_im_sdk.FriendRequest) { - CopyStructFields(dst, src) -} - -func FriendRequestDBCopyOpenIM(dst *open_im_sdk.FriendRequest, src imdb.FriendRequest) { - CopyStructFields(dst, src) -} - -func GroupOpenIMCopyDB(dst *imdb.Group, src open_im_sdk.GroupInfo) { - CopyStructFields(dst, src) -} - -func GroupDBCopyOpenIM(dst *open_im_sdk.GroupInfo, src imdb.Group) { - CopyStructFields(dst, src) - user, _ := imdb.GetGroupOwnerInfoByGroupID(src.GroupID) - if user != nil { - dst.OwnerUserID = user.UserID - } - dst.MemberCount = imdb.GetGroupMemberNumByGroupID(src.GroupID) -} - -func GroupMemberOpenIMCopyDB(dst *imdb.GroupMember, src open_im_sdk.GroupMemberFullInfo) { - CopyStructFields(dst, src) -} - -func GroupMemberDBCopyOpenIM(dst *open_im_sdk.GroupMemberFullInfo, src imdb.GroupMember) { - CopyStructFields(dst, src) - if token_verify.IsMangerUserID(src.UserID) { - u, _ := imdb.GetUserByUserID(src.UserID) - if u != nil { - CopyStructFields(dst, u) - } - dst.AppMangerLevel = 1 - } -} - -func GroupRequestOpenIMCopyDB(dst *imdb.GroupRequest, src open_im_sdk.GroupRequest) { - CopyStructFields(dst, src) -} - -func GroupRequestDBCopyOpenIM(dst *open_im_sdk.GroupRequest, src imdb.GroupRequest) { - CopyStructFields(dst, src) -} - -func UserOpenIMCopyDB(dst *imdb.User, src open_im_sdk.UserInfo) { - CopyStructFields(dst, src) -} - -func UserDBCopyOpenIM(dst *open_im_sdk.UserInfo, src imdb.User) { - CopyStructFields(dst, src) -} - -func BlackOpenIMCopyDB(dst *imdb.Black, src open_im_sdk.BlackInfo) { - CopyStructFields(dst, src) - dst.BlockUserID = src.BlackUserInfo.UserID -} - -func BlackDBCopyOpenIM(dst *open_im_sdk.BlackInfo, src imdb.Black) { - CopyStructFields(dst, src) - user, _ := imdb.GetUserByUserID(src.BlockUserID) - if user != nil { - CopyStructFields(dst.BlackUserInfo, user) - } -} From 1e3cad4b2034a349669bc8f3a8e453d901964cd0 Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Tue, 28 Dec 2021 15:47:20 +0800 Subject: [PATCH 251/814] tidy code --- pkg/common/utils/utils.go | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/pkg/common/utils/utils.go b/pkg/common/utils/utils.go index ba5d3257b..ca67f33e2 100644 --- a/pkg/common/utils/utils.go +++ b/pkg/common/utils/utils.go @@ -25,6 +25,8 @@ func FriendDBCopyOpenIM(dst *open_im_sdk.FriendInfo, src imdb.Friend) { if user != nil { utils.CopyStructFields(dst.FriendUser, user) } + dst.CreateTime = src.CreateTime.Unix() + dst.FriendUser.CreateTime = user.CreateTime.Unix() } // @@ -34,6 +36,8 @@ func FriendRequestOpenIMCopyDB(dst *imdb.FriendRequest, src open_im_sdk.FriendRe func FriendRequestDBCopyOpenIM(dst *open_im_sdk.FriendRequest, src imdb.FriendRequest) { utils.CopyStructFields(dst, src) + dst.CreateTime = src.CreateTime.Unix() + dst.HandleTime = src.HandleTime.Unix() } func GroupOpenIMCopyDB(dst *imdb.Group, src open_im_sdk.GroupInfo) { @@ -47,6 +51,7 @@ func GroupDBCopyOpenIM(dst *open_im_sdk.GroupInfo, src imdb.Group) { dst.OwnerUserID = user.UserID } dst.MemberCount = imdb.GetGroupMemberNumByGroupID(src.GroupID) + dst.CreateTime = src.CreateTime.Unix() } func GroupMemberOpenIMCopyDB(dst *imdb.GroupMember, src open_im_sdk.GroupMemberFullInfo) { @@ -62,6 +67,7 @@ func GroupMemberDBCopyOpenIM(dst *open_im_sdk.GroupMemberFullInfo, src imdb.Grou } dst.AppMangerLevel = 1 } + dst.JoinTime = src.JoinTime.Unix() } func GroupRequestOpenIMCopyDB(dst *imdb.GroupRequest, src open_im_sdk.GroupRequest) { @@ -70,6 +76,8 @@ func GroupRequestOpenIMCopyDB(dst *imdb.GroupRequest, src open_im_sdk.GroupReque func GroupRequestDBCopyOpenIM(dst *open_im_sdk.GroupRequest, src imdb.GroupRequest) { utils.CopyStructFields(dst, src) + dst.ReqTime = src.ReqTime.Unix() + dst.HandleTime = src.HandledTime.Unix() } func UserOpenIMCopyDB(dst *imdb.User, src open_im_sdk.UserInfo) { @@ -78,6 +86,7 @@ func UserOpenIMCopyDB(dst *imdb.User, src open_im_sdk.UserInfo) { func UserDBCopyOpenIM(dst *open_im_sdk.UserInfo, src imdb.User) { utils.CopyStructFields(dst, src) + dst.CreateTime = src.CreateTime.Unix() } func BlackOpenIMCopyDB(dst *imdb.Black, src open_im_sdk.BlackInfo) { From 28cfc2a9c14a389de64d62c39542144bccebe23f Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Tue, 28 Dec 2021 16:01:57 +0800 Subject: [PATCH 252/814] tidy code --- internal/api/auth/auth.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/internal/api/auth/auth.go b/internal/api/auth/auth.go index b31384cf8..51e1c7614 100644 --- a/internal/api/auth/auth.go +++ b/internal/api/auth/auth.go @@ -26,7 +26,7 @@ func UserRegister(c *gin.Context) { return } req := &rpc.UserRegisterReq{} - log.NewInfo("UserRegister args ", req.String()) + log.NewInfo(req.OperationID, "UserRegister args ", req.String()) etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImAuthName) client := rpc.NewAuthClient(etcdConn) reply, err := client.UserRegister(context.Background(), req) @@ -64,7 +64,7 @@ func UserToken(c *gin.Context) { return } req := &rpc.UserTokenReq{Platform: params.Platform, FromUserID: params.UserID, OperationID: params.OperationID} - log.NewInfo("UserToken args ", req.String()) + log.NewInfo(req.OperationID, "UserToken args ", req.String()) etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImAuthName) client := rpc.NewAuthClient(etcdConn) reply, err := client.UserToken(context.Background(), req) From 12c2d18325f944cbba8c54caa3518443fa13923d Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Tue, 28 Dec 2021 16:03:47 +0800 Subject: [PATCH 253/814] tidy code --- internal/api/auth/auth.go | 3 +++ 1 file changed, 3 insertions(+) diff --git a/internal/api/auth/auth.go b/internal/api/auth/auth.go index 51e1c7614..649b97f66 100644 --- a/internal/api/auth/auth.go +++ b/internal/api/auth/auth.go @@ -6,6 +6,7 @@ import ( "Open_IM/pkg/common/log" "Open_IM/pkg/grpc-etcdv3/getcdv3" rpc "Open_IM/pkg/proto/auth" + "Open_IM/pkg/utils" "context" "github.com/gin-gonic/gin" "net/http" @@ -26,6 +27,8 @@ func UserRegister(c *gin.Context) { return } req := &rpc.UserRegisterReq{} + utils.CopyStructFields(req.UserInfo, params) + req.OperationID = params.OperationID log.NewInfo(req.OperationID, "UserRegister args ", req.String()) etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImAuthName) client := rpc.NewAuthClient(etcdConn) From 8286c10406970d968d123159ca05d903b761e886 Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Tue, 28 Dec 2021 16:06:06 +0800 Subject: [PATCH 254/814] tidy code --- internal/rpc/msg/notification.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/internal/rpc/msg/notification.go b/internal/rpc/msg/notification.go index 76023b851..5bb11b21e 100644 --- a/internal/rpc/msg/notification.go +++ b/internal/rpc/msg/notification.go @@ -381,7 +381,7 @@ func MemberEnterNotification(req *pbGroup.GroupApplicationResponseReq) { //} func getFromToUserNickname(operationID, fromUserID, toUserID string) (string, string) { - return + return "", "" from, err1 := imdb.GetUserByUserID(fromUserID) to, err2 := imdb.GetUserByUserID(toUserID) if err1 != nil || err2 != nil { From 817a5e4b648ab2e9549a2f37deb02dca57f4e813 Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Tue, 28 Dec 2021 16:23:14 +0800 Subject: [PATCH 255/814] tidy code --- pkg/utils/utils.go | 3 +++ 1 file changed, 3 insertions(+) diff --git a/pkg/utils/utils.go b/pkg/utils/utils.go index 9953227a1..42ae68820 100644 --- a/pkg/utils/utils.go +++ b/pkg/utils/utils.go @@ -2,11 +2,13 @@ package utils import ( "fmt" + "github.com/jinzhu/copier" "reflect" ) // copy a by b b->a func CopyStructFields(a interface{}, b interface{}, fields ...string) (err error) { + copier.Copy(&a, &b) at := reflect.TypeOf(a) av := reflect.ValueOf(a) bt := reflect.TypeOf(b) @@ -34,6 +36,7 @@ func CopyStructFields(a interface{}, b interface{}, fields ...string) (err error for i := 0; i < len(_fields); i++ { name := _fields[i] + f := av.Elem().FieldByName(name) bValue := bv.FieldByName(name) From 1cb7b6a67e3fab53318d8be01ebd5915e53cccee Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Tue, 28 Dec 2021 16:24:45 +0800 Subject: [PATCH 256/814] tidy code --- go.mod | 5 +++-- go.sum | 6 ++---- 2 files changed, 5 insertions(+), 6 deletions(-) diff --git a/go.mod b/go.mod index 663b8e84c..911f68c00 100644 --- a/go.mod +++ b/go.mod @@ -18,17 +18,19 @@ require ( github.com/garyburd/redigo v1.6.2 github.com/gin-gonic/gin v1.7.0 github.com/go-playground/validator/v10 v10.4.1 + github.com/go-sql-driver/mysql v1.6.0 // indirect github.com/golang-jwt/jwt/v4 v4.1.0 github.com/golang/protobuf v1.5.2 github.com/golang/snappy v0.0.4 // indirect github.com/gorilla/websocket v1.4.2 + github.com/jinzhu/copier v0.3.4 github.com/jinzhu/gorm v1.9.16 + github.com/jinzhu/now v1.1.3 // indirect github.com/jonboulle/clockwork v0.2.2 // indirect github.com/lestrrat-go/file-rotatelogs v2.4.0+incompatible github.com/lestrrat-go/strftime v1.0.4 // indirect github.com/lib/pq v1.2.0 // indirect github.com/mattn/go-sqlite3 v1.14.6 // indirect - github.com/mitchellh/mapstructure v1.4.2 github.com/nfnt/resize v0.0.0-20180221191011-83c6a9932646 github.com/olivere/elastic/v7 v7.0.23 github.com/pierrec/lz4 v2.6.1+incompatible // indirect @@ -47,7 +49,6 @@ require ( gopkg.in/gomail.v2 v2.0.0-20160411212932-81ebce5c23df gopkg.in/mgo.v2 v2.0.0-20190816093944-a6b53ec6cb22 gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b - gorm.io/driver/mysql v1.2.2 sigs.k8s.io/yaml v1.2.0 // indirect ) diff --git a/go.sum b/go.sum index 3a6600edb..a708e28db 100644 --- a/go.sum +++ b/go.sum @@ -279,6 +279,8 @@ github.com/hashicorp/serf v0.9.5/go.mod h1:UWDWwZeL5cuWDJdl0C6wrvrUwEqtQ4ZKBKKEN github.com/ianlancetaylor/demangle v0.0.0-20181102032728-5e5cf60278f6/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc= github.com/ianlancetaylor/demangle v0.0.0-20200824232613-28f6c0f3b639/go.mod h1:aSSvb/t6k1mPoxDqO4vJh6VOCGPwU4O0C2/Eqndh1Sc= github.com/inconshreveable/mousetrap v1.0.0/go.mod h1:PxqpIevigyE2G7u3NXJIT2ANytuPF1OarO4DADm73n8= +github.com/jinzhu/copier v0.3.4 h1:mfU6jI9PtCeUjkjQ322dlff9ELjGDu975C2p/nrubVI= +github.com/jinzhu/copier v0.3.4/go.mod h1:DfbEm0FYsaqBcKcFuvmOZb218JkPGtvSHsKg8S8hyyg= github.com/jinzhu/gorm v1.9.16 h1:+IyIjPEABKRpsu/F8OvDPy9fyQlgsg2luMV2ZIH5i5o= github.com/jinzhu/gorm v1.9.16/go.mod h1:G3LB3wezTOWM2ITLzPxEXgSkOXAntiLHS7UdBefADcs= github.com/jinzhu/inflection v1.0.0 h1:K317FqzuhWc8YvSVlFMCCUb36O/S9MCKRDI7QkRKD/E= @@ -878,10 +880,6 @@ gopkg.in/yaml.v2 v2.4.0/go.mod h1:RDklbk79AGWmwhnvt/jBztapEOGDOx6ZbXqjP6csGnQ= gopkg.in/yaml.v3 v3.0.0-20200313102051-9f266ea9e77c/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b h1:h8qDotaEPuJATrMmW04NCwg7v22aHH28wwpauUhK9Oo= gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b/go.mod h1:K4uyk7z7BCEPqu6E+C64Yfv1cQ7kz7rIZviUmN+EgEM= -gorm.io/driver/mysql v1.2.2 h1:2qoqhOun1maoJOfLtnzJwq+bZlHkEF34rGntgySqp48= -gorm.io/driver/mysql v1.2.2/go.mod h1:qsiz+XcAyMrS6QY+X3M9R6b/lKM1imKmcuK9kac5LTo= -gorm.io/gorm v1.22.4 h1:8aPcyEJhY0MAt8aY6Dc524Pn+pO29K+ydu+e/cXSpQM= -gorm.io/gorm v1.22.4/go.mod h1:1aeVC+pe9ZmvKZban/gW4QPra7PRoTEssyc922qCAkk= honnef.co/go/tools v0.0.0-20190102054323-c2f93a96b099/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= honnef.co/go/tools v0.0.0-20190106161140-3f1c8253044a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= honnef.co/go/tools v0.0.0-20190418001031-e561f6794a2a/go.mod h1:rf3lG4BRIbNafJWhAfAdb/ePZxsR/4RtNHQocxwk9r4= From 2293253d528bf13f8e719ab7d118c9d0720fa245 Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Tue, 28 Dec 2021 16:26:59 +0800 Subject: [PATCH 257/814] tidy code --- pkg/utils/utils.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkg/utils/utils.go b/pkg/utils/utils.go index 42ae68820..fac9f4365 100644 --- a/pkg/utils/utils.go +++ b/pkg/utils/utils.go @@ -8,7 +8,7 @@ import ( // copy a by b b->a func CopyStructFields(a interface{}, b interface{}, fields ...string) (err error) { - copier.Copy(&a, &b) + copier.Copy(a, &b) at := reflect.TypeOf(a) av := reflect.ValueOf(a) bt := reflect.TypeOf(b) From 6f92fa006983c32a7e4334bea2e075d57f89598b Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Tue, 28 Dec 2021 16:30:00 +0800 Subject: [PATCH 258/814] tidy code --- internal/api/auth/auth.go | 2 +- pkg/utils/utils.go | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/internal/api/auth/auth.go b/internal/api/auth/auth.go index 649b97f66..9836cd853 100644 --- a/internal/api/auth/auth.go +++ b/internal/api/auth/auth.go @@ -27,7 +27,7 @@ func UserRegister(c *gin.Context) { return } req := &rpc.UserRegisterReq{} - utils.CopyStructFields(req.UserInfo, params) + utils.CopyStructFields(*req.UserInfo, params) req.OperationID = params.OperationID log.NewInfo(req.OperationID, "UserRegister args ", req.String()) etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImAuthName) diff --git a/pkg/utils/utils.go b/pkg/utils/utils.go index fac9f4365..42ae68820 100644 --- a/pkg/utils/utils.go +++ b/pkg/utils/utils.go @@ -8,7 +8,7 @@ import ( // copy a by b b->a func CopyStructFields(a interface{}, b interface{}, fields ...string) (err error) { - copier.Copy(a, &b) + copier.Copy(&a, &b) at := reflect.TypeOf(a) av := reflect.ValueOf(a) bt := reflect.TypeOf(b) From 508ccf4f9c9dbf2c47cb503e00a6cbfc212b3af1 Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Tue, 28 Dec 2021 16:31:38 +0800 Subject: [PATCH 259/814] tidy code --- pkg/utils/utils.go | 1 + 1 file changed, 1 insertion(+) diff --git a/pkg/utils/utils.go b/pkg/utils/utils.go index 42ae68820..dacdb012d 100644 --- a/pkg/utils/utils.go +++ b/pkg/utils/utils.go @@ -9,6 +9,7 @@ import ( // copy a by b b->a func CopyStructFields(a interface{}, b interface{}, fields ...string) (err error) { copier.Copy(&a, &b) + return nil at := reflect.TypeOf(a) av := reflect.ValueOf(a) bt := reflect.TypeOf(b) From f43e1a10181804ffac781df401957df652e0274d Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Tue, 28 Dec 2021 16:36:02 +0800 Subject: [PATCH 260/814] tidy code --- internal/api/auth/auth.go | 3 ++- pkg/utils/utils.go | 4 ++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/internal/api/auth/auth.go b/internal/api/auth/auth.go index 9836cd853..d56390a77 100644 --- a/internal/api/auth/auth.go +++ b/internal/api/auth/auth.go @@ -6,6 +6,7 @@ import ( "Open_IM/pkg/common/log" "Open_IM/pkg/grpc-etcdv3/getcdv3" rpc "Open_IM/pkg/proto/auth" + open_im_sdk "Open_IM/pkg/proto/sdk_ws" "Open_IM/pkg/utils" "context" "github.com/gin-gonic/gin" @@ -26,7 +27,7 @@ func UserRegister(c *gin.Context) { c.JSON(http.StatusBadRequest, gin.H{"errCode": 401, "errMsg": "not authorized"}) return } - req := &rpc.UserRegisterReq{} + req := &rpc.UserRegisterReq{UserInfo: &open_im_sdk.UserInfo{}} utils.CopyStructFields(*req.UserInfo, params) req.OperationID = params.OperationID log.NewInfo(req.OperationID, "UserRegister args ", req.String()) diff --git a/pkg/utils/utils.go b/pkg/utils/utils.go index dacdb012d..3d4a595fe 100644 --- a/pkg/utils/utils.go +++ b/pkg/utils/utils.go @@ -8,8 +8,8 @@ import ( // copy a by b b->a func CopyStructFields(a interface{}, b interface{}, fields ...string) (err error) { - copier.Copy(&a, &b) - return nil + return copier.Copy(&a, &b) + at := reflect.TypeOf(a) av := reflect.ValueOf(a) bt := reflect.TypeOf(b) From 8e4f3b4f0619b536a0faaf4261b8b2b1ed8416a5 Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Tue, 28 Dec 2021 16:48:20 +0800 Subject: [PATCH 261/814] tidy code --- internal/api/auth/auth.go | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/internal/api/auth/auth.go b/internal/api/auth/auth.go index d56390a77..912dc2157 100644 --- a/internal/api/auth/auth.go +++ b/internal/api/auth/auth.go @@ -7,9 +7,9 @@ import ( "Open_IM/pkg/grpc-etcdv3/getcdv3" rpc "Open_IM/pkg/proto/auth" open_im_sdk "Open_IM/pkg/proto/sdk_ws" - "Open_IM/pkg/utils" "context" "github.com/gin-gonic/gin" + "github.com/jinzhu/copier" "net/http" "strings" ) @@ -28,7 +28,8 @@ func UserRegister(c *gin.Context) { return } req := &rpc.UserRegisterReq{UserInfo: &open_im_sdk.UserInfo{}} - utils.CopyStructFields(*req.UserInfo, params) + //utils.CopyStructFields(*req.UserInfo, params) + copier.Copy(req.UserInfo, ¶ms) req.OperationID = params.OperationID log.NewInfo(req.OperationID, "UserRegister args ", req.String()) etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImAuthName) From 166ec71a288772dd48394c07fa77fde058cd9a0f Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Tue, 28 Dec 2021 16:50:05 +0800 Subject: [PATCH 262/814] tidy code --- internal/api/auth/auth.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/internal/api/auth/auth.go b/internal/api/auth/auth.go index 912dc2157..5dde76778 100644 --- a/internal/api/auth/auth.go +++ b/internal/api/auth/auth.go @@ -37,7 +37,7 @@ func UserRegister(c *gin.Context) { reply, err := client.UserRegister(context.Background(), req) if err != nil || reply.CommonResp.ErrCode != 0 { - log.NewError("0", "UserRegister failed ", err.Error(), req.String()) + log.NewError("0", "UserRegister failed ", err, reply.CommonResp.ErrCode) c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": err.Error()}) return } From eb640157f2c5f277b7284ea6a47916e4c55e66e6 Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Tue, 28 Dec 2021 16:58:01 +0800 Subject: [PATCH 263/814] tidy code --- internal/api/auth/auth.go | 6 +++--- pkg/utils/utils.go | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/internal/api/auth/auth.go b/internal/api/auth/auth.go index 5dde76778..4ab27e3f4 100644 --- a/internal/api/auth/auth.go +++ b/internal/api/auth/auth.go @@ -7,6 +7,7 @@ import ( "Open_IM/pkg/grpc-etcdv3/getcdv3" rpc "Open_IM/pkg/proto/auth" open_im_sdk "Open_IM/pkg/proto/sdk_ws" + "Open_IM/pkg/utils" "context" "github.com/gin-gonic/gin" "github.com/jinzhu/copier" @@ -28,16 +29,15 @@ func UserRegister(c *gin.Context) { return } req := &rpc.UserRegisterReq{UserInfo: &open_im_sdk.UserInfo{}} - //utils.CopyStructFields(*req.UserInfo, params) + utils.CopyStructFields(*req.UserInfo, params) copier.Copy(req.UserInfo, ¶ms) req.OperationID = params.OperationID log.NewInfo(req.OperationID, "UserRegister args ", req.String()) etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImAuthName) client := rpc.NewAuthClient(etcdConn) reply, err := client.UserRegister(context.Background(), req) - if err != nil || reply.CommonResp.ErrCode != 0 { - log.NewError("0", "UserRegister failed ", err, reply.CommonResp.ErrCode) + log.NewError(req.OperationID, "UserRegister failed ", err, reply.CommonResp.ErrCode) c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": err.Error()}) return } diff --git a/pkg/utils/utils.go b/pkg/utils/utils.go index 3d4a595fe..d5dc0254a 100644 --- a/pkg/utils/utils.go +++ b/pkg/utils/utils.go @@ -8,7 +8,7 @@ import ( // copy a by b b->a func CopyStructFields(a interface{}, b interface{}, fields ...string) (err error) { - return copier.Copy(&a, &b) + return copier.Copy(a, b) at := reflect.TypeOf(a) av := reflect.ValueOf(a) From dbd3ed49ed2cc41795a248f99483b74f04b5707a Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Tue, 28 Dec 2021 16:59:17 +0800 Subject: [PATCH 264/814] tidy code --- internal/api/auth/auth.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/internal/api/auth/auth.go b/internal/api/auth/auth.go index 4ab27e3f4..5e77ea9de 100644 --- a/internal/api/auth/auth.go +++ b/internal/api/auth/auth.go @@ -38,7 +38,7 @@ func UserRegister(c *gin.Context) { reply, err := client.UserRegister(context.Background(), req) if err != nil || reply.CommonResp.ErrCode != 0 { log.NewError(req.OperationID, "UserRegister failed ", err, reply.CommonResp.ErrCode) - c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": err.Error()}) + c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": reply.CommonResp.ErrMsg}) return } From 2b60430c55336de2f75949d8c95738b72cf71991 Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Tue, 28 Dec 2021 17:03:37 +0800 Subject: [PATCH 265/814] tidy code --- pkg/common/db/mysql_model/im_mysql_model/model_struct.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkg/common/db/mysql_model/im_mysql_model/model_struct.go b/pkg/common/db/mysql_model/im_mysql_model/model_struct.go index 150aedd70..ac6ea4f86 100644 --- a/pkg/common/db/mysql_model/im_mysql_model/model_struct.go +++ b/pkg/common/db/mysql_model/im_mysql_model/model_struct.go @@ -137,7 +137,7 @@ type GroupRequest struct { type User struct { UserID string `gorm:"column:user_id;primaryKey;"` Nickname string `gorm:"column:name"` - FaceUrl string `gorm:"column:icon"` + FaceUrl string `gorm:"column:face_url"` Gender int32 `gorm:"column:gender"` PhoneNumber string `gorm:"column:phone_number"` Birth string `gorm:"column:birth"` From 3ec1d1a965d65b00a9c452fe97fb3e1b3a1d8996 Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Tue, 28 Dec 2021 17:12:07 +0800 Subject: [PATCH 266/814] token modify --- pkg/common/token_verify/jwt_token.go | 8 +++++--- 1 file changed, 5 insertions(+), 3 deletions(-) diff --git a/pkg/common/token_verify/jwt_token.go b/pkg/common/token_verify/jwt_token.go index 4d33c3a58..519ecad63 100644 --- a/pkg/common/token_verify/jwt_token.go +++ b/pkg/common/token_verify/jwt_token.go @@ -55,9 +55,11 @@ func CreateToken(userID string, platformID int32) (string, int64, error) { deleteTokenKey = append(deleteTokenKey, k) } } - err = commonDB.DB.DeleteTokenByUidPid(userID, platformID, deleteTokenKey) - if err != nil { - return "", 0, err + if len(deleteTokenKey) != 0 { + err = commonDB.DB.DeleteTokenByUidPid(userID, platformID, deleteTokenKey) + if err != nil { + return "", 0, err + } } err = commonDB.DB.AddTokenFlag(userID, platformID, tokenString, constant.NormalToken) if err != nil { From eeee9a54d78ec5239675a5a5b950fa1672a5fce6 Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Tue, 28 Dec 2021 17:13:31 +0800 Subject: [PATCH 267/814] tidy code --- internal/api/auth/auth.go | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/internal/api/auth/auth.go b/internal/api/auth/auth.go index 5e77ea9de..2b3420d90 100644 --- a/internal/api/auth/auth.go +++ b/internal/api/auth/auth.go @@ -10,7 +10,6 @@ import ( "Open_IM/pkg/utils" "context" "github.com/gin-gonic/gin" - "github.com/jinzhu/copier" "net/http" "strings" ) @@ -30,7 +29,7 @@ func UserRegister(c *gin.Context) { } req := &rpc.UserRegisterReq{UserInfo: &open_im_sdk.UserInfo{}} utils.CopyStructFields(*req.UserInfo, params) - copier.Copy(req.UserInfo, ¶ms) + // copier.Copy(req.UserInfo, ¶ms) req.OperationID = params.OperationID log.NewInfo(req.OperationID, "UserRegister args ", req.String()) etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImAuthName) From 62d0a7e6ffd149c6646bab74c6f8474a04002a9d Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Tue, 28 Dec 2021 17:15:51 +0800 Subject: [PATCH 268/814] tidy code --- internal/api/auth/auth.go | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/internal/api/auth/auth.go b/internal/api/auth/auth.go index 2b3420d90..8881e27b1 100644 --- a/internal/api/auth/auth.go +++ b/internal/api/auth/auth.go @@ -7,9 +7,9 @@ import ( "Open_IM/pkg/grpc-etcdv3/getcdv3" rpc "Open_IM/pkg/proto/auth" open_im_sdk "Open_IM/pkg/proto/sdk_ws" - "Open_IM/pkg/utils" "context" "github.com/gin-gonic/gin" + "github.com/jinzhu/copier" "net/http" "strings" ) @@ -28,8 +28,8 @@ func UserRegister(c *gin.Context) { return } req := &rpc.UserRegisterReq{UserInfo: &open_im_sdk.UserInfo{}} - utils.CopyStructFields(*req.UserInfo, params) - // copier.Copy(req.UserInfo, ¶ms) + // utils.CopyStructFields(*req.UserInfo, params) + copier.Copy(req.UserInfo, ¶ms) req.OperationID = params.OperationID log.NewInfo(req.OperationID, "UserRegister args ", req.String()) etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImAuthName) From 16e276d08ea8a600f9ad3dc5d8a67e3d0f6248af Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Tue, 28 Dec 2021 17:45:57 +0800 Subject: [PATCH 269/814] tidy code --- internal/api/auth/auth.go | 3 ++- pkg/utils/utils.go | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/internal/api/auth/auth.go b/internal/api/auth/auth.go index 8881e27b1..5e77ea9de 100644 --- a/internal/api/auth/auth.go +++ b/internal/api/auth/auth.go @@ -7,6 +7,7 @@ import ( "Open_IM/pkg/grpc-etcdv3/getcdv3" rpc "Open_IM/pkg/proto/auth" open_im_sdk "Open_IM/pkg/proto/sdk_ws" + "Open_IM/pkg/utils" "context" "github.com/gin-gonic/gin" "github.com/jinzhu/copier" @@ -28,7 +29,7 @@ func UserRegister(c *gin.Context) { return } req := &rpc.UserRegisterReq{UserInfo: &open_im_sdk.UserInfo{}} - // utils.CopyStructFields(*req.UserInfo, params) + utils.CopyStructFields(*req.UserInfo, params) copier.Copy(req.UserInfo, ¶ms) req.OperationID = params.OperationID log.NewInfo(req.OperationID, "UserRegister args ", req.String()) diff --git a/pkg/utils/utils.go b/pkg/utils/utils.go index d5dc0254a..3d4a595fe 100644 --- a/pkg/utils/utils.go +++ b/pkg/utils/utils.go @@ -8,7 +8,7 @@ import ( // copy a by b b->a func CopyStructFields(a interface{}, b interface{}, fields ...string) (err error) { - return copier.Copy(a, b) + return copier.Copy(&a, &b) at := reflect.TypeOf(a) av := reflect.ValueOf(a) From 848510d4ca50d87b58721ac144c67aa989b1c2cc Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Tue, 28 Dec 2021 17:48:21 +0800 Subject: [PATCH 270/814] tidy code --- internal/api/auth/auth.go | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/internal/api/auth/auth.go b/internal/api/auth/auth.go index 5e77ea9de..813ff34de 100644 --- a/internal/api/auth/auth.go +++ b/internal/api/auth/auth.go @@ -10,7 +10,6 @@ import ( "Open_IM/pkg/utils" "context" "github.com/gin-gonic/gin" - "github.com/jinzhu/copier" "net/http" "strings" ) @@ -30,7 +29,7 @@ func UserRegister(c *gin.Context) { } req := &rpc.UserRegisterReq{UserInfo: &open_im_sdk.UserInfo{}} utils.CopyStructFields(*req.UserInfo, params) - copier.Copy(req.UserInfo, ¶ms) + //copier.Copy(req.UserInfo, ¶ms) req.OperationID = params.OperationID log.NewInfo(req.OperationID, "UserRegister args ", req.String()) etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImAuthName) From ec95f0a7af0d26be51f510ac49121480cea6db75 Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Tue, 28 Dec 2021 17:49:52 +0800 Subject: [PATCH 271/814] tidy code --- internal/api/auth/auth.go | 2 +- pkg/utils/utils.go | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/internal/api/auth/auth.go b/internal/api/auth/auth.go index 813ff34de..4b218f263 100644 --- a/internal/api/auth/auth.go +++ b/internal/api/auth/auth.go @@ -28,7 +28,7 @@ func UserRegister(c *gin.Context) { return } req := &rpc.UserRegisterReq{UserInfo: &open_im_sdk.UserInfo{}} - utils.CopyStructFields(*req.UserInfo, params) + utils.CopyStructFields(req.UserInfo, ¶ms) //copier.Copy(req.UserInfo, ¶ms) req.OperationID = params.OperationID log.NewInfo(req.OperationID, "UserRegister args ", req.String()) diff --git a/pkg/utils/utils.go b/pkg/utils/utils.go index 3d4a595fe..d5dc0254a 100644 --- a/pkg/utils/utils.go +++ b/pkg/utils/utils.go @@ -8,7 +8,7 @@ import ( // copy a by b b->a func CopyStructFields(a interface{}, b interface{}, fields ...string) (err error) { - return copier.Copy(&a, &b) + return copier.Copy(a, b) at := reflect.TypeOf(a) av := reflect.ValueOf(a) From 188a90f97d0f670bf5d91fb5b54418239a2dbfcc Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Tue, 28 Dec 2021 18:01:40 +0800 Subject: [PATCH 272/814] tidy code --- internal/api/auth/auth.go | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/internal/api/auth/auth.go b/internal/api/auth/auth.go index 4b218f263..315849aa2 100644 --- a/internal/api/auth/auth.go +++ b/internal/api/auth/auth.go @@ -36,8 +36,9 @@ func UserRegister(c *gin.Context) { client := rpc.NewAuthClient(etcdConn) reply, err := client.UserRegister(context.Background(), req) if err != nil || reply.CommonResp.ErrCode != 0 { - log.NewError(req.OperationID, "UserRegister failed ", err, reply.CommonResp.ErrCode) + c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": reply.CommonResp.ErrMsg}) + log.NewError(req.OperationID, "UserRegister failed ", err, reply.CommonResp.ErrCode) return } From 141936e609917a6e398029fed98627be4d17981e Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Tue, 28 Dec 2021 18:03:51 +0800 Subject: [PATCH 273/814] tidy code --- internal/api/auth/auth.go | 6 +++--- pkg/base_info/auth_api_struct.go | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/internal/api/auth/auth.go b/internal/api/auth/auth.go index 315849aa2..4a912beca 100644 --- a/internal/api/auth/auth.go +++ b/internal/api/auth/auth.go @@ -36,9 +36,8 @@ func UserRegister(c *gin.Context) { client := rpc.NewAuthClient(etcdConn) reply, err := client.UserRegister(context.Background(), req) if err != nil || reply.CommonResp.ErrCode != 0 { - - c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": reply.CommonResp.ErrMsg}) log.NewError(req.OperationID, "UserRegister failed ", err, reply.CommonResp.ErrCode) + c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": reply.CommonResp.ErrMsg}) return } @@ -51,8 +50,9 @@ func UserRegister(c *gin.Context) { } resp := api.UserRegisterResp{CommResp: api.CommResp{ErrCode: replyToken.CommonResp.ErrCode, ErrMsg: replyToken.CommonResp.ErrMsg}, UserToken: api.UserTokenInfo{UserID: req.UserInfo.UserID, Token: replyToken.Token, ExpiredTime: replyToken.ExpiredTime}} - c.JSON(http.StatusOK, resp) log.NewInfo(req.OperationID, "UserRegister return ", resp) + c.JSON(http.StatusOK, resp) + } func UserToken(c *gin.Context) { diff --git a/pkg/base_info/auth_api_struct.go b/pkg/base_info/auth_api_struct.go index 8dd3923a4..a4db08f84 100644 --- a/pkg/base_info/auth_api_struct.go +++ b/pkg/base_info/auth_api_struct.go @@ -17,7 +17,7 @@ type UserRegisterReq struct { } type UserTokenInfo struct { - UserID string `json:"secret"` + UserID string `json:"userID"` Token string `json:"token"` ExpiredTime int64 `json:"expiredTime"` } From 7ee703f0773b0ecfd47be5cae4ebfb4fc0204dd1 Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Tue, 28 Dec 2021 18:05:25 +0800 Subject: [PATCH 274/814] token modify --- pkg/common/log/file_line_hk.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkg/common/log/file_line_hk.go b/pkg/common/log/file_line_hk.go index 7eeb6ea82..9ffa7806e 100644 --- a/pkg/common/log/file_line_hk.go +++ b/pkg/common/log/file_line_hk.go @@ -24,7 +24,7 @@ func (f *fileHook) Levels() []logrus.Level { } func (f *fileHook) Fire(entry *logrus.Entry) error { - entry.Data["FilePath"] = findCaller(5) + entry.Data["FilePath"] = findCaller(6) return nil } From 6d589a1204c54e88de272b1f7909e4a64b02868d Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Tue, 28 Dec 2021 18:18:35 +0800 Subject: [PATCH 275/814] tidy code --- internal/api/auth/auth.go | 2 +- internal/api/user/user.go | 19 ++++++++++--------- internal/rpc/friend/firend.go | 1 - pkg/base_info/user_api_struct.go | 9 +++++++++ 4 files changed, 20 insertions(+), 11 deletions(-) diff --git a/internal/api/auth/auth.go b/internal/api/auth/auth.go index 4a912beca..76effddf2 100644 --- a/internal/api/auth/auth.go +++ b/internal/api/auth/auth.go @@ -81,6 +81,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}} - c.JSON(http.StatusOK, resp) log.NewInfo(req.OperationID, "UserRegister return ", resp) + c.JSON(http.StatusOK, resp) } diff --git a/internal/api/user/user.go b/internal/api/user/user.go index b6d550f1d..3ddc95353 100644 --- a/internal/api/user/user.go +++ b/internal/api/user/user.go @@ -79,11 +79,12 @@ import ( func GetUserInfo(c *gin.Context) { params := api.GetUserInfoReq{} if err := c.BindJSON(¶ms); err != nil { + log.NewError("0", "BindJSON failed ", err.Error()) c.JSON(http.StatusBadRequest, gin.H{"errCode": http.StatusBadRequest, "errMsg": err.Error()}) return } req := &rpc.GetUserInfoReq{} - utils.CopyStructFields(&req, params) + utils.CopyStructFields(req, ¶ms) var ok bool ok, req.OpUserID = token_verify.GetUserIDFromToken(c.Request.Header.Get("token")) if !ok { @@ -102,21 +103,20 @@ func GetUserInfo(c *gin.Context) { return } - resp := api.GetUserInfoResp{CommResp: api.CommResp{ErrCode: RpcResp.CommonResp.ErrCode, ErrMsg: RpcResp.CommonResp.ErrMsg}} - resp.UserInfoList = RpcResp.UserInfoList - c.JSON(http.StatusOK, resp) - + resp := api.GetUserInfoResp{CommResp: api.CommResp{ErrCode: RpcResp.CommonResp.ErrCode, ErrMsg: RpcResp.CommonResp.ErrMsg}, UserInfoList: RpcResp.UserInfoList} log.NewInfo(req.OperationID, "GetUserInfo api return ", resp) + c.JSON(http.StatusOK, resp) } func UpdateUserInfo(c *gin.Context) { - params := api.GetUserInfoReq{} + params := api.UpdateUserInfoReq{} if err := c.BindJSON(¶ms); err != nil { + log.NewError("0", "BindJSON failed ", err.Error()) c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": err.Error()}) return } req := &rpc.UpdateUserInfoReq{} - utils.CopyStructFields(&req, params) + utils.CopyStructFields(req, ¶ms) var ok bool ok, req.OpUserID = token_verify.GetUserIDFromToken(c.Request.Header.Get("token")) if !ok { @@ -134,6 +134,7 @@ func UpdateUserInfo(c *gin.Context) { c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": "call rpc server failed"}) return } - c.JSON(http.StatusOK, gin.H{"errCode": RpcResp.CommonResp.ErrCode, "errMsg": RpcResp.CommonResp.ErrMsg}) - log.NewInfo(req.OperationID, "UpdateUserInfo api return ", RpcResp.CommonResp) + 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) } diff --git a/internal/rpc/friend/firend.go b/internal/rpc/friend/firend.go index 8836bf40e..b334cb1e3 100644 --- a/internal/rpc/friend/firend.go +++ b/internal/rpc/friend/firend.go @@ -434,7 +434,6 @@ func (s *friendServer) GetFriendApplyList(ctx context.Context, req *pbFriend.Get var userInfo sdkws.FriendRequest utils.CopyStructFields(&userInfo, applyUserInfo) appleUserList = append(appleUserList, &userInfo) - } log.NewInfo(req.CommID.OperationID, "rpc GetFriendApplyList ok", pbFriend.GetFriendApplyListResp{FriendRequestList: appleUserList}) return &pbFriend.GetFriendApplyListResp{FriendRequestList: appleUserList}, nil diff --git a/pkg/base_info/user_api_struct.go b/pkg/base_info/user_api_struct.go index 2e736e97f..113cf10ca 100644 --- a/pkg/base_info/user_api_struct.go +++ b/pkg/base_info/user_api_struct.go @@ -26,3 +26,12 @@ type GetUserInfoResp struct { CommResp UserInfoList []*open_im_sdk.UserInfo `json:"data"` } + +type UpdateUserInfoReq struct { + UserInfo + OperationID string `json:"operationID" binding:"required"` +} + +type UpdateUserInfoResp struct { + CommResp +} From 05ee76b0a9c954fe0f52abf7bdd14b7444beaf56 Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Tue, 28 Dec 2021 18:33:36 +0800 Subject: [PATCH 276/814] tidy code --- internal/api/friend/friend.go | 35 ++++++++++++++++-------------- pkg/base_info/friend_api_struct.go | 4 ++-- 2 files changed, 21 insertions(+), 18 deletions(-) diff --git a/internal/api/friend/friend.go b/internal/api/friend/friend.go index 55be48d69..e120b84c1 100644 --- a/internal/api/friend/friend.go +++ b/internal/api/friend/friend.go @@ -17,12 +17,12 @@ import ( func AddBlacklist(c *gin.Context) { params := api.AddBlacklistReq{} if err := c.BindJSON(¶ms); err != nil { - c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": err.Error()}) log.NewError("0", "BindJSON failed ", err.Error()) + c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": err.Error()}) return } req := &rpc.AddBlacklistReq{} - utils.CopyStructFields(req.CommID, params) + utils.CopyStructFields(req.CommID, ¶ms) var ok bool ok, req.CommID.OpUserID = token_verify.GetUserIDFromToken(c.Request.Header.Get("token")) if !ok { @@ -41,20 +41,19 @@ func AddBlacklist(c *gin.Context) { return } resp := api.AddBlacklistResp{CommResp: api.CommResp{ErrCode: RpcResp.CommonResp.ErrCode, ErrMsg: RpcResp.CommonResp.ErrMsg}} - c.JSON(http.StatusOK, resp) log.NewInfo(req.CommID.OperationID, "AddBlacklist api return ", resp) + c.JSON(http.StatusOK, resp) } func ImportFriend(c *gin.Context) { params := api.ImportFriendReq{} if err := c.BindJSON(¶ms); err != nil { - - c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": err.Error()}) log.NewError("0", "BindJSON failed ", err.Error()) + c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": err.Error()}) return } req := &rpc.ImportFriendReq{} - utils.CopyStructFields(req, params) + utils.CopyStructFields(req, ¶ms) var ok bool ok, req.OpUserID = token_verify.GetUserIDFromToken(c.Request.Header.Get("token")) if !ok { @@ -74,8 +73,8 @@ func ImportFriend(c *gin.Context) { } resp := api.ImportFriendResp{CommResp: api.CommResp{ErrCode: RpcResp.CommonResp.ErrCode, ErrMsg: RpcResp.CommonResp.ErrMsg}, Data: RpcResp.FailedFriendUserIDList} - c.JSON(http.StatusOK, resp) log.NewInfo(req.OperationID, "ImportFriend api return ", resp) + c.JSON(http.StatusOK, resp) } func AddFriend(c *gin.Context) { @@ -106,8 +105,8 @@ func AddFriend(c *gin.Context) { } resp := api.AddFriendResp{CommResp: api.CommResp{ErrCode: RpcResp.CommonResp.ErrCode, ErrMsg: RpcResp.CommonResp.ErrMsg}} - c.JSON(http.StatusOK, resp) log.NewInfo(req.CommID.OperationID, "AddFriend api return ", resp) + c.JSON(http.StatusOK, resp) } func AddFriendResponse(c *gin.Context) { @@ -118,7 +117,7 @@ func AddFriendResponse(c *gin.Context) { return } req := &rpc.AddFriendResponseReq{} - utils.CopyStructFields(req.CommID, params) + utils.CopyStructFields(req.CommID, ¶ms) var ok bool ok, req.CommID.OpUserID = token_verify.GetUserIDFromToken(c.Request.Header.Get("token")) if !ok { @@ -126,7 +125,7 @@ func AddFriendResponse(c *gin.Context) { c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": "GetUserIDFromToken failed"}) return } - utils.CopyStructFields(&req, params) + utils.CopyStructFields(&req, ¶ms) log.NewInfo(req.CommID.OperationID, "AddFriendResponse args ", req.String()) etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImFriendName) @@ -139,8 +138,8 @@ func AddFriendResponse(c *gin.Context) { } resp := api.AddFriendResponseResp{CommResp: api.CommResp{ErrCode: RpcResp.CommonResp.ErrCode, ErrMsg: RpcResp.CommonResp.ErrMsg}} - c.JSON(http.StatusOK, resp) log.NewInfo(req.CommID.OperationID, "AddFriendResponse api return ", resp) + c.JSON(http.StatusOK, resp) } func DeleteFriend(c *gin.Context) { @@ -151,7 +150,7 @@ func DeleteFriend(c *gin.Context) { return } req := &rpc.DeleteFriendReq{} - utils.CopyStructFields(req.CommID, params) + utils.CopyStructFields(req.CommID, ¶ms) var ok bool ok, req.CommID.OpUserID = token_verify.GetUserIDFromToken(c.Request.Header.Get("token")) if !ok { @@ -171,8 +170,8 @@ func DeleteFriend(c *gin.Context) { } resp := api.DeleteFriendResp{CommResp: api.CommResp{ErrCode: RpcResp.CommonResp.ErrCode, ErrMsg: RpcResp.CommonResp.ErrMsg}} - c.JSON(http.StatusOK, resp) log.NewInfo(req.CommID.OperationID, "DeleteFriend api return ", resp) + c.JSON(http.StatusOK, resp) } func GetBlacklist(c *gin.Context) { @@ -183,7 +182,7 @@ func GetBlacklist(c *gin.Context) { return } req := &rpc.GetBlacklistReq{} - utils.CopyStructFields(req.CommID, params) + utils.CopyStructFields(req.CommID, ¶ms) var ok bool ok, req.CommID.OpUserID = token_verify.GetUserIDFromToken(c.Request.Header.Get("token")) if !ok { @@ -203,9 +202,13 @@ func GetBlacklist(c *gin.Context) { } resp := api.GetBlackListResp{CommResp: api.CommResp{ErrCode: RpcResp.ErrCode, ErrMsg: RpcResp.ErrMsg}} - utils.CopyStructFields(&resp.BlackUserInfoList, RpcResp.BlackUserInfoList) + for _, v := range RpcResp.BlackUserInfoList { + black := api.BlackUserInfo{} + utils.CopyStructFields(&black, v) + resp.BlackUserInfoList = append(resp.BlackUserInfoList, &black) + } log.NewInfo(req.CommID.OperationID, "GetBlacklist api return ", resp) - + c.JSON(http.StatusOK, resp) } func SetFriendComment(c *gin.Context) { diff --git a/pkg/base_info/friend_api_struct.go b/pkg/base_info/friend_api_struct.go index 94a48662b..b5cee09e5 100644 --- a/pkg/base_info/friend_api_struct.go +++ b/pkg/base_info/friend_api_struct.go @@ -54,7 +54,7 @@ type GetBlackListReq struct { } type GetBlackListResp struct { CommResp - BlackUserInfoList []*blackUserInfo `json:"data"` + BlackUserInfoList []*BlackUserInfo `json:"data"` } //type PublicUserInfo struct { @@ -64,7 +64,7 @@ type GetBlackListResp struct { // Gender int32 `json:"gender"` //} -type blackUserInfo struct { +type BlackUserInfo struct { open_im_sdk.PublicUserInfo } From 12ebf232d50a0896824441bb9bbbe229ccbdd441 Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Tue, 28 Dec 2021 18:37:16 +0800 Subject: [PATCH 277/814] tidy code --- internal/api/friend/friend.go | 3 ++- internal/rpc/auth/auth.go | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/internal/api/friend/friend.go b/internal/api/friend/friend.go index e120b84c1..85ec67e5e 100644 --- a/internal/api/friend/friend.go +++ b/internal/api/friend/friend.go @@ -239,8 +239,9 @@ func SetFriendComment(c *gin.Context) { return } resp := api.SetFriendCommentResp{CommResp: api.CommResp{ErrCode: RpcResp.CommonResp.ErrCode, ErrMsg: RpcResp.CommonResp.ErrMsg}} - c.JSON(http.StatusOK, resp) + log.NewInfo(req.CommID.OperationID, "SetFriendComment api return ", resp) + c.JSON(http.StatusOK, resp) } func RemoveBlacklist(c *gin.Context) { diff --git a/internal/rpc/auth/auth.go b/internal/rpc/auth/auth.go index 166df967a..70ebfcbc0 100644 --- a/internal/rpc/auth/auth.go +++ b/internal/rpc/auth/auth.go @@ -48,7 +48,7 @@ func (rpc *rpcAuth) UserToken(_ context.Context, req *pbAuth.UserTokenReq) (*pbA } log.NewInfo(req.OperationID, "rpc UserToken return ") - return &pbAuth.UserTokenResp{Token: tokens, ExpiredTime: expTime}, nil + return &pbAuth.UserTokenResp{CommonResp: &pbAuth.CommonResp{}, Token: tokens, ExpiredTime: expTime}, nil } type rpcAuth struct { From 5c509ee85a380c5a7cd17c48e9ae64e9540c1d65 Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Tue, 28 Dec 2021 19:28:33 +0800 Subject: [PATCH 278/814] tidy code --- internal/api/user/user.go | 5 +++-- pkg/base_info/public_struct.go | 2 +- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/internal/api/user/user.go b/internal/api/user/user.go index 3ddc95353..9ebc46a26 100644 --- a/internal/api/user/user.go +++ b/internal/api/user/user.go @@ -6,6 +6,7 @@ import ( "Open_IM/pkg/common/log" "Open_IM/pkg/common/token_verify" "Open_IM/pkg/grpc-etcdv3/getcdv3" + open_im_sdk "Open_IM/pkg/proto/sdk_ws" rpc "Open_IM/pkg/proto/user" "Open_IM/pkg/utils" "context" @@ -115,8 +116,8 @@ func UpdateUserInfo(c *gin.Context) { c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": err.Error()}) return } - req := &rpc.UpdateUserInfoReq{} - utils.CopyStructFields(req, ¶ms) + req := &rpc.UpdateUserInfoReq{UserInfo: &open_im_sdk.UserInfo{}} + utils.CopyStructFields(req.UserInfo, ¶ms) var ok bool ok, req.OpUserID = token_verify.GetUserIDFromToken(c.Request.Header.Get("token")) if !ok { diff --git a/pkg/base_info/public_struct.go b/pkg/base_info/public_struct.go index 679b58082..1becfe0ab 100644 --- a/pkg/base_info/public_struct.go +++ b/pkg/base_info/public_struct.go @@ -7,7 +7,7 @@ import ( type UserInfo struct { UserID string `json:"userID" binding:"required,min=1,max=64"` - Nickname string `json:"nickname" binding:"required,min=1,max=64"` + Nickname string `json:"nickname" binding:"omitempty,min=1,max=64"` FaceUrl string `json:"faceUrl" binding:"omitempty,max=1024"` Gender int32 `json:"gender" binding:"omitempty,oneof=0 1 2"` PhoneNumber string `json:"phoneNumber" binding:"omitempty,max=32"` From f4c3c86dd1b7a0b44e456d2c1d744a92ca209c71 Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Tue, 28 Dec 2021 20:03:20 +0800 Subject: [PATCH 279/814] tidy code --- internal/api/user/user.go | 1 + pkg/base_info/public_struct.go | 2 +- .../im_mysql_model/model_struct.go | 2 +- pkg/proto/sdk_ws/ws.pb.go | 270 +++++++++--------- pkg/proto/sdk_ws/ws.proto | 2 +- 5 files changed, 139 insertions(+), 138 deletions(-) diff --git a/internal/api/user/user.go b/internal/api/user/user.go index 9ebc46a26..f55460cc0 100644 --- a/internal/api/user/user.go +++ b/internal/api/user/user.go @@ -118,6 +118,7 @@ func UpdateUserInfo(c *gin.Context) { } req := &rpc.UpdateUserInfoReq{UserInfo: &open_im_sdk.UserInfo{}} utils.CopyStructFields(req.UserInfo, ¶ms) + req.OperationID = params.OperationID var ok bool ok, req.OpUserID = token_verify.GetUserIDFromToken(c.Request.Header.Get("token")) if !ok { diff --git a/pkg/base_info/public_struct.go b/pkg/base_info/public_struct.go index 1becfe0ab..40f92e822 100644 --- a/pkg/base_info/public_struct.go +++ b/pkg/base_info/public_struct.go @@ -11,7 +11,7 @@ type UserInfo struct { FaceUrl string `json:"faceUrl" binding:"omitempty,max=1024"` Gender int32 `json:"gender" binding:"omitempty,oneof=0 1 2"` PhoneNumber string `json:"phoneNumber" binding:"omitempty,max=32"` - Birth string `json:"birth" binding:"omitempty,max=16"` + Birth int64 `json:"birth" binding:"omitempty,max=16"` Email string `json:"email" binding:"omitempty,max=64"` Ex string `json:"ex" binding:"omitempty,max=1024"` } diff --git a/pkg/common/db/mysql_model/im_mysql_model/model_struct.go b/pkg/common/db/mysql_model/im_mysql_model/model_struct.go index ac6ea4f86..ae2d9dc43 100644 --- a/pkg/common/db/mysql_model/im_mysql_model/model_struct.go +++ b/pkg/common/db/mysql_model/im_mysql_model/model_struct.go @@ -140,7 +140,7 @@ type User struct { FaceUrl string `gorm:"column:face_url"` Gender int32 `gorm:"column:gender"` PhoneNumber string `gorm:"column:phone_number"` - Birth string `gorm:"column:birth"` + Birth time.Time `gorm:"column:birth"` Email string `gorm:"column:email"` Ex string `gorm:"column:ex"` CreateTime time.Time `gorm:"column:create_time"` diff --git a/pkg/proto/sdk_ws/ws.pb.go b/pkg/proto/sdk_ws/ws.pb.go index 3b087bdde..b9857aad1 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_b7876bd3c094d103, []int{0} + return fileDescriptor_ws_c6aceb61f76d5c8d, []int{0} } func (m *GroupInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupInfo.Unmarshal(m, b) @@ -164,7 +164,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_b7876bd3c094d103, []int{1} + return fileDescriptor_ws_c6aceb61f76d5c8d, []int{1} } func (m *GroupMemberFullInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupMemberFullInfo.Unmarshal(m, b) @@ -269,7 +269,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_b7876bd3c094d103, []int{2} + return fileDescriptor_ws_c6aceb61f76d5c8d, []int{2} } func (m *PublicUserInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_PublicUserInfo.Unmarshal(m, b) @@ -330,7 +330,7 @@ type UserInfo struct { FaceUrl string `protobuf:"bytes,3,opt,name=FaceUrl" json:"FaceUrl,omitempty"` Gender int32 `protobuf:"varint,4,opt,name=Gender" json:"Gender,omitempty"` PhoneNumber string `protobuf:"bytes,5,opt,name=PhoneNumber" json:"PhoneNumber,omitempty"` - Birth string `protobuf:"bytes,6,opt,name=Birth" json:"Birth,omitempty"` + Birth int64 `protobuf:"varint,6,opt,name=Birth" json:"Birth,omitempty"` Email string `protobuf:"bytes,7,opt,name=Email" json:"Email,omitempty"` Ex string `protobuf:"bytes,8,opt,name=Ex" json:"Ex,omitempty"` CreateTime int64 `protobuf:"varint,9,opt,name=CreateTime" json:"CreateTime,omitempty"` @@ -344,7 +344,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_b7876bd3c094d103, []int{3} + return fileDescriptor_ws_c6aceb61f76d5c8d, []int{3} } func (m *UserInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_UserInfo.Unmarshal(m, b) @@ -399,11 +399,11 @@ func (m *UserInfo) GetPhoneNumber() string { return "" } -func (m *UserInfo) GetBirth() string { +func (m *UserInfo) GetBirth() int64 { if m != nil { return m.Birth } - return "" + return 0 } func (m *UserInfo) GetEmail() string { @@ -451,7 +451,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_b7876bd3c094d103, []int{4} + return fileDescriptor_ws_c6aceb61f76d5c8d, []int{4} } func (m *FriendInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FriendInfo.Unmarshal(m, b) @@ -536,7 +536,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_b7876bd3c094d103, []int{5} + return fileDescriptor_ws_c6aceb61f76d5c8d, []int{5} } func (m *BlackInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_BlackInfo.Unmarshal(m, b) @@ -617,7 +617,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_b7876bd3c094d103, []int{6} + return fileDescriptor_ws_c6aceb61f76d5c8d, []int{6} } func (m *GroupRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupRequest.Unmarshal(m, b) @@ -719,7 +719,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_b7876bd3c094d103, []int{7} + return fileDescriptor_ws_c6aceb61f76d5c8d, []int{7} } func (m *FriendRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FriendRequest.Unmarshal(m, b) @@ -818,7 +818,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_b7876bd3c094d103, []int{8} + return fileDescriptor_ws_c6aceb61f76d5c8d, []int{8} } func (m *PullMessageBySeqListResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_PullMessageBySeqListResp.Unmarshal(m, b) @@ -893,7 +893,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_b7876bd3c094d103, []int{9} + return fileDescriptor_ws_c6aceb61f76d5c8d, []int{9} } func (m *PullMessageBySeqListReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_PullMessageBySeqListReq.Unmarshal(m, b) @@ -948,7 +948,7 @@ func (m *PullMessageReq) Reset() { *m = PullMessageReq{} } func (m *PullMessageReq) String() string { return proto.CompactTextString(m) } func (*PullMessageReq) ProtoMessage() {} func (*PullMessageReq) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_b7876bd3c094d103, []int{10} + return fileDescriptor_ws_c6aceb61f76d5c8d, []int{10} } func (m *PullMessageReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_PullMessageReq.Unmarshal(m, b) @@ -1012,7 +1012,7 @@ func (m *PullMessageResp) Reset() { *m = PullMessageResp{} } func (m *PullMessageResp) String() string { return proto.CompactTextString(m) } func (*PullMessageResp) ProtoMessage() {} func (*PullMessageResp) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_b7876bd3c094d103, []int{11} + return fileDescriptor_ws_c6aceb61f76d5c8d, []int{11} } func (m *PullMessageResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_PullMessageResp.Unmarshal(m, b) @@ -1084,7 +1084,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_b7876bd3c094d103, []int{12} + return fileDescriptor_ws_c6aceb61f76d5c8d, []int{12} } func (m *GetMaxAndMinSeqReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetMaxAndMinSeqReq.Unmarshal(m, b) @@ -1116,7 +1116,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_b7876bd3c094d103, []int{13} + return fileDescriptor_ws_c6aceb61f76d5c8d, []int{13} } func (m *GetMaxAndMinSeqResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetMaxAndMinSeqResp.Unmarshal(m, b) @@ -1164,7 +1164,7 @@ func (m *GatherFormat) Reset() { *m = GatherFormat{} } func (m *GatherFormat) String() string { return proto.CompactTextString(m) } func (*GatherFormat) ProtoMessage() {} func (*GatherFormat) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_b7876bd3c094d103, []int{14} + return fileDescriptor_ws_c6aceb61f76d5c8d, []int{14} } func (m *GatherFormat) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GatherFormat.Unmarshal(m, b) @@ -1211,7 +1211,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_b7876bd3c094d103, []int{15} + return fileDescriptor_ws_c6aceb61f76d5c8d, []int{15} } func (m *UserSendMsgResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_UserSendMsgResp.Unmarshal(m, b) @@ -1280,7 +1280,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_b7876bd3c094d103, []int{16} + return fileDescriptor_ws_c6aceb61f76d5c8d, []int{16} } func (m *MsgData) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MsgData.Unmarshal(m, b) @@ -1441,7 +1441,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_b7876bd3c094d103, []int{17} + return fileDescriptor_ws_c6aceb61f76d5c8d, []int{17} } func (m *OfflinePushInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_OfflinePushInfo.Unmarshal(m, b) @@ -1508,7 +1508,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_b7876bd3c094d103, []int{18} + return fileDescriptor_ws_c6aceb61f76d5c8d, []int{18} } func (m *TipsComm) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_TipsComm.Unmarshal(m, b) @@ -1557,7 +1557,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_b7876bd3c094d103, []int{19} + return fileDescriptor_ws_c6aceb61f76d5c8d, []int{19} } func (m *MemberEnterTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MemberEnterTips.Unmarshal(m, b) @@ -1612,7 +1612,7 @@ func (m *MemberLeaveTips) Reset() { *m = MemberLeaveTips{} } func (m *MemberLeaveTips) String() string { return proto.CompactTextString(m) } func (*MemberLeaveTips) ProtoMessage() {} func (*MemberLeaveTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_b7876bd3c094d103, []int{20} + return fileDescriptor_ws_c6aceb61f76d5c8d, []int{20} } func (m *MemberLeaveTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MemberLeaveTips.Unmarshal(m, b) @@ -1667,7 +1667,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_b7876bd3c094d103, []int{21} + return fileDescriptor_ws_c6aceb61f76d5c8d, []int{21} } func (m *MemberInvitedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MemberInvitedTips.Unmarshal(m, b) @@ -1729,7 +1729,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_b7876bd3c094d103, []int{22} + return fileDescriptor_ws_c6aceb61f76d5c8d, []int{22} } func (m *MemberKickedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MemberKickedTips.Unmarshal(m, b) @@ -1792,7 +1792,7 @@ func (m *MemberInfoChangedTips) Reset() { *m = MemberInfoChangedTips{} } func (m *MemberInfoChangedTips) String() string { return proto.CompactTextString(m) } func (*MemberInfoChangedTips) ProtoMessage() {} func (*MemberInfoChangedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_b7876bd3c094d103, []int{23} + return fileDescriptor_ws_c6aceb61f76d5c8d, []int{23} } func (m *MemberInfoChangedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MemberInfoChangedTips.Unmarshal(m, b) @@ -1861,7 +1861,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_b7876bd3c094d103, []int{24} + return fileDescriptor_ws_c6aceb61f76d5c8d, []int{24} } func (m *GroupCreatedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupCreatedTips.Unmarshal(m, b) @@ -1922,7 +1922,7 @@ func (m *GroupInfoChangedTips) Reset() { *m = GroupInfoChangedTips{} } func (m *GroupInfoChangedTips) String() string { return proto.CompactTextString(m) } func (*GroupInfoChangedTips) ProtoMessage() {} func (*GroupInfoChangedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_b7876bd3c094d103, []int{25} + return fileDescriptor_ws_c6aceb61f76d5c8d, []int{25} } func (m *GroupInfoChangedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupInfoChangedTips.Unmarshal(m, b) @@ -1976,7 +1976,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_b7876bd3c094d103, []int{26} + return fileDescriptor_ws_c6aceb61f76d5c8d, []int{26} } func (m *JoinGroupApplicationTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_JoinGroupApplicationTips.Unmarshal(m, b) @@ -2031,7 +2031,7 @@ func (m *ApplicationProcessedTips) Reset() { *m = ApplicationProcessedTi func (m *ApplicationProcessedTips) String() string { return proto.CompactTextString(m) } func (*ApplicationProcessedTips) ProtoMessage() {} func (*ApplicationProcessedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_b7876bd3c094d103, []int{27} + return fileDescriptor_ws_c6aceb61f76d5c8d, []int{27} } func (m *ApplicationProcessedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ApplicationProcessedTips.Unmarshal(m, b) @@ -2092,7 +2092,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_b7876bd3c094d103, []int{28} + return fileDescriptor_ws_c6aceb61f76d5c8d, []int{28} } func (m *FriendApplication) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FriendApplication.Unmarshal(m, b) @@ -2145,7 +2145,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_b7876bd3c094d103, []int{29} + return fileDescriptor_ws_c6aceb61f76d5c8d, []int{29} } func (m *FromToUserID) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FromToUserID.Unmarshal(m, b) @@ -2191,7 +2191,7 @@ func (m *FriendApplicationAddedTips) Reset() { *m = FriendApplicationAdd func (m *FriendApplicationAddedTips) String() string { return proto.CompactTextString(m) } func (*FriendApplicationAddedTips) ProtoMessage() {} func (*FriendApplicationAddedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_b7876bd3c094d103, []int{30} + return fileDescriptor_ws_c6aceb61f76d5c8d, []int{30} } func (m *FriendApplicationAddedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FriendApplicationAddedTips.Unmarshal(m, b) @@ -2230,7 +2230,7 @@ func (m *FriendApplicationProcessedTips) Reset() { *m = FriendApplicatio func (m *FriendApplicationProcessedTips) String() string { return proto.CompactTextString(m) } func (*FriendApplicationProcessedTips) ProtoMessage() {} func (*FriendApplicationProcessedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_b7876bd3c094d103, []int{31} + return fileDescriptor_ws_c6aceb61f76d5c8d, []int{31} } func (m *FriendApplicationProcessedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FriendApplicationProcessedTips.Unmarshal(m, b) @@ -2271,7 +2271,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_b7876bd3c094d103, []int{32} + return fileDescriptor_ws_c6aceb61f76d5c8d, []int{32} } func (m *FriendAddedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FriendAddedTips.Unmarshal(m, b) @@ -2324,7 +2324,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_b7876bd3c094d103, []int{33} + return fileDescriptor_ws_c6aceb61f76d5c8d, []int{33} } func (m *FriendDeletedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FriendDeletedTips.Unmarshal(m, b) @@ -2362,7 +2362,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_b7876bd3c094d103, []int{34} + return fileDescriptor_ws_c6aceb61f76d5c8d, []int{34} } func (m *BlackAddedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_BlackAddedTips.Unmarshal(m, b) @@ -2400,7 +2400,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_b7876bd3c094d103, []int{35} + return fileDescriptor_ws_c6aceb61f76d5c8d, []int{35} } func (m *BlackDeletedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_BlackDeletedTips.Unmarshal(m, b) @@ -2438,7 +2438,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_b7876bd3c094d103, []int{36} + return fileDescriptor_ws_c6aceb61f76d5c8d, []int{36} } func (m *FriendInfoChangedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FriendInfoChangedTips.Unmarshal(m, b) @@ -2477,7 +2477,7 @@ func (m *SelfInfoUpdatedTips) Reset() { *m = SelfInfoUpdatedTips{} } func (m *SelfInfoUpdatedTips) String() string { return proto.CompactTextString(m) } func (*SelfInfoUpdatedTips) ProtoMessage() {} func (*SelfInfoUpdatedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_b7876bd3c094d103, []int{37} + return fileDescriptor_ws_c6aceb61f76d5c8d, []int{37} } func (m *SelfInfoUpdatedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SelfInfoUpdatedTips.Unmarshal(m, b) @@ -2546,10 +2546,10 @@ func init() { proto.RegisterType((*SelfInfoUpdatedTips)(nil), "open_im_sdk.SelfInfoUpdatedTips") } -func init() { proto.RegisterFile("sdk_ws/ws.proto", fileDescriptor_ws_b7876bd3c094d103) } +func init() { proto.RegisterFile("sdk_ws/ws.proto", fileDescriptor_ws_c6aceb61f76d5c8d) } -var fileDescriptor_ws_b7876bd3c094d103 = []byte{ - // 1922 bytes of a gzipped FileDescriptorProto +var fileDescriptor_ws_c6aceb61f76d5c8d = []byte{ + // 1923 bytes of a gzipped FileDescriptorProto 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe4, 0x59, 0xcd, 0x8f, 0x1b, 0x49, 0x15, 0x57, 0xb7, 0xdd, 0xfe, 0x78, 0xf6, 0x8c, 0x27, 0x9d, 0x64, 0xb6, 0x09, 0xab, 0xc8, 0xb4, 0x56, 0x68, 0x84, 0x20, 0x2b, 0x65, 0x85, 0xb4, 0x04, 0x2d, 0xe0, 0x19, 0xcf, 0xe4, 0x83, 0x38, @@ -2580,95 +2580,95 @@ var fileDescriptor_ws_b7876bd3c094d103 = []byte{ 0x68, 0x65, 0x68, 0x0c, 0x2d, 0x34, 0xd2, 0x41, 0x5a, 0xd6, 0x6c, 0x41, 0xab, 0x0e, 0x56, 0x74, 0x07, 0xf7, 0xa1, 0xf6, 0x90, 0xd0, 0x80, 0x24, 0x3c, 0x60, 0x96, 0x27, 0xa9, 0x0d, 0x8e, 0x5b, 0x9b, 0x1c, 0x77, 0x7f, 0x6b, 0x42, 0xe3, 0x23, 0x9b, 0xd6, 0x85, 0xd6, 0xe9, 0x79, 0x4c, 0xc9, - 0xb3, 0x0c, 0x8b, 0x49, 0x26, 0x53, 0x85, 0xec, 0x5b, 0x60, 0x1d, 0x86, 0x49, 0x7a, 0x2e, 0xb3, - 0x29, 0x08, 0x44, 0x8f, 0xe7, 0x7e, 0x28, 0x52, 0xd8, 0xf4, 0x04, 0x21, 0x23, 0xde, 0x28, 0xf6, - 0x81, 0xbe, 0xb3, 0x9a, 0x6b, 0x3b, 0x6b, 0x3d, 0x30, 0xb0, 0x31, 0x30, 0xff, 0x32, 0x00, 0x4e, - 0x92, 0x90, 0xd0, 0x80, 0x87, 0x66, 0x65, 0x4b, 0x1b, 0xeb, 0x5b, 0x7a, 0x1f, 0x6a, 0x1e, 0x99, - 0xfb, 0xc9, 0x2c, 0x2f, 0x79, 0x41, 0xad, 0x18, 0x54, 0x59, 0x33, 0xe8, 0xfb, 0xb9, 0x1e, 0x94, - 0xc3, 0x43, 0xd5, 0xba, 0x7f, 0xfb, 0x9e, 0xd2, 0xf6, 0xee, 0xe5, 0xf9, 0xf1, 0x14, 0x46, 0xdc, - 0x49, 0xbd, 0x20, 0x90, 0x05, 0x2b, 0x72, 0x5b, 0x02, 0x1b, 0xea, 0xb5, 0x76, 0x49, 0xbd, 0xd6, - 0x8b, 0x7a, 0xfd, 0xbb, 0x01, 0xcd, 0xc3, 0xc8, 0x1f, 0xcf, 0xb6, 0x74, 0x5a, 0x77, 0xce, 0x5c, - 0x73, 0xae, 0x07, 0x3b, 0x5c, 0x5c, 0xee, 0x02, 0xf7, 0xbf, 0x75, 0xff, 0x9b, 0x9a, 0x7f, 0xfa, - 0x06, 0xf1, 0xf4, 0x15, 0xba, 0xa3, 0xd5, 0x77, 0x3b, 0x6a, 0x5d, 0xe2, 0x68, 0xad, 0x70, 0xf4, - 0xd7, 0x26, 0xb4, 0x79, 0xb3, 0xf2, 0xc8, 0x32, 0x23, 0x2c, 0x7d, 0x6b, 0xed, 0x2b, 0x3d, 0xce, - 0xd4, 0x7b, 0x9c, 0x0b, 0xed, 0x47, 0x3e, 0x0d, 0x22, 0xe2, 0x11, 0x96, 0x45, 0x69, 0x7e, 0x8e, - 0xa8, 0x98, 0x28, 0x8a, 0xe5, 0x80, 0x4d, 0xe5, 0x09, 0x22, 0x29, 0x74, 0x4a, 0xf0, 0xe1, 0x27, - 0x61, 0x71, 0x09, 0xa0, 0x4e, 0x8f, 0x2c, 0x79, 0x48, 0x6b, 0x3c, 0xa4, 0x39, 0x59, 0xea, 0x94, - 0xb6, 0xd6, 0x55, 0x9d, 0x65, 0x4e, 0x04, 0xcd, 0x05, 0x34, 0x44, 0x4e, 0x4a, 0x64, 0xf5, 0xe4, - 0x70, 0xbf, 0x36, 0x61, 0x47, 0x14, 0x56, 0x1e, 0x8b, 0xbb, 0x58, 0x92, 0xf1, 0x5c, 0x8b, 0x87, - 0x82, 0x60, 0x3f, 0x38, 0x8b, 0xb5, 0xfe, 0x5e, 0xd0, 0x1b, 0xa3, 0x62, 0x6d, 0x19, 0x15, 0xbd, - 0x9a, 0xac, 0xb5, 0x6a, 0xfa, 0x0c, 0x76, 0x84, 0x1c, 0xbd, 0xa8, 0x75, 0x50, 0x8f, 0x6d, 0x7d, - 0x35, 0xb6, 0x57, 0x8d, 0xce, 0x7f, 0x0d, 0x70, 0x4e, 0xb3, 0x28, 0x1a, 0x10, 0xc6, 0xfc, 0x29, - 0x39, 0x7c, 0x33, 0x22, 0xcb, 0xa7, 0x21, 0x4b, 0x3d, 0xc2, 0x16, 0x98, 0x28, 0x92, 0x24, 0x47, - 0x71, 0x40, 0x78, 0x94, 0x2c, 0x2f, 0x27, 0xd1, 0x45, 0x92, 0x24, 0x68, 0x81, 0xec, 0x06, 0x82, - 0x42, 0x7c, 0xee, 0xbf, 0x1e, 0x91, 0xa5, 0xec, 0x04, 0x92, 0xe2, 0x78, 0x48, 0x11, 0xaf, 0x4a, - 0x9c, 0x53, 0xf6, 0x8f, 0x61, 0x87, 0x85, 0x74, 0x2a, 0x92, 0x2b, 0x8a, 0xa5, 0x72, 0xd0, 0xba, - 0xff, 0x0d, 0x6d, 0x03, 0x3d, 0xf4, 0xd3, 0x73, 0x92, 0x9c, 0xc4, 0xc9, 0xdc, 0x4f, 0x3d, 0x9d, - 0xdf, 0xfe, 0x0a, 0xda, 0x53, 0x2c, 0xd8, 0x7c, 0x7d, 0xed, 0x5d, 0xeb, 0x35, 0x76, 0x77, 0x0e, - 0x9f, 0x6c, 0xf6, 0x9e, 0x9b, 0x9c, 0x69, 0x3b, 0x46, 0x50, 0xd8, 0x35, 0x62, 0xbe, 0xf9, 0xc2, - 0x98, 0x16, 0x05, 0xa2, 0x42, 0x18, 0x36, 0x26, 0xe4, 0x38, 0x95, 0x6e, 0x05, 0xeb, 0x5b, 0x92, - 0xee, 0xaf, 0xf0, 0xb8, 0x2c, 0xd4, 0x5d, 0xa6, 0xe5, 0x0e, 0x34, 0x18, 0x59, 0x1e, 0x92, 0x69, - 0x48, 0x65, 0xdf, 0x29, 0x68, 0x5c, 0xc3, 0xc8, 0xf2, 0x98, 0x06, 0x79, 0x90, 0x05, 0xb5, 0x6a, - 0x59, 0x75, 0xcd, 0x32, 0xec, 0xfa, 0x1d, 0xcd, 0x80, 0xff, 0x8b, 0x24, 0xdf, 0x02, 0xfb, 0x21, - 0x49, 0x07, 0xfe, 0xeb, 0x1e, 0x0d, 0x06, 0xdc, 0x24, 0x8f, 0x2c, 0xdd, 0x63, 0xb8, 0xb9, 0x86, - 0xb2, 0x85, 0xe2, 0x9c, 0xf1, 0x16, 0xe7, 0x4c, 0xd5, 0x39, 0xf7, 0x11, 0xb4, 0x55, 0xd5, 0xb8, - 0xc1, 0xc2, 0x40, 0x26, 0xd3, 0x0c, 0x03, 0xfb, 0x00, 0xaa, 0x11, 0x56, 0x82, 0xc9, 0x6d, 0xbe, - 0xa5, 0xd9, 0x3c, 0x60, 0xd3, 0xbe, 0x9f, 0xfa, 0x1e, 0xe7, 0x70, 0x97, 0xd0, 0x41, 0x8b, 0x47, - 0x84, 0x06, 0x03, 0x36, 0xe5, 0xc6, 0x74, 0xa1, 0x35, 0x22, 0xc9, 0x05, 0x77, 0xa3, 0x3c, 0xa1, - 0x14, 0x08, 0x39, 0x8e, 0xa2, 0x90, 0xd0, 0x54, 0x70, 0xc8, 0x6a, 0x54, 0x20, 0x51, 0x49, 0x34, - 0x50, 0x8e, 0xe7, 0x82, 0x76, 0xff, 0x62, 0x41, 0x5d, 0x1a, 0x21, 0xaa, 0x8a, 0x06, 0x65, 0x25, - 0x0a, 0x0a, 0xf1, 0x84, 0x8c, 0x2f, 0xca, 0x59, 0x57, 0x50, 0x58, 0x37, 0x53, 0x79, 0x72, 0xc8, - 0xc9, 0x48, 0x92, 0x68, 0xd3, 0x58, 0xb1, 0x49, 0xd6, 0xa1, 0x02, 0x21, 0x07, 0x53, 0xfc, 0x92, - 0x33, 0x92, 0x02, 0xd9, 0xdf, 0x81, 0x3d, 0xc6, 0xe7, 0xa9, 0xd3, 0xc8, 0x4f, 0x27, 0x71, 0x32, - 0x97, 0xed, 0xd0, 0xf2, 0xd6, 0x70, 0x3c, 0x24, 0x05, 0x56, 0x4c, 0x71, 0xa2, 0x2d, 0xae, 0xa0, - 0xd8, 0x5f, 0x05, 0xc2, 0x47, 0x38, 0xef, 0xa9, 0x1c, 0xab, 0x74, 0x50, 0xd8, 0xc6, 0x58, 0x18, - 0x53, 0x7e, 0x5b, 0x68, 0x72, 0xa5, 0x2a, 0x84, 0x9e, 0xcf, 0xd9, 0x14, 0x0f, 0x0c, 0x39, 0x5c, - 0xe5, 0x24, 0xf7, 0x3c, 0xa6, 0x29, 0xa1, 0x29, 0x5f, 0xdb, 0x12, 0x6b, 0x15, 0x08, 0xd7, 0x4a, - 0x92, 0xdf, 0x43, 0xda, 0x5e, 0x4e, 0x62, 0x5f, 0x9f, 0xc4, 0xc9, 0x98, 0xf0, 0xbe, 0xb1, 0xd3, - 0xad, 0x60, 0x5f, 0x2f, 0x00, 0x7b, 0x0f, 0x2a, 0x8c, 0x2c, 0x9d, 0x5d, 0x9e, 0x40, 0xfc, 0xa9, - 0xe5, 0xb5, 0xa3, 0xe7, 0x15, 0x4f, 0x81, 0x71, 0x79, 0xd2, 0xec, 0x89, 0x53, 0xa0, 0x44, 0xec, - 0x1f, 0x42, 0x7d, 0xb8, 0xc0, 0x9e, 0xc0, 0x9c, 0x1b, 0xbc, 0x2e, 0xbf, 0xb5, 0xa9, 0x2e, 0xef, - 0x49, 0x9e, 0x63, 0x9a, 0x26, 0x6f, 0xbc, 0x7c, 0x85, 0x7d, 0x02, 0x9d, 0x78, 0x32, 0x89, 0x42, - 0x4a, 0x4e, 0x33, 0x76, 0xce, 0xc7, 0x1e, 0x9b, 0x8f, 0x3d, 0x9f, 0x6a, 0x42, 0x86, 0x3a, 0x8f, - 0xb7, 0xba, 0xe8, 0xce, 0x03, 0x68, 0xab, 0x0a, 0xd0, 0xc5, 0x19, 0x79, 0x23, 0xab, 0x0f, 0x7f, - 0xe2, 0x48, 0x7c, 0xe1, 0x47, 0x99, 0x98, 0xbc, 0x1a, 0x9e, 0x20, 0x1e, 0x98, 0x5f, 0x1a, 0xee, - 0x6f, 0x0c, 0xe8, 0xac, 0x28, 0x40, 0xee, 0xb3, 0x30, 0x8d, 0x88, 0x94, 0x20, 0x08, 0xdb, 0x86, - 0x6a, 0x9f, 0xb0, 0xb1, 0x2c, 0x5e, 0xfe, 0x5b, 0x1e, 0x82, 0x95, 0x62, 0xa8, 0x76, 0xa1, 0x1d, - 0x0e, 0x47, 0x28, 0x68, 0x14, 0x67, 0x34, 0xc8, 0xaf, 0xc3, 0x2a, 0x86, 0xc5, 0x13, 0x0e, 0x47, - 0x87, 0x7e, 0x30, 0x25, 0xe2, 0xd2, 0x6a, 0x71, 0x9b, 0x74, 0xd0, 0xed, 0x43, 0xe3, 0x2c, 0x5c, - 0xb0, 0xa3, 0x78, 0x3e, 0xc7, 0x8d, 0xd3, 0x27, 0x29, 0x4e, 0xf4, 0x06, 0xcf, 0xb4, 0xa4, 0xb0, - 0x48, 0xfa, 0x64, 0xe2, 0x67, 0x51, 0x8a, 0xac, 0xf9, 0x96, 0x55, 0x20, 0xf7, 0x4f, 0x06, 0x74, - 0xc4, 0x5d, 0xf4, 0x98, 0xa6, 0x24, 0x41, 0xcc, 0xfe, 0x2e, 0x58, 0x7c, 0x32, 0xe3, 0xc2, 0x5a, - 0xf7, 0xf7, 0xf5, 0xe6, 0x97, 0xbf, 0x1a, 0x78, 0x82, 0xc9, 0x3e, 0x84, 0x16, 0x06, 0xd5, 0xa7, - 0x29, 0x1f, 0xbb, 0x4d, 0xbe, 0xa6, 0xbb, 0xbe, 0x46, 0xbf, 0xf1, 0x7a, 0xea, 0x22, 0xf4, 0x78, - 0x98, 0x9f, 0x1d, 0x4a, 0xf7, 0xd0, 0x41, 0xf7, 0x8f, 0x85, 0xad, 0x4f, 0x89, 0x7f, 0x41, 0xde, - 0xc3, 0xd6, 0x9f, 0x00, 0xf0, 0xa5, 0xc9, 0x95, 0x4c, 0x55, 0xd6, 0x6c, 0x69, 0xe9, 0x3f, 0x0d, - 0xb8, 0x21, 0x84, 0x3c, 0xa6, 0x17, 0x61, 0x4a, 0x82, 0xf7, 0xb0, 0xf5, 0x4b, 0xa8, 0x0d, 0x17, - 0x57, 0xb2, 0x53, 0xf2, 0xdb, 0x4f, 0xa0, 0x23, 0xd5, 0x22, 0x59, 0x0c, 0x07, 0xdb, 0x88, 0x58, - 0x5d, 0xb8, 0xee, 0x6f, 0x75, 0x93, 0xbf, 0xff, 0x30, 0x60, 0x4f, 0x48, 0xfa, 0x69, 0x38, 0x9e, - 0x7d, 0x64, 0x77, 0x1f, 0xc1, 0xae, 0xd0, 0x7a, 0x65, 0x6f, 0x57, 0xd6, 0x6d, 0xe9, 0xec, 0x7f, - 0x0c, 0xb8, 0x9d, 0x27, 0x77, 0x12, 0x1f, 0x9d, 0xe3, 0x55, 0x57, 0x78, 0x8c, 0x53, 0x37, 0x27, - 0x79, 0x4b, 0x16, 0x23, 0x8e, 0x82, 0x5c, 0xc3, 0xc7, 0x1f, 0x41, 0xf3, 0x24, 0xa4, 0x7e, 0xa4, - 0xdc, 0xfc, 0xde, 0xbd, 0xb8, 0x5c, 0x82, 0x1d, 0x7c, 0x90, 0xc9, 0x1e, 0x2d, 0xdf, 0x83, 0x72, - 0xba, 0xcc, 0x93, 0xb5, 0x45, 0x9e, 0xdc, 0xbf, 0x19, 0xb0, 0xc7, 0x7f, 0x89, 0xdb, 0xc4, 0xfb, - 0xa4, 0xfa, 0x01, 0xd4, 0xe5, 0x9b, 0xd9, 0xd6, 0x71, 0xc8, 0x17, 0xe0, 0x0e, 0x96, 0x2d, 0xe0, - 0x2a, 0x89, 0x56, 0xd6, 0x6c, 0x99, 0xe4, 0x3f, 0x18, 0x70, 0xab, 0x30, 0x5c, 0xcd, 0x31, 0x4e, - 0x41, 0x92, 0x2c, 0x93, 0xac, 0x42, 0x65, 0x30, 0xcc, 0xab, 0xd5, 0x7d, 0xe5, 0x6a, 0x35, 0xe1, - 0x7e, 0x6d, 0x80, 0xf3, 0x24, 0x0e, 0x29, 0xe7, 0xe9, 0x2d, 0x16, 0x91, 0x7c, 0x72, 0x7d, 0x8f, - 0x8c, 0xfc, 0x00, 0x9a, 0x52, 0x00, 0x4d, 0xa5, 0xd9, 0x97, 0x3e, 0x2c, 0x94, 0xdc, 0xe2, 0x06, - 0xea, 0xb3, 0xe2, 0xf5, 0x57, 0x52, 0xee, 0x9f, 0x0d, 0x70, 0x14, 0xa3, 0x4e, 0x93, 0x78, 0x4c, - 0x18, 0xfb, 0xc8, 0xad, 0x81, 0x1b, 0xa7, 0x5c, 0x9e, 0x6b, 0xea, 0xb5, 0x99, 0x1b, 0x5d, 0xd5, - 0x8c, 0x9e, 0xc1, 0x0d, 0x71, 0x7f, 0x57, 0x2c, 0xc7, 0x39, 0xaa, 0x17, 0x88, 0xe1, 0x47, 0xcc, - 0xe9, 0x39, 0xa9, 0x3f, 0xa8, 0xc8, 0xd7, 0xf1, 0xf2, 0x41, 0xe5, 0x2e, 0x40, 0x2f, 0x08, 0x7e, - 0x11, 0x27, 0x41, 0x48, 0xa7, 0x32, 0x3a, 0x0a, 0xe2, 0x3e, 0x81, 0x36, 0x4e, 0x72, 0xc5, 0x7d, - 0xff, 0x1a, 0x6f, 0x05, 0xee, 0x2f, 0xe1, 0xce, 0x9a, 0xe1, 0xbd, 0x20, 0x90, 0xe1, 0xfe, 0x4a, - 0xd7, 0x24, 0xa3, 0xae, 0x5f, 0x6a, 0x54, 0x06, 0x4f, 0x63, 0x77, 0x5f, 0xc0, 0xdd, 0x35, 0xe1, - 0x7a, 0x3e, 0xaf, 0xa9, 0xe0, 0x77, 0x06, 0x74, 0xa4, 0x86, 0xc2, 0xe6, 0xcf, 0xa1, 0x26, 0x20, - 0x29, 0xec, 0x93, 0x15, 0x61, 0xf9, 0x7b, 0xa2, 0x27, 0xd9, 0xd6, 0xf7, 0xb5, 0xb9, 0x61, 0x5f, - 0xdb, 0x5f, 0xac, 0x6c, 0xb7, 0x4b, 0xcb, 0x3c, 0xdf, 0x69, 0x5e, 0x5e, 0x16, 0x7d, 0x12, 0x91, - 0xf4, 0xc3, 0xf8, 0x3c, 0x84, 0x5d, 0xfe, 0x3a, 0xf7, 0xc1, 0xb2, 0xf4, 0x33, 0xd8, 0xe3, 0x02, - 0x3f, 0xa0, 0x8d, 0x3f, 0x87, 0xdb, 0x65, 0xa0, 0xd5, 0x26, 0x78, 0x4d, 0xb9, 0xdf, 0x83, 0x9b, - 0x23, 0x12, 0x4d, 0x50, 0xea, 0xf3, 0x45, 0x50, 0x9c, 0x22, 0x6f, 0x79, 0x38, 0x7c, 0x59, 0xe3, - 0x7f, 0x60, 0x7d, 0xf1, 0xbf, 0x00, 0x00, 0x00, 0xff, 0xff, 0x97, 0x0c, 0x33, 0xae, 0xd3, 0x1a, - 0x00, 0x00, + 0xb3, 0x0c, 0x8b, 0x49, 0x26, 0x53, 0x85, 0xec, 0x5b, 0x60, 0x1d, 0x86, 0x49, 0x7a, 0xce, 0xb3, + 0x59, 0xf1, 0x04, 0x81, 0xe8, 0xf1, 0xdc, 0x0f, 0x45, 0x0a, 0x9b, 0x9e, 0x20, 0x64, 0xc4, 0x1b, + 0xc5, 0x3e, 0xd0, 0x77, 0x56, 0x73, 0x6d, 0x67, 0xad, 0x07, 0x06, 0x36, 0x06, 0xe6, 0x5f, 0x06, + 0xc0, 0x49, 0x12, 0x12, 0x1a, 0xf0, 0xd0, 0xac, 0x6c, 0x69, 0x63, 0x7d, 0x4b, 0xef, 0x43, 0xcd, + 0x23, 0x73, 0x3f, 0x99, 0xe5, 0x25, 0x2f, 0xa8, 0x15, 0x83, 0x2a, 0x6b, 0x06, 0x7d, 0x3f, 0xd7, + 0x83, 0x72, 0x78, 0xa8, 0x5a, 0xf7, 0x6f, 0xdf, 0x53, 0xda, 0xde, 0xbd, 0x3c, 0x3f, 0x9e, 0xc2, + 0x88, 0x3b, 0xa9, 0x17, 0x04, 0xb2, 0x60, 0x45, 0x6e, 0x4b, 0x60, 0x43, 0xbd, 0xd6, 0x2e, 0xa9, + 0xd7, 0x7a, 0x51, 0xaf, 0x7f, 0x37, 0xa0, 0x79, 0x18, 0xf9, 0xe3, 0xd9, 0x96, 0x4e, 0xeb, 0xce, + 0x99, 0x6b, 0xce, 0xf5, 0x60, 0x87, 0x8b, 0xcb, 0x5d, 0xe0, 0xfe, 0xb7, 0xee, 0x7f, 0x53, 0xf3, + 0x4f, 0xdf, 0x20, 0x9e, 0xbe, 0x42, 0x77, 0xb4, 0xfa, 0x6e, 0x47, 0xad, 0x4b, 0x1c, 0xad, 0x15, + 0x8e, 0xfe, 0xda, 0x84, 0x36, 0x6f, 0x56, 0x1e, 0x59, 0x66, 0x84, 0xa5, 0x6f, 0xad, 0x7d, 0xa5, + 0xc7, 0x99, 0x7a, 0x8f, 0x73, 0xa1, 0xfd, 0xc8, 0xa7, 0x41, 0x44, 0x3c, 0xc2, 0xb2, 0x28, 0xcd, + 0xcf, 0x11, 0x15, 0x13, 0x45, 0xb1, 0x1c, 0xb0, 0xa9, 0x3c, 0x41, 0x24, 0x85, 0x4e, 0x09, 0x3e, + 0xfc, 0x24, 0x2c, 0x2e, 0x01, 0xd4, 0xe9, 0x91, 0x25, 0x0f, 0xa9, 0xd8, 0x01, 0x39, 0x59, 0xea, + 0x94, 0xb6, 0xd6, 0x55, 0x9d, 0x65, 0x4e, 0x04, 0xcd, 0x05, 0x34, 0x44, 0x4e, 0x4a, 0x64, 0xf5, + 0xe4, 0x70, 0xbf, 0x36, 0x61, 0x47, 0x14, 0x56, 0x1e, 0x8b, 0xbb, 0x58, 0x92, 0xf1, 0x5c, 0x8b, + 0x87, 0x82, 0x60, 0x3f, 0x38, 0x8b, 0xb5, 0xfe, 0x5e, 0xd0, 0x1b, 0xa3, 0x62, 0x6d, 0x19, 0x15, + 0xbd, 0x9a, 0xac, 0xb5, 0x6a, 0xfa, 0x0c, 0x76, 0x84, 0x1c, 0xbd, 0xa8, 0x75, 0x50, 0x8f, 0x6d, + 0x7d, 0x35, 0xb6, 0x57, 0x8d, 0xce, 0x7f, 0x0d, 0x70, 0x4e, 0xb3, 0x28, 0x1a, 0x10, 0xc6, 0xfc, + 0x29, 0x39, 0x7c, 0x33, 0x22, 0xcb, 0xa7, 0x21, 0x4b, 0x3d, 0xc2, 0x16, 0x98, 0x28, 0x92, 0x24, + 0x47, 0x71, 0x40, 0x78, 0x94, 0x2c, 0x2f, 0x27, 0xd1, 0x45, 0x92, 0x24, 0x68, 0x81, 0xec, 0x06, + 0x82, 0x42, 0x7c, 0xee, 0xbf, 0x1e, 0x91, 0xa5, 0xec, 0x04, 0x92, 0xe2, 0x78, 0x48, 0x11, 0xaf, + 0x4a, 0x9c, 0x53, 0xf6, 0x8f, 0x61, 0x87, 0x85, 0x74, 0x2a, 0x92, 0x2b, 0x8a, 0xa5, 0x72, 0xd0, + 0xba, 0xff, 0x0d, 0x6d, 0x03, 0x3d, 0xf4, 0xd3, 0x73, 0x92, 0x9c, 0xc4, 0xc9, 0xdc, 0x4f, 0x3d, + 0x9d, 0xdf, 0xfe, 0x0a, 0xda, 0x53, 0x2c, 0xd8, 0x7c, 0x7d, 0xed, 0x5d, 0xeb, 0x35, 0x76, 0x77, + 0x0e, 0x9f, 0x6c, 0xf6, 0x9e, 0x9b, 0x9c, 0x69, 0x3b, 0x46, 0x50, 0xd8, 0x35, 0x62, 0xbe, 0xf9, + 0xc2, 0x98, 0x16, 0x05, 0xa2, 0x42, 0x18, 0x36, 0x26, 0xe4, 0x38, 0x95, 0x6e, 0x05, 0xeb, 0x5b, + 0x92, 0xee, 0xaf, 0xf0, 0xb8, 0x2c, 0xd4, 0x5d, 0xa6, 0xe5, 0x0e, 0x34, 0x18, 0x59, 0x1e, 0x92, + 0x69, 0x48, 0x65, 0xdf, 0x29, 0x68, 0x5c, 0xc3, 0xc8, 0xf2, 0x98, 0x06, 0x79, 0x90, 0x05, 0xb5, + 0x6a, 0x59, 0x75, 0xcd, 0x32, 0xec, 0xfa, 0x1d, 0xcd, 0x80, 0xff, 0x8b, 0x24, 0xdf, 0x02, 0xfb, + 0x21, 0x49, 0x07, 0xfe, 0xeb, 0x1e, 0x0d, 0x06, 0xdc, 0x24, 0x8f, 0x2c, 0xdd, 0x63, 0xb8, 0xb9, + 0x86, 0xb2, 0x85, 0xe2, 0x9c, 0xf1, 0x16, 0xe7, 0x4c, 0xd5, 0x39, 0xf7, 0x11, 0xb4, 0x55, 0xd5, + 0xb8, 0xc1, 0xc2, 0x40, 0x26, 0xd3, 0x0c, 0x03, 0xfb, 0x00, 0xaa, 0x11, 0x56, 0x82, 0xc9, 0x6d, + 0xbe, 0xa5, 0xd9, 0x3c, 0x60, 0xd3, 0xbe, 0x9f, 0xfa, 0x1e, 0xe7, 0x70, 0x97, 0xd0, 0x41, 0x8b, + 0x47, 0x84, 0x06, 0x03, 0x36, 0xe5, 0xc6, 0x74, 0xa1, 0x35, 0x22, 0xc9, 0x05, 0x77, 0xa3, 0x3c, + 0xa1, 0x14, 0x08, 0x39, 0x8e, 0xa2, 0x90, 0xd0, 0x54, 0x70, 0xc8, 0x6a, 0x54, 0x20, 0x51, 0x49, + 0x34, 0x50, 0x8e, 0xe7, 0x82, 0x76, 0xff, 0x62, 0x41, 0x5d, 0x1a, 0x21, 0xaa, 0x8a, 0x06, 0x65, + 0x25, 0x0a, 0x0a, 0xf1, 0x84, 0x8c, 0x2f, 0xca, 0x59, 0x57, 0x50, 0x58, 0x37, 0x53, 0x79, 0x72, + 0xc8, 0xc9, 0x48, 0x92, 0x68, 0xd3, 0x58, 0xb1, 0x49, 0xd6, 0xa1, 0x02, 0x21, 0x07, 0x53, 0xfc, + 0x92, 0x33, 0x92, 0x02, 0xd9, 0xdf, 0x81, 0x3d, 0xc6, 0xe7, 0xa9, 0xd3, 0xc8, 0x4f, 0x27, 0x71, + 0x32, 0x97, 0xed, 0xd0, 0xf2, 0xd6, 0x70, 0x3c, 0x24, 0x05, 0x56, 0x4c, 0x71, 0xa2, 0x2d, 0xae, + 0xa0, 0xd8, 0x5f, 0x05, 0xc2, 0x47, 0x38, 0xef, 0xa9, 0x1c, 0xab, 0x74, 0x50, 0xd8, 0xc6, 0x58, + 0x18, 0x53, 0x7e, 0x5b, 0x68, 0x72, 0xa5, 0x2a, 0x84, 0x9e, 0xcf, 0xd9, 0x14, 0x0f, 0x0c, 0x39, + 0x5c, 0xe5, 0x24, 0xf7, 0x3c, 0xa6, 0x29, 0xa1, 0x29, 0x5f, 0xdb, 0x12, 0x6b, 0x15, 0x08, 0xd7, + 0x4a, 0x92, 0xdf, 0x43, 0xda, 0x5e, 0x4e, 0x62, 0x5f, 0x9f, 0xc4, 0xc9, 0x98, 0xf0, 0xbe, 0xb1, + 0xd3, 0xad, 0x60, 0x5f, 0x2f, 0x00, 0x7b, 0x0f, 0x2a, 0x8c, 0x2c, 0x9d, 0x5d, 0x9e, 0x40, 0xfc, + 0xa9, 0xe5, 0xb5, 0xa3, 0xe7, 0x15, 0x4f, 0x81, 0x71, 0x79, 0xd2, 0xec, 0x89, 0x53, 0xa0, 0x44, + 0xec, 0x1f, 0x42, 0x7d, 0xb8, 0xc0, 0x9e, 0xc0, 0x9c, 0x1b, 0xbc, 0x2e, 0xbf, 0xb5, 0xa9, 0x2e, + 0xef, 0x49, 0x9e, 0x63, 0x9a, 0x26, 0x6f, 0xbc, 0x7c, 0x85, 0x7d, 0x02, 0x9d, 0x78, 0x32, 0x89, + 0x42, 0x4a, 0x4e, 0x33, 0x76, 0xce, 0xc7, 0x1e, 0x9b, 0x8f, 0x3d, 0x9f, 0x6a, 0x42, 0x86, 0x3a, + 0x8f, 0xb7, 0xba, 0xe8, 0xce, 0x03, 0x68, 0xab, 0x0a, 0xd0, 0xc5, 0x19, 0x79, 0x23, 0xab, 0x0f, + 0x7f, 0xe2, 0x48, 0x7c, 0xe1, 0x47, 0x99, 0x98, 0xbc, 0x1a, 0x9e, 0x20, 0x1e, 0x98, 0x5f, 0x1a, + 0xee, 0x6f, 0x0c, 0xe8, 0xac, 0x28, 0x40, 0xee, 0xb3, 0x30, 0x8d, 0x88, 0x94, 0x20, 0x08, 0xdb, + 0x86, 0x6a, 0x9f, 0xb0, 0xb1, 0x2c, 0x5e, 0xfe, 0x5b, 0x1e, 0x82, 0x95, 0x62, 0xa8, 0x76, 0xa1, + 0x1d, 0x0e, 0x47, 0x28, 0x68, 0x14, 0x67, 0x34, 0xc8, 0xaf, 0xc3, 0x2a, 0x86, 0xc5, 0x13, 0x0e, + 0x47, 0x87, 0x7e, 0x30, 0x25, 0xe2, 0xd2, 0x6a, 0x71, 0x9b, 0x74, 0xd0, 0xed, 0x43, 0xe3, 0x2c, + 0x5c, 0xb0, 0xa3, 0x78, 0x3e, 0xc7, 0x8d, 0xd3, 0x27, 0x29, 0x4e, 0xf4, 0x06, 0xcf, 0xb4, 0xa4, + 0xb0, 0x48, 0xfa, 0x64, 0xe2, 0x67, 0x51, 0x8a, 0xac, 0xf9, 0x96, 0x55, 0x20, 0xf7, 0x4f, 0x06, + 0x74, 0xc4, 0x5d, 0xf4, 0x98, 0xa6, 0x24, 0x41, 0xcc, 0xfe, 0x2e, 0x58, 0x7c, 0x32, 0xe3, 0xc2, + 0x5a, 0xf7, 0xf7, 0xf5, 0xe6, 0x97, 0xbf, 0x1a, 0x78, 0x82, 0xc9, 0x3e, 0x84, 0x16, 0x06, 0xd5, + 0xa7, 0x29, 0x1f, 0xbb, 0x4d, 0xbe, 0xa6, 0xbb, 0xbe, 0x46, 0xbf, 0xf1, 0x7a, 0xea, 0x22, 0xf4, + 0x78, 0x98, 0x9f, 0x1d, 0x4a, 0xf7, 0xd0, 0x41, 0xf7, 0x8f, 0x85, 0xad, 0x4f, 0x89, 0x7f, 0x41, + 0xde, 0xc3, 0xd6, 0x9f, 0x00, 0xf0, 0xa5, 0xc9, 0x95, 0x4c, 0x55, 0xd6, 0x6c, 0x69, 0xe9, 0x3f, + 0x0d, 0xb8, 0x21, 0x84, 0x3c, 0xa6, 0x17, 0x61, 0x4a, 0x82, 0xf7, 0xb0, 0xf5, 0x4b, 0xa8, 0x0d, + 0x17, 0x57, 0xb2, 0x53, 0xf2, 0xdb, 0x4f, 0xa0, 0x23, 0xd5, 0x22, 0x59, 0x0c, 0x07, 0xdb, 0x88, + 0x58, 0x5d, 0xb8, 0xee, 0x6f, 0x75, 0x93, 0xbf, 0xff, 0x30, 0x60, 0x4f, 0x48, 0xfa, 0x69, 0x38, + 0x9e, 0x7d, 0x64, 0x77, 0x1f, 0xc1, 0xae, 0xd0, 0x7a, 0x65, 0x6f, 0x57, 0xd6, 0x6d, 0xe9, 0xec, + 0x7f, 0x0c, 0xb8, 0x9d, 0x27, 0x77, 0x12, 0x1f, 0x9d, 0xe3, 0x55, 0x57, 0x78, 0x8c, 0x53, 0x37, + 0x27, 0x79, 0x4b, 0x16, 0x23, 0x8e, 0x82, 0x5c, 0xc3, 0xc7, 0x1f, 0x41, 0xf3, 0x24, 0xa4, 0x7e, + 0xa4, 0xdc, 0xfc, 0xde, 0xbd, 0xb8, 0x5c, 0x82, 0x1d, 0x7c, 0x90, 0xc9, 0x1e, 0x2d, 0xdf, 0x83, + 0x72, 0xba, 0xcc, 0x93, 0xb5, 0x45, 0x9e, 0xdc, 0xbf, 0x19, 0xb0, 0xc7, 0x7f, 0x89, 0xdb, 0xc4, + 0xfb, 0xa4, 0xfa, 0x01, 0xd4, 0xe5, 0x9b, 0xd9, 0xd6, 0x71, 0xc8, 0x17, 0xe0, 0x0e, 0x96, 0x2d, + 0xe0, 0x2a, 0x89, 0x56, 0xd6, 0x6c, 0x99, 0xe4, 0x3f, 0x18, 0x70, 0xab, 0x30, 0x5c, 0xcd, 0x31, + 0x4e, 0x41, 0x92, 0x2c, 0x93, 0xac, 0x42, 0x65, 0x30, 0xcc, 0xab, 0xd5, 0x7d, 0xe5, 0x6a, 0x35, + 0xe1, 0x7e, 0x6d, 0x80, 0xf3, 0x24, 0x0e, 0x29, 0xe7, 0xe9, 0x2d, 0x16, 0x91, 0x7c, 0x72, 0x7d, + 0x8f, 0x8c, 0xfc, 0x00, 0x9a, 0x52, 0x00, 0x4d, 0xa5, 0xd9, 0x97, 0x3e, 0x2c, 0x94, 0xdc, 0xe2, + 0x06, 0xea, 0xb3, 0xe2, 0xf5, 0x57, 0x52, 0xee, 0x9f, 0x0d, 0x70, 0x14, 0xa3, 0x4e, 0x93, 0x78, + 0x4c, 0x18, 0xfb, 0xc8, 0xad, 0x81, 0x1b, 0xa7, 0x5c, 0x9e, 0x6b, 0xea, 0xb5, 0x99, 0x1b, 0x5d, + 0xd5, 0x8c, 0x9e, 0xc1, 0x0d, 0x71, 0x7f, 0x57, 0x2c, 0xc7, 0x39, 0xaa, 0x17, 0x88, 0xe1, 0x47, + 0xcc, 0xe9, 0x39, 0xa9, 0x3f, 0xa8, 0xc8, 0xd7, 0xf1, 0xf2, 0x41, 0xe5, 0x2e, 0x40, 0x2f, 0x08, + 0x7e, 0x11, 0x27, 0x41, 0x48, 0xa7, 0x32, 0x3a, 0x0a, 0xe2, 0x3e, 0x81, 0x36, 0x4e, 0x72, 0xc5, + 0x7d, 0xff, 0x1a, 0x6f, 0x05, 0xee, 0x2f, 0xe1, 0xce, 0x9a, 0xe1, 0xbd, 0x20, 0x90, 0xe1, 0xfe, + 0x4a, 0xd7, 0x24, 0xa3, 0xae, 0x5f, 0x6a, 0x54, 0x06, 0x4f, 0x63, 0x77, 0x5f, 0xc0, 0xdd, 0x35, + 0xe1, 0x7a, 0x3e, 0xaf, 0xa9, 0xe0, 0x77, 0x06, 0x74, 0xa4, 0x86, 0xc2, 0xe6, 0xcf, 0xa1, 0x26, + 0x20, 0x29, 0xec, 0x93, 0x15, 0x61, 0xf9, 0x7b, 0xa2, 0x27, 0xd9, 0xd6, 0xf7, 0xb5, 0xb9, 0x61, + 0x5f, 0xdb, 0x5f, 0xac, 0x6c, 0xb7, 0x4b, 0xcb, 0x3c, 0xdf, 0x69, 0x5e, 0x5e, 0x16, 0x7d, 0x12, + 0x91, 0xf4, 0xc3, 0xf8, 0x3c, 0x84, 0x5d, 0xfe, 0x3a, 0xf7, 0xc1, 0xb2, 0xf4, 0x33, 0xd8, 0xe3, + 0x02, 0x3f, 0xa0, 0x8d, 0x3f, 0x87, 0xdb, 0x65, 0xa0, 0xd5, 0x26, 0x78, 0x4d, 0xb9, 0xdf, 0x83, + 0x9b, 0x23, 0x12, 0x4d, 0x50, 0xea, 0xf3, 0x45, 0x50, 0x9c, 0x22, 0x6f, 0x79, 0x38, 0x7c, 0x59, + 0xe3, 0x7f, 0x60, 0x7d, 0xf1, 0xbf, 0x00, 0x00, 0x00, 0xff, 0xff, 0xd4, 0x0b, 0x22, 0x82, 0xd3, + 0x1a, 0x00, 0x00, } diff --git a/pkg/proto/sdk_ws/ws.proto b/pkg/proto/sdk_ws/ws.proto index 0dfde946b..d757cc41f 100644 --- a/pkg/proto/sdk_ws/ws.proto +++ b/pkg/proto/sdk_ws/ws.proto @@ -48,7 +48,7 @@ message UserInfo{ string FaceUrl = 3; int32 Gender = 4; string PhoneNumber = 5; - string Birth = 6; + int64 Birth = 6; string Email = 7; string Ex = 8; int64 CreateTime = 9; From e26c3d946226a2956b89dc06f1f2c0e98209d1ca Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Tue, 28 Dec 2021 20:21:09 +0800 Subject: [PATCH 280/814] tidy code --- pkg/base_info/public_struct.go | 2 +- pkg/common/db/mysql_model/im_mysql_model/user_model.go | 6 ++++++ 2 files changed, 7 insertions(+), 1 deletion(-) diff --git a/pkg/base_info/public_struct.go b/pkg/base_info/public_struct.go index 40f92e822..8993cb0a9 100644 --- a/pkg/base_info/public_struct.go +++ b/pkg/base_info/public_struct.go @@ -11,7 +11,7 @@ type UserInfo struct { FaceUrl string `json:"faceUrl" binding:"omitempty,max=1024"` Gender int32 `json:"gender" binding:"omitempty,oneof=0 1 2"` PhoneNumber string `json:"phoneNumber" binding:"omitempty,max=32"` - Birth int64 `json:"birth" binding:"omitempty,max=16"` + Birth int64 `json:"birth" binding:"omitempty"` Email string `json:"email" binding:"omitempty,max=64"` Ex string `json:"ex" binding:"omitempty,max=1024"` } 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 4025d2db3..376a4b267 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 @@ -33,6 +33,9 @@ func UserRegister(user User) error { return err } user.CreateTime = time.Now() + if user.Birth != 0 { + user.Birth = utils.UnixSecondToTime(user.Birth) + } err = dbConn.Table("user").Create(&user).Error if err != nil { @@ -80,6 +83,9 @@ func UpdateUserInfo(user User) error { if err != nil { return err } + if user.Birth != 0 { + user.Birth = utils.UnixSecondToTime(user.Birth) + } err = dbConn.Table("user").Where("user_id=?", user.UserID).Update(&user).Error return err } From da73347231dca83348962011896fc6026b4e28c5 Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Tue, 28 Dec 2021 20:28:01 +0800 Subject: [PATCH 281/814] tidy code --- internal/rpc/auth/auth.go | 3 +++ internal/rpc/user/user.go | 3 +++ pkg/common/db/mysql_model/im_mysql_model/user_model.go | 7 +------ 3 files changed, 7 insertions(+), 6 deletions(-) diff --git a/internal/rpc/auth/auth.go b/internal/rpc/auth/auth.go index 70ebfcbc0..d0137d012 100644 --- a/internal/rpc/auth/auth.go +++ b/internal/rpc/auth/auth.go @@ -22,6 +22,9 @@ func (rpc *rpcAuth) UserRegister(_ context.Context, req *pbAuth.UserRegisterReq) log.NewInfo(req.OperationID, "UserRegister args ", req.String()) var user imdb.User utils.CopyStructFields(&user, req.UserInfo) + if req.UserInfo.Birth != 0 { + user.Birth = utils.UnixSecondToTime(req.UserInfo.Birth) + } err := imdb.UserRegister(user) if err != nil { log.NewError(req.OperationID, "UserRegister failed ", err.Error(), user) diff --git a/internal/rpc/user/user.go b/internal/rpc/user/user.go index e0bb07d3c..ad480d6db 100644 --- a/internal/rpc/user/user.go +++ b/internal/rpc/user/user.go @@ -214,6 +214,9 @@ func (s *userServer) UpdateUserInfo(ctx context.Context, req *pbUser.UpdateUserI var user imdb.User utils.CopyStructFields(&user, req.UserInfo) + if req.UserInfo.Birth != 0 { + user.Birth = utils.UnixSecondToTime(req.UserInfo.Birth) + } err := imdb.UpdateUserInfo(user) if err != nil { log.NewError(req.OperationID, "UpdateUserInfo failed ", err.Error(), user) 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 376a4b267..01ca6d593 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 @@ -33,9 +33,6 @@ func UserRegister(user User) error { return err } user.CreateTime = time.Now() - if user.Birth != 0 { - user.Birth = utils.UnixSecondToTime(user.Birth) - } err = dbConn.Table("user").Create(&user).Error if err != nil { @@ -83,9 +80,7 @@ func UpdateUserInfo(user User) error { if err != nil { return err } - if user.Birth != 0 { - user.Birth = utils.UnixSecondToTime(user.Birth) - } + err = dbConn.Table("user").Where("user_id=?", user.UserID).Update(&user).Error return err } From 8cfc5925da6f884f56f3f7dfd6f782805eae610c Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Tue, 28 Dec 2021 20:44:19 +0800 Subject: [PATCH 282/814] management modify --- cmd/open_im_api/main.go | 7 +- internal/api/manage/management_user.go | 313 +++++++++++++----------- internal/api/user/user.go | 64 +---- internal/msg_gateway/gate/logic.go | 2 - internal/msg_gateway/gate/rpc_server.go | 8 +- internal/rpc/msg/send_msg.go | 10 +- pkg/base_info/manage_api_struct.go | 30 ++- pkg/base_info/user_api_struct.go | 14 -- pkg/proto/relay/relay.pb.go | 100 ++++---- pkg/proto/relay/relay.proto | 1 + 10 files changed, 264 insertions(+), 285 deletions(-) diff --git a/cmd/open_im_api/main.go b/cmd/open_im_api/main.go index 1730812bb..773b8be7d 100644 --- a/cmd/open_im_api/main.go +++ b/cmd/open_im_api/main.go @@ -26,7 +26,6 @@ func main() { { userRouterGroup.POST("/update_user_info", user.UpdateUserInfo) userRouterGroup.POST("/get_user_info", user.GetUserInfo) - //userRouterGroup.POST("/get_users_online_status", user.GetUsersOnlineStatus) } //friend routing group friendRouterGroup := r.Group("/friend") @@ -87,9 +86,9 @@ func main() { { managementGroup.POST("/delete_user", manage.DeleteUser) managementGroup.POST("/send_msg", manage.ManagementSendMsg) - // managementGroup.POST("/get_all_users_uid", manage.GetAllUsersUid) - // managementGroup.POST("/account_check", manage.AccountCheck) - // managementGroup.POST("/get_users_online_status", manage.GetUsersOnlineStatus) + managementGroup.POST("/get_all_users_uid", manage.GetAllUsersUid) + managementGroup.POST("/account_check", manage.AccountCheck) + managementGroup.POST("/get_users_online_status", manage.GetUsersOnlineStatus) } //Conversation conversationGroup := r.Group("/conversation") diff --git a/internal/api/manage/management_user.go b/internal/api/manage/management_user.go index 1cf8585a1..605bb5ddd 100644 --- a/internal/api/manage/management_user.go +++ b/internal/api/manage/management_user.go @@ -6,154 +6,175 @@ */ package manage -import "github.com/gin-gonic/gin" +import ( + api "Open_IM/pkg/base_info" + "Open_IM/pkg/common/config" + "Open_IM/pkg/common/constant" + "Open_IM/pkg/common/log" + "Open_IM/pkg/common/token_verify" + "Open_IM/pkg/grpc-etcdv3/getcdv3" + pbRelay "Open_IM/pkg/proto/relay" + rpc "Open_IM/pkg/proto/user" + "Open_IM/pkg/utils" + "context" + "github.com/gin-gonic/gin" + "net/http" + "strings" +) func DeleteUser(c *gin.Context) { + params := api.DeleteUsersReq{} + if err := c.BindJSON(¶ms); err != nil { + c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": err.Error()}) + return + } + req := &rpc.DeleteUsersReq{} + utils.CopyStructFields(req, ¶ms) + var ok bool + ok, req.OpUserID = token_verify.GetUserIDFromToken(c.Request.Header.Get("token")) + if !ok { + log.NewError(req.OperationID, "GetUserIDFromToken false ", c.Request.Header.Get("token")) + c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": "GetUserIDFromToken failed"}) + return + } + log.NewInfo(params.OperationID, "DeleteUser 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.DeleteUsers(context.Background(), req) + if err != nil { + log.NewError(req.OperationID, "call delete users rpc server failed", err.Error()) + c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": "call delete users rpc server failed"}) + return + } + failedUserIDList := make([]string, 0) + for _, v := range RpcResp.FailedUserIDList { + failedUserIDList = append(failedUserIDList, v) + } + resp := api.DeleteUsersResp{CommResp: api.CommResp{ErrCode: RpcResp.CommonResp.ErrCode, ErrMsg: RpcResp.CommonResp.ErrMsg}} + resp.FailedUserIDList = failedUserIDList + log.NewInfo(req.OperationID, "DeleteUser api return", resp) + c.JSON(http.StatusOK, resp) } +func GetAllUsersUid(c *gin.Context) { + params := api.GetAllUsersUidReq{} + if err := c.BindJSON(¶ms); err != nil { + c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": err.Error()}) + return + } + req := &rpc.GetAllUserIDReq{} + utils.CopyStructFields(req, ¶ms) + var ok bool + ok, req.OpUserID = token_verify.GetUserIDFromToken(c.Request.Header.Get("token")) + if !ok { + log.NewError(req.OperationID, "GetUserIDFromToken false ", c.Request.Header.Get("token")) + c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": "GetUserIDFromToken failed"}) + return + } + log.NewInfo(params.OperationID, "GetAllUsersUid 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.GetAllUserID(context.Background(), req) + if err != nil { + log.NewError(req.OperationID, "call GetAllUsersUid users rpc server failed", err.Error()) + c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": "call GetAllUsersUid users rpc server failed"}) + return + } + userIDList := make([]string, 0) + for _, v := range RpcResp.UserIDList { + userIDList = append(userIDList, v) + } + resp := api.GetAllUsersUidResp{CommResp: api.CommResp{ErrCode: RpcResp.CommonResp.ErrCode, ErrMsg: RpcResp.CommonResp.ErrMsg}} + resp.UserIDList = userIDList + log.NewInfo(req.OperationID, "GetAllUsersUid api return", resp) + c.JSON(http.StatusOK, resp) -// -//func DeleteUser(c *gin.Context) { -// params := paramsDeleteUsers{} -// if err := c.BindJSON(¶ms); err != nil { -// c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": err.Error()}) -// return -// } -// log.InfoByKv("DeleteUser req come here", params.OperationID, "DeleteUidList", params.DeleteUidList) -// etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImUserName) -// client := pbUser.NewUserClient(etcdConn) -// //defer etcdConn.Close() -// -// req := &pbUser.DeleteUsersReq{ -// OperationID: params.OperationID, -// DeleteUidList: params.DeleteUidList, -// Token: c.Request.Header.Get("token"), -// } -// RpcResp, err := client.DeleteUsers(context.Background(), req) -// if err != nil { -// log.NewError(req.OperationID, "call delete users rpc server failed", err.Error()) -// c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": "call delete users rpc server failed"}) -// return -// } -// failedUidList := make([]string, 0) -// for _, v := range RpcResp.FailedUidList { -// failedUidList = append(failedUidList, v) -// } -// log.InfoByKv("call delete user rpc server is success", params.OperationID, "resp args", RpcResp.String()) -// resp := gin.H{"errCode": RpcResp.CommonResp.ErrorCode, "errMsg": RpcResp.CommonResp.ErrorMsg, "failedUidList": RpcResp.FailedUidList} -// c.JSON(http.StatusOK, resp) -//} -//func GetAllUsersUid(c *gin.Context) { -// params := paramsGetAllUsersUid{} -// if err := c.BindJSON(¶ms); err != nil { -// c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": err.Error()}) -// return -// } -// log.InfoByKv("GetAllUsersUid req come here", params.OperationID) -// etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImUserName) -// client := pbUser.NewUserClient(etcdConn) -// //defer etcdConn.Close() -// -// req := &pbUser.GetAllUsersUidReq{ -// OperationID: params.OperationID, -// Token: c.Request.Header.Get("token"), -// } -// RpcResp, err := client.GetAllUsersUid(context.Background(), req) -// if err != nil { -// c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": err.Error(), "uidList": []string{}}) -// return -// } -// log.InfoByKv("call GetAllUsersUid rpc server is success", params.OperationID, "resp args", RpcResp.String()) -// resp := gin.H{"errCode": RpcResp.CommonResp.ErrorCode, "errMsg": RpcResp.CommonResp.ErrorMsg, "uidList": RpcResp.UidList} -// c.JSON(http.StatusOK, resp) -// -//} -//func AccountCheck(c *gin.Context) { -// params := paramsAccountCheck{} -// if err := c.BindJSON(¶ms); err != nil { -// c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": err.Error()}) -// return -// } -// log.InfoByKv("AccountCheck req come here", params.OperationID, params.UserIDList) -// etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImUserName) -// client := pbUser.NewUserClient(etcdConn) -// //defer etcdConn.Close() -// -// req := &pbUser.AccountCheckReq{ -// OperationID: params.OperationID, -// Token: c.Request.Header.Get("token"), -// UidList: params.UserIDList, -// } -// RpcResp, err := client.AccountCheck(context.Background(), req) -// if err != nil { -// c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": err.Error()}) -// return -// } -// log.InfoByKv("call AccountCheck rpc server is success", params.OperationID, "resp args", RpcResp.String()) -// resp := gin.H{"errCode": RpcResp.CommonResp.ErrorCode, "errMsg": RpcResp.CommonResp.ErrorMsg, "result": RpcResp.Result} -// c.JSON(http.StatusOK, resp) -// -//} -//func GetUsersOnlineStatus(c *gin.Context) { -// params := paramsGetUsersOnlineStatus{} -// if err := c.BindJSON(¶ms); err != nil { -// c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": err.Error()}) -// return -// } -// claims, err := token_verify.ParseToken(c.Request.Header.Get("token")) -// if err != nil { -// log.ErrorByKv("parse token failed", params.OperationID, "err", err.Error()) -// c.JSON(http.StatusBadRequest, gin.H{"errCode": 401, "errMsg": err.Error()}) -// return -// } -// if !utils.IsContain(claims.UID, config.Config.Manager.AppManagerUid) { -// log.ErrorByKv(" Authentication failed", params.OperationID, "args", c) -// c.JSON(http.StatusBadRequest, gin.H{"errCode": 402, "errMsg": "not authorized"}) -// return -// } -// req := &pbRelay.GetUsersOnlineStatusReq{ -// OperationID: params.OperationID, -// UserIDList: params.UserIDList, -// } -// var wsResult []*pbRelay.GetUsersOnlineStatusResp_SuccessResult -// var respResult []*pbRelay.GetUsersOnlineStatusResp_SuccessResult -// flag := false -// log.NewDebug(params.OperationID, "GetUsersOnlineStatus req come here", params.UserIDList) -// grpcCons := getcdv3.GetConn4Unique(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImOnlineMessageRelayName) -// for _, v := range grpcCons { -// client := pbRelay.NewOnlineMessageRelayServiceClient(v) -// reply, err := client.GetUsersOnlineStatus(context.Background(), req) -// if err != nil { -// log.NewError(params.OperationID, "GetUsersOnlineStatus rpc err", req.String(), err.Error()) -// continue -// } else { -// if reply.ErrCode == 0 { -// wsResult = append(wsResult, reply.SuccessResult...) -// } -// } -// } -// log.NewDebug(params.OperationID, "call GetUsersOnlineStatus rpc server is success", wsResult) -// //Online data merge of each node -// for _, v1 := range params.UserIDList { -// flag = false -// temp := new(pbRelay.GetUsersOnlineStatusResp_SuccessResult) -// for _, v2 := range wsResult { -// if v2.UserID == v1 { -// flag = true -// temp.UserID = v1 -// temp.Status = constant.OnlineStatus -// temp.DetailPlatformStatus = append(temp.DetailPlatformStatus, v2.DetailPlatformStatus...) -// } -// -// } -// if !flag { -// temp.UserID = v1 -// temp.Status = constant.OfflineStatus -// } -// respResult = append(respResult, temp) -// } -// log.NewDebug(params.OperationID, "Finished merged data", respResult) -// resp := gin.H{"errCode": 0, "errMsg": "", "successResult": respResult} -// c.JSON(http.StatusOK, resp) -// -//} +} +func AccountCheck(c *gin.Context) { + params := api.AccountCheckReq{} + if err := c.BindJSON(¶ms); err != nil { + c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": err.Error()}) + return + } + req := &rpc.AccountCheckReq{} + utils.CopyStructFields(req, ¶ms) + var ok bool + ok, req.OpUserID = token_verify.GetUserIDFromToken(c.Request.Header.Get("token")) + if !ok { + log.NewError(req.OperationID, "GetUserIDFromToken false ", c.Request.Header.Get("token")) + c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": "GetUserIDFromToken failed"}) + return + } + log.NewInfo(params.OperationID, "AccountCheck 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.AccountCheck(context.Background(), req) + if err != nil { + log.NewError(req.OperationID, "call AccountCheck users rpc server failed", err.Error()) + c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": "call AccountCheck users rpc server failed"}) + return + } + resp := api.AccountCheckResp{CommResp: api.CommResp{ErrCode: RpcResp.CommonResp.ErrCode, ErrMsg: RpcResp.CommonResp.ErrMsg}} + resp.ResultList = RpcResp.ResultList + log.NewInfo(req.OperationID, "AccountCheck api return", resp) + c.JSON(http.StatusOK, resp) +} +func GetUsersOnlineStatus(c *gin.Context) { + params := api.GetUsersOnlineStatusReq{} + if err := c.BindJSON(¶ms); err != nil { + c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": err.Error()}) + return + } + req := &pbRelay.GetUsersOnlineStatusReq{} + utils.CopyStructFields(req, ¶ms) + var ok bool + ok, req.OpUserID = token_verify.GetUserIDFromToken(c.Request.Header.Get("token")) + if !ok { + log.NewError(req.OperationID, "GetUserIDFromToken false ", c.Request.Header.Get("token")) + c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": "GetUserIDFromToken failed"}) + return + } + log.NewInfo(params.OperationID, "GetUsersOnlineStatus args ", req.String()) + var wsResult []*pbRelay.GetUsersOnlineStatusResp_SuccessResult + var respResult []*pbRelay.GetUsersOnlineStatusResp_SuccessResult + flag := false + grpcCons := getcdv3.GetConn4Unique(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImOnlineMessageRelayName) + for _, v := range grpcCons { + client := pbRelay.NewOnlineMessageRelayServiceClient(v) + reply, err := client.GetUsersOnlineStatus(context.Background(), req) + if err != nil { + log.NewError(params.OperationID, "GetUsersOnlineStatus rpc err", req.String(), err.Error()) + continue + } else { + if reply.ErrCode == 0 { + wsResult = append(wsResult, reply.SuccessResult...) + } + } + } + log.NewInfo(params.OperationID, "call GetUsersOnlineStatus rpc server is success", wsResult) + //Online data merge of each node + for _, v1 := range params.UserIDList { + flag = false + temp := new(pbRelay.GetUsersOnlineStatusResp_SuccessResult) + for _, v2 := range wsResult { + if v2.UserID == v1 { + flag = true + temp.UserID = v1 + temp.Status = constant.OnlineStatus + temp.DetailPlatformStatus = append(temp.DetailPlatformStatus, v2.DetailPlatformStatus...) + } + + } + if !flag { + temp.UserID = v1 + temp.Status = constant.OfflineStatus + } + respResult = append(respResult, temp) + } + resp := api.GetUsersOnlineStatusResp{CommResp: api.CommResp{ErrCode: 0, ErrMsg: ""}} + resp.SuccessResult = respResult + log.NewInfo(req.OperationID, "GetUsersOnlineStatus api return", resp) + c.JSON(http.StatusOK, resp) + +} diff --git a/internal/api/user/user.go b/internal/api/user/user.go index b6d550f1d..c312e462d 100644 --- a/internal/api/user/user.go +++ b/internal/api/user/user.go @@ -14,68 +14,6 @@ import ( "strings" ) -// -//func GetUsersOnlineStatus(c *gin.Context) { -// params := api.GetUsersOnlineStatusReq{} -// if err := c.BindJSON(¶ms); err != nil { -// log.NewError(params.OperationID, "bind json failed ", err.Error(), c) -// c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": err.Error()}) -// return -// } -// -// if params.Secret != config.Config.Secret { -// log.NewError(params.OperationID, "parse token failed ", params.Secret, config.Config.Secret) -// c.JSON(http.StatusBadRequest, gin.H{"errCode": 401, "errMsg": "secret failed"}) -// return -// } -// -// req := &pbRelay.GetUsersOnlineStatusReq{ -// OperationID: params.OperationID, -// UserIDList: params.UserIDList, -// } -// var wsResult []*rpc.GetUsersOnlineStatusResp_SuccessResult -// var respResult []*rpc.GetUsersOnlineStatusResp_SuccessResult -// flag := false -// log.NewDebug(params.OperationID, "GetUsersOnlineStatus req come here", params.UserIDList) -// -// grpcCons := getcdv3.GetConn4Unique(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImOnlineMessageRelayName) -// for _, v := range grpcCons { -// client := rpc.NewOnlineMessageRelayServiceClient(v) -// reply, err := client.GetUsersOnlineStatus(context.Background(), req) -// if err != nil { -// log.NewError(params.OperationID, "GetUsersOnlineStatus rpc err", req.String(), err.Error()) -// continue -// } else { -// if reply.ErrCode == 0 { -// wsResult = append(wsResult, reply.SuccessResult...) -// } -// } -// } -// log.NewDebug(params.OperationID, "call GetUsersOnlineStatus rpc server is success", wsResult) -// //Online data merge of each node -// for _, v1 := range params.UserIDList { -// flag = false -// temp := new(pbRelay.GetUsersOnlineStatusResp_SuccessResult) -// for _, v2 := range wsResult { -// if v2.UserID == v1 { -// flag = true -// temp.UserID = v1 -// temp.Status = constant.OnlineStatus -// temp.DetailPlatformStatus = append(temp.DetailPlatformStatus, v2.DetailPlatformStatus...) -// } -// } -// if !flag { -// temp.UserID = v1 -// temp.Status = constant.OfflineStatus -// } -// respResult = append(respResult, temp) -// } -// log.NewDebug(params.OperationID, "Finished merged data", respResult) -// resp := gin.H{"errCode": 0, "errMsg": "", "data": respResult} -// -// c.JSON(http.StatusOK, resp) -//} - func GetUserInfo(c *gin.Context) { params := api.GetUserInfoReq{} if err := c.BindJSON(¶ms); err != nil { @@ -83,7 +21,7 @@ func GetUserInfo(c *gin.Context) { return } req := &rpc.GetUserInfoReq{} - utils.CopyStructFields(&req, params) + utils.CopyStructFields(req, ¶ms) var ok bool ok, req.OpUserID = token_verify.GetUserIDFromToken(c.Request.Header.Get("token")) if !ok { diff --git a/internal/msg_gateway/gate/logic.go b/internal/msg_gateway/gate/logic.go index fce7448bd..c7f0ff8a1 100644 --- a/internal/msg_gateway/gate/logic.go +++ b/internal/msg_gateway/gate/logic.go @@ -151,7 +151,6 @@ func (ws *WServer) pullMsgResp(conn *UserConn, m *Req, pb *sdk_ws.PullMessageRes } c, err := proto.Marshal(&mReplyData) log.NewInfo(m.OperationID, "test info is ", len(mReplyData.SingleUserMsg), mReplyData.SingleUserMsg) - mReply := Resp{ ReqIdentifier: m.ReqIdentifier, MsgIncr: m.MsgIncr, @@ -162,7 +161,6 @@ func (ws *WServer) pullMsgResp(conn *UserConn, m *Req, pb *sdk_ws.PullMessageRes } log.NewInfo(m.OperationID, "pullMsgResp all data is ", mReply.ReqIdentifier, mReply.MsgIncr, mReply.ErrCode, mReply.ErrMsg, len(mReply.Data)) - ws.sendMsg(conn, mReply) } diff --git a/internal/msg_gateway/gate/rpc_server.go b/internal/msg_gateway/gate/rpc_server.go index 4c9c03f34..450cb1c73 100644 --- a/internal/msg_gateway/gate/rpc_server.go +++ b/internal/msg_gateway/gate/rpc_server.go @@ -4,6 +4,7 @@ import ( "Open_IM/pkg/common/config" "Open_IM/pkg/common/constant" "Open_IM/pkg/common/log" + "Open_IM/pkg/common/token_verify" "Open_IM/pkg/grpc-etcdv3/getcdv3" pbRelay "Open_IM/pkg/proto/relay" "Open_IM/pkg/utils" @@ -105,7 +106,11 @@ func (r *RPCServer) OnlinePushMsg(_ context.Context, in *pbRelay.OnlinePushMsgRe }, nil } func (r *RPCServer) GetUsersOnlineStatus(_ context.Context, req *pbRelay.GetUsersOnlineStatusReq) (*pbRelay.GetUsersOnlineStatusResp, error) { - log.NewDebug(req.OperationID, "rpc GetUsersOnlineStatus arrived server", req.String()) + log.NewInfo(req.OperationID, "rpc GetUsersOnlineStatus arrived server", req.String()) + if !token_verify.IsMangerUserID(req.OpUserID) { + log.NewError(req.OperationID, "no permission GetUsersOnlineStatus ", req.OpUserID) + return &pbRelay.GetUsersOnlineStatusResp{ErrCode: constant.ErrAccess.ErrCode, ErrMsg: constant.ErrAccess.ErrMsg}, nil + } var resp pbRelay.GetUsersOnlineStatusResp for _, userID := range req.UserIDList { platformList := genPlatformArray() @@ -125,6 +130,7 @@ func (r *RPCServer) GetUsersOnlineStatus(_ context.Context, req *pbRelay.GetUser resp.SuccessResult = append(resp.SuccessResult, temp) } } + log.NewInfo(req.OperationID, "GetUsersOnlineStatus rpc return ", resp.String()) return &resp, nil } func sendMsgToUser(conn *UserConn, bMsg []byte, in *pbRelay.OnlinePushMsgReq, RecvPlatForm, RecvID string) (ResultCode int64) { diff --git a/internal/rpc/msg/send_msg.go b/internal/rpc/msg/send_msg.go index 4c0c3ad2d..bf371f0a2 100644 --- a/internal/rpc/msg/send_msg.go +++ b/internal/rpc/msg/send_msg.go @@ -141,10 +141,12 @@ func (rpc *rpcChat) SendMsg(_ context.Context, pb *pbChat.SendMsgReq) (*pbChat.S return returnMsg(&replay, pb, 201, "kafka send msg err", "", 0) } } - err2 := rpc.sendMsgToKafka(&msgToMQ, msgToMQ.MsgData.SendID) - if err2 != nil { - log.NewError(msgToMQ.OperationID, "kafka send msg err:SendID", msgToMQ.MsgData.SendID, msgToMQ.String()) - return returnMsg(&replay, pb, 201, "kafka send msg err", "", 0) + if msgToMQ.MsgData.SendID != msgToMQ.MsgData.RecvID { //Filter messages sent to yourself + err2 := rpc.sendMsgToKafka(&msgToMQ, msgToMQ.MsgData.SendID) + if err2 != nil { + log.NewError(msgToMQ.OperationID, "kafka send msg err:SendID", msgToMQ.MsgData.SendID, msgToMQ.String()) + return returnMsg(&replay, pb, 201, "kafka send msg err", "", 0) + } } return returnMsg(&replay, pb, 0, "", msgToMQ.MsgData.ServerMsgID, msgToMQ.MsgData.SendTime) case constant.GroupChatType: diff --git a/pkg/base_info/manage_api_struct.go b/pkg/base_info/manage_api_struct.go index 3a00437a7..862706187 100644 --- a/pkg/base_info/manage_api_struct.go +++ b/pkg/base_info/manage_api_struct.go @@ -1,6 +1,10 @@ package base_info -import open_im_sdk "Open_IM/pkg/proto/sdk_ws" +import ( + pbRelay "Open_IM/pkg/proto/relay" + open_im_sdk "Open_IM/pkg/proto/sdk_ws" + pbUser "Open_IM/pkg/proto/user" +) type paramsManagementSendMsg struct { OperationID string `json:"operationID" binding:"required"` @@ -62,21 +66,37 @@ type FileElem struct { FileSize int64 `mapstructure:"fileSize"` } -type paramsDeleteUsers struct { +type DeleteUsersReq struct { OperationID string `json:"operationID" binding:"required"` DeleteUidList []string `json:"deleteUidList" binding:"required"` } -type paramsGetAllUsersUid struct { +type DeleteUsersResp struct { + CommResp + FailedUserIDList []string `json:"data"` +} +type GetAllUsersUidReq struct { OperationID string `json:"operationID" binding:"required"` } -type paramsGetUsersOnlineStatus struct { +type GetAllUsersUidResp struct { + CommResp + UserIDList []string `json:"data"` +} +type GetUsersOnlineStatusReq struct { OperationID string `json:"operationID" binding:"required"` UserIDList []string `json:"userIDList" binding:"required,lte=200"` } -type paramsAccountCheck struct { +type GetUsersOnlineStatusResp struct { + CommResp + SuccessResult []*pbRelay.GetUsersOnlineStatusResp_SuccessResult `json:"data"` +} +type AccountCheckReq struct { OperationID string `json:"operationID" binding:"required"` UserIDList []string `json:"userIDList" binding:"required,lte=100"` } +type AccountCheckResp struct { + CommResp + ResultList []*pbUser.AccountCheckResp_SingleUserStatus `json:"data"` +} type AtElem struct { Text string `mapstructure:"text"` diff --git a/pkg/base_info/user_api_struct.go b/pkg/base_info/user_api_struct.go index 2e736e97f..ff4695011 100644 --- a/pkg/base_info/user_api_struct.go +++ b/pkg/base_info/user_api_struct.go @@ -4,20 +4,6 @@ import ( open_im_sdk "Open_IM/pkg/proto/sdk_ws" ) -type GetUsersOnlineStatusReq struct { - OperationID string `json:"operationID" binding:"required"` - UserIDList []string `json:"userIDList" binding:"required,lte=200"` - Secret string `json:"secret" binding:"required,max=32"` -} -type OnlineStatus struct { - UserID string `json:"userID"` - Status string `json:"status"` -} -type GetUsersOnlineStatusResp struct { - CommResp - OnlineStatusList []*OnlineStatus `json:"data"` -} - type GetUserInfoReq struct { OperationID string `json:"operationID" binding:"required"` UserIDList []string `json:"userIDList" binding:"required"` diff --git a/pkg/proto/relay/relay.pb.go b/pkg/proto/relay/relay.pb.go index 02eb997e0..c2a3cda0c 100644 --- a/pkg/proto/relay/relay.pb.go +++ b/pkg/proto/relay/relay.pb.go @@ -36,7 +36,7 @@ func (m *OnlinePushMsgReq) Reset() { *m = OnlinePushMsgReq{} } func (m *OnlinePushMsgReq) String() string { return proto.CompactTextString(m) } func (*OnlinePushMsgReq) ProtoMessage() {} func (*OnlinePushMsgReq) Descriptor() ([]byte, []int) { - return fileDescriptor_relay_f80d9497f96c724f, []int{0} + return fileDescriptor_relay_de3bbbc2d62c0c49, []int{0} } func (m *OnlinePushMsgReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_OnlinePushMsgReq.Unmarshal(m, b) @@ -81,7 +81,7 @@ func (m *OnlinePushMsgResp) Reset() { *m = OnlinePushMsgResp{} } func (m *OnlinePushMsgResp) String() string { return proto.CompactTextString(m) } func (*OnlinePushMsgResp) ProtoMessage() {} func (*OnlinePushMsgResp) Descriptor() ([]byte, []int) { - return fileDescriptor_relay_f80d9497f96c724f, []int{1} + return fileDescriptor_relay_de3bbbc2d62c0c49, []int{1} } func (m *OnlinePushMsgResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_OnlinePushMsgResp.Unmarshal(m, b) @@ -121,7 +121,7 @@ func (m *SingleMsgToUser) Reset() { *m = SingleMsgToUser{} } func (m *SingleMsgToUser) String() string { return proto.CompactTextString(m) } func (*SingleMsgToUser) ProtoMessage() {} func (*SingleMsgToUser) Descriptor() ([]byte, []int) { - return fileDescriptor_relay_f80d9497f96c724f, []int{2} + return fileDescriptor_relay_de3bbbc2d62c0c49, []int{2} } func (m *SingleMsgToUser) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SingleMsgToUser.Unmarshal(m, b) @@ -165,6 +165,7 @@ func (m *SingleMsgToUser) GetRecvPlatFormID() int32 { type GetUsersOnlineStatusReq struct { UserIDList []string `protobuf:"bytes,1,rep,name=userIDList" json:"userIDList,omitempty"` OperationID string `protobuf:"bytes,2,opt,name=operationID" json:"operationID,omitempty"` + OpUserID string `protobuf:"bytes,3,opt,name=opUserID" json:"opUserID,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -174,7 +175,7 @@ func (m *GetUsersOnlineStatusReq) Reset() { *m = GetUsersOnlineStatusReq func (m *GetUsersOnlineStatusReq) String() string { return proto.CompactTextString(m) } func (*GetUsersOnlineStatusReq) ProtoMessage() {} func (*GetUsersOnlineStatusReq) Descriptor() ([]byte, []int) { - return fileDescriptor_relay_f80d9497f96c724f, []int{3} + return fileDescriptor_relay_de3bbbc2d62c0c49, []int{3} } func (m *GetUsersOnlineStatusReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetUsersOnlineStatusReq.Unmarshal(m, b) @@ -208,6 +209,13 @@ func (m *GetUsersOnlineStatusReq) GetOperationID() string { return "" } +func (m *GetUsersOnlineStatusReq) GetOpUserID() string { + if m != nil { + return m.OpUserID + } + return "" +} + type GetUsersOnlineStatusResp struct { ErrCode int32 `protobuf:"varint,1,opt,name=errCode" json:"errCode,omitempty"` ErrMsg string `protobuf:"bytes,2,opt,name=errMsg" json:"errMsg,omitempty"` @@ -222,7 +230,7 @@ func (m *GetUsersOnlineStatusResp) Reset() { *m = GetUsersOnlineStatusRe func (m *GetUsersOnlineStatusResp) String() string { return proto.CompactTextString(m) } func (*GetUsersOnlineStatusResp) ProtoMessage() {} func (*GetUsersOnlineStatusResp) Descriptor() ([]byte, []int) { - return fileDescriptor_relay_f80d9497f96c724f, []int{4} + return fileDescriptor_relay_de3bbbc2d62c0c49, []int{4} } func (m *GetUsersOnlineStatusResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetUsersOnlineStatusResp.Unmarshal(m, b) @@ -284,7 +292,7 @@ func (m *GetUsersOnlineStatusResp_SuccessDetail) Reset() { func (m *GetUsersOnlineStatusResp_SuccessDetail) String() string { return proto.CompactTextString(m) } func (*GetUsersOnlineStatusResp_SuccessDetail) ProtoMessage() {} func (*GetUsersOnlineStatusResp_SuccessDetail) Descriptor() ([]byte, []int) { - return fileDescriptor_relay_f80d9497f96c724f, []int{4, 0} + return fileDescriptor_relay_de3bbbc2d62c0c49, []int{4, 0} } func (m *GetUsersOnlineStatusResp_SuccessDetail) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetUsersOnlineStatusResp_SuccessDetail.Unmarshal(m, b) @@ -331,7 +339,7 @@ func (m *GetUsersOnlineStatusResp_FailedDetail) Reset() { *m = GetUsersO func (m *GetUsersOnlineStatusResp_FailedDetail) String() string { return proto.CompactTextString(m) } func (*GetUsersOnlineStatusResp_FailedDetail) ProtoMessage() {} func (*GetUsersOnlineStatusResp_FailedDetail) Descriptor() ([]byte, []int) { - return fileDescriptor_relay_f80d9497f96c724f, []int{4, 1} + return fileDescriptor_relay_de3bbbc2d62c0c49, []int{4, 1} } func (m *GetUsersOnlineStatusResp_FailedDetail) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetUsersOnlineStatusResp_FailedDetail.Unmarshal(m, b) @@ -387,7 +395,7 @@ func (m *GetUsersOnlineStatusResp_SuccessResult) Reset() { func (m *GetUsersOnlineStatusResp_SuccessResult) String() string { return proto.CompactTextString(m) } func (*GetUsersOnlineStatusResp_SuccessResult) ProtoMessage() {} func (*GetUsersOnlineStatusResp_SuccessResult) Descriptor() ([]byte, []int) { - return fileDescriptor_relay_f80d9497f96c724f, []int{4, 2} + return fileDescriptor_relay_de3bbbc2d62c0c49, []int{4, 2} } func (m *GetUsersOnlineStatusResp_SuccessResult) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetUsersOnlineStatusResp_SuccessResult.Unmarshal(m, b) @@ -544,42 +552,42 @@ var _OnlineMessageRelayService_serviceDesc = grpc.ServiceDesc{ Metadata: "relay/relay.proto", } -func init() { proto.RegisterFile("relay/relay.proto", fileDescriptor_relay_f80d9497f96c724f) } - -var fileDescriptor_relay_f80d9497f96c724f = []byte{ - // 531 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x94, 0x54, 0x5f, 0x6f, 0xd2, 0x50, - 0x14, 0x4f, 0x65, 0x6c, 0x72, 0x18, 0x4e, 0x6e, 0xc8, 0x56, 0xfb, 0x80, 0xc8, 0x83, 0x21, 0x46, - 0x4b, 0x82, 0x8f, 0x3e, 0x98, 0x6c, 0xcd, 0x0c, 0x89, 0x0d, 0xe4, 0xa2, 0xd1, 0xe8, 0x03, 0xb9, - 0xa3, 0x67, 0xb5, 0xa1, 0xd0, 0x72, 0xcf, 0xed, 0x16, 0xbf, 0x8e, 0x5f, 0x42, 0x3f, 0x9e, 0xe9, - 0xbd, 0x05, 0x0b, 0x61, 0x2e, 0x7b, 0x21, 0x9c, 0x3f, 0xf7, 0xf7, 0xaf, 0xed, 0x85, 0xa6, 0xc4, - 0x58, 0xfc, 0xec, 0xeb, 0x5f, 0x37, 0x95, 0x89, 0x4a, 0x58, 0x55, 0x17, 0xce, 0x8b, 0x51, 0x8a, - 0xcb, 0xe9, 0xd0, 0xef, 0xa7, 0xf3, 0xb0, 0xaf, 0x27, 0x7d, 0x0a, 0xe6, 0xd3, 0x5b, 0xea, 0xdf, - 0x92, 0xd9, 0xec, 0x06, 0xf0, 0x74, 0xb4, 0x8c, 0xa3, 0x25, 0x8e, 0x33, 0xfa, 0xe1, 0x53, 0xc8, - 0x71, 0xc5, 0x3a, 0x50, 0x1f, 0xa5, 0x28, 0x85, 0x8a, 0x92, 0xe5, 0xd0, 0xb3, 0xad, 0x8e, 0xd5, - 0xab, 0xf1, 0x72, 0x8b, 0xb9, 0x70, 0xb4, 0xa0, 0xd0, 0x13, 0x4a, 0xd8, 0x8f, 0x3a, 0x56, 0xaf, - 0x3e, 0x68, 0xb9, 0x49, 0x4e, 0x15, 0x2d, 0xa6, 0x14, 0xcc, 0x5d, 0xdf, 0xcc, 0xf8, 0x7a, 0xa9, - 0xfb, 0x1e, 0x9a, 0x3b, 0x2c, 0x94, 0xb2, 0x57, 0x70, 0x20, 0x91, 0x52, 0xdb, 0xea, 0x54, 0x7a, - 0xf5, 0xc1, 0xa9, 0x6b, 0x0c, 0x4c, 0xa2, 0x65, 0x18, 0xa3, 0x4f, 0xe1, 0xa7, 0xe4, 0x33, 0xa1, - 0xe4, 0x7a, 0xa7, 0xbb, 0x82, 0x93, 0x9d, 0x01, 0x6b, 0x03, 0x70, 0xa4, 0x2c, 0x56, 0x17, 0x49, - 0x80, 0x5a, 0x64, 0x85, 0x97, 0x3a, 0xec, 0x14, 0x0e, 0x39, 0xce, 0x6e, 0x86, 0x9e, 0x96, 0x58, - 0xe3, 0x45, 0xc5, 0x5e, 0xc2, 0x93, 0xfc, 0xdf, 0x38, 0x16, 0xea, 0x32, 0x91, 0x8b, 0xa1, 0x67, - 0x57, 0x3a, 0x56, 0xaf, 0xca, 0x77, 0xba, 0xdd, 0xef, 0x70, 0xf6, 0x01, 0x55, 0x4e, 0x45, 0x46, - 0xfb, 0x44, 0x09, 0x95, 0x51, 0x1e, 0x50, 0x1b, 0x20, 0x23, 0x94, 0x43, 0xef, 0x63, 0x44, 0x4a, - 0xeb, 0xaf, 0xf1, 0x52, 0x27, 0x0f, 0x30, 0x29, 0x05, 0x68, 0xf8, 0xcb, 0xad, 0xee, 0xef, 0x03, - 0xb0, 0xf7, 0xa3, 0x53, 0xca, 0x6c, 0x38, 0x42, 0x29, 0x37, 0xb6, 0xaa, 0x7c, 0x5d, 0xe6, 0x9e, - 0x50, 0x4a, 0x9f, 0xc2, 0xb5, 0x27, 0x53, 0xb1, 0x09, 0x34, 0x28, 0x9b, 0xcd, 0x90, 0xc8, 0x04, - 0x60, 0x57, 0x74, 0xa6, 0x6f, 0x8a, 0x4c, 0xef, 0x62, 0x72, 0x27, 0xe5, 0x43, 0x7c, 0x1b, 0x83, - 0x8d, 0xe1, 0xf8, 0x5a, 0x44, 0x31, 0x06, 0x05, 0xe6, 0x81, 0xc6, 0x7c, 0x7d, 0x1f, 0xe6, 0xa5, - 0x3e, 0xe3, 0xa1, 0x12, 0x51, 0xcc, 0xb7, 0x10, 0x9c, 0x0b, 0x68, 0x14, 0x8c, 0x66, 0xcc, 0x1c, - 0x78, 0x9c, 0xc6, 0x42, 0x5d, 0x27, 0x72, 0x51, 0xbc, 0x66, 0x9b, 0x3a, 0xf7, 0x4a, 0x1a, 0x75, - 0xed, 0xd5, 0x54, 0xce, 0x57, 0x38, 0x2e, 0x53, 0xe4, 0x7b, 0x26, 0x7a, 0xfd, 0x1c, 0x6b, 0xbc, - 0xa8, 0x1e, 0x9e, 0xa2, 0xf3, 0xcb, 0xda, 0xe8, 0x2b, 0x22, 0xf8, 0x87, 0x6d, 0x6d, 0x61, 0xdf, - 0xa1, 0x8d, 0x09, 0x68, 0x05, 0x5a, 0xd5, 0xb8, 0x70, 0x61, 0x72, 0x79, 0xe0, 0xe3, 0x28, 0xb2, - 0xdb, 0x0b, 0x35, 0xf8, 0x63, 0xc1, 0x33, 0x73, 0xd0, 0x47, 0x22, 0x11, 0x22, 0xcf, 0x31, 0x27, - 0x28, 0x6f, 0xa2, 0x19, 0xb2, 0x73, 0x68, 0x6c, 0x7d, 0x68, 0xec, 0xac, 0xe0, 0xdc, 0xfd, 0xc8, - 0x1d, 0x7b, 0xff, 0x80, 0x52, 0xf6, 0x05, 0x5a, 0xfb, 0x14, 0xb2, 0xf6, 0x7f, 0xe5, 0xaf, 0x9c, - 0xe7, 0xf7, 0xd8, 0x3b, 0x6f, 0x7e, 0x3b, 0x71, 0xcd, 0x35, 0xf5, 0x2e, 0xbd, 0xd2, 0xb2, 0xaf, - 0x0e, 0xf5, 0x2d, 0xf4, 0xf6, 0x6f, 0x00, 0x00, 0x00, 0xff, 0xff, 0x81, 0xe6, 0x3c, 0x27, 0xc4, - 0x04, 0x00, 0x00, +func init() { proto.RegisterFile("relay/relay.proto", fileDescriptor_relay_de3bbbc2d62c0c49) } + +var fileDescriptor_relay_de3bbbc2d62c0c49 = []byte{ + // 539 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x94, 0x54, 0x5f, 0x8f, 0xd2, 0x40, + 0x10, 0x4f, 0xe5, 0xfe, 0xc8, 0x70, 0x78, 0xb2, 0x21, 0x77, 0xb5, 0x0f, 0x88, 0x3c, 0x18, 0x62, + 0xb4, 0x24, 0xf8, 0xe8, 0x83, 0xc9, 0x5d, 0x73, 0x86, 0xc4, 0x06, 0xb2, 0x78, 0xd1, 0xf8, 0x42, + 0x7a, 0x74, 0xae, 0x36, 0x14, 0xba, 0xec, 0x6c, 0x8f, 0xf8, 0x75, 0xfc, 0x12, 0xfa, 0xf1, 0x4c, + 0x77, 0x0b, 0x16, 0xc2, 0x79, 0xb9, 0x17, 0xc2, 0xcc, 0xec, 0xfc, 0xfe, 0xb5, 0x5d, 0x68, 0x48, + 0x4c, 0x82, 0x9f, 0x3d, 0xfd, 0xeb, 0x0a, 0x99, 0xaa, 0x94, 0x1d, 0xea, 0xc2, 0x79, 0x35, 0x14, + 0xb8, 0x98, 0x0c, 0xfc, 0x9e, 0x98, 0x45, 0x3d, 0x3d, 0xe9, 0x51, 0x38, 0x9b, 0xac, 0xa8, 0xb7, + 0x22, 0x73, 0xb2, 0x13, 0xc2, 0xf3, 0xe1, 0x22, 0x89, 0x17, 0x38, 0xca, 0xe8, 0x87, 0x4f, 0x11, + 0xc7, 0x25, 0x6b, 0x43, 0x6d, 0x28, 0x50, 0x06, 0x2a, 0x4e, 0x17, 0x03, 0xcf, 0xb6, 0xda, 0x56, + 0xb7, 0xca, 0xcb, 0x2d, 0xe6, 0xc2, 0xf1, 0x9c, 0x22, 0x2f, 0x50, 0x81, 0xfd, 0xa4, 0x6d, 0x75, + 0x6b, 0xfd, 0xa6, 0x9b, 0xe6, 0x54, 0xf1, 0x7c, 0x42, 0xe1, 0xcc, 0xf5, 0xcd, 0x8c, 0xaf, 0x0f, + 0x75, 0x3e, 0x42, 0x63, 0x87, 0x85, 0x04, 0x7b, 0x03, 0x07, 0x12, 0x49, 0xd8, 0x56, 0xbb, 0xd2, + 0xad, 0xf5, 0xcf, 0x5c, 0x63, 0x60, 0x1c, 0x2f, 0xa2, 0x04, 0x7d, 0x8a, 0xbe, 0xa4, 0xd7, 0x84, + 0x92, 0xeb, 0x33, 0x9d, 0x25, 0x9c, 0xee, 0x0c, 0x58, 0x0b, 0x80, 0x23, 0x65, 0x89, 0xba, 0x4c, + 0x43, 0xd4, 0x22, 0x2b, 0xbc, 0xd4, 0x61, 0x67, 0x70, 0xc4, 0x71, 0x7a, 0x37, 0xf0, 0xb4, 0xc4, + 0x2a, 0x2f, 0x2a, 0xf6, 0x1a, 0x9e, 0xe5, 0xff, 0x46, 0x49, 0xa0, 0xae, 0x52, 0x39, 0x1f, 0x78, + 0x76, 0xa5, 0x6d, 0x75, 0x0f, 0xf9, 0x4e, 0xb7, 0xb3, 0x82, 0xf3, 0x4f, 0xa8, 0x72, 0x2a, 0x32, + 0xda, 0xc7, 0x2a, 0x50, 0x19, 0xe5, 0x01, 0xb5, 0x00, 0x32, 0x42, 0x39, 0xf0, 0x3e, 0xc7, 0xa4, + 0xb4, 0xfe, 0x2a, 0x2f, 0x75, 0xf2, 0x00, 0xd3, 0x52, 0x80, 0x86, 0xbf, 0xdc, 0x62, 0x0e, 0x3c, + 0x4d, 0xc5, 0xb5, 0xde, 0xd0, 0xf4, 0x55, 0xbe, 0xa9, 0x3b, 0xbf, 0x0f, 0xc0, 0xde, 0xcf, 0x4c, + 0x82, 0xd9, 0x70, 0x8c, 0x52, 0x6e, 0x2c, 0x1f, 0xf2, 0x75, 0x99, 0xfb, 0x45, 0x29, 0x7d, 0x8a, + 0xd6, 0x7e, 0x4d, 0xc5, 0xc6, 0x50, 0xa7, 0x6c, 0x3a, 0x45, 0x22, 0x13, 0x8e, 0x5d, 0xd1, 0x79, + 0xbf, 0x2b, 0xf2, 0xbe, 0x8f, 0xc9, 0x1d, 0x97, 0x97, 0xf8, 0x36, 0x06, 0x1b, 0xc1, 0xc9, 0x6d, + 0x10, 0x27, 0x18, 0x16, 0x98, 0x07, 0x1a, 0xf3, 0xed, 0x43, 0x98, 0x57, 0x7a, 0xc7, 0x43, 0x15, + 0xc4, 0x09, 0xdf, 0x42, 0x70, 0x2e, 0xa1, 0x5e, 0x30, 0x9a, 0x71, 0x1e, 0x91, 0x48, 0x02, 0x75, + 0x9b, 0xca, 0x79, 0xf1, 0x0a, 0x6e, 0xea, 0xdc, 0x2b, 0x69, 0xd4, 0xb5, 0x57, 0x53, 0x39, 0xdf, + 0xe0, 0xa4, 0x4c, 0x91, 0x9f, 0xcb, 0xca, 0x21, 0x17, 0xd5, 0xe3, 0x53, 0x74, 0x7e, 0x59, 0x1b, + 0x7d, 0x45, 0x04, 0xff, 0xb0, 0xad, 0x2d, 0xec, 0x7b, 0xb4, 0xb1, 0x00, 0x9a, 0xa1, 0x56, 0x35, + 0x2a, 0x5c, 0x98, 0x5c, 0x1e, 0xf9, 0x38, 0x8a, 0xec, 0xf6, 0x42, 0xf5, 0xff, 0x58, 0xf0, 0xc2, + 0x2c, 0xfa, 0x48, 0x14, 0x44, 0xc8, 0x73, 0xcc, 0x31, 0xca, 0xbb, 0x78, 0x8a, 0xec, 0x02, 0xea, + 0x5b, 0x1f, 0x21, 0x3b, 0x2f, 0x38, 0x77, 0x2f, 0x00, 0xc7, 0xde, 0x3f, 0x20, 0xc1, 0xbe, 0x42, + 0x73, 0x9f, 0x42, 0xd6, 0xfa, 0xaf, 0xfc, 0xa5, 0xf3, 0xf2, 0x01, 0x7b, 0x17, 0x8d, 0xef, 0xa7, + 0xae, 0xb9, 0xc2, 0x3e, 0x88, 0x1b, 0x2d, 0xfb, 0xe6, 0x48, 0xdf, 0x50, 0xef, 0xff, 0x06, 0x00, + 0x00, 0xff, 0xff, 0x6d, 0x5a, 0x23, 0x8f, 0xe0, 0x04, 0x00, 0x00, } diff --git a/pkg/proto/relay/relay.proto b/pkg/proto/relay/relay.proto index c3215db3f..fc95a4f7b 100644 --- a/pkg/proto/relay/relay.proto +++ b/pkg/proto/relay/relay.proto @@ -29,6 +29,7 @@ message SingleMsgToUser{ message GetUsersOnlineStatusReq{ repeated string userIDList = 1; string operationID = 2; + string opUserID = 3; } message GetUsersOnlineStatusResp{ int32 errCode = 1; From 39ceb203327c3a0ee93bf0227b6968d0cdb348fd Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Tue, 28 Dec 2021 21:03:03 +0800 Subject: [PATCH 283/814] tidy code --- pkg/common/db/mysql_model/im_mysql_model/user_model.go | 3 +++ 1 file changed, 3 insertions(+) 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 01ca6d593..5dd6fb53f 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 @@ -15,10 +15,13 @@ func init() { user, err := GetUserByUserID(v) if err != nil { fmt.Println("GetUserByUserID failed ", err.Error(), v, user) + }else{ continue } var appMgr User + appMgr.UserID = v appMgr.Nickname = "AppManager" + utils.IntToString(k+1) + appMgr.AppMangerLevel = 2 err = UserRegister(appMgr) if err != nil { fmt.Println("AppManager insert error", err.Error()) From 47a3c3c2535b456a8b44f9bdd3bbe77227460897 Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Tue, 28 Dec 2021 21:17:41 +0800 Subject: [PATCH 284/814] tidy code --- internal/rpc/group/group.go | 8 +++---- pkg/common/constant/constant.go | 22 ++++++++++++++----- .../im_mysql_model/group_member_model.go | 6 ++++- .../im_mysql_model/group_request_model.go | 3 ++- .../mysql_model/im_mysql_model/user_model.go | 9 +++++--- 5 files changed, 34 insertions(+), 14 deletions(-) diff --git a/internal/rpc/group/group.go b/internal/rpc/group/group.go index 1192155ea..ba5a348f9 100644 --- a/internal/rpc/group/group.go +++ b/internal/rpc/group/group.go @@ -94,7 +94,7 @@ func (s *groupServer) CreateGroup(ctx context.Context, req *pbGroup.CreateGroupR } //to group member - groupMember := imdb.GroupMember{GroupID: groupId, RoleLevel: 1} + groupMember := imdb.GroupMember{GroupID: groupId, RoleLevel: constant.GroupOwner} utils.CopyStructFields(&groupMember, us) err = im_mysql_model.InsertIntoGroupMember(groupMember) if err != nil { @@ -114,7 +114,7 @@ func (s *groupServer) CreateGroup(ctx context.Context, req *pbGroup.CreateGroupR log.NewError(req.OperationID, "FindUserByUID failed ", err.Error(), user.UserID) continue } - if user.RoleLevel == 1 { + if user.RoleLevel == constant.GroupOwner { log.NewError(req.OperationID, "only one owner, failed ", user) continue } @@ -224,7 +224,7 @@ func (s *groupServer) InviteUserToGroup(ctx context.Context, req *pbGroup.Invite var toInsertInfo imdb.GroupMember utils.CopyStructFields(&toInsertInfo, toUserInfo) toInsertInfo.GroupID = req.GroupID - toInsertInfo.RoleLevel = 0 + toInsertInfo.RoleLevel = constant.GroupOrdinaryUsers err = imdb.InsertIntoGroupMember(toInsertInfo) if err != nil { log.NewError(req.OperationID, "InsertIntoGroupMember failed ", req.GroupID, toUserInfo.UserID, toUserInfo.Nickname, toUserInfo.FaceUrl) @@ -331,7 +331,7 @@ func (s *groupServer) KickGroupMember(ctx context.Context, req *pbGroup.KickGrou groupOwnerUserID := "" for _, v := range ownerList { - if v.RoleLevel == 1 { + if v.RoleLevel == constant.GroupOwner { groupOwnerUserID = v.UserID } } diff --git a/pkg/common/constant/constant.go b/pkg/common/constant/constant.go index d8aa4a965..aa2f12c45 100644 --- a/pkg/common/constant/constant.go +++ b/pkg/common/constant/constant.go @@ -3,12 +3,12 @@ package constant const ( //group admin - OrdinaryMember = 0 - GroupOwner = 1 - Administrator = 2 + // OrdinaryMember = 0 + // GroupOwner = 1 + // Administrator = 2 //group application - Application = 0 - AgreeApplication = 1 + // Application = 0 + // AgreeApplication = 1 //friend related BlackListFlag = 1 @@ -117,4 +117,16 @@ var ContentType2PushContent = map[int64]string{ Common: "你收到一条新消息", } +const ( + AppOrdinaryUsers = 1 + AppAdmin = 2 + + GroupOrdinaryUsers = 1 + GroupOwner = 2 + GroupAdmin = 3 + + Male = 1 + Female = 2 +) + const FriendAcceptTip = "You have successfully become friends, so start chatting" diff --git a/pkg/common/db/mysql_model/im_mysql_model/group_member_model.go b/pkg/common/db/mysql_model/im_mysql_model/group_member_model.go index 84175c0a1..bcc087fb0 100644 --- a/pkg/common/db/mysql_model/im_mysql_model/group_member_model.go +++ b/pkg/common/db/mysql_model/im_mysql_model/group_member_model.go @@ -1,6 +1,7 @@ package im_mysql_model import ( + "Open_IM/pkg/common/constant" "Open_IM/pkg/common/db" "time" ) @@ -23,6 +24,9 @@ func InsertIntoGroupMember(toInsertInfo GroupMember) error { return err } toInsertInfo.JoinSource = time.Now() + if toInsertInfo.RoleLevel == 0 { + toInsertInfo.RoleLevel = constant.GroupOrdinaryUsers + } err = dbConn.Table("group_member").Create(toInsertInfo).Error if err != nil { return err @@ -138,7 +142,7 @@ func GetGroupOwnerInfoByGroupID(groupID string) (*GroupMember, error) { return nil, err } for _, v := range omList { - if v.RoleLevel == 1 { + if v.RoleLevel == constant.GroupOwner { return &v, nil } } diff --git a/pkg/common/db/mysql_model/im_mysql_model/group_request_model.go b/pkg/common/db/mysql_model/im_mysql_model/group_request_model.go index e8f64208b..cd6cf641f 100644 --- a/pkg/common/db/mysql_model/im_mysql_model/group_request_model.go +++ b/pkg/common/db/mysql_model/im_mysql_model/group_request_model.go @@ -1,6 +1,7 @@ package im_mysql_model import ( + "Open_IM/pkg/common/constant" "Open_IM/pkg/common/db" "time" ) @@ -88,7 +89,7 @@ func GetGroupApplicationList(userID string) ([]GroupRequest, error) { return nil, err } for _, v := range memberList { - if v.RoleLevel > 0 { + if v.RoleLevel > constant.GroupOrdinaryUsers { list, err := GetGroupRequestByGroupID(v.GroupID) if err != nil { continue 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 5dd6fb53f..613698429 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 @@ -2,6 +2,7 @@ package im_mysql_model import ( "Open_IM/pkg/common/config" + "Open_IM/pkg/common/constant" "Open_IM/pkg/common/db" "Open_IM/pkg/utils" "fmt" @@ -15,13 +16,13 @@ func init() { user, err := GetUserByUserID(v) if err != nil { fmt.Println("GetUserByUserID failed ", err.Error(), v, user) - }else{ + } else { continue } var appMgr User appMgr.UserID = v appMgr.Nickname = "AppManager" + utils.IntToString(k+1) - appMgr.AppMangerLevel = 2 + appMgr.AppMangerLevel = constant.AppAdmin err = UserRegister(appMgr) if err != nil { fmt.Println("AppManager insert error", err.Error()) @@ -36,7 +37,9 @@ func UserRegister(user User) error { return err } user.CreateTime = time.Now() - + if user.AppMangerLevel == 0 { + user.AppMangerLevel = constant.AppOrdinaryUsers + } err = dbConn.Table("user").Create(&user).Error if err != nil { return err From ec144da8cedefb6ab297f754b88b7f384a48493c Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Wed, 29 Dec 2021 09:32:35 +0800 Subject: [PATCH 285/814] Refactor code --- pkg/common/db/mysql_model/im_mysql_model/user_model.go | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) 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 613698429..d23c6f228 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 @@ -25,7 +25,7 @@ func init() { appMgr.AppMangerLevel = constant.AppAdmin err = UserRegister(appMgr) if err != nil { - fmt.Println("AppManager insert error", err.Error()) + fmt.Println("AppManager insert error", err.Error(), appMgr, "time: ", appMgr.Birth.Unix()) } } @@ -40,6 +40,7 @@ func UserRegister(user User) error { if user.AppMangerLevel == 0 { user.AppMangerLevel = constant.AppOrdinaryUsers } + utils.UnixSecondToTime(0) err = dbConn.Table("user").Create(&user).Error if err != nil { return err From 3737e889ea0bd9e812346603ba74b0c1b1033dcb Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Wed, 29 Dec 2021 09:36:48 +0800 Subject: [PATCH 286/814] Refactor code --- pkg/common/db/mysql_model/im_mysql_model/user_model.go | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) 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 d23c6f228..298487c38 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 @@ -40,7 +40,9 @@ func UserRegister(user User) error { if user.AppMangerLevel == 0 { user.AppMangerLevel = constant.AppOrdinaryUsers } - utils.UnixSecondToTime(0) + if user.Birth.Unix() < 0 { + user.Birth = utils.UnixSecondToTime(0) + } err = dbConn.Table("user").Create(&user).Error if err != nil { return err From b30cb5254ec06666215507c30f87aea5eb996eb7 Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Wed, 29 Dec 2021 10:18:10 +0800 Subject: [PATCH 287/814] Refactor code --- internal/api/friend/friend.go | 51 ++++++++++++++---------------- pkg/base_info/friend_api_struct.go | 4 +-- pkg/utils/utils.go | 39 ----------------------- 3 files changed, 26 insertions(+), 68 deletions(-) diff --git a/internal/api/friend/friend.go b/internal/api/friend/friend.go index 85ec67e5e..7c2d2bde2 100644 --- a/internal/api/friend/friend.go +++ b/internal/api/friend/friend.go @@ -21,7 +21,7 @@ func AddBlacklist(c *gin.Context) { c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": err.Error()}) return } - req := &rpc.AddBlacklistReq{} + req := &rpc.AddBlacklistReq{CommID: &rpc.CommID{}} utils.CopyStructFields(req.CommID, ¶ms) var ok bool ok, req.CommID.OpUserID = token_verify.GetUserIDFromToken(c.Request.Header.Get("token")) @@ -84,8 +84,8 @@ func AddFriend(c *gin.Context) { c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": err.Error()}) return } - req := &rpc.AddFriendReq{} - utils.CopyStructFields(req.CommID, params) + req := &rpc.AddFriendReq{CommID: &rpc.CommID{}} + utils.CopyStructFields(req.CommID, ¶ms) var ok bool ok, req.CommID.OpUserID = token_verify.GetUserIDFromToken(c.Request.Header.Get("token")) if !ok { @@ -116,7 +116,7 @@ func AddFriendResponse(c *gin.Context) { c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": err.Error()}) return } - req := &rpc.AddFriendResponseReq{} + req := &rpc.AddFriendResponseReq{CommID: &rpc.CommID{}} utils.CopyStructFields(req.CommID, ¶ms) var ok bool ok, req.CommID.OpUserID = token_verify.GetUserIDFromToken(c.Request.Header.Get("token")) @@ -125,7 +125,7 @@ func AddFriendResponse(c *gin.Context) { c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": "GetUserIDFromToken failed"}) return } - utils.CopyStructFields(&req, ¶ms) + utils.CopyStructFields(req, ¶ms) log.NewInfo(req.CommID.OperationID, "AddFriendResponse args ", req.String()) etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImFriendName) @@ -149,7 +149,7 @@ func DeleteFriend(c *gin.Context) { c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": err.Error()}) return } - req := &rpc.DeleteFriendReq{} + req := &rpc.DeleteFriendReq{CommID: &rpc.CommID{}} utils.CopyStructFields(req.CommID, ¶ms) var ok bool ok, req.CommID.OpUserID = token_verify.GetUserIDFromToken(c.Request.Header.Get("token")) @@ -181,7 +181,7 @@ func GetBlacklist(c *gin.Context) { c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": err.Error()}) return } - req := &rpc.GetBlacklistReq{} + req := &rpc.GetBlacklistReq{CommID: &rpc.CommID{}} utils.CopyStructFields(req.CommID, ¶ms) var ok bool ok, req.CommID.OpUserID = token_verify.GetUserIDFromToken(c.Request.Header.Get("token")) @@ -218,8 +218,8 @@ func SetFriendComment(c *gin.Context) { c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": err.Error()}) return } - req := &rpc.SetFriendCommentReq{} - utils.CopyStructFields(req.CommID, params) + req := &rpc.SetFriendCommentReq{CommID: &rpc.CommID{}} + utils.CopyStructFields(req.CommID, ¶ms) req.Remark = params.Remark var ok bool ok, req.CommID.OpUserID = token_verify.GetUserIDFromToken(c.Request.Header.Get("token")) @@ -251,8 +251,8 @@ func RemoveBlacklist(c *gin.Context) { c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": err.Error()}) return } - req := &rpc.RemoveBlacklistReq{} - utils.CopyStructFields(req.CommID, params) + req := &rpc.RemoveBlacklistReq{CommID: &rpc.CommID{}} + utils.CopyStructFields(req.CommID, ¶ms) var ok bool ok, req.CommID.OpUserID = token_verify.GetUserIDFromToken(c.Request.Header.Get("token")) if !ok { @@ -282,8 +282,8 @@ func IsFriend(c *gin.Context) { c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": err.Error()}) return } - req := &rpc.IsFriendReq{} - utils.CopyStructFields(req.CommID, params) + req := &rpc.IsFriendReq{CommID: &rpc.CommID{}} + utils.CopyStructFields(req.CommID, ¶ms) var ok bool ok, req.CommID.OpUserID = token_verify.GetUserIDFromToken(c.Request.Header.Get("token")) if !ok { @@ -347,8 +347,8 @@ func GetFriendList(c *gin.Context) { c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": err.Error()}) return } - req := &rpc.GetFriendListReq{} - utils.CopyStructFields(req.CommID, params) + req := &rpc.GetFriendListReq{CommID: &rpc.CommID{}} + utils.CopyStructFields(req.CommID, ¶ms) var ok bool ok, req.CommID.OpUserID = token_verify.GetUserIDFromToken(c.Request.Header.Get("token")) if !ok { @@ -367,9 +367,9 @@ func GetFriendList(c *gin.Context) { return } - resp := api.GetFriendListResp{CommResp: api.CommResp{ErrCode: RpcResp.ErrCode, ErrMsg: RpcResp.ErrMsg}} - utils.CopyStructFields(&resp, RpcResp) + resp := api.GetFriendListResp{CommResp: api.CommResp{ErrCode: RpcResp.ErrCode, ErrMsg: RpcResp.ErrMsg}, FriendInfoList: RpcResp.FriendInfoList} log.NewInfo(req.CommID.OperationID, "GetFriendList api return ", resp) + c.JSON(http.StatusOK, resp) } func GetFriendApplyList(c *gin.Context) { @@ -379,8 +379,8 @@ func GetFriendApplyList(c *gin.Context) { c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": err.Error()}) return } - req := &rpc.GetFriendApplyListReq{} - utils.CopyStructFields(req.CommID, params) + req := &rpc.GetFriendApplyListReq{CommID: &rpc.CommID{}} + utils.CopyStructFields(req.CommID, ¶ms) var ok bool ok, req.CommID.OpUserID = token_verify.GetUserIDFromToken(c.Request.Header.Get("token")) if !ok { @@ -400,8 +400,7 @@ func GetFriendApplyList(c *gin.Context) { return } - resp := api.GetFriendApplyListResp{CommResp: api.CommResp{ErrCode: RpcResp.ErrCode, ErrMsg: RpcResp.ErrMsg}} - utils.CopyStructFields(&resp, RpcResp) + resp := api.GetFriendApplyListResp{CommResp: api.CommResp{ErrCode: RpcResp.ErrCode, ErrMsg: RpcResp.ErrMsg}, FriendRequestList: RpcResp.FriendRequestList} log.NewInfo(req.CommID.OperationID, "GetFriendApplyList api return ", resp) } @@ -413,8 +412,8 @@ func GetSelfApplyList(c *gin.Context) { c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": err.Error()}) return } - req := &rpc.GetSelfApplyListReq{} - utils.CopyStructFields(req.CommID, params) + req := &rpc.GetSelfApplyListReq{CommID: &rpc.CommID{}} + utils.CopyStructFields(req.CommID, ¶ms) var ok bool ok, req.CommID.OpUserID = token_verify.GetUserIDFromToken(c.Request.Header.Get("token")) if !ok { @@ -433,9 +432,7 @@ func GetSelfApplyList(c *gin.Context) { return } - resp := api.GetSelfApplyListResp{CommResp: api.CommResp{ErrCode: RpcResp.ErrCode, ErrMsg: RpcResp.ErrMsg}} - utils.CopyStructFields(resp, RpcResp) - c.JSON(http.StatusOK, resp) + resp := api.GetSelfApplyListResp{CommResp: api.CommResp{ErrCode: RpcResp.ErrCode, ErrMsg: RpcResp.ErrMsg}, FriendRequestList: RpcResp.FriendRequestList} log.NewInfo(req.CommID.OperationID, "GetSelfApplyList api return ", resp) - + c.JSON(http.StatusOK, resp) } diff --git a/pkg/base_info/friend_api_struct.go b/pkg/base_info/friend_api_struct.go index b5cee09e5..3924b571d 100644 --- a/pkg/base_info/friend_api_struct.go +++ b/pkg/base_info/friend_api_struct.go @@ -112,7 +112,7 @@ type GetFriendApplyListReq struct { } type GetFriendApplyListResp struct { CommResp - FriendRequestList open_im_sdk.FriendRequest `json:"data"` + FriendRequestList []*open_im_sdk.FriendRequest `json:"data"` } type GetSelfApplyListReq struct { @@ -120,5 +120,5 @@ type GetSelfApplyListReq struct { } type GetSelfApplyListResp struct { CommResp - FriendRequestList open_im_sdk.FriendRequest `json:"data"` + FriendRequestList []*open_im_sdk.FriendRequest `json:"data"` } diff --git a/pkg/utils/utils.go b/pkg/utils/utils.go index d5dc0254a..224e459e3 100644 --- a/pkg/utils/utils.go +++ b/pkg/utils/utils.go @@ -1,49 +1,10 @@ package utils import ( - "fmt" "github.com/jinzhu/copier" - "reflect" ) // copy a by b b->a func CopyStructFields(a interface{}, b interface{}, fields ...string) (err error) { return copier.Copy(a, b) - - at := reflect.TypeOf(a) - av := reflect.ValueOf(a) - bt := reflect.TypeOf(b) - bv := reflect.ValueOf(b) - - if at.Kind() != reflect.Ptr { - err = fmt.Errorf("a must be a struct pointer") - return err - } - av = reflect.ValueOf(av.Interface()) - - _fields := make([]string, 0) - if len(fields) > 0 { - _fields = fields - } else { - for i := 0; i < bv.NumField(); i++ { - _fields = append(_fields, bt.Field(i).Name) - } - } - - if len(_fields) == 0 { - err = fmt.Errorf("no fields to copy") - return err - } - - for i := 0; i < len(_fields); i++ { - name := _fields[i] - - f := av.Elem().FieldByName(name) - bValue := bv.FieldByName(name) - - if f.IsValid() && f.Kind() == bValue.Kind() { - f.Set(bValue) - } - } - return nil } From 376f61e2132d97aaf712c9c3c6868ee610ba63f6 Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Wed, 29 Dec 2021 10:32:26 +0800 Subject: [PATCH 288/814] Refactor code --- internal/api/friend/friend.go | 4 ++-- pkg/base_info/friend_api_struct.go | 26 +++++++++++++------------- 2 files changed, 15 insertions(+), 15 deletions(-) diff --git a/internal/api/friend/friend.go b/internal/api/friend/friend.go index 7c2d2bde2..5ea9e1fb3 100644 --- a/internal/api/friend/friend.go +++ b/internal/api/friend/friend.go @@ -85,7 +85,7 @@ func AddFriend(c *gin.Context) { return } req := &rpc.AddFriendReq{CommID: &rpc.CommID{}} - utils.CopyStructFields(req.CommID, ¶ms) + utils.CopyStructFields(req.CommID, ¶ms.ParamsCommFriend) var ok bool ok, req.CommID.OpUserID = token_verify.GetUserIDFromToken(c.Request.Header.Get("token")) if !ok { @@ -93,7 +93,7 @@ func AddFriend(c *gin.Context) { c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": "GetUserIDFromToken failed"}) return } - log.NewInfo("AddFriend args ", req.String()) + log.NewInfo(req.CommID.OperationID, "AddFriend args ", req.String()) etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImFriendName) client := rpc.NewFriendClient(etcdConn) diff --git a/pkg/base_info/friend_api_struct.go b/pkg/base_info/friend_api_struct.go index 3924b571d..c0a5d3673 100644 --- a/pkg/base_info/friend_api_struct.go +++ b/pkg/base_info/friend_api_struct.go @@ -2,14 +2,14 @@ package base_info import open_im_sdk "Open_IM/pkg/proto/sdk_ws" -type paramsCommFriend struct { +type ParamsCommFriend struct { OperationID string `json:"operationID" binding:"required"` ToUserID string `json:"toUserID" binding:"required"` FromUserID string `json:"fromUserID" binding:"required"` } type AddBlacklistReq struct { - paramsCommFriend + ParamsCommFriend } type AddBlacklistResp struct { CommResp @@ -26,7 +26,7 @@ type ImportFriendResp struct { } type AddFriendReq struct { - paramsCommFriend + ParamsCommFriend ReqMsg string `json:"reqMsg"` } type AddFriendResp struct { @@ -34,7 +34,7 @@ type AddFriendResp struct { } type AddFriendResponseReq struct { - paramsCommFriend + ParamsCommFriend Flag int32 `json:"flag" binding:"required"` HandleMsg string `json:"handleMsg"` } @@ -43,14 +43,14 @@ type AddFriendResponseResp struct { } type DeleteFriendReq struct { - paramsCommFriend + ParamsCommFriend } type DeleteFriendResp struct { CommResp } type GetBlackListReq struct { - paramsCommFriend + ParamsCommFriend } type GetBlackListResp struct { CommResp @@ -69,7 +69,7 @@ type BlackUserInfo struct { } type SetFriendCommentReq struct { - paramsCommFriend + ParamsCommFriend Remark string `json:"remark" binding:"required"` } type SetFriendCommentResp struct { @@ -77,14 +77,14 @@ type SetFriendCommentResp struct { } type RemoveBlackListReq struct { - paramsCommFriend + ParamsCommFriend } type RemoveBlackListResp struct { CommResp } type IsFriendReq struct { - paramsCommFriend + ParamsCommFriend } type IsFriendResp struct { CommResp @@ -92,7 +92,7 @@ type IsFriendResp struct { } type GetFriendsInfoReq struct { - paramsCommFriend + ParamsCommFriend } type GetFriendsInfoResp struct { CommResp @@ -100,7 +100,7 @@ type GetFriendsInfoResp struct { } type GetFriendListReq struct { - paramsCommFriend + ParamsCommFriend } type GetFriendListResp struct { CommResp @@ -108,7 +108,7 @@ type GetFriendListResp struct { } type GetFriendApplyListReq struct { - paramsCommFriend + ParamsCommFriend } type GetFriendApplyListResp struct { CommResp @@ -116,7 +116,7 @@ type GetFriendApplyListResp struct { } type GetSelfApplyListReq struct { - paramsCommFriend + ParamsCommFriend } type GetSelfApplyListResp struct { CommResp From d8ab13e249ac4ea26a4c9948c76c18289708e6d3 Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Wed, 29 Dec 2021 10:39:47 +0800 Subject: [PATCH 289/814] Refactor code --- internal/rpc/friend/firend.go | 1 + 1 file changed, 1 insertion(+) diff --git a/internal/rpc/friend/firend.go b/internal/rpc/friend/firend.go index b334cb1e3..685e786f3 100644 --- a/internal/rpc/friend/firend.go +++ b/internal/rpc/friend/firend.go @@ -144,6 +144,7 @@ func (s *friendServer) AddFriend(ctx context.Context, req *pbFriend.AddFriendReq //Establish a latest relationship in the friend request table friendRequest := imdb.FriendRequest{ReqMsg: req.ReqMsg} utils.CopyStructFields(&friendRequest, req.CommID) + log.NewDebug(req.CommID.OperationID, "UpdateFriendApplication args ", friendRequest) err := imdb.UpdateFriendApplication(&friendRequest) if err != nil { log.NewError(req.CommID.OperationID, "UpdateFriendApplication failed ", err.Error(), friendRequest) From 348ce56776416e6e1c1761297369c27c740759a2 Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Wed, 29 Dec 2021 10:41:05 +0800 Subject: [PATCH 290/814] Refactor code --- internal/api/friend/friend.go | 1 + 1 file changed, 1 insertion(+) diff --git a/internal/api/friend/friend.go b/internal/api/friend/friend.go index 5ea9e1fb3..94a899c8c 100644 --- a/internal/api/friend/friend.go +++ b/internal/api/friend/friend.go @@ -86,6 +86,7 @@ func AddFriend(c *gin.Context) { } req := &rpc.AddFriendReq{CommID: &rpc.CommID{}} utils.CopyStructFields(req.CommID, ¶ms.ParamsCommFriend) + req.ReqMsg = params.ReqMsg var ok bool ok, req.CommID.OpUserID = token_verify.GetUserIDFromToken(c.Request.Header.Get("token")) if !ok { From f0c5b1e54457a22e926e5da5e6496842fc2c3cff Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Wed, 29 Dec 2021 10:52:52 +0800 Subject: [PATCH 291/814] Refactor code --- internal/rpc/friend/firend.go | 1 + .../db/mysql_model/im_mysql_model/friend_request_model.go | 7 +++---- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/internal/rpc/friend/firend.go b/internal/rpc/friend/firend.go index 685e786f3..e0ba79824 100644 --- a/internal/rpc/friend/firend.go +++ b/internal/rpc/friend/firend.go @@ -144,6 +144,7 @@ func (s *friendServer) AddFriend(ctx context.Context, req *pbFriend.AddFriendReq //Establish a latest relationship in the friend request table friendRequest := imdb.FriendRequest{ReqMsg: req.ReqMsg} utils.CopyStructFields(&friendRequest, req.CommID) + // {openIM001 openIM002 0 test add friend 0001-01-01 00:00:00 +0000 UTC 0001-01-01 00:00:00 +0000 UTC }] log.NewDebug(req.CommID.OperationID, "UpdateFriendApplication args ", friendRequest) err := imdb.UpdateFriendApplication(&friendRequest) if err != nil { diff --git a/pkg/common/db/mysql_model/im_mysql_model/friend_request_model.go b/pkg/common/db/mysql_model/im_mysql_model/friend_request_model.go index 891020ec0..e7e348bc0 100644 --- a/pkg/common/db/mysql_model/im_mysql_model/friend_request_model.go +++ b/pkg/common/db/mysql_model/im_mysql_model/friend_request_model.go @@ -65,11 +65,10 @@ func UpdateFriendApplication(friendRequest *FriendRequest) error { return err } friendRequest.CreateTime = time.Now() - err = dbConn.Table("friend_request").Where("from_user_id=? and to_user_id=?", friendRequest.FromUserID, friendRequest.ToUserID).Update(&friendRequest).Error - if err != nil { - return err + if dbConn.Table("friend_request").Where("from_user_id=? and to_user_id=?", + friendRequest.FromUserID, friendRequest.ToUserID).Update(&friendRequest).RowsAffected == 0 { + return InsertFriendApplication(friendRequest) } - return nil } func InsertFriendApplication(friendRequest *FriendRequest) error { From 51cb558317a4fb5a4f4a33f7d9b30e0b44edb822 Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Wed, 29 Dec 2021 10:55:28 +0800 Subject: [PATCH 292/814] Refactor code --- .../db/mysql_model/im_mysql_model/friend_request_model.go | 2 ++ 1 file changed, 2 insertions(+) diff --git a/pkg/common/db/mysql_model/im_mysql_model/friend_request_model.go b/pkg/common/db/mysql_model/im_mysql_model/friend_request_model.go index e7e348bc0..371f13761 100644 --- a/pkg/common/db/mysql_model/im_mysql_model/friend_request_model.go +++ b/pkg/common/db/mysql_model/im_mysql_model/friend_request_model.go @@ -68,6 +68,8 @@ func UpdateFriendApplication(friendRequest *FriendRequest) error { if dbConn.Table("friend_request").Where("from_user_id=? and to_user_id=?", friendRequest.FromUserID, friendRequest.ToUserID).Update(&friendRequest).RowsAffected == 0 { return InsertFriendApplication(friendRequest) + } else { + return nil } } From 453eddc0896d6efbfde722fbbd52f618c97aa9be Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Wed, 29 Dec 2021 10:57:48 +0800 Subject: [PATCH 293/814] Refactor code --- internal/rpc/group/group.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/internal/rpc/group/group.go b/internal/rpc/group/group.go index ba5a348f9..01192c049 100644 --- a/internal/rpc/group/group.go +++ b/internal/rpc/group/group.go @@ -513,7 +513,7 @@ func hasAccess(req *pbGroup.SetGroupInfoReq) bool { return false } - if groupUserInfo.RoleLevel == constant.OrdinaryMember { + if groupUserInfo.RoleLevel == constant.GroupAdmin { return true } return false From a480dfe59e6f323a3b6cc774f760ed74f6fd157d Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Wed, 29 Dec 2021 11:01:14 +0800 Subject: [PATCH 294/814] Refactor code --- .../db/mysql_model/im_mysql_model/friend_request_model.go | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/pkg/common/db/mysql_model/im_mysql_model/friend_request_model.go b/pkg/common/db/mysql_model/im_mysql_model/friend_request_model.go index 371f13761..d09777a1d 100644 --- a/pkg/common/db/mysql_model/im_mysql_model/friend_request_model.go +++ b/pkg/common/db/mysql_model/im_mysql_model/friend_request_model.go @@ -2,6 +2,7 @@ package im_mysql_model import ( "Open_IM/pkg/common/db" + "Open_IM/pkg/utils" "time" ) @@ -78,6 +79,12 @@ func InsertFriendApplication(friendRequest *FriendRequest) error { if err != nil { return err } + if friendRequest.CreateTime.Unix() < 0 { + friendRequest.CreateTime = time.Now() + } + if friendRequest.HandleTime.Unix() < 0 { + friendRequest.HandleTime = time.Now() + } err = dbConn.Table("friend_request").Create(friendRequest).Error if err != nil { return err From c312f079fb4c0b045984f85dd30125ba5117a583 Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Wed, 29 Dec 2021 11:01:57 +0800 Subject: [PATCH 295/814] Refactor code --- pkg/common/db/mysql_model/im_mysql_model/friend_request_model.go | 1 - 1 file changed, 1 deletion(-) diff --git a/pkg/common/db/mysql_model/im_mysql_model/friend_request_model.go b/pkg/common/db/mysql_model/im_mysql_model/friend_request_model.go index d09777a1d..c058b8912 100644 --- a/pkg/common/db/mysql_model/im_mysql_model/friend_request_model.go +++ b/pkg/common/db/mysql_model/im_mysql_model/friend_request_model.go @@ -2,7 +2,6 @@ package im_mysql_model import ( "Open_IM/pkg/common/db" - "Open_IM/pkg/utils" "time" ) From 2fcd21ae944faf3a426bf6b461b2a77f2662e965 Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Wed, 29 Dec 2021 11:02:55 +0800 Subject: [PATCH 296/814] Refactor code --- .../db/mysql_model/im_mysql_model/friend_request_model.go | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/pkg/common/db/mysql_model/im_mysql_model/friend_request_model.go b/pkg/common/db/mysql_model/im_mysql_model/friend_request_model.go index c058b8912..a8973c2e2 100644 --- a/pkg/common/db/mysql_model/im_mysql_model/friend_request_model.go +++ b/pkg/common/db/mysql_model/im_mysql_model/friend_request_model.go @@ -2,6 +2,7 @@ package im_mysql_model import ( "Open_IM/pkg/common/db" + "Open_IM/pkg/utils" "time" ) @@ -82,7 +83,7 @@ func InsertFriendApplication(friendRequest *FriendRequest) error { friendRequest.CreateTime = time.Now() } if friendRequest.HandleTime.Unix() < 0 { - friendRequest.HandleTime = time.Now() + friendRequest.HandleTime = utils.UnixSecondToTime(0) } err = dbConn.Table("friend_request").Create(friendRequest).Error if err != nil { From 740dd0e0a65ebf3de57bfa2a1f609aaf3be8989b Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Wed, 29 Dec 2021 11:15:20 +0800 Subject: [PATCH 297/814] Refactor code --- cmd/open_im_api/main.go | 4 ++-- internal/api/friend/friend.go | 16 ++++++++-------- pkg/base_info/friend_api_struct.go | 3 ++- .../mysql_model/im_mysql_model/model_struct.go | 2 +- 4 files changed, 13 insertions(+), 12 deletions(-) diff --git a/cmd/open_im_api/main.go b/cmd/open_im_api/main.go index 773b8be7d..528ddd876 100644 --- a/cmd/open_im_api/main.go +++ b/cmd/open_im_api/main.go @@ -31,9 +31,9 @@ func main() { friendRouterGroup := r.Group("/friend") { // friendRouterGroup.POST("/get_friends_info", friend.GetFriendsInfo) - friendRouterGroup.POST("/add_friend", friend.AddFriend) + friendRouterGroup.POST("/add_friend", friend.AddFriend) //1 friendRouterGroup.POST("/get_friend_apply_list", friend.GetFriendApplyList) - friendRouterGroup.POST("/get_self_apply_list", friend.GetSelfApplyList) + friendRouterGroup.POST("/get_self_apply_list", friend.GetSelfApplyList) //1 friendRouterGroup.POST("/get_friend_list", friend.GetFriendList) friendRouterGroup.POST("/add_blacklist", friend.AddBlacklist) friendRouterGroup.POST("/get_blacklist", friend.GetBlacklist) diff --git a/internal/api/friend/friend.go b/internal/api/friend/friend.go index 94a899c8c..dc5115ed3 100644 --- a/internal/api/friend/friend.go +++ b/internal/api/friend/friend.go @@ -118,7 +118,7 @@ func AddFriendResponse(c *gin.Context) { return } req := &rpc.AddFriendResponseReq{CommID: &rpc.CommID{}} - utils.CopyStructFields(req.CommID, ¶ms) + utils.CopyStructFields(req.CommID, ¶ms.ParamsCommFriend) var ok bool ok, req.CommID.OpUserID = token_verify.GetUserIDFromToken(c.Request.Header.Get("token")) if !ok { @@ -151,7 +151,7 @@ func DeleteFriend(c *gin.Context) { return } req := &rpc.DeleteFriendReq{CommID: &rpc.CommID{}} - utils.CopyStructFields(req.CommID, ¶ms) + utils.CopyStructFields(req.CommID, ¶ms.ParamsCommFriend) var ok bool ok, req.CommID.OpUserID = token_verify.GetUserIDFromToken(c.Request.Header.Get("token")) if !ok { @@ -183,7 +183,7 @@ func GetBlacklist(c *gin.Context) { return } req := &rpc.GetBlacklistReq{CommID: &rpc.CommID{}} - utils.CopyStructFields(req.CommID, ¶ms) + utils.CopyStructFields(req.CommID, ¶ms.ParamsCommFriend) var ok bool ok, req.CommID.OpUserID = token_verify.GetUserIDFromToken(c.Request.Header.Get("token")) if !ok { @@ -220,7 +220,7 @@ func SetFriendComment(c *gin.Context) { return } req := &rpc.SetFriendCommentReq{CommID: &rpc.CommID{}} - utils.CopyStructFields(req.CommID, ¶ms) + utils.CopyStructFields(req.CommID, ¶ms.ParamsCommFriend) req.Remark = params.Remark var ok bool ok, req.CommID.OpUserID = token_verify.GetUserIDFromToken(c.Request.Header.Get("token")) @@ -253,7 +253,7 @@ func RemoveBlacklist(c *gin.Context) { return } req := &rpc.RemoveBlacklistReq{CommID: &rpc.CommID{}} - utils.CopyStructFields(req.CommID, ¶ms) + utils.CopyStructFields(req.CommID, ¶ms.ParamsCommFriend) var ok bool ok, req.CommID.OpUserID = token_verify.GetUserIDFromToken(c.Request.Header.Get("token")) if !ok { @@ -284,7 +284,7 @@ func IsFriend(c *gin.Context) { return } req := &rpc.IsFriendReq{CommID: &rpc.CommID{}} - utils.CopyStructFields(req.CommID, ¶ms) + utils.CopyStructFields(req.CommID, ¶ms.ParamsCommFriend) var ok bool ok, req.CommID.OpUserID = token_verify.GetUserIDFromToken(c.Request.Header.Get("token")) if !ok { @@ -349,7 +349,7 @@ func GetFriendList(c *gin.Context) { return } req := &rpc.GetFriendListReq{CommID: &rpc.CommID{}} - utils.CopyStructFields(req.CommID, ¶ms) + utils.CopyStructFields(req.CommID, ¶ms.ParamsCommFriend) var ok bool ok, req.CommID.OpUserID = token_verify.GetUserIDFromToken(c.Request.Header.Get("token")) if !ok { @@ -381,7 +381,7 @@ func GetFriendApplyList(c *gin.Context) { return } req := &rpc.GetFriendApplyListReq{CommID: &rpc.CommID{}} - utils.CopyStructFields(req.CommID, ¶ms) + utils.CopyStructFields(req.CommID, ¶ms.ParamsCommFriend) var ok bool ok, req.CommID.OpUserID = token_verify.GetUserIDFromToken(c.Request.Header.Get("token")) if !ok { diff --git a/pkg/base_info/friend_api_struct.go b/pkg/base_info/friend_api_struct.go index c0a5d3673..d9e5fbe59 100644 --- a/pkg/base_info/friend_api_struct.go +++ b/pkg/base_info/friend_api_struct.go @@ -116,7 +116,8 @@ type GetFriendApplyListResp struct { } type GetSelfApplyListReq struct { - ParamsCommFriend + OperationID string `json:"operationID" binding:"required"` + FromUserID string `json:"fromUserID" binding:"required"` } type GetSelfApplyListResp struct { CommResp diff --git a/pkg/common/db/mysql_model/im_mysql_model/model_struct.go b/pkg/common/db/mysql_model/im_mysql_model/model_struct.go index ae2d9dc43..29125d813 100644 --- a/pkg/common/db/mysql_model/im_mysql_model/model_struct.go +++ b/pkg/common/db/mysql_model/im_mysql_model/model_struct.go @@ -95,7 +95,7 @@ type GroupMember struct { JoinTime time.Time `gorm:"column:join_time"` Nickname string `gorm:"column:nickname"` FaceUrl string `gorm:"user_group_face_url"` - JoinSource time.Time `gorm:"column:join_source"` + JoinSource int32 `gorm:"column:join_source"` OperatorUserID string `gorm:"column:operator_user_id"` Ex string `gorm:"column:ex"` } From 0891e2d4320bb2bbba79f43092e01f9bbb6eba66 Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Wed, 29 Dec 2021 11:16:23 +0800 Subject: [PATCH 298/814] Refactor code --- internal/api/friend/friend.go | 2 +- pkg/base_info/friend_api_struct.go | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/internal/api/friend/friend.go b/internal/api/friend/friend.go index dc5115ed3..a22f9b813 100644 --- a/internal/api/friend/friend.go +++ b/internal/api/friend/friend.go @@ -183,7 +183,7 @@ func GetBlacklist(c *gin.Context) { return } req := &rpc.GetBlacklistReq{CommID: &rpc.CommID{}} - utils.CopyStructFields(req.CommID, ¶ms.ParamsCommFriend) + utils.CopyStructFields(req.CommID, ¶ms) var ok bool ok, req.CommID.OpUserID = token_verify.GetUserIDFromToken(c.Request.Header.Get("token")) if !ok { diff --git a/pkg/base_info/friend_api_struct.go b/pkg/base_info/friend_api_struct.go index d9e5fbe59..116c378a4 100644 --- a/pkg/base_info/friend_api_struct.go +++ b/pkg/base_info/friend_api_struct.go @@ -50,7 +50,8 @@ type DeleteFriendResp struct { } type GetBlackListReq struct { - ParamsCommFriend + OperationID string `json:"operationID" binding:"required"` + FromUserID string `json:"fromUserID" binding:"required"` } type GetBlackListResp struct { CommResp From 943f58f2c0c8f99c285f75aef48287aae05788ef Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Wed, 29 Dec 2021 11:19:55 +0800 Subject: [PATCH 299/814] Refactor code --- pkg/common/db/mysql_model/im_mysql_model/group_member_model.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkg/common/db/mysql_model/im_mysql_model/group_member_model.go b/pkg/common/db/mysql_model/im_mysql_model/group_member_model.go index bcc087fb0..70be7a2bc 100644 --- a/pkg/common/db/mysql_model/im_mysql_model/group_member_model.go +++ b/pkg/common/db/mysql_model/im_mysql_model/group_member_model.go @@ -23,7 +23,7 @@ func InsertIntoGroupMember(toInsertInfo GroupMember) error { if err != nil { return err } - toInsertInfo.JoinSource = time.Now() + toInsertInfo.JoinTime = time.Now() if toInsertInfo.RoleLevel == 0 { toInsertInfo.RoleLevel = constant.GroupOrdinaryUsers } From d2ea06ef4a116a4b49b6e8720df768e2de8e87f3 Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Wed, 29 Dec 2021 11:29:51 +0800 Subject: [PATCH 300/814] Refactor code --- pkg/base_info/friend_api_struct.go | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/pkg/base_info/friend_api_struct.go b/pkg/base_info/friend_api_struct.go index 116c378a4..a45e7ccfa 100644 --- a/pkg/base_info/friend_api_struct.go +++ b/pkg/base_info/friend_api_struct.go @@ -109,7 +109,8 @@ type GetFriendListResp struct { } type GetFriendApplyListReq struct { - ParamsCommFriend + OperationID string `json:"operationID" binding:"required"` + FromUserID string `json:"fromUserID" binding:"required"` } type GetFriendApplyListResp struct { CommResp From 6a37072b9a4d5abc7e54e570a0e344f16562ff79 Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Wed, 29 Dec 2021 11:31:51 +0800 Subject: [PATCH 301/814] conversation update --- cmd/open_im_api/main.go | 2 +- internal/api/conversation/conversation.go | 280 ++++++---------- internal/api/manage/management_chat.go | 384 +++++++++++++--------- internal/rpc/user/user.go | 4 +- internal/utils/jwt_token_test.go | 2 +- pkg/base_info/conversation_api_struct.go | 29 ++ pkg/base_info/manage_api_struct.go | 80 ----- pkg/common/token_verify/jwt_token.go | 3 +- pkg/proto/user/user.pb.go | 156 ++++----- pkg/proto/user/user.proto | 2 +- 10 files changed, 447 insertions(+), 495 deletions(-) diff --git a/cmd/open_im_api/main.go b/cmd/open_im_api/main.go index 773b8be7d..aa49378b1 100644 --- a/cmd/open_im_api/main.go +++ b/cmd/open_im_api/main.go @@ -94,7 +94,7 @@ func main() { conversationGroup := r.Group("/conversation") { conversationGroup.POST("/set_receive_message_opt", conversation.SetReceiveMessageOpt) - // conversationGroup.POST("/get_receive_message_opt", conversation.GetReceiveMessageOpt) + conversationGroup.POST("/get_receive_message_opt", conversation.GetReceiveMessageOpt) conversationGroup.POST("/get_all_conversation_message_opt", conversation.GetAllConversationMessageOpt) } diff --git a/internal/api/conversation/conversation.go b/internal/api/conversation/conversation.go index 1d47c2c70..38030279e 100644 --- a/internal/api/conversation/conversation.go +++ b/internal/api/conversation/conversation.go @@ -1,192 +1,106 @@ package conversation -import "github.com/gin-gonic/gin" - -// -//type paramsSetReceiveMessageOpt struct { -// OperationID string `json:"operationID" binding:"required"` -// Option *int32 `json:"option" binding:"required"` -// ConversationIdList []string `json:"conversationIdList" binding:"required"` -//} -// -//type OptResult struct { -// ConversationId string `json:"conversationId" binding:"required"` -// Result int32 `json:"result" binding:"required"` -//} -// -//type SetReceiveMessageOptResp struct { -// ErrCode int32 `json:"errCode"` -// ErrMsg string `json:"errMsg"` -// Data []OptResult `json:"data"` -//} -// -//type paramGetReceiveMessageOpt struct { -// ConversationIdList []string `json:"conversationIdList" binding:"required"` -// OperationID string `json:"operationID" binding:"required"` -//} -// -//type GetReceiveMessageOptResp struct { -// SetReceiveMessageOptResp -//} -// -//type paramGetAllConversationMessageOpt struct { -// OperationID string `json:"operationID" binding:"required"` -//} -// -//type GetAllConversationMessageOptResp struct { -// SetReceiveMessageOptResp -//} -// -////CopyStructFields +import ( + api "Open_IM/pkg/base_info" + "Open_IM/pkg/common/config" + "Open_IM/pkg/common/log" + "Open_IM/pkg/common/token_verify" + "Open_IM/pkg/grpc-etcdv3/getcdv3" + "Open_IM/pkg/proto/user" + rpc "Open_IM/pkg/proto/user" + "Open_IM/pkg/utils" + "context" + "github.com/gin-gonic/gin" + "net/http" + "strings" +) func GetAllConversationMessageOpt(c *gin.Context) { + params := api.GetAllConversationMessageOptReq{} + if err := c.BindJSON(¶ms); err != nil { + c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": "bind json failed " + err.Error()}) + return + } + req := &rpc.GetAllConversationMsgOptReq{} + utils.CopyStructFields(req, ¶ms) + var ok bool + ok, req.OpUserID = token_verify.GetUserIDFromToken(c.Request.Header.Get("token")) + if !ok { + log.NewError(req.OperationID, "GetUserIDFromToken false ", c.Request.Header.Get("token")) + c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": "GetUserIDFromToken failed"}) + return + } + log.NewInfo(params.OperationID, "GetAllConversationMessageOpt args ", req.String()) + etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImUserName) + client := user.NewUserClient(etcdConn) + RpcResp, err := client.GetAllConversationMsgOpt(context.Background(), req) + if err != nil { + log.NewError(params.OperationID, "GetAllConversationMsgOpt rpc failed, ", req, err.Error()) + c.JSON(http.StatusBadRequest, gin.H{"errCode": 500, "errMsg": "GetAllConversationMsgOpt rpc failed, " + err.Error()}) + return + } + resp := api.GetAllConversationMessageOptResp{CommResp: api.CommResp{ErrCode: RpcResp.CommonResp.ErrCode, ErrMsg: RpcResp.CommonResp.ErrMsg}} + resp.ConversationOptResultList = RpcResp.ConversationOptResultList + log.NewInfo(req.OperationID, "GetAllConversationMsgOpt api return: ", resp) + c.JSON(http.StatusOK, resp) +} +func GetReceiveMessageOpt(c *gin.Context) { + params := api.GetReceiveMessageOptReq{} + if err := c.BindJSON(¶ms); err != nil { + c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": "bind json failed " + err.Error()}) + return + } + req := &rpc.GetReceiveMessageOptReq{} + utils.CopyStructFields(req, ¶ms) + var ok bool + ok, req.OpUserID = token_verify.GetUserIDFromToken(c.Request.Header.Get("token")) + if !ok { + log.NewError(req.OperationID, "GetUserIDFromToken false ", c.Request.Header.Get("token")) + c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": "GetUserIDFromToken failed"}) + return + } + log.NewInfo(params.OperationID, "GetReceiveMessageOpt args ", req.String()) + etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImUserName) + client := user.NewUserClient(etcdConn) + RpcResp, err := client.GetReceiveMessageOpt(context.Background(), req) + if err != nil { + log.NewError(params.OperationID, "GetReceiveMessageOpt rpc failed, ", req, err.Error()) + c.JSON(http.StatusBadRequest, gin.H{"errCode": 500, "errMsg": "GetReceiveMessageOpt rpc failed, " + err.Error()}) + return + } + resp := api.GetReceiveMessageOptResp{CommResp: api.CommResp{ErrCode: RpcResp.CommonResp.ErrCode, ErrMsg: RpcResp.CommonResp.ErrMsg}} + resp.ConversationOptResultList = RpcResp.ConversationOptResultList + log.NewInfo(req.OperationID, "GetReceiveMessageOpt api return: ", resp) + c.JSON(http.StatusOK, resp) } -//func GetAllConversationMessageOpt(c *gin.Context) { -// params := paramGetAllConversationMessageOpt{} -// if err := c.BindJSON(¶ms); err != nil { -// log.NewError(params.OperationID, "bind json failed ", err.Error(), c) -// c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": "bind json failed " + err.Error()}) -// return -// } -// -// claims, err := token_verify.ParseToken(c.Request.Header.Get("token")) -// if err != nil { -// log.NewError(params.OperationID, "ParseToken failed, ", err.Error(), c.Request.Header.Get("token")) -// c.JSON(http.StatusBadRequest, gin.H{"errCode": 401, "errMsg": "ParseToken failed, " + err.Error()}) -// return -// } -// -// req := &user.GetAllConversationMsgOptReq{ -// UId: claims.UID, -// OperationID: params.OperationID, -// } -// log.NewInfo(req.OperationID, "GetAllConversationMsgOpt req: ", req) -// etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImUserName) -// client := user.NewUserClient(etcdConn) -// resp, err := client.GetAllConversationMsgOpt(context.Background(), req) -// if err != nil { -// log.NewError(params.OperationID, "GetAllConversationMsgOpt rpc failed, ", req, err.Error()) -// c.JSON(http.StatusBadRequest, gin.H{"errCode": 401, "errMsg": "GetAllConversationMsgOpt rpc failed, " + err.Error()}) -// return -// } -// var ginResp GetAllConversationMessageOptResp -// ginResp.ErrCode = resp.ErrCode -// ginResp.ErrMsg = resp.ErrMsg -// for _, v := range resp.ConversationOptResult { -// var opt OptResult -// err := utils.CopyStructFields(&opt, *v, "ConversationId", "Result") -// if err != nil { -// log.NewError(req.OperationID, "CopyStructFields failed ", err.Error()) -// continue -// } -// ginResp.Data = append(ginResp.Data, opt) -// } -// log.NewInfo(req.OperationID, "GetAllConversationMsgOpt resp: ", ginResp, req) -// c.JSON(http.StatusOK, ginResp) -//} -// -//func GetReceiveMessageOpt(c *gin.Context) { -// params := paramGetReceiveMessageOpt{} -// if err := c.BindJSON(¶ms); err != nil { -// log.NewError(params.OperationID, "bind json failed ", err.Error(), c) -// c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": "bind json failed " + err.Error()}) -// return -// } -// -// claims, err := token_verify.ParseToken(c.Request.Header.Get("token")) -// if err != nil { -// log.NewError(params.OperationID, "ParseToken failed, ", err.Error(), c.Request.Header.Get("token")) -// c.JSON(http.StatusBadRequest, gin.H{"errCode": 401, "errMsg": "ParseToken failed, " + err.Error()}) -// return -// } -// -// req := &user.GetReceiveMessageOptReq{ -// UId: claims.UID, -// ConversationId: params.ConversationIdList, -// OperationID: params.OperationID, -// } -// log.NewInfo(req.OperationID, "GetReceiveMessageOptReq req: ", req) -// etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImUserName) -// client := user.NewUserClient(etcdConn) -// resp, err := client.GetReceiveMessageOpt(context.Background(), req) -// if err != nil { -// log.NewError(params.OperationID, "GetReceiveMessageOpt rpc failed, ", req, err.Error()) -// c.JSON(http.StatusBadRequest, gin.H{"errCode": 401, "errMsg": "GetReceiveMessageOpt rpc failed, " + err.Error()}) -// return -// } -// log.NewInfo(req.OperationID, "GetReceiveMessageOptReq req: ", req, resp) -// var ginResp GetReceiveMessageOptResp -// ginResp.ErrCode = resp.ErrCode -// ginResp.ErrMsg = resp.ErrMsg -// -// for _, v := range resp.ConversationOptResult { -// var opt OptResult -// log.NewInfo("CopyStructFields begin ", v, req.OperationID) -// err := utils.CopyStructFields(&opt, *v, "ConversationId", "Result") -// log.NewInfo("CopyStructFields end ", v, req.OperationID) -// if err != nil { -// log.NewError(req.OperationID, "CopyStructFields failed ", err.Error()) -// continue -// } -// ginResp.Data = append(ginResp.Data, opt) -// } -// log.NewInfo(req.OperationID, "GetReceiveMessageOpt resp: ", ginResp) -// c.JSON(http.StatusOK, ginResp) -//} -// func SetReceiveMessageOpt(c *gin.Context) { - + params := api.SetReceiveMessageOptReq{} + if err := c.BindJSON(¶ms); err != nil { + c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": "bind json failed " + err.Error()}) + return + } + req := &rpc.SetReceiveMessageOptReq{} + utils.CopyStructFields(req, ¶ms) + var ok bool + ok, req.OpUserID = token_verify.GetUserIDFromToken(c.Request.Header.Get("token")) + if !ok { + log.NewError(req.OperationID, "GetUserIDFromToken false ", c.Request.Header.Get("token")) + c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": "GetUserIDFromToken failed"}) + return + } + log.NewInfo(params.OperationID, "SetReceiveMessageOpt args ", req.String()) + etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImUserName) + client := user.NewUserClient(etcdConn) + RpcResp, err := client.SetReceiveMessageOpt(context.Background(), req) + if err != nil { + log.NewError(params.OperationID, "SetReceiveMessageOpt rpc failed, ", req, err.Error()) + c.JSON(http.StatusBadRequest, gin.H{"errCode": 500, "errMsg": "SetReceiveMessageOpt rpc failed, " + err.Error()}) + return + } + resp := api.SetReceiveMessageOptResp{CommResp: api.CommResp{ErrCode: RpcResp.CommonResp.ErrCode, ErrMsg: RpcResp.CommonResp.ErrMsg}} + resp.OptResultList = RpcResp.OptResultList + log.NewInfo(req.OperationID, "SetReceiveMessageOpt api return: ", resp) + c.JSON(http.StatusOK, resp) } - -//func SetReceiveMessageOpt(c *gin.Context) { -// params := paramsSetReceiveMessageOpt{} -// if err := c.BindJSON(¶ms); err != nil { -// log.NewError(params.OperationID, "bind json failed ", err.Error(), c) -// c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": "bind json failed " + err.Error()}) -// return -// } -// -// claims, err := token_verify.ParseToken(c.Request.Header.Get("token")) -// if err != nil { -// log.NewError(params.OperationID, "ParseToken failed, ", err.Error(), c.Request.Header.Get("token")) -// c.JSON(http.StatusBadRequest, gin.H{"errCode": 401, "errMsg": "ParseToken failed, " + err.Error()}) -// return -// } -// -// req := &user.SetReceiveMessageOptReq{ -// UId: claims.UID, -// Opt: *params.Option, -// ConversationId: params.ConversationIdList, -// OperationID: params.OperationID, -// } -// log.NewInfo(req.OperationID, "SetReceiveMessageOpt req: ", req) -// etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImUserName) -// client := user.NewUserClient(etcdConn) -// resp, err := client.SetReceiveMessageOpt(context.Background(), req) -// if err != nil { -// log.NewError(params.OperationID, "SetReceiveMessageOpt rpc failed, ", req, err.Error()) -// c.JSON(http.StatusBadRequest, gin.H{"errCode": 401, "errMsg": "SetReceiveMessageOpt rpc failed, " + err.Error()}) -// return -// } -// log.NewInfo(req.OperationID, "SetReceiveMessageOpt req: ", req, resp) -// ginResp := SetReceiveMessageOptResp{ -// ErrCode: resp.ErrCode, -// ErrMsg: resp.ErrMsg, -// } -// -// for _, v := range resp.OptResult { -// var opt OptResult -// log.NewDebug("CopyStructFields begin ", v, req.OperationID) -// err := utils.CopyStructFields(&opt, *v, "ConversationId", "Result") -// log.NewDebug("CopyStructFields end ", v, req.OperationID) -// if err != nil { -// log.NewError(req.OperationID, "CopyStructFields failed ", err.Error()) -// continue -// } -// ginResp.Data = append(ginResp.Data, opt) -// } -// log.NewInfo(req.OperationID, "SetReceiveMessageOpt resp: ", ginResp) -// c.JSON(http.StatusOK, ginResp) -//} diff --git a/internal/api/manage/management_chat.go b/internal/api/manage/management_chat.go index 1bb2a9961..f547b9b92 100644 --- a/internal/api/manage/management_chat.go +++ b/internal/api/manage/management_chat.go @@ -6,166 +6,254 @@ */ package manage -import "github.com/gin-gonic/gin" +import ( + "Open_IM/pkg/common/config" + "Open_IM/pkg/common/constant" + "Open_IM/pkg/common/log" + "Open_IM/pkg/common/token_verify" + "Open_IM/pkg/grpc-etcdv3/getcdv3" + pbChat "Open_IM/pkg/proto/chat" + open_im_sdk "Open_IM/pkg/proto/sdk_ws" + "Open_IM/pkg/utils" + "context" + "github.com/gin-gonic/gin" + "github.com/go-playground/validator/v10" + "github.com/mitchellh/mapstructure" + "net/http" + "strings" +) + +var validate *validator.Validate + +func newUserSendMsgReq(params *ManagementSendMsgReq) *pbChat.SendMsgReq { + var newContent string + switch params.ContentType { + case constant.Text: + newContent = params.Content["text"].(string) + case constant.Picture: + fallthrough + case constant.Custom: + fallthrough + case constant.Voice: + fallthrough + case constant.File: + newContent = utils.StructToJsonString(params.Content) + default: + } + options := make(map[string]bool, 2) + if params.IsOnlineOnly { + utils.SetSwitchFromOptions(options, constant.IsOfflinePush, false) + utils.SetSwitchFromOptions(options, constant.IsHistory, false) + utils.SetSwitchFromOptions(options, constant.IsPersistent, false) + } + pbData := pbChat.SendMsgReq{ + OperationID: params.OperationID, + MsgData: &open_im_sdk.MsgData{ + SendID: params.SendID, + RecvID: params.RecvID, + GroupID: params.GroupID, + ClientMsgID: utils.GetMsgID(params.SendID), + SenderPlatformID: params.SenderPlatformID, + SenderNickname: params.SenderNickname, + SenderFaceURL: params.SenderFaceURL, + SessionType: params.SessionType, + MsgFrom: constant.SysMsgType, + ContentType: params.ContentType, + Content: []byte(newContent), + ForceList: params.ForceList, + CreateTime: utils.GetCurrentTimestampByNano(), + Options: options, + OfflinePushInfo: params.OfflinePushInfo, + }, + } + return &pbData +} +func init() { + validate = validator.New() +} -// -//var validate *validator.Validate -// -// -//func newUserSendMsgReq(params *paramsManagementSendMsg) *pbChat.SendMsgReq { -// var newContent string -// switch params.ContentType { -// case constant.Text: -// newContent = params.Content["text"].(string) -// case constant.Picture: -// fallthrough -// case constant.Custom: -// fallthrough -// case constant.Voice: -// fallthrough -// case constant.File: -// newContent = utils.StructToJsonString(params.Content) -// default: -// } -// options := make(map[string]bool, 2) -// if params.IsOnlineOnly { -// utils.SetSwitchFromOptions(options, constant.IsOfflinePush, false) -// utils.SetSwitchFromOptions(options, constant.IsHistory, false) -// utils.SetSwitchFromOptions(options, constant.IsPersistent, false) -// } -// pbData := pbChat.SendMsgReq{ -// OperationID: params.OperationID, -// MsgData: &open_im_sdk.MsgData{ -// SendID: params.SendID, -// RecvID: params.RecvID, -// GroupID: params.GroupID, -// ClientMsgID: utils.GetMsgID(params.SendID), -// SenderPlatformID: params.SenderPlatformID, -// SenderNickName: params.SenderNickName, -// SenderFaceURL: params.SenderFaceURL, -// SessionType: params.SessionType, -// MsgFrom: constant.SysMsgType, -// ContentType: params.ContentType, -// Content: []byte(newContent), -// ForceList: params.ForceList, -// CreateTime: utils.GetCurrentTimestampByNano(), -// Options: options, -// OfflinePushInfo: params.OfflinePushInfo, -// }, -// } -// return &pbData -//} -//func init() { -// validate = validator.New() -//} func ManagementSendMsg(c *gin.Context) { + var data interface{} + params := ManagementSendMsgReq{} + if err := c.BindJSON(¶ms); err != nil { + c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": err.Error()}) + log.ErrorByKv("json unmarshal err", c.PostForm("operationID"), "err", err.Error(), "content", c.PostForm("content")) + return + } + switch params.ContentType { + case constant.Text: + data = TextElem{} + case constant.Picture: + data = PictureElem{} + case constant.Voice: + data = SoundElem{} + case constant.Video: + data = VideoElem{} + case constant.File: + data = FileElem{} + //case constant.AtText: + // data = AtElem{} + //case constant.Merger: + // data = + //case constant.Card: + //case constant.Location: + case constant.Custom: + data = CustomElem{} + //case constant.Revoke: + //case constant.HasReadReceipt: + //case constant.Typing: + //case constant.Quote: + default: + c.JSON(http.StatusBadRequest, gin.H{"errCode": 404, "errMsg": "contentType err"}) + log.ErrorByKv("contentType err", c.PostForm("operationID"), "content", c.PostForm("content")) + return + } + if err := mapstructure.WeakDecode(params.Content, &data); err != nil { + c.JSON(http.StatusBadRequest, gin.H{"errCode": 401, "errMsg": err.Error()}) + log.ErrorByKv("content to Data struct err", "", "err", err.Error()) + return + } else if err := validate.Struct(data); err != nil { + c.JSON(http.StatusBadRequest, gin.H{"errCode": 403, "errMsg": err.Error()}) + log.ErrorByKv("data args validate err", "", "err", err.Error()) + return + } + + token := c.Request.Header.Get("token") + claims, err := token_verify.ParseToken(token) + if err != nil { + log.NewError(params.OperationID, "parse token failed", err.Error()) + c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": "parse token failed", "sendTime": 0, "MsgID": ""}) + } + if !utils.IsContain(claims.UID, config.Config.Manager.AppManagerUid) { + c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": "not authorized", "sendTime": 0, "MsgID": ""}) + return + + } + switch params.SessionType { + case constant.SingleChatType: + if len(params.RecvID) == 0 { + log.NewError(params.OperationID, "recvID is a null string") + c.JSON(http.StatusBadRequest, gin.H{"errCode": 405, "errMsg": "recvID is a null string", "sendTime": 0, "MsgID": ""}) + } + case constant.GroupChatType: + if len(params.GroupID) == 0 { + log.NewError(params.OperationID, "groupID is a null string") + c.JSON(http.StatusBadRequest, gin.H{"errCode": 405, "errMsg": "groupID is a null string", "sendTime": 0, "MsgID": ""}) + } + + } + log.InfoByKv("Ws call success to ManagementSendMsgReq", params.OperationID, "Parameters", params) + + pbData := newUserSendMsgReq(¶ms) + log.Info("", "", "api ManagementSendMsg call start..., [data: %s]", pbData.String()) + + etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImOfflineMessageName) + client := pbChat.NewChatClient(etcdConn) + + log.Info("", "", "api ManagementSendMsg call, api call rpc...") + + reply, err := client.SendMsg(context.Background(), pbData) + if err != nil { + log.NewError(params.OperationID, "call delete UserSendMsg rpc server failed", err.Error()) + c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": "call UserSendMsg rpc server failed"}) + return + } + log.Info("", "", "api ManagementSendMsg call end..., [data: %s] [reply: %s]", pbData.String(), reply.String()) + + c.JSON(http.StatusOK, gin.H{ + "errCode": reply.ErrCode, + "errMsg": reply.ErrMsg, + "sendTime": reply.SendTime, + "msgID": reply.ClientMsgID, + }) } -//func ManagementSendMsg(c *gin.Context) { -// var data interface{} -// params := paramsManagementSendMsg{} -// if err := c.BindJSON(¶ms); err != nil { -// c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": err.Error()}) -// log.ErrorByKv("json unmarshal err", c.PostForm("operationID"), "err", err.Error(), "content", c.PostForm("content")) -// return -// } -// switch params.ContentType { -// case constant.Text: -// data = TextElem{} -// case constant.Picture: -// data = PictureElem{} -// case constant.Voice: -// data = SoundElem{} -// case constant.Video: -// data = VideoElem{} -// case constant.File: -// data = FileElem{} -// //case constant.AtText: -// // data = AtElem{} -// //case constant.Merger: -// // data = -// //case constant.Card: -// //case constant.Location: -// case constant.Custom: -// data = CustomElem{} -// //case constant.Revoke: -// //case constant.HasReadReceipt: -// //case constant.Typing: -// //case constant.Quote: -// default: -// c.JSON(http.StatusBadRequest, gin.H{"errCode": 404, "errMsg": "contentType err"}) -// log.ErrorByKv("contentType err", c.PostForm("operationID"), "content", c.PostForm("content")) -// return -// } -// if err := mapstructure.WeakDecode(params.Content, &data); err != nil { -// c.JSON(http.StatusBadRequest, gin.H{"errCode": 401, "errMsg": err.Error()}) -// log.ErrorByKv("content to Data struct err", "", "err", err.Error()) -// return -// } else if err := validate.Struct(data); err != nil { -// c.JSON(http.StatusBadRequest, gin.H{"errCode": 403, "errMsg": err.Error()}) -// log.ErrorByKv("data args validate err", "", "err", err.Error()) -// return -// } -// -// token := c.Request.Header.Get("token") -// claims, err := token_verify.ParseToken(token) -// if err != nil { -// log.NewError(params.OperationID, "parse token failed", err.Error()) -// c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": "parse token failed", "sendTime": 0, "MsgID": ""}) -// } -// if !utils.IsContain(claims.UID, config.Config.Manager.AppManagerUid) { -// c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": "not authorized", "sendTime": 0, "MsgID": ""}) -// return -// -// } -// switch params.SessionType { -// case constant.SingleChatType: -// if len(params.RecvID) == 0 { -// log.NewError(params.OperationID, "recvID is a null string") -// c.JSON(http.StatusBadRequest, gin.H{"errCode": 405, "errMsg": "recvID is a null string", "sendTime": 0, "MsgID": ""}) -// } -// case constant.GroupChatType: -// if len(params.GroupID) == 0 { -// log.NewError(params.OperationID, "groupID is a null string") -// c.JSON(http.StatusBadRequest, gin.H{"errCode": 405, "errMsg": "groupID is a null string", "sendTime": 0, "MsgID": ""}) -// } -// -// } -// log.InfoByKv("Ws call success to ManagementSendMsgReq", params.OperationID, "Parameters", params) -// -// pbData := newUserSendMsgReq(¶ms) -// log.Info("", "", "api ManagementSendMsg call start..., [data: %s]", pbData.String()) // -// etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImOfflineMessageName) -// client := pbChat.NewChatClient(etcdConn) -// -// log.Info("", "", "api ManagementSendMsg call, api call rpc...") -// -// reply, err := client.SendMsg(context.Background(), pbData) -// if err != nil { -// log.NewError(params.OperationID, "call delete UserSendMsg rpc server failed", err.Error()) -// c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": "call UserSendMsg rpc server failed"}) -// return -// } -// log.Info("", "", "api ManagementSendMsg call end..., [data: %s] [reply: %s]", pbData.String(), reply.String()) -// -// c.JSON(http.StatusOK, gin.H{ -// "errCode": reply.ErrCode, -// "errMsg": reply.ErrMsg, -// "sendTime": reply.SendTime, -// "msgID": reply.ClientMsgID, -// }) -// -//} - //type MergeElem struct { // Title string `json:"title"` // AbstractList []string `json:"abstractList"` // MultiMessage []*MsgStruct `json:"multiMessage"` //} - +// //type QuoteElem struct { // Text string `json:"text"` // QuoteMessage *MsgStruct `json:"quoteMessage"` //} +type ManagementSendMsgReq struct { + OperationID string `json:"operationID" binding:"required"` + SendID string `json:"sendID" binding:"required"` + RecvID string `json:"recvID" ` + GroupID string `json:"groupID" ` + SenderNickname string `json:"senderNickname" ` + SenderFaceURL string `json:"senderFaceURL" ` + SenderPlatformID int32 `json:"senderPlatformID"` + ForceList []string `json:"forceList" ` + Content map[string]interface{} `json:"content" binding:"required"` + ContentType int32 `json:"contentType" binding:"required"` + SessionType int32 `json:"sessionType" binding:"required"` + IsOnlineOnly bool `json:"isOnlineOnly"` + OfflinePushInfo *open_im_sdk.OfflinePushInfo `json:"offlinePushInfo"` +} + +type PictureBaseInfo struct { + UUID string `mapstructure:"uuid"` + Type string `mapstructure:"type" validate:"required"` + Size int64 `mapstructure:"size" validate:"required"` + Width int32 `mapstructure:"width" validate:"required"` + Height int32 `mapstructure:"height" validate:"required"` + Url string `mapstructure:"url" validate:"required"` +} + +type PictureElem struct { + SourcePath string `mapstructure:"sourcePath"` + SourcePicture PictureBaseInfo `mapstructure:"sourcePicture" validate:"required"` + BigPicture PictureBaseInfo `mapstructure:"bigPicture" ` + SnapshotPicture PictureBaseInfo `mapstructure:"snapshotPicture"` +} +type SoundElem struct { + UUID string `mapstructure:"uuid"` + SoundPath string `mapstructure:"soundPath"` + SourceURL string `mapstructure:"sourceUrl"` + DataSize int64 `mapstructure:"dataSize"` + Duration int64 `mapstructure:"duration"` +} +type VideoElem struct { + VideoPath string `mapstructure:"videoPath"` + VideoUUID string `mapstructure:"videoUUID"` + VideoURL string `mapstructure:"videoUrl"` + VideoType string `mapstructure:"videoType"` + VideoSize int64 `mapstructure:"videoSize"` + Duration int64 `mapstructure:"duration"` + SnapshotPath string `mapstructure:"snapshotPath"` + SnapshotUUID string `mapstructure:"snapshotUUID"` + SnapshotSize int64 `mapstructure:"snapshotSize"` + SnapshotURL string `mapstructure:"snapshotUrl"` + SnapshotWidth int32 `mapstructure:"snapshotWidth"` + SnapshotHeight int32 `mapstructure:"snapshotHeight"` +} +type FileElem struct { + FilePath string `mapstructure:"filePath"` + UUID string `mapstructure:"uuid"` + SourceURL string `mapstructure:"sourceUrl"` + FileName string `mapstructure:"fileName"` + FileSize int64 `mapstructure:"fileSize"` +} +type AtElem struct { + Text string `mapstructure:"text"` + AtUserList []string `mapstructure:"atUserList"` + IsAtSelf bool `mapstructure:"isAtSelf"` +} +type LocationElem struct { + Description string `mapstructure:"description"` + Longitude float64 `mapstructure:"longitude"` + Latitude float64 `mapstructure:"latitude"` +} +type CustomElem struct { + Data string `mapstructure:"data" validate:"required"` + Description string `mapstructure:"description"` + Extension string `mapstructure:"extension"` +} +type TextElem struct { + Text string `mapstructure:"text" validate:"required"` +} diff --git a/internal/rpc/user/user.go b/internal/rpc/user/user.go index ad480d6db..783f6b1f3 100644 --- a/internal/rpc/user/user.go +++ b/internal/rpc/user/user.go @@ -112,9 +112,9 @@ func (s *userServer) SetReceiveMessageOpt(ctx context.Context, req *pbUser.SetRe func (s *userServer) GetReceiveMessageOpt(ctx context.Context, req *pbUser.GetReceiveMessageOptReq) (*pbUser.GetReceiveMessageOptResp, error) { log.NewInfo(req.OperationID, "GetReceiveMessageOpt args ", req.String()) - m, err := db.DB.GetMultiConversationMsgOpt(req.FromUserID, req.ConversationId) + m, err := db.DB.GetMultiConversationMsgOpt(req.FromUserID, req.ConversationIdList) if err != nil { - log.NewError(req.OperationID, "GetMultiConversationMsgOpt failed ", err.Error(), req.FromUserID, req.ConversationId) + log.NewError(req.OperationID, "GetMultiConversationMsgOpt failed ", err.Error(), req.FromUserID, req.ConversationIdList) return &pbUser.GetReceiveMessageOptResp{CommonResp: &pbUser.CommonResp{ErrCode: constant.ErrDB.ErrCode, ErrMsg: constant.ErrDB.ErrMsg}}, nil } resp := pbUser.GetReceiveMessageOptResp{CommonResp: &pbUser.CommonResp{}} diff --git a/internal/utils/jwt_token_test.go b/internal/utils/jwt_token_test.go index 2c6550d87..571836d39 100644 --- a/internal/utils/jwt_token_test.go +++ b/internal/utils/jwt_token_test.go @@ -68,7 +68,7 @@ func Test_ParseRedisInterfaceToken(t *testing.T) { config.Config.TokenPolicy.AccessExpire = -80 tokenString, _, _ = token_verify.CreateToken(uid, platform) claims, err = token_verify.ParseRedisInterfaceToken([]uint8(tokenString)) - assert.Equal(t, err, constant.TokenExpired) + assert.Equal(t, err, constant.ExpiredToken) assert.Nil(t, claims) } diff --git a/pkg/base_info/conversation_api_struct.go b/pkg/base_info/conversation_api_struct.go index 7775a2f42..0bbb52a49 100644 --- a/pkg/base_info/conversation_api_struct.go +++ b/pkg/base_info/conversation_api_struct.go @@ -1 +1,30 @@ package base_info + +import "Open_IM/pkg/proto/user" + +type GetAllConversationMessageOptReq struct { + OperationID string `json:"operationID" binding:"required"` + FromUserID string `json:"fromUserID" binding:"required"` +} +type GetAllConversationMessageOptResp struct { + CommResp + ConversationOptResultList []*user.OptResult `json:"data"` +} +type GetReceiveMessageOptReq struct { + ConversationIdList []string `json:"conversationIdList" binding:"required"` + OperationID string `json:"operationID" binding:"required"` + FromUserID string `json:"fromUserID" binding:"required"` +} +type GetReceiveMessageOptResp struct { + CommResp + ConversationOptResultList []*user.OptResult `json:"data"` +} +type SetReceiveMessageOptReq struct { + OperationID string `json:"operationID" binding:"required"` + Opt *int32 `json:"opt" binding:"required"` + ConversationIdList []string `json:"conversationIdList" binding:"required"` +} +type SetReceiveMessageOptResp struct { + CommResp + OptResultList []*user.OptResult `json:"data"` +} diff --git a/pkg/base_info/manage_api_struct.go b/pkg/base_info/manage_api_struct.go index 862706187..070e2c72b 100644 --- a/pkg/base_info/manage_api_struct.go +++ b/pkg/base_info/manage_api_struct.go @@ -2,70 +2,9 @@ package base_info import ( pbRelay "Open_IM/pkg/proto/relay" - open_im_sdk "Open_IM/pkg/proto/sdk_ws" pbUser "Open_IM/pkg/proto/user" ) -type paramsManagementSendMsg struct { - OperationID string `json:"operationID" binding:"required"` - SendID string `json:"sendID" binding:"required"` - RecvID string `json:"recvID" ` - GroupID string `json:"groupID" ` - SenderNickName string `json:"senderNickName" ` - SenderFaceURL string `json:"senderFaceURL" ` - SenderPlatformID int32 `json:"senderPlatformID"` - ForceList []string `json:"forceList" ` - Content map[string]interface{} `json:"content" binding:"required"` - ContentType int32 `json:"contentType" binding:"required"` - SessionType int32 `json:"sessionType" binding:"required"` - IsOnlineOnly bool `json:"isOnlineOnly"` - OfflinePushInfo *open_im_sdk.OfflinePushInfo `json:"offlinePushInfo"` -} - -type PictureBaseInfo struct { - UUID string `mapstructure:"uuid"` - Type string `mapstructure:"type" validate:"required"` - Size int64 `mapstructure:"size" validate:"required"` - Width int32 `mapstructure:"width" validate:"required"` - Height int32 `mapstructure:"height" validate:"required"` - Url string `mapstructure:"url" validate:"required"` -} - -type PictureElem struct { - SourcePath string `mapstructure:"sourcePath"` - SourcePicture PictureBaseInfo `mapstructure:"sourcePicture" validate:"required"` - BigPicture PictureBaseInfo `mapstructure:"bigPicture" ` - SnapshotPicture PictureBaseInfo `mapstructure:"snapshotPicture"` -} -type SoundElem struct { - UUID string `mapstructure:"uuid"` - SoundPath string `mapstructure:"soundPath"` - SourceURL string `mapstructure:"sourceUrl"` - DataSize int64 `mapstructure:"dataSize"` - Duration int64 `mapstructure:"duration"` -} -type VideoElem struct { - VideoPath string `mapstructure:"videoPath"` - VideoUUID string `mapstructure:"videoUUID"` - VideoURL string `mapstructure:"videoUrl"` - VideoType string `mapstructure:"videoType"` - VideoSize int64 `mapstructure:"videoSize"` - Duration int64 `mapstructure:"duration"` - SnapshotPath string `mapstructure:"snapshotPath"` - SnapshotUUID string `mapstructure:"snapshotUUID"` - SnapshotSize int64 `mapstructure:"snapshotSize"` - SnapshotURL string `mapstructure:"snapshotUrl"` - SnapshotWidth int32 `mapstructure:"snapshotWidth"` - SnapshotHeight int32 `mapstructure:"snapshotHeight"` -} -type FileElem struct { - FilePath string `mapstructure:"filePath"` - UUID string `mapstructure:"uuid"` - SourceURL string `mapstructure:"sourceUrl"` - FileName string `mapstructure:"fileName"` - FileSize int64 `mapstructure:"fileSize"` -} - type DeleteUsersReq struct { OperationID string `json:"operationID" binding:"required"` DeleteUidList []string `json:"deleteUidList" binding:"required"` @@ -97,22 +36,3 @@ type AccountCheckResp struct { CommResp ResultList []*pbUser.AccountCheckResp_SingleUserStatus `json:"data"` } - -type AtElem struct { - Text string `mapstructure:"text"` - AtUserList []string `mapstructure:"atUserList"` - IsAtSelf bool `mapstructure:"isAtSelf"` -} -type LocationElem struct { - Description string `mapstructure:"description"` - Longitude float64 `mapstructure:"longitude"` - Latitude float64 `mapstructure:"latitude"` -} -type CustomElem struct { - Data string `mapstructure:"data" validate:"required"` - Description string `mapstructure:"description"` - Extension string `mapstructure:"extension"` -} -type TextElem struct { - Text string `mapstructure:"text" validate:"required"` -} diff --git a/pkg/common/token_verify/jwt_token.go b/pkg/common/token_verify/jwt_token.go index 519ecad63..50aecc8ae 100644 --- a/pkg/common/token_verify/jwt_token.go +++ b/pkg/common/token_verify/jwt_token.go @@ -51,7 +51,8 @@ func CreateToken(userID string, platformID int32) (string, int64, error) { } var deleteTokenKey []string for k, v := range m { - if v != constant.NormalToken { + _, err = GetClaimFromToken(k) + if err != nil || v != constant.NormalToken { deleteTokenKey = append(deleteTokenKey, k) } } diff --git a/pkg/proto/user/user.pb.go b/pkg/proto/user/user.pb.go index e81e474a9..892c0c982 100644 --- a/pkg/proto/user/user.pb.go +++ b/pkg/proto/user/user.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_user_119cb27841530cfa, []int{0} + return fileDescriptor_user_0a10ad809f213986, []int{0} } func (m *CommonResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_CommonResp.Unmarshal(m, b) @@ -83,7 +83,7 @@ func (m *DeleteUsersReq) Reset() { *m = DeleteUsersReq{} } func (m *DeleteUsersReq) String() string { return proto.CompactTextString(m) } func (*DeleteUsersReq) ProtoMessage() {} func (*DeleteUsersReq) Descriptor() ([]byte, []int) { - return fileDescriptor_user_119cb27841530cfa, []int{1} + return fileDescriptor_user_0a10ad809f213986, []int{1} } func (m *DeleteUsersReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_DeleteUsersReq.Unmarshal(m, b) @@ -136,7 +136,7 @@ func (m *DeleteUsersResp) Reset() { *m = DeleteUsersResp{} } func (m *DeleteUsersResp) String() string { return proto.CompactTextString(m) } func (*DeleteUsersResp) ProtoMessage() {} func (*DeleteUsersResp) Descriptor() ([]byte, []int) { - return fileDescriptor_user_119cb27841530cfa, []int{2} + return fileDescriptor_user_0a10ad809f213986, []int{2} } func (m *DeleteUsersResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_DeleteUsersResp.Unmarshal(m, b) @@ -182,7 +182,7 @@ func (m *GetAllUserIDReq) Reset() { *m = GetAllUserIDReq{} } func (m *GetAllUserIDReq) String() string { return proto.CompactTextString(m) } func (*GetAllUserIDReq) ProtoMessage() {} func (*GetAllUserIDReq) Descriptor() ([]byte, []int) { - return fileDescriptor_user_119cb27841530cfa, []int{3} + return fileDescriptor_user_0a10ad809f213986, []int{3} } func (m *GetAllUserIDReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetAllUserIDReq.Unmarshal(m, b) @@ -228,7 +228,7 @@ func (m *GetAllUserIDResp) Reset() { *m = GetAllUserIDResp{} } func (m *GetAllUserIDResp) String() string { return proto.CompactTextString(m) } func (*GetAllUserIDResp) ProtoMessage() {} func (*GetAllUserIDResp) Descriptor() ([]byte, []int) { - return fileDescriptor_user_119cb27841530cfa, []int{4} + return fileDescriptor_user_0a10ad809f213986, []int{4} } func (m *GetAllUserIDResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetAllUserIDResp.Unmarshal(m, b) @@ -275,7 +275,7 @@ func (m *AccountCheckReq) Reset() { *m = AccountCheckReq{} } func (m *AccountCheckReq) String() string { return proto.CompactTextString(m) } func (*AccountCheckReq) ProtoMessage() {} func (*AccountCheckReq) Descriptor() ([]byte, []int) { - return fileDescriptor_user_119cb27841530cfa, []int{5} + return fileDescriptor_user_0a10ad809f213986, []int{5} } func (m *AccountCheckReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_AccountCheckReq.Unmarshal(m, b) @@ -328,7 +328,7 @@ func (m *AccountCheckResp) Reset() { *m = AccountCheckResp{} } func (m *AccountCheckResp) String() string { return proto.CompactTextString(m) } func (*AccountCheckResp) ProtoMessage() {} func (*AccountCheckResp) Descriptor() ([]byte, []int) { - return fileDescriptor_user_119cb27841530cfa, []int{6} + return fileDescriptor_user_0a10ad809f213986, []int{6} } func (m *AccountCheckResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_AccountCheckResp.Unmarshal(m, b) @@ -374,7 +374,7 @@ func (m *AccountCheckResp_SingleUserStatus) Reset() { *m = AccountCheckR func (m *AccountCheckResp_SingleUserStatus) String() string { return proto.CompactTextString(m) } func (*AccountCheckResp_SingleUserStatus) ProtoMessage() {} func (*AccountCheckResp_SingleUserStatus) Descriptor() ([]byte, []int) { - return fileDescriptor_user_119cb27841530cfa, []int{6, 0} + return fileDescriptor_user_0a10ad809f213986, []int{6, 0} } func (m *AccountCheckResp_SingleUserStatus) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_AccountCheckResp_SingleUserStatus.Unmarshal(m, b) @@ -421,7 +421,7 @@ 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_user_119cb27841530cfa, []int{7} + return fileDescriptor_user_0a10ad809f213986, []int{7} } func (m *GetUserInfoReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetUserInfoReq.Unmarshal(m, b) @@ -474,7 +474,7 @@ 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_user_119cb27841530cfa, []int{8} + return fileDescriptor_user_0a10ad809f213986, []int{8} } func (m *GetUserInfoResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetUserInfoResp.Unmarshal(m, b) @@ -521,7 +521,7 @@ 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_user_119cb27841530cfa, []int{9} + return fileDescriptor_user_0a10ad809f213986, []int{9} } func (m *UpdateUserInfoReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_UpdateUserInfoReq.Unmarshal(m, b) @@ -573,7 +573,7 @@ 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_user_119cb27841530cfa, []int{10} + return fileDescriptor_user_0a10ad809f213986, []int{10} } func (m *UpdateUserInfoResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_UpdateUserInfoResp.Unmarshal(m, b) @@ -615,7 +615,7 @@ func (m *SetReceiveMessageOptReq) Reset() { *m = SetReceiveMessageOptReq func (m *SetReceiveMessageOptReq) String() string { return proto.CompactTextString(m) } func (*SetReceiveMessageOptReq) ProtoMessage() {} func (*SetReceiveMessageOptReq) Descriptor() ([]byte, []int) { - return fileDescriptor_user_119cb27841530cfa, []int{11} + return fileDescriptor_user_0a10ad809f213986, []int{11} } func (m *SetReceiveMessageOptReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SetReceiveMessageOptReq.Unmarshal(m, b) @@ -682,7 +682,7 @@ func (m *OptResult) Reset() { *m = OptResult{} } func (m *OptResult) String() string { return proto.CompactTextString(m) } func (*OptResult) ProtoMessage() {} func (*OptResult) Descriptor() ([]byte, []int) { - return fileDescriptor_user_119cb27841530cfa, []int{12} + return fileDescriptor_user_0a10ad809f213986, []int{12} } func (m *OptResult) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_OptResult.Unmarshal(m, b) @@ -728,7 +728,7 @@ func (m *SetReceiveMessageOptResp) Reset() { *m = SetReceiveMessageOptRe func (m *SetReceiveMessageOptResp) String() string { return proto.CompactTextString(m) } func (*SetReceiveMessageOptResp) ProtoMessage() {} func (*SetReceiveMessageOptResp) Descriptor() ([]byte, []int) { - return fileDescriptor_user_119cb27841530cfa, []int{13} + return fileDescriptor_user_0a10ad809f213986, []int{13} } func (m *SetReceiveMessageOptResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SetReceiveMessageOptResp.Unmarshal(m, b) @@ -764,7 +764,7 @@ func (m *SetReceiveMessageOptResp) GetOptResultList() []*OptResult { type GetReceiveMessageOptReq struct { FromUserID string `protobuf:"bytes,1,opt,name=FromUserID" json:"FromUserID,omitempty"` - ConversationId []string `protobuf:"bytes,2,rep,name=conversationId" json:"conversationId,omitempty"` + ConversationIdList []string `protobuf:"bytes,2,rep,name=conversationIdList" json:"conversationIdList,omitempty"` OperationID string `protobuf:"bytes,3,opt,name=operationID" json:"operationID,omitempty"` OpUserID string `protobuf:"bytes,4,opt,name=OpUserID" json:"OpUserID,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` @@ -776,7 +776,7 @@ func (m *GetReceiveMessageOptReq) Reset() { *m = GetReceiveMessageOptReq func (m *GetReceiveMessageOptReq) String() string { return proto.CompactTextString(m) } func (*GetReceiveMessageOptReq) ProtoMessage() {} func (*GetReceiveMessageOptReq) Descriptor() ([]byte, []int) { - return fileDescriptor_user_119cb27841530cfa, []int{14} + return fileDescriptor_user_0a10ad809f213986, []int{14} } func (m *GetReceiveMessageOptReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetReceiveMessageOptReq.Unmarshal(m, b) @@ -803,9 +803,9 @@ func (m *GetReceiveMessageOptReq) GetFromUserID() string { return "" } -func (m *GetReceiveMessageOptReq) GetConversationId() []string { +func (m *GetReceiveMessageOptReq) GetConversationIdList() []string { if m != nil { - return m.ConversationId + return m.ConversationIdList } return nil } @@ -836,7 +836,7 @@ func (m *GetReceiveMessageOptResp) Reset() { *m = GetReceiveMessageOptRe func (m *GetReceiveMessageOptResp) String() string { return proto.CompactTextString(m) } func (*GetReceiveMessageOptResp) ProtoMessage() {} func (*GetReceiveMessageOptResp) Descriptor() ([]byte, []int) { - return fileDescriptor_user_119cb27841530cfa, []int{15} + return fileDescriptor_user_0a10ad809f213986, []int{15} } func (m *GetReceiveMessageOptResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetReceiveMessageOptResp.Unmarshal(m, b) @@ -883,7 +883,7 @@ func (m *GetAllConversationMsgOptReq) Reset() { *m = GetAllConversationM func (m *GetAllConversationMsgOptReq) String() string { return proto.CompactTextString(m) } func (*GetAllConversationMsgOptReq) ProtoMessage() {} func (*GetAllConversationMsgOptReq) Descriptor() ([]byte, []int) { - return fileDescriptor_user_119cb27841530cfa, []int{16} + return fileDescriptor_user_0a10ad809f213986, []int{16} } func (m *GetAllConversationMsgOptReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetAllConversationMsgOptReq.Unmarshal(m, b) @@ -936,7 +936,7 @@ func (m *GetAllConversationMsgOptResp) Reset() { *m = GetAllConversation func (m *GetAllConversationMsgOptResp) String() string { return proto.CompactTextString(m) } func (*GetAllConversationMsgOptResp) ProtoMessage() {} func (*GetAllConversationMsgOptResp) Descriptor() ([]byte, []int) { - return fileDescriptor_user_119cb27841530cfa, []int{17} + return fileDescriptor_user_0a10ad809f213986, []int{17} } func (m *GetAllConversationMsgOptResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetAllConversationMsgOptResp.Unmarshal(m, b) @@ -1295,60 +1295,60 @@ var _User_serviceDesc = grpc.ServiceDesc{ Metadata: "user/user.proto", } -func init() { proto.RegisterFile("user/user.proto", fileDescriptor_user_119cb27841530cfa) } - -var fileDescriptor_user_119cb27841530cfa = []byte{ - // 825 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x56, 0xdf, 0x6e, 0xd3, 0x3e, - 0x14, 0x56, 0xd6, 0x6e, 0xbf, 0xf5, 0x74, 0x6b, 0xfb, 0xb3, 0xf6, 0x27, 0x04, 0x98, 0x3a, 0x0b, - 0x41, 0xb5, 0x8b, 0x14, 0x86, 0xb8, 0x00, 0x04, 0xd2, 0xe8, 0xb4, 0x68, 0x82, 0xaa, 0x28, 0xd3, - 0x6e, 0xb8, 0x99, 0x42, 0x63, 0x4a, 0xd5, 0x36, 0x0e, 0x71, 0xba, 0x09, 0x90, 0xb8, 0x81, 0xb7, - 0xe0, 0x82, 0xe7, 0xe0, 0x35, 0x78, 0x01, 0x5e, 0x05, 0xc5, 0x4e, 0x5a, 0x3b, 0x49, 0x5b, 0x54, - 0xb8, 0xe0, 0xa6, 0xaa, 0x3f, 0x1f, 0x1f, 0x7f, 0xdf, 0xe7, 0x63, 0xe7, 0x40, 0x75, 0xcc, 0x48, - 0xd0, 0x8c, 0x7e, 0x4c, 0x3f, 0xa0, 0x21, 0x45, 0xc5, 0xe8, 0xbf, 0xb1, 0xdf, 0xf1, 0x89, 0x77, - 0x71, 0xda, 0x6e, 0xfa, 0x83, 0x5e, 0x93, 0x4f, 0x34, 0x99, 0x3b, 0xb8, 0xb8, 0x62, 0xcd, 0x2b, - 0x26, 0x02, 0xf1, 0x53, 0x80, 0x16, 0x1d, 0x8d, 0xa8, 0x67, 0x13, 0xe6, 0x23, 0x1d, 0xfe, 0x23, - 0x41, 0xd0, 0xa2, 0x2e, 0xd1, 0xb5, 0xba, 0xd6, 0x58, 0xb5, 0x93, 0x21, 0xda, 0x81, 0x35, 0x12, - 0x04, 0x6d, 0xd6, 0xd3, 0x57, 0xea, 0x5a, 0xa3, 0x64, 0xc7, 0x23, 0xfc, 0x01, 0x2a, 0xc7, 0x64, - 0x48, 0x42, 0x72, 0xce, 0x48, 0xc0, 0x6c, 0xf2, 0x0e, 0x1d, 0x40, 0x6d, 0x8a, 0x9c, 0x1e, 0xbf, - 0xe8, 0xb3, 0x50, 0x5f, 0xa9, 0x17, 0x1a, 0x25, 0x3b, 0x83, 0x23, 0x03, 0xd6, 0x3b, 0xbe, 0x18, - 0xeb, 0x05, 0x9e, 0x77, 0x32, 0x46, 0x75, 0x28, 0x77, 0x7c, 0x12, 0x38, 0x61, 0x9f, 0x7a, 0xa7, - 0xc7, 0x7a, 0x91, 0x4f, 0xcb, 0x10, 0xa6, 0x50, 0x55, 0xf6, 0x66, 0x3e, 0xba, 0x2b, 0xcb, 0xe1, - 0x1a, 0xca, 0x87, 0x35, 0x93, 0x1b, 0x33, 0xc5, 0x6d, 0x59, 0xf2, 0x01, 0xd4, 0x4e, 0x9c, 0xfe, - 0x90, 0xb8, 0x59, 0xba, 0x69, 0x1c, 0x77, 0xa0, 0x6a, 0x91, 0xf0, 0x68, 0x38, 0x14, 0x58, 0xa4, - 0xd6, 0x80, 0x75, 0x9a, 0x28, 0xd0, 0x84, 0x02, 0x2a, 0x29, 0xa0, 0x92, 0x02, 0x61, 0x9c, 0x0c, - 0x61, 0x17, 0x6a, 0x6a, 0xc2, 0xa5, 0x24, 0xec, 0x01, 0x64, 0xc8, 0x4b, 0x08, 0x7e, 0x0f, 0xd5, - 0xa3, 0x6e, 0x97, 0x8e, 0xbd, 0xb0, 0xf5, 0x96, 0x74, 0x07, 0x11, 0xed, 0x06, 0x54, 0xf9, 0x7f, - 0x69, 0x9d, 0xc6, 0xd7, 0xa5, 0x61, 0xe5, 0x88, 0x56, 0xe6, 0x1f, 0x51, 0x21, 0x7b, 0x44, 0x3f, - 0x35, 0xa8, 0xa9, 0x7b, 0x0b, 0x85, 0xdd, 0xdf, 0x50, 0x38, 0x8d, 0x41, 0x16, 0x80, 0x4d, 0xd8, - 0x78, 0x18, 0x4e, 0x14, 0x96, 0x0f, 0xef, 0x88, 0x15, 0xe9, 0xec, 0xe6, 0x59, 0xdf, 0xeb, 0x0d, - 0x79, 0x49, 0x9c, 0x85, 0x4e, 0x38, 0x66, 0xb6, 0xb4, 0xd4, 0x78, 0x09, 0xb5, 0xf4, 0x7c, 0x54, - 0xda, 0x63, 0xf9, 0x00, 0xe3, 0x11, 0xba, 0x05, 0x9b, 0x8e, 0x48, 0x2e, 0x02, 0x63, 0xf9, 0x2a, - 0x88, 0x3d, 0xa8, 0x58, 0x24, 0xe4, 0x86, 0x78, 0x6f, 0x68, 0xe4, 0xed, 0x1e, 0xc0, 0x38, 0x6d, - 0xab, 0x84, 0xfc, 0xa1, 0xa3, 0x9f, 0x78, 0x0d, 0x4e, 0xf7, 0x5b, 0xca, 0xcf, 0x87, 0xb0, 0x91, - 0x64, 0xe0, 0x24, 0x0b, 0xdc, 0xd1, 0x6d, 0x93, 0x46, 0xef, 0x45, 0x7f, 0x74, 0xc1, 0xdc, 0x81, - 0x39, 0xd9, 0x42, 0x09, 0xc5, 0x5f, 0x34, 0xf8, 0xff, 0xdc, 0x77, 0x9d, 0xf8, 0x1e, 0xc7, 0x9a, - 0xef, 0xc1, 0x7a, 0x32, 0x8c, 0x09, 0xcc, 0x48, 0x36, 0x09, 0x5b, 0x64, 0x03, 0xcd, 0xda, 0x20, - 0xdf, 0x9c, 0x13, 0x40, 0x69, 0x16, 0xcb, 0x38, 0x81, 0xbf, 0x6b, 0xb0, 0x7b, 0x46, 0x42, 0x9b, - 0x74, 0x49, 0xff, 0x92, 0xb4, 0x09, 0x63, 0x4e, 0x8f, 0x74, 0xfc, 0x30, 0x3e, 0xc8, 0x93, 0x80, - 0x8e, 0x94, 0xdb, 0x2d, 0x21, 0xa8, 0x06, 0x05, 0xea, 0x87, 0x9c, 0xfc, 0xaa, 0x1d, 0xfd, 0x45, - 0x26, 0xa0, 0x2e, 0xf5, 0x2e, 0x49, 0xc0, 0x62, 0x9e, 0x13, 0x77, 0x4b, 0x76, 0xce, 0x4c, 0x5a, - 0x67, 0x31, 0xa3, 0x53, 0x71, 0x69, 0x55, 0x75, 0x09, 0x3f, 0x87, 0x12, 0x67, 0x1a, 0x55, 0x37, - 0xba, 0x0d, 0x15, 0x65, 0x03, 0x37, 0x26, 0x9c, 0x42, 0xa3, 0x6a, 0x0f, 0xf8, 0x8a, 0x98, 0x77, - 0x3c, 0xc2, 0x9f, 0x35, 0xd0, 0xf3, 0x8d, 0x58, 0xaa, 0xc2, 0x1e, 0xc0, 0x26, 0x4d, 0xb8, 0x49, - 0x97, 0xb6, 0x2a, 0x16, 0x4d, 0x68, 0xdb, 0x6a, 0x14, 0xfe, 0xa6, 0xc1, 0xae, 0xb5, 0xe4, 0x71, - 0x64, 0x1d, 0x10, 0x4f, 0x61, 0xda, 0x81, 0x85, 0xc5, 0xa5, 0x98, 0x5e, 0x4c, 0x99, 0xfe, 0x55, - 0x03, 0xdd, 0xfa, 0x7b, 0x3e, 0xb5, 0xe1, 0x9a, 0x4c, 0xaf, 0xa3, 0x78, 0x56, 0xc8, 0xf7, 0x6c, - 0xf6, 0x0a, 0xfc, 0x11, 0xae, 0x8b, 0x0f, 0x4a, 0x4b, 0x0a, 0x69, 0xb3, 0x5e, 0x8e, 0x85, 0x6e, - 0xc6, 0x42, 0x77, 0xf1, 0x17, 0x6b, 0xde, 0x17, 0x3b, 0x3a, 0xbc, 0x1b, 0xb3, 0x77, 0xff, 0x07, - 0xec, 0x39, 0xfc, 0x51, 0x04, 0xde, 0x19, 0xa1, 0x47, 0x50, 0x96, 0x5e, 0x51, 0xb4, 0x25, 0x72, - 0xa8, 0x0f, 0xb9, 0xb1, 0x9d, 0x83, 0x32, 0x1f, 0xb5, 0xa0, 0xa2, 0x3e, 0x3d, 0x68, 0x57, 0x04, - 0x66, 0x9e, 0x45, 0x43, 0xcf, 0x9f, 0x60, 0x7e, 0x44, 0x40, 0xea, 0x5d, 0x12, 0x02, 0x6a, 0x2b, - 0x95, 0x10, 0x48, 0x37, 0x39, 0x4f, 0x60, 0x43, 0xee, 0x1a, 0xd0, 0x94, 0xa7, 0xdc, 0x9a, 0x18, - 0x3b, 0x79, 0x30, 0xf3, 0xd1, 0x39, 0x6c, 0xe5, 0x5d, 0x74, 0x74, 0x53, 0xc4, 0xcf, 0x78, 0x0d, - 0x8d, 0xbd, 0x79, 0xd3, 0x22, 0xad, 0x35, 0x27, 0xad, 0x35, 0x3f, 0xed, 0xcc, 0x2b, 0xe5, 0xf0, - 0xeb, 0x96, 0x5b, 0x53, 0x68, 0x5f, 0x56, 0x98, 0x5b, 0xf1, 0x06, 0x5e, 0x14, 0x22, 0xfc, 0x94, - 0xbb, 0x88, 0xc4, 0xcf, 0x54, 0xcf, 0x94, 0xf8, 0x99, 0x6e, 0x38, 0x9e, 0x6d, 0xbe, 0x2a, 0x9b, - 0xbc, 0xf7, 0x7e, 0x1c, 0xfd, 0xbc, 0x5e, 0xe3, 0x8d, 0xf5, 0xfd, 0x5f, 0x01, 0x00, 0x00, 0xff, - 0xff, 0x24, 0xc8, 0xbf, 0xca, 0x94, 0x0b, 0x00, 0x00, +func init() { proto.RegisterFile("user/user.proto", fileDescriptor_user_0a10ad809f213986) } + +var fileDescriptor_user_0a10ad809f213986 = []byte{ + // 829 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x56, 0xcd, 0x6e, 0xd3, 0x4a, + 0x14, 0x96, 0x9b, 0xb4, 0xb7, 0x39, 0x69, 0x93, 0xdc, 0x51, 0x7f, 0x7c, 0x7d, 0xa1, 0x4a, 0x47, + 0x08, 0xa2, 0x2e, 0x1c, 0x28, 0x62, 0x01, 0x08, 0xa4, 0x92, 0xaa, 0x56, 0x05, 0x51, 0x90, 0xab, + 0x6e, 0xd8, 0x54, 0x26, 0x1e, 0x42, 0x94, 0xc4, 0x63, 0x3c, 0x4e, 0x2b, 0x40, 0x62, 0x03, 0x6f, + 0xc1, 0x82, 0x25, 0xcf, 0xc0, 0x6b, 0xf0, 0x02, 0xbc, 0x0a, 0xf2, 0x8c, 0x9d, 0xcc, 0xd8, 0x4e, + 0x82, 0x02, 0x0b, 0x36, 0x51, 0xe6, 0x9b, 0x33, 0x67, 0xbe, 0xef, 0x9b, 0x33, 0xe3, 0x03, 0xd5, + 0x31, 0x23, 0x41, 0x33, 0xfa, 0x31, 0xfd, 0x80, 0x86, 0x14, 0x15, 0xa3, 0xff, 0xc6, 0x7e, 0xc7, + 0x27, 0xde, 0xc5, 0x69, 0xbb, 0xe9, 0x0f, 0x7a, 0x4d, 0x3e, 0xd1, 0x64, 0xee, 0xe0, 0xe2, 0x8a, + 0x35, 0xaf, 0x98, 0x08, 0xc4, 0x8f, 0x01, 0x5a, 0x74, 0x34, 0xa2, 0x9e, 0x4d, 0x98, 0x8f, 0x74, + 0xf8, 0x87, 0x04, 0x41, 0x8b, 0xba, 0x44, 0xd7, 0xea, 0x5a, 0x63, 0xd5, 0x4e, 0x86, 0x68, 0x07, + 0xd6, 0x48, 0x10, 0xb4, 0x59, 0x4f, 0x5f, 0xa9, 0x6b, 0x8d, 0x92, 0x1d, 0x8f, 0xf0, 0x3b, 0xa8, + 0x1c, 0x93, 0x21, 0x09, 0xc9, 0x39, 0x23, 0x01, 0xb3, 0xc9, 0x1b, 0x74, 0x00, 0xb5, 0x29, 0x72, + 0x7a, 0xfc, 0xac, 0xcf, 0x42, 0x7d, 0xa5, 0x5e, 0x68, 0x94, 0xec, 0x0c, 0x8e, 0x0c, 0x58, 0xef, + 0xf8, 0x62, 0xac, 0x17, 0x78, 0xde, 0xc9, 0x18, 0xd5, 0xa1, 0xdc, 0xf1, 0x49, 0xe0, 0x84, 0x7d, + 0xea, 0x9d, 0x1e, 0xeb, 0x45, 0x3e, 0x2d, 0x43, 0x98, 0x42, 0x55, 0xd9, 0x9b, 0xf9, 0xe8, 0xb6, + 0x2c, 0x87, 0x6b, 0x28, 0x1f, 0xd6, 0x4c, 0x6e, 0xcc, 0x14, 0xb7, 0x65, 0xc9, 0x07, 0x50, 0x3b, + 0x71, 0xfa, 0x43, 0xe2, 0x66, 0xe9, 0xa6, 0x71, 0xdc, 0x81, 0xaa, 0x45, 0xc2, 0xa3, 0xe1, 0x50, + 0x60, 0x91, 0x5a, 0x03, 0xd6, 0x69, 0xa2, 0x40, 0x13, 0x0a, 0xa8, 0xa4, 0x80, 0x4a, 0x0a, 0x84, + 0x71, 0x32, 0x84, 0x5d, 0xa8, 0xa9, 0x09, 0x97, 0x92, 0xb0, 0x07, 0x90, 0x21, 0x2f, 0x21, 0xf8, + 0x2d, 0x54, 0x8f, 0xba, 0x5d, 0x3a, 0xf6, 0xc2, 0xd6, 0x6b, 0xd2, 0x1d, 0x44, 0xb4, 0x1b, 0x50, + 0xe5, 0xff, 0xa5, 0x75, 0x1a, 0x5f, 0x97, 0x86, 0x95, 0x23, 0x5a, 0x99, 0x7f, 0x44, 0x85, 0xec, + 0x11, 0xfd, 0xd0, 0xa0, 0xa6, 0xee, 0x2d, 0x14, 0x76, 0x7f, 0x41, 0xe1, 0x34, 0x06, 0x59, 0x00, + 0x36, 0x61, 0xe3, 0x61, 0x38, 0x51, 0x58, 0x3e, 0xbc, 0x25, 0x56, 0xa4, 0xb3, 0x9b, 0x67, 0x7d, + 0xaf, 0x37, 0xe4, 0x25, 0x71, 0x16, 0x3a, 0xe1, 0x98, 0xd9, 0xd2, 0x52, 0xe3, 0x39, 0xd4, 0xd2, + 0xf3, 0x51, 0x69, 0x8f, 0xe5, 0x03, 0x8c, 0x47, 0xe8, 0x06, 0x6c, 0x3a, 0x22, 0xb9, 0x08, 0x8c, + 0xe5, 0xab, 0x20, 0xf6, 0xa0, 0x62, 0x91, 0x90, 0x1b, 0xe2, 0xbd, 0xa2, 0x91, 0xb7, 0x7b, 0x00, + 0xe3, 0xb4, 0xad, 0x12, 0xf2, 0x9b, 0x8e, 0x7e, 0xe0, 0x35, 0x38, 0xdd, 0x6f, 0x29, 0x3f, 0xef, + 0xc3, 0x46, 0x92, 0x81, 0x93, 0x2c, 0x70, 0x47, 0xb7, 0x4d, 0x1a, 0xbd, 0x17, 0xfd, 0xd1, 0x05, + 0x73, 0x07, 0xe6, 0x64, 0x0b, 0x25, 0x14, 0x7f, 0xd2, 0xe0, 0xdf, 0x73, 0xdf, 0x75, 0xe2, 0x7b, + 0x1c, 0x6b, 0xbe, 0x03, 0xeb, 0xc9, 0x30, 0x26, 0x30, 0x23, 0xd9, 0x24, 0x6c, 0x91, 0x0d, 0x34, + 0x6b, 0x83, 0x7c, 0x73, 0x4e, 0x00, 0xa5, 0x59, 0x2c, 0xe3, 0x04, 0xfe, 0xa6, 0xc1, 0xee, 0x19, + 0x09, 0x6d, 0xd2, 0x25, 0xfd, 0x4b, 0xd2, 0x26, 0x8c, 0x39, 0x3d, 0xd2, 0xf1, 0xc3, 0xf8, 0x20, + 0x4f, 0x02, 0x3a, 0x52, 0x6e, 0xb7, 0x84, 0xa0, 0x1a, 0x14, 0xa8, 0x1f, 0x72, 0xf2, 0xab, 0x76, + 0xf4, 0x17, 0x99, 0x80, 0xba, 0xd4, 0xbb, 0x24, 0x01, 0x8b, 0x79, 0x4e, 0xdc, 0x2d, 0xd9, 0x39, + 0x33, 0x69, 0x9d, 0xc5, 0x8c, 0x4e, 0xc5, 0xa5, 0x55, 0xd5, 0x25, 0xfc, 0x14, 0x4a, 0x9c, 0x69, + 0x54, 0xdd, 0xe8, 0x26, 0x54, 0x94, 0x0d, 0xdc, 0x98, 0x70, 0x0a, 0x8d, 0xaa, 0x3d, 0xe0, 0x2b, + 0x62, 0xde, 0xf1, 0x08, 0x7f, 0xd4, 0x40, 0xcf, 0x37, 0x62, 0xa9, 0x0a, 0xbb, 0x07, 0x9b, 0x34, + 0xe1, 0x26, 0x5d, 0xda, 0xaa, 0x58, 0x34, 0xa1, 0x6d, 0xab, 0x51, 0xf8, 0xab, 0x06, 0xbb, 0xd6, + 0x92, 0xc7, 0x91, 0x36, 0xdf, 0x95, 0x9e, 0xc3, 0x9c, 0x99, 0xc5, 0x45, 0xa6, 0x98, 0x5f, 0x4c, + 0x99, 0xff, 0x59, 0x03, 0xdd, 0xfa, 0x73, 0x7e, 0xb5, 0xe1, 0x3f, 0x99, 0x62, 0x47, 0xf1, 0xae, + 0x90, 0xef, 0xdd, 0xec, 0x15, 0xf8, 0x3d, 0xfc, 0x2f, 0x3e, 0x2c, 0x2d, 0x29, 0xa4, 0xcd, 0x7a, + 0x39, 0x56, 0xba, 0x19, 0x2b, 0xdd, 0xc5, 0x5f, 0xae, 0x79, 0x5f, 0x6e, 0xfc, 0x45, 0x83, 0x6b, + 0xb3, 0x77, 0xff, 0x0b, 0xec, 0x39, 0xfc, 0x5e, 0x04, 0xde, 0x21, 0xa1, 0x07, 0x50, 0x96, 0x5e, + 0x53, 0xb4, 0x25, 0x72, 0xa8, 0x0f, 0xba, 0xb1, 0x9d, 0x83, 0x32, 0x1f, 0xb5, 0xa0, 0xa2, 0x3e, + 0x41, 0x68, 0x57, 0x04, 0x66, 0x9e, 0x47, 0x43, 0xcf, 0x9f, 0x60, 0x7e, 0x44, 0x40, 0xea, 0x61, + 0x12, 0x02, 0x6a, 0x4b, 0x95, 0x10, 0x48, 0x37, 0x3b, 0x8f, 0x60, 0x43, 0xee, 0x1e, 0xd0, 0x94, + 0xa7, 0xdc, 0xa2, 0x18, 0x3b, 0x79, 0x30, 0xf3, 0xd1, 0x39, 0x6c, 0xe5, 0x5d, 0x78, 0x74, 0x5d, + 0xc4, 0xcf, 0x78, 0x15, 0x8d, 0xbd, 0x79, 0xd3, 0x22, 0xad, 0x35, 0x27, 0xad, 0x35, 0x3f, 0xed, + 0xcc, 0x2b, 0xe5, 0xf0, 0xeb, 0x96, 0x5b, 0x53, 0x68, 0x5f, 0x56, 0x98, 0x5b, 0xf1, 0x06, 0x5e, + 0x14, 0x22, 0xfc, 0x94, 0xbb, 0x89, 0xc4, 0xcf, 0x54, 0xef, 0x94, 0xf8, 0x99, 0x6e, 0x3c, 0x9e, + 0x6c, 0xbe, 0x28, 0x9b, 0xbc, 0x07, 0x7f, 0x18, 0xfd, 0xbc, 0x5c, 0xe3, 0x0d, 0xf6, 0xdd, 0x9f, + 0x01, 0x00, 0x00, 0xff, 0xff, 0x88, 0x5d, 0x20, 0xc1, 0x9c, 0x0b, 0x00, 0x00, } diff --git a/pkg/proto/user/user.proto b/pkg/proto/user/user.proto index 2efd32ae4..7690167ed 100644 --- a/pkg/proto/user/user.proto +++ b/pkg/proto/user/user.proto @@ -86,7 +86,7 @@ message SetReceiveMessageOptResp{ message GetReceiveMessageOptReq{ string FromUserID = 1; - repeated string conversationId = 2; + repeated string conversationIdList = 2; string operationID = 3; string OpUserID = 4; } From ddf985b4456c1a09e4b89e65ae880405491552b1 Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Wed, 29 Dec 2021 11:31:53 +0800 Subject: [PATCH 302/814] Refactor code --- internal/api/friend/friend.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/internal/api/friend/friend.go b/internal/api/friend/friend.go index a22f9b813..8046ef219 100644 --- a/internal/api/friend/friend.go +++ b/internal/api/friend/friend.go @@ -381,7 +381,7 @@ func GetFriendApplyList(c *gin.Context) { return } req := &rpc.GetFriendApplyListReq{CommID: &rpc.CommID{}} - utils.CopyStructFields(req.CommID, ¶ms.ParamsCommFriend) + utils.CopyStructFields(req.CommID, ¶ms) var ok bool ok, req.CommID.OpUserID = token_verify.GetUserIDFromToken(c.Request.Header.Get("token")) if !ok { From ce6cd8070fa7b06ac947a86c777bbdfe2204d9fb Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Wed, 29 Dec 2021 11:32:20 +0800 Subject: [PATCH 303/814] conversation update --- go.mod | 1 + 1 file changed, 1 insertion(+) diff --git a/go.mod b/go.mod index 911f68c00..a53930ed5 100644 --- a/go.mod +++ b/go.mod @@ -31,6 +31,7 @@ require ( github.com/lestrrat-go/strftime v1.0.4 // indirect github.com/lib/pq v1.2.0 // indirect github.com/mattn/go-sqlite3 v1.14.6 // indirect + github.com/mitchellh/mapstructure v1.4.2 github.com/nfnt/resize v0.0.0-20180221191011-83c6a9932646 github.com/olivere/elastic/v7 v7.0.23 github.com/pierrec/lz4 v2.6.1+incompatible // indirect From 5ff69b86db5ae21d987f76ab39a1a2504dc20731 Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Wed, 29 Dec 2021 11:36:45 +0800 Subject: [PATCH 304/814] Refactor code --- internal/api/friend/friend.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/internal/api/friend/friend.go b/internal/api/friend/friend.go index 8046ef219..a28b4c6e0 100644 --- a/internal/api/friend/friend.go +++ b/internal/api/friend/friend.go @@ -403,7 +403,7 @@ func GetFriendApplyList(c *gin.Context) { resp := api.GetFriendApplyListResp{CommResp: api.CommResp{ErrCode: RpcResp.ErrCode, ErrMsg: RpcResp.ErrMsg}, FriendRequestList: RpcResp.FriendRequestList} log.NewInfo(req.CommID.OperationID, "GetFriendApplyList api return ", resp) - + c.JSON(http.StatusOK, resp) } func GetSelfApplyList(c *gin.Context) { From ec395acae067af21988c9818d765028c330fb70a Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Wed, 29 Dec 2021 11:37:52 +0800 Subject: [PATCH 305/814] Refactor code --- internal/api/friend/friend.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/internal/api/friend/friend.go b/internal/api/friend/friend.go index a28b4c6e0..040402f28 100644 --- a/internal/api/friend/friend.go +++ b/internal/api/friend/friend.go @@ -272,8 +272,8 @@ func RemoveBlacklist(c *gin.Context) { return } resp := api.RemoveBlackListResp{CommResp: api.CommResp{ErrCode: RpcResp.CommonResp.ErrCode, ErrMsg: RpcResp.CommonResp.ErrMsg}} - c.JSON(http.StatusOK, resp) log.NewInfo(req.CommID.OperationID, "RemoveBlacklist api return ", resp) + c.JSON(http.StatusOK, resp) } func IsFriend(c *gin.Context) { @@ -303,8 +303,8 @@ func IsFriend(c *gin.Context) { return } resp := api.IsFriendResp{CommResp: api.CommResp{ErrCode: RpcResp.ErrCode, ErrMsg: RpcResp.ErrMsg}, Response: RpcResp.Response} - c.JSON(http.StatusOK, resp) log.NewInfo(req.CommID.OperationID, "IsFriend api return ", resp) + c.JSON(http.StatusOK, resp) } // From 2e0923a26a43d2503d96d6879d57ee2133dabb3a Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Wed, 29 Dec 2021 11:52:51 +0800 Subject: [PATCH 306/814] Refactor code --- internal/api/friend/friend.go | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/internal/api/friend/friend.go b/internal/api/friend/friend.go index 040402f28..aabae58ce 100644 --- a/internal/api/friend/friend.go +++ b/internal/api/friend/friend.go @@ -7,6 +7,7 @@ import ( "Open_IM/pkg/common/token_verify" "Open_IM/pkg/grpc-etcdv3/getcdv3" rpc "Open_IM/pkg/proto/friend" + open_im_sdk "Open_IM/pkg/proto/sdk_ws" "Open_IM/pkg/utils" "context" "github.com/gin-gonic/gin" @@ -432,8 +433,10 @@ func GetSelfApplyList(c *gin.Context) { c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": "call get self apply list rpc server failed"}) return } - resp := api.GetSelfApplyListResp{CommResp: api.CommResp{ErrCode: RpcResp.ErrCode, ErrMsg: RpcResp.ErrMsg}, FriendRequestList: RpcResp.FriendRequestList} + if len(resp.FriendRequestList) == 0 { + resp.FriendRequestList = []*open_im_sdk.FriendRequest{} + } log.NewInfo(req.CommID.OperationID, "GetSelfApplyList api return ", resp) c.JSON(http.StatusOK, resp) } From db37d0197a01e58b572930669c8693a4fe619665 Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Wed, 29 Dec 2021 11:57:28 +0800 Subject: [PATCH 307/814] Refactor code --- internal/api/friend/friend.go | 3 +++ 1 file changed, 3 insertions(+) diff --git a/internal/api/friend/friend.go b/internal/api/friend/friend.go index aabae58ce..7cd45e1c0 100644 --- a/internal/api/friend/friend.go +++ b/internal/api/friend/friend.go @@ -403,6 +403,9 @@ func GetFriendApplyList(c *gin.Context) { } resp := api.GetFriendApplyListResp{CommResp: api.CommResp{ErrCode: RpcResp.ErrCode, ErrMsg: RpcResp.ErrMsg}, FriendRequestList: RpcResp.FriendRequestList} + if len(resp.FriendRequestList) == 0 { + resp.FriendRequestList = []*open_im_sdk.FriendRequest{} + } log.NewInfo(req.CommID.OperationID, "GetFriendApplyList api return ", resp) c.JSON(http.StatusOK, resp) } From 447ccdf04226d706af6d79b20fffa0915ba03f94 Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Wed, 29 Dec 2021 12:02:55 +0800 Subject: [PATCH 308/814] Refactor code --- cmd/open_im_api/main.go | 6 +++--- internal/api/friend/friend.go | 2 ++ 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/cmd/open_im_api/main.go b/cmd/open_im_api/main.go index 1f7f88c09..0a83053d1 100644 --- a/cmd/open_im_api/main.go +++ b/cmd/open_im_api/main.go @@ -31,9 +31,9 @@ func main() { friendRouterGroup := r.Group("/friend") { // friendRouterGroup.POST("/get_friends_info", friend.GetFriendsInfo) - friendRouterGroup.POST("/add_friend", friend.AddFriend) //1 - friendRouterGroup.POST("/get_friend_apply_list", friend.GetFriendApplyList) - friendRouterGroup.POST("/get_self_apply_list", friend.GetSelfApplyList) //1 + friendRouterGroup.POST("/add_friend", friend.AddFriend) //1 + friendRouterGroup.POST("/get_friend_apply_list", friend.GetFriendApplyList) //1 + friendRouterGroup.POST("/get_self_apply_list", friend.GetSelfApplyList) //1 friendRouterGroup.POST("/get_friend_list", friend.GetFriendList) friendRouterGroup.POST("/add_blacklist", friend.AddBlacklist) friendRouterGroup.POST("/get_blacklist", friend.GetBlacklist) diff --git a/internal/api/friend/friend.go b/internal/api/friend/friend.go index 7cd45e1c0..0fa12600f 100644 --- a/internal/api/friend/friend.go +++ b/internal/api/friend/friend.go @@ -120,6 +120,8 @@ func AddFriendResponse(c *gin.Context) { } req := &rpc.AddFriendResponseReq{CommID: &rpc.CommID{}} utils.CopyStructFields(req.CommID, ¶ms.ParamsCommFriend) + req.HandleMsg = params.HandleMsg + req.Flag = params.Flag var ok bool ok, req.CommID.OpUserID = token_verify.GetUserIDFromToken(c.Request.Header.Get("token")) if !ok { From df861b59c11bd3922fdf452249aec9fa95ba5d84 Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Wed, 29 Dec 2021 12:06:26 +0800 Subject: [PATCH 309/814] Refactor code --- pkg/base_info/friend_api_struct.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkg/base_info/friend_api_struct.go b/pkg/base_info/friend_api_struct.go index a45e7ccfa..ba1290a44 100644 --- a/pkg/base_info/friend_api_struct.go +++ b/pkg/base_info/friend_api_struct.go @@ -35,7 +35,7 @@ type AddFriendResp struct { type AddFriendResponseReq struct { ParamsCommFriend - Flag int32 `json:"flag" binding:"required"` + Flag int32 `json:"flag" binding:"required, oneof=-1 1"` HandleMsg string `json:"handleMsg"` } type AddFriendResponseResp struct { From c42e70686dfa2f3e537d660d657544ff6c78a7ff Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Wed, 29 Dec 2021 12:13:00 +0800 Subject: [PATCH 310/814] Refactor code --- internal/rpc/friend/firend.go | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/internal/rpc/friend/firend.go b/internal/rpc/friend/firend.go index e0ba79824..2fec04b68 100644 --- a/internal/rpc/friend/firend.go +++ b/internal/rpc/friend/firend.go @@ -258,14 +258,15 @@ func (s *friendServer) AddFriendResponse(ctx context.Context, req *pbFriend.AddF _, err = imdb.GetFriendRelationshipFromFriend(req.CommID.ToUserID, req.CommID.FromUserID) if err == nil { log.NewWarn(req.CommID.OperationID, "FindFriendRelationshipFromFriend exist", req.CommID.ToUserID, req.CommID.FromUserID) + } else { + toInsertFollow := imdb.Friend{OwnerUserID: req.CommID.ToUserID, FriendUserID: req.CommID.FromUserID, OperatorUserID: req.CommID.OpUserID} + err = imdb.InsertToFriend(&toInsertFollow) + if err != nil { + log.NewError(req.CommID.OperationID, "InsertToFriend failed ", err.Error(), toInsertFollow) + return &pbFriend.AddFriendResponseResp{CommonResp: &pbFriend.CommonResp{ErrCode: constant.ErrDB.ErrCode, ErrMsg: constant.ErrDB.ErrMsg}}, nil + } + chat.FriendAddedNotification(req.CommID.OperationID, req.CommID.OpUserID, req.CommID.FromUserID, req.CommID.ToUserID) } - toInsertFollow := imdb.Friend{OwnerUserID: req.CommID.ToUserID, FriendUserID: req.CommID.FromUserID, OperatorUserID: req.CommID.OpUserID} - err = imdb.InsertToFriend(&toInsertFollow) - if err != nil { - log.NewError(req.CommID.OperationID, "InsertToFriend failed ", err.Error(), toInsertFollow) - return &pbFriend.AddFriendResponseResp{CommonResp: &pbFriend.CommonResp{ErrCode: constant.ErrDB.ErrCode, ErrMsg: constant.ErrDB.ErrMsg}}, nil - } - chat.FriendAddedNotification(req.CommID.OperationID, req.CommID.OpUserID, req.CommID.FromUserID, req.CommID.ToUserID) } chat.FriendApplicationProcessedNotification(req) From c4fca3b23d48682da91c391a0425f159f02707bb Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Wed, 29 Dec 2021 12:22:10 +0800 Subject: [PATCH 311/814] nil return modify --- internal/api/conversation/conversation.go | 18 ++++++++++----- internal/api/manage/management_user.go | 28 +++++++++++------------ 2 files changed, 26 insertions(+), 20 deletions(-) diff --git a/internal/api/conversation/conversation.go b/internal/api/conversation/conversation.go index 38030279e..2a66be9dd 100644 --- a/internal/api/conversation/conversation.go +++ b/internal/api/conversation/conversation.go @@ -39,8 +39,10 @@ func GetAllConversationMessageOpt(c *gin.Context) { c.JSON(http.StatusBadRequest, gin.H{"errCode": 500, "errMsg": "GetAllConversationMsgOpt rpc failed, " + err.Error()}) return } - resp := api.GetAllConversationMessageOptResp{CommResp: api.CommResp{ErrCode: RpcResp.CommonResp.ErrCode, ErrMsg: RpcResp.CommonResp.ErrMsg}} - resp.ConversationOptResultList = RpcResp.ConversationOptResultList + resp := api.GetAllConversationMessageOptResp{CommResp: api.CommResp{ErrCode: RpcResp.CommonResp.ErrCode, ErrMsg: RpcResp.CommonResp.ErrMsg}, ConversationOptResultList: RpcResp.ConversationOptResultList} + if len(RpcResp.ConversationOptResultList) == 0 { + resp.ConversationOptResultList = []*user.OptResult{} + } log.NewInfo(req.OperationID, "GetAllConversationMsgOpt api return: ", resp) c.JSON(http.StatusOK, resp) } @@ -69,8 +71,10 @@ func GetReceiveMessageOpt(c *gin.Context) { c.JSON(http.StatusBadRequest, gin.H{"errCode": 500, "errMsg": "GetReceiveMessageOpt rpc failed, " + err.Error()}) return } - resp := api.GetReceiveMessageOptResp{CommResp: api.CommResp{ErrCode: RpcResp.CommonResp.ErrCode, ErrMsg: RpcResp.CommonResp.ErrMsg}} - resp.ConversationOptResultList = RpcResp.ConversationOptResultList + resp := api.GetReceiveMessageOptResp{CommResp: api.CommResp{ErrCode: RpcResp.CommonResp.ErrCode, ErrMsg: RpcResp.CommonResp.ErrMsg}, ConversationOptResultList: RpcResp.ConversationOptResultList} + if len(RpcResp.ConversationOptResultList) == 0 { + resp.ConversationOptResultList = []*user.OptResult{} + } log.NewInfo(req.OperationID, "GetReceiveMessageOpt api return: ", resp) c.JSON(http.StatusOK, resp) } @@ -99,8 +103,10 @@ func SetReceiveMessageOpt(c *gin.Context) { c.JSON(http.StatusBadRequest, gin.H{"errCode": 500, "errMsg": "SetReceiveMessageOpt rpc failed, " + err.Error()}) return } - resp := api.SetReceiveMessageOptResp{CommResp: api.CommResp{ErrCode: RpcResp.CommonResp.ErrCode, ErrMsg: RpcResp.CommonResp.ErrMsg}} - resp.OptResultList = RpcResp.OptResultList + resp := api.SetReceiveMessageOptResp{CommResp: api.CommResp{ErrCode: RpcResp.CommonResp.ErrCode, ErrMsg: RpcResp.CommonResp.ErrMsg}, OptResultList: RpcResp.OptResultList} + if len(RpcResp.OptResultList) == 0 { + resp.OptResultList = []*user.OptResult{} + } log.NewInfo(req.OperationID, "SetReceiveMessageOpt api return: ", resp) c.JSON(http.StatusOK, resp) } diff --git a/internal/api/manage/management_user.go b/internal/api/manage/management_user.go index 605bb5ddd..6ef6f678f 100644 --- a/internal/api/manage/management_user.go +++ b/internal/api/manage/management_user.go @@ -47,12 +47,10 @@ func DeleteUser(c *gin.Context) { c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": "call delete users rpc server failed"}) return } - failedUserIDList := make([]string, 0) - for _, v := range RpcResp.FailedUserIDList { - failedUserIDList = append(failedUserIDList, v) + resp := api.DeleteUsersResp{CommResp: api.CommResp{ErrCode: RpcResp.CommonResp.ErrCode, ErrMsg: RpcResp.CommonResp.ErrMsg}, FailedUserIDList: RpcResp.FailedUserIDList} + if len(RpcResp.FailedUserIDList) == 0 { + resp.FailedUserIDList = []string{} } - resp := api.DeleteUsersResp{CommResp: api.CommResp{ErrCode: RpcResp.CommonResp.ErrCode, ErrMsg: RpcResp.CommonResp.ErrMsg}} - resp.FailedUserIDList = failedUserIDList log.NewInfo(req.OperationID, "DeleteUser api return", resp) c.JSON(http.StatusOK, resp) } @@ -80,12 +78,10 @@ func GetAllUsersUid(c *gin.Context) { c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": "call GetAllUsersUid users rpc server failed"}) return } - userIDList := make([]string, 0) - for _, v := range RpcResp.UserIDList { - userIDList = append(userIDList, v) + resp := api.GetAllUsersUidResp{CommResp: api.CommResp{ErrCode: RpcResp.CommonResp.ErrCode, ErrMsg: RpcResp.CommonResp.ErrMsg}, UserIDList: RpcResp.UserIDList} + if len(RpcResp.UserIDList) == 0 { + resp.UserIDList = []string{} } - resp := api.GetAllUsersUidResp{CommResp: api.CommResp{ErrCode: RpcResp.CommonResp.ErrCode, ErrMsg: RpcResp.CommonResp.ErrMsg}} - resp.UserIDList = userIDList log.NewInfo(req.OperationID, "GetAllUsersUid api return", resp) c.JSON(http.StatusOK, resp) @@ -115,8 +111,10 @@ func AccountCheck(c *gin.Context) { c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": "call AccountCheck users rpc server failed"}) return } - resp := api.AccountCheckResp{CommResp: api.CommResp{ErrCode: RpcResp.CommonResp.ErrCode, ErrMsg: RpcResp.CommonResp.ErrMsg}} - resp.ResultList = RpcResp.ResultList + resp := api.AccountCheckResp{CommResp: api.CommResp{ErrCode: RpcResp.CommonResp.ErrCode, ErrMsg: RpcResp.CommonResp.ErrMsg}, ResultList: RpcResp.ResultList} + if len(RpcResp.ResultList) == 0 { + resp.ResultList = []*rpc.AccountCheckResp_SingleUserStatus{} + } log.NewInfo(req.OperationID, "AccountCheck api return", resp) c.JSON(http.StatusOK, resp) } @@ -172,8 +170,10 @@ func GetUsersOnlineStatus(c *gin.Context) { } respResult = append(respResult, temp) } - resp := api.GetUsersOnlineStatusResp{CommResp: api.CommResp{ErrCode: 0, ErrMsg: ""}} - resp.SuccessResult = respResult + resp := api.GetUsersOnlineStatusResp{CommResp: api.CommResp{ErrCode: 0, ErrMsg: ""}, SuccessResult: respResult} + if len(respResult) == 0 { + resp.SuccessResult = []*pbRelay.GetUsersOnlineStatusResp_SuccessResult{} + } log.NewInfo(req.OperationID, "GetUsersOnlineStatus api return", resp) c.JSON(http.StatusOK, resp) From 7b67dc03f7965de31f33a9bb7ac92a19d4d6f833 Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Wed, 29 Dec 2021 12:29:39 +0800 Subject: [PATCH 312/814] Refactor code --- internal/rpc/friend/firend.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/internal/rpc/friend/firend.go b/internal/rpc/friend/firend.go index 2fec04b68..0b189217c 100644 --- a/internal/rpc/friend/firend.go +++ b/internal/rpc/friend/firend.go @@ -257,7 +257,7 @@ func (s *friendServer) AddFriendResponse(ctx context.Context, req *pbFriend.AddF _, err = imdb.GetFriendRelationshipFromFriend(req.CommID.ToUserID, req.CommID.FromUserID) if err == nil { - log.NewWarn(req.CommID.OperationID, "FindFriendRelationshipFromFriend exist", req.CommID.ToUserID, req.CommID.FromUserID) + log.NewWarn(req.CommID.OperationID, "GetFriendRelationshipFromFriend exist", req.CommID.ToUserID, req.CommID.FromUserID) } else { toInsertFollow := imdb.Friend{OwnerUserID: req.CommID.ToUserID, FriendUserID: req.CommID.FromUserID, OperatorUserID: req.CommID.OpUserID} err = imdb.InsertToFriend(&toInsertFollow) From a8e13d86e2ac0be7f08bc771575c5313085c9245 Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Wed, 29 Dec 2021 13:30:50 +0800 Subject: [PATCH 313/814] Refactor code --- pkg/base_info/friend_api_struct.go | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/pkg/base_info/friend_api_struct.go b/pkg/base_info/friend_api_struct.go index ba1290a44..e587853f5 100644 --- a/pkg/base_info/friend_api_struct.go +++ b/pkg/base_info/friend_api_struct.go @@ -35,7 +35,9 @@ type AddFriendResp struct { type AddFriendResponseReq struct { ParamsCommFriend - Flag int32 `json:"flag" binding:"required, oneof=-1 1"` + //binding:"oneof=0 1 2"` + //} + Flag int32 `json:"flag" binding:"required,oneof=0 1"` HandleMsg string `json:"handleMsg"` } type AddFriendResponseResp struct { From 7903dc7c2ebba1c2fad20b5da43986a23d9aba39 Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Wed, 29 Dec 2021 13:34:13 +0800 Subject: [PATCH 314/814] Refactor code --- pkg/base_info/friend_api_struct.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkg/base_info/friend_api_struct.go b/pkg/base_info/friend_api_struct.go index e587853f5..2522288a8 100644 --- a/pkg/base_info/friend_api_struct.go +++ b/pkg/base_info/friend_api_struct.go @@ -37,7 +37,7 @@ type AddFriendResponseReq struct { ParamsCommFriend //binding:"oneof=0 1 2"` //} - Flag int32 `json:"flag" binding:"required,oneof=0 1"` + Flag int32 `json:"flag" binding:"required,oneof=-1 0 1"` HandleMsg string `json:"handleMsg"` } type AddFriendResponseResp struct { From e75e36e99919af57480a3e4441a146ef502f1660 Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Wed, 29 Dec 2021 13:40:26 +0800 Subject: [PATCH 315/814] Refactor code --- cmd/open_im_api/main.go | 2 +- internal/api/friend/friend.go | 2 +- pkg/base_info/friend_api_struct.go | 3 ++- 3 files changed, 4 insertions(+), 3 deletions(-) diff --git a/cmd/open_im_api/main.go b/cmd/open_im_api/main.go index 0a83053d1..5b138b7c3 100644 --- a/cmd/open_im_api/main.go +++ b/cmd/open_im_api/main.go @@ -39,7 +39,7 @@ func main() { friendRouterGroup.POST("/get_blacklist", friend.GetBlacklist) friendRouterGroup.POST("/remove_blacklist", friend.RemoveBlacklist) friendRouterGroup.POST("/delete_friend", friend.DeleteFriend) - friendRouterGroup.POST("/add_friend_response", friend.AddFriendResponse) + friendRouterGroup.POST("/add_friend_response", friend.AddFriendResponse) //1 friendRouterGroup.POST("/set_friend_comment", friend.SetFriendComment) friendRouterGroup.POST("/is_friend", friend.IsFriend) friendRouterGroup.POST("/import_friend", friend.ImportFriend) diff --git a/internal/api/friend/friend.go b/internal/api/friend/friend.go index 0fa12600f..c31891c32 100644 --- a/internal/api/friend/friend.go +++ b/internal/api/friend/friend.go @@ -352,7 +352,7 @@ func GetFriendList(c *gin.Context) { return } req := &rpc.GetFriendListReq{CommID: &rpc.CommID{}} - utils.CopyStructFields(req.CommID, ¶ms.ParamsCommFriend) + utils.CopyStructFields(req.CommID, ¶ms) var ok bool ok, req.CommID.OpUserID = token_verify.GetUserIDFromToken(c.Request.Header.Get("token")) if !ok { diff --git a/pkg/base_info/friend_api_struct.go b/pkg/base_info/friend_api_struct.go index 2522288a8..e452eafda 100644 --- a/pkg/base_info/friend_api_struct.go +++ b/pkg/base_info/friend_api_struct.go @@ -103,7 +103,8 @@ type GetFriendsInfoResp struct { } type GetFriendListReq struct { - ParamsCommFriend + OperationID string `json:"operationID" binding:"required"` + FromUserID string `json:"fromUserID" binding:"required"` } type GetFriendListResp struct { CommResp From d58dc295504b3ae7489c3e9dba73f6ce5044934b Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Wed, 29 Dec 2021 13:45:22 +0800 Subject: [PATCH 316/814] Refactor code --- internal/rpc/friend/firend.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/internal/rpc/friend/firend.go b/internal/rpc/friend/firend.go index 0b189217c..33ffde291 100644 --- a/internal/rpc/friend/firend.go +++ b/internal/rpc/friend/firend.go @@ -410,7 +410,7 @@ func (s *friendServer) GetFriendList(ctx context.Context, req *pbFriend.GetFrien for _, friendUser := range friends { var friendUserInfo sdkws.FriendInfo - utils.CopyStructFields(&friendUserInfo, friendUser) + utils.CopyStructFields(&friendUserInfo, &friendUser) userInfoList = append(userInfoList, &friendUserInfo) } log.NewInfo(req.CommID.OperationID, "rpc GetFriendList ok", pbFriend.GetFriendListResp{FriendInfoList: userInfoList}) From c049cde8cf86e9912b2d25b6a183fe521a7b90e2 Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Wed, 29 Dec 2021 13:49:39 +0800 Subject: [PATCH 317/814] Refactor code --- internal/api/friend/friend.go | 3 +++ 1 file changed, 3 insertions(+) diff --git a/internal/api/friend/friend.go b/internal/api/friend/friend.go index c31891c32..b563ac165 100644 --- a/internal/api/friend/friend.go +++ b/internal/api/friend/friend.go @@ -372,6 +372,9 @@ func GetFriendList(c *gin.Context) { } resp := api.GetFriendListResp{CommResp: api.CommResp{ErrCode: RpcResp.ErrCode, ErrMsg: RpcResp.ErrMsg}, FriendInfoList: RpcResp.FriendInfoList} + if len(resp.FriendInfoList) == 0 { + resp.FriendInfoList = []*open_im_sdk.FriendInfo{} + } log.NewInfo(req.CommID.OperationID, "GetFriendList api return ", resp) c.JSON(http.StatusOK, resp) } From f2fa08ea82c951cae91dc413b392ff9a04157593 Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Wed, 29 Dec 2021 13:56:50 +0800 Subject: [PATCH 318/814] Refactor code --- internal/rpc/friend/firend.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/internal/rpc/friend/firend.go b/internal/rpc/friend/firend.go index 33ffde291..37abff801 100644 --- a/internal/rpc/friend/firend.go +++ b/internal/rpc/friend/firend.go @@ -408,7 +408,7 @@ func (s *friendServer) GetFriendList(ctx context.Context, req *pbFriend.GetFrien } var userInfoList []*sdkws.FriendInfo for _, friendUser := range friends { - + log.NewDebug(req.CommID.OperationID, "friends : ", friendUser) var friendUserInfo sdkws.FriendInfo utils.CopyStructFields(&friendUserInfo, &friendUser) userInfoList = append(userInfoList, &friendUserInfo) From 903b53033d018f4583ec24f33192be490babb3a2 Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Wed, 29 Dec 2021 14:06:25 +0800 Subject: [PATCH 319/814] Refactor code --- internal/rpc/friend/firend.go | 4 ++-- pkg/common/utils/utils.go | 28 ++++++++++++++-------------- 2 files changed, 16 insertions(+), 16 deletions(-) diff --git a/internal/rpc/friend/firend.go b/internal/rpc/friend/firend.go index 37abff801..b4660bd49 100644 --- a/internal/rpc/friend/firend.go +++ b/internal/rpc/friend/firend.go @@ -408,9 +408,9 @@ func (s *friendServer) GetFriendList(ctx context.Context, req *pbFriend.GetFrien } var userInfoList []*sdkws.FriendInfo for _, friendUser := range friends { - log.NewDebug(req.CommID.OperationID, "friends : ", friendUser) var friendUserInfo sdkws.FriendInfo - utils.CopyStructFields(&friendUserInfo, &friendUser) + cp.FriendDBCopyOpenIM(&friendUserInfo, &friendUser) + log.NewDebug(req.CommID.OperationID, "friends : ", friendUser, "openim friends: ", friendUserInfo) userInfoList = append(userInfoList, &friendUserInfo) } log.NewInfo(req.CommID.OperationID, "rpc GetFriendList ok", pbFriend.GetFriendListResp{FriendInfoList: userInfoList}) diff --git a/pkg/common/utils/utils.go b/pkg/common/utils/utils.go index ca67f33e2..61dc47be0 100644 --- a/pkg/common/utils/utils.go +++ b/pkg/common/utils/utils.go @@ -14,12 +14,12 @@ func OperationIDGenerator() string { return strconv.FormatInt(time.Now().UnixNano()+int64(rand.Uint32()), 10) } -func FriendOpenIMCopyDB(dst *imdb.Friend, src open_im_sdk.FriendInfo) { +func FriendOpenIMCopyDB(dst *imdb.Friend, src *open_im_sdk.FriendInfo) { utils.CopyStructFields(dst, src) dst.FriendUserID = src.FriendUser.UserID } -func FriendDBCopyOpenIM(dst *open_im_sdk.FriendInfo, src imdb.Friend) { +func FriendDBCopyOpenIM(dst *open_im_sdk.FriendInfo, src *imdb.Friend) { utils.CopyStructFields(dst, src) user, _ := imdb.GetUserByUserID(src.FriendUserID) if user != nil { @@ -30,21 +30,21 @@ func FriendDBCopyOpenIM(dst *open_im_sdk.FriendInfo, src imdb.Friend) { } // -func FriendRequestOpenIMCopyDB(dst *imdb.FriendRequest, src open_im_sdk.FriendRequest) { +func FriendRequestOpenIMCopyDB(dst *imdb.FriendRequest, src *open_im_sdk.FriendRequest) { utils.CopyStructFields(dst, src) } -func FriendRequestDBCopyOpenIM(dst *open_im_sdk.FriendRequest, src imdb.FriendRequest) { +func FriendRequestDBCopyOpenIM(dst *open_im_sdk.FriendRequest, src *imdb.FriendRequest) { utils.CopyStructFields(dst, src) dst.CreateTime = src.CreateTime.Unix() dst.HandleTime = src.HandleTime.Unix() } -func GroupOpenIMCopyDB(dst *imdb.Group, src open_im_sdk.GroupInfo) { +func GroupOpenIMCopyDB(dst *imdb.Group, src *open_im_sdk.GroupInfo) { utils.CopyStructFields(dst, src) } -func GroupDBCopyOpenIM(dst *open_im_sdk.GroupInfo, src imdb.Group) { +func GroupDBCopyOpenIM(dst *open_im_sdk.GroupInfo, src *imdb.Group) { utils.CopyStructFields(dst, src) user, _ := imdb.GetGroupOwnerInfoByGroupID(src.GroupID) if user != nil { @@ -54,11 +54,11 @@ func GroupDBCopyOpenIM(dst *open_im_sdk.GroupInfo, src imdb.Group) { dst.CreateTime = src.CreateTime.Unix() } -func GroupMemberOpenIMCopyDB(dst *imdb.GroupMember, src open_im_sdk.GroupMemberFullInfo) { +func GroupMemberOpenIMCopyDB(dst *imdb.GroupMember, src *open_im_sdk.GroupMemberFullInfo) { utils.CopyStructFields(dst, src) } -func GroupMemberDBCopyOpenIM(dst *open_im_sdk.GroupMemberFullInfo, src imdb.GroupMember) { +func GroupMemberDBCopyOpenIM(dst *open_im_sdk.GroupMemberFullInfo, src *imdb.GroupMember) { utils.CopyStructFields(dst, src) if token_verify.IsMangerUserID(src.UserID) { u, _ := imdb.GetUserByUserID(src.UserID) @@ -70,31 +70,31 @@ func GroupMemberDBCopyOpenIM(dst *open_im_sdk.GroupMemberFullInfo, src imdb.Grou dst.JoinTime = src.JoinTime.Unix() } -func GroupRequestOpenIMCopyDB(dst *imdb.GroupRequest, src open_im_sdk.GroupRequest) { +func GroupRequestOpenIMCopyDB(dst *imdb.GroupRequest, src *open_im_sdk.GroupRequest) { utils.CopyStructFields(dst, src) } -func GroupRequestDBCopyOpenIM(dst *open_im_sdk.GroupRequest, src imdb.GroupRequest) { +func GroupRequestDBCopyOpenIM(dst *open_im_sdk.GroupRequest, src *imdb.GroupRequest) { utils.CopyStructFields(dst, src) dst.ReqTime = src.ReqTime.Unix() dst.HandleTime = src.HandledTime.Unix() } -func UserOpenIMCopyDB(dst *imdb.User, src open_im_sdk.UserInfo) { +func UserOpenIMCopyDB(dst *imdb.User, src *open_im_sdk.UserInfo) { utils.CopyStructFields(dst, src) } -func UserDBCopyOpenIM(dst *open_im_sdk.UserInfo, src imdb.User) { +func UserDBCopyOpenIM(dst *open_im_sdk.UserInfo, src *imdb.User) { utils.CopyStructFields(dst, src) dst.CreateTime = src.CreateTime.Unix() } -func BlackOpenIMCopyDB(dst *imdb.Black, src open_im_sdk.BlackInfo) { +func BlackOpenIMCopyDB(dst *imdb.Black, src *open_im_sdk.BlackInfo) { utils.CopyStructFields(dst, src) dst.BlockUserID = src.BlackUserInfo.UserID } -func BlackDBCopyOpenIM(dst *open_im_sdk.BlackInfo, src imdb.Black) { +func BlackDBCopyOpenIM(dst *open_im_sdk.BlackInfo, src *imdb.Black) { utils.CopyStructFields(dst, src) dst.CreateTime = src.CreateTime.Unix() user, _ := imdb.GetUserByUserID(src.BlockUserID) From d99f3e1522e46699a19b3a4fbecc58f09017fbac Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Wed, 29 Dec 2021 14:08:46 +0800 Subject: [PATCH 320/814] Refactor code --- internal/rpc/friend/firend.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/internal/rpc/friend/firend.go b/internal/rpc/friend/firend.go index b4660bd49..cb2bae86a 100644 --- a/internal/rpc/friend/firend.go +++ b/internal/rpc/friend/firend.go @@ -459,7 +459,7 @@ func (s *friendServer) GetSelfApplyList(ctx context.Context, req *pbFriend.GetSe var selfApplyOtherUserList []*sdkws.FriendRequest for _, selfApplyOtherUserInfo := range usersInfo { var userInfo sdkws.FriendRequest // pbFriend.ApplyUserInfo - cp.FriendRequestDBCopyOpenIM(&userInfo, selfApplyOtherUserInfo) + cp.FriendRequestDBCopyOpenIM(&userInfo, &selfApplyOtherUserInfo) selfApplyOtherUserList = append(selfApplyOtherUserList, &userInfo) } log.NewInfo(req.CommID.OperationID, "rpc GetSelfApplyList ok", pbFriend.GetSelfApplyListResp{FriendRequestList: selfApplyOtherUserList}) From c7b7847a8299d7e557993d689d01639e110416f7 Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Wed, 29 Dec 2021 14:14:08 +0800 Subject: [PATCH 321/814] Refactor code --- internal/rpc/friend/firend.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/internal/rpc/friend/firend.go b/internal/rpc/friend/firend.go index cb2bae86a..e86851275 100644 --- a/internal/rpc/friend/firend.go +++ b/internal/rpc/friend/firend.go @@ -408,7 +408,7 @@ func (s *friendServer) GetFriendList(ctx context.Context, req *pbFriend.GetFrien } var userInfoList []*sdkws.FriendInfo for _, friendUser := range friends { - var friendUserInfo sdkws.FriendInfo + friendUserInfo := sdkws.FriendInfo{FriendUser: &sdkws.UserInfo{}} cp.FriendDBCopyOpenIM(&friendUserInfo, &friendUser) log.NewDebug(req.CommID.OperationID, "friends : ", friendUser, "openim friends: ", friendUserInfo) userInfoList = append(userInfoList, &friendUserInfo) From 20aa2bdc6e083b983436025e1020e2c3b3a7bdf5 Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Wed, 29 Dec 2021 14:25:39 +0800 Subject: [PATCH 322/814] Refactor code --- cmd/open_im_api/main.go | 4 +- internal/api/friend/friend.go | 8 +- internal/rpc/friend/firend.go | 8 +- pkg/base_info/friend_api_struct.go | 4 +- pkg/proto/friend/friend.pb.go | 270 ++++++++++++++--------------- pkg/proto/friend/friend.proto | 6 +- 6 files changed, 150 insertions(+), 150 deletions(-) diff --git a/cmd/open_im_api/main.go b/cmd/open_im_api/main.go index 5b138b7c3..0d77d9106 100644 --- a/cmd/open_im_api/main.go +++ b/cmd/open_im_api/main.go @@ -34,13 +34,13 @@ func main() { friendRouterGroup.POST("/add_friend", friend.AddFriend) //1 friendRouterGroup.POST("/get_friend_apply_list", friend.GetFriendApplyList) //1 friendRouterGroup.POST("/get_self_apply_list", friend.GetSelfApplyList) //1 - friendRouterGroup.POST("/get_friend_list", friend.GetFriendList) + friendRouterGroup.POST("/get_friend_list", friend.GetFriendList) //1 friendRouterGroup.POST("/add_blacklist", friend.AddBlacklist) friendRouterGroup.POST("/get_blacklist", friend.GetBlacklist) friendRouterGroup.POST("/remove_blacklist", friend.RemoveBlacklist) friendRouterGroup.POST("/delete_friend", friend.DeleteFriend) friendRouterGroup.POST("/add_friend_response", friend.AddFriendResponse) //1 - friendRouterGroup.POST("/set_friend_comment", friend.SetFriendComment) + friendRouterGroup.POST("/set_friend_remark", friend.SetFriendComment) friendRouterGroup.POST("/is_friend", friend.IsFriend) friendRouterGroup.POST("/import_friend", friend.ImportFriend) } diff --git a/internal/api/friend/friend.go b/internal/api/friend/friend.go index b563ac165..1ffa54413 100644 --- a/internal/api/friend/friend.go +++ b/internal/api/friend/friend.go @@ -215,14 +215,14 @@ func GetBlacklist(c *gin.Context) { c.JSON(http.StatusOK, resp) } -func SetFriendComment(c *gin.Context) { - params := api.SetFriendCommentReq{} +func SetFriendRemark(c *gin.Context) { + params := api.SetFriendRemarkReq{} if err := c.BindJSON(¶ms); err != nil { log.NewError("0", "BindJSON failed ", err.Error()) c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": err.Error()}) return } - req := &rpc.SetFriendCommentReq{CommID: &rpc.CommID{}} + req := &rpc.SetFriendRemarkReq{CommID: &rpc.CommID{}} utils.CopyStructFields(req.CommID, ¶ms.ParamsCommFriend) req.Remark = params.Remark var ok bool @@ -242,7 +242,7 @@ func SetFriendComment(c *gin.Context) { c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": "call set friend comment rpc server failed"}) return } - resp := api.SetFriendCommentResp{CommResp: api.CommResp{ErrCode: RpcResp.CommonResp.ErrCode, ErrMsg: RpcResp.CommonResp.ErrMsg}} + resp := api.SetFriendRemarkResp{CommResp: api.CommResp{ErrCode: RpcResp.CommonResp.ErrCode, ErrMsg: RpcResp.CommonResp.ErrMsg}} log.NewInfo(req.CommID.OperationID, "SetFriendComment api return ", resp) c.JSON(http.StatusOK, resp) diff --git a/internal/rpc/friend/firend.go b/internal/rpc/friend/firend.go index e86851275..d5db10e1f 100644 --- a/internal/rpc/friend/firend.go +++ b/internal/rpc/friend/firend.go @@ -325,22 +325,22 @@ func (s *friendServer) GetBlacklist(ctx context.Context, req *pbFriend.GetBlackl return &pbFriend.GetBlacklistResp{BlackUserInfoList: userInfoList}, nil } -func (s *friendServer) SetFriendComment(ctx context.Context, req *pbFriend.SetFriendCommentReq) (*pbFriend.SetFriendCommentResp, error) { +func (s *friendServer) SetFriendRemark(ctx context.Context, req *pbFriend.SetFriendRemarkReq) (*pbFriend.SetFriendRemarkResp, error) { log.NewInfo(req.CommID.OperationID, "SetFriendComment args ", req.String()) //Parse token, to find current user information if !token_verify.CheckAccess(req.CommID.OpUserID, req.CommID.FromUserID) { log.NewError(req.CommID.OperationID, "CheckAccess false ", req.CommID.OpUserID, req.CommID.FromUserID) - return &pbFriend.SetFriendCommentResp{CommonResp: &pbFriend.CommonResp{ErrCode: constant.ErrAccess.ErrCode, ErrMsg: constant.ErrAccess.ErrMsg}}, nil + return &pbFriend.SetFriendRemarkResp{CommonResp: &pbFriend.CommonResp{ErrCode: constant.ErrAccess.ErrCode, ErrMsg: constant.ErrAccess.ErrMsg}}, nil } err := imdb.UpdateFriendComment(req.CommID.FromUserID, req.CommID.ToUserID, req.Remark) if err != nil { log.NewError(req.CommID.OperationID, "UpdateFriendComment failed ", req.CommID.FromUserID, req.CommID.ToUserID, req.Remark) - return &pbFriend.SetFriendCommentResp{CommonResp: &pbFriend.CommonResp{ErrCode: constant.ErrDB.ErrCode, ErrMsg: constant.ErrDB.ErrMsg}}, nil + return &pbFriend.SetFriendRemarkResp{CommonResp: &pbFriend.CommonResp{ErrCode: constant.ErrDB.ErrCode, ErrMsg: constant.ErrDB.ErrMsg}}, nil } log.NewInfo(req.CommID.OperationID, "rpc SetFriendComment ok") chat.FriendInfoChangedNotification(req.CommID.OperationID, req.CommID.OpUserID, req.CommID.FromUserID, req.CommID.ToUserID) - return &pbFriend.SetFriendCommentResp{CommonResp: &pbFriend.CommonResp{}}, nil + return &pbFriend.SetFriendRemarkResp{CommonResp: &pbFriend.CommonResp{}}, nil } func (s *friendServer) RemoveBlacklist(ctx context.Context, req *pbFriend.RemoveBlacklistReq) (*pbFriend.RemoveBlacklistResp, error) { diff --git a/pkg/base_info/friend_api_struct.go b/pkg/base_info/friend_api_struct.go index e452eafda..361d54bd6 100644 --- a/pkg/base_info/friend_api_struct.go +++ b/pkg/base_info/friend_api_struct.go @@ -71,11 +71,11 @@ type BlackUserInfo struct { open_im_sdk.PublicUserInfo } -type SetFriendCommentReq struct { +type SetFriendRemarkReq struct { ParamsCommFriend Remark string `json:"remark" binding:"required"` } -type SetFriendCommentResp struct { +type SetFriendRemarkResp struct { CommResp } diff --git a/pkg/proto/friend/friend.pb.go b/pkg/proto/friend/friend.pb.go index 67efb3483..b903e4be4 100644 --- a/pkg/proto/friend/friend.pb.go +++ b/pkg/proto/friend/friend.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_friend_a4d5a06cd0a3d99f, []int{0} + return fileDescriptor_friend_ea5e0cd91ac7f1e7, []int{0} } func (m *CommonResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_CommonResp.Unmarshal(m, b) @@ -84,7 +84,7 @@ func (m *CommID) Reset() { *m = CommID{} } func (m *CommID) String() string { return proto.CompactTextString(m) } func (*CommID) ProtoMessage() {} func (*CommID) Descriptor() ([]byte, []int) { - return fileDescriptor_friend_a4d5a06cd0a3d99f, []int{1} + return fileDescriptor_friend_ea5e0cd91ac7f1e7, []int{1} } func (m *CommID) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_CommID.Unmarshal(m, b) @@ -143,7 +143,7 @@ func (m *GetFriendsInfoReq) Reset() { *m = GetFriendsInfoReq{} } func (m *GetFriendsInfoReq) String() string { return proto.CompactTextString(m) } func (*GetFriendsInfoReq) ProtoMessage() {} func (*GetFriendsInfoReq) Descriptor() ([]byte, []int) { - return fileDescriptor_friend_a4d5a06cd0a3d99f, []int{2} + return fileDescriptor_friend_ea5e0cd91ac7f1e7, []int{2} } func (m *GetFriendsInfoReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetFriendsInfoReq.Unmarshal(m, b) @@ -183,7 +183,7 @@ func (m *GetFriendInfoResp) Reset() { *m = GetFriendInfoResp{} } func (m *GetFriendInfoResp) String() string { return proto.CompactTextString(m) } func (*GetFriendInfoResp) ProtoMessage() {} func (*GetFriendInfoResp) Descriptor() ([]byte, []int) { - return fileDescriptor_friend_a4d5a06cd0a3d99f, []int{3} + return fileDescriptor_friend_ea5e0cd91ac7f1e7, []int{3} } func (m *GetFriendInfoResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetFriendInfoResp.Unmarshal(m, b) @@ -236,7 +236,7 @@ func (m *AddFriendReq) Reset() { *m = AddFriendReq{} } func (m *AddFriendReq) String() string { return proto.CompactTextString(m) } func (*AddFriendReq) ProtoMessage() {} func (*AddFriendReq) Descriptor() ([]byte, []int) { - return fileDescriptor_friend_a4d5a06cd0a3d99f, []int{4} + return fileDescriptor_friend_ea5e0cd91ac7f1e7, []int{4} } func (m *AddFriendReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_AddFriendReq.Unmarshal(m, b) @@ -281,7 +281,7 @@ func (m *AddFriendResp) Reset() { *m = AddFriendResp{} } func (m *AddFriendResp) String() string { return proto.CompactTextString(m) } func (*AddFriendResp) ProtoMessage() {} func (*AddFriendResp) Descriptor() ([]byte, []int) { - return fileDescriptor_friend_a4d5a06cd0a3d99f, []int{5} + return fileDescriptor_friend_ea5e0cd91ac7f1e7, []int{5} } func (m *AddFriendResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_AddFriendResp.Unmarshal(m, b) @@ -322,7 +322,7 @@ func (m *ImportFriendReq) Reset() { *m = ImportFriendReq{} } func (m *ImportFriendReq) String() string { return proto.CompactTextString(m) } func (*ImportFriendReq) ProtoMessage() {} func (*ImportFriendReq) Descriptor() ([]byte, []int) { - return fileDescriptor_friend_a4d5a06cd0a3d99f, []int{6} + return fileDescriptor_friend_ea5e0cd91ac7f1e7, []int{6} } func (m *ImportFriendReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ImportFriendReq.Unmarshal(m, b) @@ -382,7 +382,7 @@ func (m *ImportFriendResp) Reset() { *m = ImportFriendResp{} } func (m *ImportFriendResp) String() string { return proto.CompactTextString(m) } func (*ImportFriendResp) ProtoMessage() {} func (*ImportFriendResp) Descriptor() ([]byte, []int) { - return fileDescriptor_friend_a4d5a06cd0a3d99f, []int{7} + return fileDescriptor_friend_ea5e0cd91ac7f1e7, []int{7} } func (m *ImportFriendResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ImportFriendResp.Unmarshal(m, b) @@ -427,7 +427,7 @@ func (m *GetFriendApplyListReq) Reset() { *m = GetFriendApplyListReq{} } func (m *GetFriendApplyListReq) String() string { return proto.CompactTextString(m) } func (*GetFriendApplyListReq) ProtoMessage() {} func (*GetFriendApplyListReq) Descriptor() ([]byte, []int) { - return fileDescriptor_friend_a4d5a06cd0a3d99f, []int{8} + return fileDescriptor_friend_ea5e0cd91ac7f1e7, []int{8} } func (m *GetFriendApplyListReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetFriendApplyListReq.Unmarshal(m, b) @@ -467,7 +467,7 @@ func (m *GetFriendApplyListResp) Reset() { *m = GetFriendApplyListResp{} func (m *GetFriendApplyListResp) String() string { return proto.CompactTextString(m) } func (*GetFriendApplyListResp) ProtoMessage() {} func (*GetFriendApplyListResp) Descriptor() ([]byte, []int) { - return fileDescriptor_friend_a4d5a06cd0a3d99f, []int{9} + return fileDescriptor_friend_ea5e0cd91ac7f1e7, []int{9} } func (m *GetFriendApplyListResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetFriendApplyListResp.Unmarshal(m, b) @@ -519,7 +519,7 @@ func (m *GetFriendListReq) Reset() { *m = GetFriendListReq{} } func (m *GetFriendListReq) String() string { return proto.CompactTextString(m) } func (*GetFriendListReq) ProtoMessage() {} func (*GetFriendListReq) Descriptor() ([]byte, []int) { - return fileDescriptor_friend_a4d5a06cd0a3d99f, []int{10} + return fileDescriptor_friend_ea5e0cd91ac7f1e7, []int{10} } func (m *GetFriendListReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetFriendListReq.Unmarshal(m, b) @@ -559,7 +559,7 @@ func (m *GetFriendListResp) Reset() { *m = GetFriendListResp{} } func (m *GetFriendListResp) String() string { return proto.CompactTextString(m) } func (*GetFriendListResp) ProtoMessage() {} func (*GetFriendListResp) Descriptor() ([]byte, []int) { - return fileDescriptor_friend_a4d5a06cd0a3d99f, []int{11} + return fileDescriptor_friend_ea5e0cd91ac7f1e7, []int{11} } func (m *GetFriendListResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetFriendListResp.Unmarshal(m, b) @@ -611,7 +611,7 @@ func (m *AddBlacklistReq) Reset() { *m = AddBlacklistReq{} } func (m *AddBlacklistReq) String() string { return proto.CompactTextString(m) } func (*AddBlacklistReq) ProtoMessage() {} func (*AddBlacklistReq) Descriptor() ([]byte, []int) { - return fileDescriptor_friend_a4d5a06cd0a3d99f, []int{12} + return fileDescriptor_friend_ea5e0cd91ac7f1e7, []int{12} } func (m *AddBlacklistReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_AddBlacklistReq.Unmarshal(m, b) @@ -649,7 +649,7 @@ func (m *AddBlacklistResp) Reset() { *m = AddBlacklistResp{} } func (m *AddBlacklistResp) String() string { return proto.CompactTextString(m) } func (*AddBlacklistResp) ProtoMessage() {} func (*AddBlacklistResp) Descriptor() ([]byte, []int) { - return fileDescriptor_friend_a4d5a06cd0a3d99f, []int{13} + return fileDescriptor_friend_ea5e0cd91ac7f1e7, []int{13} } func (m *AddBlacklistResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_AddBlacklistResp.Unmarshal(m, b) @@ -687,7 +687,7 @@ func (m *RemoveBlacklistReq) Reset() { *m = RemoveBlacklistReq{} } func (m *RemoveBlacklistReq) String() string { return proto.CompactTextString(m) } func (*RemoveBlacklistReq) ProtoMessage() {} func (*RemoveBlacklistReq) Descriptor() ([]byte, []int) { - return fileDescriptor_friend_a4d5a06cd0a3d99f, []int{14} + return fileDescriptor_friend_ea5e0cd91ac7f1e7, []int{14} } func (m *RemoveBlacklistReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_RemoveBlacklistReq.Unmarshal(m, b) @@ -725,7 +725,7 @@ func (m *RemoveBlacklistResp) Reset() { *m = RemoveBlacklistResp{} } func (m *RemoveBlacklistResp) String() string { return proto.CompactTextString(m) } func (*RemoveBlacklistResp) ProtoMessage() {} func (*RemoveBlacklistResp) Descriptor() ([]byte, []int) { - return fileDescriptor_friend_a4d5a06cd0a3d99f, []int{15} + return fileDescriptor_friend_ea5e0cd91ac7f1e7, []int{15} } func (m *RemoveBlacklistResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_RemoveBlacklistResp.Unmarshal(m, b) @@ -763,7 +763,7 @@ func (m *GetBlacklistReq) Reset() { *m = GetBlacklistReq{} } func (m *GetBlacklistReq) String() string { return proto.CompactTextString(m) } func (*GetBlacklistReq) ProtoMessage() {} func (*GetBlacklistReq) Descriptor() ([]byte, []int) { - return fileDescriptor_friend_a4d5a06cd0a3d99f, []int{16} + return fileDescriptor_friend_ea5e0cd91ac7f1e7, []int{16} } func (m *GetBlacklistReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetBlacklistReq.Unmarshal(m, b) @@ -803,7 +803,7 @@ func (m *GetBlacklistResp) Reset() { *m = GetBlacklistResp{} } func (m *GetBlacklistResp) String() string { return proto.CompactTextString(m) } func (*GetBlacklistResp) ProtoMessage() {} func (*GetBlacklistResp) Descriptor() ([]byte, []int) { - return fileDescriptor_friend_a4d5a06cd0a3d99f, []int{17} + return fileDescriptor_friend_ea5e0cd91ac7f1e7, []int{17} } func (m *GetBlacklistResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetBlacklistResp.Unmarshal(m, b) @@ -855,7 +855,7 @@ func (m *IsFriendReq) Reset() { *m = IsFriendReq{} } func (m *IsFriendReq) String() string { return proto.CompactTextString(m) } func (*IsFriendReq) ProtoMessage() {} func (*IsFriendReq) Descriptor() ([]byte, []int) { - return fileDescriptor_friend_a4d5a06cd0a3d99f, []int{18} + return fileDescriptor_friend_ea5e0cd91ac7f1e7, []int{18} } func (m *IsFriendReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_IsFriendReq.Unmarshal(m, b) @@ -895,7 +895,7 @@ func (m *IsFriendResp) Reset() { *m = IsFriendResp{} } func (m *IsFriendResp) String() string { return proto.CompactTextString(m) } func (*IsFriendResp) ProtoMessage() {} func (*IsFriendResp) Descriptor() ([]byte, []int) { - return fileDescriptor_friend_a4d5a06cd0a3d99f, []int{19} + return fileDescriptor_friend_ea5e0cd91ac7f1e7, []int{19} } func (m *IsFriendResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_IsFriendResp.Unmarshal(m, b) @@ -947,7 +947,7 @@ func (m *IsInBlackListReq) Reset() { *m = IsInBlackListReq{} } func (m *IsInBlackListReq) String() string { return proto.CompactTextString(m) } func (*IsInBlackListReq) ProtoMessage() {} func (*IsInBlackListReq) Descriptor() ([]byte, []int) { - return fileDescriptor_friend_a4d5a06cd0a3d99f, []int{20} + return fileDescriptor_friend_ea5e0cd91ac7f1e7, []int{20} } func (m *IsInBlackListReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_IsInBlackListReq.Unmarshal(m, b) @@ -987,7 +987,7 @@ func (m *IsInBlackListResp) Reset() { *m = IsInBlackListResp{} } func (m *IsInBlackListResp) String() string { return proto.CompactTextString(m) } func (*IsInBlackListResp) ProtoMessage() {} func (*IsInBlackListResp) Descriptor() ([]byte, []int) { - return fileDescriptor_friend_a4d5a06cd0a3d99f, []int{21} + return fileDescriptor_friend_ea5e0cd91ac7f1e7, []int{21} } func (m *IsInBlackListResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_IsInBlackListResp.Unmarshal(m, b) @@ -1039,7 +1039,7 @@ func (m *DeleteFriendReq) Reset() { *m = DeleteFriendReq{} } func (m *DeleteFriendReq) String() string { return proto.CompactTextString(m) } func (*DeleteFriendReq) ProtoMessage() {} func (*DeleteFriendReq) Descriptor() ([]byte, []int) { - return fileDescriptor_friend_a4d5a06cd0a3d99f, []int{22} + return fileDescriptor_friend_ea5e0cd91ac7f1e7, []int{22} } func (m *DeleteFriendReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_DeleteFriendReq.Unmarshal(m, b) @@ -1077,7 +1077,7 @@ func (m *DeleteFriendResp) Reset() { *m = DeleteFriendResp{} } func (m *DeleteFriendResp) String() string { return proto.CompactTextString(m) } func (*DeleteFriendResp) ProtoMessage() {} func (*DeleteFriendResp) Descriptor() ([]byte, []int) { - return fileDescriptor_friend_a4d5a06cd0a3d99f, []int{23} + return fileDescriptor_friend_ea5e0cd91ac7f1e7, []int{23} } func (m *DeleteFriendResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_DeleteFriendResp.Unmarshal(m, b) @@ -1118,7 +1118,7 @@ func (m *AddFriendResponseReq) Reset() { *m = AddFriendResponseReq{} } func (m *AddFriendResponseReq) String() string { return proto.CompactTextString(m) } func (*AddFriendResponseReq) ProtoMessage() {} func (*AddFriendResponseReq) Descriptor() ([]byte, []int) { - return fileDescriptor_friend_a4d5a06cd0a3d99f, []int{24} + return fileDescriptor_friend_ea5e0cd91ac7f1e7, []int{24} } func (m *AddFriendResponseReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_AddFriendResponseReq.Unmarshal(m, b) @@ -1170,7 +1170,7 @@ func (m *AddFriendResponseResp) Reset() { *m = AddFriendResponseResp{} } func (m *AddFriendResponseResp) String() string { return proto.CompactTextString(m) } func (*AddFriendResponseResp) ProtoMessage() {} func (*AddFriendResponseResp) Descriptor() ([]byte, []int) { - return fileDescriptor_friend_a4d5a06cd0a3d99f, []int{25} + return fileDescriptor_friend_ea5e0cd91ac7f1e7, []int{25} } func (m *AddFriendResponseResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_AddFriendResponseResp.Unmarshal(m, b) @@ -1197,7 +1197,7 @@ func (m *AddFriendResponseResp) GetCommonResp() *CommonResp { return nil } -type SetFriendCommentReq struct { +type SetFriendRemarkReq struct { CommID *CommID `protobuf:"bytes,1,opt,name=CommID" json:"CommID,omitempty"` Remark string `protobuf:"bytes,2,opt,name=Remark" json:"Remark,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` @@ -1205,76 +1205,76 @@ type SetFriendCommentReq struct { XXX_sizecache int32 `json:"-"` } -func (m *SetFriendCommentReq) Reset() { *m = SetFriendCommentReq{} } -func (m *SetFriendCommentReq) String() string { return proto.CompactTextString(m) } -func (*SetFriendCommentReq) ProtoMessage() {} -func (*SetFriendCommentReq) Descriptor() ([]byte, []int) { - return fileDescriptor_friend_a4d5a06cd0a3d99f, []int{26} +func (m *SetFriendRemarkReq) Reset() { *m = SetFriendRemarkReq{} } +func (m *SetFriendRemarkReq) String() string { return proto.CompactTextString(m) } +func (*SetFriendRemarkReq) ProtoMessage() {} +func (*SetFriendRemarkReq) Descriptor() ([]byte, []int) { + return fileDescriptor_friend_ea5e0cd91ac7f1e7, []int{26} } -func (m *SetFriendCommentReq) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_SetFriendCommentReq.Unmarshal(m, b) +func (m *SetFriendRemarkReq) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_SetFriendRemarkReq.Unmarshal(m, b) } -func (m *SetFriendCommentReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_SetFriendCommentReq.Marshal(b, m, deterministic) +func (m *SetFriendRemarkReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_SetFriendRemarkReq.Marshal(b, m, deterministic) } -func (dst *SetFriendCommentReq) XXX_Merge(src proto.Message) { - xxx_messageInfo_SetFriendCommentReq.Merge(dst, src) +func (dst *SetFriendRemarkReq) XXX_Merge(src proto.Message) { + xxx_messageInfo_SetFriendRemarkReq.Merge(dst, src) } -func (m *SetFriendCommentReq) XXX_Size() int { - return xxx_messageInfo_SetFriendCommentReq.Size(m) +func (m *SetFriendRemarkReq) XXX_Size() int { + return xxx_messageInfo_SetFriendRemarkReq.Size(m) } -func (m *SetFriendCommentReq) XXX_DiscardUnknown() { - xxx_messageInfo_SetFriendCommentReq.DiscardUnknown(m) +func (m *SetFriendRemarkReq) XXX_DiscardUnknown() { + xxx_messageInfo_SetFriendRemarkReq.DiscardUnknown(m) } -var xxx_messageInfo_SetFriendCommentReq proto.InternalMessageInfo +var xxx_messageInfo_SetFriendRemarkReq proto.InternalMessageInfo -func (m *SetFriendCommentReq) GetCommID() *CommID { +func (m *SetFriendRemarkReq) GetCommID() *CommID { if m != nil { return m.CommID } return nil } -func (m *SetFriendCommentReq) GetRemark() string { +func (m *SetFriendRemarkReq) GetRemark() string { if m != nil { return m.Remark } return "" } -type SetFriendCommentResp struct { +type SetFriendRemarkResp 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 *SetFriendCommentResp) Reset() { *m = SetFriendCommentResp{} } -func (m *SetFriendCommentResp) String() string { return proto.CompactTextString(m) } -func (*SetFriendCommentResp) ProtoMessage() {} -func (*SetFriendCommentResp) Descriptor() ([]byte, []int) { - return fileDescriptor_friend_a4d5a06cd0a3d99f, []int{27} +func (m *SetFriendRemarkResp) Reset() { *m = SetFriendRemarkResp{} } +func (m *SetFriendRemarkResp) String() string { return proto.CompactTextString(m) } +func (*SetFriendRemarkResp) ProtoMessage() {} +func (*SetFriendRemarkResp) Descriptor() ([]byte, []int) { + return fileDescriptor_friend_ea5e0cd91ac7f1e7, []int{27} } -func (m *SetFriendCommentResp) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_SetFriendCommentResp.Unmarshal(m, b) +func (m *SetFriendRemarkResp) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_SetFriendRemarkResp.Unmarshal(m, b) } -func (m *SetFriendCommentResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_SetFriendCommentResp.Marshal(b, m, deterministic) +func (m *SetFriendRemarkResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_SetFriendRemarkResp.Marshal(b, m, deterministic) } -func (dst *SetFriendCommentResp) XXX_Merge(src proto.Message) { - xxx_messageInfo_SetFriendCommentResp.Merge(dst, src) +func (dst *SetFriendRemarkResp) XXX_Merge(src proto.Message) { + xxx_messageInfo_SetFriendRemarkResp.Merge(dst, src) } -func (m *SetFriendCommentResp) XXX_Size() int { - return xxx_messageInfo_SetFriendCommentResp.Size(m) +func (m *SetFriendRemarkResp) XXX_Size() int { + return xxx_messageInfo_SetFriendRemarkResp.Size(m) } -func (m *SetFriendCommentResp) XXX_DiscardUnknown() { - xxx_messageInfo_SetFriendCommentResp.DiscardUnknown(m) +func (m *SetFriendRemarkResp) XXX_DiscardUnknown() { + xxx_messageInfo_SetFriendRemarkResp.DiscardUnknown(m) } -var xxx_messageInfo_SetFriendCommentResp proto.InternalMessageInfo +var xxx_messageInfo_SetFriendRemarkResp proto.InternalMessageInfo -func (m *SetFriendCommentResp) GetCommonResp() *CommonResp { +func (m *SetFriendRemarkResp) GetCommonResp() *CommonResp { if m != nil { return m.CommonResp } @@ -1292,7 +1292,7 @@ func (m *GetSelfApplyListReq) Reset() { *m = GetSelfApplyListReq{} } func (m *GetSelfApplyListReq) String() string { return proto.CompactTextString(m) } func (*GetSelfApplyListReq) ProtoMessage() {} func (*GetSelfApplyListReq) Descriptor() ([]byte, []int) { - return fileDescriptor_friend_a4d5a06cd0a3d99f, []int{28} + return fileDescriptor_friend_ea5e0cd91ac7f1e7, []int{28} } func (m *GetSelfApplyListReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetSelfApplyListReq.Unmarshal(m, b) @@ -1332,7 +1332,7 @@ func (m *GetSelfApplyListResp) Reset() { *m = GetSelfApplyListResp{} } func (m *GetSelfApplyListResp) String() string { return proto.CompactTextString(m) } func (*GetSelfApplyListResp) ProtoMessage() {} func (*GetSelfApplyListResp) Descriptor() ([]byte, []int) { - return fileDescriptor_friend_a4d5a06cd0a3d99f, []int{29} + return fileDescriptor_friend_ea5e0cd91ac7f1e7, []int{29} } func (m *GetSelfApplyListResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetSelfApplyListResp.Unmarshal(m, b) @@ -1400,8 +1400,8 @@ func init() { proto.RegisterType((*DeleteFriendResp)(nil), "friend.DeleteFriendResp") proto.RegisterType((*AddFriendResponseReq)(nil), "friend.AddFriendResponseReq") proto.RegisterType((*AddFriendResponseResp)(nil), "friend.AddFriendResponseResp") - proto.RegisterType((*SetFriendCommentReq)(nil), "friend.SetFriendCommentReq") - proto.RegisterType((*SetFriendCommentResp)(nil), "friend.SetFriendCommentResp") + proto.RegisterType((*SetFriendRemarkReq)(nil), "friend.SetFriendRemarkReq") + proto.RegisterType((*SetFriendRemarkResp)(nil), "friend.SetFriendRemarkResp") proto.RegisterType((*GetSelfApplyListReq)(nil), "friend.GetSelfApplyListReq") proto.RegisterType((*GetSelfApplyListResp)(nil), "friend.GetSelfApplyListResp") } @@ -1429,7 +1429,7 @@ type FriendClient interface { GetBlacklist(ctx context.Context, in *GetBlacklistReq, opts ...grpc.CallOption) (*GetBlacklistResp, error) DeleteFriend(ctx context.Context, in *DeleteFriendReq, opts ...grpc.CallOption) (*DeleteFriendResp, error) AddFriendResponse(ctx context.Context, in *AddFriendResponseReq, opts ...grpc.CallOption) (*AddFriendResponseResp, error) - SetFriendComment(ctx context.Context, in *SetFriendCommentReq, opts ...grpc.CallOption) (*SetFriendCommentResp, error) + SetFriendComment(ctx context.Context, in *SetFriendRemarkReq, opts ...grpc.CallOption) (*SetFriendRemarkResp, error) ImportFriend(ctx context.Context, in *ImportFriendReq, opts ...grpc.CallOption) (*ImportFriendResp, error) } @@ -1540,8 +1540,8 @@ func (c *friendClient) AddFriendResponse(ctx context.Context, in *AddFriendRespo return out, nil } -func (c *friendClient) SetFriendComment(ctx context.Context, in *SetFriendCommentReq, opts ...grpc.CallOption) (*SetFriendCommentResp, error) { - out := new(SetFriendCommentResp) +func (c *friendClient) SetFriendComment(ctx context.Context, in *SetFriendRemarkReq, opts ...grpc.CallOption) (*SetFriendRemarkResp, error) { + out := new(SetFriendRemarkResp) err := grpc.Invoke(ctx, "/friend.friend/setFriendComment", in, out, c.cc, opts...) if err != nil { return nil, err @@ -1573,7 +1573,7 @@ type FriendServer interface { GetBlacklist(context.Context, *GetBlacklistReq) (*GetBlacklistResp, error) DeleteFriend(context.Context, *DeleteFriendReq) (*DeleteFriendResp, error) AddFriendResponse(context.Context, *AddFriendResponseReq) (*AddFriendResponseResp, error) - SetFriendComment(context.Context, *SetFriendCommentReq) (*SetFriendCommentResp, error) + SetFriendComment(context.Context, *SetFriendRemarkReq) (*SetFriendRemarkResp, error) ImportFriend(context.Context, *ImportFriendReq) (*ImportFriendResp, error) } @@ -1780,7 +1780,7 @@ func _Friend_AddFriendResponse_Handler(srv interface{}, ctx context.Context, dec } func _Friend_SetFriendComment_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(SetFriendCommentReq) + in := new(SetFriendRemarkReq) if err := dec(in); err != nil { return nil, err } @@ -1792,7 +1792,7 @@ func _Friend_SetFriendComment_Handler(srv interface{}, ctx context.Context, dec FullMethod: "/friend.friend/SetFriendComment", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(FriendServer).SetFriendComment(ctx, req.(*SetFriendCommentReq)) + return srv.(FriendServer).SetFriendComment(ctx, req.(*SetFriendRemarkReq)) } return interceptor(ctx, in, info, handler) } @@ -1876,66 +1876,66 @@ var _Friend_serviceDesc = grpc.ServiceDesc{ Metadata: "friend/friend.proto", } -func init() { proto.RegisterFile("friend/friend.proto", fileDescriptor_friend_a4d5a06cd0a3d99f) } - -var fileDescriptor_friend_a4d5a06cd0a3d99f = []byte{ - // 919 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x57, 0xcb, 0x4f, 0xf3, 0x46, - 0x10, 0x97, 0x09, 0x84, 0x64, 0x12, 0x48, 0xb2, 0x09, 0x90, 0x9a, 0x87, 0x52, 0x1f, 0xaa, 0xa8, - 0x87, 0x44, 0x4a, 0x45, 0x55, 0x4a, 0x5b, 0x14, 0x08, 0xa1, 0xa6, 0xa5, 0x20, 0x53, 0x2e, 0x55, - 0x25, 0x64, 0xf0, 0x26, 0xb5, 0xe2, 0xd8, 0x8b, 0xd7, 0x14, 0xf5, 0xd2, 0x43, 0x0f, 0xbd, 0x56, - 0xaa, 0x7a, 0xeb, 0xad, 0x7f, 0x69, 0x65, 0xaf, 0x1d, 0xaf, 0x1f, 0x41, 0x9f, 0xcd, 0x27, 0x7d, - 0x27, 0x98, 0x99, 0x9d, 0xf1, 0x6f, 0x1e, 0xfb, 0x9b, 0x0d, 0x34, 0x27, 0xb6, 0x8e, 0x4d, 0xad, - 0xcf, 0xfe, 0xf4, 0x88, 0x6d, 0x39, 0x16, 0x2a, 0x32, 0x49, 0xfc, 0xf8, 0x9a, 0x60, 0xf3, 0x5e, - 0xbe, 0xea, 0x93, 0xd9, 0xb4, 0xef, 0x99, 0xfa, 0x54, 0x9b, 0xdd, 0xbf, 0xd0, 0xfe, 0x0b, 0x65, - 0x47, 0xa5, 0x6f, 0x00, 0xce, 0xac, 0xf9, 0xdc, 0x32, 0x15, 0x4c, 0x09, 0x6a, 0xc3, 0x3a, 0xb6, - 0xed, 0x33, 0x4b, 0xc3, 0x6d, 0xa1, 0x23, 0x74, 0xd7, 0x94, 0x40, 0x44, 0xdb, 0x50, 0xc4, 0xb6, - 0x7d, 0x45, 0xa7, 0xed, 0x95, 0x8e, 0xd0, 0x2d, 0x2b, 0xbe, 0x24, 0xfd, 0x21, 0x40, 0xd1, 0x0d, - 0x20, 0x8f, 0x90, 0x08, 0xa5, 0x6b, 0x72, 0x47, 0xb1, 0x2d, 0x8f, 0x3c, 0xef, 0xb2, 0xb2, 0x90, - 0x51, 0x07, 0x2a, 0xd7, 0x04, 0xdb, 0xaa, 0xa3, 0x5b, 0xa6, 0x3c, 0xf2, 0x63, 0xf0, 0x2a, 0xd7, - 0xfb, 0x47, 0xcb, 0xf7, 0x5e, 0x65, 0xde, 0x81, 0x8c, 0x0e, 0x00, 0xc6, 0xb6, 0x35, 0xf7, 0xad, - 0x6b, 0x9e, 0x95, 0xd3, 0x48, 0xc7, 0xd0, 0xb8, 0xc0, 0xce, 0xd8, 0x4b, 0x9a, 0xca, 0xe6, 0xc4, - 0x52, 0xf0, 0x13, 0xfa, 0x24, 0x00, 0xe6, 0x81, 0xa9, 0x0c, 0x36, 0x7b, 0x7e, 0x8d, 0x98, 0x56, - 0xf1, 0xad, 0xd2, 0x9f, 0x02, 0xe7, 0xcd, 0x9c, 0x59, 0x25, 0xce, 0xa3, 0x95, 0x38, 0x0f, 0x2b, - 0x71, 0x1e, 0xa9, 0x04, 0x93, 0xd0, 0x09, 0x6c, 0x86, 0x31, 0xbe, 0xd7, 0xa9, 0xd3, 0x2e, 0x74, - 0x0a, 0xdd, 0xca, 0x60, 0xa7, 0x67, 0xb9, 0x5d, 0xd0, 0xe7, 0xf7, 0x54, 0x9b, 0xf5, 0xb8, 0xcf, - 0xc4, 0x8e, 0x4b, 0x3f, 0x40, 0x75, 0xa8, 0x69, 0x4c, 0x99, 0x21, 0x01, 0x17, 0x90, 0x82, 0x9f, - 0x38, 0x40, 0x4c, 0x92, 0xce, 0x60, 0x83, 0x8b, 0x47, 0x09, 0x1a, 0xf0, 0xbd, 0xf6, 0x83, 0x22, - 0x3e, 0x28, 0xb3, 0x28, 0xdc, 0x29, 0xe9, 0x5f, 0x01, 0x6a, 0xf2, 0x9c, 0x58, 0xb6, 0x13, 0x02, - 0xfb, 0x14, 0xea, 0x4c, 0x60, 0xe5, 0xf7, 0x72, 0x15, 0x3a, 0x85, 0x6e, 0x59, 0x49, 0xe8, 0xdf, - 0xa1, 0xf1, 0xd1, 0xe6, 0x16, 0xe2, 0xcd, 0x8d, 0x8c, 0xd5, 0x6a, 0x74, 0xac, 0xa4, 0xdf, 0xa1, - 0x1e, 0x05, 0x97, 0x2f, 0x4b, 0xf4, 0x39, 0x6c, 0x8f, 0x55, 0xdd, 0xc0, 0x5a, 0x22, 0xaf, 0x15, - 0x2f, 0xaf, 0x25, 0x56, 0xe9, 0x04, 0xb6, 0x16, 0xa3, 0x33, 0x24, 0xc4, 0xf8, 0xcd, 0xd5, 0x66, - 0x19, 0xbe, 0x7f, 0x04, 0xd8, 0x4e, 0x8b, 0x90, 0x6b, 0x02, 0xbf, 0x85, 0xc6, 0xa2, 0x49, 0xcf, - 0x98, 0x3a, 0xdc, 0x10, 0x8a, 0x29, 0x43, 0xe8, 0x9f, 0x52, 0x92, 0x4e, 0xd2, 0x97, 0x50, 0x5f, - 0xa0, 0xca, 0x9a, 0x52, 0xe4, 0x3e, 0xbd, 0x21, 0x9b, 0x37, 0xdf, 0xa7, 0x23, 0xa8, 0x0d, 0x35, - 0xed, 0xd4, 0x50, 0x1f, 0x67, 0x46, 0xc6, 0x1c, 0xc6, 0x50, 0x8f, 0xba, 0xe6, 0xbc, 0x3d, 0x5f, - 0x01, 0x52, 0xf0, 0xdc, 0xfa, 0x15, 0xe7, 0x42, 0x21, 0x43, 0x33, 0xe1, 0x9d, 0x13, 0xc8, 0x11, - 0xd4, 0x2e, 0xb0, 0x93, 0x0b, 0xc5, 0x5f, 0x82, 0x37, 0x0c, 0x51, 0x0c, 0xd9, 0xdb, 0x29, 0x43, - 0xc3, 0x0b, 0xe1, 0xdd, 0x9e, 0x68, 0x47, 0x77, 0x23, 0x1d, 0xbd, 0x79, 0x7e, 0x30, 0xf4, 0xc7, - 0xe0, 0x98, 0x92, 0xf4, 0x92, 0x0e, 0xa1, 0x22, 0xd3, 0xcc, 0x3c, 0x29, 0xfd, 0x0c, 0xd5, 0xd0, - 0x2d, 0x57, 0x0e, 0x22, 0x94, 0x5c, 0x4f, 0xcb, 0xa4, 0xd8, 0x23, 0xaa, 0x92, 0xb2, 0x90, 0xdd, - 0x2b, 0x23, 0x53, 0xd9, 0xf4, 0xd0, 0x66, 0xbd, 0x32, 0x2a, 0x34, 0x62, 0xbe, 0xef, 0x1d, 0xde, - 0x11, 0xd4, 0x46, 0xd8, 0xc0, 0x0e, 0xce, 0x5e, 0xb7, 0x31, 0xd4, 0xa3, 0xae, 0x39, 0x67, 0x90, - 0x40, 0x2b, 0xb2, 0x8f, 0x5c, 0x5c, 0x59, 0xf6, 0x1c, 0x82, 0xd5, 0x89, 0xa1, 0xb2, 0xa4, 0xd7, - 0x14, 0xef, 0x7f, 0xb4, 0x07, 0xe5, 0x5f, 0x54, 0x53, 0x33, 0xb0, 0x5b, 0x0d, 0xb6, 0x3b, 0x42, - 0x85, 0xf4, 0x1d, 0x6c, 0xa5, 0x7c, 0x31, 0x27, 0xfc, 0x3b, 0x68, 0xde, 0x06, 0xb4, 0xe6, 0xaa, - 0xb1, 0xe9, 0x64, 0xde, 0xd2, 0x73, 0xd5, 0x9e, 0x85, 0x5b, 0xda, 0x95, 0xa4, 0x4b, 0x68, 0x25, - 0xc3, 0xe6, 0x84, 0xf8, 0x35, 0x34, 0x2f, 0xb0, 0x73, 0x8b, 0x8d, 0x49, 0xae, 0x65, 0xf4, 0xb7, - 0x00, 0xad, 0xa4, 0xff, 0x87, 0x5d, 0x45, 0x83, 0xff, 0xd6, 0xc1, 0x7f, 0xce, 0xa2, 0x2f, 0xa0, - 0xac, 0x06, 0xed, 0x44, 0xad, 0x20, 0x09, 0xfe, 0xcd, 0x24, 0x6e, 0xa5, 0x68, 0x29, 0x41, 0xb7, - 0x80, 0xa6, 0x89, 0x2d, 0x8b, 0xf6, 0x83, 0xc3, 0xa9, 0x3b, 0x5c, 0x3c, 0x78, 0xcd, 0x4c, 0x09, - 0xba, 0x82, 0xfa, 0x34, 0x56, 0x2d, 0xb4, 0xcb, 0xf9, 0xc4, 0xfb, 0x20, 0xee, 0x2d, 0x37, 0x52, - 0x82, 0x46, 0xb0, 0x31, 0xe5, 0xd7, 0x26, 0x6a, 0x27, 0xbe, 0x1f, 0x04, 0xfa, 0x68, 0x89, 0x85, - 0x12, 0x34, 0x84, 0xaa, 0xca, 0x6d, 0x2e, 0xb4, 0xc3, 0x15, 0x84, 0xa7, 0x7f, 0xb1, 0x9d, 0x6e, - 0xa0, 0x04, 0x5d, 0x42, 0xcd, 0x8e, 0xae, 0x1d, 0x24, 0x06, 0x87, 0x93, 0xdb, 0x4c, 0xdc, 0x5d, - 0x6a, 0xa3, 0x04, 0x1d, 0x42, 0x49, 0xf7, 0x39, 0x17, 0x35, 0x83, 0x83, 0x1c, 0x79, 0x8b, 0xad, - 0xa4, 0x92, 0xd5, 0x42, 0xe7, 0x09, 0x31, 0xac, 0x45, 0x9c, 0x63, 0xc3, 0x5a, 0x24, 0x19, 0x74, - 0x08, 0xd5, 0x29, 0xb7, 0xb8, 0xc2, 0x5a, 0xc4, 0x56, 0xa1, 0xd8, 0x4e, 0x37, 0xb0, 0x10, 0x1a, - 0xc7, 0x7d, 0x61, 0x88, 0x18, 0x99, 0x86, 0x21, 0x12, 0x54, 0x79, 0x03, 0x0d, 0x35, 0x4e, 0x42, - 0x68, 0x2f, 0x75, 0x4e, 0x7d, 0x46, 0x14, 0xf7, 0x5f, 0xb1, 0xb2, 0xc1, 0xa3, 0x31, 0xca, 0x08, - 0x07, 0x2f, 0x85, 0xa3, 0xc2, 0xc1, 0x4b, 0x65, 0x9a, 0x21, 0x54, 0x75, 0xee, 0x11, 0x1d, 0xe6, - 0x18, 0x7b, 0xf7, 0x87, 0x39, 0xc6, 0xdf, 0xdc, 0xa7, 0x8d, 0x9f, 0x6a, 0x3d, 0xff, 0x27, 0xe8, - 0x31, 0xfb, 0xf3, 0x50, 0xf4, 0x7e, 0x5f, 0x7e, 0xf6, 0x7f, 0x00, 0x00, 0x00, 0xff, 0xff, 0xcc, - 0xd1, 0x9d, 0x13, 0xa1, 0x0e, 0x00, 0x00, +func init() { proto.RegisterFile("friend/friend.proto", fileDescriptor_friend_ea5e0cd91ac7f1e7) } + +var fileDescriptor_friend_ea5e0cd91ac7f1e7 = []byte{ + // 924 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x57, 0xcd, 0x6f, 0xe3, 0x44, + 0x14, 0x97, 0x37, 0x6d, 0x36, 0x79, 0xc9, 0x6e, 0x92, 0x97, 0xb4, 0x1b, 0xdc, 0xee, 0x2a, 0xf8, + 0x80, 0x22, 0x0e, 0x89, 0x14, 0xb4, 0x88, 0xb2, 0xc0, 0x2a, 0xdb, 0x34, 0xc5, 0x2c, 0xa5, 0x2b, + 0x77, 0xb9, 0x20, 0xa4, 0xca, 0x5b, 0x4f, 0x82, 0x15, 0xc7, 0x9e, 0x7a, 0x5c, 0x2a, 0x2e, 0x1c, + 0x38, 0x70, 0x45, 0x42, 0xdc, 0xb8, 0xf0, 0xa7, 0x22, 0x7b, 0xec, 0x78, 0xfc, 0x91, 0x0a, 0xbb, + 0x48, 0x7b, 0x6a, 0xdf, 0x7b, 0xf3, 0x7b, 0x7e, 0x5f, 0xf3, 0x7e, 0x13, 0xe8, 0x2e, 0x5c, 0x93, + 0xd8, 0xc6, 0x98, 0xff, 0x19, 0x51, 0xd7, 0xf1, 0x1c, 0xac, 0x72, 0x49, 0xfe, 0xf0, 0x9c, 0x12, + 0xfb, 0x52, 0x3d, 0x1b, 0xd3, 0xd5, 0x72, 0x1c, 0x98, 0xc6, 0xcc, 0x58, 0x5d, 0xde, 0xb2, 0xf1, + 0x2d, 0xe3, 0x47, 0x95, 0xaf, 0x00, 0x8e, 0x9d, 0xf5, 0xda, 0xb1, 0x35, 0xc2, 0x28, 0xf6, 0xe1, + 0x21, 0x71, 0xdd, 0x63, 0xc7, 0x20, 0x7d, 0x69, 0x20, 0x0d, 0x77, 0xb5, 0x48, 0xc4, 0x7d, 0xa8, + 0x12, 0xd7, 0x3d, 0x63, 0xcb, 0xfe, 0x83, 0x81, 0x34, 0xac, 0x6b, 0xa1, 0xa4, 0xfc, 0x26, 0x41, + 0xd5, 0x77, 0xa0, 0xce, 0x50, 0x86, 0xda, 0x39, 0xfd, 0x9e, 0x11, 0x57, 0x9d, 0x05, 0xe8, 0xba, + 0xb6, 0x91, 0x71, 0x00, 0x8d, 0x73, 0x4a, 0x5c, 0xdd, 0x33, 0x1d, 0x5b, 0x9d, 0x85, 0x3e, 0x44, + 0x95, 0x8f, 0x7e, 0xeb, 0x84, 0xe8, 0x1d, 0x8e, 0x8e, 0x64, 0x7c, 0x06, 0x30, 0x77, 0x9d, 0x75, + 0x68, 0xdd, 0x0d, 0xac, 0x82, 0x46, 0x79, 0x01, 0x9d, 0x53, 0xe2, 0xcd, 0x83, 0xa4, 0x99, 0x6a, + 0x2f, 0x1c, 0x8d, 0x5c, 0xe3, 0x47, 0x51, 0x60, 0x41, 0x30, 0x8d, 0xc9, 0xe3, 0x51, 0x58, 0x23, + 0xae, 0xd5, 0x42, 0xab, 0xf2, 0xbb, 0x24, 0xa0, 0x39, 0x98, 0x57, 0xe2, 0x24, 0x59, 0x89, 0x93, + 0xb8, 0x12, 0x27, 0x89, 0x4a, 0x70, 0x09, 0x5f, 0xc2, 0xe3, 0xd8, 0xc7, 0xb7, 0x26, 0xf3, 0xfa, + 0x95, 0x41, 0x65, 0xd8, 0x98, 0x3c, 0x19, 0x39, 0x7e, 0x17, 0xcc, 0xf5, 0x25, 0x33, 0x56, 0x23, + 0xe1, 0x33, 0xa9, 0xe3, 0xca, 0x77, 0xd0, 0x9c, 0x1a, 0x06, 0x57, 0x16, 0x48, 0xc0, 0x0f, 0x48, + 0x23, 0xd7, 0x42, 0x40, 0x5c, 0x52, 0x8e, 0xe1, 0x91, 0xe0, 0x8f, 0x51, 0x9c, 0x88, 0xbd, 0x0e, + 0x9d, 0xa2, 0xe8, 0x94, 0x5b, 0x34, 0xe1, 0x94, 0xf2, 0xb7, 0x04, 0x2d, 0x75, 0x4d, 0x1d, 0xd7, + 0x8b, 0x03, 0xfb, 0x18, 0xda, 0x5c, 0xe0, 0xe5, 0x0f, 0x72, 0x95, 0x06, 0x95, 0x61, 0x5d, 0xcb, + 0xe8, 0xff, 0x43, 0xe3, 0x93, 0xcd, 0xad, 0xa4, 0x9b, 0x9b, 0x18, 0xab, 0x9d, 0xe4, 0x58, 0x29, + 0xbf, 0x42, 0x3b, 0x19, 0x5c, 0xb9, 0x2c, 0xf1, 0x53, 0xd8, 0x9f, 0xeb, 0xa6, 0x45, 0x8c, 0x4c, + 0x5e, 0x0f, 0x82, 0xbc, 0xb6, 0x58, 0x95, 0x97, 0xb0, 0xb7, 0x19, 0x9d, 0x29, 0xa5, 0xd6, 0x2f, + 0xbe, 0xb6, 0xc8, 0xf0, 0xfd, 0x25, 0xc1, 0x7e, 0x9e, 0x87, 0x52, 0x13, 0xf8, 0x35, 0x74, 0x36, + 0x4d, 0xba, 0x21, 0xcc, 0x13, 0x86, 0x50, 0xce, 0x19, 0xc2, 0xf0, 0x94, 0x96, 0x05, 0x29, 0x9f, + 0x43, 0x7b, 0x13, 0x55, 0xd1, 0x94, 0x12, 0xf7, 0xe9, 0x1e, 0xd9, 0xdc, 0xfb, 0x3e, 0x1d, 0x41, + 0x6b, 0x6a, 0x18, 0xaf, 0x2c, 0xfd, 0x6a, 0x65, 0x15, 0xcc, 0x61, 0x0e, 0xed, 0x24, 0xb4, 0xe4, + 0xed, 0xf9, 0x02, 0x50, 0x23, 0x6b, 0xe7, 0x67, 0x52, 0x2a, 0x0a, 0x15, 0xba, 0x19, 0x74, 0xc9, + 0x40, 0x8e, 0xa0, 0x75, 0x4a, 0xbc, 0x52, 0x51, 0xfc, 0x21, 0x05, 0xc3, 0x90, 0x8c, 0xa1, 0x78, + 0x3b, 0x55, 0xe8, 0x04, 0x2e, 0x82, 0xdb, 0x93, 0xec, 0xe8, 0x41, 0xa2, 0xa3, 0x6f, 0x6e, 0xde, + 0x59, 0xe6, 0x55, 0x74, 0x4c, 0xcb, 0xa2, 0x94, 0xe7, 0xd0, 0x50, 0x59, 0xe1, 0x3d, 0xa9, 0xfc, + 0x08, 0xcd, 0x18, 0x56, 0x2a, 0x07, 0x19, 0x6a, 0x3e, 0xd2, 0xb1, 0x19, 0x09, 0x16, 0x55, 0x4d, + 0xdb, 0xc8, 0xfe, 0x95, 0x51, 0x99, 0x6a, 0x07, 0xd1, 0x16, 0xbd, 0x32, 0x3a, 0x74, 0x52, 0xd8, + 0xff, 0x3d, 0xbc, 0x23, 0x68, 0xcd, 0x88, 0x45, 0x3c, 0x52, 0xbc, 0x6e, 0x73, 0x68, 0x27, 0xa1, + 0x25, 0x67, 0x90, 0x42, 0x2f, 0xc1, 0x47, 0x7e, 0x5c, 0x45, 0x78, 0x0e, 0x61, 0x67, 0x61, 0xe9, + 0x3c, 0xe9, 0x5d, 0x2d, 0xf8, 0x1f, 0x0f, 0xa1, 0xfe, 0x93, 0x6e, 0x1b, 0x16, 0xf1, 0xab, 0xc1, + 0xb9, 0x23, 0x56, 0x28, 0xaf, 0x61, 0x2f, 0xe7, 0x8b, 0x25, 0xc3, 0x7f, 0x0b, 0x78, 0x41, 0x36, + 0x44, 0xb3, 0xd6, 0xdd, 0x55, 0x61, 0x92, 0xf6, 0x41, 0x31, 0x49, 0xfb, 0x92, 0x7f, 0xc7, 0x33, + 0x5e, 0x4b, 0x06, 0xf8, 0x25, 0x74, 0x4f, 0x89, 0x77, 0x41, 0xac, 0x45, 0x29, 0x2a, 0xfa, 0x53, + 0x82, 0x5e, 0x16, 0xff, 0x7e, 0x89, 0x68, 0xf2, 0xcf, 0x43, 0x08, 0x1f, 0xb3, 0xf8, 0x19, 0xd4, + 0xf5, 0xa8, 0x99, 0xd8, 0x8b, 0x92, 0x10, 0x5f, 0x4c, 0xf2, 0x5e, 0x8e, 0x96, 0x51, 0xbc, 0x00, + 0x5c, 0x66, 0x38, 0x16, 0x9f, 0x46, 0x87, 0x73, 0x19, 0x5c, 0x7e, 0x76, 0x97, 0x99, 0x51, 0x3c, + 0x83, 0xf6, 0x32, 0x55, 0x2d, 0x3c, 0x10, 0x30, 0xe9, 0x3e, 0xc8, 0x87, 0xdb, 0x8d, 0x8c, 0xe2, + 0x0c, 0x1e, 0x2d, 0x45, 0xd2, 0xc4, 0x7e, 0xe6, 0xfb, 0x91, 0xa3, 0x0f, 0xb6, 0x58, 0x18, 0xc5, + 0x29, 0x34, 0x75, 0x81, 0xb7, 0xf0, 0x89, 0x50, 0x10, 0x71, 0xf9, 0xcb, 0xfd, 0x7c, 0x03, 0xa3, + 0xf8, 0x0d, 0xb4, 0xdc, 0x24, 0xe9, 0xa0, 0x1c, 0x1d, 0xce, 0x72, 0x99, 0x7c, 0xb0, 0xd5, 0xc6, + 0x28, 0x3e, 0x87, 0x9a, 0x19, 0x6e, 0x5c, 0xec, 0x46, 0x07, 0x85, 0xd5, 0x2d, 0xf7, 0xb2, 0x4a, + 0x5e, 0x0b, 0x53, 0x5c, 0x87, 0x71, 0x2d, 0xd2, 0x1b, 0x36, 0xae, 0x45, 0x76, 0x7f, 0x4e, 0xa1, + 0xb9, 0x14, 0x68, 0x2b, 0xae, 0x45, 0x8a, 0x08, 0xe5, 0x7e, 0xbe, 0x81, 0xbb, 0x30, 0x84, 0xcd, + 0x17, 0xbb, 0x48, 0xad, 0xd2, 0xd8, 0x45, 0x66, 0x51, 0xbe, 0x81, 0x8e, 0x9e, 0x5e, 0x41, 0x78, + 0x98, 0x3b, 0xa7, 0xe1, 0x3e, 0x94, 0x9f, 0xde, 0x61, 0x65, 0x14, 0x5f, 0x43, 0x9b, 0x45, 0x8d, + 0xf7, 0xaf, 0x2e, 0xb1, 0x85, 0x0e, 0x65, 0x37, 0x54, 0xdc, 0xa1, 0xbc, 0x3d, 0x33, 0x85, 0xa6, + 0x29, 0x3c, 0xa0, 0xe3, 0x0c, 0x53, 0x6f, 0xfe, 0x38, 0xc3, 0xf4, 0x7b, 0xfb, 0x55, 0xe7, 0x87, + 0xd6, 0x28, 0xfc, 0xf9, 0xf9, 0x82, 0xff, 0x79, 0x57, 0x0d, 0x7e, 0x5b, 0x7e, 0xf2, 0x6f, 0x00, + 0x00, 0x00, 0xff, 0xff, 0x8d, 0xf7, 0x25, 0x0f, 0x9d, 0x0e, 0x00, 0x00, } diff --git a/pkg/proto/friend/friend.proto b/pkg/proto/friend/friend.proto index 052eb1d9d..df22713b8 100644 --- a/pkg/proto/friend/friend.proto +++ b/pkg/proto/friend/friend.proto @@ -130,11 +130,11 @@ message AddFriendResponseResp{ CommonResp CommonResp = 1; } -message SetFriendCommentReq{ +message SetFriendRemarkReq{ CommID CommID = 1; string Remark = 2; } -message SetFriendCommentResp{ +message SetFriendRemarkResp{ CommonResp CommonResp = 1; } @@ -160,6 +160,6 @@ service friend{ rpc getBlacklist(GetBlacklistReq) returns(GetBlacklistResp); rpc deleteFriend(DeleteFriendReq) returns(DeleteFriendResp); rpc addFriendResponse(AddFriendResponseReq) returns(AddFriendResponseResp); - rpc setFriendComment(SetFriendCommentReq) returns(SetFriendCommentResp); + rpc setFriendComment(SetFriendRemarkReq) returns(SetFriendRemarkResp); rpc importFriend(ImportFriendReq) returns(ImportFriendResp); } \ No newline at end of file From 5b32e0db6fca024086a95a884121f089ed0408ce Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Wed, 29 Dec 2021 14:36:13 +0800 Subject: [PATCH 323/814] Refactor code --- cmd/open_im_api/main.go | 2 +- pkg/proto/friend/friend.pb.go | 204 +++++++++++++++++----------------- pkg/proto/friend/friend.proto | 2 +- 3 files changed, 104 insertions(+), 104 deletions(-) diff --git a/cmd/open_im_api/main.go b/cmd/open_im_api/main.go index 0d77d9106..edb44e5dd 100644 --- a/cmd/open_im_api/main.go +++ b/cmd/open_im_api/main.go @@ -40,7 +40,7 @@ func main() { friendRouterGroup.POST("/remove_blacklist", friend.RemoveBlacklist) friendRouterGroup.POST("/delete_friend", friend.DeleteFriend) friendRouterGroup.POST("/add_friend_response", friend.AddFriendResponse) //1 - friendRouterGroup.POST("/set_friend_remark", friend.SetFriendComment) + friendRouterGroup.POST("/set_friend_remark", friend.SetFriendRemark) friendRouterGroup.POST("/is_friend", friend.IsFriend) friendRouterGroup.POST("/import_friend", friend.ImportFriend) } diff --git a/pkg/proto/friend/friend.pb.go b/pkg/proto/friend/friend.pb.go index b903e4be4..941dd457b 100644 --- a/pkg/proto/friend/friend.pb.go +++ b/pkg/proto/friend/friend.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_friend_ea5e0cd91ac7f1e7, []int{0} + return fileDescriptor_friend_69e6f38cd215d5ef, []int{0} } func (m *CommonResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_CommonResp.Unmarshal(m, b) @@ -84,7 +84,7 @@ func (m *CommID) Reset() { *m = CommID{} } func (m *CommID) String() string { return proto.CompactTextString(m) } func (*CommID) ProtoMessage() {} func (*CommID) Descriptor() ([]byte, []int) { - return fileDescriptor_friend_ea5e0cd91ac7f1e7, []int{1} + return fileDescriptor_friend_69e6f38cd215d5ef, []int{1} } func (m *CommID) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_CommID.Unmarshal(m, b) @@ -143,7 +143,7 @@ func (m *GetFriendsInfoReq) Reset() { *m = GetFriendsInfoReq{} } func (m *GetFriendsInfoReq) String() string { return proto.CompactTextString(m) } func (*GetFriendsInfoReq) ProtoMessage() {} func (*GetFriendsInfoReq) Descriptor() ([]byte, []int) { - return fileDescriptor_friend_ea5e0cd91ac7f1e7, []int{2} + return fileDescriptor_friend_69e6f38cd215d5ef, []int{2} } func (m *GetFriendsInfoReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetFriendsInfoReq.Unmarshal(m, b) @@ -183,7 +183,7 @@ func (m *GetFriendInfoResp) Reset() { *m = GetFriendInfoResp{} } func (m *GetFriendInfoResp) String() string { return proto.CompactTextString(m) } func (*GetFriendInfoResp) ProtoMessage() {} func (*GetFriendInfoResp) Descriptor() ([]byte, []int) { - return fileDescriptor_friend_ea5e0cd91ac7f1e7, []int{3} + return fileDescriptor_friend_69e6f38cd215d5ef, []int{3} } func (m *GetFriendInfoResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetFriendInfoResp.Unmarshal(m, b) @@ -236,7 +236,7 @@ func (m *AddFriendReq) Reset() { *m = AddFriendReq{} } func (m *AddFriendReq) String() string { return proto.CompactTextString(m) } func (*AddFriendReq) ProtoMessage() {} func (*AddFriendReq) Descriptor() ([]byte, []int) { - return fileDescriptor_friend_ea5e0cd91ac7f1e7, []int{4} + return fileDescriptor_friend_69e6f38cd215d5ef, []int{4} } func (m *AddFriendReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_AddFriendReq.Unmarshal(m, b) @@ -281,7 +281,7 @@ func (m *AddFriendResp) Reset() { *m = AddFriendResp{} } func (m *AddFriendResp) String() string { return proto.CompactTextString(m) } func (*AddFriendResp) ProtoMessage() {} func (*AddFriendResp) Descriptor() ([]byte, []int) { - return fileDescriptor_friend_ea5e0cd91ac7f1e7, []int{5} + return fileDescriptor_friend_69e6f38cd215d5ef, []int{5} } func (m *AddFriendResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_AddFriendResp.Unmarshal(m, b) @@ -322,7 +322,7 @@ func (m *ImportFriendReq) Reset() { *m = ImportFriendReq{} } func (m *ImportFriendReq) String() string { return proto.CompactTextString(m) } func (*ImportFriendReq) ProtoMessage() {} func (*ImportFriendReq) Descriptor() ([]byte, []int) { - return fileDescriptor_friend_ea5e0cd91ac7f1e7, []int{6} + return fileDescriptor_friend_69e6f38cd215d5ef, []int{6} } func (m *ImportFriendReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ImportFriendReq.Unmarshal(m, b) @@ -382,7 +382,7 @@ func (m *ImportFriendResp) Reset() { *m = ImportFriendResp{} } func (m *ImportFriendResp) String() string { return proto.CompactTextString(m) } func (*ImportFriendResp) ProtoMessage() {} func (*ImportFriendResp) Descriptor() ([]byte, []int) { - return fileDescriptor_friend_ea5e0cd91ac7f1e7, []int{7} + return fileDescriptor_friend_69e6f38cd215d5ef, []int{7} } func (m *ImportFriendResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ImportFriendResp.Unmarshal(m, b) @@ -427,7 +427,7 @@ func (m *GetFriendApplyListReq) Reset() { *m = GetFriendApplyListReq{} } func (m *GetFriendApplyListReq) String() string { return proto.CompactTextString(m) } func (*GetFriendApplyListReq) ProtoMessage() {} func (*GetFriendApplyListReq) Descriptor() ([]byte, []int) { - return fileDescriptor_friend_ea5e0cd91ac7f1e7, []int{8} + return fileDescriptor_friend_69e6f38cd215d5ef, []int{8} } func (m *GetFriendApplyListReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetFriendApplyListReq.Unmarshal(m, b) @@ -467,7 +467,7 @@ func (m *GetFriendApplyListResp) Reset() { *m = GetFriendApplyListResp{} func (m *GetFriendApplyListResp) String() string { return proto.CompactTextString(m) } func (*GetFriendApplyListResp) ProtoMessage() {} func (*GetFriendApplyListResp) Descriptor() ([]byte, []int) { - return fileDescriptor_friend_ea5e0cd91ac7f1e7, []int{9} + return fileDescriptor_friend_69e6f38cd215d5ef, []int{9} } func (m *GetFriendApplyListResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetFriendApplyListResp.Unmarshal(m, b) @@ -519,7 +519,7 @@ func (m *GetFriendListReq) Reset() { *m = GetFriendListReq{} } func (m *GetFriendListReq) String() string { return proto.CompactTextString(m) } func (*GetFriendListReq) ProtoMessage() {} func (*GetFriendListReq) Descriptor() ([]byte, []int) { - return fileDescriptor_friend_ea5e0cd91ac7f1e7, []int{10} + return fileDescriptor_friend_69e6f38cd215d5ef, []int{10} } func (m *GetFriendListReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetFriendListReq.Unmarshal(m, b) @@ -559,7 +559,7 @@ func (m *GetFriendListResp) Reset() { *m = GetFriendListResp{} } func (m *GetFriendListResp) String() string { return proto.CompactTextString(m) } func (*GetFriendListResp) ProtoMessage() {} func (*GetFriendListResp) Descriptor() ([]byte, []int) { - return fileDescriptor_friend_ea5e0cd91ac7f1e7, []int{11} + return fileDescriptor_friend_69e6f38cd215d5ef, []int{11} } func (m *GetFriendListResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetFriendListResp.Unmarshal(m, b) @@ -611,7 +611,7 @@ func (m *AddBlacklistReq) Reset() { *m = AddBlacklistReq{} } func (m *AddBlacklistReq) String() string { return proto.CompactTextString(m) } func (*AddBlacklistReq) ProtoMessage() {} func (*AddBlacklistReq) Descriptor() ([]byte, []int) { - return fileDescriptor_friend_ea5e0cd91ac7f1e7, []int{12} + return fileDescriptor_friend_69e6f38cd215d5ef, []int{12} } func (m *AddBlacklistReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_AddBlacklistReq.Unmarshal(m, b) @@ -649,7 +649,7 @@ func (m *AddBlacklistResp) Reset() { *m = AddBlacklistResp{} } func (m *AddBlacklistResp) String() string { return proto.CompactTextString(m) } func (*AddBlacklistResp) ProtoMessage() {} func (*AddBlacklistResp) Descriptor() ([]byte, []int) { - return fileDescriptor_friend_ea5e0cd91ac7f1e7, []int{13} + return fileDescriptor_friend_69e6f38cd215d5ef, []int{13} } func (m *AddBlacklistResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_AddBlacklistResp.Unmarshal(m, b) @@ -687,7 +687,7 @@ func (m *RemoveBlacklistReq) Reset() { *m = RemoveBlacklistReq{} } func (m *RemoveBlacklistReq) String() string { return proto.CompactTextString(m) } func (*RemoveBlacklistReq) ProtoMessage() {} func (*RemoveBlacklistReq) Descriptor() ([]byte, []int) { - return fileDescriptor_friend_ea5e0cd91ac7f1e7, []int{14} + return fileDescriptor_friend_69e6f38cd215d5ef, []int{14} } func (m *RemoveBlacklistReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_RemoveBlacklistReq.Unmarshal(m, b) @@ -725,7 +725,7 @@ func (m *RemoveBlacklistResp) Reset() { *m = RemoveBlacklistResp{} } func (m *RemoveBlacklistResp) String() string { return proto.CompactTextString(m) } func (*RemoveBlacklistResp) ProtoMessage() {} func (*RemoveBlacklistResp) Descriptor() ([]byte, []int) { - return fileDescriptor_friend_ea5e0cd91ac7f1e7, []int{15} + return fileDescriptor_friend_69e6f38cd215d5ef, []int{15} } func (m *RemoveBlacklistResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_RemoveBlacklistResp.Unmarshal(m, b) @@ -763,7 +763,7 @@ func (m *GetBlacklistReq) Reset() { *m = GetBlacklistReq{} } func (m *GetBlacklistReq) String() string { return proto.CompactTextString(m) } func (*GetBlacklistReq) ProtoMessage() {} func (*GetBlacklistReq) Descriptor() ([]byte, []int) { - return fileDescriptor_friend_ea5e0cd91ac7f1e7, []int{16} + return fileDescriptor_friend_69e6f38cd215d5ef, []int{16} } func (m *GetBlacklistReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetBlacklistReq.Unmarshal(m, b) @@ -803,7 +803,7 @@ func (m *GetBlacklistResp) Reset() { *m = GetBlacklistResp{} } func (m *GetBlacklistResp) String() string { return proto.CompactTextString(m) } func (*GetBlacklistResp) ProtoMessage() {} func (*GetBlacklistResp) Descriptor() ([]byte, []int) { - return fileDescriptor_friend_ea5e0cd91ac7f1e7, []int{17} + return fileDescriptor_friend_69e6f38cd215d5ef, []int{17} } func (m *GetBlacklistResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetBlacklistResp.Unmarshal(m, b) @@ -855,7 +855,7 @@ func (m *IsFriendReq) Reset() { *m = IsFriendReq{} } func (m *IsFriendReq) String() string { return proto.CompactTextString(m) } func (*IsFriendReq) ProtoMessage() {} func (*IsFriendReq) Descriptor() ([]byte, []int) { - return fileDescriptor_friend_ea5e0cd91ac7f1e7, []int{18} + return fileDescriptor_friend_69e6f38cd215d5ef, []int{18} } func (m *IsFriendReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_IsFriendReq.Unmarshal(m, b) @@ -895,7 +895,7 @@ func (m *IsFriendResp) Reset() { *m = IsFriendResp{} } func (m *IsFriendResp) String() string { return proto.CompactTextString(m) } func (*IsFriendResp) ProtoMessage() {} func (*IsFriendResp) Descriptor() ([]byte, []int) { - return fileDescriptor_friend_ea5e0cd91ac7f1e7, []int{19} + return fileDescriptor_friend_69e6f38cd215d5ef, []int{19} } func (m *IsFriendResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_IsFriendResp.Unmarshal(m, b) @@ -947,7 +947,7 @@ func (m *IsInBlackListReq) Reset() { *m = IsInBlackListReq{} } func (m *IsInBlackListReq) String() string { return proto.CompactTextString(m) } func (*IsInBlackListReq) ProtoMessage() {} func (*IsInBlackListReq) Descriptor() ([]byte, []int) { - return fileDescriptor_friend_ea5e0cd91ac7f1e7, []int{20} + return fileDescriptor_friend_69e6f38cd215d5ef, []int{20} } func (m *IsInBlackListReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_IsInBlackListReq.Unmarshal(m, b) @@ -987,7 +987,7 @@ func (m *IsInBlackListResp) Reset() { *m = IsInBlackListResp{} } func (m *IsInBlackListResp) String() string { return proto.CompactTextString(m) } func (*IsInBlackListResp) ProtoMessage() {} func (*IsInBlackListResp) Descriptor() ([]byte, []int) { - return fileDescriptor_friend_ea5e0cd91ac7f1e7, []int{21} + return fileDescriptor_friend_69e6f38cd215d5ef, []int{21} } func (m *IsInBlackListResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_IsInBlackListResp.Unmarshal(m, b) @@ -1039,7 +1039,7 @@ func (m *DeleteFriendReq) Reset() { *m = DeleteFriendReq{} } func (m *DeleteFriendReq) String() string { return proto.CompactTextString(m) } func (*DeleteFriendReq) ProtoMessage() {} func (*DeleteFriendReq) Descriptor() ([]byte, []int) { - return fileDescriptor_friend_ea5e0cd91ac7f1e7, []int{22} + return fileDescriptor_friend_69e6f38cd215d5ef, []int{22} } func (m *DeleteFriendReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_DeleteFriendReq.Unmarshal(m, b) @@ -1077,7 +1077,7 @@ func (m *DeleteFriendResp) Reset() { *m = DeleteFriendResp{} } func (m *DeleteFriendResp) String() string { return proto.CompactTextString(m) } func (*DeleteFriendResp) ProtoMessage() {} func (*DeleteFriendResp) Descriptor() ([]byte, []int) { - return fileDescriptor_friend_ea5e0cd91ac7f1e7, []int{23} + return fileDescriptor_friend_69e6f38cd215d5ef, []int{23} } func (m *DeleteFriendResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_DeleteFriendResp.Unmarshal(m, b) @@ -1118,7 +1118,7 @@ func (m *AddFriendResponseReq) Reset() { *m = AddFriendResponseReq{} } func (m *AddFriendResponseReq) String() string { return proto.CompactTextString(m) } func (*AddFriendResponseReq) ProtoMessage() {} func (*AddFriendResponseReq) Descriptor() ([]byte, []int) { - return fileDescriptor_friend_ea5e0cd91ac7f1e7, []int{24} + return fileDescriptor_friend_69e6f38cd215d5ef, []int{24} } func (m *AddFriendResponseReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_AddFriendResponseReq.Unmarshal(m, b) @@ -1170,7 +1170,7 @@ func (m *AddFriendResponseResp) Reset() { *m = AddFriendResponseResp{} } func (m *AddFriendResponseResp) String() string { return proto.CompactTextString(m) } func (*AddFriendResponseResp) ProtoMessage() {} func (*AddFriendResponseResp) Descriptor() ([]byte, []int) { - return fileDescriptor_friend_ea5e0cd91ac7f1e7, []int{25} + return fileDescriptor_friend_69e6f38cd215d5ef, []int{25} } func (m *AddFriendResponseResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_AddFriendResponseResp.Unmarshal(m, b) @@ -1209,7 +1209,7 @@ func (m *SetFriendRemarkReq) Reset() { *m = SetFriendRemarkReq{} } func (m *SetFriendRemarkReq) String() string { return proto.CompactTextString(m) } func (*SetFriendRemarkReq) ProtoMessage() {} func (*SetFriendRemarkReq) Descriptor() ([]byte, []int) { - return fileDescriptor_friend_ea5e0cd91ac7f1e7, []int{26} + return fileDescriptor_friend_69e6f38cd215d5ef, []int{26} } func (m *SetFriendRemarkReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SetFriendRemarkReq.Unmarshal(m, b) @@ -1254,7 +1254,7 @@ func (m *SetFriendRemarkResp) Reset() { *m = SetFriendRemarkResp{} } func (m *SetFriendRemarkResp) String() string { return proto.CompactTextString(m) } func (*SetFriendRemarkResp) ProtoMessage() {} func (*SetFriendRemarkResp) Descriptor() ([]byte, []int) { - return fileDescriptor_friend_ea5e0cd91ac7f1e7, []int{27} + return fileDescriptor_friend_69e6f38cd215d5ef, []int{27} } func (m *SetFriendRemarkResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SetFriendRemarkResp.Unmarshal(m, b) @@ -1292,7 +1292,7 @@ func (m *GetSelfApplyListReq) Reset() { *m = GetSelfApplyListReq{} } func (m *GetSelfApplyListReq) String() string { return proto.CompactTextString(m) } func (*GetSelfApplyListReq) ProtoMessage() {} func (*GetSelfApplyListReq) Descriptor() ([]byte, []int) { - return fileDescriptor_friend_ea5e0cd91ac7f1e7, []int{28} + return fileDescriptor_friend_69e6f38cd215d5ef, []int{28} } func (m *GetSelfApplyListReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetSelfApplyListReq.Unmarshal(m, b) @@ -1332,7 +1332,7 @@ func (m *GetSelfApplyListResp) Reset() { *m = GetSelfApplyListResp{} } func (m *GetSelfApplyListResp) String() string { return proto.CompactTextString(m) } func (*GetSelfApplyListResp) ProtoMessage() {} func (*GetSelfApplyListResp) Descriptor() ([]byte, []int) { - return fileDescriptor_friend_ea5e0cd91ac7f1e7, []int{29} + return fileDescriptor_friend_69e6f38cd215d5ef, []int{29} } func (m *GetSelfApplyListResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetSelfApplyListResp.Unmarshal(m, b) @@ -1429,7 +1429,7 @@ type FriendClient interface { GetBlacklist(ctx context.Context, in *GetBlacklistReq, opts ...grpc.CallOption) (*GetBlacklistResp, error) DeleteFriend(ctx context.Context, in *DeleteFriendReq, opts ...grpc.CallOption) (*DeleteFriendResp, error) AddFriendResponse(ctx context.Context, in *AddFriendResponseReq, opts ...grpc.CallOption) (*AddFriendResponseResp, error) - SetFriendComment(ctx context.Context, in *SetFriendRemarkReq, opts ...grpc.CallOption) (*SetFriendRemarkResp, error) + SetFriendRemark(ctx context.Context, in *SetFriendRemarkReq, opts ...grpc.CallOption) (*SetFriendRemarkResp, error) ImportFriend(ctx context.Context, in *ImportFriendReq, opts ...grpc.CallOption) (*ImportFriendResp, error) } @@ -1540,9 +1540,9 @@ func (c *friendClient) AddFriendResponse(ctx context.Context, in *AddFriendRespo return out, nil } -func (c *friendClient) SetFriendComment(ctx context.Context, in *SetFriendRemarkReq, opts ...grpc.CallOption) (*SetFriendRemarkResp, error) { +func (c *friendClient) SetFriendRemark(ctx context.Context, in *SetFriendRemarkReq, opts ...grpc.CallOption) (*SetFriendRemarkResp, error) { out := new(SetFriendRemarkResp) - err := grpc.Invoke(ctx, "/friend.friend/setFriendComment", in, out, c.cc, opts...) + err := grpc.Invoke(ctx, "/friend.friend/setFriendRemark", in, out, c.cc, opts...) if err != nil { return nil, err } @@ -1573,7 +1573,7 @@ type FriendServer interface { GetBlacklist(context.Context, *GetBlacklistReq) (*GetBlacklistResp, error) DeleteFriend(context.Context, *DeleteFriendReq) (*DeleteFriendResp, error) AddFriendResponse(context.Context, *AddFriendResponseReq) (*AddFriendResponseResp, error) - SetFriendComment(context.Context, *SetFriendRemarkReq) (*SetFriendRemarkResp, error) + SetFriendRemark(context.Context, *SetFriendRemarkReq) (*SetFriendRemarkResp, error) ImportFriend(context.Context, *ImportFriendReq) (*ImportFriendResp, error) } @@ -1779,20 +1779,20 @@ func _Friend_AddFriendResponse_Handler(srv interface{}, ctx context.Context, dec return interceptor(ctx, in, info, handler) } -func _Friend_SetFriendComment_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { +func _Friend_SetFriendRemark_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(SetFriendRemarkReq) if err := dec(in); err != nil { return nil, err } if interceptor == nil { - return srv.(FriendServer).SetFriendComment(ctx, in) + return srv.(FriendServer).SetFriendRemark(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/friend.friend/SetFriendComment", + FullMethod: "/friend.friend/SetFriendRemark", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(FriendServer).SetFriendComment(ctx, req.(*SetFriendRemarkReq)) + return srv.(FriendServer).SetFriendRemark(ctx, req.(*SetFriendRemarkReq)) } return interceptor(ctx, in, info, handler) } @@ -1864,8 +1864,8 @@ var _Friend_serviceDesc = grpc.ServiceDesc{ Handler: _Friend_AddFriendResponse_Handler, }, { - MethodName: "setFriendComment", - Handler: _Friend_SetFriendComment_Handler, + MethodName: "setFriendRemark", + Handler: _Friend_SetFriendRemark_Handler, }, { MethodName: "importFriend", @@ -1876,66 +1876,66 @@ var _Friend_serviceDesc = grpc.ServiceDesc{ Metadata: "friend/friend.proto", } -func init() { proto.RegisterFile("friend/friend.proto", fileDescriptor_friend_ea5e0cd91ac7f1e7) } - -var fileDescriptor_friend_ea5e0cd91ac7f1e7 = []byte{ - // 924 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x57, 0xcd, 0x6f, 0xe3, 0x44, - 0x14, 0x97, 0x37, 0x6d, 0x36, 0x79, 0xc9, 0x6e, 0x92, 0x97, 0xb4, 0x1b, 0xdc, 0xee, 0x2a, 0xf8, - 0x80, 0x22, 0x0e, 0x89, 0x14, 0xb4, 0x88, 0xb2, 0xc0, 0x2a, 0xdb, 0x34, 0xc5, 0x2c, 0xa5, 0x2b, - 0x77, 0xb9, 0x20, 0xa4, 0xca, 0x5b, 0x4f, 0x82, 0x15, 0xc7, 0x9e, 0x7a, 0x5c, 0x2a, 0x2e, 0x1c, - 0x38, 0x70, 0x45, 0x42, 0xdc, 0xb8, 0xf0, 0xa7, 0x22, 0x7b, 0xec, 0x78, 0xfc, 0x91, 0x0a, 0xbb, - 0x48, 0x7b, 0x6a, 0xdf, 0x7b, 0xf3, 0x7b, 0x7e, 0x5f, 0xf3, 0x7e, 0x13, 0xe8, 0x2e, 0x5c, 0x93, - 0xd8, 0xc6, 0x98, 0xff, 0x19, 0x51, 0xd7, 0xf1, 0x1c, 0xac, 0x72, 0x49, 0xfe, 0xf0, 0x9c, 0x12, - 0xfb, 0x52, 0x3d, 0x1b, 0xd3, 0xd5, 0x72, 0x1c, 0x98, 0xc6, 0xcc, 0x58, 0x5d, 0xde, 0xb2, 0xf1, - 0x2d, 0xe3, 0x47, 0x95, 0xaf, 0x00, 0x8e, 0x9d, 0xf5, 0xda, 0xb1, 0x35, 0xc2, 0x28, 0xf6, 0xe1, - 0x21, 0x71, 0xdd, 0x63, 0xc7, 0x20, 0x7d, 0x69, 0x20, 0x0d, 0x77, 0xb5, 0x48, 0xc4, 0x7d, 0xa8, - 0x12, 0xd7, 0x3d, 0x63, 0xcb, 0xfe, 0x83, 0x81, 0x34, 0xac, 0x6b, 0xa1, 0xa4, 0xfc, 0x26, 0x41, - 0xd5, 0x77, 0xa0, 0xce, 0x50, 0x86, 0xda, 0x39, 0xfd, 0x9e, 0x11, 0x57, 0x9d, 0x05, 0xe8, 0xba, - 0xb6, 0x91, 0x71, 0x00, 0x8d, 0x73, 0x4a, 0x5c, 0xdd, 0x33, 0x1d, 0x5b, 0x9d, 0x85, 0x3e, 0x44, - 0x95, 0x8f, 0x7e, 0xeb, 0x84, 0xe8, 0x1d, 0x8e, 0x8e, 0x64, 0x7c, 0x06, 0x30, 0x77, 0x9d, 0x75, - 0x68, 0xdd, 0x0d, 0xac, 0x82, 0x46, 0x79, 0x01, 0x9d, 0x53, 0xe2, 0xcd, 0x83, 0xa4, 0x99, 0x6a, - 0x2f, 0x1c, 0x8d, 0x5c, 0xe3, 0x47, 0x51, 0x60, 0x41, 0x30, 0x8d, 0xc9, 0xe3, 0x51, 0x58, 0x23, - 0xae, 0xd5, 0x42, 0xab, 0xf2, 0xbb, 0x24, 0xa0, 0x39, 0x98, 0x57, 0xe2, 0x24, 0x59, 0x89, 0x93, - 0xb8, 0x12, 0x27, 0x89, 0x4a, 0x70, 0x09, 0x5f, 0xc2, 0xe3, 0xd8, 0xc7, 0xb7, 0x26, 0xf3, 0xfa, - 0x95, 0x41, 0x65, 0xd8, 0x98, 0x3c, 0x19, 0x39, 0x7e, 0x17, 0xcc, 0xf5, 0x25, 0x33, 0x56, 0x23, - 0xe1, 0x33, 0xa9, 0xe3, 0xca, 0x77, 0xd0, 0x9c, 0x1a, 0x06, 0x57, 0x16, 0x48, 0xc0, 0x0f, 0x48, - 0x23, 0xd7, 0x42, 0x40, 0x5c, 0x52, 0x8e, 0xe1, 0x91, 0xe0, 0x8f, 0x51, 0x9c, 0x88, 0xbd, 0x0e, - 0x9d, 0xa2, 0xe8, 0x94, 0x5b, 0x34, 0xe1, 0x94, 0xf2, 0xb7, 0x04, 0x2d, 0x75, 0x4d, 0x1d, 0xd7, - 0x8b, 0x03, 0xfb, 0x18, 0xda, 0x5c, 0xe0, 0xe5, 0x0f, 0x72, 0x95, 0x06, 0x95, 0x61, 0x5d, 0xcb, - 0xe8, 0xff, 0x43, 0xe3, 0x93, 0xcd, 0xad, 0xa4, 0x9b, 0x9b, 0x18, 0xab, 0x9d, 0xe4, 0x58, 0x29, - 0xbf, 0x42, 0x3b, 0x19, 0x5c, 0xb9, 0x2c, 0xf1, 0x53, 0xd8, 0x9f, 0xeb, 0xa6, 0x45, 0x8c, 0x4c, - 0x5e, 0x0f, 0x82, 0xbc, 0xb6, 0x58, 0x95, 0x97, 0xb0, 0xb7, 0x19, 0x9d, 0x29, 0xa5, 0xd6, 0x2f, - 0xbe, 0xb6, 0xc8, 0xf0, 0xfd, 0x25, 0xc1, 0x7e, 0x9e, 0x87, 0x52, 0x13, 0xf8, 0x35, 0x74, 0x36, - 0x4d, 0xba, 0x21, 0xcc, 0x13, 0x86, 0x50, 0xce, 0x19, 0xc2, 0xf0, 0x94, 0x96, 0x05, 0x29, 0x9f, - 0x43, 0x7b, 0x13, 0x55, 0xd1, 0x94, 0x12, 0xf7, 0xe9, 0x1e, 0xd9, 0xdc, 0xfb, 0x3e, 0x1d, 0x41, - 0x6b, 0x6a, 0x18, 0xaf, 0x2c, 0xfd, 0x6a, 0x65, 0x15, 0xcc, 0x61, 0x0e, 0xed, 0x24, 0xb4, 0xe4, - 0xed, 0xf9, 0x02, 0x50, 0x23, 0x6b, 0xe7, 0x67, 0x52, 0x2a, 0x0a, 0x15, 0xba, 0x19, 0x74, 0xc9, - 0x40, 0x8e, 0xa0, 0x75, 0x4a, 0xbc, 0x52, 0x51, 0xfc, 0x21, 0x05, 0xc3, 0x90, 0x8c, 0xa1, 0x78, - 0x3b, 0x55, 0xe8, 0x04, 0x2e, 0x82, 0xdb, 0x93, 0xec, 0xe8, 0x41, 0xa2, 0xa3, 0x6f, 0x6e, 0xde, - 0x59, 0xe6, 0x55, 0x74, 0x4c, 0xcb, 0xa2, 0x94, 0xe7, 0xd0, 0x50, 0x59, 0xe1, 0x3d, 0xa9, 0xfc, - 0x08, 0xcd, 0x18, 0x56, 0x2a, 0x07, 0x19, 0x6a, 0x3e, 0xd2, 0xb1, 0x19, 0x09, 0x16, 0x55, 0x4d, - 0xdb, 0xc8, 0xfe, 0x95, 0x51, 0x99, 0x6a, 0x07, 0xd1, 0x16, 0xbd, 0x32, 0x3a, 0x74, 0x52, 0xd8, - 0xff, 0x3d, 0xbc, 0x23, 0x68, 0xcd, 0x88, 0x45, 0x3c, 0x52, 0xbc, 0x6e, 0x73, 0x68, 0x27, 0xa1, - 0x25, 0x67, 0x90, 0x42, 0x2f, 0xc1, 0x47, 0x7e, 0x5c, 0x45, 0x78, 0x0e, 0x61, 0x67, 0x61, 0xe9, - 0x3c, 0xe9, 0x5d, 0x2d, 0xf8, 0x1f, 0x0f, 0xa1, 0xfe, 0x93, 0x6e, 0x1b, 0x16, 0xf1, 0xab, 0xc1, - 0xb9, 0x23, 0x56, 0x28, 0xaf, 0x61, 0x2f, 0xe7, 0x8b, 0x25, 0xc3, 0x7f, 0x0b, 0x78, 0x41, 0x36, - 0x44, 0xb3, 0xd6, 0xdd, 0x55, 0x61, 0x92, 0xf6, 0x41, 0x31, 0x49, 0xfb, 0x92, 0x7f, 0xc7, 0x33, - 0x5e, 0x4b, 0x06, 0xf8, 0x25, 0x74, 0x4f, 0x89, 0x77, 0x41, 0xac, 0x45, 0x29, 0x2a, 0xfa, 0x53, - 0x82, 0x5e, 0x16, 0xff, 0x7e, 0x89, 0x68, 0xf2, 0xcf, 0x43, 0x08, 0x1f, 0xb3, 0xf8, 0x19, 0xd4, - 0xf5, 0xa8, 0x99, 0xd8, 0x8b, 0x92, 0x10, 0x5f, 0x4c, 0xf2, 0x5e, 0x8e, 0x96, 0x51, 0xbc, 0x00, - 0x5c, 0x66, 0x38, 0x16, 0x9f, 0x46, 0x87, 0x73, 0x19, 0x5c, 0x7e, 0x76, 0x97, 0x99, 0x51, 0x3c, - 0x83, 0xf6, 0x32, 0x55, 0x2d, 0x3c, 0x10, 0x30, 0xe9, 0x3e, 0xc8, 0x87, 0xdb, 0x8d, 0x8c, 0xe2, - 0x0c, 0x1e, 0x2d, 0x45, 0xd2, 0xc4, 0x7e, 0xe6, 0xfb, 0x91, 0xa3, 0x0f, 0xb6, 0x58, 0x18, 0xc5, - 0x29, 0x34, 0x75, 0x81, 0xb7, 0xf0, 0x89, 0x50, 0x10, 0x71, 0xf9, 0xcb, 0xfd, 0x7c, 0x03, 0xa3, - 0xf8, 0x0d, 0xb4, 0xdc, 0x24, 0xe9, 0xa0, 0x1c, 0x1d, 0xce, 0x72, 0x99, 0x7c, 0xb0, 0xd5, 0xc6, - 0x28, 0x3e, 0x87, 0x9a, 0x19, 0x6e, 0x5c, 0xec, 0x46, 0x07, 0x85, 0xd5, 0x2d, 0xf7, 0xb2, 0x4a, - 0x5e, 0x0b, 0x53, 0x5c, 0x87, 0x71, 0x2d, 0xd2, 0x1b, 0x36, 0xae, 0x45, 0x76, 0x7f, 0x4e, 0xa1, - 0xb9, 0x14, 0x68, 0x2b, 0xae, 0x45, 0x8a, 0x08, 0xe5, 0x7e, 0xbe, 0x81, 0xbb, 0x30, 0x84, 0xcd, - 0x17, 0xbb, 0x48, 0xad, 0xd2, 0xd8, 0x45, 0x66, 0x51, 0xbe, 0x81, 0x8e, 0x9e, 0x5e, 0x41, 0x78, - 0x98, 0x3b, 0xa7, 0xe1, 0x3e, 0x94, 0x9f, 0xde, 0x61, 0x65, 0x14, 0x5f, 0x43, 0x9b, 0x45, 0x8d, - 0xf7, 0xaf, 0x2e, 0xb1, 0x85, 0x0e, 0x65, 0x37, 0x54, 0xdc, 0xa1, 0xbc, 0x3d, 0x33, 0x85, 0xa6, - 0x29, 0x3c, 0xa0, 0xe3, 0x0c, 0x53, 0x6f, 0xfe, 0x38, 0xc3, 0xf4, 0x7b, 0xfb, 0x55, 0xe7, 0x87, - 0xd6, 0x28, 0xfc, 0xf9, 0xf9, 0x82, 0xff, 0x79, 0x57, 0x0d, 0x7e, 0x5b, 0x7e, 0xf2, 0x6f, 0x00, - 0x00, 0x00, 0xff, 0xff, 0x8d, 0xf7, 0x25, 0x0f, 0x9d, 0x0e, 0x00, 0x00, +func init() { proto.RegisterFile("friend/friend.proto", fileDescriptor_friend_69e6f38cd215d5ef) } + +var fileDescriptor_friend_69e6f38cd215d5ef = []byte{ + // 916 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x57, 0xcd, 0x4f, 0xeb, 0x46, + 0x10, 0x97, 0x09, 0x84, 0x64, 0x12, 0x48, 0xb2, 0x09, 0x90, 0x9a, 0x0f, 0xa5, 0x3e, 0x54, 0x51, + 0x0f, 0x89, 0x94, 0x8a, 0xaa, 0x94, 0xb6, 0x28, 0x10, 0x42, 0xdd, 0x96, 0x82, 0x0c, 0xbd, 0x54, + 0x95, 0x90, 0xc1, 0x9b, 0xd4, 0x8a, 0x63, 0x2f, 0x5e, 0x53, 0xd4, 0x4b, 0x0f, 0x3d, 0xf4, 0x5a, + 0xa9, 0xea, 0xed, 0x1d, 0xde, 0xbf, 0xfa, 0x64, 0xaf, 0x1d, 0xaf, 0x3f, 0x82, 0x9e, 0xcd, 0x93, + 0xde, 0x09, 0x66, 0x66, 0x7f, 0xe3, 0xf9, 0xda, 0xf9, 0x6d, 0xa0, 0x39, 0xb1, 0x75, 0x6c, 0x6a, + 0x7d, 0xf6, 0xa7, 0x47, 0x6c, 0xcb, 0xb1, 0x50, 0x91, 0x49, 0xe2, 0xa7, 0x57, 0x04, 0x9b, 0x77, + 0xf2, 0x65, 0x9f, 0xcc, 0xa6, 0x7d, 0xcf, 0xd4, 0xa7, 0xda, 0xec, 0xee, 0x99, 0xf6, 0x9f, 0x29, + 0x3b, 0x2a, 0x7d, 0x07, 0x70, 0x66, 0xcd, 0xe7, 0x96, 0xa9, 0x60, 0x4a, 0x50, 0x1b, 0xd6, 0xb1, + 0x6d, 0x9f, 0x59, 0x1a, 0x6e, 0x0b, 0x1d, 0xa1, 0xbb, 0xa6, 0x04, 0x22, 0xda, 0x86, 0x22, 0xb6, + 0xed, 0x4b, 0x3a, 0x6d, 0xaf, 0x74, 0x84, 0x6e, 0x59, 0xf1, 0x25, 0xe9, 0x6f, 0x01, 0x8a, 0xae, + 0x03, 0x79, 0x84, 0x44, 0x28, 0x5d, 0x91, 0x5f, 0x28, 0xb6, 0xe5, 0x91, 0x87, 0x2e, 0x2b, 0x0b, + 0x19, 0x75, 0xa0, 0x72, 0x45, 0xb0, 0xad, 0x3a, 0xba, 0x65, 0xca, 0x23, 0xdf, 0x07, 0xaf, 0x72, + 0xd1, 0xb7, 0x96, 0x8f, 0x5e, 0x65, 0xe8, 0x40, 0x46, 0x07, 0x00, 0x63, 0xdb, 0x9a, 0xfb, 0xd6, + 0x35, 0xcf, 0xca, 0x69, 0xa4, 0x63, 0x68, 0x5c, 0x60, 0x67, 0xec, 0x25, 0x4d, 0x65, 0x73, 0x62, + 0x29, 0xf8, 0x11, 0x7d, 0x16, 0x04, 0xe6, 0x05, 0x53, 0x19, 0x6c, 0xf6, 0xfc, 0x1a, 0x31, 0xad, + 0xe2, 0x5b, 0xa5, 0x7f, 0x04, 0x0e, 0xcd, 0xc0, 0xac, 0x12, 0xe7, 0xd1, 0x4a, 0x9c, 0x87, 0x95, + 0x38, 0x8f, 0x54, 0x82, 0x49, 0xe8, 0x04, 0x36, 0x43, 0x1f, 0x3f, 0xe9, 0xd4, 0x69, 0x17, 0x3a, + 0x85, 0x6e, 0x65, 0xb0, 0xd3, 0xb3, 0xdc, 0x2e, 0xe8, 0xf3, 0x3b, 0xaa, 0xcd, 0x7a, 0xdc, 0x67, + 0x62, 0xc7, 0xa5, 0x9f, 0xa1, 0x3a, 0xd4, 0x34, 0xa6, 0xcc, 0x90, 0x80, 0x1b, 0x90, 0x82, 0x1f, + 0xb9, 0x80, 0x98, 0x24, 0x9d, 0xc1, 0x06, 0xe7, 0x8f, 0x12, 0x34, 0xe0, 0x7b, 0xed, 0x3b, 0x45, + 0xbc, 0x53, 0x66, 0x51, 0xb8, 0x53, 0xd2, 0x1b, 0x01, 0x6a, 0xf2, 0x9c, 0x58, 0xb6, 0x13, 0x06, + 0xf6, 0x39, 0xd4, 0x99, 0xc0, 0xca, 0xef, 0xe5, 0x2a, 0x74, 0x0a, 0xdd, 0xb2, 0x92, 0xd0, 0xbf, + 0x47, 0xe3, 0xa3, 0xcd, 0x2d, 0xc4, 0x9b, 0x1b, 0x19, 0xab, 0xd5, 0xe8, 0x58, 0x49, 0x7f, 0x41, + 0x3d, 0x1a, 0x5c, 0xbe, 0x2c, 0xd1, 0x97, 0xb0, 0x3d, 0x56, 0x75, 0x03, 0x6b, 0x89, 0xbc, 0x56, + 0xbc, 0xbc, 0x96, 0x58, 0xa5, 0x13, 0xd8, 0x5a, 0x8c, 0xce, 0x90, 0x10, 0xe3, 0x4f, 0x57, 0x9b, + 0x65, 0xf8, 0xfe, 0x17, 0x60, 0x3b, 0xcd, 0x43, 0xae, 0x09, 0xfc, 0x1e, 0x1a, 0x8b, 0x26, 0x3d, + 0x61, 0xea, 0x70, 0x43, 0x28, 0xa6, 0x0c, 0xa1, 0x7f, 0x4a, 0x49, 0x82, 0xa4, 0xaf, 0xa1, 0xbe, + 0x88, 0x2a, 0x6b, 0x4a, 0x91, 0xfb, 0xf4, 0x8a, 0x6c, 0x5e, 0x7d, 0x9f, 0x8e, 0xa0, 0x36, 0xd4, + 0xb4, 0x53, 0x43, 0x7d, 0x98, 0x19, 0x19, 0x73, 0x18, 0x43, 0x3d, 0x0a, 0xcd, 0x79, 0x7b, 0xbe, + 0x01, 0xa4, 0xe0, 0xb9, 0xf5, 0x07, 0xce, 0x15, 0x85, 0x0c, 0xcd, 0x04, 0x3a, 0x67, 0x20, 0x47, + 0x50, 0xbb, 0xc0, 0x4e, 0xae, 0x28, 0xfe, 0x15, 0xbc, 0x61, 0x88, 0xc6, 0x90, 0xbd, 0x9d, 0x32, + 0x34, 0x3c, 0x17, 0xde, 0xed, 0x89, 0x76, 0x74, 0x37, 0xd2, 0xd1, 0xeb, 0xa7, 0x7b, 0x43, 0x7f, + 0x08, 0x8e, 0x29, 0x49, 0x94, 0x74, 0x08, 0x15, 0x99, 0x66, 0xde, 0x93, 0xd2, 0x6f, 0x50, 0x0d, + 0x61, 0xb9, 0x72, 0x10, 0xa1, 0xe4, 0x22, 0x2d, 0x93, 0x62, 0x6f, 0x51, 0x95, 0x94, 0x85, 0xec, + 0x5e, 0x19, 0x99, 0xca, 0xa6, 0x17, 0x6d, 0xd6, 0x2b, 0xa3, 0x42, 0x23, 0x86, 0xfd, 0xe0, 0xe1, + 0x1d, 0x41, 0x6d, 0x84, 0x0d, 0xec, 0xe0, 0xec, 0x75, 0x1b, 0x43, 0x3d, 0x0a, 0xcd, 0x39, 0x83, + 0x04, 0x5a, 0x11, 0x3e, 0x72, 0xe3, 0xca, 0xc2, 0x73, 0x08, 0x56, 0x27, 0x86, 0xca, 0x92, 0x5e, + 0x53, 0xbc, 0xff, 0xd1, 0x1e, 0x94, 0x7f, 0x57, 0x4d, 0xcd, 0xc0, 0x6e, 0x35, 0x18, 0x77, 0x84, + 0x0a, 0xe9, 0x47, 0xd8, 0x4a, 0xf9, 0x62, 0xce, 0xf0, 0x6f, 0x01, 0xdd, 0xe0, 0x05, 0xd1, 0xcc, + 0x55, 0x7b, 0x96, 0x99, 0xa4, 0x5d, 0x50, 0x48, 0xd2, 0xae, 0xe4, 0xde, 0xf1, 0x84, 0xd7, 0x9c, + 0x01, 0x7e, 0x0b, 0xcd, 0x0b, 0xec, 0xdc, 0x60, 0x63, 0x92, 0x8b, 0x8a, 0xfe, 0x13, 0xa0, 0x95, + 0xc4, 0x7f, 0x5c, 0x22, 0x1a, 0xbc, 0x5d, 0x07, 0xff, 0x31, 0x8b, 0xbe, 0x82, 0xb2, 0x1a, 0x34, + 0x13, 0xb5, 0x82, 0x24, 0xf8, 0x17, 0x93, 0xb8, 0x95, 0xa2, 0xa5, 0x04, 0xdd, 0x00, 0x9a, 0x26, + 0x38, 0x16, 0xed, 0x07, 0x87, 0x53, 0x19, 0x5c, 0x3c, 0x78, 0xc9, 0x4c, 0x09, 0xba, 0x84, 0xfa, + 0x34, 0x56, 0x2d, 0xb4, 0xcb, 0x61, 0xe2, 0x7d, 0x10, 0xf7, 0x96, 0x1b, 0x29, 0x41, 0x23, 0xd8, + 0x98, 0xf2, 0xa4, 0x89, 0xda, 0x89, 0xef, 0x07, 0x8e, 0x3e, 0x59, 0x62, 0xa1, 0x04, 0x0d, 0xa1, + 0xaa, 0x72, 0xbc, 0x85, 0x76, 0xb8, 0x82, 0xf0, 0xcb, 0x5f, 0x6c, 0xa7, 0x1b, 0x28, 0x41, 0x3f, + 0x40, 0xcd, 0x8e, 0x92, 0x0e, 0x12, 0x83, 0xc3, 0x49, 0x2e, 0x13, 0x77, 0x97, 0xda, 0x28, 0x41, + 0x87, 0x50, 0xd2, 0xfd, 0x8d, 0x8b, 0x9a, 0xc1, 0x41, 0x6e, 0x75, 0x8b, 0xad, 0xa4, 0x92, 0xd5, + 0x42, 0xe7, 0xd7, 0x61, 0x58, 0x8b, 0xf8, 0x86, 0x0d, 0x6b, 0x91, 0xdc, 0x9f, 0x43, 0xa8, 0x4e, + 0x39, 0xda, 0x0a, 0x6b, 0x11, 0x23, 0x42, 0xb1, 0x9d, 0x6e, 0x60, 0x2e, 0x34, 0x6e, 0xf3, 0x85, + 0x2e, 0x62, 0xab, 0x34, 0x74, 0x91, 0x58, 0x94, 0xd7, 0xd0, 0x50, 0xe3, 0x2b, 0x08, 0xed, 0xa5, + 0xce, 0xa9, 0xbf, 0x0f, 0xc5, 0xfd, 0x17, 0xac, 0xac, 0x41, 0x34, 0xba, 0x31, 0xc2, 0x06, 0x25, + 0x17, 0x54, 0xd8, 0xa0, 0xb4, 0x35, 0x33, 0x84, 0xaa, 0xce, 0xbd, 0x9f, 0xc3, 0x04, 0x63, 0x4f, + 0xfe, 0x30, 0xc1, 0xf8, 0x73, 0xfb, 0xb4, 0xf1, 0x6b, 0xad, 0xe7, 0xff, 0xfa, 0x3c, 0x66, 0x7f, + 0xee, 0x8b, 0xde, 0x4f, 0xcb, 0x2f, 0xde, 0x05, 0x00, 0x00, 0xff, 0xff, 0x85, 0x71, 0x6d, 0x1b, + 0x9c, 0x0e, 0x00, 0x00, } diff --git a/pkg/proto/friend/friend.proto b/pkg/proto/friend/friend.proto index df22713b8..780ebbb62 100644 --- a/pkg/proto/friend/friend.proto +++ b/pkg/proto/friend/friend.proto @@ -160,6 +160,6 @@ service friend{ rpc getBlacklist(GetBlacklistReq) returns(GetBlacklistResp); rpc deleteFriend(DeleteFriendReq) returns(DeleteFriendResp); rpc addFriendResponse(AddFriendResponseReq) returns(AddFriendResponseResp); - rpc setFriendComment(SetFriendRemarkReq) returns(SetFriendRemarkResp); + rpc setFriendRemark(SetFriendRemarkReq) returns(SetFriendRemarkResp); rpc importFriend(ImportFriendReq) returns(ImportFriendResp); } \ No newline at end of file From 669ea693570dc6ab054afa6911b22c234025fdea Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Wed, 29 Dec 2021 14:39:54 +0800 Subject: [PATCH 324/814] Refactor code --- internal/api/friend/friend.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/internal/api/friend/friend.go b/internal/api/friend/friend.go index 1ffa54413..9728eeb2b 100644 --- a/internal/api/friend/friend.go +++ b/internal/api/friend/friend.go @@ -236,7 +236,7 @@ func SetFriendRemark(c *gin.Context) { etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImFriendName) client := rpc.NewFriendClient(etcdConn) - RpcResp, err := client.SetFriendComment(context.Background(), req) + RpcResp, err := client.SetFriendRemark(context.Background(), req) if err != nil { log.NewError(req.CommID.OperationID, "SetFriendComment failed ", err.Error(), req.String()) c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": "call set friend comment rpc server failed"}) From fb7c4114c14e7500afc193f23964adce3b6b0257 Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Wed, 29 Dec 2021 14:57:36 +0800 Subject: [PATCH 325/814] Refactor code --- cmd/open_im_api/main.go | 2 +- internal/api/friend/friend.go | 4 +++- pkg/base_info/friend_api_struct.go | 5 ++++- 3 files changed, 8 insertions(+), 3 deletions(-) diff --git a/cmd/open_im_api/main.go b/cmd/open_im_api/main.go index edb44e5dd..6135ee3f0 100644 --- a/cmd/open_im_api/main.go +++ b/cmd/open_im_api/main.go @@ -40,7 +40,7 @@ func main() { friendRouterGroup.POST("/remove_blacklist", friend.RemoveBlacklist) friendRouterGroup.POST("/delete_friend", friend.DeleteFriend) friendRouterGroup.POST("/add_friend_response", friend.AddFriendResponse) //1 - friendRouterGroup.POST("/set_friend_remark", friend.SetFriendRemark) + friendRouterGroup.POST("/set_friend_remark", friend.SetFriendRemark) //1 friendRouterGroup.POST("/is_friend", friend.IsFriend) friendRouterGroup.POST("/import_friend", friend.ImportFriend) } diff --git a/internal/api/friend/friend.go b/internal/api/friend/friend.go index 9728eeb2b..1a27effb9 100644 --- a/internal/api/friend/friend.go +++ b/internal/api/friend/friend.go @@ -305,7 +305,9 @@ func IsFriend(c *gin.Context) { c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": "call add friend rpc server failed"}) return } - resp := api.IsFriendResp{CommResp: api.CommResp{ErrCode: RpcResp.ErrCode, ErrMsg: RpcResp.ErrMsg}, Response: RpcResp.Response} + resp := api.IsFriendResp{CommResp: api.CommResp{ErrCode: RpcResp.ErrCode, ErrMsg: RpcResp.ErrMsg}} + resp.Response.Friend = RpcResp.Response + log.NewInfo(req.CommID.OperationID, "IsFriend api return ", resp) c.JSON(http.StatusOK, resp) } diff --git a/pkg/base_info/friend_api_struct.go b/pkg/base_info/friend_api_struct.go index 361d54bd6..5d7f33d27 100644 --- a/pkg/base_info/friend_api_struct.go +++ b/pkg/base_info/friend_api_struct.go @@ -89,9 +89,12 @@ type RemoveBlackListResp struct { type IsFriendReq struct { ParamsCommFriend } +type Response struct { + Friend bool `json:"isFriend"` +} type IsFriendResp struct { CommResp - Response bool `json:"response"` + Response Response `json:"data"` } type GetFriendsInfoReq struct { From 03f491ab5a3a3750614af3ae3d6844df46f1a613 Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Wed, 29 Dec 2021 15:07:36 +0800 Subject: [PATCH 326/814] nil return modify --- internal/api/conversation/conversation.go | 2 +- internal/rpc/user/user.go | 1 - pkg/proto/user/user.pb.go | 152 +++++++++++----------- pkg/proto/user/user.proto | 2 +- 4 files changed, 78 insertions(+), 79 deletions(-) diff --git a/internal/api/conversation/conversation.go b/internal/api/conversation/conversation.go index 2a66be9dd..4eaf1f0a9 100644 --- a/internal/api/conversation/conversation.go +++ b/internal/api/conversation/conversation.go @@ -27,7 +27,7 @@ func GetAllConversationMessageOpt(c *gin.Context) { ok, req.OpUserID = token_verify.GetUserIDFromToken(c.Request.Header.Get("token")) if !ok { log.NewError(req.OperationID, "GetUserIDFromToken false ", c.Request.Header.Get("token")) - c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": "GetUserIDFromToken failed"}) + c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": "GetUserIDFromToken failed or not set token in header"}) return } log.NewInfo(params.OperationID, "GetAllConversationMessageOpt args ", req.String()) diff --git a/internal/rpc/user/user.go b/internal/rpc/user/user.go index 783f6b1f3..2ad30123d 100644 --- a/internal/rpc/user/user.go +++ b/internal/rpc/user/user.go @@ -139,7 +139,6 @@ func (s *userServer) GetAllConversationMsgOpt(ctx context.Context, req *pbUser.G log.NewInfo(req.OperationID, "GetAllConversationMsgOpt rpc return ", resp.String()) return &resp, nil } - func (s *userServer) DeleteUsers(_ context.Context, req *pbUser.DeleteUsersReq) (*pbUser.DeleteUsersResp, error) { log.NewInfo(req.OperationID, "DeleteUsers args ", req.String()) if token_verify.IsMangerUserID(req.OpUserID) { diff --git a/pkg/proto/user/user.pb.go b/pkg/proto/user/user.pb.go index 892c0c982..79a53f7d7 100644 --- a/pkg/proto/user/user.pb.go +++ b/pkg/proto/user/user.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_user_0a10ad809f213986, []int{0} + return fileDescriptor_user_9c8678d55a710022, []int{0} } func (m *CommonResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_CommonResp.Unmarshal(m, b) @@ -83,7 +83,7 @@ func (m *DeleteUsersReq) Reset() { *m = DeleteUsersReq{} } func (m *DeleteUsersReq) String() string { return proto.CompactTextString(m) } func (*DeleteUsersReq) ProtoMessage() {} func (*DeleteUsersReq) Descriptor() ([]byte, []int) { - return fileDescriptor_user_0a10ad809f213986, []int{1} + return fileDescriptor_user_9c8678d55a710022, []int{1} } func (m *DeleteUsersReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_DeleteUsersReq.Unmarshal(m, b) @@ -136,7 +136,7 @@ func (m *DeleteUsersResp) Reset() { *m = DeleteUsersResp{} } func (m *DeleteUsersResp) String() string { return proto.CompactTextString(m) } func (*DeleteUsersResp) ProtoMessage() {} func (*DeleteUsersResp) Descriptor() ([]byte, []int) { - return fileDescriptor_user_0a10ad809f213986, []int{2} + return fileDescriptor_user_9c8678d55a710022, []int{2} } func (m *DeleteUsersResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_DeleteUsersResp.Unmarshal(m, b) @@ -182,7 +182,7 @@ func (m *GetAllUserIDReq) Reset() { *m = GetAllUserIDReq{} } func (m *GetAllUserIDReq) String() string { return proto.CompactTextString(m) } func (*GetAllUserIDReq) ProtoMessage() {} func (*GetAllUserIDReq) Descriptor() ([]byte, []int) { - return fileDescriptor_user_0a10ad809f213986, []int{3} + return fileDescriptor_user_9c8678d55a710022, []int{3} } func (m *GetAllUserIDReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetAllUserIDReq.Unmarshal(m, b) @@ -228,7 +228,7 @@ func (m *GetAllUserIDResp) Reset() { *m = GetAllUserIDResp{} } func (m *GetAllUserIDResp) String() string { return proto.CompactTextString(m) } func (*GetAllUserIDResp) ProtoMessage() {} func (*GetAllUserIDResp) Descriptor() ([]byte, []int) { - return fileDescriptor_user_0a10ad809f213986, []int{4} + return fileDescriptor_user_9c8678d55a710022, []int{4} } func (m *GetAllUserIDResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetAllUserIDResp.Unmarshal(m, b) @@ -275,7 +275,7 @@ func (m *AccountCheckReq) Reset() { *m = AccountCheckReq{} } func (m *AccountCheckReq) String() string { return proto.CompactTextString(m) } func (*AccountCheckReq) ProtoMessage() {} func (*AccountCheckReq) Descriptor() ([]byte, []int) { - return fileDescriptor_user_0a10ad809f213986, []int{5} + return fileDescriptor_user_9c8678d55a710022, []int{5} } func (m *AccountCheckReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_AccountCheckReq.Unmarshal(m, b) @@ -328,7 +328,7 @@ func (m *AccountCheckResp) Reset() { *m = AccountCheckResp{} } func (m *AccountCheckResp) String() string { return proto.CompactTextString(m) } func (*AccountCheckResp) ProtoMessage() {} func (*AccountCheckResp) Descriptor() ([]byte, []int) { - return fileDescriptor_user_0a10ad809f213986, []int{6} + return fileDescriptor_user_9c8678d55a710022, []int{6} } func (m *AccountCheckResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_AccountCheckResp.Unmarshal(m, b) @@ -374,7 +374,7 @@ func (m *AccountCheckResp_SingleUserStatus) Reset() { *m = AccountCheckR func (m *AccountCheckResp_SingleUserStatus) String() string { return proto.CompactTextString(m) } func (*AccountCheckResp_SingleUserStatus) ProtoMessage() {} func (*AccountCheckResp_SingleUserStatus) Descriptor() ([]byte, []int) { - return fileDescriptor_user_0a10ad809f213986, []int{6, 0} + return fileDescriptor_user_9c8678d55a710022, []int{6, 0} } func (m *AccountCheckResp_SingleUserStatus) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_AccountCheckResp_SingleUserStatus.Unmarshal(m, b) @@ -421,7 +421,7 @@ 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_user_0a10ad809f213986, []int{7} + return fileDescriptor_user_9c8678d55a710022, []int{7} } func (m *GetUserInfoReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetUserInfoReq.Unmarshal(m, b) @@ -474,7 +474,7 @@ 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_user_0a10ad809f213986, []int{8} + return fileDescriptor_user_9c8678d55a710022, []int{8} } func (m *GetUserInfoResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetUserInfoResp.Unmarshal(m, b) @@ -521,7 +521,7 @@ 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_user_0a10ad809f213986, []int{9} + return fileDescriptor_user_9c8678d55a710022, []int{9} } func (m *UpdateUserInfoReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_UpdateUserInfoReq.Unmarshal(m, b) @@ -573,7 +573,7 @@ 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_user_0a10ad809f213986, []int{10} + return fileDescriptor_user_9c8678d55a710022, []int{10} } func (m *UpdateUserInfoResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_UpdateUserInfoResp.Unmarshal(m, b) @@ -615,7 +615,7 @@ func (m *SetReceiveMessageOptReq) Reset() { *m = SetReceiveMessageOptReq func (m *SetReceiveMessageOptReq) String() string { return proto.CompactTextString(m) } func (*SetReceiveMessageOptReq) ProtoMessage() {} func (*SetReceiveMessageOptReq) Descriptor() ([]byte, []int) { - return fileDescriptor_user_0a10ad809f213986, []int{11} + return fileDescriptor_user_9c8678d55a710022, []int{11} } func (m *SetReceiveMessageOptReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SetReceiveMessageOptReq.Unmarshal(m, b) @@ -682,7 +682,7 @@ func (m *OptResult) Reset() { *m = OptResult{} } func (m *OptResult) String() string { return proto.CompactTextString(m) } func (*OptResult) ProtoMessage() {} func (*OptResult) Descriptor() ([]byte, []int) { - return fileDescriptor_user_0a10ad809f213986, []int{12} + return fileDescriptor_user_9c8678d55a710022, []int{12} } func (m *OptResult) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_OptResult.Unmarshal(m, b) @@ -728,7 +728,7 @@ func (m *SetReceiveMessageOptResp) Reset() { *m = SetReceiveMessageOptRe func (m *SetReceiveMessageOptResp) String() string { return proto.CompactTextString(m) } func (*SetReceiveMessageOptResp) ProtoMessage() {} func (*SetReceiveMessageOptResp) Descriptor() ([]byte, []int) { - return fileDescriptor_user_0a10ad809f213986, []int{13} + return fileDescriptor_user_9c8678d55a710022, []int{13} } func (m *SetReceiveMessageOptResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SetReceiveMessageOptResp.Unmarshal(m, b) @@ -776,7 +776,7 @@ func (m *GetReceiveMessageOptReq) Reset() { *m = GetReceiveMessageOptReq func (m *GetReceiveMessageOptReq) String() string { return proto.CompactTextString(m) } func (*GetReceiveMessageOptReq) ProtoMessage() {} func (*GetReceiveMessageOptReq) Descriptor() ([]byte, []int) { - return fileDescriptor_user_0a10ad809f213986, []int{14} + return fileDescriptor_user_9c8678d55a710022, []int{14} } func (m *GetReceiveMessageOptReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetReceiveMessageOptReq.Unmarshal(m, b) @@ -836,7 +836,7 @@ func (m *GetReceiveMessageOptResp) Reset() { *m = GetReceiveMessageOptRe func (m *GetReceiveMessageOptResp) String() string { return proto.CompactTextString(m) } func (*GetReceiveMessageOptResp) ProtoMessage() {} func (*GetReceiveMessageOptResp) Descriptor() ([]byte, []int) { - return fileDescriptor_user_0a10ad809f213986, []int{15} + return fileDescriptor_user_9c8678d55a710022, []int{15} } func (m *GetReceiveMessageOptResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetReceiveMessageOptResp.Unmarshal(m, b) @@ -871,7 +871,7 @@ func (m *GetReceiveMessageOptResp) GetConversationOptResultList() []*OptResult { } type GetAllConversationMsgOptReq struct { - FromUserId string `protobuf:"bytes,1,opt,name=FromUserId" json:"FromUserId,omitempty"` + FromUserID string `protobuf:"bytes,1,opt,name=FromUserID" json:"FromUserID,omitempty"` OperationID string `protobuf:"bytes,2,opt,name=operationID" json:"operationID,omitempty"` OpUserID string `protobuf:"bytes,3,opt,name=OpUserID" json:"OpUserID,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` @@ -883,7 +883,7 @@ func (m *GetAllConversationMsgOptReq) Reset() { *m = GetAllConversationM func (m *GetAllConversationMsgOptReq) String() string { return proto.CompactTextString(m) } func (*GetAllConversationMsgOptReq) ProtoMessage() {} func (*GetAllConversationMsgOptReq) Descriptor() ([]byte, []int) { - return fileDescriptor_user_0a10ad809f213986, []int{16} + return fileDescriptor_user_9c8678d55a710022, []int{16} } func (m *GetAllConversationMsgOptReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetAllConversationMsgOptReq.Unmarshal(m, b) @@ -903,9 +903,9 @@ func (m *GetAllConversationMsgOptReq) XXX_DiscardUnknown() { var xxx_messageInfo_GetAllConversationMsgOptReq proto.InternalMessageInfo -func (m *GetAllConversationMsgOptReq) GetFromUserId() string { +func (m *GetAllConversationMsgOptReq) GetFromUserID() string { if m != nil { - return m.FromUserId + return m.FromUserID } return "" } @@ -936,7 +936,7 @@ func (m *GetAllConversationMsgOptResp) Reset() { *m = GetAllConversation func (m *GetAllConversationMsgOptResp) String() string { return proto.CompactTextString(m) } func (*GetAllConversationMsgOptResp) ProtoMessage() {} func (*GetAllConversationMsgOptResp) Descriptor() ([]byte, []int) { - return fileDescriptor_user_0a10ad809f213986, []int{17} + return fileDescriptor_user_9c8678d55a710022, []int{17} } func (m *GetAllConversationMsgOptResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetAllConversationMsgOptResp.Unmarshal(m, b) @@ -1295,60 +1295,60 @@ var _User_serviceDesc = grpc.ServiceDesc{ Metadata: "user/user.proto", } -func init() { proto.RegisterFile("user/user.proto", fileDescriptor_user_0a10ad809f213986) } +func init() { proto.RegisterFile("user/user.proto", fileDescriptor_user_9c8678d55a710022) } -var fileDescriptor_user_0a10ad809f213986 = []byte{ - // 829 bytes of a gzipped FileDescriptorProto +var fileDescriptor_user_9c8678d55a710022 = []byte{ + // 827 bytes of a gzipped FileDescriptorProto 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x56, 0xcd, 0x6e, 0xd3, 0x4a, - 0x14, 0x96, 0x9b, 0xb4, 0xb7, 0x39, 0x69, 0x93, 0xdc, 0x51, 0x7f, 0x7c, 0x7d, 0xa1, 0x4a, 0x47, - 0x08, 0xa2, 0x2e, 0x1c, 0x28, 0x62, 0x01, 0x08, 0xa4, 0x92, 0xaa, 0x56, 0x05, 0x51, 0x90, 0xab, - 0x6e, 0xd8, 0x54, 0x26, 0x1e, 0x42, 0x94, 0xc4, 0x63, 0x3c, 0x4e, 0x2b, 0x40, 0x62, 0x03, 0x6f, - 0xc1, 0x82, 0x25, 0xcf, 0xc0, 0x6b, 0xf0, 0x02, 0xbc, 0x0a, 0xf2, 0x8c, 0x9d, 0xcc, 0xd8, 0x4e, - 0x82, 0x02, 0x0b, 0x36, 0x51, 0xe6, 0x9b, 0x33, 0x67, 0xbe, 0xef, 0x9b, 0x33, 0xe3, 0x03, 0xd5, - 0x31, 0x23, 0x41, 0x33, 0xfa, 0x31, 0xfd, 0x80, 0x86, 0x14, 0x15, 0xa3, 0xff, 0xc6, 0x7e, 0xc7, - 0x27, 0xde, 0xc5, 0x69, 0xbb, 0xe9, 0x0f, 0x7a, 0x4d, 0x3e, 0xd1, 0x64, 0xee, 0xe0, 0xe2, 0x8a, - 0x35, 0xaf, 0x98, 0x08, 0xc4, 0x8f, 0x01, 0x5a, 0x74, 0x34, 0xa2, 0x9e, 0x4d, 0x98, 0x8f, 0x74, - 0xf8, 0x87, 0x04, 0x41, 0x8b, 0xba, 0x44, 0xd7, 0xea, 0x5a, 0x63, 0xd5, 0x4e, 0x86, 0x68, 0x07, - 0xd6, 0x48, 0x10, 0xb4, 0x59, 0x4f, 0x5f, 0xa9, 0x6b, 0x8d, 0x92, 0x1d, 0x8f, 0xf0, 0x3b, 0xa8, - 0x1c, 0x93, 0x21, 0x09, 0xc9, 0x39, 0x23, 0x01, 0xb3, 0xc9, 0x1b, 0x74, 0x00, 0xb5, 0x29, 0x72, - 0x7a, 0xfc, 0xac, 0xcf, 0x42, 0x7d, 0xa5, 0x5e, 0x68, 0x94, 0xec, 0x0c, 0x8e, 0x0c, 0x58, 0xef, - 0xf8, 0x62, 0xac, 0x17, 0x78, 0xde, 0xc9, 0x18, 0xd5, 0xa1, 0xdc, 0xf1, 0x49, 0xe0, 0x84, 0x7d, - 0xea, 0x9d, 0x1e, 0xeb, 0x45, 0x3e, 0x2d, 0x43, 0x98, 0x42, 0x55, 0xd9, 0x9b, 0xf9, 0xe8, 0xb6, - 0x2c, 0x87, 0x6b, 0x28, 0x1f, 0xd6, 0x4c, 0x6e, 0xcc, 0x14, 0xb7, 0x65, 0xc9, 0x07, 0x50, 0x3b, - 0x71, 0xfa, 0x43, 0xe2, 0x66, 0xe9, 0xa6, 0x71, 0xdc, 0x81, 0xaa, 0x45, 0xc2, 0xa3, 0xe1, 0x50, - 0x60, 0x91, 0x5a, 0x03, 0xd6, 0x69, 0xa2, 0x40, 0x13, 0x0a, 0xa8, 0xa4, 0x80, 0x4a, 0x0a, 0x84, - 0x71, 0x32, 0x84, 0x5d, 0xa8, 0xa9, 0x09, 0x97, 0x92, 0xb0, 0x07, 0x90, 0x21, 0x2f, 0x21, 0xf8, - 0x2d, 0x54, 0x8f, 0xba, 0x5d, 0x3a, 0xf6, 0xc2, 0xd6, 0x6b, 0xd2, 0x1d, 0x44, 0xb4, 0x1b, 0x50, - 0xe5, 0xff, 0xa5, 0x75, 0x1a, 0x5f, 0x97, 0x86, 0x95, 0x23, 0x5a, 0x99, 0x7f, 0x44, 0x85, 0xec, - 0x11, 0xfd, 0xd0, 0xa0, 0xa6, 0xee, 0x2d, 0x14, 0x76, 0x7f, 0x41, 0xe1, 0x34, 0x06, 0x59, 0x00, - 0x36, 0x61, 0xe3, 0x61, 0x38, 0x51, 0x58, 0x3e, 0xbc, 0x25, 0x56, 0xa4, 0xb3, 0x9b, 0x67, 0x7d, - 0xaf, 0x37, 0xe4, 0x25, 0x71, 0x16, 0x3a, 0xe1, 0x98, 0xd9, 0xd2, 0x52, 0xe3, 0x39, 0xd4, 0xd2, - 0xf3, 0x51, 0x69, 0x8f, 0xe5, 0x03, 0x8c, 0x47, 0xe8, 0x06, 0x6c, 0x3a, 0x22, 0xb9, 0x08, 0x8c, - 0xe5, 0xab, 0x20, 0xf6, 0xa0, 0x62, 0x91, 0x90, 0x1b, 0xe2, 0xbd, 0xa2, 0x91, 0xb7, 0x7b, 0x00, - 0xe3, 0xb4, 0xad, 0x12, 0xf2, 0x9b, 0x8e, 0x7e, 0xe0, 0x35, 0x38, 0xdd, 0x6f, 0x29, 0x3f, 0xef, - 0xc3, 0x46, 0x92, 0x81, 0x93, 0x2c, 0x70, 0x47, 0xb7, 0x4d, 0x1a, 0xbd, 0x17, 0xfd, 0xd1, 0x05, - 0x73, 0x07, 0xe6, 0x64, 0x0b, 0x25, 0x14, 0x7f, 0xd2, 0xe0, 0xdf, 0x73, 0xdf, 0x75, 0xe2, 0x7b, - 0x1c, 0x6b, 0xbe, 0x03, 0xeb, 0xc9, 0x30, 0x26, 0x30, 0x23, 0xd9, 0x24, 0x6c, 0x91, 0x0d, 0x34, - 0x6b, 0x83, 0x7c, 0x73, 0x4e, 0x00, 0xa5, 0x59, 0x2c, 0xe3, 0x04, 0xfe, 0xa6, 0xc1, 0xee, 0x19, - 0x09, 0x6d, 0xd2, 0x25, 0xfd, 0x4b, 0xd2, 0x26, 0x8c, 0x39, 0x3d, 0xd2, 0xf1, 0xc3, 0xf8, 0x20, - 0x4f, 0x02, 0x3a, 0x52, 0x6e, 0xb7, 0x84, 0xa0, 0x1a, 0x14, 0xa8, 0x1f, 0x72, 0xf2, 0xab, 0x76, - 0xf4, 0x17, 0x99, 0x80, 0xba, 0xd4, 0xbb, 0x24, 0x01, 0x8b, 0x79, 0x4e, 0xdc, 0x2d, 0xd9, 0x39, - 0x33, 0x69, 0x9d, 0xc5, 0x8c, 0x4e, 0xc5, 0xa5, 0x55, 0xd5, 0x25, 0xfc, 0x14, 0x4a, 0x9c, 0x69, - 0x54, 0xdd, 0xe8, 0x26, 0x54, 0x94, 0x0d, 0xdc, 0x98, 0x70, 0x0a, 0x8d, 0xaa, 0x3d, 0xe0, 0x2b, - 0x62, 0xde, 0xf1, 0x08, 0x7f, 0xd4, 0x40, 0xcf, 0x37, 0x62, 0xa9, 0x0a, 0xbb, 0x07, 0x9b, 0x34, - 0xe1, 0x26, 0x5d, 0xda, 0xaa, 0x58, 0x34, 0xa1, 0x6d, 0xab, 0x51, 0xf8, 0xab, 0x06, 0xbb, 0xd6, - 0x92, 0xc7, 0x91, 0x36, 0xdf, 0x95, 0x9e, 0xc3, 0x9c, 0x99, 0xc5, 0x45, 0xa6, 0x98, 0x5f, 0x4c, - 0x99, 0xff, 0x59, 0x03, 0xdd, 0xfa, 0x73, 0x7e, 0xb5, 0xe1, 0x3f, 0x99, 0x62, 0x47, 0xf1, 0xae, - 0x90, 0xef, 0xdd, 0xec, 0x15, 0xf8, 0x3d, 0xfc, 0x2f, 0x3e, 0x2c, 0x2d, 0x29, 0xa4, 0xcd, 0x7a, - 0x39, 0x56, 0xba, 0x19, 0x2b, 0xdd, 0xc5, 0x5f, 0xae, 0x79, 0x5f, 0x6e, 0xfc, 0x45, 0x83, 0x6b, - 0xb3, 0x77, 0xff, 0x0b, 0xec, 0x39, 0xfc, 0x5e, 0x04, 0xde, 0x21, 0xa1, 0x07, 0x50, 0x96, 0x5e, - 0x53, 0xb4, 0x25, 0x72, 0xa8, 0x0f, 0xba, 0xb1, 0x9d, 0x83, 0x32, 0x1f, 0xb5, 0xa0, 0xa2, 0x3e, - 0x41, 0x68, 0x57, 0x04, 0x66, 0x9e, 0x47, 0x43, 0xcf, 0x9f, 0x60, 0x7e, 0x44, 0x40, 0xea, 0x61, - 0x12, 0x02, 0x6a, 0x4b, 0x95, 0x10, 0x48, 0x37, 0x3b, 0x8f, 0x60, 0x43, 0xee, 0x1e, 0xd0, 0x94, - 0xa7, 0xdc, 0xa2, 0x18, 0x3b, 0x79, 0x30, 0xf3, 0xd1, 0x39, 0x6c, 0xe5, 0x5d, 0x78, 0x74, 0x5d, - 0xc4, 0xcf, 0x78, 0x15, 0x8d, 0xbd, 0x79, 0xd3, 0x22, 0xad, 0x35, 0x27, 0xad, 0x35, 0x3f, 0xed, - 0xcc, 0x2b, 0xe5, 0xf0, 0xeb, 0x96, 0x5b, 0x53, 0x68, 0x5f, 0x56, 0x98, 0x5b, 0xf1, 0x06, 0x5e, - 0x14, 0x22, 0xfc, 0x94, 0xbb, 0x89, 0xc4, 0xcf, 0x54, 0xef, 0x94, 0xf8, 0x99, 0x6e, 0x3c, 0x9e, - 0x6c, 0xbe, 0x28, 0x9b, 0xbc, 0x07, 0x7f, 0x18, 0xfd, 0xbc, 0x5c, 0xe3, 0x0d, 0xf6, 0xdd, 0x9f, - 0x01, 0x00, 0x00, 0xff, 0xff, 0x88, 0x5d, 0x20, 0xc1, 0x9c, 0x0b, 0x00, 0x00, + 0x14, 0x96, 0x9b, 0xb4, 0xb7, 0x39, 0x69, 0x93, 0xdc, 0x51, 0x7f, 0x7c, 0x7d, 0xef, 0xad, 0xd2, + 0x11, 0x82, 0xa8, 0x0b, 0x07, 0x8a, 0x58, 0x00, 0x02, 0xa9, 0xa4, 0xaa, 0x55, 0x41, 0x14, 0xe4, + 0xaa, 0x1b, 0x36, 0x95, 0x89, 0x87, 0x10, 0x25, 0xf1, 0x18, 0x8f, 0xd3, 0x0a, 0x90, 0xd8, 0xc0, + 0x5b, 0xb0, 0x60, 0xc9, 0x33, 0xf0, 0x1a, 0xbc, 0x00, 0xaf, 0x82, 0x3c, 0x63, 0x27, 0x33, 0xb6, + 0x93, 0x54, 0x81, 0x05, 0x9b, 0x28, 0xf3, 0xcd, 0x99, 0x33, 0xdf, 0xf7, 0xcd, 0x99, 0xf1, 0x81, + 0xea, 0x98, 0x91, 0xa0, 0x19, 0xfd, 0x98, 0x7e, 0x40, 0x43, 0x8a, 0x8a, 0xd1, 0x7f, 0x63, 0xbf, + 0xe3, 0x13, 0xef, 0xe2, 0xb4, 0xdd, 0xf4, 0x07, 0xbd, 0x26, 0x9f, 0x68, 0x32, 0x77, 0x70, 0x71, + 0xc5, 0x9a, 0x57, 0x4c, 0x04, 0xe2, 0xc7, 0x00, 0x2d, 0x3a, 0x1a, 0x51, 0xcf, 0x26, 0xcc, 0x47, + 0x3a, 0xfc, 0x45, 0x82, 0xa0, 0x45, 0x5d, 0xa2, 0x6b, 0x75, 0xad, 0xb1, 0x6a, 0x27, 0x43, 0xb4, + 0x03, 0x6b, 0x24, 0x08, 0xda, 0xac, 0xa7, 0xaf, 0xd4, 0xb5, 0x46, 0xc9, 0x8e, 0x47, 0xf8, 0x1d, + 0x54, 0x8e, 0xc9, 0x90, 0x84, 0xe4, 0x9c, 0x91, 0x80, 0xd9, 0xe4, 0x0d, 0x3a, 0x80, 0xda, 0x14, + 0x39, 0x3d, 0x7e, 0xd6, 0x67, 0xa1, 0xbe, 0x52, 0x2f, 0x34, 0x4a, 0x76, 0x06, 0x47, 0x06, 0xac, + 0x77, 0x7c, 0x31, 0xd6, 0x0b, 0x3c, 0xef, 0x64, 0x8c, 0xea, 0x50, 0xee, 0xf8, 0x24, 0x70, 0xc2, + 0x3e, 0xf5, 0x4e, 0x8f, 0xf5, 0x22, 0x9f, 0x96, 0x21, 0x4c, 0xa1, 0xaa, 0xec, 0xcd, 0x7c, 0x74, + 0x5b, 0x96, 0xc3, 0x35, 0x94, 0x0f, 0x6b, 0x26, 0x37, 0x66, 0x8a, 0xdb, 0xb2, 0xe4, 0x03, 0xa8, + 0x9d, 0x38, 0xfd, 0x21, 0x71, 0xb3, 0x74, 0xd3, 0x38, 0xee, 0x40, 0xd5, 0x22, 0xe1, 0xd1, 0x70, + 0x28, 0xb0, 0x48, 0xad, 0x01, 0xeb, 0x34, 0x51, 0xa0, 0x09, 0x05, 0x54, 0x52, 0x40, 0x25, 0x05, + 0xc2, 0x38, 0x19, 0xc2, 0x2e, 0xd4, 0xd4, 0x84, 0x4b, 0x49, 0xd8, 0x03, 0xc8, 0x90, 0x97, 0x10, + 0xfc, 0x16, 0xaa, 0x47, 0xdd, 0x2e, 0x1d, 0x7b, 0x61, 0xeb, 0x35, 0xe9, 0x0e, 0x22, 0xda, 0x0d, + 0xa8, 0xf2, 0xff, 0xd2, 0x3a, 0x8d, 0xaf, 0x4b, 0xc3, 0xca, 0x11, 0xad, 0xcc, 0x3f, 0xa2, 0x42, + 0xf6, 0x88, 0x7e, 0x68, 0x50, 0x53, 0xf7, 0x16, 0x0a, 0xbb, 0xd7, 0x50, 0x38, 0x8d, 0x41, 0x16, + 0x80, 0x4d, 0xd8, 0x78, 0x18, 0x4e, 0x14, 0x96, 0x0f, 0x6f, 0x89, 0x15, 0xe9, 0xec, 0xe6, 0x59, + 0xdf, 0xeb, 0x0d, 0x79, 0x49, 0x9c, 0x85, 0x4e, 0x38, 0x66, 0xb6, 0xb4, 0xd4, 0x78, 0x0e, 0xb5, + 0xf4, 0x7c, 0x54, 0xda, 0x63, 0xf9, 0x00, 0xe3, 0x11, 0xba, 0x01, 0x9b, 0x8e, 0x48, 0x2e, 0x02, + 0x63, 0xf9, 0x2a, 0x88, 0x3d, 0xa8, 0x58, 0x24, 0xe4, 0x86, 0x78, 0xaf, 0x68, 0xe4, 0xed, 0x1e, + 0xc0, 0x38, 0x6d, 0xab, 0x84, 0xfc, 0xa2, 0xa3, 0x1f, 0x78, 0x0d, 0x4e, 0xf7, 0x5b, 0xca, 0xcf, + 0xfb, 0xb0, 0x91, 0x64, 0xe0, 0x24, 0x0b, 0xdc, 0xd1, 0x6d, 0x93, 0x46, 0xef, 0x45, 0x7f, 0x74, + 0xc1, 0xdc, 0x81, 0x39, 0xd9, 0x42, 0x09, 0xc5, 0x9f, 0x34, 0xf8, 0xfb, 0xdc, 0x77, 0x9d, 0xf8, + 0x1e, 0xc7, 0x9a, 0xef, 0xc0, 0x7a, 0x32, 0x8c, 0x09, 0xcc, 0x48, 0x36, 0x09, 0x5b, 0x64, 0x03, + 0xcd, 0xda, 0x20, 0xdf, 0x9c, 0x13, 0x40, 0x69, 0x16, 0xcb, 0x38, 0x81, 0xbf, 0x69, 0xb0, 0x7b, + 0x46, 0x42, 0x9b, 0x74, 0x49, 0xff, 0x92, 0xb4, 0x09, 0x63, 0x4e, 0x8f, 0x74, 0xfc, 0x30, 0x3e, + 0xc8, 0x93, 0x80, 0x8e, 0x94, 0xdb, 0x2d, 0x21, 0xa8, 0x06, 0x05, 0xea, 0x87, 0x9c, 0xfc, 0xaa, + 0x1d, 0xfd, 0x45, 0x26, 0xa0, 0x2e, 0xf5, 0x2e, 0x49, 0xc0, 0x62, 0x9e, 0x13, 0x77, 0x4b, 0x76, + 0xce, 0x4c, 0x5a, 0x67, 0x31, 0xa3, 0x53, 0x71, 0x69, 0x55, 0x75, 0x09, 0x3f, 0x85, 0x12, 0x67, + 0x1a, 0x55, 0x37, 0xba, 0x09, 0x15, 0x65, 0x03, 0x37, 0x26, 0x9c, 0x42, 0xa3, 0x6a, 0x0f, 0xf8, + 0x8a, 0x98, 0x77, 0x3c, 0xc2, 0x1f, 0x35, 0xd0, 0xf3, 0x8d, 0x58, 0xaa, 0xc2, 0xee, 0xc1, 0x26, + 0x4d, 0xb8, 0x49, 0x97, 0xb6, 0x2a, 0x16, 0x4d, 0x68, 0xdb, 0x6a, 0x14, 0xfe, 0xaa, 0xc1, 0xae, + 0xb5, 0xe4, 0x71, 0xa4, 0xcd, 0x77, 0xa5, 0xe7, 0x30, 0x67, 0x66, 0x71, 0x91, 0x29, 0xe6, 0x17, + 0x53, 0xe6, 0x7f, 0xd6, 0x40, 0xb7, 0x7e, 0x9f, 0x5f, 0x6d, 0xf8, 0x47, 0xa6, 0xd8, 0x51, 0xbc, + 0x2b, 0xe4, 0x7b, 0x37, 0x7b, 0x05, 0x7e, 0x0f, 0xff, 0x8a, 0x0f, 0x4b, 0x4b, 0x0a, 0x69, 0xb3, + 0xde, 0x35, 0xad, 0x5c, 0xf8, 0xe5, 0x9a, 0xf7, 0xe5, 0xc6, 0x5f, 0x34, 0xf8, 0x6f, 0xf6, 0xee, + 0x7f, 0x80, 0x3d, 0x87, 0xdf, 0x8b, 0xc0, 0x3b, 0x24, 0xf4, 0x00, 0xca, 0xd2, 0x6b, 0x8a, 0xb6, + 0x44, 0x0e, 0xf5, 0x41, 0x37, 0xb6, 0x73, 0x50, 0xe6, 0xa3, 0x16, 0x54, 0xd4, 0x27, 0x08, 0xed, + 0x8a, 0xc0, 0xcc, 0xf3, 0x68, 0xe8, 0xf9, 0x13, 0xcc, 0x8f, 0x08, 0x48, 0x3d, 0x4c, 0x42, 0x40, + 0x6d, 0xa9, 0x12, 0x02, 0xe9, 0x66, 0xe7, 0x11, 0x6c, 0xc8, 0xdd, 0x03, 0x9a, 0xf2, 0x94, 0x5b, + 0x14, 0x63, 0x27, 0x0f, 0x66, 0x3e, 0x3a, 0x87, 0xad, 0xbc, 0x0b, 0x8f, 0xfe, 0x17, 0xf1, 0x33, + 0x5e, 0x45, 0x63, 0x6f, 0xde, 0xb4, 0x48, 0x6b, 0xcd, 0x49, 0x6b, 0xcd, 0x4f, 0x3b, 0xf3, 0x4a, + 0x39, 0xfc, 0xba, 0xe5, 0xd6, 0x14, 0xda, 0x97, 0x15, 0xe6, 0x56, 0xbc, 0x81, 0x17, 0x85, 0x08, + 0x3f, 0xe5, 0x6e, 0x22, 0xf1, 0x33, 0xd5, 0x3b, 0x25, 0x7e, 0xa6, 0x1b, 0x8f, 0x27, 0x9b, 0x2f, + 0xca, 0x26, 0xef, 0xc1, 0x1f, 0x46, 0x3f, 0x2f, 0xd7, 0x78, 0x83, 0x7d, 0xf7, 0x67, 0x00, 0x00, + 0x00, 0xff, 0xff, 0xda, 0x48, 0xf9, 0xbd, 0x9c, 0x0b, 0x00, 0x00, } diff --git a/pkg/proto/user/user.proto b/pkg/proto/user/user.proto index 7690167ed..bf4738d21 100644 --- a/pkg/proto/user/user.proto +++ b/pkg/proto/user/user.proto @@ -97,7 +97,7 @@ message GetReceiveMessageOptResp{ message GetAllConversationMsgOptReq{ - string FromUserId = 1; + string FromUserID = 1; string operationID = 2; string OpUserID = 3; } From 667ceb211504accaadc950dba60c8d3a33d63a97 Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Wed, 29 Dec 2021 15:08:27 +0800 Subject: [PATCH 327/814] Refactor code --- cmd/open_im_api/main.go | 2 +- internal/rpc/friend/firend.go | 2 +- pkg/common/db/mysql_model/im_mysql_model/model_struct.go | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/cmd/open_im_api/main.go b/cmd/open_im_api/main.go index 6135ee3f0..ea126b1c8 100644 --- a/cmd/open_im_api/main.go +++ b/cmd/open_im_api/main.go @@ -41,7 +41,7 @@ func main() { friendRouterGroup.POST("/delete_friend", friend.DeleteFriend) friendRouterGroup.POST("/add_friend_response", friend.AddFriendResponse) //1 friendRouterGroup.POST("/set_friend_remark", friend.SetFriendRemark) //1 - friendRouterGroup.POST("/is_friend", friend.IsFriend) + friendRouterGroup.POST("/is_friend", friend.IsFriend) //1 friendRouterGroup.POST("/import_friend", friend.ImportFriend) } //group related routing group diff --git a/internal/rpc/friend/firend.go b/internal/rpc/friend/firend.go index d5db10e1f..4fe757f11 100644 --- a/internal/rpc/friend/firend.go +++ b/internal/rpc/friend/firend.go @@ -116,7 +116,7 @@ func (s *friendServer) AddBlacklist(ctx context.Context, req *pbFriend.AddBlackl log.NewError(req.CommID.OperationID, "CheckAccess false ", req.CommID.OpUserID, req.CommID.FromUserID) return &pbFriend.AddBlacklistResp{CommonResp: &pbFriend.CommonResp{ErrCode: constant.ErrAccess.ErrCode, ErrMsg: constant.ErrAccess.ErrMsg}}, nil } - black := imdb.Black{OwnerUserID: req.CommID.FromUserID, BlockUserID: req.CommID.ToUserID} + black := imdb.Black{OwnerUserID: req.CommID.FromUserID, BlockUserID: req.CommID.ToUserID, OperatorUserID: req.CommID.OpUserID} err := imdb.InsertInToUserBlackList(black) if err != nil { diff --git a/pkg/common/db/mysql_model/im_mysql_model/model_struct.go b/pkg/common/db/mysql_model/im_mysql_model/model_struct.go index 29125d813..bd35c6314 100644 --- a/pkg/common/db/mysql_model/im_mysql_model/model_struct.go +++ b/pkg/common/db/mysql_model/im_mysql_model/model_struct.go @@ -161,6 +161,6 @@ type Black struct { CreateTime time.Time `gorm:"column:create_time"` BlockUserID string `gorm:"column:block_user_id;primaryKey;"` AddSource int32 `gorm:"column:add_source"` - OperatorUserID int32 `gorm:"column:operator_user_id"` + OperatorUserID string `gorm:"column:operator_user_id"` Ex string `gorm:"column:ex"` } From 679c907b789aef3ead408d3807dd3fc190fe3973 Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Wed, 29 Dec 2021 15:19:49 +0800 Subject: [PATCH 328/814] nil return modify --- internal/rpc/user/user.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/internal/rpc/user/user.go b/internal/rpc/user/user.go index 2ad30123d..fbe14cb92 100644 --- a/internal/rpc/user/user.go +++ b/internal/rpc/user/user.go @@ -127,9 +127,9 @@ func (s *userServer) GetReceiveMessageOpt(ctx context.Context, req *pbUser.GetRe func (s *userServer) GetAllConversationMsgOpt(ctx context.Context, req *pbUser.GetAllConversationMsgOptReq) (*pbUser.GetAllConversationMsgOptResp, error) { log.NewInfo(req.OperationID, "GetAllConversationMsgOpt args ", req.String()) - m, err := db.DB.GetAllConversationMsgOpt(req.FromUserId) + m, err := db.DB.GetAllConversationMsgOpt(req.FromUserID) if err != nil { - log.NewError(req.OperationID, "GetAllConversationMsgOpt failed ", err.Error(), req.FromUserId) + log.NewError(req.OperationID, "GetAllConversationMsgOpt failed ", err.Error(), req.FromUserID) return &pbUser.GetAllConversationMsgOptResp{CommonResp: &pbUser.CommonResp{ErrCode: constant.ErrDB.ErrCode, ErrMsg: constant.ErrDB.ErrMsg}}, nil } resp := pbUser.GetAllConversationMsgOptResp{CommonResp: &pbUser.CommonResp{}} From 4e4bab2bf04c18af1624792d4de4bccfce608156 Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Wed, 29 Dec 2021 15:50:50 +0800 Subject: [PATCH 329/814] Refactor code --- cmd/open_im_api/main.go | 14 +++++++------- pkg/proto/friend/friend.proto | 6 +++++- 2 files changed, 12 insertions(+), 8 deletions(-) diff --git a/cmd/open_im_api/main.go b/cmd/open_im_api/main.go index ea126b1c8..d6abb67e4 100644 --- a/cmd/open_im_api/main.go +++ b/cmd/open_im_api/main.go @@ -24,8 +24,8 @@ func main() { // user routing group, which handles user registration and login services userRouterGroup := r.Group("/user") { - userRouterGroup.POST("/update_user_info", user.UpdateUserInfo) - userRouterGroup.POST("/get_user_info", user.GetUserInfo) + userRouterGroup.POST("/update_user_info", user.UpdateUserInfo) //1 + userRouterGroup.POST("/get_user_info", user.GetUserInfo) //1 } //friend routing group friendRouterGroup := r.Group("/friend") @@ -35,9 +35,9 @@ func main() { friendRouterGroup.POST("/get_friend_apply_list", friend.GetFriendApplyList) //1 friendRouterGroup.POST("/get_self_apply_list", friend.GetSelfApplyList) //1 friendRouterGroup.POST("/get_friend_list", friend.GetFriendList) //1 - friendRouterGroup.POST("/add_blacklist", friend.AddBlacklist) - friendRouterGroup.POST("/get_blacklist", friend.GetBlacklist) - friendRouterGroup.POST("/remove_blacklist", friend.RemoveBlacklist) + friendRouterGroup.POST("/add_blacklist", friend.AddBlacklist) //1 + friendRouterGroup.POST("/get_blacklist", friend.GetBlacklist) //1 + friendRouterGroup.POST("/remove_blacklist", friend.RemoveBlacklist) //1 friendRouterGroup.POST("/delete_friend", friend.DeleteFriend) friendRouterGroup.POST("/add_friend_response", friend.AddFriendResponse) //1 friendRouterGroup.POST("/set_friend_remark", friend.SetFriendRemark) //1 @@ -65,8 +65,8 @@ func main() { //certificate authRouterGroup := r.Group("/auth") { - authRouterGroup.POST("/user_register", apiAuth.UserRegister) - authRouterGroup.POST("/user_token", apiAuth.UserToken) + authRouterGroup.POST("/user_register", apiAuth.UserRegister) //1 + authRouterGroup.POST("/user_token", apiAuth.UserToken) //1 } //Third service thirdGroup := r.Group("/third") diff --git a/pkg/proto/friend/friend.proto b/pkg/proto/friend/friend.proto index 780ebbb62..9bb348178 100644 --- a/pkg/proto/friend/friend.proto +++ b/pkg/proto/friend/friend.proto @@ -42,9 +42,13 @@ message ImportFriendReq{ string FromUserID = 3; string OpUserID = 4; } +message UserIDResult{ + string UserID = 1; + int32 Result = 2; +} message ImportFriendResp{ CommonResp CommonResp = 1; - repeated string FailedFriendUserIDList = 2; + repeated UserIDResult UserIDResultList = 2; } From 0b0173f155a4c1b1664a5002e9ffc7a2994b0e03 Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Wed, 29 Dec 2021 15:52:19 +0800 Subject: [PATCH 330/814] nil return modify --- internal/api/conversation/conversation.go | 30 ++-- pkg/base_info/conversation_api_struct.go | 12 +- pkg/proto/user/user.pb.go | 171 +++++++++++----------- pkg/proto/user/user.proto | 6 +- 4 files changed, 116 insertions(+), 103 deletions(-) diff --git a/internal/api/conversation/conversation.go b/internal/api/conversation/conversation.go index 4eaf1f0a9..d29e47c09 100644 --- a/internal/api/conversation/conversation.go +++ b/internal/api/conversation/conversation.go @@ -39,10 +39,14 @@ func GetAllConversationMessageOpt(c *gin.Context) { c.JSON(http.StatusBadRequest, gin.H{"errCode": 500, "errMsg": "GetAllConversationMsgOpt rpc failed, " + err.Error()}) return } - resp := api.GetAllConversationMessageOptResp{CommResp: api.CommResp{ErrCode: RpcResp.CommonResp.ErrCode, ErrMsg: RpcResp.CommonResp.ErrMsg}, ConversationOptResultList: RpcResp.ConversationOptResultList} - if len(RpcResp.ConversationOptResultList) == 0 { - resp.ConversationOptResultList = []*user.OptResult{} + optResult := make([]*api.OptResult, 0) + for _, v := range RpcResp.ConversationOptResultList { + temp := new(api.OptResult) + temp.ConversationID = v.ConversationID + temp.Result = &v.Result + optResult = append(optResult, temp) } + resp := api.GetAllConversationMessageOptResp{CommResp: api.CommResp{ErrCode: RpcResp.CommonResp.ErrCode, ErrMsg: RpcResp.CommonResp.ErrMsg}, ConversationOptResultList: optResult} log.NewInfo(req.OperationID, "GetAllConversationMsgOpt api return: ", resp) c.JSON(http.StatusOK, resp) } @@ -71,10 +75,14 @@ func GetReceiveMessageOpt(c *gin.Context) { c.JSON(http.StatusBadRequest, gin.H{"errCode": 500, "errMsg": "GetReceiveMessageOpt rpc failed, " + err.Error()}) return } - resp := api.GetReceiveMessageOptResp{CommResp: api.CommResp{ErrCode: RpcResp.CommonResp.ErrCode, ErrMsg: RpcResp.CommonResp.ErrMsg}, ConversationOptResultList: RpcResp.ConversationOptResultList} - if len(RpcResp.ConversationOptResultList) == 0 { - resp.ConversationOptResultList = []*user.OptResult{} + optResult := make([]*api.OptResult, 0) + for _, v := range RpcResp.ConversationOptResultList { + temp := new(api.OptResult) + temp.ConversationID = v.ConversationID + temp.Result = &v.Result + optResult = append(optResult, temp) } + resp := api.GetReceiveMessageOptResp{CommResp: api.CommResp{ErrCode: RpcResp.CommonResp.ErrCode, ErrMsg: RpcResp.CommonResp.ErrMsg}, ConversationOptResultList: optResult} log.NewInfo(req.OperationID, "GetReceiveMessageOpt api return: ", resp) c.JSON(http.StatusOK, resp) } @@ -103,10 +111,14 @@ func SetReceiveMessageOpt(c *gin.Context) { c.JSON(http.StatusBadRequest, gin.H{"errCode": 500, "errMsg": "SetReceiveMessageOpt rpc failed, " + err.Error()}) return } - resp := api.SetReceiveMessageOptResp{CommResp: api.CommResp{ErrCode: RpcResp.CommonResp.ErrCode, ErrMsg: RpcResp.CommonResp.ErrMsg}, OptResultList: RpcResp.OptResultList} - if len(RpcResp.OptResultList) == 0 { - resp.OptResultList = []*user.OptResult{} + optResult := make([]*api.OptResult, 0) + for _, v := range RpcResp.ConversationOptResultList { + temp := new(api.OptResult) + temp.ConversationID = v.ConversationID + temp.Result = &v.Result + optResult = append(optResult, temp) } + resp := api.SetReceiveMessageOptResp{CommResp: api.CommResp{ErrCode: RpcResp.CommonResp.ErrCode, ErrMsg: RpcResp.CommonResp.ErrMsg}, ConversationOptResultList: optResult} log.NewInfo(req.OperationID, "SetReceiveMessageOpt api return: ", resp) c.JSON(http.StatusOK, resp) } diff --git a/pkg/base_info/conversation_api_struct.go b/pkg/base_info/conversation_api_struct.go index 0bbb52a49..06133e4bd 100644 --- a/pkg/base_info/conversation_api_struct.go +++ b/pkg/base_info/conversation_api_struct.go @@ -1,14 +1,16 @@ package base_info -import "Open_IM/pkg/proto/user" - +type OptResult struct { + ConversationID string `json:"conversationID"` + Result *int32 `json:"result"` +} type GetAllConversationMessageOptReq struct { OperationID string `json:"operationID" binding:"required"` FromUserID string `json:"fromUserID" binding:"required"` } type GetAllConversationMessageOptResp struct { CommResp - ConversationOptResultList []*user.OptResult `json:"data"` + ConversationOptResultList []*OptResult `json:"data"` } type GetReceiveMessageOptReq struct { ConversationIdList []string `json:"conversationIdList" binding:"required"` @@ -17,7 +19,7 @@ type GetReceiveMessageOptReq struct { } type GetReceiveMessageOptResp struct { CommResp - ConversationOptResultList []*user.OptResult `json:"data"` + ConversationOptResultList []*OptResult `json:"data"` } type SetReceiveMessageOptReq struct { OperationID string `json:"operationID" binding:"required"` @@ -26,5 +28,5 @@ type SetReceiveMessageOptReq struct { } type SetReceiveMessageOptResp struct { CommResp - OptResultList []*user.OptResult `json:"data"` + ConversationOptResultList []*OptResult `json:"data"` } diff --git a/pkg/proto/user/user.pb.go b/pkg/proto/user/user.pb.go index 79a53f7d7..22a698a44 100644 --- a/pkg/proto/user/user.pb.go +++ b/pkg/proto/user/user.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_user_9c8678d55a710022, []int{0} + return fileDescriptor_user_9cc4371b0c883611, []int{0} } func (m *CommonResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_CommonResp.Unmarshal(m, b) @@ -83,7 +83,7 @@ func (m *DeleteUsersReq) Reset() { *m = DeleteUsersReq{} } func (m *DeleteUsersReq) String() string { return proto.CompactTextString(m) } func (*DeleteUsersReq) ProtoMessage() {} func (*DeleteUsersReq) Descriptor() ([]byte, []int) { - return fileDescriptor_user_9c8678d55a710022, []int{1} + return fileDescriptor_user_9cc4371b0c883611, []int{1} } func (m *DeleteUsersReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_DeleteUsersReq.Unmarshal(m, b) @@ -136,7 +136,7 @@ func (m *DeleteUsersResp) Reset() { *m = DeleteUsersResp{} } func (m *DeleteUsersResp) String() string { return proto.CompactTextString(m) } func (*DeleteUsersResp) ProtoMessage() {} func (*DeleteUsersResp) Descriptor() ([]byte, []int) { - return fileDescriptor_user_9c8678d55a710022, []int{2} + return fileDescriptor_user_9cc4371b0c883611, []int{2} } func (m *DeleteUsersResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_DeleteUsersResp.Unmarshal(m, b) @@ -182,7 +182,7 @@ func (m *GetAllUserIDReq) Reset() { *m = GetAllUserIDReq{} } func (m *GetAllUserIDReq) String() string { return proto.CompactTextString(m) } func (*GetAllUserIDReq) ProtoMessage() {} func (*GetAllUserIDReq) Descriptor() ([]byte, []int) { - return fileDescriptor_user_9c8678d55a710022, []int{3} + return fileDescriptor_user_9cc4371b0c883611, []int{3} } func (m *GetAllUserIDReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetAllUserIDReq.Unmarshal(m, b) @@ -228,7 +228,7 @@ func (m *GetAllUserIDResp) Reset() { *m = GetAllUserIDResp{} } func (m *GetAllUserIDResp) String() string { return proto.CompactTextString(m) } func (*GetAllUserIDResp) ProtoMessage() {} func (*GetAllUserIDResp) Descriptor() ([]byte, []int) { - return fileDescriptor_user_9c8678d55a710022, []int{4} + return fileDescriptor_user_9cc4371b0c883611, []int{4} } func (m *GetAllUserIDResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetAllUserIDResp.Unmarshal(m, b) @@ -275,7 +275,7 @@ func (m *AccountCheckReq) Reset() { *m = AccountCheckReq{} } func (m *AccountCheckReq) String() string { return proto.CompactTextString(m) } func (*AccountCheckReq) ProtoMessage() {} func (*AccountCheckReq) Descriptor() ([]byte, []int) { - return fileDescriptor_user_9c8678d55a710022, []int{5} + return fileDescriptor_user_9cc4371b0c883611, []int{5} } func (m *AccountCheckReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_AccountCheckReq.Unmarshal(m, b) @@ -328,7 +328,7 @@ func (m *AccountCheckResp) Reset() { *m = AccountCheckResp{} } func (m *AccountCheckResp) String() string { return proto.CompactTextString(m) } func (*AccountCheckResp) ProtoMessage() {} func (*AccountCheckResp) Descriptor() ([]byte, []int) { - return fileDescriptor_user_9c8678d55a710022, []int{6} + return fileDescriptor_user_9cc4371b0c883611, []int{6} } func (m *AccountCheckResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_AccountCheckResp.Unmarshal(m, b) @@ -374,7 +374,7 @@ func (m *AccountCheckResp_SingleUserStatus) Reset() { *m = AccountCheckR func (m *AccountCheckResp_SingleUserStatus) String() string { return proto.CompactTextString(m) } func (*AccountCheckResp_SingleUserStatus) ProtoMessage() {} func (*AccountCheckResp_SingleUserStatus) Descriptor() ([]byte, []int) { - return fileDescriptor_user_9c8678d55a710022, []int{6, 0} + return fileDescriptor_user_9cc4371b0c883611, []int{6, 0} } func (m *AccountCheckResp_SingleUserStatus) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_AccountCheckResp_SingleUserStatus.Unmarshal(m, b) @@ -421,7 +421,7 @@ 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_user_9c8678d55a710022, []int{7} + return fileDescriptor_user_9cc4371b0c883611, []int{7} } func (m *GetUserInfoReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetUserInfoReq.Unmarshal(m, b) @@ -474,7 +474,7 @@ 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_user_9c8678d55a710022, []int{8} + return fileDescriptor_user_9cc4371b0c883611, []int{8} } func (m *GetUserInfoResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetUserInfoResp.Unmarshal(m, b) @@ -521,7 +521,7 @@ 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_user_9c8678d55a710022, []int{9} + return fileDescriptor_user_9cc4371b0c883611, []int{9} } func (m *UpdateUserInfoReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_UpdateUserInfoReq.Unmarshal(m, b) @@ -573,7 +573,7 @@ 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_user_9c8678d55a710022, []int{10} + return fileDescriptor_user_9cc4371b0c883611, []int{10} } func (m *UpdateUserInfoResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_UpdateUserInfoResp.Unmarshal(m, b) @@ -615,7 +615,7 @@ func (m *SetReceiveMessageOptReq) Reset() { *m = SetReceiveMessageOptReq func (m *SetReceiveMessageOptReq) String() string { return proto.CompactTextString(m) } func (*SetReceiveMessageOptReq) ProtoMessage() {} func (*SetReceiveMessageOptReq) Descriptor() ([]byte, []int) { - return fileDescriptor_user_9c8678d55a710022, []int{11} + return fileDescriptor_user_9cc4371b0c883611, []int{11} } func (m *SetReceiveMessageOptReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SetReceiveMessageOptReq.Unmarshal(m, b) @@ -671,7 +671,7 @@ func (m *SetReceiveMessageOptReq) GetOpUserID() string { } type OptResult struct { - ConversationId string `protobuf:"bytes,1,opt,name=conversationId" json:"conversationId,omitempty"` + ConversationID string `protobuf:"bytes,1,opt,name=conversationID" json:"conversationID,omitempty"` Result int32 `protobuf:"varint,2,opt,name=result" json:"result,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` @@ -682,7 +682,7 @@ func (m *OptResult) Reset() { *m = OptResult{} } func (m *OptResult) String() string { return proto.CompactTextString(m) } func (*OptResult) ProtoMessage() {} func (*OptResult) Descriptor() ([]byte, []int) { - return fileDescriptor_user_9c8678d55a710022, []int{12} + return fileDescriptor_user_9cc4371b0c883611, []int{12} } func (m *OptResult) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_OptResult.Unmarshal(m, b) @@ -702,9 +702,9 @@ func (m *OptResult) XXX_DiscardUnknown() { var xxx_messageInfo_OptResult proto.InternalMessageInfo -func (m *OptResult) GetConversationId() string { +func (m *OptResult) GetConversationID() string { if m != nil { - return m.ConversationId + return m.ConversationID } return "" } @@ -717,18 +717,18 @@ func (m *OptResult) GetResult() int32 { } type SetReceiveMessageOptResp struct { - CommonResp *CommonResp `protobuf:"bytes,1,opt,name=commonResp" json:"commonResp,omitempty"` - OptResultList []*OptResult `protobuf:"bytes,2,rep,name=optResultList" json:"optResultList,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + CommonResp *CommonResp `protobuf:"bytes,1,opt,name=commonResp" json:"commonResp,omitempty"` + ConversationOptResultList []*OptResult `protobuf:"bytes,2,rep,name=conversationOptResultList" json:"conversationOptResultList,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } func (m *SetReceiveMessageOptResp) Reset() { *m = SetReceiveMessageOptResp{} } func (m *SetReceiveMessageOptResp) String() string { return proto.CompactTextString(m) } func (*SetReceiveMessageOptResp) ProtoMessage() {} func (*SetReceiveMessageOptResp) Descriptor() ([]byte, []int) { - return fileDescriptor_user_9c8678d55a710022, []int{13} + return fileDescriptor_user_9cc4371b0c883611, []int{13} } func (m *SetReceiveMessageOptResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SetReceiveMessageOptResp.Unmarshal(m, b) @@ -755,16 +755,16 @@ func (m *SetReceiveMessageOptResp) GetCommonResp() *CommonResp { return nil } -func (m *SetReceiveMessageOptResp) GetOptResultList() []*OptResult { +func (m *SetReceiveMessageOptResp) GetConversationOptResultList() []*OptResult { if m != nil { - return m.OptResultList + return m.ConversationOptResultList } return nil } type GetReceiveMessageOptReq struct { FromUserID string `protobuf:"bytes,1,opt,name=FromUserID" json:"FromUserID,omitempty"` - ConversationIdList []string `protobuf:"bytes,2,rep,name=conversationIdList" json:"conversationIdList,omitempty"` + ConversationIDList []string `protobuf:"bytes,2,rep,name=conversationIDList" json:"conversationIDList,omitempty"` OperationID string `protobuf:"bytes,3,opt,name=operationID" json:"operationID,omitempty"` OpUserID string `protobuf:"bytes,4,opt,name=OpUserID" json:"OpUserID,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` @@ -776,7 +776,7 @@ func (m *GetReceiveMessageOptReq) Reset() { *m = GetReceiveMessageOptReq func (m *GetReceiveMessageOptReq) String() string { return proto.CompactTextString(m) } func (*GetReceiveMessageOptReq) ProtoMessage() {} func (*GetReceiveMessageOptReq) Descriptor() ([]byte, []int) { - return fileDescriptor_user_9c8678d55a710022, []int{14} + return fileDescriptor_user_9cc4371b0c883611, []int{14} } func (m *GetReceiveMessageOptReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetReceiveMessageOptReq.Unmarshal(m, b) @@ -803,9 +803,9 @@ func (m *GetReceiveMessageOptReq) GetFromUserID() string { return "" } -func (m *GetReceiveMessageOptReq) GetConversationIdList() []string { +func (m *GetReceiveMessageOptReq) GetConversationIDList() []string { if m != nil { - return m.ConversationIdList + return m.ConversationIDList } return nil } @@ -836,7 +836,7 @@ func (m *GetReceiveMessageOptResp) Reset() { *m = GetReceiveMessageOptRe func (m *GetReceiveMessageOptResp) String() string { return proto.CompactTextString(m) } func (*GetReceiveMessageOptResp) ProtoMessage() {} func (*GetReceiveMessageOptResp) Descriptor() ([]byte, []int) { - return fileDescriptor_user_9c8678d55a710022, []int{15} + return fileDescriptor_user_9cc4371b0c883611, []int{15} } func (m *GetReceiveMessageOptResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetReceiveMessageOptResp.Unmarshal(m, b) @@ -883,7 +883,7 @@ func (m *GetAllConversationMsgOptReq) Reset() { *m = GetAllConversationM func (m *GetAllConversationMsgOptReq) String() string { return proto.CompactTextString(m) } func (*GetAllConversationMsgOptReq) ProtoMessage() {} func (*GetAllConversationMsgOptReq) Descriptor() ([]byte, []int) { - return fileDescriptor_user_9c8678d55a710022, []int{16} + return fileDescriptor_user_9cc4371b0c883611, []int{16} } func (m *GetAllConversationMsgOptReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetAllConversationMsgOptReq.Unmarshal(m, b) @@ -936,7 +936,7 @@ func (m *GetAllConversationMsgOptResp) Reset() { *m = GetAllConversation func (m *GetAllConversationMsgOptResp) String() string { return proto.CompactTextString(m) } func (*GetAllConversationMsgOptResp) ProtoMessage() {} func (*GetAllConversationMsgOptResp) Descriptor() ([]byte, []int) { - return fileDescriptor_user_9c8678d55a710022, []int{17} + return fileDescriptor_user_9cc4371b0c883611, []int{17} } func (m *GetAllConversationMsgOptResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetAllConversationMsgOptResp.Unmarshal(m, b) @@ -1295,60 +1295,59 @@ var _User_serviceDesc = grpc.ServiceDesc{ Metadata: "user/user.proto", } -func init() { proto.RegisterFile("user/user.proto", fileDescriptor_user_9c8678d55a710022) } +func init() { proto.RegisterFile("user/user.proto", fileDescriptor_user_9cc4371b0c883611) } -var fileDescriptor_user_9c8678d55a710022 = []byte{ - // 827 bytes of a gzipped FileDescriptorProto +var fileDescriptor_user_9cc4371b0c883611 = []byte{ + // 812 bytes of a gzipped FileDescriptorProto 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x56, 0xcd, 0x6e, 0xd3, 0x4a, - 0x14, 0x96, 0x9b, 0xb4, 0xb7, 0x39, 0x69, 0x93, 0xdc, 0x51, 0x7f, 0x7c, 0x7d, 0xef, 0xad, 0xd2, - 0x11, 0x82, 0xa8, 0x0b, 0x07, 0x8a, 0x58, 0x00, 0x02, 0xa9, 0xa4, 0xaa, 0x55, 0x41, 0x14, 0xe4, - 0xaa, 0x1b, 0x36, 0x95, 0x89, 0x87, 0x10, 0x25, 0xf1, 0x18, 0x8f, 0xd3, 0x0a, 0x90, 0xd8, 0xc0, - 0x5b, 0xb0, 0x60, 0xc9, 0x33, 0xf0, 0x1a, 0xbc, 0x00, 0xaf, 0x82, 0x3c, 0x63, 0x27, 0x33, 0xb6, - 0x93, 0x54, 0x81, 0x05, 0x9b, 0x28, 0xf3, 0xcd, 0x99, 0x33, 0xdf, 0xf7, 0xcd, 0x99, 0xf1, 0x81, - 0xea, 0x98, 0x91, 0xa0, 0x19, 0xfd, 0x98, 0x7e, 0x40, 0x43, 0x8a, 0x8a, 0xd1, 0x7f, 0x63, 0xbf, - 0xe3, 0x13, 0xef, 0xe2, 0xb4, 0xdd, 0xf4, 0x07, 0xbd, 0x26, 0x9f, 0x68, 0x32, 0x77, 0x70, 0x71, - 0xc5, 0x9a, 0x57, 0x4c, 0x04, 0xe2, 0xc7, 0x00, 0x2d, 0x3a, 0x1a, 0x51, 0xcf, 0x26, 0xcc, 0x47, - 0x3a, 0xfc, 0x45, 0x82, 0xa0, 0x45, 0x5d, 0xa2, 0x6b, 0x75, 0xad, 0xb1, 0x6a, 0x27, 0x43, 0xb4, - 0x03, 0x6b, 0x24, 0x08, 0xda, 0xac, 0xa7, 0xaf, 0xd4, 0xb5, 0x46, 0xc9, 0x8e, 0x47, 0xf8, 0x1d, - 0x54, 0x8e, 0xc9, 0x90, 0x84, 0xe4, 0x9c, 0x91, 0x80, 0xd9, 0xe4, 0x0d, 0x3a, 0x80, 0xda, 0x14, - 0x39, 0x3d, 0x7e, 0xd6, 0x67, 0xa1, 0xbe, 0x52, 0x2f, 0x34, 0x4a, 0x76, 0x06, 0x47, 0x06, 0xac, - 0x77, 0x7c, 0x31, 0xd6, 0x0b, 0x3c, 0xef, 0x64, 0x8c, 0xea, 0x50, 0xee, 0xf8, 0x24, 0x70, 0xc2, - 0x3e, 0xf5, 0x4e, 0x8f, 0xf5, 0x22, 0x9f, 0x96, 0x21, 0x4c, 0xa1, 0xaa, 0xec, 0xcd, 0x7c, 0x74, - 0x5b, 0x96, 0xc3, 0x35, 0x94, 0x0f, 0x6b, 0x26, 0x37, 0x66, 0x8a, 0xdb, 0xb2, 0xe4, 0x03, 0xa8, - 0x9d, 0x38, 0xfd, 0x21, 0x71, 0xb3, 0x74, 0xd3, 0x38, 0xee, 0x40, 0xd5, 0x22, 0xe1, 0xd1, 0x70, - 0x28, 0xb0, 0x48, 0xad, 0x01, 0xeb, 0x34, 0x51, 0xa0, 0x09, 0x05, 0x54, 0x52, 0x40, 0x25, 0x05, - 0xc2, 0x38, 0x19, 0xc2, 0x2e, 0xd4, 0xd4, 0x84, 0x4b, 0x49, 0xd8, 0x03, 0xc8, 0x90, 0x97, 0x10, - 0xfc, 0x16, 0xaa, 0x47, 0xdd, 0x2e, 0x1d, 0x7b, 0x61, 0xeb, 0x35, 0xe9, 0x0e, 0x22, 0xda, 0x0d, - 0xa8, 0xf2, 0xff, 0xd2, 0x3a, 0x8d, 0xaf, 0x4b, 0xc3, 0xca, 0x11, 0xad, 0xcc, 0x3f, 0xa2, 0x42, - 0xf6, 0x88, 0x7e, 0x68, 0x50, 0x53, 0xf7, 0x16, 0x0a, 0xbb, 0xd7, 0x50, 0x38, 0x8d, 0x41, 0x16, - 0x80, 0x4d, 0xd8, 0x78, 0x18, 0x4e, 0x14, 0x96, 0x0f, 0x6f, 0x89, 0x15, 0xe9, 0xec, 0xe6, 0x59, - 0xdf, 0xeb, 0x0d, 0x79, 0x49, 0x9c, 0x85, 0x4e, 0x38, 0x66, 0xb6, 0xb4, 0xd4, 0x78, 0x0e, 0xb5, - 0xf4, 0x7c, 0x54, 0xda, 0x63, 0xf9, 0x00, 0xe3, 0x11, 0xba, 0x01, 0x9b, 0x8e, 0x48, 0x2e, 0x02, - 0x63, 0xf9, 0x2a, 0x88, 0x3d, 0xa8, 0x58, 0x24, 0xe4, 0x86, 0x78, 0xaf, 0x68, 0xe4, 0xed, 0x1e, - 0xc0, 0x38, 0x6d, 0xab, 0x84, 0xfc, 0xa2, 0xa3, 0x1f, 0x78, 0x0d, 0x4e, 0xf7, 0x5b, 0xca, 0xcf, - 0xfb, 0xb0, 0x91, 0x64, 0xe0, 0x24, 0x0b, 0xdc, 0xd1, 0x6d, 0x93, 0x46, 0xef, 0x45, 0x7f, 0x74, - 0xc1, 0xdc, 0x81, 0x39, 0xd9, 0x42, 0x09, 0xc5, 0x9f, 0x34, 0xf8, 0xfb, 0xdc, 0x77, 0x9d, 0xf8, - 0x1e, 0xc7, 0x9a, 0xef, 0xc0, 0x7a, 0x32, 0x8c, 0x09, 0xcc, 0x48, 0x36, 0x09, 0x5b, 0x64, 0x03, - 0xcd, 0xda, 0x20, 0xdf, 0x9c, 0x13, 0x40, 0x69, 0x16, 0xcb, 0x38, 0x81, 0xbf, 0x69, 0xb0, 0x7b, - 0x46, 0x42, 0x9b, 0x74, 0x49, 0xff, 0x92, 0xb4, 0x09, 0x63, 0x4e, 0x8f, 0x74, 0xfc, 0x30, 0x3e, - 0xc8, 0x93, 0x80, 0x8e, 0x94, 0xdb, 0x2d, 0x21, 0xa8, 0x06, 0x05, 0xea, 0x87, 0x9c, 0xfc, 0xaa, - 0x1d, 0xfd, 0x45, 0x26, 0xa0, 0x2e, 0xf5, 0x2e, 0x49, 0xc0, 0x62, 0x9e, 0x13, 0x77, 0x4b, 0x76, - 0xce, 0x4c, 0x5a, 0x67, 0x31, 0xa3, 0x53, 0x71, 0x69, 0x55, 0x75, 0x09, 0x3f, 0x85, 0x12, 0x67, - 0x1a, 0x55, 0x37, 0xba, 0x09, 0x15, 0x65, 0x03, 0x37, 0x26, 0x9c, 0x42, 0xa3, 0x6a, 0x0f, 0xf8, - 0x8a, 0x98, 0x77, 0x3c, 0xc2, 0x1f, 0x35, 0xd0, 0xf3, 0x8d, 0x58, 0xaa, 0xc2, 0xee, 0xc1, 0x26, - 0x4d, 0xb8, 0x49, 0x97, 0xb6, 0x2a, 0x16, 0x4d, 0x68, 0xdb, 0x6a, 0x14, 0xfe, 0xaa, 0xc1, 0xae, - 0xb5, 0xe4, 0x71, 0xa4, 0xcd, 0x77, 0xa5, 0xe7, 0x30, 0x67, 0x66, 0x71, 0x91, 0x29, 0xe6, 0x17, - 0x53, 0xe6, 0x7f, 0xd6, 0x40, 0xb7, 0x7e, 0x9f, 0x5f, 0x6d, 0xf8, 0x47, 0xa6, 0xd8, 0x51, 0xbc, - 0x2b, 0xe4, 0x7b, 0x37, 0x7b, 0x05, 0x7e, 0x0f, 0xff, 0x8a, 0x0f, 0x4b, 0x4b, 0x0a, 0x69, 0xb3, - 0xde, 0x35, 0xad, 0x5c, 0xf8, 0xe5, 0x9a, 0xf7, 0xe5, 0xc6, 0x5f, 0x34, 0xf8, 0x6f, 0xf6, 0xee, - 0x7f, 0x80, 0x3d, 0x87, 0xdf, 0x8b, 0xc0, 0x3b, 0x24, 0xf4, 0x00, 0xca, 0xd2, 0x6b, 0x8a, 0xb6, - 0x44, 0x0e, 0xf5, 0x41, 0x37, 0xb6, 0x73, 0x50, 0xe6, 0xa3, 0x16, 0x54, 0xd4, 0x27, 0x08, 0xed, - 0x8a, 0xc0, 0xcc, 0xf3, 0x68, 0xe8, 0xf9, 0x13, 0xcc, 0x8f, 0x08, 0x48, 0x3d, 0x4c, 0x42, 0x40, - 0x6d, 0xa9, 0x12, 0x02, 0xe9, 0x66, 0xe7, 0x11, 0x6c, 0xc8, 0xdd, 0x03, 0x9a, 0xf2, 0x94, 0x5b, - 0x14, 0x63, 0x27, 0x0f, 0x66, 0x3e, 0x3a, 0x87, 0xad, 0xbc, 0x0b, 0x8f, 0xfe, 0x17, 0xf1, 0x33, - 0x5e, 0x45, 0x63, 0x6f, 0xde, 0xb4, 0x48, 0x6b, 0xcd, 0x49, 0x6b, 0xcd, 0x4f, 0x3b, 0xf3, 0x4a, - 0x39, 0xfc, 0xba, 0xe5, 0xd6, 0x14, 0xda, 0x97, 0x15, 0xe6, 0x56, 0xbc, 0x81, 0x17, 0x85, 0x08, - 0x3f, 0xe5, 0x6e, 0x22, 0xf1, 0x33, 0xd5, 0x3b, 0x25, 0x7e, 0xa6, 0x1b, 0x8f, 0x27, 0x9b, 0x2f, - 0xca, 0x26, 0xef, 0xc1, 0x1f, 0x46, 0x3f, 0x2f, 0xd7, 0x78, 0x83, 0x7d, 0xf7, 0x67, 0x00, 0x00, - 0x00, 0xff, 0xff, 0xda, 0x48, 0xf9, 0xbd, 0x9c, 0x0b, 0x00, 0x00, + 0x14, 0x96, 0xe3, 0xb4, 0xb7, 0x39, 0x69, 0x13, 0xdf, 0x51, 0x7f, 0x7c, 0x7d, 0xa1, 0x4a, 0x47, + 0x08, 0xa2, 0x2e, 0x1c, 0x28, 0x2b, 0x40, 0x20, 0x95, 0x54, 0xb5, 0x2a, 0x88, 0x82, 0x5c, 0x75, + 0xc3, 0xa6, 0x32, 0xc9, 0x10, 0xa2, 0x24, 0x1e, 0xe3, 0x71, 0x5a, 0x01, 0x12, 0x2b, 0xde, 0x82, + 0x05, 0x4b, 0x9e, 0x81, 0xd7, 0xe0, 0x05, 0x78, 0x15, 0xe4, 0x19, 0xdb, 0x19, 0xff, 0x24, 0x2d, + 0x41, 0x42, 0x6c, 0x2c, 0xcf, 0x99, 0x33, 0x67, 0xbe, 0xef, 0x3b, 0x67, 0x66, 0x0e, 0xd4, 0xa7, + 0x8c, 0xf8, 0xad, 0xf0, 0x63, 0x7a, 0x3e, 0x0d, 0x28, 0x2a, 0x87, 0xff, 0xc6, 0x5e, 0xd7, 0x23, + 0xee, 0xf9, 0x49, 0xa7, 0xe5, 0x8d, 0x06, 0x2d, 0x3e, 0xd1, 0x62, 0xfd, 0xd1, 0xf9, 0x25, 0x6b, + 0x5d, 0x32, 0xe1, 0x88, 0x9f, 0x00, 0xb4, 0xe9, 0x64, 0x42, 0x5d, 0x9b, 0x30, 0x0f, 0xe9, 0xf0, + 0x0f, 0xf1, 0xfd, 0x36, 0xed, 0x13, 0x5d, 0x69, 0x28, 0xcd, 0x15, 0x3b, 0x1e, 0xa2, 0x6d, 0x58, + 0x25, 0xbe, 0xdf, 0x61, 0x03, 0xbd, 0xd4, 0x50, 0x9a, 0x15, 0x3b, 0x1a, 0xe1, 0xf7, 0x50, 0x3b, + 0x22, 0x63, 0x12, 0x90, 0x33, 0x46, 0x7c, 0x66, 0x93, 0xb7, 0x68, 0x1f, 0xb4, 0x99, 0xe5, 0xe4, + 0xe8, 0xf9, 0x90, 0x05, 0x7a, 0xa9, 0xa1, 0x36, 0x2b, 0x76, 0xce, 0x8e, 0x0c, 0x58, 0xeb, 0x7a, + 0x62, 0xac, 0xab, 0x3c, 0x6e, 0x32, 0x46, 0x0d, 0xa8, 0x76, 0x3d, 0xe2, 0x3b, 0xc1, 0x90, 0xba, + 0x27, 0x47, 0x7a, 0x99, 0x4f, 0xcb, 0x26, 0x4c, 0xa1, 0x9e, 0xda, 0x9b, 0x79, 0xe8, 0xae, 0x4c, + 0x87, 0x73, 0xa8, 0x1e, 0x68, 0x26, 0x17, 0x66, 0x66, 0xb7, 0x65, 0xca, 0xfb, 0xa0, 0x1d, 0x3b, + 0xc3, 0x31, 0xe9, 0xe7, 0xe1, 0x66, 0xed, 0xb8, 0x0b, 0x75, 0x8b, 0x04, 0x87, 0xe3, 0xb1, 0xb0, + 0x85, 0x6c, 0x0d, 0x58, 0xa3, 0x31, 0x03, 0x45, 0x30, 0xa0, 0x12, 0x03, 0x2a, 0x31, 0x10, 0xc2, + 0xc9, 0x26, 0xdc, 0x07, 0x2d, 0x1d, 0x70, 0x29, 0x0a, 0xbb, 0x00, 0x39, 0xf0, 0x92, 0x05, 0xbf, + 0x83, 0xfa, 0x61, 0xaf, 0x47, 0xa7, 0x6e, 0xd0, 0x7e, 0x43, 0x7a, 0xa3, 0x10, 0x76, 0x13, 0xea, + 0xfc, 0x5f, 0x5a, 0xa7, 0xf0, 0x75, 0x59, 0x73, 0x2a, 0x45, 0xa5, 0xc5, 0x29, 0x52, 0xf3, 0x29, + 0xfa, 0xa1, 0x80, 0x96, 0xde, 0x5b, 0x30, 0xec, 0x5d, 0x83, 0xe1, 0xcc, 0x07, 0x59, 0x00, 0x36, + 0x61, 0xd3, 0x71, 0x90, 0x30, 0xac, 0x1e, 0xdc, 0x11, 0x2b, 0xb2, 0xd1, 0xcd, 0xd3, 0xa1, 0x3b, + 0x18, 0xf3, 0x92, 0x38, 0x0d, 0x9c, 0x60, 0xca, 0x6c, 0x69, 0xa9, 0xf1, 0x02, 0xb4, 0xec, 0x7c, + 0x58, 0xda, 0x53, 0x39, 0x81, 0xd1, 0x08, 0xdd, 0x82, 0x0d, 0x47, 0x04, 0x17, 0x8e, 0x11, 0xfd, + 0xb4, 0x11, 0xbb, 0x50, 0xb3, 0x48, 0xc0, 0x05, 0x71, 0x5f, 0xd3, 0x50, 0xdb, 0x5d, 0x80, 0x69, + 0x56, 0x56, 0xc9, 0xf2, 0x9b, 0x8a, 0x7e, 0xe4, 0x35, 0x38, 0xdb, 0x6f, 0x29, 0x3d, 0x1f, 0xc0, + 0x7a, 0x1c, 0x81, 0x83, 0x54, 0xb9, 0xa2, 0x5b, 0x26, 0x0d, 0xef, 0x8b, 0xe1, 0xe4, 0x9c, 0xf5, + 0x47, 0x66, 0xb2, 0x45, 0xca, 0x15, 0x7f, 0x52, 0xe0, 0xdf, 0x33, 0xaf, 0xef, 0x44, 0xe7, 0x38, + 0xe2, 0x7c, 0x0f, 0xd6, 0xe2, 0x61, 0x04, 0x60, 0x4e, 0xb0, 0xc4, 0xed, 0x2a, 0x19, 0x68, 0x5e, + 0x06, 0xf9, 0xe4, 0x1c, 0x03, 0xca, 0xa2, 0x58, 0x46, 0x09, 0xfc, 0x4d, 0x81, 0x9d, 0x53, 0x12, + 0xd8, 0xa4, 0x47, 0x86, 0x17, 0xa4, 0x43, 0x18, 0x73, 0x06, 0xa4, 0xeb, 0x05, 0x51, 0x22, 0x8f, + 0x7d, 0x3a, 0x49, 0x9d, 0x6e, 0xc9, 0x82, 0x34, 0x50, 0xa9, 0x17, 0x70, 0xf0, 0x2b, 0x76, 0xf8, + 0x8b, 0x4c, 0x40, 0x3d, 0xea, 0x5e, 0x10, 0x9f, 0x45, 0x38, 0x13, 0x75, 0x2b, 0x76, 0xc1, 0x4c, + 0x96, 0x67, 0x39, 0xc7, 0x33, 0xa5, 0xd2, 0x4a, 0x5a, 0x25, 0xfc, 0x0c, 0x2a, 0x1c, 0x69, 0x58, + 0xdd, 0xe8, 0x36, 0xd4, 0xd2, 0x1b, 0x44, 0x80, 0x33, 0xd6, 0xb0, 0xda, 0x7d, 0xbe, 0x22, 0xc2, + 0x1d, 0x8d, 0xf0, 0x67, 0x05, 0xf4, 0x62, 0x21, 0x96, 0xaa, 0xb0, 0x0e, 0xfc, 0x27, 0x6f, 0x9c, + 0xe0, 0x94, 0x0e, 0x70, 0x5d, 0x04, 0x48, 0xa6, 0xec, 0xf9, 0x2b, 0xf0, 0x57, 0x05, 0x76, 0xac, + 0x25, 0xd3, 0x54, 0x9c, 0x94, 0xd2, 0x75, 0x93, 0xa2, 0x2e, 0x4e, 0x4a, 0x39, 0x93, 0x94, 0x50, + 0x47, 0xeb, 0x0f, 0xe9, 0xa8, 0xfe, 0xb2, 0x8e, 0x1f, 0xe0, 0x7f, 0xf1, 0xe0, 0xb4, 0x25, 0x97, + 0x0e, 0x1b, 0x5c, 0x53, 0xca, 0x2b, 0x5f, 0xb4, 0x45, 0x2f, 0x3a, 0xfe, 0xa2, 0xc0, 0x8d, 0xf9, + 0xbb, 0xff, 0x05, 0xf2, 0x1c, 0x7c, 0x2f, 0x03, 0xef, 0x9c, 0xd0, 0x43, 0xa8, 0x4a, 0xb7, 0x2c, + 0xda, 0x14, 0x31, 0xd2, 0x17, 0xbd, 0xb1, 0x55, 0x60, 0x65, 0x1e, 0x6a, 0x43, 0x2d, 0x7d, 0x35, + 0xa1, 0x1d, 0xe1, 0x98, 0xbb, 0x36, 0x0d, 0xbd, 0x78, 0x82, 0x79, 0x21, 0x00, 0xa9, 0xb7, 0x89, + 0x01, 0xa4, 0x5b, 0xad, 0x18, 0x40, 0xb6, 0x09, 0x7a, 0x0c, 0xeb, 0x72, 0x57, 0x81, 0x66, 0x38, + 0xe5, 0xd6, 0xc5, 0xd8, 0x2e, 0x32, 0x33, 0x0f, 0x9d, 0xc1, 0x66, 0xd1, 0x45, 0x80, 0x6e, 0x0a, + 0xff, 0x39, 0xb7, 0xa5, 0xb1, 0xbb, 0x68, 0x5a, 0x84, 0xb5, 0x16, 0x84, 0xb5, 0x16, 0x87, 0x9d, + 0x7b, 0xa4, 0x1c, 0x7e, 0xdc, 0x0a, 0x6b, 0x0a, 0xed, 0xc9, 0x0c, 0x0b, 0x2b, 0xde, 0xc0, 0x57, + 0xb9, 0x08, 0x3d, 0xe5, 0x2e, 0x23, 0xd6, 0x33, 0xd3, 0x53, 0xc5, 0x7a, 0x66, 0x1b, 0x92, 0xa7, + 0x1b, 0x2f, 0xab, 0x26, 0xef, 0xcd, 0x1f, 0x85, 0x9f, 0x57, 0xab, 0xbc, 0xf1, 0xbe, 0xff, 0x33, + 0x00, 0x00, 0xff, 0xff, 0xaa, 0x27, 0xa9, 0x62, 0xb4, 0x0b, 0x00, 0x00, } diff --git a/pkg/proto/user/user.proto b/pkg/proto/user/user.proto index bf4738d21..3b66f1f41 100644 --- a/pkg/proto/user/user.proto +++ b/pkg/proto/user/user.proto @@ -75,18 +75,18 @@ message SetReceiveMessageOptReq{ string OpUserID = 5; } message OptResult{ - string conversationId = 1; + string conversationID = 1; int32 result = 2; //-1: failed; 0:default; 1: not receive ; 2: not jpush } message SetReceiveMessageOptResp{ CommonResp commonResp = 1; - repeated OptResult optResultList = 2; + repeated OptResult conversationOptResultList = 2; } message GetReceiveMessageOptReq{ string FromUserID = 1; - repeated string conversationIdList = 2; + repeated string conversationIDList = 2; string operationID = 3; string OpUserID = 4; } From 20f51092adc61af9b1bf90234963b11e1920e309 Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Wed, 29 Dec 2021 15:53:56 +0800 Subject: [PATCH 331/814] nil return modify --- pkg/base_info/conversation_api_struct.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkg/base_info/conversation_api_struct.go b/pkg/base_info/conversation_api_struct.go index 06133e4bd..5642e8061 100644 --- a/pkg/base_info/conversation_api_struct.go +++ b/pkg/base_info/conversation_api_struct.go @@ -13,7 +13,7 @@ type GetAllConversationMessageOptResp struct { ConversationOptResultList []*OptResult `json:"data"` } type GetReceiveMessageOptReq struct { - ConversationIdList []string `json:"conversationIdList" binding:"required"` + ConversationIDList []string `json:"conversationIDList" binding:"required"` OperationID string `json:"operationID" binding:"required"` FromUserID string `json:"fromUserID" binding:"required"` } @@ -24,7 +24,7 @@ type GetReceiveMessageOptResp struct { type SetReceiveMessageOptReq struct { OperationID string `json:"operationID" binding:"required"` Opt *int32 `json:"opt" binding:"required"` - ConversationIdList []string `json:"conversationIdList" binding:"required"` + ConversationIDList []string `json:"conversationIDList" binding:"required"` } type SetReceiveMessageOptResp struct { CommResp From 65456d331bfaadce7ef88fc3b7a288a1fc8ec183 Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Wed, 29 Dec 2021 16:04:08 +0800 Subject: [PATCH 332/814] nil return modify --- internal/rpc/user/user.go | 10 +++++----- pkg/base_info/conversation_api_struct.go | 1 + 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/internal/rpc/user/user.go b/internal/rpc/user/user.go index fbe14cb92..69d3c2bc3 100644 --- a/internal/rpc/user/user.go +++ b/internal/rpc/user/user.go @@ -104,7 +104,7 @@ func (s *userServer) SetReceiveMessageOpt(ctx context.Context, req *pbUser.SetRe resp := pbUser.SetReceiveMessageOptResp{CommonResp: &pbUser.CommonResp{}} for _, v := range req.ConversationIDList { - resp.OptResultList = append(resp.OptResultList, &pbUser.OptResult{ConversationId: v, Result: 0}) + resp.ConversationOptResultList = append(resp.ConversationOptResultList, &pbUser.OptResult{ConversationID: v, Result: 0}) } log.NewInfo(req.OperationID, "SetReceiveMessageOpt rpc return ", resp.String()) return &resp, nil @@ -112,14 +112,14 @@ func (s *userServer) SetReceiveMessageOpt(ctx context.Context, req *pbUser.SetRe func (s *userServer) GetReceiveMessageOpt(ctx context.Context, req *pbUser.GetReceiveMessageOptReq) (*pbUser.GetReceiveMessageOptResp, error) { log.NewInfo(req.OperationID, "GetReceiveMessageOpt args ", req.String()) - m, err := db.DB.GetMultiConversationMsgOpt(req.FromUserID, req.ConversationIdList) + m, err := db.DB.GetMultiConversationMsgOpt(req.FromUserID, req.ConversationIDList) if err != nil { - log.NewError(req.OperationID, "GetMultiConversationMsgOpt failed ", err.Error(), req.FromUserID, req.ConversationIdList) + log.NewError(req.OperationID, "GetMultiConversationMsgOpt failed ", err.Error(), req.FromUserID, req.ConversationIDList) return &pbUser.GetReceiveMessageOptResp{CommonResp: &pbUser.CommonResp{ErrCode: constant.ErrDB.ErrCode, ErrMsg: constant.ErrDB.ErrMsg}}, nil } resp := pbUser.GetReceiveMessageOptResp{CommonResp: &pbUser.CommonResp{}} for k, v := range m { - resp.ConversationOptResultList = append(resp.ConversationOptResultList, &pbUser.OptResult{ConversationId: k, Result: int32(v)}) + resp.ConversationOptResultList = append(resp.ConversationOptResultList, &pbUser.OptResult{ConversationID: k, Result: int32(v)}) } log.NewInfo(req.OperationID, "GetReceiveMessageOpt rpc return ", resp.String()) return &resp, nil @@ -134,7 +134,7 @@ func (s *userServer) GetAllConversationMsgOpt(ctx context.Context, req *pbUser.G } resp := pbUser.GetAllConversationMsgOptResp{CommonResp: &pbUser.CommonResp{}} for k, v := range m { - resp.ConversationOptResultList = append(resp.ConversationOptResultList, &pbUser.OptResult{ConversationId: k, Result: int32(v)}) + resp.ConversationOptResultList = append(resp.ConversationOptResultList, &pbUser.OptResult{ConversationID: k, Result: int32(v)}) } log.NewInfo(req.OperationID, "GetAllConversationMsgOpt rpc return ", resp.String()) return &resp, nil diff --git a/pkg/base_info/conversation_api_struct.go b/pkg/base_info/conversation_api_struct.go index 5642e8061..bd54bafbf 100644 --- a/pkg/base_info/conversation_api_struct.go +++ b/pkg/base_info/conversation_api_struct.go @@ -22,6 +22,7 @@ type GetReceiveMessageOptResp struct { ConversationOptResultList []*OptResult `json:"data"` } type SetReceiveMessageOptReq struct { + FromUserID string `json:"fromUserID" binding:"required"` OperationID string `json:"operationID" binding:"required"` Opt *int32 `json:"opt" binding:"required"` ConversationIDList []string `json:"conversationIDList" binding:"required"` From 4623b5d5db0c98179a88f3ae58462a3c6d6fd838 Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Wed, 29 Dec 2021 16:17:55 +0800 Subject: [PATCH 333/814] Refactor code --- internal/api/friend/friend.go | 7 +- internal/rpc/friend/firend.go | 29 ++-- pkg/base_info/friend_api_struct.go | 6 +- pkg/proto/friend/friend.pb.go | 247 +++++++++++++++++------------ 4 files changed, 175 insertions(+), 114 deletions(-) diff --git a/internal/api/friend/friend.go b/internal/api/friend/friend.go index 1a27effb9..973317838 100644 --- a/internal/api/friend/friend.go +++ b/internal/api/friend/friend.go @@ -72,8 +72,13 @@ func ImportFriend(c *gin.Context) { c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": "cImportFriend failed " + err.Error()}) return } + resp := api.ImportFriendResp{CommResp: api.CommResp{ErrCode: RpcResp.CommonResp.ErrCode, ErrMsg: RpcResp.CommonResp.ErrMsg}} + if resp.ErrCode == 0 { + for _, v := range RpcResp.UserIDResultList { + resp.UserIDResultList = append(resp.UserIDResultList, api.UserIDResult{v.UserID, v.Result}) + } + } - resp := api.ImportFriendResp{CommResp: api.CommResp{ErrCode: RpcResp.CommonResp.ErrCode, ErrMsg: RpcResp.CommonResp.ErrMsg}, Data: RpcResp.FailedFriendUserIDList} log.NewInfo(req.OperationID, "ImportFriend api return ", resp) c.JSON(http.StatusOK, resp) } diff --git a/internal/rpc/friend/firend.go b/internal/rpc/friend/firend.go index 4fe757f11..b4f2a06f7 100644 --- a/internal/rpc/friend/firend.go +++ b/internal/rpc/friend/firend.go @@ -166,49 +166,52 @@ func (s *friendServer) ImportFriend(ctx context.Context, req *pbFriend.ImportFri log.NewError(req.OperationID, "not authorized", req.OpUserID, config.Config.Manager.AppManagerUid) c.ErrCode = constant.ErrAccess.ErrCode c.ErrMsg = constant.ErrAccess.ErrMsg - return &pbFriend.ImportFriendResp{CommonResp: &c, FailedFriendUserIDList: req.FriendUserIDList}, nil + for _, v := range req.FriendUserIDList { + resp.UserIDResultList = append(resp.UserIDResultList, &pbFriend.UserIDResult{UserID: v, Result: -1}) + } + resp.CommonResp = &c + return &resp, nil } if _, err := imdb.GetUserByUserID(req.FromUserID); err != nil { log.NewError(req.OperationID, "GetUserByUserID failed ", err.Error(), req.FromUserID) c.ErrCode = constant.ErrDB.ErrCode c.ErrMsg = "this user not exists,cant not add friend" - return &pbFriend.ImportFriendResp{CommonResp: &c, FailedFriendUserIDList: req.FriendUserIDList}, nil + for _, v := range req.FriendUserIDList { + resp.UserIDResultList = append(resp.UserIDResultList, &pbFriend.UserIDResult{UserID: v, Result: -1}) + } + resp.CommonResp = &c + return &resp, nil } for _, v := range req.FriendUserIDList { if _, fErr := imdb.GetUserByUserID(v); fErr != nil { - c.ErrMsg = "some uid establish failed" - c.ErrCode = 408 - resp.FailedFriendUserIDList = append(resp.FailedFriendUserIDList, v) + resp.UserIDResultList = append(resp.UserIDResultList, &pbFriend.UserIDResult{UserID: v, Result: -1}) } else { if _, err := imdb.GetFriendRelationshipFromFriend(req.FromUserID, v); err != nil { //Establish two single friendship toInsertFollow := imdb.Friend{OwnerUserID: req.FromUserID, FriendUserID: v} err1 := imdb.InsertToFriend(&toInsertFollow) if err1 != nil { - resp.FailedFriendUserIDList = append(resp.FailedFriendUserIDList, v) log.NewError(req.OperationID, "InsertToFriend failed", req.FromUserID, v, err1.Error()) - c.ErrMsg = "some uid establish failed" - c.ErrCode = 408 + resp.UserIDResultList = append(resp.UserIDResultList, &pbFriend.UserIDResult{UserID: v, Result: -1}) continue } toInsertFollow = imdb.Friend{OwnerUserID: v, FriendUserID: req.FromUserID} err2 := imdb.InsertToFriend(&toInsertFollow) if err2 != nil { - resp.FailedFriendUserIDList = append(resp.FailedFriendUserIDList, v) log.NewError(req.OperationID, "InsertToFriend failed", v, req.FromUserID, err2.Error()) - c.ErrMsg = "some uid establish failed" - c.ErrCode = 408 + resp.UserIDResultList = append(resp.UserIDResultList, &pbFriend.UserIDResult{UserID: v, Result: -1}) continue } for _, v := range req.FriendUserIDList { chat.FriendAddedNotification(req.OperationID, req.OpUserID, req.FromUserID, v) + resp.UserIDResultList = append(resp.UserIDResultList, &pbFriend.UserIDResult{UserID: v, Result: 0}) } } } } - resp.CommonResp = &c - log.NewInfo(req.OperationID, "ImportFriend rpc ok ", resp) + resp.CommonResp.ErrCode = 0 + log.NewInfo(req.OperationID, "ImportFriend rpc ok ", resp.String()) return &resp, nil } diff --git a/pkg/base_info/friend_api_struct.go b/pkg/base_info/friend_api_struct.go index 5d7f33d27..18c429471 100644 --- a/pkg/base_info/friend_api_struct.go +++ b/pkg/base_info/friend_api_struct.go @@ -20,9 +20,13 @@ type ImportFriendReq struct { OperationID string `json:"operationID" binding:"required"` FromUserID string `json:"fromUserID" binding:"required"` } +type UserIDResult struct { + UserID string `json:"userID" binding:"required"` + Result int32 `json:"result" binding:"required"` +} type ImportFriendResp struct { CommResp - Data []string `json:"data"` + UserIDResultList []UserIDResult `json:"data"` } type AddFriendReq struct { diff --git a/pkg/proto/friend/friend.pb.go b/pkg/proto/friend/friend.pb.go index 941dd457b..1c46e62ec 100644 --- a/pkg/proto/friend/friend.pb.go +++ b/pkg/proto/friend/friend.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_friend_69e6f38cd215d5ef, []int{0} + return fileDescriptor_friend_74665a4d507faa8c, []int{0} } func (m *CommonResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_CommonResp.Unmarshal(m, b) @@ -84,7 +84,7 @@ func (m *CommID) Reset() { *m = CommID{} } func (m *CommID) String() string { return proto.CompactTextString(m) } func (*CommID) ProtoMessage() {} func (*CommID) Descriptor() ([]byte, []int) { - return fileDescriptor_friend_69e6f38cd215d5ef, []int{1} + return fileDescriptor_friend_74665a4d507faa8c, []int{1} } func (m *CommID) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_CommID.Unmarshal(m, b) @@ -143,7 +143,7 @@ func (m *GetFriendsInfoReq) Reset() { *m = GetFriendsInfoReq{} } func (m *GetFriendsInfoReq) String() string { return proto.CompactTextString(m) } func (*GetFriendsInfoReq) ProtoMessage() {} func (*GetFriendsInfoReq) Descriptor() ([]byte, []int) { - return fileDescriptor_friend_69e6f38cd215d5ef, []int{2} + return fileDescriptor_friend_74665a4d507faa8c, []int{2} } func (m *GetFriendsInfoReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetFriendsInfoReq.Unmarshal(m, b) @@ -183,7 +183,7 @@ func (m *GetFriendInfoResp) Reset() { *m = GetFriendInfoResp{} } func (m *GetFriendInfoResp) String() string { return proto.CompactTextString(m) } func (*GetFriendInfoResp) ProtoMessage() {} func (*GetFriendInfoResp) Descriptor() ([]byte, []int) { - return fileDescriptor_friend_69e6f38cd215d5ef, []int{3} + return fileDescriptor_friend_74665a4d507faa8c, []int{3} } func (m *GetFriendInfoResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetFriendInfoResp.Unmarshal(m, b) @@ -236,7 +236,7 @@ func (m *AddFriendReq) Reset() { *m = AddFriendReq{} } func (m *AddFriendReq) String() string { return proto.CompactTextString(m) } func (*AddFriendReq) ProtoMessage() {} func (*AddFriendReq) Descriptor() ([]byte, []int) { - return fileDescriptor_friend_69e6f38cd215d5ef, []int{4} + return fileDescriptor_friend_74665a4d507faa8c, []int{4} } func (m *AddFriendReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_AddFriendReq.Unmarshal(m, b) @@ -281,7 +281,7 @@ func (m *AddFriendResp) Reset() { *m = AddFriendResp{} } func (m *AddFriendResp) String() string { return proto.CompactTextString(m) } func (*AddFriendResp) ProtoMessage() {} func (*AddFriendResp) Descriptor() ([]byte, []int) { - return fileDescriptor_friend_69e6f38cd215d5ef, []int{5} + return fileDescriptor_friend_74665a4d507faa8c, []int{5} } func (m *AddFriendResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_AddFriendResp.Unmarshal(m, b) @@ -322,7 +322,7 @@ func (m *ImportFriendReq) Reset() { *m = ImportFriendReq{} } func (m *ImportFriendReq) String() string { return proto.CompactTextString(m) } func (*ImportFriendReq) ProtoMessage() {} func (*ImportFriendReq) Descriptor() ([]byte, []int) { - return fileDescriptor_friend_69e6f38cd215d5ef, []int{6} + return fileDescriptor_friend_74665a4d507faa8c, []int{6} } func (m *ImportFriendReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ImportFriendReq.Unmarshal(m, b) @@ -370,19 +370,65 @@ func (m *ImportFriendReq) GetOpUserID() string { return "" } +type UserIDResult struct { + UserID string `protobuf:"bytes,1,opt,name=UserID" json:"UserID,omitempty"` + Result int32 `protobuf:"varint,2,opt,name=Result" json:"Result,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *UserIDResult) Reset() { *m = UserIDResult{} } +func (m *UserIDResult) String() string { return proto.CompactTextString(m) } +func (*UserIDResult) ProtoMessage() {} +func (*UserIDResult) Descriptor() ([]byte, []int) { + return fileDescriptor_friend_74665a4d507faa8c, []int{7} +} +func (m *UserIDResult) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_UserIDResult.Unmarshal(m, b) +} +func (m *UserIDResult) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_UserIDResult.Marshal(b, m, deterministic) +} +func (dst *UserIDResult) XXX_Merge(src proto.Message) { + xxx_messageInfo_UserIDResult.Merge(dst, src) +} +func (m *UserIDResult) XXX_Size() int { + return xxx_messageInfo_UserIDResult.Size(m) +} +func (m *UserIDResult) XXX_DiscardUnknown() { + xxx_messageInfo_UserIDResult.DiscardUnknown(m) +} + +var xxx_messageInfo_UserIDResult proto.InternalMessageInfo + +func (m *UserIDResult) GetUserID() string { + if m != nil { + return m.UserID + } + return "" +} + +func (m *UserIDResult) GetResult() int32 { + if m != nil { + return m.Result + } + return 0 +} + type ImportFriendResp struct { - CommonResp *CommonResp `protobuf:"bytes,1,opt,name=CommonResp" json:"CommonResp,omitempty"` - FailedFriendUserIDList []string `protobuf:"bytes,2,rep,name=FailedFriendUserIDList" json:"FailedFriendUserIDList,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + CommonResp *CommonResp `protobuf:"bytes,1,opt,name=CommonResp" json:"CommonResp,omitempty"` + UserIDResultList []*UserIDResult `protobuf:"bytes,2,rep,name=UserIDResultList" json:"UserIDResultList,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } func (m *ImportFriendResp) Reset() { *m = ImportFriendResp{} } func (m *ImportFriendResp) String() string { return proto.CompactTextString(m) } func (*ImportFriendResp) ProtoMessage() {} func (*ImportFriendResp) Descriptor() ([]byte, []int) { - return fileDescriptor_friend_69e6f38cd215d5ef, []int{7} + return fileDescriptor_friend_74665a4d507faa8c, []int{8} } func (m *ImportFriendResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ImportFriendResp.Unmarshal(m, b) @@ -409,9 +455,9 @@ func (m *ImportFriendResp) GetCommonResp() *CommonResp { return nil } -func (m *ImportFriendResp) GetFailedFriendUserIDList() []string { +func (m *ImportFriendResp) GetUserIDResultList() []*UserIDResult { if m != nil { - return m.FailedFriendUserIDList + return m.UserIDResultList } return nil } @@ -427,7 +473,7 @@ func (m *GetFriendApplyListReq) Reset() { *m = GetFriendApplyListReq{} } func (m *GetFriendApplyListReq) String() string { return proto.CompactTextString(m) } func (*GetFriendApplyListReq) ProtoMessage() {} func (*GetFriendApplyListReq) Descriptor() ([]byte, []int) { - return fileDescriptor_friend_69e6f38cd215d5ef, []int{8} + return fileDescriptor_friend_74665a4d507faa8c, []int{9} } func (m *GetFriendApplyListReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetFriendApplyListReq.Unmarshal(m, b) @@ -467,7 +513,7 @@ func (m *GetFriendApplyListResp) Reset() { *m = GetFriendApplyListResp{} func (m *GetFriendApplyListResp) String() string { return proto.CompactTextString(m) } func (*GetFriendApplyListResp) ProtoMessage() {} func (*GetFriendApplyListResp) Descriptor() ([]byte, []int) { - return fileDescriptor_friend_69e6f38cd215d5ef, []int{9} + return fileDescriptor_friend_74665a4d507faa8c, []int{10} } func (m *GetFriendApplyListResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetFriendApplyListResp.Unmarshal(m, b) @@ -519,7 +565,7 @@ func (m *GetFriendListReq) Reset() { *m = GetFriendListReq{} } func (m *GetFriendListReq) String() string { return proto.CompactTextString(m) } func (*GetFriendListReq) ProtoMessage() {} func (*GetFriendListReq) Descriptor() ([]byte, []int) { - return fileDescriptor_friend_69e6f38cd215d5ef, []int{10} + return fileDescriptor_friend_74665a4d507faa8c, []int{11} } func (m *GetFriendListReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetFriendListReq.Unmarshal(m, b) @@ -559,7 +605,7 @@ func (m *GetFriendListResp) Reset() { *m = GetFriendListResp{} } func (m *GetFriendListResp) String() string { return proto.CompactTextString(m) } func (*GetFriendListResp) ProtoMessage() {} func (*GetFriendListResp) Descriptor() ([]byte, []int) { - return fileDescriptor_friend_69e6f38cd215d5ef, []int{11} + return fileDescriptor_friend_74665a4d507faa8c, []int{12} } func (m *GetFriendListResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetFriendListResp.Unmarshal(m, b) @@ -611,7 +657,7 @@ func (m *AddBlacklistReq) Reset() { *m = AddBlacklistReq{} } func (m *AddBlacklistReq) String() string { return proto.CompactTextString(m) } func (*AddBlacklistReq) ProtoMessage() {} func (*AddBlacklistReq) Descriptor() ([]byte, []int) { - return fileDescriptor_friend_69e6f38cd215d5ef, []int{12} + return fileDescriptor_friend_74665a4d507faa8c, []int{13} } func (m *AddBlacklistReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_AddBlacklistReq.Unmarshal(m, b) @@ -649,7 +695,7 @@ func (m *AddBlacklistResp) Reset() { *m = AddBlacklistResp{} } func (m *AddBlacklistResp) String() string { return proto.CompactTextString(m) } func (*AddBlacklistResp) ProtoMessage() {} func (*AddBlacklistResp) Descriptor() ([]byte, []int) { - return fileDescriptor_friend_69e6f38cd215d5ef, []int{13} + return fileDescriptor_friend_74665a4d507faa8c, []int{14} } func (m *AddBlacklistResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_AddBlacklistResp.Unmarshal(m, b) @@ -687,7 +733,7 @@ func (m *RemoveBlacklistReq) Reset() { *m = RemoveBlacklistReq{} } func (m *RemoveBlacklistReq) String() string { return proto.CompactTextString(m) } func (*RemoveBlacklistReq) ProtoMessage() {} func (*RemoveBlacklistReq) Descriptor() ([]byte, []int) { - return fileDescriptor_friend_69e6f38cd215d5ef, []int{14} + return fileDescriptor_friend_74665a4d507faa8c, []int{15} } func (m *RemoveBlacklistReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_RemoveBlacklistReq.Unmarshal(m, b) @@ -725,7 +771,7 @@ func (m *RemoveBlacklistResp) Reset() { *m = RemoveBlacklistResp{} } func (m *RemoveBlacklistResp) String() string { return proto.CompactTextString(m) } func (*RemoveBlacklistResp) ProtoMessage() {} func (*RemoveBlacklistResp) Descriptor() ([]byte, []int) { - return fileDescriptor_friend_69e6f38cd215d5ef, []int{15} + return fileDescriptor_friend_74665a4d507faa8c, []int{16} } func (m *RemoveBlacklistResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_RemoveBlacklistResp.Unmarshal(m, b) @@ -763,7 +809,7 @@ func (m *GetBlacklistReq) Reset() { *m = GetBlacklistReq{} } func (m *GetBlacklistReq) String() string { return proto.CompactTextString(m) } func (*GetBlacklistReq) ProtoMessage() {} func (*GetBlacklistReq) Descriptor() ([]byte, []int) { - return fileDescriptor_friend_69e6f38cd215d5ef, []int{16} + return fileDescriptor_friend_74665a4d507faa8c, []int{17} } func (m *GetBlacklistReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetBlacklistReq.Unmarshal(m, b) @@ -803,7 +849,7 @@ func (m *GetBlacklistResp) Reset() { *m = GetBlacklistResp{} } func (m *GetBlacklistResp) String() string { return proto.CompactTextString(m) } func (*GetBlacklistResp) ProtoMessage() {} func (*GetBlacklistResp) Descriptor() ([]byte, []int) { - return fileDescriptor_friend_69e6f38cd215d5ef, []int{17} + return fileDescriptor_friend_74665a4d507faa8c, []int{18} } func (m *GetBlacklistResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetBlacklistResp.Unmarshal(m, b) @@ -855,7 +901,7 @@ func (m *IsFriendReq) Reset() { *m = IsFriendReq{} } func (m *IsFriendReq) String() string { return proto.CompactTextString(m) } func (*IsFriendReq) ProtoMessage() {} func (*IsFriendReq) Descriptor() ([]byte, []int) { - return fileDescriptor_friend_69e6f38cd215d5ef, []int{18} + return fileDescriptor_friend_74665a4d507faa8c, []int{19} } func (m *IsFriendReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_IsFriendReq.Unmarshal(m, b) @@ -895,7 +941,7 @@ func (m *IsFriendResp) Reset() { *m = IsFriendResp{} } func (m *IsFriendResp) String() string { return proto.CompactTextString(m) } func (*IsFriendResp) ProtoMessage() {} func (*IsFriendResp) Descriptor() ([]byte, []int) { - return fileDescriptor_friend_69e6f38cd215d5ef, []int{19} + return fileDescriptor_friend_74665a4d507faa8c, []int{20} } func (m *IsFriendResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_IsFriendResp.Unmarshal(m, b) @@ -947,7 +993,7 @@ func (m *IsInBlackListReq) Reset() { *m = IsInBlackListReq{} } func (m *IsInBlackListReq) String() string { return proto.CompactTextString(m) } func (*IsInBlackListReq) ProtoMessage() {} func (*IsInBlackListReq) Descriptor() ([]byte, []int) { - return fileDescriptor_friend_69e6f38cd215d5ef, []int{20} + return fileDescriptor_friend_74665a4d507faa8c, []int{21} } func (m *IsInBlackListReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_IsInBlackListReq.Unmarshal(m, b) @@ -987,7 +1033,7 @@ func (m *IsInBlackListResp) Reset() { *m = IsInBlackListResp{} } func (m *IsInBlackListResp) String() string { return proto.CompactTextString(m) } func (*IsInBlackListResp) ProtoMessage() {} func (*IsInBlackListResp) Descriptor() ([]byte, []int) { - return fileDescriptor_friend_69e6f38cd215d5ef, []int{21} + return fileDescriptor_friend_74665a4d507faa8c, []int{22} } func (m *IsInBlackListResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_IsInBlackListResp.Unmarshal(m, b) @@ -1039,7 +1085,7 @@ func (m *DeleteFriendReq) Reset() { *m = DeleteFriendReq{} } func (m *DeleteFriendReq) String() string { return proto.CompactTextString(m) } func (*DeleteFriendReq) ProtoMessage() {} func (*DeleteFriendReq) Descriptor() ([]byte, []int) { - return fileDescriptor_friend_69e6f38cd215d5ef, []int{22} + return fileDescriptor_friend_74665a4d507faa8c, []int{23} } func (m *DeleteFriendReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_DeleteFriendReq.Unmarshal(m, b) @@ -1077,7 +1123,7 @@ func (m *DeleteFriendResp) Reset() { *m = DeleteFriendResp{} } func (m *DeleteFriendResp) String() string { return proto.CompactTextString(m) } func (*DeleteFriendResp) ProtoMessage() {} func (*DeleteFriendResp) Descriptor() ([]byte, []int) { - return fileDescriptor_friend_69e6f38cd215d5ef, []int{23} + return fileDescriptor_friend_74665a4d507faa8c, []int{24} } func (m *DeleteFriendResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_DeleteFriendResp.Unmarshal(m, b) @@ -1118,7 +1164,7 @@ func (m *AddFriendResponseReq) Reset() { *m = AddFriendResponseReq{} } func (m *AddFriendResponseReq) String() string { return proto.CompactTextString(m) } func (*AddFriendResponseReq) ProtoMessage() {} func (*AddFriendResponseReq) Descriptor() ([]byte, []int) { - return fileDescriptor_friend_69e6f38cd215d5ef, []int{24} + return fileDescriptor_friend_74665a4d507faa8c, []int{25} } func (m *AddFriendResponseReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_AddFriendResponseReq.Unmarshal(m, b) @@ -1170,7 +1216,7 @@ func (m *AddFriendResponseResp) Reset() { *m = AddFriendResponseResp{} } func (m *AddFriendResponseResp) String() string { return proto.CompactTextString(m) } func (*AddFriendResponseResp) ProtoMessage() {} func (*AddFriendResponseResp) Descriptor() ([]byte, []int) { - return fileDescriptor_friend_69e6f38cd215d5ef, []int{25} + return fileDescriptor_friend_74665a4d507faa8c, []int{26} } func (m *AddFriendResponseResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_AddFriendResponseResp.Unmarshal(m, b) @@ -1209,7 +1255,7 @@ func (m *SetFriendRemarkReq) Reset() { *m = SetFriendRemarkReq{} } func (m *SetFriendRemarkReq) String() string { return proto.CompactTextString(m) } func (*SetFriendRemarkReq) ProtoMessage() {} func (*SetFriendRemarkReq) Descriptor() ([]byte, []int) { - return fileDescriptor_friend_69e6f38cd215d5ef, []int{26} + return fileDescriptor_friend_74665a4d507faa8c, []int{27} } func (m *SetFriendRemarkReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SetFriendRemarkReq.Unmarshal(m, b) @@ -1254,7 +1300,7 @@ func (m *SetFriendRemarkResp) Reset() { *m = SetFriendRemarkResp{} } func (m *SetFriendRemarkResp) String() string { return proto.CompactTextString(m) } func (*SetFriendRemarkResp) ProtoMessage() {} func (*SetFriendRemarkResp) Descriptor() ([]byte, []int) { - return fileDescriptor_friend_69e6f38cd215d5ef, []int{27} + return fileDescriptor_friend_74665a4d507faa8c, []int{28} } func (m *SetFriendRemarkResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SetFriendRemarkResp.Unmarshal(m, b) @@ -1292,7 +1338,7 @@ func (m *GetSelfApplyListReq) Reset() { *m = GetSelfApplyListReq{} } func (m *GetSelfApplyListReq) String() string { return proto.CompactTextString(m) } func (*GetSelfApplyListReq) ProtoMessage() {} func (*GetSelfApplyListReq) Descriptor() ([]byte, []int) { - return fileDescriptor_friend_69e6f38cd215d5ef, []int{28} + return fileDescriptor_friend_74665a4d507faa8c, []int{29} } func (m *GetSelfApplyListReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetSelfApplyListReq.Unmarshal(m, b) @@ -1332,7 +1378,7 @@ func (m *GetSelfApplyListResp) Reset() { *m = GetSelfApplyListResp{} } func (m *GetSelfApplyListResp) String() string { return proto.CompactTextString(m) } func (*GetSelfApplyListResp) ProtoMessage() {} func (*GetSelfApplyListResp) Descriptor() ([]byte, []int) { - return fileDescriptor_friend_69e6f38cd215d5ef, []int{29} + return fileDescriptor_friend_74665a4d507faa8c, []int{30} } func (m *GetSelfApplyListResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetSelfApplyListResp.Unmarshal(m, b) @@ -1381,6 +1427,7 @@ func init() { proto.RegisterType((*AddFriendReq)(nil), "friend.AddFriendReq") proto.RegisterType((*AddFriendResp)(nil), "friend.AddFriendResp") proto.RegisterType((*ImportFriendReq)(nil), "friend.ImportFriendReq") + proto.RegisterType((*UserIDResult)(nil), "friend.UserIDResult") proto.RegisterType((*ImportFriendResp)(nil), "friend.ImportFriendResp") proto.RegisterType((*GetFriendApplyListReq)(nil), "friend.GetFriendApplyListReq") proto.RegisterType((*GetFriendApplyListResp)(nil), "friend.GetFriendApplyListResp") @@ -1876,66 +1923,68 @@ var _Friend_serviceDesc = grpc.ServiceDesc{ Metadata: "friend/friend.proto", } -func init() { proto.RegisterFile("friend/friend.proto", fileDescriptor_friend_69e6f38cd215d5ef) } - -var fileDescriptor_friend_69e6f38cd215d5ef = []byte{ - // 916 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x57, 0xcd, 0x4f, 0xeb, 0x46, - 0x10, 0x97, 0x09, 0x84, 0x64, 0x12, 0x48, 0xb2, 0x09, 0x90, 0x9a, 0x0f, 0xa5, 0x3e, 0x54, 0x51, - 0x0f, 0x89, 0x94, 0x8a, 0xaa, 0x94, 0xb6, 0x28, 0x10, 0x42, 0xdd, 0x96, 0x82, 0x0c, 0xbd, 0x54, - 0x95, 0x90, 0xc1, 0x9b, 0xd4, 0x8a, 0x63, 0x2f, 0x5e, 0x53, 0xd4, 0x4b, 0x0f, 0x3d, 0xf4, 0x5a, - 0xa9, 0xea, 0xed, 0x1d, 0xde, 0xbf, 0xfa, 0x64, 0xaf, 0x1d, 0xaf, 0x3f, 0x82, 0x9e, 0xcd, 0x93, - 0xde, 0x09, 0x66, 0x66, 0x7f, 0xe3, 0xf9, 0xda, 0xf9, 0x6d, 0xa0, 0x39, 0xb1, 0x75, 0x6c, 0x6a, - 0x7d, 0xf6, 0xa7, 0x47, 0x6c, 0xcb, 0xb1, 0x50, 0x91, 0x49, 0xe2, 0xa7, 0x57, 0x04, 0x9b, 0x77, - 0xf2, 0x65, 0x9f, 0xcc, 0xa6, 0x7d, 0xcf, 0xd4, 0xa7, 0xda, 0xec, 0xee, 0x99, 0xf6, 0x9f, 0x29, - 0x3b, 0x2a, 0x7d, 0x07, 0x70, 0x66, 0xcd, 0xe7, 0x96, 0xa9, 0x60, 0x4a, 0x50, 0x1b, 0xd6, 0xb1, - 0x6d, 0x9f, 0x59, 0x1a, 0x6e, 0x0b, 0x1d, 0xa1, 0xbb, 0xa6, 0x04, 0x22, 0xda, 0x86, 0x22, 0xb6, - 0xed, 0x4b, 0x3a, 0x6d, 0xaf, 0x74, 0x84, 0x6e, 0x59, 0xf1, 0x25, 0xe9, 0x6f, 0x01, 0x8a, 0xae, - 0x03, 0x79, 0x84, 0x44, 0x28, 0x5d, 0x91, 0x5f, 0x28, 0xb6, 0xe5, 0x91, 0x87, 0x2e, 0x2b, 0x0b, - 0x19, 0x75, 0xa0, 0x72, 0x45, 0xb0, 0xad, 0x3a, 0xba, 0x65, 0xca, 0x23, 0xdf, 0x07, 0xaf, 0x72, - 0xd1, 0xb7, 0x96, 0x8f, 0x5e, 0x65, 0xe8, 0x40, 0x46, 0x07, 0x00, 0x63, 0xdb, 0x9a, 0xfb, 0xd6, - 0x35, 0xcf, 0xca, 0x69, 0xa4, 0x63, 0x68, 0x5c, 0x60, 0x67, 0xec, 0x25, 0x4d, 0x65, 0x73, 0x62, - 0x29, 0xf8, 0x11, 0x7d, 0x16, 0x04, 0xe6, 0x05, 0x53, 0x19, 0x6c, 0xf6, 0xfc, 0x1a, 0x31, 0xad, - 0xe2, 0x5b, 0xa5, 0x7f, 0x04, 0x0e, 0xcd, 0xc0, 0xac, 0x12, 0xe7, 0xd1, 0x4a, 0x9c, 0x87, 0x95, - 0x38, 0x8f, 0x54, 0x82, 0x49, 0xe8, 0x04, 0x36, 0x43, 0x1f, 0x3f, 0xe9, 0xd4, 0x69, 0x17, 0x3a, - 0x85, 0x6e, 0x65, 0xb0, 0xd3, 0xb3, 0xdc, 0x2e, 0xe8, 0xf3, 0x3b, 0xaa, 0xcd, 0x7a, 0xdc, 0x67, - 0x62, 0xc7, 0xa5, 0x9f, 0xa1, 0x3a, 0xd4, 0x34, 0xa6, 0xcc, 0x90, 0x80, 0x1b, 0x90, 0x82, 0x1f, - 0xb9, 0x80, 0x98, 0x24, 0x9d, 0xc1, 0x06, 0xe7, 0x8f, 0x12, 0x34, 0xe0, 0x7b, 0xed, 0x3b, 0x45, - 0xbc, 0x53, 0x66, 0x51, 0xb8, 0x53, 0xd2, 0x1b, 0x01, 0x6a, 0xf2, 0x9c, 0x58, 0xb6, 0x13, 0x06, - 0xf6, 0x39, 0xd4, 0x99, 0xc0, 0xca, 0xef, 0xe5, 0x2a, 0x74, 0x0a, 0xdd, 0xb2, 0x92, 0xd0, 0xbf, - 0x47, 0xe3, 0xa3, 0xcd, 0x2d, 0xc4, 0x9b, 0x1b, 0x19, 0xab, 0xd5, 0xe8, 0x58, 0x49, 0x7f, 0x41, - 0x3d, 0x1a, 0x5c, 0xbe, 0x2c, 0xd1, 0x97, 0xb0, 0x3d, 0x56, 0x75, 0x03, 0x6b, 0x89, 0xbc, 0x56, - 0xbc, 0xbc, 0x96, 0x58, 0xa5, 0x13, 0xd8, 0x5a, 0x8c, 0xce, 0x90, 0x10, 0xe3, 0x4f, 0x57, 0x9b, - 0x65, 0xf8, 0xfe, 0x17, 0x60, 0x3b, 0xcd, 0x43, 0xae, 0x09, 0xfc, 0x1e, 0x1a, 0x8b, 0x26, 0x3d, - 0x61, 0xea, 0x70, 0x43, 0x28, 0xa6, 0x0c, 0xa1, 0x7f, 0x4a, 0x49, 0x82, 0xa4, 0xaf, 0xa1, 0xbe, - 0x88, 0x2a, 0x6b, 0x4a, 0x91, 0xfb, 0xf4, 0x8a, 0x6c, 0x5e, 0x7d, 0x9f, 0x8e, 0xa0, 0x36, 0xd4, - 0xb4, 0x53, 0x43, 0x7d, 0x98, 0x19, 0x19, 0x73, 0x18, 0x43, 0x3d, 0x0a, 0xcd, 0x79, 0x7b, 0xbe, - 0x01, 0xa4, 0xe0, 0xb9, 0xf5, 0x07, 0xce, 0x15, 0x85, 0x0c, 0xcd, 0x04, 0x3a, 0x67, 0x20, 0x47, - 0x50, 0xbb, 0xc0, 0x4e, 0xae, 0x28, 0xfe, 0x15, 0xbc, 0x61, 0x88, 0xc6, 0x90, 0xbd, 0x9d, 0x32, - 0x34, 0x3c, 0x17, 0xde, 0xed, 0x89, 0x76, 0x74, 0x37, 0xd2, 0xd1, 0xeb, 0xa7, 0x7b, 0x43, 0x7f, - 0x08, 0x8e, 0x29, 0x49, 0x94, 0x74, 0x08, 0x15, 0x99, 0x66, 0xde, 0x93, 0xd2, 0x6f, 0x50, 0x0d, - 0x61, 0xb9, 0x72, 0x10, 0xa1, 0xe4, 0x22, 0x2d, 0x93, 0x62, 0x6f, 0x51, 0x95, 0x94, 0x85, 0xec, - 0x5e, 0x19, 0x99, 0xca, 0xa6, 0x17, 0x6d, 0xd6, 0x2b, 0xa3, 0x42, 0x23, 0x86, 0xfd, 0xe0, 0xe1, - 0x1d, 0x41, 0x6d, 0x84, 0x0d, 0xec, 0xe0, 0xec, 0x75, 0x1b, 0x43, 0x3d, 0x0a, 0xcd, 0x39, 0x83, - 0x04, 0x5a, 0x11, 0x3e, 0x72, 0xe3, 0xca, 0xc2, 0x73, 0x08, 0x56, 0x27, 0x86, 0xca, 0x92, 0x5e, - 0x53, 0xbc, 0xff, 0xd1, 0x1e, 0x94, 0x7f, 0x57, 0x4d, 0xcd, 0xc0, 0x6e, 0x35, 0x18, 0x77, 0x84, - 0x0a, 0xe9, 0x47, 0xd8, 0x4a, 0xf9, 0x62, 0xce, 0xf0, 0x6f, 0x01, 0xdd, 0xe0, 0x05, 0xd1, 0xcc, - 0x55, 0x7b, 0x96, 0x99, 0xa4, 0x5d, 0x50, 0x48, 0xd2, 0xae, 0xe4, 0xde, 0xf1, 0x84, 0xd7, 0x9c, - 0x01, 0x7e, 0x0b, 0xcd, 0x0b, 0xec, 0xdc, 0x60, 0x63, 0x92, 0x8b, 0x8a, 0xfe, 0x13, 0xa0, 0x95, - 0xc4, 0x7f, 0x5c, 0x22, 0x1a, 0xbc, 0x5d, 0x07, 0xff, 0x31, 0x8b, 0xbe, 0x82, 0xb2, 0x1a, 0x34, - 0x13, 0xb5, 0x82, 0x24, 0xf8, 0x17, 0x93, 0xb8, 0x95, 0xa2, 0xa5, 0x04, 0xdd, 0x00, 0x9a, 0x26, - 0x38, 0x16, 0xed, 0x07, 0x87, 0x53, 0x19, 0x5c, 0x3c, 0x78, 0xc9, 0x4c, 0x09, 0xba, 0x84, 0xfa, - 0x34, 0x56, 0x2d, 0xb4, 0xcb, 0x61, 0xe2, 0x7d, 0x10, 0xf7, 0x96, 0x1b, 0x29, 0x41, 0x23, 0xd8, - 0x98, 0xf2, 0xa4, 0x89, 0xda, 0x89, 0xef, 0x07, 0x8e, 0x3e, 0x59, 0x62, 0xa1, 0x04, 0x0d, 0xa1, - 0xaa, 0x72, 0xbc, 0x85, 0x76, 0xb8, 0x82, 0xf0, 0xcb, 0x5f, 0x6c, 0xa7, 0x1b, 0x28, 0x41, 0x3f, - 0x40, 0xcd, 0x8e, 0x92, 0x0e, 0x12, 0x83, 0xc3, 0x49, 0x2e, 0x13, 0x77, 0x97, 0xda, 0x28, 0x41, - 0x87, 0x50, 0xd2, 0xfd, 0x8d, 0x8b, 0x9a, 0xc1, 0x41, 0x6e, 0x75, 0x8b, 0xad, 0xa4, 0x92, 0xd5, - 0x42, 0xe7, 0xd7, 0x61, 0x58, 0x8b, 0xf8, 0x86, 0x0d, 0x6b, 0x91, 0xdc, 0x9f, 0x43, 0xa8, 0x4e, - 0x39, 0xda, 0x0a, 0x6b, 0x11, 0x23, 0x42, 0xb1, 0x9d, 0x6e, 0x60, 0x2e, 0x34, 0x6e, 0xf3, 0x85, - 0x2e, 0x62, 0xab, 0x34, 0x74, 0x91, 0x58, 0x94, 0xd7, 0xd0, 0x50, 0xe3, 0x2b, 0x08, 0xed, 0xa5, - 0xce, 0xa9, 0xbf, 0x0f, 0xc5, 0xfd, 0x17, 0xac, 0xac, 0x41, 0x34, 0xba, 0x31, 0xc2, 0x06, 0x25, - 0x17, 0x54, 0xd8, 0xa0, 0xb4, 0x35, 0x33, 0x84, 0xaa, 0xce, 0xbd, 0x9f, 0xc3, 0x04, 0x63, 0x4f, - 0xfe, 0x30, 0xc1, 0xf8, 0x73, 0xfb, 0xb4, 0xf1, 0x6b, 0xad, 0xe7, 0xff, 0xfa, 0x3c, 0x66, 0x7f, - 0xee, 0x8b, 0xde, 0x4f, 0xcb, 0x2f, 0xde, 0x05, 0x00, 0x00, 0xff, 0xff, 0x85, 0x71, 0x6d, 0x1b, - 0x9c, 0x0e, 0x00, 0x00, +func init() { proto.RegisterFile("friend/friend.proto", fileDescriptor_friend_74665a4d507faa8c) } + +var fileDescriptor_friend_74665a4d507faa8c = []byte{ + // 945 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x57, 0xcf, 0x8f, 0xdb, 0x44, + 0x14, 0x96, 0x9b, 0xdd, 0x34, 0x79, 0x49, 0x9b, 0x64, 0x92, 0x6d, 0x83, 0x77, 0x5b, 0x05, 0x1f, + 0x50, 0xc4, 0x21, 0x91, 0x82, 0x2a, 0xb1, 0x14, 0x5a, 0xd2, 0xcd, 0x66, 0x31, 0xb0, 0x6c, 0x35, + 0x5b, 0x2e, 0x08, 0x69, 0xe5, 0xd6, 0x93, 0x60, 0xc5, 0xb1, 0xa7, 0x1e, 0x2f, 0x15, 0x57, 0x0e, + 0x88, 0x1b, 0x12, 0xe2, 0xc6, 0x81, 0x7f, 0x15, 0x79, 0xc6, 0x8e, 0x67, 0x6c, 0x6f, 0x85, 0x5d, + 0xa4, 0x9e, 0x92, 0x37, 0xef, 0x87, 0xdf, 0xfb, 0xde, 0x9b, 0xf7, 0xd9, 0xd0, 0x5f, 0x05, 0x0e, + 0xf1, 0xec, 0xa9, 0xf8, 0x99, 0xd0, 0xc0, 0x0f, 0x7d, 0x54, 0x17, 0x92, 0xfe, 0xe1, 0x05, 0x25, + 0xde, 0x95, 0x79, 0x3e, 0xa5, 0x9b, 0xf5, 0x94, 0xab, 0xa6, 0xcc, 0xde, 0x5c, 0xbd, 0x61, 0xd3, + 0x37, 0x4c, 0x98, 0x1a, 0x4f, 0x00, 0x4e, 0xfc, 0xed, 0xd6, 0xf7, 0x30, 0x61, 0x14, 0x0d, 0xe1, + 0x36, 0x09, 0x82, 0x13, 0xdf, 0x26, 0x43, 0x6d, 0xa4, 0x8d, 0xf7, 0x71, 0x22, 0xa2, 0x7b, 0x50, + 0x27, 0x41, 0x70, 0xce, 0xd6, 0xc3, 0x5b, 0x23, 0x6d, 0xdc, 0xc4, 0xb1, 0x64, 0xfc, 0xaa, 0x41, + 0x3d, 0x0a, 0x60, 0x2e, 0x90, 0x0e, 0x8d, 0x0b, 0xfa, 0x3d, 0x23, 0x81, 0xb9, 0xe0, 0xde, 0x4d, + 0xbc, 0x93, 0xd1, 0x08, 0x5a, 0x17, 0x94, 0x04, 0x56, 0xe8, 0xf8, 0x9e, 0xb9, 0x88, 0x63, 0xc8, + 0x47, 0x91, 0xf7, 0x0b, 0x3f, 0xf6, 0xde, 0x13, 0xde, 0x89, 0x8c, 0x1e, 0x02, 0x2c, 0x03, 0x7f, + 0x1b, 0x6b, 0xf7, 0xb9, 0x56, 0x3a, 0x31, 0x1e, 0x43, 0xef, 0x8c, 0x84, 0x4b, 0x5e, 0x34, 0x33, + 0xbd, 0x95, 0x8f, 0xc9, 0x6b, 0xf4, 0x51, 0x92, 0x18, 0x4f, 0xa6, 0x35, 0xbb, 0x3b, 0x89, 0x31, + 0x12, 0xa7, 0x38, 0xd6, 0x1a, 0xbf, 0x69, 0x92, 0xb7, 0x70, 0x16, 0x48, 0x9c, 0xaa, 0x48, 0x9c, + 0xa6, 0x48, 0x9c, 0x2a, 0x48, 0x08, 0x09, 0x3d, 0x85, 0xbb, 0x69, 0x8c, 0x6f, 0x1d, 0x16, 0x0e, + 0x6b, 0xa3, 0xda, 0xb8, 0x35, 0xbb, 0x3f, 0xf1, 0xa3, 0x2e, 0x38, 0xdb, 0x2b, 0x66, 0x6f, 0x26, + 0xd2, 0x63, 0x32, 0xe6, 0xc6, 0x77, 0xd0, 0x9e, 0xdb, 0xb6, 0x38, 0x2c, 0x51, 0x40, 0x94, 0x10, + 0x26, 0xaf, 0xa5, 0x84, 0x84, 0x64, 0x9c, 0xc0, 0x1d, 0x29, 0x1e, 0xa3, 0x68, 0x26, 0xf7, 0x3a, + 0x0e, 0x8a, 0xe4, 0xa0, 0x42, 0x83, 0x25, 0x2b, 0xe3, 0x6f, 0x0d, 0x3a, 0xe6, 0x96, 0xfa, 0x41, + 0x98, 0x26, 0xf6, 0x31, 0x74, 0x85, 0x20, 0xe0, 0xe7, 0xb5, 0x6a, 0xa3, 0xda, 0xb8, 0x89, 0x73, + 0xe7, 0xff, 0xa1, 0xf1, 0x6a, 0x73, 0x6b, 0xd9, 0xe6, 0x2a, 0x63, 0xb5, 0xa7, 0x8e, 0x95, 0xf1, + 0x04, 0xda, 0xe2, 0x1f, 0x26, 0xec, 0xda, 0x0d, 0x23, 0x28, 0x94, 0x01, 0x8c, 0x25, 0x01, 0x51, + 0x64, 0xc1, 0x13, 0xd8, 0xc7, 0xb1, 0x64, 0xfc, 0xae, 0x41, 0x57, 0xad, 0xae, 0x1a, 0x4c, 0xe8, + 0x4b, 0xe8, 0xca, 0x89, 0x70, 0x48, 0x6e, 0xf1, 0xf6, 0x0f, 0x12, 0x4f, 0x59, 0x8f, 0x73, 0xd6, + 0xc6, 0x53, 0x38, 0xd8, 0x4d, 0xe1, 0x9c, 0x52, 0xf7, 0x97, 0xe8, 0xb4, 0xcc, 0x1c, 0xff, 0xa5, + 0xc1, 0xbd, 0xa2, 0x08, 0x95, 0x86, 0xf9, 0x2b, 0xe8, 0xed, 0xfa, 0x7d, 0x4d, 0x58, 0x28, 0xcd, + 0xb3, 0x5e, 0x30, 0xcf, 0xb1, 0x15, 0xce, 0x3b, 0x19, 0x9f, 0x41, 0x77, 0x97, 0x55, 0xd9, 0x92, + 0x94, 0xab, 0xf9, 0x0e, 0xd5, 0xbc, 0xf3, 0xd5, 0x3c, 0x86, 0xce, 0xdc, 0xb6, 0x9f, 0xb9, 0xd6, + 0xab, 0x8d, 0x5b, 0xb2, 0x86, 0x25, 0x74, 0x55, 0xd7, 0x8a, 0x17, 0xf1, 0x73, 0x40, 0x98, 0x6c, + 0xfd, 0x9f, 0x49, 0xa5, 0x2c, 0x4c, 0xe8, 0xe7, 0xbc, 0x2b, 0x26, 0x72, 0x0c, 0x9d, 0x33, 0x12, + 0x56, 0xca, 0xe2, 0x0f, 0x8d, 0x0f, 0x83, 0x9a, 0x43, 0xf9, 0x76, 0x9a, 0xd0, 0xe3, 0x21, 0xf8, + 0x1d, 0x52, 0x3b, 0x7a, 0xa8, 0x74, 0xf4, 0xf9, 0xf5, 0x4b, 0xd7, 0x79, 0x95, 0x98, 0xe1, 0xbc, + 0x97, 0xf1, 0x08, 0x5a, 0x26, 0x2b, 0xbd, 0x72, 0x8d, 0x1f, 0xa1, 0x9d, 0xba, 0x55, 0xaa, 0x41, + 0x87, 0x46, 0xe4, 0xe9, 0x7b, 0x8c, 0xf0, 0x9d, 0xd7, 0xc0, 0x3b, 0x39, 0xba, 0x32, 0x26, 0x33, + 0x3d, 0x9e, 0x6d, 0xd9, 0x2b, 0x63, 0x41, 0x2f, 0xe3, 0xfb, 0xbf, 0xa7, 0x77, 0x0c, 0x9d, 0x05, + 0x71, 0x49, 0x48, 0xca, 0xe3, 0xb6, 0x84, 0xae, 0xea, 0x5a, 0x71, 0x06, 0x29, 0x0c, 0x14, 0x6a, + 0x8b, 0xf2, 0x2a, 0x43, 0x99, 0x08, 0xf6, 0x56, 0xae, 0xb5, 0x8e, 0xd9, 0x80, 0xff, 0x47, 0x47, + 0xd0, 0xfc, 0xc9, 0xf2, 0x6c, 0x97, 0x44, 0x68, 0x08, 0x1a, 0x4a, 0x0f, 0x8c, 0x6f, 0xe0, 0xa0, + 0xe0, 0x89, 0x15, 0xd3, 0x7f, 0x01, 0xe8, 0x92, 0xec, 0x28, 0x67, 0x6b, 0x05, 0x9b, 0xd2, 0x7c, + 0x1f, 0x39, 0xa5, 0x7c, 0x1f, 0x49, 0xd1, 0x1d, 0xcf, 0x45, 0xad, 0x98, 0xe0, 0x17, 0xd0, 0x3f, + 0x23, 0xe1, 0x25, 0x71, 0x57, 0x95, 0xa8, 0xe8, 0x4f, 0x0d, 0x06, 0x79, 0xff, 0xf7, 0x4b, 0x44, + 0xb3, 0x7f, 0x6e, 0x43, 0xfc, 0x5e, 0x8c, 0x3e, 0x85, 0xa6, 0x95, 0x34, 0x13, 0xed, 0x08, 0x5a, + 0x7e, 0xf9, 0xd2, 0x0f, 0x0a, 0x4e, 0x19, 0x45, 0x97, 0x80, 0xd6, 0x39, 0x8e, 0x45, 0x0f, 0x12, + 0xe3, 0x42, 0x06, 0xd7, 0x1f, 0xbe, 0x4d, 0xcd, 0x28, 0x3a, 0x87, 0xee, 0x3a, 0x83, 0x16, 0x3a, + 0x94, 0x7c, 0xb2, 0x7d, 0xd0, 0x8f, 0x6e, 0x56, 0x32, 0x8a, 0x16, 0x70, 0x67, 0x2d, 0x93, 0x26, + 0x1a, 0xe6, 0x9e, 0x9f, 0x04, 0xfa, 0xe0, 0x06, 0x0d, 0xa3, 0x68, 0x0e, 0x6d, 0x4b, 0xe2, 0x2d, + 0x74, 0x5f, 0x02, 0x44, 0x5e, 0xfe, 0xfa, 0xb0, 0x58, 0xc1, 0x28, 0xfa, 0x1a, 0x3a, 0x81, 0x4a, + 0x3a, 0x48, 0x4f, 0x8c, 0xf3, 0x5c, 0xa6, 0x1f, 0xde, 0xa8, 0x63, 0x14, 0x3d, 0x82, 0x86, 0x13, + 0x6f, 0x5c, 0xd4, 0x4f, 0x0c, 0xa5, 0xd5, 0xad, 0x0f, 0xf2, 0x87, 0x02, 0x0b, 0x47, 0x5e, 0x87, + 0x29, 0x16, 0xd9, 0x0d, 0x9b, 0x62, 0x91, 0xdf, 0x9f, 0x73, 0x68, 0xaf, 0x25, 0xda, 0x4a, 0xb1, + 0xc8, 0x10, 0xa1, 0x3e, 0x2c, 0x56, 0x88, 0x10, 0xb6, 0xb4, 0xf9, 0xd2, 0x10, 0x99, 0x55, 0x9a, + 0x86, 0xc8, 0x2d, 0xca, 0xe7, 0xd0, 0xb3, 0xb2, 0x2b, 0x08, 0x1d, 0x15, 0xce, 0x69, 0xbc, 0x0f, + 0xf5, 0x07, 0x6f, 0xd1, 0x8a, 0x06, 0x31, 0x75, 0x63, 0xa4, 0x0d, 0xca, 0x2f, 0xa8, 0xb4, 0x41, + 0x45, 0x6b, 0x66, 0x0e, 0x6d, 0x47, 0x7a, 0x93, 0x4e, 0x0b, 0xcc, 0x7c, 0x3d, 0xa4, 0x05, 0x66, + 0x5f, 0xbc, 0x9f, 0xf5, 0x7e, 0xe8, 0x4c, 0xe2, 0x0f, 0xd9, 0xc7, 0xe2, 0xe7, 0x65, 0x9d, 0x7f, + 0xa5, 0x7e, 0xf2, 0x6f, 0x00, 0x00, 0x00, 0xff, 0xff, 0xdf, 0x16, 0xf8, 0xb5, 0xe7, 0x0e, 0x00, + 0x00, } From 8cd38693ddee572395f84b7d25da77fef7451c42 Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Wed, 29 Dec 2021 16:31:33 +0800 Subject: [PATCH 334/814] Refactor code --- internal/api/friend/friend.go | 10 ++++++---- pkg/base_info/friend_api_struct.go | 4 ++-- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/internal/api/friend/friend.go b/internal/api/friend/friend.go index 973317838..ac3e49c12 100644 --- a/internal/api/friend/friend.go +++ b/internal/api/friend/friend.go @@ -68,17 +68,19 @@ func ImportFriend(c *gin.Context) { client := rpc.NewFriendClient(etcdConn) RpcResp, err := client.ImportFriend(context.Background(), req) if err != nil { - log.NewError(req.OperationID, "ImportFriend failed", err.Error(), req.String()) - c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": "cImportFriend failed " + err.Error()}) + log.NewError(req.OperationID, "ImportFriend failed ", err.Error(), req.String()) + c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": "cImportFriend failed "}) return } resp := api.ImportFriendResp{CommResp: api.CommResp{ErrCode: RpcResp.CommonResp.ErrCode, ErrMsg: RpcResp.CommonResp.ErrMsg}} if resp.ErrCode == 0 { for _, v := range RpcResp.UserIDResultList { - resp.UserIDResultList = append(resp.UserIDResultList, api.UserIDResult{v.UserID, v.Result}) + resp.UserIDResultList = append(resp.UserIDResultList, api.UserIDResult{UserID: v.UserID, Result: v.Result}) } } - + if len(resp.UserIDResultList) == 0 { + resp.UserIDResultList = []api.UserIDResult{} + } log.NewInfo(req.OperationID, "ImportFriend api return ", resp) c.JSON(http.StatusOK, resp) } diff --git a/pkg/base_info/friend_api_struct.go b/pkg/base_info/friend_api_struct.go index 18c429471..653730fc0 100644 --- a/pkg/base_info/friend_api_struct.go +++ b/pkg/base_info/friend_api_struct.go @@ -21,8 +21,8 @@ type ImportFriendReq struct { FromUserID string `json:"fromUserID" binding:"required"` } type UserIDResult struct { - UserID string `json:"userID" binding:"required"` - Result int32 `json:"result" binding:"required"` + UserID string `json:"userID""` + Result int32 `json:"result"` } type ImportFriendResp struct { CommResp From cf59f57ab8b15fd4d10b77c8e1b33970fea4b937 Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Wed, 29 Dec 2021 16:39:52 +0800 Subject: [PATCH 335/814] Refactor code --- internal/api/friend/friend.go | 2 +- internal/rpc/friend/firend.go | 3 +-- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/internal/api/friend/friend.go b/internal/api/friend/friend.go index ac3e49c12..bbb31236c 100644 --- a/internal/api/friend/friend.go +++ b/internal/api/friend/friend.go @@ -69,7 +69,7 @@ func ImportFriend(c *gin.Context) { RpcResp, err := client.ImportFriend(context.Background(), req) if err != nil { log.NewError(req.OperationID, "ImportFriend failed ", err.Error(), req.String()) - c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": "cImportFriend failed "}) + c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": "ImportFriend failed "}) return } resp := api.ImportFriendResp{CommResp: api.CommResp{ErrCode: RpcResp.CommonResp.ErrCode, ErrMsg: RpcResp.CommonResp.ErrMsg}} diff --git a/internal/rpc/friend/firend.go b/internal/rpc/friend/firend.go index b4f2a06f7..018e88b9b 100644 --- a/internal/rpc/friend/firend.go +++ b/internal/rpc/friend/firend.go @@ -156,10 +156,9 @@ func (s *friendServer) AddFriend(ctx context.Context, req *pbFriend.AddFriendReq return &pbFriend.AddFriendResp{CommonResp: &pbFriend.CommonResp{}}, nil } -//todo func (s *friendServer) ImportFriend(ctx context.Context, req *pbFriend.ImportFriendReq) (*pbFriend.ImportFriendResp, error) { log.NewInfo(req.OperationID, "ImportFriend failed ", req.String()) - var resp pbFriend.ImportFriendResp + resp := pbFriend.ImportFriendResp{CommonResp: &pbFriend.CommonResp{}} var c pbFriend.CommonResp if !utils.IsContain(req.OpUserID, config.Config.Manager.AppManagerUid) { From 95a771c2fb6f48081b594f09db27f4812853a827 Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Wed, 29 Dec 2021 16:44:24 +0800 Subject: [PATCH 336/814] Refactor code --- internal/api/friend/friend.go | 2 +- internal/rpc/friend/firend.go | 2 +- pkg/base_info/friend_api_struct.go | 3 +-- 3 files changed, 3 insertions(+), 4 deletions(-) diff --git a/internal/api/friend/friend.go b/internal/api/friend/friend.go index bbb31236c..abc7ecff2 100644 --- a/internal/api/friend/friend.go +++ b/internal/api/friend/friend.go @@ -54,7 +54,7 @@ func ImportFriend(c *gin.Context) { return } req := &rpc.ImportFriendReq{} - utils.CopyStructFields(req, ¶ms) + utils.CopyStructFields(req, ¶ms.ParamsCommFriend) var ok bool ok, req.OpUserID = token_verify.GetUserIDFromToken(c.Request.Header.Get("token")) if !ok { diff --git a/internal/rpc/friend/firend.go b/internal/rpc/friend/firend.go index 018e88b9b..bfcb46467 100644 --- a/internal/rpc/friend/firend.go +++ b/internal/rpc/friend/firend.go @@ -157,7 +157,7 @@ func (s *friendServer) AddFriend(ctx context.Context, req *pbFriend.AddFriendReq } func (s *friendServer) ImportFriend(ctx context.Context, req *pbFriend.ImportFriendReq) (*pbFriend.ImportFriendResp, error) { - log.NewInfo(req.OperationID, "ImportFriend failed ", req.String()) + log.NewInfo(req.OperationID, "ImportFriend args ", req.String()) resp := pbFriend.ImportFriendResp{CommonResp: &pbFriend.CommonResp{}} var c pbFriend.CommonResp diff --git a/pkg/base_info/friend_api_struct.go b/pkg/base_info/friend_api_struct.go index 653730fc0..79d37e94e 100644 --- a/pkg/base_info/friend_api_struct.go +++ b/pkg/base_info/friend_api_struct.go @@ -17,8 +17,7 @@ type AddBlacklistResp struct { type ImportFriendReq struct { FriendUserIDList []string `json:"friendUserIDList" binding:"required"` - OperationID string `json:"operationID" binding:"required"` - FromUserID string `json:"fromUserID" binding:"required"` + ParamsCommFriend } type UserIDResult struct { UserID string `json:"userID""` From 69b1ee2ec72169e59a7fa8427cd89e3dc66833e7 Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Wed, 29 Dec 2021 16:46:33 +0800 Subject: [PATCH 337/814] Refactor code --- internal/api/friend/friend.go | 2 +- pkg/base_info/friend_api_struct.go | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/internal/api/friend/friend.go b/internal/api/friend/friend.go index abc7ecff2..bbb31236c 100644 --- a/internal/api/friend/friend.go +++ b/internal/api/friend/friend.go @@ -54,7 +54,7 @@ func ImportFriend(c *gin.Context) { return } req := &rpc.ImportFriendReq{} - utils.CopyStructFields(req, ¶ms.ParamsCommFriend) + utils.CopyStructFields(req, ¶ms) var ok bool ok, req.OpUserID = token_verify.GetUserIDFromToken(c.Request.Header.Get("token")) if !ok { diff --git a/pkg/base_info/friend_api_struct.go b/pkg/base_info/friend_api_struct.go index 79d37e94e..653730fc0 100644 --- a/pkg/base_info/friend_api_struct.go +++ b/pkg/base_info/friend_api_struct.go @@ -17,7 +17,8 @@ type AddBlacklistResp struct { type ImportFriendReq struct { FriendUserIDList []string `json:"friendUserIDList" binding:"required"` - ParamsCommFriend + OperationID string `json:"operationID" binding:"required"` + FromUserID string `json:"fromUserID" binding:"required"` } type UserIDResult struct { UserID string `json:"userID""` From a52d674a14cdd305418d2a20e35de4dcb391dfd8 Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Wed, 29 Dec 2021 16:52:12 +0800 Subject: [PATCH 338/814] Refactor code --- internal/rpc/friend/firend.go | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/internal/rpc/friend/firend.go b/internal/rpc/friend/firend.go index bfcb46467..7acb2e7dd 100644 --- a/internal/rpc/friend/firend.go +++ b/internal/rpc/friend/firend.go @@ -184,6 +184,7 @@ func (s *friendServer) ImportFriend(ctx context.Context, req *pbFriend.ImportFri for _, v := range req.FriendUserIDList { if _, fErr := imdb.GetUserByUserID(v); fErr != nil { + log.NewError(req.OperationID, "GetUserByUserID failed", req.FromUserID, fErr.Error(), v) resp.UserIDResultList = append(resp.UserIDResultList, &pbFriend.UserIDResult{UserID: v, Result: -1}) } else { if _, err := imdb.GetFriendRelationshipFromFriend(req.FromUserID, v); err != nil { @@ -202,10 +203,8 @@ func (s *friendServer) ImportFriend(ctx context.Context, req *pbFriend.ImportFri resp.UserIDResultList = append(resp.UserIDResultList, &pbFriend.UserIDResult{UserID: v, Result: -1}) continue } - for _, v := range req.FriendUserIDList { - chat.FriendAddedNotification(req.OperationID, req.OpUserID, req.FromUserID, v) - resp.UserIDResultList = append(resp.UserIDResultList, &pbFriend.UserIDResult{UserID: v, Result: 0}) - } + resp.UserIDResultList = append(resp.UserIDResultList, &pbFriend.UserIDResult{UserID: v, Result: 0}) + chat.FriendAddedNotification(req.OperationID, req.OpUserID, req.FromUserID, v) } } } From c6ee7c50820043d59ce37f7c2f6a1b2acbb827b9 Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Wed, 29 Dec 2021 16:55:45 +0800 Subject: [PATCH 339/814] Refactor code --- internal/rpc/friend/firend.go | 1 + 1 file changed, 1 insertion(+) diff --git a/internal/rpc/friend/firend.go b/internal/rpc/friend/firend.go index 7acb2e7dd..54cfd3bb0 100644 --- a/internal/rpc/friend/firend.go +++ b/internal/rpc/friend/firend.go @@ -204,6 +204,7 @@ func (s *friendServer) ImportFriend(ctx context.Context, req *pbFriend.ImportFri continue } resp.UserIDResultList = append(resp.UserIDResultList, &pbFriend.UserIDResult{UserID: v, Result: 0}) + log.NewDebug(req.OperationID, "UserIDResultList ", resp.UserIDResultList) chat.FriendAddedNotification(req.OperationID, req.OpUserID, req.FromUserID, v) } } From 1ce2a86f37f23f18c66af2517d396a7ecdec0ccc Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Wed, 29 Dec 2021 17:05:52 +0800 Subject: [PATCH 340/814] nil return modify --- internal/msg_gateway/gate/validate.go | 2 +- internal/rpc/user/user.go | 2 +- pkg/common/db/mysql_model/im_mysql_model/user_model.go | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/internal/msg_gateway/gate/validate.go b/internal/msg_gateway/gate/validate.go index 269229e9c..fe1411a62 100644 --- a/internal/msg_gateway/gate/validate.go +++ b/internal/msg_gateway/gate/validate.go @@ -59,7 +59,7 @@ type SeqListData struct { func (ws *WServer) argsValidate(m *Req, r int32) (isPass bool, errCode int32, errMsg string, returnData interface{}) { switch r { case constant.WSSendMsg: - data := open_im_sdk.UserSendMsgReq{} + data := open_im_sdk.MsgData{} if err := proto.Unmarshal(m.Data, &data); err != nil { log.ErrorByKv("Decode Data struct err", "", "err", err.Error(), "reqIdentifier", r) return false, 203, err.Error(), nil diff --git a/internal/rpc/user/user.go b/internal/rpc/user/user.go index 69d3c2bc3..c6391bcb3 100644 --- a/internal/rpc/user/user.go +++ b/internal/rpc/user/user.go @@ -104,7 +104,7 @@ func (s *userServer) SetReceiveMessageOpt(ctx context.Context, req *pbUser.SetRe resp := pbUser.SetReceiveMessageOptResp{CommonResp: &pbUser.CommonResp{}} for _, v := range req.ConversationIDList { - resp.ConversationOptResultList = append(resp.ConversationOptResultList, &pbUser.OptResult{ConversationID: v, Result: 0}) + resp.ConversationOptResultList = append(resp.ConversationOptResultList, &pbUser.OptResult{ConversationID: v, Result: req.Opt}) } log.NewInfo(req.OperationID, "SetReceiveMessageOpt rpc return ", resp.String()) return &resp, nil 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 298487c38..fb7001b41 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 @@ -100,7 +100,7 @@ func SelectAllUserID() ([]string, error) { return nil, err } var resultArr []string - err = dbConn.Table("user").Select([]string{"user_id"}).Scan(&resultArr).Error + err = dbConn.Table("user").Select("user_id").Scan(&resultArr).Error if err != nil { return nil, err } From bb2d5e570a786b3ebcaab700d1fbd3bdab4bf071 Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Wed, 29 Dec 2021 17:06:40 +0800 Subject: [PATCH 341/814] Refactor code --- internal/rpc/friend/firend.go | 1 + 1 file changed, 1 insertion(+) diff --git a/internal/rpc/friend/firend.go b/internal/rpc/friend/firend.go index 54cfd3bb0..653f3a37e 100644 --- a/internal/rpc/friend/firend.go +++ b/internal/rpc/friend/firend.go @@ -183,6 +183,7 @@ func (s *friendServer) ImportFriend(ctx context.Context, req *pbFriend.ImportFri } for _, v := range req.FriendUserIDList { + log.NewDebug(req.OperationID, "FriendUserIDList ", v) if _, fErr := imdb.GetUserByUserID(v); fErr != nil { log.NewError(req.OperationID, "GetUserByUserID failed", req.FromUserID, fErr.Error(), v) resp.UserIDResultList = append(resp.UserIDResultList, &pbFriend.UserIDResult{UserID: v, Result: -1}) From 3ca92c7a034ab88a4652721ec9d33d7a838bdbd9 Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Wed, 29 Dec 2021 17:13:45 +0800 Subject: [PATCH 342/814] Refactor code --- internal/rpc/friend/firend.go | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/internal/rpc/friend/firend.go b/internal/rpc/friend/firend.go index 653f3a37e..378f3a911 100644 --- a/internal/rpc/friend/firend.go +++ b/internal/rpc/friend/firend.go @@ -185,7 +185,7 @@ func (s *friendServer) ImportFriend(ctx context.Context, req *pbFriend.ImportFri for _, v := range req.FriendUserIDList { log.NewDebug(req.OperationID, "FriendUserIDList ", v) if _, fErr := imdb.GetUserByUserID(v); fErr != nil { - log.NewError(req.OperationID, "GetUserByUserID failed", req.FromUserID, fErr.Error(), v) + log.NewError(req.OperationID, "GetUserByUserID failed ", fErr.Error(), v) resp.UserIDResultList = append(resp.UserIDResultList, &pbFriend.UserIDResult{UserID: v, Result: -1}) } else { if _, err := imdb.GetFriendRelationshipFromFriend(req.FromUserID, v); err != nil { @@ -193,20 +193,23 @@ func (s *friendServer) ImportFriend(ctx context.Context, req *pbFriend.ImportFri toInsertFollow := imdb.Friend{OwnerUserID: req.FromUserID, FriendUserID: v} err1 := imdb.InsertToFriend(&toInsertFollow) if err1 != nil { - log.NewError(req.OperationID, "InsertToFriend failed", req.FromUserID, v, err1.Error()) + log.NewError(req.OperationID, "InsertToFriend failed ", err1.Error(), toInsertFollow) resp.UserIDResultList = append(resp.UserIDResultList, &pbFriend.UserIDResult{UserID: v, Result: -1}) continue } toInsertFollow = imdb.Friend{OwnerUserID: v, FriendUserID: req.FromUserID} err2 := imdb.InsertToFriend(&toInsertFollow) if err2 != nil { - log.NewError(req.OperationID, "InsertToFriend failed", v, req.FromUserID, err2.Error()) + log.NewError(req.OperationID, "InsertToFriend failed ", err2.Error(), toInsertFollow) resp.UserIDResultList = append(resp.UserIDResultList, &pbFriend.UserIDResult{UserID: v, Result: -1}) continue } resp.UserIDResultList = append(resp.UserIDResultList, &pbFriend.UserIDResult{UserID: v, Result: 0}) log.NewDebug(req.OperationID, "UserIDResultList ", resp.UserIDResultList) chat.FriendAddedNotification(req.OperationID, req.OpUserID, req.FromUserID, v) + } else { + log.NewWarn(req.OperationID, "GetFriendRelationshipFromFriend ok", req.FromUserID, v) + resp.UserIDResultList = append(resp.UserIDResultList, &pbFriend.UserIDResult{UserID: v, Result: 0}) } } } From 6c137d90982010a4aa363ddb287e6f26e69531cc Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Wed, 29 Dec 2021 17:26:06 +0800 Subject: [PATCH 343/814] Refactor code --- cmd/open_im_api/main.go | 12 ++++++------ internal/api/group/group.go | 12 +++++++----- pkg/base_info/group_api_struct.go | 19 +++++++++---------- pkg/base_info/public_struct.go | 5 +++++ 4 files changed, 27 insertions(+), 21 deletions(-) diff --git a/cmd/open_im_api/main.go b/cmd/open_im_api/main.go index d6abb67e4..7134127a1 100644 --- a/cmd/open_im_api/main.go +++ b/cmd/open_im_api/main.go @@ -25,7 +25,7 @@ func main() { userRouterGroup := r.Group("/user") { userRouterGroup.POST("/update_user_info", user.UpdateUserInfo) //1 - userRouterGroup.POST("/get_user_info", user.GetUserInfo) //1 + userRouterGroup.POST("/get_user_info", user.GetUserInfo) //1 } //friend routing group friendRouterGroup := r.Group("/friend") @@ -35,14 +35,14 @@ func main() { friendRouterGroup.POST("/get_friend_apply_list", friend.GetFriendApplyList) //1 friendRouterGroup.POST("/get_self_apply_list", friend.GetSelfApplyList) //1 friendRouterGroup.POST("/get_friend_list", friend.GetFriendList) //1 - friendRouterGroup.POST("/add_blacklist", friend.AddBlacklist) //1 - friendRouterGroup.POST("/get_blacklist", friend.GetBlacklist) //1 - friendRouterGroup.POST("/remove_blacklist", friend.RemoveBlacklist) //1 + friendRouterGroup.POST("/add_blacklist", friend.AddBlacklist) //1 + friendRouterGroup.POST("/get_blacklist", friend.GetBlacklist) //1 + friendRouterGroup.POST("/remove_blacklist", friend.RemoveBlacklist) //1 friendRouterGroup.POST("/delete_friend", friend.DeleteFriend) friendRouterGroup.POST("/add_friend_response", friend.AddFriendResponse) //1 friendRouterGroup.POST("/set_friend_remark", friend.SetFriendRemark) //1 friendRouterGroup.POST("/is_friend", friend.IsFriend) //1 - friendRouterGroup.POST("/import_friend", friend.ImportFriend) + friendRouterGroup.POST("/import_friend", friend.ImportFriend) //1 } //group related routing group groupRouterGroup := r.Group("/group") @@ -66,7 +66,7 @@ func main() { authRouterGroup := r.Group("/auth") { authRouterGroup.POST("/user_register", apiAuth.UserRegister) //1 - authRouterGroup.POST("/user_token", apiAuth.UserToken) //1 + authRouterGroup.POST("/user_token", apiAuth.UserToken) //1 } //Third service thirdGroup := r.Group("/third") diff --git a/internal/api/group/group.go b/internal/api/group/group.go index 62c3ab8df..76e0b9928 100644 --- a/internal/api/group/group.go +++ b/internal/api/group/group.go @@ -227,7 +227,10 @@ func CreateGroup(c *gin.Context) { return } req := &rpc.CreateGroupReq{} - utils.CopyStructFields(req, params) + utils.CopyStructFields(req, ¶ms) + for _, v := range params.MemberList { + req.InitMemberList = append(req.InitMemberList, &rpc.GroupAddMemberInfo{UserID: v.UserID, RoleLevel: v.RoleLevel}) + } var ok bool ok, req.OpUserID = token_verify.GetUserIDFromToken(c.Request.Header.Get("token")) if !ok { @@ -246,13 +249,12 @@ func CreateGroup(c *gin.Context) { return } + resp := api.CreateGroupResp{CommResp: api.CommResp{ErrCode: RpcResp.ErrCode, ErrMsg: RpcResp.ErrMsg}} if RpcResp.ErrCode == 0 { - resp := gin.H{"errCode": RpcResp.ErrCode, "errMsg": RpcResp.ErrMsg, "data": gin.H{"groupInfo": RpcResp.GroupInfo}} - c.JSON(http.StatusOK, resp) - } else { - c.JSON(http.StatusOK, gin.H{"errCode": RpcResp.ErrCode, "errMsg": RpcResp.ErrMsg}) + utils.CopyStructFields(&resp.GroupInfo, &RpcResp.GroupInfo) } log.NewInfo(req.OperationID, "InviteUserToGroup api return ", RpcResp) + c.JSON(http.StatusOK, resp) } //my application 我发出去的 diff --git a/pkg/base_info/group_api_struct.go b/pkg/base_info/group_api_struct.go index 726a9c24a..3c0256857 100644 --- a/pkg/base_info/group_api_struct.go +++ b/pkg/base_info/group_api_struct.go @@ -1,7 +1,6 @@ package base_info import ( - pb "Open_IM/pkg/proto/group" open_im_sdk "Open_IM/pkg/proto/sdk_ws" ) @@ -77,18 +76,18 @@ type GetGroupAllMemberResp struct { } type CreateGroupReq struct { - MemberList []*pb.GroupAddMemberInfo `json:"memberList"` - GroupName string `json:"groupName"` - Introduction string `json:"introduction"` - Notification string `json:"notification"` - FaceUrl string `json:"faceUrl"` - OperationID string `json:"operationID" binding:"required"` - GroupType int32 `json:"groupType"` - Ex string `json:"ex"` + MemberList []*GroupAddMemberInfo `json:"memberList" binding:"required"` + GroupName string `json:"groupName"` + Introduction string `json:"introduction"` + Notification string `json:"notification"` + FaceUrl string `json:"faceUrl"` + OperationID string `json:"operationID" binding:"required"` + GroupType int32 `json:"groupType"` + Ex string `json:"ex"` } type CreateGroupResp struct { CommResp - Data open_im_sdk.GroupInfo `json:"data"` + GroupInfo open_im_sdk.GroupInfo `json:"data"` } type GetGroupApplicationListReq struct { diff --git a/pkg/base_info/public_struct.go b/pkg/base_info/public_struct.go index 8993cb0a9..80c5e944c 100644 --- a/pkg/base_info/public_struct.go +++ b/pkg/base_info/public_struct.go @@ -16,6 +16,11 @@ type UserInfo struct { Ex string `json:"ex" binding:"omitempty,max=1024"` } +type GroupAddMemberInfo struct { + UserID string `json:"userID" binding:"required"` + RoleLevel int32 `json:"roleLevel" binding:"required"` +} + func SetErrCodeMsg(c *gin.Context, status int) *CommResp { resp := CommResp{ErrCode: int32(status), ErrMsg: http.StatusText(status)} c.JSON(status, resp) From 7c04bcae26c093d7fcee099a78840f3e1b85e3d5 Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Wed, 29 Dec 2021 17:34:44 +0800 Subject: [PATCH 344/814] nil return modify --- internal/msg_transfer/logic/db.go | 5 ----- pkg/common/db/mysql_model/im_mysql_model/user_model.go | 2 +- 2 files changed, 1 insertion(+), 6 deletions(-) diff --git a/internal/msg_transfer/logic/db.go b/internal/msg_transfer/logic/db.go index bd1972386..0c09e0c8e 100644 --- a/internal/msg_transfer/logic/db.go +++ b/internal/msg_transfer/logic/db.go @@ -2,7 +2,6 @@ package logic import ( "Open_IM/pkg/common/db" - "Open_IM/pkg/common/db/mysql_model/im_mysql_model" "Open_IM/pkg/common/log" pbMsg "Open_IM/pkg/proto/chat" "Open_IM/pkg/utils" @@ -21,7 +20,3 @@ func saveUserChat(uid string, msg *pbMsg.MsgDataToMQ) error { log.NewInfo(msg.OperationID, "IncrUserSeq cost time", utils.GetCurrentTimestampByMill()-time) return db.DB.SaveUserChat(uid, pbSaveData.MsgData.SendTime, &pbSaveData) } - -func getGroupList(groupID string) ([]string, error) { - return im_mysql_model.SelectGroupList(groupID) -} 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 fb7001b41..cd9267642 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 @@ -100,7 +100,7 @@ func SelectAllUserID() ([]string, error) { return nil, err } var resultArr []string - err = dbConn.Table("user").Select("user_id").Scan(&resultArr).Error + err = dbConn.Table("user").Select("user_id").Scan(resultArr).Error if err != nil { return nil, err } From bd5480b264e68de0f146e068178cd73497ac80b3 Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Wed, 29 Dec 2021 17:39:04 +0800 Subject: [PATCH 345/814] nil return modify --- pkg/common/db/mysql_model/im_mysql_model/user_model.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 cd9267642..fb7001b41 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 @@ -100,7 +100,7 @@ func SelectAllUserID() ([]string, error) { return nil, err } var resultArr []string - err = dbConn.Table("user").Select("user_id").Scan(resultArr).Error + err = dbConn.Table("user").Select("user_id").Scan(&resultArr).Error if err != nil { return nil, err } From a02b8104120f709e66c741f7a5adcfe4501567c5 Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Wed, 29 Dec 2021 17:42:22 +0800 Subject: [PATCH 346/814] Refactor code --- pkg/base_info/group_api_struct.go | 13 +++++-------- pkg/base_info/public_struct.go | 16 +++++++++------- 2 files changed, 14 insertions(+), 15 deletions(-) diff --git a/pkg/base_info/group_api_struct.go b/pkg/base_info/group_api_struct.go index 3c0256857..6c675145c 100644 --- a/pkg/base_info/group_api_struct.go +++ b/pkg/base_info/group_api_struct.go @@ -76,15 +76,12 @@ type GetGroupAllMemberResp struct { } type CreateGroupReq struct { - MemberList []*GroupAddMemberInfo `json:"memberList" binding:"required"` - GroupName string `json:"groupName"` - Introduction string `json:"introduction"` - Notification string `json:"notification"` - FaceUrl string `json:"faceUrl"` - OperationID string `json:"operationID" binding:"required"` - GroupType int32 `json:"groupType"` - Ex string `json:"ex"` + MemberList []*GroupAddMemberInfo `json:"memberList" binding:"required"` + OwnerUserID string `json:"ownerUserID"` + GroupName string `json:"groupName"` + GroupType int32 `json:"groupType"` } + type CreateGroupResp struct { CommResp GroupInfo open_im_sdk.GroupInfo `json:"data"` diff --git a/pkg/base_info/public_struct.go b/pkg/base_info/public_struct.go index 80c5e944c..dbb729e71 100644 --- a/pkg/base_info/public_struct.go +++ b/pkg/base_info/public_struct.go @@ -27,23 +27,25 @@ func SetErrCodeMsg(c *gin.Context, status int) *CommResp { return &resp } -// +//GroupName string `json:"groupName"` +// Introduction string `json:"introduction"` +// Notification string `json:"notification"` +// FaceUrl string `json:"faceUrl"` +// OperationID string `json:"operationID" binding:"required"` +// GroupType int32 `json:"groupType"` +// Ex string `json:"ex"` + //type GroupInfo struct { // GroupID string `json:"groupID"` // GroupName string `json:"groupName"` // Notification string `json:"notification"` // Introduction string `json:"introduction"` // FaceUrl string `json:"faceUrl"` -// OperationID string `json:"operationID"` // OwnerUserID string `json:"ownerUserID"` -// CreateTime int64 `json:"createTime"` -// MemberCount uint32 `json:"memberCount"` // Ex string `json:"ex"` -// Status int32 `json:"status"` -// CreatorUserID string `json:"creatorUserID"` // GroupType int32 `json:"groupType"` //} -// + //type GroupMemberFullInfo struct { // GroupID string `json:"groupID"` // UserID string `json:"userID"` From 7138d7ac592a5a06d40a9f1396dba6b179263cf4 Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Wed, 29 Dec 2021 17:43:49 +0800 Subject: [PATCH 347/814] Refactor code --- internal/api/group/group.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/internal/api/group/group.go b/internal/api/group/group.go index 76e0b9928..edd42a2c3 100644 --- a/internal/api/group/group.go +++ b/internal/api/group/group.go @@ -251,9 +251,9 @@ func CreateGroup(c *gin.Context) { resp := api.CreateGroupResp{CommResp: api.CommResp{ErrCode: RpcResp.ErrCode, ErrMsg: RpcResp.ErrMsg}} if RpcResp.ErrCode == 0 { - utils.CopyStructFields(&resp.GroupInfo, &RpcResp.GroupInfo) + utils.CopyStructFields(&resp.GroupInfo, RpcResp.GroupInfo) } - log.NewInfo(req.OperationID, "InviteUserToGroup api return ", RpcResp) + log.NewInfo(req.OperationID, "InviteUserToGroup api return ", resp) c.JSON(http.StatusOK, resp) } From 6e14375b86866bfda0bf6bec111df74372b51d52 Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Wed, 29 Dec 2021 17:46:27 +0800 Subject: [PATCH 348/814] Refactor code --- internal/api/group/group.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/internal/api/group/group.go b/internal/api/group/group.go index edd42a2c3..952962f59 100644 --- a/internal/api/group/group.go +++ b/internal/api/group/group.go @@ -244,7 +244,7 @@ func CreateGroup(c *gin.Context) { client := rpc.NewGroupClient(etcdConn) RpcResp, err := client.CreateGroup(context.Background(), req) if err != nil { - log.NewError(req.OperationID, "CreateGroup failed", err.Error(), req.String()) + log.NewError(req.OperationID, "CreateGroup failed ", err.Error(), req.String()) c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": "call rpc server failed"}) return } From 8faf1140fb3c84cdddeb29fe6e815de13d609456 Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Wed, 29 Dec 2021 17:51:06 +0800 Subject: [PATCH 349/814] nil return modify --- pkg/common/db/mysql_model/im_mysql_model/user_model.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 fb7001b41..46909e95c 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 @@ -100,7 +100,7 @@ func SelectAllUserID() ([]string, error) { return nil, err } var resultArr []string - err = dbConn.Table("user").Select("user_id").Scan(&resultArr).Error + err = dbConn.Table("user").Select("user_id").Pluck("user_id", &resultArr).Error if err != nil { return nil, err } From 9f55418bfb5bb53ac4a7da17d11ddf60ab80fa9b Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Wed, 29 Dec 2021 17:52:01 +0800 Subject: [PATCH 350/814] Refactor code --- internal/api/group/group.go | 2 +- internal/rpc/group/group.go | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/internal/api/group/group.go b/internal/api/group/group.go index 952962f59..688686112 100644 --- a/internal/api/group/group.go +++ b/internal/api/group/group.go @@ -253,7 +253,7 @@ func CreateGroup(c *gin.Context) { if RpcResp.ErrCode == 0 { utils.CopyStructFields(&resp.GroupInfo, RpcResp.GroupInfo) } - log.NewInfo(req.OperationID, "InviteUserToGroup api return ", resp) + log.NewInfo(req.OperationID, "CreateGroup api return ", resp) c.JSON(http.StatusOK, resp) } diff --git a/internal/rpc/group/group.go b/internal/rpc/group/group.go index 01192c049..287d172aa 100644 --- a/internal/rpc/group/group.go +++ b/internal/rpc/group/group.go @@ -111,7 +111,7 @@ func (s *groupServer) CreateGroup(ctx context.Context, req *pbGroup.CreateGroupR for _, user := range req.InitMemberList { us, err := im_mysql_model.GetUserByUserID(user.UserID) if err != nil { - log.NewError(req.OperationID, "FindUserByUID failed ", err.Error(), user.UserID) + log.NewError(req.OperationID, "GetUserByUserID failed ", err.Error(), user.UserID) continue } if user.RoleLevel == constant.GroupOwner { @@ -133,7 +133,7 @@ func (s *groupServer) CreateGroup(ctx context.Context, req *pbGroup.CreateGroupR } } - resp := &pbGroup.CreateGroupResp{} + resp := &pbGroup.CreateGroupResp{GroupInfo: &open_im_sdk.GroupInfo{}} group, err := im_mysql_model.GetGroupInfoByGroupID(groupId) if err != nil { log.NewError(req.OperationID, "GetGroupInfoByGroupID failed ", err.Error(), groupId) @@ -143,7 +143,7 @@ func (s *groupServer) CreateGroup(ctx context.Context, req *pbGroup.CreateGroupR } chat.GroupCreatedNotification(req.OperationID, req.OpUserID, req.OwnerUserID, groupId, okUserIDList) utils.CopyStructFields(resp.GroupInfo, group) - resp.GroupInfo.MemberCount = uint32(imdb.GetGroupMemberNumByGroupID(groupId)) + resp.GroupInfo.MemberCount = imdb.GetGroupMemberNumByGroupID(groupId) resp.GroupInfo.OwnerUserID = req.OwnerUserID log.NewInfo(req.OperationID, "rpc CreateGroup return ", resp.String()) From 6f03c470ae7c684ded7fcee6a2a4f934effa7bd6 Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Wed, 29 Dec 2021 17:53:08 +0800 Subject: [PATCH 351/814] nil return modify --- pkg/common/db/mysql_model/im_mysql_model/user_model.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 46909e95c..8a4900ee1 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 @@ -100,7 +100,7 @@ func SelectAllUserID() ([]string, error) { return nil, err } var resultArr []string - err = dbConn.Table("user").Select("user_id").Pluck("user_id", &resultArr).Error + err = dbConn.Table("user").Pluck("user_id", &resultArr).Error if err != nil { return nil, err } From 5dcb321a6f67c56611050bffe973b3a252ace889 Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Wed, 29 Dec 2021 18:04:24 +0800 Subject: [PATCH 352/814] Refactor code --- internal/rpc/group/group.go | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/internal/rpc/group/group.go b/internal/rpc/group/group.go index 287d172aa..f759bc903 100644 --- a/internal/rpc/group/group.go +++ b/internal/rpc/group/group.go @@ -195,7 +195,7 @@ func (s *groupServer) InviteUserToGroup(ctx context.Context, req *pbGroup.Invite _, err := imdb.GetGroupInfoByGroupID(req.GroupID) if err != nil { - log.NewError(req.OperationID, "FindGroupInfoByGroupId failed ", req.GroupID, err) + log.NewError(req.OperationID, "GetGroupInfoByGroupID failed ", req.GroupID, err) return &pbGroup.InviteUserToGroupResp{ErrCode: constant.ErrAccess.ErrCode, ErrMsg: constant.ErrAccess.ErrMsg}, nil } // @@ -209,7 +209,7 @@ func (s *groupServer) InviteUserToGroup(ctx context.Context, req *pbGroup.Invite resultNode.Result = 0 toUserInfo, err := imdb.GetUserByUserID(v) if err != nil { - log.NewError(req.OperationID, "FindUserByUID failed ", err.Error(), v) + log.NewError(req.OperationID, "GetUserByUserID failed ", err.Error(), v) resultNode.Result = -1 resp.Id2ResultList = append(resp.Id2ResultList, &resultNode) continue @@ -253,7 +253,7 @@ func (s *groupServer) GetGroupAllMember(ctx context.Context, req *pbGroup.GetGro if err != nil { resp.ErrCode = constant.ErrDB.ErrCode resp.ErrMsg = constant.ErrDB.ErrMsg - log.NewError(req.OperationID, "FindGroupMemberListByGroupId failed,", err.Error(), req.GroupID) + log.NewError(req.OperationID, "GetGroupMemberListByGroupID failed,", err.Error(), req.GroupID) return &resp, nil } @@ -411,7 +411,7 @@ func (s *groupServer) GetGroupsInfo(ctx context.Context, req *pbGroup.GetGroupsI for _, groupID := range req.GroupIDList { groupInfoFromMysql, err := im_mysql_model.GetGroupInfoByGroupID(groupID) if err != nil { - log.NewError(req.OperationID, "FindGroupInfoByGroupId failed ", err.Error(), groupID) + log.NewError(req.OperationID, "GetGroupInfoByGroupID failed ", err.Error(), groupID) continue } var groupInfo open_im_sdk.GroupInfo @@ -482,7 +482,7 @@ func (s *groupServer) QuitGroup(ctx context.Context, req *pbGroup.QuitGroupReq) _, err := imdb.GetGroupMemberInfoByGroupIDAndUserID(req.GroupID, req.OpUserID) if err != nil { - log.NewError(req.OperationID, "FindGroupMemberInfoByGroupIdAndUserId failed", err.Error(), req.GroupID, req.OpUserID) + log.NewError(req.OperationID, "GetGroupMemberInfoByGroupIDAndUserID failed", err.Error(), req.GroupID, req.OpUserID) return &pbGroup.QuitGroupResp{CommonResp: &pbGroup.CommonResp{ErrCode: constant.ErrDB.ErrCode, ErrMsg: constant.ErrDB.ErrMsg}}, nil } @@ -509,7 +509,7 @@ func hasAccess(req *pbGroup.SetGroupInfoReq) bool { } groupUserInfo, err := im_mysql_model.GetGroupMemberInfoByGroupIDAndUserID(req.GroupInfo.GroupID, req.OpUserID) if err != nil { - log.NewError(req.OperationID, "FindGroupMemberInfoByGroupIdAndUserId failed, ", err.Error(), req.GroupInfo.GroupID, req.OpUserID) + log.NewError(req.OperationID, "GetGroupMemberInfoByGroupIDAndUserID failed, ", err.Error(), req.GroupInfo.GroupID, req.OpUserID) return false } @@ -528,7 +528,7 @@ func (s *groupServer) SetGroupInfo(ctx context.Context, req *pbGroup.SetGroupInf group, err := im_mysql_model.GetGroupInfoByGroupID(req.GroupInfo.GroupID) if err != nil { - log.NewError(req.OperationID, "FindGroupInfoByGroupId failed ", err.Error(), req.GroupInfo.GroupID) + log.NewError(req.OperationID, "GetGroupInfoByGroupID failed ", err.Error(), req.GroupInfo.GroupID) return &pbGroup.SetGroupInfoResp{CommonResp: &pbGroup.CommonResp{ErrCode: constant.ErrDB.ErrCode, ErrMsg: constant.ErrAccess.ErrMsg}}, nil } From abd91260ab02ecceb97b08f9de30c130a98b0077 Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Wed, 29 Dec 2021 18:09:55 +0800 Subject: [PATCH 353/814] nil return modify --- internal/rpc/user/user.go | 7 ++++--- pkg/common/db/mysql_model/im_mysql_model/user_model.go | 6 +++--- 2 files changed, 7 insertions(+), 6 deletions(-) diff --git a/internal/rpc/user/user.go b/internal/rpc/user/user.go index c6391bcb3..49f800242 100644 --- a/internal/rpc/user/user.go +++ b/internal/rpc/user/user.go @@ -141,7 +141,7 @@ func (s *userServer) GetAllConversationMsgOpt(ctx context.Context, req *pbUser.G } func (s *userServer) DeleteUsers(_ context.Context, req *pbUser.DeleteUsersReq) (*pbUser.DeleteUsersResp, error) { log.NewInfo(req.OperationID, "DeleteUsers args ", req.String()) - if token_verify.IsMangerUserID(req.OpUserID) { + if !token_verify.IsMangerUserID(req.OpUserID) { log.NewError(req.OperationID, "IsMangerUserID false ", req.OpUserID) return &pbUser.DeleteUsersResp{CommonResp: &pbUser.CommonResp{ErrCode: constant.ErrAccess.ErrCode, ErrMsg: constant.ErrAccess.ErrMsg}, FailedUserIDList: req.DeleteUserIDList}, nil } @@ -161,7 +161,7 @@ func (s *userServer) DeleteUsers(_ context.Context, req *pbUser.DeleteUsersReq) func (s *userServer) GetAllUserID(_ context.Context, req *pbUser.GetAllUserIDReq) (*pbUser.GetAllUserIDResp, error) { log.NewInfo(req.OperationID, "GetAllUserID args ", req.String()) - if token_verify.IsMangerUserID(req.OpUserID) { + if !token_verify.IsMangerUserID(req.OpUserID) { log.NewError(req.OperationID, "IsMangerUserID false ", req.OpUserID) return &pbUser.GetAllUserIDResp{CommonResp: &pbUser.CommonResp{ErrCode: constant.ErrAccess.ErrCode, ErrMsg: constant.ErrAccess.ErrMsg}}, nil } @@ -177,11 +177,12 @@ func (s *userServer) GetAllUserID(_ context.Context, req *pbUser.GetAllUserIDReq func (s *userServer) AccountCheck(_ context.Context, req *pbUser.AccountCheckReq) (*pbUser.AccountCheckResp, error) { log.NewInfo(req.OperationID, "AccountCheck args ", req.String()) - if token_verify.IsMangerUserID(req.OpUserID) { + if !token_verify.IsMangerUserID(req.OpUserID) { log.NewError(req.OperationID, "IsMangerUserID false ", req.OpUserID) return &pbUser.AccountCheckResp{CommonResp: &pbUser.CommonResp{ErrCode: constant.ErrAccess.ErrCode, ErrMsg: constant.ErrAccess.ErrMsg}}, nil } uidList, err := imdb.SelectSomeUserID(req.CheckUserIDList) + log.NewDebug(req.OperationID, "from db uid list is:", uidList) if err != nil { log.NewError(req.OperationID, "SelectSomeUserID failed ", err.Error(), req.CheckUserIDList) return &pbUser.AccountCheckResp{CommonResp: &pbUser.CommonResp{ErrCode: constant.ErrDB.ErrCode, ErrMsg: constant.ErrDB.ErrMsg}}, nil 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 8a4900ee1..fbc382718 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 @@ -112,10 +112,10 @@ func SelectSomeUserID(userIDList []string) ([]string, error) { if err != nil { return nil, err } - var userList []User - err = dbConn.Table("user").Where("(user_id) IN ? ", userIDList).Find(&userList).Error + var resultArr []string + err = dbConn.Table("user").Where("(user_id) IN ? ", userIDList).Pluck("user_id", &resultArr).Error if err != nil { return nil, err } - return userIDList, nil + return resultArr, nil } From 1537330b6173e05674d7fbe4c07e9fc86f753303 Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Wed, 29 Dec 2021 18:10:19 +0800 Subject: [PATCH 354/814] Refactor code --- pkg/base_info/group_api_struct.go | 1 + 1 file changed, 1 insertion(+) diff --git a/pkg/base_info/group_api_struct.go b/pkg/base_info/group_api_struct.go index 6c675145c..01250bddf 100644 --- a/pkg/base_info/group_api_struct.go +++ b/pkg/base_info/group_api_struct.go @@ -80,6 +80,7 @@ type CreateGroupReq struct { OwnerUserID string `json:"ownerUserID"` GroupName string `json:"groupName"` GroupType int32 `json:"groupType"` + OperationID string `json:"operationID"` } type CreateGroupResp struct { From b0c05fd80d44e307b6724354ccdc93fa35870bbf Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Wed, 29 Dec 2021 18:12:23 +0800 Subject: [PATCH 355/814] Refactor code --- pkg/base_info/group_api_struct.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkg/base_info/group_api_struct.go b/pkg/base_info/group_api_struct.go index 01250bddf..bcc657e43 100644 --- a/pkg/base_info/group_api_struct.go +++ b/pkg/base_info/group_api_struct.go @@ -77,10 +77,10 @@ type GetGroupAllMemberResp struct { type CreateGroupReq struct { MemberList []*GroupAddMemberInfo `json:"memberList" binding:"required"` - OwnerUserID string `json:"ownerUserID"` + OwnerUserID string `json:"ownerUserID" binding:"required"` GroupName string `json:"groupName"` GroupType int32 `json:"groupType"` - OperationID string `json:"operationID"` + OperationID string `json:"operationID" binding:"required"` } type CreateGroupResp struct { From 4b38f0bc6b5adb62ac8f2dd3b95087386a666c20 Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Wed, 29 Dec 2021 18:26:49 +0800 Subject: [PATCH 356/814] Refactor code --- internal/rpc/group/group.go | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/internal/rpc/group/group.go b/internal/rpc/group/group.go index f759bc903..e9d937863 100644 --- a/internal/rpc/group/group.go +++ b/internal/rpc/group/group.go @@ -94,8 +94,10 @@ func (s *groupServer) CreateGroup(ctx context.Context, req *pbGroup.CreateGroupR } //to group member + groupMemberTmp := imdb.GroupMember{GroupID: groupId, RoleLevel: constant.GroupOwner} + utils.CopyStructFields(&groupMemberTmp, us) groupMember := imdb.GroupMember{GroupID: groupId, RoleLevel: constant.GroupOwner} - utils.CopyStructFields(&groupMember, us) + groupMember = groupMemberTmp err = im_mysql_model.InsertIntoGroupMember(groupMember) if err != nil { log.NewError(req.OperationID, "InsertIntoGroupMember failed ", err.Error(), groupMember) From 479ce592fae3a50363c115b9e65bb570811dc29e Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Wed, 29 Dec 2021 18:36:56 +0800 Subject: [PATCH 357/814] Refactor code --- internal/rpc/group/group.go | 4 +--- pkg/common/db/mysql_model/im_mysql_model/model_struct.go | 2 +- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/internal/rpc/group/group.go b/internal/rpc/group/group.go index e9d937863..f759bc903 100644 --- a/internal/rpc/group/group.go +++ b/internal/rpc/group/group.go @@ -94,10 +94,8 @@ func (s *groupServer) CreateGroup(ctx context.Context, req *pbGroup.CreateGroupR } //to group member - groupMemberTmp := imdb.GroupMember{GroupID: groupId, RoleLevel: constant.GroupOwner} - utils.CopyStructFields(&groupMemberTmp, us) groupMember := imdb.GroupMember{GroupID: groupId, RoleLevel: constant.GroupOwner} - groupMember = groupMemberTmp + utils.CopyStructFields(&groupMember, us) err = im_mysql_model.InsertIntoGroupMember(groupMember) if err != nil { log.NewError(req.OperationID, "InsertIntoGroupMember failed ", err.Error(), groupMember) diff --git a/pkg/common/db/mysql_model/im_mysql_model/model_struct.go b/pkg/common/db/mysql_model/im_mysql_model/model_struct.go index bd35c6314..e53b02222 100644 --- a/pkg/common/db/mysql_model/im_mysql_model/model_struct.go +++ b/pkg/common/db/mysql_model/im_mysql_model/model_struct.go @@ -94,7 +94,7 @@ type GroupMember struct { RoleLevel int32 `gorm:"column:role_level"` JoinTime time.Time `gorm:"column:join_time"` Nickname string `gorm:"column:nickname"` - FaceUrl string `gorm:"user_group_face_url"` + FaceUrl string `gorm:"column:user_group_face_url"` JoinSource int32 `gorm:"column:join_source"` OperatorUserID string `gorm:"column:operator_user_id"` Ex string `gorm:"column:ex"` From 0392eab12923c3b1bd940ecf6be340b08ed8f123 Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Wed, 29 Dec 2021 19:12:33 +0800 Subject: [PATCH 358/814] nil return modify --- pkg/common/db/mysql_model/im_mysql_model/user_model.go | 2 ++ 1 file changed, 2 insertions(+) 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 fbc382718..c4ed8686a 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 @@ -109,11 +109,13 @@ func SelectAllUserID() ([]string, error) { func SelectSomeUserID(userIDList []string) ([]string, error) { dbConn, err := db.DB.MysqlDB.DefaultGormDB() + dbConn.LogMode(true) if err != nil { return nil, err } var resultArr []string err = dbConn.Table("user").Where("(user_id) IN ? ", userIDList).Pluck("user_id", &resultArr).Error + if err != nil { return nil, err } From de8ac684668f69efb51bef4b1427a55dc705e80f Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Wed, 29 Dec 2021 19:17:43 +0800 Subject: [PATCH 359/814] nil return modify --- pkg/common/db/mysql_model/im_mysql_model/user_model.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 c4ed8686a..42d573b5e 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 @@ -114,7 +114,7 @@ func SelectSomeUserID(userIDList []string) ([]string, error) { return nil, err } var resultArr []string - err = dbConn.Table("user").Where("(user_id) IN ? ", userIDList).Pluck("user_id", &resultArr).Error + err = dbConn.Table("user").Where("user_id IN (?) ", userIDList).Pluck("user_id", &resultArr).Error if err != nil { return nil, err From b4935fef767eaaa3c6a905006ca23ee213a60d62 Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Wed, 29 Dec 2021 19:33:54 +0800 Subject: [PATCH 360/814] nil return modify --- pkg/common/db/mysql_model/im_mysql_model/user_model.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 42d573b5e..0f0396be8 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 @@ -114,7 +114,7 @@ func SelectSomeUserID(userIDList []string) ([]string, error) { return nil, err } var resultArr []string - err = dbConn.Table("user").Where("user_id IN (?) ", userIDList).Pluck("user_id", &resultArr).Error + err = dbConn.Table("user").Where("user_id IN (?) ", userIDList).Find(&resultArr).Error if err != nil { return nil, err From 31fabb462474e4aef5531bb1ecf1ceb548d4d714 Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Wed, 29 Dec 2021 19:35:04 +0800 Subject: [PATCH 361/814] nil return modify --- pkg/base_info/manage_api_struct.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkg/base_info/manage_api_struct.go b/pkg/base_info/manage_api_struct.go index 070e2c72b..ff1fea906 100644 --- a/pkg/base_info/manage_api_struct.go +++ b/pkg/base_info/manage_api_struct.go @@ -29,8 +29,8 @@ type GetUsersOnlineStatusResp struct { SuccessResult []*pbRelay.GetUsersOnlineStatusResp_SuccessResult `json:"data"` } type AccountCheckReq struct { - OperationID string `json:"operationID" binding:"required"` - UserIDList []string `json:"userIDList" binding:"required,lte=100"` + OperationID string `json:"operationID" binding:"required"` + CheckUserIDList []string `json:"checkUserIDList" binding:"required,lte=100"` } type AccountCheckResp struct { CommResp From ace5fd61bd2cc9d6fad3c26dff9aef26db77b36d Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Wed, 29 Dec 2021 19:37:52 +0800 Subject: [PATCH 362/814] nil return modify --- pkg/common/db/mysql_model/im_mysql_model/user_model.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 0f0396be8..42d573b5e 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 @@ -114,7 +114,7 @@ func SelectSomeUserID(userIDList []string) ([]string, error) { return nil, err } var resultArr []string - err = dbConn.Table("user").Where("user_id IN (?) ", userIDList).Find(&resultArr).Error + err = dbConn.Table("user").Where("user_id IN (?) ", userIDList).Pluck("user_id", &resultArr).Error if err != nil { return nil, err From ca92bc899bba63844c1c0ff1470e55e39aabcd14 Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Wed, 29 Dec 2021 21:26:56 +0800 Subject: [PATCH 363/814] Refactor code --- cmd/open_im_api/main.go | 2 +- internal/api/group/group.go | 2 +- pkg/base_info/group_api_struct.go | 3 ++- .../db/mysql_model/im_mysql_model/model_struct.go | 14 ++++++++------ 4 files changed, 12 insertions(+), 9 deletions(-) diff --git a/cmd/open_im_api/main.go b/cmd/open_im_api/main.go index 7134127a1..259978c56 100644 --- a/cmd/open_im_api/main.go +++ b/cmd/open_im_api/main.go @@ -47,7 +47,7 @@ func main() { //group related routing group groupRouterGroup := r.Group("/group") { - groupRouterGroup.POST("/create_group", group.CreateGroup) + groupRouterGroup.POST("/create_group", group.CreateGroup) //1 groupRouterGroup.POST("/set_group_info", group.SetGroupInfo) groupRouterGroup.POST("join_group", group.JoinGroup) groupRouterGroup.POST("/quit_group", group.QuitGroup) diff --git a/internal/api/group/group.go b/internal/api/group/group.go index 688686112..0c90d00c5 100644 --- a/internal/api/group/group.go +++ b/internal/api/group/group.go @@ -443,7 +443,7 @@ func SetGroupInfo(c *gin.Context) { c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": "call rpc server failed"}) return } - resp := api.CommResp{ErrCode: RpcResp.CommonResp.ErrCode, ErrMsg: RpcResp.CommonResp.ErrMsg} + resp := api.SetGroupInfoResp{CommResp: api.CommResp{ErrCode: RpcResp.CommonResp.ErrCode, ErrMsg: RpcResp.CommonResp.ErrMsg}} c.JSON(http.StatusOK, resp) log.NewInfo(req.OperationID, "SetGroupInfo api return ", resp) } diff --git a/pkg/base_info/group_api_struct.go b/pkg/base_info/group_api_struct.go index bcc657e43..b232f389c 100644 --- a/pkg/base_info/group_api_struct.go +++ b/pkg/base_info/group_api_struct.go @@ -1,6 +1,7 @@ package base_info import ( + imdb "Open_IM/pkg/common/db/mysql_model/im_mysql_model" open_im_sdk "Open_IM/pkg/proto/sdk_ws" ) @@ -135,7 +136,7 @@ type QuitGroupResp struct { } type SetGroupInfoReq struct { - open_im_sdk.GroupInfo + imdb.Group OperationID string `json:"operationID" binding:"required"` } type SetGroupInfoResp struct { diff --git a/pkg/common/db/mysql_model/im_mysql_model/model_struct.go b/pkg/common/db/mysql_model/im_mysql_model/model_struct.go index e53b02222..8c228cae0 100644 --- a/pkg/common/db/mysql_model/im_mysql_model/model_struct.go +++ b/pkg/common/db/mysql_model/im_mysql_model/model_struct.go @@ -63,17 +63,19 @@ type FriendRequest struct { //} // open_im_sdk.GroupInfo (OwnerUserID , MemberCount )> imdb.Group type Group struct { - GroupID string `gorm:"column:group_id;primaryKey;"` - GroupName string `gorm:"column:name"` - Notification string `gorm:"column:notification"` - Introduction string `gorm:"column:introduction"` - FaceUrl string `gorm:"column:face_url"` + //`json:"operationID" binding:"required"` + //`protobuf:"bytes,1,opt,name=GroupID" json:"GroupID,omitempty"` `json:"operationID" binding:"required"` + GroupID string `gorm:"column:group_id;primaryKey;" json:"groupID" binding:"required"` + GroupName string `gorm:"column:name" json:"groupName"` + Notification string `gorm:"column:notification" json:"notification"` + Introduction string `gorm:"column:introduction" json:"introduction"` + FaceUrl string `gorm:"column:face_url" json:"faceUrl"` CreateTime time.Time `gorm:"column:create_time"` Status int32 `gorm:"column:status"` CreatorUserID string `gorm:"column:creator_user_id"` GroupType int32 `gorm:"column:group_type"` - Ex string `gorm:"column:ex"` + Ex string `gorm:"column:ex" json:"ex"` } //message GroupMemberFullInfo { From 51126ca941e5c0305c66aef3da59ee4489c0c173 Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Wed, 29 Dec 2021 21:47:56 +0800 Subject: [PATCH 364/814] Refactor code --- internal/api/group/group.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/internal/api/group/group.go b/internal/api/group/group.go index 0c90d00c5..c13662651 100644 --- a/internal/api/group/group.go +++ b/internal/api/group/group.go @@ -394,7 +394,7 @@ func QuitGroup(c *gin.Context) { return } req := &rpc.QuitGroupReq{} - utils.CopyStructFields(req, params) + utils.CopyStructFields(req, ¶ms) var ok bool ok, req.OpUserID = token_verify.GetUserIDFromToken(c.Request.Header.Get("token")) if !ok { @@ -425,7 +425,7 @@ func SetGroupInfo(c *gin.Context) { return } req := &rpc.SetGroupInfoReq{} - utils.CopyStructFields(req, params) + utils.CopyStructFields(req, ¶ms.Group) var ok bool ok, req.OpUserID = token_verify.GetUserIDFromToken(c.Request.Header.Get("token")) if !ok { From be4ba6cc69c2952efa8dafd4afb308246934df79 Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Wed, 29 Dec 2021 21:50:11 +0800 Subject: [PATCH 365/814] Refactor code --- internal/api/group/group.go | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/internal/api/group/group.go b/internal/api/group/group.go index c13662651..acdd83e9c 100644 --- a/internal/api/group/group.go +++ b/internal/api/group/group.go @@ -7,6 +7,7 @@ import ( "Open_IM/pkg/common/token_verify" "Open_IM/pkg/grpc-etcdv3/getcdv3" rpc "Open_IM/pkg/proto/group" + open_im_sdk "Open_IM/pkg/proto/sdk_ws" "Open_IM/pkg/utils" "context" "github.com/gin-gonic/gin" @@ -424,8 +425,9 @@ func SetGroupInfo(c *gin.Context) { c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": err.Error()}) return } - req := &rpc.SetGroupInfoReq{} - utils.CopyStructFields(req, ¶ms.Group) + req := &rpc.SetGroupInfoReq{GroupInfo: &open_im_sdk.GroupInfo{}} + utils.CopyStructFields(req.GroupInfo, ¶ms.Group) + req.OperationID = params.OperationID var ok bool ok, req.OpUserID = token_verify.GetUserIDFromToken(c.Request.Header.Get("token")) if !ok { From 3bbf9d2e0f06d4f1362f8272cce97849e5849796 Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Wed, 29 Dec 2021 21:55:07 +0800 Subject: [PATCH 366/814] nil return modify --- pkg/base_info/manage_api_struct.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkg/base_info/manage_api_struct.go b/pkg/base_info/manage_api_struct.go index ff1fea906..61e2bbba4 100644 --- a/pkg/base_info/manage_api_struct.go +++ b/pkg/base_info/manage_api_struct.go @@ -6,8 +6,8 @@ import ( ) type DeleteUsersReq struct { - OperationID string `json:"operationID" binding:"required"` - DeleteUidList []string `json:"deleteUidList" binding:"required"` + OperationID string `json:"operationID" binding:"required"` + DeleteUserIDList []string `json:"deleteUserIDList" binding:"required"` } type DeleteUsersResp struct { CommResp From e39312828cd7802df326f8b23f8ce45278a32d08 Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Wed, 29 Dec 2021 22:00:18 +0800 Subject: [PATCH 367/814] Refactor code --- pkg/common/db/mysql_model/im_mysql_model/group_member_model.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkg/common/db/mysql_model/im_mysql_model/group_member_model.go b/pkg/common/db/mysql_model/im_mysql_model/group_member_model.go index 70be7a2bc..94581eb0f 100644 --- a/pkg/common/db/mysql_model/im_mysql_model/group_member_model.go +++ b/pkg/common/db/mysql_model/im_mysql_model/group_member_model.go @@ -79,7 +79,7 @@ func GetGroupMemberInfoByGroupIDAndUserID(groupID, userID string) (*GroupMember, return nil, err } var groupMember GroupMember - err = dbConn.Table("group_member").Where("group_id=? and user_id=? limit 1", groupID, userID).Find(&groupMember).Error + err = dbConn.Table("group_member").Where("group_id=? and user_id=? ", groupID, userID).Limit(1).Find(&groupMember).Error if err != nil { return nil, err } From 28ef79f37110b42b17d9f9ba21c3da337bf36885 Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Wed, 29 Dec 2021 22:06:27 +0800 Subject: [PATCH 368/814] Refactor code --- 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 f759bc903..6ece62592 100644 --- a/internal/rpc/group/group.go +++ b/internal/rpc/group/group.go @@ -513,7 +513,7 @@ func hasAccess(req *pbGroup.SetGroupInfoReq) bool { return false } - if groupUserInfo.RoleLevel == constant.GroupAdmin { + if groupUserInfo.RoleLevel == constant.GroupOwner || groupUserInfo.RoleLevel == constant.GroupAdmin { return true } return false @@ -522,7 +522,7 @@ func hasAccess(req *pbGroup.SetGroupInfoReq) bool { func (s *groupServer) SetGroupInfo(ctx context.Context, req *pbGroup.SetGroupInfoReq) (*pbGroup.SetGroupInfoResp, error) { log.NewInfo(req.OperationID, "SetGroupInfo args ", req.String()) if !hasAccess(req) { - log.NewError(req.OperationID, "no access ") + log.NewError(req.OperationID, "no access ", req) return &pbGroup.SetGroupInfoResp{CommonResp: &pbGroup.CommonResp{ErrCode: constant.ErrAccess.ErrCode, ErrMsg: constant.ErrAccess.ErrMsg}}, nil } From 8b7e62e81933fb4cce336bca7d3b55271aee43b9 Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Thu, 30 Dec 2021 09:10:31 +0800 Subject: [PATCH 369/814] Refactor code --- internal/rpc/group/group.go | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/internal/rpc/group/group.go b/internal/rpc/group/group.go index 6ece62592..32b7f83d8 100644 --- a/internal/rpc/group/group.go +++ b/internal/rpc/group/group.go @@ -551,13 +551,14 @@ func (s *groupServer) SetGroupInfo(ctx context.Context, req *pbGroup.SetGroupInf utils.CopyStructFields(&groupInfo, req.GroupInfo) err = imdb.SetGroupInfo(groupInfo) if err != nil { + log.NewError(req.OperationID, "SetGroupInfo failed ", err.Error(), groupInfo) return &pbGroup.SetGroupInfoResp{CommonResp: &pbGroup.CommonResp{ErrCode: constant.ErrDB.ErrCode, ErrMsg: constant.ErrAccess.ErrMsg}}, nil } if changedType != 0 { chat.GroupInfoChangedNotification(req.OperationID, req.OpUserID, req.GroupInfo.GroupID, changedType) } - log.NewInfo("SetGroupInfo rpc return ", pbGroup.SetGroupInfoResp{CommonResp: &pbGroup.CommonResp{}}) + log.NewInfo(req.OperationID, "SetGroupInfo rpc return ", pbGroup.SetGroupInfoResp{CommonResp: &pbGroup.CommonResp{}}) return &pbGroup.SetGroupInfoResp{CommonResp: &pbGroup.CommonResp{}}, nil } From f93090596a32275829fe05abcd07aa6e3259fdc0 Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Thu, 30 Dec 2021 09:11:38 +0800 Subject: [PATCH 370/814] Refactor code --- internal/rpc/group/group.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/internal/rpc/group/group.go b/internal/rpc/group/group.go index 32b7f83d8..4bb29db9c 100644 --- a/internal/rpc/group/group.go +++ b/internal/rpc/group/group.go @@ -552,7 +552,7 @@ func (s *groupServer) SetGroupInfo(ctx context.Context, req *pbGroup.SetGroupInf err = imdb.SetGroupInfo(groupInfo) if err != nil { log.NewError(req.OperationID, "SetGroupInfo failed ", err.Error(), groupInfo) - return &pbGroup.SetGroupInfoResp{CommonResp: &pbGroup.CommonResp{ErrCode: constant.ErrDB.ErrCode, ErrMsg: constant.ErrAccess.ErrMsg}}, nil + return &pbGroup.SetGroupInfoResp{CommonResp: &pbGroup.CommonResp{ErrCode: constant.ErrDB.ErrCode, ErrMsg: constant.ErrDB.ErrMsg}}, nil } if changedType != 0 { From d7dbe986f1f40c472b5827ebe57421dc9a504ec7 Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Thu, 30 Dec 2021 09:17:49 +0800 Subject: [PATCH 371/814] Refactor code --- pkg/common/db/mysql_model/im_mysql_model/group_model.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkg/common/db/mysql_model/im_mysql_model/group_model.go b/pkg/common/db/mysql_model/im_mysql_model/group_model.go index cc53a8036..12c809c28 100644 --- a/pkg/common/db/mysql_model/im_mysql_model/group_model.go +++ b/pkg/common/db/mysql_model/im_mysql_model/group_model.go @@ -52,6 +52,6 @@ func SetGroupInfo(groupInfo Group) error { if err != nil { return err } - err = dbConn.Table("friend_request").Where("group_id=?", groupInfo.GroupID).Update(&groupInfo).Error + err = dbConn.Table("group").Where("group_id=?", groupInfo.GroupID).Update(&groupInfo).Error return err } From f2c0a3994aab88757f8009189ebbb7699ec30b3f Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Thu, 30 Dec 2021 09:23:18 +0800 Subject: [PATCH 372/814] Refactor code --- cmd/open_im_api/main.go | 4 ++-- internal/api/group/group.go | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/cmd/open_im_api/main.go b/cmd/open_im_api/main.go index 259978c56..6768191a8 100644 --- a/cmd/open_im_api/main.go +++ b/cmd/open_im_api/main.go @@ -47,8 +47,8 @@ func main() { //group related routing group groupRouterGroup := r.Group("/group") { - groupRouterGroup.POST("/create_group", group.CreateGroup) //1 - groupRouterGroup.POST("/set_group_info", group.SetGroupInfo) + groupRouterGroup.POST("/create_group", group.CreateGroup) //1 + groupRouterGroup.POST("/set_group_info", group.SetGroupInfo) //1 groupRouterGroup.POST("join_group", group.JoinGroup) groupRouterGroup.POST("/quit_group", group.QuitGroup) groupRouterGroup.POST("/group_application_response", group.ApplicationGroupResponse) diff --git a/internal/api/group/group.go b/internal/api/group/group.go index acdd83e9c..93e20839b 100644 --- a/internal/api/group/group.go +++ b/internal/api/group/group.go @@ -383,8 +383,8 @@ func JoinGroup(c *gin.Context) { return } resp := api.CommResp{ErrCode: RpcResp.CommonResp.ErrCode, ErrMsg: RpcResp.CommonResp.ErrMsg} + log.NewInfo(req.OperationID, "JoinGroup api return", RpcResp.String()) c.JSON(http.StatusOK, resp) - log.NewInfo("JoinGroup api return", RpcResp.String()) } func QuitGroup(c *gin.Context) { From ac3159193fe9ea230d300abee8de9e9e3dfc63ac Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Thu, 30 Dec 2021 09:26:40 +0800 Subject: [PATCH 373/814] Refactor code --- internal/api/group/group.go | 2 +- internal/rpc/group/group.go | 7 +++---- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/internal/api/group/group.go b/internal/api/group/group.go index 93e20839b..8905b641d 100644 --- a/internal/api/group/group.go +++ b/internal/api/group/group.go @@ -414,8 +414,8 @@ func QuitGroup(c *gin.Context) { return } resp := api.CommResp{ErrCode: RpcResp.CommonResp.ErrCode, ErrMsg: RpcResp.CommonResp.ErrMsg} + log.NewInfo(req.OperationID, "QuitGroup api return", RpcResp.String()) c.JSON(http.StatusOK, resp) - log.NewInfo("QuitGroup api return", RpcResp.String()) } func SetGroupInfo(c *gin.Context) { diff --git a/internal/rpc/group/group.go b/internal/rpc/group/group.go index 4bb29db9c..615e69efa 100644 --- a/internal/rpc/group/group.go +++ b/internal/rpc/group/group.go @@ -478,11 +478,10 @@ 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("QuitGroup args ", req.String()) - + log.NewError(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) + log.NewError(req.OperationID, "GetGroupMemberInfoByGroupIDAndUserID failed ", err.Error(), req.GroupID, req.OpUserID) return &pbGroup.QuitGroupResp{CommonResp: &pbGroup.CommonResp{ErrCode: constant.ErrDB.ErrCode, ErrMsg: constant.ErrDB.ErrMsg}}, nil } @@ -499,7 +498,7 @@ func (s *groupServer) QuitGroup(ctx context.Context, req *pbGroup.QuitGroupReq) } chat.MemberLeaveNotification(req) - log.NewInfo(req.OperationID, "rpc QuitGroup return ") + 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 } From 2725a1cd8d367a07b5cf48b4a28caca8a551c912 Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Thu, 30 Dec 2021 09:30:46 +0800 Subject: [PATCH 374/814] Refactor code --- pkg/common/db/mysql_model/im_mysql_model/group_member_model.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkg/common/db/mysql_model/im_mysql_model/group_member_model.go b/pkg/common/db/mysql_model/im_mysql_model/group_member_model.go index 94581eb0f..0c25a7003 100644 --- a/pkg/common/db/mysql_model/im_mysql_model/group_member_model.go +++ b/pkg/common/db/mysql_model/im_mysql_model/group_member_model.go @@ -91,7 +91,7 @@ func DeleteGroupMemberByGroupIDAndUserID(groupID, userID string) error { if err != nil { return err } - err = dbConn.Table("group_member").Where("group_id=? and user_id=? limit 1", groupID, userID).Delete(&GroupMember{}).Error + err = dbConn.Table("group_member").Where("group_id=? and user_id=? ", groupID, userID).Delete(&GroupMember{}).Error if err != nil { return err } From 3f639e2ffe0254fccfdf0ddba44d631a97920833 Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Thu, 30 Dec 2021 09:33:51 +0800 Subject: [PATCH 375/814] Refactor code --- pkg/common/db/mysql_model/im_mysql_model/group_member_model.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkg/common/db/mysql_model/im_mysql_model/group_member_model.go b/pkg/common/db/mysql_model/im_mysql_model/group_member_model.go index 0c25a7003..7e4afb402 100644 --- a/pkg/common/db/mysql_model/im_mysql_model/group_member_model.go +++ b/pkg/common/db/mysql_model/im_mysql_model/group_member_model.go @@ -116,7 +116,7 @@ func GetOwnerManagerByGroupID(groupID string) ([]GroupMember, error) { return nil, err } var groupMemberList []GroupMember - err = dbConn.Table("group_member").Where("group_id=? and role_level>0", groupID).Find(&groupMemberList).Error + err = dbConn.Table("group_member").Where("group_id=? and role_level>?", groupID, constant.GroupOrdinaryUsers).Find(&groupMemberList).Error if err != nil { return nil, err } From 5ae6e985728eedb36acdb97f6f4eaa12f12356d2 Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Thu, 30 Dec 2021 09:34:19 +0800 Subject: [PATCH 376/814] Refactor code --- cmd/open_im_api/main.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cmd/open_im_api/main.go b/cmd/open_im_api/main.go index 6768191a8..fd703657f 100644 --- a/cmd/open_im_api/main.go +++ b/cmd/open_im_api/main.go @@ -50,7 +50,7 @@ func main() { groupRouterGroup.POST("/create_group", group.CreateGroup) //1 groupRouterGroup.POST("/set_group_info", group.SetGroupInfo) //1 groupRouterGroup.POST("join_group", group.JoinGroup) - groupRouterGroup.POST("/quit_group", group.QuitGroup) + groupRouterGroup.POST("/quit_group", group.QuitGroup) //1 groupRouterGroup.POST("/group_application_response", group.ApplicationGroupResponse) groupRouterGroup.POST("/transfer_group", group.TransferGroupOwner) groupRouterGroup.POST("/get_group_applicationList", group.GetGroupApplicationList) From 6d9ee74360eecd2352c4a1d98737700d3a23e0d0 Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Thu, 30 Dec 2021 09:38:07 +0800 Subject: [PATCH 377/814] Refactor code --- internal/rpc/group/group.go | 2 +- .../db/mysql_model/im_mysql_model/group_request_model.go | 7 +++---- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/internal/rpc/group/group.go b/internal/rpc/group/group.go index 615e69efa..a959778af 100644 --- a/internal/rpc/group/group.go +++ b/internal/rpc/group/group.go @@ -453,7 +453,7 @@ func (s *groupServer) JoinGroup(ctx context.Context, req *pbGroup.JoinGroupReq) log.NewInfo(req.OperationID, "JoinGroup args ", req.String()) _, err := imdb.GetUserByUserID(req.OpUserID) if err != nil { - log.NewError(req.OperationID, "FindUserByUID failed ", err.Error(), req.OpUserID) + log.NewError(req.OperationID, "GetUserByUserID failed ", err.Error(), req.OpUserID) return &pbGroup.JoinGroupResp{CommonResp: &pbGroup.CommonResp{ErrCode: constant.ErrDB.ErrCode, ErrMsg: constant.ErrDB.ErrMsg}}, nil } diff --git a/pkg/common/db/mysql_model/im_mysql_model/group_request_model.go b/pkg/common/db/mysql_model/im_mysql_model/group_request_model.go index cd6cf641f..9e7266b02 100644 --- a/pkg/common/db/mysql_model/im_mysql_model/group_request_model.go +++ b/pkg/common/db/mysql_model/im_mysql_model/group_request_model.go @@ -23,11 +23,10 @@ func UpdateGroupRequest(groupRequest GroupRequest) error { if err != nil { return err } - err = dbConn.Table("group_request").Where("group_id=? and user_id=?", groupRequest.GroupID, groupRequest.UserID).Update(&groupRequest).Error - if err != nil { - return err + //RowsAffected + if dbConn.Table("group_request").Where("group_id=? and user_id=?", groupRequest.GroupID, groupRequest.UserID).Update(&groupRequest).RowsAffected == 0 { + return InsertIntoGroupRequest(groupRequest) } - return nil } func InsertIntoGroupRequest(toInsertInfo GroupRequest) error { From c0172b0a49a3c2371067de18a3f85f1f9b48db9a Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Thu, 30 Dec 2021 09:39:37 +0800 Subject: [PATCH 378/814] Refactor code --- pkg/common/db/mysql_model/im_mysql_model/group_request_model.go | 2 ++ 1 file changed, 2 insertions(+) diff --git a/pkg/common/db/mysql_model/im_mysql_model/group_request_model.go b/pkg/common/db/mysql_model/im_mysql_model/group_request_model.go index 9e7266b02..c96d1bf63 100644 --- a/pkg/common/db/mysql_model/im_mysql_model/group_request_model.go +++ b/pkg/common/db/mysql_model/im_mysql_model/group_request_model.go @@ -26,6 +26,8 @@ func UpdateGroupRequest(groupRequest GroupRequest) error { //RowsAffected if dbConn.Table("group_request").Where("group_id=? and user_id=?", groupRequest.GroupID, groupRequest.UserID).Update(&groupRequest).RowsAffected == 0 { return InsertIntoGroupRequest(groupRequest) + } else { + return nil } } From 83874ad4666415309c700e05aa56d0803bd183ab Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Thu, 30 Dec 2021 09:46:53 +0800 Subject: [PATCH 379/814] Refactor code --- pkg/common/db/mysql_model/im_mysql_model/model_struct.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkg/common/db/mysql_model/im_mysql_model/model_struct.go b/pkg/common/db/mysql_model/im_mysql_model/model_struct.go index 8c228cae0..d47ca5334 100644 --- a/pkg/common/db/mysql_model/im_mysql_model/model_struct.go +++ b/pkg/common/db/mysql_model/im_mysql_model/model_struct.go @@ -118,7 +118,7 @@ type GroupRequest struct { GroupID string `gorm:"column:group_id;primaryKey;"` HandleResult int32 `gorm:"column:handle_result"` ReqMsg string `gorm:"column:req_msg"` - HandledMsg string `gorm:"column:handled_msg"` + HandledMsg string `gorm:"column:handle_msg"` ReqTime time.Time `gorm:"column:req_time"` HandleUserID string `gorm:"column:handle_user_id"` HandledTime time.Time `gorm:"column:handle_time"` From b687eb09b4fa573bceefeee1f78814f473c0750b Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Thu, 30 Dec 2021 10:14:30 +0800 Subject: [PATCH 380/814] Refactor code --- internal/rpc/group/group.go | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/internal/rpc/group/group.go b/internal/rpc/group/group.go index a959778af..a58e6728a 100644 --- a/internal/rpc/group/group.go +++ b/internal/rpc/group/group.go @@ -458,7 +458,10 @@ func (s *groupServer) JoinGroup(ctx context.Context, req *pbGroup.JoinGroupReq) } var groupRequest imdb.GroupRequest - utils.CopyStructFields(&groupRequest, req) + groupRequest.UserID = req.OpUserID + groupRequest.ReqMsg = req.ReqMessage + groupRequest.GroupID = req.GroupID + err = imdb.UpdateGroupRequest(groupRequest) if err != nil { log.NewError(req.OperationID, "UpdateGroupRequest ", err.Error(), groupRequest) From cb79b1aea5abfb1ee0a35a2ff55fe5e2cc0481f0 Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Thu, 30 Dec 2021 10:18:49 +0800 Subject: [PATCH 381/814] Refactor code --- .../db/mysql_model/im_mysql_model/group_request_model.go | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/pkg/common/db/mysql_model/im_mysql_model/group_request_model.go b/pkg/common/db/mysql_model/im_mysql_model/group_request_model.go index c96d1bf63..76545c35d 100644 --- a/pkg/common/db/mysql_model/im_mysql_model/group_request_model.go +++ b/pkg/common/db/mysql_model/im_mysql_model/group_request_model.go @@ -3,6 +3,7 @@ package im_mysql_model import ( "Open_IM/pkg/common/constant" "Open_IM/pkg/common/db" + "Open_IM/pkg/utils" "time" ) @@ -23,6 +24,12 @@ func UpdateGroupRequest(groupRequest GroupRequest) error { if err != nil { return err } + groupRequest.ReqTime = time.Now() + + if groupRequest.HandledTime.Unix() < 0 { + groupRequest.HandledTime = utils.UnixSecondToTime(0) + } + //RowsAffected if dbConn.Table("group_request").Where("group_id=? and user_id=?", groupRequest.GroupID, groupRequest.UserID).Update(&groupRequest).RowsAffected == 0 { return InsertIntoGroupRequest(groupRequest) From 7c3e429f22aa4ea42c471a226bd737f52df639ce Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Thu, 30 Dec 2021 10:20:16 +0800 Subject: [PATCH 382/814] Refactor code --- .../db/mysql_model/im_mysql_model/group_request_model.go | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/pkg/common/db/mysql_model/im_mysql_model/group_request_model.go b/pkg/common/db/mysql_model/im_mysql_model/group_request_model.go index 76545c35d..e90c2cdd5 100644 --- a/pkg/common/db/mysql_model/im_mysql_model/group_request_model.go +++ b/pkg/common/db/mysql_model/im_mysql_model/group_request_model.go @@ -24,7 +24,6 @@ func UpdateGroupRequest(groupRequest GroupRequest) error { if err != nil { return err } - groupRequest.ReqTime = time.Now() if groupRequest.HandledTime.Unix() < 0 { groupRequest.HandledTime = utils.UnixSecondToTime(0) @@ -43,7 +42,12 @@ func InsertIntoGroupRequest(toInsertInfo GroupRequest) error { if err != nil { return err } - toInsertInfo.HandledTime = time.Now() + + toInsertInfo.ReqTime = time.Now() + if toInsertInfo.HandledTime.Unix() < 0 { + toInsertInfo.HandledTime = utils.UnixSecondToTime(0) + } + err = dbConn.Table("group_request").Create(&toInsertInfo).Error if err != nil { return err From 68985e9edae1d19672c26b5db1299856e6fa7a04 Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Thu, 30 Dec 2021 10:30:47 +0800 Subject: [PATCH 383/814] log add --- internal/msg_gateway/gate/ws_server.go | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/internal/msg_gateway/gate/ws_server.go b/internal/msg_gateway/gate/ws_server.go index 150a11b64..88fad8c0c 100644 --- a/internal/msg_gateway/gate/ws_server.go +++ b/internal/msg_gateway/gate/ws_server.go @@ -183,7 +183,7 @@ func (ws *WServer) addUserConn(uid string, platformID int32, conn *UserConn, tok for _, v := range ws.wsUserToConn { count = count + len(v) } - log.WarnByKv("WS Add operation", "", "wsUser added", ws.wsUserToConn, "uid", uid, "online_user_num", len(ws.wsUserToConn), "online_conn_num", count) + log.WarnByKv("WS Add operation", "", "wsUser added", ws.wsUserToConn, "connection_uid", uid, "connection_platform", constant.PlatformIDToName(platformID), "online_user_num", len(ws.wsUserToConn), "online_conn_num", count) } @@ -206,9 +206,9 @@ func (ws *WServer) delUserConn(conn *UserConn) { for _, v := range ws.wsUserToConn { count = count + len(v) } - log.WarnByKv("WS delete operation", "", "wsUser deleted", ws.wsUserToConn, "uid", uid, "online_user_num", len(ws.wsUserToConn), "online_conn_num", count) + log.WarnByKv("WS delete operation", "", "wsUser deleted", ws.wsUserToConn, "disconnection_uid", uid, "disconnection_platform", platform, "online_user_num", len(ws.wsUserToConn), "online_conn_num", count) } else { - log.WarnByKv("WS delete operation", "", "wsUser deleted", ws.wsUserToConn, "uid", uid, "online_user_num", len(ws.wsUserToConn)) + log.WarnByKv("WS delete operation", "", "wsUser deleted", ws.wsUserToConn, "disconnection_uid", uid, "disconnection_platform", platform, "online_user_num", len(ws.wsUserToConn)) } delete(ws.wsConnToUser, conn) @@ -272,7 +272,6 @@ func (ws *WServer) headerCheck(w http.ResponseWriter, r *http.Request) bool { http.Error(w, http.StatusText(status), status) return false } - } func genMapKey(uid string, platformID int32) string { return uid + " " + constant.PlatformIDToName(platformID) From 2936f886a974538b4ba57f438b2dc64e61287855 Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Thu, 30 Dec 2021 10:35:09 +0800 Subject: [PATCH 384/814] Refactor code --- cmd/open_im_api/main.go | 4 ++-- internal/api/group/group.go | 11 +++++++---- pkg/base_info/group_api_struct.go | 4 ++-- 3 files changed, 11 insertions(+), 8 deletions(-) diff --git a/cmd/open_im_api/main.go b/cmd/open_im_api/main.go index fd703657f..ea550d174 100644 --- a/cmd/open_im_api/main.go +++ b/cmd/open_im_api/main.go @@ -49,8 +49,8 @@ func main() { { groupRouterGroup.POST("/create_group", group.CreateGroup) //1 groupRouterGroup.POST("/set_group_info", group.SetGroupInfo) //1 - groupRouterGroup.POST("join_group", group.JoinGroup) - groupRouterGroup.POST("/quit_group", group.QuitGroup) //1 + groupRouterGroup.POST("join_group", group.JoinGroup) //1 + groupRouterGroup.POST("/quit_group", group.QuitGroup) //1 groupRouterGroup.POST("/group_application_response", group.ApplicationGroupResponse) groupRouterGroup.POST("/transfer_group", group.TransferGroupOwner) groupRouterGroup.POST("/get_group_applicationList", group.GetGroupApplicationList) diff --git a/internal/api/group/group.go b/internal/api/group/group.go index 8905b641d..87378cde6 100644 --- a/internal/api/group/group.go +++ b/internal/api/group/group.go @@ -258,7 +258,7 @@ func CreateGroup(c *gin.Context) { c.JSON(http.StatusOK, resp) } -//my application 我发出去的 +// 群主或管理员收到的 func GetGroupApplicationList(c *gin.Context) { params := api.GetGroupApplicationListReq{} if err := c.BindJSON(¶ms); err != nil { @@ -279,16 +279,19 @@ func GetGroupApplicationList(c *gin.Context) { etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImGroupName) client := rpc.NewGroupClient(etcdConn) - reply, err := client.GetGroupApplicationList(context.Background(), req) if err != nil { + log.NewError(req.OperationID, "GetGroupApplicationList failed ", err.Error(), req.String()) c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": err.Error()}) return } - resp := api.GetGroupApplicationListResp{CommResp: api.CommResp{ErrCode: reply.ErrCode, ErrMsg: reply.ErrMsg}, Data: reply.GroupRequestList} - c.JSON(http.StatusOK, resp) + resp := api.GetGroupApplicationListResp{CommResp: api.CommResp{ErrCode: reply.ErrCode, ErrMsg: reply.ErrMsg}, GroupRequestList: reply.GroupRequestList} + if len(resp.GroupRequestList) == 0 { + resp.GroupRequestList = []*open_im_sdk.GroupRequest{} + } log.NewInfo(req.OperationID, "GetGroupApplicationList api return ", resp) + c.JSON(http.StatusOK, resp) } func GetGroupsInfo(c *gin.Context) { diff --git a/pkg/base_info/group_api_struct.go b/pkg/base_info/group_api_struct.go index b232f389c..243dc4e2b 100644 --- a/pkg/base_info/group_api_struct.go +++ b/pkg/base_info/group_api_struct.go @@ -91,11 +91,11 @@ type CreateGroupResp struct { type GetGroupApplicationListReq struct { OperationID string `json:"operationID" binding:"required"` - FromUserID string `json:"fromUserID" binding:"required"` //my application + FromUserID string `json:"fromUserID" binding:"required"` //作为管理员或群主收到的 进群申请 } type GetGroupApplicationListResp struct { CommResp - Data []*open_im_sdk.GroupRequest `json:"data"` + GroupRequestList []*open_im_sdk.GroupRequest `json:"data"` } type GetGroupInfoReq struct { From 42c898d5aaa613fcccd07451744fd1c09dd4d281 Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Thu, 30 Dec 2021 10:36:37 +0800 Subject: [PATCH 385/814] Refactor code --- internal/rpc/group/group.go | 1 + 1 file changed, 1 insertion(+) diff --git a/internal/rpc/group/group.go b/internal/rpc/group/group.go index a58e6728a..891b9efe0 100644 --- a/internal/rpc/group/group.go +++ b/internal/rpc/group/group.go @@ -400,6 +400,7 @@ func (s *groupServer) GetGroupApplicationList(_ context.Context, req *pbGroup.Ge for _, v := range reply { var node open_im_sdk.GroupRequest utils.CopyStructFields(&node, v) + log.NewDebug(req.OperationID, "node ", node, "v ", v) } log.NewInfo(req.OperationID, "GetGroupMembersInfo rpc return ", resp) return &resp, nil From 6692867db5053fff59e5b7e23adec1095ee8cc7a Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Thu, 30 Dec 2021 10:49:09 +0800 Subject: [PATCH 386/814] Refactor code --- internal/rpc/group/group.go | 4 ++-- .../db/mysql_model/im_mysql_model/group_request_model.go | 4 ++++ 2 files changed, 6 insertions(+), 2 deletions(-) diff --git a/internal/rpc/group/group.go b/internal/rpc/group/group.go index 891b9efe0..7522b4f41 100644 --- a/internal/rpc/group/group.go +++ b/internal/rpc/group/group.go @@ -390,9 +390,9 @@ func (s *groupServer) GetGroupMembersInfo(ctx context.Context, req *pbGroup.GetG func (s *groupServer) GetGroupApplicationList(_ context.Context, req *pbGroup.GetGroupApplicationListReq) (*pbGroup.GetGroupApplicationListResp, error) { log.NewInfo(req.OperationID, "GetGroupMembersInfo args ", req.String()) - reply, err := im_mysql_model.GetGroupApplicationList(req.OpUserID) + reply, err := im_mysql_model.GetGroupApplicationList(req.FromUserID) if err != nil { - log.NewError(req.OperationID, "GetGroupApplicationList failed ", err.Error(), req.OpUserID) + log.NewError(req.OperationID, "GetGroupApplicationList failed ", err.Error(), req.FromUserID) return &pbGroup.GetGroupApplicationListResp{ErrCode: 701, ErrMsg: "GetGroupApplicationList failed"}, nil } diff --git a/pkg/common/db/mysql_model/im_mysql_model/group_request_model.go b/pkg/common/db/mysql_model/im_mysql_model/group_request_model.go index e90c2cdd5..8073c1cff 100644 --- a/pkg/common/db/mysql_model/im_mysql_model/group_request_model.go +++ b/pkg/common/db/mysql_model/im_mysql_model/group_request_model.go @@ -4,6 +4,7 @@ import ( "Open_IM/pkg/common/constant" "Open_IM/pkg/common/db" "Open_IM/pkg/utils" + "fmt" "time" ) @@ -104,9 +105,12 @@ func GetGroupApplicationList(userID string) ([]GroupRequest, error) { if v.RoleLevel > constant.GroupOrdinaryUsers { list, err := GetGroupRequestByGroupID(v.GroupID) if err != nil { + fmt.Println("111 GetGroupRequestByGroupID failed ", err.Error()) continue } + fmt.Println("222 GetGroupRequestByGroupID ok ", list) groupRequestList = append(groupRequestList, list...) + fmt.Println("333 GetGroupRequestByGroupID ok ", groupRequestList) } } return groupRequestList, nil From 88aaa38676a8fa04a2020311a04d5e64dc2e6db1 Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Thu, 30 Dec 2021 10:56:17 +0800 Subject: [PATCH 387/814] Refactor code --- internal/rpc/group/group.go | 4 +++- .../db/mysql_model/im_mysql_model/group_request_model.go | 6 +++--- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/internal/rpc/group/group.go b/internal/rpc/group/group.go index 7522b4f41..fa2972286 100644 --- a/internal/rpc/group/group.go +++ b/internal/rpc/group/group.go @@ -9,6 +9,7 @@ import ( imdb "Open_IM/pkg/common/db/mysql_model/im_mysql_model" "Open_IM/pkg/common/log" "Open_IM/pkg/common/token_verify" + cp "Open_IM/pkg/common/utils" "Open_IM/pkg/grpc-etcdv3/getcdv3" pbGroup "Open_IM/pkg/proto/group" open_im_sdk "Open_IM/pkg/proto/sdk_ws" @@ -396,10 +397,11 @@ func (s *groupServer) GetGroupApplicationList(_ context.Context, req *pbGroup.Ge return &pbGroup.GetGroupApplicationListResp{ErrCode: 701, ErrMsg: "GetGroupApplicationList failed"}, nil } + log.NewDebug(req.OperationID, "GetGroupApplicationList reply ", reply) resp := pbGroup.GetGroupApplicationListResp{} for _, v := range reply { var node open_im_sdk.GroupRequest - utils.CopyStructFields(&node, v) + cp.GroupRequestDBCopyOpenIM(&node, &v) log.NewDebug(req.OperationID, "node ", node, "v ", v) } log.NewInfo(req.OperationID, "GetGroupMembersInfo rpc return ", resp) diff --git a/pkg/common/db/mysql_model/im_mysql_model/group_request_model.go b/pkg/common/db/mysql_model/im_mysql_model/group_request_model.go index 8073c1cff..65268ae6a 100644 --- a/pkg/common/db/mysql_model/im_mysql_model/group_request_model.go +++ b/pkg/common/db/mysql_model/im_mysql_model/group_request_model.go @@ -105,12 +105,12 @@ func GetGroupApplicationList(userID string) ([]GroupRequest, error) { if v.RoleLevel > constant.GroupOrdinaryUsers { list, err := GetGroupRequestByGroupID(v.GroupID) if err != nil { - fmt.Println("111 GetGroupRequestByGroupID failed ", err.Error()) + // fmt.Println("111 GetGroupRequestByGroupID failed ", err.Error()) continue } - fmt.Println("222 GetGroupRequestByGroupID ok ", list) + // fmt.Println("222 GetGroupRequestByGroupID ok ", list) groupRequestList = append(groupRequestList, list...) - fmt.Println("333 GetGroupRequestByGroupID ok ", groupRequestList) + // fmt.Println("333 GetGroupRequestByGroupID ok ", groupRequestList) } } return groupRequestList, nil From e8ffcb0630823afb0558aa35ea093c63bad43ca7 Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Thu, 30 Dec 2021 10:59:25 +0800 Subject: [PATCH 388/814] Refactor code --- pkg/common/db/mysql_model/im_mysql_model/group_request_model.go | 1 - 1 file changed, 1 deletion(-) diff --git a/pkg/common/db/mysql_model/im_mysql_model/group_request_model.go b/pkg/common/db/mysql_model/im_mysql_model/group_request_model.go index 65268ae6a..5c7d3000b 100644 --- a/pkg/common/db/mysql_model/im_mysql_model/group_request_model.go +++ b/pkg/common/db/mysql_model/im_mysql_model/group_request_model.go @@ -4,7 +4,6 @@ import ( "Open_IM/pkg/common/constant" "Open_IM/pkg/common/db" "Open_IM/pkg/utils" - "fmt" "time" ) From 9f5897e06c9308a92bd5939a55acdac483eaa623 Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Thu, 30 Dec 2021 11:04:53 +0800 Subject: [PATCH 389/814] Refactor code --- internal/api/group/group.go | 9 ++++++--- pkg/base_info/group_api_struct.go | 2 +- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/internal/api/group/group.go b/internal/api/group/group.go index 87378cde6..9401304cb 100644 --- a/internal/api/group/group.go +++ b/internal/api/group/group.go @@ -302,7 +302,7 @@ func GetGroupsInfo(c *gin.Context) { return } req := &rpc.GetGroupsInfoReq{} - utils.CopyStructFields(req, params) + utils.CopyStructFields(req, ¶ms) var ok bool ok, req.OpUserID = token_verify.GetUserIDFromToken(c.Request.Header.Get("token")) if !ok { @@ -321,9 +321,12 @@ func GetGroupsInfo(c *gin.Context) { return } - resp := api.CommResp{ErrCode: RpcResp.ErrCode, ErrMsg: RpcResp.ErrMsg} - c.JSON(http.StatusOK, resp) + resp := api.GetGroupInfoResp{CommResp: api.CommResp{ErrCode: RpcResp.ErrCode, ErrMsg: RpcResp.ErrMsg}, GroupInfoList: RpcResp.GroupInfoList} + if len(resp.GroupInfoList) == 0 { + resp.GroupInfoList = []*open_im_sdk.GroupInfo{} + } log.NewInfo(req.OperationID, "GetGroupsInfo api return ", resp) + c.JSON(http.StatusOK, resp) } //process application diff --git a/pkg/base_info/group_api_struct.go b/pkg/base_info/group_api_struct.go index 243dc4e2b..e502ee10d 100644 --- a/pkg/base_info/group_api_struct.go +++ b/pkg/base_info/group_api_struct.go @@ -104,7 +104,7 @@ type GetGroupInfoReq struct { } type GetGroupInfoResp struct { CommResp - Data []open_im_sdk.GroupInfo `json:"data"` + GroupInfoList []*open_im_sdk.GroupInfo `json:"data"` } type ApplicationGroupResponseReq struct { From b32567681ff53c2245839b74b347354691d80715 Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Thu, 30 Dec 2021 11:07:12 +0800 Subject: [PATCH 390/814] Refactor code --- internal/rpc/group/group.go | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/internal/rpc/group/group.go b/internal/rpc/group/group.go index fa2972286..e281a8541 100644 --- a/internal/rpc/group/group.go +++ b/internal/rpc/group/group.go @@ -418,8 +418,7 @@ func (s *groupServer) GetGroupsInfo(ctx context.Context, req *pbGroup.GetGroupsI continue } var groupInfo open_im_sdk.GroupInfo - utils.CopyStructFields(&groupInfo, groupInfoFromMysql) - groupInfo.CreateTime = groupInfoFromMysql.CreateTime.Unix() + cp.GroupDBCopyOpenIM(&groupInfo, groupInfoFromMysql) groupsInfoList = append(groupsInfoList, &groupInfo) } From e90be1bb88886c0bcf74e1a7d68569a158718d19 Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Thu, 30 Dec 2021 11:13:19 +0800 Subject: [PATCH 391/814] Refactor code --- internal/rpc/group/group.go | 1 + 1 file changed, 1 insertion(+) diff --git a/internal/rpc/group/group.go b/internal/rpc/group/group.go index e281a8541..7a7dd5cf1 100644 --- a/internal/rpc/group/group.go +++ b/internal/rpc/group/group.go @@ -403,6 +403,7 @@ func (s *groupServer) GetGroupApplicationList(_ context.Context, req *pbGroup.Ge var node open_im_sdk.GroupRequest cp.GroupRequestDBCopyOpenIM(&node, &v) log.NewDebug(req.OperationID, "node ", node, "v ", v) + resp.GroupRequestList = append(resp.GroupRequestList, &node) } log.NewInfo(req.OperationID, "GetGroupMembersInfo rpc return ", resp) return &resp, nil From cc5125d51dbb0ed7e9bf19234d8947d8537c2140 Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Thu, 30 Dec 2021 11:28:24 +0800 Subject: [PATCH 392/814] Refactor code --- cmd/open_im_api/main.go | 4 ++-- pkg/base_info/group_api_struct.go | 14 +++++++------- 2 files changed, 9 insertions(+), 9 deletions(-) diff --git a/cmd/open_im_api/main.go b/cmd/open_im_api/main.go index ea550d174..510d8cf55 100644 --- a/cmd/open_im_api/main.go +++ b/cmd/open_im_api/main.go @@ -53,8 +53,8 @@ func main() { groupRouterGroup.POST("/quit_group", group.QuitGroup) //1 groupRouterGroup.POST("/group_application_response", group.ApplicationGroupResponse) groupRouterGroup.POST("/transfer_group", group.TransferGroupOwner) - groupRouterGroup.POST("/get_group_applicationList", group.GetGroupApplicationList) - groupRouterGroup.POST("/get_groups_info", group.GetGroupsInfo) + groupRouterGroup.POST("/get_group_applicationList", group.GetGroupApplicationList) //1 + groupRouterGroup.POST("/get_groups_info", group.GetGroupsInfo) //1 groupRouterGroup.POST("/kick_group", group.KickGroupMember) groupRouterGroup.POST("/get_group_member_list", group.GetGroupMemberList) groupRouterGroup.POST("/get_group_all_member_list", group.GetGroupAllMember) diff --git a/pkg/base_info/group_api_struct.go b/pkg/base_info/group_api_struct.go index e502ee10d..af109afdb 100644 --- a/pkg/base_info/group_api_struct.go +++ b/pkg/base_info/group_api_struct.go @@ -108,20 +108,20 @@ type GetGroupInfoResp struct { } type ApplicationGroupResponseReq struct { - OperationID string `json:"groupIDList" binding:"required"` - GroupID string `json:"groupIDList" binding:"required"` - FromUserID string `json:"groupIDList" binding:"required"` - HandledMsg string `json:"groupIDList" binding:"required"` - HandleResult int32 `json:"groupIDList" binding:"required"` + OperationID string `json:"operationID" binding:"required"` + GroupID string `json:"groupID" binding:"required"` + FromUserID string `json:"fromUserID" binding:"required"` + HandledMsg string `json:"handledMsg"` + HandleResult int32 `json:"handleResult" binding:"required"` } type ApplicationGroupResponseResp struct { CommResp } type JoinGroupReq struct { - GroupID string `json:"groupID"` + GroupID string `json:"groupID" binding:"required"` ReqMessage string `json:"reqMessage"` - OperationID string `json:"operationID"` + OperationID string `json:"operationID" binding:"required"` } type JoinGroupResp struct { CommResp From bd0596dd86dabdb8f2162fd34c17f1eeed73fbc5 Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Thu, 30 Dec 2021 11:35:48 +0800 Subject: [PATCH 393/814] err log --- internal/rpc/user/user.go | 1 + 1 file changed, 1 insertion(+) diff --git a/internal/rpc/user/user.go b/internal/rpc/user/user.go index 49f800242..910c9b5ab 100644 --- a/internal/rpc/user/user.go +++ b/internal/rpc/user/user.go @@ -150,6 +150,7 @@ func (s *userServer) DeleteUsers(_ context.Context, req *pbUser.DeleteUsersReq) for _, userID := range req.DeleteUserIDList { err := imdb.DeleteUser(userID) if err != nil { + log.NewError(req.OperationID, "delete user error", userID) common.ErrCode = 201 common.ErrMsg = "some uid deleted failed" resp.FailedUserIDList = append(resp.FailedUserIDList, userID) From 81aaa951705f5ef6866576d82f3a2617a4528bf3 Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Thu, 30 Dec 2021 11:42:10 +0800 Subject: [PATCH 394/814] Refactor code --- internal/api/group/group.go | 6 +++--- internal/rpc/group/group.go | 9 +++------ pkg/base_info/group_api_struct.go | 4 ++-- pkg/common/constant/constant.go | 3 +++ 4 files changed, 11 insertions(+), 11 deletions(-) diff --git a/internal/api/group/group.go b/internal/api/group/group.go index 9401304cb..c7297e083 100644 --- a/internal/api/group/group.go +++ b/internal/api/group/group.go @@ -338,7 +338,7 @@ func ApplicationGroupResponse(c *gin.Context) { return } req := &rpc.GroupApplicationResponseReq{} - utils.CopyStructFields(req, params) + utils.CopyStructFields(req, ¶ms) var ok bool ok, req.OpUserID = token_verify.GetUserIDFromToken(c.Request.Header.Get("token")) if !ok { @@ -357,9 +357,9 @@ func ApplicationGroupResponse(c *gin.Context) { return } - resp := api.CommResp{ErrCode: reply.CommonResp.ErrCode, ErrMsg: reply.CommonResp.ErrMsg} - c.JSON(http.StatusOK, resp) + resp := api.ApplicationGroupResponseResp{CommResp: api.CommResp{ErrCode: reply.CommonResp.ErrCode, ErrMsg: reply.CommonResp.ErrMsg}} log.NewInfo(req.OperationID, "ApplicationGroupResponse api return ", resp) + c.JSON(http.StatusOK, resp) } func JoinGroup(c *gin.Context) { diff --git a/internal/rpc/group/group.go b/internal/rpc/group/group.go index 7a7dd5cf1..e737fb163 100644 --- a/internal/rpc/group/group.go +++ b/internal/rpc/group/group.go @@ -432,23 +432,20 @@ func (s *groupServer) GroupApplicationResponse(_ context.Context, req *pbGroup.G log.NewInfo(req.OperationID, "GroupApplicationResponse args ", req.String()) groupRequest := imdb.GroupRequest{} + utils.CopyStructFields(&groupRequest, req) groupRequest.UserID = req.FromUserID - groupRequest.GroupID = req.GroupID - groupRequest.HandledTime = time.Now() - groupRequest.HandleResult = req.HandleResult groupRequest.HandleUserID = req.OpUserID - groupRequest.HandledMsg = req.HandledMsg err := imdb.UpdateGroupRequest(groupRequest) if err != nil { log.NewError(req.OperationID, "GroupApplicationResponse failed ", err.Error(), req.String()) return &pbGroup.GroupApplicationResponseResp{CommonResp: &pbGroup.CommonResp{ErrCode: constant.ErrDB.ErrCode, ErrMsg: constant.ErrDB.ErrMsg}}, nil } chat.ApplicationProcessedNotification(req) - if req.HandleResult == 1 { + if req.HandleResult == constant.GroupResponseAgree { chat.MemberEnterNotification(req) } - log.NewInfo(req.OperationID, "rpc GroupApplicationResponse return ") + log.NewInfo(req.OperationID, "rpc GroupApplicationResponse return ", pbGroup.GroupApplicationResponseResp{CommonResp: &pbGroup.CommonResp{}}) return &pbGroup.GroupApplicationResponseResp{CommonResp: &pbGroup.CommonResp{}}, nil } diff --git a/pkg/base_info/group_api_struct.go b/pkg/base_info/group_api_struct.go index af109afdb..f6a5ef86f 100644 --- a/pkg/base_info/group_api_struct.go +++ b/pkg/base_info/group_api_struct.go @@ -110,9 +110,9 @@ type GetGroupInfoResp struct { type ApplicationGroupResponseReq struct { OperationID string `json:"operationID" binding:"required"` GroupID string `json:"groupID" binding:"required"` - FromUserID string `json:"fromUserID" binding:"required"` + FromUserID string `json:"fromUserID" binding:"required"` //application from FromUserID HandledMsg string `json:"handledMsg"` - HandleResult int32 `json:"handleResult" binding:"required"` + HandleResult int32 `json:"handleResult" binding:"required, oneof=-1 1"` } type ApplicationGroupResponseResp struct { CommResp diff --git a/pkg/common/constant/constant.go b/pkg/common/constant/constant.go index aa2f12c45..636096176 100644 --- a/pkg/common/constant/constant.go +++ b/pkg/common/constant/constant.go @@ -125,6 +125,9 @@ const ( GroupOwner = 2 GroupAdmin = 3 + GroupResponseAgree = 1 + GroupResponseRefuse = -1 + Male = 1 Female = 2 ) From 6790d2be44aa9776fc9b12bb2a158009a799288e Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Thu, 30 Dec 2021 11:50:20 +0800 Subject: [PATCH 395/814] err log --- internal/rpc/user/user.go | 4 ++-- pkg/common/db/mysql_model/im_mysql_model/user_model.go | 8 ++++---- 2 files changed, 6 insertions(+), 6 deletions(-) diff --git a/internal/rpc/user/user.go b/internal/rpc/user/user.go index 910c9b5ab..bcdea833f 100644 --- a/internal/rpc/user/user.go +++ b/internal/rpc/user/user.go @@ -148,8 +148,8 @@ func (s *userServer) DeleteUsers(_ context.Context, req *pbUser.DeleteUsersReq) var common pbUser.CommonResp resp := pbUser.DeleteUsersResp{CommonResp: &common} for _, userID := range req.DeleteUserIDList { - err := imdb.DeleteUser(userID) - if err != nil { + i := imdb.DeleteUser(userID) + if i == 0 { log.NewError(req.OperationID, "delete user error", userID) common.ErrCode = 201 common.ErrMsg = "some uid deleted failed" 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 42d573b5e..6c9069558 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 @@ -62,13 +62,13 @@ func UserRegister(user User) error { // CreateTime time.Time `gorm:"column:create_time"` //} -func DeleteUser(userID string) error { +func DeleteUser(userID string) (i int64) { dbConn, err := db.DB.MysqlDB.DefaultGormDB() if err != nil { - return err + return 0 } - err = dbConn.Table("user").Where("user_id=?", userID).Delete(User{}).Error - return err + i = dbConn.Table("user").Where("user_id=?", userID).Delete(User{}).RowsAffected + return i } func GetUserByUserID(userID string) (*User, error) { From 097144528968c36687a59c67661a8f19209ca453 Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Thu, 30 Dec 2021 11:53:50 +0800 Subject: [PATCH 396/814] Refactor code --- pkg/base_info/group_api_struct.go | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/pkg/base_info/group_api_struct.go b/pkg/base_info/group_api_struct.go index f6a5ef86f..9611dfac0 100644 --- a/pkg/base_info/group_api_struct.go +++ b/pkg/base_info/group_api_struct.go @@ -108,11 +108,12 @@ type GetGroupInfoResp struct { } type ApplicationGroupResponseReq struct { - OperationID string `json:"operationID" binding:"required"` - GroupID string `json:"groupID" binding:"required"` - FromUserID string `json:"fromUserID" binding:"required"` //application from FromUserID - HandledMsg string `json:"handledMsg"` - HandleResult int32 `json:"handleResult" binding:"required, oneof=-1 1"` + OperationID string `json:"operationID" binding:"required"` + GroupID string `json:"groupID" binding:"required"` + FromUserID string `json:"fromUserID" binding:"required"` //application from FromUserID + HandledMsg string `json:"handledMsg"` + //`json:"flag" binding:"required,oneof=-1 0 1"` + HandleResult int32 `json:"handleResult" binding:"required,oneof=-1 1"` } type ApplicationGroupResponseResp struct { CommResp From 4336a1a13e4950ab16c13c62f4d76fc7cf60cced Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Thu, 30 Dec 2021 12:05:10 +0800 Subject: [PATCH 397/814] Refactor code --- internal/rpc/group/group.go | 5 +++++ pkg/base_info/group_api_struct.go | 11 +++++------ .../im_mysql_model/group_member_model.go | 13 +++++++++++++ 3 files changed, 23 insertions(+), 6 deletions(-) diff --git a/internal/rpc/group/group.go b/internal/rpc/group/group.go index e737fb163..306c409d1 100644 --- a/internal/rpc/group/group.go +++ b/internal/rpc/group/group.go @@ -435,6 +435,11 @@ func (s *groupServer) GroupApplicationResponse(_ context.Context, req *pbGroup.G utils.CopyStructFields(&groupRequest, req) groupRequest.UserID = req.FromUserID groupRequest.HandleUserID = req.OpUserID + + if !token_verify.IsMangerUserID(req.OpUserID) && !imdb.IsGroupOwnerAdmin(req.GroupID, req.OpUserID) { + log.NewError(req.OperationID, "IsMangerUserID IsGroupOwnerAdmin false ", req.GroupID, req.OpUserID) + return &pbGroup.GroupApplicationResponseResp{CommonResp: &pbGroup.CommonResp{ErrCode: constant.ErrAccess.ErrCode, ErrMsg: constant.ErrAccess.ErrMsg}}, nil + } err := imdb.UpdateGroupRequest(groupRequest) if err != nil { log.NewError(req.OperationID, "GroupApplicationResponse failed ", err.Error(), req.String()) diff --git a/pkg/base_info/group_api_struct.go b/pkg/base_info/group_api_struct.go index 9611dfac0..fd4c8206b 100644 --- a/pkg/base_info/group_api_struct.go +++ b/pkg/base_info/group_api_struct.go @@ -108,12 +108,11 @@ type GetGroupInfoResp struct { } type ApplicationGroupResponseReq struct { - OperationID string `json:"operationID" binding:"required"` - GroupID string `json:"groupID" binding:"required"` - FromUserID string `json:"fromUserID" binding:"required"` //application from FromUserID - HandledMsg string `json:"handledMsg"` - //`json:"flag" binding:"required,oneof=-1 0 1"` - HandleResult int32 `json:"handleResult" binding:"required,oneof=-1 1"` + OperationID string `json:"operationID" binding:"required"` + GroupID string `json:"groupID" binding:"required"` + FromUserID string `json:"fromUserID" binding:"required"` //application from FromUserID + HandledMsg string `json:"handledMsg"` + HandleResult int32 `json:"handleResult" binding:"required,oneof=-1 1"` } type ApplicationGroupResponseResp struct { CommResp diff --git a/pkg/common/db/mysql_model/im_mysql_model/group_member_model.go b/pkg/common/db/mysql_model/im_mysql_model/group_member_model.go index 7e4afb402..95f4c5723 100644 --- a/pkg/common/db/mysql_model/im_mysql_model/group_member_model.go +++ b/pkg/common/db/mysql_model/im_mysql_model/group_member_model.go @@ -210,6 +210,19 @@ func GetJoinedGroupIDListByUserID(userID string) ([]string, error) { return groupIDList, nil } +func IsGroupOwnerAdmin(groupID, UserID string) bool { + groupMemberList, err := GetOwnerManagerByGroupID(groupID) + if err != nil { + return false + } + for _, v := range groupMemberList { + if v.UserID == UserID && v.RoleLevel > constant.GroupOrdinaryUsers { + return true + } + } + return false +} + // //func SelectGroupList(groupID string) ([]string, error) { // var groupUserID string From 7574d06718cf256f622b1187c9777950d9ccd06e Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Thu, 30 Dec 2021 12:07:13 +0800 Subject: [PATCH 398/814] Refactor code --- .../db/mysql_model/im_mysql_model/group_request_model.go | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/pkg/common/db/mysql_model/im_mysql_model/group_request_model.go b/pkg/common/db/mysql_model/im_mysql_model/group_request_model.go index 5c7d3000b..307dac166 100644 --- a/pkg/common/db/mysql_model/im_mysql_model/group_request_model.go +++ b/pkg/common/db/mysql_model/im_mysql_model/group_request_model.go @@ -24,16 +24,15 @@ func UpdateGroupRequest(groupRequest GroupRequest) error { if err != nil { return err } - if groupRequest.HandledTime.Unix() < 0 { groupRequest.HandledTime = utils.UnixSecondToTime(0) } - + t := dbConn.Table("group_request").Where("group_id=? and user_id=?", groupRequest.GroupID, groupRequest.UserID).Update(&groupRequest) //RowsAffected - if dbConn.Table("group_request").Where("group_id=? and user_id=?", groupRequest.GroupID, groupRequest.UserID).Update(&groupRequest).RowsAffected == 0 { + if t.RowsAffected == 0 { return InsertIntoGroupRequest(groupRequest) } else { - return nil + return t.Error } } From 89d69a8fb60a95030edae1900633c95932246165 Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Thu, 30 Dec 2021 12:27:26 +0800 Subject: [PATCH 399/814] Refactor code --- internal/api/group/group.go | 2 ++ internal/rpc/group/group.go | 22 ++++++++++++++++++++++ 2 files changed, 24 insertions(+) diff --git a/internal/api/group/group.go b/internal/api/group/group.go index c7297e083..a7a7b86a3 100644 --- a/internal/api/group/group.go +++ b/internal/api/group/group.go @@ -3,6 +3,8 @@ package group import ( api "Open_IM/pkg/base_info" "Open_IM/pkg/common/config" + "Open_IM/pkg/common/constant" + imdb "Open_IM/pkg/common/db/mysql_model/im_mysql_model" "Open_IM/pkg/common/log" "Open_IM/pkg/common/token_verify" "Open_IM/pkg/grpc-etcdv3/getcdv3" diff --git a/internal/rpc/group/group.go b/internal/rpc/group/group.go index 306c409d1..8599ee6c2 100644 --- a/internal/rpc/group/group.go +++ b/internal/rpc/group/group.go @@ -447,6 +447,28 @@ func (s *groupServer) GroupApplicationResponse(_ context.Context, req *pbGroup.G } chat.ApplicationProcessedNotification(req) if req.HandleResult == constant.GroupResponseAgree { + + if req.HandleResult == constant.GroupResponseAgree { + user, err := imdb.GetUserByUserID(req.FromUserID) + if err != nil { + log.NewError(req.OperationID, "GroupApplicationResponse failed ", err.Error(), req.FromUserID) + return &pbGroup.GroupApplicationResponseResp{CommonResp: &pbGroup.CommonResp{ErrCode: constant.ErrDB.ErrCode, ErrMsg: constant.ErrDB.ErrMsg}}, nil + } + member := imdb.GroupMember{} + member.GroupID = req.GroupID + member.UserID = req.FromUserID + member.RoleLevel = constant.GroupOrdinaryUsers + member.OperatorUserID = req.OpUserID + member.FaceUrl = user.FaceUrl + member.Nickname = user.Nickname + + err = imdb.InsertIntoGroupMember(member) + if err != nil { + log.NewError(req.OperationID, "GroupApplicationResponse failed ", err.Error(), req.FromUserID) + return &pbGroup.GroupApplicationResponseResp{CommonResp: &pbGroup.CommonResp{ErrCode: constant.ErrDB.ErrCode, ErrMsg: constant.ErrDB.ErrMsg}}, nil + } + } + chat.MemberEnterNotification(req) } From 0db7aca1cd1f7560d02968a5c8136036571f411a Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Thu, 30 Dec 2021 12:29:27 +0800 Subject: [PATCH 400/814] Refactor code --- internal/rpc/group/group.go | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/internal/rpc/group/group.go b/internal/rpc/group/group.go index 8599ee6c2..de1708140 100644 --- a/internal/rpc/group/group.go +++ b/internal/rpc/group/group.go @@ -464,11 +464,10 @@ func (s *groupServer) GroupApplicationResponse(_ context.Context, req *pbGroup.G err = imdb.InsertIntoGroupMember(member) if err != nil { - log.NewError(req.OperationID, "GroupApplicationResponse failed ", err.Error(), req.FromUserID) + log.NewError(req.OperationID, "GroupApplicationResponse failed ", err.Error(), member) return &pbGroup.GroupApplicationResponseResp{CommonResp: &pbGroup.CommonResp{ErrCode: constant.ErrDB.ErrCode, ErrMsg: constant.ErrDB.ErrMsg}}, nil } } - chat.MemberEnterNotification(req) } From 1eee8f439bd80111ce9868f90b81b72be2f7ca5d Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Thu, 30 Dec 2021 12:30:30 +0800 Subject: [PATCH 401/814] Refactor code --- internal/api/group/group.go | 2 -- 1 file changed, 2 deletions(-) diff --git a/internal/api/group/group.go b/internal/api/group/group.go index a7a7b86a3..c7297e083 100644 --- a/internal/api/group/group.go +++ b/internal/api/group/group.go @@ -3,8 +3,6 @@ package group import ( api "Open_IM/pkg/base_info" "Open_IM/pkg/common/config" - "Open_IM/pkg/common/constant" - imdb "Open_IM/pkg/common/db/mysql_model/im_mysql_model" "Open_IM/pkg/common/log" "Open_IM/pkg/common/token_verify" "Open_IM/pkg/grpc-etcdv3/getcdv3" From 1392a8ecf137924f070b618af137dbaeac76c5a4 Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Thu, 30 Dec 2021 13:26:07 +0800 Subject: [PATCH 402/814] Refactor code --- internal/rpc/group/group.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/internal/rpc/group/group.go b/internal/rpc/group/group.go index de1708140..48db23fc7 100644 --- a/internal/rpc/group/group.go +++ b/internal/rpc/group/group.go @@ -442,7 +442,7 @@ func (s *groupServer) GroupApplicationResponse(_ context.Context, req *pbGroup.G } err := imdb.UpdateGroupRequest(groupRequest) if err != nil { - log.NewError(req.OperationID, "GroupApplicationResponse failed ", err.Error(), req.String()) + log.NewError(req.OperationID, "GroupApplicationResponse failed ", err.Error(), groupRequest) return &pbGroup.GroupApplicationResponseResp{CommonResp: &pbGroup.CommonResp{ErrCode: constant.ErrDB.ErrCode, ErrMsg: constant.ErrDB.ErrMsg}}, nil } chat.ApplicationProcessedNotification(req) From 288f25c82703b7756c976aa2cf5c992ba15fd570 Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Thu, 30 Dec 2021 13:29:32 +0800 Subject: [PATCH 403/814] Refactor code --- internal/rpc/group/group.go | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/internal/rpc/group/group.go b/internal/rpc/group/group.go index 48db23fc7..b42badca2 100644 --- a/internal/rpc/group/group.go +++ b/internal/rpc/group/group.go @@ -435,13 +435,14 @@ func (s *groupServer) GroupApplicationResponse(_ context.Context, req *pbGroup.G utils.CopyStructFields(&groupRequest, req) groupRequest.UserID = req.FromUserID groupRequest.HandleUserID = req.OpUserID - + groupRequest.HandledTime = time.Now() if !token_verify.IsMangerUserID(req.OpUserID) && !imdb.IsGroupOwnerAdmin(req.GroupID, req.OpUserID) { log.NewError(req.OperationID, "IsMangerUserID IsGroupOwnerAdmin false ", req.GroupID, req.OpUserID) return &pbGroup.GroupApplicationResponseResp{CommonResp: &pbGroup.CommonResp{ErrCode: constant.ErrAccess.ErrCode, ErrMsg: constant.ErrAccess.ErrMsg}}, nil } err := imdb.UpdateGroupRequest(groupRequest) if err != nil { + //{openIM002 7836e478bc43ce1d3b8889cac983f59b 1 ok 0001-01-01 00:00:00 +0000 UTC openIM001 0001-01-01 00:00:00 +0000 UTC } log.NewError(req.OperationID, "GroupApplicationResponse failed ", err.Error(), groupRequest) return &pbGroup.GroupApplicationResponseResp{CommonResp: &pbGroup.CommonResp{ErrCode: constant.ErrDB.ErrCode, ErrMsg: constant.ErrDB.ErrMsg}}, nil } From 2f62339f0c5163c08dd87da04ae14256426c4a88 Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Thu, 30 Dec 2021 13:39:36 +0800 Subject: [PATCH 404/814] Refactor code --- cmd/open_im_api/main.go | 10 +++++----- internal/api/group/group.go | 7 ++++--- internal/rpc/group/group.go | 8 +++++--- pkg/base_info/group_api_struct.go | 3 +++ 4 files changed, 17 insertions(+), 11 deletions(-) diff --git a/cmd/open_im_api/main.go b/cmd/open_im_api/main.go index 510d8cf55..a3a2c2c40 100644 --- a/cmd/open_im_api/main.go +++ b/cmd/open_im_api/main.go @@ -47,11 +47,11 @@ func main() { //group related routing group groupRouterGroup := r.Group("/group") { - groupRouterGroup.POST("/create_group", group.CreateGroup) //1 - groupRouterGroup.POST("/set_group_info", group.SetGroupInfo) //1 - groupRouterGroup.POST("join_group", group.JoinGroup) //1 - groupRouterGroup.POST("/quit_group", group.QuitGroup) //1 - groupRouterGroup.POST("/group_application_response", group.ApplicationGroupResponse) + groupRouterGroup.POST("/create_group", group.CreateGroup) //1 + groupRouterGroup.POST("/set_group_info", group.SetGroupInfo) //1 + groupRouterGroup.POST("join_group", group.JoinGroup) //1 + groupRouterGroup.POST("/quit_group", group.QuitGroup) //1 + groupRouterGroup.POST("/group_application_response", group.ApplicationGroupResponse) //1 groupRouterGroup.POST("/transfer_group", group.TransferGroupOwner) groupRouterGroup.POST("/get_group_applicationList", group.GetGroupApplicationList) //1 groupRouterGroup.POST("/get_groups_info", group.GetGroupsInfo) //1 diff --git a/internal/api/group/group.go b/internal/api/group/group.go index c7297e083..7fe82b1fe 100644 --- a/internal/api/group/group.go +++ b/internal/api/group/group.go @@ -464,7 +464,7 @@ func TransferGroupOwner(c *gin.Context) { return } req := &rpc.TransferGroupOwnerReq{} - utils.CopyStructFields(req, params) + utils.CopyStructFields(req, ¶ms) var ok bool ok, req.OpUserID = token_verify.GetUserIDFromToken(c.Request.Header.Get("token")) if !ok { @@ -483,7 +483,8 @@ func TransferGroupOwner(c *gin.Context) { return } - resp := api.CommResp{ErrCode: reply.CommonResp.ErrCode, ErrMsg: reply.CommonResp.ErrMsg} - c.JSON(http.StatusOK, resp) + resp := api.TransferGroupOwnerResp{CommResp: api.CommResp{ErrCode: reply.CommonResp.ErrCode, ErrMsg: reply.CommonResp.ErrMsg}} log.NewInfo(req.OperationID, "TransferGroupOwner api return ", resp) + c.JSON(http.StatusOK, resp) + } diff --git a/internal/rpc/group/group.go b/internal/rpc/group/group.go index b42badca2..fe34a7735 100644 --- a/internal/rpc/group/group.go +++ b/internal/rpc/group/group.go @@ -595,17 +595,19 @@ func (s *groupServer) TransferGroupOwner(_ context.Context, req *pbGroup.Transfe log.NewInfo(req.OperationID, "TransferGroupOwner ", req.String()) if req.OldOwnerUserID == req.NewOwnerUserID { - log.NewError(req.OperationID, "same owner ", req.String()) + log.NewError(req.OperationID, "same owner ", req.OldOwnerUserID, req.NewOwnerUserID) return &pbGroup.TransferGroupOwnerResp{CommonResp: &pbGroup.CommonResp{ErrCode: constant.ErrArgs.ErrCode, ErrMsg: constant.ErrArgs.ErrMsg}}, nil } - groupMemberInfo := imdb.GroupMember{GroupID: req.GroupID, UserID: req.OldOwnerUserID, RoleLevel: 0} + groupMemberInfo := imdb.GroupMember{GroupID: req.GroupID, UserID: req.OldOwnerUserID, RoleLevel: constant.GroupOrdinaryUsers} err := imdb.UpdateGroupMemberInfo(groupMemberInfo) if err != nil { + log.NewError(req.OperationID, "UpdateGroupMemberInfo failed ", groupMemberInfo) return &pbGroup.TransferGroupOwnerResp{CommonResp: &pbGroup.CommonResp{ErrCode: constant.ErrDB.ErrCode, ErrMsg: constant.ErrDB.ErrMsg}}, nil } - groupMemberInfo = imdb.GroupMember{GroupID: req.GroupID, UserID: req.NewOwnerUserID, RoleLevel: 1} + groupMemberInfo = imdb.GroupMember{GroupID: req.GroupID, UserID: req.NewOwnerUserID, RoleLevel: constant.GroupOwner} err = imdb.UpdateGroupMemberInfo(groupMemberInfo) if err != nil { + log.NewError(req.OperationID, "UpdateGroupMemberInfo failed ", groupMemberInfo) return &pbGroup.TransferGroupOwnerResp{CommonResp: &pbGroup.CommonResp{ErrCode: constant.ErrDB.ErrCode, ErrMsg: constant.ErrDB.ErrMsg}}, nil } changedType := int32(1) << 4 diff --git a/pkg/base_info/group_api_struct.go b/pkg/base_info/group_api_struct.go index fd4c8206b..f4c8fa666 100644 --- a/pkg/base_info/group_api_struct.go +++ b/pkg/base_info/group_api_struct.go @@ -149,3 +149,6 @@ type TransferGroupOwnerReq struct { NewOwnerUserID string `json:"newOwnerUserID" binding:"required"` OperationID string `json:"operationID" binding:"required"` } +type TransferGroupOwnerResp struct { + CommResp +} From 8b1a7def38f481eaf5b02e549353f0d15a7185cc Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Thu, 30 Dec 2021 13:49:39 +0800 Subject: [PATCH 405/814] Refactor code --- internal/rpc/friend/firend.go | 2 +- internal/rpc/group/group.go | 2 +- .../mysql_model/im_mysql_model/friend_request_model.go | 9 +++------ 3 files changed, 5 insertions(+), 8 deletions(-) diff --git a/internal/rpc/friend/firend.go b/internal/rpc/friend/firend.go index 378f3a911..f548a21b6 100644 --- a/internal/rpc/friend/firend.go +++ b/internal/rpc/friend/firend.go @@ -146,7 +146,7 @@ func (s *friendServer) AddFriend(ctx context.Context, req *pbFriend.AddFriendReq utils.CopyStructFields(&friendRequest, req.CommID) // {openIM001 openIM002 0 test add friend 0001-01-01 00:00:00 +0000 UTC 0001-01-01 00:00:00 +0000 UTC }] log.NewDebug(req.CommID.OperationID, "UpdateFriendApplication args ", friendRequest) - err := imdb.UpdateFriendApplication(&friendRequest) + err := imdb.InsertFriendApplication(&friendRequest) if err != nil { log.NewError(req.CommID.OperationID, "UpdateFriendApplication failed ", err.Error(), friendRequest) return &pbFriend.AddFriendResp{CommonResp: &pbFriend.CommonResp{ErrCode: constant.ErrDB.ErrCode, ErrMsg: constant.ErrDB.ErrMsg}}, nil diff --git a/internal/rpc/group/group.go b/internal/rpc/group/group.go index fe34a7735..2c747466d 100644 --- a/internal/rpc/group/group.go +++ b/internal/rpc/group/group.go @@ -95,7 +95,7 @@ func (s *groupServer) CreateGroup(ctx context.Context, req *pbGroup.CreateGroupR } //to group member - groupMember := imdb.GroupMember{GroupID: groupId, RoleLevel: constant.GroupOwner} + groupMember := imdb.GroupMember{GroupID: groupId, RoleLevel: constant.GroupOwner, OperatorUserID: req.OpUserID} utils.CopyStructFields(&groupMember, us) err = im_mysql_model.InsertIntoGroupMember(groupMember) if err != nil { diff --git a/pkg/common/db/mysql_model/im_mysql_model/friend_request_model.go b/pkg/common/db/mysql_model/im_mysql_model/friend_request_model.go index a8973c2e2..5e99dcf5d 100644 --- a/pkg/common/db/mysql_model/im_mysql_model/friend_request_model.go +++ b/pkg/common/db/mysql_model/im_mysql_model/friend_request_model.go @@ -66,12 +66,9 @@ func UpdateFriendApplication(friendRequest *FriendRequest) error { return err } friendRequest.CreateTime = time.Now() - if dbConn.Table("friend_request").Where("from_user_id=? and to_user_id=?", - friendRequest.FromUserID, friendRequest.ToUserID).Update(&friendRequest).RowsAffected == 0 { - return InsertFriendApplication(friendRequest) - } else { - return nil - } + + return dbConn.Table("friend_request").Where("from_user_id=? and to_user_id=?", + friendRequest.FromUserID, friendRequest.ToUserID).Update(&friendRequest).Error } func InsertFriendApplication(friendRequest *FriendRequest) error { From 492915567b007426a8523d2620286a3ef32f3a92 Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Thu, 30 Dec 2021 13:53:05 +0800 Subject: [PATCH 406/814] Refactor code --- internal/rpc/group/group.go | 2 +- .../db/mysql_model/im_mysql_model/group_request_model.go | 8 +------- 2 files changed, 2 insertions(+), 8 deletions(-) diff --git a/internal/rpc/group/group.go b/internal/rpc/group/group.go index 2c747466d..17228a4aa 100644 --- a/internal/rpc/group/group.go +++ b/internal/rpc/group/group.go @@ -489,7 +489,7 @@ func (s *groupServer) JoinGroup(ctx context.Context, req *pbGroup.JoinGroupReq) groupRequest.ReqMsg = req.ReqMessage groupRequest.GroupID = req.GroupID - err = imdb.UpdateGroupRequest(groupRequest) + err = imdb.InsertIntoGroupRequest(groupRequest) if err != nil { log.NewError(req.OperationID, "UpdateGroupRequest ", err.Error(), groupRequest) return &pbGroup.JoinGroupResp{CommonResp: &pbGroup.CommonResp{ErrCode: constant.ErrDB.ErrCode, ErrMsg: constant.ErrDB.ErrMsg}}, nil diff --git a/pkg/common/db/mysql_model/im_mysql_model/group_request_model.go b/pkg/common/db/mysql_model/im_mysql_model/group_request_model.go index 307dac166..9ccffeaba 100644 --- a/pkg/common/db/mysql_model/im_mysql_model/group_request_model.go +++ b/pkg/common/db/mysql_model/im_mysql_model/group_request_model.go @@ -27,13 +27,7 @@ func UpdateGroupRequest(groupRequest GroupRequest) error { if groupRequest.HandledTime.Unix() < 0 { groupRequest.HandledTime = utils.UnixSecondToTime(0) } - t := dbConn.Table("group_request").Where("group_id=? and user_id=?", groupRequest.GroupID, groupRequest.UserID).Update(&groupRequest) - //RowsAffected - if t.RowsAffected == 0 { - return InsertIntoGroupRequest(groupRequest) - } else { - return t.Error - } + return dbConn.Table("group_request").Where("group_id=? and user_id=?", groupRequest.GroupID, groupRequest.UserID).Update(&groupRequest).Error } func InsertIntoGroupRequest(toInsertInfo GroupRequest) error { From a031311ab523058190c5507a534b54a4eba4a708 Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Thu, 30 Dec 2021 14:03:55 +0800 Subject: [PATCH 407/814] Refactor code --- cmd/open_im_api/main.go | 6 +++--- internal/api/group/group.go | 14 +++++++++----- internal/rpc/group/group.go | 3 ++- pkg/base_info/group_api_struct.go | 10 +++------- 4 files changed, 17 insertions(+), 16 deletions(-) diff --git a/cmd/open_im_api/main.go b/cmd/open_im_api/main.go index a3a2c2c40..a737d4162 100644 --- a/cmd/open_im_api/main.go +++ b/cmd/open_im_api/main.go @@ -52,9 +52,9 @@ func main() { groupRouterGroup.POST("join_group", group.JoinGroup) //1 groupRouterGroup.POST("/quit_group", group.QuitGroup) //1 groupRouterGroup.POST("/group_application_response", group.ApplicationGroupResponse) //1 - groupRouterGroup.POST("/transfer_group", group.TransferGroupOwner) - groupRouterGroup.POST("/get_group_applicationList", group.GetGroupApplicationList) //1 - groupRouterGroup.POST("/get_groups_info", group.GetGroupsInfo) //1 + groupRouterGroup.POST("/transfer_group", group.TransferGroupOwner) //1 + groupRouterGroup.POST("/get_group_applicationList", group.GetGroupApplicationList) //1 + groupRouterGroup.POST("/get_groups_info", group.GetGroupsInfo) //1 groupRouterGroup.POST("/kick_group", group.KickGroupMember) groupRouterGroup.POST("/get_group_member_list", group.GetGroupMemberList) groupRouterGroup.POST("/get_group_all_member_list", group.GetGroupAllMember) diff --git a/internal/api/group/group.go b/internal/api/group/group.go index 7fe82b1fe..790836089 100644 --- a/internal/api/group/group.go +++ b/internal/api/group/group.go @@ -24,7 +24,7 @@ func KickGroupMember(c *gin.Context) { } req := &rpc.KickGroupMemberReq{} - utils.CopyStructFields(req, params) + utils.CopyStructFields(req, ¶ms) var ok bool ok, req.OpUserID = token_verify.GetUserIDFromToken(c.Request.Header.Get("token")) if !ok { @@ -39,7 +39,7 @@ func KickGroupMember(c *gin.Context) { client := rpc.NewGroupClient(etcdConn) RpcResp, err := client.KickGroupMember(context.Background(), req) if err != nil { - log.NewError(req.OperationID, "GetGroupMemberList failed ", err.Error()) + log.NewError(req.OperationID, "GetGroupMemberList failed ", err.Error(), req.String()) c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": err.Error()}) return } @@ -48,8 +48,12 @@ func KickGroupMember(c *gin.Context) { memberListResp.ErrMsg = RpcResp.ErrMsg memberListResp.ErrCode = RpcResp.ErrCode for _, v := range RpcResp.Id2ResultList { - memberListResp.Data = append(memberListResp.Data, &api.Id2Result{UserID: v.UserID, Result: v.Result}) + memberListResp.UserIDResultList = append(memberListResp.UserIDResultList, &api.UserIDResult{UserID: v.UserID, Result: v.Result}) } + if len(memberListResp.UserIDResultList) == 0 { + memberListResp.UserIDResultList = []*api.UserIDResult{} + } + log.NewInfo(req.OperationID, "KickGroupMember api return ", memberListResp) c.JSON(http.StatusOK, memberListResp) } @@ -180,7 +184,7 @@ func GetJoinedGroupList(c *gin.Context) { return } - GroupListResp := api.GetJoinedGroupListResp{CommResp: api.CommResp{ErrCode: RpcResp.ErrCode, ErrMsg: RpcResp.ErrMsg}, Data: RpcResp.GroupList} + GroupListResp := api.GetJoinedGroupListResp{CommResp: api.CommResp{ErrCode: RpcResp.ErrCode, ErrMsg: RpcResp.ErrMsg}, GroupInfoList: RpcResp.GroupList} c.JSON(http.StatusOK, GroupListResp) log.NewInfo(req.OperationID, "GetJoinedGroupList api return ", GroupListResp) } @@ -214,7 +218,7 @@ func InviteUserToGroup(c *gin.Context) { Resp := api.InviteUserToGroupResp{CommResp: api.CommResp{ErrCode: RpcResp.ErrCode, ErrMsg: RpcResp.ErrMsg}} for _, v := range RpcResp.Id2ResultList { - Resp.Data = append(Resp.Data, api.Id2Result{UserID: v.UserID, Result: v.Result}) + Resp.UserIDResultList = append(Resp.UserIDResultList, api.UserIDResult{UserID: v.UserID, Result: v.Result}) } c.JSON(http.StatusOK, Resp) log.NewInfo(req.OperationID, "InviteUserToGroup api return ", Resp) diff --git a/internal/rpc/group/group.go b/internal/rpc/group/group.go index 17228a4aa..525c4422f 100644 --- a/internal/rpc/group/group.go +++ b/internal/rpc/group/group.go @@ -300,7 +300,7 @@ func (s *groupServer) KickGroupMember(ctx context.Context, req *pbGroup.KickGrou ownerList, err := imdb.GetOwnerManagerByGroupID(req.GroupID) if err != nil { log.NewError(req.OperationID, "GetOwnerManagerByGroupId failed ", err.Error(), req.GroupID) - return &pbGroup.KickGroupMemberResp{ErrCode: constant.ErrAccess.ErrCode, ErrMsg: constant.ErrAccess.ErrMsg}, nil + return &pbGroup.KickGroupMemberResp{ErrCode: constant.ErrDB.ErrCode, ErrMsg: constant.ErrDB.ErrMsg}, nil } //op is group owner? var flag = 0 @@ -352,6 +352,7 @@ func (s *groupServer) KickGroupMember(ctx context.Context, req *pbGroup.KickGrou log.NewError(req.OperationID, "RemoveGroupMember failed ", err.Error(), req.GroupID, v) resp.Id2ResultList = append(resp.Id2ResultList, &pbGroup.Id2Result{UserID: v, Result: -1}) } else { + log.NewDebug(req.OperationID, "kicked ", v) resp.Id2ResultList = append(resp.Id2ResultList, &pbGroup.Id2Result{UserID: v, Result: 0}) okUserIDList = append(okUserIDList, v) } diff --git a/pkg/base_info/group_api_struct.go b/pkg/base_info/group_api_struct.go index f4c8fa666..7c14bb7b4 100644 --- a/pkg/base_info/group_api_struct.go +++ b/pkg/base_info/group_api_struct.go @@ -9,10 +9,6 @@ type CommResp struct { ErrCode int32 `json:"errCode"` ErrMsg string `json:"errMsg"` } -type Id2Result struct { - UserID string `json:"userID"` - Result int32 `json:"result"` -} type KickGroupMemberReq struct { GroupID string `json:"groupID" binding:"required"` @@ -22,7 +18,7 @@ type KickGroupMemberReq struct { } type KickGroupMemberResp struct { CommResp - Data []*Id2Result `json:"data"` + UserIDResultList []*UserIDResult `json:"data"` } type GetGroupMembersInfoReq struct { @@ -43,7 +39,7 @@ type InviteUserToGroupReq struct { } type InviteUserToGroupResp struct { CommResp - Data []Id2Result `json:"data"` + UserIDResultList []UserIDResult `json:"data"` } type GetJoinedGroupListReq struct { @@ -52,7 +48,7 @@ type GetJoinedGroupListReq struct { } type GetJoinedGroupListResp struct { CommResp - Data []*open_im_sdk.GroupInfo `json:"data"` + GroupInfoList []*open_im_sdk.GroupInfo `json:"data"` } type GetGroupMemberListReq struct { From 6d0f454e6aede1583ff5e05fd5d7dceeff13439e Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Thu, 30 Dec 2021 14:17:29 +0800 Subject: [PATCH 408/814] Refactor code --- cmd/open_im_api/main.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cmd/open_im_api/main.go b/cmd/open_im_api/main.go index a737d4162..f2a0a7793 100644 --- a/cmd/open_im_api/main.go +++ b/cmd/open_im_api/main.go @@ -55,7 +55,7 @@ func main() { groupRouterGroup.POST("/transfer_group", group.TransferGroupOwner) //1 groupRouterGroup.POST("/get_group_applicationList", group.GetGroupApplicationList) //1 groupRouterGroup.POST("/get_groups_info", group.GetGroupsInfo) //1 - groupRouterGroup.POST("/kick_group", group.KickGroupMember) + groupRouterGroup.POST("/kick_group", group.KickGroupMember) //1 groupRouterGroup.POST("/get_group_member_list", group.GetGroupMemberList) groupRouterGroup.POST("/get_group_all_member_list", group.GetGroupAllMember) groupRouterGroup.POST("/get_group_members_info", group.GetGroupMembersInfo) From bd14e5019f5972bd048cdf82804858ef7e6ead60 Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Thu, 30 Dec 2021 16:19:06 +0800 Subject: [PATCH 409/814] Refactor code --- cmd/open_im_api/main.go | 10 +++++----- internal/api/group/group.go | 10 +++++----- pkg/base_info/group_api_struct.go | 2 +- 3 files changed, 11 insertions(+), 11 deletions(-) diff --git a/cmd/open_im_api/main.go b/cmd/open_im_api/main.go index f2a0a7793..8efc36ab1 100644 --- a/cmd/open_im_api/main.go +++ b/cmd/open_im_api/main.go @@ -38,11 +38,11 @@ func main() { friendRouterGroup.POST("/add_blacklist", friend.AddBlacklist) //1 friendRouterGroup.POST("/get_blacklist", friend.GetBlacklist) //1 friendRouterGroup.POST("/remove_blacklist", friend.RemoveBlacklist) //1 - friendRouterGroup.POST("/delete_friend", friend.DeleteFriend) - friendRouterGroup.POST("/add_friend_response", friend.AddFriendResponse) //1 - friendRouterGroup.POST("/set_friend_remark", friend.SetFriendRemark) //1 - friendRouterGroup.POST("/is_friend", friend.IsFriend) //1 - friendRouterGroup.POST("/import_friend", friend.ImportFriend) //1 + friendRouterGroup.POST("/delete_friend", friend.DeleteFriend) //1 + friendRouterGroup.POST("/add_friend_response", friend.AddFriendResponse) //1 + friendRouterGroup.POST("/set_friend_remark", friend.SetFriendRemark) //1 + friendRouterGroup.POST("/is_friend", friend.IsFriend) //1 + friendRouterGroup.POST("/import_friend", friend.ImportFriend) //1 } //group related routing group groupRouterGroup := r.Group("/group") diff --git a/internal/api/group/group.go b/internal/api/group/group.go index 790836089..f400154aa 100644 --- a/internal/api/group/group.go +++ b/internal/api/group/group.go @@ -197,7 +197,7 @@ func InviteUserToGroup(c *gin.Context) { return } req := &rpc.InviteUserToGroupReq{} - utils.CopyStructFields(req, params) + utils.CopyStructFields(req, ¶ms) var ok bool ok, req.OpUserID = token_verify.GetUserIDFromToken(c.Request.Header.Get("token")) if !ok { @@ -216,12 +216,12 @@ func InviteUserToGroup(c *gin.Context) { return } - Resp := api.InviteUserToGroupResp{CommResp: api.CommResp{ErrCode: RpcResp.ErrCode, ErrMsg: RpcResp.ErrMsg}} + resp := api.InviteUserToGroupResp{CommResp: api.CommResp{ErrCode: RpcResp.ErrCode, ErrMsg: RpcResp.ErrMsg}} for _, v := range RpcResp.Id2ResultList { - Resp.UserIDResultList = append(Resp.UserIDResultList, api.UserIDResult{UserID: v.UserID, Result: v.Result}) + resp.UserIDResultList = append(resp.UserIDResultList, api.UserIDResult{UserID: v.UserID, Result: v.Result}) } - c.JSON(http.StatusOK, Resp) - log.NewInfo(req.OperationID, "InviteUserToGroup api return ", Resp) + c.JSON(http.StatusOK, resp) + log.NewInfo(req.OperationID, "InviteUserToGroup api return ", resp) } func CreateGroup(c *gin.Context) { diff --git a/pkg/base_info/group_api_struct.go b/pkg/base_info/group_api_struct.go index 7c14bb7b4..690506146 100644 --- a/pkg/base_info/group_api_struct.go +++ b/pkg/base_info/group_api_struct.go @@ -33,7 +33,7 @@ type GetGroupMembersInfoResp struct { type InviteUserToGroupReq struct { GroupID string `json:"groupID" binding:"required"` - InvitedUserIDList []string `json:"uidList" binding:"required"` + InvitedUserIDList []string `json:"invitedUserIDList" binding:"required"` Reason string `json:"reason"` OperationID string `json:"operationID" binding:"required"` } From a0f28c07f2f7c1e7b829dade4bde945edadf97a0 Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Thu, 30 Dec 2021 16:24:37 +0800 Subject: [PATCH 410/814] Refactor code --- internal/rpc/group/group.go | 1 + 1 file changed, 1 insertion(+) diff --git a/internal/rpc/group/group.go b/internal/rpc/group/group.go index 525c4422f..80b871851 100644 --- a/internal/rpc/group/group.go +++ b/internal/rpc/group/group.go @@ -226,6 +226,7 @@ func (s *groupServer) InviteUserToGroup(ctx context.Context, req *pbGroup.Invite utils.CopyStructFields(&toInsertInfo, toUserInfo) toInsertInfo.GroupID = req.GroupID toInsertInfo.RoleLevel = constant.GroupOrdinaryUsers + toInsertInfo.OperatorUserID = req.OpUserID err = imdb.InsertIntoGroupMember(toInsertInfo) if err != nil { log.NewError(req.OperationID, "InsertIntoGroupMember failed ", req.GroupID, toUserInfo.UserID, toUserInfo.Nickname, toUserInfo.FaceUrl) From 93e669d7d3b36623e5f9e61e055d9b41d7f466a2 Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Thu, 30 Dec 2021 16:27:57 +0800 Subject: [PATCH 411/814] Refactor code --- cmd/open_im_api/main.go | 2 +- internal/api/group/group.go | 7 +++++-- pkg/base_info/group_api_struct.go | 4 ++-- 3 files changed, 8 insertions(+), 5 deletions(-) diff --git a/cmd/open_im_api/main.go b/cmd/open_im_api/main.go index 8efc36ab1..8afb38d63 100644 --- a/cmd/open_im_api/main.go +++ b/cmd/open_im_api/main.go @@ -59,7 +59,7 @@ func main() { groupRouterGroup.POST("/get_group_member_list", group.GetGroupMemberList) groupRouterGroup.POST("/get_group_all_member_list", group.GetGroupAllMember) groupRouterGroup.POST("/get_group_members_info", group.GetGroupMembersInfo) - groupRouterGroup.POST("/invite_user_to_group", group.InviteUserToGroup) + groupRouterGroup.POST("/invite_user_to_group", group.InviteUserToGroup) //1 groupRouterGroup.POST("/get_joined_group_list", group.GetJoinedGroupList) } //certificate diff --git a/internal/api/group/group.go b/internal/api/group/group.go index f400154aa..0238df400 100644 --- a/internal/api/group/group.go +++ b/internal/api/group/group.go @@ -120,9 +120,12 @@ func GetGroupMemberList(c *gin.Context) { return } - memberListResp := api.GetGroupMemberListResp{CommResp: api.CommResp{ErrCode: RpcResp.ErrCode, ErrMsg: RpcResp.ErrMsg}, Data: RpcResp.MemberList, NextSeq: RpcResp.NextSeq} - c.JSON(http.StatusOK, memberListResp) + memberListResp := api.GetGroupMemberListResp{CommResp: api.CommResp{ErrCode: RpcResp.ErrCode, ErrMsg: RpcResp.ErrMsg}, MemberList: RpcResp.MemberList, NextSeq: RpcResp.NextSeq} + if len(memberListResp.MemberList) == 0 { + memberListResp.MemberList = []*open_im_sdk.GroupMemberFullInfo{} + } log.NewInfo(req.OperationID, "GetGroupMemberList api return ", memberListResp) + c.JSON(http.StatusOK, memberListResp) } func GetGroupAllMember(c *gin.Context) { diff --git a/pkg/base_info/group_api_struct.go b/pkg/base_info/group_api_struct.go index 690506146..3bfa090d5 100644 --- a/pkg/base_info/group_api_struct.go +++ b/pkg/base_info/group_api_struct.go @@ -59,8 +59,8 @@ type GetGroupMemberListReq struct { } type GetGroupMemberListResp struct { CommResp - NextSeq int32 `json:"nextSeq"` - Data []*open_im_sdk.GroupMemberFullInfo `json:"data"` + NextSeq int32 `json:"nextSeq"` + MemberList []*open_im_sdk.GroupMemberFullInfo `json:"data"` } type GetGroupAllMemberReq struct { From ccecd8f4f08ecadb9e8aca58e36e552abd6cdac5 Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Thu, 30 Dec 2021 16:30:13 +0800 Subject: [PATCH 412/814] Refactor code --- 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 80b871851..e2327a78b 100644 --- a/internal/rpc/group/group.go +++ b/internal/rpc/group/group.go @@ -269,7 +269,7 @@ func (s *groupServer) GetGroupAllMember(ctx context.Context, req *pbGroup.GetGro } func (s *groupServer) GetGroupMemberList(ctx context.Context, req *pbGroup.GetGroupMemberListReq) (*pbGroup.GetGroupMemberListResp, error) { - log.NewInfo(req.OperationID, "GetGroupMemberList, args ", req.String()) + log.NewInfo(req.OperationID, "GetGroupMemberList args ", req.String()) var resp pbGroup.GetGroupMemberListResp memberList, err := imdb.GetGroupMemberByGroupID(req.GroupID, req.Filter, req.NextSeq, 30) if err != nil { @@ -281,7 +281,7 @@ func (s *groupServer) GetGroupMemberList(ctx context.Context, req *pbGroup.GetGr for _, v := range memberList { var node open_im_sdk.GroupMemberFullInfo - utils.CopyStructFields(&node, v) + utils.CopyStructFields(&node, &v) resp.MemberList = append(resp.MemberList, &node) } //db operate get db sorted by join time From 7301bc30b15864668541429cf5ca120c3bcffcce Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Thu, 30 Dec 2021 16:53:06 +0800 Subject: [PATCH 413/814] add null value handle --- cmd/open_im_api/main.go | 14 +++++++------- internal/api/group/group.go | 4 +++- 2 files changed, 10 insertions(+), 8 deletions(-) diff --git a/cmd/open_im_api/main.go b/cmd/open_im_api/main.go index 510d8cf55..b55486522 100644 --- a/cmd/open_im_api/main.go +++ b/cmd/open_im_api/main.go @@ -84,18 +84,18 @@ func main() { //Manager managementGroup := r.Group("/manager") { - managementGroup.POST("/delete_user", manage.DeleteUser) + managementGroup.POST("/delete_user", manage.DeleteUser) //1 managementGroup.POST("/send_msg", manage.ManagementSendMsg) - managementGroup.POST("/get_all_users_uid", manage.GetAllUsersUid) - managementGroup.POST("/account_check", manage.AccountCheck) - managementGroup.POST("/get_users_online_status", manage.GetUsersOnlineStatus) + managementGroup.POST("/get_all_users_uid", manage.GetAllUsersUid) //1 + managementGroup.POST("/account_check", manage.AccountCheck) //1 + managementGroup.POST("/get_users_online_status", manage.GetUsersOnlineStatus) //1 } //Conversation conversationGroup := r.Group("/conversation") { - conversationGroup.POST("/set_receive_message_opt", conversation.SetReceiveMessageOpt) - conversationGroup.POST("/get_receive_message_opt", conversation.GetReceiveMessageOpt) - conversationGroup.POST("/get_all_conversation_message_opt", conversation.GetAllConversationMessageOpt) + conversationGroup.POST("/set_receive_message_opt", conversation.SetReceiveMessageOpt) //1 + conversationGroup.POST("/get_receive_message_opt", conversation.GetReceiveMessageOpt) //1 + conversationGroup.POST("/get_all_conversation_message_opt", conversation.GetAllConversationMessageOpt) //1 } log.NewPrivateLog("api") diff --git a/internal/api/group/group.go b/internal/api/group/group.go index c7297e083..6f39e0223 100644 --- a/internal/api/group/group.go +++ b/internal/api/group/group.go @@ -181,6 +181,9 @@ func GetJoinedGroupList(c *gin.Context) { } GroupListResp := api.GetJoinedGroupListResp{CommResp: api.CommResp{ErrCode: RpcResp.ErrCode, ErrMsg: RpcResp.ErrMsg}, Data: RpcResp.GroupList} + if len(RpcResp.GroupList) == 0 { + GroupListResp.Data = []*open_im_sdk.GroupInfo{} + } c.JSON(http.StatusOK, GroupListResp) log.NewInfo(req.OperationID, "GetJoinedGroupList api return ", GroupListResp) } @@ -482,7 +485,6 @@ func TransferGroupOwner(c *gin.Context) { c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": err.Error()}) return } - resp := api.CommResp{ErrCode: reply.CommonResp.ErrCode, ErrMsg: reply.CommonResp.ErrMsg} c.JSON(http.StatusOK, resp) log.NewInfo(req.OperationID, "TransferGroupOwner api return ", resp) From 1e9ef321f08eccad4206379f4cd9fe4779a66db9 Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Thu, 30 Dec 2021 17:27:11 +0800 Subject: [PATCH 414/814] Refactor code --- cmd/rpc/open_im_auth/main.go | 1 + internal/api/group/group.go | 10 ++++++++++ 2 files changed, 11 insertions(+) diff --git a/cmd/rpc/open_im_auth/main.go b/cmd/rpc/open_im_auth/main.go index ed4656d35..110ea05c6 100644 --- a/cmd/rpc/open_im_auth/main.go +++ b/cmd/rpc/open_im_auth/main.go @@ -10,4 +10,5 @@ func main() { flag.Parse() rpcServer := rpcAuth.NewRpcAuthServer(*rpcPort) rpcServer.Run() + } diff --git a/internal/api/group/group.go b/internal/api/group/group.go index 0238df400..02ea2aaa1 100644 --- a/internal/api/group/group.go +++ b/internal/api/group/group.go @@ -124,6 +124,16 @@ func GetGroupMemberList(c *gin.Context) { if len(memberListResp.MemberList) == 0 { memberListResp.MemberList = []*open_im_sdk.GroupMemberFullInfo{} } + /* + jsm := &jsonpb.Marshaler{ + OrigName: true, + EnumsAsInts: false, + EmitDefaults: true, + } + + var b bytes.Buffer + err = jsm.MarshalToString(memberListResp.MemberList[0]) + */ log.NewInfo(req.OperationID, "GetGroupMemberList api return ", memberListResp) c.JSON(http.StatusOK, memberListResp) } From 0c02afa54eaa9275629fe9c9133069d3b6770a9f Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Thu, 30 Dec 2021 17:34:54 +0800 Subject: [PATCH 415/814] Refactor code --- cmd/open_im_api/main.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cmd/open_im_api/main.go b/cmd/open_im_api/main.go index 8afb38d63..b38e452fc 100644 --- a/cmd/open_im_api/main.go +++ b/cmd/open_im_api/main.go @@ -56,7 +56,7 @@ func main() { groupRouterGroup.POST("/get_group_applicationList", group.GetGroupApplicationList) //1 groupRouterGroup.POST("/get_groups_info", group.GetGroupsInfo) //1 groupRouterGroup.POST("/kick_group", group.KickGroupMember) //1 - groupRouterGroup.POST("/get_group_member_list", group.GetGroupMemberList) + groupRouterGroup.POST("/get_group_member_list", group.GetGroupMemberList) //no use groupRouterGroup.POST("/get_group_all_member_list", group.GetGroupAllMember) groupRouterGroup.POST("/get_group_members_info", group.GetGroupMembersInfo) groupRouterGroup.POST("/invite_user_to_group", group.InviteUserToGroup) //1 From 79a39b39d9cab69aa4c8e633cf3c55cf08bf4dc2 Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Thu, 30 Dec 2021 17:44:06 +0800 Subject: [PATCH 416/814] Refactor code --- internal/api/group/group.go | 9 ++++++--- internal/rpc/group/group.go | 2 +- pkg/base_info/group_api_struct.go | 2 +- 3 files changed, 8 insertions(+), 5 deletions(-) diff --git a/internal/api/group/group.go b/internal/api/group/group.go index 02ea2aaa1..6ce7412cd 100644 --- a/internal/api/group/group.go +++ b/internal/api/group/group.go @@ -146,7 +146,7 @@ func GetGroupAllMember(c *gin.Context) { return } req := &rpc.GetGroupAllMemberReq{} - utils.CopyStructFields(req, params) + utils.CopyStructFields(req, ¶ms) var ok bool ok, req.OpUserID = token_verify.GetUserIDFromToken(c.Request.Header.Get("token")) if !ok { @@ -165,9 +165,12 @@ func GetGroupAllMember(c *gin.Context) { return } - memberListResp := api.GetGroupAllMemberResp{CommResp: api.CommResp{ErrCode: RpcResp.ErrCode, ErrMsg: RpcResp.ErrMsg}, Data: RpcResp.MemberList} - c.JSON(http.StatusOK, memberListResp) + memberListResp := api.GetGroupAllMemberResp{CommResp: api.CommResp{ErrCode: RpcResp.ErrCode, ErrMsg: RpcResp.ErrMsg}, MemberList: RpcResp.MemberList} + if len(memberListResp.MemberList) == 0 { + memberListResp.MemberList = []*open_im_sdk.GroupMemberFullInfo{} + } log.NewInfo(req.OperationID, "GetGroupAllMember api return ", memberListResp) + c.JSON(http.StatusOK, memberListResp) } func GetJoinedGroupList(c *gin.Context) { diff --git a/internal/rpc/group/group.go b/internal/rpc/group/group.go index e2327a78b..2af77fa97 100644 --- a/internal/rpc/group/group.go +++ b/internal/rpc/group/group.go @@ -261,7 +261,7 @@ func (s *groupServer) GetGroupAllMember(ctx context.Context, req *pbGroup.GetGro for _, v := range memberList { var node open_im_sdk.GroupMemberFullInfo - utils.CopyStructFields(node, v) + utils.CopyStructFields(&node, &v) resp.MemberList = append(resp.MemberList, &node) } log.NewInfo(req.OperationID, "GetGroupAllMember rpc return ", resp.String()) diff --git a/pkg/base_info/group_api_struct.go b/pkg/base_info/group_api_struct.go index 3bfa090d5..a602b790f 100644 --- a/pkg/base_info/group_api_struct.go +++ b/pkg/base_info/group_api_struct.go @@ -69,7 +69,7 @@ type GetGroupAllMemberReq struct { } type GetGroupAllMemberResp struct { CommResp - Data []*open_im_sdk.GroupMemberFullInfo `json:"data"` + MemberList []*open_im_sdk.GroupMemberFullInfo `json:"data"` } type CreateGroupReq struct { From b135de80c0eb774bd85cc95492aad984362ad4e1 Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Thu, 30 Dec 2021 17:46:11 +0800 Subject: [PATCH 417/814] Refactor code --- cmd/open_im_api/main.go | 2 +- internal/api/group/group.go | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/cmd/open_im_api/main.go b/cmd/open_im_api/main.go index b38e452fc..4c79239a6 100644 --- a/cmd/open_im_api/main.go +++ b/cmd/open_im_api/main.go @@ -57,7 +57,7 @@ func main() { groupRouterGroup.POST("/get_groups_info", group.GetGroupsInfo) //1 groupRouterGroup.POST("/kick_group", group.KickGroupMember) //1 groupRouterGroup.POST("/get_group_member_list", group.GetGroupMemberList) //no use - groupRouterGroup.POST("/get_group_all_member_list", group.GetGroupAllMember) + groupRouterGroup.POST("/get_group_all_member_list", group.GetGroupAllMemberList) groupRouterGroup.POST("/get_group_members_info", group.GetGroupMembersInfo) groupRouterGroup.POST("/invite_user_to_group", group.InviteUserToGroup) //1 groupRouterGroup.POST("/get_joined_group_list", group.GetJoinedGroupList) diff --git a/internal/api/group/group.go b/internal/api/group/group.go index 6ce7412cd..9ec4cfb33 100644 --- a/internal/api/group/group.go +++ b/internal/api/group/group.go @@ -138,7 +138,7 @@ func GetGroupMemberList(c *gin.Context) { c.JSON(http.StatusOK, memberListResp) } -func GetGroupAllMember(c *gin.Context) { +func GetGroupAllMemberList(c *gin.Context) { params := api.GetGroupAllMemberReq{} if err := c.BindJSON(¶ms); err != nil { log.NewError("0", "BindJSON failed ", err.Error()) From e4989d8b9ffdd8c9de0d6198d74fdae3e8bb194c Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Thu, 30 Dec 2021 17:46:29 +0800 Subject: [PATCH 418/814] add null value handle --- internal/api/group/group.go | 3 +++ 1 file changed, 3 insertions(+) diff --git a/internal/api/group/group.go b/internal/api/group/group.go index 6f39e0223..c0998e0e4 100644 --- a/internal/api/group/group.go +++ b/internal/api/group/group.go @@ -84,6 +84,9 @@ func GetGroupMembersInfo(c *gin.Context) { } memberListResp := api.GetGroupMembersInfoResp{CommResp: api.CommResp{ErrCode: RpcResp.ErrCode, ErrMsg: RpcResp.ErrMsg}, Data: RpcResp.MemberList} + if len(RpcResp.MemberList) == 0 { + memberListResp.Data = []*open_im_sdk.GroupMemberFullInfo{} + } log.NewInfo(req.OperationID, "GetGroupMembersInfo api return ", memberListResp) c.JSON(http.StatusOK, memberListResp) } From a09b39dd69a4b9d1616ad4e585c2eb6a8f5fbf2f Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Thu, 30 Dec 2021 17:48:19 +0800 Subject: [PATCH 419/814] Refactor code --- cmd/open_im_api/main.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cmd/open_im_api/main.go b/cmd/open_im_api/main.go index 4c79239a6..36d5248dd 100644 --- a/cmd/open_im_api/main.go +++ b/cmd/open_im_api/main.go @@ -57,7 +57,7 @@ func main() { groupRouterGroup.POST("/get_groups_info", group.GetGroupsInfo) //1 groupRouterGroup.POST("/kick_group", group.KickGroupMember) //1 groupRouterGroup.POST("/get_group_member_list", group.GetGroupMemberList) //no use - groupRouterGroup.POST("/get_group_all_member_list", group.GetGroupAllMemberList) + groupRouterGroup.POST("/get_group_all_member_list", group.GetGroupAllMemberList) //1 groupRouterGroup.POST("/get_group_members_info", group.GetGroupMembersInfo) groupRouterGroup.POST("/invite_user_to_group", group.InviteUserToGroup) //1 groupRouterGroup.POST("/get_joined_group_list", group.GetJoinedGroupList) From fdf1c0448be87c50eef250a8c2060fb4bde0734c Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Thu, 30 Dec 2021 17:48:20 +0800 Subject: [PATCH 420/814] add null value handle --- cmd/open_im_api/main.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/cmd/open_im_api/main.go b/cmd/open_im_api/main.go index b55486522..8b6b70b81 100644 --- a/cmd/open_im_api/main.go +++ b/cmd/open_im_api/main.go @@ -58,9 +58,9 @@ func main() { groupRouterGroup.POST("/kick_group", group.KickGroupMember) groupRouterGroup.POST("/get_group_member_list", group.GetGroupMemberList) groupRouterGroup.POST("/get_group_all_member_list", group.GetGroupAllMember) - groupRouterGroup.POST("/get_group_members_info", group.GetGroupMembersInfo) + groupRouterGroup.POST("/get_group_members_info", group.GetGroupMembersInfo) //1 groupRouterGroup.POST("/invite_user_to_group", group.InviteUserToGroup) - groupRouterGroup.POST("/get_joined_group_list", group.GetJoinedGroupList) + groupRouterGroup.POST("/get_joined_group_list", group.GetJoinedGroupList) //1 } //certificate authRouterGroup := r.Group("/auth") From f3a9857747afc3af676b252ab39e3688555deafb Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Thu, 30 Dec 2021 17:54:11 +0800 Subject: [PATCH 421/814] Refactor code --- internal/api/group/group.go | 22 +++++++++++++--------- 1 file changed, 13 insertions(+), 9 deletions(-) diff --git a/internal/api/group/group.go b/internal/api/group/group.go index 9ec4cfb33..e5d23f87f 100644 --- a/internal/api/group/group.go +++ b/internal/api/group/group.go @@ -11,6 +11,7 @@ import ( "Open_IM/pkg/utils" "context" "github.com/gin-gonic/gin" + "github.com/golang/protobuf/jsonpb" "net/http" "strings" ) @@ -124,16 +125,7 @@ func GetGroupMemberList(c *gin.Context) { if len(memberListResp.MemberList) == 0 { memberListResp.MemberList = []*open_im_sdk.GroupMemberFullInfo{} } - /* - jsm := &jsonpb.Marshaler{ - OrigName: true, - EnumsAsInts: false, - EmitDefaults: true, - } - var b bytes.Buffer - err = jsm.MarshalToString(memberListResp.MemberList[0]) - */ log.NewInfo(req.OperationID, "GetGroupMemberList api return ", memberListResp) c.JSON(http.StatusOK, memberListResp) } @@ -169,6 +161,18 @@ func GetGroupAllMemberList(c *gin.Context) { if len(memberListResp.MemberList) == 0 { memberListResp.MemberList = []*open_im_sdk.GroupMemberFullInfo{} } + + jsm := &jsonpb.Marshaler{ + OrigName: true, + EnumsAsInts: false, + EmitDefaults: true, + } + + if len(memberListResp.MemberList) > 0 { + s, err := jsm.MarshalToString(memberListResp.MemberList[0]) + log.NewDebug(req.OperationID, "MarshalToString ", s, err) + } + log.NewInfo(req.OperationID, "GetGroupAllMember api return ", memberListResp) c.JSON(http.StatusOK, memberListResp) } From 627419aa5f7523e0889e646bfc6177f2fae4024f Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Thu, 30 Dec 2021 17:56:12 +0800 Subject: [PATCH 422/814] add null value handle --- cmd/open_im_api/main.go | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/cmd/open_im_api/main.go b/cmd/open_im_api/main.go index bb592de31..46c79536e 100644 --- a/cmd/open_im_api/main.go +++ b/cmd/open_im_api/main.go @@ -57,13 +57,10 @@ func main() { groupRouterGroup.POST("/get_groups_info", group.GetGroupsInfo) //1 groupRouterGroup.POST("/kick_group", group.KickGroupMember) //1 groupRouterGroup.POST("/get_group_member_list", group.GetGroupMemberList) //no use - groupRouterGroup.POST("/get_group_all_member_list", group.GetGroupAllMember) - groupRouterGroup.POST("/get_group_members_info", group.GetGroupMembersInfo) - groupRouterGroup.POST("/invite_user_to_group", group.InviteUserToGroup) //1 - groupRouterGroup.POST("/get_joined_group_list", group.GetJoinedGroupList) - groupRouterGroup.POST("/get_group_members_info", group.GetGroupMembersInfo) //1 - groupRouterGroup.POST("/invite_user_to_group", group.InviteUserToGroup) - groupRouterGroup.POST("/get_joined_group_list", group.GetJoinedGroupList) //1 + groupRouterGroup.POST("/get_group_all_member_list", group.GetGroupAllMember) //1 + groupRouterGroup.POST("/get_group_members_info", group.GetGroupMembersInfo) //1 + groupRouterGroup.POST("/invite_user_to_group", group.InviteUserToGroup) //1 + groupRouterGroup.POST("/get_joined_group_list", group.GetJoinedGroupList) //1 } //certificate authRouterGroup := r.Group("/auth") From 1b11cd571e428f58b3bbafdb7428b8de4f7eb2cb Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Thu, 30 Dec 2021 18:19:54 +0800 Subject: [PATCH 423/814] Refactor code --- internal/api/group/group.go | 20 ++++++++++++++++++++ pkg/base_info/group_api_struct.go | 5 +++-- 2 files changed, 23 insertions(+), 2 deletions(-) diff --git a/internal/api/group/group.go b/internal/api/group/group.go index e5d23f87f..2849e5531 100644 --- a/internal/api/group/group.go +++ b/internal/api/group/group.go @@ -10,8 +10,10 @@ import ( open_im_sdk "Open_IM/pkg/proto/sdk_ws" "Open_IM/pkg/utils" "context" + "encoding/json" "github.com/gin-gonic/gin" "github.com/golang/protobuf/jsonpb" + "github.com/golang/protobuf/proto" "net/http" "strings" ) @@ -170,13 +172,31 @@ func GetGroupAllMemberList(c *gin.Context) { if len(memberListResp.MemberList) > 0 { s, err := jsm.MarshalToString(memberListResp.MemberList[0]) + //{"GroupID":"7836e478bc43ce1d3b8889cac983f59b","UserID":"openIM001","roleLevel":1,"JoinTime":"0","NickName":"","FaceUrl":"https://oss.com.cn/head","AppMangerLevel":0,"JoinSource":0,"OperatorUserID":"","Ex":"xxx"} log.NewDebug(req.OperationID, "MarshalToString ", s, err) + m := ProtoToMap(memberListResp.MemberList[0], false) + log.NewDebug(req.OperationID, "mmm ", m) + memberListResp.Test = m } log.NewInfo(req.OperationID, "GetGroupAllMember api return ", memberListResp) c.JSON(http.StatusOK, memberListResp) } +func ProtoToMap(pb proto.Message, idFix bool) map[string]interface{} { + marshaler := jsonpb.Marshaler{} + s, _ := marshaler.MarshalToString(pb) + out := make(map[string]interface{}) + json.Unmarshal([]byte(s), &out) + if idFix { + if _, ok := out["id"]; ok { + out["_id"] = out["id"] + delete(out, "id") + } + } + return out +} + func GetJoinedGroupList(c *gin.Context) { params := api.GetJoinedGroupListReq{} if err := c.BindJSON(¶ms); err != nil { diff --git a/pkg/base_info/group_api_struct.go b/pkg/base_info/group_api_struct.go index a602b790f..33ae4b845 100644 --- a/pkg/base_info/group_api_struct.go +++ b/pkg/base_info/group_api_struct.go @@ -64,12 +64,13 @@ type GetGroupMemberListResp struct { } type GetGroupAllMemberReq struct { - GroupID string `json:"groupID"` - OperationID string `json:"operationID"` + GroupID string `json:"groupID" binding:"required"` + OperationID string `json:"operationID" binding:"required"` } type GetGroupAllMemberResp struct { CommResp MemberList []*open_im_sdk.GroupMemberFullInfo `json:"data"` + Test map[string]interface{} `json:"data2"` } type CreateGroupReq struct { From 324152e363b53be74545edfb7b9852e8e688b182 Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Thu, 30 Dec 2021 18:22:56 +0800 Subject: [PATCH 424/814] Refactor code --- internal/api/group/group.go | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/internal/api/group/group.go b/internal/api/group/group.go index 2849e5531..749f2d293 100644 --- a/internal/api/group/group.go +++ b/internal/api/group/group.go @@ -184,7 +184,11 @@ func GetGroupAllMemberList(c *gin.Context) { } func ProtoToMap(pb proto.Message, idFix bool) map[string]interface{} { - marshaler := jsonpb.Marshaler{} + marshaler := jsonpb.Marshaler{ + OrigName: true, + EnumsAsInts: false, + EmitDefaults: true, + } s, _ := marshaler.MarshalToString(pb) out := make(map[string]interface{}) json.Unmarshal([]byte(s), &out) From 816ceab0574c947108b1c55c1d91a6777e067e61 Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Thu, 30 Dec 2021 18:28:37 +0800 Subject: [PATCH 425/814] Refactor code --- pkg/proto/sdk_ws/ws.proto | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkg/proto/sdk_ws/ws.proto b/pkg/proto/sdk_ws/ws.proto index d757cc41f..3f552891f 100644 --- a/pkg/proto/sdk_ws/ws.proto +++ b/pkg/proto/sdk_ws/ws.proto @@ -26,7 +26,7 @@ message GroupMemberFullInfo { string UserID = 2 ; int32 roleLevel = 3; int64 JoinTime = 4; - string NickName = 5; + string Nickname = 5; string FaceUrl = 6; int32 AppMangerLevel = 7; //if >0 int32 JoinSource = 8; From 887028a1b46acb5a44703b7d025d18512d7e2652 Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Thu, 30 Dec 2021 18:30:03 +0800 Subject: [PATCH 426/814] Refactor code --- pkg/proto/sdk_ws/ws.pb.go | 285 +++++++++++++++++++------------------- 1 file changed, 142 insertions(+), 143 deletions(-) diff --git a/pkg/proto/sdk_ws/ws.pb.go b/pkg/proto/sdk_ws/ws.pb.go index b9857aad1..0b30328b4 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_c6aceb61f76d5c8d, []int{0} + return fileDescriptor_ws_8a45d93b14f6e420, []int{0} } func (m *GroupInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupInfo.Unmarshal(m, b) @@ -149,7 +149,7 @@ type GroupMemberFullInfo struct { UserID string `protobuf:"bytes,2,opt,name=UserID" json:"UserID,omitempty"` RoleLevel int32 `protobuf:"varint,3,opt,name=roleLevel" json:"roleLevel,omitempty"` JoinTime int64 `protobuf:"varint,4,opt,name=JoinTime" json:"JoinTime,omitempty"` - NickName string `protobuf:"bytes,5,opt,name=NickName" json:"NickName,omitempty"` + Nickname string `protobuf:"bytes,5,opt,name=Nickname" json:"Nickname,omitempty"` FaceUrl string `protobuf:"bytes,6,opt,name=FaceUrl" json:"FaceUrl,omitempty"` AppMangerLevel int32 `protobuf:"varint,7,opt,name=AppMangerLevel" json:"AppMangerLevel,omitempty"` JoinSource int32 `protobuf:"varint,8,opt,name=JoinSource" json:"JoinSource,omitempty"` @@ -164,7 +164,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_c6aceb61f76d5c8d, []int{1} + return fileDescriptor_ws_8a45d93b14f6e420, []int{1} } func (m *GroupMemberFullInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupMemberFullInfo.Unmarshal(m, b) @@ -212,9 +212,9 @@ func (m *GroupMemberFullInfo) GetJoinTime() int64 { return 0 } -func (m *GroupMemberFullInfo) GetNickName() string { +func (m *GroupMemberFullInfo) GetNickname() string { if m != nil { - return m.NickName + return m.Nickname } return "" } @@ -269,7 +269,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_c6aceb61f76d5c8d, []int{2} + return fileDescriptor_ws_8a45d93b14f6e420, []int{2} } func (m *PublicUserInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_PublicUserInfo.Unmarshal(m, b) @@ -344,7 +344,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_c6aceb61f76d5c8d, []int{3} + return fileDescriptor_ws_8a45d93b14f6e420, []int{3} } func (m *UserInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_UserInfo.Unmarshal(m, b) @@ -451,7 +451,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_c6aceb61f76d5c8d, []int{4} + return fileDescriptor_ws_8a45d93b14f6e420, []int{4} } func (m *FriendInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FriendInfo.Unmarshal(m, b) @@ -536,7 +536,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_c6aceb61f76d5c8d, []int{5} + return fileDescriptor_ws_8a45d93b14f6e420, []int{5} } func (m *BlackInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_BlackInfo.Unmarshal(m, b) @@ -617,7 +617,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_c6aceb61f76d5c8d, []int{6} + return fileDescriptor_ws_8a45d93b14f6e420, []int{6} } func (m *GroupRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupRequest.Unmarshal(m, b) @@ -719,7 +719,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_c6aceb61f76d5c8d, []int{7} + return fileDescriptor_ws_8a45d93b14f6e420, []int{7} } func (m *FriendRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FriendRequest.Unmarshal(m, b) @@ -818,7 +818,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_c6aceb61f76d5c8d, []int{8} + return fileDescriptor_ws_8a45d93b14f6e420, []int{8} } func (m *PullMessageBySeqListResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_PullMessageBySeqListResp.Unmarshal(m, b) @@ -893,7 +893,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_c6aceb61f76d5c8d, []int{9} + return fileDescriptor_ws_8a45d93b14f6e420, []int{9} } func (m *PullMessageBySeqListReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_PullMessageBySeqListReq.Unmarshal(m, b) @@ -948,7 +948,7 @@ func (m *PullMessageReq) Reset() { *m = PullMessageReq{} } func (m *PullMessageReq) String() string { return proto.CompactTextString(m) } func (*PullMessageReq) ProtoMessage() {} func (*PullMessageReq) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_c6aceb61f76d5c8d, []int{10} + return fileDescriptor_ws_8a45d93b14f6e420, []int{10} } func (m *PullMessageReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_PullMessageReq.Unmarshal(m, b) @@ -1012,7 +1012,7 @@ func (m *PullMessageResp) Reset() { *m = PullMessageResp{} } func (m *PullMessageResp) String() string { return proto.CompactTextString(m) } func (*PullMessageResp) ProtoMessage() {} func (*PullMessageResp) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_c6aceb61f76d5c8d, []int{11} + return fileDescriptor_ws_8a45d93b14f6e420, []int{11} } func (m *PullMessageResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_PullMessageResp.Unmarshal(m, b) @@ -1084,7 +1084,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_c6aceb61f76d5c8d, []int{12} + return fileDescriptor_ws_8a45d93b14f6e420, []int{12} } func (m *GetMaxAndMinSeqReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetMaxAndMinSeqReq.Unmarshal(m, b) @@ -1116,7 +1116,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_c6aceb61f76d5c8d, []int{13} + return fileDescriptor_ws_8a45d93b14f6e420, []int{13} } func (m *GetMaxAndMinSeqResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetMaxAndMinSeqResp.Unmarshal(m, b) @@ -1164,7 +1164,7 @@ func (m *GatherFormat) Reset() { *m = GatherFormat{} } func (m *GatherFormat) String() string { return proto.CompactTextString(m) } func (*GatherFormat) ProtoMessage() {} func (*GatherFormat) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_c6aceb61f76d5c8d, []int{14} + return fileDescriptor_ws_8a45d93b14f6e420, []int{14} } func (m *GatherFormat) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GatherFormat.Unmarshal(m, b) @@ -1211,7 +1211,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_c6aceb61f76d5c8d, []int{15} + return fileDescriptor_ws_8a45d93b14f6e420, []int{15} } func (m *UserSendMsgResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_UserSendMsgResp.Unmarshal(m, b) @@ -1280,7 +1280,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_c6aceb61f76d5c8d, []int{16} + return fileDescriptor_ws_8a45d93b14f6e420, []int{16} } func (m *MsgData) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MsgData.Unmarshal(m, b) @@ -1441,7 +1441,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_c6aceb61f76d5c8d, []int{17} + return fileDescriptor_ws_8a45d93b14f6e420, []int{17} } func (m *OfflinePushInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_OfflinePushInfo.Unmarshal(m, b) @@ -1508,7 +1508,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_c6aceb61f76d5c8d, []int{18} + return fileDescriptor_ws_8a45d93b14f6e420, []int{18} } func (m *TipsComm) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_TipsComm.Unmarshal(m, b) @@ -1557,7 +1557,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_c6aceb61f76d5c8d, []int{19} + return fileDescriptor_ws_8a45d93b14f6e420, []int{19} } func (m *MemberEnterTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MemberEnterTips.Unmarshal(m, b) @@ -1612,7 +1612,7 @@ func (m *MemberLeaveTips) Reset() { *m = MemberLeaveTips{} } func (m *MemberLeaveTips) String() string { return proto.CompactTextString(m) } func (*MemberLeaveTips) ProtoMessage() {} func (*MemberLeaveTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_c6aceb61f76d5c8d, []int{20} + return fileDescriptor_ws_8a45d93b14f6e420, []int{20} } func (m *MemberLeaveTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MemberLeaveTips.Unmarshal(m, b) @@ -1667,7 +1667,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_c6aceb61f76d5c8d, []int{21} + return fileDescriptor_ws_8a45d93b14f6e420, []int{21} } func (m *MemberInvitedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MemberInvitedTips.Unmarshal(m, b) @@ -1729,7 +1729,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_c6aceb61f76d5c8d, []int{22} + return fileDescriptor_ws_8a45d93b14f6e420, []int{22} } func (m *MemberKickedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MemberKickedTips.Unmarshal(m, b) @@ -1792,7 +1792,7 @@ func (m *MemberInfoChangedTips) Reset() { *m = MemberInfoChangedTips{} } func (m *MemberInfoChangedTips) String() string { return proto.CompactTextString(m) } func (*MemberInfoChangedTips) ProtoMessage() {} func (*MemberInfoChangedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_c6aceb61f76d5c8d, []int{23} + return fileDescriptor_ws_8a45d93b14f6e420, []int{23} } func (m *MemberInfoChangedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MemberInfoChangedTips.Unmarshal(m, b) @@ -1861,7 +1861,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_c6aceb61f76d5c8d, []int{24} + return fileDescriptor_ws_8a45d93b14f6e420, []int{24} } func (m *GroupCreatedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupCreatedTips.Unmarshal(m, b) @@ -1922,7 +1922,7 @@ func (m *GroupInfoChangedTips) Reset() { *m = GroupInfoChangedTips{} } func (m *GroupInfoChangedTips) String() string { return proto.CompactTextString(m) } func (*GroupInfoChangedTips) ProtoMessage() {} func (*GroupInfoChangedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_c6aceb61f76d5c8d, []int{25} + return fileDescriptor_ws_8a45d93b14f6e420, []int{25} } func (m *GroupInfoChangedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupInfoChangedTips.Unmarshal(m, b) @@ -1976,7 +1976,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_c6aceb61f76d5c8d, []int{26} + return fileDescriptor_ws_8a45d93b14f6e420, []int{26} } func (m *JoinGroupApplicationTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_JoinGroupApplicationTips.Unmarshal(m, b) @@ -2031,7 +2031,7 @@ func (m *ApplicationProcessedTips) Reset() { *m = ApplicationProcessedTi func (m *ApplicationProcessedTips) String() string { return proto.CompactTextString(m) } func (*ApplicationProcessedTips) ProtoMessage() {} func (*ApplicationProcessedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_c6aceb61f76d5c8d, []int{27} + return fileDescriptor_ws_8a45d93b14f6e420, []int{27} } func (m *ApplicationProcessedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ApplicationProcessedTips.Unmarshal(m, b) @@ -2092,7 +2092,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_c6aceb61f76d5c8d, []int{28} + return fileDescriptor_ws_8a45d93b14f6e420, []int{28} } func (m *FriendApplication) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FriendApplication.Unmarshal(m, b) @@ -2145,7 +2145,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_c6aceb61f76d5c8d, []int{29} + return fileDescriptor_ws_8a45d93b14f6e420, []int{29} } func (m *FromToUserID) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FromToUserID.Unmarshal(m, b) @@ -2191,7 +2191,7 @@ func (m *FriendApplicationAddedTips) Reset() { *m = FriendApplicationAdd func (m *FriendApplicationAddedTips) String() string { return proto.CompactTextString(m) } func (*FriendApplicationAddedTips) ProtoMessage() {} func (*FriendApplicationAddedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_c6aceb61f76d5c8d, []int{30} + return fileDescriptor_ws_8a45d93b14f6e420, []int{30} } func (m *FriendApplicationAddedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FriendApplicationAddedTips.Unmarshal(m, b) @@ -2230,7 +2230,7 @@ func (m *FriendApplicationProcessedTips) Reset() { *m = FriendApplicatio func (m *FriendApplicationProcessedTips) String() string { return proto.CompactTextString(m) } func (*FriendApplicationProcessedTips) ProtoMessage() {} func (*FriendApplicationProcessedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_c6aceb61f76d5c8d, []int{31} + return fileDescriptor_ws_8a45d93b14f6e420, []int{31} } func (m *FriendApplicationProcessedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FriendApplicationProcessedTips.Unmarshal(m, b) @@ -2271,7 +2271,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_c6aceb61f76d5c8d, []int{32} + return fileDescriptor_ws_8a45d93b14f6e420, []int{32} } func (m *FriendAddedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FriendAddedTips.Unmarshal(m, b) @@ -2324,7 +2324,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_c6aceb61f76d5c8d, []int{33} + return fileDescriptor_ws_8a45d93b14f6e420, []int{33} } func (m *FriendDeletedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FriendDeletedTips.Unmarshal(m, b) @@ -2362,7 +2362,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_c6aceb61f76d5c8d, []int{34} + return fileDescriptor_ws_8a45d93b14f6e420, []int{34} } func (m *BlackAddedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_BlackAddedTips.Unmarshal(m, b) @@ -2400,7 +2400,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_c6aceb61f76d5c8d, []int{35} + return fileDescriptor_ws_8a45d93b14f6e420, []int{35} } func (m *BlackDeletedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_BlackDeletedTips.Unmarshal(m, b) @@ -2438,7 +2438,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_c6aceb61f76d5c8d, []int{36} + return fileDescriptor_ws_8a45d93b14f6e420, []int{36} } func (m *FriendInfoChangedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FriendInfoChangedTips.Unmarshal(m, b) @@ -2477,7 +2477,7 @@ func (m *SelfInfoUpdatedTips) Reset() { *m = SelfInfoUpdatedTips{} } func (m *SelfInfoUpdatedTips) String() string { return proto.CompactTextString(m) } func (*SelfInfoUpdatedTips) ProtoMessage() {} func (*SelfInfoUpdatedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_c6aceb61f76d5c8d, []int{37} + return fileDescriptor_ws_8a45d93b14f6e420, []int{37} } func (m *SelfInfoUpdatedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SelfInfoUpdatedTips.Unmarshal(m, b) @@ -2546,10 +2546,10 @@ func init() { proto.RegisterType((*SelfInfoUpdatedTips)(nil), "open_im_sdk.SelfInfoUpdatedTips") } -func init() { proto.RegisterFile("sdk_ws/ws.proto", fileDescriptor_ws_c6aceb61f76d5c8d) } +func init() { proto.RegisterFile("sdk_ws/ws.proto", fileDescriptor_ws_8a45d93b14f6e420) } -var fileDescriptor_ws_c6aceb61f76d5c8d = []byte{ - // 1923 bytes of a gzipped FileDescriptorProto +var fileDescriptor_ws_8a45d93b14f6e420 = []byte{ + // 1920 bytes of a gzipped FileDescriptorProto 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe4, 0x59, 0xcd, 0x8f, 0x1b, 0x49, 0x15, 0x57, 0xb7, 0xdd, 0xfe, 0x78, 0xf6, 0x8c, 0x27, 0x9d, 0x64, 0xb6, 0x09, 0xab, 0xc8, 0xb4, 0x56, 0x68, 0x84, 0x20, 0x2b, 0x65, 0x85, 0xb4, 0x04, 0x2d, 0xe0, 0x19, 0xcf, 0xe4, 0x83, 0x38, @@ -2572,103 +2572,102 @@ var fileDescriptor_ws_c6aceb61f76d5c8d = []byte{ 0xf6, 0x66, 0x41, 0x9c, 0x36, 0x17, 0x50, 0x02, 0xee, 0x5f, 0x4d, 0xb8, 0xc9, 0x29, 0x61, 0xc0, 0x49, 0x16, 0x45, 0xef, 0xc8, 0xc0, 0x3e, 0xd4, 0xa4, 0x3a, 0x11, 0xfe, 0x5a, 0xa9, 0x27, 0x89, 0x23, 0xf2, 0x94, 0x5c, 0x90, 0x88, 0x07, 0xde, 0xf2, 0x4a, 0xc0, 0xbe, 0x03, 0x8d, 0x27, 0x71, - 0x48, 0x79, 0x4c, 0xaa, 0x3c, 0x26, 0x05, 0x8d, 0xdf, 0x9e, 0x85, 0xe3, 0x19, 0x4f, 0xa9, 0x08, - 0x77, 0x41, 0xab, 0x99, 0xa8, 0xe9, 0x99, 0xf8, 0x36, 0xec, 0xf6, 0x16, 0x8b, 0x81, 0x4f, 0xa7, - 0x24, 0x11, 0x4a, 0xeb, 0x5c, 0xe9, 0x0a, 0x8a, 0xf9, 0x40, 0x4d, 0xa3, 0x38, 0x4b, 0xc6, 0x84, - 0x87, 0xdb, 0xf2, 0x14, 0x04, 0xe5, 0x0c, 0x17, 0x24, 0x51, 0xc2, 0x28, 0x22, 0xbf, 0x82, 0xca, - 0xac, 0x40, 0x9e, 0x15, 0xf7, 0xf7, 0x06, 0xec, 0x9e, 0x66, 0x2f, 0xa3, 0x70, 0xcc, 0x19, 0x30, - 0x68, 0x65, 0x68, 0x0c, 0x2d, 0x34, 0xd2, 0x41, 0x5a, 0xd6, 0x6c, 0x41, 0xab, 0x0e, 0x56, 0x74, - 0x07, 0xf7, 0xa1, 0xf6, 0x90, 0xd0, 0x80, 0x24, 0x3c, 0x60, 0x96, 0x27, 0xa9, 0x0d, 0x8e, 0x5b, - 0x9b, 0x1c, 0x77, 0x7f, 0x6b, 0x42, 0xe3, 0x23, 0x9b, 0xd6, 0x85, 0xd6, 0xe9, 0x79, 0x4c, 0xc9, - 0xb3, 0x0c, 0x8b, 0x49, 0x26, 0x53, 0x85, 0xec, 0x5b, 0x60, 0x1d, 0x86, 0x49, 0x7a, 0xce, 0xb3, - 0x59, 0xf1, 0x04, 0x81, 0xe8, 0xf1, 0xdc, 0x0f, 0x45, 0x0a, 0x9b, 0x9e, 0x20, 0x64, 0xc4, 0x1b, - 0xc5, 0x3e, 0xd0, 0x77, 0x56, 0x73, 0x6d, 0x67, 0xad, 0x07, 0x06, 0x36, 0x06, 0xe6, 0x5f, 0x06, - 0xc0, 0x49, 0x12, 0x12, 0x1a, 0xf0, 0xd0, 0xac, 0x6c, 0x69, 0x63, 0x7d, 0x4b, 0xef, 0x43, 0xcd, - 0x23, 0x73, 0x3f, 0x99, 0xe5, 0x25, 0x2f, 0xa8, 0x15, 0x83, 0x2a, 0x6b, 0x06, 0x7d, 0x3f, 0xd7, - 0x83, 0x72, 0x78, 0xa8, 0x5a, 0xf7, 0x6f, 0xdf, 0x53, 0xda, 0xde, 0xbd, 0x3c, 0x3f, 0x9e, 0xc2, - 0x88, 0x3b, 0xa9, 0x17, 0x04, 0xb2, 0x60, 0x45, 0x6e, 0x4b, 0x60, 0x43, 0xbd, 0xd6, 0x2e, 0xa9, - 0xd7, 0x7a, 0x51, 0xaf, 0x7f, 0x37, 0xa0, 0x79, 0x18, 0xf9, 0xe3, 0xd9, 0x96, 0x4e, 0xeb, 0xce, - 0x99, 0x6b, 0xce, 0xf5, 0x60, 0x87, 0x8b, 0xcb, 0x5d, 0xe0, 0xfe, 0xb7, 0xee, 0x7f, 0x53, 0xf3, - 0x4f, 0xdf, 0x20, 0x9e, 0xbe, 0x42, 0x77, 0xb4, 0xfa, 0x6e, 0x47, 0xad, 0x4b, 0x1c, 0xad, 0x15, - 0x8e, 0xfe, 0xda, 0x84, 0x36, 0x6f, 0x56, 0x1e, 0x59, 0x66, 0x84, 0xa5, 0x6f, 0xad, 0x7d, 0xa5, - 0xc7, 0x99, 0x7a, 0x8f, 0x73, 0xa1, 0xfd, 0xc8, 0xa7, 0x41, 0x44, 0x3c, 0xc2, 0xb2, 0x28, 0xcd, - 0xcf, 0x11, 0x15, 0x13, 0x45, 0xb1, 0x1c, 0xb0, 0xa9, 0x3c, 0x41, 0x24, 0x85, 0x4e, 0x09, 0x3e, - 0xfc, 0x24, 0x2c, 0x2e, 0x01, 0xd4, 0xe9, 0x91, 0x25, 0x0f, 0xa9, 0xd8, 0x01, 0x39, 0x59, 0xea, - 0x94, 0xb6, 0xd6, 0x55, 0x9d, 0x65, 0x4e, 0x04, 0xcd, 0x05, 0x34, 0x44, 0x4e, 0x4a, 0x64, 0xf5, - 0xe4, 0x70, 0xbf, 0x36, 0x61, 0x47, 0x14, 0x56, 0x1e, 0x8b, 0xbb, 0x58, 0x92, 0xf1, 0x5c, 0x8b, - 0x87, 0x82, 0x60, 0x3f, 0x38, 0x8b, 0xb5, 0xfe, 0x5e, 0xd0, 0x1b, 0xa3, 0x62, 0x6d, 0x19, 0x15, - 0xbd, 0x9a, 0xac, 0xb5, 0x6a, 0xfa, 0x0c, 0x76, 0x84, 0x1c, 0xbd, 0xa8, 0x75, 0x50, 0x8f, 0x6d, - 0x7d, 0x35, 0xb6, 0x57, 0x8d, 0xce, 0x7f, 0x0d, 0x70, 0x4e, 0xb3, 0x28, 0x1a, 0x10, 0xc6, 0xfc, - 0x29, 0x39, 0x7c, 0x33, 0x22, 0xcb, 0xa7, 0x21, 0x4b, 0x3d, 0xc2, 0x16, 0x98, 0x28, 0x92, 0x24, - 0x47, 0x71, 0x40, 0x78, 0x94, 0x2c, 0x2f, 0x27, 0xd1, 0x45, 0x92, 0x24, 0x68, 0x81, 0xec, 0x06, - 0x82, 0x42, 0x7c, 0xee, 0xbf, 0x1e, 0x91, 0xa5, 0xec, 0x04, 0x92, 0xe2, 0x78, 0x48, 0x11, 0xaf, - 0x4a, 0x9c, 0x53, 0xf6, 0x8f, 0x61, 0x87, 0x85, 0x74, 0x2a, 0x92, 0x2b, 0x8a, 0xa5, 0x72, 0xd0, - 0xba, 0xff, 0x0d, 0x6d, 0x03, 0x3d, 0xf4, 0xd3, 0x73, 0x92, 0x9c, 0xc4, 0xc9, 0xdc, 0x4f, 0x3d, - 0x9d, 0xdf, 0xfe, 0x0a, 0xda, 0x53, 0x2c, 0xd8, 0x7c, 0x7d, 0xed, 0x5d, 0xeb, 0x35, 0x76, 0x77, - 0x0e, 0x9f, 0x6c, 0xf6, 0x9e, 0x9b, 0x9c, 0x69, 0x3b, 0x46, 0x50, 0xd8, 0x35, 0x62, 0xbe, 0xf9, - 0xc2, 0x98, 0x16, 0x05, 0xa2, 0x42, 0x18, 0x36, 0x26, 0xe4, 0x38, 0x95, 0x6e, 0x05, 0xeb, 0x5b, - 0x92, 0xee, 0xaf, 0xf0, 0xb8, 0x2c, 0xd4, 0x5d, 0xa6, 0xe5, 0x0e, 0x34, 0x18, 0x59, 0x1e, 0x92, - 0x69, 0x48, 0x65, 0xdf, 0x29, 0x68, 0x5c, 0xc3, 0xc8, 0xf2, 0x98, 0x06, 0x79, 0x90, 0x05, 0xb5, - 0x6a, 0x59, 0x75, 0xcd, 0x32, 0xec, 0xfa, 0x1d, 0xcd, 0x80, 0xff, 0x8b, 0x24, 0xdf, 0x02, 0xfb, - 0x21, 0x49, 0x07, 0xfe, 0xeb, 0x1e, 0x0d, 0x06, 0xdc, 0x24, 0x8f, 0x2c, 0xdd, 0x63, 0xb8, 0xb9, - 0x86, 0xb2, 0x85, 0xe2, 0x9c, 0xf1, 0x16, 0xe7, 0x4c, 0xd5, 0x39, 0xf7, 0x11, 0xb4, 0x55, 0xd5, - 0xb8, 0xc1, 0xc2, 0x40, 0x26, 0xd3, 0x0c, 0x03, 0xfb, 0x00, 0xaa, 0x11, 0x56, 0x82, 0xc9, 0x6d, - 0xbe, 0xa5, 0xd9, 0x3c, 0x60, 0xd3, 0xbe, 0x9f, 0xfa, 0x1e, 0xe7, 0x70, 0x97, 0xd0, 0x41, 0x8b, - 0x47, 0x84, 0x06, 0x03, 0x36, 0xe5, 0xc6, 0x74, 0xa1, 0x35, 0x22, 0xc9, 0x05, 0x77, 0xa3, 0x3c, - 0xa1, 0x14, 0x08, 0x39, 0x8e, 0xa2, 0x90, 0xd0, 0x54, 0x70, 0xc8, 0x6a, 0x54, 0x20, 0x51, 0x49, - 0x34, 0x50, 0x8e, 0xe7, 0x82, 0x76, 0xff, 0x62, 0x41, 0x5d, 0x1a, 0x21, 0xaa, 0x8a, 0x06, 0x65, - 0x25, 0x0a, 0x0a, 0xf1, 0x84, 0x8c, 0x2f, 0xca, 0x59, 0x57, 0x50, 0x58, 0x37, 0x53, 0x79, 0x72, - 0xc8, 0xc9, 0x48, 0x92, 0x68, 0xd3, 0x58, 0xb1, 0x49, 0xd6, 0xa1, 0x02, 0x21, 0x07, 0x53, 0xfc, - 0x92, 0x33, 0x92, 0x02, 0xd9, 0xdf, 0x81, 0x3d, 0xc6, 0xe7, 0xa9, 0xd3, 0xc8, 0x4f, 0x27, 0x71, - 0x32, 0x97, 0xed, 0xd0, 0xf2, 0xd6, 0x70, 0x3c, 0x24, 0x05, 0x56, 0x4c, 0x71, 0xa2, 0x2d, 0xae, - 0xa0, 0xd8, 0x5f, 0x05, 0xc2, 0x47, 0x38, 0xef, 0xa9, 0x1c, 0xab, 0x74, 0x50, 0xd8, 0xc6, 0x58, - 0x18, 0x53, 0x7e, 0x5b, 0x68, 0x72, 0xa5, 0x2a, 0x84, 0x9e, 0xcf, 0xd9, 0x14, 0x0f, 0x0c, 0x39, - 0x5c, 0xe5, 0x24, 0xf7, 0x3c, 0xa6, 0x29, 0xa1, 0x29, 0x5f, 0xdb, 0x12, 0x6b, 0x15, 0x08, 0xd7, - 0x4a, 0x92, 0xdf, 0x43, 0xda, 0x5e, 0x4e, 0x62, 0x5f, 0x9f, 0xc4, 0xc9, 0x98, 0xf0, 0xbe, 0xb1, - 0xd3, 0xad, 0x60, 0x5f, 0x2f, 0x00, 0x7b, 0x0f, 0x2a, 0x8c, 0x2c, 0x9d, 0x5d, 0x9e, 0x40, 0xfc, - 0xa9, 0xe5, 0xb5, 0xa3, 0xe7, 0x15, 0x4f, 0x81, 0x71, 0x79, 0xd2, 0xec, 0x89, 0x53, 0xa0, 0x44, - 0xec, 0x1f, 0x42, 0x7d, 0xb8, 0xc0, 0x9e, 0xc0, 0x9c, 0x1b, 0xbc, 0x2e, 0xbf, 0xb5, 0xa9, 0x2e, - 0xef, 0x49, 0x9e, 0x63, 0x9a, 0x26, 0x6f, 0xbc, 0x7c, 0x85, 0x7d, 0x02, 0x9d, 0x78, 0x32, 0x89, - 0x42, 0x4a, 0x4e, 0x33, 0x76, 0xce, 0xc7, 0x1e, 0x9b, 0x8f, 0x3d, 0x9f, 0x6a, 0x42, 0x86, 0x3a, - 0x8f, 0xb7, 0xba, 0xe8, 0xce, 0x03, 0x68, 0xab, 0x0a, 0xd0, 0xc5, 0x19, 0x79, 0x23, 0xab, 0x0f, - 0x7f, 0xe2, 0x48, 0x7c, 0xe1, 0x47, 0x99, 0x98, 0xbc, 0x1a, 0x9e, 0x20, 0x1e, 0x98, 0x5f, 0x1a, - 0xee, 0x6f, 0x0c, 0xe8, 0xac, 0x28, 0x40, 0xee, 0xb3, 0x30, 0x8d, 0x88, 0x94, 0x20, 0x08, 0xdb, - 0x86, 0x6a, 0x9f, 0xb0, 0xb1, 0x2c, 0x5e, 0xfe, 0x5b, 0x1e, 0x82, 0x95, 0x62, 0xa8, 0x76, 0xa1, - 0x1d, 0x0e, 0x47, 0x28, 0x68, 0x14, 0x67, 0x34, 0xc8, 0xaf, 0xc3, 0x2a, 0x86, 0xc5, 0x13, 0x0e, - 0x47, 0x87, 0x7e, 0x30, 0x25, 0xe2, 0xd2, 0x6a, 0x71, 0x9b, 0x74, 0xd0, 0xed, 0x43, 0xe3, 0x2c, - 0x5c, 0xb0, 0xa3, 0x78, 0x3e, 0xc7, 0x8d, 0xd3, 0x27, 0x29, 0x4e, 0xf4, 0x06, 0xcf, 0xb4, 0xa4, - 0xb0, 0x48, 0xfa, 0x64, 0xe2, 0x67, 0x51, 0x8a, 0xac, 0xf9, 0x96, 0x55, 0x20, 0xf7, 0x4f, 0x06, - 0x74, 0xc4, 0x5d, 0xf4, 0x98, 0xa6, 0x24, 0x41, 0xcc, 0xfe, 0x2e, 0x58, 0x7c, 0x32, 0xe3, 0xc2, - 0x5a, 0xf7, 0xf7, 0xf5, 0xe6, 0x97, 0xbf, 0x1a, 0x78, 0x82, 0xc9, 0x3e, 0x84, 0x16, 0x06, 0xd5, - 0xa7, 0x29, 0x1f, 0xbb, 0x4d, 0xbe, 0xa6, 0xbb, 0xbe, 0x46, 0xbf, 0xf1, 0x7a, 0xea, 0x22, 0xf4, - 0x78, 0x98, 0x9f, 0x1d, 0x4a, 0xf7, 0xd0, 0x41, 0xf7, 0x8f, 0x85, 0xad, 0x4f, 0x89, 0x7f, 0x41, - 0xde, 0xc3, 0xd6, 0x9f, 0x00, 0xf0, 0xa5, 0xc9, 0x95, 0x4c, 0x55, 0xd6, 0x6c, 0x69, 0xe9, 0x3f, - 0x0d, 0xb8, 0x21, 0x84, 0x3c, 0xa6, 0x17, 0x61, 0x4a, 0x82, 0xf7, 0xb0, 0xf5, 0x4b, 0xa8, 0x0d, - 0x17, 0x57, 0xb2, 0x53, 0xf2, 0xdb, 0x4f, 0xa0, 0x23, 0xd5, 0x22, 0x59, 0x0c, 0x07, 0xdb, 0x88, - 0x58, 0x5d, 0xb8, 0xee, 0x6f, 0x75, 0x93, 0xbf, 0xff, 0x30, 0x60, 0x4f, 0x48, 0xfa, 0x69, 0x38, - 0x9e, 0x7d, 0x64, 0x77, 0x1f, 0xc1, 0xae, 0xd0, 0x7a, 0x65, 0x6f, 0x57, 0xd6, 0x6d, 0xe9, 0xec, - 0x7f, 0x0c, 0xb8, 0x9d, 0x27, 0x77, 0x12, 0x1f, 0x9d, 0xe3, 0x55, 0x57, 0x78, 0x8c, 0x53, 0x37, - 0x27, 0x79, 0x4b, 0x16, 0x23, 0x8e, 0x82, 0x5c, 0xc3, 0xc7, 0x1f, 0x41, 0xf3, 0x24, 0xa4, 0x7e, - 0xa4, 0xdc, 0xfc, 0xde, 0xbd, 0xb8, 0x5c, 0x82, 0x1d, 0x7c, 0x90, 0xc9, 0x1e, 0x2d, 0xdf, 0x83, - 0x72, 0xba, 0xcc, 0x93, 0xb5, 0x45, 0x9e, 0xdc, 0xbf, 0x19, 0xb0, 0xc7, 0x7f, 0x89, 0xdb, 0xc4, - 0xfb, 0xa4, 0xfa, 0x01, 0xd4, 0xe5, 0x9b, 0xd9, 0xd6, 0x71, 0xc8, 0x17, 0xe0, 0x0e, 0x96, 0x2d, - 0xe0, 0x2a, 0x89, 0x56, 0xd6, 0x6c, 0x99, 0xe4, 0x3f, 0x18, 0x70, 0xab, 0x30, 0x5c, 0xcd, 0x31, - 0x4e, 0x41, 0x92, 0x2c, 0x93, 0xac, 0x42, 0x65, 0x30, 0xcc, 0xab, 0xd5, 0x7d, 0xe5, 0x6a, 0x35, - 0xe1, 0x7e, 0x6d, 0x80, 0xf3, 0x24, 0x0e, 0x29, 0xe7, 0xe9, 0x2d, 0x16, 0x91, 0x7c, 0x72, 0x7d, - 0x8f, 0x8c, 0xfc, 0x00, 0x9a, 0x52, 0x00, 0x4d, 0xa5, 0xd9, 0x97, 0x3e, 0x2c, 0x94, 0xdc, 0xe2, - 0x06, 0xea, 0xb3, 0xe2, 0xf5, 0x57, 0x52, 0xee, 0x9f, 0x0d, 0x70, 0x14, 0xa3, 0x4e, 0x93, 0x78, - 0x4c, 0x18, 0xfb, 0xc8, 0xad, 0x81, 0x1b, 0xa7, 0x5c, 0x9e, 0x6b, 0xea, 0xb5, 0x99, 0x1b, 0x5d, - 0xd5, 0x8c, 0x9e, 0xc1, 0x0d, 0x71, 0x7f, 0x57, 0x2c, 0xc7, 0x39, 0xaa, 0x17, 0x88, 0xe1, 0x47, - 0xcc, 0xe9, 0x39, 0xa9, 0x3f, 0xa8, 0xc8, 0xd7, 0xf1, 0xf2, 0x41, 0xe5, 0x2e, 0x40, 0x2f, 0x08, - 0x7e, 0x11, 0x27, 0x41, 0x48, 0xa7, 0x32, 0x3a, 0x0a, 0xe2, 0x3e, 0x81, 0x36, 0x4e, 0x72, 0xc5, - 0x7d, 0xff, 0x1a, 0x6f, 0x05, 0xee, 0x2f, 0xe1, 0xce, 0x9a, 0xe1, 0xbd, 0x20, 0x90, 0xe1, 0xfe, - 0x4a, 0xd7, 0x24, 0xa3, 0xae, 0x5f, 0x6a, 0x54, 0x06, 0x4f, 0x63, 0x77, 0x5f, 0xc0, 0xdd, 0x35, - 0xe1, 0x7a, 0x3e, 0xaf, 0xa9, 0xe0, 0x77, 0x06, 0x74, 0xa4, 0x86, 0xc2, 0xe6, 0xcf, 0xa1, 0x26, - 0x20, 0x29, 0xec, 0x93, 0x15, 0x61, 0xf9, 0x7b, 0xa2, 0x27, 0xd9, 0xd6, 0xf7, 0xb5, 0xb9, 0x61, - 0x5f, 0xdb, 0x5f, 0xac, 0x6c, 0xb7, 0x4b, 0xcb, 0x3c, 0xdf, 0x69, 0x5e, 0x5e, 0x16, 0x7d, 0x12, - 0x91, 0xf4, 0xc3, 0xf8, 0x3c, 0x84, 0x5d, 0xfe, 0x3a, 0xf7, 0xc1, 0xb2, 0xf4, 0x33, 0xd8, 0xe3, - 0x02, 0x3f, 0xa0, 0x8d, 0x3f, 0x87, 0xdb, 0x65, 0xa0, 0xd5, 0x26, 0x78, 0x4d, 0xb9, 0xdf, 0x83, - 0x9b, 0x23, 0x12, 0x4d, 0x50, 0xea, 0xf3, 0x45, 0x50, 0x9c, 0x22, 0x6f, 0x79, 0x38, 0x7c, 0x59, - 0xe3, 0x7f, 0x60, 0x7d, 0xf1, 0xbf, 0x00, 0x00, 0x00, 0xff, 0xff, 0xd4, 0x0b, 0x22, 0x82, 0xd3, - 0x1a, 0x00, 0x00, + 0x48, 0x79, 0x4c, 0xaa, 0x3c, 0x26, 0x05, 0x8d, 0xdf, 0x9e, 0x85, 0xe3, 0x19, 0xc5, 0x94, 0x8a, + 0x70, 0x17, 0xb4, 0x9a, 0x89, 0x9a, 0x9e, 0x89, 0x6f, 0xc3, 0x6e, 0x6f, 0xb1, 0x18, 0xf8, 0x74, + 0x4a, 0x12, 0xa1, 0xb4, 0xce, 0x95, 0xae, 0xa0, 0x98, 0x0f, 0xd4, 0x34, 0x8a, 0xb3, 0x64, 0x4c, + 0x78, 0xb8, 0x2d, 0x4f, 0x41, 0x50, 0xce, 0x70, 0x41, 0x12, 0x25, 0x8c, 0x22, 0xf2, 0x2b, 0xa8, + 0xcc, 0x0a, 0xe4, 0x59, 0x71, 0x7f, 0x6f, 0xc0, 0xee, 0x69, 0xf6, 0x32, 0x0a, 0xc7, 0x9c, 0x01, + 0x83, 0x56, 0x86, 0xc6, 0xd0, 0x42, 0xa3, 0x3a, 0x68, 0xbe, 0xdd, 0xc1, 0x8a, 0xee, 0xe0, 0x3e, + 0xd4, 0x1e, 0x12, 0x1a, 0x90, 0x84, 0x07, 0xcc, 0xf2, 0x24, 0xb5, 0xc1, 0x71, 0x6b, 0x93, 0xe3, + 0xee, 0x6f, 0x4d, 0x68, 0x7c, 0x64, 0xd3, 0xba, 0xd0, 0x3a, 0x3d, 0x8f, 0x29, 0x79, 0x96, 0x61, + 0x31, 0xc9, 0x64, 0xaa, 0x90, 0x7d, 0x0b, 0xac, 0xc3, 0x30, 0x49, 0xcf, 0x79, 0x36, 0x2b, 0x9e, + 0x20, 0x10, 0x3d, 0x9e, 0xfb, 0xa1, 0x48, 0x61, 0xd3, 0x13, 0x84, 0x8c, 0x78, 0xa3, 0xd8, 0x07, + 0xfa, 0xce, 0x6a, 0xae, 0xed, 0xac, 0xf5, 0xc0, 0xc0, 0xc6, 0xc0, 0xfc, 0xcb, 0x00, 0x38, 0x49, + 0x42, 0x42, 0x03, 0x1e, 0x9a, 0x95, 0x2d, 0x6d, 0xac, 0x6f, 0xe9, 0x7d, 0xa8, 0x79, 0x64, 0xee, + 0x27, 0xb3, 0xbc, 0xe4, 0x05, 0xb5, 0x62, 0x50, 0x65, 0xcd, 0xa0, 0xef, 0xe7, 0x7a, 0x50, 0x0e, + 0x0f, 0x55, 0xeb, 0xfe, 0xed, 0x7b, 0x4a, 0xdb, 0xbb, 0x97, 0xe7, 0xc7, 0x53, 0x18, 0x71, 0x27, + 0xf5, 0x82, 0x40, 0x16, 0xac, 0xc8, 0x6d, 0x09, 0x6c, 0xa8, 0xd7, 0xda, 0x25, 0xf5, 0x5a, 0x2f, + 0xea, 0xf5, 0xef, 0x06, 0x34, 0x0f, 0x23, 0x7f, 0x3c, 0xdb, 0xd2, 0x69, 0xdd, 0x39, 0x73, 0xcd, + 0xb9, 0x1e, 0xec, 0x70, 0x71, 0xb9, 0x0b, 0xdc, 0xff, 0xd6, 0xfd, 0x6f, 0x6a, 0xfe, 0xe9, 0x1b, + 0xc4, 0xd3, 0x57, 0xe8, 0x8e, 0x56, 0xdf, 0xed, 0xa8, 0x75, 0x89, 0xa3, 0xb5, 0xc2, 0xd1, 0x5f, + 0x9b, 0xd0, 0xe6, 0xcd, 0xca, 0x23, 0xcb, 0x8c, 0xb0, 0xf4, 0xad, 0xb5, 0xaf, 0xf4, 0x38, 0x53, + 0xef, 0x71, 0x2e, 0xb4, 0x1f, 0xf9, 0x34, 0x88, 0x88, 0x47, 0x58, 0x16, 0xa5, 0xf9, 0x39, 0xa2, + 0x62, 0xa2, 0x28, 0x96, 0x03, 0x36, 0x95, 0x27, 0x88, 0xa4, 0xd0, 0x29, 0xc1, 0x87, 0x9f, 0x84, + 0xc5, 0x25, 0x80, 0x3a, 0x3d, 0xb2, 0xe4, 0x21, 0x15, 0x3b, 0x20, 0x27, 0x4b, 0x9d, 0xd2, 0xd6, + 0xba, 0xaa, 0xb3, 0xcc, 0x89, 0xa0, 0xb9, 0x80, 0x86, 0xc8, 0x49, 0x89, 0xac, 0x9e, 0x1c, 0xee, + 0xd7, 0x26, 0xec, 0x88, 0xc2, 0xca, 0x63, 0x71, 0x17, 0x4b, 0x32, 0x9e, 0x6b, 0xf1, 0x50, 0x10, + 0xec, 0x07, 0x67, 0xb1, 0xd6, 0xdf, 0x0b, 0x7a, 0x63, 0x54, 0xac, 0x2d, 0xa3, 0xa2, 0x57, 0x93, + 0xb5, 0x56, 0x4d, 0x9f, 0xc1, 0x8e, 0x90, 0xa3, 0x17, 0xb5, 0x0e, 0xea, 0xb1, 0xad, 0xaf, 0xc6, + 0xf6, 0xaa, 0xd1, 0xf9, 0xaf, 0x01, 0xce, 0x69, 0x16, 0x45, 0x03, 0xc2, 0x98, 0x3f, 0x25, 0x87, + 0x6f, 0x46, 0x64, 0xf9, 0x34, 0x64, 0xa9, 0x47, 0xd8, 0x02, 0x13, 0x45, 0x92, 0xe4, 0x28, 0x0e, + 0x08, 0x8f, 0x92, 0xe5, 0xe5, 0x24, 0xba, 0x48, 0x92, 0x04, 0x2d, 0x90, 0xdd, 0x40, 0x50, 0x88, + 0xcf, 0xfd, 0xd7, 0x23, 0xb2, 0x94, 0x9d, 0x40, 0x52, 0x1c, 0x0f, 0x29, 0xe2, 0x55, 0x89, 0x73, + 0xca, 0xfe, 0x31, 0xec, 0xb0, 0x90, 0x4e, 0x45, 0x72, 0x45, 0xb1, 0x54, 0x0e, 0x5a, 0xf7, 0xbf, + 0xa1, 0x6d, 0xa0, 0x87, 0x7e, 0x7a, 0x4e, 0x92, 0x93, 0x38, 0x99, 0xfb, 0xa9, 0xa7, 0xf3, 0xdb, + 0x5f, 0x41, 0x7b, 0x8a, 0x05, 0x9b, 0xaf, 0xaf, 0xbd, 0x6b, 0xbd, 0xc6, 0xee, 0xce, 0xe1, 0x93, + 0xcd, 0xde, 0x73, 0x93, 0x33, 0x6d, 0xc7, 0x08, 0x0a, 0xbb, 0x46, 0xcc, 0x37, 0x5f, 0x18, 0xd3, + 0xa2, 0x40, 0x54, 0x08, 0xc3, 0xc6, 0x84, 0x1c, 0xa7, 0xd2, 0xad, 0x60, 0x7d, 0x4b, 0xd2, 0xfd, + 0x15, 0x1e, 0x97, 0x85, 0xba, 0xcb, 0xb4, 0xdc, 0x81, 0x06, 0x23, 0xcb, 0x43, 0x32, 0x0d, 0xa9, + 0xec, 0x3b, 0x05, 0x8d, 0x6b, 0x18, 0x59, 0x1e, 0xd3, 0x20, 0x0f, 0xb2, 0xa0, 0x56, 0x2d, 0xab, + 0xae, 0x59, 0x86, 0x5d, 0xbf, 0xa3, 0x19, 0xf0, 0x7f, 0x91, 0xe4, 0x5b, 0x60, 0x3f, 0x24, 0xe9, + 0xc0, 0x7f, 0xdd, 0xa3, 0xc1, 0x80, 0x9b, 0xe4, 0x91, 0xa5, 0x7b, 0x0c, 0x37, 0xd7, 0x50, 0xb6, + 0x50, 0x9c, 0x33, 0xde, 0xe2, 0x9c, 0xa9, 0x3a, 0xe7, 0x3e, 0x82, 0xb6, 0xaa, 0x1a, 0x37, 0x58, + 0x18, 0xc8, 0x64, 0x9a, 0x61, 0x60, 0x1f, 0x40, 0x35, 0xc2, 0x4a, 0x30, 0xb9, 0xcd, 0xb7, 0x34, + 0x9b, 0x07, 0x6c, 0xda, 0xf7, 0x53, 0xdf, 0xe3, 0x1c, 0xee, 0x12, 0x3a, 0x68, 0xf1, 0x88, 0xd0, + 0x60, 0xc0, 0xa6, 0xdc, 0x98, 0x2e, 0xb4, 0x46, 0x24, 0xb9, 0xe0, 0x6e, 0x94, 0x27, 0x94, 0x02, + 0x21, 0xc7, 0x51, 0x14, 0x12, 0x9a, 0x0a, 0x0e, 0x59, 0x8d, 0x0a, 0x24, 0x2a, 0x89, 0x06, 0xca, + 0xf1, 0x5c, 0xd0, 0xee, 0x5f, 0x2c, 0xa8, 0x4b, 0x23, 0x44, 0x55, 0xd1, 0xa0, 0xac, 0x44, 0x41, + 0x21, 0x9e, 0x90, 0xf1, 0x45, 0x39, 0xeb, 0x0a, 0x0a, 0xeb, 0x66, 0x2a, 0x4f, 0x0e, 0x39, 0x19, + 0x49, 0x12, 0x6d, 0x1a, 0x2b, 0x36, 0xc9, 0x3a, 0x54, 0x20, 0xe4, 0x60, 0x8a, 0x5f, 0x72, 0x46, + 0x52, 0x20, 0xfb, 0x3b, 0xb0, 0xc7, 0xf8, 0x3c, 0x75, 0x1a, 0xf9, 0xe9, 0x24, 0x4e, 0xe6, 0xb2, + 0x1d, 0x5a, 0xde, 0x1a, 0x8e, 0x87, 0xa4, 0xc0, 0x8a, 0x29, 0x4e, 0xb4, 0xc5, 0x15, 0x14, 0xfb, + 0xab, 0x40, 0xf8, 0x08, 0xe7, 0x3d, 0x95, 0x63, 0x95, 0x0e, 0x0a, 0xdb, 0x18, 0x0b, 0x63, 0xca, + 0x6f, 0x0b, 0x4d, 0xae, 0x54, 0x85, 0xd0, 0xf3, 0x39, 0x9b, 0xe2, 0x81, 0x21, 0x87, 0xab, 0x9c, + 0xe4, 0x9e, 0xc7, 0x34, 0x25, 0x34, 0xe5, 0x6b, 0x5b, 0x62, 0xad, 0x02, 0xe1, 0x5a, 0x49, 0xf2, + 0x7b, 0x48, 0xdb, 0xcb, 0x49, 0xec, 0xeb, 0x93, 0x38, 0x19, 0x13, 0xde, 0x37, 0x76, 0xba, 0x15, + 0xec, 0xeb, 0x05, 0x60, 0xef, 0x41, 0x85, 0x91, 0xa5, 0xb3, 0xcb, 0x13, 0x88, 0x3f, 0xb5, 0xbc, + 0x76, 0xf4, 0xbc, 0xe2, 0x29, 0x30, 0x2e, 0x4f, 0x9a, 0x3d, 0x71, 0x0a, 0x94, 0x88, 0xfd, 0x43, + 0xa8, 0x0f, 0x17, 0xd8, 0x13, 0x98, 0x73, 0x83, 0xd7, 0xe5, 0xb7, 0x36, 0xd5, 0xe5, 0x3d, 0xc9, + 0x73, 0x4c, 0xd3, 0xe4, 0x8d, 0x97, 0xaf, 0xb0, 0x4f, 0xa0, 0x13, 0x4f, 0x26, 0x51, 0x48, 0xc9, + 0x69, 0xc6, 0xce, 0xf9, 0xd8, 0x63, 0xf3, 0xb1, 0xe7, 0x53, 0x4d, 0xc8, 0x50, 0xe7, 0xf1, 0x56, + 0x17, 0xdd, 0x79, 0x00, 0x6d, 0x55, 0x01, 0xba, 0x38, 0x23, 0x6f, 0x64, 0xf5, 0xe1, 0x4f, 0x1c, + 0x89, 0x2f, 0xfc, 0x28, 0x13, 0x93, 0x57, 0xc3, 0x13, 0xc4, 0x03, 0xf3, 0x4b, 0xc3, 0xfd, 0x8d, + 0x01, 0x9d, 0x15, 0x05, 0xc8, 0x7d, 0x16, 0xa6, 0x11, 0x91, 0x12, 0x04, 0x61, 0xdb, 0x50, 0xed, + 0x13, 0x36, 0x96, 0xc5, 0xcb, 0x7f, 0xcb, 0x43, 0xb0, 0x52, 0x0c, 0xd5, 0x2e, 0xb4, 0xc3, 0xe1, + 0x08, 0x05, 0x8d, 0xe2, 0x8c, 0x06, 0xf9, 0x75, 0x58, 0xc5, 0xb0, 0x78, 0xc2, 0xe1, 0xe8, 0xd0, + 0x0f, 0xa6, 0x44, 0x5c, 0x5a, 0x2d, 0x6e, 0x93, 0x0e, 0xba, 0x7d, 0x68, 0x9c, 0x85, 0x0b, 0x76, + 0x14, 0xcf, 0xe7, 0xb8, 0x71, 0xfa, 0x24, 0xc5, 0x89, 0xde, 0xe0, 0x99, 0x96, 0x14, 0x16, 0x49, + 0x9f, 0x4c, 0xfc, 0x2c, 0x4a, 0x91, 0x35, 0xdf, 0xb2, 0x0a, 0xe4, 0xfe, 0xc9, 0x80, 0x8e, 0xb8, + 0x8b, 0x1e, 0xd3, 0x94, 0x24, 0x88, 0xd9, 0xdf, 0x05, 0x8b, 0x4f, 0x66, 0x5c, 0x58, 0xeb, 0xfe, + 0xbe, 0xde, 0xfc, 0xf2, 0x57, 0x03, 0x4f, 0x30, 0xd9, 0x87, 0xd0, 0xc2, 0xa0, 0xfa, 0x34, 0xe5, + 0x63, 0xb7, 0xc9, 0xd7, 0x74, 0xd7, 0xd7, 0xe8, 0x37, 0x5e, 0x4f, 0x5d, 0x84, 0x1e, 0x0f, 0xf3, + 0xb3, 0x43, 0xe9, 0x1e, 0x3a, 0xe8, 0xfe, 0xb1, 0xb0, 0xf5, 0x29, 0xf1, 0x2f, 0xc8, 0x7b, 0xd8, + 0xfa, 0x13, 0x00, 0xbe, 0x34, 0xb9, 0x92, 0xa9, 0xca, 0x9a, 0x2d, 0x2d, 0xfd, 0xa7, 0x01, 0x37, + 0x84, 0x90, 0xc7, 0xf4, 0x22, 0x4c, 0x49, 0xf0, 0x1e, 0xb6, 0x7e, 0x09, 0xb5, 0xe1, 0xe2, 0x4a, + 0x76, 0x4a, 0x7e, 0xfb, 0x09, 0x74, 0xa4, 0x5a, 0x24, 0x8b, 0xe1, 0x60, 0x1b, 0x11, 0xab, 0x0b, + 0xd7, 0xfd, 0xad, 0x6e, 0xf2, 0xf7, 0x1f, 0x06, 0xec, 0x09, 0x49, 0x3f, 0x0d, 0xc7, 0xb3, 0x8f, + 0xec, 0xee, 0x23, 0xd8, 0x15, 0x5a, 0xaf, 0xec, 0xed, 0xca, 0xba, 0x2d, 0x9d, 0xfd, 0x8f, 0x01, + 0xb7, 0xf3, 0xe4, 0x4e, 0xe2, 0xa3, 0x73, 0xbc, 0xea, 0x0a, 0x8f, 0x71, 0xea, 0xe6, 0x24, 0x6f, + 0xc9, 0x62, 0xc4, 0x51, 0x90, 0x6b, 0xf8, 0xf8, 0x23, 0x68, 0x9e, 0x84, 0xd4, 0x8f, 0x94, 0x9b, + 0xdf, 0xbb, 0x17, 0x97, 0x4b, 0xb0, 0x83, 0x0f, 0x32, 0xd9, 0xa3, 0xe5, 0x7b, 0x50, 0x4e, 0x97, + 0x79, 0xb2, 0xb6, 0xc8, 0x93, 0xfb, 0x37, 0x03, 0xf6, 0xf8, 0x2f, 0x71, 0x9b, 0x78, 0x9f, 0x54, + 0x3f, 0x80, 0xba, 0x7c, 0x33, 0xdb, 0x3a, 0x0e, 0xf9, 0x02, 0xdc, 0xc1, 0xb2, 0x05, 0x5c, 0x25, + 0xd1, 0xca, 0x9a, 0x2d, 0x93, 0xfc, 0x07, 0x03, 0x6e, 0x15, 0x86, 0xab, 0x39, 0xc6, 0x29, 0x48, + 0x92, 0x65, 0x92, 0x55, 0xa8, 0x0c, 0x86, 0x79, 0xb5, 0xba, 0xaf, 0x5c, 0xad, 0x26, 0xdc, 0xaf, + 0x0d, 0x70, 0x9e, 0xc4, 0x21, 0xe5, 0x3c, 0xbd, 0xc5, 0x22, 0x92, 0x4f, 0xae, 0xef, 0x91, 0x91, + 0x1f, 0x40, 0x53, 0x0a, 0xa0, 0xa9, 0x34, 0xfb, 0xd2, 0x87, 0x85, 0x92, 0x5b, 0xdc, 0x40, 0x7d, + 0x56, 0xbc, 0xfe, 0x4a, 0xca, 0xfd, 0xb3, 0x01, 0x8e, 0x62, 0xd4, 0x69, 0x12, 0x8f, 0x09, 0x63, + 0x1f, 0xb9, 0x35, 0x70, 0xe3, 0x94, 0xcb, 0x73, 0x4d, 0xbd, 0x36, 0x73, 0xa3, 0xab, 0x9a, 0xd1, + 0x33, 0xb8, 0x21, 0xee, 0xef, 0x8a, 0xe5, 0x38, 0x47, 0xf5, 0x02, 0x31, 0xfc, 0x88, 0x39, 0x3d, + 0x27, 0xf5, 0x07, 0x15, 0xf9, 0x3a, 0x5e, 0x3e, 0xa8, 0xdc, 0x05, 0xe8, 0x05, 0xc1, 0x2f, 0xe2, + 0x24, 0x08, 0xe9, 0x54, 0x46, 0x47, 0x41, 0xdc, 0x27, 0xd0, 0xc6, 0x49, 0xae, 0xb8, 0xef, 0x5f, + 0xe3, 0xad, 0xc0, 0xfd, 0x25, 0xdc, 0x59, 0x33, 0xbc, 0x17, 0x04, 0x32, 0xdc, 0x5f, 0xe9, 0x9a, + 0x64, 0xd4, 0xf5, 0x4b, 0x8d, 0xca, 0xe0, 0x69, 0xec, 0xee, 0x0b, 0xb8, 0xbb, 0x26, 0x5c, 0xcf, + 0xe7, 0x35, 0x15, 0xfc, 0xce, 0x80, 0x8e, 0xd4, 0x50, 0xd8, 0xfc, 0x39, 0xd4, 0x04, 0x24, 0x85, + 0x7d, 0xb2, 0x22, 0x2c, 0x7f, 0x4f, 0xf4, 0x24, 0xdb, 0xfa, 0xbe, 0x36, 0x37, 0xec, 0x6b, 0xfb, + 0x8b, 0x95, 0xed, 0x76, 0x69, 0x99, 0xe7, 0x3b, 0xcd, 0xcb, 0xcb, 0xa2, 0x4f, 0x22, 0x92, 0x7e, + 0x18, 0x9f, 0x87, 0xb0, 0xcb, 0x5f, 0xe7, 0x3e, 0x58, 0x96, 0x7e, 0x06, 0x7b, 0x5c, 0xe0, 0x07, + 0xb4, 0xf1, 0xe7, 0x70, 0xbb, 0x0c, 0xb4, 0xda, 0x04, 0xaf, 0x29, 0xf7, 0x7b, 0x70, 0x73, 0x44, + 0xa2, 0x09, 0x4a, 0x7d, 0xbe, 0x08, 0x8a, 0x53, 0xe4, 0x2d, 0x0f, 0x87, 0x2f, 0x6b, 0xfc, 0x0f, + 0xac, 0x2f, 0xfe, 0x17, 0x00, 0x00, 0xff, 0xff, 0x37, 0xf4, 0xcc, 0x45, 0xd3, 0x1a, 0x00, 0x00, } From 1e6a170c3cfb2bcb32d5dbc79064b2036edaa042 Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Thu, 30 Dec 2021 18:31:13 +0800 Subject: [PATCH 427/814] Refactor code --- internal/api/group/group.go | 2 +- pkg/base_info/group_api_struct.go | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/internal/api/group/group.go b/internal/api/group/group.go index 749f2d293..cde682e31 100644 --- a/internal/api/group/group.go +++ b/internal/api/group/group.go @@ -176,7 +176,7 @@ func GetGroupAllMemberList(c *gin.Context) { log.NewDebug(req.OperationID, "MarshalToString ", s, err) m := ProtoToMap(memberListResp.MemberList[0], false) log.NewDebug(req.OperationID, "mmm ", m) - memberListResp.Test = m + memberListResp.Test = append(memberListResp.Test, m) } log.NewInfo(req.OperationID, "GetGroupAllMember api return ", memberListResp) diff --git a/pkg/base_info/group_api_struct.go b/pkg/base_info/group_api_struct.go index 33ae4b845..f52590671 100644 --- a/pkg/base_info/group_api_struct.go +++ b/pkg/base_info/group_api_struct.go @@ -70,7 +70,7 @@ type GetGroupAllMemberReq struct { type GetGroupAllMemberResp struct { CommResp MemberList []*open_im_sdk.GroupMemberFullInfo `json:"data"` - Test map[string]interface{} `json:"data2"` + Test []map[string]interface{} `json:"data2"` } type CreateGroupReq struct { From 7b41ce1f24dd6c75c2c50575802dd822e53671b2 Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Thu, 30 Dec 2021 18:33:01 +0800 Subject: [PATCH 428/814] Refactor code --- internal/api/group/group.go | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/internal/api/group/group.go b/internal/api/group/group.go index cde682e31..f446d93a1 100644 --- a/internal/api/group/group.go +++ b/internal/api/group/group.go @@ -171,12 +171,15 @@ func GetGroupAllMemberList(c *gin.Context) { } if len(memberListResp.MemberList) > 0 { - s, err := jsm.MarshalToString(memberListResp.MemberList[0]) - //{"GroupID":"7836e478bc43ce1d3b8889cac983f59b","UserID":"openIM001","roleLevel":1,"JoinTime":"0","NickName":"","FaceUrl":"https://oss.com.cn/head","AppMangerLevel":0,"JoinSource":0,"OperatorUserID":"","Ex":"xxx"} - log.NewDebug(req.OperationID, "MarshalToString ", s, err) - m := ProtoToMap(memberListResp.MemberList[0], false) - log.NewDebug(req.OperationID, "mmm ", m) - memberListResp.Test = append(memberListResp.Test, m) + for _, v := range memberListResp.MemberList { + s, err := jsm.MarshalToString(v) + //{"GroupID":"7836e478bc43ce1d3b8889cac983f59b","UserID":"openIM001","roleLevel":1,"JoinTime":"0","NickName":"","FaceUrl":"https://oss.com.cn/head","AppMangerLevel":0,"JoinSource":0,"OperatorUserID":"","Ex":"xxx"} + log.NewDebug(req.OperationID, "MarshalToString ", s, err) + m := ProtoToMap(memberListResp.MemberList[0], false) + log.NewDebug(req.OperationID, "mmm ", m) + memberListResp.Test = append(memberListResp.Test, m) + } + } log.NewInfo(req.OperationID, "GetGroupAllMember api return ", memberListResp) From 7a3bb59d3e705cddb933823b5e6e7680426f065b Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Thu, 30 Dec 2021 19:12:50 +0800 Subject: [PATCH 429/814] add null value handle --- internal/api/group/group.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/internal/api/group/group.go b/internal/api/group/group.go index 66af1501d..c5132b769 100644 --- a/internal/api/group/group.go +++ b/internal/api/group/group.go @@ -234,9 +234,9 @@ func GetJoinedGroupList(c *gin.Context) { return } - GroupListResp := api.GetJoinedGroupListResp{CommResp: api.CommResp{ErrCode: RpcResp.ErrCode, ErrMsg: RpcResp.ErrMsg}, Data: RpcResp.GroupList} + GroupListResp := api.GetJoinedGroupListResp{CommResp: api.CommResp{ErrCode: RpcResp.ErrCode, ErrMsg: RpcResp.ErrMsg}, GroupInfoList: RpcResp.GroupList} if len(RpcResp.GroupList) == 0 { - GroupListResp.Data = []*open_im_sdk.GroupInfo{} + GroupListResp.GroupInfoList = []*open_im_sdk.GroupInfo{} } c.JSON(http.StatusOK, GroupListResp) log.NewInfo(req.OperationID, "GetJoinedGroupList api return ", GroupListResp) From 18600bcd112ed6026cc07f049fa443392202c450 Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Thu, 30 Dec 2021 20:09:45 +0800 Subject: [PATCH 430/814] Refactor code --- internal/api/group/group.go | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/internal/api/group/group.go b/internal/api/group/group.go index f446d93a1..565dcc206 100644 --- a/internal/api/group/group.go +++ b/internal/api/group/group.go @@ -182,16 +182,27 @@ func GetGroupAllMemberList(c *gin.Context) { } + memberListResp.Test = JsonData(memberListResp.MemberList) log.NewInfo(req.OperationID, "GetGroupAllMember api return ", memberListResp) c.JSON(http.StatusOK, memberListResp) } +func JsonData(resp interface{}) []map[string]interface{} { + var result []map[string]interface{} + for _, v := range resp.([]proto.Message) { + m := ProtoToMap(v.(proto.Message), false) + result = append(result, m) + } + return result +} + func ProtoToMap(pb proto.Message, idFix bool) map[string]interface{} { marshaler := jsonpb.Marshaler{ OrigName: true, EnumsAsInts: false, EmitDefaults: true, } + s, _ := marshaler.MarshalToString(pb) out := make(map[string]interface{}) json.Unmarshal([]byte(s), &out) From a5765fc25ab6f33a5e9822bf45051574948d4903 Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Thu, 30 Dec 2021 20:39:49 +0800 Subject: [PATCH 431/814] Refactor code --- internal/api/group/group.go | 1 - 1 file changed, 1 deletion(-) diff --git a/internal/api/group/group.go b/internal/api/group/group.go index 565dcc206..f25fccb74 100644 --- a/internal/api/group/group.go +++ b/internal/api/group/group.go @@ -173,7 +173,6 @@ func GetGroupAllMemberList(c *gin.Context) { if len(memberListResp.MemberList) > 0 { for _, v := range memberListResp.MemberList { s, err := jsm.MarshalToString(v) - //{"GroupID":"7836e478bc43ce1d3b8889cac983f59b","UserID":"openIM001","roleLevel":1,"JoinTime":"0","NickName":"","FaceUrl":"https://oss.com.cn/head","AppMangerLevel":0,"JoinSource":0,"OperatorUserID":"","Ex":"xxx"} log.NewDebug(req.OperationID, "MarshalToString ", s, err) m := ProtoToMap(memberListResp.MemberList[0], false) log.NewDebug(req.OperationID, "mmm ", m) From 0fce4c6177e888f771c888a918e13b96013053d8 Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Thu, 30 Dec 2021 20:51:33 +0800 Subject: [PATCH 432/814] Refactor code --- internal/api/group/group.go | 71 ++++++++++--------------------- internal/utils/utils.go | 39 +++++++++++++++++ pkg/base_info/group_api_struct.go | 4 +- 3 files changed, 63 insertions(+), 51 deletions(-) create mode 100644 internal/utils/utils.go diff --git a/internal/api/group/group.go b/internal/api/group/group.go index f09e86e6b..5b3fd9c4e 100644 --- a/internal/api/group/group.go +++ b/internal/api/group/group.go @@ -10,12 +10,13 @@ import ( open_im_sdk "Open_IM/pkg/proto/sdk_ws" "Open_IM/pkg/utils" "context" - "encoding/json" + "github.com/gin-gonic/gin" - "github.com/golang/protobuf/jsonpb" - "github.com/golang/protobuf/proto" + "net/http" "strings" + + jsonData "Open_IM/internal/utils" ) func KickGroupMember(c *gin.Context) { @@ -167,56 +168,28 @@ func GetGroupAllMemberList(c *gin.Context) { memberListResp.MemberList = []*open_im_sdk.GroupMemberFullInfo{} } - jsm := &jsonpb.Marshaler{ - OrigName: true, - EnumsAsInts: false, - EmitDefaults: true, - } - - if len(memberListResp.MemberList) > 0 { - for _, v := range memberListResp.MemberList { - s, err := jsm.MarshalToString(v) - log.NewDebug(req.OperationID, "MarshalToString ", s, err) - m := ProtoToMap(memberListResp.MemberList[0], false) - log.NewDebug(req.OperationID, "mmm ", m) - memberListResp.Test = append(memberListResp.Test, m) - } - - } - - memberListResp.Test = JsonData(memberListResp.MemberList) + //jsm := &jsonpb.Marshaler{ + // OrigName: true, + // EnumsAsInts: false, + // EmitDefaults: true, + //} + // + //if len(memberListResp.MemberList) > 0 { + // for _, v := range memberListResp.MemberList { + // s, err := jsm.MarshalToString(v) + // log.NewDebug(req.OperationID, "MarshalToString ", s, err) + // m := ProtoToMap(memberListResp.MemberList[0], false) + // log.NewDebug(req.OperationID, "mmm ", m) + // memberListResp.Test = append(memberListResp.Test, m) + // } + // + //} + + memberListResp.Test = jsonData.JsonDataList(memberListResp.MemberList) log.NewInfo(req.OperationID, "GetGroupAllMember api return ", memberListResp) c.JSON(http.StatusOK, memberListResp) } -func JsonData(resp interface{}) []map[string]interface{} { - var result []map[string]interface{} - for _, v := range resp.([]proto.Message) { - m := ProtoToMap(v.(proto.Message), false) - result = append(result, m) - } - return result -} - -func ProtoToMap(pb proto.Message, idFix bool) map[string]interface{} { - marshaler := jsonpb.Marshaler{ - OrigName: true, - EnumsAsInts: false, - EmitDefaults: true, - } - - s, _ := marshaler.MarshalToString(pb) - out := make(map[string]interface{}) - json.Unmarshal([]byte(s), &out) - if idFix { - if _, ok := out["id"]; ok { - out["_id"] = out["id"] - delete(out, "id") - } - } - return out -} - func GetJoinedGroupList(c *gin.Context) { params := api.GetJoinedGroupListReq{} if err := c.BindJSON(¶ms); err != nil { diff --git a/internal/utils/utils.go b/internal/utils/utils.go new file mode 100644 index 000000000..45fe64435 --- /dev/null +++ b/internal/utils/utils.go @@ -0,0 +1,39 @@ +package utils + +import ( + "encoding/json" + "github.com/golang/protobuf/jsonpb" + "github.com/golang/protobuf/proto" +) + +func JsonDataList(resp interface{}) []map[string]interface{} { + result := make([]map[string]interface{}, 0) + for _, v := range resp.([]proto.Message) { + m := ProtoToMap(v.(proto.Message), false) + result = append(result, m) + } + return result +} + +func JsonDataOne(pb proto.Message) map[string]interface{} { + return ProtoToMap(pb, false) +} + +func ProtoToMap(pb proto.Message, idFix bool) map[string]interface{} { + marshaler := jsonpb.Marshaler{ + OrigName: true, + EnumsAsInts: false, + EmitDefaults: true, + } + + s, _ := marshaler.MarshalToString(pb) + out := make(map[string]interface{}) + json.Unmarshal([]byte(s), &out) + if idFix { + if _, ok := out["id"]; ok { + out["_id"] = out["id"] + delete(out, "id") + } + } + return out +} diff --git a/pkg/base_info/group_api_struct.go b/pkg/base_info/group_api_struct.go index f52590671..e11bd1f8f 100644 --- a/pkg/base_info/group_api_struct.go +++ b/pkg/base_info/group_api_struct.go @@ -69,8 +69,8 @@ type GetGroupAllMemberReq struct { } type GetGroupAllMemberResp struct { CommResp - MemberList []*open_im_sdk.GroupMemberFullInfo `json:"data"` - Test []map[string]interface{} `json:"data2"` + MemberList []*open_im_sdk.GroupMemberFullInfo + Test []map[string]interface{} `json:"data"` } type CreateGroupReq struct { From eb417c7e22d38289b471a5c21c26b4bc68ebb780 Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Thu, 30 Dec 2021 21:03:52 +0800 Subject: [PATCH 433/814] Refactor code --- cmd/open_im_api/main.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/cmd/open_im_api/main.go b/cmd/open_im_api/main.go index 46c79536e..ff61b1ccb 100644 --- a/cmd/open_im_api/main.go +++ b/cmd/open_im_api/main.go @@ -57,7 +57,7 @@ func main() { groupRouterGroup.POST("/get_groups_info", group.GetGroupsInfo) //1 groupRouterGroup.POST("/kick_group", group.KickGroupMember) //1 groupRouterGroup.POST("/get_group_member_list", group.GetGroupMemberList) //no use - groupRouterGroup.POST("/get_group_all_member_list", group.GetGroupAllMember) //1 + groupRouterGroup.POST("/get_group_all_member_list", group.GetGroupAllMemberList) //1 groupRouterGroup.POST("/get_group_members_info", group.GetGroupMembersInfo) //1 groupRouterGroup.POST("/invite_user_to_group", group.InviteUserToGroup) //1 groupRouterGroup.POST("/get_joined_group_list", group.GetJoinedGroupList) //1 From a654073c71275632b9495bbc849e4dbbee7f513a Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Thu, 30 Dec 2021 21:09:37 +0800 Subject: [PATCH 434/814] Refactor code --- internal/utils/utils.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/internal/utils/utils.go b/internal/utils/utils.go index 45fe64435..444e6f730 100644 --- a/internal/utils/utils.go +++ b/internal/utils/utils.go @@ -6,9 +6,9 @@ import ( "github.com/golang/protobuf/proto" ) -func JsonDataList(resp interface{}) []map[string]interface{} { +func JsonDataList(resp ...interface{}) []map[string]interface{} { result := make([]map[string]interface{}, 0) - for _, v := range resp.([]proto.Message) { + for _, v := range resp { m := ProtoToMap(v.(proto.Message), false) result = append(result, m) } From dcba4fef48c46debe33dd8befc56c1b83fba040b Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Thu, 30 Dec 2021 21:28:38 +0800 Subject: [PATCH 435/814] Refactor code --- internal/api/group/group.go | 2 ++ internal/utils/utils.go | 4 ++-- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/internal/api/group/group.go b/internal/api/group/group.go index 5b3fd9c4e..41281afd6 100644 --- a/internal/api/group/group.go +++ b/internal/api/group/group.go @@ -17,6 +17,7 @@ import ( "strings" jsonData "Open_IM/internal/utils" + "github.com/golang/protobuf/proto" ) func KickGroupMember(c *gin.Context) { @@ -186,6 +187,7 @@ func GetGroupAllMemberList(c *gin.Context) { //} memberListResp.Test = jsonData.JsonDataList(memberListResp.MemberList) + log.NewInfo(req.OperationID, "GetGroupAllMember api return ", memberListResp) c.JSON(http.StatusOK, memberListResp) } diff --git a/internal/utils/utils.go b/internal/utils/utils.go index 444e6f730..cc25645ed 100644 --- a/internal/utils/utils.go +++ b/internal/utils/utils.go @@ -8,8 +8,8 @@ import ( func JsonDataList(resp ...interface{}) []map[string]interface{} { result := make([]map[string]interface{}, 0) - for _, v := range resp { - m := ProtoToMap(v.(proto.Message), false) + for _, v := range resp[0].([]proto.Message) { + m := ProtoToMap(v, false) result = append(result, m) } return result From ab5faec68cd2f5d46b7a8890419c3dda724acd21 Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Thu, 30 Dec 2021 21:29:10 +0800 Subject: [PATCH 436/814] Refactor code --- internal/api/group/group.go | 1 - 1 file changed, 1 deletion(-) diff --git a/internal/api/group/group.go b/internal/api/group/group.go index 41281afd6..541ffa873 100644 --- a/internal/api/group/group.go +++ b/internal/api/group/group.go @@ -17,7 +17,6 @@ import ( "strings" jsonData "Open_IM/internal/utils" - "github.com/golang/protobuf/proto" ) func KickGroupMember(c *gin.Context) { From c8d803b559ff0d434d75dd8390b9092cfe3caef5 Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Fri, 31 Dec 2021 08:49:05 +0800 Subject: [PATCH 437/814] Refactor code --- internal/api/group/group.go | 17 ----------------- internal/utils/utils.go | 14 ++++++++++++-- pkg/base_info/group_api_struct.go | 3 ++- 3 files changed, 14 insertions(+), 20 deletions(-) diff --git a/internal/api/group/group.go b/internal/api/group/group.go index 541ffa873..d72d1c08f 100644 --- a/internal/api/group/group.go +++ b/internal/api/group/group.go @@ -168,23 +168,6 @@ func GetGroupAllMemberList(c *gin.Context) { memberListResp.MemberList = []*open_im_sdk.GroupMemberFullInfo{} } - //jsm := &jsonpb.Marshaler{ - // OrigName: true, - // EnumsAsInts: false, - // EmitDefaults: true, - //} - // - //if len(memberListResp.MemberList) > 0 { - // for _, v := range memberListResp.MemberList { - // s, err := jsm.MarshalToString(v) - // log.NewDebug(req.OperationID, "MarshalToString ", s, err) - // m := ProtoToMap(memberListResp.MemberList[0], false) - // log.NewDebug(req.OperationID, "mmm ", m) - // memberListResp.Test = append(memberListResp.Test, m) - // } - // - //} - memberListResp.Test = jsonData.JsonDataList(memberListResp.MemberList) log.NewInfo(req.OperationID, "GetGroupAllMember api return ", memberListResp) diff --git a/internal/utils/utils.go b/internal/utils/utils.go index cc25645ed..8656534ee 100644 --- a/internal/utils/utils.go +++ b/internal/utils/utils.go @@ -4,11 +4,21 @@ import ( "encoding/json" "github.com/golang/protobuf/jsonpb" "github.com/golang/protobuf/proto" + "reflect" ) -func JsonDataList(resp ...interface{}) []map[string]interface{} { +func JsonDataList(resp interface{}) []map[string]interface{} { + var list []proto.Message + if reflect.TypeOf(resp).Kind() == reflect.Slice { + s := reflect.ValueOf(resp) + for i := 0; i < s.Len(); i++ { + ele := s.Index(i) + list = append(list, ele.Interface().(proto.Message)) + } + } + result := make([]map[string]interface{}, 0) - for _, v := range resp[0].([]proto.Message) { + for _, v := range list { m := ProtoToMap(v, false) result = append(result, m) } diff --git a/pkg/base_info/group_api_struct.go b/pkg/base_info/group_api_struct.go index e11bd1f8f..d3c6d09b6 100644 --- a/pkg/base_info/group_api_struct.go +++ b/pkg/base_info/group_api_struct.go @@ -70,7 +70,8 @@ type GetGroupAllMemberReq struct { type GetGroupAllMemberResp struct { CommResp MemberList []*open_im_sdk.GroupMemberFullInfo - Test []map[string]interface{} `json:"data"` + + Test []map[string]interface{} `json:"data"` } type CreateGroupReq struct { From aab6ad96ebad7229085f4c6ee5372e0b8a2a0bde Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Fri, 31 Dec 2021 09:04:04 +0800 Subject: [PATCH 438/814] Refactor code --- internal/api/group/group.go | 30 ++++++++++++------------------ pkg/base_info/group_api_struct.go | 19 ++++++++++++------- 2 files changed, 24 insertions(+), 25 deletions(-) diff --git a/internal/api/group/group.go b/internal/api/group/group.go index d72d1c08f..2fa527e67 100644 --- a/internal/api/group/group.go +++ b/internal/api/group/group.go @@ -91,10 +91,8 @@ func GetGroupMembersInfo(c *gin.Context) { return } - memberListResp := api.GetGroupMembersInfoResp{CommResp: api.CommResp{ErrCode: RpcResp.ErrCode, ErrMsg: RpcResp.ErrMsg}, Data: RpcResp.MemberList} - if len(RpcResp.MemberList) == 0 { - memberListResp.Data = []*open_im_sdk.GroupMemberFullInfo{} - } + memberListResp := api.GetGroupMembersInfoResp{CommResp: api.CommResp{ErrCode: RpcResp.ErrCode, ErrMsg: RpcResp.ErrMsg}, MemberList: RpcResp.MemberList} + memberListResp.Data = jsonData.JsonDataList(RpcResp.MemberList) log.NewInfo(req.OperationID, "GetGroupMembersInfo api return ", memberListResp) c.JSON(http.StatusOK, memberListResp) } @@ -128,9 +126,7 @@ func GetGroupMemberList(c *gin.Context) { } memberListResp := api.GetGroupMemberListResp{CommResp: api.CommResp{ErrCode: RpcResp.ErrCode, ErrMsg: RpcResp.ErrMsg}, MemberList: RpcResp.MemberList, NextSeq: RpcResp.NextSeq} - if len(memberListResp.MemberList) == 0 { - memberListResp.MemberList = []*open_im_sdk.GroupMemberFullInfo{} - } + memberListResp.Data = jsonData.JsonDataList(memberListResp.MemberList) log.NewInfo(req.OperationID, "GetGroupMemberList api return ", memberListResp) c.JSON(http.StatusOK, memberListResp) @@ -164,12 +160,7 @@ func GetGroupAllMemberList(c *gin.Context) { } memberListResp := api.GetGroupAllMemberResp{CommResp: api.CommResp{ErrCode: RpcResp.ErrCode, ErrMsg: RpcResp.ErrMsg}, MemberList: RpcResp.MemberList} - if len(memberListResp.MemberList) == 0 { - memberListResp.MemberList = []*open_im_sdk.GroupMemberFullInfo{} - } - - memberListResp.Test = jsonData.JsonDataList(memberListResp.MemberList) - + memberListResp.Data = jsonData.JsonDataList(memberListResp.MemberList) log.NewInfo(req.OperationID, "GetGroupAllMember api return ", memberListResp) c.JSON(http.StatusOK, memberListResp) } @@ -202,11 +193,9 @@ func GetJoinedGroupList(c *gin.Context) { } GroupListResp := api.GetJoinedGroupListResp{CommResp: api.CommResp{ErrCode: RpcResp.ErrCode, ErrMsg: RpcResp.ErrMsg}, GroupInfoList: RpcResp.GroupList} - if len(RpcResp.GroupList) == 0 { - GroupListResp.GroupInfoList = []*open_im_sdk.GroupInfo{} - } - c.JSON(http.StatusOK, GroupListResp) + GroupListResp.Data = jsonData.JsonDataList(GroupListResp.GroupInfoList) log.NewInfo(req.OperationID, "GetJoinedGroupList api return ", GroupListResp) + c.JSON(http.StatusOK, GroupListResp) } func InviteUserToGroup(c *gin.Context) { @@ -240,8 +229,13 @@ func InviteUserToGroup(c *gin.Context) { for _, v := range RpcResp.Id2ResultList { resp.UserIDResultList = append(resp.UserIDResultList, api.UserIDResult{UserID: v.UserID, Result: v.Result}) } - c.JSON(http.StatusOK, resp) + + if len(resp.UserIDResultList) == 0 { + resp.UserIDResultList = []api.UserIDResult{} + } + log.NewInfo(req.OperationID, "InviteUserToGroup api return ", resp) + c.JSON(http.StatusOK, resp) } func CreateGroup(c *gin.Context) { diff --git a/pkg/base_info/group_api_struct.go b/pkg/base_info/group_api_struct.go index d3c6d09b6..4817d2669 100644 --- a/pkg/base_info/group_api_struct.go +++ b/pkg/base_info/group_api_struct.go @@ -28,7 +28,8 @@ type GetGroupMembersInfoReq struct { } type GetGroupMembersInfoResp struct { CommResp - Data []*open_im_sdk.GroupMemberFullInfo `json:"data"` + MemberList []*open_im_sdk.GroupMemberFullInfo + Data []map[string]interface{} `json:"data"` } type InviteUserToGroupReq struct { @@ -48,7 +49,8 @@ type GetJoinedGroupListReq struct { } type GetJoinedGroupListResp struct { CommResp - GroupInfoList []*open_im_sdk.GroupInfo `json:"data"` + GroupInfoList []*open_im_sdk.GroupInfo + Data []map[string]interface{} `json:"data"` } type GetGroupMemberListReq struct { @@ -59,8 +61,9 @@ type GetGroupMemberListReq struct { } type GetGroupMemberListResp struct { CommResp - NextSeq int32 `json:"nextSeq"` - MemberList []*open_im_sdk.GroupMemberFullInfo `json:"data"` + NextSeq int32 `json:"nextSeq"` + MemberList []*open_im_sdk.GroupMemberFullInfo + Data []map[string]interface{} `json:"data"` } type GetGroupAllMemberReq struct { @@ -71,7 +74,7 @@ type GetGroupAllMemberResp struct { CommResp MemberList []*open_im_sdk.GroupMemberFullInfo - Test []map[string]interface{} `json:"data"` + Data []map[string]interface{} `json:"data"` } type CreateGroupReq struct { @@ -93,7 +96,8 @@ type GetGroupApplicationListReq struct { } type GetGroupApplicationListResp struct { CommResp - GroupRequestList []*open_im_sdk.GroupRequest `json:"data"` + GroupRequestList []*open_im_sdk.GroupRequest + Data []map[string]interface{} `json:"data"` } type GetGroupInfoReq struct { @@ -102,7 +106,8 @@ type GetGroupInfoReq struct { } type GetGroupInfoResp struct { CommResp - GroupInfoList []*open_im_sdk.GroupInfo `json:"data"` + GroupInfoList []*open_im_sdk.GroupInfo + Data []map[string]interface{} `json:"data"` } type ApplicationGroupResponseReq struct { From 9bee5c79c8189eeafe524ff16be688a6ef6584ff Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Fri, 31 Dec 2021 09:25:11 +0800 Subject: [PATCH 439/814] Refactor code --- internal/api/friend/friend.go | 16 ++++++---------- internal/api/group/group.go | 9 +++------ internal/api/user/user.go | 2 ++ pkg/base_info/friend_api_struct.go | 21 ++++++++++----------- pkg/base_info/group_api_struct.go | 7 +++---- pkg/base_info/user_api_struct.go | 3 ++- 6 files changed, 26 insertions(+), 32 deletions(-) diff --git a/internal/api/friend/friend.go b/internal/api/friend/friend.go index bbb31236c..eb755879b 100644 --- a/internal/api/friend/friend.go +++ b/internal/api/friend/friend.go @@ -1,6 +1,7 @@ package friend import ( + jsonData "Open_IM/internal/utils" api "Open_IM/pkg/base_info" "Open_IM/pkg/common/config" "Open_IM/pkg/common/log" @@ -214,10 +215,11 @@ func GetBlacklist(c *gin.Context) { resp := api.GetBlackListResp{CommResp: api.CommResp{ErrCode: RpcResp.ErrCode, ErrMsg: RpcResp.ErrMsg}} for _, v := range RpcResp.BlackUserInfoList { - black := api.BlackUserInfo{} + black := open_im_sdk.PublicUserInfo{} utils.CopyStructFields(&black, v) resp.BlackUserInfoList = append(resp.BlackUserInfoList, &black) } + resp.Data = jsonData.JsonDataList(resp.BlackUserInfoList) log.NewInfo(req.CommID.OperationID, "GetBlacklist api return ", resp) c.JSON(http.StatusOK, resp) } @@ -381,9 +383,7 @@ func GetFriendList(c *gin.Context) { } resp := api.GetFriendListResp{CommResp: api.CommResp{ErrCode: RpcResp.ErrCode, ErrMsg: RpcResp.ErrMsg}, FriendInfoList: RpcResp.FriendInfoList} - if len(resp.FriendInfoList) == 0 { - resp.FriendInfoList = []*open_im_sdk.FriendInfo{} - } + resp.Data = jsonData.JsonDataList(resp.FriendInfoList) log.NewInfo(req.CommID.OperationID, "GetFriendList api return ", resp) c.JSON(http.StatusOK, resp) } @@ -417,9 +417,7 @@ func GetFriendApplyList(c *gin.Context) { } resp := api.GetFriendApplyListResp{CommResp: api.CommResp{ErrCode: RpcResp.ErrCode, ErrMsg: RpcResp.ErrMsg}, FriendRequestList: RpcResp.FriendRequestList} - if len(resp.FriendRequestList) == 0 { - resp.FriendRequestList = []*open_im_sdk.FriendRequest{} - } + resp.Data = jsonData.JsonDataList(resp.FriendRequestList) log.NewInfo(req.CommID.OperationID, "GetFriendApplyList api return ", resp) c.JSON(http.StatusOK, resp) } @@ -451,9 +449,7 @@ func GetSelfApplyList(c *gin.Context) { return } resp := api.GetSelfApplyListResp{CommResp: api.CommResp{ErrCode: RpcResp.ErrCode, ErrMsg: RpcResp.ErrMsg}, FriendRequestList: RpcResp.FriendRequestList} - if len(resp.FriendRequestList) == 0 { - resp.FriendRequestList = []*open_im_sdk.FriendRequest{} - } + resp.Data = jsonData.JsonDataList(resp.FriendRequestList) log.NewInfo(req.CommID.OperationID, "GetSelfApplyList api return ", resp) c.JSON(http.StatusOK, resp) } diff --git a/internal/api/group/group.go b/internal/api/group/group.go index 2fa527e67..ef3c599cb 100644 --- a/internal/api/group/group.go +++ b/internal/api/group/group.go @@ -271,6 +271,7 @@ func CreateGroup(c *gin.Context) { resp := api.CreateGroupResp{CommResp: api.CommResp{ErrCode: RpcResp.ErrCode, ErrMsg: RpcResp.ErrMsg}} if RpcResp.ErrCode == 0 { utils.CopyStructFields(&resp.GroupInfo, RpcResp.GroupInfo) + resp.Data = jsonData.JsonDataOne(&resp.GroupInfo) } log.NewInfo(req.OperationID, "CreateGroup api return ", resp) c.JSON(http.StatusOK, resp) @@ -305,9 +306,7 @@ func GetGroupApplicationList(c *gin.Context) { } resp := api.GetGroupApplicationListResp{CommResp: api.CommResp{ErrCode: reply.ErrCode, ErrMsg: reply.ErrMsg}, GroupRequestList: reply.GroupRequestList} - if len(resp.GroupRequestList) == 0 { - resp.GroupRequestList = []*open_im_sdk.GroupRequest{} - } + resp.Data = jsonData.JsonDataList(resp.GroupRequestList) log.NewInfo(req.OperationID, "GetGroupApplicationList api return ", resp) c.JSON(http.StatusOK, resp) } @@ -340,9 +339,7 @@ func GetGroupsInfo(c *gin.Context) { } resp := api.GetGroupInfoResp{CommResp: api.CommResp{ErrCode: RpcResp.ErrCode, ErrMsg: RpcResp.ErrMsg}, GroupInfoList: RpcResp.GroupInfoList} - if len(resp.GroupInfoList) == 0 { - resp.GroupInfoList = []*open_im_sdk.GroupInfo{} - } + resp.Data = jsonData.JsonDataList(resp.GroupInfoList) log.NewInfo(req.OperationID, "GetGroupsInfo api return ", resp) c.JSON(http.StatusOK, resp) } diff --git a/internal/api/user/user.go b/internal/api/user/user.go index 3a2620d51..ebc5decf7 100644 --- a/internal/api/user/user.go +++ b/internal/api/user/user.go @@ -1,6 +1,7 @@ package user import ( + jsonData "Open_IM/internal/utils" api "Open_IM/pkg/base_info" "Open_IM/pkg/common/config" "Open_IM/pkg/common/log" @@ -43,6 +44,7 @@ func GetUserInfo(c *gin.Context) { } resp := api.GetUserInfoResp{CommResp: api.CommResp{ErrCode: RpcResp.CommonResp.ErrCode, ErrMsg: RpcResp.CommonResp.ErrMsg}, UserInfoList: RpcResp.UserInfoList} + resp.Data = jsonData.JsonDataList(resp.UserInfoList) log.NewInfo(req.OperationID, "GetUserInfo api return ", resp) c.JSON(http.StatusOK, resp) } diff --git a/pkg/base_info/friend_api_struct.go b/pkg/base_info/friend_api_struct.go index 653730fc0..4b99b71e3 100644 --- a/pkg/base_info/friend_api_struct.go +++ b/pkg/base_info/friend_api_struct.go @@ -39,8 +39,6 @@ type AddFriendResp struct { type AddFriendResponseReq struct { ParamsCommFriend - //binding:"oneof=0 1 2"` - //} Flag int32 `json:"flag" binding:"required,oneof=-1 0 1"` HandleMsg string `json:"handleMsg"` } @@ -61,7 +59,8 @@ type GetBlackListReq struct { } type GetBlackListResp struct { CommResp - BlackUserInfoList []*BlackUserInfo `json:"data"` + BlackUserInfoList []*open_im_sdk.PublicUserInfo + Data []map[string]interface{} `json:"data"` } //type PublicUserInfo struct { @@ -71,10 +70,6 @@ type GetBlackListResp struct { // Gender int32 `json:"gender"` //} -type BlackUserInfo struct { - open_im_sdk.PublicUserInfo -} - type SetFriendRemarkReq struct { ParamsCommFriend Remark string `json:"remark" binding:"required"` @@ -106,7 +101,8 @@ type GetFriendsInfoReq struct { } type GetFriendsInfoResp struct { CommResp - FriendInfoList []*open_im_sdk.FriendInfo `json:"data"` + FriendInfoList []*open_im_sdk.FriendInfo + Data []map[string]interface{} `json:"data"` } type GetFriendListReq struct { @@ -115,7 +111,8 @@ type GetFriendListReq struct { } type GetFriendListResp struct { CommResp - FriendInfoList []*open_im_sdk.FriendInfo `json:"data"` + FriendInfoList []*open_im_sdk.FriendInfo + Data []map[string]interface{} `json:"data"` } type GetFriendApplyListReq struct { @@ -124,7 +121,8 @@ type GetFriendApplyListReq struct { } type GetFriendApplyListResp struct { CommResp - FriendRequestList []*open_im_sdk.FriendRequest `json:"data"` + FriendRequestList []*open_im_sdk.FriendRequest + Data []map[string]interface{} `json:"data"` } type GetSelfApplyListReq struct { @@ -133,5 +131,6 @@ type GetSelfApplyListReq struct { } type GetSelfApplyListResp struct { CommResp - FriendRequestList []*open_im_sdk.FriendRequest `json:"data"` + FriendRequestList []*open_im_sdk.FriendRequest + Data []map[string]interface{} `json:"data"` } diff --git a/pkg/base_info/group_api_struct.go b/pkg/base_info/group_api_struct.go index 4817d2669..69c124561 100644 --- a/pkg/base_info/group_api_struct.go +++ b/pkg/base_info/group_api_struct.go @@ -73,8 +73,7 @@ type GetGroupAllMemberReq struct { type GetGroupAllMemberResp struct { CommResp MemberList []*open_im_sdk.GroupMemberFullInfo - - Data []map[string]interface{} `json:"data"` + Data []map[string]interface{} `json:"data"` } type CreateGroupReq struct { @@ -84,10 +83,10 @@ type CreateGroupReq struct { GroupType int32 `json:"groupType"` OperationID string `json:"operationID" binding:"required"` } - type CreateGroupResp struct { CommResp - GroupInfo open_im_sdk.GroupInfo `json:"data"` + GroupInfo open_im_sdk.GroupInfo + Data map[string]interface{} `json:"data"` } type GetGroupApplicationListReq struct { diff --git a/pkg/base_info/user_api_struct.go b/pkg/base_info/user_api_struct.go index 8b9d54b4f..d8412f069 100644 --- a/pkg/base_info/user_api_struct.go +++ b/pkg/base_info/user_api_struct.go @@ -10,7 +10,8 @@ type GetUserInfoReq struct { } type GetUserInfoResp struct { CommResp - UserInfoList []*open_im_sdk.UserInfo `json:"data"` + UserInfoList []*open_im_sdk.UserInfo + Data []map[string]interface{} `json:"data"` } type UpdateUserInfoReq struct { From da1a563a3c4e880c239f57563a6a91ead639a4cf Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Fri, 31 Dec 2021 09:40:08 +0800 Subject: [PATCH 440/814] Refactor code --- pkg/base_info/group_api_struct.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkg/base_info/group_api_struct.go b/pkg/base_info/group_api_struct.go index 69c124561..75248bc20 100644 --- a/pkg/base_info/group_api_struct.go +++ b/pkg/base_info/group_api_struct.go @@ -28,8 +28,8 @@ type GetGroupMembersInfoReq struct { } type GetGroupMembersInfoResp struct { CommResp - MemberList []*open_im_sdk.GroupMemberFullInfo - Data []map[string]interface{} `json:"data"` + MemberList []*open_im_sdk.GroupMemberFullInfo `json:"-"` + Data []map[string]interface{} `json:"data"` } type InviteUserToGroupReq struct { From 9b2fde6ea26364e8ea728c516433b47e0d7645ab Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Fri, 31 Dec 2021 09:43:22 +0800 Subject: [PATCH 441/814] Refactor code --- pkg/base_info/group_api_struct.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkg/base_info/group_api_struct.go b/pkg/base_info/group_api_struct.go index 75248bc20..68b19f93a 100644 --- a/pkg/base_info/group_api_struct.go +++ b/pkg/base_info/group_api_struct.go @@ -72,8 +72,8 @@ type GetGroupAllMemberReq struct { } type GetGroupAllMemberResp struct { CommResp - MemberList []*open_im_sdk.GroupMemberFullInfo - Data []map[string]interface{} `json:"data"` + MemberList []*open_im_sdk.GroupMemberFullInfo `json:"-"` + Data []map[string]interface{} `json:"data"` } type CreateGroupReq struct { From da7d1876123da5827d079922194e15c78bf6dc11 Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Fri, 31 Dec 2021 10:40:32 +0800 Subject: [PATCH 442/814] Refactor code --- .../im_mysql_model => }/model_struct.go | 2 +- pkg/common/db/mongoModel.go | 6 ++-- pkg/common/db/mysql.go | 20 +++++++++-- .../im_mysql_model/friend_model.go | 10 +++--- .../im_mysql_model/friend_request_model.go | 16 ++++----- .../im_mysql_model/group_member_model.go | 34 +++++++++---------- .../mysql_model/im_mysql_model/group_model.go | 8 ++--- .../im_mysql_model/group_request_model.go | 18 +++++----- .../im_mysql_model/user_black_list_model.go | 8 ++--- .../mysql_model/im_mysql_model/user_model.go | 12 +++---- 10 files changed, 75 insertions(+), 59 deletions(-) rename pkg/common/db/{mysql_model/im_mysql_model => }/model_struct.go (99%) diff --git a/pkg/common/db/mysql_model/im_mysql_model/model_struct.go b/pkg/common/db/model_struct.go similarity index 99% rename from pkg/common/db/mysql_model/im_mysql_model/model_struct.go rename to pkg/common/db/model_struct.go index d47ca5334..c2ab763c5 100644 --- a/pkg/common/db/mysql_model/im_mysql_model/model_struct.go +++ b/pkg/common/db/model_struct.go @@ -1,4 +1,4 @@ -package im_mysql_model +package db import "time" diff --git a/pkg/common/db/mongoModel.go b/pkg/common/db/mongoModel.go index 99da02b0b..bb8650309 100644 --- a/pkg/common/db/mongoModel.go +++ b/pkg/common/db/mongoModel.go @@ -28,7 +28,7 @@ type UserChat struct { Msg []MsgInfo } -type GroupMember struct { +type GroupMember_x struct { GroupID string UIDList []string } @@ -248,7 +248,7 @@ func (d *DataBases) MgoSkipUID(count int) (string, error) { } func (d *DataBases) GetGroupMember(groupID string) []string { - groupInfo := GroupMember{} + groupInfo := GroupMember_x{} groupInfo.GroupID = groupID groupInfo.UIDList = make([]string, 0) @@ -282,7 +282,7 @@ func (d *DataBases) AddGroupMember(groupID, uid string) error { } if n == 0 { - groupInfo := GroupMember{} + groupInfo := GroupMember_x{} groupInfo.GroupID = groupID groupInfo.UIDList = append(groupInfo.UIDList, uid) err = c.Insert(&groupInfo) diff --git a/pkg/common/db/mysql.go b/pkg/common/db/mysql.go index 152273f97..173843ec1 100644 --- a/pkg/common/db/mysql.go +++ b/pkg/common/db/mysql.go @@ -23,19 +23,22 @@ func initMysqlDB() { var err1 error db, err := gorm.Open("mysql", dsn) if err != nil { - log.Error("", "", dsn) + log.NewError("0", "Open failed ", err.Error(), dsn) } if err != nil { time.Sleep(time.Duration(30) * time.Second) db, err1 = gorm.Open("mysql", dsn) if err1 != nil { + log.NewError("0", "Open failed ", err1.Error(), dsn) panic(err1.Error()) } } + //Check the database and table during initialization - sql := fmt.Sprintf("CREATE DATABASE IF NOT EXISTS %s ;", config.Config.Mysql.DBDatabaseName) + sql := fmt.Sprintf("CREATE DATABASE IF NOT EXISTS %s ;", config.Config.Mysql.DBDatabaseName+"test1") err = db.Exec(sql).Error if err != nil { + log.NewError("0", "Exec failed ", err.Error(), sql) panic(err.Error()) } db.Close() @@ -44,9 +47,22 @@ func initMysqlDB() { config.Config.Mysql.DBUserName, config.Config.Mysql.DBPassword, config.Config.Mysql.DBAddress[0], config.Config.Mysql.DBDatabaseName) db, err = gorm.Open("mysql", dsn) if err != nil { + log.NewError("0", "Open failed ", err.Error(), dsn) panic(err.Error()) } + log.NewInfo("open db ok ", dsn) + + db.AutoMigrate(&Friend{}, + &FriendRequest{}, + &Group{}, + &GroupMember{}, + &GroupRequest{}, + &User{}, + &Black{}) + + return + sqlTable := "CREATE TABLE IF NOT EXISTS `user` (" + " `uid` varchar(64) NOT NULL," + " `name` varchar(64) DEFAULT NULL," + 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 a5e6a5de2..089224e79 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 @@ -6,7 +6,7 @@ import ( "time" ) -func InsertToFriend(toInsertFollow *Friend) error { +func InsertToFriend(toInsertFollow *db.Friend) error { dbConn, err := db.DB.MysqlDB.DefaultGormDB() if err != nil { return err @@ -20,12 +20,12 @@ func InsertToFriend(toInsertFollow *Friend) error { return nil } -func GetFriendRelationshipFromFriend(OwnerUserID, FriendUserID string) (*Friend, error) { +func GetFriendRelationshipFromFriend(OwnerUserID, FriendUserID string) (*db.Friend, error) { dbConn, err := db.DB.MysqlDB.DefaultGormDB() if err != nil { return nil, err } - var friend Friend + var friend db.Friend err = dbConn.Table("friend").Where("owner_user_id=? and friend_user_id=?", OwnerUserID, FriendUserID).Find(&friend).Error if err != nil { return nil, err @@ -33,12 +33,12 @@ func GetFriendRelationshipFromFriend(OwnerUserID, FriendUserID string) (*Friend, return &friend, err } -func GetFriendListByUserID(OwnerUserID string) ([]Friend, error) { +func GetFriendListByUserID(OwnerUserID string) ([]db.Friend, error) { dbConn, err := db.DB.MysqlDB.DefaultGormDB() if err != nil { return nil, err } - var friends []Friend + var friends []db.Friend err = dbConn.Table("friend").Where("owner_user_id=?", OwnerUserID).Find(&friends).Error if err != nil { return nil, err diff --git a/pkg/common/db/mysql_model/im_mysql_model/friend_request_model.go b/pkg/common/db/mysql_model/im_mysql_model/friend_request_model.go index 5e99dcf5d..299cdfc69 100644 --- a/pkg/common/db/mysql_model/im_mysql_model/friend_request_model.go +++ b/pkg/common/db/mysql_model/im_mysql_model/friend_request_model.go @@ -19,12 +19,12 @@ import ( //} // who apply to add me -func GetReceivedFriendsApplicationListByUserID(ToUserID string) ([]FriendRequest, error) { +func GetReceivedFriendsApplicationListByUserID(ToUserID string) ([]db.FriendRequest, error) { dbConn, err := db.DB.MysqlDB.DefaultGormDB() if err != nil { return nil, err } - var usersInfo []FriendRequest + var usersInfo []db.FriendRequest err = dbConn.Table("friend_request").Where("to_user_id=?", ToUserID).Find(&usersInfo).Error if err != nil { return nil, err @@ -33,12 +33,12 @@ func GetReceivedFriendsApplicationListByUserID(ToUserID string) ([]FriendRequest } //I apply to add somebody -func GetSendFriendApplicationListByUserID(FromUserID string) ([]FriendRequest, error) { +func GetSendFriendApplicationListByUserID(FromUserID string) ([]db.FriendRequest, error) { dbConn, err := db.DB.MysqlDB.DefaultGormDB() if err != nil { return nil, err } - var usersInfo []FriendRequest + var usersInfo []db.FriendRequest err = dbConn.Table("friend_request").Where("from_user_id=?", FromUserID).Find(&usersInfo).Error if err != nil { return nil, err @@ -47,12 +47,12 @@ func GetSendFriendApplicationListByUserID(FromUserID string) ([]FriendRequest, e } //FromUserId apply to add ToUserID -func GetFriendApplicationByBothUserID(FromUserID, ToUserID string) (*FriendRequest, error) { +func GetFriendApplicationByBothUserID(FromUserID, ToUserID string) (*db.FriendRequest, error) { dbConn, err := db.DB.MysqlDB.DefaultGormDB() if err != nil { return nil, err } - var friendRequest FriendRequest + var friendRequest db.FriendRequest err = dbConn.Table("friend_request").Where("from_user_id=? and to_user_id=?", FromUserID, ToUserID).Find(&friendRequest).Error if err != nil { return nil, err @@ -60,7 +60,7 @@ func GetFriendApplicationByBothUserID(FromUserID, ToUserID string) (*FriendReque return &friendRequest, nil } -func UpdateFriendApplication(friendRequest *FriendRequest) error { +func UpdateFriendApplication(friendRequest *db.FriendRequest) error { dbConn, err := db.DB.MysqlDB.DefaultGormDB() if err != nil { return err @@ -71,7 +71,7 @@ func UpdateFriendApplication(friendRequest *FriendRequest) error { friendRequest.FromUserID, friendRequest.ToUserID).Update(&friendRequest).Error } -func InsertFriendApplication(friendRequest *FriendRequest) error { +func InsertFriendApplication(friendRequest *db.FriendRequest) error { dbConn, err := db.DB.MysqlDB.DefaultGormDB() if err != nil { return err diff --git a/pkg/common/db/mysql_model/im_mysql_model/group_member_model.go b/pkg/common/db/mysql_model/im_mysql_model/group_member_model.go index 95f4c5723..ce115fcda 100644 --- a/pkg/common/db/mysql_model/im_mysql_model/group_member_model.go +++ b/pkg/common/db/mysql_model/im_mysql_model/group_member_model.go @@ -18,7 +18,7 @@ import ( // Ex string `gorm:"column:ex"` //} -func InsertIntoGroupMember(toInsertInfo GroupMember) error { +func InsertIntoGroupMember(toInsertInfo db.GroupMember) error { dbConn, err := db.DB.MysqlDB.DefaultGormDB() if err != nil { return err @@ -34,12 +34,12 @@ func InsertIntoGroupMember(toInsertInfo GroupMember) error { return nil } -func GetGroupMemberListByUserID(userID string) ([]GroupMember, error) { +func GetGroupMemberListByUserID(userID string) ([]db.GroupMember, error) { dbConn, err := db.DB.MysqlDB.DefaultGormDB() if err != nil { return nil, err } - var groupMemberList []GroupMember + var groupMemberList []db.GroupMember err = dbConn.Table("group_member").Where("user_id=?", userID).Find(&groupMemberList).Error if err != nil { return nil, err @@ -47,12 +47,12 @@ func GetGroupMemberListByUserID(userID string) ([]GroupMember, error) { return groupMemberList, nil } -func GetGroupMemberListByGroupID(groupID string) ([]GroupMember, error) { +func GetGroupMemberListByGroupID(groupID string) ([]db.GroupMember, error) { dbConn, err := db.DB.MysqlDB.DefaultGormDB() if err != nil { return nil, err } - var groupMemberList []GroupMember + var groupMemberList []db.GroupMember err = dbConn.Table("group_member").Where("group_id=?", groupID).Find(&groupMemberList).Error if err != nil { return nil, err @@ -60,12 +60,12 @@ func GetGroupMemberListByGroupID(groupID string) ([]GroupMember, error) { return groupMemberList, nil } -func GetGroupMemberListByGroupIDAndRoleLevel(groupID string, roleLevel int32) ([]GroupMember, error) { +func GetGroupMemberListByGroupIDAndRoleLevel(groupID string, roleLevel int32) ([]db.GroupMember, error) { dbConn, err := db.DB.MysqlDB.DefaultGormDB() if err != nil { return nil, err } - var groupMemberList []GroupMember + var groupMemberList []db.GroupMember err = dbConn.Table("group_member").Where("group_id=? and role_level=?", groupID, roleLevel).Find(&groupMemberList).Error if err != nil { return nil, err @@ -73,12 +73,12 @@ func GetGroupMemberListByGroupIDAndRoleLevel(groupID string, roleLevel int32) ([ return groupMemberList, nil } -func GetGroupMemberInfoByGroupIDAndUserID(groupID, userID string) (*GroupMember, error) { +func GetGroupMemberInfoByGroupIDAndUserID(groupID, userID string) (*db.GroupMember, error) { dbConn, err := db.DB.MysqlDB.DefaultGormDB() if err != nil { return nil, err } - var groupMember GroupMember + var groupMember db.GroupMember err = dbConn.Table("group_member").Where("group_id=? and user_id=? ", groupID, userID).Limit(1).Find(&groupMember).Error if err != nil { return nil, err @@ -91,14 +91,14 @@ func DeleteGroupMemberByGroupIDAndUserID(groupID, userID string) error { if err != nil { return err } - err = dbConn.Table("group_member").Where("group_id=? and user_id=? ", groupID, userID).Delete(&GroupMember{}).Error + err = dbConn.Table("group_member").Where("group_id=? and user_id=? ", groupID, userID).Delete(&db.GroupMember{}).Error if err != nil { return err } return nil } -func UpdateGroupMemberInfo(groupMemberInfo GroupMember) error { +func UpdateGroupMemberInfo(groupMemberInfo db.GroupMember) error { dbConn, err := db.DB.MysqlDB.DefaultGormDB() if err != nil { return err @@ -110,12 +110,12 @@ func UpdateGroupMemberInfo(groupMemberInfo GroupMember) error { return nil } -func GetOwnerManagerByGroupID(groupID string) ([]GroupMember, error) { +func GetOwnerManagerByGroupID(groupID string) ([]db.GroupMember, error) { dbConn, err := db.DB.MysqlDB.DefaultGormDB() if err != nil { return nil, err } - var groupMemberList []GroupMember + var groupMemberList []db.GroupMember err = dbConn.Table("group_member").Where("group_id=? and role_level>?", groupID, constant.GroupOrdinaryUsers).Find(&groupMemberList).Error if err != nil { return nil, err @@ -136,7 +136,7 @@ func GetGroupMemberNumByGroupID(groupID string) uint32 { return number } -func GetGroupOwnerInfoByGroupID(groupID string) (*GroupMember, error) { +func GetGroupOwnerInfoByGroupID(groupID string) (*db.GroupMember, error) { omList, err := GetOwnerManagerByGroupID(groupID) if err != nil { return nil, err @@ -169,12 +169,12 @@ func RemoveGroupMember(groupID string, UserID string) error { return DeleteGroupMemberByGroupIDAndUserID(groupID, UserID) } -func GetMemberInfoByID(groupID string, userID string) (*GroupMember, error) { +func GetMemberInfoByID(groupID string, userID string) (*db.GroupMember, error) { return GetGroupMemberInfoByGroupIDAndUserID(groupID, userID) } -func GetGroupMemberByGroupID(groupID string, filter int32, begin int32, maxNumber int32) ([]GroupMember, error) { - var memberList []GroupMember +func GetGroupMemberByGroupID(groupID string, filter int32, begin int32, maxNumber int32) ([]db.GroupMember, error) { + var memberList []db.GroupMember var err error if filter >= 0 { memberList, err = GetGroupMemberListByGroupIDAndRoleLevel(groupID, filter) //sorted by join time diff --git a/pkg/common/db/mysql_model/im_mysql_model/group_model.go b/pkg/common/db/mysql_model/im_mysql_model/group_model.go index 12c809c28..18eba61f8 100644 --- a/pkg/common/db/mysql_model/im_mysql_model/group_model.go +++ b/pkg/common/db/mysql_model/im_mysql_model/group_model.go @@ -18,7 +18,7 @@ import ( // Ex string `gorm:"column:ex"` //} -func InsertIntoGroup(groupInfo Group) error { +func InsertIntoGroup(groupInfo db.Group) error { dbConn, err := db.DB.MysqlDB.DefaultGormDB() if err != nil { return err @@ -34,12 +34,12 @@ func InsertIntoGroup(groupInfo Group) error { return nil } -func GetGroupInfoByGroupID(groupId string) (*Group, error) { +func GetGroupInfoByGroupID(groupId string) (*db.Group, error) { dbConn, err := db.DB.MysqlDB.DefaultGormDB() if err != nil { return nil, err } - var groupInfo Group + var groupInfo db.Group err = dbConn.Table("group").Where("group_id=?", groupId).Find(&groupInfo).Error if err != nil { return nil, err @@ -47,7 +47,7 @@ func GetGroupInfoByGroupID(groupId string) (*Group, error) { return &groupInfo, nil } -func SetGroupInfo(groupInfo Group) error { +func SetGroupInfo(groupInfo db.Group) error { dbConn, err := db.DB.MysqlDB.DefaultGormDB() if err != nil { return err diff --git a/pkg/common/db/mysql_model/im_mysql_model/group_request_model.go b/pkg/common/db/mysql_model/im_mysql_model/group_request_model.go index 9ccffeaba..7ee352718 100644 --- a/pkg/common/db/mysql_model/im_mysql_model/group_request_model.go +++ b/pkg/common/db/mysql_model/im_mysql_model/group_request_model.go @@ -19,7 +19,7 @@ import ( // Ex string `gorm:"column:ex"` //} -func UpdateGroupRequest(groupRequest GroupRequest) error { +func UpdateGroupRequest(groupRequest db.GroupRequest) error { dbConn, err := db.DB.MysqlDB.DefaultGormDB() if err != nil { return err @@ -30,7 +30,7 @@ func UpdateGroupRequest(groupRequest GroupRequest) error { return dbConn.Table("group_request").Where("group_id=? and user_id=?", groupRequest.GroupID, groupRequest.UserID).Update(&groupRequest).Error } -func InsertIntoGroupRequest(toInsertInfo GroupRequest) error { +func InsertIntoGroupRequest(toInsertInfo db.GroupRequest) error { dbConn, err := db.DB.MysqlDB.DefaultGormDB() if err != nil { return err @@ -48,12 +48,12 @@ func InsertIntoGroupRequest(toInsertInfo GroupRequest) error { return nil } -func GetGroupRequestByGroupIDAndUserID(groupID, userID string) (*GroupRequest, error) { +func GetGroupRequestByGroupIDAndUserID(groupID, userID string) (*db.GroupRequest, error) { dbConn, err := db.DB.MysqlDB.DefaultGormDB() if err != nil { return nil, err } - var groupRequest GroupRequest + var groupRequest db.GroupRequest err = dbConn.Table("group_request").Where("user_id=? and group_id=?", userID, groupID).Find(&groupRequest).Error if err != nil { return nil, err @@ -66,19 +66,19 @@ func DelGroupRequestByGroupIDAndUserID(groupID, userID string) error { if err != nil { return err } - err = dbConn.Table("group_request").Where("group_id=? and user_id=?", groupID, userID).Delete(&GroupRequest{}).Error + err = dbConn.Table("group_request").Where("group_id=? and user_id=?", groupID, userID).Delete(&db.GroupRequest{}).Error if err != nil { return err } return nil } -func GetGroupRequestByGroupID(groupID string) ([]GroupRequest, error) { +func GetGroupRequestByGroupID(groupID string) ([]db.GroupRequest, error) { dbConn, err := db.DB.MysqlDB.DefaultGormDB() if err != nil { return nil, err } - var groupRequestList []GroupRequest + var groupRequestList []db.GroupRequest err = dbConn.Table("group_request").Where("group_id=?", groupID).Find(&groupRequestList).Error if err != nil { return nil, err @@ -87,8 +87,8 @@ func GetGroupRequestByGroupID(groupID string) ([]GroupRequest, error) { } //received -func GetGroupApplicationList(userID string) ([]GroupRequest, error) { - var groupRequestList []GroupRequest +func GetGroupApplicationList(userID string) ([]db.GroupRequest, error) { + var groupRequestList []db.GroupRequest memberList, err := GetGroupMemberListByUserID(userID) if err != nil { return nil, err diff --git a/pkg/common/db/mysql_model/im_mysql_model/user_black_list_model.go b/pkg/common/db/mysql_model/im_mysql_model/user_black_list_model.go index 42a7c2fa9..fe161c851 100644 --- a/pkg/common/db/mysql_model/im_mysql_model/user_black_list_model.go +++ b/pkg/common/db/mysql_model/im_mysql_model/user_black_list_model.go @@ -5,7 +5,7 @@ import ( "time" ) -func InsertInToUserBlackList(black Black) error { +func InsertInToUserBlackList(black db.Black) error { dbConn, err := db.DB.MysqlDB.DefaultGormDB() if err != nil { return err @@ -29,7 +29,7 @@ func CheckBlack(ownerUserID, blockUserID string) error { if err != nil { return err } - var black Black + var black db.Black err = dbConn.Table("user_black_list").Where("owner_user_id=? and block_user_id=?", ownerUserID, blockUserID).Find(&black).Error return err } @@ -44,12 +44,12 @@ func RemoveBlackList(ownerUserID, blockUserID string) error { return err } -func GetBlackListByUserID(ownerUserID string) ([]Black, error) { +func GetBlackListByUserID(ownerUserID string) ([]db.Black, error) { dbConn, err := db.DB.MysqlDB.DefaultGormDB() if err != nil { return nil, err } - var blackListUsersInfo []Black + var blackListUsersInfo []db.Black err = dbConn.Table("user_black_list").Where("owner_user_id=?", ownerUserID).Find(&blackListUsersInfo).Error if err != nil { return nil, err 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 6c9069558..3ae38f4b2 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 @@ -19,7 +19,7 @@ func init() { } else { continue } - var appMgr User + var appMgr db.User appMgr.UserID = v appMgr.Nickname = "AppManager" + utils.IntToString(k+1) appMgr.AppMangerLevel = constant.AppAdmin @@ -31,7 +31,7 @@ func init() { } } -func UserRegister(user User) error { +func UserRegister(user db.User) error { dbConn, err := db.DB.MysqlDB.DefaultGormDB() if err != nil { return err @@ -67,16 +67,16 @@ func DeleteUser(userID string) (i int64) { if err != nil { return 0 } - i = dbConn.Table("user").Where("user_id=?", userID).Delete(User{}).RowsAffected + i = dbConn.Table("user").Where("user_id=?", userID).Delete(db.User{}).RowsAffected return i } -func GetUserByUserID(userID string) (*User, error) { +func GetUserByUserID(userID string) (*db.User, error) { dbConn, err := db.DB.MysqlDB.DefaultGormDB() if err != nil { return nil, err } - var user User + var user db.User err = dbConn.Table("user").Where("user_id=?", userID).First(&user).Error if err != nil { return nil, err @@ -84,7 +84,7 @@ func GetUserByUserID(userID string) (*User, error) { return &user, nil } -func UpdateUserInfo(user User) error { +func UpdateUserInfo(user db.User) error { dbConn, err := db.DB.MysqlDB.DefaultGormDB() if err != nil { return err From fe285ecd6b095e97f1798bd43b1ee5417776bf31 Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Fri, 31 Dec 2021 10:41:06 +0800 Subject: [PATCH 443/814] Refactor code --- 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 089224e79..aa527698f 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 @@ -60,7 +60,7 @@ func DeleteSingleFriendInfo(OwnerUserID, FriendUserID string) error { if err != nil { return err } - err = dbConn.Table("friend").Where("owner_user_id=? and friend_user_id=?", OwnerUserID, FriendUserID).Delete(Friend{}).Error + err = dbConn.Table("friend").Where("owner_user_id=? and friend_user_id=?", OwnerUserID, FriendUserID).Delete(db.Friend{}).Error return err } From 1290bc8cc9f30b6372bf99a6701e1acf94d06495 Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Fri, 31 Dec 2021 10:45:11 +0800 Subject: [PATCH 444/814] Refactor code --- .../db/mysql_model/im_mysql_model/user_black_list_model.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkg/common/db/mysql_model/im_mysql_model/user_black_list_model.go b/pkg/common/db/mysql_model/im_mysql_model/user_black_list_model.go index fe161c851..09c7d6c29 100644 --- a/pkg/common/db/mysql_model/im_mysql_model/user_black_list_model.go +++ b/pkg/common/db/mysql_model/im_mysql_model/user_black_list_model.go @@ -40,7 +40,7 @@ func RemoveBlackList(ownerUserID, blockUserID string) error { return err } - err = dbConn.Table("user_black_list").Where("owner_user_id=? and block_user_id=?", ownerUserID, blockUserID).Delete(&Black{}).Error + err = dbConn.Table("user_black_list").Where("owner_user_id=? and block_user_id=?", ownerUserID, blockUserID).Delete(&db.Black{}).Error return err } From cd62d7f0d988b38c5fb860469995ae7c25516735 Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Fri, 31 Dec 2021 10:49:37 +0800 Subject: [PATCH 445/814] Refactor code --- pkg/common/utils/utils.go | 29 +++++++++++++++-------------- 1 file changed, 15 insertions(+), 14 deletions(-) diff --git a/pkg/common/utils/utils.go b/pkg/common/utils/utils.go index 61dc47be0..1df23b0b2 100644 --- a/pkg/common/utils/utils.go +++ b/pkg/common/utils/utils.go @@ -1,6 +1,7 @@ package utils import ( + db "Open_IM/pkg/common/db" imdb "Open_IM/pkg/common/db/mysql_model/im_mysql_model" "Open_IM/pkg/common/token_verify" open_im_sdk "Open_IM/pkg/proto/sdk_ws" @@ -14,12 +15,12 @@ func OperationIDGenerator() string { return strconv.FormatInt(time.Now().UnixNano()+int64(rand.Uint32()), 10) } -func FriendOpenIMCopyDB(dst *imdb.Friend, src *open_im_sdk.FriendInfo) { +func FriendOpenIMCopyDB(dst *db.Friend, src *open_im_sdk.FriendInfo) { utils.CopyStructFields(dst, src) dst.FriendUserID = src.FriendUser.UserID } -func FriendDBCopyOpenIM(dst *open_im_sdk.FriendInfo, src *imdb.Friend) { +func FriendDBCopyOpenIM(dst *open_im_sdk.FriendInfo, src *db.Friend) { utils.CopyStructFields(dst, src) user, _ := imdb.GetUserByUserID(src.FriendUserID) if user != nil { @@ -30,21 +31,21 @@ func FriendDBCopyOpenIM(dst *open_im_sdk.FriendInfo, src *imdb.Friend) { } // -func FriendRequestOpenIMCopyDB(dst *imdb.FriendRequest, src *open_im_sdk.FriendRequest) { +func FriendRequestOpenIMCopyDB(dst *db.FriendRequest, src *open_im_sdk.FriendRequest) { utils.CopyStructFields(dst, src) } -func FriendRequestDBCopyOpenIM(dst *open_im_sdk.FriendRequest, src *imdb.FriendRequest) { +func FriendRequestDBCopyOpenIM(dst *open_im_sdk.FriendRequest, src *db.FriendRequest) { utils.CopyStructFields(dst, src) dst.CreateTime = src.CreateTime.Unix() dst.HandleTime = src.HandleTime.Unix() } -func GroupOpenIMCopyDB(dst *imdb.Group, src *open_im_sdk.GroupInfo) { +func GroupOpenIMCopyDB(dst *db.Group, src *open_im_sdk.GroupInfo) { utils.CopyStructFields(dst, src) } -func GroupDBCopyOpenIM(dst *open_im_sdk.GroupInfo, src *imdb.Group) { +func GroupDBCopyOpenIM(dst *open_im_sdk.GroupInfo, src *db.Group) { utils.CopyStructFields(dst, src) user, _ := imdb.GetGroupOwnerInfoByGroupID(src.GroupID) if user != nil { @@ -54,11 +55,11 @@ func GroupDBCopyOpenIM(dst *open_im_sdk.GroupInfo, src *imdb.Group) { dst.CreateTime = src.CreateTime.Unix() } -func GroupMemberOpenIMCopyDB(dst *imdb.GroupMember, src *open_im_sdk.GroupMemberFullInfo) { +func GroupMemberOpenIMCopyDB(dst *db.GroupMember, src *open_im_sdk.GroupMemberFullInfo) { utils.CopyStructFields(dst, src) } -func GroupMemberDBCopyOpenIM(dst *open_im_sdk.GroupMemberFullInfo, src *imdb.GroupMember) { +func GroupMemberDBCopyOpenIM(dst *open_im_sdk.GroupMemberFullInfo, src *db.GroupMember) { utils.CopyStructFields(dst, src) if token_verify.IsMangerUserID(src.UserID) { u, _ := imdb.GetUserByUserID(src.UserID) @@ -70,31 +71,31 @@ func GroupMemberDBCopyOpenIM(dst *open_im_sdk.GroupMemberFullInfo, src *imdb.Gro dst.JoinTime = src.JoinTime.Unix() } -func GroupRequestOpenIMCopyDB(dst *imdb.GroupRequest, src *open_im_sdk.GroupRequest) { +func GroupRequestOpenIMCopyDB(dst *db.GroupRequest, src *open_im_sdk.GroupRequest) { utils.CopyStructFields(dst, src) } -func GroupRequestDBCopyOpenIM(dst *open_im_sdk.GroupRequest, src *imdb.GroupRequest) { +func GroupRequestDBCopyOpenIM(dst *open_im_sdk.GroupRequest, src *db.GroupRequest) { utils.CopyStructFields(dst, src) dst.ReqTime = src.ReqTime.Unix() dst.HandleTime = src.HandledTime.Unix() } -func UserOpenIMCopyDB(dst *imdb.User, src *open_im_sdk.UserInfo) { +func UserOpenIMCopyDB(dst *db.User, src *open_im_sdk.UserInfo) { utils.CopyStructFields(dst, src) } -func UserDBCopyOpenIM(dst *open_im_sdk.UserInfo, src *imdb.User) { +func UserDBCopyOpenIM(dst *open_im_sdk.UserInfo, src *db.User) { utils.CopyStructFields(dst, src) dst.CreateTime = src.CreateTime.Unix() } -func BlackOpenIMCopyDB(dst *imdb.Black, src *open_im_sdk.BlackInfo) { +func BlackOpenIMCopyDB(dst *db.Black, src *open_im_sdk.BlackInfo) { utils.CopyStructFields(dst, src) dst.BlockUserID = src.BlackUserInfo.UserID } -func BlackDBCopyOpenIM(dst *open_im_sdk.BlackInfo, src *imdb.Black) { +func BlackDBCopyOpenIM(dst *open_im_sdk.BlackInfo, src *db.Black) { utils.CopyStructFields(dst, src) dst.CreateTime = src.CreateTime.Unix() user, _ := imdb.GetUserByUserID(src.BlockUserID) From 87659b56a47b05cb2043a7db98ee2748c5a29cf3 Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Fri, 31 Dec 2021 10:57:45 +0800 Subject: [PATCH 446/814] Refactor code --- internal/rpc/auth/auth.go | 3 ++- internal/rpc/friend/firend.go | 13 ++++++------ internal/rpc/group/group.go | 37 +++++++++++++++++------------------ internal/rpc/user/user.go | 2 +- 4 files changed, 28 insertions(+), 27 deletions(-) diff --git a/internal/rpc/auth/auth.go b/internal/rpc/auth/auth.go index d0137d012..d05c9d3d1 100644 --- a/internal/rpc/auth/auth.go +++ b/internal/rpc/auth/auth.go @@ -2,6 +2,7 @@ package auth import ( "Open_IM/pkg/common/constant" + "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" @@ -20,7 +21,7 @@ import ( func (rpc *rpcAuth) UserRegister(_ context.Context, req *pbAuth.UserRegisterReq) (*pbAuth.UserRegisterResp, error) { log.NewInfo(req.OperationID, "UserRegister args ", req.String()) - var user imdb.User + var user db.User utils.CopyStructFields(&user, req.UserInfo) if req.UserInfo.Birth != 0 { user.Birth = utils.UnixSecondToTime(req.UserInfo.Birth) diff --git a/internal/rpc/friend/firend.go b/internal/rpc/friend/firend.go index f548a21b6..6d2348324 100644 --- a/internal/rpc/friend/firend.go +++ b/internal/rpc/friend/firend.go @@ -4,6 +4,7 @@ import ( chat "Open_IM/internal/rpc/msg" "Open_IM/pkg/common/config" "Open_IM/pkg/common/constant" + "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" @@ -116,7 +117,7 @@ func (s *friendServer) AddBlacklist(ctx context.Context, req *pbFriend.AddBlackl log.NewError(req.CommID.OperationID, "CheckAccess false ", req.CommID.OpUserID, req.CommID.FromUserID) return &pbFriend.AddBlacklistResp{CommonResp: &pbFriend.CommonResp{ErrCode: constant.ErrAccess.ErrCode, ErrMsg: constant.ErrAccess.ErrMsg}}, nil } - black := imdb.Black{OwnerUserID: req.CommID.FromUserID, BlockUserID: req.CommID.ToUserID, OperatorUserID: req.CommID.OpUserID} + black := db.Black{OwnerUserID: req.CommID.FromUserID, BlockUserID: req.CommID.ToUserID, OperatorUserID: req.CommID.OpUserID} err := imdb.InsertInToUserBlackList(black) if err != nil { @@ -142,7 +143,7 @@ func (s *friendServer) AddFriend(ctx context.Context, req *pbFriend.AddFriendReq } //Establish a latest relationship in the friend request table - friendRequest := imdb.FriendRequest{ReqMsg: req.ReqMsg} + friendRequest := db.FriendRequest{ReqMsg: req.ReqMsg} utils.CopyStructFields(&friendRequest, req.CommID) // {openIM001 openIM002 0 test add friend 0001-01-01 00:00:00 +0000 UTC 0001-01-01 00:00:00 +0000 UTC }] log.NewDebug(req.CommID.OperationID, "UpdateFriendApplication args ", friendRequest) @@ -190,14 +191,14 @@ func (s *friendServer) ImportFriend(ctx context.Context, req *pbFriend.ImportFri } else { if _, err := imdb.GetFriendRelationshipFromFriend(req.FromUserID, v); err != nil { //Establish two single friendship - toInsertFollow := imdb.Friend{OwnerUserID: req.FromUserID, FriendUserID: v} + toInsertFollow := db.Friend{OwnerUserID: req.FromUserID, FriendUserID: v} err1 := imdb.InsertToFriend(&toInsertFollow) if err1 != nil { log.NewError(req.OperationID, "InsertToFriend failed ", err1.Error(), toInsertFollow) resp.UserIDResultList = append(resp.UserIDResultList, &pbFriend.UserIDResult{UserID: v, Result: -1}) continue } - toInsertFollow = imdb.Friend{OwnerUserID: v, FriendUserID: req.FromUserID} + toInsertFollow = db.Friend{OwnerUserID: v, FriendUserID: req.FromUserID} err2 := imdb.InsertToFriend(&toInsertFollow) if err2 != nil { log.NewError(req.OperationID, "InsertToFriend failed ", err2.Error(), toInsertFollow) @@ -253,7 +254,7 @@ func (s *friendServer) AddFriendResponse(ctx context.Context, req *pbFriend.AddF log.NewWarn(req.CommID.OperationID, "GetFriendRelationshipFromFriend exist", req.CommID.FromUserID, req.CommID.ToUserID) } else { //Establish two single friendship - toInsertFollow := imdb.Friend{OwnerUserID: req.CommID.FromUserID, FriendUserID: req.CommID.ToUserID, OperatorUserID: req.CommID.OpUserID} + toInsertFollow := db.Friend{OwnerUserID: req.CommID.FromUserID, FriendUserID: req.CommID.ToUserID, OperatorUserID: req.CommID.OpUserID} err = imdb.InsertToFriend(&toInsertFollow) if err != nil { log.NewError(req.CommID.OperationID, "InsertToFriend failed ", err.Error(), toInsertFollow) @@ -265,7 +266,7 @@ func (s *friendServer) AddFriendResponse(ctx context.Context, req *pbFriend.AddF if err == nil { log.NewWarn(req.CommID.OperationID, "GetFriendRelationshipFromFriend exist", req.CommID.ToUserID, req.CommID.FromUserID) } else { - toInsertFollow := imdb.Friend{OwnerUserID: req.CommID.ToUserID, FriendUserID: req.CommID.FromUserID, OperatorUserID: req.CommID.OpUserID} + toInsertFollow := db.Friend{OwnerUserID: req.CommID.ToUserID, FriendUserID: req.CommID.FromUserID, OperatorUserID: req.CommID.OpUserID} err = imdb.InsertToFriend(&toInsertFollow) if err != nil { log.NewError(req.CommID.OperationID, "InsertToFriend failed ", err.Error(), toInsertFollow) diff --git a/internal/rpc/group/group.go b/internal/rpc/group/group.go index 2af77fa97..322039a75 100644 --- a/internal/rpc/group/group.go +++ b/internal/rpc/group/group.go @@ -5,7 +5,6 @@ import ( "Open_IM/pkg/common/config" "Open_IM/pkg/common/constant" "Open_IM/pkg/common/db" - "Open_IM/pkg/common/db/mysql_model/im_mysql_model" imdb "Open_IM/pkg/common/db/mysql_model/im_mysql_model" "Open_IM/pkg/common/log" "Open_IM/pkg/common/token_verify" @@ -79,10 +78,10 @@ func (s *groupServer) CreateGroup(ctx context.Context, req *pbGroup.CreateGroupR //Time stamp + MD5 to generate group chat id groupId := utils.Md5(strconv.FormatInt(time.Now().UnixNano(), 10)) //to group - groupInfo := imdb.Group{GroupID: groupId} + groupInfo := db.Group{GroupID: groupId} utils.CopyStructFields(&groupInfo, req.GroupInfo) groupInfo.CreatorUserID = req.OpUserID - err := im_mysql_model.InsertIntoGroup(groupInfo) + err := imdb.InsertIntoGroup(groupInfo) if err != nil { log.NewError(req.OperationID, "InsertIntoGroup failed, ", err.Error(), groupInfo) return &pbGroup.CreateGroupResp{ErrCode: constant.ErrDB.ErrCode, ErrMsg: constant.ErrDB.ErrMsg}, nil @@ -95,9 +94,9 @@ func (s *groupServer) CreateGroup(ctx context.Context, req *pbGroup.CreateGroupR } //to group member - groupMember := imdb.GroupMember{GroupID: groupId, RoleLevel: constant.GroupOwner, OperatorUserID: req.OpUserID} + groupMember := db.GroupMember{GroupID: groupId, RoleLevel: constant.GroupOwner, OperatorUserID: req.OpUserID} utils.CopyStructFields(&groupMember, us) - err = im_mysql_model.InsertIntoGroupMember(groupMember) + err = imdb.InsertIntoGroupMember(groupMember) if err != nil { log.NewError(req.OperationID, "InsertIntoGroupMember failed ", err.Error(), groupMember) return &pbGroup.CreateGroupResp{ErrCode: constant.ErrDB.ErrCode, ErrMsg: constant.ErrDB.ErrMsg}, nil @@ -110,7 +109,7 @@ func (s *groupServer) CreateGroup(ctx context.Context, req *pbGroup.CreateGroupR var okUserIDList []string //to group member for _, user := range req.InitMemberList { - us, err := im_mysql_model.GetUserByUserID(user.UserID) + us, err := imdb.GetUserByUserID(user.UserID) if err != nil { log.NewError(req.OperationID, "GetUserByUserID failed ", err.Error(), user.UserID) continue @@ -121,7 +120,7 @@ func (s *groupServer) CreateGroup(ctx context.Context, req *pbGroup.CreateGroupR } groupMember.RoleLevel = user.RoleLevel utils.CopyStructFields(&groupMember, us) - err = im_mysql_model.InsertIntoGroupMember(groupMember) + err = imdb.InsertIntoGroupMember(groupMember) if err != nil { log.NewError(req.OperationID, "InsertIntoGroupMember failed ", err.Error(), groupMember) continue @@ -135,7 +134,7 @@ func (s *groupServer) CreateGroup(ctx context.Context, req *pbGroup.CreateGroupR } resp := &pbGroup.CreateGroupResp{GroupInfo: &open_im_sdk.GroupInfo{}} - group, err := im_mysql_model.GetGroupInfoByGroupID(groupId) + group, err := imdb.GetGroupInfoByGroupID(groupId) if err != nil { log.NewError(req.OperationID, "GetGroupInfoByGroupID failed ", err.Error(), groupId) resp.ErrCode = constant.ErrDB.ErrCode @@ -222,7 +221,7 @@ func (s *groupServer) InviteUserToGroup(ctx context.Context, req *pbGroup.Invite resp.Id2ResultList = append(resp.Id2ResultList, &resultNode) continue } - var toInsertInfo imdb.GroupMember + var toInsertInfo db.GroupMember utils.CopyStructFields(&toInsertInfo, toUserInfo) toInsertInfo.GroupID = req.GroupID toInsertInfo.RoleLevel = constant.GroupOrdinaryUsers @@ -393,7 +392,7 @@ func (s *groupServer) GetGroupMembersInfo(ctx context.Context, req *pbGroup.GetG func (s *groupServer) GetGroupApplicationList(_ context.Context, req *pbGroup.GetGroupApplicationListReq) (*pbGroup.GetGroupApplicationListResp, error) { log.NewInfo(req.OperationID, "GetGroupMembersInfo args ", req.String()) - reply, err := im_mysql_model.GetGroupApplicationList(req.FromUserID) + reply, err := imdb.GetGroupApplicationList(req.FromUserID) if err != nil { log.NewError(req.OperationID, "GetGroupApplicationList failed ", err.Error(), req.FromUserID) return &pbGroup.GetGroupApplicationListResp{ErrCode: 701, ErrMsg: "GetGroupApplicationList failed"}, nil @@ -415,7 +414,7 @@ func (s *groupServer) GetGroupsInfo(ctx context.Context, req *pbGroup.GetGroupsI log.NewInfo(req.OperationID, "GetGroupsInfo args ", req.String()) groupsInfoList := make([]*open_im_sdk.GroupInfo, 0) for _, groupID := range req.GroupIDList { - groupInfoFromMysql, err := im_mysql_model.GetGroupInfoByGroupID(groupID) + groupInfoFromMysql, err := imdb.GetGroupInfoByGroupID(groupID) if err != nil { log.NewError(req.OperationID, "GetGroupInfoByGroupID failed ", err.Error(), groupID) continue @@ -433,7 +432,7 @@ func (s *groupServer) GetGroupsInfo(ctx context.Context, req *pbGroup.GetGroupsI func (s *groupServer) GroupApplicationResponse(_ context.Context, req *pbGroup.GroupApplicationResponseReq) (*pbGroup.GroupApplicationResponseResp, error) { log.NewInfo(req.OperationID, "GroupApplicationResponse args ", req.String()) - groupRequest := imdb.GroupRequest{} + groupRequest := db.GroupRequest{} utils.CopyStructFields(&groupRequest, req) groupRequest.UserID = req.FromUserID groupRequest.HandleUserID = req.OpUserID @@ -457,7 +456,7 @@ func (s *groupServer) GroupApplicationResponse(_ context.Context, req *pbGroup.G log.NewError(req.OperationID, "GroupApplicationResponse failed ", err.Error(), req.FromUserID) return &pbGroup.GroupApplicationResponseResp{CommonResp: &pbGroup.CommonResp{ErrCode: constant.ErrDB.ErrCode, ErrMsg: constant.ErrDB.ErrMsg}}, nil } - member := imdb.GroupMember{} + member := db.GroupMember{} member.GroupID = req.GroupID member.UserID = req.FromUserID member.RoleLevel = constant.GroupOrdinaryUsers @@ -486,7 +485,7 @@ func (s *groupServer) JoinGroup(ctx context.Context, req *pbGroup.JoinGroupReq) return &pbGroup.JoinGroupResp{CommonResp: &pbGroup.CommonResp{ErrCode: constant.ErrDB.ErrCode, ErrMsg: constant.ErrDB.ErrMsg}}, nil } - var groupRequest imdb.GroupRequest + var groupRequest db.GroupRequest groupRequest.UserID = req.OpUserID groupRequest.ReqMsg = req.ReqMessage groupRequest.GroupID = req.GroupID @@ -538,7 +537,7 @@ func hasAccess(req *pbGroup.SetGroupInfoReq) bool { if utils.IsContain(req.OpUserID, config.Config.Manager.AppManagerUid) { return true } - groupUserInfo, err := im_mysql_model.GetGroupMemberInfoByGroupIDAndUserID(req.GroupInfo.GroupID, req.OpUserID) + groupUserInfo, err := imdb.GetGroupMemberInfoByGroupIDAndUserID(req.GroupInfo.GroupID, req.OpUserID) if err != nil { log.NewError(req.OperationID, "GetGroupMemberInfoByGroupIDAndUserID failed, ", err.Error(), req.GroupInfo.GroupID, req.OpUserID) return false @@ -557,7 +556,7 @@ func (s *groupServer) SetGroupInfo(ctx context.Context, req *pbGroup.SetGroupInf return &pbGroup.SetGroupInfoResp{CommonResp: &pbGroup.CommonResp{ErrCode: constant.ErrAccess.ErrCode, ErrMsg: constant.ErrAccess.ErrMsg}}, nil } - group, err := im_mysql_model.GetGroupInfoByGroupID(req.GroupInfo.GroupID) + group, err := imdb.GetGroupInfoByGroupID(req.GroupInfo.GroupID) if err != nil { log.NewError(req.OperationID, "GetGroupInfoByGroupID failed ", err.Error(), req.GroupInfo.GroupID) return &pbGroup.SetGroupInfoResp{CommonResp: &pbGroup.CommonResp{ErrCode: constant.ErrDB.ErrCode, ErrMsg: constant.ErrAccess.ErrMsg}}, nil @@ -578,7 +577,7 @@ func (s *groupServer) SetGroupInfo(ctx context.Context, req *pbGroup.SetGroupInf changedType = changedType | (1 << 3) } //only administrators can set group information - var groupInfo imdb.Group + var groupInfo db.Group utils.CopyStructFields(&groupInfo, req.GroupInfo) err = imdb.SetGroupInfo(groupInfo) if err != nil { @@ -600,13 +599,13 @@ func (s *groupServer) TransferGroupOwner(_ context.Context, req *pbGroup.Transfe log.NewError(req.OperationID, "same owner ", req.OldOwnerUserID, req.NewOwnerUserID) return &pbGroup.TransferGroupOwnerResp{CommonResp: &pbGroup.CommonResp{ErrCode: constant.ErrArgs.ErrCode, ErrMsg: constant.ErrArgs.ErrMsg}}, nil } - groupMemberInfo := imdb.GroupMember{GroupID: req.GroupID, UserID: req.OldOwnerUserID, RoleLevel: constant.GroupOrdinaryUsers} + groupMemberInfo := db.GroupMember{GroupID: req.GroupID, UserID: req.OldOwnerUserID, RoleLevel: constant.GroupOrdinaryUsers} err := imdb.UpdateGroupMemberInfo(groupMemberInfo) if err != nil { log.NewError(req.OperationID, "UpdateGroupMemberInfo failed ", groupMemberInfo) return &pbGroup.TransferGroupOwnerResp{CommonResp: &pbGroup.CommonResp{ErrCode: constant.ErrDB.ErrCode, ErrMsg: constant.ErrDB.ErrMsg}}, nil } - groupMemberInfo = imdb.GroupMember{GroupID: req.GroupID, UserID: req.NewOwnerUserID, RoleLevel: constant.GroupOwner} + groupMemberInfo = db.GroupMember{GroupID: req.GroupID, UserID: req.NewOwnerUserID, RoleLevel: constant.GroupOwner} err = imdb.UpdateGroupMemberInfo(groupMemberInfo) if err != nil { log.NewError(req.OperationID, "UpdateGroupMemberInfo failed ", groupMemberInfo) diff --git a/internal/rpc/user/user.go b/internal/rpc/user/user.go index bcdea833f..7eb330c31 100644 --- a/internal/rpc/user/user.go +++ b/internal/rpc/user/user.go @@ -213,7 +213,7 @@ func (s *userServer) UpdateUserInfo(ctx context.Context, req *pbUser.UpdateUserI return &pbUser.UpdateUserInfoResp{CommonResp: &pbUser.CommonResp{ErrCode: constant.ErrAccess.ErrCode, ErrMsg: constant.ErrAccess.ErrMsg}}, nil } - var user imdb.User + var user db.User utils.CopyStructFields(&user, req.UserInfo) if req.UserInfo.Birth != 0 { user.Birth = utils.UnixSecondToTime(req.UserInfo.Birth) From 9782802bd85defa5b924efea5c8836e2b490484e Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Fri, 31 Dec 2021 11:01:48 +0800 Subject: [PATCH 447/814] Refactor code --- pkg/base_info/group_api_struct.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkg/base_info/group_api_struct.go b/pkg/base_info/group_api_struct.go index 68b19f93a..e4be9d179 100644 --- a/pkg/base_info/group_api_struct.go +++ b/pkg/base_info/group_api_struct.go @@ -1,7 +1,7 @@ package base_info import ( - imdb "Open_IM/pkg/common/db/mysql_model/im_mysql_model" + "Open_IM/pkg/common/db" open_im_sdk "Open_IM/pkg/proto/sdk_ws" ) @@ -138,7 +138,7 @@ type QuitGroupResp struct { } type SetGroupInfoReq struct { - imdb.Group + db.Group OperationID string `json:"operationID" binding:"required"` } type SetGroupInfoResp struct { From 82c0f8a863763e3347d740ed79087db0d4293f29 Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Fri, 31 Dec 2021 11:08:16 +0800 Subject: [PATCH 448/814] Refactor code --- pkg/common/db/mysql.go | 49 ++++++++++++++++++++++++++++++++++++------ 1 file changed, 42 insertions(+), 7 deletions(-) diff --git a/pkg/common/db/mysql.go b/pkg/common/db/mysql.go index 173843ec1..22dc3e714 100644 --- a/pkg/common/db/mysql.go +++ b/pkg/common/db/mysql.go @@ -53,13 +53,48 @@ func initMysqlDB() { log.NewInfo("open db ok ", dsn) - db.AutoMigrate(&Friend{}, - &FriendRequest{}, - &Group{}, - &GroupMember{}, - &GroupRequest{}, - &User{}, - &Black{}) + //db.AutoMigrate(&Friend{}, + // &FriendRequest{}, + // &Group{}, + // &GroupMember{}, + // &GroupRequest{}, + // &User{}, + // &Black{}) + + if !db.HasTable(&Friend{}) { + log.NewInfo("CreateTable Friend") + db.CreateTable(&Friend{}) + } + + if !db.HasTable(&FriendRequest{}) { + log.NewInfo("CreateTable FriendRequest") + db.CreateTable(&FriendRequest{}) + } + + if !db.HasTable(&Group{}) { + log.NewInfo("CreateTable Group") + db.CreateTable(&Group{}) + } + + if !db.HasTable(&GroupMember{}) { + log.NewInfo("CreateTable GroupMember") + db.CreateTable(&GroupMember{}) + } + + if !db.HasTable(&GroupRequest{}) { + log.NewInfo("CreateTable GroupRequest") + db.CreateTable(&GroupRequest{}) + } + + if !db.HasTable(&User{}) { + log.NewInfo("CreateTable User") + db.CreateTable(&User{}) + } + + if !db.HasTable(&Black{}) { + log.NewInfo("CreateTable Black") + db.CreateTable(&Black{}) + } return From b6bd2687d2053864bbbe5d40deede89e91a5d953 Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Fri, 31 Dec 2021 11:11:41 +0800 Subject: [PATCH 449/814] Refactor code --- pkg/common/db/mysql.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkg/common/db/mysql.go b/pkg/common/db/mysql.go index 22dc3e714..a257f7562 100644 --- a/pkg/common/db/mysql.go +++ b/pkg/common/db/mysql.go @@ -44,7 +44,7 @@ func initMysqlDB() { db.Close() dsn = fmt.Sprintf("%s:%s@tcp(%s)/%s?charset=utf8mb4&parseTime=true&loc=Local", - config.Config.Mysql.DBUserName, config.Config.Mysql.DBPassword, config.Config.Mysql.DBAddress[0], config.Config.Mysql.DBDatabaseName) + config.Config.Mysql.DBUserName, config.Config.Mysql.DBPassword, config.Config.Mysql.DBAddress[0], config.Config.Mysql.DBDatabaseName+"test1") db, err = gorm.Open("mysql", dsn) if err != nil { log.NewError("0", "Open failed ", err.Error(), dsn) From 9b7640719345a8c4f9eecb8f7bccb6d1f6327aaa Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Fri, 31 Dec 2021 11:18:32 +0800 Subject: [PATCH 450/814] Refactor code --- pkg/common/db/mysql.go | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/pkg/common/db/mysql.go b/pkg/common/db/mysql.go index a257f7562..41347190b 100644 --- a/pkg/common/db/mysql.go +++ b/pkg/common/db/mysql.go @@ -53,13 +53,13 @@ func initMysqlDB() { log.NewInfo("open db ok ", dsn) - //db.AutoMigrate(&Friend{}, - // &FriendRequest{}, - // &Group{}, - // &GroupMember{}, - // &GroupRequest{}, - // &User{}, - // &Black{}) + db.AutoMigrate(&Friend{}, + &FriendRequest{}, + &Group{}, + &GroupMember{}, + &GroupRequest{}, + &User{}, + &Black{}) if !db.HasTable(&Friend{}) { log.NewInfo("CreateTable Friend") From 7e88621aa1d0b87fb369993553cedb8c6c5759c0 Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Tue, 4 Jan 2022 12:56:10 +0800 Subject: [PATCH 451/814] Refactor code --- internal/rpc/friend/firend.go | 1 - pkg/common/db/model_struct.go | 6 +++--- .../mysql_model/im_mysql_model/friend_model.go | 3 +++ pkg/utils/utils.go | 16 ++++++++++++++++ 4 files changed, 22 insertions(+), 4 deletions(-) diff --git a/internal/rpc/friend/firend.go b/internal/rpc/friend/firend.go index 6d2348324..14de9bb20 100644 --- a/internal/rpc/friend/firend.go +++ b/internal/rpc/friend/firend.go @@ -288,7 +288,6 @@ func (s *friendServer) DeleteFriend(ctx context.Context, req *pbFriend.DeleteFri log.NewError(req.CommID.OperationID, "CheckAccess false ", req.CommID.OpUserID, req.CommID.FromUserID) return &pbFriend.DeleteFriendResp{CommonResp: &pbFriend.CommonResp{ErrCode: constant.ErrAccess.ErrCode, ErrMsg: constant.ErrAccess.ErrMsg}}, nil } - err := imdb.DeleteSingleFriendInfo(req.CommID.FromUserID, req.CommID.ToUserID) if err != nil { log.NewError(req.CommID.OperationID, "DeleteSingleFriendInfo failed", err.Error(), req.CommID.FromUserID, req.CommID.ToUserID) diff --git a/pkg/common/db/model_struct.go b/pkg/common/db/model_struct.go index c2ab763c5..efd0d980e 100644 --- a/pkg/common/db/model_struct.go +++ b/pkg/common/db/model_struct.go @@ -14,10 +14,10 @@ import "time" //} //open_im_sdk.FriendInfo(FriendUser) != imdb.Friend(FriendUserID) type Friend struct { - OwnerUserID string `gorm:"column:owner_user_id;primaryKey;"` + OwnerUserID string `gorm:"column:owner_user_id;primary_key;"` Remark string `gorm:"column:remark"` CreateTime time.Time `gorm:"column:create_time"` - FriendUserID string `gorm:"column:friend_user_id;primaryKey;"` + FriendUserID string `gorm:"column:friend_user_id;primary_key;"` AddSource int32 `gorm:"column:add_source"` OperatorUserID string `gorm:"column:operator_user_id"` Ex string `gorm:"column:ex"` @@ -159,7 +159,7 @@ type User struct { //} // open_im_sdk.BlackInfo(BlackUserInfo) != imdb.Black (BlockUserID) type Black struct { - OwnerUserID string `gorm:"column:owner_user_id;primaryKey;"` + OwnerUserID string `gorm:"column:owner_user_id;primaryKey;size:256"` CreateTime time.Time `gorm:"column:create_time"` BlockUserID string `gorm:"column:block_user_id;primaryKey;"` AddSource int32 `gorm:"column:add_source"` 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 aa527698f..b8de9b120 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 @@ -39,7 +39,10 @@ func GetFriendListByUserID(OwnerUserID string) ([]db.Friend, error) { return nil, err } var friends []db.Friend + var x db.Friend + x.OwnerUserID = OwnerUserID err = dbConn.Table("friend").Where("owner_user_id=?", OwnerUserID).Find(&friends).Error + if err != nil { return nil, err } diff --git a/pkg/utils/utils.go b/pkg/utils/utils.go index 224e459e3..2e8274207 100644 --- a/pkg/utils/utils.go +++ b/pkg/utils/utils.go @@ -2,9 +2,25 @@ package utils import ( "github.com/jinzhu/copier" + "github.com/pkg/errors" + "runtime" + "strconv" ) // copy a by b b->a func CopyStructFields(a interface{}, b interface{}, fields ...string) (err error) { return copier.Copy(a, b) } + +func Wrap(err error, message string) error { + return errors.Wrap(err, "==> "+printCallerNameAndLine()+message) +} + +func WithMessage(err error, message string) error { + return errors.WithMessage(err, "==> "+printCallerNameAndLine()+message) +} + +func printCallerNameAndLine() string { + pc, _, line, _ := runtime.Caller(2) + return runtime.FuncForPC(pc).Name() + "()@" + strconv.Itoa(line) + ": " +} From 0e39aac5cd1df01f6420b24a050a4ca597d2b142 Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Tue, 4 Jan 2022 12:58:11 +0800 Subject: [PATCH 452/814] Refactor code --- pkg/common/db/model_struct.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkg/common/db/model_struct.go b/pkg/common/db/model_struct.go index efd0d980e..5ed77ed99 100644 --- a/pkg/common/db/model_struct.go +++ b/pkg/common/db/model_struct.go @@ -159,9 +159,9 @@ type User struct { //} // open_im_sdk.BlackInfo(BlackUserInfo) != imdb.Black (BlockUserID) type Black struct { - OwnerUserID string `gorm:"column:owner_user_id;primaryKey;size:256"` + OwnerUserID string `gorm:"column:owner_user_id;primary_key;size:64"` CreateTime time.Time `gorm:"column:create_time"` - BlockUserID string `gorm:"column:block_user_id;primaryKey;"` + BlockUserID string `gorm:"column:block_user_id;primary_key;size:64"` AddSource int32 `gorm:"column:add_source"` OperatorUserID string `gorm:"column:operator_user_id"` Ex string `gorm:"column:ex"` From ea0b8df5d45f4db0594388dcd08884658142bbb3 Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Tue, 4 Jan 2022 13:01:07 +0800 Subject: [PATCH 453/814] Refactor code --- pkg/common/db/model_struct.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkg/common/db/model_struct.go b/pkg/common/db/model_struct.go index 5ed77ed99..06ff6dfc9 100644 --- a/pkg/common/db/model_struct.go +++ b/pkg/common/db/model_struct.go @@ -163,6 +163,6 @@ type Black struct { CreateTime time.Time `gorm:"column:create_time"` BlockUserID string `gorm:"column:block_user_id;primary_key;size:64"` AddSource int32 `gorm:"column:add_source"` - OperatorUserID string `gorm:"column:operator_user_id"` - Ex string `gorm:"column:ex"` + OperatorUserID string `gorm:"column:operator_user_id;size:64"` + Ex string `gorm:"column:ex;size:1024"` } From 1ad80e1870750b8e480aec7ce29ad4eb2e7b1dab Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Tue, 4 Jan 2022 13:01:57 +0800 Subject: [PATCH 454/814] Refactor code --- pkg/common/db/model_struct.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkg/common/db/model_struct.go b/pkg/common/db/model_struct.go index 06ff6dfc9..e0cec0e0a 100644 --- a/pkg/common/db/model_struct.go +++ b/pkg/common/db/model_struct.go @@ -160,8 +160,8 @@ type User struct { // open_im_sdk.BlackInfo(BlackUserInfo) != imdb.Black (BlockUserID) type Black struct { OwnerUserID string `gorm:"column:owner_user_id;primary_key;size:64"` - CreateTime time.Time `gorm:"column:create_time"` BlockUserID string `gorm:"column:block_user_id;primary_key;size:64"` + CreateTime time.Time `gorm:"column:create_time"` AddSource int32 `gorm:"column:add_source"` OperatorUserID string `gorm:"column:operator_user_id;size:64"` Ex string `gorm:"column:ex;size:1024"` From 3d6f1e42d21f513bfa5dc695aedf12c9d311e972 Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Tue, 4 Jan 2022 13:19:14 +0800 Subject: [PATCH 455/814] Refactor code --- go.mod | 1 + pkg/common/db/model_struct.go | 73 +++++++++++++++++------------------ 2 files changed, 37 insertions(+), 37 deletions(-) diff --git a/go.mod b/go.mod index a53930ed5..767401200 100644 --- a/go.mod +++ b/go.mod @@ -35,6 +35,7 @@ require ( github.com/nfnt/resize v0.0.0-20180221191011-83c6a9932646 github.com/olivere/elastic/v7 v7.0.23 github.com/pierrec/lz4 v2.6.1+incompatible // indirect + github.com/pkg/errors v0.9.1 github.com/rcrowley/go-metrics v0.0.0-20201227073835-cf1acfcdf475 // indirect github.com/rifflock/lfshook v0.0.0-20180920164130-b9218ef580f5 github.com/sirupsen/logrus v1.8.1 diff --git a/pkg/common/db/model_struct.go b/pkg/common/db/model_struct.go index e0cec0e0a..1aa4d5a91 100644 --- a/pkg/common/db/model_struct.go +++ b/pkg/common/db/model_struct.go @@ -14,13 +14,13 @@ import "time" //} //open_im_sdk.FriendInfo(FriendUser) != imdb.Friend(FriendUserID) type Friend struct { - OwnerUserID string `gorm:"column:owner_user_id;primary_key;"` - Remark string `gorm:"column:remark"` + OwnerUserID string `gorm:"column:owner_user_id;primary_key;size:64"` + FriendUserID string `gorm:"column:friend_user_id;primary_key;size:64"` + Remark string `gorm:"column:remark;size:255"` CreateTime time.Time `gorm:"column:create_time"` - FriendUserID string `gorm:"column:friend_user_id;primary_key;"` AddSource int32 `gorm:"column:add_source"` - OperatorUserID string `gorm:"column:operator_user_id"` - Ex string `gorm:"column:ex"` + OperatorUserID string `gorm:"column:operator_user_id;size:64"` + Ex string `gorm:"column:ex;size:1024"` } //message FriendRequest{ @@ -36,15 +36,15 @@ type Friend struct { //} //open_im_sdk.FriendRequest == imdb.FriendRequest type FriendRequest struct { - FromUserID string `gorm:"column:from_user_id;primaryKey;"` - ToUserID string `gorm:"column:to_user_id;primaryKey;"` + FromUserID string `gorm:"column:from_user_id;primary_key;size:64"` + ToUserID string `gorm:"column:to_user_id;primary_key;size:64"` HandleResult int32 `gorm:"column:handle_result"` - ReqMsg string `gorm:"column:req_msg"` + ReqMsg string `gorm:"column:req_msg;size:255"` CreateTime time.Time `gorm:"column:create_time"` - HandlerUserID string `gorm:"column:handler_user_id"` - HandleMsg string `gorm:"column:handle_msg"` + HandlerUserID string `gorm:"column:handler_user_id;size:64"` + HandleMsg string `gorm:"column:handle_msg;size:255"` HandleTime time.Time `gorm:"column:handle_time"` - Ex string `gorm:"column:ex"` + Ex string `gorm:"column:ex;size:1024"` } //message GroupInfo{ @@ -65,17 +65,16 @@ type FriendRequest struct { type Group struct { //`json:"operationID" binding:"required"` //`protobuf:"bytes,1,opt,name=GroupID" json:"GroupID,omitempty"` `json:"operationID" binding:"required"` - GroupID string `gorm:"column:group_id;primaryKey;" json:"groupID" binding:"required"` - GroupName string `gorm:"column:name" json:"groupName"` - Notification string `gorm:"column:notification" json:"notification"` - Introduction string `gorm:"column:introduction" json:"introduction"` - FaceUrl string `gorm:"column:face_url" json:"faceUrl"` - + GroupID string `gorm:"column:group_id;primary_key;size:64" json:"groupID" binding:"required"` + GroupName string `gorm:"column:name;size:255" json:"groupName"` + Notification string `gorm:"column:notification;size:255" json:"notification"` + Introduction string `gorm:"column:introduction;size:255" json:"introduction"` + FaceUrl string `gorm:"column:face_url;size:255" json:"faceUrl"` CreateTime time.Time `gorm:"column:create_time"` + Ex string `gorm:"column:ex" json:"ex;size:1024"` Status int32 `gorm:"column:status"` - CreatorUserID string `gorm:"column:creator_user_id"` + CreatorUserID string `gorm:"column:creator_user_id;size:64"` GroupType int32 `gorm:"column:group_type"` - Ex string `gorm:"column:ex" json:"ex"` } //message GroupMemberFullInfo { @@ -91,15 +90,15 @@ type Group struct { //int32 AppMangerLevel = 7; //if >0 //} open_im_sdk.GroupMemberFullInfo(AppMangerLevel) > imdb.GroupMember type GroupMember struct { - GroupID string `gorm:"column:group_id;primaryKey;"` - UserID string `gorm:"column:user_id;primaryKey;"` + GroupID string `gorm:"column:group_id;primary_key;size:64"` + UserID string `gorm:"column:user_id;primary_key;size:64"` + Nickname string `gorm:"column:nickname;size:255"` + FaceUrl string `gorm:"column:user_group_face_url;size:255"` RoleLevel int32 `gorm:"column:role_level"` JoinTime time.Time `gorm:"column:join_time"` - Nickname string `gorm:"column:nickname"` - FaceUrl string `gorm:"column:user_group_face_url"` JoinSource int32 `gorm:"column:join_source"` - OperatorUserID string `gorm:"column:operator_user_id"` - Ex string `gorm:"column:ex"` + OperatorUserID string `gorm:"column:operator_user_id;size:64"` + Ex string `gorm:"column:ex;size:1024"` } //message GroupRequest{ @@ -114,15 +113,15 @@ type GroupMember struct { //string Ex = 9; //}open_im_sdk.GroupRequest == imdb.GroupRequest type GroupRequest struct { - UserID string `gorm:"column:user_id;primaryKey;"` - GroupID string `gorm:"column:group_id;primaryKey;"` + UserID string `gorm:"column:user_id;primary_key;size:64"` + GroupID string `gorm:"column:group_id;primary_key;size:64"` HandleResult int32 `gorm:"column:handle_result"` - ReqMsg string `gorm:"column:req_msg"` - HandledMsg string `gorm:"column:handle_msg"` + ReqMsg string `gorm:"column:req_msg;size:255"` + HandledMsg string `gorm:"column:handle_msg;size:255"` ReqTime time.Time `gorm:"column:req_time"` - HandleUserID string `gorm:"column:handle_user_id"` + HandleUserID string `gorm:"column:handle_user_id;size:64"` HandledTime time.Time `gorm:"column:handle_time"` - Ex string `gorm:"column:ex"` + Ex string `gorm:"column:ex;size:1024"` } //string UserID = 1; @@ -137,14 +136,14 @@ type GroupRequest struct { //int32 AppMangerLevel = 10; //open_im_sdk.User == imdb.User type User struct { - UserID string `gorm:"column:user_id;primaryKey;"` - Nickname string `gorm:"column:name"` - FaceUrl string `gorm:"column:face_url"` + UserID string `gorm:"column:user_id;primary_key;size:64"` + Nickname string `gorm:"column:name;size:255"` + FaceUrl string `gorm:"column:face_url;size:255"` Gender int32 `gorm:"column:gender"` - PhoneNumber string `gorm:"column:phone_number"` + PhoneNumber string `gorm:"column:phone_number;size:32"` Birth time.Time `gorm:"column:birth"` - Email string `gorm:"column:email"` - Ex string `gorm:"column:ex"` + Email string `gorm:"column:email;size:64"` + Ex string `gorm:"column:ex;size:1024"` CreateTime time.Time `gorm:"column:create_time"` AppMangerLevel int32 `gorm:"column:app_manger_level"` } From fea89ad45167a9ea2cfeff385a4c52fd202a1f8b Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Tue, 4 Jan 2022 13:38:38 +0800 Subject: [PATCH 456/814] Refactor code --- .../im_mysql_model/friend_model.go | 10 ++++----- .../im_mysql_model/friend_request_model.go | 10 ++++----- .../im_mysql_model/group_member_model.go | 21 ++++++++++--------- .../mysql_model/im_mysql_model/group_model.go | 6 +++--- .../im_mysql_model/group_request_model.go | 10 ++++----- .../im_mysql_model/user_black_list_model.go | 8 +++---- .../mysql_model/im_mysql_model/user_model.go | 12 +++++------ 7 files changed, 39 insertions(+), 38 deletions(-) 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 b8de9b120..45650357b 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 @@ -13,7 +13,7 @@ func InsertToFriend(toInsertFollow *db.Friend) error { } toInsertFollow.CreateTime = time.Now() - err = dbConn.Table("friend").Create(toInsertFollow).Error + err = dbConn.Table("friends").Create(toInsertFollow).Error if err != nil { return err } @@ -26,7 +26,7 @@ func GetFriendRelationshipFromFriend(OwnerUserID, FriendUserID string) (*db.Frie return nil, err } var friend db.Friend - err = dbConn.Table("friend").Where("owner_user_id=? and friend_user_id=?", OwnerUserID, FriendUserID).Find(&friend).Error + err = dbConn.Table("friends").Where("owner_user_id=? and friend_user_id=?", OwnerUserID, FriendUserID).Find(&friend).Error if err != nil { return nil, err } @@ -41,7 +41,7 @@ func GetFriendListByUserID(OwnerUserID string) ([]db.Friend, error) { var friends []db.Friend var x db.Friend x.OwnerUserID = OwnerUserID - err = dbConn.Table("friend").Where("owner_user_id=?", OwnerUserID).Find(&friends).Error + err = dbConn.Table("friends").Where("owner_user_id=?", OwnerUserID).Find(&friends).Error if err != nil { return nil, err @@ -54,7 +54,7 @@ func UpdateFriendComment(OwnerUserID, FriendUserID, Remark string) error { if err != nil { return err } - err = dbConn.Exec("update friend set remark=? where owner_user_id=? and friend_user_id=?", Remark, OwnerUserID, FriendUserID).Error + err = dbConn.Exec("update friends set remark=? where owner_user_id=? and friend_user_id=?", Remark, OwnerUserID, FriendUserID).Error return err } @@ -63,7 +63,7 @@ func DeleteSingleFriendInfo(OwnerUserID, FriendUserID string) error { if err != nil { return err } - err = dbConn.Table("friend").Where("owner_user_id=? and friend_user_id=?", OwnerUserID, FriendUserID).Delete(db.Friend{}).Error + err = dbConn.Table("friends").Where("owner_user_id=? and friend_user_id=?", OwnerUserID, FriendUserID).Delete(db.Friend{}).Error return err } diff --git a/pkg/common/db/mysql_model/im_mysql_model/friend_request_model.go b/pkg/common/db/mysql_model/im_mysql_model/friend_request_model.go index 299cdfc69..2591426a2 100644 --- a/pkg/common/db/mysql_model/im_mysql_model/friend_request_model.go +++ b/pkg/common/db/mysql_model/im_mysql_model/friend_request_model.go @@ -25,7 +25,7 @@ func GetReceivedFriendsApplicationListByUserID(ToUserID string) ([]db.FriendRequ return nil, err } var usersInfo []db.FriendRequest - err = dbConn.Table("friend_request").Where("to_user_id=?", ToUserID).Find(&usersInfo).Error + err = dbConn.Table("friend_requests").Where("to_user_id=?", ToUserID).Find(&usersInfo).Error if err != nil { return nil, err } @@ -39,7 +39,7 @@ func GetSendFriendApplicationListByUserID(FromUserID string) ([]db.FriendRequest return nil, err } var usersInfo []db.FriendRequest - err = dbConn.Table("friend_request").Where("from_user_id=?", FromUserID).Find(&usersInfo).Error + err = dbConn.Table("friend_requests").Where("from_user_id=?", FromUserID).Find(&usersInfo).Error if err != nil { return nil, err } @@ -53,7 +53,7 @@ func GetFriendApplicationByBothUserID(FromUserID, ToUserID string) (*db.FriendRe return nil, err } var friendRequest db.FriendRequest - err = dbConn.Table("friend_request").Where("from_user_id=? and to_user_id=?", FromUserID, ToUserID).Find(&friendRequest).Error + err = dbConn.Table("friend_requests").Where("from_user_id=? and to_user_id=?", FromUserID, ToUserID).Find(&friendRequest).Error if err != nil { return nil, err } @@ -67,7 +67,7 @@ func UpdateFriendApplication(friendRequest *db.FriendRequest) error { } friendRequest.CreateTime = time.Now() - return dbConn.Table("friend_request").Where("from_user_id=? and to_user_id=?", + return dbConn.Table("friend_requests").Where("from_user_id=? and to_user_id=?", friendRequest.FromUserID, friendRequest.ToUserID).Update(&friendRequest).Error } @@ -82,7 +82,7 @@ func InsertFriendApplication(friendRequest *db.FriendRequest) error { if friendRequest.HandleTime.Unix() < 0 { friendRequest.HandleTime = utils.UnixSecondToTime(0) } - err = dbConn.Table("friend_request").Create(friendRequest).Error + err = dbConn.Table("friend_requests").Create(friendRequest).Error if err != nil { return err } diff --git a/pkg/common/db/mysql_model/im_mysql_model/group_member_model.go b/pkg/common/db/mysql_model/im_mysql_model/group_member_model.go index ce115fcda..6b895a8ee 100644 --- a/pkg/common/db/mysql_model/im_mysql_model/group_member_model.go +++ b/pkg/common/db/mysql_model/im_mysql_model/group_member_model.go @@ -27,7 +27,7 @@ func InsertIntoGroupMember(toInsertInfo db.GroupMember) error { if toInsertInfo.RoleLevel == 0 { toInsertInfo.RoleLevel = constant.GroupOrdinaryUsers } - err = dbConn.Table("group_member").Create(toInsertInfo).Error + err = dbConn.Table("group_members").Create(toInsertInfo).Error if err != nil { return err } @@ -40,7 +40,7 @@ func GetGroupMemberListByUserID(userID string) ([]db.GroupMember, error) { return nil, err } var groupMemberList []db.GroupMember - err = dbConn.Table("group_member").Where("user_id=?", userID).Find(&groupMemberList).Error + err = dbConn.Table("group_members").Where("user_id=?", userID).Find(&groupMemberList).Error if err != nil { return nil, err } @@ -53,7 +53,8 @@ func GetGroupMemberListByGroupID(groupID string) ([]db.GroupMember, error) { return nil, err } var groupMemberList []db.GroupMember - err = dbConn.Table("group_member").Where("group_id=?", groupID).Find(&groupMemberList).Error + err = dbConn.Table("group_members").Where("group_id=?", groupID).Find(&groupMemberList).Error + if err != nil { return nil, err } @@ -66,7 +67,7 @@ func GetGroupMemberListByGroupIDAndRoleLevel(groupID string, roleLevel int32) ([ return nil, err } var groupMemberList []db.GroupMember - err = dbConn.Table("group_member").Where("group_id=? and role_level=?", groupID, roleLevel).Find(&groupMemberList).Error + err = dbConn.Table("group_members").Where("group_id=? and role_level=?", groupID, roleLevel).Find(&groupMemberList).Error if err != nil { return nil, err } @@ -79,7 +80,7 @@ func GetGroupMemberInfoByGroupIDAndUserID(groupID, userID string) (*db.GroupMemb return nil, err } var groupMember db.GroupMember - err = dbConn.Table("group_member").Where("group_id=? and user_id=? ", groupID, userID).Limit(1).Find(&groupMember).Error + err = dbConn.Table("group_members").Where("group_id=? and user_id=? ", groupID, userID).Limit(1).Find(&groupMember).Error if err != nil { return nil, err } @@ -91,7 +92,7 @@ func DeleteGroupMemberByGroupIDAndUserID(groupID, userID string) error { if err != nil { return err } - err = dbConn.Table("group_member").Where("group_id=? and user_id=? ", groupID, userID).Delete(&db.GroupMember{}).Error + err = dbConn.Table("group_members").Where("group_id=? and user_id=? ", groupID, userID).Delete(&db.GroupMember{}).Error if err != nil { return err } @@ -103,7 +104,7 @@ func UpdateGroupMemberInfo(groupMemberInfo db.GroupMember) error { if err != nil { return err } - err = dbConn.Table("group_member").Where("group_id=? and user_id=?", groupMemberInfo.GroupID, groupMemberInfo.UserID).Update(&groupMemberInfo).Error + err = dbConn.Table("group_members").Where("group_id=? and user_id=?", groupMemberInfo.GroupID, groupMemberInfo.UserID).Update(&groupMemberInfo).Error if err != nil { return err } @@ -116,7 +117,7 @@ func GetOwnerManagerByGroupID(groupID string) ([]db.GroupMember, error) { return nil, err } var groupMemberList []db.GroupMember - err = dbConn.Table("group_member").Where("group_id=? and role_level>?", groupID, constant.GroupOrdinaryUsers).Find(&groupMemberList).Error + err = dbConn.Table("group_members").Where("group_id=? and role_level>?", groupID, constant.GroupOrdinaryUsers).Find(&groupMemberList).Error if err != nil { return nil, err } @@ -129,7 +130,7 @@ func GetGroupMemberNumByGroupID(groupID string) uint32 { return 0 } var number uint32 - err = dbConn.Table("group_member").Where("group_id=?", groupID).Count(&number).Error + err = dbConn.Table("group_members").Where("group_id=?", groupID).Count(&number).Error if err != nil { return 0 } @@ -155,7 +156,7 @@ func IsExistGroupMember(groupID, userID string) bool { return false } var number int32 - err = dbConn.Table("group_member").Where("group_id = ? and user_id = ?", groupID, userID).Count(&number).Error + err = dbConn.Table("group_members").Where("group_id = ? and user_id = ?", groupID, userID).Count(&number).Error if err != nil { return false } diff --git a/pkg/common/db/mysql_model/im_mysql_model/group_model.go b/pkg/common/db/mysql_model/im_mysql_model/group_model.go index 18eba61f8..21e9d5156 100644 --- a/pkg/common/db/mysql_model/im_mysql_model/group_model.go +++ b/pkg/common/db/mysql_model/im_mysql_model/group_model.go @@ -27,7 +27,7 @@ func InsertIntoGroup(groupInfo db.Group) error { groupInfo.GroupName = "Group Chat" } groupInfo.CreateTime = time.Now() - err = dbConn.Table("group").Create(groupInfo).Error + err = dbConn.Table("groups").Create(groupInfo).Error if err != nil { return err } @@ -40,7 +40,7 @@ func GetGroupInfoByGroupID(groupId string) (*db.Group, error) { return nil, err } var groupInfo db.Group - err = dbConn.Table("group").Where("group_id=?", groupId).Find(&groupInfo).Error + err = dbConn.Table("groups").Where("group_id=?", groupId).Find(&groupInfo).Error if err != nil { return nil, err } @@ -52,6 +52,6 @@ func SetGroupInfo(groupInfo db.Group) error { if err != nil { return err } - err = dbConn.Table("group").Where("group_id=?", groupInfo.GroupID).Update(&groupInfo).Error + err = dbConn.Table("groups").Where("group_id=?", groupInfo.GroupID).Update(&groupInfo).Error return err } diff --git a/pkg/common/db/mysql_model/im_mysql_model/group_request_model.go b/pkg/common/db/mysql_model/im_mysql_model/group_request_model.go index 7ee352718..b1436e17b 100644 --- a/pkg/common/db/mysql_model/im_mysql_model/group_request_model.go +++ b/pkg/common/db/mysql_model/im_mysql_model/group_request_model.go @@ -27,7 +27,7 @@ func UpdateGroupRequest(groupRequest db.GroupRequest) error { if groupRequest.HandledTime.Unix() < 0 { groupRequest.HandledTime = utils.UnixSecondToTime(0) } - return dbConn.Table("group_request").Where("group_id=? and user_id=?", groupRequest.GroupID, groupRequest.UserID).Update(&groupRequest).Error + return dbConn.Table("group_requests").Where("group_id=? and user_id=?", groupRequest.GroupID, groupRequest.UserID).Update(&groupRequest).Error } func InsertIntoGroupRequest(toInsertInfo db.GroupRequest) error { @@ -41,7 +41,7 @@ func InsertIntoGroupRequest(toInsertInfo db.GroupRequest) error { toInsertInfo.HandledTime = utils.UnixSecondToTime(0) } - err = dbConn.Table("group_request").Create(&toInsertInfo).Error + err = dbConn.Table("group_requests").Create(&toInsertInfo).Error if err != nil { return err } @@ -54,7 +54,7 @@ func GetGroupRequestByGroupIDAndUserID(groupID, userID string) (*db.GroupRequest return nil, err } var groupRequest db.GroupRequest - err = dbConn.Table("group_request").Where("user_id=? and group_id=?", userID, groupID).Find(&groupRequest).Error + err = dbConn.Table("group_requests").Where("user_id=? and group_id=?", userID, groupID).Find(&groupRequest).Error if err != nil { return nil, err } @@ -66,7 +66,7 @@ func DelGroupRequestByGroupIDAndUserID(groupID, userID string) error { if err != nil { return err } - err = dbConn.Table("group_request").Where("group_id=? and user_id=?", groupID, userID).Delete(&db.GroupRequest{}).Error + err = dbConn.Table("group_requests").Where("group_id=? and user_id=?", groupID, userID).Delete(&db.GroupRequest{}).Error if err != nil { return err } @@ -79,7 +79,7 @@ func GetGroupRequestByGroupID(groupID string) ([]db.GroupRequest, error) { return nil, err } var groupRequestList []db.GroupRequest - err = dbConn.Table("group_request").Where("group_id=?", groupID).Find(&groupRequestList).Error + err = dbConn.Table("group_requests").Where("group_id=?", groupID).Find(&groupRequestList).Error if err != nil { return nil, err } diff --git a/pkg/common/db/mysql_model/im_mysql_model/user_black_list_model.go b/pkg/common/db/mysql_model/im_mysql_model/user_black_list_model.go index 09c7d6c29..1c7bda90c 100644 --- a/pkg/common/db/mysql_model/im_mysql_model/user_black_list_model.go +++ b/pkg/common/db/mysql_model/im_mysql_model/user_black_list_model.go @@ -11,7 +11,7 @@ func InsertInToUserBlackList(black db.Black) error { return err } black.CreateTime = time.Now() - err = dbConn.Table("user_black_list").Create(black).Error + err = dbConn.Table("blacks").Create(black).Error return err } @@ -30,7 +30,7 @@ func CheckBlack(ownerUserID, blockUserID string) error { return err } var black db.Black - err = dbConn.Table("user_black_list").Where("owner_user_id=? and block_user_id=?", ownerUserID, blockUserID).Find(&black).Error + err = dbConn.Table("blacks").Where("owner_user_id=? and block_user_id=?", ownerUserID, blockUserID).Find(&black).Error return err } @@ -40,7 +40,7 @@ func RemoveBlackList(ownerUserID, blockUserID string) error { return err } - err = dbConn.Table("user_black_list").Where("owner_user_id=? and block_user_id=?", ownerUserID, blockUserID).Delete(&db.Black{}).Error + err = dbConn.Table("blacks").Where("owner_user_id=? and block_user_id=?", ownerUserID, blockUserID).Delete(&db.Black{}).Error return err } @@ -50,7 +50,7 @@ func GetBlackListByUserID(ownerUserID string) ([]db.Black, error) { return nil, err } var blackListUsersInfo []db.Black - err = dbConn.Table("user_black_list").Where("owner_user_id=?", ownerUserID).Find(&blackListUsersInfo).Error + err = dbConn.Table("blacks").Where("owner_user_id=?", ownerUserID).Find(&blackListUsersInfo).Error if err != nil { return nil, err } 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 3ae38f4b2..5c3b226d5 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 @@ -43,7 +43,7 @@ func UserRegister(user db.User) error { if user.Birth.Unix() < 0 { user.Birth = utils.UnixSecondToTime(0) } - err = dbConn.Table("user").Create(&user).Error + err = dbConn.Table("users").Create(&user).Error if err != nil { return err } @@ -67,7 +67,7 @@ func DeleteUser(userID string) (i int64) { if err != nil { return 0 } - i = dbConn.Table("user").Where("user_id=?", userID).Delete(db.User{}).RowsAffected + i = dbConn.Table("users").Where("user_id=?", userID).Delete(db.User{}).RowsAffected return i } @@ -77,7 +77,7 @@ func GetUserByUserID(userID string) (*db.User, error) { return nil, err } var user db.User - err = dbConn.Table("user").Where("user_id=?", userID).First(&user).Error + err = dbConn.Table("users").Where("user_id=?", userID).First(&user).Error if err != nil { return nil, err } @@ -90,7 +90,7 @@ func UpdateUserInfo(user db.User) error { return err } - err = dbConn.Table("user").Where("user_id=?", user.UserID).Update(&user).Error + err = dbConn.Table("users").Where("user_id=?", user.UserID).Update(&user).Error return err } @@ -100,7 +100,7 @@ func SelectAllUserID() ([]string, error) { return nil, err } var resultArr []string - err = dbConn.Table("user").Pluck("user_id", &resultArr).Error + err = dbConn.Table("users").Pluck("user_id", &resultArr).Error if err != nil { return nil, err } @@ -114,7 +114,7 @@ func SelectSomeUserID(userIDList []string) ([]string, error) { return nil, err } var resultArr []string - err = dbConn.Table("user").Where("user_id IN (?) ", userIDList).Pluck("user_id", &resultArr).Error + err = dbConn.Table("users").Where("user_id IN (?) ", userIDList).Pluck("user_id", &resultArr).Error if err != nil { return nil, err From d5b5929e9bc1b4a77535182d67b73601092d4227 Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Thu, 6 Jan 2022 14:17:25 +0800 Subject: [PATCH 457/814] Refactor code --- pkg/base_info/group_api_struct.go | 5 +++++ pkg/common/db/model_struct.go | 2 +- pkg/common/db/mysql.go | 2 +- 3 files changed, 7 insertions(+), 2 deletions(-) diff --git a/pkg/base_info/group_api_struct.go b/pkg/base_info/group_api_struct.go index e4be9d179..7c70d5a0e 100644 --- a/pkg/base_info/group_api_struct.go +++ b/pkg/base_info/group_api_struct.go @@ -10,6 +10,11 @@ type CommResp struct { ErrMsg string `json:"errMsg"` } +type CommDataResp struct { + CommResp + Data []map[string]interface{} `json:"data"` +} + type KickGroupMemberReq struct { GroupID string `json:"groupID" binding:"required"` KickedUserIDList []string `json:"kickedUserIDList" binding:"required"` diff --git a/pkg/common/db/model_struct.go b/pkg/common/db/model_struct.go index 1aa4d5a91..65a57b96a 100644 --- a/pkg/common/db/model_struct.go +++ b/pkg/common/db/model_struct.go @@ -71,7 +71,7 @@ type Group struct { Introduction string `gorm:"column:introduction;size:255" json:"introduction"` FaceUrl string `gorm:"column:face_url;size:255" json:"faceUrl"` CreateTime time.Time `gorm:"column:create_time"` - Ex string `gorm:"column:ex" json:"ex;size:1024"` + Ex string `gorm:"column:ex" json:"ex;size:1024" json:"ex"` Status int32 `gorm:"column:status"` CreatorUserID string `gorm:"column:creator_user_id;size:64"` GroupType int32 `gorm:"column:group_type"` diff --git a/pkg/common/db/mysql.go b/pkg/common/db/mysql.go index 41347190b..dba24ae61 100644 --- a/pkg/common/db/mysql.go +++ b/pkg/common/db/mysql.go @@ -35,7 +35,7 @@ func initMysqlDB() { } //Check the database and table during initialization - sql := fmt.Sprintf("CREATE DATABASE IF NOT EXISTS %s ;", config.Config.Mysql.DBDatabaseName+"test1") + sql := fmt.Sprintf("CREATE DATABASE IF NOT EXISTS %s ;", config.Config.Mysql.DBDatabaseName) err = db.Exec(sql).Error if err != nil { log.NewError("0", "Exec failed ", err.Error(), sql) From 29e2a001094dfdddc013f31c041ba86a3f2a485a Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Thu, 6 Jan 2022 15:18:23 +0800 Subject: [PATCH 458/814] Refactor code --- pkg/base_info/user_api_struct.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkg/base_info/user_api_struct.go b/pkg/base_info/user_api_struct.go index d8412f069..632c6ea77 100644 --- a/pkg/base_info/user_api_struct.go +++ b/pkg/base_info/user_api_struct.go @@ -10,7 +10,7 @@ type GetUserInfoReq struct { } type GetUserInfoResp struct { CommResp - UserInfoList []*open_im_sdk.UserInfo + UserInfoList []*open_im_sdk.UserInfo `json:"-"` Data []map[string]interface{} `json:"data"` } From 06af2b6aa3c5a885cea89733f9700f173282fb59 Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Thu, 6 Jan 2022 15:19:24 +0800 Subject: [PATCH 459/814] Refactor code --- pkg/base_info/friend_api_struct.go | 20 ++++++++++---------- 1 file changed, 10 insertions(+), 10 deletions(-) diff --git a/pkg/base_info/friend_api_struct.go b/pkg/base_info/friend_api_struct.go index 4b99b71e3..64b71b284 100644 --- a/pkg/base_info/friend_api_struct.go +++ b/pkg/base_info/friend_api_struct.go @@ -59,8 +59,8 @@ type GetBlackListReq struct { } type GetBlackListResp struct { CommResp - BlackUserInfoList []*open_im_sdk.PublicUserInfo - Data []map[string]interface{} `json:"data"` + BlackUserInfoList []*open_im_sdk.PublicUserInfo `json:"-"` + Data []map[string]interface{} `json:"data"` } //type PublicUserInfo struct { @@ -101,8 +101,8 @@ type GetFriendsInfoReq struct { } type GetFriendsInfoResp struct { CommResp - FriendInfoList []*open_im_sdk.FriendInfo - Data []map[string]interface{} `json:"data"` + FriendInfoList []*open_im_sdk.FriendInfo `json:"-"` + Data []map[string]interface{} `json:"data"` } type GetFriendListReq struct { @@ -111,8 +111,8 @@ type GetFriendListReq struct { } type GetFriendListResp struct { CommResp - FriendInfoList []*open_im_sdk.FriendInfo - Data []map[string]interface{} `json:"data"` + FriendInfoList []*open_im_sdk.FriendInfo `json:"-"` + Data []map[string]interface{} `json:"data"` } type GetFriendApplyListReq struct { @@ -121,8 +121,8 @@ type GetFriendApplyListReq struct { } type GetFriendApplyListResp struct { CommResp - FriendRequestList []*open_im_sdk.FriendRequest - Data []map[string]interface{} `json:"data"` + FriendRequestList []*open_im_sdk.FriendRequest `json:"-"` + Data []map[string]interface{} `json:"data"` } type GetSelfApplyListReq struct { @@ -131,6 +131,6 @@ type GetSelfApplyListReq struct { } type GetSelfApplyListResp struct { CommResp - FriendRequestList []*open_im_sdk.FriendRequest - Data []map[string]interface{} `json:"data"` + FriendRequestList []*open_im_sdk.FriendRequest `json:"-"` + Data []map[string]interface{} `json:"data"` } From 136e0cde0663f9c5e150a2175639d919b81aac1e Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Thu, 6 Jan 2022 15:24:57 +0800 Subject: [PATCH 460/814] Refactor code --- internal/utils/utils.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/internal/utils/utils.go b/internal/utils/utils.go index 8656534ee..73ebbf127 100644 --- a/internal/utils/utils.go +++ b/internal/utils/utils.go @@ -33,7 +33,7 @@ func ProtoToMap(pb proto.Message, idFix bool) map[string]interface{} { marshaler := jsonpb.Marshaler{ OrigName: true, EnumsAsInts: false, - EmitDefaults: true, + EmitDefaults: false, } s, _ := marshaler.MarshalToString(pb) From a677d4da5fafc3f6a3ef206103fd2834a49288d5 Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Thu, 6 Jan 2022 17:55:37 +0800 Subject: [PATCH 461/814] Refactor code --- internal/api/friend/friend.go | 1 + 1 file changed, 1 insertion(+) diff --git a/internal/api/friend/friend.go b/internal/api/friend/friend.go index eb755879b..d6d960f24 100644 --- a/internal/api/friend/friend.go +++ b/internal/api/friend/friend.go @@ -383,6 +383,7 @@ func GetFriendList(c *gin.Context) { } resp := api.GetFriendListResp{CommResp: api.CommResp{ErrCode: RpcResp.ErrCode, ErrMsg: RpcResp.ErrMsg}, FriendInfoList: RpcResp.FriendInfoList} + resp.FriendInfoList[0].CreateTime = resp.FriendInfoList[0].CreateTime / 100 resp.Data = jsonData.JsonDataList(resp.FriendInfoList) log.NewInfo(req.CommID.OperationID, "GetFriendList api return ", resp) c.JSON(http.StatusOK, resp) From 5fef41e1325397a459ed013c8e1fd57ed39dd02d Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Thu, 6 Jan 2022 18:00:15 +0800 Subject: [PATCH 462/814] Refactor code --- internal/api/friend/friend.go | 3 ++- pkg/base_info/friend_api_struct.go | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/internal/api/friend/friend.go b/internal/api/friend/friend.go index d6d960f24..5d9b0060a 100644 --- a/internal/api/friend/friend.go +++ b/internal/api/friend/friend.go @@ -383,10 +383,11 @@ func GetFriendList(c *gin.Context) { } resp := api.GetFriendListResp{CommResp: api.CommResp{ErrCode: RpcResp.ErrCode, ErrMsg: RpcResp.ErrMsg}, FriendInfoList: RpcResp.FriendInfoList} - resp.FriendInfoList[0].CreateTime = resp.FriendInfoList[0].CreateTime / 100 + resp.TestTime = 1641450220 resp.Data = jsonData.JsonDataList(resp.FriendInfoList) log.NewInfo(req.CommID.OperationID, "GetFriendList api return ", resp) c.JSON(http.StatusOK, resp) + //c.JSON(http.StatusOK, resp) } func GetFriendApplyList(c *gin.Context) { diff --git a/pkg/base_info/friend_api_struct.go b/pkg/base_info/friend_api_struct.go index 64b71b284..fed88743f 100644 --- a/pkg/base_info/friend_api_struct.go +++ b/pkg/base_info/friend_api_struct.go @@ -111,7 +111,8 @@ type GetFriendListReq struct { } type GetFriendListResp struct { CommResp - FriendInfoList []*open_im_sdk.FriendInfo `json:"-"` + TestTime uint32 `json:"test_time"` + FriendInfoList []*open_im_sdk.FriendInfo `json:"test_data"` Data []map[string]interface{} `json:"data"` } From 5c9dc62015a2e701720193271164f29d0d9e8ca6 Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Thu, 6 Jan 2022 18:04:30 +0800 Subject: [PATCH 463/814] Refactor code --- pkg/base_info/friend_api_struct.go | 3 +-- pkg/proto/sdk_ws/ws.pb.go | 2 +- 2 files changed, 2 insertions(+), 3 deletions(-) diff --git a/pkg/base_info/friend_api_struct.go b/pkg/base_info/friend_api_struct.go index fed88743f..64b71b284 100644 --- a/pkg/base_info/friend_api_struct.go +++ b/pkg/base_info/friend_api_struct.go @@ -111,8 +111,7 @@ type GetFriendListReq struct { } type GetFriendListResp struct { CommResp - TestTime uint32 `json:"test_time"` - FriendInfoList []*open_im_sdk.FriendInfo `json:"test_data"` + FriendInfoList []*open_im_sdk.FriendInfo `json:"-"` Data []map[string]interface{} `json:"data"` } diff --git a/pkg/proto/sdk_ws/ws.pb.go b/pkg/proto/sdk_ws/ws.pb.go index 0b30328b4..7f9bd2271 100644 --- a/pkg/proto/sdk_ws/ws.pb.go +++ b/pkg/proto/sdk_ws/ws.pb.go @@ -437,7 +437,7 @@ func (m *UserInfo) GetAppMangerLevel() int32 { type FriendInfo struct { OwnerUserID string `protobuf:"bytes,1,opt,name=OwnerUserID" json:"OwnerUserID,omitempty"` Remark string `protobuf:"bytes,2,opt,name=Remark" json:"Remark,omitempty"` - CreateTime int64 `protobuf:"varint,3,opt,name=CreateTime" json:"CreateTime,omitempty"` + CreateTime uint32 `protobuf:"varint,3,opt,name=CreateTime" json:"CreateTime,omitempty"` FriendUser *UserInfo `protobuf:"bytes,4,opt,name=FriendUser" json:"FriendUser,omitempty"` AddSource int32 `protobuf:"varint,5,opt,name=AddSource" json:"AddSource,omitempty"` OperatorUserID string `protobuf:"bytes,6,opt,name=OperatorUserID" json:"OperatorUserID,omitempty"` From aafbee2a28ca0347b4cfd858a62b11e8dacbb061 Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Thu, 6 Jan 2022 18:08:54 +0800 Subject: [PATCH 464/814] Refactor code --- pkg/proto/sdk_ws/ws.pb.go | 2 +- pkg/proto/sdk_ws/ws.proto | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/pkg/proto/sdk_ws/ws.pb.go b/pkg/proto/sdk_ws/ws.pb.go index 7f9bd2271..0b30328b4 100644 --- a/pkg/proto/sdk_ws/ws.pb.go +++ b/pkg/proto/sdk_ws/ws.pb.go @@ -437,7 +437,7 @@ func (m *UserInfo) GetAppMangerLevel() int32 { type FriendInfo struct { OwnerUserID string `protobuf:"bytes,1,opt,name=OwnerUserID" json:"OwnerUserID,omitempty"` Remark string `protobuf:"bytes,2,opt,name=Remark" json:"Remark,omitempty"` - CreateTime uint32 `protobuf:"varint,3,opt,name=CreateTime" json:"CreateTime,omitempty"` + CreateTime int64 `protobuf:"varint,3,opt,name=CreateTime" json:"CreateTime,omitempty"` FriendUser *UserInfo `protobuf:"bytes,4,opt,name=FriendUser" json:"FriendUser,omitempty"` AddSource int32 `protobuf:"varint,5,opt,name=AddSource" json:"AddSource,omitempty"` OperatorUserID string `protobuf:"bytes,6,opt,name=OperatorUserID" json:"OperatorUserID,omitempty"` diff --git a/pkg/proto/sdk_ws/ws.proto b/pkg/proto/sdk_ws/ws.proto index 3f552891f..0f8f845eb 100644 --- a/pkg/proto/sdk_ws/ws.proto +++ b/pkg/proto/sdk_ws/ws.proto @@ -58,7 +58,7 @@ message UserInfo{ message FriendInfo{ string OwnerUserID = 1; string Remark = 2; - int64 CreateTime = 3; + uint32 CreateTime = 3; UserInfo FriendUser = 4; int32 AddSource = 5; string OperatorUserID = 6; From edfb89a8d9f438180a31fa87400cf2d44e60211b Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Thu, 6 Jan 2022 18:09:48 +0800 Subject: [PATCH 465/814] Refactor code --- internal/api/friend/friend.go | 1 - 1 file changed, 1 deletion(-) diff --git a/internal/api/friend/friend.go b/internal/api/friend/friend.go index 5d9b0060a..3cd14ff73 100644 --- a/internal/api/friend/friend.go +++ b/internal/api/friend/friend.go @@ -383,7 +383,6 @@ func GetFriendList(c *gin.Context) { } resp := api.GetFriendListResp{CommResp: api.CommResp{ErrCode: RpcResp.ErrCode, ErrMsg: RpcResp.ErrMsg}, FriendInfoList: RpcResp.FriendInfoList} - resp.TestTime = 1641450220 resp.Data = jsonData.JsonDataList(resp.FriendInfoList) log.NewInfo(req.CommID.OperationID, "GetFriendList api return ", resp) c.JSON(http.StatusOK, resp) From d6133c325ad65bbda95d8d9848e159792291d285 Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Thu, 6 Jan 2022 18:14:54 +0800 Subject: [PATCH 466/814] Refactor code --- pkg/proto/sdk_ws/ws.pb.go | 325 +++++++++++++++++++------------------- 1 file changed, 163 insertions(+), 162 deletions(-) diff --git a/pkg/proto/sdk_ws/ws.pb.go b/pkg/proto/sdk_ws/ws.pb.go index 0b30328b4..3fbfb6e81 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_8a45d93b14f6e420, []int{0} + return fileDescriptor_ws_996ebd499da55dba, []int{0} } func (m *GroupInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupInfo.Unmarshal(m, b) @@ -164,7 +164,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_8a45d93b14f6e420, []int{1} + return fileDescriptor_ws_996ebd499da55dba, []int{1} } func (m *GroupMemberFullInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupMemberFullInfo.Unmarshal(m, b) @@ -269,7 +269,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_8a45d93b14f6e420, []int{2} + return fileDescriptor_ws_996ebd499da55dba, []int{2} } func (m *PublicUserInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_PublicUserInfo.Unmarshal(m, b) @@ -344,7 +344,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_8a45d93b14f6e420, []int{3} + return fileDescriptor_ws_996ebd499da55dba, []int{3} } func (m *UserInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_UserInfo.Unmarshal(m, b) @@ -437,7 +437,7 @@ func (m *UserInfo) GetAppMangerLevel() int32 { type FriendInfo struct { OwnerUserID string `protobuf:"bytes,1,opt,name=OwnerUserID" json:"OwnerUserID,omitempty"` Remark string `protobuf:"bytes,2,opt,name=Remark" json:"Remark,omitempty"` - CreateTime int64 `protobuf:"varint,3,opt,name=CreateTime" json:"CreateTime,omitempty"` + CreateTime uint32 `protobuf:"varint,3,opt,name=CreateTime" json:"CreateTime,omitempty"` FriendUser *UserInfo `protobuf:"bytes,4,opt,name=FriendUser" json:"FriendUser,omitempty"` AddSource int32 `protobuf:"varint,5,opt,name=AddSource" json:"AddSource,omitempty"` OperatorUserID string `protobuf:"bytes,6,opt,name=OperatorUserID" json:"OperatorUserID,omitempty"` @@ -451,7 +451,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_8a45d93b14f6e420, []int{4} + return fileDescriptor_ws_996ebd499da55dba, []int{4} } func (m *FriendInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FriendInfo.Unmarshal(m, b) @@ -485,7 +485,7 @@ func (m *FriendInfo) GetRemark() string { return "" } -func (m *FriendInfo) GetCreateTime() int64 { +func (m *FriendInfo) GetCreateTime() uint32 { if m != nil { return m.CreateTime } @@ -536,7 +536,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_8a45d93b14f6e420, []int{5} + return fileDescriptor_ws_996ebd499da55dba, []int{5} } func (m *BlackInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_BlackInfo.Unmarshal(m, b) @@ -617,7 +617,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_8a45d93b14f6e420, []int{6} + return fileDescriptor_ws_996ebd499da55dba, []int{6} } func (m *GroupRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupRequest.Unmarshal(m, b) @@ -719,7 +719,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_8a45d93b14f6e420, []int{7} + return fileDescriptor_ws_996ebd499da55dba, []int{7} } func (m *FriendRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FriendRequest.Unmarshal(m, b) @@ -818,7 +818,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_8a45d93b14f6e420, []int{8} + return fileDescriptor_ws_996ebd499da55dba, []int{8} } func (m *PullMessageBySeqListResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_PullMessageBySeqListResp.Unmarshal(m, b) @@ -893,7 +893,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_8a45d93b14f6e420, []int{9} + return fileDescriptor_ws_996ebd499da55dba, []int{9} } func (m *PullMessageBySeqListReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_PullMessageBySeqListReq.Unmarshal(m, b) @@ -948,7 +948,7 @@ func (m *PullMessageReq) Reset() { *m = PullMessageReq{} } func (m *PullMessageReq) String() string { return proto.CompactTextString(m) } func (*PullMessageReq) ProtoMessage() {} func (*PullMessageReq) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_8a45d93b14f6e420, []int{10} + return fileDescriptor_ws_996ebd499da55dba, []int{10} } func (m *PullMessageReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_PullMessageReq.Unmarshal(m, b) @@ -1012,7 +1012,7 @@ func (m *PullMessageResp) Reset() { *m = PullMessageResp{} } func (m *PullMessageResp) String() string { return proto.CompactTextString(m) } func (*PullMessageResp) ProtoMessage() {} func (*PullMessageResp) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_8a45d93b14f6e420, []int{11} + return fileDescriptor_ws_996ebd499da55dba, []int{11} } func (m *PullMessageResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_PullMessageResp.Unmarshal(m, b) @@ -1084,7 +1084,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_8a45d93b14f6e420, []int{12} + return fileDescriptor_ws_996ebd499da55dba, []int{12} } func (m *GetMaxAndMinSeqReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetMaxAndMinSeqReq.Unmarshal(m, b) @@ -1116,7 +1116,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_8a45d93b14f6e420, []int{13} + return fileDescriptor_ws_996ebd499da55dba, []int{13} } func (m *GetMaxAndMinSeqResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetMaxAndMinSeqResp.Unmarshal(m, b) @@ -1164,7 +1164,7 @@ func (m *GatherFormat) Reset() { *m = GatherFormat{} } func (m *GatherFormat) String() string { return proto.CompactTextString(m) } func (*GatherFormat) ProtoMessage() {} func (*GatherFormat) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_8a45d93b14f6e420, []int{14} + return fileDescriptor_ws_996ebd499da55dba, []int{14} } func (m *GatherFormat) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GatherFormat.Unmarshal(m, b) @@ -1211,7 +1211,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_8a45d93b14f6e420, []int{15} + return fileDescriptor_ws_996ebd499da55dba, []int{15} } func (m *UserSendMsgResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_UserSendMsgResp.Unmarshal(m, b) @@ -1280,7 +1280,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_8a45d93b14f6e420, []int{16} + return fileDescriptor_ws_996ebd499da55dba, []int{16} } func (m *MsgData) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MsgData.Unmarshal(m, b) @@ -1441,7 +1441,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_8a45d93b14f6e420, []int{17} + return fileDescriptor_ws_996ebd499da55dba, []int{17} } func (m *OfflinePushInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_OfflinePushInfo.Unmarshal(m, b) @@ -1508,7 +1508,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_8a45d93b14f6e420, []int{18} + return fileDescriptor_ws_996ebd499da55dba, []int{18} } func (m *TipsComm) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_TipsComm.Unmarshal(m, b) @@ -1557,7 +1557,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_8a45d93b14f6e420, []int{19} + return fileDescriptor_ws_996ebd499da55dba, []int{19} } func (m *MemberEnterTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MemberEnterTips.Unmarshal(m, b) @@ -1612,7 +1612,7 @@ func (m *MemberLeaveTips) Reset() { *m = MemberLeaveTips{} } func (m *MemberLeaveTips) String() string { return proto.CompactTextString(m) } func (*MemberLeaveTips) ProtoMessage() {} func (*MemberLeaveTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_8a45d93b14f6e420, []int{20} + return fileDescriptor_ws_996ebd499da55dba, []int{20} } func (m *MemberLeaveTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MemberLeaveTips.Unmarshal(m, b) @@ -1667,7 +1667,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_8a45d93b14f6e420, []int{21} + return fileDescriptor_ws_996ebd499da55dba, []int{21} } func (m *MemberInvitedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MemberInvitedTips.Unmarshal(m, b) @@ -1729,7 +1729,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_8a45d93b14f6e420, []int{22} + return fileDescriptor_ws_996ebd499da55dba, []int{22} } func (m *MemberKickedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MemberKickedTips.Unmarshal(m, b) @@ -1792,7 +1792,7 @@ func (m *MemberInfoChangedTips) Reset() { *m = MemberInfoChangedTips{} } func (m *MemberInfoChangedTips) String() string { return proto.CompactTextString(m) } func (*MemberInfoChangedTips) ProtoMessage() {} func (*MemberInfoChangedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_8a45d93b14f6e420, []int{23} + return fileDescriptor_ws_996ebd499da55dba, []int{23} } func (m *MemberInfoChangedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MemberInfoChangedTips.Unmarshal(m, b) @@ -1861,7 +1861,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_8a45d93b14f6e420, []int{24} + return fileDescriptor_ws_996ebd499da55dba, []int{24} } func (m *GroupCreatedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupCreatedTips.Unmarshal(m, b) @@ -1922,7 +1922,7 @@ func (m *GroupInfoChangedTips) Reset() { *m = GroupInfoChangedTips{} } func (m *GroupInfoChangedTips) String() string { return proto.CompactTextString(m) } func (*GroupInfoChangedTips) ProtoMessage() {} func (*GroupInfoChangedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_8a45d93b14f6e420, []int{25} + return fileDescriptor_ws_996ebd499da55dba, []int{25} } func (m *GroupInfoChangedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupInfoChangedTips.Unmarshal(m, b) @@ -1976,7 +1976,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_8a45d93b14f6e420, []int{26} + return fileDescriptor_ws_996ebd499da55dba, []int{26} } func (m *JoinGroupApplicationTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_JoinGroupApplicationTips.Unmarshal(m, b) @@ -2031,7 +2031,7 @@ func (m *ApplicationProcessedTips) Reset() { *m = ApplicationProcessedTi func (m *ApplicationProcessedTips) String() string { return proto.CompactTextString(m) } func (*ApplicationProcessedTips) ProtoMessage() {} func (*ApplicationProcessedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_8a45d93b14f6e420, []int{27} + return fileDescriptor_ws_996ebd499da55dba, []int{27} } func (m *ApplicationProcessedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ApplicationProcessedTips.Unmarshal(m, b) @@ -2092,7 +2092,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_8a45d93b14f6e420, []int{28} + return fileDescriptor_ws_996ebd499da55dba, []int{28} } func (m *FriendApplication) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FriendApplication.Unmarshal(m, b) @@ -2145,7 +2145,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_8a45d93b14f6e420, []int{29} + return fileDescriptor_ws_996ebd499da55dba, []int{29} } func (m *FromToUserID) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FromToUserID.Unmarshal(m, b) @@ -2191,7 +2191,7 @@ func (m *FriendApplicationAddedTips) Reset() { *m = FriendApplicationAdd func (m *FriendApplicationAddedTips) String() string { return proto.CompactTextString(m) } func (*FriendApplicationAddedTips) ProtoMessage() {} func (*FriendApplicationAddedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_8a45d93b14f6e420, []int{30} + return fileDescriptor_ws_996ebd499da55dba, []int{30} } func (m *FriendApplicationAddedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FriendApplicationAddedTips.Unmarshal(m, b) @@ -2230,7 +2230,7 @@ func (m *FriendApplicationProcessedTips) Reset() { *m = FriendApplicatio func (m *FriendApplicationProcessedTips) String() string { return proto.CompactTextString(m) } func (*FriendApplicationProcessedTips) ProtoMessage() {} func (*FriendApplicationProcessedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_8a45d93b14f6e420, []int{31} + return fileDescriptor_ws_996ebd499da55dba, []int{31} } func (m *FriendApplicationProcessedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FriendApplicationProcessedTips.Unmarshal(m, b) @@ -2271,7 +2271,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_8a45d93b14f6e420, []int{32} + return fileDescriptor_ws_996ebd499da55dba, []int{32} } func (m *FriendAddedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FriendAddedTips.Unmarshal(m, b) @@ -2324,7 +2324,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_8a45d93b14f6e420, []int{33} + return fileDescriptor_ws_996ebd499da55dba, []int{33} } func (m *FriendDeletedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FriendDeletedTips.Unmarshal(m, b) @@ -2362,7 +2362,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_8a45d93b14f6e420, []int{34} + return fileDescriptor_ws_996ebd499da55dba, []int{34} } func (m *BlackAddedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_BlackAddedTips.Unmarshal(m, b) @@ -2400,7 +2400,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_8a45d93b14f6e420, []int{35} + return fileDescriptor_ws_996ebd499da55dba, []int{35} } func (m *BlackDeletedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_BlackDeletedTips.Unmarshal(m, b) @@ -2438,7 +2438,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_8a45d93b14f6e420, []int{36} + return fileDescriptor_ws_996ebd499da55dba, []int{36} } func (m *FriendInfoChangedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FriendInfoChangedTips.Unmarshal(m, b) @@ -2477,7 +2477,7 @@ func (m *SelfInfoUpdatedTips) Reset() { *m = SelfInfoUpdatedTips{} } func (m *SelfInfoUpdatedTips) String() string { return proto.CompactTextString(m) } func (*SelfInfoUpdatedTips) ProtoMessage() {} func (*SelfInfoUpdatedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_8a45d93b14f6e420, []int{37} + return fileDescriptor_ws_996ebd499da55dba, []int{37} } func (m *SelfInfoUpdatedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SelfInfoUpdatedTips.Unmarshal(m, b) @@ -2546,128 +2546,129 @@ func init() { proto.RegisterType((*SelfInfoUpdatedTips)(nil), "open_im_sdk.SelfInfoUpdatedTips") } -func init() { proto.RegisterFile("sdk_ws/ws.proto", fileDescriptor_ws_8a45d93b14f6e420) } +func init() { proto.RegisterFile("sdk_ws/ws.proto", fileDescriptor_ws_996ebd499da55dba) } -var fileDescriptor_ws_8a45d93b14f6e420 = []byte{ - // 1920 bytes of a gzipped FileDescriptorProto +var fileDescriptor_ws_996ebd499da55dba = []byte{ + // 1924 bytes of a gzipped FileDescriptorProto 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe4, 0x59, 0xcd, 0x8f, 0x1b, 0x49, - 0x15, 0x57, 0xb7, 0xdd, 0xfe, 0x78, 0xf6, 0x8c, 0x27, 0x9d, 0x64, 0xb6, 0x09, 0xab, 0xc8, 0xb4, - 0x56, 0x68, 0x84, 0x20, 0x2b, 0x65, 0x85, 0xb4, 0x04, 0x2d, 0xe0, 0x19, 0xcf, 0xe4, 0x83, 0x38, - 0x1e, 0xda, 0x13, 0x38, 0x70, 0x88, 0x3a, 0xee, 0xb2, 0xa7, 0xe5, 0x76, 0xb5, 0xdd, 0xd5, 0x3d, - 0x49, 0x2e, 0x9c, 0xf9, 0x07, 0xe0, 0xb2, 0x02, 0x71, 0x43, 0x5c, 0x39, 0xc0, 0x3f, 0x84, 0x38, - 0x20, 0x71, 0x42, 0x9c, 0xe0, 0x80, 0x5e, 0x55, 0x75, 0x77, 0x95, 0xed, 0x4c, 0x3c, 0x99, 0x28, - 0x17, 0x6e, 0x7e, 0xbf, 0x7e, 0xf5, 0xbe, 0xeb, 0xd5, 0xab, 0x32, 0x74, 0x58, 0x30, 0x7b, 0xf1, - 0x8a, 0x7d, 0xfe, 0x8a, 0xdd, 0x5b, 0x24, 0x71, 0x1a, 0xdb, 0xad, 0x78, 0x41, 0xe8, 0x8b, 0x70, - 0xfe, 0x82, 0x05, 0x33, 0xf7, 0xdf, 0x26, 0x34, 0x1f, 0x26, 0x71, 0xb6, 0x78, 0x4c, 0x27, 0xb1, - 0xed, 0x40, 0x5d, 0x10, 0x7d, 0xc7, 0xe8, 0x1a, 0x07, 0x4d, 0x2f, 0x27, 0xed, 0x4f, 0x25, 0xdb, - 0x33, 0x7f, 0x4e, 0x1c, 0x93, 0x7f, 0x2b, 0x01, 0xdb, 0x85, 0xf6, 0xb3, 0x38, 0x0d, 0x27, 0xe1, - 0xd8, 0x4f, 0xc3, 0x98, 0x3a, 0x15, 0xce, 0xa0, 0x61, 0xc8, 0xf3, 0x98, 0xa6, 0x49, 0x1c, 0x64, - 0x63, 0xce, 0x53, 0x15, 0x3c, 0x2a, 0x86, 0xfa, 0x4f, 0xfc, 0x31, 0x79, 0x9e, 0x44, 0x8e, 0x25, - 0xf4, 0x4b, 0xd2, 0xee, 0x42, 0x6b, 0xf8, 0x8a, 0x92, 0xe4, 0x39, 0x23, 0xc9, 0xe3, 0xbe, 0x53, - 0xe3, 0x5f, 0x55, 0xc8, 0xbe, 0x0b, 0x70, 0x94, 0x10, 0x3f, 0x25, 0x67, 0xe1, 0x9c, 0x38, 0xf5, - 0xae, 0x71, 0x50, 0xf1, 0x14, 0x04, 0x25, 0x0c, 0xc8, 0xfc, 0x25, 0x49, 0x8e, 0xe2, 0x8c, 0xa6, - 0x4e, 0xa3, 0x6b, 0x1c, 0xec, 0x78, 0x2a, 0x64, 0xef, 0x82, 0x79, 0xfc, 0xda, 0x69, 0x72, 0xd1, - 0xe6, 0xf1, 0x6b, 0x7b, 0x1f, 0x6a, 0xa3, 0xd4, 0x4f, 0x33, 0xe6, 0x40, 0xd7, 0x38, 0xb0, 0x3c, - 0x49, 0xd9, 0x9f, 0xc1, 0x0e, 0x97, 0x1b, 0xe7, 0xd6, 0xb4, 0xf8, 0x12, 0x1d, 0x2c, 0x22, 0x76, - 0xf6, 0x66, 0x41, 0x9c, 0x36, 0x17, 0x50, 0x02, 0xee, 0x5f, 0x4d, 0xb8, 0xc9, 0x29, 0x61, 0xc0, - 0x49, 0x16, 0x45, 0xef, 0xc8, 0xc0, 0x3e, 0xd4, 0xa4, 0x3a, 0x11, 0xfe, 0x5a, 0xa9, 0x27, 0x89, - 0x23, 0xf2, 0x94, 0x5c, 0x90, 0x88, 0x07, 0xde, 0xf2, 0x4a, 0xc0, 0xbe, 0x03, 0x8d, 0x27, 0x71, - 0x48, 0x79, 0x4c, 0xaa, 0x3c, 0x26, 0x05, 0x8d, 0xdf, 0x9e, 0x85, 0xe3, 0x19, 0xc5, 0x94, 0x8a, - 0x70, 0x17, 0xb4, 0x9a, 0x89, 0x9a, 0x9e, 0x89, 0x6f, 0xc3, 0x6e, 0x6f, 0xb1, 0x18, 0xf8, 0x74, - 0x4a, 0x12, 0xa1, 0xb4, 0xce, 0x95, 0xae, 0xa0, 0x98, 0x0f, 0xd4, 0x34, 0x8a, 0xb3, 0x64, 0x4c, - 0x78, 0xb8, 0x2d, 0x4f, 0x41, 0x50, 0xce, 0x70, 0x41, 0x12, 0x25, 0x8c, 0x22, 0xf2, 0x2b, 0xa8, - 0xcc, 0x0a, 0xe4, 0x59, 0x71, 0x7f, 0x6f, 0xc0, 0xee, 0x69, 0xf6, 0x32, 0x0a, 0xc7, 0x9c, 0x01, - 0x83, 0x56, 0x86, 0xc6, 0xd0, 0x42, 0xa3, 0x3a, 0x68, 0xbe, 0xdd, 0xc1, 0x8a, 0xee, 0xe0, 0x3e, - 0xd4, 0x1e, 0x12, 0x1a, 0x90, 0x84, 0x07, 0xcc, 0xf2, 0x24, 0xb5, 0xc1, 0x71, 0x6b, 0x93, 0xe3, - 0xee, 0x6f, 0x4d, 0x68, 0x7c, 0x64, 0xd3, 0xba, 0xd0, 0x3a, 0x3d, 0x8f, 0x29, 0x79, 0x96, 0x61, - 0x31, 0xc9, 0x64, 0xaa, 0x90, 0x7d, 0x0b, 0xac, 0xc3, 0x30, 0x49, 0xcf, 0x79, 0x36, 0x2b, 0x9e, - 0x20, 0x10, 0x3d, 0x9e, 0xfb, 0xa1, 0x48, 0x61, 0xd3, 0x13, 0x84, 0x8c, 0x78, 0xa3, 0xd8, 0x07, - 0xfa, 0xce, 0x6a, 0xae, 0xed, 0xac, 0xf5, 0xc0, 0xc0, 0xc6, 0xc0, 0xfc, 0xcb, 0x00, 0x38, 0x49, - 0x42, 0x42, 0x03, 0x1e, 0x9a, 0x95, 0x2d, 0x6d, 0xac, 0x6f, 0xe9, 0x7d, 0xa8, 0x79, 0x64, 0xee, - 0x27, 0xb3, 0xbc, 0xe4, 0x05, 0xb5, 0x62, 0x50, 0x65, 0xcd, 0xa0, 0xef, 0xe7, 0x7a, 0x50, 0x0e, - 0x0f, 0x55, 0xeb, 0xfe, 0xed, 0x7b, 0x4a, 0xdb, 0xbb, 0x97, 0xe7, 0xc7, 0x53, 0x18, 0x71, 0x27, - 0xf5, 0x82, 0x40, 0x16, 0xac, 0xc8, 0x6d, 0x09, 0x6c, 0xa8, 0xd7, 0xda, 0x25, 0xf5, 0x5a, 0x2f, - 0xea, 0xf5, 0xef, 0x06, 0x34, 0x0f, 0x23, 0x7f, 0x3c, 0xdb, 0xd2, 0x69, 0xdd, 0x39, 0x73, 0xcd, - 0xb9, 0x1e, 0xec, 0x70, 0x71, 0xb9, 0x0b, 0xdc, 0xff, 0xd6, 0xfd, 0x6f, 0x6a, 0xfe, 0xe9, 0x1b, - 0xc4, 0xd3, 0x57, 0xe8, 0x8e, 0x56, 0xdf, 0xed, 0xa8, 0x75, 0x89, 0xa3, 0xb5, 0xc2, 0xd1, 0x5f, - 0x9b, 0xd0, 0xe6, 0xcd, 0xca, 0x23, 0xcb, 0x8c, 0xb0, 0xf4, 0xad, 0xb5, 0xaf, 0xf4, 0x38, 0x53, - 0xef, 0x71, 0x2e, 0xb4, 0x1f, 0xf9, 0x34, 0x88, 0x88, 0x47, 0x58, 0x16, 0xa5, 0xf9, 0x39, 0xa2, - 0x62, 0xa2, 0x28, 0x96, 0x03, 0x36, 0x95, 0x27, 0x88, 0xa4, 0xd0, 0x29, 0xc1, 0x87, 0x9f, 0x84, - 0xc5, 0x25, 0x80, 0x3a, 0x3d, 0xb2, 0xe4, 0x21, 0x15, 0x3b, 0x20, 0x27, 0x4b, 0x9d, 0xd2, 0xd6, - 0xba, 0xaa, 0xb3, 0xcc, 0x89, 0xa0, 0xb9, 0x80, 0x86, 0xc8, 0x49, 0x89, 0xac, 0x9e, 0x1c, 0xee, - 0xd7, 0x26, 0xec, 0x88, 0xc2, 0xca, 0x63, 0x71, 0x17, 0x4b, 0x32, 0x9e, 0x6b, 0xf1, 0x50, 0x10, - 0xec, 0x07, 0x67, 0xb1, 0xd6, 0xdf, 0x0b, 0x7a, 0x63, 0x54, 0xac, 0x2d, 0xa3, 0xa2, 0x57, 0x93, - 0xb5, 0x56, 0x4d, 0x9f, 0xc1, 0x8e, 0x90, 0xa3, 0x17, 0xb5, 0x0e, 0xea, 0xb1, 0xad, 0xaf, 0xc6, - 0xf6, 0xaa, 0xd1, 0xf9, 0xaf, 0x01, 0xce, 0x69, 0x16, 0x45, 0x03, 0xc2, 0x98, 0x3f, 0x25, 0x87, - 0x6f, 0x46, 0x64, 0xf9, 0x34, 0x64, 0xa9, 0x47, 0xd8, 0x02, 0x13, 0x45, 0x92, 0xe4, 0x28, 0x0e, - 0x08, 0x8f, 0x92, 0xe5, 0xe5, 0x24, 0xba, 0x48, 0x92, 0x04, 0x2d, 0x90, 0xdd, 0x40, 0x50, 0x88, - 0xcf, 0xfd, 0xd7, 0x23, 0xb2, 0x94, 0x9d, 0x40, 0x52, 0x1c, 0x0f, 0x29, 0xe2, 0x55, 0x89, 0x73, - 0xca, 0xfe, 0x31, 0xec, 0xb0, 0x90, 0x4e, 0x45, 0x72, 0x45, 0xb1, 0x54, 0x0e, 0x5a, 0xf7, 0xbf, - 0xa1, 0x6d, 0xa0, 0x87, 0x7e, 0x7a, 0x4e, 0x92, 0x93, 0x38, 0x99, 0xfb, 0xa9, 0xa7, 0xf3, 0xdb, - 0x5f, 0x41, 0x7b, 0x8a, 0x05, 0x9b, 0xaf, 0xaf, 0xbd, 0x6b, 0xbd, 0xc6, 0xee, 0xce, 0xe1, 0x93, - 0xcd, 0xde, 0x73, 0x93, 0x33, 0x6d, 0xc7, 0x08, 0x0a, 0xbb, 0x46, 0xcc, 0x37, 0x5f, 0x18, 0xd3, - 0xa2, 0x40, 0x54, 0x08, 0xc3, 0xc6, 0x84, 0x1c, 0xa7, 0xd2, 0xad, 0x60, 0x7d, 0x4b, 0xd2, 0xfd, - 0x15, 0x1e, 0x97, 0x85, 0xba, 0xcb, 0xb4, 0xdc, 0x81, 0x06, 0x23, 0xcb, 0x43, 0x32, 0x0d, 0xa9, - 0xec, 0x3b, 0x05, 0x8d, 0x6b, 0x18, 0x59, 0x1e, 0xd3, 0x20, 0x0f, 0xb2, 0xa0, 0x56, 0x2d, 0xab, - 0xae, 0x59, 0x86, 0x5d, 0xbf, 0xa3, 0x19, 0xf0, 0x7f, 0x91, 0xe4, 0x5b, 0x60, 0x3f, 0x24, 0xe9, - 0xc0, 0x7f, 0xdd, 0xa3, 0xc1, 0x80, 0x9b, 0xe4, 0x91, 0xa5, 0x7b, 0x0c, 0x37, 0xd7, 0x50, 0xb6, - 0x50, 0x9c, 0x33, 0xde, 0xe2, 0x9c, 0xa9, 0x3a, 0xe7, 0x3e, 0x82, 0xb6, 0xaa, 0x1a, 0x37, 0x58, - 0x18, 0xc8, 0x64, 0x9a, 0x61, 0x60, 0x1f, 0x40, 0x35, 0xc2, 0x4a, 0x30, 0xb9, 0xcd, 0xb7, 0x34, - 0x9b, 0x07, 0x6c, 0xda, 0xf7, 0x53, 0xdf, 0xe3, 0x1c, 0xee, 0x12, 0x3a, 0x68, 0xf1, 0x88, 0xd0, - 0x60, 0xc0, 0xa6, 0xdc, 0x98, 0x2e, 0xb4, 0x46, 0x24, 0xb9, 0xe0, 0x6e, 0x94, 0x27, 0x94, 0x02, - 0x21, 0xc7, 0x51, 0x14, 0x12, 0x9a, 0x0a, 0x0e, 0x59, 0x8d, 0x0a, 0x24, 0x2a, 0x89, 0x06, 0xca, - 0xf1, 0x5c, 0xd0, 0xee, 0x5f, 0x2c, 0xa8, 0x4b, 0x23, 0x44, 0x55, 0xd1, 0xa0, 0xac, 0x44, 0x41, - 0x21, 0x9e, 0x90, 0xf1, 0x45, 0x39, 0xeb, 0x0a, 0x0a, 0xeb, 0x66, 0x2a, 0x4f, 0x0e, 0x39, 0x19, - 0x49, 0x12, 0x6d, 0x1a, 0x2b, 0x36, 0xc9, 0x3a, 0x54, 0x20, 0xe4, 0x60, 0x8a, 0x5f, 0x72, 0x46, - 0x52, 0x20, 0xfb, 0x3b, 0xb0, 0xc7, 0xf8, 0x3c, 0x75, 0x1a, 0xf9, 0xe9, 0x24, 0x4e, 0xe6, 0xb2, - 0x1d, 0x5a, 0xde, 0x1a, 0x8e, 0x87, 0xa4, 0xc0, 0x8a, 0x29, 0x4e, 0xb4, 0xc5, 0x15, 0x14, 0xfb, - 0xab, 0x40, 0xf8, 0x08, 0xe7, 0x3d, 0x95, 0x63, 0x95, 0x0e, 0x0a, 0xdb, 0x18, 0x0b, 0x63, 0xca, - 0x6f, 0x0b, 0x4d, 0xae, 0x54, 0x85, 0xd0, 0xf3, 0x39, 0x9b, 0xe2, 0x81, 0x21, 0x87, 0xab, 0x9c, - 0xe4, 0x9e, 0xc7, 0x34, 0x25, 0x34, 0xe5, 0x6b, 0x5b, 0x62, 0xad, 0x02, 0xe1, 0x5a, 0x49, 0xf2, - 0x7b, 0x48, 0xdb, 0xcb, 0x49, 0xec, 0xeb, 0x93, 0x38, 0x19, 0x13, 0xde, 0x37, 0x76, 0xba, 0x15, - 0xec, 0xeb, 0x05, 0x60, 0xef, 0x41, 0x85, 0x91, 0xa5, 0xb3, 0xcb, 0x13, 0x88, 0x3f, 0xb5, 0xbc, - 0x76, 0xf4, 0xbc, 0xe2, 0x29, 0x30, 0x2e, 0x4f, 0x9a, 0x3d, 0x71, 0x0a, 0x94, 0x88, 0xfd, 0x43, - 0xa8, 0x0f, 0x17, 0xd8, 0x13, 0x98, 0x73, 0x83, 0xd7, 0xe5, 0xb7, 0x36, 0xd5, 0xe5, 0x3d, 0xc9, - 0x73, 0x4c, 0xd3, 0xe4, 0x8d, 0x97, 0xaf, 0xb0, 0x4f, 0xa0, 0x13, 0x4f, 0x26, 0x51, 0x48, 0xc9, - 0x69, 0xc6, 0xce, 0xf9, 0xd8, 0x63, 0xf3, 0xb1, 0xe7, 0x53, 0x4d, 0xc8, 0x50, 0xe7, 0xf1, 0x56, - 0x17, 0xdd, 0x79, 0x00, 0x6d, 0x55, 0x01, 0xba, 0x38, 0x23, 0x6f, 0x64, 0xf5, 0xe1, 0x4f, 0x1c, - 0x89, 0x2f, 0xfc, 0x28, 0x13, 0x93, 0x57, 0xc3, 0x13, 0xc4, 0x03, 0xf3, 0x4b, 0xc3, 0xfd, 0x8d, - 0x01, 0x9d, 0x15, 0x05, 0xc8, 0x7d, 0x16, 0xa6, 0x11, 0x91, 0x12, 0x04, 0x61, 0xdb, 0x50, 0xed, - 0x13, 0x36, 0x96, 0xc5, 0xcb, 0x7f, 0xcb, 0x43, 0xb0, 0x52, 0x0c, 0xd5, 0x2e, 0xb4, 0xc3, 0xe1, - 0x08, 0x05, 0x8d, 0xe2, 0x8c, 0x06, 0xf9, 0x75, 0x58, 0xc5, 0xb0, 0x78, 0xc2, 0xe1, 0xe8, 0xd0, - 0x0f, 0xa6, 0x44, 0x5c, 0x5a, 0x2d, 0x6e, 0x93, 0x0e, 0xba, 0x7d, 0x68, 0x9c, 0x85, 0x0b, 0x76, - 0x14, 0xcf, 0xe7, 0xb8, 0x71, 0xfa, 0x24, 0xc5, 0x89, 0xde, 0xe0, 0x99, 0x96, 0x14, 0x16, 0x49, - 0x9f, 0x4c, 0xfc, 0x2c, 0x4a, 0x91, 0x35, 0xdf, 0xb2, 0x0a, 0xe4, 0xfe, 0xc9, 0x80, 0x8e, 0xb8, - 0x8b, 0x1e, 0xd3, 0x94, 0x24, 0x88, 0xd9, 0xdf, 0x05, 0x8b, 0x4f, 0x66, 0x5c, 0x58, 0xeb, 0xfe, - 0xbe, 0xde, 0xfc, 0xf2, 0x57, 0x03, 0x4f, 0x30, 0xd9, 0x87, 0xd0, 0xc2, 0xa0, 0xfa, 0x34, 0xe5, - 0x63, 0xb7, 0xc9, 0xd7, 0x74, 0xd7, 0xd7, 0xe8, 0x37, 0x5e, 0x4f, 0x5d, 0x84, 0x1e, 0x0f, 0xf3, - 0xb3, 0x43, 0xe9, 0x1e, 0x3a, 0xe8, 0xfe, 0xb1, 0xb0, 0xf5, 0x29, 0xf1, 0x2f, 0xc8, 0x7b, 0xd8, - 0xfa, 0x13, 0x00, 0xbe, 0x34, 0xb9, 0x92, 0xa9, 0xca, 0x9a, 0x2d, 0x2d, 0xfd, 0xa7, 0x01, 0x37, - 0x84, 0x90, 0xc7, 0xf4, 0x22, 0x4c, 0x49, 0xf0, 0x1e, 0xb6, 0x7e, 0x09, 0xb5, 0xe1, 0xe2, 0x4a, - 0x76, 0x4a, 0x7e, 0xfb, 0x09, 0x74, 0xa4, 0x5a, 0x24, 0x8b, 0xe1, 0x60, 0x1b, 0x11, 0xab, 0x0b, - 0xd7, 0xfd, 0xad, 0x6e, 0xf2, 0xf7, 0x1f, 0x06, 0xec, 0x09, 0x49, 0x3f, 0x0d, 0xc7, 0xb3, 0x8f, - 0xec, 0xee, 0x23, 0xd8, 0x15, 0x5a, 0xaf, 0xec, 0xed, 0xca, 0xba, 0x2d, 0x9d, 0xfd, 0x8f, 0x01, - 0xb7, 0xf3, 0xe4, 0x4e, 0xe2, 0xa3, 0x73, 0xbc, 0xea, 0x0a, 0x8f, 0x71, 0xea, 0xe6, 0x24, 0x6f, - 0xc9, 0x62, 0xc4, 0x51, 0x90, 0x6b, 0xf8, 0xf8, 0x23, 0x68, 0x9e, 0x84, 0xd4, 0x8f, 0x94, 0x9b, - 0xdf, 0xbb, 0x17, 0x97, 0x4b, 0xb0, 0x83, 0x0f, 0x32, 0xd9, 0xa3, 0xe5, 0x7b, 0x50, 0x4e, 0x97, - 0x79, 0xb2, 0xb6, 0xc8, 0x93, 0xfb, 0x37, 0x03, 0xf6, 0xf8, 0x2f, 0x71, 0x9b, 0x78, 0x9f, 0x54, - 0x3f, 0x80, 0xba, 0x7c, 0x33, 0xdb, 0x3a, 0x0e, 0xf9, 0x02, 0xdc, 0xc1, 0xb2, 0x05, 0x5c, 0x25, - 0xd1, 0xca, 0x9a, 0x2d, 0x93, 0xfc, 0x07, 0x03, 0x6e, 0x15, 0x86, 0xab, 0x39, 0xc6, 0x29, 0x48, - 0x92, 0x65, 0x92, 0x55, 0xa8, 0x0c, 0x86, 0x79, 0xb5, 0xba, 0xaf, 0x5c, 0xad, 0x26, 0xdc, 0xaf, - 0x0d, 0x70, 0x9e, 0xc4, 0x21, 0xe5, 0x3c, 0xbd, 0xc5, 0x22, 0x92, 0x4f, 0xae, 0xef, 0x91, 0x91, - 0x1f, 0x40, 0x53, 0x0a, 0xa0, 0xa9, 0x34, 0xfb, 0xd2, 0x87, 0x85, 0x92, 0x5b, 0xdc, 0x40, 0x7d, - 0x56, 0xbc, 0xfe, 0x4a, 0xca, 0xfd, 0xb3, 0x01, 0x8e, 0x62, 0xd4, 0x69, 0x12, 0x8f, 0x09, 0x63, - 0x1f, 0xb9, 0x35, 0x70, 0xe3, 0x94, 0xcb, 0x73, 0x4d, 0xbd, 0x36, 0x73, 0xa3, 0xab, 0x9a, 0xd1, - 0x33, 0xb8, 0x21, 0xee, 0xef, 0x8a, 0xe5, 0x38, 0x47, 0xf5, 0x02, 0x31, 0xfc, 0x88, 0x39, 0x3d, - 0x27, 0xf5, 0x07, 0x15, 0xf9, 0x3a, 0x5e, 0x3e, 0xa8, 0xdc, 0x05, 0xe8, 0x05, 0xc1, 0x2f, 0xe2, - 0x24, 0x08, 0xe9, 0x54, 0x46, 0x47, 0x41, 0xdc, 0x27, 0xd0, 0xc6, 0x49, 0xae, 0xb8, 0xef, 0x5f, - 0xe3, 0xad, 0xc0, 0xfd, 0x25, 0xdc, 0x59, 0x33, 0xbc, 0x17, 0x04, 0x32, 0xdc, 0x5f, 0xe9, 0x9a, - 0x64, 0xd4, 0xf5, 0x4b, 0x8d, 0xca, 0xe0, 0x69, 0xec, 0xee, 0x0b, 0xb8, 0xbb, 0x26, 0x5c, 0xcf, - 0xe7, 0x35, 0x15, 0xfc, 0xce, 0x80, 0x8e, 0xd4, 0x50, 0xd8, 0xfc, 0x39, 0xd4, 0x04, 0x24, 0x85, - 0x7d, 0xb2, 0x22, 0x2c, 0x7f, 0x4f, 0xf4, 0x24, 0xdb, 0xfa, 0xbe, 0x36, 0x37, 0xec, 0x6b, 0xfb, - 0x8b, 0x95, 0xed, 0x76, 0x69, 0x99, 0xe7, 0x3b, 0xcd, 0xcb, 0xcb, 0xa2, 0x4f, 0x22, 0x92, 0x7e, - 0x18, 0x9f, 0x87, 0xb0, 0xcb, 0x5f, 0xe7, 0x3e, 0x58, 0x96, 0x7e, 0x06, 0x7b, 0x5c, 0xe0, 0x07, - 0xb4, 0xf1, 0xe7, 0x70, 0xbb, 0x0c, 0xb4, 0xda, 0x04, 0xaf, 0x29, 0xf7, 0x7b, 0x70, 0x73, 0x44, - 0xa2, 0x09, 0x4a, 0x7d, 0xbe, 0x08, 0x8a, 0x53, 0xe4, 0x2d, 0x0f, 0x87, 0x2f, 0x6b, 0xfc, 0x0f, - 0xac, 0x2f, 0xfe, 0x17, 0x00, 0x00, 0xff, 0xff, 0x37, 0xf4, 0xcc, 0x45, 0xd3, 0x1a, 0x00, 0x00, + 0x15, 0x57, 0xb7, 0xbf, 0xc6, 0xcf, 0x9e, 0xf1, 0xa4, 0xf3, 0xb1, 0x4d, 0x58, 0x45, 0xa6, 0xb5, + 0x42, 0x23, 0x04, 0x59, 0x29, 0x2b, 0xa4, 0x25, 0x68, 0x81, 0xf9, 0xcc, 0x07, 0x71, 0x3c, 0xb4, + 0x27, 0x70, 0xe0, 0x10, 0x75, 0xdc, 0x65, 0x4f, 0x6b, 0xda, 0xd5, 0x76, 0x57, 0xf7, 0x24, 0xb9, + 0x70, 0xe6, 0x1f, 0x80, 0xcb, 0x0a, 0xc4, 0x0d, 0x71, 0xe5, 0x00, 0xff, 0x10, 0xe2, 0x80, 0xc4, + 0x09, 0x71, 0x82, 0x03, 0x7a, 0xaf, 0xaa, 0xbb, 0xab, 0x6c, 0x67, 0x32, 0x93, 0x44, 0xb9, 0x70, + 0xf3, 0xfb, 0xf5, 0xab, 0xf7, 0x5d, 0xaf, 0x5e, 0x95, 0xa1, 0x27, 0xc2, 0xb3, 0xe7, 0x2f, 0xc5, + 0xe7, 0x2f, 0xc5, 0xdd, 0x79, 0x9a, 0x64, 0x89, 0xd3, 0x49, 0xe6, 0x8c, 0x3f, 0x8f, 0x66, 0xcf, + 0x45, 0x78, 0xe6, 0xfd, 0xdb, 0x86, 0xf6, 0x83, 0x34, 0xc9, 0xe7, 0x8f, 0xf8, 0x24, 0x71, 0x5c, + 0x68, 0x49, 0xe2, 0xc0, 0xb5, 0xfa, 0xd6, 0x4e, 0xdb, 0x2f, 0x48, 0xe7, 0x53, 0xc5, 0xf6, 0x34, + 0x98, 0x31, 0xd7, 0xa6, 0x6f, 0x15, 0xe0, 0x78, 0xd0, 0x7d, 0x9a, 0x64, 0xd1, 0x24, 0x1a, 0x07, + 0x59, 0x94, 0x70, 0xb7, 0x46, 0x0c, 0x06, 0x86, 0x3c, 0x8f, 0x78, 0x96, 0x26, 0x61, 0x3e, 0x26, + 0x9e, 0xba, 0xe4, 0xd1, 0x31, 0xd4, 0x7f, 0x14, 0x8c, 0xd9, 0xb3, 0x34, 0x76, 0x1b, 0x52, 0xbf, + 0x22, 0x9d, 0x3e, 0x74, 0x86, 0x2f, 0x39, 0x4b, 0x9f, 0x09, 0x96, 0x3e, 0x3a, 0x70, 0x9b, 0xf4, + 0x55, 0x87, 0x9c, 0x3b, 0x00, 0xfb, 0x29, 0x0b, 0x32, 0x76, 0x12, 0xcd, 0x98, 0xdb, 0xea, 0x5b, + 0x3b, 0x35, 0x5f, 0x43, 0x50, 0xc2, 0x80, 0xcd, 0x5e, 0xb0, 0x74, 0x3f, 0xc9, 0x79, 0xe6, 0x6e, + 0xf4, 0xad, 0x9d, 0x4d, 0x5f, 0x87, 0x9c, 0x2d, 0xb0, 0x0f, 0x5f, 0xb9, 0x6d, 0x12, 0x6d, 0x1f, + 0xbe, 0x72, 0x6e, 0x41, 0x73, 0x94, 0x05, 0x59, 0x2e, 0x5c, 0xe8, 0x5b, 0x3b, 0x0d, 0x5f, 0x51, + 0xce, 0x67, 0xb0, 0x49, 0x72, 0x93, 0xc2, 0x9a, 0x0e, 0x2d, 0x31, 0xc1, 0x32, 0x62, 0x27, 0xaf, + 0xe7, 0xcc, 0xed, 0x92, 0x80, 0x0a, 0xf0, 0xfe, 0x6a, 0xc3, 0x75, 0xa2, 0xa4, 0x01, 0x47, 0x79, + 0x1c, 0xbf, 0x25, 0x03, 0xb7, 0xa0, 0xa9, 0xd4, 0xc9, 0xf0, 0x37, 0x2b, 0x3d, 0x69, 0x12, 0xb3, + 0x27, 0xec, 0x9c, 0xc5, 0x14, 0xf8, 0x86, 0x5f, 0x01, 0xce, 0x6d, 0xd8, 0x78, 0x9c, 0x44, 0x9c, + 0x62, 0x52, 0xa7, 0x98, 0x94, 0x34, 0x7e, 0x7b, 0x1a, 0x8d, 0xcf, 0x38, 0xa6, 0x54, 0x86, 0xbb, + 0xa4, 0xf5, 0x4c, 0x34, 0xcd, 0x4c, 0x7c, 0x1b, 0xb6, 0x76, 0xe7, 0xf3, 0x41, 0xc0, 0xa7, 0x2c, + 0x95, 0x4a, 0x5b, 0xa4, 0x74, 0x09, 0xc5, 0x7c, 0xa0, 0xa6, 0x51, 0x92, 0xa7, 0x63, 0x46, 0xe1, + 0x6e, 0xf8, 0x1a, 0x82, 0x72, 0x86, 0x73, 0x96, 0x6a, 0x61, 0x94, 0x91, 0x5f, 0x42, 0x55, 0x56, + 0xa0, 0xc8, 0x8a, 0xf7, 0x7b, 0x0b, 0xb6, 0x8e, 0xf3, 0x17, 0x71, 0x34, 0x26, 0x06, 0x0c, 0x5a, + 0x15, 0x1a, 0xcb, 0x08, 0x8d, 0xee, 0xa0, 0xfd, 0x66, 0x07, 0x6b, 0xa6, 0x83, 0xb7, 0xa0, 0xf9, + 0x80, 0xf1, 0x90, 0xa5, 0x14, 0xb0, 0x86, 0xaf, 0xa8, 0x35, 0x8e, 0x37, 0xd6, 0x39, 0xee, 0xfd, + 0xd6, 0x86, 0x8d, 0x8f, 0x6c, 0x5a, 0x1f, 0x3a, 0xc7, 0xa7, 0x09, 0x67, 0x4f, 0x73, 0x2c, 0x26, + 0x95, 0x4c, 0x1d, 0x72, 0x6e, 0x40, 0x63, 0x2f, 0x4a, 0xb3, 0x53, 0xca, 0x66, 0xcd, 0x97, 0x04, + 0xa2, 0x87, 0xb3, 0x20, 0x92, 0x29, 0x6c, 0xfb, 0x92, 0x50, 0x11, 0xdf, 0x28, 0xf7, 0x81, 0xb9, + 0xb3, 0xda, 0x2b, 0x3b, 0x6b, 0x35, 0x30, 0xb0, 0x36, 0x30, 0xff, 0xb2, 0x00, 0x8e, 0xd2, 0x88, + 0xf1, 0x90, 0x42, 0xb3, 0xb4, 0xa5, 0xad, 0xd5, 0x2d, 0x7d, 0x0b, 0x9a, 0x3e, 0x9b, 0x05, 0xe9, + 0x59, 0x51, 0xf2, 0x92, 0x5a, 0x32, 0xa8, 0x46, 0x3b, 0x59, 0x37, 0xe8, 0xfb, 0x85, 0x1e, 0x94, + 0x43, 0xa1, 0xea, 0xdc, 0xbb, 0x79, 0x57, 0x6b, 0x7b, 0x77, 0x8b, 0xfc, 0xf8, 0x1a, 0x23, 0xee, + 0xa4, 0xdd, 0x30, 0x54, 0x05, 0x2b, 0x73, 0x5b, 0x01, 0x6b, 0xea, 0xb5, 0x79, 0x41, 0xbd, 0xb6, + 0xca, 0x7a, 0xfd, 0xbb, 0x05, 0xed, 0xbd, 0x38, 0x18, 0x9f, 0x5d, 0xd2, 0x69, 0xd3, 0x39, 0x7b, + 0x25, 0xda, 0xbb, 0xb0, 0x49, 0xe2, 0x0a, 0x17, 0xc8, 0xff, 0xce, 0xbd, 0x6f, 0x1a, 0xfe, 0x99, + 0x1b, 0xc4, 0x37, 0x57, 0x98, 0x8e, 0xd6, 0xdf, 0xee, 0x68, 0xe3, 0x02, 0x47, 0x9b, 0xa5, 0xa3, + 0xbf, 0xb6, 0xa1, 0x4b, 0xcd, 0xca, 0x67, 0x8b, 0x9c, 0x89, 0xec, 0x8d, 0xb5, 0xaf, 0xf5, 0x38, + 0xdb, 0xec, 0x71, 0x1e, 0x74, 0x1f, 0x06, 0x3c, 0x8c, 0x99, 0xcf, 0x44, 0x1e, 0x67, 0xc5, 0x39, + 0xa2, 0x63, 0xb2, 0x28, 0x16, 0x03, 0x31, 0x55, 0x27, 0x88, 0xa2, 0xd0, 0x29, 0xc9, 0x87, 0x9f, + 0xa4, 0xc5, 0x15, 0x80, 0x3a, 0x7d, 0xb6, 0xa0, 0x90, 0xca, 0x1d, 0x50, 0x90, 0x95, 0x4e, 0x65, + 0x6b, 0x4b, 0xd7, 0x59, 0xe5, 0x44, 0xd2, 0x24, 0x60, 0x43, 0xe6, 0xa4, 0x42, 0x96, 0x4f, 0x0e, + 0xef, 0x6b, 0x1b, 0x36, 0x65, 0x61, 0x15, 0xb1, 0xb8, 0x83, 0x25, 0x99, 0xcc, 0x8c, 0x78, 0x68, + 0x08, 0xf6, 0x83, 0x93, 0xc4, 0xe8, 0xef, 0x25, 0xbd, 0x36, 0x2a, 0x8d, 0x4b, 0x46, 0xc5, 0xac, + 0xa6, 0xc6, 0x4a, 0x35, 0x7d, 0x06, 0x9b, 0x52, 0x8e, 0x59, 0xd4, 0x26, 0x68, 0xc6, 0xb6, 0xb5, + 0x1c, 0xdb, 0xab, 0x46, 0xe7, 0xbf, 0x16, 0xb8, 0xc7, 0x79, 0x1c, 0x0f, 0x98, 0x10, 0xc1, 0x94, + 0xed, 0xbd, 0x1e, 0xb1, 0xc5, 0x93, 0x48, 0x64, 0x3e, 0x13, 0x73, 0x4c, 0x14, 0x4b, 0xd3, 0xfd, + 0x24, 0x64, 0x14, 0xa5, 0x86, 0x5f, 0x90, 0xe8, 0x22, 0x4b, 0x53, 0xb4, 0x40, 0x75, 0x03, 0x49, + 0x21, 0x3e, 0x0b, 0x5e, 0x8d, 0xd8, 0x82, 0x02, 0x53, 0xf3, 0x15, 0x45, 0x78, 0xc4, 0x11, 0xaf, + 0x2b, 0x9c, 0x28, 0xe7, 0xc7, 0xb0, 0x29, 0x22, 0x3e, 0x95, 0xc9, 0x95, 0xc5, 0x52, 0xdb, 0xe9, + 0xdc, 0xfb, 0x86, 0xb1, 0x81, 0x1e, 0x04, 0xd9, 0x29, 0x4b, 0x8f, 0x92, 0x74, 0x16, 0x64, 0xbe, + 0xc9, 0xef, 0x7c, 0x05, 0xdd, 0x29, 0x16, 0x6c, 0xb1, 0xbe, 0xf9, 0xb6, 0xf5, 0x06, 0xbb, 0x37, + 0x83, 0x4f, 0xd6, 0x7b, 0x4f, 0x26, 0xe7, 0xc6, 0x8e, 0x91, 0x14, 0x76, 0x8d, 0x84, 0x36, 0x5f, + 0x94, 0xf0, 0xb2, 0x40, 0x74, 0x08, 0xc3, 0x26, 0xa4, 0x1c, 0xb7, 0xd6, 0xaf, 0x61, 0x7d, 0x2b, + 0xd2, 0xfb, 0x15, 0x1e, 0x97, 0xa5, 0xba, 0x8b, 0xb4, 0xdc, 0x86, 0x0d, 0xc1, 0x16, 0x7b, 0x6c, + 0x1a, 0x71, 0xd5, 0x77, 0x4a, 0x1a, 0xd7, 0x08, 0xb6, 0x38, 0xe4, 0x61, 0x11, 0x64, 0x49, 0x2d, + 0x5b, 0x56, 0x5f, 0xb1, 0x0c, 0xbb, 0x7e, 0xcf, 0x30, 0xe0, 0xff, 0x22, 0xc9, 0x37, 0xc0, 0x79, + 0xc0, 0xb2, 0x41, 0xf0, 0x6a, 0x97, 0x87, 0x03, 0x32, 0xc9, 0x67, 0x0b, 0xef, 0x10, 0xae, 0xaf, + 0xa0, 0x62, 0xae, 0x39, 0x67, 0xbd, 0xc1, 0x39, 0x5b, 0x77, 0xce, 0x7b, 0x08, 0x5d, 0x5d, 0x35, + 0x6e, 0xb0, 0x28, 0x54, 0xc9, 0xb4, 0xa3, 0xd0, 0xd9, 0x81, 0x7a, 0x8c, 0x95, 0x60, 0x93, 0xcd, + 0x37, 0x0c, 0x9b, 0x07, 0x62, 0x7a, 0x10, 0x64, 0x81, 0x4f, 0x1c, 0xde, 0x02, 0x7a, 0x68, 0xf1, + 0x88, 0xf1, 0x70, 0x20, 0xa6, 0x64, 0x4c, 0x1f, 0x3a, 0x23, 0x96, 0x9e, 0x93, 0x1b, 0xd5, 0x09, + 0xa5, 0x41, 0xc8, 0xb1, 0x1f, 0x47, 0x8c, 0x67, 0x92, 0x43, 0x55, 0xa3, 0x06, 0xc9, 0x4a, 0xe2, + 0x61, 0x79, 0x3c, 0x53, 0x25, 0x49, 0xda, 0xfb, 0x4b, 0x03, 0x5a, 0xca, 0x08, 0x59, 0x55, 0x3c, + 0xac, 0x2a, 0x51, 0x52, 0x88, 0xa7, 0x6c, 0x7c, 0x5e, 0xcd, 0xba, 0x92, 0xc2, 0xba, 0x99, 0xaa, + 0x93, 0x43, 0x4d, 0x46, 0x8a, 0x44, 0x9b, 0xc6, 0x9a, 0x4d, 0xaa, 0x0e, 0x35, 0x08, 0x39, 0x84, + 0xe6, 0x97, 0x9a, 0x91, 0x34, 0xc8, 0xf9, 0x0e, 0x6c, 0x0b, 0x9a, 0xa7, 0x8e, 0xe3, 0x20, 0x9b, + 0x24, 0xe9, 0x4c, 0xb5, 0xc3, 0x86, 0xbf, 0x82, 0xe3, 0x21, 0x29, 0xb1, 0x72, 0x8a, 0x93, 0x6d, + 0x71, 0x09, 0xc5, 0xfe, 0x2a, 0x11, 0x1a, 0xe1, 0xfc, 0x27, 0x6a, 0xac, 0x32, 0x41, 0x69, 0x9b, + 0x10, 0x51, 0xc2, 0xe9, 0xb6, 0xd0, 0x26, 0xa5, 0x3a, 0x84, 0x9e, 0xcf, 0xc4, 0x14, 0x0f, 0x0c, + 0x35, 0x5c, 0x15, 0x24, 0x79, 0x9e, 0xf0, 0x8c, 0xf1, 0x8c, 0xd6, 0x76, 0xe4, 0x5a, 0x0d, 0xc2, + 0xb5, 0x8a, 0xa4, 0x7b, 0x48, 0xd7, 0x2f, 0x48, 0xec, 0xeb, 0x93, 0x24, 0x1d, 0x33, 0xea, 0x1b, + 0x9b, 0xfd, 0x1a, 0xf6, 0xf5, 0x12, 0x70, 0xb6, 0xa1, 0x26, 0xd8, 0xc2, 0xdd, 0xa2, 0x04, 0xe2, + 0x4f, 0x23, 0xaf, 0x3d, 0x33, 0xaf, 0x78, 0x0a, 0x8c, 0xab, 0x93, 0x66, 0x5b, 0x9e, 0x02, 0x15, + 0xe2, 0xfc, 0x10, 0x5a, 0xc3, 0x39, 0xf6, 0x04, 0xe1, 0x5e, 0xa3, 0xba, 0xfc, 0xd6, 0xba, 0xba, + 0xbc, 0xab, 0x78, 0x0e, 0x79, 0x96, 0xbe, 0xf6, 0x8b, 0x15, 0xce, 0x11, 0xf4, 0x92, 0xc9, 0x24, + 0x8e, 0x38, 0x3b, 0xce, 0xc5, 0x29, 0x8d, 0x3d, 0x0e, 0x8d, 0x3d, 0x9f, 0x1a, 0x42, 0x86, 0x26, + 0x8f, 0xbf, 0xbc, 0xe8, 0xf6, 0x7d, 0xe8, 0xea, 0x0a, 0xd0, 0xc5, 0x33, 0xf6, 0x5a, 0x55, 0x1f, + 0xfe, 0xc4, 0x91, 0xf8, 0x3c, 0x88, 0x73, 0x39, 0x79, 0x6d, 0xf8, 0x92, 0xb8, 0x6f, 0x7f, 0x69, + 0x79, 0xbf, 0xb1, 0xa0, 0xb7, 0xa4, 0x00, 0xb9, 0x4f, 0xa2, 0x2c, 0x66, 0x4a, 0x82, 0x24, 0x1c, + 0x07, 0xea, 0x07, 0x4c, 0x8c, 0x55, 0xf1, 0xd2, 0x6f, 0x75, 0x08, 0xd6, 0xca, 0xa1, 0xda, 0x83, + 0x6e, 0x34, 0x1c, 0xa1, 0xa0, 0x51, 0x92, 0xf3, 0xb0, 0xb8, 0x0e, 0xeb, 0x18, 0x16, 0x4f, 0x34, + 0x1c, 0xed, 0x05, 0xe1, 0x94, 0xc9, 0x4b, 0x6b, 0x83, 0x6c, 0x32, 0x41, 0xef, 0x00, 0x36, 0x4e, + 0xa2, 0xb9, 0xd8, 0x4f, 0x66, 0x33, 0xdc, 0x38, 0x07, 0x2c, 0xc3, 0x89, 0xde, 0xa2, 0x4c, 0x2b, + 0x0a, 0x8b, 0xe4, 0x80, 0x4d, 0x82, 0x3c, 0xce, 0x90, 0xb5, 0xd8, 0xb2, 0x1a, 0xe4, 0xfd, 0xc9, + 0x82, 0x9e, 0xbc, 0x8b, 0x1e, 0xf2, 0x8c, 0xa5, 0x88, 0x39, 0xdf, 0x85, 0x06, 0x4d, 0x66, 0x24, + 0xac, 0x73, 0xef, 0x96, 0xd9, 0xfc, 0x8a, 0x57, 0x03, 0x5f, 0x32, 0x39, 0x7b, 0xd0, 0xc1, 0xa0, + 0x06, 0x3c, 0xa3, 0xb1, 0xdb, 0xa6, 0x35, 0xfd, 0xd5, 0x35, 0xe6, 0x8d, 0xd7, 0xd7, 0x17, 0xa1, + 0xc7, 0xc3, 0xe2, 0xec, 0xd0, 0xba, 0x87, 0x09, 0x7a, 0x7f, 0x2c, 0x6d, 0x7d, 0xc2, 0x82, 0x73, + 0xf6, 0x0e, 0xb6, 0xfe, 0x04, 0x80, 0x96, 0xa6, 0x57, 0x32, 0x55, 0x5b, 0x73, 0x49, 0x4b, 0xff, + 0x69, 0xc1, 0x35, 0x29, 0xe4, 0x11, 0x3f, 0x8f, 0x32, 0x16, 0xbe, 0x83, 0xad, 0x5f, 0x42, 0x73, + 0x38, 0xbf, 0x92, 0x9d, 0x8a, 0xdf, 0x79, 0x0c, 0x3d, 0xa5, 0x16, 0xc9, 0x72, 0x38, 0xb8, 0x8c, + 0x88, 0xe5, 0x85, 0xab, 0xfe, 0xd6, 0xd7, 0xf9, 0xfb, 0x0f, 0x0b, 0xb6, 0xa5, 0xa4, 0x9f, 0x46, + 0xe3, 0xb3, 0x8f, 0xec, 0xee, 0x43, 0xd8, 0x92, 0x5a, 0xaf, 0xec, 0xed, 0xd2, 0xba, 0x4b, 0x3a, + 0xfb, 0x1f, 0x0b, 0x6e, 0x16, 0xc9, 0x9d, 0x24, 0xfb, 0xa7, 0x78, 0xd5, 0x95, 0x1e, 0xe3, 0xd4, + 0x4d, 0x24, 0xb5, 0x64, 0x39, 0xe2, 0x68, 0xc8, 0x7b, 0xf8, 0xf8, 0x23, 0x68, 0x1f, 0x45, 0x3c, + 0x88, 0xb5, 0x9b, 0xdf, 0xdb, 0x17, 0x57, 0x4b, 0xb0, 0x83, 0x0f, 0x72, 0xd5, 0xa3, 0xd5, 0x7b, + 0x50, 0x41, 0x57, 0x79, 0x6a, 0x5c, 0x22, 0x4f, 0xde, 0xdf, 0x2c, 0xd8, 0xa6, 0x5f, 0xf2, 0x36, + 0xf1, 0x2e, 0xa9, 0xbe, 0x0f, 0x2d, 0xf5, 0x66, 0x76, 0xe9, 0x38, 0x14, 0x0b, 0x70, 0x07, 0xab, + 0x16, 0x70, 0x95, 0x44, 0x6b, 0x6b, 0x2e, 0x99, 0xe4, 0x3f, 0x58, 0x70, 0xa3, 0x34, 0x5c, 0xcf, + 0x31, 0x4e, 0x41, 0x8a, 0xac, 0x92, 0xac, 0x43, 0x55, 0x30, 0xec, 0xab, 0xd5, 0x7d, 0xed, 0x6a, + 0x35, 0xe1, 0x7d, 0x6d, 0x81, 0xfb, 0x38, 0x89, 0x38, 0xf1, 0xec, 0xce, 0xe7, 0xb1, 0x7a, 0x72, + 0x7d, 0x87, 0x8c, 0xfc, 0x00, 0xda, 0x4a, 0x00, 0xcf, 0x94, 0xd9, 0x17, 0x3e, 0x2c, 0x54, 0xdc, + 0xf2, 0x06, 0x1a, 0x88, 0xf2, 0xf5, 0x57, 0x51, 0xde, 0x9f, 0x2d, 0x70, 0x35, 0xa3, 0x8e, 0xd3, + 0x64, 0xcc, 0x84, 0xf8, 0xc8, 0xad, 0x81, 0x8c, 0xd3, 0x2e, 0xcf, 0x4d, 0xfd, 0xda, 0x4c, 0x46, + 0xd7, 0x0d, 0xa3, 0xcf, 0xe0, 0x9a, 0xbc, 0xbf, 0x6b, 0x96, 0xe3, 0x1c, 0xb5, 0x1b, 0xca, 0xe1, + 0x47, 0xce, 0xe9, 0x05, 0x69, 0x3e, 0xa8, 0xa8, 0xd7, 0xf1, 0xea, 0x41, 0xe5, 0x0e, 0xc0, 0x6e, + 0x18, 0xfe, 0x22, 0x49, 0xc3, 0x88, 0x4f, 0x55, 0x74, 0x34, 0xc4, 0x7b, 0x0c, 0x5d, 0x9c, 0xe4, + 0xca, 0xfb, 0xfe, 0x7b, 0xbc, 0x15, 0x78, 0xbf, 0x84, 0xdb, 0x2b, 0x86, 0xef, 0x86, 0xa1, 0x0a, + 0xf7, 0x57, 0xa6, 0x26, 0x15, 0x75, 0xf3, 0x52, 0xa3, 0x33, 0xf8, 0x06, 0xbb, 0xf7, 0x1c, 0xee, + 0xac, 0x08, 0x37, 0xf3, 0xf9, 0x9e, 0x0a, 0x7e, 0x67, 0x41, 0x4f, 0x69, 0x28, 0x6d, 0xfe, 0x1c, + 0x9a, 0x12, 0x52, 0xc2, 0x3e, 0x59, 0x12, 0x56, 0xbc, 0x27, 0xfa, 0x8a, 0x6d, 0x75, 0x5f, 0xdb, + 0x6b, 0xf6, 0xb5, 0xf3, 0xc5, 0xd2, 0x76, 0xbb, 0xb0, 0xcc, 0x8b, 0x9d, 0xe6, 0x17, 0x65, 0x71, + 0xc0, 0x62, 0x96, 0x7d, 0x18, 0x9f, 0x87, 0xb0, 0x45, 0xaf, 0x73, 0x1f, 0x2c, 0x4b, 0x3f, 0x83, + 0x6d, 0x12, 0xf8, 0x01, 0x6d, 0xfc, 0x39, 0xdc, 0xac, 0x02, 0xad, 0x37, 0xc1, 0xf7, 0x94, 0xfb, + 0x3d, 0xb8, 0x3e, 0x62, 0xf1, 0x04, 0xa5, 0x3e, 0x9b, 0x87, 0xe5, 0x29, 0xf2, 0x86, 0x87, 0xc3, + 0x17, 0x4d, 0xfa, 0x03, 0xeb, 0x8b, 0xff, 0x05, 0x00, 0x00, 0xff, 0xff, 0x2d, 0x7a, 0x1a, 0xf5, + 0xd3, 0x1a, 0x00, 0x00, } From 0ae46455af2bb9eff2a2b1d6b112a3aa2ffafd3d Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Thu, 6 Jan 2022 18:16:08 +0800 Subject: [PATCH 467/814] Refactor code --- pkg/common/utils/utils.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkg/common/utils/utils.go b/pkg/common/utils/utils.go index 1df23b0b2..d5c6f2bb7 100644 --- a/pkg/common/utils/utils.go +++ b/pkg/common/utils/utils.go @@ -26,8 +26,8 @@ func FriendDBCopyOpenIM(dst *open_im_sdk.FriendInfo, src *db.Friend) { if user != nil { utils.CopyStructFields(dst.FriendUser, user) } - dst.CreateTime = src.CreateTime.Unix() - dst.FriendUser.CreateTime = user.CreateTime.Unix() + dst.CreateTime = uint32(src.CreateTime.Unix()) + dst.FriendUser.CreateTime = uint32(user.CreateTime.Unix()) } // From cb80742eaaba9cbf53caf9c40d2dfec6e53c977d Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Thu, 6 Jan 2022 18:16:36 +0800 Subject: [PATCH 468/814] Refactor code --- pkg/common/utils/utils.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkg/common/utils/utils.go b/pkg/common/utils/utils.go index d5c6f2bb7..25599eb2a 100644 --- a/pkg/common/utils/utils.go +++ b/pkg/common/utils/utils.go @@ -27,7 +27,7 @@ func FriendDBCopyOpenIM(dst *open_im_sdk.FriendInfo, src *db.Friend) { utils.CopyStructFields(dst.FriendUser, user) } dst.CreateTime = uint32(src.CreateTime.Unix()) - dst.FriendUser.CreateTime = uint32(user.CreateTime.Unix()) + dst.FriendUser.CreateTime = user.CreateTime.Unix() } // From fa330c766f2f79eb10082af2d3c86c70432759e2 Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Thu, 6 Jan 2022 18:22:09 +0800 Subject: [PATCH 469/814] Refactor code --- pkg/proto/sdk_ws/ws.proto | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/pkg/proto/sdk_ws/ws.proto b/pkg/proto/sdk_ws/ws.proto index 0f8f845eb..2ef641334 100644 --- a/pkg/proto/sdk_ws/ws.proto +++ b/pkg/proto/sdk_ws/ws.proto @@ -12,7 +12,7 @@ message GroupInfo{ string Introduction = 4; string FaceUrl = 5; string OwnerUserID = 6; - int64 CreateTime = 7; + uint32 CreateTime = 7; uint32 MemberCount = 8; string Ex = 9; int32 Status = 10; @@ -48,10 +48,10 @@ message UserInfo{ string FaceUrl = 3; int32 Gender = 4; string PhoneNumber = 5; - int64 Birth = 6; + uint32 Birth = 6; string Email = 7; string Ex = 8; - int64 CreateTime = 9; + uint32 CreateTime = 9; int32 AppMangerLevel = 10; } @@ -67,7 +67,7 @@ message FriendInfo{ message BlackInfo{ string OwnerUserID = 1; - int64 CreateTime = 2; + uint32 CreateTime = 2; PublicUserInfo BlackUserInfo = 3; int32 AddSource = 4; string OperatorUserID = 5; @@ -80,9 +80,9 @@ message GroupRequest{ string HandleResult = 3; string ReqMsg = 4; string HandleMsg = 5; - int64 ReqTime = 6; + uint32 ReqTime = 6; string HandleUserID = 7; - int64 HandleTime = 8; + uint32 HandleTime = 8; string Ex = 9; } @@ -91,10 +91,10 @@ message FriendRequest{ string ToUserID = 2; int32 HandleResult = 3; string ReqMsg = 4; - int64 CreateTime = 5; + uint32 CreateTime = 5; string HandlerUserID = 6; string HandleMsg = 7; - int64 HandleTime = 8; + uint32 HandleTime = 8; string Ex = 9; } From 03fc008dfc42419cef0c3f66362b74088b8545ab Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Thu, 6 Jan 2022 18:23:29 +0800 Subject: [PATCH 470/814] Refactor code --- pkg/proto/sdk_ws/ws.pb.go | 354 +++++++++++++++++++------------------- 1 file changed, 177 insertions(+), 177 deletions(-) diff --git a/pkg/proto/sdk_ws/ws.pb.go b/pkg/proto/sdk_ws/ws.pb.go index 3fbfb6e81..91870ccd9 100644 --- a/pkg/proto/sdk_ws/ws.pb.go +++ b/pkg/proto/sdk_ws/ws.pb.go @@ -25,7 +25,7 @@ type GroupInfo struct { Introduction string `protobuf:"bytes,4,opt,name=Introduction" json:"Introduction,omitempty"` FaceUrl string `protobuf:"bytes,5,opt,name=FaceUrl" json:"FaceUrl,omitempty"` OwnerUserID string `protobuf:"bytes,6,opt,name=OwnerUserID" json:"OwnerUserID,omitempty"` - CreateTime int64 `protobuf:"varint,7,opt,name=CreateTime" json:"CreateTime,omitempty"` + CreateTime uint32 `protobuf:"varint,7,opt,name=CreateTime" json:"CreateTime,omitempty"` MemberCount uint32 `protobuf:"varint,8,opt,name=MemberCount" json:"MemberCount,omitempty"` Ex string `protobuf:"bytes,9,opt,name=Ex" json:"Ex,omitempty"` Status int32 `protobuf:"varint,10,opt,name=Status" json:"Status,omitempty"` @@ -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_996ebd499da55dba, []int{0} + return fileDescriptor_ws_a718f3fde1e8b012, []int{0} } func (m *GroupInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupInfo.Unmarshal(m, b) @@ -102,7 +102,7 @@ func (m *GroupInfo) GetOwnerUserID() string { return "" } -func (m *GroupInfo) GetCreateTime() int64 { +func (m *GroupInfo) GetCreateTime() uint32 { if m != nil { return m.CreateTime } @@ -164,7 +164,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_996ebd499da55dba, []int{1} + return fileDescriptor_ws_a718f3fde1e8b012, []int{1} } func (m *GroupMemberFullInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupMemberFullInfo.Unmarshal(m, b) @@ -269,7 +269,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_996ebd499da55dba, []int{2} + return fileDescriptor_ws_a718f3fde1e8b012, []int{2} } func (m *PublicUserInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_PublicUserInfo.Unmarshal(m, b) @@ -330,10 +330,10 @@ type UserInfo struct { FaceUrl string `protobuf:"bytes,3,opt,name=FaceUrl" json:"FaceUrl,omitempty"` Gender int32 `protobuf:"varint,4,opt,name=Gender" json:"Gender,omitempty"` PhoneNumber string `protobuf:"bytes,5,opt,name=PhoneNumber" json:"PhoneNumber,omitempty"` - Birth int64 `protobuf:"varint,6,opt,name=Birth" json:"Birth,omitempty"` + Birth uint32 `protobuf:"varint,6,opt,name=Birth" json:"Birth,omitempty"` Email string `protobuf:"bytes,7,opt,name=Email" json:"Email,omitempty"` Ex string `protobuf:"bytes,8,opt,name=Ex" json:"Ex,omitempty"` - CreateTime int64 `protobuf:"varint,9,opt,name=CreateTime" json:"CreateTime,omitempty"` + CreateTime uint32 `protobuf:"varint,9,opt,name=CreateTime" json:"CreateTime,omitempty"` AppMangerLevel int32 `protobuf:"varint,10,opt,name=AppMangerLevel" json:"AppMangerLevel,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` @@ -344,7 +344,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_996ebd499da55dba, []int{3} + return fileDescriptor_ws_a718f3fde1e8b012, []int{3} } func (m *UserInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_UserInfo.Unmarshal(m, b) @@ -399,7 +399,7 @@ func (m *UserInfo) GetPhoneNumber() string { return "" } -func (m *UserInfo) GetBirth() int64 { +func (m *UserInfo) GetBirth() uint32 { if m != nil { return m.Birth } @@ -420,7 +420,7 @@ func (m *UserInfo) GetEx() string { return "" } -func (m *UserInfo) GetCreateTime() int64 { +func (m *UserInfo) GetCreateTime() uint32 { if m != nil { return m.CreateTime } @@ -451,7 +451,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_996ebd499da55dba, []int{4} + return fileDescriptor_ws_a718f3fde1e8b012, []int{4} } func (m *FriendInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FriendInfo.Unmarshal(m, b) @@ -522,7 +522,7 @@ func (m *FriendInfo) GetEx() string { type BlackInfo struct { OwnerUserID string `protobuf:"bytes,1,opt,name=OwnerUserID" json:"OwnerUserID,omitempty"` - CreateTime int64 `protobuf:"varint,2,opt,name=CreateTime" json:"CreateTime,omitempty"` + CreateTime uint32 `protobuf:"varint,2,opt,name=CreateTime" json:"CreateTime,omitempty"` BlackUserInfo *PublicUserInfo `protobuf:"bytes,3,opt,name=BlackUserInfo" json:"BlackUserInfo,omitempty"` AddSource int32 `protobuf:"varint,4,opt,name=AddSource" json:"AddSource,omitempty"` OperatorUserID string `protobuf:"bytes,5,opt,name=OperatorUserID" json:"OperatorUserID,omitempty"` @@ -536,7 +536,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_996ebd499da55dba, []int{5} + return fileDescriptor_ws_a718f3fde1e8b012, []int{5} } func (m *BlackInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_BlackInfo.Unmarshal(m, b) @@ -563,7 +563,7 @@ func (m *BlackInfo) GetOwnerUserID() string { return "" } -func (m *BlackInfo) GetCreateTime() int64 { +func (m *BlackInfo) GetCreateTime() uint32 { if m != nil { return m.CreateTime } @@ -604,9 +604,9 @@ type GroupRequest struct { HandleResult string `protobuf:"bytes,3,opt,name=HandleResult" json:"HandleResult,omitempty"` ReqMsg string `protobuf:"bytes,4,opt,name=ReqMsg" json:"ReqMsg,omitempty"` HandleMsg string `protobuf:"bytes,5,opt,name=HandleMsg" json:"HandleMsg,omitempty"` - ReqTime int64 `protobuf:"varint,6,opt,name=ReqTime" json:"ReqTime,omitempty"` + ReqTime uint32 `protobuf:"varint,6,opt,name=ReqTime" json:"ReqTime,omitempty"` HandleUserID string `protobuf:"bytes,7,opt,name=HandleUserID" json:"HandleUserID,omitempty"` - HandleTime int64 `protobuf:"varint,8,opt,name=HandleTime" json:"HandleTime,omitempty"` + HandleTime uint32 `protobuf:"varint,8,opt,name=HandleTime" json:"HandleTime,omitempty"` Ex string `protobuf:"bytes,9,opt,name=Ex" json:"Ex,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` @@ -617,7 +617,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_996ebd499da55dba, []int{6} + return fileDescriptor_ws_a718f3fde1e8b012, []int{6} } func (m *GroupRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupRequest.Unmarshal(m, b) @@ -672,7 +672,7 @@ func (m *GroupRequest) GetHandleMsg() string { return "" } -func (m *GroupRequest) GetReqTime() int64 { +func (m *GroupRequest) GetReqTime() uint32 { if m != nil { return m.ReqTime } @@ -686,7 +686,7 @@ func (m *GroupRequest) GetHandleUserID() string { return "" } -func (m *GroupRequest) GetHandleTime() int64 { +func (m *GroupRequest) GetHandleTime() uint32 { if m != nil { return m.HandleTime } @@ -705,10 +705,10 @@ type FriendRequest struct { ToUserID string `protobuf:"bytes,2,opt,name=ToUserID" json:"ToUserID,omitempty"` HandleResult int32 `protobuf:"varint,3,opt,name=HandleResult" json:"HandleResult,omitempty"` ReqMsg string `protobuf:"bytes,4,opt,name=ReqMsg" json:"ReqMsg,omitempty"` - CreateTime int64 `protobuf:"varint,5,opt,name=CreateTime" json:"CreateTime,omitempty"` + CreateTime uint32 `protobuf:"varint,5,opt,name=CreateTime" json:"CreateTime,omitempty"` HandlerUserID string `protobuf:"bytes,6,opt,name=HandlerUserID" json:"HandlerUserID,omitempty"` HandleMsg string `protobuf:"bytes,7,opt,name=HandleMsg" json:"HandleMsg,omitempty"` - HandleTime int64 `protobuf:"varint,8,opt,name=HandleTime" json:"HandleTime,omitempty"` + HandleTime uint32 `protobuf:"varint,8,opt,name=HandleTime" json:"HandleTime,omitempty"` Ex string `protobuf:"bytes,9,opt,name=Ex" json:"Ex,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` @@ -719,7 +719,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_996ebd499da55dba, []int{7} + return fileDescriptor_ws_a718f3fde1e8b012, []int{7} } func (m *FriendRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FriendRequest.Unmarshal(m, b) @@ -767,7 +767,7 @@ func (m *FriendRequest) GetReqMsg() string { return "" } -func (m *FriendRequest) GetCreateTime() int64 { +func (m *FriendRequest) GetCreateTime() uint32 { if m != nil { return m.CreateTime } @@ -788,7 +788,7 @@ func (m *FriendRequest) GetHandleMsg() string { return "" } -func (m *FriendRequest) GetHandleTime() int64 { +func (m *FriendRequest) GetHandleTime() uint32 { if m != nil { return m.HandleTime } @@ -818,7 +818,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_996ebd499da55dba, []int{8} + return fileDescriptor_ws_a718f3fde1e8b012, []int{8} } func (m *PullMessageBySeqListResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_PullMessageBySeqListResp.Unmarshal(m, b) @@ -893,7 +893,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_996ebd499da55dba, []int{9} + return fileDescriptor_ws_a718f3fde1e8b012, []int{9} } func (m *PullMessageBySeqListReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_PullMessageBySeqListReq.Unmarshal(m, b) @@ -948,7 +948,7 @@ func (m *PullMessageReq) Reset() { *m = PullMessageReq{} } func (m *PullMessageReq) String() string { return proto.CompactTextString(m) } func (*PullMessageReq) ProtoMessage() {} func (*PullMessageReq) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_996ebd499da55dba, []int{10} + return fileDescriptor_ws_a718f3fde1e8b012, []int{10} } func (m *PullMessageReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_PullMessageReq.Unmarshal(m, b) @@ -1012,7 +1012,7 @@ func (m *PullMessageResp) Reset() { *m = PullMessageResp{} } func (m *PullMessageResp) String() string { return proto.CompactTextString(m) } func (*PullMessageResp) ProtoMessage() {} func (*PullMessageResp) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_996ebd499da55dba, []int{11} + return fileDescriptor_ws_a718f3fde1e8b012, []int{11} } func (m *PullMessageResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_PullMessageResp.Unmarshal(m, b) @@ -1084,7 +1084,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_996ebd499da55dba, []int{12} + return fileDescriptor_ws_a718f3fde1e8b012, []int{12} } func (m *GetMaxAndMinSeqReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetMaxAndMinSeqReq.Unmarshal(m, b) @@ -1116,7 +1116,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_996ebd499da55dba, []int{13} + return fileDescriptor_ws_a718f3fde1e8b012, []int{13} } func (m *GetMaxAndMinSeqResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetMaxAndMinSeqResp.Unmarshal(m, b) @@ -1164,7 +1164,7 @@ func (m *GatherFormat) Reset() { *m = GatherFormat{} } func (m *GatherFormat) String() string { return proto.CompactTextString(m) } func (*GatherFormat) ProtoMessage() {} func (*GatherFormat) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_996ebd499da55dba, []int{14} + return fileDescriptor_ws_a718f3fde1e8b012, []int{14} } func (m *GatherFormat) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GatherFormat.Unmarshal(m, b) @@ -1211,7 +1211,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_996ebd499da55dba, []int{15} + return fileDescriptor_ws_a718f3fde1e8b012, []int{15} } func (m *UserSendMsgResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_UserSendMsgResp.Unmarshal(m, b) @@ -1280,7 +1280,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_996ebd499da55dba, []int{16} + return fileDescriptor_ws_a718f3fde1e8b012, []int{16} } func (m *MsgData) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MsgData.Unmarshal(m, b) @@ -1441,7 +1441,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_996ebd499da55dba, []int{17} + return fileDescriptor_ws_a718f3fde1e8b012, []int{17} } func (m *OfflinePushInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_OfflinePushInfo.Unmarshal(m, b) @@ -1508,7 +1508,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_996ebd499da55dba, []int{18} + return fileDescriptor_ws_a718f3fde1e8b012, []int{18} } func (m *TipsComm) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_TipsComm.Unmarshal(m, b) @@ -1557,7 +1557,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_996ebd499da55dba, []int{19} + return fileDescriptor_ws_a718f3fde1e8b012, []int{19} } func (m *MemberEnterTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MemberEnterTips.Unmarshal(m, b) @@ -1612,7 +1612,7 @@ func (m *MemberLeaveTips) Reset() { *m = MemberLeaveTips{} } func (m *MemberLeaveTips) String() string { return proto.CompactTextString(m) } func (*MemberLeaveTips) ProtoMessage() {} func (*MemberLeaveTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_996ebd499da55dba, []int{20} + return fileDescriptor_ws_a718f3fde1e8b012, []int{20} } func (m *MemberLeaveTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MemberLeaveTips.Unmarshal(m, b) @@ -1667,7 +1667,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_996ebd499da55dba, []int{21} + return fileDescriptor_ws_a718f3fde1e8b012, []int{21} } func (m *MemberInvitedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MemberInvitedTips.Unmarshal(m, b) @@ -1729,7 +1729,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_996ebd499da55dba, []int{22} + return fileDescriptor_ws_a718f3fde1e8b012, []int{22} } func (m *MemberKickedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MemberKickedTips.Unmarshal(m, b) @@ -1792,7 +1792,7 @@ func (m *MemberInfoChangedTips) Reset() { *m = MemberInfoChangedTips{} } func (m *MemberInfoChangedTips) String() string { return proto.CompactTextString(m) } func (*MemberInfoChangedTips) ProtoMessage() {} func (*MemberInfoChangedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_996ebd499da55dba, []int{23} + return fileDescriptor_ws_a718f3fde1e8b012, []int{23} } func (m *MemberInfoChangedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MemberInfoChangedTips.Unmarshal(m, b) @@ -1861,7 +1861,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_996ebd499da55dba, []int{24} + return fileDescriptor_ws_a718f3fde1e8b012, []int{24} } func (m *GroupCreatedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupCreatedTips.Unmarshal(m, b) @@ -1922,7 +1922,7 @@ func (m *GroupInfoChangedTips) Reset() { *m = GroupInfoChangedTips{} } func (m *GroupInfoChangedTips) String() string { return proto.CompactTextString(m) } func (*GroupInfoChangedTips) ProtoMessage() {} func (*GroupInfoChangedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_996ebd499da55dba, []int{25} + return fileDescriptor_ws_a718f3fde1e8b012, []int{25} } func (m *GroupInfoChangedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupInfoChangedTips.Unmarshal(m, b) @@ -1976,7 +1976,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_996ebd499da55dba, []int{26} + return fileDescriptor_ws_a718f3fde1e8b012, []int{26} } func (m *JoinGroupApplicationTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_JoinGroupApplicationTips.Unmarshal(m, b) @@ -2031,7 +2031,7 @@ func (m *ApplicationProcessedTips) Reset() { *m = ApplicationProcessedTi func (m *ApplicationProcessedTips) String() string { return proto.CompactTextString(m) } func (*ApplicationProcessedTips) ProtoMessage() {} func (*ApplicationProcessedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_996ebd499da55dba, []int{27} + return fileDescriptor_ws_a718f3fde1e8b012, []int{27} } func (m *ApplicationProcessedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ApplicationProcessedTips.Unmarshal(m, b) @@ -2092,7 +2092,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_996ebd499da55dba, []int{28} + return fileDescriptor_ws_a718f3fde1e8b012, []int{28} } func (m *FriendApplication) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FriendApplication.Unmarshal(m, b) @@ -2145,7 +2145,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_996ebd499da55dba, []int{29} + return fileDescriptor_ws_a718f3fde1e8b012, []int{29} } func (m *FromToUserID) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FromToUserID.Unmarshal(m, b) @@ -2191,7 +2191,7 @@ func (m *FriendApplicationAddedTips) Reset() { *m = FriendApplicationAdd func (m *FriendApplicationAddedTips) String() string { return proto.CompactTextString(m) } func (*FriendApplicationAddedTips) ProtoMessage() {} func (*FriendApplicationAddedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_996ebd499da55dba, []int{30} + return fileDescriptor_ws_a718f3fde1e8b012, []int{30} } func (m *FriendApplicationAddedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FriendApplicationAddedTips.Unmarshal(m, b) @@ -2230,7 +2230,7 @@ func (m *FriendApplicationProcessedTips) Reset() { *m = FriendApplicatio func (m *FriendApplicationProcessedTips) String() string { return proto.CompactTextString(m) } func (*FriendApplicationProcessedTips) ProtoMessage() {} func (*FriendApplicationProcessedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_996ebd499da55dba, []int{31} + return fileDescriptor_ws_a718f3fde1e8b012, []int{31} } func (m *FriendApplicationProcessedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FriendApplicationProcessedTips.Unmarshal(m, b) @@ -2271,7 +2271,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_996ebd499da55dba, []int{32} + return fileDescriptor_ws_a718f3fde1e8b012, []int{32} } func (m *FriendAddedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FriendAddedTips.Unmarshal(m, b) @@ -2324,7 +2324,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_996ebd499da55dba, []int{33} + return fileDescriptor_ws_a718f3fde1e8b012, []int{33} } func (m *FriendDeletedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FriendDeletedTips.Unmarshal(m, b) @@ -2362,7 +2362,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_996ebd499da55dba, []int{34} + return fileDescriptor_ws_a718f3fde1e8b012, []int{34} } func (m *BlackAddedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_BlackAddedTips.Unmarshal(m, b) @@ -2400,7 +2400,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_996ebd499da55dba, []int{35} + return fileDescriptor_ws_a718f3fde1e8b012, []int{35} } func (m *BlackDeletedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_BlackDeletedTips.Unmarshal(m, b) @@ -2438,7 +2438,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_996ebd499da55dba, []int{36} + return fileDescriptor_ws_a718f3fde1e8b012, []int{36} } func (m *FriendInfoChangedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FriendInfoChangedTips.Unmarshal(m, b) @@ -2477,7 +2477,7 @@ func (m *SelfInfoUpdatedTips) Reset() { *m = SelfInfoUpdatedTips{} } func (m *SelfInfoUpdatedTips) String() string { return proto.CompactTextString(m) } func (*SelfInfoUpdatedTips) ProtoMessage() {} func (*SelfInfoUpdatedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_996ebd499da55dba, []int{37} + return fileDescriptor_ws_a718f3fde1e8b012, []int{37} } func (m *SelfInfoUpdatedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SelfInfoUpdatedTips.Unmarshal(m, b) @@ -2546,129 +2546,129 @@ func init() { proto.RegisterType((*SelfInfoUpdatedTips)(nil), "open_im_sdk.SelfInfoUpdatedTips") } -func init() { proto.RegisterFile("sdk_ws/ws.proto", fileDescriptor_ws_996ebd499da55dba) } +func init() { proto.RegisterFile("sdk_ws/ws.proto", fileDescriptor_ws_a718f3fde1e8b012) } -var fileDescriptor_ws_996ebd499da55dba = []byte{ - // 1924 bytes of a gzipped FileDescriptorProto +var fileDescriptor_ws_a718f3fde1e8b012 = []byte{ + // 1921 bytes of a gzipped FileDescriptorProto 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe4, 0x59, 0xcd, 0x8f, 0x1b, 0x49, - 0x15, 0x57, 0xb7, 0xbf, 0xc6, 0xcf, 0x9e, 0xf1, 0xa4, 0xf3, 0xb1, 0x4d, 0x58, 0x45, 0xa6, 0xb5, - 0x42, 0x23, 0x04, 0x59, 0x29, 0x2b, 0xa4, 0x25, 0x68, 0x81, 0xf9, 0xcc, 0x07, 0x71, 0x3c, 0xb4, - 0x27, 0x70, 0xe0, 0x10, 0x75, 0xdc, 0x65, 0x4f, 0x6b, 0xda, 0xd5, 0x76, 0x57, 0xf7, 0x24, 0xb9, - 0x70, 0xe6, 0x1f, 0x80, 0xcb, 0x0a, 0xc4, 0x0d, 0x71, 0xe5, 0x00, 0xff, 0x10, 0xe2, 0x80, 0xc4, - 0x09, 0x71, 0x82, 0x03, 0x7a, 0xaf, 0xaa, 0xbb, 0xab, 0x6c, 0x67, 0x32, 0x93, 0x44, 0xb9, 0x70, - 0xf3, 0xfb, 0xf5, 0xab, 0xf7, 0x5d, 0xaf, 0x5e, 0x95, 0xa1, 0x27, 0xc2, 0xb3, 0xe7, 0x2f, 0xc5, - 0xe7, 0x2f, 0xc5, 0xdd, 0x79, 0x9a, 0x64, 0x89, 0xd3, 0x49, 0xe6, 0x8c, 0x3f, 0x8f, 0x66, 0xcf, - 0x45, 0x78, 0xe6, 0xfd, 0xdb, 0x86, 0xf6, 0x83, 0x34, 0xc9, 0xe7, 0x8f, 0xf8, 0x24, 0x71, 0x5c, - 0x68, 0x49, 0xe2, 0xc0, 0xb5, 0xfa, 0xd6, 0x4e, 0xdb, 0x2f, 0x48, 0xe7, 0x53, 0xc5, 0xf6, 0x34, - 0x98, 0x31, 0xd7, 0xa6, 0x6f, 0x15, 0xe0, 0x78, 0xd0, 0x7d, 0x9a, 0x64, 0xd1, 0x24, 0x1a, 0x07, - 0x59, 0x94, 0x70, 0xb7, 0x46, 0x0c, 0x06, 0x86, 0x3c, 0x8f, 0x78, 0x96, 0x26, 0x61, 0x3e, 0x26, - 0x9e, 0xba, 0xe4, 0xd1, 0x31, 0xd4, 0x7f, 0x14, 0x8c, 0xd9, 0xb3, 0x34, 0x76, 0x1b, 0x52, 0xbf, - 0x22, 0x9d, 0x3e, 0x74, 0x86, 0x2f, 0x39, 0x4b, 0x9f, 0x09, 0x96, 0x3e, 0x3a, 0x70, 0x9b, 0xf4, - 0x55, 0x87, 0x9c, 0x3b, 0x00, 0xfb, 0x29, 0x0b, 0x32, 0x76, 0x12, 0xcd, 0x98, 0xdb, 0xea, 0x5b, - 0x3b, 0x35, 0x5f, 0x43, 0x50, 0xc2, 0x80, 0xcd, 0x5e, 0xb0, 0x74, 0x3f, 0xc9, 0x79, 0xe6, 0x6e, - 0xf4, 0xad, 0x9d, 0x4d, 0x5f, 0x87, 0x9c, 0x2d, 0xb0, 0x0f, 0x5f, 0xb9, 0x6d, 0x12, 0x6d, 0x1f, - 0xbe, 0x72, 0x6e, 0x41, 0x73, 0x94, 0x05, 0x59, 0x2e, 0x5c, 0xe8, 0x5b, 0x3b, 0x0d, 0x5f, 0x51, - 0xce, 0x67, 0xb0, 0x49, 0x72, 0x93, 0xc2, 0x9a, 0x0e, 0x2d, 0x31, 0xc1, 0x32, 0x62, 0x27, 0xaf, - 0xe7, 0xcc, 0xed, 0x92, 0x80, 0x0a, 0xf0, 0xfe, 0x6a, 0xc3, 0x75, 0xa2, 0xa4, 0x01, 0x47, 0x79, - 0x1c, 0xbf, 0x25, 0x03, 0xb7, 0xa0, 0xa9, 0xd4, 0xc9, 0xf0, 0x37, 0x2b, 0x3d, 0x69, 0x12, 0xb3, - 0x27, 0xec, 0x9c, 0xc5, 0x14, 0xf8, 0x86, 0x5f, 0x01, 0xce, 0x6d, 0xd8, 0x78, 0x9c, 0x44, 0x9c, - 0x62, 0x52, 0xa7, 0x98, 0x94, 0x34, 0x7e, 0x7b, 0x1a, 0x8d, 0xcf, 0x38, 0xa6, 0x54, 0x86, 0xbb, - 0xa4, 0xf5, 0x4c, 0x34, 0xcd, 0x4c, 0x7c, 0x1b, 0xb6, 0x76, 0xe7, 0xf3, 0x41, 0xc0, 0xa7, 0x2c, - 0x95, 0x4a, 0x5b, 0xa4, 0x74, 0x09, 0xc5, 0x7c, 0xa0, 0xa6, 0x51, 0x92, 0xa7, 0x63, 0x46, 0xe1, - 0x6e, 0xf8, 0x1a, 0x82, 0x72, 0x86, 0x73, 0x96, 0x6a, 0x61, 0x94, 0x91, 0x5f, 0x42, 0x55, 0x56, - 0xa0, 0xc8, 0x8a, 0xf7, 0x7b, 0x0b, 0xb6, 0x8e, 0xf3, 0x17, 0x71, 0x34, 0x26, 0x06, 0x0c, 0x5a, - 0x15, 0x1a, 0xcb, 0x08, 0x8d, 0xee, 0xa0, 0xfd, 0x66, 0x07, 0x6b, 0xa6, 0x83, 0xb7, 0xa0, 0xf9, - 0x80, 0xf1, 0x90, 0xa5, 0x14, 0xb0, 0x86, 0xaf, 0xa8, 0x35, 0x8e, 0x37, 0xd6, 0x39, 0xee, 0xfd, - 0xd6, 0x86, 0x8d, 0x8f, 0x6c, 0x5a, 0x1f, 0x3a, 0xc7, 0xa7, 0x09, 0x67, 0x4f, 0x73, 0x2c, 0x26, - 0x95, 0x4c, 0x1d, 0x72, 0x6e, 0x40, 0x63, 0x2f, 0x4a, 0xb3, 0x53, 0xca, 0x66, 0xcd, 0x97, 0x04, - 0xa2, 0x87, 0xb3, 0x20, 0x92, 0x29, 0x6c, 0xfb, 0x92, 0x50, 0x11, 0xdf, 0x28, 0xf7, 0x81, 0xb9, - 0xb3, 0xda, 0x2b, 0x3b, 0x6b, 0x35, 0x30, 0xb0, 0x36, 0x30, 0xff, 0xb2, 0x00, 0x8e, 0xd2, 0x88, - 0xf1, 0x90, 0x42, 0xb3, 0xb4, 0xa5, 0xad, 0xd5, 0x2d, 0x7d, 0x0b, 0x9a, 0x3e, 0x9b, 0x05, 0xe9, - 0x59, 0x51, 0xf2, 0x92, 0x5a, 0x32, 0xa8, 0x46, 0x3b, 0x59, 0x37, 0xe8, 0xfb, 0x85, 0x1e, 0x94, - 0x43, 0xa1, 0xea, 0xdc, 0xbb, 0x79, 0x57, 0x6b, 0x7b, 0x77, 0x8b, 0xfc, 0xf8, 0x1a, 0x23, 0xee, - 0xa4, 0xdd, 0x30, 0x54, 0x05, 0x2b, 0x73, 0x5b, 0x01, 0x6b, 0xea, 0xb5, 0x79, 0x41, 0xbd, 0xb6, - 0xca, 0x7a, 0xfd, 0xbb, 0x05, 0xed, 0xbd, 0x38, 0x18, 0x9f, 0x5d, 0xd2, 0x69, 0xd3, 0x39, 0x7b, - 0x25, 0xda, 0xbb, 0xb0, 0x49, 0xe2, 0x0a, 0x17, 0xc8, 0xff, 0xce, 0xbd, 0x6f, 0x1a, 0xfe, 0x99, - 0x1b, 0xc4, 0x37, 0x57, 0x98, 0x8e, 0xd6, 0xdf, 0xee, 0x68, 0xe3, 0x02, 0x47, 0x9b, 0xa5, 0xa3, - 0xbf, 0xb6, 0xa1, 0x4b, 0xcd, 0xca, 0x67, 0x8b, 0x9c, 0x89, 0xec, 0x8d, 0xb5, 0xaf, 0xf5, 0x38, - 0xdb, 0xec, 0x71, 0x1e, 0x74, 0x1f, 0x06, 0x3c, 0x8c, 0x99, 0xcf, 0x44, 0x1e, 0x67, 0xc5, 0x39, - 0xa2, 0x63, 0xb2, 0x28, 0x16, 0x03, 0x31, 0x55, 0x27, 0x88, 0xa2, 0xd0, 0x29, 0xc9, 0x87, 0x9f, - 0xa4, 0xc5, 0x15, 0x80, 0x3a, 0x7d, 0xb6, 0xa0, 0x90, 0xca, 0x1d, 0x50, 0x90, 0x95, 0x4e, 0x65, - 0x6b, 0x4b, 0xd7, 0x59, 0xe5, 0x44, 0xd2, 0x24, 0x60, 0x43, 0xe6, 0xa4, 0x42, 0x96, 0x4f, 0x0e, - 0xef, 0x6b, 0x1b, 0x36, 0x65, 0x61, 0x15, 0xb1, 0xb8, 0x83, 0x25, 0x99, 0xcc, 0x8c, 0x78, 0x68, - 0x08, 0xf6, 0x83, 0x93, 0xc4, 0xe8, 0xef, 0x25, 0xbd, 0x36, 0x2a, 0x8d, 0x4b, 0x46, 0xc5, 0xac, - 0xa6, 0xc6, 0x4a, 0x35, 0x7d, 0x06, 0x9b, 0x52, 0x8e, 0x59, 0xd4, 0x26, 0x68, 0xc6, 0xb6, 0xb5, - 0x1c, 0xdb, 0xab, 0x46, 0xe7, 0xbf, 0x16, 0xb8, 0xc7, 0x79, 0x1c, 0x0f, 0x98, 0x10, 0xc1, 0x94, - 0xed, 0xbd, 0x1e, 0xb1, 0xc5, 0x93, 0x48, 0x64, 0x3e, 0x13, 0x73, 0x4c, 0x14, 0x4b, 0xd3, 0xfd, - 0x24, 0x64, 0x14, 0xa5, 0x86, 0x5f, 0x90, 0xe8, 0x22, 0x4b, 0x53, 0xb4, 0x40, 0x75, 0x03, 0x49, - 0x21, 0x3e, 0x0b, 0x5e, 0x8d, 0xd8, 0x82, 0x02, 0x53, 0xf3, 0x15, 0x45, 0x78, 0xc4, 0x11, 0xaf, - 0x2b, 0x9c, 0x28, 0xe7, 0xc7, 0xb0, 0x29, 0x22, 0x3e, 0x95, 0xc9, 0x95, 0xc5, 0x52, 0xdb, 0xe9, - 0xdc, 0xfb, 0x86, 0xb1, 0x81, 0x1e, 0x04, 0xd9, 0x29, 0x4b, 0x8f, 0x92, 0x74, 0x16, 0x64, 0xbe, - 0xc9, 0xef, 0x7c, 0x05, 0xdd, 0x29, 0x16, 0x6c, 0xb1, 0xbe, 0xf9, 0xb6, 0xf5, 0x06, 0xbb, 0x37, - 0x83, 0x4f, 0xd6, 0x7b, 0x4f, 0x26, 0xe7, 0xc6, 0x8e, 0x91, 0x14, 0x76, 0x8d, 0x84, 0x36, 0x5f, - 0x94, 0xf0, 0xb2, 0x40, 0x74, 0x08, 0xc3, 0x26, 0xa4, 0x1c, 0xb7, 0xd6, 0xaf, 0x61, 0x7d, 0x2b, - 0xd2, 0xfb, 0x15, 0x1e, 0x97, 0xa5, 0xba, 0x8b, 0xb4, 0xdc, 0x86, 0x0d, 0xc1, 0x16, 0x7b, 0x6c, - 0x1a, 0x71, 0xd5, 0x77, 0x4a, 0x1a, 0xd7, 0x08, 0xb6, 0x38, 0xe4, 0x61, 0x11, 0x64, 0x49, 0x2d, - 0x5b, 0x56, 0x5f, 0xb1, 0x0c, 0xbb, 0x7e, 0xcf, 0x30, 0xe0, 0xff, 0x22, 0xc9, 0x37, 0xc0, 0x79, - 0xc0, 0xb2, 0x41, 0xf0, 0x6a, 0x97, 0x87, 0x03, 0x32, 0xc9, 0x67, 0x0b, 0xef, 0x10, 0xae, 0xaf, - 0xa0, 0x62, 0xae, 0x39, 0x67, 0xbd, 0xc1, 0x39, 0x5b, 0x77, 0xce, 0x7b, 0x08, 0x5d, 0x5d, 0x35, - 0x6e, 0xb0, 0x28, 0x54, 0xc9, 0xb4, 0xa3, 0xd0, 0xd9, 0x81, 0x7a, 0x8c, 0x95, 0x60, 0x93, 0xcd, - 0x37, 0x0c, 0x9b, 0x07, 0x62, 0x7a, 0x10, 0x64, 0x81, 0x4f, 0x1c, 0xde, 0x02, 0x7a, 0x68, 0xf1, - 0x88, 0xf1, 0x70, 0x20, 0xa6, 0x64, 0x4c, 0x1f, 0x3a, 0x23, 0x96, 0x9e, 0x93, 0x1b, 0xd5, 0x09, - 0xa5, 0x41, 0xc8, 0xb1, 0x1f, 0x47, 0x8c, 0x67, 0x92, 0x43, 0x55, 0xa3, 0x06, 0xc9, 0x4a, 0xe2, - 0x61, 0x79, 0x3c, 0x53, 0x25, 0x49, 0xda, 0xfb, 0x4b, 0x03, 0x5a, 0xca, 0x08, 0x59, 0x55, 0x3c, - 0xac, 0x2a, 0x51, 0x52, 0x88, 0xa7, 0x6c, 0x7c, 0x5e, 0xcd, 0xba, 0x92, 0xc2, 0xba, 0x99, 0xaa, - 0x93, 0x43, 0x4d, 0x46, 0x8a, 0x44, 0x9b, 0xc6, 0x9a, 0x4d, 0xaa, 0x0e, 0x35, 0x08, 0x39, 0x84, - 0xe6, 0x97, 0x9a, 0x91, 0x34, 0xc8, 0xf9, 0x0e, 0x6c, 0x0b, 0x9a, 0xa7, 0x8e, 0xe3, 0x20, 0x9b, - 0x24, 0xe9, 0x4c, 0xb5, 0xc3, 0x86, 0xbf, 0x82, 0xe3, 0x21, 0x29, 0xb1, 0x72, 0x8a, 0x93, 0x6d, - 0x71, 0x09, 0xc5, 0xfe, 0x2a, 0x11, 0x1a, 0xe1, 0xfc, 0x27, 0x6a, 0xac, 0x32, 0x41, 0x69, 0x9b, - 0x10, 0x51, 0xc2, 0xe9, 0xb6, 0xd0, 0x26, 0xa5, 0x3a, 0x84, 0x9e, 0xcf, 0xc4, 0x14, 0x0f, 0x0c, - 0x35, 0x5c, 0x15, 0x24, 0x79, 0x9e, 0xf0, 0x8c, 0xf1, 0x8c, 0xd6, 0x76, 0xe4, 0x5a, 0x0d, 0xc2, - 0xb5, 0x8a, 0xa4, 0x7b, 0x48, 0xd7, 0x2f, 0x48, 0xec, 0xeb, 0x93, 0x24, 0x1d, 0x33, 0xea, 0x1b, - 0x9b, 0xfd, 0x1a, 0xf6, 0xf5, 0x12, 0x70, 0xb6, 0xa1, 0x26, 0xd8, 0xc2, 0xdd, 0xa2, 0x04, 0xe2, - 0x4f, 0x23, 0xaf, 0x3d, 0x33, 0xaf, 0x78, 0x0a, 0x8c, 0xab, 0x93, 0x66, 0x5b, 0x9e, 0x02, 0x15, - 0xe2, 0xfc, 0x10, 0x5a, 0xc3, 0x39, 0xf6, 0x04, 0xe1, 0x5e, 0xa3, 0xba, 0xfc, 0xd6, 0xba, 0xba, - 0xbc, 0xab, 0x78, 0x0e, 0x79, 0x96, 0xbe, 0xf6, 0x8b, 0x15, 0xce, 0x11, 0xf4, 0x92, 0xc9, 0x24, - 0x8e, 0x38, 0x3b, 0xce, 0xc5, 0x29, 0x8d, 0x3d, 0x0e, 0x8d, 0x3d, 0x9f, 0x1a, 0x42, 0x86, 0x26, - 0x8f, 0xbf, 0xbc, 0xe8, 0xf6, 0x7d, 0xe8, 0xea, 0x0a, 0xd0, 0xc5, 0x33, 0xf6, 0x5a, 0x55, 0x1f, - 0xfe, 0xc4, 0x91, 0xf8, 0x3c, 0x88, 0x73, 0x39, 0x79, 0x6d, 0xf8, 0x92, 0xb8, 0x6f, 0x7f, 0x69, - 0x79, 0xbf, 0xb1, 0xa0, 0xb7, 0xa4, 0x00, 0xb9, 0x4f, 0xa2, 0x2c, 0x66, 0x4a, 0x82, 0x24, 0x1c, - 0x07, 0xea, 0x07, 0x4c, 0x8c, 0x55, 0xf1, 0xd2, 0x6f, 0x75, 0x08, 0xd6, 0xca, 0xa1, 0xda, 0x83, - 0x6e, 0x34, 0x1c, 0xa1, 0xa0, 0x51, 0x92, 0xf3, 0xb0, 0xb8, 0x0e, 0xeb, 0x18, 0x16, 0x4f, 0x34, - 0x1c, 0xed, 0x05, 0xe1, 0x94, 0xc9, 0x4b, 0x6b, 0x83, 0x6c, 0x32, 0x41, 0xef, 0x00, 0x36, 0x4e, - 0xa2, 0xb9, 0xd8, 0x4f, 0x66, 0x33, 0xdc, 0x38, 0x07, 0x2c, 0xc3, 0x89, 0xde, 0xa2, 0x4c, 0x2b, - 0x0a, 0x8b, 0xe4, 0x80, 0x4d, 0x82, 0x3c, 0xce, 0x90, 0xb5, 0xd8, 0xb2, 0x1a, 0xe4, 0xfd, 0xc9, - 0x82, 0x9e, 0xbc, 0x8b, 0x1e, 0xf2, 0x8c, 0xa5, 0x88, 0x39, 0xdf, 0x85, 0x06, 0x4d, 0x66, 0x24, - 0xac, 0x73, 0xef, 0x96, 0xd9, 0xfc, 0x8a, 0x57, 0x03, 0x5f, 0x32, 0x39, 0x7b, 0xd0, 0xc1, 0xa0, - 0x06, 0x3c, 0xa3, 0xb1, 0xdb, 0xa6, 0x35, 0xfd, 0xd5, 0x35, 0xe6, 0x8d, 0xd7, 0xd7, 0x17, 0xa1, - 0xc7, 0xc3, 0xe2, 0xec, 0xd0, 0xba, 0x87, 0x09, 0x7a, 0x7f, 0x2c, 0x6d, 0x7d, 0xc2, 0x82, 0x73, - 0xf6, 0x0e, 0xb6, 0xfe, 0x04, 0x80, 0x96, 0xa6, 0x57, 0x32, 0x55, 0x5b, 0x73, 0x49, 0x4b, 0xff, - 0x69, 0xc1, 0x35, 0x29, 0xe4, 0x11, 0x3f, 0x8f, 0x32, 0x16, 0xbe, 0x83, 0xad, 0x5f, 0x42, 0x73, - 0x38, 0xbf, 0x92, 0x9d, 0x8a, 0xdf, 0x79, 0x0c, 0x3d, 0xa5, 0x16, 0xc9, 0x72, 0x38, 0xb8, 0x8c, - 0x88, 0xe5, 0x85, 0xab, 0xfe, 0xd6, 0xd7, 0xf9, 0xfb, 0x0f, 0x0b, 0xb6, 0xa5, 0xa4, 0x9f, 0x46, - 0xe3, 0xb3, 0x8f, 0xec, 0xee, 0x43, 0xd8, 0x92, 0x5a, 0xaf, 0xec, 0xed, 0xd2, 0xba, 0x4b, 0x3a, - 0xfb, 0x1f, 0x0b, 0x6e, 0x16, 0xc9, 0x9d, 0x24, 0xfb, 0xa7, 0x78, 0xd5, 0x95, 0x1e, 0xe3, 0xd4, - 0x4d, 0x24, 0xb5, 0x64, 0x39, 0xe2, 0x68, 0xc8, 0x7b, 0xf8, 0xf8, 0x23, 0x68, 0x1f, 0x45, 0x3c, - 0x88, 0xb5, 0x9b, 0xdf, 0xdb, 0x17, 0x57, 0x4b, 0xb0, 0x83, 0x0f, 0x72, 0xd5, 0xa3, 0xd5, 0x7b, - 0x50, 0x41, 0x57, 0x79, 0x6a, 0x5c, 0x22, 0x4f, 0xde, 0xdf, 0x2c, 0xd8, 0xa6, 0x5f, 0xf2, 0x36, - 0xf1, 0x2e, 0xa9, 0xbe, 0x0f, 0x2d, 0xf5, 0x66, 0x76, 0xe9, 0x38, 0x14, 0x0b, 0x70, 0x07, 0xab, - 0x16, 0x70, 0x95, 0x44, 0x6b, 0x6b, 0x2e, 0x99, 0xe4, 0x3f, 0x58, 0x70, 0xa3, 0x34, 0x5c, 0xcf, - 0x31, 0x4e, 0x41, 0x8a, 0xac, 0x92, 0xac, 0x43, 0x55, 0x30, 0xec, 0xab, 0xd5, 0x7d, 0xed, 0x6a, - 0x35, 0xe1, 0x7d, 0x6d, 0x81, 0xfb, 0x38, 0x89, 0x38, 0xf1, 0xec, 0xce, 0xe7, 0xb1, 0x7a, 0x72, - 0x7d, 0x87, 0x8c, 0xfc, 0x00, 0xda, 0x4a, 0x00, 0xcf, 0x94, 0xd9, 0x17, 0x3e, 0x2c, 0x54, 0xdc, - 0xf2, 0x06, 0x1a, 0x88, 0xf2, 0xf5, 0x57, 0x51, 0xde, 0x9f, 0x2d, 0x70, 0x35, 0xa3, 0x8e, 0xd3, - 0x64, 0xcc, 0x84, 0xf8, 0xc8, 0xad, 0x81, 0x8c, 0xd3, 0x2e, 0xcf, 0x4d, 0xfd, 0xda, 0x4c, 0x46, - 0xd7, 0x0d, 0xa3, 0xcf, 0xe0, 0x9a, 0xbc, 0xbf, 0x6b, 0x96, 0xe3, 0x1c, 0xb5, 0x1b, 0xca, 0xe1, - 0x47, 0xce, 0xe9, 0x05, 0x69, 0x3e, 0xa8, 0xa8, 0xd7, 0xf1, 0xea, 0x41, 0xe5, 0x0e, 0xc0, 0x6e, - 0x18, 0xfe, 0x22, 0x49, 0xc3, 0x88, 0x4f, 0x55, 0x74, 0x34, 0xc4, 0x7b, 0x0c, 0x5d, 0x9c, 0xe4, - 0xca, 0xfb, 0xfe, 0x7b, 0xbc, 0x15, 0x78, 0xbf, 0x84, 0xdb, 0x2b, 0x86, 0xef, 0x86, 0xa1, 0x0a, - 0xf7, 0x57, 0xa6, 0x26, 0x15, 0x75, 0xf3, 0x52, 0xa3, 0x33, 0xf8, 0x06, 0xbb, 0xf7, 0x1c, 0xee, - 0xac, 0x08, 0x37, 0xf3, 0xf9, 0x9e, 0x0a, 0x7e, 0x67, 0x41, 0x4f, 0x69, 0x28, 0x6d, 0xfe, 0x1c, - 0x9a, 0x12, 0x52, 0xc2, 0x3e, 0x59, 0x12, 0x56, 0xbc, 0x27, 0xfa, 0x8a, 0x6d, 0x75, 0x5f, 0xdb, - 0x6b, 0xf6, 0xb5, 0xf3, 0xc5, 0xd2, 0x76, 0xbb, 0xb0, 0xcc, 0x8b, 0x9d, 0xe6, 0x17, 0x65, 0x71, - 0xc0, 0x62, 0x96, 0x7d, 0x18, 0x9f, 0x87, 0xb0, 0x45, 0xaf, 0x73, 0x1f, 0x2c, 0x4b, 0x3f, 0x83, - 0x6d, 0x12, 0xf8, 0x01, 0x6d, 0xfc, 0x39, 0xdc, 0xac, 0x02, 0xad, 0x37, 0xc1, 0xf7, 0x94, 0xfb, - 0x3d, 0xb8, 0x3e, 0x62, 0xf1, 0x04, 0xa5, 0x3e, 0x9b, 0x87, 0xe5, 0x29, 0xf2, 0x86, 0x87, 0xc3, - 0x17, 0x4d, 0xfa, 0x03, 0xeb, 0x8b, 0xff, 0x05, 0x00, 0x00, 0xff, 0xff, 0x2d, 0x7a, 0x1a, 0xf5, - 0xd3, 0x1a, 0x00, 0x00, + 0x15, 0x57, 0xb7, 0xc7, 0xf6, 0xf8, 0xd9, 0x33, 0x9e, 0x74, 0x92, 0xd9, 0x26, 0xac, 0x22, 0xd3, + 0x5a, 0xa1, 0x11, 0x82, 0xac, 0x94, 0x15, 0xd2, 0x12, 0xb4, 0xc0, 0x7c, 0xe6, 0x83, 0x38, 0x1e, + 0xca, 0x13, 0x38, 0x70, 0x88, 0x3a, 0xee, 0xb2, 0xa7, 0x35, 0xed, 0x6a, 0xbb, 0x3f, 0x26, 0xc9, + 0x85, 0x33, 0xff, 0x00, 0x5c, 0x56, 0x20, 0x6e, 0x88, 0x2b, 0x07, 0xf8, 0x87, 0x10, 0x07, 0x24, + 0x4e, 0x88, 0x13, 0x1c, 0xd0, 0x7b, 0x55, 0xdd, 0x5d, 0x65, 0x3b, 0x93, 0x99, 0x4c, 0x94, 0x0b, + 0x37, 0xbf, 0x5f, 0xbf, 0x7a, 0xdf, 0xf5, 0xea, 0x55, 0x19, 0xba, 0x69, 0x70, 0xf6, 0xe2, 0x55, + 0xfa, 0xf9, 0xab, 0xf4, 0xde, 0x2c, 0x89, 0xb3, 0xd8, 0x69, 0xc7, 0x33, 0x2e, 0x5e, 0x84, 0xd3, + 0x17, 0x69, 0x70, 0xe6, 0xfd, 0xdb, 0x86, 0xd6, 0xc3, 0x24, 0xce, 0x67, 0x8f, 0xc5, 0x38, 0x76, + 0x5c, 0x68, 0x4a, 0xe2, 0xc0, 0xb5, 0x7a, 0xd6, 0x4e, 0x8b, 0x15, 0xa4, 0xf3, 0xa9, 0x62, 0x7b, + 0xe6, 0x4f, 0xb9, 0x6b, 0xd3, 0xb7, 0x0a, 0x70, 0x3c, 0xe8, 0x3c, 0x8b, 0xb3, 0x70, 0x1c, 0x8e, + 0xfc, 0x2c, 0x8c, 0x85, 0x5b, 0x23, 0x06, 0x03, 0x43, 0x9e, 0xc7, 0x22, 0x4b, 0xe2, 0x20, 0x1f, + 0x11, 0xcf, 0x9a, 0xe4, 0xd1, 0x31, 0xd4, 0x7f, 0xe4, 0x8f, 0xf8, 0xf3, 0x24, 0x72, 0xeb, 0x52, + 0xbf, 0x22, 0x9d, 0x1e, 0xb4, 0x07, 0xaf, 0x04, 0x4f, 0x9e, 0xa7, 0x3c, 0x79, 0x7c, 0xe0, 0x36, + 0xe8, 0xab, 0x0e, 0x39, 0x77, 0x01, 0xf6, 0x13, 0xee, 0x67, 0xfc, 0x24, 0x9c, 0x72, 0xb7, 0xd9, + 0xb3, 0x76, 0x36, 0x98, 0x86, 0xa0, 0x84, 0x3e, 0x9f, 0xbe, 0xe4, 0xc9, 0x7e, 0x9c, 0x8b, 0xcc, + 0x5d, 0x27, 0x06, 0x1d, 0x72, 0x36, 0xc1, 0x3e, 0x7c, 0xed, 0xb6, 0x48, 0xb4, 0x7d, 0xf8, 0xda, + 0xd9, 0x86, 0xc6, 0x30, 0xf3, 0xb3, 0x3c, 0x75, 0xa1, 0x67, 0xed, 0xd4, 0x99, 0xa2, 0x9c, 0xcf, + 0x60, 0x83, 0xe4, 0xc6, 0x85, 0x35, 0x6d, 0x5a, 0x62, 0x82, 0x65, 0xc4, 0x4e, 0xde, 0xcc, 0xb8, + 0xdb, 0x21, 0x01, 0x15, 0xe0, 0xfd, 0xd5, 0x86, 0x9b, 0x44, 0x49, 0x03, 0x8e, 0xf2, 0x28, 0x7a, + 0x47, 0x06, 0xb6, 0xa1, 0xa1, 0xd4, 0xc9, 0xf0, 0x37, 0x2a, 0x3d, 0x49, 0x1c, 0xf1, 0xa7, 0xfc, + 0x9c, 0x47, 0x14, 0xf8, 0x3a, 0xab, 0x00, 0xe7, 0x0e, 0xac, 0x3f, 0x89, 0x43, 0x41, 0x31, 0xc1, + 0x88, 0xd7, 0x58, 0x49, 0xe3, 0xb7, 0x67, 0xe1, 0xe8, 0x4c, 0x60, 0x4a, 0x65, 0xb8, 0x4b, 0x5a, + 0xcf, 0x44, 0xc3, 0xcc, 0xc4, 0xb7, 0x61, 0x73, 0x77, 0x36, 0xeb, 0xfb, 0x62, 0xc2, 0x13, 0xa9, + 0xb4, 0x49, 0x4a, 0x17, 0x50, 0xcc, 0x07, 0x6a, 0x1a, 0xc6, 0x79, 0x32, 0xe2, 0x14, 0xee, 0x3a, + 0xd3, 0x10, 0x94, 0x33, 0x98, 0xf1, 0x44, 0x0b, 0xa3, 0x8c, 0xfc, 0x02, 0xaa, 0xb2, 0x02, 0x45, + 0x56, 0xbc, 0xdf, 0x5b, 0xb0, 0x79, 0x9c, 0xbf, 0x8c, 0xc2, 0x11, 0x31, 0x60, 0xd0, 0xaa, 0xd0, + 0x58, 0x46, 0x68, 0x74, 0x07, 0xed, 0xb7, 0x3b, 0x58, 0x33, 0x1d, 0xdc, 0x86, 0xc6, 0x43, 0x2e, + 0x02, 0x9e, 0x50, 0xc0, 0xea, 0x4c, 0x51, 0x2b, 0x1c, 0xaf, 0xaf, 0x72, 0xdc, 0xfb, 0xad, 0x0d, + 0xeb, 0x1f, 0xd9, 0xb4, 0x1e, 0xb4, 0x8f, 0x4f, 0x63, 0xc1, 0x9f, 0xe5, 0x58, 0x4c, 0x2a, 0x99, + 0x3a, 0xe4, 0xdc, 0x82, 0xfa, 0x5e, 0x98, 0x64, 0xa7, 0x94, 0xcd, 0x0d, 0x26, 0x09, 0x44, 0x0f, + 0xa7, 0x7e, 0x28, 0x53, 0xd8, 0x62, 0x92, 0x50, 0x11, 0x5f, 0x2f, 0xf7, 0x81, 0xb9, 0xb3, 0x5a, + 0x4b, 0x3b, 0x6b, 0x39, 0x30, 0xb0, 0x32, 0x30, 0xff, 0xb2, 0x00, 0x8e, 0x92, 0x90, 0x8b, 0x80, + 0x42, 0xb3, 0xb0, 0xa5, 0xad, 0xe5, 0x2d, 0xbd, 0x0d, 0x0d, 0xc6, 0xa7, 0x7e, 0x72, 0x56, 0x94, + 0xbc, 0xa4, 0x16, 0x0c, 0xaa, 0x2d, 0x19, 0xf4, 0xfd, 0x42, 0x0f, 0xca, 0xa1, 0x50, 0xb5, 0xef, + 0xdf, 0xbe, 0xa7, 0xb5, 0xbd, 0x7b, 0x45, 0x7e, 0x98, 0xc6, 0x88, 0x3b, 0x69, 0x37, 0x08, 0x54, + 0xc1, 0xca, 0xdc, 0x56, 0xc0, 0x8a, 0x7a, 0x6d, 0x5c, 0x50, 0xaf, 0xcd, 0xb2, 0x5e, 0xff, 0x6e, + 0x41, 0x6b, 0x2f, 0xf2, 0x47, 0x67, 0x97, 0x74, 0xda, 0x74, 0xce, 0x5e, 0x72, 0x6e, 0x17, 0x36, + 0x48, 0x5c, 0xe1, 0x02, 0xf9, 0xdf, 0xbe, 0xff, 0x4d, 0xc3, 0x3f, 0x73, 0x83, 0x30, 0x73, 0x85, + 0xe9, 0xe8, 0xda, 0xbb, 0x1d, 0xad, 0x5f, 0xe0, 0x68, 0xa3, 0x74, 0xf4, 0xd7, 0x36, 0x74, 0xa8, + 0x59, 0x31, 0x3e, 0xcf, 0x79, 0x9a, 0xbd, 0xb5, 0xf6, 0xb5, 0x1e, 0x67, 0x9b, 0x3d, 0xce, 0x83, + 0xce, 0x23, 0x5f, 0x04, 0x11, 0x67, 0x3c, 0xcd, 0xa3, 0xac, 0x38, 0x47, 0x74, 0x4c, 0x16, 0xc5, + 0xbc, 0x9f, 0x4e, 0xd4, 0x09, 0xa2, 0x28, 0x74, 0x4a, 0xf2, 0xe1, 0x27, 0x69, 0x71, 0x05, 0xa0, + 0x4e, 0xc6, 0xe7, 0x14, 0x52, 0xb9, 0x03, 0x0a, 0xb2, 0xd2, 0xa9, 0x6c, 0x6d, 0xea, 0x3a, 0xab, + 0x9c, 0x48, 0x9a, 0x04, 0xc8, 0xa3, 0x43, 0x43, 0x16, 0x4f, 0x0e, 0xef, 0x6b, 0x1b, 0x36, 0x64, + 0x61, 0x15, 0xb1, 0xb8, 0x8b, 0x25, 0x19, 0x4f, 0x8d, 0x78, 0x68, 0x08, 0xf6, 0x83, 0x93, 0xd8, + 0xe8, 0xef, 0x25, 0xbd, 0x32, 0x2a, 0xf5, 0x4b, 0x46, 0xc5, 0xac, 0xa6, 0xfa, 0x52, 0x35, 0x7d, + 0x06, 0x1b, 0x52, 0x8e, 0x59, 0xd4, 0x26, 0x68, 0xc6, 0xb6, 0xb9, 0x18, 0xdb, 0xab, 0x46, 0xe7, + 0xbf, 0x16, 0xb8, 0xc7, 0x79, 0x14, 0xf5, 0x79, 0x9a, 0xfa, 0x13, 0xbe, 0xf7, 0x66, 0xc8, 0xe7, + 0x4f, 0xc3, 0x34, 0x63, 0x3c, 0x9d, 0x61, 0xa2, 0x78, 0x92, 0xec, 0xc7, 0x01, 0xa7, 0x28, 0xd5, + 0x59, 0x41, 0xa2, 0x8b, 0x3c, 0x49, 0xd0, 0x02, 0xd5, 0x0d, 0x24, 0x85, 0xf8, 0xd4, 0x7f, 0x3d, + 0xe4, 0x73, 0x0a, 0x4c, 0x8d, 0x29, 0x8a, 0xf0, 0x50, 0x20, 0xbe, 0xa6, 0x70, 0xa2, 0x9c, 0x1f, + 0xc3, 0x46, 0x1a, 0x8a, 0x89, 0x4c, 0xae, 0x2c, 0x96, 0xda, 0x4e, 0xfb, 0xfe, 0x37, 0x8c, 0x0d, + 0xf4, 0xd0, 0xcf, 0x4e, 0x79, 0x72, 0x14, 0x27, 0x53, 0x3f, 0x63, 0x26, 0xbf, 0xf3, 0x15, 0x74, + 0x26, 0x58, 0xb0, 0xc5, 0xfa, 0xc6, 0xbb, 0xd6, 0x1b, 0xec, 0xde, 0x14, 0x3e, 0x59, 0xed, 0x3d, + 0x99, 0x9c, 0x1b, 0x3b, 0x46, 0x52, 0xd8, 0x35, 0x62, 0xda, 0x7c, 0x61, 0x2c, 0xca, 0x02, 0xd1, + 0x21, 0x0c, 0x5b, 0x2a, 0xe5, 0xb8, 0xb5, 0x5e, 0x6d, 0xa7, 0xc6, 0x0a, 0xd2, 0xfb, 0x15, 0x1e, + 0x97, 0xa5, 0xba, 0x8b, 0xb4, 0xdc, 0x81, 0xf5, 0x94, 0xcf, 0xf7, 0xf8, 0x24, 0x14, 0xa4, 0xa2, + 0xc6, 0x4a, 0x1a, 0xd7, 0xa4, 0x7c, 0x7e, 0x28, 0x82, 0x22, 0xc8, 0x92, 0x5a, 0xb4, 0x6c, 0x6d, + 0xc9, 0x32, 0xec, 0xfa, 0x5d, 0xc3, 0x80, 0xff, 0x8b, 0x24, 0xdf, 0x02, 0xe7, 0x21, 0xcf, 0xfa, + 0xfe, 0xeb, 0x5d, 0x11, 0xf4, 0xc9, 0x24, 0xc6, 0xe7, 0xde, 0x21, 0xdc, 0x5c, 0x42, 0xd3, 0x99, + 0xe6, 0x9c, 0xf5, 0x16, 0xe7, 0x6c, 0xdd, 0x39, 0xef, 0x11, 0x74, 0x74, 0xd5, 0xb8, 0xc1, 0xc2, + 0x40, 0x25, 0xd3, 0x0e, 0x03, 0x67, 0x07, 0xd6, 0x22, 0xac, 0x04, 0x9b, 0x6c, 0xbe, 0x65, 0xd8, + 0xdc, 0x4f, 0x27, 0x07, 0x7e, 0xe6, 0x33, 0xe2, 0xf0, 0xe6, 0xd0, 0x45, 0x8b, 0x87, 0x5c, 0x04, + 0xfd, 0x74, 0x42, 0xc6, 0xf4, 0xa0, 0x3d, 0xe4, 0xc9, 0x39, 0xb9, 0x51, 0x9d, 0x50, 0x1a, 0x84, + 0x1c, 0xfb, 0x51, 0xc8, 0x45, 0x26, 0x39, 0x54, 0x35, 0x6a, 0x90, 0xac, 0x24, 0x11, 0x94, 0xc7, + 0x33, 0x55, 0x92, 0xa4, 0xbd, 0xbf, 0xd4, 0xa1, 0xa9, 0x8c, 0x90, 0x55, 0x25, 0x82, 0xaa, 0x12, + 0x25, 0x85, 0x78, 0xc2, 0x47, 0xe7, 0xd5, 0xac, 0x2b, 0x29, 0xac, 0x9b, 0x89, 0x3a, 0x39, 0xd4, + 0x64, 0xa4, 0x48, 0xb4, 0x69, 0xa4, 0xd9, 0xa4, 0xea, 0x50, 0x83, 0x90, 0x23, 0xd5, 0xfc, 0x52, + 0x33, 0x92, 0x06, 0x39, 0xdf, 0x81, 0xad, 0x94, 0xe6, 0xa9, 0xe3, 0xc8, 0xcf, 0xc6, 0x71, 0x32, + 0x55, 0xed, 0xb0, 0xce, 0x96, 0x70, 0x3c, 0x24, 0x25, 0x56, 0x4e, 0x71, 0xb2, 0x2d, 0x2e, 0xa0, + 0xd8, 0x5f, 0x25, 0x42, 0x23, 0x1c, 0x7b, 0xaa, 0xc6, 0x2a, 0x13, 0x94, 0xb6, 0xa5, 0x69, 0x18, + 0x0b, 0xba, 0x2d, 0xb4, 0x48, 0xa9, 0x0e, 0xa1, 0xe7, 0xd3, 0x74, 0x82, 0x07, 0x86, 0x1a, 0xae, + 0x0a, 0x92, 0x3c, 0x8f, 0x45, 0xc6, 0x45, 0x46, 0x6b, 0xdb, 0x72, 0xad, 0x06, 0xe1, 0x5a, 0x45, + 0xd2, 0x3d, 0xa4, 0xc3, 0x0a, 0x12, 0xfb, 0xfa, 0x38, 0x4e, 0x46, 0x9c, 0xfa, 0xc6, 0x46, 0xaf, + 0x86, 0x7d, 0xbd, 0x04, 0x9c, 0x2d, 0xa8, 0xa5, 0x7c, 0xee, 0x6e, 0x52, 0x02, 0xf1, 0xa7, 0x91, + 0xd7, 0xae, 0x99, 0x57, 0x3c, 0x05, 0x46, 0xd5, 0x49, 0xb3, 0x45, 0x5f, 0x35, 0xc4, 0xf9, 0x21, + 0x34, 0x07, 0x33, 0xec, 0x09, 0xa9, 0x7b, 0x83, 0xea, 0xf2, 0x5b, 0xab, 0xea, 0xf2, 0x9e, 0xe2, + 0x39, 0x14, 0x59, 0xf2, 0x86, 0x15, 0x2b, 0x9c, 0x23, 0xe8, 0xc6, 0xe3, 0x71, 0x14, 0x0a, 0x7e, + 0x9c, 0xa7, 0xa7, 0x34, 0xf6, 0x38, 0x34, 0xf6, 0x7c, 0x6a, 0x08, 0x19, 0x98, 0x3c, 0x6c, 0x71, + 0xd1, 0x9d, 0x07, 0xd0, 0xd1, 0x15, 0xa0, 0x8b, 0x67, 0xfc, 0x8d, 0xaa, 0x3e, 0xfc, 0x89, 0x23, + 0xf1, 0xb9, 0x1f, 0xe5, 0x72, 0xf2, 0x5a, 0x67, 0x92, 0x78, 0x60, 0x7f, 0x69, 0x79, 0xbf, 0xb1, + 0xa0, 0xbb, 0xa0, 0x00, 0xb9, 0x4f, 0xc2, 0x2c, 0xe2, 0x4a, 0x82, 0x24, 0x1c, 0x07, 0xd6, 0x0e, + 0x78, 0x3a, 0x52, 0xc5, 0x4b, 0xbf, 0xd5, 0x21, 0x58, 0x2b, 0x87, 0x6a, 0x0f, 0x3a, 0xe1, 0x60, + 0x88, 0x82, 0x86, 0x71, 0x2e, 0x82, 0xe2, 0x3a, 0xac, 0x63, 0x58, 0x3c, 0xe1, 0x60, 0xb8, 0xe7, + 0x07, 0x13, 0x2e, 0x2f, 0xad, 0x75, 0xb2, 0xc9, 0x04, 0xbd, 0x03, 0x58, 0x3f, 0x09, 0x67, 0xe9, + 0x7e, 0x3c, 0x9d, 0xe2, 0xc6, 0x39, 0xe0, 0x19, 0x4e, 0xf4, 0x16, 0x65, 0x5a, 0x51, 0x58, 0x24, + 0x07, 0x7c, 0xec, 0xe7, 0x51, 0x86, 0xac, 0xc5, 0x96, 0xd5, 0x20, 0xef, 0x4f, 0x16, 0x74, 0xe5, + 0x5d, 0xf4, 0x50, 0x64, 0x3c, 0x41, 0xcc, 0xf9, 0x2e, 0xd4, 0x69, 0x32, 0x23, 0x61, 0xed, 0xfb, + 0xdb, 0x66, 0xf3, 0x2b, 0x5e, 0x0d, 0x98, 0x64, 0x72, 0xf6, 0xa0, 0x8d, 0x41, 0xf5, 0x45, 0x46, + 0x63, 0xb7, 0x4d, 0x6b, 0x7a, 0xcb, 0x6b, 0xcc, 0x1b, 0x2f, 0xd3, 0x17, 0xa1, 0xc7, 0x83, 0xe2, + 0xec, 0xd0, 0xba, 0x87, 0x09, 0x7a, 0x7f, 0x2c, 0x6d, 0x7d, 0xca, 0xfd, 0x73, 0xfe, 0x1e, 0xb6, + 0xfe, 0x04, 0x80, 0x96, 0x26, 0x57, 0x32, 0x55, 0x5b, 0x73, 0x49, 0x4b, 0xff, 0x69, 0xc1, 0x0d, + 0x29, 0xe4, 0xb1, 0x38, 0x0f, 0x33, 0x1e, 0xbc, 0x87, 0xad, 0x5f, 0x42, 0x63, 0x30, 0xbb, 0x92, + 0x9d, 0x8a, 0xdf, 0x79, 0x02, 0x5d, 0xa5, 0x16, 0xc9, 0x72, 0x38, 0xb8, 0x8c, 0x88, 0xc5, 0x85, + 0xcb, 0xfe, 0xae, 0xad, 0xf2, 0xf7, 0x1f, 0x16, 0x6c, 0x49, 0x49, 0x3f, 0x0d, 0x47, 0x67, 0x1f, + 0xd9, 0xdd, 0x47, 0xb0, 0x29, 0xb5, 0x5e, 0xd9, 0xdb, 0x85, 0x75, 0x97, 0x74, 0xf6, 0x3f, 0x16, + 0xdc, 0x2e, 0x92, 0x3b, 0x8e, 0xf7, 0x4f, 0xf1, 0xaa, 0x2b, 0x3d, 0xc6, 0xa9, 0x9b, 0x48, 0x6a, + 0xc9, 0x72, 0xc4, 0xd1, 0x90, 0x6b, 0xf8, 0xf8, 0x23, 0x68, 0x1d, 0x85, 0xc2, 0x8f, 0xb4, 0x9b, + 0xdf, 0xbb, 0x17, 0x57, 0x4b, 0xb0, 0x83, 0xf7, 0x73, 0xd5, 0xa3, 0xd5, 0x7b, 0x50, 0x41, 0x57, + 0x79, 0xaa, 0x5f, 0x22, 0x4f, 0xde, 0xdf, 0x2c, 0xd8, 0xa2, 0x5f, 0xf2, 0x36, 0xf1, 0x3e, 0xa9, + 0x7e, 0x00, 0x4d, 0xf5, 0x66, 0x76, 0xe9, 0x38, 0x14, 0x0b, 0x70, 0x07, 0xab, 0x16, 0x70, 0x95, + 0x44, 0x6b, 0x6b, 0x2e, 0x99, 0xe4, 0x3f, 0x58, 0x70, 0xab, 0x34, 0x5c, 0xcf, 0x31, 0x4e, 0x41, + 0x8a, 0xac, 0x92, 0xac, 0x43, 0x55, 0x30, 0xec, 0xab, 0xd5, 0x7d, 0xed, 0x6a, 0x35, 0xe1, 0x7d, + 0x6d, 0x81, 0xfb, 0x24, 0x0e, 0x05, 0xf1, 0xec, 0xce, 0x66, 0x91, 0x7a, 0x72, 0x7d, 0x8f, 0x8c, + 0xfc, 0x00, 0x5a, 0x4a, 0x80, 0xc8, 0x94, 0xd9, 0x17, 0x3e, 0x2c, 0x54, 0xdc, 0xf2, 0x06, 0xea, + 0xa7, 0xe5, 0xeb, 0xaf, 0xa2, 0xbc, 0x3f, 0x5b, 0xe0, 0x6a, 0x46, 0x1d, 0x27, 0xf1, 0x88, 0xa7, + 0xe9, 0x47, 0x6e, 0x0d, 0x64, 0x9c, 0x76, 0x79, 0x6e, 0xe8, 0xd7, 0x66, 0x32, 0x7a, 0xcd, 0x30, + 0xfa, 0x0c, 0x6e, 0xc8, 0xfb, 0xbb, 0x66, 0x39, 0xce, 0x51, 0xbb, 0x81, 0x1c, 0x7e, 0xe4, 0x9c, + 0x5e, 0x90, 0xe6, 0x83, 0x8a, 0x7a, 0x1d, 0xaf, 0x1e, 0x54, 0xee, 0x02, 0xec, 0x06, 0xc1, 0x2f, + 0xe2, 0x24, 0x08, 0xc5, 0x44, 0x45, 0x47, 0x43, 0xbc, 0x27, 0xd0, 0xc1, 0x49, 0xae, 0xbc, 0xef, + 0x5f, 0xe3, 0xad, 0xc0, 0xfb, 0x25, 0xdc, 0x59, 0x32, 0x7c, 0x37, 0x08, 0x54, 0xb8, 0xbf, 0x32, + 0x35, 0xa9, 0xa8, 0x9b, 0x97, 0x1a, 0x9d, 0x81, 0x19, 0xec, 0xde, 0x0b, 0xb8, 0xbb, 0x24, 0xdc, + 0xcc, 0xe7, 0x35, 0x15, 0xfc, 0xce, 0x82, 0xae, 0xd2, 0x50, 0xda, 0xfc, 0x39, 0x34, 0x24, 0xa4, + 0x84, 0x7d, 0xb2, 0x20, 0xac, 0x78, 0x4f, 0x64, 0x8a, 0x6d, 0x79, 0x5f, 0xdb, 0x2b, 0xf6, 0xb5, + 0xf3, 0xc5, 0xc2, 0x76, 0xbb, 0xb0, 0xcc, 0x8b, 0x9d, 0xc6, 0x8a, 0xb2, 0x38, 0xe0, 0x11, 0xcf, + 0x3e, 0x8c, 0xcf, 0x03, 0xd8, 0xa4, 0xd7, 0xb9, 0x0f, 0x96, 0xa5, 0x9f, 0xc1, 0x16, 0x09, 0xfc, + 0x80, 0x36, 0xfe, 0x1c, 0x6e, 0x57, 0x81, 0xd6, 0x9b, 0xe0, 0x35, 0xe5, 0x7e, 0x0f, 0x6e, 0x0e, + 0x79, 0x34, 0x46, 0xa9, 0xcf, 0x67, 0x41, 0x79, 0x8a, 0xbc, 0xe5, 0xe1, 0xf0, 0x65, 0x83, 0xfe, + 0xc0, 0xfa, 0xe2, 0x7f, 0x01, 0x00, 0x00, 0xff, 0xff, 0x65, 0x07, 0x6a, 0xb9, 0xd3, 0x1a, 0x00, + 0x00, } From df6643f1c5a056429fb02b15ec200391448460c8 Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Thu, 6 Jan 2022 18:26:50 +0800 Subject: [PATCH 471/814] Refactor code --- pkg/common/utils/utils.go | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/pkg/common/utils/utils.go b/pkg/common/utils/utils.go index 25599eb2a..fc4100d7f 100644 --- a/pkg/common/utils/utils.go +++ b/pkg/common/utils/utils.go @@ -27,7 +27,7 @@ func FriendDBCopyOpenIM(dst *open_im_sdk.FriendInfo, src *db.Friend) { utils.CopyStructFields(dst.FriendUser, user) } dst.CreateTime = uint32(src.CreateTime.Unix()) - dst.FriendUser.CreateTime = user.CreateTime.Unix() + dst.FriendUser.CreateTime = uint32(user.CreateTime.Unix()) } // @@ -37,8 +37,8 @@ func FriendRequestOpenIMCopyDB(dst *db.FriendRequest, src *open_im_sdk.FriendReq func FriendRequestDBCopyOpenIM(dst *open_im_sdk.FriendRequest, src *db.FriendRequest) { utils.CopyStructFields(dst, src) - dst.CreateTime = src.CreateTime.Unix() - dst.HandleTime = src.HandleTime.Unix() + dst.CreateTime = uint32(src.CreateTime.Unix()) + dst.HandleTime = uint32(src.HandleTime.Unix()) } func GroupOpenIMCopyDB(dst *db.Group, src *open_im_sdk.GroupInfo) { @@ -52,7 +52,7 @@ func GroupDBCopyOpenIM(dst *open_im_sdk.GroupInfo, src *db.Group) { dst.OwnerUserID = user.UserID } dst.MemberCount = imdb.GetGroupMemberNumByGroupID(src.GroupID) - dst.CreateTime = src.CreateTime.Unix() + dst.CreateTime = uint32(src.CreateTime.Unix()) } func GroupMemberOpenIMCopyDB(dst *db.GroupMember, src *open_im_sdk.GroupMemberFullInfo) { @@ -77,8 +77,8 @@ func GroupRequestOpenIMCopyDB(dst *db.GroupRequest, src *open_im_sdk.GroupReques func GroupRequestDBCopyOpenIM(dst *open_im_sdk.GroupRequest, src *db.GroupRequest) { utils.CopyStructFields(dst, src) - dst.ReqTime = src.ReqTime.Unix() - dst.HandleTime = src.HandledTime.Unix() + dst.ReqTime = uint32(src.ReqTime.Unix()) + dst.HandleTime = uint32(src.HandledTime.Unix()) } func UserOpenIMCopyDB(dst *db.User, src *open_im_sdk.UserInfo) { @@ -87,7 +87,7 @@ func UserOpenIMCopyDB(dst *db.User, src *open_im_sdk.UserInfo) { func UserDBCopyOpenIM(dst *open_im_sdk.UserInfo, src *db.User) { utils.CopyStructFields(dst, src) - dst.CreateTime = src.CreateTime.Unix() + dst.CreateTime = uint32(src.CreateTime.Unix()) } func BlackOpenIMCopyDB(dst *db.Black, src *open_im_sdk.BlackInfo) { @@ -97,7 +97,7 @@ func BlackOpenIMCopyDB(dst *db.Black, src *open_im_sdk.BlackInfo) { func BlackDBCopyOpenIM(dst *open_im_sdk.BlackInfo, src *db.Black) { utils.CopyStructFields(dst, src) - dst.CreateTime = src.CreateTime.Unix() + dst.CreateTime = uint32(src.CreateTime.Unix()) user, _ := imdb.GetUserByUserID(src.BlockUserID) if user != nil { utils.CopyStructFields(dst.BlackUserInfo, user) From 1a69fdf1e08c43c578e87f1408acf39e573257a1 Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Thu, 6 Jan 2022 18:30:58 +0800 Subject: [PATCH 472/814] Refactor code --- 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 7eb330c31..0cf426051 100644 --- a/internal/rpc/user/user.go +++ b/internal/rpc/user/user.go @@ -216,7 +216,7 @@ func (s *userServer) UpdateUserInfo(ctx context.Context, req *pbUser.UpdateUserI var user db.User utils.CopyStructFields(&user, req.UserInfo) if req.UserInfo.Birth != 0 { - user.Birth = utils.UnixSecondToTime(req.UserInfo.Birth) + user.Birth = utils.UnixSecondToTime(int64(req.UserInfo.Birth)) } err := imdb.UpdateUserInfo(user) if err != nil { From bc0c5d4fcb915e60f235c90a4ef905cb635db573 Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Thu, 6 Jan 2022 19:59:13 +0800 Subject: [PATCH 473/814] Refactor code --- .../db/mysql_model/im_mysql_model/user_black_list_model.go | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkg/common/db/mysql_model/im_mysql_model/user_black_list_model.go b/pkg/common/db/mysql_model/im_mysql_model/user_black_list_model.go index 1c7bda90c..cd95aaa95 100644 --- a/pkg/common/db/mysql_model/im_mysql_model/user_black_list_model.go +++ b/pkg/common/db/mysql_model/im_mysql_model/user_black_list_model.go @@ -2,6 +2,7 @@ package im_mysql_model import ( "Open_IM/pkg/common/db" + "Open_IM/pkg/utils" "time" ) @@ -39,9 +40,8 @@ func RemoveBlackList(ownerUserID, blockUserID string) error { if err != nil { return err } - - err = dbConn.Table("blacks").Where("owner_user_id=? and block_user_id=?", ownerUserID, blockUserID).Delete(&db.Black{}).Error - return err + black := db.Black{OwnerUserID: ownerUserID, BlockUserID: blockUserID} + return utils.Wrap(dbConn.Delete(&black).Error, "RemoveBlackList failed") } func GetBlackListByUserID(ownerUserID string) ([]db.Black, error) { From d80a669515e2c79285f933353eb15838735ea2de Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Thu, 6 Jan 2022 20:07:40 +0800 Subject: [PATCH 474/814] Refactor code --- .../db/mysql_model/im_mysql_model/user_black_list_model.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkg/common/db/mysql_model/im_mysql_model/user_black_list_model.go b/pkg/common/db/mysql_model/im_mysql_model/user_black_list_model.go index cd95aaa95..6ad58bb3a 100644 --- a/pkg/common/db/mysql_model/im_mysql_model/user_black_list_model.go +++ b/pkg/common/db/mysql_model/im_mysql_model/user_black_list_model.go @@ -41,7 +41,7 @@ func RemoveBlackList(ownerUserID, blockUserID string) error { return err } black := db.Black{OwnerUserID: ownerUserID, BlockUserID: blockUserID} - return utils.Wrap(dbConn.Delete(&black).Error, "RemoveBlackList failed") + return utils.Wrap(dbConn.Table("blacks").Delete(&black).Error, "RemoveBlackList failed") } func GetBlackListByUserID(ownerUserID string) ([]db.Black, error) { From 59a5f675f6bda758e08652ce849e5c5a01a00b52 Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Thu, 6 Jan 2022 20:16:14 +0800 Subject: [PATCH 475/814] Refactor code --- .../db/mysql_model/im_mysql_model/user_black_list_model.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkg/common/db/mysql_model/im_mysql_model/user_black_list_model.go b/pkg/common/db/mysql_model/im_mysql_model/user_black_list_model.go index 6ad58bb3a..3465f915c 100644 --- a/pkg/common/db/mysql_model/im_mysql_model/user_black_list_model.go +++ b/pkg/common/db/mysql_model/im_mysql_model/user_black_list_model.go @@ -40,8 +40,8 @@ func RemoveBlackList(ownerUserID, blockUserID string) error { if err != nil { return err } - black := db.Black{OwnerUserID: ownerUserID, BlockUserID: blockUserID} - return utils.Wrap(dbConn.Table("blacks").Delete(&black).Error, "RemoveBlackList failed") + err = dbConn.Table("blacks").Where("owner_user_id=? and block_user_id=?", ownerUserID, blockUserID).Delete(&db.GroupRequest{}).Error + return utils.Wrap(err, "RemoveBlackList failed") } func GetBlackListByUserID(ownerUserID string) ([]db.Black, error) { From 548c92dc0d25242c11dec751f4dd969fa0e1c5a6 Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Thu, 6 Jan 2022 20:17:22 +0800 Subject: [PATCH 476/814] Refactor code --- internal/rpc/auth/auth.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/internal/rpc/auth/auth.go b/internal/rpc/auth/auth.go index d05c9d3d1..bb804d6e2 100644 --- a/internal/rpc/auth/auth.go +++ b/internal/rpc/auth/auth.go @@ -24,7 +24,7 @@ func (rpc *rpcAuth) UserRegister(_ context.Context, req *pbAuth.UserRegisterReq) var user db.User utils.CopyStructFields(&user, req.UserInfo) if req.UserInfo.Birth != 0 { - user.Birth = utils.UnixSecondToTime(req.UserInfo.Birth) + user.Birth = utils.UnixSecondToTime(int64(req.UserInfo.Birth)) } err := imdb.UserRegister(user) if err != nil { From c71f2f7fae5383221188254a77f5b318c5532c13 Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Thu, 6 Jan 2022 20:21:13 +0800 Subject: [PATCH 477/814] Refactor code --- .../db/mysql_model/im_mysql_model/user_black_list_model.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkg/common/db/mysql_model/im_mysql_model/user_black_list_model.go b/pkg/common/db/mysql_model/im_mysql_model/user_black_list_model.go index 3465f915c..1f8c43c16 100644 --- a/pkg/common/db/mysql_model/im_mysql_model/user_black_list_model.go +++ b/pkg/common/db/mysql_model/im_mysql_model/user_black_list_model.go @@ -40,7 +40,7 @@ func RemoveBlackList(ownerUserID, blockUserID string) error { if err != nil { return err } - err = dbConn.Table("blacks").Where("owner_user_id=? and block_user_id=?", ownerUserID, blockUserID).Delete(&db.GroupRequest{}).Error + err = dbConn.Table("blacks").Where("owner_user_id=? and block_user_id=?", ownerUserID, blockUserID).Delete(&db.Black{}).Error return utils.Wrap(err, "RemoveBlackList failed") } From 29e92015d52223dade3f8113975f135126de1d33 Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Thu, 6 Jan 2022 20:33:09 +0800 Subject: [PATCH 478/814] Refactor code --- .../db/mysql_model/im_mysql_model/user_black_list_model.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkg/common/db/mysql_model/im_mysql_model/user_black_list_model.go b/pkg/common/db/mysql_model/im_mysql_model/user_black_list_model.go index 1f8c43c16..7a60287a6 100644 --- a/pkg/common/db/mysql_model/im_mysql_model/user_black_list_model.go +++ b/pkg/common/db/mysql_model/im_mysql_model/user_black_list_model.go @@ -40,7 +40,7 @@ func RemoveBlackList(ownerUserID, blockUserID string) error { if err != nil { return err } - err = dbConn.Table("blacks").Where("owner_user_id=? and block_user_id=?", ownerUserID, blockUserID).Delete(&db.Black{}).Error + err = dbConn.Table("blacks").Where("owner_user_id=? and block_user_id=?", ownerUserID, blockUserID).Delete(db.Black{}).Error return utils.Wrap(err, "RemoveBlackList failed") } From b49576128337fcb56cb4aa342625994d94fffbdc Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Thu, 6 Jan 2022 20:34:00 +0800 Subject: [PATCH 479/814] Refactor code --- pkg/common/db/mysql_model/im_mysql_model/group_member_model.go | 2 +- pkg/common/db/mysql_model/im_mysql_model/group_request_model.go | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/pkg/common/db/mysql_model/im_mysql_model/group_member_model.go b/pkg/common/db/mysql_model/im_mysql_model/group_member_model.go index 6b895a8ee..e9bfdcbac 100644 --- a/pkg/common/db/mysql_model/im_mysql_model/group_member_model.go +++ b/pkg/common/db/mysql_model/im_mysql_model/group_member_model.go @@ -92,7 +92,7 @@ func DeleteGroupMemberByGroupIDAndUserID(groupID, userID string) error { if err != nil { return err } - err = dbConn.Table("group_members").Where("group_id=? and user_id=? ", groupID, userID).Delete(&db.GroupMember{}).Error + err = dbConn.Table("group_members").Where("group_id=? and user_id=? ", groupID, userID).Delete(db.GroupMember{}).Error if err != nil { return err } diff --git a/pkg/common/db/mysql_model/im_mysql_model/group_request_model.go b/pkg/common/db/mysql_model/im_mysql_model/group_request_model.go index b1436e17b..84988a3f4 100644 --- a/pkg/common/db/mysql_model/im_mysql_model/group_request_model.go +++ b/pkg/common/db/mysql_model/im_mysql_model/group_request_model.go @@ -66,7 +66,7 @@ func DelGroupRequestByGroupIDAndUserID(groupID, userID string) error { if err != nil { return err } - err = dbConn.Table("group_requests").Where("group_id=? and user_id=?", groupID, userID).Delete(&db.GroupRequest{}).Error + err = dbConn.Table("group_requests").Where("group_id=? and user_id=?", groupID, userID).Delete(db.GroupRequest{}).Error if err != nil { return err } From 89eb39ca3e158487deece94c3852b67d3cf3643e Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Thu, 13 Jan 2022 11:10:29 +0800 Subject: [PATCH 480/814] Refactor code --- cmd/open_im_api/main.go | 5 +-- internal/api/group/group.go | 4 +-- internal/api/user/user.go | 53 ++++++++++++++++++++++++++++--- pkg/base_info/group_api_struct.go | 2 +- pkg/base_info/user_api_struct.go | 18 ++++++++--- 5 files changed, 69 insertions(+), 13 deletions(-) diff --git a/cmd/open_im_api/main.go b/cmd/open_im_api/main.go index ff61b1ccb..65ab3aae1 100644 --- a/cmd/open_im_api/main.go +++ b/cmd/open_im_api/main.go @@ -24,8 +24,9 @@ func main() { // user routing group, which handles user registration and login services userRouterGroup := r.Group("/user") { - userRouterGroup.POST("/update_user_info", user.UpdateUserInfo) //1 - userRouterGroup.POST("/get_user_info", user.GetUserInfo) //1 + userRouterGroup.POST("/update_user_info", user.UpdateUserInfo) //1 + userRouterGroup.POST("/get_user_info", user.GetUsersInfo) //1 + userRouterGroup.POST("/get_self_user_info", user.GetSelfUserInfo) //1 } //friend routing group friendRouterGroup := r.Group("/friend") diff --git a/internal/api/group/group.go b/internal/api/group/group.go index ef3c599cb..61bc95495 100644 --- a/internal/api/group/group.go +++ b/internal/api/group/group.go @@ -227,11 +227,11 @@ func InviteUserToGroup(c *gin.Context) { resp := api.InviteUserToGroupResp{CommResp: api.CommResp{ErrCode: RpcResp.ErrCode, ErrMsg: RpcResp.ErrMsg}} for _, v := range RpcResp.Id2ResultList { - resp.UserIDResultList = append(resp.UserIDResultList, api.UserIDResult{UserID: v.UserID, Result: v.Result}) + resp.UserIDResultList = append(resp.UserIDResultList, &api.UserIDResult{UserID: v.UserID, Result: v.Result}) } if len(resp.UserIDResultList) == 0 { - resp.UserIDResultList = []api.UserIDResult{} + resp.UserIDResultList = *new([]*api.UserIDResult) } log.NewInfo(req.OperationID, "InviteUserToGroup api return ", resp) diff --git a/internal/api/user/user.go b/internal/api/user/user.go index ebc5decf7..f5f02c8cd 100644 --- a/internal/api/user/user.go +++ b/internal/api/user/user.go @@ -16,8 +16,8 @@ import ( "strings" ) -func GetUserInfo(c *gin.Context) { - params := api.GetUserInfoReq{} +func GetUsersInfo(c *gin.Context) { + params := api.GetUsersInfoReq{} if err := c.BindJSON(¶ms); err != nil { log.NewError("0", "BindJSON failed ", err.Error()) c.JSON(http.StatusBadRequest, gin.H{"errCode": http.StatusBadRequest, "errMsg": err.Error()}) @@ -42,15 +42,20 @@ func GetUserInfo(c *gin.Context) { 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 { + publicUserInfoList = append(publicUserInfoList, + &open_im_sdk.PublicUserInfo{UserID: v.UserID, Nickname: v.Nickname, FaceUrl: v.FaceUrl, Gender: v.Gender, AppMangerLevel: v.AppMangerLevel}) + } - resp := api.GetUserInfoResp{CommResp: api.CommResp{ErrCode: RpcResp.CommonResp.ErrCode, ErrMsg: RpcResp.CommonResp.ErrMsg}, UserInfoList: RpcResp.UserInfoList} + 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) c.JSON(http.StatusOK, resp) } func UpdateUserInfo(c *gin.Context) { - params := api.UpdateUserInfoReq{} + params := api.UpdateSelfUserInfoReq{} if err := c.BindJSON(¶ms); err != nil { log.NewError("0", "BindJSON failed ", err.Error()) c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": err.Error()}) @@ -80,3 +85,43 @@ func UpdateUserInfo(c *gin.Context) { log.NewInfo(req.OperationID, "UpdateUserInfo api return ", resp) c.JSON(http.StatusOK, resp) } + +func GetSelfUserInfo(c *gin.Context) { + params := api.GetSelfUserInfoReq{} + if err := c.BindJSON(¶ms); err != nil { + log.NewError("0", "BindJSON failed ", err.Error()) + c.JSON(http.StatusBadRequest, gin.H{"errCode": http.StatusBadRequest, "errMsg": err.Error()}) + return + } + req := &rpc.GetUserInfoReq{} + utils.CopyStructFields(req, ¶ms) + var ok bool + ok, req.OpUserID = token_verify.GetUserIDFromToken(c.Request.Header.Get("token")) + if !ok { + log.NewError(req.OperationID, "GetUserIDFromToken false ", c.Request.Header.Get("token")) + c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": "GetUserIDFromToken failed"}) + return + } + 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) + if err != nil { + log.NewError(req.OperationID, "GetUserInfo failed ", err.Error(), req.String()) + c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": "call rpc server failed"}) + return + } + if len(RpcResp.UserInfoList) == 1 { + resp := api.GetSelfUserInfoResp{CommResp: api.CommResp{ErrCode: RpcResp.CommonResp.ErrCode, ErrMsg: RpcResp.CommonResp.ErrMsg}, UserInfoList: RpcResp.UserInfoList[0]} + resp.Data = jsonData.JsonDataList(resp.UserInfoList) + 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}} + resp.Data = jsonData.JsonDataList(resp.UserInfoList) + log.NewInfo(req.OperationID, "GetUserInfo api return ", resp) + c.JSON(http.StatusOK, resp) + } + +} diff --git a/pkg/base_info/group_api_struct.go b/pkg/base_info/group_api_struct.go index 7c70d5a0e..71301455a 100644 --- a/pkg/base_info/group_api_struct.go +++ b/pkg/base_info/group_api_struct.go @@ -45,7 +45,7 @@ type InviteUserToGroupReq struct { } type InviteUserToGroupResp struct { CommResp - UserIDResultList []UserIDResult `json:"data"` + UserIDResultList []*UserIDResult `json:"data"` } type GetJoinedGroupListReq struct { diff --git a/pkg/base_info/user_api_struct.go b/pkg/base_info/user_api_struct.go index 632c6ea77..3ca191f98 100644 --- a/pkg/base_info/user_api_struct.go +++ b/pkg/base_info/user_api_struct.go @@ -4,17 +4,17 @@ import ( open_im_sdk "Open_IM/pkg/proto/sdk_ws" ) -type GetUserInfoReq struct { +type GetUsersInfoReq struct { OperationID string `json:"operationID" binding:"required"` UserIDList []string `json:"userIDList" binding:"required"` } -type GetUserInfoResp struct { +type GetUsersInfoResp struct { CommResp - UserInfoList []*open_im_sdk.UserInfo `json:"-"` + UserInfoList []*open_im_sdk.PublicUserInfo Data []map[string]interface{} `json:"data"` } -type UpdateUserInfoReq struct { +type UpdateSelfUserInfoReq struct { UserInfo OperationID string `json:"operationID" binding:"required"` } @@ -22,3 +22,13 @@ type UpdateUserInfoReq struct { type UpdateUserInfoResp struct { CommResp } + +type GetSelfUserInfoReq struct { + OperationID string `json:"operationID" binding:"required"` + UserID string `json:"userID" binding:"required"` +} +type GetSelfUserInfoResp struct { + CommResp + UserInfoList *open_im_sdk.UserInfo `json:"-"` + Data []map[string]interface{} `json:"data"` +} From 1f493c427a0b429e3dc5ea760cf05af2fe30345a Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Thu, 13 Jan 2022 11:16:55 +0800 Subject: [PATCH 481/814] Refactor code --- internal/api/user/user.go | 2 ++ 1 file changed, 2 insertions(+) diff --git a/internal/api/user/user.go b/internal/api/user/user.go index f5f02c8cd..d249486e6 100644 --- a/internal/api/user/user.go +++ b/internal/api/user/user.go @@ -94,6 +94,7 @@ func GetSelfUserInfo(c *gin.Context) { return } req := &rpc.GetUserInfoReq{} + utils.CopyStructFields(req, ¶ms) var ok bool ok, req.OpUserID = token_verify.GetUserIDFromToken(c.Request.Header.Get("token")) @@ -102,6 +103,7 @@ func GetSelfUserInfo(c *gin.Context) { c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": "GetUserIDFromToken failed"}) return } + req.UserIDList = append(req.UserIDList, req.OpUserID) 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) From 3e6302e44a6360f6cfd3160956a0f2a13d7ec368 Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Thu, 13 Jan 2022 11:20:21 +0800 Subject: [PATCH 482/814] Refactor code --- internal/rpc/group/group.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/internal/rpc/group/group.go b/internal/rpc/group/group.go index 322039a75..210c997b5 100644 --- a/internal/rpc/group/group.go +++ b/internal/rpc/group/group.go @@ -171,7 +171,7 @@ func (s *groupServer) GetJoinedGroupList(ctx context.Context, req *pbGroup.GetJo group, err := imdb.GetGroupInfoByGroupID(v) if num > 0 && owner != nil && err2 == nil && group != nil && err == nil { utils.CopyStructFields(&groupNode, group) - groupNode.CreateTime = group.CreateTime.Unix() + groupNode.CreateTime = uint32(group.CreateTime.Unix()) groupNode.MemberCount = uint32(num) groupNode.OwnerUserID = owner.UserID resp.GroupList = append(resp.GroupList, &groupNode) From b0a8ad1ac1970af3092328eed9e948b9f40473d0 Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Thu, 13 Jan 2022 18:33:11 +0800 Subject: [PATCH 483/814] tidy --- internal/msg_gateway/gate/ws_server.go | 2 +- pkg/common/constant/constant.go | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/internal/msg_gateway/gate/ws_server.go b/internal/msg_gateway/gate/ws_server.go index 88fad8c0c..2197fbbc2 100644 --- a/internal/msg_gateway/gate/ws_server.go +++ b/internal/msg_gateway/gate/ws_server.go @@ -128,7 +128,7 @@ func (ws *WServer) MultiTerminalLoginChecker(uid string, platformID int32, newCo } delete(ws.wsConnToUser, oldConn) if err != nil { - log.NewError("", "conn close err", err.Error()) + log.NewError("", "conn close err", err.Error(), uid, platformID) } } diff --git a/pkg/common/constant/constant.go b/pkg/common/constant/constant.go index 636096176..d0bfec2e0 100644 --- a/pkg/common/constant/constant.go +++ b/pkg/common/constant/constant.go @@ -78,13 +78,13 @@ const ( ExpiredToken = 3 //MultiTerminalLogin - //全端登录,但是同端互斥 + //Full-end login, but the same end is mutually exclusive AllLoginButSameTermKick = 1 - //所有端中只能有一端能够登录 + //Only one of the endpoints can log in SingleTerminalLogin = 2 - //web端可以同时在线,其他端只能有一端登录 + //The web side can be online at the same time, and the other side can only log in at one end WebAndOther = 3 - //Pc端互斥,移动端互斥,但是web端可以同时在线 + //The PC side is mutually exclusive, and the mobile side is mutually exclusive, but the web side can be online at the same time PcMobileAndWeb = 4 OnlineStatus = "online" From 0db2c271a0ef3e4f13f7fce7ebc68e400575c828 Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Fri, 14 Jan 2022 09:51:43 +0800 Subject: [PATCH 484/814] proto json tag modify --- cmd/open_im_api/main.go | 1 + pkg/proto/sdk_ws/ws.pb.go | 587 +++++++++++++++++++------------------- pkg/proto/sdk_ws/ws.proto | 246 ++++++++-------- 3 files changed, 417 insertions(+), 417 deletions(-) diff --git a/cmd/open_im_api/main.go b/cmd/open_im_api/main.go index 65ab3aae1..fccba41c1 100644 --- a/cmd/open_im_api/main.go +++ b/cmd/open_im_api/main.go @@ -19,6 +19,7 @@ import ( ) func main() { + gin.SetMode(gin.ReleaseMode) r := gin.Default() r.Use(utils.CorsHandler()) // user routing group, which handles user registration and login services diff --git a/pkg/proto/sdk_ws/ws.pb.go b/pkg/proto/sdk_ws/ws.pb.go index 91870ccd9..31bcf268d 100644 --- a/pkg/proto/sdk_ws/ws.pb.go +++ b/pkg/proto/sdk_ws/ws.pb.go @@ -19,18 +19,18 @@ var _ = math.Inf const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package type GroupInfo struct { - GroupID string `protobuf:"bytes,1,opt,name=GroupID" json:"GroupID,omitempty"` - GroupName string `protobuf:"bytes,2,opt,name=GroupName" json:"GroupName,omitempty"` - Notification string `protobuf:"bytes,3,opt,name=Notification" json:"Notification,omitempty"` - Introduction string `protobuf:"bytes,4,opt,name=Introduction" json:"Introduction,omitempty"` - FaceUrl string `protobuf:"bytes,5,opt,name=FaceUrl" json:"FaceUrl,omitempty"` - OwnerUserID string `protobuf:"bytes,6,opt,name=OwnerUserID" json:"OwnerUserID,omitempty"` - CreateTime uint32 `protobuf:"varint,7,opt,name=CreateTime" json:"CreateTime,omitempty"` - MemberCount uint32 `protobuf:"varint,8,opt,name=MemberCount" json:"MemberCount,omitempty"` - Ex string `protobuf:"bytes,9,opt,name=Ex" json:"Ex,omitempty"` - Status int32 `protobuf:"varint,10,opt,name=Status" json:"Status,omitempty"` - CreatorUserID string `protobuf:"bytes,11,opt,name=CreatorUserID" json:"CreatorUserID,omitempty"` - GroupType int32 `protobuf:"varint,12,opt,name=GroupType" json:"GroupType,omitempty"` + GroupID string `protobuf:"bytes,1,opt,name=groupID" json:"groupID,omitempty"` + GroupName string `protobuf:"bytes,2,opt,name=groupName" json:"groupName,omitempty"` + Notification string `protobuf:"bytes,3,opt,name=notification" json:"notification,omitempty"` + Introduction string `protobuf:"bytes,4,opt,name=introduction" json:"introduction,omitempty"` + FaceURL string `protobuf:"bytes,5,opt,name=faceURL" json:"faceURL,omitempty"` + OwnerUserID string `protobuf:"bytes,6,opt,name=ownerUserID" json:"ownerUserID,omitempty"` + CreateTime uint32 `protobuf:"varint,7,opt,name=createTime" json:"createTime,omitempty"` + MemberCount uint32 `protobuf:"varint,8,opt,name=memberCount" json:"memberCount,omitempty"` + Ex string `protobuf:"bytes,9,opt,name=ex" json:"ex,omitempty"` + Status int32 `protobuf:"varint,10,opt,name=status" json:"status,omitempty"` + CreatorUserID string `protobuf:"bytes,11,opt,name=creatorUserID" json:"creatorUserID,omitempty"` + GroupType int32 `protobuf:"varint,12,opt,name=groupType" json:"groupType,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -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_a718f3fde1e8b012, []int{0} + return fileDescriptor_ws_f46b8824c5dbc584, []int{0} } func (m *GroupInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupInfo.Unmarshal(m, b) @@ -88,9 +88,9 @@ func (m *GroupInfo) GetIntroduction() string { return "" } -func (m *GroupInfo) GetFaceUrl() string { +func (m *GroupInfo) GetFaceURL() string { if m != nil { - return m.FaceUrl + return m.FaceURL } return "" } @@ -145,16 +145,16 @@ func (m *GroupInfo) GetGroupType() int32 { } type GroupMemberFullInfo struct { - GroupID string `protobuf:"bytes,1,opt,name=GroupID" json:"GroupID,omitempty"` - UserID string `protobuf:"bytes,2,opt,name=UserID" json:"UserID,omitempty"` + GroupID string `protobuf:"bytes,1,opt,name=groupID" json:"groupID,omitempty"` + UserID string `protobuf:"bytes,2,opt,name=userID" json:"userID,omitempty"` RoleLevel int32 `protobuf:"varint,3,opt,name=roleLevel" json:"roleLevel,omitempty"` - JoinTime int64 `protobuf:"varint,4,opt,name=JoinTime" json:"JoinTime,omitempty"` - Nickname string `protobuf:"bytes,5,opt,name=Nickname" json:"Nickname,omitempty"` - FaceUrl string `protobuf:"bytes,6,opt,name=FaceUrl" json:"FaceUrl,omitempty"` - AppMangerLevel int32 `protobuf:"varint,7,opt,name=AppMangerLevel" json:"AppMangerLevel,omitempty"` - JoinSource int32 `protobuf:"varint,8,opt,name=JoinSource" json:"JoinSource,omitempty"` - OperatorUserID string `protobuf:"bytes,9,opt,name=OperatorUserID" json:"OperatorUserID,omitempty"` - Ex string `protobuf:"bytes,10,opt,name=Ex" json:"Ex,omitempty"` + JoinTime int64 `protobuf:"varint,4,opt,name=joinTime" json:"joinTime,omitempty"` + Nickname string `protobuf:"bytes,5,opt,name=nickname" json:"nickname,omitempty"` + FaceURL string `protobuf:"bytes,6,opt,name=faceURL" json:"faceURL,omitempty"` + AppMangerLevel int32 `protobuf:"varint,7,opt,name=appMangerLevel" json:"appMangerLevel,omitempty"` + JoinSource int32 `protobuf:"varint,8,opt,name=joinSource" json:"joinSource,omitempty"` + OperatorUserID string `protobuf:"bytes,9,opt,name=operatorUserID" json:"operatorUserID,omitempty"` + Ex string `protobuf:"bytes,10,opt,name=ex" json:"ex,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -164,7 +164,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_a718f3fde1e8b012, []int{1} + return fileDescriptor_ws_f46b8824c5dbc584, []int{1} } func (m *GroupMemberFullInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupMemberFullInfo.Unmarshal(m, b) @@ -219,9 +219,9 @@ func (m *GroupMemberFullInfo) GetNickname() string { return "" } -func (m *GroupMemberFullInfo) GetFaceUrl() string { +func (m *GroupMemberFullInfo) GetFaceURL() string { if m != nil { - return m.FaceUrl + return m.FaceURL } return "" } @@ -255,11 +255,11 @@ func (m *GroupMemberFullInfo) GetEx() string { } type PublicUserInfo struct { - UserID string `protobuf:"bytes,1,opt,name=UserID" json:"UserID,omitempty"` - Nickname string `protobuf:"bytes,2,opt,name=Nickname" json:"Nickname,omitempty"` - FaceUrl string `protobuf:"bytes,3,opt,name=FaceUrl" json:"FaceUrl,omitempty"` - Gender int32 `protobuf:"varint,4,opt,name=Gender" json:"Gender,omitempty"` - AppMangerLevel int32 `protobuf:"varint,5,opt,name=AppMangerLevel" json:"AppMangerLevel,omitempty"` + UserID string `protobuf:"bytes,1,opt,name=userID" json:"userID,omitempty"` + Nickname string `protobuf:"bytes,2,opt,name=nickname" json:"nickname,omitempty"` + FaceURL string `protobuf:"bytes,3,opt,name=faceURL" json:"faceURL,omitempty"` + Gender int32 `protobuf:"varint,4,opt,name=gender" json:"gender,omitempty"` + AppMangerLevel int32 `protobuf:"varint,5,opt,name=appMangerLevel" json:"appMangerLevel,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -269,7 +269,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_a718f3fde1e8b012, []int{2} + return fileDescriptor_ws_f46b8824c5dbc584, []int{2} } func (m *PublicUserInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_PublicUserInfo.Unmarshal(m, b) @@ -303,9 +303,9 @@ func (m *PublicUserInfo) GetNickname() string { return "" } -func (m *PublicUserInfo) GetFaceUrl() string { +func (m *PublicUserInfo) GetFaceURL() string { if m != nil { - return m.FaceUrl + return m.FaceURL } return "" } @@ -325,16 +325,16 @@ func (m *PublicUserInfo) GetAppMangerLevel() int32 { } type UserInfo struct { - UserID string `protobuf:"bytes,1,opt,name=UserID" json:"UserID,omitempty"` - Nickname string `protobuf:"bytes,2,opt,name=Nickname" json:"Nickname,omitempty"` - FaceUrl string `protobuf:"bytes,3,opt,name=FaceUrl" json:"FaceUrl,omitempty"` - Gender int32 `protobuf:"varint,4,opt,name=Gender" json:"Gender,omitempty"` - PhoneNumber string `protobuf:"bytes,5,opt,name=PhoneNumber" json:"PhoneNumber,omitempty"` - Birth uint32 `protobuf:"varint,6,opt,name=Birth" json:"Birth,omitempty"` - Email string `protobuf:"bytes,7,opt,name=Email" json:"Email,omitempty"` - Ex string `protobuf:"bytes,8,opt,name=Ex" json:"Ex,omitempty"` - CreateTime uint32 `protobuf:"varint,9,opt,name=CreateTime" json:"CreateTime,omitempty"` - AppMangerLevel int32 `protobuf:"varint,10,opt,name=AppMangerLevel" json:"AppMangerLevel,omitempty"` + UserID string `protobuf:"bytes,1,opt,name=userID" json:"userID,omitempty"` + Nickname string `protobuf:"bytes,2,opt,name=nickname" json:"nickname,omitempty"` + FaceURL string `protobuf:"bytes,3,opt,name=faceURL" json:"faceURL,omitempty"` + Gender int32 `protobuf:"varint,4,opt,name=gender" json:"gender,omitempty"` + PhoneNumber string `protobuf:"bytes,5,opt,name=phoneNumber" json:"phoneNumber,omitempty"` + Birth uint32 `protobuf:"varint,6,opt,name=birth" json:"birth,omitempty"` + Email string `protobuf:"bytes,7,opt,name=email" json:"email,omitempty"` + Ex string `protobuf:"bytes,8,opt,name=ex" json:"ex,omitempty"` + CreateTime uint32 `protobuf:"varint,9,opt,name=createTime" json:"createTime,omitempty"` + AppMangerLevel int32 `protobuf:"varint,10,opt,name=appMangerLevel" json:"appMangerLevel,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -344,7 +344,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_a718f3fde1e8b012, []int{3} + return fileDescriptor_ws_f46b8824c5dbc584, []int{3} } func (m *UserInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_UserInfo.Unmarshal(m, b) @@ -378,9 +378,9 @@ func (m *UserInfo) GetNickname() string { return "" } -func (m *UserInfo) GetFaceUrl() string { +func (m *UserInfo) GetFaceURL() string { if m != nil { - return m.FaceUrl + return m.FaceURL } return "" } @@ -435,13 +435,13 @@ func (m *UserInfo) GetAppMangerLevel() int32 { } type FriendInfo struct { - OwnerUserID string `protobuf:"bytes,1,opt,name=OwnerUserID" json:"OwnerUserID,omitempty"` - Remark string `protobuf:"bytes,2,opt,name=Remark" json:"Remark,omitempty"` - CreateTime uint32 `protobuf:"varint,3,opt,name=CreateTime" json:"CreateTime,omitempty"` - FriendUser *UserInfo `protobuf:"bytes,4,opt,name=FriendUser" json:"FriendUser,omitempty"` - AddSource int32 `protobuf:"varint,5,opt,name=AddSource" json:"AddSource,omitempty"` - OperatorUserID string `protobuf:"bytes,6,opt,name=OperatorUserID" json:"OperatorUserID,omitempty"` - Ex string `protobuf:"bytes,7,opt,name=Ex" json:"Ex,omitempty"` + OwnerUserID string `protobuf:"bytes,1,opt,name=ownerUserID" json:"ownerUserID,omitempty"` + Remark string `protobuf:"bytes,2,opt,name=remark" json:"remark,omitempty"` + CreateTime uint32 `protobuf:"varint,3,opt,name=createTime" json:"createTime,omitempty"` + FriendUser *UserInfo `protobuf:"bytes,4,opt,name=friendUser" json:"friendUser,omitempty"` + AddSource int32 `protobuf:"varint,5,opt,name=addSource" json:"addSource,omitempty"` + OperatorUserID string `protobuf:"bytes,6,opt,name=operatorUserID" json:"operatorUserID,omitempty"` + Ex string `protobuf:"bytes,7,opt,name=ex" json:"ex,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -451,7 +451,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_a718f3fde1e8b012, []int{4} + return fileDescriptor_ws_f46b8824c5dbc584, []int{4} } func (m *FriendInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FriendInfo.Unmarshal(m, b) @@ -521,12 +521,12 @@ func (m *FriendInfo) GetEx() string { } type BlackInfo struct { - OwnerUserID string `protobuf:"bytes,1,opt,name=OwnerUserID" json:"OwnerUserID,omitempty"` - CreateTime uint32 `protobuf:"varint,2,opt,name=CreateTime" json:"CreateTime,omitempty"` - BlackUserInfo *PublicUserInfo `protobuf:"bytes,3,opt,name=BlackUserInfo" json:"BlackUserInfo,omitempty"` - AddSource int32 `protobuf:"varint,4,opt,name=AddSource" json:"AddSource,omitempty"` - OperatorUserID string `protobuf:"bytes,5,opt,name=OperatorUserID" json:"OperatorUserID,omitempty"` - Ex string `protobuf:"bytes,6,opt,name=Ex" json:"Ex,omitempty"` + OwnerUserID string `protobuf:"bytes,1,opt,name=ownerUserID" json:"ownerUserID,omitempty"` + CreateTime uint32 `protobuf:"varint,2,opt,name=createTime" json:"createTime,omitempty"` + BlackUserInfo *PublicUserInfo `protobuf:"bytes,3,opt,name=blackUserInfo" json:"blackUserInfo,omitempty"` + AddSource int32 `protobuf:"varint,4,opt,name=addSource" json:"addSource,omitempty"` + OperatorUserID string `protobuf:"bytes,5,opt,name=operatorUserID" json:"operatorUserID,omitempty"` + Ex string `protobuf:"bytes,6,opt,name=ex" json:"ex,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -536,7 +536,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_a718f3fde1e8b012, []int{5} + return fileDescriptor_ws_f46b8824c5dbc584, []int{5} } func (m *BlackInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_BlackInfo.Unmarshal(m, b) @@ -599,15 +599,15 @@ func (m *BlackInfo) GetEx() string { } type GroupRequest struct { - UserID string `protobuf:"bytes,1,opt,name=UserID" json:"UserID,omitempty"` - GroupID string `protobuf:"bytes,2,opt,name=GroupID" json:"GroupID,omitempty"` - HandleResult string `protobuf:"bytes,3,opt,name=HandleResult" json:"HandleResult,omitempty"` - ReqMsg string `protobuf:"bytes,4,opt,name=ReqMsg" json:"ReqMsg,omitempty"` - HandleMsg string `protobuf:"bytes,5,opt,name=HandleMsg" json:"HandleMsg,omitempty"` - ReqTime uint32 `protobuf:"varint,6,opt,name=ReqTime" json:"ReqTime,omitempty"` - HandleUserID string `protobuf:"bytes,7,opt,name=HandleUserID" json:"HandleUserID,omitempty"` - HandleTime uint32 `protobuf:"varint,8,opt,name=HandleTime" json:"HandleTime,omitempty"` - Ex string `protobuf:"bytes,9,opt,name=Ex" json:"Ex,omitempty"` + UserID string `protobuf:"bytes,1,opt,name=userID" json:"userID,omitempty"` + GroupID string `protobuf:"bytes,2,opt,name=groupID" json:"groupID,omitempty"` + HandleResult string `protobuf:"bytes,3,opt,name=handleResult" json:"handleResult,omitempty"` + ReqMsg string `protobuf:"bytes,4,opt,name=reqMsg" json:"reqMsg,omitempty"` + HandleMsg string `protobuf:"bytes,5,opt,name=handleMsg" json:"handleMsg,omitempty"` + ReqTime uint32 `protobuf:"varint,6,opt,name=reqTime" json:"reqTime,omitempty"` + HandleUserID string `protobuf:"bytes,7,opt,name=handleUserID" json:"handleUserID,omitempty"` + HandleTime uint32 `protobuf:"varint,8,opt,name=handleTime" json:"handleTime,omitempty"` + Ex string `protobuf:"bytes,9,opt,name=ex" json:"ex,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -617,7 +617,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_a718f3fde1e8b012, []int{6} + return fileDescriptor_ws_f46b8824c5dbc584, []int{6} } func (m *GroupRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupRequest.Unmarshal(m, b) @@ -701,15 +701,15 @@ func (m *GroupRequest) GetEx() string { } type FriendRequest struct { - FromUserID string `protobuf:"bytes,1,opt,name=FromUserID" json:"FromUserID,omitempty"` - ToUserID string `protobuf:"bytes,2,opt,name=ToUserID" json:"ToUserID,omitempty"` - HandleResult int32 `protobuf:"varint,3,opt,name=HandleResult" json:"HandleResult,omitempty"` - ReqMsg string `protobuf:"bytes,4,opt,name=ReqMsg" json:"ReqMsg,omitempty"` - CreateTime uint32 `protobuf:"varint,5,opt,name=CreateTime" json:"CreateTime,omitempty"` - HandlerUserID string `protobuf:"bytes,6,opt,name=HandlerUserID" json:"HandlerUserID,omitempty"` - HandleMsg string `protobuf:"bytes,7,opt,name=HandleMsg" json:"HandleMsg,omitempty"` - HandleTime uint32 `protobuf:"varint,8,opt,name=HandleTime" json:"HandleTime,omitempty"` - Ex string `protobuf:"bytes,9,opt,name=Ex" json:"Ex,omitempty"` + FromUserID string `protobuf:"bytes,1,opt,name=fromUserID" json:"fromUserID,omitempty"` + ToUserID string `protobuf:"bytes,2,opt,name=toUserID" json:"toUserID,omitempty"` + HandleResult int32 `protobuf:"varint,3,opt,name=handleResult" json:"handleResult,omitempty"` + ReqMsg string `protobuf:"bytes,4,opt,name=reqMsg" json:"reqMsg,omitempty"` + CreateTime uint32 `protobuf:"varint,5,opt,name=createTime" json:"createTime,omitempty"` + HandlerUserID string `protobuf:"bytes,6,opt,name=handlerUserID" json:"handlerUserID,omitempty"` + HandleMsg string `protobuf:"bytes,7,opt,name=handleMsg" json:"handleMsg,omitempty"` + HandleTime uint32 `protobuf:"varint,8,opt,name=handleTime" json:"handleTime,omitempty"` + Ex string `protobuf:"bytes,9,opt,name=ex" json:"ex,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -719,7 +719,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_a718f3fde1e8b012, []int{7} + return fileDescriptor_ws_f46b8824c5dbc584, []int{7} } func (m *FriendRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FriendRequest.Unmarshal(m, b) @@ -818,7 +818,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_a718f3fde1e8b012, []int{8} + return fileDescriptor_ws_f46b8824c5dbc584, []int{8} } func (m *PullMessageBySeqListResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_PullMessageBySeqListResp.Unmarshal(m, b) @@ -893,7 +893,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_a718f3fde1e8b012, []int{9} + return fileDescriptor_ws_f46b8824c5dbc584, []int{9} } func (m *PullMessageBySeqListReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_PullMessageBySeqListReq.Unmarshal(m, b) @@ -948,7 +948,7 @@ func (m *PullMessageReq) Reset() { *m = PullMessageReq{} } func (m *PullMessageReq) String() string { return proto.CompactTextString(m) } func (*PullMessageReq) ProtoMessage() {} func (*PullMessageReq) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_a718f3fde1e8b012, []int{10} + return fileDescriptor_ws_f46b8824c5dbc584, []int{10} } func (m *PullMessageReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_PullMessageReq.Unmarshal(m, b) @@ -1012,7 +1012,7 @@ func (m *PullMessageResp) Reset() { *m = PullMessageResp{} } func (m *PullMessageResp) String() string { return proto.CompactTextString(m) } func (*PullMessageResp) ProtoMessage() {} func (*PullMessageResp) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_a718f3fde1e8b012, []int{11} + return fileDescriptor_ws_f46b8824c5dbc584, []int{11} } func (m *PullMessageResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_PullMessageResp.Unmarshal(m, b) @@ -1084,7 +1084,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_a718f3fde1e8b012, []int{12} + return fileDescriptor_ws_f46b8824c5dbc584, []int{12} } func (m *GetMaxAndMinSeqReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetMaxAndMinSeqReq.Unmarshal(m, b) @@ -1116,7 +1116,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_a718f3fde1e8b012, []int{13} + return fileDescriptor_ws_f46b8824c5dbc584, []int{13} } func (m *GetMaxAndMinSeqResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetMaxAndMinSeqResp.Unmarshal(m, b) @@ -1164,7 +1164,7 @@ func (m *GatherFormat) Reset() { *m = GatherFormat{} } func (m *GatherFormat) String() string { return proto.CompactTextString(m) } func (*GatherFormat) ProtoMessage() {} func (*GatherFormat) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_a718f3fde1e8b012, []int{14} + return fileDescriptor_ws_f46b8824c5dbc584, []int{14} } func (m *GatherFormat) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GatherFormat.Unmarshal(m, b) @@ -1199,8 +1199,8 @@ func (m *GatherFormat) GetList() []*MsgData { } type UserSendMsgResp struct { - ServerMsgID string `protobuf:"bytes,1,opt,name=ServerMsgID" json:"ServerMsgID,omitempty"` - ClientMsgID string `protobuf:"bytes,2,opt,name=ClientMsgID" json:"ClientMsgID,omitempty"` + ServerMsgID string `protobuf:"bytes,1,opt,name=serverMsgID" json:"serverMsgID,omitempty"` + ClientMsgID string `protobuf:"bytes,2,opt,name=clientMsgID" json:"clientMsgID,omitempty"` SendTime int64 `protobuf:"varint,3,opt,name=sendTime" json:"sendTime,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` @@ -1211,7 +1211,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_a718f3fde1e8b012, []int{15} + return fileDescriptor_ws_f46b8824c5dbc584, []int{15} } func (m *UserSendMsgResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_UserSendMsgResp.Unmarshal(m, b) @@ -1269,7 +1269,7 @@ type MsgData struct { Seq int64 `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"` - Options map[string]bool `protobuf:"bytes,17,rep,name=Options" json:"Options,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` + Options map[string]bool `protobuf:"bytes,17,rep,name=options" json:"options,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` OfflinePushInfo *OfflinePushInfo `protobuf:"bytes,18,opt,name=offlinePushInfo" json:"offlinePushInfo,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` @@ -1280,7 +1280,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_a718f3fde1e8b012, []int{16} + return fileDescriptor_ws_f46b8824c5dbc584, []int{16} } func (m *MsgData) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MsgData.Unmarshal(m, b) @@ -1427,9 +1427,9 @@ func (m *MsgData) GetOfflinePushInfo() *OfflinePushInfo { } 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"` - Ex string `protobuf:"bytes,3,opt,name=Ex" json:"Ex,omitempty"` + Title string `protobuf:"bytes,1,opt,name=title" json:"title,omitempty"` + Desc string `protobuf:"bytes,2,opt,name=desc" json:"desc,omitempty"` + Ex string `protobuf:"bytes,3,opt,name=ex" json:"ex,omitempty"` IOSPushSound string `protobuf:"bytes,4,opt,name=iOSPushSound" json:"iOSPushSound,omitempty"` IOSBadgeCount bool `protobuf:"varint,5,opt,name=iOSBadgeCount" json:"iOSBadgeCount,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` @@ -1441,7 +1441,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_a718f3fde1e8b012, []int{17} + return fileDescriptor_ws_f46b8824c5dbc584, []int{17} } func (m *OfflinePushInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_OfflinePushInfo.Unmarshal(m, b) @@ -1497,8 +1497,8 @@ func (m *OfflinePushInfo) GetIOSBadgeCount() bool { } type TipsComm struct { - Detail []byte `protobuf:"bytes,1,opt,name=Detail,proto3" json:"Detail,omitempty"` - DefaultTips string `protobuf:"bytes,2,opt,name=DefaultTips" json:"DefaultTips,omitempty"` + Detail []byte `protobuf:"bytes,1,opt,name=detail,proto3" json:"detail,omitempty"` + DefaultTips string `protobuf:"bytes,2,opt,name=defaultTips" json:"defaultTips,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -1508,7 +1508,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_a718f3fde1e8b012, []int{18} + return fileDescriptor_ws_f46b8824c5dbc584, []int{18} } func (m *TipsComm) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_TipsComm.Unmarshal(m, b) @@ -1545,9 +1545,9 @@ func (m *TipsComm) GetDefaultTips() string { // ////////////////////group///////////////////// // Actively join the group type MemberEnterTips struct { - Group *GroupInfo `protobuf:"bytes,1,opt,name=Group" json:"Group,omitempty"` - EntrantUser *GroupMemberFullInfo `protobuf:"bytes,2,opt,name=EntrantUser" json:"EntrantUser,omitempty"` - OperationTime int64 `protobuf:"varint,3,opt,name=OperationTime" json:"OperationTime,omitempty"` + Group *GroupInfo `protobuf:"bytes,1,opt,name=group" json:"group,omitempty"` + EntrantUser *GroupMemberFullInfo `protobuf:"bytes,2,opt,name=entrantUser" json:"entrantUser,omitempty"` + OperationTime int64 `protobuf:"varint,3,opt,name=operationTime" json:"operationTime,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -1557,7 +1557,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_a718f3fde1e8b012, []int{19} + return fileDescriptor_ws_f46b8824c5dbc584, []int{19} } func (m *MemberEnterTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MemberEnterTips.Unmarshal(m, b) @@ -1600,9 +1600,9 @@ func (m *MemberEnterTips) GetOperationTime() int64 { // Actively leave the group type MemberLeaveTips struct { - Group *GroupInfo `protobuf:"bytes,1,opt,name=Group" json:"Group,omitempty"` - LeaverUser *GroupMemberFullInfo `protobuf:"bytes,2,opt,name=LeaverUser" json:"LeaverUser,omitempty"` - OperationTime int64 `protobuf:"varint,3,opt,name=OperationTime" json:"OperationTime,omitempty"` + Group *GroupInfo `protobuf:"bytes,1,opt,name=group" json:"group,omitempty"` + LeaverUser *GroupMemberFullInfo `protobuf:"bytes,2,opt,name=leaverUser" json:"leaverUser,omitempty"` + OperationTime int64 `protobuf:"varint,3,opt,name=operationTime" json:"operationTime,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -1612,7 +1612,7 @@ func (m *MemberLeaveTips) Reset() { *m = MemberLeaveTips{} } func (m *MemberLeaveTips) String() string { return proto.CompactTextString(m) } func (*MemberLeaveTips) ProtoMessage() {} func (*MemberLeaveTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_a718f3fde1e8b012, []int{20} + return fileDescriptor_ws_f46b8824c5dbc584, []int{20} } func (m *MemberLeaveTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MemberLeaveTips.Unmarshal(m, b) @@ -1654,10 +1654,10 @@ func (m *MemberLeaveTips) GetOperationTime() int64 { } type MemberInvitedTips struct { - Group *GroupInfo `protobuf:"bytes,1,opt,name=Group" json:"Group,omitempty"` - OpUser *GroupMemberFullInfo `protobuf:"bytes,2,opt,name=OpUser" json:"OpUser,omitempty"` - InvitedUserList []*GroupMemberFullInfo `protobuf:"bytes,3,rep,name=InvitedUserList" json:"InvitedUserList,omitempty"` - OperationTime int64 `protobuf:"varint,4,opt,name=OperationTime" json:"OperationTime,omitempty"` + Group *GroupInfo `protobuf:"bytes,1,opt,name=group" json:"group,omitempty"` + OpUser *GroupMemberFullInfo `protobuf:"bytes,2,opt,name=opUser" json:"opUser,omitempty"` + InvitedUserList []*GroupMemberFullInfo `protobuf:"bytes,3,rep,name=invitedUserList" json:"invitedUserList,omitempty"` + OperationTime int64 `protobuf:"varint,4,opt,name=operationTime" json:"operationTime,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -1667,7 +1667,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_a718f3fde1e8b012, []int{21} + return fileDescriptor_ws_f46b8824c5dbc584, []int{21} } func (m *MemberInvitedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MemberInvitedTips.Unmarshal(m, b) @@ -1716,10 +1716,10 @@ func (m *MemberInvitedTips) GetOperationTime() int64 { } type MemberKickedTips struct { - Group *GroupInfo `protobuf:"bytes,1,opt,name=Group" json:"Group,omitempty"` - OpUser *GroupMemberFullInfo `protobuf:"bytes,2,opt,name=OpUser" json:"OpUser,omitempty"` - KickedUserList []*GroupMemberFullInfo `protobuf:"bytes,3,rep,name=KickedUserList" json:"KickedUserList,omitempty"` - OperationTime int64 `protobuf:"varint,4,opt,name=OperationTime" json:"OperationTime,omitempty"` + Group *GroupInfo `protobuf:"bytes,1,opt,name=group" json:"group,omitempty"` + OpUser *GroupMemberFullInfo `protobuf:"bytes,2,opt,name=opUser" json:"opUser,omitempty"` + KickedUserList []*GroupMemberFullInfo `protobuf:"bytes,3,rep,name=kickedUserList" json:"kickedUserList,omitempty"` + OperationTime int64 `protobuf:"varint,4,opt,name=operationTime" json:"operationTime,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -1729,7 +1729,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_a718f3fde1e8b012, []int{22} + return fileDescriptor_ws_f46b8824c5dbc584, []int{22} } func (m *MemberKickedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MemberKickedTips.Unmarshal(m, b) @@ -1778,11 +1778,11 @@ func (m *MemberKickedTips) GetOperationTime() int64 { } type MemberInfoChangedTips struct { - ChangeType int32 `protobuf:"varint,1,opt,name=ChangeType" json:"ChangeType,omitempty"` - OpUser *GroupMemberFullInfo `protobuf:"bytes,2,opt,name=OpUser" json:"OpUser,omitempty"` - FinalInfo *GroupMemberFullInfo `protobuf:"bytes,3,opt,name=FinalInfo" json:"FinalInfo,omitempty"` - MuteTime int64 `protobuf:"varint,4,opt,name=MuteTime" json:"MuteTime,omitempty"` - Group *GroupInfo `protobuf:"bytes,5,opt,name=Group" json:"Group,omitempty"` + ChangeType int32 `protobuf:"varint,1,opt,name=changeType" json:"changeType,omitempty"` + OpUser *GroupMemberFullInfo `protobuf:"bytes,2,opt,name=opUser" json:"opUser,omitempty"` + FinalInfo *GroupMemberFullInfo `protobuf:"bytes,3,opt,name=finalInfo" json:"finalInfo,omitempty"` + MuteTime int64 `protobuf:"varint,4,opt,name=muteTime" json:"muteTime,omitempty"` + Group *GroupInfo `protobuf:"bytes,5,opt,name=group" json:"group,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -1792,7 +1792,7 @@ func (m *MemberInfoChangedTips) Reset() { *m = MemberInfoChangedTips{} } func (m *MemberInfoChangedTips) String() string { return proto.CompactTextString(m) } func (*MemberInfoChangedTips) ProtoMessage() {} func (*MemberInfoChangedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_a718f3fde1e8b012, []int{23} + return fileDescriptor_ws_f46b8824c5dbc584, []int{23} } func (m *MemberInfoChangedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MemberInfoChangedTips.Unmarshal(m, b) @@ -1848,10 +1848,10 @@ func (m *MemberInfoChangedTips) GetGroup() *GroupInfo { } type GroupCreatedTips struct { - Group *GroupInfo `protobuf:"bytes,1,opt,name=Group" json:"Group,omitempty"` - Creator *GroupMemberFullInfo `protobuf:"bytes,2,opt,name=Creator" json:"Creator,omitempty"` - MemberList []*GroupMemberFullInfo `protobuf:"bytes,3,rep,name=MemberList" json:"MemberList,omitempty"` - OperationTime int64 `protobuf:"varint,4,opt,name=OperationTime" json:"OperationTime,omitempty"` + Group *GroupInfo `protobuf:"bytes,1,opt,name=group" json:"group,omitempty"` + Creator *GroupMemberFullInfo `protobuf:"bytes,2,opt,name=creator" json:"creator,omitempty"` + MemberList []*GroupMemberFullInfo `protobuf:"bytes,3,rep,name=memberList" json:"memberList,omitempty"` + OperationTime int64 `protobuf:"varint,4,opt,name=operationTime" json:"operationTime,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -1861,7 +1861,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_a718f3fde1e8b012, []int{24} + return fileDescriptor_ws_f46b8824c5dbc584, []int{24} } func (m *GroupCreatedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupCreatedTips.Unmarshal(m, b) @@ -1910,9 +1910,9 @@ func (m *GroupCreatedTips) GetOperationTime() int64 { } type GroupInfoChangedTips struct { - ChangedType int32 `protobuf:"varint,1,opt,name=ChangedType" json:"ChangedType,omitempty"` - Group *GroupInfo `protobuf:"bytes,2,opt,name=Group" json:"Group,omitempty"` - OpUser *GroupMemberFullInfo `protobuf:"bytes,3,opt,name=OpUser" json:"OpUser,omitempty"` + ChangedType int32 `protobuf:"varint,1,opt,name=changedType" json:"changedType,omitempty"` + Group *GroupInfo `protobuf:"bytes,2,opt,name=group" json:"group,omitempty"` + OpUser *GroupMemberFullInfo `protobuf:"bytes,3,opt,name=opUser" json:"opUser,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -1922,7 +1922,7 @@ func (m *GroupInfoChangedTips) Reset() { *m = GroupInfoChangedTips{} } func (m *GroupInfoChangedTips) String() string { return proto.CompactTextString(m) } func (*GroupInfoChangedTips) ProtoMessage() {} func (*GroupInfoChangedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_a718f3fde1e8b012, []int{25} + return fileDescriptor_ws_f46b8824c5dbc584, []int{25} } func (m *GroupInfoChangedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupInfoChangedTips.Unmarshal(m, b) @@ -1964,9 +1964,9 @@ func (m *GroupInfoChangedTips) GetOpUser() *GroupMemberFullInfo { } type JoinGroupApplicationTips struct { - Group *GroupInfo `protobuf:"bytes,1,opt,name=Group" json:"Group,omitempty"` - Applicant *PublicUserInfo `protobuf:"bytes,2,opt,name=Applicant" json:"Applicant,omitempty"` - Reason string `protobuf:"bytes,3,opt,name=Reason" json:"Reason,omitempty"` + Group *GroupInfo `protobuf:"bytes,1,opt,name=group" json:"group,omitempty"` + Applicant *PublicUserInfo `protobuf:"bytes,2,opt,name=applicant" json:"applicant,omitempty"` + Reason string `protobuf:"bytes,3,opt,name=reason" json:"reason,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -1976,7 +1976,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_a718f3fde1e8b012, []int{26} + return fileDescriptor_ws_f46b8824c5dbc584, []int{26} } func (m *JoinGroupApplicationTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_JoinGroupApplicationTips.Unmarshal(m, b) @@ -2018,10 +2018,10 @@ func (m *JoinGroupApplicationTips) GetReason() string { } type ApplicationProcessedTips struct { - Group *GroupInfo `protobuf:"bytes,1,opt,name=Group" json:"Group,omitempty"` - OpUser *GroupMemberFullInfo `protobuf:"bytes,2,opt,name=OpUser" json:"OpUser,omitempty"` - Result int32 `protobuf:"varint,3,opt,name=Result" json:"Result,omitempty"` - Reason string `protobuf:"bytes,4,opt,name=Reason" json:"Reason,omitempty"` + Group *GroupInfo `protobuf:"bytes,1,opt,name=group" json:"group,omitempty"` + OpUser *GroupMemberFullInfo `protobuf:"bytes,2,opt,name=opUser" json:"opUser,omitempty"` + Result int32 `protobuf:"varint,3,opt,name=result" json:"result,omitempty"` + Reason string `protobuf:"bytes,4,opt,name=reason" json:"reason,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -2031,7 +2031,7 @@ func (m *ApplicationProcessedTips) Reset() { *m = ApplicationProcessedTi func (m *ApplicationProcessedTips) String() string { return proto.CompactTextString(m) } func (*ApplicationProcessedTips) ProtoMessage() {} func (*ApplicationProcessedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_a718f3fde1e8b012, []int{27} + return fileDescriptor_ws_f46b8824c5dbc584, []int{27} } func (m *ApplicationProcessedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ApplicationProcessedTips.Unmarshal(m, b) @@ -2080,9 +2080,9 @@ func (m *ApplicationProcessedTips) GetReason() string { } type FriendApplication struct { - AddTime int64 `protobuf:"varint,1,opt,name=AddTime" json:"AddTime,omitempty"` - AddSource string `protobuf:"bytes,2,opt,name=AddSource" json:"AddSource,omitempty"` - AddWording string `protobuf:"bytes,3,opt,name=AddWording" json:"AddWording,omitempty"` + AddTime int64 `protobuf:"varint,1,opt,name=addTime" json:"addTime,omitempty"` + AddSource string `protobuf:"bytes,2,opt,name=addSource" json:"addSource,omitempty"` + AddWording string `protobuf:"bytes,3,opt,name=addWording" json:"addWording,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -2092,7 +2092,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_a718f3fde1e8b012, []int{28} + return fileDescriptor_ws_f46b8824c5dbc584, []int{28} } func (m *FriendApplication) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FriendApplication.Unmarshal(m, b) @@ -2134,8 +2134,8 @@ func (m *FriendApplication) GetAddWording() string { } type FromToUserID struct { - FromUserID string `protobuf:"bytes,1,opt,name=FromUserID" json:"FromUserID,omitempty"` - ToUserID string `protobuf:"bytes,2,opt,name=ToUserID" json:"ToUserID,omitempty"` + FromUserID string `protobuf:"bytes,1,opt,name=fromUserID" json:"fromUserID,omitempty"` + ToUserID string `protobuf:"bytes,2,opt,name=toUserID" json:"toUserID,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -2145,7 +2145,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_a718f3fde1e8b012, []int{29} + return fileDescriptor_ws_f46b8824c5dbc584, []int{29} } func (m *FromToUserID) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FromToUserID.Unmarshal(m, b) @@ -2181,7 +2181,7 @@ func (m *FromToUserID) GetToUserID() string { // FromUserID apply to add ToUserID type FriendApplicationAddedTips struct { - FromToUserID *FromToUserID `protobuf:"bytes,1,opt,name=FromToUserID" json:"FromToUserID,omitempty"` + FromToUserID *FromToUserID `protobuf:"bytes,1,opt,name=fromToUserID" json:"fromToUserID,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -2191,7 +2191,7 @@ func (m *FriendApplicationAddedTips) Reset() { *m = FriendApplicationAdd func (m *FriendApplicationAddedTips) String() string { return proto.CompactTextString(m) } func (*FriendApplicationAddedTips) ProtoMessage() {} func (*FriendApplicationAddedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_a718f3fde1e8b012, []int{30} + return fileDescriptor_ws_f46b8824c5dbc584, []int{30} } func (m *FriendApplicationAddedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FriendApplicationAddedTips.Unmarshal(m, b) @@ -2220,7 +2220,7 @@ func (m *FriendApplicationAddedTips) GetFromToUserID() *FromToUserID { // FromUserID accept or reject ToUserID type FriendApplicationProcessedTips struct { - FromToUserID *FromToUserID `protobuf:"bytes,1,opt,name=FromToUserID" json:"FromToUserID,omitempty"` + FromToUserID *FromToUserID `protobuf:"bytes,1,opt,name=fromToUserID" json:"fromToUserID,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -2230,7 +2230,7 @@ func (m *FriendApplicationProcessedTips) Reset() { *m = FriendApplicatio func (m *FriendApplicationProcessedTips) String() string { return proto.CompactTextString(m) } func (*FriendApplicationProcessedTips) ProtoMessage() {} func (*FriendApplicationProcessedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_a718f3fde1e8b012, []int{31} + return fileDescriptor_ws_f46b8824c5dbc584, []int{31} } func (m *FriendApplicationProcessedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FriendApplicationProcessedTips.Unmarshal(m, b) @@ -2259,9 +2259,9 @@ func (m *FriendApplicationProcessedTips) GetFromToUserID() *FromToUserID { // FromUserID Added a friend ToUserID type FriendAddedTips struct { - Friend *FriendInfo `protobuf:"bytes,1,opt,name=Friend" json:"Friend,omitempty"` - OperationTime int64 `protobuf:"varint,2,opt,name=OperationTime" json:"OperationTime,omitempty"` - OpUser *PublicUserInfo `protobuf:"bytes,3,opt,name=OpUser" json:"OpUser,omitempty"` + Friend *FriendInfo `protobuf:"bytes,1,opt,name=friend" json:"friend,omitempty"` + OperationTime int64 `protobuf:"varint,2,opt,name=operationTime" json:"operationTime,omitempty"` + OpUser *PublicUserInfo `protobuf:"bytes,3,opt,name=opUser" json:"opUser,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -2271,7 +2271,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_a718f3fde1e8b012, []int{32} + return fileDescriptor_ws_f46b8824c5dbc584, []int{32} } func (m *FriendAddedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FriendAddedTips.Unmarshal(m, b) @@ -2314,7 +2314,7 @@ func (m *FriendAddedTips) GetOpUser() *PublicUserInfo { // FromUserID deleted a friend ToUserID type FriendDeletedTips struct { - FromToUserID *FromToUserID `protobuf:"bytes,1,opt,name=FromToUserID" json:"FromToUserID,omitempty"` + FromToUserID *FromToUserID `protobuf:"bytes,1,opt,name=fromToUserID" json:"fromToUserID,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -2324,7 +2324,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_a718f3fde1e8b012, []int{33} + return fileDescriptor_ws_f46b8824c5dbc584, []int{33} } func (m *FriendDeletedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FriendDeletedTips.Unmarshal(m, b) @@ -2352,7 +2352,7 @@ func (m *FriendDeletedTips) GetFromToUserID() *FromToUserID { } type BlackAddedTips struct { - FromToUserID *FromToUserID `protobuf:"bytes,1,opt,name=FromToUserID" json:"FromToUserID,omitempty"` + FromToUserID *FromToUserID `protobuf:"bytes,1,opt,name=fromToUserID" json:"fromToUserID,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -2362,7 +2362,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_a718f3fde1e8b012, []int{34} + return fileDescriptor_ws_f46b8824c5dbc584, []int{34} } func (m *BlackAddedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_BlackAddedTips.Unmarshal(m, b) @@ -2390,7 +2390,7 @@ func (m *BlackAddedTips) GetFromToUserID() *FromToUserID { } type BlackDeletedTips struct { - FromToUserID *FromToUserID `protobuf:"bytes,1,opt,name=FromToUserID" json:"FromToUserID,omitempty"` + FromToUserID *FromToUserID `protobuf:"bytes,1,opt,name=fromToUserID" json:"fromToUserID,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -2400,7 +2400,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_a718f3fde1e8b012, []int{35} + return fileDescriptor_ws_f46b8824c5dbc584, []int{35} } func (m *BlackDeletedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_BlackDeletedTips.Unmarshal(m, b) @@ -2428,7 +2428,7 @@ func (m *BlackDeletedTips) GetFromToUserID() *FromToUserID { } type FriendInfoChangedTips struct { - FromToUserID *FromToUserID `protobuf:"bytes,1,opt,name=FromToUserID" json:"FromToUserID,omitempty"` + FromToUserID *FromToUserID `protobuf:"bytes,1,opt,name=fromToUserID" json:"fromToUserID,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -2438,7 +2438,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_a718f3fde1e8b012, []int{36} + return fileDescriptor_ws_f46b8824c5dbc584, []int{36} } func (m *FriendInfoChangedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FriendInfoChangedTips.Unmarshal(m, b) @@ -2467,7 +2467,7 @@ func (m *FriendInfoChangedTips) GetFromToUserID() *FromToUserID { // ////////////////////user///////////////////// type SelfInfoUpdatedTips struct { - UserID string `protobuf:"bytes,1,opt,name=UserID" json:"UserID,omitempty"` + UserID string `protobuf:"bytes,1,opt,name=userID" json:"userID,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -2477,7 +2477,7 @@ func (m *SelfInfoUpdatedTips) Reset() { *m = SelfInfoUpdatedTips{} } func (m *SelfInfoUpdatedTips) String() string { return proto.CompactTextString(m) } func (*SelfInfoUpdatedTips) ProtoMessage() {} func (*SelfInfoUpdatedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_a718f3fde1e8b012, []int{37} + return fileDescriptor_ws_f46b8824c5dbc584, []int{37} } func (m *SelfInfoUpdatedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SelfInfoUpdatedTips.Unmarshal(m, b) @@ -2546,129 +2546,128 @@ func init() { proto.RegisterType((*SelfInfoUpdatedTips)(nil), "open_im_sdk.SelfInfoUpdatedTips") } -func init() { proto.RegisterFile("sdk_ws/ws.proto", fileDescriptor_ws_a718f3fde1e8b012) } - -var fileDescriptor_ws_a718f3fde1e8b012 = []byte{ - // 1921 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe4, 0x59, 0xcd, 0x8f, 0x1b, 0x49, - 0x15, 0x57, 0xb7, 0xc7, 0xf6, 0xf8, 0xd9, 0x33, 0x9e, 0x74, 0x92, 0xd9, 0x26, 0xac, 0x22, 0xd3, - 0x5a, 0xa1, 0x11, 0x82, 0xac, 0x94, 0x15, 0xd2, 0x12, 0xb4, 0xc0, 0x7c, 0xe6, 0x83, 0x38, 0x1e, - 0xca, 0x13, 0x38, 0x70, 0x88, 0x3a, 0xee, 0xb2, 0xa7, 0x35, 0xed, 0x6a, 0xbb, 0x3f, 0x26, 0xc9, - 0x85, 0x33, 0xff, 0x00, 0x5c, 0x56, 0x20, 0x6e, 0x88, 0x2b, 0x07, 0xf8, 0x87, 0x10, 0x07, 0x24, - 0x4e, 0x88, 0x13, 0x1c, 0xd0, 0x7b, 0x55, 0xdd, 0x5d, 0x65, 0x3b, 0x93, 0x99, 0x4c, 0x94, 0x0b, - 0x37, 0xbf, 0x5f, 0xbf, 0x7a, 0xdf, 0xf5, 0xea, 0x55, 0x19, 0xba, 0x69, 0x70, 0xf6, 0xe2, 0x55, - 0xfa, 0xf9, 0xab, 0xf4, 0xde, 0x2c, 0x89, 0xb3, 0xd8, 0x69, 0xc7, 0x33, 0x2e, 0x5e, 0x84, 0xd3, - 0x17, 0x69, 0x70, 0xe6, 0xfd, 0xdb, 0x86, 0xd6, 0xc3, 0x24, 0xce, 0x67, 0x8f, 0xc5, 0x38, 0x76, - 0x5c, 0x68, 0x4a, 0xe2, 0xc0, 0xb5, 0x7a, 0xd6, 0x4e, 0x8b, 0x15, 0xa4, 0xf3, 0xa9, 0x62, 0x7b, - 0xe6, 0x4f, 0xb9, 0x6b, 0xd3, 0xb7, 0x0a, 0x70, 0x3c, 0xe8, 0x3c, 0x8b, 0xb3, 0x70, 0x1c, 0x8e, - 0xfc, 0x2c, 0x8c, 0x85, 0x5b, 0x23, 0x06, 0x03, 0x43, 0x9e, 0xc7, 0x22, 0x4b, 0xe2, 0x20, 0x1f, - 0x11, 0xcf, 0x9a, 0xe4, 0xd1, 0x31, 0xd4, 0x7f, 0xe4, 0x8f, 0xf8, 0xf3, 0x24, 0x72, 0xeb, 0x52, - 0xbf, 0x22, 0x9d, 0x1e, 0xb4, 0x07, 0xaf, 0x04, 0x4f, 0x9e, 0xa7, 0x3c, 0x79, 0x7c, 0xe0, 0x36, - 0xe8, 0xab, 0x0e, 0x39, 0x77, 0x01, 0xf6, 0x13, 0xee, 0x67, 0xfc, 0x24, 0x9c, 0x72, 0xb7, 0xd9, - 0xb3, 0x76, 0x36, 0x98, 0x86, 0xa0, 0x84, 0x3e, 0x9f, 0xbe, 0xe4, 0xc9, 0x7e, 0x9c, 0x8b, 0xcc, - 0x5d, 0x27, 0x06, 0x1d, 0x72, 0x36, 0xc1, 0x3e, 0x7c, 0xed, 0xb6, 0x48, 0xb4, 0x7d, 0xf8, 0xda, - 0xd9, 0x86, 0xc6, 0x30, 0xf3, 0xb3, 0x3c, 0x75, 0xa1, 0x67, 0xed, 0xd4, 0x99, 0xa2, 0x9c, 0xcf, - 0x60, 0x83, 0xe4, 0xc6, 0x85, 0x35, 0x6d, 0x5a, 0x62, 0x82, 0x65, 0xc4, 0x4e, 0xde, 0xcc, 0xb8, - 0xdb, 0x21, 0x01, 0x15, 0xe0, 0xfd, 0xd5, 0x86, 0x9b, 0x44, 0x49, 0x03, 0x8e, 0xf2, 0x28, 0x7a, - 0x47, 0x06, 0xb6, 0xa1, 0xa1, 0xd4, 0xc9, 0xf0, 0x37, 0x2a, 0x3d, 0x49, 0x1c, 0xf1, 0xa7, 0xfc, - 0x9c, 0x47, 0x14, 0xf8, 0x3a, 0xab, 0x00, 0xe7, 0x0e, 0xac, 0x3f, 0x89, 0x43, 0x41, 0x31, 0xc1, - 0x88, 0xd7, 0x58, 0x49, 0xe3, 0xb7, 0x67, 0xe1, 0xe8, 0x4c, 0x60, 0x4a, 0x65, 0xb8, 0x4b, 0x5a, - 0xcf, 0x44, 0xc3, 0xcc, 0xc4, 0xb7, 0x61, 0x73, 0x77, 0x36, 0xeb, 0xfb, 0x62, 0xc2, 0x13, 0xa9, - 0xb4, 0x49, 0x4a, 0x17, 0x50, 0xcc, 0x07, 0x6a, 0x1a, 0xc6, 0x79, 0x32, 0xe2, 0x14, 0xee, 0x3a, - 0xd3, 0x10, 0x94, 0x33, 0x98, 0xf1, 0x44, 0x0b, 0xa3, 0x8c, 0xfc, 0x02, 0xaa, 0xb2, 0x02, 0x45, - 0x56, 0xbc, 0xdf, 0x5b, 0xb0, 0x79, 0x9c, 0xbf, 0x8c, 0xc2, 0x11, 0x31, 0x60, 0xd0, 0xaa, 0xd0, - 0x58, 0x46, 0x68, 0x74, 0x07, 0xed, 0xb7, 0x3b, 0x58, 0x33, 0x1d, 0xdc, 0x86, 0xc6, 0x43, 0x2e, - 0x02, 0x9e, 0x50, 0xc0, 0xea, 0x4c, 0x51, 0x2b, 0x1c, 0xaf, 0xaf, 0x72, 0xdc, 0xfb, 0xad, 0x0d, - 0xeb, 0x1f, 0xd9, 0xb4, 0x1e, 0xb4, 0x8f, 0x4f, 0x63, 0xc1, 0x9f, 0xe5, 0x58, 0x4c, 0x2a, 0x99, - 0x3a, 0xe4, 0xdc, 0x82, 0xfa, 0x5e, 0x98, 0x64, 0xa7, 0x94, 0xcd, 0x0d, 0x26, 0x09, 0x44, 0x0f, - 0xa7, 0x7e, 0x28, 0x53, 0xd8, 0x62, 0x92, 0x50, 0x11, 0x5f, 0x2f, 0xf7, 0x81, 0xb9, 0xb3, 0x5a, - 0x4b, 0x3b, 0x6b, 0x39, 0x30, 0xb0, 0x32, 0x30, 0xff, 0xb2, 0x00, 0x8e, 0x92, 0x90, 0x8b, 0x80, - 0x42, 0xb3, 0xb0, 0xa5, 0xad, 0xe5, 0x2d, 0xbd, 0x0d, 0x0d, 0xc6, 0xa7, 0x7e, 0x72, 0x56, 0x94, - 0xbc, 0xa4, 0x16, 0x0c, 0xaa, 0x2d, 0x19, 0xf4, 0xfd, 0x42, 0x0f, 0xca, 0xa1, 0x50, 0xb5, 0xef, - 0xdf, 0xbe, 0xa7, 0xb5, 0xbd, 0x7b, 0x45, 0x7e, 0x98, 0xc6, 0x88, 0x3b, 0x69, 0x37, 0x08, 0x54, - 0xc1, 0xca, 0xdc, 0x56, 0xc0, 0x8a, 0x7a, 0x6d, 0x5c, 0x50, 0xaf, 0xcd, 0xb2, 0x5e, 0xff, 0x6e, - 0x41, 0x6b, 0x2f, 0xf2, 0x47, 0x67, 0x97, 0x74, 0xda, 0x74, 0xce, 0x5e, 0x72, 0x6e, 0x17, 0x36, - 0x48, 0x5c, 0xe1, 0x02, 0xf9, 0xdf, 0xbe, 0xff, 0x4d, 0xc3, 0x3f, 0x73, 0x83, 0x30, 0x73, 0x85, - 0xe9, 0xe8, 0xda, 0xbb, 0x1d, 0xad, 0x5f, 0xe0, 0x68, 0xa3, 0x74, 0xf4, 0xd7, 0x36, 0x74, 0xa8, - 0x59, 0x31, 0x3e, 0xcf, 0x79, 0x9a, 0xbd, 0xb5, 0xf6, 0xb5, 0x1e, 0x67, 0x9b, 0x3d, 0xce, 0x83, - 0xce, 0x23, 0x5f, 0x04, 0x11, 0x67, 0x3c, 0xcd, 0xa3, 0xac, 0x38, 0x47, 0x74, 0x4c, 0x16, 0xc5, - 0xbc, 0x9f, 0x4e, 0xd4, 0x09, 0xa2, 0x28, 0x74, 0x4a, 0xf2, 0xe1, 0x27, 0x69, 0x71, 0x05, 0xa0, - 0x4e, 0xc6, 0xe7, 0x14, 0x52, 0xb9, 0x03, 0x0a, 0xb2, 0xd2, 0xa9, 0x6c, 0x6d, 0xea, 0x3a, 0xab, - 0x9c, 0x48, 0x9a, 0x04, 0xc8, 0xa3, 0x43, 0x43, 0x16, 0x4f, 0x0e, 0xef, 0x6b, 0x1b, 0x36, 0x64, - 0x61, 0x15, 0xb1, 0xb8, 0x8b, 0x25, 0x19, 0x4f, 0x8d, 0x78, 0x68, 0x08, 0xf6, 0x83, 0x93, 0xd8, - 0xe8, 0xef, 0x25, 0xbd, 0x32, 0x2a, 0xf5, 0x4b, 0x46, 0xc5, 0xac, 0xa6, 0xfa, 0x52, 0x35, 0x7d, - 0x06, 0x1b, 0x52, 0x8e, 0x59, 0xd4, 0x26, 0x68, 0xc6, 0xb6, 0xb9, 0x18, 0xdb, 0xab, 0x46, 0xe7, - 0xbf, 0x16, 0xb8, 0xc7, 0x79, 0x14, 0xf5, 0x79, 0x9a, 0xfa, 0x13, 0xbe, 0xf7, 0x66, 0xc8, 0xe7, - 0x4f, 0xc3, 0x34, 0x63, 0x3c, 0x9d, 0x61, 0xa2, 0x78, 0x92, 0xec, 0xc7, 0x01, 0xa7, 0x28, 0xd5, - 0x59, 0x41, 0xa2, 0x8b, 0x3c, 0x49, 0xd0, 0x02, 0xd5, 0x0d, 0x24, 0x85, 0xf8, 0xd4, 0x7f, 0x3d, - 0xe4, 0x73, 0x0a, 0x4c, 0x8d, 0x29, 0x8a, 0xf0, 0x50, 0x20, 0xbe, 0xa6, 0x70, 0xa2, 0x9c, 0x1f, - 0xc3, 0x46, 0x1a, 0x8a, 0x89, 0x4c, 0xae, 0x2c, 0x96, 0xda, 0x4e, 0xfb, 0xfe, 0x37, 0x8c, 0x0d, - 0xf4, 0xd0, 0xcf, 0x4e, 0x79, 0x72, 0x14, 0x27, 0x53, 0x3f, 0x63, 0x26, 0xbf, 0xf3, 0x15, 0x74, - 0x26, 0x58, 0xb0, 0xc5, 0xfa, 0xc6, 0xbb, 0xd6, 0x1b, 0xec, 0xde, 0x14, 0x3e, 0x59, 0xed, 0x3d, - 0x99, 0x9c, 0x1b, 0x3b, 0x46, 0x52, 0xd8, 0x35, 0x62, 0xda, 0x7c, 0x61, 0x2c, 0xca, 0x02, 0xd1, - 0x21, 0x0c, 0x5b, 0x2a, 0xe5, 0xb8, 0xb5, 0x5e, 0x6d, 0xa7, 0xc6, 0x0a, 0xd2, 0xfb, 0x15, 0x1e, - 0x97, 0xa5, 0xba, 0x8b, 0xb4, 0xdc, 0x81, 0xf5, 0x94, 0xcf, 0xf7, 0xf8, 0x24, 0x14, 0xa4, 0xa2, - 0xc6, 0x4a, 0x1a, 0xd7, 0xa4, 0x7c, 0x7e, 0x28, 0x82, 0x22, 0xc8, 0x92, 0x5a, 0xb4, 0x6c, 0x6d, - 0xc9, 0x32, 0xec, 0xfa, 0x5d, 0xc3, 0x80, 0xff, 0x8b, 0x24, 0xdf, 0x02, 0xe7, 0x21, 0xcf, 0xfa, - 0xfe, 0xeb, 0x5d, 0x11, 0xf4, 0xc9, 0x24, 0xc6, 0xe7, 0xde, 0x21, 0xdc, 0x5c, 0x42, 0xd3, 0x99, - 0xe6, 0x9c, 0xf5, 0x16, 0xe7, 0x6c, 0xdd, 0x39, 0xef, 0x11, 0x74, 0x74, 0xd5, 0xb8, 0xc1, 0xc2, - 0x40, 0x25, 0xd3, 0x0e, 0x03, 0x67, 0x07, 0xd6, 0x22, 0xac, 0x04, 0x9b, 0x6c, 0xbe, 0x65, 0xd8, - 0xdc, 0x4f, 0x27, 0x07, 0x7e, 0xe6, 0x33, 0xe2, 0xf0, 0xe6, 0xd0, 0x45, 0x8b, 0x87, 0x5c, 0x04, - 0xfd, 0x74, 0x42, 0xc6, 0xf4, 0xa0, 0x3d, 0xe4, 0xc9, 0x39, 0xb9, 0x51, 0x9d, 0x50, 0x1a, 0x84, - 0x1c, 0xfb, 0x51, 0xc8, 0x45, 0x26, 0x39, 0x54, 0x35, 0x6a, 0x90, 0xac, 0x24, 0x11, 0x94, 0xc7, - 0x33, 0x55, 0x92, 0xa4, 0xbd, 0xbf, 0xd4, 0xa1, 0xa9, 0x8c, 0x90, 0x55, 0x25, 0x82, 0xaa, 0x12, - 0x25, 0x85, 0x78, 0xc2, 0x47, 0xe7, 0xd5, 0xac, 0x2b, 0x29, 0xac, 0x9b, 0x89, 0x3a, 0x39, 0xd4, - 0x64, 0xa4, 0x48, 0xb4, 0x69, 0xa4, 0xd9, 0xa4, 0xea, 0x50, 0x83, 0x90, 0x23, 0xd5, 0xfc, 0x52, - 0x33, 0x92, 0x06, 0x39, 0xdf, 0x81, 0xad, 0x94, 0xe6, 0xa9, 0xe3, 0xc8, 0xcf, 0xc6, 0x71, 0x32, - 0x55, 0xed, 0xb0, 0xce, 0x96, 0x70, 0x3c, 0x24, 0x25, 0x56, 0x4e, 0x71, 0xb2, 0x2d, 0x2e, 0xa0, - 0xd8, 0x5f, 0x25, 0x42, 0x23, 0x1c, 0x7b, 0xaa, 0xc6, 0x2a, 0x13, 0x94, 0xb6, 0xa5, 0x69, 0x18, - 0x0b, 0xba, 0x2d, 0xb4, 0x48, 0xa9, 0x0e, 0xa1, 0xe7, 0xd3, 0x74, 0x82, 0x07, 0x86, 0x1a, 0xae, - 0x0a, 0x92, 0x3c, 0x8f, 0x45, 0xc6, 0x45, 0x46, 0x6b, 0xdb, 0x72, 0xad, 0x06, 0xe1, 0x5a, 0x45, - 0xd2, 0x3d, 0xa4, 0xc3, 0x0a, 0x12, 0xfb, 0xfa, 0x38, 0x4e, 0x46, 0x9c, 0xfa, 0xc6, 0x46, 0xaf, - 0x86, 0x7d, 0xbd, 0x04, 0x9c, 0x2d, 0xa8, 0xa5, 0x7c, 0xee, 0x6e, 0x52, 0x02, 0xf1, 0xa7, 0x91, - 0xd7, 0xae, 0x99, 0x57, 0x3c, 0x05, 0x46, 0xd5, 0x49, 0xb3, 0x45, 0x5f, 0x35, 0xc4, 0xf9, 0x21, - 0x34, 0x07, 0x33, 0xec, 0x09, 0xa9, 0x7b, 0x83, 0xea, 0xf2, 0x5b, 0xab, 0xea, 0xf2, 0x9e, 0xe2, - 0x39, 0x14, 0x59, 0xf2, 0x86, 0x15, 0x2b, 0x9c, 0x23, 0xe8, 0xc6, 0xe3, 0x71, 0x14, 0x0a, 0x7e, - 0x9c, 0xa7, 0xa7, 0x34, 0xf6, 0x38, 0x34, 0xf6, 0x7c, 0x6a, 0x08, 0x19, 0x98, 0x3c, 0x6c, 0x71, - 0xd1, 0x9d, 0x07, 0xd0, 0xd1, 0x15, 0xa0, 0x8b, 0x67, 0xfc, 0x8d, 0xaa, 0x3e, 0xfc, 0x89, 0x23, - 0xf1, 0xb9, 0x1f, 0xe5, 0x72, 0xf2, 0x5a, 0x67, 0x92, 0x78, 0x60, 0x7f, 0x69, 0x79, 0xbf, 0xb1, - 0xa0, 0xbb, 0xa0, 0x00, 0xb9, 0x4f, 0xc2, 0x2c, 0xe2, 0x4a, 0x82, 0x24, 0x1c, 0x07, 0xd6, 0x0e, - 0x78, 0x3a, 0x52, 0xc5, 0x4b, 0xbf, 0xd5, 0x21, 0x58, 0x2b, 0x87, 0x6a, 0x0f, 0x3a, 0xe1, 0x60, - 0x88, 0x82, 0x86, 0x71, 0x2e, 0x82, 0xe2, 0x3a, 0xac, 0x63, 0x58, 0x3c, 0xe1, 0x60, 0xb8, 0xe7, - 0x07, 0x13, 0x2e, 0x2f, 0xad, 0x75, 0xb2, 0xc9, 0x04, 0xbd, 0x03, 0x58, 0x3f, 0x09, 0x67, 0xe9, - 0x7e, 0x3c, 0x9d, 0xe2, 0xc6, 0x39, 0xe0, 0x19, 0x4e, 0xf4, 0x16, 0x65, 0x5a, 0x51, 0x58, 0x24, - 0x07, 0x7c, 0xec, 0xe7, 0x51, 0x86, 0xac, 0xc5, 0x96, 0xd5, 0x20, 0xef, 0x4f, 0x16, 0x74, 0xe5, - 0x5d, 0xf4, 0x50, 0x64, 0x3c, 0x41, 0xcc, 0xf9, 0x2e, 0xd4, 0x69, 0x32, 0x23, 0x61, 0xed, 0xfb, - 0xdb, 0x66, 0xf3, 0x2b, 0x5e, 0x0d, 0x98, 0x64, 0x72, 0xf6, 0xa0, 0x8d, 0x41, 0xf5, 0x45, 0x46, - 0x63, 0xb7, 0x4d, 0x6b, 0x7a, 0xcb, 0x6b, 0xcc, 0x1b, 0x2f, 0xd3, 0x17, 0xa1, 0xc7, 0x83, 0xe2, - 0xec, 0xd0, 0xba, 0x87, 0x09, 0x7a, 0x7f, 0x2c, 0x6d, 0x7d, 0xca, 0xfd, 0x73, 0xfe, 0x1e, 0xb6, - 0xfe, 0x04, 0x80, 0x96, 0x26, 0x57, 0x32, 0x55, 0x5b, 0x73, 0x49, 0x4b, 0xff, 0x69, 0xc1, 0x0d, - 0x29, 0xe4, 0xb1, 0x38, 0x0f, 0x33, 0x1e, 0xbc, 0x87, 0xad, 0x5f, 0x42, 0x63, 0x30, 0xbb, 0x92, - 0x9d, 0x8a, 0xdf, 0x79, 0x02, 0x5d, 0xa5, 0x16, 0xc9, 0x72, 0x38, 0xb8, 0x8c, 0x88, 0xc5, 0x85, - 0xcb, 0xfe, 0xae, 0xad, 0xf2, 0xf7, 0x1f, 0x16, 0x6c, 0x49, 0x49, 0x3f, 0x0d, 0x47, 0x67, 0x1f, - 0xd9, 0xdd, 0x47, 0xb0, 0x29, 0xb5, 0x5e, 0xd9, 0xdb, 0x85, 0x75, 0x97, 0x74, 0xf6, 0x3f, 0x16, - 0xdc, 0x2e, 0x92, 0x3b, 0x8e, 0xf7, 0x4f, 0xf1, 0xaa, 0x2b, 0x3d, 0xc6, 0xa9, 0x9b, 0x48, 0x6a, - 0xc9, 0x72, 0xc4, 0xd1, 0x90, 0x6b, 0xf8, 0xf8, 0x23, 0x68, 0x1d, 0x85, 0xc2, 0x8f, 0xb4, 0x9b, - 0xdf, 0xbb, 0x17, 0x57, 0x4b, 0xb0, 0x83, 0xf7, 0x73, 0xd5, 0xa3, 0xd5, 0x7b, 0x50, 0x41, 0x57, - 0x79, 0xaa, 0x5f, 0x22, 0x4f, 0xde, 0xdf, 0x2c, 0xd8, 0xa2, 0x5f, 0xf2, 0x36, 0xf1, 0x3e, 0xa9, - 0x7e, 0x00, 0x4d, 0xf5, 0x66, 0x76, 0xe9, 0x38, 0x14, 0x0b, 0x70, 0x07, 0xab, 0x16, 0x70, 0x95, - 0x44, 0x6b, 0x6b, 0x2e, 0x99, 0xe4, 0x3f, 0x58, 0x70, 0xab, 0x34, 0x5c, 0xcf, 0x31, 0x4e, 0x41, - 0x8a, 0xac, 0x92, 0xac, 0x43, 0x55, 0x30, 0xec, 0xab, 0xd5, 0x7d, 0xed, 0x6a, 0x35, 0xe1, 0x7d, - 0x6d, 0x81, 0xfb, 0x24, 0x0e, 0x05, 0xf1, 0xec, 0xce, 0x66, 0x91, 0x7a, 0x72, 0x7d, 0x8f, 0x8c, - 0xfc, 0x00, 0x5a, 0x4a, 0x80, 0xc8, 0x94, 0xd9, 0x17, 0x3e, 0x2c, 0x54, 0xdc, 0xf2, 0x06, 0xea, - 0xa7, 0xe5, 0xeb, 0xaf, 0xa2, 0xbc, 0x3f, 0x5b, 0xe0, 0x6a, 0x46, 0x1d, 0x27, 0xf1, 0x88, 0xa7, - 0xe9, 0x47, 0x6e, 0x0d, 0x64, 0x9c, 0x76, 0x79, 0x6e, 0xe8, 0xd7, 0x66, 0x32, 0x7a, 0xcd, 0x30, - 0xfa, 0x0c, 0x6e, 0xc8, 0xfb, 0xbb, 0x66, 0x39, 0xce, 0x51, 0xbb, 0x81, 0x1c, 0x7e, 0xe4, 0x9c, - 0x5e, 0x90, 0xe6, 0x83, 0x8a, 0x7a, 0x1d, 0xaf, 0x1e, 0x54, 0xee, 0x02, 0xec, 0x06, 0xc1, 0x2f, - 0xe2, 0x24, 0x08, 0xc5, 0x44, 0x45, 0x47, 0x43, 0xbc, 0x27, 0xd0, 0xc1, 0x49, 0xae, 0xbc, 0xef, - 0x5f, 0xe3, 0xad, 0xc0, 0xfb, 0x25, 0xdc, 0x59, 0x32, 0x7c, 0x37, 0x08, 0x54, 0xb8, 0xbf, 0x32, - 0x35, 0xa9, 0xa8, 0x9b, 0x97, 0x1a, 0x9d, 0x81, 0x19, 0xec, 0xde, 0x0b, 0xb8, 0xbb, 0x24, 0xdc, - 0xcc, 0xe7, 0x35, 0x15, 0xfc, 0xce, 0x82, 0xae, 0xd2, 0x50, 0xda, 0xfc, 0x39, 0x34, 0x24, 0xa4, - 0x84, 0x7d, 0xb2, 0x20, 0xac, 0x78, 0x4f, 0x64, 0x8a, 0x6d, 0x79, 0x5f, 0xdb, 0x2b, 0xf6, 0xb5, - 0xf3, 0xc5, 0xc2, 0x76, 0xbb, 0xb0, 0xcc, 0x8b, 0x9d, 0xc6, 0x8a, 0xb2, 0x38, 0xe0, 0x11, 0xcf, - 0x3e, 0x8c, 0xcf, 0x03, 0xd8, 0xa4, 0xd7, 0xb9, 0x0f, 0x96, 0xa5, 0x9f, 0xc1, 0x16, 0x09, 0xfc, - 0x80, 0x36, 0xfe, 0x1c, 0x6e, 0x57, 0x81, 0xd6, 0x9b, 0xe0, 0x35, 0xe5, 0x7e, 0x0f, 0x6e, 0x0e, - 0x79, 0x34, 0x46, 0xa9, 0xcf, 0x67, 0x41, 0x79, 0x8a, 0xbc, 0xe5, 0xe1, 0xf0, 0x65, 0x83, 0xfe, - 0xc0, 0xfa, 0xe2, 0x7f, 0x01, 0x00, 0x00, 0xff, 0xff, 0x65, 0x07, 0x6a, 0xb9, 0xd3, 0x1a, 0x00, - 0x00, +func init() { proto.RegisterFile("sdk_ws/ws.proto", fileDescriptor_ws_f46b8824c5dbc584) } + +var fileDescriptor_ws_f46b8824c5dbc584 = []byte{ + // 1917 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe4, 0x59, 0x4f, 0x6f, 0x1c, 0x49, + 0x15, 0x57, 0xf7, 0x4c, 0xcf, 0x78, 0xde, 0x8c, 0x3d, 0x4e, 0xe7, 0xcf, 0x36, 0x61, 0x15, 0x0d, + 0xad, 0x15, 0xb2, 0x10, 0x64, 0xa5, 0xac, 0x90, 0x96, 0xa0, 0x05, 0x62, 0x3b, 0xce, 0x26, 0xc4, + 0xb1, 0x69, 0x27, 0x70, 0xe0, 0x10, 0xb5, 0xa7, 0x6b, 0xc6, 0xcd, 0x74, 0x57, 0xcd, 0x74, 0x75, + 0x3b, 0xc9, 0x85, 0x33, 0x5f, 0x00, 0x2e, 0x2b, 0x10, 0x37, 0xc4, 0x95, 0x03, 0x7c, 0x21, 0xc4, + 0x01, 0x89, 0x13, 0xe2, 0x04, 0x07, 0x54, 0xaf, 0xaa, 0xbb, 0xab, 0x7a, 0xc6, 0x8e, 0xed, 0x44, + 0xb9, 0xec, 0x6d, 0xde, 0xaf, 0x5f, 0xbd, 0xff, 0xf5, 0xea, 0x55, 0x0d, 0x0c, 0x79, 0x34, 0x7b, + 0xf9, 0x8a, 0x7f, 0xfa, 0x8a, 0xdf, 0x9d, 0x67, 0x2c, 0x67, 0x6e, 0x9f, 0xcd, 0x09, 0x7d, 0x19, + 0xa7, 0x2f, 0x79, 0x34, 0xf3, 0xff, 0x63, 0x43, 0xef, 0x51, 0xc6, 0x8a, 0xf9, 0x63, 0x3a, 0x61, + 0xae, 0x07, 0xdd, 0x29, 0x12, 0xbb, 0x9e, 0x35, 0xb2, 0xb6, 0x7a, 0x41, 0x49, 0xba, 0x1f, 0x43, + 0x0f, 0x7f, 0x3e, 0x0b, 0x53, 0xe2, 0xd9, 0xf8, 0xad, 0x06, 0x5c, 0x1f, 0x06, 0x94, 0xe5, 0xf1, + 0x24, 0x1e, 0x87, 0x79, 0xcc, 0xa8, 0xd7, 0x42, 0x06, 0x03, 0x13, 0x3c, 0x31, 0xcd, 0x33, 0x16, + 0x15, 0x63, 0xe4, 0x69, 0x4b, 0x1e, 0x1d, 0x13, 0xfa, 0x27, 0xe1, 0x98, 0xbc, 0x08, 0x9e, 0x7a, + 0x8e, 0xd4, 0xaf, 0x48, 0x77, 0x04, 0x7d, 0xf6, 0x8a, 0x92, 0xec, 0x05, 0x27, 0xd9, 0xe3, 0x5d, + 0xaf, 0x83, 0x5f, 0x75, 0xc8, 0xbd, 0x03, 0x30, 0xce, 0x48, 0x98, 0x93, 0xe7, 0x71, 0x4a, 0xbc, + 0xee, 0xc8, 0xda, 0x5a, 0x0f, 0x34, 0x44, 0x48, 0x48, 0x49, 0x7a, 0x4c, 0xb2, 0x1d, 0x56, 0xd0, + 0xdc, 0x5b, 0x43, 0x06, 0x1d, 0x72, 0x37, 0xc0, 0x26, 0xaf, 0xbd, 0x1e, 0x8a, 0xb6, 0xc9, 0x6b, + 0xf7, 0x16, 0x74, 0x78, 0x1e, 0xe6, 0x05, 0xf7, 0x60, 0x64, 0x6d, 0x39, 0x81, 0xa2, 0xdc, 0x4f, + 0x60, 0x1d, 0xe5, 0xb2, 0xd2, 0x9a, 0x3e, 0x2e, 0x31, 0xc1, 0x2a, 0x62, 0xcf, 0xdf, 0xcc, 0x89, + 0x37, 0x40, 0x01, 0x35, 0xe0, 0xff, 0xcd, 0x86, 0xeb, 0x18, 0xf7, 0x7d, 0x34, 0x60, 0xaf, 0x48, + 0x92, 0xb7, 0x64, 0xe0, 0x16, 0x74, 0x0a, 0xa9, 0x4e, 0x86, 0x5f, 0x51, 0x42, 0x4f, 0xc6, 0x12, + 0xf2, 0x94, 0x9c, 0x92, 0x04, 0x03, 0xef, 0x04, 0x35, 0xe0, 0xde, 0x86, 0xb5, 0x5f, 0xb1, 0x98, + 0x62, 0x4c, 0x44, 0xc4, 0x5b, 0x41, 0x45, 0x8b, 0x6f, 0x34, 0x1e, 0xcf, 0xa8, 0x48, 0xa9, 0x0c, + 0x77, 0x45, 0xeb, 0x99, 0xe8, 0x98, 0x99, 0xf8, 0x36, 0x6c, 0x84, 0xf3, 0xf9, 0x7e, 0x48, 0xa7, + 0x24, 0x93, 0x4a, 0xbb, 0xa8, 0xb4, 0x81, 0x8a, 0x7c, 0x08, 0x4d, 0x47, 0xac, 0xc8, 0xc6, 0x04, + 0xc3, 0xed, 0x04, 0x1a, 0x22, 0xe4, 0xb0, 0x39, 0xc9, 0xb4, 0x30, 0xca, 0xc8, 0x37, 0x50, 0x95, + 0x15, 0x28, 0xb3, 0xe2, 0xff, 0xc1, 0x82, 0x8d, 0xc3, 0xe2, 0x38, 0x89, 0xc7, 0xc8, 0x20, 0x82, + 0x56, 0x87, 0xc6, 0x32, 0x42, 0xa3, 0x3b, 0x68, 0x9f, 0xed, 0x60, 0xcb, 0x74, 0xf0, 0x16, 0x74, + 0xa6, 0x84, 0x46, 0x24, 0xc3, 0x80, 0x39, 0x81, 0xa2, 0x56, 0x38, 0xee, 0xac, 0x72, 0xdc, 0xff, + 0x9d, 0x0d, 0x6b, 0x1f, 0xd8, 0xb4, 0x11, 0xf4, 0xe7, 0x27, 0x8c, 0x92, 0x67, 0x85, 0x28, 0x26, + 0x95, 0x4c, 0x1d, 0x72, 0x6f, 0x80, 0x73, 0x1c, 0x67, 0xf9, 0x09, 0x66, 0x73, 0x3d, 0x90, 0x84, + 0x40, 0x49, 0x1a, 0xc6, 0x32, 0x85, 0xbd, 0x40, 0x12, 0x2a, 0xe2, 0x6b, 0xd5, 0x3e, 0x30, 0x77, + 0x56, 0x6f, 0x69, 0x67, 0x2d, 0x07, 0x06, 0x56, 0x06, 0xe6, 0xdf, 0x16, 0xc0, 0x5e, 0x16, 0x13, + 0x1a, 0x61, 0x68, 0x1a, 0x5b, 0xda, 0x5a, 0xde, 0xd2, 0xb7, 0xa0, 0x93, 0x91, 0x34, 0xcc, 0x66, + 0x65, 0xc9, 0x4b, 0xaa, 0x61, 0x50, 0x6b, 0xc9, 0xa0, 0xef, 0x03, 0x4c, 0x50, 0x8f, 0x90, 0x83, + 0xa1, 0xea, 0xdf, 0xbb, 0x79, 0x57, 0x6b, 0x7b, 0x77, 0xcb, 0xfc, 0x04, 0x1a, 0xa3, 0xd8, 0x49, + 0x61, 0x14, 0xa9, 0x82, 0x95, 0xb9, 0xad, 0x81, 0x15, 0xf5, 0xda, 0x39, 0xa7, 0x5e, 0xbb, 0x55, + 0xbd, 0xfe, 0xc3, 0x82, 0xde, 0x76, 0x12, 0x8e, 0x67, 0x17, 0x74, 0xda, 0x74, 0xce, 0x5e, 0x72, + 0xee, 0x01, 0xac, 0x1f, 0x0b, 0x71, 0xa5, 0x0b, 0xe8, 0x7f, 0xff, 0xde, 0x37, 0x0d, 0xff, 0xcc, + 0x0d, 0x12, 0x98, 0x2b, 0x4c, 0x47, 0xdb, 0x6f, 0x77, 0xd4, 0x39, 0xc7, 0xd1, 0x4e, 0xe5, 0xe8, + 0x6f, 0x6c, 0x18, 0x60, 0x4b, 0x0b, 0xc8, 0xa2, 0x20, 0x3c, 0x3f, 0xb3, 0xf6, 0xb5, 0x1e, 0x67, + 0x9b, 0x3d, 0xce, 0x87, 0xc1, 0x49, 0x48, 0xa3, 0x84, 0x04, 0x84, 0x17, 0x49, 0x5e, 0x9e, 0x23, + 0x3a, 0x26, 0x8b, 0x62, 0xb1, 0xcf, 0xa7, 0xea, 0x04, 0x51, 0x94, 0x70, 0x4a, 0xf2, 0x89, 0x4f, + 0xd2, 0xe2, 0x1a, 0x10, 0x3a, 0x33, 0xb2, 0xc0, 0x90, 0xca, 0x1d, 0x50, 0x92, 0xb5, 0x4e, 0xe5, + 0x6c, 0x57, 0xd7, 0x59, 0xe7, 0x44, 0xd2, 0x28, 0x40, 0x1e, 0x1d, 0x1a, 0xd2, 0x3c, 0x39, 0xfc, + 0xaf, 0x6c, 0x58, 0x97, 0x95, 0x5e, 0xc6, 0xe2, 0x8e, 0x28, 0x49, 0x96, 0x1a, 0x69, 0xd7, 0x10, + 0xd1, 0x0f, 0x72, 0xf6, 0x42, 0xef, 0xef, 0x15, 0xbd, 0x32, 0x2a, 0xce, 0x05, 0xa3, 0x62, 0x56, + 0x93, 0xb3, 0x54, 0x4d, 0x9f, 0xc0, 0xba, 0x94, 0x63, 0x16, 0xb5, 0x09, 0x9a, 0xb1, 0xed, 0x36, + 0x63, 0x7b, 0xd9, 0xe8, 0xfc, 0xcf, 0x02, 0xef, 0xb0, 0x48, 0x92, 0x7d, 0xc2, 0x79, 0x38, 0x25, + 0xdb, 0x6f, 0x8e, 0xc8, 0xe2, 0x69, 0xcc, 0xf3, 0x80, 0xf0, 0xb9, 0x48, 0x14, 0xc9, 0xb2, 0x1d, + 0x16, 0x11, 0x8c, 0x92, 0x13, 0x94, 0xa4, 0x70, 0x91, 0x64, 0x99, 0xb0, 0x40, 0x75, 0x03, 0x49, + 0x09, 0x3c, 0x0d, 0x5f, 0x1f, 0x91, 0x05, 0x06, 0xa6, 0x15, 0x28, 0x0a, 0xf1, 0x98, 0x0a, 0xbc, + 0xad, 0x70, 0xa4, 0xdc, 0x1f, 0xc3, 0x3a, 0x8f, 0xe9, 0x54, 0x26, 0x57, 0x16, 0x4b, 0x6b, 0xab, + 0x7f, 0xef, 0x1b, 0xc6, 0x06, 0x7a, 0x14, 0xe6, 0x27, 0x24, 0xdb, 0x63, 0x59, 0x1a, 0xe6, 0x81, + 0xc9, 0xef, 0x7e, 0x01, 0x03, 0x2c, 0xd8, 0x72, 0x7d, 0xe7, 0x6d, 0xeb, 0x0d, 0x76, 0x3f, 0x85, + 0x8f, 0x56, 0x7b, 0xbf, 0x38, 0x73, 0xc7, 0x88, 0xae, 0x81, 0x9b, 0x2f, 0x66, 0xb4, 0x2a, 0x10, + 0x1d, 0x12, 0x61, 0xe3, 0x52, 0x8e, 0xd7, 0x1a, 0xb5, 0xb6, 0x5a, 0x41, 0x49, 0xfa, 0xbf, 0x16, + 0xc7, 0x65, 0xa5, 0xee, 0x3c, 0x2d, 0xb7, 0x61, 0x8d, 0x93, 0xc5, 0x36, 0x99, 0xc6, 0x14, 0x55, + 0xb4, 0x82, 0x8a, 0xc6, 0x59, 0x88, 0x2c, 0x1e, 0xd2, 0xa8, 0x0c, 0xb2, 0xa4, 0x9a, 0x96, 0xb5, + 0x97, 0x2c, 0x13, 0x5d, 0x7f, 0x68, 0x18, 0xf0, 0xb5, 0x48, 0xf2, 0x0d, 0x70, 0x1f, 0x91, 0x7c, + 0x3f, 0x7c, 0xfd, 0x80, 0x46, 0xfb, 0x68, 0x52, 0x40, 0x16, 0xfe, 0x43, 0xb8, 0xbe, 0x84, 0xf2, + 0xb9, 0xe6, 0x9c, 0x75, 0x86, 0x73, 0xb6, 0xee, 0x9c, 0xff, 0x25, 0x0c, 0x74, 0xd5, 0x62, 0x83, + 0xc5, 0x91, 0x4a, 0xa6, 0x1d, 0x47, 0xee, 0x16, 0xb4, 0x13, 0x51, 0x09, 0x36, 0xda, 0x7c, 0xc3, + 0xb0, 0x79, 0x9f, 0x4f, 0x77, 0xc3, 0x3c, 0x0c, 0x90, 0xc3, 0x5f, 0xc0, 0x50, 0x58, 0x7c, 0x44, + 0x68, 0xb4, 0xcf, 0xa7, 0x68, 0xcc, 0x08, 0xfa, 0x9c, 0x64, 0xa7, 0xe8, 0x46, 0x7d, 0x42, 0x69, + 0x90, 0xe0, 0x18, 0x27, 0x31, 0xa1, 0xb9, 0xe4, 0x50, 0xd5, 0xa8, 0x41, 0xb2, 0x92, 0x68, 0x54, + 0x1d, 0xcf, 0x58, 0x49, 0x92, 0xf6, 0xff, 0xea, 0x40, 0x57, 0x19, 0x21, 0xab, 0x8a, 0x46, 0x75, + 0x25, 0x4a, 0x4a, 0x76, 0xb3, 0xf1, 0x69, 0x3d, 0xeb, 0x4a, 0x4a, 0x3f, 0x39, 0x5a, 0xe6, 0xc9, + 0xd1, 0xb0, 0xa9, 0xbd, 0x6c, 0x53, 0xc3, 0x2f, 0x67, 0xd9, 0xaf, 0xef, 0xc0, 0x26, 0xc7, 0x79, + 0xea, 0x30, 0x09, 0xf3, 0x09, 0xcb, 0x52, 0xd5, 0x0e, 0x9d, 0x60, 0x09, 0x17, 0x87, 0xa4, 0xc4, + 0x9e, 0x95, 0x53, 0x9c, 0x6c, 0x8b, 0x0d, 0x54, 0xf4, 0x57, 0x89, 0xec, 0xa9, 0x89, 0x4e, 0x8e, + 0x55, 0x26, 0x28, 0x6d, 0xe3, 0x3c, 0x66, 0x14, 0x6f, 0x0b, 0x3d, 0x54, 0xaa, 0x43, 0xc2, 0xf3, + 0x94, 0x4f, 0xf7, 0x32, 0x96, 0xaa, 0xe1, 0xaa, 0x24, 0xd1, 0x73, 0x46, 0x73, 0x42, 0x73, 0x5c, + 0xdb, 0x97, 0x6b, 0x35, 0x48, 0xac, 0x55, 0x24, 0xde, 0x43, 0x06, 0x41, 0x49, 0x8a, 0xbe, 0x3e, + 0x61, 0xd9, 0x98, 0x60, 0xdf, 0x58, 0x1f, 0xb5, 0x44, 0x5f, 0xaf, 0x00, 0x77, 0x13, 0x5a, 0x9c, + 0x2c, 0xbc, 0x0d, 0x4c, 0xa0, 0xf8, 0x69, 0xe4, 0x75, 0x68, 0xe6, 0xb5, 0x71, 0xd2, 0x6c, 0xe2, + 0x57, 0xfd, 0xa4, 0xf9, 0x21, 0x74, 0xd9, 0x5c, 0xf4, 0x04, 0xee, 0x5d, 0xc3, 0xba, 0xfc, 0xd6, + 0xaa, 0xba, 0xbc, 0x7b, 0x20, 0x79, 0x1e, 0xd2, 0x3c, 0x7b, 0x13, 0x94, 0x2b, 0xdc, 0x3d, 0x18, + 0xb2, 0xc9, 0x24, 0x89, 0x29, 0x39, 0x2c, 0xf8, 0x09, 0x8e, 0x3d, 0x2e, 0x8e, 0x3d, 0x1f, 0x1b, + 0x42, 0x0e, 0x4c, 0x9e, 0xa0, 0xb9, 0xe8, 0xf6, 0x7d, 0x18, 0xe8, 0x0a, 0x84, 0x8b, 0x33, 0xf2, + 0x46, 0x55, 0x9f, 0xf8, 0x29, 0x46, 0xe2, 0xd3, 0x30, 0x29, 0xe4, 0xe4, 0xb5, 0x16, 0x48, 0xe2, + 0xbe, 0xfd, 0xb9, 0xe5, 0xff, 0xd6, 0x82, 0x61, 0x43, 0x81, 0xe0, 0xce, 0xe3, 0x3c, 0x21, 0x4a, + 0x82, 0x24, 0x5c, 0x17, 0xda, 0x11, 0xe1, 0x63, 0x55, 0xbc, 0xf8, 0x5b, 0x1d, 0x82, 0xad, 0x6a, + 0xa8, 0x16, 0xd7, 0xe1, 0x83, 0x23, 0x21, 0xe8, 0x88, 0x15, 0x34, 0xaa, 0xae, 0xc3, 0x1a, 0x26, + 0x8a, 0x27, 0x3e, 0x38, 0xda, 0x0e, 0xa3, 0x29, 0x91, 0x97, 0x56, 0x07, 0x6d, 0x32, 0x41, 0x7f, + 0x17, 0xd6, 0x9e, 0xc7, 0x73, 0xbe, 0xc3, 0xd2, 0x54, 0x6c, 0x9c, 0x88, 0xe4, 0x62, 0xa2, 0xb7, + 0x30, 0xd3, 0x8a, 0x12, 0x45, 0x12, 0x91, 0x49, 0x58, 0x24, 0xb9, 0x60, 0x2d, 0xb7, 0xac, 0x06, + 0xf9, 0x7f, 0xb6, 0x60, 0x28, 0xef, 0xa2, 0x0f, 0x69, 0x4e, 0x32, 0x81, 0xb9, 0xdf, 0x05, 0x07, + 0xf7, 0x17, 0x0a, 0xeb, 0xdf, 0xbb, 0x65, 0x36, 0xbf, 0xf2, 0xd5, 0x20, 0x90, 0x4c, 0xee, 0x36, + 0xf4, 0x09, 0xcd, 0xb3, 0x90, 0xe6, 0x38, 0x76, 0xdb, 0xb8, 0x66, 0xb4, 0xbc, 0xc6, 0xbc, 0xf1, + 0x06, 0xfa, 0x22, 0xe1, 0x71, 0x75, 0x76, 0x68, 0xdd, 0xc3, 0x04, 0xfd, 0x3f, 0x55, 0xb6, 0x3e, + 0x25, 0xe1, 0x29, 0xb9, 0x82, 0xad, 0x3f, 0x01, 0x48, 0xc4, 0xd2, 0xec, 0x52, 0xa6, 0x6a, 0x6b, + 0x2e, 0x68, 0xe9, 0xbf, 0x2c, 0xb8, 0x26, 0x85, 0x3c, 0xa6, 0xa7, 0x71, 0x4e, 0xa2, 0x2b, 0xd8, + 0xfa, 0x39, 0x74, 0xd8, 0xfc, 0x52, 0x76, 0x2a, 0x7e, 0xf7, 0x09, 0x0c, 0x63, 0xa9, 0x56, 0x90, + 0xd5, 0x70, 0x70, 0x11, 0x11, 0xcd, 0x85, 0xcb, 0xfe, 0xb6, 0x57, 0xf9, 0xfb, 0x4f, 0x0b, 0x36, + 0xa5, 0xa4, 0x9f, 0xc6, 0xe3, 0xd9, 0x07, 0x76, 0xf7, 0x4b, 0xd8, 0x98, 0xa1, 0xd6, 0x4b, 0x7b, + 0xdb, 0x58, 0x77, 0x41, 0x67, 0xff, 0x6b, 0xc1, 0xcd, 0x32, 0xb9, 0x13, 0xb6, 0x73, 0x22, 0xae, + 0xba, 0xd2, 0x63, 0xd1, 0x0b, 0x91, 0xc4, 0x96, 0x2c, 0x47, 0x1c, 0x0d, 0x79, 0x07, 0x1f, 0x7f, + 0x04, 0xbd, 0x49, 0x4c, 0xc3, 0x44, 0xbb, 0xf9, 0xbd, 0x7d, 0x71, 0xbd, 0x44, 0x74, 0xf0, 0xb4, + 0x50, 0x3d, 0x5a, 0xbd, 0x07, 0x95, 0x74, 0x9d, 0x27, 0xe7, 0x02, 0x79, 0xf2, 0xff, 0x6e, 0xc1, + 0x26, 0x82, 0x3b, 0xd8, 0xe3, 0xaf, 0x92, 0xea, 0xfb, 0xd0, 0x55, 0x6f, 0x66, 0x17, 0x8e, 0x43, + 0xb9, 0x40, 0xec, 0x60, 0xf9, 0x76, 0x77, 0xa9, 0x44, 0x6b, 0x6b, 0x2e, 0x98, 0xe4, 0x3f, 0x5a, + 0x70, 0xa3, 0x32, 0x5c, 0xcf, 0xb1, 0x38, 0x77, 0x15, 0x59, 0x27, 0x59, 0x87, 0xea, 0x60, 0xd8, + 0x97, 0xab, 0xfb, 0xd6, 0xe5, 0x6a, 0xc2, 0xff, 0xca, 0x02, 0xef, 0x09, 0x8b, 0x29, 0xf2, 0x3c, + 0x98, 0xcf, 0x13, 0xf5, 0xe4, 0x7a, 0x85, 0x8c, 0xfc, 0x00, 0x7a, 0xa1, 0x14, 0x40, 0x73, 0x65, + 0xf6, 0xb9, 0x0f, 0x0b, 0x35, 0xb7, 0x9c, 0xd9, 0x42, 0x5e, 0xbd, 0xfe, 0x2a, 0xca, 0xff, 0x8b, + 0x05, 0x9e, 0x66, 0xd4, 0x61, 0xc6, 0xc6, 0x84, 0xf3, 0x0f, 0xdc, 0x1a, 0xd0, 0x38, 0xed, 0xf2, + 0xac, 0x28, 0xcd, 0xe8, 0xb6, 0x61, 0xf4, 0x0c, 0xae, 0xc9, 0xfb, 0xbb, 0x66, 0xb9, 0x98, 0xa3, + 0xc2, 0x48, 0x0e, 0x3f, 0x72, 0x4e, 0x2f, 0x49, 0xf3, 0x41, 0x45, 0xbd, 0x8e, 0xd7, 0x0f, 0x2a, + 0x77, 0x00, 0xc2, 0x28, 0xfa, 0x05, 0xcb, 0xa2, 0x98, 0x4e, 0x55, 0x74, 0x34, 0xc4, 0x7f, 0x02, + 0x03, 0x31, 0xc9, 0x3d, 0x67, 0xf5, 0x6b, 0xc3, 0x55, 0xdf, 0x0a, 0xfc, 0x5f, 0xc2, 0xed, 0x25, + 0xc3, 0x1f, 0x44, 0x91, 0x0a, 0xf7, 0x17, 0x30, 0x98, 0x68, 0x9a, 0x54, 0xd4, 0xcd, 0x4b, 0x8d, + 0x6e, 0x4a, 0x60, 0xb0, 0xfb, 0x2f, 0xe1, 0xce, 0x92, 0x70, 0x33, 0x9f, 0xef, 0xa8, 0xe0, 0xf7, + 0x16, 0x0c, 0x95, 0x86, 0xca, 0xe6, 0x4f, 0xa1, 0x23, 0xdf, 0xe8, 0x94, 0xb0, 0x8f, 0x1a, 0xc2, + 0xca, 0xf7, 0xc4, 0x40, 0xb1, 0x2d, 0xef, 0x6b, 0x7b, 0xc5, 0xbe, 0x76, 0x3f, 0x6b, 0x6c, 0xb7, + 0x73, 0xcb, 0xbc, 0xdc, 0x69, 0x41, 0x59, 0x16, 0xbb, 0x24, 0x21, 0xf9, 0xfb, 0xf1, 0xf9, 0x00, + 0x36, 0xf0, 0x79, 0xf0, 0xbd, 0x65, 0xe9, 0x67, 0xb0, 0x89, 0x02, 0xdf, 0xa3, 0x8d, 0x3f, 0x87, + 0x9b, 0x75, 0xa0, 0xf5, 0x26, 0xf8, 0x8e, 0x72, 0xbf, 0x07, 0xd7, 0x8f, 0x48, 0x32, 0x11, 0x52, + 0x5f, 0xcc, 0xa3, 0xea, 0x14, 0x39, 0xe3, 0x81, 0xe2, 0xb8, 0x83, 0x7f, 0x60, 0x7d, 0xf6, 0xff, + 0x00, 0x00, 0x00, 0xff, 0xff, 0x5a, 0xf7, 0xb0, 0x0f, 0xd3, 0x1a, 0x00, 0x00, } diff --git a/pkg/proto/sdk_ws/ws.proto b/pkg/proto/sdk_ws/ws.proto index 2ef641334..bd3729e85 100644 --- a/pkg/proto/sdk_ws/ws.proto +++ b/pkg/proto/sdk_ws/ws.proto @@ -6,96 +6,96 @@ package open_im_sdk;//The package name to which the proto file belongs message GroupInfo{ - string GroupID = 1; - string GroupName = 2; - string Notification = 3; - string Introduction = 4; - string FaceUrl = 5; - string OwnerUserID = 6; - uint32 CreateTime = 7; - uint32 MemberCount = 8; - string Ex = 9; - int32 Status = 10; - string CreatorUserID = 11; - int32 GroupType = 12; + string groupID = 1; + string groupName = 2; + string notification = 3; + string introduction = 4; + string faceURL = 5; + string ownerUserID = 6; + uint32 createTime = 7; + uint32 memberCount = 8; + string ex = 9; + int32 status = 10; + string creatorUserID = 11; + int32 groupType = 12; } message GroupMemberFullInfo { - string GroupID = 1 ; - string UserID = 2 ; + string groupID = 1 ; + string userID = 2 ; int32 roleLevel = 3; - int64 JoinTime = 4; - string Nickname = 5; - string FaceUrl = 6; - int32 AppMangerLevel = 7; //if >0 - int32 JoinSource = 8; - string OperatorUserID = 9; - string Ex = 10; + int64 joinTime = 4; + string nickname = 5; + string faceURL = 6; + int32 appMangerLevel = 7; //if >0 + int32 joinSource = 8; + string operatorUserID = 9; + string ex = 10; } message PublicUserInfo{ - string UserID = 1; - string Nickname = 2; - string FaceUrl = 3; - int32 Gender = 4; - int32 AppMangerLevel = 5; //if >0 + string userID = 1; + string nickname = 2; + string faceURL = 3; + int32 gender = 4; + int32 appMangerLevel = 5; //if >0 } message UserInfo{ - string UserID = 1; - string Nickname = 2; - string FaceUrl = 3; - int32 Gender = 4; - string PhoneNumber = 5; - uint32 Birth = 6; - string Email = 7; - string Ex = 8; - uint32 CreateTime = 9; - int32 AppMangerLevel = 10; + string userID = 1; + string nickname = 2; + string faceURL = 3; + int32 gender = 4; + string phoneNumber = 5; + uint32 birth = 6; + string email = 7; + string ex = 8; + uint32 createTime = 9; + int32 appMangerLevel = 10; } message FriendInfo{ - string OwnerUserID = 1; - string Remark = 2; - uint32 CreateTime = 3; - UserInfo FriendUser = 4; - int32 AddSource = 5; - string OperatorUserID = 6; - string Ex = 7; + string ownerUserID = 1; + string remark = 2; + uint32 createTime = 3; + UserInfo friendUser = 4; + int32 addSource = 5; + string operatorUserID = 6; + string ex = 7; } message BlackInfo{ - string OwnerUserID = 1; - uint32 CreateTime = 2; - PublicUserInfo BlackUserInfo = 3; - int32 AddSource = 4; - string OperatorUserID = 5; - string Ex = 6; + string ownerUserID = 1; + uint32 createTime = 2; + PublicUserInfo blackUserInfo = 3; + int32 addSource = 4; + string operatorUserID = 5; + string ex = 6; } message GroupRequest{ - string UserID = 1; - string GroupID = 2; - string HandleResult = 3; - string ReqMsg = 4; - string HandleMsg = 5; - uint32 ReqTime = 6; - string HandleUserID = 7; - uint32 HandleTime = 8; - string Ex = 9; + string userID = 1; + string groupID = 2; + string handleResult = 3; + string reqMsg = 4; + string handleMsg = 5; + uint32 reqTime = 6; + string handleUserID = 7; + uint32 handleTime = 8; + string ex = 9; } message FriendRequest{ - string FromUserID = 1; - string ToUserID = 2; - int32 HandleResult = 3; - string ReqMsg = 4; - uint32 CreateTime = 5; - string HandlerUserID = 6; - string HandleMsg = 7; - uint32 HandleTime = 8; - string Ex = 9; + string fromUserID = 1; + string toUserID = 2; + int32 handleResult = 3; + string reqMsg = 4; + uint32 createTime = 5; + string handlerUserID = 6; + string handleMsg = 7; + uint32 handleTime = 8; + string ex = 9; } ///////////////////////////////////base end///////////////////////////////////// @@ -169,8 +169,8 @@ message GatherFormat{ message UserSendMsgResp { - string ServerMsgID = 1; - string ClientMsgID = 2; + string serverMsgID = 1; + string clientMsgID = 2; int64 sendTime = 3; } @@ -191,14 +191,14 @@ message MsgData { int64 seq = 14; int64 sendTime = 15; int64 createTime = 16; - map Options = 17; + map options = 17; OfflinePushInfo offlinePushInfo = 18; } message OfflinePushInfo{ - string Title = 1; - string Desc = 2; - string Ex = 3; + string title = 1; + string desc = 2; + string ex = 3; string iOSPushSound = 4; bool iOSBadgeCount = 5; } @@ -212,71 +212,71 @@ message OfflinePushInfo{ message TipsComm{ - bytes Detail = 1; - string DefaultTips = 2; + bytes detail = 1; + string defaultTips = 2; } //////////////////////group///////////////////// //Actively join the group message MemberEnterTips{ - GroupInfo Group = 1; - GroupMemberFullInfo EntrantUser = 2; - int64 OperationTime = 3; + GroupInfo group = 1; + GroupMemberFullInfo entrantUser = 2; + int64 operationTime = 3; } //Actively leave the group message MemberLeaveTips{ - GroupInfo Group = 1; - GroupMemberFullInfo LeaverUser = 2; - int64 OperationTime = 3; + GroupInfo group = 1; + GroupMemberFullInfo leaverUser = 2; + int64 operationTime = 3; } message MemberInvitedTips{ - GroupInfo Group = 1; - GroupMemberFullInfo OpUser = 2; - repeated GroupMemberFullInfo InvitedUserList = 3; - int64 OperationTime = 4; + GroupInfo group = 1; + GroupMemberFullInfo opUser = 2; + repeated GroupMemberFullInfo invitedUserList = 3; + int64 operationTime = 4; } message MemberKickedTips{ - GroupInfo Group = 1; - GroupMemberFullInfo OpUser = 2; - repeated GroupMemberFullInfo KickedUserList = 3; - int64 OperationTime = 4; + GroupInfo group = 1; + GroupMemberFullInfo opUser = 2; + repeated GroupMemberFullInfo kickedUserList = 3; + int64 operationTime = 4; } message MemberInfoChangedTips{ - int32 ChangeType = 1; ///bitwise operators 0001:member info changed; 0010:mute ; - GroupMemberFullInfo OpUser = 2; //who do this - GroupMemberFullInfo FinalInfo = 3; // - int64 MuteTime = 4; - GroupInfo Group = 5; + int32 changeType = 1; ///bitwise operators 0001:member info changed; 0010:mute ; + GroupMemberFullInfo opUser = 2; //who do this + GroupMemberFullInfo finalInfo = 3; // + int64 muteTime = 4; + GroupInfo group = 5; } message GroupCreatedTips{ - GroupInfo Group = 1; - GroupMemberFullInfo Creator = 2; - repeated GroupMemberFullInfo MemberList = 3; - int64 OperationTime = 4; + GroupInfo group = 1; + GroupMemberFullInfo creator = 2; + repeated GroupMemberFullInfo memberList = 3; + int64 operationTime = 4; } message GroupInfoChangedTips{ - int32 ChangedType = 1; //bitwise operators: 0001:groupName; 0010:Notification 0100:Introduction; 1000:FaceUrl - GroupInfo Group = 2; - GroupMemberFullInfo OpUser = 3; + int32 changedType = 1; //bitwise operators: 0001:groupName; 0010:Notification 0100:Introduction; 1000:FaceUrl + GroupInfo group = 2; + GroupMemberFullInfo opUser = 3; } message JoinGroupApplicationTips{ - GroupInfo Group = 1; - PublicUserInfo Applicant = 2; - string Reason = 3; + GroupInfo group = 1; + PublicUserInfo applicant = 2; + string reason = 3; } message ApplicationProcessedTips{ - GroupInfo Group = 1; - GroupMemberFullInfo OpUser = 2; - int32 Result = 3; - string Reason = 4; + GroupInfo group = 1; + GroupMemberFullInfo opUser = 2; + int32 result = 3; + string reason = 4; } //////////////////////friend///////////////////// @@ -288,53 +288,53 @@ message ApplicationProcessedTips{ //} message FriendApplication{ - int64 AddTime = 1; - string AddSource = 2; - string AddWording = 3; + int64 addTime = 1; + string addSource = 2; + string addWording = 3; } message FromToUserID{ - string FromUserID = 1; - string ToUserID = 2; + string fromUserID = 1; + string toUserID = 2; } //FromUserID apply to add ToUserID message FriendApplicationAddedTips{ - FromToUserID FromToUserID = 1; + FromToUserID fromToUserID = 1; } //FromUserID accept or reject ToUserID message FriendApplicationProcessedTips{ - FromToUserID FromToUserID = 1; + FromToUserID fromToUserID = 1; } // FromUserID Added a friend ToUserID message FriendAddedTips{ - FriendInfo Friend = 1; - int64 OperationTime = 2; - PublicUserInfo OpUser = 3; //who do this + FriendInfo friend = 1; + int64 operationTime = 2; + PublicUserInfo opUser = 3; //who do this } // FromUserID deleted a friend ToUserID message FriendDeletedTips{ - FromToUserID FromToUserID = 1; + FromToUserID fromToUserID = 1; } message BlackAddedTips{ - FromToUserID FromToUserID = 1; + FromToUserID fromToUserID = 1; } message BlackDeletedTips{ - FromToUserID FromToUserID = 1; + FromToUserID fromToUserID = 1; } message FriendInfoChangedTips{ - FromToUserID FromToUserID = 1; + FromToUserID fromToUserID = 1; } //////////////////////user///////////////////// message SelfInfoUpdatedTips{ - string UserID = 1; + string userID = 1; } From 6bc69d5a75f0baf3bbedb6a3409eb2d0bdd6d1f3 Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Fri, 14 Jan 2022 09:59:25 +0800 Subject: [PATCH 485/814] proto json tag modify --- cmd/open_im_timer_task/main.go | 2 +- internal/api/user/user.go | 2 +- internal/rpc/group/group.go | 2 +- .../im_mysql_msg_model/receive_model.go | 19 ------------------- 4 files changed, 3 insertions(+), 22 deletions(-) delete mode 100644 pkg/common/db/mysql_model/im_mysql_msg_model/receive_model.go diff --git a/cmd/open_im_timer_task/main.go b/cmd/open_im_timer_task/main.go index 56fd6a4c0..954c41ae6 100644 --- a/cmd/open_im_timer_task/main.go +++ b/cmd/open_im_timer_task/main.go @@ -40,7 +40,7 @@ func main() { // } //} for { - uidList, err := im_mysql_model.SelectAllUID() + uidList, err := im_mysql_model.SelectAllUserID() if err != nil { //log.NewError("999999", err.Error()) } else { diff --git a/internal/api/user/user.go b/internal/api/user/user.go index d249486e6..c57eeb88d 100644 --- a/internal/api/user/user.go +++ b/internal/api/user/user.go @@ -45,7 +45,7 @@ func GetUsersInfo(c *gin.Context) { var publicUserInfoList []*open_im_sdk.PublicUserInfo for _, v := range RpcResp.UserInfoList { publicUserInfoList = append(publicUserInfoList, - &open_im_sdk.PublicUserInfo{UserID: v.UserID, Nickname: v.Nickname, FaceUrl: v.FaceUrl, Gender: v.Gender, AppMangerLevel: v.AppMangerLevel}) + &open_im_sdk.PublicUserInfo{UserID: v.UserID, Nickname: v.Nickname, FaceURL: v.FaceURL, Gender: v.Gender, AppMangerLevel: v.AppMangerLevel}) } resp := api.GetUsersInfoResp{CommResp: api.CommResp{ErrCode: RpcResp.CommonResp.ErrCode, ErrMsg: RpcResp.CommonResp.ErrMsg}, UserInfoList: publicUserInfoList} diff --git a/internal/rpc/group/group.go b/internal/rpc/group/group.go index 210c997b5..3ba8d5eea 100644 --- a/internal/rpc/group/group.go +++ b/internal/rpc/group/group.go @@ -573,7 +573,7 @@ func (s *groupServer) SetGroupInfo(ctx context.Context, req *pbGroup.SetGroupInf if group.Introduction != req.GroupInfo.Introduction && req.GroupInfo.Introduction != "" { changedType = changedType | (1 << 2) } - if group.FaceUrl != req.GroupInfo.FaceUrl && req.GroupInfo.FaceUrl != "" { + if group.FaceUrl != req.GroupInfo.FaceURL && req.GroupInfo.FaceURL != "" { changedType = changedType | (1 << 3) } //only administrators can set group information diff --git a/pkg/common/db/mysql_model/im_mysql_msg_model/receive_model.go b/pkg/common/db/mysql_model/im_mysql_msg_model/receive_model.go deleted file mode 100644 index 48d5f6c4d..000000000 --- a/pkg/common/db/mysql_model/im_mysql_msg_model/receive_model.go +++ /dev/null @@ -1,19 +0,0 @@ -/* -** description(""). -** copyright('tuoyun,www.tuoyun.net'). -** author("fg,Gordon@tuoyun.net"). -** time(2021/3/4 11:18). - */ -package im_mysql_msg_model - -import ( - "time" -) - -// Receive Inbox table structure -type Receive struct { - UserId string `gorm:"primary_key"` // 收件箱主键ID - Seq int64 `gorm:"primary_key"` // 收件箱主键ID - MsgId string - CreateTime *time.Time -} From 3d994cc2cf2b414758e6fde6a8fa2ac5586eaf42 Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Fri, 14 Jan 2022 13:44:46 +0800 Subject: [PATCH 486/814] Refactor code --- config/config.yaml | 13 +- internal/rpc/group/group.go | 10 +- internal/rpc/msg/friend_notification.go | 254 ++++++++ internal/rpc/msg/group_notification.go | 359 ++++++++++ internal/rpc/msg/notification.go | 616 ------------------ internal/rpc/msg/send_msg.go | 2 +- .../im_mysql_model/group_member_model.go | 9 +- pkg/common/utils/utils.go | 28 +- pkg/utils/strings.go | 2 - 9 files changed, 653 insertions(+), 640 deletions(-) create mode 100644 internal/rpc/msg/friend_notification.go create mode 100644 internal/rpc/msg/group_notification.go delete mode 100644 internal/rpc/msg/notification.go diff --git a/config/config.yaml b/config/config.yaml index 84728c201..8658ecfd5 100644 --- a/config/config.yaml +++ b/config/config.yaml @@ -178,28 +178,29 @@ iOSPush: notification: groupCreated: conversation: - conversationChanged: true + type: 1 unreadCount: true offlinePush: switch: true - title: "create group title" + title: "create group title" # xx create the group desc: "create group desc" ext: "create group ext" defaultTips: tips: "create the group" # xx create the group + groupInfoChanged: conversation: - conversationChanged: true - unreadCount: true + type: 1 + unreadCount: false offlinePush: - switch: true + switch: false title: "group info changed title" desc: "group info changed desc" ext: "group info changed ext" defaultTips: tips: "group info changed by" # group info changed by xx - conversationChanged: 0 + #---------------demo configuration---------------------# diff --git a/internal/rpc/group/group.go b/internal/rpc/group/group.go index 210c997b5..8fb541749 100644 --- a/internal/rpc/group/group.go +++ b/internal/rpc/group/group.go @@ -143,7 +143,13 @@ func (s *groupServer) CreateGroup(ctx context.Context, req *pbGroup.CreateGroupR } chat.GroupCreatedNotification(req.OperationID, req.OpUserID, req.OwnerUserID, groupId, okUserIDList) utils.CopyStructFields(resp.GroupInfo, group) - resp.GroupInfo.MemberCount = imdb.GetGroupMemberNumByGroupID(groupId) + resp.GroupInfo.MemberCount, err = imdb.GetGroupMemberNumByGroupID(groupId) + if err != nil { + log.NewError(req.OperationID, "GetGroupMemberNumByGroupID failed ", err.Error(), groupId) + resp.ErrCode = constant.ErrDB.ErrCode + resp.ErrMsg = constant.ErrDB.ErrMsg + return resp, nil + } resp.GroupInfo.OwnerUserID = req.OwnerUserID log.NewInfo(req.OperationID, "rpc CreateGroup return ", resp.String()) @@ -166,7 +172,7 @@ func (s *groupServer) GetJoinedGroupList(ctx context.Context, req *pbGroup.GetJo var resp pbGroup.GetJoinedGroupListResp for _, v := range joinedGroupList { var groupNode open_im_sdk.GroupInfo - num := imdb.GetGroupMemberNumByGroupID(v) + num, err := imdb.GetGroupMemberNumByGroupID(v) owner, err2 := imdb.GetGroupOwnerInfoByGroupID(v) group, err := imdb.GetGroupInfoByGroupID(v) if num > 0 && owner != nil && err2 == nil && group != nil && err == nil { diff --git a/internal/rpc/msg/friend_notification.go b/internal/rpc/msg/friend_notification.go new file mode 100644 index 000000000..df71e919f --- /dev/null +++ b/internal/rpc/msg/friend_notification.go @@ -0,0 +1,254 @@ +package msg + +import ( + "Open_IM/pkg/common/constant" + imdb "Open_IM/pkg/common/db/mysql_model/im_mysql_model" + "Open_IM/pkg/common/log" + pbFriend "Open_IM/pkg/proto/friend" + open_im_sdk "Open_IM/pkg/proto/sdk_ws" + "Open_IM/pkg/utils" + "encoding/json" +) + +//message MemberInfoChangedTips{ +// int32 ChangeType = 1; //1:info changed; 2:mute +// GroupMemberFullInfo OpUser = 2; //who do this +// GroupMemberFullInfo FinalInfo = 3; // +// uint64 MuteTime = 4; +// GroupInfo Group = 5; +//} +//func MemberInfoChangedNotification(operationID string, group *immysql.Group, opUser *immysql.GroupMember, userFinalInfo *immysql.GroupMember) { + +//} + +//message FriendApplicationAddedTips{ +// PublicUserInfo OpUser = 1; //user1 +// FriendApplication Application = 2; +// PublicUserInfo OpedUser = 3; //user2 +//} + +func getFromToUserNickname(fromUserID, toUserID string) (string, string) { + from, err1 := imdb.GetUserByUserID(fromUserID) + to, err2 := imdb.GetUserByUserID(toUserID) + if err1 != nil || err2 != nil { + log.NewError("FindUserByUID failed ", err1, err2, fromUserID, toUserID) + } + fromNickname, toNickname := "", "" + if from != nil { + fromNickname = from.Nickname + } + if to != nil { + toNickname = to.Nickname + } + return fromNickname, toNickname +} + +func FriendApplicationAddedNotification(req *pbFriend.AddFriendReq) { + var n NotificationMsg + n.SendID = req.CommID.FromUserID + n.RecvID = req.CommID.ToUserID + n.ContentType = constant.FriendApplicationAddedNotification + n.SessionType = constant.SingleChatType + n.MsgFrom = constant.SysMsgType + n.OperationID = req.CommID.OperationID + + var FriendApplicationAddedTips open_im_sdk.FriendApplicationAddedTips + FriendApplicationAddedTips.FromToUserID.FromUserID = req.CommID.FromUserID + FriendApplicationAddedTips.FromToUserID.ToUserID = req.CommID.ToUserID + fromUserNickname, toUserNickname := getFromToUserNickname(req.CommID.OperationID, req.CommID.FromUserID, req.CommID.ToUserID) + var tips open_im_sdk.TipsComm + tips.Detail, _ = json.Marshal(FriendApplicationAddedTips) + tips.DefaultTips = fromUserNickname + " FriendApplicationAddedNotification " + toUserNickname + n.Content, _ = json.Marshal(tips) + Notification(&n, true) +} + +func FriendApplicationProcessedNotification(req *pbFriend.AddFriendResponseReq) { + var n NotificationMsg + n.SendID = req.CommID.FromUserID + n.RecvID = req.CommID.ToUserID + n.ContentType = constant.FriendApplicationProcessedNotification + n.SessionType = constant.SingleChatType + n.MsgFrom = constant.SysMsgType + n.OperationID = req.CommID.OperationID + + var FriendApplicationProcessedTips open_im_sdk.FriendApplicationProcessedTips + FriendApplicationProcessedTips.FromToUserID.FromUserID = req.CommID.FromUserID + FriendApplicationProcessedTips.FromToUserID.ToUserID = req.CommID.ToUserID + fromUserNickname, toUserNickname := getFromToUserNickname(req.CommID.OperationID, req.CommID.FromUserID, req.CommID.ToUserID) + var tips open_im_sdk.TipsComm + tips.Detail, _ = json.Marshal(FriendApplicationProcessedTips) + tips.DefaultTips = fromUserNickname + " FriendApplicationProcessedNotification " + toUserNickname + n.Content, _ = json.Marshal(tips) + Notification(&n) +} + +func FriendAddedNotification(operationID, opUserID, fromUserID, toUserID string) { + var n NotificationMsg + n.SendID = fromUserID + n.RecvID = toUserID + n.ContentType = constant.FriendAddedNotification + n.SessionType = constant.SingleChatType + n.MsgFrom = constant.SysMsgType + n.OperationID = operationID + + var FriendAddedTips open_im_sdk.FriendAddedTips + + user, err := imdb.GetUserByUserID(opUserID) + if err != nil { + log.NewError(operationID, "FindUserByUID failed ", err.Error(), opUserID) + + } else { + utils.CopyStructFields(FriendAddedTips.OpUser, user) + } + + friend, err := imdb.GetFriendRelationshipFromFriend(fromUserID, toUserID) + if err != nil { + log.NewError(operationID, "FindUserByUID failed ", err.Error(), fromUserID, toUserID) + } else { + FriendAddedTips.Friend.Remark = friend.Remark + } + + from, err := imdb.GetUserByUserID(fromUserID) + if err != nil { + log.NewError(operationID, "FindUserByUID failed ", err.Error(), fromUserID) + + } else { + utils.CopyStructFields(FriendAddedTips.Friend, from) + } + + to, err := imdb.GetUserByUserID(toUserID) + if err != nil { + log.NewError(operationID, "FindUserByUID failed ", err.Error(), toUserID) + + } else { + utils.CopyStructFields(FriendAddedTips.Friend.FriendUser, to) + } + + fromUserNickname, toUserNickname := from.Nickname, to.Nickname + var tips open_im_sdk.TipsComm + tips.Detail, _ = json.Marshal(FriendAddedTips) + tips.DefaultTips = fromUserNickname + " FriendAddedNotification " + toUserNickname + n.Content, _ = json.Marshal(tips) + Notification(&n) +} + +//message FriendDeletedTips{ +// FriendInfo Friend = 1; +//} +func FriendDeletedNotification(req *pbFriend.DeleteFriendReq) { + var n NotificationMsg + n.SendID = req.CommID.FromUserID + n.RecvID = req.CommID.ToUserID + n.ContentType = constant.FriendDeletedNotification + n.SessionType = constant.SingleChatType + n.MsgFrom = constant.SysMsgType + n.OperationID = req.CommID.OperationID + + var FriendDeletedTips open_im_sdk.FriendDeletedTips + FriendDeletedTips.FromToUserID.FromUserID = req.CommID.FromUserID + FriendDeletedTips.FromToUserID.ToUserID = req.CommID.ToUserID + fromUserNickname, toUserNickname := getFromToUserNickname(req.CommID.FromUserID, req.CommID.ToUserID) + var tips open_im_sdk.TipsComm + tips.Detail, _ = json.Marshal(FriendDeletedTips) + tips.DefaultTips = fromUserNickname + " FriendDeletedNotification " + toUserNickname + n.Content, _ = json.Marshal(tips) + Notification(&n) +} + +//message FriendInfoChangedTips{ +// FriendInfo Friend = 1; +// PublicUserInfo OpUser = 2; +// uint64 OperationTime = 3; +//} +func FriendInfoChangedNotification(operationID, opUserID, fromUserID, toUserID string) { + var n NotificationMsg + n.SendID = fromUserID + n.RecvID = toUserID + n.ContentType = constant.FriendInfoChangedNotification + n.SessionType = constant.SingleChatType + n.MsgFrom = constant.SysMsgType + n.OperationID = operationID + + var FriendInfoChangedTips open_im_sdk.FriendInfoChangedTips + FriendInfoChangedTips.FromToUserID.FromUserID = fromUserID + FriendInfoChangedTips.FromToUserID.ToUserID = toUserID + fromUserNickname, toUserNickname := getFromToUserNickname(fromUserID, toUserID) + var tips open_im_sdk.TipsComm + tips.Detail, _ = json.Marshal(FriendInfoChangedTips) + tips.DefaultTips = fromUserNickname + " FriendDeletedNotification " + toUserNickname + n.Content, _ = json.Marshal(tips) + Notification(&n) +} + +func BlackAddedNotification(req *pbFriend.AddBlacklistReq) { + var n NotificationMsg + n.SendID = req.CommID.FromUserID + n.RecvID = req.CommID.ToUserID + n.ContentType = constant.BlackAddedNotification + n.SessionType = constant.SingleChatType + n.MsgFrom = constant.SysMsgType + n.OperationID = req.CommID.OperationID + + var BlackAddedTips open_im_sdk.BlackAddedTips + BlackAddedTips.FromToUserID.FromUserID = req.CommID.FromUserID + BlackAddedTips.FromToUserID.ToUserID = req.CommID.ToUserID + fromUserNickname, toUserNickname := getFromToUserNickname(req.CommID.FromUserID, req.CommID.ToUserID) + var tips open_im_sdk.TipsComm + tips.Detail, _ = json.Marshal(BlackAddedTips) + tips.DefaultTips = fromUserNickname + " BlackAddedNotification " + toUserNickname + n.Content, _ = json.Marshal(tips) + Notification(&n) +} + +//message BlackDeletedTips{ +// BlackInfo Black = 1; +//} +func BlackDeletedNotification(req *pbFriend.RemoveBlacklistReq) { + var n NotificationMsg + n.SendID = req.CommID.FromUserID + n.RecvID = req.CommID.ToUserID + n.ContentType = constant.BlackDeletedNotification + n.SessionType = constant.SingleChatType + n.MsgFrom = constant.SysMsgType + n.OperationID = req.CommID.OperationID + + var BlackDeletedTips open_im_sdk.BlackDeletedTips + BlackDeletedTips.FromToUserID.FromUserID = req.CommID.FromUserID + BlackDeletedTips.FromToUserID.ToUserID = req.CommID.ToUserID + fromUserNickname, toUserNickname := getFromToUserNickname(req.CommID.FromUserID, req.CommID.ToUserID) + var tips open_im_sdk.TipsComm + tips.Detail, _ = json.Marshal(BlackDeletedTips) + tips.DefaultTips = fromUserNickname + " BlackDeletedNotification " + toUserNickname + n.Content, _ = json.Marshal(tips) + Notification(&n) +} + +//message SelfInfoUpdatedTips{ +// UserInfo SelfUserInfo = 1; +// PublicUserInfo OpUser = 2; +// uint64 OperationTime = 3; +//} +func SelfInfoUpdatedNotification(operationID, userID string) { + var n NotificationMsg + n.SendID = userID + n.RecvID = userID + n.ContentType = constant.SelfInfoUpdatedNotification + n.SessionType = constant.SingleChatType + n.MsgFrom = constant.SysMsgType + n.OperationID = operationID + + var SelfInfoUpdatedTips open_im_sdk.SelfInfoUpdatedTips + SelfInfoUpdatedTips.UserID = userID + + var tips open_im_sdk.TipsComm + u, err := imdb.GetUserByUserID(userID) + if err != nil { + log.NewError(operationID, "FindUserByUID failed ", err.Error(), userID) + } + + tips.Detail, _ = json.Marshal(SelfInfoUpdatedTips) + tips.DefaultTips = u.Nickname + " SelfInfoUpdatedNotification " + n.Content, _ = json.Marshal(tips) + Notification(&n) +} diff --git a/internal/rpc/msg/group_notification.go b/internal/rpc/msg/group_notification.go new file mode 100644 index 000000000..1d1af7d44 --- /dev/null +++ b/internal/rpc/msg/group_notification.go @@ -0,0 +1,359 @@ +package msg + +import ( + "Open_IM/pkg/common/constant" + imdb "Open_IM/pkg/common/db/mysql_model/im_mysql_model" + "Open_IM/pkg/common/log" + "Open_IM/pkg/common/token_verify" + utils2 "Open_IM/pkg/common/utils" + pbGroup "Open_IM/pkg/proto/group" + open_im_sdk "Open_IM/pkg/proto/sdk_ws" + "Open_IM/pkg/utils" + "encoding/json" +) + +//message GroupCreatedTips{ +// GroupInfo Group = 1; +// GroupMemberFullInfo Creator = 2; +// repeated GroupMemberFullInfo MemberList = 3; +// uint64 OperationTime = 4; +//} creator->group + +func setOpUserInfo(opUserID, groupID string, groupMemberInfo *open_im_sdk.GroupMemberFullInfo) error { + if token_verify.IsMangerUserID(opUserID) { + u, err := imdb.GetUserByUserID(opUserID) + if err != nil { + return utils.Wrap(err, "GetUserByUserID failed") + } + utils.CopyStructFields(groupMemberInfo, u) + groupMemberInfo.AppMangerLevel = 1 + } else { + u, err := imdb.GetGroupMemberInfoByGroupIDAndUserID(groupID, opUserID) + if err != nil { + return utils.Wrap(err, "GetGroupMemberInfoByGroupIDAndUserID failed") + } + utils.CopyStructFields(groupMemberInfo, u) + } + return nil +} + +func setGroupInfo(groupID string, groupInfo *open_im_sdk.GroupInfo) error { + group, err := imdb.GetGroupInfoByGroupID(groupID) + if err != nil { + return utils.Wrap(err, "GetGroupInfoByGroupID failed") + } + err = utils2.GroupDBCopyOpenIM(groupInfo, group) + if err != nil { + return utils.Wrap(err, "GetGroupMemberNumByGroupID failed") + } + return nil +} + +func setGroupMemberInfo(groupID, userID string, groupMemberInfo *open_im_sdk.GroupMemberFullInfo) error { + groupMember, err := imdb.GetGroupMemberInfoByGroupIDAndUserID(groupID, userID) + if err != nil { + return utils.Wrap(err, "") + } + if err = utils2.GroupMemberDBCopyOpenIM(groupMemberInfo, groupMember); err != nil { + return utils.Wrap(err, "") + } + return nil +} + +//func setGroupPublicUserInfo(operationID, groupID, userID string, publicUserInfo *open_im_sdk.PublicUserInfo) { +// group, err := imdb.GetGroupMemberInfoByGroupIDAndUserID(groupID, userID) +// if err != nil { +// log.NewError(operationID, "FindGroupMemberInfoByGroupIdAndUserId failed ", err.Error(), groupID, userID) +// return +// } +// utils.CopyStructFields(publicUserInfo, group) +//} + +//创建群后调用 +func GroupCreatedNotification(operationID, opUserID, OwnerUserID, groupID string, initMemberList []string) { + var n NotificationMsg + n.SendID = opUserID + n.RecvID = groupID + n.ContentType = constant.GroupCreatedNotification + n.SessionType = constant.GroupChatType + n.MsgFrom = constant.SysMsgType + n.OperationID = operationID + + GroupCreatedTips := open_im_sdk.GroupCreatedTips{Group: &open_im_sdk.GroupInfo{}, + Creator: &open_im_sdk.GroupMemberFullInfo{}} + if err := setOpUserInfo(GroupCreatedTips.Creator.UserID, groupID, GroupCreatedTips.Creator); err != nil { + log.NewError(operationID, "setOpUserInfo failed ", err.Error(), GroupCreatedTips.Creator.UserID, groupID, GroupCreatedTips.Creator) + } + err := setGroupInfo(groupID, GroupCreatedTips.Group) + if err != nil { + log.NewError(operationID, "setGroupInfo failed ", groupID, GroupCreatedTips.Group) + return + } + for _, v := range initMemberList { + var groupMemberInfo open_im_sdk.GroupMemberFullInfo + setGroupMemberInfo(groupID, v, &groupMemberInfo) + GroupCreatedTips.MemberList = append(GroupCreatedTips.MemberList, &groupMemberInfo) + } + var tips open_im_sdk.TipsComm + tips.Detail, _ = json.Marshal(GroupCreatedTips) + tips.DefaultTips = config.Config.Notification.GroupCreated.DefaultTips.Tips + n.Content, _ = json.Marshal(tips) + log.NewInfo(operationID, "Notification ", n) + Notification(&n) +} + +//message ReceiveJoinApplicationTips{ +// GroupInfo Group = 1; +// PublicUserInfo Applicant = 2; +// string Reason = 3; +//} apply->all managers GroupID string `protobuf:"bytes,1,opt,name=GroupID" json:"GroupID,omitempty"` +// ReqMessage string `protobuf:"bytes,2,opt,name=ReqMessage" json:"ReqMessage,omitempty"` +// OpUserID string `protobuf:"bytes,3,opt,name=OpUserID" json:"OpUserID,omitempty"` +// OperationID string `protobuf:"bytes,4,opt,name=OperationID" json:"OperationID,omitempty"` +//申请进群后调用 +func JoinApplicationNotification(req *pbGroup.JoinGroupReq) { + var n NotificationMsg + n.SendID = req.OpUserID + n.ContentType = constant.JoinApplicationNotification + n.SessionType = constant.SingleChatType + n.MsgFrom = constant.SysMsgType + n.OperationID = req.OperationID + + JoinGroupApplicationTips := open_im_sdk.JoinGroupApplicationTips{Group: &open_im_sdk.GroupInfo{}, Applicant: &open_im_sdk.PublicUserInfo{}} + err := setGroupInfo(req.GroupID, JoinGroupApplicationTips.Group) + if err != nil { + log.NewError(req.OperationID, "setGroupInfo failed ", err.Error(), req.GroupID, JoinGroupApplicationTips.Group) + return + } + + apply, err := imdb.GetUserByUserID(req.OpUserID) + if err != nil { + log.NewError(req.OperationID, "FindUserByUID failed ", err.Error(), req.OpUserID) + return + } + utils.CopyStructFields(JoinGroupApplicationTips.Applicant, apply) + JoinGroupApplicationTips.Reason = req.ReqMessage + + var tips open_im_sdk.TipsComm + tips.Detail, _ = json.Marshal(JoinGroupApplicationTips) + tips.DefaultTips = "JoinGroupApplicationTips" + n.Content, _ = json.Marshal(tips) + managerList, err := imdb.GetOwnerManagerByGroupID(req.GroupID) + if err != nil { + log.NewError(req.OperationID, "GetOwnerManagerByGroupId failed ", err.Error(), req.GroupID) + return + } + for _, v := range managerList { + n.RecvID = v.UserID + log.NewInfo(req.OperationID, "Notification ", n) + Notification(&n) + } +} + +//message ApplicationProcessedTips{ +// GroupInfo Group = 1; +// GroupMemberFullInfo OpUser = 2; +// int32 Result = 3; +// string Reason = 4; +//} +//处理进群请求后调用 +func ApplicationProcessedNotification(req *pbGroup.GroupApplicationResponseReq) { + var n NotificationMsg + n.SendID = req.OpUserID + n.ContentType = constant.ApplicationProcessedNotification + n.SessionType = constant.SingleChatType + n.MsgFrom = constant.SysMsgType + n.OperationID = req.OperationID + n.RecvID = req.FromUserID + ApplicationProcessedTips := open_im_sdk.ApplicationProcessedTips{Group: &open_im_sdk.GroupInfo{}, OpUser: &open_im_sdk.GroupMemberFullInfo{}} + setGroupInfo(req.GroupID, ApplicationProcessedTips.Group) + setOpUserInfo(req.OpUserID, req.GroupID, ApplicationProcessedTips.OpUser) + ApplicationProcessedTips.Reason = req.HandledMsg + ApplicationProcessedTips.Result = req.HandleResult + + var tips open_im_sdk.TipsComm + tips.Detail, _ = json.Marshal(ApplicationProcessedTips) + tips.DefaultTips = "ApplicationProcessedNotification" + n.Content, _ = json.Marshal(tips) + + Notification(&n) +} + +//message MemberInvitedTips{ +// GroupInfo Group = 1; +// GroupMemberFullInfo OpUser = 2; +// GroupMemberFullInfo InvitedUser = 3; +// uint64 OperationTime = 4; +//} +//被邀请进群后调用 +func MemberInvitedNotification(operationID, groupID, opUserID, reason string, invitedUserIDList []string) { + var n NotificationMsg + n.SendID = opUserID + n.ContentType = constant.MemberInvitedNotification + n.SessionType = constant.GroupChatType + n.MsgFrom = constant.SysMsgType + n.OperationID = operationID + + ApplicationProcessedTips := open_im_sdk.MemberInvitedTips{Group: &open_im_sdk.GroupInfo{}, OpUser: &open_im_sdk.GroupMemberFullInfo{}} + setGroupInfo(groupID, ApplicationProcessedTips.Group) + setOpUserInfo(opUserID, groupID, ApplicationProcessedTips.OpUser) + for _, v := range invitedUserIDList { + var groupMemberInfo open_im_sdk.GroupMemberFullInfo + setGroupMemberInfo(groupID, v, &groupMemberInfo) + ApplicationProcessedTips.InvitedUserList = append(ApplicationProcessedTips.InvitedUserList, &groupMemberInfo) + } + var tips open_im_sdk.TipsComm + tips.Detail, _ = json.Marshal(ApplicationProcessedTips) + tips.DefaultTips = "MemberInvitedNotification" + n.Content, _ = json.Marshal(tips) + n.RecvID = groupID + Notification(&n) +} + +//message MemberKickedTips{ +// GroupInfo Group = 1; +// GroupMemberFullInfo OpUser = 2; +// GroupMemberFullInfo KickedUser = 3; +// uint64 OperationTime = 4; +//} +//被踢后调用 +func MemberKickedNotification(req *pbGroup.KickGroupMemberReq, kickedUserIDList []string) { + + var n NotificationMsg + n.SendID = req.OpUserID + n.ContentType = constant.MemberKickedNotification + n.SessionType = constant.GroupChatType + n.MsgFrom = constant.SysMsgType + n.OperationID = req.OperationID + + MemberKickedTips := open_im_sdk.MemberKickedTips{Group: &open_im_sdk.GroupInfo{}, OpUser: &open_im_sdk.GroupMemberFullInfo{}} + setGroupInfo(req.GroupID, MemberKickedTips.Group) + setOpUserInfo(req.OpUserID, req.GroupID, MemberKickedTips.OpUser) + for _, v := range kickedUserIDList { + var groupMemberInfo open_im_sdk.GroupMemberFullInfo + setGroupMemberInfo(req.GroupID, v, &groupMemberInfo) + MemberKickedTips.KickedUserList = append(MemberKickedTips.KickedUserList, &groupMemberInfo) + } + var tips open_im_sdk.TipsComm + tips.Detail, _ = json.Marshal(MemberKickedTips) + tips.DefaultTips = "MemberKickedNotification" + n.Content, _ = json.Marshal(tips) + n.RecvID = req.GroupID + Notification(&n) + + for _, v := range kickedUserIDList { + n.SessionType = constant.SingleChatType + n.RecvID = v + Notification(&n) + } +} + +//message GroupInfoChangedTips{ +// int32 ChangedType = 1; //bitwise operators: 1:groupName; 10:Notification 100:Introduction; 1000:FaceUrl +// GroupInfo Group = 2; +// GroupMemberFullInfo OpUser = 3; +//} + +//群信息改变后掉用 +func GroupInfoChangedNotification(operationID, opUserID, groupID string, changedType int32) { + var n NotificationMsg + n.SendID = opUserID + n.ContentType = constant.GroupInfoChangedNotification + n.SessionType = constant.GroupChatType + n.MsgFrom = constant.SysMsgType + n.OperationID = operationID + + GroupInfoChangedTips := open_im_sdk.GroupInfoChangedTips{Group: &open_im_sdk.GroupInfo{}, OpUser: &open_im_sdk.GroupMemberFullInfo{}} + setGroupInfo(groupID, GroupInfoChangedTips.Group) + setOpUserInfo(opUserID, groupID, GroupInfoChangedTips.OpUser) + GroupInfoChangedTips.ChangedType = changedType + var tips open_im_sdk.TipsComm + tips.Detail, _ = json.Marshal(GroupInfoChangedTips) + tips.DefaultTips = "GroupInfoChangedNotification" + n.Content, _ = json.Marshal(tips) + n.RecvID = groupID + Notification(&n) +} + +/* +func GroupInfoChangedNotification(operationID string, changedType int32, group *immysql.Group, opUser *immysql.GroupMember) { + var n NotificationMsg + n.SendID = opUser.UserID + n.RecvID = group.GroupID + n.ContentType = constant.ChangeGroupInfoTip + n.SessionType = constant.GroupChatType + n.MsgFrom = constant.SysMsgType + n.OperationID = operationID + + var groupInfoChanged open_im_sdk.GroupInfoChangedTips + groupInfoChanged.Group = &open_im_sdk.GroupInfo{} + utils.CopyStructFields(groupInfoChanged.Group, group) + groupInfoChanged.OpUser = &open_im_sdk.GroupMemberFullInfo{} + utils.CopyStructFields(groupInfoChanged.OpUser, opUser) + groupInfoChanged.ChangedType = changedType + + var tips open_im_sdk.TipsComm + tips.Detail, _ = json.Marshal(groupInfoChanged) + tips.DefaultTips = config.Config.Notification.GroupInfoChanged.DefaultTips.Tips + n.Content, _ = json.Marshal(tips) + Notification(&n, false) +} +*/ + +//message MemberLeaveTips{ +// GroupInfo Group = 1; +// GroupMemberFullInfo LeaverUser = 2; +// uint64 OperationTime = 3; +//} + +//群成员退群后调用 +func MemberLeaveNotification(req *pbGroup.QuitGroupReq) { + var n NotificationMsg + n.SendID = req.OpUserID + n.ContentType = constant.MemberLeaveNotification + n.SessionType = constant.GroupChatType + n.MsgFrom = constant.SysMsgType + n.OperationID = req.OperationID + + MemberLeaveTips := open_im_sdk.MemberLeaveTips{Group: &open_im_sdk.GroupInfo{}, LeaverUser: &open_im_sdk.GroupMemberFullInfo{}} + setGroupInfo(req.GroupID, MemberLeaveTips.Group) + setOpUserInfo(req.OpUserID, req.GroupID, MemberLeaveTips.LeaverUser) + + var tips open_im_sdk.TipsComm + tips.Detail, _ = json.Marshal(MemberLeaveTips) + tips.DefaultTips = "MemberLeaveNotification" + n.Content, _ = json.Marshal(tips) + n.RecvID = req.GroupID + Notification(&n) + + n.SessionType = constant.SingleChatType + n.RecvID = req.OpUserID + Notification(&n) +} + +//message MemberEnterTips{ +// GroupInfo Group = 1; +// GroupMemberFullInfo EntrantUser = 2; +// uint64 OperationTime = 3; +//} +//群成员主动申请进群,管理员同意后调用, +func MemberEnterNotification(req *pbGroup.GroupApplicationResponseReq) { + var n NotificationMsg + n.SendID = req.OpUserID + n.ContentType = constant.MemberEnterNotification + n.SessionType = constant.GroupChatType + n.MsgFrom = constant.SysMsgType + n.OperationID = req.OperationID + + MemberLeaveTips := open_im_sdk.MemberEnterTips{Group: &open_im_sdk.GroupInfo{}, EntrantUser: &open_im_sdk.GroupMemberFullInfo{}} + setGroupInfo(req.GroupID, MemberLeaveTips.Group) + setOpUserInfo(req.OpUserID, req.GroupID, MemberLeaveTips.EntrantUser) + + var tips open_im_sdk.TipsComm + tips.Detail, _ = json.Marshal(MemberLeaveTips) + tips.DefaultTips = "MemberEnterNotification" + n.Content, _ = json.Marshal(tips) + n.RecvID = req.GroupID + Notification(&n) + +} diff --git a/internal/rpc/msg/notification.go b/internal/rpc/msg/notification.go deleted file mode 100644 index 5bb11b21e..000000000 --- a/internal/rpc/msg/notification.go +++ /dev/null @@ -1,616 +0,0 @@ -package msg - -import ( - "Open_IM/pkg/common/config" - "Open_IM/pkg/common/constant" - imdb "Open_IM/pkg/common/db/mysql_model/im_mysql_model" - "Open_IM/pkg/common/log" - "Open_IM/pkg/common/token_verify" - pbFriend "Open_IM/pkg/proto/friend" - pbGroup "Open_IM/pkg/proto/group" - open_im_sdk "Open_IM/pkg/proto/sdk_ws" - "Open_IM/pkg/utils" - "encoding/json" -) - -//message GroupCreatedTips{ -// GroupInfo Group = 1; -// GroupMemberFullInfo Creator = 2; -// repeated GroupMemberFullInfo MemberList = 3; -// uint64 OperationTime = 4; -//} creator->group - -func setOpUserInfo(operationID, opUserID, groupID string, groupMemberInfo *open_im_sdk.GroupMemberFullInfo) { - return - if token_verify.IsMangerUserID(opUserID) { - u, err := imdb.GetUserByUserID(opUserID) - if err != nil { - log.NewError(operationID, "FindUserByUID failed ", err.Error(), opUserID) - return - } - utils.CopyStructFields(groupMemberInfo, u) - groupMemberInfo.AppMangerLevel = 1 - } else { - u, err := imdb.GetGroupMemberInfoByGroupIDAndUserID(groupID, opUserID) - if err != nil { - log.NewError(operationID, "FindGroupMemberInfoByGroupIdAndUserId failed ", err.Error(), groupID, opUserID) - return - } - utils.CopyStructFields(groupMemberInfo, u) - } -} - -func setGroupInfo(operationID, groupID string, groupInfo *open_im_sdk.GroupInfo, ownerUserID string) { - return - group, err := imdb.GetGroupInfoByGroupID(groupID) - if err != nil { - log.NewError(operationID, "FindGroupInfoByGroupId failed ", err.Error(), groupID) - return - } - utils.CopyStructFields(groupInfo, group) - - if ownerUserID != "" { - groupInfo.OwnerUserID = ownerUserID - // setGroupPublicUserInfo(operationID, groupID, ownerUserID, groupInfo.Owner) - } -} - -func setGroupMemberInfo(operationID, groupID, userID string, groupMemberInfo *open_im_sdk.GroupMemberFullInfo) { - return - group, err := imdb.GetGroupMemberInfoByGroupIDAndUserID(groupID, userID) - if err != nil { - log.NewError(operationID, "FindGroupMemberInfoByGroupIdAndUserId failed ", err.Error(), groupID, userID) - return - } - utils.CopyStructFields(groupMemberInfo, group) -} - -//func setGroupPublicUserInfo(operationID, groupID, userID string, publicUserInfo *open_im_sdk.PublicUserInfo) { -// group, err := imdb.GetGroupMemberInfoByGroupIDAndUserID(groupID, userID) -// if err != nil { -// log.NewError(operationID, "FindGroupMemberInfoByGroupIdAndUserId failed ", err.Error(), groupID, userID) -// return -// } -// utils.CopyStructFields(publicUserInfo, group) -//} - -//创建群后调用 -func GroupCreatedNotification(operationID, opUserID, OwnerUserID, groupID string, initMemberList []string) { - return - var n NotificationMsg - n.SendID = opUserID - n.RecvID = groupID - n.ContentType = constant.GroupCreatedNotification - n.SessionType = constant.GroupChatType - n.MsgFrom = constant.SysMsgType - n.OperationID = operationID - - GroupCreatedTips := open_im_sdk.GroupCreatedTips{Group: &open_im_sdk.GroupInfo{}, - Creator: &open_im_sdk.GroupMemberFullInfo{}} - setOpUserInfo(operationID, GroupCreatedTips.Creator.UserID, groupID, GroupCreatedTips.Creator) - - setGroupInfo(operationID, groupID, GroupCreatedTips.Group, OwnerUserID) - - for _, v := range initMemberList { - var groupMemberInfo open_im_sdk.GroupMemberFullInfo - setGroupMemberInfo(operationID, groupID, v, &groupMemberInfo) - GroupCreatedTips.MemberList = append(GroupCreatedTips.MemberList, &groupMemberInfo) - } - - var tips open_im_sdk.TipsComm - tips.Detail, _ = json.Marshal(GroupCreatedTips) - tips.DefaultTips = config.Config.Notification.GroupCreated.DefaultTips.Tips - n.Content, _ = json.Marshal(tips) - Notification(&n, false) -} - -//message ReceiveJoinApplicationTips{ -// GroupInfo Group = 1; -// PublicUserInfo Applicant = 2; -// string Reason = 3; -//} apply->all managers GroupID string `protobuf:"bytes,1,opt,name=GroupID" json:"GroupID,omitempty"` -// ReqMessage string `protobuf:"bytes,2,opt,name=ReqMessage" json:"ReqMessage,omitempty"` -// OpUserID string `protobuf:"bytes,3,opt,name=OpUserID" json:"OpUserID,omitempty"` -// OperationID string `protobuf:"bytes,4,opt,name=OperationID" json:"OperationID,omitempty"` -//申请进群后调用 -func JoinApplicationNotification(req *pbGroup.JoinGroupReq) { - return - managerList, err := imdb.GetOwnerManagerByGroupID(req.GroupID) - if err != nil { - log.NewError(req.OperationID, "GetOwnerManagerByGroupId failed ", err.Error(), req.GroupID) - return - } - - var n NotificationMsg - n.SendID = req.OpUserID - n.ContentType = constant.JoinApplicationNotification - n.SessionType = constant.SingleChatType - n.MsgFrom = constant.SysMsgType - n.OperationID = req.OperationID - - JoinGroupApplicationTips := open_im_sdk.JoinGroupApplicationTips{Group: &open_im_sdk.GroupInfo{}, Applicant: &open_im_sdk.PublicUserInfo{}} - setGroupInfo(req.OperationID, req.GroupID, JoinGroupApplicationTips.Group, "") - - apply, err := imdb.GetUserByUserID(req.OpUserID) - if err != nil { - log.NewError(req.OperationID, "FindUserByUID failed ", err.Error(), req.OpUserID) - return - } - utils.CopyStructFields(JoinGroupApplicationTips.Applicant, apply) - JoinGroupApplicationTips.Reason = req.ReqMessage - - var tips open_im_sdk.TipsComm - tips.Detail, _ = json.Marshal(JoinGroupApplicationTips) - tips.DefaultTips = "JoinGroupApplicationTips" - n.Content, _ = json.Marshal(tips) - for _, v := range managerList { - n.RecvID = v.UserID - Notification(&n, true) - } -} - -//message ApplicationProcessedTips{ -// GroupInfo Group = 1; -// GroupMemberFullInfo OpUser = 2; -// int32 Result = 3; -// string Reason = 4; -//} -//处理进群请求后调用 -func ApplicationProcessedNotification(req *pbGroup.GroupApplicationResponseReq) { - return - var n NotificationMsg - n.SendID = req.OpUserID - n.ContentType = constant.ApplicationProcessedNotification - n.SessionType = constant.SingleChatType - n.MsgFrom = constant.SysMsgType - n.OperationID = req.OperationID - n.RecvID = req.FromUserID - - ApplicationProcessedTips := open_im_sdk.ApplicationProcessedTips{Group: &open_im_sdk.GroupInfo{}, OpUser: &open_im_sdk.GroupMemberFullInfo{}} - setGroupInfo(req.OperationID, req.GroupID, ApplicationProcessedTips.Group, "") - setOpUserInfo(req.OperationID, req.OpUserID, req.GroupID, ApplicationProcessedTips.OpUser) - ApplicationProcessedTips.Reason = req.HandledMsg - ApplicationProcessedTips.Result = req.HandleResult - - var tips open_im_sdk.TipsComm - tips.Detail, _ = json.Marshal(ApplicationProcessedTips) - tips.DefaultTips = "ApplicationProcessedNotification" - n.Content, _ = json.Marshal(tips) - - Notification(&n, true) -} - -//message MemberInvitedTips{ -// GroupInfo Group = 1; -// GroupMemberFullInfo OpUser = 2; -// GroupMemberFullInfo InvitedUser = 3; -// uint64 OperationTime = 4; -//} -//被邀请进群后调用 -func MemberInvitedNotification(operationID, groupID, opUserID, reason string, invitedUserIDList []string) { - return - var n NotificationMsg - n.SendID = opUserID - n.ContentType = constant.MemberInvitedNotification - n.SessionType = constant.GroupChatType - n.MsgFrom = constant.SysMsgType - n.OperationID = operationID - - ApplicationProcessedTips := open_im_sdk.MemberInvitedTips{Group: &open_im_sdk.GroupInfo{}, OpUser: &open_im_sdk.GroupMemberFullInfo{}} - setGroupInfo(operationID, groupID, ApplicationProcessedTips.Group, "") - setOpUserInfo(operationID, opUserID, groupID, ApplicationProcessedTips.OpUser) - for _, v := range invitedUserIDList { - var groupMemberInfo open_im_sdk.GroupMemberFullInfo - setGroupMemberInfo(operationID, groupID, v, &groupMemberInfo) - ApplicationProcessedTips.InvitedUserList = append(ApplicationProcessedTips.InvitedUserList, &groupMemberInfo) - } - var tips open_im_sdk.TipsComm - tips.Detail, _ = json.Marshal(ApplicationProcessedTips) - tips.DefaultTips = "MemberInvitedNotification" - n.Content, _ = json.Marshal(tips) - n.RecvID = groupID - Notification(&n, true) -} - -//message MemberKickedTips{ -// GroupInfo Group = 1; -// GroupMemberFullInfo OpUser = 2; -// GroupMemberFullInfo KickedUser = 3; -// uint64 OperationTime = 4; -//} -//被踢后调用 -func MemberKickedNotification(req *pbGroup.KickGroupMemberReq, kickedUserIDList []string) { - return - var n NotificationMsg - n.SendID = req.OpUserID - n.ContentType = constant.MemberKickedNotification - n.SessionType = constant.GroupChatType - n.MsgFrom = constant.SysMsgType - n.OperationID = req.OperationID - - MemberKickedTips := open_im_sdk.MemberKickedTips{Group: &open_im_sdk.GroupInfo{}, OpUser: &open_im_sdk.GroupMemberFullInfo{}} - setGroupInfo(req.OperationID, req.GroupID, MemberKickedTips.Group, "") - setOpUserInfo(req.OperationID, req.OpUserID, req.GroupID, MemberKickedTips.OpUser) - for _, v := range kickedUserIDList { - var groupMemberInfo open_im_sdk.GroupMemberFullInfo - setGroupMemberInfo(req.OperationID, req.GroupID, v, &groupMemberInfo) - MemberKickedTips.KickedUserList = append(MemberKickedTips.KickedUserList, &groupMemberInfo) - } - var tips open_im_sdk.TipsComm - tips.Detail, _ = json.Marshal(MemberKickedTips) - tips.DefaultTips = "MemberKickedNotification" - n.Content, _ = json.Marshal(tips) - n.RecvID = req.GroupID - Notification(&n, true) - - for _, v := range kickedUserIDList { - n.SessionType = constant.SingleChatType - n.RecvID = v - Notification(&n, true) - } -} - -//message GroupInfoChangedTips{ -// int32 ChangedType = 1; //bitwise operators: 1:groupName; 10:Notification 100:Introduction; 1000:FaceUrl -// GroupInfo Group = 2; -// GroupMemberFullInfo OpUser = 3; -//} - -//群信息改变后掉用 -func GroupInfoChangedNotification(operationID, opUserID, groupID string, changedType int32) { - return - var n NotificationMsg - n.SendID = opUserID - n.ContentType = constant.GroupInfoChangedNotification - n.SessionType = constant.GroupChatType - n.MsgFrom = constant.SysMsgType - n.OperationID = operationID - - GroupInfoChangedTips := open_im_sdk.GroupInfoChangedTips{Group: &open_im_sdk.GroupInfo{}, OpUser: &open_im_sdk.GroupMemberFullInfo{}} - setGroupInfo(operationID, groupID, GroupInfoChangedTips.Group, opUserID) - setOpUserInfo(operationID, opUserID, groupID, GroupInfoChangedTips.OpUser) - GroupInfoChangedTips.ChangedType = changedType - var tips open_im_sdk.TipsComm - tips.Detail, _ = json.Marshal(GroupInfoChangedTips) - tips.DefaultTips = "GroupInfoChangedNotification" - n.Content, _ = json.Marshal(tips) - n.RecvID = groupID - Notification(&n, false) -} - -/* -func GroupInfoChangedNotification(operationID string, changedType int32, group *immysql.Group, opUser *immysql.GroupMember) { - var n NotificationMsg - n.SendID = opUser.UserID - n.RecvID = group.GroupID - n.ContentType = constant.ChangeGroupInfoTip - n.SessionType = constant.GroupChatType - n.MsgFrom = constant.SysMsgType - n.OperationID = operationID - - var groupInfoChanged open_im_sdk.GroupInfoChangedTips - groupInfoChanged.Group = &open_im_sdk.GroupInfo{} - utils.CopyStructFields(groupInfoChanged.Group, group) - groupInfoChanged.OpUser = &open_im_sdk.GroupMemberFullInfo{} - utils.CopyStructFields(groupInfoChanged.OpUser, opUser) - groupInfoChanged.ChangedType = changedType - - var tips open_im_sdk.TipsComm - tips.Detail, _ = json.Marshal(groupInfoChanged) - tips.DefaultTips = config.Config.Notification.GroupInfoChanged.DefaultTips.Tips - n.Content, _ = json.Marshal(tips) - Notification(&n, false) -} -*/ - -//message MemberLeaveTips{ -// GroupInfo Group = 1; -// GroupMemberFullInfo LeaverUser = 2; -// uint64 OperationTime = 3; -//} - -//群成员退群后调用 -func MemberLeaveNotification(req *pbGroup.QuitGroupReq) { - return - var n NotificationMsg - n.SendID = req.OpUserID - n.ContentType = constant.MemberLeaveNotification - n.SessionType = constant.GroupChatType - n.MsgFrom = constant.SysMsgType - n.OperationID = req.OperationID - - MemberLeaveTips := open_im_sdk.MemberLeaveTips{Group: &open_im_sdk.GroupInfo{}, LeaverUser: &open_im_sdk.GroupMemberFullInfo{}} - setGroupInfo(req.OperationID, req.GroupID, MemberLeaveTips.Group, "") - setOpUserInfo(req.OperationID, req.OpUserID, req.GroupID, MemberLeaveTips.LeaverUser) - - var tips open_im_sdk.TipsComm - tips.Detail, _ = json.Marshal(MemberLeaveTips) - tips.DefaultTips = "MemberLeaveNotification" - n.Content, _ = json.Marshal(tips) - n.RecvID = req.GroupID - Notification(&n, true) - - n.SessionType = constant.SingleChatType - n.RecvID = req.OpUserID - Notification(&n, true) -} - -//message MemberEnterTips{ -// GroupInfo Group = 1; -// GroupMemberFullInfo EntrantUser = 2; -// uint64 OperationTime = 3; -//} -//群成员主动申请进群,管理员同意后调用, -func MemberEnterNotification(req *pbGroup.GroupApplicationResponseReq) { - return - var n NotificationMsg - n.SendID = req.OpUserID - n.ContentType = constant.MemberEnterNotification - n.SessionType = constant.GroupChatType - n.MsgFrom = constant.SysMsgType - n.OperationID = req.OperationID - - MemberLeaveTips := open_im_sdk.MemberEnterTips{Group: &open_im_sdk.GroupInfo{}, EntrantUser: &open_im_sdk.GroupMemberFullInfo{}} - setGroupInfo(req.OperationID, req.GroupID, MemberLeaveTips.Group, "") - setOpUserInfo(req.OperationID, req.OpUserID, req.GroupID, MemberLeaveTips.EntrantUser) - - var tips open_im_sdk.TipsComm - tips.Detail, _ = json.Marshal(MemberLeaveTips) - tips.DefaultTips = "MemberEnterNotification" - n.Content, _ = json.Marshal(tips) - n.RecvID = req.GroupID - Notification(&n, true) - -} - -//message MemberInfoChangedTips{ -// int32 ChangeType = 1; //1:info changed; 2:mute -// GroupMemberFullInfo OpUser = 2; //who do this -// GroupMemberFullInfo FinalInfo = 3; // -// uint64 MuteTime = 4; -// GroupInfo Group = 5; -//} -//func MemberInfoChangedNotification(operationID string, group *immysql.Group, opUser *immysql.GroupMember, userFinalInfo *immysql.GroupMember) { - -//} - -//message FriendApplicationAddedTips{ -// PublicUserInfo OpUser = 1; //user1 -// FriendApplication Application = 2; -// PublicUserInfo OpedUser = 3; //user2 -//} - -func getFromToUserNickname(operationID, fromUserID, toUserID string) (string, string) { - return "", "" - from, err1 := imdb.GetUserByUserID(fromUserID) - to, err2 := imdb.GetUserByUserID(toUserID) - if err1 != nil || err2 != nil { - log.NewError("FindUserByUID failed ", err1, err2, fromUserID, toUserID) - } - fromNickname, toNickname := "", "" - if from != nil { - fromNickname = from.Nickname - } - if to != nil { - toNickname = to.Nickname - } - return fromNickname, toNickname -} - -func FriendApplicationAddedNotification(req *pbFriend.AddFriendReq) { - return - var n NotificationMsg - n.SendID = req.CommID.FromUserID - n.RecvID = req.CommID.ToUserID - n.ContentType = constant.FriendApplicationAddedNotification - n.SessionType = constant.SingleChatType - n.MsgFrom = constant.SysMsgType - n.OperationID = req.CommID.OperationID - - var FriendApplicationAddedTips open_im_sdk.FriendApplicationAddedTips - FriendApplicationAddedTips.FromToUserID.FromUserID = req.CommID.FromUserID - FriendApplicationAddedTips.FromToUserID.ToUserID = req.CommID.ToUserID - fromUserNickname, toUserNickname := getFromToUserNickname(req.CommID.OperationID, req.CommID.FromUserID, req.CommID.ToUserID) - var tips open_im_sdk.TipsComm - tips.Detail, _ = json.Marshal(FriendApplicationAddedTips) - tips.DefaultTips = fromUserNickname + " FriendApplicationAddedNotification " + toUserNickname - n.Content, _ = json.Marshal(tips) - Notification(&n, true) -} - -func FriendApplicationProcessedNotification(req *pbFriend.AddFriendResponseReq) { - return - var n NotificationMsg - n.SendID = req.CommID.FromUserID - n.RecvID = req.CommID.ToUserID - n.ContentType = constant.FriendApplicationProcessedNotification - n.SessionType = constant.SingleChatType - n.MsgFrom = constant.SysMsgType - n.OperationID = req.CommID.OperationID - - var FriendApplicationProcessedTips open_im_sdk.FriendApplicationProcessedTips - FriendApplicationProcessedTips.FromToUserID.FromUserID = req.CommID.FromUserID - FriendApplicationProcessedTips.FromToUserID.ToUserID = req.CommID.ToUserID - fromUserNickname, toUserNickname := getFromToUserNickname(req.CommID.OperationID, req.CommID.FromUserID, req.CommID.ToUserID) - var tips open_im_sdk.TipsComm - tips.Detail, _ = json.Marshal(FriendApplicationProcessedTips) - tips.DefaultTips = fromUserNickname + " FriendApplicationProcessedNotification " + toUserNickname - n.Content, _ = json.Marshal(tips) - Notification(&n, true) -} - -func FriendAddedNotification(operationID, opUserID, fromUserID, toUserID string) { - return - var n NotificationMsg - n.SendID = fromUserID - n.RecvID = toUserID - n.ContentType = constant.FriendAddedNotification - n.SessionType = constant.SingleChatType - n.MsgFrom = constant.SysMsgType - n.OperationID = operationID - - var FriendAddedTips open_im_sdk.FriendAddedTips - - user, err := imdb.GetUserByUserID(opUserID) - if err != nil { - log.NewError(operationID, "FindUserByUID failed ", err.Error(), opUserID) - - } else { - utils.CopyStructFields(FriendAddedTips.OpUser, user) - } - - friend, err := imdb.GetFriendRelationshipFromFriend(fromUserID, toUserID) - if err != nil { - log.NewError(operationID, "FindUserByUID failed ", err.Error(), fromUserID, toUserID) - } else { - FriendAddedTips.Friend.Remark = friend.Remark - } - - from, err := imdb.GetUserByUserID(fromUserID) - if err != nil { - log.NewError(operationID, "FindUserByUID failed ", err.Error(), fromUserID) - - } else { - utils.CopyStructFields(FriendAddedTips.Friend, from) - } - - to, err := imdb.GetUserByUserID(toUserID) - if err != nil { - log.NewError(operationID, "FindUserByUID failed ", err.Error(), toUserID) - - } else { - utils.CopyStructFields(FriendAddedTips.Friend.FriendUser, to) - } - - fromUserNickname, toUserNickname := from.Nickname, to.Nickname - var tips open_im_sdk.TipsComm - tips.Detail, _ = json.Marshal(FriendAddedTips) - tips.DefaultTips = fromUserNickname + " FriendAddedNotification " + toUserNickname - n.Content, _ = json.Marshal(tips) - Notification(&n, true) -} - -//message FriendDeletedTips{ -// FriendInfo Friend = 1; -//} -func FriendDeletedNotification(req *pbFriend.DeleteFriendReq) { - return - var n NotificationMsg - n.SendID = req.CommID.FromUserID - n.RecvID = req.CommID.ToUserID - n.ContentType = constant.FriendDeletedNotification - n.SessionType = constant.SingleChatType - n.MsgFrom = constant.SysMsgType - n.OperationID = req.CommID.OperationID - - var FriendDeletedTips open_im_sdk.FriendDeletedTips - FriendDeletedTips.FromToUserID.FromUserID = req.CommID.FromUserID - FriendDeletedTips.FromToUserID.ToUserID = req.CommID.ToUserID - fromUserNickname, toUserNickname := getFromToUserNickname(req.CommID.OperationID, req.CommID.FromUserID, req.CommID.ToUserID) - var tips open_im_sdk.TipsComm - tips.Detail, _ = json.Marshal(FriendDeletedTips) - tips.DefaultTips = fromUserNickname + " FriendDeletedNotification " + toUserNickname - n.Content, _ = json.Marshal(tips) - Notification(&n, true) -} - -//message FriendInfoChangedTips{ -// FriendInfo Friend = 1; -// PublicUserInfo OpUser = 2; -// uint64 OperationTime = 3; -//} -func FriendInfoChangedNotification(operationID, opUserID, fromUserID, toUserID string) { - return - var n NotificationMsg - n.SendID = fromUserID - n.RecvID = toUserID - n.ContentType = constant.FriendInfoChangedNotification - n.SessionType = constant.SingleChatType - n.MsgFrom = constant.SysMsgType - n.OperationID = operationID - - var FriendInfoChangedTips open_im_sdk.FriendInfoChangedTips - FriendInfoChangedTips.FromToUserID.FromUserID = fromUserID - FriendInfoChangedTips.FromToUserID.ToUserID = toUserID - fromUserNickname, toUserNickname := getFromToUserNickname(operationID, fromUserID, toUserID) - var tips open_im_sdk.TipsComm - tips.Detail, _ = json.Marshal(FriendInfoChangedTips) - tips.DefaultTips = fromUserNickname + " FriendDeletedNotification " + toUserNickname - n.Content, _ = json.Marshal(tips) - Notification(&n, true) -} - -func BlackAddedNotification(req *pbFriend.AddBlacklistReq) { - return - var n NotificationMsg - n.SendID = req.CommID.FromUserID - n.RecvID = req.CommID.ToUserID - n.ContentType = constant.BlackAddedNotification - n.SessionType = constant.SingleChatType - n.MsgFrom = constant.SysMsgType - n.OperationID = req.CommID.OperationID - - var BlackAddedTips open_im_sdk.BlackAddedTips - BlackAddedTips.FromToUserID.FromUserID = req.CommID.FromUserID - BlackAddedTips.FromToUserID.ToUserID = req.CommID.ToUserID - fromUserNickname, toUserNickname := getFromToUserNickname(req.CommID.OperationID, req.CommID.FromUserID, req.CommID.ToUserID) - var tips open_im_sdk.TipsComm - tips.Detail, _ = json.Marshal(BlackAddedTips) - tips.DefaultTips = fromUserNickname + " BlackAddedNotification " + toUserNickname - n.Content, _ = json.Marshal(tips) - Notification(&n, true) -} - -//message BlackDeletedTips{ -// BlackInfo Black = 1; -//} -func BlackDeletedNotification(req *pbFriend.RemoveBlacklistReq) { - return - var n NotificationMsg - n.SendID = req.CommID.FromUserID - n.RecvID = req.CommID.ToUserID - n.ContentType = constant.BlackDeletedNotification - n.SessionType = constant.SingleChatType - n.MsgFrom = constant.SysMsgType - n.OperationID = req.CommID.OperationID - - var BlackDeletedTips open_im_sdk.BlackDeletedTips - BlackDeletedTips.FromToUserID.FromUserID = req.CommID.FromUserID - BlackDeletedTips.FromToUserID.ToUserID = req.CommID.ToUserID - fromUserNickname, toUserNickname := getFromToUserNickname(req.CommID.OperationID, req.CommID.FromUserID, req.CommID.ToUserID) - var tips open_im_sdk.TipsComm - tips.Detail, _ = json.Marshal(BlackDeletedTips) - tips.DefaultTips = fromUserNickname + " BlackDeletedNotification " + toUserNickname - n.Content, _ = json.Marshal(tips) - Notification(&n, true) -} - -//message SelfInfoUpdatedTips{ -// UserInfo SelfUserInfo = 1; -// PublicUserInfo OpUser = 2; -// uint64 OperationTime = 3; -//} -func SelfInfoUpdatedNotification(operationID, userID string) { - return - var n NotificationMsg - n.SendID = userID - n.RecvID = userID - n.ContentType = constant.SelfInfoUpdatedNotification - n.SessionType = constant.SingleChatType - n.MsgFrom = constant.SysMsgType - n.OperationID = operationID - - var SelfInfoUpdatedTips open_im_sdk.SelfInfoUpdatedTips - SelfInfoUpdatedTips.UserID = userID - - var tips open_im_sdk.TipsComm - u, err := imdb.GetUserByUserID(userID) - if err != nil { - log.NewError(operationID, "FindUserByUID failed ", err.Error(), userID) - } - - tips.Detail, _ = json.Marshal(SelfInfoUpdatedTips) - tips.DefaultTips = u.Nickname + " SelfInfoUpdatedNotification " - n.Content, _ = json.Marshal(tips) - Notification(&n, true) -} diff --git a/internal/rpc/msg/send_msg.go b/internal/rpc/msg/send_msg.go index bf371f0a2..481dee2dc 100644 --- a/internal/rpc/msg/send_msg.go +++ b/internal/rpc/msg/send_msg.go @@ -239,7 +239,7 @@ type NotificationMsg struct { OperationID string } -func Notification(n *NotificationMsg, onlineUserOnly bool) { +func Notification(n *NotificationMsg) { var req pbChat.SendMsgReq var msg sdk_ws.MsgData var offlineInfo sdk_ws.OfflinePushInfo diff --git a/pkg/common/db/mysql_model/im_mysql_model/group_member_model.go b/pkg/common/db/mysql_model/im_mysql_model/group_member_model.go index e9bfdcbac..f4684f9a4 100644 --- a/pkg/common/db/mysql_model/im_mysql_model/group_member_model.go +++ b/pkg/common/db/mysql_model/im_mysql_model/group_member_model.go @@ -3,6 +3,7 @@ package im_mysql_model import ( "Open_IM/pkg/common/constant" "Open_IM/pkg/common/db" + "Open_IM/pkg/utils" "time" ) @@ -124,17 +125,17 @@ func GetOwnerManagerByGroupID(groupID string) ([]db.GroupMember, error) { return groupMemberList, nil } -func GetGroupMemberNumByGroupID(groupID string) uint32 { +func GetGroupMemberNumByGroupID(groupID string) (uint32, error) { dbConn, err := db.DB.MysqlDB.DefaultGormDB() if err != nil { - return 0 + return 0, utils.Wrap(err, "DefaultGormDB failed") } var number uint32 err = dbConn.Table("group_members").Where("group_id=?", groupID).Count(&number).Error if err != nil { - return 0 + return 0, utils.Wrap(err, "") } - return number + return number, nil } func GetGroupOwnerInfoByGroupID(groupID string) (*db.GroupMember, error) { diff --git a/pkg/common/utils/utils.go b/pkg/common/utils/utils.go index fc4100d7f..00eca3972 100644 --- a/pkg/common/utils/utils.go +++ b/pkg/common/utils/utils.go @@ -45,30 +45,40 @@ func GroupOpenIMCopyDB(dst *db.Group, src *open_im_sdk.GroupInfo) { utils.CopyStructFields(dst, src) } -func GroupDBCopyOpenIM(dst *open_im_sdk.GroupInfo, src *db.Group) { +func GroupDBCopyOpenIM(dst *open_im_sdk.GroupInfo, src *db.Group) error { utils.CopyStructFields(dst, src) - user, _ := imdb.GetGroupOwnerInfoByGroupID(src.GroupID) - if user != nil { - dst.OwnerUserID = user.UserID + user, err := imdb.GetGroupOwnerInfoByGroupID(src.GroupID) + if err != nil { + return utils.Wrap(err, "") + } + dst.OwnerUserID = user.UserID + + dst.MemberCount, err = imdb.GetGroupMemberNumByGroupID(src.GroupID) + if err != nil { + return utils.Wrap(err, "") } - dst.MemberCount = imdb.GetGroupMemberNumByGroupID(src.GroupID) dst.CreateTime = uint32(src.CreateTime.Unix()) + return nil } func GroupMemberOpenIMCopyDB(dst *db.GroupMember, src *open_im_sdk.GroupMemberFullInfo) { utils.CopyStructFields(dst, src) } -func GroupMemberDBCopyOpenIM(dst *open_im_sdk.GroupMemberFullInfo, src *db.GroupMember) { +func GroupMemberDBCopyOpenIM(dst *open_im_sdk.GroupMemberFullInfo, src *db.GroupMember) error { utils.CopyStructFields(dst, src) if token_verify.IsMangerUserID(src.UserID) { - u, _ := imdb.GetUserByUserID(src.UserID) - if u != nil { - utils.CopyStructFields(dst, u) + u, err := imdb.GetUserByUserID(src.UserID) + if err != nil { + return utils.Wrap(err, "") } + + utils.CopyStructFields(dst, u) + dst.AppMangerLevel = 1 } dst.JoinTime = src.JoinTime.Unix() + return nil } func GroupRequestOpenIMCopyDB(dst *db.GroupRequest, src *open_im_sdk.GroupRequest) { diff --git a/pkg/utils/strings.go b/pkg/utils/strings.go index 9eec1ab94..3265d2dc4 100644 --- a/pkg/utils/strings.go +++ b/pkg/utils/strings.go @@ -31,7 +31,6 @@ func Int32ToString(i int32) string { //judge a string whether in the string list func IsContain(target string, List []string) bool { - for _, element := range List { if target == element { @@ -39,7 +38,6 @@ func IsContain(target string, List []string) bool { } } return false - } func InterfaceArrayToStringArray(data []interface{}) (i []string) { From 7f7664eb4f50add9e58bed4187718708813bbeee Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Fri, 14 Jan 2022 13:52:09 +0800 Subject: [PATCH 487/814] Refactor code --- internal/rpc/msg/group_notification.go | 6 ++++-- pkg/common/utils/utils.go | 5 +++++ 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/internal/rpc/msg/group_notification.go b/internal/rpc/msg/group_notification.go index 1d1af7d44..729f1d808 100644 --- a/internal/rpc/msg/group_notification.go +++ b/internal/rpc/msg/group_notification.go @@ -26,13 +26,15 @@ func setOpUserInfo(opUserID, groupID string, groupMemberInfo *open_im_sdk.GroupM return utils.Wrap(err, "GetUserByUserID failed") } utils.CopyStructFields(groupMemberInfo, u) - groupMemberInfo.AppMangerLevel = 1 + groupMemberInfo.GroupID = groupID } else { u, err := imdb.GetGroupMemberInfoByGroupIDAndUserID(groupID, opUserID) if err != nil { return utils.Wrap(err, "GetGroupMemberInfoByGroupIDAndUserID failed") } - utils.CopyStructFields(groupMemberInfo, u) + if err = utils2.GroupMemberDBCopyOpenIM(groupMemberInfo, u); err != nil { + return utils.Wrap(err, "") + } } return nil } diff --git a/pkg/common/utils/utils.go b/pkg/common/utils/utils.go index 00eca3972..b181d79b0 100644 --- a/pkg/common/utils/utils.go +++ b/pkg/common/utils/utils.go @@ -113,3 +113,8 @@ func BlackDBCopyOpenIM(dst *open_im_sdk.BlackInfo, src *db.Black) { utils.CopyStructFields(dst.BlackUserInfo, user) } } + +// +//func PublicUserDBCopyOpenIM(dst *open_im_sdk.PublicUserInfo, src *db.User){ +// +//} From 4d172ec4f55fddbc8db075cc81145d22c5f86c2a Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Fri, 14 Jan 2022 16:11:23 +0800 Subject: [PATCH 488/814] Refactor code --- internal/rpc/group/group.go | 2 +- internal/rpc/msg/group_notification.go | 211 +++++++++++++------------ pkg/base_info/group_api_struct.go | 16 +- pkg/common/log/logrus.go | 26 ++- 4 files changed, 129 insertions(+), 126 deletions(-) diff --git a/internal/rpc/group/group.go b/internal/rpc/group/group.go index 57fc3d671..b691458f3 100644 --- a/internal/rpc/group/group.go +++ b/internal/rpc/group/group.go @@ -141,7 +141,7 @@ func (s *groupServer) CreateGroup(ctx context.Context, req *pbGroup.CreateGroupR resp.ErrMsg = constant.ErrDB.ErrMsg return resp, nil } - chat.GroupCreatedNotification(req.OperationID, req.OpUserID, req.OwnerUserID, groupId, okUserIDList) + chat.GroupCreatedNotification(req.OperationID, req.OpUserID, groupId, okUserIDList) utils.CopyStructFields(resp.GroupInfo, group) resp.GroupInfo.MemberCount, err = imdb.GetGroupMemberNumByGroupID(groupId) if err != nil { diff --git a/internal/rpc/msg/group_notification.go b/internal/rpc/msg/group_notification.go index 729f1d808..a92d6d0c3 100644 --- a/internal/rpc/msg/group_notification.go +++ b/internal/rpc/msg/group_notification.go @@ -1,6 +1,7 @@ package msg import ( + "Open_IM/pkg/common/config" "Open_IM/pkg/common/constant" imdb "Open_IM/pkg/common/db/mysql_model/im_mysql_model" "Open_IM/pkg/common/log" @@ -72,19 +73,12 @@ func setGroupMemberInfo(groupID, userID string, groupMemberInfo *open_im_sdk.Gro //} //创建群后调用 -func GroupCreatedNotification(operationID, opUserID, OwnerUserID, groupID string, initMemberList []string) { - var n NotificationMsg - n.SendID = opUserID - n.RecvID = groupID - n.ContentType = constant.GroupCreatedNotification - n.SessionType = constant.GroupChatType - n.MsgFrom = constant.SysMsgType - n.OperationID = operationID - +func GroupCreatedNotification(operationID, opUserID, groupID string, initMemberList []string) { GroupCreatedTips := open_im_sdk.GroupCreatedTips{Group: &open_im_sdk.GroupInfo{}, Creator: &open_im_sdk.GroupMemberFullInfo{}} if err := setOpUserInfo(GroupCreatedTips.Creator.UserID, groupID, GroupCreatedTips.Creator); err != nil { log.NewError(operationID, "setOpUserInfo failed ", err.Error(), GroupCreatedTips.Creator.UserID, groupID, GroupCreatedTips.Creator) + return } err := setGroupInfo(groupID, GroupCreatedTips.Group) if err != nil { @@ -99,6 +93,13 @@ func GroupCreatedNotification(operationID, opUserID, OwnerUserID, groupID string var tips open_im_sdk.TipsComm tips.Detail, _ = json.Marshal(GroupCreatedTips) tips.DefaultTips = config.Config.Notification.GroupCreated.DefaultTips.Tips + var n NotificationMsg + n.SendID = opUserID + n.RecvID = groupID + n.ContentType = constant.GroupCreatedNotification + n.SessionType = constant.GroupChatType + n.MsgFrom = constant.SysMsgType + n.OperationID = operationID n.Content, _ = json.Marshal(tips) log.NewInfo(operationID, "Notification ", n) Notification(&n) @@ -114,13 +115,6 @@ func GroupCreatedNotification(operationID, opUserID, OwnerUserID, groupID string // OperationID string `protobuf:"bytes,4,opt,name=OperationID" json:"OperationID,omitempty"` //申请进群后调用 func JoinApplicationNotification(req *pbGroup.JoinGroupReq) { - var n NotificationMsg - n.SendID = req.OpUserID - n.ContentType = constant.JoinApplicationNotification - n.SessionType = constant.SingleChatType - n.MsgFrom = constant.SysMsgType - n.OperationID = req.OperationID - JoinGroupApplicationTips := open_im_sdk.JoinGroupApplicationTips{Group: &open_im_sdk.GroupInfo{}, Applicant: &open_im_sdk.PublicUserInfo{}} err := setGroupInfo(req.GroupID, JoinGroupApplicationTips.Group) if err != nil { @@ -139,6 +133,12 @@ func JoinApplicationNotification(req *pbGroup.JoinGroupReq) { var tips open_im_sdk.TipsComm tips.Detail, _ = json.Marshal(JoinGroupApplicationTips) tips.DefaultTips = "JoinGroupApplicationTips" + var n NotificationMsg + n.SendID = req.OpUserID + n.ContentType = constant.JoinApplicationNotification + n.SessionType = constant.SingleChatType + n.MsgFrom = constant.SysMsgType + n.OperationID = req.OperationID n.Content, _ = json.Marshal(tips) managerList, err := imdb.GetOwnerManagerByGroupID(req.GroupID) if err != nil { @@ -160,24 +160,29 @@ func JoinApplicationNotification(req *pbGroup.JoinGroupReq) { //} //处理进群请求后调用 func ApplicationProcessedNotification(req *pbGroup.GroupApplicationResponseReq) { - var n NotificationMsg - n.SendID = req.OpUserID - n.ContentType = constant.ApplicationProcessedNotification - n.SessionType = constant.SingleChatType - n.MsgFrom = constant.SysMsgType - n.OperationID = req.OperationID - n.RecvID = req.FromUserID ApplicationProcessedTips := open_im_sdk.ApplicationProcessedTips{Group: &open_im_sdk.GroupInfo{}, OpUser: &open_im_sdk.GroupMemberFullInfo{}} - setGroupInfo(req.GroupID, ApplicationProcessedTips.Group) - setOpUserInfo(req.OpUserID, req.GroupID, ApplicationProcessedTips.OpUser) + if err := setGroupInfo(req.GroupID, ApplicationProcessedTips.Group); err != nil { + log.NewError(req.OperationID, "setGroupInfo failed ", err.Error(), req.GroupID, ApplicationProcessedTips.Group) + return + } + if err := setOpUserInfo(req.OpUserID, req.GroupID, ApplicationProcessedTips.OpUser); err != nil { + log.Error(req.OperationID, "setOpUserInfo failed", req.OpUserID, req.GroupID, ApplicationProcessedTips.OpUser) + return + } ApplicationProcessedTips.Reason = req.HandledMsg ApplicationProcessedTips.Result = req.HandleResult var tips open_im_sdk.TipsComm tips.Detail, _ = json.Marshal(ApplicationProcessedTips) tips.DefaultTips = "ApplicationProcessedNotification" + var n NotificationMsg + n.SendID = req.OpUserID + n.ContentType = constant.ApplicationProcessedNotification + n.SessionType = constant.SingleChatType + n.MsgFrom = constant.SysMsgType + n.OperationID = req.OperationID + n.RecvID = req.FromUserID n.Content, _ = json.Marshal(tips) - Notification(&n) } @@ -189,24 +194,32 @@ func ApplicationProcessedNotification(req *pbGroup.GroupApplicationResponseReq) //} //被邀请进群后调用 func MemberInvitedNotification(operationID, groupID, opUserID, reason string, invitedUserIDList []string) { - var n NotificationMsg - n.SendID = opUserID - n.ContentType = constant.MemberInvitedNotification - n.SessionType = constant.GroupChatType - n.MsgFrom = constant.SysMsgType - n.OperationID = operationID - ApplicationProcessedTips := open_im_sdk.MemberInvitedTips{Group: &open_im_sdk.GroupInfo{}, OpUser: &open_im_sdk.GroupMemberFullInfo{}} - setGroupInfo(groupID, ApplicationProcessedTips.Group) - setOpUserInfo(opUserID, groupID, ApplicationProcessedTips.OpUser) + if err := setGroupInfo(groupID, ApplicationProcessedTips.Group); err != nil { + log.Error(operationID, "setGroupInfo failed ", err.Error(), groupID, ApplicationProcessedTips.Group) + return + } + if err := setOpUserInfo(opUserID, groupID, ApplicationProcessedTips.OpUser); err != nil { + log.Error(operationID, "setOpUserInfo failed ", err.Error(), opUserID, groupID, ApplicationProcessedTips.OpUser) + return + } for _, v := range invitedUserIDList { var groupMemberInfo open_im_sdk.GroupMemberFullInfo - setGroupMemberInfo(groupID, v, &groupMemberInfo) + if err := setGroupMemberInfo(groupID, v, &groupMemberInfo); err != nil { + log.Error(operationID, "setGroupMemberInfo faield ", err.Error(), groupID) + continue + } ApplicationProcessedTips.InvitedUserList = append(ApplicationProcessedTips.InvitedUserList, &groupMemberInfo) } var tips open_im_sdk.TipsComm tips.Detail, _ = json.Marshal(ApplicationProcessedTips) tips.DefaultTips = "MemberInvitedNotification" + var n NotificationMsg + n.SendID = opUserID + n.ContentType = constant.MemberInvitedNotification + n.SessionType = constant.GroupChatType + n.MsgFrom = constant.SysMsgType + n.OperationID = operationID n.Content, _ = json.Marshal(tips) n.RecvID = groupID Notification(&n) @@ -220,33 +233,42 @@ func MemberInvitedNotification(operationID, groupID, opUserID, reason string, in //} //被踢后调用 func MemberKickedNotification(req *pbGroup.KickGroupMemberReq, kickedUserIDList []string) { - - var n NotificationMsg - n.SendID = req.OpUserID - n.ContentType = constant.MemberKickedNotification - n.SessionType = constant.GroupChatType - n.MsgFrom = constant.SysMsgType - n.OperationID = req.OperationID - MemberKickedTips := open_im_sdk.MemberKickedTips{Group: &open_im_sdk.GroupInfo{}, OpUser: &open_im_sdk.GroupMemberFullInfo{}} - setGroupInfo(req.GroupID, MemberKickedTips.Group) - setOpUserInfo(req.OpUserID, req.GroupID, MemberKickedTips.OpUser) + if err := setGroupInfo(req.GroupID, MemberKickedTips.Group); err != nil { + log.Error(req.OperationID, "setGroupInfo failed ", err.Error(), req.GroupID, MemberKickedTips.Group) + return + } + if err := setOpUserInfo(req.OpUserID, req.GroupID, MemberKickedTips.OpUser); err != nil { + log.Error(req.OperationID, "setOpUserInfo failed ", err.Error(), req.OpUserID, req.GroupID, MemberKickedTips.OpUser) + return + } for _, v := range kickedUserIDList { var groupMemberInfo open_im_sdk.GroupMemberFullInfo - setGroupMemberInfo(req.GroupID, v, &groupMemberInfo) + if err := setGroupMemberInfo(req.GroupID, v, &groupMemberInfo); err != nil { + log.Error(req.OperationID, "setGroupMemberInfo failed ", err.Error(), req.GroupID, v) + continue + } MemberKickedTips.KickedUserList = append(MemberKickedTips.KickedUserList, &groupMemberInfo) } + var tips open_im_sdk.TipsComm tips.Detail, _ = json.Marshal(MemberKickedTips) tips.DefaultTips = "MemberKickedNotification" + var n NotificationMsg + n.SendID = req.OpUserID + n.ContentType = constant.MemberKickedNotification + n.SessionType = constant.GroupChatType + n.MsgFrom = constant.SysMsgType + n.OperationID = req.OperationID n.Content, _ = json.Marshal(tips) n.RecvID = req.GroupID Notification(&n) for _, v := range kickedUserIDList { - n.SessionType = constant.SingleChatType - n.RecvID = v - Notification(&n) + m := n + m.SessionType = constant.SingleChatType + m.RecvID = v + Notification(&m) } } @@ -258,49 +280,29 @@ func MemberKickedNotification(req *pbGroup.KickGroupMemberReq, kickedUserIDList //群信息改变后掉用 func GroupInfoChangedNotification(operationID, opUserID, groupID string, changedType int32) { - var n NotificationMsg - n.SendID = opUserID - n.ContentType = constant.GroupInfoChangedNotification - n.SessionType = constant.GroupChatType - n.MsgFrom = constant.SysMsgType - n.OperationID = operationID - GroupInfoChangedTips := open_im_sdk.GroupInfoChangedTips{Group: &open_im_sdk.GroupInfo{}, OpUser: &open_im_sdk.GroupMemberFullInfo{}} - setGroupInfo(groupID, GroupInfoChangedTips.Group) - setOpUserInfo(opUserID, groupID, GroupInfoChangedTips.OpUser) + if err := setGroupInfo(groupID, GroupInfoChangedTips.Group); err != nil { + log.Error(operationID, "setGroupInfo failed ", err.Error(), groupID, GroupInfoChangedTips.Group) + return + } + if err := setOpUserInfo(opUserID, groupID, GroupInfoChangedTips.OpUser); err != nil { + log.Error(operationID, "setOpUserInfo failed ", err.Error(), opUserID, groupID, GroupInfoChangedTips.OpUser) + return + } GroupInfoChangedTips.ChangedType = changedType var tips open_im_sdk.TipsComm tips.Detail, _ = json.Marshal(GroupInfoChangedTips) tips.DefaultTips = "GroupInfoChangedNotification" - n.Content, _ = json.Marshal(tips) - n.RecvID = groupID - Notification(&n) -} - -/* -func GroupInfoChangedNotification(operationID string, changedType int32, group *immysql.Group, opUser *immysql.GroupMember) { var n NotificationMsg - n.SendID = opUser.UserID - n.RecvID = group.GroupID - n.ContentType = constant.ChangeGroupInfoTip + n.SendID = opUserID + n.ContentType = constant.GroupInfoChangedNotification n.SessionType = constant.GroupChatType n.MsgFrom = constant.SysMsgType n.OperationID = operationID - - var groupInfoChanged open_im_sdk.GroupInfoChangedTips - groupInfoChanged.Group = &open_im_sdk.GroupInfo{} - utils.CopyStructFields(groupInfoChanged.Group, group) - groupInfoChanged.OpUser = &open_im_sdk.GroupMemberFullInfo{} - utils.CopyStructFields(groupInfoChanged.OpUser, opUser) - groupInfoChanged.ChangedType = changedType - - var tips open_im_sdk.TipsComm - tips.Detail, _ = json.Marshal(groupInfoChanged) - tips.DefaultTips = config.Config.Notification.GroupInfoChanged.DefaultTips.Tips n.Content, _ = json.Marshal(tips) - Notification(&n, false) + n.RecvID = groupID + Notification(&n) } -*/ //message MemberLeaveTips{ // GroupInfo Group = 1; @@ -310,27 +312,33 @@ func GroupInfoChangedNotification(operationID string, changedType int32, group * //群成员退群后调用 func MemberLeaveNotification(req *pbGroup.QuitGroupReq) { + MemberLeaveTips := open_im_sdk.MemberLeaveTips{Group: &open_im_sdk.GroupInfo{}, LeaverUser: &open_im_sdk.GroupMemberFullInfo{}} + if err := setGroupInfo(req.GroupID, MemberLeaveTips.Group); err != nil { + log.Error(req.OperationID, "setGroupInfo failed ", err.Error(), req.GroupID, MemberLeaveTips.Group) + return + } + if err := setOpUserInfo(req.OpUserID, req.GroupID, MemberLeaveTips.LeaverUser); err != nil { + log.Error(req.OperationID, "setOpUserInfo failed ", err.Error(), req.OpUserID, req.GroupID, MemberLeaveTips.LeaverUser) + return + } + + var tips open_im_sdk.TipsComm + tips.Detail, _ = json.Marshal(MemberLeaveTips) + tips.DefaultTips = "MemberLeaveNotification" var n NotificationMsg n.SendID = req.OpUserID n.ContentType = constant.MemberLeaveNotification n.SessionType = constant.GroupChatType n.MsgFrom = constant.SysMsgType n.OperationID = req.OperationID - - MemberLeaveTips := open_im_sdk.MemberLeaveTips{Group: &open_im_sdk.GroupInfo{}, LeaverUser: &open_im_sdk.GroupMemberFullInfo{}} - setGroupInfo(req.GroupID, MemberLeaveTips.Group) - setOpUserInfo(req.OpUserID, req.GroupID, MemberLeaveTips.LeaverUser) - - var tips open_im_sdk.TipsComm - tips.Detail, _ = json.Marshal(MemberLeaveTips) - tips.DefaultTips = "MemberLeaveNotification" n.Content, _ = json.Marshal(tips) n.RecvID = req.GroupID Notification(&n) + m := n n.SessionType = constant.SingleChatType n.RecvID = req.OpUserID - Notification(&n) + Notification(&m) } //message MemberEnterTips{ @@ -340,22 +348,25 @@ func MemberLeaveNotification(req *pbGroup.QuitGroupReq) { //} //群成员主动申请进群,管理员同意后调用, func MemberEnterNotification(req *pbGroup.GroupApplicationResponseReq) { + MemberLeaveTips := open_im_sdk.MemberEnterTips{Group: &open_im_sdk.GroupInfo{}, EntrantUser: &open_im_sdk.GroupMemberFullInfo{}} + if err := setGroupInfo(req.GroupID, MemberLeaveTips.Group); err != nil { + log.Error(req.OperationID, "setGroupInfo failed ", err.Error(), req.GroupID, MemberLeaveTips.Group) + return + } + if err := setOpUserInfo(req.OpUserID, req.GroupID, MemberLeaveTips.EntrantUser); err != nil { + log.Error(req.OperationID, "setOpUserInfo failed ", err.Error(), req.OpUserID, req.GroupID, MemberLeaveTips.EntrantUser) + return + } + var tips open_im_sdk.TipsComm + tips.Detail, _ = json.Marshal(MemberLeaveTips) + tips.DefaultTips = "MemberEnterNotification" var n NotificationMsg n.SendID = req.OpUserID n.ContentType = constant.MemberEnterNotification n.SessionType = constant.GroupChatType n.MsgFrom = constant.SysMsgType n.OperationID = req.OperationID - - MemberLeaveTips := open_im_sdk.MemberEnterTips{Group: &open_im_sdk.GroupInfo{}, EntrantUser: &open_im_sdk.GroupMemberFullInfo{}} - setGroupInfo(req.GroupID, MemberLeaveTips.Group) - setOpUserInfo(req.OpUserID, req.GroupID, MemberLeaveTips.EntrantUser) - - var tips open_im_sdk.TipsComm - tips.Detail, _ = json.Marshal(MemberLeaveTips) - tips.DefaultTips = "MemberEnterNotification" n.Content, _ = json.Marshal(tips) n.RecvID = req.GroupID Notification(&n) - } diff --git a/pkg/base_info/group_api_struct.go b/pkg/base_info/group_api_struct.go index 71301455a..01ba3da84 100644 --- a/pkg/base_info/group_api_struct.go +++ b/pkg/base_info/group_api_struct.go @@ -54,7 +54,7 @@ type GetJoinedGroupListReq struct { } type GetJoinedGroupListResp struct { CommResp - GroupInfoList []*open_im_sdk.GroupInfo + GroupInfoList []*open_im_sdk.GroupInfo `json:"-"` Data []map[string]interface{} `json:"data"` } @@ -66,9 +66,9 @@ type GetGroupMemberListReq struct { } type GetGroupMemberListResp struct { CommResp - NextSeq int32 `json:"nextSeq"` - MemberList []*open_im_sdk.GroupMemberFullInfo - Data []map[string]interface{} `json:"data"` + NextSeq int32 `json:"nextSeq"` + MemberList []*open_im_sdk.GroupMemberFullInfo `json:"-"` + Data []map[string]interface{} `json:"data"` } type GetGroupAllMemberReq struct { @@ -90,7 +90,7 @@ type CreateGroupReq struct { } type CreateGroupResp struct { CommResp - GroupInfo open_im_sdk.GroupInfo + GroupInfo open_im_sdk.GroupInfo `jason:-` Data map[string]interface{} `json:"data"` } @@ -100,8 +100,8 @@ type GetGroupApplicationListReq struct { } type GetGroupApplicationListResp struct { CommResp - GroupRequestList []*open_im_sdk.GroupRequest - Data []map[string]interface{} `json:"data"` + GroupRequestList []*open_im_sdk.GroupRequest `json:"-"` + Data []map[string]interface{} `json:"data"` } type GetGroupInfoReq struct { @@ -110,7 +110,7 @@ type GetGroupInfoReq struct { } type GetGroupInfoResp struct { CommResp - GroupInfoList []*open_im_sdk.GroupInfo + GroupInfoList []*open_im_sdk.GroupInfo `json:"-"` Data []map[string]interface{} `json:"data"` } diff --git a/pkg/common/log/logrus.go b/pkg/common/log/logrus.go index 03b768eca..936f3e9b2 100644 --- a/pkg/common/log/logrus.go +++ b/pkg/common/log/logrus.go @@ -88,33 +88,25 @@ func initRotateLogs(rotationTime time.Duration, maxRemainNum uint, level string, } } -//Deprecated -func Info(token, OperationID, format string, args ...interface{}) { +func Info(OperationID string, args ...interface{}) { logger.WithFields(logrus.Fields{ - "PID": logger.Pid, "OperationID": OperationID, - }).Infof(format, args...) - + "PID": logger.Pid, + }).Infoln(args) } -//Deprecated -func Error(token, OperationID, format string, args ...interface{}) { - +func Error(OperationID string, args ...interface{}) { logger.WithFields(logrus.Fields{ - "PID": logger.Pid, "OperationID": OperationID, - }).Errorf(format, args...) - + "PID": logger.Pid, + }).Errorln(args) } -//Deprecated -func Debug(token, OperationID, format string, args ...interface{}) { - +func Debug(OperationID string, args ...interface{}) { logger.WithFields(logrus.Fields{ - "PID": logger.Pid, "OperationID": OperationID, - }).Debugf(format, args...) - + "PID": logger.Pid, + }).Debugln(args) } //Deprecated From 2a3cf5f0025ee0c438002bcfe4bba78681b1e62d Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Fri, 14 Jan 2022 16:48:42 +0800 Subject: [PATCH 489/814] Refactor code --- internal/rpc/msg/friend_notification.go | 203 ++++++++++++------------ 1 file changed, 105 insertions(+), 98 deletions(-) diff --git a/internal/rpc/msg/friend_notification.go b/internal/rpc/msg/friend_notification.go index df71e919f..1d130882e 100644 --- a/internal/rpc/msg/friend_notification.go +++ b/internal/rpc/msg/friend_notification.go @@ -4,6 +4,7 @@ import ( "Open_IM/pkg/common/constant" imdb "Open_IM/pkg/common/db/mysql_model/im_mysql_model" "Open_IM/pkg/common/log" + utils2 "Open_IM/pkg/common/utils" pbFriend "Open_IM/pkg/proto/friend" open_im_sdk "Open_IM/pkg/proto/sdk_ws" "Open_IM/pkg/utils" @@ -27,108 +28,99 @@ import ( // PublicUserInfo OpedUser = 3; //user2 //} -func getFromToUserNickname(fromUserID, toUserID string) (string, string) { - from, err1 := imdb.GetUserByUserID(fromUserID) - to, err2 := imdb.GetUserByUserID(toUserID) - if err1 != nil || err2 != nil { - log.NewError("FindUserByUID failed ", err1, err2, fromUserID, toUserID) - } - fromNickname, toNickname := "", "" - if from != nil { - fromNickname = from.Nickname +func getFromToUserNickname(fromUserID, toUserID string) (string, string, error) { + from, err := imdb.GetUserByUserID(fromUserID) + if err != nil { + return "", "", utils.Wrap(err, "") } - if to != nil { - toNickname = to.Nickname + to, err := imdb.GetUserByUserID(toUserID) + if err != nil { + return "", "", utils.Wrap(err, "") } - return fromNickname, toNickname + return from.Nickname, to.Nickname, nil } func FriendApplicationAddedNotification(req *pbFriend.AddFriendReq) { - var n NotificationMsg - n.SendID = req.CommID.FromUserID - n.RecvID = req.CommID.ToUserID - n.ContentType = constant.FriendApplicationAddedNotification - n.SessionType = constant.SingleChatType - n.MsgFrom = constant.SysMsgType - n.OperationID = req.CommID.OperationID - var FriendApplicationAddedTips open_im_sdk.FriendApplicationAddedTips FriendApplicationAddedTips.FromToUserID.FromUserID = req.CommID.FromUserID FriendApplicationAddedTips.FromToUserID.ToUserID = req.CommID.ToUserID - fromUserNickname, toUserNickname := getFromToUserNickname(req.CommID.OperationID, req.CommID.FromUserID, req.CommID.ToUserID) + fromUserNickname, toUserNickname, err := getFromToUserNickname(req.CommID.FromUserID, req.CommID.ToUserID) + if err != nil { + log.Error(req.CommID.OperationID, "getFromToUserNickname failed ", err.Error(), req.CommID.FromUserID, req.CommID.ToUserID) + return + } var tips open_im_sdk.TipsComm tips.Detail, _ = json.Marshal(FriendApplicationAddedTips) tips.DefaultTips = fromUserNickname + " FriendApplicationAddedNotification " + toUserNickname - n.Content, _ = json.Marshal(tips) - Notification(&n, true) -} -func FriendApplicationProcessedNotification(req *pbFriend.AddFriendResponseReq) { var n NotificationMsg n.SendID = req.CommID.FromUserID n.RecvID = req.CommID.ToUserID - n.ContentType = constant.FriendApplicationProcessedNotification + n.ContentType = constant.FriendApplicationAddedNotification n.SessionType = constant.SingleChatType n.MsgFrom = constant.SysMsgType n.OperationID = req.CommID.OperationID + n.Content, _ = json.Marshal(tips) + Notification(&n) +} +func FriendApplicationProcessedNotification(req *pbFriend.AddFriendResponseReq) { var FriendApplicationProcessedTips open_im_sdk.FriendApplicationProcessedTips FriendApplicationProcessedTips.FromToUserID.FromUserID = req.CommID.FromUserID FriendApplicationProcessedTips.FromToUserID.ToUserID = req.CommID.ToUserID - fromUserNickname, toUserNickname := getFromToUserNickname(req.CommID.OperationID, req.CommID.FromUserID, req.CommID.ToUserID) + fromUserNickname, toUserNickname, err := getFromToUserNickname(req.CommID.FromUserID, req.CommID.ToUserID) + if err != nil { + log.Error(req.CommID.OperationID, "getFromToUserNickname failed ", err.Error(), req.CommID.FromUserID, req.CommID.ToUserID) + return + } + var tips open_im_sdk.TipsComm tips.Detail, _ = json.Marshal(FriendApplicationProcessedTips) tips.DefaultTips = fromUserNickname + " FriendApplicationProcessedNotification " + toUserNickname - n.Content, _ = json.Marshal(tips) - Notification(&n) -} -func FriendAddedNotification(operationID, opUserID, fromUserID, toUserID string) { var n NotificationMsg - n.SendID = fromUserID - n.RecvID = toUserID - n.ContentType = constant.FriendAddedNotification + n.SendID = req.CommID.FromUserID + n.RecvID = req.CommID.ToUserID + n.ContentType = constant.FriendApplicationProcessedNotification n.SessionType = constant.SingleChatType n.MsgFrom = constant.SysMsgType - n.OperationID = operationID + n.OperationID = req.CommID.OperationID + n.Content, _ = json.Marshal(tips) + Notification(&n) +} +func FriendAddedNotification(operationID, opUserID, fromUserID, toUserID string) { var FriendAddedTips open_im_sdk.FriendAddedTips - user, err := imdb.GetUserByUserID(opUserID) if err != nil { - log.NewError(operationID, "FindUserByUID failed ", err.Error(), opUserID) - - } else { - utils.CopyStructFields(FriendAddedTips.OpUser, user) + log.NewError(operationID, "GetUserByUserID failed ", err.Error(), opUserID) + return } + utils.CopyStructFields(FriendAddedTips.OpUser, user) friend, err := imdb.GetFriendRelationshipFromFriend(fromUserID, toUserID) if err != nil { - log.NewError(operationID, "FindUserByUID failed ", err.Error(), fromUserID, toUserID) - } else { - FriendAddedTips.Friend.Remark = friend.Remark + log.NewError(operationID, "GetFriendRelationshipFromFriend failed ", err.Error(), fromUserID, toUserID) + return } + utils2.FriendDBCopyOpenIM(FriendAddedTips.Friend, friend) - from, err := imdb.GetUserByUserID(fromUserID) + fromUserNickname, toUserNickname, err := getFromToUserNickname(fromUserID, toUserID) if err != nil { - log.NewError(operationID, "FindUserByUID failed ", err.Error(), fromUserID) - - } else { - utils.CopyStructFields(FriendAddedTips.Friend, from) + log.Error(operationID, "getFromToUserNickname failed ", err.Error(), fromUserID, toUserID) + return } - to, err := imdb.GetUserByUserID(toUserID) - if err != nil { - log.NewError(operationID, "FindUserByUID failed ", err.Error(), toUserID) - - } else { - utils.CopyStructFields(FriendAddedTips.Friend.FriendUser, to) - } - - fromUserNickname, toUserNickname := from.Nickname, to.Nickname var tips open_im_sdk.TipsComm tips.Detail, _ = json.Marshal(FriendAddedTips) tips.DefaultTips = fromUserNickname + " FriendAddedNotification " + toUserNickname + var n NotificationMsg + n.SendID = fromUserID + n.RecvID = toUserID + n.ContentType = constant.FriendAddedNotification + n.SessionType = constant.SingleChatType + n.MsgFrom = constant.SysMsgType + n.OperationID = operationID n.Content, _ = json.Marshal(tips) Notification(&n) } @@ -137,21 +129,25 @@ func FriendAddedNotification(operationID, opUserID, fromUserID, toUserID string) // FriendInfo Friend = 1; //} func FriendDeletedNotification(req *pbFriend.DeleteFriendReq) { - var n NotificationMsg - n.SendID = req.CommID.FromUserID - n.RecvID = req.CommID.ToUserID - n.ContentType = constant.FriendDeletedNotification - n.SessionType = constant.SingleChatType - n.MsgFrom = constant.SysMsgType - n.OperationID = req.CommID.OperationID var FriendDeletedTips open_im_sdk.FriendDeletedTips FriendDeletedTips.FromToUserID.FromUserID = req.CommID.FromUserID FriendDeletedTips.FromToUserID.ToUserID = req.CommID.ToUserID - fromUserNickname, toUserNickname := getFromToUserNickname(req.CommID.FromUserID, req.CommID.ToUserID) + fromUserNickname, toUserNickname, err := getFromToUserNickname(req.CommID.FromUserID, req.CommID.ToUserID) + if err != nil { + log.Error(req.CommID.OperationID, "getFromToUserNickname failed ", req.CommID.FromUserID, req.CommID.ToUserID) + return + } var tips open_im_sdk.TipsComm tips.Detail, _ = json.Marshal(FriendDeletedTips) tips.DefaultTips = fromUserNickname + " FriendDeletedNotification " + toUserNickname + var n NotificationMsg + n.SendID = req.CommID.FromUserID + n.RecvID = req.CommID.ToUserID + n.ContentType = constant.FriendDeletedNotification + n.SessionType = constant.SingleChatType + n.MsgFrom = constant.SysMsgType + n.OperationID = req.CommID.OperationID n.Content, _ = json.Marshal(tips) Notification(&n) } @@ -162,6 +158,18 @@ func FriendDeletedNotification(req *pbFriend.DeleteFriendReq) { // uint64 OperationTime = 3; //} func FriendInfoChangedNotification(operationID, opUserID, fromUserID, toUserID string) { + + var FriendInfoChangedTips open_im_sdk.FriendInfoChangedTips + FriendInfoChangedTips.FromToUserID.FromUserID = fromUserID + FriendInfoChangedTips.FromToUserID.ToUserID = toUserID + fromUserNickname, toUserNickname, err := getFromToUserNickname(fromUserID, toUserID) + if err != nil { + log.Error(operationID, "getFromToUserNickname failed ", fromUserID, toUserID) + return + } + var tips open_im_sdk.TipsComm + tips.Detail, _ = json.Marshal(FriendInfoChangedTips) + tips.DefaultTips = fromUserNickname + " FriendDeletedNotification " + toUserNickname var n NotificationMsg n.SendID = fromUserID n.RecvID = toUserID @@ -170,33 +178,30 @@ func FriendInfoChangedNotification(operationID, opUserID, fromUserID, toUserID s n.MsgFrom = constant.SysMsgType n.OperationID = operationID - var FriendInfoChangedTips open_im_sdk.FriendInfoChangedTips - FriendInfoChangedTips.FromToUserID.FromUserID = fromUserID - FriendInfoChangedTips.FromToUserID.ToUserID = toUserID - fromUserNickname, toUserNickname := getFromToUserNickname(fromUserID, toUserID) - var tips open_im_sdk.TipsComm - tips.Detail, _ = json.Marshal(FriendInfoChangedTips) - tips.DefaultTips = fromUserNickname + " FriendDeletedNotification " + toUserNickname n.Content, _ = json.Marshal(tips) Notification(&n) } func BlackAddedNotification(req *pbFriend.AddBlacklistReq) { - var n NotificationMsg - n.SendID = req.CommID.FromUserID - n.RecvID = req.CommID.ToUserID - n.ContentType = constant.BlackAddedNotification - n.SessionType = constant.SingleChatType - n.MsgFrom = constant.SysMsgType - n.OperationID = req.CommID.OperationID var BlackAddedTips open_im_sdk.BlackAddedTips BlackAddedTips.FromToUserID.FromUserID = req.CommID.FromUserID BlackAddedTips.FromToUserID.ToUserID = req.CommID.ToUserID - fromUserNickname, toUserNickname := getFromToUserNickname(req.CommID.FromUserID, req.CommID.ToUserID) + fromUserNickname, toUserNickname, err := getFromToUserNickname(req.CommID.FromUserID, req.CommID.ToUserID) + if err != nil { + log.Error(req.CommID.OperationID, "getFromToUserNickname failed ", req.CommID.FromUserID, req.CommID.ToUserID) + return + } var tips open_im_sdk.TipsComm tips.Detail, _ = json.Marshal(BlackAddedTips) tips.DefaultTips = fromUserNickname + " BlackAddedNotification " + toUserNickname + var n NotificationMsg + n.SendID = req.CommID.FromUserID + n.RecvID = req.CommID.ToUserID + n.ContentType = constant.BlackAddedNotification + n.SessionType = constant.SingleChatType + n.MsgFrom = constant.SysMsgType + n.OperationID = req.CommID.OperationID n.Content, _ = json.Marshal(tips) Notification(&n) } @@ -205,6 +210,17 @@ func BlackAddedNotification(req *pbFriend.AddBlacklistReq) { // BlackInfo Black = 1; //} func BlackDeletedNotification(req *pbFriend.RemoveBlacklistReq) { + var BlackDeletedTips open_im_sdk.BlackDeletedTips + BlackDeletedTips.FromToUserID.FromUserID = req.CommID.FromUserID + BlackDeletedTips.FromToUserID.ToUserID = req.CommID.ToUserID + fromUserNickname, toUserNickname, err := getFromToUserNickname(req.CommID.FromUserID, req.CommID.ToUserID) + if err != nil { + log.Error(req.CommID.OperationID, "getFromToUserNickname failed ", err.Error(), req.CommID.FromUserID, req.CommID.ToUserID) + return + } + var tips open_im_sdk.TipsComm + tips.Detail, _ = json.Marshal(BlackDeletedTips) + tips.DefaultTips = fromUserNickname + " BlackDeletedNotification " + toUserNickname var n NotificationMsg n.SendID = req.CommID.FromUserID n.RecvID = req.CommID.ToUserID @@ -212,14 +228,6 @@ func BlackDeletedNotification(req *pbFriend.RemoveBlacklistReq) { n.SessionType = constant.SingleChatType n.MsgFrom = constant.SysMsgType n.OperationID = req.CommID.OperationID - - var BlackDeletedTips open_im_sdk.BlackDeletedTips - BlackDeletedTips.FromToUserID.FromUserID = req.CommID.FromUserID - BlackDeletedTips.FromToUserID.ToUserID = req.CommID.ToUserID - fromUserNickname, toUserNickname := getFromToUserNickname(req.CommID.FromUserID, req.CommID.ToUserID) - var tips open_im_sdk.TipsComm - tips.Detail, _ = json.Marshal(BlackDeletedTips) - tips.DefaultTips = fromUserNickname + " BlackDeletedNotification " + toUserNickname n.Content, _ = json.Marshal(tips) Notification(&n) } @@ -230,6 +238,15 @@ func BlackDeletedNotification(req *pbFriend.RemoveBlacklistReq) { // uint64 OperationTime = 3; //} func SelfInfoUpdatedNotification(operationID, userID string) { + var SelfInfoUpdatedTips open_im_sdk.SelfInfoUpdatedTips + SelfInfoUpdatedTips.UserID = userID + u, err := imdb.GetUserByUserID(userID) + if err != nil { + log.NewError(operationID, "FindUserByUID failed ", err.Error(), userID) + return + } + var tips open_im_sdk.TipsComm + tips.Detail, _ = json.Marshal(SelfInfoUpdatedTips) var n NotificationMsg n.SendID = userID n.RecvID = userID @@ -238,16 +255,6 @@ func SelfInfoUpdatedNotification(operationID, userID string) { n.MsgFrom = constant.SysMsgType n.OperationID = operationID - var SelfInfoUpdatedTips open_im_sdk.SelfInfoUpdatedTips - SelfInfoUpdatedTips.UserID = userID - - var tips open_im_sdk.TipsComm - u, err := imdb.GetUserByUserID(userID) - if err != nil { - log.NewError(operationID, "FindUserByUID failed ", err.Error(), userID) - } - - tips.Detail, _ = json.Marshal(SelfInfoUpdatedTips) tips.DefaultTips = u.Nickname + " SelfInfoUpdatedNotification " n.Content, _ = json.Marshal(tips) Notification(&n) From 839123408b4ec854c030c7a4f9a298ae6f79853f Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Fri, 14 Jan 2022 18:16:50 +0800 Subject: [PATCH 490/814] Refactor code --- pkg/proto/friend/friend.proto | 2 +- pkg/proto/sdk_ws/ws.proto | 26 ++++++++++++++++---------- 2 files changed, 17 insertions(+), 11 deletions(-) diff --git a/pkg/proto/friend/friend.proto b/pkg/proto/friend/friend.proto index 9bb348178..96a4cb8e4 100644 --- a/pkg/proto/friend/friend.proto +++ b/pkg/proto/friend/friend.proto @@ -58,7 +58,7 @@ message GetFriendApplyListReq{ message GetFriendApplyListResp{ int32 ErrCode = 1; string ErrMsg = 2; - repeated open_im_sdk.FriendRequest FriendRequestList = 3; + repeated server_api_params.FriendRequest FriendRequestList = 3; } diff --git a/pkg/proto/sdk_ws/ws.proto b/pkg/proto/sdk_ws/ws.proto index bd3729e85..8c6c11018 100644 --- a/pkg/proto/sdk_ws/ws.proto +++ b/pkg/proto/sdk_ws/ws.proto @@ -1,5 +1,5 @@ syntax = "proto3"; -package open_im_sdk;//The package name to which the proto file belongs +package server_api_params;//The package name to which the proto file belongs //option go_package = "./sdk_ws;open_im_sdk";//The generated go pb file is in the current directory, and the package name is open_im_sdk ////////////////////////////////base/////////////////////////////// @@ -87,15 +87,21 @@ message GroupRequest{ } message FriendRequest{ - string fromUserID = 1; - string toUserID = 2; - int32 handleResult = 3; - string reqMsg = 4; - uint32 createTime = 5; - string handlerUserID = 6; - string handleMsg = 7; - uint32 handleTime = 8; - string ex = 9; + string fromUserID = 1; + string fromNickname = 2; + string fromFaceURL = 3; + string fromGender = 4; + string toUserID = 5; + string toNickname = 6; + string toFaceURL = 7; + string toGender = 8; + int32 handleResult = 9; + string reqMsg = 10; + uint32 createTime = 11; + string handlerUserID = 12; + string handleMsg = 13; + uint32 handleTime = 14; + string ex = 15; } ///////////////////////////////////base end///////////////////////////////////// From 46016336052bc1fda0393c546afe22f692d603a7 Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Fri, 14 Jan 2022 18:29:09 +0800 Subject: [PATCH 491/814] Refactor code --- internal/rpc/friend/firend.go | 9 + pkg/common/db/model_struct.go | 2 +- pkg/proto/friend/friend.pb.go | 190 +++++++------- pkg/proto/friend/friend.proto | 8 +- pkg/proto/sdk_ws/ws.pb.go | 477 +++++++++++++++++++--------------- pkg/proto/sdk_ws/ws.proto | 4 +- 6 files changed, 376 insertions(+), 314 deletions(-) diff --git a/internal/rpc/friend/firend.go b/internal/rpc/friend/firend.go index 14de9bb20..4d54787e9 100644 --- a/internal/rpc/friend/firend.go +++ b/internal/rpc/friend/firend.go @@ -442,8 +442,17 @@ func (s *friendServer) GetFriendApplyList(ctx context.Context, req *pbFriend.Get for _, applyUserInfo := range ApplyUsersInfo { var userInfo sdkws.FriendRequest utils.CopyStructFields(&userInfo, applyUserInfo) + u, err := imdb.GetUserByUserID(userInfo.FromUserID) + if err != nil { + log.Error(req.CommID.OperationID, "GetUserByUserID", userInfo.FromUserID) + continue + } + userInfo.FromNickname = u.Nickname + userInfo.FromFaceURL = u.FaceURL + userInfo.FromGender = u.Gend appleUserList = append(appleUserList, &userInfo) } + log.NewInfo(req.CommID.OperationID, "rpc GetFriendApplyList ok", pbFriend.GetFriendApplyListResp{FriendRequestList: appleUserList}) return &pbFriend.GetFriendApplyListResp{FriendRequestList: appleUserList}, nil } diff --git a/pkg/common/db/model_struct.go b/pkg/common/db/model_struct.go index 65a57b96a..0af3a6919 100644 --- a/pkg/common/db/model_struct.go +++ b/pkg/common/db/model_struct.go @@ -138,7 +138,7 @@ type GroupRequest struct { type User struct { UserID string `gorm:"column:user_id;primary_key;size:64"` Nickname string `gorm:"column:name;size:255"` - FaceUrl string `gorm:"column:face_url;size:255"` + FaceURL string `gorm:"column:face_url;size:255"` Gender int32 `gorm:"column:gender"` PhoneNumber string `gorm:"column:phone_number;size:32"` Birth time.Time `gorm:"column:birth"` diff --git a/pkg/proto/friend/friend.pb.go b/pkg/proto/friend/friend.pb.go index 1c46e62ec..0f13634a6 100644 --- a/pkg/proto/friend/friend.pb.go +++ b/pkg/proto/friend/friend.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_friend_74665a4d507faa8c, []int{0} + return fileDescriptor_friend_33f7e79cb4454131, []int{0} } func (m *CommonResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_CommonResp.Unmarshal(m, b) @@ -84,7 +84,7 @@ func (m *CommID) Reset() { *m = CommID{} } func (m *CommID) String() string { return proto.CompactTextString(m) } func (*CommID) ProtoMessage() {} func (*CommID) Descriptor() ([]byte, []int) { - return fileDescriptor_friend_74665a4d507faa8c, []int{1} + return fileDescriptor_friend_33f7e79cb4454131, []int{1} } func (m *CommID) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_CommID.Unmarshal(m, b) @@ -143,7 +143,7 @@ func (m *GetFriendsInfoReq) Reset() { *m = GetFriendsInfoReq{} } func (m *GetFriendsInfoReq) String() string { return proto.CompactTextString(m) } func (*GetFriendsInfoReq) ProtoMessage() {} func (*GetFriendsInfoReq) Descriptor() ([]byte, []int) { - return fileDescriptor_friend_74665a4d507faa8c, []int{2} + return fileDescriptor_friend_33f7e79cb4454131, []int{2} } func (m *GetFriendsInfoReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetFriendsInfoReq.Unmarshal(m, b) @@ -183,7 +183,7 @@ func (m *GetFriendInfoResp) Reset() { *m = GetFriendInfoResp{} } func (m *GetFriendInfoResp) String() string { return proto.CompactTextString(m) } func (*GetFriendInfoResp) ProtoMessage() {} func (*GetFriendInfoResp) Descriptor() ([]byte, []int) { - return fileDescriptor_friend_74665a4d507faa8c, []int{3} + return fileDescriptor_friend_33f7e79cb4454131, []int{3} } func (m *GetFriendInfoResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetFriendInfoResp.Unmarshal(m, b) @@ -236,7 +236,7 @@ func (m *AddFriendReq) Reset() { *m = AddFriendReq{} } func (m *AddFriendReq) String() string { return proto.CompactTextString(m) } func (*AddFriendReq) ProtoMessage() {} func (*AddFriendReq) Descriptor() ([]byte, []int) { - return fileDescriptor_friend_74665a4d507faa8c, []int{4} + return fileDescriptor_friend_33f7e79cb4454131, []int{4} } func (m *AddFriendReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_AddFriendReq.Unmarshal(m, b) @@ -281,7 +281,7 @@ func (m *AddFriendResp) Reset() { *m = AddFriendResp{} } func (m *AddFriendResp) String() string { return proto.CompactTextString(m) } func (*AddFriendResp) ProtoMessage() {} func (*AddFriendResp) Descriptor() ([]byte, []int) { - return fileDescriptor_friend_74665a4d507faa8c, []int{5} + return fileDescriptor_friend_33f7e79cb4454131, []int{5} } func (m *AddFriendResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_AddFriendResp.Unmarshal(m, b) @@ -322,7 +322,7 @@ func (m *ImportFriendReq) Reset() { *m = ImportFriendReq{} } func (m *ImportFriendReq) String() string { return proto.CompactTextString(m) } func (*ImportFriendReq) ProtoMessage() {} func (*ImportFriendReq) Descriptor() ([]byte, []int) { - return fileDescriptor_friend_74665a4d507faa8c, []int{6} + return fileDescriptor_friend_33f7e79cb4454131, []int{6} } func (m *ImportFriendReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ImportFriendReq.Unmarshal(m, b) @@ -382,7 +382,7 @@ func (m *UserIDResult) Reset() { *m = UserIDResult{} } func (m *UserIDResult) String() string { return proto.CompactTextString(m) } func (*UserIDResult) ProtoMessage() {} func (*UserIDResult) Descriptor() ([]byte, []int) { - return fileDescriptor_friend_74665a4d507faa8c, []int{7} + return fileDescriptor_friend_33f7e79cb4454131, []int{7} } func (m *UserIDResult) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_UserIDResult.Unmarshal(m, b) @@ -428,7 +428,7 @@ func (m *ImportFriendResp) Reset() { *m = ImportFriendResp{} } func (m *ImportFriendResp) String() string { return proto.CompactTextString(m) } func (*ImportFriendResp) ProtoMessage() {} func (*ImportFriendResp) Descriptor() ([]byte, []int) { - return fileDescriptor_friend_74665a4d507faa8c, []int{8} + return fileDescriptor_friend_33f7e79cb4454131, []int{8} } func (m *ImportFriendResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ImportFriendResp.Unmarshal(m, b) @@ -473,7 +473,7 @@ func (m *GetFriendApplyListReq) Reset() { *m = GetFriendApplyListReq{} } func (m *GetFriendApplyListReq) String() string { return proto.CompactTextString(m) } func (*GetFriendApplyListReq) ProtoMessage() {} func (*GetFriendApplyListReq) Descriptor() ([]byte, []int) { - return fileDescriptor_friend_74665a4d507faa8c, []int{9} + return fileDescriptor_friend_33f7e79cb4454131, []int{9} } func (m *GetFriendApplyListReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetFriendApplyListReq.Unmarshal(m, b) @@ -513,7 +513,7 @@ func (m *GetFriendApplyListResp) Reset() { *m = GetFriendApplyListResp{} func (m *GetFriendApplyListResp) String() string { return proto.CompactTextString(m) } func (*GetFriendApplyListResp) ProtoMessage() {} func (*GetFriendApplyListResp) Descriptor() ([]byte, []int) { - return fileDescriptor_friend_74665a4d507faa8c, []int{10} + return fileDescriptor_friend_33f7e79cb4454131, []int{10} } func (m *GetFriendApplyListResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetFriendApplyListResp.Unmarshal(m, b) @@ -565,7 +565,7 @@ func (m *GetFriendListReq) Reset() { *m = GetFriendListReq{} } func (m *GetFriendListReq) String() string { return proto.CompactTextString(m) } func (*GetFriendListReq) ProtoMessage() {} func (*GetFriendListReq) Descriptor() ([]byte, []int) { - return fileDescriptor_friend_74665a4d507faa8c, []int{11} + return fileDescriptor_friend_33f7e79cb4454131, []int{11} } func (m *GetFriendListReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetFriendListReq.Unmarshal(m, b) @@ -605,7 +605,7 @@ func (m *GetFriendListResp) Reset() { *m = GetFriendListResp{} } func (m *GetFriendListResp) String() string { return proto.CompactTextString(m) } func (*GetFriendListResp) ProtoMessage() {} func (*GetFriendListResp) Descriptor() ([]byte, []int) { - return fileDescriptor_friend_74665a4d507faa8c, []int{12} + return fileDescriptor_friend_33f7e79cb4454131, []int{12} } func (m *GetFriendListResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetFriendListResp.Unmarshal(m, b) @@ -657,7 +657,7 @@ func (m *AddBlacklistReq) Reset() { *m = AddBlacklistReq{} } func (m *AddBlacklistReq) String() string { return proto.CompactTextString(m) } func (*AddBlacklistReq) ProtoMessage() {} func (*AddBlacklistReq) Descriptor() ([]byte, []int) { - return fileDescriptor_friend_74665a4d507faa8c, []int{13} + return fileDescriptor_friend_33f7e79cb4454131, []int{13} } func (m *AddBlacklistReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_AddBlacklistReq.Unmarshal(m, b) @@ -695,7 +695,7 @@ func (m *AddBlacklistResp) Reset() { *m = AddBlacklistResp{} } func (m *AddBlacklistResp) String() string { return proto.CompactTextString(m) } func (*AddBlacklistResp) ProtoMessage() {} func (*AddBlacklistResp) Descriptor() ([]byte, []int) { - return fileDescriptor_friend_74665a4d507faa8c, []int{14} + return fileDescriptor_friend_33f7e79cb4454131, []int{14} } func (m *AddBlacklistResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_AddBlacklistResp.Unmarshal(m, b) @@ -733,7 +733,7 @@ func (m *RemoveBlacklistReq) Reset() { *m = RemoveBlacklistReq{} } func (m *RemoveBlacklistReq) String() string { return proto.CompactTextString(m) } func (*RemoveBlacklistReq) ProtoMessage() {} func (*RemoveBlacklistReq) Descriptor() ([]byte, []int) { - return fileDescriptor_friend_74665a4d507faa8c, []int{15} + return fileDescriptor_friend_33f7e79cb4454131, []int{15} } func (m *RemoveBlacklistReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_RemoveBlacklistReq.Unmarshal(m, b) @@ -771,7 +771,7 @@ func (m *RemoveBlacklistResp) Reset() { *m = RemoveBlacklistResp{} } func (m *RemoveBlacklistResp) String() string { return proto.CompactTextString(m) } func (*RemoveBlacklistResp) ProtoMessage() {} func (*RemoveBlacklistResp) Descriptor() ([]byte, []int) { - return fileDescriptor_friend_74665a4d507faa8c, []int{16} + return fileDescriptor_friend_33f7e79cb4454131, []int{16} } func (m *RemoveBlacklistResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_RemoveBlacklistResp.Unmarshal(m, b) @@ -809,7 +809,7 @@ func (m *GetBlacklistReq) Reset() { *m = GetBlacklistReq{} } func (m *GetBlacklistReq) String() string { return proto.CompactTextString(m) } func (*GetBlacklistReq) ProtoMessage() {} func (*GetBlacklistReq) Descriptor() ([]byte, []int) { - return fileDescriptor_friend_74665a4d507faa8c, []int{17} + return fileDescriptor_friend_33f7e79cb4454131, []int{17} } func (m *GetBlacklistReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetBlacklistReq.Unmarshal(m, b) @@ -849,7 +849,7 @@ func (m *GetBlacklistResp) Reset() { *m = GetBlacklistResp{} } func (m *GetBlacklistResp) String() string { return proto.CompactTextString(m) } func (*GetBlacklistResp) ProtoMessage() {} func (*GetBlacklistResp) Descriptor() ([]byte, []int) { - return fileDescriptor_friend_74665a4d507faa8c, []int{18} + return fileDescriptor_friend_33f7e79cb4454131, []int{18} } func (m *GetBlacklistResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetBlacklistResp.Unmarshal(m, b) @@ -901,7 +901,7 @@ func (m *IsFriendReq) Reset() { *m = IsFriendReq{} } func (m *IsFriendReq) String() string { return proto.CompactTextString(m) } func (*IsFriendReq) ProtoMessage() {} func (*IsFriendReq) Descriptor() ([]byte, []int) { - return fileDescriptor_friend_74665a4d507faa8c, []int{19} + return fileDescriptor_friend_33f7e79cb4454131, []int{19} } func (m *IsFriendReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_IsFriendReq.Unmarshal(m, b) @@ -941,7 +941,7 @@ func (m *IsFriendResp) Reset() { *m = IsFriendResp{} } func (m *IsFriendResp) String() string { return proto.CompactTextString(m) } func (*IsFriendResp) ProtoMessage() {} func (*IsFriendResp) Descriptor() ([]byte, []int) { - return fileDescriptor_friend_74665a4d507faa8c, []int{20} + return fileDescriptor_friend_33f7e79cb4454131, []int{20} } func (m *IsFriendResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_IsFriendResp.Unmarshal(m, b) @@ -993,7 +993,7 @@ func (m *IsInBlackListReq) Reset() { *m = IsInBlackListReq{} } func (m *IsInBlackListReq) String() string { return proto.CompactTextString(m) } func (*IsInBlackListReq) ProtoMessage() {} func (*IsInBlackListReq) Descriptor() ([]byte, []int) { - return fileDescriptor_friend_74665a4d507faa8c, []int{21} + return fileDescriptor_friend_33f7e79cb4454131, []int{21} } func (m *IsInBlackListReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_IsInBlackListReq.Unmarshal(m, b) @@ -1033,7 +1033,7 @@ func (m *IsInBlackListResp) Reset() { *m = IsInBlackListResp{} } func (m *IsInBlackListResp) String() string { return proto.CompactTextString(m) } func (*IsInBlackListResp) ProtoMessage() {} func (*IsInBlackListResp) Descriptor() ([]byte, []int) { - return fileDescriptor_friend_74665a4d507faa8c, []int{22} + return fileDescriptor_friend_33f7e79cb4454131, []int{22} } func (m *IsInBlackListResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_IsInBlackListResp.Unmarshal(m, b) @@ -1085,7 +1085,7 @@ func (m *DeleteFriendReq) Reset() { *m = DeleteFriendReq{} } func (m *DeleteFriendReq) String() string { return proto.CompactTextString(m) } func (*DeleteFriendReq) ProtoMessage() {} func (*DeleteFriendReq) Descriptor() ([]byte, []int) { - return fileDescriptor_friend_74665a4d507faa8c, []int{23} + return fileDescriptor_friend_33f7e79cb4454131, []int{23} } func (m *DeleteFriendReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_DeleteFriendReq.Unmarshal(m, b) @@ -1123,7 +1123,7 @@ func (m *DeleteFriendResp) Reset() { *m = DeleteFriendResp{} } func (m *DeleteFriendResp) String() string { return proto.CompactTextString(m) } func (*DeleteFriendResp) ProtoMessage() {} func (*DeleteFriendResp) Descriptor() ([]byte, []int) { - return fileDescriptor_friend_74665a4d507faa8c, []int{24} + return fileDescriptor_friend_33f7e79cb4454131, []int{24} } func (m *DeleteFriendResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_DeleteFriendResp.Unmarshal(m, b) @@ -1164,7 +1164,7 @@ func (m *AddFriendResponseReq) Reset() { *m = AddFriendResponseReq{} } func (m *AddFriendResponseReq) String() string { return proto.CompactTextString(m) } func (*AddFriendResponseReq) ProtoMessage() {} func (*AddFriendResponseReq) Descriptor() ([]byte, []int) { - return fileDescriptor_friend_74665a4d507faa8c, []int{25} + return fileDescriptor_friend_33f7e79cb4454131, []int{25} } func (m *AddFriendResponseReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_AddFriendResponseReq.Unmarshal(m, b) @@ -1216,7 +1216,7 @@ func (m *AddFriendResponseResp) Reset() { *m = AddFriendResponseResp{} } func (m *AddFriendResponseResp) String() string { return proto.CompactTextString(m) } func (*AddFriendResponseResp) ProtoMessage() {} func (*AddFriendResponseResp) Descriptor() ([]byte, []int) { - return fileDescriptor_friend_74665a4d507faa8c, []int{26} + return fileDescriptor_friend_33f7e79cb4454131, []int{26} } func (m *AddFriendResponseResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_AddFriendResponseResp.Unmarshal(m, b) @@ -1255,7 +1255,7 @@ func (m *SetFriendRemarkReq) Reset() { *m = SetFriendRemarkReq{} } func (m *SetFriendRemarkReq) String() string { return proto.CompactTextString(m) } func (*SetFriendRemarkReq) ProtoMessage() {} func (*SetFriendRemarkReq) Descriptor() ([]byte, []int) { - return fileDescriptor_friend_74665a4d507faa8c, []int{27} + return fileDescriptor_friend_33f7e79cb4454131, []int{27} } func (m *SetFriendRemarkReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SetFriendRemarkReq.Unmarshal(m, b) @@ -1300,7 +1300,7 @@ func (m *SetFriendRemarkResp) Reset() { *m = SetFriendRemarkResp{} } func (m *SetFriendRemarkResp) String() string { return proto.CompactTextString(m) } func (*SetFriendRemarkResp) ProtoMessage() {} func (*SetFriendRemarkResp) Descriptor() ([]byte, []int) { - return fileDescriptor_friend_74665a4d507faa8c, []int{28} + return fileDescriptor_friend_33f7e79cb4454131, []int{28} } func (m *SetFriendRemarkResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SetFriendRemarkResp.Unmarshal(m, b) @@ -1338,7 +1338,7 @@ func (m *GetSelfApplyListReq) Reset() { *m = GetSelfApplyListReq{} } func (m *GetSelfApplyListReq) String() string { return proto.CompactTextString(m) } func (*GetSelfApplyListReq) ProtoMessage() {} func (*GetSelfApplyListReq) Descriptor() ([]byte, []int) { - return fileDescriptor_friend_74665a4d507faa8c, []int{29} + return fileDescriptor_friend_33f7e79cb4454131, []int{29} } func (m *GetSelfApplyListReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetSelfApplyListReq.Unmarshal(m, b) @@ -1378,7 +1378,7 @@ func (m *GetSelfApplyListResp) Reset() { *m = GetSelfApplyListResp{} } func (m *GetSelfApplyListResp) String() string { return proto.CompactTextString(m) } func (*GetSelfApplyListResp) ProtoMessage() {} func (*GetSelfApplyListResp) Descriptor() ([]byte, []int) { - return fileDescriptor_friend_74665a4d507faa8c, []int{30} + return fileDescriptor_friend_33f7e79cb4454131, []int{30} } func (m *GetSelfApplyListResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetSelfApplyListResp.Unmarshal(m, b) @@ -1923,68 +1923,68 @@ var _Friend_serviceDesc = grpc.ServiceDesc{ Metadata: "friend/friend.proto", } -func init() { proto.RegisterFile("friend/friend.proto", fileDescriptor_friend_74665a4d507faa8c) } - -var fileDescriptor_friend_74665a4d507faa8c = []byte{ - // 945 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x57, 0xcf, 0x8f, 0xdb, 0x44, - 0x14, 0x96, 0x9b, 0xdd, 0x34, 0x79, 0x49, 0x9b, 0x64, 0x92, 0x6d, 0x83, 0x77, 0x5b, 0x05, 0x1f, - 0x50, 0xc4, 0x21, 0x91, 0x82, 0x2a, 0xb1, 0x14, 0x5a, 0xd2, 0xcd, 0x66, 0x31, 0xb0, 0x6c, 0x35, - 0x5b, 0x2e, 0x08, 0x69, 0xe5, 0xd6, 0x93, 0x60, 0xc5, 0xb1, 0xa7, 0x1e, 0x2f, 0x15, 0x57, 0x0e, - 0x88, 0x1b, 0x12, 0xe2, 0xc6, 0x81, 0x7f, 0x15, 0x79, 0xc6, 0x8e, 0x67, 0x6c, 0x6f, 0x85, 0x5d, - 0xa4, 0x9e, 0x92, 0x37, 0xef, 0x87, 0xdf, 0xfb, 0xde, 0x9b, 0xf7, 0xd9, 0xd0, 0x5f, 0x05, 0x0e, - 0xf1, 0xec, 0xa9, 0xf8, 0x99, 0xd0, 0xc0, 0x0f, 0x7d, 0x54, 0x17, 0x92, 0xfe, 0xe1, 0x05, 0x25, - 0xde, 0x95, 0x79, 0x3e, 0xa5, 0x9b, 0xf5, 0x94, 0xab, 0xa6, 0xcc, 0xde, 0x5c, 0xbd, 0x61, 0xd3, - 0x37, 0x4c, 0x98, 0x1a, 0x4f, 0x00, 0x4e, 0xfc, 0xed, 0xd6, 0xf7, 0x30, 0x61, 0x14, 0x0d, 0xe1, - 0x36, 0x09, 0x82, 0x13, 0xdf, 0x26, 0x43, 0x6d, 0xa4, 0x8d, 0xf7, 0x71, 0x22, 0xa2, 0x7b, 0x50, - 0x27, 0x41, 0x70, 0xce, 0xd6, 0xc3, 0x5b, 0x23, 0x6d, 0xdc, 0xc4, 0xb1, 0x64, 0xfc, 0xaa, 0x41, - 0x3d, 0x0a, 0x60, 0x2e, 0x90, 0x0e, 0x8d, 0x0b, 0xfa, 0x3d, 0x23, 0x81, 0xb9, 0xe0, 0xde, 0x4d, - 0xbc, 0x93, 0xd1, 0x08, 0x5a, 0x17, 0x94, 0x04, 0x56, 0xe8, 0xf8, 0x9e, 0xb9, 0x88, 0x63, 0xc8, - 0x47, 0x91, 0xf7, 0x0b, 0x3f, 0xf6, 0xde, 0x13, 0xde, 0x89, 0x8c, 0x1e, 0x02, 0x2c, 0x03, 0x7f, - 0x1b, 0x6b, 0xf7, 0xb9, 0x56, 0x3a, 0x31, 0x1e, 0x43, 0xef, 0x8c, 0x84, 0x4b, 0x5e, 0x34, 0x33, - 0xbd, 0x95, 0x8f, 0xc9, 0x6b, 0xf4, 0x51, 0x92, 0x18, 0x4f, 0xa6, 0x35, 0xbb, 0x3b, 0x89, 0x31, - 0x12, 0xa7, 0x38, 0xd6, 0x1a, 0xbf, 0x69, 0x92, 0xb7, 0x70, 0x16, 0x48, 0x9c, 0xaa, 0x48, 0x9c, - 0xa6, 0x48, 0x9c, 0x2a, 0x48, 0x08, 0x09, 0x3d, 0x85, 0xbb, 0x69, 0x8c, 0x6f, 0x1d, 0x16, 0x0e, - 0x6b, 0xa3, 0xda, 0xb8, 0x35, 0xbb, 0x3f, 0xf1, 0xa3, 0x2e, 0x38, 0xdb, 0x2b, 0x66, 0x6f, 0x26, - 0xd2, 0x63, 0x32, 0xe6, 0xc6, 0x77, 0xd0, 0x9e, 0xdb, 0xb6, 0x38, 0x2c, 0x51, 0x40, 0x94, 0x10, - 0x26, 0xaf, 0xa5, 0x84, 0x84, 0x64, 0x9c, 0xc0, 0x1d, 0x29, 0x1e, 0xa3, 0x68, 0x26, 0xf7, 0x3a, - 0x0e, 0x8a, 0xe4, 0xa0, 0x42, 0x83, 0x25, 0x2b, 0xe3, 0x6f, 0x0d, 0x3a, 0xe6, 0x96, 0xfa, 0x41, - 0x98, 0x26, 0xf6, 0x31, 0x74, 0x85, 0x20, 0xe0, 0xe7, 0xb5, 0x6a, 0xa3, 0xda, 0xb8, 0x89, 0x73, - 0xe7, 0xff, 0xa1, 0xf1, 0x6a, 0x73, 0x6b, 0xd9, 0xe6, 0x2a, 0x63, 0xb5, 0xa7, 0x8e, 0x95, 0xf1, - 0x04, 0xda, 0xe2, 0x1f, 0x26, 0xec, 0xda, 0x0d, 0x23, 0x28, 0x94, 0x01, 0x8c, 0x25, 0x01, 0x51, - 0x64, 0xc1, 0x13, 0xd8, 0xc7, 0xb1, 0x64, 0xfc, 0xae, 0x41, 0x57, 0xad, 0xae, 0x1a, 0x4c, 0xe8, - 0x4b, 0xe8, 0xca, 0x89, 0x70, 0x48, 0x6e, 0xf1, 0xf6, 0x0f, 0x12, 0x4f, 0x59, 0x8f, 0x73, 0xd6, - 0xc6, 0x53, 0x38, 0xd8, 0x4d, 0xe1, 0x9c, 0x52, 0xf7, 0x97, 0xe8, 0xb4, 0xcc, 0x1c, 0xff, 0xa5, - 0xc1, 0xbd, 0xa2, 0x08, 0x95, 0x86, 0xf9, 0x2b, 0xe8, 0xed, 0xfa, 0x7d, 0x4d, 0x58, 0x28, 0xcd, - 0xb3, 0x5e, 0x30, 0xcf, 0xb1, 0x15, 0xce, 0x3b, 0x19, 0x9f, 0x41, 0x77, 0x97, 0x55, 0xd9, 0x92, - 0x94, 0xab, 0xf9, 0x0e, 0xd5, 0xbc, 0xf3, 0xd5, 0x3c, 0x86, 0xce, 0xdc, 0xb6, 0x9f, 0xb9, 0xd6, - 0xab, 0x8d, 0x5b, 0xb2, 0x86, 0x25, 0x74, 0x55, 0xd7, 0x8a, 0x17, 0xf1, 0x73, 0x40, 0x98, 0x6c, - 0xfd, 0x9f, 0x49, 0xa5, 0x2c, 0x4c, 0xe8, 0xe7, 0xbc, 0x2b, 0x26, 0x72, 0x0c, 0x9d, 0x33, 0x12, - 0x56, 0xca, 0xe2, 0x0f, 0x8d, 0x0f, 0x83, 0x9a, 0x43, 0xf9, 0x76, 0x9a, 0xd0, 0xe3, 0x21, 0xf8, - 0x1d, 0x52, 0x3b, 0x7a, 0xa8, 0x74, 0xf4, 0xf9, 0xf5, 0x4b, 0xd7, 0x79, 0x95, 0x98, 0xe1, 0xbc, - 0x97, 0xf1, 0x08, 0x5a, 0x26, 0x2b, 0xbd, 0x72, 0x8d, 0x1f, 0xa1, 0x9d, 0xba, 0x55, 0xaa, 0x41, - 0x87, 0x46, 0xe4, 0xe9, 0x7b, 0x8c, 0xf0, 0x9d, 0xd7, 0xc0, 0x3b, 0x39, 0xba, 0x32, 0x26, 0x33, - 0x3d, 0x9e, 0x6d, 0xd9, 0x2b, 0x63, 0x41, 0x2f, 0xe3, 0xfb, 0xbf, 0xa7, 0x77, 0x0c, 0x9d, 0x05, - 0x71, 0x49, 0x48, 0xca, 0xe3, 0xb6, 0x84, 0xae, 0xea, 0x5a, 0x71, 0x06, 0x29, 0x0c, 0x14, 0x6a, - 0x8b, 0xf2, 0x2a, 0x43, 0x99, 0x08, 0xf6, 0x56, 0xae, 0xb5, 0x8e, 0xd9, 0x80, 0xff, 0x47, 0x47, - 0xd0, 0xfc, 0xc9, 0xf2, 0x6c, 0x97, 0x44, 0x68, 0x08, 0x1a, 0x4a, 0x0f, 0x8c, 0x6f, 0xe0, 0xa0, - 0xe0, 0x89, 0x15, 0xd3, 0x7f, 0x01, 0xe8, 0x92, 0xec, 0x28, 0x67, 0x6b, 0x05, 0x9b, 0xd2, 0x7c, - 0x1f, 0x39, 0xa5, 0x7c, 0x1f, 0x49, 0xd1, 0x1d, 0xcf, 0x45, 0xad, 0x98, 0xe0, 0x17, 0xd0, 0x3f, - 0x23, 0xe1, 0x25, 0x71, 0x57, 0x95, 0xa8, 0xe8, 0x4f, 0x0d, 0x06, 0x79, 0xff, 0xf7, 0x4b, 0x44, - 0xb3, 0x7f, 0x6e, 0x43, 0xfc, 0x5e, 0x8c, 0x3e, 0x85, 0xa6, 0x95, 0x34, 0x13, 0xed, 0x08, 0x5a, - 0x7e, 0xf9, 0xd2, 0x0f, 0x0a, 0x4e, 0x19, 0x45, 0x97, 0x80, 0xd6, 0x39, 0x8e, 0x45, 0x0f, 0x12, - 0xe3, 0x42, 0x06, 0xd7, 0x1f, 0xbe, 0x4d, 0xcd, 0x28, 0x3a, 0x87, 0xee, 0x3a, 0x83, 0x16, 0x3a, - 0x94, 0x7c, 0xb2, 0x7d, 0xd0, 0x8f, 0x6e, 0x56, 0x32, 0x8a, 0x16, 0x70, 0x67, 0x2d, 0x93, 0x26, - 0x1a, 0xe6, 0x9e, 0x9f, 0x04, 0xfa, 0xe0, 0x06, 0x0d, 0xa3, 0x68, 0x0e, 0x6d, 0x4b, 0xe2, 0x2d, - 0x74, 0x5f, 0x02, 0x44, 0x5e, 0xfe, 0xfa, 0xb0, 0x58, 0xc1, 0x28, 0xfa, 0x1a, 0x3a, 0x81, 0x4a, - 0x3a, 0x48, 0x4f, 0x8c, 0xf3, 0x5c, 0xa6, 0x1f, 0xde, 0xa8, 0x63, 0x14, 0x3d, 0x82, 0x86, 0x13, - 0x6f, 0x5c, 0xd4, 0x4f, 0x0c, 0xa5, 0xd5, 0xad, 0x0f, 0xf2, 0x87, 0x02, 0x0b, 0x47, 0x5e, 0x87, - 0x29, 0x16, 0xd9, 0x0d, 0x9b, 0x62, 0x91, 0xdf, 0x9f, 0x73, 0x68, 0xaf, 0x25, 0xda, 0x4a, 0xb1, - 0xc8, 0x10, 0xa1, 0x3e, 0x2c, 0x56, 0x88, 0x10, 0xb6, 0xb4, 0xf9, 0xd2, 0x10, 0x99, 0x55, 0x9a, - 0x86, 0xc8, 0x2d, 0xca, 0xe7, 0xd0, 0xb3, 0xb2, 0x2b, 0x08, 0x1d, 0x15, 0xce, 0x69, 0xbc, 0x0f, - 0xf5, 0x07, 0x6f, 0xd1, 0x8a, 0x06, 0x31, 0x75, 0x63, 0xa4, 0x0d, 0xca, 0x2f, 0xa8, 0xb4, 0x41, - 0x45, 0x6b, 0x66, 0x0e, 0x6d, 0x47, 0x7a, 0x93, 0x4e, 0x0b, 0xcc, 0x7c, 0x3d, 0xa4, 0x05, 0x66, - 0x5f, 0xbc, 0x9f, 0xf5, 0x7e, 0xe8, 0x4c, 0xe2, 0x0f, 0xd9, 0xc7, 0xe2, 0xe7, 0x65, 0x9d, 0x7f, - 0xa5, 0x7e, 0xf2, 0x6f, 0x00, 0x00, 0x00, 0xff, 0xff, 0xdf, 0x16, 0xf8, 0xb5, 0xe7, 0x0e, 0x00, - 0x00, +func init() { proto.RegisterFile("friend/friend.proto", fileDescriptor_friend_33f7e79cb4454131) } + +var fileDescriptor_friend_33f7e79cb4454131 = []byte{ + // 949 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x57, 0xcd, 0x8f, 0xdb, 0x44, + 0x14, 0x97, 0x9b, 0xdd, 0x34, 0x79, 0x49, 0x9b, 0x64, 0x92, 0x2d, 0xc1, 0xdd, 0xad, 0x52, 0x1f, + 0x50, 0xc4, 0x21, 0x91, 0x82, 0x2a, 0xb1, 0x14, 0x0a, 0xe9, 0x26, 0x59, 0x19, 0xd8, 0xa6, 0x9a, + 0x2d, 0x17, 0x84, 0x14, 0xb9, 0xf5, 0x24, 0x58, 0x71, 0xec, 0xa9, 0xc7, 0xdb, 0x8a, 0x2b, 0x27, + 0x0e, 0x5c, 0x91, 0x10, 0x1c, 0xf8, 0x57, 0x91, 0x67, 0xec, 0x78, 0xfc, 0x91, 0x0a, 0x9b, 0x1e, + 0x7a, 0xb2, 0xdf, 0xc7, 0xef, 0xf9, 0x7d, 0xcd, 0x7b, 0x63, 0xe8, 0xae, 0x3d, 0x8b, 0x38, 0xe6, + 0x58, 0x3c, 0x46, 0xd4, 0x73, 0x7d, 0x17, 0x55, 0x05, 0xa5, 0x3e, 0x5c, 0x52, 0xe2, 0xac, 0xf4, + 0xab, 0x31, 0xdd, 0x6e, 0xc6, 0x5c, 0x34, 0x66, 0xe6, 0x76, 0xf5, 0x96, 0x8d, 0xdf, 0x32, 0xa1, + 0xaa, 0x3d, 0x01, 0xb8, 0x70, 0x77, 0x3b, 0xd7, 0xc1, 0x84, 0x51, 0xd4, 0x87, 0xdb, 0xc4, 0xf3, + 0x2e, 0x5c, 0x93, 0xf4, 0x95, 0x81, 0x32, 0x3c, 0xc6, 0x11, 0x89, 0xee, 0x41, 0x95, 0x78, 0xde, + 0x15, 0xdb, 0xf4, 0x6f, 0x0d, 0x94, 0x61, 0x1d, 0x87, 0x94, 0xf6, 0xab, 0x02, 0xd5, 0xc0, 0x80, + 0x3e, 0x43, 0x2a, 0xd4, 0x96, 0xf4, 0x07, 0x46, 0x3c, 0x7d, 0xc6, 0xd1, 0x75, 0xbc, 0xa7, 0xd1, + 0x00, 0x1a, 0x4b, 0x4a, 0x3c, 0xc3, 0xb7, 0x5c, 0x47, 0x9f, 0x85, 0x36, 0x64, 0x56, 0x80, 0x7e, + 0xe1, 0x86, 0xe8, 0x23, 0x81, 0x8e, 0x68, 0xf4, 0x00, 0x60, 0xe1, 0xb9, 0xbb, 0x50, 0x7a, 0xcc, + 0xa5, 0x12, 0x47, 0x7b, 0x0c, 0x9d, 0x4b, 0xe2, 0x2f, 0x78, 0xd0, 0x4c, 0x77, 0xd6, 0x2e, 0x26, + 0xaf, 0xd1, 0x27, 0x91, 0x63, 0xdc, 0x99, 0xc6, 0xe4, 0xee, 0x28, 0xcc, 0x91, 0xe0, 0xe2, 0x50, + 0xaa, 0xfd, 0xae, 0x48, 0x68, 0x01, 0x16, 0x99, 0x98, 0x27, 0x33, 0x31, 0x8f, 0x33, 0x31, 0x4f, + 0x64, 0x42, 0x50, 0x68, 0x0e, 0x77, 0x63, 0x1b, 0xdf, 0x5b, 0xcc, 0xef, 0x57, 0x06, 0x95, 0x61, + 0x63, 0x72, 0x36, 0x62, 0xc4, 0x7b, 0x43, 0xbc, 0x95, 0x41, 0xad, 0x15, 0x35, 0x3c, 0x63, 0xc7, + 0x46, 0xd2, 0xc7, 0x52, 0x20, 0xed, 0x19, 0x34, 0xa7, 0xa6, 0x29, 0x98, 0x05, 0xc2, 0x08, 0xdc, + 0xc2, 0xe4, 0xb5, 0xe4, 0x96, 0xa0, 0xb4, 0x0b, 0xb8, 0x23, 0xd9, 0x63, 0x14, 0x4d, 0xe4, 0x8a, + 0x87, 0x46, 0x91, 0x6c, 0x54, 0x48, 0xb0, 0xa4, 0xa5, 0xfd, 0xad, 0x40, 0x4b, 0xdf, 0x51, 0xd7, + 0xf3, 0x63, 0xc7, 0x3e, 0x85, 0xb6, 0x20, 0x44, 0x11, 0x78, 0xc4, 0xca, 0xa0, 0x32, 0xac, 0xe3, + 0x0c, 0xff, 0x3f, 0x94, 0x3f, 0x59, 0xe2, 0x4a, 0xba, 0xc4, 0x89, 0xe6, 0x3a, 0x4a, 0x36, 0x97, + 0xf6, 0x04, 0x9a, 0xe2, 0x0d, 0x13, 0x76, 0x63, 0xfb, 0x41, 0x2a, 0x12, 0x6d, 0x18, 0x52, 0x22, + 0x45, 0x81, 0x06, 0x77, 0xe0, 0x18, 0x87, 0x94, 0xf6, 0x9b, 0x02, 0xed, 0x64, 0x74, 0xe5, 0xd2, + 0x84, 0xbe, 0x81, 0xb6, 0xec, 0x08, 0x4f, 0xc9, 0x2d, 0xde, 0x04, 0xbd, 0x08, 0x29, 0xcb, 0x71, + 0x46, 0x5b, 0xfb, 0x1a, 0x4e, 0xf6, 0xbd, 0x38, 0xa5, 0xd4, 0xfe, 0x25, 0xe0, 0x16, 0xe9, 0xe6, + 0xbf, 0x14, 0xb8, 0x97, 0x67, 0xa1, 0x54, 0x4b, 0x3f, 0x83, 0xce, 0xbe, 0xde, 0x37, 0x84, 0xf9, + 0x52, 0x57, 0x0f, 0x0e, 0x76, 0x75, 0xa8, 0x8b, 0xb3, 0x50, 0xed, 0x0b, 0x68, 0xef, 0x7d, 0x2b, + 0x1a, 0x58, 0xe2, 0x98, 0xfe, 0x8f, 0x98, 0xde, 0xd3, 0x31, 0x3d, 0x87, 0xd6, 0xd4, 0x34, 0x9f, + 0xda, 0xc6, 0xab, 0xad, 0x5d, 0x30, 0x92, 0x05, 0xb4, 0x93, 0xd0, 0x92, 0x87, 0xf2, 0x4b, 0x40, + 0x98, 0xec, 0xdc, 0x37, 0xa4, 0x94, 0x17, 0x3a, 0x74, 0x33, 0xe8, 0x92, 0x8e, 0x9c, 0x43, 0xeb, + 0x92, 0xf8, 0xa5, 0xbc, 0xf8, 0x43, 0xe1, 0x2d, 0x91, 0xf4, 0xa1, 0x78, 0x51, 0x97, 0xd0, 0xe1, + 0x26, 0xf8, 0x79, 0x4a, 0xd6, 0xf5, 0x61, 0x4e, 0x5d, 0x9f, 0xdf, 0xbc, 0xb4, 0xad, 0x57, 0x91, + 0x32, 0xce, 0x62, 0xb5, 0x47, 0xd0, 0xd0, 0x59, 0xe1, 0x21, 0xac, 0xfd, 0x04, 0xcd, 0x18, 0x56, + 0x2a, 0x12, 0x15, 0x6a, 0x01, 0xd2, 0x75, 0x18, 0xe1, 0x53, 0xb0, 0x86, 0xf7, 0x74, 0x70, 0x7c, + 0x74, 0xa6, 0x3b, 0xdc, 0xdb, 0xa2, 0xc7, 0xc7, 0x80, 0x4e, 0x0a, 0xfb, 0xde, 0xdd, 0x3b, 0x87, + 0xd6, 0x8c, 0xd8, 0xc4, 0x27, 0xc5, 0xf3, 0xb6, 0x80, 0x76, 0x12, 0x5a, 0xb2, 0x13, 0x29, 0xf4, + 0x12, 0xcb, 0x2e, 0xf0, 0xab, 0xc8, 0x12, 0x45, 0x70, 0xb4, 0xb6, 0x8d, 0x4d, 0xb8, 0x1f, 0xf8, + 0x3b, 0x3a, 0x85, 0xfa, 0xcf, 0x86, 0x63, 0xda, 0x24, 0xc8, 0x86, 0x58, 0x4c, 0x31, 0x43, 0xfb, + 0x0e, 0x4e, 0x72, 0xbe, 0x58, 0xd2, 0xfd, 0x17, 0x80, 0xae, 0xc9, 0x7e, 0x09, 0xed, 0x0c, 0x6f, + 0x5b, 0xf8, 0x06, 0x10, 0x80, 0xe2, 0x1b, 0x40, 0x40, 0x05, 0x27, 0x3d, 0x63, 0xb5, 0xa4, 0x83, + 0x5f, 0x41, 0xf7, 0x92, 0xf8, 0xd7, 0xc4, 0x5e, 0x97, 0x5a, 0x4e, 0x7f, 0x2a, 0xd0, 0xcb, 0xe2, + 0x3f, 0x84, 0xd5, 0x34, 0xf9, 0xe7, 0x36, 0x84, 0xb7, 0x66, 0xf4, 0x39, 0xd4, 0x8d, 0xa8, 0xa4, + 0x68, 0xbf, 0xb8, 0xe5, 0x4b, 0x99, 0x7a, 0x92, 0xc3, 0x65, 0x14, 0x5d, 0x03, 0xda, 0x64, 0x76, + 0x2f, 0x3a, 0x8b, 0x94, 0x73, 0x37, 0xbb, 0xfa, 0xe0, 0x5d, 0x62, 0x46, 0xd1, 0x15, 0xb4, 0x37, + 0xa9, 0x9c, 0xa1, 0xfb, 0x12, 0x26, 0x5d, 0x0d, 0xf5, 0xf4, 0xb0, 0x90, 0x51, 0x34, 0x83, 0x3b, + 0x1b, 0x79, 0x8d, 0xa2, 0x7e, 0xe6, 0xfb, 0x91, 0xa1, 0x8f, 0x0f, 0x48, 0x18, 0x45, 0x53, 0x68, + 0x1a, 0xd2, 0x0e, 0x43, 0x1f, 0x49, 0x09, 0x91, 0x17, 0x81, 0xda, 0xcf, 0x17, 0x30, 0x8a, 0xbe, + 0x85, 0x96, 0x97, 0x5c, 0x40, 0x48, 0x8d, 0x94, 0xb3, 0x7b, 0x4d, 0xbd, 0x7f, 0x50, 0xc6, 0x28, + 0x7a, 0x04, 0x35, 0x2b, 0x9c, 0xbb, 0xa8, 0x1b, 0x29, 0x4a, 0x03, 0x5c, 0xed, 0x65, 0x99, 0x22, + 0x17, 0x96, 0x3c, 0x14, 0xe3, 0x5c, 0xa4, 0xe7, 0x6c, 0x9c, 0x8b, 0xec, 0x14, 0x9d, 0x42, 0x73, + 0x23, 0xad, 0xb0, 0x38, 0x17, 0xa9, 0xa5, 0xa8, 0xf6, 0xf3, 0x05, 0xc2, 0x84, 0x29, 0xcd, 0xbf, + 0xd8, 0x44, 0x6a, 0xa0, 0xc6, 0x26, 0x32, 0xe3, 0xf2, 0x39, 0x74, 0x8c, 0xf4, 0x20, 0x42, 0xa7, + 0xb9, 0x7d, 0x1a, 0x4e, 0x45, 0xf5, 0xec, 0x1d, 0x52, 0x51, 0x20, 0x96, 0x9c, 0x1b, 0x71, 0x81, + 0xb2, 0x63, 0x2a, 0x2e, 0x50, 0xde, 0xb0, 0x99, 0x42, 0xd3, 0x92, 0x6e, 0xd8, 0x71, 0x80, 0xa9, + 0xbf, 0x8a, 0x38, 0xc0, 0xf4, 0x85, 0xfc, 0x69, 0xe7, 0xc7, 0xd6, 0x28, 0xfc, 0xcd, 0x7d, 0x2c, + 0x1e, 0x2f, 0xab, 0xfc, 0x1f, 0xf6, 0xb3, 0x7f, 0x03, 0x00, 0x00, 0xff, 0xff, 0x20, 0x88, 0xcd, + 0xd3, 0x05, 0x0f, 0x00, 0x00, } diff --git a/pkg/proto/friend/friend.proto b/pkg/proto/friend/friend.proto index 96a4cb8e4..1baf29c10 100644 --- a/pkg/proto/friend/friend.proto +++ b/pkg/proto/friend/friend.proto @@ -22,7 +22,7 @@ message GetFriendsInfoReq{ message GetFriendInfoResp{ int32 ErrCode = 1; string ErrMsg = 2; - repeated open_im_sdk.FriendInfo FriendInfoList = 3; + repeated server_api_params.FriendInfo FriendInfoList = 3; // int32 IsBlack = 4; } @@ -68,7 +68,7 @@ message GetFriendListReq{ message GetFriendListResp{ int32 ErrCode = 1; string ErrMsg = 2; - repeated open_im_sdk.FriendInfo FriendInfoList = 3; + repeated server_api_params.FriendInfo FriendInfoList = 3; } @@ -93,7 +93,7 @@ message GetBlacklistReq{ message GetBlacklistResp{ int32 ErrCode = 1; string ErrMsg = 2; - repeated open_im_sdk.PublicUserInfo BlackUserInfoList = 3; + repeated server_api_params.PublicUserInfo BlackUserInfoList = 3; } @@ -148,7 +148,7 @@ message GetSelfApplyListReq{ message GetSelfApplyListResp{ int32 ErrCode = 1; string ErrMsg = 2; - repeated open_im_sdk.FriendRequest FriendRequestList = 3; + repeated server_api_params.FriendRequest FriendRequestList = 3; } service friend{ diff --git a/pkg/proto/sdk_ws/ws.pb.go b/pkg/proto/sdk_ws/ws.pb.go index 31bcf268d..9ebfd30df 100644 --- a/pkg/proto/sdk_ws/ws.pb.go +++ b/pkg/proto/sdk_ws/ws.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // source: sdk_ws/ws.proto -package open_im_sdk +package server_api_params import proto "github.com/golang/protobuf/proto" import fmt "fmt" @@ -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_f46b8824c5dbc584, []int{0} + return fileDescriptor_ws_f24e0416269be717, []int{0} } func (m *GroupInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupInfo.Unmarshal(m, b) @@ -164,7 +164,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_f46b8824c5dbc584, []int{1} + return fileDescriptor_ws_f24e0416269be717, []int{1} } func (m *GroupMemberFullInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupMemberFullInfo.Unmarshal(m, b) @@ -269,7 +269,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_f46b8824c5dbc584, []int{2} + return fileDescriptor_ws_f24e0416269be717, []int{2} } func (m *PublicUserInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_PublicUserInfo.Unmarshal(m, b) @@ -344,7 +344,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_f46b8824c5dbc584, []int{3} + return fileDescriptor_ws_f24e0416269be717, []int{3} } func (m *UserInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_UserInfo.Unmarshal(m, b) @@ -451,7 +451,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_f46b8824c5dbc584, []int{4} + return fileDescriptor_ws_f24e0416269be717, []int{4} } func (m *FriendInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FriendInfo.Unmarshal(m, b) @@ -536,7 +536,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_f46b8824c5dbc584, []int{5} + return fileDescriptor_ws_f24e0416269be717, []int{5} } func (m *BlackInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_BlackInfo.Unmarshal(m, b) @@ -617,7 +617,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_f46b8824c5dbc584, []int{6} + return fileDescriptor_ws_f24e0416269be717, []int{6} } func (m *GroupRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupRequest.Unmarshal(m, b) @@ -702,14 +702,20 @@ func (m *GroupRequest) GetEx() string { type FriendRequest struct { FromUserID string `protobuf:"bytes,1,opt,name=fromUserID" json:"fromUserID,omitempty"` - ToUserID string `protobuf:"bytes,2,opt,name=toUserID" json:"toUserID,omitempty"` - HandleResult int32 `protobuf:"varint,3,opt,name=handleResult" json:"handleResult,omitempty"` - ReqMsg string `protobuf:"bytes,4,opt,name=reqMsg" json:"reqMsg,omitempty"` - CreateTime uint32 `protobuf:"varint,5,opt,name=createTime" json:"createTime,omitempty"` - HandlerUserID string `protobuf:"bytes,6,opt,name=handlerUserID" json:"handlerUserID,omitempty"` - HandleMsg string `protobuf:"bytes,7,opt,name=handleMsg" json:"handleMsg,omitempty"` - HandleTime uint32 `protobuf:"varint,8,opt,name=handleTime" json:"handleTime,omitempty"` - Ex string `protobuf:"bytes,9,opt,name=ex" json:"ex,omitempty"` + FromNickname string `protobuf:"bytes,2,opt,name=fromNickname" json:"fromNickname,omitempty"` + FromFaceURL string `protobuf:"bytes,3,opt,name=fromFaceURL" json:"fromFaceURL,omitempty"` + FromGender string `protobuf:"bytes,4,opt,name=fromGender" json:"fromGender,omitempty"` + ToUserID string `protobuf:"bytes,5,opt,name=toUserID" json:"toUserID,omitempty"` + ToNickname string `protobuf:"bytes,6,opt,name=toNickname" json:"toNickname,omitempty"` + ToFaceURL string `protobuf:"bytes,7,opt,name=toFaceURL" json:"toFaceURL,omitempty"` + ToGender string `protobuf:"bytes,8,opt,name=toGender" json:"toGender,omitempty"` + HandleResult int32 `protobuf:"varint,9,opt,name=handleResult" json:"handleResult,omitempty"` + ReqMsg string `protobuf:"bytes,10,opt,name=reqMsg" json:"reqMsg,omitempty"` + CreateTime uint32 `protobuf:"varint,11,opt,name=createTime" json:"createTime,omitempty"` + HandlerUserID string `protobuf:"bytes,12,opt,name=handlerUserID" json:"handlerUserID,omitempty"` + HandleMsg string `protobuf:"bytes,13,opt,name=handleMsg" json:"handleMsg,omitempty"` + HandleTime uint32 `protobuf:"varint,14,opt,name=handleTime" json:"handleTime,omitempty"` + Ex string `protobuf:"bytes,15,opt,name=ex" json:"ex,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -719,7 +725,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_f46b8824c5dbc584, []int{7} + return fileDescriptor_ws_f24e0416269be717, []int{7} } func (m *FriendRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FriendRequest.Unmarshal(m, b) @@ -746,6 +752,27 @@ func (m *FriendRequest) GetFromUserID() string { return "" } +func (m *FriendRequest) GetFromNickname() string { + if m != nil { + return m.FromNickname + } + return "" +} + +func (m *FriendRequest) GetFromFaceURL() string { + if m != nil { + return m.FromFaceURL + } + return "" +} + +func (m *FriendRequest) GetFromGender() string { + if m != nil { + return m.FromGender + } + return "" +} + func (m *FriendRequest) GetToUserID() string { if m != nil { return m.ToUserID @@ -753,6 +780,27 @@ func (m *FriendRequest) GetToUserID() string { return "" } +func (m *FriendRequest) GetToNickname() string { + if m != nil { + return m.ToNickname + } + return "" +} + +func (m *FriendRequest) GetToFaceURL() string { + if m != nil { + return m.ToFaceURL + } + return "" +} + +func (m *FriendRequest) GetToGender() string { + if m != nil { + return m.ToGender + } + return "" +} + func (m *FriendRequest) GetHandleResult() int32 { if m != nil { return m.HandleResult @@ -818,7 +866,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_f46b8824c5dbc584, []int{8} + return fileDescriptor_ws_f24e0416269be717, []int{8} } func (m *PullMessageBySeqListResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_PullMessageBySeqListResp.Unmarshal(m, b) @@ -893,7 +941,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_f46b8824c5dbc584, []int{9} + return fileDescriptor_ws_f24e0416269be717, []int{9} } func (m *PullMessageBySeqListReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_PullMessageBySeqListReq.Unmarshal(m, b) @@ -948,7 +996,7 @@ func (m *PullMessageReq) Reset() { *m = PullMessageReq{} } func (m *PullMessageReq) String() string { return proto.CompactTextString(m) } func (*PullMessageReq) ProtoMessage() {} func (*PullMessageReq) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_f46b8824c5dbc584, []int{10} + return fileDescriptor_ws_f24e0416269be717, []int{10} } func (m *PullMessageReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_PullMessageReq.Unmarshal(m, b) @@ -1012,7 +1060,7 @@ func (m *PullMessageResp) Reset() { *m = PullMessageResp{} } func (m *PullMessageResp) String() string { return proto.CompactTextString(m) } func (*PullMessageResp) ProtoMessage() {} func (*PullMessageResp) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_f46b8824c5dbc584, []int{11} + return fileDescriptor_ws_f24e0416269be717, []int{11} } func (m *PullMessageResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_PullMessageResp.Unmarshal(m, b) @@ -1084,7 +1132,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_f46b8824c5dbc584, []int{12} + return fileDescriptor_ws_f24e0416269be717, []int{12} } func (m *GetMaxAndMinSeqReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetMaxAndMinSeqReq.Unmarshal(m, b) @@ -1116,7 +1164,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_f46b8824c5dbc584, []int{13} + return fileDescriptor_ws_f24e0416269be717, []int{13} } func (m *GetMaxAndMinSeqResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetMaxAndMinSeqResp.Unmarshal(m, b) @@ -1164,7 +1212,7 @@ func (m *GatherFormat) Reset() { *m = GatherFormat{} } func (m *GatherFormat) String() string { return proto.CompactTextString(m) } func (*GatherFormat) ProtoMessage() {} func (*GatherFormat) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_f46b8824c5dbc584, []int{14} + return fileDescriptor_ws_f24e0416269be717, []int{14} } func (m *GatherFormat) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GatherFormat.Unmarshal(m, b) @@ -1211,7 +1259,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_f46b8824c5dbc584, []int{15} + return fileDescriptor_ws_f24e0416269be717, []int{15} } func (m *UserSendMsgResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_UserSendMsgResp.Unmarshal(m, b) @@ -1280,7 +1328,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_f46b8824c5dbc584, []int{16} + return fileDescriptor_ws_f24e0416269be717, []int{16} } func (m *MsgData) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MsgData.Unmarshal(m, b) @@ -1441,7 +1489,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_f46b8824c5dbc584, []int{17} + return fileDescriptor_ws_f24e0416269be717, []int{17} } func (m *OfflinePushInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_OfflinePushInfo.Unmarshal(m, b) @@ -1508,7 +1556,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_f46b8824c5dbc584, []int{18} + return fileDescriptor_ws_f24e0416269be717, []int{18} } func (m *TipsComm) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_TipsComm.Unmarshal(m, b) @@ -1557,7 +1605,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_f46b8824c5dbc584, []int{19} + return fileDescriptor_ws_f24e0416269be717, []int{19} } func (m *MemberEnterTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MemberEnterTips.Unmarshal(m, b) @@ -1612,7 +1660,7 @@ func (m *MemberLeaveTips) Reset() { *m = MemberLeaveTips{} } func (m *MemberLeaveTips) String() string { return proto.CompactTextString(m) } func (*MemberLeaveTips) ProtoMessage() {} func (*MemberLeaveTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_f46b8824c5dbc584, []int{20} + return fileDescriptor_ws_f24e0416269be717, []int{20} } func (m *MemberLeaveTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MemberLeaveTips.Unmarshal(m, b) @@ -1667,7 +1715,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_f46b8824c5dbc584, []int{21} + return fileDescriptor_ws_f24e0416269be717, []int{21} } func (m *MemberInvitedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MemberInvitedTips.Unmarshal(m, b) @@ -1729,7 +1777,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_f46b8824c5dbc584, []int{22} + return fileDescriptor_ws_f24e0416269be717, []int{22} } func (m *MemberKickedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MemberKickedTips.Unmarshal(m, b) @@ -1792,7 +1840,7 @@ func (m *MemberInfoChangedTips) Reset() { *m = MemberInfoChangedTips{} } func (m *MemberInfoChangedTips) String() string { return proto.CompactTextString(m) } func (*MemberInfoChangedTips) ProtoMessage() {} func (*MemberInfoChangedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_f46b8824c5dbc584, []int{23} + return fileDescriptor_ws_f24e0416269be717, []int{23} } func (m *MemberInfoChangedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MemberInfoChangedTips.Unmarshal(m, b) @@ -1861,7 +1909,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_f46b8824c5dbc584, []int{24} + return fileDescriptor_ws_f24e0416269be717, []int{24} } func (m *GroupCreatedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupCreatedTips.Unmarshal(m, b) @@ -1922,7 +1970,7 @@ func (m *GroupInfoChangedTips) Reset() { *m = GroupInfoChangedTips{} } func (m *GroupInfoChangedTips) String() string { return proto.CompactTextString(m) } func (*GroupInfoChangedTips) ProtoMessage() {} func (*GroupInfoChangedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_f46b8824c5dbc584, []int{25} + return fileDescriptor_ws_f24e0416269be717, []int{25} } func (m *GroupInfoChangedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupInfoChangedTips.Unmarshal(m, b) @@ -1976,7 +2024,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_f46b8824c5dbc584, []int{26} + return fileDescriptor_ws_f24e0416269be717, []int{26} } func (m *JoinGroupApplicationTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_JoinGroupApplicationTips.Unmarshal(m, b) @@ -2031,7 +2079,7 @@ func (m *ApplicationProcessedTips) Reset() { *m = ApplicationProcessedTi func (m *ApplicationProcessedTips) String() string { return proto.CompactTextString(m) } func (*ApplicationProcessedTips) ProtoMessage() {} func (*ApplicationProcessedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_f46b8824c5dbc584, []int{27} + return fileDescriptor_ws_f24e0416269be717, []int{27} } func (m *ApplicationProcessedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ApplicationProcessedTips.Unmarshal(m, b) @@ -2092,7 +2140,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_f46b8824c5dbc584, []int{28} + return fileDescriptor_ws_f24e0416269be717, []int{28} } func (m *FriendApplication) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FriendApplication.Unmarshal(m, b) @@ -2145,7 +2193,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_f46b8824c5dbc584, []int{29} + return fileDescriptor_ws_f24e0416269be717, []int{29} } func (m *FromToUserID) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FromToUserID.Unmarshal(m, b) @@ -2191,7 +2239,7 @@ func (m *FriendApplicationAddedTips) Reset() { *m = FriendApplicationAdd func (m *FriendApplicationAddedTips) String() string { return proto.CompactTextString(m) } func (*FriendApplicationAddedTips) ProtoMessage() {} func (*FriendApplicationAddedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_f46b8824c5dbc584, []int{30} + return fileDescriptor_ws_f24e0416269be717, []int{30} } func (m *FriendApplicationAddedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FriendApplicationAddedTips.Unmarshal(m, b) @@ -2230,7 +2278,7 @@ func (m *FriendApplicationProcessedTips) Reset() { *m = FriendApplicatio func (m *FriendApplicationProcessedTips) String() string { return proto.CompactTextString(m) } func (*FriendApplicationProcessedTips) ProtoMessage() {} func (*FriendApplicationProcessedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_f46b8824c5dbc584, []int{31} + return fileDescriptor_ws_f24e0416269be717, []int{31} } func (m *FriendApplicationProcessedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FriendApplicationProcessedTips.Unmarshal(m, b) @@ -2271,7 +2319,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_f46b8824c5dbc584, []int{32} + return fileDescriptor_ws_f24e0416269be717, []int{32} } func (m *FriendAddedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FriendAddedTips.Unmarshal(m, b) @@ -2324,7 +2372,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_f46b8824c5dbc584, []int{33} + return fileDescriptor_ws_f24e0416269be717, []int{33} } func (m *FriendDeletedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FriendDeletedTips.Unmarshal(m, b) @@ -2362,7 +2410,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_f46b8824c5dbc584, []int{34} + return fileDescriptor_ws_f24e0416269be717, []int{34} } func (m *BlackAddedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_BlackAddedTips.Unmarshal(m, b) @@ -2400,7 +2448,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_f46b8824c5dbc584, []int{35} + return fileDescriptor_ws_f24e0416269be717, []int{35} } func (m *BlackDeletedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_BlackDeletedTips.Unmarshal(m, b) @@ -2438,7 +2486,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_f46b8824c5dbc584, []int{36} + return fileDescriptor_ws_f24e0416269be717, []int{36} } func (m *FriendInfoChangedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FriendInfoChangedTips.Unmarshal(m, b) @@ -2477,7 +2525,7 @@ func (m *SelfInfoUpdatedTips) Reset() { *m = SelfInfoUpdatedTips{} } func (m *SelfInfoUpdatedTips) String() string { return proto.CompactTextString(m) } func (*SelfInfoUpdatedTips) ProtoMessage() {} func (*SelfInfoUpdatedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_f46b8824c5dbc584, []int{37} + return fileDescriptor_ws_f24e0416269be717, []int{37} } func (m *SelfInfoUpdatedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SelfInfoUpdatedTips.Unmarshal(m, b) @@ -2505,169 +2553,174 @@ func (m *SelfInfoUpdatedTips) GetUserID() string { } func init() { - proto.RegisterType((*GroupInfo)(nil), "open_im_sdk.GroupInfo") - proto.RegisterType((*GroupMemberFullInfo)(nil), "open_im_sdk.GroupMemberFullInfo") - proto.RegisterType((*PublicUserInfo)(nil), "open_im_sdk.PublicUserInfo") - proto.RegisterType((*UserInfo)(nil), "open_im_sdk.UserInfo") - proto.RegisterType((*FriendInfo)(nil), "open_im_sdk.FriendInfo") - proto.RegisterType((*BlackInfo)(nil), "open_im_sdk.BlackInfo") - proto.RegisterType((*GroupRequest)(nil), "open_im_sdk.GroupRequest") - proto.RegisterType((*FriendRequest)(nil), "open_im_sdk.FriendRequest") - proto.RegisterType((*PullMessageBySeqListResp)(nil), "open_im_sdk.PullMessageBySeqListResp") - proto.RegisterType((*PullMessageBySeqListReq)(nil), "open_im_sdk.PullMessageBySeqListReq") - proto.RegisterType((*PullMessageReq)(nil), "open_im_sdk.PullMessageReq") - proto.RegisterType((*PullMessageResp)(nil), "open_im_sdk.PullMessageResp") - proto.RegisterType((*GetMaxAndMinSeqReq)(nil), "open_im_sdk.GetMaxAndMinSeqReq") - proto.RegisterType((*GetMaxAndMinSeqResp)(nil), "open_im_sdk.GetMaxAndMinSeqResp") - proto.RegisterType((*GatherFormat)(nil), "open_im_sdk.GatherFormat") - proto.RegisterType((*UserSendMsgResp)(nil), "open_im_sdk.UserSendMsgResp") - proto.RegisterType((*MsgData)(nil), "open_im_sdk.MsgData") - proto.RegisterMapType((map[string]bool)(nil), "open_im_sdk.MsgData.OptionsEntry") - proto.RegisterType((*OfflinePushInfo)(nil), "open_im_sdk.OfflinePushInfo") - proto.RegisterType((*TipsComm)(nil), "open_im_sdk.TipsComm") - proto.RegisterType((*MemberEnterTips)(nil), "open_im_sdk.MemberEnterTips") - proto.RegisterType((*MemberLeaveTips)(nil), "open_im_sdk.MemberLeaveTips") - proto.RegisterType((*MemberInvitedTips)(nil), "open_im_sdk.MemberInvitedTips") - proto.RegisterType((*MemberKickedTips)(nil), "open_im_sdk.MemberKickedTips") - proto.RegisterType((*MemberInfoChangedTips)(nil), "open_im_sdk.MemberInfoChangedTips") - proto.RegisterType((*GroupCreatedTips)(nil), "open_im_sdk.GroupCreatedTips") - proto.RegisterType((*GroupInfoChangedTips)(nil), "open_im_sdk.GroupInfoChangedTips") - proto.RegisterType((*JoinGroupApplicationTips)(nil), "open_im_sdk.JoinGroupApplicationTips") - proto.RegisterType((*ApplicationProcessedTips)(nil), "open_im_sdk.ApplicationProcessedTips") - proto.RegisterType((*FriendApplication)(nil), "open_im_sdk.FriendApplication") - proto.RegisterType((*FromToUserID)(nil), "open_im_sdk.FromToUserID") - proto.RegisterType((*FriendApplicationAddedTips)(nil), "open_im_sdk.FriendApplicationAddedTips") - proto.RegisterType((*FriendApplicationProcessedTips)(nil), "open_im_sdk.FriendApplicationProcessedTips") - proto.RegisterType((*FriendAddedTips)(nil), "open_im_sdk.FriendAddedTips") - proto.RegisterType((*FriendDeletedTips)(nil), "open_im_sdk.FriendDeletedTips") - proto.RegisterType((*BlackAddedTips)(nil), "open_im_sdk.BlackAddedTips") - proto.RegisterType((*BlackDeletedTips)(nil), "open_im_sdk.BlackDeletedTips") - proto.RegisterType((*FriendInfoChangedTips)(nil), "open_im_sdk.FriendInfoChangedTips") - proto.RegisterType((*SelfInfoUpdatedTips)(nil), "open_im_sdk.SelfInfoUpdatedTips") -} - -func init() { proto.RegisterFile("sdk_ws/ws.proto", fileDescriptor_ws_f46b8824c5dbc584) } - -var fileDescriptor_ws_f46b8824c5dbc584 = []byte{ - // 1917 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe4, 0x59, 0x4f, 0x6f, 0x1c, 0x49, - 0x15, 0x57, 0xf7, 0x4c, 0xcf, 0x78, 0xde, 0x8c, 0x3d, 0x4e, 0xe7, 0xcf, 0x36, 0x61, 0x15, 0x0d, - 0xad, 0x15, 0xb2, 0x10, 0x64, 0xa5, 0xac, 0x90, 0x96, 0xa0, 0x05, 0x62, 0x3b, 0xce, 0x26, 0xc4, - 0xb1, 0x69, 0x27, 0x70, 0xe0, 0x10, 0xb5, 0xa7, 0x6b, 0xc6, 0xcd, 0x74, 0x57, 0xcd, 0x74, 0x75, - 0x3b, 0xc9, 0x85, 0x33, 0x5f, 0x00, 0x2e, 0x2b, 0x10, 0x37, 0xc4, 0x95, 0x03, 0x7c, 0x21, 0xc4, - 0x01, 0x89, 0x13, 0xe2, 0x04, 0x07, 0x54, 0xaf, 0xaa, 0xbb, 0xab, 0x7a, 0xc6, 0x8e, 0xed, 0x44, - 0xb9, 0xec, 0x6d, 0xde, 0xaf, 0x5f, 0xbd, 0xff, 0xf5, 0xea, 0x55, 0x0d, 0x0c, 0x79, 0x34, 0x7b, - 0xf9, 0x8a, 0x7f, 0xfa, 0x8a, 0xdf, 0x9d, 0x67, 0x2c, 0x67, 0x6e, 0x9f, 0xcd, 0x09, 0x7d, 0x19, - 0xa7, 0x2f, 0x79, 0x34, 0xf3, 0xff, 0x63, 0x43, 0xef, 0x51, 0xc6, 0x8a, 0xf9, 0x63, 0x3a, 0x61, - 0xae, 0x07, 0xdd, 0x29, 0x12, 0xbb, 0x9e, 0x35, 0xb2, 0xb6, 0x7a, 0x41, 0x49, 0xba, 0x1f, 0x43, - 0x0f, 0x7f, 0x3e, 0x0b, 0x53, 0xe2, 0xd9, 0xf8, 0xad, 0x06, 0x5c, 0x1f, 0x06, 0x94, 0xe5, 0xf1, - 0x24, 0x1e, 0x87, 0x79, 0xcc, 0xa8, 0xd7, 0x42, 0x06, 0x03, 0x13, 0x3c, 0x31, 0xcd, 0x33, 0x16, - 0x15, 0x63, 0xe4, 0x69, 0x4b, 0x1e, 0x1d, 0x13, 0xfa, 0x27, 0xe1, 0x98, 0xbc, 0x08, 0x9e, 0x7a, - 0x8e, 0xd4, 0xaf, 0x48, 0x77, 0x04, 0x7d, 0xf6, 0x8a, 0x92, 0xec, 0x05, 0x27, 0xd9, 0xe3, 0x5d, - 0xaf, 0x83, 0x5f, 0x75, 0xc8, 0xbd, 0x03, 0x30, 0xce, 0x48, 0x98, 0x93, 0xe7, 0x71, 0x4a, 0xbc, - 0xee, 0xc8, 0xda, 0x5a, 0x0f, 0x34, 0x44, 0x48, 0x48, 0x49, 0x7a, 0x4c, 0xb2, 0x1d, 0x56, 0xd0, - 0xdc, 0x5b, 0x43, 0x06, 0x1d, 0x72, 0x37, 0xc0, 0x26, 0xaf, 0xbd, 0x1e, 0x8a, 0xb6, 0xc9, 0x6b, - 0xf7, 0x16, 0x74, 0x78, 0x1e, 0xe6, 0x05, 0xf7, 0x60, 0x64, 0x6d, 0x39, 0x81, 0xa2, 0xdc, 0x4f, - 0x60, 0x1d, 0xe5, 0xb2, 0xd2, 0x9a, 0x3e, 0x2e, 0x31, 0xc1, 0x2a, 0x62, 0xcf, 0xdf, 0xcc, 0x89, - 0x37, 0x40, 0x01, 0x35, 0xe0, 0xff, 0xcd, 0x86, 0xeb, 0x18, 0xf7, 0x7d, 0x34, 0x60, 0xaf, 0x48, - 0x92, 0xb7, 0x64, 0xe0, 0x16, 0x74, 0x0a, 0xa9, 0x4e, 0x86, 0x5f, 0x51, 0x42, 0x4f, 0xc6, 0x12, - 0xf2, 0x94, 0x9c, 0x92, 0x04, 0x03, 0xef, 0x04, 0x35, 0xe0, 0xde, 0x86, 0xb5, 0x5f, 0xb1, 0x98, - 0x62, 0x4c, 0x44, 0xc4, 0x5b, 0x41, 0x45, 0x8b, 0x6f, 0x34, 0x1e, 0xcf, 0xa8, 0x48, 0xa9, 0x0c, - 0x77, 0x45, 0xeb, 0x99, 0xe8, 0x98, 0x99, 0xf8, 0x36, 0x6c, 0x84, 0xf3, 0xf9, 0x7e, 0x48, 0xa7, - 0x24, 0x93, 0x4a, 0xbb, 0xa8, 0xb4, 0x81, 0x8a, 0x7c, 0x08, 0x4d, 0x47, 0xac, 0xc8, 0xc6, 0x04, - 0xc3, 0xed, 0x04, 0x1a, 0x22, 0xe4, 0xb0, 0x39, 0xc9, 0xb4, 0x30, 0xca, 0xc8, 0x37, 0x50, 0x95, - 0x15, 0x28, 0xb3, 0xe2, 0xff, 0xc1, 0x82, 0x8d, 0xc3, 0xe2, 0x38, 0x89, 0xc7, 0xc8, 0x20, 0x82, - 0x56, 0x87, 0xc6, 0x32, 0x42, 0xa3, 0x3b, 0x68, 0x9f, 0xed, 0x60, 0xcb, 0x74, 0xf0, 0x16, 0x74, - 0xa6, 0x84, 0x46, 0x24, 0xc3, 0x80, 0x39, 0x81, 0xa2, 0x56, 0x38, 0xee, 0xac, 0x72, 0xdc, 0xff, - 0x9d, 0x0d, 0x6b, 0x1f, 0xd8, 0xb4, 0x11, 0xf4, 0xe7, 0x27, 0x8c, 0x92, 0x67, 0x85, 0x28, 0x26, - 0x95, 0x4c, 0x1d, 0x72, 0x6f, 0x80, 0x73, 0x1c, 0x67, 0xf9, 0x09, 0x66, 0x73, 0x3d, 0x90, 0x84, - 0x40, 0x49, 0x1a, 0xc6, 0x32, 0x85, 0xbd, 0x40, 0x12, 0x2a, 0xe2, 0x6b, 0xd5, 0x3e, 0x30, 0x77, - 0x56, 0x6f, 0x69, 0x67, 0x2d, 0x07, 0x06, 0x56, 0x06, 0xe6, 0xdf, 0x16, 0xc0, 0x5e, 0x16, 0x13, - 0x1a, 0x61, 0x68, 0x1a, 0x5b, 0xda, 0x5a, 0xde, 0xd2, 0xb7, 0xa0, 0x93, 0x91, 0x34, 0xcc, 0x66, - 0x65, 0xc9, 0x4b, 0xaa, 0x61, 0x50, 0x6b, 0xc9, 0xa0, 0xef, 0x03, 0x4c, 0x50, 0x8f, 0x90, 0x83, - 0xa1, 0xea, 0xdf, 0xbb, 0x79, 0x57, 0x6b, 0x7b, 0x77, 0xcb, 0xfc, 0x04, 0x1a, 0xa3, 0xd8, 0x49, - 0x61, 0x14, 0xa9, 0x82, 0x95, 0xb9, 0xad, 0x81, 0x15, 0xf5, 0xda, 0x39, 0xa7, 0x5e, 0xbb, 0x55, - 0xbd, 0xfe, 0xc3, 0x82, 0xde, 0x76, 0x12, 0x8e, 0x67, 0x17, 0x74, 0xda, 0x74, 0xce, 0x5e, 0x72, - 0xee, 0x01, 0xac, 0x1f, 0x0b, 0x71, 0xa5, 0x0b, 0xe8, 0x7f, 0xff, 0xde, 0x37, 0x0d, 0xff, 0xcc, - 0x0d, 0x12, 0x98, 0x2b, 0x4c, 0x47, 0xdb, 0x6f, 0x77, 0xd4, 0x39, 0xc7, 0xd1, 0x4e, 0xe5, 0xe8, - 0x6f, 0x6c, 0x18, 0x60, 0x4b, 0x0b, 0xc8, 0xa2, 0x20, 0x3c, 0x3f, 0xb3, 0xf6, 0xb5, 0x1e, 0x67, - 0x9b, 0x3d, 0xce, 0x87, 0xc1, 0x49, 0x48, 0xa3, 0x84, 0x04, 0x84, 0x17, 0x49, 0x5e, 0x9e, 0x23, - 0x3a, 0x26, 0x8b, 0x62, 0xb1, 0xcf, 0xa7, 0xea, 0x04, 0x51, 0x94, 0x70, 0x4a, 0xf2, 0x89, 0x4f, - 0xd2, 0xe2, 0x1a, 0x10, 0x3a, 0x33, 0xb2, 0xc0, 0x90, 0xca, 0x1d, 0x50, 0x92, 0xb5, 0x4e, 0xe5, - 0x6c, 0x57, 0xd7, 0x59, 0xe7, 0x44, 0xd2, 0x28, 0x40, 0x1e, 0x1d, 0x1a, 0xd2, 0x3c, 0x39, 0xfc, - 0xaf, 0x6c, 0x58, 0x97, 0x95, 0x5e, 0xc6, 0xe2, 0x8e, 0x28, 0x49, 0x96, 0x1a, 0x69, 0xd7, 0x10, - 0xd1, 0x0f, 0x72, 0xf6, 0x42, 0xef, 0xef, 0x15, 0xbd, 0x32, 0x2a, 0xce, 0x05, 0xa3, 0x62, 0x56, - 0x93, 0xb3, 0x54, 0x4d, 0x9f, 0xc0, 0xba, 0x94, 0x63, 0x16, 0xb5, 0x09, 0x9a, 0xb1, 0xed, 0x36, - 0x63, 0x7b, 0xd9, 0xe8, 0xfc, 0xcf, 0x02, 0xef, 0xb0, 0x48, 0x92, 0x7d, 0xc2, 0x79, 0x38, 0x25, - 0xdb, 0x6f, 0x8e, 0xc8, 0xe2, 0x69, 0xcc, 0xf3, 0x80, 0xf0, 0xb9, 0x48, 0x14, 0xc9, 0xb2, 0x1d, - 0x16, 0x11, 0x8c, 0x92, 0x13, 0x94, 0xa4, 0x70, 0x91, 0x64, 0x99, 0xb0, 0x40, 0x75, 0x03, 0x49, - 0x09, 0x3c, 0x0d, 0x5f, 0x1f, 0x91, 0x05, 0x06, 0xa6, 0x15, 0x28, 0x0a, 0xf1, 0x98, 0x0a, 0xbc, - 0xad, 0x70, 0xa4, 0xdc, 0x1f, 0xc3, 0x3a, 0x8f, 0xe9, 0x54, 0x26, 0x57, 0x16, 0x4b, 0x6b, 0xab, - 0x7f, 0xef, 0x1b, 0xc6, 0x06, 0x7a, 0x14, 0xe6, 0x27, 0x24, 0xdb, 0x63, 0x59, 0x1a, 0xe6, 0x81, - 0xc9, 0xef, 0x7e, 0x01, 0x03, 0x2c, 0xd8, 0x72, 0x7d, 0xe7, 0x6d, 0xeb, 0x0d, 0x76, 0x3f, 0x85, - 0x8f, 0x56, 0x7b, 0xbf, 0x38, 0x73, 0xc7, 0x88, 0xae, 0x81, 0x9b, 0x2f, 0x66, 0xb4, 0x2a, 0x10, - 0x1d, 0x12, 0x61, 0xe3, 0x52, 0x8e, 0xd7, 0x1a, 0xb5, 0xb6, 0x5a, 0x41, 0x49, 0xfa, 0xbf, 0x16, - 0xc7, 0x65, 0xa5, 0xee, 0x3c, 0x2d, 0xb7, 0x61, 0x8d, 0x93, 0xc5, 0x36, 0x99, 0xc6, 0x14, 0x55, - 0xb4, 0x82, 0x8a, 0xc6, 0x59, 0x88, 0x2c, 0x1e, 0xd2, 0xa8, 0x0c, 0xb2, 0xa4, 0x9a, 0x96, 0xb5, - 0x97, 0x2c, 0x13, 0x5d, 0x7f, 0x68, 0x18, 0xf0, 0xb5, 0x48, 0xf2, 0x0d, 0x70, 0x1f, 0x91, 0x7c, - 0x3f, 0x7c, 0xfd, 0x80, 0x46, 0xfb, 0x68, 0x52, 0x40, 0x16, 0xfe, 0x43, 0xb8, 0xbe, 0x84, 0xf2, - 0xb9, 0xe6, 0x9c, 0x75, 0x86, 0x73, 0xb6, 0xee, 0x9c, 0xff, 0x25, 0x0c, 0x74, 0xd5, 0x62, 0x83, - 0xc5, 0x91, 0x4a, 0xa6, 0x1d, 0x47, 0xee, 0x16, 0xb4, 0x13, 0x51, 0x09, 0x36, 0xda, 0x7c, 0xc3, - 0xb0, 0x79, 0x9f, 0x4f, 0x77, 0xc3, 0x3c, 0x0c, 0x90, 0xc3, 0x5f, 0xc0, 0x50, 0x58, 0x7c, 0x44, - 0x68, 0xb4, 0xcf, 0xa7, 0x68, 0xcc, 0x08, 0xfa, 0x9c, 0x64, 0xa7, 0xe8, 0x46, 0x7d, 0x42, 0x69, - 0x90, 0xe0, 0x18, 0x27, 0x31, 0xa1, 0xb9, 0xe4, 0x50, 0xd5, 0xa8, 0x41, 0xb2, 0x92, 0x68, 0x54, - 0x1d, 0xcf, 0x58, 0x49, 0x92, 0xf6, 0xff, 0xea, 0x40, 0x57, 0x19, 0x21, 0xab, 0x8a, 0x46, 0x75, - 0x25, 0x4a, 0x4a, 0x76, 0xb3, 0xf1, 0x69, 0x3d, 0xeb, 0x4a, 0x4a, 0x3f, 0x39, 0x5a, 0xe6, 0xc9, - 0xd1, 0xb0, 0xa9, 0xbd, 0x6c, 0x53, 0xc3, 0x2f, 0x67, 0xd9, 0xaf, 0xef, 0xc0, 0x26, 0xc7, 0x79, - 0xea, 0x30, 0x09, 0xf3, 0x09, 0xcb, 0x52, 0xd5, 0x0e, 0x9d, 0x60, 0x09, 0x17, 0x87, 0xa4, 0xc4, - 0x9e, 0x95, 0x53, 0x9c, 0x6c, 0x8b, 0x0d, 0x54, 0xf4, 0x57, 0x89, 0xec, 0xa9, 0x89, 0x4e, 0x8e, - 0x55, 0x26, 0x28, 0x6d, 0xe3, 0x3c, 0x66, 0x14, 0x6f, 0x0b, 0x3d, 0x54, 0xaa, 0x43, 0xc2, 0xf3, - 0x94, 0x4f, 0xf7, 0x32, 0x96, 0xaa, 0xe1, 0xaa, 0x24, 0xd1, 0x73, 0x46, 0x73, 0x42, 0x73, 0x5c, - 0xdb, 0x97, 0x6b, 0x35, 0x48, 0xac, 0x55, 0x24, 0xde, 0x43, 0x06, 0x41, 0x49, 0x8a, 0xbe, 0x3e, - 0x61, 0xd9, 0x98, 0x60, 0xdf, 0x58, 0x1f, 0xb5, 0x44, 0x5f, 0xaf, 0x00, 0x77, 0x13, 0x5a, 0x9c, - 0x2c, 0xbc, 0x0d, 0x4c, 0xa0, 0xf8, 0x69, 0xe4, 0x75, 0x68, 0xe6, 0xb5, 0x71, 0xd2, 0x6c, 0xe2, - 0x57, 0xfd, 0xa4, 0xf9, 0x21, 0x74, 0xd9, 0x5c, 0xf4, 0x04, 0xee, 0x5d, 0xc3, 0xba, 0xfc, 0xd6, - 0xaa, 0xba, 0xbc, 0x7b, 0x20, 0x79, 0x1e, 0xd2, 0x3c, 0x7b, 0x13, 0x94, 0x2b, 0xdc, 0x3d, 0x18, - 0xb2, 0xc9, 0x24, 0x89, 0x29, 0x39, 0x2c, 0xf8, 0x09, 0x8e, 0x3d, 0x2e, 0x8e, 0x3d, 0x1f, 0x1b, - 0x42, 0x0e, 0x4c, 0x9e, 0xa0, 0xb9, 0xe8, 0xf6, 0x7d, 0x18, 0xe8, 0x0a, 0x84, 0x8b, 0x33, 0xf2, - 0x46, 0x55, 0x9f, 0xf8, 0x29, 0x46, 0xe2, 0xd3, 0x30, 0x29, 0xe4, 0xe4, 0xb5, 0x16, 0x48, 0xe2, - 0xbe, 0xfd, 0xb9, 0xe5, 0xff, 0xd6, 0x82, 0x61, 0x43, 0x81, 0xe0, 0xce, 0xe3, 0x3c, 0x21, 0x4a, - 0x82, 0x24, 0x5c, 0x17, 0xda, 0x11, 0xe1, 0x63, 0x55, 0xbc, 0xf8, 0x5b, 0x1d, 0x82, 0xad, 0x6a, - 0xa8, 0x16, 0xd7, 0xe1, 0x83, 0x23, 0x21, 0xe8, 0x88, 0x15, 0x34, 0xaa, 0xae, 0xc3, 0x1a, 0x26, - 0x8a, 0x27, 0x3e, 0x38, 0xda, 0x0e, 0xa3, 0x29, 0x91, 0x97, 0x56, 0x07, 0x6d, 0x32, 0x41, 0x7f, - 0x17, 0xd6, 0x9e, 0xc7, 0x73, 0xbe, 0xc3, 0xd2, 0x54, 0x6c, 0x9c, 0x88, 0xe4, 0x62, 0xa2, 0xb7, - 0x30, 0xd3, 0x8a, 0x12, 0x45, 0x12, 0x91, 0x49, 0x58, 0x24, 0xb9, 0x60, 0x2d, 0xb7, 0xac, 0x06, - 0xf9, 0x7f, 0xb6, 0x60, 0x28, 0xef, 0xa2, 0x0f, 0x69, 0x4e, 0x32, 0x81, 0xb9, 0xdf, 0x05, 0x07, - 0xf7, 0x17, 0x0a, 0xeb, 0xdf, 0xbb, 0x65, 0x36, 0xbf, 0xf2, 0xd5, 0x20, 0x90, 0x4c, 0xee, 0x36, - 0xf4, 0x09, 0xcd, 0xb3, 0x90, 0xe6, 0x38, 0x76, 0xdb, 0xb8, 0x66, 0xb4, 0xbc, 0xc6, 0xbc, 0xf1, - 0x06, 0xfa, 0x22, 0xe1, 0x71, 0x75, 0x76, 0x68, 0xdd, 0xc3, 0x04, 0xfd, 0x3f, 0x55, 0xb6, 0x3e, - 0x25, 0xe1, 0x29, 0xb9, 0x82, 0xad, 0x3f, 0x01, 0x48, 0xc4, 0xd2, 0xec, 0x52, 0xa6, 0x6a, 0x6b, - 0x2e, 0x68, 0xe9, 0xbf, 0x2c, 0xb8, 0x26, 0x85, 0x3c, 0xa6, 0xa7, 0x71, 0x4e, 0xa2, 0x2b, 0xd8, - 0xfa, 0x39, 0x74, 0xd8, 0xfc, 0x52, 0x76, 0x2a, 0x7e, 0xf7, 0x09, 0x0c, 0x63, 0xa9, 0x56, 0x90, - 0xd5, 0x70, 0x70, 0x11, 0x11, 0xcd, 0x85, 0xcb, 0xfe, 0xb6, 0x57, 0xf9, 0xfb, 0x4f, 0x0b, 0x36, - 0xa5, 0xa4, 0x9f, 0xc6, 0xe3, 0xd9, 0x07, 0x76, 0xf7, 0x4b, 0xd8, 0x98, 0xa1, 0xd6, 0x4b, 0x7b, - 0xdb, 0x58, 0x77, 0x41, 0x67, 0xff, 0x6b, 0xc1, 0xcd, 0x32, 0xb9, 0x13, 0xb6, 0x73, 0x22, 0xae, - 0xba, 0xd2, 0x63, 0xd1, 0x0b, 0x91, 0xc4, 0x96, 0x2c, 0x47, 0x1c, 0x0d, 0x79, 0x07, 0x1f, 0x7f, - 0x04, 0xbd, 0x49, 0x4c, 0xc3, 0x44, 0xbb, 0xf9, 0xbd, 0x7d, 0x71, 0xbd, 0x44, 0x74, 0xf0, 0xb4, - 0x50, 0x3d, 0x5a, 0xbd, 0x07, 0x95, 0x74, 0x9d, 0x27, 0xe7, 0x02, 0x79, 0xf2, 0xff, 0x6e, 0xc1, - 0x26, 0x82, 0x3b, 0xd8, 0xe3, 0xaf, 0x92, 0xea, 0xfb, 0xd0, 0x55, 0x6f, 0x66, 0x17, 0x8e, 0x43, - 0xb9, 0x40, 0xec, 0x60, 0xf9, 0x76, 0x77, 0xa9, 0x44, 0x6b, 0x6b, 0x2e, 0x98, 0xe4, 0x3f, 0x5a, - 0x70, 0xa3, 0x32, 0x5c, 0xcf, 0xb1, 0x38, 0x77, 0x15, 0x59, 0x27, 0x59, 0x87, 0xea, 0x60, 0xd8, - 0x97, 0xab, 0xfb, 0xd6, 0xe5, 0x6a, 0xc2, 0xff, 0xca, 0x02, 0xef, 0x09, 0x8b, 0x29, 0xf2, 0x3c, - 0x98, 0xcf, 0x13, 0xf5, 0xe4, 0x7a, 0x85, 0x8c, 0xfc, 0x00, 0x7a, 0xa1, 0x14, 0x40, 0x73, 0x65, - 0xf6, 0xb9, 0x0f, 0x0b, 0x35, 0xb7, 0x9c, 0xd9, 0x42, 0x5e, 0xbd, 0xfe, 0x2a, 0xca, 0xff, 0x8b, - 0x05, 0x9e, 0x66, 0xd4, 0x61, 0xc6, 0xc6, 0x84, 0xf3, 0x0f, 0xdc, 0x1a, 0xd0, 0x38, 0xed, 0xf2, - 0xac, 0x28, 0xcd, 0xe8, 0xb6, 0x61, 0xf4, 0x0c, 0xae, 0xc9, 0xfb, 0xbb, 0x66, 0xb9, 0x98, 0xa3, - 0xc2, 0x48, 0x0e, 0x3f, 0x72, 0x4e, 0x2f, 0x49, 0xf3, 0x41, 0x45, 0xbd, 0x8e, 0xd7, 0x0f, 0x2a, - 0x77, 0x00, 0xc2, 0x28, 0xfa, 0x05, 0xcb, 0xa2, 0x98, 0x4e, 0x55, 0x74, 0x34, 0xc4, 0x7f, 0x02, - 0x03, 0x31, 0xc9, 0x3d, 0x67, 0xf5, 0x6b, 0xc3, 0x55, 0xdf, 0x0a, 0xfc, 0x5f, 0xc2, 0xed, 0x25, - 0xc3, 0x1f, 0x44, 0x91, 0x0a, 0xf7, 0x17, 0x30, 0x98, 0x68, 0x9a, 0x54, 0xd4, 0xcd, 0x4b, 0x8d, - 0x6e, 0x4a, 0x60, 0xb0, 0xfb, 0x2f, 0xe1, 0xce, 0x92, 0x70, 0x33, 0x9f, 0xef, 0xa8, 0xe0, 0xf7, - 0x16, 0x0c, 0x95, 0x86, 0xca, 0xe6, 0x4f, 0xa1, 0x23, 0xdf, 0xe8, 0x94, 0xb0, 0x8f, 0x1a, 0xc2, - 0xca, 0xf7, 0xc4, 0x40, 0xb1, 0x2d, 0xef, 0x6b, 0x7b, 0xc5, 0xbe, 0x76, 0x3f, 0x6b, 0x6c, 0xb7, - 0x73, 0xcb, 0xbc, 0xdc, 0x69, 0x41, 0x59, 0x16, 0xbb, 0x24, 0x21, 0xf9, 0xfb, 0xf1, 0xf9, 0x00, - 0x36, 0xf0, 0x79, 0xf0, 0xbd, 0x65, 0xe9, 0x67, 0xb0, 0x89, 0x02, 0xdf, 0xa3, 0x8d, 0x3f, 0x87, - 0x9b, 0x75, 0xa0, 0xf5, 0x26, 0xf8, 0x8e, 0x72, 0xbf, 0x07, 0xd7, 0x8f, 0x48, 0x32, 0x11, 0x52, - 0x5f, 0xcc, 0xa3, 0xea, 0x14, 0x39, 0xe3, 0x81, 0xe2, 0xb8, 0x83, 0x7f, 0x60, 0x7d, 0xf6, 0xff, - 0x00, 0x00, 0x00, 0xff, 0xff, 0x5a, 0xf7, 0xb0, 0x0f, 0xd3, 0x1a, 0x00, 0x00, + proto.RegisterType((*GroupInfo)(nil), "server_api_params.GroupInfo") + proto.RegisterType((*GroupMemberFullInfo)(nil), "server_api_params.GroupMemberFullInfo") + proto.RegisterType((*PublicUserInfo)(nil), "server_api_params.PublicUserInfo") + proto.RegisterType((*UserInfo)(nil), "server_api_params.UserInfo") + proto.RegisterType((*FriendInfo)(nil), "server_api_params.FriendInfo") + proto.RegisterType((*BlackInfo)(nil), "server_api_params.BlackInfo") + proto.RegisterType((*GroupRequest)(nil), "server_api_params.GroupRequest") + proto.RegisterType((*FriendRequest)(nil), "server_api_params.FriendRequest") + proto.RegisterType((*PullMessageBySeqListResp)(nil), "server_api_params.PullMessageBySeqListResp") + proto.RegisterType((*PullMessageBySeqListReq)(nil), "server_api_params.PullMessageBySeqListReq") + proto.RegisterType((*PullMessageReq)(nil), "server_api_params.PullMessageReq") + proto.RegisterType((*PullMessageResp)(nil), "server_api_params.PullMessageResp") + proto.RegisterType((*GetMaxAndMinSeqReq)(nil), "server_api_params.GetMaxAndMinSeqReq") + proto.RegisterType((*GetMaxAndMinSeqResp)(nil), "server_api_params.GetMaxAndMinSeqResp") + proto.RegisterType((*GatherFormat)(nil), "server_api_params.GatherFormat") + proto.RegisterType((*UserSendMsgResp)(nil), "server_api_params.UserSendMsgResp") + proto.RegisterType((*MsgData)(nil), "server_api_params.MsgData") + proto.RegisterMapType((map[string]bool)(nil), "server_api_params.MsgData.OptionsEntry") + proto.RegisterType((*OfflinePushInfo)(nil), "server_api_params.OfflinePushInfo") + proto.RegisterType((*TipsComm)(nil), "server_api_params.TipsComm") + proto.RegisterType((*MemberEnterTips)(nil), "server_api_params.MemberEnterTips") + proto.RegisterType((*MemberLeaveTips)(nil), "server_api_params.MemberLeaveTips") + proto.RegisterType((*MemberInvitedTips)(nil), "server_api_params.MemberInvitedTips") + proto.RegisterType((*MemberKickedTips)(nil), "server_api_params.MemberKickedTips") + proto.RegisterType((*MemberInfoChangedTips)(nil), "server_api_params.MemberInfoChangedTips") + proto.RegisterType((*GroupCreatedTips)(nil), "server_api_params.GroupCreatedTips") + proto.RegisterType((*GroupInfoChangedTips)(nil), "server_api_params.GroupInfoChangedTips") + proto.RegisterType((*JoinGroupApplicationTips)(nil), "server_api_params.JoinGroupApplicationTips") + proto.RegisterType((*ApplicationProcessedTips)(nil), "server_api_params.ApplicationProcessedTips") + proto.RegisterType((*FriendApplication)(nil), "server_api_params.FriendApplication") + proto.RegisterType((*FromToUserID)(nil), "server_api_params.FromToUserID") + proto.RegisterType((*FriendApplicationAddedTips)(nil), "server_api_params.FriendApplicationAddedTips") + proto.RegisterType((*FriendApplicationProcessedTips)(nil), "server_api_params.FriendApplicationProcessedTips") + proto.RegisterType((*FriendAddedTips)(nil), "server_api_params.FriendAddedTips") + proto.RegisterType((*FriendDeletedTips)(nil), "server_api_params.FriendDeletedTips") + proto.RegisterType((*BlackAddedTips)(nil), "server_api_params.BlackAddedTips") + proto.RegisterType((*BlackDeletedTips)(nil), "server_api_params.BlackDeletedTips") + proto.RegisterType((*FriendInfoChangedTips)(nil), "server_api_params.FriendInfoChangedTips") + proto.RegisterType((*SelfInfoUpdatedTips)(nil), "server_api_params.SelfInfoUpdatedTips") +} + +func init() { proto.RegisterFile("sdk_ws/ws.proto", fileDescriptor_ws_f24e0416269be717) } + +var fileDescriptor_ws_f24e0416269be717 = []byte{ + // 1991 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe4, 0x59, 0xcd, 0x6f, 0x23, 0x49, + 0x15, 0x57, 0xb7, 0x3f, 0x12, 0x3f, 0xdb, 0x71, 0xa6, 0x67, 0x76, 0xb0, 0xc2, 0x32, 0x84, 0xd6, + 0x6a, 0x89, 0x90, 0x08, 0x52, 0x10, 0x12, 0x2c, 0x12, 0x30, 0x93, 0x2f, 0x66, 0x89, 0x33, 0x51, + 0x67, 0x46, 0xcb, 0x01, 0x69, 0x54, 0x71, 0x97, 0x9d, 0x26, 0xed, 0x2a, 0xbb, 0xba, 0x9c, 0x99, + 0xb9, 0x70, 0xe6, 0xc2, 0x11, 0x8e, 0x5c, 0x11, 0x12, 0x37, 0x84, 0xb8, 0x71, 0xe0, 0xdf, 0xe0, + 0x5f, 0xe0, 0x0a, 0x12, 0x12, 0xd2, 0xa2, 0x7a, 0x55, 0xdd, 0x5d, 0xe5, 0x8f, 0xac, 0x31, 0x11, + 0x7b, 0xd8, 0x9b, 0xdf, 0xaf, 0xeb, 0x7d, 0xbf, 0x7a, 0x55, 0xf5, 0x0c, 0x9d, 0x2c, 0xbe, 0x79, + 0xfd, 0x26, 0xfb, 0xd6, 0x9b, 0x6c, 0x7f, 0x2c, 0xb8, 0xe4, 0xc1, 0x83, 0x8c, 0x8a, 0x5b, 0x2a, + 0x5e, 0x93, 0x71, 0xf2, 0x7a, 0x4c, 0x04, 0x19, 0x65, 0xe1, 0x3f, 0x7c, 0x68, 0x9c, 0x0a, 0x3e, + 0x1d, 0x3f, 0x67, 0x03, 0x1e, 0x74, 0x61, 0x63, 0x88, 0xc4, 0x51, 0xd7, 0xdb, 0xf5, 0xf6, 0x1a, + 0x51, 0x4e, 0x06, 0xef, 0x43, 0x03, 0x7f, 0x9e, 0x93, 0x11, 0xed, 0xfa, 0xf8, 0xad, 0x04, 0x82, + 0x10, 0x5a, 0x8c, 0xcb, 0x64, 0x90, 0xf4, 0x89, 0x4c, 0x38, 0xeb, 0x56, 0x70, 0x81, 0x83, 0xa9, + 0x35, 0x09, 0x93, 0x82, 0xc7, 0xd3, 0x3e, 0xae, 0xa9, 0xea, 0x35, 0x36, 0xa6, 0xf4, 0x0f, 0x48, + 0x9f, 0xbe, 0x8a, 0xce, 0xba, 0x35, 0xad, 0xdf, 0x90, 0xc1, 0x2e, 0x34, 0xf9, 0x1b, 0x46, 0xc5, + 0xab, 0x8c, 0x8a, 0xe7, 0x47, 0xdd, 0x3a, 0x7e, 0xb5, 0xa1, 0xe0, 0x09, 0x40, 0x5f, 0x50, 0x22, + 0xe9, 0xcb, 0x64, 0x44, 0xbb, 0x1b, 0xbb, 0xde, 0x5e, 0x3b, 0xb2, 0x10, 0x25, 0x61, 0x44, 0x47, + 0x57, 0x54, 0x1c, 0xf2, 0x29, 0x93, 0xdd, 0x4d, 0x5c, 0x60, 0x43, 0xc1, 0x16, 0xf8, 0xf4, 0x6d, + 0xb7, 0x81, 0xa2, 0x7d, 0xfa, 0x36, 0x78, 0x0c, 0xf5, 0x4c, 0x12, 0x39, 0xcd, 0xba, 0xb0, 0xeb, + 0xed, 0xd5, 0x22, 0x43, 0x05, 0x1f, 0x40, 0x1b, 0xe5, 0xf2, 0xdc, 0x9a, 0x26, 0xb2, 0xb8, 0x60, + 0x11, 0xb1, 0x97, 0xef, 0xc6, 0xb4, 0xdb, 0x42, 0x01, 0x25, 0x10, 0xfe, 0xd9, 0x87, 0x87, 0x18, + 0xf7, 0x1e, 0x1a, 0x70, 0x32, 0x4d, 0xd3, 0xcf, 0xc8, 0xc0, 0x63, 0xa8, 0x4f, 0xb5, 0x3a, 0x1d, + 0x7e, 0x43, 0x29, 0x3d, 0x82, 0xa7, 0xf4, 0x8c, 0xde, 0xd2, 0x14, 0x03, 0x5f, 0x8b, 0x4a, 0x20, + 0xd8, 0x81, 0xcd, 0x9f, 0xf3, 0x84, 0x61, 0x4c, 0x54, 0xc4, 0x2b, 0x51, 0x41, 0xab, 0x6f, 0x2c, + 0xe9, 0xdf, 0x30, 0x95, 0x52, 0x1d, 0xee, 0x82, 0xb6, 0x33, 0x51, 0x77, 0x33, 0xf1, 0x21, 0x6c, + 0x91, 0xf1, 0xb8, 0x47, 0xd8, 0x90, 0x0a, 0xad, 0x74, 0x03, 0x95, 0xce, 0xa0, 0x2a, 0x1f, 0x4a, + 0xd3, 0x25, 0x9f, 0x8a, 0x3e, 0xc5, 0x70, 0xd7, 0x22, 0x0b, 0x51, 0x72, 0xf8, 0x98, 0x0a, 0x2b, + 0x8c, 0x3a, 0xf2, 0x33, 0xa8, 0xc9, 0x0a, 0xe4, 0x59, 0x09, 0x7f, 0xeb, 0xc1, 0xd6, 0xc5, 0xf4, + 0x2a, 0x4d, 0xfa, 0xb8, 0x40, 0x05, 0xad, 0x0c, 0x8d, 0xe7, 0x84, 0xc6, 0x76, 0xd0, 0x5f, 0xee, + 0x60, 0xc5, 0x75, 0xf0, 0x31, 0xd4, 0x87, 0x94, 0xc5, 0x54, 0x60, 0xc0, 0x6a, 0x91, 0xa1, 0x16, + 0x38, 0x5e, 0x5b, 0xe4, 0x78, 0xf8, 0x1b, 0x1f, 0x36, 0xff, 0xcf, 0xa6, 0xed, 0x42, 0x73, 0x7c, + 0xcd, 0x19, 0x3d, 0x9f, 0xaa, 0x62, 0x32, 0xc9, 0xb4, 0xa1, 0xe0, 0x11, 0xd4, 0xae, 0x12, 0x21, + 0xaf, 0x31, 0x9b, 0xed, 0x48, 0x13, 0x0a, 0xa5, 0x23, 0x92, 0xe8, 0x14, 0x36, 0x22, 0x4d, 0x98, + 0x88, 0x6f, 0x16, 0xfb, 0xc0, 0xdd, 0x59, 0x8d, 0xb9, 0x9d, 0x35, 0x1f, 0x18, 0x58, 0x18, 0x98, + 0x7f, 0x79, 0x00, 0x27, 0x22, 0xa1, 0x2c, 0xc6, 0xd0, 0xcc, 0x6c, 0x69, 0x6f, 0x7e, 0x4b, 0x3f, + 0x86, 0xba, 0xa0, 0x23, 0x22, 0x6e, 0xf2, 0x92, 0xd7, 0xd4, 0x8c, 0x41, 0x95, 0x39, 0x83, 0xbe, + 0x0f, 0x30, 0x40, 0x3d, 0x4a, 0x0e, 0x86, 0xaa, 0x79, 0xf0, 0xe5, 0xfd, 0xb9, 0xe6, 0xb7, 0x9f, + 0x67, 0x29, 0xb2, 0x96, 0xab, 0xfd, 0x44, 0xe2, 0xd8, 0x94, 0xad, 0xce, 0x70, 0x09, 0x2c, 0xa8, + 0xda, 0xfa, 0x1d, 0x55, 0xbb, 0x51, 0x54, 0xed, 0xdf, 0x3d, 0x68, 0x3c, 0x4b, 0x49, 0xff, 0x66, + 0x45, 0xd7, 0x5d, 0x17, 0xfd, 0x39, 0x17, 0x4f, 0xa1, 0x7d, 0xa5, 0xc4, 0xe5, 0x2e, 0x60, 0x14, + 0x9a, 0x07, 0x5f, 0x5b, 0xe0, 0xa5, 0xbb, 0x59, 0x22, 0x97, 0xcf, 0x75, 0xb7, 0xfa, 0xd9, 0xee, + 0xd6, 0xee, 0x70, 0xb7, 0x5e, 0xb8, 0xfb, 0x4b, 0x1f, 0x5a, 0xd8, 0xde, 0x22, 0x3a, 0x99, 0xd2, + 0x4c, 0x2e, 0xdd, 0x07, 0x56, 0xbf, 0xf3, 0xdd, 0x7e, 0x17, 0x42, 0xeb, 0x9a, 0xb0, 0x38, 0xa5, + 0x11, 0xcd, 0xa6, 0xa9, 0xcc, 0xcf, 0x14, 0x1b, 0xd3, 0x05, 0x32, 0xe9, 0x65, 0x43, 0x73, 0x9a, + 0x18, 0x4a, 0x39, 0xa5, 0xd7, 0xa9, 0x4f, 0xda, 0xe2, 0x12, 0x50, 0x3a, 0x05, 0x9d, 0x60, 0x60, + 0xf5, 0x6e, 0xc8, 0xc9, 0x52, 0xa7, 0x71, 0x76, 0xc3, 0xd6, 0x59, 0x66, 0x46, 0xd3, 0x28, 0x40, + 0x1f, 0x23, 0x16, 0x32, 0x7b, 0x8a, 0x84, 0x7f, 0xab, 0x40, 0x5b, 0x57, 0x7d, 0x1e, 0x8b, 0x27, + 0xaa, 0x3c, 0xf9, 0xc8, 0x49, 0xbe, 0x85, 0x28, 0x2b, 0x14, 0x75, 0xee, 0xf6, 0x07, 0x07, 0x53, + 0x15, 0xa4, 0xe8, 0x13, 0xa7, 0x4f, 0xd8, 0x50, 0xae, 0xe5, 0xb4, 0xec, 0x17, 0x46, 0x8b, 0x46, + 0x54, 0x07, 0x92, 0xdc, 0x49, 0x6a, 0x41, 0x2b, 0x5e, 0xc9, 0x0b, 0xfd, 0x3a, 0xad, 0x16, 0xa2, + 0xe2, 0x2b, 0x79, 0xae, 0x5b, 0x07, 0xa9, 0x04, 0xb4, 0x64, 0xa3, 0x77, 0x33, 0x97, 0x6c, 0xb4, + 0xce, 0x66, 0xb5, 0x81, 0x15, 0xb7, 0x2c, 0xab, 0xe0, 0x64, 0xd5, 0xdd, 0x13, 0xcd, 0xb9, 0x3d, + 0xf1, 0x01, 0xb4, 0xb5, 0x9c, 0xbc, 0x56, 0x5b, 0xfa, 0x5c, 0x76, 0x40, 0xb7, 0x36, 0xda, 0xb3, + 0xb5, 0xe1, 0x66, 0x77, 0x6b, 0x49, 0x76, 0x3b, 0x76, 0xa1, 0x77, 0x2f, 0xa6, 0x69, 0xda, 0xa3, + 0x59, 0x46, 0x86, 0xf4, 0xd9, 0xbb, 0x4b, 0x3a, 0x39, 0x4b, 0x32, 0x19, 0xd1, 0x6c, 0xac, 0x0a, + 0x8d, 0x0a, 0x71, 0xc8, 0x63, 0x8a, 0x59, 0xae, 0x45, 0x39, 0xa9, 0x5c, 0xa4, 0x42, 0x28, 0x0b, + 0x4c, 0x67, 0xd3, 0x94, 0xc2, 0x47, 0xe4, 0xed, 0x25, 0x9d, 0x60, 0x46, 0x2b, 0x91, 0xa1, 0x10, + 0x4f, 0x98, 0xc2, 0xab, 0x06, 0x47, 0x2a, 0x38, 0x86, 0x76, 0x96, 0xb0, 0xa1, 0x2e, 0x4e, 0x5d, + 0xec, 0x95, 0xbd, 0xe6, 0xc1, 0x57, 0x17, 0xb4, 0x81, 0x53, 0x22, 0xaf, 0xa9, 0x38, 0xe1, 0x62, + 0x44, 0x64, 0xe4, 0x72, 0x05, 0x87, 0xd0, 0xc2, 0x6d, 0x97, 0x4b, 0xa9, 0xaf, 0x26, 0xc5, 0x61, + 0x0a, 0x47, 0xf0, 0xa5, 0xc5, 0x91, 0x98, 0x2c, 0xdd, 0xfd, 0xaa, 0x0f, 0x62, 0x23, 0x49, 0x38, + 0x2b, 0x3a, 0x80, 0x0d, 0xa9, 0x10, 0x66, 0x5a, 0x4e, 0xb7, 0xb2, 0x5b, 0xd9, 0xab, 0x44, 0x39, + 0x19, 0xfe, 0x42, 0x5d, 0x03, 0x0a, 0x75, 0x77, 0x69, 0xd9, 0x81, 0xcd, 0x8c, 0x4e, 0x9e, 0xd1, + 0x61, 0xc2, 0x50, 0x45, 0x25, 0x2a, 0x68, 0xbc, 0xe3, 0xd1, 0xc9, 0x31, 0x8b, 0xf3, 0x80, 0x6b, + 0x6a, 0xd6, 0xb2, 0xea, 0x9c, 0x65, 0xe1, 0xa7, 0x1e, 0x74, 0x1c, 0x03, 0xbe, 0x70, 0x09, 0x7f, + 0x04, 0xc1, 0x29, 0x95, 0x3d, 0xf2, 0xf6, 0x29, 0x8b, 0x7b, 0x68, 0x5e, 0x44, 0x27, 0xe1, 0x31, + 0x3c, 0x9c, 0x43, 0xb3, 0xb1, 0xe5, 0xa8, 0xb7, 0xc4, 0x51, 0xdf, 0x76, 0x34, 0x3c, 0x87, 0x96, + 0xad, 0x5a, 0x6d, 0xbc, 0x24, 0x36, 0x89, 0xf5, 0x93, 0x38, 0xd8, 0x87, 0x6a, 0xaa, 0xaa, 0xc2, + 0x47, 0xcb, 0x77, 0x16, 0x58, 0xde, 0xcb, 0x86, 0x47, 0x44, 0x92, 0x08, 0xd7, 0x85, 0x13, 0xe8, + 0x28, 0xbb, 0x2f, 0x29, 0x8b, 0x7b, 0xd9, 0x10, 0x4d, 0xda, 0x85, 0xa6, 0xe6, 0xea, 0x65, 0xc3, + 0xf2, 0x14, 0xb6, 0x20, 0xb5, 0xa2, 0x9f, 0x26, 0x94, 0x49, 0xbd, 0xc2, 0xd4, 0xa7, 0x05, 0xe9, + 0xda, 0x62, 0x71, 0x71, 0x11, 0xc1, 0xda, 0xd2, 0x74, 0xf8, 0xd7, 0x1a, 0x6c, 0x18, 0x23, 0x74, + 0x9d, 0xb1, 0xb8, 0xac, 0x4d, 0x4d, 0xe9, 0x5e, 0xd7, 0xbf, 0x2d, 0x6f, 0xf5, 0x9a, 0xb2, 0xcf, + 0xc5, 0x8a, 0x7b, 0x2e, 0xce, 0xd8, 0x54, 0x9d, 0xb7, 0x69, 0xc6, 0xaf, 0xda, 0xbc, 0x5f, 0xdf, + 0x80, 0xed, 0x0c, 0xfb, 0xf1, 0x45, 0x4a, 0xe4, 0x80, 0x8b, 0x91, 0xb9, 0xc7, 0xd4, 0xa2, 0x39, + 0x5c, 0x5d, 0x01, 0x34, 0x56, 0x9c, 0x07, 0xba, 0xe1, 0xcf, 0xa0, 0xaa, 0xfb, 0x6a, 0x24, 0x3f, + 0x17, 0x74, 0xeb, 0x77, 0x41, 0x6d, 0x5b, 0x96, 0x25, 0x9c, 0xe1, 0xbb, 0x48, 0xb7, 0x7f, 0x1b, + 0x52, 0x9e, 0x8f, 0xb2, 0xe1, 0x89, 0xe0, 0x23, 0x73, 0x8d, 0xcc, 0x49, 0xf4, 0x9c, 0x33, 0x49, + 0x99, 0x44, 0xde, 0xa6, 0xe6, 0xb5, 0x20, 0xc5, 0x6b, 0x48, 0xec, 0xfd, 0xad, 0x28, 0x27, 0x55, + 0xd7, 0x1f, 0x70, 0xd1, 0xa7, 0xd8, 0x49, 0xda, 0xbb, 0x15, 0xd5, 0xf5, 0x0b, 0x20, 0xd8, 0x86, + 0x4a, 0x46, 0x27, 0xd8, 0xee, 0x2b, 0x91, 0xfa, 0xe9, 0xe4, 0xb5, 0xe3, 0xe6, 0x75, 0xe6, 0x1c, + 0xda, 0xc6, 0xaf, 0xf6, 0x39, 0xf4, 0x14, 0x36, 0xf8, 0x58, 0x75, 0x89, 0xac, 0xfb, 0x00, 0xab, + 0xf3, 0xeb, 0xcb, 0xab, 0x73, 0xff, 0x85, 0x5e, 0x79, 0xcc, 0xa4, 0x78, 0x17, 0xe5, 0x7c, 0xc1, + 0x19, 0x74, 0xf8, 0x60, 0x90, 0x26, 0x8c, 0x5e, 0x4c, 0xb3, 0x6b, 0xbc, 0xe0, 0x05, 0x78, 0xc1, + 0x0b, 0x17, 0x88, 0x7a, 0xe1, 0xae, 0x8c, 0x66, 0x59, 0x77, 0x3e, 0x82, 0x96, 0xad, 0x46, 0xb9, + 0x7b, 0x43, 0xdf, 0x99, 0x4a, 0x54, 0x3f, 0xd5, 0x43, 0xe0, 0x96, 0xa4, 0x53, 0x7d, 0xd7, 0xd8, + 0x8c, 0x34, 0xf1, 0x91, 0xff, 0x5d, 0x2f, 0xfc, 0xb5, 0x07, 0x9d, 0x19, 0x05, 0x6a, 0xb5, 0x4c, + 0x64, 0x4a, 0x8d, 0x04, 0x4d, 0x04, 0x01, 0x54, 0x63, 0x9a, 0xf5, 0x4d, 0x21, 0xe3, 0x6f, 0x73, + 0x5c, 0x56, 0x8a, 0xa7, 0x44, 0x08, 0xad, 0xe4, 0xc5, 0xa5, 0x12, 0x74, 0xc9, 0xa7, 0x2c, 0x2e, + 0x86, 0x00, 0x16, 0xa6, 0x0a, 0x29, 0x79, 0x71, 0xf9, 0x8c, 0xc4, 0x43, 0xaa, 0x9f, 0xea, 0x35, + 0xb4, 0xc9, 0x05, 0xc3, 0x23, 0xd8, 0x7c, 0x99, 0x8c, 0xb3, 0x43, 0x3e, 0x1a, 0xa9, 0x4d, 0x14, + 0x53, 0xa9, 0xde, 0x31, 0x1e, 0x66, 0xdd, 0x50, 0xaa, 0x60, 0x62, 0x3a, 0x20, 0xd3, 0x54, 0xaa, + 0xa5, 0xf9, 0xf6, 0xb5, 0xa0, 0xf0, 0x4f, 0x1e, 0x74, 0xf4, 0x0b, 0xfc, 0x98, 0x49, 0x2a, 0x14, + 0x16, 0x1c, 0x40, 0x0d, 0xf7, 0x1a, 0x0a, 0x6b, 0x1e, 0xbc, 0xbf, 0xa8, 0x29, 0xe6, 0x13, 0x93, + 0x48, 0x2f, 0x0d, 0x7e, 0x0c, 0x4d, 0xca, 0xa4, 0x20, 0x4c, 0xe2, 0x93, 0xc3, 0x47, 0xce, 0x0f, + 0x97, 0x71, 0xba, 0x6f, 0xfe, 0xc8, 0x66, 0x55, 0xde, 0x17, 0xa7, 0x8c, 0xd5, 0x55, 0x5c, 0x30, + 0xfc, 0x63, 0x61, 0xf7, 0x19, 0x25, 0xb7, 0x74, 0x6d, 0xbb, 0x4f, 0x00, 0x52, 0x25, 0x40, 0xac, + 0x61, 0xb6, 0xc5, 0xb9, 0xa2, 0xd5, 0x9f, 0x7a, 0xf0, 0x40, 0x0b, 0x79, 0xce, 0x6e, 0x13, 0x49, + 0xe3, 0xb5, 0xed, 0xfe, 0x01, 0xd4, 0xf9, 0x78, 0x0d, 0x9b, 0x0d, 0x57, 0x70, 0x01, 0x9d, 0x44, + 0x9b, 0xa0, 0xc8, 0xe2, 0x7a, 0xb1, 0xba, 0xa0, 0x59, 0xf6, 0xf9, 0x08, 0x54, 0x17, 0x45, 0xe0, + 0xdf, 0x1e, 0x6c, 0x6b, 0x49, 0x3f, 0x49, 0xfa, 0x37, 0x9f, 0x63, 0x00, 0xce, 0x61, 0xeb, 0x06, + 0x2d, 0x58, 0xd3, 0xff, 0x19, 0xee, 0x15, 0xdd, 0xff, 0x95, 0x0f, 0xef, 0xe5, 0x05, 0x30, 0xe0, + 0x87, 0xd7, 0x84, 0x0d, 0x4d, 0x0c, 0x54, 0x4f, 0x45, 0x12, 0x5b, 0xbb, 0xbe, 0x3c, 0x59, 0xc8, + 0xff, 0xec, 0xef, 0x11, 0x34, 0x06, 0x09, 0x23, 0xa9, 0xf5, 0x56, 0x5e, 0x55, 0x44, 0xc9, 0xa8, + 0x4e, 0x85, 0xd1, 0xd4, 0xf4, 0x7d, 0x33, 0x4d, 0xcb, 0xe9, 0x32, 0x8b, 0xb5, 0x95, 0xb3, 0x18, + 0xfe, 0xd3, 0x83, 0x6d, 0x04, 0x0f, 0xf1, 0xf4, 0x58, 0xbf, 0x1c, 0x7e, 0x04, 0x1b, 0x66, 0xfa, + 0xf8, 0x5f, 0xc6, 0x27, 0x67, 0x53, 0x9d, 0x40, 0xcf, 0x42, 0xd7, 0x28, 0x06, 0x8b, 0x73, 0xc5, + 0x42, 0xf8, 0x83, 0x07, 0x8f, 0x0a, 0x27, 0xec, 0x3a, 0x50, 0x67, 0xbc, 0x21, 0xcb, 0x42, 0xb0, + 0xa1, 0x32, 0x3c, 0xfe, 0x3a, 0xbb, 0xa5, 0xb2, 0x4e, 0xf5, 0x84, 0xbf, 0xf3, 0xa0, 0xfb, 0x31, + 0x4f, 0x18, 0xae, 0x79, 0x3a, 0x1e, 0xa7, 0x66, 0xa8, 0xbd, 0x76, 0xbe, 0x7e, 0x08, 0x0d, 0xa2, + 0xc5, 0x30, 0x69, 0x1c, 0x59, 0x61, 0x74, 0x53, 0xf2, 0xe8, 0x7b, 0x23, 0xc9, 0x8a, 0x59, 0xbb, + 0xa1, 0xc2, 0xbf, 0x78, 0xd0, 0xb5, 0x0c, 0xbc, 0x10, 0xbc, 0x4f, 0xb3, 0xec, 0x73, 0x6c, 0x34, + 0x68, 0x68, 0x31, 0xc0, 0xa9, 0x45, 0x86, 0xb2, 0x1c, 0xa8, 0x3a, 0x0e, 0xdc, 0xc0, 0x03, 0x3d, + 0x2d, 0xb1, 0xbc, 0x50, 0xf7, 0x3a, 0x12, 0xeb, 0xcb, 0x98, 0x7e, 0x3d, 0xe4, 0xa4, 0x3b, 0xbe, + 0x32, 0xff, 0x4b, 0x94, 0xe3, 0xab, 0x27, 0x00, 0x24, 0x8e, 0x3f, 0xe1, 0x22, 0x4e, 0xd8, 0xd0, + 0x44, 0xca, 0x42, 0xc2, 0x8f, 0xa1, 0xa5, 0x6e, 0x96, 0x2f, 0xad, 0xb9, 0xc7, 0x9d, 0x93, 0x19, + 0x7b, 0x66, 0xe2, 0xbb, 0x33, 0x93, 0x90, 0xc0, 0xce, 0x9c, 0xe1, 0x4f, 0xe3, 0xd8, 0x84, 0xfe, + 0x50, 0xcf, 0x74, 0x72, 0x4d, 0x26, 0x03, 0x8b, 0x1e, 0x5c, 0xb6, 0x41, 0x91, 0xc3, 0x14, 0x52, + 0x78, 0x32, 0xa7, 0xc2, 0xcd, 0xf0, 0xbd, 0xa8, 0xf9, 0xbd, 0x07, 0x1d, 0xa3, 0xa7, 0xb0, 0xff, + 0x3b, 0x50, 0xd7, 0x33, 0x52, 0x23, 0xf2, 0x2b, 0x0b, 0x45, 0xe6, 0xb3, 0xdd, 0xc8, 0x2c, 0x9e, + 0xef, 0x06, 0xfe, 0x82, 0x6e, 0x10, 0x7c, 0x6f, 0x66, 0x7b, 0xae, 0xb0, 0x15, 0xf2, 0x9d, 0xf9, + 0xd3, 0xbc, 0x5c, 0x8e, 0x68, 0x4a, 0xe5, 0x7d, 0x46, 0xe1, 0x15, 0x6c, 0xe1, 0xc0, 0xf6, 0x9e, + 0x73, 0xf8, 0x09, 0x6c, 0xa3, 0xd8, 0x7b, 0xb7, 0xf7, 0x67, 0xf0, 0x5e, 0x99, 0x00, 0xbb, 0xa5, + 0xde, 0x8b, 0xf4, 0x6f, 0xc2, 0xc3, 0x4b, 0x9a, 0x0e, 0x94, 0xec, 0x57, 0xe3, 0xb8, 0x38, 0xab, + 0x96, 0x8c, 0x5c, 0xae, 0xea, 0xf8, 0x87, 0xe3, 0xb7, 0xff, 0x13, 0x00, 0x00, 0xff, 0xff, 0x05, + 0xba, 0x65, 0x5f, 0x83, 0x1c, 0x00, 0x00, } diff --git a/pkg/proto/sdk_ws/ws.proto b/pkg/proto/sdk_ws/ws.proto index 8c6c11018..919596ddb 100644 --- a/pkg/proto/sdk_ws/ws.proto +++ b/pkg/proto/sdk_ws/ws.proto @@ -90,11 +90,11 @@ message FriendRequest{ string fromUserID = 1; string fromNickname = 2; string fromFaceURL = 3; - string fromGender = 4; + int32 fromGender = 4; string toUserID = 5; string toNickname = 6; string toFaceURL = 7; - string toGender = 8; + int32 toGender = 8; int32 handleResult = 9; string reqMsg = 10; uint32 createTime = 11; From e4b6b18712ecec51069441cbf2c3c98a452bd411 Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Fri, 14 Jan 2022 18:33:06 +0800 Subject: [PATCH 492/814] Refactor code --- internal/rpc/friend/firend.go | 29 +++- pkg/proto/sdk_ws/ws.pb.go | 250 +++++++++++++++++----------------- 2 files changed, 153 insertions(+), 126 deletions(-) diff --git a/internal/rpc/friend/firend.go b/internal/rpc/friend/firend.go index 4d54787e9..e7f2cf217 100644 --- a/internal/rpc/friend/firend.go +++ b/internal/rpc/friend/firend.go @@ -449,7 +449,16 @@ func (s *friendServer) GetFriendApplyList(ctx context.Context, req *pbFriend.Get } userInfo.FromNickname = u.Nickname userInfo.FromFaceURL = u.FaceURL - userInfo.FromGender = u.Gend + userInfo.FromGender = u.Gender + + u, err = imdb.GetUserByUserID(userInfo.ToUserID) + if err != nil { + log.Error(req.CommID.OperationID, "GetUserByUserID", userInfo.ToUserID) + continue + } + userInfo.ToNickname = u.Nickname + userInfo.ToFaceURL = u.FaceURL + userInfo.ToGender = u.Gender appleUserList = append(appleUserList, &userInfo) } @@ -475,6 +484,24 @@ func (s *friendServer) GetSelfApplyList(ctx context.Context, req *pbFriend.GetSe for _, selfApplyOtherUserInfo := range usersInfo { var userInfo sdkws.FriendRequest // pbFriend.ApplyUserInfo cp.FriendRequestDBCopyOpenIM(&userInfo, &selfApplyOtherUserInfo) + u, err := imdb.GetUserByUserID(userInfo.FromUserID) + if err != nil { + log.Error(req.CommID.OperationID, "GetUserByUserID", userInfo.FromUserID) + continue + } + userInfo.FromNickname = u.Nickname + userInfo.FromFaceURL = u.FaceURL + userInfo.FromGender = u.Gender + + u, err = imdb.GetUserByUserID(userInfo.ToUserID) + if err != nil { + log.Error(req.CommID.OperationID, "GetUserByUserID", userInfo.ToUserID) + continue + } + userInfo.ToNickname = u.Nickname + userInfo.ToFaceURL = u.FaceURL + userInfo.ToGender = u.Gender + selfApplyOtherUserList = append(selfApplyOtherUserList, &userInfo) } log.NewInfo(req.CommID.OperationID, "rpc GetSelfApplyList ok", pbFriend.GetSelfApplyListResp{FriendRequestList: selfApplyOtherUserList}) diff --git a/pkg/proto/sdk_ws/ws.pb.go b/pkg/proto/sdk_ws/ws.pb.go index 9ebfd30df..a785dab20 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_f24e0416269be717, []int{0} + return fileDescriptor_ws_1bc577ef51df0a70, []int{0} } func (m *GroupInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupInfo.Unmarshal(m, b) @@ -164,7 +164,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_f24e0416269be717, []int{1} + return fileDescriptor_ws_1bc577ef51df0a70, []int{1} } func (m *GroupMemberFullInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupMemberFullInfo.Unmarshal(m, b) @@ -269,7 +269,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_f24e0416269be717, []int{2} + return fileDescriptor_ws_1bc577ef51df0a70, []int{2} } func (m *PublicUserInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_PublicUserInfo.Unmarshal(m, b) @@ -344,7 +344,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_f24e0416269be717, []int{3} + return fileDescriptor_ws_1bc577ef51df0a70, []int{3} } func (m *UserInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_UserInfo.Unmarshal(m, b) @@ -451,7 +451,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_f24e0416269be717, []int{4} + return fileDescriptor_ws_1bc577ef51df0a70, []int{4} } func (m *FriendInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FriendInfo.Unmarshal(m, b) @@ -536,7 +536,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_f24e0416269be717, []int{5} + return fileDescriptor_ws_1bc577ef51df0a70, []int{5} } func (m *BlackInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_BlackInfo.Unmarshal(m, b) @@ -617,7 +617,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_f24e0416269be717, []int{6} + return fileDescriptor_ws_1bc577ef51df0a70, []int{6} } func (m *GroupRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupRequest.Unmarshal(m, b) @@ -704,11 +704,11 @@ type FriendRequest struct { FromUserID string `protobuf:"bytes,1,opt,name=fromUserID" json:"fromUserID,omitempty"` FromNickname string `protobuf:"bytes,2,opt,name=fromNickname" json:"fromNickname,omitempty"` FromFaceURL string `protobuf:"bytes,3,opt,name=fromFaceURL" json:"fromFaceURL,omitempty"` - FromGender string `protobuf:"bytes,4,opt,name=fromGender" json:"fromGender,omitempty"` + FromGender int32 `protobuf:"varint,4,opt,name=fromGender" json:"fromGender,omitempty"` ToUserID string `protobuf:"bytes,5,opt,name=toUserID" json:"toUserID,omitempty"` ToNickname string `protobuf:"bytes,6,opt,name=toNickname" json:"toNickname,omitempty"` ToFaceURL string `protobuf:"bytes,7,opt,name=toFaceURL" json:"toFaceURL,omitempty"` - ToGender string `protobuf:"bytes,8,opt,name=toGender" json:"toGender,omitempty"` + ToGender int32 `protobuf:"varint,8,opt,name=toGender" json:"toGender,omitempty"` HandleResult int32 `protobuf:"varint,9,opt,name=handleResult" json:"handleResult,omitempty"` ReqMsg string `protobuf:"bytes,10,opt,name=reqMsg" json:"reqMsg,omitempty"` CreateTime uint32 `protobuf:"varint,11,opt,name=createTime" json:"createTime,omitempty"` @@ -725,7 +725,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_f24e0416269be717, []int{7} + return fileDescriptor_ws_1bc577ef51df0a70, []int{7} } func (m *FriendRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FriendRequest.Unmarshal(m, b) @@ -766,11 +766,11 @@ func (m *FriendRequest) GetFromFaceURL() string { return "" } -func (m *FriendRequest) GetFromGender() string { +func (m *FriendRequest) GetFromGender() int32 { if m != nil { return m.FromGender } - return "" + return 0 } func (m *FriendRequest) GetToUserID() string { @@ -794,11 +794,11 @@ func (m *FriendRequest) GetToFaceURL() string { return "" } -func (m *FriendRequest) GetToGender() string { +func (m *FriendRequest) GetToGender() int32 { if m != nil { return m.ToGender } - return "" + return 0 } func (m *FriendRequest) GetHandleResult() int32 { @@ -866,7 +866,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_f24e0416269be717, []int{8} + return fileDescriptor_ws_1bc577ef51df0a70, []int{8} } func (m *PullMessageBySeqListResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_PullMessageBySeqListResp.Unmarshal(m, b) @@ -941,7 +941,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_f24e0416269be717, []int{9} + return fileDescriptor_ws_1bc577ef51df0a70, []int{9} } func (m *PullMessageBySeqListReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_PullMessageBySeqListReq.Unmarshal(m, b) @@ -996,7 +996,7 @@ func (m *PullMessageReq) Reset() { *m = PullMessageReq{} } func (m *PullMessageReq) String() string { return proto.CompactTextString(m) } func (*PullMessageReq) ProtoMessage() {} func (*PullMessageReq) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_f24e0416269be717, []int{10} + return fileDescriptor_ws_1bc577ef51df0a70, []int{10} } func (m *PullMessageReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_PullMessageReq.Unmarshal(m, b) @@ -1060,7 +1060,7 @@ func (m *PullMessageResp) Reset() { *m = PullMessageResp{} } func (m *PullMessageResp) String() string { return proto.CompactTextString(m) } func (*PullMessageResp) ProtoMessage() {} func (*PullMessageResp) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_f24e0416269be717, []int{11} + return fileDescriptor_ws_1bc577ef51df0a70, []int{11} } func (m *PullMessageResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_PullMessageResp.Unmarshal(m, b) @@ -1132,7 +1132,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_f24e0416269be717, []int{12} + return fileDescriptor_ws_1bc577ef51df0a70, []int{12} } func (m *GetMaxAndMinSeqReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetMaxAndMinSeqReq.Unmarshal(m, b) @@ -1164,7 +1164,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_f24e0416269be717, []int{13} + return fileDescriptor_ws_1bc577ef51df0a70, []int{13} } func (m *GetMaxAndMinSeqResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetMaxAndMinSeqResp.Unmarshal(m, b) @@ -1212,7 +1212,7 @@ func (m *GatherFormat) Reset() { *m = GatherFormat{} } func (m *GatherFormat) String() string { return proto.CompactTextString(m) } func (*GatherFormat) ProtoMessage() {} func (*GatherFormat) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_f24e0416269be717, []int{14} + return fileDescriptor_ws_1bc577ef51df0a70, []int{14} } func (m *GatherFormat) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GatherFormat.Unmarshal(m, b) @@ -1259,7 +1259,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_f24e0416269be717, []int{15} + return fileDescriptor_ws_1bc577ef51df0a70, []int{15} } func (m *UserSendMsgResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_UserSendMsgResp.Unmarshal(m, b) @@ -1328,7 +1328,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_f24e0416269be717, []int{16} + return fileDescriptor_ws_1bc577ef51df0a70, []int{16} } func (m *MsgData) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MsgData.Unmarshal(m, b) @@ -1489,7 +1489,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_f24e0416269be717, []int{17} + return fileDescriptor_ws_1bc577ef51df0a70, []int{17} } func (m *OfflinePushInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_OfflinePushInfo.Unmarshal(m, b) @@ -1556,7 +1556,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_f24e0416269be717, []int{18} + return fileDescriptor_ws_1bc577ef51df0a70, []int{18} } func (m *TipsComm) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_TipsComm.Unmarshal(m, b) @@ -1605,7 +1605,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_f24e0416269be717, []int{19} + return fileDescriptor_ws_1bc577ef51df0a70, []int{19} } func (m *MemberEnterTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MemberEnterTips.Unmarshal(m, b) @@ -1660,7 +1660,7 @@ func (m *MemberLeaveTips) Reset() { *m = MemberLeaveTips{} } func (m *MemberLeaveTips) String() string { return proto.CompactTextString(m) } func (*MemberLeaveTips) ProtoMessage() {} func (*MemberLeaveTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_f24e0416269be717, []int{20} + return fileDescriptor_ws_1bc577ef51df0a70, []int{20} } func (m *MemberLeaveTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MemberLeaveTips.Unmarshal(m, b) @@ -1715,7 +1715,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_f24e0416269be717, []int{21} + return fileDescriptor_ws_1bc577ef51df0a70, []int{21} } func (m *MemberInvitedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MemberInvitedTips.Unmarshal(m, b) @@ -1777,7 +1777,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_f24e0416269be717, []int{22} + return fileDescriptor_ws_1bc577ef51df0a70, []int{22} } func (m *MemberKickedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MemberKickedTips.Unmarshal(m, b) @@ -1840,7 +1840,7 @@ func (m *MemberInfoChangedTips) Reset() { *m = MemberInfoChangedTips{} } func (m *MemberInfoChangedTips) String() string { return proto.CompactTextString(m) } func (*MemberInfoChangedTips) ProtoMessage() {} func (*MemberInfoChangedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_f24e0416269be717, []int{23} + return fileDescriptor_ws_1bc577ef51df0a70, []int{23} } func (m *MemberInfoChangedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MemberInfoChangedTips.Unmarshal(m, b) @@ -1909,7 +1909,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_f24e0416269be717, []int{24} + return fileDescriptor_ws_1bc577ef51df0a70, []int{24} } func (m *GroupCreatedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupCreatedTips.Unmarshal(m, b) @@ -1970,7 +1970,7 @@ func (m *GroupInfoChangedTips) Reset() { *m = GroupInfoChangedTips{} } func (m *GroupInfoChangedTips) String() string { return proto.CompactTextString(m) } func (*GroupInfoChangedTips) ProtoMessage() {} func (*GroupInfoChangedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_f24e0416269be717, []int{25} + return fileDescriptor_ws_1bc577ef51df0a70, []int{25} } func (m *GroupInfoChangedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupInfoChangedTips.Unmarshal(m, b) @@ -2024,7 +2024,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_f24e0416269be717, []int{26} + return fileDescriptor_ws_1bc577ef51df0a70, []int{26} } func (m *JoinGroupApplicationTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_JoinGroupApplicationTips.Unmarshal(m, b) @@ -2079,7 +2079,7 @@ func (m *ApplicationProcessedTips) Reset() { *m = ApplicationProcessedTi func (m *ApplicationProcessedTips) String() string { return proto.CompactTextString(m) } func (*ApplicationProcessedTips) ProtoMessage() {} func (*ApplicationProcessedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_f24e0416269be717, []int{27} + return fileDescriptor_ws_1bc577ef51df0a70, []int{27} } func (m *ApplicationProcessedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ApplicationProcessedTips.Unmarshal(m, b) @@ -2140,7 +2140,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_f24e0416269be717, []int{28} + return fileDescriptor_ws_1bc577ef51df0a70, []int{28} } func (m *FriendApplication) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FriendApplication.Unmarshal(m, b) @@ -2193,7 +2193,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_f24e0416269be717, []int{29} + return fileDescriptor_ws_1bc577ef51df0a70, []int{29} } func (m *FromToUserID) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FromToUserID.Unmarshal(m, b) @@ -2239,7 +2239,7 @@ func (m *FriendApplicationAddedTips) Reset() { *m = FriendApplicationAdd func (m *FriendApplicationAddedTips) String() string { return proto.CompactTextString(m) } func (*FriendApplicationAddedTips) ProtoMessage() {} func (*FriendApplicationAddedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_f24e0416269be717, []int{30} + return fileDescriptor_ws_1bc577ef51df0a70, []int{30} } func (m *FriendApplicationAddedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FriendApplicationAddedTips.Unmarshal(m, b) @@ -2278,7 +2278,7 @@ func (m *FriendApplicationProcessedTips) Reset() { *m = FriendApplicatio func (m *FriendApplicationProcessedTips) String() string { return proto.CompactTextString(m) } func (*FriendApplicationProcessedTips) ProtoMessage() {} func (*FriendApplicationProcessedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_f24e0416269be717, []int{31} + return fileDescriptor_ws_1bc577ef51df0a70, []int{31} } func (m *FriendApplicationProcessedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FriendApplicationProcessedTips.Unmarshal(m, b) @@ -2319,7 +2319,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_f24e0416269be717, []int{32} + return fileDescriptor_ws_1bc577ef51df0a70, []int{32} } func (m *FriendAddedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FriendAddedTips.Unmarshal(m, b) @@ -2372,7 +2372,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_f24e0416269be717, []int{33} + return fileDescriptor_ws_1bc577ef51df0a70, []int{33} } func (m *FriendDeletedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FriendDeletedTips.Unmarshal(m, b) @@ -2410,7 +2410,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_f24e0416269be717, []int{34} + return fileDescriptor_ws_1bc577ef51df0a70, []int{34} } func (m *BlackAddedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_BlackAddedTips.Unmarshal(m, b) @@ -2448,7 +2448,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_f24e0416269be717, []int{35} + return fileDescriptor_ws_1bc577ef51df0a70, []int{35} } func (m *BlackDeletedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_BlackDeletedTips.Unmarshal(m, b) @@ -2486,7 +2486,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_f24e0416269be717, []int{36} + return fileDescriptor_ws_1bc577ef51df0a70, []int{36} } func (m *FriendInfoChangedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FriendInfoChangedTips.Unmarshal(m, b) @@ -2525,7 +2525,7 @@ func (m *SelfInfoUpdatedTips) Reset() { *m = SelfInfoUpdatedTips{} } func (m *SelfInfoUpdatedTips) String() string { return proto.CompactTextString(m) } func (*SelfInfoUpdatedTips) ProtoMessage() {} func (*SelfInfoUpdatedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_f24e0416269be717, []int{37} + return fileDescriptor_ws_1bc577ef51df0a70, []int{37} } func (m *SelfInfoUpdatedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SelfInfoUpdatedTips.Unmarshal(m, b) @@ -2594,10 +2594,10 @@ func init() { proto.RegisterType((*SelfInfoUpdatedTips)(nil), "server_api_params.SelfInfoUpdatedTips") } -func init() { proto.RegisterFile("sdk_ws/ws.proto", fileDescriptor_ws_f24e0416269be717) } +func init() { proto.RegisterFile("sdk_ws/ws.proto", fileDescriptor_ws_1bc577ef51df0a70) } -var fileDescriptor_ws_f24e0416269be717 = []byte{ - // 1991 bytes of a gzipped FileDescriptorProto +var fileDescriptor_ws_1bc577ef51df0a70 = []byte{ + // 1989 bytes of a gzipped FileDescriptorProto 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe4, 0x59, 0xcd, 0x6f, 0x23, 0x49, 0x15, 0x57, 0xb7, 0x3f, 0x12, 0x3f, 0xdb, 0x71, 0xa6, 0x67, 0x76, 0xb0, 0xc2, 0x32, 0x84, 0xd6, 0x6a, 0x89, 0x90, 0x08, 0x52, 0x10, 0x12, 0x2c, 0x12, 0x30, 0x93, 0x2f, 0x66, 0x89, 0x33, 0x51, @@ -2645,82 +2645,82 @@ var fileDescriptor_ws_f24e0416269be717 = []byte{ 0xf5, 0x6e, 0xc8, 0xc9, 0x52, 0xa7, 0x71, 0x76, 0xc3, 0xd6, 0x59, 0x66, 0x46, 0xd3, 0x28, 0x40, 0x1f, 0x23, 0x16, 0x32, 0x7b, 0x8a, 0x84, 0x7f, 0xab, 0x40, 0x5b, 0x57, 0x7d, 0x1e, 0x8b, 0x27, 0xaa, 0x3c, 0xf9, 0xc8, 0x49, 0xbe, 0x85, 0x28, 0x2b, 0x14, 0x75, 0xee, 0xf6, 0x07, 0x07, 0x53, - 0x15, 0xa4, 0xe8, 0x13, 0xa7, 0x4f, 0xd8, 0x50, 0xae, 0xe5, 0xb4, 0xec, 0x17, 0x46, 0x8b, 0x46, - 0x54, 0x07, 0x92, 0xdc, 0x49, 0x6a, 0x41, 0x2b, 0x5e, 0xc9, 0x0b, 0xfd, 0x3a, 0xad, 0x16, 0xa2, - 0xe2, 0x2b, 0x79, 0xae, 0x5b, 0x07, 0xa9, 0x04, 0xb4, 0x64, 0xa3, 0x77, 0x33, 0x97, 0x6c, 0xb4, - 0xce, 0x66, 0xb5, 0x81, 0x15, 0xb7, 0x2c, 0xab, 0xe0, 0x64, 0xd5, 0xdd, 0x13, 0xcd, 0xb9, 0x3d, - 0xf1, 0x01, 0xb4, 0xb5, 0x9c, 0xbc, 0x56, 0x5b, 0xfa, 0x5c, 0x76, 0x40, 0xb7, 0x36, 0xda, 0xb3, - 0xb5, 0xe1, 0x66, 0x77, 0x6b, 0x49, 0x76, 0x3b, 0x76, 0xa1, 0x77, 0x2f, 0xa6, 0x69, 0xda, 0xa3, - 0x59, 0x46, 0x86, 0xf4, 0xd9, 0xbb, 0x4b, 0x3a, 0x39, 0x4b, 0x32, 0x19, 0xd1, 0x6c, 0xac, 0x0a, - 0x8d, 0x0a, 0x71, 0xc8, 0x63, 0x8a, 0x59, 0xae, 0x45, 0x39, 0xa9, 0x5c, 0xa4, 0x42, 0x28, 0x0b, - 0x4c, 0x67, 0xd3, 0x94, 0xc2, 0x47, 0xe4, 0xed, 0x25, 0x9d, 0x60, 0x46, 0x2b, 0x91, 0xa1, 0x10, - 0x4f, 0x98, 0xc2, 0xab, 0x06, 0x47, 0x2a, 0x38, 0x86, 0x76, 0x96, 0xb0, 0xa1, 0x2e, 0x4e, 0x5d, - 0xec, 0x95, 0xbd, 0xe6, 0xc1, 0x57, 0x17, 0xb4, 0x81, 0x53, 0x22, 0xaf, 0xa9, 0x38, 0xe1, 0x62, - 0x44, 0x64, 0xe4, 0x72, 0x05, 0x87, 0xd0, 0xc2, 0x6d, 0x97, 0x4b, 0xa9, 0xaf, 0x26, 0xc5, 0x61, - 0x0a, 0x47, 0xf0, 0xa5, 0xc5, 0x91, 0x98, 0x2c, 0xdd, 0xfd, 0xaa, 0x0f, 0x62, 0x23, 0x49, 0x38, - 0x2b, 0x3a, 0x80, 0x0d, 0xa9, 0x10, 0x66, 0x5a, 0x4e, 0xb7, 0xb2, 0x5b, 0xd9, 0xab, 0x44, 0x39, - 0x19, 0xfe, 0x42, 0x5d, 0x03, 0x0a, 0x75, 0x77, 0x69, 0xd9, 0x81, 0xcd, 0x8c, 0x4e, 0x9e, 0xd1, - 0x61, 0xc2, 0x50, 0x45, 0x25, 0x2a, 0x68, 0xbc, 0xe3, 0xd1, 0xc9, 0x31, 0x8b, 0xf3, 0x80, 0x6b, - 0x6a, 0xd6, 0xb2, 0xea, 0x9c, 0x65, 0xe1, 0xa7, 0x1e, 0x74, 0x1c, 0x03, 0xbe, 0x70, 0x09, 0x7f, - 0x04, 0xc1, 0x29, 0x95, 0x3d, 0xf2, 0xf6, 0x29, 0x8b, 0x7b, 0x68, 0x5e, 0x44, 0x27, 0xe1, 0x31, - 0x3c, 0x9c, 0x43, 0xb3, 0xb1, 0xe5, 0xa8, 0xb7, 0xc4, 0x51, 0xdf, 0x76, 0x34, 0x3c, 0x87, 0x96, - 0xad, 0x5a, 0x6d, 0xbc, 0x24, 0x36, 0x89, 0xf5, 0x93, 0x38, 0xd8, 0x87, 0x6a, 0xaa, 0xaa, 0xc2, - 0x47, 0xcb, 0x77, 0x16, 0x58, 0xde, 0xcb, 0x86, 0x47, 0x44, 0x92, 0x08, 0xd7, 0x85, 0x13, 0xe8, - 0x28, 0xbb, 0x2f, 0x29, 0x8b, 0x7b, 0xd9, 0x10, 0x4d, 0xda, 0x85, 0xa6, 0xe6, 0xea, 0x65, 0xc3, - 0xf2, 0x14, 0xb6, 0x20, 0xb5, 0xa2, 0x9f, 0x26, 0x94, 0x49, 0xbd, 0xc2, 0xd4, 0xa7, 0x05, 0xe9, - 0xda, 0x62, 0x71, 0x71, 0x11, 0xc1, 0xda, 0xd2, 0x74, 0xf8, 0xd7, 0x1a, 0x6c, 0x18, 0x23, 0x74, - 0x9d, 0xb1, 0xb8, 0xac, 0x4d, 0x4d, 0xe9, 0x5e, 0xd7, 0xbf, 0x2d, 0x6f, 0xf5, 0x9a, 0xb2, 0xcf, - 0xc5, 0x8a, 0x7b, 0x2e, 0xce, 0xd8, 0x54, 0x9d, 0xb7, 0x69, 0xc6, 0xaf, 0xda, 0xbc, 0x5f, 0xdf, - 0x80, 0xed, 0x0c, 0xfb, 0xf1, 0x45, 0x4a, 0xe4, 0x80, 0x8b, 0x91, 0xb9, 0xc7, 0xd4, 0xa2, 0x39, - 0x5c, 0x5d, 0x01, 0x34, 0x56, 0x9c, 0x07, 0xba, 0xe1, 0xcf, 0xa0, 0xaa, 0xfb, 0x6a, 0x24, 0x3f, - 0x17, 0x74, 0xeb, 0x77, 0x41, 0x6d, 0x5b, 0x96, 0x25, 0x9c, 0xe1, 0xbb, 0x48, 0xb7, 0x7f, 0x1b, - 0x52, 0x9e, 0x8f, 0xb2, 0xe1, 0x89, 0xe0, 0x23, 0x73, 0x8d, 0xcc, 0x49, 0xf4, 0x9c, 0x33, 0x49, - 0x99, 0x44, 0xde, 0xa6, 0xe6, 0xb5, 0x20, 0xc5, 0x6b, 0x48, 0xec, 0xfd, 0xad, 0x28, 0x27, 0x55, - 0xd7, 0x1f, 0x70, 0xd1, 0xa7, 0xd8, 0x49, 0xda, 0xbb, 0x15, 0xd5, 0xf5, 0x0b, 0x20, 0xd8, 0x86, - 0x4a, 0x46, 0x27, 0xd8, 0xee, 0x2b, 0x91, 0xfa, 0xe9, 0xe4, 0xb5, 0xe3, 0xe6, 0x75, 0xe6, 0x1c, - 0xda, 0xc6, 0xaf, 0xf6, 0x39, 0xf4, 0x14, 0x36, 0xf8, 0x58, 0x75, 0x89, 0xac, 0xfb, 0x00, 0xab, - 0xf3, 0xeb, 0xcb, 0xab, 0x73, 0xff, 0x85, 0x5e, 0x79, 0xcc, 0xa4, 0x78, 0x17, 0xe5, 0x7c, 0xc1, - 0x19, 0x74, 0xf8, 0x60, 0x90, 0x26, 0x8c, 0x5e, 0x4c, 0xb3, 0x6b, 0xbc, 0xe0, 0x05, 0x78, 0xc1, - 0x0b, 0x17, 0x88, 0x7a, 0xe1, 0xae, 0x8c, 0x66, 0x59, 0x77, 0x3e, 0x82, 0x96, 0xad, 0x46, 0xb9, - 0x7b, 0x43, 0xdf, 0x99, 0x4a, 0x54, 0x3f, 0xd5, 0x43, 0xe0, 0x96, 0xa4, 0x53, 0x7d, 0xd7, 0xd8, - 0x8c, 0x34, 0xf1, 0x91, 0xff, 0x5d, 0x2f, 0xfc, 0xb5, 0x07, 0x9d, 0x19, 0x05, 0x6a, 0xb5, 0x4c, - 0x64, 0x4a, 0x8d, 0x04, 0x4d, 0x04, 0x01, 0x54, 0x63, 0x9a, 0xf5, 0x4d, 0x21, 0xe3, 0x6f, 0x73, - 0x5c, 0x56, 0x8a, 0xa7, 0x44, 0x08, 0xad, 0xe4, 0xc5, 0xa5, 0x12, 0x74, 0xc9, 0xa7, 0x2c, 0x2e, - 0x86, 0x00, 0x16, 0xa6, 0x0a, 0x29, 0x79, 0x71, 0xf9, 0x8c, 0xc4, 0x43, 0xaa, 0x9f, 0xea, 0x35, - 0xb4, 0xc9, 0x05, 0xc3, 0x23, 0xd8, 0x7c, 0x99, 0x8c, 0xb3, 0x43, 0x3e, 0x1a, 0xa9, 0x4d, 0x14, - 0x53, 0xa9, 0xde, 0x31, 0x1e, 0x66, 0xdd, 0x50, 0xaa, 0x60, 0x62, 0x3a, 0x20, 0xd3, 0x54, 0xaa, - 0xa5, 0xf9, 0xf6, 0xb5, 0xa0, 0xf0, 0x4f, 0x1e, 0x74, 0xf4, 0x0b, 0xfc, 0x98, 0x49, 0x2a, 0x14, - 0x16, 0x1c, 0x40, 0x0d, 0xf7, 0x1a, 0x0a, 0x6b, 0x1e, 0xbc, 0xbf, 0xa8, 0x29, 0xe6, 0x13, 0x93, - 0x48, 0x2f, 0x0d, 0x7e, 0x0c, 0x4d, 0xca, 0xa4, 0x20, 0x4c, 0xe2, 0x93, 0xc3, 0x47, 0xce, 0x0f, - 0x97, 0x71, 0xba, 0x6f, 0xfe, 0xc8, 0x66, 0x55, 0xde, 0x17, 0xa7, 0x8c, 0xd5, 0x55, 0x5c, 0x30, - 0xfc, 0x63, 0x61, 0xf7, 0x19, 0x25, 0xb7, 0x74, 0x6d, 0xbb, 0x4f, 0x00, 0x52, 0x25, 0x40, 0xac, - 0x61, 0xb6, 0xc5, 0xb9, 0xa2, 0xd5, 0x9f, 0x7a, 0xf0, 0x40, 0x0b, 0x79, 0xce, 0x6e, 0x13, 0x49, - 0xe3, 0xb5, 0xed, 0xfe, 0x01, 0xd4, 0xf9, 0x78, 0x0d, 0x9b, 0x0d, 0x57, 0x70, 0x01, 0x9d, 0x44, - 0x9b, 0xa0, 0xc8, 0xe2, 0x7a, 0xb1, 0xba, 0xa0, 0x59, 0xf6, 0xf9, 0x08, 0x54, 0x17, 0x45, 0xe0, - 0xdf, 0x1e, 0x6c, 0x6b, 0x49, 0x3f, 0x49, 0xfa, 0x37, 0x9f, 0x63, 0x00, 0xce, 0x61, 0xeb, 0x06, - 0x2d, 0x58, 0xd3, 0xff, 0x19, 0xee, 0x15, 0xdd, 0xff, 0x95, 0x0f, 0xef, 0xe5, 0x05, 0x30, 0xe0, - 0x87, 0xd7, 0x84, 0x0d, 0x4d, 0x0c, 0x54, 0x4f, 0x45, 0x12, 0x5b, 0xbb, 0xbe, 0x3c, 0x59, 0xc8, - 0xff, 0xec, 0xef, 0x11, 0x34, 0x06, 0x09, 0x23, 0xa9, 0xf5, 0x56, 0x5e, 0x55, 0x44, 0xc9, 0xa8, - 0x4e, 0x85, 0xd1, 0xd4, 0xf4, 0x7d, 0x33, 0x4d, 0xcb, 0xe9, 0x32, 0x8b, 0xb5, 0x95, 0xb3, 0x18, - 0xfe, 0xd3, 0x83, 0x6d, 0x04, 0x0f, 0xf1, 0xf4, 0x58, 0xbf, 0x1c, 0x7e, 0x04, 0x1b, 0x66, 0xfa, - 0xf8, 0x5f, 0xc6, 0x27, 0x67, 0x53, 0x9d, 0x40, 0xcf, 0x42, 0xd7, 0x28, 0x06, 0x8b, 0x73, 0xc5, - 0x42, 0xf8, 0x83, 0x07, 0x8f, 0x0a, 0x27, 0xec, 0x3a, 0x50, 0x67, 0xbc, 0x21, 0xcb, 0x42, 0xb0, - 0xa1, 0x32, 0x3c, 0xfe, 0x3a, 0xbb, 0xa5, 0xb2, 0x4e, 0xf5, 0x84, 0xbf, 0xf3, 0xa0, 0xfb, 0x31, - 0x4f, 0x18, 0xae, 0x79, 0x3a, 0x1e, 0xa7, 0x66, 0xa8, 0xbd, 0x76, 0xbe, 0x7e, 0x08, 0x0d, 0xa2, - 0xc5, 0x30, 0x69, 0x1c, 0x59, 0x61, 0x74, 0x53, 0xf2, 0xe8, 0x7b, 0x23, 0xc9, 0x8a, 0x59, 0xbb, - 0xa1, 0xc2, 0xbf, 0x78, 0xd0, 0xb5, 0x0c, 0xbc, 0x10, 0xbc, 0x4f, 0xb3, 0xec, 0x73, 0x6c, 0x34, - 0x68, 0x68, 0x31, 0xc0, 0xa9, 0x45, 0x86, 0xb2, 0x1c, 0xa8, 0x3a, 0x0e, 0xdc, 0xc0, 0x03, 0x3d, - 0x2d, 0xb1, 0xbc, 0x50, 0xf7, 0x3a, 0x12, 0xeb, 0xcb, 0x98, 0x7e, 0x3d, 0xe4, 0xa4, 0x3b, 0xbe, - 0x32, 0xff, 0x4b, 0x94, 0xe3, 0xab, 0x27, 0x00, 0x24, 0x8e, 0x3f, 0xe1, 0x22, 0x4e, 0xd8, 0xd0, - 0x44, 0xca, 0x42, 0xc2, 0x8f, 0xa1, 0xa5, 0x6e, 0x96, 0x2f, 0xad, 0xb9, 0xc7, 0x9d, 0x93, 0x19, - 0x7b, 0x66, 0xe2, 0xbb, 0x33, 0x93, 0x90, 0xc0, 0xce, 0x9c, 0xe1, 0x4f, 0xe3, 0xd8, 0x84, 0xfe, - 0x50, 0xcf, 0x74, 0x72, 0x4d, 0x26, 0x03, 0x8b, 0x1e, 0x5c, 0xb6, 0x41, 0x91, 0xc3, 0x14, 0x52, - 0x78, 0x32, 0xa7, 0xc2, 0xcd, 0xf0, 0xbd, 0xa8, 0xf9, 0xbd, 0x07, 0x1d, 0xa3, 0xa7, 0xb0, 0xff, - 0x3b, 0x50, 0xd7, 0x33, 0x52, 0x23, 0xf2, 0x2b, 0x0b, 0x45, 0xe6, 0xb3, 0xdd, 0xc8, 0x2c, 0x9e, - 0xef, 0x06, 0xfe, 0x82, 0x6e, 0x10, 0x7c, 0x6f, 0x66, 0x7b, 0xae, 0xb0, 0x15, 0xf2, 0x9d, 0xf9, - 0xd3, 0xbc, 0x5c, 0x8e, 0x68, 0x4a, 0xe5, 0x7d, 0x46, 0xe1, 0x15, 0x6c, 0xe1, 0xc0, 0xf6, 0x9e, - 0x73, 0xf8, 0x09, 0x6c, 0xa3, 0xd8, 0x7b, 0xb7, 0xf7, 0x67, 0xf0, 0x5e, 0x99, 0x00, 0xbb, 0xa5, - 0xde, 0x8b, 0xf4, 0x6f, 0xc2, 0xc3, 0x4b, 0x9a, 0x0e, 0x94, 0xec, 0x57, 0xe3, 0xb8, 0x38, 0xab, - 0x96, 0x8c, 0x5c, 0xae, 0xea, 0xf8, 0x87, 0xe3, 0xb7, 0xff, 0x13, 0x00, 0x00, 0xff, 0xff, 0x05, - 0xba, 0x65, 0x5f, 0x83, 0x1c, 0x00, 0x00, + 0x15, 0xa4, 0xe8, 0x13, 0xa7, 0x4f, 0xd8, 0x50, 0xae, 0xe5, 0xd4, 0xee, 0x17, 0x16, 0xa2, 0x3a, + 0x90, 0xe4, 0x4e, 0x52, 0x0b, 0x5a, 0xf1, 0x4a, 0x5e, 0xe8, 0xd7, 0x69, 0xb5, 0x10, 0x15, 0x5f, + 0xc9, 0x73, 0xdd, 0x3a, 0x48, 0x25, 0xa0, 0x25, 0x1b, 0xbd, 0xba, 0xef, 0x17, 0xf4, 0x5c, 0x56, + 0x1b, 0xf8, 0x7d, 0x59, 0x56, 0xc1, 0xc9, 0xaa, 0xbb, 0x27, 0x9a, 0x73, 0x7b, 0xe2, 0x03, 0x68, + 0x6b, 0x39, 0x79, 0xad, 0xb6, 0xf4, 0xb9, 0xec, 0x80, 0x6e, 0x6d, 0xb4, 0x67, 0x6b, 0xc3, 0xcd, + 0xee, 0xd6, 0x92, 0xec, 0x76, 0xec, 0x42, 0xef, 0x5e, 0x4c, 0xd3, 0xb4, 0x47, 0xb3, 0x8c, 0x0c, + 0xe9, 0xb3, 0x77, 0x97, 0x74, 0x72, 0x96, 0x64, 0x32, 0xa2, 0xd9, 0x58, 0x15, 0x1a, 0x15, 0xe2, + 0x90, 0xc7, 0x14, 0xb3, 0x5c, 0x8b, 0x72, 0x52, 0xb9, 0x48, 0x85, 0x50, 0x16, 0x98, 0xce, 0xa6, + 0x29, 0x85, 0x8f, 0xc8, 0xdb, 0x4b, 0x3a, 0xc1, 0x8c, 0x56, 0x22, 0x43, 0x21, 0x9e, 0x30, 0x85, + 0x57, 0x0d, 0x8e, 0x54, 0x70, 0x0c, 0xed, 0x2c, 0x61, 0x43, 0x5d, 0x9c, 0xba, 0xd8, 0x2b, 0x7b, + 0xcd, 0x83, 0xaf, 0x2e, 0x68, 0x03, 0xa7, 0x44, 0x5e, 0x53, 0x71, 0xc2, 0xc5, 0x88, 0xc8, 0xc8, + 0xe5, 0x0a, 0x0e, 0xa1, 0x85, 0xdb, 0x2e, 0x97, 0x52, 0x5f, 0x4d, 0x8a, 0xc3, 0x14, 0x8e, 0xe0, + 0x4b, 0x8b, 0x23, 0x31, 0x59, 0xba, 0xfb, 0x55, 0x1f, 0xc4, 0x46, 0x92, 0x70, 0x56, 0x74, 0x00, + 0x1b, 0x52, 0x21, 0xcc, 0xb4, 0x9c, 0x6e, 0x65, 0xb7, 0xb2, 0x57, 0x89, 0x72, 0x32, 0xfc, 0x85, + 0xba, 0x06, 0x14, 0xea, 0xee, 0xd2, 0xb2, 0x03, 0x9b, 0x19, 0x9d, 0x3c, 0xa3, 0xc3, 0x84, 0xa1, + 0x8a, 0x4a, 0x54, 0xd0, 0x78, 0xc7, 0xa3, 0x93, 0x63, 0x16, 0xe7, 0x01, 0xd7, 0xd4, 0xac, 0x65, + 0xd5, 0x39, 0xcb, 0xc2, 0x4f, 0x3d, 0xe8, 0x38, 0x06, 0x7c, 0xe1, 0x12, 0xfe, 0x08, 0x82, 0x53, + 0x2a, 0x7b, 0xe4, 0xed, 0x53, 0x16, 0xf7, 0xd0, 0xbc, 0x88, 0x4e, 0xc2, 0x63, 0x78, 0x38, 0x87, + 0x66, 0x63, 0xcb, 0x51, 0x6f, 0x89, 0xa3, 0xbe, 0xed, 0x68, 0x78, 0x0e, 0x2d, 0x5b, 0xb5, 0xda, + 0x78, 0x49, 0x6c, 0x12, 0xeb, 0x27, 0x71, 0xb0, 0x0f, 0xd5, 0x54, 0x55, 0x85, 0x8f, 0x96, 0xef, + 0x2c, 0xb0, 0xbc, 0x97, 0x0d, 0x8f, 0x88, 0x24, 0x11, 0xae, 0x0b, 0x27, 0xd0, 0x51, 0x76, 0x5f, + 0x52, 0x16, 0xf7, 0xb2, 0x21, 0x9a, 0xb4, 0x0b, 0x4d, 0xcd, 0xd5, 0xcb, 0x86, 0xe5, 0x29, 0x6c, + 0x41, 0x6a, 0x45, 0x3f, 0x4d, 0x28, 0x93, 0x7a, 0x85, 0xa9, 0x4f, 0x0b, 0xd2, 0xb5, 0xc5, 0xe2, + 0xe2, 0x22, 0x82, 0xb5, 0xa5, 0xe9, 0xf0, 0xaf, 0x35, 0xd8, 0x30, 0x46, 0xe8, 0x3a, 0x63, 0x71, + 0x59, 0x9b, 0x9a, 0xd2, 0xbd, 0xae, 0x7f, 0x5b, 0xde, 0xea, 0x35, 0x65, 0x9f, 0x8b, 0x15, 0xf7, + 0x5c, 0x9c, 0xb1, 0xa9, 0x3a, 0x6f, 0xd3, 0x8c, 0x5f, 0xb5, 0x79, 0xbf, 0xbe, 0x01, 0xdb, 0x19, + 0xf6, 0xe3, 0x8b, 0x94, 0xc8, 0x01, 0x17, 0x23, 0x73, 0x8f, 0xa9, 0x45, 0x73, 0xb8, 0xba, 0x02, + 0x68, 0xac, 0x38, 0x0f, 0x74, 0xc3, 0x9f, 0x41, 0x55, 0xf7, 0xd5, 0x48, 0x7e, 0x2e, 0xe8, 0x0b, + 0xa4, 0x0b, 0x6a, 0xdb, 0xb2, 0x2c, 0xe1, 0x0c, 0xdf, 0x45, 0xba, 0xfd, 0xdb, 0x90, 0xf2, 0x7c, + 0x94, 0x0d, 0x4f, 0x04, 0x1f, 0x99, 0x6b, 0x64, 0x4e, 0xa2, 0xe7, 0x9c, 0x49, 0xca, 0x24, 0xf2, + 0x36, 0x35, 0xaf, 0x05, 0x29, 0x5e, 0x43, 0x62, 0xef, 0x6f, 0x45, 0x39, 0xa9, 0xba, 0xfe, 0x80, + 0x8b, 0x3e, 0xc5, 0x4e, 0xd2, 0xde, 0xad, 0xa8, 0xae, 0x5f, 0x00, 0xc1, 0x36, 0x54, 0x32, 0x3a, + 0xc1, 0x76, 0x5f, 0x89, 0xd4, 0x4f, 0x27, 0xaf, 0x1d, 0x37, 0xaf, 0x33, 0xe7, 0xd0, 0x36, 0x7e, + 0xb5, 0xcf, 0xa1, 0xa7, 0xb0, 0xc1, 0xc7, 0xaa, 0x4b, 0x64, 0xdd, 0x07, 0x58, 0x9d, 0x5f, 0x5f, + 0x5e, 0x9d, 0xfb, 0x2f, 0xf4, 0xca, 0x63, 0x26, 0xc5, 0xbb, 0x28, 0xe7, 0x0b, 0xce, 0xa0, 0xc3, + 0x07, 0x83, 0x34, 0x61, 0xf4, 0x62, 0x9a, 0x5d, 0xe3, 0x05, 0x2f, 0xc0, 0x0b, 0x5e, 0xb8, 0x40, + 0xd4, 0x0b, 0x77, 0x65, 0x34, 0xcb, 0xba, 0xf3, 0x11, 0xb4, 0x6c, 0x35, 0xca, 0xdd, 0x1b, 0xfa, + 0xce, 0x54, 0xa2, 0xfa, 0xa9, 0x1e, 0x02, 0xb7, 0x24, 0x9d, 0xea, 0xbb, 0xc6, 0x66, 0xa4, 0x89, + 0x8f, 0xfc, 0xef, 0x7a, 0xe1, 0xaf, 0x3d, 0xe8, 0xcc, 0x28, 0x50, 0xab, 0x65, 0x22, 0x53, 0x6a, + 0x24, 0x68, 0x22, 0x08, 0xa0, 0x1a, 0xd3, 0xac, 0x6f, 0x0a, 0x19, 0x7f, 0x9b, 0xe3, 0xb2, 0x52, + 0x3c, 0x25, 0x42, 0x68, 0x25, 0x2f, 0x2e, 0x95, 0xa0, 0x4b, 0x3e, 0x65, 0x71, 0x31, 0x04, 0xb0, + 0x30, 0x55, 0x48, 0xc9, 0x8b, 0xcb, 0x67, 0x24, 0x1e, 0x52, 0xfd, 0x54, 0xaf, 0xa1, 0x4d, 0x2e, + 0x18, 0x1e, 0xc1, 0xe6, 0xcb, 0x64, 0x9c, 0x1d, 0xf2, 0xd1, 0x48, 0x6d, 0xa2, 0x98, 0x4a, 0xf5, + 0x8e, 0xf1, 0x30, 0xeb, 0x86, 0x52, 0x05, 0x13, 0xd3, 0x01, 0x99, 0xa6, 0x52, 0x2d, 0xcd, 0xb7, + 0xaf, 0x05, 0x85, 0x7f, 0xf2, 0xa0, 0xa3, 0x5f, 0xe0, 0xc7, 0x4c, 0x52, 0xa1, 0xb0, 0xe0, 0x00, + 0x6a, 0xb8, 0xd7, 0x50, 0x58, 0xf3, 0xe0, 0xfd, 0x45, 0x4d, 0x31, 0x9f, 0x98, 0x44, 0x7a, 0x69, + 0xf0, 0x63, 0x68, 0x52, 0x26, 0x05, 0x61, 0x12, 0x9f, 0x1c, 0x3e, 0x72, 0x7e, 0xb8, 0x8c, 0xd3, + 0x7d, 0xf3, 0x47, 0x36, 0xab, 0xf2, 0xbe, 0x38, 0x65, 0xac, 0xae, 0xe2, 0x82, 0xe1, 0x1f, 0x0b, + 0xbb, 0xcf, 0x28, 0xb9, 0xa5, 0x6b, 0xdb, 0x7d, 0x02, 0x90, 0x2a, 0x01, 0x62, 0x0d, 0xb3, 0x2d, + 0xce, 0x15, 0xad, 0xfe, 0xd4, 0x83, 0x07, 0x5a, 0xc8, 0x73, 0x76, 0x9b, 0x48, 0x1a, 0xaf, 0x6d, + 0xf7, 0x0f, 0xa0, 0xce, 0xc7, 0x6b, 0xd8, 0x6c, 0xb8, 0x82, 0x0b, 0xe8, 0x24, 0xda, 0x04, 0x45, + 0x16, 0xd7, 0x8b, 0xd5, 0x05, 0xcd, 0xb2, 0xcf, 0x47, 0xa0, 0xba, 0x28, 0x02, 0xff, 0xf6, 0x60, + 0x5b, 0x4b, 0xfa, 0x49, 0xd2, 0xbf, 0xf9, 0x1c, 0x03, 0x70, 0x0e, 0x5b, 0x37, 0x68, 0xc1, 0x9a, + 0xfe, 0xcf, 0x70, 0xaf, 0xe8, 0xfe, 0xaf, 0x7c, 0x78, 0x2f, 0x2f, 0x80, 0x01, 0x3f, 0xbc, 0x26, + 0x6c, 0x68, 0x62, 0xa0, 0x7a, 0x2a, 0x92, 0xd8, 0xda, 0xf5, 0xe5, 0xc9, 0x42, 0xfe, 0x67, 0x7f, + 0x8f, 0xa0, 0x31, 0x48, 0x18, 0x49, 0xad, 0xb7, 0xf2, 0xaa, 0x22, 0x4a, 0x46, 0x75, 0x2a, 0x8c, + 0xa6, 0xa6, 0xef, 0x9b, 0x69, 0x5a, 0x4e, 0x97, 0x59, 0xac, 0xad, 0x9c, 0xc5, 0xf0, 0x9f, 0x1e, + 0x6c, 0x23, 0x78, 0x88, 0xa7, 0xc7, 0xfa, 0xe5, 0xf0, 0x23, 0xd8, 0x30, 0xd3, 0xc7, 0xff, 0x32, + 0x3e, 0x39, 0x9b, 0xea, 0x04, 0x7a, 0x16, 0xba, 0x46, 0x31, 0x58, 0x9c, 0x2b, 0x16, 0xc2, 0x1f, + 0x3c, 0x78, 0x54, 0x38, 0x61, 0xd7, 0x81, 0x3a, 0xe3, 0x0d, 0x59, 0x16, 0x82, 0x0d, 0x95, 0xe1, + 0xf1, 0xd7, 0xd9, 0x2d, 0x95, 0x75, 0xaa, 0x27, 0xfc, 0x9d, 0x07, 0xdd, 0x8f, 0x79, 0xc2, 0x70, + 0xcd, 0xd3, 0xf1, 0x38, 0x35, 0x43, 0xed, 0xb5, 0xf3, 0xf5, 0x43, 0x68, 0x10, 0x2d, 0x86, 0x49, + 0xe3, 0xc8, 0x0a, 0xa3, 0x9b, 0x92, 0x47, 0xdf, 0x1b, 0x49, 0x56, 0xcc, 0xda, 0x0d, 0x15, 0xfe, + 0xc5, 0x83, 0xae, 0x65, 0xe0, 0x85, 0xe0, 0x7d, 0x9a, 0x65, 0x9f, 0x63, 0xa3, 0x41, 0x43, 0x8b, + 0x01, 0x4e, 0x2d, 0x32, 0x94, 0xe5, 0x40, 0xd5, 0x71, 0xe0, 0x06, 0x1e, 0xe8, 0x69, 0x89, 0xe5, + 0x85, 0xba, 0xd7, 0x91, 0x58, 0x5f, 0xc6, 0xf4, 0xeb, 0x21, 0x27, 0xdd, 0xf1, 0x95, 0xf9, 0x5f, + 0xa2, 0x1c, 0x5f, 0x3d, 0x01, 0x20, 0x71, 0xfc, 0x09, 0x17, 0x71, 0xc2, 0x86, 0x26, 0x52, 0x16, + 0x12, 0x7e, 0x0c, 0x2d, 0x75, 0xb3, 0x7c, 0x69, 0xcd, 0x3d, 0xee, 0x9c, 0xcc, 0xd8, 0x33, 0x13, + 0xdf, 0x9d, 0x99, 0x84, 0x04, 0x76, 0xe6, 0x0c, 0x7f, 0x1a, 0xc7, 0x26, 0xf4, 0x87, 0x7a, 0xa6, + 0x93, 0x6b, 0x32, 0x19, 0x58, 0xf4, 0xe0, 0xb2, 0x0d, 0x8a, 0x1c, 0xa6, 0x90, 0xc2, 0x93, 0x39, + 0x15, 0x6e, 0x86, 0xef, 0x45, 0xcd, 0xef, 0x3d, 0xe8, 0x18, 0x3d, 0x85, 0xfd, 0xdf, 0x81, 0xba, + 0x9e, 0x91, 0x1a, 0x91, 0x5f, 0x59, 0x28, 0x32, 0x9f, 0xed, 0x46, 0x66, 0xf1, 0x7c, 0x37, 0xf0, + 0x17, 0x74, 0x83, 0xe0, 0x7b, 0x33, 0xdb, 0x73, 0x85, 0xad, 0x90, 0xef, 0xcc, 0x9f, 0xe6, 0xe5, + 0x72, 0x44, 0x53, 0x2a, 0xef, 0x33, 0x0a, 0xaf, 0x60, 0x0b, 0x07, 0xb6, 0xf7, 0x9c, 0xc3, 0x4f, + 0x60, 0x1b, 0xc5, 0xde, 0xbb, 0xbd, 0x3f, 0x83, 0xf7, 0xca, 0x04, 0xd8, 0x2d, 0xf5, 0x5e, 0xa4, + 0x7f, 0x13, 0x1e, 0x5e, 0xd2, 0x74, 0xa0, 0x64, 0xbf, 0x1a, 0xc7, 0xc5, 0x59, 0xb5, 0x64, 0xe4, + 0x72, 0x55, 0xc7, 0x3f, 0x1c, 0xbf, 0xfd, 0x9f, 0x00, 0x00, 0x00, 0xff, 0xff, 0x3d, 0x60, 0xab, + 0x3f, 0x83, 0x1c, 0x00, 0x00, } From b2c2c1247b0ee36fa98402a3ffef9db6a6222609 Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Sat, 15 Jan 2022 11:14:29 +0800 Subject: [PATCH 493/814] Refactor code --- internal/rpc/msg/friend_notification.go | 12 +++++++++++- internal/rpc/msg/send_msg.go | 2 +- pkg/common/constant/constant.go | 1 + pkg/proto/sdk_ws/ws.proto | 5 +++-- 4 files changed, 16 insertions(+), 4 deletions(-) diff --git a/internal/rpc/msg/friend_notification.go b/internal/rpc/msg/friend_notification.go index 1d130882e..8b472e894 100644 --- a/internal/rpc/msg/friend_notification.go +++ b/internal/rpc/msg/friend_notification.go @@ -9,6 +9,7 @@ import ( open_im_sdk "Open_IM/pkg/proto/sdk_ws" "Open_IM/pkg/utils" "encoding/json" + "github.com/golang/protobuf/proto" ) //message MemberInfoChangedTips{ @@ -75,7 +76,11 @@ func FriendApplicationProcessedNotification(req *pbFriend.AddFriendResponseReq) } var tips open_im_sdk.TipsComm - tips.Detail, _ = json.Marshal(FriendApplicationProcessedTips) + tips.Detail, err = proto.Marshal(&FriendApplicationProcessedTips) + if err != nil { + log.Error(req.CommID.OperationID, "Marshal failed ", err.Error(), FriendApplicationProcessedTips) + return + } tips.DefaultTips = fromUserNickname + " FriendApplicationProcessedNotification " + toUserNickname var n NotificationMsg @@ -86,6 +91,11 @@ func FriendApplicationProcessedNotification(req *pbFriend.AddFriendResponseReq) n.MsgFrom = constant.SysMsgType n.OperationID = req.CommID.OperationID n.Content, _ = json.Marshal(tips) + n.Content, err = proto.Marshal(&tips) + if err != nil { + log.Error(req.CommID.OperationID, "Marshal failed ", err.Error(), tips) + return + } Notification(&n) } diff --git a/internal/rpc/msg/send_msg.go b/internal/rpc/msg/send_msg.go index 481dee2dc..83f439120 100644 --- a/internal/rpc/msg/send_msg.go +++ b/internal/rpc/msg/send_msg.go @@ -232,7 +232,7 @@ func modifyMessageByUserMessageReceiveOpt(userID, sourceID string, sessionType i type NotificationMsg struct { SendID string RecvID string - Content []byte + Content []byte // open_im_sdk.TipsComm MsgFrom int32 ContentType int32 SessionType int32 diff --git a/pkg/common/constant/constant.go b/pkg/common/constant/constant.go index d0bfec2e0..cd35036fb 100644 --- a/pkg/common/constant/constant.go +++ b/pkg/common/constant/constant.go @@ -45,6 +45,7 @@ const ( GroupMsg = 201 //SysRelated + FriendApplicationProcessedNotification = 1201 //AcceptFriendApplicationTip = 201 FriendApplicationAddedNotification = 1202 //AddFriendTip = 202 FriendAddedNotification = 1203 diff --git a/pkg/proto/sdk_ws/ws.proto b/pkg/proto/sdk_ws/ws.proto index 919596ddb..5b235f5d8 100644 --- a/pkg/proto/sdk_ws/ws.proto +++ b/pkg/proto/sdk_ws/ws.proto @@ -75,8 +75,8 @@ message BlackInfo{ } message GroupRequest{ - string userID = 1; - string groupID = 2; + PublicUserInfo userInfo = 1; + GroupInfo groupInfo = 2; string handleResult = 3; string reqMsg = 4; string handleMsg = 5; @@ -312,6 +312,7 @@ message FriendApplicationAddedTips{ //FromUserID accept or reject ToUserID message FriendApplicationProcessedTips{ FromToUserID fromToUserID = 1; + int32 handleResult = 2; } // FromUserID Added a friend ToUserID From 17b96dd7c1d192687a72cacada00ea3bdf003a09 Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Sat, 15 Jan 2022 15:25:12 +0800 Subject: [PATCH 494/814] Refactor code --- cmd/open_im_api/main.go | 16 +- internal/api/friend/friend.go | 4 +- internal/rpc/group/group.go | 15 +- .../mysql_model/im_mysql_model/group_model.go | 3 +- pkg/common/utils/utils.go | 4 + pkg/proto/group/group.pb.go | 226 +++++------ pkg/proto/group/group.proto | 18 +- pkg/proto/sdk_ws/ws.pb.go | 380 +++++++++--------- 8 files changed, 348 insertions(+), 318 deletions(-) diff --git a/cmd/open_im_api/main.go b/cmd/open_im_api/main.go index fccba41c1..8580de2cc 100644 --- a/cmd/open_im_api/main.go +++ b/cmd/open_im_api/main.go @@ -26,7 +26,7 @@ func main() { userRouterGroup := r.Group("/user") { userRouterGroup.POST("/update_user_info", user.UpdateUserInfo) //1 - userRouterGroup.POST("/get_user_info", user.GetUsersInfo) //1 + userRouterGroup.POST("/get_users_info", user.GetUsersInfo) //1 userRouterGroup.POST("/get_self_user_info", user.GetSelfUserInfo) //1 } //friend routing group @@ -34,17 +34,19 @@ func main() { { // friendRouterGroup.POST("/get_friends_info", friend.GetFriendsInfo) friendRouterGroup.POST("/add_friend", friend.AddFriend) //1 + friendRouterGroup.POST("/delete_friend", friend.DeleteFriend) //1 friendRouterGroup.POST("/get_friend_apply_list", friend.GetFriendApplyList) //1 friendRouterGroup.POST("/get_self_apply_list", friend.GetSelfApplyList) //1 friendRouterGroup.POST("/get_friend_list", friend.GetFriendList) //1 - friendRouterGroup.POST("/add_blacklist", friend.AddBlacklist) //1 - friendRouterGroup.POST("/get_blacklist", friend.GetBlacklist) //1 - friendRouterGroup.POST("/remove_blacklist", friend.RemoveBlacklist) //1 - friendRouterGroup.POST("/delete_friend", friend.DeleteFriend) //1 friendRouterGroup.POST("/add_friend_response", friend.AddFriendResponse) //1 friendRouterGroup.POST("/set_friend_remark", friend.SetFriendRemark) //1 - friendRouterGroup.POST("/is_friend", friend.IsFriend) //1 - friendRouterGroup.POST("/import_friend", friend.ImportFriend) //1 + + friendRouterGroup.POST("/add_black", friend.AddBlack) //1 + friendRouterGroup.POST("/get_black_list", friend.GetBlacklist) //1 + friendRouterGroup.POST("/remove_black", friend.RemoveBlack) //1 + + friendRouterGroup.POST("/import_friend", friend.ImportFriend) //1 + friendRouterGroup.POST("/is_friend", friend.IsFriend) //1 } //group related routing group groupRouterGroup := r.Group("/group") diff --git a/internal/api/friend/friend.go b/internal/api/friend/friend.go index 3cd14ff73..42f4ba86a 100644 --- a/internal/api/friend/friend.go +++ b/internal/api/friend/friend.go @@ -16,7 +16,7 @@ import ( "strings" ) -func AddBlacklist(c *gin.Context) { +func AddBlack(c *gin.Context) { params := api.AddBlacklistReq{} if err := c.BindJSON(¶ms); err != nil { log.NewError("0", "BindJSON failed ", err.Error()) @@ -257,7 +257,7 @@ func SetFriendRemark(c *gin.Context) { c.JSON(http.StatusOK, resp) } -func RemoveBlacklist(c *gin.Context) { +func RemoveBlack(c *gin.Context) { params := api.RemoveBlackListReq{} if err := c.BindJSON(¶ms); err != nil { log.NewError("0", "BindJSON failed ", err.Error()) diff --git a/internal/rpc/group/group.go b/internal/rpc/group/group.go index b691458f3..767adba27 100644 --- a/internal/rpc/group/group.go +++ b/internal/rpc/group/group.go @@ -407,8 +407,21 @@ func (s *groupServer) GetGroupApplicationList(_ context.Context, req *pbGroup.Ge log.NewDebug(req.OperationID, "GetGroupApplicationList reply ", reply) resp := pbGroup.GetGroupApplicationListResp{} for _, v := range reply { - var node open_im_sdk.GroupRequest + node := open_im_sdk.GroupRequest{UserInfo: &open_im_sdk.PublicUserInfo{}, GroupInfo: &open_im_sdk.GroupInfo{}} + group, err := imdb.GetGroupInfoByGroupID(v.GroupID) + if err != nil { + log.Error(req.OperationID, "GetGroupInfoByGroupID failed ", err.Error(), v.GroupID) + continue + } + user, err := imdb.GetUserByUserID(v.UserID) + if err != nil { + log.Error(req.OperationID, "GetUserByUserID failed ", err.Error(), v.UserID) + continue + } + cp.GroupRequestDBCopyOpenIM(&node, &v) + cp.UserDBCopyOpenIMPublic(node.UserInfo, user) + cp.GroupDBCopyOpenIM(node.GroupInfo, group) log.NewDebug(req.OperationID, "node ", node, "v ", v) resp.GroupRequestList = append(resp.GroupRequestList, &node) } diff --git a/pkg/common/db/mysql_model/im_mysql_model/group_model.go b/pkg/common/db/mysql_model/im_mysql_model/group_model.go index 21e9d5156..60b470685 100644 --- a/pkg/common/db/mysql_model/im_mysql_model/group_model.go +++ b/pkg/common/db/mysql_model/im_mysql_model/group_model.go @@ -2,6 +2,7 @@ package im_mysql_model import ( "Open_IM/pkg/common/db" + "Open_IM/pkg/utils" "time" ) @@ -37,7 +38,7 @@ func InsertIntoGroup(groupInfo db.Group) error { func GetGroupInfoByGroupID(groupId string) (*db.Group, error) { dbConn, err := db.DB.MysqlDB.DefaultGormDB() if err != nil { - return nil, err + return nil, utils.Wrap(err, "") } var groupInfo db.Group err = dbConn.Table("groups").Where("group_id=?", groupId).Find(&groupInfo).Error diff --git a/pkg/common/utils/utils.go b/pkg/common/utils/utils.go index b181d79b0..ed061a509 100644 --- a/pkg/common/utils/utils.go +++ b/pkg/common/utils/utils.go @@ -114,6 +114,10 @@ func BlackDBCopyOpenIM(dst *open_im_sdk.BlackInfo, src *db.Black) { } } +func UserDBCopyOpenIMPublic(dst *open_im_sdk.PublicUserInfo, src *db.User) { + utils.CopyStructFields(dst, src) +} + // //func PublicUserDBCopyOpenIM(dst *open_im_sdk.PublicUserInfo, src *db.User){ // diff --git a/pkg/proto/group/group.pb.go b/pkg/proto/group/group.pb.go index ea305a14b..15741944a 100644 --- a/pkg/proto/group/group.pb.go +++ b/pkg/proto/group/group.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_group_5b7911b898fdd5c5, []int{0} + return fileDescriptor_group_a130b5186d308ee6, []int{0} } func (m *CommonResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_CommonResp.Unmarshal(m, b) @@ -82,7 +82,7 @@ func (m *GroupAddMemberInfo) Reset() { *m = GroupAddMemberInfo{} } func (m *GroupAddMemberInfo) String() string { return proto.CompactTextString(m) } func (*GroupAddMemberInfo) ProtoMessage() {} func (*GroupAddMemberInfo) Descriptor() ([]byte, []int) { - return fileDescriptor_group_5b7911b898fdd5c5, []int{1} + return fileDescriptor_group_a130b5186d308ee6, []int{1} } func (m *GroupAddMemberInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupAddMemberInfo.Unmarshal(m, b) @@ -131,7 +131,7 @@ func (m *CreateGroupReq) Reset() { *m = CreateGroupReq{} } func (m *CreateGroupReq) String() string { return proto.CompactTextString(m) } func (*CreateGroupReq) ProtoMessage() {} func (*CreateGroupReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_5b7911b898fdd5c5, []int{2} + return fileDescriptor_group_a130b5186d308ee6, []int{2} } func (m *CreateGroupReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_CreateGroupReq.Unmarshal(m, b) @@ -199,7 +199,7 @@ func (m *CreateGroupResp) Reset() { *m = CreateGroupResp{} } func (m *CreateGroupResp) String() string { return proto.CompactTextString(m) } func (*CreateGroupResp) ProtoMessage() {} func (*CreateGroupResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_5b7911b898fdd5c5, []int{3} + return fileDescriptor_group_a130b5186d308ee6, []int{3} } func (m *CreateGroupResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_CreateGroupResp.Unmarshal(m, b) @@ -253,7 +253,7 @@ func (m *GetGroupsInfoReq) Reset() { *m = GetGroupsInfoReq{} } func (m *GetGroupsInfoReq) String() string { return proto.CompactTextString(m) } func (*GetGroupsInfoReq) ProtoMessage() {} func (*GetGroupsInfoReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_5b7911b898fdd5c5, []int{4} + return fileDescriptor_group_a130b5186d308ee6, []int{4} } func (m *GetGroupsInfoReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetGroupsInfoReq.Unmarshal(m, b) @@ -307,7 +307,7 @@ func (m *GetGroupsInfoResp) Reset() { *m = GetGroupsInfoResp{} } func (m *GetGroupsInfoResp) String() string { return proto.CompactTextString(m) } func (*GetGroupsInfoResp) ProtoMessage() {} func (*GetGroupsInfoResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_5b7911b898fdd5c5, []int{5} + return fileDescriptor_group_a130b5186d308ee6, []int{5} } func (m *GetGroupsInfoResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetGroupsInfoResp.Unmarshal(m, b) @@ -361,7 +361,7 @@ func (m *SetGroupInfoReq) Reset() { *m = SetGroupInfoReq{} } func (m *SetGroupInfoReq) String() string { return proto.CompactTextString(m) } func (*SetGroupInfoReq) ProtoMessage() {} func (*SetGroupInfoReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_5b7911b898fdd5c5, []int{6} + return fileDescriptor_group_a130b5186d308ee6, []int{6} } func (m *SetGroupInfoReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SetGroupInfoReq.Unmarshal(m, b) @@ -413,7 +413,7 @@ func (m *SetGroupInfoResp) Reset() { *m = SetGroupInfoResp{} } func (m *SetGroupInfoResp) String() string { return proto.CompactTextString(m) } func (*SetGroupInfoResp) ProtoMessage() {} func (*SetGroupInfoResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_5b7911b898fdd5c5, []int{7} + return fileDescriptor_group_a130b5186d308ee6, []int{7} } func (m *SetGroupInfoResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SetGroupInfoResp.Unmarshal(m, b) @@ -453,7 +453,7 @@ func (m *GetGroupApplicationListReq) Reset() { *m = GetGroupApplicationL func (m *GetGroupApplicationListReq) String() string { return proto.CompactTextString(m) } func (*GetGroupApplicationListReq) ProtoMessage() {} func (*GetGroupApplicationListReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_5b7911b898fdd5c5, []int{8} + return fileDescriptor_group_a130b5186d308ee6, []int{8} } func (m *GetGroupApplicationListReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetGroupApplicationListReq.Unmarshal(m, b) @@ -507,7 +507,7 @@ func (m *GetGroupApplicationListResp) Reset() { *m = GetGroupApplication func (m *GetGroupApplicationListResp) String() string { return proto.CompactTextString(m) } func (*GetGroupApplicationListResp) ProtoMessage() {} func (*GetGroupApplicationListResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_5b7911b898fdd5c5, []int{9} + return fileDescriptor_group_a130b5186d308ee6, []int{9} } func (m *GetGroupApplicationListResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetGroupApplicationListResp.Unmarshal(m, b) @@ -563,7 +563,7 @@ func (m *TransferGroupOwnerReq) Reset() { *m = TransferGroupOwnerReq{} } func (m *TransferGroupOwnerReq) String() string { return proto.CompactTextString(m) } func (*TransferGroupOwnerReq) ProtoMessage() {} func (*TransferGroupOwnerReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_5b7911b898fdd5c5, []int{10} + return fileDescriptor_group_a130b5186d308ee6, []int{10} } func (m *TransferGroupOwnerReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_TransferGroupOwnerReq.Unmarshal(m, b) @@ -629,7 +629,7 @@ func (m *TransferGroupOwnerResp) Reset() { *m = TransferGroupOwnerResp{} func (m *TransferGroupOwnerResp) String() string { return proto.CompactTextString(m) } func (*TransferGroupOwnerResp) ProtoMessage() {} func (*TransferGroupOwnerResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_5b7911b898fdd5c5, []int{11} + return fileDescriptor_group_a130b5186d308ee6, []int{11} } func (m *TransferGroupOwnerResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_TransferGroupOwnerResp.Unmarshal(m, b) @@ -670,7 +670,7 @@ func (m *JoinGroupReq) Reset() { *m = JoinGroupReq{} } func (m *JoinGroupReq) String() string { return proto.CompactTextString(m) } func (*JoinGroupReq) ProtoMessage() {} func (*JoinGroupReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_5b7911b898fdd5c5, []int{12} + return fileDescriptor_group_a130b5186d308ee6, []int{12} } func (m *JoinGroupReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_JoinGroupReq.Unmarshal(m, b) @@ -729,7 +729,7 @@ func (m *JoinGroupResp) Reset() { *m = JoinGroupResp{} } func (m *JoinGroupResp) String() string { return proto.CompactTextString(m) } func (*JoinGroupResp) ProtoMessage() {} func (*JoinGroupResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_5b7911b898fdd5c5, []int{13} + return fileDescriptor_group_a130b5186d308ee6, []int{13} } func (m *JoinGroupResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_JoinGroupResp.Unmarshal(m, b) @@ -772,7 +772,7 @@ func (m *GroupApplicationResponseReq) Reset() { *m = GroupApplicationRes func (m *GroupApplicationResponseReq) String() string { return proto.CompactTextString(m) } func (*GroupApplicationResponseReq) ProtoMessage() {} func (*GroupApplicationResponseReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_5b7911b898fdd5c5, []int{14} + return fileDescriptor_group_a130b5186d308ee6, []int{14} } func (m *GroupApplicationResponseReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupApplicationResponseReq.Unmarshal(m, b) @@ -845,7 +845,7 @@ func (m *GroupApplicationResponseResp) Reset() { *m = GroupApplicationRe func (m *GroupApplicationResponseResp) String() string { return proto.CompactTextString(m) } func (*GroupApplicationResponseResp) ProtoMessage() {} func (*GroupApplicationResponseResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_5b7911b898fdd5c5, []int{15} + return fileDescriptor_group_a130b5186d308ee6, []int{15} } func (m *GroupApplicationResponseResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupApplicationResponseResp.Unmarshal(m, b) @@ -885,7 +885,7 @@ func (m *QuitGroupReq) Reset() { *m = QuitGroupReq{} } func (m *QuitGroupReq) String() string { return proto.CompactTextString(m) } func (*QuitGroupReq) ProtoMessage() {} func (*QuitGroupReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_5b7911b898fdd5c5, []int{16} + return fileDescriptor_group_a130b5186d308ee6, []int{16} } func (m *QuitGroupReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_QuitGroupReq.Unmarshal(m, b) @@ -937,7 +937,7 @@ func (m *QuitGroupResp) Reset() { *m = QuitGroupResp{} } func (m *QuitGroupResp) String() string { return proto.CompactTextString(m) } func (*QuitGroupResp) ProtoMessage() {} func (*QuitGroupResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_5b7911b898fdd5c5, []int{17} + return fileDescriptor_group_a130b5186d308ee6, []int{17} } func (m *QuitGroupResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_QuitGroupResp.Unmarshal(m, b) @@ -979,7 +979,7 @@ func (m *GetGroupMemberListReq) Reset() { *m = GetGroupMemberListReq{} } func (m *GetGroupMemberListReq) String() string { return proto.CompactTextString(m) } func (*GetGroupMemberListReq) ProtoMessage() {} func (*GetGroupMemberListReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_5b7911b898fdd5c5, []int{18} + return fileDescriptor_group_a130b5186d308ee6, []int{18} } func (m *GetGroupMemberListReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetGroupMemberListReq.Unmarshal(m, b) @@ -1048,7 +1048,7 @@ func (m *GetGroupMemberListResp) Reset() { *m = GetGroupMemberListResp{} func (m *GetGroupMemberListResp) String() string { return proto.CompactTextString(m) } func (*GetGroupMemberListResp) ProtoMessage() {} func (*GetGroupMemberListResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_5b7911b898fdd5c5, []int{19} + return fileDescriptor_group_a130b5186d308ee6, []int{19} } func (m *GetGroupMemberListResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetGroupMemberListResp.Unmarshal(m, b) @@ -1110,7 +1110,7 @@ func (m *GetGroupMembersInfoReq) Reset() { *m = GetGroupMembersInfoReq{} func (m *GetGroupMembersInfoReq) String() string { return proto.CompactTextString(m) } func (*GetGroupMembersInfoReq) ProtoMessage() {} func (*GetGroupMembersInfoReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_5b7911b898fdd5c5, []int{20} + return fileDescriptor_group_a130b5186d308ee6, []int{20} } func (m *GetGroupMembersInfoReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetGroupMembersInfoReq.Unmarshal(m, b) @@ -1171,7 +1171,7 @@ func (m *GetGroupMembersInfoResp) Reset() { *m = GetGroupMembersInfoResp func (m *GetGroupMembersInfoResp) String() string { return proto.CompactTextString(m) } func (*GetGroupMembersInfoResp) ProtoMessage() {} func (*GetGroupMembersInfoResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_5b7911b898fdd5c5, []int{21} + return fileDescriptor_group_a130b5186d308ee6, []int{21} } func (m *GetGroupMembersInfoResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetGroupMembersInfoResp.Unmarshal(m, b) @@ -1227,7 +1227,7 @@ func (m *KickGroupMemberReq) Reset() { *m = KickGroupMemberReq{} } func (m *KickGroupMemberReq) String() string { return proto.CompactTextString(m) } func (*KickGroupMemberReq) ProtoMessage() {} func (*KickGroupMemberReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_5b7911b898fdd5c5, []int{22} + return fileDescriptor_group_a130b5186d308ee6, []int{22} } func (m *KickGroupMemberReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_KickGroupMemberReq.Unmarshal(m, b) @@ -1294,7 +1294,7 @@ func (m *Id2Result) Reset() { *m = Id2Result{} } func (m *Id2Result) String() string { return proto.CompactTextString(m) } func (*Id2Result) ProtoMessage() {} func (*Id2Result) Descriptor() ([]byte, []int) { - return fileDescriptor_group_5b7911b898fdd5c5, []int{23} + return fileDescriptor_group_a130b5186d308ee6, []int{23} } func (m *Id2Result) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_Id2Result.Unmarshal(m, b) @@ -1341,7 +1341,7 @@ func (m *KickGroupMemberResp) Reset() { *m = KickGroupMemberResp{} } func (m *KickGroupMemberResp) String() string { return proto.CompactTextString(m) } func (*KickGroupMemberResp) ProtoMessage() {} func (*KickGroupMemberResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_5b7911b898fdd5c5, []int{24} + return fileDescriptor_group_a130b5186d308ee6, []int{24} } func (m *KickGroupMemberResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_KickGroupMemberResp.Unmarshal(m, b) @@ -1395,7 +1395,7 @@ func (m *GetJoinedGroupListReq) Reset() { *m = GetJoinedGroupListReq{} } func (m *GetJoinedGroupListReq) String() string { return proto.CompactTextString(m) } func (*GetJoinedGroupListReq) ProtoMessage() {} func (*GetJoinedGroupListReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_5b7911b898fdd5c5, []int{25} + return fileDescriptor_group_a130b5186d308ee6, []int{25} } func (m *GetJoinedGroupListReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetJoinedGroupListReq.Unmarshal(m, b) @@ -1449,7 +1449,7 @@ func (m *GetJoinedGroupListResp) Reset() { *m = GetJoinedGroupListResp{} func (m *GetJoinedGroupListResp) String() string { return proto.CompactTextString(m) } func (*GetJoinedGroupListResp) ProtoMessage() {} func (*GetJoinedGroupListResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_5b7911b898fdd5c5, []int{26} + return fileDescriptor_group_a130b5186d308ee6, []int{26} } func (m *GetJoinedGroupListResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetJoinedGroupListResp.Unmarshal(m, b) @@ -1505,7 +1505,7 @@ func (m *InviteUserToGroupReq) Reset() { *m = InviteUserToGroupReq{} } func (m *InviteUserToGroupReq) String() string { return proto.CompactTextString(m) } func (*InviteUserToGroupReq) ProtoMessage() {} func (*InviteUserToGroupReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_5b7911b898fdd5c5, []int{27} + return fileDescriptor_group_a130b5186d308ee6, []int{27} } func (m *InviteUserToGroupReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_InviteUserToGroupReq.Unmarshal(m, b) @@ -1573,7 +1573,7 @@ func (m *InviteUserToGroupResp) Reset() { *m = InviteUserToGroupResp{} } func (m *InviteUserToGroupResp) String() string { return proto.CompactTextString(m) } func (*InviteUserToGroupResp) ProtoMessage() {} func (*InviteUserToGroupResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_5b7911b898fdd5c5, []int{28} + return fileDescriptor_group_a130b5186d308ee6, []int{28} } func (m *InviteUserToGroupResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_InviteUserToGroupResp.Unmarshal(m, b) @@ -1627,7 +1627,7 @@ func (m *GetGroupAllMemberReq) Reset() { *m = GetGroupAllMemberReq{} } func (m *GetGroupAllMemberReq) String() string { return proto.CompactTextString(m) } func (*GetGroupAllMemberReq) ProtoMessage() {} func (*GetGroupAllMemberReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_5b7911b898fdd5c5, []int{29} + return fileDescriptor_group_a130b5186d308ee6, []int{29} } func (m *GetGroupAllMemberReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetGroupAllMemberReq.Unmarshal(m, b) @@ -1681,7 +1681,7 @@ func (m *GetGroupAllMemberResp) Reset() { *m = GetGroupAllMemberResp{} } func (m *GetGroupAllMemberResp) String() string { return proto.CompactTextString(m) } func (*GetGroupAllMemberResp) ProtoMessage() {} func (*GetGroupAllMemberResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_5b7911b898fdd5c5, []int{30} + return fileDescriptor_group_a130b5186d308ee6, []int{30} } func (m *GetGroupAllMemberResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetGroupAllMemberResp.Unmarshal(m, b) @@ -2257,86 +2257,86 @@ var _Group_serviceDesc = grpc.ServiceDesc{ Metadata: "group/group.proto", } -func init() { proto.RegisterFile("group/group.proto", fileDescriptor_group_5b7911b898fdd5c5) } - -var fileDescriptor_group_5b7911b898fdd5c5 = []byte{ - // 1235 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x58, 0x49, 0x6f, 0x1c, 0x45, - 0x14, 0x56, 0x79, 0x3c, 0x4e, 0xe6, 0xd9, 0xe3, 0xa5, 0xbc, 0x4d, 0x3a, 0xc6, 0x9a, 0x14, 0x12, - 0xb2, 0x10, 0xb2, 0x85, 0x41, 0xb9, 0x24, 0x02, 0xbc, 0x26, 0x93, 0xc4, 0xb6, 0xdc, 0x31, 0x17, - 0x2e, 0x66, 0xe2, 0x2e, 0xb7, 0x1a, 0xf7, 0x74, 0xb7, 0xbb, 0x7a, 0x62, 0xe0, 0x02, 0x08, 0xc1, - 0x05, 0x21, 0x71, 0xe2, 0xce, 0x85, 0x33, 0x07, 0x4e, 0x5c, 0xf8, 0x1d, 0xfc, 0x04, 0xfe, 0x05, - 0xaa, 0xa5, 0x7b, 0xaa, 0x57, 0x8f, 0x66, 0x24, 0x72, 0x19, 0xe9, 0x2d, 0xd5, 0xef, 0xbd, 0xaf, - 0xde, 0x56, 0x03, 0x0b, 0x76, 0xe8, 0xf7, 0x83, 0x2d, 0xf1, 0xbb, 0x19, 0x84, 0x7e, 0xe4, 0xe3, - 0xba, 0x20, 0x8c, 0x07, 0x27, 0x01, 0xf5, 0xce, 0x3b, 0x47, 0x5b, 0xc1, 0x95, 0xbd, 0x25, 0x24, - 0x5b, 0xcc, 0xba, 0x3a, 0xbf, 0x61, 0x5b, 0x37, 0x4c, 0x6a, 0x92, 0x8f, 0x00, 0xf6, 0xfc, 0x5e, - 0xcf, 0xf7, 0x4c, 0xca, 0x02, 0xdc, 0x82, 0x3b, 0x07, 0x61, 0xb8, 0xe7, 0x5b, 0xb4, 0x85, 0xda, - 0x68, 0xa3, 0x6e, 0xc6, 0x24, 0x5e, 0x81, 0xa9, 0x83, 0x30, 0x3c, 0x62, 0x76, 0x6b, 0xa2, 0x8d, - 0x36, 0x1a, 0xa6, 0xa2, 0xc8, 0x33, 0xc0, 0x4f, 0xb8, 0xad, 0x1d, 0xcb, 0x3a, 0xa2, 0xbd, 0x57, - 0x34, 0xec, 0x78, 0x97, 0x3e, 0xd7, 0xfe, 0x94, 0xd1, 0xb0, 0xb3, 0x2f, 0x3e, 0xd3, 0x30, 0x15, - 0x85, 0xd7, 0xa0, 0x61, 0xfa, 0x2e, 0x7d, 0x41, 0x5f, 0x53, 0x57, 0x7c, 0xa8, 0x6e, 0x0e, 0x18, - 0xe4, 0x5f, 0x04, 0xb3, 0x7b, 0x21, 0xed, 0x46, 0x54, 0x7c, 0xd2, 0xa4, 0xd7, 0x78, 0x07, 0x66, - 0x3b, 0x9e, 0x13, 0xc9, 0x4f, 0xbf, 0x70, 0x58, 0xd4, 0x42, 0xed, 0xda, 0xc6, 0xf4, 0xf6, 0xbd, - 0x4d, 0x19, 0x6e, 0xde, 0xb6, 0x99, 0x39, 0x80, 0x3f, 0x84, 0x86, 0xd0, 0xe2, 0x42, 0x61, 0x73, - 0x7a, 0x7b, 0x65, 0xd3, 0xe7, 0xc0, 0x38, 0xbd, 0x73, 0x66, 0x5d, 0x6d, 0x26, 0x52, 0x73, 0xa0, - 0x88, 0xdb, 0x30, 0x7d, 0x12, 0xd0, 0xb0, 0x1b, 0x39, 0xbe, 0xd7, 0xd9, 0x6f, 0xd5, 0x44, 0x18, - 0x3a, 0x0b, 0x1b, 0x70, 0xf7, 0x24, 0x50, 0x51, 0x4e, 0x0a, 0x71, 0x42, 0x8b, 0xd3, 0x37, 0x1e, - 0x0d, 0x95, 0xb8, 0xae, 0x4e, 0x0f, 0x58, 0xe4, 0x2b, 0x98, 0x4b, 0x85, 0x3a, 0x0a, 0xf8, 0xe9, - 0xd0, 0x6a, 0x43, 0x86, 0x46, 0x42, 0x98, 0x7f, 0x42, 0x23, 0x41, 0x33, 0x21, 0xa3, 0xd7, 0xdc, - 0x61, 0xa9, 0xb0, 0x9f, 0x80, 0xdc, 0x30, 0x75, 0x56, 0x16, 0x90, 0x89, 0x6a, 0x40, 0x6a, 0x69, - 0x40, 0xc8, 0xf7, 0x08, 0x16, 0x32, 0x46, 0x47, 0x8a, 0xf8, 0x31, 0x34, 0x93, 0x40, 0x84, 0xa7, - 0x35, 0x91, 0x0e, 0x65, 0x51, 0xa7, 0x95, 0xc9, 0x0f, 0x08, 0xe6, 0x5e, 0x2a, 0x2f, 0xe2, 0xc8, - 0x53, 0x18, 0xa2, 0x61, 0xd3, 0x43, 0x8f, 0x75, 0xa2, 0xe0, 0xf2, 0x2b, 0x53, 0x87, 0x1c, 0xc0, - 0x7c, 0xda, 0x0d, 0x16, 0xe0, 0xf7, 0xf5, 0x42, 0x54, 0x8e, 0x2c, 0xa8, 0x2c, 0x1f, 0x08, 0x4c, - 0x4d, 0x89, 0x7c, 0x0d, 0x46, 0x8c, 0xe9, 0x4e, 0x10, 0xb8, 0xce, 0x85, 0xf8, 0x3e, 0x8f, 0x94, - 0x07, 0xa6, 0xbb, 0x88, 0xaa, 0x5d, 0x2c, 0xb8, 0xcc, 0x75, 0x80, 0xc3, 0xd0, 0xef, 0xa5, 0xae, - 0x53, 0xe3, 0x90, 0x5f, 0x11, 0xdc, 0x2f, 0x35, 0x3e, 0xd2, 0xd5, 0x1e, 0xc0, 0x7c, 0x5c, 0xf6, - 0x7d, 0xca, 0x22, 0xed, 0x76, 0xef, 0xe5, 0xef, 0x43, 0x29, 0x99, 0xb9, 0x23, 0xe4, 0x6f, 0x04, - 0xcb, 0x67, 0x61, 0xd7, 0x63, 0x97, 0x34, 0x14, 0x42, 0x51, 0x75, 0x1c, 0x90, 0x16, 0xdc, 0x51, - 0x09, 0xad, 0xf0, 0x88, 0x49, 0xfc, 0x0e, 0xcc, 0x9e, 0xb8, 0x96, 0x5e, 0xb1, 0xd2, 0xb5, 0x0c, - 0x97, 0xeb, 0x1d, 0xd3, 0x1b, 0x5d, 0x4f, 0x02, 0x93, 0xe1, 0x66, 0xe1, 0x9d, 0xac, 0xae, 0x95, - 0x7a, 0xa6, 0x56, 0x9e, 0xc3, 0x4a, 0x51, 0x00, 0xa3, 0xe5, 0xc8, 0x8f, 0x08, 0x66, 0x9e, 0xf9, - 0x8e, 0x97, 0x74, 0xd4, 0x72, 0x14, 0xd6, 0x01, 0x4c, 0x7a, 0x7d, 0x44, 0x19, 0xeb, 0xda, 0x54, - 0x21, 0xa0, 0x71, 0xaa, 0xea, 0xfb, 0xf6, 0x88, 0xc9, 0x2e, 0x34, 0x35, 0x3f, 0x46, 0x0b, 0xe6, - 0x1f, 0x9e, 0x74, 0x99, 0x8c, 0xe3, 0x02, 0xdf, 0x63, 0x54, 0x75, 0x31, 0xdd, 0x0b, 0x54, 0x8d, - 0x7b, 0xb6, 0x6e, 0x35, 0x64, 0x6a, 0x39, 0x64, 0xb4, 0x62, 0x98, 0xcc, 0x16, 0x03, 0x97, 0x3f, - 0xed, 0x7a, 0x96, 0x4b, 0x2d, 0x9e, 0xd6, 0xf2, 0x3e, 0x35, 0x0e, 0x26, 0x30, 0x23, 0x29, 0x93, - 0xb2, 0xbe, 0x1b, 0xb5, 0xa6, 0x44, 0x45, 0xa4, 0x78, 0xe4, 0x14, 0xd6, 0xca, 0x43, 0x1b, 0x0d, - 0xae, 0x4b, 0x98, 0x39, 0xed, 0x3b, 0xd1, 0x10, 0x57, 0x3f, 0x5e, 0x73, 0xdf, 0x85, 0xa6, 0x66, - 0x67, 0x34, 0x5f, 0x7f, 0x43, 0xb0, 0x1c, 0xf7, 0x93, 0xc1, 0xf0, 0xae, 0xf6, 0x7a, 0xac, 0x26, - 0xcc, 0xfb, 0xd0, 0xa1, 0xe3, 0x46, 0x34, 0x14, 0x17, 0x5a, 0x37, 0x15, 0xc5, 0xed, 0x1d, 0xd3, - 0x2f, 0xa3, 0x97, 0xf4, 0x5a, 0xdc, 0x64, 0xdd, 0x8c, 0x49, 0xf2, 0x3b, 0x82, 0x95, 0x22, 0x1f, - 0x47, 0x6a, 0x77, 0x9f, 0x00, 0xf4, 0x06, 0x5b, 0x8d, 0x6c, 0x74, 0xed, 0x7c, 0xa3, 0x93, 0x76, - 0x0e, 0xfb, 0xae, 0x2b, 0x26, 0x85, 0x76, 0x86, 0xdb, 0xf4, 0x94, 0xa3, 0x32, 0x82, 0x98, 0x24, - 0xbf, 0xe4, 0x1c, 0x4d, 0x06, 0x7d, 0x65, 0xf9, 0x6b, 0x0e, 0x4d, 0x88, 0x0d, 0x40, 0x37, 0x37, - 0x5e, 0xf9, 0xff, 0x8c, 0x60, 0xb5, 0xd0, 0xa5, 0x37, 0x03, 0x1e, 0xf9, 0x03, 0x01, 0x7e, 0xee, - 0x5c, 0x5c, 0x69, 0x7a, 0xd5, 0xf0, 0xbc, 0x0b, 0xf3, 0x5c, 0x9f, 0x5a, 0x32, 0x64, 0x0d, 0xa4, - 0x1c, 0x9f, 0xbb, 0x6d, 0xd2, 0x2e, 0xf3, 0x3d, 0x05, 0x94, 0xa2, 0xb2, 0x30, 0xd5, 0xab, 0xcb, - 0x6c, 0x2a, 0x53, 0x66, 0x8f, 0xa0, 0xd1, 0xb1, 0xb6, 0x65, 0xbb, 0x28, 0xdd, 0xb0, 0x85, 0x69, - 0xd1, 0x64, 0xe4, 0x7a, 0xad, 0x28, 0xf2, 0x0d, 0x2c, 0xe6, 0xc2, 0x1d, 0x09, 0xfa, 0x87, 0xd0, - 0x4c, 0xbc, 0xd0, 0xd0, 0x9f, 0x57, 0xe5, 0x9d, 0xc8, 0xcc, 0xb4, 0x1a, 0xe9, 0x8b, 0xfa, 0xe6, - 0x23, 0x80, 0x5a, 0xc2, 0x8b, 0xb8, 0xbe, 0xd3, 0xcd, 0x15, 0xe5, 0x9a, 0x6b, 0x1b, 0xa6, 0xfd, - 0x7c, 0x6f, 0xf2, 0x87, 0xec, 0x4d, 0xdf, 0xca, 0x52, 0xc8, 0xd9, 0x1d, 0x6b, 0xdf, 0x1e, 0x62, - 0xf3, 0x1c, 0x28, 0x92, 0x3f, 0x11, 0x2c, 0x75, 0xbc, 0xd7, 0x4e, 0x44, 0xb9, 0x4f, 0x67, 0x7e, - 0xd2, 0x8f, 0x6f, 0xef, 0xba, 0xe5, 0x23, 0x69, 0x90, 0x62, 0x93, 0xa9, 0x14, 0x7b, 0x0f, 0x16, - 0xa4, 0x2d, 0x3d, 0x4f, 0xeb, 0x22, 0x4f, 0xf3, 0x82, 0xca, 0x74, 0xfb, 0x0e, 0xc1, 0x72, 0x81, - 0xdb, 0xff, 0x6b, 0xd2, 0x78, 0xb0, 0x94, 0x2c, 0x99, 0xae, 0x3b, 0x4c, 0x99, 0x8e, 0xb7, 0x98, - 0xff, 0xa4, 0x4d, 0x21, 0xcd, 0xe0, 0x9b, 0xe9, 0x51, 0xdb, 0x7f, 0xdd, 0x05, 0xf9, 0x90, 0xc7, - 0x8f, 0x61, 0xfa, 0x62, 0xf0, 0x5a, 0xc4, 0xcb, 0xf1, 0x2c, 0x4d, 0x3d, 0x96, 0x8d, 0x95, 0x22, - 0x36, 0x0b, 0xf0, 0x43, 0x68, 0x7c, 0x11, 0xaf, 0x5e, 0x78, 0x51, 0x29, 0xe9, 0x4b, 0xa1, 0xb1, - 0x94, 0x67, 0xca, 0x73, 0xd7, 0xf1, 0x5c, 0x4f, 0xce, 0xe9, 0x1b, 0x45, 0x72, 0x2e, 0x3d, 0xfe, - 0x77, 0xa1, 0x69, 0xeb, 0x6f, 0x3d, 0xbc, 0x1a, 0xbf, 0xd6, 0x33, 0xcf, 0x4e, 0xa3, 0x55, 0x2c, - 0x60, 0x01, 0xfe, 0x18, 0x66, 0x98, 0xf6, 0x44, 0xc2, 0x71, 0x6c, 0x99, 0xe7, 0x9b, 0xb1, 0x5a, - 0xc8, 0x67, 0x01, 0xfe, 0x1c, 0x56, 0xed, 0xe2, 0xf7, 0x09, 0x7e, 0x90, 0xb1, 0x9a, 0x7f, 0x3c, - 0x19, 0xe4, 0x36, 0x15, 0x16, 0xe0, 0x53, 0xc0, 0x51, 0x6e, 0x4f, 0xc7, 0x6b, 0xea, 0x64, 0xe1, - 0x1b, 0xc4, 0x78, 0xab, 0x42, 0xca, 0x02, 0x7c, 0x01, 0x2d, 0xbb, 0x64, 0x09, 0xc4, 0x24, 0xf5, - 0x97, 0x47, 0xe1, 0x02, 0x6c, 0xbc, 0x7d, 0xab, 0x8e, 0xf4, 0xdb, 0xce, 0x6d, 0x31, 0x89, 0xdf, - 0x85, 0x4b, 0x58, 0xe2, 0x77, 0xc9, 0xfa, 0x73, 0x06, 0x8b, 0x76, 0x7e, 0xb8, 0xe3, 0xe2, 0x53, - 0xc9, 0xed, 0xaf, 0x57, 0x89, 0x59, 0x80, 0x9f, 0xc2, 0xdc, 0x55, 0x7a, 0x66, 0xe1, 0xf8, 0x7f, - 0x9f, 0xfc, 0xe8, 0x36, 0x8c, 0x32, 0x51, 0x12, 0x72, 0x66, 0x08, 0xe8, 0x21, 0xe7, 0xe7, 0x92, - 0x1e, 0x72, 0xd1, 0xf4, 0x38, 0x86, 0x05, 0x27, 0xdb, 0x1d, 0xf1, 0xfd, 0xb8, 0xa1, 0x15, 0xb4, - 0x7b, 0x63, 0xad, 0x5c, 0x28, 0xbf, 0x67, 0x67, 0x3b, 0x4f, 0xf2, 0xbd, 0xa2, 0x26, 0x68, 0xac, - 0x95, 0x0b, 0x59, 0xb0, 0x3b, 0xf7, 0x59, 0x73, 0x53, 0xfe, 0x27, 0xf8, 0x48, 0xfc, 0xbe, 0x9a, - 0x12, 0x7f, 0xf8, 0x7d, 0xf0, 0x5f, 0x00, 0x00, 0x00, 0xff, 0xff, 0xac, 0x58, 0xf3, 0xe0, 0x2f, - 0x14, 0x00, 0x00, +func init() { proto.RegisterFile("group/group.proto", fileDescriptor_group_a130b5186d308ee6) } + +var fileDescriptor_group_a130b5186d308ee6 = []byte{ + // 1246 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x58, 0x4b, 0x6f, 0x23, 0xc5, + 0x13, 0x57, 0xc7, 0x71, 0x76, 0x5d, 0x89, 0xf3, 0xe8, 0xbc, 0xfc, 0x9f, 0xf5, 0x3f, 0x64, 0x1b, + 0x69, 0x15, 0x21, 0x64, 0x8b, 0x20, 0xed, 0x81, 0x45, 0xa0, 0x38, 0x8f, 0x5d, 0x6f, 0x36, 0x89, + 0x32, 0x1b, 0x2e, 0x5c, 0x82, 0x37, 0xd3, 0x19, 0x0d, 0x19, 0xcf, 0x8c, 0xa7, 0xc7, 0x09, 0xe2, + 0xb2, 0xe2, 0xb2, 0x12, 0xe2, 0x02, 0xe2, 0xca, 0x85, 0x3b, 0x07, 0x0e, 0x9c, 0xb8, 0xf0, 0x39, + 0xf8, 0x14, 0x7c, 0x05, 0x34, 0xdd, 0x3d, 0xe3, 0x9e, 0x67, 0xb2, 0xb6, 0xc4, 0x5e, 0x2c, 0x75, + 0x55, 0xf5, 0xd4, 0xfb, 0x57, 0xd5, 0x86, 0x25, 0xd3, 0x77, 0x87, 0x5e, 0x9b, 0xff, 0xb6, 0x3c, + 0xdf, 0x0d, 0x5c, 0x5c, 0xe5, 0x07, 0xed, 0xe1, 0x89, 0x47, 0x9d, 0xf3, 0xee, 0x51, 0xdb, 0xbb, + 0x32, 0xdb, 0x9c, 0xd3, 0x66, 0xc6, 0xd5, 0xf9, 0x0d, 0x6b, 0xdf, 0x30, 0x21, 0x49, 0x3e, 0x03, + 0xd8, 0x75, 0xfb, 0x7d, 0xd7, 0xd1, 0x29, 0xf3, 0x70, 0x03, 0xee, 0xed, 0xfb, 0xfe, 0xae, 0x6b, + 0xd0, 0x06, 0xda, 0x44, 0x5b, 0x55, 0x3d, 0x3a, 0xe2, 0x35, 0x98, 0xd9, 0xf7, 0xfd, 0x23, 0x66, + 0x36, 0xa6, 0x36, 0xd1, 0x56, 0x4d, 0x97, 0x27, 0xf2, 0x1c, 0xf0, 0xd3, 0x50, 0xd7, 0x8e, 0x61, + 0x1c, 0xd1, 0xfe, 0x2b, 0xea, 0x77, 0x9d, 0x4b, 0x37, 0x94, 0xfe, 0x82, 0x51, 0xbf, 0xbb, 0xc7, + 0x3f, 0x53, 0xd3, 0xe5, 0x09, 0x37, 0xa1, 0xa6, 0xbb, 0x36, 0x7d, 0x41, 0xaf, 0xa9, 0xcd, 0x3f, + 0x54, 0xd5, 0x47, 0x04, 0xf2, 0x0f, 0x82, 0xf9, 0x5d, 0x9f, 0xf6, 0x02, 0xca, 0x3f, 0xa9, 0xd3, + 0x01, 0xde, 0x81, 0xf9, 0xae, 0x63, 0x05, 0xe2, 0xd3, 0x2f, 0x2c, 0x16, 0x34, 0xd0, 0x66, 0x65, + 0x6b, 0x76, 0xfb, 0x7f, 0x2d, 0xe1, 0x6e, 0x56, 0xb7, 0x9e, 0xba, 0x80, 0x3f, 0x81, 0x1a, 0x97, + 0x0a, 0x99, 0x5c, 0xe7, 0xec, 0x76, 0xb3, 0xc5, 0xa8, 0x7f, 0x4d, 0xfd, 0xf3, 0x9e, 0x67, 0x9d, + 0x7b, 0x3d, 0xbf, 0xd7, 0x67, 0xad, 0x58, 0x46, 0x1f, 0x89, 0xe3, 0x4d, 0x98, 0x3d, 0xf1, 0xa8, + 0xdf, 0x0b, 0x2c, 0xd7, 0xe9, 0xee, 0x35, 0x2a, 0xdc, 0x19, 0x95, 0x84, 0x35, 0xb8, 0x7f, 0xe2, + 0x49, 0x5f, 0xa7, 0x39, 0x3b, 0x3e, 0xf3, 0xdb, 0x37, 0x0e, 0xf5, 0x25, 0xbb, 0x2a, 0x6f, 0x8f, + 0x48, 0xe4, 0x35, 0x2c, 0x24, 0x1c, 0x1e, 0x27, 0x05, 0x49, 0x07, 0x2b, 0x6f, 0xe5, 0x20, 0xf1, + 0x61, 0xf1, 0x29, 0x0d, 0xf8, 0x99, 0x71, 0x1e, 0x1d, 0x84, 0x66, 0x0b, 0x81, 0xbd, 0x38, 0xe0, + 0x35, 0x5d, 0x25, 0xa5, 0xc3, 0x32, 0x55, 0x1e, 0x96, 0x4a, 0x32, 0x2c, 0xe4, 0x7b, 0x04, 0x4b, + 0x29, 0xa5, 0x63, 0xf9, 0xdd, 0x81, 0x7a, 0xec, 0x08, 0xb7, 0xb4, 0xc2, 0x4b, 0xa3, 0xdc, 0xf7, + 0xe4, 0x15, 0xf2, 0x03, 0x82, 0x85, 0x97, 0xd2, 0x96, 0xc8, 0xff, 0x44, 0x3c, 0xd1, 0xdb, 0x15, + 0x8c, 0xea, 0xf7, 0x54, 0x4e, 0x39, 0x94, 0x16, 0x13, 0xd9, 0x87, 0xc5, 0xa4, 0x31, 0xcc, 0xc3, + 0x1f, 0xa9, 0x0d, 0x2a, 0xcd, 0x59, 0x92, 0xd5, 0x3f, 0x62, 0xe8, 0x8a, 0x10, 0xf9, 0x16, 0xb4, + 0x28, 0xbe, 0x3b, 0x9e, 0x67, 0x5b, 0x17, 0xfc, 0xfb, 0xa1, 0xbf, 0xa1, 0x7b, 0xaa, 0x89, 0xa8, + 0xdc, 0xc4, 0x9c, 0xc4, 0x6e, 0x00, 0x1c, 0xf8, 0x6e, 0x3f, 0x91, 0x5a, 0x85, 0x42, 0x7e, 0x41, + 0xf0, 0xa0, 0x50, 0xf9, 0x58, 0x69, 0x3e, 0x84, 0xc5, 0x08, 0x0e, 0x86, 0x94, 0x05, 0x4a, 0xa6, + 0xdf, 0x2b, 0xca, 0x8a, 0x14, 0xd5, 0x33, 0x17, 0xc9, 0x5f, 0x08, 0x56, 0xcf, 0xfc, 0x9e, 0xc3, + 0x2e, 0xa9, 0xcf, 0x99, 0xbc, 0x1b, 0xc3, 0xb0, 0x34, 0xe0, 0x9e, 0x2c, 0x71, 0x19, 0x95, 0xe8, + 0x88, 0x1f, 0xc1, 0xfc, 0x89, 0x6d, 0xa8, 0x9d, 0x2c, 0x0c, 0x4c, 0x51, 0x43, 0xb9, 0x63, 0x7a, + 0xa3, 0xca, 0x89, 0xf0, 0xa4, 0xa8, 0xe9, 0x20, 0x4f, 0x97, 0x77, 0x4f, 0x35, 0xd5, 0x3d, 0x87, + 0xb0, 0x96, 0xe7, 0xc0, 0x78, 0x95, 0xf2, 0x06, 0xc1, 0xdc, 0x73, 0xd7, 0x72, 0x62, 0xbc, 0x2d, + 0x8e, 0xc2, 0x06, 0x80, 0x4e, 0x07, 0x47, 0x94, 0xb1, 0x9e, 0x49, 0x65, 0x04, 0x14, 0x4a, 0x59, + 0xc7, 0xdf, 0xee, 0x31, 0xe9, 0x40, 0x5d, 0xb1, 0x63, 0x3c, 0x67, 0xfe, 0x0e, 0x4b, 0x2f, 0x55, + 0x77, 0x21, 0xc3, 0x75, 0x18, 0x95, 0xb8, 0xa6, 0x5a, 0x81, 0xca, 0xe3, 0x9e, 0xee, 0x5e, 0x25, + 0x32, 0x95, 0x4c, 0x64, 0x94, 0x96, 0x98, 0x4e, 0xb7, 0x44, 0xc8, 0x7f, 0xd6, 0x73, 0x0c, 0x9b, + 0x1a, 0x61, 0x71, 0x8b, 0x7c, 0x2a, 0x14, 0x4c, 0x60, 0x4e, 0x9c, 0x74, 0xca, 0x86, 0x76, 0xd0, + 0x98, 0xe1, 0x7d, 0x91, 0xa0, 0x91, 0x53, 0x68, 0x16, 0xbb, 0x36, 0x5e, 0xb8, 0x2e, 0x61, 0xee, + 0x74, 0x68, 0x05, 0x77, 0x48, 0xfd, 0x64, 0x70, 0xdf, 0x81, 0xba, 0xa2, 0x67, 0x3c, 0x5b, 0x7f, + 0x45, 0xb0, 0x1a, 0xa1, 0xca, 0x68, 0xb4, 0x97, 0x5b, 0x3d, 0x11, 0x14, 0x87, 0x68, 0x74, 0x60, + 0xd9, 0x01, 0xf5, 0x79, 0x42, 0xab, 0xba, 0x3c, 0x85, 0xfa, 0x8e, 0xe9, 0x37, 0xc1, 0x4b, 0x3a, + 0xe0, 0x99, 0xac, 0xea, 0xd1, 0x91, 0xfc, 0x86, 0x60, 0x2d, 0xcf, 0xc6, 0xb1, 0x40, 0xef, 0x00, + 0xa0, 0x3f, 0xda, 0x79, 0x04, 0xdc, 0x3d, 0x2a, 0x82, 0x3b, 0xa1, 0xed, 0x60, 0x68, 0xdb, 0x7c, + 0x6a, 0x28, 0x37, 0x43, 0xcd, 0x8e, 0x34, 0x57, 0xf8, 0x11, 0x1d, 0xc9, 0x8f, 0x19, 0x73, 0xe3, + 0x05, 0xa0, 0x14, 0x04, 0x14, 0xb3, 0xa6, 0xf8, 0x66, 0xa0, 0xaa, 0x9b, 0x0c, 0x04, 0x7e, 0x46, + 0xb0, 0x9e, 0x6b, 0xd2, 0xbb, 0x0c, 0x21, 0xf9, 0x1d, 0x01, 0x3e, 0xb4, 0x2e, 0xae, 0x14, 0xb9, + 0xf2, 0x20, 0x7d, 0x00, 0x8b, 0xa1, 0x3c, 0x35, 0x84, 0xe3, 0x4a, 0xa8, 0x32, 0xf4, 0xd0, 0x78, + 0x9d, 0xf6, 0x98, 0xeb, 0xc8, 0x70, 0xc9, 0x53, 0x3a, 0x58, 0xd5, 0xf2, 0x96, 0x9b, 0x49, 0xb5, + 0xdc, 0x13, 0xa8, 0x75, 0x8d, 0x6d, 0x01, 0x1d, 0x85, 0xbb, 0x38, 0x57, 0xcd, 0x01, 0x47, 0x2c, + 0xe2, 0xf2, 0x44, 0x5e, 0xc3, 0x72, 0xc6, 0xdd, 0xb1, 0x12, 0xf0, 0x18, 0xea, 0xb1, 0x15, 0x4a, + 0x0e, 0x16, 0x65, 0xab, 0xc7, 0x3c, 0x3d, 0x29, 0x46, 0x86, 0xbc, 0xd7, 0xc3, 0x71, 0x40, 0x0d, + 0x6e, 0x45, 0xd4, 0xeb, 0x49, 0xa0, 0x45, 0x19, 0xa0, 0xdd, 0x84, 0x59, 0x37, 0x8b, 0x53, 0xee, + 0x1d, 0x71, 0xea, 0x8d, 0x68, 0x88, 0x8c, 0xde, 0x89, 0x76, 0xf2, 0x3b, 0xef, 0xa5, 0x23, 0x71, + 0xf2, 0x07, 0x82, 0x95, 0xae, 0x73, 0x6d, 0x05, 0x34, 0xb4, 0xec, 0xcc, 0x8d, 0x11, 0xfa, 0x76, + 0x1c, 0x2e, 0x1e, 0x52, 0xa3, 0x42, 0x9b, 0x4e, 0x14, 0xda, 0x87, 0xb0, 0x24, 0x74, 0xa9, 0xd5, + 0x5a, 0xe5, 0xd5, 0x9a, 0x65, 0x94, 0x16, 0xdd, 0x77, 0x08, 0x56, 0x73, 0xcc, 0xfe, 0x4f, 0x4b, + 0xc7, 0x81, 0x95, 0x78, 0xf9, 0xb4, 0xed, 0xbb, 0x34, 0xeb, 0x64, 0x0b, 0xfb, 0x4f, 0xca, 0x5c, + 0x52, 0x14, 0xbe, 0x4b, 0xbc, 0xda, 0xfe, 0xf3, 0x3e, 0x88, 0xe7, 0x3f, 0xfe, 0x14, 0x66, 0x2f, + 0x46, 0xaf, 0x4b, 0xbc, 0x1a, 0xcd, 0xd8, 0xc4, 0x13, 0x5b, 0x5b, 0xcb, 0x23, 0x33, 0x0f, 0x3f, + 0x86, 0xda, 0xd7, 0xd1, 0x4a, 0x86, 0x97, 0xa5, 0x90, 0xba, 0x2c, 0x6a, 0x2b, 0x59, 0xa2, 0xb8, + 0x37, 0x88, 0xe6, 0x7d, 0x7c, 0x4f, 0xdd, 0x34, 0xe2, 0x7b, 0xc9, 0xb5, 0xa0, 0x03, 0x75, 0x53, + 0x7d, 0x15, 0xe2, 0xf5, 0xe8, 0x8d, 0x9f, 0x7a, 0xa0, 0x6a, 0x8d, 0x7c, 0x06, 0xf3, 0xf0, 0xe7, + 0x30, 0xc7, 0x94, 0x07, 0x14, 0x8e, 0x7c, 0x4b, 0x3d, 0xf1, 0xb4, 0xf5, 0x5c, 0x3a, 0xf3, 0xf0, + 0x57, 0xb0, 0x6e, 0xe6, 0xbf, 0x5e, 0xf0, 0xc3, 0x94, 0xd6, 0xec, 0xd3, 0x4a, 0x23, 0xb7, 0x89, + 0x30, 0x0f, 0x9f, 0x02, 0x0e, 0x32, 0xfb, 0x3b, 0x6e, 0xca, 0x9b, 0xb9, 0x6f, 0x13, 0xed, 0xff, + 0x25, 0x5c, 0xe6, 0xe1, 0x0b, 0x68, 0x98, 0x05, 0xcb, 0x21, 0x26, 0x89, 0x3f, 0x4a, 0x72, 0x17, + 0x63, 0xed, 0xfd, 0x5b, 0x65, 0x84, 0xdd, 0x66, 0x66, 0xbb, 0x89, 0xed, 0xce, 0x5d, 0xce, 0x62, + 0xbb, 0x0b, 0xd6, 0xa2, 0x33, 0x58, 0x36, 0xb3, 0xe3, 0x1e, 0xe7, 0xdf, 0x8a, 0xb3, 0xbf, 0x51, + 0xc6, 0x66, 0x1e, 0x7e, 0x06, 0x0b, 0x57, 0xc9, 0xf9, 0x85, 0xa3, 0x7f, 0x8b, 0xb2, 0x63, 0x5c, + 0xd3, 0x8a, 0x58, 0xb1, 0xcb, 0xa9, 0x81, 0xa0, 0xba, 0x9c, 0x9d, 0x51, 0xaa, 0xcb, 0x79, 0x93, + 0xe4, 0x18, 0x96, 0xac, 0x34, 0x46, 0xe2, 0x07, 0x11, 0xac, 0xe5, 0x80, 0xbe, 0xd6, 0x2c, 0x66, + 0x8a, 0xef, 0x99, 0x69, 0xfc, 0x89, 0xbf, 0x97, 0x07, 0x85, 0x5a, 0xb3, 0x98, 0xc9, 0xbc, 0xce, + 0xc2, 0x97, 0xf5, 0x96, 0xf8, 0x27, 0xf1, 0x09, 0xff, 0x7d, 0x35, 0xc3, 0xff, 0x26, 0xfc, 0xf8, + 0xdf, 0x00, 0x00, 0x00, 0xff, 0xff, 0xf6, 0x24, 0x19, 0x44, 0x65, 0x14, 0x00, 0x00, } diff --git a/pkg/proto/group/group.proto b/pkg/proto/group/group.proto index c10ae01f9..6ba7c52ba 100644 --- a/pkg/proto/group/group.proto +++ b/pkg/proto/group/group.proto @@ -16,7 +16,7 @@ message GroupAddMemberInfo{ message CreateGroupReq{ repeated GroupAddMemberInfo InitMemberList = 1; - open_im_sdk.GroupInfo GroupInfo = 2; + server_api_params.GroupInfo GroupInfo = 2; string OperationID = 3; string OpUserID = 4; //app manager or group owner string OwnerUserID = 5; //owner @@ -24,7 +24,7 @@ message CreateGroupReq{ message CreateGroupResp{ int32 ErrCode = 1; string ErrMsg = 2; - open_im_sdk.GroupInfo GroupInfo = 3; + server_api_params.GroupInfo GroupInfo = 3; } @@ -36,12 +36,12 @@ message GetGroupsInfoReq{ message GetGroupsInfoResp{ int32 ErrCode = 1; string ErrMsg = 2; - repeated open_im_sdk.GroupInfo GroupInfoList = 3; + repeated server_api_params.GroupInfo GroupInfoList = 3; } message SetGroupInfoReq{ - open_im_sdk.GroupInfo GroupInfo = 1; + server_api_params.GroupInfo GroupInfo = 1; string OpUserID = 2; //app manager or group owner string OperationID = 3; } @@ -58,7 +58,7 @@ message GetGroupApplicationListReq { message GetGroupApplicationListResp { int32 ErrCode = 1; string ErrMsg = 2; - repeated open_im_sdk.GroupRequest GroupRequestList = 3; + repeated server_api_params.GroupRequest GroupRequestList = 3; } @@ -120,7 +120,7 @@ message GetGroupMemberListReq { message GetGroupMemberListResp { int32 ErrCode = 1; string ErrMsg = 2; - repeated open_im_sdk.GroupMemberFullInfo memberList = 3; + repeated server_api_params.GroupMemberFullInfo memberList = 3; int32 nextSeq = 4; } @@ -135,7 +135,7 @@ message GetGroupMembersInfoReq { message GetGroupMembersInfoResp { int32 ErrCode = 1; string ErrMsg = 2; - repeated open_im_sdk.GroupMemberFullInfo memberList = 3; + repeated server_api_params.GroupMemberFullInfo memberList = 3; } message KickGroupMemberReq { @@ -166,7 +166,7 @@ message GetJoinedGroupListReq { message GetJoinedGroupListResp{ int32 ErrCode = 1; string ErrMsg = 2; - repeated open_im_sdk.GroupInfo GroupList = 3; + repeated server_api_params.GroupInfo GroupList = 3; } @@ -192,7 +192,7 @@ message GetGroupAllMemberReq { message GetGroupAllMemberResp { int32 ErrCode = 1; string ErrMsg = 2; - repeated open_im_sdk.GroupMemberFullInfo memberList = 3; + repeated server_api_params.GroupMemberFullInfo memberList = 3; } diff --git a/pkg/proto/sdk_ws/ws.pb.go b/pkg/proto/sdk_ws/ws.pb.go index a785dab20..935b15cee 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_1bc577ef51df0a70, []int{0} + return fileDescriptor_ws_1c8466de999dbc0c, []int{0} } func (m *GroupInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupInfo.Unmarshal(m, b) @@ -164,7 +164,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_1bc577ef51df0a70, []int{1} + return fileDescriptor_ws_1c8466de999dbc0c, []int{1} } func (m *GroupMemberFullInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupMemberFullInfo.Unmarshal(m, b) @@ -269,7 +269,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_1bc577ef51df0a70, []int{2} + return fileDescriptor_ws_1c8466de999dbc0c, []int{2} } func (m *PublicUserInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_PublicUserInfo.Unmarshal(m, b) @@ -344,7 +344,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_1bc577ef51df0a70, []int{3} + return fileDescriptor_ws_1c8466de999dbc0c, []int{3} } func (m *UserInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_UserInfo.Unmarshal(m, b) @@ -451,7 +451,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_1bc577ef51df0a70, []int{4} + return fileDescriptor_ws_1c8466de999dbc0c, []int{4} } func (m *FriendInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FriendInfo.Unmarshal(m, b) @@ -536,7 +536,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_1bc577ef51df0a70, []int{5} + return fileDescriptor_ws_1c8466de999dbc0c, []int{5} } func (m *BlackInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_BlackInfo.Unmarshal(m, b) @@ -599,25 +599,25 @@ func (m *BlackInfo) GetEx() string { } type GroupRequest struct { - UserID string `protobuf:"bytes,1,opt,name=userID" json:"userID,omitempty"` - GroupID string `protobuf:"bytes,2,opt,name=groupID" json:"groupID,omitempty"` - HandleResult string `protobuf:"bytes,3,opt,name=handleResult" json:"handleResult,omitempty"` - ReqMsg string `protobuf:"bytes,4,opt,name=reqMsg" json:"reqMsg,omitempty"` - HandleMsg string `protobuf:"bytes,5,opt,name=handleMsg" json:"handleMsg,omitempty"` - ReqTime uint32 `protobuf:"varint,6,opt,name=reqTime" json:"reqTime,omitempty"` - HandleUserID string `protobuf:"bytes,7,opt,name=handleUserID" json:"handleUserID,omitempty"` - HandleTime uint32 `protobuf:"varint,8,opt,name=handleTime" json:"handleTime,omitempty"` - Ex string `protobuf:"bytes,9,opt,name=ex" json:"ex,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + UserInfo *PublicUserInfo `protobuf:"bytes,1,opt,name=userInfo" json:"userInfo,omitempty"` + GroupInfo *GroupInfo `protobuf:"bytes,2,opt,name=groupInfo" json:"groupInfo,omitempty"` + HandleResult string `protobuf:"bytes,3,opt,name=handleResult" json:"handleResult,omitempty"` + ReqMsg string `protobuf:"bytes,4,opt,name=reqMsg" json:"reqMsg,omitempty"` + HandleMsg string `protobuf:"bytes,5,opt,name=handleMsg" json:"handleMsg,omitempty"` + ReqTime uint32 `protobuf:"varint,6,opt,name=reqTime" json:"reqTime,omitempty"` + HandleUserID string `protobuf:"bytes,7,opt,name=handleUserID" json:"handleUserID,omitempty"` + HandleTime uint32 `protobuf:"varint,8,opt,name=handleTime" json:"handleTime,omitempty"` + Ex string `protobuf:"bytes,9,opt,name=ex" json:"ex,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } 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_1bc577ef51df0a70, []int{6} + return fileDescriptor_ws_1c8466de999dbc0c, []int{6} } func (m *GroupRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupRequest.Unmarshal(m, b) @@ -637,18 +637,18 @@ func (m *GroupRequest) XXX_DiscardUnknown() { var xxx_messageInfo_GroupRequest proto.InternalMessageInfo -func (m *GroupRequest) GetUserID() string { +func (m *GroupRequest) GetUserInfo() *PublicUserInfo { if m != nil { - return m.UserID + return m.UserInfo } - return "" + return nil } -func (m *GroupRequest) GetGroupID() string { +func (m *GroupRequest) GetGroupInfo() *GroupInfo { if m != nil { - return m.GroupID + return m.GroupInfo } - return "" + return nil } func (m *GroupRequest) GetHandleResult() string { @@ -725,7 +725,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_1bc577ef51df0a70, []int{7} + return fileDescriptor_ws_1c8466de999dbc0c, []int{7} } func (m *FriendRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FriendRequest.Unmarshal(m, b) @@ -866,7 +866,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_1bc577ef51df0a70, []int{8} + return fileDescriptor_ws_1c8466de999dbc0c, []int{8} } func (m *PullMessageBySeqListResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_PullMessageBySeqListResp.Unmarshal(m, b) @@ -941,7 +941,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_1bc577ef51df0a70, []int{9} + return fileDescriptor_ws_1c8466de999dbc0c, []int{9} } func (m *PullMessageBySeqListReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_PullMessageBySeqListReq.Unmarshal(m, b) @@ -996,7 +996,7 @@ func (m *PullMessageReq) Reset() { *m = PullMessageReq{} } func (m *PullMessageReq) String() string { return proto.CompactTextString(m) } func (*PullMessageReq) ProtoMessage() {} func (*PullMessageReq) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_1bc577ef51df0a70, []int{10} + return fileDescriptor_ws_1c8466de999dbc0c, []int{10} } func (m *PullMessageReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_PullMessageReq.Unmarshal(m, b) @@ -1060,7 +1060,7 @@ func (m *PullMessageResp) Reset() { *m = PullMessageResp{} } func (m *PullMessageResp) String() string { return proto.CompactTextString(m) } func (*PullMessageResp) ProtoMessage() {} func (*PullMessageResp) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_1bc577ef51df0a70, []int{11} + return fileDescriptor_ws_1c8466de999dbc0c, []int{11} } func (m *PullMessageResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_PullMessageResp.Unmarshal(m, b) @@ -1132,7 +1132,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_1bc577ef51df0a70, []int{12} + return fileDescriptor_ws_1c8466de999dbc0c, []int{12} } func (m *GetMaxAndMinSeqReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetMaxAndMinSeqReq.Unmarshal(m, b) @@ -1164,7 +1164,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_1bc577ef51df0a70, []int{13} + return fileDescriptor_ws_1c8466de999dbc0c, []int{13} } func (m *GetMaxAndMinSeqResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetMaxAndMinSeqResp.Unmarshal(m, b) @@ -1212,7 +1212,7 @@ func (m *GatherFormat) Reset() { *m = GatherFormat{} } func (m *GatherFormat) String() string { return proto.CompactTextString(m) } func (*GatherFormat) ProtoMessage() {} func (*GatherFormat) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_1bc577ef51df0a70, []int{14} + return fileDescriptor_ws_1c8466de999dbc0c, []int{14} } func (m *GatherFormat) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GatherFormat.Unmarshal(m, b) @@ -1259,7 +1259,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_1bc577ef51df0a70, []int{15} + return fileDescriptor_ws_1c8466de999dbc0c, []int{15} } func (m *UserSendMsgResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_UserSendMsgResp.Unmarshal(m, b) @@ -1328,7 +1328,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_1bc577ef51df0a70, []int{16} + return fileDescriptor_ws_1c8466de999dbc0c, []int{16} } func (m *MsgData) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MsgData.Unmarshal(m, b) @@ -1489,7 +1489,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_1bc577ef51df0a70, []int{17} + return fileDescriptor_ws_1c8466de999dbc0c, []int{17} } func (m *OfflinePushInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_OfflinePushInfo.Unmarshal(m, b) @@ -1556,7 +1556,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_1bc577ef51df0a70, []int{18} + return fileDescriptor_ws_1c8466de999dbc0c, []int{18} } func (m *TipsComm) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_TipsComm.Unmarshal(m, b) @@ -1605,7 +1605,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_1bc577ef51df0a70, []int{19} + return fileDescriptor_ws_1c8466de999dbc0c, []int{19} } func (m *MemberEnterTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MemberEnterTips.Unmarshal(m, b) @@ -1660,7 +1660,7 @@ func (m *MemberLeaveTips) Reset() { *m = MemberLeaveTips{} } func (m *MemberLeaveTips) String() string { return proto.CompactTextString(m) } func (*MemberLeaveTips) ProtoMessage() {} func (*MemberLeaveTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_1bc577ef51df0a70, []int{20} + return fileDescriptor_ws_1c8466de999dbc0c, []int{20} } func (m *MemberLeaveTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MemberLeaveTips.Unmarshal(m, b) @@ -1715,7 +1715,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_1bc577ef51df0a70, []int{21} + return fileDescriptor_ws_1c8466de999dbc0c, []int{21} } func (m *MemberInvitedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MemberInvitedTips.Unmarshal(m, b) @@ -1777,7 +1777,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_1bc577ef51df0a70, []int{22} + return fileDescriptor_ws_1c8466de999dbc0c, []int{22} } func (m *MemberKickedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MemberKickedTips.Unmarshal(m, b) @@ -1840,7 +1840,7 @@ func (m *MemberInfoChangedTips) Reset() { *m = MemberInfoChangedTips{} } func (m *MemberInfoChangedTips) String() string { return proto.CompactTextString(m) } func (*MemberInfoChangedTips) ProtoMessage() {} func (*MemberInfoChangedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_1bc577ef51df0a70, []int{23} + return fileDescriptor_ws_1c8466de999dbc0c, []int{23} } func (m *MemberInfoChangedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MemberInfoChangedTips.Unmarshal(m, b) @@ -1909,7 +1909,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_1bc577ef51df0a70, []int{24} + return fileDescriptor_ws_1c8466de999dbc0c, []int{24} } func (m *GroupCreatedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupCreatedTips.Unmarshal(m, b) @@ -1970,7 +1970,7 @@ func (m *GroupInfoChangedTips) Reset() { *m = GroupInfoChangedTips{} } func (m *GroupInfoChangedTips) String() string { return proto.CompactTextString(m) } func (*GroupInfoChangedTips) ProtoMessage() {} func (*GroupInfoChangedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_1bc577ef51df0a70, []int{25} + return fileDescriptor_ws_1c8466de999dbc0c, []int{25} } func (m *GroupInfoChangedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupInfoChangedTips.Unmarshal(m, b) @@ -2024,7 +2024,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_1bc577ef51df0a70, []int{26} + return fileDescriptor_ws_1c8466de999dbc0c, []int{26} } func (m *JoinGroupApplicationTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_JoinGroupApplicationTips.Unmarshal(m, b) @@ -2079,7 +2079,7 @@ func (m *ApplicationProcessedTips) Reset() { *m = ApplicationProcessedTi func (m *ApplicationProcessedTips) String() string { return proto.CompactTextString(m) } func (*ApplicationProcessedTips) ProtoMessage() {} func (*ApplicationProcessedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_1bc577ef51df0a70, []int{27} + return fileDescriptor_ws_1c8466de999dbc0c, []int{27} } func (m *ApplicationProcessedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ApplicationProcessedTips.Unmarshal(m, b) @@ -2140,7 +2140,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_1bc577ef51df0a70, []int{28} + return fileDescriptor_ws_1c8466de999dbc0c, []int{28} } func (m *FriendApplication) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FriendApplication.Unmarshal(m, b) @@ -2193,7 +2193,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_1bc577ef51df0a70, []int{29} + return fileDescriptor_ws_1c8466de999dbc0c, []int{29} } func (m *FromToUserID) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FromToUserID.Unmarshal(m, b) @@ -2239,7 +2239,7 @@ func (m *FriendApplicationAddedTips) Reset() { *m = FriendApplicationAdd func (m *FriendApplicationAddedTips) String() string { return proto.CompactTextString(m) } func (*FriendApplicationAddedTips) ProtoMessage() {} func (*FriendApplicationAddedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_1bc577ef51df0a70, []int{30} + return fileDescriptor_ws_1c8466de999dbc0c, []int{30} } func (m *FriendApplicationAddedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FriendApplicationAddedTips.Unmarshal(m, b) @@ -2269,6 +2269,7 @@ func (m *FriendApplicationAddedTips) GetFromToUserID() *FromToUserID { // FromUserID accept or reject ToUserID type FriendApplicationProcessedTips struct { FromToUserID *FromToUserID `protobuf:"bytes,1,opt,name=fromToUserID" json:"fromToUserID,omitempty"` + HandleResult int32 `protobuf:"varint,2,opt,name=handleResult" json:"handleResult,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -2278,7 +2279,7 @@ func (m *FriendApplicationProcessedTips) Reset() { *m = FriendApplicatio func (m *FriendApplicationProcessedTips) String() string { return proto.CompactTextString(m) } func (*FriendApplicationProcessedTips) ProtoMessage() {} func (*FriendApplicationProcessedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_1bc577ef51df0a70, []int{31} + return fileDescriptor_ws_1c8466de999dbc0c, []int{31} } func (m *FriendApplicationProcessedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FriendApplicationProcessedTips.Unmarshal(m, b) @@ -2305,6 +2306,13 @@ func (m *FriendApplicationProcessedTips) GetFromToUserID() *FromToUserID { return nil } +func (m *FriendApplicationProcessedTips) GetHandleResult() int32 { + if m != nil { + return m.HandleResult + } + return 0 +} + // FromUserID Added a friend ToUserID type FriendAddedTips struct { Friend *FriendInfo `protobuf:"bytes,1,opt,name=friend" json:"friend,omitempty"` @@ -2319,7 +2327,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_1bc577ef51df0a70, []int{32} + return fileDescriptor_ws_1c8466de999dbc0c, []int{32} } func (m *FriendAddedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FriendAddedTips.Unmarshal(m, b) @@ -2372,7 +2380,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_1bc577ef51df0a70, []int{33} + return fileDescriptor_ws_1c8466de999dbc0c, []int{33} } func (m *FriendDeletedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FriendDeletedTips.Unmarshal(m, b) @@ -2410,7 +2418,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_1bc577ef51df0a70, []int{34} + return fileDescriptor_ws_1c8466de999dbc0c, []int{34} } func (m *BlackAddedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_BlackAddedTips.Unmarshal(m, b) @@ -2448,7 +2456,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_1bc577ef51df0a70, []int{35} + return fileDescriptor_ws_1c8466de999dbc0c, []int{35} } func (m *BlackDeletedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_BlackDeletedTips.Unmarshal(m, b) @@ -2486,7 +2494,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_1bc577ef51df0a70, []int{36} + return fileDescriptor_ws_1c8466de999dbc0c, []int{36} } func (m *FriendInfoChangedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FriendInfoChangedTips.Unmarshal(m, b) @@ -2525,7 +2533,7 @@ func (m *SelfInfoUpdatedTips) Reset() { *m = SelfInfoUpdatedTips{} } func (m *SelfInfoUpdatedTips) String() string { return proto.CompactTextString(m) } func (*SelfInfoUpdatedTips) ProtoMessage() {} func (*SelfInfoUpdatedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_1bc577ef51df0a70, []int{37} + return fileDescriptor_ws_1c8466de999dbc0c, []int{37} } func (m *SelfInfoUpdatedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SelfInfoUpdatedTips.Unmarshal(m, b) @@ -2594,133 +2602,135 @@ func init() { proto.RegisterType((*SelfInfoUpdatedTips)(nil), "server_api_params.SelfInfoUpdatedTips") } -func init() { proto.RegisterFile("sdk_ws/ws.proto", fileDescriptor_ws_1bc577ef51df0a70) } - -var fileDescriptor_ws_1bc577ef51df0a70 = []byte{ - // 1989 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe4, 0x59, 0xcd, 0x6f, 0x23, 0x49, - 0x15, 0x57, 0xb7, 0x3f, 0x12, 0x3f, 0xdb, 0x71, 0xa6, 0x67, 0x76, 0xb0, 0xc2, 0x32, 0x84, 0xd6, - 0x6a, 0x89, 0x90, 0x08, 0x52, 0x10, 0x12, 0x2c, 0x12, 0x30, 0x93, 0x2f, 0x66, 0x89, 0x33, 0x51, - 0x67, 0x46, 0xcb, 0x01, 0x69, 0x54, 0x71, 0x97, 0x9d, 0x26, 0xed, 0x2a, 0xbb, 0xba, 0x9c, 0x99, - 0xb9, 0x70, 0xe6, 0xc2, 0x11, 0x8e, 0x5c, 0x11, 0x12, 0x37, 0x84, 0xb8, 0x71, 0xe0, 0xdf, 0xe0, - 0x5f, 0xe0, 0x0a, 0x12, 0x12, 0xd2, 0xa2, 0x7a, 0x55, 0xdd, 0x5d, 0xe5, 0x8f, 0xac, 0x31, 0x11, - 0x7b, 0xd8, 0x9b, 0xdf, 0xaf, 0xeb, 0x7d, 0xbf, 0x7a, 0x55, 0xf5, 0x0c, 0x9d, 0x2c, 0xbe, 0x79, - 0xfd, 0x26, 0xfb, 0xd6, 0x9b, 0x6c, 0x7f, 0x2c, 0xb8, 0xe4, 0xc1, 0x83, 0x8c, 0x8a, 0x5b, 0x2a, - 0x5e, 0x93, 0x71, 0xf2, 0x7a, 0x4c, 0x04, 0x19, 0x65, 0xe1, 0x3f, 0x7c, 0x68, 0x9c, 0x0a, 0x3e, - 0x1d, 0x3f, 0x67, 0x03, 0x1e, 0x74, 0x61, 0x63, 0x88, 0xc4, 0x51, 0xd7, 0xdb, 0xf5, 0xf6, 0x1a, - 0x51, 0x4e, 0x06, 0xef, 0x43, 0x03, 0x7f, 0x9e, 0x93, 0x11, 0xed, 0xfa, 0xf8, 0xad, 0x04, 0x82, - 0x10, 0x5a, 0x8c, 0xcb, 0x64, 0x90, 0xf4, 0x89, 0x4c, 0x38, 0xeb, 0x56, 0x70, 0x81, 0x83, 0xa9, - 0x35, 0x09, 0x93, 0x82, 0xc7, 0xd3, 0x3e, 0xae, 0xa9, 0xea, 0x35, 0x36, 0xa6, 0xf4, 0x0f, 0x48, - 0x9f, 0xbe, 0x8a, 0xce, 0xba, 0x35, 0xad, 0xdf, 0x90, 0xc1, 0x2e, 0x34, 0xf9, 0x1b, 0x46, 0xc5, - 0xab, 0x8c, 0x8a, 0xe7, 0x47, 0xdd, 0x3a, 0x7e, 0xb5, 0xa1, 0xe0, 0x09, 0x40, 0x5f, 0x50, 0x22, - 0xe9, 0xcb, 0x64, 0x44, 0xbb, 0x1b, 0xbb, 0xde, 0x5e, 0x3b, 0xb2, 0x10, 0x25, 0x61, 0x44, 0x47, - 0x57, 0x54, 0x1c, 0xf2, 0x29, 0x93, 0xdd, 0x4d, 0x5c, 0x60, 0x43, 0xc1, 0x16, 0xf8, 0xf4, 0x6d, - 0xb7, 0x81, 0xa2, 0x7d, 0xfa, 0x36, 0x78, 0x0c, 0xf5, 0x4c, 0x12, 0x39, 0xcd, 0xba, 0xb0, 0xeb, - 0xed, 0xd5, 0x22, 0x43, 0x05, 0x1f, 0x40, 0x1b, 0xe5, 0xf2, 0xdc, 0x9a, 0x26, 0xb2, 0xb8, 0x60, - 0x11, 0xb1, 0x97, 0xef, 0xc6, 0xb4, 0xdb, 0x42, 0x01, 0x25, 0x10, 0xfe, 0xd9, 0x87, 0x87, 0x18, - 0xf7, 0x1e, 0x1a, 0x70, 0x32, 0x4d, 0xd3, 0xcf, 0xc8, 0xc0, 0x63, 0xa8, 0x4f, 0xb5, 0x3a, 0x1d, - 0x7e, 0x43, 0x29, 0x3d, 0x82, 0xa7, 0xf4, 0x8c, 0xde, 0xd2, 0x14, 0x03, 0x5f, 0x8b, 0x4a, 0x20, - 0xd8, 0x81, 0xcd, 0x9f, 0xf3, 0x84, 0x61, 0x4c, 0x54, 0xc4, 0x2b, 0x51, 0x41, 0xab, 0x6f, 0x2c, - 0xe9, 0xdf, 0x30, 0x95, 0x52, 0x1d, 0xee, 0x82, 0xb6, 0x33, 0x51, 0x77, 0x33, 0xf1, 0x21, 0x6c, - 0x91, 0xf1, 0xb8, 0x47, 0xd8, 0x90, 0x0a, 0xad, 0x74, 0x03, 0x95, 0xce, 0xa0, 0x2a, 0x1f, 0x4a, - 0xd3, 0x25, 0x9f, 0x8a, 0x3e, 0xc5, 0x70, 0xd7, 0x22, 0x0b, 0x51, 0x72, 0xf8, 0x98, 0x0a, 0x2b, - 0x8c, 0x3a, 0xf2, 0x33, 0xa8, 0xc9, 0x0a, 0xe4, 0x59, 0x09, 0x7f, 0xeb, 0xc1, 0xd6, 0xc5, 0xf4, - 0x2a, 0x4d, 0xfa, 0xb8, 0x40, 0x05, 0xad, 0x0c, 0x8d, 0xe7, 0x84, 0xc6, 0x76, 0xd0, 0x5f, 0xee, - 0x60, 0xc5, 0x75, 0xf0, 0x31, 0xd4, 0x87, 0x94, 0xc5, 0x54, 0x60, 0xc0, 0x6a, 0x91, 0xa1, 0x16, - 0x38, 0x5e, 0x5b, 0xe4, 0x78, 0xf8, 0x1b, 0x1f, 0x36, 0xff, 0xcf, 0xa6, 0xed, 0x42, 0x73, 0x7c, - 0xcd, 0x19, 0x3d, 0x9f, 0xaa, 0x62, 0x32, 0xc9, 0xb4, 0xa1, 0xe0, 0x11, 0xd4, 0xae, 0x12, 0x21, - 0xaf, 0x31, 0x9b, 0xed, 0x48, 0x13, 0x0a, 0xa5, 0x23, 0x92, 0xe8, 0x14, 0x36, 0x22, 0x4d, 0x98, - 0x88, 0x6f, 0x16, 0xfb, 0xc0, 0xdd, 0x59, 0x8d, 0xb9, 0x9d, 0x35, 0x1f, 0x18, 0x58, 0x18, 0x98, - 0x7f, 0x79, 0x00, 0x27, 0x22, 0xa1, 0x2c, 0xc6, 0xd0, 0xcc, 0x6c, 0x69, 0x6f, 0x7e, 0x4b, 0x3f, - 0x86, 0xba, 0xa0, 0x23, 0x22, 0x6e, 0xf2, 0x92, 0xd7, 0xd4, 0x8c, 0x41, 0x95, 0x39, 0x83, 0xbe, - 0x0f, 0x30, 0x40, 0x3d, 0x4a, 0x0e, 0x86, 0xaa, 0x79, 0xf0, 0xe5, 0xfd, 0xb9, 0xe6, 0xb7, 0x9f, - 0x67, 0x29, 0xb2, 0x96, 0xab, 0xfd, 0x44, 0xe2, 0xd8, 0x94, 0xad, 0xce, 0x70, 0x09, 0x2c, 0xa8, - 0xda, 0xfa, 0x1d, 0x55, 0xbb, 0x51, 0x54, 0xed, 0xdf, 0x3d, 0x68, 0x3c, 0x4b, 0x49, 0xff, 0x66, - 0x45, 0xd7, 0x5d, 0x17, 0xfd, 0x39, 0x17, 0x4f, 0xa1, 0x7d, 0xa5, 0xc4, 0xe5, 0x2e, 0x60, 0x14, - 0x9a, 0x07, 0x5f, 0x5b, 0xe0, 0xa5, 0xbb, 0x59, 0x22, 0x97, 0xcf, 0x75, 0xb7, 0xfa, 0xd9, 0xee, - 0xd6, 0xee, 0x70, 0xb7, 0x5e, 0xb8, 0xfb, 0x4b, 0x1f, 0x5a, 0xd8, 0xde, 0x22, 0x3a, 0x99, 0xd2, - 0x4c, 0x2e, 0xdd, 0x07, 0x56, 0xbf, 0xf3, 0xdd, 0x7e, 0x17, 0x42, 0xeb, 0x9a, 0xb0, 0x38, 0xa5, - 0x11, 0xcd, 0xa6, 0xa9, 0xcc, 0xcf, 0x14, 0x1b, 0xd3, 0x05, 0x32, 0xe9, 0x65, 0x43, 0x73, 0x9a, - 0x18, 0x4a, 0x39, 0xa5, 0xd7, 0xa9, 0x4f, 0xda, 0xe2, 0x12, 0x50, 0x3a, 0x05, 0x9d, 0x60, 0x60, - 0xf5, 0x6e, 0xc8, 0xc9, 0x52, 0xa7, 0x71, 0x76, 0xc3, 0xd6, 0x59, 0x66, 0x46, 0xd3, 0x28, 0x40, - 0x1f, 0x23, 0x16, 0x32, 0x7b, 0x8a, 0x84, 0x7f, 0xab, 0x40, 0x5b, 0x57, 0x7d, 0x1e, 0x8b, 0x27, - 0xaa, 0x3c, 0xf9, 0xc8, 0x49, 0xbe, 0x85, 0x28, 0x2b, 0x14, 0x75, 0xee, 0xf6, 0x07, 0x07, 0x53, - 0x15, 0xa4, 0xe8, 0x13, 0xa7, 0x4f, 0xd8, 0x50, 0xae, 0xe5, 0xd4, 0xee, 0x17, 0x16, 0xa2, 0x3a, - 0x90, 0xe4, 0x4e, 0x52, 0x0b, 0x5a, 0xf1, 0x4a, 0x5e, 0xe8, 0xd7, 0x69, 0xb5, 0x10, 0x15, 0x5f, - 0xc9, 0x73, 0xdd, 0x3a, 0x48, 0x25, 0xa0, 0x25, 0x1b, 0xbd, 0xba, 0xef, 0x17, 0xf4, 0x5c, 0x56, - 0x1b, 0xf8, 0x7d, 0x59, 0x56, 0xc1, 0xc9, 0xaa, 0xbb, 0x27, 0x9a, 0x73, 0x7b, 0xe2, 0x03, 0x68, - 0x6b, 0x39, 0x79, 0xad, 0xb6, 0xf4, 0xb9, 0xec, 0x80, 0x6e, 0x6d, 0xb4, 0x67, 0x6b, 0xc3, 0xcd, - 0xee, 0xd6, 0x92, 0xec, 0x76, 0xec, 0x42, 0xef, 0x5e, 0x4c, 0xd3, 0xb4, 0x47, 0xb3, 0x8c, 0x0c, - 0xe9, 0xb3, 0x77, 0x97, 0x74, 0x72, 0x96, 0x64, 0x32, 0xa2, 0xd9, 0x58, 0x15, 0x1a, 0x15, 0xe2, - 0x90, 0xc7, 0x14, 0xb3, 0x5c, 0x8b, 0x72, 0x52, 0xb9, 0x48, 0x85, 0x50, 0x16, 0x98, 0xce, 0xa6, - 0x29, 0x85, 0x8f, 0xc8, 0xdb, 0x4b, 0x3a, 0xc1, 0x8c, 0x56, 0x22, 0x43, 0x21, 0x9e, 0x30, 0x85, - 0x57, 0x0d, 0x8e, 0x54, 0x70, 0x0c, 0xed, 0x2c, 0x61, 0x43, 0x5d, 0x9c, 0xba, 0xd8, 0x2b, 0x7b, - 0xcd, 0x83, 0xaf, 0x2e, 0x68, 0x03, 0xa7, 0x44, 0x5e, 0x53, 0x71, 0xc2, 0xc5, 0x88, 0xc8, 0xc8, - 0xe5, 0x0a, 0x0e, 0xa1, 0x85, 0xdb, 0x2e, 0x97, 0x52, 0x5f, 0x4d, 0x8a, 0xc3, 0x14, 0x8e, 0xe0, - 0x4b, 0x8b, 0x23, 0x31, 0x59, 0xba, 0xfb, 0x55, 0x1f, 0xc4, 0x46, 0x92, 0x70, 0x56, 0x74, 0x00, - 0x1b, 0x52, 0x21, 0xcc, 0xb4, 0x9c, 0x6e, 0x65, 0xb7, 0xb2, 0x57, 0x89, 0x72, 0x32, 0xfc, 0x85, - 0xba, 0x06, 0x14, 0xea, 0xee, 0xd2, 0xb2, 0x03, 0x9b, 0x19, 0x9d, 0x3c, 0xa3, 0xc3, 0x84, 0xa1, - 0x8a, 0x4a, 0x54, 0xd0, 0x78, 0xc7, 0xa3, 0x93, 0x63, 0x16, 0xe7, 0x01, 0xd7, 0xd4, 0xac, 0x65, - 0xd5, 0x39, 0xcb, 0xc2, 0x4f, 0x3d, 0xe8, 0x38, 0x06, 0x7c, 0xe1, 0x12, 0xfe, 0x08, 0x82, 0x53, - 0x2a, 0x7b, 0xe4, 0xed, 0x53, 0x16, 0xf7, 0xd0, 0xbc, 0x88, 0x4e, 0xc2, 0x63, 0x78, 0x38, 0x87, - 0x66, 0x63, 0xcb, 0x51, 0x6f, 0x89, 0xa3, 0xbe, 0xed, 0x68, 0x78, 0x0e, 0x2d, 0x5b, 0xb5, 0xda, - 0x78, 0x49, 0x6c, 0x12, 0xeb, 0x27, 0x71, 0xb0, 0x0f, 0xd5, 0x54, 0x55, 0x85, 0x8f, 0x96, 0xef, - 0x2c, 0xb0, 0xbc, 0x97, 0x0d, 0x8f, 0x88, 0x24, 0x11, 0xae, 0x0b, 0x27, 0xd0, 0x51, 0x76, 0x5f, - 0x52, 0x16, 0xf7, 0xb2, 0x21, 0x9a, 0xb4, 0x0b, 0x4d, 0xcd, 0xd5, 0xcb, 0x86, 0xe5, 0x29, 0x6c, - 0x41, 0x6a, 0x45, 0x3f, 0x4d, 0x28, 0x93, 0x7a, 0x85, 0xa9, 0x4f, 0x0b, 0xd2, 0xb5, 0xc5, 0xe2, - 0xe2, 0x22, 0x82, 0xb5, 0xa5, 0xe9, 0xf0, 0xaf, 0x35, 0xd8, 0x30, 0x46, 0xe8, 0x3a, 0x63, 0x71, - 0x59, 0x9b, 0x9a, 0xd2, 0xbd, 0xae, 0x7f, 0x5b, 0xde, 0xea, 0x35, 0x65, 0x9f, 0x8b, 0x15, 0xf7, - 0x5c, 0x9c, 0xb1, 0xa9, 0x3a, 0x6f, 0xd3, 0x8c, 0x5f, 0xb5, 0x79, 0xbf, 0xbe, 0x01, 0xdb, 0x19, - 0xf6, 0xe3, 0x8b, 0x94, 0xc8, 0x01, 0x17, 0x23, 0x73, 0x8f, 0xa9, 0x45, 0x73, 0xb8, 0xba, 0x02, - 0x68, 0xac, 0x38, 0x0f, 0x74, 0xc3, 0x9f, 0x41, 0x55, 0xf7, 0xd5, 0x48, 0x7e, 0x2e, 0xe8, 0x0b, - 0xa4, 0x0b, 0x6a, 0xdb, 0xb2, 0x2c, 0xe1, 0x0c, 0xdf, 0x45, 0xba, 0xfd, 0xdb, 0x90, 0xf2, 0x7c, - 0x94, 0x0d, 0x4f, 0x04, 0x1f, 0x99, 0x6b, 0x64, 0x4e, 0xa2, 0xe7, 0x9c, 0x49, 0xca, 0x24, 0xf2, - 0x36, 0x35, 0xaf, 0x05, 0x29, 0x5e, 0x43, 0x62, 0xef, 0x6f, 0x45, 0x39, 0xa9, 0xba, 0xfe, 0x80, - 0x8b, 0x3e, 0xc5, 0x4e, 0xd2, 0xde, 0xad, 0xa8, 0xae, 0x5f, 0x00, 0xc1, 0x36, 0x54, 0x32, 0x3a, - 0xc1, 0x76, 0x5f, 0x89, 0xd4, 0x4f, 0x27, 0xaf, 0x1d, 0x37, 0xaf, 0x33, 0xe7, 0xd0, 0x36, 0x7e, - 0xb5, 0xcf, 0xa1, 0xa7, 0xb0, 0xc1, 0xc7, 0xaa, 0x4b, 0x64, 0xdd, 0x07, 0x58, 0x9d, 0x5f, 0x5f, - 0x5e, 0x9d, 0xfb, 0x2f, 0xf4, 0xca, 0x63, 0x26, 0xc5, 0xbb, 0x28, 0xe7, 0x0b, 0xce, 0xa0, 0xc3, - 0x07, 0x83, 0x34, 0x61, 0xf4, 0x62, 0x9a, 0x5d, 0xe3, 0x05, 0x2f, 0xc0, 0x0b, 0x5e, 0xb8, 0x40, - 0xd4, 0x0b, 0x77, 0x65, 0x34, 0xcb, 0xba, 0xf3, 0x11, 0xb4, 0x6c, 0x35, 0xca, 0xdd, 0x1b, 0xfa, - 0xce, 0x54, 0xa2, 0xfa, 0xa9, 0x1e, 0x02, 0xb7, 0x24, 0x9d, 0xea, 0xbb, 0xc6, 0x66, 0xa4, 0x89, - 0x8f, 0xfc, 0xef, 0x7a, 0xe1, 0xaf, 0x3d, 0xe8, 0xcc, 0x28, 0x50, 0xab, 0x65, 0x22, 0x53, 0x6a, - 0x24, 0x68, 0x22, 0x08, 0xa0, 0x1a, 0xd3, 0xac, 0x6f, 0x0a, 0x19, 0x7f, 0x9b, 0xe3, 0xb2, 0x52, - 0x3c, 0x25, 0x42, 0x68, 0x25, 0x2f, 0x2e, 0x95, 0xa0, 0x4b, 0x3e, 0x65, 0x71, 0x31, 0x04, 0xb0, - 0x30, 0x55, 0x48, 0xc9, 0x8b, 0xcb, 0x67, 0x24, 0x1e, 0x52, 0xfd, 0x54, 0xaf, 0xa1, 0x4d, 0x2e, - 0x18, 0x1e, 0xc1, 0xe6, 0xcb, 0x64, 0x9c, 0x1d, 0xf2, 0xd1, 0x48, 0x6d, 0xa2, 0x98, 0x4a, 0xf5, - 0x8e, 0xf1, 0x30, 0xeb, 0x86, 0x52, 0x05, 0x13, 0xd3, 0x01, 0x99, 0xa6, 0x52, 0x2d, 0xcd, 0xb7, - 0xaf, 0x05, 0x85, 0x7f, 0xf2, 0xa0, 0xa3, 0x5f, 0xe0, 0xc7, 0x4c, 0x52, 0xa1, 0xb0, 0xe0, 0x00, - 0x6a, 0xb8, 0xd7, 0x50, 0x58, 0xf3, 0xe0, 0xfd, 0x45, 0x4d, 0x31, 0x9f, 0x98, 0x44, 0x7a, 0x69, - 0xf0, 0x63, 0x68, 0x52, 0x26, 0x05, 0x61, 0x12, 0x9f, 0x1c, 0x3e, 0x72, 0x7e, 0xb8, 0x8c, 0xd3, - 0x7d, 0xf3, 0x47, 0x36, 0xab, 0xf2, 0xbe, 0x38, 0x65, 0xac, 0xae, 0xe2, 0x82, 0xe1, 0x1f, 0x0b, - 0xbb, 0xcf, 0x28, 0xb9, 0xa5, 0x6b, 0xdb, 0x7d, 0x02, 0x90, 0x2a, 0x01, 0x62, 0x0d, 0xb3, 0x2d, - 0xce, 0x15, 0xad, 0xfe, 0xd4, 0x83, 0x07, 0x5a, 0xc8, 0x73, 0x76, 0x9b, 0x48, 0x1a, 0xaf, 0x6d, - 0xf7, 0x0f, 0xa0, 0xce, 0xc7, 0x6b, 0xd8, 0x6c, 0xb8, 0x82, 0x0b, 0xe8, 0x24, 0xda, 0x04, 0x45, - 0x16, 0xd7, 0x8b, 0xd5, 0x05, 0xcd, 0xb2, 0xcf, 0x47, 0xa0, 0xba, 0x28, 0x02, 0xff, 0xf6, 0x60, - 0x5b, 0x4b, 0xfa, 0x49, 0xd2, 0xbf, 0xf9, 0x1c, 0x03, 0x70, 0x0e, 0x5b, 0x37, 0x68, 0xc1, 0x9a, - 0xfe, 0xcf, 0x70, 0xaf, 0xe8, 0xfe, 0xaf, 0x7c, 0x78, 0x2f, 0x2f, 0x80, 0x01, 0x3f, 0xbc, 0x26, - 0x6c, 0x68, 0x62, 0xa0, 0x7a, 0x2a, 0x92, 0xd8, 0xda, 0xf5, 0xe5, 0xc9, 0x42, 0xfe, 0x67, 0x7f, - 0x8f, 0xa0, 0x31, 0x48, 0x18, 0x49, 0xad, 0xb7, 0xf2, 0xaa, 0x22, 0x4a, 0x46, 0x75, 0x2a, 0x8c, - 0xa6, 0xa6, 0xef, 0x9b, 0x69, 0x5a, 0x4e, 0x97, 0x59, 0xac, 0xad, 0x9c, 0xc5, 0xf0, 0x9f, 0x1e, - 0x6c, 0x23, 0x78, 0x88, 0xa7, 0xc7, 0xfa, 0xe5, 0xf0, 0x23, 0xd8, 0x30, 0xd3, 0xc7, 0xff, 0x32, - 0x3e, 0x39, 0x9b, 0xea, 0x04, 0x7a, 0x16, 0xba, 0x46, 0x31, 0x58, 0x9c, 0x2b, 0x16, 0xc2, 0x1f, - 0x3c, 0x78, 0x54, 0x38, 0x61, 0xd7, 0x81, 0x3a, 0xe3, 0x0d, 0x59, 0x16, 0x82, 0x0d, 0x95, 0xe1, - 0xf1, 0xd7, 0xd9, 0x2d, 0x95, 0x75, 0xaa, 0x27, 0xfc, 0x9d, 0x07, 0xdd, 0x8f, 0x79, 0xc2, 0x70, - 0xcd, 0xd3, 0xf1, 0x38, 0x35, 0x43, 0xed, 0xb5, 0xf3, 0xf5, 0x43, 0x68, 0x10, 0x2d, 0x86, 0x49, - 0xe3, 0xc8, 0x0a, 0xa3, 0x9b, 0x92, 0x47, 0xdf, 0x1b, 0x49, 0x56, 0xcc, 0xda, 0x0d, 0x15, 0xfe, - 0xc5, 0x83, 0xae, 0x65, 0xe0, 0x85, 0xe0, 0x7d, 0x9a, 0x65, 0x9f, 0x63, 0xa3, 0x41, 0x43, 0x8b, - 0x01, 0x4e, 0x2d, 0x32, 0x94, 0xe5, 0x40, 0xd5, 0x71, 0xe0, 0x06, 0x1e, 0xe8, 0x69, 0x89, 0xe5, - 0x85, 0xba, 0xd7, 0x91, 0x58, 0x5f, 0xc6, 0xf4, 0xeb, 0x21, 0x27, 0xdd, 0xf1, 0x95, 0xf9, 0x5f, - 0xa2, 0x1c, 0x5f, 0x3d, 0x01, 0x20, 0x71, 0xfc, 0x09, 0x17, 0x71, 0xc2, 0x86, 0x26, 0x52, 0x16, - 0x12, 0x7e, 0x0c, 0x2d, 0x75, 0xb3, 0x7c, 0x69, 0xcd, 0x3d, 0xee, 0x9c, 0xcc, 0xd8, 0x33, 0x13, - 0xdf, 0x9d, 0x99, 0x84, 0x04, 0x76, 0xe6, 0x0c, 0x7f, 0x1a, 0xc7, 0x26, 0xf4, 0x87, 0x7a, 0xa6, - 0x93, 0x6b, 0x32, 0x19, 0x58, 0xf4, 0xe0, 0xb2, 0x0d, 0x8a, 0x1c, 0xa6, 0x90, 0xc2, 0x93, 0x39, - 0x15, 0x6e, 0x86, 0xef, 0x45, 0xcd, 0xef, 0x3d, 0xe8, 0x18, 0x3d, 0x85, 0xfd, 0xdf, 0x81, 0xba, - 0x9e, 0x91, 0x1a, 0x91, 0x5f, 0x59, 0x28, 0x32, 0x9f, 0xed, 0x46, 0x66, 0xf1, 0x7c, 0x37, 0xf0, - 0x17, 0x74, 0x83, 0xe0, 0x7b, 0x33, 0xdb, 0x73, 0x85, 0xad, 0x90, 0xef, 0xcc, 0x9f, 0xe6, 0xe5, - 0x72, 0x44, 0x53, 0x2a, 0xef, 0x33, 0x0a, 0xaf, 0x60, 0x0b, 0x07, 0xb6, 0xf7, 0x9c, 0xc3, 0x4f, - 0x60, 0x1b, 0xc5, 0xde, 0xbb, 0xbd, 0x3f, 0x83, 0xf7, 0xca, 0x04, 0xd8, 0x2d, 0xf5, 0x5e, 0xa4, - 0x7f, 0x13, 0x1e, 0x5e, 0xd2, 0x74, 0xa0, 0x64, 0xbf, 0x1a, 0xc7, 0xc5, 0x59, 0xb5, 0x64, 0xe4, - 0x72, 0x55, 0xc7, 0x3f, 0x1c, 0xbf, 0xfd, 0x9f, 0x00, 0x00, 0x00, 0xff, 0xff, 0x3d, 0x60, 0xab, - 0x3f, 0x83, 0x1c, 0x00, 0x00, +func init() { proto.RegisterFile("sdk_ws/ws.proto", fileDescriptor_ws_1c8466de999dbc0c) } + +var fileDescriptor_ws_1c8466de999dbc0c = []byte{ + // 2018 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe4, 0x59, 0xcd, 0x6f, 0x1c, 0x49, + 0x15, 0x57, 0xf7, 0x7c, 0xd8, 0xf3, 0x66, 0xc6, 0xe3, 0x74, 0xb2, 0x61, 0x14, 0x96, 0x60, 0x5a, + 0xab, 0xc5, 0x42, 0xc2, 0x48, 0x41, 0x48, 0x10, 0xc4, 0x47, 0xe2, 0x8f, 0x90, 0xc5, 0xe3, 0x58, + 0xed, 0x44, 0xcb, 0x01, 0x29, 0x2a, 0x4f, 0xd7, 0x8c, 0x1b, 0xf7, 0x54, 0xf5, 0x54, 0x77, 0x3b, + 0xc9, 0x85, 0x33, 0x1c, 0x38, 0xc2, 0x91, 0x2b, 0x42, 0xe2, 0x86, 0x10, 0x37, 0x0e, 0xfc, 0x07, + 0x9c, 0xf9, 0x17, 0xb8, 0x82, 0x84, 0x84, 0xb4, 0xa8, 0x5e, 0x55, 0x77, 0x57, 0x4d, 0x8f, 0xbd, + 0xc3, 0x60, 0xb1, 0x07, 0x6e, 0xf3, 0x7e, 0x5d, 0xef, 0xfb, 0xd5, 0xab, 0xaa, 0x37, 0x30, 0x48, + 0xc3, 0xcb, 0xd7, 0x6f, 0xd2, 0xaf, 0xbd, 0x49, 0xf7, 0x12, 0xc1, 0x33, 0xee, 0xdd, 0x49, 0xa9, + 0xb8, 0xa2, 0xe2, 0x35, 0x49, 0xa2, 0xd7, 0x09, 0x11, 0x64, 0x96, 0xfa, 0x7f, 0x77, 0xa1, 0xf3, + 0x4c, 0xf0, 0x3c, 0x79, 0xce, 0x26, 0xdc, 0x1b, 0xc2, 0xc6, 0x14, 0x89, 0x83, 0xa1, 0xb3, 0xe3, + 0xec, 0x76, 0x82, 0x82, 0xf4, 0xde, 0x87, 0x0e, 0xfe, 0x3c, 0x21, 0x33, 0x3a, 0x74, 0xf1, 0x5b, + 0x05, 0x78, 0x3e, 0xf4, 0x18, 0xcf, 0xa2, 0x49, 0x34, 0x26, 0x59, 0xc4, 0xd9, 0xb0, 0x81, 0x0b, + 0x2c, 0x4c, 0xae, 0x89, 0x58, 0x26, 0x78, 0x98, 0x8f, 0x71, 0x4d, 0x53, 0xad, 0x31, 0x31, 0xa9, + 0x7f, 0x42, 0xc6, 0xf4, 0x55, 0x70, 0x3c, 0x6c, 0x29, 0xfd, 0x9a, 0xf4, 0x76, 0xa0, 0xcb, 0xdf, + 0x30, 0x2a, 0x5e, 0xa5, 0x54, 0x3c, 0x3f, 0x18, 0xb6, 0xf1, 0xab, 0x09, 0x79, 0x0f, 0x01, 0xc6, + 0x82, 0x92, 0x8c, 0xbe, 0x8c, 0x66, 0x74, 0xb8, 0xb1, 0xe3, 0xec, 0xf6, 0x03, 0x03, 0x91, 0x12, + 0x66, 0x74, 0x76, 0x4e, 0xc5, 0x3e, 0xcf, 0x59, 0x36, 0xdc, 0xc4, 0x05, 0x26, 0xe4, 0x6d, 0x81, + 0x4b, 0xdf, 0x0e, 0x3b, 0x28, 0xda, 0xa5, 0x6f, 0xbd, 0xfb, 0xd0, 0x4e, 0x33, 0x92, 0xe5, 0xe9, + 0x10, 0x76, 0x9c, 0xdd, 0x56, 0xa0, 0x29, 0xef, 0x03, 0xe8, 0xa3, 0x5c, 0x5e, 0x58, 0xd3, 0x45, + 0x16, 0x1b, 0x2c, 0x23, 0xf6, 0xf2, 0x5d, 0x42, 0x87, 0x3d, 0x14, 0x50, 0x01, 0xfe, 0x1f, 0x5d, + 0xb8, 0x8b, 0x71, 0x1f, 0xa1, 0x01, 0x47, 0x79, 0x1c, 0x7f, 0x4a, 0x06, 0xee, 0x43, 0x3b, 0x57, + 0xea, 0x54, 0xf8, 0x35, 0x25, 0xf5, 0x08, 0x1e, 0xd3, 0x63, 0x7a, 0x45, 0x63, 0x0c, 0x7c, 0x2b, + 0xa8, 0x00, 0xef, 0x01, 0x6c, 0xfe, 0x84, 0x47, 0x0c, 0x63, 0x22, 0x23, 0xde, 0x08, 0x4a, 0x5a, + 0x7e, 0x63, 0xd1, 0xf8, 0x92, 0xc9, 0x94, 0xaa, 0x70, 0x97, 0xb4, 0x99, 0x89, 0xb6, 0x9d, 0x89, + 0x0f, 0x61, 0x8b, 0x24, 0xc9, 0x88, 0xb0, 0x29, 0x15, 0x4a, 0xe9, 0x06, 0x2a, 0x5d, 0x40, 0x65, + 0x3e, 0xa4, 0xa6, 0x33, 0x9e, 0x8b, 0x31, 0xc5, 0x70, 0xb7, 0x02, 0x03, 0x91, 0x72, 0x78, 0x42, + 0x85, 0x11, 0x46, 0x15, 0xf9, 0x05, 0x54, 0x67, 0x05, 0x8a, 0xac, 0xf8, 0xbf, 0x76, 0x60, 0xeb, + 0x34, 0x3f, 0x8f, 0xa3, 0x31, 0x2e, 0x90, 0x41, 0xab, 0x42, 0xe3, 0x58, 0xa1, 0x31, 0x1d, 0x74, + 0xaf, 0x77, 0xb0, 0x61, 0x3b, 0x78, 0x1f, 0xda, 0x53, 0xca, 0x42, 0x2a, 0x30, 0x60, 0xad, 0x40, + 0x53, 0x4b, 0x1c, 0x6f, 0x2d, 0x73, 0xdc, 0xff, 0x95, 0x0b, 0x9b, 0xff, 0x63, 0xd3, 0x76, 0xa0, + 0x9b, 0x5c, 0x70, 0x46, 0x4f, 0x72, 0x59, 0x4c, 0x3a, 0x99, 0x26, 0xe4, 0xdd, 0x83, 0xd6, 0x79, + 0x24, 0xb2, 0x0b, 0xcc, 0x66, 0x3f, 0x50, 0x84, 0x44, 0xe9, 0x8c, 0x44, 0x2a, 0x85, 0x9d, 0x40, + 0x11, 0x3a, 0xe2, 0x9b, 0xe5, 0x3e, 0xb0, 0x77, 0x56, 0xa7, 0xb6, 0xb3, 0xea, 0x81, 0x81, 0xa5, + 0x81, 0xf9, 0xa7, 0x03, 0x70, 0x24, 0x22, 0xca, 0x42, 0x0c, 0xcd, 0xc2, 0x96, 0x76, 0xea, 0x5b, + 0xfa, 0x3e, 0xb4, 0x05, 0x9d, 0x11, 0x71, 0x59, 0x94, 0xbc, 0xa2, 0x16, 0x0c, 0x6a, 0xd4, 0x0c, + 0xfa, 0x36, 0xc0, 0x04, 0xf5, 0x48, 0x39, 0x18, 0xaa, 0xee, 0xa3, 0xcf, 0xef, 0xd5, 0x9a, 0xdf, + 0x5e, 0x91, 0xa5, 0xc0, 0x58, 0x2e, 0xf7, 0x13, 0x09, 0x43, 0x5d, 0xb6, 0x2a, 0xc3, 0x15, 0xb0, + 0xa4, 0x6a, 0xdb, 0x37, 0x54, 0xed, 0x46, 0x59, 0xb5, 0x7f, 0x73, 0xa0, 0xf3, 0x34, 0x26, 0xe3, + 0xcb, 0x15, 0x5d, 0xb7, 0x5d, 0x74, 0x6b, 0x2e, 0x3e, 0x83, 0xfe, 0xb9, 0x14, 0x57, 0xb8, 0x80, + 0x51, 0xe8, 0x3e, 0xfa, 0xd2, 0x12, 0x2f, 0xed, 0xcd, 0x12, 0xd8, 0x7c, 0xb6, 0xbb, 0xcd, 0x4f, + 0x77, 0xb7, 0x75, 0x83, 0xbb, 0xed, 0xd2, 0xdd, 0xbf, 0xb8, 0xd0, 0xc3, 0xf6, 0x16, 0xd0, 0x79, + 0x4e, 0xd3, 0xcc, 0xfb, 0x0e, 0x6c, 0xe6, 0x85, 0xa9, 0xce, 0xaa, 0xa6, 0x96, 0x2c, 0xde, 0x63, + 0xdd, 0x4c, 0x91, 0xdf, 0x45, 0xfe, 0xf7, 0x97, 0xf0, 0x97, 0x27, 0x59, 0x50, 0x2d, 0x97, 0x07, + 0xcf, 0x05, 0x61, 0x61, 0x4c, 0x03, 0x9a, 0xe6, 0x71, 0x56, 0x1c, 0x4e, 0x26, 0xa6, 0x2a, 0x6d, + 0x3e, 0x4a, 0xa7, 0xfa, 0x58, 0xd2, 0x94, 0x8c, 0x8e, 0x5a, 0x27, 0x3f, 0x29, 0xd7, 0x2b, 0x40, + 0x6e, 0x54, 0x41, 0xe7, 0x98, 0x21, 0xb5, 0xad, 0x0a, 0xb2, 0xd2, 0xa9, 0xa3, 0xb6, 0x61, 0xea, + 0xac, 0x52, 0xac, 0x68, 0x14, 0xa0, 0xce, 0x23, 0x03, 0x59, 0x3c, 0x8e, 0xfc, 0xbf, 0x36, 0xa0, + 0xaf, 0xb6, 0x4f, 0x11, 0xd4, 0x87, 0xb2, 0xce, 0xf9, 0xcc, 0xaa, 0x22, 0x03, 0x91, 0x56, 0x48, + 0xea, 0xc4, 0x6e, 0x34, 0x16, 0x26, 0x4b, 0x51, 0xd2, 0x47, 0x56, 0xc3, 0x31, 0xa1, 0x42, 0xcb, + 0x33, 0xb3, 0xf1, 0x18, 0x88, 0x6c, 0x65, 0x19, 0xb7, 0xaa, 0xa3, 0xa4, 0x25, 0x6f, 0xc6, 0x4b, + 0xfd, 0xaa, 0x3e, 0x0c, 0x44, 0xc6, 0x37, 0xe3, 0x85, 0x6e, 0x15, 0xa4, 0x0a, 0x50, 0x92, 0xb5, + 0x5e, 0x75, 0x80, 0x94, 0x74, 0x2d, 0xab, 0x1d, 0xfc, 0x7e, 0x5d, 0x56, 0xc1, 0xca, 0xaa, 0xbd, + 0xb9, 0xba, 0xb5, 0xcd, 0xf5, 0x01, 0xf4, 0x95, 0x9c, 0xa2, 0xe8, 0x7b, 0xea, 0x80, 0xb7, 0x40, + 0xbb, 0x36, 0xfa, 0x8b, 0xb5, 0x61, 0x67, 0x77, 0xeb, 0x9a, 0xec, 0x0e, 0xca, 0xec, 0xfe, 0xcc, + 0x85, 0xe1, 0x69, 0x1e, 0xc7, 0x23, 0x9a, 0xa6, 0x64, 0x4a, 0x9f, 0xbe, 0x3b, 0xa3, 0xf3, 0xe3, + 0x28, 0xcd, 0x02, 0x9a, 0x26, 0xb2, 0xd0, 0xa8, 0x10, 0xfb, 0x3c, 0xa4, 0x98, 0xe5, 0x56, 0x50, + 0x90, 0xd2, 0x45, 0x2a, 0x84, 0xb4, 0x40, 0xb7, 0x48, 0x45, 0x49, 0x7c, 0x46, 0xde, 0x9e, 0xd1, + 0x39, 0x66, 0xb4, 0x11, 0x68, 0x0a, 0xf1, 0x88, 0x49, 0xbc, 0xa9, 0x71, 0xa4, 0xbc, 0x43, 0xe8, + 0xa7, 0x11, 0x9b, 0xaa, 0xe2, 0x54, 0xc5, 0xde, 0xd8, 0xed, 0x3e, 0xfa, 0xe2, 0xb2, 0x4d, 0x46, + 0xb2, 0x0b, 0x2a, 0x8e, 0xb8, 0x98, 0x91, 0x2c, 0xb0, 0xb9, 0xbc, 0x7d, 0xe8, 0xe1, 0xc6, 0x2b, + 0xa4, 0xb4, 0x57, 0x93, 0x62, 0x31, 0xf9, 0x33, 0xf8, 0xdc, 0xf2, 0x48, 0xcc, 0xaf, 0x3d, 0x4e, + 0x65, 0x43, 0xc5, 0x8e, 0x14, 0x71, 0x56, 0xde, 0x90, 0x4c, 0x48, 0x86, 0x30, 0x55, 0x72, 0x86, + 0x8d, 0x9d, 0xc6, 0x6e, 0x23, 0x28, 0x48, 0xff, 0xa7, 0xf2, 0x3e, 0x51, 0xaa, 0xbb, 0x49, 0xcb, + 0x03, 0xd8, 0x4c, 0xe9, 0xfc, 0x29, 0x9d, 0x46, 0x0c, 0x55, 0x34, 0x82, 0x92, 0xc6, 0xcb, 0x22, + 0x9d, 0x1f, 0xb2, 0xb0, 0x08, 0xb8, 0xa2, 0x16, 0x2d, 0x6b, 0xd6, 0x2c, 0xf3, 0x3f, 0x71, 0x60, + 0x60, 0x19, 0xf0, 0x7f, 0x97, 0xf0, 0x7b, 0xe0, 0x3d, 0xa3, 0xd9, 0x88, 0xbc, 0x7d, 0xc2, 0xc2, + 0x11, 0x9a, 0x17, 0xd0, 0xb9, 0x7f, 0x08, 0x77, 0x6b, 0x68, 0x9a, 0x18, 0x8e, 0x3a, 0xd7, 0x38, + 0xea, 0x9a, 0x8e, 0xfa, 0x27, 0xd0, 0x33, 0x55, 0xcb, 0x8d, 0x17, 0x85, 0x3a, 0xb1, 0x6e, 0x14, + 0x7a, 0x7b, 0xd0, 0x8c, 0x65, 0x55, 0xb8, 0x68, 0xf9, 0x83, 0x25, 0x96, 0x8f, 0xd2, 0xe9, 0x01, + 0xc9, 0x48, 0x80, 0xeb, 0xfc, 0x39, 0x0c, 0xa4, 0xdd, 0x67, 0x94, 0x85, 0xa3, 0x74, 0x8a, 0x26, + 0xed, 0x40, 0x57, 0x71, 0x8d, 0xd2, 0x69, 0x75, 0x9c, 0x1b, 0x90, 0x5c, 0x31, 0x8e, 0x23, 0xca, + 0x32, 0xb5, 0x42, 0xd7, 0xa7, 0x01, 0xa9, 0xda, 0x62, 0x61, 0x79, 0xa3, 0xc1, 0xda, 0x52, 0xb4, + 0xff, 0xe7, 0x16, 0x6c, 0x68, 0x23, 0x54, 0x9d, 0xb1, 0xb0, 0xaa, 0x4d, 0x45, 0xa9, 0x5e, 0x37, + 0xbe, 0xaa, 0x9e, 0x07, 0x8a, 0x32, 0x1f, 0x14, 0x0d, 0xfb, 0x41, 0xb1, 0x60, 0x53, 0xb3, 0x6e, + 0xd3, 0x82, 0x5f, 0xad, 0xba, 0x5f, 0x5f, 0x81, 0xed, 0x14, 0xfb, 0xf1, 0x69, 0x4c, 0xb2, 0x09, + 0x17, 0x33, 0x7d, 0x21, 0x6a, 0x05, 0x35, 0x5c, 0xde, 0x25, 0x14, 0x56, 0x9e, 0x07, 0xaa, 0xe1, + 0x2f, 0xa0, 0xb2, 0xfb, 0x2a, 0xa4, 0x38, 0x17, 0xd4, 0x4d, 0xd4, 0x06, 0x95, 0x6d, 0x69, 0x1a, + 0x71, 0x86, 0x0f, 0x2c, 0xd5, 0xfe, 0x4d, 0x48, 0x7a, 0x3e, 0x4b, 0xa7, 0x47, 0x82, 0xcf, 0xf4, + 0x7d, 0xb4, 0x20, 0xd1, 0x73, 0xce, 0x32, 0xca, 0x32, 0xe4, 0xed, 0x2a, 0x5e, 0x03, 0x92, 0xbc, + 0x9a, 0xc4, 0xde, 0xdf, 0x0b, 0x0a, 0x52, 0x76, 0xfd, 0x09, 0x17, 0x63, 0x8a, 0x9d, 0xa4, 0xbf, + 0xd3, 0x90, 0x5d, 0xbf, 0x04, 0xbc, 0x6d, 0x68, 0xa4, 0x74, 0x8e, 0xed, 0xbe, 0x11, 0xc8, 0x9f, + 0x56, 0x5e, 0x07, 0x76, 0x5e, 0x17, 0xce, 0xa1, 0x6d, 0xfc, 0x6a, 0x9e, 0x43, 0x4f, 0x60, 0x83, + 0x27, 0xb2, 0x4b, 0xa4, 0xc3, 0x3b, 0x58, 0x9d, 0x5f, 0xbe, 0xbe, 0x3a, 0xf7, 0x5e, 0xa8, 0x95, + 0x87, 0x2c, 0x13, 0xef, 0x82, 0x82, 0xcf, 0x3b, 0x86, 0x01, 0x9f, 0x4c, 0xe2, 0x88, 0xd1, 0xd3, + 0x3c, 0xbd, 0xc0, 0xeb, 0x93, 0x87, 0xd7, 0x27, 0x7f, 0x89, 0xa8, 0x17, 0xf6, 0xca, 0x60, 0x91, + 0xf5, 0xc1, 0x63, 0xe8, 0x99, 0x6a, 0xa4, 0xbb, 0x97, 0xf4, 0x9d, 0xae, 0x44, 0xf9, 0x53, 0xbe, + 0x28, 0xae, 0x48, 0x9c, 0xab, 0xbb, 0xc6, 0x66, 0xa0, 0x88, 0xc7, 0xee, 0x37, 0x1d, 0xff, 0x97, + 0x0e, 0x0c, 0x16, 0x14, 0xc8, 0xd5, 0x59, 0x94, 0xc5, 0x54, 0x4b, 0x50, 0x84, 0xe7, 0x41, 0x33, + 0xa4, 0xe9, 0x58, 0x17, 0x32, 0xfe, 0xd6, 0xc7, 0x65, 0xa3, 0x7c, 0x93, 0xf8, 0xd0, 0x8b, 0x5e, + 0x9c, 0x49, 0x41, 0x67, 0x3c, 0x67, 0x61, 0x39, 0x4d, 0x30, 0x30, 0x59, 0x48, 0xd1, 0x8b, 0xb3, + 0xa7, 0x24, 0x9c, 0x52, 0xf5, 0xe6, 0x6f, 0xa1, 0x4d, 0x36, 0xe8, 0x1f, 0xc0, 0xe6, 0xcb, 0x28, + 0x49, 0xf7, 0xf9, 0x6c, 0x26, 0x37, 0x51, 0x48, 0x33, 0xf9, 0x20, 0x72, 0x30, 0xeb, 0x9a, 0x92, + 0x05, 0x13, 0xd2, 0x09, 0xc9, 0xe3, 0x4c, 0x2e, 0x2d, 0xb6, 0xaf, 0x01, 0xf9, 0x7f, 0x70, 0x60, + 0xa0, 0x9e, 0xf2, 0x87, 0x2c, 0xa3, 0x42, 0x62, 0xde, 0x23, 0x68, 0xe1, 0x5e, 0xd3, 0x17, 0xde, + 0x9b, 0x2f, 0xac, 0x6a, 0xa9, 0xf7, 0x03, 0xe8, 0x52, 0x96, 0x09, 0xc2, 0x32, 0x7c, 0xbb, 0xa8, + 0xab, 0xee, 0x87, 0xd7, 0x71, 0xda, 0xc3, 0x83, 0xc0, 0x64, 0x95, 0xde, 0x97, 0xa7, 0x8c, 0xd1, + 0x55, 0x6c, 0xd0, 0xff, 0x7d, 0x69, 0xf7, 0x31, 0x25, 0x57, 0x74, 0x6d, 0xbb, 0x8f, 0x00, 0x62, + 0x29, 0x40, 0xac, 0x61, 0xb6, 0xc1, 0xb9, 0xa2, 0xd5, 0x9f, 0x38, 0x70, 0x47, 0x09, 0x79, 0xce, + 0xae, 0xa2, 0x8c, 0x86, 0x6b, 0xdb, 0xfd, 0x5d, 0x68, 0xf3, 0x64, 0x0d, 0x9b, 0x35, 0x97, 0x77, + 0x0a, 0x83, 0x48, 0x99, 0x20, 0xc9, 0xf2, 0x7a, 0xb1, 0xba, 0xa0, 0x45, 0xf6, 0x7a, 0x04, 0x9a, + 0xcb, 0x22, 0xf0, 0x2f, 0x07, 0xb6, 0x95, 0xa4, 0x1f, 0x46, 0xe3, 0xcb, 0xcf, 0x30, 0x00, 0x27, + 0xb0, 0x75, 0x89, 0x16, 0xac, 0xe9, 0xff, 0x02, 0xf7, 0x8a, 0xee, 0xff, 0xc2, 0x85, 0xf7, 0x8a, + 0x02, 0x98, 0xf0, 0xfd, 0x0b, 0xc2, 0xa6, 0x3a, 0x06, 0xb2, 0xa7, 0x22, 0x89, 0xad, 0x5d, 0x5d, + 0x9e, 0x0c, 0xe4, 0xbf, 0xf6, 0xf7, 0x00, 0x3a, 0x93, 0x88, 0x91, 0xd8, 0x78, 0x74, 0xaf, 0x2a, + 0xa2, 0x62, 0x94, 0xa7, 0xc2, 0x2c, 0xd7, 0x7d, 0x5f, 0x8f, 0xe5, 0x0a, 0xba, 0xca, 0x62, 0x6b, + 0xe5, 0x2c, 0xfa, 0xff, 0x70, 0x60, 0x1b, 0xc1, 0x7d, 0x3c, 0x3d, 0xd6, 0x2f, 0x87, 0xef, 0xc3, + 0x86, 0x1e, 0x63, 0xfe, 0x87, 0xf1, 0x29, 0xd8, 0x64, 0x27, 0x50, 0x43, 0xd5, 0x35, 0x8a, 0xc1, + 0xe0, 0x5c, 0xb1, 0x10, 0x7e, 0xe7, 0xc0, 0xbd, 0xd2, 0x09, 0xb3, 0x0e, 0xe4, 0x19, 0xaf, 0xc9, + 0xaa, 0x10, 0x4c, 0xa8, 0x0a, 0x8f, 0xbb, 0xce, 0x6e, 0x69, 0xac, 0x53, 0x3d, 0xfe, 0x6f, 0x1c, + 0x18, 0x7e, 0xc4, 0x23, 0x86, 0x6b, 0x9e, 0x24, 0x49, 0xac, 0xa7, 0xe3, 0x6b, 0xe7, 0xeb, 0x7b, + 0xd0, 0x21, 0x4a, 0x0c, 0xcb, 0xb4, 0x23, 0x2b, 0x0c, 0x56, 0x2a, 0x1e, 0x75, 0x6f, 0x24, 0x69, + 0x39, 0xb4, 0xd7, 0x94, 0xff, 0x27, 0x07, 0x86, 0x86, 0x81, 0xa7, 0x82, 0x8f, 0x69, 0x9a, 0x7e, + 0x86, 0x8d, 0x06, 0x0d, 0x2d, 0x07, 0x38, 0xad, 0x40, 0x53, 0x86, 0x03, 0x4d, 0xcb, 0x81, 0x4b, + 0xb8, 0xa3, 0xa6, 0x25, 0x86, 0x17, 0xf2, 0x5e, 0x47, 0x42, 0x75, 0x19, 0x53, 0xaf, 0x87, 0x82, + 0xb4, 0xe7, 0x60, 0xfa, 0x0f, 0x8e, 0x6a, 0x0e, 0xf6, 0x10, 0x80, 0x84, 0xe1, 0xc7, 0x5c, 0x84, + 0x11, 0x9b, 0xea, 0x48, 0x19, 0x88, 0xff, 0x11, 0xf4, 0xe4, 0xcd, 0xf2, 0xa5, 0x31, 0xf7, 0xb8, + 0x71, 0x32, 0x63, 0xce, 0x4c, 0x5c, 0x7b, 0x66, 0xe2, 0x13, 0x78, 0x50, 0x33, 0xfc, 0x49, 0x18, + 0xea, 0xd0, 0xef, 0xab, 0x99, 0x4e, 0xa1, 0x49, 0x67, 0x60, 0xd9, 0x83, 0xcb, 0x34, 0x28, 0xb0, + 0x98, 0xfc, 0x9f, 0x3b, 0xf0, 0xb0, 0xa6, 0xc3, 0x4e, 0xf1, 0x6d, 0xe8, 0xa9, 0x0d, 0x69, 0xdc, + 0xfa, 0x90, 0xc6, 0xff, 0xad, 0x03, 0x03, 0x6d, 0x4b, 0xe9, 0xe4, 0x37, 0xa0, 0xad, 0x26, 0xb2, + 0x5a, 0xed, 0x17, 0x96, 0xaa, 0x2d, 0x26, 0xc9, 0x81, 0x5e, 0x5c, 0x6f, 0x19, 0xee, 0x92, 0x96, + 0xe1, 0x7d, 0x6b, 0x61, 0x0f, 0xaf, 0xb0, 0x5f, 0x8a, 0xed, 0xfb, 0xa3, 0xa2, 0xa6, 0x0e, 0x68, + 0x4c, 0xb3, 0xdb, 0xcc, 0xc8, 0x2b, 0xd8, 0xc2, 0xf1, 0xf0, 0x2d, 0x27, 0xfa, 0x63, 0xd8, 0x46, + 0xb1, 0xb7, 0x6e, 0xef, 0x8f, 0xe1, 0xbd, 0x2a, 0x01, 0x66, 0xdf, 0xbd, 0x15, 0xe9, 0x5f, 0x85, + 0xbb, 0x67, 0x34, 0x9e, 0x48, 0xd9, 0xaf, 0x92, 0xb0, 0x3c, 0xd0, 0xae, 0x99, 0xcb, 0x9c, 0xb7, + 0xf1, 0xef, 0xcd, 0xaf, 0xff, 0x3b, 0x00, 0x00, 0xff, 0xff, 0x44, 0xad, 0x58, 0x38, 0xf1, 0x1c, + 0x00, 0x00, } From a2440a2e80499adf515d93da9114c843da2df9a7 Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Sat, 15 Jan 2022 15:30:48 +0800 Subject: [PATCH 495/814] Refactor code --- cmd/open_im_api/main.go | 14 +++++++------- internal/api/friend/friend.go | 2 +- 2 files changed, 8 insertions(+), 8 deletions(-) diff --git a/cmd/open_im_api/main.go b/cmd/open_im_api/main.go index 8580de2cc..07b4d5479 100644 --- a/cmd/open_im_api/main.go +++ b/cmd/open_im_api/main.go @@ -33,13 +33,13 @@ func main() { friendRouterGroup := r.Group("/friend") { // friendRouterGroup.POST("/get_friends_info", friend.GetFriendsInfo) - friendRouterGroup.POST("/add_friend", friend.AddFriend) //1 - friendRouterGroup.POST("/delete_friend", friend.DeleteFriend) //1 - friendRouterGroup.POST("/get_friend_apply_list", friend.GetFriendApplyList) //1 - friendRouterGroup.POST("/get_self_apply_list", friend.GetSelfApplyList) //1 - friendRouterGroup.POST("/get_friend_list", friend.GetFriendList) //1 - friendRouterGroup.POST("/add_friend_response", friend.AddFriendResponse) //1 - friendRouterGroup.POST("/set_friend_remark", friend.SetFriendRemark) //1 + friendRouterGroup.POST("/add_friend", friend.AddFriend) //1 + friendRouterGroup.POST("/delete_friend", friend.DeleteFriend) //1 + friendRouterGroup.POST("/get_friend_apply_list", friend.GetFriendApplyList) //1 + friendRouterGroup.POST("/get_self_friend_apply_list", friend.GetSelfFriendApplyList) //1 + friendRouterGroup.POST("/get_friend_list", friend.GetFriendList) //1 + friendRouterGroup.POST("/add_friend_response", friend.AddFriendResponse) //1 + friendRouterGroup.POST("/set_friend_remark", friend.SetFriendRemark) //1 friendRouterGroup.POST("/add_black", friend.AddBlack) //1 friendRouterGroup.POST("/get_black_list", friend.GetBlacklist) //1 diff --git a/internal/api/friend/friend.go b/internal/api/friend/friend.go index 42f4ba86a..b63591748 100644 --- a/internal/api/friend/friend.go +++ b/internal/api/friend/friend.go @@ -423,7 +423,7 @@ func GetFriendApplyList(c *gin.Context) { c.JSON(http.StatusOK, resp) } -func GetSelfApplyList(c *gin.Context) { +func GetSelfFriendApplyList(c *gin.Context) { params := api.GetSelfApplyListReq{} if err := c.BindJSON(¶ms); err != nil { log.NewError("0", "BindJSON failed ", err.Error()) From 7e13cc84c85dba08c671d8c026ed4f9b10ca023d Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Sat, 15 Jan 2022 18:36:40 +0800 Subject: [PATCH 496/814] Refactor code --- internal/rpc/msg/friend_notification.go | 145 ++++++++++++++++-------- pkg/common/db/model_struct.go | 2 +- pkg/common/utils/utils.go | 67 +++++++---- pkg/utils/utils.go | 13 +++ 4 files changed, 158 insertions(+), 69 deletions(-) diff --git a/internal/rpc/msg/friend_notification.go b/internal/rpc/msg/friend_notification.go index 8b472e894..ef05211c2 100644 --- a/internal/rpc/msg/friend_notification.go +++ b/internal/rpc/msg/friend_notification.go @@ -8,7 +8,6 @@ import ( pbFriend "Open_IM/pkg/proto/friend" open_im_sdk "Open_IM/pkg/proto/sdk_ws" "Open_IM/pkg/utils" - "encoding/json" "github.com/golang/protobuf/proto" ) @@ -42,16 +41,21 @@ func getFromToUserNickname(fromUserID, toUserID string) (string, string, error) } func FriendApplicationAddedNotification(req *pbFriend.AddFriendReq) { - var FriendApplicationAddedTips open_im_sdk.FriendApplicationAddedTips - FriendApplicationAddedTips.FromToUserID.FromUserID = req.CommID.FromUserID - FriendApplicationAddedTips.FromToUserID.ToUserID = req.CommID.ToUserID + log.Info(req.CommID.OperationID, utils.GetSelfFuncName(), "args: ", req.String()) + var friendApplicationAddedTips open_im_sdk.FriendApplicationAddedTips + friendApplicationAddedTips.FromToUserID.FromUserID = req.CommID.FromUserID + friendApplicationAddedTips.FromToUserID.ToUserID = req.CommID.ToUserID fromUserNickname, toUserNickname, err := getFromToUserNickname(req.CommID.FromUserID, req.CommID.ToUserID) if err != nil { log.Error(req.CommID.OperationID, "getFromToUserNickname failed ", err.Error(), req.CommID.FromUserID, req.CommID.ToUserID) return } var tips open_im_sdk.TipsComm - tips.Detail, _ = json.Marshal(FriendApplicationAddedTips) + tips.Detail, err = proto.Marshal(&friendApplicationAddedTips) + if err != nil { + log.Error(req.CommID.OperationID, "Marshal failed ", err.Error(), friendApplicationAddedTips.String()) + return + } tips.DefaultTips = fromUserNickname + " FriendApplicationAddedNotification " + toUserNickname var n NotificationMsg @@ -61,14 +65,18 @@ func FriendApplicationAddedNotification(req *pbFriend.AddFriendReq) { n.SessionType = constant.SingleChatType n.MsgFrom = constant.SysMsgType n.OperationID = req.CommID.OperationID - n.Content, _ = json.Marshal(tips) + n.Content, err = proto.Marshal(&tips) + if err != nil { + log.Error(req.CommID.OperationID, "Marshal failed ", err.Error(), tips.String()) + return + } Notification(&n) } func FriendApplicationProcessedNotification(req *pbFriend.AddFriendResponseReq) { - var FriendApplicationProcessedTips open_im_sdk.FriendApplicationProcessedTips - FriendApplicationProcessedTips.FromToUserID.FromUserID = req.CommID.FromUserID - FriendApplicationProcessedTips.FromToUserID.ToUserID = req.CommID.ToUserID + var friendApplicationProcessedTips open_im_sdk.FriendApplicationProcessedTips + friendApplicationProcessedTips.FromToUserID.FromUserID = req.CommID.FromUserID + friendApplicationProcessedTips.FromToUserID.ToUserID = req.CommID.ToUserID fromUserNickname, toUserNickname, err := getFromToUserNickname(req.CommID.FromUserID, req.CommID.ToUserID) if err != nil { log.Error(req.CommID.OperationID, "getFromToUserNickname failed ", err.Error(), req.CommID.FromUserID, req.CommID.ToUserID) @@ -76,9 +84,9 @@ func FriendApplicationProcessedNotification(req *pbFriend.AddFriendResponseReq) } var tips open_im_sdk.TipsComm - tips.Detail, err = proto.Marshal(&FriendApplicationProcessedTips) + tips.Detail, err = proto.Marshal(&friendApplicationProcessedTips) if err != nil { - log.Error(req.CommID.OperationID, "Marshal failed ", err.Error(), FriendApplicationProcessedTips) + log.Error(req.CommID.OperationID, "Marshal failed ", err.Error(), friendApplicationProcessedTips.String()) return } tips.DefaultTips = fromUserNickname + " FriendApplicationProcessedNotification " + toUserNickname @@ -90,39 +98,39 @@ func FriendApplicationProcessedNotification(req *pbFriend.AddFriendResponseReq) n.SessionType = constant.SingleChatType n.MsgFrom = constant.SysMsgType n.OperationID = req.CommID.OperationID - n.Content, _ = json.Marshal(tips) n.Content, err = proto.Marshal(&tips) if err != nil { - log.Error(req.CommID.OperationID, "Marshal failed ", err.Error(), tips) + log.Error(req.CommID.OperationID, "Marshal failed ", err.Error(), tips.String()) return } Notification(&n) } func FriendAddedNotification(operationID, opUserID, fromUserID, toUserID string) { - var FriendAddedTips open_im_sdk.FriendAddedTips + var friendAddedTips open_im_sdk.FriendAddedTips user, err := imdb.GetUserByUserID(opUserID) if err != nil { log.NewError(operationID, "GetUserByUserID failed ", err.Error(), opUserID) return } - utils.CopyStructFields(FriendAddedTips.OpUser, user) - + utils2.UserDBCopyOpenIMPublicUser(friendAddedTips.OpUser, user) friend, err := imdb.GetFriendRelationshipFromFriend(fromUserID, toUserID) if err != nil { log.NewError(operationID, "GetFriendRelationshipFromFriend failed ", err.Error(), fromUserID, toUserID) return } - utils2.FriendDBCopyOpenIM(FriendAddedTips.Friend, friend) - + utils2.FriendDBCopyOpenIM(friendAddedTips.Friend, friend) fromUserNickname, toUserNickname, err := getFromToUserNickname(fromUserID, toUserID) if err != nil { log.Error(operationID, "getFromToUserNickname failed ", err.Error(), fromUserID, toUserID) return } - var tips open_im_sdk.TipsComm - tips.Detail, _ = json.Marshal(FriendAddedTips) + tips.Detail, err = proto.Marshal(&friendAddedTips) + if err != nil { + log.Error(operationID, "Marshal failed ", err.Error(), friendAddedTips) + return + } tips.DefaultTips = fromUserNickname + " FriendAddedNotification " + toUserNickname var n NotificationMsg n.SendID = fromUserID @@ -131,7 +139,11 @@ func FriendAddedNotification(operationID, opUserID, fromUserID, toUserID string) n.SessionType = constant.SingleChatType n.MsgFrom = constant.SysMsgType n.OperationID = operationID - n.Content, _ = json.Marshal(tips) + n.Content, _ = proto.Marshal(&tips) + if err != nil { + log.Error(operationID, "Marshal failed ", err.Error(), tips.String()) + return + } Notification(&n) } @@ -139,17 +151,20 @@ func FriendAddedNotification(operationID, opUserID, fromUserID, toUserID string) // FriendInfo Friend = 1; //} func FriendDeletedNotification(req *pbFriend.DeleteFriendReq) { - - var FriendDeletedTips open_im_sdk.FriendDeletedTips - FriendDeletedTips.FromToUserID.FromUserID = req.CommID.FromUserID - FriendDeletedTips.FromToUserID.ToUserID = req.CommID.ToUserID + var friendDeletedTips open_im_sdk.FriendDeletedTips + friendDeletedTips.FromToUserID.FromUserID = req.CommID.FromUserID + friendDeletedTips.FromToUserID.ToUserID = req.CommID.ToUserID fromUserNickname, toUserNickname, err := getFromToUserNickname(req.CommID.FromUserID, req.CommID.ToUserID) if err != nil { log.Error(req.CommID.OperationID, "getFromToUserNickname failed ", req.CommID.FromUserID, req.CommID.ToUserID) return } var tips open_im_sdk.TipsComm - tips.Detail, _ = json.Marshal(FriendDeletedTips) + tips.Detail, err = proto.Marshal(&friendDeletedTips) + if err != nil { + log.Error(req.CommID.OperationID, "Marshal failed ", err.Error(), friendDeletedTips.String()) + return + } tips.DefaultTips = fromUserNickname + " FriendDeletedNotification " + toUserNickname var n NotificationMsg n.SendID = req.CommID.FromUserID @@ -158,7 +173,11 @@ func FriendDeletedNotification(req *pbFriend.DeleteFriendReq) { n.SessionType = constant.SingleChatType n.MsgFrom = constant.SysMsgType n.OperationID = req.CommID.OperationID - n.Content, _ = json.Marshal(tips) + n.Content, err = proto.Marshal(&tips) + if err != nil { + log.Error(req.CommID.OperationID, "Marshal failed ", err.Error(), tips.String()) + return + } Notification(&n) } @@ -168,17 +187,20 @@ func FriendDeletedNotification(req *pbFriend.DeleteFriendReq) { // uint64 OperationTime = 3; //} func FriendInfoChangedNotification(operationID, opUserID, fromUserID, toUserID string) { - - var FriendInfoChangedTips open_im_sdk.FriendInfoChangedTips - FriendInfoChangedTips.FromToUserID.FromUserID = fromUserID - FriendInfoChangedTips.FromToUserID.ToUserID = toUserID + var friendInfoChangedTips open_im_sdk.FriendInfoChangedTips + friendInfoChangedTips.FromToUserID.FromUserID = fromUserID + friendInfoChangedTips.FromToUserID.ToUserID = toUserID fromUserNickname, toUserNickname, err := getFromToUserNickname(fromUserID, toUserID) if err != nil { log.Error(operationID, "getFromToUserNickname failed ", fromUserID, toUserID) return } var tips open_im_sdk.TipsComm - tips.Detail, _ = json.Marshal(FriendInfoChangedTips) + tips.Detail, err = proto.Marshal(&friendInfoChangedTips) + if err != nil { + log.Error(operationID, "Marshal failed ", err.Error(), friendInfoChangedTips.String()) + return + } tips.DefaultTips = fromUserNickname + " FriendDeletedNotification " + toUserNickname var n NotificationMsg n.SendID = fromUserID @@ -188,22 +210,29 @@ func FriendInfoChangedNotification(operationID, opUserID, fromUserID, toUserID s n.MsgFrom = constant.SysMsgType n.OperationID = operationID - n.Content, _ = json.Marshal(tips) + n.Content, err = proto.Marshal(&tips) + if err != nil { + log.Error(operationID, "Marshal failed ", err.Error(), tips.String()) + return + } Notification(&n) } func BlackAddedNotification(req *pbFriend.AddBlacklistReq) { - - var BlackAddedTips open_im_sdk.BlackAddedTips - BlackAddedTips.FromToUserID.FromUserID = req.CommID.FromUserID - BlackAddedTips.FromToUserID.ToUserID = req.CommID.ToUserID + var blackAddedTips open_im_sdk.BlackAddedTips + blackAddedTips.FromToUserID.FromUserID = req.CommID.FromUserID + blackAddedTips.FromToUserID.ToUserID = req.CommID.ToUserID fromUserNickname, toUserNickname, err := getFromToUserNickname(req.CommID.FromUserID, req.CommID.ToUserID) if err != nil { log.Error(req.CommID.OperationID, "getFromToUserNickname failed ", req.CommID.FromUserID, req.CommID.ToUserID) return } var tips open_im_sdk.TipsComm - tips.Detail, _ = json.Marshal(BlackAddedTips) + tips.Detail, err = proto.Marshal(&blackAddedTips) + if err != nil { + log.Error(req.CommID.OperationID, "Marshal failed ", err.Error(), blackAddedTips.String()) + return + } tips.DefaultTips = fromUserNickname + " BlackAddedNotification " + toUserNickname var n NotificationMsg n.SendID = req.CommID.FromUserID @@ -212,7 +241,11 @@ func BlackAddedNotification(req *pbFriend.AddBlacklistReq) { n.SessionType = constant.SingleChatType n.MsgFrom = constant.SysMsgType n.OperationID = req.CommID.OperationID - n.Content, _ = json.Marshal(tips) + n.Content, err = proto.Marshal(&tips) + if err != nil { + log.Error(req.CommID.OperationID, "Marshal failed ", err.Error(), tips.String()) + return + } Notification(&n) } @@ -220,16 +253,20 @@ func BlackAddedNotification(req *pbFriend.AddBlacklistReq) { // BlackInfo Black = 1; //} func BlackDeletedNotification(req *pbFriend.RemoveBlacklistReq) { - var BlackDeletedTips open_im_sdk.BlackDeletedTips - BlackDeletedTips.FromToUserID.FromUserID = req.CommID.FromUserID - BlackDeletedTips.FromToUserID.ToUserID = req.CommID.ToUserID + var blackDeletedTips open_im_sdk.BlackDeletedTips + blackDeletedTips.FromToUserID.FromUserID = req.CommID.FromUserID + blackDeletedTips.FromToUserID.ToUserID = req.CommID.ToUserID fromUserNickname, toUserNickname, err := getFromToUserNickname(req.CommID.FromUserID, req.CommID.ToUserID) if err != nil { log.Error(req.CommID.OperationID, "getFromToUserNickname failed ", err.Error(), req.CommID.FromUserID, req.CommID.ToUserID) return } var tips open_im_sdk.TipsComm - tips.Detail, _ = json.Marshal(BlackDeletedTips) + tips.Detail, err = proto.Marshal(&blackDeletedTips) + if err != nil { + log.Error(req.CommID.OperationID, "Marshal failed ", err.Error(), blackDeletedTips.String()) + return + } tips.DefaultTips = fromUserNickname + " BlackDeletedNotification " + toUserNickname var n NotificationMsg n.SendID = req.CommID.FromUserID @@ -238,7 +275,11 @@ func BlackDeletedNotification(req *pbFriend.RemoveBlacklistReq) { n.SessionType = constant.SingleChatType n.MsgFrom = constant.SysMsgType n.OperationID = req.CommID.OperationID - n.Content, _ = json.Marshal(tips) + n.Content, err = proto.Marshal(&tips) + if err != nil { + log.Error(req.CommID.OperationID, "Marshal failed ", err.Error(), tips.String()) + return + } Notification(&n) } @@ -248,15 +289,19 @@ func BlackDeletedNotification(req *pbFriend.RemoveBlacklistReq) { // uint64 OperationTime = 3; //} func SelfInfoUpdatedNotification(operationID, userID string) { - var SelfInfoUpdatedTips open_im_sdk.SelfInfoUpdatedTips - SelfInfoUpdatedTips.UserID = userID + var selfInfoUpdatedTips open_im_sdk.SelfInfoUpdatedTips + selfInfoUpdatedTips.UserID = userID u, err := imdb.GetUserByUserID(userID) if err != nil { log.NewError(operationID, "FindUserByUID failed ", err.Error(), userID) return } var tips open_im_sdk.TipsComm - tips.Detail, _ = json.Marshal(SelfInfoUpdatedTips) + tips.Detail, err = proto.Marshal(&selfInfoUpdatedTips) + if err != nil { + log.Error(operationID, "Marshal failed ", err.Error(), selfInfoUpdatedTips.String()) + return + } var n NotificationMsg n.SendID = userID n.RecvID = userID @@ -266,6 +311,10 @@ func SelfInfoUpdatedNotification(operationID, userID string) { n.OperationID = operationID tips.DefaultTips = u.Nickname + " SelfInfoUpdatedNotification " - n.Content, _ = json.Marshal(tips) + n.Content, err = proto.Marshal(&tips) + if err != nil { + log.Error(operationID, "Marshal failed ", err.Error(), tips.String()) + return + } Notification(&n) } diff --git a/pkg/common/db/model_struct.go b/pkg/common/db/model_struct.go index 0af3a6919..7cb768cd4 100644 --- a/pkg/common/db/model_struct.go +++ b/pkg/common/db/model_struct.go @@ -34,7 +34,7 @@ type Friend struct { //int64 HandleTime = 8; //string Ex = 9; //} -//open_im_sdk.FriendRequest == imdb.FriendRequest +//open_im_sdk.FriendRequest(nickname, farce url ...) != imdb.FriendRequest type FriendRequest struct { FromUserID string `gorm:"column:from_user_id;primary_key;size:64"` ToUserID string `gorm:"column:to_user_id;primary_key;size:64"` diff --git a/pkg/common/utils/utils.go b/pkg/common/utils/utils.go index ed061a509..e299fefc2 100644 --- a/pkg/common/utils/utils.go +++ b/pkg/common/utils/utils.go @@ -3,6 +3,7 @@ package utils import ( db "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_sdk "Open_IM/pkg/proto/sdk_ws" "Open_IM/pkg/utils" @@ -18,27 +19,64 @@ func OperationIDGenerator() string { func FriendOpenIMCopyDB(dst *db.Friend, src *open_im_sdk.FriendInfo) { utils.CopyStructFields(dst, src) dst.FriendUserID = src.FriendUser.UserID + dst.CreateTime = utils.UnixSecondToTime(int64(src.CreateTime)) } -func FriendDBCopyOpenIM(dst *open_im_sdk.FriendInfo, src *db.Friend) { +func FriendDBCopyOpenIM(dst *open_im_sdk.FriendInfo, src *db.Friend) error { utils.CopyStructFields(dst, src) - user, _ := imdb.GetUserByUserID(src.FriendUserID) - if user != nil { - utils.CopyStructFields(dst.FriendUser, user) + user, err := imdb.GetUserByUserID(src.FriendUserID) + if err != nil { + return utils.Wrap(err, "") } + utils.CopyStructFields(dst.FriendUser, user) dst.CreateTime = uint32(src.CreateTime.Unix()) dst.FriendUser.CreateTime = uint32(user.CreateTime.Unix()) + return nil } // func FriendRequestOpenIMCopyDB(dst *db.FriendRequest, src *open_im_sdk.FriendRequest) { utils.CopyStructFields(dst, src) + dst.CreateTime = utils.UnixSecondToTime(int64(src.CreateTime)) + dst.HandleTime = utils.UnixSecondToTime(int64(src.HandleTime)) } -func FriendRequestDBCopyOpenIM(dst *open_im_sdk.FriendRequest, src *db.FriendRequest) { +func FriendRequestDBCopyOpenIM(dst *open_im_sdk.FriendRequest, src *db.FriendRequest) error { utils.CopyStructFields(dst, src) + user, err := imdb.GetUserByUserID(src.FromUserID) + if err != nil { + return utils.Wrap(err, "") + } + dst.FromNickname = user.Nickname + dst.FromFaceURL = user.FaceURL + dst.FromGender = user.Gender + user, err = imdb.GetUserByUserID(src.ToUserID) + if err != nil { + return utils.Wrap(err, "") + } + dst.ToNickname = user.Nickname + dst.ToFaceURL = user.FaceURL + dst.ToGender = user.Gender dst.CreateTime = uint32(src.CreateTime.Unix()) dst.HandleTime = uint32(src.HandleTime.Unix()) + return nil +} + +func BlackOpenIMCopyDB(dst *db.Black, src *open_im_sdk.BlackInfo) { + utils.CopyStructFields(dst, src) + dst.BlockUserID = src.BlackUserInfo.UserID + dst.CreateTime = utils.UnixSecondToTime(int64(src.CreateTime)) +} + +func BlackDBCopyOpenIM(dst *open_im_sdk.BlackInfo, src *db.Black) error { + utils.CopyStructFields(dst, src) + dst.CreateTime = uint32(src.CreateTime.Unix()) + user, err := imdb.GetUserByUserID(src.BlockUserID) + if err != nil { + return utils.Wrap(err, "") + } + utils.CopyStructFields(dst.BlackUserInfo, user) + return nil } func GroupOpenIMCopyDB(dst *db.Group, src *open_im_sdk.GroupInfo) { @@ -93,28 +131,17 @@ func GroupRequestDBCopyOpenIM(dst *open_im_sdk.GroupRequest, src *db.GroupReques func UserOpenIMCopyDB(dst *db.User, src *open_im_sdk.UserInfo) { utils.CopyStructFields(dst, src) + dst.Birth = utils.UnixSecondToTime(int64(src.Birth)) + dst.CreateTime = utils.UnixSecondToTime(int64(src.CreateTime)) } func UserDBCopyOpenIM(dst *open_im_sdk.UserInfo, src *db.User) { utils.CopyStructFields(dst, src) dst.CreateTime = uint32(src.CreateTime.Unix()) + dst.Birth = uint32(src.Birth.Unix()) } -func BlackOpenIMCopyDB(dst *db.Black, src *open_im_sdk.BlackInfo) { - utils.CopyStructFields(dst, src) - dst.BlockUserID = src.BlackUserInfo.UserID -} - -func BlackDBCopyOpenIM(dst *open_im_sdk.BlackInfo, src *db.Black) { - utils.CopyStructFields(dst, src) - dst.CreateTime = uint32(src.CreateTime.Unix()) - user, _ := imdb.GetUserByUserID(src.BlockUserID) - if user != nil { - utils.CopyStructFields(dst.BlackUserInfo, user) - } -} - -func UserDBCopyOpenIMPublic(dst *open_im_sdk.PublicUserInfo, src *db.User) { +func UserDBCopyOpenIMPublicUser(dst *open_im_sdk.PublicUserInfo, src *db.User) { utils.CopyStructFields(dst, src) } diff --git a/pkg/utils/utils.go b/pkg/utils/utils.go index 2e8274207..f175255ab 100644 --- a/pkg/utils/utils.go +++ b/pkg/utils/utils.go @@ -5,6 +5,7 @@ import ( "github.com/pkg/errors" "runtime" "strconv" + "strings" ) // copy a by b b->a @@ -24,3 +25,15 @@ func printCallerNameAndLine() string { pc, _, line, _ := runtime.Caller(2) return runtime.FuncForPC(pc).Name() + "()@" + strconv.Itoa(line) + ": " } + +func GetSelfFuncName() string { + pc, _, _, _ := runtime.Caller(1) + return cleanUpFuncName(runtime.FuncForPC(pc).Name()) +} +func cleanUpFuncName(funcName string) string { + end := strings.LastIndex(funcName, ".") + if end == -1 { + return "" + } + return funcName[end+1:] +} From 87f14be30c50faa5e2b30e12ea2cd1ce8a1e8a82 Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Sun, 16 Jan 2022 12:25:41 +0800 Subject: [PATCH 497/814] Refactor code --- config/config.yaml | 115 +++++- internal/rpc/msg/friend_notification.go | 463 ++++++++++++++---------- internal/rpc/user/user.go | 2 +- pkg/common/config/config.go | 49 ++- pkg/common/constant/constant.go | 41 ++- pkg/proto/friend/friend.pb.go | 196 +++++----- pkg/proto/friend/friend.proto | 2 +- pkg/proto/sdk_ws/ws.proto | 91 +++-- 8 files changed, 621 insertions(+), 338 deletions(-) diff --git a/config/config.yaml b/config/config.yaml index 8658ecfd5..b8ab770c2 100644 --- a/config/config.yaml +++ b/config/config.yaml @@ -178,7 +178,7 @@ iOSPush: notification: groupCreated: conversation: - type: 1 + reliabilityLevel: 1 unreadCount: true offlinePush: switch: true @@ -191,7 +191,7 @@ notification: groupInfoChanged: conversation: - type: 1 + reliabilityLevel: 1 unreadCount: false offlinePush: switch: false @@ -203,6 +203,117 @@ notification: + FriendApplicationAdded: + conversation: + reliabilityLevel: 2 + unreadCount: false + offlinePush: + switch: true + title: "Somebody applies to add you as a friend" + desc: "Somebody applies to add you as a friend" + ext: "Somebody applies to add you as a friend" + defaultTips: + tips: "I applies to add you as a friend" # + + FriendApplicationApproved: + conversation: + reliabilityLevel: 2 + unreadCount: false + offlinePush: + switch: true + title: "Someone applies to add your friend application" + desc: "Someone applies to add your friend application" + ext: "Someone applies to add your friend application" + defaultTips: + tips: "I applies to add your friend application" # + + + FriendApplicationRejected: + conversation: + reliabilityLevel: 2 + unreadCount: false + offlinePush: + switch: true + title: "Someone rejected your friend application" + desc: "Someone rejected your friend application" + ext: "Someone rejected your friend application" + defaultTips: + tips: "I rejected your friend application" # + + + + + + FriendAdded: + conversation: + reliabilityLevel: 3 + unreadCount: true + offlinePush: + switch: true + title: "We have become friends" + desc: "We have become friends" + ext: "We have become friends" + defaultTips: + tips: "We have become friends" # + + + + FriendDeleted: + conversation: + reliabilityLevel: 2 + unreadCount: false + offlinePush: + switch: true + title: "Deleted a friend" + desc: "Deleted a friend" + ext: "Deleted a friend" + defaultTips: + tips: "Deleted a friend" # + + + FriendInfoChanged: + conversation: + reliabilityLevel: 2 + unreadCount: false + offlinePush: + switch: true + title: "Your friend's profile has been changed" + desc: "Your friend's profile has been changed" + ext: "Your friend's profile has been changed" + defaultTips: + tips: "Your friend's profile has been changed" # + + + + BlackAdded: + conversation: + reliabilityLevel: 2 + unreadCount: false + offlinePush: + switch: true + title: "Blocked a user" + desc: "Blocked a user" + ext: "Blocked a user" + defaultTips: + tips: "Blocked a user" # + + + BlackDeleted: + conversation: + reliabilityLevel: 2 + unreadCount: false + offlinePush: + switch: true + title: "Remove a blocked user" + desc: "Remove a blocked user" + ext: "Remove a blocked user" + defaultTips: + tips: "Remove a blocked user" + +" # xx applied to add you as a friend + + + #---------------demo configuration---------------------# #The following configuration items are applied to openIM Demo configuration demoswitch: true diff --git a/internal/rpc/msg/friend_notification.go b/internal/rpc/msg/friend_notification.go index ef05211c2..5e9017568 100644 --- a/internal/rpc/msg/friend_notification.go +++ b/internal/rpc/msg/friend_notification.go @@ -1,6 +1,7 @@ package msg import ( + "Open_IM/pkg/common/config" "Open_IM/pkg/common/constant" imdb "Open_IM/pkg/common/db/mysql_model/im_mysql_model" "Open_IM/pkg/common/log" @@ -40,70 +41,133 @@ func getFromToUserNickname(fromUserID, toUserID string) (string, string, error) return from.Nickname, to.Nickname, nil } -func FriendApplicationAddedNotification(req *pbFriend.AddFriendReq) { - log.Info(req.CommID.OperationID, utils.GetSelfFuncName(), "args: ", req.String()) - var friendApplicationAddedTips open_im_sdk.FriendApplicationAddedTips - friendApplicationAddedTips.FromToUserID.FromUserID = req.CommID.FromUserID - friendApplicationAddedTips.FromToUserID.ToUserID = req.CommID.ToUserID - fromUserNickname, toUserNickname, err := getFromToUserNickname(req.CommID.FromUserID, req.CommID.ToUserID) +func friendNotification(commID *pbFriend.CommID, contentType int32, m proto.Message) { + log.Info(commID.OperationID, utils.GetSelfFuncName(), "args: ", commID, contentType) + var err error + var tips open_im_sdk.TipsComm + tips.Detail, err = proto.Marshal(m) if err != nil { - log.Error(req.CommID.OperationID, "getFromToUserNickname failed ", err.Error(), req.CommID.FromUserID, req.CommID.ToUserID) + log.Error(commID.OperationID, "Marshal failed ", err.Error(), m.String()) return } - var tips open_im_sdk.TipsComm - tips.Detail, err = proto.Marshal(&friendApplicationAddedTips) + + fromUserNickname, toUserNickname, err := getFromToUserNickname(commID.FromUserID, commID.ToUserID) if err != nil { - log.Error(req.CommID.OperationID, "Marshal failed ", err.Error(), friendApplicationAddedTips.String()) + log.Error(commID.OperationID, "getFromToUserNickname failed ", err.Error(), commID.FromUserID, commID.ToUserID) + return + } + cn := config.Config.Notification + switch contentType { + case constant.FriendApplicationAddedNotification: + + tips.DefaultTips = fromUserNickname + cn.FriendApplicationAdded.DefaultTips.Tips + case constant.FriendApplicationApprovedNotification: + tips.DefaultTips = fromUserNickname + cn.FriendApplicationApproved.DefaultTips.Tips + case constant.FriendApplicationRejectedNotification: + tips.DefaultTips = fromUserNickname + cn.FriendApplicationRejected.DefaultTips.Tips + case constant.FriendAddedNotification: + tips.DefaultTips = cn.FriendAdded.DefaultTips.Tips + case constant.FriendDeletedNotification: + tips.DefaultTips = cn.FriendDeleted.DefaultTips.Tips + toUserNickname + case constant.FriendInfoChangedNotification: + tips.DefaultTips = fromUserNickname + cn.FriendInfoChanged.DefaultTips.Tips + case constant.BlackAddedNotification: + tips.DefaultTips = cn.BlackAdded.DefaultTips.Tips + toUserNickname + case constant.BlackDeletedNotification: + tips.DefaultTips = cn.BlackDeleted.DefaultTips.Tips + toUserNickname + default: + log.Error(commID.OperationID, "contentType failed ", contentType) return } - tips.DefaultTips = fromUserNickname + " FriendApplicationAddedNotification " + toUserNickname var n NotificationMsg - n.SendID = req.CommID.FromUserID - n.RecvID = req.CommID.ToUserID - n.ContentType = constant.FriendApplicationAddedNotification + n.SendID = commID.FromUserID + n.RecvID = commID.ToUserID + n.ContentType = contentType n.SessionType = constant.SingleChatType n.MsgFrom = constant.SysMsgType - n.OperationID = req.CommID.OperationID + n.OperationID = commID.OperationID n.Content, err = proto.Marshal(&tips) if err != nil { - log.Error(req.CommID.OperationID, "Marshal failed ", err.Error(), tips.String()) + log.Error(commID.OperationID, "Marshal failed ", err.Error(), tips.String()) return } Notification(&n) } +func FriendApplicationAddedNotification(req *pbFriend.AddFriendReq) { + log.Info(req.CommID.OperationID, utils.GetSelfFuncName(), "args: ", req.String()) + var friendApplicationAddedTips open_im_sdk.FriendApplicationAddedTips + friendApplicationAddedTips.FromToUserID.FromUserID = req.CommID.FromUserID + friendApplicationAddedTips.FromToUserID.ToUserID = req.CommID.ToUserID + friendNotification(req.CommID, constant.FriendApplicationAddedNotification, &friendApplicationAddedTips) + //fromUserNickname, toUserNickname, err := getFromToUserNickname(req.CommID.FromUserID, req.CommID.ToUserID) + //if err != nil { + // log.Error(req.CommID.OperationID, "getFromToUserNickname failed ", err.Error(), req.CommID.FromUserID, req.CommID.ToUserID) + // return + //} + //var tips open_im_sdk.TipsComm + //tips.Detail, err = proto.Marshal(&friendApplicationAddedTips) + //if err != nil { + // log.Error(req.CommID.OperationID, "Marshal failed ", err.Error(), friendApplicationAddedTips.String()) + // return + //} + //tips.DefaultTips = fromUserNickname + " FriendApplicationAddedNotification " + toUserNickname + // + //var n NotificationMsg + //n.SendID = req.CommID.FromUserID + //n.RecvID = req.CommID.ToUserID + //n.ContentType = constant.FriendApplicationAddedNotification + //n.SessionType = constant.SingleChatType + //n.MsgFrom = constant.SysMsgType + //n.OperationID = req.CommID.OperationID + //n.Content, err = proto.Marshal(&tips) + //if err != nil { + // log.Error(req.CommID.OperationID, "Marshal failed ", err.Error(), tips.String()) + // return + //} + //Notification(&n) +} + func FriendApplicationProcessedNotification(req *pbFriend.AddFriendResponseReq) { var friendApplicationProcessedTips open_im_sdk.FriendApplicationProcessedTips friendApplicationProcessedTips.FromToUserID.FromUserID = req.CommID.FromUserID friendApplicationProcessedTips.FromToUserID.ToUserID = req.CommID.ToUserID - fromUserNickname, toUserNickname, err := getFromToUserNickname(req.CommID.FromUserID, req.CommID.ToUserID) - if err != nil { - log.Error(req.CommID.OperationID, "getFromToUserNickname failed ", err.Error(), req.CommID.FromUserID, req.CommID.ToUserID) - return + friendApplicationProcessedTips.HandleResult = req.HandleResult + //fromUserNickname, toUserNickname, err := getFromToUserNickname(req.CommID.FromUserID, req.CommID.ToUserID) + //if err != nil { + // log.Error(req.CommID.OperationID, "getFromToUserNickname failed ", err.Error(), req.CommID.FromUserID, req.CommID.ToUserID) + // return + //} + if friendApplicationProcessedTips.HandleResult == 1 { + friendNotification(req.CommID, constant.FriendApplicationApprovedNotification, &friendApplicationProcessedTips) + } else if friendApplicationProcessedTips.HandleResult == -1 { + friendNotification(req.CommID, constant.FriendApplicationRejectedNotification, &friendApplicationProcessedTips) + } else { + log.Error(req.CommID.OperationID, "HandleResult failed ", friendApplicationProcessedTips.HandleResult) } - var tips open_im_sdk.TipsComm - tips.Detail, err = proto.Marshal(&friendApplicationProcessedTips) - if err != nil { - log.Error(req.CommID.OperationID, "Marshal failed ", err.Error(), friendApplicationProcessedTips.String()) - return - } - tips.DefaultTips = fromUserNickname + " FriendApplicationProcessedNotification " + toUserNickname - - var n NotificationMsg - n.SendID = req.CommID.FromUserID - n.RecvID = req.CommID.ToUserID - n.ContentType = constant.FriendApplicationProcessedNotification - n.SessionType = constant.SingleChatType - n.MsgFrom = constant.SysMsgType - n.OperationID = req.CommID.OperationID - n.Content, err = proto.Marshal(&tips) - if err != nil { - log.Error(req.CommID.OperationID, "Marshal failed ", err.Error(), tips.String()) - return - } - Notification(&n) + //var tips open_im_sdk.TipsComm + //tips.DefaultTips = fromUserNickname + " FriendApplicationProcessedNotification " + toUserNickname + //tips.Detail, err = proto.Marshal(&friendApplicationProcessedTips) + //if err != nil { + // log.Error(req.CommID.OperationID, "Marshal failed ", err.Error(), friendApplicationProcessedTips.String()) + // return + //} + // + //var n NotificationMsg + //n.SendID = req.CommID.FromUserID + //n.RecvID = req.CommID.ToUserID + //n.ContentType = constant.FriendApplicationProcessedNotification + //n.SessionType = constant.SingleChatType + //n.MsgFrom = constant.SysMsgType + //n.OperationID = req.CommID.OperationID + //n.Content, err = proto.Marshal(&tips) + //if err != nil { + // log.Error(req.CommID.OperationID, "Marshal failed ", err.Error(), tips.String()) + // return + //} + //Notification(&n) } func FriendAddedNotification(operationID, opUserID, fromUserID, toUserID string) { @@ -120,31 +184,34 @@ func FriendAddedNotification(operationID, opUserID, fromUserID, toUserID string) return } utils2.FriendDBCopyOpenIM(friendAddedTips.Friend, friend) - fromUserNickname, toUserNickname, err := getFromToUserNickname(fromUserID, toUserID) - if err != nil { - log.Error(operationID, "getFromToUserNickname failed ", err.Error(), fromUserID, toUserID) - return - } - var tips open_im_sdk.TipsComm - tips.Detail, err = proto.Marshal(&friendAddedTips) - if err != nil { - log.Error(operationID, "Marshal failed ", err.Error(), friendAddedTips) - return - } - tips.DefaultTips = fromUserNickname + " FriendAddedNotification " + toUserNickname - var n NotificationMsg - n.SendID = fromUserID - n.RecvID = toUserID - n.ContentType = constant.FriendAddedNotification - n.SessionType = constant.SingleChatType - n.MsgFrom = constant.SysMsgType - n.OperationID = operationID - n.Content, _ = proto.Marshal(&tips) - if err != nil { - log.Error(operationID, "Marshal failed ", err.Error(), tips.String()) - return - } - Notification(&n) + commID := pbFriend.CommID{FromUserID: fromUserID, ToUserID: toUserID, OpUserID: opUserID, OperationID: operationID} + friendNotification(&commID, constant.FriendAddedNotification, &friendAddedTips) + //fromUserNickname, toUserNickname, err := getFromToUserNickname(fromUserID, toUserID) + //if err != nil { + // log.Error(operationID, "getFromToUserNickname failed ", err.Error(), fromUserID, toUserID) + // return + //} + //var tips open_im_sdk.TipsComm + //tips.DefaultTips = fromUserNickname + " FriendAddedNotification " + toUserNickname + //tips.Detail, err = proto.Marshal(&friendAddedTips) + //if err != nil { + // log.Error(operationID, "Marshal failed ", err.Error(), friendAddedTips) + // return + //} + // + //var n NotificationMsg + //n.SendID = fromUserID + //n.RecvID = toUserID + //n.ContentType = constant.FriendAddedNotification + //n.SessionType = constant.SingleChatType + //n.MsgFrom = constant.SysMsgType + //n.OperationID = operationID + //n.Content, err = proto.Marshal(&tips) + //if err != nil { + // log.Error(operationID, "Marshal failed ", err.Error(), tips.String()) + // return + //} + //Notification(&n) } //message FriendDeletedTips{ @@ -154,31 +221,33 @@ func FriendDeletedNotification(req *pbFriend.DeleteFriendReq) { var friendDeletedTips open_im_sdk.FriendDeletedTips friendDeletedTips.FromToUserID.FromUserID = req.CommID.FromUserID friendDeletedTips.FromToUserID.ToUserID = req.CommID.ToUserID - fromUserNickname, toUserNickname, err := getFromToUserNickname(req.CommID.FromUserID, req.CommID.ToUserID) - if err != nil { - log.Error(req.CommID.OperationID, "getFromToUserNickname failed ", req.CommID.FromUserID, req.CommID.ToUserID) - return - } - var tips open_im_sdk.TipsComm - tips.Detail, err = proto.Marshal(&friendDeletedTips) - if err != nil { - log.Error(req.CommID.OperationID, "Marshal failed ", err.Error(), friendDeletedTips.String()) - return - } - tips.DefaultTips = fromUserNickname + " FriendDeletedNotification " + toUserNickname - var n NotificationMsg - n.SendID = req.CommID.FromUserID - n.RecvID = req.CommID.ToUserID - n.ContentType = constant.FriendDeletedNotification - n.SessionType = constant.SingleChatType - n.MsgFrom = constant.SysMsgType - n.OperationID = req.CommID.OperationID - n.Content, err = proto.Marshal(&tips) - if err != nil { - log.Error(req.CommID.OperationID, "Marshal failed ", err.Error(), tips.String()) - return - } - Notification(&n) + //fromUserNickname, toUserNickname, err := getFromToUserNickname(req.CommID.FromUserID, req.CommID.ToUserID) + //if err != nil { + // log.Error(req.CommID.OperationID, "getFromToUserNickname failed ", req.CommID.FromUserID, req.CommID.ToUserID) + // return + //} + friendNotification(req.CommID, constant.FriendDeletedNotification, &friendDeletedTips) + //var tips open_im_sdk.TipsComm + //tips.DefaultTips = fromUserNickname + " FriendDeletedNotification " + toUserNickname + //tips.Detail, err = proto.Marshal(&friendDeletedTips) + //if err != nil { + // log.Error(req.CommID.OperationID, "Marshal failed ", err.Error(), friendDeletedTips.String()) + // return + //} + // + //var n NotificationMsg + //n.SendID = req.CommID.FromUserID + //n.RecvID = req.CommID.ToUserID + //n.ContentType = constant.FriendDeletedNotification + //n.SessionType = constant.SingleChatType + //n.MsgFrom = constant.SysMsgType + //n.OperationID = req.CommID.OperationID + //n.Content, err = proto.Marshal(&tips) + //if err != nil { + // log.Error(req.CommID.OperationID, "Marshal failed ", err.Error(), tips.String()) + // return + //} + //Notification(&n) } //message FriendInfoChangedTips{ @@ -190,63 +259,66 @@ func FriendInfoChangedNotification(operationID, opUserID, fromUserID, toUserID s var friendInfoChangedTips open_im_sdk.FriendInfoChangedTips friendInfoChangedTips.FromToUserID.FromUserID = fromUserID friendInfoChangedTips.FromToUserID.ToUserID = toUserID - fromUserNickname, toUserNickname, err := getFromToUserNickname(fromUserID, toUserID) - if err != nil { - log.Error(operationID, "getFromToUserNickname failed ", fromUserID, toUserID) - return - } - var tips open_im_sdk.TipsComm - tips.Detail, err = proto.Marshal(&friendInfoChangedTips) - if err != nil { - log.Error(operationID, "Marshal failed ", err.Error(), friendInfoChangedTips.String()) - return - } - tips.DefaultTips = fromUserNickname + " FriendDeletedNotification " + toUserNickname - var n NotificationMsg - n.SendID = fromUserID - n.RecvID = toUserID - n.ContentType = constant.FriendInfoChangedNotification - n.SessionType = constant.SingleChatType - n.MsgFrom = constant.SysMsgType - n.OperationID = operationID - - n.Content, err = proto.Marshal(&tips) - if err != nil { - log.Error(operationID, "Marshal failed ", err.Error(), tips.String()) - return - } - Notification(&n) + //fromUserNickname, toUserNickname, err := getFromToUserNickname(fromUserID, toUserID) + //if err != nil { + // log.Error(operationID, "getFromToUserNickname failed ", fromUserID, toUserID) + // return + //} + commID := pbFriend.CommID{FromUserID: fromUserID, ToUserID: toUserID, OpUserID: opUserID, OperationID: operationID} + friendNotification(&commID, constant.FriendInfoChangedNotification, &friendInfoChangedTips) + //var tips open_im_sdk.TipsComm + //tips.DefaultTips = fromUserNickname + " FriendDeletedNotification " + toUserNickname + //tips.Detail, err = proto.Marshal(&friendInfoChangedTips) + //if err != nil { + // log.Error(operationID, "Marshal failed ", err.Error(), friendInfoChangedTips.String()) + // return + //} + // + //var n NotificationMsg + //n.SendID = fromUserID + //n.RecvID = toUserID + //n.ContentType = constant.FriendInfoChangedNotification + //n.SessionType = constant.SingleChatType + //n.MsgFrom = constant.SysMsgType + //n.OperationID = operationID + //n.Content, err = proto.Marshal(&tips) + //if err != nil { + // log.Error(operationID, "Marshal failed ", err.Error(), tips.String()) + // return + //} + //Notification(&n) } func BlackAddedNotification(req *pbFriend.AddBlacklistReq) { var blackAddedTips open_im_sdk.BlackAddedTips blackAddedTips.FromToUserID.FromUserID = req.CommID.FromUserID blackAddedTips.FromToUserID.ToUserID = req.CommID.ToUserID - fromUserNickname, toUserNickname, err := getFromToUserNickname(req.CommID.FromUserID, req.CommID.ToUserID) - if err != nil { - log.Error(req.CommID.OperationID, "getFromToUserNickname failed ", req.CommID.FromUserID, req.CommID.ToUserID) - return - } - var tips open_im_sdk.TipsComm - tips.Detail, err = proto.Marshal(&blackAddedTips) - if err != nil { - log.Error(req.CommID.OperationID, "Marshal failed ", err.Error(), blackAddedTips.String()) - return - } - tips.DefaultTips = fromUserNickname + " BlackAddedNotification " + toUserNickname - var n NotificationMsg - n.SendID = req.CommID.FromUserID - n.RecvID = req.CommID.ToUserID - n.ContentType = constant.BlackAddedNotification - n.SessionType = constant.SingleChatType - n.MsgFrom = constant.SysMsgType - n.OperationID = req.CommID.OperationID - n.Content, err = proto.Marshal(&tips) - if err != nil { - log.Error(req.CommID.OperationID, "Marshal failed ", err.Error(), tips.String()) - return - } - Notification(&n) + //fromUserNickname, toUserNickname, err := getFromToUserNickname(req.CommID.FromUserID, req.CommID.ToUserID) + //if err != nil { + // log.Error(req.CommID.OperationID, "getFromToUserNickname failed ", req.CommID.FromUserID, req.CommID.ToUserID) + // return + //} + //var tips open_im_sdk.TipsComm + //tips.DefaultTips = fromUserNickname + " BlackAddedNotification " + toUserNickname + //tips.Detail, err = proto.Marshal(&blackAddedTips) + //if err != nil { + // log.Error(req.CommID.OperationID, "Marshal failed ", err.Error(), blackAddedTips.String()) + // return + //} + friendNotification(req.CommID, constant.BlackAddedNotification, &blackAddedTips) + //var n NotificationMsg + //n.SendID = req.CommID.FromUserID + //n.RecvID = req.CommID.ToUserID + //n.ContentType = constant.BlackAddedNotification + //n.SessionType = constant.SingleChatType + //n.MsgFrom = constant.SysMsgType + //n.OperationID = req.CommID.OperationID + //n.Content, err = proto.Marshal(&tips) + //if err != nil { + // log.Error(req.CommID.OperationID, "Marshal failed ", err.Error(), tips.String()) + // return + //} + //Notification(&n) } //message BlackDeletedTips{ @@ -256,31 +328,32 @@ func BlackDeletedNotification(req *pbFriend.RemoveBlacklistReq) { var blackDeletedTips open_im_sdk.BlackDeletedTips blackDeletedTips.FromToUserID.FromUserID = req.CommID.FromUserID blackDeletedTips.FromToUserID.ToUserID = req.CommID.ToUserID - fromUserNickname, toUserNickname, err := getFromToUserNickname(req.CommID.FromUserID, req.CommID.ToUserID) - if err != nil { - log.Error(req.CommID.OperationID, "getFromToUserNickname failed ", err.Error(), req.CommID.FromUserID, req.CommID.ToUserID) - return - } - var tips open_im_sdk.TipsComm - tips.Detail, err = proto.Marshal(&blackDeletedTips) - if err != nil { - log.Error(req.CommID.OperationID, "Marshal failed ", err.Error(), blackDeletedTips.String()) - return - } - tips.DefaultTips = fromUserNickname + " BlackDeletedNotification " + toUserNickname - var n NotificationMsg - n.SendID = req.CommID.FromUserID - n.RecvID = req.CommID.ToUserID - n.ContentType = constant.BlackDeletedNotification - n.SessionType = constant.SingleChatType - n.MsgFrom = constant.SysMsgType - n.OperationID = req.CommID.OperationID - n.Content, err = proto.Marshal(&tips) - if err != nil { - log.Error(req.CommID.OperationID, "Marshal failed ", err.Error(), tips.String()) - return - } - Notification(&n) + //fromUserNickname, toUserNickname, err := getFromToUserNickname(req.CommID.FromUserID, req.CommID.ToUserID) + //if err != nil { + // log.Error(req.CommID.OperationID, "getFromToUserNickname failed ", err.Error(), req.CommID.FromUserID, req.CommID.ToUserID) + // return + //} + //var tips open_im_sdk.TipsComm + //tips.Detail, err = proto.Marshal(&blackDeletedTips) + //if err != nil { + // log.Error(req.CommID.OperationID, "Marshal failed ", err.Error(), blackDeletedTips.String()) + // return + //} + friendNotification(req.CommID, constant.BlackDeletedNotification, &blackDeletedTips) + //tips.DefaultTips = fromUserNickname + " BlackDeletedNotification " + toUserNickname + //var n NotificationMsg + //n.SendID = req.CommID.FromUserID + //n.RecvID = req.CommID.ToUserID + //n.ContentType = constant.BlackDeletedNotification + //n.SessionType = constant.SingleChatType + //n.MsgFrom = constant.SysMsgType + //n.OperationID = req.CommID.OperationID + //n.Content, err = proto.Marshal(&tips) + //if err != nil { + // log.Error(req.CommID.OperationID, "Marshal failed ", err.Error(), tips.String()) + // return + //} + //Notification(&n) } //message SelfInfoUpdatedTips{ @@ -288,33 +361,35 @@ func BlackDeletedNotification(req *pbFriend.RemoveBlacklistReq) { // PublicUserInfo OpUser = 2; // uint64 OperationTime = 3; //} -func SelfInfoUpdatedNotification(operationID, userID string) { +func SelfInfoUpdatedNotification(operationID, userID string, opUserID string) { var selfInfoUpdatedTips open_im_sdk.SelfInfoUpdatedTips selfInfoUpdatedTips.UserID = userID - u, err := imdb.GetUserByUserID(userID) - if err != nil { - log.NewError(operationID, "FindUserByUID failed ", err.Error(), userID) - return - } - var tips open_im_sdk.TipsComm - tips.Detail, err = proto.Marshal(&selfInfoUpdatedTips) - if err != nil { - log.Error(operationID, "Marshal failed ", err.Error(), selfInfoUpdatedTips.String()) - return - } - var n NotificationMsg - n.SendID = userID - n.RecvID = userID - n.ContentType = constant.SelfInfoUpdatedNotification - n.SessionType = constant.SingleChatType - n.MsgFrom = constant.SysMsgType - n.OperationID = operationID - - tips.DefaultTips = u.Nickname + " SelfInfoUpdatedNotification " - n.Content, err = proto.Marshal(&tips) - if err != nil { - log.Error(operationID, "Marshal failed ", err.Error(), tips.String()) - return - } - Notification(&n) + commID := pbFriend.CommID{FromUserID: userID, ToUserID: userID, OpUserID: opUserID, OperationID: operationID} + friendNotification(&commID, constant.SelfInfoUpdatedNotification, &selfInfoUpdatedTips) + //u, err := imdb.GetUserByUserID(userID) + //if err != nil { + // log.NewError(operationID, "FindUserByUID failed ", err.Error(), userID) + // return + //} + //var tips open_im_sdk.TipsComm + //tips.Detail, err = proto.Marshal(&selfInfoUpdatedTips) + //if err != nil { + // log.Error(operationID, "Marshal failed ", err.Error(), selfInfoUpdatedTips.String()) + // return + //} + //var n NotificationMsg + //n.SendID = userID + //n.RecvID = userID + //n.ContentType = constant.SelfInfoUpdatedNotification + //n.SessionType = constant.SingleChatType + //n.MsgFrom = constant.SysMsgType + //n.OperationID = operationID + // + //tips.DefaultTips = u.Nickname + " SelfInfoUpdatedNotification " + //n.Content, err = proto.Marshal(&tips) + //if err != nil { + // log.Error(operationID, "Marshal failed ", err.Error(), tips.String()) + // return + //} + //Notification(&n) } diff --git a/internal/rpc/user/user.go b/internal/rpc/user/user.go index 0cf426051..e4366d6b6 100644 --- a/internal/rpc/user/user.go +++ b/internal/rpc/user/user.go @@ -237,6 +237,6 @@ func (s *userServer) UpdateUserInfo(ctx context.Context, req *pbUser.UpdateUserI for _, v := range RpcResp.FriendInfoList { chat.FriendInfoChangedNotification(req.OperationID, req.OpUserID, req.UserInfo.UserID, v.FriendUser.UserID) } - chat.SelfInfoUpdatedNotification(req.OperationID, req.UserInfo.UserID) + chat.SelfInfoUpdatedNotification(req.OperationID, req.UserInfo.UserID, req.OpUserID) return &pbUser.UpdateUserInfoResp{CommonResp: &pbUser.CommonResp{}}, nil } diff --git a/pkg/common/config/config.go b/pkg/common/config/config.go index b2679bf9b..bf175b3b6 100644 --- a/pkg/common/config/config.go +++ b/pkg/common/config/config.go @@ -181,6 +181,51 @@ type config struct { OfflinePush POfflinePush `yaml:"offlinePush"` DefaultTips PDefaultTips `yaml:"defaultTips"` } + //////////////////////friend/////////////////////// + FriendApplicationAdded struct { + Conversation PConversation `yaml:"conversation"` + OfflinePush POfflinePush `yaml:"offlinePush"` + DefaultTips PDefaultTips `yaml:"defaultTips"` + } + + FriendApplicationApproved struct { + Conversation PConversation `yaml:"conversation"` + OfflinePush POfflinePush `yaml:"offlinePush"` + DefaultTips PDefaultTips `yaml:"defaultTips"` + } + + FriendApplicationRejected struct { + Conversation PConversation `yaml:"conversation"` + OfflinePush POfflinePush `yaml:"offlinePush"` + DefaultTips PDefaultTips `yaml:"defaultTips"` + } + + FriendAdded struct { + Conversation PConversation `yaml:"conversation"` + OfflinePush POfflinePush `yaml:"offlinePush"` + DefaultTips PDefaultTips `yaml:"defaultTips"` + } + + FriendDeleted struct { + Conversation PConversation `yaml:"conversation"` + OfflinePush POfflinePush `yaml:"offlinePush"` + DefaultTips PDefaultTips `yaml:"defaultTips"` + } + FriendInfoChanged struct { + Conversation PConversation `yaml:"conversation"` + OfflinePush POfflinePush `yaml:"offlinePush"` + DefaultTips PDefaultTips `yaml:"defaultTips"` + } + BlackAdded struct { + Conversation PConversation `yaml:"conversation"` + OfflinePush POfflinePush `yaml:"offlinePush"` + DefaultTips PDefaultTips `yaml:"defaultTips"` + } + BlackDeleted struct { + Conversation PConversation `yaml:"conversation"` + OfflinePush POfflinePush `yaml:"offlinePush"` + DefaultTips PDefaultTips `yaml:"defaultTips"` + } } Demo struct { Port []int `yaml:"openImDemoPort"` @@ -201,8 +246,8 @@ type config struct { } } type PConversation struct { - ConversationChanged bool `yaml:"conversationChanged"` - UnreadCount bool `yaml:"unreadCount"` + ReliabilityLevel int `yaml:"reliabilityLevel"` + UnreadCount bool `yaml:"unreadCount"` } type POfflinePush struct { diff --git a/pkg/common/constant/constant.go b/pkg/common/constant/constant.go index cd35036fb..d8c3ba66d 100644 --- a/pkg/common/constant/constant.go +++ b/pkg/common/constant/constant.go @@ -46,24 +46,35 @@ const ( //SysRelated - FriendApplicationProcessedNotification = 1201 //AcceptFriendApplicationTip = 201 - FriendApplicationAddedNotification = 1202 //AddFriendTip = 202 - FriendAddedNotification = 1203 - FriendDeletedNotification = 1204 - FriendInfoChangedNotification = 1205 - BlackAddedNotification = 1206 - BlackDeletedNotification = 1207 + FriendApplicationApprovedNotification = 1201 + FriendApplicationRejectedNotification = 1202 + FriendApplicationAddedNotification = 1203 //AddFriendTip = 202 + FriendAddedNotification = 1204 + FriendDeletedNotification = 1205 + FriendInfoChangedNotification = 1206 + BlackAddedNotification = 1207 + BlackDeletedNotification = 1208 SelfInfoUpdatedNotification = 1303 //SetSelfInfoTip = 204 - GroupCreatedNotification = 1501 //CreateGroupTip = 502 - JoinApplicationNotification = 1502 //JoinGroupTip = 504 - ApplicationProcessedNotification = 1503 //AcceptGroupApplicationTip = 507 RefuseGroupApplicationTip = 508 - MemberInvitedNotification = 1504 //InviteUserToGroupTip = 510 - MemberKickedNotification = 1505 //KickGroupMemberTip = 509 - GroupInfoChangedNotification = 1506 //SetGroupInfoTip = 506 TransferGroupOwnerTip = 501 - MemberLeaveNotification = 1507 //QuitGroupTip = 505 - MemberEnterNotification = 1508 + GroupCreatedNotification = 1501 + MemberInfoSetNotification = 1501 + JoinGroupApplicationNotification = 1501 + MemberQuitNotification = 1501 + GroupApplicationAcceptedNotification = 1501 + GroupApplicationRejectedNotification = 1501 + GroupOwnerTransferredNotification = 1501 + MemberKickedNotification = 1501 + MemberInvitedNotification = 1501 + + //GroupCreatedNotification = 1501 + //JoinApplicationNotification = 1502 + //ApplicationProcessedNotification = 1503 + //MemberInvitedNotification = 1504 + //MemberKickedNotification = 1505 + //GroupInfoChangedNotification = 1506 + //MemberLeaveNotification = 1507 + //MemberEnterNotification = 1508 //MsgFrom UserMsgType = 100 diff --git a/pkg/proto/friend/friend.pb.go b/pkg/proto/friend/friend.pb.go index 0f13634a6..88e92e2f5 100644 --- a/pkg/proto/friend/friend.pb.go +++ b/pkg/proto/friend/friend.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_friend_33f7e79cb4454131, []int{0} + return fileDescriptor_friend_74b4824fb8c5de90, []int{0} } func (m *CommonResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_CommonResp.Unmarshal(m, b) @@ -84,7 +84,7 @@ func (m *CommID) Reset() { *m = CommID{} } func (m *CommID) String() string { return proto.CompactTextString(m) } func (*CommID) ProtoMessage() {} func (*CommID) Descriptor() ([]byte, []int) { - return fileDescriptor_friend_33f7e79cb4454131, []int{1} + return fileDescriptor_friend_74b4824fb8c5de90, []int{1} } func (m *CommID) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_CommID.Unmarshal(m, b) @@ -143,7 +143,7 @@ func (m *GetFriendsInfoReq) Reset() { *m = GetFriendsInfoReq{} } func (m *GetFriendsInfoReq) String() string { return proto.CompactTextString(m) } func (*GetFriendsInfoReq) ProtoMessage() {} func (*GetFriendsInfoReq) Descriptor() ([]byte, []int) { - return fileDescriptor_friend_33f7e79cb4454131, []int{2} + return fileDescriptor_friend_74b4824fb8c5de90, []int{2} } func (m *GetFriendsInfoReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetFriendsInfoReq.Unmarshal(m, b) @@ -183,7 +183,7 @@ func (m *GetFriendInfoResp) Reset() { *m = GetFriendInfoResp{} } func (m *GetFriendInfoResp) String() string { return proto.CompactTextString(m) } func (*GetFriendInfoResp) ProtoMessage() {} func (*GetFriendInfoResp) Descriptor() ([]byte, []int) { - return fileDescriptor_friend_33f7e79cb4454131, []int{3} + return fileDescriptor_friend_74b4824fb8c5de90, []int{3} } func (m *GetFriendInfoResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetFriendInfoResp.Unmarshal(m, b) @@ -236,7 +236,7 @@ func (m *AddFriendReq) Reset() { *m = AddFriendReq{} } func (m *AddFriendReq) String() string { return proto.CompactTextString(m) } func (*AddFriendReq) ProtoMessage() {} func (*AddFriendReq) Descriptor() ([]byte, []int) { - return fileDescriptor_friend_33f7e79cb4454131, []int{4} + return fileDescriptor_friend_74b4824fb8c5de90, []int{4} } func (m *AddFriendReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_AddFriendReq.Unmarshal(m, b) @@ -281,7 +281,7 @@ func (m *AddFriendResp) Reset() { *m = AddFriendResp{} } func (m *AddFriendResp) String() string { return proto.CompactTextString(m) } func (*AddFriendResp) ProtoMessage() {} func (*AddFriendResp) Descriptor() ([]byte, []int) { - return fileDescriptor_friend_33f7e79cb4454131, []int{5} + return fileDescriptor_friend_74b4824fb8c5de90, []int{5} } func (m *AddFriendResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_AddFriendResp.Unmarshal(m, b) @@ -322,7 +322,7 @@ func (m *ImportFriendReq) Reset() { *m = ImportFriendReq{} } func (m *ImportFriendReq) String() string { return proto.CompactTextString(m) } func (*ImportFriendReq) ProtoMessage() {} func (*ImportFriendReq) Descriptor() ([]byte, []int) { - return fileDescriptor_friend_33f7e79cb4454131, []int{6} + return fileDescriptor_friend_74b4824fb8c5de90, []int{6} } func (m *ImportFriendReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ImportFriendReq.Unmarshal(m, b) @@ -382,7 +382,7 @@ func (m *UserIDResult) Reset() { *m = UserIDResult{} } func (m *UserIDResult) String() string { return proto.CompactTextString(m) } func (*UserIDResult) ProtoMessage() {} func (*UserIDResult) Descriptor() ([]byte, []int) { - return fileDescriptor_friend_33f7e79cb4454131, []int{7} + return fileDescriptor_friend_74b4824fb8c5de90, []int{7} } func (m *UserIDResult) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_UserIDResult.Unmarshal(m, b) @@ -428,7 +428,7 @@ func (m *ImportFriendResp) Reset() { *m = ImportFriendResp{} } func (m *ImportFriendResp) String() string { return proto.CompactTextString(m) } func (*ImportFriendResp) ProtoMessage() {} func (*ImportFriendResp) Descriptor() ([]byte, []int) { - return fileDescriptor_friend_33f7e79cb4454131, []int{8} + return fileDescriptor_friend_74b4824fb8c5de90, []int{8} } func (m *ImportFriendResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ImportFriendResp.Unmarshal(m, b) @@ -473,7 +473,7 @@ func (m *GetFriendApplyListReq) Reset() { *m = GetFriendApplyListReq{} } func (m *GetFriendApplyListReq) String() string { return proto.CompactTextString(m) } func (*GetFriendApplyListReq) ProtoMessage() {} func (*GetFriendApplyListReq) Descriptor() ([]byte, []int) { - return fileDescriptor_friend_33f7e79cb4454131, []int{9} + return fileDescriptor_friend_74b4824fb8c5de90, []int{9} } func (m *GetFriendApplyListReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetFriendApplyListReq.Unmarshal(m, b) @@ -513,7 +513,7 @@ func (m *GetFriendApplyListResp) Reset() { *m = GetFriendApplyListResp{} func (m *GetFriendApplyListResp) String() string { return proto.CompactTextString(m) } func (*GetFriendApplyListResp) ProtoMessage() {} func (*GetFriendApplyListResp) Descriptor() ([]byte, []int) { - return fileDescriptor_friend_33f7e79cb4454131, []int{10} + return fileDescriptor_friend_74b4824fb8c5de90, []int{10} } func (m *GetFriendApplyListResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetFriendApplyListResp.Unmarshal(m, b) @@ -565,7 +565,7 @@ func (m *GetFriendListReq) Reset() { *m = GetFriendListReq{} } func (m *GetFriendListReq) String() string { return proto.CompactTextString(m) } func (*GetFriendListReq) ProtoMessage() {} func (*GetFriendListReq) Descriptor() ([]byte, []int) { - return fileDescriptor_friend_33f7e79cb4454131, []int{11} + return fileDescriptor_friend_74b4824fb8c5de90, []int{11} } func (m *GetFriendListReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetFriendListReq.Unmarshal(m, b) @@ -605,7 +605,7 @@ func (m *GetFriendListResp) Reset() { *m = GetFriendListResp{} } func (m *GetFriendListResp) String() string { return proto.CompactTextString(m) } func (*GetFriendListResp) ProtoMessage() {} func (*GetFriendListResp) Descriptor() ([]byte, []int) { - return fileDescriptor_friend_33f7e79cb4454131, []int{12} + return fileDescriptor_friend_74b4824fb8c5de90, []int{12} } func (m *GetFriendListResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetFriendListResp.Unmarshal(m, b) @@ -657,7 +657,7 @@ func (m *AddBlacklistReq) Reset() { *m = AddBlacklistReq{} } func (m *AddBlacklistReq) String() string { return proto.CompactTextString(m) } func (*AddBlacklistReq) ProtoMessage() {} func (*AddBlacklistReq) Descriptor() ([]byte, []int) { - return fileDescriptor_friend_33f7e79cb4454131, []int{13} + return fileDescriptor_friend_74b4824fb8c5de90, []int{13} } func (m *AddBlacklistReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_AddBlacklistReq.Unmarshal(m, b) @@ -695,7 +695,7 @@ func (m *AddBlacklistResp) Reset() { *m = AddBlacklistResp{} } func (m *AddBlacklistResp) String() string { return proto.CompactTextString(m) } func (*AddBlacklistResp) ProtoMessage() {} func (*AddBlacklistResp) Descriptor() ([]byte, []int) { - return fileDescriptor_friend_33f7e79cb4454131, []int{14} + return fileDescriptor_friend_74b4824fb8c5de90, []int{14} } func (m *AddBlacklistResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_AddBlacklistResp.Unmarshal(m, b) @@ -733,7 +733,7 @@ func (m *RemoveBlacklistReq) Reset() { *m = RemoveBlacklistReq{} } func (m *RemoveBlacklistReq) String() string { return proto.CompactTextString(m) } func (*RemoveBlacklistReq) ProtoMessage() {} func (*RemoveBlacklistReq) Descriptor() ([]byte, []int) { - return fileDescriptor_friend_33f7e79cb4454131, []int{15} + return fileDescriptor_friend_74b4824fb8c5de90, []int{15} } func (m *RemoveBlacklistReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_RemoveBlacklistReq.Unmarshal(m, b) @@ -771,7 +771,7 @@ func (m *RemoveBlacklistResp) Reset() { *m = RemoveBlacklistResp{} } func (m *RemoveBlacklistResp) String() string { return proto.CompactTextString(m) } func (*RemoveBlacklistResp) ProtoMessage() {} func (*RemoveBlacklistResp) Descriptor() ([]byte, []int) { - return fileDescriptor_friend_33f7e79cb4454131, []int{16} + return fileDescriptor_friend_74b4824fb8c5de90, []int{16} } func (m *RemoveBlacklistResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_RemoveBlacklistResp.Unmarshal(m, b) @@ -809,7 +809,7 @@ func (m *GetBlacklistReq) Reset() { *m = GetBlacklistReq{} } func (m *GetBlacklistReq) String() string { return proto.CompactTextString(m) } func (*GetBlacklistReq) ProtoMessage() {} func (*GetBlacklistReq) Descriptor() ([]byte, []int) { - return fileDescriptor_friend_33f7e79cb4454131, []int{17} + return fileDescriptor_friend_74b4824fb8c5de90, []int{17} } func (m *GetBlacklistReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetBlacklistReq.Unmarshal(m, b) @@ -849,7 +849,7 @@ func (m *GetBlacklistResp) Reset() { *m = GetBlacklistResp{} } func (m *GetBlacklistResp) String() string { return proto.CompactTextString(m) } func (*GetBlacklistResp) ProtoMessage() {} func (*GetBlacklistResp) Descriptor() ([]byte, []int) { - return fileDescriptor_friend_33f7e79cb4454131, []int{18} + return fileDescriptor_friend_74b4824fb8c5de90, []int{18} } func (m *GetBlacklistResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetBlacklistResp.Unmarshal(m, b) @@ -901,7 +901,7 @@ func (m *IsFriendReq) Reset() { *m = IsFriendReq{} } func (m *IsFriendReq) String() string { return proto.CompactTextString(m) } func (*IsFriendReq) ProtoMessage() {} func (*IsFriendReq) Descriptor() ([]byte, []int) { - return fileDescriptor_friend_33f7e79cb4454131, []int{19} + return fileDescriptor_friend_74b4824fb8c5de90, []int{19} } func (m *IsFriendReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_IsFriendReq.Unmarshal(m, b) @@ -941,7 +941,7 @@ func (m *IsFriendResp) Reset() { *m = IsFriendResp{} } func (m *IsFriendResp) String() string { return proto.CompactTextString(m) } func (*IsFriendResp) ProtoMessage() {} func (*IsFriendResp) Descriptor() ([]byte, []int) { - return fileDescriptor_friend_33f7e79cb4454131, []int{20} + return fileDescriptor_friend_74b4824fb8c5de90, []int{20} } func (m *IsFriendResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_IsFriendResp.Unmarshal(m, b) @@ -993,7 +993,7 @@ func (m *IsInBlackListReq) Reset() { *m = IsInBlackListReq{} } func (m *IsInBlackListReq) String() string { return proto.CompactTextString(m) } func (*IsInBlackListReq) ProtoMessage() {} func (*IsInBlackListReq) Descriptor() ([]byte, []int) { - return fileDescriptor_friend_33f7e79cb4454131, []int{21} + return fileDescriptor_friend_74b4824fb8c5de90, []int{21} } func (m *IsInBlackListReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_IsInBlackListReq.Unmarshal(m, b) @@ -1033,7 +1033,7 @@ func (m *IsInBlackListResp) Reset() { *m = IsInBlackListResp{} } func (m *IsInBlackListResp) String() string { return proto.CompactTextString(m) } func (*IsInBlackListResp) ProtoMessage() {} func (*IsInBlackListResp) Descriptor() ([]byte, []int) { - return fileDescriptor_friend_33f7e79cb4454131, []int{22} + return fileDescriptor_friend_74b4824fb8c5de90, []int{22} } func (m *IsInBlackListResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_IsInBlackListResp.Unmarshal(m, b) @@ -1085,7 +1085,7 @@ func (m *DeleteFriendReq) Reset() { *m = DeleteFriendReq{} } func (m *DeleteFriendReq) String() string { return proto.CompactTextString(m) } func (*DeleteFriendReq) ProtoMessage() {} func (*DeleteFriendReq) Descriptor() ([]byte, []int) { - return fileDescriptor_friend_33f7e79cb4454131, []int{23} + return fileDescriptor_friend_74b4824fb8c5de90, []int{23} } func (m *DeleteFriendReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_DeleteFriendReq.Unmarshal(m, b) @@ -1123,7 +1123,7 @@ func (m *DeleteFriendResp) Reset() { *m = DeleteFriendResp{} } func (m *DeleteFriendResp) String() string { return proto.CompactTextString(m) } func (*DeleteFriendResp) ProtoMessage() {} func (*DeleteFriendResp) Descriptor() ([]byte, []int) { - return fileDescriptor_friend_33f7e79cb4454131, []int{24} + return fileDescriptor_friend_74b4824fb8c5de90, []int{24} } func (m *DeleteFriendResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_DeleteFriendResp.Unmarshal(m, b) @@ -1153,7 +1153,7 @@ func (m *DeleteFriendResp) GetCommonResp() *CommonResp { // process type AddFriendResponseReq struct { CommID *CommID `protobuf:"bytes,1,opt,name=CommID" json:"CommID,omitempty"` - Flag int32 `protobuf:"varint,2,opt,name=flag" json:"flag,omitempty"` + HandleResult int32 `protobuf:"varint,2,opt,name=handleResult" json:"handleResult,omitempty"` HandleMsg string `protobuf:"bytes,3,opt,name=handleMsg" json:"handleMsg,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` @@ -1164,7 +1164,7 @@ func (m *AddFriendResponseReq) Reset() { *m = AddFriendResponseReq{} } func (m *AddFriendResponseReq) String() string { return proto.CompactTextString(m) } func (*AddFriendResponseReq) ProtoMessage() {} func (*AddFriendResponseReq) Descriptor() ([]byte, []int) { - return fileDescriptor_friend_33f7e79cb4454131, []int{25} + return fileDescriptor_friend_74b4824fb8c5de90, []int{25} } func (m *AddFriendResponseReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_AddFriendResponseReq.Unmarshal(m, b) @@ -1191,9 +1191,9 @@ func (m *AddFriendResponseReq) GetCommID() *CommID { return nil } -func (m *AddFriendResponseReq) GetFlag() int32 { +func (m *AddFriendResponseReq) GetHandleResult() int32 { if m != nil { - return m.Flag + return m.HandleResult } return 0 } @@ -1216,7 +1216,7 @@ func (m *AddFriendResponseResp) Reset() { *m = AddFriendResponseResp{} } func (m *AddFriendResponseResp) String() string { return proto.CompactTextString(m) } func (*AddFriendResponseResp) ProtoMessage() {} func (*AddFriendResponseResp) Descriptor() ([]byte, []int) { - return fileDescriptor_friend_33f7e79cb4454131, []int{26} + return fileDescriptor_friend_74b4824fb8c5de90, []int{26} } func (m *AddFriendResponseResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_AddFriendResponseResp.Unmarshal(m, b) @@ -1255,7 +1255,7 @@ func (m *SetFriendRemarkReq) Reset() { *m = SetFriendRemarkReq{} } func (m *SetFriendRemarkReq) String() string { return proto.CompactTextString(m) } func (*SetFriendRemarkReq) ProtoMessage() {} func (*SetFriendRemarkReq) Descriptor() ([]byte, []int) { - return fileDescriptor_friend_33f7e79cb4454131, []int{27} + return fileDescriptor_friend_74b4824fb8c5de90, []int{27} } func (m *SetFriendRemarkReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SetFriendRemarkReq.Unmarshal(m, b) @@ -1300,7 +1300,7 @@ func (m *SetFriendRemarkResp) Reset() { *m = SetFriendRemarkResp{} } func (m *SetFriendRemarkResp) String() string { return proto.CompactTextString(m) } func (*SetFriendRemarkResp) ProtoMessage() {} func (*SetFriendRemarkResp) Descriptor() ([]byte, []int) { - return fileDescriptor_friend_33f7e79cb4454131, []int{28} + return fileDescriptor_friend_74b4824fb8c5de90, []int{28} } func (m *SetFriendRemarkResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SetFriendRemarkResp.Unmarshal(m, b) @@ -1338,7 +1338,7 @@ func (m *GetSelfApplyListReq) Reset() { *m = GetSelfApplyListReq{} } func (m *GetSelfApplyListReq) String() string { return proto.CompactTextString(m) } func (*GetSelfApplyListReq) ProtoMessage() {} func (*GetSelfApplyListReq) Descriptor() ([]byte, []int) { - return fileDescriptor_friend_33f7e79cb4454131, []int{29} + return fileDescriptor_friend_74b4824fb8c5de90, []int{29} } func (m *GetSelfApplyListReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetSelfApplyListReq.Unmarshal(m, b) @@ -1378,7 +1378,7 @@ func (m *GetSelfApplyListResp) Reset() { *m = GetSelfApplyListResp{} } func (m *GetSelfApplyListResp) String() string { return proto.CompactTextString(m) } func (*GetSelfApplyListResp) ProtoMessage() {} func (*GetSelfApplyListResp) Descriptor() ([]byte, []int) { - return fileDescriptor_friend_33f7e79cb4454131, []int{30} + return fileDescriptor_friend_74b4824fb8c5de90, []int{30} } func (m *GetSelfApplyListResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetSelfApplyListResp.Unmarshal(m, b) @@ -1923,68 +1923,68 @@ var _Friend_serviceDesc = grpc.ServiceDesc{ Metadata: "friend/friend.proto", } -func init() { proto.RegisterFile("friend/friend.proto", fileDescriptor_friend_33f7e79cb4454131) } - -var fileDescriptor_friend_33f7e79cb4454131 = []byte{ - // 949 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x57, 0xcd, 0x8f, 0xdb, 0x44, - 0x14, 0x97, 0x9b, 0xdd, 0x34, 0x79, 0x49, 0x9b, 0x64, 0x92, 0x2d, 0xc1, 0xdd, 0xad, 0x52, 0x1f, - 0x50, 0xc4, 0x21, 0x91, 0x82, 0x2a, 0xb1, 0x14, 0x0a, 0xe9, 0x26, 0x59, 0x19, 0xd8, 0xa6, 0x9a, - 0x2d, 0x17, 0x84, 0x14, 0xb9, 0xf5, 0x24, 0x58, 0x71, 0xec, 0xa9, 0xc7, 0xdb, 0x8a, 0x2b, 0x27, - 0x0e, 0x5c, 0x91, 0x10, 0x1c, 0xf8, 0x57, 0x91, 0x67, 0xec, 0x78, 0xfc, 0x91, 0x0a, 0x9b, 0x1e, - 0x7a, 0xb2, 0xdf, 0xc7, 0xef, 0xf9, 0x7d, 0xcd, 0x7b, 0x63, 0xe8, 0xae, 0x3d, 0x8b, 0x38, 0xe6, - 0x58, 0x3c, 0x46, 0xd4, 0x73, 0x7d, 0x17, 0x55, 0x05, 0xa5, 0x3e, 0x5c, 0x52, 0xe2, 0xac, 0xf4, - 0xab, 0x31, 0xdd, 0x6e, 0xc6, 0x5c, 0x34, 0x66, 0xe6, 0x76, 0xf5, 0x96, 0x8d, 0xdf, 0x32, 0xa1, - 0xaa, 0x3d, 0x01, 0xb8, 0x70, 0x77, 0x3b, 0xd7, 0xc1, 0x84, 0x51, 0xd4, 0x87, 0xdb, 0xc4, 0xf3, - 0x2e, 0x5c, 0x93, 0xf4, 0x95, 0x81, 0x32, 0x3c, 0xc6, 0x11, 0x89, 0xee, 0x41, 0x95, 0x78, 0xde, - 0x15, 0xdb, 0xf4, 0x6f, 0x0d, 0x94, 0x61, 0x1d, 0x87, 0x94, 0xf6, 0xab, 0x02, 0xd5, 0xc0, 0x80, - 0x3e, 0x43, 0x2a, 0xd4, 0x96, 0xf4, 0x07, 0x46, 0x3c, 0x7d, 0xc6, 0xd1, 0x75, 0xbc, 0xa7, 0xd1, - 0x00, 0x1a, 0x4b, 0x4a, 0x3c, 0xc3, 0xb7, 0x5c, 0x47, 0x9f, 0x85, 0x36, 0x64, 0x56, 0x80, 0x7e, - 0xe1, 0x86, 0xe8, 0x23, 0x81, 0x8e, 0x68, 0xf4, 0x00, 0x60, 0xe1, 0xb9, 0xbb, 0x50, 0x7a, 0xcc, - 0xa5, 0x12, 0x47, 0x7b, 0x0c, 0x9d, 0x4b, 0xe2, 0x2f, 0x78, 0xd0, 0x4c, 0x77, 0xd6, 0x2e, 0x26, - 0xaf, 0xd1, 0x27, 0x91, 0x63, 0xdc, 0x99, 0xc6, 0xe4, 0xee, 0x28, 0xcc, 0x91, 0xe0, 0xe2, 0x50, - 0xaa, 0xfd, 0xae, 0x48, 0x68, 0x01, 0x16, 0x99, 0x98, 0x27, 0x33, 0x31, 0x8f, 0x33, 0x31, 0x4f, - 0x64, 0x42, 0x50, 0x68, 0x0e, 0x77, 0x63, 0x1b, 0xdf, 0x5b, 0xcc, 0xef, 0x57, 0x06, 0x95, 0x61, - 0x63, 0x72, 0x36, 0x62, 0xc4, 0x7b, 0x43, 0xbc, 0x95, 0x41, 0xad, 0x15, 0x35, 0x3c, 0x63, 0xc7, - 0x46, 0xd2, 0xc7, 0x52, 0x20, 0xed, 0x19, 0x34, 0xa7, 0xa6, 0x29, 0x98, 0x05, 0xc2, 0x08, 0xdc, - 0xc2, 0xe4, 0xb5, 0xe4, 0x96, 0xa0, 0xb4, 0x0b, 0xb8, 0x23, 0xd9, 0x63, 0x14, 0x4d, 0xe4, 0x8a, - 0x87, 0x46, 0x91, 0x6c, 0x54, 0x48, 0xb0, 0xa4, 0xa5, 0xfd, 0xad, 0x40, 0x4b, 0xdf, 0x51, 0xd7, - 0xf3, 0x63, 0xc7, 0x3e, 0x85, 0xb6, 0x20, 0x44, 0x11, 0x78, 0xc4, 0xca, 0xa0, 0x32, 0xac, 0xe3, - 0x0c, 0xff, 0x3f, 0x94, 0x3f, 0x59, 0xe2, 0x4a, 0xba, 0xc4, 0x89, 0xe6, 0x3a, 0x4a, 0x36, 0x97, - 0xf6, 0x04, 0x9a, 0xe2, 0x0d, 0x13, 0x76, 0x63, 0xfb, 0x41, 0x2a, 0x12, 0x6d, 0x18, 0x52, 0x22, - 0x45, 0x81, 0x06, 0x77, 0xe0, 0x18, 0x87, 0x94, 0xf6, 0x9b, 0x02, 0xed, 0x64, 0x74, 0xe5, 0xd2, - 0x84, 0xbe, 0x81, 0xb6, 0xec, 0x08, 0x4f, 0xc9, 0x2d, 0xde, 0x04, 0xbd, 0x08, 0x29, 0xcb, 0x71, - 0x46, 0x5b, 0xfb, 0x1a, 0x4e, 0xf6, 0xbd, 0x38, 0xa5, 0xd4, 0xfe, 0x25, 0xe0, 0x16, 0xe9, 0xe6, - 0xbf, 0x14, 0xb8, 0x97, 0x67, 0xa1, 0x54, 0x4b, 0x3f, 0x83, 0xce, 0xbe, 0xde, 0x37, 0x84, 0xf9, - 0x52, 0x57, 0x0f, 0x0e, 0x76, 0x75, 0xa8, 0x8b, 0xb3, 0x50, 0xed, 0x0b, 0x68, 0xef, 0x7d, 0x2b, - 0x1a, 0x58, 0xe2, 0x98, 0xfe, 0x8f, 0x98, 0xde, 0xd3, 0x31, 0x3d, 0x87, 0xd6, 0xd4, 0x34, 0x9f, - 0xda, 0xc6, 0xab, 0xad, 0x5d, 0x30, 0x92, 0x05, 0xb4, 0x93, 0xd0, 0x92, 0x87, 0xf2, 0x4b, 0x40, - 0x98, 0xec, 0xdc, 0x37, 0xa4, 0x94, 0x17, 0x3a, 0x74, 0x33, 0xe8, 0x92, 0x8e, 0x9c, 0x43, 0xeb, - 0x92, 0xf8, 0xa5, 0xbc, 0xf8, 0x43, 0xe1, 0x2d, 0x91, 0xf4, 0xa1, 0x78, 0x51, 0x97, 0xd0, 0xe1, - 0x26, 0xf8, 0x79, 0x4a, 0xd6, 0xf5, 0x61, 0x4e, 0x5d, 0x9f, 0xdf, 0xbc, 0xb4, 0xad, 0x57, 0x91, - 0x32, 0xce, 0x62, 0xb5, 0x47, 0xd0, 0xd0, 0x59, 0xe1, 0x21, 0xac, 0xfd, 0x04, 0xcd, 0x18, 0x56, - 0x2a, 0x12, 0x15, 0x6a, 0x01, 0xd2, 0x75, 0x18, 0xe1, 0x53, 0xb0, 0x86, 0xf7, 0x74, 0x70, 0x7c, - 0x74, 0xa6, 0x3b, 0xdc, 0xdb, 0xa2, 0xc7, 0xc7, 0x80, 0x4e, 0x0a, 0xfb, 0xde, 0xdd, 0x3b, 0x87, - 0xd6, 0x8c, 0xd8, 0xc4, 0x27, 0xc5, 0xf3, 0xb6, 0x80, 0x76, 0x12, 0x5a, 0xb2, 0x13, 0x29, 0xf4, - 0x12, 0xcb, 0x2e, 0xf0, 0xab, 0xc8, 0x12, 0x45, 0x70, 0xb4, 0xb6, 0x8d, 0x4d, 0xb8, 0x1f, 0xf8, - 0x3b, 0x3a, 0x85, 0xfa, 0xcf, 0x86, 0x63, 0xda, 0x24, 0xc8, 0x86, 0x58, 0x4c, 0x31, 0x43, 0xfb, - 0x0e, 0x4e, 0x72, 0xbe, 0x58, 0xd2, 0xfd, 0x17, 0x80, 0xae, 0xc9, 0x7e, 0x09, 0xed, 0x0c, 0x6f, - 0x5b, 0xf8, 0x06, 0x10, 0x80, 0xe2, 0x1b, 0x40, 0x40, 0x05, 0x27, 0x3d, 0x63, 0xb5, 0xa4, 0x83, - 0x5f, 0x41, 0xf7, 0x92, 0xf8, 0xd7, 0xc4, 0x5e, 0x97, 0x5a, 0x4e, 0x7f, 0x2a, 0xd0, 0xcb, 0xe2, - 0x3f, 0x84, 0xd5, 0x34, 0xf9, 0xe7, 0x36, 0x84, 0xb7, 0x66, 0xf4, 0x39, 0xd4, 0x8d, 0xa8, 0xa4, - 0x68, 0xbf, 0xb8, 0xe5, 0x4b, 0x99, 0x7a, 0x92, 0xc3, 0x65, 0x14, 0x5d, 0x03, 0xda, 0x64, 0x76, - 0x2f, 0x3a, 0x8b, 0x94, 0x73, 0x37, 0xbb, 0xfa, 0xe0, 0x5d, 0x62, 0x46, 0xd1, 0x15, 0xb4, 0x37, - 0xa9, 0x9c, 0xa1, 0xfb, 0x12, 0x26, 0x5d, 0x0d, 0xf5, 0xf4, 0xb0, 0x90, 0x51, 0x34, 0x83, 0x3b, - 0x1b, 0x79, 0x8d, 0xa2, 0x7e, 0xe6, 0xfb, 0x91, 0xa1, 0x8f, 0x0f, 0x48, 0x18, 0x45, 0x53, 0x68, - 0x1a, 0xd2, 0x0e, 0x43, 0x1f, 0x49, 0x09, 0x91, 0x17, 0x81, 0xda, 0xcf, 0x17, 0x30, 0x8a, 0xbe, - 0x85, 0x96, 0x97, 0x5c, 0x40, 0x48, 0x8d, 0x94, 0xb3, 0x7b, 0x4d, 0xbd, 0x7f, 0x50, 0xc6, 0x28, - 0x7a, 0x04, 0x35, 0x2b, 0x9c, 0xbb, 0xa8, 0x1b, 0x29, 0x4a, 0x03, 0x5c, 0xed, 0x65, 0x99, 0x22, - 0x17, 0x96, 0x3c, 0x14, 0xe3, 0x5c, 0xa4, 0xe7, 0x6c, 0x9c, 0x8b, 0xec, 0x14, 0x9d, 0x42, 0x73, - 0x23, 0xad, 0xb0, 0x38, 0x17, 0xa9, 0xa5, 0xa8, 0xf6, 0xf3, 0x05, 0xc2, 0x84, 0x29, 0xcd, 0xbf, - 0xd8, 0x44, 0x6a, 0xa0, 0xc6, 0x26, 0x32, 0xe3, 0xf2, 0x39, 0x74, 0x8c, 0xf4, 0x20, 0x42, 0xa7, - 0xb9, 0x7d, 0x1a, 0x4e, 0x45, 0xf5, 0xec, 0x1d, 0x52, 0x51, 0x20, 0x96, 0x9c, 0x1b, 0x71, 0x81, - 0xb2, 0x63, 0x2a, 0x2e, 0x50, 0xde, 0xb0, 0x99, 0x42, 0xd3, 0x92, 0x6e, 0xd8, 0x71, 0x80, 0xa9, - 0xbf, 0x8a, 0x38, 0xc0, 0xf4, 0x85, 0xfc, 0x69, 0xe7, 0xc7, 0xd6, 0x28, 0xfc, 0xcd, 0x7d, 0x2c, - 0x1e, 0x2f, 0xab, 0xfc, 0x1f, 0xf6, 0xb3, 0x7f, 0x03, 0x00, 0x00, 0xff, 0xff, 0x20, 0x88, 0xcd, - 0xd3, 0x05, 0x0f, 0x00, 0x00, +func init() { proto.RegisterFile("friend/friend.proto", fileDescriptor_friend_74b4824fb8c5de90) } + +var fileDescriptor_friend_74b4824fb8c5de90 = []byte{ + // 950 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x57, 0xcf, 0x8f, 0xdb, 0x44, + 0x14, 0x96, 0x9b, 0x6e, 0x9a, 0xbc, 0xa4, 0x4d, 0x32, 0xc9, 0x96, 0xe0, 0xee, 0x56, 0xa9, 0x0f, + 0x28, 0xe2, 0x90, 0x48, 0x41, 0x95, 0x58, 0x0a, 0x85, 0x74, 0x93, 0xac, 0x0c, 0x6c, 0x53, 0xcd, + 0x96, 0x0b, 0x42, 0x8a, 0xdc, 0x7a, 0x36, 0x58, 0x71, 0xec, 0xa9, 0xc7, 0xdb, 0x15, 0x37, 0xc4, + 0x89, 0x03, 0x57, 0x24, 0x04, 0x07, 0xfe, 0x55, 0x64, 0x8f, 0x1d, 0xcf, 0xd8, 0xce, 0x0a, 0x9b, + 0x3d, 0x70, 0xda, 0x7d, 0xef, 0xcd, 0xf7, 0xf2, 0x7e, 0xcd, 0xfb, 0xc6, 0xd0, 0xbd, 0xf4, 0x2c, + 0xe2, 0x98, 0x63, 0xfe, 0x67, 0x44, 0x3d, 0xd7, 0x77, 0x51, 0x95, 0x4b, 0xea, 0x93, 0x25, 0x25, + 0xce, 0x4a, 0x3f, 0x1f, 0xd3, 0xcd, 0x7a, 0x1c, 0x9a, 0xc6, 0xcc, 0xdc, 0xac, 0xae, 0xd9, 0xf8, + 0x9a, 0xf1, 0xa3, 0xda, 0x73, 0x80, 0x53, 0x77, 0xbb, 0x75, 0x1d, 0x4c, 0x18, 0x45, 0x7d, 0xb8, + 0x47, 0x3c, 0xef, 0xd4, 0x35, 0x49, 0x5f, 0x19, 0x28, 0xc3, 0x03, 0x1c, 0x8b, 0xe8, 0x21, 0x54, + 0x89, 0xe7, 0x9d, 0xb3, 0x75, 0xff, 0xce, 0x40, 0x19, 0xd6, 0x71, 0x24, 0x69, 0xbf, 0x28, 0x50, + 0x0d, 0x1c, 0xe8, 0x33, 0xa4, 0x42, 0x6d, 0x49, 0xbf, 0x63, 0xc4, 0xd3, 0x67, 0x21, 0xba, 0x8e, + 0x77, 0x32, 0x1a, 0x40, 0x63, 0x49, 0x89, 0x67, 0xf8, 0x96, 0xeb, 0xe8, 0xb3, 0xc8, 0x87, 0xa8, + 0x0a, 0xd0, 0xaf, 0xdd, 0x08, 0x7d, 0x97, 0xa3, 0x63, 0x19, 0x3d, 0x06, 0x58, 0x78, 0xee, 0x36, + 0xb2, 0x1e, 0x84, 0x56, 0x41, 0xa3, 0x3d, 0x83, 0xce, 0x19, 0xf1, 0x17, 0x61, 0xd2, 0x4c, 0x77, + 0x2e, 0x5d, 0x4c, 0xde, 0xa1, 0x8f, 0xe2, 0xc0, 0xc2, 0x60, 0x1a, 0x93, 0x07, 0xa3, 0xa8, 0x46, + 0x5c, 0x8b, 0x23, 0xab, 0xf6, 0x9b, 0x22, 0xa0, 0x39, 0x98, 0x57, 0x62, 0x2e, 0x57, 0x62, 0x9e, + 0x54, 0x62, 0x2e, 0x55, 0x82, 0x4b, 0x68, 0x0e, 0x0f, 0x12, 0x1f, 0xdf, 0x5a, 0xcc, 0xef, 0x57, + 0x06, 0x95, 0x61, 0x63, 0x72, 0x3c, 0x62, 0xc4, 0x7b, 0x4f, 0xbc, 0x95, 0x41, 0xad, 0x15, 0x35, + 0x3c, 0x63, 0xcb, 0x46, 0xc2, 0x8f, 0xa5, 0x40, 0xda, 0x4b, 0x68, 0x4e, 0x4d, 0x93, 0x2b, 0x0b, + 0xa4, 0x11, 0x84, 0x85, 0xc9, 0x3b, 0x21, 0x2c, 0x2e, 0x69, 0xa7, 0x70, 0x5f, 0xf0, 0xc7, 0x28, + 0x9a, 0x88, 0x1d, 0x8f, 0x9c, 0x22, 0xd1, 0x29, 0xb7, 0x60, 0xe1, 0x94, 0xf6, 0x97, 0x02, 0x2d, + 0x7d, 0x4b, 0x5d, 0xcf, 0x4f, 0x02, 0xfb, 0x18, 0xda, 0x5c, 0xe0, 0x4d, 0x08, 0x33, 0x56, 0x06, + 0x95, 0x61, 0x1d, 0x67, 0xf4, 0xff, 0xa2, 0xfd, 0x72, 0x8b, 0x2b, 0xe9, 0x16, 0x4b, 0xc3, 0x75, + 0x57, 0x1e, 0x2e, 0xed, 0x39, 0x34, 0xf9, 0x7f, 0x98, 0xb0, 0x2b, 0xdb, 0x0f, 0x4a, 0x21, 0x8d, + 0x61, 0x24, 0xf1, 0x12, 0x05, 0x27, 0xc2, 0x00, 0x0e, 0x70, 0x24, 0x69, 0xbf, 0x2a, 0xd0, 0x96, + 0xb3, 0x2b, 0x57, 0x26, 0xf4, 0x15, 0xb4, 0xc5, 0x40, 0xc2, 0x92, 0xdc, 0x09, 0x87, 0xa0, 0x17, + 0x23, 0x45, 0x3b, 0xce, 0x9c, 0xd6, 0xbe, 0x84, 0xc3, 0xdd, 0x2c, 0x4e, 0x29, 0xb5, 0x7f, 0x0a, + 0xb4, 0x45, 0xa6, 0xf9, 0x4f, 0x05, 0x1e, 0xe6, 0x79, 0x28, 0x35, 0xd2, 0x2f, 0xa1, 0xb3, 0xeb, + 0xf7, 0x15, 0x61, 0xbe, 0x30, 0xd5, 0x83, 0xbd, 0x53, 0x1d, 0x9d, 0xc5, 0x59, 0xa8, 0xf6, 0x19, + 0xb4, 0x77, 0xb1, 0x15, 0x4d, 0x4c, 0xba, 0xa6, 0xff, 0x21, 0xa7, 0x5b, 0xba, 0xa6, 0x27, 0xd0, + 0x9a, 0x9a, 0xe6, 0x0b, 0xdb, 0x78, 0xbb, 0xb1, 0x0b, 0x66, 0xb2, 0x80, 0xb6, 0x0c, 0x2d, 0x79, + 0x29, 0x3f, 0x07, 0x84, 0xc9, 0xd6, 0x7d, 0x4f, 0x4a, 0x45, 0xa1, 0x43, 0x37, 0x83, 0x2e, 0x19, + 0xc8, 0x09, 0xb4, 0xce, 0x88, 0x5f, 0x2a, 0x8a, 0xdf, 0x95, 0x70, 0x24, 0xe4, 0x18, 0x8a, 0x37, + 0x75, 0x09, 0x9d, 0xd0, 0x45, 0x78, 0x9f, 0xe4, 0xbe, 0x3e, 0xc9, 0xe9, 0xeb, 0xab, 0xab, 0x37, + 0xb6, 0xf5, 0x36, 0x3e, 0x8c, 0xb3, 0x58, 0xed, 0x29, 0x34, 0x74, 0x56, 0x78, 0x09, 0x6b, 0x3f, + 0x40, 0x33, 0x81, 0x95, 0xca, 0x44, 0x85, 0x5a, 0x80, 0x74, 0x1d, 0x46, 0xc2, 0x2d, 0x58, 0xc3, + 0x3b, 0x39, 0xb8, 0x3e, 0x3a, 0xd3, 0x9d, 0x30, 0xda, 0xa2, 0xd7, 0xc7, 0x80, 0x4e, 0x0a, 0x7b, + 0xeb, 0xe1, 0x9d, 0x40, 0x6b, 0x46, 0x6c, 0xe2, 0x93, 0xe2, 0x75, 0x5b, 0x40, 0x5b, 0x86, 0x96, + 0x9c, 0xc4, 0x9f, 0x15, 0xe8, 0x49, 0x6c, 0x17, 0x04, 0x56, 0x84, 0x45, 0x35, 0x68, 0xfe, 0x68, + 0x38, 0xa6, 0x4d, 0x24, 0xa2, 0x90, 0x74, 0xe8, 0x08, 0xea, 0x5c, 0x0e, 0xca, 0xc3, 0x99, 0x2a, + 0x51, 0x68, 0xdf, 0xc0, 0x61, 0x4e, 0x04, 0x25, 0xf3, 0x79, 0x0d, 0xe8, 0x82, 0xec, 0x58, 0x69, + 0x6b, 0x78, 0x9b, 0xc2, 0x4f, 0x82, 0x00, 0x94, 0x3c, 0x09, 0x02, 0x29, 0xb8, 0xfa, 0x19, 0xaf, + 0x25, 0x03, 0xfc, 0x02, 0xba, 0x67, 0xc4, 0xbf, 0x20, 0xf6, 0x65, 0x29, 0xb6, 0xfa, 0x43, 0x81, + 0x5e, 0x16, 0xff, 0x7f, 0xe0, 0xaa, 0xc9, 0xdf, 0xf7, 0x20, 0x7a, 0x46, 0xa3, 0x4f, 0xa1, 0x6e, + 0xc4, 0x2d, 0x45, 0x3b, 0x26, 0x17, 0x5f, 0x69, 0xea, 0x61, 0x8e, 0x96, 0x51, 0x74, 0x01, 0x68, + 0x9d, 0x21, 0x63, 0x74, 0x1c, 0x1f, 0xce, 0xa5, 0x7a, 0xf5, 0xf1, 0x4d, 0x66, 0x46, 0xd1, 0x39, + 0xb4, 0xd7, 0xa9, 0x9a, 0xa1, 0x47, 0x02, 0x26, 0xdd, 0x0d, 0xf5, 0x68, 0xbf, 0x91, 0x51, 0x34, + 0x83, 0xfb, 0x6b, 0x91, 0x57, 0x51, 0x3f, 0xf3, 0xfb, 0xb1, 0xa3, 0x0f, 0xf7, 0x58, 0x18, 0x45, + 0x53, 0x68, 0x1a, 0x02, 0xa9, 0xa1, 0x0f, 0x84, 0x82, 0x88, 0xcc, 0xa0, 0xf6, 0xf3, 0x0d, 0x8c, + 0xa2, 0xaf, 0xa1, 0xe5, 0xc9, 0x8c, 0x84, 0xd4, 0xf8, 0x70, 0x96, 0xe8, 0xd4, 0x47, 0x7b, 0x6d, + 0x8c, 0xa2, 0xa7, 0x50, 0xb3, 0xa2, 0x45, 0x8c, 0xba, 0xf1, 0x41, 0x61, 0xa3, 0xab, 0xbd, 0xac, + 0x92, 0xd7, 0xc2, 0x12, 0xb7, 0x64, 0x52, 0x8b, 0xf4, 0xe2, 0x4d, 0x6a, 0x91, 0x5d, 0xab, 0x53, + 0x68, 0xae, 0x05, 0x4e, 0x4b, 0x6a, 0x91, 0x62, 0x49, 0xb5, 0x9f, 0x6f, 0xe0, 0x2e, 0x4c, 0x61, + 0x21, 0x26, 0x2e, 0x52, 0x1b, 0x36, 0x71, 0x91, 0xd9, 0x9f, 0xaf, 0xa0, 0x63, 0xa4, 0x17, 0x11, + 0x3a, 0xca, 0x9d, 0xd3, 0x68, 0x4b, 0xaa, 0xc7, 0x37, 0x58, 0x79, 0x83, 0x98, 0xbc, 0x37, 0x92, + 0x06, 0x65, 0xd7, 0x54, 0xd2, 0xa0, 0xbc, 0x65, 0x33, 0x85, 0xa6, 0x25, 0x3c, 0xb9, 0x93, 0x04, + 0x53, 0x9f, 0x19, 0x49, 0x82, 0xe9, 0x17, 0xfa, 0x8b, 0xce, 0xf7, 0xad, 0x51, 0xf4, 0xdd, 0xfb, + 0x8c, 0xff, 0x79, 0x53, 0x0d, 0x3f, 0x6a, 0x3f, 0xf9, 0x27, 0x00, 0x00, 0xff, 0xff, 0x26, 0xd5, + 0xdf, 0x90, 0x16, 0x0f, 0x00, 0x00, } diff --git a/pkg/proto/friend/friend.proto b/pkg/proto/friend/friend.proto index 1baf29c10..0050582d1 100644 --- a/pkg/proto/friend/friend.proto +++ b/pkg/proto/friend/friend.proto @@ -127,7 +127,7 @@ message DeleteFriendResp{ //process message AddFriendResponseReq{ CommID CommID = 1; - int32 flag = 2; + int32 handleResult = 2; string handleMsg = 3; } message AddFriendResponseResp{ diff --git a/pkg/proto/sdk_ws/ws.proto b/pkg/proto/sdk_ws/ws.proto index 5b235f5d8..ed7d7b739 100644 --- a/pkg/proto/sdk_ws/ws.proto +++ b/pkg/proto/sdk_ws/ws.proto @@ -223,27 +223,63 @@ message TipsComm{ } //////////////////////group///////////////////// -//Actively join the group -message MemberEnterTips{ + + +// OnGroupCreated() +message GroupCreatedTips{ GroupInfo group = 1; - GroupMemberFullInfo entrantUser = 2; - int64 operationTime = 3; + GroupMemberFullInfo creator = 2; + repeated GroupMemberFullInfo memberList = 3; + int64 operationTime = 4; +} + +// OnGroupInfoSet() +message MemberInfoSetTips{ + GroupMemberFullInfo opUser = 1; //who do this + int64 muteTime = 2; + GroupInfo group = 3; } +// OnJoinGroupApplication() +message JoinGroupApplicationTips{ + GroupInfo group = 1; + PublicUserInfo applicant = 2; + string reason = 3; +} + +// OnQuitGroup() //Actively leave the group -message MemberLeaveTips{ +message MemberQuitTips{ GroupInfo group = 1; - GroupMemberFullInfo leaverUser = 2; + GroupMemberFullInfo quitUser = 2; int64 operationTime = 3; } -message MemberInvitedTips{ + +// OnApplicationGroupAccepted() +message GroupApplicationAcceptedTips{ GroupInfo group = 1; GroupMemberFullInfo opUser = 2; - repeated GroupMemberFullInfo invitedUserList = 3; + string handleMsg = 4; +} + +// OnApplicationGroupRejected() +message GroupApplicationRejectedTips{ + GroupInfo group = 1; + GroupMemberFullInfo opUser = 2; + string handleMsg = 4; +} + +// OnTransferGroupOwner() +message GroupOwnerTransferredTips{ + GroupInfo group = 1; + GroupMemberFullInfo opUser = 2; + GroupMemberFullInfo newGroupOwner = 3; int64 operationTime = 4; } + +// OnMemberKicked() message MemberKickedTips{ GroupInfo group = 1; GroupMemberFullInfo opUser = 2; @@ -251,21 +287,28 @@ message MemberKickedTips{ int64 operationTime = 4; } -message MemberInfoChangedTips{ - int32 changeType = 1; ///bitwise operators 0001:member info changed; 0010:mute ; - GroupMemberFullInfo opUser = 2; //who do this - GroupMemberFullInfo finalInfo = 3; // - int64 muteTime = 4; - GroupInfo group = 5; -} - -message GroupCreatedTips{ +// OnMemberInvited() +message MemberInvitedTips{ GroupInfo group = 1; - GroupMemberFullInfo creator = 2; - repeated GroupMemberFullInfo memberList = 3; + GroupMemberFullInfo opUser = 2; + repeated GroupMemberFullInfo invitedUserList = 3; int64 operationTime = 4; } +//Actively join the group +//message MemberEnterTips{ +// GroupInfo group = 1; +// GroupMemberFullInfo entrantUser = 2; +// int64 operationTime = 3; +//} + + + + + + + + message GroupInfoChangedTips{ int32 changedType = 1; //bitwise operators: 0001:groupName; 0010:Notification 0100:Introduction; 1000:FaceUrl GroupInfo group = 2; @@ -278,12 +321,10 @@ message JoinGroupApplicationTips{ string reason = 3; } -message ApplicationProcessedTips{ - GroupInfo group = 1; - GroupMemberFullInfo opUser = 2; - int32 result = 3; - string reason = 4; -} + + + + //////////////////////friend///////////////////// //message FriendInfo{ From a583a3122035f4b32598212f03507e85794c2b2d Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Sun, 16 Jan 2022 16:31:28 +0800 Subject: [PATCH 498/814] Refactor code --- internal/rpc/friend/firend.go | 101 +-- internal/rpc/group/group.go | 61 +- internal/rpc/msg/friend_notification.go | 83 +- internal/rpc/msg/group_notification.go | 376 ++++---- pkg/common/constant/constant.go | 43 +- pkg/proto/sdk_ws/ws.pb.go | 1049 +++++++++++++---------- pkg/proto/sdk_ws/ws.proto | 42 +- 7 files changed, 948 insertions(+), 807 deletions(-) diff --git a/internal/rpc/friend/firend.go b/internal/rpc/friend/firend.go index e7f2cf217..578118dfc 100644 --- a/internal/rpc/friend/firend.go +++ b/internal/rpc/friend/firend.go @@ -68,48 +68,6 @@ func (s *friendServer) Run() { } } -//// -//func (s *friendServer) GetFriendsInfo(ctx context.Context, req *pbFriend.GetFriendsInfoReq) (*pbFriend.GetFriendInfoResp, error) { -// return nil, nil -//// log.NewInfo(req.CommID.OperationID, "GetFriendsInfo args ", req.String()) -//// var ( -//// isInBlackList int32 -//// // isFriend int32 -//// comment string -//// ) -//// -//// friendShip, err := imdb.FindFriendRelationshipFromFriend(req.CommID.FromUserID, req.CommID.ToUserID) -//// if err != nil { -//// log.NewError(req.CommID.OperationID, "FindFriendRelationshipFromFriend failed ", err.Error()) -//// return &pbFriend.GetFriendInfoResp{ErrCode: constant.ErrSearchUserInfo.ErrCode, ErrMsg: constant.ErrSearchUserInfo.ErrMsg}, nil -//// // isFriend = constant.FriendFlag -//// } -//// comment = friendShip.Remark -//// -//// friendUserInfo, err := imdb.FindUserByUID(req.CommID.ToUserID) -//// if err != nil { -//// log.NewError(req.CommID.OperationID, "FindUserByUID failed ", err.Error()) -//// return &pbFriend.GetFriendInfoResp{ErrCode: constant.ErrSearchUserInfo.ErrCode, ErrMsg: constant.ErrSearchUserInfo.ErrMsg}, nil -//// } -//// -//// err = imdb.FindRelationshipFromBlackList(req.CommID.FromUserID, req.CommID.ToUserID) -//// if err == nil { -//// isInBlackList = constant.BlackListFlag -//// } -//// -//// resp := pbFriend.GetFriendInfoResp{ErrCode: 0, ErrMsg: "",} -//// -//// utils.CopyStructFields(resp.FriendInfoList, friendUserInfo) -//// resp.Data.IsBlack = isInBlackList -//// resp.Data.OwnerUserID = req.CommID.FromUserID -//// resp.Data.Remark = comment -//// resp.Data.CreateTime = friendUserInfo.CreateTime -//// -//// log.NewInfo(req.CommID.OperationID, "GetFriendsInfo ok ", resp) -//// return &resp, nil -//// -//} - func (s *friendServer) AddBlacklist(ctx context.Context, req *pbFriend.AddBlacklistReq) (*pbFriend.AddBlacklistResp, error) { log.NewInfo(req.CommID.OperationID, "AddBlacklist args ", req.String()) ok := token_verify.CheckAccess(req.CommID.OpUserID, req.CommID.FromUserID) @@ -153,7 +111,7 @@ func (s *friendServer) AddFriend(ctx context.Context, req *pbFriend.AddFriendReq return &pbFriend.AddFriendResp{CommonResp: &pbFriend.CommonResp{ErrCode: constant.ErrDB.ErrCode, ErrMsg: constant.ErrDB.ErrMsg}}, nil } - chat.FriendApplicationAddedNotification(req) + chat.FriendApplicationNotification(req) return &pbFriend.AddFriendResp{CommonResp: &pbFriend.CommonResp{}}, nil } @@ -235,7 +193,7 @@ func (s *friendServer) AddFriendResponse(ctx context.Context, req *pbFriend.AddF log.NewError(req.CommID.OperationID, "GetFriendApplicationByBothUserID failed ", err.Error(), req.CommID.ToUserID, req.CommID.FromUserID) return &pbFriend.AddFriendResponseResp{CommonResp: &pbFriend.CommonResp{ErrCode: constant.ErrDB.ErrCode, ErrMsg: constant.ErrDB.ErrMsg}}, nil } - friendRequest.HandleResult = req.Flag + friendRequest.HandleResult = req.HandleResult friendRequest.HandleTime = time.Now() //friendRequest.HandleTime.Unix() friendRequest.HandleMsg = req.HandleMsg @@ -247,7 +205,7 @@ func (s *friendServer) AddFriendResponse(ctx context.Context, req *pbFriend.AddF } //Change the status of the friend request form - if req.Flag == constant.FriendFlag { + if req.HandleResult == constant.FriendFlag { //Establish friendship after find friend relationship not exists _, err := imdb.GetFriendRelationshipFromFriend(req.CommID.FromUserID, req.CommID.ToUserID) if err == nil { @@ -275,8 +233,13 @@ func (s *friendServer) AddFriendResponse(ctx context.Context, req *pbFriend.AddF chat.FriendAddedNotification(req.CommID.OperationID, req.CommID.OpUserID, req.CommID.FromUserID, req.CommID.ToUserID) } } - - chat.FriendApplicationProcessedNotification(req) + if req.HandleResult == constant.FriendResponseAgree { + chat.FriendApplicationApprovedNotification(req) + } else if req.HandleResult == constant.FriendResponseRefuse { + chat.FriendApplicationRejectedNotification(req) + } else { + log.Error(req.CommID.OperationID, "HandleResult failed ", req.HandleResult) + } log.NewInfo(req.CommID.OperationID, "rpc AddFriendResponse ok") return &pbFriend.AddFriendResponseResp{CommonResp: &pbFriend.CommonResp{}}, nil } @@ -345,7 +308,7 @@ func (s *friendServer) SetFriendRemark(ctx context.Context, req *pbFriend.SetFri return &pbFriend.SetFriendRemarkResp{CommonResp: &pbFriend.CommonResp{ErrCode: constant.ErrDB.ErrCode, ErrMsg: constant.ErrDB.ErrMsg}}, nil } log.NewInfo(req.CommID.OperationID, "rpc SetFriendComment ok") - chat.FriendInfoChangedNotification(req.CommID.OperationID, req.CommID.OpUserID, req.CommID.FromUserID, req.CommID.ToUserID) + chat.FriendRemarkSetNotification(req.CommID.OperationID, req.CommID.OpUserID, req.CommID.FromUserID, req.CommID.ToUserID) return &pbFriend.SetFriendRemarkResp{CommonResp: &pbFriend.CommonResp{}}, nil } @@ -507,3 +470,45 @@ func (s *friendServer) GetSelfApplyList(ctx context.Context, req *pbFriend.GetSe log.NewInfo(req.CommID.OperationID, "rpc GetSelfApplyList ok", pbFriend.GetSelfApplyListResp{FriendRequestList: selfApplyOtherUserList}) return &pbFriend.GetSelfApplyListResp{FriendRequestList: selfApplyOtherUserList}, nil } + +//// +//func (s *friendServer) GetFriendsInfo(ctx context.Context, req *pbFriend.GetFriendsInfoReq) (*pbFriend.GetFriendInfoResp, error) { +// return nil, nil +//// log.NewInfo(req.CommID.OperationID, "GetFriendsInfo args ", req.String()) +//// var ( +//// isInBlackList int32 +//// // isFriend int32 +//// comment string +//// ) +//// +//// friendShip, err := imdb.FindFriendRelationshipFromFriend(req.CommID.FromUserID, req.CommID.ToUserID) +//// if err != nil { +//// log.NewError(req.CommID.OperationID, "FindFriendRelationshipFromFriend failed ", err.Error()) +//// return &pbFriend.GetFriendInfoResp{ErrCode: constant.ErrSearchUserInfo.ErrCode, ErrMsg: constant.ErrSearchUserInfo.ErrMsg}, nil +//// // isFriend = constant.FriendFlag +//// } +//// comment = friendShip.Remark +//// +//// friendUserInfo, err := imdb.FindUserByUID(req.CommID.ToUserID) +//// if err != nil { +//// log.NewError(req.CommID.OperationID, "FindUserByUID failed ", err.Error()) +//// return &pbFriend.GetFriendInfoResp{ErrCode: constant.ErrSearchUserInfo.ErrCode, ErrMsg: constant.ErrSearchUserInfo.ErrMsg}, nil +//// } +//// +//// err = imdb.FindRelationshipFromBlackList(req.CommID.FromUserID, req.CommID.ToUserID) +//// if err == nil { +//// isInBlackList = constant.BlackListFlag +//// } +//// +//// resp := pbFriend.GetFriendInfoResp{ErrCode: 0, ErrMsg: "",} +//// +//// utils.CopyStructFields(resp.FriendInfoList, friendUserInfo) +//// resp.Data.IsBlack = isInBlackList +//// resp.Data.OwnerUserID = req.CommID.FromUserID +//// resp.Data.Remark = comment +//// resp.Data.CreateTime = friendUserInfo.CreateTime +//// +//// log.NewInfo(req.CommID.OperationID, "GetFriendsInfo ok ", resp) +//// return &resp, nil +//// +//} diff --git a/internal/rpc/group/group.go b/internal/rpc/group/group.go index 767adba27..26de2bbd9 100644 --- a/internal/rpc/group/group.go +++ b/internal/rpc/group/group.go @@ -141,7 +141,6 @@ func (s *groupServer) CreateGroup(ctx context.Context, req *pbGroup.CreateGroupR resp.ErrMsg = constant.ErrDB.ErrMsg return resp, nil } - chat.GroupCreatedNotification(req.OperationID, req.OpUserID, groupId, okUserIDList) utils.CopyStructFields(resp.GroupInfo, group) resp.GroupInfo.MemberCount, err = imdb.GetGroupMemberNumByGroupID(groupId) if err != nil { @@ -153,6 +152,7 @@ func (s *groupServer) CreateGroup(ctx context.Context, req *pbGroup.CreateGroupR resp.GroupInfo.OwnerUserID = req.OwnerUserID log.NewInfo(req.OperationID, "rpc CreateGroup return ", resp.String()) + chat.GroupCreatedNotification(req.OperationID, req.OpUserID, groupId, okUserIDList) return resp, nil } @@ -420,7 +420,7 @@ func (s *groupServer) GetGroupApplicationList(_ context.Context, req *pbGroup.Ge } cp.GroupRequestDBCopyOpenIM(&node, &v) - cp.UserDBCopyOpenIMPublic(node.UserInfo, user) + cp.UserDBCopyOpenIMPublicUser(node.UserInfo, user) cp.GroupDBCopyOpenIM(node.GroupInfo, group) log.NewDebug(req.OperationID, "node ", node, "v ", v) resp.GroupRequestList = append(resp.GroupRequestList, &node) @@ -466,30 +466,33 @@ func (s *groupServer) GroupApplicationResponse(_ context.Context, req *pbGroup.G log.NewError(req.OperationID, "GroupApplicationResponse failed ", err.Error(), groupRequest) return &pbGroup.GroupApplicationResponseResp{CommonResp: &pbGroup.CommonResp{ErrCode: constant.ErrDB.ErrCode, ErrMsg: constant.ErrDB.ErrMsg}}, nil } - chat.ApplicationProcessedNotification(req) - if req.HandleResult == constant.GroupResponseAgree { - if req.HandleResult == constant.GroupResponseAgree { - user, err := imdb.GetUserByUserID(req.FromUserID) - if err != nil { - log.NewError(req.OperationID, "GroupApplicationResponse failed ", err.Error(), req.FromUserID) - return &pbGroup.GroupApplicationResponseResp{CommonResp: &pbGroup.CommonResp{ErrCode: constant.ErrDB.ErrCode, ErrMsg: constant.ErrDB.ErrMsg}}, nil - } - member := db.GroupMember{} - member.GroupID = req.GroupID - member.UserID = req.FromUserID - member.RoleLevel = constant.GroupOrdinaryUsers - member.OperatorUserID = req.OpUserID - member.FaceUrl = user.FaceUrl - member.Nickname = user.Nickname - - err = imdb.InsertIntoGroupMember(member) - if err != nil { - log.NewError(req.OperationID, "GroupApplicationResponse failed ", err.Error(), member) - return &pbGroup.GroupApplicationResponseResp{CommonResp: &pbGroup.CommonResp{ErrCode: constant.ErrDB.ErrCode, ErrMsg: constant.ErrDB.ErrMsg}}, nil - } + if req.HandleResult == constant.GroupResponseAgree { + user, err := imdb.GetUserByUserID(req.FromUserID) + if err != nil { + log.NewError(req.OperationID, "GroupApplicationResponse failed ", err.Error(), req.FromUserID) + return &pbGroup.GroupApplicationResponseResp{CommonResp: &pbGroup.CommonResp{ErrCode: constant.ErrDB.ErrCode, ErrMsg: constant.ErrDB.ErrMsg}}, nil } + member := db.GroupMember{} + member.GroupID = req.GroupID + member.UserID = req.FromUserID + member.RoleLevel = constant.GroupOrdinaryUsers + member.OperatorUserID = req.OpUserID + member.FaceUrl = user.FaceURL + member.Nickname = user.Nickname + + err = imdb.InsertIntoGroupMember(member) + if err != nil { + log.NewError(req.OperationID, "GroupApplicationResponse failed ", err.Error(), member) + return &pbGroup.GroupApplicationResponseResp{CommonResp: &pbGroup.CommonResp{ErrCode: constant.ErrDB.ErrCode, ErrMsg: constant.ErrDB.ErrMsg}}, nil + } + chat.GroupApplicationAcceptedNotification(req) chat.MemberEnterNotification(req) + } else if req.HandleResult == constant.GroupResponseRefuse { + chat.GroupApplicationRejectedNotification(req) + } else { + log.Error(req.OperationID, "HandleResult failed ", req.HandleResult) + return &pbGroup.GroupApplicationResponseResp{CommonResp: &pbGroup.CommonResp{ErrCode: constant.ErrArgs.ErrCode, ErrMsg: constant.ErrArgs.ErrMsg}}, nil } log.NewInfo(req.OperationID, "rpc GroupApplicationResponse return ", pbGroup.GroupApplicationResponseResp{CommonResp: &pbGroup.CommonResp{}}) @@ -521,7 +524,7 @@ func (s *groupServer) JoinGroup(ctx context.Context, req *pbGroup.JoinGroupReq) return &pbGroup.JoinGroupResp{CommonResp: &pbGroup.CommonResp{ErrCode: 0, ErrMsg: ""}}, nil } - chat.JoinApplicationNotification(req) + chat.JoinGroupApplicationNotification(req) log.NewInfo(req.OperationID, "ReceiveJoinApplicationNotification rpc return ") return &pbGroup.JoinGroupResp{CommonResp: &pbGroup.CommonResp{ErrCode: 0, ErrMsg: ""}}, nil @@ -547,7 +550,7 @@ func (s *groupServer) QuitGroup(ctx context.Context, req *pbGroup.QuitGroupReq) // return &pbGroup.CommonResp{ErrorCode: constant.ErrQuitGroup.ErrCode, ErrorMsg: constant.ErrQuitGroup.ErrMsg}, nil } - chat.MemberLeaveNotification(req) + 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 } @@ -603,11 +606,10 @@ func (s *groupServer) SetGroupInfo(ctx context.Context, req *pbGroup.SetGroupInf log.NewError(req.OperationID, "SetGroupInfo failed ", err.Error(), groupInfo) return &pbGroup.SetGroupInfoResp{CommonResp: &pbGroup.CommonResp{ErrCode: constant.ErrDB.ErrCode, ErrMsg: constant.ErrDB.ErrMsg}}, nil } - + log.NewInfo(req.OperationID, "SetGroupInfo rpc return ", pbGroup.SetGroupInfoResp{CommonResp: &pbGroup.CommonResp{}}) if changedType != 0 { - chat.GroupInfoChangedNotification(req.OperationID, req.OpUserID, req.GroupInfo.GroupID, changedType) + chat.GroupInfoSetNotification(req.OperationID, req.OpUserID, req.GroupInfo.GroupID) } - log.NewInfo(req.OperationID, "SetGroupInfo rpc return ", pbGroup.SetGroupInfoResp{CommonResp: &pbGroup.CommonResp{}}) return &pbGroup.SetGroupInfoResp{CommonResp: &pbGroup.CommonResp{}}, nil } @@ -630,8 +632,7 @@ func (s *groupServer) TransferGroupOwner(_ context.Context, req *pbGroup.Transfe log.NewError(req.OperationID, "UpdateGroupMemberInfo failed ", groupMemberInfo) return &pbGroup.TransferGroupOwnerResp{CommonResp: &pbGroup.CommonResp{ErrCode: constant.ErrDB.ErrCode, ErrMsg: constant.ErrDB.ErrMsg}}, nil } - changedType := int32(1) << 4 - chat.GroupInfoChangedNotification(req.OperationID, req.OpUserID, req.GroupID, changedType) + chat.GroupOwnerTransferredNotification(req) return &pbGroup.TransferGroupOwnerResp{CommonResp: &pbGroup.CommonResp{ErrCode: 0, ErrMsg: ""}}, nil diff --git a/internal/rpc/msg/friend_notification.go b/internal/rpc/msg/friend_notification.go index 5e9017568..e1a6fd3ef 100644 --- a/internal/rpc/msg/friend_notification.go +++ b/internal/rpc/msg/friend_notification.go @@ -58,7 +58,7 @@ func friendNotification(commID *pbFriend.CommID, contentType int32, m proto.Mess } cn := config.Config.Notification switch contentType { - case constant.FriendApplicationAddedNotification: + case constant.FriendApplicationNotification: tips.DefaultTips = fromUserNickname + cn.FriendApplicationAdded.DefaultTips.Tips case constant.FriendApplicationApprovedNotification: @@ -69,7 +69,7 @@ func friendNotification(commID *pbFriend.CommID, contentType int32, m proto.Mess tips.DefaultTips = cn.FriendAdded.DefaultTips.Tips case constant.FriendDeletedNotification: tips.DefaultTips = cn.FriendDeleted.DefaultTips.Tips + toUserNickname - case constant.FriendInfoChangedNotification: + case constant.FriendRemarkSetNotification: tips.DefaultTips = fromUserNickname + cn.FriendInfoChanged.DefaultTips.Tips case constant.BlackAddedNotification: tips.DefaultTips = cn.BlackAdded.DefaultTips.Tips + toUserNickname @@ -95,12 +95,12 @@ func friendNotification(commID *pbFriend.CommID, contentType int32, m proto.Mess Notification(&n) } -func FriendApplicationAddedNotification(req *pbFriend.AddFriendReq) { +func FriendApplicationNotification(req *pbFriend.AddFriendReq) { log.Info(req.CommID.OperationID, utils.GetSelfFuncName(), "args: ", req.String()) var friendApplicationAddedTips open_im_sdk.FriendApplicationAddedTips friendApplicationAddedTips.FromToUserID.FromUserID = req.CommID.FromUserID friendApplicationAddedTips.FromToUserID.ToUserID = req.CommID.ToUserID - friendNotification(req.CommID, constant.FriendApplicationAddedNotification, &friendApplicationAddedTips) + friendNotification(req.CommID, constant.FriendApplicationNotification, &friendApplicationAddedTips) //fromUserNickname, toUserNickname, err := getFromToUserNickname(req.CommID.FromUserID, req.CommID.ToUserID) //if err != nil { // log.Error(req.CommID.OperationID, "getFromToUserNickname failed ", err.Error(), req.CommID.FromUserID, req.CommID.ToUserID) @@ -129,23 +129,18 @@ func FriendApplicationAddedNotification(req *pbFriend.AddFriendReq) { //Notification(&n) } -func FriendApplicationProcessedNotification(req *pbFriend.AddFriendResponseReq) { - var friendApplicationProcessedTips open_im_sdk.FriendApplicationProcessedTips - friendApplicationProcessedTips.FromToUserID.FromUserID = req.CommID.FromUserID - friendApplicationProcessedTips.FromToUserID.ToUserID = req.CommID.ToUserID - friendApplicationProcessedTips.HandleResult = req.HandleResult +func FriendApplicationApprovedNotification(req *pbFriend.AddFriendResponseReq) { + FriendApplicationApprovedTips := open_im_sdk.FriendApplicationApprovedTips{FromToUserID: &open_im_sdk.FromToUserID{}} + FriendApplicationApprovedTips.FromToUserID.FromUserID = req.CommID.FromUserID + FriendApplicationApprovedTips.FromToUserID.ToUserID = req.CommID.ToUserID + FriendApplicationApprovedTips.HandleMsg = req.HandleMsg //fromUserNickname, toUserNickname, err := getFromToUserNickname(req.CommID.FromUserID, req.CommID.ToUserID) //if err != nil { // log.Error(req.CommID.OperationID, "getFromToUserNickname failed ", err.Error(), req.CommID.FromUserID, req.CommID.ToUserID) // return //} - if friendApplicationProcessedTips.HandleResult == 1 { - friendNotification(req.CommID, constant.FriendApplicationApprovedNotification, &friendApplicationProcessedTips) - } else if friendApplicationProcessedTips.HandleResult == -1 { - friendNotification(req.CommID, constant.FriendApplicationRejectedNotification, &friendApplicationProcessedTips) - } else { - log.Error(req.CommID.OperationID, "HandleResult failed ", friendApplicationProcessedTips.HandleResult) - } + + friendNotification(req.CommID, constant.FriendApplicationApprovedNotification, &FriendApplicationApprovedTips) //var tips open_im_sdk.TipsComm //tips.DefaultTips = fromUserNickname + " FriendApplicationProcessedNotification " + toUserNickname @@ -170,6 +165,58 @@ func FriendApplicationProcessedNotification(req *pbFriend.AddFriendResponseReq) //Notification(&n) } +func FriendApplicationRejectedNotification(req *pbFriend.AddFriendResponseReq) { + FriendApplicationApprovedTips := open_im_sdk.FriendApplicationApprovedTips{FromToUserID: &open_im_sdk.FromToUserID{}} + FriendApplicationApprovedTips.FromToUserID.FromUserID = req.CommID.FromUserID + FriendApplicationApprovedTips.FromToUserID.ToUserID = req.CommID.ToUserID + FriendApplicationApprovedTips.HandleMsg = req.HandleMsg + + friendNotification(req.CommID, constant.FriendApplicationRejectedNotification, &FriendApplicationApprovedTips) +} + +// +// +//func FriendApplicationProcessedNotification(req *pbFriend.AddFriendResponseReq) { +// var friendApplicationProcessedTips open_im_sdk.FriendApplicationProcessedTips +// friendApplicationProcessedTips.FromToUserID.FromUserID = req.CommID.FromUserID +// friendApplicationProcessedTips.FromToUserID.ToUserID = req.CommID.ToUserID +// friendApplicationProcessedTips.HandleResult = req.HandleResult +// //fromUserNickname, toUserNickname, err := getFromToUserNickname(req.CommID.FromUserID, req.CommID.ToUserID) +// //if err != nil { +// // log.Error(req.CommID.OperationID, "getFromToUserNickname failed ", err.Error(), req.CommID.FromUserID, req.CommID.ToUserID) +// // return +// //} +// if friendApplicationProcessedTips.HandleResult == 1 { +// friendNotification(req.CommID, constant.FriendApplicationApprovedNotification, &friendApplicationProcessedTips) +// } else if friendApplicationProcessedTips.HandleResult == -1 { +// friendNotification(req.CommID, constant.FriendApplicationRejectedNotification, &friendApplicationProcessedTips) +// } else { +// log.Error(req.CommID.OperationID, "HandleResult failed ", friendApplicationProcessedTips.HandleResult) +// } +// +// //var tips open_im_sdk.TipsComm +// //tips.DefaultTips = fromUserNickname + " FriendApplicationProcessedNotification " + toUserNickname +// //tips.Detail, err = proto.Marshal(&friendApplicationProcessedTips) +// //if err != nil { +// // log.Error(req.CommID.OperationID, "Marshal failed ", err.Error(), friendApplicationProcessedTips.String()) +// // return +// //} +// // +// //var n NotificationMsg +// //n.SendID = req.CommID.FromUserID +// //n.RecvID = req.CommID.ToUserID +// //n.ContentType = constant.FriendApplicationProcessedNotification +// //n.SessionType = constant.SingleChatType +// //n.MsgFrom = constant.SysMsgType +// //n.OperationID = req.CommID.OperationID +// //n.Content, err = proto.Marshal(&tips) +// //if err != nil { +// // log.Error(req.CommID.OperationID, "Marshal failed ", err.Error(), tips.String()) +// // return +// //} +// //Notification(&n) +//} + func FriendAddedNotification(operationID, opUserID, fromUserID, toUserID string) { var friendAddedTips open_im_sdk.FriendAddedTips user, err := imdb.GetUserByUserID(opUserID) @@ -255,7 +302,7 @@ func FriendDeletedNotification(req *pbFriend.DeleteFriendReq) { // PublicUserInfo OpUser = 2; // uint64 OperationTime = 3; //} -func FriendInfoChangedNotification(operationID, opUserID, fromUserID, toUserID string) { +func FriendRemarkSetNotification(operationID, opUserID, fromUserID, toUserID string) { var friendInfoChangedTips open_im_sdk.FriendInfoChangedTips friendInfoChangedTips.FromToUserID.FromUserID = fromUserID friendInfoChangedTips.FromToUserID.ToUserID = toUserID @@ -265,7 +312,7 @@ func FriendInfoChangedNotification(operationID, opUserID, fromUserID, toUserID s // return //} commID := pbFriend.CommID{FromUserID: fromUserID, ToUserID: toUserID, OpUserID: opUserID, OperationID: operationID} - friendNotification(&commID, constant.FriendInfoChangedNotification, &friendInfoChangedTips) + friendNotification(&commID, constant.FriendRemarkSetNotification, &friendInfoChangedTips) //var tips open_im_sdk.TipsComm //tips.DefaultTips = fromUserNickname + " FriendDeletedNotification " + toUserNickname //tips.Detail, err = proto.Marshal(&friendInfoChangedTips) diff --git a/internal/rpc/msg/group_notification.go b/internal/rpc/msg/group_notification.go index a92d6d0c3..5893a9781 100644 --- a/internal/rpc/msg/group_notification.go +++ b/internal/rpc/msg/group_notification.go @@ -10,7 +10,7 @@ import ( pbGroup "Open_IM/pkg/proto/group" open_im_sdk "Open_IM/pkg/proto/sdk_ws" "Open_IM/pkg/utils" - "encoding/json" + "github.com/golang/protobuf/proto" ) //message GroupCreatedTips{ @@ -63,46 +63,114 @@ func setGroupMemberInfo(groupID, userID string, groupMemberInfo *open_im_sdk.Gro return nil } -//func setGroupPublicUserInfo(operationID, groupID, userID string, publicUserInfo *open_im_sdk.PublicUserInfo) { -// group, err := imdb.GetGroupMemberInfoByGroupIDAndUserID(groupID, userID) -// if err != nil { -// log.NewError(operationID, "FindGroupMemberInfoByGroupIdAndUserId failed ", err.Error(), groupID, userID) -// return -// } -// utils.CopyStructFields(publicUserInfo, group) -//} +func setGroupOwnerInfo(groupID string, groupMemberInfo *open_im_sdk.GroupMemberFullInfo) error { + groupMember, err := imdb.GetGroupOwnerInfoByGroupID(groupID) + if err != nil { + return utils.Wrap(err, "") + } + if err = utils2.GroupMemberDBCopyOpenIM(groupMemberInfo, groupMember); err != nil { + return utils.Wrap(err, "") + } + return nil +} + +func setPublicUserInfo(userID string, publicUserInfo *open_im_sdk.PublicUserInfo) error { + user, err := imdb.GetUserByUserID(userID) + if err != nil { + return utils.Wrap(err, "") + } + utils2.UserDBCopyOpenIMPublicUser(publicUserInfo, user) + return nil +} + +func groupNotification(contentType int32, m proto.Message, sendID, groupID, recvUserID, operationID string) { + log.Info(operationID, utils.GetSelfFuncName(), "args: ", contentType) + + var err error + var tips open_im_sdk.TipsComm + tips.Detail, err = proto.Marshal(m) + if err != nil { + log.Error(operationID, "Marshal failed ", err.Error(), m.String()) + return + } + + cn := config.Config.Notification + switch contentType { + case constant.GroupCreatedNotification: + tips.DefaultTips = cn.GroupCreated.DefaultTips.Tips + case constant.GroupInfoSetNotification: + case constant.JoinGroupApplicationNotification: + case constant.MemberQuitNotification: + case constant.GroupApplicationAcceptedNotification: + case constant.GroupApplicationRejectedNotification: + case constant.GroupOwnerTransferredNotification: + case constant.MemberKickedNotification: + case constant.MemberInvitedNotification: + default: + log.Error(operationID, "contentType failed ", contentType) + return + } + + var n NotificationMsg + n.SendID = sendID + if groupID != "" { + n.RecvID = groupID + n.SessionType = constant.GroupChatType + } else { + n.RecvID = recvUserID + n.SessionType = constant.SingleChatType + } + n.ContentType = contentType + n.OperationID = operationID + n.Content, err = proto.Marshal(&tips) + if err != nil { + log.Error(operationID, "Marshal failed ", err.Error(), tips.String()) + return + } + Notification(&n) +} //创建群后调用 func GroupCreatedNotification(operationID, opUserID, groupID string, initMemberList []string) { GroupCreatedTips := open_im_sdk.GroupCreatedTips{Group: &open_im_sdk.GroupInfo{}, - Creator: &open_im_sdk.GroupMemberFullInfo{}} - if err := setOpUserInfo(GroupCreatedTips.Creator.UserID, groupID, GroupCreatedTips.Creator); err != nil { - log.NewError(operationID, "setOpUserInfo failed ", err.Error(), GroupCreatedTips.Creator.UserID, groupID, GroupCreatedTips.Creator) + OpUser: &open_im_sdk.GroupMemberFullInfo{}, GroupOwnerUser: &open_im_sdk.GroupMemberFullInfo{}} + if err := setOpUserInfo(opUserID, groupID, GroupCreatedTips.OpUser); err != nil { + log.NewError(operationID, "setOpUserInfo failed ", err.Error(), opUserID, groupID, GroupCreatedTips.OpUser) return } err := setGroupInfo(groupID, GroupCreatedTips.Group) if err != nil { - log.NewError(operationID, "setGroupInfo failed ", groupID, GroupCreatedTips.Group) + log.Error(operationID, "setGroupInfo failed ", groupID, GroupCreatedTips.Group) + return + } + imdb.GetGroupOwnerInfoByGroupID(groupID) + if err := setGroupOwnerInfo(groupID, GroupCreatedTips.GroupOwnerUser); err != nil { + log.Error(operationID, "setGroupOwnerInfo failed", err.Error(), groupID) return } for _, v := range initMemberList { var groupMemberInfo open_im_sdk.GroupMemberFullInfo - setGroupMemberInfo(groupID, v, &groupMemberInfo) + if err := setGroupMemberInfo(groupID, v, &groupMemberInfo); err != nil { + log.Error(operationID, "setGroupMemberInfo failed ", err.Error(), groupID, v) + continue + } GroupCreatedTips.MemberList = append(GroupCreatedTips.MemberList, &groupMemberInfo) } - var tips open_im_sdk.TipsComm - tips.Detail, _ = json.Marshal(GroupCreatedTips) - tips.DefaultTips = config.Config.Notification.GroupCreated.DefaultTips.Tips - var n NotificationMsg - n.SendID = opUserID - n.RecvID = groupID - n.ContentType = constant.GroupCreatedNotification - n.SessionType = constant.GroupChatType - n.MsgFrom = constant.SysMsgType - n.OperationID = operationID - n.Content, _ = json.Marshal(tips) - log.NewInfo(operationID, "Notification ", n) - Notification(&n) + groupNotification(constant.GroupCreatedNotification, &GroupCreatedTips, opUserID, groupID, "", operationID) +} + +//群信息改变后掉用 +func GroupInfoSetNotification(operationID, opUserID, groupID string) { + GroupInfoChangedTips := open_im_sdk.GroupInfoSetTips{Group: &open_im_sdk.GroupInfo{}, OpUser: &open_im_sdk.GroupMemberFullInfo{}} + if err := setGroupInfo(groupID, GroupInfoChangedTips.Group); err != nil { + log.Error(operationID, "setGroupInfo failed ", err.Error(), groupID) + return + } + if err := setOpUserInfo(opUserID, groupID, GroupInfoChangedTips.OpUser); err != nil { + log.Error(operationID, "setOpUserInfo failed ", err.Error(), opUserID, groupID) + return + } + groupNotification(constant.GroupInfoSetNotification, &GroupInfoChangedTips, opUserID, groupID, "", operationID) } //message ReceiveJoinApplicationTips{ @@ -114,44 +182,46 @@ func GroupCreatedNotification(operationID, opUserID, groupID string, initMemberL // OpUserID string `protobuf:"bytes,3,opt,name=OpUserID" json:"OpUserID,omitempty"` // OperationID string `protobuf:"bytes,4,opt,name=OperationID" json:"OperationID,omitempty"` //申请进群后调用 -func JoinApplicationNotification(req *pbGroup.JoinGroupReq) { +func JoinGroupApplicationNotification(req *pbGroup.JoinGroupReq) { JoinGroupApplicationTips := open_im_sdk.JoinGroupApplicationTips{Group: &open_im_sdk.GroupInfo{}, Applicant: &open_im_sdk.PublicUserInfo{}} err := setGroupInfo(req.GroupID, JoinGroupApplicationTips.Group) if err != nil { - log.NewError(req.OperationID, "setGroupInfo failed ", err.Error(), req.GroupID, JoinGroupApplicationTips.Group) + log.Error(req.OperationID, "setGroupInfo failed ", err.Error(), req.GroupID) return } - - apply, err := imdb.GetUserByUserID(req.OpUserID) - if err != nil { - log.NewError(req.OperationID, "FindUserByUID failed ", err.Error(), req.OpUserID) + if err = setPublicUserInfo(req.OpUserID, JoinGroupApplicationTips.Applicant); err != nil { + log.Error(req.OperationID, "setPublicUserInfo failed ", err.Error(), req.OpUserID) return } - utils.CopyStructFields(JoinGroupApplicationTips.Applicant, apply) - JoinGroupApplicationTips.Reason = req.ReqMessage + JoinGroupApplicationTips.ReqMsg = req.ReqMessage - var tips open_im_sdk.TipsComm - tips.Detail, _ = json.Marshal(JoinGroupApplicationTips) - tips.DefaultTips = "JoinGroupApplicationTips" - var n NotificationMsg - n.SendID = req.OpUserID - n.ContentType = constant.JoinApplicationNotification - n.SessionType = constant.SingleChatType - n.MsgFrom = constant.SysMsgType - n.OperationID = req.OperationID - n.Content, _ = json.Marshal(tips) managerList, err := imdb.GetOwnerManagerByGroupID(req.GroupID) if err != nil { log.NewError(req.OperationID, "GetOwnerManagerByGroupId failed ", err.Error(), req.GroupID) return } for _, v := range managerList { - n.RecvID = v.UserID - log.NewInfo(req.OperationID, "Notification ", n) - Notification(&n) + groupNotification(constant.JoinGroupApplicationNotification, &JoinGroupApplicationTips, req.OpUserID, "", v.UserID, req.OperationID) + log.NewInfo(req.OperationID, "Notification ", v) } } +func MemberQuitNotification(req *pbGroup.QuitGroupReq) { + MemberQuitTips := open_im_sdk.MemberQuitTips{Group: &open_im_sdk.GroupInfo{}, QuitUser: &open_im_sdk.GroupMemberFullInfo{}} + if err := setGroupInfo(req.GroupID, MemberQuitTips.Group); err != nil { + log.Error(req.OperationID, "setGroupInfo failed ", err.Error(), req.GroupID) + return + } + if err := setOpUserInfo(req.OpUserID, req.GroupID, MemberQuitTips.QuitUser); err != nil { + log.Error(req.OperationID, "setOpUserInfo failed ", err.Error(), req.OpUserID, req.GroupID) + return + } + + groupNotification(constant.MemberQuitNotification, &MemberQuitTips, req.OpUserID, req.GroupID, "", req.OperationID) + groupNotification(constant.MemberQuitNotification, &MemberQuitTips, req.OpUserID, "", req.OpUserID, req.OperationID) + +} + //message ApplicationProcessedTips{ // GroupInfo Group = 1; // GroupMemberFullInfo OpUser = 2; @@ -159,70 +229,47 @@ func JoinApplicationNotification(req *pbGroup.JoinGroupReq) { // string Reason = 4; //} //处理进群请求后调用 -func ApplicationProcessedNotification(req *pbGroup.GroupApplicationResponseReq) { - ApplicationProcessedTips := open_im_sdk.ApplicationProcessedTips{Group: &open_im_sdk.GroupInfo{}, OpUser: &open_im_sdk.GroupMemberFullInfo{}} - if err := setGroupInfo(req.GroupID, ApplicationProcessedTips.Group); err != nil { - log.NewError(req.OperationID, "setGroupInfo failed ", err.Error(), req.GroupID, ApplicationProcessedTips.Group) +func GroupApplicationAcceptedNotification(req *pbGroup.GroupApplicationResponseReq) { + GroupApplicationAcceptedTips := open_im_sdk.GroupApplicationAcceptedTips{Group: &open_im_sdk.GroupInfo{}, OpUser: &open_im_sdk.GroupMemberFullInfo{}, HandleMsg: req.HandledMsg} + if err := setGroupInfo(req.GroupID, GroupApplicationAcceptedTips.Group); err != nil { + log.NewError(req.OperationID, "setGroupInfo failed ", err.Error(), req.GroupID, GroupApplicationAcceptedTips.Group) return } - if err := setOpUserInfo(req.OpUserID, req.GroupID, ApplicationProcessedTips.OpUser); err != nil { - log.Error(req.OperationID, "setOpUserInfo failed", req.OpUserID, req.GroupID, ApplicationProcessedTips.OpUser) + if err := setOpUserInfo(req.OpUserID, req.GroupID, GroupApplicationAcceptedTips.OpUser); err != nil { + log.Error(req.OperationID, "setOpUserInfo failed", req.OpUserID, req.GroupID, GroupApplicationAcceptedTips.OpUser) return } - ApplicationProcessedTips.Reason = req.HandledMsg - ApplicationProcessedTips.Result = req.HandleResult + groupNotification(constant.GroupApplicationAcceptedNotification, &GroupApplicationAcceptedTips, req.OpUserID, "", req.FromUserID, req.OperationID) +} - var tips open_im_sdk.TipsComm - tips.Detail, _ = json.Marshal(ApplicationProcessedTips) - tips.DefaultTips = "ApplicationProcessedNotification" - var n NotificationMsg - n.SendID = req.OpUserID - n.ContentType = constant.ApplicationProcessedNotification - n.SessionType = constant.SingleChatType - n.MsgFrom = constant.SysMsgType - n.OperationID = req.OperationID - n.RecvID = req.FromUserID - n.Content, _ = json.Marshal(tips) - Notification(&n) +func GroupApplicationRejectedNotification(req *pbGroup.GroupApplicationResponseReq) { + GroupApplicationRejectedTips := open_im_sdk.GroupApplicationRejectedTips{Group: &open_im_sdk.GroupInfo{}, OpUser: &open_im_sdk.GroupMemberFullInfo{}, HandleMsg: req.HandledMsg} + if err := setGroupInfo(req.GroupID, GroupApplicationRejectedTips.Group); err != nil { + log.NewError(req.OperationID, "setGroupInfo failed ", err.Error(), req.GroupID, GroupApplicationRejectedTips.Group) + return + } + if err := setOpUserInfo(req.OpUserID, req.GroupID, GroupApplicationRejectedTips.OpUser); err != nil { + log.Error(req.OperationID, "setOpUserInfo failed", req.OpUserID, req.GroupID, GroupApplicationRejectedTips.OpUser) + return + } + groupNotification(constant.GroupApplicationRejectedNotification, &GroupApplicationRejectedTips, req.OpUserID, "", req.FromUserID, req.OperationID) } -//message MemberInvitedTips{ -// GroupInfo Group = 1; -// GroupMemberFullInfo OpUser = 2; -// GroupMemberFullInfo InvitedUser = 3; -// uint64 OperationTime = 4; -//} -//被邀请进群后调用 -func MemberInvitedNotification(operationID, groupID, opUserID, reason string, invitedUserIDList []string) { - ApplicationProcessedTips := open_im_sdk.MemberInvitedTips{Group: &open_im_sdk.GroupInfo{}, OpUser: &open_im_sdk.GroupMemberFullInfo{}} - if err := setGroupInfo(groupID, ApplicationProcessedTips.Group); err != nil { - log.Error(operationID, "setGroupInfo failed ", err.Error(), groupID, ApplicationProcessedTips.Group) +func GroupOwnerTransferredNotification(req *pbGroup.TransferGroupOwnerReq) { + GroupOwnerTransferredTips := open_im_sdk.GroupOwnerTransferredTips{Group: &open_im_sdk.GroupInfo{}, OpUser: &open_im_sdk.GroupMemberFullInfo{}, NewGroupOwner: &open_im_sdk.GroupMemberFullInfo{}} + if err := setGroupInfo(req.GroupID, GroupOwnerTransferredTips.Group); err != nil { + log.NewError(req.OperationID, "setGroupInfo failed ", err.Error(), req.GroupID) return } - if err := setOpUserInfo(opUserID, groupID, ApplicationProcessedTips.OpUser); err != nil { - log.Error(operationID, "setOpUserInfo failed ", err.Error(), opUserID, groupID, ApplicationProcessedTips.OpUser) + if err := setOpUserInfo(req.OpUserID, req.GroupID, GroupOwnerTransferredTips.OpUser); err != nil { + log.Error(req.OperationID, "setOpUserInfo failed", req.OpUserID, req.GroupID) return } - for _, v := range invitedUserIDList { - var groupMemberInfo open_im_sdk.GroupMemberFullInfo - if err := setGroupMemberInfo(groupID, v, &groupMemberInfo); err != nil { - log.Error(operationID, "setGroupMemberInfo faield ", err.Error(), groupID) - continue - } - ApplicationProcessedTips.InvitedUserList = append(ApplicationProcessedTips.InvitedUserList, &groupMemberInfo) + if err := setGroupMemberInfo(req.GroupID, req.NewOwnerUserID, GroupOwnerTransferredTips.NewGroupOwner); err != nil { + log.Error(req.OperationID, "setGroupMemberInfo failed", req.GroupID, req.NewOwnerUserID) + return } - var tips open_im_sdk.TipsComm - tips.Detail, _ = json.Marshal(ApplicationProcessedTips) - tips.DefaultTips = "MemberInvitedNotification" - var n NotificationMsg - n.SendID = opUserID - n.ContentType = constant.MemberInvitedNotification - n.SessionType = constant.GroupChatType - n.MsgFrom = constant.SysMsgType - n.OperationID = operationID - n.Content, _ = json.Marshal(tips) - n.RecvID = groupID - Notification(&n) + groupNotification(constant.GroupOwnerTransferredNotification, &GroupOwnerTransferredTips, req.OpUserID, "", req.NewOwnerUserID, req.OperationID) } //message MemberKickedTips{ @@ -235,11 +282,11 @@ func MemberInvitedNotification(operationID, groupID, opUserID, reason string, in func MemberKickedNotification(req *pbGroup.KickGroupMemberReq, kickedUserIDList []string) { MemberKickedTips := open_im_sdk.MemberKickedTips{Group: &open_im_sdk.GroupInfo{}, OpUser: &open_im_sdk.GroupMemberFullInfo{}} if err := setGroupInfo(req.GroupID, MemberKickedTips.Group); err != nil { - log.Error(req.OperationID, "setGroupInfo failed ", err.Error(), req.GroupID, MemberKickedTips.Group) + log.Error(req.OperationID, "setGroupInfo failed ", err.Error(), req.GroupID) return } if err := setOpUserInfo(req.OpUserID, req.GroupID, MemberKickedTips.OpUser); err != nil { - log.Error(req.OperationID, "setOpUserInfo failed ", err.Error(), req.OpUserID, req.GroupID, MemberKickedTips.OpUser) + log.Error(req.OperationID, "setOpUserInfo failed ", err.Error(), req.OpUserID) return } for _, v := range kickedUserIDList { @@ -250,60 +297,48 @@ func MemberKickedNotification(req *pbGroup.KickGroupMemberReq, kickedUserIDList } MemberKickedTips.KickedUserList = append(MemberKickedTips.KickedUserList, &groupMemberInfo) } - - var tips open_im_sdk.TipsComm - tips.Detail, _ = json.Marshal(MemberKickedTips) - tips.DefaultTips = "MemberKickedNotification" - var n NotificationMsg - n.SendID = req.OpUserID - n.ContentType = constant.MemberKickedNotification - n.SessionType = constant.GroupChatType - n.MsgFrom = constant.SysMsgType - n.OperationID = req.OperationID - n.Content, _ = json.Marshal(tips) - n.RecvID = req.GroupID - Notification(&n) + groupNotification(constant.MemberKickedNotification, &MemberKickedTips, req.OpUserID, req.GroupID, "", req.OperationID) for _, v := range kickedUserIDList { - m := n - m.SessionType = constant.SingleChatType - m.RecvID = v - Notification(&m) + groupNotification(constant.MemberKickedNotification, &MemberKickedTips, req.OpUserID, "", v, req.OperationID) } } -//message GroupInfoChangedTips{ -// int32 ChangedType = 1; //bitwise operators: 1:groupName; 10:Notification 100:Introduction; 1000:FaceUrl -// GroupInfo Group = 2; -// GroupMemberFullInfo OpUser = 3; +//message MemberInvitedTips{ +// GroupInfo Group = 1; +// GroupMemberFullInfo OpUser = 2; +// GroupMemberFullInfo InvitedUser = 3; +// uint64 OperationTime = 4; //} - -//群信息改变后掉用 -func GroupInfoChangedNotification(operationID, opUserID, groupID string, changedType int32) { - GroupInfoChangedTips := open_im_sdk.GroupInfoChangedTips{Group: &open_im_sdk.GroupInfo{}, OpUser: &open_im_sdk.GroupMemberFullInfo{}} - if err := setGroupInfo(groupID, GroupInfoChangedTips.Group); err != nil { - log.Error(operationID, "setGroupInfo failed ", err.Error(), groupID, GroupInfoChangedTips.Group) +//被邀请进群后调用 +func MemberInvitedNotification(operationID, groupID, opUserID, reason string, invitedUserIDList []string) { + MemberInvitedTips := open_im_sdk.MemberInvitedTips{Group: &open_im_sdk.GroupInfo{}, OpUser: &open_im_sdk.GroupMemberFullInfo{}} + if err := setGroupInfo(groupID, MemberInvitedTips.Group); err != nil { + log.Error(operationID, "setGroupInfo failed ", err.Error(), groupID) return } - if err := setOpUserInfo(opUserID, groupID, GroupInfoChangedTips.OpUser); err != nil { - log.Error(operationID, "setOpUserInfo failed ", err.Error(), opUserID, groupID, GroupInfoChangedTips.OpUser) + if err := setOpUserInfo(opUserID, groupID, MemberInvitedTips.OpUser); err != nil { + log.Error(operationID, "setOpUserInfo failed ", err.Error(), opUserID, groupID) return } - GroupInfoChangedTips.ChangedType = changedType - var tips open_im_sdk.TipsComm - tips.Detail, _ = json.Marshal(GroupInfoChangedTips) - tips.DefaultTips = "GroupInfoChangedNotification" - var n NotificationMsg - n.SendID = opUserID - n.ContentType = constant.GroupInfoChangedNotification - n.SessionType = constant.GroupChatType - n.MsgFrom = constant.SysMsgType - n.OperationID = operationID - n.Content, _ = json.Marshal(tips) - n.RecvID = groupID - Notification(&n) + for _, v := range invitedUserIDList { + var groupMemberInfo open_im_sdk.GroupMemberFullInfo + if err := setGroupMemberInfo(groupID, v, &groupMemberInfo); err != nil { + log.Error(operationID, "setGroupMemberInfo failed ", err.Error(), groupID) + continue + } + MemberInvitedTips.InvitedUserList = append(MemberInvitedTips.InvitedUserList, &groupMemberInfo) + } + + groupNotification(constant.MemberInvitedNotification, &MemberInvitedTips, opUserID, groupID, "", operationID) } +//message GroupInfoChangedTips{ +// int32 ChangedType = 1; //bitwise operators: 1:groupName; 10:Notification 100:Introduction; 1000:FaceUrl +// GroupInfo Group = 2; +// GroupMemberFullInfo OpUser = 3; +//} + //message MemberLeaveTips{ // GroupInfo Group = 1; // GroupMemberFullInfo LeaverUser = 2; @@ -311,35 +346,6 @@ func GroupInfoChangedNotification(operationID, opUserID, groupID string, changed //} //群成员退群后调用 -func MemberLeaveNotification(req *pbGroup.QuitGroupReq) { - MemberLeaveTips := open_im_sdk.MemberLeaveTips{Group: &open_im_sdk.GroupInfo{}, LeaverUser: &open_im_sdk.GroupMemberFullInfo{}} - if err := setGroupInfo(req.GroupID, MemberLeaveTips.Group); err != nil { - log.Error(req.OperationID, "setGroupInfo failed ", err.Error(), req.GroupID, MemberLeaveTips.Group) - return - } - if err := setOpUserInfo(req.OpUserID, req.GroupID, MemberLeaveTips.LeaverUser); err != nil { - log.Error(req.OperationID, "setOpUserInfo failed ", err.Error(), req.OpUserID, req.GroupID, MemberLeaveTips.LeaverUser) - return - } - - var tips open_im_sdk.TipsComm - tips.Detail, _ = json.Marshal(MemberLeaveTips) - tips.DefaultTips = "MemberLeaveNotification" - var n NotificationMsg - n.SendID = req.OpUserID - n.ContentType = constant.MemberLeaveNotification - n.SessionType = constant.GroupChatType - n.MsgFrom = constant.SysMsgType - n.OperationID = req.OperationID - n.Content, _ = json.Marshal(tips) - n.RecvID = req.GroupID - Notification(&n) - - m := n - n.SessionType = constant.SingleChatType - n.RecvID = req.OpUserID - Notification(&m) -} //message MemberEnterTips{ // GroupInfo Group = 1; @@ -348,25 +354,15 @@ func MemberLeaveNotification(req *pbGroup.QuitGroupReq) { //} //群成员主动申请进群,管理员同意后调用, func MemberEnterNotification(req *pbGroup.GroupApplicationResponseReq) { - MemberLeaveTips := open_im_sdk.MemberEnterTips{Group: &open_im_sdk.GroupInfo{}, EntrantUser: &open_im_sdk.GroupMemberFullInfo{}} - if err := setGroupInfo(req.GroupID, MemberLeaveTips.Group); err != nil { - log.Error(req.OperationID, "setGroupInfo failed ", err.Error(), req.GroupID, MemberLeaveTips.Group) + MemberEnterTips := open_im_sdk.MemberEnterTips{Group: &open_im_sdk.GroupInfo{}, EntrantUser: &open_im_sdk.GroupMemberFullInfo{}} + if err := setGroupInfo(req.GroupID, MemberEnterTips.Group); err != nil { + log.Error(req.OperationID, "setGroupInfo failed ", err.Error(), req.GroupID, MemberEnterTips.Group) return } - if err := setOpUserInfo(req.OpUserID, req.GroupID, MemberLeaveTips.EntrantUser); err != nil { - log.Error(req.OperationID, "setOpUserInfo failed ", err.Error(), req.OpUserID, req.GroupID, MemberLeaveTips.EntrantUser) + if err := setOpUserInfo(req.OpUserID, req.GroupID, MemberEnterTips.EntrantUser); err != nil { + log.Error(req.OperationID, "setOpUserInfo failed ", err.Error(), req.OpUserID, req.GroupID, MemberEnterTips.EntrantUser) return } - var tips open_im_sdk.TipsComm - tips.Detail, _ = json.Marshal(MemberLeaveTips) - tips.DefaultTips = "MemberEnterNotification" - var n NotificationMsg - n.SendID = req.OpUserID - n.ContentType = constant.MemberEnterNotification - n.SessionType = constant.GroupChatType - n.MsgFrom = constant.SysMsgType - n.OperationID = req.OperationID - n.Content, _ = json.Marshal(tips) - n.RecvID = req.GroupID - Notification(&n) + groupNotification(constant.MemberEnterNotification, &MemberEnterTips, req.OpUserID, req.GroupID, "", req.OperationID) + } diff --git a/pkg/common/constant/constant.go b/pkg/common/constant/constant.go index d8c3ba66d..532aef20f 100644 --- a/pkg/common/constant/constant.go +++ b/pkg/common/constant/constant.go @@ -46,35 +46,27 @@ const ( //SysRelated - FriendApplicationApprovedNotification = 1201 - FriendApplicationRejectedNotification = 1202 - FriendApplicationAddedNotification = 1203 //AddFriendTip = 202 + FriendApplicationApprovedNotification = 1201 //add_friend_response + FriendApplicationRejectedNotification = 1202 //add_friend_response + FriendApplicationNotification = 1203 //add_friend FriendAddedNotification = 1204 - FriendDeletedNotification = 1205 - FriendInfoChangedNotification = 1206 - BlackAddedNotification = 1207 - BlackDeletedNotification = 1208 + FriendDeletedNotification = 1205 //delete_friend + FriendRemarkSetNotification = 1206 //set_friend_remark? + BlackAddedNotification = 1207 //add_black + BlackDeletedNotification = 1208 //remove_black SelfInfoUpdatedNotification = 1303 //SetSelfInfoTip = 204 GroupCreatedNotification = 1501 - MemberInfoSetNotification = 1501 - JoinGroupApplicationNotification = 1501 - MemberQuitNotification = 1501 - GroupApplicationAcceptedNotification = 1501 - GroupApplicationRejectedNotification = 1501 - GroupOwnerTransferredNotification = 1501 - MemberKickedNotification = 1501 - MemberInvitedNotification = 1501 - - //GroupCreatedNotification = 1501 - //JoinApplicationNotification = 1502 - //ApplicationProcessedNotification = 1503 - //MemberInvitedNotification = 1504 - //MemberKickedNotification = 1505 - //GroupInfoChangedNotification = 1506 - //MemberLeaveNotification = 1507 - //MemberEnterNotification = 1508 + GroupInfoSetNotification = 1502 + JoinGroupApplicationNotification = 1503 + MemberQuitNotification = 1504 + GroupApplicationAcceptedNotification = 1505 + GroupApplicationRejectedNotification = 1506 + GroupOwnerTransferredNotification = 1507 + MemberKickedNotification = 1508 + MemberInvitedNotification = 1509 + MemberEnterNotification = 1510 //MsgFrom UserMsgType = 100 @@ -140,6 +132,9 @@ const ( GroupResponseAgree = 1 GroupResponseRefuse = -1 + FriendResponseAgree = 1 + FriendResponseRefuse = -1 + Male = 1 Female = 2 ) diff --git a/pkg/proto/sdk_ws/ws.pb.go b/pkg/proto/sdk_ws/ws.pb.go index 935b15cee..5fa6688bd 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_1c8466de999dbc0c, []int{0} + return fileDescriptor_ws_4239643aeea36936, []int{0} } func (m *GroupInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupInfo.Unmarshal(m, b) @@ -164,7 +164,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_1c8466de999dbc0c, []int{1} + return fileDescriptor_ws_4239643aeea36936, []int{1} } func (m *GroupMemberFullInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupMemberFullInfo.Unmarshal(m, b) @@ -269,7 +269,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_1c8466de999dbc0c, []int{2} + return fileDescriptor_ws_4239643aeea36936, []int{2} } func (m *PublicUserInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_PublicUserInfo.Unmarshal(m, b) @@ -344,7 +344,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_1c8466de999dbc0c, []int{3} + return fileDescriptor_ws_4239643aeea36936, []int{3} } func (m *UserInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_UserInfo.Unmarshal(m, b) @@ -451,7 +451,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_1c8466de999dbc0c, []int{4} + return fileDescriptor_ws_4239643aeea36936, []int{4} } func (m *FriendInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FriendInfo.Unmarshal(m, b) @@ -536,7 +536,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_1c8466de999dbc0c, []int{5} + return fileDescriptor_ws_4239643aeea36936, []int{5} } func (m *BlackInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_BlackInfo.Unmarshal(m, b) @@ -617,7 +617,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_1c8466de999dbc0c, []int{6} + return fileDescriptor_ws_4239643aeea36936, []int{6} } func (m *GroupRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupRequest.Unmarshal(m, b) @@ -725,7 +725,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_1c8466de999dbc0c, []int{7} + return fileDescriptor_ws_4239643aeea36936, []int{7} } func (m *FriendRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FriendRequest.Unmarshal(m, b) @@ -866,7 +866,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_1c8466de999dbc0c, []int{8} + return fileDescriptor_ws_4239643aeea36936, []int{8} } func (m *PullMessageBySeqListResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_PullMessageBySeqListResp.Unmarshal(m, b) @@ -941,7 +941,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_1c8466de999dbc0c, []int{9} + return fileDescriptor_ws_4239643aeea36936, []int{9} } func (m *PullMessageBySeqListReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_PullMessageBySeqListReq.Unmarshal(m, b) @@ -996,7 +996,7 @@ func (m *PullMessageReq) Reset() { *m = PullMessageReq{} } func (m *PullMessageReq) String() string { return proto.CompactTextString(m) } func (*PullMessageReq) ProtoMessage() {} func (*PullMessageReq) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_1c8466de999dbc0c, []int{10} + return fileDescriptor_ws_4239643aeea36936, []int{10} } func (m *PullMessageReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_PullMessageReq.Unmarshal(m, b) @@ -1060,7 +1060,7 @@ func (m *PullMessageResp) Reset() { *m = PullMessageResp{} } func (m *PullMessageResp) String() string { return proto.CompactTextString(m) } func (*PullMessageResp) ProtoMessage() {} func (*PullMessageResp) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_1c8466de999dbc0c, []int{11} + return fileDescriptor_ws_4239643aeea36936, []int{11} } func (m *PullMessageResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_PullMessageResp.Unmarshal(m, b) @@ -1132,7 +1132,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_1c8466de999dbc0c, []int{12} + return fileDescriptor_ws_4239643aeea36936, []int{12} } func (m *GetMaxAndMinSeqReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetMaxAndMinSeqReq.Unmarshal(m, b) @@ -1164,7 +1164,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_1c8466de999dbc0c, []int{13} + return fileDescriptor_ws_4239643aeea36936, []int{13} } func (m *GetMaxAndMinSeqResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetMaxAndMinSeqResp.Unmarshal(m, b) @@ -1212,7 +1212,7 @@ func (m *GatherFormat) Reset() { *m = GatherFormat{} } func (m *GatherFormat) String() string { return proto.CompactTextString(m) } func (*GatherFormat) ProtoMessage() {} func (*GatherFormat) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_1c8466de999dbc0c, []int{14} + return fileDescriptor_ws_4239643aeea36936, []int{14} } func (m *GatherFormat) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GatherFormat.Unmarshal(m, b) @@ -1259,7 +1259,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_1c8466de999dbc0c, []int{15} + return fileDescriptor_ws_4239643aeea36936, []int{15} } func (m *UserSendMsgResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_UserSendMsgResp.Unmarshal(m, b) @@ -1328,7 +1328,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_1c8466de999dbc0c, []int{16} + return fileDescriptor_ws_4239643aeea36936, []int{16} } func (m *MsgData) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MsgData.Unmarshal(m, b) @@ -1489,7 +1489,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_1c8466de999dbc0c, []int{17} + return fileDescriptor_ws_4239643aeea36936, []int{17} } func (m *OfflinePushInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_OfflinePushInfo.Unmarshal(m, b) @@ -1556,7 +1556,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_1c8466de999dbc0c, []int{18} + return fileDescriptor_ws_4239643aeea36936, []int{18} } func (m *TipsComm) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_TipsComm.Unmarshal(m, b) @@ -1590,543 +1590,597 @@ func (m *TipsComm) GetDefaultTips() string { return "" } -// ////////////////////group///////////////////// -// Actively join the group -type MemberEnterTips struct { - Group *GroupInfo `protobuf:"bytes,1,opt,name=group" json:"group,omitempty"` - EntrantUser *GroupMemberFullInfo `protobuf:"bytes,2,opt,name=entrantUser" json:"entrantUser,omitempty"` - OperationTime int64 `protobuf:"varint,3,opt,name=operationTime" json:"operationTime,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` +// OnGroupCreated() +type GroupCreatedTips struct { + Group *GroupInfo `protobuf:"bytes,1,opt,name=group" json:"group,omitempty"` + OpUser *GroupMemberFullInfo `protobuf:"bytes,2,opt,name=opUser" json:"opUser,omitempty"` + MemberList []*GroupMemberFullInfo `protobuf:"bytes,3,rep,name=memberList" json:"memberList,omitempty"` + OperationTime int64 `protobuf:"varint,4,opt,name=operationTime" json:"operationTime,omitempty"` + GroupOwnerUser *GroupMemberFullInfo `protobuf:"bytes,5,opt,name=groupOwnerUser" json:"groupOwnerUser,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -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_1c8466de999dbc0c, []int{19} +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_4239643aeea36936, []int{19} } -func (m *MemberEnterTips) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_MemberEnterTips.Unmarshal(m, b) +func (m *GroupCreatedTips) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GroupCreatedTips.Unmarshal(m, b) } -func (m *MemberEnterTips) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_MemberEnterTips.Marshal(b, m, deterministic) +func (m *GroupCreatedTips) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GroupCreatedTips.Marshal(b, m, deterministic) } -func (dst *MemberEnterTips) XXX_Merge(src proto.Message) { - xxx_messageInfo_MemberEnterTips.Merge(dst, src) +func (dst *GroupCreatedTips) XXX_Merge(src proto.Message) { + xxx_messageInfo_GroupCreatedTips.Merge(dst, src) } -func (m *MemberEnterTips) XXX_Size() int { - return xxx_messageInfo_MemberEnterTips.Size(m) +func (m *GroupCreatedTips) XXX_Size() int { + return xxx_messageInfo_GroupCreatedTips.Size(m) } -func (m *MemberEnterTips) XXX_DiscardUnknown() { - xxx_messageInfo_MemberEnterTips.DiscardUnknown(m) +func (m *GroupCreatedTips) XXX_DiscardUnknown() { + xxx_messageInfo_GroupCreatedTips.DiscardUnknown(m) } -var xxx_messageInfo_MemberEnterTips proto.InternalMessageInfo +var xxx_messageInfo_GroupCreatedTips proto.InternalMessageInfo -func (m *MemberEnterTips) GetGroup() *GroupInfo { +func (m *GroupCreatedTips) GetGroup() *GroupInfo { if m != nil { return m.Group } return nil } -func (m *MemberEnterTips) GetEntrantUser() *GroupMemberFullInfo { +func (m *GroupCreatedTips) GetOpUser() *GroupMemberFullInfo { if m != nil { - return m.EntrantUser + return m.OpUser } return nil } -func (m *MemberEnterTips) GetOperationTime() int64 { +func (m *GroupCreatedTips) GetMemberList() []*GroupMemberFullInfo { + if m != nil { + return m.MemberList + } + return nil +} + +func (m *GroupCreatedTips) GetOperationTime() int64 { if m != nil { return m.OperationTime } return 0 } -// Actively leave the group -type MemberLeaveTips struct { - Group *GroupInfo `protobuf:"bytes,1,opt,name=group" json:"group,omitempty"` - LeaverUser *GroupMemberFullInfo `protobuf:"bytes,2,opt,name=leaverUser" json:"leaverUser,omitempty"` - OperationTime int64 `protobuf:"varint,3,opt,name=operationTime" json:"operationTime,omitempty"` +func (m *GroupCreatedTips) GetGroupOwnerUser() *GroupMemberFullInfo { + if m != nil { + return m.GroupOwnerUser + } + return nil +} + +// OnGroupInfoSet() +type GroupInfoSetTips struct { + OpUser *GroupMemberFullInfo `protobuf:"bytes,1,opt,name=opUser" json:"opUser,omitempty"` + MuteTime int64 `protobuf:"varint,2,opt,name=muteTime" json:"muteTime,omitempty"` + Group *GroupInfo `protobuf:"bytes,3,opt,name=group" json:"group,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` } -func (m *MemberLeaveTips) Reset() { *m = MemberLeaveTips{} } -func (m *MemberLeaveTips) String() string { return proto.CompactTextString(m) } -func (*MemberLeaveTips) ProtoMessage() {} -func (*MemberLeaveTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_1c8466de999dbc0c, []int{20} +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_4239643aeea36936, []int{20} } -func (m *MemberLeaveTips) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_MemberLeaveTips.Unmarshal(m, b) +func (m *GroupInfoSetTips) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GroupInfoSetTips.Unmarshal(m, b) } -func (m *MemberLeaveTips) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_MemberLeaveTips.Marshal(b, m, deterministic) +func (m *GroupInfoSetTips) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GroupInfoSetTips.Marshal(b, m, deterministic) } -func (dst *MemberLeaveTips) XXX_Merge(src proto.Message) { - xxx_messageInfo_MemberLeaveTips.Merge(dst, src) +func (dst *GroupInfoSetTips) XXX_Merge(src proto.Message) { + xxx_messageInfo_GroupInfoSetTips.Merge(dst, src) } -func (m *MemberLeaveTips) XXX_Size() int { - return xxx_messageInfo_MemberLeaveTips.Size(m) +func (m *GroupInfoSetTips) XXX_Size() int { + return xxx_messageInfo_GroupInfoSetTips.Size(m) } -func (m *MemberLeaveTips) XXX_DiscardUnknown() { - xxx_messageInfo_MemberLeaveTips.DiscardUnknown(m) +func (m *GroupInfoSetTips) XXX_DiscardUnknown() { + xxx_messageInfo_GroupInfoSetTips.DiscardUnknown(m) } -var xxx_messageInfo_MemberLeaveTips proto.InternalMessageInfo +var xxx_messageInfo_GroupInfoSetTips proto.InternalMessageInfo -func (m *MemberLeaveTips) GetGroup() *GroupInfo { +func (m *GroupInfoSetTips) GetOpUser() *GroupMemberFullInfo { if m != nil { - return m.Group + return m.OpUser } return nil } -func (m *MemberLeaveTips) GetLeaverUser() *GroupMemberFullInfo { +func (m *GroupInfoSetTips) GetMuteTime() int64 { if m != nil { - return m.LeaverUser + return m.MuteTime } - return nil + return 0 } -func (m *MemberLeaveTips) GetOperationTime() int64 { +func (m *GroupInfoSetTips) GetGroup() *GroupInfo { if m != nil { - return m.OperationTime + return m.Group } - return 0 + return nil } -type MemberInvitedTips struct { - Group *GroupInfo `protobuf:"bytes,1,opt,name=group" json:"group,omitempty"` - OpUser *GroupMemberFullInfo `protobuf:"bytes,2,opt,name=opUser" json:"opUser,omitempty"` - InvitedUserList []*GroupMemberFullInfo `protobuf:"bytes,3,rep,name=invitedUserList" json:"invitedUserList,omitempty"` - OperationTime int64 `protobuf:"varint,4,opt,name=operationTime" json:"operationTime,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` +// OnJoinGroupApplication() +type JoinGroupApplicationTips struct { + Group *GroupInfo `protobuf:"bytes,1,opt,name=group" json:"group,omitempty"` + Applicant *PublicUserInfo `protobuf:"bytes,2,opt,name=applicant" json:"applicant,omitempty"` + ReqMsg string `protobuf:"bytes,3,opt,name=reqMsg" json:"reqMsg,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -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_1c8466de999dbc0c, []int{21} +func (m *JoinGroupApplicationTips) Reset() { *m = JoinGroupApplicationTips{} } +func (m *JoinGroupApplicationTips) String() string { return proto.CompactTextString(m) } +func (*JoinGroupApplicationTips) ProtoMessage() {} +func (*JoinGroupApplicationTips) Descriptor() ([]byte, []int) { + return fileDescriptor_ws_4239643aeea36936, []int{21} } -func (m *MemberInvitedTips) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_MemberInvitedTips.Unmarshal(m, b) +func (m *JoinGroupApplicationTips) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_JoinGroupApplicationTips.Unmarshal(m, b) } -func (m *MemberInvitedTips) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_MemberInvitedTips.Marshal(b, m, deterministic) +func (m *JoinGroupApplicationTips) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_JoinGroupApplicationTips.Marshal(b, m, deterministic) } -func (dst *MemberInvitedTips) XXX_Merge(src proto.Message) { - xxx_messageInfo_MemberInvitedTips.Merge(dst, src) +func (dst *JoinGroupApplicationTips) XXX_Merge(src proto.Message) { + xxx_messageInfo_JoinGroupApplicationTips.Merge(dst, src) } -func (m *MemberInvitedTips) XXX_Size() int { - return xxx_messageInfo_MemberInvitedTips.Size(m) +func (m *JoinGroupApplicationTips) XXX_Size() int { + return xxx_messageInfo_JoinGroupApplicationTips.Size(m) } -func (m *MemberInvitedTips) XXX_DiscardUnknown() { - xxx_messageInfo_MemberInvitedTips.DiscardUnknown(m) +func (m *JoinGroupApplicationTips) XXX_DiscardUnknown() { + xxx_messageInfo_JoinGroupApplicationTips.DiscardUnknown(m) } -var xxx_messageInfo_MemberInvitedTips proto.InternalMessageInfo +var xxx_messageInfo_JoinGroupApplicationTips proto.InternalMessageInfo -func (m *MemberInvitedTips) GetGroup() *GroupInfo { +func (m *JoinGroupApplicationTips) GetGroup() *GroupInfo { if m != nil { return m.Group } return nil } -func (m *MemberInvitedTips) GetOpUser() *GroupMemberFullInfo { - if m != nil { - return m.OpUser - } - return nil -} - -func (m *MemberInvitedTips) GetInvitedUserList() []*GroupMemberFullInfo { +func (m *JoinGroupApplicationTips) GetApplicant() *PublicUserInfo { if m != nil { - return m.InvitedUserList + return m.Applicant } return nil } -func (m *MemberInvitedTips) GetOperationTime() int64 { +func (m *JoinGroupApplicationTips) GetReqMsg() string { if m != nil { - return m.OperationTime + return m.ReqMsg } - return 0 + return "" } -type MemberKickedTips struct { - Group *GroupInfo `protobuf:"bytes,1,opt,name=group" json:"group,omitempty"` - OpUser *GroupMemberFullInfo `protobuf:"bytes,2,opt,name=opUser" json:"opUser,omitempty"` - KickedUserList []*GroupMemberFullInfo `protobuf:"bytes,3,rep,name=kickedUserList" json:"kickedUserList,omitempty"` - OperationTime int64 `protobuf:"varint,4,opt,name=operationTime" json:"operationTime,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` +// OnQuitGroup() +// Actively leave the group +type MemberQuitTips struct { + Group *GroupInfo `protobuf:"bytes,1,opt,name=group" json:"group,omitempty"` + QuitUser *GroupMemberFullInfo `protobuf:"bytes,2,opt,name=quitUser" json:"quitUser,omitempty"` + OperationTime int64 `protobuf:"varint,3,opt,name=operationTime" json:"operationTime,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -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_1c8466de999dbc0c, []int{22} +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_4239643aeea36936, []int{22} } -func (m *MemberKickedTips) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_MemberKickedTips.Unmarshal(m, b) +func (m *MemberQuitTips) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_MemberQuitTips.Unmarshal(m, b) } -func (m *MemberKickedTips) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_MemberKickedTips.Marshal(b, m, deterministic) +func (m *MemberQuitTips) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_MemberQuitTips.Marshal(b, m, deterministic) } -func (dst *MemberKickedTips) XXX_Merge(src proto.Message) { - xxx_messageInfo_MemberKickedTips.Merge(dst, src) +func (dst *MemberQuitTips) XXX_Merge(src proto.Message) { + xxx_messageInfo_MemberQuitTips.Merge(dst, src) } -func (m *MemberKickedTips) XXX_Size() int { - return xxx_messageInfo_MemberKickedTips.Size(m) +func (m *MemberQuitTips) XXX_Size() int { + return xxx_messageInfo_MemberQuitTips.Size(m) } -func (m *MemberKickedTips) XXX_DiscardUnknown() { - xxx_messageInfo_MemberKickedTips.DiscardUnknown(m) +func (m *MemberQuitTips) XXX_DiscardUnknown() { + xxx_messageInfo_MemberQuitTips.DiscardUnknown(m) } -var xxx_messageInfo_MemberKickedTips proto.InternalMessageInfo +var xxx_messageInfo_MemberQuitTips proto.InternalMessageInfo -func (m *MemberKickedTips) GetGroup() *GroupInfo { +func (m *MemberQuitTips) GetGroup() *GroupInfo { if m != nil { return m.Group } return nil } -func (m *MemberKickedTips) GetOpUser() *GroupMemberFullInfo { - if m != nil { - return m.OpUser - } - return nil -} - -func (m *MemberKickedTips) GetKickedUserList() []*GroupMemberFullInfo { +func (m *MemberQuitTips) GetQuitUser() *GroupMemberFullInfo { if m != nil { - return m.KickedUserList + return m.QuitUser } return nil } -func (m *MemberKickedTips) GetOperationTime() int64 { +func (m *MemberQuitTips) GetOperationTime() int64 { if m != nil { return m.OperationTime } return 0 } -type MemberInfoChangedTips struct { - ChangeType int32 `protobuf:"varint,1,opt,name=changeType" json:"changeType,omitempty"` +// OnApplicationGroupAccepted() +type GroupApplicationAcceptedTips struct { + Group *GroupInfo `protobuf:"bytes,1,opt,name=group" json:"group,omitempty"` OpUser *GroupMemberFullInfo `protobuf:"bytes,2,opt,name=opUser" json:"opUser,omitempty"` - FinalInfo *GroupMemberFullInfo `protobuf:"bytes,3,opt,name=finalInfo" json:"finalInfo,omitempty"` - MuteTime int64 `protobuf:"varint,4,opt,name=muteTime" json:"muteTime,omitempty"` - Group *GroupInfo `protobuf:"bytes,5,opt,name=group" json:"group,omitempty"` + HandleMsg string `protobuf:"bytes,4,opt,name=handleMsg" json:"handleMsg,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` } -func (m *MemberInfoChangedTips) Reset() { *m = MemberInfoChangedTips{} } -func (m *MemberInfoChangedTips) String() string { return proto.CompactTextString(m) } -func (*MemberInfoChangedTips) ProtoMessage() {} -func (*MemberInfoChangedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_1c8466de999dbc0c, []int{23} +func (m *GroupApplicationAcceptedTips) Reset() { *m = GroupApplicationAcceptedTips{} } +func (m *GroupApplicationAcceptedTips) String() string { return proto.CompactTextString(m) } +func (*GroupApplicationAcceptedTips) ProtoMessage() {} +func (*GroupApplicationAcceptedTips) Descriptor() ([]byte, []int) { + return fileDescriptor_ws_4239643aeea36936, []int{23} } -func (m *MemberInfoChangedTips) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_MemberInfoChangedTips.Unmarshal(m, b) +func (m *GroupApplicationAcceptedTips) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GroupApplicationAcceptedTips.Unmarshal(m, b) } -func (m *MemberInfoChangedTips) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_MemberInfoChangedTips.Marshal(b, m, deterministic) +func (m *GroupApplicationAcceptedTips) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GroupApplicationAcceptedTips.Marshal(b, m, deterministic) } -func (dst *MemberInfoChangedTips) XXX_Merge(src proto.Message) { - xxx_messageInfo_MemberInfoChangedTips.Merge(dst, src) +func (dst *GroupApplicationAcceptedTips) XXX_Merge(src proto.Message) { + xxx_messageInfo_GroupApplicationAcceptedTips.Merge(dst, src) } -func (m *MemberInfoChangedTips) XXX_Size() int { - return xxx_messageInfo_MemberInfoChangedTips.Size(m) +func (m *GroupApplicationAcceptedTips) XXX_Size() int { + return xxx_messageInfo_GroupApplicationAcceptedTips.Size(m) } -func (m *MemberInfoChangedTips) XXX_DiscardUnknown() { - xxx_messageInfo_MemberInfoChangedTips.DiscardUnknown(m) +func (m *GroupApplicationAcceptedTips) XXX_DiscardUnknown() { + xxx_messageInfo_GroupApplicationAcceptedTips.DiscardUnknown(m) } -var xxx_messageInfo_MemberInfoChangedTips proto.InternalMessageInfo +var xxx_messageInfo_GroupApplicationAcceptedTips proto.InternalMessageInfo -func (m *MemberInfoChangedTips) GetChangeType() int32 { +func (m *GroupApplicationAcceptedTips) GetGroup() *GroupInfo { if m != nil { - return m.ChangeType + return m.Group } - return 0 + return nil } -func (m *MemberInfoChangedTips) GetOpUser() *GroupMemberFullInfo { +func (m *GroupApplicationAcceptedTips) GetOpUser() *GroupMemberFullInfo { if m != nil { return m.OpUser } return nil } -func (m *MemberInfoChangedTips) GetFinalInfo() *GroupMemberFullInfo { +func (m *GroupApplicationAcceptedTips) GetHandleMsg() string { if m != nil { - return m.FinalInfo + return m.HandleMsg } - return nil + return "" +} + +// OnApplicationGroupRejected() +type GroupApplicationRejectedTips struct { + Group *GroupInfo `protobuf:"bytes,1,opt,name=group" json:"group,omitempty"` + OpUser *GroupMemberFullInfo `protobuf:"bytes,2,opt,name=opUser" json:"opUser,omitempty"` + HandleMsg string `protobuf:"bytes,4,opt,name=handleMsg" json:"handleMsg,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *GroupApplicationRejectedTips) Reset() { *m = GroupApplicationRejectedTips{} } +func (m *GroupApplicationRejectedTips) String() string { return proto.CompactTextString(m) } +func (*GroupApplicationRejectedTips) ProtoMessage() {} +func (*GroupApplicationRejectedTips) Descriptor() ([]byte, []int) { + return fileDescriptor_ws_4239643aeea36936, []int{24} +} +func (m *GroupApplicationRejectedTips) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GroupApplicationRejectedTips.Unmarshal(m, b) +} +func (m *GroupApplicationRejectedTips) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GroupApplicationRejectedTips.Marshal(b, m, deterministic) +} +func (dst *GroupApplicationRejectedTips) XXX_Merge(src proto.Message) { + xxx_messageInfo_GroupApplicationRejectedTips.Merge(dst, src) +} +func (m *GroupApplicationRejectedTips) XXX_Size() int { + return xxx_messageInfo_GroupApplicationRejectedTips.Size(m) +} +func (m *GroupApplicationRejectedTips) XXX_DiscardUnknown() { + xxx_messageInfo_GroupApplicationRejectedTips.DiscardUnknown(m) } -func (m *MemberInfoChangedTips) GetMuteTime() int64 { +var xxx_messageInfo_GroupApplicationRejectedTips proto.InternalMessageInfo + +func (m *GroupApplicationRejectedTips) GetGroup() *GroupInfo { if m != nil { - return m.MuteTime + return m.Group } - return 0 + return nil } -func (m *MemberInfoChangedTips) GetGroup() *GroupInfo { +func (m *GroupApplicationRejectedTips) GetOpUser() *GroupMemberFullInfo { if m != nil { - return m.Group + return m.OpUser } return nil } -type GroupCreatedTips struct { - Group *GroupInfo `protobuf:"bytes,1,opt,name=group" json:"group,omitempty"` - Creator *GroupMemberFullInfo `protobuf:"bytes,2,opt,name=creator" json:"creator,omitempty"` - MemberList []*GroupMemberFullInfo `protobuf:"bytes,3,rep,name=memberList" json:"memberList,omitempty"` - OperationTime int64 `protobuf:"varint,4,opt,name=operationTime" json:"operationTime,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` +func (m *GroupApplicationRejectedTips) GetHandleMsg() string { + if m != nil { + return m.HandleMsg + } + return "" } -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_1c8466de999dbc0c, []int{24} +// OnTransferGroupOwner() +type GroupOwnerTransferredTips struct { + Group *GroupInfo `protobuf:"bytes,1,opt,name=group" json:"group,omitempty"` + OpUser *GroupMemberFullInfo `protobuf:"bytes,2,opt,name=opUser" json:"opUser,omitempty"` + NewGroupOwner *GroupMemberFullInfo `protobuf:"bytes,3,opt,name=newGroupOwner" json:"newGroupOwner,omitempty"` + OperationTime int64 `protobuf:"varint,4,opt,name=operationTime" json:"operationTime,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (m *GroupCreatedTips) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_GroupCreatedTips.Unmarshal(m, b) + +func (m *GroupOwnerTransferredTips) Reset() { *m = GroupOwnerTransferredTips{} } +func (m *GroupOwnerTransferredTips) String() string { return proto.CompactTextString(m) } +func (*GroupOwnerTransferredTips) ProtoMessage() {} +func (*GroupOwnerTransferredTips) Descriptor() ([]byte, []int) { + return fileDescriptor_ws_4239643aeea36936, []int{25} } -func (m *GroupCreatedTips) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_GroupCreatedTips.Marshal(b, m, deterministic) +func (m *GroupOwnerTransferredTips) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GroupOwnerTransferredTips.Unmarshal(m, b) } -func (dst *GroupCreatedTips) XXX_Merge(src proto.Message) { - xxx_messageInfo_GroupCreatedTips.Merge(dst, src) +func (m *GroupOwnerTransferredTips) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GroupOwnerTransferredTips.Marshal(b, m, deterministic) } -func (m *GroupCreatedTips) XXX_Size() int { - return xxx_messageInfo_GroupCreatedTips.Size(m) +func (dst *GroupOwnerTransferredTips) XXX_Merge(src proto.Message) { + xxx_messageInfo_GroupOwnerTransferredTips.Merge(dst, src) } -func (m *GroupCreatedTips) XXX_DiscardUnknown() { - xxx_messageInfo_GroupCreatedTips.DiscardUnknown(m) +func (m *GroupOwnerTransferredTips) XXX_Size() int { + return xxx_messageInfo_GroupOwnerTransferredTips.Size(m) +} +func (m *GroupOwnerTransferredTips) XXX_DiscardUnknown() { + xxx_messageInfo_GroupOwnerTransferredTips.DiscardUnknown(m) } -var xxx_messageInfo_GroupCreatedTips proto.InternalMessageInfo +var xxx_messageInfo_GroupOwnerTransferredTips proto.InternalMessageInfo -func (m *GroupCreatedTips) GetGroup() *GroupInfo { +func (m *GroupOwnerTransferredTips) GetGroup() *GroupInfo { if m != nil { return m.Group } return nil } -func (m *GroupCreatedTips) GetCreator() *GroupMemberFullInfo { +func (m *GroupOwnerTransferredTips) GetOpUser() *GroupMemberFullInfo { if m != nil { - return m.Creator + return m.OpUser } return nil } -func (m *GroupCreatedTips) GetMemberList() []*GroupMemberFullInfo { +func (m *GroupOwnerTransferredTips) GetNewGroupOwner() *GroupMemberFullInfo { if m != nil { - return m.MemberList + return m.NewGroupOwner } return nil } -func (m *GroupCreatedTips) GetOperationTime() int64 { +func (m *GroupOwnerTransferredTips) GetOperationTime() int64 { if m != nil { return m.OperationTime } return 0 } -type GroupInfoChangedTips struct { - ChangedType int32 `protobuf:"varint,1,opt,name=changedType" json:"changedType,omitempty"` - Group *GroupInfo `protobuf:"bytes,2,opt,name=group" json:"group,omitempty"` - OpUser *GroupMemberFullInfo `protobuf:"bytes,3,opt,name=opUser" json:"opUser,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` +// OnMemberKicked() +type MemberKickedTips struct { + Group *GroupInfo `protobuf:"bytes,1,opt,name=group" json:"group,omitempty"` + OpUser *GroupMemberFullInfo `protobuf:"bytes,2,opt,name=opUser" json:"opUser,omitempty"` + KickedUserList []*GroupMemberFullInfo `protobuf:"bytes,3,rep,name=kickedUserList" json:"kickedUserList,omitempty"` + OperationTime int64 `protobuf:"varint,4,opt,name=operationTime" json:"operationTime,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (m *GroupInfoChangedTips) Reset() { *m = GroupInfoChangedTips{} } -func (m *GroupInfoChangedTips) String() string { return proto.CompactTextString(m) } -func (*GroupInfoChangedTips) ProtoMessage() {} -func (*GroupInfoChangedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_1c8466de999dbc0c, []int{25} +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_4239643aeea36936, []int{26} } -func (m *GroupInfoChangedTips) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_GroupInfoChangedTips.Unmarshal(m, b) +func (m *MemberKickedTips) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_MemberKickedTips.Unmarshal(m, b) } -func (m *GroupInfoChangedTips) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_GroupInfoChangedTips.Marshal(b, m, deterministic) +func (m *MemberKickedTips) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_MemberKickedTips.Marshal(b, m, deterministic) } -func (dst *GroupInfoChangedTips) XXX_Merge(src proto.Message) { - xxx_messageInfo_GroupInfoChangedTips.Merge(dst, src) +func (dst *MemberKickedTips) XXX_Merge(src proto.Message) { + xxx_messageInfo_MemberKickedTips.Merge(dst, src) } -func (m *GroupInfoChangedTips) XXX_Size() int { - return xxx_messageInfo_GroupInfoChangedTips.Size(m) +func (m *MemberKickedTips) XXX_Size() int { + return xxx_messageInfo_MemberKickedTips.Size(m) } -func (m *GroupInfoChangedTips) XXX_DiscardUnknown() { - xxx_messageInfo_GroupInfoChangedTips.DiscardUnknown(m) +func (m *MemberKickedTips) XXX_DiscardUnknown() { + xxx_messageInfo_MemberKickedTips.DiscardUnknown(m) } -var xxx_messageInfo_GroupInfoChangedTips proto.InternalMessageInfo +var xxx_messageInfo_MemberKickedTips proto.InternalMessageInfo -func (m *GroupInfoChangedTips) GetChangedType() int32 { +func (m *MemberKickedTips) GetGroup() *GroupInfo { if m != nil { - return m.ChangedType + return m.Group } - return 0 + return nil } -func (m *GroupInfoChangedTips) GetGroup() *GroupInfo { +func (m *MemberKickedTips) GetOpUser() *GroupMemberFullInfo { if m != nil { - return m.Group + return m.OpUser } return nil } -func (m *GroupInfoChangedTips) GetOpUser() *GroupMemberFullInfo { +func (m *MemberKickedTips) GetKickedUserList() []*GroupMemberFullInfo { if m != nil { - return m.OpUser + return m.KickedUserList } return nil } -type JoinGroupApplicationTips struct { - Group *GroupInfo `protobuf:"bytes,1,opt,name=group" json:"group,omitempty"` - Applicant *PublicUserInfo `protobuf:"bytes,2,opt,name=applicant" json:"applicant,omitempty"` - Reason string `protobuf:"bytes,3,opt,name=reason" json:"reason,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` +func (m *MemberKickedTips) GetOperationTime() int64 { + if m != nil { + return m.OperationTime + } + return 0 } -func (m *JoinGroupApplicationTips) Reset() { *m = JoinGroupApplicationTips{} } -func (m *JoinGroupApplicationTips) String() string { return proto.CompactTextString(m) } -func (*JoinGroupApplicationTips) ProtoMessage() {} -func (*JoinGroupApplicationTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_1c8466de999dbc0c, []int{26} +// OnMemberInvited() +type MemberInvitedTips struct { + Group *GroupInfo `protobuf:"bytes,1,opt,name=group" json:"group,omitempty"` + OpUser *GroupMemberFullInfo `protobuf:"bytes,2,opt,name=opUser" json:"opUser,omitempty"` + InvitedUserList []*GroupMemberFullInfo `protobuf:"bytes,3,rep,name=invitedUserList" json:"invitedUserList,omitempty"` + OperationTime int64 `protobuf:"varint,4,opt,name=operationTime" json:"operationTime,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (m *JoinGroupApplicationTips) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_JoinGroupApplicationTips.Unmarshal(m, b) + +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_4239643aeea36936, []int{27} } -func (m *JoinGroupApplicationTips) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_JoinGroupApplicationTips.Marshal(b, m, deterministic) +func (m *MemberInvitedTips) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_MemberInvitedTips.Unmarshal(m, b) } -func (dst *JoinGroupApplicationTips) XXX_Merge(src proto.Message) { - xxx_messageInfo_JoinGroupApplicationTips.Merge(dst, src) +func (m *MemberInvitedTips) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_MemberInvitedTips.Marshal(b, m, deterministic) } -func (m *JoinGroupApplicationTips) XXX_Size() int { - return xxx_messageInfo_JoinGroupApplicationTips.Size(m) +func (dst *MemberInvitedTips) XXX_Merge(src proto.Message) { + xxx_messageInfo_MemberInvitedTips.Merge(dst, src) } -func (m *JoinGroupApplicationTips) XXX_DiscardUnknown() { - xxx_messageInfo_JoinGroupApplicationTips.DiscardUnknown(m) +func (m *MemberInvitedTips) XXX_Size() int { + return xxx_messageInfo_MemberInvitedTips.Size(m) +} +func (m *MemberInvitedTips) XXX_DiscardUnknown() { + xxx_messageInfo_MemberInvitedTips.DiscardUnknown(m) } -var xxx_messageInfo_JoinGroupApplicationTips proto.InternalMessageInfo +var xxx_messageInfo_MemberInvitedTips proto.InternalMessageInfo -func (m *JoinGroupApplicationTips) GetGroup() *GroupInfo { +func (m *MemberInvitedTips) GetGroup() *GroupInfo { if m != nil { return m.Group } return nil } -func (m *JoinGroupApplicationTips) GetApplicant() *PublicUserInfo { +func (m *MemberInvitedTips) GetOpUser() *GroupMemberFullInfo { if m != nil { - return m.Applicant + return m.OpUser + } + return nil +} + +func (m *MemberInvitedTips) GetInvitedUserList() []*GroupMemberFullInfo { + if m != nil { + return m.InvitedUserList } return nil } -func (m *JoinGroupApplicationTips) GetReason() string { +func (m *MemberInvitedTips) GetOperationTime() int64 { if m != nil { - return m.Reason + return m.OperationTime } - return "" + return 0 } -type ApplicationProcessedTips struct { +// Actively join the group +type MemberEnterTips struct { Group *GroupInfo `protobuf:"bytes,1,opt,name=group" json:"group,omitempty"` - OpUser *GroupMemberFullInfo `protobuf:"bytes,2,opt,name=opUser" json:"opUser,omitempty"` - Result int32 `protobuf:"varint,3,opt,name=result" json:"result,omitempty"` - Reason string `protobuf:"bytes,4,opt,name=reason" json:"reason,omitempty"` + EntrantUser *GroupMemberFullInfo `protobuf:"bytes,2,opt,name=entrantUser" json:"entrantUser,omitempty"` + OperationTime int64 `protobuf:"varint,3,opt,name=operationTime" json:"operationTime,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` } -func (m *ApplicationProcessedTips) Reset() { *m = ApplicationProcessedTips{} } -func (m *ApplicationProcessedTips) String() string { return proto.CompactTextString(m) } -func (*ApplicationProcessedTips) ProtoMessage() {} -func (*ApplicationProcessedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_1c8466de999dbc0c, []int{27} +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_4239643aeea36936, []int{28} } -func (m *ApplicationProcessedTips) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_ApplicationProcessedTips.Unmarshal(m, b) +func (m *MemberEnterTips) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_MemberEnterTips.Unmarshal(m, b) } -func (m *ApplicationProcessedTips) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_ApplicationProcessedTips.Marshal(b, m, deterministic) +func (m *MemberEnterTips) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_MemberEnterTips.Marshal(b, m, deterministic) } -func (dst *ApplicationProcessedTips) XXX_Merge(src proto.Message) { - xxx_messageInfo_ApplicationProcessedTips.Merge(dst, src) +func (dst *MemberEnterTips) XXX_Merge(src proto.Message) { + xxx_messageInfo_MemberEnterTips.Merge(dst, src) } -func (m *ApplicationProcessedTips) XXX_Size() int { - return xxx_messageInfo_ApplicationProcessedTips.Size(m) +func (m *MemberEnterTips) XXX_Size() int { + return xxx_messageInfo_MemberEnterTips.Size(m) } -func (m *ApplicationProcessedTips) XXX_DiscardUnknown() { - xxx_messageInfo_ApplicationProcessedTips.DiscardUnknown(m) +func (m *MemberEnterTips) XXX_DiscardUnknown() { + xxx_messageInfo_MemberEnterTips.DiscardUnknown(m) } -var xxx_messageInfo_ApplicationProcessedTips proto.InternalMessageInfo +var xxx_messageInfo_MemberEnterTips proto.InternalMessageInfo -func (m *ApplicationProcessedTips) GetGroup() *GroupInfo { +func (m *MemberEnterTips) GetGroup() *GroupInfo { if m != nil { return m.Group } return nil } -func (m *ApplicationProcessedTips) GetOpUser() *GroupMemberFullInfo { +func (m *MemberEnterTips) GetEntrantUser() *GroupMemberFullInfo { if m != nil { - return m.OpUser + return m.EntrantUser } return nil } -func (m *ApplicationProcessedTips) GetResult() int32 { +func (m *MemberEnterTips) GetOperationTime() int64 { if m != nil { - return m.Result + return m.OperationTime } return 0 } -func (m *ApplicationProcessedTips) GetReason() string { - if m != nil { - return m.Reason - } - return "" -} - type FriendApplication struct { AddTime int64 `protobuf:"varint,1,opt,name=addTime" json:"addTime,omitempty"` AddSource string `protobuf:"bytes,2,opt,name=addSource" json:"addSource,omitempty"` @@ -2140,7 +2194,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_1c8466de999dbc0c, []int{28} + return fileDescriptor_ws_4239643aeea36936, []int{29} } func (m *FriendApplication) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FriendApplication.Unmarshal(m, b) @@ -2193,7 +2247,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_1c8466de999dbc0c, []int{29} + return fileDescriptor_ws_4239643aeea36936, []int{30} } func (m *FromToUserID) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FromToUserID.Unmarshal(m, b) @@ -2239,7 +2293,7 @@ func (m *FriendApplicationAddedTips) Reset() { *m = FriendApplicationAdd func (m *FriendApplicationAddedTips) String() string { return proto.CompactTextString(m) } func (*FriendApplicationAddedTips) ProtoMessage() {} func (*FriendApplicationAddedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_1c8466de999dbc0c, []int{30} + return fileDescriptor_ws_4239643aeea36936, []int{31} } func (m *FriendApplicationAddedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FriendApplicationAddedTips.Unmarshal(m, b) @@ -2267,50 +2321,97 @@ func (m *FriendApplicationAddedTips) GetFromToUserID() *FromToUserID { } // FromUserID accept or reject ToUserID -type FriendApplicationProcessedTips struct { +type FriendApplicationApprovedTips struct { FromToUserID *FromToUserID `protobuf:"bytes,1,opt,name=fromToUserID" json:"fromToUserID,omitempty"` - HandleResult int32 `protobuf:"varint,2,opt,name=handleResult" json:"handleResult,omitempty"` + HandleMsg string `protobuf:"bytes,2,opt,name=handleMsg" json:"handleMsg,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` } -func (m *FriendApplicationProcessedTips) Reset() { *m = FriendApplicationProcessedTips{} } -func (m *FriendApplicationProcessedTips) String() string { return proto.CompactTextString(m) } -func (*FriendApplicationProcessedTips) ProtoMessage() {} -func (*FriendApplicationProcessedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_1c8466de999dbc0c, []int{31} +func (m *FriendApplicationApprovedTips) Reset() { *m = FriendApplicationApprovedTips{} } +func (m *FriendApplicationApprovedTips) String() string { return proto.CompactTextString(m) } +func (*FriendApplicationApprovedTips) ProtoMessage() {} +func (*FriendApplicationApprovedTips) Descriptor() ([]byte, []int) { + return fileDescriptor_ws_4239643aeea36936, []int{32} } -func (m *FriendApplicationProcessedTips) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_FriendApplicationProcessedTips.Unmarshal(m, b) +func (m *FriendApplicationApprovedTips) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_FriendApplicationApprovedTips.Unmarshal(m, b) } -func (m *FriendApplicationProcessedTips) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_FriendApplicationProcessedTips.Marshal(b, m, deterministic) +func (m *FriendApplicationApprovedTips) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_FriendApplicationApprovedTips.Marshal(b, m, deterministic) } -func (dst *FriendApplicationProcessedTips) XXX_Merge(src proto.Message) { - xxx_messageInfo_FriendApplicationProcessedTips.Merge(dst, src) +func (dst *FriendApplicationApprovedTips) XXX_Merge(src proto.Message) { + xxx_messageInfo_FriendApplicationApprovedTips.Merge(dst, src) } -func (m *FriendApplicationProcessedTips) XXX_Size() int { - return xxx_messageInfo_FriendApplicationProcessedTips.Size(m) +func (m *FriendApplicationApprovedTips) XXX_Size() int { + return xxx_messageInfo_FriendApplicationApprovedTips.Size(m) } -func (m *FriendApplicationProcessedTips) XXX_DiscardUnknown() { - xxx_messageInfo_FriendApplicationProcessedTips.DiscardUnknown(m) +func (m *FriendApplicationApprovedTips) XXX_DiscardUnknown() { + xxx_messageInfo_FriendApplicationApprovedTips.DiscardUnknown(m) } -var xxx_messageInfo_FriendApplicationProcessedTips proto.InternalMessageInfo +var xxx_messageInfo_FriendApplicationApprovedTips proto.InternalMessageInfo -func (m *FriendApplicationProcessedTips) GetFromToUserID() *FromToUserID { +func (m *FriendApplicationApprovedTips) GetFromToUserID() *FromToUserID { if m != nil { return m.FromToUserID } return nil } -func (m *FriendApplicationProcessedTips) GetHandleResult() int32 { +func (m *FriendApplicationApprovedTips) GetHandleMsg() string { if m != nil { - return m.HandleResult + return m.HandleMsg } - return 0 + return "" +} + +// FromUserID accept or reject ToUserID +type FriendApplicationRejectedTips struct { + FromToUserID *FromToUserID `protobuf:"bytes,1,opt,name=fromToUserID" json:"fromToUserID,omitempty"` + HandleMsg string `protobuf:"bytes,2,opt,name=handleMsg" json:"handleMsg,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *FriendApplicationRejectedTips) Reset() { *m = FriendApplicationRejectedTips{} } +func (m *FriendApplicationRejectedTips) String() string { return proto.CompactTextString(m) } +func (*FriendApplicationRejectedTips) ProtoMessage() {} +func (*FriendApplicationRejectedTips) Descriptor() ([]byte, []int) { + return fileDescriptor_ws_4239643aeea36936, []int{33} +} +func (m *FriendApplicationRejectedTips) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_FriendApplicationRejectedTips.Unmarshal(m, b) +} +func (m *FriendApplicationRejectedTips) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_FriendApplicationRejectedTips.Marshal(b, m, deterministic) +} +func (dst *FriendApplicationRejectedTips) XXX_Merge(src proto.Message) { + xxx_messageInfo_FriendApplicationRejectedTips.Merge(dst, src) +} +func (m *FriendApplicationRejectedTips) XXX_Size() int { + return xxx_messageInfo_FriendApplicationRejectedTips.Size(m) +} +func (m *FriendApplicationRejectedTips) XXX_DiscardUnknown() { + xxx_messageInfo_FriendApplicationRejectedTips.DiscardUnknown(m) +} + +var xxx_messageInfo_FriendApplicationRejectedTips proto.InternalMessageInfo + +func (m *FriendApplicationRejectedTips) GetFromToUserID() *FromToUserID { + if m != nil { + return m.FromToUserID + } + return nil +} + +func (m *FriendApplicationRejectedTips) GetHandleMsg() string { + if m != nil { + return m.HandleMsg + } + return "" } // FromUserID Added a friend ToUserID @@ -2327,7 +2428,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_1c8466de999dbc0c, []int{32} + return fileDescriptor_ws_4239643aeea36936, []int{34} } func (m *FriendAddedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FriendAddedTips.Unmarshal(m, b) @@ -2380,7 +2481,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_1c8466de999dbc0c, []int{33} + return fileDescriptor_ws_4239643aeea36936, []int{35} } func (m *FriendDeletedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FriendDeletedTips.Unmarshal(m, b) @@ -2418,7 +2519,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_1c8466de999dbc0c, []int{34} + return fileDescriptor_ws_4239643aeea36936, []int{36} } func (m *BlackAddedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_BlackAddedTips.Unmarshal(m, b) @@ -2456,7 +2557,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_1c8466de999dbc0c, []int{35} + return fileDescriptor_ws_4239643aeea36936, []int{37} } func (m *BlackDeletedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_BlackDeletedTips.Unmarshal(m, b) @@ -2494,7 +2595,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_1c8466de999dbc0c, []int{36} + return fileDescriptor_ws_4239643aeea36936, []int{38} } func (m *FriendInfoChangedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FriendInfoChangedTips.Unmarshal(m, b) @@ -2533,7 +2634,7 @@ func (m *SelfInfoUpdatedTips) Reset() { *m = SelfInfoUpdatedTips{} } func (m *SelfInfoUpdatedTips) String() string { return proto.CompactTextString(m) } func (*SelfInfoUpdatedTips) ProtoMessage() {} func (*SelfInfoUpdatedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_1c8466de999dbc0c, []int{37} + return fileDescriptor_ws_4239643aeea36936, []int{39} } func (m *SelfInfoUpdatedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SelfInfoUpdatedTips.Unmarshal(m, b) @@ -2581,19 +2682,21 @@ func init() { proto.RegisterMapType((map[string]bool)(nil), "server_api_params.MsgData.OptionsEntry") proto.RegisterType((*OfflinePushInfo)(nil), "server_api_params.OfflinePushInfo") proto.RegisterType((*TipsComm)(nil), "server_api_params.TipsComm") - proto.RegisterType((*MemberEnterTips)(nil), "server_api_params.MemberEnterTips") - proto.RegisterType((*MemberLeaveTips)(nil), "server_api_params.MemberLeaveTips") - proto.RegisterType((*MemberInvitedTips)(nil), "server_api_params.MemberInvitedTips") - proto.RegisterType((*MemberKickedTips)(nil), "server_api_params.MemberKickedTips") - proto.RegisterType((*MemberInfoChangedTips)(nil), "server_api_params.MemberInfoChangedTips") proto.RegisterType((*GroupCreatedTips)(nil), "server_api_params.GroupCreatedTips") - proto.RegisterType((*GroupInfoChangedTips)(nil), "server_api_params.GroupInfoChangedTips") + proto.RegisterType((*GroupInfoSetTips)(nil), "server_api_params.GroupInfoSetTips") proto.RegisterType((*JoinGroupApplicationTips)(nil), "server_api_params.JoinGroupApplicationTips") - proto.RegisterType((*ApplicationProcessedTips)(nil), "server_api_params.ApplicationProcessedTips") + proto.RegisterType((*MemberQuitTips)(nil), "server_api_params.MemberQuitTips") + proto.RegisterType((*GroupApplicationAcceptedTips)(nil), "server_api_params.GroupApplicationAcceptedTips") + proto.RegisterType((*GroupApplicationRejectedTips)(nil), "server_api_params.GroupApplicationRejectedTips") + proto.RegisterType((*GroupOwnerTransferredTips)(nil), "server_api_params.GroupOwnerTransferredTips") + proto.RegisterType((*MemberKickedTips)(nil), "server_api_params.MemberKickedTips") + proto.RegisterType((*MemberInvitedTips)(nil), "server_api_params.MemberInvitedTips") + proto.RegisterType((*MemberEnterTips)(nil), "server_api_params.MemberEnterTips") proto.RegisterType((*FriendApplication)(nil), "server_api_params.FriendApplication") proto.RegisterType((*FromToUserID)(nil), "server_api_params.FromToUserID") proto.RegisterType((*FriendApplicationAddedTips)(nil), "server_api_params.FriendApplicationAddedTips") - proto.RegisterType((*FriendApplicationProcessedTips)(nil), "server_api_params.FriendApplicationProcessedTips") + proto.RegisterType((*FriendApplicationApprovedTips)(nil), "server_api_params.FriendApplicationApprovedTips") + proto.RegisterType((*FriendApplicationRejectedTips)(nil), "server_api_params.FriendApplicationRejectedTips") proto.RegisterType((*FriendAddedTips)(nil), "server_api_params.FriendAddedTips") proto.RegisterType((*FriendDeletedTips)(nil), "server_api_params.FriendDeletedTips") proto.RegisterType((*BlackAddedTips)(nil), "server_api_params.BlackAddedTips") @@ -2602,135 +2705,135 @@ func init() { proto.RegisterType((*SelfInfoUpdatedTips)(nil), "server_api_params.SelfInfoUpdatedTips") } -func init() { proto.RegisterFile("sdk_ws/ws.proto", fileDescriptor_ws_1c8466de999dbc0c) } - -var fileDescriptor_ws_1c8466de999dbc0c = []byte{ - // 2018 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe4, 0x59, 0xcd, 0x6f, 0x1c, 0x49, - 0x15, 0x57, 0xf7, 0x7c, 0xd8, 0xf3, 0x66, 0xc6, 0xe3, 0x74, 0xb2, 0x61, 0x14, 0x96, 0x60, 0x5a, - 0xab, 0xc5, 0x42, 0xc2, 0x48, 0x41, 0x48, 0x10, 0xc4, 0x47, 0xe2, 0x8f, 0x90, 0xc5, 0xe3, 0x58, - 0xed, 0x44, 0xcb, 0x01, 0x29, 0x2a, 0x4f, 0xd7, 0x8c, 0x1b, 0xf7, 0x54, 0xf5, 0x54, 0x77, 0x3b, - 0xc9, 0x85, 0x33, 0x1c, 0x38, 0xc2, 0x91, 0x2b, 0x42, 0xe2, 0x86, 0x10, 0x37, 0x0e, 0xfc, 0x07, - 0x9c, 0xf9, 0x17, 0xb8, 0x82, 0x84, 0x84, 0xb4, 0xa8, 0x5e, 0x55, 0x77, 0x57, 0x4d, 0x8f, 0xbd, - 0xc3, 0x60, 0xb1, 0x07, 0x6e, 0xf3, 0x7e, 0x5d, 0xef, 0xfb, 0xd5, 0xab, 0xaa, 0x37, 0x30, 0x48, - 0xc3, 0xcb, 0xd7, 0x6f, 0xd2, 0xaf, 0xbd, 0x49, 0xf7, 0x12, 0xc1, 0x33, 0xee, 0xdd, 0x49, 0xa9, - 0xb8, 0xa2, 0xe2, 0x35, 0x49, 0xa2, 0xd7, 0x09, 0x11, 0x64, 0x96, 0xfa, 0x7f, 0x77, 0xa1, 0xf3, - 0x4c, 0xf0, 0x3c, 0x79, 0xce, 0x26, 0xdc, 0x1b, 0xc2, 0xc6, 0x14, 0x89, 0x83, 0xa1, 0xb3, 0xe3, - 0xec, 0x76, 0x82, 0x82, 0xf4, 0xde, 0x87, 0x0e, 0xfe, 0x3c, 0x21, 0x33, 0x3a, 0x74, 0xf1, 0x5b, - 0x05, 0x78, 0x3e, 0xf4, 0x18, 0xcf, 0xa2, 0x49, 0x34, 0x26, 0x59, 0xc4, 0xd9, 0xb0, 0x81, 0x0b, - 0x2c, 0x4c, 0xae, 0x89, 0x58, 0x26, 0x78, 0x98, 0x8f, 0x71, 0x4d, 0x53, 0xad, 0x31, 0x31, 0xa9, - 0x7f, 0x42, 0xc6, 0xf4, 0x55, 0x70, 0x3c, 0x6c, 0x29, 0xfd, 0x9a, 0xf4, 0x76, 0xa0, 0xcb, 0xdf, - 0x30, 0x2a, 0x5e, 0xa5, 0x54, 0x3c, 0x3f, 0x18, 0xb6, 0xf1, 0xab, 0x09, 0x79, 0x0f, 0x01, 0xc6, - 0x82, 0x92, 0x8c, 0xbe, 0x8c, 0x66, 0x74, 0xb8, 0xb1, 0xe3, 0xec, 0xf6, 0x03, 0x03, 0x91, 0x12, - 0x66, 0x74, 0x76, 0x4e, 0xc5, 0x3e, 0xcf, 0x59, 0x36, 0xdc, 0xc4, 0x05, 0x26, 0xe4, 0x6d, 0x81, - 0x4b, 0xdf, 0x0e, 0x3b, 0x28, 0xda, 0xa5, 0x6f, 0xbd, 0xfb, 0xd0, 0x4e, 0x33, 0x92, 0xe5, 0xe9, - 0x10, 0x76, 0x9c, 0xdd, 0x56, 0xa0, 0x29, 0xef, 0x03, 0xe8, 0xa3, 0x5c, 0x5e, 0x58, 0xd3, 0x45, - 0x16, 0x1b, 0x2c, 0x23, 0xf6, 0xf2, 0x5d, 0x42, 0x87, 0x3d, 0x14, 0x50, 0x01, 0xfe, 0x1f, 0x5d, - 0xb8, 0x8b, 0x71, 0x1f, 0xa1, 0x01, 0x47, 0x79, 0x1c, 0x7f, 0x4a, 0x06, 0xee, 0x43, 0x3b, 0x57, - 0xea, 0x54, 0xf8, 0x35, 0x25, 0xf5, 0x08, 0x1e, 0xd3, 0x63, 0x7a, 0x45, 0x63, 0x0c, 0x7c, 0x2b, - 0xa8, 0x00, 0xef, 0x01, 0x6c, 0xfe, 0x84, 0x47, 0x0c, 0x63, 0x22, 0x23, 0xde, 0x08, 0x4a, 0x5a, - 0x7e, 0x63, 0xd1, 0xf8, 0x92, 0xc9, 0x94, 0xaa, 0x70, 0x97, 0xb4, 0x99, 0x89, 0xb6, 0x9d, 0x89, - 0x0f, 0x61, 0x8b, 0x24, 0xc9, 0x88, 0xb0, 0x29, 0x15, 0x4a, 0xe9, 0x06, 0x2a, 0x5d, 0x40, 0x65, - 0x3e, 0xa4, 0xa6, 0x33, 0x9e, 0x8b, 0x31, 0xc5, 0x70, 0xb7, 0x02, 0x03, 0x91, 0x72, 0x78, 0x42, - 0x85, 0x11, 0x46, 0x15, 0xf9, 0x05, 0x54, 0x67, 0x05, 0x8a, 0xac, 0xf8, 0xbf, 0x76, 0x60, 0xeb, - 0x34, 0x3f, 0x8f, 0xa3, 0x31, 0x2e, 0x90, 0x41, 0xab, 0x42, 0xe3, 0x58, 0xa1, 0x31, 0x1d, 0x74, - 0xaf, 0x77, 0xb0, 0x61, 0x3b, 0x78, 0x1f, 0xda, 0x53, 0xca, 0x42, 0x2a, 0x30, 0x60, 0xad, 0x40, - 0x53, 0x4b, 0x1c, 0x6f, 0x2d, 0x73, 0xdc, 0xff, 0x95, 0x0b, 0x9b, 0xff, 0x63, 0xd3, 0x76, 0xa0, - 0x9b, 0x5c, 0x70, 0x46, 0x4f, 0x72, 0x59, 0x4c, 0x3a, 0x99, 0x26, 0xe4, 0xdd, 0x83, 0xd6, 0x79, - 0x24, 0xb2, 0x0b, 0xcc, 0x66, 0x3f, 0x50, 0x84, 0x44, 0xe9, 0x8c, 0x44, 0x2a, 0x85, 0x9d, 0x40, - 0x11, 0x3a, 0xe2, 0x9b, 0xe5, 0x3e, 0xb0, 0x77, 0x56, 0xa7, 0xb6, 0xb3, 0xea, 0x81, 0x81, 0xa5, - 0x81, 0xf9, 0xa7, 0x03, 0x70, 0x24, 0x22, 0xca, 0x42, 0x0c, 0xcd, 0xc2, 0x96, 0x76, 0xea, 0x5b, - 0xfa, 0x3e, 0xb4, 0x05, 0x9d, 0x11, 0x71, 0x59, 0x94, 0xbc, 0xa2, 0x16, 0x0c, 0x6a, 0xd4, 0x0c, - 0xfa, 0x36, 0xc0, 0x04, 0xf5, 0x48, 0x39, 0x18, 0xaa, 0xee, 0xa3, 0xcf, 0xef, 0xd5, 0x9a, 0xdf, - 0x5e, 0x91, 0xa5, 0xc0, 0x58, 0x2e, 0xf7, 0x13, 0x09, 0x43, 0x5d, 0xb6, 0x2a, 0xc3, 0x15, 0xb0, - 0xa4, 0x6a, 0xdb, 0x37, 0x54, 0xed, 0x46, 0x59, 0xb5, 0x7f, 0x73, 0xa0, 0xf3, 0x34, 0x26, 0xe3, - 0xcb, 0x15, 0x5d, 0xb7, 0x5d, 0x74, 0x6b, 0x2e, 0x3e, 0x83, 0xfe, 0xb9, 0x14, 0x57, 0xb8, 0x80, - 0x51, 0xe8, 0x3e, 0xfa, 0xd2, 0x12, 0x2f, 0xed, 0xcd, 0x12, 0xd8, 0x7c, 0xb6, 0xbb, 0xcd, 0x4f, - 0x77, 0xb7, 0x75, 0x83, 0xbb, 0xed, 0xd2, 0xdd, 0xbf, 0xb8, 0xd0, 0xc3, 0xf6, 0x16, 0xd0, 0x79, - 0x4e, 0xd3, 0xcc, 0xfb, 0x0e, 0x6c, 0xe6, 0x85, 0xa9, 0xce, 0xaa, 0xa6, 0x96, 0x2c, 0xde, 0x63, - 0xdd, 0x4c, 0x91, 0xdf, 0x45, 0xfe, 0xf7, 0x97, 0xf0, 0x97, 0x27, 0x59, 0x50, 0x2d, 0x97, 0x07, - 0xcf, 0x05, 0x61, 0x61, 0x4c, 0x03, 0x9a, 0xe6, 0x71, 0x56, 0x1c, 0x4e, 0x26, 0xa6, 0x2a, 0x6d, - 0x3e, 0x4a, 0xa7, 0xfa, 0x58, 0xd2, 0x94, 0x8c, 0x8e, 0x5a, 0x27, 0x3f, 0x29, 0xd7, 0x2b, 0x40, - 0x6e, 0x54, 0x41, 0xe7, 0x98, 0x21, 0xb5, 0xad, 0x0a, 0xb2, 0xd2, 0xa9, 0xa3, 0xb6, 0x61, 0xea, - 0xac, 0x52, 0xac, 0x68, 0x14, 0xa0, 0xce, 0x23, 0x03, 0x59, 0x3c, 0x8e, 0xfc, 0xbf, 0x36, 0xa0, - 0xaf, 0xb6, 0x4f, 0x11, 0xd4, 0x87, 0xb2, 0xce, 0xf9, 0xcc, 0xaa, 0x22, 0x03, 0x91, 0x56, 0x48, - 0xea, 0xc4, 0x6e, 0x34, 0x16, 0x26, 0x4b, 0x51, 0xd2, 0x47, 0x56, 0xc3, 0x31, 0xa1, 0x42, 0xcb, - 0x33, 0xb3, 0xf1, 0x18, 0x88, 0x6c, 0x65, 0x19, 0xb7, 0xaa, 0xa3, 0xa4, 0x25, 0x6f, 0xc6, 0x4b, - 0xfd, 0xaa, 0x3e, 0x0c, 0x44, 0xc6, 0x37, 0xe3, 0x85, 0x6e, 0x15, 0xa4, 0x0a, 0x50, 0x92, 0xb5, - 0x5e, 0x75, 0x80, 0x94, 0x74, 0x2d, 0xab, 0x1d, 0xfc, 0x7e, 0x5d, 0x56, 0xc1, 0xca, 0xaa, 0xbd, - 0xb9, 0xba, 0xb5, 0xcd, 0xf5, 0x01, 0xf4, 0x95, 0x9c, 0xa2, 0xe8, 0x7b, 0xea, 0x80, 0xb7, 0x40, - 0xbb, 0x36, 0xfa, 0x8b, 0xb5, 0x61, 0x67, 0x77, 0xeb, 0x9a, 0xec, 0x0e, 0xca, 0xec, 0xfe, 0xcc, - 0x85, 0xe1, 0x69, 0x1e, 0xc7, 0x23, 0x9a, 0xa6, 0x64, 0x4a, 0x9f, 0xbe, 0x3b, 0xa3, 0xf3, 0xe3, - 0x28, 0xcd, 0x02, 0x9a, 0x26, 0xb2, 0xd0, 0xa8, 0x10, 0xfb, 0x3c, 0xa4, 0x98, 0xe5, 0x56, 0x50, - 0x90, 0xd2, 0x45, 0x2a, 0x84, 0xb4, 0x40, 0xb7, 0x48, 0x45, 0x49, 0x7c, 0x46, 0xde, 0x9e, 0xd1, - 0x39, 0x66, 0xb4, 0x11, 0x68, 0x0a, 0xf1, 0x88, 0x49, 0xbc, 0xa9, 0x71, 0xa4, 0xbc, 0x43, 0xe8, - 0xa7, 0x11, 0x9b, 0xaa, 0xe2, 0x54, 0xc5, 0xde, 0xd8, 0xed, 0x3e, 0xfa, 0xe2, 0xb2, 0x4d, 0x46, - 0xb2, 0x0b, 0x2a, 0x8e, 0xb8, 0x98, 0x91, 0x2c, 0xb0, 0xb9, 0xbc, 0x7d, 0xe8, 0xe1, 0xc6, 0x2b, - 0xa4, 0xb4, 0x57, 0x93, 0x62, 0x31, 0xf9, 0x33, 0xf8, 0xdc, 0xf2, 0x48, 0xcc, 0xaf, 0x3d, 0x4e, - 0x65, 0x43, 0xc5, 0x8e, 0x14, 0x71, 0x56, 0xde, 0x90, 0x4c, 0x48, 0x86, 0x30, 0x55, 0x72, 0x86, - 0x8d, 0x9d, 0xc6, 0x6e, 0x23, 0x28, 0x48, 0xff, 0xa7, 0xf2, 0x3e, 0x51, 0xaa, 0xbb, 0x49, 0xcb, - 0x03, 0xd8, 0x4c, 0xe9, 0xfc, 0x29, 0x9d, 0x46, 0x0c, 0x55, 0x34, 0x82, 0x92, 0xc6, 0xcb, 0x22, - 0x9d, 0x1f, 0xb2, 0xb0, 0x08, 0xb8, 0xa2, 0x16, 0x2d, 0x6b, 0xd6, 0x2c, 0xf3, 0x3f, 0x71, 0x60, - 0x60, 0x19, 0xf0, 0x7f, 0x97, 0xf0, 0x7b, 0xe0, 0x3d, 0xa3, 0xd9, 0x88, 0xbc, 0x7d, 0xc2, 0xc2, - 0x11, 0x9a, 0x17, 0xd0, 0xb9, 0x7f, 0x08, 0x77, 0x6b, 0x68, 0x9a, 0x18, 0x8e, 0x3a, 0xd7, 0x38, - 0xea, 0x9a, 0x8e, 0xfa, 0x27, 0xd0, 0x33, 0x55, 0xcb, 0x8d, 0x17, 0x85, 0x3a, 0xb1, 0x6e, 0x14, - 0x7a, 0x7b, 0xd0, 0x8c, 0x65, 0x55, 0xb8, 0x68, 0xf9, 0x83, 0x25, 0x96, 0x8f, 0xd2, 0xe9, 0x01, - 0xc9, 0x48, 0x80, 0xeb, 0xfc, 0x39, 0x0c, 0xa4, 0xdd, 0x67, 0x94, 0x85, 0xa3, 0x74, 0x8a, 0x26, - 0xed, 0x40, 0x57, 0x71, 0x8d, 0xd2, 0x69, 0x75, 0x9c, 0x1b, 0x90, 0x5c, 0x31, 0x8e, 0x23, 0xca, - 0x32, 0xb5, 0x42, 0xd7, 0xa7, 0x01, 0xa9, 0xda, 0x62, 0x61, 0x79, 0xa3, 0xc1, 0xda, 0x52, 0xb4, - 0xff, 0xe7, 0x16, 0x6c, 0x68, 0x23, 0x54, 0x9d, 0xb1, 0xb0, 0xaa, 0x4d, 0x45, 0xa9, 0x5e, 0x37, - 0xbe, 0xaa, 0x9e, 0x07, 0x8a, 0x32, 0x1f, 0x14, 0x0d, 0xfb, 0x41, 0xb1, 0x60, 0x53, 0xb3, 0x6e, - 0xd3, 0x82, 0x5f, 0xad, 0xba, 0x5f, 0x5f, 0x81, 0xed, 0x14, 0xfb, 0xf1, 0x69, 0x4c, 0xb2, 0x09, - 0x17, 0x33, 0x7d, 0x21, 0x6a, 0x05, 0x35, 0x5c, 0xde, 0x25, 0x14, 0x56, 0x9e, 0x07, 0xaa, 0xe1, - 0x2f, 0xa0, 0xb2, 0xfb, 0x2a, 0xa4, 0x38, 0x17, 0xd4, 0x4d, 0xd4, 0x06, 0x95, 0x6d, 0x69, 0x1a, - 0x71, 0x86, 0x0f, 0x2c, 0xd5, 0xfe, 0x4d, 0x48, 0x7a, 0x3e, 0x4b, 0xa7, 0x47, 0x82, 0xcf, 0xf4, - 0x7d, 0xb4, 0x20, 0xd1, 0x73, 0xce, 0x32, 0xca, 0x32, 0xe4, 0xed, 0x2a, 0x5e, 0x03, 0x92, 0xbc, - 0x9a, 0xc4, 0xde, 0xdf, 0x0b, 0x0a, 0x52, 0x76, 0xfd, 0x09, 0x17, 0x63, 0x8a, 0x9d, 0xa4, 0xbf, - 0xd3, 0x90, 0x5d, 0xbf, 0x04, 0xbc, 0x6d, 0x68, 0xa4, 0x74, 0x8e, 0xed, 0xbe, 0x11, 0xc8, 0x9f, - 0x56, 0x5e, 0x07, 0x76, 0x5e, 0x17, 0xce, 0xa1, 0x6d, 0xfc, 0x6a, 0x9e, 0x43, 0x4f, 0x60, 0x83, - 0x27, 0xb2, 0x4b, 0xa4, 0xc3, 0x3b, 0x58, 0x9d, 0x5f, 0xbe, 0xbe, 0x3a, 0xf7, 0x5e, 0xa8, 0x95, - 0x87, 0x2c, 0x13, 0xef, 0x82, 0x82, 0xcf, 0x3b, 0x86, 0x01, 0x9f, 0x4c, 0xe2, 0x88, 0xd1, 0xd3, - 0x3c, 0xbd, 0xc0, 0xeb, 0x93, 0x87, 0xd7, 0x27, 0x7f, 0x89, 0xa8, 0x17, 0xf6, 0xca, 0x60, 0x91, - 0xf5, 0xc1, 0x63, 0xe8, 0x99, 0x6a, 0xa4, 0xbb, 0x97, 0xf4, 0x9d, 0xae, 0x44, 0xf9, 0x53, 0xbe, - 0x28, 0xae, 0x48, 0x9c, 0xab, 0xbb, 0xc6, 0x66, 0xa0, 0x88, 0xc7, 0xee, 0x37, 0x1d, 0xff, 0x97, - 0x0e, 0x0c, 0x16, 0x14, 0xc8, 0xd5, 0x59, 0x94, 0xc5, 0x54, 0x4b, 0x50, 0x84, 0xe7, 0x41, 0x33, - 0xa4, 0xe9, 0x58, 0x17, 0x32, 0xfe, 0xd6, 0xc7, 0x65, 0xa3, 0x7c, 0x93, 0xf8, 0xd0, 0x8b, 0x5e, - 0x9c, 0x49, 0x41, 0x67, 0x3c, 0x67, 0x61, 0x39, 0x4d, 0x30, 0x30, 0x59, 0x48, 0xd1, 0x8b, 0xb3, - 0xa7, 0x24, 0x9c, 0x52, 0xf5, 0xe6, 0x6f, 0xa1, 0x4d, 0x36, 0xe8, 0x1f, 0xc0, 0xe6, 0xcb, 0x28, - 0x49, 0xf7, 0xf9, 0x6c, 0x26, 0x37, 0x51, 0x48, 0x33, 0xf9, 0x20, 0x72, 0x30, 0xeb, 0x9a, 0x92, - 0x05, 0x13, 0xd2, 0x09, 0xc9, 0xe3, 0x4c, 0x2e, 0x2d, 0xb6, 0xaf, 0x01, 0xf9, 0x7f, 0x70, 0x60, - 0xa0, 0x9e, 0xf2, 0x87, 0x2c, 0xa3, 0x42, 0x62, 0xde, 0x23, 0x68, 0xe1, 0x5e, 0xd3, 0x17, 0xde, - 0x9b, 0x2f, 0xac, 0x6a, 0xa9, 0xf7, 0x03, 0xe8, 0x52, 0x96, 0x09, 0xc2, 0x32, 0x7c, 0xbb, 0xa8, - 0xab, 0xee, 0x87, 0xd7, 0x71, 0xda, 0xc3, 0x83, 0xc0, 0x64, 0x95, 0xde, 0x97, 0xa7, 0x8c, 0xd1, - 0x55, 0x6c, 0xd0, 0xff, 0x7d, 0x69, 0xf7, 0x31, 0x25, 0x57, 0x74, 0x6d, 0xbb, 0x8f, 0x00, 0x62, - 0x29, 0x40, 0xac, 0x61, 0xb6, 0xc1, 0xb9, 0xa2, 0xd5, 0x9f, 0x38, 0x70, 0x47, 0x09, 0x79, 0xce, - 0xae, 0xa2, 0x8c, 0x86, 0x6b, 0xdb, 0xfd, 0x5d, 0x68, 0xf3, 0x64, 0x0d, 0x9b, 0x35, 0x97, 0x77, - 0x0a, 0x83, 0x48, 0x99, 0x20, 0xc9, 0xf2, 0x7a, 0xb1, 0xba, 0xa0, 0x45, 0xf6, 0x7a, 0x04, 0x9a, - 0xcb, 0x22, 0xf0, 0x2f, 0x07, 0xb6, 0x95, 0xa4, 0x1f, 0x46, 0xe3, 0xcb, 0xcf, 0x30, 0x00, 0x27, - 0xb0, 0x75, 0x89, 0x16, 0xac, 0xe9, 0xff, 0x02, 0xf7, 0x8a, 0xee, 0xff, 0xc2, 0x85, 0xf7, 0x8a, - 0x02, 0x98, 0xf0, 0xfd, 0x0b, 0xc2, 0xa6, 0x3a, 0x06, 0xb2, 0xa7, 0x22, 0x89, 0xad, 0x5d, 0x5d, - 0x9e, 0x0c, 0xe4, 0xbf, 0xf6, 0xf7, 0x00, 0x3a, 0x93, 0x88, 0x91, 0xd8, 0x78, 0x74, 0xaf, 0x2a, - 0xa2, 0x62, 0x94, 0xa7, 0xc2, 0x2c, 0xd7, 0x7d, 0x5f, 0x8f, 0xe5, 0x0a, 0xba, 0xca, 0x62, 0x6b, - 0xe5, 0x2c, 0xfa, 0xff, 0x70, 0x60, 0x1b, 0xc1, 0x7d, 0x3c, 0x3d, 0xd6, 0x2f, 0x87, 0xef, 0xc3, - 0x86, 0x1e, 0x63, 0xfe, 0x87, 0xf1, 0x29, 0xd8, 0x64, 0x27, 0x50, 0x43, 0xd5, 0x35, 0x8a, 0xc1, - 0xe0, 0x5c, 0xb1, 0x10, 0x7e, 0xe7, 0xc0, 0xbd, 0xd2, 0x09, 0xb3, 0x0e, 0xe4, 0x19, 0xaf, 0xc9, - 0xaa, 0x10, 0x4c, 0xa8, 0x0a, 0x8f, 0xbb, 0xce, 0x6e, 0x69, 0xac, 0x53, 0x3d, 0xfe, 0x6f, 0x1c, - 0x18, 0x7e, 0xc4, 0x23, 0x86, 0x6b, 0x9e, 0x24, 0x49, 0xac, 0xa7, 0xe3, 0x6b, 0xe7, 0xeb, 0x7b, - 0xd0, 0x21, 0x4a, 0x0c, 0xcb, 0xb4, 0x23, 0x2b, 0x0c, 0x56, 0x2a, 0x1e, 0x75, 0x6f, 0x24, 0x69, - 0x39, 0xb4, 0xd7, 0x94, 0xff, 0x27, 0x07, 0x86, 0x86, 0x81, 0xa7, 0x82, 0x8f, 0x69, 0x9a, 0x7e, - 0x86, 0x8d, 0x06, 0x0d, 0x2d, 0x07, 0x38, 0xad, 0x40, 0x53, 0x86, 0x03, 0x4d, 0xcb, 0x81, 0x4b, - 0xb8, 0xa3, 0xa6, 0x25, 0x86, 0x17, 0xf2, 0x5e, 0x47, 0x42, 0x75, 0x19, 0x53, 0xaf, 0x87, 0x82, - 0xb4, 0xe7, 0x60, 0xfa, 0x0f, 0x8e, 0x6a, 0x0e, 0xf6, 0x10, 0x80, 0x84, 0xe1, 0xc7, 0x5c, 0x84, - 0x11, 0x9b, 0xea, 0x48, 0x19, 0x88, 0xff, 0x11, 0xf4, 0xe4, 0xcd, 0xf2, 0xa5, 0x31, 0xf7, 0xb8, - 0x71, 0x32, 0x63, 0xce, 0x4c, 0x5c, 0x7b, 0x66, 0xe2, 0x13, 0x78, 0x50, 0x33, 0xfc, 0x49, 0x18, - 0xea, 0xd0, 0xef, 0xab, 0x99, 0x4e, 0xa1, 0x49, 0x67, 0x60, 0xd9, 0x83, 0xcb, 0x34, 0x28, 0xb0, - 0x98, 0xfc, 0x9f, 0x3b, 0xf0, 0xb0, 0xa6, 0xc3, 0x4e, 0xf1, 0x6d, 0xe8, 0xa9, 0x0d, 0x69, 0xdc, - 0xfa, 0x90, 0xc6, 0xff, 0xad, 0x03, 0x03, 0x6d, 0x4b, 0xe9, 0xe4, 0x37, 0xa0, 0xad, 0x26, 0xb2, - 0x5a, 0xed, 0x17, 0x96, 0xaa, 0x2d, 0x26, 0xc9, 0x81, 0x5e, 0x5c, 0x6f, 0x19, 0xee, 0x92, 0x96, - 0xe1, 0x7d, 0x6b, 0x61, 0x0f, 0xaf, 0xb0, 0x5f, 0x8a, 0xed, 0xfb, 0xa3, 0xa2, 0xa6, 0x0e, 0x68, - 0x4c, 0xb3, 0xdb, 0xcc, 0xc8, 0x2b, 0xd8, 0xc2, 0xf1, 0xf0, 0x2d, 0x27, 0xfa, 0x63, 0xd8, 0x46, - 0xb1, 0xb7, 0x6e, 0xef, 0x8f, 0xe1, 0xbd, 0x2a, 0x01, 0x66, 0xdf, 0xbd, 0x15, 0xe9, 0x5f, 0x85, - 0xbb, 0x67, 0x34, 0x9e, 0x48, 0xd9, 0xaf, 0x92, 0xb0, 0x3c, 0xd0, 0xae, 0x99, 0xcb, 0x9c, 0xb7, - 0xf1, 0xef, 0xcd, 0xaf, 0xff, 0x3b, 0x00, 0x00, 0xff, 0xff, 0x44, 0xad, 0x58, 0x38, 0xf1, 0x1c, - 0x00, 0x00, +func init() { proto.RegisterFile("sdk_ws/ws.proto", fileDescriptor_ws_4239643aeea36936) } + +var fileDescriptor_ws_4239643aeea36936 = []byte{ + // 2019 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe4, 0x59, 0x4f, 0x6f, 0x23, 0x49, + 0x15, 0x57, 0x77, 0xc7, 0x8e, 0xf3, 0x6c, 0xc7, 0x99, 0x9e, 0x65, 0x30, 0x61, 0x76, 0x08, 0xad, + 0xd5, 0x32, 0x42, 0x22, 0x48, 0x83, 0x90, 0x60, 0x10, 0xa0, 0xfc, 0x67, 0x96, 0x38, 0x09, 0xed, + 0x8c, 0x96, 0x03, 0xd2, 0xa8, 0xe3, 0x2e, 0x3b, 0xbd, 0x69, 0x57, 0xb5, 0xab, 0xbb, 0x33, 0x33, + 0x17, 0x0e, 0x70, 0xe1, 0x0b, 0xc0, 0x91, 0x03, 0x17, 0xc4, 0x05, 0x71, 0x41, 0xdc, 0x11, 0x5f, + 0x80, 0x33, 0x5f, 0x81, 0x2b, 0x07, 0x24, 0xa4, 0x45, 0xf5, 0xaa, 0xba, 0xbb, 0xaa, 0xed, 0x64, + 0xad, 0x28, 0xda, 0x41, 0xe2, 0xe6, 0xf7, 0xeb, 0x7a, 0xff, 0x5f, 0xbd, 0x7a, 0x55, 0x86, 0x5e, + 0x1a, 0x5e, 0xbd, 0x7a, 0x9d, 0x7e, 0xf3, 0x75, 0xba, 0x9d, 0x70, 0x96, 0x31, 0xf7, 0x41, 0x4a, + 0xf8, 0x35, 0xe1, 0xaf, 0x82, 0x24, 0x7a, 0x95, 0x04, 0x3c, 0x98, 0xa6, 0xde, 0xbf, 0x6c, 0x58, + 0x3b, 0xe2, 0x2c, 0x4f, 0x5e, 0xd0, 0x31, 0x73, 0xfb, 0xb0, 0x3a, 0x41, 0x62, 0xbf, 0x6f, 0x6d, + 0x59, 0x4f, 0xd7, 0xfc, 0x82, 0x74, 0x1f, 0xc3, 0x1a, 0xfe, 0x3c, 0x09, 0xa6, 0xa4, 0x6f, 0xe3, + 0xb7, 0x0a, 0x70, 0x3d, 0xe8, 0x50, 0x96, 0x45, 0xe3, 0x68, 0x14, 0x64, 0x11, 0xa3, 0x7d, 0x07, + 0x17, 0x18, 0x98, 0x58, 0x13, 0xd1, 0x8c, 0xb3, 0x30, 0x1f, 0xe1, 0x9a, 0x15, 0xb9, 0x46, 0xc7, + 0x84, 0xfe, 0x71, 0x30, 0x22, 0x2f, 0xfd, 0xe3, 0x7e, 0x43, 0xea, 0x57, 0xa4, 0xbb, 0x05, 0x6d, + 0xf6, 0x9a, 0x12, 0xfe, 0x32, 0x25, 0xfc, 0xc5, 0x7e, 0xbf, 0x89, 0x5f, 0x75, 0xc8, 0x7d, 0x02, + 0x30, 0xe2, 0x24, 0xc8, 0xc8, 0x79, 0x34, 0x25, 0xfd, 0xd5, 0x2d, 0xeb, 0x69, 0xd7, 0xd7, 0x10, + 0x21, 0x61, 0x4a, 0xa6, 0x17, 0x84, 0xef, 0xb1, 0x9c, 0x66, 0xfd, 0x16, 0x2e, 0xd0, 0x21, 0x77, + 0x1d, 0x6c, 0xf2, 0xa6, 0xbf, 0x86, 0xa2, 0x6d, 0xf2, 0xc6, 0x7d, 0x04, 0xcd, 0x34, 0x0b, 0xb2, + 0x3c, 0xed, 0xc3, 0x96, 0xf5, 0xb4, 0xe1, 0x2b, 0xca, 0xfd, 0x00, 0xba, 0x28, 0x97, 0x15, 0xd6, + 0xb4, 0x91, 0xc5, 0x04, 0xcb, 0x88, 0x9d, 0xbf, 0x4d, 0x48, 0xbf, 0x83, 0x02, 0x2a, 0xc0, 0xfb, + 0x8b, 0x0d, 0x0f, 0x31, 0xee, 0x03, 0x34, 0xe0, 0x30, 0x8f, 0xe3, 0xcf, 0xc8, 0xc0, 0x23, 0x68, + 0xe6, 0x52, 0x9d, 0x0c, 0xbf, 0xa2, 0x84, 0x1e, 0xce, 0x62, 0x72, 0x4c, 0xae, 0x49, 0x8c, 0x81, + 0x6f, 0xf8, 0x15, 0xe0, 0x6e, 0x42, 0xeb, 0x13, 0x16, 0x51, 0x8c, 0x89, 0x88, 0xb8, 0xe3, 0x97, + 0xb4, 0xf8, 0x46, 0xa3, 0xd1, 0x15, 0x15, 0x29, 0x95, 0xe1, 0x2e, 0x69, 0x3d, 0x13, 0x4d, 0x33, + 0x13, 0x1f, 0xc2, 0x7a, 0x90, 0x24, 0x83, 0x80, 0x4e, 0x08, 0x97, 0x4a, 0x57, 0x51, 0x69, 0x0d, + 0x15, 0xf9, 0x10, 0x9a, 0x86, 0x2c, 0xe7, 0x23, 0x82, 0xe1, 0x6e, 0xf8, 0x1a, 0x22, 0xe4, 0xb0, + 0x84, 0x70, 0x2d, 0x8c, 0x32, 0xf2, 0x35, 0x54, 0x65, 0x05, 0x8a, 0xac, 0x78, 0xbf, 0xb5, 0x60, + 0xfd, 0x2c, 0xbf, 0x88, 0xa3, 0x11, 0x2e, 0x10, 0x41, 0xab, 0x42, 0x63, 0x19, 0xa1, 0xd1, 0x1d, + 0xb4, 0x6f, 0x76, 0xd0, 0x31, 0x1d, 0x7c, 0x04, 0xcd, 0x09, 0xa1, 0x21, 0xe1, 0x18, 0xb0, 0x86, + 0xaf, 0xa8, 0x05, 0x8e, 0x37, 0x16, 0x39, 0xee, 0xfd, 0xc6, 0x86, 0xd6, 0xe7, 0x6c, 0xda, 0x16, + 0xb4, 0x93, 0x4b, 0x46, 0xc9, 0x49, 0x2e, 0x8a, 0x49, 0x25, 0x53, 0x87, 0xdc, 0xf7, 0xa0, 0x71, + 0x11, 0xf1, 0xec, 0x12, 0xb3, 0xd9, 0xf5, 0x25, 0x21, 0x50, 0x32, 0x0d, 0x22, 0x99, 0xc2, 0x35, + 0x5f, 0x12, 0x2a, 0xe2, 0xad, 0x72, 0x1f, 0x98, 0x3b, 0x6b, 0x6d, 0x6e, 0x67, 0xcd, 0x07, 0x06, + 0x16, 0x06, 0xe6, 0xdf, 0x16, 0xc0, 0x21, 0x8f, 0x08, 0x0d, 0x31, 0x34, 0xb5, 0x2d, 0x6d, 0xcd, + 0x6f, 0xe9, 0x47, 0xd0, 0xe4, 0x64, 0x1a, 0xf0, 0xab, 0xa2, 0xe4, 0x25, 0x55, 0x33, 0xc8, 0x99, + 0x33, 0xe8, 0x7b, 0x00, 0x63, 0xd4, 0x23, 0xe4, 0x60, 0xa8, 0xda, 0xcf, 0xbe, 0xbc, 0x3d, 0xd7, + 0xfc, 0xb6, 0x8b, 0x2c, 0xf9, 0xda, 0x72, 0xb1, 0x9f, 0x82, 0x30, 0x54, 0x65, 0x2b, 0x33, 0x5c, + 0x01, 0x0b, 0xaa, 0xb6, 0x79, 0x4b, 0xd5, 0xae, 0x96, 0x55, 0xfb, 0x4f, 0x0b, 0xd6, 0x76, 0xe3, + 0x60, 0x74, 0xb5, 0xa4, 0xeb, 0xa6, 0x8b, 0xf6, 0x9c, 0x8b, 0x47, 0xd0, 0xbd, 0x10, 0xe2, 0x0a, + 0x17, 0x30, 0x0a, 0xed, 0x67, 0x5f, 0x5d, 0xe0, 0xa5, 0xb9, 0x59, 0x7c, 0x93, 0xcf, 0x74, 0x77, + 0xe5, 0xb3, 0xdd, 0x6d, 0xdc, 0xe2, 0x6e, 0xb3, 0x74, 0xf7, 0xef, 0x36, 0x74, 0xb0, 0xbd, 0xf9, + 0x64, 0x96, 0x93, 0x34, 0x73, 0xbf, 0x0f, 0xad, 0xbc, 0x30, 0xd5, 0x5a, 0xd6, 0xd4, 0x92, 0xc5, + 0x7d, 0xae, 0x9a, 0x29, 0xf2, 0xdb, 0xc8, 0xff, 0x78, 0x01, 0x7f, 0x79, 0x92, 0xf9, 0xd5, 0x72, + 0x71, 0xf0, 0x5c, 0x06, 0x34, 0x8c, 0x89, 0x4f, 0xd2, 0x3c, 0xce, 0x8a, 0xc3, 0x49, 0xc7, 0x64, + 0xa5, 0xcd, 0x06, 0xe9, 0x44, 0x1d, 0x4b, 0x8a, 0x12, 0xd1, 0x91, 0xeb, 0xc4, 0x27, 0xe9, 0x7a, + 0x05, 0x88, 0x8d, 0xca, 0xc9, 0x0c, 0x33, 0x24, 0xb7, 0x55, 0x41, 0x56, 0x3a, 0x55, 0xd4, 0x56, + 0x75, 0x9d, 0x55, 0x8a, 0x25, 0x8d, 0x02, 0xe4, 0x79, 0xa4, 0x21, 0xf5, 0xe3, 0xc8, 0xfb, 0x87, + 0x03, 0x5d, 0xb9, 0x7d, 0x8a, 0xa0, 0x3e, 0x11, 0x75, 0xce, 0xa6, 0x46, 0x15, 0x69, 0x88, 0xb0, + 0x42, 0x50, 0x27, 0x66, 0xa3, 0x31, 0x30, 0x51, 0x8a, 0x82, 0x3e, 0x34, 0x1a, 0x8e, 0x0e, 0x15, + 0x5a, 0x8e, 0xf4, 0xc6, 0xa3, 0x21, 0xa2, 0x95, 0x65, 0xcc, 0xa8, 0x8e, 0x92, 0x16, 0xbc, 0x19, + 0x2b, 0xf5, 0xcb, 0xfa, 0xd0, 0x10, 0x11, 0xdf, 0x8c, 0x15, 0xba, 0x65, 0x90, 0x2a, 0x40, 0x4a, + 0x56, 0x7a, 0xe5, 0x01, 0x52, 0xd2, 0x73, 0x59, 0x5d, 0xc3, 0xef, 0x37, 0x65, 0x15, 0x8c, 0xac, + 0x9a, 0x9b, 0xab, 0x3d, 0xb7, 0xb9, 0x3e, 0x80, 0xae, 0x94, 0x53, 0x14, 0x7d, 0x47, 0x1e, 0xf0, + 0x06, 0x68, 0xd6, 0x46, 0xb7, 0x5e, 0x1b, 0x66, 0x76, 0xd7, 0x6f, 0xc8, 0x6e, 0xaf, 0xcc, 0xee, + 0xaf, 0x6c, 0xe8, 0x9f, 0xe5, 0x71, 0x3c, 0x20, 0x69, 0x1a, 0x4c, 0xc8, 0xee, 0xdb, 0x21, 0x99, + 0x1d, 0x47, 0x69, 0xe6, 0x93, 0x34, 0x11, 0x85, 0x46, 0x38, 0xdf, 0x63, 0x21, 0xc1, 0x2c, 0x37, + 0xfc, 0x82, 0x14, 0x2e, 0x12, 0xce, 0x85, 0x05, 0xaa, 0x45, 0x4a, 0x4a, 0xe0, 0xd3, 0xe0, 0xcd, + 0x90, 0xcc, 0x30, 0xa3, 0x8e, 0xaf, 0x28, 0xc4, 0x23, 0x2a, 0xf0, 0x15, 0x85, 0x23, 0xe5, 0x1e, + 0x40, 0x37, 0x8d, 0xe8, 0x44, 0x16, 0xa7, 0x2c, 0x76, 0xe7, 0x69, 0xfb, 0xd9, 0x57, 0x16, 0x6d, + 0xb2, 0x20, 0xbb, 0x24, 0xfc, 0x90, 0xf1, 0x69, 0x90, 0xf9, 0x26, 0x97, 0xbb, 0x07, 0x1d, 0xdc, + 0x78, 0x85, 0x94, 0xe6, 0x72, 0x52, 0x0c, 0x26, 0x6f, 0x0a, 0x5f, 0x5c, 0x1c, 0x89, 0xd9, 0x8d, + 0xc7, 0xa9, 0x68, 0xa8, 0xd8, 0x91, 0x22, 0x46, 0xcb, 0x09, 0x49, 0x87, 0x44, 0x08, 0x53, 0x29, + 0xa7, 0xef, 0x6c, 0x39, 0x4f, 0x1d, 0xbf, 0x20, 0xbd, 0x9f, 0x8b, 0x79, 0xa2, 0x54, 0x77, 0x9b, + 0x96, 0x4d, 0x68, 0xa5, 0x64, 0xb6, 0x4b, 0x26, 0x11, 0x45, 0x15, 0x8e, 0x5f, 0xd2, 0x38, 0x2c, + 0x92, 0xd9, 0x01, 0x0d, 0x8b, 0x80, 0x4b, 0xaa, 0x6e, 0xd9, 0xca, 0x9c, 0x65, 0xde, 0xa7, 0x16, + 0xf4, 0x0c, 0x03, 0xfe, 0xef, 0x12, 0xfe, 0x1e, 0xb8, 0x47, 0x24, 0x1b, 0x04, 0x6f, 0x76, 0x68, + 0x38, 0x40, 0xf3, 0x7c, 0x32, 0xf3, 0x0e, 0xe0, 0xe1, 0x1c, 0x9a, 0x26, 0x9a, 0xa3, 0xd6, 0x0d, + 0x8e, 0xda, 0xba, 0xa3, 0xde, 0x09, 0x74, 0x74, 0xd5, 0x62, 0xe3, 0x45, 0xa1, 0x4a, 0xac, 0x1d, + 0x85, 0xee, 0x36, 0xac, 0xc4, 0xa2, 0x2a, 0x6c, 0xb4, 0x7c, 0x73, 0x81, 0xe5, 0x83, 0x74, 0xb2, + 0x1f, 0x64, 0x81, 0x8f, 0xeb, 0xbc, 0x19, 0xf4, 0x84, 0xdd, 0x43, 0x42, 0xc3, 0x41, 0x3a, 0x41, + 0x93, 0xb6, 0xa0, 0x2d, 0xb9, 0x06, 0xe9, 0xa4, 0x3a, 0xce, 0x35, 0x48, 0xac, 0x18, 0xc5, 0x11, + 0xa1, 0x99, 0x5c, 0xa1, 0xea, 0x53, 0x83, 0x64, 0x6d, 0xd1, 0xb0, 0x9c, 0x68, 0xb0, 0xb6, 0x24, + 0xed, 0xfd, 0xb5, 0x01, 0xab, 0xca, 0x08, 0x59, 0x67, 0x34, 0xac, 0x6a, 0x53, 0x52, 0xb2, 0xd7, + 0x8d, 0xae, 0xab, 0xeb, 0x81, 0xa4, 0xf4, 0x0b, 0x85, 0x63, 0x5e, 0x28, 0x6a, 0x36, 0xad, 0xcc, + 0xdb, 0x54, 0xf3, 0xab, 0x31, 0xef, 0xd7, 0xd7, 0x61, 0x23, 0xc5, 0x7e, 0x7c, 0x16, 0x07, 0xd9, + 0x98, 0xf1, 0xa9, 0x1a, 0x88, 0x1a, 0xfe, 0x1c, 0x2e, 0x66, 0x09, 0x89, 0x95, 0xe7, 0x81, 0x6c, + 0xf8, 0x35, 0x54, 0x74, 0x5f, 0x89, 0x14, 0xe7, 0x82, 0x9c, 0x44, 0x4d, 0x50, 0xda, 0x96, 0xa6, + 0x11, 0xa3, 0x78, 0xc1, 0x92, 0xed, 0x5f, 0x87, 0x84, 0xe7, 0xd3, 0x74, 0x72, 0xc8, 0xd9, 0x54, + 0xcd, 0xa3, 0x05, 0x89, 0x9e, 0x33, 0x9a, 0x11, 0x9a, 0x21, 0x6f, 0x5b, 0xf2, 0x6a, 0x90, 0xe0, + 0x55, 0x24, 0xf6, 0xfe, 0x8e, 0x5f, 0x90, 0xa2, 0xeb, 0x8f, 0x19, 0x1f, 0x11, 0xec, 0x24, 0xdd, + 0x2d, 0x47, 0x74, 0xfd, 0x12, 0x70, 0x37, 0xc0, 0x49, 0xc9, 0x0c, 0xdb, 0xbd, 0xe3, 0x8b, 0x9f, + 0x46, 0x5e, 0x7b, 0x66, 0x5e, 0x6b, 0xe7, 0xd0, 0x06, 0x7e, 0xd5, 0xcf, 0xa1, 0x1d, 0x58, 0x65, + 0x89, 0xe8, 0x12, 0x69, 0xff, 0x01, 0x56, 0xe7, 0xd7, 0x6e, 0xae, 0xce, 0xed, 0x53, 0xb9, 0xf2, + 0x80, 0x66, 0xfc, 0xad, 0x5f, 0xf0, 0xb9, 0xc7, 0xd0, 0x63, 0xe3, 0x71, 0x1c, 0x51, 0x72, 0x96, + 0xa7, 0x97, 0x38, 0x3e, 0xb9, 0x38, 0x3e, 0x79, 0x0b, 0x44, 0x9d, 0x9a, 0x2b, 0xfd, 0x3a, 0xeb, + 0xe6, 0x73, 0xe8, 0xe8, 0x6a, 0x84, 0xbb, 0x57, 0xe4, 0xad, 0xaa, 0x44, 0xf1, 0x53, 0xdc, 0x28, + 0xae, 0x83, 0x38, 0x97, 0xb3, 0x46, 0xcb, 0x97, 0xc4, 0x73, 0xfb, 0x3b, 0x96, 0xf7, 0x6b, 0x0b, + 0x7a, 0x35, 0x05, 0x62, 0x75, 0x16, 0x65, 0x31, 0x51, 0x12, 0x24, 0xe1, 0xba, 0xb0, 0x12, 0x92, + 0x74, 0xa4, 0x0a, 0x19, 0x7f, 0xab, 0xe3, 0xd2, 0x29, 0xef, 0x24, 0x1e, 0x74, 0xa2, 0xd3, 0xa1, + 0x10, 0x34, 0x64, 0x39, 0x0d, 0xcb, 0xd7, 0x04, 0x0d, 0x13, 0x85, 0x14, 0x9d, 0x0e, 0x77, 0x83, + 0x70, 0x42, 0xe4, 0x9d, 0xbf, 0x81, 0x36, 0x99, 0xa0, 0xb7, 0x0f, 0xad, 0xf3, 0x28, 0x49, 0xf7, + 0xd8, 0x74, 0x2a, 0x36, 0x51, 0x48, 0x32, 0x71, 0x21, 0xb2, 0x30, 0xeb, 0x8a, 0x12, 0x05, 0x13, + 0x92, 0x71, 0x90, 0xc7, 0x99, 0x58, 0x5a, 0x6c, 0x5f, 0x0d, 0xf2, 0xfe, 0x66, 0xc3, 0x06, 0x4e, + 0x9f, 0x7b, 0x98, 0xbe, 0x50, 0x80, 0xee, 0x33, 0x68, 0xe0, 0x66, 0x53, 0x13, 0xef, 0xed, 0x13, + 0xab, 0x5c, 0xea, 0xfe, 0x00, 0x9a, 0x0c, 0x1b, 0xa3, 0x1a, 0x73, 0x3f, 0xbc, 0x89, 0xc9, 0x7c, + 0x38, 0xf0, 0x15, 0x97, 0x7b, 0x08, 0x20, 0xdf, 0x34, 0xca, 0xa3, 0x6e, 0x79, 0x19, 0x1a, 0xa7, + 0x08, 0x5e, 0x79, 0x48, 0x69, 0xaf, 0x07, 0x26, 0xe8, 0x9e, 0xc0, 0x3a, 0x9a, 0x7d, 0x5a, 0x5c, + 0x5d, 0x30, 0xc6, 0xcb, 0x6b, 0xac, 0x71, 0x7b, 0xbf, 0xb3, 0x54, 0x18, 0xc5, 0xd7, 0x21, 0xc1, + 0xd8, 0x6a, 0x21, 0xb1, 0xee, 0x14, 0x92, 0x4d, 0x68, 0x4d, 0x73, 0xed, 0x26, 0xe5, 0xf8, 0x25, + 0x5d, 0xa5, 0xc8, 0x59, 0x3a, 0x45, 0xde, 0xef, 0x2d, 0xe8, 0x7f, 0xc4, 0x22, 0x8a, 0x1f, 0x76, + 0x92, 0x24, 0x56, 0x4f, 0x5c, 0x77, 0xce, 0xf9, 0x0f, 0x61, 0x2d, 0x90, 0x62, 0x68, 0xa6, 0xd2, + 0xbe, 0xc4, 0xed, 0xa8, 0xe2, 0xd1, 0x06, 0x5d, 0x47, 0x1f, 0x74, 0xbd, 0x3f, 0x5a, 0xb0, 0x2e, + 0x83, 0xf2, 0x93, 0x3c, 0xca, 0xee, 0x6c, 0xdf, 0x2e, 0xb4, 0x66, 0x79, 0x94, 0xdd, 0xa1, 0x2a, + 0x4b, 0xbe, 0xf9, 0x7a, 0x72, 0x16, 0xd4, 0x93, 0xf7, 0x27, 0x0b, 0x1e, 0xd7, 0xc3, 0xba, 0x33, + 0x1a, 0x91, 0xe4, 0x5d, 0x6e, 0x29, 0x63, 0xd0, 0x5f, 0xa9, 0x0d, 0xfa, 0x0b, 0x4d, 0xf6, 0xc9, + 0x27, 0x64, 0xf4, 0xbf, 0x6b, 0xf2, 0x2f, 0x6d, 0xf8, 0xd2, 0x51, 0xb9, 0xf1, 0xce, 0x79, 0x40, + 0xd3, 0x31, 0xe1, 0xfc, 0x1d, 0xda, 0x7b, 0x0c, 0x5d, 0x4a, 0x5e, 0x57, 0x36, 0xa9, 0xed, 0xb8, + 0xac, 0x18, 0x93, 0x79, 0xb9, 0xde, 0xe5, 0xfd, 0xc7, 0x82, 0x0d, 0x29, 0xe7, 0xc7, 0xd1, 0xe8, + 0xea, 0x1d, 0x3a, 0x7f, 0x02, 0xeb, 0x57, 0x68, 0x81, 0xa0, 0xee, 0xd0, 0xb6, 0x6b, 0xdc, 0x4b, + 0xba, 0xff, 0xa9, 0x05, 0x0f, 0xa4, 0xa0, 0x17, 0xf4, 0x3a, 0x7a, 0x97, 0xc5, 0x7a, 0x06, 0xbd, + 0x48, 0x9a, 0x70, 0xc7, 0x00, 0xd4, 0xd9, 0x97, 0x8c, 0xc0, 0x9f, 0x2d, 0xe8, 0x49, 0x49, 0x07, + 0x34, 0x23, 0xfc, 0xce, 0xfe, 0xff, 0x08, 0xda, 0x84, 0x66, 0x3c, 0xa0, 0x77, 0xe9, 0x90, 0x3a, + 0xeb, 0x92, 0x4d, 0xf2, 0x0a, 0x1e, 0xc8, 0x77, 0x20, 0xad, 0xe3, 0x88, 0x89, 0x35, 0x08, 0xe5, + 0x98, 0x29, 0xef, 0x45, 0x05, 0x69, 0xbe, 0xf0, 0xa9, 0xbf, 0x6e, 0xaa, 0x17, 0xbe, 0x27, 0x00, + 0x41, 0x18, 0x7e, 0xcc, 0x78, 0x18, 0xd1, 0xe2, 0xf8, 0xd0, 0x10, 0xef, 0x23, 0xe8, 0x88, 0x99, + 0xf9, 0x5c, 0x7b, 0xd1, 0xb9, 0xf5, 0xcd, 0x49, 0x7f, 0x0d, 0xb2, 0xcd, 0xd7, 0x20, 0x2f, 0x80, + 0xcd, 0x39, 0xc3, 0x77, 0xc2, 0x50, 0x95, 0xde, 0x9e, 0x7c, 0xad, 0x2a, 0x34, 0xa9, 0x0c, 0x2c, + 0xba, 0x4a, 0xea, 0x06, 0xf9, 0x06, 0x93, 0xf7, 0x0b, 0x0b, 0xde, 0x9f, 0xd7, 0x91, 0x24, 0x9c, + 0x5d, 0xdf, 0xa3, 0x1a, 0xb3, 0xbf, 0xda, 0xf5, 0xfe, 0xba, 0xd0, 0x08, 0xe3, 0x4c, 0xf8, 0x1c, + 0x8c, 0xf8, 0x83, 0x05, 0x3d, 0x65, 0x44, 0x19, 0xe2, 0x6f, 0x43, 0x53, 0xbe, 0x74, 0x2b, 0x85, + 0xef, 0x2f, 0x54, 0x58, 0xbc, 0xd0, 0xfb, 0x6a, 0xf1, 0x7c, 0x59, 0xda, 0x8b, 0x66, 0xc1, 0xef, + 0x96, 0x6d, 0x60, 0xe9, 0xb7, 0x68, 0xc5, 0xe0, 0xfd, 0xb4, 0xa8, 0xe8, 0x7d, 0x12, 0x93, 0xfb, + 0x8c, 0x91, 0xf7, 0x12, 0xd6, 0xf1, 0xd9, 0xfd, 0x9e, 0xcb, 0xec, 0x63, 0xd8, 0x40, 0xb1, 0xf7, + 0x6e, 0xef, 0xcf, 0xe0, 0x0b, 0x55, 0x02, 0xf6, 0x2e, 0x03, 0x3a, 0xb9, 0x4f, 0xe9, 0xdf, 0x80, + 0x87, 0x43, 0x12, 0x8f, 0x85, 0xec, 0x97, 0x49, 0x58, 0xde, 0x53, 0x6e, 0x78, 0xef, 0xba, 0x68, + 0xe2, 0xdf, 0xc6, 0xdf, 0xfa, 0x6f, 0x00, 0x00, 0x00, 0xff, 0xff, 0x2f, 0x9a, 0xab, 0x73, 0x49, + 0x1e, 0x00, 0x00, } diff --git a/pkg/proto/sdk_ws/ws.proto b/pkg/proto/sdk_ws/ws.proto index ed7d7b739..ac8f8601f 100644 --- a/pkg/proto/sdk_ws/ws.proto +++ b/pkg/proto/sdk_ws/ws.proto @@ -228,13 +228,14 @@ message TipsComm{ // OnGroupCreated() message GroupCreatedTips{ GroupInfo group = 1; - GroupMemberFullInfo creator = 2; + GroupMemberFullInfo opUser = 2; repeated GroupMemberFullInfo memberList = 3; int64 operationTime = 4; + GroupMemberFullInfo groupOwnerUser = 5; } // OnGroupInfoSet() -message MemberInfoSetTips{ +message GroupInfoSetTips{ GroupMemberFullInfo opUser = 1; //who do this int64 muteTime = 2; GroupInfo group = 3; @@ -244,7 +245,7 @@ message MemberInfoSetTips{ message JoinGroupApplicationTips{ GroupInfo group = 1; PublicUserInfo applicant = 2; - string reason = 3; + string reqMsg = 3; } // OnQuitGroup() @@ -296,11 +297,11 @@ message MemberInvitedTips{ } //Actively join the group -//message MemberEnterTips{ -// GroupInfo group = 1; -// GroupMemberFullInfo entrantUser = 2; -// int64 operationTime = 3; -//} +message MemberEnterTips{ + GroupInfo group = 1; + GroupMemberFullInfo entrantUser = 2; + int64 operationTime = 3; +} @@ -309,20 +310,6 @@ message MemberInvitedTips{ -message GroupInfoChangedTips{ - int32 changedType = 1; //bitwise operators: 0001:groupName; 0010:Notification 0100:Introduction; 1000:FaceUrl - GroupInfo group = 2; - GroupMemberFullInfo opUser = 3; -} - -message JoinGroupApplicationTips{ - GroupInfo group = 1; - PublicUserInfo applicant = 2; - string reason = 3; -} - - - @@ -351,11 +338,18 @@ message FriendApplicationAddedTips{ } //FromUserID accept or reject ToUserID -message FriendApplicationProcessedTips{ +message FriendApplicationApprovedTips{ FromToUserID fromToUserID = 1; - int32 handleResult = 2; + string handleMsg = 2; } +//FromUserID accept or reject ToUserID +message FriendApplicationRejectedTips{ + FromToUserID fromToUserID = 1; + string handleMsg = 2; +} + + // FromUserID Added a friend ToUserID message FriendAddedTips{ FriendInfo friend = 1; From 92a6c7b89eb0042492f1669efc19f6cfdd124de1 Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Sun, 16 Jan 2022 18:58:07 +0800 Subject: [PATCH 499/814] Refactor code --- internal/rpc/msg/friend_notification.go | 16 +- internal/rpc/user/user.go | 4 +- pkg/common/constant/constant.go | 2 +- pkg/proto/sdk_ws/ws.pb.go | 400 ++++++++++++------------ pkg/proto/sdk_ws/ws.proto | 4 +- 5 files changed, 213 insertions(+), 213 deletions(-) diff --git a/internal/rpc/msg/friend_notification.go b/internal/rpc/msg/friend_notification.go index e1a6fd3ef..39e3684dc 100644 --- a/internal/rpc/msg/friend_notification.go +++ b/internal/rpc/msg/friend_notification.go @@ -97,10 +97,10 @@ func friendNotification(commID *pbFriend.CommID, contentType int32, m proto.Mess func FriendApplicationNotification(req *pbFriend.AddFriendReq) { log.Info(req.CommID.OperationID, utils.GetSelfFuncName(), "args: ", req.String()) - var friendApplicationAddedTips open_im_sdk.FriendApplicationAddedTips - friendApplicationAddedTips.FromToUserID.FromUserID = req.CommID.FromUserID - friendApplicationAddedTips.FromToUserID.ToUserID = req.CommID.ToUserID - friendNotification(req.CommID, constant.FriendApplicationNotification, &friendApplicationAddedTips) + var FriendApplicationTips open_im_sdk.FriendApplicationTips + FriendApplicationTips.FromToUserID.FromUserID = req.CommID.FromUserID + FriendApplicationTips.FromToUserID.ToUserID = req.CommID.ToUserID + friendNotification(req.CommID, constant.FriendApplicationNotification, &FriendApplicationTips) //fromUserNickname, toUserNickname, err := getFromToUserNickname(req.CommID.FromUserID, req.CommID.ToUserID) //if err != nil { // log.Error(req.CommID.OperationID, "getFromToUserNickname failed ", err.Error(), req.CommID.FromUserID, req.CommID.ToUserID) @@ -408,11 +408,11 @@ func BlackDeletedNotification(req *pbFriend.RemoveBlacklistReq) { // PublicUserInfo OpUser = 2; // uint64 OperationTime = 3; //} -func SelfInfoUpdatedNotification(operationID, userID string, opUserID string) { - var selfInfoUpdatedTips open_im_sdk.SelfInfoUpdatedTips +func UserInfoUpdatedNotification(operationID, userID string, needNotifiedUserID string) { + var selfInfoUpdatedTips open_im_sdk.UserInfoUpdatedTips selfInfoUpdatedTips.UserID = userID - commID := pbFriend.CommID{FromUserID: userID, ToUserID: userID, OpUserID: opUserID, OperationID: operationID} - friendNotification(&commID, constant.SelfInfoUpdatedNotification, &selfInfoUpdatedTips) + commID := pbFriend.CommID{FromUserID: userID, ToUserID: userID, OpUserID: needNotifiedUserID, OperationID: operationID} + friendNotification(&commID, constant.UserInfoUpdatedNotification, &selfInfoUpdatedTips) //u, err := imdb.GetUserByUserID(userID) //if err != nil { // log.NewError(operationID, "FindUserByUID failed ", err.Error(), userID) diff --git a/internal/rpc/user/user.go b/internal/rpc/user/user.go index e4366d6b6..a0c451026 100644 --- a/internal/rpc/user/user.go +++ b/internal/rpc/user/user.go @@ -235,8 +235,8 @@ func (s *userServer) UpdateUserInfo(ctx context.Context, req *pbUser.UpdateUserI return &pbUser.UpdateUserInfoResp{CommonResp: &pbUser.CommonResp{}}, nil } for _, v := range RpcResp.FriendInfoList { - chat.FriendInfoChangedNotification(req.OperationID, req.OpUserID, req.UserInfo.UserID, v.FriendUser.UserID) + chat.UserInfoUpdatedNotification(req.OperationID, req.UserInfo.UserID, v.FriendUser.UserID) } - chat.SelfInfoUpdatedNotification(req.OperationID, req.UserInfo.UserID, req.OpUserID) + chat.UserInfoUpdatedNotification(req.OperationID, req.UserInfo.UserID, req.OpUserID) return &pbUser.UpdateUserInfoResp{CommonResp: &pbUser.CommonResp{}}, nil } diff --git a/pkg/common/constant/constant.go b/pkg/common/constant/constant.go index 532aef20f..cd0c99fae 100644 --- a/pkg/common/constant/constant.go +++ b/pkg/common/constant/constant.go @@ -55,7 +55,7 @@ const ( BlackAddedNotification = 1207 //add_black BlackDeletedNotification = 1208 //remove_black - SelfInfoUpdatedNotification = 1303 //SetSelfInfoTip = 204 + UserInfoUpdatedNotification = 1303 //SetSelfInfoTip = 204 GroupCreatedNotification = 1501 GroupInfoSetNotification = 1502 diff --git a/pkg/proto/sdk_ws/ws.pb.go b/pkg/proto/sdk_ws/ws.pb.go index 5fa6688bd..5dc1cae3b 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_4239643aeea36936, []int{0} + return fileDescriptor_ws_551a30e7c7c24c98, []int{0} } func (m *GroupInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupInfo.Unmarshal(m, b) @@ -164,7 +164,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_4239643aeea36936, []int{1} + return fileDescriptor_ws_551a30e7c7c24c98, []int{1} } func (m *GroupMemberFullInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupMemberFullInfo.Unmarshal(m, b) @@ -269,7 +269,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_4239643aeea36936, []int{2} + return fileDescriptor_ws_551a30e7c7c24c98, []int{2} } func (m *PublicUserInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_PublicUserInfo.Unmarshal(m, b) @@ -344,7 +344,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_4239643aeea36936, []int{3} + return fileDescriptor_ws_551a30e7c7c24c98, []int{3} } func (m *UserInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_UserInfo.Unmarshal(m, b) @@ -451,7 +451,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_4239643aeea36936, []int{4} + return fileDescriptor_ws_551a30e7c7c24c98, []int{4} } func (m *FriendInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FriendInfo.Unmarshal(m, b) @@ -536,7 +536,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_4239643aeea36936, []int{5} + return fileDescriptor_ws_551a30e7c7c24c98, []int{5} } func (m *BlackInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_BlackInfo.Unmarshal(m, b) @@ -617,7 +617,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_4239643aeea36936, []int{6} + return fileDescriptor_ws_551a30e7c7c24c98, []int{6} } func (m *GroupRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupRequest.Unmarshal(m, b) @@ -725,7 +725,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_4239643aeea36936, []int{7} + return fileDescriptor_ws_551a30e7c7c24c98, []int{7} } func (m *FriendRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FriendRequest.Unmarshal(m, b) @@ -866,7 +866,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_4239643aeea36936, []int{8} + return fileDescriptor_ws_551a30e7c7c24c98, []int{8} } func (m *PullMessageBySeqListResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_PullMessageBySeqListResp.Unmarshal(m, b) @@ -941,7 +941,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_4239643aeea36936, []int{9} + return fileDescriptor_ws_551a30e7c7c24c98, []int{9} } func (m *PullMessageBySeqListReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_PullMessageBySeqListReq.Unmarshal(m, b) @@ -996,7 +996,7 @@ func (m *PullMessageReq) Reset() { *m = PullMessageReq{} } func (m *PullMessageReq) String() string { return proto.CompactTextString(m) } func (*PullMessageReq) ProtoMessage() {} func (*PullMessageReq) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_4239643aeea36936, []int{10} + return fileDescriptor_ws_551a30e7c7c24c98, []int{10} } func (m *PullMessageReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_PullMessageReq.Unmarshal(m, b) @@ -1060,7 +1060,7 @@ func (m *PullMessageResp) Reset() { *m = PullMessageResp{} } func (m *PullMessageResp) String() string { return proto.CompactTextString(m) } func (*PullMessageResp) ProtoMessage() {} func (*PullMessageResp) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_4239643aeea36936, []int{11} + return fileDescriptor_ws_551a30e7c7c24c98, []int{11} } func (m *PullMessageResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_PullMessageResp.Unmarshal(m, b) @@ -1132,7 +1132,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_4239643aeea36936, []int{12} + return fileDescriptor_ws_551a30e7c7c24c98, []int{12} } func (m *GetMaxAndMinSeqReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetMaxAndMinSeqReq.Unmarshal(m, b) @@ -1164,7 +1164,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_4239643aeea36936, []int{13} + return fileDescriptor_ws_551a30e7c7c24c98, []int{13} } func (m *GetMaxAndMinSeqResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetMaxAndMinSeqResp.Unmarshal(m, b) @@ -1212,7 +1212,7 @@ func (m *GatherFormat) Reset() { *m = GatherFormat{} } func (m *GatherFormat) String() string { return proto.CompactTextString(m) } func (*GatherFormat) ProtoMessage() {} func (*GatherFormat) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_4239643aeea36936, []int{14} + return fileDescriptor_ws_551a30e7c7c24c98, []int{14} } func (m *GatherFormat) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GatherFormat.Unmarshal(m, b) @@ -1259,7 +1259,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_4239643aeea36936, []int{15} + return fileDescriptor_ws_551a30e7c7c24c98, []int{15} } func (m *UserSendMsgResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_UserSendMsgResp.Unmarshal(m, b) @@ -1328,7 +1328,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_4239643aeea36936, []int{16} + return fileDescriptor_ws_551a30e7c7c24c98, []int{16} } func (m *MsgData) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MsgData.Unmarshal(m, b) @@ -1489,7 +1489,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_4239643aeea36936, []int{17} + return fileDescriptor_ws_551a30e7c7c24c98, []int{17} } func (m *OfflinePushInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_OfflinePushInfo.Unmarshal(m, b) @@ -1556,7 +1556,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_4239643aeea36936, []int{18} + return fileDescriptor_ws_551a30e7c7c24c98, []int{18} } func (m *TipsComm) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_TipsComm.Unmarshal(m, b) @@ -1606,7 +1606,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_4239643aeea36936, []int{19} + return fileDescriptor_ws_551a30e7c7c24c98, []int{19} } func (m *GroupCreatedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupCreatedTips.Unmarshal(m, b) @@ -1675,7 +1675,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_4239643aeea36936, []int{20} + return fileDescriptor_ws_551a30e7c7c24c98, []int{20} } func (m *GroupInfoSetTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupInfoSetTips.Unmarshal(m, b) @@ -1730,7 +1730,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_4239643aeea36936, []int{21} + return fileDescriptor_ws_551a30e7c7c24c98, []int{21} } func (m *JoinGroupApplicationTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_JoinGroupApplicationTips.Unmarshal(m, b) @@ -1786,7 +1786,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_4239643aeea36936, []int{22} + return fileDescriptor_ws_551a30e7c7c24c98, []int{22} } func (m *MemberQuitTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MemberQuitTips.Unmarshal(m, b) @@ -1841,7 +1841,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_4239643aeea36936, []int{23} + return fileDescriptor_ws_551a30e7c7c24c98, []int{23} } func (m *GroupApplicationAcceptedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupApplicationAcceptedTips.Unmarshal(m, b) @@ -1896,7 +1896,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_4239643aeea36936, []int{24} + return fileDescriptor_ws_551a30e7c7c24c98, []int{24} } func (m *GroupApplicationRejectedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupApplicationRejectedTips.Unmarshal(m, b) @@ -1952,7 +1952,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_4239643aeea36936, []int{25} + return fileDescriptor_ws_551a30e7c7c24c98, []int{25} } func (m *GroupOwnerTransferredTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupOwnerTransferredTips.Unmarshal(m, b) @@ -2015,7 +2015,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_4239643aeea36936, []int{26} + return fileDescriptor_ws_551a30e7c7c24c98, []int{26} } func (m *MemberKickedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MemberKickedTips.Unmarshal(m, b) @@ -2078,7 +2078,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_4239643aeea36936, []int{27} + return fileDescriptor_ws_551a30e7c7c24c98, []int{27} } func (m *MemberInvitedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MemberInvitedTips.Unmarshal(m, b) @@ -2140,7 +2140,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_4239643aeea36936, []int{28} + return fileDescriptor_ws_551a30e7c7c24c98, []int{28} } func (m *MemberEnterTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MemberEnterTips.Unmarshal(m, b) @@ -2194,7 +2194,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_4239643aeea36936, []int{29} + return fileDescriptor_ws_551a30e7c7c24c98, []int{29} } func (m *FriendApplication) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FriendApplication.Unmarshal(m, b) @@ -2247,7 +2247,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_4239643aeea36936, []int{30} + return fileDescriptor_ws_551a30e7c7c24c98, []int{30} } func (m *FromToUserID) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FromToUserID.Unmarshal(m, b) @@ -2282,38 +2282,38 @@ func (m *FromToUserID) GetToUserID() string { } // FromUserID apply to add ToUserID -type FriendApplicationAddedTips struct { +type FriendApplicationTips struct { FromToUserID *FromToUserID `protobuf:"bytes,1,opt,name=fromToUserID" json:"fromToUserID,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` } -func (m *FriendApplicationAddedTips) Reset() { *m = FriendApplicationAddedTips{} } -func (m *FriendApplicationAddedTips) String() string { return proto.CompactTextString(m) } -func (*FriendApplicationAddedTips) ProtoMessage() {} -func (*FriendApplicationAddedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_4239643aeea36936, []int{31} +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_551a30e7c7c24c98, []int{31} } -func (m *FriendApplicationAddedTips) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_FriendApplicationAddedTips.Unmarshal(m, b) +func (m *FriendApplicationTips) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_FriendApplicationTips.Unmarshal(m, b) } -func (m *FriendApplicationAddedTips) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_FriendApplicationAddedTips.Marshal(b, m, deterministic) +func (m *FriendApplicationTips) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_FriendApplicationTips.Marshal(b, m, deterministic) } -func (dst *FriendApplicationAddedTips) XXX_Merge(src proto.Message) { - xxx_messageInfo_FriendApplicationAddedTips.Merge(dst, src) +func (dst *FriendApplicationTips) XXX_Merge(src proto.Message) { + xxx_messageInfo_FriendApplicationTips.Merge(dst, src) } -func (m *FriendApplicationAddedTips) XXX_Size() int { - return xxx_messageInfo_FriendApplicationAddedTips.Size(m) +func (m *FriendApplicationTips) XXX_Size() int { + return xxx_messageInfo_FriendApplicationTips.Size(m) } -func (m *FriendApplicationAddedTips) XXX_DiscardUnknown() { - xxx_messageInfo_FriendApplicationAddedTips.DiscardUnknown(m) +func (m *FriendApplicationTips) XXX_DiscardUnknown() { + xxx_messageInfo_FriendApplicationTips.DiscardUnknown(m) } -var xxx_messageInfo_FriendApplicationAddedTips proto.InternalMessageInfo +var xxx_messageInfo_FriendApplicationTips proto.InternalMessageInfo -func (m *FriendApplicationAddedTips) GetFromToUserID() *FromToUserID { +func (m *FriendApplicationTips) GetFromToUserID() *FromToUserID { if m != nil { return m.FromToUserID } @@ -2333,7 +2333,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_4239643aeea36936, []int{32} + return fileDescriptor_ws_551a30e7c7c24c98, []int{32} } func (m *FriendApplicationApprovedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FriendApplicationApprovedTips.Unmarshal(m, b) @@ -2380,7 +2380,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_4239643aeea36936, []int{33} + return fileDescriptor_ws_551a30e7c7c24c98, []int{33} } func (m *FriendApplicationRejectedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FriendApplicationRejectedTips.Unmarshal(m, b) @@ -2428,7 +2428,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_4239643aeea36936, []int{34} + return fileDescriptor_ws_551a30e7c7c24c98, []int{34} } func (m *FriendAddedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FriendAddedTips.Unmarshal(m, b) @@ -2481,7 +2481,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_4239643aeea36936, []int{35} + return fileDescriptor_ws_551a30e7c7c24c98, []int{35} } func (m *FriendDeletedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FriendDeletedTips.Unmarshal(m, b) @@ -2519,7 +2519,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_4239643aeea36936, []int{36} + return fileDescriptor_ws_551a30e7c7c24c98, []int{36} } func (m *BlackAddedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_BlackAddedTips.Unmarshal(m, b) @@ -2557,7 +2557,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_4239643aeea36936, []int{37} + return fileDescriptor_ws_551a30e7c7c24c98, []int{37} } func (m *BlackDeletedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_BlackDeletedTips.Unmarshal(m, b) @@ -2595,7 +2595,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_4239643aeea36936, []int{38} + return fileDescriptor_ws_551a30e7c7c24c98, []int{38} } func (m *FriendInfoChangedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FriendInfoChangedTips.Unmarshal(m, b) @@ -2623,38 +2623,38 @@ func (m *FriendInfoChangedTips) GetFromToUserID() *FromToUserID { } // ////////////////////user///////////////////// -type SelfInfoUpdatedTips struct { +type UserInfoUpdatedTips struct { UserID string `protobuf:"bytes,1,opt,name=userID" json:"userID,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` } -func (m *SelfInfoUpdatedTips) Reset() { *m = SelfInfoUpdatedTips{} } -func (m *SelfInfoUpdatedTips) String() string { return proto.CompactTextString(m) } -func (*SelfInfoUpdatedTips) ProtoMessage() {} -func (*SelfInfoUpdatedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_4239643aeea36936, []int{39} +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_551a30e7c7c24c98, []int{39} } -func (m *SelfInfoUpdatedTips) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_SelfInfoUpdatedTips.Unmarshal(m, b) +func (m *UserInfoUpdatedTips) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_UserInfoUpdatedTips.Unmarshal(m, b) } -func (m *SelfInfoUpdatedTips) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_SelfInfoUpdatedTips.Marshal(b, m, deterministic) +func (m *UserInfoUpdatedTips) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_UserInfoUpdatedTips.Marshal(b, m, deterministic) } -func (dst *SelfInfoUpdatedTips) XXX_Merge(src proto.Message) { - xxx_messageInfo_SelfInfoUpdatedTips.Merge(dst, src) +func (dst *UserInfoUpdatedTips) XXX_Merge(src proto.Message) { + xxx_messageInfo_UserInfoUpdatedTips.Merge(dst, src) } -func (m *SelfInfoUpdatedTips) XXX_Size() int { - return xxx_messageInfo_SelfInfoUpdatedTips.Size(m) +func (m *UserInfoUpdatedTips) XXX_Size() int { + return xxx_messageInfo_UserInfoUpdatedTips.Size(m) } -func (m *SelfInfoUpdatedTips) XXX_DiscardUnknown() { - xxx_messageInfo_SelfInfoUpdatedTips.DiscardUnknown(m) +func (m *UserInfoUpdatedTips) XXX_DiscardUnknown() { + xxx_messageInfo_UserInfoUpdatedTips.DiscardUnknown(m) } -var xxx_messageInfo_SelfInfoUpdatedTips proto.InternalMessageInfo +var xxx_messageInfo_UserInfoUpdatedTips proto.InternalMessageInfo -func (m *SelfInfoUpdatedTips) GetUserID() string { +func (m *UserInfoUpdatedTips) GetUserID() string { if m != nil { return m.UserID } @@ -2694,7 +2694,7 @@ func init() { proto.RegisterType((*MemberEnterTips)(nil), "server_api_params.MemberEnterTips") proto.RegisterType((*FriendApplication)(nil), "server_api_params.FriendApplication") proto.RegisterType((*FromToUserID)(nil), "server_api_params.FromToUserID") - proto.RegisterType((*FriendApplicationAddedTips)(nil), "server_api_params.FriendApplicationAddedTips") + proto.RegisterType((*FriendApplicationTips)(nil), "server_api_params.FriendApplicationTips") proto.RegisterType((*FriendApplicationApprovedTips)(nil), "server_api_params.FriendApplicationApprovedTips") proto.RegisterType((*FriendApplicationRejectedTips)(nil), "server_api_params.FriendApplicationRejectedTips") proto.RegisterType((*FriendAddedTips)(nil), "server_api_params.FriendAddedTips") @@ -2702,138 +2702,138 @@ func init() { proto.RegisterType((*BlackAddedTips)(nil), "server_api_params.BlackAddedTips") proto.RegisterType((*BlackDeletedTips)(nil), "server_api_params.BlackDeletedTips") proto.RegisterType((*FriendInfoChangedTips)(nil), "server_api_params.FriendInfoChangedTips") - proto.RegisterType((*SelfInfoUpdatedTips)(nil), "server_api_params.SelfInfoUpdatedTips") + proto.RegisterType((*UserInfoUpdatedTips)(nil), "server_api_params.UserInfoUpdatedTips") } -func init() { proto.RegisterFile("sdk_ws/ws.proto", fileDescriptor_ws_4239643aeea36936) } +func init() { proto.RegisterFile("sdk_ws/ws.proto", fileDescriptor_ws_551a30e7c7c24c98) } -var fileDescriptor_ws_4239643aeea36936 = []byte{ +var fileDescriptor_ws_551a30e7c7c24c98 = []byte{ // 2019 bytes of a gzipped FileDescriptorProto 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe4, 0x59, 0x4f, 0x6f, 0x23, 0x49, - 0x15, 0x57, 0x77, 0xc7, 0x8e, 0xf3, 0x6c, 0xc7, 0x99, 0x9e, 0x65, 0x30, 0x61, 0x76, 0x08, 0xad, - 0xd5, 0x32, 0x42, 0x22, 0x48, 0x83, 0x90, 0x60, 0x10, 0xa0, 0xfc, 0x67, 0x96, 0x38, 0x09, 0xed, + 0x15, 0x57, 0x77, 0xc7, 0x8e, 0xfd, 0x6c, 0xc7, 0x99, 0x9e, 0x65, 0x30, 0xc3, 0xec, 0x10, 0x5a, + 0xab, 0x25, 0x42, 0x22, 0x48, 0x83, 0x90, 0x60, 0x10, 0xa0, 0xfc, 0x67, 0x96, 0x38, 0x09, 0x9d, 0x8c, 0x96, 0x03, 0xd2, 0xa8, 0xe3, 0x2e, 0x3b, 0xbd, 0x69, 0x57, 0xb5, 0xab, 0xbb, 0x33, 0x33, 0x17, 0x0e, 0x70, 0xe1, 0x0b, 0xc0, 0x91, 0x03, 0x17, 0xc4, 0x05, 0x71, 0x41, 0xdc, 0x11, 0x5f, 0x80, 0x33, 0x5f, 0x81, 0x2b, 0x07, 0x24, 0xa4, 0x45, 0xf5, 0xaa, 0xba, 0xbb, 0xaa, 0xed, 0x64, - 0xad, 0x28, 0xda, 0x41, 0xe2, 0xe6, 0xf7, 0xeb, 0x7a, 0xff, 0x5f, 0xbd, 0x7a, 0x55, 0x86, 0x5e, - 0x1a, 0x5e, 0xbd, 0x7a, 0x9d, 0x7e, 0xf3, 0x75, 0xba, 0x9d, 0x70, 0x96, 0x31, 0xf7, 0x41, 0x4a, - 0xf8, 0x35, 0xe1, 0xaf, 0x82, 0x24, 0x7a, 0x95, 0x04, 0x3c, 0x98, 0xa6, 0xde, 0xbf, 0x6c, 0x58, - 0x3b, 0xe2, 0x2c, 0x4f, 0x5e, 0xd0, 0x31, 0x73, 0xfb, 0xb0, 0x3a, 0x41, 0x62, 0xbf, 0x6f, 0x6d, - 0x59, 0x4f, 0xd7, 0xfc, 0x82, 0x74, 0x1f, 0xc3, 0x1a, 0xfe, 0x3c, 0x09, 0xa6, 0xa4, 0x6f, 0xe3, - 0xb7, 0x0a, 0x70, 0x3d, 0xe8, 0x50, 0x96, 0x45, 0xe3, 0x68, 0x14, 0x64, 0x11, 0xa3, 0x7d, 0x07, - 0x17, 0x18, 0x98, 0x58, 0x13, 0xd1, 0x8c, 0xb3, 0x30, 0x1f, 0xe1, 0x9a, 0x15, 0xb9, 0x46, 0xc7, - 0x84, 0xfe, 0x71, 0x30, 0x22, 0x2f, 0xfd, 0xe3, 0x7e, 0x43, 0xea, 0x57, 0xa4, 0xbb, 0x05, 0x6d, - 0xf6, 0x9a, 0x12, 0xfe, 0x32, 0x25, 0xfc, 0xc5, 0x7e, 0xbf, 0x89, 0x5f, 0x75, 0xc8, 0x7d, 0x02, - 0x30, 0xe2, 0x24, 0xc8, 0xc8, 0x79, 0x34, 0x25, 0xfd, 0xd5, 0x2d, 0xeb, 0x69, 0xd7, 0xd7, 0x10, - 0x21, 0x61, 0x4a, 0xa6, 0x17, 0x84, 0xef, 0xb1, 0x9c, 0x66, 0xfd, 0x16, 0x2e, 0xd0, 0x21, 0x77, - 0x1d, 0x6c, 0xf2, 0xa6, 0xbf, 0x86, 0xa2, 0x6d, 0xf2, 0xc6, 0x7d, 0x04, 0xcd, 0x34, 0x0b, 0xb2, - 0x3c, 0xed, 0xc3, 0x96, 0xf5, 0xb4, 0xe1, 0x2b, 0xca, 0xfd, 0x00, 0xba, 0x28, 0x97, 0x15, 0xd6, - 0xb4, 0x91, 0xc5, 0x04, 0xcb, 0x88, 0x9d, 0xbf, 0x4d, 0x48, 0xbf, 0x83, 0x02, 0x2a, 0xc0, 0xfb, - 0x8b, 0x0d, 0x0f, 0x31, 0xee, 0x03, 0x34, 0xe0, 0x30, 0x8f, 0xe3, 0xcf, 0xc8, 0xc0, 0x23, 0x68, - 0xe6, 0x52, 0x9d, 0x0c, 0xbf, 0xa2, 0x84, 0x1e, 0xce, 0x62, 0x72, 0x4c, 0xae, 0x49, 0x8c, 0x81, - 0x6f, 0xf8, 0x15, 0xe0, 0x6e, 0x42, 0xeb, 0x13, 0x16, 0x51, 0x8c, 0x89, 0x88, 0xb8, 0xe3, 0x97, - 0xb4, 0xf8, 0x46, 0xa3, 0xd1, 0x15, 0x15, 0x29, 0x95, 0xe1, 0x2e, 0x69, 0x3d, 0x13, 0x4d, 0x33, - 0x13, 0x1f, 0xc2, 0x7a, 0x90, 0x24, 0x83, 0x80, 0x4e, 0x08, 0x97, 0x4a, 0x57, 0x51, 0x69, 0x0d, - 0x15, 0xf9, 0x10, 0x9a, 0x86, 0x2c, 0xe7, 0x23, 0x82, 0xe1, 0x6e, 0xf8, 0x1a, 0x22, 0xe4, 0xb0, - 0x84, 0x70, 0x2d, 0x8c, 0x32, 0xf2, 0x35, 0x54, 0x65, 0x05, 0x8a, 0xac, 0x78, 0xbf, 0xb5, 0x60, - 0xfd, 0x2c, 0xbf, 0x88, 0xa3, 0x11, 0x2e, 0x10, 0x41, 0xab, 0x42, 0x63, 0x19, 0xa1, 0xd1, 0x1d, - 0xb4, 0x6f, 0x76, 0xd0, 0x31, 0x1d, 0x7c, 0x04, 0xcd, 0x09, 0xa1, 0x21, 0xe1, 0x18, 0xb0, 0x86, - 0xaf, 0xa8, 0x05, 0x8e, 0x37, 0x16, 0x39, 0xee, 0xfd, 0xc6, 0x86, 0xd6, 0xe7, 0x6c, 0xda, 0x16, - 0xb4, 0x93, 0x4b, 0x46, 0xc9, 0x49, 0x2e, 0x8a, 0x49, 0x25, 0x53, 0x87, 0xdc, 0xf7, 0xa0, 0x71, - 0x11, 0xf1, 0xec, 0x12, 0xb3, 0xd9, 0xf5, 0x25, 0x21, 0x50, 0x32, 0x0d, 0x22, 0x99, 0xc2, 0x35, - 0x5f, 0x12, 0x2a, 0xe2, 0xad, 0x72, 0x1f, 0x98, 0x3b, 0x6b, 0x6d, 0x6e, 0x67, 0xcd, 0x07, 0x06, - 0x16, 0x06, 0xe6, 0xdf, 0x16, 0xc0, 0x21, 0x8f, 0x08, 0x0d, 0x31, 0x34, 0xb5, 0x2d, 0x6d, 0xcd, - 0x6f, 0xe9, 0x47, 0xd0, 0xe4, 0x64, 0x1a, 0xf0, 0xab, 0xa2, 0xe4, 0x25, 0x55, 0x33, 0xc8, 0x99, - 0x33, 0xe8, 0x7b, 0x00, 0x63, 0xd4, 0x23, 0xe4, 0x60, 0xa8, 0xda, 0xcf, 0xbe, 0xbc, 0x3d, 0xd7, - 0xfc, 0xb6, 0x8b, 0x2c, 0xf9, 0xda, 0x72, 0xb1, 0x9f, 0x82, 0x30, 0x54, 0x65, 0x2b, 0x33, 0x5c, - 0x01, 0x0b, 0xaa, 0xb6, 0x79, 0x4b, 0xd5, 0xae, 0x96, 0x55, 0xfb, 0x4f, 0x0b, 0xd6, 0x76, 0xe3, - 0x60, 0x74, 0xb5, 0xa4, 0xeb, 0xa6, 0x8b, 0xf6, 0x9c, 0x8b, 0x47, 0xd0, 0xbd, 0x10, 0xe2, 0x0a, - 0x17, 0x30, 0x0a, 0xed, 0x67, 0x5f, 0x5d, 0xe0, 0xa5, 0xb9, 0x59, 0x7c, 0x93, 0xcf, 0x74, 0x77, - 0xe5, 0xb3, 0xdd, 0x6d, 0xdc, 0xe2, 0x6e, 0xb3, 0x74, 0xf7, 0xef, 0x36, 0x74, 0xb0, 0xbd, 0xf9, - 0x64, 0x96, 0x93, 0x34, 0x73, 0xbf, 0x0f, 0xad, 0xbc, 0x30, 0xd5, 0x5a, 0xd6, 0xd4, 0x92, 0xc5, - 0x7d, 0xae, 0x9a, 0x29, 0xf2, 0xdb, 0xc8, 0xff, 0x78, 0x01, 0x7f, 0x79, 0x92, 0xf9, 0xd5, 0x72, - 0x71, 0xf0, 0x5c, 0x06, 0x34, 0x8c, 0x89, 0x4f, 0xd2, 0x3c, 0xce, 0x8a, 0xc3, 0x49, 0xc7, 0x64, - 0xa5, 0xcd, 0x06, 0xe9, 0x44, 0x1d, 0x4b, 0x8a, 0x12, 0xd1, 0x91, 0xeb, 0xc4, 0x27, 0xe9, 0x7a, - 0x05, 0x88, 0x8d, 0xca, 0xc9, 0x0c, 0x33, 0x24, 0xb7, 0x55, 0x41, 0x56, 0x3a, 0x55, 0xd4, 0x56, - 0x75, 0x9d, 0x55, 0x8a, 0x25, 0x8d, 0x02, 0xe4, 0x79, 0xa4, 0x21, 0xf5, 0xe3, 0xc8, 0xfb, 0x87, - 0x03, 0x5d, 0xb9, 0x7d, 0x8a, 0xa0, 0x3e, 0x11, 0x75, 0xce, 0xa6, 0x46, 0x15, 0x69, 0x88, 0xb0, - 0x42, 0x50, 0x27, 0x66, 0xa3, 0x31, 0x30, 0x51, 0x8a, 0x82, 0x3e, 0x34, 0x1a, 0x8e, 0x0e, 0x15, - 0x5a, 0x8e, 0xf4, 0xc6, 0xa3, 0x21, 0xa2, 0x95, 0x65, 0xcc, 0xa8, 0x8e, 0x92, 0x16, 0xbc, 0x19, - 0x2b, 0xf5, 0xcb, 0xfa, 0xd0, 0x10, 0x11, 0xdf, 0x8c, 0x15, 0xba, 0x65, 0x90, 0x2a, 0x40, 0x4a, - 0x56, 0x7a, 0xe5, 0x01, 0x52, 0xd2, 0x73, 0x59, 0x5d, 0xc3, 0xef, 0x37, 0x65, 0x15, 0x8c, 0xac, - 0x9a, 0x9b, 0xab, 0x3d, 0xb7, 0xb9, 0x3e, 0x80, 0xae, 0x94, 0x53, 0x14, 0x7d, 0x47, 0x1e, 0xf0, - 0x06, 0x68, 0xd6, 0x46, 0xb7, 0x5e, 0x1b, 0x66, 0x76, 0xd7, 0x6f, 0xc8, 0x6e, 0xaf, 0xcc, 0xee, - 0xaf, 0x6c, 0xe8, 0x9f, 0xe5, 0x71, 0x3c, 0x20, 0x69, 0x1a, 0x4c, 0xc8, 0xee, 0xdb, 0x21, 0x99, - 0x1d, 0x47, 0x69, 0xe6, 0x93, 0x34, 0x11, 0x85, 0x46, 0x38, 0xdf, 0x63, 0x21, 0xc1, 0x2c, 0x37, - 0xfc, 0x82, 0x14, 0x2e, 0x12, 0xce, 0x85, 0x05, 0xaa, 0x45, 0x4a, 0x4a, 0xe0, 0xd3, 0xe0, 0xcd, - 0x90, 0xcc, 0x30, 0xa3, 0x8e, 0xaf, 0x28, 0xc4, 0x23, 0x2a, 0xf0, 0x15, 0x85, 0x23, 0xe5, 0x1e, - 0x40, 0x37, 0x8d, 0xe8, 0x44, 0x16, 0xa7, 0x2c, 0x76, 0xe7, 0x69, 0xfb, 0xd9, 0x57, 0x16, 0x6d, - 0xb2, 0x20, 0xbb, 0x24, 0xfc, 0x90, 0xf1, 0x69, 0x90, 0xf9, 0x26, 0x97, 0xbb, 0x07, 0x1d, 0xdc, - 0x78, 0x85, 0x94, 0xe6, 0x72, 0x52, 0x0c, 0x26, 0x6f, 0x0a, 0x5f, 0x5c, 0x1c, 0x89, 0xd9, 0x8d, - 0xc7, 0xa9, 0x68, 0xa8, 0xd8, 0x91, 0x22, 0x46, 0xcb, 0x09, 0x49, 0x87, 0x44, 0x08, 0x53, 0x29, - 0xa7, 0xef, 0x6c, 0x39, 0x4f, 0x1d, 0xbf, 0x20, 0xbd, 0x9f, 0x8b, 0x79, 0xa2, 0x54, 0x77, 0x9b, - 0x96, 0x4d, 0x68, 0xa5, 0x64, 0xb6, 0x4b, 0x26, 0x11, 0x45, 0x15, 0x8e, 0x5f, 0xd2, 0x38, 0x2c, - 0x92, 0xd9, 0x01, 0x0d, 0x8b, 0x80, 0x4b, 0xaa, 0x6e, 0xd9, 0xca, 0x9c, 0x65, 0xde, 0xa7, 0x16, - 0xf4, 0x0c, 0x03, 0xfe, 0xef, 0x12, 0xfe, 0x1e, 0xb8, 0x47, 0x24, 0x1b, 0x04, 0x6f, 0x76, 0x68, - 0x38, 0x40, 0xf3, 0x7c, 0x32, 0xf3, 0x0e, 0xe0, 0xe1, 0x1c, 0x9a, 0x26, 0x9a, 0xa3, 0xd6, 0x0d, - 0x8e, 0xda, 0xba, 0xa3, 0xde, 0x09, 0x74, 0x74, 0xd5, 0x62, 0xe3, 0x45, 0xa1, 0x4a, 0xac, 0x1d, - 0x85, 0xee, 0x36, 0xac, 0xc4, 0xa2, 0x2a, 0x6c, 0xb4, 0x7c, 0x73, 0x81, 0xe5, 0x83, 0x74, 0xb2, - 0x1f, 0x64, 0x81, 0x8f, 0xeb, 0xbc, 0x19, 0xf4, 0x84, 0xdd, 0x43, 0x42, 0xc3, 0x41, 0x3a, 0x41, - 0x93, 0xb6, 0xa0, 0x2d, 0xb9, 0x06, 0xe9, 0xa4, 0x3a, 0xce, 0x35, 0x48, 0xac, 0x18, 0xc5, 0x11, - 0xa1, 0x99, 0x5c, 0xa1, 0xea, 0x53, 0x83, 0x64, 0x6d, 0xd1, 0xb0, 0x9c, 0x68, 0xb0, 0xb6, 0x24, - 0xed, 0xfd, 0xb5, 0x01, 0xab, 0xca, 0x08, 0x59, 0x67, 0x34, 0xac, 0x6a, 0x53, 0x52, 0xb2, 0xd7, - 0x8d, 0xae, 0xab, 0xeb, 0x81, 0xa4, 0xf4, 0x0b, 0x85, 0x63, 0x5e, 0x28, 0x6a, 0x36, 0xad, 0xcc, - 0xdb, 0x54, 0xf3, 0xab, 0x31, 0xef, 0xd7, 0xd7, 0x61, 0x23, 0xc5, 0x7e, 0x7c, 0x16, 0x07, 0xd9, - 0x98, 0xf1, 0xa9, 0x1a, 0x88, 0x1a, 0xfe, 0x1c, 0x2e, 0x66, 0x09, 0x89, 0x95, 0xe7, 0x81, 0x6c, - 0xf8, 0x35, 0x54, 0x74, 0x5f, 0x89, 0x14, 0xe7, 0x82, 0x9c, 0x44, 0x4d, 0x50, 0xda, 0x96, 0xa6, - 0x11, 0xa3, 0x78, 0xc1, 0x92, 0xed, 0x5f, 0x87, 0x84, 0xe7, 0xd3, 0x74, 0x72, 0xc8, 0xd9, 0x54, - 0xcd, 0xa3, 0x05, 0x89, 0x9e, 0x33, 0x9a, 0x11, 0x9a, 0x21, 0x6f, 0x5b, 0xf2, 0x6a, 0x90, 0xe0, - 0x55, 0x24, 0xf6, 0xfe, 0x8e, 0x5f, 0x90, 0xa2, 0xeb, 0x8f, 0x19, 0x1f, 0x11, 0xec, 0x24, 0xdd, - 0x2d, 0x47, 0x74, 0xfd, 0x12, 0x70, 0x37, 0xc0, 0x49, 0xc9, 0x0c, 0xdb, 0xbd, 0xe3, 0x8b, 0x9f, - 0x46, 0x5e, 0x7b, 0x66, 0x5e, 0x6b, 0xe7, 0xd0, 0x06, 0x7e, 0xd5, 0xcf, 0xa1, 0x1d, 0x58, 0x65, - 0x89, 0xe8, 0x12, 0x69, 0xff, 0x01, 0x56, 0xe7, 0xd7, 0x6e, 0xae, 0xce, 0xed, 0x53, 0xb9, 0xf2, - 0x80, 0x66, 0xfc, 0xad, 0x5f, 0xf0, 0xb9, 0xc7, 0xd0, 0x63, 0xe3, 0x71, 0x1c, 0x51, 0x72, 0x96, - 0xa7, 0x97, 0x38, 0x3e, 0xb9, 0x38, 0x3e, 0x79, 0x0b, 0x44, 0x9d, 0x9a, 0x2b, 0xfd, 0x3a, 0xeb, - 0xe6, 0x73, 0xe8, 0xe8, 0x6a, 0x84, 0xbb, 0x57, 0xe4, 0xad, 0xaa, 0x44, 0xf1, 0x53, 0xdc, 0x28, - 0xae, 0x83, 0x38, 0x97, 0xb3, 0x46, 0xcb, 0x97, 0xc4, 0x73, 0xfb, 0x3b, 0x96, 0xf7, 0x6b, 0x0b, - 0x7a, 0x35, 0x05, 0x62, 0x75, 0x16, 0x65, 0x31, 0x51, 0x12, 0x24, 0xe1, 0xba, 0xb0, 0x12, 0x92, - 0x74, 0xa4, 0x0a, 0x19, 0x7f, 0xab, 0xe3, 0xd2, 0x29, 0xef, 0x24, 0x1e, 0x74, 0xa2, 0xd3, 0xa1, - 0x10, 0x34, 0x64, 0x39, 0x0d, 0xcb, 0xd7, 0x04, 0x0d, 0x13, 0x85, 0x14, 0x9d, 0x0e, 0x77, 0x83, - 0x70, 0x42, 0xe4, 0x9d, 0xbf, 0x81, 0x36, 0x99, 0xa0, 0xb7, 0x0f, 0xad, 0xf3, 0x28, 0x49, 0xf7, - 0xd8, 0x74, 0x2a, 0x36, 0x51, 0x48, 0x32, 0x71, 0x21, 0xb2, 0x30, 0xeb, 0x8a, 0x12, 0x05, 0x13, - 0x92, 0x71, 0x90, 0xc7, 0x99, 0x58, 0x5a, 0x6c, 0x5f, 0x0d, 0xf2, 0xfe, 0x66, 0xc3, 0x06, 0x4e, - 0x9f, 0x7b, 0x98, 0xbe, 0x50, 0x80, 0xee, 0x33, 0x68, 0xe0, 0x66, 0x53, 0x13, 0xef, 0xed, 0x13, - 0xab, 0x5c, 0xea, 0xfe, 0x00, 0x9a, 0x0c, 0x1b, 0xa3, 0x1a, 0x73, 0x3f, 0xbc, 0x89, 0xc9, 0x7c, - 0x38, 0xf0, 0x15, 0x97, 0x7b, 0x08, 0x20, 0xdf, 0x34, 0xca, 0xa3, 0x6e, 0x79, 0x19, 0x1a, 0xa7, - 0x08, 0x5e, 0x79, 0x48, 0x69, 0xaf, 0x07, 0x26, 0xe8, 0x9e, 0xc0, 0x3a, 0x9a, 0x7d, 0x5a, 0x5c, - 0x5d, 0x30, 0xc6, 0xcb, 0x6b, 0xac, 0x71, 0x7b, 0xbf, 0xb3, 0x54, 0x18, 0xc5, 0xd7, 0x21, 0xc1, - 0xd8, 0x6a, 0x21, 0xb1, 0xee, 0x14, 0x92, 0x4d, 0x68, 0x4d, 0x73, 0xed, 0x26, 0xe5, 0xf8, 0x25, - 0x5d, 0xa5, 0xc8, 0x59, 0x3a, 0x45, 0xde, 0xef, 0x2d, 0xe8, 0x7f, 0xc4, 0x22, 0x8a, 0x1f, 0x76, - 0x92, 0x24, 0x56, 0x4f, 0x5c, 0x77, 0xce, 0xf9, 0x0f, 0x61, 0x2d, 0x90, 0x62, 0x68, 0xa6, 0xd2, - 0xbe, 0xc4, 0xed, 0xa8, 0xe2, 0xd1, 0x06, 0x5d, 0x47, 0x1f, 0x74, 0xbd, 0x3f, 0x5a, 0xb0, 0x2e, - 0x83, 0xf2, 0x93, 0x3c, 0xca, 0xee, 0x6c, 0xdf, 0x2e, 0xb4, 0x66, 0x79, 0x94, 0xdd, 0xa1, 0x2a, - 0x4b, 0xbe, 0xf9, 0x7a, 0x72, 0x16, 0xd4, 0x93, 0xf7, 0x27, 0x0b, 0x1e, 0xd7, 0xc3, 0xba, 0x33, - 0x1a, 0x91, 0xe4, 0x5d, 0x6e, 0x29, 0x63, 0xd0, 0x5f, 0xa9, 0x0d, 0xfa, 0x0b, 0x4d, 0xf6, 0xc9, - 0x27, 0x64, 0xf4, 0xbf, 0x6b, 0xf2, 0x2f, 0x6d, 0xf8, 0xd2, 0x51, 0xb9, 0xf1, 0xce, 0x79, 0x40, - 0xd3, 0x31, 0xe1, 0xfc, 0x1d, 0xda, 0x7b, 0x0c, 0x5d, 0x4a, 0x5e, 0x57, 0x36, 0xa9, 0xed, 0xb8, - 0xac, 0x18, 0x93, 0x79, 0xb9, 0xde, 0xe5, 0xfd, 0xc7, 0x82, 0x0d, 0x29, 0xe7, 0xc7, 0xd1, 0xe8, - 0xea, 0x1d, 0x3a, 0x7f, 0x02, 0xeb, 0x57, 0x68, 0x81, 0xa0, 0xee, 0xd0, 0xb6, 0x6b, 0xdc, 0x4b, - 0xba, 0xff, 0xa9, 0x05, 0x0f, 0xa4, 0xa0, 0x17, 0xf4, 0x3a, 0x7a, 0x97, 0xc5, 0x7a, 0x06, 0xbd, - 0x48, 0x9a, 0x70, 0xc7, 0x00, 0xd4, 0xd9, 0x97, 0x8c, 0xc0, 0x9f, 0x2d, 0xe8, 0x49, 0x49, 0x07, - 0x34, 0x23, 0xfc, 0xce, 0xfe, 0xff, 0x08, 0xda, 0x84, 0x66, 0x3c, 0xa0, 0x77, 0xe9, 0x90, 0x3a, - 0xeb, 0x92, 0x4d, 0xf2, 0x0a, 0x1e, 0xc8, 0x77, 0x20, 0xad, 0xe3, 0x88, 0x89, 0x35, 0x08, 0xe5, - 0x98, 0x29, 0xef, 0x45, 0x05, 0x69, 0xbe, 0xf0, 0xa9, 0xbf, 0x6e, 0xaa, 0x17, 0xbe, 0x27, 0x00, - 0x41, 0x18, 0x7e, 0xcc, 0x78, 0x18, 0xd1, 0xe2, 0xf8, 0xd0, 0x10, 0xef, 0x23, 0xe8, 0x88, 0x99, - 0xf9, 0x5c, 0x7b, 0xd1, 0xb9, 0xf5, 0xcd, 0x49, 0x7f, 0x0d, 0xb2, 0xcd, 0xd7, 0x20, 0x2f, 0x80, - 0xcd, 0x39, 0xc3, 0x77, 0xc2, 0x50, 0x95, 0xde, 0x9e, 0x7c, 0xad, 0x2a, 0x34, 0xa9, 0x0c, 0x2c, - 0xba, 0x4a, 0xea, 0x06, 0xf9, 0x06, 0x93, 0xf7, 0x0b, 0x0b, 0xde, 0x9f, 0xd7, 0x91, 0x24, 0x9c, - 0x5d, 0xdf, 0xa3, 0x1a, 0xb3, 0xbf, 0xda, 0xf5, 0xfe, 0xba, 0xd0, 0x08, 0xe3, 0x4c, 0xf8, 0x1c, - 0x8c, 0xf8, 0x83, 0x05, 0x3d, 0x65, 0x44, 0x19, 0xe2, 0x6f, 0x43, 0x53, 0xbe, 0x74, 0x2b, 0x85, - 0xef, 0x2f, 0x54, 0x58, 0xbc, 0xd0, 0xfb, 0x6a, 0xf1, 0x7c, 0x59, 0xda, 0x8b, 0x66, 0xc1, 0xef, - 0x96, 0x6d, 0x60, 0xe9, 0xb7, 0x68, 0xc5, 0xe0, 0xfd, 0xb4, 0xa8, 0xe8, 0x7d, 0x12, 0x93, 0xfb, - 0x8c, 0x91, 0xf7, 0x12, 0xd6, 0xf1, 0xd9, 0xfd, 0x9e, 0xcb, 0xec, 0x63, 0xd8, 0x40, 0xb1, 0xf7, - 0x6e, 0xef, 0xcf, 0xe0, 0x0b, 0x55, 0x02, 0xf6, 0x2e, 0x03, 0x3a, 0xb9, 0x4f, 0xe9, 0xdf, 0x80, - 0x87, 0x43, 0x12, 0x8f, 0x85, 0xec, 0x97, 0x49, 0x58, 0xde, 0x53, 0x6e, 0x78, 0xef, 0xba, 0x68, - 0xe2, 0xdf, 0xc6, 0xdf, 0xfa, 0x6f, 0x00, 0x00, 0x00, 0xff, 0xff, 0x2f, 0x9a, 0xab, 0x73, 0x49, + 0xad, 0x28, 0xda, 0x41, 0xe2, 0xe6, 0xf7, 0xeb, 0x7a, 0xff, 0x5f, 0xbd, 0x7a, 0x55, 0x86, 0x7e, + 0x1a, 0x5e, 0xbd, 0x7a, 0x9d, 0x7e, 0xf3, 0x75, 0xba, 0x95, 0x70, 0x96, 0x31, 0xf7, 0x41, 0x4a, + 0xf8, 0x35, 0xe1, 0xaf, 0x82, 0x24, 0x7a, 0x95, 0x04, 0x3c, 0x98, 0xa6, 0xde, 0xbf, 0x6c, 0x68, + 0x1f, 0x72, 0x96, 0x27, 0x2f, 0xe8, 0x98, 0xb9, 0x03, 0x58, 0x9d, 0x20, 0xb1, 0x37, 0xb0, 0x36, + 0xac, 0xcd, 0xb6, 0x5f, 0x90, 0xee, 0x13, 0x68, 0xe3, 0xcf, 0xe3, 0x60, 0x4a, 0x06, 0x36, 0x7e, + 0xab, 0x00, 0xd7, 0x83, 0x2e, 0x65, 0x59, 0x34, 0x8e, 0x46, 0x41, 0x16, 0x31, 0x3a, 0x70, 0x70, + 0x81, 0x81, 0x89, 0x35, 0x11, 0xcd, 0x38, 0x0b, 0xf3, 0x11, 0xae, 0x59, 0x91, 0x6b, 0x74, 0x4c, + 0xe8, 0x1f, 0x07, 0x23, 0xf2, 0xd2, 0x3f, 0x1a, 0x34, 0xa4, 0x7e, 0x45, 0xba, 0x1b, 0xd0, 0x61, + 0xaf, 0x29, 0xe1, 0x2f, 0x53, 0xc2, 0x5f, 0xec, 0x0d, 0x9a, 0xf8, 0x55, 0x87, 0xdc, 0xa7, 0x00, + 0x23, 0x4e, 0x82, 0x8c, 0x9c, 0x47, 0x53, 0x32, 0x58, 0xdd, 0xb0, 0x36, 0x7b, 0xbe, 0x86, 0x08, + 0x09, 0x53, 0x32, 0xbd, 0x20, 0x7c, 0x97, 0xe5, 0x34, 0x1b, 0xb4, 0x70, 0x81, 0x0e, 0xb9, 0x6b, + 0x60, 0x93, 0x37, 0x83, 0x36, 0x8a, 0xb6, 0xc9, 0x1b, 0xf7, 0x11, 0x34, 0xd3, 0x2c, 0xc8, 0xf2, + 0x74, 0x00, 0x1b, 0xd6, 0x66, 0xc3, 0x57, 0x94, 0xfb, 0x01, 0xf4, 0x50, 0x2e, 0x2b, 0xac, 0xe9, + 0x20, 0x8b, 0x09, 0x96, 0x11, 0x3b, 0x7f, 0x9b, 0x90, 0x41, 0x17, 0x05, 0x54, 0x80, 0xf7, 0x17, + 0x1b, 0x1e, 0x62, 0xdc, 0x87, 0x68, 0xc0, 0x41, 0x1e, 0xc7, 0x9f, 0x91, 0x81, 0x47, 0xd0, 0xcc, + 0xa5, 0x3a, 0x19, 0x7e, 0x45, 0x09, 0x3d, 0x9c, 0xc5, 0xe4, 0x88, 0x5c, 0x93, 0x18, 0x03, 0xdf, + 0xf0, 0x2b, 0xc0, 0x7d, 0x0c, 0xad, 0x4f, 0x58, 0x44, 0x31, 0x26, 0x22, 0xe2, 0x8e, 0x5f, 0xd2, + 0xe2, 0x1b, 0x8d, 0x46, 0x57, 0x54, 0xa4, 0x54, 0x86, 0xbb, 0xa4, 0xf5, 0x4c, 0x34, 0xcd, 0x4c, + 0x7c, 0x08, 0x6b, 0x41, 0x92, 0x0c, 0x03, 0x3a, 0x21, 0x5c, 0x2a, 0x5d, 0x45, 0xa5, 0x35, 0x54, + 0xe4, 0x43, 0x68, 0x3a, 0x63, 0x39, 0x1f, 0x11, 0x0c, 0x77, 0xc3, 0xd7, 0x10, 0x21, 0x87, 0x25, + 0x84, 0x6b, 0x61, 0x94, 0x91, 0xaf, 0xa1, 0x2a, 0x2b, 0x50, 0x64, 0xc5, 0xfb, 0xad, 0x05, 0x6b, + 0xa7, 0xf9, 0x45, 0x1c, 0x8d, 0x70, 0x81, 0x08, 0x5a, 0x15, 0x1a, 0xcb, 0x08, 0x8d, 0xee, 0xa0, + 0x7d, 0xb3, 0x83, 0x8e, 0xe9, 0xe0, 0x23, 0x68, 0x4e, 0x08, 0x0d, 0x09, 0xc7, 0x80, 0x35, 0x7c, + 0x45, 0x2d, 0x70, 0xbc, 0xb1, 0xc8, 0x71, 0xef, 0x37, 0x36, 0xb4, 0x3e, 0x67, 0xd3, 0x36, 0xa0, + 0x93, 0x5c, 0x32, 0x4a, 0x8e, 0x73, 0x51, 0x4c, 0x2a, 0x99, 0x3a, 0xe4, 0xbe, 0x07, 0x8d, 0x8b, + 0x88, 0x67, 0x97, 0x98, 0xcd, 0x9e, 0x2f, 0x09, 0x81, 0x92, 0x69, 0x10, 0xc9, 0x14, 0xb6, 0x7d, + 0x49, 0xa8, 0x88, 0xb7, 0xca, 0x7d, 0x60, 0xee, 0xac, 0xf6, 0xdc, 0xce, 0x9a, 0x0f, 0x0c, 0x2c, + 0x0c, 0xcc, 0xbf, 0x2d, 0x80, 0x03, 0x1e, 0x11, 0x1a, 0x62, 0x68, 0x6a, 0x5b, 0xda, 0x9a, 0xdf, + 0xd2, 0x8f, 0xa0, 0xc9, 0xc9, 0x34, 0xe0, 0x57, 0x45, 0xc9, 0x4b, 0xaa, 0x66, 0x90, 0x33, 0x67, + 0xd0, 0xf7, 0x00, 0xc6, 0xa8, 0x47, 0xc8, 0xc1, 0x50, 0x75, 0x9e, 0x7d, 0x79, 0x6b, 0xae, 0xf9, + 0x6d, 0x15, 0x59, 0xf2, 0xb5, 0xe5, 0x62, 0x3f, 0x05, 0x61, 0xa8, 0xca, 0x56, 0x66, 0xb8, 0x02, + 0x16, 0x54, 0x6d, 0xf3, 0x96, 0xaa, 0x5d, 0x2d, 0xab, 0xf6, 0x9f, 0x16, 0xb4, 0x77, 0xe2, 0x60, + 0x74, 0xb5, 0xa4, 0xeb, 0xa6, 0x8b, 0xf6, 0x9c, 0x8b, 0x87, 0xd0, 0xbb, 0x10, 0xe2, 0x0a, 0x17, + 0x30, 0x0a, 0x9d, 0x67, 0x5f, 0x5d, 0xe0, 0xa5, 0xb9, 0x59, 0x7c, 0x93, 0xcf, 0x74, 0x77, 0xe5, + 0xb3, 0xdd, 0x6d, 0xdc, 0xe2, 0x6e, 0xb3, 0x74, 0xf7, 0xef, 0x36, 0x74, 0xb1, 0xbd, 0xf9, 0x64, + 0x96, 0x93, 0x34, 0x73, 0xbf, 0x0f, 0xad, 0xbc, 0x30, 0xd5, 0x5a, 0xd6, 0xd4, 0x92, 0xc5, 0x7d, + 0xae, 0x9a, 0x29, 0xf2, 0xdb, 0xc8, 0xff, 0x64, 0x01, 0x7f, 0x79, 0x92, 0xf9, 0xd5, 0x72, 0x71, + 0xf0, 0x5c, 0x06, 0x34, 0x8c, 0x89, 0x4f, 0xd2, 0x3c, 0xce, 0x8a, 0xc3, 0x49, 0xc7, 0x64, 0xa5, + 0xcd, 0x86, 0xe9, 0x44, 0x1d, 0x4b, 0x8a, 0x12, 0xd1, 0x91, 0xeb, 0xc4, 0x27, 0xe9, 0x7a, 0x05, + 0x88, 0x8d, 0xca, 0xc9, 0x0c, 0x33, 0x24, 0xb7, 0x55, 0x41, 0x56, 0x3a, 0x55, 0xd4, 0x56, 0x75, + 0x9d, 0x55, 0x8a, 0x25, 0x8d, 0x02, 0xe4, 0x79, 0xa4, 0x21, 0xf5, 0xe3, 0xc8, 0xfb, 0x87, 0x03, + 0x3d, 0xb9, 0x7d, 0x8a, 0xa0, 0x3e, 0x15, 0x75, 0xce, 0xa6, 0x46, 0x15, 0x69, 0x88, 0xb0, 0x42, + 0x50, 0xc7, 0x66, 0xa3, 0x31, 0x30, 0x51, 0x8a, 0x82, 0x3e, 0x30, 0x1a, 0x8e, 0x0e, 0x15, 0x5a, + 0x0e, 0xf5, 0xc6, 0xa3, 0x21, 0xa2, 0x95, 0x65, 0xcc, 0xa8, 0x8e, 0x92, 0x16, 0xbc, 0x19, 0x2b, + 0xf5, 0xcb, 0xfa, 0xd0, 0x10, 0x11, 0xdf, 0x8c, 0x15, 0xba, 0x65, 0x90, 0x2a, 0x40, 0x4a, 0x56, + 0x7a, 0xe5, 0x01, 0x52, 0xd2, 0x73, 0x59, 0x6d, 0xe3, 0xf7, 0x9b, 0xb2, 0x0a, 0x46, 0x56, 0xcd, + 0xcd, 0xd5, 0x99, 0xdb, 0x5c, 0x1f, 0x40, 0x4f, 0xca, 0x29, 0x8a, 0xbe, 0x2b, 0x0f, 0x78, 0x03, + 0x34, 0x6b, 0xa3, 0x57, 0xaf, 0x0d, 0x33, 0xbb, 0x6b, 0x37, 0x64, 0xb7, 0x5f, 0x66, 0xf7, 0x57, + 0x36, 0x0c, 0x4e, 0xf3, 0x38, 0x1e, 0x92, 0x34, 0x0d, 0x26, 0x64, 0xe7, 0xed, 0x19, 0x99, 0x1d, + 0x45, 0x69, 0xe6, 0x93, 0x34, 0x11, 0x85, 0x46, 0x38, 0xdf, 0x65, 0x21, 0xc1, 0x2c, 0x37, 0xfc, + 0x82, 0x14, 0x2e, 0x12, 0xce, 0x85, 0x05, 0xaa, 0x45, 0x4a, 0x4a, 0xe0, 0xd3, 0xe0, 0xcd, 0x19, + 0x99, 0x61, 0x46, 0x1d, 0x5f, 0x51, 0x88, 0x47, 0x54, 0xe0, 0x2b, 0x0a, 0x47, 0xca, 0xdd, 0x87, + 0x5e, 0x1a, 0xd1, 0x89, 0x2c, 0x4e, 0x59, 0xec, 0xce, 0x66, 0xe7, 0xd9, 0x57, 0x16, 0x6d, 0xb2, + 0x20, 0xbb, 0x24, 0xfc, 0x80, 0xf1, 0x69, 0x90, 0xf9, 0x26, 0x97, 0xbb, 0x0b, 0x5d, 0xdc, 0x78, + 0x85, 0x94, 0xe6, 0x72, 0x52, 0x0c, 0x26, 0x6f, 0x0a, 0x5f, 0x5c, 0x1c, 0x89, 0xd9, 0x8d, 0xc7, + 0xa9, 0x68, 0xa8, 0xd8, 0x91, 0x22, 0x46, 0xcb, 0x09, 0x49, 0x87, 0x44, 0x08, 0x53, 0x29, 0x67, + 0xe0, 0x6c, 0x38, 0x9b, 0x8e, 0x5f, 0x90, 0xde, 0xcf, 0xc5, 0x3c, 0x51, 0xaa, 0xbb, 0x4d, 0xcb, + 0x63, 0x68, 0xa5, 0x64, 0xb6, 0x43, 0x26, 0x11, 0x45, 0x15, 0x8e, 0x5f, 0xd2, 0x38, 0x2c, 0x92, + 0xd9, 0x3e, 0x0d, 0x8b, 0x80, 0x4b, 0xaa, 0x6e, 0xd9, 0xca, 0x9c, 0x65, 0xde, 0xa7, 0x16, 0xf4, + 0x0d, 0x03, 0xfe, 0xef, 0x12, 0xfe, 0x1e, 0xb8, 0x87, 0x24, 0x1b, 0x06, 0x6f, 0xb6, 0x69, 0x38, + 0x44, 0xf3, 0x7c, 0x32, 0xf3, 0xf6, 0xe1, 0xe1, 0x1c, 0x9a, 0x26, 0x9a, 0xa3, 0xd6, 0x0d, 0x8e, + 0xda, 0xba, 0xa3, 0xde, 0x31, 0x74, 0x75, 0xd5, 0x62, 0xe3, 0x45, 0xa1, 0x4a, 0xac, 0x1d, 0x85, + 0xee, 0x16, 0xac, 0xc4, 0xa2, 0x2a, 0x6c, 0xb4, 0xfc, 0xf1, 0x02, 0xcb, 0x87, 0xe9, 0x64, 0x2f, + 0xc8, 0x02, 0x1f, 0xd7, 0x79, 0x33, 0xe8, 0x0b, 0xbb, 0xcf, 0x08, 0x0d, 0x87, 0xe9, 0x04, 0x4d, + 0xda, 0x80, 0x8e, 0xe4, 0x1a, 0xa6, 0x93, 0xea, 0x38, 0xd7, 0x20, 0xb1, 0x62, 0x14, 0x47, 0x84, + 0x66, 0x72, 0x85, 0xaa, 0x4f, 0x0d, 0x92, 0xb5, 0x45, 0xc3, 0x72, 0xa2, 0xc1, 0xda, 0x92, 0xb4, + 0xf7, 0xd7, 0x06, 0xac, 0x2a, 0x23, 0x64, 0x9d, 0xd1, 0xb0, 0xaa, 0x4d, 0x49, 0xc9, 0x5e, 0x37, + 0xba, 0xae, 0xae, 0x07, 0x92, 0xd2, 0x2f, 0x14, 0x8e, 0x79, 0xa1, 0xa8, 0xd9, 0xb4, 0x32, 0x6f, + 0x53, 0xcd, 0xaf, 0xc6, 0xbc, 0x5f, 0x5f, 0x87, 0xf5, 0x14, 0xfb, 0xf1, 0x69, 0x1c, 0x64, 0x63, + 0xc6, 0xa7, 0x6a, 0x20, 0x6a, 0xf8, 0x73, 0xb8, 0x98, 0x25, 0x24, 0x56, 0x9e, 0x07, 0xb2, 0xe1, + 0xd7, 0x50, 0xd1, 0x7d, 0x25, 0x52, 0x9c, 0x0b, 0x72, 0x12, 0x35, 0x41, 0x69, 0x5b, 0x9a, 0x46, + 0x8c, 0xe2, 0x05, 0x4b, 0xb6, 0x7f, 0x1d, 0x12, 0x9e, 0x4f, 0xd3, 0xc9, 0x01, 0x67, 0x53, 0x35, + 0x8f, 0x16, 0x24, 0x7a, 0xce, 0x68, 0x46, 0x68, 0x86, 0xbc, 0x1d, 0xc9, 0xab, 0x41, 0x82, 0x57, + 0x91, 0xd8, 0xfb, 0xbb, 0x7e, 0x41, 0x8a, 0xae, 0x3f, 0x66, 0x7c, 0x44, 0xb0, 0x93, 0xf4, 0x36, + 0x1c, 0xd1, 0xf5, 0x4b, 0xc0, 0x5d, 0x07, 0x27, 0x25, 0x33, 0x6c, 0xf7, 0x8e, 0x2f, 0x7e, 0x1a, + 0x79, 0xed, 0x9b, 0x79, 0xad, 0x9d, 0x43, 0xeb, 0xf8, 0x55, 0x3f, 0x87, 0xb6, 0x61, 0x95, 0x25, + 0xa2, 0x4b, 0xa4, 0x83, 0x07, 0x58, 0x9d, 0x5f, 0xbb, 0xb9, 0x3a, 0xb7, 0x4e, 0xe4, 0xca, 0x7d, + 0x9a, 0xf1, 0xb7, 0x7e, 0xc1, 0xe7, 0x1e, 0x41, 0x9f, 0x8d, 0xc7, 0x71, 0x44, 0xc9, 0x69, 0x9e, + 0x5e, 0xe2, 0xf8, 0xe4, 0xe2, 0xf8, 0xe4, 0x2d, 0x10, 0x75, 0x62, 0xae, 0xf4, 0xeb, 0xac, 0x8f, + 0x9f, 0x43, 0x57, 0x57, 0x23, 0xdc, 0xbd, 0x22, 0x6f, 0x55, 0x25, 0x8a, 0x9f, 0xe2, 0x46, 0x71, + 0x1d, 0xc4, 0xb9, 0x9c, 0x35, 0x5a, 0xbe, 0x24, 0x9e, 0xdb, 0xdf, 0xb1, 0xbc, 0x5f, 0x5b, 0xd0, + 0xaf, 0x29, 0x10, 0xab, 0xb3, 0x28, 0x8b, 0x89, 0x92, 0x20, 0x09, 0xd7, 0x85, 0x95, 0x90, 0xa4, + 0x23, 0x55, 0xc8, 0xf8, 0x5b, 0x1d, 0x97, 0x4e, 0x79, 0x27, 0xf1, 0xa0, 0x1b, 0x9d, 0x9c, 0x09, + 0x41, 0x67, 0x2c, 0xa7, 0x61, 0xf9, 0x9a, 0xa0, 0x61, 0xa2, 0x90, 0xa2, 0x93, 0xb3, 0x9d, 0x20, + 0x9c, 0x10, 0x79, 0xe7, 0x6f, 0xa0, 0x4d, 0x26, 0xe8, 0xed, 0x41, 0xeb, 0x3c, 0x4a, 0xd2, 0x5d, + 0x36, 0x9d, 0x8a, 0x4d, 0x14, 0x92, 0x4c, 0x5c, 0x88, 0x2c, 0xcc, 0xba, 0xa2, 0x44, 0xc1, 0x84, + 0x64, 0x1c, 0xe4, 0x71, 0x26, 0x96, 0x16, 0xdb, 0x57, 0x83, 0xbc, 0xbf, 0xd9, 0xb0, 0x8e, 0xd3, + 0xe7, 0x2e, 0xa6, 0x2f, 0x14, 0xa0, 0xfb, 0x0c, 0x1a, 0xb8, 0xd9, 0xd4, 0xc4, 0x7b, 0xfb, 0xc4, + 0x2a, 0x97, 0xba, 0x3f, 0x80, 0x26, 0xc3, 0xc6, 0xa8, 0xc6, 0xdc, 0x0f, 0x6f, 0x62, 0x32, 0x1f, + 0x0e, 0x7c, 0xc5, 0xe5, 0x1e, 0x00, 0xc8, 0x37, 0x8d, 0xf2, 0xa8, 0x5b, 0x5e, 0x86, 0xc6, 0x29, + 0x82, 0x57, 0x1e, 0x52, 0xda, 0xeb, 0x81, 0x09, 0xba, 0xc7, 0xb0, 0x86, 0x66, 0x9f, 0x14, 0x57, + 0x17, 0x8c, 0xf1, 0xf2, 0x1a, 0x6b, 0xdc, 0xde, 0xef, 0x2c, 0x15, 0x46, 0xf1, 0xf5, 0x8c, 0x60, + 0x6c, 0xb5, 0x90, 0x58, 0x77, 0x0a, 0xc9, 0x63, 0x68, 0x4d, 0x73, 0xed, 0x26, 0xe5, 0xf8, 0x25, + 0x5d, 0xa5, 0xc8, 0x59, 0x3a, 0x45, 0xde, 0xef, 0x2d, 0x18, 0x7c, 0xc4, 0x22, 0x8a, 0x1f, 0xb6, + 0x93, 0x24, 0x56, 0x4f, 0x5c, 0x77, 0xce, 0xf9, 0x0f, 0xa1, 0x1d, 0x48, 0x31, 0x34, 0x53, 0x69, + 0x5f, 0xe2, 0x76, 0x54, 0xf1, 0x68, 0x83, 0xae, 0xa3, 0x0f, 0xba, 0xde, 0x1f, 0x2d, 0x58, 0x93, + 0x41, 0xf9, 0x49, 0x1e, 0x65, 0x77, 0xb6, 0x6f, 0x07, 0x5a, 0xb3, 0x3c, 0xca, 0xee, 0x50, 0x95, + 0x25, 0xdf, 0x7c, 0x3d, 0x39, 0x0b, 0xea, 0xc9, 0xfb, 0x93, 0x05, 0x4f, 0xea, 0x61, 0xdd, 0x1e, + 0x8d, 0x48, 0xf2, 0x2e, 0xb7, 0x94, 0x31, 0xe8, 0xaf, 0xd4, 0x06, 0xfd, 0x85, 0x26, 0xfb, 0xe4, + 0x13, 0x32, 0xfa, 0xdf, 0x35, 0xf9, 0x97, 0x36, 0x7c, 0xe9, 0xb0, 0xdc, 0x78, 0xe7, 0x3c, 0xa0, + 0xe9, 0x98, 0x70, 0xfe, 0x0e, 0xed, 0x3d, 0x82, 0x1e, 0x25, 0xaf, 0x2b, 0x9b, 0xd4, 0x76, 0x5c, + 0x56, 0x8c, 0xc9, 0xbc, 0x5c, 0xef, 0xf2, 0xfe, 0x63, 0xc1, 0xba, 0x94, 0xf3, 0xe3, 0x68, 0x74, + 0xf5, 0x0e, 0x9d, 0x3f, 0x86, 0xb5, 0x2b, 0xb4, 0x40, 0x50, 0x77, 0x68, 0xdb, 0x35, 0xee, 0x25, + 0xdd, 0xff, 0xd4, 0x82, 0x07, 0x52, 0xd0, 0x0b, 0x7a, 0x1d, 0xbd, 0xcb, 0x62, 0x3d, 0x85, 0x7e, + 0x24, 0x4d, 0xb8, 0x63, 0x00, 0xea, 0xec, 0x4b, 0x46, 0xe0, 0xcf, 0x16, 0xf4, 0xa5, 0xa4, 0x7d, + 0x9a, 0x11, 0x7e, 0x67, 0xff, 0x7f, 0x04, 0x1d, 0x42, 0x33, 0x1e, 0xd0, 0xbb, 0x74, 0x48, 0x9d, + 0x75, 0xc9, 0x26, 0x79, 0x05, 0x0f, 0xe4, 0x3b, 0x90, 0xd6, 0x71, 0xc4, 0xc4, 0x1a, 0x84, 0x72, + 0xcc, 0x94, 0xf7, 0xa2, 0x82, 0x34, 0x5f, 0xf8, 0xd4, 0x5f, 0x37, 0xd5, 0x0b, 0xdf, 0x53, 0x80, + 0x20, 0x0c, 0x3f, 0x66, 0x3c, 0x8c, 0x68, 0x71, 0x7c, 0x68, 0x88, 0xf7, 0x11, 0x74, 0xc5, 0xcc, + 0x7c, 0xae, 0xbd, 0xe8, 0xdc, 0xfa, 0xe6, 0xa4, 0xbf, 0x06, 0xd9, 0xe6, 0x6b, 0x90, 0xf7, 0x33, + 0xf8, 0xc2, 0x9c, 0xe1, 0x18, 0xf5, 0x5d, 0xf9, 0x50, 0x55, 0x28, 0x51, 0xc1, 0x5f, 0x74, 0x8b, + 0xd4, 0x6d, 0xf1, 0x0d, 0x26, 0xef, 0x17, 0x16, 0xbc, 0x3f, 0x27, 0x7e, 0x3b, 0x49, 0x38, 0xbb, + 0x56, 0xc5, 0x7d, 0x1f, 0x6a, 0xcc, 0xd6, 0x6a, 0xd7, 0x5b, 0xeb, 0x42, 0x23, 0x8c, 0xe3, 0xe0, + 0x73, 0x30, 0xe2, 0x0f, 0x16, 0xf4, 0x95, 0x11, 0x61, 0xa8, 0xd4, 0x7e, 0x1b, 0x9a, 0xf2, 0x91, + 0x5b, 0x29, 0x7c, 0x7f, 0xa1, 0xc2, 0xe2, 0x71, 0xde, 0x57, 0x8b, 0xe7, 0x2b, 0xd2, 0x5e, 0x34, + 0x06, 0x7e, 0xb7, 0xec, 0x00, 0x4b, 0x3f, 0x43, 0x2b, 0x06, 0xef, 0xa7, 0x45, 0x31, 0xef, 0x91, + 0x98, 0xdc, 0x67, 0x8c, 0xbc, 0x97, 0xb0, 0x86, 0x2f, 0xee, 0x55, 0x0c, 0xee, 0x45, 0xec, 0xc7, + 0xb0, 0x8e, 0x62, 0xef, 0xdd, 0xde, 0x72, 0x77, 0x88, 0xf8, 0xec, 0x5e, 0x06, 0x74, 0x72, 0x9f, + 0xd2, 0xbf, 0x01, 0x0f, 0x8b, 0xd8, 0xbf, 0x4c, 0xc2, 0xf2, 0x8a, 0x72, 0xc3, 0x53, 0xd7, 0x45, + 0x13, 0xff, 0x31, 0xfe, 0xd6, 0x7f, 0x03, 0x00, 0x00, 0xff, 0xff, 0x10, 0x4c, 0x40, 0x71, 0x44, 0x1e, 0x00, 0x00, } diff --git a/pkg/proto/sdk_ws/ws.proto b/pkg/proto/sdk_ws/ws.proto index ac8f8601f..2f51bda22 100644 --- a/pkg/proto/sdk_ws/ws.proto +++ b/pkg/proto/sdk_ws/ws.proto @@ -333,7 +333,7 @@ message FromToUserID{ } //FromUserID apply to add ToUserID -message FriendApplicationAddedTips{ +message FriendApplicationTips{ FromToUserID fromToUserID = 1; } @@ -377,6 +377,6 @@ message FriendInfoChangedTips{ FromToUserID fromToUserID = 1; } //////////////////////user///////////////////// -message SelfInfoUpdatedTips{ +message UserInfoUpdatedTips{ string userID = 1; } From 766a05236a6b87ae2cc86cbb58cdeb65333e588b Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Mon, 17 Jan 2022 10:11:26 +0800 Subject: [PATCH 500/814] Refactor code --- internal/rpc/msg/friend_notification.go | 306 +----------------------- pkg/common/config/config.go | 5 +- 2 files changed, 11 insertions(+), 300 deletions(-) diff --git a/internal/rpc/msg/friend_notification.go b/internal/rpc/msg/friend_notification.go index 39e3684dc..e44bc0ff0 100644 --- a/internal/rpc/msg/friend_notification.go +++ b/internal/rpc/msg/friend_notification.go @@ -12,23 +12,6 @@ import ( "github.com/golang/protobuf/proto" ) -//message MemberInfoChangedTips{ -// int32 ChangeType = 1; //1:info changed; 2:mute -// GroupMemberFullInfo OpUser = 2; //who do this -// GroupMemberFullInfo FinalInfo = 3; // -// uint64 MuteTime = 4; -// GroupInfo Group = 5; -//} -//func MemberInfoChangedNotification(operationID string, group *immysql.Group, opUser *immysql.GroupMember, userFinalInfo *immysql.GroupMember) { - -//} - -//message FriendApplicationAddedTips{ -// PublicUserInfo OpUser = 1; //user1 -// FriendApplication Application = 2; -// PublicUserInfo OpedUser = 3; //user2 -//} - func getFromToUserNickname(fromUserID, toUserID string) (string, string, error) { from, err := imdb.GetUserByUserID(fromUserID) if err != nil { @@ -59,8 +42,7 @@ func friendNotification(commID *pbFriend.CommID, contentType int32, m proto.Mess cn := config.Config.Notification switch contentType { case constant.FriendApplicationNotification: - - tips.DefaultTips = fromUserNickname + cn.FriendApplicationAdded.DefaultTips.Tips + tips.DefaultTips = fromUserNickname + cn.FriendApplication.DefaultTips.Tips case constant.FriendApplicationApprovedNotification: tips.DefaultTips = fromUserNickname + cn.FriendApplicationApproved.DefaultTips.Tips case constant.FriendApplicationRejectedNotification: @@ -70,7 +52,7 @@ func friendNotification(commID *pbFriend.CommID, contentType int32, m proto.Mess case constant.FriendDeletedNotification: tips.DefaultTips = cn.FriendDeleted.DefaultTips.Tips + toUserNickname case constant.FriendRemarkSetNotification: - tips.DefaultTips = fromUserNickname + cn.FriendInfoChanged.DefaultTips.Tips + tips.DefaultTips = fromUserNickname + cn.FriendRemarkSet.DefaultTips.Tips case constant.BlackAddedNotification: tips.DefaultTips = cn.BlackAdded.DefaultTips.Tips + toUserNickname case constant.BlackDeletedNotification: @@ -96,37 +78,10 @@ func friendNotification(commID *pbFriend.CommID, contentType int32, m proto.Mess } func FriendApplicationNotification(req *pbFriend.AddFriendReq) { - log.Info(req.CommID.OperationID, utils.GetSelfFuncName(), "args: ", req.String()) - var FriendApplicationTips open_im_sdk.FriendApplicationTips + FriendApplicationTips := open_im_sdk.FriendApplicationTips{FromToUserID: &open_im_sdk.FromToUserID{}} FriendApplicationTips.FromToUserID.FromUserID = req.CommID.FromUserID FriendApplicationTips.FromToUserID.ToUserID = req.CommID.ToUserID friendNotification(req.CommID, constant.FriendApplicationNotification, &FriendApplicationTips) - //fromUserNickname, toUserNickname, err := getFromToUserNickname(req.CommID.FromUserID, req.CommID.ToUserID) - //if err != nil { - // log.Error(req.CommID.OperationID, "getFromToUserNickname failed ", err.Error(), req.CommID.FromUserID, req.CommID.ToUserID) - // return - //} - //var tips open_im_sdk.TipsComm - //tips.Detail, err = proto.Marshal(&friendApplicationAddedTips) - //if err != nil { - // log.Error(req.CommID.OperationID, "Marshal failed ", err.Error(), friendApplicationAddedTips.String()) - // return - //} - //tips.DefaultTips = fromUserNickname + " FriendApplicationAddedNotification " + toUserNickname - // - //var n NotificationMsg - //n.SendID = req.CommID.FromUserID - //n.RecvID = req.CommID.ToUserID - //n.ContentType = constant.FriendApplicationAddedNotification - //n.SessionType = constant.SingleChatType - //n.MsgFrom = constant.SysMsgType - //n.OperationID = req.CommID.OperationID - //n.Content, err = proto.Marshal(&tips) - //if err != nil { - // log.Error(req.CommID.OperationID, "Marshal failed ", err.Error(), tips.String()) - // return - //} - //Notification(&n) } func FriendApplicationApprovedNotification(req *pbFriend.AddFriendResponseReq) { @@ -134,35 +89,7 @@ func FriendApplicationApprovedNotification(req *pbFriend.AddFriendResponseReq) { FriendApplicationApprovedTips.FromToUserID.FromUserID = req.CommID.FromUserID FriendApplicationApprovedTips.FromToUserID.ToUserID = req.CommID.ToUserID FriendApplicationApprovedTips.HandleMsg = req.HandleMsg - //fromUserNickname, toUserNickname, err := getFromToUserNickname(req.CommID.FromUserID, req.CommID.ToUserID) - //if err != nil { - // log.Error(req.CommID.OperationID, "getFromToUserNickname failed ", err.Error(), req.CommID.FromUserID, req.CommID.ToUserID) - // return - //} - friendNotification(req.CommID, constant.FriendApplicationApprovedNotification, &FriendApplicationApprovedTips) - - //var tips open_im_sdk.TipsComm - //tips.DefaultTips = fromUserNickname + " FriendApplicationProcessedNotification " + toUserNickname - //tips.Detail, err = proto.Marshal(&friendApplicationProcessedTips) - //if err != nil { - // log.Error(req.CommID.OperationID, "Marshal failed ", err.Error(), friendApplicationProcessedTips.String()) - // return - //} - // - //var n NotificationMsg - //n.SendID = req.CommID.FromUserID - //n.RecvID = req.CommID.ToUserID - //n.ContentType = constant.FriendApplicationProcessedNotification - //n.SessionType = constant.SingleChatType - //n.MsgFrom = constant.SysMsgType - //n.OperationID = req.CommID.OperationID - //n.Content, err = proto.Marshal(&tips) - //if err != nil { - // log.Error(req.CommID.OperationID, "Marshal failed ", err.Error(), tips.String()) - // return - //} - //Notification(&n) } func FriendApplicationRejectedNotification(req *pbFriend.AddFriendResponseReq) { @@ -170,55 +97,11 @@ func FriendApplicationRejectedNotification(req *pbFriend.AddFriendResponseReq) { FriendApplicationApprovedTips.FromToUserID.FromUserID = req.CommID.FromUserID FriendApplicationApprovedTips.FromToUserID.ToUserID = req.CommID.ToUserID FriendApplicationApprovedTips.HandleMsg = req.HandleMsg - friendNotification(req.CommID, constant.FriendApplicationRejectedNotification, &FriendApplicationApprovedTips) } -// -// -//func FriendApplicationProcessedNotification(req *pbFriend.AddFriendResponseReq) { -// var friendApplicationProcessedTips open_im_sdk.FriendApplicationProcessedTips -// friendApplicationProcessedTips.FromToUserID.FromUserID = req.CommID.FromUserID -// friendApplicationProcessedTips.FromToUserID.ToUserID = req.CommID.ToUserID -// friendApplicationProcessedTips.HandleResult = req.HandleResult -// //fromUserNickname, toUserNickname, err := getFromToUserNickname(req.CommID.FromUserID, req.CommID.ToUserID) -// //if err != nil { -// // log.Error(req.CommID.OperationID, "getFromToUserNickname failed ", err.Error(), req.CommID.FromUserID, req.CommID.ToUserID) -// // return -// //} -// if friendApplicationProcessedTips.HandleResult == 1 { -// friendNotification(req.CommID, constant.FriendApplicationApprovedNotification, &friendApplicationProcessedTips) -// } else if friendApplicationProcessedTips.HandleResult == -1 { -// friendNotification(req.CommID, constant.FriendApplicationRejectedNotification, &friendApplicationProcessedTips) -// } else { -// log.Error(req.CommID.OperationID, "HandleResult failed ", friendApplicationProcessedTips.HandleResult) -// } -// -// //var tips open_im_sdk.TipsComm -// //tips.DefaultTips = fromUserNickname + " FriendApplicationProcessedNotification " + toUserNickname -// //tips.Detail, err = proto.Marshal(&friendApplicationProcessedTips) -// //if err != nil { -// // log.Error(req.CommID.OperationID, "Marshal failed ", err.Error(), friendApplicationProcessedTips.String()) -// // return -// //} -// // -// //var n NotificationMsg -// //n.SendID = req.CommID.FromUserID -// //n.RecvID = req.CommID.ToUserID -// //n.ContentType = constant.FriendApplicationProcessedNotification -// //n.SessionType = constant.SingleChatType -// //n.MsgFrom = constant.SysMsgType -// //n.OperationID = req.CommID.OperationID -// //n.Content, err = proto.Marshal(&tips) -// //if err != nil { -// // log.Error(req.CommID.OperationID, "Marshal failed ", err.Error(), tips.String()) -// // return -// //} -// //Notification(&n) -//} - func FriendAddedNotification(operationID, opUserID, fromUserID, toUserID string) { - var friendAddedTips open_im_sdk.FriendAddedTips + friendAddedTips := open_im_sdk.FriendAddedTips{Friend: &open_im_sdk.FriendInfo{}, OpUser: &open_im_sdk.PublicUserInfo{}} user, err := imdb.GetUserByUserID(opUserID) if err != nil { log.NewError(operationID, "GetUserByUserID failed ", err.Error(), opUserID) @@ -233,210 +116,39 @@ func FriendAddedNotification(operationID, opUserID, fromUserID, toUserID string) utils2.FriendDBCopyOpenIM(friendAddedTips.Friend, friend) commID := pbFriend.CommID{FromUserID: fromUserID, ToUserID: toUserID, OpUserID: opUserID, OperationID: operationID} friendNotification(&commID, constant.FriendAddedNotification, &friendAddedTips) - //fromUserNickname, toUserNickname, err := getFromToUserNickname(fromUserID, toUserID) - //if err != nil { - // log.Error(operationID, "getFromToUserNickname failed ", err.Error(), fromUserID, toUserID) - // return - //} - //var tips open_im_sdk.TipsComm - //tips.DefaultTips = fromUserNickname + " FriendAddedNotification " + toUserNickname - //tips.Detail, err = proto.Marshal(&friendAddedTips) - //if err != nil { - // log.Error(operationID, "Marshal failed ", err.Error(), friendAddedTips) - // return - //} - // - //var n NotificationMsg - //n.SendID = fromUserID - //n.RecvID = toUserID - //n.ContentType = constant.FriendAddedNotification - //n.SessionType = constant.SingleChatType - //n.MsgFrom = constant.SysMsgType - //n.OperationID = operationID - //n.Content, err = proto.Marshal(&tips) - //if err != nil { - // log.Error(operationID, "Marshal failed ", err.Error(), tips.String()) - // return - //} - //Notification(&n) } -//message FriendDeletedTips{ -// FriendInfo Friend = 1; -//} func FriendDeletedNotification(req *pbFriend.DeleteFriendReq) { - var friendDeletedTips open_im_sdk.FriendDeletedTips + friendDeletedTips := open_im_sdk.FriendDeletedTips{FromToUserID: &open_im_sdk.FromToUserID{}} friendDeletedTips.FromToUserID.FromUserID = req.CommID.FromUserID friendDeletedTips.FromToUserID.ToUserID = req.CommID.ToUserID - //fromUserNickname, toUserNickname, err := getFromToUserNickname(req.CommID.FromUserID, req.CommID.ToUserID) - //if err != nil { - // log.Error(req.CommID.OperationID, "getFromToUserNickname failed ", req.CommID.FromUserID, req.CommID.ToUserID) - // return - //} friendNotification(req.CommID, constant.FriendDeletedNotification, &friendDeletedTips) - //var tips open_im_sdk.TipsComm - //tips.DefaultTips = fromUserNickname + " FriendDeletedNotification " + toUserNickname - //tips.Detail, err = proto.Marshal(&friendDeletedTips) - //if err != nil { - // log.Error(req.CommID.OperationID, "Marshal failed ", err.Error(), friendDeletedTips.String()) - // return - //} - // - //var n NotificationMsg - //n.SendID = req.CommID.FromUserID - //n.RecvID = req.CommID.ToUserID - //n.ContentType = constant.FriendDeletedNotification - //n.SessionType = constant.SingleChatType - //n.MsgFrom = constant.SysMsgType - //n.OperationID = req.CommID.OperationID - //n.Content, err = proto.Marshal(&tips) - //if err != nil { - // log.Error(req.CommID.OperationID, "Marshal failed ", err.Error(), tips.String()) - // return - //} - //Notification(&n) } -//message FriendInfoChangedTips{ -// FriendInfo Friend = 1; -// PublicUserInfo OpUser = 2; -// uint64 OperationTime = 3; -//} func FriendRemarkSetNotification(operationID, opUserID, fromUserID, toUserID string) { - var friendInfoChangedTips open_im_sdk.FriendInfoChangedTips + friendInfoChangedTips := open_im_sdk.FriendInfoChangedTips{FromToUserID: &open_im_sdk.FromToUserID{}} friendInfoChangedTips.FromToUserID.FromUserID = fromUserID friendInfoChangedTips.FromToUserID.ToUserID = toUserID - //fromUserNickname, toUserNickname, err := getFromToUserNickname(fromUserID, toUserID) - //if err != nil { - // log.Error(operationID, "getFromToUserNickname failed ", fromUserID, toUserID) - // return - //} commID := pbFriend.CommID{FromUserID: fromUserID, ToUserID: toUserID, OpUserID: opUserID, OperationID: operationID} friendNotification(&commID, constant.FriendRemarkSetNotification, &friendInfoChangedTips) - //var tips open_im_sdk.TipsComm - //tips.DefaultTips = fromUserNickname + " FriendDeletedNotification " + toUserNickname - //tips.Detail, err = proto.Marshal(&friendInfoChangedTips) - //if err != nil { - // log.Error(operationID, "Marshal failed ", err.Error(), friendInfoChangedTips.String()) - // return - //} - // - //var n NotificationMsg - //n.SendID = fromUserID - //n.RecvID = toUserID - //n.ContentType = constant.FriendInfoChangedNotification - //n.SessionType = constant.SingleChatType - //n.MsgFrom = constant.SysMsgType - //n.OperationID = operationID - //n.Content, err = proto.Marshal(&tips) - //if err != nil { - // log.Error(operationID, "Marshal failed ", err.Error(), tips.String()) - // return - //} - //Notification(&n) } func BlackAddedNotification(req *pbFriend.AddBlacklistReq) { - var blackAddedTips open_im_sdk.BlackAddedTips + blackAddedTips := open_im_sdk.BlackAddedTips{FromToUserID: &open_im_sdk.FromToUserID{}} blackAddedTips.FromToUserID.FromUserID = req.CommID.FromUserID blackAddedTips.FromToUserID.ToUserID = req.CommID.ToUserID - //fromUserNickname, toUserNickname, err := getFromToUserNickname(req.CommID.FromUserID, req.CommID.ToUserID) - //if err != nil { - // log.Error(req.CommID.OperationID, "getFromToUserNickname failed ", req.CommID.FromUserID, req.CommID.ToUserID) - // return - //} - //var tips open_im_sdk.TipsComm - //tips.DefaultTips = fromUserNickname + " BlackAddedNotification " + toUserNickname - //tips.Detail, err = proto.Marshal(&blackAddedTips) - //if err != nil { - // log.Error(req.CommID.OperationID, "Marshal failed ", err.Error(), blackAddedTips.String()) - // return - //} friendNotification(req.CommID, constant.BlackAddedNotification, &blackAddedTips) - //var n NotificationMsg - //n.SendID = req.CommID.FromUserID - //n.RecvID = req.CommID.ToUserID - //n.ContentType = constant.BlackAddedNotification - //n.SessionType = constant.SingleChatType - //n.MsgFrom = constant.SysMsgType - //n.OperationID = req.CommID.OperationID - //n.Content, err = proto.Marshal(&tips) - //if err != nil { - // log.Error(req.CommID.OperationID, "Marshal failed ", err.Error(), tips.String()) - // return - //} - //Notification(&n) } -//message BlackDeletedTips{ -// BlackInfo Black = 1; -//} func BlackDeletedNotification(req *pbFriend.RemoveBlacklistReq) { - var blackDeletedTips open_im_sdk.BlackDeletedTips + blackDeletedTips := open_im_sdk.BlackDeletedTips{FromToUserID: &open_im_sdk.FromToUserID{}} blackDeletedTips.FromToUserID.FromUserID = req.CommID.FromUserID blackDeletedTips.FromToUserID.ToUserID = req.CommID.ToUserID - //fromUserNickname, toUserNickname, err := getFromToUserNickname(req.CommID.FromUserID, req.CommID.ToUserID) - //if err != nil { - // log.Error(req.CommID.OperationID, "getFromToUserNickname failed ", err.Error(), req.CommID.FromUserID, req.CommID.ToUserID) - // return - //} - //var tips open_im_sdk.TipsComm - //tips.Detail, err = proto.Marshal(&blackDeletedTips) - //if err != nil { - // log.Error(req.CommID.OperationID, "Marshal failed ", err.Error(), blackDeletedTips.String()) - // return - //} friendNotification(req.CommID, constant.BlackDeletedNotification, &blackDeletedTips) - //tips.DefaultTips = fromUserNickname + " BlackDeletedNotification " + toUserNickname - //var n NotificationMsg - //n.SendID = req.CommID.FromUserID - //n.RecvID = req.CommID.ToUserID - //n.ContentType = constant.BlackDeletedNotification - //n.SessionType = constant.SingleChatType - //n.MsgFrom = constant.SysMsgType - //n.OperationID = req.CommID.OperationID - //n.Content, err = proto.Marshal(&tips) - //if err != nil { - // log.Error(req.CommID.OperationID, "Marshal failed ", err.Error(), tips.String()) - // return - //} - //Notification(&n) } -//message SelfInfoUpdatedTips{ -// UserInfo SelfUserInfo = 1; -// PublicUserInfo OpUser = 2; -// uint64 OperationTime = 3; -//} func UserInfoUpdatedNotification(operationID, userID string, needNotifiedUserID string) { - var selfInfoUpdatedTips open_im_sdk.UserInfoUpdatedTips - selfInfoUpdatedTips.UserID = userID + selfInfoUpdatedTips := open_im_sdk.UserInfoUpdatedTips{UserID: userID} commID := pbFriend.CommID{FromUserID: userID, ToUserID: userID, OpUserID: needNotifiedUserID, OperationID: operationID} friendNotification(&commID, constant.UserInfoUpdatedNotification, &selfInfoUpdatedTips) - //u, err := imdb.GetUserByUserID(userID) - //if err != nil { - // log.NewError(operationID, "FindUserByUID failed ", err.Error(), userID) - // return - //} - //var tips open_im_sdk.TipsComm - //tips.Detail, err = proto.Marshal(&selfInfoUpdatedTips) - //if err != nil { - // log.Error(operationID, "Marshal failed ", err.Error(), selfInfoUpdatedTips.String()) - // return - //} - //var n NotificationMsg - //n.SendID = userID - //n.RecvID = userID - //n.ContentType = constant.SelfInfoUpdatedNotification - //n.SessionType = constant.SingleChatType - //n.MsgFrom = constant.SysMsgType - //n.OperationID = operationID - // - //tips.DefaultTips = u.Nickname + " SelfInfoUpdatedNotification " - //n.Content, err = proto.Marshal(&tips) - //if err != nil { - // log.Error(operationID, "Marshal failed ", err.Error(), tips.String()) - // return - //} - //Notification(&n) } diff --git a/pkg/common/config/config.go b/pkg/common/config/config.go index bf175b3b6..339352a77 100644 --- a/pkg/common/config/config.go +++ b/pkg/common/config/config.go @@ -182,12 +182,11 @@ type config struct { DefaultTips PDefaultTips `yaml:"defaultTips"` } //////////////////////friend/////////////////////// - FriendApplicationAdded struct { + FriendApplication struct { Conversation PConversation `yaml:"conversation"` OfflinePush POfflinePush `yaml:"offlinePush"` DefaultTips PDefaultTips `yaml:"defaultTips"` } - FriendApplicationApproved struct { Conversation PConversation `yaml:"conversation"` OfflinePush POfflinePush `yaml:"offlinePush"` @@ -211,7 +210,7 @@ type config struct { OfflinePush POfflinePush `yaml:"offlinePush"` DefaultTips PDefaultTips `yaml:"defaultTips"` } - FriendInfoChanged struct { + FriendRemarkSet struct { Conversation PConversation `yaml:"conversation"` OfflinePush POfflinePush `yaml:"offlinePush"` DefaultTips PDefaultTips `yaml:"defaultTips"` From 7f4eb5624bf77e9b47f8849d89d7820bfb8cca35 Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Mon, 17 Jan 2022 14:05:09 +0800 Subject: [PATCH 501/814] Refactor code --- pkg/common/config/config.go | 54 +++++++++++++++++++++++++++++++++++-- pkg/proto/auth/auth.proto | 2 +- pkg/proto/chat/chat.proto | 12 ++++----- pkg/proto/relay/relay.proto | 2 +- 4 files changed, 60 insertions(+), 10 deletions(-) diff --git a/pkg/common/config/config.go b/pkg/common/config/config.go index 339352a77..2e6870557 100644 --- a/pkg/common/config/config.go +++ b/pkg/common/config/config.go @@ -164,23 +164,73 @@ type config struct { BadgeCount bool `yaml:"badgeCount"` } Notification struct { + ///////////////////////group///////////////////////////// GroupCreated struct { Conversation PConversation `yaml:"conversation"` OfflinePush POfflinePush `yaml:"offlinePush"` DefaultTips PDefaultTips `yaml:"defaultTips"` } - GroupInfoChanged struct { + GroupInfoSet struct { Conversation PConversation `yaml:"conversation"` OfflinePush POfflinePush `yaml:"offlinePush"` DefaultTips PDefaultTips `yaml:"defaultTips"` } - ApplyJoinGroup struct { + JoinGroupApplication struct { Conversation PConversation `yaml:"conversation"` OfflinePush POfflinePush `yaml:"offlinePush"` DefaultTips PDefaultTips `yaml:"defaultTips"` } + + MemberQuit struct { + Conversation PConversation `yaml:"conversation"` + OfflinePush POfflinePush `yaml:"offlinePush"` + DefaultTips PDefaultTips `yaml:"defaultTips"` + } + + GroupApplicationAccepted struct { + Conversation PConversation `yaml:"conversation"` + OfflinePush POfflinePush `yaml:"offlinePush"` + DefaultTips PDefaultTips `yaml:"defaultTips"` + } + + GroupApplicationRejected struct { + Conversation PConversation `yaml:"conversation"` + OfflinePush POfflinePush `yaml:"offlinePush"` + DefaultTips PDefaultTips `yaml:"defaultTips"` + } + + GroupOwnerTransferred struct { + Conversation PConversation `yaml:"conversation"` + OfflinePush POfflinePush `yaml:"offlinePush"` + DefaultTips PDefaultTips `yaml:"defaultTips"` + } + + MemberKicked struct { + Conversation PConversation `yaml:"conversation"` + OfflinePush POfflinePush `yaml:"offlinePush"` + DefaultTips PDefaultTips `yaml:"defaultTips"` + } + + MemberInvited struct { + Conversation PConversation `yaml:"conversation"` + OfflinePush POfflinePush `yaml:"offlinePush"` + DefaultTips PDefaultTips `yaml:"defaultTips"` + } + + MemberEnter struct { + Conversation PConversation `yaml:"conversation"` + OfflinePush POfflinePush `yaml:"offlinePush"` + DefaultTips PDefaultTips `yaml:"defaultTips"` + } + ////////////////////////user/////////////////////// + UserInfoUpdated struct { + Conversation PConversation `yaml:"conversation"` + OfflinePush POfflinePush `yaml:"offlinePush"` + DefaultTips PDefaultTips `yaml:"defaultTips"` + } + //////////////////////friend/////////////////////// FriendApplication struct { Conversation PConversation `yaml:"conversation"` diff --git a/pkg/proto/auth/auth.proto b/pkg/proto/auth/auth.proto index 592c4987e..c91921fe9 100644 --- a/pkg/proto/auth/auth.proto +++ b/pkg/proto/auth/auth.proto @@ -9,7 +9,7 @@ message CommonResp{ } message UserRegisterReq { - open_im_sdk.UserInfo UserInfo = 1; + server_api_params.UserInfo UserInfo = 1; string OperationID = 2; } message UserRegisterResp { diff --git a/pkg/proto/chat/chat.proto b/pkg/proto/chat/chat.proto index 6a969ac20..12bac416c 100644 --- a/pkg/proto/chat/chat.proto +++ b/pkg/proto/chat/chat.proto @@ -6,18 +6,18 @@ option go_package = "./chat;pbChat";//The generated go pb file is in the current message MsgDataToMQ{ string token =1; string operationID = 2; - open_im_sdk.MsgData msgData = 3; + server_api_params.MsgData msgData = 3; } message MsgDataToDB { - open_im_sdk.MsgData msgData = 1; + server_api_params.MsgData msgData = 1; string operationID = 2; } message PushMsgDataToMQ{ string OperationID = 1; - open_im_sdk.MsgData msgData = 2; + server_api_params.MsgData msgData = 2; } //message PullMessageReq { @@ -87,7 +87,7 @@ message SendMsgReq { string token =1; string operationID = 2; -open_im_sdk.MsgData msgData = 3; +server_api_params.MsgData msgData = 3; } @@ -102,7 +102,7 @@ message SendMsgResp { } service Chat { rpc GetMaxAndMinSeq(GetMaxAndMinSeqReq) returns(GetMaxAndMinSeqResp); - rpc PullMessage(open_im_sdk.PullMessageReq) returns(open_im_sdk.PullMessageResp); - rpc PullMessageBySeqList(open_im_sdk.PullMessageBySeqListReq) returns(open_im_sdk.PullMessageBySeqListResp); + rpc PullMessage(server_api_params.PullMessageReq) returns(server_api_params.PullMessageResp); + rpc PullMessageBySeqList(server_api_params.PullMessageBySeqListReq) returns(server_api_params.PullMessageBySeqListResp); rpc SendMsg(SendMsgReq) returns(SendMsgResp); } diff --git a/pkg/proto/relay/relay.proto b/pkg/proto/relay/relay.proto index fc95a4f7b..c0149a674 100644 --- a/pkg/proto/relay/relay.proto +++ b/pkg/proto/relay/relay.proto @@ -5,7 +5,7 @@ package relay; message OnlinePushMsgReq { string OperationID = 1; - open_im_sdk.MsgData msgData = 2; + server_api_params.MsgData msgData = 2; } message OnlinePushMsgResp{ repeated SingleMsgToUser resp = 1; From b9b0e9cf43e519606859bfd92fbc43924d19b8cd Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Mon, 17 Jan 2022 14:06:37 +0800 Subject: [PATCH 502/814] Refactor code --- pkg/proto/user/user.proto | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkg/proto/user/user.proto b/pkg/proto/user/user.proto index 3b66f1f41..75455f7a0 100644 --- a/pkg/proto/user/user.proto +++ b/pkg/proto/user/user.proto @@ -52,13 +52,13 @@ message GetUserInfoReq{ } message GetUserInfoResp{ CommonResp commonResp = 1; - repeated open_im_sdk.UserInfo UserInfoList = 3; + repeated server_api_params.UserInfo UserInfoList = 3; } message UpdateUserInfoReq{ - open_im_sdk.UserInfo UserInfo = 1; + server_api_params.UserInfo UserInfo = 1; string OpUserID = 2; string operationID = 3; } From 31a6797fc3f1f4537003523dce0de9f81fb60edf Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Mon, 17 Jan 2022 14:07:21 +0800 Subject: [PATCH 503/814] Refactor code --- pkg/proto/push/push.proto | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkg/proto/push/push.proto b/pkg/proto/push/push.proto index 99b2a170a..455b3e6de 100644 --- a/pkg/proto/push/push.proto +++ b/pkg/proto/push/push.proto @@ -5,7 +5,7 @@ package push; message PushMsgReq { string operationID = 1; - open_im_sdk.MsgData msgData = 2; + server_api_params.MsgData msgData = 2; } message PushMsgResp{ int32 ResultCode = 1; From 5d8e972ac77bb53123b49136027922d39b18e3f4 Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Mon, 17 Jan 2022 14:10:45 +0800 Subject: [PATCH 504/814] Refactor code --- pkg/proto/auth/auth.pb.go | 65 ++++++++-------- pkg/proto/chat/chat.pb.go | 83 ++++++++++---------- pkg/proto/push/push.pb.go | 41 +++++----- pkg/proto/relay/relay.pb.go | 92 +++++++++++----------- pkg/proto/user/user.pb.go | 149 ++++++++++++++++++------------------ 5 files changed, 217 insertions(+), 213 deletions(-) diff --git a/pkg/proto/auth/auth.pb.go b/pkg/proto/auth/auth.pb.go index 1bc510860..3941570ee 100644 --- a/pkg/proto/auth/auth.pb.go +++ b/pkg/proto/auth/auth.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_auth_6e5d34ffb6edf37a, []int{0} + return fileDescriptor_auth_88965eda3ab7f34d, []int{0} } func (m *CommonResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_CommonResp.Unmarshal(m, b) @@ -82,7 +82,7 @@ func (m *UserRegisterReq) Reset() { *m = UserRegisterReq{} } func (m *UserRegisterReq) String() string { return proto.CompactTextString(m) } func (*UserRegisterReq) ProtoMessage() {} func (*UserRegisterReq) Descriptor() ([]byte, []int) { - return fileDescriptor_auth_6e5d34ffb6edf37a, []int{1} + return fileDescriptor_auth_88965eda3ab7f34d, []int{1} } func (m *UserRegisterReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_UserRegisterReq.Unmarshal(m, b) @@ -127,7 +127,7 @@ func (m *UserRegisterResp) Reset() { *m = UserRegisterResp{} } func (m *UserRegisterResp) String() string { return proto.CompactTextString(m) } func (*UserRegisterResp) ProtoMessage() {} func (*UserRegisterResp) Descriptor() ([]byte, []int) { - return fileDescriptor_auth_6e5d34ffb6edf37a, []int{2} + return fileDescriptor_auth_88965eda3ab7f34d, []int{2} } func (m *UserRegisterResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_UserRegisterResp.Unmarshal(m, b) @@ -168,7 +168,7 @@ func (m *UserTokenReq) Reset() { *m = UserTokenReq{} } func (m *UserTokenReq) String() string { return proto.CompactTextString(m) } func (*UserTokenReq) ProtoMessage() {} func (*UserTokenReq) Descriptor() ([]byte, []int) { - return fileDescriptor_auth_6e5d34ffb6edf37a, []int{3} + return fileDescriptor_auth_88965eda3ab7f34d, []int{3} } func (m *UserTokenReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_UserTokenReq.Unmarshal(m, b) @@ -229,7 +229,7 @@ func (m *UserTokenResp) Reset() { *m = UserTokenResp{} } func (m *UserTokenResp) String() string { return proto.CompactTextString(m) } func (*UserTokenResp) ProtoMessage() {} func (*UserTokenResp) Descriptor() ([]byte, []int) { - return fileDescriptor_auth_6e5d34ffb6edf37a, []int{4} + return fileDescriptor_auth_88965eda3ab7f34d, []int{4} } func (m *UserTokenResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_UserTokenResp.Unmarshal(m, b) @@ -383,31 +383,32 @@ var _Auth_serviceDesc = grpc.ServiceDesc{ Metadata: "auth/auth.proto", } -func init() { proto.RegisterFile("auth/auth.proto", fileDescriptor_auth_6e5d34ffb6edf37a) } - -var fileDescriptor_auth_6e5d34ffb6edf37a = []byte{ - // 362 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x9c, 0x52, 0x4d, 0x4f, 0xc2, 0x40, - 0x14, 0x4c, 0xe5, 0x43, 0x78, 0x48, 0x30, 0x2f, 0xa0, 0x4d, 0x0f, 0x06, 0x7b, 0xe2, 0xd4, 0x46, - 0xbc, 0x98, 0x98, 0x98, 0x20, 0x4a, 0xc2, 0x81, 0x60, 0x1a, 0xbc, 0x78, 0x21, 0x90, 0x2e, 0xd0, - 0xd4, 0x76, 0xd7, 0xdd, 0x12, 0x4c, 0x3c, 0x7a, 0xf1, 0x67, 0x9b, 0xdd, 0x7e, 0xb8, 0x22, 0x27, - 0x2f, 0x6d, 0x66, 0xe6, 0xf5, 0xcd, 0xcc, 0x76, 0xa1, 0xb5, 0xd8, 0x26, 0x1b, 0x57, 0x3e, 0x1c, - 0xc6, 0x69, 0x42, 0xb1, 0xca, 0x96, 0x83, 0x6d, 0xb2, 0xb1, 0x2e, 0xa7, 0x8c, 0xc4, 0xf3, 0xf1, - 0xc4, 0x65, 0xe1, 0xda, 0x55, 0x92, 0x2b, 0xfc, 0x70, 0xbe, 0x13, 0xee, 0x4e, 0xa4, 0xa3, 0xf6, - 0x1d, 0xc0, 0x90, 0x46, 0x11, 0x8d, 0x3d, 0x22, 0x18, 0x9a, 0x70, 0x4c, 0x38, 0x1f, 0x52, 0x9f, - 0x98, 0x46, 0xd7, 0xe8, 0x55, 0xbc, 0x1c, 0xe2, 0x19, 0x54, 0x09, 0xe7, 0x13, 0xb1, 0x36, 0x8f, - 0xba, 0x46, 0xaf, 0xee, 0x65, 0xc8, 0x5e, 0x41, 0xeb, 0x59, 0x10, 0xee, 0x91, 0x75, 0x20, 0x12, - 0xf9, 0x7e, 0xc3, 0x2b, 0xa8, 0x49, 0x6a, 0x1c, 0xaf, 0xa8, 0xda, 0xd2, 0xe8, 0x77, 0x1c, 0x2a, - 0x83, 0x04, 0xd1, 0x5c, 0xf8, 0xa1, 0x93, 0x8b, 0x5e, 0x31, 0x86, 0x5d, 0x68, 0x4c, 0x19, 0xe1, - 0x8b, 0x24, 0xa0, 0xf1, 0xf8, 0x21, 0xb3, 0xd0, 0x29, 0x7b, 0x04, 0xa7, 0xbf, 0x7d, 0x04, 0xc3, - 0xbe, 0x9e, 0x3d, 0xb3, 0x42, 0x27, 0xed, 0xee, 0xfc, 0x28, 0x9e, 0x36, 0x65, 0x7f, 0x19, 0x70, - 0x22, 0x17, 0xcd, 0x68, 0x48, 0x62, 0x99, 0xd6, 0x82, 0xda, 0xd3, 0xeb, 0x22, 0x59, 0x51, 0x1e, - 0x65, 0x9d, 0x0b, 0x8c, 0x17, 0x00, 0x23, 0x4e, 0x23, 0x15, 0x33, 0x4f, 0xa5, 0x31, 0xf2, 0xdb, - 0x29, 0xcb, 0xd4, 0x92, 0x52, 0x0b, 0xbc, 0x5f, 0xa9, 0xfc, 0xb7, 0xd2, 0x07, 0x34, 0xb5, 0x24, - 0xff, 0xeb, 0x83, 0x6d, 0xa8, 0xa8, 0x05, 0x59, 0xba, 0x14, 0x48, 0xf3, 0xc7, 0x77, 0x16, 0x70, - 0xe2, 0xcf, 0x82, 0x88, 0xa8, 0x6c, 0x25, 0x4f, 0xa7, 0xfa, 0x9f, 0x06, 0x94, 0xe5, 0x5e, 0x1c, - 0xa4, 0xe7, 0x91, 0x1f, 0x2c, 0x9e, 0xe7, 0x86, 0x7b, 0xbf, 0xd5, 0x32, 0x0f, 0x0b, 0x82, 0xe1, - 0x0d, 0xd4, 0x8b, 0x22, 0xd8, 0xd6, 0xc7, 0xf2, 0x53, 0xb6, 0x3a, 0x07, 0x58, 0xc1, 0xee, 0x5b, - 0x2f, 0x4d, 0x47, 0x5d, 0xdc, 0xdb, 0x54, 0x5e, 0x56, 0xd5, 0xad, 0xbc, 0xfe, 0x0e, 0x00, 0x00, - 0xff, 0xff, 0x8c, 0xd6, 0x72, 0x1f, 0xd3, 0x02, 0x00, 0x00, +func init() { proto.RegisterFile("auth/auth.proto", fileDescriptor_auth_88965eda3ab7f34d) } + +var fileDescriptor_auth_88965eda3ab7f34d = []byte{ + // 369 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x9c, 0x52, 0x4d, 0x4b, 0xc3, 0x40, + 0x10, 0x25, 0xf6, 0xc3, 0x76, 0x6a, 0xa9, 0x2c, 0x55, 0x43, 0x04, 0xa9, 0x39, 0xf5, 0x94, 0x40, + 0x3d, 0x28, 0x08, 0x42, 0xad, 0x16, 0x7a, 0x28, 0x95, 0xa5, 0x5e, 0xbc, 0x84, 0x94, 0x6e, 0xdb, + 0x90, 0x26, 0xbb, 0xee, 0xa6, 0x56, 0xf0, 0xe8, 0xc5, 0x9f, 0x2d, 0xbb, 0xf9, 0x70, 0xad, 0x3d, + 0x79, 0x49, 0x98, 0x79, 0x2f, 0xf3, 0xde, 0x9b, 0x0c, 0xb4, 0xfc, 0x4d, 0xb2, 0x72, 0xe5, 0xc3, + 0x61, 0x9c, 0x26, 0x14, 0x55, 0xd9, 0xac, 0xbf, 0x49, 0x56, 0xd6, 0xe5, 0x84, 0x91, 0xd8, 0x1b, + 0x8d, 0x5d, 0x16, 0x2e, 0x5d, 0x05, 0xb9, 0x62, 0x1e, 0x7a, 0x5b, 0xe1, 0x6e, 0x45, 0x4a, 0xb5, + 0xef, 0x00, 0x06, 0x34, 0x8a, 0x68, 0x8c, 0x89, 0x60, 0xc8, 0x84, 0x43, 0xc2, 0xf9, 0x80, 0xce, + 0x89, 0x69, 0x74, 0x8c, 0x6e, 0x05, 0xe7, 0x25, 0x3a, 0x85, 0x2a, 0xe1, 0x7c, 0x2c, 0x96, 0xe6, + 0x41, 0xc7, 0xe8, 0xd6, 0x71, 0x56, 0xd9, 0x6b, 0x68, 0x3d, 0x0b, 0xc2, 0x31, 0x59, 0x06, 0x22, + 0x91, 0xef, 0x57, 0x74, 0x0d, 0x35, 0xd9, 0x1a, 0xc5, 0x0b, 0xaa, 0xa6, 0x34, 0x7a, 0xe7, 0x8e, + 0x20, 0xfc, 0x8d, 0x70, 0xcf, 0x67, 0x81, 0xc7, 0x7c, 0xee, 0x47, 0xc2, 0xc9, 0x29, 0xb8, 0x20, + 0xa3, 0x0e, 0x34, 0x26, 0x8c, 0x70, 0x3f, 0x09, 0x68, 0x3c, 0x7a, 0xc8, 0x84, 0xf4, 0x96, 0x3d, + 0x84, 0xe3, 0xdf, 0x6a, 0x82, 0xa1, 0x9e, 0x9e, 0x20, 0x13, 0x44, 0x4e, 0xba, 0x01, 0xe7, 0x07, + 0xc1, 0x1a, 0xcb, 0xfe, 0x32, 0xe0, 0x48, 0x0e, 0x9a, 0xd2, 0x90, 0xc4, 0xd2, 0xb3, 0x05, 0xb5, + 0xa7, 0xb5, 0x9f, 0x2c, 0x28, 0x8f, 0xb2, 0xe4, 0x45, 0x8d, 0x2e, 0x00, 0x86, 0x9c, 0x46, 0xca, + 0x66, 0xee, 0x4a, 0xeb, 0xc8, 0x6f, 0x27, 0x2c, 0x43, 0x4b, 0x0a, 0x2d, 0xea, 0xdd, 0x48, 0xe5, + 0xbf, 0x91, 0x3e, 0xa0, 0xa9, 0x39, 0xf9, 0x5f, 0x1e, 0xd4, 0x86, 0x8a, 0x1a, 0x90, 0xb9, 0x4b, + 0x0b, 0x29, 0xfe, 0xf8, 0xce, 0x02, 0x4e, 0xe6, 0xd3, 0x20, 0x22, 0xca, 0x5b, 0x09, 0xeb, 0xad, + 0xde, 0xa7, 0x01, 0x65, 0x39, 0x17, 0xf5, 0xd3, 0x7d, 0xe4, 0x8b, 0x45, 0x67, 0xb9, 0xe0, 0xce, + 0xcf, 0xb5, 0xcc, 0xfd, 0x80, 0x60, 0xe8, 0x06, 0xea, 0x45, 0x10, 0xd4, 0xd6, 0x69, 0xf9, 0x96, + 0xad, 0x93, 0x3d, 0x5d, 0xc1, 0xee, 0x5b, 0x2f, 0x4d, 0x47, 0x9d, 0xef, 0x6d, 0x0a, 0xcf, 0xaa, + 0xea, 0x36, 0xaf, 0xbe, 0x03, 0x00, 0x00, 0xff, 0xff, 0x1b, 0x20, 0x74, 0x9f, 0xd9, 0x02, 0x00, + 0x00, } diff --git a/pkg/proto/chat/chat.pb.go b/pkg/proto/chat/chat.pb.go index f404d783d..2a52e2c37 100644 --- a/pkg/proto/chat/chat.pb.go +++ b/pkg/proto/chat/chat.pb.go @@ -37,7 +37,7 @@ func (m *MsgDataToMQ) Reset() { *m = MsgDataToMQ{} } func (m *MsgDataToMQ) String() string { return proto.CompactTextString(m) } func (*MsgDataToMQ) ProtoMessage() {} func (*MsgDataToMQ) Descriptor() ([]byte, []int) { - return fileDescriptor_chat_6e4ec29226096c3a, []int{0} + return fileDescriptor_chat_1eadc66417ed93b5, []int{0} } func (m *MsgDataToMQ) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MsgDataToMQ.Unmarshal(m, b) @@ -90,7 +90,7 @@ func (m *MsgDataToDB) Reset() { *m = MsgDataToDB{} } func (m *MsgDataToDB) String() string { return proto.CompactTextString(m) } func (*MsgDataToDB) ProtoMessage() {} func (*MsgDataToDB) Descriptor() ([]byte, []int) { - return fileDescriptor_chat_6e4ec29226096c3a, []int{1} + return fileDescriptor_chat_1eadc66417ed93b5, []int{1} } func (m *MsgDataToDB) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MsgDataToDB.Unmarshal(m, b) @@ -136,7 +136,7 @@ func (m *PushMsgDataToMQ) Reset() { *m = PushMsgDataToMQ{} } func (m *PushMsgDataToMQ) String() string { return proto.CompactTextString(m) } func (*PushMsgDataToMQ) ProtoMessage() {} func (*PushMsgDataToMQ) Descriptor() ([]byte, []int) { - return fileDescriptor_chat_6e4ec29226096c3a, []int{2} + return fileDescriptor_chat_1eadc66417ed93b5, []int{2} } func (m *PushMsgDataToMQ) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_PushMsgDataToMQ.Unmarshal(m, b) @@ -202,7 +202,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_chat_6e4ec29226096c3a, []int{3} + return fileDescriptor_chat_1eadc66417ed93b5, []int{3} } func (m *GetMaxAndMinSeqReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetMaxAndMinSeqReq.Unmarshal(m, b) @@ -250,7 +250,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_chat_6e4ec29226096c3a, []int{4} + return fileDescriptor_chat_1eadc66417ed93b5, []int{4} } func (m *GetMaxAndMinSeqResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetMaxAndMinSeqResp.Unmarshal(m, b) @@ -311,7 +311,7 @@ func (m *SendMsgReq) Reset() { *m = SendMsgReq{} } func (m *SendMsgReq) String() string { return proto.CompactTextString(m) } func (*SendMsgReq) ProtoMessage() {} func (*SendMsgReq) Descriptor() ([]byte, []int) { - return fileDescriptor_chat_6e4ec29226096c3a, []int{5} + return fileDescriptor_chat_1eadc66417ed93b5, []int{5} } func (m *SendMsgReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SendMsgReq.Unmarshal(m, b) @@ -367,7 +367,7 @@ func (m *SendMsgResp) Reset() { *m = SendMsgResp{} } func (m *SendMsgResp) String() string { return proto.CompactTextString(m) } func (*SendMsgResp) ProtoMessage() {} func (*SendMsgResp) Descriptor() ([]byte, []int) { - return fileDescriptor_chat_6e4ec29226096c3a, []int{6} + return fileDescriptor_chat_1eadc66417ed93b5, []int{6} } func (m *SendMsgResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SendMsgResp.Unmarshal(m, b) @@ -603,38 +603,39 @@ var _Chat_serviceDesc = grpc.ServiceDesc{ Metadata: "chat/chat.proto", } -func init() { proto.RegisterFile("chat/chat.proto", fileDescriptor_chat_6e4ec29226096c3a) } - -var fileDescriptor_chat_6e4ec29226096c3a = []byte{ - // 477 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0x54, 0x4d, 0x6f, 0xda, 0x40, - 0x10, 0x15, 0x24, 0x40, 0x33, 0x56, 0x85, 0xb4, 0x41, 0x95, 0xe5, 0xf4, 0x40, 0xad, 0x56, 0xca, - 0xc9, 0x96, 0xe8, 0xb1, 0xa7, 0x12, 0xa2, 0x96, 0xaa, 0xdb, 0xa4, 0x26, 0xbd, 0xf4, 0x82, 0x1c, - 0x3c, 0x32, 0x16, 0x60, 0x2f, 0x9e, 0xa5, 0xa4, 0xbf, 0xa6, 0xbf, 0xa2, 0xff, 0xaf, 0xda, 0x5d, - 0x43, 0x96, 0x20, 0x54, 0x4e, 0xb9, 0x58, 0x7a, 0x6f, 0x66, 0xde, 0xdb, 0xe7, 0xfd, 0x80, 0xf6, - 0x64, 0x1a, 0xcb, 0x50, 0x7d, 0x02, 0x51, 0x16, 0xb2, 0x60, 0x4d, 0x71, 0x7f, 0x35, 0x8d, 0xa5, - 0xf7, 0xe6, 0x46, 0x60, 0x3e, 0x1e, 0xf2, 0x50, 0xcc, 0xd2, 0x50, 0x97, 0x42, 0x4a, 0x66, 0xe3, - 0x35, 0x85, 0x6b, 0x32, 0xad, 0xfe, 0x0a, 0x1c, 0x4e, 0xe9, 0x20, 0x96, 0xf1, 0x5d, 0xc1, 0xbf, - 0xb3, 0x0e, 0x34, 0x64, 0x31, 0xc3, 0xdc, 0xad, 0x75, 0x6b, 0x97, 0x67, 0x91, 0x01, 0xac, 0x0b, - 0x4e, 0x21, 0xb0, 0x8c, 0x65, 0x56, 0xe4, 0xc3, 0x81, 0x5b, 0xd7, 0x35, 0x9b, 0x62, 0x01, 0xb4, - 0x16, 0x46, 0xc6, 0x3d, 0xe9, 0xd6, 0x2e, 0x9d, 0x5e, 0x27, 0x28, 0x94, 0x77, 0xb6, 0x18, 0x53, - 0x32, 0x0b, 0x2a, 0x8b, 0x68, 0xd3, 0xe4, 0x8f, 0x2d, 0xdb, 0x41, 0xdf, 0x1e, 0xaf, 0x1d, 0x31, - 0xfe, 0xff, 0x05, 0xf9, 0x13, 0x68, 0xdf, 0xae, 0x68, 0x6a, 0x67, 0xeb, 0x82, 0x73, 0x63, 0x0d, - 0x99, 0x84, 0x36, 0x65, 0x2f, 0xa3, 0x7e, 0x4c, 0x8a, 0x6f, 0xc0, 0x3e, 0xa1, 0xe4, 0xf1, 0xc3, - 0xc7, 0x3c, 0xe1, 0x59, 0x3e, 0xc2, 0x65, 0x84, 0x4b, 0xf6, 0x0a, 0x9a, 0x3f, 0x08, 0xcb, 0xad, - 0x45, 0x85, 0x9e, 0xfa, 0xd7, 0xf7, 0xfc, 0xfd, 0x35, 0x9c, 0xef, 0xe9, 0x91, 0x60, 0x2e, 0xb4, - 0xae, 0xcb, 0xf2, 0xaa, 0x48, 0x50, 0x2b, 0x36, 0xa2, 0x0d, 0x54, 0x56, 0xd7, 0x65, 0xc9, 0x29, - 0xad, 0xd4, 0x2a, 0xa4, 0x78, 0x1e, 0x3f, 0x8c, 0x70, 0xa9, 0x77, 0xe3, 0x24, 0xaa, 0x90, 0xe6, - 0xb5, 0xae, 0x7b, 0x5a, 0xf1, 0x1a, 0xf9, 0x12, 0x60, 0x84, 0x79, 0xc2, 0x29, 0x55, 0x01, 0x9e, - 0xeb, 0x10, 0xfc, 0xa9, 0x81, 0xb3, 0xb5, 0x35, 0x39, 0x71, 0x37, 0x27, 0x3e, 0xe6, 0xc4, 0x9d, - 0x9c, 0x06, 0xa9, 0x35, 0x11, 0x96, 0xbf, 0x50, 0x81, 0xe1, 0x40, 0x87, 0x3a, 0x8b, 0x6c, 0x4a, - 0x75, 0x4c, 0xe6, 0x19, 0xe6, 0xd2, 0x74, 0x34, 0x4c, 0x87, 0x45, 0x31, 0x0f, 0x5e, 0x10, 0xe6, - 0xc9, 0x5d, 0xb6, 0x40, 0xb7, 0xa9, 0xff, 0xca, 0x16, 0xf7, 0xfe, 0xd6, 0xe1, 0x54, 0xdd, 0x24, - 0xf6, 0x05, 0xda, 0x4f, 0x76, 0x86, 0x79, 0x81, 0xb9, 0x65, 0xc1, 0xfe, 0x11, 0xf0, 0x2e, 0x0e, - 0xd6, 0x48, 0xb0, 0xcf, 0xe0, 0xdc, 0xae, 0xe6, 0x73, 0x8e, 0x44, 0x71, 0x8a, 0xec, 0x62, 0xe7, - 0x27, 0x59, 0x15, 0x25, 0xf4, 0xfa, 0x70, 0x91, 0x04, 0x9b, 0x40, 0xc7, 0xa2, 0xfa, 0xbf, 0x47, - 0xb8, 0xfc, 0x9a, 0x91, 0x64, 0x6f, 0x0f, 0x4d, 0x6d, 0x5b, 0x94, 0xf6, 0xbb, 0x23, 0xba, 0x48, - 0xb0, 0x1e, 0xb4, 0xaa, 0x4d, 0x62, 0x6c, 0x13, 0xeb, 0xf1, 0xb0, 0x78, 0xe7, 0x7b, 0x1c, 0x89, - 0x7e, 0xfb, 0xe7, 0xcb, 0x40, 0x3f, 0x48, 0x1f, 0x4c, 0xf1, 0xbe, 0xa9, 0x5f, 0x9b, 0xf7, 0xff, - 0x02, 0x00, 0x00, 0xff, 0xff, 0xb3, 0x57, 0x8f, 0x13, 0xab, 0x04, 0x00, 0x00, +func init() { proto.RegisterFile("chat/chat.proto", fileDescriptor_chat_1eadc66417ed93b5) } + +var fileDescriptor_chat_1eadc66417ed93b5 = []byte{ + // 482 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0x54, 0x4d, 0x6f, 0xd3, 0x40, + 0x10, 0x95, 0xd3, 0x26, 0xa1, 0x63, 0xa1, 0x48, 0xdb, 0x0a, 0x59, 0xe6, 0x92, 0xfa, 0x54, 0x81, + 0x64, 0x4b, 0x81, 0x1b, 0x27, 0xd2, 0x54, 0x28, 0x88, 0xa5, 0xc5, 0x09, 0x17, 0x2e, 0xd1, 0xb6, + 0x1e, 0x39, 0x56, 0x12, 0x7b, 0xb3, 0xe3, 0x92, 0x02, 0x3f, 0x86, 0x5f, 0xc4, 0x7f, 0x42, 0xde, + 0x75, 0xd2, 0x6d, 0x03, 0x24, 0x27, 0x2e, 0x96, 0xde, 0x9b, 0xe7, 0x37, 0xf3, 0xf6, 0x0b, 0x3a, + 0x37, 0x53, 0x51, 0x46, 0xd5, 0x27, 0x94, 0xaa, 0x28, 0x0b, 0xd6, 0x92, 0xd7, 0xe7, 0x53, 0x51, + 0xfa, 0xa7, 0x97, 0x12, 0xf3, 0xc9, 0x90, 0x47, 0x72, 0x96, 0x46, 0xba, 0x14, 0x51, 0x32, 0x9b, + 0xac, 0x28, 0x5a, 0x91, 0x91, 0x06, 0x3f, 0xc0, 0xe5, 0x94, 0x0e, 0x44, 0x29, 0xc6, 0x05, 0xff, + 0xc4, 0x4e, 0xa0, 0x59, 0x16, 0x33, 0xcc, 0x3d, 0xa7, 0xeb, 0x9c, 0x1d, 0xc5, 0x06, 0xb0, 0x2e, + 0xb8, 0x85, 0x44, 0x25, 0xca, 0xac, 0xc8, 0x87, 0x03, 0xaf, 0xa1, 0x6b, 0x36, 0xc5, 0x5e, 0x43, + 0x7b, 0x61, 0x6c, 0xbc, 0x83, 0xae, 0x73, 0xe6, 0xf6, 0xfc, 0x90, 0x50, 0x7d, 0x45, 0x35, 0x11, + 0x32, 0x9b, 0x48, 0xa1, 0xc4, 0x82, 0xc2, 0xba, 0x51, 0xbc, 0x96, 0x06, 0x68, 0x35, 0x1f, 0xf4, + 0x6d, 0x13, 0x67, 0x6f, 0x93, 0xdd, 0xc3, 0x05, 0x19, 0x74, 0xae, 0x6e, 0x69, 0x6a, 0xe7, 0xec, + 0x82, 0x7b, 0x69, 0xfd, 0x64, 0xd2, 0xda, 0x94, 0x3d, 0x4c, 0x63, 0xff, 0x44, 0x1f, 0x81, 0xbd, + 0xc3, 0x92, 0x8b, 0xbb, 0xb7, 0x79, 0xc2, 0xb3, 0x7c, 0x84, 0xcb, 0x18, 0x97, 0xec, 0x19, 0xb4, + 0x3e, 0x13, 0xaa, 0x4d, 0xa3, 0x1a, 0x3d, 0x9e, 0xa2, 0xb1, 0x35, 0x45, 0xb0, 0x82, 0xe3, 0x2d, + 0x3f, 0x92, 0xcc, 0x83, 0xf6, 0x85, 0x52, 0xe7, 0x45, 0x82, 0xda, 0xb1, 0x19, 0xaf, 0x61, 0xd5, + 0xea, 0x42, 0x29, 0x4e, 0x69, 0xed, 0x56, 0xa3, 0x8a, 0xe7, 0xe2, 0x6e, 0x84, 0x4b, 0xbd, 0x3f, + 0x07, 0x71, 0x8d, 0x34, 0xaf, 0x7d, 0xbd, 0xc3, 0x9a, 0xd7, 0x28, 0xf8, 0x0e, 0x30, 0xc2, 0x3c, + 0xe1, 0x94, 0x56, 0x01, 0xfe, 0xef, 0xb1, 0xf8, 0xe9, 0x80, 0xbb, 0x69, 0x6e, 0xd2, 0xe2, 0xc3, + 0xb4, 0x78, 0x9f, 0x16, 0x1f, 0xa4, 0x35, 0xa8, 0x9a, 0xcc, 0xf4, 0xe1, 0x94, 0x0e, 0x07, 0x3a, + 0xda, 0x51, 0x6c, 0x53, 0x95, 0xe2, 0x66, 0x9e, 0x61, 0x5e, 0x1a, 0x45, 0xd3, 0x28, 0x2c, 0x8a, + 0xf9, 0xf0, 0x84, 0x30, 0x4f, 0xc6, 0xd9, 0x02, 0xbd, 0x96, 0x5e, 0x9b, 0x0d, 0xee, 0xfd, 0x6a, + 0xc0, 0x61, 0x75, 0xc3, 0xd8, 0x7b, 0xe8, 0x3c, 0xda, 0x1f, 0xe6, 0x87, 0xe6, 0xf6, 0x85, 0xdb, + 0x07, 0xc1, 0x7f, 0xfe, 0xd7, 0x1a, 0x49, 0x36, 0x06, 0xf7, 0xea, 0x76, 0x3e, 0xe7, 0x48, 0x24, + 0x52, 0x64, 0xa7, 0x7f, 0x58, 0x2a, 0xab, 0x5e, 0xd9, 0x05, 0xbb, 0x24, 0x24, 0x59, 0x01, 0x27, + 0x16, 0xd5, 0xff, 0x36, 0xc2, 0xe5, 0x87, 0x8c, 0x4a, 0xf6, 0xe2, 0xdf, 0xff, 0x6e, 0x84, 0x55, + 0x9f, 0x97, 0x7b, 0x6b, 0x49, 0xb2, 0x1e, 0xb4, 0xeb, 0xcd, 0x63, 0x6c, 0x1d, 0xf7, 0xfe, 0x28, + 0xf9, 0xc7, 0x5b, 0x1c, 0xc9, 0x7e, 0xe7, 0xcb, 0xd3, 0x50, 0x3f, 0x60, 0x6f, 0x4c, 0xf1, 0xba, + 0xa5, 0x5f, 0xa7, 0x57, 0xbf, 0x03, 0x00, 0x00, 0xff, 0xff, 0xcb, 0xb4, 0x87, 0x05, 0xdb, 0x04, + 0x00, 0x00, } diff --git a/pkg/proto/push/push.pb.go b/pkg/proto/push/push.pb.go index f4ef70cfb..0dc06210a 100644 --- a/pkg/proto/push/push.pb.go +++ b/pkg/proto/push/push.pb.go @@ -36,7 +36,7 @@ func (m *PushMsgReq) Reset() { *m = PushMsgReq{} } func (m *PushMsgReq) String() string { return proto.CompactTextString(m) } func (*PushMsgReq) ProtoMessage() {} func (*PushMsgReq) Descriptor() ([]byte, []int) { - return fileDescriptor_push_e9dec9fedbbc6360, []int{0} + return fileDescriptor_push_3a8dbda4109fac8a, []int{0} } func (m *PushMsgReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_PushMsgReq.Unmarshal(m, b) @@ -81,7 +81,7 @@ func (m *PushMsgResp) Reset() { *m = PushMsgResp{} } func (m *PushMsgResp) String() string { return proto.CompactTextString(m) } func (*PushMsgResp) ProtoMessage() {} func (*PushMsgResp) Descriptor() ([]byte, []int) { - return fileDescriptor_push_e9dec9fedbbc6360, []int{1} + return fileDescriptor_push_3a8dbda4109fac8a, []int{1} } func (m *PushMsgResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_PushMsgResp.Unmarshal(m, b) @@ -185,22 +185,23 @@ var _PushMsgService_serviceDesc = grpc.ServiceDesc{ Metadata: "push/push.proto", } -func init() { proto.RegisterFile("push/push.proto", fileDescriptor_push_e9dec9fedbbc6360) } - -var fileDescriptor_push_e9dec9fedbbc6360 = []byte{ - // 221 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe2, 0xe2, 0x2f, 0x28, 0x2d, 0xce, - 0xd0, 0x07, 0x11, 0x7a, 0x05, 0x45, 0xf9, 0x25, 0xf9, 0x42, 0x2c, 0x20, 0xb6, 0x94, 0xa2, 0x7f, - 0x41, 0x6a, 0x5e, 0xbc, 0xa7, 0xaf, 0x7e, 0x41, 0x76, 0xba, 0x3e, 0x58, 0x42, 0xbf, 0x38, 0x25, - 0x3b, 0xbe, 0xbc, 0x58, 0xbf, 0xbc, 0x18, 0xa2, 0x50, 0x29, 0x8e, 0x8b, 0x2b, 0xa0, 0xb4, 0x38, - 0xc3, 0xb7, 0x38, 0x3d, 0x28, 0xb5, 0x50, 0x48, 0x81, 0x8b, 0x3b, 0xbf, 0x20, 0xb5, 0x28, 0xb1, - 0x24, 0x33, 0x3f, 0xcf, 0xd3, 0x45, 0x82, 0x51, 0x81, 0x51, 0x83, 0x33, 0x08, 0x59, 0x48, 0x48, - 0x8f, 0x8b, 0x3d, 0xb7, 0x38, 0xdd, 0x25, 0xb1, 0x24, 0x51, 0x82, 0x49, 0x81, 0x51, 0x83, 0xdb, - 0x48, 0x44, 0x2f, 0x1f, 0x64, 0x49, 0x66, 0x6e, 0x7c, 0x71, 0x4a, 0xb6, 0x9e, 0x2f, 0x44, 0x2e, - 0x08, 0xa6, 0x48, 0x49, 0x97, 0x8b, 0x1b, 0x6e, 0x7e, 0x71, 0x81, 0x90, 0x1c, 0x17, 0x57, 0x50, - 0x6a, 0x71, 0x69, 0x4e, 0x89, 0x73, 0x7e, 0x4a, 0x2a, 0xd8, 0x7c, 0xd6, 0x20, 0x24, 0x11, 0x23, - 0x07, 0x2e, 0x3e, 0xa8, 0xf2, 0xe0, 0xd4, 0xa2, 0xb2, 0xcc, 0xe4, 0x54, 0x90, 0x85, 0x50, 0x11, - 0x21, 0x01, 0x3d, 0xb0, 0x0f, 0x11, 0xee, 0x95, 0x12, 0x44, 0x13, 0x29, 0x2e, 0x70, 0xe2, 0x8f, - 0xe2, 0xd5, 0x03, 0x87, 0x84, 0x75, 0x41, 0x12, 0x48, 0x3c, 0x89, 0x0d, 0xec, 0x51, 0x63, 0x40, - 0x00, 0x00, 0x00, 0xff, 0xff, 0x02, 0x62, 0xa4, 0x3d, 0x24, 0x01, 0x00, 0x00, +func init() { proto.RegisterFile("push/push.proto", fileDescriptor_push_3a8dbda4109fac8a) } + +var fileDescriptor_push_3a8dbda4109fac8a = []byte{ + // 229 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x5c, 0x90, 0x31, 0x4f, 0xc3, 0x30, + 0x10, 0x85, 0x15, 0x04, 0x54, 0x5c, 0x04, 0x05, 0x4f, 0x55, 0x06, 0x14, 0x3a, 0x75, 0xc1, 0x96, + 0x0a, 0x1b, 0x0b, 0x82, 0x2e, 0x1d, 0x22, 0x90, 0xd9, 0x58, 0x2c, 0x97, 0x9c, 0xd2, 0xa8, 0xb4, + 0x3e, 0x7c, 0x4e, 0xfb, 0xf7, 0x51, 0x9c, 0x00, 0x11, 0x8b, 0x65, 0x7d, 0xf7, 0x49, 0xef, 0xde, + 0xc1, 0x98, 0x1a, 0x5e, 0xab, 0xf6, 0x91, 0xe4, 0x5d, 0x70, 0xe2, 0xb8, 0xfd, 0x67, 0x37, 0x2f, + 0x84, 0x3b, 0xb3, 0x2c, 0x14, 0x6d, 0x2a, 0x15, 0x07, 0x8a, 0xcb, 0x8d, 0x39, 0xb0, 0x3a, 0x70, + 0x27, 0x4e, 0x4b, 0x80, 0xd7, 0x86, 0xd7, 0x05, 0x57, 0x1a, 0xbf, 0x44, 0x0e, 0xa9, 0x23, 0xf4, + 0x36, 0xd4, 0x6e, 0xb7, 0x5c, 0x4c, 0x92, 0x3c, 0x99, 0x9d, 0xe9, 0x21, 0x12, 0xf7, 0x30, 0xda, + 0x72, 0xb5, 0xb0, 0xc1, 0x4e, 0x8e, 0xf2, 0x64, 0x96, 0xce, 0x33, 0xc9, 0xe8, 0xf7, 0xe8, 0x8d, + 0xa5, 0xda, 0x90, 0xf5, 0x76, 0xcb, 0xb2, 0xe8, 0x0c, 0xfd, 0xa3, 0x4e, 0x6f, 0x21, 0xfd, 0x4d, + 0x61, 0x12, 0xd7, 0x00, 0x1a, 0xb9, 0xf9, 0x0c, 0xcf, 0xae, 0xc4, 0x98, 0x72, 0xa2, 0x07, 0x64, + 0xfe, 0x08, 0x17, 0xbd, 0xfe, 0x86, 0x7e, 0x5f, 0x7f, 0xa0, 0x90, 0x30, 0xea, 0x89, 0xb8, 0x94, + 0xb1, 0xe7, 0xdf, 0xd6, 0xd9, 0xd5, 0x3f, 0xc2, 0xf4, 0x34, 0x7e, 0x3f, 0x97, 0xf1, 0x1e, 0x0f, + 0xb4, 0x6a, 0xf9, 0xea, 0x34, 0xd6, 0xbd, 0xfb, 0x0e, 0x00, 0x00, 0xff, 0xff, 0xa1, 0x97, 0x1e, + 0x77, 0x2a, 0x01, 0x00, 0x00, } diff --git a/pkg/proto/relay/relay.pb.go b/pkg/proto/relay/relay.pb.go index c2a3cda0c..d8451ff70 100644 --- a/pkg/proto/relay/relay.pb.go +++ b/pkg/proto/relay/relay.pb.go @@ -36,7 +36,7 @@ func (m *OnlinePushMsgReq) Reset() { *m = OnlinePushMsgReq{} } func (m *OnlinePushMsgReq) String() string { return proto.CompactTextString(m) } func (*OnlinePushMsgReq) ProtoMessage() {} func (*OnlinePushMsgReq) Descriptor() ([]byte, []int) { - return fileDescriptor_relay_de3bbbc2d62c0c49, []int{0} + return fileDescriptor_relay_aeddd7666fcf4cae, []int{0} } func (m *OnlinePushMsgReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_OnlinePushMsgReq.Unmarshal(m, b) @@ -81,7 +81,7 @@ func (m *OnlinePushMsgResp) Reset() { *m = OnlinePushMsgResp{} } func (m *OnlinePushMsgResp) String() string { return proto.CompactTextString(m) } func (*OnlinePushMsgResp) ProtoMessage() {} func (*OnlinePushMsgResp) Descriptor() ([]byte, []int) { - return fileDescriptor_relay_de3bbbc2d62c0c49, []int{1} + return fileDescriptor_relay_aeddd7666fcf4cae, []int{1} } func (m *OnlinePushMsgResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_OnlinePushMsgResp.Unmarshal(m, b) @@ -121,7 +121,7 @@ func (m *SingleMsgToUser) Reset() { *m = SingleMsgToUser{} } func (m *SingleMsgToUser) String() string { return proto.CompactTextString(m) } func (*SingleMsgToUser) ProtoMessage() {} func (*SingleMsgToUser) Descriptor() ([]byte, []int) { - return fileDescriptor_relay_de3bbbc2d62c0c49, []int{2} + return fileDescriptor_relay_aeddd7666fcf4cae, []int{2} } func (m *SingleMsgToUser) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SingleMsgToUser.Unmarshal(m, b) @@ -175,7 +175,7 @@ func (m *GetUsersOnlineStatusReq) Reset() { *m = GetUsersOnlineStatusReq func (m *GetUsersOnlineStatusReq) String() string { return proto.CompactTextString(m) } func (*GetUsersOnlineStatusReq) ProtoMessage() {} func (*GetUsersOnlineStatusReq) Descriptor() ([]byte, []int) { - return fileDescriptor_relay_de3bbbc2d62c0c49, []int{3} + return fileDescriptor_relay_aeddd7666fcf4cae, []int{3} } func (m *GetUsersOnlineStatusReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetUsersOnlineStatusReq.Unmarshal(m, b) @@ -230,7 +230,7 @@ func (m *GetUsersOnlineStatusResp) Reset() { *m = GetUsersOnlineStatusRe func (m *GetUsersOnlineStatusResp) String() string { return proto.CompactTextString(m) } func (*GetUsersOnlineStatusResp) ProtoMessage() {} func (*GetUsersOnlineStatusResp) Descriptor() ([]byte, []int) { - return fileDescriptor_relay_de3bbbc2d62c0c49, []int{4} + return fileDescriptor_relay_aeddd7666fcf4cae, []int{4} } func (m *GetUsersOnlineStatusResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetUsersOnlineStatusResp.Unmarshal(m, b) @@ -292,7 +292,7 @@ func (m *GetUsersOnlineStatusResp_SuccessDetail) Reset() { func (m *GetUsersOnlineStatusResp_SuccessDetail) String() string { return proto.CompactTextString(m) } func (*GetUsersOnlineStatusResp_SuccessDetail) ProtoMessage() {} func (*GetUsersOnlineStatusResp_SuccessDetail) Descriptor() ([]byte, []int) { - return fileDescriptor_relay_de3bbbc2d62c0c49, []int{4, 0} + return fileDescriptor_relay_aeddd7666fcf4cae, []int{4, 0} } func (m *GetUsersOnlineStatusResp_SuccessDetail) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetUsersOnlineStatusResp_SuccessDetail.Unmarshal(m, b) @@ -339,7 +339,7 @@ func (m *GetUsersOnlineStatusResp_FailedDetail) Reset() { *m = GetUsersO func (m *GetUsersOnlineStatusResp_FailedDetail) String() string { return proto.CompactTextString(m) } func (*GetUsersOnlineStatusResp_FailedDetail) ProtoMessage() {} func (*GetUsersOnlineStatusResp_FailedDetail) Descriptor() ([]byte, []int) { - return fileDescriptor_relay_de3bbbc2d62c0c49, []int{4, 1} + return fileDescriptor_relay_aeddd7666fcf4cae, []int{4, 1} } func (m *GetUsersOnlineStatusResp_FailedDetail) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetUsersOnlineStatusResp_FailedDetail.Unmarshal(m, b) @@ -395,7 +395,7 @@ func (m *GetUsersOnlineStatusResp_SuccessResult) Reset() { func (m *GetUsersOnlineStatusResp_SuccessResult) String() string { return proto.CompactTextString(m) } func (*GetUsersOnlineStatusResp_SuccessResult) ProtoMessage() {} func (*GetUsersOnlineStatusResp_SuccessResult) Descriptor() ([]byte, []int) { - return fileDescriptor_relay_de3bbbc2d62c0c49, []int{4, 2} + return fileDescriptor_relay_aeddd7666fcf4cae, []int{4, 2} } func (m *GetUsersOnlineStatusResp_SuccessResult) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetUsersOnlineStatusResp_SuccessResult.Unmarshal(m, b) @@ -552,42 +552,42 @@ var _OnlineMessageRelayService_serviceDesc = grpc.ServiceDesc{ Metadata: "relay/relay.proto", } -func init() { proto.RegisterFile("relay/relay.proto", fileDescriptor_relay_de3bbbc2d62c0c49) } - -var fileDescriptor_relay_de3bbbc2d62c0c49 = []byte{ - // 539 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x94, 0x54, 0x5f, 0x8f, 0xd2, 0x40, - 0x10, 0x4f, 0xe5, 0xfe, 0xc8, 0x70, 0x78, 0xb2, 0x21, 0x77, 0xb5, 0x0f, 0x88, 0x3c, 0x18, 0x62, - 0xb4, 0x24, 0xf8, 0xe8, 0x83, 0xc9, 0x5d, 0x73, 0x86, 0xc4, 0x06, 0xb2, 0x78, 0xd1, 0xf8, 0x42, - 0x7a, 0x74, 0xae, 0x36, 0x14, 0xba, 0xec, 0x6c, 0x8f, 0xf8, 0x75, 0xfc, 0x12, 0xfa, 0xf1, 0x4c, - 0x77, 0x0b, 0x16, 0xc2, 0x79, 0xb9, 0x17, 0xc2, 0xcc, 0xec, 0xfc, 0xfe, 0xb5, 0x5d, 0x68, 0x48, - 0x4c, 0x82, 0x9f, 0x3d, 0xfd, 0xeb, 0x0a, 0x99, 0xaa, 0x94, 0x1d, 0xea, 0xc2, 0x79, 0x35, 0x14, - 0xb8, 0x98, 0x0c, 0xfc, 0x9e, 0x98, 0x45, 0x3d, 0x3d, 0xe9, 0x51, 0x38, 0x9b, 0xac, 0xa8, 0xb7, - 0x22, 0x73, 0xb2, 0x13, 0xc2, 0xf3, 0xe1, 0x22, 0x89, 0x17, 0x38, 0xca, 0xe8, 0x87, 0x4f, 0x11, - 0xc7, 0x25, 0x6b, 0x43, 0x6d, 0x28, 0x50, 0x06, 0x2a, 0x4e, 0x17, 0x03, 0xcf, 0xb6, 0xda, 0x56, - 0xb7, 0xca, 0xcb, 0x2d, 0xe6, 0xc2, 0xf1, 0x9c, 0x22, 0x2f, 0x50, 0x81, 0xfd, 0xa4, 0x6d, 0x75, - 0x6b, 0xfd, 0xa6, 0x9b, 0xe6, 0x54, 0xf1, 0x7c, 0x42, 0xe1, 0xcc, 0xf5, 0xcd, 0x8c, 0xaf, 0x0f, - 0x75, 0x3e, 0x42, 0x63, 0x87, 0x85, 0x04, 0x7b, 0x03, 0x07, 0x12, 0x49, 0xd8, 0x56, 0xbb, 0xd2, - 0xad, 0xf5, 0xcf, 0x5c, 0x63, 0x60, 0x1c, 0x2f, 0xa2, 0x04, 0x7d, 0x8a, 0xbe, 0xa4, 0xd7, 0x84, - 0x92, 0xeb, 0x33, 0x9d, 0x25, 0x9c, 0xee, 0x0c, 0x58, 0x0b, 0x80, 0x23, 0x65, 0x89, 0xba, 0x4c, - 0x43, 0xd4, 0x22, 0x2b, 0xbc, 0xd4, 0x61, 0x67, 0x70, 0xc4, 0x71, 0x7a, 0x37, 0xf0, 0xb4, 0xc4, - 0x2a, 0x2f, 0x2a, 0xf6, 0x1a, 0x9e, 0xe5, 0xff, 0x46, 0x49, 0xa0, 0xae, 0x52, 0x39, 0x1f, 0x78, - 0x76, 0xa5, 0x6d, 0x75, 0x0f, 0xf9, 0x4e, 0xb7, 0xb3, 0x82, 0xf3, 0x4f, 0xa8, 0x72, 0x2a, 0x32, - 0xda, 0xc7, 0x2a, 0x50, 0x19, 0xe5, 0x01, 0xb5, 0x00, 0x32, 0x42, 0x39, 0xf0, 0x3e, 0xc7, 0xa4, - 0xb4, 0xfe, 0x2a, 0x2f, 0x75, 0xf2, 0x00, 0xd3, 0x52, 0x80, 0x86, 0xbf, 0xdc, 0x62, 0x0e, 0x3c, - 0x4d, 0xc5, 0xb5, 0xde, 0xd0, 0xf4, 0x55, 0xbe, 0xa9, 0x3b, 0xbf, 0x0f, 0xc0, 0xde, 0xcf, 0x4c, - 0x82, 0xd9, 0x70, 0x8c, 0x52, 0x6e, 0x2c, 0x1f, 0xf2, 0x75, 0x99, 0xfb, 0x45, 0x29, 0x7d, 0x8a, - 0xd6, 0x7e, 0x4d, 0xc5, 0xc6, 0x50, 0xa7, 0x6c, 0x3a, 0x45, 0x22, 0x13, 0x8e, 0x5d, 0xd1, 0x79, - 0xbf, 0x2b, 0xf2, 0xbe, 0x8f, 0xc9, 0x1d, 0x97, 0x97, 0xf8, 0x36, 0x06, 0x1b, 0xc1, 0xc9, 0x6d, - 0x10, 0x27, 0x18, 0x16, 0x98, 0x07, 0x1a, 0xf3, 0xed, 0x43, 0x98, 0x57, 0x7a, 0xc7, 0x43, 0x15, - 0xc4, 0x09, 0xdf, 0x42, 0x70, 0x2e, 0xa1, 0x5e, 0x30, 0x9a, 0x71, 0x1e, 0x91, 0x48, 0x02, 0x75, - 0x9b, 0xca, 0x79, 0xf1, 0x0a, 0x6e, 0xea, 0xdc, 0x2b, 0x69, 0xd4, 0xb5, 0x57, 0x53, 0x39, 0xdf, - 0xe0, 0xa4, 0x4c, 0x91, 0x9f, 0xcb, 0xca, 0x21, 0x17, 0xd5, 0xe3, 0x53, 0x74, 0x7e, 0x59, 0x1b, - 0x7d, 0x45, 0x04, 0xff, 0xb0, 0xad, 0x2d, 0xec, 0x7b, 0xb4, 0xb1, 0x00, 0x9a, 0xa1, 0x56, 0x35, - 0x2a, 0x5c, 0x98, 0x5c, 0x1e, 0xf9, 0x38, 0x8a, 0xec, 0xf6, 0x42, 0xf5, 0xff, 0x58, 0xf0, 0xc2, - 0x2c, 0xfa, 0x48, 0x14, 0x44, 0xc8, 0x73, 0xcc, 0x31, 0xca, 0xbb, 0x78, 0x8a, 0xec, 0x02, 0xea, - 0x5b, 0x1f, 0x21, 0x3b, 0x2f, 0x38, 0x77, 0x2f, 0x00, 0xc7, 0xde, 0x3f, 0x20, 0xc1, 0xbe, 0x42, - 0x73, 0x9f, 0x42, 0xd6, 0xfa, 0xaf, 0xfc, 0xa5, 0xf3, 0xf2, 0x01, 0x7b, 0x17, 0x8d, 0xef, 0xa7, - 0xae, 0xb9, 0xc2, 0x3e, 0x88, 0x1b, 0x2d, 0xfb, 0xe6, 0x48, 0xdf, 0x50, 0xef, 0xff, 0x06, 0x00, - 0x00, 0xff, 0xff, 0x6d, 0x5a, 0x23, 0x8f, 0xe0, 0x04, 0x00, 0x00, +func init() { proto.RegisterFile("relay/relay.proto", fileDescriptor_relay_aeddd7666fcf4cae) } + +var fileDescriptor_relay_aeddd7666fcf4cae = []byte{ + // 544 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x94, 0x54, 0x5f, 0x6f, 0xd2, 0x50, + 0x14, 0x4f, 0x05, 0x36, 0x39, 0x0c, 0x27, 0x37, 0xcb, 0x56, 0xfb, 0x80, 0xc8, 0x83, 0x21, 0x46, + 0x4b, 0x82, 0xbe, 0xf9, 0x60, 0xb2, 0x35, 0x33, 0x24, 0x36, 0x90, 0x8b, 0x8b, 0xc6, 0x17, 0x72, + 0x07, 0x67, 0xb5, 0xae, 0xd0, 0xcb, 0x3d, 0x2d, 0xc4, 0xaf, 0xe3, 0x97, 0xd0, 0x8f, 0x67, 0x7a, + 0x6f, 0xc1, 0x42, 0x98, 0xcb, 0x5e, 0x08, 0xe7, 0xdc, 0x73, 0x7e, 0xff, 0xda, 0x5e, 0x68, 0x28, + 0x8c, 0xc4, 0xcf, 0xae, 0xfe, 0x75, 0xa5, 0x8a, 0x93, 0x98, 0x55, 0x74, 0xe1, 0xbc, 0x18, 0x48, + 0x9c, 0x8f, 0xfb, 0x7e, 0x57, 0xde, 0x06, 0x5d, 0x7d, 0xd2, 0xa5, 0xe9, 0xed, 0x78, 0x45, 0xdd, + 0x15, 0x99, 0xc9, 0xf6, 0x0f, 0x78, 0x3a, 0x98, 0x47, 0xe1, 0x1c, 0x87, 0x29, 0x7d, 0xf7, 0x29, + 0xe0, 0xb8, 0x60, 0x2d, 0xa8, 0x0d, 0x24, 0x2a, 0x91, 0x84, 0xf1, 0xbc, 0xef, 0xd9, 0x56, 0xcb, + 0xea, 0x54, 0x79, 0xb1, 0xc5, 0xde, 0xc1, 0xe1, 0x8c, 0x02, 0x4f, 0x24, 0xc2, 0x7e, 0xd4, 0xb2, + 0x3a, 0xb5, 0x9e, 0xe3, 0x12, 0xaa, 0x25, 0xaa, 0xb1, 0x90, 0xe1, 0x58, 0x0a, 0x25, 0x66, 0xe4, + 0xfa, 0x66, 0x82, 0xaf, 0x47, 0xdb, 0x1f, 0xa0, 0xb1, 0xc3, 0x45, 0x92, 0xbd, 0x82, 0xb2, 0x42, + 0x92, 0xb6, 0xd5, 0x2a, 0x75, 0x6a, 0xbd, 0x53, 0xd7, 0xd8, 0x18, 0x85, 0xf3, 0x20, 0x42, 0x9f, + 0x82, 0xcf, 0xf1, 0x15, 0xa1, 0xe2, 0x7a, 0xa6, 0xbd, 0x80, 0xe3, 0x9d, 0x03, 0xd6, 0x04, 0xe0, + 0x48, 0x69, 0x94, 0x5c, 0xc4, 0x53, 0xd4, 0x52, 0x4b, 0xbc, 0xd0, 0x61, 0xa7, 0x70, 0xc0, 0x71, + 0xb2, 0xec, 0x7b, 0x5a, 0x68, 0x95, 0xe7, 0x15, 0x7b, 0x09, 0x4f, 0xb2, 0x7f, 0xc3, 0x48, 0x24, + 0x97, 0xb1, 0x9a, 0xf5, 0x3d, 0xbb, 0xd4, 0xb2, 0x3a, 0x15, 0xbe, 0xd3, 0x6d, 0xaf, 0xe0, 0xec, + 0x23, 0x26, 0x19, 0x15, 0x19, 0xed, 0xa3, 0x44, 0x24, 0x29, 0x65, 0x31, 0x35, 0x01, 0x52, 0x42, + 0xd5, 0xf7, 0x3e, 0x85, 0x94, 0x68, 0xfd, 0x55, 0x5e, 0xe8, 0x64, 0x31, 0xc6, 0x85, 0x18, 0x0d, + 0x7f, 0xb1, 0xc5, 0x1c, 0x78, 0x1c, 0xcb, 0x2b, 0xbd, 0xa1, 0xe9, 0xab, 0x7c, 0x53, 0xb7, 0x7f, + 0x97, 0xc1, 0xde, 0xcf, 0x4c, 0x92, 0xd9, 0x70, 0x88, 0x4a, 0x6d, 0x2c, 0x57, 0xf8, 0xba, 0xcc, + 0xfc, 0xa2, 0x52, 0x3e, 0x05, 0x6b, 0xbf, 0xa6, 0x62, 0x23, 0xa8, 0x53, 0x3a, 0x99, 0x20, 0x91, + 0x09, 0xc7, 0x2e, 0xe9, 0xbc, 0xdf, 0xe4, 0x79, 0xdf, 0xc5, 0xe4, 0x8e, 0x8a, 0x4b, 0x7c, 0x1b, + 0x83, 0x0d, 0xe1, 0xe8, 0x46, 0x84, 0x11, 0x4e, 0x73, 0xcc, 0xb2, 0xc6, 0x7c, 0x7d, 0x1f, 0xe6, + 0xa5, 0xde, 0xf1, 0x30, 0x11, 0x61, 0xc4, 0xb7, 0x10, 0x9c, 0x0b, 0xa8, 0xe7, 0x8c, 0xe6, 0x38, + 0x8b, 0x48, 0x46, 0x22, 0xb9, 0x89, 0xd5, 0x2c, 0x7f, 0x11, 0x37, 0x75, 0xe6, 0x95, 0x34, 0xea, + 0xda, 0xab, 0xa9, 0x9c, 0xaf, 0x70, 0x54, 0xa4, 0xc8, 0xe6, 0xd2, 0x62, 0xc8, 0x79, 0xf5, 0xf0, + 0x14, 0x9d, 0x5f, 0xd6, 0x46, 0x5f, 0x1e, 0xc1, 0x3f, 0x6c, 0x6b, 0x0b, 0xfb, 0x0e, 0x6d, 0x4c, + 0xc0, 0xc9, 0x54, 0xab, 0x1a, 0xe6, 0x2e, 0x4c, 0x2e, 0x0f, 0x7c, 0x1c, 0x79, 0x76, 0x7b, 0xa1, + 0x7a, 0x7f, 0x2c, 0x78, 0x66, 0x16, 0x7d, 0x24, 0x12, 0x01, 0xf2, 0x0c, 0x73, 0x84, 0x6a, 0x19, + 0x4e, 0x90, 0x9d, 0x43, 0x7d, 0xeb, 0x23, 0x64, 0x67, 0x39, 0xe7, 0xee, 0x35, 0xe0, 0xd8, 0xfb, + 0x0f, 0x48, 0xb2, 0x2f, 0x70, 0xb2, 0x4f, 0x21, 0x6b, 0xfe, 0x57, 0xfe, 0xc2, 0x79, 0x7e, 0x8f, + 0xbd, 0xf3, 0xc6, 0xb7, 0x63, 0xd7, 0x5c, 0x64, 0xef, 0xe5, 0xb5, 0x96, 0x7d, 0x7d, 0xa0, 0xef, + 0xa9, 0xb7, 0x7f, 0x03, 0x00, 0x00, 0xff, 0xff, 0x60, 0xd7, 0x1d, 0xf3, 0xe6, 0x04, 0x00, 0x00, } diff --git a/pkg/proto/user/user.pb.go b/pkg/proto/user/user.pb.go index 22a698a44..c9f85d568 100644 --- a/pkg/proto/user/user.pb.go +++ b/pkg/proto/user/user.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_user_9cc4371b0c883611, []int{0} + return fileDescriptor_user_9cd4aaf870b6d3b5, []int{0} } func (m *CommonResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_CommonResp.Unmarshal(m, b) @@ -83,7 +83,7 @@ func (m *DeleteUsersReq) Reset() { *m = DeleteUsersReq{} } func (m *DeleteUsersReq) String() string { return proto.CompactTextString(m) } func (*DeleteUsersReq) ProtoMessage() {} func (*DeleteUsersReq) Descriptor() ([]byte, []int) { - return fileDescriptor_user_9cc4371b0c883611, []int{1} + return fileDescriptor_user_9cd4aaf870b6d3b5, []int{1} } func (m *DeleteUsersReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_DeleteUsersReq.Unmarshal(m, b) @@ -136,7 +136,7 @@ func (m *DeleteUsersResp) Reset() { *m = DeleteUsersResp{} } func (m *DeleteUsersResp) String() string { return proto.CompactTextString(m) } func (*DeleteUsersResp) ProtoMessage() {} func (*DeleteUsersResp) Descriptor() ([]byte, []int) { - return fileDescriptor_user_9cc4371b0c883611, []int{2} + return fileDescriptor_user_9cd4aaf870b6d3b5, []int{2} } func (m *DeleteUsersResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_DeleteUsersResp.Unmarshal(m, b) @@ -182,7 +182,7 @@ func (m *GetAllUserIDReq) Reset() { *m = GetAllUserIDReq{} } func (m *GetAllUserIDReq) String() string { return proto.CompactTextString(m) } func (*GetAllUserIDReq) ProtoMessage() {} func (*GetAllUserIDReq) Descriptor() ([]byte, []int) { - return fileDescriptor_user_9cc4371b0c883611, []int{3} + return fileDescriptor_user_9cd4aaf870b6d3b5, []int{3} } func (m *GetAllUserIDReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetAllUserIDReq.Unmarshal(m, b) @@ -228,7 +228,7 @@ func (m *GetAllUserIDResp) Reset() { *m = GetAllUserIDResp{} } func (m *GetAllUserIDResp) String() string { return proto.CompactTextString(m) } func (*GetAllUserIDResp) ProtoMessage() {} func (*GetAllUserIDResp) Descriptor() ([]byte, []int) { - return fileDescriptor_user_9cc4371b0c883611, []int{4} + return fileDescriptor_user_9cd4aaf870b6d3b5, []int{4} } func (m *GetAllUserIDResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetAllUserIDResp.Unmarshal(m, b) @@ -275,7 +275,7 @@ func (m *AccountCheckReq) Reset() { *m = AccountCheckReq{} } func (m *AccountCheckReq) String() string { return proto.CompactTextString(m) } func (*AccountCheckReq) ProtoMessage() {} func (*AccountCheckReq) Descriptor() ([]byte, []int) { - return fileDescriptor_user_9cc4371b0c883611, []int{5} + return fileDescriptor_user_9cd4aaf870b6d3b5, []int{5} } func (m *AccountCheckReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_AccountCheckReq.Unmarshal(m, b) @@ -328,7 +328,7 @@ func (m *AccountCheckResp) Reset() { *m = AccountCheckResp{} } func (m *AccountCheckResp) String() string { return proto.CompactTextString(m) } func (*AccountCheckResp) ProtoMessage() {} func (*AccountCheckResp) Descriptor() ([]byte, []int) { - return fileDescriptor_user_9cc4371b0c883611, []int{6} + return fileDescriptor_user_9cd4aaf870b6d3b5, []int{6} } func (m *AccountCheckResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_AccountCheckResp.Unmarshal(m, b) @@ -374,7 +374,7 @@ func (m *AccountCheckResp_SingleUserStatus) Reset() { *m = AccountCheckR func (m *AccountCheckResp_SingleUserStatus) String() string { return proto.CompactTextString(m) } func (*AccountCheckResp_SingleUserStatus) ProtoMessage() {} func (*AccountCheckResp_SingleUserStatus) Descriptor() ([]byte, []int) { - return fileDescriptor_user_9cc4371b0c883611, []int{6, 0} + return fileDescriptor_user_9cd4aaf870b6d3b5, []int{6, 0} } func (m *AccountCheckResp_SingleUserStatus) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_AccountCheckResp_SingleUserStatus.Unmarshal(m, b) @@ -421,7 +421,7 @@ 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_user_9cc4371b0c883611, []int{7} + return fileDescriptor_user_9cd4aaf870b6d3b5, []int{7} } func (m *GetUserInfoReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetUserInfoReq.Unmarshal(m, b) @@ -474,7 +474,7 @@ 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_user_9cc4371b0c883611, []int{8} + return fileDescriptor_user_9cd4aaf870b6d3b5, []int{8} } func (m *GetUserInfoResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetUserInfoResp.Unmarshal(m, b) @@ -521,7 +521,7 @@ 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_user_9cc4371b0c883611, []int{9} + return fileDescriptor_user_9cd4aaf870b6d3b5, []int{9} } func (m *UpdateUserInfoReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_UpdateUserInfoReq.Unmarshal(m, b) @@ -573,7 +573,7 @@ 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_user_9cc4371b0c883611, []int{10} + return fileDescriptor_user_9cd4aaf870b6d3b5, []int{10} } func (m *UpdateUserInfoResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_UpdateUserInfoResp.Unmarshal(m, b) @@ -615,7 +615,7 @@ func (m *SetReceiveMessageOptReq) Reset() { *m = SetReceiveMessageOptReq func (m *SetReceiveMessageOptReq) String() string { return proto.CompactTextString(m) } func (*SetReceiveMessageOptReq) ProtoMessage() {} func (*SetReceiveMessageOptReq) Descriptor() ([]byte, []int) { - return fileDescriptor_user_9cc4371b0c883611, []int{11} + return fileDescriptor_user_9cd4aaf870b6d3b5, []int{11} } func (m *SetReceiveMessageOptReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SetReceiveMessageOptReq.Unmarshal(m, b) @@ -682,7 +682,7 @@ func (m *OptResult) Reset() { *m = OptResult{} } func (m *OptResult) String() string { return proto.CompactTextString(m) } func (*OptResult) ProtoMessage() {} func (*OptResult) Descriptor() ([]byte, []int) { - return fileDescriptor_user_9cc4371b0c883611, []int{12} + return fileDescriptor_user_9cd4aaf870b6d3b5, []int{12} } func (m *OptResult) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_OptResult.Unmarshal(m, b) @@ -728,7 +728,7 @@ func (m *SetReceiveMessageOptResp) Reset() { *m = SetReceiveMessageOptRe func (m *SetReceiveMessageOptResp) String() string { return proto.CompactTextString(m) } func (*SetReceiveMessageOptResp) ProtoMessage() {} func (*SetReceiveMessageOptResp) Descriptor() ([]byte, []int) { - return fileDescriptor_user_9cc4371b0c883611, []int{13} + return fileDescriptor_user_9cd4aaf870b6d3b5, []int{13} } func (m *SetReceiveMessageOptResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SetReceiveMessageOptResp.Unmarshal(m, b) @@ -776,7 +776,7 @@ func (m *GetReceiveMessageOptReq) Reset() { *m = GetReceiveMessageOptReq func (m *GetReceiveMessageOptReq) String() string { return proto.CompactTextString(m) } func (*GetReceiveMessageOptReq) ProtoMessage() {} func (*GetReceiveMessageOptReq) Descriptor() ([]byte, []int) { - return fileDescriptor_user_9cc4371b0c883611, []int{14} + return fileDescriptor_user_9cd4aaf870b6d3b5, []int{14} } func (m *GetReceiveMessageOptReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetReceiveMessageOptReq.Unmarshal(m, b) @@ -836,7 +836,7 @@ func (m *GetReceiveMessageOptResp) Reset() { *m = GetReceiveMessageOptRe func (m *GetReceiveMessageOptResp) String() string { return proto.CompactTextString(m) } func (*GetReceiveMessageOptResp) ProtoMessage() {} func (*GetReceiveMessageOptResp) Descriptor() ([]byte, []int) { - return fileDescriptor_user_9cc4371b0c883611, []int{15} + return fileDescriptor_user_9cd4aaf870b6d3b5, []int{15} } func (m *GetReceiveMessageOptResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetReceiveMessageOptResp.Unmarshal(m, b) @@ -883,7 +883,7 @@ func (m *GetAllConversationMsgOptReq) Reset() { *m = GetAllConversationM func (m *GetAllConversationMsgOptReq) String() string { return proto.CompactTextString(m) } func (*GetAllConversationMsgOptReq) ProtoMessage() {} func (*GetAllConversationMsgOptReq) Descriptor() ([]byte, []int) { - return fileDescriptor_user_9cc4371b0c883611, []int{16} + return fileDescriptor_user_9cd4aaf870b6d3b5, []int{16} } func (m *GetAllConversationMsgOptReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetAllConversationMsgOptReq.Unmarshal(m, b) @@ -936,7 +936,7 @@ func (m *GetAllConversationMsgOptResp) Reset() { *m = GetAllConversation func (m *GetAllConversationMsgOptResp) String() string { return proto.CompactTextString(m) } func (*GetAllConversationMsgOptResp) ProtoMessage() {} func (*GetAllConversationMsgOptResp) Descriptor() ([]byte, []int) { - return fileDescriptor_user_9cc4371b0c883611, []int{17} + return fileDescriptor_user_9cd4aaf870b6d3b5, []int{17} } func (m *GetAllConversationMsgOptResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetAllConversationMsgOptResp.Unmarshal(m, b) @@ -1295,59 +1295,60 @@ var _User_serviceDesc = grpc.ServiceDesc{ Metadata: "user/user.proto", } -func init() { proto.RegisterFile("user/user.proto", fileDescriptor_user_9cc4371b0c883611) } - -var fileDescriptor_user_9cc4371b0c883611 = []byte{ - // 812 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x56, 0xcd, 0x6e, 0xd3, 0x4a, - 0x14, 0x96, 0xe3, 0xb4, 0xb7, 0x39, 0x69, 0x13, 0xdf, 0x51, 0x7f, 0x7c, 0x7d, 0xa1, 0x4a, 0x47, - 0x08, 0xa2, 0x2e, 0x1c, 0x28, 0x2b, 0x40, 0x20, 0x95, 0x54, 0xb5, 0x2a, 0x88, 0x82, 0x5c, 0x75, - 0xc3, 0xa6, 0x32, 0xc9, 0x10, 0xa2, 0x24, 0x1e, 0xe3, 0x71, 0x5a, 0x01, 0x12, 0x2b, 0xde, 0x82, - 0x05, 0x4b, 0x9e, 0x81, 0xd7, 0xe0, 0x05, 0x78, 0x15, 0xe4, 0x19, 0xdb, 0x19, 0xff, 0x24, 0x2d, - 0x41, 0x42, 0x6c, 0x2c, 0xcf, 0x99, 0x33, 0x67, 0xbe, 0xef, 0x3b, 0x67, 0x66, 0x0e, 0xd4, 0xa7, - 0x8c, 0xf8, 0xad, 0xf0, 0x63, 0x7a, 0x3e, 0x0d, 0x28, 0x2a, 0x87, 0xff, 0xc6, 0x5e, 0xd7, 0x23, - 0xee, 0xf9, 0x49, 0xa7, 0xe5, 0x8d, 0x06, 0x2d, 0x3e, 0xd1, 0x62, 0xfd, 0xd1, 0xf9, 0x25, 0x6b, - 0x5d, 0x32, 0xe1, 0x88, 0x9f, 0x00, 0xb4, 0xe9, 0x64, 0x42, 0x5d, 0x9b, 0x30, 0x0f, 0xe9, 0xf0, - 0x0f, 0xf1, 0xfd, 0x36, 0xed, 0x13, 0x5d, 0x69, 0x28, 0xcd, 0x15, 0x3b, 0x1e, 0xa2, 0x6d, 0x58, - 0x25, 0xbe, 0xdf, 0x61, 0x03, 0xbd, 0xd4, 0x50, 0x9a, 0x15, 0x3b, 0x1a, 0xe1, 0xf7, 0x50, 0x3b, - 0x22, 0x63, 0x12, 0x90, 0x33, 0x46, 0x7c, 0x66, 0x93, 0xb7, 0x68, 0x1f, 0xb4, 0x99, 0xe5, 0xe4, - 0xe8, 0xf9, 0x90, 0x05, 0x7a, 0xa9, 0xa1, 0x36, 0x2b, 0x76, 0xce, 0x8e, 0x0c, 0x58, 0xeb, 0x7a, - 0x62, 0xac, 0xab, 0x3c, 0x6e, 0x32, 0x46, 0x0d, 0xa8, 0x76, 0x3d, 0xe2, 0x3b, 0xc1, 0x90, 0xba, - 0x27, 0x47, 0x7a, 0x99, 0x4f, 0xcb, 0x26, 0x4c, 0xa1, 0x9e, 0xda, 0x9b, 0x79, 0xe8, 0xae, 0x4c, - 0x87, 0x73, 0xa8, 0x1e, 0x68, 0x26, 0x17, 0x66, 0x66, 0xb7, 0x65, 0xca, 0xfb, 0xa0, 0x1d, 0x3b, - 0xc3, 0x31, 0xe9, 0xe7, 0xe1, 0x66, 0xed, 0xb8, 0x0b, 0x75, 0x8b, 0x04, 0x87, 0xe3, 0xb1, 0xb0, - 0x85, 0x6c, 0x0d, 0x58, 0xa3, 0x31, 0x03, 0x45, 0x30, 0xa0, 0x12, 0x03, 0x2a, 0x31, 0x10, 0xc2, - 0xc9, 0x26, 0xdc, 0x07, 0x2d, 0x1d, 0x70, 0x29, 0x0a, 0xbb, 0x00, 0x39, 0xf0, 0x92, 0x05, 0xbf, - 0x83, 0xfa, 0x61, 0xaf, 0x47, 0xa7, 0x6e, 0xd0, 0x7e, 0x43, 0x7a, 0xa3, 0x10, 0x76, 0x13, 0xea, - 0xfc, 0x5f, 0x5a, 0xa7, 0xf0, 0x75, 0x59, 0x73, 0x2a, 0x45, 0xa5, 0xc5, 0x29, 0x52, 0xf3, 0x29, - 0xfa, 0xa1, 0x80, 0x96, 0xde, 0x5b, 0x30, 0xec, 0x5d, 0x83, 0xe1, 0xcc, 0x07, 0x59, 0x00, 0x36, - 0x61, 0xd3, 0x71, 0x90, 0x30, 0xac, 0x1e, 0xdc, 0x11, 0x2b, 0xb2, 0xd1, 0xcd, 0xd3, 0xa1, 0x3b, - 0x18, 0xf3, 0x92, 0x38, 0x0d, 0x9c, 0x60, 0xca, 0x6c, 0x69, 0xa9, 0xf1, 0x02, 0xb4, 0xec, 0x7c, - 0x58, 0xda, 0x53, 0x39, 0x81, 0xd1, 0x08, 0xdd, 0x82, 0x0d, 0x47, 0x04, 0x17, 0x8e, 0x11, 0xfd, - 0xb4, 0x11, 0xbb, 0x50, 0xb3, 0x48, 0xc0, 0x05, 0x71, 0x5f, 0xd3, 0x50, 0xdb, 0x5d, 0x80, 0x69, - 0x56, 0x56, 0xc9, 0xf2, 0x9b, 0x8a, 0x7e, 0xe4, 0x35, 0x38, 0xdb, 0x6f, 0x29, 0x3d, 0x1f, 0xc0, - 0x7a, 0x1c, 0x81, 0x83, 0x54, 0xb9, 0xa2, 0x5b, 0x26, 0x0d, 0xef, 0x8b, 0xe1, 0xe4, 0x9c, 0xf5, - 0x47, 0x66, 0xb2, 0x45, 0xca, 0x15, 0x7f, 0x52, 0xe0, 0xdf, 0x33, 0xaf, 0xef, 0x44, 0xe7, 0x38, - 0xe2, 0x7c, 0x0f, 0xd6, 0xe2, 0x61, 0x04, 0x60, 0x4e, 0xb0, 0xc4, 0xed, 0x2a, 0x19, 0x68, 0x5e, - 0x06, 0xf9, 0xe4, 0x1c, 0x03, 0xca, 0xa2, 0x58, 0x46, 0x09, 0xfc, 0x4d, 0x81, 0x9d, 0x53, 0x12, - 0xd8, 0xa4, 0x47, 0x86, 0x17, 0xa4, 0x43, 0x18, 0x73, 0x06, 0xa4, 0xeb, 0x05, 0x51, 0x22, 0x8f, - 0x7d, 0x3a, 0x49, 0x9d, 0x6e, 0xc9, 0x82, 0x34, 0x50, 0xa9, 0x17, 0x70, 0xf0, 0x2b, 0x76, 0xf8, - 0x8b, 0x4c, 0x40, 0x3d, 0xea, 0x5e, 0x10, 0x9f, 0x45, 0x38, 0x13, 0x75, 0x2b, 0x76, 0xc1, 0x4c, - 0x96, 0x67, 0x39, 0xc7, 0x33, 0xa5, 0xd2, 0x4a, 0x5a, 0x25, 0xfc, 0x0c, 0x2a, 0x1c, 0x69, 0x58, - 0xdd, 0xe8, 0x36, 0xd4, 0xd2, 0x1b, 0x44, 0x80, 0x33, 0xd6, 0xb0, 0xda, 0x7d, 0xbe, 0x22, 0xc2, - 0x1d, 0x8d, 0xf0, 0x67, 0x05, 0xf4, 0x62, 0x21, 0x96, 0xaa, 0xb0, 0x0e, 0xfc, 0x27, 0x6f, 0x9c, - 0xe0, 0x94, 0x0e, 0x70, 0x5d, 0x04, 0x48, 0xa6, 0xec, 0xf9, 0x2b, 0xf0, 0x57, 0x05, 0x76, 0xac, - 0x25, 0xd3, 0x54, 0x9c, 0x94, 0xd2, 0x75, 0x93, 0xa2, 0x2e, 0x4e, 0x4a, 0x39, 0x93, 0x94, 0x50, - 0x47, 0xeb, 0x0f, 0xe9, 0xa8, 0xfe, 0xb2, 0x8e, 0x1f, 0xe0, 0x7f, 0xf1, 0xe0, 0xb4, 0x25, 0x97, - 0x0e, 0x1b, 0x5c, 0x53, 0xca, 0x2b, 0x5f, 0xb4, 0x45, 0x2f, 0x3a, 0xfe, 0xa2, 0xc0, 0x8d, 0xf9, - 0xbb, 0xff, 0x05, 0xf2, 0x1c, 0x7c, 0x2f, 0x03, 0xef, 0x9c, 0xd0, 0x43, 0xa8, 0x4a, 0xb7, 0x2c, - 0xda, 0x14, 0x31, 0xd2, 0x17, 0xbd, 0xb1, 0x55, 0x60, 0x65, 0x1e, 0x6a, 0x43, 0x2d, 0x7d, 0x35, - 0xa1, 0x1d, 0xe1, 0x98, 0xbb, 0x36, 0x0d, 0xbd, 0x78, 0x82, 0x79, 0x21, 0x00, 0xa9, 0xb7, 0x89, - 0x01, 0xa4, 0x5b, 0xad, 0x18, 0x40, 0xb6, 0x09, 0x7a, 0x0c, 0xeb, 0x72, 0x57, 0x81, 0x66, 0x38, - 0xe5, 0xd6, 0xc5, 0xd8, 0x2e, 0x32, 0x33, 0x0f, 0x9d, 0xc1, 0x66, 0xd1, 0x45, 0x80, 0x6e, 0x0a, - 0xff, 0x39, 0xb7, 0xa5, 0xb1, 0xbb, 0x68, 0x5a, 0x84, 0xb5, 0x16, 0x84, 0xb5, 0x16, 0x87, 0x9d, - 0x7b, 0xa4, 0x1c, 0x7e, 0xdc, 0x0a, 0x6b, 0x0a, 0xed, 0xc9, 0x0c, 0x0b, 0x2b, 0xde, 0xc0, 0x57, - 0xb9, 0x08, 0x3d, 0xe5, 0x2e, 0x23, 0xd6, 0x33, 0xd3, 0x53, 0xc5, 0x7a, 0x66, 0x1b, 0x92, 0xa7, - 0x1b, 0x2f, 0xab, 0x26, 0xef, 0xcd, 0x1f, 0x85, 0x9f, 0x57, 0xab, 0xbc, 0xf1, 0xbe, 0xff, 0x33, - 0x00, 0x00, 0xff, 0xff, 0xaa, 0x27, 0xa9, 0x62, 0xb4, 0x0b, 0x00, 0x00, +func init() { proto.RegisterFile("user/user.proto", fileDescriptor_user_9cd4aaf870b6d3b5) } + +var fileDescriptor_user_9cd4aaf870b6d3b5 = []byte{ + // 819 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x56, 0xcd, 0x6e, 0x13, 0x3b, + 0x14, 0xd6, 0x24, 0x69, 0x6f, 0x73, 0xd2, 0x26, 0xb9, 0x56, 0x6f, 0x3b, 0x77, 0x0a, 0x55, 0x6a, + 0x21, 0x88, 0xba, 0x48, 0x50, 0x59, 0x20, 0x81, 0x00, 0x95, 0x54, 0x8d, 0x2a, 0x88, 0x82, 0xa6, + 0xea, 0x86, 0x4d, 0x34, 0x24, 0x26, 0x44, 0x4d, 0xc6, 0xc6, 0x9e, 0xb4, 0x02, 0xb6, 0xac, 0x78, + 0x05, 0x16, 0x2c, 0x79, 0x06, 0x5e, 0x83, 0x17, 0xe0, 0x55, 0xd0, 0xd8, 0x33, 0x89, 0xe7, 0x27, + 0xd3, 0x12, 0x24, 0xc4, 0x66, 0x34, 0x3e, 0x3e, 0x3e, 0xfe, 0xbe, 0xef, 0x1c, 0xdb, 0x07, 0x2a, + 0x53, 0x41, 0x78, 0xd3, 0xff, 0x34, 0x18, 0xa7, 0x1e, 0x45, 0x05, 0xff, 0xdf, 0xda, 0xeb, 0x32, + 0xe2, 0xf6, 0x4e, 0x3a, 0x4d, 0x76, 0x3e, 0x6c, 0xca, 0x89, 0xa6, 0x18, 0x9c, 0xf7, 0x2e, 0x45, + 0xf3, 0x52, 0x28, 0x47, 0xfc, 0x18, 0xa0, 0x45, 0x27, 0x13, 0xea, 0xda, 0x44, 0x30, 0x64, 0xc2, + 0x3f, 0x84, 0xf3, 0x16, 0x1d, 0x10, 0xd3, 0xa8, 0x19, 0xf5, 0x15, 0x3b, 0x1c, 0xa2, 0x2d, 0x58, + 0x25, 0x9c, 0x77, 0xc4, 0xd0, 0xcc, 0xd5, 0x8c, 0x7a, 0xd1, 0x0e, 0x46, 0xf8, 0x3d, 0x94, 0x8f, + 0xc8, 0x98, 0x78, 0xe4, 0x4c, 0x10, 0x2e, 0x6c, 0xf2, 0x16, 0xed, 0x43, 0x75, 0x6e, 0x39, 0x39, + 0x7a, 0x3e, 0x12, 0x9e, 0x99, 0xab, 0xe5, 0xeb, 0x45, 0x3b, 0x61, 0x47, 0x16, 0xac, 0x75, 0x99, + 0x1a, 0x9b, 0x79, 0x19, 0x77, 0x36, 0x46, 0x35, 0x28, 0x75, 0x19, 0xe1, 0x8e, 0x37, 0xa2, 0xee, + 0xc9, 0x91, 0x59, 0x90, 0xd3, 0xba, 0x09, 0x53, 0xa8, 0x44, 0xf6, 0x16, 0x0c, 0xdd, 0xd5, 0xe9, + 0x48, 0x0e, 0xa5, 0x83, 0x6a, 0x43, 0x0a, 0x33, 0xb7, 0xdb, 0x3a, 0xe5, 0x7d, 0xa8, 0x1e, 0x3b, + 0xa3, 0x31, 0x19, 0x24, 0xe1, 0xc6, 0xed, 0xb8, 0x0b, 0x95, 0x36, 0xf1, 0x0e, 0xc7, 0x63, 0x65, + 0xf3, 0xd9, 0x5a, 0xb0, 0x46, 0x43, 0x06, 0x86, 0x62, 0x40, 0x35, 0x06, 0x54, 0x63, 0xa0, 0x84, + 0xd3, 0x4d, 0x78, 0x00, 0xd5, 0x68, 0xc0, 0xa5, 0x28, 0xec, 0x02, 0x24, 0xc0, 0x6b, 0x16, 0xfc, + 0x0e, 0x2a, 0x87, 0xfd, 0x3e, 0x9d, 0xba, 0x5e, 0xeb, 0x0d, 0xe9, 0x9f, 0xfb, 0xb0, 0xeb, 0x50, + 0x91, 0xff, 0xda, 0x3a, 0x43, 0xae, 0x8b, 0x9b, 0x23, 0x29, 0xca, 0x65, 0xa7, 0x28, 0x9f, 0x4c, + 0xd1, 0x0f, 0x03, 0xaa, 0xd1, 0xbd, 0x15, 0xc3, 0xfe, 0x35, 0x18, 0xce, 0x7d, 0x50, 0x1b, 0xc0, + 0x26, 0x62, 0x3a, 0xf6, 0x66, 0x0c, 0x4b, 0x07, 0x77, 0xd4, 0x8a, 0x78, 0xf4, 0xc6, 0xe9, 0xc8, + 0x1d, 0x8e, 0x65, 0x49, 0x9c, 0x7a, 0x8e, 0x37, 0x15, 0xb6, 0xb6, 0xd4, 0x7a, 0x01, 0xd5, 0xf8, + 0xbc, 0x5f, 0xda, 0x53, 0x3d, 0x81, 0xc1, 0x08, 0xdd, 0x82, 0x0d, 0x47, 0x05, 0x57, 0x8e, 0x01, + 0xfd, 0xa8, 0x11, 0xbb, 0x50, 0x6e, 0x13, 0x4f, 0x0a, 0xe2, 0xbe, 0xa6, 0xbe, 0xb6, 0xbb, 0x00, + 0xd3, 0xb8, 0xac, 0x9a, 0xe5, 0x37, 0x15, 0xfd, 0x68, 0xc8, 0x22, 0x9c, 0x6f, 0xb8, 0x94, 0xa0, + 0x4f, 0x60, 0x3d, 0x8c, 0x20, 0x51, 0xe6, 0xa5, 0xa4, 0x3b, 0x0d, 0x41, 0xf8, 0x05, 0xe1, 0x3d, + 0x87, 0x8d, 0x7a, 0xcc, 0xe1, 0xce, 0x44, 0x34, 0x66, 0x1b, 0x45, 0x16, 0xe0, 0x4f, 0x06, 0xfc, + 0x7b, 0xc6, 0x06, 0x4e, 0x70, 0x9c, 0x03, 0xea, 0xf7, 0x61, 0x2d, 0x1c, 0x06, 0x30, 0x32, 0x43, + 0xce, 0x9c, 0xaf, 0xd2, 0x84, 0x26, 0x35, 0xd1, 0x8f, 0xd1, 0x31, 0xa0, 0x38, 0x96, 0x65, 0x54, + 0xc1, 0xdf, 0x0c, 0xd8, 0x3e, 0x25, 0x9e, 0x4d, 0xfa, 0x64, 0x74, 0x41, 0x3a, 0x44, 0x08, 0x67, + 0x48, 0xba, 0xcc, 0x0b, 0xb2, 0x7a, 0xcc, 0xe9, 0x24, 0x72, 0xd4, 0x35, 0x0b, 0xaa, 0x42, 0x9e, + 0x32, 0x4f, 0x82, 0x5f, 0xb1, 0xfd, 0x5f, 0xd4, 0x00, 0xd4, 0xa7, 0xee, 0x05, 0xe1, 0x22, 0xc0, + 0x39, 0x53, 0xba, 0x68, 0xa7, 0xcc, 0xc4, 0x79, 0x16, 0x12, 0x3c, 0x23, 0x2a, 0xad, 0x44, 0x55, + 0xc2, 0xcf, 0xa0, 0x28, 0x91, 0xfa, 0xa5, 0x8e, 0x6e, 0x43, 0x39, 0xba, 0x41, 0x00, 0x38, 0x66, + 0xf5, 0x4b, 0x9f, 0xcb, 0x15, 0x01, 0xee, 0x60, 0x84, 0x3f, 0x1b, 0x60, 0xa6, 0x0b, 0xb1, 0x54, + 0xb5, 0x75, 0xe0, 0x7f, 0x7d, 0xe3, 0x19, 0x4e, 0xed, 0x34, 0x57, 0x54, 0x80, 0xd9, 0x94, 0xbd, + 0x78, 0x05, 0xfe, 0x6a, 0xc0, 0x76, 0x7b, 0xc9, 0x34, 0xa5, 0x27, 0x25, 0x77, 0xdd, 0xa4, 0xe4, + 0xb3, 0x93, 0x52, 0x88, 0x25, 0xc5, 0xd7, 0xb1, 0xfd, 0x87, 0x74, 0xcc, 0xff, 0xb2, 0x8e, 0x1f, + 0x60, 0x47, 0xbd, 0x3e, 0x2d, 0xcd, 0xa5, 0x23, 0x86, 0xd7, 0x94, 0xf2, 0xca, 0xe7, 0x2d, 0xeb, + 0x79, 0xc7, 0x5f, 0x0c, 0xb8, 0xb1, 0x78, 0xf7, 0xbf, 0x40, 0x9e, 0x83, 0xef, 0x05, 0x90, 0x6d, + 0x14, 0x7a, 0x00, 0x25, 0xed, 0xc6, 0x45, 0x9b, 0x2a, 0x46, 0xf4, 0xd6, 0xb7, 0xfe, 0x4b, 0xb1, + 0x0a, 0x86, 0x5a, 0x50, 0x8e, 0x5e, 0x4d, 0x68, 0x5b, 0x39, 0x26, 0x2e, 0x4f, 0xcb, 0x4c, 0x9f, + 0x10, 0xcc, 0x07, 0xa0, 0x35, 0x3a, 0x21, 0x80, 0x68, 0xdf, 0x15, 0x02, 0x88, 0x77, 0x44, 0x8f, + 0x60, 0x5d, 0x6f, 0x31, 0xd0, 0x1c, 0xa7, 0xde, 0xc7, 0x58, 0x5b, 0x69, 0x66, 0xc1, 0xd0, 0x19, + 0x6c, 0xa6, 0x5d, 0x04, 0xe8, 0xa6, 0xf2, 0x5f, 0x70, 0x5b, 0x5a, 0xbb, 0x59, 0xd3, 0x2a, 0x6c, + 0x3b, 0x23, 0x6c, 0x3b, 0x3b, 0xec, 0xc2, 0x23, 0xe5, 0xc8, 0xe3, 0x96, 0x5a, 0x53, 0x68, 0x4f, + 0x67, 0x98, 0x5a, 0xf1, 0x16, 0xbe, 0xca, 0x45, 0xe9, 0xa9, 0xb7, 0x1c, 0xa1, 0x9e, 0xb1, 0x06, + 0x2b, 0xd4, 0x33, 0xde, 0x9d, 0x3c, 0xdd, 0x78, 0x59, 0x6a, 0xc8, 0x46, 0xfd, 0xa1, 0xff, 0x79, + 0xb5, 0x2a, 0xbb, 0xf0, 0x7b, 0x3f, 0x03, 0x00, 0x00, 0xff, 0xff, 0x95, 0x5e, 0xfc, 0xe6, 0xc1, + 0x0b, 0x00, 0x00, } From 655f7ff7d06907f18a79cd5043fef6a094e01957 Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Mon, 17 Jan 2022 18:00:25 +0800 Subject: [PATCH 505/814] Refactor code --- internal/api/friend/friend.go | 2 +- .../third/tencent_cloud_storage_credential.go | 68 ++++++------------- pkg/base_info/cos_api_struct.go | 18 +++++ 3 files changed, 39 insertions(+), 49 deletions(-) create mode 100644 pkg/base_info/cos_api_struct.go diff --git a/internal/api/friend/friend.go b/internal/api/friend/friend.go index b63591748..1c6b0a9b2 100644 --- a/internal/api/friend/friend.go +++ b/internal/api/friend/friend.go @@ -129,7 +129,7 @@ func AddFriendResponse(c *gin.Context) { req := &rpc.AddFriendResponseReq{CommID: &rpc.CommID{}} utils.CopyStructFields(req.CommID, ¶ms.ParamsCommFriend) req.HandleMsg = params.HandleMsg - req.Flag = params.Flag + req.HandleResult = params.Flag var ok bool ok, req.CommID.OpUserID = token_verify.GetUserIDFromToken(c.Request.Header.Get("token")) if !ok { diff --git a/internal/api/third/tencent_cloud_storage_credential.go b/internal/api/third/tencent_cloud_storage_credential.go index d6814bc93..33aac57b3 100644 --- a/internal/api/third/tencent_cloud_storage_credential.go +++ b/internal/api/third/tencent_cloud_storage_credential.go @@ -1,51 +1,37 @@ package apiThird import ( + api "Open_IM/pkg/base_info" "Open_IM/pkg/common/config" "Open_IM/pkg/common/constant" - log2 "Open_IM/pkg/common/log" + "Open_IM/pkg/common/log" + "Open_IM/pkg/common/token_verify" "github.com/gin-gonic/gin" sts "github.com/tencentyun/qcloud-cos-sts-sdk/go" "net/http" "time" ) -type paramsTencentCloudStorageCredential struct { - Token string `json:"token"` - OperationID string `json:"operationID"` -} - -var lastTime int64 -var lastRes *sts.CredentialResult - func TencentCloudStorageCredential(c *gin.Context) { - params := paramsTencentCloudStorageCredential{} - if err := c.BindJSON(¶ms); err != nil { - c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": "Parameter parsing error,please check the parameters and request service again"}) + req := api.TencentCloudStorageCredentialReq{} + if err := c.BindJSON(&req); err != nil { + log.NewError("0", "BindJSON failed ", err.Error()) + c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": err.Error()}) return } - - log2.Info(params.Token, params.OperationID, "api TencentUpLoadCredential call start...") - - if time.Now().Unix()-lastTime < 10 && lastRes != nil { - c.JSON(http.StatusOK, gin.H{ - "errCode": 0, - "errMsg": "", - "region": config.Config.Credential.Tencent.Region, - "bucket": config.Config.Credential.Tencent.Bucket, - "data": lastRes, - }) + ok, userID := token_verify.GetUserIDFromToken(c.Request.Header.Get("token")) + if !ok { + log.NewError(req.OperationID, "GetUserIDFromToken false ", c.Request.Header.Get("token")) + c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": "GetUserIDFromToken failed"}) return } - - lastTime = time.Now().Unix() + log.NewInfo(req.OperationID, "TencentCloudStorageCredential args ", userID) cli := sts.NewClient( config.Config.Credential.Tencent.SecretID, config.Config.Credential.Tencent.SecretKey, nil, ) - log2.Info(c.Request.Header.Get("token"), c.PostForm("optionID"), "api TencentUpLoadCredential sts.NewClient cli = %v", cli) opt := &sts.CredentialOptions{ DurationSeconds: int64(time.Hour.Seconds()), @@ -65,29 +51,15 @@ func TencentCloudStorageCredential(c *gin.Context) { }, }, } - log2.Info(c.Request.Header.Get("token"), c.PostForm("optionID"), "api TencentUpLoadCredential sts.CredentialOptions opt = %v", opt) - res, err := cli.GetCredential(opt) + resp := api.TencentCloudStorageCredentialResp{} if err != nil { - log2.Error(c.Request.Header.Get("token"), c.PostForm("optionID"), "api TencentUpLoadCredential cli.GetCredential err = %s", err.Error()) - c.JSON(http.StatusOK, gin.H{ - "errCode": constant.ErrTencentCredential.ErrCode, - "errMsg": err.Error(), - "bucket": "", - "region": "", - "data": res, - }) - return + resp.ErrCode = constant.ErrTencentCredential.ErrCode + resp.ErrMsg = err.Error() + } else { + resp.Bucket = config.Config.Credential.Tencent.Bucket + resp.Region = config.Config.Credential.Tencent.Region + resp.CredentialResult = res } - log2.Info(c.Request.Header.Get("token"), c.PostForm("optionID"), "api TencentUpLoadCredential cli.GetCredential success res = %v, res.Credentials = %v", res, res.Credentials) - - lastRes = res - - c.JSON(http.StatusOK, gin.H{ - "errCode": 0, - "errMsg": "", - "region": config.Config.Credential.Tencent.Region, - "bucket": config.Config.Credential.Tencent.Bucket, - "data": res, - }) + c.JSON(http.StatusOK, resp) } diff --git a/pkg/base_info/cos_api_struct.go b/pkg/base_info/cos_api_struct.go new file mode 100644 index 000000000..5efda0af1 --- /dev/null +++ b/pkg/base_info/cos_api_struct.go @@ -0,0 +1,18 @@ +package base_info + +import sts "github.com/tencentyun/qcloud-cos-sts-sdk/go" + +type TencentCloudStorageCredentialReq struct { + OperationID string `json:"operationID"` +} + +type tencentCloudStorageCredentialRespData struct { + *sts.CredentialResult + Region string `json:"region"` + Bucket string `json:"bucket"` +} + +type TencentCloudStorageCredentialResp struct { + CommResp + tencentCloudStorageCredentialRespData `json:"data"` +} From a45693685342c0e487698c61d72ee97a0562e5f6 Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Mon, 17 Jan 2022 18:25:35 +0800 Subject: [PATCH 506/814] Refactor code --- internal/api/third/tencent_cloud_storage_credential.go | 6 +++--- pkg/base_info/cos_api_struct.go | 4 ++-- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/internal/api/third/tencent_cloud_storage_credential.go b/internal/api/third/tencent_cloud_storage_credential.go index 33aac57b3..537641dee 100644 --- a/internal/api/third/tencent_cloud_storage_credential.go +++ b/internal/api/third/tencent_cloud_storage_credential.go @@ -57,9 +57,9 @@ func TencentCloudStorageCredential(c *gin.Context) { resp.ErrCode = constant.ErrTencentCredential.ErrCode resp.ErrMsg = err.Error() } else { - resp.Bucket = config.Config.Credential.Tencent.Bucket - resp.Region = config.Config.Credential.Tencent.Region - resp.CredentialResult = res + resp.Data.Bucket = config.Config.Credential.Tencent.Bucket + resp.Data.Region = config.Config.Credential.Tencent.Region + resp.Data.CredentialResult = res } c.JSON(http.StatusOK, resp) } diff --git a/pkg/base_info/cos_api_struct.go b/pkg/base_info/cos_api_struct.go index 5efda0af1..41568e480 100644 --- a/pkg/base_info/cos_api_struct.go +++ b/pkg/base_info/cos_api_struct.go @@ -6,7 +6,7 @@ type TencentCloudStorageCredentialReq struct { OperationID string `json:"operationID"` } -type tencentCloudStorageCredentialRespData struct { +type TencentCloudStorageCredentialRespData struct { *sts.CredentialResult Region string `json:"region"` Bucket string `json:"bucket"` @@ -14,5 +14,5 @@ type tencentCloudStorageCredentialRespData struct { type TencentCloudStorageCredentialResp struct { CommResp - tencentCloudStorageCredentialRespData `json:"data"` + Data TencentCloudStorageCredentialRespData `json:"data"` } From d12d571c2b5f5e2c0030c54733de7bf7a2388e1c Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Tue, 18 Jan 2022 09:25:41 +0800 Subject: [PATCH 507/814] Refactor code --- config/config.yaml | 145 +++++++++++++++++++++++++++---- internal/api/chat/pull_msg.go | 2 +- internal/api/chat/send_msg.go | 2 +- internal/rpc/msg/pull_message.go | 2 +- pkg/common/config/config.go | 2 +- pkg/common/db/mongoModel.go | 2 +- pkg/common/utils/utils.go | 1 - 7 files changed, 132 insertions(+), 24 deletions(-) diff --git a/config/config.yaml b/config/config.yaml index b8ab770c2..359ecaa20 100644 --- a/config/config.yaml +++ b/config/config.yaml @@ -85,9 +85,9 @@ credential: rpcport: openImUserPort: [ 10100 ] openImFriendPort: [ 10200 ] - openImOfflineMessagePort: [ 10300] + openImOfflineMessagePort: [ 10300 ] openImOnlineRelayPort: [ 10400 ] - openImGroupPort: [ 10500 ] + openImGroupPort: [ 10500 ] openImAuthPort: [ 10600 ] openImPushPort: [ 10700 ] c2c: @@ -144,8 +144,8 @@ push: pushUrl: "https://api.jpush.cn/v3/push" pushIntent: "intent:#Intent;component=io.openim.app.enterprisechat/io.openim.app.enterprisechat.MainActivity;end" manager: - appManagerUid: ["openIM123456","openIM654321"] - secrets: ["openIM1","openIM2"] + appManagerUid: [ "openIM123456","openIM654321" ] + secrets: [ "openIM1","openIM2" ] secret: tuoyun @@ -176,6 +176,7 @@ iOSPush: badgeCount: true notification: + groupCreated: conversation: reliabilityLevel: 1 @@ -188,8 +189,79 @@ notification: defaultTips: tips: "create the group" # xx create the group + groupInfoSet: + conversation: + reliabilityLevel: 1 + unreadCount: false + offlinePush: + switch: false + title: "group info changed title" + desc: "group info changed desc" + ext: "group info changed ext" + defaultTips: + tips: "group info changed by" # group info changed by xx + + joinGroupApplication: + conversation: + reliabilityLevel: 1 + unreadCount: false + offlinePush: + switch: false + title: "group info changed title" + desc: "group info changed desc" + ext: "group info changed ext" + defaultTips: + tips: "group info changed by" # group info changed by xx + + memberQuit: + conversation: + reliabilityLevel: 1 + unreadCount: false + offlinePush: + switch: false + title: "group info changed title" + desc: "group info changed desc" + ext: "group info changed ext" + defaultTips: + tips: "group info changed by" # group info changed by xx + + groupApplicationAccepted: + conversation: + reliabilityLevel: 1 + unreadCount: false + offlinePush: + switch: false + title: "group info changed title" + desc: "group info changed desc" + ext: "group info changed ext" + defaultTips: + tips: "group info changed by" # group info changed by xx + + groupApplicationRejected: + conversation: + reliabilityLevel: 1 + unreadCount: false + offlinePush: + switch: false + title: "group info changed title" + desc: "group info changed desc" + ext: "group info changed ext" + defaultTips: + tips: "group info changed by" # group info changed by xx + + groupOwnerTransferred: + conversation: + reliabilityLevel: 1 + unreadCount: false + offlinePush: + switch: false + title: "group info changed title" + desc: "group info changed desc" + ext: "group info changed ext" + defaultTips: + tips: "group info changed by" # group info changed by xx - groupInfoChanged: + memberKicked: conversation: reliabilityLevel: 1 unreadCount: false @@ -201,9 +273,33 @@ notification: defaultTips: tips: "group info changed by" # group info changed by xx + memberInvited: + conversation: + reliabilityLevel: 1 + unreadCount: false + offlinePush: + switch: false + title: "group info changed title" + desc: "group info changed desc" + ext: "group info changed ext" + defaultTips: + tips: "group info changed by" # group info changed by xx + + memberEnter: + conversation: + reliabilityLevel: 1 + unreadCount: false + offlinePush: + switch: false + title: "group info changed title" + desc: "group info changed desc" + ext: "group info changed ext" + defaultTips: + tips: "group info changed by" # group info changed by xx + #############################friend################################# - FriendApplicationAdded: + friendApplicationAdded: conversation: reliabilityLevel: 2 unreadCount: false @@ -215,7 +311,7 @@ notification: defaultTips: tips: "I applies to add you as a friend" # - FriendApplicationApproved: + friendApplicationApproved: conversation: reliabilityLevel: 2 unreadCount: false @@ -228,7 +324,7 @@ notification: tips: "I applies to add your friend application" # - FriendApplicationRejected: + friendApplicationRejected: conversation: reliabilityLevel: 2 unreadCount: false @@ -244,7 +340,7 @@ notification: - FriendAdded: + friendAdded: conversation: reliabilityLevel: 3 unreadCount: true @@ -258,7 +354,7 @@ notification: - FriendDeleted: + friendDeleted: conversation: reliabilityLevel: 2 unreadCount: false @@ -271,7 +367,7 @@ notification: tips: "Deleted a friend" # - FriendInfoChanged: + friendInfoChanged: conversation: reliabilityLevel: 2 unreadCount: false @@ -285,7 +381,7 @@ notification: - BlackAdded: + blackAdded: conversation: reliabilityLevel: 2 unreadCount: false @@ -298,7 +394,20 @@ notification: tips: "Blocked a user" # - BlackDeleted: + blackDeleted: + conversation: + reliabilityLevel: 2 + unreadCount: false + offlinePush: + switch: true + title: "Remove a blocked user" + desc: "Remove a blocked user" + ext: "Remove a blocked user" + defaultTips: + tips: "Remove a blocked user" + + #####################user######################### + userInfoUpdated: conversation: reliabilityLevel: 2 unreadCount: false @@ -310,7 +419,7 @@ notification: defaultTips: tips: "Remove a blocked user" -" # xx applied to add you as a friend + " # xx applied to add you as a friend @@ -327,9 +436,9 @@ demo: superCode: 666666 mail: title: "openIM" - senderMail: "1765567899@qq.com" - senderAuthorizationCode: "1gxyausfoevlzbfag" - smtpAddr: "smtp.qq.com" - smtpPort: 25 +senderMail: "1765567899@qq.com" +senderAuthorizationCode: "1gxyausfoevlzbfag" +smtpAddr: "smtp.qq.com" +smtpPort: 25 diff --git a/internal/api/chat/pull_msg.go b/internal/api/chat/pull_msg.go index 881612681..56903f5cc 100644 --- a/internal/api/chat/pull_msg.go +++ b/internal/api/chat/pull_msg.go @@ -6,7 +6,7 @@ import ( "Open_IM/pkg/common/token_verify" "Open_IM/pkg/grpc-etcdv3/getcdv3" "Open_IM/pkg/proto/chat" - "Open_IM/pkg/proto/sdk_ws" + open_im_sdk "Open_IM/pkg/proto/sdk_ws" "context" "github.com/gin-gonic/gin" "net/http" diff --git a/internal/api/chat/send_msg.go b/internal/api/chat/send_msg.go index 3909ac125..a28dcd1ce 100644 --- a/internal/api/chat/send_msg.go +++ b/internal/api/chat/send_msg.go @@ -4,7 +4,7 @@ import ( "Open_IM/pkg/common/config" "Open_IM/pkg/common/log" pbChat "Open_IM/pkg/proto/chat" - "Open_IM/pkg/proto/sdk_ws" + open_im_sdk "Open_IM/pkg/proto/sdk_ws" "context" "Open_IM/pkg/grpc-etcdv3/getcdv3" diff --git a/internal/rpc/msg/pull_message.go b/internal/rpc/msg/pull_message.go index 46d0ad78a..af619182b 100644 --- a/internal/rpc/msg/pull_message.go +++ b/internal/rpc/msg/pull_message.go @@ -6,7 +6,7 @@ import ( commonDB "Open_IM/pkg/common/db" "Open_IM/pkg/common/log" - "Open_IM/pkg/proto/sdk_ws" + open_im_sdk "Open_IM/pkg/proto/sdk_ws" "sort" "strings" diff --git a/pkg/common/config/config.go b/pkg/common/config/config.go index 2e6870557..3f5cccd5d 100644 --- a/pkg/common/config/config.go +++ b/pkg/common/config/config.go @@ -260,7 +260,7 @@ type config struct { OfflinePush POfflinePush `yaml:"offlinePush"` DefaultTips PDefaultTips `yaml:"defaultTips"` } - FriendRemarkSet struct { + FriendInfoChanged struct { Conversation PConversation `yaml:"conversation"` OfflinePush POfflinePush `yaml:"offlinePush"` DefaultTips PDefaultTips `yaml:"defaultTips"` diff --git a/pkg/common/db/mongoModel.go b/pkg/common/db/mongoModel.go index bb8650309..128815031 100644 --- a/pkg/common/db/mongoModel.go +++ b/pkg/common/db/mongoModel.go @@ -5,7 +5,7 @@ import ( "Open_IM/pkg/common/constant" "Open_IM/pkg/common/log" pbMsg "Open_IM/pkg/proto/chat" - "Open_IM/pkg/proto/sdk_ws" + open_im_sdk "Open_IM/pkg/proto/sdk_ws" "errors" "github.com/garyburd/redigo/redis" "github.com/golang/protobuf/proto" diff --git a/pkg/common/utils/utils.go b/pkg/common/utils/utils.go index e299fefc2..2fbcf1930 100644 --- a/pkg/common/utils/utils.go +++ b/pkg/common/utils/utils.go @@ -3,7 +3,6 @@ package utils import ( db "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_sdk "Open_IM/pkg/proto/sdk_ws" "Open_IM/pkg/utils" From bf208485f8de654c61e308d81df6b8b0d307155e Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Tue, 18 Jan 2022 09:40:08 +0800 Subject: [PATCH 508/814] Refactor code --- config/config.yaml | 2 +- internal/rpc/msg/send_msg.go | 36 ++++++++++++++++++------------------ pkg/common/config/config.go | 2 +- 3 files changed, 20 insertions(+), 20 deletions(-) diff --git a/config/config.yaml b/config/config.yaml index 359ecaa20..b8719b8a1 100644 --- a/config/config.yaml +++ b/config/config.yaml @@ -367,7 +367,7 @@ notification: tips: "Deleted a friend" # - friendInfoChanged: + friendRemarkSet: conversation: reliabilityLevel: 2 unreadCount: false diff --git a/internal/rpc/msg/send_msg.go b/internal/rpc/msg/send_msg.go index 83f439120..38430b677 100644 --- a/internal/rpc/msg/send_msg.go +++ b/internal/rpc/msg/send_msg.go @@ -259,7 +259,7 @@ func Notification(n *NotificationMsg) { msg.RecvID = "" msg.GroupID = n.RecvID } - if onlineUserOnly { + if true { msg.Options = make(map[string]bool, 10) //utils.SetSwitchFromOptions(msg.Options, constant.IsOfflinePush, false) utils.SetSwitchFromOptions(msg.Options, constant.IsHistory, false) @@ -267,23 +267,23 @@ func Notification(n *NotificationMsg) { } offlineInfo.IOSBadgeCount = config.Config.IOSPush.BadgeCount offlineInfo.IOSPushSound = config.Config.IOSPush.PushSound - switch msg.ContentType { - case constant.GroupCreatedNotification: - pushSwitch = config.Config.Notification.GroupCreated.OfflinePush.PushSwitch - title = config.Config.Notification.GroupCreated.OfflinePush.Title - desc = config.Config.Notification.GroupCreated.OfflinePush.Desc - ex = config.Config.Notification.GroupCreated.OfflinePush.Ext - case constant.GroupInfoChangedNotification: - pushSwitch = config.Config.Notification.GroupInfoChanged.OfflinePush.PushSwitch - title = config.Config.Notification.GroupInfoChanged.OfflinePush.Title - desc = config.Config.Notification.GroupInfoChanged.OfflinePush.Desc - ex = config.Config.Notification.GroupInfoChanged.OfflinePush.Ext - case constant.JoinApplicationNotification: - pushSwitch = config.Config.Notification.ApplyJoinGroup.OfflinePush.PushSwitch - title = config.Config.Notification.ApplyJoinGroup.OfflinePush.Title - desc = config.Config.Notification.ApplyJoinGroup.OfflinePush.Desc - ex = config.Config.Notification.ApplyJoinGroup.OfflinePush.Ext - } + //switch msg.ContentType { + //case constant.GroupCreatedNotification: + // pushSwitch = config.Config.Notification.GroupCreated.OfflinePush.PushSwitch + // title = config.Config.Notification.GroupCreated.OfflinePush.Title + // desc = config.Config.Notification.GroupCreated.OfflinePush.Desc + // ex = config.Config.Notification.GroupCreated.OfflinePush.Ext + //case constant.GroupInfoChangedNotification: + // pushSwitch = config.Config.Notification.GroupInfoChanged.OfflinePush.PushSwitch + // title = config.Config.Notification.GroupInfoChanged.OfflinePush.Title + // desc = config.Config.Notification.GroupInfoChanged.OfflinePush.Desc + // ex = config.Config.Notification.GroupInfoChanged.OfflinePush.Ext + //case constant.JoinApplicationNotification: + // pushSwitch = config.Config.Notification.ApplyJoinGroup.OfflinePush.PushSwitch + // title = config.Config.Notification.ApplyJoinGroup.OfflinePush.Title + // desc = config.Config.Notification.ApplyJoinGroup.OfflinePush.Desc + // ex = config.Config.Notification.ApplyJoinGroup.OfflinePush.Ext + //} utils.SetSwitchFromOptions(msg.Options, constant.IsOfflinePush, pushSwitch) offlineInfo.Title = title offlineInfo.Desc = desc diff --git a/pkg/common/config/config.go b/pkg/common/config/config.go index 3f5cccd5d..2e6870557 100644 --- a/pkg/common/config/config.go +++ b/pkg/common/config/config.go @@ -260,7 +260,7 @@ type config struct { OfflinePush POfflinePush `yaml:"offlinePush"` DefaultTips PDefaultTips `yaml:"defaultTips"` } - FriendInfoChanged struct { + FriendRemarkSet struct { Conversation PConversation `yaml:"conversation"` OfflinePush POfflinePush `yaml:"offlinePush"` DefaultTips PDefaultTips `yaml:"defaultTips"` From 69643c37c16a5cdb2b3b0eaaf80bb903865afd87 Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Tue, 18 Jan 2022 10:41:12 +0800 Subject: [PATCH 509/814] Refactor code --- config/config.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config/config.yaml b/config/config.yaml index b8719b8a1..65696d2ba 100644 --- a/config/config.yaml +++ b/config/config.yaml @@ -419,7 +419,7 @@ notification: defaultTips: tips: "Remove a blocked user" - " # xx applied to add you as a friend + From b90bb10a3ff3fd39ba29163aee5c188e7c575616 Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Tue, 18 Jan 2022 10:43:30 +0800 Subject: [PATCH 510/814] Refactor code --- internal/rpc/group/group.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/internal/rpc/group/group.go b/internal/rpc/group/group.go index 26de2bbd9..6fb8318d4 100644 --- a/internal/rpc/group/group.go +++ b/internal/rpc/group/group.go @@ -234,7 +234,7 @@ func (s *groupServer) InviteUserToGroup(ctx context.Context, req *pbGroup.Invite toInsertInfo.OperatorUserID = req.OpUserID err = imdb.InsertIntoGroupMember(toInsertInfo) if err != nil { - log.NewError(req.OperationID, "InsertIntoGroupMember failed ", req.GroupID, toUserInfo.UserID, toUserInfo.Nickname, toUserInfo.FaceUrl) + log.NewError(req.OperationID, "InsertIntoGroupMember failed ", req.GroupID, toUserInfo.UserID, toUserInfo.Nickname, toUserInfo.FaceURL) resultNode.Result = -1 resp.Id2ResultList = append(resp.Id2ResultList, &resultNode) continue From 7416fa3a4c1dceadfe5ab8b0b8c24694cf53dfd0 Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Tue, 18 Jan 2022 11:54:48 +0800 Subject: [PATCH 511/814] ws send msg modify --- internal/api/manage/management_chat.go | 2 +- internal/msg_gateway/gate/logic.go | 25 +++++++++++-------------- internal/rpc/msg/send_msg.go | 4 ++-- pkg/proto/sdk_ws/ws.proto | 6 +++--- 4 files changed, 17 insertions(+), 20 deletions(-) diff --git a/internal/api/manage/management_chat.go b/internal/api/manage/management_chat.go index f547b9b92..ba715bf68 100644 --- a/internal/api/manage/management_chat.go +++ b/internal/api/manage/management_chat.go @@ -61,7 +61,7 @@ func newUserSendMsgReq(params *ManagementSendMsgReq) *pbChat.SendMsgReq { ContentType: params.ContentType, Content: []byte(newContent), ForceList: params.ForceList, - CreateTime: utils.GetCurrentTimestampByNano(), + CreateTime: utils.GetCurrentTimestampByMill(), Options: options, OfflinePushInfo: params.OfflinePushInfo, }, diff --git a/internal/msg_gateway/gate/logic.go b/internal/msg_gateway/gate/logic.go index c7f0ff8a1..5fec367aa 100644 --- a/internal/msg_gateway/gate/logic.go +++ b/internal/msg_gateway/gate/logic.go @@ -7,7 +7,6 @@ import ( "Open_IM/pkg/grpc-etcdv3/getcdv3" pbChat "Open_IM/pkg/proto/chat" sdk_ws "Open_IM/pkg/proto/sdk_ws" - "Open_IM/pkg/utils" "bytes" "context" "encoding/gob" @@ -51,14 +50,13 @@ func (ws *WServer) msgParse(conn *UserConn, binaryMsg []byte) { switch m.ReqIdentifier { case constant.WSGetNewestSeq: - go ws.getSeqReq(conn, &m) + ws.getSeqReq(conn, &m) case constant.WSPullMsg: - go ws.pullMsgReq(conn, &m) + ws.pullMsgReq(conn, &m) case constant.WSSendMsg: - sendTime := utils.GetCurrentTimestampByNano() - go ws.sendMsgReq(conn, &m, sendTime) + ws.sendMsgReq(conn, &m) case constant.WSPullMsgBySeqList: - go ws.pullMsgBySeqListReq(conn, &m) + ws.pullMsgBySeqListReq(conn, &m) default: } log.NewInfo("", "goroutine num is ", runtime.NumGoroutine()) @@ -229,13 +227,12 @@ func (ws *WServer) pullMsgBySeqListResp(conn *UserConn, m *Req, pb *sdk_ws.PullM ws.sendMsg(conn, mReply) } -func (ws *WServer) sendMsgReq(conn *UserConn, m *Req, sendTime int64) { - log.NewInfo(m.OperationID, "Ws call success to sendMsgReq start", m.MsgIncr, m.ReqIdentifier, m.SendID, sendTime) +func (ws *WServer) sendMsgReq(conn *UserConn, m *Req) { + log.NewInfo(m.OperationID, "Ws call success to sendMsgReq start", m.MsgIncr, m.ReqIdentifier, m.SendID) nReply := new(pbChat.SendMsgResp) isPass, errCode, errMsg, pData := ws.argsValidate(m, constant.WSSendMsg) if isPass { data := pData.(sdk_ws.MsgData) - data.SendTime = sendTime pbData := pbChat.SendMsgReq{ Token: m.Token, OperationID: m.OperationID, @@ -249,26 +246,26 @@ func (ws *WServer) sendMsgReq(conn *UserConn, m *Req, sendTime int64) { log.NewError(pbData.OperationID, "UserSendMsg err", err.Error()) nReply.ErrCode = 200 nReply.ErrMsg = err.Error() - ws.sendMsgResp(conn, m, nReply, sendTime) + ws.sendMsgResp(conn, m, nReply) } else { log.NewInfo(pbData.OperationID, "rpc call success to sendMsgReq", reply.String()) - ws.sendMsgResp(conn, m, reply, sendTime) + ws.sendMsgResp(conn, m, reply) } } else { nReply.ErrCode = errCode nReply.ErrMsg = errMsg - ws.sendMsgResp(conn, m, nReply, sendTime) + ws.sendMsgResp(conn, m, nReply) } } -func (ws *WServer) sendMsgResp(conn *UserConn, m *Req, pb *pbChat.SendMsgResp, sendTime int64) { +func (ws *WServer) sendMsgResp(conn *UserConn, m *Req, pb *pbChat.SendMsgResp) { // := make(map[string]interface{}) var mReplyData sdk_ws.UserSendMsgResp mReplyData.ClientMsgID = pb.GetClientMsgID() mReplyData.ServerMsgID = pb.GetServerMsgID() - mReplyData.SendTime = sendTime + mReplyData.SendTime = pb.GetSendTime() b, _ := proto.Marshal(&mReplyData) mReply := Resp{ ReqIdentifier: m.ReqIdentifier, diff --git a/internal/rpc/msg/send_msg.go b/internal/rpc/msg/send_msg.go index bf371f0a2..96c777220 100644 --- a/internal/rpc/msg/send_msg.go +++ b/internal/rpc/msg/send_msg.go @@ -46,7 +46,7 @@ type MsgCallBackResp struct { func (rpc *rpcChat) encapsulateMsgData(msg *sdk_ws.MsgData) { msg.ServerMsgID = GetMsgID(msg.SendID) if msg.SendTime == 0 { - msg.SendTime = utils.GetCurrentTimestampByNano() + msg.SendTime = utils.GetCurrentTimestampByMill() } switch msg.ContentType { case constant.Text: @@ -252,7 +252,7 @@ func Notification(n *NotificationMsg, onlineUserOnly bool) { msg.MsgFrom = n.MsgFrom msg.ContentType = n.ContentType msg.SessionType = n.SessionType - msg.CreateTime = utils.GetCurrentTimestampByNano() + msg.CreateTime = utils.GetCurrentTimestampByMill() msg.ClientMsgID = utils.GetMsgID(n.SendID) switch n.SessionType { case constant.GroupChatType: diff --git a/pkg/proto/sdk_ws/ws.proto b/pkg/proto/sdk_ws/ws.proto index bd3729e85..fcd90b9ae 100644 --- a/pkg/proto/sdk_ws/ws.proto +++ b/pkg/proto/sdk_ws/ws.proto @@ -187,12 +187,12 @@ message MsgData { int32 msgFrom = 10; int32 contentType = 11; bytes content = 12; - repeated string forceList = 13; int64 seq = 14; int64 sendTime = 15; int64 createTime = 16; - map options = 17; - OfflinePushInfo offlinePushInfo = 18; + int32 status = 17; + map options = 18; + OfflinePushInfo offlinePushInfo = 19; } message OfflinePushInfo{ From b375877a6d70cd12fb34c60f22b94a1b92cb1e02 Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Tue, 18 Jan 2022 14:06:42 +0800 Subject: [PATCH 512/814] ws send msg modify --- internal/rpc/msg/send_msg.go | 1 + 1 file changed, 1 insertion(+) diff --git a/internal/rpc/msg/send_msg.go b/internal/rpc/msg/send_msg.go index 11c105d2a..d6e8c20a1 100644 --- a/internal/rpc/msg/send_msg.go +++ b/internal/rpc/msg/send_msg.go @@ -240,6 +240,7 @@ type NotificationMsg struct { } func Notification(n *NotificationMsg) { + return var req pbChat.SendMsgReq var msg sdk_ws.MsgData var offlineInfo sdk_ws.OfflinePushInfo From 896a69086bce4f935283808981c11e6a31ff70c3 Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Tue, 18 Jan 2022 15:09:47 +0800 Subject: [PATCH 513/814] ws send msg modify --- pkg/common/db/mysql.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkg/common/db/mysql.go b/pkg/common/db/mysql.go index dba24ae61..41347190b 100644 --- a/pkg/common/db/mysql.go +++ b/pkg/common/db/mysql.go @@ -35,7 +35,7 @@ func initMysqlDB() { } //Check the database and table during initialization - sql := fmt.Sprintf("CREATE DATABASE IF NOT EXISTS %s ;", config.Config.Mysql.DBDatabaseName) + sql := fmt.Sprintf("CREATE DATABASE IF NOT EXISTS %s ;", config.Config.Mysql.DBDatabaseName+"test1") err = db.Exec(sql).Error if err != nil { log.NewError("0", "Exec failed ", err.Error(), sql) From da5e60a0096784f98cd44f0383dca35e52da74f5 Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Tue, 18 Jan 2022 15:26:06 +0800 Subject: [PATCH 514/814] Refactor code --- internal/api/group/group.go | 1 + pkg/base_info/group_api_struct.go | 2 +- pkg/common/db/mysql.go | 2 +- 3 files changed, 3 insertions(+), 2 deletions(-) diff --git a/internal/api/group/group.go b/internal/api/group/group.go index 61bc95495..16ce528fa 100644 --- a/internal/api/group/group.go +++ b/internal/api/group/group.go @@ -167,6 +167,7 @@ func GetGroupAllMemberList(c *gin.Context) { func GetJoinedGroupList(c *gin.Context) { params := api.GetJoinedGroupListReq{} + err := c.BindJSON(¶ms) if err := c.BindJSON(¶ms); err != nil { log.NewError("0", "BindJSON failed ", err.Error()) c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": err.Error()}) diff --git a/pkg/base_info/group_api_struct.go b/pkg/base_info/group_api_struct.go index 01ba3da84..0ecaba7c2 100644 --- a/pkg/base_info/group_api_struct.go +++ b/pkg/base_info/group_api_struct.go @@ -90,7 +90,7 @@ type CreateGroupReq struct { } type CreateGroupResp struct { CommResp - GroupInfo open_im_sdk.GroupInfo `jason:-` + GroupInfo open_im_sdk.GroupInfo `json:-` Data map[string]interface{} `json:"data"` } diff --git a/pkg/common/db/mysql.go b/pkg/common/db/mysql.go index dba24ae61..2540ea7d9 100644 --- a/pkg/common/db/mysql.go +++ b/pkg/common/db/mysql.go @@ -44,7 +44,7 @@ func initMysqlDB() { db.Close() dsn = fmt.Sprintf("%s:%s@tcp(%s)/%s?charset=utf8mb4&parseTime=true&loc=Local", - config.Config.Mysql.DBUserName, config.Config.Mysql.DBPassword, config.Config.Mysql.DBAddress[0], config.Config.Mysql.DBDatabaseName+"test1") + config.Config.Mysql.DBUserName, config.Config.Mysql.DBPassword, config.Config.Mysql.DBAddress[0], config.Config.Mysql.DBDatabaseName) db, err = gorm.Open("mysql", dsn) if err != nil { log.NewError("0", "Open failed ", err.Error(), dsn) From f4ceef485b51a5285f5eb7f118169c3be963c958 Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Tue, 18 Jan 2022 15:58:57 +0800 Subject: [PATCH 515/814] Refactor code --- pkg/base_info/group_api_struct.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkg/base_info/group_api_struct.go b/pkg/base_info/group_api_struct.go index 0ecaba7c2..9847ef1c5 100644 --- a/pkg/base_info/group_api_struct.go +++ b/pkg/base_info/group_api_struct.go @@ -90,7 +90,7 @@ type CreateGroupReq struct { } type CreateGroupResp struct { CommResp - GroupInfo open_im_sdk.GroupInfo `json:-` + GroupInfo open_im_sdk.GroupInfo `json:"-"` Data map[string]interface{} `json:"data"` } From b6380a17ce42f2612666ba0e1cf231458448a41b Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Tue, 18 Jan 2022 18:39:27 +0800 Subject: [PATCH 516/814] ws send msg modify --- internal/api/auth/auth.go | 1 - pkg/base_info/group_api_struct.go | 4 ++++ 2 files changed, 4 insertions(+), 1 deletion(-) diff --git a/internal/api/auth/auth.go b/internal/api/auth/auth.go index 76effddf2..85d427fb8 100644 --- a/internal/api/auth/auth.go +++ b/internal/api/auth/auth.go @@ -78,7 +78,6 @@ func UserToken(c *gin.Context) { c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": err.Error()}) return } - 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) diff --git a/pkg/base_info/group_api_struct.go b/pkg/base_info/group_api_struct.go index 01ba3da84..f5f4e7018 100644 --- a/pkg/base_info/group_api_struct.go +++ b/pkg/base_info/group_api_struct.go @@ -48,6 +48,10 @@ type InviteUserToGroupResp struct { UserIDResultList []*UserIDResult `json:"data"` } +//type GetJoinedGroupListReq struct { +// OperationID string `json:"operationID" binding:"required"` +// FromUserID string `json:"fromUserID" binding:"required"` +//} type GetJoinedGroupListReq struct { OperationID string `json:"operationID" binding:"required"` FromUserID string `json:"fromUserID" binding:"required"` From e28a8db3b4aafc284b17cd69b083ae032c4135df Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Tue, 18 Jan 2022 19:46:17 +0800 Subject: [PATCH 517/814] Refactor code --- internal/api/group/group.go | 1 - 1 file changed, 1 deletion(-) diff --git a/internal/api/group/group.go b/internal/api/group/group.go index 16ce528fa..61bc95495 100644 --- a/internal/api/group/group.go +++ b/internal/api/group/group.go @@ -167,7 +167,6 @@ func GetGroupAllMemberList(c *gin.Context) { func GetJoinedGroupList(c *gin.Context) { params := api.GetJoinedGroupListReq{} - err := c.BindJSON(¶ms) if err := c.BindJSON(¶ms); err != nil { log.NewError("0", "BindJSON failed ", err.Error()) c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": err.Error()}) From d132e53c064f6ff07a27edaafc9aaff0d5f512f0 Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Tue, 18 Jan 2022 20:04:58 +0800 Subject: [PATCH 518/814] Refactor code --- internal/api/group/group.go | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/internal/api/group/group.go b/internal/api/group/group.go index 61bc95495..4497a1578 100644 --- a/internal/api/group/group.go +++ b/internal/api/group/group.go @@ -245,8 +245,9 @@ func CreateGroup(c *gin.Context) { c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": err.Error()}) return } - req := &rpc.CreateGroupReq{} - utils.CopyStructFields(req, ¶ms) + req := &rpc.CreateGroupReq{GroupInfo: &open_im_sdk.GroupInfo{}} + utils.CopyStructFields(req.GroupInfo, ¶ms) + for _, v := range params.MemberList { req.InitMemberList = append(req.InitMemberList, &rpc.GroupAddMemberInfo{UserID: v.UserID, RoleLevel: v.RoleLevel}) } From 28d9304ec6d87a58979f4c472837690f2d5ca945 Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Tue, 18 Jan 2022 20:27:46 +0800 Subject: [PATCH 519/814] Refactor code --- internal/api/user/user.go | 5 ++--- pkg/base_info/user_api_struct.go | 4 ++-- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/internal/api/user/user.go b/internal/api/user/user.go index c57eeb88d..8508cddc8 100644 --- a/internal/api/user/user.go +++ b/internal/api/user/user.go @@ -115,13 +115,12 @@ func GetSelfUserInfo(c *gin.Context) { return } if len(RpcResp.UserInfoList) == 1 { - resp := api.GetSelfUserInfoResp{CommResp: api.CommResp{ErrCode: RpcResp.CommonResp.ErrCode, ErrMsg: RpcResp.CommonResp.ErrMsg}, UserInfoList: RpcResp.UserInfoList[0]} - resp.Data = jsonData.JsonDataList(resp.UserInfoList) + 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}} - resp.Data = jsonData.JsonDataList(resp.UserInfoList) log.NewInfo(req.OperationID, "GetUserInfo api return ", resp) c.JSON(http.StatusOK, resp) } diff --git a/pkg/base_info/user_api_struct.go b/pkg/base_info/user_api_struct.go index 3ca191f98..2ccfc6cc6 100644 --- a/pkg/base_info/user_api_struct.go +++ b/pkg/base_info/user_api_struct.go @@ -29,6 +29,6 @@ type GetSelfUserInfoReq struct { } type GetSelfUserInfoResp struct { CommResp - UserInfoList *open_im_sdk.UserInfo `json:"-"` - Data []map[string]interface{} `json:"data"` + UserInfo *open_im_sdk.UserInfo `json:"-"` + Data map[string]interface{} `json:"data"` } From 0dc5c9dbac602c3b913c841aa8410984bb4d4e72 Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Tue, 18 Jan 2022 21:17:35 +0800 Subject: [PATCH 520/814] Refactor code --- internal/api/group/group.go | 2 ++ 1 file changed, 2 insertions(+) diff --git a/internal/api/group/group.go b/internal/api/group/group.go index 4497a1578..85473b4c2 100644 --- a/internal/api/group/group.go +++ b/internal/api/group/group.go @@ -258,6 +258,8 @@ func CreateGroup(c *gin.Context) { c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": "GetUserIDFromToken failed"}) return } + req.OwnerUserID = req.OpUserID + req.OperationID = params.OperationID log.NewInfo(req.OperationID, "CreateGroup args ", req.String()) etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImGroupName) From 1c362e487138b787c08d53757a8e5ae8c75bc37d Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Tue, 18 Jan 2022 21:42:27 +0800 Subject: [PATCH 521/814] Refactor code --- internal/rpc/group/group.go | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/internal/rpc/group/group.go b/internal/rpc/group/group.go index 6fb8318d4..9df6064f6 100644 --- a/internal/rpc/group/group.go +++ b/internal/rpc/group/group.go @@ -78,9 +78,10 @@ func (s *groupServer) CreateGroup(ctx context.Context, req *pbGroup.CreateGroupR //Time stamp + MD5 to generate group chat id groupId := utils.Md5(strconv.FormatInt(time.Now().UnixNano(), 10)) //to group - groupInfo := db.Group{GroupID: groupId} + groupInfo := db.Group{} utils.CopyStructFields(&groupInfo, req.GroupInfo) groupInfo.CreatorUserID = req.OpUserID + groupInfo.GroupID = groupId err := imdb.InsertIntoGroup(groupInfo) if err != nil { log.NewError(req.OperationID, "InsertIntoGroup failed, ", err.Error(), groupInfo) From 7f00a3075fdef633615549e1f93a8ff67667859a Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Wed, 19 Jan 2022 09:32:46 +0800 Subject: [PATCH 522/814] Refactor code --- pkg/base_info/group_api_struct.go | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/pkg/base_info/group_api_struct.go b/pkg/base_info/group_api_struct.go index 9847ef1c5..dec18fc0b 100644 --- a/pkg/base_info/group_api_struct.go +++ b/pkg/base_info/group_api_struct.go @@ -1,7 +1,6 @@ package base_info import ( - "Open_IM/pkg/common/db" open_im_sdk "Open_IM/pkg/proto/sdk_ws" ) @@ -143,8 +142,13 @@ type QuitGroupResp struct { } type SetGroupInfoReq struct { - db.Group - OperationID string `json:"operationID" binding:"required"` + GroupID string `json:"groupID" binding:"required"` + GroupName string `json:"groupName"` + Notification string `json:"notification"` + Introduction string `json:"introduction"` + FaceURL string `json:"faceURL"` + Ex string `json:"ex"` + OperationID string `json:"operationID" binding:"required"` } type SetGroupInfoResp struct { CommResp From 83e842d121fcd907e6555fbca2afea9d55f52478 Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Wed, 19 Jan 2022 09:33:31 +0800 Subject: [PATCH 523/814] Refactor code --- internal/api/group/group.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/internal/api/group/group.go b/internal/api/group/group.go index 85473b4c2..5d2d8405f 100644 --- a/internal/api/group/group.go +++ b/internal/api/group/group.go @@ -450,7 +450,7 @@ func SetGroupInfo(c *gin.Context) { return } req := &rpc.SetGroupInfoReq{GroupInfo: &open_im_sdk.GroupInfo{}} - utils.CopyStructFields(req.GroupInfo, ¶ms.Group) + utils.CopyStructFields(req.GroupInfo, ¶ms) req.OperationID = params.OperationID var ok bool ok, req.OpUserID = token_verify.GetUserIDFromToken(c.Request.Header.Get("token")) From 757b296fd0a0b084a89c6e7db06cae2e92c2c23f Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Wed, 19 Jan 2022 11:47:40 +0800 Subject: [PATCH 524/814] model length add --- pkg/common/db/model_struct.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkg/common/db/model_struct.go b/pkg/common/db/model_struct.go index 7cb768cd4..8dd0ab3a2 100644 --- a/pkg/common/db/model_struct.go +++ b/pkg/common/db/model_struct.go @@ -116,8 +116,8 @@ type GroupRequest struct { UserID string `gorm:"column:user_id;primary_key;size:64"` GroupID string `gorm:"column:group_id;primary_key;size:64"` HandleResult int32 `gorm:"column:handle_result"` - ReqMsg string `gorm:"column:req_msg;size:255"` - HandledMsg string `gorm:"column:handle_msg;size:255"` + ReqMsg string `gorm:"column:req_msg;size:1024"` + HandledMsg string `gorm:"column:handle_msg;size:1024"` ReqTime time.Time `gorm:"column:req_time"` HandleUserID string `gorm:"column:handle_user_id;size:64"` HandledTime time.Time `gorm:"column:handle_time"` From de5243927654e1e67d22121e581e965ce66ce8db Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Wed, 19 Jan 2022 11:49:01 +0800 Subject: [PATCH 525/814] model length add --- pkg/base_info/group_api_struct.go | 4 ---- 1 file changed, 4 deletions(-) diff --git a/pkg/base_info/group_api_struct.go b/pkg/base_info/group_api_struct.go index f5f4e7018..01ba3da84 100644 --- a/pkg/base_info/group_api_struct.go +++ b/pkg/base_info/group_api_struct.go @@ -48,10 +48,6 @@ type InviteUserToGroupResp struct { UserIDResultList []*UserIDResult `json:"data"` } -//type GetJoinedGroupListReq struct { -// OperationID string `json:"operationID" binding:"required"` -// FromUserID string `json:"fromUserID" binding:"required"` -//} type GetJoinedGroupListReq struct { OperationID string `json:"operationID" binding:"required"` FromUserID string `json:"fromUserID" binding:"required"` From 1a0f626a809f493ff2547346438b1dfa19678558 Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Wed, 19 Jan 2022 12:31:28 +0800 Subject: [PATCH 526/814] model length add --- pkg/common/db/mysql.go | 70 +++++++++++++++++++++--------------------- 1 file changed, 35 insertions(+), 35 deletions(-) diff --git a/pkg/common/db/mysql.go b/pkg/common/db/mysql.go index 3a26ca88f..d87a8ec61 100644 --- a/pkg/common/db/mysql.go +++ b/pkg/common/db/mysql.go @@ -60,41 +60,41 @@ func initMysqlDB() { &GroupRequest{}, &User{}, &Black{}) - - if !db.HasTable(&Friend{}) { - log.NewInfo("CreateTable Friend") - db.CreateTable(&Friend{}) - } - - if !db.HasTable(&FriendRequest{}) { - log.NewInfo("CreateTable FriendRequest") - db.CreateTable(&FriendRequest{}) - } - - if !db.HasTable(&Group{}) { - log.NewInfo("CreateTable Group") - db.CreateTable(&Group{}) - } - - if !db.HasTable(&GroupMember{}) { - log.NewInfo("CreateTable GroupMember") - db.CreateTable(&GroupMember{}) - } - - if !db.HasTable(&GroupRequest{}) { - log.NewInfo("CreateTable GroupRequest") - db.CreateTable(&GroupRequest{}) - } - - if !db.HasTable(&User{}) { - log.NewInfo("CreateTable User") - db.CreateTable(&User{}) - } - - if !db.HasTable(&Black{}) { - log.NewInfo("CreateTable Black") - db.CreateTable(&Black{}) - } + // + //if !db.HasTable(&Friend{}) { + // log.NewInfo("CreateTable Friend") + // db.CreateTable(&Friend{}) + //} + // + //if !db.HasTable(&FriendRequest{}) { + // log.NewInfo("CreateTable FriendRequest") + // db.CreateTable(&FriendRequest{}) + //} + // + //if !db.HasTable(&Group{}) { + // log.NewInfo("CreateTable Group") + // db.CreateTable(&Group{}) + //} + // + //if !db.HasTable(&GroupMember{}) { + // log.NewInfo("CreateTable GroupMember") + // db.CreateTable(&GroupMember{}) + //} + // + //if !db.HasTable(&GroupRequest{}) { + // log.NewInfo("CreateTable GroupRequest") + // db.CreateTable(&GroupRequest{}) + //} + // + //if !db.HasTable(&User{}) { + // log.NewInfo("CreateTable User") + // db.CreateTable(&User{}) + //} + // + //if !db.HasTable(&Black{}) { + // log.NewInfo("CreateTable Black") + // db.CreateTable(&Black{}) + //} return From ca0f095d6b0a4f4069e0a32f2f2dbafd365812d6 Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Wed, 19 Jan 2022 14:00:25 +0800 Subject: [PATCH 527/814] db charset set utf-8 --- pkg/common/db/mysql.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkg/common/db/mysql.go b/pkg/common/db/mysql.go index d87a8ec61..24f1eb20a 100644 --- a/pkg/common/db/mysql.go +++ b/pkg/common/db/mysql.go @@ -52,7 +52,7 @@ func initMysqlDB() { } log.NewInfo("open db ok ", dsn) - + db.Set("gorm:table_options", "CHARSET=utf8") db.AutoMigrate(&Friend{}, &FriendRequest{}, &Group{}, From ae09d73257faeaaf66d76cc3941d699d4b6fa118 Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Wed, 19 Jan 2022 14:10:15 +0800 Subject: [PATCH 528/814] Refactor code --- pkg/proto/sdk_ws/ws.proto | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkg/proto/sdk_ws/ws.proto b/pkg/proto/sdk_ws/ws.proto index a74e3e13f..eede88e04 100644 --- a/pkg/proto/sdk_ws/ws.proto +++ b/pkg/proto/sdk_ws/ws.proto @@ -77,7 +77,7 @@ message BlackInfo{ message GroupRequest{ PublicUserInfo userInfo = 1; GroupInfo groupInfo = 2; - string handleResult = 3; + int32 handleResult = 3; string reqMsg = 4; string handleMsg = 5; uint32 reqTime = 6; From db80d8f56fd2d8a7bef6e6f77ac49d898f23df38 Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Wed, 19 Jan 2022 14:12:29 +0800 Subject: [PATCH 529/814] Refactor code --- pkg/proto/sdk_ws/ws.pb.go | 357 +++++++++++++++++++------------------- 1 file changed, 178 insertions(+), 179 deletions(-) diff --git a/pkg/proto/sdk_ws/ws.pb.go b/pkg/proto/sdk_ws/ws.pb.go index 5dc1cae3b..5c6263e74 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_551a30e7c7c24c98, []int{0} + return fileDescriptor_ws_44bd6efa690189ed, []int{0} } func (m *GroupInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupInfo.Unmarshal(m, b) @@ -164,7 +164,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_551a30e7c7c24c98, []int{1} + return fileDescriptor_ws_44bd6efa690189ed, []int{1} } func (m *GroupMemberFullInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupMemberFullInfo.Unmarshal(m, b) @@ -269,7 +269,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_551a30e7c7c24c98, []int{2} + return fileDescriptor_ws_44bd6efa690189ed, []int{2} } func (m *PublicUserInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_PublicUserInfo.Unmarshal(m, b) @@ -344,7 +344,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_551a30e7c7c24c98, []int{3} + return fileDescriptor_ws_44bd6efa690189ed, []int{3} } func (m *UserInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_UserInfo.Unmarshal(m, b) @@ -451,7 +451,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_551a30e7c7c24c98, []int{4} + return fileDescriptor_ws_44bd6efa690189ed, []int{4} } func (m *FriendInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FriendInfo.Unmarshal(m, b) @@ -536,7 +536,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_551a30e7c7c24c98, []int{5} + return fileDescriptor_ws_44bd6efa690189ed, []int{5} } func (m *BlackInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_BlackInfo.Unmarshal(m, b) @@ -601,7 +601,7 @@ func (m *BlackInfo) GetEx() string { type GroupRequest struct { UserInfo *PublicUserInfo `protobuf:"bytes,1,opt,name=userInfo" json:"userInfo,omitempty"` GroupInfo *GroupInfo `protobuf:"bytes,2,opt,name=groupInfo" json:"groupInfo,omitempty"` - HandleResult string `protobuf:"bytes,3,opt,name=handleResult" json:"handleResult,omitempty"` + HandleResult int32 `protobuf:"varint,3,opt,name=handleResult" json:"handleResult,omitempty"` ReqMsg string `protobuf:"bytes,4,opt,name=reqMsg" json:"reqMsg,omitempty"` HandleMsg string `protobuf:"bytes,5,opt,name=handleMsg" json:"handleMsg,omitempty"` ReqTime uint32 `protobuf:"varint,6,opt,name=reqTime" json:"reqTime,omitempty"` @@ -617,7 +617,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_551a30e7c7c24c98, []int{6} + return fileDescriptor_ws_44bd6efa690189ed, []int{6} } func (m *GroupRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupRequest.Unmarshal(m, b) @@ -651,11 +651,11 @@ func (m *GroupRequest) GetGroupInfo() *GroupInfo { return nil } -func (m *GroupRequest) GetHandleResult() string { +func (m *GroupRequest) GetHandleResult() int32 { if m != nil { return m.HandleResult } - return "" + return 0 } func (m *GroupRequest) GetReqMsg() string { @@ -725,7 +725,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_551a30e7c7c24c98, []int{7} + return fileDescriptor_ws_44bd6efa690189ed, []int{7} } func (m *FriendRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FriendRequest.Unmarshal(m, b) @@ -866,7 +866,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_551a30e7c7c24c98, []int{8} + return fileDescriptor_ws_44bd6efa690189ed, []int{8} } func (m *PullMessageBySeqListResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_PullMessageBySeqListResp.Unmarshal(m, b) @@ -941,7 +941,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_551a30e7c7c24c98, []int{9} + return fileDescriptor_ws_44bd6efa690189ed, []int{9} } func (m *PullMessageBySeqListReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_PullMessageBySeqListReq.Unmarshal(m, b) @@ -996,7 +996,7 @@ func (m *PullMessageReq) Reset() { *m = PullMessageReq{} } func (m *PullMessageReq) String() string { return proto.CompactTextString(m) } func (*PullMessageReq) ProtoMessage() {} func (*PullMessageReq) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_551a30e7c7c24c98, []int{10} + return fileDescriptor_ws_44bd6efa690189ed, []int{10} } func (m *PullMessageReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_PullMessageReq.Unmarshal(m, b) @@ -1060,7 +1060,7 @@ func (m *PullMessageResp) Reset() { *m = PullMessageResp{} } func (m *PullMessageResp) String() string { return proto.CompactTextString(m) } func (*PullMessageResp) ProtoMessage() {} func (*PullMessageResp) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_551a30e7c7c24c98, []int{11} + return fileDescriptor_ws_44bd6efa690189ed, []int{11} } func (m *PullMessageResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_PullMessageResp.Unmarshal(m, b) @@ -1132,7 +1132,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_551a30e7c7c24c98, []int{12} + return fileDescriptor_ws_44bd6efa690189ed, []int{12} } func (m *GetMaxAndMinSeqReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetMaxAndMinSeqReq.Unmarshal(m, b) @@ -1164,7 +1164,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_551a30e7c7c24c98, []int{13} + return fileDescriptor_ws_44bd6efa690189ed, []int{13} } func (m *GetMaxAndMinSeqResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetMaxAndMinSeqResp.Unmarshal(m, b) @@ -1212,7 +1212,7 @@ func (m *GatherFormat) Reset() { *m = GatherFormat{} } func (m *GatherFormat) String() string { return proto.CompactTextString(m) } func (*GatherFormat) ProtoMessage() {} func (*GatherFormat) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_551a30e7c7c24c98, []int{14} + return fileDescriptor_ws_44bd6efa690189ed, []int{14} } func (m *GatherFormat) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GatherFormat.Unmarshal(m, b) @@ -1259,7 +1259,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_551a30e7c7c24c98, []int{15} + return fileDescriptor_ws_44bd6efa690189ed, []int{15} } func (m *UserSendMsgResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_UserSendMsgResp.Unmarshal(m, b) @@ -1313,12 +1313,12 @@ type MsgData struct { MsgFrom int32 `protobuf:"varint,10,opt,name=msgFrom" json:"msgFrom,omitempty"` ContentType int32 `protobuf:"varint,11,opt,name=contentType" json:"contentType,omitempty"` Content []byte `protobuf:"bytes,12,opt,name=content,proto3" json:"content,omitempty"` - ForceList []string `protobuf:"bytes,13,rep,name=forceList" json:"forceList,omitempty"` Seq int64 `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"` - Options map[string]bool `protobuf:"bytes,17,rep,name=options" json:"options,omitempty" protobuf_key:"bytes,1,opt,name=key" protobuf_val:"varint,2,opt,name=value"` - OfflinePushInfo *OfflinePushInfo `protobuf:"bytes,18,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:"-"` @@ -1328,7 +1328,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_551a30e7c7c24c98, []int{16} + return fileDescriptor_ws_44bd6efa690189ed, []int{16} } func (m *MsgData) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MsgData.Unmarshal(m, b) @@ -1432,13 +1432,6 @@ func (m *MsgData) GetContent() []byte { return nil } -func (m *MsgData) GetForceList() []string { - if m != nil { - return m.ForceList - } - return nil -} - func (m *MsgData) GetSeq() int64 { if m != nil { return m.Seq @@ -1460,6 +1453,13 @@ func (m *MsgData) GetCreateTime() int64 { return 0 } +func (m *MsgData) GetStatus() int32 { + if m != nil { + return m.Status + } + return 0 +} + func (m *MsgData) GetOptions() map[string]bool { if m != nil { return m.Options @@ -1489,7 +1489,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_551a30e7c7c24c98, []int{17} + return fileDescriptor_ws_44bd6efa690189ed, []int{17} } func (m *OfflinePushInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_OfflinePushInfo.Unmarshal(m, b) @@ -1556,7 +1556,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_551a30e7c7c24c98, []int{18} + return fileDescriptor_ws_44bd6efa690189ed, []int{18} } func (m *TipsComm) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_TipsComm.Unmarshal(m, b) @@ -1606,7 +1606,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_551a30e7c7c24c98, []int{19} + return fileDescriptor_ws_44bd6efa690189ed, []int{19} } func (m *GroupCreatedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupCreatedTips.Unmarshal(m, b) @@ -1675,7 +1675,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_551a30e7c7c24c98, []int{20} + return fileDescriptor_ws_44bd6efa690189ed, []int{20} } func (m *GroupInfoSetTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupInfoSetTips.Unmarshal(m, b) @@ -1730,7 +1730,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_551a30e7c7c24c98, []int{21} + return fileDescriptor_ws_44bd6efa690189ed, []int{21} } func (m *JoinGroupApplicationTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_JoinGroupApplicationTips.Unmarshal(m, b) @@ -1786,7 +1786,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_551a30e7c7c24c98, []int{22} + return fileDescriptor_ws_44bd6efa690189ed, []int{22} } func (m *MemberQuitTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MemberQuitTips.Unmarshal(m, b) @@ -1841,7 +1841,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_551a30e7c7c24c98, []int{23} + return fileDescriptor_ws_44bd6efa690189ed, []int{23} } func (m *GroupApplicationAcceptedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupApplicationAcceptedTips.Unmarshal(m, b) @@ -1896,7 +1896,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_551a30e7c7c24c98, []int{24} + return fileDescriptor_ws_44bd6efa690189ed, []int{24} } func (m *GroupApplicationRejectedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupApplicationRejectedTips.Unmarshal(m, b) @@ -1952,7 +1952,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_551a30e7c7c24c98, []int{25} + return fileDescriptor_ws_44bd6efa690189ed, []int{25} } func (m *GroupOwnerTransferredTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupOwnerTransferredTips.Unmarshal(m, b) @@ -2015,7 +2015,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_551a30e7c7c24c98, []int{26} + return fileDescriptor_ws_44bd6efa690189ed, []int{26} } func (m *MemberKickedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MemberKickedTips.Unmarshal(m, b) @@ -2078,7 +2078,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_551a30e7c7c24c98, []int{27} + return fileDescriptor_ws_44bd6efa690189ed, []int{27} } func (m *MemberInvitedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MemberInvitedTips.Unmarshal(m, b) @@ -2140,7 +2140,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_551a30e7c7c24c98, []int{28} + return fileDescriptor_ws_44bd6efa690189ed, []int{28} } func (m *MemberEnterTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MemberEnterTips.Unmarshal(m, b) @@ -2194,7 +2194,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_551a30e7c7c24c98, []int{29} + return fileDescriptor_ws_44bd6efa690189ed, []int{29} } func (m *FriendApplication) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FriendApplication.Unmarshal(m, b) @@ -2247,7 +2247,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_551a30e7c7c24c98, []int{30} + return fileDescriptor_ws_44bd6efa690189ed, []int{30} } func (m *FromToUserID) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FromToUserID.Unmarshal(m, b) @@ -2293,7 +2293,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_551a30e7c7c24c98, []int{31} + return fileDescriptor_ws_44bd6efa690189ed, []int{31} } func (m *FriendApplicationTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FriendApplicationTips.Unmarshal(m, b) @@ -2333,7 +2333,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_551a30e7c7c24c98, []int{32} + return fileDescriptor_ws_44bd6efa690189ed, []int{32} } func (m *FriendApplicationApprovedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FriendApplicationApprovedTips.Unmarshal(m, b) @@ -2380,7 +2380,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_551a30e7c7c24c98, []int{33} + return fileDescriptor_ws_44bd6efa690189ed, []int{33} } func (m *FriendApplicationRejectedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FriendApplicationRejectedTips.Unmarshal(m, b) @@ -2428,7 +2428,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_551a30e7c7c24c98, []int{34} + return fileDescriptor_ws_44bd6efa690189ed, []int{34} } func (m *FriendAddedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FriendAddedTips.Unmarshal(m, b) @@ -2481,7 +2481,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_551a30e7c7c24c98, []int{35} + return fileDescriptor_ws_44bd6efa690189ed, []int{35} } func (m *FriendDeletedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FriendDeletedTips.Unmarshal(m, b) @@ -2519,7 +2519,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_551a30e7c7c24c98, []int{36} + return fileDescriptor_ws_44bd6efa690189ed, []int{36} } func (m *BlackAddedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_BlackAddedTips.Unmarshal(m, b) @@ -2557,7 +2557,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_551a30e7c7c24c98, []int{37} + return fileDescriptor_ws_44bd6efa690189ed, []int{37} } func (m *BlackDeletedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_BlackDeletedTips.Unmarshal(m, b) @@ -2595,7 +2595,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_551a30e7c7c24c98, []int{38} + return fileDescriptor_ws_44bd6efa690189ed, []int{38} } func (m *FriendInfoChangedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FriendInfoChangedTips.Unmarshal(m, b) @@ -2634,7 +2634,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_551a30e7c7c24c98, []int{39} + return fileDescriptor_ws_44bd6efa690189ed, []int{39} } func (m *UserInfoUpdatedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_UserInfoUpdatedTips.Unmarshal(m, b) @@ -2705,135 +2705,134 @@ func init() { proto.RegisterType((*UserInfoUpdatedTips)(nil), "server_api_params.UserInfoUpdatedTips") } -func init() { proto.RegisterFile("sdk_ws/ws.proto", fileDescriptor_ws_551a30e7c7c24c98) } +func init() { proto.RegisterFile("sdk_ws/ws.proto", fileDescriptor_ws_44bd6efa690189ed) } -var fileDescriptor_ws_551a30e7c7c24c98 = []byte{ - // 2019 bytes of a gzipped FileDescriptorProto +var fileDescriptor_ws_44bd6efa690189ed = []byte{ + // 2010 bytes of a gzipped FileDescriptorProto 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe4, 0x59, 0x4f, 0x6f, 0x23, 0x49, 0x15, 0x57, 0x77, 0xc7, 0x8e, 0xfd, 0x6c, 0xc7, 0x99, 0x9e, 0x65, 0x30, 0xc3, 0xec, 0x10, 0x5a, 0xab, 0x25, 0x42, 0x22, 0x48, 0x83, 0x90, 0x60, 0x10, 0xa0, 0xfc, 0x67, 0x96, 0x38, 0x09, 0x9d, 0x8c, 0x96, 0x03, 0xd2, 0xa8, 0xe3, 0x2e, 0x3b, 0xbd, 0x69, 0x57, 0xb5, 0xab, 0xbb, 0x33, 0x33, - 0x17, 0x0e, 0x70, 0xe1, 0x0b, 0xc0, 0x91, 0x03, 0x17, 0xc4, 0x05, 0x71, 0x41, 0xdc, 0x11, 0x5f, - 0x80, 0x33, 0x5f, 0x81, 0x2b, 0x07, 0x24, 0xa4, 0x45, 0xf5, 0xaa, 0xba, 0xbb, 0xaa, 0xed, 0x64, - 0xad, 0x28, 0xda, 0x41, 0xe2, 0xe6, 0xf7, 0xeb, 0x7a, 0xff, 0x5f, 0xbd, 0x7a, 0x55, 0x86, 0x7e, - 0x1a, 0x5e, 0xbd, 0x7a, 0x9d, 0x7e, 0xf3, 0x75, 0xba, 0x95, 0x70, 0x96, 0x31, 0xf7, 0x41, 0x4a, - 0xf8, 0x35, 0xe1, 0xaf, 0x82, 0x24, 0x7a, 0x95, 0x04, 0x3c, 0x98, 0xa6, 0xde, 0xbf, 0x6c, 0x68, - 0x1f, 0x72, 0x96, 0x27, 0x2f, 0xe8, 0x98, 0xb9, 0x03, 0x58, 0x9d, 0x20, 0xb1, 0x37, 0xb0, 0x36, - 0xac, 0xcd, 0xb6, 0x5f, 0x90, 0xee, 0x13, 0x68, 0xe3, 0xcf, 0xe3, 0x60, 0x4a, 0x06, 0x36, 0x7e, - 0xab, 0x00, 0xd7, 0x83, 0x2e, 0x65, 0x59, 0x34, 0x8e, 0x46, 0x41, 0x16, 0x31, 0x3a, 0x70, 0x70, - 0x81, 0x81, 0x89, 0x35, 0x11, 0xcd, 0x38, 0x0b, 0xf3, 0x11, 0xae, 0x59, 0x91, 0x6b, 0x74, 0x4c, - 0xe8, 0x1f, 0x07, 0x23, 0xf2, 0xd2, 0x3f, 0x1a, 0x34, 0xa4, 0x7e, 0x45, 0xba, 0x1b, 0xd0, 0x61, - 0xaf, 0x29, 0xe1, 0x2f, 0x53, 0xc2, 0x5f, 0xec, 0x0d, 0x9a, 0xf8, 0x55, 0x87, 0xdc, 0xa7, 0x00, - 0x23, 0x4e, 0x82, 0x8c, 0x9c, 0x47, 0x53, 0x32, 0x58, 0xdd, 0xb0, 0x36, 0x7b, 0xbe, 0x86, 0x08, - 0x09, 0x53, 0x32, 0xbd, 0x20, 0x7c, 0x97, 0xe5, 0x34, 0x1b, 0xb4, 0x70, 0x81, 0x0e, 0xb9, 0x6b, - 0x60, 0x93, 0x37, 0x83, 0x36, 0x8a, 0xb6, 0xc9, 0x1b, 0xf7, 0x11, 0x34, 0xd3, 0x2c, 0xc8, 0xf2, - 0x74, 0x00, 0x1b, 0xd6, 0x66, 0xc3, 0x57, 0x94, 0xfb, 0x01, 0xf4, 0x50, 0x2e, 0x2b, 0xac, 0xe9, - 0x20, 0x8b, 0x09, 0x96, 0x11, 0x3b, 0x7f, 0x9b, 0x90, 0x41, 0x17, 0x05, 0x54, 0x80, 0xf7, 0x17, - 0x1b, 0x1e, 0x62, 0xdc, 0x87, 0x68, 0xc0, 0x41, 0x1e, 0xc7, 0x9f, 0x91, 0x81, 0x47, 0xd0, 0xcc, - 0xa5, 0x3a, 0x19, 0x7e, 0x45, 0x09, 0x3d, 0x9c, 0xc5, 0xe4, 0x88, 0x5c, 0x93, 0x18, 0x03, 0xdf, - 0xf0, 0x2b, 0xc0, 0x7d, 0x0c, 0xad, 0x4f, 0x58, 0x44, 0x31, 0x26, 0x22, 0xe2, 0x8e, 0x5f, 0xd2, - 0xe2, 0x1b, 0x8d, 0x46, 0x57, 0x54, 0xa4, 0x54, 0x86, 0xbb, 0xa4, 0xf5, 0x4c, 0x34, 0xcd, 0x4c, - 0x7c, 0x08, 0x6b, 0x41, 0x92, 0x0c, 0x03, 0x3a, 0x21, 0x5c, 0x2a, 0x5d, 0x45, 0xa5, 0x35, 0x54, - 0xe4, 0x43, 0x68, 0x3a, 0x63, 0x39, 0x1f, 0x11, 0x0c, 0x77, 0xc3, 0xd7, 0x10, 0x21, 0x87, 0x25, - 0x84, 0x6b, 0x61, 0x94, 0x91, 0xaf, 0xa1, 0x2a, 0x2b, 0x50, 0x64, 0xc5, 0xfb, 0xad, 0x05, 0x6b, - 0xa7, 0xf9, 0x45, 0x1c, 0x8d, 0x70, 0x81, 0x08, 0x5a, 0x15, 0x1a, 0xcb, 0x08, 0x8d, 0xee, 0xa0, - 0x7d, 0xb3, 0x83, 0x8e, 0xe9, 0xe0, 0x23, 0x68, 0x4e, 0x08, 0x0d, 0x09, 0xc7, 0x80, 0x35, 0x7c, - 0x45, 0x2d, 0x70, 0xbc, 0xb1, 0xc8, 0x71, 0xef, 0x37, 0x36, 0xb4, 0x3e, 0x67, 0xd3, 0x36, 0xa0, - 0x93, 0x5c, 0x32, 0x4a, 0x8e, 0x73, 0x51, 0x4c, 0x2a, 0x99, 0x3a, 0xe4, 0xbe, 0x07, 0x8d, 0x8b, - 0x88, 0x67, 0x97, 0x98, 0xcd, 0x9e, 0x2f, 0x09, 0x81, 0x92, 0x69, 0x10, 0xc9, 0x14, 0xb6, 0x7d, - 0x49, 0xa8, 0x88, 0xb7, 0xca, 0x7d, 0x60, 0xee, 0xac, 0xf6, 0xdc, 0xce, 0x9a, 0x0f, 0x0c, 0x2c, - 0x0c, 0xcc, 0xbf, 0x2d, 0x80, 0x03, 0x1e, 0x11, 0x1a, 0x62, 0x68, 0x6a, 0x5b, 0xda, 0x9a, 0xdf, - 0xd2, 0x8f, 0xa0, 0xc9, 0xc9, 0x34, 0xe0, 0x57, 0x45, 0xc9, 0x4b, 0xaa, 0x66, 0x90, 0x33, 0x67, - 0xd0, 0xf7, 0x00, 0xc6, 0xa8, 0x47, 0xc8, 0xc1, 0x50, 0x75, 0x9e, 0x7d, 0x79, 0x6b, 0xae, 0xf9, - 0x6d, 0x15, 0x59, 0xf2, 0xb5, 0xe5, 0x62, 0x3f, 0x05, 0x61, 0xa8, 0xca, 0x56, 0x66, 0xb8, 0x02, - 0x16, 0x54, 0x6d, 0xf3, 0x96, 0xaa, 0x5d, 0x2d, 0xab, 0xf6, 0x9f, 0x16, 0xb4, 0x77, 0xe2, 0x60, - 0x74, 0xb5, 0xa4, 0xeb, 0xa6, 0x8b, 0xf6, 0x9c, 0x8b, 0x87, 0xd0, 0xbb, 0x10, 0xe2, 0x0a, 0x17, - 0x30, 0x0a, 0x9d, 0x67, 0x5f, 0x5d, 0xe0, 0xa5, 0xb9, 0x59, 0x7c, 0x93, 0xcf, 0x74, 0x77, 0xe5, - 0xb3, 0xdd, 0x6d, 0xdc, 0xe2, 0x6e, 0xb3, 0x74, 0xf7, 0xef, 0x36, 0x74, 0xb1, 0xbd, 0xf9, 0x64, - 0x96, 0x93, 0x34, 0x73, 0xbf, 0x0f, 0xad, 0xbc, 0x30, 0xd5, 0x5a, 0xd6, 0xd4, 0x92, 0xc5, 0x7d, - 0xae, 0x9a, 0x29, 0xf2, 0xdb, 0xc8, 0xff, 0x64, 0x01, 0x7f, 0x79, 0x92, 0xf9, 0xd5, 0x72, 0x71, - 0xf0, 0x5c, 0x06, 0x34, 0x8c, 0x89, 0x4f, 0xd2, 0x3c, 0xce, 0x8a, 0xc3, 0x49, 0xc7, 0x64, 0xa5, - 0xcd, 0x86, 0xe9, 0x44, 0x1d, 0x4b, 0x8a, 0x12, 0xd1, 0x91, 0xeb, 0xc4, 0x27, 0xe9, 0x7a, 0x05, - 0x88, 0x8d, 0xca, 0xc9, 0x0c, 0x33, 0x24, 0xb7, 0x55, 0x41, 0x56, 0x3a, 0x55, 0xd4, 0x56, 0x75, - 0x9d, 0x55, 0x8a, 0x25, 0x8d, 0x02, 0xe4, 0x79, 0xa4, 0x21, 0xf5, 0xe3, 0xc8, 0xfb, 0x87, 0x03, - 0x3d, 0xb9, 0x7d, 0x8a, 0xa0, 0x3e, 0x15, 0x75, 0xce, 0xa6, 0x46, 0x15, 0x69, 0x88, 0xb0, 0x42, - 0x50, 0xc7, 0x66, 0xa3, 0x31, 0x30, 0x51, 0x8a, 0x82, 0x3e, 0x30, 0x1a, 0x8e, 0x0e, 0x15, 0x5a, - 0x0e, 0xf5, 0xc6, 0xa3, 0x21, 0xa2, 0x95, 0x65, 0xcc, 0xa8, 0x8e, 0x92, 0x16, 0xbc, 0x19, 0x2b, - 0xf5, 0xcb, 0xfa, 0xd0, 0x10, 0x11, 0xdf, 0x8c, 0x15, 0xba, 0x65, 0x90, 0x2a, 0x40, 0x4a, 0x56, - 0x7a, 0xe5, 0x01, 0x52, 0xd2, 0x73, 0x59, 0x6d, 0xe3, 0xf7, 0x9b, 0xb2, 0x0a, 0x46, 0x56, 0xcd, - 0xcd, 0xd5, 0x99, 0xdb, 0x5c, 0x1f, 0x40, 0x4f, 0xca, 0x29, 0x8a, 0xbe, 0x2b, 0x0f, 0x78, 0x03, - 0x34, 0x6b, 0xa3, 0x57, 0xaf, 0x0d, 0x33, 0xbb, 0x6b, 0x37, 0x64, 0xb7, 0x5f, 0x66, 0xf7, 0x57, - 0x36, 0x0c, 0x4e, 0xf3, 0x38, 0x1e, 0x92, 0x34, 0x0d, 0x26, 0x64, 0xe7, 0xed, 0x19, 0x99, 0x1d, - 0x45, 0x69, 0xe6, 0x93, 0x34, 0x11, 0x85, 0x46, 0x38, 0xdf, 0x65, 0x21, 0xc1, 0x2c, 0x37, 0xfc, - 0x82, 0x14, 0x2e, 0x12, 0xce, 0x85, 0x05, 0xaa, 0x45, 0x4a, 0x4a, 0xe0, 0xd3, 0xe0, 0xcd, 0x19, - 0x99, 0x61, 0x46, 0x1d, 0x5f, 0x51, 0x88, 0x47, 0x54, 0xe0, 0x2b, 0x0a, 0x47, 0xca, 0xdd, 0x87, - 0x5e, 0x1a, 0xd1, 0x89, 0x2c, 0x4e, 0x59, 0xec, 0xce, 0x66, 0xe7, 0xd9, 0x57, 0x16, 0x6d, 0xb2, - 0x20, 0xbb, 0x24, 0xfc, 0x80, 0xf1, 0x69, 0x90, 0xf9, 0x26, 0x97, 0xbb, 0x0b, 0x5d, 0xdc, 0x78, - 0x85, 0x94, 0xe6, 0x72, 0x52, 0x0c, 0x26, 0x6f, 0x0a, 0x5f, 0x5c, 0x1c, 0x89, 0xd9, 0x8d, 0xc7, - 0xa9, 0x68, 0xa8, 0xd8, 0x91, 0x22, 0x46, 0xcb, 0x09, 0x49, 0x87, 0x44, 0x08, 0x53, 0x29, 0x67, - 0xe0, 0x6c, 0x38, 0x9b, 0x8e, 0x5f, 0x90, 0xde, 0xcf, 0xc5, 0x3c, 0x51, 0xaa, 0xbb, 0x4d, 0xcb, - 0x63, 0x68, 0xa5, 0x64, 0xb6, 0x43, 0x26, 0x11, 0x45, 0x15, 0x8e, 0x5f, 0xd2, 0x38, 0x2c, 0x92, - 0xd9, 0x3e, 0x0d, 0x8b, 0x80, 0x4b, 0xaa, 0x6e, 0xd9, 0xca, 0x9c, 0x65, 0xde, 0xa7, 0x16, 0xf4, - 0x0d, 0x03, 0xfe, 0xef, 0x12, 0xfe, 0x1e, 0xb8, 0x87, 0x24, 0x1b, 0x06, 0x6f, 0xb6, 0x69, 0x38, - 0x44, 0xf3, 0x7c, 0x32, 0xf3, 0xf6, 0xe1, 0xe1, 0x1c, 0x9a, 0x26, 0x9a, 0xa3, 0xd6, 0x0d, 0x8e, - 0xda, 0xba, 0xa3, 0xde, 0x31, 0x74, 0x75, 0xd5, 0x62, 0xe3, 0x45, 0xa1, 0x4a, 0xac, 0x1d, 0x85, - 0xee, 0x16, 0xac, 0xc4, 0xa2, 0x2a, 0x6c, 0xb4, 0xfc, 0xf1, 0x02, 0xcb, 0x87, 0xe9, 0x64, 0x2f, - 0xc8, 0x02, 0x1f, 0xd7, 0x79, 0x33, 0xe8, 0x0b, 0xbb, 0xcf, 0x08, 0x0d, 0x87, 0xe9, 0x04, 0x4d, - 0xda, 0x80, 0x8e, 0xe4, 0x1a, 0xa6, 0x93, 0xea, 0x38, 0xd7, 0x20, 0xb1, 0x62, 0x14, 0x47, 0x84, - 0x66, 0x72, 0x85, 0xaa, 0x4f, 0x0d, 0x92, 0xb5, 0x45, 0xc3, 0x72, 0xa2, 0xc1, 0xda, 0x92, 0xb4, - 0xf7, 0xd7, 0x06, 0xac, 0x2a, 0x23, 0x64, 0x9d, 0xd1, 0xb0, 0xaa, 0x4d, 0x49, 0xc9, 0x5e, 0x37, - 0xba, 0xae, 0xae, 0x07, 0x92, 0xd2, 0x2f, 0x14, 0x8e, 0x79, 0xa1, 0xa8, 0xd9, 0xb4, 0x32, 0x6f, - 0x53, 0xcd, 0xaf, 0xc6, 0xbc, 0x5f, 0x5f, 0x87, 0xf5, 0x14, 0xfb, 0xf1, 0x69, 0x1c, 0x64, 0x63, - 0xc6, 0xa7, 0x6a, 0x20, 0x6a, 0xf8, 0x73, 0xb8, 0x98, 0x25, 0x24, 0x56, 0x9e, 0x07, 0xb2, 0xe1, - 0xd7, 0x50, 0xd1, 0x7d, 0x25, 0x52, 0x9c, 0x0b, 0x72, 0x12, 0x35, 0x41, 0x69, 0x5b, 0x9a, 0x46, - 0x8c, 0xe2, 0x05, 0x4b, 0xb6, 0x7f, 0x1d, 0x12, 0x9e, 0x4f, 0xd3, 0xc9, 0x01, 0x67, 0x53, 0x35, - 0x8f, 0x16, 0x24, 0x7a, 0xce, 0x68, 0x46, 0x68, 0x86, 0xbc, 0x1d, 0xc9, 0xab, 0x41, 0x82, 0x57, - 0x91, 0xd8, 0xfb, 0xbb, 0x7e, 0x41, 0x8a, 0xae, 0x3f, 0x66, 0x7c, 0x44, 0xb0, 0x93, 0xf4, 0x36, - 0x1c, 0xd1, 0xf5, 0x4b, 0xc0, 0x5d, 0x07, 0x27, 0x25, 0x33, 0x6c, 0xf7, 0x8e, 0x2f, 0x7e, 0x1a, - 0x79, 0xed, 0x9b, 0x79, 0xad, 0x9d, 0x43, 0xeb, 0xf8, 0x55, 0x3f, 0x87, 0xb6, 0x61, 0x95, 0x25, - 0xa2, 0x4b, 0xa4, 0x83, 0x07, 0x58, 0x9d, 0x5f, 0xbb, 0xb9, 0x3a, 0xb7, 0x4e, 0xe4, 0xca, 0x7d, - 0x9a, 0xf1, 0xb7, 0x7e, 0xc1, 0xe7, 0x1e, 0x41, 0x9f, 0x8d, 0xc7, 0x71, 0x44, 0xc9, 0x69, 0x9e, - 0x5e, 0xe2, 0xf8, 0xe4, 0xe2, 0xf8, 0xe4, 0x2d, 0x10, 0x75, 0x62, 0xae, 0xf4, 0xeb, 0xac, 0x8f, - 0x9f, 0x43, 0x57, 0x57, 0x23, 0xdc, 0xbd, 0x22, 0x6f, 0x55, 0x25, 0x8a, 0x9f, 0xe2, 0x46, 0x71, - 0x1d, 0xc4, 0xb9, 0x9c, 0x35, 0x5a, 0xbe, 0x24, 0x9e, 0xdb, 0xdf, 0xb1, 0xbc, 0x5f, 0x5b, 0xd0, - 0xaf, 0x29, 0x10, 0xab, 0xb3, 0x28, 0x8b, 0x89, 0x92, 0x20, 0x09, 0xd7, 0x85, 0x95, 0x90, 0xa4, - 0x23, 0x55, 0xc8, 0xf8, 0x5b, 0x1d, 0x97, 0x4e, 0x79, 0x27, 0xf1, 0xa0, 0x1b, 0x9d, 0x9c, 0x09, - 0x41, 0x67, 0x2c, 0xa7, 0x61, 0xf9, 0x9a, 0xa0, 0x61, 0xa2, 0x90, 0xa2, 0x93, 0xb3, 0x9d, 0x20, - 0x9c, 0x10, 0x79, 0xe7, 0x6f, 0xa0, 0x4d, 0x26, 0xe8, 0xed, 0x41, 0xeb, 0x3c, 0x4a, 0xd2, 0x5d, - 0x36, 0x9d, 0x8a, 0x4d, 0x14, 0x92, 0x4c, 0x5c, 0x88, 0x2c, 0xcc, 0xba, 0xa2, 0x44, 0xc1, 0x84, - 0x64, 0x1c, 0xe4, 0x71, 0x26, 0x96, 0x16, 0xdb, 0x57, 0x83, 0xbc, 0xbf, 0xd9, 0xb0, 0x8e, 0xd3, - 0xe7, 0x2e, 0xa6, 0x2f, 0x14, 0xa0, 0xfb, 0x0c, 0x1a, 0xb8, 0xd9, 0xd4, 0xc4, 0x7b, 0xfb, 0xc4, - 0x2a, 0x97, 0xba, 0x3f, 0x80, 0x26, 0xc3, 0xc6, 0xa8, 0xc6, 0xdc, 0x0f, 0x6f, 0x62, 0x32, 0x1f, - 0x0e, 0x7c, 0xc5, 0xe5, 0x1e, 0x00, 0xc8, 0x37, 0x8d, 0xf2, 0xa8, 0x5b, 0x5e, 0x86, 0xc6, 0x29, - 0x82, 0x57, 0x1e, 0x52, 0xda, 0xeb, 0x81, 0x09, 0xba, 0xc7, 0xb0, 0x86, 0x66, 0x9f, 0x14, 0x57, - 0x17, 0x8c, 0xf1, 0xf2, 0x1a, 0x6b, 0xdc, 0xde, 0xef, 0x2c, 0x15, 0x46, 0xf1, 0xf5, 0x8c, 0x60, - 0x6c, 0xb5, 0x90, 0x58, 0x77, 0x0a, 0xc9, 0x63, 0x68, 0x4d, 0x73, 0xed, 0x26, 0xe5, 0xf8, 0x25, - 0x5d, 0xa5, 0xc8, 0x59, 0x3a, 0x45, 0xde, 0xef, 0x2d, 0x18, 0x7c, 0xc4, 0x22, 0x8a, 0x1f, 0xb6, - 0x93, 0x24, 0x56, 0x4f, 0x5c, 0x77, 0xce, 0xf9, 0x0f, 0xa1, 0x1d, 0x48, 0x31, 0x34, 0x53, 0x69, - 0x5f, 0xe2, 0x76, 0x54, 0xf1, 0x68, 0x83, 0xae, 0xa3, 0x0f, 0xba, 0xde, 0x1f, 0x2d, 0x58, 0x93, - 0x41, 0xf9, 0x49, 0x1e, 0x65, 0x77, 0xb6, 0x6f, 0x07, 0x5a, 0xb3, 0x3c, 0xca, 0xee, 0x50, 0x95, - 0x25, 0xdf, 0x7c, 0x3d, 0x39, 0x0b, 0xea, 0xc9, 0xfb, 0x93, 0x05, 0x4f, 0xea, 0x61, 0xdd, 0x1e, - 0x8d, 0x48, 0xf2, 0x2e, 0xb7, 0x94, 0x31, 0xe8, 0xaf, 0xd4, 0x06, 0xfd, 0x85, 0x26, 0xfb, 0xe4, - 0x13, 0x32, 0xfa, 0xdf, 0x35, 0xf9, 0x97, 0x36, 0x7c, 0xe9, 0xb0, 0xdc, 0x78, 0xe7, 0x3c, 0xa0, - 0xe9, 0x98, 0x70, 0xfe, 0x0e, 0xed, 0x3d, 0x82, 0x1e, 0x25, 0xaf, 0x2b, 0x9b, 0xd4, 0x76, 0x5c, - 0x56, 0x8c, 0xc9, 0xbc, 0x5c, 0xef, 0xf2, 0xfe, 0x63, 0xc1, 0xba, 0x94, 0xf3, 0xe3, 0x68, 0x74, - 0xf5, 0x0e, 0x9d, 0x3f, 0x86, 0xb5, 0x2b, 0xb4, 0x40, 0x50, 0x77, 0x68, 0xdb, 0x35, 0xee, 0x25, - 0xdd, 0xff, 0xd4, 0x82, 0x07, 0x52, 0xd0, 0x0b, 0x7a, 0x1d, 0xbd, 0xcb, 0x62, 0x3d, 0x85, 0x7e, - 0x24, 0x4d, 0xb8, 0x63, 0x00, 0xea, 0xec, 0x4b, 0x46, 0xe0, 0xcf, 0x16, 0xf4, 0xa5, 0xa4, 0x7d, - 0x9a, 0x11, 0x7e, 0x67, 0xff, 0x7f, 0x04, 0x1d, 0x42, 0x33, 0x1e, 0xd0, 0xbb, 0x74, 0x48, 0x9d, - 0x75, 0xc9, 0x26, 0x79, 0x05, 0x0f, 0xe4, 0x3b, 0x90, 0xd6, 0x71, 0xc4, 0xc4, 0x1a, 0x84, 0x72, - 0xcc, 0x94, 0xf7, 0xa2, 0x82, 0x34, 0x5f, 0xf8, 0xd4, 0x5f, 0x37, 0xd5, 0x0b, 0xdf, 0x53, 0x80, - 0x20, 0x0c, 0x3f, 0x66, 0x3c, 0x8c, 0x68, 0x71, 0x7c, 0x68, 0x88, 0xf7, 0x11, 0x74, 0xc5, 0xcc, - 0x7c, 0xae, 0xbd, 0xe8, 0xdc, 0xfa, 0xe6, 0xa4, 0xbf, 0x06, 0xd9, 0xe6, 0x6b, 0x90, 0xf7, 0x33, - 0xf8, 0xc2, 0x9c, 0xe1, 0x18, 0xf5, 0x5d, 0xf9, 0x50, 0x55, 0x28, 0x51, 0xc1, 0x5f, 0x74, 0x8b, - 0xd4, 0x6d, 0xf1, 0x0d, 0x26, 0xef, 0x17, 0x16, 0xbc, 0x3f, 0x27, 0x7e, 0x3b, 0x49, 0x38, 0xbb, - 0x56, 0xc5, 0x7d, 0x1f, 0x6a, 0xcc, 0xd6, 0x6a, 0xd7, 0x5b, 0xeb, 0x42, 0x23, 0x8c, 0xe3, 0xe0, - 0x73, 0x30, 0xe2, 0x0f, 0x16, 0xf4, 0x95, 0x11, 0x61, 0xa8, 0xd4, 0x7e, 0x1b, 0x9a, 0xf2, 0x91, - 0x5b, 0x29, 0x7c, 0x7f, 0xa1, 0xc2, 0xe2, 0x71, 0xde, 0x57, 0x8b, 0xe7, 0x2b, 0xd2, 0x5e, 0x34, - 0x06, 0x7e, 0xb7, 0xec, 0x00, 0x4b, 0x3f, 0x43, 0x2b, 0x06, 0xef, 0xa7, 0x45, 0x31, 0xef, 0x91, - 0x98, 0xdc, 0x67, 0x8c, 0xbc, 0x97, 0xb0, 0x86, 0x2f, 0xee, 0x55, 0x0c, 0xee, 0x45, 0xec, 0xc7, - 0xb0, 0x8e, 0x62, 0xef, 0xdd, 0xde, 0x72, 0x77, 0x88, 0xf8, 0xec, 0x5e, 0x06, 0x74, 0x72, 0x9f, - 0xd2, 0xbf, 0x01, 0x0f, 0x8b, 0xd8, 0xbf, 0x4c, 0xc2, 0xf2, 0x8a, 0x72, 0xc3, 0x53, 0xd7, 0x45, - 0x13, 0xff, 0x31, 0xfe, 0xd6, 0x7f, 0x03, 0x00, 0x00, 0xff, 0xff, 0x10, 0x4c, 0x40, 0x71, 0x44, - 0x1e, 0x00, 0x00, + 0x17, 0x0e, 0x70, 0xe1, 0x0b, 0xc0, 0x91, 0x03, 0x17, 0xc4, 0x05, 0x71, 0x41, 0x5c, 0x38, 0xf2, + 0x05, 0x38, 0xf3, 0x15, 0xb8, 0x72, 0x40, 0x42, 0x5a, 0x54, 0xaf, 0xaa, 0xbb, 0xab, 0xda, 0x4e, + 0xd6, 0x8a, 0xa2, 0x1d, 0x24, 0x6e, 0x7e, 0xbf, 0xae, 0xf7, 0xff, 0xd5, 0xab, 0x57, 0x65, 0xe8, + 0xa7, 0xe1, 0xd5, 0xab, 0xd7, 0xe9, 0x37, 0x5f, 0xa7, 0x5b, 0x09, 0x67, 0x19, 0x73, 0x1f, 0xa4, + 0x84, 0x5f, 0x13, 0xfe, 0x2a, 0x48, 0xa2, 0x57, 0x49, 0xc0, 0x83, 0x69, 0xea, 0xfd, 0xcb, 0x86, + 0xf6, 0x21, 0x67, 0x79, 0xf2, 0x82, 0x8e, 0x99, 0x3b, 0x80, 0xd5, 0x09, 0x12, 0x7b, 0x03, 0x6b, + 0xc3, 0xda, 0x6c, 0xfb, 0x05, 0xe9, 0x3e, 0x81, 0x36, 0xfe, 0x3c, 0x0e, 0xa6, 0x64, 0x60, 0xe3, + 0xb7, 0x0a, 0x70, 0x3d, 0xe8, 0x52, 0x96, 0x45, 0xe3, 0x68, 0x14, 0x64, 0x11, 0xa3, 0x03, 0x07, + 0x17, 0x18, 0x98, 0x58, 0x13, 0xd1, 0x8c, 0xb3, 0x30, 0x1f, 0xe1, 0x9a, 0x15, 0xb9, 0x46, 0xc7, + 0x84, 0xfe, 0x71, 0x30, 0x22, 0x2f, 0xfd, 0xa3, 0x41, 0x43, 0xea, 0x57, 0xa4, 0xbb, 0x01, 0x1d, + 0xf6, 0x9a, 0x12, 0xfe, 0x32, 0x25, 0xfc, 0xc5, 0xde, 0xa0, 0x89, 0x5f, 0x75, 0xc8, 0x7d, 0x0a, + 0x30, 0xe2, 0x24, 0xc8, 0xc8, 0x79, 0x34, 0x25, 0x83, 0xd5, 0x0d, 0x6b, 0xb3, 0xe7, 0x6b, 0x88, + 0x90, 0x30, 0x25, 0xd3, 0x0b, 0xc2, 0x77, 0x59, 0x4e, 0xb3, 0x41, 0x0b, 0x17, 0xe8, 0x90, 0xbb, + 0x06, 0x36, 0x79, 0x33, 0x68, 0xa3, 0x68, 0x9b, 0xbc, 0x71, 0x1f, 0x41, 0x33, 0xcd, 0x82, 0x2c, + 0x4f, 0x07, 0xb0, 0x61, 0x6d, 0x36, 0x7c, 0x45, 0xb9, 0x1f, 0x40, 0x0f, 0xe5, 0xb2, 0xc2, 0x9a, + 0x0e, 0xb2, 0x98, 0x60, 0x19, 0xb1, 0xf3, 0xb7, 0x09, 0x19, 0x74, 0x51, 0x40, 0x05, 0x78, 0x7f, + 0xb1, 0xe1, 0x21, 0xc6, 0x7d, 0x88, 0x06, 0x1c, 0xe4, 0x71, 0xfc, 0x19, 0x19, 0x78, 0x04, 0xcd, + 0x5c, 0xaa, 0x93, 0xe1, 0x57, 0x94, 0xd0, 0xc3, 0x59, 0x4c, 0x8e, 0xc8, 0x35, 0x89, 0x31, 0xf0, + 0x0d, 0xbf, 0x02, 0xdc, 0xc7, 0xd0, 0xfa, 0x84, 0x45, 0x14, 0x63, 0x22, 0x22, 0xee, 0xf8, 0x25, + 0x2d, 0xbe, 0xd1, 0x68, 0x74, 0x45, 0x45, 0x4a, 0x65, 0xb8, 0x4b, 0x5a, 0xcf, 0x44, 0xd3, 0xcc, + 0xc4, 0x87, 0xb0, 0x16, 0x24, 0xc9, 0x30, 0xa0, 0x13, 0xc2, 0xa5, 0xd2, 0x55, 0x54, 0x5a, 0x43, + 0x45, 0x3e, 0x84, 0xa6, 0x33, 0x96, 0xf3, 0x11, 0xc1, 0x70, 0x37, 0x7c, 0x0d, 0x11, 0x72, 0x58, + 0x42, 0xb8, 0x16, 0x46, 0x19, 0xf9, 0x1a, 0xaa, 0xb2, 0x02, 0x45, 0x56, 0xbc, 0xdf, 0x5a, 0xb0, + 0x76, 0x9a, 0x5f, 0xc4, 0xd1, 0x08, 0x17, 0x88, 0xa0, 0x55, 0xa1, 0xb1, 0x8c, 0xd0, 0xe8, 0x0e, + 0xda, 0x37, 0x3b, 0xe8, 0x98, 0x0e, 0x3e, 0x82, 0xe6, 0x84, 0xd0, 0x90, 0x70, 0x0c, 0x58, 0xc3, + 0x57, 0xd4, 0x02, 0xc7, 0x1b, 0x8b, 0x1c, 0xf7, 0x7e, 0x63, 0x43, 0xeb, 0x73, 0x36, 0x6d, 0x03, + 0x3a, 0xc9, 0x25, 0xa3, 0xe4, 0x38, 0x17, 0xc5, 0xa4, 0x92, 0xa9, 0x43, 0xee, 0x7b, 0xd0, 0xb8, + 0x88, 0x78, 0x76, 0x89, 0xd9, 0xec, 0xf9, 0x92, 0x10, 0x28, 0x99, 0x06, 0x91, 0x4c, 0x61, 0xdb, + 0x97, 0x84, 0x8a, 0x78, 0xab, 0xdc, 0x07, 0xe6, 0xce, 0x6a, 0xcf, 0xed, 0xac, 0xf9, 0xc0, 0xc0, + 0xc2, 0xc0, 0xfc, 0xdb, 0x02, 0x38, 0xe0, 0x11, 0xa1, 0x21, 0x86, 0xa6, 0xb6, 0xa5, 0xad, 0xf9, + 0x2d, 0xfd, 0x08, 0x9a, 0x9c, 0x4c, 0x03, 0x7e, 0x55, 0x94, 0xbc, 0xa4, 0x6a, 0x06, 0x39, 0x73, + 0x06, 0x7d, 0x0f, 0x60, 0x8c, 0x7a, 0x84, 0x1c, 0x0c, 0x55, 0xe7, 0xd9, 0x97, 0xb7, 0xe6, 0x9a, + 0xdf, 0x56, 0x91, 0x25, 0x5f, 0x5b, 0x2e, 0xf6, 0x53, 0x10, 0x86, 0xaa, 0x6c, 0x65, 0x86, 0x2b, + 0x60, 0x41, 0xd5, 0x36, 0x6f, 0xa9, 0xda, 0xd5, 0xb2, 0x6a, 0xff, 0x69, 0x41, 0x7b, 0x27, 0x0e, + 0x46, 0x57, 0x4b, 0xba, 0x6e, 0xba, 0x68, 0xcf, 0xb9, 0x78, 0x08, 0xbd, 0x0b, 0x21, 0xae, 0x70, + 0x01, 0xa3, 0xd0, 0x79, 0xf6, 0xd5, 0x05, 0x5e, 0x9a, 0x9b, 0xc5, 0x37, 0xf9, 0x4c, 0x77, 0x57, + 0x3e, 0xdb, 0xdd, 0xc6, 0x2d, 0xee, 0x36, 0x4b, 0x77, 0xff, 0x6e, 0x43, 0x17, 0xdb, 0x9b, 0x4f, + 0x66, 0x39, 0x49, 0x33, 0xf7, 0xfb, 0xd0, 0xca, 0x0b, 0x53, 0xad, 0x65, 0x4d, 0x2d, 0x59, 0xdc, + 0xe7, 0xaa, 0x99, 0x22, 0xbf, 0x8d, 0xfc, 0x4f, 0x16, 0xf0, 0x97, 0x27, 0x99, 0x5f, 0x2d, 0x17, + 0x07, 0xcf, 0x65, 0x40, 0xc3, 0x98, 0xf8, 0x24, 0xcd, 0xe3, 0x4c, 0xf5, 0x48, 0x03, 0x93, 0x95, + 0x36, 0x1b, 0xa6, 0x13, 0x75, 0x2c, 0x29, 0x4a, 0x44, 0x47, 0xae, 0x13, 0x9f, 0xa4, 0xeb, 0x15, + 0x20, 0x36, 0x2a, 0x27, 0x33, 0xcc, 0x90, 0xdc, 0x56, 0x05, 0x59, 0xe9, 0x54, 0x51, 0x93, 0x85, + 0x60, 0x60, 0x22, 0xc5, 0x92, 0x46, 0x01, 0xf2, 0x3c, 0xd2, 0x90, 0xfa, 0x71, 0xe4, 0xfd, 0xc3, + 0x81, 0x9e, 0xdc, 0x3e, 0x45, 0x50, 0x9f, 0x8a, 0x3a, 0x67, 0x53, 0xa3, 0x8a, 0x34, 0x44, 0x58, + 0x21, 0xa8, 0x63, 0xb3, 0xd1, 0x18, 0x98, 0x28, 0x45, 0x41, 0x1f, 0x18, 0x0d, 0x47, 0x87, 0x0a, + 0x2d, 0x87, 0x7a, 0xe3, 0xd1, 0x10, 0xd1, 0xca, 0x32, 0x66, 0x54, 0x47, 0x49, 0x0b, 0xde, 0x8c, + 0x95, 0xfa, 0x65, 0x7d, 0x68, 0x88, 0x88, 0x6f, 0xc6, 0x0a, 0xdd, 0x32, 0x48, 0x15, 0x20, 0x25, + 0x2b, 0xbd, 0xf2, 0x00, 0x29, 0xe9, 0xb9, 0xac, 0xb6, 0x6f, 0xcd, 0x2a, 0x18, 0x59, 0x35, 0x37, + 0x57, 0x67, 0x6e, 0x73, 0x7d, 0x00, 0x3d, 0x29, 0xa7, 0x28, 0xfa, 0xae, 0x3c, 0xe0, 0x0d, 0xd0, + 0xac, 0x8d, 0x5e, 0xbd, 0x36, 0xcc, 0xec, 0xae, 0xdd, 0x90, 0xdd, 0x7e, 0x99, 0xdd, 0x5f, 0xd9, + 0x30, 0x38, 0xcd, 0xe3, 0x78, 0x48, 0xd2, 0x34, 0x98, 0x90, 0x9d, 0xb7, 0x67, 0x64, 0x76, 0x14, + 0xa5, 0x99, 0x4f, 0xd2, 0x44, 0x14, 0x1a, 0xe1, 0x7c, 0x97, 0x85, 0x04, 0xb3, 0xdc, 0xf0, 0x0b, + 0x52, 0xb8, 0x48, 0x38, 0x17, 0x16, 0xa8, 0x16, 0x29, 0x29, 0x81, 0x4f, 0x83, 0x37, 0x67, 0x64, + 0x86, 0x19, 0x75, 0x7c, 0x45, 0x21, 0x1e, 0x51, 0x81, 0xaf, 0x28, 0x1c, 0x29, 0x77, 0x1f, 0x7a, + 0x69, 0x44, 0x27, 0xb2, 0x38, 0x65, 0xb1, 0x3b, 0x9b, 0x9d, 0x67, 0x5f, 0x59, 0xb4, 0xc9, 0x82, + 0xec, 0x92, 0xf0, 0x03, 0xc6, 0xa7, 0x41, 0xe6, 0x9b, 0x5c, 0xee, 0x2e, 0x74, 0x71, 0xe3, 0x15, + 0x52, 0x9a, 0xcb, 0x49, 0x31, 0x98, 0xbc, 0x29, 0x7c, 0x71, 0x71, 0x24, 0x66, 0x37, 0x1e, 0xa7, + 0xa2, 0xa1, 0x62, 0x47, 0x8a, 0x18, 0x2d, 0x27, 0x24, 0x1d, 0x12, 0x21, 0x4c, 0xa5, 0x9c, 0x81, + 0xb3, 0xe1, 0x6c, 0x3a, 0x7e, 0x41, 0x7a, 0x3f, 0x17, 0xf3, 0x44, 0xa9, 0xee, 0x36, 0x2d, 0x8f, + 0xa1, 0x95, 0x92, 0xd9, 0x0e, 0x99, 0x44, 0x14, 0x55, 0x38, 0x7e, 0x49, 0xe3, 0xb0, 0x48, 0x66, + 0xfb, 0x34, 0x2c, 0x02, 0x2e, 0xa9, 0xba, 0x65, 0x2b, 0x73, 0x96, 0x79, 0x9f, 0x5a, 0xd0, 0x37, + 0x0c, 0xf8, 0xbf, 0x4b, 0xf8, 0x7b, 0xe0, 0x1e, 0x92, 0x6c, 0x18, 0xbc, 0xd9, 0xa6, 0xe1, 0x10, + 0xcd, 0xf3, 0xc9, 0xcc, 0xdb, 0x87, 0x87, 0x73, 0x68, 0x9a, 0x68, 0x8e, 0x5a, 0x37, 0x38, 0x6a, + 0xeb, 0x8e, 0x7a, 0xc7, 0xd0, 0xd5, 0x55, 0x8b, 0x8d, 0x17, 0x85, 0x2a, 0xb1, 0x76, 0x14, 0xba, + 0x5b, 0xb0, 0x12, 0x8b, 0xaa, 0xb0, 0xd1, 0xf2, 0xc7, 0x0b, 0x2c, 0x1f, 0xa6, 0x93, 0xbd, 0x20, + 0x0b, 0x7c, 0x5c, 0xe7, 0xcd, 0xa0, 0x2f, 0xec, 0x3e, 0x23, 0x34, 0x1c, 0xa6, 0x13, 0x34, 0x69, + 0x03, 0x3a, 0x92, 0x6b, 0x98, 0x4e, 0xaa, 0xe3, 0x5c, 0x83, 0xc4, 0x8a, 0x51, 0x1c, 0x11, 0x9a, + 0xc9, 0x15, 0xaa, 0x3e, 0x35, 0x48, 0xd6, 0x16, 0x0d, 0xcb, 0x89, 0x06, 0x6b, 0x4b, 0xd2, 0xde, + 0x5f, 0x1b, 0xb0, 0xaa, 0x8c, 0x90, 0x75, 0x46, 0xc3, 0xaa, 0x36, 0x25, 0x25, 0x7b, 0xdd, 0xe8, + 0xba, 0xba, 0x1e, 0x48, 0x4a, 0xbf, 0x50, 0x38, 0xe6, 0x85, 0xa2, 0x66, 0xd3, 0xca, 0xbc, 0x4d, + 0x35, 0xbf, 0x1a, 0xf3, 0x7e, 0x7d, 0x1d, 0xd6, 0x53, 0xec, 0xc7, 0xa7, 0x71, 0x90, 0x8d, 0x19, + 0x9f, 0xaa, 0x81, 0xa8, 0xe1, 0xcf, 0xe1, 0x62, 0x96, 0x90, 0x58, 0x79, 0x1e, 0xc8, 0x86, 0x5f, + 0x43, 0x45, 0xf7, 0x95, 0x48, 0x71, 0x2e, 0xc8, 0x49, 0xd4, 0x04, 0xa5, 0x6d, 0x69, 0x1a, 0x31, + 0x8a, 0x17, 0x2c, 0xd9, 0xfe, 0x75, 0x48, 0x78, 0x3e, 0x4d, 0x27, 0x07, 0x9c, 0x4d, 0xd5, 0x3c, + 0x5a, 0x90, 0xe8, 0x39, 0xa3, 0x19, 0xa1, 0x19, 0xf2, 0x76, 0x24, 0xaf, 0x06, 0x09, 0x5e, 0x45, + 0x62, 0xef, 0xef, 0xfa, 0x05, 0xe9, 0xae, 0x83, 0x93, 0x92, 0x19, 0x36, 0x74, 0xc7, 0x17, 0x3f, + 0x8d, 0xcc, 0xf5, 0xcd, 0xcc, 0xd5, 0x4e, 0x9a, 0x75, 0xfc, 0xaa, 0x9f, 0x34, 0xd5, 0x15, 0xf3, + 0x81, 0x71, 0xc5, 0xdc, 0x86, 0x55, 0x96, 0x88, 0xfe, 0x90, 0x0e, 0x5c, 0xac, 0xcb, 0xaf, 0xdd, + 0x5c, 0x97, 0x5b, 0x27, 0x72, 0xe5, 0x3e, 0xcd, 0xf8, 0x5b, 0xbf, 0xe0, 0x73, 0x8f, 0xa0, 0xcf, + 0xc6, 0xe3, 0x38, 0xa2, 0xe4, 0x34, 0x4f, 0x2f, 0x71, 0x70, 0x7a, 0x88, 0x83, 0x93, 0xb7, 0x40, + 0xd4, 0x89, 0xb9, 0xd2, 0xaf, 0xb3, 0x3e, 0x7e, 0x0e, 0x5d, 0x5d, 0x8d, 0x08, 0xc3, 0x15, 0x79, + 0xab, 0x6a, 0x50, 0xfc, 0x14, 0x77, 0x89, 0xeb, 0x20, 0xce, 0xe5, 0x94, 0xd1, 0xf2, 0x25, 0xf1, + 0xdc, 0xfe, 0x8e, 0xe5, 0xfd, 0xda, 0x82, 0x7e, 0x4d, 0x81, 0x58, 0x9d, 0x45, 0x59, 0x4c, 0x94, + 0x04, 0x49, 0xb8, 0x2e, 0xac, 0x84, 0x24, 0x1d, 0xa9, 0x12, 0xc6, 0xdf, 0xea, 0xa0, 0x74, 0xca, + 0xdb, 0x88, 0x07, 0xdd, 0xe8, 0xe4, 0x4c, 0x08, 0x3a, 0x63, 0x39, 0x0d, 0xcb, 0x77, 0x04, 0x0d, + 0x13, 0x25, 0x14, 0x9d, 0x9c, 0xed, 0x04, 0xe1, 0x84, 0xc8, 0xdb, 0x7e, 0x03, 0x6d, 0x32, 0x41, + 0x6f, 0x0f, 0x5a, 0xe7, 0x51, 0x92, 0xee, 0xb2, 0xe9, 0x54, 0x24, 0x22, 0x24, 0x99, 0xb8, 0x0a, + 0x59, 0x98, 0x6f, 0x45, 0x89, 0x52, 0x09, 0xc9, 0x38, 0xc8, 0xe3, 0x4c, 0x2c, 0x2d, 0x36, 0xae, + 0x06, 0x79, 0x7f, 0xb3, 0x61, 0x1d, 0xe7, 0xce, 0x5d, 0x4c, 0x6b, 0x28, 0x40, 0xf7, 0x19, 0x34, + 0x70, 0x9b, 0xa9, 0x59, 0xf7, 0xf6, 0x59, 0x55, 0x2e, 0x75, 0x7f, 0x00, 0x4d, 0x86, 0x2d, 0x51, + 0x0d, 0xb8, 0x1f, 0xde, 0xc4, 0x64, 0x3e, 0x19, 0xf8, 0x8a, 0xcb, 0x3d, 0x00, 0x90, 0xaf, 0x19, + 0xe5, 0x21, 0xb7, 0xbc, 0x0c, 0x8d, 0x53, 0x04, 0xaf, 0x3c, 0x9e, 0xb4, 0x77, 0x03, 0x13, 0x74, + 0x8f, 0x61, 0x0d, 0xcd, 0x3e, 0x29, 0x2e, 0x2d, 0x18, 0xe3, 0xe5, 0x35, 0xd6, 0xb8, 0xbd, 0xdf, + 0x59, 0x2a, 0x8c, 0xe2, 0xeb, 0x19, 0xc1, 0xd8, 0x6a, 0x21, 0xb1, 0xee, 0x14, 0x92, 0xc7, 0xd0, + 0x9a, 0xe6, 0xda, 0x1d, 0xca, 0xf1, 0x4b, 0xba, 0x4a, 0x91, 0xb3, 0x74, 0x8a, 0xbc, 0xdf, 0x5b, + 0x30, 0xf8, 0x88, 0x45, 0x14, 0x3f, 0x6c, 0x27, 0x49, 0xac, 0x1e, 0xb7, 0xee, 0x9c, 0xf3, 0x1f, + 0x42, 0x3b, 0x90, 0x62, 0x68, 0xa6, 0xd2, 0xbe, 0xc4, 0xbd, 0xa8, 0xe2, 0xd1, 0x46, 0x5c, 0x47, + 0x1f, 0x71, 0xbd, 0x3f, 0x5a, 0xb0, 0x26, 0x83, 0xf2, 0x93, 0x3c, 0xca, 0xee, 0x6c, 0xdf, 0x0e, + 0xb4, 0x66, 0x79, 0x94, 0xdd, 0xa1, 0x2a, 0x4b, 0xbe, 0xf9, 0x7a, 0x72, 0x16, 0xd4, 0x93, 0xf7, + 0x27, 0x0b, 0x9e, 0xd4, 0xc3, 0xba, 0x3d, 0x1a, 0x91, 0xe4, 0x5d, 0x6e, 0x29, 0x63, 0xc4, 0x5f, + 0xa9, 0x8d, 0xf8, 0x0b, 0x4d, 0xf6, 0xc9, 0x27, 0x64, 0xf4, 0xbf, 0x6b, 0xf2, 0x2f, 0x6d, 0xf8, + 0xd2, 0x61, 0xb9, 0xf1, 0xce, 0x79, 0x40, 0xd3, 0x31, 0xe1, 0xfc, 0x1d, 0xda, 0x7b, 0x04, 0x3d, + 0x4a, 0x5e, 0x57, 0x36, 0xa9, 0xed, 0xb8, 0xac, 0x18, 0x93, 0x79, 0xb9, 0xde, 0xe5, 0xfd, 0xc7, + 0x82, 0x75, 0x29, 0xe7, 0xc7, 0xd1, 0xe8, 0xea, 0x1d, 0x3a, 0x7f, 0x0c, 0x6b, 0x57, 0x68, 0x81, + 0xa0, 0xee, 0xd0, 0xb6, 0x6b, 0xdc, 0x4b, 0xba, 0xff, 0xa9, 0x05, 0x0f, 0xa4, 0xa0, 0x17, 0xf4, + 0x3a, 0x7a, 0x97, 0xc5, 0x7a, 0x0a, 0xfd, 0x48, 0x9a, 0x70, 0xc7, 0x00, 0xd4, 0xd9, 0x97, 0x8c, + 0xc0, 0x9f, 0x2d, 0xe8, 0x4b, 0x49, 0xfb, 0x34, 0x23, 0xfc, 0xce, 0xfe, 0xff, 0x08, 0x3a, 0x84, + 0x66, 0x3c, 0xa0, 0x77, 0xe9, 0x90, 0x3a, 0xeb, 0x92, 0x4d, 0xf2, 0x0a, 0x1e, 0xc8, 0x17, 0x20, + 0xad, 0xe3, 0x88, 0x59, 0x35, 0x08, 0xe5, 0xf8, 0x29, 0x6f, 0x44, 0x05, 0x69, 0xbe, 0xed, 0xa9, + 0x3f, 0x6d, 0xaa, 0xb7, 0xbd, 0xa7, 0x00, 0x41, 0x18, 0x7e, 0xcc, 0x78, 0x18, 0xd1, 0xe2, 0xf8, + 0xd0, 0x10, 0xef, 0x23, 0xe8, 0x8a, 0x69, 0xf9, 0x5c, 0x7b, 0xcb, 0xb9, 0xf5, 0xb5, 0x49, 0x7f, + 0x07, 0xb2, 0xcd, 0x77, 0x20, 0xef, 0x67, 0xf0, 0x85, 0x39, 0xc3, 0x31, 0xea, 0xbb, 0xf2, 0x89, + 0xaa, 0x50, 0xa2, 0x82, 0xbf, 0xe8, 0xfe, 0xa8, 0xdb, 0xe2, 0x1b, 0x4c, 0xde, 0x2f, 0x2c, 0x78, + 0x7f, 0x4e, 0xfc, 0x76, 0x92, 0x70, 0x76, 0xad, 0x8a, 0xfb, 0x3e, 0xd4, 0x98, 0xad, 0xd5, 0xae, + 0xb7, 0xd6, 0x85, 0x46, 0x18, 0xc7, 0xc1, 0xe7, 0x60, 0xc4, 0x1f, 0x2c, 0xe8, 0x2b, 0x23, 0xc2, + 0x50, 0xa9, 0xfd, 0x36, 0x34, 0xe5, 0xf3, 0xb6, 0x52, 0xf8, 0xfe, 0x42, 0x85, 0xc5, 0xb3, 0xbc, + 0xaf, 0x16, 0xcf, 0x57, 0xa4, 0xbd, 0x68, 0x0c, 0xfc, 0x6e, 0xd9, 0x01, 0x96, 0x7e, 0x80, 0x56, + 0x0c, 0xde, 0x4f, 0x8b, 0x62, 0xde, 0x23, 0x31, 0xb9, 0xcf, 0x18, 0x79, 0x2f, 0x61, 0x0d, 0xdf, + 0xda, 0xab, 0x18, 0xdc, 0x8b, 0xd8, 0x8f, 0x61, 0x1d, 0xc5, 0xde, 0xbb, 0xbd, 0xe5, 0xee, 0x10, + 0xf1, 0xd9, 0xbd, 0x0c, 0xe8, 0xe4, 0x3e, 0xa5, 0x7f, 0x03, 0x1e, 0x16, 0xb1, 0x7f, 0x99, 0x84, + 0xe5, 0x15, 0xe5, 0x86, 0x47, 0xae, 0x8b, 0x26, 0xfe, 0x57, 0xfc, 0xad, 0xff, 0x06, 0x00, 0x00, + 0xff, 0xff, 0xaf, 0x96, 0xca, 0x38, 0x3e, 0x1e, 0x00, 0x00, } From 544e60eb6d48c9f2fcd58109ac98136e609ce6c6 Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Wed, 19 Jan 2022 14:45:23 +0800 Subject: [PATCH 530/814] nil modify --- internal/rpc/msg/friend_notification.go | 1 + 1 file changed, 1 insertion(+) diff --git a/internal/rpc/msg/friend_notification.go b/internal/rpc/msg/friend_notification.go index e44bc0ff0..b0377c854 100644 --- a/internal/rpc/msg/friend_notification.go +++ b/internal/rpc/msg/friend_notification.go @@ -101,6 +101,7 @@ func FriendApplicationRejectedNotification(req *pbFriend.AddFriendResponseReq) { } func FriendAddedNotification(operationID, opUserID, fromUserID, toUserID string) { + return friendAddedTips := open_im_sdk.FriendAddedTips{Friend: &open_im_sdk.FriendInfo{}, OpUser: &open_im_sdk.PublicUserInfo{}} user, err := imdb.GetUserByUserID(opUserID) if err != nil { From d2b411ecbb6917b26407e584f3813ccb32e89356 Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Wed, 19 Jan 2022 14:50:36 +0800 Subject: [PATCH 531/814] nil modify --- pkg/common/db/mysql.go | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/pkg/common/db/mysql.go b/pkg/common/db/mysql.go index 24f1eb20a..9731a1716 100644 --- a/pkg/common/db/mysql.go +++ b/pkg/common/db/mysql.go @@ -52,7 +52,6 @@ func initMysqlDB() { } log.NewInfo("open db ok ", dsn) - db.Set("gorm:table_options", "CHARSET=utf8") db.AutoMigrate(&Friend{}, &FriendRequest{}, &Group{}, @@ -60,6 +59,8 @@ func initMysqlDB() { &GroupRequest{}, &User{}, &Black{}) + db.Set("gorm:table_options", "CHARSET=utf8") + // //if !db.HasTable(&Friend{}) { // log.NewInfo("CreateTable Friend") From 14ccbf335d2e5bc3e5d3ce7d30b42a2109e6299e Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Wed, 19 Jan 2022 17:17:51 +0800 Subject: [PATCH 532/814] Refactor code --- cmd/open_im_api/main.go | 28 ++++++++++++++-------------- internal/api/group/group.go | 2 +- 2 files changed, 15 insertions(+), 15 deletions(-) diff --git a/cmd/open_im_api/main.go b/cmd/open_im_api/main.go index 07b4d5479..7f8fd7db2 100644 --- a/cmd/open_im_api/main.go +++ b/cmd/open_im_api/main.go @@ -51,20 +51,20 @@ func main() { //group related routing group groupRouterGroup := r.Group("/group") { - groupRouterGroup.POST("/create_group", group.CreateGroup) //1 - groupRouterGroup.POST("/set_group_info", group.SetGroupInfo) //1 - groupRouterGroup.POST("join_group", group.JoinGroup) //1 - groupRouterGroup.POST("/quit_group", group.QuitGroup) //1 - groupRouterGroup.POST("/group_application_response", group.ApplicationGroupResponse) //1 - groupRouterGroup.POST("/transfer_group", group.TransferGroupOwner) //1 - groupRouterGroup.POST("/get_group_applicationList", group.GetGroupApplicationList) //1 - groupRouterGroup.POST("/get_groups_info", group.GetGroupsInfo) //1 - groupRouterGroup.POST("/kick_group", group.KickGroupMember) //1 - groupRouterGroup.POST("/get_group_member_list", group.GetGroupMemberList) //no use - groupRouterGroup.POST("/get_group_all_member_list", group.GetGroupAllMemberList) //1 - groupRouterGroup.POST("/get_group_members_info", group.GetGroupMembersInfo) //1 - groupRouterGroup.POST("/invite_user_to_group", group.InviteUserToGroup) //1 - groupRouterGroup.POST("/get_joined_group_list", group.GetJoinedGroupList) //1 + groupRouterGroup.POST("/create_group", group.CreateGroup) //1 + groupRouterGroup.POST("/set_group_info", group.SetGroupInfo) //1 + groupRouterGroup.POST("join_group", group.JoinGroup) //1 + groupRouterGroup.POST("/quit_group", group.QuitGroup) //1 + groupRouterGroup.POST("/group_application_response", group.ApplicationGroupResponse) //1 + groupRouterGroup.POST("/transfer_group", group.TransferGroupOwner) //1 + groupRouterGroup.POST("/get_recv_group_applicationList", group.GetRecvGroupApplicationList) //1 + groupRouterGroup.POST("/get_groups_info", group.GetGroupsInfo) //1 + groupRouterGroup.POST("/kick_group", group.KickGroupMember) //1 + groupRouterGroup.POST("/get_group_member_list", group.GetGroupMemberList) //no use + groupRouterGroup.POST("/get_group_all_member_list", group.GetGroupAllMemberList) //1 + groupRouterGroup.POST("/get_group_members_info", group.GetGroupMembersInfo) //1 + groupRouterGroup.POST("/invite_user_to_group", group.InviteUserToGroup) //1 + groupRouterGroup.POST("/get_joined_group_list", group.GetJoinedGroupList) //1 } //certificate authRouterGroup := r.Group("/auth") diff --git a/internal/api/group/group.go b/internal/api/group/group.go index 5d2d8405f..c7b725a9e 100644 --- a/internal/api/group/group.go +++ b/internal/api/group/group.go @@ -281,7 +281,7 @@ func CreateGroup(c *gin.Context) { } // 群主或管理员收到的 -func GetGroupApplicationList(c *gin.Context) { +func GetRecvGroupApplicationList(c *gin.Context) { params := api.GetGroupApplicationListReq{} if err := c.BindJSON(¶ms); err != nil { log.NewError("0", "BindJSON failed ", err.Error()) From 4c3474a9f7cdc955f6215c72b9280696c8d3b4d6 Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Wed, 19 Jan 2022 17:29:25 +0800 Subject: [PATCH 533/814] Refactor code --- internal/api/manage/management_chat.go | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/internal/api/manage/management_chat.go b/internal/api/manage/management_chat.go index ba715bf68..f09b9acd7 100644 --- a/internal/api/manage/management_chat.go +++ b/internal/api/manage/management_chat.go @@ -60,10 +60,10 @@ func newUserSendMsgReq(params *ManagementSendMsgReq) *pbChat.SendMsgReq { MsgFrom: constant.SysMsgType, ContentType: params.ContentType, Content: []byte(newContent), - ForceList: params.ForceList, - CreateTime: utils.GetCurrentTimestampByMill(), - Options: options, - OfflinePushInfo: params.OfflinePushInfo, + // ForceList: params.ForceList, + CreateTime: utils.GetCurrentTimestampByMill(), + Options: options, + OfflinePushInfo: params.OfflinePushInfo, }, } return &pbData From 99a8eaea9133ce590638aaf6df7c6e65b4ddbddd Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Wed, 19 Jan 2022 18:02:57 +0800 Subject: [PATCH 534/814] Refactor code --- .../db/mysql_model/im_mysql_model/friend_request_model.go | 8 ++++++++ .../db/mysql_model/im_mysql_model/group_request_model.go | 8 ++++++++ 2 files changed, 16 insertions(+) diff --git a/pkg/common/db/mysql_model/im_mysql_model/friend_request_model.go b/pkg/common/db/mysql_model/im_mysql_model/friend_request_model.go index 2591426a2..0aeb2967e 100644 --- a/pkg/common/db/mysql_model/im_mysql_model/friend_request_model.go +++ b/pkg/common/db/mysql_model/im_mysql_model/friend_request_model.go @@ -76,6 +76,14 @@ func InsertFriendApplication(friendRequest *db.FriendRequest) error { if err != nil { return err } + + friendRequest.CreateTime = time.Now() + u := dbConn.Table("friend_requests").Where("from_user_id=? and to_user_id=?", + friendRequest.FromUserID, friendRequest.ToUserID).Update(&friendRequest) + if u.RowsAffected != 0 { + return nil + } + if friendRequest.CreateTime.Unix() < 0 { friendRequest.CreateTime = time.Now() } diff --git a/pkg/common/db/mysql_model/im_mysql_model/group_request_model.go b/pkg/common/db/mysql_model/im_mysql_model/group_request_model.go index 84988a3f4..a4e3ab37f 100644 --- a/pkg/common/db/mysql_model/im_mysql_model/group_request_model.go +++ b/pkg/common/db/mysql_model/im_mysql_model/group_request_model.go @@ -36,6 +36,14 @@ func InsertIntoGroupRequest(toInsertInfo db.GroupRequest) error { return err } + if toInsertInfo.HandledTime.Unix() < 0 { + toInsertInfo.HandledTime = utils.UnixSecondToTime(0) + } + u := dbConn.Table("group_requests").Where("group_id=? and user_id=?", toInsertInfo.GroupID, toInsertInfo.UserID).Update(&toInsertInfo) + if u.RowsAffected != 0 { + return nil + } + toInsertInfo.ReqTime = time.Now() if toInsertInfo.HandledTime.Unix() < 0 { toInsertInfo.HandledTime = utils.UnixSecondToTime(0) From 04e509fc49e67a6dd60aa098934c7a3377cc9b6b Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Wed, 19 Jan 2022 18:14:53 +0800 Subject: [PATCH 535/814] update user --- internal/api/user/user.go | 1 + pkg/base_info/auth_api_struct.go | 2 +- pkg/base_info/public_struct.go | 6 +++--- pkg/base_info/user_api_struct.go | 2 +- 4 files changed, 6 insertions(+), 5 deletions(-) diff --git a/internal/api/user/user.go b/internal/api/user/user.go index 8508cddc8..e42f0d1b8 100644 --- a/internal/api/user/user.go +++ b/internal/api/user/user.go @@ -63,6 +63,7 @@ func UpdateUserInfo(c *gin.Context) { } req := &rpc.UpdateUserInfoReq{UserInfo: &open_im_sdk.UserInfo{}} utils.CopyStructFields(req.UserInfo, ¶ms) + req.OperationID = params.OperationID var ok bool ok, req.OpUserID = token_verify.GetUserIDFromToken(c.Request.Header.Get("token")) diff --git a/pkg/base_info/auth_api_struct.go b/pkg/base_info/auth_api_struct.go index a4db08f84..13d6e140b 100644 --- a/pkg/base_info/auth_api_struct.go +++ b/pkg/base_info/auth_api_struct.go @@ -12,7 +12,7 @@ package base_info type UserRegisterReq struct { Secret string `json:"secret" binding:"required,max=32"` Platform int32 `json:"platform" binding:"required,min=1,max=7"` - UserInfo + ApiUserInfo OperationID string `json:"operationID" binding:"required"` } diff --git a/pkg/base_info/public_struct.go b/pkg/base_info/public_struct.go index dbb729e71..1e60ae294 100644 --- a/pkg/base_info/public_struct.go +++ b/pkg/base_info/public_struct.go @@ -5,13 +5,13 @@ import ( "net/http" ) -type UserInfo struct { +type ApiUserInfo struct { UserID string `json:"userID" binding:"required,min=1,max=64"` Nickname string `json:"nickname" binding:"omitempty,min=1,max=64"` - FaceUrl string `json:"faceUrl" binding:"omitempty,max=1024"` + FaceURL string `json:"faceURL" binding:"omitempty,max=1024"` Gender int32 `json:"gender" binding:"omitempty,oneof=0 1 2"` PhoneNumber string `json:"phoneNumber" binding:"omitempty,max=32"` - Birth int64 `json:"birth" binding:"omitempty"` + Birth uint32 `json:"birth" binding:"omitempty"` Email string `json:"email" binding:"omitempty,max=64"` Ex string `json:"ex" binding:"omitempty,max=1024"` } diff --git a/pkg/base_info/user_api_struct.go b/pkg/base_info/user_api_struct.go index 2ccfc6cc6..f4be785f2 100644 --- a/pkg/base_info/user_api_struct.go +++ b/pkg/base_info/user_api_struct.go @@ -15,7 +15,7 @@ type GetUsersInfoResp struct { } type UpdateSelfUserInfoReq struct { - UserInfo + ApiUserInfo OperationID string `json:"operationID" binding:"required"` } From 8b3df83e7e10b16f449baf35ece5305d9e26f284 Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Thu, 20 Jan 2022 10:00:02 +0800 Subject: [PATCH 536/814] ws proto --- pkg/proto/sdk_ws/ws.proto | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/pkg/proto/sdk_ws/ws.proto b/pkg/proto/sdk_ws/ws.proto index eede88e04..cc4c70054 100644 --- a/pkg/proto/sdk_ws/ws.proto +++ b/pkg/proto/sdk_ws/ws.proto @@ -110,10 +110,7 @@ message FriendRequest{ message PullMessageBySeqListResp { int32 errCode = 1; string errMsg = 2; - int64 maxSeq = 3; - int64 minSeq = 4; - repeated GatherFormat singleUserMsg = 5; - repeated GatherFormat groupUserMsg = 6; + repeated MsgData list = 3; } message PullMessageBySeqListReq{ string userID = 1; From 184f0900fb7f660fbe60bed8352d8968bf999089 Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Thu, 20 Jan 2022 11:36:43 +0800 Subject: [PATCH 537/814] protocol modify --- internal/msg_gateway/gate/logic.go | 130 ++----- internal/rpc/msg/pull_message.go | 104 +----- pkg/common/constant/constant.go | 3 +- pkg/common/db/mongoModel.go | 113 ++---- pkg/common/db/redisModel.go | 14 +- pkg/proto/chat/chat.proto | 37 +- pkg/proto/sdk_ws/ws.pb.go | 574 +++++++++-------------------- pkg/proto/sdk_ws/ws.proto | 57 +-- pkg/utils/utils.go | 34 ++ 9 files changed, 293 insertions(+), 773 deletions(-) diff --git a/internal/msg_gateway/gate/logic.go b/internal/msg_gateway/gate/logic.go index 5fec367aa..d1756093c 100644 --- a/internal/msg_gateway/gate/logic.go +++ b/internal/msg_gateway/gate/logic.go @@ -10,7 +10,6 @@ import ( "bytes" "context" "encoding/gob" - "encoding/json" "github.com/golang/protobuf/proto" "github.com/gorilla/websocket" "runtime" @@ -51,8 +50,6 @@ func (ws *WServer) msgParse(conn *UserConn, binaryMsg []byte) { switch m.ReqIdentifier { case constant.WSGetNewestSeq: ws.getSeqReq(conn, &m) - case constant.WSPullMsg: - ws.pullMsgReq(conn, &m) case constant.WSSendMsg: ws.sendMsgReq(conn, &m) case constant.WSPullMsgBySeqList: @@ -63,24 +60,24 @@ func (ws *WServer) msgParse(conn *UserConn, binaryMsg []byte) { } func (ws *WServer) getSeqReq(conn *UserConn, m *Req) { log.NewInfo(m.OperationID, "Ws call success to getNewSeq", m.MsgIncr, m.SendID, m.ReqIdentifier) - pbData := pbChat.GetMaxAndMinSeqReq{} + rpcReq := pbChat.GetMaxAndMinSeqReq{} nReply := new(pbChat.GetMaxAndMinSeqResp) - pbData.UserID = m.SendID - pbData.OperationID = m.OperationID + rpcReq.UserID = m.SendID + rpcReq.OperationID = m.OperationID grpcConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImOfflineMessageName) if grpcConn == nil { - log.ErrorByKv("get grpcConn err", pbData.OperationID, "args", m) + log.ErrorByKv("get grpcConn err", rpcReq.OperationID, "args", m) } msgClient := pbChat.NewChatClient(grpcConn) - reply, err := msgClient.GetMaxAndMinSeq(context.Background(), &pbData) + rpcReply, err := msgClient.GetMaxAndMinSeq(context.Background(), &rpcReq) if err != nil { - log.ErrorByKv("rpc call failed to getSeqReq", pbData.OperationID, "err", err, "pbData", pbData.String()) - nReply.ErrCode = 200 + log.Error(rpcReq.OperationID, "rpc call failed to getSeqReq", err, rpcReq.String()) + nReply.ErrCode = 500 nReply.ErrMsg = err.Error() ws.getSeqResp(conn, m, nReply) } else { - log.InfoByKv("rpc call success to getSeqReq", pbData.OperationID, "replyData", reply.String()) - ws.getSeqResp(conn, m, reply) + log.InfoByKv("rpc call success to getSeqReq", rpcReq.OperationID, "replyData", rpcReply.String()) + ws.getSeqResp(conn, m, rpcReply) } } func (ws *WServer) getSeqResp(conn *UserConn, m *Req, pb *pbChat.GetMaxAndMinSeqResp) { @@ -98,121 +95,38 @@ func (ws *WServer) getSeqResp(conn *UserConn, m *Req, pb *pbChat.GetMaxAndMinSeq } ws.sendMsg(conn, mReply) } -func (ws *WServer) pullMsgReq(conn *UserConn, m *Req) { - log.NewInfo(m.OperationID, "Ws call success to pullMsgReq", m.ReqIdentifier, m.MsgIncr, m.SendID) - nReply := new(sdk_ws.PullMessageResp) - isPass, errCode, errMsg, data := ws.argsValidate(m, constant.WSPullMsg) - if isPass { - pbData := sdk_ws.PullMessageReq{} - pbData.UserID = m.SendID - pbData.OperationID = m.OperationID - pbData.SeqBegin = data.(SeqData).SeqBegin - pbData.SeqEnd = data.(SeqData).SeqEnd - grpcConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImOfflineMessageName) - msgClient := pbChat.NewChatClient(grpcConn) - reply, err := msgClient.PullMessage(context.Background(), &pbData) - if err != nil { - log.ErrorByKv("PullMessage error", pbData.OperationID, "err", err.Error()) - nReply.ErrCode = 200 - nReply.ErrMsg = err.Error() - ws.pullMsgResp(conn, m, nReply) - } else { - log.InfoByKv("rpc call success to pullMsgRep", pbData.OperationID, "ReplyArgs", reply.String(), "maxSeq", reply.GetMaxSeq(), - "MinSeq", reply.GetMinSeq(), "singLen", len(reply.GetSingleUserMsg()), "groupLen", len(reply.GetGroupUserMsg())) - ws.pullMsgResp(conn, m, reply) - } - } else { - nReply.ErrCode = errCode - nReply.ErrMsg = errMsg - ws.pullMsgResp(conn, m, nReply) - } -} -func (ws *WServer) pullMsgResp(conn *UserConn, m *Req, pb *sdk_ws.PullMessageResp) { - log.NewInfo(m.OperationID, "pullMsgResp come here ", pb.String()) - var mReplyData sdk_ws.PullMessageBySeqListResp - a, err := json.Marshal(pb.SingleUserMsg) - if err != nil { - log.NewError(m.OperationID, "GetSingleUserMsg,json marshal,err", err.Error()) - } - log.NewInfo(m.OperationID, "pullMsgResp json is ", len(pb.SingleUserMsg)) - err = json.Unmarshal(a, &mReplyData.SingleUserMsg) - if err != nil { - log.NewError(m.OperationID, "SingleUserMsg,json Unmarshal,err", err.Error()) - } - b, err := json.Marshal(pb.GroupUserMsg) - if err != nil { - log.NewError(m.OperationID, "mReplyData,json marshal,err", err.Error()) - } - err = json.Unmarshal(b, &mReplyData.GroupUserMsg) - if err != nil { - log.NewError(m.OperationID, "test SingleUserMsg,json Unmarshal,err", err.Error()) - } - c, err := proto.Marshal(&mReplyData) - log.NewInfo(m.OperationID, "test info is ", len(mReplyData.SingleUserMsg), mReplyData.SingleUserMsg) - mReply := Resp{ - ReqIdentifier: m.ReqIdentifier, - MsgIncr: m.MsgIncr, - ErrCode: pb.GetErrCode(), - ErrMsg: pb.GetErrMsg(), - OperationID: m.OperationID, - Data: c, - } - log.NewInfo(m.OperationID, "pullMsgResp all data is ", mReply.ReqIdentifier, mReply.MsgIncr, mReply.ErrCode, mReply.ErrMsg, - len(mReply.Data)) - ws.sendMsg(conn, mReply) -} func (ws *WServer) pullMsgBySeqListReq(conn *UserConn, m *Req) { log.NewInfo(m.OperationID, "Ws call success to pullMsgBySeqListReq start", m.SendID, m.ReqIdentifier, m.MsgIncr) - nReply := new(sdk_ws.PullMessageResp) + nReply := new(sdk_ws.PullMessageBySeqListResp) isPass, errCode, errMsg, data := ws.argsValidate(m, constant.WSPullMsgBySeqList) log.NewInfo(m.OperationID, "Ws call success to pullMsgBySeqListReq middle", m.SendID, m.ReqIdentifier, m.MsgIncr, data.(sdk_ws.PullMessageBySeqListReq).SeqList) if isPass { - pbData := sdk_ws.PullMessageBySeqListReq{} - pbData.SeqList = data.(sdk_ws.PullMessageBySeqListReq).SeqList - pbData.UserID = m.SendID - pbData.OperationID = m.OperationID + rpcReq := sdk_ws.PullMessageBySeqListReq{} + rpcReq.SeqList = data.(sdk_ws.PullMessageBySeqListReq).SeqList + rpcReq.UserID = m.SendID + rpcReq.OperationID = m.OperationID grpcConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImOfflineMessageName) msgClient := pbChat.NewChatClient(grpcConn) - reply, err := msgClient.PullMessageBySeqList(context.Background(), &pbData) + reply, err := msgClient.PullMessageBySeqList(context.Background(), &rpcReq) if err != nil { - log.NewError(pbData.OperationID, "pullMsgBySeqListReq err", err.Error()) + log.NewError(rpcReq.OperationID, "pullMsgBySeqListReq err", err.Error()) nReply.ErrCode = 200 nReply.ErrMsg = err.Error() - ws.pullMsgResp(conn, m, nReply) + ws.pullMsgBySeqListResp(conn, m, nReply) } else { - log.NewInfo(pbData.OperationID, "rpc call success to pullMsgBySeqListReq", reply.String(), reply.GetMaxSeq(), reply.GetMinSeq(), len(reply.GetSingleUserMsg()), len(reply.GetGroupUserMsg())) + log.NewInfo(rpcReq.OperationID, "rpc call success to pullMsgBySeqListReq", reply.String(), len(reply.List)) ws.pullMsgBySeqListResp(conn, m, reply) } } else { nReply.ErrCode = errCode nReply.ErrMsg = errMsg - ws.pullMsgResp(conn, m, nReply) + ws.pullMsgBySeqListResp(conn, m, nReply) } } func (ws *WServer) pullMsgBySeqListResp(conn *UserConn, m *Req, pb *sdk_ws.PullMessageBySeqListResp) { - log.NewInfo(m.OperationID, "pullMsgResp come here ", pb.String()) - var mReplyData sdk_ws.PullMessageBySeqListResp - a, err := json.Marshal(pb.SingleUserMsg) - if err != nil { - log.NewError(m.OperationID, "GetSingleUserMsg,json marshal,err", err.Error()) - } - log.NewInfo(m.OperationID, "pullMsgResp json is ", len(pb.SingleUserMsg)) - err = json.Unmarshal(a, &mReplyData.SingleUserMsg) - if err != nil { - log.NewError(m.OperationID, "SingleUserMsg,json Unmarshal,err", err.Error()) - } - b, err := json.Marshal(pb.GroupUserMsg) - if err != nil { - log.NewError(m.OperationID, "mReplyData,json marshal,err", err.Error()) - } - err = json.Unmarshal(b, &mReplyData.GroupUserMsg) - if err != nil { - log.NewError(m.OperationID, "test SingleUserMsg,json Unmarshal,err", err.Error()) - } - c, err := proto.Marshal(&mReplyData) - log.NewInfo(m.OperationID, "test info is ", len(mReplyData.SingleUserMsg), mReplyData.SingleUserMsg) - + log.NewInfo(m.OperationID, "pullMsgBySeqListResp come here ", pb.String()) + c, _ := proto.Marshal(pb) mReply := Resp{ ReqIdentifier: m.ReqIdentifier, MsgIncr: m.MsgIncr, @@ -221,7 +135,7 @@ func (ws *WServer) pullMsgBySeqListResp(conn *UserConn, m *Req, pb *sdk_ws.PullM OperationID: m.OperationID, Data: c, } - log.NewInfo(m.OperationID, "pullMsgResp all data is ", mReply.ReqIdentifier, mReply.MsgIncr, mReply.ErrCode, mReply.ErrMsg, + log.NewInfo(m.OperationID, "pullMsgBySeqListResp all data is ", mReply.ReqIdentifier, mReply.MsgIncr, mReply.ErrCode, mReply.ErrMsg, len(mReply.Data)) ws.sendMsg(conn, mReply) diff --git a/internal/rpc/msg/pull_message.go b/internal/rpc/msg/pull_message.go index af619182b..6f6a614d1 100644 --- a/internal/rpc/msg/pull_message.go +++ b/internal/rpc/msg/pull_message.go @@ -6,11 +6,8 @@ import ( commonDB "Open_IM/pkg/common/db" "Open_IM/pkg/common/log" - open_im_sdk "Open_IM/pkg/proto/sdk_ws" - "sort" - "strings" - pbMsg "Open_IM/pkg/proto/chat" + open_im_sdk "Open_IM/pkg/proto/sdk_ws" ) func (rpc *rpcChat) GetMaxAndMinSeq(_ context.Context, in *pbMsg.GetMaxAndMinSeqReq) (*pbMsg.GetMaxAndMinSeqResp, error) { @@ -20,7 +17,7 @@ func (rpc *rpcChat) GetMaxAndMinSeq(_ context.Context, in *pbMsg.GetMaxAndMinSeq minSeq, err2 := commonDB.DB.GetUserMinSeq(in.UserID) resp := new(pbMsg.GetMaxAndMinSeqResp) if err1 == nil { - resp.MaxSeq = maxSeq + resp.MaxSeq = uint32(maxSeq) } else if err1 == redis.ErrNil { resp.MaxSeq = 0 } else { @@ -30,7 +27,7 @@ func (rpc *rpcChat) GetMaxAndMinSeq(_ context.Context, in *pbMsg.GetMaxAndMinSeq resp.ErrMsg = "redis get err" } if err2 == nil { - resp.MinSeq = minSeq + resp.MinSeq = uint32(minSeq) } else if err2 == redis.ErrNil { resp.MinSeq = 0 } else { @@ -41,104 +38,23 @@ func (rpc *rpcChat) GetMaxAndMinSeq(_ context.Context, in *pbMsg.GetMaxAndMinSeq } return resp, nil } -func (rpc *rpcChat) PullMessage(_ context.Context, in *open_im_sdk.PullMessageReq) (*open_im_sdk.PullMessageResp, error) { - log.InfoByKv("rpc pullMessage is arriving", in.OperationID, "args", in.String()) - resp := new(open_im_sdk.PullMessageResp) - var respSingleMsgFormat []*open_im_sdk.GatherFormat - var respGroupMsgFormat []*open_im_sdk.GatherFormat - SingleMsgFormat, GroupMsgFormat, MaxSeq, MinSeq, err := commonDB.DB.GetMsgBySeqRange(in.UserID, in.SeqBegin, in.SeqEnd) - if err != nil { - log.ErrorByKv("pullMsg data error", in.OperationID, in.String()) - resp.ErrCode = 1 - resp.ErrMsg = err.Error() - return resp, nil - } - respSingleMsgFormat = singleMsgHandleByUser(SingleMsgFormat, in.UserID) - respGroupMsgFormat = groupMsgHandleByUser(GroupMsgFormat) - return &open_im_sdk.PullMessageResp{ - ErrCode: 0, - ErrMsg: "", - MaxSeq: MaxSeq, - MinSeq: MinSeq, - SingleUserMsg: respSingleMsgFormat, - GroupUserMsg: respGroupMsgFormat, - }, nil -} func (rpc *rpcChat) PullMessageBySeqList(_ context.Context, in *open_im_sdk.PullMessageBySeqListReq) (*open_im_sdk.PullMessageBySeqListResp, error) { log.NewInfo(in.OperationID, "rpc PullMessageBySeqList is arriving", in.String()) resp := new(open_im_sdk.PullMessageBySeqListResp) - var respSingleMsgFormat []*open_im_sdk.GatherFormat - var respGroupMsgFormat []*open_im_sdk.GatherFormat - SingleMsgFormat, GroupMsgFormat, MaxSeq, MinSeq, err := commonDB.DB.GetMsgBySeqList(in.UserID, in.SeqList) + msgList, err := commonDB.DB.GetMsgBySeqList(in.UserID, in.SeqList) if err != nil { log.ErrorByKv("PullMessageBySeqList data error", in.OperationID, in.String()) resp.ErrCode = 1 resp.ErrMsg = err.Error() return resp, nil } - respSingleMsgFormat = singleMsgHandleByUser(SingleMsgFormat, in.UserID) - respGroupMsgFormat = groupMsgHandleByUser(GroupMsgFormat) - return &open_im_sdk.PullMessageBySeqListResp{ - ErrCode: 0, - ErrMsg: "", - MaxSeq: MaxSeq, - MinSeq: MinSeq, - SingleUserMsg: respSingleMsgFormat, - GroupUserMsg: respGroupMsgFormat, - }, nil -} -func singleMsgHandleByUser(allMsg []*open_im_sdk.MsgData, ownerId string) []*open_im_sdk.GatherFormat { - var userid string - var respMsgFormat []*open_im_sdk.GatherFormat - m := make(map[string]MsgFormats) - //Gather messages in the dimension of users - for _, v := range allMsg { - if v.RecvID != ownerId { - userid = v.RecvID - } else { - userid = v.SendID - } - if value, ok := m[userid]; !ok { - var t MsgFormats - m[userid] = append(t, v) - } else { - m[userid] = append(value, v) - } - } - //Return in pb format - for user, msg := range m { - tempUserMsg := new(open_im_sdk.GatherFormat) - tempUserMsg.Id = user - tempUserMsg.List = msg - sort.Sort(msg) - respMsgFormat = append(respMsgFormat, tempUserMsg) - } - return respMsgFormat -} -func groupMsgHandleByUser(allMsg []*open_im_sdk.MsgData) []*open_im_sdk.GatherFormat { - var respMsgFormat []*open_im_sdk.GatherFormat - m := make(map[string]MsgFormats) - //Gather messages in the dimension of users - for _, v := range allMsg { - //Get group ID - groupID := strings.Split(v.RecvID, " ")[1] - if value, ok := m[groupID]; !ok { - var t MsgFormats - m[groupID] = append(t, v) - } else { - m[groupID] = append(value, v) - } + //respSingleMsgFormat = singleMsgHandleByUser(SingleMsgFormat, in.UserID) + //respGroupMsgFormat = groupMsgHandleByUser(GroupMsgFormat) + resp.ErrCode = 0 + resp.ErrMsg = "" + resp.List = msgList + return resp, nil - } - //Return in pb format - for groupID, msg := range m { - tempUserMsg := new(open_im_sdk.GatherFormat) - tempUserMsg.Id = groupID - tempUserMsg.List = msg - sort.Sort(msg) - respMsgFormat = append(respMsgFormat, tempUserMsg) - } - return respMsgFormat } type MsgFormats []*open_im_sdk.MsgData diff --git a/pkg/common/constant/constant.go b/pkg/common/constant/constant.go index cd0c99fae..6e32cea2e 100644 --- a/pkg/common/constant/constant.go +++ b/pkg/common/constant/constant.go @@ -18,9 +18,8 @@ const ( //Websocket Protocol WSGetNewestSeq = 1001 - WSPullMsg = 1002 + WSPullMsgBySeqList = 1002 WSSendMsg = 1003 - WSPullMsgBySeqList = 1004 WSPushMsg = 2001 WSKickOnlineMsg = 2002 WSDataError = 3001 diff --git a/pkg/common/db/mongoModel.go b/pkg/common/db/mongoModel.go index 128815031..6538d17f4 100644 --- a/pkg/common/db/mongoModel.go +++ b/pkg/common/db/mongoModel.go @@ -2,10 +2,10 @@ package db import ( "Open_IM/pkg/common/config" - "Open_IM/pkg/common/constant" "Open_IM/pkg/common/log" pbMsg "Open_IM/pkg/proto/chat" open_im_sdk "Open_IM/pkg/proto/sdk_ws" + "Open_IM/pkg/utils" "errors" "github.com/garyburd/redigo/redis" "github.com/golang/protobuf/proto" @@ -33,51 +33,8 @@ type GroupMember_x struct { UIDList []string } -func (d *DataBases) GetMsgBySeqRange(uid string, seqBegin, seqEnd int64) (SingleMsg []*open_im_sdk.MsgData, GroupMsg []*open_im_sdk.MsgData, MaxSeq int64, MinSeq int64, err error) { - var count int64 - session := d.mgoSession.Clone() - if session == nil { - return nil, nil, MaxSeq, MinSeq, errors.New("session == nil") - } - defer session.Close() - - c := session.DB(config.Config.Mongo.DBDatabase).C(cChat) - - sChat := UserChat{} - if err = c.Find(bson.M{"uid": uid}).One(&sChat); err != nil { - return nil, nil, MaxSeq, MinSeq, err - } - for i := 0; i < len(sChat.Msg); i++ { - msg := new(open_im_sdk.MsgData) - if err = proto.Unmarshal(sChat.Msg[i].Msg, msg); err != nil { - return nil, nil, MaxSeq, MinSeq, err - } - if msg.Seq >= seqBegin && msg.Seq <= seqEnd { - if msg.Seq > MaxSeq { - MaxSeq = msg.Seq - } - if count == 0 { - MinSeq = msg.Seq - } - if msg.Seq < MinSeq { - MinSeq = msg.Seq - } - if msg.SessionType == constant.SingleChatType { - SingleMsg = append(SingleMsg, msg) - } else { - GroupMsg = append(GroupMsg, msg) - } - count++ - if count == (seqEnd - seqBegin + 1) { - break - } - } - } - - return SingleMsg, GroupMsg, MaxSeq, MinSeq, nil -} -func (d *DataBases) GetMinSeqFromMongo(uid string) (MinSeq int64, err error) { - var i int64 +func (d *DataBases) GetMinSeqFromMongo(uid string) (MinSeq uint32, err error) { + var i, NB uint32 var seqUid string session := d.mgoSession.Clone() if session == nil { @@ -89,7 +46,7 @@ func (d *DataBases) GetMinSeqFromMongo(uid string) (MinSeq int64, err error) { if err != nil && err != redis.ErrNil { return MinSeq, err } - NB := MaxSeq / singleGocMsgNum + NB = uint32(MaxSeq / singleGocMsgNum) for i = 0; i <= NB; i++ { seqUid = indexGen(uid, i) n, err := c.Find(bson.M{"uid": seqUid}).Count() @@ -97,29 +54,28 @@ func (d *DataBases) GetMinSeqFromMongo(uid string) (MinSeq int64, err error) { if i == 0 { MinSeq = 1 } else { - MinSeq = i * singleGocMsgNum + MinSeq = uint32(i * singleGocMsgNum) } break } } return MinSeq, nil } -func (d *DataBases) GetMsgBySeqList(uid string, seqList []int64) (SingleMsg []*open_im_sdk.MsgData, GroupMsg []*open_im_sdk.MsgData, MaxSeq int64, MinSeq int64, err error) { - allCount := 0 +func (d *DataBases) GetMsgBySeqList(uid string, seqList []uint32) (seqMsg []*open_im_sdk.MsgData, err error) { + var hasSeqList []uint32 singleCount := 0 session := d.mgoSession.Clone() if session == nil { - return nil, nil, MaxSeq, MinSeq, errors.New("session == nil") + return nil, errors.New("session == nil") } defer session.Close() - c := session.DB(config.Config.Mongo.DBDatabase).C(cChat) - m := func(uid string, seqList []int64) map[string][]int64 { - t := make(map[string][]int64) + m := func(uid string, seqList []uint32) map[string][]uint32 { + t := make(map[string][]uint32) for i := 0; i < len(seqList); i++ { seqUid := getSeqUid(uid, seqList[i]) if value, ok := t[seqUid]; !ok { - var temp []int64 + var temp []uint32 t[seqUid] = append(temp, seqList[i]) } else { t[seqUid] = append(value, seqList[i]) @@ -138,24 +94,11 @@ func (d *DataBases) GetMsgBySeqList(uid string, seqList []int64) (SingleMsg []*o msg := new(open_im_sdk.MsgData) if err = proto.Unmarshal(sChat.Msg[i].Msg, msg); err != nil { log.NewError("", "not find seqUid", seqUid, value, uid, seqList) - return nil, nil, MaxSeq, MinSeq, err + return nil, err } - if isContainInt64(msg.Seq, value) { - if msg.Seq > MaxSeq { - MaxSeq = msg.Seq - } - if allCount == 0 { - MinSeq = msg.Seq - } - if msg.Seq < MinSeq { - MinSeq = msg.Seq - } - if msg.SessionType == constant.SingleChatType { - SingleMsg = append(SingleMsg, msg) - } else { - GroupMsg = append(GroupMsg, msg) - } - allCount++ + if isContainInt32(msg.Seq, value) { + seqMsg = append(seqMsg, msg) + hasSeqList = append(hasSeqList, msg.Seq) singleCount++ if singleCount == len(value) { break @@ -163,8 +106,24 @@ func (d *DataBases) GetMsgBySeqList(uid string, seqList []int64) (SingleMsg []*o } } } - return SingleMsg, GroupMsg, MaxSeq, MinSeq, nil + if len(hasSeqList) != len(seqList) { + var diff []uint32 + diff = utils.Difference(hasSeqList, seqList) + exceptionMSg := genExceptionMessageBySeqList(diff) + seqMsg = append(seqMsg, exceptionMSg...) + + } + return seqMsg, nil } +func genExceptionMessageBySeqList(seqList []uint32) (exceptionMsg []*open_im_sdk.MsgData) { + for _, v := range seqList { + msg := new(open_im_sdk.MsgData) + msg.Seq = v + exceptionMsg = append(exceptionMsg, msg) + } + return exceptionMsg +} + func (d *DataBases) SaveUserChat(uid string, sendTime int64, m *pbMsg.MsgDataToDB) error { var seqUid string newTime := getCurrentTimestampByMill() @@ -318,11 +277,11 @@ func (d *DataBases) DelGroupMember(groupID, uid string) error { func getCurrentTimestampByMill() int64 { return time.Now().UnixNano() / 1e6 } -func getSeqUid(uid string, seq int64) string { +func getSeqUid(uid string, seq uint32) string { seqSuffix := seq / singleGocMsgNum return indexGen(uid, seqSuffix) } -func isContainInt64(target int64, List []int64) bool { +func isContainInt32(target uint32, List []uint32) bool { for _, element := range List { @@ -333,6 +292,6 @@ func isContainInt64(target int64, List []int64) bool { return false } -func indexGen(uid string, seqSuffix int64) string { - return uid + ":" + strconv.FormatInt(seqSuffix, 10) +func indexGen(uid string, seqSuffix uint32) string { + return uid + ":" + strconv.FormatInt(int64(seqSuffix), 10) } diff --git a/pkg/common/db/redisModel.go b/pkg/common/db/redisModel.go index 7364d7e68..a3e2ade8e 100644 --- a/pkg/common/db/redisModel.go +++ b/pkg/common/db/redisModel.go @@ -35,28 +35,28 @@ func (d *DataBases) Exec(cmd string, key interface{}, args ...interface{}) (inte } //Perform seq auto-increment operation of user messages -func (d *DataBases) IncrUserSeq(uid string) (int64, error) { +func (d *DataBases) IncrUserSeq(uid string) (uint64, error) { key := userIncrSeq + uid - return redis.Int64(d.Exec("INCR", key)) + return redis.Uint64(d.Exec("INCR", key)) } //Get the largest Seq -func (d *DataBases) GetUserMaxSeq(uid string) (int64, error) { +func (d *DataBases) GetUserMaxSeq(uid string) (uint64, error) { key := userIncrSeq + uid - return redis.Int64(d.Exec("GET", key)) + return redis.Uint64(d.Exec("GET", key)) } //Set the user's minimum seq -func (d *DataBases) SetUserMinSeq(uid string, minSeq int64) (err error) { +func (d *DataBases) SetUserMinSeq(uid string, minSeq uint32) (err error) { key := userMinSeq + uid _, err = d.Exec("SET", key, minSeq) return err } //Get the smallest Seq -func (d *DataBases) GetUserMinSeq(uid string) (int64, error) { +func (d *DataBases) GetUserMinSeq(uid string) (uint64, error) { key := userMinSeq + uid - return redis.Int64(d.Exec("GET", key)) + return redis.Uint64(d.Exec("GET", key)) } //Store Apple's device token to redis diff --git a/pkg/proto/chat/chat.proto b/pkg/proto/chat/chat.proto index 12bac416c..7fe50ddc1 100644 --- a/pkg/proto/chat/chat.proto +++ b/pkg/proto/chat/chat.proto @@ -47,41 +47,9 @@ message GetMaxAndMinSeqReq { message GetMaxAndMinSeqResp { int32 ErrCode = 1; string ErrMsg = 2; - int64 MaxSeq = 3; - int64 MinSeq = 4; + uint32 MaxSeq = 3; + uint32 MinSeq = 4; } -//message GatherFormat{ -// // @inject_tag: json:"id" -// string ID = 1; -// // @inject_tag: json:"list" -// repeated MsgFormat List = 2;//detail msg -//} -//message MsgFormat{ -// // @inject_tag: json:"sendID" -// string SendID = 1; -// // @inject_tag: json:"recvID" -// string RecvID = 2; -// // @inject_tag: json:"msgFrom" -// int32 MsgFrom = 3; -// // @inject_tag: json:"contentType" -// int32 ContentType = 4; -// // @inject_tag: json:"serverMsgID" -// string ServerMsgID = 5; -// // @inject_tag: json:"content" -// string Content = 6; -// // @inject_tag: json:"seq" -// int64 Seq = 7; -// // @inject_tag: json:"sendTime" -// int64 SendTime = 8; -// // @inject_tag: json:"senderPlatformID" -// int32 SenderPlatformID = 9; -// // @inject_tag: json:"senderNickName" -// string SenderNickName = 10; -// // @inject_tag: json:"senderFaceUrl" -// string SenderFaceURL = 11; -// // @inject_tag: json:"clientMsgID" -// string ClientMsgID = 12; -//} message SendMsgReq { @@ -102,7 +70,6 @@ message SendMsgResp { } service Chat { rpc GetMaxAndMinSeq(GetMaxAndMinSeqReq) returns(GetMaxAndMinSeqResp); - rpc PullMessage(server_api_params.PullMessageReq) returns(server_api_params.PullMessageResp); rpc PullMessageBySeqList(server_api_params.PullMessageBySeqListReq) returns(server_api_params.PullMessageBySeqListResp); rpc SendMsg(SendMsgReq) returns(SendMsgResp); } diff --git a/pkg/proto/sdk_ws/ws.pb.go b/pkg/proto/sdk_ws/ws.pb.go index 5c6263e74..c99165093 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_44bd6efa690189ed, []int{0} + return fileDescriptor_ws_dd0597f97f3a9074, []int{0} } func (m *GroupInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupInfo.Unmarshal(m, b) @@ -164,7 +164,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_44bd6efa690189ed, []int{1} + return fileDescriptor_ws_dd0597f97f3a9074, []int{1} } func (m *GroupMemberFullInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupMemberFullInfo.Unmarshal(m, b) @@ -269,7 +269,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_44bd6efa690189ed, []int{2} + return fileDescriptor_ws_dd0597f97f3a9074, []int{2} } func (m *PublicUserInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_PublicUserInfo.Unmarshal(m, b) @@ -344,7 +344,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_44bd6efa690189ed, []int{3} + return fileDescriptor_ws_dd0597f97f3a9074, []int{3} } func (m *UserInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_UserInfo.Unmarshal(m, b) @@ -451,7 +451,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_44bd6efa690189ed, []int{4} + return fileDescriptor_ws_dd0597f97f3a9074, []int{4} } func (m *FriendInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FriendInfo.Unmarshal(m, b) @@ -536,7 +536,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_44bd6efa690189ed, []int{5} + return fileDescriptor_ws_dd0597f97f3a9074, []int{5} } func (m *BlackInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_BlackInfo.Unmarshal(m, b) @@ -617,7 +617,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_44bd6efa690189ed, []int{6} + return fileDescriptor_ws_dd0597f97f3a9074, []int{6} } func (m *GroupRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupRequest.Unmarshal(m, b) @@ -725,7 +725,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_44bd6efa690189ed, []int{7} + return fileDescriptor_ws_dd0597f97f3a9074, []int{7} } func (m *FriendRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FriendRequest.Unmarshal(m, b) @@ -851,22 +851,19 @@ func (m *FriendRequest) GetEx() string { } type PullMessageBySeqListResp struct { - ErrCode int32 `protobuf:"varint,1,opt,name=errCode" json:"errCode,omitempty"` - ErrMsg string `protobuf:"bytes,2,opt,name=errMsg" json:"errMsg,omitempty"` - MaxSeq int64 `protobuf:"varint,3,opt,name=maxSeq" json:"maxSeq,omitempty"` - MinSeq int64 `protobuf:"varint,4,opt,name=minSeq" json:"minSeq,omitempty"` - SingleUserMsg []*GatherFormat `protobuf:"bytes,5,rep,name=singleUserMsg" json:"singleUserMsg,omitempty"` - GroupUserMsg []*GatherFormat `protobuf:"bytes,6,rep,name=groupUserMsg" json:"groupUserMsg,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + ErrCode int32 `protobuf:"varint,1,opt,name=errCode" json:"errCode,omitempty"` + ErrMsg string `protobuf:"bytes,2,opt,name=errMsg" json:"errMsg,omitempty"` + List []*MsgData `protobuf:"bytes,3,rep,name=list" json:"list,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } func (m *PullMessageBySeqListResp) Reset() { *m = PullMessageBySeqListResp{} } func (m *PullMessageBySeqListResp) String() string { return proto.CompactTextString(m) } func (*PullMessageBySeqListResp) ProtoMessage() {} func (*PullMessageBySeqListResp) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_44bd6efa690189ed, []int{8} + return fileDescriptor_ws_dd0597f97f3a9074, []int{8} } func (m *PullMessageBySeqListResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_PullMessageBySeqListResp.Unmarshal(m, b) @@ -900,30 +897,9 @@ func (m *PullMessageBySeqListResp) GetErrMsg() string { return "" } -func (m *PullMessageBySeqListResp) GetMaxSeq() int64 { +func (m *PullMessageBySeqListResp) GetList() []*MsgData { if m != nil { - return m.MaxSeq - } - return 0 -} - -func (m *PullMessageBySeqListResp) GetMinSeq() int64 { - if m != nil { - return m.MinSeq - } - return 0 -} - -func (m *PullMessageBySeqListResp) GetSingleUserMsg() []*GatherFormat { - if m != nil { - return m.SingleUserMsg - } - return nil -} - -func (m *PullMessageBySeqListResp) GetGroupUserMsg() []*GatherFormat { - if m != nil { - return m.GroupUserMsg + return m.List } return nil } @@ -931,7 +907,7 @@ func (m *PullMessageBySeqListResp) GetGroupUserMsg() []*GatherFormat { type PullMessageBySeqListReq struct { UserID string `protobuf:"bytes,1,opt,name=userID" json:"userID,omitempty"` OperationID string `protobuf:"bytes,2,opt,name=operationID" json:"operationID,omitempty"` - SeqList []int64 `protobuf:"varint,3,rep,packed,name=seqList" json:"seqList,omitempty"` + SeqList []uint32 `protobuf:"varint,3,rep,packed,name=seqList" json:"seqList,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -941,7 +917,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_44bd6efa690189ed, []int{9} + return fileDescriptor_ws_dd0597f97f3a9074, []int{9} } func (m *PullMessageBySeqListReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_PullMessageBySeqListReq.Unmarshal(m, b) @@ -975,153 +951,13 @@ func (m *PullMessageBySeqListReq) GetOperationID() string { return "" } -func (m *PullMessageBySeqListReq) GetSeqList() []int64 { +func (m *PullMessageBySeqListReq) GetSeqList() []uint32 { if m != nil { return m.SeqList } return nil } -type PullMessageReq struct { - UserID string `protobuf:"bytes,1,opt,name=userID" json:"userID,omitempty"` - SeqBegin int64 `protobuf:"varint,2,opt,name=seqBegin" json:"seqBegin,omitempty"` - SeqEnd int64 `protobuf:"varint,3,opt,name=seqEnd" json:"seqEnd,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 *PullMessageReq) Reset() { *m = PullMessageReq{} } -func (m *PullMessageReq) String() string { return proto.CompactTextString(m) } -func (*PullMessageReq) ProtoMessage() {} -func (*PullMessageReq) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_44bd6efa690189ed, []int{10} -} -func (m *PullMessageReq) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_PullMessageReq.Unmarshal(m, b) -} -func (m *PullMessageReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_PullMessageReq.Marshal(b, m, deterministic) -} -func (dst *PullMessageReq) XXX_Merge(src proto.Message) { - xxx_messageInfo_PullMessageReq.Merge(dst, src) -} -func (m *PullMessageReq) XXX_Size() int { - return xxx_messageInfo_PullMessageReq.Size(m) -} -func (m *PullMessageReq) XXX_DiscardUnknown() { - xxx_messageInfo_PullMessageReq.DiscardUnknown(m) -} - -var xxx_messageInfo_PullMessageReq proto.InternalMessageInfo - -func (m *PullMessageReq) GetUserID() string { - if m != nil { - return m.UserID - } - return "" -} - -func (m *PullMessageReq) GetSeqBegin() int64 { - if m != nil { - return m.SeqBegin - } - return 0 -} - -func (m *PullMessageReq) GetSeqEnd() int64 { - if m != nil { - return m.SeqEnd - } - return 0 -} - -func (m *PullMessageReq) GetOperationID() string { - if m != nil { - return m.OperationID - } - return "" -} - -type PullMessageResp struct { - ErrCode int32 `protobuf:"varint,1,opt,name=errCode" json:"errCode,omitempty"` - ErrMsg string `protobuf:"bytes,2,opt,name=errMsg" json:"errMsg,omitempty"` - MaxSeq int64 `protobuf:"varint,3,opt,name=maxSeq" json:"maxSeq,omitempty"` - MinSeq int64 `protobuf:"varint,4,opt,name=minSeq" json:"minSeq,omitempty"` - SingleUserMsg []*GatherFormat `protobuf:"bytes,5,rep,name=singleUserMsg" json:"singleUserMsg,omitempty"` - GroupUserMsg []*GatherFormat `protobuf:"bytes,6,rep,name=groupUserMsg" json:"groupUserMsg,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *PullMessageResp) Reset() { *m = PullMessageResp{} } -func (m *PullMessageResp) String() string { return proto.CompactTextString(m) } -func (*PullMessageResp) ProtoMessage() {} -func (*PullMessageResp) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_44bd6efa690189ed, []int{11} -} -func (m *PullMessageResp) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_PullMessageResp.Unmarshal(m, b) -} -func (m *PullMessageResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_PullMessageResp.Marshal(b, m, deterministic) -} -func (dst *PullMessageResp) XXX_Merge(src proto.Message) { - xxx_messageInfo_PullMessageResp.Merge(dst, src) -} -func (m *PullMessageResp) XXX_Size() int { - return xxx_messageInfo_PullMessageResp.Size(m) -} -func (m *PullMessageResp) XXX_DiscardUnknown() { - xxx_messageInfo_PullMessageResp.DiscardUnknown(m) -} - -var xxx_messageInfo_PullMessageResp proto.InternalMessageInfo - -func (m *PullMessageResp) GetErrCode() int32 { - if m != nil { - return m.ErrCode - } - return 0 -} - -func (m *PullMessageResp) GetErrMsg() string { - if m != nil { - return m.ErrMsg - } - return "" -} - -func (m *PullMessageResp) GetMaxSeq() int64 { - if m != nil { - return m.MaxSeq - } - return 0 -} - -func (m *PullMessageResp) GetMinSeq() int64 { - if m != nil { - return m.MinSeq - } - return 0 -} - -func (m *PullMessageResp) GetSingleUserMsg() []*GatherFormat { - if m != nil { - return m.SingleUserMsg - } - return nil -} - -func (m *PullMessageResp) GetGroupUserMsg() []*GatherFormat { - if m != nil { - return m.GroupUserMsg - } - return nil -} - type GetMaxAndMinSeqReq struct { XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` @@ -1132,7 +968,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_44bd6efa690189ed, []int{12} + return fileDescriptor_ws_dd0597f97f3a9074, []int{10} } func (m *GetMaxAndMinSeqReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetMaxAndMinSeqReq.Unmarshal(m, b) @@ -1153,8 +989,8 @@ func (m *GetMaxAndMinSeqReq) XXX_DiscardUnknown() { var xxx_messageInfo_GetMaxAndMinSeqReq proto.InternalMessageInfo type GetMaxAndMinSeqResp struct { - MaxSeq int64 `protobuf:"varint,1,opt,name=maxSeq" json:"maxSeq,omitempty"` - MinSeq int64 `protobuf:"varint,2,opt,name=minSeq" json:"minSeq,omitempty"` + MaxSeq uint32 `protobuf:"varint,1,opt,name=maxSeq" json:"maxSeq,omitempty"` + MinSeq uint32 `protobuf:"varint,2,opt,name=minSeq" json:"minSeq,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -1164,7 +1000,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_44bd6efa690189ed, []int{13} + return fileDescriptor_ws_dd0597f97f3a9074, []int{11} } func (m *GetMaxAndMinSeqResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetMaxAndMinSeqResp.Unmarshal(m, b) @@ -1184,68 +1020,20 @@ func (m *GetMaxAndMinSeqResp) XXX_DiscardUnknown() { var xxx_messageInfo_GetMaxAndMinSeqResp proto.InternalMessageInfo -func (m *GetMaxAndMinSeqResp) GetMaxSeq() int64 { +func (m *GetMaxAndMinSeqResp) GetMaxSeq() uint32 { if m != nil { return m.MaxSeq } return 0 } -func (m *GetMaxAndMinSeqResp) GetMinSeq() int64 { +func (m *GetMaxAndMinSeqResp) GetMinSeq() uint32 { if m != nil { return m.MinSeq } return 0 } -type GatherFormat struct { - // @inject_tag: json:"id" - Id string `protobuf:"bytes,1,opt,name=id" json:"id"` - // @inject_tag: json:"list" - List []*MsgData `protobuf:"bytes,2,rep,name=list" json:"list"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *GatherFormat) Reset() { *m = GatherFormat{} } -func (m *GatherFormat) String() string { return proto.CompactTextString(m) } -func (*GatherFormat) ProtoMessage() {} -func (*GatherFormat) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_44bd6efa690189ed, []int{14} -} -func (m *GatherFormat) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_GatherFormat.Unmarshal(m, b) -} -func (m *GatherFormat) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_GatherFormat.Marshal(b, m, deterministic) -} -func (dst *GatherFormat) XXX_Merge(src proto.Message) { - xxx_messageInfo_GatherFormat.Merge(dst, src) -} -func (m *GatherFormat) XXX_Size() int { - return xxx_messageInfo_GatherFormat.Size(m) -} -func (m *GatherFormat) XXX_DiscardUnknown() { - xxx_messageInfo_GatherFormat.DiscardUnknown(m) -} - -var xxx_messageInfo_GatherFormat proto.InternalMessageInfo - -func (m *GatherFormat) GetId() string { - if m != nil { - return m.Id - } - return "" -} - -func (m *GatherFormat) GetList() []*MsgData { - if m != nil { - return m.List - } - return nil -} - type UserSendMsgResp struct { ServerMsgID string `protobuf:"bytes,1,opt,name=serverMsgID" json:"serverMsgID,omitempty"` ClientMsgID string `protobuf:"bytes,2,opt,name=clientMsgID" json:"clientMsgID,omitempty"` @@ -1259,7 +1047,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_44bd6efa690189ed, []int{15} + return fileDescriptor_ws_dd0597f97f3a9074, []int{12} } func (m *UserSendMsgResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_UserSendMsgResp.Unmarshal(m, b) @@ -1313,7 +1101,7 @@ type MsgData struct { MsgFrom int32 `protobuf:"varint,10,opt,name=msgFrom" json:"msgFrom,omitempty"` ContentType int32 `protobuf:"varint,11,opt,name=contentType" json:"contentType,omitempty"` Content []byte `protobuf:"bytes,12,opt,name=content,proto3" json:"content,omitempty"` - Seq int64 `protobuf:"varint,14,opt,name=seq" json:"seq,omitempty"` + 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"` @@ -1328,7 +1116,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_44bd6efa690189ed, []int{16} + return fileDescriptor_ws_dd0597f97f3a9074, []int{13} } func (m *MsgData) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MsgData.Unmarshal(m, b) @@ -1432,7 +1220,7 @@ func (m *MsgData) GetContent() []byte { return nil } -func (m *MsgData) GetSeq() int64 { +func (m *MsgData) GetSeq() uint32 { if m != nil { return m.Seq } @@ -1489,7 +1277,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_44bd6efa690189ed, []int{17} + return fileDescriptor_ws_dd0597f97f3a9074, []int{14} } func (m *OfflinePushInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_OfflinePushInfo.Unmarshal(m, b) @@ -1556,7 +1344,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_44bd6efa690189ed, []int{18} + return fileDescriptor_ws_dd0597f97f3a9074, []int{15} } func (m *TipsComm) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_TipsComm.Unmarshal(m, b) @@ -1606,7 +1394,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_44bd6efa690189ed, []int{19} + return fileDescriptor_ws_dd0597f97f3a9074, []int{16} } func (m *GroupCreatedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupCreatedTips.Unmarshal(m, b) @@ -1675,7 +1463,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_44bd6efa690189ed, []int{20} + return fileDescriptor_ws_dd0597f97f3a9074, []int{17} } func (m *GroupInfoSetTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupInfoSetTips.Unmarshal(m, b) @@ -1730,7 +1518,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_44bd6efa690189ed, []int{21} + return fileDescriptor_ws_dd0597f97f3a9074, []int{18} } func (m *JoinGroupApplicationTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_JoinGroupApplicationTips.Unmarshal(m, b) @@ -1786,7 +1574,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_44bd6efa690189ed, []int{22} + return fileDescriptor_ws_dd0597f97f3a9074, []int{19} } func (m *MemberQuitTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MemberQuitTips.Unmarshal(m, b) @@ -1841,7 +1629,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_44bd6efa690189ed, []int{23} + return fileDescriptor_ws_dd0597f97f3a9074, []int{20} } func (m *GroupApplicationAcceptedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupApplicationAcceptedTips.Unmarshal(m, b) @@ -1896,7 +1684,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_44bd6efa690189ed, []int{24} + return fileDescriptor_ws_dd0597f97f3a9074, []int{21} } func (m *GroupApplicationRejectedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupApplicationRejectedTips.Unmarshal(m, b) @@ -1952,7 +1740,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_44bd6efa690189ed, []int{25} + return fileDescriptor_ws_dd0597f97f3a9074, []int{22} } func (m *GroupOwnerTransferredTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupOwnerTransferredTips.Unmarshal(m, b) @@ -2015,7 +1803,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_44bd6efa690189ed, []int{26} + return fileDescriptor_ws_dd0597f97f3a9074, []int{23} } func (m *MemberKickedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MemberKickedTips.Unmarshal(m, b) @@ -2078,7 +1866,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_44bd6efa690189ed, []int{27} + return fileDescriptor_ws_dd0597f97f3a9074, []int{24} } func (m *MemberInvitedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MemberInvitedTips.Unmarshal(m, b) @@ -2140,7 +1928,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_44bd6efa690189ed, []int{28} + return fileDescriptor_ws_dd0597f97f3a9074, []int{25} } func (m *MemberEnterTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MemberEnterTips.Unmarshal(m, b) @@ -2194,7 +1982,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_44bd6efa690189ed, []int{29} + return fileDescriptor_ws_dd0597f97f3a9074, []int{26} } func (m *FriendApplication) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FriendApplication.Unmarshal(m, b) @@ -2247,7 +2035,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_44bd6efa690189ed, []int{30} + return fileDescriptor_ws_dd0597f97f3a9074, []int{27} } func (m *FromToUserID) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FromToUserID.Unmarshal(m, b) @@ -2293,7 +2081,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_44bd6efa690189ed, []int{31} + return fileDescriptor_ws_dd0597f97f3a9074, []int{28} } func (m *FriendApplicationTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FriendApplicationTips.Unmarshal(m, b) @@ -2333,7 +2121,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_44bd6efa690189ed, []int{32} + return fileDescriptor_ws_dd0597f97f3a9074, []int{29} } func (m *FriendApplicationApprovedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FriendApplicationApprovedTips.Unmarshal(m, b) @@ -2380,7 +2168,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_44bd6efa690189ed, []int{33} + return fileDescriptor_ws_dd0597f97f3a9074, []int{30} } func (m *FriendApplicationRejectedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FriendApplicationRejectedTips.Unmarshal(m, b) @@ -2428,7 +2216,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_44bd6efa690189ed, []int{34} + return fileDescriptor_ws_dd0597f97f3a9074, []int{31} } func (m *FriendAddedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FriendAddedTips.Unmarshal(m, b) @@ -2481,7 +2269,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_44bd6efa690189ed, []int{35} + return fileDescriptor_ws_dd0597f97f3a9074, []int{32} } func (m *FriendDeletedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FriendDeletedTips.Unmarshal(m, b) @@ -2519,7 +2307,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_44bd6efa690189ed, []int{36} + return fileDescriptor_ws_dd0597f97f3a9074, []int{33} } func (m *BlackAddedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_BlackAddedTips.Unmarshal(m, b) @@ -2557,7 +2345,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_44bd6efa690189ed, []int{37} + return fileDescriptor_ws_dd0597f97f3a9074, []int{34} } func (m *BlackDeletedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_BlackDeletedTips.Unmarshal(m, b) @@ -2595,7 +2383,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_44bd6efa690189ed, []int{38} + return fileDescriptor_ws_dd0597f97f3a9074, []int{35} } func (m *FriendInfoChangedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FriendInfoChangedTips.Unmarshal(m, b) @@ -2634,7 +2422,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_44bd6efa690189ed, []int{39} + return fileDescriptor_ws_dd0597f97f3a9074, []int{36} } func (m *UserInfoUpdatedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_UserInfoUpdatedTips.Unmarshal(m, b) @@ -2672,11 +2460,8 @@ func init() { proto.RegisterType((*FriendRequest)(nil), "server_api_params.FriendRequest") proto.RegisterType((*PullMessageBySeqListResp)(nil), "server_api_params.PullMessageBySeqListResp") proto.RegisterType((*PullMessageBySeqListReq)(nil), "server_api_params.PullMessageBySeqListReq") - proto.RegisterType((*PullMessageReq)(nil), "server_api_params.PullMessageReq") - proto.RegisterType((*PullMessageResp)(nil), "server_api_params.PullMessageResp") proto.RegisterType((*GetMaxAndMinSeqReq)(nil), "server_api_params.GetMaxAndMinSeqReq") proto.RegisterType((*GetMaxAndMinSeqResp)(nil), "server_api_params.GetMaxAndMinSeqResp") - proto.RegisterType((*GatherFormat)(nil), "server_api_params.GatherFormat") proto.RegisterType((*UserSendMsgResp)(nil), "server_api_params.UserSendMsgResp") proto.RegisterType((*MsgData)(nil), "server_api_params.MsgData") proto.RegisterMapType((map[string]bool)(nil), "server_api_params.MsgData.OptionsEntry") @@ -2705,134 +2490,127 @@ func init() { proto.RegisterType((*UserInfoUpdatedTips)(nil), "server_api_params.UserInfoUpdatedTips") } -func init() { proto.RegisterFile("sdk_ws/ws.proto", fileDescriptor_ws_44bd6efa690189ed) } - -var fileDescriptor_ws_44bd6efa690189ed = []byte{ - // 2010 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xe4, 0x59, 0x4f, 0x6f, 0x23, 0x49, - 0x15, 0x57, 0x77, 0xc7, 0x8e, 0xfd, 0x6c, 0xc7, 0x99, 0x9e, 0x65, 0x30, 0xc3, 0xec, 0x10, 0x5a, - 0xab, 0x25, 0x42, 0x22, 0x48, 0x83, 0x90, 0x60, 0x10, 0xa0, 0xfc, 0x67, 0x96, 0x38, 0x09, 0x9d, - 0x8c, 0x96, 0x03, 0xd2, 0xa8, 0xe3, 0x2e, 0x3b, 0xbd, 0x69, 0x57, 0xb5, 0xab, 0xbb, 0x33, 0x33, - 0x17, 0x0e, 0x70, 0xe1, 0x0b, 0xc0, 0x91, 0x03, 0x17, 0xc4, 0x05, 0x71, 0x41, 0x5c, 0x38, 0xf2, - 0x05, 0x38, 0xf3, 0x15, 0xb8, 0x72, 0x40, 0x42, 0x5a, 0x54, 0xaf, 0xaa, 0xbb, 0xab, 0xda, 0x4e, - 0xd6, 0x8a, 0xa2, 0x1d, 0x24, 0x6e, 0x7e, 0xbf, 0xae, 0xf7, 0xff, 0xd5, 0xab, 0x57, 0x65, 0xe8, - 0xa7, 0xe1, 0xd5, 0xab, 0xd7, 0xe9, 0x37, 0x5f, 0xa7, 0x5b, 0x09, 0x67, 0x19, 0x73, 0x1f, 0xa4, - 0x84, 0x5f, 0x13, 0xfe, 0x2a, 0x48, 0xa2, 0x57, 0x49, 0xc0, 0x83, 0x69, 0xea, 0xfd, 0xcb, 0x86, - 0xf6, 0x21, 0x67, 0x79, 0xf2, 0x82, 0x8e, 0x99, 0x3b, 0x80, 0xd5, 0x09, 0x12, 0x7b, 0x03, 0x6b, - 0xc3, 0xda, 0x6c, 0xfb, 0x05, 0xe9, 0x3e, 0x81, 0x36, 0xfe, 0x3c, 0x0e, 0xa6, 0x64, 0x60, 0xe3, - 0xb7, 0x0a, 0x70, 0x3d, 0xe8, 0x52, 0x96, 0x45, 0xe3, 0x68, 0x14, 0x64, 0x11, 0xa3, 0x03, 0x07, - 0x17, 0x18, 0x98, 0x58, 0x13, 0xd1, 0x8c, 0xb3, 0x30, 0x1f, 0xe1, 0x9a, 0x15, 0xb9, 0x46, 0xc7, - 0x84, 0xfe, 0x71, 0x30, 0x22, 0x2f, 0xfd, 0xa3, 0x41, 0x43, 0xea, 0x57, 0xa4, 0xbb, 0x01, 0x1d, - 0xf6, 0x9a, 0x12, 0xfe, 0x32, 0x25, 0xfc, 0xc5, 0xde, 0xa0, 0x89, 0x5f, 0x75, 0xc8, 0x7d, 0x0a, - 0x30, 0xe2, 0x24, 0xc8, 0xc8, 0x79, 0x34, 0x25, 0x83, 0xd5, 0x0d, 0x6b, 0xb3, 0xe7, 0x6b, 0x88, - 0x90, 0x30, 0x25, 0xd3, 0x0b, 0xc2, 0x77, 0x59, 0x4e, 0xb3, 0x41, 0x0b, 0x17, 0xe8, 0x90, 0xbb, - 0x06, 0x36, 0x79, 0x33, 0x68, 0xa3, 0x68, 0x9b, 0xbc, 0x71, 0x1f, 0x41, 0x33, 0xcd, 0x82, 0x2c, - 0x4f, 0x07, 0xb0, 0x61, 0x6d, 0x36, 0x7c, 0x45, 0xb9, 0x1f, 0x40, 0x0f, 0xe5, 0xb2, 0xc2, 0x9a, - 0x0e, 0xb2, 0x98, 0x60, 0x19, 0xb1, 0xf3, 0xb7, 0x09, 0x19, 0x74, 0x51, 0x40, 0x05, 0x78, 0x7f, - 0xb1, 0xe1, 0x21, 0xc6, 0x7d, 0x88, 0x06, 0x1c, 0xe4, 0x71, 0xfc, 0x19, 0x19, 0x78, 0x04, 0xcd, - 0x5c, 0xaa, 0x93, 0xe1, 0x57, 0x94, 0xd0, 0xc3, 0x59, 0x4c, 0x8e, 0xc8, 0x35, 0x89, 0x31, 0xf0, - 0x0d, 0xbf, 0x02, 0xdc, 0xc7, 0xd0, 0xfa, 0x84, 0x45, 0x14, 0x63, 0x22, 0x22, 0xee, 0xf8, 0x25, - 0x2d, 0xbe, 0xd1, 0x68, 0x74, 0x45, 0x45, 0x4a, 0x65, 0xb8, 0x4b, 0x5a, 0xcf, 0x44, 0xd3, 0xcc, - 0xc4, 0x87, 0xb0, 0x16, 0x24, 0xc9, 0x30, 0xa0, 0x13, 0xc2, 0xa5, 0xd2, 0x55, 0x54, 0x5a, 0x43, - 0x45, 0x3e, 0x84, 0xa6, 0x33, 0x96, 0xf3, 0x11, 0xc1, 0x70, 0x37, 0x7c, 0x0d, 0x11, 0x72, 0x58, - 0x42, 0xb8, 0x16, 0x46, 0x19, 0xf9, 0x1a, 0xaa, 0xb2, 0x02, 0x45, 0x56, 0xbc, 0xdf, 0x5a, 0xb0, - 0x76, 0x9a, 0x5f, 0xc4, 0xd1, 0x08, 0x17, 0x88, 0xa0, 0x55, 0xa1, 0xb1, 0x8c, 0xd0, 0xe8, 0x0e, - 0xda, 0x37, 0x3b, 0xe8, 0x98, 0x0e, 0x3e, 0x82, 0xe6, 0x84, 0xd0, 0x90, 0x70, 0x0c, 0x58, 0xc3, - 0x57, 0xd4, 0x02, 0xc7, 0x1b, 0x8b, 0x1c, 0xf7, 0x7e, 0x63, 0x43, 0xeb, 0x73, 0x36, 0x6d, 0x03, - 0x3a, 0xc9, 0x25, 0xa3, 0xe4, 0x38, 0x17, 0xc5, 0xa4, 0x92, 0xa9, 0x43, 0xee, 0x7b, 0xd0, 0xb8, - 0x88, 0x78, 0x76, 0x89, 0xd9, 0xec, 0xf9, 0x92, 0x10, 0x28, 0x99, 0x06, 0x91, 0x4c, 0x61, 0xdb, - 0x97, 0x84, 0x8a, 0x78, 0xab, 0xdc, 0x07, 0xe6, 0xce, 0x6a, 0xcf, 0xed, 0xac, 0xf9, 0xc0, 0xc0, - 0xc2, 0xc0, 0xfc, 0xdb, 0x02, 0x38, 0xe0, 0x11, 0xa1, 0x21, 0x86, 0xa6, 0xb6, 0xa5, 0xad, 0xf9, - 0x2d, 0xfd, 0x08, 0x9a, 0x9c, 0x4c, 0x03, 0x7e, 0x55, 0x94, 0xbc, 0xa4, 0x6a, 0x06, 0x39, 0x73, - 0x06, 0x7d, 0x0f, 0x60, 0x8c, 0x7a, 0x84, 0x1c, 0x0c, 0x55, 0xe7, 0xd9, 0x97, 0xb7, 0xe6, 0x9a, - 0xdf, 0x56, 0x91, 0x25, 0x5f, 0x5b, 0x2e, 0xf6, 0x53, 0x10, 0x86, 0xaa, 0x6c, 0x65, 0x86, 0x2b, - 0x60, 0x41, 0xd5, 0x36, 0x6f, 0xa9, 0xda, 0xd5, 0xb2, 0x6a, 0xff, 0x69, 0x41, 0x7b, 0x27, 0x0e, - 0x46, 0x57, 0x4b, 0xba, 0x6e, 0xba, 0x68, 0xcf, 0xb9, 0x78, 0x08, 0xbd, 0x0b, 0x21, 0xae, 0x70, - 0x01, 0xa3, 0xd0, 0x79, 0xf6, 0xd5, 0x05, 0x5e, 0x9a, 0x9b, 0xc5, 0x37, 0xf9, 0x4c, 0x77, 0x57, - 0x3e, 0xdb, 0xdd, 0xc6, 0x2d, 0xee, 0x36, 0x4b, 0x77, 0xff, 0x6e, 0x43, 0x17, 0xdb, 0x9b, 0x4f, - 0x66, 0x39, 0x49, 0x33, 0xf7, 0xfb, 0xd0, 0xca, 0x0b, 0x53, 0xad, 0x65, 0x4d, 0x2d, 0x59, 0xdc, - 0xe7, 0xaa, 0x99, 0x22, 0xbf, 0x8d, 0xfc, 0x4f, 0x16, 0xf0, 0x97, 0x27, 0x99, 0x5f, 0x2d, 0x17, - 0x07, 0xcf, 0x65, 0x40, 0xc3, 0x98, 0xf8, 0x24, 0xcd, 0xe3, 0x4c, 0xf5, 0x48, 0x03, 0x93, 0x95, - 0x36, 0x1b, 0xa6, 0x13, 0x75, 0x2c, 0x29, 0x4a, 0x44, 0x47, 0xae, 0x13, 0x9f, 0xa4, 0xeb, 0x15, - 0x20, 0x36, 0x2a, 0x27, 0x33, 0xcc, 0x90, 0xdc, 0x56, 0x05, 0x59, 0xe9, 0x54, 0x51, 0x93, 0x85, - 0x60, 0x60, 0x22, 0xc5, 0x92, 0x46, 0x01, 0xf2, 0x3c, 0xd2, 0x90, 0xfa, 0x71, 0xe4, 0xfd, 0xc3, - 0x81, 0x9e, 0xdc, 0x3e, 0x45, 0x50, 0x9f, 0x8a, 0x3a, 0x67, 0x53, 0xa3, 0x8a, 0x34, 0x44, 0x58, - 0x21, 0xa8, 0x63, 0xb3, 0xd1, 0x18, 0x98, 0x28, 0x45, 0x41, 0x1f, 0x18, 0x0d, 0x47, 0x87, 0x0a, - 0x2d, 0x87, 0x7a, 0xe3, 0xd1, 0x10, 0xd1, 0xca, 0x32, 0x66, 0x54, 0x47, 0x49, 0x0b, 0xde, 0x8c, - 0x95, 0xfa, 0x65, 0x7d, 0x68, 0x88, 0x88, 0x6f, 0xc6, 0x0a, 0xdd, 0x32, 0x48, 0x15, 0x20, 0x25, - 0x2b, 0xbd, 0xf2, 0x00, 0x29, 0xe9, 0xb9, 0xac, 0xb6, 0x6f, 0xcd, 0x2a, 0x18, 0x59, 0x35, 0x37, - 0x57, 0x67, 0x6e, 0x73, 0x7d, 0x00, 0x3d, 0x29, 0xa7, 0x28, 0xfa, 0xae, 0x3c, 0xe0, 0x0d, 0xd0, - 0xac, 0x8d, 0x5e, 0xbd, 0x36, 0xcc, 0xec, 0xae, 0xdd, 0x90, 0xdd, 0x7e, 0x99, 0xdd, 0x5f, 0xd9, - 0x30, 0x38, 0xcd, 0xe3, 0x78, 0x48, 0xd2, 0x34, 0x98, 0x90, 0x9d, 0xb7, 0x67, 0x64, 0x76, 0x14, - 0xa5, 0x99, 0x4f, 0xd2, 0x44, 0x14, 0x1a, 0xe1, 0x7c, 0x97, 0x85, 0x04, 0xb3, 0xdc, 0xf0, 0x0b, - 0x52, 0xb8, 0x48, 0x38, 0x17, 0x16, 0xa8, 0x16, 0x29, 0x29, 0x81, 0x4f, 0x83, 0x37, 0x67, 0x64, - 0x86, 0x19, 0x75, 0x7c, 0x45, 0x21, 0x1e, 0x51, 0x81, 0xaf, 0x28, 0x1c, 0x29, 0x77, 0x1f, 0x7a, - 0x69, 0x44, 0x27, 0xb2, 0x38, 0x65, 0xb1, 0x3b, 0x9b, 0x9d, 0x67, 0x5f, 0x59, 0xb4, 0xc9, 0x82, - 0xec, 0x92, 0xf0, 0x03, 0xc6, 0xa7, 0x41, 0xe6, 0x9b, 0x5c, 0xee, 0x2e, 0x74, 0x71, 0xe3, 0x15, - 0x52, 0x9a, 0xcb, 0x49, 0x31, 0x98, 0xbc, 0x29, 0x7c, 0x71, 0x71, 0x24, 0x66, 0x37, 0x1e, 0xa7, - 0xa2, 0xa1, 0x62, 0x47, 0x8a, 0x18, 0x2d, 0x27, 0x24, 0x1d, 0x12, 0x21, 0x4c, 0xa5, 0x9c, 0x81, - 0xb3, 0xe1, 0x6c, 0x3a, 0x7e, 0x41, 0x7a, 0x3f, 0x17, 0xf3, 0x44, 0xa9, 0xee, 0x36, 0x2d, 0x8f, - 0xa1, 0x95, 0x92, 0xd9, 0x0e, 0x99, 0x44, 0x14, 0x55, 0x38, 0x7e, 0x49, 0xe3, 0xb0, 0x48, 0x66, - 0xfb, 0x34, 0x2c, 0x02, 0x2e, 0xa9, 0xba, 0x65, 0x2b, 0x73, 0x96, 0x79, 0x9f, 0x5a, 0xd0, 0x37, - 0x0c, 0xf8, 0xbf, 0x4b, 0xf8, 0x7b, 0xe0, 0x1e, 0x92, 0x6c, 0x18, 0xbc, 0xd9, 0xa6, 0xe1, 0x10, - 0xcd, 0xf3, 0xc9, 0xcc, 0xdb, 0x87, 0x87, 0x73, 0x68, 0x9a, 0x68, 0x8e, 0x5a, 0x37, 0x38, 0x6a, - 0xeb, 0x8e, 0x7a, 0xc7, 0xd0, 0xd5, 0x55, 0x8b, 0x8d, 0x17, 0x85, 0x2a, 0xb1, 0x76, 0x14, 0xba, - 0x5b, 0xb0, 0x12, 0x8b, 0xaa, 0xb0, 0xd1, 0xf2, 0xc7, 0x0b, 0x2c, 0x1f, 0xa6, 0x93, 0xbd, 0x20, - 0x0b, 0x7c, 0x5c, 0xe7, 0xcd, 0xa0, 0x2f, 0xec, 0x3e, 0x23, 0x34, 0x1c, 0xa6, 0x13, 0x34, 0x69, - 0x03, 0x3a, 0x92, 0x6b, 0x98, 0x4e, 0xaa, 0xe3, 0x5c, 0x83, 0xc4, 0x8a, 0x51, 0x1c, 0x11, 0x9a, - 0xc9, 0x15, 0xaa, 0x3e, 0x35, 0x48, 0xd6, 0x16, 0x0d, 0xcb, 0x89, 0x06, 0x6b, 0x4b, 0xd2, 0xde, - 0x5f, 0x1b, 0xb0, 0xaa, 0x8c, 0x90, 0x75, 0x46, 0xc3, 0xaa, 0x36, 0x25, 0x25, 0x7b, 0xdd, 0xe8, - 0xba, 0xba, 0x1e, 0x48, 0x4a, 0xbf, 0x50, 0x38, 0xe6, 0x85, 0xa2, 0x66, 0xd3, 0xca, 0xbc, 0x4d, - 0x35, 0xbf, 0x1a, 0xf3, 0x7e, 0x7d, 0x1d, 0xd6, 0x53, 0xec, 0xc7, 0xa7, 0x71, 0x90, 0x8d, 0x19, - 0x9f, 0xaa, 0x81, 0xa8, 0xe1, 0xcf, 0xe1, 0x62, 0x96, 0x90, 0x58, 0x79, 0x1e, 0xc8, 0x86, 0x5f, - 0x43, 0x45, 0xf7, 0x95, 0x48, 0x71, 0x2e, 0xc8, 0x49, 0xd4, 0x04, 0xa5, 0x6d, 0x69, 0x1a, 0x31, - 0x8a, 0x17, 0x2c, 0xd9, 0xfe, 0x75, 0x48, 0x78, 0x3e, 0x4d, 0x27, 0x07, 0x9c, 0x4d, 0xd5, 0x3c, - 0x5a, 0x90, 0xe8, 0x39, 0xa3, 0x19, 0xa1, 0x19, 0xf2, 0x76, 0x24, 0xaf, 0x06, 0x09, 0x5e, 0x45, - 0x62, 0xef, 0xef, 0xfa, 0x05, 0xe9, 0xae, 0x83, 0x93, 0x92, 0x19, 0x36, 0x74, 0xc7, 0x17, 0x3f, - 0x8d, 0xcc, 0xf5, 0xcd, 0xcc, 0xd5, 0x4e, 0x9a, 0x75, 0xfc, 0xaa, 0x9f, 0x34, 0xd5, 0x15, 0xf3, - 0x81, 0x71, 0xc5, 0xdc, 0x86, 0x55, 0x96, 0x88, 0xfe, 0x90, 0x0e, 0x5c, 0xac, 0xcb, 0xaf, 0xdd, - 0x5c, 0x97, 0x5b, 0x27, 0x72, 0xe5, 0x3e, 0xcd, 0xf8, 0x5b, 0xbf, 0xe0, 0x73, 0x8f, 0xa0, 0xcf, - 0xc6, 0xe3, 0x38, 0xa2, 0xe4, 0x34, 0x4f, 0x2f, 0x71, 0x70, 0x7a, 0x88, 0x83, 0x93, 0xb7, 0x40, - 0xd4, 0x89, 0xb9, 0xd2, 0xaf, 0xb3, 0x3e, 0x7e, 0x0e, 0x5d, 0x5d, 0x8d, 0x08, 0xc3, 0x15, 0x79, - 0xab, 0x6a, 0x50, 0xfc, 0x14, 0x77, 0x89, 0xeb, 0x20, 0xce, 0xe5, 0x94, 0xd1, 0xf2, 0x25, 0xf1, - 0xdc, 0xfe, 0x8e, 0xe5, 0xfd, 0xda, 0x82, 0x7e, 0x4d, 0x81, 0x58, 0x9d, 0x45, 0x59, 0x4c, 0x94, - 0x04, 0x49, 0xb8, 0x2e, 0xac, 0x84, 0x24, 0x1d, 0xa9, 0x12, 0xc6, 0xdf, 0xea, 0xa0, 0x74, 0xca, - 0xdb, 0x88, 0x07, 0xdd, 0xe8, 0xe4, 0x4c, 0x08, 0x3a, 0x63, 0x39, 0x0d, 0xcb, 0x77, 0x04, 0x0d, - 0x13, 0x25, 0x14, 0x9d, 0x9c, 0xed, 0x04, 0xe1, 0x84, 0xc8, 0xdb, 0x7e, 0x03, 0x6d, 0x32, 0x41, - 0x6f, 0x0f, 0x5a, 0xe7, 0x51, 0x92, 0xee, 0xb2, 0xe9, 0x54, 0x24, 0x22, 0x24, 0x99, 0xb8, 0x0a, - 0x59, 0x98, 0x6f, 0x45, 0x89, 0x52, 0x09, 0xc9, 0x38, 0xc8, 0xe3, 0x4c, 0x2c, 0x2d, 0x36, 0xae, - 0x06, 0x79, 0x7f, 0xb3, 0x61, 0x1d, 0xe7, 0xce, 0x5d, 0x4c, 0x6b, 0x28, 0x40, 0xf7, 0x19, 0x34, - 0x70, 0x9b, 0xa9, 0x59, 0xf7, 0xf6, 0x59, 0x55, 0x2e, 0x75, 0x7f, 0x00, 0x4d, 0x86, 0x2d, 0x51, - 0x0d, 0xb8, 0x1f, 0xde, 0xc4, 0x64, 0x3e, 0x19, 0xf8, 0x8a, 0xcb, 0x3d, 0x00, 0x90, 0xaf, 0x19, - 0xe5, 0x21, 0xb7, 0xbc, 0x0c, 0x8d, 0x53, 0x04, 0xaf, 0x3c, 0x9e, 0xb4, 0x77, 0x03, 0x13, 0x74, - 0x8f, 0x61, 0x0d, 0xcd, 0x3e, 0x29, 0x2e, 0x2d, 0x18, 0xe3, 0xe5, 0x35, 0xd6, 0xb8, 0xbd, 0xdf, - 0x59, 0x2a, 0x8c, 0xe2, 0xeb, 0x19, 0xc1, 0xd8, 0x6a, 0x21, 0xb1, 0xee, 0x14, 0x92, 0xc7, 0xd0, - 0x9a, 0xe6, 0xda, 0x1d, 0xca, 0xf1, 0x4b, 0xba, 0x4a, 0x91, 0xb3, 0x74, 0x8a, 0xbc, 0xdf, 0x5b, - 0x30, 0xf8, 0x88, 0x45, 0x14, 0x3f, 0x6c, 0x27, 0x49, 0xac, 0x1e, 0xb7, 0xee, 0x9c, 0xf3, 0x1f, - 0x42, 0x3b, 0x90, 0x62, 0x68, 0xa6, 0xd2, 0xbe, 0xc4, 0xbd, 0xa8, 0xe2, 0xd1, 0x46, 0x5c, 0x47, - 0x1f, 0x71, 0xbd, 0x3f, 0x5a, 0xb0, 0x26, 0x83, 0xf2, 0x93, 0x3c, 0xca, 0xee, 0x6c, 0xdf, 0x0e, - 0xb4, 0x66, 0x79, 0x94, 0xdd, 0xa1, 0x2a, 0x4b, 0xbe, 0xf9, 0x7a, 0x72, 0x16, 0xd4, 0x93, 0xf7, - 0x27, 0x0b, 0x9e, 0xd4, 0xc3, 0xba, 0x3d, 0x1a, 0x91, 0xe4, 0x5d, 0x6e, 0x29, 0x63, 0xc4, 0x5f, - 0xa9, 0x8d, 0xf8, 0x0b, 0x4d, 0xf6, 0xc9, 0x27, 0x64, 0xf4, 0xbf, 0x6b, 0xf2, 0x2f, 0x6d, 0xf8, - 0xd2, 0x61, 0xb9, 0xf1, 0xce, 0x79, 0x40, 0xd3, 0x31, 0xe1, 0xfc, 0x1d, 0xda, 0x7b, 0x04, 0x3d, - 0x4a, 0x5e, 0x57, 0x36, 0xa9, 0xed, 0xb8, 0xac, 0x18, 0x93, 0x79, 0xb9, 0xde, 0xe5, 0xfd, 0xc7, - 0x82, 0x75, 0x29, 0xe7, 0xc7, 0xd1, 0xe8, 0xea, 0x1d, 0x3a, 0x7f, 0x0c, 0x6b, 0x57, 0x68, 0x81, - 0xa0, 0xee, 0xd0, 0xb6, 0x6b, 0xdc, 0x4b, 0xba, 0xff, 0xa9, 0x05, 0x0f, 0xa4, 0xa0, 0x17, 0xf4, - 0x3a, 0x7a, 0x97, 0xc5, 0x7a, 0x0a, 0xfd, 0x48, 0x9a, 0x70, 0xc7, 0x00, 0xd4, 0xd9, 0x97, 0x8c, - 0xc0, 0x9f, 0x2d, 0xe8, 0x4b, 0x49, 0xfb, 0x34, 0x23, 0xfc, 0xce, 0xfe, 0xff, 0x08, 0x3a, 0x84, - 0x66, 0x3c, 0xa0, 0x77, 0xe9, 0x90, 0x3a, 0xeb, 0x92, 0x4d, 0xf2, 0x0a, 0x1e, 0xc8, 0x17, 0x20, - 0xad, 0xe3, 0x88, 0x59, 0x35, 0x08, 0xe5, 0xf8, 0x29, 0x6f, 0x44, 0x05, 0x69, 0xbe, 0xed, 0xa9, - 0x3f, 0x6d, 0xaa, 0xb7, 0xbd, 0xa7, 0x00, 0x41, 0x18, 0x7e, 0xcc, 0x78, 0x18, 0xd1, 0xe2, 0xf8, - 0xd0, 0x10, 0xef, 0x23, 0xe8, 0x8a, 0x69, 0xf9, 0x5c, 0x7b, 0xcb, 0xb9, 0xf5, 0xb5, 0x49, 0x7f, - 0x07, 0xb2, 0xcd, 0x77, 0x20, 0xef, 0x67, 0xf0, 0x85, 0x39, 0xc3, 0x31, 0xea, 0xbb, 0xf2, 0x89, - 0xaa, 0x50, 0xa2, 0x82, 0xbf, 0xe8, 0xfe, 0xa8, 0xdb, 0xe2, 0x1b, 0x4c, 0xde, 0x2f, 0x2c, 0x78, - 0x7f, 0x4e, 0xfc, 0x76, 0x92, 0x70, 0x76, 0xad, 0x8a, 0xfb, 0x3e, 0xd4, 0x98, 0xad, 0xd5, 0xae, - 0xb7, 0xd6, 0x85, 0x46, 0x18, 0xc7, 0xc1, 0xe7, 0x60, 0xc4, 0x1f, 0x2c, 0xe8, 0x2b, 0x23, 0xc2, - 0x50, 0xa9, 0xfd, 0x36, 0x34, 0xe5, 0xf3, 0xb6, 0x52, 0xf8, 0xfe, 0x42, 0x85, 0xc5, 0xb3, 0xbc, - 0xaf, 0x16, 0xcf, 0x57, 0xa4, 0xbd, 0x68, 0x0c, 0xfc, 0x6e, 0xd9, 0x01, 0x96, 0x7e, 0x80, 0x56, - 0x0c, 0xde, 0x4f, 0x8b, 0x62, 0xde, 0x23, 0x31, 0xb9, 0xcf, 0x18, 0x79, 0x2f, 0x61, 0x0d, 0xdf, - 0xda, 0xab, 0x18, 0xdc, 0x8b, 0xd8, 0x8f, 0x61, 0x1d, 0xc5, 0xde, 0xbb, 0xbd, 0xe5, 0xee, 0x10, - 0xf1, 0xd9, 0xbd, 0x0c, 0xe8, 0xe4, 0x3e, 0xa5, 0x7f, 0x03, 0x1e, 0x16, 0xb1, 0x7f, 0x99, 0x84, - 0xe5, 0x15, 0xe5, 0x86, 0x47, 0xae, 0x8b, 0x26, 0xfe, 0x57, 0xfc, 0xad, 0xff, 0x06, 0x00, 0x00, - 0xff, 0xff, 0xaf, 0x96, 0xca, 0x38, 0x3e, 0x1e, 0x00, 0x00, +func init() { proto.RegisterFile("sdk_ws/ws.proto", fileDescriptor_ws_dd0597f97f3a9074) } + +var fileDescriptor_ws_dd0597f97f3a9074 = []byte{ + // 1901 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x59, 0x4f, 0x6f, 0x23, 0x4b, + 0x11, 0xd7, 0xd8, 0xb1, 0x63, 0x97, 0xe3, 0x38, 0x3b, 0xfb, 0x58, 0xcc, 0xb2, 0x6f, 0x09, 0xa3, + 0xa7, 0xc7, 0x0a, 0x89, 0x20, 0x2d, 0x42, 0x82, 0x45, 0x80, 0xb2, 0xc9, 0x26, 0xec, 0x23, 0x4e, + 0xc2, 0x38, 0xab, 0xc7, 0x01, 0x69, 0x35, 0xf1, 0xb4, 0x9d, 0x79, 0x19, 0x77, 0x8f, 0xbb, 0x67, + 0xb2, 0xbb, 0x12, 0x27, 0xf8, 0x0c, 0x70, 0xe4, 0xc0, 0x05, 0x71, 0x41, 0x5c, 0x10, 0x17, 0x8e, + 0x7c, 0x01, 0xce, 0x7c, 0x05, 0xae, 0x1c, 0x90, 0x90, 0x40, 0x5d, 0xdd, 0x33, 0xd3, 0x3d, 0x76, + 0xf2, 0x2c, 0x2b, 0xda, 0xbc, 0x9b, 0xab, 0xa6, 0xab, 0xba, 0xea, 0x57, 0x7f, 0xba, 0xba, 0x0d, + 0x3d, 0x11, 0x5e, 0xbe, 0x7e, 0x23, 0xbe, 0xfd, 0x46, 0xec, 0x24, 0x9c, 0xa5, 0xcc, 0xbd, 0x27, + 0x08, 0xbf, 0x22, 0xfc, 0x75, 0x90, 0x44, 0xaf, 0x93, 0x80, 0x07, 0x53, 0xe1, 0xfd, 0xbb, 0x06, + 0xed, 0x43, 0xce, 0xb2, 0xe4, 0x25, 0x1d, 0x33, 0xb7, 0x0f, 0xeb, 0x13, 0x24, 0xf6, 0xfb, 0xce, + 0xb6, 0xf3, 0xa4, 0xed, 0xe7, 0xa4, 0xfb, 0x08, 0xda, 0xf8, 0xf3, 0x38, 0x98, 0x92, 0x7e, 0x0d, + 0xbf, 0x95, 0x0c, 0xd7, 0x83, 0x0d, 0xca, 0xd2, 0x68, 0x1c, 0x8d, 0x82, 0x34, 0x62, 0xb4, 0x5f, + 0xc7, 0x05, 0x16, 0x4f, 0xae, 0x89, 0x68, 0xca, 0x59, 0x98, 0x8d, 0x70, 0xcd, 0x9a, 0x5a, 0x63, + 0xf2, 0xe4, 0xfe, 0xe3, 0x60, 0x44, 0x5e, 0xf9, 0x47, 0xfd, 0x86, 0xda, 0x5f, 0x93, 0xee, 0x36, + 0x74, 0xd8, 0x1b, 0x4a, 0xf8, 0x2b, 0x41, 0xf8, 0xcb, 0xfd, 0x7e, 0x13, 0xbf, 0x9a, 0x2c, 0xf7, + 0x31, 0xc0, 0x88, 0x93, 0x20, 0x25, 0x67, 0xd1, 0x94, 0xf4, 0xd7, 0xb7, 0x9d, 0x27, 0x5d, 0xdf, + 0xe0, 0x48, 0x0d, 0x53, 0x32, 0x3d, 0x27, 0x7c, 0x8f, 0x65, 0x34, 0xed, 0xb7, 0x70, 0x81, 0xc9, + 0x72, 0x37, 0xa1, 0x46, 0xde, 0xf6, 0xdb, 0xa8, 0xba, 0x46, 0xde, 0xba, 0x0f, 0xa0, 0x29, 0xd2, + 0x20, 0xcd, 0x44, 0x1f, 0xb6, 0x9d, 0x27, 0x0d, 0x5f, 0x53, 0xee, 0x47, 0xd0, 0x45, 0xbd, 0x2c, + 0xb7, 0xa6, 0x83, 0x22, 0x36, 0xb3, 0x40, 0xec, 0xec, 0x5d, 0x42, 0xfa, 0x1b, 0xa8, 0xa0, 0x64, + 0x78, 0x7f, 0xad, 0xc1, 0x7d, 0xc4, 0x7d, 0x80, 0x06, 0x1c, 0x64, 0x71, 0xfc, 0x39, 0x11, 0x78, + 0x00, 0xcd, 0x4c, 0x6d, 0xa7, 0xe0, 0xd7, 0x94, 0xdc, 0x87, 0xb3, 0x98, 0x1c, 0x91, 0x2b, 0x12, + 0x23, 0xf0, 0x0d, 0xbf, 0x64, 0xb8, 0x0f, 0xa1, 0xf5, 0x19, 0x8b, 0x28, 0x62, 0x22, 0x11, 0xaf, + 0xfb, 0x05, 0x2d, 0xbf, 0xd1, 0x68, 0x74, 0x49, 0x65, 0x48, 0x15, 0xdc, 0x05, 0x6d, 0x46, 0xa2, + 0x69, 0x47, 0xe2, 0x63, 0xd8, 0x0c, 0x92, 0x64, 0x10, 0xd0, 0x09, 0xe1, 0x6a, 0xd3, 0x75, 0xdc, + 0xb4, 0xc2, 0x95, 0xf1, 0x90, 0x3b, 0x0d, 0x59, 0xc6, 0x47, 0x04, 0xe1, 0x6e, 0xf8, 0x06, 0x47, + 0xea, 0x61, 0x09, 0xe1, 0x06, 0x8c, 0x0a, 0xf9, 0x0a, 0x57, 0x47, 0x05, 0xf2, 0xa8, 0x78, 0xbf, + 0x73, 0x60, 0xf3, 0x34, 0x3b, 0x8f, 0xa3, 0x11, 0x2e, 0x90, 0xa0, 0x95, 0xd0, 0x38, 0x16, 0x34, + 0xa6, 0x83, 0xb5, 0xeb, 0x1d, 0xac, 0xdb, 0x0e, 0x3e, 0x80, 0xe6, 0x84, 0xd0, 0x90, 0x70, 0x04, + 0xac, 0xe1, 0x6b, 0x6a, 0x81, 0xe3, 0x8d, 0x45, 0x8e, 0x7b, 0xbf, 0xad, 0x41, 0xeb, 0x3d, 0x9b, + 0xb6, 0x0d, 0x9d, 0xe4, 0x82, 0x51, 0x72, 0x9c, 0xc9, 0x64, 0xd2, 0xc1, 0x34, 0x59, 0xee, 0x07, + 0xd0, 0x38, 0x8f, 0x78, 0x7a, 0x81, 0xd1, 0xec, 0xfa, 0x8a, 0x90, 0x5c, 0x32, 0x0d, 0x22, 0x15, + 0xc2, 0xb6, 0xaf, 0x08, 0x8d, 0x78, 0xab, 0xa8, 0x03, 0xbb, 0xb2, 0xda, 0x73, 0x95, 0x35, 0x0f, + 0x0c, 0x2c, 0x04, 0xe6, 0x3f, 0x0e, 0xc0, 0x01, 0x8f, 0x08, 0x0d, 0x11, 0x9a, 0x4a, 0x49, 0x3b, + 0xf3, 0x25, 0xfd, 0x00, 0x9a, 0x9c, 0x4c, 0x03, 0x7e, 0x99, 0xa7, 0xbc, 0xa2, 0x2a, 0x06, 0xd5, + 0xe7, 0x0c, 0xfa, 0x01, 0xc0, 0x18, 0xf7, 0x91, 0x7a, 0x10, 0xaa, 0xce, 0xd3, 0xaf, 0xee, 0xcc, + 0x35, 0xbf, 0x9d, 0x3c, 0x4a, 0xbe, 0xb1, 0x5c, 0xd6, 0x53, 0x10, 0x86, 0x3a, 0x6d, 0x55, 0x84, + 0x4b, 0xc6, 0x82, 0xac, 0x6d, 0xde, 0x90, 0xb5, 0xeb, 0x45, 0xd6, 0xfe, 0xcb, 0x81, 0xf6, 0xf3, + 0x38, 0x18, 0x5d, 0x2e, 0xe9, 0xba, 0xed, 0x62, 0x6d, 0xce, 0xc5, 0x43, 0xe8, 0x9e, 0x4b, 0x75, + 0xb9, 0x0b, 0x88, 0x42, 0xe7, 0xe9, 0xd7, 0x17, 0x78, 0x69, 0x17, 0x8b, 0x6f, 0xcb, 0xd9, 0xee, + 0xae, 0x7d, 0xbe, 0xbb, 0x8d, 0x1b, 0xdc, 0x6d, 0x16, 0xee, 0xfe, 0xa3, 0x06, 0x1b, 0xd8, 0xde, + 0x7c, 0x32, 0xcb, 0x88, 0x48, 0xdd, 0x1f, 0x42, 0x2b, 0xcb, 0x4d, 0x75, 0x96, 0x35, 0xb5, 0x10, + 0x71, 0x9f, 0xe9, 0x66, 0x8a, 0xf2, 0x35, 0x94, 0x7f, 0xb4, 0x40, 0xbe, 0x38, 0xc9, 0xfc, 0x72, + 0xb9, 0x3c, 0x78, 0x2e, 0x02, 0x1a, 0xc6, 0xc4, 0x27, 0x22, 0x8b, 0x53, 0xdd, 0x23, 0x2d, 0x9e, + 0xca, 0xb4, 0xd9, 0x40, 0x4c, 0xf4, 0xb1, 0xa4, 0x29, 0x89, 0x8e, 0x5a, 0x27, 0x3f, 0x29, 0xd7, + 0x4b, 0x86, 0x2c, 0x54, 0x4e, 0x66, 0x18, 0x21, 0x55, 0x56, 0x39, 0x59, 0xee, 0xa9, 0x51, 0x53, + 0x89, 0x60, 0xf1, 0x64, 0x88, 0x15, 0x8d, 0x0a, 0xd4, 0x79, 0x64, 0x70, 0xaa, 0xc7, 0x91, 0xf7, + 0xcf, 0x3a, 0x74, 0x55, 0xf9, 0xe4, 0xa0, 0x3e, 0x96, 0x79, 0xce, 0xa6, 0x56, 0x16, 0x19, 0x1c, + 0x69, 0x85, 0xa4, 0x8e, 0xed, 0x46, 0x63, 0xf1, 0x64, 0x2a, 0x4a, 0xfa, 0xc0, 0x6a, 0x38, 0x26, + 0x2b, 0xdf, 0xe5, 0xd0, 0x6c, 0x3c, 0x06, 0x47, 0xb6, 0xb2, 0x94, 0x59, 0xd9, 0x51, 0xd0, 0x52, + 0x36, 0x65, 0xc5, 0xfe, 0x2a, 0x3f, 0x0c, 0x8e, 0xc4, 0x37, 0x65, 0xf9, 0xde, 0x0a, 0xa4, 0x92, + 0xa1, 0x34, 0xeb, 0x7d, 0xd5, 0x01, 0x52, 0xd0, 0x73, 0x51, 0x6d, 0xdf, 0x18, 0x55, 0xb0, 0xa2, + 0x6a, 0x17, 0x57, 0x67, 0xae, 0xb8, 0x3e, 0x82, 0xae, 0xd2, 0x93, 0x27, 0xfd, 0x86, 0x3a, 0xe0, + 0x2d, 0xa6, 0x9d, 0x1b, 0xdd, 0x6a, 0x6e, 0xd8, 0xd1, 0xdd, 0xbc, 0x26, 0xba, 0xbd, 0x22, 0xba, + 0xbf, 0x84, 0xfe, 0x69, 0x16, 0xc7, 0x03, 0x22, 0x44, 0x30, 0x21, 0xcf, 0xdf, 0x0d, 0xc9, 0xec, + 0x28, 0x12, 0xa9, 0x4f, 0x44, 0x22, 0xf3, 0x8c, 0x70, 0xbe, 0xc7, 0x42, 0x82, 0x41, 0x6e, 0xf8, + 0x39, 0x29, 0x3d, 0x24, 0x9c, 0x4b, 0x03, 0x74, 0x87, 0x54, 0x94, 0xbb, 0x03, 0x6b, 0x71, 0x24, + 0x64, 0xae, 0xd7, 0x9f, 0x74, 0x9e, 0x3e, 0x5c, 0x50, 0x2a, 0x03, 0x31, 0xd9, 0x0f, 0xd2, 0xc0, + 0xc7, 0x75, 0xde, 0x14, 0xbe, 0xbc, 0x78, 0xf7, 0xd9, 0xb5, 0x27, 0x98, 0xec, 0x61, 0xd8, 0x04, + 0x22, 0x46, 0x8b, 0xa1, 0xc4, 0x64, 0x49, 0xb3, 0x85, 0xd2, 0x83, 0x76, 0x74, 0xfd, 0x9c, 0xf4, + 0x3e, 0x00, 0xf7, 0x90, 0xa4, 0x83, 0xe0, 0xed, 0x2e, 0x0d, 0x07, 0x11, 0x1d, 0x92, 0x99, 0x4f, + 0x66, 0xde, 0x0b, 0xb8, 0x3f, 0xc7, 0x15, 0x89, 0x34, 0x60, 0x1a, 0xbc, 0x1d, 0x92, 0x19, 0x1a, + 0xd0, 0xf5, 0x35, 0x85, 0x7c, 0x5c, 0xa5, 0xdb, 0xa3, 0xa6, 0xbc, 0x19, 0xf4, 0x64, 0x84, 0x86, + 0x84, 0x86, 0x03, 0x31, 0x41, 0x15, 0xdb, 0xd0, 0x51, 0x08, 0x0c, 0xc4, 0xa4, 0xec, 0xb7, 0x06, + 0x4b, 0xae, 0x18, 0xc5, 0x11, 0xa1, 0xa9, 0x5a, 0xa1, 0xbd, 0x31, 0x58, 0x32, 0x19, 0x05, 0xa1, + 0x61, 0x71, 0xe4, 0xd4, 0xfd, 0x82, 0xf6, 0xfe, 0xd6, 0x80, 0x75, 0x0d, 0x28, 0x4e, 0x8d, 0xf2, + 0x88, 0x2b, 0xf0, 0x52, 0x94, 0x4a, 0xc6, 0xd1, 0x55, 0x39, 0xbf, 0x29, 0xca, 0x9c, 0xf8, 0xea, + 0xf6, 0xc4, 0x57, 0xb1, 0x69, 0x6d, 0xde, 0xa6, 0x8a, 0x5f, 0x8d, 0x79, 0xbf, 0xbe, 0x09, 0x5b, + 0x02, 0x0b, 0xe6, 0x34, 0x0e, 0xd2, 0x31, 0xe3, 0x53, 0x7d, 0x62, 0x35, 0xfc, 0x39, 0xbe, 0x6c, + 0xf6, 0x8a, 0x57, 0x14, 0xac, 0xaa, 0xc8, 0x0a, 0x57, 0x96, 0x87, 0xe2, 0xe4, 0x85, 0xab, 0x46, + 0x05, 0x9b, 0xa9, 0x6c, 0x13, 0x22, 0x62, 0x14, 0x27, 0x60, 0x55, 0x9f, 0x26, 0x4b, 0x7a, 0x3e, + 0x15, 0x93, 0x03, 0xce, 0xa6, 0x7a, 0x60, 0xc8, 0x49, 0xf4, 0x9c, 0xd1, 0x94, 0xd0, 0x14, 0x65, + 0x3b, 0x4a, 0xd6, 0x60, 0x49, 0x59, 0x4d, 0x62, 0x71, 0x6e, 0xf8, 0x39, 0xe9, 0x6e, 0x41, 0x5d, + 0x90, 0x99, 0xae, 0x38, 0xf9, 0xd3, 0x8a, 0x5c, 0xcf, 0x8e, 0x5c, 0xa5, 0x15, 0x6c, 0xe1, 0x57, + 0xb3, 0x15, 0x94, 0x77, 0x80, 0x7b, 0xd6, 0x1d, 0x60, 0x17, 0xd6, 0x59, 0x22, 0xf3, 0x5c, 0xf4, + 0x5d, 0xac, 0xb1, 0x6f, 0x5c, 0x5f, 0x63, 0x3b, 0x27, 0x6a, 0xe5, 0x0b, 0x9a, 0xf2, 0x77, 0x7e, + 0x2e, 0xe7, 0x1e, 0x41, 0x8f, 0x8d, 0xc7, 0x71, 0x44, 0xc9, 0x69, 0x26, 0x2e, 0xf0, 0x64, 0xbb, + 0x8f, 0x27, 0x9b, 0xb7, 0x40, 0xd5, 0x89, 0xbd, 0xd2, 0xaf, 0x8a, 0x3e, 0x7c, 0x06, 0x1b, 0xe6, + 0x36, 0x12, 0x86, 0x4b, 0xf2, 0x4e, 0xe7, 0xa0, 0xfc, 0x29, 0x87, 0xbd, 0xab, 0x20, 0xce, 0xd4, + 0x31, 0xd0, 0xf2, 0x15, 0xf1, 0xac, 0xf6, 0x3d, 0xc7, 0xfb, 0x8d, 0x03, 0xbd, 0xca, 0x06, 0x72, + 0x75, 0x1a, 0xa5, 0x31, 0xd1, 0x1a, 0x14, 0xe1, 0xba, 0xb0, 0x16, 0x12, 0x31, 0xd2, 0x29, 0x8c, + 0xbf, 0x75, 0x27, 0xab, 0x17, 0xe3, 0xa2, 0xbc, 0xe8, 0x9d, 0x0c, 0xa5, 0xa2, 0x21, 0xcb, 0x68, + 0x58, 0x5c, 0xf4, 0x0c, 0x9e, 0x4c, 0xa1, 0xe8, 0x64, 0xf8, 0x3c, 0x08, 0x27, 0x44, 0x5d, 0xc7, + 0x1a, 0x68, 0x93, 0xcd, 0xf4, 0xf6, 0xa1, 0x75, 0x16, 0x25, 0x62, 0x8f, 0x4d, 0xa7, 0x32, 0x10, + 0x21, 0x49, 0xe5, 0xac, 0xea, 0x60, 0xbc, 0x35, 0x25, 0x53, 0x25, 0x24, 0xe3, 0x20, 0x8b, 0x53, + 0xb9, 0x34, 0x2f, 0x5c, 0x83, 0xe5, 0xfd, 0xbd, 0x06, 0x5b, 0x38, 0x18, 0xec, 0x61, 0x58, 0x43, + 0xc9, 0x74, 0x9f, 0x42, 0x03, 0xcb, 0x4c, 0x0f, 0x23, 0x37, 0x0f, 0x13, 0x6a, 0xa9, 0xfb, 0x23, + 0x68, 0xb2, 0x04, 0x47, 0x4a, 0x35, 0x81, 0x7c, 0x7c, 0x9d, 0x90, 0x7d, 0xa7, 0xf3, 0xb5, 0x94, + 0x7b, 0x00, 0xa0, 0xae, 0x9b, 0x47, 0x65, 0x6b, 0x5e, 0x56, 0x87, 0x21, 0x29, 0xc1, 0x2b, 0xda, + 0xac, 0x71, 0xb1, 0xb3, 0x99, 0xee, 0x31, 0x6c, 0xa2, 0xd9, 0x27, 0xf9, 0x54, 0x89, 0x18, 0x2f, + 0xbf, 0x63, 0x45, 0xda, 0xfb, 0xbd, 0xa3, 0x61, 0x94, 0x5f, 0x87, 0x04, 0xb1, 0x35, 0x20, 0x71, + 0x56, 0x82, 0xe4, 0x21, 0xb4, 0xa6, 0x99, 0x31, 0xe4, 0xd6, 0xfd, 0x82, 0x2e, 0x43, 0x54, 0x5f, + 0x3a, 0x44, 0xde, 0x1f, 0x1c, 0xe8, 0x7f, 0xc2, 0x22, 0x8a, 0x1f, 0x76, 0x93, 0x24, 0xd6, 0xaf, + 0x0f, 0x2b, 0xc7, 0xfc, 0xc7, 0xd0, 0x0e, 0x94, 0x1a, 0x9a, 0xea, 0xb0, 0x2f, 0x31, 0xb8, 0x96, + 0x32, 0xc6, 0x0c, 0x52, 0x37, 0x67, 0x10, 0xef, 0x4f, 0x0e, 0x6c, 0x2a, 0x50, 0x7e, 0x96, 0x45, + 0xe9, 0xca, 0xf6, 0x3d, 0x87, 0xd6, 0x2c, 0x8b, 0xd2, 0x15, 0xb2, 0xb2, 0x90, 0x9b, 0xcf, 0xa7, + 0xfa, 0x82, 0x7c, 0xf2, 0xfe, 0xec, 0xc0, 0xa3, 0x2a, 0xac, 0xbb, 0xa3, 0x11, 0x49, 0xee, 0xb2, + 0xa4, 0xac, 0x19, 0x6c, 0xad, 0x32, 0x83, 0x2d, 0x34, 0xd9, 0x27, 0x9f, 0x91, 0xd1, 0x17, 0xd7, + 0xe4, 0x5f, 0xd7, 0xe0, 0x2b, 0x87, 0x45, 0xe1, 0x9d, 0xf1, 0x80, 0x8a, 0x31, 0xe1, 0xfc, 0x0e, + 0xed, 0x3d, 0x82, 0x2e, 0x25, 0x6f, 0x4a, 0x9b, 0x74, 0x39, 0x2e, 0xab, 0xc6, 0x16, 0x5e, 0xae, + 0x77, 0x79, 0xff, 0x75, 0x60, 0x4b, 0xe9, 0xf9, 0x69, 0x34, 0xba, 0xbc, 0x43, 0xe7, 0x8f, 0x61, + 0xf3, 0x12, 0x2d, 0x90, 0xd4, 0x0a, 0x6d, 0xbb, 0x22, 0xbd, 0xa4, 0xfb, 0xff, 0x73, 0xe0, 0x9e, + 0x52, 0xf4, 0x92, 0x5e, 0x45, 0x77, 0x99, 0xac, 0xa7, 0xd0, 0x8b, 0x94, 0x09, 0x2b, 0x02, 0x50, + 0x15, 0x5f, 0x12, 0x81, 0xbf, 0x38, 0xd0, 0x53, 0x9a, 0x5e, 0xd0, 0x94, 0xf0, 0x95, 0xfd, 0xff, + 0x09, 0x74, 0x08, 0x4d, 0x79, 0x40, 0x57, 0xe9, 0x90, 0xa6, 0xe8, 0x92, 0x4d, 0xf2, 0x12, 0xee, + 0xa9, 0x2b, 0xba, 0xd1, 0x71, 0xe4, 0xac, 0x1a, 0x84, 0x6a, 0xfc, 0x74, 0x50, 0x28, 0x27, 0xed, + 0xc7, 0x17, 0xfd, 0xaa, 0x5e, 0x3e, 0xbe, 0x3c, 0x06, 0x08, 0xc2, 0xf0, 0x53, 0xc6, 0xc3, 0x88, + 0xe6, 0xc7, 0x87, 0xc1, 0xf1, 0x3e, 0x81, 0x0d, 0x39, 0x2d, 0x9f, 0x19, 0x97, 0xed, 0x1b, 0x9f, + 0x03, 0xcc, 0x8b, 0x7a, 0xcd, 0xbe, 0xa8, 0x7b, 0xbf, 0x80, 0x2f, 0xcd, 0x19, 0x8e, 0xa8, 0xef, + 0xa9, 0x37, 0x84, 0x7c, 0x13, 0x0d, 0xfe, 0xd7, 0x16, 0x40, 0x68, 0xda, 0xe2, 0x5b, 0x42, 0xde, + 0xaf, 0x1c, 0xf8, 0x70, 0x4e, 0xfd, 0x6e, 0x92, 0x70, 0x76, 0xa5, 0x93, 0xfb, 0x36, 0xb6, 0xb1, + 0x5b, 0x6b, 0xad, 0xda, 0x5a, 0x17, 0x1a, 0x61, 0x1d, 0x07, 0xef, 0xc1, 0x88, 0x3f, 0x3a, 0xd0, + 0xd3, 0x46, 0x84, 0xa1, 0xde, 0xf6, 0xbb, 0xd0, 0x54, 0xef, 0x8f, 0x7a, 0xc3, 0x0f, 0x17, 0x6e, + 0x98, 0xbf, 0x9b, 0xfa, 0x7a, 0xf1, 0x7c, 0x46, 0xd6, 0x16, 0x8d, 0x81, 0xdf, 0x2f, 0x3a, 0xc0, + 0xd2, 0x2f, 0x84, 0x5a, 0xc0, 0xfb, 0x79, 0x9e, 0xcc, 0xfb, 0x24, 0x26, 0xb7, 0x89, 0x91, 0xf7, + 0x0a, 0x36, 0xf1, 0x31, 0xb4, 0xc4, 0xe0, 0x56, 0xd4, 0x7e, 0x0a, 0x5b, 0xa8, 0xf6, 0xd6, 0xed, + 0x2d, 0xaa, 0x43, 0xe2, 0xb3, 0x77, 0x11, 0xd0, 0xc9, 0x6d, 0x6a, 0xff, 0x16, 0xdc, 0xcf, 0xb1, + 0x7f, 0x95, 0x84, 0xc5, 0x15, 0xe5, 0x9a, 0x87, 0x97, 0xf3, 0x26, 0xfe, 0x99, 0xf7, 0x9d, 0xff, + 0x07, 0x00, 0x00, 0xff, 0xff, 0x5a, 0xb7, 0x8c, 0x6a, 0xdf, 0x1b, 0x00, 0x00, } diff --git a/pkg/proto/sdk_ws/ws.proto b/pkg/proto/sdk_ws/ws.proto index cc4c70054..a3f018db3 100644 --- a/pkg/proto/sdk_ws/ws.proto +++ b/pkg/proto/sdk_ws/ws.proto @@ -115,61 +115,14 @@ message PullMessageBySeqListResp { message PullMessageBySeqListReq{ string userID = 1; string operationID = 2; - repeated int64 seqList = 3; -} -message PullMessageReq { - string userID = 1; - int64 seqBegin = 2; - int64 seqEnd = 3; - string operationID = 4; -} -message PullMessageResp { - int32 errCode = 1; - string errMsg = 2; - int64 maxSeq = 3; - int64 minSeq = 4; - repeated GatherFormat singleUserMsg = 5; - repeated GatherFormat groupUserMsg = 6; + repeated uint32 seqList = 3; } message GetMaxAndMinSeqReq { } message GetMaxAndMinSeqResp { - int64 maxSeq = 1; - int64 minSeq = 2; -} -message GatherFormat{ - // @inject_tag: json:"id" - string id = 1; - // @inject_tag: json:"list" - repeated MsgData list = 2;//detail msg -} -//message MsgFormat{ -// // @inject_tag: json:"sendID" -// string SendID = 1; -// // @inject_tag: json:"recvID" -// string RecvID = 2; -// // @inject_tag: json:"msgFrom" -// int32 MsgFrom = 3; -// // @inject_tag: json:"contentType" -// int32 ContentType = 4; -// // @inject_tag: json:"serverMsgID" -// string ServerMsgID = 5; -// // @inject_tag: json:"content" -// string Content = 6; -// // @inject_tag: json:"seq" -// int64 Seq = 7; -// // @inject_tag: json:"sendTime" -// int64 SendTime = 8; -// // @inject_tag: json:"senderPlatformID" -// int32 SenderPlatformID = 9; -// // @inject_tag: json:"senderNickName" -// string SenderNickName = 10; -// // @inject_tag: json:"senderFaceUrl" -// string SenderFaceURL = 11; -// // @inject_tag: json:"clientMsgID" -// string ClientMsgID = 12; -//} - + uint32 maxSeq = 1; + uint32 minSeq = 2; +} message UserSendMsgResp { string serverMsgID = 1; @@ -190,7 +143,7 @@ message MsgData { int32 msgFrom = 10; int32 contentType = 11; bytes content = 12; - int64 seq = 14; + uint32 seq = 14; int64 sendTime = 15; int64 createTime = 16; int32 status = 17; diff --git a/pkg/utils/utils.go b/pkg/utils/utils.go index f175255ab..440d3a993 100644 --- a/pkg/utils/utils.go +++ b/pkg/utils/utils.go @@ -37,3 +37,37 @@ func cleanUpFuncName(funcName string) string { } return funcName[end+1:] } +func Intersect(slice1, slice2 []uint32) []uint32 { + m := make(map[uint32]bool) + n := make([]uint32, 0) + for _, v := range slice1 { + m[v] = true + } + for _, v := range slice2 { + flag, _ := m[v] + if flag { + n = append(n, v) + } + } + return n +} +func Difference(slice1, slice2 []uint32) []uint32 { + m := make(map[uint32]bool) + n := make([]uint32, 0) + inter := Intersect(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 +} From e7c7784fec6b80b3230de24689a3e280a7ff7b47 Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Thu, 20 Jan 2022 11:37:14 +0800 Subject: [PATCH 538/814] protocol modify --- pkg/proto/chat/chat.pb.go | 124 ++++++++++++++------------------------ 1 file changed, 45 insertions(+), 79 deletions(-) diff --git a/pkg/proto/chat/chat.pb.go b/pkg/proto/chat/chat.pb.go index 2a52e2c37..5d4fd0bec 100644 --- a/pkg/proto/chat/chat.pb.go +++ b/pkg/proto/chat/chat.pb.go @@ -37,7 +37,7 @@ func (m *MsgDataToMQ) Reset() { *m = MsgDataToMQ{} } func (m *MsgDataToMQ) String() string { return proto.CompactTextString(m) } func (*MsgDataToMQ) ProtoMessage() {} func (*MsgDataToMQ) Descriptor() ([]byte, []int) { - return fileDescriptor_chat_1eadc66417ed93b5, []int{0} + return fileDescriptor_chat_68ff093a75fc0634, []int{0} } func (m *MsgDataToMQ) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MsgDataToMQ.Unmarshal(m, b) @@ -90,7 +90,7 @@ func (m *MsgDataToDB) Reset() { *m = MsgDataToDB{} } func (m *MsgDataToDB) String() string { return proto.CompactTextString(m) } func (*MsgDataToDB) ProtoMessage() {} func (*MsgDataToDB) Descriptor() ([]byte, []int) { - return fileDescriptor_chat_1eadc66417ed93b5, []int{1} + return fileDescriptor_chat_68ff093a75fc0634, []int{1} } func (m *MsgDataToDB) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MsgDataToDB.Unmarshal(m, b) @@ -136,7 +136,7 @@ func (m *PushMsgDataToMQ) Reset() { *m = PushMsgDataToMQ{} } func (m *PushMsgDataToMQ) String() string { return proto.CompactTextString(m) } func (*PushMsgDataToMQ) ProtoMessage() {} func (*PushMsgDataToMQ) Descriptor() ([]byte, []int) { - return fileDescriptor_chat_1eadc66417ed93b5, []int{2} + return fileDescriptor_chat_68ff093a75fc0634, []int{2} } func (m *PushMsgDataToMQ) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_PushMsgDataToMQ.Unmarshal(m, b) @@ -202,7 +202,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_chat_1eadc66417ed93b5, []int{3} + return fileDescriptor_chat_68ff093a75fc0634, []int{3} } func (m *GetMaxAndMinSeqReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetMaxAndMinSeqReq.Unmarshal(m, b) @@ -239,8 +239,8 @@ func (m *GetMaxAndMinSeqReq) GetOperationID() string { type GetMaxAndMinSeqResp struct { ErrCode int32 `protobuf:"varint,1,opt,name=ErrCode" json:"ErrCode,omitempty"` ErrMsg string `protobuf:"bytes,2,opt,name=ErrMsg" json:"ErrMsg,omitempty"` - MaxSeq int64 `protobuf:"varint,3,opt,name=MaxSeq" json:"MaxSeq,omitempty"` - MinSeq int64 `protobuf:"varint,4,opt,name=MinSeq" json:"MinSeq,omitempty"` + MaxSeq uint32 `protobuf:"varint,3,opt,name=MaxSeq" json:"MaxSeq,omitempty"` + MinSeq uint32 `protobuf:"varint,4,opt,name=MinSeq" json:"MinSeq,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -250,7 +250,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_chat_1eadc66417ed93b5, []int{4} + return fileDescriptor_chat_68ff093a75fc0634, []int{4} } func (m *GetMaxAndMinSeqResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetMaxAndMinSeqResp.Unmarshal(m, b) @@ -284,14 +284,14 @@ func (m *GetMaxAndMinSeqResp) GetErrMsg() string { return "" } -func (m *GetMaxAndMinSeqResp) GetMaxSeq() int64 { +func (m *GetMaxAndMinSeqResp) GetMaxSeq() uint32 { if m != nil { return m.MaxSeq } return 0 } -func (m *GetMaxAndMinSeqResp) GetMinSeq() int64 { +func (m *GetMaxAndMinSeqResp) GetMinSeq() uint32 { if m != nil { return m.MinSeq } @@ -311,7 +311,7 @@ func (m *SendMsgReq) Reset() { *m = SendMsgReq{} } func (m *SendMsgReq) String() string { return proto.CompactTextString(m) } func (*SendMsgReq) ProtoMessage() {} func (*SendMsgReq) Descriptor() ([]byte, []int) { - return fileDescriptor_chat_1eadc66417ed93b5, []int{5} + return fileDescriptor_chat_68ff093a75fc0634, []int{5} } func (m *SendMsgReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SendMsgReq.Unmarshal(m, b) @@ -367,7 +367,7 @@ func (m *SendMsgResp) Reset() { *m = SendMsgResp{} } func (m *SendMsgResp) String() string { return proto.CompactTextString(m) } func (*SendMsgResp) ProtoMessage() {} func (*SendMsgResp) Descriptor() ([]byte, []int) { - return fileDescriptor_chat_1eadc66417ed93b5, []int{6} + return fileDescriptor_chat_68ff093a75fc0634, []int{6} } func (m *SendMsgResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SendMsgResp.Unmarshal(m, b) @@ -444,7 +444,6 @@ const _ = grpc.SupportPackageIsVersion4 type ChatClient interface { GetMaxAndMinSeq(ctx context.Context, in *GetMaxAndMinSeqReq, opts ...grpc.CallOption) (*GetMaxAndMinSeqResp, error) - PullMessage(ctx context.Context, in *sdk_ws.PullMessageReq, opts ...grpc.CallOption) (*sdk_ws.PullMessageResp, error) PullMessageBySeqList(ctx context.Context, in *sdk_ws.PullMessageBySeqListReq, opts ...grpc.CallOption) (*sdk_ws.PullMessageBySeqListResp, error) SendMsg(ctx context.Context, in *SendMsgReq, opts ...grpc.CallOption) (*SendMsgResp, error) } @@ -466,15 +465,6 @@ func (c *chatClient) GetMaxAndMinSeq(ctx context.Context, in *GetMaxAndMinSeqReq return out, nil } -func (c *chatClient) PullMessage(ctx context.Context, in *sdk_ws.PullMessageReq, opts ...grpc.CallOption) (*sdk_ws.PullMessageResp, error) { - out := new(sdk_ws.PullMessageResp) - err := grpc.Invoke(ctx, "/pbChat.Chat/PullMessage", in, out, c.cc, opts...) - if err != nil { - return nil, err - } - return out, nil -} - func (c *chatClient) PullMessageBySeqList(ctx context.Context, in *sdk_ws.PullMessageBySeqListReq, opts ...grpc.CallOption) (*sdk_ws.PullMessageBySeqListResp, error) { out := new(sdk_ws.PullMessageBySeqListResp) err := grpc.Invoke(ctx, "/pbChat.Chat/PullMessageBySeqList", in, out, c.cc, opts...) @@ -497,7 +487,6 @@ func (c *chatClient) SendMsg(ctx context.Context, in *SendMsgReq, opts ...grpc.C type ChatServer interface { GetMaxAndMinSeq(context.Context, *GetMaxAndMinSeqReq) (*GetMaxAndMinSeqResp, error) - PullMessage(context.Context, *sdk_ws.PullMessageReq) (*sdk_ws.PullMessageResp, error) PullMessageBySeqList(context.Context, *sdk_ws.PullMessageBySeqListReq) (*sdk_ws.PullMessageBySeqListResp, error) SendMsg(context.Context, *SendMsgReq) (*SendMsgResp, error) } @@ -524,24 +513,6 @@ func _Chat_GetMaxAndMinSeq_Handler(srv interface{}, ctx context.Context, dec fun return interceptor(ctx, in, info, handler) } -func _Chat_PullMessage_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(sdk_ws.PullMessageReq) - if err := dec(in); err != nil { - return nil, err - } - if interceptor == nil { - return srv.(ChatServer).PullMessage(ctx, in) - } - info := &grpc.UnaryServerInfo{ - Server: srv, - FullMethod: "/pbChat.Chat/PullMessage", - } - handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(ChatServer).PullMessage(ctx, req.(*sdk_ws.PullMessageReq)) - } - return interceptor(ctx, in, info, handler) -} - func _Chat_PullMessageBySeqList_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(sdk_ws.PullMessageBySeqListReq) if err := dec(in); err != nil { @@ -586,10 +557,6 @@ var _Chat_serviceDesc = grpc.ServiceDesc{ MethodName: "GetMaxAndMinSeq", Handler: _Chat_GetMaxAndMinSeq_Handler, }, - { - MethodName: "PullMessage", - Handler: _Chat_PullMessage_Handler, - }, { MethodName: "PullMessageBySeqList", Handler: _Chat_PullMessageBySeqList_Handler, @@ -603,39 +570,38 @@ var _Chat_serviceDesc = grpc.ServiceDesc{ Metadata: "chat/chat.proto", } -func init() { proto.RegisterFile("chat/chat.proto", fileDescriptor_chat_1eadc66417ed93b5) } - -var fileDescriptor_chat_1eadc66417ed93b5 = []byte{ - // 482 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0x54, 0x4d, 0x6f, 0xd3, 0x40, - 0x10, 0x95, 0xd3, 0x26, 0xa1, 0x63, 0xa1, 0x48, 0xdb, 0x0a, 0x59, 0xe6, 0x92, 0xfa, 0x54, 0x81, - 0x64, 0x4b, 0x81, 0x1b, 0x27, 0xd2, 0x54, 0x28, 0x88, 0xa5, 0xc5, 0x09, 0x17, 0x2e, 0xd1, 0xb6, - 0x1e, 0x39, 0x56, 0x12, 0x7b, 0xb3, 0xe3, 0x92, 0x02, 0x3f, 0x86, 0x5f, 0xc4, 0x7f, 0x42, 0xde, - 0x75, 0xd2, 0x6d, 0x03, 0x24, 0x27, 0x2e, 0x96, 0xde, 0x9b, 0xe7, 0x37, 0xf3, 0xf6, 0x0b, 0x3a, - 0x37, 0x53, 0x51, 0x46, 0xd5, 0x27, 0x94, 0xaa, 0x28, 0x0b, 0xd6, 0x92, 0xd7, 0xe7, 0x53, 0x51, - 0xfa, 0xa7, 0x97, 0x12, 0xf3, 0xc9, 0x90, 0x47, 0x72, 0x96, 0x46, 0xba, 0x14, 0x51, 0x32, 0x9b, - 0xac, 0x28, 0x5a, 0x91, 0x91, 0x06, 0x3f, 0xc0, 0xe5, 0x94, 0x0e, 0x44, 0x29, 0xc6, 0x05, 0xff, - 0xc4, 0x4e, 0xa0, 0x59, 0x16, 0x33, 0xcc, 0x3d, 0xa7, 0xeb, 0x9c, 0x1d, 0xc5, 0x06, 0xb0, 0x2e, - 0xb8, 0x85, 0x44, 0x25, 0xca, 0xac, 0xc8, 0x87, 0x03, 0xaf, 0xa1, 0x6b, 0x36, 0xc5, 0x5e, 0x43, - 0x7b, 0x61, 0x6c, 0xbc, 0x83, 0xae, 0x73, 0xe6, 0xf6, 0xfc, 0x90, 0x50, 0x7d, 0x45, 0x35, 0x11, - 0x32, 0x9b, 0x48, 0xa1, 0xc4, 0x82, 0xc2, 0xba, 0x51, 0xbc, 0x96, 0x06, 0x68, 0x35, 0x1f, 0xf4, - 0x6d, 0x13, 0x67, 0x6f, 0x93, 0xdd, 0xc3, 0x05, 0x19, 0x74, 0xae, 0x6e, 0x69, 0x6a, 0xe7, 0xec, - 0x82, 0x7b, 0x69, 0xfd, 0x64, 0xd2, 0xda, 0x94, 0x3d, 0x4c, 0x63, 0xff, 0x44, 0x1f, 0x81, 0xbd, - 0xc3, 0x92, 0x8b, 0xbb, 0xb7, 0x79, 0xc2, 0xb3, 0x7c, 0x84, 0xcb, 0x18, 0x97, 0xec, 0x19, 0xb4, - 0x3e, 0x13, 0xaa, 0x4d, 0xa3, 0x1a, 0x3d, 0x9e, 0xa2, 0xb1, 0x35, 0x45, 0xb0, 0x82, 0xe3, 0x2d, - 0x3f, 0x92, 0xcc, 0x83, 0xf6, 0x85, 0x52, 0xe7, 0x45, 0x82, 0xda, 0xb1, 0x19, 0xaf, 0x61, 0xd5, - 0xea, 0x42, 0x29, 0x4e, 0x69, 0xed, 0x56, 0xa3, 0x8a, 0xe7, 0xe2, 0x6e, 0x84, 0x4b, 0xbd, 0x3f, - 0x07, 0x71, 0x8d, 0x34, 0xaf, 0x7d, 0xbd, 0xc3, 0x9a, 0xd7, 0x28, 0xf8, 0x0e, 0x30, 0xc2, 0x3c, - 0xe1, 0x94, 0x56, 0x01, 0xfe, 0xef, 0xb1, 0xf8, 0xe9, 0x80, 0xbb, 0x69, 0x6e, 0xd2, 0xe2, 0xc3, - 0xb4, 0x78, 0x9f, 0x16, 0x1f, 0xa4, 0x35, 0xa8, 0x9a, 0xcc, 0xf4, 0xe1, 0x94, 0x0e, 0x07, 0x3a, - 0xda, 0x51, 0x6c, 0x53, 0x95, 0xe2, 0x66, 0x9e, 0x61, 0x5e, 0x1a, 0x45, 0xd3, 0x28, 0x2c, 0x8a, - 0xf9, 0xf0, 0x84, 0x30, 0x4f, 0xc6, 0xd9, 0x02, 0xbd, 0x96, 0x5e, 0x9b, 0x0d, 0xee, 0xfd, 0x6a, - 0xc0, 0x61, 0x75, 0xc3, 0xd8, 0x7b, 0xe8, 0x3c, 0xda, 0x1f, 0xe6, 0x87, 0xe6, 0xf6, 0x85, 0xdb, - 0x07, 0xc1, 0x7f, 0xfe, 0xd7, 0x1a, 0x49, 0x36, 0x06, 0xf7, 0xea, 0x76, 0x3e, 0xe7, 0x48, 0x24, - 0x52, 0x64, 0xa7, 0x7f, 0x58, 0x2a, 0xab, 0x5e, 0xd9, 0x05, 0xbb, 0x24, 0x24, 0x59, 0x01, 0x27, - 0x16, 0xd5, 0xff, 0x36, 0xc2, 0xe5, 0x87, 0x8c, 0x4a, 0xf6, 0xe2, 0xdf, 0xff, 0x6e, 0x84, 0x55, - 0x9f, 0x97, 0x7b, 0x6b, 0x49, 0xb2, 0x1e, 0xb4, 0xeb, 0xcd, 0x63, 0x6c, 0x1d, 0xf7, 0xfe, 0x28, - 0xf9, 0xc7, 0x5b, 0x1c, 0xc9, 0x7e, 0xe7, 0xcb, 0xd3, 0x50, 0x3f, 0x60, 0x6f, 0x4c, 0xf1, 0xba, - 0xa5, 0x5f, 0xa7, 0x57, 0xbf, 0x03, 0x00, 0x00, 0xff, 0xff, 0xcb, 0xb4, 0x87, 0x05, 0xdb, 0x04, - 0x00, 0x00, +func init() { proto.RegisterFile("chat/chat.proto", fileDescriptor_chat_68ff093a75fc0634) } + +var fileDescriptor_chat_68ff093a75fc0634 = []byte{ + // 469 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0x54, 0x4f, 0x6f, 0xd3, 0x4e, + 0x10, 0x95, 0xd3, 0x26, 0xf9, 0x75, 0xac, 0x2a, 0xd2, 0xb6, 0xfa, 0xc9, 0x32, 0x17, 0xe3, 0x53, + 0x04, 0x92, 0x2d, 0x05, 0x6e, 0x9c, 0x48, 0x53, 0xa1, 0x20, 0x96, 0x16, 0xa7, 0x5c, 0xb8, 0x44, + 0xdb, 0x7a, 0xe4, 0x58, 0x49, 0xec, 0xcd, 0x8e, 0x4b, 0x0a, 0x7c, 0x18, 0x3e, 0x26, 0x57, 0xe4, + 0x5d, 0x27, 0xdd, 0x36, 0x45, 0xe4, 0xc4, 0xc5, 0xd2, 0x7b, 0x33, 0x7e, 0x6f, 0xde, 0xfe, 0x83, + 0xde, 0xcd, 0x4c, 0x54, 0x71, 0xfd, 0x89, 0xa4, 0x2a, 0xab, 0x92, 0x75, 0xe4, 0xf5, 0xd9, 0x4c, + 0x54, 0xfe, 0xf3, 0x0b, 0x89, 0xc5, 0x74, 0xcc, 0x63, 0x39, 0xcf, 0x62, 0x5d, 0x8a, 0x29, 0x9d, + 0x4f, 0xd7, 0x14, 0xaf, 0xc9, 0xb4, 0x86, 0x3f, 0xc0, 0xe5, 0x94, 0x8d, 0x44, 0x25, 0xae, 0x4a, + 0xfe, 0x89, 0x9d, 0x42, 0xbb, 0x2a, 0xe7, 0x58, 0x78, 0x4e, 0xe0, 0xf4, 0x8f, 0x12, 0x03, 0x58, + 0x00, 0x6e, 0x29, 0x51, 0x89, 0x2a, 0x2f, 0x8b, 0xf1, 0xc8, 0x6b, 0xe9, 0x9a, 0x4d, 0xb1, 0xd7, + 0xd0, 0x5d, 0x1a, 0x19, 0xef, 0x20, 0x70, 0xfa, 0xee, 0xc0, 0x8f, 0x08, 0xd5, 0x57, 0x54, 0x53, + 0x21, 0xf3, 0xa9, 0x14, 0x4a, 0x2c, 0x29, 0x6a, 0x8c, 0x92, 0x4d, 0x6b, 0x88, 0x96, 0xf9, 0x68, + 0x68, 0x8b, 0x38, 0x7b, 0x8b, 0xfc, 0x7d, 0xb8, 0x30, 0x87, 0xde, 0xe5, 0x2d, 0xcd, 0xec, 0x9c, + 0x01, 0xb8, 0x17, 0xd6, 0x4f, 0x26, 0xad, 0x4d, 0xd9, 0xc3, 0xb4, 0xf6, 0x4f, 0xf4, 0x11, 0xd8, + 0x3b, 0xac, 0xb8, 0xb8, 0x7b, 0x5b, 0xa4, 0x3c, 0x2f, 0x26, 0xb8, 0x4a, 0x70, 0xc5, 0xfe, 0x87, + 0xce, 0x67, 0x42, 0xb5, 0x35, 0x6a, 0xd0, 0xe3, 0x29, 0x5a, 0x3b, 0x53, 0x84, 0x6b, 0x38, 0xd9, + 0xd1, 0x23, 0xc9, 0x3c, 0xe8, 0x9e, 0x2b, 0x75, 0x56, 0xa6, 0xa8, 0x15, 0xdb, 0xc9, 0x06, 0xd6, + 0x56, 0xe7, 0x4a, 0x71, 0xca, 0x1a, 0xb5, 0x06, 0xd5, 0x3c, 0x17, 0x77, 0x13, 0x5c, 0xe9, 0xfd, + 0x39, 0x4e, 0x1a, 0xa4, 0x79, 0xad, 0xeb, 0x1d, 0x36, 0xbc, 0x46, 0xe1, 0x77, 0x80, 0x09, 0x16, + 0x29, 0xa7, 0xac, 0x0e, 0xf0, 0x6f, 0x8f, 0xc5, 0x4f, 0x07, 0xdc, 0xad, 0xb9, 0x49, 0x8b, 0x0f, + 0xd3, 0xe2, 0x7d, 0x5a, 0x7c, 0x90, 0xd6, 0xa0, 0x7a, 0x32, 0xe3, 0xc3, 0x29, 0x1b, 0x8f, 0x74, + 0xb4, 0xa3, 0xc4, 0xa6, 0xea, 0x8e, 0x9b, 0x45, 0x8e, 0x45, 0x65, 0x3a, 0xda, 0xa6, 0xc3, 0xa2, + 0x98, 0x0f, 0xff, 0x11, 0x16, 0xe9, 0x55, 0xbe, 0x44, 0xaf, 0x13, 0x38, 0xfd, 0x83, 0x64, 0x8b, + 0x07, 0xbf, 0x1c, 0x38, 0xac, 0x6f, 0x18, 0x7b, 0x0f, 0xbd, 0x47, 0xfb, 0xc3, 0xfc, 0xc8, 0xdc, + 0xbe, 0x68, 0xf7, 0x20, 0xf8, 0xcf, 0xfe, 0x58, 0x23, 0xc9, 0x4a, 0x38, 0xbd, 0xbc, 0x5d, 0x2c, + 0x38, 0x12, 0x89, 0x0c, 0x87, 0xdf, 0x26, 0xb8, 0xfa, 0x90, 0x53, 0xc5, 0x5e, 0x3c, 0xb1, 0x66, + 0x4f, 0x35, 0xd6, 0x06, 0x2f, 0xf7, 0xee, 0x25, 0xc9, 0x06, 0xd0, 0x6d, 0x96, 0x99, 0xb1, 0xcd, + 0x60, 0xf7, 0x9b, 0xee, 0x9f, 0xec, 0x70, 0x24, 0x87, 0xbd, 0x2f, 0xc7, 0x91, 0x7e, 0x6a, 0xde, + 0x98, 0xe2, 0x75, 0x47, 0xbf, 0x23, 0xaf, 0x7e, 0x07, 0x00, 0x00, 0xff, 0xff, 0x3a, 0xe6, 0x81, + 0xce, 0x85, 0x04, 0x00, 0x00, } From ff779fcc7cfa3e4a43829e5c8be488e798c5be15 Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Thu, 20 Jan 2022 11:42:43 +0800 Subject: [PATCH 539/814] protocol modify --- internal/msg_transfer/logic/db.go | 2 +- internal/push/logic/push_to_client.go | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/internal/msg_transfer/logic/db.go b/internal/msg_transfer/logic/db.go index 0c09e0c8e..b9ce8b589 100644 --- a/internal/msg_transfer/logic/db.go +++ b/internal/msg_transfer/logic/db.go @@ -14,7 +14,7 @@ func saveUserChat(uid string, msg *pbMsg.MsgDataToMQ) error { log.NewError(msg.OperationID, "data insert to redis err", err.Error(), msg.String()) return err } - msg.MsgData.Seq = seq + msg.MsgData.Seq = uint32(seq) pbSaveData := pbMsg.MsgDataToDB{} pbSaveData.MsgData = msg.MsgData log.NewInfo(msg.OperationID, "IncrUserSeq cost time", utils.GetCurrentTimestampByMill()-time) diff --git a/internal/push/logic/push_to_client.go b/internal/push/logic/push_to_client.go index 7d566a10a..803bb5b3b 100644 --- a/internal/push/logic/push_to_client.go +++ b/internal/push/logic/push_to_client.go @@ -24,7 +24,7 @@ type OpenIMContent struct { SessionType int `json:"sessionType"` From string `json:"from"` To string `json:"to"` - Seq int64 `json:"seq"` + Seq uint32 `json:"seq"` } type AtContent struct { Text string `json:"text"` From e4f87b53b485237d56eb1d7cf82e4c10962291d3 Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Thu, 20 Jan 2022 11:53:57 +0800 Subject: [PATCH 540/814] protocol modify --- cmd/open_im_api/main.go | 1 - internal/api/chat/pull_msg.go | 77 +++-------------------------------- 2 files changed, 6 insertions(+), 72 deletions(-) diff --git a/cmd/open_im_api/main.go b/cmd/open_im_api/main.go index 7f8fd7db2..817042f5c 100644 --- a/cmd/open_im_api/main.go +++ b/cmd/open_im_api/main.go @@ -81,7 +81,6 @@ func main() { chatGroup := r.Group("/msg") { chatGroup.POST("/newest_seq", apiChat.GetSeq) - chatGroup.POST("/pull_msg", apiChat.PullMsg) chatGroup.POST("/send_msg", apiChat.SendMsg) chatGroup.POST("/pull_msg_by_seq", apiChat.PullMsgBySeqList) } diff --git a/internal/api/chat/pull_msg.go b/internal/api/chat/pull_msg.go index 56903f5cc..0872319c6 100644 --- a/internal/api/chat/pull_msg.go +++ b/internal/api/chat/pull_msg.go @@ -23,61 +23,11 @@ type paramsUserPullMsg struct { } } -func PullMsg(c *gin.Context) { - params := paramsUserPullMsg{} - if err := c.BindJSON(¶ms); err != nil { - c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": err.Error()}) - return - } - - token := c.Request.Header.Get("token") - if ok, err := token_verify.VerifyToken(token, params.SendID); !ok { - c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": "token validate err" + err.Error()}) - return - } - pbData := open_im_sdk.PullMessageReq{} - pbData.UserID = params.SendID - pbData.OperationID = params.OperationID - pbData.SeqBegin = *params.Data.SeqBegin - pbData.SeqEnd = *params.Data.SeqEnd - grpcConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImOfflineMessageName) - msgClient := pbChat.NewChatClient(grpcConn) - reply, err := msgClient.PullMessage(context.Background(), &pbData) - if err != nil { - log.NewError(params.OperationID, "UserPullMsg rpc failed, ", params, err.Error()) - c.JSON(http.StatusBadRequest, gin.H{"errCode": 401, "errMsg": "UserPullMsg rpc failed, " + err.Error()}) - return - } - log.InfoByKv("rpc call success to pullMsgRep", pbData.OperationID, "ReplyArgs", reply.String(), "maxSeq", reply.GetMaxSeq(), - "MinSeq", reply.GetMinSeq(), "singLen", len(reply.GetSingleUserMsg()), "groupLen", len(reply.GetGroupUserMsg())) - - msg := make(map[string]interface{}) - if v := reply.GetSingleUserMsg(); v != nil { - msg["single"] = v - } else { - msg["single"] = []open_im_sdk.GatherFormat{} - } - if v := reply.GetGroupUserMsg(); v != nil { - msg["group"] = v - } else { - msg["group"] = []open_im_sdk.GatherFormat{} - } - msg["maxSeq"] = reply.GetMaxSeq() - msg["minSeq"] = reply.GetMinSeq() - c.JSON(http.StatusOK, gin.H{ - "errCode": reply.ErrCode, - "errMsg": reply.ErrMsg, - "reqIdentifier": *params.ReqIdentifier, - "data": msg, - }) - -} - type paramsUserPullMsgBySeqList struct { - ReqIdentifier int `json:"reqIdentifier" binding:"required"` - SendID string `json:"sendID" binding:"required"` - OperationID string `json:"operationID" binding:"required"` - SeqList []int64 `json:"seqList"` + ReqIdentifier int `json:"reqIdentifier" binding:"required"` + SendID string `json:"sendID" binding:"required"` + OperationID string `json:"operationID" binding:"required"` + SeqList []uint32 `json:"seqList"` } func PullMsgBySeqList(c *gin.Context) { @@ -104,26 +54,11 @@ func PullMsgBySeqList(c *gin.Context) { log.ErrorByKv("PullMessageBySeqList error", pbData.OperationID, "err", err.Error()) return } - log.InfoByKv("rpc call success to PullMessageBySeqList", pbData.OperationID, "ReplyArgs", reply.String(), "maxSeq", reply.GetMaxSeq(), - "MinSeq", reply.GetMinSeq(), "singLen", len(reply.GetSingleUserMsg()), "groupLen", len(reply.GetGroupUserMsg())) - - msg := make(map[string]interface{}) - if v := reply.GetSingleUserMsg(); v != nil { - msg["single"] = v - } else { - msg["single"] = []open_im_sdk.GatherFormat{} - } - if v := reply.GetGroupUserMsg(); v != nil { - msg["group"] = v - } else { - msg["group"] = []open_im_sdk.GatherFormat{} - } - msg["maxSeq"] = reply.GetMaxSeq() - msg["minSeq"] = reply.GetMinSeq() + log.InfoByKv("rpc call success to PullMessageBySeqList", pbData.OperationID, "ReplyArgs", reply.String(), len(reply.List)) c.JSON(http.StatusOK, gin.H{ "errCode": reply.ErrCode, "errMsg": reply.ErrMsg, "reqIdentifier": params.ReqIdentifier, - "data": msg, + "data": reply.List, }) } From 3c64d8498007d837cf2acdd239075fb7ea7d3d88 Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Thu, 20 Jan 2022 11:55:08 +0800 Subject: [PATCH 541/814] protocol modify --- internal/rpc/msg/pull_message.go | 2 -- 1 file changed, 2 deletions(-) diff --git a/internal/rpc/msg/pull_message.go b/internal/rpc/msg/pull_message.go index 6f6a614d1..d4b8ec0e6 100644 --- a/internal/rpc/msg/pull_message.go +++ b/internal/rpc/msg/pull_message.go @@ -22,7 +22,6 @@ func (rpc *rpcChat) GetMaxAndMinSeq(_ context.Context, in *pbMsg.GetMaxAndMinSeq resp.MaxSeq = 0 } else { log.NewError(in.OperationID, "getMaxSeq from redis error", in.String(), err1.Error()) - resp.MaxSeq = -1 resp.ErrCode = 200 resp.ErrMsg = "redis get err" } @@ -32,7 +31,6 @@ func (rpc *rpcChat) GetMaxAndMinSeq(_ context.Context, in *pbMsg.GetMaxAndMinSeq resp.MinSeq = 0 } else { log.NewError(in.OperationID, "getMaxSeq from redis error", in.String(), err2.Error()) - resp.MinSeq = -1 resp.ErrCode = 201 resp.ErrMsg = "redis get err" } From 911100923fae94f90af0a996394dedc2ac31798f Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Thu, 20 Jan 2022 17:18:41 +0800 Subject: [PATCH 542/814] chat log model update --- pkg/common/db/model_struct.go | 19 +++++++++++ pkg/common/db/mysql.go | 2 +- .../im_mysql_msg_model/chat_log_model.go | 33 ++++--------------- 3 files changed, 26 insertions(+), 28 deletions(-) diff --git a/pkg/common/db/model_struct.go b/pkg/common/db/model_struct.go index 8dd0ab3a2..eabc26668 100644 --- a/pkg/common/db/model_struct.go +++ b/pkg/common/db/model_struct.go @@ -165,3 +165,22 @@ type Black struct { OperatorUserID string `gorm:"column:operator_user_id;size:64"` Ex string `gorm:"column:ex;size:1024"` } + +type ChatLog struct { + ServerMsgID string `gorm:"column:server_msg_id;primary_key;type:char(64)" json:"serverMsgID"` + ClientMsgID string `gorm:"column:client_msg_id;type:char(64)" json:"clientMsgID"` + SendID string `gorm:"column:send_id;type:char(64)" json:"sendID"` + RecvID string `gorm:"column:recv_id;type:char(64)" json:"recvID"` + SenderPlatformID int32 `gorm:"column:sender_platform_id" json:"senderPlatformID"` + SenderNickname string `gorm:"column:sender_nick_name;type:varchar(255)" json:"senderNickname"` + SenderFaceURL string `gorm:"column:sender_face_url;type:varchar(255)" json:"senderFaceURL"` + SessionType int32 `gorm:"column:session_type" json:"sessionType"` + MsgFrom int32 `gorm:"column:msg_from" json:"msgFrom"` + ContentType int32 `gorm:"column:content_type" json:"contentType"` + Content string `gorm:"column:content;type:varchar(1000)" json:"content"` + Status int32 `gorm:"column:status" json:"status"` + Seq uint32 `gorm:"column:seq;index:index_seq;default:0" json:"seq"` + SendTime time.Time `gorm:"column:send_time" json:"sendTime"` + CreateTime time.Time `gorm:"column:create_time" json:"createTime"` + Ex string `gorm:"column:ex;type:varchar(1024)" json:"ex"` +} diff --git a/pkg/common/db/mysql.go b/pkg/common/db/mysql.go index 9731a1716..56ca3648c 100644 --- a/pkg/common/db/mysql.go +++ b/pkg/common/db/mysql.go @@ -58,7 +58,7 @@ func initMysqlDB() { &GroupMember{}, &GroupRequest{}, &User{}, - &Black{}) + &Black{}, &ChatLog{}) db.Set("gorm:table_options", "CHARSET=utf8") // diff --git a/pkg/common/db/mysql_model/im_mysql_msg_model/chat_log_model.go b/pkg/common/db/mysql_model/im_mysql_msg_model/chat_log_model.go index 5a80e6bb2..58f60b0c0 100644 --- a/pkg/common/db/mysql_model/im_mysql_msg_model/chat_log_model.go +++ b/pkg/common/db/mysql_model/im_mysql_msg_model/chat_log_model.go @@ -11,45 +11,24 @@ import ( "Open_IM/pkg/common/db" pbMsg "Open_IM/pkg/proto/chat" "Open_IM/pkg/utils" - "database/sql" - "time" + "github.com/jinzhu/copier" ) -// ChatLog Chat information table structure -type ChatLog struct { - MsgId string `gorm:"primary_key"` // Chat history primary key ID - SendID string `gorm:"column:send_id"` // Send ID - RecvID string `gorm:"column:recv_id"` //Receive ID - SendTime time.Time `gorm:"column:send_time"` // Send time - SessionType int32 `gorm:"column:session_type"` // Session type - ContentType int32 `gorm:"column:content_type"` // Message content type - MsgFrom int32 `gorm:"column:msg_from"` // Source, user, system - Content string `gorm:"column:content"` // Chat content - SenderPlatformID int32 `gorm:"column:sender_platform_id"` //The sender's platform ID - Remark sql.NullString `gorm:"column:remark"` // remark -} - func InsertMessageToChatLog(msg pbMsg.MsgDataToMQ) error { dbConn, err := db.DB.MysqlDB.DefaultGormDB() if err != nil { return err } - chatLog := ChatLog{ - MsgId: msg.MsgData.ServerMsgID, - SendID: msg.MsgData.SendID, - SendTime: utils.UnixNanoSecondToTime(msg.MsgData.SendTime), - SessionType: msg.MsgData.SessionType, - ContentType: msg.MsgData.ContentType, - MsgFrom: msg.MsgData.MsgFrom, - Content: string(msg.MsgData.Content), - SenderPlatformID: msg.MsgData.SenderPlatformID, - } + chatLog := new(db.ChatLog) + copier.Copy(chatLog, msg.MsgData) switch msg.MsgData.SessionType { case constant.GroupChatType: chatLog.RecvID = msg.MsgData.GroupID case constant.SingleChatType: chatLog.RecvID = msg.MsgData.RecvID } - + chatLog.Content = string(msg.MsgData.Content) + chatLog.CreateTime = utils.UnixNanoSecondToTime(msg.MsgData.CreateTime) + chatLog.SendTime = utils.UnixNanoSecondToTime(msg.MsgData.SendTime) return dbConn.Table("chat_log").Create(chatLog).Error } From aa7b89115062a25eaeb8b4f3c33ed3593348c55e Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Thu, 20 Jan 2022 17:29:38 +0800 Subject: [PATCH 543/814] chat log model update --- pkg/utils/map.go | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/pkg/utils/map.go b/pkg/utils/map.go index 05712fe64..fc24cc87d 100644 --- a/pkg/utils/map.go +++ b/pkg/utils/map.go @@ -121,6 +121,9 @@ func GetSwitchFromOptions(Options map[string]bool, key string) (result bool) { } return false } -func SetSwitchFromOptions(Options map[string]bool, key string, value bool) { - Options[key] = value +func SetSwitchFromOptions(options map[string]bool, key string, value bool) { + if options == nil { + options = make(map[string]bool, 5) + } + options[key] = value } From f7ab90724e71d0aa0d0cb76a04e4d2d9043e7119 Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Thu, 20 Jan 2022 18:04:24 +0800 Subject: [PATCH 544/814] msg test --- internal/rpc/msg/send_msg.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/internal/rpc/msg/send_msg.go b/internal/rpc/msg/send_msg.go index d6e8c20a1..8b91a3c39 100644 --- a/internal/rpc/msg/send_msg.go +++ b/internal/rpc/msg/send_msg.go @@ -210,7 +210,7 @@ func modifyMessageByUserMessageReceiveOpt(userID, sourceID string, sessionType i conversationID := utils.GetConversationIDBySessionType(sourceID, sessionType) opt, err := db.DB.GetSingleConversationMsgOpt(userID, conversationID) if err != nil || err != redis.ErrNil { - log.NewError(pb.OperationID, "GetSingleConversationMsgOpt from redis err", pb.String()) + log.NewError(pb.OperationID, "GetSingleConversationMsgOpt from redis err", conversationID, pb.String(), err.Error()) return true } switch opt { From cd7efee49c550cf824707ed472057b15da5428a5 Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Thu, 20 Jan 2022 18:28:45 +0800 Subject: [PATCH 545/814] msg test --- pkg/common/db/mysql_model/im_mysql_msg_model/chat_log_model.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkg/common/db/mysql_model/im_mysql_msg_model/chat_log_model.go b/pkg/common/db/mysql_model/im_mysql_msg_model/chat_log_model.go index 58f60b0c0..8455e3885 100644 --- a/pkg/common/db/mysql_model/im_mysql_msg_model/chat_log_model.go +++ b/pkg/common/db/mysql_model/im_mysql_msg_model/chat_log_model.go @@ -30,5 +30,5 @@ func InsertMessageToChatLog(msg pbMsg.MsgDataToMQ) error { chatLog.Content = string(msg.MsgData.Content) chatLog.CreateTime = utils.UnixNanoSecondToTime(msg.MsgData.CreateTime) chatLog.SendTime = utils.UnixNanoSecondToTime(msg.MsgData.SendTime) - return dbConn.Table("chat_log").Create(chatLog).Error + return dbConn.Table("chat_logs").Create(chatLog).Error } From cbed698a1c50e11af1a00806e5bbfc9998fcda1c Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Thu, 20 Jan 2022 18:36:30 +0800 Subject: [PATCH 546/814] msg test --- internal/rpc/msg/pull_message.go | 4 ++-- pkg/common/db/mongoModel.go | 6 +++--- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/internal/rpc/msg/pull_message.go b/internal/rpc/msg/pull_message.go index d4b8ec0e6..05f1dad39 100644 --- a/internal/rpc/msg/pull_message.go +++ b/internal/rpc/msg/pull_message.go @@ -39,10 +39,10 @@ func (rpc *rpcChat) GetMaxAndMinSeq(_ context.Context, in *pbMsg.GetMaxAndMinSeq func (rpc *rpcChat) PullMessageBySeqList(_ context.Context, in *open_im_sdk.PullMessageBySeqListReq) (*open_im_sdk.PullMessageBySeqListResp, error) { log.NewInfo(in.OperationID, "rpc PullMessageBySeqList is arriving", in.String()) resp := new(open_im_sdk.PullMessageBySeqListResp) - msgList, err := commonDB.DB.GetMsgBySeqList(in.UserID, in.SeqList) + msgList, err := commonDB.DB.GetMsgBySeqList(in.UserID, in.SeqList, in.OperationID) if err != nil { log.ErrorByKv("PullMessageBySeqList data error", in.OperationID, in.String()) - resp.ErrCode = 1 + resp.ErrCode = 201 resp.ErrMsg = err.Error() return resp, nil } diff --git a/pkg/common/db/mongoModel.go b/pkg/common/db/mongoModel.go index 6538d17f4..1ea86d004 100644 --- a/pkg/common/db/mongoModel.go +++ b/pkg/common/db/mongoModel.go @@ -61,7 +61,7 @@ func (d *DataBases) GetMinSeqFromMongo(uid string) (MinSeq uint32, err error) { } return MinSeq, nil } -func (d *DataBases) GetMsgBySeqList(uid string, seqList []uint32) (seqMsg []*open_im_sdk.MsgData, err error) { +func (d *DataBases) GetMsgBySeqList(uid string, seqList []uint32, operationID string) (seqMsg []*open_im_sdk.MsgData, err error) { var hasSeqList []uint32 singleCount := 0 session := d.mgoSession.Clone() @@ -86,14 +86,14 @@ func (d *DataBases) GetMsgBySeqList(uid string, seqList []uint32) (seqMsg []*ope sChat := UserChat{} for seqUid, value := range m { if err = c.Find(bson.M{"uid": seqUid}).One(&sChat); err != nil { - log.NewError("", "not find seqUid", seqUid, value, uid, seqList) + log.NewError(operationID, "not find seqUid", seqUid, value, uid, seqList, err.Error()) continue } singleCount = 0 for i := 0; i < len(sChat.Msg); i++ { msg := new(open_im_sdk.MsgData) if err = proto.Unmarshal(sChat.Msg[i].Msg, msg); err != nil { - log.NewError("", "not find seqUid", seqUid, value, uid, seqList) + log.NewError(operationID, "Unmarshal err", seqUid, value, uid, seqList, err.Error()) return nil, err } if isContainInt32(msg.Seq, value) { From 64f2fb9e734567a9d13066c773c82b9dac11733b Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Thu, 20 Jan 2022 18:38:20 +0800 Subject: [PATCH 547/814] msg test --- pkg/common/db/mongoModel.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkg/common/db/mongoModel.go b/pkg/common/db/mongoModel.go index 1ea86d004..98318dd65 100644 --- a/pkg/common/db/mongoModel.go +++ b/pkg/common/db/mongoModel.go @@ -142,7 +142,7 @@ func (d *DataBases) SaveUserChat(uid string, sendTime int64, m *pbMsg.MsgDataToD log.NewDebug("", "find mgo uid cost time", getCurrentTimestampByMill()-newTime) sMsg := MsgInfo{} sMsg.SendTime = sendTime - if sMsg.Msg, err = proto.Marshal(m); err != nil { + if sMsg.Msg, err = proto.Marshal(m.MsgData); err != nil { return err } if n == 0 { From 5a9f3f1f5e6fa93c7d873c54f55bdb3c78d5a3d5 Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Thu, 20 Jan 2022 19:20:56 +0800 Subject: [PATCH 548/814] msg test --- .../db/mysql_model/im_mysql_msg_model/chat_log_model.go | 4 ++-- pkg/utils/time_format.go | 5 +++++ 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/pkg/common/db/mysql_model/im_mysql_msg_model/chat_log_model.go b/pkg/common/db/mysql_model/im_mysql_msg_model/chat_log_model.go index 8455e3885..96d03a7c7 100644 --- a/pkg/common/db/mysql_model/im_mysql_msg_model/chat_log_model.go +++ b/pkg/common/db/mysql_model/im_mysql_msg_model/chat_log_model.go @@ -28,7 +28,7 @@ func InsertMessageToChatLog(msg pbMsg.MsgDataToMQ) error { chatLog.RecvID = msg.MsgData.RecvID } chatLog.Content = string(msg.MsgData.Content) - chatLog.CreateTime = utils.UnixNanoSecondToTime(msg.MsgData.CreateTime) - chatLog.SendTime = utils.UnixNanoSecondToTime(msg.MsgData.SendTime) + chatLog.CreateTime = utils.UnixMillSecondToTime(msg.MsgData.CreateTime) + chatLog.SendTime = utils.UnixMillSecondToTime(msg.MsgData.SendTime) return dbConn.Table("chat_logs").Create(chatLog).Error } diff --git a/pkg/utils/time_format.go b/pkg/utils/time_format.go index 3accd0567..0587db531 100644 --- a/pkg/utils/time_format.go +++ b/pkg/utils/time_format.go @@ -30,6 +30,11 @@ func UnixSecondToTime(second int64) time.Time { func UnixNanoSecondToTime(nanoSecond int64) time.Time { return time.Unix(0, nanoSecond) } +func UnixMillSecondToTime(millSecond int64) time.Time { + sec := millSecond / 1000 + msec := millSecond % 1000 + return time.Unix(sec, msec*int64(time.Millisecond)) +} //Get the current timestamp by Nano func GetCurrentTimestampByNano() int64 { From 8e105336811a9982c85e7205ff8a02c2aaab4085 Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Thu, 20 Jan 2022 19:23:20 +0800 Subject: [PATCH 549/814] msg test --- pkg/utils/time_format.go | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/pkg/utils/time_format.go b/pkg/utils/time_format.go index 0587db531..b24d11398 100644 --- a/pkg/utils/time_format.go +++ b/pkg/utils/time_format.go @@ -31,9 +31,7 @@ func UnixNanoSecondToTime(nanoSecond int64) time.Time { return time.Unix(0, nanoSecond) } func UnixMillSecondToTime(millSecond int64) time.Time { - sec := millSecond / 1000 - msec := millSecond % 1000 - return time.Unix(sec, msec*int64(time.Millisecond)) + return time.Unix(0, millSecond*1e6) } //Get the current timestamp by Nano From 1944b24fba7b9b5d2c2381adfd02a318b3ba22b3 Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Fri, 21 Jan 2022 09:39:09 +0800 Subject: [PATCH 550/814] push message modify --- internal/msg_gateway/gate/rpc_server.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/internal/msg_gateway/gate/rpc_server.go b/internal/msg_gateway/gate/rpc_server.go index 450cb1c73..240934d3b 100644 --- a/internal/msg_gateway/gate/rpc_server.go +++ b/internal/msg_gateway/gate/rpc_server.go @@ -94,8 +94,8 @@ func (r *RPCServer) OnlinePushMsg(_ context.Context, in *pbRelay.OnlinePushMsgRe } //Single chat sender synchronization message if in.MsgData.GetSessionType() == constant.SingleChatType { - for k, v := range ws.getSingleUserAllConn(recvID) { - _ = sendMsgToUser(v, replyBytes.Bytes(), in, k, recvID) + for k, v := range ws.getSingleUserAllConn(in.MsgData.SendID) { + _ = sendMsgToUser(v, replyBytes.Bytes(), in, k, in.MsgData.SendID) } } if !tag { From d58bcd136aed32af497a16100b66ca3cff79b945 Mon Sep 17 00:00:00 2001 From: wangchuxiao Date: Fri, 21 Jan 2022 18:39:57 +0800 Subject: [PATCH 551/814] pb api --- cmd/open_im_cms_api/Makefile | 0 cmd/open_im_cms_api/main.go | 1 + internal/cms_api/admin/admin.go | 24 ++++++ internal/cms_api/group/group.go | 67 +++++++++++++++ internal/cms_api/message/message.go | 31 +++++++ internal/cms_api/middleware/cors.go | 23 +++++ internal/cms_api/middleware/jwt_auth.go | 11 +++ internal/cms_api/organization/organization.go | 82 ++++++++++++++++++ internal/cms_api/router.go | 85 +++++++++++++++++++ internal/cms_api/statistics/statistics.go | 80 +++++++++++++++++ internal/cms_api/user/user.go | 76 +++++++++++++++++ pkg/cms_api_struct/admin.go | 1 + pkg/cms_api_struct/common.go | 10 +++ pkg/cms_api_struct/group.go | 20 +++++ pkg/cms_api_struct/message.go | 27 ++++++ pkg/cms_api_struct/organization.go | 25 ++++++ pkg/cms_api_struct/statistics.go | 69 +++++++++++++++ pkg/cms_api_struct/user.go | 7 ++ pkg/common/http/http_resp.go | 1 + pkg/proto/user/user.proto | 56 ++++++++++++ 20 files changed, 696 insertions(+) create mode 100644 cmd/open_im_cms_api/Makefile create mode 100644 cmd/open_im_cms_api/main.go create mode 100644 internal/cms_api/admin/admin.go create mode 100644 internal/cms_api/group/group.go create mode 100644 internal/cms_api/message/message.go create mode 100644 internal/cms_api/middleware/cors.go create mode 100644 internal/cms_api/middleware/jwt_auth.go create mode 100644 internal/cms_api/organization/organization.go create mode 100644 internal/cms_api/router.go create mode 100644 internal/cms_api/statistics/statistics.go create mode 100644 internal/cms_api/user/user.go create mode 100644 pkg/cms_api_struct/admin.go create mode 100644 pkg/cms_api_struct/common.go create mode 100644 pkg/cms_api_struct/group.go create mode 100644 pkg/cms_api_struct/message.go create mode 100644 pkg/cms_api_struct/organization.go create mode 100644 pkg/cms_api_struct/statistics.go create mode 100644 pkg/cms_api_struct/user.go create mode 100644 pkg/common/http/http_resp.go diff --git a/cmd/open_im_cms_api/Makefile b/cmd/open_im_cms_api/Makefile new file mode 100644 index 000000000..e69de29bb diff --git a/cmd/open_im_cms_api/main.go b/cmd/open_im_cms_api/main.go new file mode 100644 index 000000000..c81a6080c --- /dev/null +++ b/cmd/open_im_cms_api/main.go @@ -0,0 +1 @@ +package open_im_cms_api diff --git a/internal/cms_api/admin/admin.go b/internal/cms_api/admin/admin.go new file mode 100644 index 000000000..7a0e0a575 --- /dev/null +++ b/internal/cms_api/admin/admin.go @@ -0,0 +1,24 @@ +package admin + +import ( + "net/http" + + "github.com/gin-gonic/gin" +) + +// register +func UserLogin(c *gin.Context) { + c.JSON(http.StatusOK, gin.H{"message": "someJSON", "status": 200}) +} + +func UserRegister(c *gin.Context) { + c.JSON(http.StatusOK, gin.H{"message": "someJSON", "status": 200}) +} + +func GetUserSettings(c *gin.Context) { + c.JSON(http.StatusOK, gin.H{"message": "someJSON", "status": 200}) +} + +func AlterUserSettings(c *gin.Context) { + c.JSON(http.StatusOK, gin.H{"message": "someJSON", "status": 200}) +} diff --git a/internal/cms_api/group/group.go b/internal/cms_api/group/group.go new file mode 100644 index 000000000..03cfdeb18 --- /dev/null +++ b/internal/cms_api/group/group.go @@ -0,0 +1,67 @@ +package group + +import ( + _ "Open_IM_CMS/pkg/req_resp" + "Open_IM_CMS/test" + "net/http" + + "github.com/gin-gonic/gin" +) + +func SearchGroups(c *gin.Context) { + fake := test.GetSearchGroupsResponseFake() + c.JSON(http.StatusOK, gin.H{"code": "0", "data": fake}) +} + +func SearchGroupsMember(c *gin.Context) { + fake := test.GetSearchMemberResponseFake() + c.JSON(http.StatusOK, gin.H{"code": "0", "data": fake}) +} + +func CreateGroup(c *gin.Context) { + +} + +func AddUsers(c *gin.Context) { + +} + +func InquireMember(c *gin.Context) { + +} + +func InquireGroup(c *gin.Context) { + +} + +func AddGroupMember(c *gin.Context) { + +} + +func AddMembers(c *gin.Context) { + +} + +func SetMaster(c *gin.Context) { + +} + +func BlockUser(c *gin.Context) { + +} + +func RemoveUser(c *gin.Context) { + +} + +func BanPrivateChat(c *gin.Context) { + +} + +func Withdraw(c *gin.Context) { + +} + +func SearchMessage(g *gin.Context) { + +} diff --git a/internal/cms_api/message/message.go b/internal/cms_api/message/message.go new file mode 100644 index 000000000..cc2e361cb --- /dev/null +++ b/internal/cms_api/message/message.go @@ -0,0 +1,31 @@ +package message + +import ( + "net/http" + + "Open_IM_CMS/test" + + "github.com/gin-gonic/gin" +) + +func Broadcast(c *gin.Context) { + +} + +func SearchMessageByUser(c *gin.Context) { + fake := test.GetSearchUserMsgFake() + c.JSON(http.StatusOK, gin.H{"code": "0", "data": fake}) +} + +func SearchMessageByGroup(c *gin.Context) { + fake := test.GetSearchGroupMsgFake() + c.JSON(http.StatusOK, gin.H{"code": "0", "data": fake}) +} + +func MassSendMassage(c *gin.Context) { + +} + +func Withdraw(c *gin.Context) { + +} diff --git a/internal/cms_api/middleware/cors.go b/internal/cms_api/middleware/cors.go new file mode 100644 index 000000000..139a001af --- /dev/null +++ b/internal/cms_api/middleware/cors.go @@ -0,0 +1,23 @@ +package middleware + +import ( + "github.com/gin-gonic/gin" + "net/http" +) + +func CorsHandler() gin.HandlerFunc { + return func(context *gin.Context) { + context.Writer.Header().Set("Access-Control-Allow-Origin", "*") + context.Header("Access-Control-Allow-Methods", "*") + context.Header("Access-Control-Allow-Headers", "*") + context.Header("Access-Control-Expose-Headers", "Content-Length, Access-Control-Allow-Origin, Access-Control-Allow-Headers,Cache-Control,Content-Language,Content-Type,Expires,Last-Modified,Pragma,FooBar") // 跨域关键设置 让浏览器可以解析 + context.Header("Access-Control-Max-Age", "172800") // 缓存请求信息 单位为秒 + context.Header("Access-Control-Allow-Credentials", "false") // 跨域请求是否需要带cookie信息 默认设置为true + context.Header("content-type", "application/json") // 设置返回格式是json + //Release all option pre-requests + if context.Request.Method == http.MethodOptions { + context.JSON(http.StatusOK, "Options Request!") + } + context.Next() + } +} diff --git a/internal/cms_api/middleware/jwt_auth.go b/internal/cms_api/middleware/jwt_auth.go new file mode 100644 index 000000000..ccdacc00b --- /dev/null +++ b/internal/cms_api/middleware/jwt_auth.go @@ -0,0 +1,11 @@ +package middleware + +import ( + "github.com/gin-gonic/gin" +) + +func JWTAuth() gin.HandlerFunc { + return func(c *gin.Context) { + + } +} diff --git a/internal/cms_api/organization/organization.go b/internal/cms_api/organization/organization.go new file mode 100644 index 000000000..a389de1e5 --- /dev/null +++ b/internal/cms_api/organization/organization.go @@ -0,0 +1,82 @@ +package organization + +import ( + "Open_IM_CMS/pkg/common/config" + "Open_IM_CMS/pkg/errno" + "Open_IM_CMS/pkg/etcdv3" + commonProto "Open_IM_CMS/pkg/proto/common" + proto "Open_IM_CMS/pkg/proto/organization" + "Open_IM_CMS/pkg/req_resp" + "Open_IM_CMS/test" + "context" + "fmt" + "net/http" + "strings" + + "github.com/gin-gonic/gin" +) + +func GetStaffs(c *gin.Context) { + var ( + req req_resp.GetStaffsResponse + resp req_resp.GetStaffsResponse + reqPb commonProto.Pagination + respPb *proto.GetStaffsResp + ) + fmt.Println(resp, req) + fakeData := test.GetStaffsResponseFake() + etcdConn := etcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImCMSApiOrganizationName) + client := proto.NewOrganizationClient(etcdConn) + fmt.Println(client, reqPb) + respPb, err := client.GetStaffs(context.Background(), &reqPb) + fmt.Println(respPb, err) + fmt.Println(etcdConn) + req_resp.RespHttp200(c, errno.RespOK, fakeData) +} + +func GetOrganizations(c *gin.Context) { + var ( + req req_resp.GetOrganizationsResponse + resp req_resp.GetStaffsResponse + ) + fmt.Println(resp, req) + fakeData := test.GetOrganizationsResponseFake() + c.JSON(http.StatusOK, gin.H{"code": "0", "data": fakeData}) +} + +func GetSquads(c *gin.Context) { + fakeData := test.GetSquadResponseFake() + c.JSON(http.StatusOK, gin.H{"code": "0", "data": fakeData}) +} + +func AlterStaff(c *gin.Context) { + +} + +func AddOrganization(c *gin.Context) { + +} + +func InquireOrganization(g *gin.Context) { + +} + +func AlterOrganization(c *gin.Context) { + +} + +func DeleteOrganization(g *gin.Context) { + +} + +func GetOrganizationSquads(c *gin.Context) { + +} + +func AlterStaffsInfo(c *gin.Context) { + +} + +func AddChildOrganization(c *gin.Context) { + +} diff --git a/internal/cms_api/router.go b/internal/cms_api/router.go new file mode 100644 index 000000000..2a150d8fc --- /dev/null +++ b/internal/cms_api/router.go @@ -0,0 +1,85 @@ +package cms_api + +import ( + "Open_IM/internal/cms_api/admin" + "Open_IM/internal/cms_api/group" + "Open_IM/internal/cms_api/message" + "Open_IM/internal/cms_api/middleware" + "Open_IM/internal/cms_api/organization" + "Open_IM/internal/cms_api/statistics" + "Open_IM/internal/cms_api/user" + "github.com/gin-gonic/gin" +) + + +func NewGinRouter() *gin.Engine { + gin.SetMode(gin.ReleaseMode) + baseRouter := gin.Default() + router := baseRouter.Group("/api") + router.Use(middleware.JWTAuth()) + router.Use(middleware.CorsHandler()) + adminRouterGroup := router.Group("/admin") + { + adminRouterGroup.POST("/register", admin.UserRegister) + adminRouterGroup.POST("/login", admin.UserLogin) + adminRouterGroup.GET("/get_user_settings", admin.GetUserSettings) + adminRouterGroup.POST("/alter_user_settings", admin.AlterUserSettings) + } + statisticsRouterGroup := router.Group("/statistics") + { + statisticsRouterGroup.GET("/get_messages_statistics", statistics.MessagesStatistics) + statisticsRouterGroup.GET("/get_users_statistics", statistics.UsersStatistics) + statisticsRouterGroup.GET("/get_groups_statistics", statistics.GroupsStatistics) + statisticsRouterGroup.GET("/get_active_user", statistics.GetActiveUser) + statisticsRouterGroup.GET("/get_active_group", statistics.GetActiveGroup) + } + organizationRouterGroup := router.Group("/organization") + { + organizationRouterGroup.GET("/get_staffs", organization.GetStaffs) + organizationRouterGroup.GET("/get_organizations", organization.GetOrganizations) + organizationRouterGroup.GET("/get_squad", organization.GetSquads) + organizationRouterGroup.POST("/add_organization", organization.AddOrganization) + organizationRouterGroup.POST("/alter_staff", organization.AlterStaff) + organizationRouterGroup.GET("/inquire_organization", organization.InquireOrganization) + organizationRouterGroup.POST("/alter_organization", organization.AlterOrganization) + organizationRouterGroup.POST("/delete_organization", organization.DeleteOrganization) + organizationRouterGroup.POST("/get_organization_squad", organization.GetOrganizationSquads) + organizationRouterGroup.PATCH("/alter_corps_info", organization.AlterStaffsInfo) + organizationRouterGroup.POST("/add_child_org", organization.AddChildOrganization) + } + messageRouterGroup := router.Group("/message") + { + messageRouterGroup.POST("/broadcast", message.Broadcast) + messageRouterGroup.GET("/search_message_by_user", message.SearchMessageByUser) + messageRouterGroup.POST("/message_mass_send", message.MassSendMassage) + messageRouterGroup.GET("/search_message_by_group", message.SearchMessageByGroup) + messageRouterGroup.POST("/withdraw_message", message.Withdraw) + } + groupRouterGroup := router.Group("/groups") + { + groupRouterGroup.GET("/search_groups", group.SearchGroups) + groupRouterGroup.GET("/search_groups_member", group.SearchGroupsMember) + groupRouterGroup.POST("/create_group", group.CreateGroup) + groupRouterGroup.GET("/inquire_group", group.InquireGroup) + groupRouterGroup.GET("/inquireMember_by_group", group.InquireMember) + groupRouterGroup.POST("/add_members", group.AddMembers) + groupRouterGroup.POST("/set_master", group.SetMaster) + groupRouterGroup.POST("/block_user", group.BlockUser) + groupRouterGroup.POST("/remove_user", group.RemoveUser) + groupRouterGroup.POST("/ban_private_chat", group.BanPrivateChat) + groupRouterGroup.POST("/withdraw_message", group.Withdraw) + groupRouterGroup.POST("/search_group_message", group.SearchMessage) + } + userRouterGroup := router.Group("/users") + { + userRouterGroup.POST("/resign", user.ResignUser) + userRouterGroup.GET("/get_user", user.GetUser) + userRouterGroup.POST("/alter_user", user.AlterUser) + userRouterGroup.GET("/get_users", user.GetUsers) + userRouterGroup.POST("/add_user", user.AddUser) + userRouterGroup.POST("/unblock_user", user.UnblockUser) + userRouterGroup.POST("/block_user", user.BlockUser) + userRouterGroup.GET("/block_users", user.GetBlockUsers) + } + return baseRouter +} diff --git a/internal/cms_api/statistics/statistics.go b/internal/cms_api/statistics/statistics.go new file mode 100644 index 000000000..c6bbd9e1b --- /dev/null +++ b/internal/cms_api/statistics/statistics.go @@ -0,0 +1,80 @@ +package statistics + +import ( + "net/http" + + "Open_IM/pkg/req_resp" + + "Open_IM/test" + + "github.com/gin-gonic/gin" +) + +func MessagesStatistics(c *gin.Context) { + var ( + req req_resp.StatisticsRequest + //resp req_resp.MessageStatisticsResponse + ) + if err := c.ShouldBindUri(&req); err != nil { + c.JSON(http.StatusBadRequest, gin.H{}) + return + } + if _, err := test.RpcFake(); err != nil { + c.JSON(http.StatusOK, gin.H{}) + return + } + fakeData := test.GetUserStatisticsResponseFake() + c.JSON(http.StatusOK, gin.H{"code": "0", "data": fakeData}) +} + +func UsersStatistics(c *gin.Context) { + var ( + req req_resp.StatisticsRequest + //resp req_resp.MessageStatisticsResponse + ) + if err := c.ShouldBindUri(&req); err != nil { + c.JSON(http.StatusBadRequest, gin.H{}) + return + } + if _, err := test.RpcFake(); err != nil { + c.JSON(http.StatusOK, gin.H{}) + return + } + fakeData := test.GetUserStatisticsResponseFake() + c.JSON(http.StatusOK, gin.H{"code": "0", "data": fakeData}) +} + +func GroupsStatistics(c *gin.Context) { + var ( + req req_resp.StatisticsRequest + //resp req_resp.MessageStatisticsResponse + ) + if err := c.ShouldBindUri(&req); err != nil { + c.JSON(http.StatusBadRequest, gin.H{}) + return + } + if _, err := test.RpcFake(); err != nil { + c.JSON(http.StatusOK, gin.H{}) + return + } + fakeData := test.GetUserStatisticsResponseFake() + c.JSON(http.StatusOK, gin.H{"code": "0", "data": fakeData}) +} + +func GetActiveUser(c *gin.Context) { + if _, err := test.RpcFake(); err != nil { + c.JSON(http.StatusOK, gin.H{}) + return + } + fakeData := test.GetActiveUserResponseFake() + c.JSON(http.StatusOK, gin.H{"code": "0", "data": fakeData}) +} + +func GetActiveGroup(c *gin.Context) { + if _, err := test.RpcFake(); err != nil { + c.JSON(http.StatusOK, gin.H{}) + return + } + fakeData := test.GetActiveGroupResponseFake() + c.JSON(http.StatusOK, gin.H{"code": "0", "data": fakeData}) +} diff --git a/internal/cms_api/user/user.go b/internal/cms_api/user/user.go new file mode 100644 index 000000000..bb199a1f1 --- /dev/null +++ b/internal/cms_api/user/user.go @@ -0,0 +1,76 @@ +package user + +import ( + jsonData "Open_IM/internal/utils" + api "Open_IM/pkg/base_info" + "Open_IM/pkg/cms_api_struct" + "Open_IM/pkg/common/config" + "Open_IM/pkg/common/log" + "Open_IM/pkg/grpc-etcdv3/getcdv3" + open_im_sdk "Open_IM/pkg/proto/sdk_ws" + rpc "Open_IM/pkg/proto/user" + "Open_IM/pkg/utils" + "context" + "github.com/gin-gonic/gin" + "net/http" + "strings" +) + +func GetUser(c *gin.Context) { + var ( + req cms_api_struct.RequestPagination + resp cms_api_struct.GetUsersResponse + reqPb rpc.GetUserInfoReq + respPb *rpc.GetUserInfoResp + ) + + if err := c.BindJSON(&req); err != nil { + log.NewError("0", "BindJSON failed ", err.Error()) + c.JSON(http.StatusBadRequest, gin.H{"errCode": http.StatusBadRequest, "errMsg": err.Error()}) + return + } + utils.CopyStructFields(req, &req) + + etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImUserName) + client := rpc.NewUserClient(etcdConn) + respPb, err := client.GetUserInfo(context.Background(), &reqPb) + if err != nil { + c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": "call rpc server failed"}) + return + } + //for _, v := range RpcResp.UserInfoList { + // publicUserInfoList = append(publicUserInfoList, + // &open_im_sdk.PublicUserInfo{UserID: v.UserID, Nickname: v.Nickname, FaceURL: v.FaceURL, Gender: v.Gender, AppMangerLevel: v.AppMangerLevel}) + //} + + //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) + c.JSON(http.StatusOK, resp) +} + +func ResignUser(c *gin.Context) { + +} + + + +func AlterUser(c *gin.Context) { + +} + +func AddUser(c *gin.Context) { + +} + +func BlockUser(c *gin.Context) { + +} + +func UnblockUser(c *gin.Context) { + +} + +func GetBlockUsers(c *gin.Context) { + +} diff --git a/pkg/cms_api_struct/admin.go b/pkg/cms_api_struct/admin.go new file mode 100644 index 000000000..ffc2484b0 --- /dev/null +++ b/pkg/cms_api_struct/admin.go @@ -0,0 +1 @@ +package cms_api_struct diff --git a/pkg/cms_api_struct/common.go b/pkg/cms_api_struct/common.go new file mode 100644 index 000000000..9d9eca316 --- /dev/null +++ b/pkg/cms_api_struct/common.go @@ -0,0 +1,10 @@ +package cms_api_struct + + +type RequestPagination struct { + PageNumber int `json:"page_number"` + ShowNumber int `json:"show_number"` +} + + + diff --git a/pkg/cms_api_struct/group.go b/pkg/cms_api_struct/group.go new file mode 100644 index 000000000..99820d9e8 --- /dev/null +++ b/pkg/cms_api_struct/group.go @@ -0,0 +1,20 @@ +package cms_api_struct + +type SearchGroupsResponse struct { + GroupList []struct { + GroupNickName string `json:"group_nick_name"` + GroupID int `json:"group_id"` + MasterName string `json:"master_name"` + MasterId int `json:"master_id"` + CreatTime string `json:"creat_time"` + } `json:"group_list"` +} + +type SearchGroupMemberResponse struct { + GroupMemberList []struct { + MemberPosition int `json:"member_position"` + MemberNickName string `json:"member_nick_name"` + MemberId int `json:"member_id"` + JoinTime string `json:"join_time"` + } `json:"group_member_list"` +} diff --git a/pkg/cms_api_struct/message.go b/pkg/cms_api_struct/message.go new file mode 100644 index 000000000..5637b4eb0 --- /dev/null +++ b/pkg/cms_api_struct/message.go @@ -0,0 +1,27 @@ +package cms_api_struct + +type SearchMessageByUserResponse struct { + MessageList []struct { + ChatType int `json:"chat_type"` + MessageType int `json:"message_type"` + SenderNickName string `json:"sender_nick_name"` + SenderId int `json:"sender_id"` + ReceiverNickName string `json:"receiver_nick_name"` + ReceiverID int `json:"receiver_id"` + SearchContent string `json:"search_content"` + WholeContent string `json:"whole_content"` + Date string `json:"date"` + } `json:"massage_list"` +} + +type SearchMessageByGroupResponse struct { + MessageList []struct { + ChatType int `json:"chat_type"` + MessageType int `json:"message_type"` + SenderNickName string `json:"sender_nick_name"` + SenderId int `json:"sender_id"` + SearchContent string `json:"search_content"` + WholeContent string `json:"whole_content"` + Date string `json:"date"` + } `json:"massage_list"` +} diff --git a/pkg/cms_api_struct/organization.go b/pkg/cms_api_struct/organization.go new file mode 100644 index 000000000..825d41aa1 --- /dev/null +++ b/pkg/cms_api_struct/organization.go @@ -0,0 +1,25 @@ +package cms_api_struct + +type GetStaffsResponse struct { + StaffsList []struct { + ProfilePhoto string `json:"profile_photo"` + NickName string `json:"nick_name"` + StaffId int `json:"staff_id"` + Position string `json:"position"` + EntryTime string `json:"entry_time"` + } `json:"staffs_list"` +} + +type GetOrganizationsResponse struct { + OrganizationList []struct { + OrganizationId int `json:"organization_id"` + OrganizationName string `json:"organization_name"` + } `json:"organization_list"` +} + +type SquadResponse struct { + SquadList []struct { + SquadId int `json:"squad_id"` + SquadName string `json:"squad_name"` + } `json:"squad_list"` +} diff --git a/pkg/cms_api_struct/statistics.go b/pkg/cms_api_struct/statistics.go new file mode 100644 index 000000000..376932f85 --- /dev/null +++ b/pkg/cms_api_struct/statistics.go @@ -0,0 +1,69 @@ +package cms_api_struct + +type StatisticsRequest struct { + From string `json:"from"` + To string `json:"to"` +} + +// 单聊 +type MessageStatisticsResponse struct { + PrivateMessageNum int `json:"private_message_num"` + GroupMessageNum int `json:"group_message_num"` + PrivateMessageNumList []struct { + Date string `json:"date"` + MessageNum int `json:"message_num"` + } `json:"private_message_num_list"` + GroupMessageNumList []struct { + Date string `json:"date"` + MessageNum int `json:"message_num"` + } `json:"group_message_num_list"` +} + +// 用户统计 +type UserStatisticsResponse struct { + IncreaseUserNum int `json:"increase_user_num"` + ActiveUserNum int `json:"active_user_num"` + TotalUserNum int `json:"total_user_num"` + IncreaseUserNumList []struct { + Date string `json:"date"` + IncreaseUserNum int `json:"increase_user_num"` + } `json:"increase_user_num_list"` + ActiveUserNumList []struct { + Date string `json:"date"` + ActiveUserNum int `json:"active_user_num"` + } `json:"active_user_num_list"` + TotalUserNumList []struct { + Date string `json:"date"` + TotalUserNum string `json:"total_user_num"` + } `json:"total_user_num_list"` +} + +// 群聊统计 +type GroupMessageStatisticsResponse struct { + IncreaseGroupNum int `json:"increase_group_num"` + TotalGroupNum int `json:"total_group_num"` + IncreaseGroupNumList []struct { + Date string `json:"date"` + IncreaseGroupNum int `json:"increase_group_num"` + } `json:"increase_group_num_list"` + TotalGroupNumList []struct { + Date string `json:"date"` + TotalGroupNum string `json:"total_group_num"` + } `json:"total_group_num_list"` +} + +type ActiveUserStatisticsResponse struct { + ActiveUserList []struct { + NickName string `json:"nick_name"` + Id int `json:"id"` + MessageNum int `json:"message_num"` + } `json:"active_user_list"` +} + +type ActiveGroupStatisticsResponse struct { + ActiveGroupList []struct { + GroupNickName string `json:"group_nick_name"` + GroupId int `json:"group_id"` + MessageNum int `json:"message_num"` + } `json:"active_group_list"` +} diff --git a/pkg/cms_api_struct/user.go b/pkg/cms_api_struct/user.go new file mode 100644 index 000000000..013065c4e --- /dev/null +++ b/pkg/cms_api_struct/user.go @@ -0,0 +1,7 @@ +package cms_api_struct + +type GetUsersResponse struct { + +} + + diff --git a/pkg/common/http/http_resp.go b/pkg/common/http/http_resp.go new file mode 100644 index 000000000..d02cfda64 --- /dev/null +++ b/pkg/common/http/http_resp.go @@ -0,0 +1 @@ +package http diff --git a/pkg/proto/user/user.proto b/pkg/proto/user/user.proto index 75455f7a0..18ecff94c 100644 --- a/pkg/proto/user/user.proto +++ b/pkg/proto/user/user.proto @@ -106,6 +106,53 @@ message GetAllConversationMsgOptResp{ repeated OptResult conversationOptResultList = 3; } +message ResignUserReq{ + string UserId = 1; + string OperationID = 2; +} + +message ResignUserResp{ + CommonResp commonResp = 1; +} + +message GetUserReq{ + string UserId = 1; + string OperationID = 2; +} + +message User{ + +} + +message GetUserResp{ + User user = 1 +} + +message AlterUserReq{ + string UserId = 1; + string OperationID = 2; +} + +message AlterUserResp{ + CommonResp commonResp = 1; +} + +message GetUserReq{ + string OperationID = 1; +} + +message GetUsersResp{ + string OperationID = 1; + repeated Users User = 2; +} + +message AddUserReq{ + string OperationID = 1; +} + +message AddUserResp{ + CommonResp commonResp = 1; +} service user { rpc GetUserInfo(GetUserInfoReq) returns(GetUserInfoResp); @@ -116,4 +163,13 @@ service user { rpc GetReceiveMessageOpt(GetReceiveMessageOptReq)returns(GetReceiveMessageOptResp); rpc GetAllConversationMsgOpt(GetAllConversationMsgOptReq)returns(GetAllConversationMsgOptResp); rpc AccountCheck(AccountCheckReq)returns(AccountCheckResp); + + rpc ResignUser(ResignUserReq) returns (ResignUserResp); + rpc GetUser(GetUserReq) returns (GetUserResp); + rpc AlterUser(AlterUserReq) returns (AlterUserResp); + rpc GetUsers(GetUsersReq) returns (GetUsersResp); + rpc AddUser(AddUserReq) returns (AddUserResp); + rpc BlockUser(BlockUserReq) returns (BlockUserResp); + rpc UnBlockUser(UnBlockUserReq) returns (UnBlockUserResp); + rpc GetBlockUsers(GetBlockUsersReq) returns (GetBlockUsersResp); } From 1607853393b7661539df4521d3739e8a28c55344 Mon Sep 17 00:00:00 2001 From: wangchuxiao Date: Mon, 24 Jan 2022 01:40:49 +0800 Subject: [PATCH 552/814] cms --- cmd/open_im_cms_api/main.go | 16 +- config/config.yaml | 6 +- go.mod | 1 + internal/cms_api/group/group.go | 10 +- internal/cms_api/message/message.go | 10 +- internal/cms_api/organization/organization.go | 39 +- internal/cms_api/router.go | 4 +- internal/cms_api/statistics/statistics.go | 65 +- internal/cms_api/user/user.go | 204 +- internal/rpc/user/user.go | 63 +- pkg/cms_api_struct/common.go | 8 +- pkg/cms_api_struct/user.go | 58 + pkg/common/constant/error.go | 6 +- .../mysql_model/im_mysql_model/user_model.go | 39 +- pkg/common/http/http_resp.go | 22 + pkg/proto/auto_proto.sh | 2 +- pkg/proto/proto_dir.cfg | 12 +- pkg/proto/sdk_ws/ws.pb.go | 4629 +++++++++++------ pkg/proto/sdk_ws/ws.proto | 7 + pkg/proto/user/user.pb.go | 3567 ++++++++++--- pkg/proto/user/user.proto | 66 +- 21 files changed, 6245 insertions(+), 2589 deletions(-) diff --git a/cmd/open_im_cms_api/main.go b/cmd/open_im_cms_api/main.go index c81a6080c..df39c4672 100644 --- a/cmd/open_im_cms_api/main.go +++ b/cmd/open_im_cms_api/main.go @@ -1 +1,15 @@ -package open_im_cms_api +package main + +import ( + "Open_IM/internal/cms_api" + "Open_IM/pkg/utils" + + "github.com/gin-gonic/gin" +) + +func main() { + gin.SetMode(gin.ReleaseMode) + router := cms_api.NewGinRouter() + router.Use(utils.CorsHandler()) + router.Run(":" + "8000") +} diff --git a/config/config.yaml b/config/config.yaml index 65696d2ba..49754cd41 100644 --- a/config/config.yaml +++ b/config/config.yaml @@ -8,7 +8,7 @@ etcd: etcdAddr: [ 127.0.0.1:2379 ] mysql: - dbMysqlAddress: [ 127.0.0.1:13306 ] + dbMysqlAddress: [ 43.128.5.63:13306 ] dbMysqlUserName: root dbMysqlPassword: openIM dbMysqlDatabaseName: openIM @@ -19,7 +19,7 @@ mysql: dbMaxLifeTime: 120 mongo: - dbAddress: [ 127.0.0.1:37017 ] + dbAddress: [ 43.128.5.63:37017 ] dbDirect: false dbTimeout: 10 dbDatabase: openIM @@ -70,6 +70,8 @@ endpoints: api: openImApiPort: [ 10000 ] +cmsapi: + openImCMSPort: [ 8000 ] sdk: openImSdkWsPort: [ 30000 ] diff --git a/go.mod b/go.mod index 767401200..6cb3f4412 100644 --- a/go.mod +++ b/go.mod @@ -47,6 +47,7 @@ require ( golang.org/x/image v0.0.0-20210220032944-ac19c3e999fb golang.org/x/net v0.0.0-20210917221730-978cfadd31cf google.golang.org/grpc v1.40.0 + google.golang.org/protobuf v1.27.1 gopkg.in/alexcesaro/quotedprintable.v3 v3.0.0-20150716171945-2caba252f4dc // indirect gopkg.in/gomail.v2 v2.0.0-20160411212932-81ebce5c23df gopkg.in/mgo.v2 v2.0.0-20190816093944-a6b53ec6cb22 diff --git a/internal/cms_api/group/group.go b/internal/cms_api/group/group.go index 03cfdeb18..c810ff5cd 100644 --- a/internal/cms_api/group/group.go +++ b/internal/cms_api/group/group.go @@ -1,21 +1,15 @@ package group import ( - _ "Open_IM_CMS/pkg/req_resp" - "Open_IM_CMS/test" - "net/http" - "github.com/gin-gonic/gin" ) func SearchGroups(c *gin.Context) { - fake := test.GetSearchGroupsResponseFake() - c.JSON(http.StatusOK, gin.H{"code": "0", "data": fake}) + } func SearchGroupsMember(c *gin.Context) { - fake := test.GetSearchMemberResponseFake() - c.JSON(http.StatusOK, gin.H{"code": "0", "data": fake}) + } func CreateGroup(c *gin.Context) { diff --git a/internal/cms_api/message/message.go b/internal/cms_api/message/message.go index cc2e361cb..e13829b2f 100644 --- a/internal/cms_api/message/message.go +++ b/internal/cms_api/message/message.go @@ -1,10 +1,6 @@ package message import ( - "net/http" - - "Open_IM_CMS/test" - "github.com/gin-gonic/gin" ) @@ -13,13 +9,11 @@ func Broadcast(c *gin.Context) { } func SearchMessageByUser(c *gin.Context) { - fake := test.GetSearchUserMsgFake() - c.JSON(http.StatusOK, gin.H{"code": "0", "data": fake}) + } func SearchMessageByGroup(c *gin.Context) { - fake := test.GetSearchGroupMsgFake() - c.JSON(http.StatusOK, gin.H{"code": "0", "data": fake}) + } func MassSendMassage(c *gin.Context) { diff --git a/internal/cms_api/organization/organization.go b/internal/cms_api/organization/organization.go index a389de1e5..f775283ca 100644 --- a/internal/cms_api/organization/organization.go +++ b/internal/cms_api/organization/organization.go @@ -1,52 +1,19 @@ package organization import ( - "Open_IM_CMS/pkg/common/config" - "Open_IM_CMS/pkg/errno" - "Open_IM_CMS/pkg/etcdv3" - commonProto "Open_IM_CMS/pkg/proto/common" - proto "Open_IM_CMS/pkg/proto/organization" - "Open_IM_CMS/pkg/req_resp" - "Open_IM_CMS/test" - "context" - "fmt" - "net/http" - "strings" - "github.com/gin-gonic/gin" ) func GetStaffs(c *gin.Context) { - var ( - req req_resp.GetStaffsResponse - resp req_resp.GetStaffsResponse - reqPb commonProto.Pagination - respPb *proto.GetStaffsResp - ) - fmt.Println(resp, req) - fakeData := test.GetStaffsResponseFake() - etcdConn := etcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImCMSApiOrganizationName) - client := proto.NewOrganizationClient(etcdConn) - fmt.Println(client, reqPb) - respPb, err := client.GetStaffs(context.Background(), &reqPb) - fmt.Println(respPb, err) - fmt.Println(etcdConn) - req_resp.RespHttp200(c, errno.RespOK, fakeData) + } func GetOrganizations(c *gin.Context) { - var ( - req req_resp.GetOrganizationsResponse - resp req_resp.GetStaffsResponse - ) - fmt.Println(resp, req) - fakeData := test.GetOrganizationsResponseFake() - c.JSON(http.StatusOK, gin.H{"code": "0", "data": fakeData}) + } func GetSquads(c *gin.Context) { - fakeData := test.GetSquadResponseFake() - c.JSON(http.StatusOK, gin.H{"code": "0", "data": fakeData}) + } func AlterStaff(c *gin.Context) { diff --git a/internal/cms_api/router.go b/internal/cms_api/router.go index 2a150d8fc..8ad49cffa 100644 --- a/internal/cms_api/router.go +++ b/internal/cms_api/router.go @@ -8,10 +8,10 @@ import ( "Open_IM/internal/cms_api/organization" "Open_IM/internal/cms_api/statistics" "Open_IM/internal/cms_api/user" + "github.com/gin-gonic/gin" ) - func NewGinRouter() *gin.Engine { gin.SetMode(gin.ReleaseMode) baseRouter := gin.Default() @@ -70,7 +70,7 @@ func NewGinRouter() *gin.Engine { groupRouterGroup.POST("/withdraw_message", group.Withdraw) groupRouterGroup.POST("/search_group_message", group.SearchMessage) } - userRouterGroup := router.Group("/users") + userRouterGroup := router.Group("/user") { userRouterGroup.POST("/resign", user.ResignUser) userRouterGroup.GET("/get_user", user.GetUser) diff --git a/internal/cms_api/statistics/statistics.go b/internal/cms_api/statistics/statistics.go index c6bbd9e1b..107bd8f61 100644 --- a/internal/cms_api/statistics/statistics.go +++ b/internal/cms_api/statistics/statistics.go @@ -1,80 +1,25 @@ package statistics import ( - "net/http" - - "Open_IM/pkg/req_resp" - - "Open_IM/test" - "github.com/gin-gonic/gin" ) func MessagesStatistics(c *gin.Context) { - var ( - req req_resp.StatisticsRequest - //resp req_resp.MessageStatisticsResponse - ) - if err := c.ShouldBindUri(&req); err != nil { - c.JSON(http.StatusBadRequest, gin.H{}) - return - } - if _, err := test.RpcFake(); err != nil { - c.JSON(http.StatusOK, gin.H{}) - return - } - fakeData := test.GetUserStatisticsResponseFake() - c.JSON(http.StatusOK, gin.H{"code": "0", "data": fakeData}) + } func UsersStatistics(c *gin.Context) { - var ( - req req_resp.StatisticsRequest - //resp req_resp.MessageStatisticsResponse - ) - if err := c.ShouldBindUri(&req); err != nil { - c.JSON(http.StatusBadRequest, gin.H{}) - return - } - if _, err := test.RpcFake(); err != nil { - c.JSON(http.StatusOK, gin.H{}) - return - } - fakeData := test.GetUserStatisticsResponseFake() - c.JSON(http.StatusOK, gin.H{"code": "0", "data": fakeData}) + } func GroupsStatistics(c *gin.Context) { - var ( - req req_resp.StatisticsRequest - //resp req_resp.MessageStatisticsResponse - ) - if err := c.ShouldBindUri(&req); err != nil { - c.JSON(http.StatusBadRequest, gin.H{}) - return - } - if _, err := test.RpcFake(); err != nil { - c.JSON(http.StatusOK, gin.H{}) - return - } - fakeData := test.GetUserStatisticsResponseFake() - c.JSON(http.StatusOK, gin.H{"code": "0", "data": fakeData}) + } func GetActiveUser(c *gin.Context) { - if _, err := test.RpcFake(); err != nil { - c.JSON(http.StatusOK, gin.H{}) - return - } - fakeData := test.GetActiveUserResponseFake() - c.JSON(http.StatusOK, gin.H{"code": "0", "data": fakeData}) + } func GetActiveGroup(c *gin.Context) { - if _, err := test.RpcFake(); err != nil { - c.JSON(http.StatusOK, gin.H{}) - return - } - fakeData := test.GetActiveGroupResponseFake() - c.JSON(http.StatusOK, gin.H{"code": "0", "data": fakeData}) + } diff --git a/internal/cms_api/user/user.go b/internal/cms_api/user/user.go index bb199a1f1..7a2e74887 100644 --- a/internal/cms_api/user/user.go +++ b/internal/cms_api/user/user.go @@ -1,76 +1,216 @@ package user import ( - jsonData "Open_IM/internal/utils" - api "Open_IM/pkg/base_info" "Open_IM/pkg/cms_api_struct" "Open_IM/pkg/common/config" + "Open_IM/pkg/common/constant" + openIMHttp "Open_IM/pkg/common/http" "Open_IM/pkg/common/log" "Open_IM/pkg/grpc-etcdv3/getcdv3" - open_im_sdk "Open_IM/pkg/proto/sdk_ws" - rpc "Open_IM/pkg/proto/user" + commonPb "Open_IM/pkg/proto/sdk_ws" + pb "Open_IM/pkg/proto/user" "Open_IM/pkg/utils" "context" - "github.com/gin-gonic/gin" + "fmt" "net/http" "strings" + + "github.com/gin-gonic/gin" ) func GetUser(c *gin.Context) { var ( - req cms_api_struct.RequestPagination - resp cms_api_struct.GetUsersResponse - reqPb rpc.GetUserInfoReq - respPb *rpc.GetUserInfoResp + req cms_api_struct.GetUserRequest + resp cms_api_struct.GetUserResponse + reqPb pb.GetUserReq + respPb *pb.GetUserResp ) - - if err := c.BindJSON(&req); err != nil { + if err := c.ShouldBindQuery(&req); err != nil { log.NewError("0", "BindJSON failed ", err.Error()) - c.JSON(http.StatusBadRequest, gin.H{"errCode": http.StatusBadRequest, "errMsg": err.Error()}) + openIMHttp.RespHttp200(c, constant.ErrArgs, nil) return } - utils.CopyStructFields(req, &req) - + utils.CopyStructFields(&reqPb, req) etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImUserName) - client := rpc.NewUserClient(etcdConn) - respPb, err := client.GetUserInfo(context.Background(), &reqPb) + client := pb.NewUserClient(etcdConn) + respPb, err := client.GetUser(context.Background(), &reqPb) if err != nil { - c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": "call rpc server failed"}) + log.NewError("s", "GetUserInfo failed ", err.Error()) + openIMHttp.RespHttp200(c, err.(constant.ErrInfo), nil) return } - //for _, v := range RpcResp.UserInfoList { - // publicUserInfoList = append(publicUserInfoList, - // &open_im_sdk.PublicUserInfo{UserID: v.UserID, Nickname: v.Nickname, FaceURL: v.FaceURL, Gender: v.Gender, AppMangerLevel: v.AppMangerLevel}) - //} - - //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) - c.JSON(http.StatusOK, resp) + // resp.UserId = resp.UserId + // resp.Nickname = resp.UserId + // resp.ProfilePhoto = resp.ProfilePhoto + // resp.UserResponse = + utils.CopyStructFields(&resp, respPb) + openIMHttp.RespHttp200(c, constant.OK, resp) } -func ResignUser(c *gin.Context) { +func GetUsers(c *gin.Context) { + var ( + req cms_api_struct.GetUsersRequest + resp cms_api_struct.GetUsersResponse + reqPb pb.GetUsersReq + respPb *pb.GetUsersResp + ) + reqPb.Pagination = &commonPb.RequestPagination{} + if err := c.ShouldBindQuery(&req); err != nil { + log.NewError("0", "BindJSON failed ", err.Error()) + openIMHttp.RespHttp200(c, constant.ErrArgs, nil) + return + } + utils.CopyStructFields(&reqPb.Pagination, &req) + etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImUserName) + client := pb.NewUserClient(etcdConn) + respPb, err := client.GetUsers(context.Background(), &reqPb) + for _, v := range respPb.User { + resp.Users = append(resp.Users, &cms_api_struct.UserResponse{ + ProfilePhoto: v.ProfilePhoto, + Nickname: v.Nickname, + UserId: v.UserID, + CreateTime: v.CreateTime, + }) + } + if err != nil { + openIMHttp.RespHttp200(c, err.(constant.ErrInfo), resp) + } + fmt.Println(resp) + openIMHttp.RespHttp200(c, constant.OK, resp) } - +func ResignUser(c *gin.Context) { + var ( + req cms_api_struct.ResignUserRequest + resp cms_api_struct.ResignUserResponse + reqPb pb.ResignUserReq + ) + if err := c.ShouldBind(&req); err != nil { + log.NewError("0", "BindJSON failed ", err.Error()) + c.JSON(http.StatusBadRequest, gin.H{"errCode": http.StatusBadRequest, "errMsg": err.Error()}) + return + } + utils.CopyStructFields(&reqPb, &req) + etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImUserName) + client := pb.NewUserClient(etcdConn) + _, err := client.ResignUser(context.Background(), &reqPb) + if err != nil { + openIMHttp.RespHttp200(c, constant.ErrDB, resp) + } + openIMHttp.RespHttp200(c, constant.OK, resp) +} func AlterUser(c *gin.Context) { - + var ( + req cms_api_struct.AlterUserRequest + resp cms_api_struct.AlterUserResponse + reqPb pb.AlterUserReq + respPb *pb.AlterUserResp + ) + if err := c.ShouldBind(&req); err != nil { + log.NewError("0", "BindJSON failed ", err.Error()) + openIMHttp.RespHttp200(c, constant.ErrArgs, resp) + return + } + utils.CopyStructFields(&reqPb, &req) + etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImUserName) + client := pb.NewUserClient(etcdConn) + respPb, err := client.AlterUser(context.Background(), &reqPb) + fmt.Println(respPb) + if err != nil { + openIMHttp.RespHttp200(c, err.(constant.ErrInfo), resp) + } + openIMHttp.RespHttp200(c, constant.OK, resp) } func AddUser(c *gin.Context) { + var ( + req cms_api_struct.AddUserRequest + resp cms_api_struct.AddUserResponse + reqPb pb.AddUserReq + respPb *pb.AddUserResp + ) + if err := c.ShouldBind(&req); err != nil { + log.NewError("0", "BindJSON failed ", err.Error()) + c.JSON(http.StatusBadRequest, gin.H{"errCode": http.StatusBadRequest, "errMsg": err.Error()}) + return + } + etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImUserName) + client := pb.NewUserClient(etcdConn) + respPb, err := client.AddUser(context.Background(), &reqPb) + fmt.Println(respPb) + if err != nil { + } + openIMHttp.RespHttp200(c, constant.OK, resp) } func BlockUser(c *gin.Context) { - + var ( + req cms_api_struct.BlockUserRequest + resp cms_api_struct.BlockUserResponse + reqPb pb.BlockUserReq + respPb *pb.BlockUserResp + ) + if err := c.ShouldBind(&req); err != nil { + log.NewError("0", "BindJSON failed ", err.Error()) + openIMHttp.RespHttp200(c, constant.ErrArgs, resp) + return + } + utils.CopyStructFields(&reqPb, req) + etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImUserName) + client := pb.NewUserClient(etcdConn) + respPb, err := client.BlockUser(context.Background(), &reqPb) + if err != nil { + openIMHttp.RespHttp200(c, err.(constant.ErrInfo), resp) + } + fmt.Println(respPb) + openIMHttp.RespHttp200(c, constant.OK, resp) } func UnblockUser(c *gin.Context) { - + var ( + req cms_api_struct.UnblockUserRequest + resp cms_api_struct.UnBlockUserResponse + reqPb pb.UnBlockUserReq + respPb *pb.UnBlockUserResp + ) + utils.CopyStructFields(&reqPb, req) + if err := c.ShouldBind(&req); err != nil { + log.NewError("0", "BindJSON failed ", err.Error()) + c.JSON(http.StatusBadRequest, gin.H{"errCode": http.StatusBadRequest, "errMsg": err.Error()}) + return + } + etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImUserName) + client := pb.NewUserClient(etcdConn) + respPb, err := client.UnBlockUser(context.Background(), &reqPb) + if err != nil { + openIMHttp.RespHttp200(c, err.(constant.ErrInfo), resp) + } + fmt.Println(respPb) + openIMHttp.RespHttp200(c, constant.OK, resp) } func GetBlockUsers(c *gin.Context) { - + var ( + req cms_api_struct.GetBlockUsersRequest + resp cms_api_struct.GetOrganizationsResponse + reqPb pb.GetBlockUsersReq + respPb *pb.GetBlockUsersResp + ) + if err := c.ShouldBindQuery(&req); err != nil { + log.NewError("0", "BindJSON failed ", err.Error()) + openIMHttp.RespHttp200(c, constant.ErrArgs, resp) + return + } + utils.CopyStructFields(&reqPb, &req) + etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImUserName) + client := pb.NewUserClient(etcdConn) + respPb, err := client.GetBlockUsers(context.Background(), &reqPb) + if err != nil { + openIMHttp.RespHttp200(c, err.(constant.ErrInfo), resp) + } + fmt.Println(respPb) + openIMHttp.RespHttp200(c, constant.OK, resp) } diff --git a/internal/rpc/user/user.go b/internal/rpc/user/user.go index a0c451026..38e2e7ed2 100644 --- a/internal/rpc/user/user.go +++ b/internal/rpc/user/user.go @@ -14,10 +14,11 @@ import ( pbUser "Open_IM/pkg/proto/user" "Open_IM/pkg/utils" "context" - "google.golang.org/grpc" "net" "strconv" "strings" + + "google.golang.org/grpc" ) type userServer struct { @@ -240,3 +241,63 @@ func (s *userServer) UpdateUserInfo(ctx context.Context, req *pbUser.UpdateUserI chat.UserInfoUpdatedNotification(req.OperationID, req.UserInfo.UserID, req.OpUserID) return &pbUser.UpdateUserInfoResp{CommonResp: &pbUser.CommonResp{}}, nil } + +func (s *userServer) GetUser(ctx context.Context, req *pbUser.GetUserReq) (*pbUser.GetUserResp, error) { + log.NewInfo(req.OperationID, "GetAllUserID args ", req.String()) + resp := &pbUser.GetUserResp{} + user, err := imdb.GetUserByUserID(req.UserId) + if err != nil { + log.NewError(req.OperationID, "SelectAllUserID false ", err.Error()) + return resp, nil + } + resp.User.CreateTime = user.CreateTime.String() + resp.User.ProfilePhoto = "" + resp.User.Nickname = user.Nickname + resp.User.UserID = user.UserID + return resp, nil +} + +func (s *userServer) GetUsers(ctx context.Context, req *pbUser.GetUsersReq) (*pbUser.GetUsersResp, error) { + log.NewInfo(req.OperationID, "GetUsers args ", req.String()) + resp := &pbUser.GetUsersResp{} + users, err := imdb.GetUsers(req.Pagination.ShowNumber, req.Pagination.PageNumber) + if err != nil { + log.NewError(req.OperationID, "SelectAllUserID false ", err.Error()) + return resp, nil + } + for _, v := range users { + resp.User = append(resp.User, &pbUser.User{ + ProfilePhoto: "", + UserID: v.UserID, + CreateTime: v.CreateTime.String(), + Nickname: v.Nickname, + }) + } + return resp, nil +} + +func (s *userServer) ResignUser(ctx context.Context, req *pbUser.ResignUserReq) (*pbUser.ResignUserResp, error) { + log.NewInfo(req.OperationID, "ResignUser args ", req.String()) + + return &pbUser.ResignUserResp{}, nil +} + +func (s *userServer) AlterUser(ctx context.Context, req *pbUser.AlterUserReq) (*pbUser.AlterUserResp, error) { + return &pbUser.AlterUserResp{}, nil +} + +func (s *userServer) AddUser(ctx context.Context, req *pbUser.AddUserReq) (*pbUser.AddUserResp, error) { + return &pbUser.AddUserResp{}, nil +} + +func (s *userServer) BlockUser(ctx context.Context, req *pbUser.BlockUserReq) (*pbUser.BlockUserResp, error) { + return &pbUser.BlockUserResp{}, nil +} + +func (s *userServer) UnBlockUser(ctx context.Context, req *pbUser.UnBlockUserReq) (*pbUser.UnBlockUserResp, error) { + return &pbUser.UnBlockUserResp{}, nil +} + +func (s *userServer) GetBlockUsers(ctx context.Context, req *pbUser.GetBlockUsersReq) (*pbUser.GetBlockUsersResp, error) { + return &pbUser.GetBlockUsersResp{}, nil +} diff --git a/pkg/cms_api_struct/common.go b/pkg/cms_api_struct/common.go index 9d9eca316..fc6490c82 100644 --- a/pkg/cms_api_struct/common.go +++ b/pkg/cms_api_struct/common.go @@ -1,10 +1,6 @@ package cms_api_struct - type RequestPagination struct { - PageNumber int `json:"page_number"` - ShowNumber int `json:"show_number"` + PageNumber int `form:"page_number" binding:"required"` + ShowNumber int `form:"show_number" binding:"required"` } - - - diff --git a/pkg/cms_api_struct/user.go b/pkg/cms_api_struct/user.go index 013065c4e..0b2fd5328 100644 --- a/pkg/cms_api_struct/user.go +++ b/pkg/cms_api_struct/user.go @@ -1,7 +1,65 @@ package cms_api_struct +type UserResponse struct { + ProfilePhoto string `json:"profile_photo"` + Nickname string `json:"nick_name"` + UserId string `json:"user_id"` + CreateTime string `json:"create_time"` +} + +type GetUserRequest struct { + UserId string `form:"user_id"` +} + +type GetUserResponse struct { + UserResponse +} + +type GetUsersRequest struct { + RequestPagination +} + type GetUsersResponse struct { + Users []*UserResponse `json:"users"` +} + +type ResignUserRequest struct { + UserId string `json:"user_id"` +} +type ResignUserResponse struct { } +type AlterUserRequest struct { + UserId string `json:"user_id"` +} +type AlterUserResponse struct { +} + +type AddUserRequest struct { +} + +type AddUserResponse struct { +} + +type BlockUserRequest struct { + UserId string `json:"user_id"` +} + +type BlockUserResponse struct { +} + +type UnblockUserRequest struct { + UserId string `json:"user_id"` +} + +type UnBlockUserResponse struct { +} + +type GetBlockUsersRequest struct { + RequestPagination +} + +type GetBlockUsersResponse struct { +} diff --git a/pkg/common/constant/error.go b/pkg/common/constant/error.go index 6df403140..cec84634f 100644 --- a/pkg/common/constant/error.go +++ b/pkg/common/constant/error.go @@ -78,6 +78,10 @@ const ( IntentionalError = 10007 ) -func (e *ErrInfo) Error() string { +func (e ErrInfo) Error() string { return e.ErrMsg } + +func (e *ErrInfo) Code() int32 { + return e.ErrCode +} 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 5c3b226d5..c313840d8 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 @@ -6,8 +6,9 @@ import ( "Open_IM/pkg/common/db" "Open_IM/pkg/utils" "fmt" - _ "github.com/jinzhu/gorm/dialects/mysql" "time" + + _ "github.com/jinzhu/gorm/dialects/mysql" ) func init() { @@ -50,17 +51,17 @@ func UserRegister(user db.User) error { return nil } -//type User struct { -// UserID string `gorm:"column:user_id;primaryKey;"` -// Nickname string `gorm:"column:name"` -// FaceUrl string `gorm:"column:icon"` -// Gender int32 `gorm:"column:gender"` -// PhoneNumber string `gorm:"column:phone_number"` -// Birth string `gorm:"column:birth"` -// Email string `gorm:"column:email"` -// Ex string `gorm:"column:ex"` -// CreateTime time.Time `gorm:"column:create_time"` -//} +type User struct { + UserID string `gorm:"column:user_id;primaryKey;"` + Nickname string `gorm:"column:name"` + FaceUrl string `gorm:"column:icon"` + Gender int32 `gorm:"column:gender"` + PhoneNumber string `gorm:"column:phone_number"` + Birth string `gorm:"column:birth"` + Email string `gorm:"column:email"` + Ex string `gorm:"column:ex"` + CreateTime time.Time `gorm:"column:create_time"` +} func DeleteUser(userID string) (i int64) { dbConn, err := db.DB.MysqlDB.DefaultGormDB() @@ -121,3 +122,17 @@ func SelectSomeUserID(userIDList []string) ([]string, error) { } return resultArr, nil } + +func GetUsers(showNumber, pageNumber int32) ([]User, error) { + dbConn, err := db.DB.MysqlDB.DefaultGormDB() + dbConn.LogMode(true) + var users []User + if err != nil { + return users, err + } + err = dbConn.Limit(showNumber).Offset(pageNumber).Find(&users).Error + if err != nil { + return users, err + } + return users, nil +} diff --git a/pkg/common/http/http_resp.go b/pkg/common/http/http_resp.go index d02cfda64..7cf3acc4f 100644 --- a/pkg/common/http/http_resp.go +++ b/pkg/common/http/http_resp.go @@ -1 +1,23 @@ package http + +import ( + "Open_IM/pkg/common/constant" + "net/http" + + "github.com/gin-gonic/gin" +) + +type BaseResp struct { + Code int32 `json:"code"` + ErrMsg string `json:"err_msg"` + Data interface{} `json:"data"` +} + +func RespHttp200(ctx *gin.Context, err constant.ErrInfo, data interface{}) { + resp := BaseResp{ + Code: err.Code(), + ErrMsg: err.Error(), + Data: data, + } + ctx.JSON(http.StatusOK, resp) +} diff --git a/pkg/proto/auto_proto.sh b/pkg/proto/auto_proto.sh index 25408d46e..d0e037d8b 100644 --- a/pkg/proto/auto_proto.sh +++ b/pkg/proto/auto_proto.sh @@ -7,7 +7,7 @@ for ((i = 0; i < ${#all_proto[*]}; i++)); do protoc -I ../../../ -I ./ --go_out=plugins=grpc:. $proto s=`echo $proto | sed 's/ //g'` v=${s//proto/pb.go} - protoc-go-inject-tag -input=./$v + # protoc-go-inject-tag -input=./$v echo "protoc --go_out=plugins=grpc:." $proto done echo "proto file generate success..." diff --git a/pkg/proto/proto_dir.cfg b/pkg/proto/proto_dir.cfg index 1ad259e8a..70472ac8d 100644 --- a/pkg/proto/proto_dir.cfg +++ b/pkg/proto/proto_dir.cfg @@ -1,11 +1,11 @@ all_proto=( - auth/auth.proto - friend/friend.proto - group/group.proto + # auth/auth.proto + # friend/friend.proto + # group/group.proto user/user.proto - chat/chat.proto - push/push.proto - relay/relay.proto + # chat/chat.proto + # push/push.proto + # relay/relay.proto sdk_ws/ws.proto ) diff --git a/pkg/proto/sdk_ws/ws.pb.go b/pkg/proto/sdk_ws/ws.pb.go index c99165093..7baaa6b6f 100644 --- a/pkg/proto/sdk_ws/ws.pb.go +++ b/pkg/proto/sdk_ws/ws.pb.go @@ -1,2616 +1,3885 @@ // Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.26.0 +// protoc v3.19.3 // source: sdk_ws/ws.proto package server_api_params -import proto "github.com/golang/protobuf/proto" -import fmt "fmt" -import math "math" +import ( + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + reflect "reflect" + sync "sync" +) -// 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 +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) type GroupInfo struct { - GroupID string `protobuf:"bytes,1,opt,name=groupID" json:"groupID,omitempty"` - GroupName string `protobuf:"bytes,2,opt,name=groupName" json:"groupName,omitempty"` - Notification string `protobuf:"bytes,3,opt,name=notification" json:"notification,omitempty"` - Introduction string `protobuf:"bytes,4,opt,name=introduction" json:"introduction,omitempty"` - FaceURL string `protobuf:"bytes,5,opt,name=faceURL" json:"faceURL,omitempty"` - OwnerUserID string `protobuf:"bytes,6,opt,name=ownerUserID" json:"ownerUserID,omitempty"` - CreateTime uint32 `protobuf:"varint,7,opt,name=createTime" json:"createTime,omitempty"` - MemberCount uint32 `protobuf:"varint,8,opt,name=memberCount" json:"memberCount,omitempty"` - Ex string `protobuf:"bytes,9,opt,name=ex" json:"ex,omitempty"` - Status int32 `protobuf:"varint,10,opt,name=status" json:"status,omitempty"` - CreatorUserID string `protobuf:"bytes,11,opt,name=creatorUserID" json:"creatorUserID,omitempty"` - GroupType int32 `protobuf:"varint,12,opt,name=groupType" json:"groupType,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -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_dd0597f97f3a9074, []int{0} -} -func (m *GroupInfo) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_GroupInfo.Unmarshal(m, b) -} -func (m *GroupInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_GroupInfo.Marshal(b, m, deterministic) + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + GroupID string `protobuf:"bytes,1,opt,name=groupID,proto3" json:"groupID,omitempty"` + GroupName string `protobuf:"bytes,2,opt,name=groupName,proto3" json:"groupName,omitempty"` + Notification string `protobuf:"bytes,3,opt,name=notification,proto3" json:"notification,omitempty"` + Introduction string `protobuf:"bytes,4,opt,name=introduction,proto3" json:"introduction,omitempty"` + FaceURL string `protobuf:"bytes,5,opt,name=faceURL,proto3" json:"faceURL,omitempty"` + OwnerUserID string `protobuf:"bytes,6,opt,name=ownerUserID,proto3" json:"ownerUserID,omitempty"` + CreateTime uint32 `protobuf:"varint,7,opt,name=createTime,proto3" json:"createTime,omitempty"` + MemberCount uint32 `protobuf:"varint,8,opt,name=memberCount,proto3" json:"memberCount,omitempty"` + Ex string `protobuf:"bytes,9,opt,name=ex,proto3" json:"ex,omitempty"` + Status int32 `protobuf:"varint,10,opt,name=status,proto3" json:"status,omitempty"` + CreatorUserID string `protobuf:"bytes,11,opt,name=creatorUserID,proto3" json:"creatorUserID,omitempty"` + GroupType int32 `protobuf:"varint,12,opt,name=groupType,proto3" json:"groupType,omitempty"` } -func (dst *GroupInfo) XXX_Merge(src proto.Message) { - xxx_messageInfo_GroupInfo.Merge(dst, src) + +func (x *GroupInfo) Reset() { + *x = GroupInfo{} + if protoimpl.UnsafeEnabled { + mi := &file_sdk_ws_ws_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *GroupInfo) XXX_Size() int { - return xxx_messageInfo_GroupInfo.Size(m) + +func (x *GroupInfo) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *GroupInfo) XXX_DiscardUnknown() { - xxx_messageInfo_GroupInfo.DiscardUnknown(m) + +func (*GroupInfo) ProtoMessage() {} + +func (x *GroupInfo) ProtoReflect() protoreflect.Message { + mi := &file_sdk_ws_ws_proto_msgTypes[0] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) } -var xxx_messageInfo_GroupInfo proto.InternalMessageInfo +// Deprecated: Use GroupInfo.ProtoReflect.Descriptor instead. +func (*GroupInfo) Descriptor() ([]byte, []int) { + return file_sdk_ws_ws_proto_rawDescGZIP(), []int{0} +} -func (m *GroupInfo) GetGroupID() string { - if m != nil { - return m.GroupID +func (x *GroupInfo) GetGroupID() string { + if x != nil { + return x.GroupID } return "" } -func (m *GroupInfo) GetGroupName() string { - if m != nil { - return m.GroupName +func (x *GroupInfo) GetGroupName() string { + if x != nil { + return x.GroupName } return "" } -func (m *GroupInfo) GetNotification() string { - if m != nil { - return m.Notification +func (x *GroupInfo) GetNotification() string { + if x != nil { + return x.Notification } return "" } -func (m *GroupInfo) GetIntroduction() string { - if m != nil { - return m.Introduction +func (x *GroupInfo) GetIntroduction() string { + if x != nil { + return x.Introduction } return "" } -func (m *GroupInfo) GetFaceURL() string { - if m != nil { - return m.FaceURL +func (x *GroupInfo) GetFaceURL() string { + if x != nil { + return x.FaceURL } return "" } -func (m *GroupInfo) GetOwnerUserID() string { - if m != nil { - return m.OwnerUserID +func (x *GroupInfo) GetOwnerUserID() string { + if x != nil { + return x.OwnerUserID } return "" } -func (m *GroupInfo) GetCreateTime() uint32 { - if m != nil { - return m.CreateTime +func (x *GroupInfo) GetCreateTime() uint32 { + if x != nil { + return x.CreateTime } return 0 } -func (m *GroupInfo) GetMemberCount() uint32 { - if m != nil { - return m.MemberCount +func (x *GroupInfo) GetMemberCount() uint32 { + if x != nil { + return x.MemberCount } return 0 } -func (m *GroupInfo) GetEx() string { - if m != nil { - return m.Ex +func (x *GroupInfo) GetEx() string { + if x != nil { + return x.Ex } return "" } -func (m *GroupInfo) GetStatus() int32 { - if m != nil { - return m.Status +func (x *GroupInfo) GetStatus() int32 { + if x != nil { + return x.Status } return 0 } -func (m *GroupInfo) GetCreatorUserID() string { - if m != nil { - return m.CreatorUserID +func (x *GroupInfo) GetCreatorUserID() string { + if x != nil { + return x.CreatorUserID } return "" } -func (m *GroupInfo) GetGroupType() int32 { - if m != nil { - return m.GroupType +func (x *GroupInfo) GetGroupType() int32 { + if x != nil { + return x.GroupType } return 0 } type GroupMemberFullInfo struct { - GroupID string `protobuf:"bytes,1,opt,name=groupID" json:"groupID,omitempty"` - UserID string `protobuf:"bytes,2,opt,name=userID" json:"userID,omitempty"` - RoleLevel int32 `protobuf:"varint,3,opt,name=roleLevel" json:"roleLevel,omitempty"` - JoinTime int64 `protobuf:"varint,4,opt,name=joinTime" json:"joinTime,omitempty"` - Nickname string `protobuf:"bytes,5,opt,name=nickname" json:"nickname,omitempty"` - FaceURL string `protobuf:"bytes,6,opt,name=faceURL" json:"faceURL,omitempty"` - AppMangerLevel int32 `protobuf:"varint,7,opt,name=appMangerLevel" json:"appMangerLevel,omitempty"` - JoinSource int32 `protobuf:"varint,8,opt,name=joinSource" json:"joinSource,omitempty"` - OperatorUserID string `protobuf:"bytes,9,opt,name=operatorUserID" json:"operatorUserID,omitempty"` - Ex string `protobuf:"bytes,10,opt,name=ex" json:"ex,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -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_dd0597f97f3a9074, []int{1} -} -func (m *GroupMemberFullInfo) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_GroupMemberFullInfo.Unmarshal(m, b) -} -func (m *GroupMemberFullInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_GroupMemberFullInfo.Marshal(b, m, deterministic) + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + GroupID string `protobuf:"bytes,1,opt,name=groupID,proto3" json:"groupID,omitempty"` + UserID string `protobuf:"bytes,2,opt,name=userID,proto3" json:"userID,omitempty"` + RoleLevel int32 `protobuf:"varint,3,opt,name=roleLevel,proto3" json:"roleLevel,omitempty"` + JoinTime int64 `protobuf:"varint,4,opt,name=joinTime,proto3" json:"joinTime,omitempty"` + Nickname string `protobuf:"bytes,5,opt,name=nickname,proto3" json:"nickname,omitempty"` + FaceURL string `protobuf:"bytes,6,opt,name=faceURL,proto3" json:"faceURL,omitempty"` + AppMangerLevel int32 `protobuf:"varint,7,opt,name=appMangerLevel,proto3" json:"appMangerLevel,omitempty"` //if >0 + JoinSource int32 `protobuf:"varint,8,opt,name=joinSource,proto3" json:"joinSource,omitempty"` + OperatorUserID string `protobuf:"bytes,9,opt,name=operatorUserID,proto3" json:"operatorUserID,omitempty"` + Ex string `protobuf:"bytes,10,opt,name=ex,proto3" json:"ex,omitempty"` } -func (dst *GroupMemberFullInfo) XXX_Merge(src proto.Message) { - xxx_messageInfo_GroupMemberFullInfo.Merge(dst, src) + +func (x *GroupMemberFullInfo) Reset() { + *x = GroupMemberFullInfo{} + if protoimpl.UnsafeEnabled { + mi := &file_sdk_ws_ws_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *GroupMemberFullInfo) XXX_Size() int { - return xxx_messageInfo_GroupMemberFullInfo.Size(m) + +func (x *GroupMemberFullInfo) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *GroupMemberFullInfo) XXX_DiscardUnknown() { - xxx_messageInfo_GroupMemberFullInfo.DiscardUnknown(m) + +func (*GroupMemberFullInfo) ProtoMessage() {} + +func (x *GroupMemberFullInfo) ProtoReflect() protoreflect.Message { + mi := &file_sdk_ws_ws_proto_msgTypes[1] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) } -var xxx_messageInfo_GroupMemberFullInfo proto.InternalMessageInfo +// Deprecated: Use GroupMemberFullInfo.ProtoReflect.Descriptor instead. +func (*GroupMemberFullInfo) Descriptor() ([]byte, []int) { + return file_sdk_ws_ws_proto_rawDescGZIP(), []int{1} +} -func (m *GroupMemberFullInfo) GetGroupID() string { - if m != nil { - return m.GroupID +func (x *GroupMemberFullInfo) GetGroupID() string { + if x != nil { + return x.GroupID } return "" } -func (m *GroupMemberFullInfo) GetUserID() string { - if m != nil { - return m.UserID +func (x *GroupMemberFullInfo) GetUserID() string { + if x != nil { + return x.UserID } return "" } -func (m *GroupMemberFullInfo) GetRoleLevel() int32 { - if m != nil { - return m.RoleLevel +func (x *GroupMemberFullInfo) GetRoleLevel() int32 { + if x != nil { + return x.RoleLevel } return 0 } -func (m *GroupMemberFullInfo) GetJoinTime() int64 { - if m != nil { - return m.JoinTime +func (x *GroupMemberFullInfo) GetJoinTime() int64 { + if x != nil { + return x.JoinTime } return 0 } -func (m *GroupMemberFullInfo) GetNickname() string { - if m != nil { - return m.Nickname +func (x *GroupMemberFullInfo) GetNickname() string { + if x != nil { + return x.Nickname } return "" } -func (m *GroupMemberFullInfo) GetFaceURL() string { - if m != nil { - return m.FaceURL +func (x *GroupMemberFullInfo) GetFaceURL() string { + if x != nil { + return x.FaceURL } return "" } -func (m *GroupMemberFullInfo) GetAppMangerLevel() int32 { - if m != nil { - return m.AppMangerLevel +func (x *GroupMemberFullInfo) GetAppMangerLevel() int32 { + if x != nil { + return x.AppMangerLevel } return 0 } -func (m *GroupMemberFullInfo) GetJoinSource() int32 { - if m != nil { - return m.JoinSource +func (x *GroupMemberFullInfo) GetJoinSource() int32 { + if x != nil { + return x.JoinSource } return 0 } -func (m *GroupMemberFullInfo) GetOperatorUserID() string { - if m != nil { - return m.OperatorUserID +func (x *GroupMemberFullInfo) GetOperatorUserID() string { + if x != nil { + return x.OperatorUserID } return "" } -func (m *GroupMemberFullInfo) GetEx() string { - if m != nil { - return m.Ex +func (x *GroupMemberFullInfo) GetEx() string { + if x != nil { + return x.Ex } return "" } type PublicUserInfo struct { - UserID string `protobuf:"bytes,1,opt,name=userID" json:"userID,omitempty"` - Nickname string `protobuf:"bytes,2,opt,name=nickname" json:"nickname,omitempty"` - FaceURL string `protobuf:"bytes,3,opt,name=faceURL" json:"faceURL,omitempty"` - Gender int32 `protobuf:"varint,4,opt,name=gender" json:"gender,omitempty"` - AppMangerLevel int32 `protobuf:"varint,5,opt,name=appMangerLevel" json:"appMangerLevel,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -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_dd0597f97f3a9074, []int{2} -} -func (m *PublicUserInfo) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_PublicUserInfo.Unmarshal(m, b) -} -func (m *PublicUserInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_PublicUserInfo.Marshal(b, m, deterministic) + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + UserID string `protobuf:"bytes,1,opt,name=userID,proto3" json:"userID,omitempty"` + Nickname string `protobuf:"bytes,2,opt,name=nickname,proto3" json:"nickname,omitempty"` + FaceURL string `protobuf:"bytes,3,opt,name=faceURL,proto3" json:"faceURL,omitempty"` + Gender int32 `protobuf:"varint,4,opt,name=gender,proto3" json:"gender,omitempty"` + AppMangerLevel int32 `protobuf:"varint,5,opt,name=appMangerLevel,proto3" json:"appMangerLevel,omitempty"` //if >0 } -func (dst *PublicUserInfo) XXX_Merge(src proto.Message) { - xxx_messageInfo_PublicUserInfo.Merge(dst, src) + +func (x *PublicUserInfo) Reset() { + *x = PublicUserInfo{} + if protoimpl.UnsafeEnabled { + mi := &file_sdk_ws_ws_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *PublicUserInfo) XXX_Size() int { - return xxx_messageInfo_PublicUserInfo.Size(m) + +func (x *PublicUserInfo) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *PublicUserInfo) XXX_DiscardUnknown() { - xxx_messageInfo_PublicUserInfo.DiscardUnknown(m) + +func (*PublicUserInfo) ProtoMessage() {} + +func (x *PublicUserInfo) ProtoReflect() protoreflect.Message { + mi := &file_sdk_ws_ws_proto_msgTypes[2] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) } -var xxx_messageInfo_PublicUserInfo proto.InternalMessageInfo +// Deprecated: Use PublicUserInfo.ProtoReflect.Descriptor instead. +func (*PublicUserInfo) Descriptor() ([]byte, []int) { + return file_sdk_ws_ws_proto_rawDescGZIP(), []int{2} +} -func (m *PublicUserInfo) GetUserID() string { - if m != nil { - return m.UserID +func (x *PublicUserInfo) GetUserID() string { + if x != nil { + return x.UserID } return "" } -func (m *PublicUserInfo) GetNickname() string { - if m != nil { - return m.Nickname +func (x *PublicUserInfo) GetNickname() string { + if x != nil { + return x.Nickname } return "" } -func (m *PublicUserInfo) GetFaceURL() string { - if m != nil { - return m.FaceURL +func (x *PublicUserInfo) GetFaceURL() string { + if x != nil { + return x.FaceURL } return "" } -func (m *PublicUserInfo) GetGender() int32 { - if m != nil { - return m.Gender +func (x *PublicUserInfo) GetGender() int32 { + if x != nil { + return x.Gender } return 0 } -func (m *PublicUserInfo) GetAppMangerLevel() int32 { - if m != nil { - return m.AppMangerLevel +func (x *PublicUserInfo) GetAppMangerLevel() int32 { + if x != nil { + return x.AppMangerLevel } return 0 } type UserInfo struct { - UserID string `protobuf:"bytes,1,opt,name=userID" json:"userID,omitempty"` - Nickname string `protobuf:"bytes,2,opt,name=nickname" json:"nickname,omitempty"` - FaceURL string `protobuf:"bytes,3,opt,name=faceURL" json:"faceURL,omitempty"` - Gender int32 `protobuf:"varint,4,opt,name=gender" json:"gender,omitempty"` - PhoneNumber string `protobuf:"bytes,5,opt,name=phoneNumber" json:"phoneNumber,omitempty"` - Birth uint32 `protobuf:"varint,6,opt,name=birth" json:"birth,omitempty"` - Email string `protobuf:"bytes,7,opt,name=email" json:"email,omitempty"` - Ex string `protobuf:"bytes,8,opt,name=ex" json:"ex,omitempty"` - CreateTime uint32 `protobuf:"varint,9,opt,name=createTime" json:"createTime,omitempty"` - AppMangerLevel int32 `protobuf:"varint,10,opt,name=appMangerLevel" json:"appMangerLevel,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -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_dd0597f97f3a9074, []int{3} -} -func (m *UserInfo) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_UserInfo.Unmarshal(m, b) -} -func (m *UserInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_UserInfo.Marshal(b, m, deterministic) + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + UserID string `protobuf:"bytes,1,opt,name=userID,proto3" json:"userID,omitempty"` + Nickname string `protobuf:"bytes,2,opt,name=nickname,proto3" json:"nickname,omitempty"` + FaceURL string `protobuf:"bytes,3,opt,name=faceURL,proto3" json:"faceURL,omitempty"` + Gender int32 `protobuf:"varint,4,opt,name=gender,proto3" json:"gender,omitempty"` + PhoneNumber string `protobuf:"bytes,5,opt,name=phoneNumber,proto3" json:"phoneNumber,omitempty"` + Birth uint32 `protobuf:"varint,6,opt,name=birth,proto3" json:"birth,omitempty"` + Email string `protobuf:"bytes,7,opt,name=email,proto3" json:"email,omitempty"` + Ex string `protobuf:"bytes,8,opt,name=ex,proto3" json:"ex,omitempty"` + CreateTime uint32 `protobuf:"varint,9,opt,name=createTime,proto3" json:"createTime,omitempty"` + AppMangerLevel int32 `protobuf:"varint,10,opt,name=appMangerLevel,proto3" json:"appMangerLevel,omitempty"` } -func (dst *UserInfo) XXX_Merge(src proto.Message) { - xxx_messageInfo_UserInfo.Merge(dst, src) + +func (x *UserInfo) Reset() { + *x = UserInfo{} + if protoimpl.UnsafeEnabled { + mi := &file_sdk_ws_ws_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *UserInfo) XXX_Size() int { - return xxx_messageInfo_UserInfo.Size(m) + +func (x *UserInfo) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *UserInfo) XXX_DiscardUnknown() { - xxx_messageInfo_UserInfo.DiscardUnknown(m) + +func (*UserInfo) ProtoMessage() {} + +func (x *UserInfo) ProtoReflect() protoreflect.Message { + mi := &file_sdk_ws_ws_proto_msgTypes[3] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) } -var xxx_messageInfo_UserInfo proto.InternalMessageInfo +// Deprecated: Use UserInfo.ProtoReflect.Descriptor instead. +func (*UserInfo) Descriptor() ([]byte, []int) { + return file_sdk_ws_ws_proto_rawDescGZIP(), []int{3} +} -func (m *UserInfo) GetUserID() string { - if m != nil { - return m.UserID +func (x *UserInfo) GetUserID() string { + if x != nil { + return x.UserID } return "" } -func (m *UserInfo) GetNickname() string { - if m != nil { - return m.Nickname +func (x *UserInfo) GetNickname() string { + if x != nil { + return x.Nickname } return "" } -func (m *UserInfo) GetFaceURL() string { - if m != nil { - return m.FaceURL +func (x *UserInfo) GetFaceURL() string { + if x != nil { + return x.FaceURL } return "" } -func (m *UserInfo) GetGender() int32 { - if m != nil { - return m.Gender +func (x *UserInfo) GetGender() int32 { + if x != nil { + return x.Gender } return 0 } -func (m *UserInfo) GetPhoneNumber() string { - if m != nil { - return m.PhoneNumber +func (x *UserInfo) GetPhoneNumber() string { + if x != nil { + return x.PhoneNumber } return "" } -func (m *UserInfo) GetBirth() uint32 { - if m != nil { - return m.Birth +func (x *UserInfo) GetBirth() uint32 { + if x != nil { + return x.Birth } return 0 } -func (m *UserInfo) GetEmail() string { - if m != nil { - return m.Email +func (x *UserInfo) GetEmail() string { + if x != nil { + return x.Email } return "" } -func (m *UserInfo) GetEx() string { - if m != nil { - return m.Ex +func (x *UserInfo) GetEx() string { + if x != nil { + return x.Ex } return "" } -func (m *UserInfo) GetCreateTime() uint32 { - if m != nil { - return m.CreateTime +func (x *UserInfo) GetCreateTime() uint32 { + if x != nil { + return x.CreateTime } return 0 } -func (m *UserInfo) GetAppMangerLevel() int32 { - if m != nil { - return m.AppMangerLevel +func (x *UserInfo) GetAppMangerLevel() int32 { + if x != nil { + return x.AppMangerLevel } return 0 } type FriendInfo struct { - OwnerUserID string `protobuf:"bytes,1,opt,name=ownerUserID" json:"ownerUserID,omitempty"` - Remark string `protobuf:"bytes,2,opt,name=remark" json:"remark,omitempty"` - CreateTime uint32 `protobuf:"varint,3,opt,name=createTime" json:"createTime,omitempty"` - FriendUser *UserInfo `protobuf:"bytes,4,opt,name=friendUser" json:"friendUser,omitempty"` - AddSource int32 `protobuf:"varint,5,opt,name=addSource" json:"addSource,omitempty"` - OperatorUserID string `protobuf:"bytes,6,opt,name=operatorUserID" json:"operatorUserID,omitempty"` - Ex string `protobuf:"bytes,7,opt,name=ex" json:"ex,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -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_dd0597f97f3a9074, []int{4} -} -func (m *FriendInfo) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_FriendInfo.Unmarshal(m, b) -} -func (m *FriendInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_FriendInfo.Marshal(b, m, deterministic) + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + OwnerUserID string `protobuf:"bytes,1,opt,name=ownerUserID,proto3" json:"ownerUserID,omitempty"` + Remark string `protobuf:"bytes,2,opt,name=remark,proto3" json:"remark,omitempty"` + CreateTime uint32 `protobuf:"varint,3,opt,name=createTime,proto3" json:"createTime,omitempty"` + FriendUser *UserInfo `protobuf:"bytes,4,opt,name=friendUser,proto3" json:"friendUser,omitempty"` + AddSource int32 `protobuf:"varint,5,opt,name=addSource,proto3" json:"addSource,omitempty"` + OperatorUserID string `protobuf:"bytes,6,opt,name=operatorUserID,proto3" json:"operatorUserID,omitempty"` + Ex string `protobuf:"bytes,7,opt,name=ex,proto3" json:"ex,omitempty"` } -func (dst *FriendInfo) XXX_Merge(src proto.Message) { - xxx_messageInfo_FriendInfo.Merge(dst, src) + +func (x *FriendInfo) Reset() { + *x = FriendInfo{} + if protoimpl.UnsafeEnabled { + mi := &file_sdk_ws_ws_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *FriendInfo) XXX_Size() int { - return xxx_messageInfo_FriendInfo.Size(m) + +func (x *FriendInfo) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *FriendInfo) XXX_DiscardUnknown() { - xxx_messageInfo_FriendInfo.DiscardUnknown(m) + +func (*FriendInfo) ProtoMessage() {} + +func (x *FriendInfo) ProtoReflect() protoreflect.Message { + mi := &file_sdk_ws_ws_proto_msgTypes[4] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) } -var xxx_messageInfo_FriendInfo proto.InternalMessageInfo +// Deprecated: Use FriendInfo.ProtoReflect.Descriptor instead. +func (*FriendInfo) Descriptor() ([]byte, []int) { + return file_sdk_ws_ws_proto_rawDescGZIP(), []int{4} +} -func (m *FriendInfo) GetOwnerUserID() string { - if m != nil { - return m.OwnerUserID +func (x *FriendInfo) GetOwnerUserID() string { + if x != nil { + return x.OwnerUserID } return "" } -func (m *FriendInfo) GetRemark() string { - if m != nil { - return m.Remark +func (x *FriendInfo) GetRemark() string { + if x != nil { + return x.Remark } return "" } -func (m *FriendInfo) GetCreateTime() uint32 { - if m != nil { - return m.CreateTime +func (x *FriendInfo) GetCreateTime() uint32 { + if x != nil { + return x.CreateTime } return 0 } -func (m *FriendInfo) GetFriendUser() *UserInfo { - if m != nil { - return m.FriendUser +func (x *FriendInfo) GetFriendUser() *UserInfo { + if x != nil { + return x.FriendUser } return nil } -func (m *FriendInfo) GetAddSource() int32 { - if m != nil { - return m.AddSource +func (x *FriendInfo) GetAddSource() int32 { + if x != nil { + return x.AddSource } return 0 } -func (m *FriendInfo) GetOperatorUserID() string { - if m != nil { - return m.OperatorUserID +func (x *FriendInfo) GetOperatorUserID() string { + if x != nil { + return x.OperatorUserID } return "" } -func (m *FriendInfo) GetEx() string { - if m != nil { - return m.Ex +func (x *FriendInfo) GetEx() string { + if x != nil { + return x.Ex } return "" } type BlackInfo struct { - OwnerUserID string `protobuf:"bytes,1,opt,name=ownerUserID" json:"ownerUserID,omitempty"` - CreateTime uint32 `protobuf:"varint,2,opt,name=createTime" json:"createTime,omitempty"` - BlackUserInfo *PublicUserInfo `protobuf:"bytes,3,opt,name=blackUserInfo" json:"blackUserInfo,omitempty"` - AddSource int32 `protobuf:"varint,4,opt,name=addSource" json:"addSource,omitempty"` - OperatorUserID string `protobuf:"bytes,5,opt,name=operatorUserID" json:"operatorUserID,omitempty"` - Ex string `protobuf:"bytes,6,opt,name=ex" json:"ex,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -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_dd0597f97f3a9074, []int{5} -} -func (m *BlackInfo) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_BlackInfo.Unmarshal(m, b) -} -func (m *BlackInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_BlackInfo.Marshal(b, m, deterministic) + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + OwnerUserID string `protobuf:"bytes,1,opt,name=ownerUserID,proto3" json:"ownerUserID,omitempty"` + CreateTime uint32 `protobuf:"varint,2,opt,name=createTime,proto3" json:"createTime,omitempty"` + BlackUserInfo *PublicUserInfo `protobuf:"bytes,3,opt,name=blackUserInfo,proto3" json:"blackUserInfo,omitempty"` + AddSource int32 `protobuf:"varint,4,opt,name=addSource,proto3" json:"addSource,omitempty"` + OperatorUserID string `protobuf:"bytes,5,opt,name=operatorUserID,proto3" json:"operatorUserID,omitempty"` + Ex string `protobuf:"bytes,6,opt,name=ex,proto3" json:"ex,omitempty"` } -func (dst *BlackInfo) XXX_Merge(src proto.Message) { - xxx_messageInfo_BlackInfo.Merge(dst, src) + +func (x *BlackInfo) Reset() { + *x = BlackInfo{} + if protoimpl.UnsafeEnabled { + mi := &file_sdk_ws_ws_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *BlackInfo) XXX_Size() int { - return xxx_messageInfo_BlackInfo.Size(m) + +func (x *BlackInfo) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *BlackInfo) XXX_DiscardUnknown() { - xxx_messageInfo_BlackInfo.DiscardUnknown(m) + +func (*BlackInfo) ProtoMessage() {} + +func (x *BlackInfo) ProtoReflect() protoreflect.Message { + mi := &file_sdk_ws_ws_proto_msgTypes[5] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) } -var xxx_messageInfo_BlackInfo proto.InternalMessageInfo +// Deprecated: Use BlackInfo.ProtoReflect.Descriptor instead. +func (*BlackInfo) Descriptor() ([]byte, []int) { + return file_sdk_ws_ws_proto_rawDescGZIP(), []int{5} +} -func (m *BlackInfo) GetOwnerUserID() string { - if m != nil { - return m.OwnerUserID +func (x *BlackInfo) GetOwnerUserID() string { + if x != nil { + return x.OwnerUserID } return "" } -func (m *BlackInfo) GetCreateTime() uint32 { - if m != nil { - return m.CreateTime +func (x *BlackInfo) GetCreateTime() uint32 { + if x != nil { + return x.CreateTime } return 0 } -func (m *BlackInfo) GetBlackUserInfo() *PublicUserInfo { - if m != nil { - return m.BlackUserInfo +func (x *BlackInfo) GetBlackUserInfo() *PublicUserInfo { + if x != nil { + return x.BlackUserInfo } return nil } -func (m *BlackInfo) GetAddSource() int32 { - if m != nil { - return m.AddSource +func (x *BlackInfo) GetAddSource() int32 { + if x != nil { + return x.AddSource } return 0 } -func (m *BlackInfo) GetOperatorUserID() string { - if m != nil { - return m.OperatorUserID +func (x *BlackInfo) GetOperatorUserID() string { + if x != nil { + return x.OperatorUserID } return "" } -func (m *BlackInfo) GetEx() string { - if m != nil { - return m.Ex +func (x *BlackInfo) GetEx() string { + if x != nil { + return x.Ex } return "" } type GroupRequest struct { - UserInfo *PublicUserInfo `protobuf:"bytes,1,opt,name=userInfo" json:"userInfo,omitempty"` - GroupInfo *GroupInfo `protobuf:"bytes,2,opt,name=groupInfo" json:"groupInfo,omitempty"` - HandleResult int32 `protobuf:"varint,3,opt,name=handleResult" json:"handleResult,omitempty"` - ReqMsg string `protobuf:"bytes,4,opt,name=reqMsg" json:"reqMsg,omitempty"` - HandleMsg string `protobuf:"bytes,5,opt,name=handleMsg" json:"handleMsg,omitempty"` - ReqTime uint32 `protobuf:"varint,6,opt,name=reqTime" json:"reqTime,omitempty"` - HandleUserID string `protobuf:"bytes,7,opt,name=handleUserID" json:"handleUserID,omitempty"` - HandleTime uint32 `protobuf:"varint,8,opt,name=handleTime" json:"handleTime,omitempty"` - Ex string `protobuf:"bytes,9,opt,name=ex" json:"ex,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -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_dd0597f97f3a9074, []int{6} -} -func (m *GroupRequest) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_GroupRequest.Unmarshal(m, b) -} -func (m *GroupRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_GroupRequest.Marshal(b, m, deterministic) + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + UserInfo *PublicUserInfo `protobuf:"bytes,1,opt,name=userInfo,proto3" json:"userInfo,omitempty"` + GroupInfo *GroupInfo `protobuf:"bytes,2,opt,name=groupInfo,proto3" json:"groupInfo,omitempty"` + HandleResult int32 `protobuf:"varint,3,opt,name=handleResult,proto3" json:"handleResult,omitempty"` + ReqMsg string `protobuf:"bytes,4,opt,name=reqMsg,proto3" json:"reqMsg,omitempty"` + HandleMsg string `protobuf:"bytes,5,opt,name=handleMsg,proto3" json:"handleMsg,omitempty"` + ReqTime uint32 `protobuf:"varint,6,opt,name=reqTime,proto3" json:"reqTime,omitempty"` + HandleUserID string `protobuf:"bytes,7,opt,name=handleUserID,proto3" json:"handleUserID,omitempty"` + HandleTime uint32 `protobuf:"varint,8,opt,name=handleTime,proto3" json:"handleTime,omitempty"` + Ex string `protobuf:"bytes,9,opt,name=ex,proto3" json:"ex,omitempty"` } -func (dst *GroupRequest) XXX_Merge(src proto.Message) { - xxx_messageInfo_GroupRequest.Merge(dst, src) + +func (x *GroupRequest) Reset() { + *x = GroupRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_sdk_ws_ws_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *GroupRequest) XXX_Size() int { - return xxx_messageInfo_GroupRequest.Size(m) + +func (x *GroupRequest) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *GroupRequest) XXX_DiscardUnknown() { - xxx_messageInfo_GroupRequest.DiscardUnknown(m) + +func (*GroupRequest) ProtoMessage() {} + +func (x *GroupRequest) ProtoReflect() protoreflect.Message { + mi := &file_sdk_ws_ws_proto_msgTypes[6] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) } -var xxx_messageInfo_GroupRequest proto.InternalMessageInfo +// Deprecated: Use GroupRequest.ProtoReflect.Descriptor instead. +func (*GroupRequest) Descriptor() ([]byte, []int) { + return file_sdk_ws_ws_proto_rawDescGZIP(), []int{6} +} -func (m *GroupRequest) GetUserInfo() *PublicUserInfo { - if m != nil { - return m.UserInfo +func (x *GroupRequest) GetUserInfo() *PublicUserInfo { + if x != nil { + return x.UserInfo } return nil } -func (m *GroupRequest) GetGroupInfo() *GroupInfo { - if m != nil { - return m.GroupInfo +func (x *GroupRequest) GetGroupInfo() *GroupInfo { + if x != nil { + return x.GroupInfo } return nil } -func (m *GroupRequest) GetHandleResult() int32 { - if m != nil { - return m.HandleResult +func (x *GroupRequest) GetHandleResult() int32 { + if x != nil { + return x.HandleResult } return 0 } -func (m *GroupRequest) GetReqMsg() string { - if m != nil { - return m.ReqMsg +func (x *GroupRequest) GetReqMsg() string { + if x != nil { + return x.ReqMsg } return "" } -func (m *GroupRequest) GetHandleMsg() string { - if m != nil { - return m.HandleMsg +func (x *GroupRequest) GetHandleMsg() string { + if x != nil { + return x.HandleMsg } return "" } -func (m *GroupRequest) GetReqTime() uint32 { - if m != nil { - return m.ReqTime +func (x *GroupRequest) GetReqTime() uint32 { + if x != nil { + return x.ReqTime } return 0 } -func (m *GroupRequest) GetHandleUserID() string { - if m != nil { - return m.HandleUserID +func (x *GroupRequest) GetHandleUserID() string { + if x != nil { + return x.HandleUserID } return "" } -func (m *GroupRequest) GetHandleTime() uint32 { - if m != nil { - return m.HandleTime +func (x *GroupRequest) GetHandleTime() uint32 { + if x != nil { + return x.HandleTime } return 0 } -func (m *GroupRequest) GetEx() string { - if m != nil { - return m.Ex +func (x *GroupRequest) GetEx() string { + if x != nil { + return x.Ex } return "" } type FriendRequest struct { - FromUserID string `protobuf:"bytes,1,opt,name=fromUserID" json:"fromUserID,omitempty"` - FromNickname string `protobuf:"bytes,2,opt,name=fromNickname" json:"fromNickname,omitempty"` - FromFaceURL string `protobuf:"bytes,3,opt,name=fromFaceURL" json:"fromFaceURL,omitempty"` - FromGender int32 `protobuf:"varint,4,opt,name=fromGender" json:"fromGender,omitempty"` - ToUserID string `protobuf:"bytes,5,opt,name=toUserID" json:"toUserID,omitempty"` - ToNickname string `protobuf:"bytes,6,opt,name=toNickname" json:"toNickname,omitempty"` - ToFaceURL string `protobuf:"bytes,7,opt,name=toFaceURL" json:"toFaceURL,omitempty"` - ToGender int32 `protobuf:"varint,8,opt,name=toGender" json:"toGender,omitempty"` - HandleResult int32 `protobuf:"varint,9,opt,name=handleResult" json:"handleResult,omitempty"` - ReqMsg string `protobuf:"bytes,10,opt,name=reqMsg" json:"reqMsg,omitempty"` - CreateTime uint32 `protobuf:"varint,11,opt,name=createTime" json:"createTime,omitempty"` - HandlerUserID string `protobuf:"bytes,12,opt,name=handlerUserID" json:"handlerUserID,omitempty"` - HandleMsg string `protobuf:"bytes,13,opt,name=handleMsg" json:"handleMsg,omitempty"` - HandleTime uint32 `protobuf:"varint,14,opt,name=handleTime" json:"handleTime,omitempty"` - Ex string `protobuf:"bytes,15,opt,name=ex" json:"ex,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -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_dd0597f97f3a9074, []int{7} -} -func (m *FriendRequest) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_FriendRequest.Unmarshal(m, b) -} -func (m *FriendRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_FriendRequest.Marshal(b, m, deterministic) + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + FromUserID string `protobuf:"bytes,1,opt,name=fromUserID,proto3" json:"fromUserID,omitempty"` + FromNickname string `protobuf:"bytes,2,opt,name=fromNickname,proto3" json:"fromNickname,omitempty"` + FromFaceURL string `protobuf:"bytes,3,opt,name=fromFaceURL,proto3" json:"fromFaceURL,omitempty"` + FromGender int32 `protobuf:"varint,4,opt,name=fromGender,proto3" json:"fromGender,omitempty"` + ToUserID string `protobuf:"bytes,5,opt,name=toUserID,proto3" json:"toUserID,omitempty"` + ToNickname string `protobuf:"bytes,6,opt,name=toNickname,proto3" json:"toNickname,omitempty"` + ToFaceURL string `protobuf:"bytes,7,opt,name=toFaceURL,proto3" json:"toFaceURL,omitempty"` + ToGender int32 `protobuf:"varint,8,opt,name=toGender,proto3" json:"toGender,omitempty"` + HandleResult int32 `protobuf:"varint,9,opt,name=handleResult,proto3" json:"handleResult,omitempty"` + ReqMsg string `protobuf:"bytes,10,opt,name=reqMsg,proto3" json:"reqMsg,omitempty"` + CreateTime uint32 `protobuf:"varint,11,opt,name=createTime,proto3" json:"createTime,omitempty"` + HandlerUserID string `protobuf:"bytes,12,opt,name=handlerUserID,proto3" json:"handlerUserID,omitempty"` + HandleMsg string `protobuf:"bytes,13,opt,name=handleMsg,proto3" json:"handleMsg,omitempty"` + HandleTime uint32 `protobuf:"varint,14,opt,name=handleTime,proto3" json:"handleTime,omitempty"` + Ex string `protobuf:"bytes,15,opt,name=ex,proto3" json:"ex,omitempty"` } -func (dst *FriendRequest) XXX_Merge(src proto.Message) { - xxx_messageInfo_FriendRequest.Merge(dst, src) + +func (x *FriendRequest) Reset() { + *x = FriendRequest{} + if protoimpl.UnsafeEnabled { + mi := &file_sdk_ws_ws_proto_msgTypes[7] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *FriendRequest) XXX_Size() int { - return xxx_messageInfo_FriendRequest.Size(m) + +func (x *FriendRequest) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *FriendRequest) XXX_DiscardUnknown() { - xxx_messageInfo_FriendRequest.DiscardUnknown(m) + +func (*FriendRequest) ProtoMessage() {} + +func (x *FriendRequest) ProtoReflect() protoreflect.Message { + mi := &file_sdk_ws_ws_proto_msgTypes[7] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) } -var xxx_messageInfo_FriendRequest proto.InternalMessageInfo +// Deprecated: Use FriendRequest.ProtoReflect.Descriptor instead. +func (*FriendRequest) Descriptor() ([]byte, []int) { + return file_sdk_ws_ws_proto_rawDescGZIP(), []int{7} +} -func (m *FriendRequest) GetFromUserID() string { - if m != nil { - return m.FromUserID +func (x *FriendRequest) GetFromUserID() string { + if x != nil { + return x.FromUserID } return "" } -func (m *FriendRequest) GetFromNickname() string { - if m != nil { - return m.FromNickname +func (x *FriendRequest) GetFromNickname() string { + if x != nil { + return x.FromNickname } return "" } -func (m *FriendRequest) GetFromFaceURL() string { - if m != nil { - return m.FromFaceURL +func (x *FriendRequest) GetFromFaceURL() string { + if x != nil { + return x.FromFaceURL } return "" } -func (m *FriendRequest) GetFromGender() int32 { - if m != nil { - return m.FromGender +func (x *FriendRequest) GetFromGender() int32 { + if x != nil { + return x.FromGender } return 0 } -func (m *FriendRequest) GetToUserID() string { - if m != nil { - return m.ToUserID +func (x *FriendRequest) GetToUserID() string { + if x != nil { + return x.ToUserID } return "" } -func (m *FriendRequest) GetToNickname() string { - if m != nil { - return m.ToNickname +func (x *FriendRequest) GetToNickname() string { + if x != nil { + return x.ToNickname } return "" } -func (m *FriendRequest) GetToFaceURL() string { - if m != nil { - return m.ToFaceURL +func (x *FriendRequest) GetToFaceURL() string { + if x != nil { + return x.ToFaceURL } return "" } -func (m *FriendRequest) GetToGender() int32 { - if m != nil { - return m.ToGender +func (x *FriendRequest) GetToGender() int32 { + if x != nil { + return x.ToGender } return 0 } -func (m *FriendRequest) GetHandleResult() int32 { - if m != nil { - return m.HandleResult +func (x *FriendRequest) GetHandleResult() int32 { + if x != nil { + return x.HandleResult } return 0 } -func (m *FriendRequest) GetReqMsg() string { - if m != nil { - return m.ReqMsg +func (x *FriendRequest) GetReqMsg() string { + if x != nil { + return x.ReqMsg } return "" } -func (m *FriendRequest) GetCreateTime() uint32 { - if m != nil { - return m.CreateTime +func (x *FriendRequest) GetCreateTime() uint32 { + if x != nil { + return x.CreateTime } return 0 } -func (m *FriendRequest) GetHandlerUserID() string { - if m != nil { - return m.HandlerUserID +func (x *FriendRequest) GetHandlerUserID() string { + if x != nil { + return x.HandlerUserID } return "" } -func (m *FriendRequest) GetHandleMsg() string { - if m != nil { - return m.HandleMsg +func (x *FriendRequest) GetHandleMsg() string { + if x != nil { + return x.HandleMsg } return "" } -func (m *FriendRequest) GetHandleTime() uint32 { - if m != nil { - return m.HandleTime +func (x *FriendRequest) GetHandleTime() uint32 { + if x != nil { + return x.HandleTime } return 0 } -func (m *FriendRequest) GetEx() string { - if m != nil { - return m.Ex +func (x *FriendRequest) GetEx() string { + if x != nil { + return x.Ex } return "" } type PullMessageBySeqListResp struct { - ErrCode int32 `protobuf:"varint,1,opt,name=errCode" json:"errCode,omitempty"` - ErrMsg string `protobuf:"bytes,2,opt,name=errMsg" json:"errMsg,omitempty"` - List []*MsgData `protobuf:"bytes,3,rep,name=list" json:"list,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields -func (m *PullMessageBySeqListResp) Reset() { *m = PullMessageBySeqListResp{} } -func (m *PullMessageBySeqListResp) String() string { return proto.CompactTextString(m) } -func (*PullMessageBySeqListResp) ProtoMessage() {} -func (*PullMessageBySeqListResp) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_dd0597f97f3a9074, []int{8} -} -func (m *PullMessageBySeqListResp) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_PullMessageBySeqListResp.Unmarshal(m, b) -} -func (m *PullMessageBySeqListResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_PullMessageBySeqListResp.Marshal(b, m, deterministic) + ErrCode int32 `protobuf:"varint,1,opt,name=errCode,proto3" json:"errCode,omitempty"` + ErrMsg string `protobuf:"bytes,2,opt,name=errMsg,proto3" json:"errMsg,omitempty"` + List []*MsgData `protobuf:"bytes,3,rep,name=list,proto3" json:"list,omitempty"` } -func (dst *PullMessageBySeqListResp) XXX_Merge(src proto.Message) { - xxx_messageInfo_PullMessageBySeqListResp.Merge(dst, src) + +func (x *PullMessageBySeqListResp) Reset() { + *x = PullMessageBySeqListResp{} + if protoimpl.UnsafeEnabled { + mi := &file_sdk_ws_ws_proto_msgTypes[8] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *PullMessageBySeqListResp) XXX_Size() int { - return xxx_messageInfo_PullMessageBySeqListResp.Size(m) + +func (x *PullMessageBySeqListResp) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *PullMessageBySeqListResp) XXX_DiscardUnknown() { - xxx_messageInfo_PullMessageBySeqListResp.DiscardUnknown(m) + +func (*PullMessageBySeqListResp) ProtoMessage() {} + +func (x *PullMessageBySeqListResp) ProtoReflect() protoreflect.Message { + mi := &file_sdk_ws_ws_proto_msgTypes[8] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) } -var xxx_messageInfo_PullMessageBySeqListResp proto.InternalMessageInfo +// Deprecated: Use PullMessageBySeqListResp.ProtoReflect.Descriptor instead. +func (*PullMessageBySeqListResp) Descriptor() ([]byte, []int) { + return file_sdk_ws_ws_proto_rawDescGZIP(), []int{8} +} -func (m *PullMessageBySeqListResp) GetErrCode() int32 { - if m != nil { - return m.ErrCode +func (x *PullMessageBySeqListResp) GetErrCode() int32 { + if x != nil { + return x.ErrCode } return 0 } -func (m *PullMessageBySeqListResp) GetErrMsg() string { - if m != nil { - return m.ErrMsg +func (x *PullMessageBySeqListResp) GetErrMsg() string { + if x != nil { + return x.ErrMsg } return "" } -func (m *PullMessageBySeqListResp) GetList() []*MsgData { - if m != nil { - return m.List +func (x *PullMessageBySeqListResp) GetList() []*MsgData { + if x != nil { + return x.List } return nil } type PullMessageBySeqListReq struct { - UserID string `protobuf:"bytes,1,opt,name=userID" json:"userID,omitempty"` - OperationID string `protobuf:"bytes,2,opt,name=operationID" json:"operationID,omitempty"` - SeqList []uint32 `protobuf:"varint,3,rep,packed,name=seqList" json:"seqList,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields -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_dd0597f97f3a9074, []int{9} -} -func (m *PullMessageBySeqListReq) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_PullMessageBySeqListReq.Unmarshal(m, b) + UserID string `protobuf:"bytes,1,opt,name=userID,proto3" json:"userID,omitempty"` + OperationID string `protobuf:"bytes,2,opt,name=operationID,proto3" json:"operationID,omitempty"` + SeqList []uint32 `protobuf:"varint,3,rep,packed,name=seqList,proto3" json:"seqList,omitempty"` } -func (m *PullMessageBySeqListReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_PullMessageBySeqListReq.Marshal(b, m, deterministic) -} -func (dst *PullMessageBySeqListReq) XXX_Merge(src proto.Message) { - xxx_messageInfo_PullMessageBySeqListReq.Merge(dst, src) + +func (x *PullMessageBySeqListReq) Reset() { + *x = PullMessageBySeqListReq{} + if protoimpl.UnsafeEnabled { + mi := &file_sdk_ws_ws_proto_msgTypes[9] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *PullMessageBySeqListReq) XXX_Size() int { - return xxx_messageInfo_PullMessageBySeqListReq.Size(m) + +func (x *PullMessageBySeqListReq) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *PullMessageBySeqListReq) XXX_DiscardUnknown() { - xxx_messageInfo_PullMessageBySeqListReq.DiscardUnknown(m) + +func (*PullMessageBySeqListReq) ProtoMessage() {} + +func (x *PullMessageBySeqListReq) ProtoReflect() protoreflect.Message { + mi := &file_sdk_ws_ws_proto_msgTypes[9] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) } -var xxx_messageInfo_PullMessageBySeqListReq proto.InternalMessageInfo +// Deprecated: Use PullMessageBySeqListReq.ProtoReflect.Descriptor instead. +func (*PullMessageBySeqListReq) Descriptor() ([]byte, []int) { + return file_sdk_ws_ws_proto_rawDescGZIP(), []int{9} +} -func (m *PullMessageBySeqListReq) GetUserID() string { - if m != nil { - return m.UserID +func (x *PullMessageBySeqListReq) GetUserID() string { + if x != nil { + return x.UserID } return "" } -func (m *PullMessageBySeqListReq) GetOperationID() string { - if m != nil { - return m.OperationID +func (x *PullMessageBySeqListReq) GetOperationID() string { + if x != nil { + return x.OperationID } return "" } -func (m *PullMessageBySeqListReq) GetSeqList() []uint32 { - if m != nil { - return m.SeqList +func (x *PullMessageBySeqListReq) GetSeqList() []uint32 { + if x != nil { + return x.SeqList } return nil } type GetMaxAndMinSeqReq struct { - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields } -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_dd0597f97f3a9074, []int{10} -} -func (m *GetMaxAndMinSeqReq) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_GetMaxAndMinSeqReq.Unmarshal(m, b) -} -func (m *GetMaxAndMinSeqReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_GetMaxAndMinSeqReq.Marshal(b, m, deterministic) -} -func (dst *GetMaxAndMinSeqReq) XXX_Merge(src proto.Message) { - xxx_messageInfo_GetMaxAndMinSeqReq.Merge(dst, src) -} -func (m *GetMaxAndMinSeqReq) XXX_Size() int { - return xxx_messageInfo_GetMaxAndMinSeqReq.Size(m) +func (x *GetMaxAndMinSeqReq) Reset() { + *x = GetMaxAndMinSeqReq{} + if protoimpl.UnsafeEnabled { + mi := &file_sdk_ws_ws_proto_msgTypes[10] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *GetMaxAndMinSeqReq) XXX_DiscardUnknown() { - xxx_messageInfo_GetMaxAndMinSeqReq.DiscardUnknown(m) + +func (x *GetMaxAndMinSeqReq) String() string { + return protoimpl.X.MessageStringOf(x) } -var xxx_messageInfo_GetMaxAndMinSeqReq proto.InternalMessageInfo +func (*GetMaxAndMinSeqReq) ProtoMessage() {} -type GetMaxAndMinSeqResp struct { - MaxSeq uint32 `protobuf:"varint,1,opt,name=maxSeq" json:"maxSeq,omitempty"` - MinSeq uint32 `protobuf:"varint,2,opt,name=minSeq" json:"minSeq,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` +func (x *GetMaxAndMinSeqReq) ProtoReflect() protoreflect.Message { + mi := &file_sdk_ws_ws_proto_msgTypes[10] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) } -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_dd0597f97f3a9074, []int{11} -} -func (m *GetMaxAndMinSeqResp) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_GetMaxAndMinSeqResp.Unmarshal(m, b) +// Deprecated: Use GetMaxAndMinSeqReq.ProtoReflect.Descriptor instead. +func (*GetMaxAndMinSeqReq) Descriptor() ([]byte, []int) { + return file_sdk_ws_ws_proto_rawDescGZIP(), []int{10} } -func (m *GetMaxAndMinSeqResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_GetMaxAndMinSeqResp.Marshal(b, m, deterministic) + +type GetMaxAndMinSeqResp struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + MaxSeq uint32 `protobuf:"varint,1,opt,name=maxSeq,proto3" json:"maxSeq,omitempty"` + MinSeq uint32 `protobuf:"varint,2,opt,name=minSeq,proto3" json:"minSeq,omitempty"` } -func (dst *GetMaxAndMinSeqResp) XXX_Merge(src proto.Message) { - xxx_messageInfo_GetMaxAndMinSeqResp.Merge(dst, src) + +func (x *GetMaxAndMinSeqResp) Reset() { + *x = GetMaxAndMinSeqResp{} + if protoimpl.UnsafeEnabled { + mi := &file_sdk_ws_ws_proto_msgTypes[11] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *GetMaxAndMinSeqResp) XXX_Size() int { - return xxx_messageInfo_GetMaxAndMinSeqResp.Size(m) + +func (x *GetMaxAndMinSeqResp) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *GetMaxAndMinSeqResp) XXX_DiscardUnknown() { - xxx_messageInfo_GetMaxAndMinSeqResp.DiscardUnknown(m) + +func (*GetMaxAndMinSeqResp) ProtoMessage() {} + +func (x *GetMaxAndMinSeqResp) ProtoReflect() protoreflect.Message { + mi := &file_sdk_ws_ws_proto_msgTypes[11] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) } -var xxx_messageInfo_GetMaxAndMinSeqResp proto.InternalMessageInfo +// Deprecated: Use GetMaxAndMinSeqResp.ProtoReflect.Descriptor instead. +func (*GetMaxAndMinSeqResp) Descriptor() ([]byte, []int) { + return file_sdk_ws_ws_proto_rawDescGZIP(), []int{11} +} -func (m *GetMaxAndMinSeqResp) GetMaxSeq() uint32 { - if m != nil { - return m.MaxSeq +func (x *GetMaxAndMinSeqResp) GetMaxSeq() uint32 { + if x != nil { + return x.MaxSeq } return 0 } -func (m *GetMaxAndMinSeqResp) GetMinSeq() uint32 { - if m != nil { - return m.MinSeq +func (x *GetMaxAndMinSeqResp) GetMinSeq() uint32 { + if x != nil { + return x.MinSeq } return 0 } type UserSendMsgResp struct { - ServerMsgID string `protobuf:"bytes,1,opt,name=serverMsgID" json:"serverMsgID,omitempty"` - ClientMsgID string `protobuf:"bytes,2,opt,name=clientMsgID" json:"clientMsgID,omitempty"` - SendTime int64 `protobuf:"varint,3,opt,name=sendTime" json:"sendTime,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields -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_dd0597f97f3a9074, []int{12} -} -func (m *UserSendMsgResp) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_UserSendMsgResp.Unmarshal(m, b) -} -func (m *UserSendMsgResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_UserSendMsgResp.Marshal(b, m, deterministic) + ServerMsgID string `protobuf:"bytes,1,opt,name=serverMsgID,proto3" json:"serverMsgID,omitempty"` + ClientMsgID string `protobuf:"bytes,2,opt,name=clientMsgID,proto3" json:"clientMsgID,omitempty"` + SendTime int64 `protobuf:"varint,3,opt,name=sendTime,proto3" json:"sendTime,omitempty"` } -func (dst *UserSendMsgResp) XXX_Merge(src proto.Message) { - xxx_messageInfo_UserSendMsgResp.Merge(dst, src) + +func (x *UserSendMsgResp) Reset() { + *x = UserSendMsgResp{} + if protoimpl.UnsafeEnabled { + mi := &file_sdk_ws_ws_proto_msgTypes[12] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *UserSendMsgResp) XXX_Size() int { - return xxx_messageInfo_UserSendMsgResp.Size(m) + +func (x *UserSendMsgResp) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *UserSendMsgResp) XXX_DiscardUnknown() { - xxx_messageInfo_UserSendMsgResp.DiscardUnknown(m) + +func (*UserSendMsgResp) ProtoMessage() {} + +func (x *UserSendMsgResp) ProtoReflect() protoreflect.Message { + mi := &file_sdk_ws_ws_proto_msgTypes[12] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) } -var xxx_messageInfo_UserSendMsgResp proto.InternalMessageInfo +// Deprecated: Use UserSendMsgResp.ProtoReflect.Descriptor instead. +func (*UserSendMsgResp) Descriptor() ([]byte, []int) { + return file_sdk_ws_ws_proto_rawDescGZIP(), []int{12} +} -func (m *UserSendMsgResp) GetServerMsgID() string { - if m != nil { - return m.ServerMsgID +func (x *UserSendMsgResp) GetServerMsgID() string { + if x != nil { + return x.ServerMsgID } return "" } -func (m *UserSendMsgResp) GetClientMsgID() string { - if m != nil { - return m.ClientMsgID +func (x *UserSendMsgResp) GetClientMsgID() string { + if x != nil { + return x.ClientMsgID } return "" } -func (m *UserSendMsgResp) GetSendTime() int64 { - if m != nil { - return m.SendTime +func (x *UserSendMsgResp) GetSendTime() int64 { + if x != nil { + return x.SendTime } return 0 } type MsgData struct { - SendID string `protobuf:"bytes,1,opt,name=sendID" json:"sendID,omitempty"` - RecvID string `protobuf:"bytes,2,opt,name=recvID" json:"recvID,omitempty"` - GroupID string `protobuf:"bytes,3,opt,name=groupID" json:"groupID,omitempty"` - ClientMsgID string `protobuf:"bytes,4,opt,name=clientMsgID" json:"clientMsgID,omitempty"` - ServerMsgID string `protobuf:"bytes,5,opt,name=serverMsgID" json:"serverMsgID,omitempty"` - SenderPlatformID int32 `protobuf:"varint,6,opt,name=senderPlatformID" json:"senderPlatformID,omitempty"` - SenderNickname string `protobuf:"bytes,7,opt,name=senderNickname" json:"senderNickname,omitempty"` - SenderFaceURL string `protobuf:"bytes,8,opt,name=senderFaceURL" json:"senderFaceURL,omitempty"` - SessionType int32 `protobuf:"varint,9,opt,name=sessionType" json:"sessionType,omitempty"` - MsgFrom int32 `protobuf:"varint,10,opt,name=msgFrom" json:"msgFrom,omitempty"` - ContentType int32 `protobuf:"varint,11,opt,name=contentType" json:"contentType,omitempty"` - Content []byte `protobuf:"bytes,12,opt,name=content,proto3" json:"content,omitempty"` - 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"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *MsgData) Reset() { *m = MsgData{} } -func (m *MsgData) String() string { return proto.CompactTextString(m) } -func (*MsgData) ProtoMessage() {} + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + SendID string `protobuf:"bytes,1,opt,name=sendID,proto3" json:"sendID,omitempty"` + RecvID string `protobuf:"bytes,2,opt,name=recvID,proto3" json:"recvID,omitempty"` + GroupID string `protobuf:"bytes,3,opt,name=groupID,proto3" json:"groupID,omitempty"` + ClientMsgID string `protobuf:"bytes,4,opt,name=clientMsgID,proto3" json:"clientMsgID,omitempty"` + ServerMsgID string `protobuf:"bytes,5,opt,name=serverMsgID,proto3" json:"serverMsgID,omitempty"` + SenderPlatformID int32 `protobuf:"varint,6,opt,name=senderPlatformID,proto3" json:"senderPlatformID,omitempty"` + SenderNickname string `protobuf:"bytes,7,opt,name=senderNickname,proto3" json:"senderNickname,omitempty"` + SenderFaceURL string `protobuf:"bytes,8,opt,name=senderFaceURL,proto3" json:"senderFaceURL,omitempty"` + SessionType int32 `protobuf:"varint,9,opt,name=sessionType,proto3" json:"sessionType,omitempty"` + MsgFrom int32 `protobuf:"varint,10,opt,name=msgFrom,proto3" json:"msgFrom,omitempty"` + ContentType int32 `protobuf:"varint,11,opt,name=contentType,proto3" json:"contentType,omitempty"` + Content []byte `protobuf:"bytes,12,opt,name=content,proto3" json:"content,omitempty"` + Seq uint32 `protobuf:"varint,14,opt,name=seq,proto3" json:"seq,omitempty"` + SendTime int64 `protobuf:"varint,15,opt,name=sendTime,proto3" json:"sendTime,omitempty"` + CreateTime int64 `protobuf:"varint,16,opt,name=createTime,proto3" json:"createTime,omitempty"` + Status int32 `protobuf:"varint,17,opt,name=status,proto3" json:"status,omitempty"` + Options map[string]bool `protobuf:"bytes,18,rep,name=options,proto3" json:"options,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` + OfflinePushInfo *OfflinePushInfo `protobuf:"bytes,19,opt,name=offlinePushInfo,proto3" json:"offlinePushInfo,omitempty"` +} + +func (x *MsgData) Reset() { + *x = MsgData{} + if protoimpl.UnsafeEnabled { + mi := &file_sdk_ws_ws_proto_msgTypes[13] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *MsgData) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*MsgData) ProtoMessage() {} + +func (x *MsgData) ProtoReflect() protoreflect.Message { + mi := &file_sdk_ws_ws_proto_msgTypes[13] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use MsgData.ProtoReflect.Descriptor instead. func (*MsgData) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_dd0597f97f3a9074, []int{13} -} -func (m *MsgData) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_MsgData.Unmarshal(m, b) -} -func (m *MsgData) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_MsgData.Marshal(b, m, deterministic) + return file_sdk_ws_ws_proto_rawDescGZIP(), []int{13} } -func (dst *MsgData) XXX_Merge(src proto.Message) { - xxx_messageInfo_MsgData.Merge(dst, src) -} -func (m *MsgData) XXX_Size() int { - return xxx_messageInfo_MsgData.Size(m) -} -func (m *MsgData) XXX_DiscardUnknown() { - xxx_messageInfo_MsgData.DiscardUnknown(m) -} - -var xxx_messageInfo_MsgData proto.InternalMessageInfo -func (m *MsgData) GetSendID() string { - if m != nil { - return m.SendID +func (x *MsgData) GetSendID() string { + if x != nil { + return x.SendID } return "" } -func (m *MsgData) GetRecvID() string { - if m != nil { - return m.RecvID +func (x *MsgData) GetRecvID() string { + if x != nil { + return x.RecvID } return "" } -func (m *MsgData) GetGroupID() string { - if m != nil { - return m.GroupID +func (x *MsgData) GetGroupID() string { + if x != nil { + return x.GroupID } return "" } -func (m *MsgData) GetClientMsgID() string { - if m != nil { - return m.ClientMsgID +func (x *MsgData) GetClientMsgID() string { + if x != nil { + return x.ClientMsgID } return "" } -func (m *MsgData) GetServerMsgID() string { - if m != nil { - return m.ServerMsgID +func (x *MsgData) GetServerMsgID() string { + if x != nil { + return x.ServerMsgID } return "" } -func (m *MsgData) GetSenderPlatformID() int32 { - if m != nil { - return m.SenderPlatformID +func (x *MsgData) GetSenderPlatformID() int32 { + if x != nil { + return x.SenderPlatformID } return 0 } -func (m *MsgData) GetSenderNickname() string { - if m != nil { - return m.SenderNickname +func (x *MsgData) GetSenderNickname() string { + if x != nil { + return x.SenderNickname } return "" } -func (m *MsgData) GetSenderFaceURL() string { - if m != nil { - return m.SenderFaceURL +func (x *MsgData) GetSenderFaceURL() string { + if x != nil { + return x.SenderFaceURL } return "" } -func (m *MsgData) GetSessionType() int32 { - if m != nil { - return m.SessionType +func (x *MsgData) GetSessionType() int32 { + if x != nil { + return x.SessionType } return 0 } -func (m *MsgData) GetMsgFrom() int32 { - if m != nil { - return m.MsgFrom +func (x *MsgData) GetMsgFrom() int32 { + if x != nil { + return x.MsgFrom } return 0 } -func (m *MsgData) GetContentType() int32 { - if m != nil { - return m.ContentType +func (x *MsgData) GetContentType() int32 { + if x != nil { + return x.ContentType } return 0 } -func (m *MsgData) GetContent() []byte { - if m != nil { - return m.Content +func (x *MsgData) GetContent() []byte { + if x != nil { + return x.Content } return nil } -func (m *MsgData) GetSeq() uint32 { - if m != nil { - return m.Seq +func (x *MsgData) GetSeq() uint32 { + if x != nil { + return x.Seq } return 0 } -func (m *MsgData) GetSendTime() int64 { - if m != nil { - return m.SendTime +func (x *MsgData) GetSendTime() int64 { + if x != nil { + return x.SendTime } return 0 } -func (m *MsgData) GetCreateTime() int64 { - if m != nil { - return m.CreateTime +func (x *MsgData) GetCreateTime() int64 { + if x != nil { + return x.CreateTime } return 0 } -func (m *MsgData) GetStatus() int32 { - if m != nil { - return m.Status +func (x *MsgData) GetStatus() int32 { + if x != nil { + return x.Status } return 0 } -func (m *MsgData) GetOptions() map[string]bool { - if m != nil { - return m.Options +func (x *MsgData) GetOptions() map[string]bool { + if x != nil { + return x.Options } return nil } -func (m *MsgData) GetOfflinePushInfo() *OfflinePushInfo { - if m != nil { - return m.OfflinePushInfo +func (x *MsgData) GetOfflinePushInfo() *OfflinePushInfo { + if x != nil { + return x.OfflinePushInfo } 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"` - Ex string `protobuf:"bytes,3,opt,name=ex" json:"ex,omitempty"` - IOSPushSound string `protobuf:"bytes,4,opt,name=iOSPushSound" json:"iOSPushSound,omitempty"` - IOSBadgeCount bool `protobuf:"varint,5,opt,name=iOSBadgeCount" json:"iOSBadgeCount,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -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_dd0597f97f3a9074, []int{14} -} -func (m *OfflinePushInfo) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_OfflinePushInfo.Unmarshal(m, b) -} -func (m *OfflinePushInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_OfflinePushInfo.Marshal(b, m, deterministic) + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Title string `protobuf:"bytes,1,opt,name=title,proto3" json:"title,omitempty"` + Desc string `protobuf:"bytes,2,opt,name=desc,proto3" json:"desc,omitempty"` + Ex string `protobuf:"bytes,3,opt,name=ex,proto3" json:"ex,omitempty"` + IOSPushSound string `protobuf:"bytes,4,opt,name=iOSPushSound,proto3" json:"iOSPushSound,omitempty"` + IOSBadgeCount bool `protobuf:"varint,5,opt,name=iOSBadgeCount,proto3" json:"iOSBadgeCount,omitempty"` } -func (dst *OfflinePushInfo) XXX_Merge(src proto.Message) { - xxx_messageInfo_OfflinePushInfo.Merge(dst, src) + +func (x *OfflinePushInfo) Reset() { + *x = OfflinePushInfo{} + if protoimpl.UnsafeEnabled { + mi := &file_sdk_ws_ws_proto_msgTypes[14] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *OfflinePushInfo) XXX_Size() int { - return xxx_messageInfo_OfflinePushInfo.Size(m) + +func (x *OfflinePushInfo) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *OfflinePushInfo) XXX_DiscardUnknown() { - xxx_messageInfo_OfflinePushInfo.DiscardUnknown(m) + +func (*OfflinePushInfo) ProtoMessage() {} + +func (x *OfflinePushInfo) ProtoReflect() protoreflect.Message { + mi := &file_sdk_ws_ws_proto_msgTypes[14] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) } -var xxx_messageInfo_OfflinePushInfo proto.InternalMessageInfo +// Deprecated: Use OfflinePushInfo.ProtoReflect.Descriptor instead. +func (*OfflinePushInfo) Descriptor() ([]byte, []int) { + return file_sdk_ws_ws_proto_rawDescGZIP(), []int{14} +} -func (m *OfflinePushInfo) GetTitle() string { - if m != nil { - return m.Title +func (x *OfflinePushInfo) GetTitle() string { + if x != nil { + return x.Title } return "" } -func (m *OfflinePushInfo) GetDesc() string { - if m != nil { - return m.Desc +func (x *OfflinePushInfo) GetDesc() string { + if x != nil { + return x.Desc } return "" } -func (m *OfflinePushInfo) GetEx() string { - if m != nil { - return m.Ex +func (x *OfflinePushInfo) GetEx() string { + if x != nil { + return x.Ex } return "" } -func (m *OfflinePushInfo) GetIOSPushSound() string { - if m != nil { - return m.IOSPushSound +func (x *OfflinePushInfo) GetIOSPushSound() string { + if x != nil { + return x.IOSPushSound } return "" } -func (m *OfflinePushInfo) GetIOSBadgeCount() bool { - if m != nil { - return m.IOSBadgeCount +func (x *OfflinePushInfo) GetIOSBadgeCount() bool { + if x != nil { + return x.IOSBadgeCount } return false } type TipsComm struct { - Detail []byte `protobuf:"bytes,1,opt,name=detail,proto3" json:"detail,omitempty"` - DefaultTips string `protobuf:"bytes,2,opt,name=defaultTips" json:"defaultTips,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields -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_dd0597f97f3a9074, []int{15} + Detail []byte `protobuf:"bytes,1,opt,name=detail,proto3" json:"detail,omitempty"` + DefaultTips string `protobuf:"bytes,2,opt,name=defaultTips,proto3" json:"defaultTips,omitempty"` } -func (m *TipsComm) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_TipsComm.Unmarshal(m, b) -} -func (m *TipsComm) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_TipsComm.Marshal(b, m, deterministic) -} -func (dst *TipsComm) XXX_Merge(src proto.Message) { - xxx_messageInfo_TipsComm.Merge(dst, src) + +func (x *TipsComm) Reset() { + *x = TipsComm{} + if protoimpl.UnsafeEnabled { + mi := &file_sdk_ws_ws_proto_msgTypes[15] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *TipsComm) XXX_Size() int { - return xxx_messageInfo_TipsComm.Size(m) + +func (x *TipsComm) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *TipsComm) XXX_DiscardUnknown() { - xxx_messageInfo_TipsComm.DiscardUnknown(m) + +func (*TipsComm) ProtoMessage() {} + +func (x *TipsComm) ProtoReflect() protoreflect.Message { + mi := &file_sdk_ws_ws_proto_msgTypes[15] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) } -var xxx_messageInfo_TipsComm proto.InternalMessageInfo +// Deprecated: Use TipsComm.ProtoReflect.Descriptor instead. +func (*TipsComm) Descriptor() ([]byte, []int) { + return file_sdk_ws_ws_proto_rawDescGZIP(), []int{15} +} -func (m *TipsComm) GetDetail() []byte { - if m != nil { - return m.Detail +func (x *TipsComm) GetDetail() []byte { + if x != nil { + return x.Detail } return nil } -func (m *TipsComm) GetDefaultTips() string { - if m != nil { - return m.DefaultTips +func (x *TipsComm) GetDefaultTips() string { + if x != nil { + return x.DefaultTips } return "" } -// OnGroupCreated() +// OnGroupCreated() type GroupCreatedTips struct { - Group *GroupInfo `protobuf:"bytes,1,opt,name=group" json:"group,omitempty"` - OpUser *GroupMemberFullInfo `protobuf:"bytes,2,opt,name=opUser" json:"opUser,omitempty"` - MemberList []*GroupMemberFullInfo `protobuf:"bytes,3,rep,name=memberList" json:"memberList,omitempty"` - OperationTime int64 `protobuf:"varint,4,opt,name=operationTime" json:"operationTime,omitempty"` - GroupOwnerUser *GroupMemberFullInfo `protobuf:"bytes,5,opt,name=groupOwnerUser" json:"groupOwnerUser,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -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_dd0597f97f3a9074, []int{16} -} -func (m *GroupCreatedTips) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_GroupCreatedTips.Unmarshal(m, b) -} -func (m *GroupCreatedTips) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_GroupCreatedTips.Marshal(b, m, deterministic) + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Group *GroupInfo `protobuf:"bytes,1,opt,name=group,proto3" json:"group,omitempty"` + OpUser *GroupMemberFullInfo `protobuf:"bytes,2,opt,name=opUser,proto3" json:"opUser,omitempty"` + MemberList []*GroupMemberFullInfo `protobuf:"bytes,3,rep,name=memberList,proto3" json:"memberList,omitempty"` + OperationTime int64 `protobuf:"varint,4,opt,name=operationTime,proto3" json:"operationTime,omitempty"` + GroupOwnerUser *GroupMemberFullInfo `protobuf:"bytes,5,opt,name=groupOwnerUser,proto3" json:"groupOwnerUser,omitempty"` } -func (dst *GroupCreatedTips) XXX_Merge(src proto.Message) { - xxx_messageInfo_GroupCreatedTips.Merge(dst, src) + +func (x *GroupCreatedTips) Reset() { + *x = GroupCreatedTips{} + if protoimpl.UnsafeEnabled { + mi := &file_sdk_ws_ws_proto_msgTypes[16] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *GroupCreatedTips) XXX_Size() int { - return xxx_messageInfo_GroupCreatedTips.Size(m) + +func (x *GroupCreatedTips) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *GroupCreatedTips) XXX_DiscardUnknown() { - xxx_messageInfo_GroupCreatedTips.DiscardUnknown(m) + +func (*GroupCreatedTips) ProtoMessage() {} + +func (x *GroupCreatedTips) ProtoReflect() protoreflect.Message { + mi := &file_sdk_ws_ws_proto_msgTypes[16] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) } -var xxx_messageInfo_GroupCreatedTips proto.InternalMessageInfo +// Deprecated: Use GroupCreatedTips.ProtoReflect.Descriptor instead. +func (*GroupCreatedTips) Descriptor() ([]byte, []int) { + return file_sdk_ws_ws_proto_rawDescGZIP(), []int{16} +} -func (m *GroupCreatedTips) GetGroup() *GroupInfo { - if m != nil { - return m.Group +func (x *GroupCreatedTips) GetGroup() *GroupInfo { + if x != nil { + return x.Group } return nil } -func (m *GroupCreatedTips) GetOpUser() *GroupMemberFullInfo { - if m != nil { - return m.OpUser +func (x *GroupCreatedTips) GetOpUser() *GroupMemberFullInfo { + if x != nil { + return x.OpUser } return nil } -func (m *GroupCreatedTips) GetMemberList() []*GroupMemberFullInfo { - if m != nil { - return m.MemberList +func (x *GroupCreatedTips) GetMemberList() []*GroupMemberFullInfo { + if x != nil { + return x.MemberList } return nil } -func (m *GroupCreatedTips) GetOperationTime() int64 { - if m != nil { - return m.OperationTime +func (x *GroupCreatedTips) GetOperationTime() int64 { + if x != nil { + return x.OperationTime } return 0 } -func (m *GroupCreatedTips) GetGroupOwnerUser() *GroupMemberFullInfo { - if m != nil { - return m.GroupOwnerUser +func (x *GroupCreatedTips) GetGroupOwnerUser() *GroupMemberFullInfo { + if x != nil { + return x.GroupOwnerUser } return nil } -// OnGroupInfoSet() +// OnGroupInfoSet() type GroupInfoSetTips struct { - OpUser *GroupMemberFullInfo `protobuf:"bytes,1,opt,name=opUser" json:"opUser,omitempty"` - MuteTime int64 `protobuf:"varint,2,opt,name=muteTime" json:"muteTime,omitempty"` - Group *GroupInfo `protobuf:"bytes,3,opt,name=group" json:"group,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields -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_dd0597f97f3a9074, []int{17} -} -func (m *GroupInfoSetTips) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_GroupInfoSetTips.Unmarshal(m, b) + OpUser *GroupMemberFullInfo `protobuf:"bytes,1,opt,name=opUser,proto3" json:"opUser,omitempty"` //who do this + MuteTime int64 `protobuf:"varint,2,opt,name=muteTime,proto3" json:"muteTime,omitempty"` + Group *GroupInfo `protobuf:"bytes,3,opt,name=group,proto3" json:"group,omitempty"` } -func (m *GroupInfoSetTips) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_GroupInfoSetTips.Marshal(b, m, deterministic) -} -func (dst *GroupInfoSetTips) XXX_Merge(src proto.Message) { - xxx_messageInfo_GroupInfoSetTips.Merge(dst, src) + +func (x *GroupInfoSetTips) Reset() { + *x = GroupInfoSetTips{} + if protoimpl.UnsafeEnabled { + mi := &file_sdk_ws_ws_proto_msgTypes[17] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *GroupInfoSetTips) XXX_Size() int { - return xxx_messageInfo_GroupInfoSetTips.Size(m) + +func (x *GroupInfoSetTips) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *GroupInfoSetTips) XXX_DiscardUnknown() { - xxx_messageInfo_GroupInfoSetTips.DiscardUnknown(m) + +func (*GroupInfoSetTips) ProtoMessage() {} + +func (x *GroupInfoSetTips) ProtoReflect() protoreflect.Message { + mi := &file_sdk_ws_ws_proto_msgTypes[17] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) } -var xxx_messageInfo_GroupInfoSetTips proto.InternalMessageInfo +// Deprecated: Use GroupInfoSetTips.ProtoReflect.Descriptor instead. +func (*GroupInfoSetTips) Descriptor() ([]byte, []int) { + return file_sdk_ws_ws_proto_rawDescGZIP(), []int{17} +} -func (m *GroupInfoSetTips) GetOpUser() *GroupMemberFullInfo { - if m != nil { - return m.OpUser +func (x *GroupInfoSetTips) GetOpUser() *GroupMemberFullInfo { + if x != nil { + return x.OpUser } return nil } -func (m *GroupInfoSetTips) GetMuteTime() int64 { - if m != nil { - return m.MuteTime +func (x *GroupInfoSetTips) GetMuteTime() int64 { + if x != nil { + return x.MuteTime } return 0 } -func (m *GroupInfoSetTips) GetGroup() *GroupInfo { - if m != nil { - return m.Group +func (x *GroupInfoSetTips) GetGroup() *GroupInfo { + if x != nil { + return x.Group } return nil } -// OnJoinGroupApplication() +// OnJoinGroupApplication() type JoinGroupApplicationTips struct { - Group *GroupInfo `protobuf:"bytes,1,opt,name=group" json:"group,omitempty"` - Applicant *PublicUserInfo `protobuf:"bytes,2,opt,name=applicant" json:"applicant,omitempty"` - ReqMsg string `protobuf:"bytes,3,opt,name=reqMsg" json:"reqMsg,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields -func (m *JoinGroupApplicationTips) Reset() { *m = JoinGroupApplicationTips{} } -func (m *JoinGroupApplicationTips) String() string { return proto.CompactTextString(m) } -func (*JoinGroupApplicationTips) ProtoMessage() {} -func (*JoinGroupApplicationTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_dd0597f97f3a9074, []int{18} + Group *GroupInfo `protobuf:"bytes,1,opt,name=group,proto3" json:"group,omitempty"` + Applicant *PublicUserInfo `protobuf:"bytes,2,opt,name=applicant,proto3" json:"applicant,omitempty"` + ReqMsg string `protobuf:"bytes,3,opt,name=reqMsg,proto3" json:"reqMsg,omitempty"` } -func (m *JoinGroupApplicationTips) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_JoinGroupApplicationTips.Unmarshal(m, b) -} -func (m *JoinGroupApplicationTips) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_JoinGroupApplicationTips.Marshal(b, m, deterministic) -} -func (dst *JoinGroupApplicationTips) XXX_Merge(src proto.Message) { - xxx_messageInfo_JoinGroupApplicationTips.Merge(dst, src) + +func (x *JoinGroupApplicationTips) Reset() { + *x = JoinGroupApplicationTips{} + if protoimpl.UnsafeEnabled { + mi := &file_sdk_ws_ws_proto_msgTypes[18] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *JoinGroupApplicationTips) XXX_Size() int { - return xxx_messageInfo_JoinGroupApplicationTips.Size(m) + +func (x *JoinGroupApplicationTips) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *JoinGroupApplicationTips) XXX_DiscardUnknown() { - xxx_messageInfo_JoinGroupApplicationTips.DiscardUnknown(m) + +func (*JoinGroupApplicationTips) ProtoMessage() {} + +func (x *JoinGroupApplicationTips) ProtoReflect() protoreflect.Message { + mi := &file_sdk_ws_ws_proto_msgTypes[18] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) } -var xxx_messageInfo_JoinGroupApplicationTips proto.InternalMessageInfo +// Deprecated: Use JoinGroupApplicationTips.ProtoReflect.Descriptor instead. +func (*JoinGroupApplicationTips) Descriptor() ([]byte, []int) { + return file_sdk_ws_ws_proto_rawDescGZIP(), []int{18} +} -func (m *JoinGroupApplicationTips) GetGroup() *GroupInfo { - if m != nil { - return m.Group +func (x *JoinGroupApplicationTips) GetGroup() *GroupInfo { + if x != nil { + return x.Group } return nil } -func (m *JoinGroupApplicationTips) GetApplicant() *PublicUserInfo { - if m != nil { - return m.Applicant +func (x *JoinGroupApplicationTips) GetApplicant() *PublicUserInfo { + if x != nil { + return x.Applicant } return nil } -func (m *JoinGroupApplicationTips) GetReqMsg() string { - if m != nil { - return m.ReqMsg +func (x *JoinGroupApplicationTips) GetReqMsg() string { + if x != nil { + return x.ReqMsg } return "" } -// OnQuitGroup() -// Actively leave the group +// OnQuitGroup() +//Actively leave the group type MemberQuitTips struct { - Group *GroupInfo `protobuf:"bytes,1,opt,name=group" json:"group,omitempty"` - QuitUser *GroupMemberFullInfo `protobuf:"bytes,2,opt,name=quitUser" json:"quitUser,omitempty"` - OperationTime int64 `protobuf:"varint,3,opt,name=operationTime" json:"operationTime,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields -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_dd0597f97f3a9074, []int{19} -} -func (m *MemberQuitTips) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_MemberQuitTips.Unmarshal(m, b) -} -func (m *MemberQuitTips) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_MemberQuitTips.Marshal(b, m, deterministic) + Group *GroupInfo `protobuf:"bytes,1,opt,name=group,proto3" json:"group,omitempty"` + QuitUser *GroupMemberFullInfo `protobuf:"bytes,2,opt,name=quitUser,proto3" json:"quitUser,omitempty"` + OperationTime int64 `protobuf:"varint,3,opt,name=operationTime,proto3" json:"operationTime,omitempty"` } -func (dst *MemberQuitTips) XXX_Merge(src proto.Message) { - xxx_messageInfo_MemberQuitTips.Merge(dst, src) + +func (x *MemberQuitTips) Reset() { + *x = MemberQuitTips{} + if protoimpl.UnsafeEnabled { + mi := &file_sdk_ws_ws_proto_msgTypes[19] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *MemberQuitTips) XXX_Size() int { - return xxx_messageInfo_MemberQuitTips.Size(m) + +func (x *MemberQuitTips) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *MemberQuitTips) XXX_DiscardUnknown() { - xxx_messageInfo_MemberQuitTips.DiscardUnknown(m) + +func (*MemberQuitTips) ProtoMessage() {} + +func (x *MemberQuitTips) ProtoReflect() protoreflect.Message { + mi := &file_sdk_ws_ws_proto_msgTypes[19] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) } -var xxx_messageInfo_MemberQuitTips proto.InternalMessageInfo +// Deprecated: Use MemberQuitTips.ProtoReflect.Descriptor instead. +func (*MemberQuitTips) Descriptor() ([]byte, []int) { + return file_sdk_ws_ws_proto_rawDescGZIP(), []int{19} +} -func (m *MemberQuitTips) GetGroup() *GroupInfo { - if m != nil { - return m.Group +func (x *MemberQuitTips) GetGroup() *GroupInfo { + if x != nil { + return x.Group } return nil } -func (m *MemberQuitTips) GetQuitUser() *GroupMemberFullInfo { - if m != nil { - return m.QuitUser +func (x *MemberQuitTips) GetQuitUser() *GroupMemberFullInfo { + if x != nil { + return x.QuitUser } return nil } -func (m *MemberQuitTips) GetOperationTime() int64 { - if m != nil { - return m.OperationTime +func (x *MemberQuitTips) GetOperationTime() int64 { + if x != nil { + return x.OperationTime } return 0 } -// OnApplicationGroupAccepted() +// OnApplicationGroupAccepted() type GroupApplicationAcceptedTips struct { - Group *GroupInfo `protobuf:"bytes,1,opt,name=group" json:"group,omitempty"` - OpUser *GroupMemberFullInfo `protobuf:"bytes,2,opt,name=opUser" json:"opUser,omitempty"` - HandleMsg string `protobuf:"bytes,4,opt,name=handleMsg" json:"handleMsg,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields -func (m *GroupApplicationAcceptedTips) Reset() { *m = GroupApplicationAcceptedTips{} } -func (m *GroupApplicationAcceptedTips) String() string { return proto.CompactTextString(m) } -func (*GroupApplicationAcceptedTips) ProtoMessage() {} -func (*GroupApplicationAcceptedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_dd0597f97f3a9074, []int{20} -} -func (m *GroupApplicationAcceptedTips) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_GroupApplicationAcceptedTips.Unmarshal(m, b) + Group *GroupInfo `protobuf:"bytes,1,opt,name=group,proto3" json:"group,omitempty"` + OpUser *GroupMemberFullInfo `protobuf:"bytes,2,opt,name=opUser,proto3" json:"opUser,omitempty"` + HandleMsg string `protobuf:"bytes,4,opt,name=handleMsg,proto3" json:"handleMsg,omitempty"` } -func (m *GroupApplicationAcceptedTips) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_GroupApplicationAcceptedTips.Marshal(b, m, deterministic) -} -func (dst *GroupApplicationAcceptedTips) XXX_Merge(src proto.Message) { - xxx_messageInfo_GroupApplicationAcceptedTips.Merge(dst, src) + +func (x *GroupApplicationAcceptedTips) Reset() { + *x = GroupApplicationAcceptedTips{} + if protoimpl.UnsafeEnabled { + mi := &file_sdk_ws_ws_proto_msgTypes[20] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *GroupApplicationAcceptedTips) XXX_Size() int { - return xxx_messageInfo_GroupApplicationAcceptedTips.Size(m) + +func (x *GroupApplicationAcceptedTips) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *GroupApplicationAcceptedTips) XXX_DiscardUnknown() { - xxx_messageInfo_GroupApplicationAcceptedTips.DiscardUnknown(m) + +func (*GroupApplicationAcceptedTips) ProtoMessage() {} + +func (x *GroupApplicationAcceptedTips) ProtoReflect() protoreflect.Message { + mi := &file_sdk_ws_ws_proto_msgTypes[20] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) } -var xxx_messageInfo_GroupApplicationAcceptedTips proto.InternalMessageInfo +// Deprecated: Use GroupApplicationAcceptedTips.ProtoReflect.Descriptor instead. +func (*GroupApplicationAcceptedTips) Descriptor() ([]byte, []int) { + return file_sdk_ws_ws_proto_rawDescGZIP(), []int{20} +} -func (m *GroupApplicationAcceptedTips) GetGroup() *GroupInfo { - if m != nil { - return m.Group +func (x *GroupApplicationAcceptedTips) GetGroup() *GroupInfo { + if x != nil { + return x.Group } return nil } -func (m *GroupApplicationAcceptedTips) GetOpUser() *GroupMemberFullInfo { - if m != nil { - return m.OpUser +func (x *GroupApplicationAcceptedTips) GetOpUser() *GroupMemberFullInfo { + if x != nil { + return x.OpUser } return nil } -func (m *GroupApplicationAcceptedTips) GetHandleMsg() string { - if m != nil { - return m.HandleMsg +func (x *GroupApplicationAcceptedTips) GetHandleMsg() string { + if x != nil { + return x.HandleMsg } return "" } -// OnApplicationGroupRejected() +// OnApplicationGroupRejected() type GroupApplicationRejectedTips struct { - Group *GroupInfo `protobuf:"bytes,1,opt,name=group" json:"group,omitempty"` - OpUser *GroupMemberFullInfo `protobuf:"bytes,2,opt,name=opUser" json:"opUser,omitempty"` - HandleMsg string `protobuf:"bytes,4,opt,name=handleMsg" json:"handleMsg,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields -func (m *GroupApplicationRejectedTips) Reset() { *m = GroupApplicationRejectedTips{} } -func (m *GroupApplicationRejectedTips) String() string { return proto.CompactTextString(m) } -func (*GroupApplicationRejectedTips) ProtoMessage() {} -func (*GroupApplicationRejectedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_dd0597f97f3a9074, []int{21} + Group *GroupInfo `protobuf:"bytes,1,opt,name=group,proto3" json:"group,omitempty"` + OpUser *GroupMemberFullInfo `protobuf:"bytes,2,opt,name=opUser,proto3" json:"opUser,omitempty"` + HandleMsg string `protobuf:"bytes,4,opt,name=handleMsg,proto3" json:"handleMsg,omitempty"` } -func (m *GroupApplicationRejectedTips) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_GroupApplicationRejectedTips.Unmarshal(m, b) -} -func (m *GroupApplicationRejectedTips) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_GroupApplicationRejectedTips.Marshal(b, m, deterministic) -} -func (dst *GroupApplicationRejectedTips) XXX_Merge(src proto.Message) { - xxx_messageInfo_GroupApplicationRejectedTips.Merge(dst, src) + +func (x *GroupApplicationRejectedTips) Reset() { + *x = GroupApplicationRejectedTips{} + if protoimpl.UnsafeEnabled { + mi := &file_sdk_ws_ws_proto_msgTypes[21] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *GroupApplicationRejectedTips) XXX_Size() int { - return xxx_messageInfo_GroupApplicationRejectedTips.Size(m) + +func (x *GroupApplicationRejectedTips) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *GroupApplicationRejectedTips) XXX_DiscardUnknown() { - xxx_messageInfo_GroupApplicationRejectedTips.DiscardUnknown(m) + +func (*GroupApplicationRejectedTips) ProtoMessage() {} + +func (x *GroupApplicationRejectedTips) ProtoReflect() protoreflect.Message { + mi := &file_sdk_ws_ws_proto_msgTypes[21] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) } -var xxx_messageInfo_GroupApplicationRejectedTips proto.InternalMessageInfo +// Deprecated: Use GroupApplicationRejectedTips.ProtoReflect.Descriptor instead. +func (*GroupApplicationRejectedTips) Descriptor() ([]byte, []int) { + return file_sdk_ws_ws_proto_rawDescGZIP(), []int{21} +} -func (m *GroupApplicationRejectedTips) GetGroup() *GroupInfo { - if m != nil { - return m.Group +func (x *GroupApplicationRejectedTips) GetGroup() *GroupInfo { + if x != nil { + return x.Group } return nil } -func (m *GroupApplicationRejectedTips) GetOpUser() *GroupMemberFullInfo { - if m != nil { - return m.OpUser +func (x *GroupApplicationRejectedTips) GetOpUser() *GroupMemberFullInfo { + if x != nil { + return x.OpUser } return nil } -func (m *GroupApplicationRejectedTips) GetHandleMsg() string { - if m != nil { - return m.HandleMsg +func (x *GroupApplicationRejectedTips) GetHandleMsg() string { + if x != nil { + return x.HandleMsg } return "" } -// OnTransferGroupOwner() +// OnTransferGroupOwner() type GroupOwnerTransferredTips struct { - Group *GroupInfo `protobuf:"bytes,1,opt,name=group" json:"group,omitempty"` - OpUser *GroupMemberFullInfo `protobuf:"bytes,2,opt,name=opUser" json:"opUser,omitempty"` - NewGroupOwner *GroupMemberFullInfo `protobuf:"bytes,3,opt,name=newGroupOwner" json:"newGroupOwner,omitempty"` - OperationTime int64 `protobuf:"varint,4,opt,name=operationTime" json:"operationTime,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *GroupOwnerTransferredTips) Reset() { *m = GroupOwnerTransferredTips{} } -func (m *GroupOwnerTransferredTips) String() string { return proto.CompactTextString(m) } -func (*GroupOwnerTransferredTips) ProtoMessage() {} -func (*GroupOwnerTransferredTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_dd0597f97f3a9074, []int{22} -} -func (m *GroupOwnerTransferredTips) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_GroupOwnerTransferredTips.Unmarshal(m, b) -} -func (m *GroupOwnerTransferredTips) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_GroupOwnerTransferredTips.Marshal(b, m, deterministic) + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Group *GroupInfo `protobuf:"bytes,1,opt,name=group,proto3" json:"group,omitempty"` + OpUser *GroupMemberFullInfo `protobuf:"bytes,2,opt,name=opUser,proto3" json:"opUser,omitempty"` + NewGroupOwner *GroupMemberFullInfo `protobuf:"bytes,3,opt,name=newGroupOwner,proto3" json:"newGroupOwner,omitempty"` + OperationTime int64 `protobuf:"varint,4,opt,name=operationTime,proto3" json:"operationTime,omitempty"` } -func (dst *GroupOwnerTransferredTips) XXX_Merge(src proto.Message) { - xxx_messageInfo_GroupOwnerTransferredTips.Merge(dst, src) + +func (x *GroupOwnerTransferredTips) Reset() { + *x = GroupOwnerTransferredTips{} + if protoimpl.UnsafeEnabled { + mi := &file_sdk_ws_ws_proto_msgTypes[22] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *GroupOwnerTransferredTips) XXX_Size() int { - return xxx_messageInfo_GroupOwnerTransferredTips.Size(m) + +func (x *GroupOwnerTransferredTips) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *GroupOwnerTransferredTips) XXX_DiscardUnknown() { - xxx_messageInfo_GroupOwnerTransferredTips.DiscardUnknown(m) + +func (*GroupOwnerTransferredTips) ProtoMessage() {} + +func (x *GroupOwnerTransferredTips) ProtoReflect() protoreflect.Message { + mi := &file_sdk_ws_ws_proto_msgTypes[22] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) } -var xxx_messageInfo_GroupOwnerTransferredTips proto.InternalMessageInfo +// Deprecated: Use GroupOwnerTransferredTips.ProtoReflect.Descriptor instead. +func (*GroupOwnerTransferredTips) Descriptor() ([]byte, []int) { + return file_sdk_ws_ws_proto_rawDescGZIP(), []int{22} +} -func (m *GroupOwnerTransferredTips) GetGroup() *GroupInfo { - if m != nil { - return m.Group +func (x *GroupOwnerTransferredTips) GetGroup() *GroupInfo { + if x != nil { + return x.Group } return nil } -func (m *GroupOwnerTransferredTips) GetOpUser() *GroupMemberFullInfo { - if m != nil { - return m.OpUser +func (x *GroupOwnerTransferredTips) GetOpUser() *GroupMemberFullInfo { + if x != nil { + return x.OpUser } return nil } -func (m *GroupOwnerTransferredTips) GetNewGroupOwner() *GroupMemberFullInfo { - if m != nil { - return m.NewGroupOwner +func (x *GroupOwnerTransferredTips) GetNewGroupOwner() *GroupMemberFullInfo { + if x != nil { + return x.NewGroupOwner } return nil } -func (m *GroupOwnerTransferredTips) GetOperationTime() int64 { - if m != nil { - return m.OperationTime +func (x *GroupOwnerTransferredTips) GetOperationTime() int64 { + if x != nil { + return x.OperationTime } return 0 } -// OnMemberKicked() +// OnMemberKicked() type MemberKickedTips struct { - Group *GroupInfo `protobuf:"bytes,1,opt,name=group" json:"group,omitempty"` - OpUser *GroupMemberFullInfo `protobuf:"bytes,2,opt,name=opUser" json:"opUser,omitempty"` - KickedUserList []*GroupMemberFullInfo `protobuf:"bytes,3,rep,name=kickedUserList" json:"kickedUserList,omitempty"` - OperationTime int64 `protobuf:"varint,4,opt,name=operationTime" json:"operationTime,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -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_dd0597f97f3a9074, []int{23} -} -func (m *MemberKickedTips) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_MemberKickedTips.Unmarshal(m, b) -} -func (m *MemberKickedTips) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_MemberKickedTips.Marshal(b, m, deterministic) + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Group *GroupInfo `protobuf:"bytes,1,opt,name=group,proto3" json:"group,omitempty"` + OpUser *GroupMemberFullInfo `protobuf:"bytes,2,opt,name=opUser,proto3" json:"opUser,omitempty"` + KickedUserList []*GroupMemberFullInfo `protobuf:"bytes,3,rep,name=kickedUserList,proto3" json:"kickedUserList,omitempty"` + OperationTime int64 `protobuf:"varint,4,opt,name=operationTime,proto3" json:"operationTime,omitempty"` } -func (dst *MemberKickedTips) XXX_Merge(src proto.Message) { - xxx_messageInfo_MemberKickedTips.Merge(dst, src) + +func (x *MemberKickedTips) Reset() { + *x = MemberKickedTips{} + if protoimpl.UnsafeEnabled { + mi := &file_sdk_ws_ws_proto_msgTypes[23] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *MemberKickedTips) XXX_Size() int { - return xxx_messageInfo_MemberKickedTips.Size(m) + +func (x *MemberKickedTips) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *MemberKickedTips) XXX_DiscardUnknown() { - xxx_messageInfo_MemberKickedTips.DiscardUnknown(m) + +func (*MemberKickedTips) ProtoMessage() {} + +func (x *MemberKickedTips) ProtoReflect() protoreflect.Message { + mi := &file_sdk_ws_ws_proto_msgTypes[23] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) } -var xxx_messageInfo_MemberKickedTips proto.InternalMessageInfo +// Deprecated: Use MemberKickedTips.ProtoReflect.Descriptor instead. +func (*MemberKickedTips) Descriptor() ([]byte, []int) { + return file_sdk_ws_ws_proto_rawDescGZIP(), []int{23} +} -func (m *MemberKickedTips) GetGroup() *GroupInfo { - if m != nil { - return m.Group +func (x *MemberKickedTips) GetGroup() *GroupInfo { + if x != nil { + return x.Group } return nil } -func (m *MemberKickedTips) GetOpUser() *GroupMemberFullInfo { - if m != nil { - return m.OpUser +func (x *MemberKickedTips) GetOpUser() *GroupMemberFullInfo { + if x != nil { + return x.OpUser } return nil } -func (m *MemberKickedTips) GetKickedUserList() []*GroupMemberFullInfo { - if m != nil { - return m.KickedUserList +func (x *MemberKickedTips) GetKickedUserList() []*GroupMemberFullInfo { + if x != nil { + return x.KickedUserList } return nil } -func (m *MemberKickedTips) GetOperationTime() int64 { - if m != nil { - return m.OperationTime +func (x *MemberKickedTips) GetOperationTime() int64 { + if x != nil { + return x.OperationTime } return 0 } -// OnMemberInvited() +// OnMemberInvited() type MemberInvitedTips struct { - Group *GroupInfo `protobuf:"bytes,1,opt,name=group" json:"group,omitempty"` - OpUser *GroupMemberFullInfo `protobuf:"bytes,2,opt,name=opUser" json:"opUser,omitempty"` - InvitedUserList []*GroupMemberFullInfo `protobuf:"bytes,3,rep,name=invitedUserList" json:"invitedUserList,omitempty"` - OperationTime int64 `protobuf:"varint,4,opt,name=operationTime" json:"operationTime,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -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_dd0597f97f3a9074, []int{24} -} -func (m *MemberInvitedTips) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_MemberInvitedTips.Unmarshal(m, b) -} -func (m *MemberInvitedTips) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_MemberInvitedTips.Marshal(b, m, deterministic) + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Group *GroupInfo `protobuf:"bytes,1,opt,name=group,proto3" json:"group,omitempty"` + OpUser *GroupMemberFullInfo `protobuf:"bytes,2,opt,name=opUser,proto3" json:"opUser,omitempty"` + InvitedUserList []*GroupMemberFullInfo `protobuf:"bytes,3,rep,name=invitedUserList,proto3" json:"invitedUserList,omitempty"` + OperationTime int64 `protobuf:"varint,4,opt,name=operationTime,proto3" json:"operationTime,omitempty"` } -func (dst *MemberInvitedTips) XXX_Merge(src proto.Message) { - xxx_messageInfo_MemberInvitedTips.Merge(dst, src) + +func (x *MemberInvitedTips) Reset() { + *x = MemberInvitedTips{} + if protoimpl.UnsafeEnabled { + mi := &file_sdk_ws_ws_proto_msgTypes[24] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *MemberInvitedTips) XXX_Size() int { - return xxx_messageInfo_MemberInvitedTips.Size(m) + +func (x *MemberInvitedTips) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *MemberInvitedTips) XXX_DiscardUnknown() { - xxx_messageInfo_MemberInvitedTips.DiscardUnknown(m) + +func (*MemberInvitedTips) ProtoMessage() {} + +func (x *MemberInvitedTips) ProtoReflect() protoreflect.Message { + mi := &file_sdk_ws_ws_proto_msgTypes[24] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) } -var xxx_messageInfo_MemberInvitedTips proto.InternalMessageInfo +// Deprecated: Use MemberInvitedTips.ProtoReflect.Descriptor instead. +func (*MemberInvitedTips) Descriptor() ([]byte, []int) { + return file_sdk_ws_ws_proto_rawDescGZIP(), []int{24} +} -func (m *MemberInvitedTips) GetGroup() *GroupInfo { - if m != nil { - return m.Group +func (x *MemberInvitedTips) GetGroup() *GroupInfo { + if x != nil { + return x.Group } return nil } -func (m *MemberInvitedTips) GetOpUser() *GroupMemberFullInfo { - if m != nil { - return m.OpUser +func (x *MemberInvitedTips) GetOpUser() *GroupMemberFullInfo { + if x != nil { + return x.OpUser } return nil } -func (m *MemberInvitedTips) GetInvitedUserList() []*GroupMemberFullInfo { - if m != nil { - return m.InvitedUserList +func (x *MemberInvitedTips) GetInvitedUserList() []*GroupMemberFullInfo { + if x != nil { + return x.InvitedUserList } return nil } -func (m *MemberInvitedTips) GetOperationTime() int64 { - if m != nil { - return m.OperationTime +func (x *MemberInvitedTips) GetOperationTime() int64 { + if x != nil { + return x.OperationTime } return 0 } -// Actively join the group +//Actively join the group type MemberEnterTips struct { - Group *GroupInfo `protobuf:"bytes,1,opt,name=group" json:"group,omitempty"` - EntrantUser *GroupMemberFullInfo `protobuf:"bytes,2,opt,name=entrantUser" json:"entrantUser,omitempty"` - OperationTime int64 `protobuf:"varint,3,opt,name=operationTime" json:"operationTime,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields -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_dd0597f97f3a9074, []int{25} -} -func (m *MemberEnterTips) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_MemberEnterTips.Unmarshal(m, b) + Group *GroupInfo `protobuf:"bytes,1,opt,name=group,proto3" json:"group,omitempty"` + EntrantUser *GroupMemberFullInfo `protobuf:"bytes,2,opt,name=entrantUser,proto3" json:"entrantUser,omitempty"` + OperationTime int64 `protobuf:"varint,3,opt,name=operationTime,proto3" json:"operationTime,omitempty"` } -func (m *MemberEnterTips) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_MemberEnterTips.Marshal(b, m, deterministic) -} -func (dst *MemberEnterTips) XXX_Merge(src proto.Message) { - xxx_messageInfo_MemberEnterTips.Merge(dst, src) + +func (x *MemberEnterTips) Reset() { + *x = MemberEnterTips{} + if protoimpl.UnsafeEnabled { + mi := &file_sdk_ws_ws_proto_msgTypes[25] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *MemberEnterTips) XXX_Size() int { - return xxx_messageInfo_MemberEnterTips.Size(m) + +func (x *MemberEnterTips) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *MemberEnterTips) XXX_DiscardUnknown() { - xxx_messageInfo_MemberEnterTips.DiscardUnknown(m) + +func (*MemberEnterTips) ProtoMessage() {} + +func (x *MemberEnterTips) ProtoReflect() protoreflect.Message { + mi := &file_sdk_ws_ws_proto_msgTypes[25] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) } -var xxx_messageInfo_MemberEnterTips proto.InternalMessageInfo +// Deprecated: Use MemberEnterTips.ProtoReflect.Descriptor instead. +func (*MemberEnterTips) Descriptor() ([]byte, []int) { + return file_sdk_ws_ws_proto_rawDescGZIP(), []int{25} +} -func (m *MemberEnterTips) GetGroup() *GroupInfo { - if m != nil { - return m.Group +func (x *MemberEnterTips) GetGroup() *GroupInfo { + if x != nil { + return x.Group } return nil } -func (m *MemberEnterTips) GetEntrantUser() *GroupMemberFullInfo { - if m != nil { - return m.EntrantUser +func (x *MemberEnterTips) GetEntrantUser() *GroupMemberFullInfo { + if x != nil { + return x.EntrantUser } return nil } -func (m *MemberEnterTips) GetOperationTime() int64 { - if m != nil { - return m.OperationTime +func (x *MemberEnterTips) GetOperationTime() int64 { + if x != nil { + return x.OperationTime } return 0 } type FriendApplication struct { - AddTime int64 `protobuf:"varint,1,opt,name=addTime" json:"addTime,omitempty"` - AddSource string `protobuf:"bytes,2,opt,name=addSource" json:"addSource,omitempty"` - AddWording string `protobuf:"bytes,3,opt,name=addWording" json:"addWording,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields -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_dd0597f97f3a9074, []int{26} -} -func (m *FriendApplication) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_FriendApplication.Unmarshal(m, b) + AddTime int64 `protobuf:"varint,1,opt,name=addTime,proto3" json:"addTime,omitempty"` + AddSource string `protobuf:"bytes,2,opt,name=addSource,proto3" json:"addSource,omitempty"` + AddWording string `protobuf:"bytes,3,opt,name=addWording,proto3" json:"addWording,omitempty"` } -func (m *FriendApplication) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_FriendApplication.Marshal(b, m, deterministic) -} -func (dst *FriendApplication) XXX_Merge(src proto.Message) { - xxx_messageInfo_FriendApplication.Merge(dst, src) + +func (x *FriendApplication) Reset() { + *x = FriendApplication{} + if protoimpl.UnsafeEnabled { + mi := &file_sdk_ws_ws_proto_msgTypes[26] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *FriendApplication) XXX_Size() int { - return xxx_messageInfo_FriendApplication.Size(m) + +func (x *FriendApplication) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *FriendApplication) XXX_DiscardUnknown() { - xxx_messageInfo_FriendApplication.DiscardUnknown(m) + +func (*FriendApplication) ProtoMessage() {} + +func (x *FriendApplication) ProtoReflect() protoreflect.Message { + mi := &file_sdk_ws_ws_proto_msgTypes[26] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) } -var xxx_messageInfo_FriendApplication proto.InternalMessageInfo +// Deprecated: Use FriendApplication.ProtoReflect.Descriptor instead. +func (*FriendApplication) Descriptor() ([]byte, []int) { + return file_sdk_ws_ws_proto_rawDescGZIP(), []int{26} +} -func (m *FriendApplication) GetAddTime() int64 { - if m != nil { - return m.AddTime +func (x *FriendApplication) GetAddTime() int64 { + if x != nil { + return x.AddTime } return 0 } -func (m *FriendApplication) GetAddSource() string { - if m != nil { - return m.AddSource +func (x *FriendApplication) GetAddSource() string { + if x != nil { + return x.AddSource } return "" } -func (m *FriendApplication) GetAddWording() string { - if m != nil { - return m.AddWording +func (x *FriendApplication) GetAddWording() string { + if x != nil { + return x.AddWording } return "" } type FromToUserID struct { - FromUserID string `protobuf:"bytes,1,opt,name=fromUserID" json:"fromUserID,omitempty"` - ToUserID string `protobuf:"bytes,2,opt,name=toUserID" json:"toUserID,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields -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_dd0597f97f3a9074, []int{27} + FromUserID string `protobuf:"bytes,1,opt,name=fromUserID,proto3" json:"fromUserID,omitempty"` + ToUserID string `protobuf:"bytes,2,opt,name=toUserID,proto3" json:"toUserID,omitempty"` } -func (m *FromToUserID) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_FromToUserID.Unmarshal(m, b) -} -func (m *FromToUserID) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_FromToUserID.Marshal(b, m, deterministic) -} -func (dst *FromToUserID) XXX_Merge(src proto.Message) { - xxx_messageInfo_FromToUserID.Merge(dst, src) + +func (x *FromToUserID) Reset() { + *x = FromToUserID{} + if protoimpl.UnsafeEnabled { + mi := &file_sdk_ws_ws_proto_msgTypes[27] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *FromToUserID) XXX_Size() int { - return xxx_messageInfo_FromToUserID.Size(m) + +func (x *FromToUserID) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *FromToUserID) XXX_DiscardUnknown() { - xxx_messageInfo_FromToUserID.DiscardUnknown(m) + +func (*FromToUserID) ProtoMessage() {} + +func (x *FromToUserID) ProtoReflect() protoreflect.Message { + mi := &file_sdk_ws_ws_proto_msgTypes[27] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) } -var xxx_messageInfo_FromToUserID proto.InternalMessageInfo +// Deprecated: Use FromToUserID.ProtoReflect.Descriptor instead. +func (*FromToUserID) Descriptor() ([]byte, []int) { + return file_sdk_ws_ws_proto_rawDescGZIP(), []int{27} +} -func (m *FromToUserID) GetFromUserID() string { - if m != nil { - return m.FromUserID +func (x *FromToUserID) GetFromUserID() string { + if x != nil { + return x.FromUserID } return "" } -func (m *FromToUserID) GetToUserID() string { - if m != nil { - return m.ToUserID +func (x *FromToUserID) GetToUserID() string { + if x != nil { + return x.ToUserID } return "" } -// FromUserID apply to add ToUserID +//FromUserID apply to add ToUserID type FriendApplicationTips struct { - FromToUserID *FromToUserID `protobuf:"bytes,1,opt,name=fromToUserID" json:"fromToUserID,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields -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_dd0597f97f3a9074, []int{28} -} -func (m *FriendApplicationTips) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_FriendApplicationTips.Unmarshal(m, b) -} -func (m *FriendApplicationTips) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_FriendApplicationTips.Marshal(b, m, deterministic) + FromToUserID *FromToUserID `protobuf:"bytes,1,opt,name=fromToUserID,proto3" json:"fromToUserID,omitempty"` } -func (dst *FriendApplicationTips) XXX_Merge(src proto.Message) { - xxx_messageInfo_FriendApplicationTips.Merge(dst, src) + +func (x *FriendApplicationTips) Reset() { + *x = FriendApplicationTips{} + if protoimpl.UnsafeEnabled { + mi := &file_sdk_ws_ws_proto_msgTypes[28] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *FriendApplicationTips) XXX_Size() int { - return xxx_messageInfo_FriendApplicationTips.Size(m) + +func (x *FriendApplicationTips) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *FriendApplicationTips) XXX_DiscardUnknown() { - xxx_messageInfo_FriendApplicationTips.DiscardUnknown(m) + +func (*FriendApplicationTips) ProtoMessage() {} + +func (x *FriendApplicationTips) ProtoReflect() protoreflect.Message { + mi := &file_sdk_ws_ws_proto_msgTypes[28] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) } -var xxx_messageInfo_FriendApplicationTips proto.InternalMessageInfo +// Deprecated: Use FriendApplicationTips.ProtoReflect.Descriptor instead. +func (*FriendApplicationTips) Descriptor() ([]byte, []int) { + return file_sdk_ws_ws_proto_rawDescGZIP(), []int{28} +} -func (m *FriendApplicationTips) GetFromToUserID() *FromToUserID { - if m != nil { - return m.FromToUserID +func (x *FriendApplicationTips) GetFromToUserID() *FromToUserID { + if x != nil { + return x.FromToUserID } return nil } -// FromUserID accept or reject ToUserID +//FromUserID accept or reject ToUserID type FriendApplicationApprovedTips struct { - FromToUserID *FromToUserID `protobuf:"bytes,1,opt,name=fromToUserID" json:"fromToUserID,omitempty"` - HandleMsg string `protobuf:"bytes,2,opt,name=handleMsg" json:"handleMsg,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields -func (m *FriendApplicationApprovedTips) Reset() { *m = FriendApplicationApprovedTips{} } -func (m *FriendApplicationApprovedTips) String() string { return proto.CompactTextString(m) } -func (*FriendApplicationApprovedTips) ProtoMessage() {} -func (*FriendApplicationApprovedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_dd0597f97f3a9074, []int{29} + FromToUserID *FromToUserID `protobuf:"bytes,1,opt,name=fromToUserID,proto3" json:"fromToUserID,omitempty"` + HandleMsg string `protobuf:"bytes,2,opt,name=handleMsg,proto3" json:"handleMsg,omitempty"` } -func (m *FriendApplicationApprovedTips) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_FriendApplicationApprovedTips.Unmarshal(m, b) -} -func (m *FriendApplicationApprovedTips) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_FriendApplicationApprovedTips.Marshal(b, m, deterministic) -} -func (dst *FriendApplicationApprovedTips) XXX_Merge(src proto.Message) { - xxx_messageInfo_FriendApplicationApprovedTips.Merge(dst, src) + +func (x *FriendApplicationApprovedTips) Reset() { + *x = FriendApplicationApprovedTips{} + if protoimpl.UnsafeEnabled { + mi := &file_sdk_ws_ws_proto_msgTypes[29] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *FriendApplicationApprovedTips) XXX_Size() int { - return xxx_messageInfo_FriendApplicationApprovedTips.Size(m) + +func (x *FriendApplicationApprovedTips) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *FriendApplicationApprovedTips) XXX_DiscardUnknown() { - xxx_messageInfo_FriendApplicationApprovedTips.DiscardUnknown(m) + +func (*FriendApplicationApprovedTips) ProtoMessage() {} + +func (x *FriendApplicationApprovedTips) ProtoReflect() protoreflect.Message { + mi := &file_sdk_ws_ws_proto_msgTypes[29] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) } -var xxx_messageInfo_FriendApplicationApprovedTips proto.InternalMessageInfo +// Deprecated: Use FriendApplicationApprovedTips.ProtoReflect.Descriptor instead. +func (*FriendApplicationApprovedTips) Descriptor() ([]byte, []int) { + return file_sdk_ws_ws_proto_rawDescGZIP(), []int{29} +} -func (m *FriendApplicationApprovedTips) GetFromToUserID() *FromToUserID { - if m != nil { - return m.FromToUserID +func (x *FriendApplicationApprovedTips) GetFromToUserID() *FromToUserID { + if x != nil { + return x.FromToUserID } return nil } -func (m *FriendApplicationApprovedTips) GetHandleMsg() string { - if m != nil { - return m.HandleMsg +func (x *FriendApplicationApprovedTips) GetHandleMsg() string { + if x != nil { + return x.HandleMsg } return "" } -// FromUserID accept or reject ToUserID +//FromUserID accept or reject ToUserID type FriendApplicationRejectedTips struct { - FromToUserID *FromToUserID `protobuf:"bytes,1,opt,name=fromToUserID" json:"fromToUserID,omitempty"` - HandleMsg string `protobuf:"bytes,2,opt,name=handleMsg" json:"handleMsg,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields -func (m *FriendApplicationRejectedTips) Reset() { *m = FriendApplicationRejectedTips{} } -func (m *FriendApplicationRejectedTips) String() string { return proto.CompactTextString(m) } -func (*FriendApplicationRejectedTips) ProtoMessage() {} -func (*FriendApplicationRejectedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_dd0597f97f3a9074, []int{30} + FromToUserID *FromToUserID `protobuf:"bytes,1,opt,name=fromToUserID,proto3" json:"fromToUserID,omitempty"` + HandleMsg string `protobuf:"bytes,2,opt,name=handleMsg,proto3" json:"handleMsg,omitempty"` } -func (m *FriendApplicationRejectedTips) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_FriendApplicationRejectedTips.Unmarshal(m, b) -} -func (m *FriendApplicationRejectedTips) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_FriendApplicationRejectedTips.Marshal(b, m, deterministic) -} -func (dst *FriendApplicationRejectedTips) XXX_Merge(src proto.Message) { - xxx_messageInfo_FriendApplicationRejectedTips.Merge(dst, src) + +func (x *FriendApplicationRejectedTips) Reset() { + *x = FriendApplicationRejectedTips{} + if protoimpl.UnsafeEnabled { + mi := &file_sdk_ws_ws_proto_msgTypes[30] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *FriendApplicationRejectedTips) XXX_Size() int { - return xxx_messageInfo_FriendApplicationRejectedTips.Size(m) + +func (x *FriendApplicationRejectedTips) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *FriendApplicationRejectedTips) XXX_DiscardUnknown() { - xxx_messageInfo_FriendApplicationRejectedTips.DiscardUnknown(m) + +func (*FriendApplicationRejectedTips) ProtoMessage() {} + +func (x *FriendApplicationRejectedTips) ProtoReflect() protoreflect.Message { + mi := &file_sdk_ws_ws_proto_msgTypes[30] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) } -var xxx_messageInfo_FriendApplicationRejectedTips proto.InternalMessageInfo +// Deprecated: Use FriendApplicationRejectedTips.ProtoReflect.Descriptor instead. +func (*FriendApplicationRejectedTips) Descriptor() ([]byte, []int) { + return file_sdk_ws_ws_proto_rawDescGZIP(), []int{30} +} -func (m *FriendApplicationRejectedTips) GetFromToUserID() *FromToUserID { - if m != nil { - return m.FromToUserID +func (x *FriendApplicationRejectedTips) GetFromToUserID() *FromToUserID { + if x != nil { + return x.FromToUserID } return nil } -func (m *FriendApplicationRejectedTips) GetHandleMsg() string { - if m != nil { - return m.HandleMsg +func (x *FriendApplicationRejectedTips) GetHandleMsg() string { + if x != nil { + return x.HandleMsg } return "" } // FromUserID Added a friend ToUserID type FriendAddedTips struct { - Friend *FriendInfo `protobuf:"bytes,1,opt,name=friend" json:"friend,omitempty"` - OperationTime int64 `protobuf:"varint,2,opt,name=operationTime" json:"operationTime,omitempty"` - OpUser *PublicUserInfo `protobuf:"bytes,3,opt,name=opUser" json:"opUser,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields -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_dd0597f97f3a9074, []int{31} -} -func (m *FriendAddedTips) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_FriendAddedTips.Unmarshal(m, b) -} -func (m *FriendAddedTips) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_FriendAddedTips.Marshal(b, m, deterministic) + Friend *FriendInfo `protobuf:"bytes,1,opt,name=friend,proto3" json:"friend,omitempty"` + OperationTime int64 `protobuf:"varint,2,opt,name=operationTime,proto3" json:"operationTime,omitempty"` + OpUser *PublicUserInfo `protobuf:"bytes,3,opt,name=opUser,proto3" json:"opUser,omitempty"` //who do this } -func (dst *FriendAddedTips) XXX_Merge(src proto.Message) { - xxx_messageInfo_FriendAddedTips.Merge(dst, src) + +func (x *FriendAddedTips) Reset() { + *x = FriendAddedTips{} + if protoimpl.UnsafeEnabled { + mi := &file_sdk_ws_ws_proto_msgTypes[31] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *FriendAddedTips) XXX_Size() int { - return xxx_messageInfo_FriendAddedTips.Size(m) + +func (x *FriendAddedTips) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *FriendAddedTips) XXX_DiscardUnknown() { - xxx_messageInfo_FriendAddedTips.DiscardUnknown(m) + +func (*FriendAddedTips) ProtoMessage() {} + +func (x *FriendAddedTips) ProtoReflect() protoreflect.Message { + mi := &file_sdk_ws_ws_proto_msgTypes[31] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) } -var xxx_messageInfo_FriendAddedTips proto.InternalMessageInfo +// Deprecated: Use FriendAddedTips.ProtoReflect.Descriptor instead. +func (*FriendAddedTips) Descriptor() ([]byte, []int) { + return file_sdk_ws_ws_proto_rawDescGZIP(), []int{31} +} -func (m *FriendAddedTips) GetFriend() *FriendInfo { - if m != nil { - return m.Friend +func (x *FriendAddedTips) GetFriend() *FriendInfo { + if x != nil { + return x.Friend } return nil } -func (m *FriendAddedTips) GetOperationTime() int64 { - if m != nil { - return m.OperationTime +func (x *FriendAddedTips) GetOperationTime() int64 { + if x != nil { + return x.OperationTime } return 0 } -func (m *FriendAddedTips) GetOpUser() *PublicUserInfo { - if m != nil { - return m.OpUser +func (x *FriendAddedTips) GetOpUser() *PublicUserInfo { + if x != nil { + return x.OpUser } return nil } // FromUserID deleted a friend ToUserID type FriendDeletedTips struct { - FromToUserID *FromToUserID `protobuf:"bytes,1,opt,name=fromToUserID" json:"fromToUserID,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields -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_dd0597f97f3a9074, []int{32} + FromToUserID *FromToUserID `protobuf:"bytes,1,opt,name=fromToUserID,proto3" json:"fromToUserID,omitempty"` } -func (m *FriendDeletedTips) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_FriendDeletedTips.Unmarshal(m, b) -} -func (m *FriendDeletedTips) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_FriendDeletedTips.Marshal(b, m, deterministic) -} -func (dst *FriendDeletedTips) XXX_Merge(src proto.Message) { - xxx_messageInfo_FriendDeletedTips.Merge(dst, src) + +func (x *FriendDeletedTips) Reset() { + *x = FriendDeletedTips{} + if protoimpl.UnsafeEnabled { + mi := &file_sdk_ws_ws_proto_msgTypes[32] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *FriendDeletedTips) XXX_Size() int { - return xxx_messageInfo_FriendDeletedTips.Size(m) + +func (x *FriendDeletedTips) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *FriendDeletedTips) XXX_DiscardUnknown() { - xxx_messageInfo_FriendDeletedTips.DiscardUnknown(m) + +func (*FriendDeletedTips) ProtoMessage() {} + +func (x *FriendDeletedTips) ProtoReflect() protoreflect.Message { + mi := &file_sdk_ws_ws_proto_msgTypes[32] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) } -var xxx_messageInfo_FriendDeletedTips proto.InternalMessageInfo +// Deprecated: Use FriendDeletedTips.ProtoReflect.Descriptor instead. +func (*FriendDeletedTips) Descriptor() ([]byte, []int) { + return file_sdk_ws_ws_proto_rawDescGZIP(), []int{32} +} -func (m *FriendDeletedTips) GetFromToUserID() *FromToUserID { - if m != nil { - return m.FromToUserID +func (x *FriendDeletedTips) GetFromToUserID() *FromToUserID { + if x != nil { + return x.FromToUserID } return nil } type BlackAddedTips struct { - FromToUserID *FromToUserID `protobuf:"bytes,1,opt,name=fromToUserID" json:"fromToUserID,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields -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_dd0597f97f3a9074, []int{33} -} -func (m *BlackAddedTips) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_BlackAddedTips.Unmarshal(m, b) -} -func (m *BlackAddedTips) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_BlackAddedTips.Marshal(b, m, deterministic) + FromToUserID *FromToUserID `protobuf:"bytes,1,opt,name=fromToUserID,proto3" json:"fromToUserID,omitempty"` } -func (dst *BlackAddedTips) XXX_Merge(src proto.Message) { - xxx_messageInfo_BlackAddedTips.Merge(dst, src) + +func (x *BlackAddedTips) Reset() { + *x = BlackAddedTips{} + if protoimpl.UnsafeEnabled { + mi := &file_sdk_ws_ws_proto_msgTypes[33] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *BlackAddedTips) XXX_Size() int { - return xxx_messageInfo_BlackAddedTips.Size(m) + +func (x *BlackAddedTips) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *BlackAddedTips) XXX_DiscardUnknown() { - xxx_messageInfo_BlackAddedTips.DiscardUnknown(m) + +func (*BlackAddedTips) ProtoMessage() {} + +func (x *BlackAddedTips) ProtoReflect() protoreflect.Message { + mi := &file_sdk_ws_ws_proto_msgTypes[33] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) } -var xxx_messageInfo_BlackAddedTips proto.InternalMessageInfo +// Deprecated: Use BlackAddedTips.ProtoReflect.Descriptor instead. +func (*BlackAddedTips) Descriptor() ([]byte, []int) { + return file_sdk_ws_ws_proto_rawDescGZIP(), []int{33} +} -func (m *BlackAddedTips) GetFromToUserID() *FromToUserID { - if m != nil { - return m.FromToUserID +func (x *BlackAddedTips) GetFromToUserID() *FromToUserID { + if x != nil { + return x.FromToUserID } return nil } type BlackDeletedTips struct { - FromToUserID *FromToUserID `protobuf:"bytes,1,opt,name=fromToUserID" json:"fromToUserID,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + FromToUserID *FromToUserID `protobuf:"bytes,1,opt,name=fromToUserID,proto3" json:"fromToUserID,omitempty"` +} + +func (x *BlackDeletedTips) Reset() { + *x = BlackDeletedTips{} + if protoimpl.UnsafeEnabled { + mi := &file_sdk_ws_ws_proto_msgTypes[34] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *BlackDeletedTips) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *BlackDeletedTips) Reset() { *m = BlackDeletedTips{} } -func (m *BlackDeletedTips) String() string { return proto.CompactTextString(m) } -func (*BlackDeletedTips) ProtoMessage() {} +func (*BlackDeletedTips) ProtoMessage() {} + +func (x *BlackDeletedTips) ProtoReflect() protoreflect.Message { + mi := &file_sdk_ws_ws_proto_msgTypes[34] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use BlackDeletedTips.ProtoReflect.Descriptor instead. func (*BlackDeletedTips) Descriptor() ([]byte, []int) { - return fileDescriptor_ws_dd0597f97f3a9074, []int{34} + return file_sdk_ws_ws_proto_rawDescGZIP(), []int{34} } -func (m *BlackDeletedTips) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_BlackDeletedTips.Unmarshal(m, b) + +func (x *BlackDeletedTips) GetFromToUserID() *FromToUserID { + if x != nil { + return x.FromToUserID + } + return nil } -func (m *BlackDeletedTips) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_BlackDeletedTips.Marshal(b, m, deterministic) + +type FriendInfoChangedTips struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + FromToUserID *FromToUserID `protobuf:"bytes,1,opt,name=fromToUserID,proto3" json:"fromToUserID,omitempty"` } -func (dst *BlackDeletedTips) XXX_Merge(src proto.Message) { - xxx_messageInfo_BlackDeletedTips.Merge(dst, src) + +func (x *FriendInfoChangedTips) Reset() { + *x = FriendInfoChangedTips{} + if protoimpl.UnsafeEnabled { + mi := &file_sdk_ws_ws_proto_msgTypes[35] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *BlackDeletedTips) XXX_Size() int { - return xxx_messageInfo_BlackDeletedTips.Size(m) + +func (x *FriendInfoChangedTips) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *BlackDeletedTips) XXX_DiscardUnknown() { - xxx_messageInfo_BlackDeletedTips.DiscardUnknown(m) + +func (*FriendInfoChangedTips) ProtoMessage() {} + +func (x *FriendInfoChangedTips) ProtoReflect() protoreflect.Message { + mi := &file_sdk_ws_ws_proto_msgTypes[35] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) } -var xxx_messageInfo_BlackDeletedTips proto.InternalMessageInfo +// Deprecated: Use FriendInfoChangedTips.ProtoReflect.Descriptor instead. +func (*FriendInfoChangedTips) Descriptor() ([]byte, []int) { + return file_sdk_ws_ws_proto_rawDescGZIP(), []int{35} +} -func (m *BlackDeletedTips) GetFromToUserID() *FromToUserID { - if m != nil { - return m.FromToUserID +func (x *FriendInfoChangedTips) GetFromToUserID() *FromToUserID { + if x != nil { + return x.FromToUserID } return nil } -type FriendInfoChangedTips struct { - FromToUserID *FromToUserID `protobuf:"bytes,1,opt,name=fromToUserID" json:"fromToUserID,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` +//////////////////////user///////////////////// +type UserInfoUpdatedTips struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + UserID string `protobuf:"bytes,1,opt,name=userID,proto3" json:"userID,omitempty"` } -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_dd0597f97f3a9074, []int{35} +func (x *UserInfoUpdatedTips) Reset() { + *x = UserInfoUpdatedTips{} + if protoimpl.UnsafeEnabled { + mi := &file_sdk_ws_ws_proto_msgTypes[36] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UserInfoUpdatedTips) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UserInfoUpdatedTips) ProtoMessage() {} + +func (x *UserInfoUpdatedTips) ProtoReflect() protoreflect.Message { + mi := &file_sdk_ws_ws_proto_msgTypes[36] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) } -func (m *FriendInfoChangedTips) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_FriendInfoChangedTips.Unmarshal(m, b) + +// Deprecated: Use UserInfoUpdatedTips.ProtoReflect.Descriptor instead. +func (*UserInfoUpdatedTips) Descriptor() ([]byte, []int) { + return file_sdk_ws_ws_proto_rawDescGZIP(), []int{36} } -func (m *FriendInfoChangedTips) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_FriendInfoChangedTips.Marshal(b, m, deterministic) + +func (x *UserInfoUpdatedTips) GetUserID() string { + if x != nil { + return x.UserID + } + return "" +} + +///cms +type RequestPagination struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + PageNumber int32 `protobuf:"varint,1,opt,name=pageNumber,proto3" json:"pageNumber,omitempty"` + ShowNumber int32 `protobuf:"varint,2,opt,name=showNumber,proto3" json:"showNumber,omitempty"` } -func (dst *FriendInfoChangedTips) XXX_Merge(src proto.Message) { - xxx_messageInfo_FriendInfoChangedTips.Merge(dst, src) + +func (x *RequestPagination) Reset() { + *x = RequestPagination{} + if protoimpl.UnsafeEnabled { + mi := &file_sdk_ws_ws_proto_msgTypes[37] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *FriendInfoChangedTips) XXX_Size() int { - return xxx_messageInfo_FriendInfoChangedTips.Size(m) + +func (x *RequestPagination) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *FriendInfoChangedTips) XXX_DiscardUnknown() { - xxx_messageInfo_FriendInfoChangedTips.DiscardUnknown(m) + +func (*RequestPagination) ProtoMessage() {} + +func (x *RequestPagination) ProtoReflect() protoreflect.Message { + mi := &file_sdk_ws_ws_proto_msgTypes[37] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) } -var xxx_messageInfo_FriendInfoChangedTips proto.InternalMessageInfo +// Deprecated: Use RequestPagination.ProtoReflect.Descriptor instead. +func (*RequestPagination) Descriptor() ([]byte, []int) { + return file_sdk_ws_ws_proto_rawDescGZIP(), []int{37} +} -func (m *FriendInfoChangedTips) GetFromToUserID() *FromToUserID { - if m != nil { - return m.FromToUserID +func (x *RequestPagination) GetPageNumber() int32 { + if x != nil { + return x.PageNumber } - return nil + return 0 } -// ////////////////////user///////////////////// -type UserInfoUpdatedTips struct { - UserID string `protobuf:"bytes,1,opt,name=userID" json:"userID,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` +func (x *RequestPagination) GetShowNumber() int32 { + if x != nil { + return x.ShowNumber + } + return 0 } -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_dd0597f97f3a9074, []int{36} -} -func (m *UserInfoUpdatedTips) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_UserInfoUpdatedTips.Unmarshal(m, b) -} -func (m *UserInfoUpdatedTips) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_UserInfoUpdatedTips.Marshal(b, m, deterministic) -} -func (dst *UserInfoUpdatedTips) XXX_Merge(src proto.Message) { - xxx_messageInfo_UserInfoUpdatedTips.Merge(dst, src) -} -func (m *UserInfoUpdatedTips) XXX_Size() int { - return xxx_messageInfo_UserInfoUpdatedTips.Size(m) -} -func (m *UserInfoUpdatedTips) XXX_DiscardUnknown() { - xxx_messageInfo_UserInfoUpdatedTips.DiscardUnknown(m) -} - -var xxx_messageInfo_UserInfoUpdatedTips proto.InternalMessageInfo - -func (m *UserInfoUpdatedTips) GetUserID() string { - if m != nil { - return m.UserID - } - return "" -} - -func init() { - proto.RegisterType((*GroupInfo)(nil), "server_api_params.GroupInfo") - proto.RegisterType((*GroupMemberFullInfo)(nil), "server_api_params.GroupMemberFullInfo") - proto.RegisterType((*PublicUserInfo)(nil), "server_api_params.PublicUserInfo") - proto.RegisterType((*UserInfo)(nil), "server_api_params.UserInfo") - proto.RegisterType((*FriendInfo)(nil), "server_api_params.FriendInfo") - proto.RegisterType((*BlackInfo)(nil), "server_api_params.BlackInfo") - proto.RegisterType((*GroupRequest)(nil), "server_api_params.GroupRequest") - proto.RegisterType((*FriendRequest)(nil), "server_api_params.FriendRequest") - proto.RegisterType((*PullMessageBySeqListResp)(nil), "server_api_params.PullMessageBySeqListResp") - proto.RegisterType((*PullMessageBySeqListReq)(nil), "server_api_params.PullMessageBySeqListReq") - proto.RegisterType((*GetMaxAndMinSeqReq)(nil), "server_api_params.GetMaxAndMinSeqReq") - proto.RegisterType((*GetMaxAndMinSeqResp)(nil), "server_api_params.GetMaxAndMinSeqResp") - proto.RegisterType((*UserSendMsgResp)(nil), "server_api_params.UserSendMsgResp") - proto.RegisterType((*MsgData)(nil), "server_api_params.MsgData") - proto.RegisterMapType((map[string]bool)(nil), "server_api_params.MsgData.OptionsEntry") - proto.RegisterType((*OfflinePushInfo)(nil), "server_api_params.OfflinePushInfo") - proto.RegisterType((*TipsComm)(nil), "server_api_params.TipsComm") - proto.RegisterType((*GroupCreatedTips)(nil), "server_api_params.GroupCreatedTips") - proto.RegisterType((*GroupInfoSetTips)(nil), "server_api_params.GroupInfoSetTips") - proto.RegisterType((*JoinGroupApplicationTips)(nil), "server_api_params.JoinGroupApplicationTips") - proto.RegisterType((*MemberQuitTips)(nil), "server_api_params.MemberQuitTips") - proto.RegisterType((*GroupApplicationAcceptedTips)(nil), "server_api_params.GroupApplicationAcceptedTips") - proto.RegisterType((*GroupApplicationRejectedTips)(nil), "server_api_params.GroupApplicationRejectedTips") - proto.RegisterType((*GroupOwnerTransferredTips)(nil), "server_api_params.GroupOwnerTransferredTips") - proto.RegisterType((*MemberKickedTips)(nil), "server_api_params.MemberKickedTips") - proto.RegisterType((*MemberInvitedTips)(nil), "server_api_params.MemberInvitedTips") - proto.RegisterType((*MemberEnterTips)(nil), "server_api_params.MemberEnterTips") - proto.RegisterType((*FriendApplication)(nil), "server_api_params.FriendApplication") - proto.RegisterType((*FromToUserID)(nil), "server_api_params.FromToUserID") - proto.RegisterType((*FriendApplicationTips)(nil), "server_api_params.FriendApplicationTips") - proto.RegisterType((*FriendApplicationApprovedTips)(nil), "server_api_params.FriendApplicationApprovedTips") - proto.RegisterType((*FriendApplicationRejectedTips)(nil), "server_api_params.FriendApplicationRejectedTips") - proto.RegisterType((*FriendAddedTips)(nil), "server_api_params.FriendAddedTips") - proto.RegisterType((*FriendDeletedTips)(nil), "server_api_params.FriendDeletedTips") - proto.RegisterType((*BlackAddedTips)(nil), "server_api_params.BlackAddedTips") - proto.RegisterType((*BlackDeletedTips)(nil), "server_api_params.BlackDeletedTips") - proto.RegisterType((*FriendInfoChangedTips)(nil), "server_api_params.FriendInfoChangedTips") - proto.RegisterType((*UserInfoUpdatedTips)(nil), "server_api_params.UserInfoUpdatedTips") -} - -func init() { proto.RegisterFile("sdk_ws/ws.proto", fileDescriptor_ws_dd0597f97f3a9074) } - -var fileDescriptor_ws_dd0597f97f3a9074 = []byte{ - // 1901 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x59, 0x4f, 0x6f, 0x23, 0x4b, - 0x11, 0xd7, 0xd8, 0xb1, 0x63, 0x97, 0xe3, 0x38, 0x3b, 0xfb, 0x58, 0xcc, 0xb2, 0x6f, 0x09, 0xa3, - 0xa7, 0xc7, 0x0a, 0x89, 0x20, 0x2d, 0x42, 0x82, 0x45, 0x80, 0xb2, 0xc9, 0x26, 0xec, 0x23, 0x4e, - 0xc2, 0x38, 0xab, 0xc7, 0x01, 0x69, 0x35, 0xf1, 0xb4, 0x9d, 0x79, 0x19, 0x77, 0x8f, 0xbb, 0x67, - 0xb2, 0xbb, 0x12, 0x27, 0xf8, 0x0c, 0x70, 0xe4, 0xc0, 0x05, 0x71, 0x41, 0x5c, 0x10, 0x17, 0x8e, - 0x7c, 0x01, 0xce, 0x7c, 0x05, 0xae, 0x1c, 0x90, 0x90, 0x40, 0x5d, 0xdd, 0x33, 0xd3, 0x3d, 0x76, - 0xf2, 0x2c, 0x2b, 0xda, 0xbc, 0x9b, 0xab, 0xa6, 0xab, 0xba, 0xea, 0x57, 0x7f, 0xba, 0xba, 0x0d, - 0x3d, 0x11, 0x5e, 0xbe, 0x7e, 0x23, 0xbe, 0xfd, 0x46, 0xec, 0x24, 0x9c, 0xa5, 0xcc, 0xbd, 0x27, - 0x08, 0xbf, 0x22, 0xfc, 0x75, 0x90, 0x44, 0xaf, 0x93, 0x80, 0x07, 0x53, 0xe1, 0xfd, 0xbb, 0x06, - 0xed, 0x43, 0xce, 0xb2, 0xe4, 0x25, 0x1d, 0x33, 0xb7, 0x0f, 0xeb, 0x13, 0x24, 0xf6, 0xfb, 0xce, - 0xb6, 0xf3, 0xa4, 0xed, 0xe7, 0xa4, 0xfb, 0x08, 0xda, 0xf8, 0xf3, 0x38, 0x98, 0x92, 0x7e, 0x0d, - 0xbf, 0x95, 0x0c, 0xd7, 0x83, 0x0d, 0xca, 0xd2, 0x68, 0x1c, 0x8d, 0x82, 0x34, 0x62, 0xb4, 0x5f, - 0xc7, 0x05, 0x16, 0x4f, 0xae, 0x89, 0x68, 0xca, 0x59, 0x98, 0x8d, 0x70, 0xcd, 0x9a, 0x5a, 0x63, - 0xf2, 0xe4, 0xfe, 0xe3, 0x60, 0x44, 0x5e, 0xf9, 0x47, 0xfd, 0x86, 0xda, 0x5f, 0x93, 0xee, 0x36, - 0x74, 0xd8, 0x1b, 0x4a, 0xf8, 0x2b, 0x41, 0xf8, 0xcb, 0xfd, 0x7e, 0x13, 0xbf, 0x9a, 0x2c, 0xf7, - 0x31, 0xc0, 0x88, 0x93, 0x20, 0x25, 0x67, 0xd1, 0x94, 0xf4, 0xd7, 0xb7, 0x9d, 0x27, 0x5d, 0xdf, - 0xe0, 0x48, 0x0d, 0x53, 0x32, 0x3d, 0x27, 0x7c, 0x8f, 0x65, 0x34, 0xed, 0xb7, 0x70, 0x81, 0xc9, - 0x72, 0x37, 0xa1, 0x46, 0xde, 0xf6, 0xdb, 0xa8, 0xba, 0x46, 0xde, 0xba, 0x0f, 0xa0, 0x29, 0xd2, - 0x20, 0xcd, 0x44, 0x1f, 0xb6, 0x9d, 0x27, 0x0d, 0x5f, 0x53, 0xee, 0x47, 0xd0, 0x45, 0xbd, 0x2c, - 0xb7, 0xa6, 0x83, 0x22, 0x36, 0xb3, 0x40, 0xec, 0xec, 0x5d, 0x42, 0xfa, 0x1b, 0xa8, 0xa0, 0x64, - 0x78, 0x7f, 0xad, 0xc1, 0x7d, 0xc4, 0x7d, 0x80, 0x06, 0x1c, 0x64, 0x71, 0xfc, 0x39, 0x11, 0x78, - 0x00, 0xcd, 0x4c, 0x6d, 0xa7, 0xe0, 0xd7, 0x94, 0xdc, 0x87, 0xb3, 0x98, 0x1c, 0x91, 0x2b, 0x12, - 0x23, 0xf0, 0x0d, 0xbf, 0x64, 0xb8, 0x0f, 0xa1, 0xf5, 0x19, 0x8b, 0x28, 0x62, 0x22, 0x11, 0xaf, - 0xfb, 0x05, 0x2d, 0xbf, 0xd1, 0x68, 0x74, 0x49, 0x65, 0x48, 0x15, 0xdc, 0x05, 0x6d, 0x46, 0xa2, - 0x69, 0x47, 0xe2, 0x63, 0xd8, 0x0c, 0x92, 0x64, 0x10, 0xd0, 0x09, 0xe1, 0x6a, 0xd3, 0x75, 0xdc, - 0xb4, 0xc2, 0x95, 0xf1, 0x90, 0x3b, 0x0d, 0x59, 0xc6, 0x47, 0x04, 0xe1, 0x6e, 0xf8, 0x06, 0x47, - 0xea, 0x61, 0x09, 0xe1, 0x06, 0x8c, 0x0a, 0xf9, 0x0a, 0x57, 0x47, 0x05, 0xf2, 0xa8, 0x78, 0xbf, - 0x73, 0x60, 0xf3, 0x34, 0x3b, 0x8f, 0xa3, 0x11, 0x2e, 0x90, 0xa0, 0x95, 0xd0, 0x38, 0x16, 0x34, - 0xa6, 0x83, 0xb5, 0xeb, 0x1d, 0xac, 0xdb, 0x0e, 0x3e, 0x80, 0xe6, 0x84, 0xd0, 0x90, 0x70, 0x04, - 0xac, 0xe1, 0x6b, 0x6a, 0x81, 0xe3, 0x8d, 0x45, 0x8e, 0x7b, 0xbf, 0xad, 0x41, 0xeb, 0x3d, 0x9b, - 0xb6, 0x0d, 0x9d, 0xe4, 0x82, 0x51, 0x72, 0x9c, 0xc9, 0x64, 0xd2, 0xc1, 0x34, 0x59, 0xee, 0x07, - 0xd0, 0x38, 0x8f, 0x78, 0x7a, 0x81, 0xd1, 0xec, 0xfa, 0x8a, 0x90, 0x5c, 0x32, 0x0d, 0x22, 0x15, - 0xc2, 0xb6, 0xaf, 0x08, 0x8d, 0x78, 0xab, 0xa8, 0x03, 0xbb, 0xb2, 0xda, 0x73, 0x95, 0x35, 0x0f, - 0x0c, 0x2c, 0x04, 0xe6, 0x3f, 0x0e, 0xc0, 0x01, 0x8f, 0x08, 0x0d, 0x11, 0x9a, 0x4a, 0x49, 0x3b, - 0xf3, 0x25, 0xfd, 0x00, 0x9a, 0x9c, 0x4c, 0x03, 0x7e, 0x99, 0xa7, 0xbc, 0xa2, 0x2a, 0x06, 0xd5, - 0xe7, 0x0c, 0xfa, 0x01, 0xc0, 0x18, 0xf7, 0x91, 0x7a, 0x10, 0xaa, 0xce, 0xd3, 0xaf, 0xee, 0xcc, - 0x35, 0xbf, 0x9d, 0x3c, 0x4a, 0xbe, 0xb1, 0x5c, 0xd6, 0x53, 0x10, 0x86, 0x3a, 0x6d, 0x55, 0x84, - 0x4b, 0xc6, 0x82, 0xac, 0x6d, 0xde, 0x90, 0xb5, 0xeb, 0x45, 0xd6, 0xfe, 0xcb, 0x81, 0xf6, 0xf3, - 0x38, 0x18, 0x5d, 0x2e, 0xe9, 0xba, 0xed, 0x62, 0x6d, 0xce, 0xc5, 0x43, 0xe8, 0x9e, 0x4b, 0x75, - 0xb9, 0x0b, 0x88, 0x42, 0xe7, 0xe9, 0xd7, 0x17, 0x78, 0x69, 0x17, 0x8b, 0x6f, 0xcb, 0xd9, 0xee, - 0xae, 0x7d, 0xbe, 0xbb, 0x8d, 0x1b, 0xdc, 0x6d, 0x16, 0xee, 0xfe, 0xa3, 0x06, 0x1b, 0xd8, 0xde, - 0x7c, 0x32, 0xcb, 0x88, 0x48, 0xdd, 0x1f, 0x42, 0x2b, 0xcb, 0x4d, 0x75, 0x96, 0x35, 0xb5, 0x10, - 0x71, 0x9f, 0xe9, 0x66, 0x8a, 0xf2, 0x35, 0x94, 0x7f, 0xb4, 0x40, 0xbe, 0x38, 0xc9, 0xfc, 0x72, - 0xb9, 0x3c, 0x78, 0x2e, 0x02, 0x1a, 0xc6, 0xc4, 0x27, 0x22, 0x8b, 0x53, 0xdd, 0x23, 0x2d, 0x9e, - 0xca, 0xb4, 0xd9, 0x40, 0x4c, 0xf4, 0xb1, 0xa4, 0x29, 0x89, 0x8e, 0x5a, 0x27, 0x3f, 0x29, 0xd7, - 0x4b, 0x86, 0x2c, 0x54, 0x4e, 0x66, 0x18, 0x21, 0x55, 0x56, 0x39, 0x59, 0xee, 0xa9, 0x51, 0x53, - 0x89, 0x60, 0xf1, 0x64, 0x88, 0x15, 0x8d, 0x0a, 0xd4, 0x79, 0x64, 0x70, 0xaa, 0xc7, 0x91, 0xf7, - 0xcf, 0x3a, 0x74, 0x55, 0xf9, 0xe4, 0xa0, 0x3e, 0x96, 0x79, 0xce, 0xa6, 0x56, 0x16, 0x19, 0x1c, - 0x69, 0x85, 0xa4, 0x8e, 0xed, 0x46, 0x63, 0xf1, 0x64, 0x2a, 0x4a, 0xfa, 0xc0, 0x6a, 0x38, 0x26, - 0x2b, 0xdf, 0xe5, 0xd0, 0x6c, 0x3c, 0x06, 0x47, 0xb6, 0xb2, 0x94, 0x59, 0xd9, 0x51, 0xd0, 0x52, - 0x36, 0x65, 0xc5, 0xfe, 0x2a, 0x3f, 0x0c, 0x8e, 0xc4, 0x37, 0x65, 0xf9, 0xde, 0x0a, 0xa4, 0x92, - 0xa1, 0x34, 0xeb, 0x7d, 0xd5, 0x01, 0x52, 0xd0, 0x73, 0x51, 0x6d, 0xdf, 0x18, 0x55, 0xb0, 0xa2, - 0x6a, 0x17, 0x57, 0x67, 0xae, 0xb8, 0x3e, 0x82, 0xae, 0xd2, 0x93, 0x27, 0xfd, 0x86, 0x3a, 0xe0, - 0x2d, 0xa6, 0x9d, 0x1b, 0xdd, 0x6a, 0x6e, 0xd8, 0xd1, 0xdd, 0xbc, 0x26, 0xba, 0xbd, 0x22, 0xba, - 0xbf, 0x84, 0xfe, 0x69, 0x16, 0xc7, 0x03, 0x22, 0x44, 0x30, 0x21, 0xcf, 0xdf, 0x0d, 0xc9, 0xec, - 0x28, 0x12, 0xa9, 0x4f, 0x44, 0x22, 0xf3, 0x8c, 0x70, 0xbe, 0xc7, 0x42, 0x82, 0x41, 0x6e, 0xf8, - 0x39, 0x29, 0x3d, 0x24, 0x9c, 0x4b, 0x03, 0x74, 0x87, 0x54, 0x94, 0xbb, 0x03, 0x6b, 0x71, 0x24, - 0x64, 0xae, 0xd7, 0x9f, 0x74, 0x9e, 0x3e, 0x5c, 0x50, 0x2a, 0x03, 0x31, 0xd9, 0x0f, 0xd2, 0xc0, - 0xc7, 0x75, 0xde, 0x14, 0xbe, 0xbc, 0x78, 0xf7, 0xd9, 0xb5, 0x27, 0x98, 0xec, 0x61, 0xd8, 0x04, - 0x22, 0x46, 0x8b, 0xa1, 0xc4, 0x64, 0x49, 0xb3, 0x85, 0xd2, 0x83, 0x76, 0x74, 0xfd, 0x9c, 0xf4, - 0x3e, 0x00, 0xf7, 0x90, 0xa4, 0x83, 0xe0, 0xed, 0x2e, 0x0d, 0x07, 0x11, 0x1d, 0x92, 0x99, 0x4f, - 0x66, 0xde, 0x0b, 0xb8, 0x3f, 0xc7, 0x15, 0x89, 0x34, 0x60, 0x1a, 0xbc, 0x1d, 0x92, 0x19, 0x1a, - 0xd0, 0xf5, 0x35, 0x85, 0x7c, 0x5c, 0xa5, 0xdb, 0xa3, 0xa6, 0xbc, 0x19, 0xf4, 0x64, 0x84, 0x86, - 0x84, 0x86, 0x03, 0x31, 0x41, 0x15, 0xdb, 0xd0, 0x51, 0x08, 0x0c, 0xc4, 0xa4, 0xec, 0xb7, 0x06, - 0x4b, 0xae, 0x18, 0xc5, 0x11, 0xa1, 0xa9, 0x5a, 0xa1, 0xbd, 0x31, 0x58, 0x32, 0x19, 0x05, 0xa1, - 0x61, 0x71, 0xe4, 0xd4, 0xfd, 0x82, 0xf6, 0xfe, 0xd6, 0x80, 0x75, 0x0d, 0x28, 0x4e, 0x8d, 0xf2, - 0x88, 0x2b, 0xf0, 0x52, 0x94, 0x4a, 0xc6, 0xd1, 0x55, 0x39, 0xbf, 0x29, 0xca, 0x9c, 0xf8, 0xea, - 0xf6, 0xc4, 0x57, 0xb1, 0x69, 0x6d, 0xde, 0xa6, 0x8a, 0x5f, 0x8d, 0x79, 0xbf, 0xbe, 0x09, 0x5b, - 0x02, 0x0b, 0xe6, 0x34, 0x0e, 0xd2, 0x31, 0xe3, 0x53, 0x7d, 0x62, 0x35, 0xfc, 0x39, 0xbe, 0x6c, - 0xf6, 0x8a, 0x57, 0x14, 0xac, 0xaa, 0xc8, 0x0a, 0x57, 0x96, 0x87, 0xe2, 0xe4, 0x85, 0xab, 0x46, - 0x05, 0x9b, 0xa9, 0x6c, 0x13, 0x22, 0x62, 0x14, 0x27, 0x60, 0x55, 0x9f, 0x26, 0x4b, 0x7a, 0x3e, - 0x15, 0x93, 0x03, 0xce, 0xa6, 0x7a, 0x60, 0xc8, 0x49, 0xf4, 0x9c, 0xd1, 0x94, 0xd0, 0x14, 0x65, - 0x3b, 0x4a, 0xd6, 0x60, 0x49, 0x59, 0x4d, 0x62, 0x71, 0x6e, 0xf8, 0x39, 0xe9, 0x6e, 0x41, 0x5d, - 0x90, 0x99, 0xae, 0x38, 0xf9, 0xd3, 0x8a, 0x5c, 0xcf, 0x8e, 0x5c, 0xa5, 0x15, 0x6c, 0xe1, 0x57, - 0xb3, 0x15, 0x94, 0x77, 0x80, 0x7b, 0xd6, 0x1d, 0x60, 0x17, 0xd6, 0x59, 0x22, 0xf3, 0x5c, 0xf4, - 0x5d, 0xac, 0xb1, 0x6f, 0x5c, 0x5f, 0x63, 0x3b, 0x27, 0x6a, 0xe5, 0x0b, 0x9a, 0xf2, 0x77, 0x7e, - 0x2e, 0xe7, 0x1e, 0x41, 0x8f, 0x8d, 0xc7, 0x71, 0x44, 0xc9, 0x69, 0x26, 0x2e, 0xf0, 0x64, 0xbb, - 0x8f, 0x27, 0x9b, 0xb7, 0x40, 0xd5, 0x89, 0xbd, 0xd2, 0xaf, 0x8a, 0x3e, 0x7c, 0x06, 0x1b, 0xe6, - 0x36, 0x12, 0x86, 0x4b, 0xf2, 0x4e, 0xe7, 0xa0, 0xfc, 0x29, 0x87, 0xbd, 0xab, 0x20, 0xce, 0xd4, - 0x31, 0xd0, 0xf2, 0x15, 0xf1, 0xac, 0xf6, 0x3d, 0xc7, 0xfb, 0x8d, 0x03, 0xbd, 0xca, 0x06, 0x72, - 0x75, 0x1a, 0xa5, 0x31, 0xd1, 0x1a, 0x14, 0xe1, 0xba, 0xb0, 0x16, 0x12, 0x31, 0xd2, 0x29, 0x8c, - 0xbf, 0x75, 0x27, 0xab, 0x17, 0xe3, 0xa2, 0xbc, 0xe8, 0x9d, 0x0c, 0xa5, 0xa2, 0x21, 0xcb, 0x68, - 0x58, 0x5c, 0xf4, 0x0c, 0x9e, 0x4c, 0xa1, 0xe8, 0x64, 0xf8, 0x3c, 0x08, 0x27, 0x44, 0x5d, 0xc7, - 0x1a, 0x68, 0x93, 0xcd, 0xf4, 0xf6, 0xa1, 0x75, 0x16, 0x25, 0x62, 0x8f, 0x4d, 0xa7, 0x32, 0x10, - 0x21, 0x49, 0xe5, 0xac, 0xea, 0x60, 0xbc, 0x35, 0x25, 0x53, 0x25, 0x24, 0xe3, 0x20, 0x8b, 0x53, - 0xb9, 0x34, 0x2f, 0x5c, 0x83, 0xe5, 0xfd, 0xbd, 0x06, 0x5b, 0x38, 0x18, 0xec, 0x61, 0x58, 0x43, - 0xc9, 0x74, 0x9f, 0x42, 0x03, 0xcb, 0x4c, 0x0f, 0x23, 0x37, 0x0f, 0x13, 0x6a, 0xa9, 0xfb, 0x23, - 0x68, 0xb2, 0x04, 0x47, 0x4a, 0x35, 0x81, 0x7c, 0x7c, 0x9d, 0x90, 0x7d, 0xa7, 0xf3, 0xb5, 0x94, - 0x7b, 0x00, 0xa0, 0xae, 0x9b, 0x47, 0x65, 0x6b, 0x5e, 0x56, 0x87, 0x21, 0x29, 0xc1, 0x2b, 0xda, - 0xac, 0x71, 0xb1, 0xb3, 0x99, 0xee, 0x31, 0x6c, 0xa2, 0xd9, 0x27, 0xf9, 0x54, 0x89, 0x18, 0x2f, - 0xbf, 0x63, 0x45, 0xda, 0xfb, 0xbd, 0xa3, 0x61, 0x94, 0x5f, 0x87, 0x04, 0xb1, 0x35, 0x20, 0x71, - 0x56, 0x82, 0xe4, 0x21, 0xb4, 0xa6, 0x99, 0x31, 0xe4, 0xd6, 0xfd, 0x82, 0x2e, 0x43, 0x54, 0x5f, - 0x3a, 0x44, 0xde, 0x1f, 0x1c, 0xe8, 0x7f, 0xc2, 0x22, 0x8a, 0x1f, 0x76, 0x93, 0x24, 0xd6, 0xaf, - 0x0f, 0x2b, 0xc7, 0xfc, 0xc7, 0xd0, 0x0e, 0x94, 0x1a, 0x9a, 0xea, 0xb0, 0x2f, 0x31, 0xb8, 0x96, - 0x32, 0xc6, 0x0c, 0x52, 0x37, 0x67, 0x10, 0xef, 0x4f, 0x0e, 0x6c, 0x2a, 0x50, 0x7e, 0x96, 0x45, - 0xe9, 0xca, 0xf6, 0x3d, 0x87, 0xd6, 0x2c, 0x8b, 0xd2, 0x15, 0xb2, 0xb2, 0x90, 0x9b, 0xcf, 0xa7, - 0xfa, 0x82, 0x7c, 0xf2, 0xfe, 0xec, 0xc0, 0xa3, 0x2a, 0xac, 0xbb, 0xa3, 0x11, 0x49, 0xee, 0xb2, - 0xa4, 0xac, 0x19, 0x6c, 0xad, 0x32, 0x83, 0x2d, 0x34, 0xd9, 0x27, 0x9f, 0x91, 0xd1, 0x17, 0xd7, - 0xe4, 0x5f, 0xd7, 0xe0, 0x2b, 0x87, 0x45, 0xe1, 0x9d, 0xf1, 0x80, 0x8a, 0x31, 0xe1, 0xfc, 0x0e, - 0xed, 0x3d, 0x82, 0x2e, 0x25, 0x6f, 0x4a, 0x9b, 0x74, 0x39, 0x2e, 0xab, 0xc6, 0x16, 0x5e, 0xae, - 0x77, 0x79, 0xff, 0x75, 0x60, 0x4b, 0xe9, 0xf9, 0x69, 0x34, 0xba, 0xbc, 0x43, 0xe7, 0x8f, 0x61, - 0xf3, 0x12, 0x2d, 0x90, 0xd4, 0x0a, 0x6d, 0xbb, 0x22, 0xbd, 0xa4, 0xfb, 0xff, 0x73, 0xe0, 0x9e, - 0x52, 0xf4, 0x92, 0x5e, 0x45, 0x77, 0x99, 0xac, 0xa7, 0xd0, 0x8b, 0x94, 0x09, 0x2b, 0x02, 0x50, - 0x15, 0x5f, 0x12, 0x81, 0xbf, 0x38, 0xd0, 0x53, 0x9a, 0x5e, 0xd0, 0x94, 0xf0, 0x95, 0xfd, 0xff, - 0x09, 0x74, 0x08, 0x4d, 0x79, 0x40, 0x57, 0xe9, 0x90, 0xa6, 0xe8, 0x92, 0x4d, 0xf2, 0x12, 0xee, - 0xa9, 0x2b, 0xba, 0xd1, 0x71, 0xe4, 0xac, 0x1a, 0x84, 0x6a, 0xfc, 0x74, 0x50, 0x28, 0x27, 0xed, - 0xc7, 0x17, 0xfd, 0xaa, 0x5e, 0x3e, 0xbe, 0x3c, 0x06, 0x08, 0xc2, 0xf0, 0x53, 0xc6, 0xc3, 0x88, - 0xe6, 0xc7, 0x87, 0xc1, 0xf1, 0x3e, 0x81, 0x0d, 0x39, 0x2d, 0x9f, 0x19, 0x97, 0xed, 0x1b, 0x9f, - 0x03, 0xcc, 0x8b, 0x7a, 0xcd, 0xbe, 0xa8, 0x7b, 0xbf, 0x80, 0x2f, 0xcd, 0x19, 0x8e, 0xa8, 0xef, - 0xa9, 0x37, 0x84, 0x7c, 0x13, 0x0d, 0xfe, 0xd7, 0x16, 0x40, 0x68, 0xda, 0xe2, 0x5b, 0x42, 0xde, - 0xaf, 0x1c, 0xf8, 0x70, 0x4e, 0xfd, 0x6e, 0x92, 0x70, 0x76, 0xa5, 0x93, 0xfb, 0x36, 0xb6, 0xb1, - 0x5b, 0x6b, 0xad, 0xda, 0x5a, 0x17, 0x1a, 0x61, 0x1d, 0x07, 0xef, 0xc1, 0x88, 0x3f, 0x3a, 0xd0, - 0xd3, 0x46, 0x84, 0xa1, 0xde, 0xf6, 0xbb, 0xd0, 0x54, 0xef, 0x8f, 0x7a, 0xc3, 0x0f, 0x17, 0x6e, - 0x98, 0xbf, 0x9b, 0xfa, 0x7a, 0xf1, 0x7c, 0x46, 0xd6, 0x16, 0x8d, 0x81, 0xdf, 0x2f, 0x3a, 0xc0, - 0xd2, 0x2f, 0x84, 0x5a, 0xc0, 0xfb, 0x79, 0x9e, 0xcc, 0xfb, 0x24, 0x26, 0xb7, 0x89, 0x91, 0xf7, - 0x0a, 0x36, 0xf1, 0x31, 0xb4, 0xc4, 0xe0, 0x56, 0xd4, 0x7e, 0x0a, 0x5b, 0xa8, 0xf6, 0xd6, 0xed, - 0x2d, 0xaa, 0x43, 0xe2, 0xb3, 0x77, 0x11, 0xd0, 0xc9, 0x6d, 0x6a, 0xff, 0x16, 0xdc, 0xcf, 0xb1, - 0x7f, 0x95, 0x84, 0xc5, 0x15, 0xe5, 0x9a, 0x87, 0x97, 0xf3, 0x26, 0xfe, 0x99, 0xf7, 0x9d, 0xff, - 0x07, 0x00, 0x00, 0xff, 0xff, 0x5a, 0xb7, 0x8c, 0x6a, 0xdf, 0x1b, 0x00, 0x00, +var File_sdk_ws_ws_proto protoreflect.FileDescriptor + +var file_sdk_ws_ws_proto_rawDesc = []byte{ + 0x0a, 0x0f, 0x73, 0x64, 0x6b, 0x5f, 0x77, 0x73, 0x2f, 0x77, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x12, 0x11, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, + 0x72, 0x61, 0x6d, 0x73, 0x22, 0xf5, 0x02, 0x0a, 0x09, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, + 0x66, 0x6f, 0x12, 0x18, 0x0a, 0x07, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x44, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x07, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, + 0x67, 0x72, 0x6f, 0x75, 0x70, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x6e, 0x6f, + 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0c, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x22, + 0x0a, 0x0c, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x69, + 0x6f, 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x66, 0x61, 0x63, 0x65, 0x55, 0x52, 0x4c, 0x18, 0x05, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x07, 0x66, 0x61, 0x63, 0x65, 0x55, 0x52, 0x4c, 0x12, 0x20, 0x0a, 0x0b, + 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x06, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0b, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x1e, + 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x20, + 0x0a, 0x0b, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x08, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, + 0x12, 0x0e, 0x0a, 0x02, 0x65, 0x78, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x65, 0x78, + 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x24, 0x0a, 0x0d, 0x63, 0x72, 0x65, 0x61, + 0x74, 0x6f, 0x72, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0d, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x1c, + 0x0a, 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x54, 0x79, 0x70, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x54, 0x79, 0x70, 0x65, 0x22, 0xb7, 0x02, 0x0a, + 0x13, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x46, 0x75, 0x6c, 0x6c, + 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x18, 0x0a, 0x07, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x44, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x44, 0x12, 0x16, + 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, + 0x75, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x72, 0x6f, 0x6c, 0x65, 0x4c, 0x65, + 0x76, 0x65, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x72, 0x6f, 0x6c, 0x65, 0x4c, + 0x65, 0x76, 0x65, 0x6c, 0x12, 0x1a, 0x0a, 0x08, 0x6a, 0x6f, 0x69, 0x6e, 0x54, 0x69, 0x6d, 0x65, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x6a, 0x6f, 0x69, 0x6e, 0x54, 0x69, 0x6d, 0x65, + 0x12, 0x1a, 0x0a, 0x08, 0x6e, 0x69, 0x63, 0x6b, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x08, 0x6e, 0x69, 0x63, 0x6b, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, + 0x66, 0x61, 0x63, 0x65, 0x55, 0x52, 0x4c, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x66, + 0x61, 0x63, 0x65, 0x55, 0x52, 0x4c, 0x12, 0x26, 0x0a, 0x0e, 0x61, 0x70, 0x70, 0x4d, 0x61, 0x6e, + 0x67, 0x65, 0x72, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, + 0x61, 0x70, 0x70, 0x4d, 0x61, 0x6e, 0x67, 0x65, 0x72, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x1e, + 0x0a, 0x0a, 0x6a, 0x6f, 0x69, 0x6e, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x08, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x0a, 0x6a, 0x6f, 0x69, 0x6e, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x26, + 0x0a, 0x0e, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, + 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, + 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x0e, 0x0a, 0x02, 0x65, 0x78, 0x18, 0x0a, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x02, 0x65, 0x78, 0x22, 0x9e, 0x01, 0x0a, 0x0e, 0x50, 0x75, 0x62, 0x6c, 0x69, + 0x63, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x73, 0x65, + 0x72, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, + 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x6e, 0x69, 0x63, 0x6b, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x08, 0x6e, 0x69, 0x63, 0x6b, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, + 0x07, 0x66, 0x61, 0x63, 0x65, 0x55, 0x52, 0x4c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, + 0x66, 0x61, 0x63, 0x65, 0x55, 0x52, 0x4c, 0x12, 0x16, 0x0a, 0x06, 0x67, 0x65, 0x6e, 0x64, 0x65, + 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x67, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x12, + 0x26, 0x0a, 0x0e, 0x61, 0x70, 0x70, 0x4d, 0x61, 0x6e, 0x67, 0x65, 0x72, 0x4c, 0x65, 0x76, 0x65, + 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x61, 0x70, 0x70, 0x4d, 0x61, 0x6e, 0x67, + 0x65, 0x72, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x22, 0x96, 0x02, 0x0a, 0x08, 0x55, 0x73, 0x65, 0x72, + 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, + 0x6e, 0x69, 0x63, 0x6b, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, + 0x6e, 0x69, 0x63, 0x6b, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x66, 0x61, 0x63, 0x65, + 0x55, 0x52, 0x4c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x66, 0x61, 0x63, 0x65, 0x55, + 0x52, 0x4c, 0x12, 0x16, 0x0a, 0x06, 0x67, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x06, 0x67, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x12, 0x20, 0x0a, 0x0b, 0x70, 0x68, + 0x6f, 0x6e, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0b, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x14, 0x0a, 0x05, + 0x62, 0x69, 0x72, 0x74, 0x68, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x05, 0x62, 0x69, 0x72, + 0x74, 0x68, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x18, 0x07, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x12, 0x0e, 0x0a, 0x02, 0x65, 0x78, 0x18, 0x08, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x65, 0x78, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, + 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x63, 0x72, + 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x61, 0x70, 0x70, 0x4d, + 0x61, 0x6e, 0x67, 0x65, 0x72, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x0e, 0x61, 0x70, 0x70, 0x4d, 0x61, 0x6e, 0x67, 0x65, 0x72, 0x4c, 0x65, 0x76, 0x65, 0x6c, + 0x22, 0xf9, 0x01, 0x0a, 0x0a, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x12, + 0x20, 0x0a, 0x0b, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x49, + 0x44, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x6d, 0x61, 0x72, 0x6b, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x06, 0x72, 0x65, 0x6d, 0x61, 0x72, 0x6b, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x72, 0x65, + 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x63, + 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x3b, 0x0a, 0x0a, 0x66, 0x72, 0x69, + 0x65, 0x6e, 0x64, 0x55, 0x73, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, + 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, + 0x73, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0a, 0x66, 0x72, 0x69, 0x65, + 0x6e, 0x64, 0x55, 0x73, 0x65, 0x72, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x64, 0x64, 0x53, 0x6f, 0x75, + 0x72, 0x63, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x61, 0x64, 0x64, 0x53, 0x6f, + 0x75, 0x72, 0x63, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, + 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x6f, 0x70, + 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x0e, 0x0a, 0x02, + 0x65, 0x78, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x65, 0x78, 0x22, 0xec, 0x01, 0x0a, + 0x09, 0x42, 0x6c, 0x61, 0x63, 0x6b, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x20, 0x0a, 0x0b, 0x6f, 0x77, + 0x6e, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0b, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, + 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, + 0x52, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x47, 0x0a, 0x0d, + 0x62, 0x6c, 0x61, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, + 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x55, 0x73, + 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0d, 0x62, 0x6c, 0x61, 0x63, 0x6b, 0x55, 0x73, 0x65, + 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x64, 0x64, 0x53, 0x6f, 0x75, 0x72, + 0x63, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x61, 0x64, 0x64, 0x53, 0x6f, 0x75, + 0x72, 0x63, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x55, + 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x6f, 0x70, 0x65, + 0x72, 0x61, 0x74, 0x6f, 0x72, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x0e, 0x0a, 0x02, 0x65, + 0x78, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x65, 0x78, 0x22, 0xd1, 0x02, 0x0a, 0x0c, + 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x3d, 0x0a, 0x08, + 0x75, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, + 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, + 0x6d, 0x73, 0x2e, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, + 0x6f, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x3a, 0x0a, 0x09, 0x67, + 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, + 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, + 0x6d, 0x73, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x09, 0x67, 0x72, + 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x22, 0x0a, 0x0c, 0x68, 0x61, 0x6e, 0x64, 0x6c, + 0x65, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x68, + 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x72, + 0x65, 0x71, 0x4d, 0x73, 0x67, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x71, + 0x4d, 0x73, 0x67, 0x12, 0x1c, 0x0a, 0x09, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x4d, 0x73, 0x67, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x4d, 0x73, + 0x67, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x71, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, + 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, 0x71, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x68, + 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x07, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0c, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, + 0x1e, 0x0a, 0x0a, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x08, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, + 0x0e, 0x0a, 0x02, 0x65, 0x78, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x65, 0x78, 0x22, + 0xdb, 0x03, 0x0a, 0x0d, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x72, 0x6f, 0x6d, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x72, 0x6f, 0x6d, 0x55, 0x73, 0x65, 0x72, 0x49, + 0x44, 0x12, 0x22, 0x0a, 0x0c, 0x66, 0x72, 0x6f, 0x6d, 0x4e, 0x69, 0x63, 0x6b, 0x6e, 0x61, 0x6d, + 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x66, 0x72, 0x6f, 0x6d, 0x4e, 0x69, 0x63, + 0x6b, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x66, 0x72, 0x6f, 0x6d, 0x46, 0x61, 0x63, + 0x65, 0x55, 0x52, 0x4c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x66, 0x72, 0x6f, 0x6d, + 0x46, 0x61, 0x63, 0x65, 0x55, 0x52, 0x4c, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x72, 0x6f, 0x6d, 0x47, + 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x66, 0x72, 0x6f, + 0x6d, 0x47, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x74, 0x6f, 0x55, 0x73, 0x65, + 0x72, 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x74, 0x6f, 0x55, 0x73, 0x65, + 0x72, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x74, 0x6f, 0x4e, 0x69, 0x63, 0x6b, 0x6e, 0x61, 0x6d, + 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x74, 0x6f, 0x4e, 0x69, 0x63, 0x6b, 0x6e, + 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x6f, 0x46, 0x61, 0x63, 0x65, 0x55, 0x52, 0x4c, + 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x74, 0x6f, 0x46, 0x61, 0x63, 0x65, 0x55, 0x52, + 0x4c, 0x12, 0x1a, 0x0a, 0x08, 0x74, 0x6f, 0x47, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x08, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x08, 0x74, 0x6f, 0x47, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x12, 0x22, 0x0a, + 0x0c, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x09, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x0c, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x75, 0x6c, + 0x74, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x71, 0x4d, 0x73, 0x67, 0x18, 0x0a, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x06, 0x72, 0x65, 0x71, 0x4d, 0x73, 0x67, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x72, 0x65, + 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x63, + 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x68, 0x61, 0x6e, + 0x64, 0x6c, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0d, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, + 0x1c, 0x0a, 0x09, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x4d, 0x73, 0x67, 0x18, 0x0d, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x09, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x4d, 0x73, 0x67, 0x12, 0x1e, 0x0a, + 0x0a, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, + 0x0d, 0x52, 0x0a, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x0e, 0x0a, + 0x02, 0x65, 0x78, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x65, 0x78, 0x22, 0x7c, 0x0a, + 0x18, 0x50, 0x75, 0x6c, 0x6c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x42, 0x79, 0x53, 0x65, + 0x71, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x72, 0x72, + 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x65, 0x72, 0x72, 0x43, + 0x6f, 0x64, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x65, 0x72, 0x72, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x06, 0x65, 0x72, 0x72, 0x4d, 0x73, 0x67, 0x12, 0x2e, 0x0a, 0x04, 0x6c, + 0x69, 0x73, 0x74, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1a, 0x2e, 0x73, 0x65, 0x72, 0x76, + 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x4d, 0x73, + 0x67, 0x44, 0x61, 0x74, 0x61, 0x52, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x22, 0x6d, 0x0a, 0x17, 0x50, + 0x75, 0x6c, 0x6c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x42, 0x79, 0x53, 0x65, 0x71, 0x4c, + 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x44, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x20, + 0x0a, 0x0b, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, + 0x12, 0x18, 0x0a, 0x07, 0x73, 0x65, 0x71, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x03, 0x20, 0x03, 0x28, + 0x0d, 0x52, 0x07, 0x73, 0x65, 0x71, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x14, 0x0a, 0x12, 0x47, 0x65, + 0x74, 0x4d, 0x61, 0x78, 0x41, 0x6e, 0x64, 0x4d, 0x69, 0x6e, 0x53, 0x65, 0x71, 0x52, 0x65, 0x71, + 0x22, 0x45, 0x0a, 0x13, 0x47, 0x65, 0x74, 0x4d, 0x61, 0x78, 0x41, 0x6e, 0x64, 0x4d, 0x69, 0x6e, + 0x53, 0x65, 0x71, 0x52, 0x65, 0x73, 0x70, 0x12, 0x16, 0x0a, 0x06, 0x6d, 0x61, 0x78, 0x53, 0x65, + 0x71, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x6d, 0x61, 0x78, 0x53, 0x65, 0x71, 0x12, + 0x16, 0x0a, 0x06, 0x6d, 0x69, 0x6e, 0x53, 0x65, 0x71, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, + 0x06, 0x6d, 0x69, 0x6e, 0x53, 0x65, 0x71, 0x22, 0x71, 0x0a, 0x0f, 0x55, 0x73, 0x65, 0x72, 0x53, + 0x65, 0x6e, 0x64, 0x4d, 0x73, 0x67, 0x52, 0x65, 0x73, 0x70, 0x12, 0x20, 0x0a, 0x0b, 0x73, 0x65, + 0x72, 0x76, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0b, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, + 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x73, 0x67, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0b, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x73, 0x67, 0x49, 0x44, 0x12, 0x1a, + 0x0a, 0x08, 0x73, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, + 0x52, 0x08, 0x73, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x22, 0xbc, 0x05, 0x0a, 0x07, 0x4d, + 0x73, 0x67, 0x44, 0x61, 0x74, 0x61, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x49, 0x44, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, 0x65, 0x6e, 0x64, 0x49, 0x44, 0x12, 0x16, + 0x0a, 0x06, 0x72, 0x65, 0x63, 0x76, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, + 0x72, 0x65, 0x63, 0x76, 0x49, 0x44, 0x12, 0x18, 0x0a, 0x07, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, + 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x44, + 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x73, 0x67, 0x49, 0x44, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x73, 0x67, + 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x49, + 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4d, + 0x73, 0x67, 0x49, 0x44, 0x12, 0x2a, 0x0a, 0x10, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x50, 0x6c, + 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x49, 0x44, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x10, + 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x49, 0x44, + 0x12, 0x26, 0x0a, 0x0e, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x4e, 0x69, 0x63, 0x6b, 0x6e, 0x61, + 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, + 0x4e, 0x69, 0x63, 0x6b, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x73, 0x65, 0x6e, 0x64, + 0x65, 0x72, 0x46, 0x61, 0x63, 0x65, 0x55, 0x52, 0x4c, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0d, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x46, 0x61, 0x63, 0x65, 0x55, 0x52, 0x4c, 0x12, 0x20, + 0x0a, 0x0b, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x18, 0x09, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x0b, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, + 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x73, 0x67, 0x46, 0x72, 0x6f, 0x6d, 0x18, 0x0a, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x07, 0x6d, 0x73, 0x67, 0x46, 0x72, 0x6f, 0x6d, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x6f, + 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x0b, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x18, 0x0a, 0x07, + 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x63, + 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x10, 0x0a, 0x03, 0x73, 0x65, 0x71, 0x18, 0x0e, 0x20, + 0x01, 0x28, 0x0d, 0x52, 0x03, 0x73, 0x65, 0x71, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, 0x6e, 0x64, + 0x54, 0x69, 0x6d, 0x65, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x73, 0x65, 0x6e, 0x64, + 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, + 0x6d, 0x65, 0x18, 0x10, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, + 0x54, 0x69, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x11, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x41, 0x0a, 0x07, + 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x12, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, + 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, + 0x73, 0x2e, 0x4d, 0x73, 0x67, 0x44, 0x61, 0x74, 0x61, 0x2e, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, + 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, + 0x4c, 0x0a, 0x0f, 0x6f, 0x66, 0x66, 0x6c, 0x69, 0x6e, 0x65, 0x50, 0x75, 0x73, 0x68, 0x49, 0x6e, + 0x66, 0x6f, 0x18, 0x13, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x22, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, + 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x4f, 0x66, 0x66, + 0x6c, 0x69, 0x6e, 0x65, 0x50, 0x75, 0x73, 0x68, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0f, 0x6f, 0x66, + 0x66, 0x6c, 0x69, 0x6e, 0x65, 0x50, 0x75, 0x73, 0x68, 0x49, 0x6e, 0x66, 0x6f, 0x1a, 0x3a, 0x0a, + 0x0c, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, + 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, + 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, + 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, 0x22, 0x95, 0x01, 0x0a, 0x0f, 0x4f, 0x66, + 0x66, 0x6c, 0x69, 0x6e, 0x65, 0x50, 0x75, 0x73, 0x68, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x14, 0x0a, + 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x69, + 0x74, 0x6c, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x65, 0x73, 0x63, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x04, 0x64, 0x65, 0x73, 0x63, 0x12, 0x0e, 0x0a, 0x02, 0x65, 0x78, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x02, 0x65, 0x78, 0x12, 0x22, 0x0a, 0x0c, 0x69, 0x4f, 0x53, 0x50, 0x75, + 0x73, 0x68, 0x53, 0x6f, 0x75, 0x6e, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x69, + 0x4f, 0x53, 0x50, 0x75, 0x73, 0x68, 0x53, 0x6f, 0x75, 0x6e, 0x64, 0x12, 0x24, 0x0a, 0x0d, 0x69, + 0x4f, 0x53, 0x42, 0x61, 0x64, 0x67, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x08, 0x52, 0x0d, 0x69, 0x4f, 0x53, 0x42, 0x61, 0x64, 0x67, 0x65, 0x43, 0x6f, 0x75, 0x6e, + 0x74, 0x22, 0x44, 0x0a, 0x08, 0x54, 0x69, 0x70, 0x73, 0x43, 0x6f, 0x6d, 0x6d, 0x12, 0x16, 0x0a, + 0x06, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0c, 0x52, 0x06, 0x64, + 0x65, 0x74, 0x61, 0x69, 0x6c, 0x12, 0x20, 0x0a, 0x0b, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, + 0x54, 0x69, 0x70, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x64, 0x65, 0x66, 0x61, + 0x75, 0x6c, 0x74, 0x54, 0x69, 0x70, 0x73, 0x22, 0xc4, 0x02, 0x0a, 0x10, 0x47, 0x72, 0x6f, 0x75, + 0x70, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x54, 0x69, 0x70, 0x73, 0x12, 0x32, 0x0a, 0x05, + 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x73, 0x65, + 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, + 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, + 0x12, 0x3e, 0x0a, 0x06, 0x6f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x26, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, + 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, + 0x46, 0x75, 0x6c, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x06, 0x6f, 0x70, 0x55, 0x73, 0x65, 0x72, + 0x12, 0x46, 0x0a, 0x0a, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x03, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, + 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, + 0x6d, 0x62, 0x65, 0x72, 0x46, 0x75, 0x6c, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0a, 0x6d, 0x65, + 0x6d, 0x62, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x24, 0x0a, 0x0d, 0x6f, 0x70, 0x65, 0x72, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, + 0x0d, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x4e, + 0x0a, 0x0e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, + 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, + 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x46, 0x75, 0x6c, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0e, + 0x67, 0x72, 0x6f, 0x75, 0x70, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x22, 0xa2, + 0x01, 0x0a, 0x10, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x53, 0x65, 0x74, 0x54, + 0x69, 0x70, 0x73, 0x12, 0x3e, 0x0a, 0x06, 0x6f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, + 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, + 0x62, 0x65, 0x72, 0x46, 0x75, 0x6c, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x06, 0x6f, 0x70, 0x55, + 0x73, 0x65, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x6d, 0x75, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x6d, 0x75, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, + 0x32, 0x0a, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, + 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, + 0x6d, 0x73, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x67, 0x72, + 0x6f, 0x75, 0x70, 0x22, 0xa7, 0x01, 0x0a, 0x18, 0x4a, 0x6f, 0x69, 0x6e, 0x47, 0x72, 0x6f, 0x75, + 0x70, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x70, 0x73, + 0x12, 0x32, 0x0a, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1c, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, + 0x61, 0x6d, 0x73, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x67, + 0x72, 0x6f, 0x75, 0x70, 0x12, 0x3f, 0x0a, 0x09, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x6e, + 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, + 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x50, 0x75, 0x62, 0x6c, + 0x69, 0x63, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x09, 0x61, 0x70, 0x70, 0x6c, + 0x69, 0x63, 0x61, 0x6e, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x71, 0x4d, 0x73, 0x67, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x71, 0x4d, 0x73, 0x67, 0x22, 0xae, 0x01, + 0x0a, 0x0e, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x51, 0x75, 0x69, 0x74, 0x54, 0x69, 0x70, 0x73, + 0x12, 0x32, 0x0a, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1c, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, + 0x61, 0x6d, 0x73, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x67, + 0x72, 0x6f, 0x75, 0x70, 0x12, 0x42, 0x0a, 0x08, 0x71, 0x75, 0x69, 0x74, 0x55, 0x73, 0x65, 0x72, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, + 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, + 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x46, 0x75, 0x6c, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x08, + 0x71, 0x75, 0x69, 0x74, 0x55, 0x73, 0x65, 0x72, 0x12, 0x24, 0x0a, 0x0d, 0x6f, 0x70, 0x65, 0x72, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, + 0x0d, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x22, 0xb0, + 0x01, 0x0a, 0x1c, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x41, 0x63, 0x63, 0x65, 0x70, 0x74, 0x65, 0x64, 0x54, 0x69, 0x70, 0x73, 0x12, + 0x32, 0x0a, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, + 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, + 0x6d, 0x73, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x67, 0x72, + 0x6f, 0x75, 0x70, 0x12, 0x3e, 0x0a, 0x06, 0x6f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, + 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, + 0x62, 0x65, 0x72, 0x46, 0x75, 0x6c, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x06, 0x6f, 0x70, 0x55, + 0x73, 0x65, 0x72, 0x12, 0x1c, 0x0a, 0x09, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x4d, 0x73, 0x67, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x4d, 0x73, + 0x67, 0x22, 0xb0, 0x01, 0x0a, 0x1c, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x70, 0x70, 0x6c, 0x69, + 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x6a, 0x65, 0x63, 0x74, 0x65, 0x64, 0x54, 0x69, + 0x70, 0x73, 0x12, 0x32, 0x0a, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x1c, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, + 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x52, + 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x3e, 0x0a, 0x06, 0x6f, 0x70, 0x55, 0x73, 0x65, 0x72, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, + 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, + 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x46, 0x75, 0x6c, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x06, + 0x6f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x12, 0x1c, 0x0a, 0x09, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, + 0x4d, 0x73, 0x67, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x68, 0x61, 0x6e, 0x64, 0x6c, + 0x65, 0x4d, 0x73, 0x67, 0x22, 0x83, 0x02, 0x0a, 0x19, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4f, 0x77, + 0x6e, 0x65, 0x72, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x72, 0x65, 0x64, 0x54, 0x69, + 0x70, 0x73, 0x12, 0x32, 0x0a, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x1c, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, + 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x52, + 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x3e, 0x0a, 0x06, 0x6f, 0x70, 0x55, 0x73, 0x65, 0x72, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, + 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, + 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x46, 0x75, 0x6c, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x06, + 0x6f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x12, 0x4c, 0x0a, 0x0d, 0x6e, 0x65, 0x77, 0x47, 0x72, 0x6f, + 0x75, 0x70, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, + 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, + 0x73, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x46, 0x75, 0x6c, + 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0d, 0x6e, 0x65, 0x77, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4f, + 0x77, 0x6e, 0x65, 0x72, 0x12, 0x24, 0x0a, 0x0d, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x6f, 0x70, 0x65, + 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x22, 0xfc, 0x01, 0x0a, 0x10, 0x4d, + 0x65, 0x6d, 0x62, 0x65, 0x72, 0x4b, 0x69, 0x63, 0x6b, 0x65, 0x64, 0x54, 0x69, 0x70, 0x73, 0x12, + 0x32, 0x0a, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, + 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, + 0x6d, 0x73, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x67, 0x72, + 0x6f, 0x75, 0x70, 0x12, 0x3e, 0x0a, 0x06, 0x6f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, + 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, + 0x62, 0x65, 0x72, 0x46, 0x75, 0x6c, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x06, 0x6f, 0x70, 0x55, + 0x73, 0x65, 0x72, 0x12, 0x4e, 0x0a, 0x0e, 0x6b, 0x69, 0x63, 0x6b, 0x65, 0x64, 0x55, 0x73, 0x65, + 0x72, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x73, 0x65, + 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, + 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x46, 0x75, 0x6c, 0x6c, 0x49, + 0x6e, 0x66, 0x6f, 0x52, 0x0e, 0x6b, 0x69, 0x63, 0x6b, 0x65, 0x64, 0x55, 0x73, 0x65, 0x72, 0x4c, + 0x69, 0x73, 0x74, 0x12, 0x24, 0x0a, 0x0d, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x54, 0x69, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x6f, 0x70, 0x65, 0x72, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x22, 0xff, 0x01, 0x0a, 0x11, 0x4d, 0x65, + 0x6d, 0x62, 0x65, 0x72, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x64, 0x54, 0x69, 0x70, 0x73, 0x12, + 0x32, 0x0a, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, + 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, + 0x6d, 0x73, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x67, 0x72, + 0x6f, 0x75, 0x70, 0x12, 0x3e, 0x0a, 0x06, 0x6f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, + 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, + 0x62, 0x65, 0x72, 0x46, 0x75, 0x6c, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x06, 0x6f, 0x70, 0x55, + 0x73, 0x65, 0x72, 0x12, 0x50, 0x0a, 0x0f, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x64, 0x55, 0x73, + 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x73, + 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, + 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x46, 0x75, 0x6c, 0x6c, + 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0f, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x64, 0x55, 0x73, 0x65, + 0x72, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x24, 0x0a, 0x0d, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x6f, 0x70, + 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x22, 0xb5, 0x01, 0x0a, 0x0f, + 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x45, 0x6e, 0x74, 0x65, 0x72, 0x54, 0x69, 0x70, 0x73, 0x12, + 0x32, 0x0a, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, + 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, + 0x6d, 0x73, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x67, 0x72, + 0x6f, 0x75, 0x70, 0x12, 0x48, 0x0a, 0x0b, 0x65, 0x6e, 0x74, 0x72, 0x61, 0x6e, 0x74, 0x55, 0x73, + 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, + 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x47, 0x72, 0x6f, + 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x46, 0x75, 0x6c, 0x6c, 0x49, 0x6e, 0x66, 0x6f, + 0x52, 0x0b, 0x65, 0x6e, 0x74, 0x72, 0x61, 0x6e, 0x74, 0x55, 0x73, 0x65, 0x72, 0x12, 0x24, 0x0a, + 0x0d, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, + 0x69, 0x6d, 0x65, 0x22, 0x6b, 0x0a, 0x11, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x41, 0x70, 0x70, + 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x54, + 0x69, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, 0x52, 0x07, 0x61, 0x64, 0x64, 0x54, 0x69, + 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x64, 0x64, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x64, 0x64, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, + 0x12, 0x1e, 0x0a, 0x0a, 0x61, 0x64, 0x64, 0x57, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x67, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x64, 0x64, 0x57, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x67, + 0x22, 0x4a, 0x0a, 0x0c, 0x46, 0x72, 0x6f, 0x6d, 0x54, 0x6f, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, + 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x72, 0x6f, 0x6d, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x72, 0x6f, 0x6d, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, + 0x12, 0x1a, 0x0a, 0x08, 0x74, 0x6f, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x08, 0x74, 0x6f, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x22, 0x5c, 0x0a, 0x15, + 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x54, 0x69, 0x70, 0x73, 0x12, 0x43, 0x0a, 0x0c, 0x66, 0x72, 0x6f, 0x6d, 0x54, 0x6f, 0x55, + 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x73, 0x65, + 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, + 0x46, 0x72, 0x6f, 0x6d, 0x54, 0x6f, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x52, 0x0c, 0x66, 0x72, + 0x6f, 0x6d, 0x54, 0x6f, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x22, 0x82, 0x01, 0x0a, 0x1d, 0x46, + 0x72, 0x69, 0x65, 0x6e, 0x64, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x65, 0x64, 0x54, 0x69, 0x70, 0x73, 0x12, 0x43, 0x0a, 0x0c, + 0x66, 0x72, 0x6f, 0x6d, 0x54, 0x6f, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, + 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x46, 0x72, 0x6f, 0x6d, 0x54, 0x6f, 0x55, 0x73, 0x65, + 0x72, 0x49, 0x44, 0x52, 0x0c, 0x66, 0x72, 0x6f, 0x6d, 0x54, 0x6f, 0x55, 0x73, 0x65, 0x72, 0x49, + 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x4d, 0x73, 0x67, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x4d, 0x73, 0x67, 0x22, + 0x82, 0x01, 0x0a, 0x1d, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x6a, 0x65, 0x63, 0x74, 0x65, 0x64, 0x54, 0x69, 0x70, + 0x73, 0x12, 0x43, 0x0a, 0x0c, 0x66, 0x72, 0x6f, 0x6d, 0x54, 0x6f, 0x55, 0x73, 0x65, 0x72, 0x49, + 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, + 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x46, 0x72, 0x6f, 0x6d, + 0x54, 0x6f, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x52, 0x0c, 0x66, 0x72, 0x6f, 0x6d, 0x54, 0x6f, + 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, + 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x68, 0x61, 0x6e, 0x64, 0x6c, + 0x65, 0x4d, 0x73, 0x67, 0x22, 0xa9, 0x01, 0x0a, 0x0f, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x41, + 0x64, 0x64, 0x65, 0x64, 0x54, 0x69, 0x70, 0x73, 0x12, 0x35, 0x0a, 0x06, 0x66, 0x72, 0x69, 0x65, + 0x6e, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1d, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, + 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x46, 0x72, 0x69, + 0x65, 0x6e, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x06, 0x66, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x12, + 0x24, 0x0a, 0x0d, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x39, 0x0a, 0x06, 0x6f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, + 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, + 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x06, 0x6f, 0x70, 0x55, 0x73, 0x65, 0x72, + 0x22, 0x58, 0x0a, 0x11, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, + 0x64, 0x54, 0x69, 0x70, 0x73, 0x12, 0x43, 0x0a, 0x0c, 0x66, 0x72, 0x6f, 0x6d, 0x54, 0x6f, 0x55, + 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x73, 0x65, + 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, + 0x46, 0x72, 0x6f, 0x6d, 0x54, 0x6f, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x52, 0x0c, 0x66, 0x72, + 0x6f, 0x6d, 0x54, 0x6f, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x22, 0x55, 0x0a, 0x0e, 0x42, 0x6c, + 0x61, 0x63, 0x6b, 0x41, 0x64, 0x64, 0x65, 0x64, 0x54, 0x69, 0x70, 0x73, 0x12, 0x43, 0x0a, 0x0c, + 0x66, 0x72, 0x6f, 0x6d, 0x54, 0x6f, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, + 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x46, 0x72, 0x6f, 0x6d, 0x54, 0x6f, 0x55, 0x73, 0x65, + 0x72, 0x49, 0x44, 0x52, 0x0c, 0x66, 0x72, 0x6f, 0x6d, 0x54, 0x6f, 0x55, 0x73, 0x65, 0x72, 0x49, + 0x44, 0x22, 0x57, 0x0a, 0x10, 0x42, 0x6c, 0x61, 0x63, 0x6b, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, + 0x64, 0x54, 0x69, 0x70, 0x73, 0x12, 0x43, 0x0a, 0x0c, 0x66, 0x72, 0x6f, 0x6d, 0x54, 0x6f, 0x55, + 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x73, 0x65, + 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, + 0x46, 0x72, 0x6f, 0x6d, 0x54, 0x6f, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x52, 0x0c, 0x66, 0x72, + 0x6f, 0x6d, 0x54, 0x6f, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x22, 0x5c, 0x0a, 0x15, 0x46, 0x72, + 0x69, 0x65, 0x6e, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x43, 0x68, 0x61, 0x6e, 0x67, 0x65, 0x64, 0x54, + 0x69, 0x70, 0x73, 0x12, 0x43, 0x0a, 0x0c, 0x66, 0x72, 0x6f, 0x6d, 0x54, 0x6f, 0x55, 0x73, 0x65, + 0x72, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x73, 0x65, 0x72, 0x76, + 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x46, 0x72, + 0x6f, 0x6d, 0x54, 0x6f, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x52, 0x0c, 0x66, 0x72, 0x6f, 0x6d, + 0x54, 0x6f, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x22, 0x2d, 0x0a, 0x13, 0x55, 0x73, 0x65, 0x72, + 0x49, 0x6e, 0x66, 0x6f, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x54, 0x69, 0x70, 0x73, 0x12, + 0x16, 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x44, 0x22, 0x53, 0x0a, 0x11, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1e, 0x0a, 0x0a, + 0x70, 0x61, 0x67, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x0a, 0x70, 0x61, 0x67, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x1e, 0x0a, 0x0a, + 0x73, 0x68, 0x6f, 0x77, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x0a, 0x73, 0x68, 0x6f, 0x77, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x42, 0x1c, 0x5a, 0x1a, + 0x2e, 0x2f, 0x73, 0x64, 0x6b, 0x5f, 0x77, 0x73, 0x3b, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, + 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x33, +} + +var ( + file_sdk_ws_ws_proto_rawDescOnce sync.Once + file_sdk_ws_ws_proto_rawDescData = file_sdk_ws_ws_proto_rawDesc +) + +func file_sdk_ws_ws_proto_rawDescGZIP() []byte { + file_sdk_ws_ws_proto_rawDescOnce.Do(func() { + file_sdk_ws_ws_proto_rawDescData = protoimpl.X.CompressGZIP(file_sdk_ws_ws_proto_rawDescData) + }) + return file_sdk_ws_ws_proto_rawDescData +} + +var file_sdk_ws_ws_proto_msgTypes = make([]protoimpl.MessageInfo, 39) +var file_sdk_ws_ws_proto_goTypes = []interface{}{ + (*GroupInfo)(nil), // 0: server_api_params.GroupInfo + (*GroupMemberFullInfo)(nil), // 1: server_api_params.GroupMemberFullInfo + (*PublicUserInfo)(nil), // 2: server_api_params.PublicUserInfo + (*UserInfo)(nil), // 3: server_api_params.UserInfo + (*FriendInfo)(nil), // 4: server_api_params.FriendInfo + (*BlackInfo)(nil), // 5: server_api_params.BlackInfo + (*GroupRequest)(nil), // 6: server_api_params.GroupRequest + (*FriendRequest)(nil), // 7: server_api_params.FriendRequest + (*PullMessageBySeqListResp)(nil), // 8: server_api_params.PullMessageBySeqListResp + (*PullMessageBySeqListReq)(nil), // 9: server_api_params.PullMessageBySeqListReq + (*GetMaxAndMinSeqReq)(nil), // 10: server_api_params.GetMaxAndMinSeqReq + (*GetMaxAndMinSeqResp)(nil), // 11: server_api_params.GetMaxAndMinSeqResp + (*UserSendMsgResp)(nil), // 12: server_api_params.UserSendMsgResp + (*MsgData)(nil), // 13: server_api_params.MsgData + (*OfflinePushInfo)(nil), // 14: server_api_params.OfflinePushInfo + (*TipsComm)(nil), // 15: server_api_params.TipsComm + (*GroupCreatedTips)(nil), // 16: server_api_params.GroupCreatedTips + (*GroupInfoSetTips)(nil), // 17: server_api_params.GroupInfoSetTips + (*JoinGroupApplicationTips)(nil), // 18: server_api_params.JoinGroupApplicationTips + (*MemberQuitTips)(nil), // 19: server_api_params.MemberQuitTips + (*GroupApplicationAcceptedTips)(nil), // 20: server_api_params.GroupApplicationAcceptedTips + (*GroupApplicationRejectedTips)(nil), // 21: server_api_params.GroupApplicationRejectedTips + (*GroupOwnerTransferredTips)(nil), // 22: server_api_params.GroupOwnerTransferredTips + (*MemberKickedTips)(nil), // 23: server_api_params.MemberKickedTips + (*MemberInvitedTips)(nil), // 24: server_api_params.MemberInvitedTips + (*MemberEnterTips)(nil), // 25: server_api_params.MemberEnterTips + (*FriendApplication)(nil), // 26: server_api_params.FriendApplication + (*FromToUserID)(nil), // 27: server_api_params.FromToUserID + (*FriendApplicationTips)(nil), // 28: server_api_params.FriendApplicationTips + (*FriendApplicationApprovedTips)(nil), // 29: server_api_params.FriendApplicationApprovedTips + (*FriendApplicationRejectedTips)(nil), // 30: server_api_params.FriendApplicationRejectedTips + (*FriendAddedTips)(nil), // 31: server_api_params.FriendAddedTips + (*FriendDeletedTips)(nil), // 32: server_api_params.FriendDeletedTips + (*BlackAddedTips)(nil), // 33: server_api_params.BlackAddedTips + (*BlackDeletedTips)(nil), // 34: server_api_params.BlackDeletedTips + (*FriendInfoChangedTips)(nil), // 35: server_api_params.FriendInfoChangedTips + (*UserInfoUpdatedTips)(nil), // 36: server_api_params.UserInfoUpdatedTips + (*RequestPagination)(nil), // 37: server_api_params.RequestPagination + nil, // 38: server_api_params.MsgData.OptionsEntry +} +var file_sdk_ws_ws_proto_depIdxs = []int32{ + 3, // 0: server_api_params.FriendInfo.friendUser:type_name -> server_api_params.UserInfo + 2, // 1: server_api_params.BlackInfo.blackUserInfo:type_name -> server_api_params.PublicUserInfo + 2, // 2: server_api_params.GroupRequest.userInfo:type_name -> server_api_params.PublicUserInfo + 0, // 3: server_api_params.GroupRequest.groupInfo:type_name -> server_api_params.GroupInfo + 13, // 4: server_api_params.PullMessageBySeqListResp.list:type_name -> server_api_params.MsgData + 38, // 5: server_api_params.MsgData.options:type_name -> server_api_params.MsgData.OptionsEntry + 14, // 6: server_api_params.MsgData.offlinePushInfo:type_name -> server_api_params.OfflinePushInfo + 0, // 7: server_api_params.GroupCreatedTips.group:type_name -> server_api_params.GroupInfo + 1, // 8: server_api_params.GroupCreatedTips.opUser:type_name -> server_api_params.GroupMemberFullInfo + 1, // 9: server_api_params.GroupCreatedTips.memberList:type_name -> server_api_params.GroupMemberFullInfo + 1, // 10: server_api_params.GroupCreatedTips.groupOwnerUser:type_name -> server_api_params.GroupMemberFullInfo + 1, // 11: server_api_params.GroupInfoSetTips.opUser:type_name -> server_api_params.GroupMemberFullInfo + 0, // 12: server_api_params.GroupInfoSetTips.group:type_name -> server_api_params.GroupInfo + 0, // 13: server_api_params.JoinGroupApplicationTips.group:type_name -> server_api_params.GroupInfo + 2, // 14: server_api_params.JoinGroupApplicationTips.applicant:type_name -> server_api_params.PublicUserInfo + 0, // 15: server_api_params.MemberQuitTips.group:type_name -> server_api_params.GroupInfo + 1, // 16: server_api_params.MemberQuitTips.quitUser:type_name -> server_api_params.GroupMemberFullInfo + 0, // 17: server_api_params.GroupApplicationAcceptedTips.group:type_name -> server_api_params.GroupInfo + 1, // 18: server_api_params.GroupApplicationAcceptedTips.opUser:type_name -> server_api_params.GroupMemberFullInfo + 0, // 19: server_api_params.GroupApplicationRejectedTips.group:type_name -> server_api_params.GroupInfo + 1, // 20: server_api_params.GroupApplicationRejectedTips.opUser:type_name -> server_api_params.GroupMemberFullInfo + 0, // 21: server_api_params.GroupOwnerTransferredTips.group:type_name -> server_api_params.GroupInfo + 1, // 22: server_api_params.GroupOwnerTransferredTips.opUser:type_name -> server_api_params.GroupMemberFullInfo + 1, // 23: server_api_params.GroupOwnerTransferredTips.newGroupOwner:type_name -> server_api_params.GroupMemberFullInfo + 0, // 24: server_api_params.MemberKickedTips.group:type_name -> server_api_params.GroupInfo + 1, // 25: server_api_params.MemberKickedTips.opUser:type_name -> server_api_params.GroupMemberFullInfo + 1, // 26: server_api_params.MemberKickedTips.kickedUserList:type_name -> server_api_params.GroupMemberFullInfo + 0, // 27: server_api_params.MemberInvitedTips.group:type_name -> server_api_params.GroupInfo + 1, // 28: server_api_params.MemberInvitedTips.opUser:type_name -> server_api_params.GroupMemberFullInfo + 1, // 29: server_api_params.MemberInvitedTips.invitedUserList:type_name -> server_api_params.GroupMemberFullInfo + 0, // 30: server_api_params.MemberEnterTips.group:type_name -> server_api_params.GroupInfo + 1, // 31: server_api_params.MemberEnterTips.entrantUser:type_name -> server_api_params.GroupMemberFullInfo + 27, // 32: server_api_params.FriendApplicationTips.fromToUserID:type_name -> server_api_params.FromToUserID + 27, // 33: server_api_params.FriendApplicationApprovedTips.fromToUserID:type_name -> server_api_params.FromToUserID + 27, // 34: server_api_params.FriendApplicationRejectedTips.fromToUserID:type_name -> server_api_params.FromToUserID + 4, // 35: server_api_params.FriendAddedTips.friend:type_name -> server_api_params.FriendInfo + 2, // 36: server_api_params.FriendAddedTips.opUser:type_name -> server_api_params.PublicUserInfo + 27, // 37: server_api_params.FriendDeletedTips.fromToUserID:type_name -> server_api_params.FromToUserID + 27, // 38: server_api_params.BlackAddedTips.fromToUserID:type_name -> server_api_params.FromToUserID + 27, // 39: server_api_params.BlackDeletedTips.fromToUserID:type_name -> server_api_params.FromToUserID + 27, // 40: server_api_params.FriendInfoChangedTips.fromToUserID:type_name -> server_api_params.FromToUserID + 41, // [41:41] is the sub-list for method output_type + 41, // [41:41] is the sub-list for method input_type + 41, // [41:41] is the sub-list for extension type_name + 41, // [41:41] is the sub-list for extension extendee + 0, // [0:41] is the sub-list for field type_name +} + +func init() { file_sdk_ws_ws_proto_init() } +func file_sdk_ws_ws_proto_init() { + if File_sdk_ws_ws_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_sdk_ws_ws_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GroupInfo); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_sdk_ws_ws_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GroupMemberFullInfo); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_sdk_ws_ws_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PublicUserInfo); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_sdk_ws_ws_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UserInfo); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_sdk_ws_ws_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*FriendInfo); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_sdk_ws_ws_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*BlackInfo); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_sdk_ws_ws_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GroupRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_sdk_ws_ws_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*FriendRequest); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_sdk_ws_ws_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PullMessageBySeqListResp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_sdk_ws_ws_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*PullMessageBySeqListReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_sdk_ws_ws_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetMaxAndMinSeqReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_sdk_ws_ws_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetMaxAndMinSeqResp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_sdk_ws_ws_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UserSendMsgResp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_sdk_ws_ws_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*MsgData); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_sdk_ws_ws_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*OfflinePushInfo); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_sdk_ws_ws_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*TipsComm); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_sdk_ws_ws_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GroupCreatedTips); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_sdk_ws_ws_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GroupInfoSetTips); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_sdk_ws_ws_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*JoinGroupApplicationTips); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_sdk_ws_ws_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*MemberQuitTips); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_sdk_ws_ws_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GroupApplicationAcceptedTips); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_sdk_ws_ws_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GroupApplicationRejectedTips); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_sdk_ws_ws_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GroupOwnerTransferredTips); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_sdk_ws_ws_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*MemberKickedTips); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_sdk_ws_ws_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*MemberInvitedTips); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_sdk_ws_ws_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*MemberEnterTips); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_sdk_ws_ws_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*FriendApplication); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_sdk_ws_ws_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*FromToUserID); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_sdk_ws_ws_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*FriendApplicationTips); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_sdk_ws_ws_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*FriendApplicationApprovedTips); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_sdk_ws_ws_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*FriendApplicationRejectedTips); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_sdk_ws_ws_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*FriendAddedTips); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_sdk_ws_ws_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*FriendDeletedTips); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_sdk_ws_ws_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*BlackAddedTips); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_sdk_ws_ws_proto_msgTypes[34].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*BlackDeletedTips); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_sdk_ws_ws_proto_msgTypes[35].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*FriendInfoChangedTips); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_sdk_ws_ws_proto_msgTypes[36].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UserInfoUpdatedTips); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_sdk_ws_ws_proto_msgTypes[37].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*RequestPagination); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_sdk_ws_ws_proto_rawDesc, + NumEnums: 0, + NumMessages: 39, + NumExtensions: 0, + NumServices: 0, + }, + GoTypes: file_sdk_ws_ws_proto_goTypes, + DependencyIndexes: file_sdk_ws_ws_proto_depIdxs, + MessageInfos: file_sdk_ws_ws_proto_msgTypes, + }.Build() + File_sdk_ws_ws_proto = out.File + file_sdk_ws_ws_proto_rawDesc = nil + file_sdk_ws_ws_proto_goTypes = nil + file_sdk_ws_ws_proto_depIdxs = nil } diff --git a/pkg/proto/sdk_ws/ws.proto b/pkg/proto/sdk_ws/ws.proto index a3f018db3..4d1a646b3 100644 --- a/pkg/proto/sdk_ws/ws.proto +++ b/pkg/proto/sdk_ws/ws.proto @@ -1,4 +1,5 @@ syntax = "proto3"; +option go_package = "./sdk_ws;server_api_params"; package server_api_params;//The package name to which the proto file belongs //option go_package = "./sdk_ws;open_im_sdk";//The generated go pb file is in the current directory, and the package name is open_im_sdk @@ -330,3 +331,9 @@ message FriendInfoChangedTips{ message UserInfoUpdatedTips{ string userID = 1; } + +///cms +message RequestPagination { + int32 pageNumber = 1; + int32 showNumber = 2; +} \ No newline at end of file diff --git a/pkg/proto/user/user.pb.go b/pkg/proto/user/user.pb.go index c9f85d568..b5b51762d 100644 --- a/pkg/proto/user/user.pb.go +++ b/pkg/proto/user/user.pb.go @@ -1,1007 +1,2884 @@ // Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.26.0 +// protoc v3.19.3 // source: user/user.proto -package user // import "./user" - -import proto "github.com/golang/protobuf/proto" -import fmt "fmt" -import math "math" -import sdk_ws "Open_IM/pkg/proto/sdk_ws" +package user import ( - context "golang.org/x/net/context" + sdk_ws "Open_IM/pkg/proto/sdk_ws" + context "context" grpc "google.golang.org/grpc" + codes "google.golang.org/grpc/codes" + status "google.golang.org/grpc/status" + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + reflect "reflect" + sync "sync" ) -// 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 +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) 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:"-"` -} + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields -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_user_9cd4aaf870b6d3b5, []int{0} -} -func (m *CommonResp) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_CommonResp.Unmarshal(m, b) + ErrCode int32 `protobuf:"varint,1,opt,name=errCode,proto3" json:"errCode,omitempty"` + ErrMsg string `protobuf:"bytes,2,opt,name=errMsg,proto3" json:"errMsg,omitempty"` } -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 (x *CommonResp) Reset() { + *x = CommonResp{} + if protoimpl.UnsafeEnabled { + mi := &file_user_user_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *CommonResp) XXX_Size() int { - return xxx_messageInfo_CommonResp.Size(m) + +func (x *CommonResp) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *CommonResp) XXX_DiscardUnknown() { - xxx_messageInfo_CommonResp.DiscardUnknown(m) + +func (*CommonResp) ProtoMessage() {} + +func (x *CommonResp) ProtoReflect() protoreflect.Message { + mi := &file_user_user_proto_msgTypes[0] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) } -var xxx_messageInfo_CommonResp proto.InternalMessageInfo +// Deprecated: Use CommonResp.ProtoReflect.Descriptor instead. +func (*CommonResp) Descriptor() ([]byte, []int) { + return file_user_user_proto_rawDescGZIP(), []int{0} +} -func (m *CommonResp) GetErrCode() int32 { - if m != nil { - return m.ErrCode +func (x *CommonResp) GetErrCode() int32 { + if x != nil { + return x.ErrCode } return 0 } -func (m *CommonResp) GetErrMsg() string { - if m != nil { - return m.ErrMsg +func (x *CommonResp) GetErrMsg() string { + if x != nil { + return x.ErrMsg } return "" } type DeleteUsersReq struct { - DeleteUserIDList []string `protobuf:"bytes,2,rep,name=DeleteUserIDList" json:"DeleteUserIDList,omitempty"` - OpUserID string `protobuf:"bytes,3,opt,name=OpUserID" json:"OpUserID,omitempty"` - OperationID string `protobuf:"bytes,4,opt,name=OperationID" json:"OperationID,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + DeleteUserIDList []string `protobuf:"bytes,2,rep,name=DeleteUserIDList,proto3" json:"DeleteUserIDList,omitempty"` + OpUserID string `protobuf:"bytes,3,opt,name=OpUserID,proto3" json:"OpUserID,omitempty"` + OperationID string `protobuf:"bytes,4,opt,name=OperationID,proto3" json:"OperationID,omitempty"` +} + +func (x *DeleteUsersReq) Reset() { + *x = DeleteUsersReq{} + if protoimpl.UnsafeEnabled { + mi := &file_user_user_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DeleteUsersReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DeleteUsersReq) ProtoMessage() {} + +func (x *DeleteUsersReq) ProtoReflect() protoreflect.Message { + mi := &file_user_user_proto_msgTypes[1] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) } -func (m *DeleteUsersReq) Reset() { *m = DeleteUsersReq{} } -func (m *DeleteUsersReq) String() string { return proto.CompactTextString(m) } -func (*DeleteUsersReq) ProtoMessage() {} +// Deprecated: Use DeleteUsersReq.ProtoReflect.Descriptor instead. func (*DeleteUsersReq) Descriptor() ([]byte, []int) { - return fileDescriptor_user_9cd4aaf870b6d3b5, []int{1} + return file_user_user_proto_rawDescGZIP(), []int{1} } -func (m *DeleteUsersReq) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_DeleteUsersReq.Unmarshal(m, b) + +func (x *DeleteUsersReq) GetDeleteUserIDList() []string { + if x != nil { + return x.DeleteUserIDList + } + return nil } -func (m *DeleteUsersReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_DeleteUsersReq.Marshal(b, m, deterministic) + +func (x *DeleteUsersReq) GetOpUserID() string { + if x != nil { + return x.OpUserID + } + return "" +} + +func (x *DeleteUsersReq) GetOperationID() string { + if x != nil { + return x.OperationID + } + return "" } -func (dst *DeleteUsersReq) XXX_Merge(src proto.Message) { - xxx_messageInfo_DeleteUsersReq.Merge(dst, src) + +type DeleteUsersResp struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + CommonResp *CommonResp `protobuf:"bytes,1,opt,name=CommonResp,proto3" json:"CommonResp,omitempty"` + FailedUserIDList []string `protobuf:"bytes,2,rep,name=FailedUserIDList,proto3" json:"FailedUserIDList,omitempty"` } -func (m *DeleteUsersReq) XXX_Size() int { - return xxx_messageInfo_DeleteUsersReq.Size(m) + +func (x *DeleteUsersResp) Reset() { + *x = DeleteUsersResp{} + if protoimpl.UnsafeEnabled { + mi := &file_user_user_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *DeleteUsersReq) XXX_DiscardUnknown() { - xxx_messageInfo_DeleteUsersReq.DiscardUnknown(m) + +func (x *DeleteUsersResp) String() string { + return protoimpl.X.MessageStringOf(x) } -var xxx_messageInfo_DeleteUsersReq proto.InternalMessageInfo +func (*DeleteUsersResp) ProtoMessage() {} -func (m *DeleteUsersReq) GetDeleteUserIDList() []string { - if m != nil { - return m.DeleteUserIDList +func (x *DeleteUsersResp) ProtoReflect() protoreflect.Message { + mi := &file_user_user_proto_msgTypes[2] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use DeleteUsersResp.ProtoReflect.Descriptor instead. +func (*DeleteUsersResp) Descriptor() ([]byte, []int) { + return file_user_user_proto_rawDescGZIP(), []int{2} +} + +func (x *DeleteUsersResp) GetCommonResp() *CommonResp { + if x != nil { + return x.CommonResp + } + return nil +} + +func (x *DeleteUsersResp) GetFailedUserIDList() []string { + if x != nil { + return x.FailedUserIDList } return nil } -func (m *DeleteUsersReq) GetOpUserID() string { - if m != nil { - return m.OpUserID +type GetAllUserIDReq struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + OpUserID string `protobuf:"bytes,1,opt,name=opUserID,proto3" json:"opUserID,omitempty"` + OperationID string `protobuf:"bytes,2,opt,name=operationID,proto3" json:"operationID,omitempty"` +} + +func (x *GetAllUserIDReq) Reset() { + *x = GetAllUserIDReq{} + if protoimpl.UnsafeEnabled { + mi := &file_user_user_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetAllUserIDReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetAllUserIDReq) ProtoMessage() {} + +func (x *GetAllUserIDReq) ProtoReflect() protoreflect.Message { + mi := &file_user_user_proto_msgTypes[3] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetAllUserIDReq.ProtoReflect.Descriptor instead. +func (*GetAllUserIDReq) Descriptor() ([]byte, []int) { + return file_user_user_proto_rawDescGZIP(), []int{3} +} + +func (x *GetAllUserIDReq) GetOpUserID() string { + if x != nil { + return x.OpUserID } return "" } -func (m *DeleteUsersReq) GetOperationID() string { - if m != nil { - return m.OperationID +func (x *GetAllUserIDReq) GetOperationID() string { + if x != nil { + return x.OperationID } return "" } -type DeleteUsersResp struct { - CommonResp *CommonResp `protobuf:"bytes,1,opt,name=CommonResp" json:"CommonResp,omitempty"` - FailedUserIDList []string `protobuf:"bytes,2,rep,name=FailedUserIDList" json:"FailedUserIDList,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` +type GetAllUserIDResp struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + CommonResp *CommonResp `protobuf:"bytes,1,opt,name=CommonResp,proto3" json:"CommonResp,omitempty"` + UserIDList []string `protobuf:"bytes,2,rep,name=UserIDList,proto3" json:"UserIDList,omitempty"` } -func (m *DeleteUsersResp) Reset() { *m = DeleteUsersResp{} } -func (m *DeleteUsersResp) String() string { return proto.CompactTextString(m) } -func (*DeleteUsersResp) ProtoMessage() {} -func (*DeleteUsersResp) Descriptor() ([]byte, []int) { - return fileDescriptor_user_9cd4aaf870b6d3b5, []int{2} +func (x *GetAllUserIDResp) Reset() { + *x = GetAllUserIDResp{} + if protoimpl.UnsafeEnabled { + mi := &file_user_user_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *DeleteUsersResp) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_DeleteUsersResp.Unmarshal(m, b) + +func (x *GetAllUserIDResp) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *DeleteUsersResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_DeleteUsersResp.Marshal(b, m, deterministic) + +func (*GetAllUserIDResp) ProtoMessage() {} + +func (x *GetAllUserIDResp) ProtoReflect() protoreflect.Message { + mi := &file_user_user_proto_msgTypes[4] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) } -func (dst *DeleteUsersResp) XXX_Merge(src proto.Message) { - xxx_messageInfo_DeleteUsersResp.Merge(dst, src) + +// Deprecated: Use GetAllUserIDResp.ProtoReflect.Descriptor instead. +func (*GetAllUserIDResp) Descriptor() ([]byte, []int) { + return file_user_user_proto_rawDescGZIP(), []int{4} } -func (m *DeleteUsersResp) XXX_Size() int { - return xxx_messageInfo_DeleteUsersResp.Size(m) + +func (x *GetAllUserIDResp) GetCommonResp() *CommonResp { + if x != nil { + return x.CommonResp + } + return nil } -func (m *DeleteUsersResp) XXX_DiscardUnknown() { - xxx_messageInfo_DeleteUsersResp.DiscardUnknown(m) + +func (x *GetAllUserIDResp) GetUserIDList() []string { + if x != nil { + return x.UserIDList + } + return nil } -var xxx_messageInfo_DeleteUsersResp proto.InternalMessageInfo +type AccountCheckReq struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields -func (m *DeleteUsersResp) GetCommonResp() *CommonResp { - if m != nil { - return m.CommonResp + CheckUserIDList []string `protobuf:"bytes,1,rep,name=CheckUserIDList,proto3" json:"CheckUserIDList,omitempty"` + OpUserID string `protobuf:"bytes,2,opt,name=OpUserID,proto3" json:"OpUserID,omitempty"` + OperationID string `protobuf:"bytes,3,opt,name=OperationID,proto3" json:"OperationID,omitempty"` +} + +func (x *AccountCheckReq) Reset() { + *x = AccountCheckReq{} + if protoimpl.UnsafeEnabled { + mi := &file_user_user_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } - return nil } -func (m *DeleteUsersResp) GetFailedUserIDList() []string { - if m != nil { - return m.FailedUserIDList +func (x *AccountCheckReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AccountCheckReq) ProtoMessage() {} + +func (x *AccountCheckReq) ProtoReflect() protoreflect.Message { + mi := &file_user_user_proto_msgTypes[5] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use AccountCheckReq.ProtoReflect.Descriptor instead. +func (*AccountCheckReq) Descriptor() ([]byte, []int) { + return file_user_user_proto_rawDescGZIP(), []int{5} +} + +func (x *AccountCheckReq) GetCheckUserIDList() []string { + if x != nil { + return x.CheckUserIDList } return nil } -type GetAllUserIDReq struct { - OpUserID string `protobuf:"bytes,1,opt,name=opUserID" json:"opUserID,omitempty"` - OperationID string `protobuf:"bytes,2,opt,name=operationID" json:"operationID,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` +func (x *AccountCheckReq) GetOpUserID() string { + if x != nil { + return x.OpUserID + } + return "" } -func (m *GetAllUserIDReq) Reset() { *m = GetAllUserIDReq{} } -func (m *GetAllUserIDReq) String() string { return proto.CompactTextString(m) } -func (*GetAllUserIDReq) ProtoMessage() {} -func (*GetAllUserIDReq) Descriptor() ([]byte, []int) { - return fileDescriptor_user_9cd4aaf870b6d3b5, []int{3} +func (x *AccountCheckReq) GetOperationID() string { + if x != nil { + return x.OperationID + } + return "" +} + +type AccountCheckResp struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + CommonResp *CommonResp `protobuf:"bytes,1,opt,name=commonResp,proto3" json:"commonResp,omitempty"` + ResultList []*AccountCheckResp_SingleUserStatus `protobuf:"bytes,2,rep,name=ResultList,proto3" json:"ResultList,omitempty"` +} + +func (x *AccountCheckResp) Reset() { + *x = AccountCheckResp{} + if protoimpl.UnsafeEnabled { + mi := &file_user_user_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AccountCheckResp) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AccountCheckResp) ProtoMessage() {} + +func (x *AccountCheckResp) ProtoReflect() protoreflect.Message { + mi := &file_user_user_proto_msgTypes[6] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use AccountCheckResp.ProtoReflect.Descriptor instead. +func (*AccountCheckResp) Descriptor() ([]byte, []int) { + return file_user_user_proto_rawDescGZIP(), []int{6} +} + +func (x *AccountCheckResp) GetCommonResp() *CommonResp { + if x != nil { + return x.CommonResp + } + return nil } -func (m *GetAllUserIDReq) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_GetAllUserIDReq.Unmarshal(m, b) + +func (x *AccountCheckResp) GetResultList() []*AccountCheckResp_SingleUserStatus { + if x != nil { + return x.ResultList + } + return nil +} + +type GetUserInfoReq struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + UserIDList []string `protobuf:"bytes,1,rep,name=userIDList,proto3" json:"userIDList,omitempty"` + OpUserID string `protobuf:"bytes,2,opt,name=OpUserID,proto3" json:"OpUserID,omitempty"` + OperationID string `protobuf:"bytes,3,opt,name=OperationID,proto3" json:"OperationID,omitempty"` } -func (m *GetAllUserIDReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_GetAllUserIDReq.Marshal(b, m, deterministic) + +func (x *GetUserInfoReq) Reset() { + *x = GetUserInfoReq{} + if protoimpl.UnsafeEnabled { + mi := &file_user_user_proto_msgTypes[7] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (dst *GetAllUserIDReq) XXX_Merge(src proto.Message) { - xxx_messageInfo_GetAllUserIDReq.Merge(dst, src) + +func (x *GetUserInfoReq) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *GetAllUserIDReq) XXX_Size() int { - return xxx_messageInfo_GetAllUserIDReq.Size(m) + +func (*GetUserInfoReq) ProtoMessage() {} + +func (x *GetUserInfoReq) ProtoReflect() protoreflect.Message { + mi := &file_user_user_proto_msgTypes[7] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) } -func (m *GetAllUserIDReq) XXX_DiscardUnknown() { - xxx_messageInfo_GetAllUserIDReq.DiscardUnknown(m) + +// Deprecated: Use GetUserInfoReq.ProtoReflect.Descriptor instead. +func (*GetUserInfoReq) Descriptor() ([]byte, []int) { + return file_user_user_proto_rawDescGZIP(), []int{7} } -var xxx_messageInfo_GetAllUserIDReq proto.InternalMessageInfo +func (x *GetUserInfoReq) GetUserIDList() []string { + if x != nil { + return x.UserIDList + } + return nil +} -func (m *GetAllUserIDReq) GetOpUserID() string { - if m != nil { - return m.OpUserID +func (x *GetUserInfoReq) GetOpUserID() string { + if x != nil { + return x.OpUserID } return "" } -func (m *GetAllUserIDReq) GetOperationID() string { - if m != nil { - return m.OperationID +func (x *GetUserInfoReq) GetOperationID() string { + if x != nil { + return x.OperationID } return "" } -type GetAllUserIDResp struct { - CommonResp *CommonResp `protobuf:"bytes,1,opt,name=CommonResp" json:"CommonResp,omitempty"` - UserIDList []string `protobuf:"bytes,2,rep,name=UserIDList" json:"UserIDList,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` +type GetUserInfoResp struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + CommonResp *CommonResp `protobuf:"bytes,1,opt,name=commonResp,proto3" json:"commonResp,omitempty"` + UserInfoList []*sdk_ws.UserInfo `protobuf:"bytes,3,rep,name=UserInfoList,proto3" json:"UserInfoList,omitempty"` } -func (m *GetAllUserIDResp) Reset() { *m = GetAllUserIDResp{} } -func (m *GetAllUserIDResp) String() string { return proto.CompactTextString(m) } -func (*GetAllUserIDResp) ProtoMessage() {} -func (*GetAllUserIDResp) Descriptor() ([]byte, []int) { - return fileDescriptor_user_9cd4aaf870b6d3b5, []int{4} +func (x *GetUserInfoResp) Reset() { + *x = GetUserInfoResp{} + if protoimpl.UnsafeEnabled { + mi := &file_user_user_proto_msgTypes[8] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *GetAllUserIDResp) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_GetAllUserIDResp.Unmarshal(m, b) + +func (x *GetUserInfoResp) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *GetAllUserIDResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_GetAllUserIDResp.Marshal(b, m, deterministic) + +func (*GetUserInfoResp) ProtoMessage() {} + +func (x *GetUserInfoResp) ProtoReflect() protoreflect.Message { + mi := &file_user_user_proto_msgTypes[8] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) } -func (dst *GetAllUserIDResp) XXX_Merge(src proto.Message) { - xxx_messageInfo_GetAllUserIDResp.Merge(dst, src) + +// Deprecated: Use GetUserInfoResp.ProtoReflect.Descriptor instead. +func (*GetUserInfoResp) Descriptor() ([]byte, []int) { + return file_user_user_proto_rawDescGZIP(), []int{8} } -func (m *GetAllUserIDResp) XXX_Size() int { - return xxx_messageInfo_GetAllUserIDResp.Size(m) + +func (x *GetUserInfoResp) GetCommonResp() *CommonResp { + if x != nil { + return x.CommonResp + } + return nil } -func (m *GetAllUserIDResp) XXX_DiscardUnknown() { - xxx_messageInfo_GetAllUserIDResp.DiscardUnknown(m) + +func (x *GetUserInfoResp) GetUserInfoList() []*sdk_ws.UserInfo { + if x != nil { + return x.UserInfoList + } + return nil } -var xxx_messageInfo_GetAllUserIDResp proto.InternalMessageInfo +type UpdateUserInfoReq struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + UserInfo *sdk_ws.UserInfo `protobuf:"bytes,1,opt,name=UserInfo,proto3" json:"UserInfo,omitempty"` + OpUserID string `protobuf:"bytes,2,opt,name=OpUserID,proto3" json:"OpUserID,omitempty"` + OperationID string `protobuf:"bytes,3,opt,name=operationID,proto3" json:"operationID,omitempty"` +} -func (m *GetAllUserIDResp) GetCommonResp() *CommonResp { - if m != nil { - return m.CommonResp +func (x *UpdateUserInfoReq) Reset() { + *x = UpdateUserInfoReq{} + if protoimpl.UnsafeEnabled { + mi := &file_user_user_proto_msgTypes[9] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } - return nil } -func (m *GetAllUserIDResp) GetUserIDList() []string { - if m != nil { - return m.UserIDList +func (x *UpdateUserInfoReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UpdateUserInfoReq) ProtoMessage() {} + +func (x *UpdateUserInfoReq) ProtoReflect() protoreflect.Message { + mi := &file_user_user_proto_msgTypes[9] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use UpdateUserInfoReq.ProtoReflect.Descriptor instead. +func (*UpdateUserInfoReq) Descriptor() ([]byte, []int) { + return file_user_user_proto_rawDescGZIP(), []int{9} +} + +func (x *UpdateUserInfoReq) GetUserInfo() *sdk_ws.UserInfo { + if x != nil { + return x.UserInfo } return nil } -type AccountCheckReq struct { - CheckUserIDList []string `protobuf:"bytes,1,rep,name=CheckUserIDList" json:"CheckUserIDList,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 (x *UpdateUserInfoReq) GetOpUserID() string { + if x != nil { + return x.OpUserID + } + return "" } -func (m *AccountCheckReq) Reset() { *m = AccountCheckReq{} } -func (m *AccountCheckReq) String() string { return proto.CompactTextString(m) } -func (*AccountCheckReq) ProtoMessage() {} -func (*AccountCheckReq) Descriptor() ([]byte, []int) { - return fileDescriptor_user_9cd4aaf870b6d3b5, []int{5} +func (x *UpdateUserInfoReq) GetOperationID() string { + if x != nil { + return x.OperationID + } + return "" } -func (m *AccountCheckReq) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_AccountCheckReq.Unmarshal(m, b) + +type UpdateUserInfoResp struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + CommonResp *CommonResp `protobuf:"bytes,1,opt,name=commonResp,proto3" json:"commonResp,omitempty"` } -func (m *AccountCheckReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_AccountCheckReq.Marshal(b, m, deterministic) + +func (x *UpdateUserInfoResp) Reset() { + *x = UpdateUserInfoResp{} + if protoimpl.UnsafeEnabled { + mi := &file_user_user_proto_msgTypes[10] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (dst *AccountCheckReq) XXX_Merge(src proto.Message) { - xxx_messageInfo_AccountCheckReq.Merge(dst, src) + +func (x *UpdateUserInfoResp) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *AccountCheckReq) XXX_Size() int { - return xxx_messageInfo_AccountCheckReq.Size(m) + +func (*UpdateUserInfoResp) ProtoMessage() {} + +func (x *UpdateUserInfoResp) ProtoReflect() protoreflect.Message { + mi := &file_user_user_proto_msgTypes[10] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) } -func (m *AccountCheckReq) XXX_DiscardUnknown() { - xxx_messageInfo_AccountCheckReq.DiscardUnknown(m) + +// Deprecated: Use UpdateUserInfoResp.ProtoReflect.Descriptor instead. +func (*UpdateUserInfoResp) Descriptor() ([]byte, []int) { + return file_user_user_proto_rawDescGZIP(), []int{10} +} + +func (x *UpdateUserInfoResp) GetCommonResp() *CommonResp { + if x != nil { + return x.CommonResp + } + return nil +} + +type SetReceiveMessageOptReq struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + FromUserID string `protobuf:"bytes,1,opt,name=FromUserID,proto3" json:"FromUserID,omitempty"` + Opt int32 `protobuf:"varint,2,opt,name=opt,proto3" json:"opt,omitempty"` + ConversationIDList []string `protobuf:"bytes,3,rep,name=conversationIDList,proto3" json:"conversationIDList,omitempty"` + OperationID string `protobuf:"bytes,4,opt,name=operationID,proto3" json:"operationID,omitempty"` + OpUserID string `protobuf:"bytes,5,opt,name=OpUserID,proto3" json:"OpUserID,omitempty"` +} + +func (x *SetReceiveMessageOptReq) Reset() { + *x = SetReceiveMessageOptReq{} + if protoimpl.UnsafeEnabled { + mi := &file_user_user_proto_msgTypes[11] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SetReceiveMessageOptReq) String() string { + return protoimpl.X.MessageStringOf(x) } -var xxx_messageInfo_AccountCheckReq proto.InternalMessageInfo +func (*SetReceiveMessageOptReq) ProtoMessage() {} -func (m *AccountCheckReq) GetCheckUserIDList() []string { - if m != nil { - return m.CheckUserIDList +func (x *SetReceiveMessageOptReq) ProtoReflect() protoreflect.Message { + mi := &file_user_user_proto_msgTypes[11] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use SetReceiveMessageOptReq.ProtoReflect.Descriptor instead. +func (*SetReceiveMessageOptReq) Descriptor() ([]byte, []int) { + return file_user_user_proto_rawDescGZIP(), []int{11} +} + +func (x *SetReceiveMessageOptReq) GetFromUserID() string { + if x != nil { + return x.FromUserID + } + return "" +} + +func (x *SetReceiveMessageOptReq) GetOpt() int32 { + if x != nil { + return x.Opt + } + return 0 +} + +func (x *SetReceiveMessageOptReq) GetConversationIDList() []string { + if x != nil { + return x.ConversationIDList } return nil } -func (m *AccountCheckReq) GetOpUserID() string { - if m != nil { - return m.OpUserID +func (x *SetReceiveMessageOptReq) GetOperationID() string { + if x != nil { + return x.OperationID } return "" } -func (m *AccountCheckReq) GetOperationID() string { - if m != nil { - return m.OperationID +func (x *SetReceiveMessageOptReq) GetOpUserID() string { + if x != nil { + return x.OpUserID } return "" } -type AccountCheckResp struct { - CommonResp *CommonResp `protobuf:"bytes,1,opt,name=commonResp" json:"commonResp,omitempty"` - ResultList []*AccountCheckResp_SingleUserStatus `protobuf:"bytes,2,rep,name=ResultList" json:"ResultList,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` +type OptResult struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ConversationID string `protobuf:"bytes,1,opt,name=conversationID,proto3" json:"conversationID,omitempty"` + Result int32 `protobuf:"varint,2,opt,name=result,proto3" json:"result,omitempty"` //-1: failed; 0:default; 1: not receive ; 2: not jpush } -func (m *AccountCheckResp) Reset() { *m = AccountCheckResp{} } -func (m *AccountCheckResp) String() string { return proto.CompactTextString(m) } -func (*AccountCheckResp) ProtoMessage() {} -func (*AccountCheckResp) Descriptor() ([]byte, []int) { - return fileDescriptor_user_9cd4aaf870b6d3b5, []int{6} +func (x *OptResult) Reset() { + *x = OptResult{} + if protoimpl.UnsafeEnabled { + mi := &file_user_user_proto_msgTypes[12] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *AccountCheckResp) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_AccountCheckResp.Unmarshal(m, b) + +func (x *OptResult) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *AccountCheckResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_AccountCheckResp.Marshal(b, m, deterministic) + +func (*OptResult) ProtoMessage() {} + +func (x *OptResult) ProtoReflect() protoreflect.Message { + mi := &file_user_user_proto_msgTypes[12] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) } -func (dst *AccountCheckResp) XXX_Merge(src proto.Message) { - xxx_messageInfo_AccountCheckResp.Merge(dst, src) + +// Deprecated: Use OptResult.ProtoReflect.Descriptor instead. +func (*OptResult) Descriptor() ([]byte, []int) { + return file_user_user_proto_rawDescGZIP(), []int{12} } -func (m *AccountCheckResp) XXX_Size() int { - return xxx_messageInfo_AccountCheckResp.Size(m) + +func (x *OptResult) GetConversationID() string { + if x != nil { + return x.ConversationID + } + return "" } -func (m *AccountCheckResp) XXX_DiscardUnknown() { - xxx_messageInfo_AccountCheckResp.DiscardUnknown(m) + +func (x *OptResult) GetResult() int32 { + if x != nil { + return x.Result + } + return 0 } -var xxx_messageInfo_AccountCheckResp proto.InternalMessageInfo +type SetReceiveMessageOptResp struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields -func (m *AccountCheckResp) GetCommonResp() *CommonResp { - if m != nil { - return m.CommonResp + CommonResp *CommonResp `protobuf:"bytes,1,opt,name=commonResp,proto3" json:"commonResp,omitempty"` + ConversationOptResultList []*OptResult `protobuf:"bytes,2,rep,name=conversationOptResultList,proto3" json:"conversationOptResultList,omitempty"` +} + +func (x *SetReceiveMessageOptResp) Reset() { + *x = SetReceiveMessageOptResp{} + if protoimpl.UnsafeEnabled { + mi := &file_user_user_proto_msgTypes[13] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } - return nil } -func (m *AccountCheckResp) GetResultList() []*AccountCheckResp_SingleUserStatus { - if m != nil { - return m.ResultList +func (x *SetReceiveMessageOptResp) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SetReceiveMessageOptResp) ProtoMessage() {} + +func (x *SetReceiveMessageOptResp) ProtoReflect() protoreflect.Message { + mi := &file_user_user_proto_msgTypes[13] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use SetReceiveMessageOptResp.ProtoReflect.Descriptor instead. +func (*SetReceiveMessageOptResp) Descriptor() ([]byte, []int) { + return file_user_user_proto_rawDescGZIP(), []int{13} +} + +func (x *SetReceiveMessageOptResp) GetCommonResp() *CommonResp { + if x != nil { + return x.CommonResp } return nil } -type AccountCheckResp_SingleUserStatus struct { - UserID string `protobuf:"bytes,1,opt,name=userID" json:"userID,omitempty"` - AccountStatus string `protobuf:"bytes,2,opt,name=accountStatus" json:"accountStatus,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` +func (x *SetReceiveMessageOptResp) GetConversationOptResultList() []*OptResult { + if x != nil { + return x.ConversationOptResultList + } + return nil } -func (m *AccountCheckResp_SingleUserStatus) Reset() { *m = AccountCheckResp_SingleUserStatus{} } -func (m *AccountCheckResp_SingleUserStatus) String() string { return proto.CompactTextString(m) } -func (*AccountCheckResp_SingleUserStatus) ProtoMessage() {} -func (*AccountCheckResp_SingleUserStatus) Descriptor() ([]byte, []int) { - return fileDescriptor_user_9cd4aaf870b6d3b5, []int{6, 0} +type GetReceiveMessageOptReq struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + FromUserID string `protobuf:"bytes,1,opt,name=FromUserID,proto3" json:"FromUserID,omitempty"` + ConversationIDList []string `protobuf:"bytes,2,rep,name=conversationIDList,proto3" json:"conversationIDList,omitempty"` + OperationID string `protobuf:"bytes,3,opt,name=operationID,proto3" json:"operationID,omitempty"` + OpUserID string `protobuf:"bytes,4,opt,name=OpUserID,proto3" json:"OpUserID,omitempty"` } -func (m *AccountCheckResp_SingleUserStatus) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_AccountCheckResp_SingleUserStatus.Unmarshal(m, b) + +func (x *GetReceiveMessageOptReq) Reset() { + *x = GetReceiveMessageOptReq{} + if protoimpl.UnsafeEnabled { + mi := &file_user_user_proto_msgTypes[14] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *AccountCheckResp_SingleUserStatus) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_AccountCheckResp_SingleUserStatus.Marshal(b, m, deterministic) + +func (x *GetReceiveMessageOptReq) String() string { + return protoimpl.X.MessageStringOf(x) } -func (dst *AccountCheckResp_SingleUserStatus) XXX_Merge(src proto.Message) { - xxx_messageInfo_AccountCheckResp_SingleUserStatus.Merge(dst, src) + +func (*GetReceiveMessageOptReq) ProtoMessage() {} + +func (x *GetReceiveMessageOptReq) ProtoReflect() protoreflect.Message { + mi := &file_user_user_proto_msgTypes[14] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) } -func (m *AccountCheckResp_SingleUserStatus) XXX_Size() int { - return xxx_messageInfo_AccountCheckResp_SingleUserStatus.Size(m) + +// Deprecated: Use GetReceiveMessageOptReq.ProtoReflect.Descriptor instead. +func (*GetReceiveMessageOptReq) Descriptor() ([]byte, []int) { + return file_user_user_proto_rawDescGZIP(), []int{14} } -func (m *AccountCheckResp_SingleUserStatus) XXX_DiscardUnknown() { - xxx_messageInfo_AccountCheckResp_SingleUserStatus.DiscardUnknown(m) + +func (x *GetReceiveMessageOptReq) GetFromUserID() string { + if x != nil { + return x.FromUserID + } + return "" } -var xxx_messageInfo_AccountCheckResp_SingleUserStatus proto.InternalMessageInfo +func (x *GetReceiveMessageOptReq) GetConversationIDList() []string { + if x != nil { + return x.ConversationIDList + } + return nil +} -func (m *AccountCheckResp_SingleUserStatus) GetUserID() string { - if m != nil { - return m.UserID +func (x *GetReceiveMessageOptReq) GetOperationID() string { + if x != nil { + return x.OperationID } return "" } -func (m *AccountCheckResp_SingleUserStatus) GetAccountStatus() string { - if m != nil { - return m.AccountStatus +func (x *GetReceiveMessageOptReq) GetOpUserID() string { + if x != nil { + return x.OpUserID } return "" } -type GetUserInfoReq struct { - UserIDList []string `protobuf:"bytes,1,rep,name=userIDList" json:"userIDList,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:"-"` +type GetReceiveMessageOptResp struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + CommonResp *CommonResp `protobuf:"bytes,1,opt,name=commonResp,proto3" json:"commonResp,omitempty"` + ConversationOptResultList []*OptResult `protobuf:"bytes,3,rep,name=conversationOptResultList,proto3" json:"conversationOptResultList,omitempty"` } -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_user_9cd4aaf870b6d3b5, []int{7} +func (x *GetReceiveMessageOptResp) Reset() { + *x = GetReceiveMessageOptResp{} + if protoimpl.UnsafeEnabled { + mi := &file_user_user_proto_msgTypes[15] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *GetUserInfoReq) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_GetUserInfoReq.Unmarshal(m, b) + +func (x *GetReceiveMessageOptResp) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *GetUserInfoReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_GetUserInfoReq.Marshal(b, m, deterministic) + +func (*GetReceiveMessageOptResp) ProtoMessage() {} + +func (x *GetReceiveMessageOptResp) ProtoReflect() protoreflect.Message { + mi := &file_user_user_proto_msgTypes[15] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) } -func (dst *GetUserInfoReq) XXX_Merge(src proto.Message) { - xxx_messageInfo_GetUserInfoReq.Merge(dst, src) + +// Deprecated: Use GetReceiveMessageOptResp.ProtoReflect.Descriptor instead. +func (*GetReceiveMessageOptResp) Descriptor() ([]byte, []int) { + return file_user_user_proto_rawDescGZIP(), []int{15} } -func (m *GetUserInfoReq) XXX_Size() int { - return xxx_messageInfo_GetUserInfoReq.Size(m) + +func (x *GetReceiveMessageOptResp) GetCommonResp() *CommonResp { + if x != nil { + return x.CommonResp + } + return nil } -func (m *GetUserInfoReq) XXX_DiscardUnknown() { - xxx_messageInfo_GetUserInfoReq.DiscardUnknown(m) + +func (x *GetReceiveMessageOptResp) GetConversationOptResultList() []*OptResult { + if x != nil { + return x.ConversationOptResultList + } + return nil } -var xxx_messageInfo_GetUserInfoReq proto.InternalMessageInfo +type GetAllConversationMsgOptReq struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + FromUserID string `protobuf:"bytes,1,opt,name=FromUserID,proto3" json:"FromUserID,omitempty"` + OperationID string `protobuf:"bytes,2,opt,name=operationID,proto3" json:"operationID,omitempty"` + OpUserID string `protobuf:"bytes,3,opt,name=OpUserID,proto3" json:"OpUserID,omitempty"` +} -func (m *GetUserInfoReq) GetUserIDList() []string { - if m != nil { - return m.UserIDList +func (x *GetAllConversationMsgOptReq) Reset() { + *x = GetAllConversationMsgOptReq{} + if protoimpl.UnsafeEnabled { + mi := &file_user_user_proto_msgTypes[16] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } - return nil } -func (m *GetUserInfoReq) GetOpUserID() string { - if m != nil { - return m.OpUserID +func (x *GetAllConversationMsgOptReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetAllConversationMsgOptReq) ProtoMessage() {} + +func (x *GetAllConversationMsgOptReq) ProtoReflect() protoreflect.Message { + mi := &file_user_user_proto_msgTypes[16] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms } - return "" + return mi.MessageOf(x) +} + +// Deprecated: Use GetAllConversationMsgOptReq.ProtoReflect.Descriptor instead. +func (*GetAllConversationMsgOptReq) Descriptor() ([]byte, []int) { + return file_user_user_proto_rawDescGZIP(), []int{16} } -func (m *GetUserInfoReq) GetOperationID() string { - if m != nil { - return m.OperationID +func (x *GetAllConversationMsgOptReq) GetFromUserID() string { + if x != nil { + return x.FromUserID } return "" } -type GetUserInfoResp struct { - CommonResp *CommonResp `protobuf:"bytes,1,opt,name=commonResp" json:"commonResp,omitempty"` - UserInfoList []*sdk_ws.UserInfo `protobuf:"bytes,3,rep,name=UserInfoList" json:"UserInfoList,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` +func (x *GetAllConversationMsgOptReq) GetOperationID() string { + if x != nil { + return x.OperationID + } + return "" } -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_user_9cd4aaf870b6d3b5, []int{8} -} -func (m *GetUserInfoResp) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_GetUserInfoResp.Unmarshal(m, b) +func (x *GetAllConversationMsgOptReq) GetOpUserID() string { + if x != nil { + return x.OpUserID + } + return "" } -func (m *GetUserInfoResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_GetUserInfoResp.Marshal(b, m, deterministic) + +type GetAllConversationMsgOptResp struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + CommonResp *CommonResp `protobuf:"bytes,1,opt,name=commonResp,proto3" json:"commonResp,omitempty"` + ConversationOptResultList []*OptResult `protobuf:"bytes,3,rep,name=conversationOptResultList,proto3" json:"conversationOptResultList,omitempty"` } -func (dst *GetUserInfoResp) XXX_Merge(src proto.Message) { - xxx_messageInfo_GetUserInfoResp.Merge(dst, src) + +func (x *GetAllConversationMsgOptResp) Reset() { + *x = GetAllConversationMsgOptResp{} + if protoimpl.UnsafeEnabled { + mi := &file_user_user_proto_msgTypes[17] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *GetUserInfoResp) XXX_Size() int { - return xxx_messageInfo_GetUserInfoResp.Size(m) + +func (x *GetAllConversationMsgOptResp) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *GetUserInfoResp) XXX_DiscardUnknown() { - xxx_messageInfo_GetUserInfoResp.DiscardUnknown(m) + +func (*GetAllConversationMsgOptResp) ProtoMessage() {} + +func (x *GetAllConversationMsgOptResp) ProtoReflect() protoreflect.Message { + mi := &file_user_user_proto_msgTypes[17] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) } -var xxx_messageInfo_GetUserInfoResp proto.InternalMessageInfo +// Deprecated: Use GetAllConversationMsgOptResp.ProtoReflect.Descriptor instead. +func (*GetAllConversationMsgOptResp) Descriptor() ([]byte, []int) { + return file_user_user_proto_rawDescGZIP(), []int{17} +} -func (m *GetUserInfoResp) GetCommonResp() *CommonResp { - if m != nil { - return m.CommonResp +func (x *GetAllConversationMsgOptResp) GetCommonResp() *CommonResp { + if x != nil { + return x.CommonResp } return nil } -func (m *GetUserInfoResp) GetUserInfoList() []*sdk_ws.UserInfo { - if m != nil { - return m.UserInfoList +func (x *GetAllConversationMsgOptResp) GetConversationOptResultList() []*OptResult { + if x != nil { + return x.ConversationOptResultList } return nil } -type UpdateUserInfoReq struct { - UserInfo *sdk_ws.UserInfo `protobuf:"bytes,1,opt,name=UserInfo" json:"UserInfo,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:"-"` +type ResignUserReq struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + UserId string `protobuf:"bytes,1,opt,name=UserId,proto3" json:"UserId,omitempty"` + OperationID string `protobuf:"bytes,2,opt,name=OperationID,proto3" json:"OperationID,omitempty"` } -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_user_9cd4aaf870b6d3b5, []int{9} +func (x *ResignUserReq) Reset() { + *x = ResignUserReq{} + if protoimpl.UnsafeEnabled { + mi := &file_user_user_proto_msgTypes[18] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *UpdateUserInfoReq) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_UpdateUserInfoReq.Unmarshal(m, b) + +func (x *ResignUserReq) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *UpdateUserInfoReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_UpdateUserInfoReq.Marshal(b, m, deterministic) + +func (*ResignUserReq) ProtoMessage() {} + +func (x *ResignUserReq) ProtoReflect() protoreflect.Message { + mi := &file_user_user_proto_msgTypes[18] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) } -func (dst *UpdateUserInfoReq) XXX_Merge(src proto.Message) { - xxx_messageInfo_UpdateUserInfoReq.Merge(dst, src) + +// Deprecated: Use ResignUserReq.ProtoReflect.Descriptor instead. +func (*ResignUserReq) Descriptor() ([]byte, []int) { + return file_user_user_proto_rawDescGZIP(), []int{18} } -func (m *UpdateUserInfoReq) XXX_Size() int { - return xxx_messageInfo_UpdateUserInfoReq.Size(m) + +func (x *ResignUserReq) GetUserId() string { + if x != nil { + return x.UserId + } + return "" } -func (m *UpdateUserInfoReq) XXX_DiscardUnknown() { - xxx_messageInfo_UpdateUserInfoReq.DiscardUnknown(m) + +func (x *ResignUserReq) GetOperationID() string { + if x != nil { + return x.OperationID + } + return "" } -var xxx_messageInfo_UpdateUserInfoReq proto.InternalMessageInfo +type ResignUserResp struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields -func (m *UpdateUserInfoReq) GetUserInfo() *sdk_ws.UserInfo { - if m != nil { - return m.UserInfo + CommonResp *CommonResp `protobuf:"bytes,1,opt,name=commonResp,proto3" json:"commonResp,omitempty"` +} + +func (x *ResignUserResp) Reset() { + *x = ResignUserResp{} + if protoimpl.UnsafeEnabled { + mi := &file_user_user_proto_msgTypes[19] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ResignUserResp) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ResignUserResp) ProtoMessage() {} + +func (x *ResignUserResp) ProtoReflect() protoreflect.Message { + mi := &file_user_user_proto_msgTypes[19] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ResignUserResp.ProtoReflect.Descriptor instead. +func (*ResignUserResp) Descriptor() ([]byte, []int) { + return file_user_user_proto_rawDescGZIP(), []int{19} +} + +func (x *ResignUserResp) GetCommonResp() *CommonResp { + if x != nil { + return x.CommonResp } return nil } -func (m *UpdateUserInfoReq) GetOpUserID() string { - if m != nil { - return m.OpUserID +type GetUserReq struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + UserId string `protobuf:"bytes,1,opt,name=UserId,proto3" json:"UserId,omitempty"` + OperationID string `protobuf:"bytes,2,opt,name=OperationID,proto3" json:"OperationID,omitempty"` +} + +func (x *GetUserReq) Reset() { + *x = GetUserReq{} + if protoimpl.UnsafeEnabled { + mi := &file_user_user_proto_msgTypes[20] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetUserReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetUserReq) ProtoMessage() {} + +func (x *GetUserReq) ProtoReflect() protoreflect.Message { + mi := &file_user_user_proto_msgTypes[20] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetUserReq.ProtoReflect.Descriptor instead. +func (*GetUserReq) Descriptor() ([]byte, []int) { + return file_user_user_proto_rawDescGZIP(), []int{20} +} + +func (x *GetUserReq) GetUserId() string { + if x != nil { + return x.UserId } return "" } -func (m *UpdateUserInfoReq) GetOperationID() string { - if m != nil { - return m.OperationID +func (x *GetUserReq) GetOperationID() string { + if x != nil { + return x.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:"-"` +type User struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ProfilePhoto string `protobuf:"bytes,1,opt,name=ProfilePhoto,proto3" json:"ProfilePhoto,omitempty"` + Nickname string `protobuf:"bytes,2,opt,name=Nickname,proto3" json:"Nickname,omitempty"` + UserID string `protobuf:"bytes,3,opt,name=UserID,proto3" json:"UserID,omitempty"` + CreateTime string `protobuf:"bytes,4,opt,name=CreateTime,proto3" json:"CreateTime,omitempty"` } -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_user_9cd4aaf870b6d3b5, []int{10} +func (x *User) Reset() { + *x = User{} + if protoimpl.UnsafeEnabled { + mi := &file_user_user_proto_msgTypes[21] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *UpdateUserInfoResp) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_UpdateUserInfoResp.Unmarshal(m, b) + +func (x *User) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *UpdateUserInfoResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_UpdateUserInfoResp.Marshal(b, m, deterministic) + +func (*User) ProtoMessage() {} + +func (x *User) ProtoReflect() protoreflect.Message { + mi := &file_user_user_proto_msgTypes[21] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) } -func (dst *UpdateUserInfoResp) XXX_Merge(src proto.Message) { - xxx_messageInfo_UpdateUserInfoResp.Merge(dst, src) + +// Deprecated: Use User.ProtoReflect.Descriptor instead. +func (*User) Descriptor() ([]byte, []int) { + return file_user_user_proto_rawDescGZIP(), []int{21} } -func (m *UpdateUserInfoResp) XXX_Size() int { - return xxx_messageInfo_UpdateUserInfoResp.Size(m) + +func (x *User) GetProfilePhoto() string { + if x != nil { + return x.ProfilePhoto + } + return "" } -func (m *UpdateUserInfoResp) XXX_DiscardUnknown() { - xxx_messageInfo_UpdateUserInfoResp.DiscardUnknown(m) + +func (x *User) GetNickname() string { + if x != nil { + return x.Nickname + } + return "" } -var xxx_messageInfo_UpdateUserInfoResp proto.InternalMessageInfo +func (x *User) GetUserID() string { + if x != nil { + return x.UserID + } + return "" +} -func (m *UpdateUserInfoResp) GetCommonResp() *CommonResp { - if m != nil { - return m.CommonResp +func (x *User) GetCreateTime() string { + if x != nil { + return x.CreateTime } - return nil + return "" } -type SetReceiveMessageOptReq struct { - FromUserID string `protobuf:"bytes,1,opt,name=FromUserID" json:"FromUserID,omitempty"` - Opt int32 `protobuf:"varint,2,opt,name=opt" json:"opt,omitempty"` - ConversationIDList []string `protobuf:"bytes,3,rep,name=conversationIDList" json:"conversationIDList,omitempty"` - OperationID string `protobuf:"bytes,4,opt,name=operationID" json:"operationID,omitempty"` - OpUserID string `protobuf:"bytes,5,opt,name=OpUserID" json:"OpUserID,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *SetReceiveMessageOptReq) Reset() { *m = SetReceiveMessageOptReq{} } -func (m *SetReceiveMessageOptReq) String() string { return proto.CompactTextString(m) } -func (*SetReceiveMessageOptReq) ProtoMessage() {} -func (*SetReceiveMessageOptReq) Descriptor() ([]byte, []int) { - return fileDescriptor_user_9cd4aaf870b6d3b5, []int{11} +type GetUserResp struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + User *User `protobuf:"bytes,1,opt,name=user,proto3" json:"user,omitempty"` +} + +func (x *GetUserResp) Reset() { + *x = GetUserResp{} + if protoimpl.UnsafeEnabled { + mi := &file_user_user_proto_msgTypes[22] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetUserResp) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *SetReceiveMessageOptReq) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_SetReceiveMessageOptReq.Unmarshal(m, b) + +func (*GetUserResp) ProtoMessage() {} + +func (x *GetUserResp) ProtoReflect() protoreflect.Message { + mi := &file_user_user_proto_msgTypes[22] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetUserResp.ProtoReflect.Descriptor instead. +func (*GetUserResp) Descriptor() ([]byte, []int) { + return file_user_user_proto_rawDescGZIP(), []int{22} +} + +func (x *GetUserResp) GetUser() *User { + if x != nil { + return x.User + } + return nil } -func (m *SetReceiveMessageOptReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_SetReceiveMessageOptReq.Marshal(b, m, deterministic) + +type AlterUserReq struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + UserId string `protobuf:"bytes,1,opt,name=UserId,proto3" json:"UserId,omitempty"` + OperationID string `protobuf:"bytes,2,opt,name=OperationID,proto3" json:"OperationID,omitempty"` } -func (dst *SetReceiveMessageOptReq) XXX_Merge(src proto.Message) { - xxx_messageInfo_SetReceiveMessageOptReq.Merge(dst, src) + +func (x *AlterUserReq) Reset() { + *x = AlterUserReq{} + if protoimpl.UnsafeEnabled { + mi := &file_user_user_proto_msgTypes[23] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *SetReceiveMessageOptReq) XXX_Size() int { - return xxx_messageInfo_SetReceiveMessageOptReq.Size(m) + +func (x *AlterUserReq) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *SetReceiveMessageOptReq) XXX_DiscardUnknown() { - xxx_messageInfo_SetReceiveMessageOptReq.DiscardUnknown(m) + +func (*AlterUserReq) ProtoMessage() {} + +func (x *AlterUserReq) ProtoReflect() protoreflect.Message { + mi := &file_user_user_proto_msgTypes[23] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) } -var xxx_messageInfo_SetReceiveMessageOptReq proto.InternalMessageInfo +// Deprecated: Use AlterUserReq.ProtoReflect.Descriptor instead. +func (*AlterUserReq) Descriptor() ([]byte, []int) { + return file_user_user_proto_rawDescGZIP(), []int{23} +} -func (m *SetReceiveMessageOptReq) GetFromUserID() string { - if m != nil { - return m.FromUserID +func (x *AlterUserReq) GetUserId() string { + if x != nil { + return x.UserId } return "" } -func (m *SetReceiveMessageOptReq) GetOpt() int32 { - if m != nil { - return m.Opt +func (x *AlterUserReq) GetOperationID() string { + if x != nil { + return x.OperationID } - return 0 + return "" } -func (m *SetReceiveMessageOptReq) GetConversationIDList() []string { - if m != nil { - return m.ConversationIDList +type AlterUserResp struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + CommonResp *CommonResp `protobuf:"bytes,1,opt,name=CommonResp,proto3" json:"CommonResp,omitempty"` +} + +func (x *AlterUserResp) Reset() { + *x = AlterUserResp{} + if protoimpl.UnsafeEnabled { + mi := &file_user_user_proto_msgTypes[24] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AlterUserResp) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AlterUserResp) ProtoMessage() {} + +func (x *AlterUserResp) ProtoReflect() protoreflect.Message { + mi := &file_user_user_proto_msgTypes[24] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use AlterUserResp.ProtoReflect.Descriptor instead. +func (*AlterUserResp) Descriptor() ([]byte, []int) { + return file_user_user_proto_rawDescGZIP(), []int{24} +} + +func (x *AlterUserResp) GetCommonResp() *CommonResp { + if x != nil { + return x.CommonResp } return nil } -func (m *SetReceiveMessageOptReq) GetOperationID() string { - if m != nil { - return m.OperationID +type GetUsersReq struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + OperationID string `protobuf:"bytes,1,opt,name=OperationID,proto3" json:"OperationID,omitempty"` + Pagination *sdk_ws.RequestPagination `protobuf:"bytes,2,opt,name=Pagination,proto3" json:"Pagination,omitempty"` +} + +func (x *GetUsersReq) Reset() { + *x = GetUsersReq{} + if protoimpl.UnsafeEnabled { + mi := &file_user_user_proto_msgTypes[25] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } - return "" } -func (m *SetReceiveMessageOptReq) GetOpUserID() string { - if m != nil { - return m.OpUserID +func (x *GetUsersReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetUsersReq) ProtoMessage() {} + +func (x *GetUsersReq) ProtoReflect() protoreflect.Message { + mi := &file_user_user_proto_msgTypes[25] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetUsersReq.ProtoReflect.Descriptor instead. +func (*GetUsersReq) Descriptor() ([]byte, []int) { + return file_user_user_proto_rawDescGZIP(), []int{25} +} + +func (x *GetUsersReq) GetOperationID() string { + if x != nil { + return x.OperationID } return "" } -type OptResult struct { - ConversationID string `protobuf:"bytes,1,opt,name=conversationID" json:"conversationID,omitempty"` - Result int32 `protobuf:"varint,2,opt,name=result" json:"result,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` +func (x *GetUsersReq) GetPagination() *sdk_ws.RequestPagination { + if x != nil { + return x.Pagination + } + return nil } -func (m *OptResult) Reset() { *m = OptResult{} } -func (m *OptResult) String() string { return proto.CompactTextString(m) } -func (*OptResult) ProtoMessage() {} -func (*OptResult) Descriptor() ([]byte, []int) { - return fileDescriptor_user_9cd4aaf870b6d3b5, []int{12} +type GetUsersResp struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + OperationID string `protobuf:"bytes,1,opt,name=OperationID,proto3" json:"OperationID,omitempty"` + User []*User `protobuf:"bytes,2,rep,name=user,proto3" json:"user,omitempty"` } -func (m *OptResult) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_OptResult.Unmarshal(m, b) + +func (x *GetUsersResp) Reset() { + *x = GetUsersResp{} + if protoimpl.UnsafeEnabled { + mi := &file_user_user_proto_msgTypes[26] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *OptResult) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_OptResult.Marshal(b, m, deterministic) + +func (x *GetUsersResp) String() string { + return protoimpl.X.MessageStringOf(x) } -func (dst *OptResult) XXX_Merge(src proto.Message) { - xxx_messageInfo_OptResult.Merge(dst, src) + +func (*GetUsersResp) ProtoMessage() {} + +func (x *GetUsersResp) ProtoReflect() protoreflect.Message { + mi := &file_user_user_proto_msgTypes[26] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetUsersResp.ProtoReflect.Descriptor instead. +func (*GetUsersResp) Descriptor() ([]byte, []int) { + return file_user_user_proto_rawDescGZIP(), []int{26} } -func (m *OptResult) XXX_Size() int { - return xxx_messageInfo_OptResult.Size(m) + +func (x *GetUsersResp) GetOperationID() string { + if x != nil { + return x.OperationID + } + return "" } -func (m *OptResult) XXX_DiscardUnknown() { - xxx_messageInfo_OptResult.DiscardUnknown(m) + +func (x *GetUsersResp) GetUser() []*User { + if x != nil { + return x.User + } + return nil } -var xxx_messageInfo_OptResult proto.InternalMessageInfo +type AddUserReq struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + OperationID string `protobuf:"bytes,1,opt,name=OperationID,proto3" json:"OperationID,omitempty"` +} -func (m *OptResult) GetConversationID() string { - if m != nil { - return m.ConversationID +func (x *AddUserReq) Reset() { + *x = AddUserReq{} + if protoimpl.UnsafeEnabled { + mi := &file_user_user_proto_msgTypes[27] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AddUserReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AddUserReq) ProtoMessage() {} + +func (x *AddUserReq) ProtoReflect() protoreflect.Message { + mi := &file_user_user_proto_msgTypes[27] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use AddUserReq.ProtoReflect.Descriptor instead. +func (*AddUserReq) Descriptor() ([]byte, []int) { + return file_user_user_proto_rawDescGZIP(), []int{27} +} + +func (x *AddUserReq) GetOperationID() string { + if x != nil { + return x.OperationID } return "" } -func (m *OptResult) GetResult() int32 { - if m != nil { - return m.Result +type AddUserResp struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *AddUserResp) Reset() { + *x = AddUserResp{} + if protoimpl.UnsafeEnabled { + mi := &file_user_user_proto_msgTypes[28] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } - return 0 } -type SetReceiveMessageOptResp struct { - CommonResp *CommonResp `protobuf:"bytes,1,opt,name=commonResp" json:"commonResp,omitempty"` - ConversationOptResultList []*OptResult `protobuf:"bytes,2,rep,name=conversationOptResultList" json:"conversationOptResultList,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` +func (x *AddUserResp) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *SetReceiveMessageOptResp) Reset() { *m = SetReceiveMessageOptResp{} } -func (m *SetReceiveMessageOptResp) String() string { return proto.CompactTextString(m) } -func (*SetReceiveMessageOptResp) ProtoMessage() {} -func (*SetReceiveMessageOptResp) Descriptor() ([]byte, []int) { - return fileDescriptor_user_9cd4aaf870b6d3b5, []int{13} +func (*AddUserResp) ProtoMessage() {} + +func (x *AddUserResp) ProtoReflect() protoreflect.Message { + mi := &file_user_user_proto_msgTypes[28] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use AddUserResp.ProtoReflect.Descriptor instead. +func (*AddUserResp) Descriptor() ([]byte, []int) { + return file_user_user_proto_rawDescGZIP(), []int{28} +} + +type BlockUserReq struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + UserID string `protobuf:"bytes,1,opt,name=UserID,proto3" json:"UserID,omitempty"` + OperationID string `protobuf:"bytes,2,opt,name=OperationID,proto3" json:"OperationID,omitempty"` } -func (m *SetReceiveMessageOptResp) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_SetReceiveMessageOptResp.Unmarshal(m, b) + +func (x *BlockUserReq) Reset() { + *x = BlockUserReq{} + if protoimpl.UnsafeEnabled { + mi := &file_user_user_proto_msgTypes[29] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *BlockUserReq) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *SetReceiveMessageOptResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_SetReceiveMessageOptResp.Marshal(b, m, deterministic) + +func (*BlockUserReq) ProtoMessage() {} + +func (x *BlockUserReq) ProtoReflect() protoreflect.Message { + mi := &file_user_user_proto_msgTypes[29] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) } -func (dst *SetReceiveMessageOptResp) XXX_Merge(src proto.Message) { - xxx_messageInfo_SetReceiveMessageOptResp.Merge(dst, src) + +// Deprecated: Use BlockUserReq.ProtoReflect.Descriptor instead. +func (*BlockUserReq) Descriptor() ([]byte, []int) { + return file_user_user_proto_rawDescGZIP(), []int{29} } -func (m *SetReceiveMessageOptResp) XXX_Size() int { - return xxx_messageInfo_SetReceiveMessageOptResp.Size(m) + +func (x *BlockUserReq) GetUserID() string { + if x != nil { + return x.UserID + } + return "" } -func (m *SetReceiveMessageOptResp) XXX_DiscardUnknown() { - xxx_messageInfo_SetReceiveMessageOptResp.DiscardUnknown(m) + +func (x *BlockUserReq) GetOperationID() string { + if x != nil { + return x.OperationID + } + return "" +} + +type BlockUserResp struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *BlockUserResp) Reset() { + *x = BlockUserResp{} + if protoimpl.UnsafeEnabled { + mi := &file_user_user_proto_msgTypes[30] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *BlockUserResp) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*BlockUserResp) ProtoMessage() {} + +func (x *BlockUserResp) ProtoReflect() protoreflect.Message { + mi := &file_user_user_proto_msgTypes[30] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use BlockUserResp.ProtoReflect.Descriptor instead. +func (*BlockUserResp) Descriptor() ([]byte, []int) { + return file_user_user_proto_rawDescGZIP(), []int{30} } -var xxx_messageInfo_SetReceiveMessageOptResp proto.InternalMessageInfo +type UnBlockUserReq struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields -func (m *SetReceiveMessageOptResp) GetCommonResp() *CommonResp { - if m != nil { - return m.CommonResp - } - return nil + UserID string `protobuf:"bytes,1,opt,name=UserID,proto3" json:"UserID,omitempty"` + OperationID string `protobuf:"bytes,2,opt,name=OperationID,proto3" json:"OperationID,omitempty"` } -func (m *SetReceiveMessageOptResp) GetConversationOptResultList() []*OptResult { - if m != nil { - return m.ConversationOptResultList +func (x *UnBlockUserReq) Reset() { + *x = UnBlockUserReq{} + if protoimpl.UnsafeEnabled { + mi := &file_user_user_proto_msgTypes[31] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } - return nil } -type GetReceiveMessageOptReq struct { - FromUserID string `protobuf:"bytes,1,opt,name=FromUserID" json:"FromUserID,omitempty"` - ConversationIDList []string `protobuf:"bytes,2,rep,name=conversationIDList" json:"conversationIDList,omitempty"` - OperationID string `protobuf:"bytes,3,opt,name=operationID" json:"operationID,omitempty"` - OpUserID string `protobuf:"bytes,4,opt,name=OpUserID" json:"OpUserID,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *GetReceiveMessageOptReq) Reset() { *m = GetReceiveMessageOptReq{} } -func (m *GetReceiveMessageOptReq) String() string { return proto.CompactTextString(m) } -func (*GetReceiveMessageOptReq) ProtoMessage() {} -func (*GetReceiveMessageOptReq) Descriptor() ([]byte, []int) { - return fileDescriptor_user_9cd4aaf870b6d3b5, []int{14} -} -func (m *GetReceiveMessageOptReq) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_GetReceiveMessageOptReq.Unmarshal(m, b) -} -func (m *GetReceiveMessageOptReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_GetReceiveMessageOptReq.Marshal(b, m, deterministic) -} -func (dst *GetReceiveMessageOptReq) XXX_Merge(src proto.Message) { - xxx_messageInfo_GetReceiveMessageOptReq.Merge(dst, src) -} -func (m *GetReceiveMessageOptReq) XXX_Size() int { - return xxx_messageInfo_GetReceiveMessageOptReq.Size(m) -} -func (m *GetReceiveMessageOptReq) XXX_DiscardUnknown() { - xxx_messageInfo_GetReceiveMessageOptReq.DiscardUnknown(m) +func (x *UnBlockUserReq) String() string { + return protoimpl.X.MessageStringOf(x) } -var xxx_messageInfo_GetReceiveMessageOptReq proto.InternalMessageInfo +func (*UnBlockUserReq) ProtoMessage() {} -func (m *GetReceiveMessageOptReq) GetFromUserID() string { - if m != nil { - return m.FromUserID +func (x *UnBlockUserReq) ProtoReflect() protoreflect.Message { + mi := &file_user_user_proto_msgTypes[31] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms } - return "" + return mi.MessageOf(x) } -func (m *GetReceiveMessageOptReq) GetConversationIDList() []string { - if m != nil { - return m.ConversationIDList - } - return nil +// Deprecated: Use UnBlockUserReq.ProtoReflect.Descriptor instead. +func (*UnBlockUserReq) Descriptor() ([]byte, []int) { + return file_user_user_proto_rawDescGZIP(), []int{31} } -func (m *GetReceiveMessageOptReq) GetOperationID() string { - if m != nil { - return m.OperationID +func (x *UnBlockUserReq) GetUserID() string { + if x != nil { + return x.UserID } return "" } -func (m *GetReceiveMessageOptReq) GetOpUserID() string { - if m != nil { - return m.OpUserID +func (x *UnBlockUserReq) GetOperationID() string { + if x != nil { + return x.OperationID } return "" } -type GetReceiveMessageOptResp struct { - CommonResp *CommonResp `protobuf:"bytes,1,opt,name=commonResp" json:"commonResp,omitempty"` - ConversationOptResultList []*OptResult `protobuf:"bytes,3,rep,name=conversationOptResultList" json:"conversationOptResultList,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` +type UnBlockUserResp struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields } -func (m *GetReceiveMessageOptResp) Reset() { *m = GetReceiveMessageOptResp{} } -func (m *GetReceiveMessageOptResp) String() string { return proto.CompactTextString(m) } -func (*GetReceiveMessageOptResp) ProtoMessage() {} -func (*GetReceiveMessageOptResp) Descriptor() ([]byte, []int) { - return fileDescriptor_user_9cd4aaf870b6d3b5, []int{15} +func (x *UnBlockUserResp) Reset() { + *x = UnBlockUserResp{} + if protoimpl.UnsafeEnabled { + mi := &file_user_user_proto_msgTypes[32] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *GetReceiveMessageOptResp) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_GetReceiveMessageOptResp.Unmarshal(m, b) + +func (x *UnBlockUserResp) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UnBlockUserResp) ProtoMessage() {} + +func (x *UnBlockUserResp) ProtoReflect() protoreflect.Message { + mi := &file_user_user_proto_msgTypes[32] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) } -func (m *GetReceiveMessageOptResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_GetReceiveMessageOptResp.Marshal(b, m, deterministic) + +// Deprecated: Use UnBlockUserResp.ProtoReflect.Descriptor instead. +func (*UnBlockUserResp) Descriptor() ([]byte, []int) { + return file_user_user_proto_rawDescGZIP(), []int{32} } -func (dst *GetReceiveMessageOptResp) XXX_Merge(src proto.Message) { - xxx_messageInfo_GetReceiveMessageOptResp.Merge(dst, src) + +type GetBlockUsersReq struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Pagination *sdk_ws.RequestPagination `protobuf:"bytes,1,opt,name=Pagination,proto3" json:"Pagination,omitempty"` + OperationID string `protobuf:"bytes,2,opt,name=OperationID,proto3" json:"OperationID,omitempty"` } -func (m *GetReceiveMessageOptResp) XXX_Size() int { - return xxx_messageInfo_GetReceiveMessageOptResp.Size(m) + +func (x *GetBlockUsersReq) Reset() { + *x = GetBlockUsersReq{} + if protoimpl.UnsafeEnabled { + mi := &file_user_user_proto_msgTypes[33] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *GetReceiveMessageOptResp) XXX_DiscardUnknown() { - xxx_messageInfo_GetReceiveMessageOptResp.DiscardUnknown(m) + +func (x *GetBlockUsersReq) String() string { + return protoimpl.X.MessageStringOf(x) } -var xxx_messageInfo_GetReceiveMessageOptResp proto.InternalMessageInfo +func (*GetBlockUsersReq) ProtoMessage() {} -func (m *GetReceiveMessageOptResp) GetCommonResp() *CommonResp { - if m != nil { - return m.CommonResp +func (x *GetBlockUsersReq) ProtoReflect() protoreflect.Message { + mi := &file_user_user_proto_msgTypes[33] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms } - return nil + return mi.MessageOf(x) } -func (m *GetReceiveMessageOptResp) GetConversationOptResultList() []*OptResult { - if m != nil { - return m.ConversationOptResultList +// Deprecated: Use GetBlockUsersReq.ProtoReflect.Descriptor instead. +func (*GetBlockUsersReq) Descriptor() ([]byte, []int) { + return file_user_user_proto_rawDescGZIP(), []int{33} +} + +func (x *GetBlockUsersReq) GetPagination() *sdk_ws.RequestPagination { + if x != nil { + return x.Pagination } return nil } -type GetAllConversationMsgOptReq struct { - FromUserID string `protobuf:"bytes,1,opt,name=FromUserID" json:"FromUserID,omitempty"` - OperationID string `protobuf:"bytes,2,opt,name=operationID" json:"operationID,omitempty"` - OpUserID string `protobuf:"bytes,3,opt,name=OpUserID" json:"OpUserID,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` +func (x *GetBlockUsersReq) GetOperationID() string { + if x != nil { + return x.OperationID + } + return "" } -func (m *GetAllConversationMsgOptReq) Reset() { *m = GetAllConversationMsgOptReq{} } -func (m *GetAllConversationMsgOptReq) String() string { return proto.CompactTextString(m) } -func (*GetAllConversationMsgOptReq) ProtoMessage() {} -func (*GetAllConversationMsgOptReq) Descriptor() ([]byte, []int) { - return fileDescriptor_user_9cd4aaf870b6d3b5, []int{16} -} -func (m *GetAllConversationMsgOptReq) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_GetAllConversationMsgOptReq.Unmarshal(m, b) -} -func (m *GetAllConversationMsgOptReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_GetAllConversationMsgOptReq.Marshal(b, m, deterministic) -} -func (dst *GetAllConversationMsgOptReq) XXX_Merge(src proto.Message) { - xxx_messageInfo_GetAllConversationMsgOptReq.Merge(dst, src) +type GetBlockUsersResp struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + User []*User `protobuf:"bytes,2,rep,name=user,proto3" json:"user,omitempty"` } -func (m *GetAllConversationMsgOptReq) XXX_Size() int { - return xxx_messageInfo_GetAllConversationMsgOptReq.Size(m) + +func (x *GetBlockUsersResp) Reset() { + *x = GetBlockUsersResp{} + if protoimpl.UnsafeEnabled { + mi := &file_user_user_proto_msgTypes[34] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *GetAllConversationMsgOptReq) XXX_DiscardUnknown() { - xxx_messageInfo_GetAllConversationMsgOptReq.DiscardUnknown(m) + +func (x *GetBlockUsersResp) String() string { + return protoimpl.X.MessageStringOf(x) } -var xxx_messageInfo_GetAllConversationMsgOptReq proto.InternalMessageInfo +func (*GetBlockUsersResp) ProtoMessage() {} -func (m *GetAllConversationMsgOptReq) GetFromUserID() string { - if m != nil { - return m.FromUserID +func (x *GetBlockUsersResp) ProtoReflect() protoreflect.Message { + mi := &file_user_user_proto_msgTypes[34] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms } - return "" + return mi.MessageOf(x) } -func (m *GetAllConversationMsgOptReq) GetOperationID() string { - if m != nil { - return m.OperationID - } - return "" +// Deprecated: Use GetBlockUsersResp.ProtoReflect.Descriptor instead. +func (*GetBlockUsersResp) Descriptor() ([]byte, []int) { + return file_user_user_proto_rawDescGZIP(), []int{34} } -func (m *GetAllConversationMsgOptReq) GetOpUserID() string { - if m != nil { - return m.OpUserID +func (x *GetBlockUsersResp) GetUser() []*User { + if x != nil { + return x.User } - return "" + return nil } -type GetAllConversationMsgOptResp struct { - CommonResp *CommonResp `protobuf:"bytes,1,opt,name=commonResp" json:"commonResp,omitempty"` - ConversationOptResultList []*OptResult `protobuf:"bytes,3,rep,name=conversationOptResultList" json:"conversationOptResultList,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} +type AccountCheckResp_SingleUserStatus struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields -func (m *GetAllConversationMsgOptResp) Reset() { *m = GetAllConversationMsgOptResp{} } -func (m *GetAllConversationMsgOptResp) String() string { return proto.CompactTextString(m) } -func (*GetAllConversationMsgOptResp) ProtoMessage() {} -func (*GetAllConversationMsgOptResp) Descriptor() ([]byte, []int) { - return fileDescriptor_user_9cd4aaf870b6d3b5, []int{17} -} -func (m *GetAllConversationMsgOptResp) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_GetAllConversationMsgOptResp.Unmarshal(m, b) -} -func (m *GetAllConversationMsgOptResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_GetAllConversationMsgOptResp.Marshal(b, m, deterministic) + UserID string `protobuf:"bytes,1,opt,name=userID,proto3" json:"userID,omitempty"` + AccountStatus string `protobuf:"bytes,2,opt,name=accountStatus,proto3" json:"accountStatus,omitempty"` } -func (dst *GetAllConversationMsgOptResp) XXX_Merge(src proto.Message) { - xxx_messageInfo_GetAllConversationMsgOptResp.Merge(dst, src) + +func (x *AccountCheckResp_SingleUserStatus) Reset() { + *x = AccountCheckResp_SingleUserStatus{} + if protoimpl.UnsafeEnabled { + mi := &file_user_user_proto_msgTypes[35] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *GetAllConversationMsgOptResp) XXX_Size() int { - return xxx_messageInfo_GetAllConversationMsgOptResp.Size(m) + +func (x *AccountCheckResp_SingleUserStatus) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *GetAllConversationMsgOptResp) XXX_DiscardUnknown() { - xxx_messageInfo_GetAllConversationMsgOptResp.DiscardUnknown(m) + +func (*AccountCheckResp_SingleUserStatus) ProtoMessage() {} + +func (x *AccountCheckResp_SingleUserStatus) ProtoReflect() protoreflect.Message { + mi := &file_user_user_proto_msgTypes[35] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) } -var xxx_messageInfo_GetAllConversationMsgOptResp proto.InternalMessageInfo +// Deprecated: Use AccountCheckResp_SingleUserStatus.ProtoReflect.Descriptor instead. +func (*AccountCheckResp_SingleUserStatus) Descriptor() ([]byte, []int) { + return file_user_user_proto_rawDescGZIP(), []int{6, 0} +} -func (m *GetAllConversationMsgOptResp) GetCommonResp() *CommonResp { - if m != nil { - return m.CommonResp +func (x *AccountCheckResp_SingleUserStatus) GetUserID() string { + if x != nil { + return x.UserID } - return nil + return "" } -func (m *GetAllConversationMsgOptResp) GetConversationOptResultList() []*OptResult { - if m != nil { - return m.ConversationOptResultList +func (x *AccountCheckResp_SingleUserStatus) GetAccountStatus() string { + if x != nil { + return x.AccountStatus } - return nil + return "" } -func init() { - proto.RegisterType((*CommonResp)(nil), "user.CommonResp") - proto.RegisterType((*DeleteUsersReq)(nil), "user.DeleteUsersReq") - proto.RegisterType((*DeleteUsersResp)(nil), "user.DeleteUsersResp") - proto.RegisterType((*GetAllUserIDReq)(nil), "user.GetAllUserIDReq") - proto.RegisterType((*GetAllUserIDResp)(nil), "user.GetAllUserIDResp") - proto.RegisterType((*AccountCheckReq)(nil), "user.AccountCheckReq") - proto.RegisterType((*AccountCheckResp)(nil), "user.AccountCheckResp") - proto.RegisterType((*AccountCheckResp_SingleUserStatus)(nil), "user.AccountCheckResp.SingleUserStatus") - proto.RegisterType((*GetUserInfoReq)(nil), "user.GetUserInfoReq") - proto.RegisterType((*GetUserInfoResp)(nil), "user.GetUserInfoResp") - proto.RegisterType((*UpdateUserInfoReq)(nil), "user.UpdateUserInfoReq") - proto.RegisterType((*UpdateUserInfoResp)(nil), "user.UpdateUserInfoResp") - proto.RegisterType((*SetReceiveMessageOptReq)(nil), "user.SetReceiveMessageOptReq") - proto.RegisterType((*OptResult)(nil), "user.OptResult") - proto.RegisterType((*SetReceiveMessageOptResp)(nil), "user.SetReceiveMessageOptResp") - proto.RegisterType((*GetReceiveMessageOptReq)(nil), "user.GetReceiveMessageOptReq") - proto.RegisterType((*GetReceiveMessageOptResp)(nil), "user.GetReceiveMessageOptResp") - proto.RegisterType((*GetAllConversationMsgOptReq)(nil), "user.GetAllConversationMsgOptReq") - proto.RegisterType((*GetAllConversationMsgOptResp)(nil), "user.GetAllConversationMsgOptResp") +var File_user_user_proto protoreflect.FileDescriptor + +var file_user_user_proto_rawDesc = []byte{ + 0x0a, 0x0f, 0x75, 0x73, 0x65, 0x72, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x12, 0x04, 0x75, 0x73, 0x65, 0x72, 0x1a, 0x21, 0x4f, 0x70, 0x65, 0x6e, 0x5f, 0x49, 0x4d, + 0x2f, 0x70, 0x6b, 0x67, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x73, 0x64, 0x6b, 0x5f, 0x77, + 0x73, 0x2f, 0x77, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x3e, 0x0a, 0x0a, 0x43, 0x6f, + 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x12, 0x18, 0x0a, 0x07, 0x65, 0x72, 0x72, 0x43, + 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x65, 0x72, 0x72, 0x43, 0x6f, + 0x64, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x65, 0x72, 0x72, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x06, 0x65, 0x72, 0x72, 0x4d, 0x73, 0x67, 0x22, 0x7a, 0x0a, 0x0e, 0x44, 0x65, + 0x6c, 0x65, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x12, 0x2a, 0x0a, 0x10, + 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x4c, 0x69, 0x73, 0x74, + 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x10, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x55, 0x73, + 0x65, 0x72, 0x49, 0x44, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x4f, 0x70, 0x55, 0x73, + 0x65, 0x72, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x4f, 0x70, 0x55, 0x73, + 0x65, 0x72, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x49, 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x22, 0x6f, 0x0a, 0x0f, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, + 0x55, 0x73, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x12, 0x30, 0x0a, 0x0a, 0x43, 0x6f, 0x6d, + 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, + 0x75, 0x73, 0x65, 0x72, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x52, + 0x0a, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x12, 0x2a, 0x0a, 0x10, 0x46, + 0x61, 0x69, 0x6c, 0x65, 0x64, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x4c, 0x69, 0x73, 0x74, 0x18, + 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x10, 0x46, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x55, 0x73, 0x65, + 0x72, 0x49, 0x44, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x4f, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x41, 0x6c, + 0x6c, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x52, 0x65, 0x71, 0x12, 0x1a, 0x0a, 0x08, 0x6f, 0x70, + 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6f, 0x70, + 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6f, 0x70, 0x65, + 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x22, 0x64, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x41, + 0x6c, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x52, 0x65, 0x73, 0x70, 0x12, 0x30, 0x0a, 0x0a, + 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x10, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, + 0x73, 0x70, 0x52, 0x0a, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x12, 0x1e, + 0x0a, 0x0a, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x02, 0x20, 0x03, + 0x28, 0x09, 0x52, 0x0a, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x79, + 0x0a, 0x0f, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x52, 0x65, + 0x71, 0x12, 0x28, 0x0a, 0x0f, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, + 0x4c, 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0f, 0x43, 0x68, 0x65, 0x63, + 0x6b, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x4f, + 0x70, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x4f, + 0x70, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x4f, 0x70, + 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x22, 0xdf, 0x01, 0x0a, 0x10, 0x41, 0x63, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x12, 0x30, + 0x0a, 0x0a, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, + 0x52, 0x65, 0x73, 0x70, 0x52, 0x0a, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, + 0x12, 0x47, 0x0a, 0x0a, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x02, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x41, 0x63, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x2e, 0x53, 0x69, 0x6e, + 0x67, 0x6c, 0x65, 0x55, 0x73, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x0a, 0x52, + 0x65, 0x73, 0x75, 0x6c, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x1a, 0x50, 0x0a, 0x10, 0x53, 0x69, 0x6e, + 0x67, 0x6c, 0x65, 0x55, 0x73, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x16, 0x0a, + 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x75, + 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x24, 0x0a, 0x0d, 0x61, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x61, 0x63, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x22, 0x6e, 0x0a, 0x0e, 0x47, + 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x12, 0x1e, 0x0a, + 0x0a, 0x75, 0x73, 0x65, 0x72, 0x49, 0x44, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x01, 0x20, 0x03, 0x28, + 0x09, 0x52, 0x0a, 0x75, 0x73, 0x65, 0x72, 0x49, 0x44, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x1a, 0x0a, + 0x08, 0x4f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x08, 0x4f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x70, 0x65, + 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, + 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x22, 0x84, 0x01, 0x0a, 0x0f, + 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x12, + 0x30, 0x0a, 0x0a, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, + 0x6e, 0x52, 0x65, 0x73, 0x70, 0x52, 0x0a, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, + 0x70, 0x12, 0x3f, 0x0a, 0x0c, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x4c, 0x69, 0x73, + 0x74, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, + 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x55, 0x73, 0x65, 0x72, + 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0c, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x4c, 0x69, + 0x73, 0x74, 0x22, 0x8a, 0x01, 0x0a, 0x11, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, + 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x12, 0x37, 0x0a, 0x08, 0x55, 0x73, 0x65, 0x72, + 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x73, 0x65, 0x72, + 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x55, + 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x08, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, + 0x6f, 0x12, 0x1a, 0x0a, 0x08, 0x4f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x08, 0x4f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x20, 0x0a, + 0x0b, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0b, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x22, + 0x46, 0x0a, 0x12, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, + 0x6f, 0x52, 0x65, 0x73, 0x70, 0x12, 0x30, 0x0a, 0x0a, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, + 0x65, 0x73, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x75, 0x73, 0x65, 0x72, + 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x52, 0x0a, 0x63, 0x6f, 0x6d, + 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0xb9, 0x01, 0x0a, 0x17, 0x53, 0x65, 0x74, 0x52, + 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4f, 0x70, 0x74, + 0x52, 0x65, 0x71, 0x12, 0x1e, 0x0a, 0x0a, 0x46, 0x72, 0x6f, 0x6d, 0x55, 0x73, 0x65, 0x72, 0x49, + 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x46, 0x72, 0x6f, 0x6d, 0x55, 0x73, 0x65, + 0x72, 0x49, 0x44, 0x12, 0x10, 0x0a, 0x03, 0x6f, 0x70, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x03, 0x6f, 0x70, 0x74, 0x12, 0x2e, 0x0a, 0x12, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x03, 0x20, 0x03, 0x28, + 0x09, 0x52, 0x12, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, + 0x44, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6f, 0x70, 0x65, 0x72, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x4f, 0x70, 0x55, 0x73, 0x65, + 0x72, 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x4f, 0x70, 0x55, 0x73, 0x65, + 0x72, 0x49, 0x44, 0x22, 0x4b, 0x0a, 0x09, 0x4f, 0x70, 0x74, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, + 0x12, 0x26, 0x0a, 0x0e, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, + 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x73, 0x75, + 0x6c, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x72, 0x65, 0x73, 0x75, 0x6c, 0x74, + 0x22, 0x9b, 0x01, 0x0a, 0x18, 0x53, 0x65, 0x74, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x4d, + 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4f, 0x70, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x30, 0x0a, + 0x0a, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x10, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, + 0x65, 0x73, 0x70, 0x52, 0x0a, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x12, + 0x4d, 0x0a, 0x19, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4f, + 0x70, 0x74, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x02, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x4f, 0x70, 0x74, 0x52, 0x65, 0x73, + 0x75, 0x6c, 0x74, 0x52, 0x19, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x4f, 0x70, 0x74, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x22, 0xa7, + 0x01, 0x0a, 0x17, 0x47, 0x65, 0x74, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x4d, 0x65, 0x73, + 0x73, 0x61, 0x67, 0x65, 0x4f, 0x70, 0x74, 0x52, 0x65, 0x71, 0x12, 0x1e, 0x0a, 0x0a, 0x46, 0x72, + 0x6f, 0x6d, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, + 0x46, 0x72, 0x6f, 0x6d, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x2e, 0x0a, 0x12, 0x63, 0x6f, + 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x4c, 0x69, 0x73, 0x74, + 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x12, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x6f, 0x70, + 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0b, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, + 0x4f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, + 0x4f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x22, 0x9b, 0x01, 0x0a, 0x18, 0x47, 0x65, 0x74, + 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4f, 0x70, + 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x30, 0x0a, 0x0a, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, + 0x65, 0x73, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x75, 0x73, 0x65, 0x72, + 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x52, 0x0a, 0x63, 0x6f, 0x6d, + 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x12, 0x4d, 0x0a, 0x19, 0x63, 0x6f, 0x6e, 0x76, 0x65, + 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4f, 0x70, 0x74, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, + 0x4c, 0x69, 0x73, 0x74, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x75, 0x73, 0x65, + 0x72, 0x2e, 0x4f, 0x70, 0x74, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x19, 0x63, 0x6f, 0x6e, + 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4f, 0x70, 0x74, 0x52, 0x65, 0x73, 0x75, + 0x6c, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x7b, 0x0a, 0x1b, 0x47, 0x65, 0x74, 0x41, 0x6c, 0x6c, + 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x73, 0x67, 0x4f, + 0x70, 0x74, 0x52, 0x65, 0x71, 0x12, 0x1e, 0x0a, 0x0a, 0x46, 0x72, 0x6f, 0x6d, 0x55, 0x73, 0x65, + 0x72, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x46, 0x72, 0x6f, 0x6d, 0x55, + 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6f, 0x70, 0x65, 0x72, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x4f, 0x70, 0x55, 0x73, 0x65, + 0x72, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x4f, 0x70, 0x55, 0x73, 0x65, + 0x72, 0x49, 0x44, 0x22, 0x9f, 0x01, 0x0a, 0x1c, 0x47, 0x65, 0x74, 0x41, 0x6c, 0x6c, 0x43, 0x6f, + 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x73, 0x67, 0x4f, 0x70, 0x74, + 0x52, 0x65, 0x73, 0x70, 0x12, 0x30, 0x0a, 0x0a, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, + 0x73, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, + 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x52, 0x0a, 0x63, 0x6f, 0x6d, 0x6d, + 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x12, 0x4d, 0x0a, 0x19, 0x63, 0x6f, 0x6e, 0x76, 0x65, 0x72, + 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4f, 0x70, 0x74, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x4c, + 0x69, 0x73, 0x74, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x75, 0x73, 0x65, 0x72, + 0x2e, 0x4f, 0x70, 0x74, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x19, 0x63, 0x6f, 0x6e, 0x76, + 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4f, 0x70, 0x74, 0x52, 0x65, 0x73, 0x75, 0x6c, + 0x74, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x49, 0x0a, 0x0d, 0x52, 0x65, 0x73, 0x69, 0x67, 0x6e, 0x55, + 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x12, 0x16, 0x0a, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x20, + 0x0a, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, + 0x22, 0x42, 0x0a, 0x0e, 0x52, 0x65, 0x73, 0x69, 0x67, 0x6e, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, + 0x73, 0x70, 0x12, 0x30, 0x0a, 0x0a, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x43, 0x6f, + 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x52, 0x0a, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, + 0x52, 0x65, 0x73, 0x70, 0x22, 0x46, 0x0a, 0x0a, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x52, + 0x65, 0x71, 0x12, 0x16, 0x0a, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x70, + 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x22, 0x7e, 0x0a, 0x04, + 0x55, 0x73, 0x65, 0x72, 0x12, 0x22, 0x0a, 0x0c, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x50, + 0x68, 0x6f, 0x74, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x50, 0x72, 0x6f, 0x66, + 0x69, 0x6c, 0x65, 0x50, 0x68, 0x6f, 0x74, 0x6f, 0x12, 0x1a, 0x0a, 0x08, 0x4e, 0x69, 0x63, 0x6b, + 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x4e, 0x69, 0x63, 0x6b, + 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, + 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0a, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x22, 0x2d, 0x0a, 0x0b, + 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x12, 0x1e, 0x0a, 0x04, 0x75, + 0x73, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x75, 0x73, 0x65, 0x72, + 0x2e, 0x55, 0x73, 0x65, 0x72, 0x52, 0x04, 0x75, 0x73, 0x65, 0x72, 0x22, 0x48, 0x0a, 0x0c, 0x41, + 0x6c, 0x74, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x12, 0x16, 0x0a, 0x06, 0x55, + 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x55, 0x73, 0x65, + 0x72, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x22, 0x41, 0x0a, 0x0d, 0x41, 0x6c, 0x74, 0x65, 0x72, 0x55, 0x73, + 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x12, 0x30, 0x0a, 0x0a, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, + 0x52, 0x65, 0x73, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x75, 0x73, 0x65, + 0x72, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x52, 0x0a, 0x43, 0x6f, + 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0x75, 0x0a, 0x0b, 0x47, 0x65, 0x74, 0x55, + 0x73, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x4f, 0x70, + 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x12, 0x44, 0x0a, 0x0a, 0x50, 0x61, 0x67, + 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, + 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, + 0x73, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x52, 0x0a, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, + 0x50, 0x0a, 0x0c, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x12, + 0x20, 0x0a, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, + 0x44, 0x12, 0x1e, 0x0a, 0x04, 0x75, 0x73, 0x65, 0x72, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x0a, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x52, 0x04, 0x75, 0x73, 0x65, + 0x72, 0x22, 0x2e, 0x0a, 0x0a, 0x41, 0x64, 0x64, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x12, + 0x20, 0x0a, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, + 0x44, 0x22, 0x0d, 0x0a, 0x0b, 0x41, 0x64, 0x64, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, + 0x22, 0x48, 0x0a, 0x0c, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, + 0x12, 0x16, 0x0a, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x70, 0x65, 0x72, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x4f, + 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x22, 0x0f, 0x0a, 0x0d, 0x42, 0x6c, + 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x22, 0x4a, 0x0a, 0x0e, 0x55, + 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x12, 0x16, 0x0a, + 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x55, + 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x4f, 0x70, 0x65, 0x72, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x22, 0x11, 0x0a, 0x0f, 0x55, 0x6e, 0x42, 0x6c, 0x6f, + 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x22, 0x7a, 0x0a, 0x10, 0x47, 0x65, + 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x12, 0x44, + 0x0a, 0x0a, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, + 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x50, 0x61, + 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0a, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x22, 0x33, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x42, 0x6c, 0x6f, + 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x12, 0x1e, 0x0a, 0x04, 0x75, + 0x73, 0x65, 0x72, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x75, 0x73, 0x65, 0x72, + 0x2e, 0x55, 0x73, 0x65, 0x72, 0x52, 0x04, 0x75, 0x73, 0x65, 0x72, 0x32, 0x88, 0x08, 0x0a, 0x04, + 0x75, 0x73, 0x65, 0x72, 0x12, 0x3a, 0x0a, 0x0b, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x49, + 0x6e, 0x66, 0x6f, 0x12, 0x14, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, + 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x1a, 0x15, 0x2e, 0x75, 0x73, 0x65, 0x72, + 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, + 0x12, 0x43, 0x0a, 0x0e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, + 0x66, 0x6f, 0x12, 0x17, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, + 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x1a, 0x18, 0x2e, 0x75, 0x73, + 0x65, 0x72, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, + 0x6f, 0x52, 0x65, 0x73, 0x70, 0x12, 0x3a, 0x0a, 0x0b, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x55, + 0x73, 0x65, 0x72, 0x73, 0x12, 0x14, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x44, 0x65, 0x6c, 0x65, + 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x15, 0x2e, 0x75, 0x73, 0x65, + 0x72, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, + 0x70, 0x12, 0x3d, 0x0a, 0x0c, 0x47, 0x65, 0x74, 0x41, 0x6c, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x49, + 0x44, 0x12, 0x15, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x6c, 0x6c, 0x55, + 0x73, 0x65, 0x72, 0x49, 0x44, 0x52, 0x65, 0x71, 0x1a, 0x16, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, + 0x47, 0x65, 0x74, 0x41, 0x6c, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x52, 0x65, 0x73, 0x70, + 0x12, 0x55, 0x0a, 0x14, 0x53, 0x65, 0x74, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x4d, 0x65, + 0x73, 0x73, 0x61, 0x67, 0x65, 0x4f, 0x70, 0x74, 0x12, 0x1d, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, + 0x53, 0x65, 0x74, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, + 0x65, 0x4f, 0x70, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x1e, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x53, + 0x65, 0x74, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, + 0x4f, 0x70, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x55, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x52, 0x65, + 0x63, 0x65, 0x69, 0x76, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4f, 0x70, 0x74, 0x12, + 0x1d, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, + 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4f, 0x70, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x1e, + 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, + 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4f, 0x70, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x61, + 0x0a, 0x18, 0x47, 0x65, 0x74, 0x41, 0x6c, 0x6c, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x73, 0x67, 0x4f, 0x70, 0x74, 0x12, 0x21, 0x2e, 0x75, 0x73, 0x65, + 0x72, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x6c, 0x6c, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x73, 0x67, 0x4f, 0x70, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x22, 0x2e, + 0x75, 0x73, 0x65, 0x72, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x6c, 0x6c, 0x43, 0x6f, 0x6e, 0x76, 0x65, + 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x73, 0x67, 0x4f, 0x70, 0x74, 0x52, 0x65, 0x73, + 0x70, 0x12, 0x3d, 0x0a, 0x0c, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x43, 0x68, 0x65, 0x63, + 0x6b, 0x12, 0x15, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x43, 0x68, 0x65, 0x63, 0x6b, 0x52, 0x65, 0x71, 0x1a, 0x16, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, + 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x52, 0x65, 0x73, 0x70, + 0x12, 0x2e, 0x0a, 0x07, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x12, 0x10, 0x2e, 0x75, 0x73, + 0x65, 0x72, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x1a, 0x11, 0x2e, + 0x75, 0x73, 0x65, 0x72, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, + 0x12, 0x37, 0x0a, 0x0a, 0x52, 0x65, 0x73, 0x69, 0x67, 0x6e, 0x55, 0x73, 0x65, 0x72, 0x12, 0x13, + 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x52, 0x65, 0x73, 0x69, 0x67, 0x6e, 0x55, 0x73, 0x65, 0x72, + 0x52, 0x65, 0x71, 0x1a, 0x14, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x52, 0x65, 0x73, 0x69, 0x67, + 0x6e, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x12, 0x34, 0x0a, 0x09, 0x41, 0x6c, 0x74, + 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x12, 0x12, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x41, 0x6c, + 0x74, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x1a, 0x13, 0x2e, 0x75, 0x73, 0x65, + 0x72, 0x2e, 0x41, 0x6c, 0x74, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x12, + 0x31, 0x0a, 0x08, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x73, 0x12, 0x11, 0x2e, 0x75, 0x73, + 0x65, 0x72, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x12, + 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x73, 0x52, 0x65, + 0x73, 0x70, 0x12, 0x2e, 0x0a, 0x07, 0x41, 0x64, 0x64, 0x55, 0x73, 0x65, 0x72, 0x12, 0x10, 0x2e, + 0x75, 0x73, 0x65, 0x72, 0x2e, 0x41, 0x64, 0x64, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x1a, + 0x11, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x41, 0x64, 0x64, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, + 0x73, 0x70, 0x12, 0x34, 0x0a, 0x09, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x12, + 0x12, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, + 0x52, 0x65, 0x71, 0x1a, 0x13, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, + 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x12, 0x3a, 0x0a, 0x0b, 0x55, 0x6e, 0x42, 0x6c, + 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x12, 0x14, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x55, + 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x1a, 0x15, 0x2e, + 0x75, 0x73, 0x65, 0x72, 0x2e, 0x55, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, + 0x52, 0x65, 0x73, 0x70, 0x12, 0x40, 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, + 0x55, 0x73, 0x65, 0x72, 0x73, 0x12, 0x16, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x47, 0x65, 0x74, + 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x17, 0x2e, + 0x75, 0x73, 0x65, 0x72, 0x2e, 0x47, 0x65, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, + 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x42, 0x0d, 0x5a, 0x0b, 0x2e, 0x2f, 0x75, 0x73, 0x65, 0x72, + 0x3b, 0x75, 0x73, 0x65, 0x72, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_user_user_proto_rawDescOnce sync.Once + file_user_user_proto_rawDescData = file_user_user_proto_rawDesc +) + +func file_user_user_proto_rawDescGZIP() []byte { + file_user_user_proto_rawDescOnce.Do(func() { + file_user_user_proto_rawDescData = protoimpl.X.CompressGZIP(file_user_user_proto_rawDescData) + }) + return file_user_user_proto_rawDescData +} + +var file_user_user_proto_msgTypes = make([]protoimpl.MessageInfo, 36) +var file_user_user_proto_goTypes = []interface{}{ + (*CommonResp)(nil), // 0: user.CommonResp + (*DeleteUsersReq)(nil), // 1: user.DeleteUsersReq + (*DeleteUsersResp)(nil), // 2: user.DeleteUsersResp + (*GetAllUserIDReq)(nil), // 3: user.GetAllUserIDReq + (*GetAllUserIDResp)(nil), // 4: user.GetAllUserIDResp + (*AccountCheckReq)(nil), // 5: user.AccountCheckReq + (*AccountCheckResp)(nil), // 6: user.AccountCheckResp + (*GetUserInfoReq)(nil), // 7: user.GetUserInfoReq + (*GetUserInfoResp)(nil), // 8: user.GetUserInfoResp + (*UpdateUserInfoReq)(nil), // 9: user.UpdateUserInfoReq + (*UpdateUserInfoResp)(nil), // 10: user.UpdateUserInfoResp + (*SetReceiveMessageOptReq)(nil), // 11: user.SetReceiveMessageOptReq + (*OptResult)(nil), // 12: user.OptResult + (*SetReceiveMessageOptResp)(nil), // 13: user.SetReceiveMessageOptResp + (*GetReceiveMessageOptReq)(nil), // 14: user.GetReceiveMessageOptReq + (*GetReceiveMessageOptResp)(nil), // 15: user.GetReceiveMessageOptResp + (*GetAllConversationMsgOptReq)(nil), // 16: user.GetAllConversationMsgOptReq + (*GetAllConversationMsgOptResp)(nil), // 17: user.GetAllConversationMsgOptResp + (*ResignUserReq)(nil), // 18: user.ResignUserReq + (*ResignUserResp)(nil), // 19: user.ResignUserResp + (*GetUserReq)(nil), // 20: user.GetUserReq + (*User)(nil), // 21: user.User + (*GetUserResp)(nil), // 22: user.GetUserResp + (*AlterUserReq)(nil), // 23: user.AlterUserReq + (*AlterUserResp)(nil), // 24: user.AlterUserResp + (*GetUsersReq)(nil), // 25: user.GetUsersReq + (*GetUsersResp)(nil), // 26: user.GetUsersResp + (*AddUserReq)(nil), // 27: user.AddUserReq + (*AddUserResp)(nil), // 28: user.AddUserResp + (*BlockUserReq)(nil), // 29: user.BlockUserReq + (*BlockUserResp)(nil), // 30: user.BlockUserResp + (*UnBlockUserReq)(nil), // 31: user.UnBlockUserReq + (*UnBlockUserResp)(nil), // 32: user.UnBlockUserResp + (*GetBlockUsersReq)(nil), // 33: user.GetBlockUsersReq + (*GetBlockUsersResp)(nil), // 34: user.GetBlockUsersResp + (*AccountCheckResp_SingleUserStatus)(nil), // 35: user.AccountCheckResp.SingleUserStatus + (*sdk_ws.UserInfo)(nil), // 36: server_api_params.UserInfo + (*sdk_ws.RequestPagination)(nil), // 37: server_api_params.RequestPagination +} +var file_user_user_proto_depIdxs = []int32{ + 0, // 0: user.DeleteUsersResp.CommonResp:type_name -> user.CommonResp + 0, // 1: user.GetAllUserIDResp.CommonResp:type_name -> user.CommonResp + 0, // 2: user.AccountCheckResp.commonResp:type_name -> user.CommonResp + 35, // 3: user.AccountCheckResp.ResultList:type_name -> user.AccountCheckResp.SingleUserStatus + 0, // 4: user.GetUserInfoResp.commonResp:type_name -> user.CommonResp + 36, // 5: user.GetUserInfoResp.UserInfoList:type_name -> server_api_params.UserInfo + 36, // 6: user.UpdateUserInfoReq.UserInfo:type_name -> server_api_params.UserInfo + 0, // 7: user.UpdateUserInfoResp.commonResp:type_name -> user.CommonResp + 0, // 8: user.SetReceiveMessageOptResp.commonResp:type_name -> user.CommonResp + 12, // 9: user.SetReceiveMessageOptResp.conversationOptResultList:type_name -> user.OptResult + 0, // 10: user.GetReceiveMessageOptResp.commonResp:type_name -> user.CommonResp + 12, // 11: user.GetReceiveMessageOptResp.conversationOptResultList:type_name -> user.OptResult + 0, // 12: user.GetAllConversationMsgOptResp.commonResp:type_name -> user.CommonResp + 12, // 13: user.GetAllConversationMsgOptResp.conversationOptResultList:type_name -> user.OptResult + 0, // 14: user.ResignUserResp.commonResp:type_name -> user.CommonResp + 21, // 15: user.GetUserResp.user:type_name -> user.User + 0, // 16: user.AlterUserResp.CommonResp:type_name -> user.CommonResp + 37, // 17: user.GetUsersReq.Pagination:type_name -> server_api_params.RequestPagination + 21, // 18: user.GetUsersResp.user:type_name -> user.User + 37, // 19: user.GetBlockUsersReq.Pagination:type_name -> server_api_params.RequestPagination + 21, // 20: user.GetBlockUsersResp.user:type_name -> user.User + 7, // 21: user.user.GetUserInfo:input_type -> user.GetUserInfoReq + 9, // 22: user.user.UpdateUserInfo:input_type -> user.UpdateUserInfoReq + 1, // 23: user.user.DeleteUsers:input_type -> user.DeleteUsersReq + 3, // 24: user.user.GetAllUserID:input_type -> user.GetAllUserIDReq + 11, // 25: user.user.SetReceiveMessageOpt:input_type -> user.SetReceiveMessageOptReq + 14, // 26: user.user.GetReceiveMessageOpt:input_type -> user.GetReceiveMessageOptReq + 16, // 27: user.user.GetAllConversationMsgOpt:input_type -> user.GetAllConversationMsgOptReq + 5, // 28: user.user.AccountCheck:input_type -> user.AccountCheckReq + 20, // 29: user.user.GetUser:input_type -> user.GetUserReq + 18, // 30: user.user.ResignUser:input_type -> user.ResignUserReq + 23, // 31: user.user.AlterUser:input_type -> user.AlterUserReq + 25, // 32: user.user.GetUsers:input_type -> user.GetUsersReq + 27, // 33: user.user.AddUser:input_type -> user.AddUserReq + 29, // 34: user.user.BlockUser:input_type -> user.BlockUserReq + 31, // 35: user.user.UnBlockUser:input_type -> user.UnBlockUserReq + 33, // 36: user.user.GetBlockUsers:input_type -> user.GetBlockUsersReq + 8, // 37: user.user.GetUserInfo:output_type -> user.GetUserInfoResp + 10, // 38: user.user.UpdateUserInfo:output_type -> user.UpdateUserInfoResp + 2, // 39: user.user.DeleteUsers:output_type -> user.DeleteUsersResp + 4, // 40: user.user.GetAllUserID:output_type -> user.GetAllUserIDResp + 13, // 41: user.user.SetReceiveMessageOpt:output_type -> user.SetReceiveMessageOptResp + 15, // 42: user.user.GetReceiveMessageOpt:output_type -> user.GetReceiveMessageOptResp + 17, // 43: user.user.GetAllConversationMsgOpt:output_type -> user.GetAllConversationMsgOptResp + 6, // 44: user.user.AccountCheck:output_type -> user.AccountCheckResp + 22, // 45: user.user.GetUser:output_type -> user.GetUserResp + 19, // 46: user.user.ResignUser:output_type -> user.ResignUserResp + 24, // 47: user.user.AlterUser:output_type -> user.AlterUserResp + 26, // 48: user.user.GetUsers:output_type -> user.GetUsersResp + 28, // 49: user.user.AddUser:output_type -> user.AddUserResp + 30, // 50: user.user.BlockUser:output_type -> user.BlockUserResp + 32, // 51: user.user.UnBlockUser:output_type -> user.UnBlockUserResp + 34, // 52: user.user.GetBlockUsers:output_type -> user.GetBlockUsersResp + 37, // [37:53] is the sub-list for method output_type + 21, // [21:37] is the sub-list for method input_type + 21, // [21:21] is the sub-list for extension type_name + 21, // [21:21] is the sub-list for extension extendee + 0, // [0:21] is the sub-list for field type_name +} + +func init() { file_user_user_proto_init() } +func file_user_user_proto_init() { + if File_user_user_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_user_user_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CommonResp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_user_user_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DeleteUsersReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_user_user_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DeleteUsersResp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_user_user_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetAllUserIDReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_user_user_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetAllUserIDResp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_user_user_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AccountCheckReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_user_user_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AccountCheckResp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_user_user_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetUserInfoReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_user_user_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetUserInfoResp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_user_user_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UpdateUserInfoReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_user_user_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UpdateUserInfoResp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_user_user_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SetReceiveMessageOptReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_user_user_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*OptResult); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_user_user_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SetReceiveMessageOptResp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_user_user_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetReceiveMessageOptReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_user_user_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetReceiveMessageOptResp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_user_user_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetAllConversationMsgOptReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_user_user_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetAllConversationMsgOptResp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_user_user_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ResignUserReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_user_user_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ResignUserResp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_user_user_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetUserReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_user_user_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*User); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_user_user_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetUserResp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_user_user_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AlterUserReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_user_user_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AlterUserResp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_user_user_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetUsersReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_user_user_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetUsersResp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_user_user_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AddUserReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_user_user_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AddUserResp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_user_user_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*BlockUserReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_user_user_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*BlockUserResp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_user_user_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UnBlockUserReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_user_user_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UnBlockUserResp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_user_user_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetBlockUsersReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_user_user_proto_msgTypes[34].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetBlockUsersResp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_user_user_proto_msgTypes[35].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AccountCheckResp_SingleUserStatus); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_user_user_proto_rawDesc, + NumEnums: 0, + NumMessages: 36, + NumExtensions: 0, + NumServices: 1, + }, + GoTypes: file_user_user_proto_goTypes, + DependencyIndexes: file_user_user_proto_depIdxs, + MessageInfos: file_user_user_proto_msgTypes, + }.Build() + File_user_user_proto = out.File + file_user_user_proto_rawDesc = nil + file_user_user_proto_goTypes = nil + file_user_user_proto_depIdxs = nil } // Reference imports to suppress errors if they are not otherwise used. var _ context.Context -var _ grpc.ClientConn +var _ grpc.ClientConnInterface // 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 User service +const _ = grpc.SupportPackageIsVersion6 +// UserClient is the client API for User service. +// +// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream. type UserClient interface { GetUserInfo(ctx context.Context, in *GetUserInfoReq, opts ...grpc.CallOption) (*GetUserInfoResp, error) UpdateUserInfo(ctx context.Context, in *UpdateUserInfoReq, opts ...grpc.CallOption) (*UpdateUserInfoResp, error) @@ -1011,19 +2888,27 @@ type UserClient interface { GetReceiveMessageOpt(ctx context.Context, in *GetReceiveMessageOptReq, opts ...grpc.CallOption) (*GetReceiveMessageOptResp, error) GetAllConversationMsgOpt(ctx context.Context, in *GetAllConversationMsgOptReq, opts ...grpc.CallOption) (*GetAllConversationMsgOptResp, error) AccountCheck(ctx context.Context, in *AccountCheckReq, opts ...grpc.CallOption) (*AccountCheckResp, error) + GetUser(ctx context.Context, in *GetUserReq, opts ...grpc.CallOption) (*GetUserResp, error) + ResignUser(ctx context.Context, in *ResignUserReq, opts ...grpc.CallOption) (*ResignUserResp, error) + AlterUser(ctx context.Context, in *AlterUserReq, opts ...grpc.CallOption) (*AlterUserResp, error) + GetUsers(ctx context.Context, in *GetUsersReq, opts ...grpc.CallOption) (*GetUsersResp, error) + AddUser(ctx context.Context, in *AddUserReq, opts ...grpc.CallOption) (*AddUserResp, error) + BlockUser(ctx context.Context, in *BlockUserReq, opts ...grpc.CallOption) (*BlockUserResp, error) + UnBlockUser(ctx context.Context, in *UnBlockUserReq, opts ...grpc.CallOption) (*UnBlockUserResp, error) + GetBlockUsers(ctx context.Context, in *GetBlockUsersReq, opts ...grpc.CallOption) (*GetBlockUsersResp, error) } type userClient struct { - cc *grpc.ClientConn + cc grpc.ClientConnInterface } -func NewUserClient(cc *grpc.ClientConn) UserClient { +func NewUserClient(cc grpc.ClientConnInterface) UserClient { return &userClient{cc} } func (c *userClient) GetUserInfo(ctx context.Context, in *GetUserInfoReq, opts ...grpc.CallOption) (*GetUserInfoResp, error) { out := new(GetUserInfoResp) - err := grpc.Invoke(ctx, "/user.user/GetUserInfo", in, out, c.cc, opts...) + err := c.cc.Invoke(ctx, "/user.user/GetUserInfo", in, out, opts...) if err != nil { return nil, err } @@ -1032,7 +2917,7 @@ func (c *userClient) GetUserInfo(ctx context.Context, in *GetUserInfoReq, opts . func (c *userClient) UpdateUserInfo(ctx context.Context, in *UpdateUserInfoReq, opts ...grpc.CallOption) (*UpdateUserInfoResp, error) { out := new(UpdateUserInfoResp) - err := grpc.Invoke(ctx, "/user.user/UpdateUserInfo", in, out, c.cc, opts...) + err := c.cc.Invoke(ctx, "/user.user/UpdateUserInfo", in, out, opts...) if err != nil { return nil, err } @@ -1041,7 +2926,7 @@ func (c *userClient) UpdateUserInfo(ctx context.Context, in *UpdateUserInfoReq, func (c *userClient) DeleteUsers(ctx context.Context, in *DeleteUsersReq, opts ...grpc.CallOption) (*DeleteUsersResp, error) { out := new(DeleteUsersResp) - err := grpc.Invoke(ctx, "/user.user/DeleteUsers", in, out, c.cc, opts...) + err := c.cc.Invoke(ctx, "/user.user/DeleteUsers", in, out, opts...) if err != nil { return nil, err } @@ -1050,7 +2935,7 @@ func (c *userClient) DeleteUsers(ctx context.Context, in *DeleteUsersReq, opts . func (c *userClient) GetAllUserID(ctx context.Context, in *GetAllUserIDReq, opts ...grpc.CallOption) (*GetAllUserIDResp, error) { out := new(GetAllUserIDResp) - err := grpc.Invoke(ctx, "/user.user/GetAllUserID", in, out, c.cc, opts...) + err := c.cc.Invoke(ctx, "/user.user/GetAllUserID", in, out, opts...) if err != nil { return nil, err } @@ -1059,7 +2944,7 @@ func (c *userClient) GetAllUserID(ctx context.Context, in *GetAllUserIDReq, opts func (c *userClient) SetReceiveMessageOpt(ctx context.Context, in *SetReceiveMessageOptReq, opts ...grpc.CallOption) (*SetReceiveMessageOptResp, error) { out := new(SetReceiveMessageOptResp) - err := grpc.Invoke(ctx, "/user.user/SetReceiveMessageOpt", in, out, c.cc, opts...) + err := c.cc.Invoke(ctx, "/user.user/SetReceiveMessageOpt", in, out, opts...) if err != nil { return nil, err } @@ -1068,7 +2953,7 @@ func (c *userClient) SetReceiveMessageOpt(ctx context.Context, in *SetReceiveMes func (c *userClient) GetReceiveMessageOpt(ctx context.Context, in *GetReceiveMessageOptReq, opts ...grpc.CallOption) (*GetReceiveMessageOptResp, error) { out := new(GetReceiveMessageOptResp) - err := grpc.Invoke(ctx, "/user.user/GetReceiveMessageOpt", in, out, c.cc, opts...) + err := c.cc.Invoke(ctx, "/user.user/GetReceiveMessageOpt", in, out, opts...) if err != nil { return nil, err } @@ -1077,7 +2962,7 @@ func (c *userClient) GetReceiveMessageOpt(ctx context.Context, in *GetReceiveMes func (c *userClient) GetAllConversationMsgOpt(ctx context.Context, in *GetAllConversationMsgOptReq, opts ...grpc.CallOption) (*GetAllConversationMsgOptResp, error) { out := new(GetAllConversationMsgOptResp) - err := grpc.Invoke(ctx, "/user.user/GetAllConversationMsgOpt", in, out, c.cc, opts...) + err := c.cc.Invoke(ctx, "/user.user/GetAllConversationMsgOpt", in, out, opts...) if err != nil { return nil, err } @@ -1086,15 +2971,86 @@ func (c *userClient) GetAllConversationMsgOpt(ctx context.Context, in *GetAllCon func (c *userClient) AccountCheck(ctx context.Context, in *AccountCheckReq, opts ...grpc.CallOption) (*AccountCheckResp, error) { out := new(AccountCheckResp) - err := grpc.Invoke(ctx, "/user.user/AccountCheck", in, out, c.cc, opts...) + err := c.cc.Invoke(ctx, "/user.user/AccountCheck", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *userClient) GetUser(ctx context.Context, in *GetUserReq, opts ...grpc.CallOption) (*GetUserResp, error) { + out := new(GetUserResp) + err := c.cc.Invoke(ctx, "/user.user/GetUser", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *userClient) ResignUser(ctx context.Context, in *ResignUserReq, opts ...grpc.CallOption) (*ResignUserResp, error) { + out := new(ResignUserResp) + err := c.cc.Invoke(ctx, "/user.user/ResignUser", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *userClient) AlterUser(ctx context.Context, in *AlterUserReq, opts ...grpc.CallOption) (*AlterUserResp, error) { + out := new(AlterUserResp) + err := c.cc.Invoke(ctx, "/user.user/AlterUser", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *userClient) GetUsers(ctx context.Context, in *GetUsersReq, opts ...grpc.CallOption) (*GetUsersResp, error) { + out := new(GetUsersResp) + err := c.cc.Invoke(ctx, "/user.user/GetUsers", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *userClient) AddUser(ctx context.Context, in *AddUserReq, opts ...grpc.CallOption) (*AddUserResp, error) { + out := new(AddUserResp) + err := c.cc.Invoke(ctx, "/user.user/AddUser", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *userClient) BlockUser(ctx context.Context, in *BlockUserReq, opts ...grpc.CallOption) (*BlockUserResp, error) { + out := new(BlockUserResp) + err := c.cc.Invoke(ctx, "/user.user/BlockUser", in, out, opts...) if err != nil { return nil, err } return out, nil } -// Server API for User service +func (c *userClient) UnBlockUser(ctx context.Context, in *UnBlockUserReq, opts ...grpc.CallOption) (*UnBlockUserResp, error) { + out := new(UnBlockUserResp) + err := c.cc.Invoke(ctx, "/user.user/UnBlockUser", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *userClient) GetBlockUsers(ctx context.Context, in *GetBlockUsersReq, opts ...grpc.CallOption) (*GetBlockUsersResp, error) { + out := new(GetBlockUsersResp) + err := c.cc.Invoke(ctx, "/user.user/GetBlockUsers", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} +// UserServer is the server API for User service. type UserServer interface { GetUserInfo(context.Context, *GetUserInfoReq) (*GetUserInfoResp, error) UpdateUserInfo(context.Context, *UpdateUserInfoReq) (*UpdateUserInfoResp, error) @@ -1104,6 +3060,67 @@ type UserServer interface { GetReceiveMessageOpt(context.Context, *GetReceiveMessageOptReq) (*GetReceiveMessageOptResp, error) GetAllConversationMsgOpt(context.Context, *GetAllConversationMsgOptReq) (*GetAllConversationMsgOptResp, error) AccountCheck(context.Context, *AccountCheckReq) (*AccountCheckResp, error) + GetUser(context.Context, *GetUserReq) (*GetUserResp, error) + ResignUser(context.Context, *ResignUserReq) (*ResignUserResp, error) + AlterUser(context.Context, *AlterUserReq) (*AlterUserResp, error) + GetUsers(context.Context, *GetUsersReq) (*GetUsersResp, error) + AddUser(context.Context, *AddUserReq) (*AddUserResp, error) + BlockUser(context.Context, *BlockUserReq) (*BlockUserResp, error) + UnBlockUser(context.Context, *UnBlockUserReq) (*UnBlockUserResp, error) + GetBlockUsers(context.Context, *GetBlockUsersReq) (*GetBlockUsersResp, error) +} + +// UnimplementedUserServer can be embedded to have forward compatible implementations. +type UnimplementedUserServer struct { +} + +func (*UnimplementedUserServer) GetUserInfo(context.Context, *GetUserInfoReq) (*GetUserInfoResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetUserInfo not implemented") +} +func (*UnimplementedUserServer) UpdateUserInfo(context.Context, *UpdateUserInfoReq) (*UpdateUserInfoResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method UpdateUserInfo not implemented") +} +func (*UnimplementedUserServer) DeleteUsers(context.Context, *DeleteUsersReq) (*DeleteUsersResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method DeleteUsers not implemented") +} +func (*UnimplementedUserServer) GetAllUserID(context.Context, *GetAllUserIDReq) (*GetAllUserIDResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetAllUserID not implemented") +} +func (*UnimplementedUserServer) SetReceiveMessageOpt(context.Context, *SetReceiveMessageOptReq) (*SetReceiveMessageOptResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method SetReceiveMessageOpt not implemented") +} +func (*UnimplementedUserServer) GetReceiveMessageOpt(context.Context, *GetReceiveMessageOptReq) (*GetReceiveMessageOptResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetReceiveMessageOpt not implemented") +} +func (*UnimplementedUserServer) GetAllConversationMsgOpt(context.Context, *GetAllConversationMsgOptReq) (*GetAllConversationMsgOptResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetAllConversationMsgOpt not implemented") +} +func (*UnimplementedUserServer) AccountCheck(context.Context, *AccountCheckReq) (*AccountCheckResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method AccountCheck not implemented") +} +func (*UnimplementedUserServer) GetUser(context.Context, *GetUserReq) (*GetUserResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetUser not implemented") +} +func (*UnimplementedUserServer) ResignUser(context.Context, *ResignUserReq) (*ResignUserResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method ResignUser not implemented") +} +func (*UnimplementedUserServer) AlterUser(context.Context, *AlterUserReq) (*AlterUserResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method AlterUser not implemented") +} +func (*UnimplementedUserServer) GetUsers(context.Context, *GetUsersReq) (*GetUsersResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetUsers not implemented") +} +func (*UnimplementedUserServer) AddUser(context.Context, *AddUserReq) (*AddUserResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method AddUser not implemented") +} +func (*UnimplementedUserServer) BlockUser(context.Context, *BlockUserReq) (*BlockUserResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method BlockUser not implemented") +} +func (*UnimplementedUserServer) UnBlockUser(context.Context, *UnBlockUserReq) (*UnBlockUserResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method UnBlockUser not implemented") +} +func (*UnimplementedUserServer) GetBlockUsers(context.Context, *GetBlockUsersReq) (*GetBlockUsersResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetBlockUsers not implemented") } func RegisterUserServer(s *grpc.Server, srv UserServer) { @@ -1254,6 +3271,150 @@ func _User_AccountCheck_Handler(srv interface{}, ctx context.Context, dec func(i return interceptor(ctx, in, info, handler) } +func _User_GetUser_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetUserReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(UserServer).GetUser(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/user.user/GetUser", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(UserServer).GetUser(ctx, req.(*GetUserReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _User_ResignUser_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(ResignUserReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(UserServer).ResignUser(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/user.user/ResignUser", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(UserServer).ResignUser(ctx, req.(*ResignUserReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _User_AlterUser_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(AlterUserReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(UserServer).AlterUser(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/user.user/AlterUser", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(UserServer).AlterUser(ctx, req.(*AlterUserReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _User_GetUsers_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetUsersReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(UserServer).GetUsers(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/user.user/GetUsers", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(UserServer).GetUsers(ctx, req.(*GetUsersReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _User_AddUser_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(AddUserReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(UserServer).AddUser(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/user.user/AddUser", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(UserServer).AddUser(ctx, req.(*AddUserReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _User_BlockUser_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(BlockUserReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(UserServer).BlockUser(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/user.user/BlockUser", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(UserServer).BlockUser(ctx, req.(*BlockUserReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _User_UnBlockUser_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(UnBlockUserReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(UserServer).UnBlockUser(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/user.user/UnBlockUser", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(UserServer).UnBlockUser(ctx, req.(*UnBlockUserReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _User_GetBlockUsers_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetBlockUsersReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(UserServer).GetBlockUsers(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/user.user/GetBlockUsers", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(UserServer).GetBlockUsers(ctx, req.(*GetBlockUsersReq)) + } + return interceptor(ctx, in, info, handler) +} + var _User_serviceDesc = grpc.ServiceDesc{ ServiceName: "user.user", HandlerType: (*UserServer)(nil), @@ -1290,65 +3451,39 @@ var _User_serviceDesc = grpc.ServiceDesc{ MethodName: "AccountCheck", Handler: _User_AccountCheck_Handler, }, + { + MethodName: "GetUser", + Handler: _User_GetUser_Handler, + }, + { + MethodName: "ResignUser", + Handler: _User_ResignUser_Handler, + }, + { + MethodName: "AlterUser", + Handler: _User_AlterUser_Handler, + }, + { + MethodName: "GetUsers", + Handler: _User_GetUsers_Handler, + }, + { + MethodName: "AddUser", + Handler: _User_AddUser_Handler, + }, + { + MethodName: "BlockUser", + Handler: _User_BlockUser_Handler, + }, + { + MethodName: "UnBlockUser", + Handler: _User_UnBlockUser_Handler, + }, + { + MethodName: "GetBlockUsers", + Handler: _User_GetBlockUsers_Handler, + }, }, Streams: []grpc.StreamDesc{}, Metadata: "user/user.proto", } - -func init() { proto.RegisterFile("user/user.proto", fileDescriptor_user_9cd4aaf870b6d3b5) } - -var fileDescriptor_user_9cd4aaf870b6d3b5 = []byte{ - // 819 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x56, 0xcd, 0x6e, 0x13, 0x3b, - 0x14, 0xd6, 0x24, 0x69, 0x6f, 0x73, 0xd2, 0x26, 0xb9, 0x56, 0x6f, 0x3b, 0x77, 0x0a, 0x55, 0x6a, - 0x21, 0x88, 0xba, 0x48, 0x50, 0x59, 0x20, 0x81, 0x00, 0x95, 0x54, 0x8d, 0x2a, 0x88, 0x82, 0xa6, - 0xea, 0x86, 0x4d, 0x34, 0x24, 0x26, 0x44, 0x4d, 0xc6, 0xc6, 0x9e, 0xb4, 0x02, 0xb6, 0xac, 0x78, - 0x05, 0x16, 0x2c, 0x79, 0x06, 0x5e, 0x83, 0x17, 0xe0, 0x55, 0xd0, 0xd8, 0x33, 0x89, 0xe7, 0x27, - 0xd3, 0x12, 0x24, 0xc4, 0x66, 0x34, 0x3e, 0x3e, 0x3e, 0xfe, 0xbe, 0xef, 0x1c, 0xdb, 0x07, 0x2a, - 0x53, 0x41, 0x78, 0xd3, 0xff, 0x34, 0x18, 0xa7, 0x1e, 0x45, 0x05, 0xff, 0xdf, 0xda, 0xeb, 0x32, - 0xe2, 0xf6, 0x4e, 0x3a, 0x4d, 0x76, 0x3e, 0x6c, 0xca, 0x89, 0xa6, 0x18, 0x9c, 0xf7, 0x2e, 0x45, - 0xf3, 0x52, 0x28, 0x47, 0xfc, 0x18, 0xa0, 0x45, 0x27, 0x13, 0xea, 0xda, 0x44, 0x30, 0x64, 0xc2, - 0x3f, 0x84, 0xf3, 0x16, 0x1d, 0x10, 0xd3, 0xa8, 0x19, 0xf5, 0x15, 0x3b, 0x1c, 0xa2, 0x2d, 0x58, - 0x25, 0x9c, 0x77, 0xc4, 0xd0, 0xcc, 0xd5, 0x8c, 0x7a, 0xd1, 0x0e, 0x46, 0xf8, 0x3d, 0x94, 0x8f, - 0xc8, 0x98, 0x78, 0xe4, 0x4c, 0x10, 0x2e, 0x6c, 0xf2, 0x16, 0xed, 0x43, 0x75, 0x6e, 0x39, 0x39, - 0x7a, 0x3e, 0x12, 0x9e, 0x99, 0xab, 0xe5, 0xeb, 0x45, 0x3b, 0x61, 0x47, 0x16, 0xac, 0x75, 0x99, - 0x1a, 0x9b, 0x79, 0x19, 0x77, 0x36, 0x46, 0x35, 0x28, 0x75, 0x19, 0xe1, 0x8e, 0x37, 0xa2, 0xee, - 0xc9, 0x91, 0x59, 0x90, 0xd3, 0xba, 0x09, 0x53, 0xa8, 0x44, 0xf6, 0x16, 0x0c, 0xdd, 0xd5, 0xe9, - 0x48, 0x0e, 0xa5, 0x83, 0x6a, 0x43, 0x0a, 0x33, 0xb7, 0xdb, 0x3a, 0xe5, 0x7d, 0xa8, 0x1e, 0x3b, - 0xa3, 0x31, 0x19, 0x24, 0xe1, 0xc6, 0xed, 0xb8, 0x0b, 0x95, 0x36, 0xf1, 0x0e, 0xc7, 0x63, 0x65, - 0xf3, 0xd9, 0x5a, 0xb0, 0x46, 0x43, 0x06, 0x86, 0x62, 0x40, 0x35, 0x06, 0x54, 0x63, 0xa0, 0x84, - 0xd3, 0x4d, 0x78, 0x00, 0xd5, 0x68, 0xc0, 0xa5, 0x28, 0xec, 0x02, 0x24, 0xc0, 0x6b, 0x16, 0xfc, - 0x0e, 0x2a, 0x87, 0xfd, 0x3e, 0x9d, 0xba, 0x5e, 0xeb, 0x0d, 0xe9, 0x9f, 0xfb, 0xb0, 0xeb, 0x50, - 0x91, 0xff, 0xda, 0x3a, 0x43, 0xae, 0x8b, 0x9b, 0x23, 0x29, 0xca, 0x65, 0xa7, 0x28, 0x9f, 0x4c, - 0xd1, 0x0f, 0x03, 0xaa, 0xd1, 0xbd, 0x15, 0xc3, 0xfe, 0x35, 0x18, 0xce, 0x7d, 0x50, 0x1b, 0xc0, - 0x26, 0x62, 0x3a, 0xf6, 0x66, 0x0c, 0x4b, 0x07, 0x77, 0xd4, 0x8a, 0x78, 0xf4, 0xc6, 0xe9, 0xc8, - 0x1d, 0x8e, 0x65, 0x49, 0x9c, 0x7a, 0x8e, 0x37, 0x15, 0xb6, 0xb6, 0xd4, 0x7a, 0x01, 0xd5, 0xf8, - 0xbc, 0x5f, 0xda, 0x53, 0x3d, 0x81, 0xc1, 0x08, 0xdd, 0x82, 0x0d, 0x47, 0x05, 0x57, 0x8e, 0x01, - 0xfd, 0xa8, 0x11, 0xbb, 0x50, 0x6e, 0x13, 0x4f, 0x0a, 0xe2, 0xbe, 0xa6, 0xbe, 0xb6, 0xbb, 0x00, - 0xd3, 0xb8, 0xac, 0x9a, 0xe5, 0x37, 0x15, 0xfd, 0x68, 0xc8, 0x22, 0x9c, 0x6f, 0xb8, 0x94, 0xa0, - 0x4f, 0x60, 0x3d, 0x8c, 0x20, 0x51, 0xe6, 0xa5, 0xa4, 0x3b, 0x0d, 0x41, 0xf8, 0x05, 0xe1, 0x3d, - 0x87, 0x8d, 0x7a, 0xcc, 0xe1, 0xce, 0x44, 0x34, 0x66, 0x1b, 0x45, 0x16, 0xe0, 0x4f, 0x06, 0xfc, - 0x7b, 0xc6, 0x06, 0x4e, 0x70, 0x9c, 0x03, 0xea, 0xf7, 0x61, 0x2d, 0x1c, 0x06, 0x30, 0x32, 0x43, - 0xce, 0x9c, 0xaf, 0xd2, 0x84, 0x26, 0x35, 0xd1, 0x8f, 0xd1, 0x31, 0xa0, 0x38, 0x96, 0x65, 0x54, - 0xc1, 0xdf, 0x0c, 0xd8, 0x3e, 0x25, 0x9e, 0x4d, 0xfa, 0x64, 0x74, 0x41, 0x3a, 0x44, 0x08, 0x67, - 0x48, 0xba, 0xcc, 0x0b, 0xb2, 0x7a, 0xcc, 0xe9, 0x24, 0x72, 0xd4, 0x35, 0x0b, 0xaa, 0x42, 0x9e, - 0x32, 0x4f, 0x82, 0x5f, 0xb1, 0xfd, 0x5f, 0xd4, 0x00, 0xd4, 0xa7, 0xee, 0x05, 0xe1, 0x22, 0xc0, - 0x39, 0x53, 0xba, 0x68, 0xa7, 0xcc, 0xc4, 0x79, 0x16, 0x12, 0x3c, 0x23, 0x2a, 0xad, 0x44, 0x55, - 0xc2, 0xcf, 0xa0, 0x28, 0x91, 0xfa, 0xa5, 0x8e, 0x6e, 0x43, 0x39, 0xba, 0x41, 0x00, 0x38, 0x66, - 0xf5, 0x4b, 0x9f, 0xcb, 0x15, 0x01, 0xee, 0x60, 0x84, 0x3f, 0x1b, 0x60, 0xa6, 0x0b, 0xb1, 0x54, - 0xb5, 0x75, 0xe0, 0x7f, 0x7d, 0xe3, 0x19, 0x4e, 0xed, 0x34, 0x57, 0x54, 0x80, 0xd9, 0x94, 0xbd, - 0x78, 0x05, 0xfe, 0x6a, 0xc0, 0x76, 0x7b, 0xc9, 0x34, 0xa5, 0x27, 0x25, 0x77, 0xdd, 0xa4, 0xe4, - 0xb3, 0x93, 0x52, 0x88, 0x25, 0xc5, 0xd7, 0xb1, 0xfd, 0x87, 0x74, 0xcc, 0xff, 0xb2, 0x8e, 0x1f, - 0x60, 0x47, 0xbd, 0x3e, 0x2d, 0xcd, 0xa5, 0x23, 0x86, 0xd7, 0x94, 0xf2, 0xca, 0xe7, 0x2d, 0xeb, - 0x79, 0xc7, 0x5f, 0x0c, 0xb8, 0xb1, 0x78, 0xf7, 0xbf, 0x40, 0x9e, 0x83, 0xef, 0x05, 0x90, 0x6d, - 0x14, 0x7a, 0x00, 0x25, 0xed, 0xc6, 0x45, 0x9b, 0x2a, 0x46, 0xf4, 0xd6, 0xb7, 0xfe, 0x4b, 0xb1, - 0x0a, 0x86, 0x5a, 0x50, 0x8e, 0x5e, 0x4d, 0x68, 0x5b, 0x39, 0x26, 0x2e, 0x4f, 0xcb, 0x4c, 0x9f, - 0x10, 0xcc, 0x07, 0xa0, 0x35, 0x3a, 0x21, 0x80, 0x68, 0xdf, 0x15, 0x02, 0x88, 0x77, 0x44, 0x8f, - 0x60, 0x5d, 0x6f, 0x31, 0xd0, 0x1c, 0xa7, 0xde, 0xc7, 0x58, 0x5b, 0x69, 0x66, 0xc1, 0xd0, 0x19, - 0x6c, 0xa6, 0x5d, 0x04, 0xe8, 0xa6, 0xf2, 0x5f, 0x70, 0x5b, 0x5a, 0xbb, 0x59, 0xd3, 0x2a, 0x6c, - 0x3b, 0x23, 0x6c, 0x3b, 0x3b, 0xec, 0xc2, 0x23, 0xe5, 0xc8, 0xe3, 0x96, 0x5a, 0x53, 0x68, 0x4f, - 0x67, 0x98, 0x5a, 0xf1, 0x16, 0xbe, 0xca, 0x45, 0xe9, 0xa9, 0xb7, 0x1c, 0xa1, 0x9e, 0xb1, 0x06, - 0x2b, 0xd4, 0x33, 0xde, 0x9d, 0x3c, 0xdd, 0x78, 0x59, 0x6a, 0xc8, 0x46, 0xfd, 0xa1, 0xff, 0x79, - 0xb5, 0x2a, 0xbb, 0xf0, 0x7b, 0x3f, 0x03, 0x00, 0x00, 0xff, 0xff, 0x95, 0x5e, 0xfc, 0xe6, 0xc1, - 0x0b, 0x00, 0x00, -} diff --git a/pkg/proto/user/user.proto b/pkg/proto/user/user.proto index 18ecff94c..2967235b3 100644 --- a/pkg/proto/user/user.proto +++ b/pkg/proto/user/user.proto @@ -13,6 +13,7 @@ message DeleteUsersReq{ string OpUserID = 3; string OperationID = 4; } + message DeleteUsersResp{ CommonResp CommonResp = 1; repeated string FailedUserIDList = 2; @@ -107,53 +108,84 @@ message GetAllConversationMsgOptResp{ } message ResignUserReq{ - string UserId = 1; - string OperationID = 2; + string UserId = 1; + string OperationID = 2; } message ResignUserResp{ - CommonResp commonResp = 1; + CommonResp commonResp = 1; } message GetUserReq{ - string UserId = 1; - string OperationID = 2; + string UserId = 1; + string OperationID = 2; } message User{ - + string ProfilePhoto = 1; + string Nickname = 2; + string UserID = 3; + string CreateTime = 4; } message GetUserResp{ - User user = 1 + User user = 1; } message AlterUserReq{ - string UserId = 1; - string OperationID = 2; + string UserId = 1; + string OperationID = 2; } message AlterUserResp{ - CommonResp commonResp = 1; + CommonResp CommonResp = 1; } -message GetUserReq{ - string OperationID = 1; +message GetUsersReq { + string OperationID = 1; + server_api_params.RequestPagination Pagination = 2; } message GetUsersResp{ - string OperationID = 1; - repeated Users User = 2; + string OperationID = 1; + repeated User user = 2; } message AddUserReq{ - string OperationID = 1; + string OperationID = 1; } message AddUserResp{ - CommonResp commonResp = 1; } + +message BlockUserReq{ + string UserID = 1; + string OperationID = 2; +} + +message BlockUserResp{ +} + +message UnBlockUserReq{ + string UserID = 1; + string OperationID = 2; +} + +message UnBlockUserResp{ + +} + +message GetBlockUsersReq{ + server_api_params.RequestPagination Pagination =1; + string OperationID = 2; +} + +message GetBlockUsersResp{ + repeated User user = 2; +} + + service user { rpc GetUserInfo(GetUserInfoReq) returns(GetUserInfoResp); rpc UpdateUserInfo(UpdateUserInfoReq) returns(UpdateUserInfoResp); @@ -164,8 +196,8 @@ service user { rpc GetAllConversationMsgOpt(GetAllConversationMsgOptReq)returns(GetAllConversationMsgOptResp); rpc AccountCheck(AccountCheckReq)returns(AccountCheckResp); - rpc ResignUser(ResignUserReq) returns (ResignUserResp); rpc GetUser(GetUserReq) returns (GetUserResp); + rpc ResignUser(ResignUserReq) returns (ResignUserResp); rpc AlterUser(AlterUserReq) returns (AlterUserResp); rpc GetUsers(GetUsersReq) returns (GetUsersResp); rpc AddUser(AddUserReq) returns (AddUserResp); From 8525dcb376e8efc0d4e1ebda3c3803f40740df4e Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Mon, 24 Jan 2022 16:44:14 +0800 Subject: [PATCH 553/814] fix time convert --- internal/rpc/user/user.go | 1 + 1 file changed, 1 insertion(+) diff --git a/internal/rpc/user/user.go b/internal/rpc/user/user.go index a0c451026..147bf2d86 100644 --- a/internal/rpc/user/user.go +++ b/internal/rpc/user/user.go @@ -80,6 +80,7 @@ func (s *userServer) GetUserInfo(ctx context.Context, req *pbUser.GetUserInfoReq continue } utils.CopyStructFields(&userInfo, user) + userInfo.Birth = uint32(user.Birth.Unix()) userInfoList = append(userInfoList, &userInfo) } } else { From 82c8ace8dfe068696d6851df35d320870016a35d Mon Sep 17 00:00:00 2001 From: wangchuxiao Date: Mon, 24 Jan 2022 18:22:47 +0800 Subject: [PATCH 554/814] cms dev --- pkg/proto/sdk_ws/ws.pb.go | 4 +- pkg/proto/user/user.pb.go | 446 +++++++++++++++++++++++--------------- pkg/proto/user/user.proto | 20 +- 3 files changed, 292 insertions(+), 178 deletions(-) diff --git a/pkg/proto/sdk_ws/ws.pb.go b/pkg/proto/sdk_ws/ws.pb.go index 7baaa6b6f..3245b33ee 100644 --- a/pkg/proto/sdk_ws/ws.pb.go +++ b/pkg/proto/sdk_ws/ws.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.26.0 -// protoc v3.19.3 +// protoc-gen-go v1.27.1 +// protoc v3.15.5 // source: sdk_ws/ws.proto package server_api_params diff --git a/pkg/proto/user/user.pb.go b/pkg/proto/user/user.pb.go index b5b51762d..4efc81178 100644 --- a/pkg/proto/user/user.pb.go +++ b/pkg/proto/user/user.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.26.0 -// protoc v3.19.3 +// protoc-gen-go v1.27.1 +// protoc v3.15.5 // source: user/user.proto package user @@ -1251,7 +1251,7 @@ type User struct { ProfilePhoto string `protobuf:"bytes,1,opt,name=ProfilePhoto,proto3" json:"ProfilePhoto,omitempty"` Nickname string `protobuf:"bytes,2,opt,name=Nickname,proto3" json:"Nickname,omitempty"` - UserID string `protobuf:"bytes,3,opt,name=UserID,proto3" json:"UserID,omitempty"` + UserId string `protobuf:"bytes,3,opt,name=UserId,proto3" json:"UserId,omitempty"` CreateTime string `protobuf:"bytes,4,opt,name=CreateTime,proto3" json:"CreateTime,omitempty"` } @@ -1301,9 +1301,9 @@ func (x *User) GetNickname() string { return "" } -func (x *User) GetUserID() string { +func (x *User) GetUserId() string { if x != nil { - return x.UserID + return x.UserId } return "" } @@ -1320,7 +1320,8 @@ type GetUserResp struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - User *User `protobuf:"bytes,1,opt,name=user,proto3" json:"user,omitempty"` + CommonResp *CommonResp `protobuf:"bytes,1,opt,name=CommonResp,proto3" json:"CommonResp,omitempty"` + User *User `protobuf:"bytes,2,opt,name=user,proto3" json:"user,omitempty"` } func (x *GetUserResp) Reset() { @@ -1355,6 +1356,13 @@ func (*GetUserResp) Descriptor() ([]byte, []int) { return file_user_user_proto_rawDescGZIP(), []int{22} } +func (x *GetUserResp) GetCommonResp() *CommonResp { + if x != nil { + return x.CommonResp + } + return nil +} + func (x *GetUserResp) GetUser() *User { if x != nil { return x.User @@ -1524,8 +1532,9 @@ type GetUsersResp struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - OperationID string `protobuf:"bytes,1,opt,name=OperationID,proto3" json:"OperationID,omitempty"` - User []*User `protobuf:"bytes,2,rep,name=user,proto3" json:"user,omitempty"` + CommonResp *CommonResp `protobuf:"bytes,1,opt,name=CommonResp,proto3" json:"CommonResp,omitempty"` + OperationID string `protobuf:"bytes,2,opt,name=OperationID,proto3" json:"OperationID,omitempty"` + User []*User `protobuf:"bytes,3,rep,name=user,proto3" json:"user,omitempty"` } func (x *GetUsersResp) Reset() { @@ -1560,6 +1569,13 @@ func (*GetUsersResp) Descriptor() ([]byte, []int) { return file_user_user_proto_rawDescGZIP(), []int{26} } +func (x *GetUsersResp) GetCommonResp() *CommonResp { + if x != nil { + return x.CommonResp + } + return nil +} + func (x *GetUsersResp) GetOperationID() string { if x != nil { return x.OperationID @@ -1580,6 +1596,8 @@ type AddUserReq struct { unknownFields protoimpl.UnknownFields OperationID string `protobuf:"bytes,1,opt,name=OperationID,proto3" json:"OperationID,omitempty"` + PhoneNumber string `protobuf:"bytes,2,opt,name=PhoneNumber,proto3" json:"PhoneNumber,omitempty"` + UserId string `protobuf:"bytes,3,opt,name=UserId,proto3" json:"UserId,omitempty"` } func (x *AddUserReq) Reset() { @@ -1621,10 +1639,26 @@ func (x *AddUserReq) GetOperationID() string { return "" } +func (x *AddUserReq) GetPhoneNumber() string { + if x != nil { + return x.PhoneNumber + } + return "" +} + +func (x *AddUserReq) GetUserId() string { + if x != nil { + return x.UserId + } + return "" +} + type AddUserResp struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields + + CommonResp *CommonResp `protobuf:"bytes,1,opt,name=CommonResp,proto3" json:"CommonResp,omitempty"` } func (x *AddUserResp) Reset() { @@ -1659,13 +1693,21 @@ func (*AddUserResp) Descriptor() ([]byte, []int) { return file_user_user_proto_rawDescGZIP(), []int{28} } +func (x *AddUserResp) GetCommonResp() *CommonResp { + if x != nil { + return x.CommonResp + } + return nil +} + type BlockUserReq struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - UserID string `protobuf:"bytes,1,opt,name=UserID,proto3" json:"UserID,omitempty"` - OperationID string `protobuf:"bytes,2,opt,name=OperationID,proto3" json:"OperationID,omitempty"` + UserID string `protobuf:"bytes,1,opt,name=UserID,proto3" json:"UserID,omitempty"` + EndDisableTime string `protobuf:"bytes,2,opt,name=EndDisableTime,proto3" json:"EndDisableTime,omitempty"` + OperationID string `protobuf:"bytes,3,opt,name=OperationID,proto3" json:"OperationID,omitempty"` } func (x *BlockUserReq) Reset() { @@ -1707,6 +1749,13 @@ func (x *BlockUserReq) GetUserID() string { return "" } +func (x *BlockUserReq) GetEndDisableTime() string { + if x != nil { + return x.EndDisableTime + } + return "" +} + func (x *BlockUserReq) GetOperationID() string { if x != nil { return x.OperationID @@ -1718,6 +1767,8 @@ type BlockUserResp struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields + + CommonResp *CommonResp `protobuf:"bytes,1,opt,name=CommonResp,proto3" json:"CommonResp,omitempty"` } func (x *BlockUserResp) Reset() { @@ -1752,6 +1803,13 @@ func (*BlockUserResp) Descriptor() ([]byte, []int) { return file_user_user_proto_rawDescGZIP(), []int{30} } +func (x *BlockUserResp) GetCommonResp() *CommonResp { + if x != nil { + return x.CommonResp + } + return nil +} + type UnBlockUserReq struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -1811,6 +1869,8 @@ type UnBlockUserResp struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields + + CommonResp *CommonResp `protobuf:"bytes,1,opt,name=CommonResp,proto3" json:"CommonResp,omitempty"` } func (x *UnBlockUserResp) Reset() { @@ -1845,6 +1905,13 @@ func (*UnBlockUserResp) Descriptor() ([]byte, []int) { return file_user_user_proto_rawDescGZIP(), []int{32} } +func (x *UnBlockUserResp) GetCommonResp() *CommonResp { + if x != nil { + return x.CommonResp + } + return nil +} + type GetBlockUsersReq struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -1905,7 +1972,8 @@ type GetBlockUsersResp struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - User []*User `protobuf:"bytes,2,rep,name=user,proto3" json:"user,omitempty"` + CommonResp *CommonResp `protobuf:"bytes,1,opt,name=CommonResp,proto3" json:"CommonResp,omitempty"` + User []*User `protobuf:"bytes,2,rep,name=user,proto3" json:"user,omitempty"` } func (x *GetBlockUsersResp) Reset() { @@ -1940,6 +2008,13 @@ func (*GetBlockUsersResp) Descriptor() ([]byte, []int) { return file_user_user_proto_rawDescGZIP(), []int{34} } +func (x *GetBlockUsersResp) GetCommonResp() *CommonResp { + if x != nil { + return x.CommonResp + } + return nil +} + func (x *GetBlockUsersResp) GetUser() []*User { if x != nil { return x.User @@ -2172,127 +2247,152 @@ var file_user_user_proto_rawDesc = []byte{ 0x68, 0x6f, 0x74, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x50, 0x68, 0x6f, 0x74, 0x6f, 0x12, 0x1a, 0x0a, 0x08, 0x4e, 0x69, 0x63, 0x6b, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x4e, 0x69, 0x63, 0x6b, - 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, + 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0a, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x22, 0x2d, 0x0a, 0x0b, - 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x12, 0x1e, 0x0a, 0x04, 0x75, - 0x73, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x75, 0x73, 0x65, 0x72, - 0x2e, 0x55, 0x73, 0x65, 0x72, 0x52, 0x04, 0x75, 0x73, 0x65, 0x72, 0x22, 0x48, 0x0a, 0x0c, 0x41, - 0x6c, 0x74, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x12, 0x16, 0x0a, 0x06, 0x55, - 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x55, 0x73, 0x65, - 0x72, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x22, 0x41, 0x0a, 0x0d, 0x41, 0x6c, 0x74, 0x65, 0x72, 0x55, 0x73, - 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x12, 0x30, 0x0a, 0x0a, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, - 0x52, 0x65, 0x73, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x75, 0x73, 0x65, - 0x72, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x52, 0x0a, 0x43, 0x6f, - 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0x75, 0x0a, 0x0b, 0x47, 0x65, 0x74, 0x55, - 0x73, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x4f, 0x70, - 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x12, 0x44, 0x0a, 0x0a, 0x50, 0x61, 0x67, - 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, - 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, - 0x73, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x52, 0x0a, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, - 0x50, 0x0a, 0x0c, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x12, - 0x20, 0x0a, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, - 0x44, 0x12, 0x1e, 0x0a, 0x04, 0x75, 0x73, 0x65, 0x72, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x0a, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x52, 0x04, 0x75, 0x73, 0x65, - 0x72, 0x22, 0x2e, 0x0a, 0x0a, 0x41, 0x64, 0x64, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x12, - 0x20, 0x0a, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, - 0x44, 0x22, 0x0d, 0x0a, 0x0b, 0x41, 0x64, 0x64, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, - 0x22, 0x48, 0x0a, 0x0c, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, - 0x12, 0x16, 0x0a, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x70, 0x65, 0x72, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x4f, - 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x22, 0x0f, 0x0a, 0x0d, 0x42, 0x6c, - 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x22, 0x4a, 0x0a, 0x0e, 0x55, - 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x12, 0x16, 0x0a, - 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x55, - 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, + 0x52, 0x0a, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x22, 0x5f, 0x0a, 0x0b, + 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x12, 0x30, 0x0a, 0x0a, 0x43, + 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x10, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, + 0x70, 0x52, 0x0a, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x12, 0x1e, 0x0a, + 0x04, 0x75, 0x73, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x75, 0x73, + 0x65, 0x72, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x52, 0x04, 0x75, 0x73, 0x65, 0x72, 0x22, 0x48, 0x0a, + 0x0c, 0x41, 0x6c, 0x74, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x12, 0x16, 0x0a, + 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x55, + 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x4f, 0x70, 0x65, 0x72, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x22, 0x11, 0x0a, 0x0f, 0x55, 0x6e, 0x42, 0x6c, 0x6f, - 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x22, 0x7a, 0x0a, 0x10, 0x47, 0x65, - 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x12, 0x44, - 0x0a, 0x0a, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, - 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x50, 0x61, - 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0a, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x22, 0x41, 0x0a, 0x0d, 0x41, 0x6c, 0x74, 0x65, 0x72, + 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x12, 0x30, 0x0a, 0x0a, 0x43, 0x6f, 0x6d, 0x6d, + 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x75, + 0x73, 0x65, 0x72, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x52, 0x0a, + 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0x75, 0x0a, 0x0b, 0x47, 0x65, + 0x74, 0x55, 0x73, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x70, 0x65, + 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, + 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x12, 0x44, 0x0a, 0x0a, 0x50, + 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x24, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, + 0x61, 0x6d, 0x73, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x50, 0x61, 0x67, 0x69, 0x6e, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0a, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x22, 0x82, 0x01, 0x0a, 0x0c, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x73, 0x52, 0x65, + 0x73, 0x70, 0x12, 0x30, 0x0a, 0x0a, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x43, 0x6f, + 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x52, 0x0a, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, + 0x52, 0x65, 0x73, 0x70, 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x22, 0x33, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x42, 0x6c, 0x6f, - 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x12, 0x1e, 0x0a, 0x04, 0x75, - 0x73, 0x65, 0x72, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x75, 0x73, 0x65, 0x72, - 0x2e, 0x55, 0x73, 0x65, 0x72, 0x52, 0x04, 0x75, 0x73, 0x65, 0x72, 0x32, 0x88, 0x08, 0x0a, 0x04, - 0x75, 0x73, 0x65, 0x72, 0x12, 0x3a, 0x0a, 0x0b, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x49, - 0x6e, 0x66, 0x6f, 0x12, 0x14, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, - 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x1a, 0x15, 0x2e, 0x75, 0x73, 0x65, 0x72, - 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, - 0x12, 0x43, 0x0a, 0x0e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, - 0x66, 0x6f, 0x12, 0x17, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, - 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x1a, 0x18, 0x2e, 0x75, 0x73, - 0x65, 0x72, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, - 0x6f, 0x52, 0x65, 0x73, 0x70, 0x12, 0x3a, 0x0a, 0x0b, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x55, - 0x73, 0x65, 0x72, 0x73, 0x12, 0x14, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x44, 0x65, 0x6c, 0x65, - 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x15, 0x2e, 0x75, 0x73, 0x65, - 0x72, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, - 0x70, 0x12, 0x3d, 0x0a, 0x0c, 0x47, 0x65, 0x74, 0x41, 0x6c, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x49, - 0x44, 0x12, 0x15, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x6c, 0x6c, 0x55, - 0x73, 0x65, 0x72, 0x49, 0x44, 0x52, 0x65, 0x71, 0x1a, 0x16, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, - 0x47, 0x65, 0x74, 0x41, 0x6c, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x52, 0x65, 0x73, 0x70, - 0x12, 0x55, 0x0a, 0x14, 0x53, 0x65, 0x74, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x4d, 0x65, - 0x73, 0x73, 0x61, 0x67, 0x65, 0x4f, 0x70, 0x74, 0x12, 0x1d, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, - 0x53, 0x65, 0x74, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, - 0x65, 0x4f, 0x70, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x1e, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x53, + 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x04, 0x75, 0x73, 0x65, 0x72, 0x18, 0x03, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x55, 0x73, 0x65, 0x72, + 0x52, 0x04, 0x75, 0x73, 0x65, 0x72, 0x22, 0x68, 0x0a, 0x0a, 0x41, 0x64, 0x64, 0x55, 0x73, 0x65, + 0x72, 0x52, 0x65, 0x71, 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x4e, + 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x50, 0x68, 0x6f, + 0x6e, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x55, 0x73, 0x65, 0x72, + 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, + 0x22, 0x3f, 0x0a, 0x0b, 0x41, 0x64, 0x64, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x12, + 0x30, 0x0a, 0x0a, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, + 0x6e, 0x52, 0x65, 0x73, 0x70, 0x52, 0x0a, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, + 0x70, 0x22, 0x70, 0x0a, 0x0c, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, + 0x71, 0x12, 0x16, 0x0a, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x26, 0x0a, 0x0e, 0x45, 0x6e, 0x64, + 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0e, 0x45, 0x6e, 0x64, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x54, 0x69, 0x6d, + 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x49, 0x44, 0x22, 0x41, 0x0a, 0x0d, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, + 0x52, 0x65, 0x73, 0x70, 0x12, 0x30, 0x0a, 0x0a, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, + 0x73, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, + 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x52, 0x0a, 0x43, 0x6f, 0x6d, 0x6d, + 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0x4a, 0x0a, 0x0e, 0x55, 0x6e, 0x42, 0x6c, 0x6f, 0x63, + 0x6b, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x12, 0x16, 0x0a, 0x06, 0x55, 0x73, 0x65, 0x72, + 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, + 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x49, 0x44, 0x22, 0x43, 0x0a, 0x0f, 0x55, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, + 0x72, 0x52, 0x65, 0x73, 0x70, 0x12, 0x30, 0x0a, 0x0a, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, + 0x65, 0x73, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x75, 0x73, 0x65, 0x72, + 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x52, 0x0a, 0x43, 0x6f, 0x6d, + 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0x7a, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x42, 0x6c, + 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x12, 0x44, 0x0a, 0x0a, 0x50, + 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x24, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, + 0x61, 0x6d, 0x73, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x50, 0x61, 0x67, 0x69, 0x6e, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0a, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x49, 0x44, 0x22, 0x65, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, + 0x73, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x12, 0x30, 0x0a, 0x0a, 0x43, 0x6f, 0x6d, 0x6d, + 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x75, + 0x73, 0x65, 0x72, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x52, 0x0a, + 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x12, 0x1e, 0x0a, 0x04, 0x75, 0x73, + 0x65, 0x72, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, + 0x55, 0x73, 0x65, 0x72, 0x52, 0x04, 0x75, 0x73, 0x65, 0x72, 0x32, 0x88, 0x08, 0x0a, 0x04, 0x75, + 0x73, 0x65, 0x72, 0x12, 0x3a, 0x0a, 0x0b, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, + 0x66, 0x6f, 0x12, 0x14, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, + 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x1a, 0x15, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, + 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x12, + 0x43, 0x0a, 0x0e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, + 0x6f, 0x12, 0x17, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x55, + 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x1a, 0x18, 0x2e, 0x75, 0x73, 0x65, + 0x72, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, + 0x52, 0x65, 0x73, 0x70, 0x12, 0x3a, 0x0a, 0x0b, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x55, 0x73, + 0x65, 0x72, 0x73, 0x12, 0x14, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, + 0x65, 0x55, 0x73, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x15, 0x2e, 0x75, 0x73, 0x65, 0x72, + 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, + 0x12, 0x3d, 0x0a, 0x0c, 0x47, 0x65, 0x74, 0x41, 0x6c, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, + 0x12, 0x15, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x6c, 0x6c, 0x55, 0x73, + 0x65, 0x72, 0x49, 0x44, 0x52, 0x65, 0x71, 0x1a, 0x16, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x47, + 0x65, 0x74, 0x41, 0x6c, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x52, 0x65, 0x73, 0x70, 0x12, + 0x55, 0x0a, 0x14, 0x53, 0x65, 0x74, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x4d, 0x65, 0x73, + 0x73, 0x61, 0x67, 0x65, 0x4f, 0x70, 0x74, 0x12, 0x1d, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x53, 0x65, 0x74, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, - 0x4f, 0x70, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x55, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x52, 0x65, - 0x63, 0x65, 0x69, 0x76, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4f, 0x70, 0x74, 0x12, - 0x1d, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, - 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4f, 0x70, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x1e, + 0x4f, 0x70, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x1e, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x53, 0x65, + 0x74, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4f, + 0x70, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x55, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x52, 0x65, 0x63, + 0x65, 0x69, 0x76, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4f, 0x70, 0x74, 0x12, 0x1d, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, - 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4f, 0x70, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x61, - 0x0a, 0x18, 0x47, 0x65, 0x74, 0x41, 0x6c, 0x6c, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x73, 0x67, 0x4f, 0x70, 0x74, 0x12, 0x21, 0x2e, 0x75, 0x73, 0x65, - 0x72, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x6c, 0x6c, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x73, 0x67, 0x4f, 0x70, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x22, 0x2e, - 0x75, 0x73, 0x65, 0x72, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x6c, 0x6c, 0x43, 0x6f, 0x6e, 0x76, 0x65, - 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x73, 0x67, 0x4f, 0x70, 0x74, 0x52, 0x65, 0x73, - 0x70, 0x12, 0x3d, 0x0a, 0x0c, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x43, 0x68, 0x65, 0x63, - 0x6b, 0x12, 0x15, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, - 0x43, 0x68, 0x65, 0x63, 0x6b, 0x52, 0x65, 0x71, 0x1a, 0x16, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, - 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x52, 0x65, 0x73, 0x70, - 0x12, 0x2e, 0x0a, 0x07, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x12, 0x10, 0x2e, 0x75, 0x73, - 0x65, 0x72, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x1a, 0x11, 0x2e, - 0x75, 0x73, 0x65, 0x72, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, - 0x12, 0x37, 0x0a, 0x0a, 0x52, 0x65, 0x73, 0x69, 0x67, 0x6e, 0x55, 0x73, 0x65, 0x72, 0x12, 0x13, - 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x52, 0x65, 0x73, 0x69, 0x67, 0x6e, 0x55, 0x73, 0x65, 0x72, - 0x52, 0x65, 0x71, 0x1a, 0x14, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x52, 0x65, 0x73, 0x69, 0x67, - 0x6e, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x12, 0x34, 0x0a, 0x09, 0x41, 0x6c, 0x74, - 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x12, 0x12, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x41, 0x6c, - 0x74, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x1a, 0x13, 0x2e, 0x75, 0x73, 0x65, - 0x72, 0x2e, 0x41, 0x6c, 0x74, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x12, - 0x31, 0x0a, 0x08, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x73, 0x12, 0x11, 0x2e, 0x75, 0x73, - 0x65, 0x72, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x12, - 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x73, 0x52, 0x65, - 0x73, 0x70, 0x12, 0x2e, 0x0a, 0x07, 0x41, 0x64, 0x64, 0x55, 0x73, 0x65, 0x72, 0x12, 0x10, 0x2e, - 0x75, 0x73, 0x65, 0x72, 0x2e, 0x41, 0x64, 0x64, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x1a, - 0x11, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x41, 0x64, 0x64, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, - 0x73, 0x70, 0x12, 0x34, 0x0a, 0x09, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x12, - 0x12, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, - 0x52, 0x65, 0x71, 0x1a, 0x13, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, - 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x12, 0x3a, 0x0a, 0x0b, 0x55, 0x6e, 0x42, 0x6c, - 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x12, 0x14, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x55, - 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x1a, 0x15, 0x2e, - 0x75, 0x73, 0x65, 0x72, 0x2e, 0x55, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, - 0x52, 0x65, 0x73, 0x70, 0x12, 0x40, 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, - 0x55, 0x73, 0x65, 0x72, 0x73, 0x12, 0x16, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x47, 0x65, 0x74, - 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x17, 0x2e, - 0x75, 0x73, 0x65, 0x72, 0x2e, 0x47, 0x65, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, - 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x42, 0x0d, 0x5a, 0x0b, 0x2e, 0x2f, 0x75, 0x73, 0x65, 0x72, - 0x3b, 0x75, 0x73, 0x65, 0x72, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4f, 0x70, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x1e, 0x2e, + 0x75, 0x73, 0x65, 0x72, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x4d, + 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4f, 0x70, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x61, 0x0a, + 0x18, 0x47, 0x65, 0x74, 0x41, 0x6c, 0x6c, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x4d, 0x73, 0x67, 0x4f, 0x70, 0x74, 0x12, 0x21, 0x2e, 0x75, 0x73, 0x65, 0x72, + 0x2e, 0x47, 0x65, 0x74, 0x41, 0x6c, 0x6c, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x4d, 0x73, 0x67, 0x4f, 0x70, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x22, 0x2e, 0x75, + 0x73, 0x65, 0x72, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x6c, 0x6c, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, + 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x73, 0x67, 0x4f, 0x70, 0x74, 0x52, 0x65, 0x73, 0x70, + 0x12, 0x3d, 0x0a, 0x0c, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x43, 0x68, 0x65, 0x63, 0x6b, + 0x12, 0x15, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x43, + 0x68, 0x65, 0x63, 0x6b, 0x52, 0x65, 0x71, 0x1a, 0x16, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x41, + 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x12, + 0x2e, 0x0a, 0x07, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x12, 0x10, 0x2e, 0x75, 0x73, 0x65, + 0x72, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x1a, 0x11, 0x2e, 0x75, + 0x73, 0x65, 0x72, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x12, + 0x37, 0x0a, 0x0a, 0x52, 0x65, 0x73, 0x69, 0x67, 0x6e, 0x55, 0x73, 0x65, 0x72, 0x12, 0x13, 0x2e, + 0x75, 0x73, 0x65, 0x72, 0x2e, 0x52, 0x65, 0x73, 0x69, 0x67, 0x6e, 0x55, 0x73, 0x65, 0x72, 0x52, + 0x65, 0x71, 0x1a, 0x14, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x52, 0x65, 0x73, 0x69, 0x67, 0x6e, + 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x12, 0x34, 0x0a, 0x09, 0x41, 0x6c, 0x74, 0x65, + 0x72, 0x55, 0x73, 0x65, 0x72, 0x12, 0x12, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x41, 0x6c, 0x74, + 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x1a, 0x13, 0x2e, 0x75, 0x73, 0x65, 0x72, + 0x2e, 0x41, 0x6c, 0x74, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x12, 0x31, + 0x0a, 0x08, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x73, 0x12, 0x11, 0x2e, 0x75, 0x73, 0x65, + 0x72, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x12, 0x2e, + 0x75, 0x73, 0x65, 0x72, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, + 0x70, 0x12, 0x2e, 0x0a, 0x07, 0x41, 0x64, 0x64, 0x55, 0x73, 0x65, 0x72, 0x12, 0x10, 0x2e, 0x75, + 0x73, 0x65, 0x72, 0x2e, 0x41, 0x64, 0x64, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x1a, 0x11, + 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x41, 0x64, 0x64, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, + 0x70, 0x12, 0x34, 0x0a, 0x09, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x12, 0x12, + 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x52, + 0x65, 0x71, 0x1a, 0x13, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, + 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x12, 0x3a, 0x0a, 0x0b, 0x55, 0x6e, 0x42, 0x6c, 0x6f, + 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x12, 0x14, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x55, 0x6e, + 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x1a, 0x15, 0x2e, 0x75, + 0x73, 0x65, 0x72, 0x2e, 0x55, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x52, + 0x65, 0x73, 0x70, 0x12, 0x40, 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, + 0x73, 0x65, 0x72, 0x73, 0x12, 0x16, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x47, 0x65, 0x74, 0x42, + 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x17, 0x2e, 0x75, + 0x73, 0x65, 0x72, 0x2e, 0x47, 0x65, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, + 0x73, 0x52, 0x65, 0x73, 0x70, 0x42, 0x0d, 0x5a, 0x0b, 0x2e, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x3b, + 0x75, 0x73, 0x65, 0x72, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -2364,49 +2464,55 @@ var file_user_user_proto_depIdxs = []int32{ 0, // 12: user.GetAllConversationMsgOptResp.commonResp:type_name -> user.CommonResp 12, // 13: user.GetAllConversationMsgOptResp.conversationOptResultList:type_name -> user.OptResult 0, // 14: user.ResignUserResp.commonResp:type_name -> user.CommonResp - 21, // 15: user.GetUserResp.user:type_name -> user.User - 0, // 16: user.AlterUserResp.CommonResp:type_name -> user.CommonResp - 37, // 17: user.GetUsersReq.Pagination:type_name -> server_api_params.RequestPagination - 21, // 18: user.GetUsersResp.user:type_name -> user.User - 37, // 19: user.GetBlockUsersReq.Pagination:type_name -> server_api_params.RequestPagination - 21, // 20: user.GetBlockUsersResp.user:type_name -> user.User - 7, // 21: user.user.GetUserInfo:input_type -> user.GetUserInfoReq - 9, // 22: user.user.UpdateUserInfo:input_type -> user.UpdateUserInfoReq - 1, // 23: user.user.DeleteUsers:input_type -> user.DeleteUsersReq - 3, // 24: user.user.GetAllUserID:input_type -> user.GetAllUserIDReq - 11, // 25: user.user.SetReceiveMessageOpt:input_type -> user.SetReceiveMessageOptReq - 14, // 26: user.user.GetReceiveMessageOpt:input_type -> user.GetReceiveMessageOptReq - 16, // 27: user.user.GetAllConversationMsgOpt:input_type -> user.GetAllConversationMsgOptReq - 5, // 28: user.user.AccountCheck:input_type -> user.AccountCheckReq - 20, // 29: user.user.GetUser:input_type -> user.GetUserReq - 18, // 30: user.user.ResignUser:input_type -> user.ResignUserReq - 23, // 31: user.user.AlterUser:input_type -> user.AlterUserReq - 25, // 32: user.user.GetUsers:input_type -> user.GetUsersReq - 27, // 33: user.user.AddUser:input_type -> user.AddUserReq - 29, // 34: user.user.BlockUser:input_type -> user.BlockUserReq - 31, // 35: user.user.UnBlockUser:input_type -> user.UnBlockUserReq - 33, // 36: user.user.GetBlockUsers:input_type -> user.GetBlockUsersReq - 8, // 37: user.user.GetUserInfo:output_type -> user.GetUserInfoResp - 10, // 38: user.user.UpdateUserInfo:output_type -> user.UpdateUserInfoResp - 2, // 39: user.user.DeleteUsers:output_type -> user.DeleteUsersResp - 4, // 40: user.user.GetAllUserID:output_type -> user.GetAllUserIDResp - 13, // 41: user.user.SetReceiveMessageOpt:output_type -> user.SetReceiveMessageOptResp - 15, // 42: user.user.GetReceiveMessageOpt:output_type -> user.GetReceiveMessageOptResp - 17, // 43: user.user.GetAllConversationMsgOpt:output_type -> user.GetAllConversationMsgOptResp - 6, // 44: user.user.AccountCheck:output_type -> user.AccountCheckResp - 22, // 45: user.user.GetUser:output_type -> user.GetUserResp - 19, // 46: user.user.ResignUser:output_type -> user.ResignUserResp - 24, // 47: user.user.AlterUser:output_type -> user.AlterUserResp - 26, // 48: user.user.GetUsers:output_type -> user.GetUsersResp - 28, // 49: user.user.AddUser:output_type -> user.AddUserResp - 30, // 50: user.user.BlockUser:output_type -> user.BlockUserResp - 32, // 51: user.user.UnBlockUser:output_type -> user.UnBlockUserResp - 34, // 52: user.user.GetBlockUsers:output_type -> user.GetBlockUsersResp - 37, // [37:53] is the sub-list for method output_type - 21, // [21:37] is the sub-list for method input_type - 21, // [21:21] is the sub-list for extension type_name - 21, // [21:21] is the sub-list for extension extendee - 0, // [0:21] is the sub-list for field type_name + 0, // 15: user.GetUserResp.CommonResp:type_name -> user.CommonResp + 21, // 16: user.GetUserResp.user:type_name -> user.User + 0, // 17: user.AlterUserResp.CommonResp:type_name -> user.CommonResp + 37, // 18: user.GetUsersReq.Pagination:type_name -> server_api_params.RequestPagination + 0, // 19: user.GetUsersResp.CommonResp:type_name -> user.CommonResp + 21, // 20: user.GetUsersResp.user:type_name -> user.User + 0, // 21: user.AddUserResp.CommonResp:type_name -> user.CommonResp + 0, // 22: user.BlockUserResp.CommonResp:type_name -> user.CommonResp + 0, // 23: user.UnBlockUserResp.CommonResp:type_name -> user.CommonResp + 37, // 24: user.GetBlockUsersReq.Pagination:type_name -> server_api_params.RequestPagination + 0, // 25: user.GetBlockUsersResp.CommonResp:type_name -> user.CommonResp + 21, // 26: user.GetBlockUsersResp.user:type_name -> user.User + 7, // 27: user.user.GetUserInfo:input_type -> user.GetUserInfoReq + 9, // 28: user.user.UpdateUserInfo:input_type -> user.UpdateUserInfoReq + 1, // 29: user.user.DeleteUsers:input_type -> user.DeleteUsersReq + 3, // 30: user.user.GetAllUserID:input_type -> user.GetAllUserIDReq + 11, // 31: user.user.SetReceiveMessageOpt:input_type -> user.SetReceiveMessageOptReq + 14, // 32: user.user.GetReceiveMessageOpt:input_type -> user.GetReceiveMessageOptReq + 16, // 33: user.user.GetAllConversationMsgOpt:input_type -> user.GetAllConversationMsgOptReq + 5, // 34: user.user.AccountCheck:input_type -> user.AccountCheckReq + 20, // 35: user.user.GetUser:input_type -> user.GetUserReq + 18, // 36: user.user.ResignUser:input_type -> user.ResignUserReq + 23, // 37: user.user.AlterUser:input_type -> user.AlterUserReq + 25, // 38: user.user.GetUsers:input_type -> user.GetUsersReq + 27, // 39: user.user.AddUser:input_type -> user.AddUserReq + 29, // 40: user.user.BlockUser:input_type -> user.BlockUserReq + 31, // 41: user.user.UnBlockUser:input_type -> user.UnBlockUserReq + 33, // 42: user.user.GetBlockUsers:input_type -> user.GetBlockUsersReq + 8, // 43: user.user.GetUserInfo:output_type -> user.GetUserInfoResp + 10, // 44: user.user.UpdateUserInfo:output_type -> user.UpdateUserInfoResp + 2, // 45: user.user.DeleteUsers:output_type -> user.DeleteUsersResp + 4, // 46: user.user.GetAllUserID:output_type -> user.GetAllUserIDResp + 13, // 47: user.user.SetReceiveMessageOpt:output_type -> user.SetReceiveMessageOptResp + 15, // 48: user.user.GetReceiveMessageOpt:output_type -> user.GetReceiveMessageOptResp + 17, // 49: user.user.GetAllConversationMsgOpt:output_type -> user.GetAllConversationMsgOptResp + 6, // 50: user.user.AccountCheck:output_type -> user.AccountCheckResp + 22, // 51: user.user.GetUser:output_type -> user.GetUserResp + 19, // 52: user.user.ResignUser:output_type -> user.ResignUserResp + 24, // 53: user.user.AlterUser:output_type -> user.AlterUserResp + 26, // 54: user.user.GetUsers:output_type -> user.GetUsersResp + 28, // 55: user.user.AddUser:output_type -> user.AddUserResp + 30, // 56: user.user.BlockUser:output_type -> user.BlockUserResp + 32, // 57: user.user.UnBlockUser:output_type -> user.UnBlockUserResp + 34, // 58: user.user.GetBlockUsers:output_type -> user.GetBlockUsersResp + 43, // [43:59] is the sub-list for method output_type + 27, // [27:43] is the sub-list for method input_type + 27, // [27:27] is the sub-list for extension type_name + 27, // [27:27] is the sub-list for extension extendee + 0, // [0:27] is the sub-list for field type_name } func init() { file_user_user_proto_init() } diff --git a/pkg/proto/user/user.proto b/pkg/proto/user/user.proto index 2967235b3..90db2a0d5 100644 --- a/pkg/proto/user/user.proto +++ b/pkg/proto/user/user.proto @@ -124,12 +124,13 @@ message GetUserReq{ message User{ string ProfilePhoto = 1; string Nickname = 2; - string UserID = 3; + string UserId = 3; string CreateTime = 4; } message GetUserResp{ - User user = 1; + CommonResp CommonResp = 1; + User user = 2; } message AlterUserReq{ @@ -147,24 +148,30 @@ message GetUsersReq { } message GetUsersResp{ - string OperationID = 1; - repeated User user = 2; + CommonResp CommonResp = 1; + string OperationID = 2; + repeated User user = 3; } message AddUserReq{ string OperationID = 1; + string PhoneNumber = 2; + string UserId = 3; } message AddUserResp{ + CommonResp CommonResp = 1; } message BlockUserReq{ string UserID = 1; - string OperationID = 2; + string EndDisableTime = 2; + string OperationID = 3; } message BlockUserResp{ + CommonResp CommonResp = 1; } message UnBlockUserReq{ @@ -173,7 +180,7 @@ message UnBlockUserReq{ } message UnBlockUserResp{ - + CommonResp CommonResp = 1; } message GetBlockUsersReq{ @@ -182,6 +189,7 @@ message GetBlockUsersReq{ } message GetBlockUsersResp{ + CommonResp CommonResp = 1; repeated User user = 2; } From cdc2428aca908a30bbed23a1ae8c1f08d3f21868 Mon Sep 17 00:00:00 2001 From: wangchuxiao Date: Tue, 25 Jan 2022 19:18:04 +0800 Subject: [PATCH 555/814] cms --- .idea/.gitignore | 3 + .idea/Open-IM-Server.iml | 9 + .idea/misc.xml | 6 + .idea/modules.xml | 8 + .idea/vcs.xml | 6 + config/config.yaml | 2 +- internal/cms_api/group/group.go | 85 +- internal/cms_api/router.go | 7 +- internal/cms_api/user/user.go | 100 +- internal/push/logic/push_to_client.go | 4 +- internal/rpc/group/group.go | 28 + internal/rpc/user/user.go | 107 +- pkg/cms_api_struct/common.go | 5 + pkg/cms_api_struct/group.go | 104 +- pkg/cms_api_struct/message.go | 23 +- pkg/cms_api_struct/user.go | 16 +- pkg/common/constant/error.go | 1 + pkg/common/db/model_struct.go | 8 +- pkg/common/db/mysql.go | 2 +- .../mysql_model/im_mysql_model/group_model.go | 24 + .../mysql_model/im_mysql_model/user_model.go | 144 +- pkg/common/http/http_resp.go | 20 +- pkg/common/utils/utils.go | 6 +- pkg/proto/group/group.pb.go | 4020 +++++++++++------ pkg/proto/group/group.proto | 26 + pkg/proto/proto_dir.cfg | 4 +- pkg/proto/sdk_ws/ws.pb.go | 89 +- pkg/proto/sdk_ws/ws.proto | 5 + pkg/proto/user/user.pb.go | 443 +- pkg/proto/user/user.proto | 13 +- 30 files changed, 3718 insertions(+), 1600 deletions(-) create mode 100644 .idea/.gitignore create mode 100644 .idea/Open-IM-Server.iml create mode 100644 .idea/misc.xml create mode 100644 .idea/modules.xml create mode 100644 .idea/vcs.xml diff --git a/.idea/.gitignore b/.idea/.gitignore new file mode 100644 index 000000000..0e40fe8f5 --- /dev/null +++ b/.idea/.gitignore @@ -0,0 +1,3 @@ + +# Default ignored files +/workspace.xml \ No newline at end of file diff --git a/.idea/Open-IM-Server.iml b/.idea/Open-IM-Server.iml new file mode 100644 index 000000000..5e764c4f0 --- /dev/null +++ b/.idea/Open-IM-Server.iml @@ -0,0 +1,9 @@ + + + + + + + + + \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml new file mode 100644 index 000000000..28a804d89 --- /dev/null +++ b/.idea/misc.xml @@ -0,0 +1,6 @@ + + + + + \ No newline at end of file diff --git a/.idea/modules.xml b/.idea/modules.xml new file mode 100644 index 000000000..d9805dbb6 --- /dev/null +++ b/.idea/modules.xml @@ -0,0 +1,8 @@ + + + + + + + + \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 000000000..94a25f7f4 --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/config/config.yaml b/config/config.yaml index 49754cd41..1a7aa233b 100644 --- a/config/config.yaml +++ b/config/config.yaml @@ -103,7 +103,7 @@ rpcport: switch: false rpcregistername: - openImUserName: User + remainLogLevel: User openImFriendName: Friend openImOfflineMessageName: OfflineMessage openImPushName: Push diff --git a/internal/cms_api/group/group.go b/internal/cms_api/group/group.go index c810ff5cd..ed8187e3a 100644 --- a/internal/cms_api/group/group.go +++ b/internal/cms_api/group/group.go @@ -1,21 +1,100 @@ package group import ( + "Open_IM/pkg/cms_api_struct" + "Open_IM/pkg/common/config" + "Open_IM/pkg/common/constant" + "Open_IM/pkg/common/log" + openIMHttp "Open_IM/pkg/common/http" + "Open_IM/pkg/grpc-etcdv3/getcdv3" + "Open_IM/pkg/utils" + "fmt" + "strings" + "context" + + pbGroup "Open_IM/pkg/proto/group" "github.com/gin-gonic/gin" ) -func SearchGroups(c *gin.Context) { +func GetGroups(c *gin.Context) { + var ( + req cms_api_struct.GetGroupsRequest + resp cms_api_struct.GetGroupsResponse + reqPb pbGroup.GetGroupsReq + ) + if err := c.ShouldBindQuery(&req); err != nil { + log.NewError("0", "ShouldBindQuery failed ", err.Error()) + openIMHttp.RespHttp200(c, constant.ErrArgs, nil) + return + } + etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImGroupName) + client := pbGroup.NewGroupClient(etcdConn) + respPb, err := client.GetGroups(context.Background(), &reqPb) + fmt.Println(respPb) + if err != nil { + log.NewError("s", "GetUserInfo failed ", err.Error()) + openIMHttp.RespHttp200(c, constant.ErrServer, nil) + return + } + openIMHttp.RespHttp200(c, constant.OK, resp) } -func SearchGroupsMember(c *gin.Context) { - +func GetGroup(c *gin.Context) { + var ( + req cms_api_struct.GetGroupRequest + resp cms_api_struct.GetGroupResponse + reqPb pbGroup.GetGroupReq + ) + if err := c.ShouldBindQuery(&req); err != nil { + log.NewError("0", "ShouldBindQuery failed ", err.Error()) + openIMHttp.RespHttp200(c, constant.ErrArgs, nil) + return + } + utils.CopyStructFields(&reqPb, req) + etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImGroupName) + client := pbGroup.NewGroupClient(etcdConn) + respPb, err := client.GetGroup(context.Background(), &reqPb) + fmt.Println(respPb) + if err != nil { + log.NewError("s", "GetUserInfo failed ", err.Error()) + openIMHttp.RespHttp200(c, constant.ErrServer, nil) + return + } + openIMHttp.RespHttp200(c, constant.OK, resp) } func CreateGroup(c *gin.Context) { + var ( + req cms_api_struct.CreateGroupRequest + resp cms_api_struct.CreateGroupResponse + reqPb pbGroup.CreateGroupReq + ) + if err := c.BindJSON(&req); err != nil { + log.NewError("0", "ShouldBindQuery failed ", err.Error()) + openIMHttp.RespHttp200(c, constant.ErrArgs, nil) + return + } + reqPb.GroupInfo.GroupName = req.GroupName + reqPb. + etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImGroupName) + client := pbGroup.NewGroupClient(etcdConn) + respPb, err := client.CreateGroup(context.Background(), &reqPb) + fmt.Println(respPb) + if err != nil { + log.NewError("s", "GetUserInfo failed ", err.Error()) + openIMHttp.RespHttp200(c, constant.ErrServer, nil) + return + } + openIMHttp.RespHttp200(c, constant.OK, resp) +} + +func SearchGroupsMember(c *gin.Context) { } + + func AddUsers(c *gin.Context) { } diff --git a/internal/cms_api/router.go b/internal/cms_api/router.go index 8ad49cffa..01f5e60ae 100644 --- a/internal/cms_api/router.go +++ b/internal/cms_api/router.go @@ -57,11 +57,12 @@ func NewGinRouter() *gin.Engine { } groupRouterGroup := router.Group("/groups") { - groupRouterGroup.GET("/search_groups", group.SearchGroups) + groupRouterGroup.GET("/get_groups", group.GetGroups) + groupRouterGroup.GET("/get_group", group.GetGroup) groupRouterGroup.GET("/search_groups_member", group.SearchGroupsMember) groupRouterGroup.POST("/create_group", group.CreateGroup) groupRouterGroup.GET("/inquire_group", group.InquireGroup) - groupRouterGroup.GET("/inquireMember_by_group", group.InquireMember) + groupRouterGroup.GET("/inquire_member_by_group", group.InquireMember) groupRouterGroup.POST("/add_members", group.AddMembers) groupRouterGroup.POST("/set_master", group.SetMaster) groupRouterGroup.POST("/block_user", group.BlockUser) @@ -79,7 +80,7 @@ func NewGinRouter() *gin.Engine { userRouterGroup.POST("/add_user", user.AddUser) userRouterGroup.POST("/unblock_user", user.UnblockUser) userRouterGroup.POST("/block_user", user.BlockUser) - userRouterGroup.GET("/block_users", user.GetBlockUsers) + userRouterGroup.GET("/get_block_users", user.GetBlockUsers) } return baseRouter } diff --git a/internal/cms_api/user/user.go b/internal/cms_api/user/user.go index 7a2e74887..e3678e20d 100644 --- a/internal/cms_api/user/user.go +++ b/internal/cms_api/user/user.go @@ -14,6 +14,7 @@ import ( "fmt" "net/http" "strings" + "time" "github.com/gin-gonic/gin" ) @@ -23,27 +24,26 @@ func GetUser(c *gin.Context) { req cms_api_struct.GetUserRequest resp cms_api_struct.GetUserResponse reqPb pb.GetUserReq - respPb *pb.GetUserResp ) if err := c.ShouldBindQuery(&req); err != nil { - log.NewError("0", "BindJSON failed ", err.Error()) + log.NewError("0", "ShouldBindQuery failed ", err.Error()) openIMHttp.RespHttp200(c, constant.ErrArgs, nil) return } - utils.CopyStructFields(&reqPb, req) + utils.CopyStructFields(&reqPb, &req) etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImUserName) client := pb.NewUserClient(etcdConn) respPb, err := client.GetUser(context.Background(), &reqPb) if err != nil { log.NewError("s", "GetUserInfo failed ", err.Error()) - openIMHttp.RespHttp200(c, err.(constant.ErrInfo), nil) + openIMHttp.RespHttp200(c, constant.ErrServer, nil) + return + } + if respPb.User.UserId == "" { + openIMHttp.RespHttp200(c, constant.OK, nil) return } - // resp.UserId = resp.UserId - // resp.Nickname = resp.UserId - // resp.ProfilePhoto = resp.ProfilePhoto - // resp.UserResponse = - utils.CopyStructFields(&resp, respPb) + utils.CopyStructFields(&resp, respPb.User) openIMHttp.RespHttp200(c, constant.OK, resp) } @@ -52,11 +52,10 @@ func GetUsers(c *gin.Context) { req cms_api_struct.GetUsersRequest resp cms_api_struct.GetUsersResponse reqPb pb.GetUsersReq - respPb *pb.GetUsersResp ) reqPb.Pagination = &commonPb.RequestPagination{} if err := c.ShouldBindQuery(&req); err != nil { - log.NewError("0", "BindJSON failed ", err.Error()) + log.NewError("0", "ShouldBindQuery failed ", err.Error()) openIMHttp.RespHttp200(c, constant.ErrArgs, nil) return } @@ -64,18 +63,14 @@ func GetUsers(c *gin.Context) { etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImUserName) client := pb.NewUserClient(etcdConn) respPb, err := client.GetUsers(context.Background(), &reqPb) - for _, v := range respPb.User { - resp.Users = append(resp.Users, &cms_api_struct.UserResponse{ - ProfilePhoto: v.ProfilePhoto, - Nickname: v.Nickname, - UserId: v.UserID, - CreateTime: v.CreateTime, - }) - } if err != nil { - openIMHttp.RespHttp200(c, err.(constant.ErrInfo), resp) + openIMHttp.RespHttp200(c, constant.ErrServer, resp) + return } - fmt.Println(resp) + utils.CopyStructFields(&resp.Users, respPb.User) + resp.UserNum = int(respPb.UserNum) + resp.ShowNumber = int(respPb.Pagination.ShowNumber) + resp.CurrentPage = int(respPb.Pagination.CurrentPage) openIMHttp.RespHttp200(c, constant.OK, resp) } @@ -92,11 +87,12 @@ func ResignUser(c *gin.Context) { return } utils.CopyStructFields(&reqPb, &req) + fmt.Println(reqPb.UserId) etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImUserName) client := pb.NewUserClient(etcdConn) _, err := client.ResignUser(context.Background(), &reqPb) if err != nil { - openIMHttp.RespHttp200(c, constant.ErrDB, resp) + openIMHttp.RespHttp200(c, constant.ErrServer, resp) } openIMHttp.RespHttp200(c, constant.OK, resp) } @@ -106,7 +102,7 @@ func AlterUser(c *gin.Context) { req cms_api_struct.AlterUserRequest resp cms_api_struct.AlterUserResponse reqPb pb.AlterUserReq - respPb *pb.AlterUserResp + _ *pb.AlterUserResp ) if err := c.ShouldBind(&req); err != nil { log.NewError("0", "BindJSON failed ", err.Error()) @@ -116,10 +112,9 @@ func AlterUser(c *gin.Context) { utils.CopyStructFields(&reqPb, &req) etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImUserName) client := pb.NewUserClient(etcdConn) - respPb, err := client.AlterUser(context.Background(), &reqPb) - fmt.Println(respPb) + _, err := client.AlterUser(context.Background(), &reqPb) if err != nil { - openIMHttp.RespHttp200(c, err.(constant.ErrInfo), resp) + openIMHttp.RespHttp200(c, constant.ErrServer, resp) } openIMHttp.RespHttp200(c, constant.OK, resp) } @@ -127,23 +122,23 @@ func AlterUser(c *gin.Context) { func AddUser(c *gin.Context) { var ( req cms_api_struct.AddUserRequest - resp cms_api_struct.AddUserResponse reqPb pb.AddUserReq - respPb *pb.AddUserResp ) - if err := c.ShouldBind(&req); err != nil { + if err := c.BindJSON(&req); err != nil { log.NewError("0", "BindJSON failed ", err.Error()) - c.JSON(http.StatusBadRequest, gin.H{"errCode": http.StatusBadRequest, "errMsg": err.Error()}) + openIMHttp.RespHttp200(c, constant.ErrArgs, nil) return } + fmt.Println(time.Now().String()) + utils.CopyStructFields(&reqPb, &req) etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImUserName) client := pb.NewUserClient(etcdConn) - respPb, err := client.AddUser(context.Background(), &reqPb) - fmt.Println(respPb) + _, err := client.AddUser(context.Background(), &reqPb) if err != nil { - + openIMHttp.RespHttp200(c, constant.ErrServer, nil) + return } - openIMHttp.RespHttp200(c, constant.OK, resp) + openIMHttp.RespHttp200(c, constant.OK, nil) } func BlockUser(c *gin.Context) { @@ -151,21 +146,23 @@ func BlockUser(c *gin.Context) { req cms_api_struct.BlockUserRequest resp cms_api_struct.BlockUserResponse reqPb pb.BlockUserReq - respPb *pb.BlockUserResp ) - if err := c.ShouldBind(&req); err != nil { + if err := c.BindJSON(&req); err != nil { + fmt.Println(err) log.NewError("0", "BindJSON failed ", err.Error()) openIMHttp.RespHttp200(c, constant.ErrArgs, resp) return } - utils.CopyStructFields(&reqPb, req) + utils.CopyStructFields(&reqPb, &req) + fmt.Println(reqPb, req) etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImUserName) client := pb.NewUserClient(etcdConn) - respPb, err := client.BlockUser(context.Background(), &reqPb) + fmt.Println(reqPb) + _, err := client.BlockUser(context.Background(), &reqPb) if err != nil { - openIMHttp.RespHttp200(c, err.(constant.ErrInfo), resp) + openIMHttp.RespHttp200(c, constant.ErrServer, resp) + return } - fmt.Println(respPb) openIMHttp.RespHttp200(c, constant.OK, resp) } @@ -174,43 +171,48 @@ func UnblockUser(c *gin.Context) { req cms_api_struct.UnblockUserRequest resp cms_api_struct.UnBlockUserResponse reqPb pb.UnBlockUserReq - respPb *pb.UnBlockUserResp ) - utils.CopyStructFields(&reqPb, req) if err := c.ShouldBind(&req); err != nil { log.NewError("0", "BindJSON failed ", err.Error()) c.JSON(http.StatusBadRequest, gin.H{"errCode": http.StatusBadRequest, "errMsg": err.Error()}) return } + fmt.Println(reqPb, req) etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImUserName) client := pb.NewUserClient(etcdConn) - respPb, err := client.UnBlockUser(context.Background(), &reqPb) + _, err := client.UnBlockUser(context.Background(), &reqPb) if err != nil { - openIMHttp.RespHttp200(c, err.(constant.ErrInfo), resp) + openIMHttp.RespHttp200(c, constant.ErrServer, resp) + return } - fmt.Println(respPb) openIMHttp.RespHttp200(c, constant.OK, resp) } func GetBlockUsers(c *gin.Context) { var ( req cms_api_struct.GetBlockUsersRequest - resp cms_api_struct.GetOrganizationsResponse + resp cms_api_struct.GetBlockUsersResponse reqPb pb.GetBlockUsersReq respPb *pb.GetBlockUsersResp ) + reqPb.Pagination = &commonPb.RequestPagination{} if err := c.ShouldBindQuery(&req); err != nil { log.NewError("0", "BindJSON failed ", err.Error()) openIMHttp.RespHttp200(c, constant.ErrArgs, resp) return } - utils.CopyStructFields(&reqPb, &req) + utils.CopyStructFields(&reqPb.Pagination, &req) + log.NewInfo("0", "blockUsers", reqPb.Pagination, req) etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImUserName) client := pb.NewUserClient(etcdConn) respPb, err := client.GetBlockUsers(context.Background(), &reqPb) if err != nil { - openIMHttp.RespHttp200(c, err.(constant.ErrInfo), resp) + openIMHttp.RespHttp200(c, constant.ErrServer, resp) + return } - fmt.Println(respPb) + utils.CopyStructFields(&resp.BlockUsers, respPb.User) + resp.BlockUserNum = int(respPb.BlockUserNum) + resp.ShowNumber = int(respPb.Pagination.ShowNumber) + resp.CurrentPage = int(respPb.Pagination.CurrentPage) openIMHttp.RespHttp200(c, constant.OK, resp) } diff --git a/internal/push/logic/push_to_client.go b/internal/push/logic/push_to_client.go index 803bb5b3b..6555020c0 100644 --- a/internal/push/logic/push_to_client.go +++ b/internal/push/logic/push_to_client.go @@ -121,12 +121,12 @@ func MsgToUser(pushMsg *pbPush.PushMsgReq) { // case constant.GroupChatType: // etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImGroupName) // client := pbGroup.NewGroupClient(etcdConn) -// req := &pbGroup.GetGroupAllMemberReq{ +// req := &pbGroup.Req{ // GroupID: m.RecvID, // Token: config.Config.Secret, // OperationID: m.OperationID, // } -// reply, err := client.GetGroupAllMember(context.Background(), req) +// reply, err := client.(context.Background(), req) // if err != nil { // log.Error(m.Token, m.OperationID, "rpc getGroupInfo failed, err = %s", err.Error()) // return diff --git a/internal/rpc/group/group.go b/internal/rpc/group/group.go index 9df6064f6..08ba7be23 100644 --- a/internal/rpc/group/group.go +++ b/internal/rpc/group/group.go @@ -638,3 +638,31 @@ func (s *groupServer) TransferGroupOwner(_ context.Context, req *pbGroup.Transfe return &pbGroup.TransferGroupOwnerResp{CommonResp: &pbGroup.CommonResp{ErrCode: 0, ErrMsg: ""}}, nil } + +func (s *groupServer) GetGroup(_ context.Context, req *pbGroup.GetGroupReq) (*pbGroup.GetGroupResp, error) { + log.NewInfo(req.OperationID, "GetGroup ", req.String()) + group, err := imdb.GetGroupByName(req.GroupName) + if err != nil { + return nil, err + } + resp := &pbGroup.GetGroupResp{ + GroupInfo: &open_im_sdk.GroupInfo{ + }, + } + utils.CopyStructFields(resp.GroupInfo, group) + return resp, nil +} + +func (s *groupServer) GetGroups(_ context.Context, req *pbGroup.GetGroupsReq) (*pbGroup.GetGroupsResp, error) { + log.NewInfo(req.OperationID, "GetGroups ", req.String()) + groups, err := imdb.GetGroups(int(req.Pagination.PageNumber), int(req.Pagination.ShowNumber)) + if err != nil { + return nil, err + } + resp := &pbGroup.GetGroupsResp{ + GroupInfo: []*open_im_sdk.GroupInfo, + } + utils.CopyStructFields(resp.GroupInfo, groups) + return resp, nil +} + diff --git a/internal/rpc/user/user.go b/internal/rpc/user/user.go index 38e2e7ed2..d317d53c5 100644 --- a/internal/rpc/user/user.go +++ b/internal/rpc/user/user.go @@ -14,11 +14,11 @@ import ( pbUser "Open_IM/pkg/proto/user" "Open_IM/pkg/utils" "context" + "fmt" + "google.golang.org/grpc" "net" "strconv" "strings" - - "google.golang.org/grpc" ) type userServer struct { @@ -214,7 +214,7 @@ func (s *userServer) UpdateUserInfo(ctx context.Context, req *pbUser.UpdateUserI return &pbUser.UpdateUserInfoResp{CommonResp: &pbUser.CommonResp{ErrCode: constant.ErrAccess.ErrCode, ErrMsg: constant.ErrAccess.ErrMsg}}, nil } - var user db.User + var user db.Users utils.CopyStructFields(&user, req.UserInfo) if req.UserInfo.Birth != 0 { user.Birth = utils.UnixSecondToTime(int64(req.UserInfo.Birth)) @@ -243,61 +243,122 @@ func (s *userServer) UpdateUserInfo(ctx context.Context, req *pbUser.UpdateUserI } func (s *userServer) GetUser(ctx context.Context, req *pbUser.GetUserReq) (*pbUser.GetUserResp, error) { - log.NewInfo(req.OperationID, "GetAllUserID args ", req.String()) - resp := &pbUser.GetUserResp{} + log.NewInfo(req.OperationID, "GetUser args ", req.String()) + resp := &pbUser.GetUserResp{User:&pbUser.User{}} user, err := imdb.GetUserByUserID(req.UserId) if err != nil { - log.NewError(req.OperationID, "SelectAllUserID false ", err.Error()) return resp, nil } - resp.User.CreateTime = user.CreateTime.String() - resp.User.ProfilePhoto = "" - resp.User.Nickname = user.Nickname - resp.User.UserID = user.UserID + resp.User = &pbUser.User{ + ProfilePhoto: user.FaceURL, + Nickname: user.Nickname, + UserId: user.UserID, + CreateTime: user.CreateTime.String(), + } return resp, nil } func (s *userServer) GetUsers(ctx context.Context, req *pbUser.GetUsersReq) (*pbUser.GetUsersResp, error) { log.NewInfo(req.OperationID, "GetUsers args ", req.String()) - resp := &pbUser.GetUsersResp{} + resp := &pbUser.GetUsersResp{User:[]*pbUser.User{}} users, err := imdb.GetUsers(req.Pagination.ShowNumber, req.Pagination.PageNumber) if err != nil { - log.NewError(req.OperationID, "SelectAllUserID false ", err.Error()) return resp, nil } + usersNum, err := imdb.GetUsersNumCount() + if err != nil { + return resp, nil + } + resp.UserNum = int32(usersNum) for _, v := range users { - resp.User = append(resp.User, &pbUser.User{ - ProfilePhoto: "", - UserID: v.UserID, - CreateTime: v.CreateTime.String(), - Nickname: v.Nickname, - }) + isBlock, err := imdb.UserIsBlock(v.UserID) + if err == nil { + user := &pbUser.User{ + ProfilePhoto: v.FaceURL, + UserId: v.UserID, + CreateTime: v.CreateTime.String(), + Nickname: v.Nickname, + IsBlock: isBlock, + } + resp.User = append(resp.User, user) + } } + + resp.Pagination = &sdkws.ResponsePagination{} + resp.Pagination.ShowNumber = req.Pagination.ShowNumber + resp.Pagination.CurrentPage = req.Pagination.PageNumber return resp, nil } func (s *userServer) ResignUser(ctx context.Context, req *pbUser.ResignUserReq) (*pbUser.ResignUserResp, error) { log.NewInfo(req.OperationID, "ResignUser args ", req.String()) - return &pbUser.ResignUserResp{}, nil } func (s *userServer) AlterUser(ctx context.Context, req *pbUser.AlterUserReq) (*pbUser.AlterUserResp, error) { + log.NewInfo(req.OperationID, "AlterUser args ", req.String()) return &pbUser.AlterUserResp{}, nil } func (s *userServer) AddUser(ctx context.Context, req *pbUser.AddUserReq) (*pbUser.AddUserResp, error) { - return &pbUser.AddUserResp{}, nil + log.NewInfo(req.OperationID, "AddUser args ", req.String()) + resp := &pbUser.AddUserResp{} + err := imdb.AddUser(req.UserId, req.PhoneNumber, req.Name) + if err != nil { + return resp, constant.ErrDB + } + return resp, nil } func (s *userServer) BlockUser(ctx context.Context, req *pbUser.BlockUserReq) (*pbUser.BlockUserResp, error) { - return &pbUser.BlockUserResp{}, nil + log.NewInfo(req.OperationID, "BlockUser args ", req.String()) + fmt.Println("BlockUser args ", req.String()) + resp := &pbUser.BlockUserResp{} + err := imdb.BlockUser(req.UserId, req.EndDisableTime) + if err != nil { + return resp, constant.ErrDB + } + return resp, nil } func (s *userServer) UnBlockUser(ctx context.Context, req *pbUser.UnBlockUserReq) (*pbUser.UnBlockUserResp, error) { - return &pbUser.UnBlockUserResp{}, nil + log.NewInfo(req.OperationID, "UnBlockUser args ", req.String()) + fmt.Println(req.UserId) + resp := &pbUser.UnBlockUserResp{} + err := imdb.UnBlockUser(req.UserId) + if err != nil { + return resp, constant.ErrDB + } + return resp, nil } func (s *userServer) GetBlockUsers(ctx context.Context, req *pbUser.GetBlockUsersReq) (*pbUser.GetBlockUsersResp, error) { - return &pbUser.GetBlockUsersResp{}, nil + log.NewInfo(req.OperationID, "GetBlockUsers args ", req.String()) + resp := &pbUser.GetBlockUsersResp{} + blockUserIds, err := imdb.GetBlockUsersID(req.Pagination.ShowNumber, req.Pagination.PageNumber) + if err != nil { + return resp, constant.ErrDB + } + usersNum, err := imdb.GetBlockUsersNumCount() + if err != nil { + return resp, constant.ErrDB + } + resp.BlockUserNum = int32(usersNum) + blockUsers, err := imdb.GetBlockUsers(blockUserIds) + if err != nil { + return resp, constant.ErrDB + } + for _, v := range blockUsers { + resp.User = append(resp.User, &pbUser.User{ + ProfilePhoto: v.FaceURL, + Nickname: v.Nickname, + UserId: v.UserID, + CreateTime: v.CreateTime.String(), + IsBlock: true, + }) + } + resp.Pagination = &sdkws.ResponsePagination{} + resp.Pagination.ShowNumber = req.Pagination.ShowNumber + resp.Pagination.CurrentPage = req.Pagination.PageNumber + return resp, nil } diff --git a/pkg/cms_api_struct/common.go b/pkg/cms_api_struct/common.go index fc6490c82..7d160f543 100644 --- a/pkg/cms_api_struct/common.go +++ b/pkg/cms_api_struct/common.go @@ -4,3 +4,8 @@ type RequestPagination struct { PageNumber int `form:"page_number" binding:"required"` ShowNumber int `form:"show_number" binding:"required"` } + +type ResponsePagination struct { + CurrentPage int `json:"current_number" binding:"required"` + ShowNumber int `json:"show_number" binding:"required"` +} \ No newline at end of file diff --git a/pkg/cms_api_struct/group.go b/pkg/cms_api_struct/group.go index 99820d9e8..7948ade10 100644 --- a/pkg/cms_api_struct/group.go +++ b/pkg/cms_api_struct/group.go @@ -1,20 +1,90 @@ package cms_api_struct -type SearchGroupsResponse struct { - GroupList []struct { - GroupNickName string `json:"group_nick_name"` - GroupID int `json:"group_id"` - MasterName string `json:"master_name"` - MasterId int `json:"master_id"` - CreatTime string `json:"creat_time"` - } `json:"group_list"` -} - -type SearchGroupMemberResponse struct { - GroupMemberList []struct { - MemberPosition int `json:"member_position"` - MemberNickName string `json:"member_nick_name"` - MemberId int `json:"member_id"` - JoinTime string `json:"join_time"` - } `json:"group_member_list"` +type GroupResponse struct { + GroupName string `json:"group_name"` + GroupID string `json:"group_id"` + GroupMasterName string `json:"group_master_name"` + GroupMasterId string `json:"group_master_id"` + CreateTime string `json:"create_time"` + isBanChat bool `json:"is_ban_chat"` + isBanPrivateChat bool `json:"is_ban_private_chat"` +} + +type GetGroupRequest struct { + GroupName string `form:"group_name"` +} + +type GetGroupResponse struct { + GroupResponse +} + +type GetGroupsRequest struct { + RequestPagination +} + +type GetGroupsResponse struct { + Groups []GroupResponse `json:"groups"` + GroupNums int `json:"group_nums"` + ResponsePagination +} + +type CreateGroupRequest struct { + GroupName string `json:"group_name"` + GroupMasterId string `json:"group_master_id"` + GroupMembers []string `json:"group_members"` +} + +type CreateGroupResponse struct { + +} + +type SetGroupMasterRequest struct { + GroupId string `json:"group_id"` + UserId string `json:"user_id"` +} + +type SetGroupMasterResponse struct { + +} + +type BanGroupChatRequest struct { + GroupId string `json:"group_id"` +} + +type BanGroupChatResponse struct { + +} + +type BanPrivateChatRequest struct { + GroupId string `json:"group_id"` + +} + +type BanPrivateChatResponse struct { + +} + +type DeleteGroupRequest struct { + GroupId string `json:"group_id"` +} + +type DeleteGroupResponse struct { + +} + +type GetGroupMemberRequest struct { + GroupId string `json:"group_id"` +} + +type GroupMemberResponse struct { + MemberPosition int `json:"member_position"` + MemberNickName string `json:"member_nick_name"` + MemberId int `json:"member_id"` + JoinTime string `json:"join_time"` +} + +type GetGroupMemberResponse struct { + GroupMemberList []GroupMemberResponse `json:"group_member_list"` + GroupMemberNums int `json:"group_member_nums"` + ResponsePagination } diff --git a/pkg/cms_api_struct/message.go b/pkg/cms_api_struct/message.go index 5637b4eb0..2b3c73d17 100644 --- a/pkg/cms_api_struct/message.go +++ b/pkg/cms_api_struct/message.go @@ -1,27 +1,26 @@ package cms_api_struct +type CommonMessage struct { + ChatType int `json:"chat_type"` + MessageType int `json:"message_type"` + SenderNickName string `json:"sender_nick_name"` + SenderId int `json:"sender_id"` + SearchContent string `json:"search_content"` + WholeContent string `json:"whole_content"` +} + type SearchMessageByUserResponse struct { MessageList []struct { - ChatType int `json:"chat_type"` - MessageType int `json:"message_type"` - SenderNickName string `json:"sender_nick_name"` - SenderId int `json:"sender_id"` + CommonMessage ReceiverNickName string `json:"receiver_nick_name"` ReceiverID int `json:"receiver_id"` - SearchContent string `json:"search_content"` - WholeContent string `json:"whole_content"` Date string `json:"date"` } `json:"massage_list"` } type SearchMessageByGroupResponse struct { MessageList []struct { - ChatType int `json:"chat_type"` - MessageType int `json:"message_type"` - SenderNickName string `json:"sender_nick_name"` - SenderId int `json:"sender_id"` - SearchContent string `json:"search_content"` - WholeContent string `json:"whole_content"` + CommonMessage Date string `json:"date"` } `json:"massage_list"` } diff --git a/pkg/cms_api_struct/user.go b/pkg/cms_api_struct/user.go index 0b2fd5328..38d73dfaa 100644 --- a/pkg/cms_api_struct/user.go +++ b/pkg/cms_api_struct/user.go @@ -5,10 +5,11 @@ type UserResponse struct { Nickname string `json:"nick_name"` UserId string `json:"user_id"` CreateTime string `json:"create_time"` + IsBlock bool `json:"is_block"` } type GetUserRequest struct { - UserId string `form:"user_id"` + UserId string `form:"user_id" binding:"required"` } type GetUserResponse struct { @@ -21,6 +22,8 @@ type GetUsersRequest struct { type GetUsersResponse struct { Users []*UserResponse `json:"users"` + UserNum int `json:"user_num"` + ResponsePagination } type ResignUserRequest struct { @@ -38,20 +41,24 @@ type AlterUserResponse struct { } type AddUserRequest struct { + PhoneNumber string `json:"phone_number" binding:"required"` + UserId string `json:"user_id" binding:"required"` + Name string `json:"name" binding:"required"` } type AddUserResponse struct { } type BlockUserRequest struct { - UserId string `json:"user_id"` + UserId string `json:"user_id" binding:"required"` + EndDisableTime string `json:"end_disable_time" binding:"required"` } type BlockUserResponse struct { } type UnblockUserRequest struct { - UserId string `json:"user_id"` + UserId string `json:"user_id" binding:"required"` } type UnBlockUserResponse struct { @@ -62,4 +69,7 @@ type GetBlockUsersRequest struct { } type GetBlockUsersResponse struct { + BlockUsers []UserResponse `json:"block_users"` + BlockUserNum int `json:"block_user_num"` + ResponsePagination } diff --git a/pkg/common/constant/error.go b/pkg/common/constant/error.go index cec84634f..3436b1dab 100644 --- a/pkg/common/constant/error.go +++ b/pkg/common/constant/error.go @@ -10,6 +10,7 @@ type ErrInfo struct { var ( OK = ErrInfo{0, ""} + ErrServer = ErrInfo{500, "server error"} // ErrMysql = ErrInfo{100, ""} // ErrMongo = ErrInfo{110, ""} diff --git a/pkg/common/db/model_struct.go b/pkg/common/db/model_struct.go index eabc26668..010a5340a 100644 --- a/pkg/common/db/model_struct.go +++ b/pkg/common/db/model_struct.go @@ -135,7 +135,7 @@ type GroupRequest struct { //int64 CreateTime = 9; //int32 AppMangerLevel = 10; //open_im_sdk.User == imdb.User -type User struct { +type Users struct { UserID string `gorm:"column:user_id;primary_key;size:64"` Nickname string `gorm:"column:name;size:255"` FaceURL string `gorm:"column:face_url;size:255"` @@ -184,3 +184,9 @@ type ChatLog struct { CreateTime time.Time `gorm:"column:create_time" json:"createTime"` Ex string `gorm:"column:ex;type:varchar(1024)" json:"ex"` } + +type BlackList struct { + UserId string `gorm:"column:uid"` + BeginDisableTime time.Time `gorm:"column:begin_disable_time"` + EndDisableTime time.Time `gorm:"column:end_disable_time"` +} \ No newline at end of file diff --git a/pkg/common/db/mysql.go b/pkg/common/db/mysql.go index 56ca3648c..d6064cf8e 100644 --- a/pkg/common/db/mysql.go +++ b/pkg/common/db/mysql.go @@ -57,7 +57,7 @@ func initMysqlDB() { &Group{}, &GroupMember{}, &GroupRequest{}, - &User{}, + &Users{}, &Black{}, &ChatLog{}) db.Set("gorm:table_options", "CHARSET=utf8") diff --git a/pkg/common/db/mysql_model/im_mysql_model/group_model.go b/pkg/common/db/mysql_model/im_mysql_model/group_model.go index 60b470685..0795769f5 100644 --- a/pkg/common/db/mysql_model/im_mysql_model/group_model.go +++ b/pkg/common/db/mysql_model/im_mysql_model/group_model.go @@ -56,3 +56,27 @@ func SetGroupInfo(groupInfo db.Group) error { err = dbConn.Table("groups").Where("group_id=?", groupInfo.GroupID).Update(&groupInfo).Error return err } + +func GetGroupByName(groupName string) (db.Group, error) { + dbConn, err := db.DB.MysqlDB.DefaultGormDB() + var group db.Group + if err != nil { + return group, err + } + dbConn.LogMode(true) + err = dbConn.Table("groups").Where("group_id=?", groupName).Find(&group).Error + return group, err +} + +func GetGroups(pageNumber, showNumber int) ([]db.Group, error) { + dbConn, err := db.DB.MysqlDB.DefaultGormDB() + var groups []db.Group + if err != nil { + return groups, err + } + dbConn.LogMode(true) + err = dbConn.Table("groups").Limit(showNumber).Offset(showNumber*(pageNumber-1)).Find(&groups).Error + if err != nil { + return groups, err + } +} \ No newline at end of file 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 c313840d8..b1be24d8b 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 @@ -20,7 +20,7 @@ func init() { } else { continue } - var appMgr db.User + var appMgr db.Users appMgr.UserID = v appMgr.Nickname = "AppManager" + utils.IntToString(k+1) appMgr.AppMangerLevel = constant.AppAdmin @@ -32,7 +32,7 @@ func init() { } } -func UserRegister(user db.User) error { +func UserRegister(user db.Users) error { dbConn, err := db.DB.MysqlDB.DefaultGormDB() if err != nil { return err @@ -68,16 +68,16 @@ func DeleteUser(userID string) (i int64) { if err != nil { return 0 } - i = dbConn.Table("users").Where("user_id=?", userID).Delete(db.User{}).RowsAffected + i = dbConn.Table("users").Where("user_id=?", userID).Delete(db.Users{}).RowsAffected return i } -func GetUserByUserID(userID string) (*db.User, error) { +func GetUserByUserID(userID string) (*db.Users, error) { dbConn, err := db.DB.MysqlDB.DefaultGormDB() if err != nil { return nil, err } - var user db.User + var user db.Users err = dbConn.Table("users").Where("user_id=?", userID).First(&user).Error if err != nil { return nil, err @@ -85,7 +85,7 @@ func GetUserByUserID(userID string) (*db.User, error) { return &user, nil } -func UpdateUserInfo(user db.User) error { +func UpdateUserInfo(user db.Users) error { dbConn, err := db.DB.MysqlDB.DefaultGormDB() if err != nil { return err @@ -123,16 +123,138 @@ func SelectSomeUserID(userIDList []string) ([]string, error) { return resultArr, nil } -func GetUsers(showNumber, pageNumber int32) ([]User, error) { +func GetUsers(showNumber, pageNumber int32) ([]db.Users, error) { dbConn, err := db.DB.MysqlDB.DefaultGormDB() - dbConn.LogMode(true) - var users []User + var users []db.Users if err != nil { return users, err } - err = dbConn.Limit(showNumber).Offset(pageNumber).Find(&users).Error + dbConn.LogMode(true) + err = dbConn.Limit(showNumber).Offset(showNumber*(pageNumber-1)).Find(&users).Error if err != nil { return users, err } - return users, nil + return users, err +} + +func GetUsersNumCount() (int, error) { + dbConn, err := db.DB.MysqlDB.DefaultGormDB() + if err != nil { + return 0, err + } + dbConn.LogMode(true) + var count int + if err := dbConn.Model(&db.Users{}).Count(&count).Error; err != nil { + return 0, err + } + return count, nil +} + +func AddUser(userId, phoneNumber, name string) error { + dbConn, err := db.DB.MysqlDB.DefaultGormDB() + if err != nil { + return err + } + user := db.Users{ + PhoneNumber:phoneNumber, + Birth:time.Now(), + CreateTime:time.Now(), + UserID: userId, + Nickname:name, + } + result := dbConn.Create(&user) + return result.Error +} + +func UserIsBlock(userId string) (bool, error) { + dbConn, err := db.DB.MysqlDB.DefaultGormDB() + if err != nil { + return false, err + } + var user db.BlackList + rows := dbConn.Table("black_list").Where("uid=?", userId).First(&user).RowsAffected + if rows >= 1 { + return true, nil + } + return false, nil +} + +func BlockUser(userId, endDisableTime string) error { + dbConn, err := db.DB.MysqlDB.DefaultGormDB() + if err != nil { + return err + } + end, err := time.Parse("2006-01-02 15:04:05", endDisableTime) + if err != nil { + return err + } + if end.Before(time.Now()) { + return constant.ErrDB + } + var user db.BlackList + dbConn.Table("black_list").Where("uid=?", userId).First(&user) + if user.UserId != "" { + dbConn.Model(&user).Where("uid=?", user.UserId).Update("end_disable_time", end) + return nil + } + user = db.BlackList{ + UserId: userId, + BeginDisableTime: time.Now(), + EndDisableTime: end, + } + result := dbConn.Create(&user) + return result.Error +} + +func UnBlockUser(userId string) error { + dbConn, err := db.DB.MysqlDB.DefaultGormDB() + if err != nil { + return err + } + dbConn.LogMode(true) + fmt.Println(userId) + result := dbConn.Where("uid=?", userId).Delete(&db.BlackList{}) + return result.Error } + +func GetBlockUsersID(showNumber, pageNumber int32) ([]string, error) { + dbConn, err := db.DB.MysqlDB.DefaultGormDB() + var blockUsers []db.BlackList + var blockUserIds []string + if err != nil { + return blockUserIds, err + } + dbConn.LogMode(true) + err = dbConn.Limit(showNumber).Offset(showNumber*(pageNumber-1)).Find(&blockUsers).Error + if err != nil { + return blockUserIds, err + } + for _, v := range blockUsers { + blockUserIds = append(blockUserIds, v.UserId) + } + return blockUserIds, err +} + +func GetBlockUsers(userIds []string) ([]db.Users, error){ + dbConn, err := db.DB.MysqlDB.DefaultGormDB() + var blockUsers []db.Users + if err != nil { + return blockUsers, err + } + dbConn.LogMode(true) + dbConn.Find(&blockUsers,userIds) + return blockUsers, err +} + +func GetBlockUsersNumCount() (int, error) { + dbConn, err := db.DB.MysqlDB.DefaultGormDB() + if err != nil { + return 0, err + } + dbConn.LogMode(true) + var count int + if err := dbConn.Model(&db.BlackList{}).Count(&count).Error; err != nil { + return 0, err + } + return count, nil +} \ No newline at end of file diff --git a/pkg/common/http/http_resp.go b/pkg/common/http/http_resp.go index 7cf3acc4f..f268b715a 100644 --- a/pkg/common/http/http_resp.go +++ b/pkg/common/http/http_resp.go @@ -2,6 +2,7 @@ package http import ( "Open_IM/pkg/common/constant" + //"Open_IM/pkg/cms_api_struct" "net/http" "github.com/gin-gonic/gin" @@ -13,11 +14,20 @@ type BaseResp struct { Data interface{} `json:"data"` } -func RespHttp200(ctx *gin.Context, err constant.ErrInfo, data interface{}) { - resp := BaseResp{ - Code: err.Code(), - ErrMsg: err.Error(), - Data: data, +func RespHttp200(ctx *gin.Context, err error, data interface{}) { + var resp BaseResp + if v, ok := err.(constant.ErrInfo); ok { + resp.Code = v.Code() + resp.ErrMsg = v.Error() + } else { + resp.Code = constant.ErrServer.Code() + resp.ErrMsg = constant.ErrServer.Error() } + resp.Data=data ctx.JSON(http.StatusOK, resp) } + + +//func CheckErr(pb interface{}) constant.ErrInfo{ +// +//} \ No newline at end of file diff --git a/pkg/common/utils/utils.go b/pkg/common/utils/utils.go index 2fbcf1930..bd0c2a15d 100644 --- a/pkg/common/utils/utils.go +++ b/pkg/common/utils/utils.go @@ -128,19 +128,19 @@ func GroupRequestDBCopyOpenIM(dst *open_im_sdk.GroupRequest, src *db.GroupReques dst.HandleTime = uint32(src.HandledTime.Unix()) } -func UserOpenIMCopyDB(dst *db.User, src *open_im_sdk.UserInfo) { +func UserOpenIMCopyDB(dst *db.Users, src *open_im_sdk.UserInfo) { utils.CopyStructFields(dst, src) dst.Birth = utils.UnixSecondToTime(int64(src.Birth)) dst.CreateTime = utils.UnixSecondToTime(int64(src.CreateTime)) } -func UserDBCopyOpenIM(dst *open_im_sdk.UserInfo, src *db.User) { +func UserDBCopyOpenIM(dst *open_im_sdk.UserInfo, src *db.Users) { utils.CopyStructFields(dst, src) dst.CreateTime = uint32(src.CreateTime.Unix()) dst.Birth = uint32(src.Birth.Unix()) } -func UserDBCopyOpenIMPublicUser(dst *open_im_sdk.PublicUserInfo, src *db.User) { +func UserDBCopyOpenIMPublicUser(dst *open_im_sdk.PublicUserInfo, src *db.Users) { utils.CopyStructFields(dst, src) } diff --git a/pkg/proto/group/group.pb.go b/pkg/proto/group/group.pb.go index 15741944a..174355bca 100644 --- a/pkg/proto/group/group.pb.go +++ b/pkg/proto/group/group.pb.go @@ -1,1771 +1,3217 @@ // Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.27.1 +// protoc v3.15.5 // source: group/group.proto -package group // import "./group" - -import proto "github.com/golang/protobuf/proto" -import fmt "fmt" -import math "math" -import sdk_ws "Open_IM/pkg/proto/sdk_ws" +package group import ( - context "golang.org/x/net/context" + sdk_ws "Open_IM/pkg/proto/sdk_ws" + context "context" grpc "google.golang.org/grpc" + codes "google.golang.org/grpc/codes" + status "google.golang.org/grpc/status" + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + reflect "reflect" + sync "sync" ) -// 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 +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) 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:"-"` -} + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields -func (m *CommonResp) Reset() { *m = CommonResp{} } -func (m *CommonResp) String() string { return proto.CompactTextString(m) } -func (*CommonResp) ProtoMessage() {} -func (*CommonResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_a130b5186d308ee6, []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) + ErrCode int32 `protobuf:"varint,1,opt,name=ErrCode,proto3" json:"ErrCode,omitempty"` + ErrMsg string `protobuf:"bytes,2,opt,name=ErrMsg,proto3" json:"ErrMsg,omitempty"` } -func (dst *CommonResp) XXX_Merge(src proto.Message) { - xxx_messageInfo_CommonResp.Merge(dst, src) + +func (x *CommonResp) Reset() { + *x = CommonResp{} + if protoimpl.UnsafeEnabled { + mi := &file_group_group_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *CommonResp) XXX_Size() int { - return xxx_messageInfo_CommonResp.Size(m) + +func (x *CommonResp) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *CommonResp) XXX_DiscardUnknown() { - xxx_messageInfo_CommonResp.DiscardUnknown(m) + +func (*CommonResp) ProtoMessage() {} + +func (x *CommonResp) ProtoReflect() protoreflect.Message { + mi := &file_group_group_proto_msgTypes[0] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) } -var xxx_messageInfo_CommonResp proto.InternalMessageInfo +// Deprecated: Use CommonResp.ProtoReflect.Descriptor instead. +func (*CommonResp) Descriptor() ([]byte, []int) { + return file_group_group_proto_rawDescGZIP(), []int{0} +} -func (m *CommonResp) GetErrCode() int32 { - if m != nil { - return m.ErrCode +func (x *CommonResp) GetErrCode() int32 { + if x != nil { + return x.ErrCode } return 0 } -func (m *CommonResp) GetErrMsg() string { - if m != nil { - return m.ErrMsg +func (x *CommonResp) GetErrMsg() string { + if x != nil { + return x.ErrMsg } return "" } type GroupAddMemberInfo struct { - UserID string `protobuf:"bytes,1,opt,name=UserID" json:"UserID,omitempty"` - RoleLevel int32 `protobuf:"varint,2,opt,name=RoleLevel" json:"RoleLevel,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields -func (m *GroupAddMemberInfo) Reset() { *m = GroupAddMemberInfo{} } -func (m *GroupAddMemberInfo) String() string { return proto.CompactTextString(m) } -func (*GroupAddMemberInfo) ProtoMessage() {} -func (*GroupAddMemberInfo) Descriptor() ([]byte, []int) { - return fileDescriptor_group_a130b5186d308ee6, []int{1} -} -func (m *GroupAddMemberInfo) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_GroupAddMemberInfo.Unmarshal(m, b) -} -func (m *GroupAddMemberInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_GroupAddMemberInfo.Marshal(b, m, deterministic) + UserID string `protobuf:"bytes,1,opt,name=UserID,proto3" json:"UserID,omitempty"` + RoleLevel int32 `protobuf:"varint,2,opt,name=RoleLevel,proto3" json:"RoleLevel,omitempty"` } -func (dst *GroupAddMemberInfo) XXX_Merge(src proto.Message) { - xxx_messageInfo_GroupAddMemberInfo.Merge(dst, src) + +func (x *GroupAddMemberInfo) Reset() { + *x = GroupAddMemberInfo{} + if protoimpl.UnsafeEnabled { + mi := &file_group_group_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *GroupAddMemberInfo) XXX_Size() int { - return xxx_messageInfo_GroupAddMemberInfo.Size(m) + +func (x *GroupAddMemberInfo) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *GroupAddMemberInfo) XXX_DiscardUnknown() { - xxx_messageInfo_GroupAddMemberInfo.DiscardUnknown(m) + +func (*GroupAddMemberInfo) ProtoMessage() {} + +func (x *GroupAddMemberInfo) ProtoReflect() protoreflect.Message { + mi := &file_group_group_proto_msgTypes[1] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) } -var xxx_messageInfo_GroupAddMemberInfo proto.InternalMessageInfo +// Deprecated: Use GroupAddMemberInfo.ProtoReflect.Descriptor instead. +func (*GroupAddMemberInfo) Descriptor() ([]byte, []int) { + return file_group_group_proto_rawDescGZIP(), []int{1} +} -func (m *GroupAddMemberInfo) GetUserID() string { - if m != nil { - return m.UserID +func (x *GroupAddMemberInfo) GetUserID() string { + if x != nil { + return x.UserID } return "" } -func (m *GroupAddMemberInfo) GetRoleLevel() int32 { - if m != nil { - return m.RoleLevel +func (x *GroupAddMemberInfo) GetRoleLevel() int32 { + if x != nil { + return x.RoleLevel } return 0 } type CreateGroupReq struct { - InitMemberList []*GroupAddMemberInfo `protobuf:"bytes,1,rep,name=InitMemberList" json:"InitMemberList,omitempty"` - GroupInfo *sdk_ws.GroupInfo `protobuf:"bytes,2,opt,name=GroupInfo" json:"GroupInfo,omitempty"` - OperationID string `protobuf:"bytes,3,opt,name=OperationID" json:"OperationID,omitempty"` - OpUserID string `protobuf:"bytes,4,opt,name=OpUserID" json:"OpUserID,omitempty"` - OwnerUserID string `protobuf:"bytes,5,opt,name=OwnerUserID" json:"OwnerUserID,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *CreateGroupReq) Reset() { *m = CreateGroupReq{} } -func (m *CreateGroupReq) String() string { return proto.CompactTextString(m) } -func (*CreateGroupReq) ProtoMessage() {} -func (*CreateGroupReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_a130b5186d308ee6, []int{2} -} -func (m *CreateGroupReq) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_CreateGroupReq.Unmarshal(m, b) -} -func (m *CreateGroupReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_CreateGroupReq.Marshal(b, m, deterministic) + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + InitMemberList []*GroupAddMemberInfo `protobuf:"bytes,1,rep,name=InitMemberList,proto3" json:"InitMemberList,omitempty"` + GroupInfo *sdk_ws.GroupInfo `protobuf:"bytes,2,opt,name=GroupInfo,proto3" json:"GroupInfo,omitempty"` + OperationID string `protobuf:"bytes,3,opt,name=OperationID,proto3" json:"OperationID,omitempty"` + OpUserID string `protobuf:"bytes,4,opt,name=OpUserID,proto3" json:"OpUserID,omitempty"` //app manager or group owner + OwnerUserID string `protobuf:"bytes,5,opt,name=OwnerUserID,proto3" json:"OwnerUserID,omitempty"` //owner } -func (dst *CreateGroupReq) XXX_Merge(src proto.Message) { - xxx_messageInfo_CreateGroupReq.Merge(dst, src) + +func (x *CreateGroupReq) Reset() { + *x = CreateGroupReq{} + if protoimpl.UnsafeEnabled { + mi := &file_group_group_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *CreateGroupReq) XXX_Size() int { - return xxx_messageInfo_CreateGroupReq.Size(m) + +func (x *CreateGroupReq) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *CreateGroupReq) XXX_DiscardUnknown() { - xxx_messageInfo_CreateGroupReq.DiscardUnknown(m) + +func (*CreateGroupReq) ProtoMessage() {} + +func (x *CreateGroupReq) ProtoReflect() protoreflect.Message { + mi := &file_group_group_proto_msgTypes[2] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) } -var xxx_messageInfo_CreateGroupReq proto.InternalMessageInfo +// Deprecated: Use CreateGroupReq.ProtoReflect.Descriptor instead. +func (*CreateGroupReq) Descriptor() ([]byte, []int) { + return file_group_group_proto_rawDescGZIP(), []int{2} +} -func (m *CreateGroupReq) GetInitMemberList() []*GroupAddMemberInfo { - if m != nil { - return m.InitMemberList +func (x *CreateGroupReq) GetInitMemberList() []*GroupAddMemberInfo { + if x != nil { + return x.InitMemberList } return nil } -func (m *CreateGroupReq) GetGroupInfo() *sdk_ws.GroupInfo { - if m != nil { - return m.GroupInfo +func (x *CreateGroupReq) GetGroupInfo() *sdk_ws.GroupInfo { + if x != nil { + return x.GroupInfo } return nil } -func (m *CreateGroupReq) GetOperationID() string { - if m != nil { - return m.OperationID +func (x *CreateGroupReq) GetOperationID() string { + if x != nil { + return x.OperationID } return "" } -func (m *CreateGroupReq) GetOpUserID() string { - if m != nil { - return m.OpUserID +func (x *CreateGroupReq) GetOpUserID() string { + if x != nil { + return x.OpUserID } return "" } -func (m *CreateGroupReq) GetOwnerUserID() string { - if m != nil { - return m.OwnerUserID +func (x *CreateGroupReq) GetOwnerUserID() string { + if x != nil { + return x.OwnerUserID } return "" } type CreateGroupResp struct { - ErrCode int32 `protobuf:"varint,1,opt,name=ErrCode" json:"ErrCode,omitempty"` - ErrMsg string `protobuf:"bytes,2,opt,name=ErrMsg" json:"ErrMsg,omitempty"` - GroupInfo *sdk_ws.GroupInfo `protobuf:"bytes,3,opt,name=GroupInfo" json:"GroupInfo,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields -func (m *CreateGroupResp) Reset() { *m = CreateGroupResp{} } -func (m *CreateGroupResp) String() string { return proto.CompactTextString(m) } -func (*CreateGroupResp) ProtoMessage() {} -func (*CreateGroupResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_a130b5186d308ee6, []int{3} -} -func (m *CreateGroupResp) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_CreateGroupResp.Unmarshal(m, b) -} -func (m *CreateGroupResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_CreateGroupResp.Marshal(b, m, deterministic) + ErrCode int32 `protobuf:"varint,1,opt,name=ErrCode,proto3" json:"ErrCode,omitempty"` + ErrMsg string `protobuf:"bytes,2,opt,name=ErrMsg,proto3" json:"ErrMsg,omitempty"` + GroupInfo *sdk_ws.GroupInfo `protobuf:"bytes,3,opt,name=GroupInfo,proto3" json:"GroupInfo,omitempty"` } -func (dst *CreateGroupResp) XXX_Merge(src proto.Message) { - xxx_messageInfo_CreateGroupResp.Merge(dst, src) + +func (x *CreateGroupResp) Reset() { + *x = CreateGroupResp{} + if protoimpl.UnsafeEnabled { + mi := &file_group_group_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *CreateGroupResp) XXX_Size() int { - return xxx_messageInfo_CreateGroupResp.Size(m) + +func (x *CreateGroupResp) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *CreateGroupResp) XXX_DiscardUnknown() { - xxx_messageInfo_CreateGroupResp.DiscardUnknown(m) + +func (*CreateGroupResp) ProtoMessage() {} + +func (x *CreateGroupResp) ProtoReflect() protoreflect.Message { + mi := &file_group_group_proto_msgTypes[3] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) } -var xxx_messageInfo_CreateGroupResp proto.InternalMessageInfo +// Deprecated: Use CreateGroupResp.ProtoReflect.Descriptor instead. +func (*CreateGroupResp) Descriptor() ([]byte, []int) { + return file_group_group_proto_rawDescGZIP(), []int{3} +} -func (m *CreateGroupResp) GetErrCode() int32 { - if m != nil { - return m.ErrCode +func (x *CreateGroupResp) GetErrCode() int32 { + if x != nil { + return x.ErrCode } return 0 } -func (m *CreateGroupResp) GetErrMsg() string { - if m != nil { - return m.ErrMsg +func (x *CreateGroupResp) GetErrMsg() string { + if x != nil { + return x.ErrMsg } return "" } -func (m *CreateGroupResp) GetGroupInfo() *sdk_ws.GroupInfo { - if m != nil { - return m.GroupInfo +func (x *CreateGroupResp) GetGroupInfo() *sdk_ws.GroupInfo { + if x != nil { + return x.GroupInfo } return nil } type GetGroupsInfoReq struct { - GroupIDList []string `protobuf:"bytes,1,rep,name=GroupIDList" json:"GroupIDList,omitempty"` - OperationID string `protobuf:"bytes,2,opt,name=OperationID" json:"OperationID,omitempty"` - OpUserID string `protobuf:"bytes,3,opt,name=OpUserID" json:"OpUserID,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields -func (m *GetGroupsInfoReq) Reset() { *m = GetGroupsInfoReq{} } -func (m *GetGroupsInfoReq) String() string { return proto.CompactTextString(m) } -func (*GetGroupsInfoReq) ProtoMessage() {} -func (*GetGroupsInfoReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_a130b5186d308ee6, []int{4} -} -func (m *GetGroupsInfoReq) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_GetGroupsInfoReq.Unmarshal(m, b) + GroupIDList []string `protobuf:"bytes,1,rep,name=GroupIDList,proto3" json:"GroupIDList,omitempty"` + OperationID string `protobuf:"bytes,2,opt,name=OperationID,proto3" json:"OperationID,omitempty"` + OpUserID string `protobuf:"bytes,3,opt,name=OpUserID,proto3" json:"OpUserID,omitempty"` //No verification permission } -func (m *GetGroupsInfoReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_GetGroupsInfoReq.Marshal(b, m, deterministic) -} -func (dst *GetGroupsInfoReq) XXX_Merge(src proto.Message) { - xxx_messageInfo_GetGroupsInfoReq.Merge(dst, src) + +func (x *GetGroupsInfoReq) Reset() { + *x = GetGroupsInfoReq{} + if protoimpl.UnsafeEnabled { + mi := &file_group_group_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *GetGroupsInfoReq) XXX_Size() int { - return xxx_messageInfo_GetGroupsInfoReq.Size(m) + +func (x *GetGroupsInfoReq) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *GetGroupsInfoReq) XXX_DiscardUnknown() { - xxx_messageInfo_GetGroupsInfoReq.DiscardUnknown(m) + +func (*GetGroupsInfoReq) ProtoMessage() {} + +func (x *GetGroupsInfoReq) ProtoReflect() protoreflect.Message { + mi := &file_group_group_proto_msgTypes[4] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) } -var xxx_messageInfo_GetGroupsInfoReq proto.InternalMessageInfo +// Deprecated: Use GetGroupsInfoReq.ProtoReflect.Descriptor instead. +func (*GetGroupsInfoReq) Descriptor() ([]byte, []int) { + return file_group_group_proto_rawDescGZIP(), []int{4} +} -func (m *GetGroupsInfoReq) GetGroupIDList() []string { - if m != nil { - return m.GroupIDList +func (x *GetGroupsInfoReq) GetGroupIDList() []string { + if x != nil { + return x.GroupIDList } return nil } -func (m *GetGroupsInfoReq) GetOperationID() string { - if m != nil { - return m.OperationID +func (x *GetGroupsInfoReq) GetOperationID() string { + if x != nil { + return x.OperationID } return "" } -func (m *GetGroupsInfoReq) GetOpUserID() string { - if m != nil { - return m.OpUserID +func (x *GetGroupsInfoReq) GetOpUserID() string { + if x != nil { + return x.OpUserID } return "" } type GetGroupsInfoResp struct { - ErrCode int32 `protobuf:"varint,1,opt,name=ErrCode" json:"ErrCode,omitempty"` - ErrMsg string `protobuf:"bytes,2,opt,name=ErrMsg" json:"ErrMsg,omitempty"` - GroupInfoList []*sdk_ws.GroupInfo `protobuf:"bytes,3,rep,name=GroupInfoList" json:"GroupInfoList,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields -func (m *GetGroupsInfoResp) Reset() { *m = GetGroupsInfoResp{} } -func (m *GetGroupsInfoResp) String() string { return proto.CompactTextString(m) } -func (*GetGroupsInfoResp) ProtoMessage() {} -func (*GetGroupsInfoResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_a130b5186d308ee6, []int{5} -} -func (m *GetGroupsInfoResp) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_GetGroupsInfoResp.Unmarshal(m, b) + ErrCode int32 `protobuf:"varint,1,opt,name=ErrCode,proto3" json:"ErrCode,omitempty"` + ErrMsg string `protobuf:"bytes,2,opt,name=ErrMsg,proto3" json:"ErrMsg,omitempty"` + GroupInfoList []*sdk_ws.GroupInfo `protobuf:"bytes,3,rep,name=GroupInfoList,proto3" json:"GroupInfoList,omitempty"` } -func (m *GetGroupsInfoResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_GetGroupsInfoResp.Marshal(b, m, deterministic) -} -func (dst *GetGroupsInfoResp) XXX_Merge(src proto.Message) { - xxx_messageInfo_GetGroupsInfoResp.Merge(dst, src) + +func (x *GetGroupsInfoResp) Reset() { + *x = GetGroupsInfoResp{} + if protoimpl.UnsafeEnabled { + mi := &file_group_group_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *GetGroupsInfoResp) XXX_Size() int { - return xxx_messageInfo_GetGroupsInfoResp.Size(m) + +func (x *GetGroupsInfoResp) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *GetGroupsInfoResp) XXX_DiscardUnknown() { - xxx_messageInfo_GetGroupsInfoResp.DiscardUnknown(m) + +func (*GetGroupsInfoResp) ProtoMessage() {} + +func (x *GetGroupsInfoResp) ProtoReflect() protoreflect.Message { + mi := &file_group_group_proto_msgTypes[5] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) } -var xxx_messageInfo_GetGroupsInfoResp proto.InternalMessageInfo +// Deprecated: Use GetGroupsInfoResp.ProtoReflect.Descriptor instead. +func (*GetGroupsInfoResp) Descriptor() ([]byte, []int) { + return file_group_group_proto_rawDescGZIP(), []int{5} +} -func (m *GetGroupsInfoResp) GetErrCode() int32 { - if m != nil { - return m.ErrCode +func (x *GetGroupsInfoResp) GetErrCode() int32 { + if x != nil { + return x.ErrCode } return 0 } -func (m *GetGroupsInfoResp) GetErrMsg() string { - if m != nil { - return m.ErrMsg +func (x *GetGroupsInfoResp) GetErrMsg() string { + if x != nil { + return x.ErrMsg } return "" } -func (m *GetGroupsInfoResp) GetGroupInfoList() []*sdk_ws.GroupInfo { - if m != nil { - return m.GroupInfoList +func (x *GetGroupsInfoResp) GetGroupInfoList() []*sdk_ws.GroupInfo { + if x != nil { + return x.GroupInfoList } return nil } type SetGroupInfoReq struct { - GroupInfo *sdk_ws.GroupInfo `protobuf:"bytes,1,opt,name=GroupInfo" json:"GroupInfo,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:"-"` -} + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields -func (m *SetGroupInfoReq) Reset() { *m = SetGroupInfoReq{} } -func (m *SetGroupInfoReq) String() string { return proto.CompactTextString(m) } -func (*SetGroupInfoReq) ProtoMessage() {} -func (*SetGroupInfoReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_a130b5186d308ee6, []int{6} + GroupInfo *sdk_ws.GroupInfo `protobuf:"bytes,1,opt,name=GroupInfo,proto3" json:"GroupInfo,omitempty"` + OpUserID string `protobuf:"bytes,2,opt,name=OpUserID,proto3" json:"OpUserID,omitempty"` //app manager or group owner + OperationID string `protobuf:"bytes,3,opt,name=OperationID,proto3" json:"OperationID,omitempty"` } -func (m *SetGroupInfoReq) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_SetGroupInfoReq.Unmarshal(m, b) -} -func (m *SetGroupInfoReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_SetGroupInfoReq.Marshal(b, m, deterministic) -} -func (dst *SetGroupInfoReq) XXX_Merge(src proto.Message) { - xxx_messageInfo_SetGroupInfoReq.Merge(dst, src) + +func (x *SetGroupInfoReq) Reset() { + *x = SetGroupInfoReq{} + if protoimpl.UnsafeEnabled { + mi := &file_group_group_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *SetGroupInfoReq) XXX_Size() int { - return xxx_messageInfo_SetGroupInfoReq.Size(m) + +func (x *SetGroupInfoReq) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *SetGroupInfoReq) XXX_DiscardUnknown() { - xxx_messageInfo_SetGroupInfoReq.DiscardUnknown(m) + +func (*SetGroupInfoReq) ProtoMessage() {} + +func (x *SetGroupInfoReq) ProtoReflect() protoreflect.Message { + mi := &file_group_group_proto_msgTypes[6] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) } -var xxx_messageInfo_SetGroupInfoReq proto.InternalMessageInfo +// Deprecated: Use SetGroupInfoReq.ProtoReflect.Descriptor instead. +func (*SetGroupInfoReq) Descriptor() ([]byte, []int) { + return file_group_group_proto_rawDescGZIP(), []int{6} +} -func (m *SetGroupInfoReq) GetGroupInfo() *sdk_ws.GroupInfo { - if m != nil { - return m.GroupInfo +func (x *SetGroupInfoReq) GetGroupInfo() *sdk_ws.GroupInfo { + if x != nil { + return x.GroupInfo } return nil } -func (m *SetGroupInfoReq) GetOpUserID() string { - if m != nil { - return m.OpUserID +func (x *SetGroupInfoReq) GetOpUserID() string { + if x != nil { + return x.OpUserID } return "" } -func (m *SetGroupInfoReq) GetOperationID() string { - if m != nil { - return m.OperationID +func (x *SetGroupInfoReq) GetOperationID() string { + if x != nil { + return x.OperationID } return "" } type SetGroupInfoResp struct { - CommonResp *CommonResp `protobuf:"bytes,1,opt,name=CommonResp" json:"CommonResp,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields -func (m *SetGroupInfoResp) Reset() { *m = SetGroupInfoResp{} } -func (m *SetGroupInfoResp) String() string { return proto.CompactTextString(m) } -func (*SetGroupInfoResp) ProtoMessage() {} -func (*SetGroupInfoResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_a130b5186d308ee6, []int{7} -} -func (m *SetGroupInfoResp) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_SetGroupInfoResp.Unmarshal(m, b) -} -func (m *SetGroupInfoResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_SetGroupInfoResp.Marshal(b, m, deterministic) + CommonResp *CommonResp `protobuf:"bytes,1,opt,name=CommonResp,proto3" json:"CommonResp,omitempty"` } -func (dst *SetGroupInfoResp) XXX_Merge(src proto.Message) { - xxx_messageInfo_SetGroupInfoResp.Merge(dst, src) + +func (x *SetGroupInfoResp) Reset() { + *x = SetGroupInfoResp{} + if protoimpl.UnsafeEnabled { + mi := &file_group_group_proto_msgTypes[7] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *SetGroupInfoResp) XXX_Size() int { - return xxx_messageInfo_SetGroupInfoResp.Size(m) + +func (x *SetGroupInfoResp) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *SetGroupInfoResp) XXX_DiscardUnknown() { - xxx_messageInfo_SetGroupInfoResp.DiscardUnknown(m) + +func (*SetGroupInfoResp) ProtoMessage() {} + +func (x *SetGroupInfoResp) ProtoReflect() protoreflect.Message { + mi := &file_group_group_proto_msgTypes[7] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) } -var xxx_messageInfo_SetGroupInfoResp proto.InternalMessageInfo +// Deprecated: Use SetGroupInfoResp.ProtoReflect.Descriptor instead. +func (*SetGroupInfoResp) Descriptor() ([]byte, []int) { + return file_group_group_proto_rawDescGZIP(), []int{7} +} -func (m *SetGroupInfoResp) GetCommonResp() *CommonResp { - if m != nil { - return m.CommonResp +func (x *SetGroupInfoResp) GetCommonResp() *CommonResp { + if x != nil { + return x.CommonResp } return nil } type GetGroupApplicationListReq struct { - OpUserID string `protobuf:"bytes,1,opt,name=OpUserID" json:"OpUserID,omitempty"` - OperationID string `protobuf:"bytes,2,opt,name=OperationID" json:"OperationID,omitempty"` - FromUserID string `protobuf:"bytes,3,opt,name=FromUserID" json:"FromUserID,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields -func (m *GetGroupApplicationListReq) Reset() { *m = GetGroupApplicationListReq{} } -func (m *GetGroupApplicationListReq) String() string { return proto.CompactTextString(m) } -func (*GetGroupApplicationListReq) ProtoMessage() {} -func (*GetGroupApplicationListReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_a130b5186d308ee6, []int{8} -} -func (m *GetGroupApplicationListReq) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_GetGroupApplicationListReq.Unmarshal(m, b) -} -func (m *GetGroupApplicationListReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_GetGroupApplicationListReq.Marshal(b, m, deterministic) + OpUserID string `protobuf:"bytes,1,opt,name=OpUserID,proto3" json:"OpUserID,omitempty"` //app manager or group owner(manager) + OperationID string `protobuf:"bytes,2,opt,name=OperationID,proto3" json:"OperationID,omitempty"` + FromUserID string `protobuf:"bytes,3,opt,name=FromUserID,proto3" json:"FromUserID,omitempty"` //owner or manager } -func (dst *GetGroupApplicationListReq) XXX_Merge(src proto.Message) { - xxx_messageInfo_GetGroupApplicationListReq.Merge(dst, src) + +func (x *GetGroupApplicationListReq) Reset() { + *x = GetGroupApplicationListReq{} + if protoimpl.UnsafeEnabled { + mi := &file_group_group_proto_msgTypes[8] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *GetGroupApplicationListReq) XXX_Size() int { - return xxx_messageInfo_GetGroupApplicationListReq.Size(m) + +func (x *GetGroupApplicationListReq) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *GetGroupApplicationListReq) XXX_DiscardUnknown() { - xxx_messageInfo_GetGroupApplicationListReq.DiscardUnknown(m) + +func (*GetGroupApplicationListReq) ProtoMessage() {} + +func (x *GetGroupApplicationListReq) ProtoReflect() protoreflect.Message { + mi := &file_group_group_proto_msgTypes[8] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) } -var xxx_messageInfo_GetGroupApplicationListReq proto.InternalMessageInfo +// Deprecated: Use GetGroupApplicationListReq.ProtoReflect.Descriptor instead. +func (*GetGroupApplicationListReq) Descriptor() ([]byte, []int) { + return file_group_group_proto_rawDescGZIP(), []int{8} +} -func (m *GetGroupApplicationListReq) GetOpUserID() string { - if m != nil { - return m.OpUserID +func (x *GetGroupApplicationListReq) GetOpUserID() string { + if x != nil { + return x.OpUserID } return "" } -func (m *GetGroupApplicationListReq) GetOperationID() string { - if m != nil { - return m.OperationID +func (x *GetGroupApplicationListReq) GetOperationID() string { + if x != nil { + return x.OperationID } return "" } -func (m *GetGroupApplicationListReq) GetFromUserID() string { - if m != nil { - return m.FromUserID +func (x *GetGroupApplicationListReq) GetFromUserID() string { + if x != nil { + return x.FromUserID } return "" } type GetGroupApplicationListResp struct { - ErrCode int32 `protobuf:"varint,1,opt,name=ErrCode" json:"ErrCode,omitempty"` - ErrMsg string `protobuf:"bytes,2,opt,name=ErrMsg" json:"ErrMsg,omitempty"` - GroupRequestList []*sdk_ws.GroupRequest `protobuf:"bytes,3,rep,name=GroupRequestList" json:"GroupRequestList,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields -func (m *GetGroupApplicationListResp) Reset() { *m = GetGroupApplicationListResp{} } -func (m *GetGroupApplicationListResp) String() string { return proto.CompactTextString(m) } -func (*GetGroupApplicationListResp) ProtoMessage() {} -func (*GetGroupApplicationListResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_a130b5186d308ee6, []int{9} -} -func (m *GetGroupApplicationListResp) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_GetGroupApplicationListResp.Unmarshal(m, b) -} -func (m *GetGroupApplicationListResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_GetGroupApplicationListResp.Marshal(b, m, deterministic) + ErrCode int32 `protobuf:"varint,1,opt,name=ErrCode,proto3" json:"ErrCode,omitempty"` + ErrMsg string `protobuf:"bytes,2,opt,name=ErrMsg,proto3" json:"ErrMsg,omitempty"` + GroupRequestList []*sdk_ws.GroupRequest `protobuf:"bytes,3,rep,name=GroupRequestList,proto3" json:"GroupRequestList,omitempty"` } -func (dst *GetGroupApplicationListResp) XXX_Merge(src proto.Message) { - xxx_messageInfo_GetGroupApplicationListResp.Merge(dst, src) + +func (x *GetGroupApplicationListResp) Reset() { + *x = GetGroupApplicationListResp{} + if protoimpl.UnsafeEnabled { + mi := &file_group_group_proto_msgTypes[9] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *GetGroupApplicationListResp) XXX_Size() int { - return xxx_messageInfo_GetGroupApplicationListResp.Size(m) + +func (x *GetGroupApplicationListResp) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *GetGroupApplicationListResp) XXX_DiscardUnknown() { - xxx_messageInfo_GetGroupApplicationListResp.DiscardUnknown(m) + +func (*GetGroupApplicationListResp) ProtoMessage() {} + +func (x *GetGroupApplicationListResp) ProtoReflect() protoreflect.Message { + mi := &file_group_group_proto_msgTypes[9] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) } -var xxx_messageInfo_GetGroupApplicationListResp proto.InternalMessageInfo +// Deprecated: Use GetGroupApplicationListResp.ProtoReflect.Descriptor instead. +func (*GetGroupApplicationListResp) Descriptor() ([]byte, []int) { + return file_group_group_proto_rawDescGZIP(), []int{9} +} -func (m *GetGroupApplicationListResp) GetErrCode() int32 { - if m != nil { - return m.ErrCode +func (x *GetGroupApplicationListResp) GetErrCode() int32 { + if x != nil { + return x.ErrCode } return 0 } -func (m *GetGroupApplicationListResp) GetErrMsg() string { - if m != nil { - return m.ErrMsg +func (x *GetGroupApplicationListResp) GetErrMsg() string { + if x != nil { + return x.ErrMsg } return "" } -func (m *GetGroupApplicationListResp) GetGroupRequestList() []*sdk_ws.GroupRequest { - if m != nil { - return m.GroupRequestList +func (x *GetGroupApplicationListResp) GetGroupRequestList() []*sdk_ws.GroupRequest { + if x != nil { + return x.GroupRequestList } return nil } type TransferGroupOwnerReq struct { - GroupID string `protobuf:"bytes,1,opt,name=GroupID" json:"GroupID,omitempty"` - OldOwnerUserID string `protobuf:"bytes,2,opt,name=OldOwnerUserID" json:"OldOwnerUserID,omitempty"` - NewOwnerUserID string `protobuf:"bytes,3,opt,name=NewOwnerUserID" json:"NewOwnerUserID,omitempty"` - OperationID string `protobuf:"bytes,4,opt,name=OperationID" json:"OperationID,omitempty"` - OpUserID string `protobuf:"bytes,5,opt,name=OpUserID" json:"OpUserID,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *TransferGroupOwnerReq) Reset() { *m = TransferGroupOwnerReq{} } -func (m *TransferGroupOwnerReq) String() string { return proto.CompactTextString(m) } -func (*TransferGroupOwnerReq) ProtoMessage() {} -func (*TransferGroupOwnerReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_a130b5186d308ee6, []int{10} -} -func (m *TransferGroupOwnerReq) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_TransferGroupOwnerReq.Unmarshal(m, b) -} -func (m *TransferGroupOwnerReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_TransferGroupOwnerReq.Marshal(b, m, deterministic) + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + GroupID string `protobuf:"bytes,1,opt,name=GroupID,proto3" json:"GroupID,omitempty"` + OldOwnerUserID string `protobuf:"bytes,2,opt,name=OldOwnerUserID,proto3" json:"OldOwnerUserID,omitempty"` + NewOwnerUserID string `protobuf:"bytes,3,opt,name=NewOwnerUserID,proto3" json:"NewOwnerUserID,omitempty"` + OperationID string `protobuf:"bytes,4,opt,name=OperationID,proto3" json:"OperationID,omitempty"` + OpUserID string `protobuf:"bytes,5,opt,name=OpUserID,proto3" json:"OpUserID,omitempty"` //app manager or group owner } -func (dst *TransferGroupOwnerReq) XXX_Merge(src proto.Message) { - xxx_messageInfo_TransferGroupOwnerReq.Merge(dst, src) + +func (x *TransferGroupOwnerReq) Reset() { + *x = TransferGroupOwnerReq{} + if protoimpl.UnsafeEnabled { + mi := &file_group_group_proto_msgTypes[10] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *TransferGroupOwnerReq) XXX_Size() int { - return xxx_messageInfo_TransferGroupOwnerReq.Size(m) + +func (x *TransferGroupOwnerReq) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *TransferGroupOwnerReq) XXX_DiscardUnknown() { - xxx_messageInfo_TransferGroupOwnerReq.DiscardUnknown(m) + +func (*TransferGroupOwnerReq) ProtoMessage() {} + +func (x *TransferGroupOwnerReq) ProtoReflect() protoreflect.Message { + mi := &file_group_group_proto_msgTypes[10] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) } -var xxx_messageInfo_TransferGroupOwnerReq proto.InternalMessageInfo +// Deprecated: Use TransferGroupOwnerReq.ProtoReflect.Descriptor instead. +func (*TransferGroupOwnerReq) Descriptor() ([]byte, []int) { + return file_group_group_proto_rawDescGZIP(), []int{10} +} -func (m *TransferGroupOwnerReq) GetGroupID() string { - if m != nil { - return m.GroupID +func (x *TransferGroupOwnerReq) GetGroupID() string { + if x != nil { + return x.GroupID } return "" } -func (m *TransferGroupOwnerReq) GetOldOwnerUserID() string { - if m != nil { - return m.OldOwnerUserID +func (x *TransferGroupOwnerReq) GetOldOwnerUserID() string { + if x != nil { + return x.OldOwnerUserID } return "" } -func (m *TransferGroupOwnerReq) GetNewOwnerUserID() string { - if m != nil { - return m.NewOwnerUserID +func (x *TransferGroupOwnerReq) GetNewOwnerUserID() string { + if x != nil { + return x.NewOwnerUserID } return "" } -func (m *TransferGroupOwnerReq) GetOperationID() string { - if m != nil { - return m.OperationID +func (x *TransferGroupOwnerReq) GetOperationID() string { + if x != nil { + return x.OperationID } return "" } -func (m *TransferGroupOwnerReq) GetOpUserID() string { - if m != nil { - return m.OpUserID +func (x *TransferGroupOwnerReq) GetOpUserID() string { + if x != nil { + return x.OpUserID } return "" } type TransferGroupOwnerResp struct { - CommonResp *CommonResp `protobuf:"bytes,1,opt,name=CommonResp" json:"CommonResp,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + CommonResp *CommonResp `protobuf:"bytes,1,opt,name=CommonResp,proto3" json:"CommonResp,omitempty"` } -func (m *TransferGroupOwnerResp) Reset() { *m = TransferGroupOwnerResp{} } -func (m *TransferGroupOwnerResp) String() string { return proto.CompactTextString(m) } -func (*TransferGroupOwnerResp) ProtoMessage() {} -func (*TransferGroupOwnerResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_a130b5186d308ee6, []int{11} +func (x *TransferGroupOwnerResp) Reset() { + *x = TransferGroupOwnerResp{} + if protoimpl.UnsafeEnabled { + mi := &file_group_group_proto_msgTypes[11] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *TransferGroupOwnerResp) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_TransferGroupOwnerResp.Unmarshal(m, b) + +func (x *TransferGroupOwnerResp) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *TransferGroupOwnerResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_TransferGroupOwnerResp.Marshal(b, m, deterministic) + +func (*TransferGroupOwnerResp) ProtoMessage() {} + +func (x *TransferGroupOwnerResp) ProtoReflect() protoreflect.Message { + mi := &file_group_group_proto_msgTypes[11] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) } -func (dst *TransferGroupOwnerResp) XXX_Merge(src proto.Message) { - xxx_messageInfo_TransferGroupOwnerResp.Merge(dst, src) + +// Deprecated: Use TransferGroupOwnerResp.ProtoReflect.Descriptor instead. +func (*TransferGroupOwnerResp) Descriptor() ([]byte, []int) { + return file_group_group_proto_rawDescGZIP(), []int{11} } -func (m *TransferGroupOwnerResp) XXX_Size() int { - return xxx_messageInfo_TransferGroupOwnerResp.Size(m) + +func (x *TransferGroupOwnerResp) GetCommonResp() *CommonResp { + if x != nil { + return x.CommonResp + } + return nil } -func (m *TransferGroupOwnerResp) XXX_DiscardUnknown() { - xxx_messageInfo_TransferGroupOwnerResp.DiscardUnknown(m) + +type JoinGroupReq struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + GroupID string `protobuf:"bytes,1,opt,name=GroupID,proto3" json:"GroupID,omitempty"` + ReqMessage string `protobuf:"bytes,2,opt,name=ReqMessage,proto3" json:"ReqMessage,omitempty"` + OpUserID string `protobuf:"bytes,3,opt,name=OpUserID,proto3" json:"OpUserID,omitempty"` + OperationID string `protobuf:"bytes,4,opt,name=OperationID,proto3" json:"OperationID,omitempty"` } -var xxx_messageInfo_TransferGroupOwnerResp proto.InternalMessageInfo +func (x *JoinGroupReq) Reset() { + *x = JoinGroupReq{} + if protoimpl.UnsafeEnabled { + mi := &file_group_group_proto_msgTypes[12] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *JoinGroupReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*JoinGroupReq) ProtoMessage() {} -func (m *TransferGroupOwnerResp) GetCommonResp() *CommonResp { - if m != nil { - return m.CommonResp +func (x *JoinGroupReq) ProtoReflect() protoreflect.Message { + mi := &file_group_group_proto_msgTypes[12] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms } - return nil + return mi.MessageOf(x) } -type JoinGroupReq struct { - GroupID string `protobuf:"bytes,1,opt,name=GroupID" json:"GroupID,omitempty"` - ReqMessage string `protobuf:"bytes,2,opt,name=ReqMessage" json:"ReqMessage,omitempty"` - OpUserID string `protobuf:"bytes,3,opt,name=OpUserID" json:"OpUserID,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 *JoinGroupReq) Reset() { *m = JoinGroupReq{} } -func (m *JoinGroupReq) String() string { return proto.CompactTextString(m) } -func (*JoinGroupReq) ProtoMessage() {} +// Deprecated: Use JoinGroupReq.ProtoReflect.Descriptor instead. func (*JoinGroupReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_a130b5186d308ee6, []int{12} + return file_group_group_proto_rawDescGZIP(), []int{12} +} + +func (x *JoinGroupReq) GetGroupID() string { + if x != nil { + return x.GroupID + } + return "" } -func (m *JoinGroupReq) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_JoinGroupReq.Unmarshal(m, b) + +func (x *JoinGroupReq) GetReqMessage() string { + if x != nil { + return x.ReqMessage + } + return "" } -func (m *JoinGroupReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_JoinGroupReq.Marshal(b, m, deterministic) + +func (x *JoinGroupReq) GetOpUserID() string { + if x != nil { + return x.OpUserID + } + return "" } -func (dst *JoinGroupReq) XXX_Merge(src proto.Message) { - xxx_messageInfo_JoinGroupReq.Merge(dst, src) + +func (x *JoinGroupReq) GetOperationID() string { + if x != nil { + return x.OperationID + } + return "" } -func (m *JoinGroupReq) XXX_Size() int { - return xxx_messageInfo_JoinGroupReq.Size(m) + +type JoinGroupResp struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + CommonResp *CommonResp `protobuf:"bytes,1,opt,name=CommonResp,proto3" json:"CommonResp,omitempty"` } -func (m *JoinGroupReq) XXX_DiscardUnknown() { - xxx_messageInfo_JoinGroupReq.DiscardUnknown(m) + +func (x *JoinGroupResp) Reset() { + *x = JoinGroupResp{} + if protoimpl.UnsafeEnabled { + mi := &file_group_group_proto_msgTypes[13] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *JoinGroupResp) String() string { + return protoimpl.X.MessageStringOf(x) } -var xxx_messageInfo_JoinGroupReq proto.InternalMessageInfo +func (*JoinGroupResp) ProtoMessage() {} -func (m *JoinGroupReq) GetGroupID() string { - if m != nil { - return m.GroupID +func (x *JoinGroupResp) ProtoReflect() protoreflect.Message { + mi := &file_group_group_proto_msgTypes[13] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms } - return "" + return mi.MessageOf(x) } -func (m *JoinGroupReq) GetReqMessage() string { - if m != nil { - return m.ReqMessage +// Deprecated: Use JoinGroupResp.ProtoReflect.Descriptor instead. +func (*JoinGroupResp) Descriptor() ([]byte, []int) { + return file_group_group_proto_rawDescGZIP(), []int{13} +} + +func (x *JoinGroupResp) GetCommonResp() *CommonResp { + if x != nil { + return x.CommonResp + } + return nil +} + +type GroupApplicationResponseReq struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + OperationID string `protobuf:"bytes,1,opt,name=OperationID,proto3" json:"OperationID,omitempty"` + OpUserID string `protobuf:"bytes,2,opt,name=OpUserID,proto3" json:"OpUserID,omitempty"` + GroupID string `protobuf:"bytes,3,opt,name=GroupID,proto3" json:"GroupID,omitempty"` + FromUserID string `protobuf:"bytes,4,opt,name=FromUserID,proto3" json:"FromUserID,omitempty"` // + HandledMsg string `protobuf:"bytes,5,opt,name=HandledMsg,proto3" json:"HandledMsg,omitempty"` + HandleResult int32 `protobuf:"varint,6,opt,name=HandleResult,proto3" json:"HandleResult,omitempty"` +} + +func (x *GroupApplicationResponseReq) Reset() { + *x = GroupApplicationResponseReq{} + if protoimpl.UnsafeEnabled { + mi := &file_group_group_proto_msgTypes[14] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GroupApplicationResponseReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GroupApplicationResponseReq) ProtoMessage() {} + +func (x *GroupApplicationResponseReq) ProtoReflect() protoreflect.Message { + mi := &file_group_group_proto_msgTypes[14] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GroupApplicationResponseReq.ProtoReflect.Descriptor instead. +func (*GroupApplicationResponseReq) Descriptor() ([]byte, []int) { + return file_group_group_proto_rawDescGZIP(), []int{14} +} + +func (x *GroupApplicationResponseReq) GetOperationID() string { + if x != nil { + return x.OperationID } return "" } -func (m *JoinGroupReq) GetOpUserID() string { - if m != nil { - return m.OpUserID +func (x *GroupApplicationResponseReq) GetOpUserID() string { + if x != nil { + return x.OpUserID } return "" } -func (m *JoinGroupReq) GetOperationID() string { - if m != nil { - return m.OperationID +func (x *GroupApplicationResponseReq) GetGroupID() string { + if x != nil { + return x.GroupID } return "" } -type JoinGroupResp 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 (x *GroupApplicationResponseReq) GetFromUserID() string { + if x != nil { + return x.FromUserID + } + return "" } -func (m *JoinGroupResp) Reset() { *m = JoinGroupResp{} } -func (m *JoinGroupResp) String() string { return proto.CompactTextString(m) } -func (*JoinGroupResp) ProtoMessage() {} -func (*JoinGroupResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_a130b5186d308ee6, []int{13} +func (x *GroupApplicationResponseReq) GetHandledMsg() string { + if x != nil { + return x.HandledMsg + } + return "" } -func (m *JoinGroupResp) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_JoinGroupResp.Unmarshal(m, b) + +func (x *GroupApplicationResponseReq) GetHandleResult() int32 { + if x != nil { + return x.HandleResult + } + return 0 } -func (m *JoinGroupResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_JoinGroupResp.Marshal(b, m, deterministic) + +type GroupApplicationResponseResp struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + CommonResp *CommonResp `protobuf:"bytes,1,opt,name=CommonResp,proto3" json:"CommonResp,omitempty"` } -func (dst *JoinGroupResp) XXX_Merge(src proto.Message) { - xxx_messageInfo_JoinGroupResp.Merge(dst, src) + +func (x *GroupApplicationResponseResp) Reset() { + *x = GroupApplicationResponseResp{} + if protoimpl.UnsafeEnabled { + mi := &file_group_group_proto_msgTypes[15] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *JoinGroupResp) XXX_Size() int { - return xxx_messageInfo_JoinGroupResp.Size(m) + +func (x *GroupApplicationResponseResp) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *JoinGroupResp) XXX_DiscardUnknown() { - xxx_messageInfo_JoinGroupResp.DiscardUnknown(m) + +func (*GroupApplicationResponseResp) ProtoMessage() {} + +func (x *GroupApplicationResponseResp) ProtoReflect() protoreflect.Message { + mi := &file_group_group_proto_msgTypes[15] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) } -var xxx_messageInfo_JoinGroupResp proto.InternalMessageInfo +// Deprecated: Use GroupApplicationResponseResp.ProtoReflect.Descriptor instead. +func (*GroupApplicationResponseResp) Descriptor() ([]byte, []int) { + return file_group_group_proto_rawDescGZIP(), []int{15} +} -func (m *JoinGroupResp) GetCommonResp() *CommonResp { - if m != nil { - return m.CommonResp +func (x *GroupApplicationResponseResp) GetCommonResp() *CommonResp { + if x != nil { + return x.CommonResp } return nil } -type GroupApplicationResponseReq struct { - OperationID string `protobuf:"bytes,1,opt,name=OperationID" json:"OperationID,omitempty"` - OpUserID string `protobuf:"bytes,2,opt,name=OpUserID" json:"OpUserID,omitempty"` - GroupID string `protobuf:"bytes,3,opt,name=GroupID" json:"GroupID,omitempty"` - FromUserID string `protobuf:"bytes,4,opt,name=FromUserID" json:"FromUserID,omitempty"` - HandledMsg string `protobuf:"bytes,5,opt,name=HandledMsg" json:"HandledMsg,omitempty"` - HandleResult int32 `protobuf:"varint,6,opt,name=HandleResult" json:"HandleResult,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *GroupApplicationResponseReq) Reset() { *m = GroupApplicationResponseReq{} } -func (m *GroupApplicationResponseReq) String() string { return proto.CompactTextString(m) } -func (*GroupApplicationResponseReq) ProtoMessage() {} -func (*GroupApplicationResponseReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_a130b5186d308ee6, []int{14} -} -func (m *GroupApplicationResponseReq) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_GroupApplicationResponseReq.Unmarshal(m, b) +type QuitGroupReq struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + GroupID string `protobuf:"bytes,1,opt,name=GroupID,proto3" json:"GroupID,omitempty"` + OperationID string `protobuf:"bytes,2,opt,name=OperationID,proto3" json:"OperationID,omitempty"` + OpUserID string `protobuf:"bytes,3,opt,name=OpUserID,proto3" json:"OpUserID,omitempty"` } -func (m *GroupApplicationResponseReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_GroupApplicationResponseReq.Marshal(b, m, deterministic) + +func (x *QuitGroupReq) Reset() { + *x = QuitGroupReq{} + if protoimpl.UnsafeEnabled { + mi := &file_group_group_proto_msgTypes[16] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (dst *GroupApplicationResponseReq) XXX_Merge(src proto.Message) { - xxx_messageInfo_GroupApplicationResponseReq.Merge(dst, src) + +func (x *QuitGroupReq) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *GroupApplicationResponseReq) XXX_Size() int { - return xxx_messageInfo_GroupApplicationResponseReq.Size(m) + +func (*QuitGroupReq) ProtoMessage() {} + +func (x *QuitGroupReq) ProtoReflect() protoreflect.Message { + mi := &file_group_group_proto_msgTypes[16] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) } -func (m *GroupApplicationResponseReq) XXX_DiscardUnknown() { - xxx_messageInfo_GroupApplicationResponseReq.DiscardUnknown(m) + +// Deprecated: Use QuitGroupReq.ProtoReflect.Descriptor instead. +func (*QuitGroupReq) Descriptor() ([]byte, []int) { + return file_group_group_proto_rawDescGZIP(), []int{16} } -var xxx_messageInfo_GroupApplicationResponseReq proto.InternalMessageInfo +func (x *QuitGroupReq) GetGroupID() string { + if x != nil { + return x.GroupID + } + return "" +} -func (m *GroupApplicationResponseReq) GetOperationID() string { - if m != nil { - return m.OperationID +func (x *QuitGroupReq) GetOperationID() string { + if x != nil { + return x.OperationID } return "" } -func (m *GroupApplicationResponseReq) GetOpUserID() string { - if m != nil { - return m.OpUserID +func (x *QuitGroupReq) GetOpUserID() string { + if x != nil { + return x.OpUserID } return "" } -func (m *GroupApplicationResponseReq) GetGroupID() string { - if m != nil { - return m.GroupID +type QuitGroupResp struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + CommonResp *CommonResp `protobuf:"bytes,1,opt,name=CommonResp,proto3" json:"CommonResp,omitempty"` +} + +func (x *QuitGroupResp) Reset() { + *x = QuitGroupResp{} + if protoimpl.UnsafeEnabled { + mi := &file_group_group_proto_msgTypes[17] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *QuitGroupResp) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*QuitGroupResp) ProtoMessage() {} + +func (x *QuitGroupResp) ProtoReflect() protoreflect.Message { + mi := &file_group_group_proto_msgTypes[17] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use QuitGroupResp.ProtoReflect.Descriptor instead. +func (*QuitGroupResp) Descriptor() ([]byte, []int) { + return file_group_group_proto_rawDescGZIP(), []int{17} +} + +func (x *QuitGroupResp) GetCommonResp() *CommonResp { + if x != nil { + return x.CommonResp + } + return nil +} + +type GetGroupMemberListReq struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + GroupID string `protobuf:"bytes,1,opt,name=GroupID,proto3" json:"GroupID,omitempty"` + OpUserID string `protobuf:"bytes,2,opt,name=OpUserID,proto3" json:"OpUserID,omitempty"` //No verification permission + OperationID string `protobuf:"bytes,3,opt,name=OperationID,proto3" json:"OperationID,omitempty"` + Filter int32 `protobuf:"varint,4,opt,name=Filter,proto3" json:"Filter,omitempty"` + NextSeq int32 `protobuf:"varint,5,opt,name=NextSeq,proto3" json:"NextSeq,omitempty"` +} + +func (x *GetGroupMemberListReq) Reset() { + *x = GetGroupMemberListReq{} + if protoimpl.UnsafeEnabled { + mi := &file_group_group_proto_msgTypes[18] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetGroupMemberListReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetGroupMemberListReq) ProtoMessage() {} + +func (x *GetGroupMemberListReq) ProtoReflect() protoreflect.Message { + mi := &file_group_group_proto_msgTypes[18] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetGroupMemberListReq.ProtoReflect.Descriptor instead. +func (*GetGroupMemberListReq) Descriptor() ([]byte, []int) { + return file_group_group_proto_rawDescGZIP(), []int{18} +} + +func (x *GetGroupMemberListReq) GetGroupID() string { + if x != nil { + return x.GroupID } return "" } -func (m *GroupApplicationResponseReq) GetFromUserID() string { - if m != nil { - return m.FromUserID +func (x *GetGroupMemberListReq) GetOpUserID() string { + if x != nil { + return x.OpUserID } return "" } -func (m *GroupApplicationResponseReq) GetHandledMsg() string { - if m != nil { - return m.HandledMsg +func (x *GetGroupMemberListReq) GetOperationID() string { + if x != nil { + return x.OperationID } return "" } -func (m *GroupApplicationResponseReq) GetHandleResult() int32 { - if m != nil { - return m.HandleResult +func (x *GetGroupMemberListReq) GetFilter() int32 { + if x != nil { + return x.Filter } return 0 } -type GroupApplicationResponseResp 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 (x *GetGroupMemberListReq) GetNextSeq() int32 { + if x != nil { + return x.NextSeq + } + return 0 } -func (m *GroupApplicationResponseResp) Reset() { *m = GroupApplicationResponseResp{} } -func (m *GroupApplicationResponseResp) String() string { return proto.CompactTextString(m) } -func (*GroupApplicationResponseResp) ProtoMessage() {} -func (*GroupApplicationResponseResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_a130b5186d308ee6, []int{15} +type GetGroupMemberListResp struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ErrCode int32 `protobuf:"varint,1,opt,name=ErrCode,proto3" json:"ErrCode,omitempty"` + ErrMsg string `protobuf:"bytes,2,opt,name=ErrMsg,proto3" json:"ErrMsg,omitempty"` + MemberList []*sdk_ws.GroupMemberFullInfo `protobuf:"bytes,3,rep,name=memberList,proto3" json:"memberList,omitempty"` + NextSeq int32 `protobuf:"varint,4,opt,name=nextSeq,proto3" json:"nextSeq,omitempty"` } -func (m *GroupApplicationResponseResp) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_GroupApplicationResponseResp.Unmarshal(m, b) + +func (x *GetGroupMemberListResp) Reset() { + *x = GetGroupMemberListResp{} + if protoimpl.UnsafeEnabled { + mi := &file_group_group_proto_msgTypes[19] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *GroupApplicationResponseResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_GroupApplicationResponseResp.Marshal(b, m, deterministic) + +func (x *GetGroupMemberListResp) String() string { + return protoimpl.X.MessageStringOf(x) } -func (dst *GroupApplicationResponseResp) XXX_Merge(src proto.Message) { - xxx_messageInfo_GroupApplicationResponseResp.Merge(dst, src) + +func (*GetGroupMemberListResp) ProtoMessage() {} + +func (x *GetGroupMemberListResp) ProtoReflect() protoreflect.Message { + mi := &file_group_group_proto_msgTypes[19] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) } -func (m *GroupApplicationResponseResp) XXX_Size() int { - return xxx_messageInfo_GroupApplicationResponseResp.Size(m) + +// Deprecated: Use GetGroupMemberListResp.ProtoReflect.Descriptor instead. +func (*GetGroupMemberListResp) Descriptor() ([]byte, []int) { + return file_group_group_proto_rawDescGZIP(), []int{19} } -func (m *GroupApplicationResponseResp) XXX_DiscardUnknown() { - xxx_messageInfo_GroupApplicationResponseResp.DiscardUnknown(m) + +func (x *GetGroupMemberListResp) GetErrCode() int32 { + if x != nil { + return x.ErrCode + } + return 0 } -var xxx_messageInfo_GroupApplicationResponseResp proto.InternalMessageInfo +func (x *GetGroupMemberListResp) GetErrMsg() string { + if x != nil { + return x.ErrMsg + } + return "" +} -func (m *GroupApplicationResponseResp) GetCommonResp() *CommonResp { - if m != nil { - return m.CommonResp +func (x *GetGroupMemberListResp) GetMemberList() []*sdk_ws.GroupMemberFullInfo { + if x != nil { + return x.MemberList } return nil } -type QuitGroupReq struct { - GroupID string `protobuf:"bytes,1,opt,name=GroupID" json:"GroupID,omitempty"` - OperationID string `protobuf:"bytes,2,opt,name=OperationID" json:"OperationID,omitempty"` - OpUserID string `protobuf:"bytes,3,opt,name=OpUserID" json:"OpUserID,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` +func (x *GetGroupMemberListResp) GetNextSeq() int32 { + if x != nil { + return x.NextSeq + } + return 0 } -func (m *QuitGroupReq) Reset() { *m = QuitGroupReq{} } -func (m *QuitGroupReq) String() string { return proto.CompactTextString(m) } -func (*QuitGroupReq) ProtoMessage() {} -func (*QuitGroupReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_a130b5186d308ee6, []int{16} +type GetGroupMembersInfoReq struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + GroupID string `protobuf:"bytes,1,opt,name=GroupID,proto3" json:"GroupID,omitempty"` + MemberList []string `protobuf:"bytes,2,rep,name=memberList,proto3" json:"memberList,omitempty"` + OpUserID string `protobuf:"bytes,3,opt,name=OpUserID,proto3" json:"OpUserID,omitempty"` //No verification permission + OperationID string `protobuf:"bytes,4,opt,name=OperationID,proto3" json:"OperationID,omitempty"` } -func (m *QuitGroupReq) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_QuitGroupReq.Unmarshal(m, b) + +func (x *GetGroupMembersInfoReq) Reset() { + *x = GetGroupMembersInfoReq{} + if protoimpl.UnsafeEnabled { + mi := &file_group_group_proto_msgTypes[20] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *QuitGroupReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_QuitGroupReq.Marshal(b, m, deterministic) + +func (x *GetGroupMembersInfoReq) String() string { + return protoimpl.X.MessageStringOf(x) } -func (dst *QuitGroupReq) XXX_Merge(src proto.Message) { - xxx_messageInfo_QuitGroupReq.Merge(dst, src) + +func (*GetGroupMembersInfoReq) ProtoMessage() {} + +func (x *GetGroupMembersInfoReq) ProtoReflect() protoreflect.Message { + mi := &file_group_group_proto_msgTypes[20] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) } -func (m *QuitGroupReq) XXX_Size() int { - return xxx_messageInfo_QuitGroupReq.Size(m) + +// Deprecated: Use GetGroupMembersInfoReq.ProtoReflect.Descriptor instead. +func (*GetGroupMembersInfoReq) Descriptor() ([]byte, []int) { + return file_group_group_proto_rawDescGZIP(), []int{20} } -func (m *QuitGroupReq) XXX_DiscardUnknown() { - xxx_messageInfo_QuitGroupReq.DiscardUnknown(m) + +func (x *GetGroupMembersInfoReq) GetGroupID() string { + if x != nil { + return x.GroupID + } + return "" } -var xxx_messageInfo_QuitGroupReq proto.InternalMessageInfo +func (x *GetGroupMembersInfoReq) GetMemberList() []string { + if x != nil { + return x.MemberList + } + return nil +} -func (m *QuitGroupReq) GetGroupID() string { - if m != nil { - return m.GroupID +func (x *GetGroupMembersInfoReq) GetOpUserID() string { + if x != nil { + return x.OpUserID } return "" } -func (m *QuitGroupReq) GetOperationID() string { - if m != nil { - return m.OperationID +func (x *GetGroupMembersInfoReq) GetOperationID() string { + if x != nil { + return x.OperationID } return "" } -func (m *QuitGroupReq) GetOpUserID() string { - if m != nil { - return m.OpUserID +type GetGroupMembersInfoResp struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ErrCode int32 `protobuf:"varint,1,opt,name=ErrCode,proto3" json:"ErrCode,omitempty"` + ErrMsg string `protobuf:"bytes,2,opt,name=ErrMsg,proto3" json:"ErrMsg,omitempty"` + MemberList []*sdk_ws.GroupMemberFullInfo `protobuf:"bytes,3,rep,name=memberList,proto3" json:"memberList,omitempty"` +} + +func (x *GetGroupMembersInfoResp) Reset() { + *x = GetGroupMembersInfoResp{} + if protoimpl.UnsafeEnabled { + mi := &file_group_group_proto_msgTypes[21] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetGroupMembersInfoResp) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetGroupMembersInfoResp) ProtoMessage() {} + +func (x *GetGroupMembersInfoResp) ProtoReflect() protoreflect.Message { + mi := &file_group_group_proto_msgTypes[21] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetGroupMembersInfoResp.ProtoReflect.Descriptor instead. +func (*GetGroupMembersInfoResp) Descriptor() ([]byte, []int) { + return file_group_group_proto_rawDescGZIP(), []int{21} +} + +func (x *GetGroupMembersInfoResp) GetErrCode() int32 { + if x != nil { + return x.ErrCode + } + return 0 +} + +func (x *GetGroupMembersInfoResp) GetErrMsg() string { + if x != nil { + return x.ErrMsg } return "" } -type QuitGroupResp 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 (x *GetGroupMembersInfoResp) GetMemberList() []*sdk_ws.GroupMemberFullInfo { + if x != nil { + return x.MemberList + } + return nil } -func (m *QuitGroupResp) Reset() { *m = QuitGroupResp{} } -func (m *QuitGroupResp) String() string { return proto.CompactTextString(m) } -func (*QuitGroupResp) ProtoMessage() {} -func (*QuitGroupResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_a130b5186d308ee6, []int{17} +type KickGroupMemberReq struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + GroupID string `protobuf:"bytes,1,opt,name=GroupID,proto3" json:"GroupID,omitempty"` + KickedUserIDList []string `protobuf:"bytes,2,rep,name=KickedUserIDList,proto3" json:"KickedUserIDList,omitempty"` + Reason string `protobuf:"bytes,3,opt,name=Reason,proto3" json:"Reason,omitempty"` + OperationID string `protobuf:"bytes,5,opt,name=OperationID,proto3" json:"OperationID,omitempty"` + OpUserID string `protobuf:"bytes,6,opt,name=OpUserID,proto3" json:"OpUserID,omitempty"` //app manger or group manager +} + +func (x *KickGroupMemberReq) Reset() { + *x = KickGroupMemberReq{} + if protoimpl.UnsafeEnabled { + mi := &file_group_group_proto_msgTypes[22] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *KickGroupMemberReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*KickGroupMemberReq) ProtoMessage() {} + +func (x *KickGroupMemberReq) ProtoReflect() protoreflect.Message { + mi := &file_group_group_proto_msgTypes[22] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) } -func (m *QuitGroupResp) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_QuitGroupResp.Unmarshal(m, b) + +// Deprecated: Use KickGroupMemberReq.ProtoReflect.Descriptor instead. +func (*KickGroupMemberReq) Descriptor() ([]byte, []int) { + return file_group_group_proto_rawDescGZIP(), []int{22} } -func (m *QuitGroupResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_QuitGroupResp.Marshal(b, m, deterministic) + +func (x *KickGroupMemberReq) GetGroupID() string { + if x != nil { + return x.GroupID + } + return "" } -func (dst *QuitGroupResp) XXX_Merge(src proto.Message) { - xxx_messageInfo_QuitGroupResp.Merge(dst, src) + +func (x *KickGroupMemberReq) GetKickedUserIDList() []string { + if x != nil { + return x.KickedUserIDList + } + return nil } -func (m *QuitGroupResp) XXX_Size() int { - return xxx_messageInfo_QuitGroupResp.Size(m) + +func (x *KickGroupMemberReq) GetReason() string { + if x != nil { + return x.Reason + } + return "" } -func (m *QuitGroupResp) XXX_DiscardUnknown() { - xxx_messageInfo_QuitGroupResp.DiscardUnknown(m) + +func (x *KickGroupMemberReq) GetOperationID() string { + if x != nil { + return x.OperationID + } + return "" } -var xxx_messageInfo_QuitGroupResp proto.InternalMessageInfo +func (x *KickGroupMemberReq) GetOpUserID() string { + if x != nil { + return x.OpUserID + } + return "" +} + +type Id2Result struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + UserID string `protobuf:"bytes,1,opt,name=UserID,proto3" json:"UserID,omitempty"` + Result int32 `protobuf:"varint,2,opt,name=Result,proto3" json:"Result,omitempty"` //0 ok; -1 error +} -func (m *QuitGroupResp) GetCommonResp() *CommonResp { - if m != nil { - return m.CommonResp +func (x *Id2Result) Reset() { + *x = Id2Result{} + if protoimpl.UnsafeEnabled { + mi := &file_group_group_proto_msgTypes[23] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } - return nil } -type GetGroupMemberListReq struct { - GroupID string `protobuf:"bytes,1,opt,name=GroupID" json:"GroupID,omitempty"` - OpUserID string `protobuf:"bytes,2,opt,name=OpUserID" json:"OpUserID,omitempty"` - OperationID string `protobuf:"bytes,3,opt,name=OperationID" json:"OperationID,omitempty"` - Filter int32 `protobuf:"varint,4,opt,name=Filter" json:"Filter,omitempty"` - NextSeq int32 `protobuf:"varint,5,opt,name=NextSeq" json:"NextSeq,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *GetGroupMemberListReq) Reset() { *m = GetGroupMemberListReq{} } -func (m *GetGroupMemberListReq) String() string { return proto.CompactTextString(m) } -func (*GetGroupMemberListReq) ProtoMessage() {} -func (*GetGroupMemberListReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_a130b5186d308ee6, []int{18} -} -func (m *GetGroupMemberListReq) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_GetGroupMemberListReq.Unmarshal(m, b) -} -func (m *GetGroupMemberListReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_GetGroupMemberListReq.Marshal(b, m, deterministic) -} -func (dst *GetGroupMemberListReq) XXX_Merge(src proto.Message) { - xxx_messageInfo_GetGroupMemberListReq.Merge(dst, src) -} -func (m *GetGroupMemberListReq) XXX_Size() int { - return xxx_messageInfo_GetGroupMemberListReq.Size(m) -} -func (m *GetGroupMemberListReq) XXX_DiscardUnknown() { - xxx_messageInfo_GetGroupMemberListReq.DiscardUnknown(m) +func (x *Id2Result) String() string { + return protoimpl.X.MessageStringOf(x) } -var xxx_messageInfo_GetGroupMemberListReq proto.InternalMessageInfo +func (*Id2Result) ProtoMessage() {} -func (m *GetGroupMemberListReq) GetGroupID() string { - if m != nil { - return m.GroupID +func (x *Id2Result) ProtoReflect() protoreflect.Message { + mi := &file_group_group_proto_msgTypes[23] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms } - return "" + return mi.MessageOf(x) } -func (m *GetGroupMemberListReq) GetOpUserID() string { - if m != nil { - return m.OpUserID - } - return "" +// Deprecated: Use Id2Result.ProtoReflect.Descriptor instead. +func (*Id2Result) Descriptor() ([]byte, []int) { + return file_group_group_proto_rawDescGZIP(), []int{23} } -func (m *GetGroupMemberListReq) GetOperationID() string { - if m != nil { - return m.OperationID +func (x *Id2Result) GetUserID() string { + if x != nil { + return x.UserID } return "" } -func (m *GetGroupMemberListReq) GetFilter() int32 { - if m != nil { - return m.Filter +func (x *Id2Result) GetResult() int32 { + if x != nil { + return x.Result } return 0 } -func (m *GetGroupMemberListReq) GetNextSeq() int32 { - if m != nil { - return m.NextSeq - } - return 0 -} +type KickGroupMemberResp struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields -type GetGroupMemberListResp struct { - ErrCode int32 `protobuf:"varint,1,opt,name=ErrCode" json:"ErrCode,omitempty"` - ErrMsg string `protobuf:"bytes,2,opt,name=ErrMsg" json:"ErrMsg,omitempty"` - MemberList []*sdk_ws.GroupMemberFullInfo `protobuf:"bytes,3,rep,name=memberList" json:"memberList,omitempty"` - NextSeq int32 `protobuf:"varint,4,opt,name=nextSeq" json:"nextSeq,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *GetGroupMemberListResp) Reset() { *m = GetGroupMemberListResp{} } -func (m *GetGroupMemberListResp) String() string { return proto.CompactTextString(m) } -func (*GetGroupMemberListResp) ProtoMessage() {} -func (*GetGroupMemberListResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_a130b5186d308ee6, []int{19} -} -func (m *GetGroupMemberListResp) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_GetGroupMemberListResp.Unmarshal(m, b) -} -func (m *GetGroupMemberListResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_GetGroupMemberListResp.Marshal(b, m, deterministic) + ErrCode int32 `protobuf:"varint,1,opt,name=ErrCode,proto3" json:"ErrCode,omitempty"` + ErrMsg string `protobuf:"bytes,2,opt,name=ErrMsg,proto3" json:"ErrMsg,omitempty"` + Id2ResultList []*Id2Result `protobuf:"bytes,3,rep,name=Id2ResultList,proto3" json:"Id2ResultList,omitempty"` } -func (dst *GetGroupMemberListResp) XXX_Merge(src proto.Message) { - xxx_messageInfo_GetGroupMemberListResp.Merge(dst, src) + +func (x *KickGroupMemberResp) Reset() { + *x = KickGroupMemberResp{} + if protoimpl.UnsafeEnabled { + mi := &file_group_group_proto_msgTypes[24] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *GetGroupMemberListResp) XXX_Size() int { - return xxx_messageInfo_GetGroupMemberListResp.Size(m) + +func (x *KickGroupMemberResp) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *GetGroupMemberListResp) XXX_DiscardUnknown() { - xxx_messageInfo_GetGroupMemberListResp.DiscardUnknown(m) + +func (*KickGroupMemberResp) ProtoMessage() {} + +func (x *KickGroupMemberResp) ProtoReflect() protoreflect.Message { + mi := &file_group_group_proto_msgTypes[24] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) } -var xxx_messageInfo_GetGroupMemberListResp proto.InternalMessageInfo +// Deprecated: Use KickGroupMemberResp.ProtoReflect.Descriptor instead. +func (*KickGroupMemberResp) Descriptor() ([]byte, []int) { + return file_group_group_proto_rawDescGZIP(), []int{24} +} -func (m *GetGroupMemberListResp) GetErrCode() int32 { - if m != nil { - return m.ErrCode +func (x *KickGroupMemberResp) GetErrCode() int32 { + if x != nil { + return x.ErrCode } return 0 } -func (m *GetGroupMemberListResp) GetErrMsg() string { - if m != nil { - return m.ErrMsg +func (x *KickGroupMemberResp) GetErrMsg() string { + if x != nil { + return x.ErrMsg } return "" } -func (m *GetGroupMemberListResp) GetMemberList() []*sdk_ws.GroupMemberFullInfo { - if m != nil { - return m.MemberList +func (x *KickGroupMemberResp) GetId2ResultList() []*Id2Result { + if x != nil { + return x.Id2ResultList } return nil } -func (m *GetGroupMemberListResp) GetNextSeq() int32 { - if m != nil { - return m.NextSeq - } - return 0 -} +type GetJoinedGroupListReq struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields -type GetGroupMembersInfoReq struct { - GroupID string `protobuf:"bytes,1,opt,name=GroupID" json:"GroupID,omitempty"` - MemberList []string `protobuf:"bytes,2,rep,name=memberList" json:"memberList,omitempty"` - OpUserID string `protobuf:"bytes,3,opt,name=OpUserID" json:"OpUserID,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 *GetGroupMembersInfoReq) Reset() { *m = GetGroupMembersInfoReq{} } -func (m *GetGroupMembersInfoReq) String() string { return proto.CompactTextString(m) } -func (*GetGroupMembersInfoReq) ProtoMessage() {} -func (*GetGroupMembersInfoReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_a130b5186d308ee6, []int{20} -} -func (m *GetGroupMembersInfoReq) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_GetGroupMembersInfoReq.Unmarshal(m, b) -} -func (m *GetGroupMembersInfoReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_GetGroupMembersInfoReq.Marshal(b, m, deterministic) + FromUserID string `protobuf:"bytes,1,opt,name=FromUserID,proto3" json:"FromUserID,omitempty"` + OperationID string `protobuf:"bytes,2,opt,name=operationID,proto3" json:"operationID,omitempty"` + OpUserID string `protobuf:"bytes,3,opt,name=OpUserID,proto3" json:"OpUserID,omitempty"` //app manager or FromUserID } -func (dst *GetGroupMembersInfoReq) XXX_Merge(src proto.Message) { - xxx_messageInfo_GetGroupMembersInfoReq.Merge(dst, src) -} -func (m *GetGroupMembersInfoReq) XXX_Size() int { - return xxx_messageInfo_GetGroupMembersInfoReq.Size(m) + +func (x *GetJoinedGroupListReq) Reset() { + *x = GetJoinedGroupListReq{} + if protoimpl.UnsafeEnabled { + mi := &file_group_group_proto_msgTypes[25] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *GetGroupMembersInfoReq) XXX_DiscardUnknown() { - xxx_messageInfo_GetGroupMembersInfoReq.DiscardUnknown(m) + +func (x *GetJoinedGroupListReq) String() string { + return protoimpl.X.MessageStringOf(x) } -var xxx_messageInfo_GetGroupMembersInfoReq proto.InternalMessageInfo +func (*GetJoinedGroupListReq) ProtoMessage() {} -func (m *GetGroupMembersInfoReq) GetGroupID() string { - if m != nil { - return m.GroupID +func (x *GetJoinedGroupListReq) ProtoReflect() protoreflect.Message { + mi := &file_group_group_proto_msgTypes[25] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms } - return "" + return mi.MessageOf(x) } -func (m *GetGroupMembersInfoReq) GetMemberList() []string { - if m != nil { - return m.MemberList - } - return nil +// Deprecated: Use GetJoinedGroupListReq.ProtoReflect.Descriptor instead. +func (*GetJoinedGroupListReq) Descriptor() ([]byte, []int) { + return file_group_group_proto_rawDescGZIP(), []int{25} } -func (m *GetGroupMembersInfoReq) GetOpUserID() string { - if m != nil { - return m.OpUserID +func (x *GetJoinedGroupListReq) GetFromUserID() string { + if x != nil { + return x.FromUserID } return "" } -func (m *GetGroupMembersInfoReq) GetOperationID() string { - if m != nil { - return m.OperationID +func (x *GetJoinedGroupListReq) GetOperationID() string { + if x != nil { + return x.OperationID } return "" } -type GetGroupMembersInfoResp struct { - ErrCode int32 `protobuf:"varint,1,opt,name=ErrCode" json:"ErrCode,omitempty"` - ErrMsg string `protobuf:"bytes,2,opt,name=ErrMsg" json:"ErrMsg,omitempty"` - MemberList []*sdk_ws.GroupMemberFullInfo `protobuf:"bytes,3,rep,name=memberList" json:"memberList,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` +func (x *GetJoinedGroupListReq) GetOpUserID() string { + if x != nil { + return x.OpUserID + } + return "" } -func (m *GetGroupMembersInfoResp) Reset() { *m = GetGroupMembersInfoResp{} } -func (m *GetGroupMembersInfoResp) String() string { return proto.CompactTextString(m) } -func (*GetGroupMembersInfoResp) ProtoMessage() {} -func (*GetGroupMembersInfoResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_a130b5186d308ee6, []int{21} -} -func (m *GetGroupMembersInfoResp) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_GetGroupMembersInfoResp.Unmarshal(m, b) -} -func (m *GetGroupMembersInfoResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_GetGroupMembersInfoResp.Marshal(b, m, deterministic) +type GetJoinedGroupListResp struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ErrCode int32 `protobuf:"varint,1,opt,name=ErrCode,proto3" json:"ErrCode,omitempty"` + ErrMsg string `protobuf:"bytes,2,opt,name=ErrMsg,proto3" json:"ErrMsg,omitempty"` + GroupList []*sdk_ws.GroupInfo `protobuf:"bytes,3,rep,name=GroupList,proto3" json:"GroupList,omitempty"` } -func (dst *GetGroupMembersInfoResp) XXX_Merge(src proto.Message) { - xxx_messageInfo_GetGroupMembersInfoResp.Merge(dst, src) + +func (x *GetJoinedGroupListResp) Reset() { + *x = GetJoinedGroupListResp{} + if protoimpl.UnsafeEnabled { + mi := &file_group_group_proto_msgTypes[26] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *GetGroupMembersInfoResp) XXX_Size() int { - return xxx_messageInfo_GetGroupMembersInfoResp.Size(m) + +func (x *GetJoinedGroupListResp) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *GetGroupMembersInfoResp) XXX_DiscardUnknown() { - xxx_messageInfo_GetGroupMembersInfoResp.DiscardUnknown(m) + +func (*GetJoinedGroupListResp) ProtoMessage() {} + +func (x *GetJoinedGroupListResp) ProtoReflect() protoreflect.Message { + mi := &file_group_group_proto_msgTypes[26] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) } -var xxx_messageInfo_GetGroupMembersInfoResp proto.InternalMessageInfo +// Deprecated: Use GetJoinedGroupListResp.ProtoReflect.Descriptor instead. +func (*GetJoinedGroupListResp) Descriptor() ([]byte, []int) { + return file_group_group_proto_rawDescGZIP(), []int{26} +} -func (m *GetGroupMembersInfoResp) GetErrCode() int32 { - if m != nil { - return m.ErrCode +func (x *GetJoinedGroupListResp) GetErrCode() int32 { + if x != nil { + return x.ErrCode } return 0 } -func (m *GetGroupMembersInfoResp) GetErrMsg() string { - if m != nil { - return m.ErrMsg +func (x *GetJoinedGroupListResp) GetErrMsg() string { + if x != nil { + return x.ErrMsg } return "" } -func (m *GetGroupMembersInfoResp) GetMemberList() []*sdk_ws.GroupMemberFullInfo { - if m != nil { - return m.MemberList +func (x *GetJoinedGroupListResp) GetGroupList() []*sdk_ws.GroupInfo { + if x != nil { + return x.GroupList } return nil } -type KickGroupMemberReq struct { - GroupID string `protobuf:"bytes,1,opt,name=GroupID" json:"GroupID,omitempty"` - KickedUserIDList []string `protobuf:"bytes,2,rep,name=KickedUserIDList" json:"KickedUserIDList,omitempty"` - Reason string `protobuf:"bytes,3,opt,name=Reason" json:"Reason,omitempty"` - OperationID string `protobuf:"bytes,5,opt,name=OperationID" json:"OperationID,omitempty"` - OpUserID string `protobuf:"bytes,6,opt,name=OpUserID" json:"OpUserID,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *KickGroupMemberReq) Reset() { *m = KickGroupMemberReq{} } -func (m *KickGroupMemberReq) String() string { return proto.CompactTextString(m) } -func (*KickGroupMemberReq) ProtoMessage() {} -func (*KickGroupMemberReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_a130b5186d308ee6, []int{22} -} -func (m *KickGroupMemberReq) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_KickGroupMemberReq.Unmarshal(m, b) -} -func (m *KickGroupMemberReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_KickGroupMemberReq.Marshal(b, m, deterministic) -} -func (dst *KickGroupMemberReq) XXX_Merge(src proto.Message) { - xxx_messageInfo_KickGroupMemberReq.Merge(dst, src) +type InviteUserToGroupReq struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + OperationID string `protobuf:"bytes,2,opt,name=OperationID,proto3" json:"OperationID,omitempty"` + GroupID string `protobuf:"bytes,3,opt,name=GroupID,proto3" json:"GroupID,omitempty"` + Reason string `protobuf:"bytes,4,opt,name=Reason,proto3" json:"Reason,omitempty"` + InvitedUserIDList []string `protobuf:"bytes,5,rep,name=InvitedUserIDList,proto3" json:"InvitedUserIDList,omitempty"` + OpUserID string `protobuf:"bytes,6,opt,name=OpUserID,proto3" json:"OpUserID,omitempty"` //group member or app manager } -func (m *KickGroupMemberReq) XXX_Size() int { - return xxx_messageInfo_KickGroupMemberReq.Size(m) + +func (x *InviteUserToGroupReq) Reset() { + *x = InviteUserToGroupReq{} + if protoimpl.UnsafeEnabled { + mi := &file_group_group_proto_msgTypes[27] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *KickGroupMemberReq) XXX_DiscardUnknown() { - xxx_messageInfo_KickGroupMemberReq.DiscardUnknown(m) + +func (x *InviteUserToGroupReq) String() string { + return protoimpl.X.MessageStringOf(x) } -var xxx_messageInfo_KickGroupMemberReq proto.InternalMessageInfo +func (*InviteUserToGroupReq) ProtoMessage() {} -func (m *KickGroupMemberReq) GetGroupID() string { - if m != nil { - return m.GroupID +func (x *InviteUserToGroupReq) ProtoReflect() protoreflect.Message { + mi := &file_group_group_proto_msgTypes[27] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms } - return "" + return mi.MessageOf(x) } -func (m *KickGroupMemberReq) GetKickedUserIDList() []string { - if m != nil { - return m.KickedUserIDList - } - return nil +// Deprecated: Use InviteUserToGroupReq.ProtoReflect.Descriptor instead. +func (*InviteUserToGroupReq) Descriptor() ([]byte, []int) { + return file_group_group_proto_rawDescGZIP(), []int{27} } -func (m *KickGroupMemberReq) GetReason() string { - if m != nil { - return m.Reason +func (x *InviteUserToGroupReq) GetOperationID() string { + if x != nil { + return x.OperationID } return "" } -func (m *KickGroupMemberReq) GetOperationID() string { - if m != nil { - return m.OperationID +func (x *InviteUserToGroupReq) GetGroupID() string { + if x != nil { + return x.GroupID } return "" } -func (m *KickGroupMemberReq) GetOpUserID() string { - if m != nil { - return m.OpUserID +func (x *InviteUserToGroupReq) GetReason() string { + if x != nil { + return x.Reason } return "" } -type Id2Result struct { - UserID string `protobuf:"bytes,1,opt,name=UserID" json:"UserID,omitempty"` - Result int32 `protobuf:"varint,2,opt,name=Result" json:"Result,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` +func (x *InviteUserToGroupReq) GetInvitedUserIDList() []string { + if x != nil { + return x.InvitedUserIDList + } + return nil } -func (m *Id2Result) Reset() { *m = Id2Result{} } -func (m *Id2Result) String() string { return proto.CompactTextString(m) } -func (*Id2Result) ProtoMessage() {} -func (*Id2Result) Descriptor() ([]byte, []int) { - return fileDescriptor_group_a130b5186d308ee6, []int{23} -} -func (m *Id2Result) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_Id2Result.Unmarshal(m, b) -} -func (m *Id2Result) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_Id2Result.Marshal(b, m, deterministic) -} -func (dst *Id2Result) XXX_Merge(src proto.Message) { - xxx_messageInfo_Id2Result.Merge(dst, src) -} -func (m *Id2Result) XXX_Size() int { - return xxx_messageInfo_Id2Result.Size(m) -} -func (m *Id2Result) XXX_DiscardUnknown() { - xxx_messageInfo_Id2Result.DiscardUnknown(m) +func (x *InviteUserToGroupReq) GetOpUserID() string { + if x != nil { + return x.OpUserID + } + return "" } -var xxx_messageInfo_Id2Result proto.InternalMessageInfo +type InviteUserToGroupResp struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields -func (m *Id2Result) GetUserID() string { - if m != nil { - return m.UserID - } - return "" + ErrCode int32 `protobuf:"varint,1,opt,name=ErrCode,proto3" json:"ErrCode,omitempty"` + ErrMsg string `protobuf:"bytes,2,opt,name=ErrMsg,proto3" json:"ErrMsg,omitempty"` + Id2ResultList []*Id2Result `protobuf:"bytes,3,rep,name=Id2ResultList,proto3" json:"Id2ResultList,omitempty"` // 0 ok, -1 error } -func (m *Id2Result) GetResult() int32 { - if m != nil { - return m.Result +func (x *InviteUserToGroupResp) Reset() { + *x = InviteUserToGroupResp{} + if protoimpl.UnsafeEnabled { + mi := &file_group_group_proto_msgTypes[28] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } - return 0 } -type KickGroupMemberResp struct { - ErrCode int32 `protobuf:"varint,1,opt,name=ErrCode" json:"ErrCode,omitempty"` - ErrMsg string `protobuf:"bytes,2,opt,name=ErrMsg" json:"ErrMsg,omitempty"` - Id2ResultList []*Id2Result `protobuf:"bytes,3,rep,name=Id2ResultList" json:"Id2ResultList,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` +func (x *InviteUserToGroupResp) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *KickGroupMemberResp) Reset() { *m = KickGroupMemberResp{} } -func (m *KickGroupMemberResp) String() string { return proto.CompactTextString(m) } -func (*KickGroupMemberResp) ProtoMessage() {} -func (*KickGroupMemberResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_a130b5186d308ee6, []int{24} -} -func (m *KickGroupMemberResp) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_KickGroupMemberResp.Unmarshal(m, b) -} -func (m *KickGroupMemberResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_KickGroupMemberResp.Marshal(b, m, deterministic) -} -func (dst *KickGroupMemberResp) XXX_Merge(src proto.Message) { - xxx_messageInfo_KickGroupMemberResp.Merge(dst, src) -} -func (m *KickGroupMemberResp) XXX_Size() int { - return xxx_messageInfo_KickGroupMemberResp.Size(m) -} -func (m *KickGroupMemberResp) XXX_DiscardUnknown() { - xxx_messageInfo_KickGroupMemberResp.DiscardUnknown(m) +func (*InviteUserToGroupResp) ProtoMessage() {} + +func (x *InviteUserToGroupResp) ProtoReflect() protoreflect.Message { + mi := &file_group_group_proto_msgTypes[28] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) } -var xxx_messageInfo_KickGroupMemberResp proto.InternalMessageInfo +// Deprecated: Use InviteUserToGroupResp.ProtoReflect.Descriptor instead. +func (*InviteUserToGroupResp) Descriptor() ([]byte, []int) { + return file_group_group_proto_rawDescGZIP(), []int{28} +} -func (m *KickGroupMemberResp) GetErrCode() int32 { - if m != nil { - return m.ErrCode +func (x *InviteUserToGroupResp) GetErrCode() int32 { + if x != nil { + return x.ErrCode } return 0 } -func (m *KickGroupMemberResp) GetErrMsg() string { - if m != nil { - return m.ErrMsg +func (x *InviteUserToGroupResp) GetErrMsg() string { + if x != nil { + return x.ErrMsg } return "" } -func (m *KickGroupMemberResp) GetId2ResultList() []*Id2Result { - if m != nil { - return m.Id2ResultList +func (x *InviteUserToGroupResp) GetId2ResultList() []*Id2Result { + if x != nil { + return x.Id2ResultList } return nil } -type GetJoinedGroupListReq struct { - FromUserID string `protobuf:"bytes,1,opt,name=FromUserID" json:"FromUserID,omitempty"` - OperationID string `protobuf:"bytes,2,opt,name=operationID" json:"operationID,omitempty"` - OpUserID string `protobuf:"bytes,3,opt,name=OpUserID" json:"OpUserID,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} +type GetGroupAllMemberReq struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields -func (m *GetJoinedGroupListReq) Reset() { *m = GetJoinedGroupListReq{} } -func (m *GetJoinedGroupListReq) String() string { return proto.CompactTextString(m) } -func (*GetJoinedGroupListReq) ProtoMessage() {} -func (*GetJoinedGroupListReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_a130b5186d308ee6, []int{25} + GroupID string `protobuf:"bytes,1,opt,name=GroupID,proto3" json:"GroupID,omitempty"` + OpUserID string `protobuf:"bytes,2,opt,name=OpUserID,proto3" json:"OpUserID,omitempty"` //No verification permission + OperationID string `protobuf:"bytes,3,opt,name=OperationID,proto3" json:"OperationID,omitempty"` } -func (m *GetJoinedGroupListReq) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_GetJoinedGroupListReq.Unmarshal(m, b) -} -func (m *GetJoinedGroupListReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_GetJoinedGroupListReq.Marshal(b, m, deterministic) -} -func (dst *GetJoinedGroupListReq) XXX_Merge(src proto.Message) { - xxx_messageInfo_GetJoinedGroupListReq.Merge(dst, src) + +func (x *GetGroupAllMemberReq) Reset() { + *x = GetGroupAllMemberReq{} + if protoimpl.UnsafeEnabled { + mi := &file_group_group_proto_msgTypes[29] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *GetJoinedGroupListReq) XXX_Size() int { - return xxx_messageInfo_GetJoinedGroupListReq.Size(m) + +func (x *GetGroupAllMemberReq) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *GetJoinedGroupListReq) XXX_DiscardUnknown() { - xxx_messageInfo_GetJoinedGroupListReq.DiscardUnknown(m) + +func (*GetGroupAllMemberReq) ProtoMessage() {} + +func (x *GetGroupAllMemberReq) ProtoReflect() protoreflect.Message { + mi := &file_group_group_proto_msgTypes[29] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) } -var xxx_messageInfo_GetJoinedGroupListReq proto.InternalMessageInfo +// Deprecated: Use GetGroupAllMemberReq.ProtoReflect.Descriptor instead. +func (*GetGroupAllMemberReq) Descriptor() ([]byte, []int) { + return file_group_group_proto_rawDescGZIP(), []int{29} +} -func (m *GetJoinedGroupListReq) GetFromUserID() string { - if m != nil { - return m.FromUserID +func (x *GetGroupAllMemberReq) GetGroupID() string { + if x != nil { + return x.GroupID } return "" } -func (m *GetJoinedGroupListReq) GetOperationID() string { - if m != nil { - return m.OperationID +func (x *GetGroupAllMemberReq) GetOpUserID() string { + if x != nil { + return x.OpUserID } return "" } -func (m *GetJoinedGroupListReq) GetOpUserID() string { - if m != nil { - return m.OpUserID +func (x *GetGroupAllMemberReq) GetOperationID() string { + if x != nil { + return x.OperationID } return "" } -type GetJoinedGroupListResp struct { - ErrCode int32 `protobuf:"varint,1,opt,name=ErrCode" json:"ErrCode,omitempty"` - ErrMsg string `protobuf:"bytes,2,opt,name=ErrMsg" json:"ErrMsg,omitempty"` - GroupList []*sdk_ws.GroupInfo `protobuf:"bytes,3,rep,name=GroupList" json:"GroupList,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} +type GetGroupAllMemberResp struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields -func (m *GetJoinedGroupListResp) Reset() { *m = GetJoinedGroupListResp{} } -func (m *GetJoinedGroupListResp) String() string { return proto.CompactTextString(m) } -func (*GetJoinedGroupListResp) ProtoMessage() {} -func (*GetJoinedGroupListResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_a130b5186d308ee6, []int{26} -} -func (m *GetJoinedGroupListResp) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_GetJoinedGroupListResp.Unmarshal(m, b) -} -func (m *GetJoinedGroupListResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_GetJoinedGroupListResp.Marshal(b, m, deterministic) + ErrCode int32 `protobuf:"varint,1,opt,name=ErrCode,proto3" json:"ErrCode,omitempty"` + ErrMsg string `protobuf:"bytes,2,opt,name=ErrMsg,proto3" json:"ErrMsg,omitempty"` + MemberList []*sdk_ws.GroupMemberFullInfo `protobuf:"bytes,3,rep,name=memberList,proto3" json:"memberList,omitempty"` } -func (dst *GetJoinedGroupListResp) XXX_Merge(src proto.Message) { - xxx_messageInfo_GetJoinedGroupListResp.Merge(dst, src) + +func (x *GetGroupAllMemberResp) Reset() { + *x = GetGroupAllMemberResp{} + if protoimpl.UnsafeEnabled { + mi := &file_group_group_proto_msgTypes[30] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *GetJoinedGroupListResp) XXX_Size() int { - return xxx_messageInfo_GetJoinedGroupListResp.Size(m) + +func (x *GetGroupAllMemberResp) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *GetJoinedGroupListResp) XXX_DiscardUnknown() { - xxx_messageInfo_GetJoinedGroupListResp.DiscardUnknown(m) + +func (*GetGroupAllMemberResp) ProtoMessage() {} + +func (x *GetGroupAllMemberResp) ProtoReflect() protoreflect.Message { + mi := &file_group_group_proto_msgTypes[30] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) } -var xxx_messageInfo_GetJoinedGroupListResp proto.InternalMessageInfo +// Deprecated: Use GetGroupAllMemberResp.ProtoReflect.Descriptor instead. +func (*GetGroupAllMemberResp) Descriptor() ([]byte, []int) { + return file_group_group_proto_rawDescGZIP(), []int{30} +} -func (m *GetJoinedGroupListResp) GetErrCode() int32 { - if m != nil { - return m.ErrCode +func (x *GetGroupAllMemberResp) GetErrCode() int32 { + if x != nil { + return x.ErrCode } return 0 } -func (m *GetJoinedGroupListResp) GetErrMsg() string { - if m != nil { - return m.ErrMsg +func (x *GetGroupAllMemberResp) GetErrMsg() string { + if x != nil { + return x.ErrMsg } return "" } -func (m *GetJoinedGroupListResp) GetGroupList() []*sdk_ws.GroupInfo { - if m != nil { - return m.GroupList +func (x *GetGroupAllMemberResp) GetMemberList() []*sdk_ws.GroupMemberFullInfo { + if x != nil { + return x.MemberList } return nil } -type InviteUserToGroupReq struct { - OperationID string `protobuf:"bytes,2,opt,name=OperationID" json:"OperationID,omitempty"` - GroupID string `protobuf:"bytes,3,opt,name=GroupID" json:"GroupID,omitempty"` - Reason string `protobuf:"bytes,4,opt,name=Reason" json:"Reason,omitempty"` - InvitedUserIDList []string `protobuf:"bytes,5,rep,name=InvitedUserIDList" json:"InvitedUserIDList,omitempty"` - OpUserID string `protobuf:"bytes,6,opt,name=OpUserID" json:"OpUserID,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *InviteUserToGroupReq) Reset() { *m = InviteUserToGroupReq{} } -func (m *InviteUserToGroupReq) String() string { return proto.CompactTextString(m) } -func (*InviteUserToGroupReq) ProtoMessage() {} -func (*InviteUserToGroupReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_a130b5186d308ee6, []int{27} -} -func (m *InviteUserToGroupReq) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_InviteUserToGroupReq.Unmarshal(m, b) -} -func (m *InviteUserToGroupReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_InviteUserToGroupReq.Marshal(b, m, deterministic) -} -func (dst *InviteUserToGroupReq) XXX_Merge(src proto.Message) { - xxx_messageInfo_InviteUserToGroupReq.Merge(dst, src) +type GetGroupReq struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + GroupName string `protobuf:"bytes,1,opt,name=GroupName,proto3" json:"GroupName,omitempty"` + OperationID string `protobuf:"bytes,2,opt,name=OperationID,proto3" json:"OperationID,omitempty"` } -func (m *InviteUserToGroupReq) XXX_Size() int { - return xxx_messageInfo_InviteUserToGroupReq.Size(m) + +func (x *GetGroupReq) Reset() { + *x = GetGroupReq{} + if protoimpl.UnsafeEnabled { + mi := &file_group_group_proto_msgTypes[31] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *InviteUserToGroupReq) XXX_DiscardUnknown() { - xxx_messageInfo_InviteUserToGroupReq.DiscardUnknown(m) + +func (x *GetGroupReq) String() string { + return protoimpl.X.MessageStringOf(x) } -var xxx_messageInfo_InviteUserToGroupReq proto.InternalMessageInfo +func (*GetGroupReq) ProtoMessage() {} -func (m *InviteUserToGroupReq) GetOperationID() string { - if m != nil { - return m.OperationID +func (x *GetGroupReq) ProtoReflect() protoreflect.Message { + mi := &file_group_group_proto_msgTypes[31] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms } - return "" + return mi.MessageOf(x) +} + +// Deprecated: Use GetGroupReq.ProtoReflect.Descriptor instead. +func (*GetGroupReq) Descriptor() ([]byte, []int) { + return file_group_group_proto_rawDescGZIP(), []int{31} } -func (m *InviteUserToGroupReq) GetGroupID() string { - if m != nil { - return m.GroupID +func (x *GetGroupReq) GetGroupName() string { + if x != nil { + return x.GroupName } return "" } -func (m *InviteUserToGroupReq) GetReason() string { - if m != nil { - return m.Reason +func (x *GetGroupReq) GetOperationID() string { + if x != nil { + return x.OperationID } return "" } -func (m *InviteUserToGroupReq) GetInvitedUserIDList() []string { - if m != nil { - return m.InvitedUserIDList - } - return nil +type GetGroupResp struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + GroupInfo *sdk_ws.GroupInfo `protobuf:"bytes,1,opt,name=GroupInfo,proto3" json:"GroupInfo,omitempty"` } -func (m *InviteUserToGroupReq) GetOpUserID() string { - if m != nil { - return m.OpUserID +func (x *GetGroupResp) Reset() { + *x = GetGroupResp{} + if protoimpl.UnsafeEnabled { + mi := &file_group_group_proto_msgTypes[32] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) } - return "" } -type InviteUserToGroupResp struct { - ErrCode int32 `protobuf:"varint,1,opt,name=ErrCode" json:"ErrCode,omitempty"` - ErrMsg string `protobuf:"bytes,2,opt,name=ErrMsg" json:"ErrMsg,omitempty"` - Id2ResultList []*Id2Result `protobuf:"bytes,3,rep,name=Id2ResultList" json:"Id2ResultList,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` +func (x *GetGroupResp) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *InviteUserToGroupResp) Reset() { *m = InviteUserToGroupResp{} } -func (m *InviteUserToGroupResp) String() string { return proto.CompactTextString(m) } -func (*InviteUserToGroupResp) ProtoMessage() {} -func (*InviteUserToGroupResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_a130b5186d308ee6, []int{28} +func (*GetGroupResp) ProtoMessage() {} + +func (x *GetGroupResp) ProtoReflect() protoreflect.Message { + mi := &file_group_group_proto_msgTypes[32] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) } -func (m *InviteUserToGroupResp) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_InviteUserToGroupResp.Unmarshal(m, b) + +// Deprecated: Use GetGroupResp.ProtoReflect.Descriptor instead. +func (*GetGroupResp) Descriptor() ([]byte, []int) { + return file_group_group_proto_rawDescGZIP(), []int{32} } -func (m *InviteUserToGroupResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_InviteUserToGroupResp.Marshal(b, m, deterministic) + +func (x *GetGroupResp) GetGroupInfo() *sdk_ws.GroupInfo { + if x != nil { + return x.GroupInfo + } + return nil } -func (dst *InviteUserToGroupResp) XXX_Merge(src proto.Message) { - xxx_messageInfo_InviteUserToGroupResp.Merge(dst, src) + +type GetGroupsReq struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Pagination *sdk_ws.RequestPagination `protobuf:"bytes,1,opt,name=Pagination,proto3" json:"Pagination,omitempty"` + OperationID string `protobuf:"bytes,2,opt,name=OperationID,proto3" json:"OperationID,omitempty"` } -func (m *InviteUserToGroupResp) XXX_Size() int { - return xxx_messageInfo_InviteUserToGroupResp.Size(m) + +func (x *GetGroupsReq) Reset() { + *x = GetGroupsReq{} + if protoimpl.UnsafeEnabled { + mi := &file_group_group_proto_msgTypes[33] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *InviteUserToGroupResp) XXX_DiscardUnknown() { - xxx_messageInfo_InviteUserToGroupResp.DiscardUnknown(m) + +func (x *GetGroupsReq) String() string { + return protoimpl.X.MessageStringOf(x) } -var xxx_messageInfo_InviteUserToGroupResp proto.InternalMessageInfo +func (*GetGroupsReq) ProtoMessage() {} -func (m *InviteUserToGroupResp) GetErrCode() int32 { - if m != nil { - return m.ErrCode +func (x *GetGroupsReq) ProtoReflect() protoreflect.Message { + mi := &file_group_group_proto_msgTypes[33] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms } - return 0 + return mi.MessageOf(x) } -func (m *InviteUserToGroupResp) GetErrMsg() string { - if m != nil { - return m.ErrMsg - } - return "" +// Deprecated: Use GetGroupsReq.ProtoReflect.Descriptor instead. +func (*GetGroupsReq) Descriptor() ([]byte, []int) { + return file_group_group_proto_rawDescGZIP(), []int{33} } -func (m *InviteUserToGroupResp) GetId2ResultList() []*Id2Result { - if m != nil { - return m.Id2ResultList +func (x *GetGroupsReq) GetPagination() *sdk_ws.RequestPagination { + if x != nil { + return x.Pagination } return nil } -type GetGroupAllMemberReq struct { - GroupID string `protobuf:"bytes,1,opt,name=GroupID" json:"GroupID,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 (x *GetGroupsReq) GetOperationID() string { + if x != nil { + return x.OperationID + } + return "" } -func (m *GetGroupAllMemberReq) Reset() { *m = GetGroupAllMemberReq{} } -func (m *GetGroupAllMemberReq) String() string { return proto.CompactTextString(m) } -func (*GetGroupAllMemberReq) ProtoMessage() {} -func (*GetGroupAllMemberReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_a130b5186d308ee6, []int{29} -} -func (m *GetGroupAllMemberReq) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_GetGroupAllMemberReq.Unmarshal(m, b) -} -func (m *GetGroupAllMemberReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_GetGroupAllMemberReq.Marshal(b, m, deterministic) -} -func (dst *GetGroupAllMemberReq) XXX_Merge(src proto.Message) { - xxx_messageInfo_GetGroupAllMemberReq.Merge(dst, src) +type GetGroupsResp struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + GroupInfo []*sdk_ws.GroupInfo `protobuf:"bytes,1,rep,name=GroupInfo,proto3" json:"GroupInfo,omitempty"` } -func (m *GetGroupAllMemberReq) XXX_Size() int { - return xxx_messageInfo_GetGroupAllMemberReq.Size(m) + +func (x *GetGroupsResp) Reset() { + *x = GetGroupsResp{} + if protoimpl.UnsafeEnabled { + mi := &file_group_group_proto_msgTypes[34] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *GetGroupAllMemberReq) XXX_DiscardUnknown() { - xxx_messageInfo_GetGroupAllMemberReq.DiscardUnknown(m) + +func (x *GetGroupsResp) String() string { + return protoimpl.X.MessageStringOf(x) } -var xxx_messageInfo_GetGroupAllMemberReq proto.InternalMessageInfo +func (*GetGroupsResp) ProtoMessage() {} -func (m *GetGroupAllMemberReq) GetGroupID() string { - if m != nil { - return m.GroupID +func (x *GetGroupsResp) ProtoReflect() protoreflect.Message { + mi := &file_group_group_proto_msgTypes[34] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms } - return "" + return mi.MessageOf(x) } -func (m *GetGroupAllMemberReq) GetOpUserID() string { - if m != nil { - return m.OpUserID - } - return "" +// Deprecated: Use GetGroupsResp.ProtoReflect.Descriptor instead. +func (*GetGroupsResp) Descriptor() ([]byte, []int) { + return file_group_group_proto_rawDescGZIP(), []int{34} } -func (m *GetGroupAllMemberReq) GetOperationID() string { - if m != nil { - return m.OperationID +func (x *GetGroupsResp) GetGroupInfo() []*sdk_ws.GroupInfo { + if x != nil { + return x.GroupInfo } - return "" + return nil } -type GetGroupAllMemberResp struct { - ErrCode int32 `protobuf:"varint,1,opt,name=ErrCode" json:"ErrCode,omitempty"` - ErrMsg string `protobuf:"bytes,2,opt,name=ErrMsg" json:"ErrMsg,omitempty"` - MemberList []*sdk_ws.GroupMemberFullInfo `protobuf:"bytes,3,rep,name=memberList" json:"memberList,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} +type GetGroupMemberReq struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields -func (m *GetGroupAllMemberResp) Reset() { *m = GetGroupAllMemberResp{} } -func (m *GetGroupAllMemberResp) String() string { return proto.CompactTextString(m) } -func (*GetGroupAllMemberResp) ProtoMessage() {} -func (*GetGroupAllMemberResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_a130b5186d308ee6, []int{30} -} -func (m *GetGroupAllMemberResp) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_GetGroupAllMemberResp.Unmarshal(m, b) + GroupId string `protobuf:"bytes,1,opt,name=GroupId,proto3" json:"GroupId,omitempty"` + OperationID string `protobuf:"bytes,2,opt,name=OperationID,proto3" json:"OperationID,omitempty"` } -func (m *GetGroupAllMemberResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_GetGroupAllMemberResp.Marshal(b, m, deterministic) -} -func (dst *GetGroupAllMemberResp) XXX_Merge(src proto.Message) { - xxx_messageInfo_GetGroupAllMemberResp.Merge(dst, src) -} -func (m *GetGroupAllMemberResp) XXX_Size() int { - return xxx_messageInfo_GetGroupAllMemberResp.Size(m) + +func (x *GetGroupMemberReq) Reset() { + *x = GetGroupMemberReq{} + if protoimpl.UnsafeEnabled { + mi := &file_group_group_proto_msgTypes[35] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *GetGroupAllMemberResp) XXX_DiscardUnknown() { - xxx_messageInfo_GetGroupAllMemberResp.DiscardUnknown(m) + +func (x *GetGroupMemberReq) String() string { + return protoimpl.X.MessageStringOf(x) } -var xxx_messageInfo_GetGroupAllMemberResp proto.InternalMessageInfo +func (*GetGroupMemberReq) ProtoMessage() {} -func (m *GetGroupAllMemberResp) GetErrCode() int32 { - if m != nil { - return m.ErrCode +func (x *GetGroupMemberReq) ProtoReflect() protoreflect.Message { + mi := &file_group_group_proto_msgTypes[35] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms } - return 0 + return mi.MessageOf(x) +} + +// Deprecated: Use GetGroupMemberReq.ProtoReflect.Descriptor instead. +func (*GetGroupMemberReq) Descriptor() ([]byte, []int) { + return file_group_group_proto_rawDescGZIP(), []int{35} } -func (m *GetGroupAllMemberResp) GetErrMsg() string { - if m != nil { - return m.ErrMsg +func (x *GetGroupMemberReq) GetGroupId() string { + if x != nil { + return x.GroupId } return "" } -func (m *GetGroupAllMemberResp) GetMemberList() []*sdk_ws.GroupMemberFullInfo { - if m != nil { - return m.MemberList +func (x *GetGroupMemberReq) GetOperationID() string { + if x != nil { + return x.OperationID } - return nil + return "" } -func init() { - proto.RegisterType((*CommonResp)(nil), "group.CommonResp") - proto.RegisterType((*GroupAddMemberInfo)(nil), "group.GroupAddMemberInfo") - proto.RegisterType((*CreateGroupReq)(nil), "group.CreateGroupReq") - proto.RegisterType((*CreateGroupResp)(nil), "group.CreateGroupResp") - proto.RegisterType((*GetGroupsInfoReq)(nil), "group.GetGroupsInfoReq") - proto.RegisterType((*GetGroupsInfoResp)(nil), "group.GetGroupsInfoResp") - proto.RegisterType((*SetGroupInfoReq)(nil), "group.SetGroupInfoReq") - proto.RegisterType((*SetGroupInfoResp)(nil), "group.SetGroupInfoResp") - proto.RegisterType((*GetGroupApplicationListReq)(nil), "group.GetGroupApplicationListReq") - proto.RegisterType((*GetGroupApplicationListResp)(nil), "group.GetGroupApplicationListResp") - proto.RegisterType((*TransferGroupOwnerReq)(nil), "group.TransferGroupOwnerReq") - proto.RegisterType((*TransferGroupOwnerResp)(nil), "group.TransferGroupOwnerResp") - proto.RegisterType((*JoinGroupReq)(nil), "group.JoinGroupReq") - proto.RegisterType((*JoinGroupResp)(nil), "group.JoinGroupResp") - proto.RegisterType((*GroupApplicationResponseReq)(nil), "group.GroupApplicationResponseReq") - proto.RegisterType((*GroupApplicationResponseResp)(nil), "group.GroupApplicationResponseResp") - proto.RegisterType((*QuitGroupReq)(nil), "group.QuitGroupReq") - proto.RegisterType((*QuitGroupResp)(nil), "group.QuitGroupResp") - proto.RegisterType((*GetGroupMemberListReq)(nil), "group.GetGroupMemberListReq") - proto.RegisterType((*GetGroupMemberListResp)(nil), "group.GetGroupMemberListResp") - proto.RegisterType((*GetGroupMembersInfoReq)(nil), "group.GetGroupMembersInfoReq") - proto.RegisterType((*GetGroupMembersInfoResp)(nil), "group.GetGroupMembersInfoResp") - proto.RegisterType((*KickGroupMemberReq)(nil), "group.KickGroupMemberReq") - proto.RegisterType((*Id2Result)(nil), "group.Id2Result") - proto.RegisterType((*KickGroupMemberResp)(nil), "group.KickGroupMemberResp") - proto.RegisterType((*GetJoinedGroupListReq)(nil), "group.GetJoinedGroupListReq") - proto.RegisterType((*GetJoinedGroupListResp)(nil), "group.GetJoinedGroupListResp") - proto.RegisterType((*InviteUserToGroupReq)(nil), "group.InviteUserToGroupReq") - proto.RegisterType((*InviteUserToGroupResp)(nil), "group.InviteUserToGroupResp") - proto.RegisterType((*GetGroupAllMemberReq)(nil), "group.GetGroupAllMemberReq") - proto.RegisterType((*GetGroupAllMemberResp)(nil), "group.GetGroupAllMemberResp") +var File_group_group_proto protoreflect.FileDescriptor + +var file_group_group_proto_rawDesc = []byte{ + 0x0a, 0x11, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x12, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x1a, 0x21, 0x4f, 0x70, 0x65, 0x6e, + 0x5f, 0x49, 0x4d, 0x2f, 0x70, 0x6b, 0x67, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x73, 0x64, + 0x6b, 0x5f, 0x77, 0x73, 0x2f, 0x77, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x3e, 0x0a, + 0x0a, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x12, 0x18, 0x0a, 0x07, 0x45, + 0x72, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x45, 0x72, + 0x72, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x45, 0x72, 0x72, 0x4d, 0x73, 0x67, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x45, 0x72, 0x72, 0x4d, 0x73, 0x67, 0x22, 0x4a, 0x0a, + 0x12, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x64, 0x64, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x49, + 0x6e, 0x66, 0x6f, 0x12, 0x16, 0x0a, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x52, + 0x6f, 0x6c, 0x65, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, + 0x52, 0x6f, 0x6c, 0x65, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x22, 0xef, 0x01, 0x0a, 0x0e, 0x43, 0x72, + 0x65, 0x61, 0x74, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x12, 0x41, 0x0a, 0x0e, + 0x49, 0x6e, 0x69, 0x74, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x01, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x72, 0x6f, + 0x75, 0x70, 0x41, 0x64, 0x64, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, + 0x0e, 0x49, 0x6e, 0x69, 0x74, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x12, + 0x3a, 0x0a, 0x09, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, + 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x66, 0x6f, + 0x52, 0x09, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x20, 0x0a, 0x0b, 0x4f, + 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x12, 0x1a, 0x0a, + 0x08, 0x4f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x08, 0x4f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x77, 0x6e, + 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, + 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x22, 0x7f, 0x0a, 0x0f, 0x43, + 0x72, 0x65, 0x61, 0x74, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x12, 0x18, + 0x0a, 0x07, 0x45, 0x72, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x07, 0x45, 0x72, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x45, 0x72, 0x72, 0x4d, + 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x45, 0x72, 0x72, 0x4d, 0x73, 0x67, + 0x12, 0x3a, 0x0a, 0x09, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, + 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x66, + 0x6f, 0x52, 0x09, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0x72, 0x0a, 0x10, + 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, + 0x12, 0x20, 0x0a, 0x0b, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x44, 0x4c, 0x69, 0x73, 0x74, 0x18, + 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0b, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x44, 0x4c, 0x69, + 0x73, 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, + 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x4f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x4f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, + 0x22, 0x89, 0x01, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x49, 0x6e, + 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x12, 0x18, 0x0a, 0x07, 0x45, 0x72, 0x72, 0x43, 0x6f, 0x64, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x45, 0x72, 0x72, 0x43, 0x6f, 0x64, 0x65, + 0x12, 0x16, 0x0a, 0x06, 0x45, 0x72, 0x72, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x06, 0x45, 0x72, 0x72, 0x4d, 0x73, 0x67, 0x12, 0x42, 0x0a, 0x0d, 0x47, 0x72, 0x6f, 0x75, + 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x1c, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, + 0x61, 0x6d, 0x73, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0d, 0x47, + 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x8b, 0x01, 0x0a, + 0x0f, 0x53, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, + 0x12, 0x3a, 0x0a, 0x09, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, + 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x66, + 0x6f, 0x52, 0x09, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1a, 0x0a, 0x08, + 0x4f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, + 0x4f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x70, 0x65, 0x72, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x4f, + 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x22, 0x45, 0x0a, 0x10, 0x53, 0x65, + 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x12, 0x31, + 0x0a, 0x0a, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, + 0x6e, 0x52, 0x65, 0x73, 0x70, 0x52, 0x0a, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, + 0x70, 0x22, 0x7a, 0x0a, 0x1a, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x70, 0x70, + 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x12, + 0x1a, 0x0a, 0x08, 0x4f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x08, 0x4f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x4f, + 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x12, 0x1e, 0x0a, + 0x0a, 0x46, 0x72, 0x6f, 0x6d, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0a, 0x46, 0x72, 0x6f, 0x6d, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x22, 0x9c, 0x01, + 0x0a, 0x1b, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x18, 0x0a, + 0x07, 0x45, 0x72, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, + 0x45, 0x72, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x45, 0x72, 0x72, 0x4d, 0x73, + 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x45, 0x72, 0x72, 0x4d, 0x73, 0x67, 0x12, + 0x4b, 0x0a, 0x10, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x4c, + 0x69, 0x73, 0x74, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x73, 0x65, 0x72, 0x76, + 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x47, 0x72, + 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x10, 0x47, 0x72, 0x6f, 0x75, + 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x22, 0xbf, 0x01, 0x0a, + 0x15, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4f, 0x77, + 0x6e, 0x65, 0x72, 0x52, 0x65, 0x71, 0x12, 0x18, 0x0a, 0x07, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, + 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x44, + 0x12, 0x26, 0x0a, 0x0e, 0x4f, 0x6c, 0x64, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, + 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x4f, 0x6c, 0x64, 0x4f, 0x77, 0x6e, + 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x26, 0x0a, 0x0e, 0x4e, 0x65, 0x77, 0x4f, + 0x77, 0x6e, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0e, 0x4e, 0x65, 0x77, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, + 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x4f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x4f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x22, 0x4b, + 0x0a, 0x16, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4f, + 0x77, 0x6e, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x12, 0x31, 0x0a, 0x0a, 0x43, 0x6f, 0x6d, 0x6d, + 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x67, + 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x52, + 0x0a, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0x86, 0x01, 0x0a, 0x0c, + 0x4a, 0x6f, 0x69, 0x6e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x12, 0x18, 0x0a, 0x07, + 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x47, + 0x72, 0x6f, 0x75, 0x70, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x52, 0x65, 0x71, 0x4d, 0x65, 0x73, + 0x73, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x52, 0x65, 0x71, 0x4d, + 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x4f, 0x70, 0x55, 0x73, 0x65, 0x72, + 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x4f, 0x70, 0x55, 0x73, 0x65, 0x72, + 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, + 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x49, 0x44, 0x22, 0x42, 0x0a, 0x0d, 0x4a, 0x6f, 0x69, 0x6e, 0x47, 0x72, 0x6f, 0x75, + 0x70, 0x52, 0x65, 0x73, 0x70, 0x12, 0x31, 0x0a, 0x0a, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, + 0x65, 0x73, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x67, 0x72, 0x6f, 0x75, + 0x70, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x52, 0x0a, 0x43, 0x6f, + 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0xd9, 0x01, 0x0a, 0x1b, 0x47, 0x72, 0x6f, + 0x75, 0x70, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x65, 0x71, 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x70, 0x65, 0x72, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x4f, + 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x4f, 0x70, + 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x4f, 0x70, + 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x18, 0x0a, 0x07, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, + 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x44, + 0x12, 0x1e, 0x0a, 0x0a, 0x46, 0x72, 0x6f, 0x6d, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x46, 0x72, 0x6f, 0x6d, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, + 0x12, 0x1e, 0x0a, 0x0a, 0x48, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x64, 0x4d, 0x73, 0x67, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x48, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x64, 0x4d, 0x73, 0x67, + 0x12, 0x22, 0x0a, 0x0c, 0x48, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, + 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x48, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x52, 0x65, + 0x73, 0x75, 0x6c, 0x74, 0x22, 0x51, 0x0a, 0x1c, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x70, 0x70, + 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x52, 0x65, 0x73, 0x70, 0x12, 0x31, 0x0a, 0x0a, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, + 0x73, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, + 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x52, 0x0a, 0x43, 0x6f, 0x6d, + 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0x66, 0x0a, 0x0c, 0x51, 0x75, 0x69, 0x74, 0x47, + 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x12, 0x18, 0x0a, 0x07, 0x47, 0x72, 0x6f, 0x75, 0x70, + 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, + 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x4f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x4f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x22, + 0x42, 0x0a, 0x0d, 0x51, 0x75, 0x69, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, + 0x12, 0x31, 0x0a, 0x0a, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x43, 0x6f, 0x6d, + 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x52, 0x0a, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, + 0x65, 0x73, 0x70, 0x22, 0xa1, 0x01, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, + 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x12, 0x18, 0x0a, + 0x07, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, + 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x4f, 0x70, 0x55, 0x73, 0x65, + 0x72, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x4f, 0x70, 0x55, 0x73, 0x65, + 0x72, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x18, 0x0a, + 0x07, 0x4e, 0x65, 0x78, 0x74, 0x53, 0x65, 0x71, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, + 0x4e, 0x65, 0x78, 0x74, 0x53, 0x65, 0x71, 0x22, 0xac, 0x01, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x47, + 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, + 0x73, 0x70, 0x12, 0x18, 0x0a, 0x07, 0x45, 0x72, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x07, 0x45, 0x72, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x16, 0x0a, 0x06, + 0x45, 0x72, 0x72, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x45, 0x72, + 0x72, 0x4d, 0x73, 0x67, 0x12, 0x46, 0x0a, 0x0a, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x4c, 0x69, + 0x73, 0x74, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, + 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x47, 0x72, 0x6f, + 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x46, 0x75, 0x6c, 0x6c, 0x49, 0x6e, 0x66, 0x6f, + 0x52, 0x0a, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, + 0x6e, 0x65, 0x78, 0x74, 0x53, 0x65, 0x71, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x6e, + 0x65, 0x78, 0x74, 0x53, 0x65, 0x71, 0x22, 0x90, 0x01, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x47, 0x72, + 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, + 0x71, 0x12, 0x18, 0x0a, 0x07, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x07, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x6d, + 0x65, 0x6d, 0x62, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, + 0x0a, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x4f, + 0x70, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x4f, + 0x70, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x4f, 0x70, + 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x22, 0x93, 0x01, 0x0a, 0x17, 0x47, 0x65, + 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x49, 0x6e, 0x66, + 0x6f, 0x52, 0x65, 0x73, 0x70, 0x12, 0x18, 0x0a, 0x07, 0x45, 0x72, 0x72, 0x43, 0x6f, 0x64, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x45, 0x72, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x12, + 0x16, 0x0a, 0x06, 0x45, 0x72, 0x72, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x06, 0x45, 0x72, 0x72, 0x4d, 0x73, 0x67, 0x12, 0x46, 0x0a, 0x0a, 0x6d, 0x65, 0x6d, 0x62, 0x65, + 0x72, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x73, 0x65, + 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, + 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x46, 0x75, 0x6c, 0x6c, 0x49, + 0x6e, 0x66, 0x6f, 0x52, 0x0a, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x22, + 0xb0, 0x01, 0x0a, 0x12, 0x4b, 0x69, 0x63, 0x6b, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, + 0x62, 0x65, 0x72, 0x52, 0x65, 0x71, 0x12, 0x18, 0x0a, 0x07, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, + 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x44, + 0x12, 0x2a, 0x0a, 0x10, 0x4b, 0x69, 0x63, 0x6b, 0x65, 0x64, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, + 0x4c, 0x69, 0x73, 0x74, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x10, 0x4b, 0x69, 0x63, 0x6b, + 0x65, 0x64, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, + 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x52, 0x65, + 0x61, 0x73, 0x6f, 0x6e, 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x4f, 0x70, 0x55, 0x73, 0x65, 0x72, + 0x49, 0x44, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x4f, 0x70, 0x55, 0x73, 0x65, 0x72, + 0x49, 0x44, 0x22, 0x3b, 0x0a, 0x09, 0x49, 0x64, 0x32, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, + 0x16, 0x0a, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x52, 0x65, 0x73, 0x75, 0x6c, + 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, + 0x7f, 0x0a, 0x13, 0x4b, 0x69, 0x63, 0x6b, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, + 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x12, 0x18, 0x0a, 0x07, 0x45, 0x72, 0x72, 0x43, 0x6f, 0x64, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x45, 0x72, 0x72, 0x43, 0x6f, 0x64, 0x65, + 0x12, 0x16, 0x0a, 0x06, 0x45, 0x72, 0x72, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x06, 0x45, 0x72, 0x72, 0x4d, 0x73, 0x67, 0x12, 0x36, 0x0a, 0x0d, 0x49, 0x64, 0x32, 0x52, + 0x65, 0x73, 0x75, 0x6c, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x10, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x49, 0x64, 0x32, 0x52, 0x65, 0x73, 0x75, 0x6c, + 0x74, 0x52, 0x0d, 0x49, 0x64, 0x32, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x4c, 0x69, 0x73, 0x74, + 0x22, 0x75, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x4a, 0x6f, 0x69, 0x6e, 0x65, 0x64, 0x47, 0x72, 0x6f, + 0x75, 0x70, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x12, 0x1e, 0x0a, 0x0a, 0x46, 0x72, 0x6f, + 0x6d, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x46, + 0x72, 0x6f, 0x6d, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x6f, 0x70, 0x65, + 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, + 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x4f, + 0x70, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x4f, + 0x70, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x22, 0x86, 0x01, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x4a, + 0x6f, 0x69, 0x6e, 0x65, 0x64, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, + 0x73, 0x70, 0x12, 0x18, 0x0a, 0x07, 0x45, 0x72, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x07, 0x45, 0x72, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x16, 0x0a, 0x06, + 0x45, 0x72, 0x72, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x45, 0x72, + 0x72, 0x4d, 0x73, 0x67, 0x12, 0x3a, 0x0a, 0x09, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4c, 0x69, 0x73, + 0x74, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, + 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x47, 0x72, 0x6f, 0x75, + 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x09, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4c, 0x69, 0x73, 0x74, + 0x22, 0xb4, 0x01, 0x0a, 0x14, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x54, + 0x6f, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x70, 0x65, + 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, + 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x12, 0x18, 0x0a, 0x07, 0x47, + 0x72, 0x6f, 0x75, 0x70, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x47, 0x72, + 0x6f, 0x75, 0x70, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x12, 0x2c, 0x0a, + 0x11, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x64, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x4c, 0x69, + 0x73, 0x74, 0x18, 0x05, 0x20, 0x03, 0x28, 0x09, 0x52, 0x11, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, + 0x64, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x4f, + 0x70, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x4f, + 0x70, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x22, 0x81, 0x01, 0x0a, 0x15, 0x49, 0x6e, 0x76, 0x69, + 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x54, 0x6f, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, + 0x70, 0x12, 0x18, 0x0a, 0x07, 0x45, 0x72, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x07, 0x45, 0x72, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x45, + 0x72, 0x72, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x45, 0x72, 0x72, + 0x4d, 0x73, 0x67, 0x12, 0x36, 0x0a, 0x0d, 0x49, 0x64, 0x32, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, + 0x4c, 0x69, 0x73, 0x74, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x67, 0x72, 0x6f, + 0x75, 0x70, 0x2e, 0x49, 0x64, 0x32, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x0d, 0x49, 0x64, + 0x32, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x6e, 0x0a, 0x14, 0x47, + 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x6c, 0x6c, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, + 0x52, 0x65, 0x71, 0x12, 0x18, 0x0a, 0x07, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x44, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x44, 0x12, 0x1a, 0x0a, + 0x08, 0x4f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x08, 0x4f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x70, 0x65, + 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, + 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x22, 0x91, 0x01, 0x0a, 0x15, + 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x6c, 0x6c, 0x4d, 0x65, 0x6d, 0x62, 0x65, + 0x72, 0x52, 0x65, 0x73, 0x70, 0x12, 0x18, 0x0a, 0x07, 0x45, 0x72, 0x72, 0x43, 0x6f, 0x64, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x45, 0x72, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x12, + 0x16, 0x0a, 0x06, 0x45, 0x72, 0x72, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x06, 0x45, 0x72, 0x72, 0x4d, 0x73, 0x67, 0x12, 0x46, 0x0a, 0x0a, 0x6d, 0x65, 0x6d, 0x62, 0x65, + 0x72, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x73, 0x65, + 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, + 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x46, 0x75, 0x6c, 0x6c, 0x49, + 0x6e, 0x66, 0x6f, 0x52, 0x0a, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x22, + 0x4d, 0x0a, 0x0b, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x12, 0x1c, + 0x0a, 0x09, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x09, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, + 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x22, 0x4a, + 0x0a, 0x0c, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x12, 0x3a, + 0x0a, 0x09, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x1c, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, + 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x52, + 0x09, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0x76, 0x0a, 0x0c, 0x47, 0x65, + 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x52, 0x65, 0x71, 0x12, 0x44, 0x0a, 0x0a, 0x50, 0x61, + 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, + 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, + 0x6d, 0x73, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0a, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x49, 0x44, 0x22, 0x4b, 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x52, + 0x65, 0x73, 0x70, 0x12, 0x3a, 0x0a, 0x09, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x66, 0x6f, + 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, + 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, + 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x09, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x22, + 0x4f, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, + 0x72, 0x52, 0x65, 0x71, 0x12, 0x18, 0x0a, 0x07, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x12, 0x20, + 0x0a, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, + 0x32, 0xa8, 0x09, 0x0a, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x3c, 0x0a, 0x0b, 0x63, 0x72, + 0x65, 0x61, 0x74, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x15, 0x2e, 0x67, 0x72, 0x6f, 0x75, + 0x70, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, + 0x1a, 0x16, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x47, + 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x12, 0x36, 0x0a, 0x09, 0x6a, 0x6f, 0x69, 0x6e, + 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x13, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x4a, 0x6f, + 0x69, 0x6e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x1a, 0x14, 0x2e, 0x67, 0x72, 0x6f, + 0x75, 0x70, 0x2e, 0x4a, 0x6f, 0x69, 0x6e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, + 0x12, 0x36, 0x0a, 0x09, 0x71, 0x75, 0x69, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x13, 0x2e, + 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x51, 0x75, 0x69, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, + 0x65, 0x71, 0x1a, 0x14, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x51, 0x75, 0x69, 0x74, 0x47, + 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x12, 0x42, 0x0a, 0x0d, 0x67, 0x65, 0x74, 0x47, + 0x72, 0x6f, 0x75, 0x70, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x17, 0x2e, 0x67, 0x72, 0x6f, 0x75, + 0x70, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x52, + 0x65, 0x71, 0x1a, 0x18, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x72, + 0x6f, 0x75, 0x70, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x12, 0x3f, 0x0a, 0x0c, + 0x73, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x16, 0x2e, 0x67, + 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x53, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x66, + 0x6f, 0x52, 0x65, 0x71, 0x1a, 0x17, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x53, 0x65, 0x74, + 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x12, 0x60, 0x0a, + 0x17, 0x67, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x21, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, + 0x2e, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x22, 0x2e, 0x67, 0x72, + 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x70, 0x70, 0x6c, + 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, + 0x51, 0x0a, 0x12, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, + 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x12, 0x1c, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x54, 0x72, + 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4f, 0x77, 0x6e, 0x65, 0x72, + 0x52, 0x65, 0x71, 0x1a, 0x1d, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x54, 0x72, 0x61, 0x6e, + 0x73, 0x66, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x52, 0x65, + 0x73, 0x70, 0x12, 0x63, 0x0a, 0x18, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x70, 0x70, 0x6c, 0x69, + 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x22, + 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x70, 0x70, 0x6c, + 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, + 0x65, 0x71, 0x1a, 0x23, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, + 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x51, 0x0a, 0x12, 0x67, 0x65, 0x74, 0x47, 0x72, + 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x1c, 0x2e, + 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, + 0x6d, 0x62, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x1d, 0x2e, 0x67, 0x72, + 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, + 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x54, 0x0a, 0x13, 0x67, 0x65, + 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x49, 0x6e, 0x66, + 0x6f, 0x12, 0x1d, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, + 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, + 0x1a, 0x1e, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, + 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, + 0x12, 0x48, 0x0a, 0x0f, 0x6b, 0x69, 0x63, 0x6b, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, + 0x62, 0x65, 0x72, 0x12, 0x19, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x4b, 0x69, 0x63, 0x6b, + 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x65, 0x71, 0x1a, 0x1a, + 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x4b, 0x69, 0x63, 0x6b, 0x47, 0x72, 0x6f, 0x75, 0x70, + 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x12, 0x51, 0x0a, 0x12, 0x67, 0x65, + 0x74, 0x4a, 0x6f, 0x69, 0x6e, 0x65, 0x64, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4c, 0x69, 0x73, 0x74, + 0x12, 0x1c, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x65, 0x74, 0x4a, 0x6f, 0x69, 0x6e, + 0x65, 0x64, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x1d, + 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x65, 0x74, 0x4a, 0x6f, 0x69, 0x6e, 0x65, 0x64, + 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x4e, 0x0a, + 0x11, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x54, 0x6f, 0x47, 0x72, 0x6f, + 0x75, 0x70, 0x12, 0x1b, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x49, 0x6e, 0x76, 0x69, 0x74, + 0x65, 0x55, 0x73, 0x65, 0x72, 0x54, 0x6f, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x1a, + 0x1c, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x55, 0x73, + 0x65, 0x72, 0x54, 0x6f, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x12, 0x4e, 0x0a, + 0x11, 0x67, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x6c, 0x6c, 0x4d, 0x65, 0x6d, 0x62, + 0x65, 0x72, 0x12, 0x1b, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x72, + 0x6f, 0x75, 0x70, 0x41, 0x6c, 0x6c, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x65, 0x71, 0x1a, + 0x1c, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, + 0x41, 0x6c, 0x6c, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x12, 0x34, 0x0a, + 0x08, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x12, 0x2e, 0x67, 0x72, 0x6f, 0x75, + 0x70, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x1a, 0x14, 0x2e, + 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x52, + 0x65, 0x73, 0x70, 0x12, 0x36, 0x0a, 0x09, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, + 0x12, 0x13, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, + 0x70, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x14, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x65, + 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x52, 0x65, 0x73, 0x70, 0x42, 0x0f, 0x5a, 0x0d, 0x2e, + 0x2f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x3b, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x62, 0x06, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_group_group_proto_rawDescOnce sync.Once + file_group_group_proto_rawDescData = file_group_group_proto_rawDesc +) + +func file_group_group_proto_rawDescGZIP() []byte { + file_group_group_proto_rawDescOnce.Do(func() { + file_group_group_proto_rawDescData = protoimpl.X.CompressGZIP(file_group_group_proto_rawDescData) + }) + return file_group_group_proto_rawDescData +} + +var file_group_group_proto_msgTypes = make([]protoimpl.MessageInfo, 36) +var file_group_group_proto_goTypes = []interface{}{ + (*CommonResp)(nil), // 0: group.CommonResp + (*GroupAddMemberInfo)(nil), // 1: group.GroupAddMemberInfo + (*CreateGroupReq)(nil), // 2: group.CreateGroupReq + (*CreateGroupResp)(nil), // 3: group.CreateGroupResp + (*GetGroupsInfoReq)(nil), // 4: group.GetGroupsInfoReq + (*GetGroupsInfoResp)(nil), // 5: group.GetGroupsInfoResp + (*SetGroupInfoReq)(nil), // 6: group.SetGroupInfoReq + (*SetGroupInfoResp)(nil), // 7: group.SetGroupInfoResp + (*GetGroupApplicationListReq)(nil), // 8: group.GetGroupApplicationListReq + (*GetGroupApplicationListResp)(nil), // 9: group.GetGroupApplicationListResp + (*TransferGroupOwnerReq)(nil), // 10: group.TransferGroupOwnerReq + (*TransferGroupOwnerResp)(nil), // 11: group.TransferGroupOwnerResp + (*JoinGroupReq)(nil), // 12: group.JoinGroupReq + (*JoinGroupResp)(nil), // 13: group.JoinGroupResp + (*GroupApplicationResponseReq)(nil), // 14: group.GroupApplicationResponseReq + (*GroupApplicationResponseResp)(nil), // 15: group.GroupApplicationResponseResp + (*QuitGroupReq)(nil), // 16: group.QuitGroupReq + (*QuitGroupResp)(nil), // 17: group.QuitGroupResp + (*GetGroupMemberListReq)(nil), // 18: group.GetGroupMemberListReq + (*GetGroupMemberListResp)(nil), // 19: group.GetGroupMemberListResp + (*GetGroupMembersInfoReq)(nil), // 20: group.GetGroupMembersInfoReq + (*GetGroupMembersInfoResp)(nil), // 21: group.GetGroupMembersInfoResp + (*KickGroupMemberReq)(nil), // 22: group.KickGroupMemberReq + (*Id2Result)(nil), // 23: group.Id2Result + (*KickGroupMemberResp)(nil), // 24: group.KickGroupMemberResp + (*GetJoinedGroupListReq)(nil), // 25: group.GetJoinedGroupListReq + (*GetJoinedGroupListResp)(nil), // 26: group.GetJoinedGroupListResp + (*InviteUserToGroupReq)(nil), // 27: group.InviteUserToGroupReq + (*InviteUserToGroupResp)(nil), // 28: group.InviteUserToGroupResp + (*GetGroupAllMemberReq)(nil), // 29: group.GetGroupAllMemberReq + (*GetGroupAllMemberResp)(nil), // 30: group.GetGroupAllMemberResp + (*GetGroupReq)(nil), // 31: group.GetGroupReq + (*GetGroupResp)(nil), // 32: group.GetGroupResp + (*GetGroupsReq)(nil), // 33: group.GetGroupsReq + (*GetGroupsResp)(nil), // 34: group.GetGroupsResp + (*GetGroupMemberReq)(nil), // 35: group.GetGroupMemberReq + (*sdk_ws.GroupInfo)(nil), // 36: server_api_params.GroupInfo + (*sdk_ws.GroupRequest)(nil), // 37: server_api_params.GroupRequest + (*sdk_ws.GroupMemberFullInfo)(nil), // 38: server_api_params.GroupMemberFullInfo + (*sdk_ws.RequestPagination)(nil), // 39: server_api_params.RequestPagination +} +var file_group_group_proto_depIdxs = []int32{ + 1, // 0: group.CreateGroupReq.InitMemberList:type_name -> group.GroupAddMemberInfo + 36, // 1: group.CreateGroupReq.GroupInfo:type_name -> server_api_params.GroupInfo + 36, // 2: group.CreateGroupResp.GroupInfo:type_name -> server_api_params.GroupInfo + 36, // 3: group.GetGroupsInfoResp.GroupInfoList:type_name -> server_api_params.GroupInfo + 36, // 4: group.SetGroupInfoReq.GroupInfo:type_name -> server_api_params.GroupInfo + 0, // 5: group.SetGroupInfoResp.CommonResp:type_name -> group.CommonResp + 37, // 6: group.GetGroupApplicationListResp.GroupRequestList:type_name -> server_api_params.GroupRequest + 0, // 7: group.TransferGroupOwnerResp.CommonResp:type_name -> group.CommonResp + 0, // 8: group.JoinGroupResp.CommonResp:type_name -> group.CommonResp + 0, // 9: group.GroupApplicationResponseResp.CommonResp:type_name -> group.CommonResp + 0, // 10: group.QuitGroupResp.CommonResp:type_name -> group.CommonResp + 38, // 11: group.GetGroupMemberListResp.memberList:type_name -> server_api_params.GroupMemberFullInfo + 38, // 12: group.GetGroupMembersInfoResp.memberList:type_name -> server_api_params.GroupMemberFullInfo + 23, // 13: group.KickGroupMemberResp.Id2ResultList:type_name -> group.Id2Result + 36, // 14: group.GetJoinedGroupListResp.GroupList:type_name -> server_api_params.GroupInfo + 23, // 15: group.InviteUserToGroupResp.Id2ResultList:type_name -> group.Id2Result + 38, // 16: group.GetGroupAllMemberResp.memberList:type_name -> server_api_params.GroupMemberFullInfo + 36, // 17: group.GetGroupResp.GroupInfo:type_name -> server_api_params.GroupInfo + 39, // 18: group.GetGroupsReq.Pagination:type_name -> server_api_params.RequestPagination + 36, // 19: group.GetGroupsResp.GroupInfo:type_name -> server_api_params.GroupInfo + 2, // 20: group.group.createGroup:input_type -> group.CreateGroupReq + 12, // 21: group.group.joinGroup:input_type -> group.JoinGroupReq + 16, // 22: group.group.quitGroup:input_type -> group.QuitGroupReq + 4, // 23: group.group.getGroupsInfo:input_type -> group.GetGroupsInfoReq + 6, // 24: group.group.setGroupInfo:input_type -> group.SetGroupInfoReq + 8, // 25: group.group.getGroupApplicationList:input_type -> group.GetGroupApplicationListReq + 10, // 26: group.group.transferGroupOwner:input_type -> group.TransferGroupOwnerReq + 14, // 27: group.group.groupApplicationResponse:input_type -> group.GroupApplicationResponseReq + 18, // 28: group.group.getGroupMemberList:input_type -> group.GetGroupMemberListReq + 20, // 29: group.group.getGroupMembersInfo:input_type -> group.GetGroupMembersInfoReq + 22, // 30: group.group.kickGroupMember:input_type -> group.KickGroupMemberReq + 25, // 31: group.group.getJoinedGroupList:input_type -> group.GetJoinedGroupListReq + 27, // 32: group.group.inviteUserToGroup:input_type -> group.InviteUserToGroupReq + 29, // 33: group.group.getGroupAllMember:input_type -> group.GetGroupAllMemberReq + 31, // 34: group.group.GetGroup:input_type -> group.GetGroupReq + 33, // 35: group.group.GetGroups:input_type -> group.GetGroupsReq + 3, // 36: group.group.createGroup:output_type -> group.CreateGroupResp + 13, // 37: group.group.joinGroup:output_type -> group.JoinGroupResp + 17, // 38: group.group.quitGroup:output_type -> group.QuitGroupResp + 5, // 39: group.group.getGroupsInfo:output_type -> group.GetGroupsInfoResp + 7, // 40: group.group.setGroupInfo:output_type -> group.SetGroupInfoResp + 9, // 41: group.group.getGroupApplicationList:output_type -> group.GetGroupApplicationListResp + 11, // 42: group.group.transferGroupOwner:output_type -> group.TransferGroupOwnerResp + 15, // 43: group.group.groupApplicationResponse:output_type -> group.GroupApplicationResponseResp + 19, // 44: group.group.getGroupMemberList:output_type -> group.GetGroupMemberListResp + 21, // 45: group.group.getGroupMembersInfo:output_type -> group.GetGroupMembersInfoResp + 24, // 46: group.group.kickGroupMember:output_type -> group.KickGroupMemberResp + 26, // 47: group.group.getJoinedGroupList:output_type -> group.GetJoinedGroupListResp + 28, // 48: group.group.inviteUserToGroup:output_type -> group.InviteUserToGroupResp + 30, // 49: group.group.getGroupAllMember:output_type -> group.GetGroupAllMemberResp + 34, // 50: group.group.GetGroup:output_type -> group.GetGroupsResp + 34, // 51: group.group.GetGroups:output_type -> group.GetGroupsResp + 36, // [36:52] is the sub-list for method output_type + 20, // [20:36] is the sub-list for method input_type + 20, // [20:20] is the sub-list for extension type_name + 20, // [20:20] is the sub-list for extension extendee + 0, // [0:20] is the sub-list for field type_name +} + +func init() { file_group_group_proto_init() } +func file_group_group_proto_init() { + if File_group_group_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_group_group_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CommonResp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_group_group_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GroupAddMemberInfo); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_group_group_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CreateGroupReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_group_group_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CreateGroupResp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_group_group_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetGroupsInfoReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_group_group_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetGroupsInfoResp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_group_group_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SetGroupInfoReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_group_group_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SetGroupInfoResp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_group_group_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetGroupApplicationListReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_group_group_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetGroupApplicationListResp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_group_group_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*TransferGroupOwnerReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_group_group_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*TransferGroupOwnerResp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_group_group_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*JoinGroupReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_group_group_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*JoinGroupResp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_group_group_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GroupApplicationResponseReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_group_group_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GroupApplicationResponseResp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_group_group_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*QuitGroupReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_group_group_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*QuitGroupResp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_group_group_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetGroupMemberListReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_group_group_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetGroupMemberListResp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_group_group_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetGroupMembersInfoReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_group_group_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetGroupMembersInfoResp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_group_group_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*KickGroupMemberReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_group_group_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Id2Result); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_group_group_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*KickGroupMemberResp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_group_group_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetJoinedGroupListReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_group_group_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetJoinedGroupListResp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_group_group_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*InviteUserToGroupReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_group_group_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*InviteUserToGroupResp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_group_group_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetGroupAllMemberReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_group_group_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetGroupAllMemberResp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_group_group_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetGroupReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_group_group_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetGroupResp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_group_group_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetGroupsReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_group_group_proto_msgTypes[34].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetGroupsResp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_group_group_proto_msgTypes[35].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetGroupMemberReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_group_group_proto_rawDesc, + NumEnums: 0, + NumMessages: 36, + NumExtensions: 0, + NumServices: 1, + }, + GoTypes: file_group_group_proto_goTypes, + DependencyIndexes: file_group_group_proto_depIdxs, + MessageInfos: file_group_group_proto_msgTypes, + }.Build() + File_group_group_proto = out.File + file_group_group_proto_rawDesc = nil + file_group_group_proto_goTypes = nil + file_group_group_proto_depIdxs = nil } // Reference imports to suppress errors if they are not otherwise used. var _ context.Context -var _ grpc.ClientConn +var _ grpc.ClientConnInterface // 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 Group service +const _ = grpc.SupportPackageIsVersion6 +// GroupClient is the client API for Group service. +// +// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream. type GroupClient interface { CreateGroup(ctx context.Context, in *CreateGroupReq, opts ...grpc.CallOption) (*CreateGroupResp, error) JoinGroup(ctx context.Context, in *JoinGroupReq, opts ...grpc.CallOption) (*JoinGroupResp, error) @@ -1781,19 +3227,21 @@ type GroupClient interface { GetJoinedGroupList(ctx context.Context, in *GetJoinedGroupListReq, opts ...grpc.CallOption) (*GetJoinedGroupListResp, error) InviteUserToGroup(ctx context.Context, in *InviteUserToGroupReq, opts ...grpc.CallOption) (*InviteUserToGroupResp, error) GetGroupAllMember(ctx context.Context, in *GetGroupAllMemberReq, opts ...grpc.CallOption) (*GetGroupAllMemberResp, error) + GetGroup(ctx context.Context, in *GetGroupReq, opts ...grpc.CallOption) (*GetGroupsResp, error) + GetGroups(ctx context.Context, in *GetGroupsReq, opts ...grpc.CallOption) (*GetGroupsResp, error) } type groupClient struct { - cc *grpc.ClientConn + cc grpc.ClientConnInterface } -func NewGroupClient(cc *grpc.ClientConn) GroupClient { +func NewGroupClient(cc grpc.ClientConnInterface) GroupClient { return &groupClient{cc} } func (c *groupClient) CreateGroup(ctx context.Context, in *CreateGroupReq, opts ...grpc.CallOption) (*CreateGroupResp, error) { out := new(CreateGroupResp) - err := grpc.Invoke(ctx, "/group.group/createGroup", in, out, c.cc, opts...) + err := c.cc.Invoke(ctx, "/group.group/createGroup", in, out, opts...) if err != nil { return nil, err } @@ -1802,7 +3250,7 @@ func (c *groupClient) CreateGroup(ctx context.Context, in *CreateGroupReq, opts func (c *groupClient) JoinGroup(ctx context.Context, in *JoinGroupReq, opts ...grpc.CallOption) (*JoinGroupResp, error) { out := new(JoinGroupResp) - err := grpc.Invoke(ctx, "/group.group/joinGroup", in, out, c.cc, opts...) + err := c.cc.Invoke(ctx, "/group.group/joinGroup", in, out, opts...) if err != nil { return nil, err } @@ -1811,7 +3259,7 @@ func (c *groupClient) JoinGroup(ctx context.Context, in *JoinGroupReq, opts ...g func (c *groupClient) QuitGroup(ctx context.Context, in *QuitGroupReq, opts ...grpc.CallOption) (*QuitGroupResp, error) { out := new(QuitGroupResp) - err := grpc.Invoke(ctx, "/group.group/quitGroup", in, out, c.cc, opts...) + err := c.cc.Invoke(ctx, "/group.group/quitGroup", in, out, opts...) if err != nil { return nil, err } @@ -1820,7 +3268,7 @@ func (c *groupClient) QuitGroup(ctx context.Context, in *QuitGroupReq, opts ...g func (c *groupClient) GetGroupsInfo(ctx context.Context, in *GetGroupsInfoReq, opts ...grpc.CallOption) (*GetGroupsInfoResp, error) { out := new(GetGroupsInfoResp) - err := grpc.Invoke(ctx, "/group.group/getGroupsInfo", in, out, c.cc, opts...) + err := c.cc.Invoke(ctx, "/group.group/getGroupsInfo", in, out, opts...) if err != nil { return nil, err } @@ -1829,7 +3277,7 @@ func (c *groupClient) GetGroupsInfo(ctx context.Context, in *GetGroupsInfoReq, o func (c *groupClient) SetGroupInfo(ctx context.Context, in *SetGroupInfoReq, opts ...grpc.CallOption) (*SetGroupInfoResp, error) { out := new(SetGroupInfoResp) - err := grpc.Invoke(ctx, "/group.group/setGroupInfo", in, out, c.cc, opts...) + err := c.cc.Invoke(ctx, "/group.group/setGroupInfo", in, out, opts...) if err != nil { return nil, err } @@ -1838,7 +3286,7 @@ func (c *groupClient) SetGroupInfo(ctx context.Context, in *SetGroupInfoReq, opt func (c *groupClient) GetGroupApplicationList(ctx context.Context, in *GetGroupApplicationListReq, opts ...grpc.CallOption) (*GetGroupApplicationListResp, error) { out := new(GetGroupApplicationListResp) - err := grpc.Invoke(ctx, "/group.group/getGroupApplicationList", in, out, c.cc, opts...) + err := c.cc.Invoke(ctx, "/group.group/getGroupApplicationList", in, out, opts...) if err != nil { return nil, err } @@ -1847,7 +3295,7 @@ func (c *groupClient) GetGroupApplicationList(ctx context.Context, in *GetGroupA func (c *groupClient) TransferGroupOwner(ctx context.Context, in *TransferGroupOwnerReq, opts ...grpc.CallOption) (*TransferGroupOwnerResp, error) { out := new(TransferGroupOwnerResp) - err := grpc.Invoke(ctx, "/group.group/transferGroupOwner", in, out, c.cc, opts...) + err := c.cc.Invoke(ctx, "/group.group/transferGroupOwner", in, out, opts...) if err != nil { return nil, err } @@ -1856,7 +3304,7 @@ func (c *groupClient) TransferGroupOwner(ctx context.Context, in *TransferGroupO func (c *groupClient) GroupApplicationResponse(ctx context.Context, in *GroupApplicationResponseReq, opts ...grpc.CallOption) (*GroupApplicationResponseResp, error) { out := new(GroupApplicationResponseResp) - err := grpc.Invoke(ctx, "/group.group/groupApplicationResponse", in, out, c.cc, opts...) + err := c.cc.Invoke(ctx, "/group.group/groupApplicationResponse", in, out, opts...) if err != nil { return nil, err } @@ -1865,7 +3313,7 @@ func (c *groupClient) GroupApplicationResponse(ctx context.Context, in *GroupApp func (c *groupClient) GetGroupMemberList(ctx context.Context, in *GetGroupMemberListReq, opts ...grpc.CallOption) (*GetGroupMemberListResp, error) { out := new(GetGroupMemberListResp) - err := grpc.Invoke(ctx, "/group.group/getGroupMemberList", in, out, c.cc, opts...) + err := c.cc.Invoke(ctx, "/group.group/getGroupMemberList", in, out, opts...) if err != nil { return nil, err } @@ -1874,7 +3322,7 @@ func (c *groupClient) GetGroupMemberList(ctx context.Context, in *GetGroupMember func (c *groupClient) GetGroupMembersInfo(ctx context.Context, in *GetGroupMembersInfoReq, opts ...grpc.CallOption) (*GetGroupMembersInfoResp, error) { out := new(GetGroupMembersInfoResp) - err := grpc.Invoke(ctx, "/group.group/getGroupMembersInfo", in, out, c.cc, opts...) + err := c.cc.Invoke(ctx, "/group.group/getGroupMembersInfo", in, out, opts...) if err != nil { return nil, err } @@ -1883,7 +3331,7 @@ func (c *groupClient) GetGroupMembersInfo(ctx context.Context, in *GetGroupMembe func (c *groupClient) KickGroupMember(ctx context.Context, in *KickGroupMemberReq, opts ...grpc.CallOption) (*KickGroupMemberResp, error) { out := new(KickGroupMemberResp) - err := grpc.Invoke(ctx, "/group.group/kickGroupMember", in, out, c.cc, opts...) + err := c.cc.Invoke(ctx, "/group.group/kickGroupMember", in, out, opts...) if err != nil { return nil, err } @@ -1892,7 +3340,7 @@ func (c *groupClient) KickGroupMember(ctx context.Context, in *KickGroupMemberRe func (c *groupClient) GetJoinedGroupList(ctx context.Context, in *GetJoinedGroupListReq, opts ...grpc.CallOption) (*GetJoinedGroupListResp, error) { out := new(GetJoinedGroupListResp) - err := grpc.Invoke(ctx, "/group.group/getJoinedGroupList", in, out, c.cc, opts...) + err := c.cc.Invoke(ctx, "/group.group/getJoinedGroupList", in, out, opts...) if err != nil { return nil, err } @@ -1901,7 +3349,7 @@ func (c *groupClient) GetJoinedGroupList(ctx context.Context, in *GetJoinedGroup func (c *groupClient) InviteUserToGroup(ctx context.Context, in *InviteUserToGroupReq, opts ...grpc.CallOption) (*InviteUserToGroupResp, error) { out := new(InviteUserToGroupResp) - err := grpc.Invoke(ctx, "/group.group/inviteUserToGroup", in, out, c.cc, opts...) + err := c.cc.Invoke(ctx, "/group.group/inviteUserToGroup", in, out, opts...) if err != nil { return nil, err } @@ -1910,15 +3358,32 @@ func (c *groupClient) InviteUserToGroup(ctx context.Context, in *InviteUserToGro func (c *groupClient) GetGroupAllMember(ctx context.Context, in *GetGroupAllMemberReq, opts ...grpc.CallOption) (*GetGroupAllMemberResp, error) { out := new(GetGroupAllMemberResp) - err := grpc.Invoke(ctx, "/group.group/getGroupAllMember", in, out, c.cc, opts...) + err := c.cc.Invoke(ctx, "/group.group/getGroupAllMember", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *groupClient) GetGroup(ctx context.Context, in *GetGroupReq, opts ...grpc.CallOption) (*GetGroupsResp, error) { + out := new(GetGroupsResp) + err := c.cc.Invoke(ctx, "/group.group/GetGroup", in, out, opts...) if err != nil { return nil, err } return out, nil } -// Server API for Group service +func (c *groupClient) GetGroups(ctx context.Context, in *GetGroupsReq, opts ...grpc.CallOption) (*GetGroupsResp, error) { + out := new(GetGroupsResp) + err := c.cc.Invoke(ctx, "/group.group/GetGroups", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} +// GroupServer is the server API for Group service. type GroupServer interface { CreateGroup(context.Context, *CreateGroupReq) (*CreateGroupResp, error) JoinGroup(context.Context, *JoinGroupReq) (*JoinGroupResp, error) @@ -1934,6 +3399,61 @@ type GroupServer interface { GetJoinedGroupList(context.Context, *GetJoinedGroupListReq) (*GetJoinedGroupListResp, error) InviteUserToGroup(context.Context, *InviteUserToGroupReq) (*InviteUserToGroupResp, error) GetGroupAllMember(context.Context, *GetGroupAllMemberReq) (*GetGroupAllMemberResp, error) + GetGroup(context.Context, *GetGroupReq) (*GetGroupsResp, error) + GetGroups(context.Context, *GetGroupsReq) (*GetGroupsResp, error) +} + +// UnimplementedGroupServer can be embedded to have forward compatible implementations. +type UnimplementedGroupServer struct { +} + +func (*UnimplementedGroupServer) CreateGroup(context.Context, *CreateGroupReq) (*CreateGroupResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method CreateGroup not implemented") +} +func (*UnimplementedGroupServer) JoinGroup(context.Context, *JoinGroupReq) (*JoinGroupResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method JoinGroup not implemented") +} +func (*UnimplementedGroupServer) QuitGroup(context.Context, *QuitGroupReq) (*QuitGroupResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method QuitGroup not implemented") +} +func (*UnimplementedGroupServer) GetGroupsInfo(context.Context, *GetGroupsInfoReq) (*GetGroupsInfoResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetGroupsInfo not implemented") +} +func (*UnimplementedGroupServer) SetGroupInfo(context.Context, *SetGroupInfoReq) (*SetGroupInfoResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method SetGroupInfo not implemented") +} +func (*UnimplementedGroupServer) GetGroupApplicationList(context.Context, *GetGroupApplicationListReq) (*GetGroupApplicationListResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetGroupApplicationList not implemented") +} +func (*UnimplementedGroupServer) TransferGroupOwner(context.Context, *TransferGroupOwnerReq) (*TransferGroupOwnerResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method TransferGroupOwner not implemented") +} +func (*UnimplementedGroupServer) GroupApplicationResponse(context.Context, *GroupApplicationResponseReq) (*GroupApplicationResponseResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method GroupApplicationResponse not implemented") +} +func (*UnimplementedGroupServer) GetGroupMemberList(context.Context, *GetGroupMemberListReq) (*GetGroupMemberListResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetGroupMemberList not implemented") +} +func (*UnimplementedGroupServer) GetGroupMembersInfo(context.Context, *GetGroupMembersInfoReq) (*GetGroupMembersInfoResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetGroupMembersInfo not implemented") +} +func (*UnimplementedGroupServer) KickGroupMember(context.Context, *KickGroupMemberReq) (*KickGroupMemberResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method KickGroupMember not implemented") +} +func (*UnimplementedGroupServer) GetJoinedGroupList(context.Context, *GetJoinedGroupListReq) (*GetJoinedGroupListResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetJoinedGroupList not implemented") +} +func (*UnimplementedGroupServer) InviteUserToGroup(context.Context, *InviteUserToGroupReq) (*InviteUserToGroupResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method InviteUserToGroup not implemented") +} +func (*UnimplementedGroupServer) GetGroupAllMember(context.Context, *GetGroupAllMemberReq) (*GetGroupAllMemberResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetGroupAllMember not implemented") +} +func (*UnimplementedGroupServer) GetGroup(context.Context, *GetGroupReq) (*GetGroupsResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetGroup not implemented") +} +func (*UnimplementedGroupServer) GetGroups(context.Context, *GetGroupsReq) (*GetGroupsResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetGroups not implemented") } func RegisterGroupServer(s *grpc.Server, srv GroupServer) { @@ -2192,6 +3712,42 @@ func _Group_GetGroupAllMember_Handler(srv interface{}, ctx context.Context, dec return interceptor(ctx, in, info, handler) } +func _Group_GetGroup_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetGroupReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(GroupServer).GetGroup(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/group.group/GetGroup", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(GroupServer).GetGroup(ctx, req.(*GetGroupReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _Group_GetGroups_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetGroupsReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(GroupServer).GetGroups(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/group.group/GetGroups", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(GroupServer).GetGroups(ctx, req.(*GetGroupsReq)) + } + return interceptor(ctx, in, info, handler) +} + var _Group_serviceDesc = grpc.ServiceDesc{ ServiceName: "group.group", HandlerType: (*GroupServer)(nil), @@ -2252,91 +3808,15 @@ var _Group_serviceDesc = grpc.ServiceDesc{ MethodName: "getGroupAllMember", Handler: _Group_GetGroupAllMember_Handler, }, + { + MethodName: "GetGroup", + Handler: _Group_GetGroup_Handler, + }, + { + MethodName: "GetGroups", + Handler: _Group_GetGroups_Handler, + }, }, Streams: []grpc.StreamDesc{}, Metadata: "group/group.proto", } - -func init() { proto.RegisterFile("group/group.proto", fileDescriptor_group_a130b5186d308ee6) } - -var fileDescriptor_group_a130b5186d308ee6 = []byte{ - // 1246 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x58, 0x4b, 0x6f, 0x23, 0xc5, - 0x13, 0x57, 0xc7, 0x71, 0x76, 0x5d, 0x89, 0xf3, 0xe8, 0xbc, 0xfc, 0x9f, 0xf5, 0x3f, 0x64, 0x1b, - 0x69, 0x15, 0x21, 0x64, 0x8b, 0x20, 0xed, 0x81, 0x45, 0xa0, 0x38, 0x8f, 0x5d, 0x6f, 0x36, 0x89, - 0x32, 0x1b, 0x2e, 0x5c, 0x82, 0x37, 0xd3, 0x19, 0x0d, 0x19, 0xcf, 0x8c, 0xa7, 0xc7, 0x09, 0xe2, - 0xb2, 0xe2, 0xb2, 0x12, 0xe2, 0x02, 0xe2, 0xca, 0x85, 0x3b, 0x07, 0x0e, 0x9c, 0xb8, 0xf0, 0x39, - 0xf8, 0x14, 0x7c, 0x05, 0x34, 0xdd, 0x3d, 0xe3, 0x9e, 0x67, 0xb2, 0xb6, 0xc4, 0x5e, 0x2c, 0x75, - 0x55, 0xf5, 0xd4, 0xfb, 0x57, 0xd5, 0x86, 0x25, 0xd3, 0x77, 0x87, 0x5e, 0x9b, 0xff, 0xb6, 0x3c, - 0xdf, 0x0d, 0x5c, 0x5c, 0xe5, 0x07, 0xed, 0xe1, 0x89, 0x47, 0x9d, 0xf3, 0xee, 0x51, 0xdb, 0xbb, - 0x32, 0xdb, 0x9c, 0xd3, 0x66, 0xc6, 0xd5, 0xf9, 0x0d, 0x6b, 0xdf, 0x30, 0x21, 0x49, 0x3e, 0x03, - 0xd8, 0x75, 0xfb, 0x7d, 0xd7, 0xd1, 0x29, 0xf3, 0x70, 0x03, 0xee, 0xed, 0xfb, 0xfe, 0xae, 0x6b, - 0xd0, 0x06, 0xda, 0x44, 0x5b, 0x55, 0x3d, 0x3a, 0xe2, 0x35, 0x98, 0xd9, 0xf7, 0xfd, 0x23, 0x66, - 0x36, 0xa6, 0x36, 0xd1, 0x56, 0x4d, 0x97, 0x27, 0xf2, 0x1c, 0xf0, 0xd3, 0x50, 0xd7, 0x8e, 0x61, - 0x1c, 0xd1, 0xfe, 0x2b, 0xea, 0x77, 0x9d, 0x4b, 0x37, 0x94, 0xfe, 0x82, 0x51, 0xbf, 0xbb, 0xc7, - 0x3f, 0x53, 0xd3, 0xe5, 0x09, 0x37, 0xa1, 0xa6, 0xbb, 0x36, 0x7d, 0x41, 0xaf, 0xa9, 0xcd, 0x3f, - 0x54, 0xd5, 0x47, 0x04, 0xf2, 0x0f, 0x82, 0xf9, 0x5d, 0x9f, 0xf6, 0x02, 0xca, 0x3f, 0xa9, 0xd3, - 0x01, 0xde, 0x81, 0xf9, 0xae, 0x63, 0x05, 0xe2, 0xd3, 0x2f, 0x2c, 0x16, 0x34, 0xd0, 0x66, 0x65, - 0x6b, 0x76, 0xfb, 0x7f, 0x2d, 0xe1, 0x6e, 0x56, 0xb7, 0x9e, 0xba, 0x80, 0x3f, 0x81, 0x1a, 0x97, - 0x0a, 0x99, 0x5c, 0xe7, 0xec, 0x76, 0xb3, 0xc5, 0xa8, 0x7f, 0x4d, 0xfd, 0xf3, 0x9e, 0x67, 0x9d, - 0x7b, 0x3d, 0xbf, 0xd7, 0x67, 0xad, 0x58, 0x46, 0x1f, 0x89, 0xe3, 0x4d, 0x98, 0x3d, 0xf1, 0xa8, - 0xdf, 0x0b, 0x2c, 0xd7, 0xe9, 0xee, 0x35, 0x2a, 0xdc, 0x19, 0x95, 0x84, 0x35, 0xb8, 0x7f, 0xe2, - 0x49, 0x5f, 0xa7, 0x39, 0x3b, 0x3e, 0xf3, 0xdb, 0x37, 0x0e, 0xf5, 0x25, 0xbb, 0x2a, 0x6f, 0x8f, - 0x48, 0xe4, 0x35, 0x2c, 0x24, 0x1c, 0x1e, 0x27, 0x05, 0x49, 0x07, 0x2b, 0x6f, 0xe5, 0x20, 0xf1, - 0x61, 0xf1, 0x29, 0x0d, 0xf8, 0x99, 0x71, 0x1e, 0x1d, 0x84, 0x66, 0x0b, 0x81, 0xbd, 0x38, 0xe0, - 0x35, 0x5d, 0x25, 0xa5, 0xc3, 0x32, 0x55, 0x1e, 0x96, 0x4a, 0x32, 0x2c, 0xe4, 0x7b, 0x04, 0x4b, - 0x29, 0xa5, 0x63, 0xf9, 0xdd, 0x81, 0x7a, 0xec, 0x08, 0xb7, 0xb4, 0xc2, 0x4b, 0xa3, 0xdc, 0xf7, - 0xe4, 0x15, 0xf2, 0x03, 0x82, 0x85, 0x97, 0xd2, 0x96, 0xc8, 0xff, 0x44, 0x3c, 0xd1, 0xdb, 0x15, - 0x8c, 0xea, 0xf7, 0x54, 0x4e, 0x39, 0x94, 0x16, 0x13, 0xd9, 0x87, 0xc5, 0xa4, 0x31, 0xcc, 0xc3, - 0x1f, 0xa9, 0x0d, 0x2a, 0xcd, 0x59, 0x92, 0xd5, 0x3f, 0x62, 0xe8, 0x8a, 0x10, 0xf9, 0x16, 0xb4, - 0x28, 0xbe, 0x3b, 0x9e, 0x67, 0x5b, 0x17, 0xfc, 0xfb, 0xa1, 0xbf, 0xa1, 0x7b, 0xaa, 0x89, 0xa8, - 0xdc, 0xc4, 0x9c, 0xc4, 0x6e, 0x00, 0x1c, 0xf8, 0x6e, 0x3f, 0x91, 0x5a, 0x85, 0x42, 0x7e, 0x41, - 0xf0, 0xa0, 0x50, 0xf9, 0x58, 0x69, 0x3e, 0x84, 0xc5, 0x08, 0x0e, 0x86, 0x94, 0x05, 0x4a, 0xa6, - 0xdf, 0x2b, 0xca, 0x8a, 0x14, 0xd5, 0x33, 0x17, 0xc9, 0x5f, 0x08, 0x56, 0xcf, 0xfc, 0x9e, 0xc3, - 0x2e, 0xa9, 0xcf, 0x99, 0xbc, 0x1b, 0xc3, 0xb0, 0x34, 0xe0, 0x9e, 0x2c, 0x71, 0x19, 0x95, 0xe8, - 0x88, 0x1f, 0xc1, 0xfc, 0x89, 0x6d, 0xa8, 0x9d, 0x2c, 0x0c, 0x4c, 0x51, 0x43, 0xb9, 0x63, 0x7a, - 0xa3, 0xca, 0x89, 0xf0, 0xa4, 0xa8, 0xe9, 0x20, 0x4f, 0x97, 0x77, 0x4f, 0x35, 0xd5, 0x3d, 0x87, - 0xb0, 0x96, 0xe7, 0xc0, 0x78, 0x95, 0xf2, 0x06, 0xc1, 0xdc, 0x73, 0xd7, 0x72, 0x62, 0xbc, 0x2d, - 0x8e, 0xc2, 0x06, 0x80, 0x4e, 0x07, 0x47, 0x94, 0xb1, 0x9e, 0x49, 0x65, 0x04, 0x14, 0x4a, 0x59, - 0xc7, 0xdf, 0xee, 0x31, 0xe9, 0x40, 0x5d, 0xb1, 0x63, 0x3c, 0x67, 0xfe, 0x0e, 0x4b, 0x2f, 0x55, - 0x77, 0x21, 0xc3, 0x75, 0x18, 0x95, 0xb8, 0xa6, 0x5a, 0x81, 0xca, 0xe3, 0x9e, 0xee, 0x5e, 0x25, - 0x32, 0x95, 0x4c, 0x64, 0x94, 0x96, 0x98, 0x4e, 0xb7, 0x44, 0xc8, 0x7f, 0xd6, 0x73, 0x0c, 0x9b, - 0x1a, 0x61, 0x71, 0x8b, 0x7c, 0x2a, 0x14, 0x4c, 0x60, 0x4e, 0x9c, 0x74, 0xca, 0x86, 0x76, 0xd0, - 0x98, 0xe1, 0x7d, 0x91, 0xa0, 0x91, 0x53, 0x68, 0x16, 0xbb, 0x36, 0x5e, 0xb8, 0x2e, 0x61, 0xee, - 0x74, 0x68, 0x05, 0x77, 0x48, 0xfd, 0x64, 0x70, 0xdf, 0x81, 0xba, 0xa2, 0x67, 0x3c, 0x5b, 0x7f, - 0x45, 0xb0, 0x1a, 0xa1, 0xca, 0x68, 0xb4, 0x97, 0x5b, 0x3d, 0x11, 0x14, 0x87, 0x68, 0x74, 0x60, - 0xd9, 0x01, 0xf5, 0x79, 0x42, 0xab, 0xba, 0x3c, 0x85, 0xfa, 0x8e, 0xe9, 0x37, 0xc1, 0x4b, 0x3a, - 0xe0, 0x99, 0xac, 0xea, 0xd1, 0x91, 0xfc, 0x86, 0x60, 0x2d, 0xcf, 0xc6, 0xb1, 0x40, 0xef, 0x00, - 0xa0, 0x3f, 0xda, 0x79, 0x04, 0xdc, 0x3d, 0x2a, 0x82, 0x3b, 0xa1, 0xed, 0x60, 0x68, 0xdb, 0x7c, - 0x6a, 0x28, 0x37, 0x43, 0xcd, 0x8e, 0x34, 0x57, 0xf8, 0x11, 0x1d, 0xc9, 0x8f, 0x19, 0x73, 0xe3, - 0x05, 0xa0, 0x14, 0x04, 0x14, 0xb3, 0xa6, 0xf8, 0x66, 0xa0, 0xaa, 0x9b, 0x0c, 0x04, 0x7e, 0x46, - 0xb0, 0x9e, 0x6b, 0xd2, 0xbb, 0x0c, 0x21, 0xf9, 0x1d, 0x01, 0x3e, 0xb4, 0x2e, 0xae, 0x14, 0xb9, - 0xf2, 0x20, 0x7d, 0x00, 0x8b, 0xa1, 0x3c, 0x35, 0x84, 0xe3, 0x4a, 0xa8, 0x32, 0xf4, 0xd0, 0x78, - 0x9d, 0xf6, 0x98, 0xeb, 0xc8, 0x70, 0xc9, 0x53, 0x3a, 0x58, 0xd5, 0xf2, 0x96, 0x9b, 0x49, 0xb5, - 0xdc, 0x13, 0xa8, 0x75, 0x8d, 0x6d, 0x01, 0x1d, 0x85, 0xbb, 0x38, 0x57, 0xcd, 0x01, 0x47, 0x2c, - 0xe2, 0xf2, 0x44, 0x5e, 0xc3, 0x72, 0xc6, 0xdd, 0xb1, 0x12, 0xf0, 0x18, 0xea, 0xb1, 0x15, 0x4a, - 0x0e, 0x16, 0x65, 0xab, 0xc7, 0x3c, 0x3d, 0x29, 0x46, 0x86, 0xbc, 0xd7, 0xc3, 0x71, 0x40, 0x0d, - 0x6e, 0x45, 0xd4, 0xeb, 0x49, 0xa0, 0x45, 0x19, 0xa0, 0xdd, 0x84, 0x59, 0x37, 0x8b, 0x53, 0xee, - 0x1d, 0x71, 0xea, 0x8d, 0x68, 0x88, 0x8c, 0xde, 0x89, 0x76, 0xf2, 0x3b, 0xef, 0xa5, 0x23, 0x71, - 0xf2, 0x07, 0x82, 0x95, 0xae, 0x73, 0x6d, 0x05, 0x34, 0xb4, 0xec, 0xcc, 0x8d, 0x11, 0xfa, 0x76, - 0x1c, 0x2e, 0x1e, 0x52, 0xa3, 0x42, 0x9b, 0x4e, 0x14, 0xda, 0x87, 0xb0, 0x24, 0x74, 0xa9, 0xd5, - 0x5a, 0xe5, 0xd5, 0x9a, 0x65, 0x94, 0x16, 0xdd, 0x77, 0x08, 0x56, 0x73, 0xcc, 0xfe, 0x4f, 0x4b, - 0xc7, 0x81, 0x95, 0x78, 0xf9, 0xb4, 0xed, 0xbb, 0x34, 0xeb, 0x64, 0x0b, 0xfb, 0x4f, 0xca, 0x5c, - 0x52, 0x14, 0xbe, 0x4b, 0xbc, 0xda, 0xfe, 0xf3, 0x3e, 0x88, 0xe7, 0x3f, 0xfe, 0x14, 0x66, 0x2f, - 0x46, 0xaf, 0x4b, 0xbc, 0x1a, 0xcd, 0xd8, 0xc4, 0x13, 0x5b, 0x5b, 0xcb, 0x23, 0x33, 0x0f, 0x3f, - 0x86, 0xda, 0xd7, 0xd1, 0x4a, 0x86, 0x97, 0xa5, 0x90, 0xba, 0x2c, 0x6a, 0x2b, 0x59, 0xa2, 0xb8, - 0x37, 0x88, 0xe6, 0x7d, 0x7c, 0x4f, 0xdd, 0x34, 0xe2, 0x7b, 0xc9, 0xb5, 0xa0, 0x03, 0x75, 0x53, - 0x7d, 0x15, 0xe2, 0xf5, 0xe8, 0x8d, 0x9f, 0x7a, 0xa0, 0x6a, 0x8d, 0x7c, 0x06, 0xf3, 0xf0, 0xe7, - 0x30, 0xc7, 0x94, 0x07, 0x14, 0x8e, 0x7c, 0x4b, 0x3d, 0xf1, 0xb4, 0xf5, 0x5c, 0x3a, 0xf3, 0xf0, - 0x57, 0xb0, 0x6e, 0xe6, 0xbf, 0x5e, 0xf0, 0xc3, 0x94, 0xd6, 0xec, 0xd3, 0x4a, 0x23, 0xb7, 0x89, - 0x30, 0x0f, 0x9f, 0x02, 0x0e, 0x32, 0xfb, 0x3b, 0x6e, 0xca, 0x9b, 0xb9, 0x6f, 0x13, 0xed, 0xff, - 0x25, 0x5c, 0xe6, 0xe1, 0x0b, 0x68, 0x98, 0x05, 0xcb, 0x21, 0x26, 0x89, 0x3f, 0x4a, 0x72, 0x17, - 0x63, 0xed, 0xfd, 0x5b, 0x65, 0x84, 0xdd, 0x66, 0x66, 0xbb, 0x89, 0xed, 0xce, 0x5d, 0xce, 0x62, - 0xbb, 0x0b, 0xd6, 0xa2, 0x33, 0x58, 0x36, 0xb3, 0xe3, 0x1e, 0xe7, 0xdf, 0x8a, 0xb3, 0xbf, 0x51, - 0xc6, 0x66, 0x1e, 0x7e, 0x06, 0x0b, 0x57, 0xc9, 0xf9, 0x85, 0xa3, 0x7f, 0x8b, 0xb2, 0x63, 0x5c, - 0xd3, 0x8a, 0x58, 0xb1, 0xcb, 0xa9, 0x81, 0xa0, 0xba, 0x9c, 0x9d, 0x51, 0xaa, 0xcb, 0x79, 0x93, - 0xe4, 0x18, 0x96, 0xac, 0x34, 0x46, 0xe2, 0x07, 0x11, 0xac, 0xe5, 0x80, 0xbe, 0xd6, 0x2c, 0x66, - 0x8a, 0xef, 0x99, 0x69, 0xfc, 0x89, 0xbf, 0x97, 0x07, 0x85, 0x5a, 0xb3, 0x98, 0xc9, 0xbc, 0xce, - 0xc2, 0x97, 0xf5, 0x96, 0xf8, 0x27, 0xf1, 0x09, 0xff, 0x7d, 0x35, 0xc3, 0xff, 0x26, 0xfc, 0xf8, - 0xdf, 0x00, 0x00, 0x00, 0xff, 0xff, 0xf6, 0x24, 0x19, 0x44, 0x65, 0x14, 0x00, 0x00, -} diff --git a/pkg/proto/group/group.proto b/pkg/proto/group/group.proto index 6ba7c52ba..f7a9934e2 100644 --- a/pkg/proto/group/group.proto +++ b/pkg/proto/group/group.proto @@ -195,6 +195,28 @@ message GetGroupAllMemberResp { repeated server_api_params.GroupMemberFullInfo memberList = 3; } +message GetGroupReq { + string GroupName = 1; + string OperationID = 2; +} + +message GetGroupResp { + server_api_params.GroupInfo GroupInfo = 1; +} + +message GetGroupsReq { + server_api_params.RequestPagination Pagination =1; + string OperationID = 2; +} + +message GetGroupsResp { + repeated server_api_params.GroupInfo GroupInfo = 1; +} + +message GetGroupMemberReq { + string GroupId = 1; + string OperationID = 2; +} service group{ @@ -212,6 +234,10 @@ service group{ rpc getJoinedGroupList(GetJoinedGroupListReq) returns (GetJoinedGroupListResp); rpc inviteUserToGroup(InviteUserToGroupReq) returns (InviteUserToGroupResp); rpc getGroupAllMember(GetGroupAllMemberReq) returns(GetGroupAllMemberResp); + + + rpc GetGroup(GetGroupReq) returns(GetGroupsResp); + rpc GetGroups(GetGroupsReq) returns(GetGroupsResp); } diff --git a/pkg/proto/proto_dir.cfg b/pkg/proto/proto_dir.cfg index 70472ac8d..a9e94b499 100644 --- a/pkg/proto/proto_dir.cfg +++ b/pkg/proto/proto_dir.cfg @@ -2,8 +2,8 @@ all_proto=( # auth/auth.proto # friend/friend.proto - # group/group.proto - user/user.proto + group/group.proto + # user/user.proto # chat/chat.proto # push/push.proto # relay/relay.proto diff --git a/pkg/proto/sdk_ws/ws.pb.go b/pkg/proto/sdk_ws/ws.pb.go index 3245b33ee..bd442452e 100644 --- a/pkg/proto/sdk_ws/ws.pb.go +++ b/pkg/proto/sdk_ws/ws.pb.go @@ -2839,6 +2839,61 @@ func (x *RequestPagination) GetShowNumber() int32 { return 0 } +type ResponsePagination struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + CurrentPage int32 `protobuf:"varint,5,opt,name=CurrentPage,proto3" json:"CurrentPage,omitempty"` + ShowNumber int32 `protobuf:"varint,6,opt,name=showNumber,proto3" json:"showNumber,omitempty"` +} + +func (x *ResponsePagination) Reset() { + *x = ResponsePagination{} + if protoimpl.UnsafeEnabled { + mi := &file_sdk_ws_ws_proto_msgTypes[38] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ResponsePagination) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ResponsePagination) ProtoMessage() {} + +func (x *ResponsePagination) ProtoReflect() protoreflect.Message { + mi := &file_sdk_ws_ws_proto_msgTypes[38] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ResponsePagination.ProtoReflect.Descriptor instead. +func (*ResponsePagination) Descriptor() ([]byte, []int) { + return file_sdk_ws_ws_proto_rawDescGZIP(), []int{38} +} + +func (x *ResponsePagination) GetCurrentPage() int32 { + if x != nil { + return x.CurrentPage + } + return 0 +} + +func (x *ResponsePagination) GetShowNumber() int32 { + if x != nil { + return x.ShowNumber + } + return 0 +} + var File_sdk_ws_ws_proto protoreflect.FileDescriptor var file_sdk_ws_ws_proto_rawDesc = []byte{ @@ -3292,10 +3347,15 @@ var file_sdk_ws_ws_proto_rawDesc = []byte{ 0x70, 0x61, 0x67, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x70, 0x61, 0x67, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x68, 0x6f, 0x77, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x0a, 0x73, 0x68, 0x6f, 0x77, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x42, 0x1c, 0x5a, 0x1a, - 0x2e, 0x2f, 0x73, 0x64, 0x6b, 0x5f, 0x77, 0x73, 0x3b, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, - 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x33, + 0x52, 0x0a, 0x73, 0x68, 0x6f, 0x77, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x22, 0x56, 0x0a, 0x12, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x12, 0x20, 0x0a, 0x0b, 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x67, + 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, + 0x50, 0x61, 0x67, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x68, 0x6f, 0x77, 0x4e, 0x75, 0x6d, 0x62, + 0x65, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x73, 0x68, 0x6f, 0x77, 0x4e, 0x75, + 0x6d, 0x62, 0x65, 0x72, 0x42, 0x1c, 0x5a, 0x1a, 0x2e, 0x2f, 0x73, 0x64, 0x6b, 0x5f, 0x77, 0x73, + 0x3b, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, + 0x6d, 0x73, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -3310,7 +3370,7 @@ func file_sdk_ws_ws_proto_rawDescGZIP() []byte { return file_sdk_ws_ws_proto_rawDescData } -var file_sdk_ws_ws_proto_msgTypes = make([]protoimpl.MessageInfo, 39) +var file_sdk_ws_ws_proto_msgTypes = make([]protoimpl.MessageInfo, 40) var file_sdk_ws_ws_proto_goTypes = []interface{}{ (*GroupInfo)(nil), // 0: server_api_params.GroupInfo (*GroupMemberFullInfo)(nil), // 1: server_api_params.GroupMemberFullInfo @@ -3350,7 +3410,8 @@ var file_sdk_ws_ws_proto_goTypes = []interface{}{ (*FriendInfoChangedTips)(nil), // 35: server_api_params.FriendInfoChangedTips (*UserInfoUpdatedTips)(nil), // 36: server_api_params.UserInfoUpdatedTips (*RequestPagination)(nil), // 37: server_api_params.RequestPagination - nil, // 38: server_api_params.MsgData.OptionsEntry + (*ResponsePagination)(nil), // 38: server_api_params.ResponsePagination + nil, // 39: server_api_params.MsgData.OptionsEntry } var file_sdk_ws_ws_proto_depIdxs = []int32{ 3, // 0: server_api_params.FriendInfo.friendUser:type_name -> server_api_params.UserInfo @@ -3358,7 +3419,7 @@ var file_sdk_ws_ws_proto_depIdxs = []int32{ 2, // 2: server_api_params.GroupRequest.userInfo:type_name -> server_api_params.PublicUserInfo 0, // 3: server_api_params.GroupRequest.groupInfo:type_name -> server_api_params.GroupInfo 13, // 4: server_api_params.PullMessageBySeqListResp.list:type_name -> server_api_params.MsgData - 38, // 5: server_api_params.MsgData.options:type_name -> server_api_params.MsgData.OptionsEntry + 39, // 5: server_api_params.MsgData.options:type_name -> server_api_params.MsgData.OptionsEntry 14, // 6: server_api_params.MsgData.offlinePushInfo:type_name -> server_api_params.OfflinePushInfo 0, // 7: server_api_params.GroupCreatedTips.group:type_name -> server_api_params.GroupInfo 1, // 8: server_api_params.GroupCreatedTips.opUser:type_name -> server_api_params.GroupMemberFullInfo @@ -3863,6 +3924,18 @@ func file_sdk_ws_ws_proto_init() { return nil } } + file_sdk_ws_ws_proto_msgTypes[38].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ResponsePagination); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } } type x struct{} out := protoimpl.TypeBuilder{ @@ -3870,7 +3943,7 @@ func file_sdk_ws_ws_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_sdk_ws_ws_proto_rawDesc, NumEnums: 0, - NumMessages: 39, + NumMessages: 40, NumExtensions: 0, NumServices: 0, }, diff --git a/pkg/proto/sdk_ws/ws.proto b/pkg/proto/sdk_ws/ws.proto index 4d1a646b3..4caccf381 100644 --- a/pkg/proto/sdk_ws/ws.proto +++ b/pkg/proto/sdk_ws/ws.proto @@ -336,4 +336,9 @@ message UserInfoUpdatedTips{ message RequestPagination { int32 pageNumber = 1; int32 showNumber = 2; +} + +message ResponsePagination { + int32 CurrentPage = 5; + int32 showNumber = 6; } \ No newline at end of file diff --git a/pkg/proto/user/user.pb.go b/pkg/proto/user/user.pb.go index 4efc81178..1dfc2528d 100644 --- a/pkg/proto/user/user.pb.go +++ b/pkg/proto/user/user.pb.go @@ -1253,6 +1253,7 @@ type User struct { Nickname string `protobuf:"bytes,2,opt,name=Nickname,proto3" json:"Nickname,omitempty"` UserId string `protobuf:"bytes,3,opt,name=UserId,proto3" json:"UserId,omitempty"` CreateTime string `protobuf:"bytes,4,opt,name=CreateTime,proto3" json:"CreateTime,omitempty"` + IsBlock bool `protobuf:"varint,5,opt,name=IsBlock,proto3" json:"IsBlock,omitempty"` } func (x *User) Reset() { @@ -1315,6 +1316,13 @@ func (x *User) GetCreateTime() string { return "" } +func (x *User) GetIsBlock() bool { + if x != nil { + return x.IsBlock + } + return false +} + type GetUserResp struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -1532,9 +1540,11 @@ type GetUsersResp struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - CommonResp *CommonResp `protobuf:"bytes,1,opt,name=CommonResp,proto3" json:"CommonResp,omitempty"` - OperationID string `protobuf:"bytes,2,opt,name=OperationID,proto3" json:"OperationID,omitempty"` - User []*User `protobuf:"bytes,3,rep,name=user,proto3" json:"user,omitempty"` + CommonResp *CommonResp `protobuf:"bytes,1,opt,name=CommonResp,proto3" json:"CommonResp,omitempty"` + OperationID string `protobuf:"bytes,2,opt,name=OperationID,proto3" json:"OperationID,omitempty"` + User []*User `protobuf:"bytes,3,rep,name=user,proto3" json:"user,omitempty"` + UserNum int32 `protobuf:"varint,4,opt,name=UserNum,proto3" json:"UserNum,omitempty"` + Pagination *sdk_ws.ResponsePagination `protobuf:"bytes,5,opt,name=Pagination,proto3" json:"Pagination,omitempty"` } func (x *GetUsersResp) Reset() { @@ -1590,6 +1600,20 @@ func (x *GetUsersResp) GetUser() []*User { return nil } +func (x *GetUsersResp) GetUserNum() int32 { + if x != nil { + return x.UserNum + } + return 0 +} + +func (x *GetUsersResp) GetPagination() *sdk_ws.ResponsePagination { + if x != nil { + return x.Pagination + } + return nil +} + type AddUserReq struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -1598,6 +1622,7 @@ type AddUserReq struct { OperationID string `protobuf:"bytes,1,opt,name=OperationID,proto3" json:"OperationID,omitempty"` PhoneNumber string `protobuf:"bytes,2,opt,name=PhoneNumber,proto3" json:"PhoneNumber,omitempty"` UserId string `protobuf:"bytes,3,opt,name=UserId,proto3" json:"UserId,omitempty"` + Name string `protobuf:"bytes,4,opt,name=name,proto3" json:"name,omitempty"` } func (x *AddUserReq) Reset() { @@ -1653,6 +1678,13 @@ func (x *AddUserReq) GetUserId() string { return "" } +func (x *AddUserReq) GetName() string { + if x != nil { + return x.Name + } + return "" +} + type AddUserResp struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -1705,7 +1737,7 @@ type BlockUserReq struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - UserID string `protobuf:"bytes,1,opt,name=UserID,proto3" json:"UserID,omitempty"` + UserId string `protobuf:"bytes,1,opt,name=UserId,proto3" json:"UserId,omitempty"` EndDisableTime string `protobuf:"bytes,2,opt,name=EndDisableTime,proto3" json:"EndDisableTime,omitempty"` OperationID string `protobuf:"bytes,3,opt,name=OperationID,proto3" json:"OperationID,omitempty"` } @@ -1742,9 +1774,9 @@ func (*BlockUserReq) Descriptor() ([]byte, []int) { return file_user_user_proto_rawDescGZIP(), []int{29} } -func (x *BlockUserReq) GetUserID() string { +func (x *BlockUserReq) GetUserId() string { if x != nil { - return x.UserID + return x.UserId } return "" } @@ -1815,7 +1847,7 @@ type UnBlockUserReq struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - UserID string `protobuf:"bytes,1,opt,name=UserID,proto3" json:"UserID,omitempty"` + UserId string `protobuf:"bytes,1,opt,name=UserId,proto3" json:"UserId,omitempty"` OperationID string `protobuf:"bytes,2,opt,name=OperationID,proto3" json:"OperationID,omitempty"` } @@ -1851,9 +1883,9 @@ func (*UnBlockUserReq) Descriptor() ([]byte, []int) { return file_user_user_proto_rawDescGZIP(), []int{31} } -func (x *UnBlockUserReq) GetUserID() string { +func (x *UnBlockUserReq) GetUserId() string { if x != nil { - return x.UserID + return x.UserId } return "" } @@ -1917,8 +1949,9 @@ type GetBlockUsersReq struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Pagination *sdk_ws.RequestPagination `protobuf:"bytes,1,opt,name=Pagination,proto3" json:"Pagination,omitempty"` - OperationID string `protobuf:"bytes,2,opt,name=OperationID,proto3" json:"OperationID,omitempty"` + Pagination *sdk_ws.RequestPagination `protobuf:"bytes,1,opt,name=Pagination,proto3" json:"Pagination,omitempty"` + OperationID string `protobuf:"bytes,2,opt,name=OperationID,proto3" json:"OperationID,omitempty"` + BlockUserNum int32 `protobuf:"varint,4,opt,name=BlockUserNum,proto3" json:"BlockUserNum,omitempty"` } func (x *GetBlockUsersReq) Reset() { @@ -1967,13 +2000,22 @@ func (x *GetBlockUsersReq) GetOperationID() string { return "" } +func (x *GetBlockUsersReq) GetBlockUserNum() int32 { + if x != nil { + return x.BlockUserNum + } + return 0 +} + type GetBlockUsersResp struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - CommonResp *CommonResp `protobuf:"bytes,1,opt,name=CommonResp,proto3" json:"CommonResp,omitempty"` - User []*User `protobuf:"bytes,2,rep,name=user,proto3" json:"user,omitempty"` + CommonResp *CommonResp `protobuf:"bytes,1,opt,name=CommonResp,proto3" json:"CommonResp,omitempty"` + User []*User `protobuf:"bytes,2,rep,name=user,proto3" json:"user,omitempty"` + Pagination *sdk_ws.ResponsePagination `protobuf:"bytes,3,opt,name=Pagination,proto3" json:"Pagination,omitempty"` + BlockUserNum int32 `protobuf:"varint,4,opt,name=BlockUserNum,proto3" json:"BlockUserNum,omitempty"` } func (x *GetBlockUsersResp) Reset() { @@ -2022,6 +2064,20 @@ func (x *GetBlockUsersResp) GetUser() []*User { return nil } +func (x *GetBlockUsersResp) GetPagination() *sdk_ws.ResponsePagination { + if x != nil { + return x.Pagination + } + return nil +} + +func (x *GetBlockUsersResp) GetBlockUserNum() int32 { + if x != nil { + return x.BlockUserNum + } + return 0 +} + type AccountCheckResp_SingleUserStatus struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -2242,59 +2298,68 @@ var file_user_user_proto_rawDesc = []byte{ 0x65, 0x71, 0x12, 0x16, 0x0a, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x22, 0x7e, 0x0a, 0x04, - 0x55, 0x73, 0x65, 0x72, 0x12, 0x22, 0x0a, 0x0c, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x50, - 0x68, 0x6f, 0x74, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x50, 0x72, 0x6f, 0x66, - 0x69, 0x6c, 0x65, 0x50, 0x68, 0x6f, 0x74, 0x6f, 0x12, 0x1a, 0x0a, 0x08, 0x4e, 0x69, 0x63, 0x6b, - 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x4e, 0x69, 0x63, 0x6b, - 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0a, - 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0a, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x22, 0x5f, 0x0a, 0x0b, - 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x12, 0x30, 0x0a, 0x0a, 0x43, - 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x10, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, - 0x70, 0x52, 0x0a, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x12, 0x1e, 0x0a, - 0x04, 0x75, 0x73, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x75, 0x73, - 0x65, 0x72, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x52, 0x04, 0x75, 0x73, 0x65, 0x72, 0x22, 0x48, 0x0a, - 0x0c, 0x41, 0x6c, 0x74, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x12, 0x16, 0x0a, - 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x55, - 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x4f, 0x70, 0x65, 0x72, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x22, 0x41, 0x0a, 0x0d, 0x41, 0x6c, 0x74, 0x65, 0x72, - 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x12, 0x30, 0x0a, 0x0a, 0x43, 0x6f, 0x6d, 0x6d, - 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x75, - 0x73, 0x65, 0x72, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x52, 0x0a, - 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0x75, 0x0a, 0x0b, 0x47, 0x65, - 0x74, 0x55, 0x73, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x70, 0x65, - 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, - 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x12, 0x44, 0x0a, 0x0a, 0x50, - 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x24, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, - 0x61, 0x6d, 0x73, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x50, 0x61, 0x67, 0x69, 0x6e, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0a, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x22, 0x82, 0x01, 0x0a, 0x0c, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x73, 0x52, 0x65, - 0x73, 0x70, 0x12, 0x30, 0x0a, 0x0a, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x43, 0x6f, - 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x52, 0x0a, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, - 0x52, 0x65, 0x73, 0x70, 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x04, 0x75, 0x73, 0x65, 0x72, 0x18, 0x03, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x55, 0x73, 0x65, 0x72, - 0x52, 0x04, 0x75, 0x73, 0x65, 0x72, 0x22, 0x68, 0x0a, 0x0a, 0x41, 0x64, 0x64, 0x55, 0x73, 0x65, - 0x72, 0x52, 0x65, 0x71, 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, + 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x22, 0x98, 0x01, 0x0a, + 0x04, 0x55, 0x73, 0x65, 0x72, 0x12, 0x22, 0x0a, 0x0c, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, + 0x50, 0x68, 0x6f, 0x74, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x50, 0x72, 0x6f, + 0x66, 0x69, 0x6c, 0x65, 0x50, 0x68, 0x6f, 0x74, 0x6f, 0x12, 0x1a, 0x0a, 0x08, 0x4e, 0x69, 0x63, + 0x6b, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x4e, 0x69, 0x63, + 0x6b, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x1e, 0x0a, + 0x0a, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0a, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x18, 0x0a, + 0x07, 0x49, 0x73, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, + 0x49, 0x73, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x22, 0x5f, 0x0a, 0x0b, 0x47, 0x65, 0x74, 0x55, 0x73, + 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x12, 0x30, 0x0a, 0x0a, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, + 0x52, 0x65, 0x73, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x75, 0x73, 0x65, + 0x72, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x52, 0x0a, 0x43, 0x6f, + 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x12, 0x1e, 0x0a, 0x04, 0x75, 0x73, 0x65, 0x72, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x55, 0x73, + 0x65, 0x72, 0x52, 0x04, 0x75, 0x73, 0x65, 0x72, 0x22, 0x48, 0x0a, 0x0c, 0x41, 0x6c, 0x74, 0x65, + 0x72, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x12, 0x16, 0x0a, 0x06, 0x55, 0x73, 0x65, 0x72, + 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, + 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x49, 0x44, 0x22, 0x41, 0x0a, 0x0d, 0x41, 0x6c, 0x74, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x52, + 0x65, 0x73, 0x70, 0x12, 0x30, 0x0a, 0x0a, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, + 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x43, + 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x52, 0x0a, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, + 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0x75, 0x0a, 0x0b, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, + 0x73, 0x52, 0x65, 0x71, 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x4e, - 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x50, 0x68, 0x6f, - 0x6e, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x55, 0x73, 0x65, 0x72, - 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, + 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x12, 0x44, 0x0a, 0x0a, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x73, 0x65, 0x72, + 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x52, 0x0a, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0xe3, 0x01, 0x0a, + 0x0c, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x12, 0x30, 0x0a, + 0x0a, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x10, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, + 0x65, 0x73, 0x70, 0x52, 0x0a, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x12, + 0x20, 0x0a, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, + 0x44, 0x12, 0x1e, 0x0a, 0x04, 0x75, 0x73, 0x65, 0x72, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x0a, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x52, 0x04, 0x75, 0x73, 0x65, + 0x72, 0x12, 0x18, 0x0a, 0x07, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x07, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x12, 0x45, 0x0a, 0x0a, 0x50, + 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x25, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, + 0x61, 0x6d, 0x73, 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x50, 0x61, 0x67, 0x69, + 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0a, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x22, 0x7c, 0x0a, 0x0a, 0x41, 0x64, 0x64, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, + 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, + 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x4e, 0x75, + 0x6d, 0x62, 0x65, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, + 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x3f, 0x0a, 0x0b, 0x41, 0x64, 0x64, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x12, 0x30, 0x0a, 0x0a, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x52, 0x0a, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0x70, 0x0a, 0x0c, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, - 0x71, 0x12, 0x16, 0x0a, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x26, 0x0a, 0x0e, 0x45, 0x6e, 0x64, + 0x71, 0x12, 0x16, 0x0a, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x26, 0x0a, 0x0e, 0x45, 0x6e, 0x64, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x45, 0x6e, 0x64, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, @@ -2305,94 +2370,103 @@ var file_user_user_proto_rawDesc = []byte{ 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x52, 0x0a, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0x4a, 0x0a, 0x0e, 0x55, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x12, 0x16, 0x0a, 0x06, 0x55, 0x73, 0x65, 0x72, - 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, + 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x22, 0x43, 0x0a, 0x0f, 0x55, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x12, 0x30, 0x0a, 0x0a, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x52, 0x0a, 0x43, 0x6f, 0x6d, - 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0x7a, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x42, 0x6c, - 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x12, 0x44, 0x0a, 0x0a, 0x50, - 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x24, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, - 0x61, 0x6d, 0x73, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x50, 0x61, 0x67, 0x69, 0x6e, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0a, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x49, 0x44, 0x22, 0x65, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, - 0x73, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x12, 0x30, 0x0a, 0x0a, 0x43, 0x6f, 0x6d, 0x6d, - 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x75, - 0x73, 0x65, 0x72, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x52, 0x0a, - 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x12, 0x1e, 0x0a, 0x04, 0x75, 0x73, - 0x65, 0x72, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, - 0x55, 0x73, 0x65, 0x72, 0x52, 0x04, 0x75, 0x73, 0x65, 0x72, 0x32, 0x88, 0x08, 0x0a, 0x04, 0x75, - 0x73, 0x65, 0x72, 0x12, 0x3a, 0x0a, 0x0b, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, - 0x66, 0x6f, 0x12, 0x14, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, - 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x1a, 0x15, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, - 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x12, - 0x43, 0x0a, 0x0e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, - 0x6f, 0x12, 0x17, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x55, - 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x1a, 0x18, 0x2e, 0x75, 0x73, 0x65, - 0x72, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, - 0x52, 0x65, 0x73, 0x70, 0x12, 0x3a, 0x0a, 0x0b, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x55, 0x73, - 0x65, 0x72, 0x73, 0x12, 0x14, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, - 0x65, 0x55, 0x73, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x15, 0x2e, 0x75, 0x73, 0x65, 0x72, - 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, - 0x12, 0x3d, 0x0a, 0x0c, 0x47, 0x65, 0x74, 0x41, 0x6c, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, - 0x12, 0x15, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x6c, 0x6c, 0x55, 0x73, - 0x65, 0x72, 0x49, 0x44, 0x52, 0x65, 0x71, 0x1a, 0x16, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x47, - 0x65, 0x74, 0x41, 0x6c, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x52, 0x65, 0x73, 0x70, 0x12, - 0x55, 0x0a, 0x14, 0x53, 0x65, 0x74, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x4d, 0x65, 0x73, - 0x73, 0x61, 0x67, 0x65, 0x4f, 0x70, 0x74, 0x12, 0x1d, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x53, + 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0x9e, 0x01, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x42, + 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x12, 0x44, 0x0a, 0x0a, + 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x24, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, + 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x50, 0x61, 0x67, 0x69, + 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0a, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, + 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x49, 0x44, 0x12, 0x22, 0x0a, 0x0c, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, + 0x72, 0x4e, 0x75, 0x6d, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x42, 0x6c, 0x6f, 0x63, + 0x6b, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x22, 0xd0, 0x01, 0x0a, 0x11, 0x47, 0x65, 0x74, + 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x12, 0x30, + 0x0a, 0x0a, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, + 0x52, 0x65, 0x73, 0x70, 0x52, 0x0a, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, + 0x12, 0x1e, 0x0a, 0x04, 0x75, 0x73, 0x65, 0x72, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0a, + 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x52, 0x04, 0x75, 0x73, 0x65, 0x72, + 0x12, 0x45, 0x0a, 0x0a, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, + 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0a, 0x50, 0x61, 0x67, + 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x22, 0x0a, 0x0c, 0x42, 0x6c, 0x6f, 0x63, 0x6b, + 0x55, 0x73, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x42, + 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x32, 0x88, 0x08, 0x0a, 0x04, + 0x75, 0x73, 0x65, 0x72, 0x12, 0x3a, 0x0a, 0x0b, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x49, + 0x6e, 0x66, 0x6f, 0x12, 0x14, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, + 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x1a, 0x15, 0x2e, 0x75, 0x73, 0x65, 0x72, + 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, + 0x12, 0x43, 0x0a, 0x0e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, + 0x66, 0x6f, 0x12, 0x17, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, + 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x1a, 0x18, 0x2e, 0x75, 0x73, + 0x65, 0x72, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, + 0x6f, 0x52, 0x65, 0x73, 0x70, 0x12, 0x3a, 0x0a, 0x0b, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x55, + 0x73, 0x65, 0x72, 0x73, 0x12, 0x14, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x44, 0x65, 0x6c, 0x65, + 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x15, 0x2e, 0x75, 0x73, 0x65, + 0x72, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, + 0x70, 0x12, 0x3d, 0x0a, 0x0c, 0x47, 0x65, 0x74, 0x41, 0x6c, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x49, + 0x44, 0x12, 0x15, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x6c, 0x6c, 0x55, + 0x73, 0x65, 0x72, 0x49, 0x44, 0x52, 0x65, 0x71, 0x1a, 0x16, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, + 0x47, 0x65, 0x74, 0x41, 0x6c, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x52, 0x65, 0x73, 0x70, + 0x12, 0x55, 0x0a, 0x14, 0x53, 0x65, 0x74, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x4d, 0x65, + 0x73, 0x73, 0x61, 0x67, 0x65, 0x4f, 0x70, 0x74, 0x12, 0x1d, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, + 0x53, 0x65, 0x74, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, + 0x65, 0x4f, 0x70, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x1e, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x53, 0x65, 0x74, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, - 0x4f, 0x70, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x1e, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x53, 0x65, - 0x74, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4f, - 0x70, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x55, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x52, 0x65, 0x63, - 0x65, 0x69, 0x76, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4f, 0x70, 0x74, 0x12, 0x1d, + 0x4f, 0x70, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x55, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x52, 0x65, + 0x63, 0x65, 0x69, 0x76, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4f, 0x70, 0x74, 0x12, + 0x1d, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, + 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4f, 0x70, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x1e, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, - 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4f, 0x70, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x1e, 0x2e, - 0x75, 0x73, 0x65, 0x72, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x4d, - 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4f, 0x70, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x61, 0x0a, - 0x18, 0x47, 0x65, 0x74, 0x41, 0x6c, 0x6c, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x4d, 0x73, 0x67, 0x4f, 0x70, 0x74, 0x12, 0x21, 0x2e, 0x75, 0x73, 0x65, 0x72, - 0x2e, 0x47, 0x65, 0x74, 0x41, 0x6c, 0x6c, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x4d, 0x73, 0x67, 0x4f, 0x70, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x22, 0x2e, 0x75, - 0x73, 0x65, 0x72, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x6c, 0x6c, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, - 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x73, 0x67, 0x4f, 0x70, 0x74, 0x52, 0x65, 0x73, 0x70, - 0x12, 0x3d, 0x0a, 0x0c, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x43, 0x68, 0x65, 0x63, 0x6b, - 0x12, 0x15, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x43, - 0x68, 0x65, 0x63, 0x6b, 0x52, 0x65, 0x71, 0x1a, 0x16, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x41, - 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x12, - 0x2e, 0x0a, 0x07, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x12, 0x10, 0x2e, 0x75, 0x73, 0x65, - 0x72, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x1a, 0x11, 0x2e, 0x75, - 0x73, 0x65, 0x72, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x12, - 0x37, 0x0a, 0x0a, 0x52, 0x65, 0x73, 0x69, 0x67, 0x6e, 0x55, 0x73, 0x65, 0x72, 0x12, 0x13, 0x2e, - 0x75, 0x73, 0x65, 0x72, 0x2e, 0x52, 0x65, 0x73, 0x69, 0x67, 0x6e, 0x55, 0x73, 0x65, 0x72, 0x52, - 0x65, 0x71, 0x1a, 0x14, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x52, 0x65, 0x73, 0x69, 0x67, 0x6e, - 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x12, 0x34, 0x0a, 0x09, 0x41, 0x6c, 0x74, 0x65, - 0x72, 0x55, 0x73, 0x65, 0x72, 0x12, 0x12, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x41, 0x6c, 0x74, - 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x1a, 0x13, 0x2e, 0x75, 0x73, 0x65, 0x72, - 0x2e, 0x41, 0x6c, 0x74, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x12, 0x31, - 0x0a, 0x08, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x73, 0x12, 0x11, 0x2e, 0x75, 0x73, 0x65, - 0x72, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x12, 0x2e, - 0x75, 0x73, 0x65, 0x72, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, - 0x70, 0x12, 0x2e, 0x0a, 0x07, 0x41, 0x64, 0x64, 0x55, 0x73, 0x65, 0x72, 0x12, 0x10, 0x2e, 0x75, - 0x73, 0x65, 0x72, 0x2e, 0x41, 0x64, 0x64, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x1a, 0x11, - 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x41, 0x64, 0x64, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, - 0x70, 0x12, 0x34, 0x0a, 0x09, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x12, 0x12, - 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x52, - 0x65, 0x71, 0x1a, 0x13, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, - 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x12, 0x3a, 0x0a, 0x0b, 0x55, 0x6e, 0x42, 0x6c, 0x6f, - 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x12, 0x14, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x55, 0x6e, - 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x1a, 0x15, 0x2e, 0x75, - 0x73, 0x65, 0x72, 0x2e, 0x55, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x52, - 0x65, 0x73, 0x70, 0x12, 0x40, 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, - 0x73, 0x65, 0x72, 0x73, 0x12, 0x16, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x47, 0x65, 0x74, 0x42, - 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x17, 0x2e, 0x75, - 0x73, 0x65, 0x72, 0x2e, 0x47, 0x65, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, - 0x73, 0x52, 0x65, 0x73, 0x70, 0x42, 0x0d, 0x5a, 0x0b, 0x2e, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x3b, - 0x75, 0x73, 0x65, 0x72, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4f, 0x70, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x61, + 0x0a, 0x18, 0x47, 0x65, 0x74, 0x41, 0x6c, 0x6c, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x73, 0x67, 0x4f, 0x70, 0x74, 0x12, 0x21, 0x2e, 0x75, 0x73, 0x65, + 0x72, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x6c, 0x6c, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x73, 0x67, 0x4f, 0x70, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x22, 0x2e, + 0x75, 0x73, 0x65, 0x72, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x6c, 0x6c, 0x43, 0x6f, 0x6e, 0x76, 0x65, + 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x73, 0x67, 0x4f, 0x70, 0x74, 0x52, 0x65, 0x73, + 0x70, 0x12, 0x3d, 0x0a, 0x0c, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x43, 0x68, 0x65, 0x63, + 0x6b, 0x12, 0x15, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, + 0x43, 0x68, 0x65, 0x63, 0x6b, 0x52, 0x65, 0x71, 0x1a, 0x16, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, + 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x52, 0x65, 0x73, 0x70, + 0x12, 0x2e, 0x0a, 0x07, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x12, 0x10, 0x2e, 0x75, 0x73, + 0x65, 0x72, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x1a, 0x11, 0x2e, + 0x75, 0x73, 0x65, 0x72, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, + 0x12, 0x37, 0x0a, 0x0a, 0x52, 0x65, 0x73, 0x69, 0x67, 0x6e, 0x55, 0x73, 0x65, 0x72, 0x12, 0x13, + 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x52, 0x65, 0x73, 0x69, 0x67, 0x6e, 0x55, 0x73, 0x65, 0x72, + 0x52, 0x65, 0x71, 0x1a, 0x14, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x52, 0x65, 0x73, 0x69, 0x67, + 0x6e, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x12, 0x34, 0x0a, 0x09, 0x41, 0x6c, 0x74, + 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x12, 0x12, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x41, 0x6c, + 0x74, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x1a, 0x13, 0x2e, 0x75, 0x73, 0x65, + 0x72, 0x2e, 0x41, 0x6c, 0x74, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x12, + 0x31, 0x0a, 0x08, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x73, 0x12, 0x11, 0x2e, 0x75, 0x73, + 0x65, 0x72, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x12, + 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x73, 0x52, 0x65, + 0x73, 0x70, 0x12, 0x2e, 0x0a, 0x07, 0x41, 0x64, 0x64, 0x55, 0x73, 0x65, 0x72, 0x12, 0x10, 0x2e, + 0x75, 0x73, 0x65, 0x72, 0x2e, 0x41, 0x64, 0x64, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x1a, + 0x11, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x41, 0x64, 0x64, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, + 0x73, 0x70, 0x12, 0x34, 0x0a, 0x09, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x12, + 0x12, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, + 0x52, 0x65, 0x71, 0x1a, 0x13, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, + 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x12, 0x3a, 0x0a, 0x0b, 0x55, 0x6e, 0x42, 0x6c, + 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x12, 0x14, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x55, + 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x1a, 0x15, 0x2e, + 0x75, 0x73, 0x65, 0x72, 0x2e, 0x55, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, + 0x52, 0x65, 0x73, 0x70, 0x12, 0x40, 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, + 0x55, 0x73, 0x65, 0x72, 0x73, 0x12, 0x16, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x47, 0x65, 0x74, + 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x17, 0x2e, + 0x75, 0x73, 0x65, 0x72, 0x2e, 0x47, 0x65, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, + 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x42, 0x0d, 0x5a, 0x0b, 0x2e, 0x2f, 0x75, 0x73, 0x65, 0x72, + 0x3b, 0x75, 0x73, 0x65, 0x72, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -2447,6 +2521,7 @@ var file_user_user_proto_goTypes = []interface{}{ (*AccountCheckResp_SingleUserStatus)(nil), // 35: user.AccountCheckResp.SingleUserStatus (*sdk_ws.UserInfo)(nil), // 36: server_api_params.UserInfo (*sdk_ws.RequestPagination)(nil), // 37: server_api_params.RequestPagination + (*sdk_ws.ResponsePagination)(nil), // 38: server_api_params.ResponsePagination } var file_user_user_proto_depIdxs = []int32{ 0, // 0: user.DeleteUsersResp.CommonResp:type_name -> user.CommonResp @@ -2470,49 +2545,51 @@ var file_user_user_proto_depIdxs = []int32{ 37, // 18: user.GetUsersReq.Pagination:type_name -> server_api_params.RequestPagination 0, // 19: user.GetUsersResp.CommonResp:type_name -> user.CommonResp 21, // 20: user.GetUsersResp.user:type_name -> user.User - 0, // 21: user.AddUserResp.CommonResp:type_name -> user.CommonResp - 0, // 22: user.BlockUserResp.CommonResp:type_name -> user.CommonResp - 0, // 23: user.UnBlockUserResp.CommonResp:type_name -> user.CommonResp - 37, // 24: user.GetBlockUsersReq.Pagination:type_name -> server_api_params.RequestPagination - 0, // 25: user.GetBlockUsersResp.CommonResp:type_name -> user.CommonResp - 21, // 26: user.GetBlockUsersResp.user:type_name -> user.User - 7, // 27: user.user.GetUserInfo:input_type -> user.GetUserInfoReq - 9, // 28: user.user.UpdateUserInfo:input_type -> user.UpdateUserInfoReq - 1, // 29: user.user.DeleteUsers:input_type -> user.DeleteUsersReq - 3, // 30: user.user.GetAllUserID:input_type -> user.GetAllUserIDReq - 11, // 31: user.user.SetReceiveMessageOpt:input_type -> user.SetReceiveMessageOptReq - 14, // 32: user.user.GetReceiveMessageOpt:input_type -> user.GetReceiveMessageOptReq - 16, // 33: user.user.GetAllConversationMsgOpt:input_type -> user.GetAllConversationMsgOptReq - 5, // 34: user.user.AccountCheck:input_type -> user.AccountCheckReq - 20, // 35: user.user.GetUser:input_type -> user.GetUserReq - 18, // 36: user.user.ResignUser:input_type -> user.ResignUserReq - 23, // 37: user.user.AlterUser:input_type -> user.AlterUserReq - 25, // 38: user.user.GetUsers:input_type -> user.GetUsersReq - 27, // 39: user.user.AddUser:input_type -> user.AddUserReq - 29, // 40: user.user.BlockUser:input_type -> user.BlockUserReq - 31, // 41: user.user.UnBlockUser:input_type -> user.UnBlockUserReq - 33, // 42: user.user.GetBlockUsers:input_type -> user.GetBlockUsersReq - 8, // 43: user.user.GetUserInfo:output_type -> user.GetUserInfoResp - 10, // 44: user.user.UpdateUserInfo:output_type -> user.UpdateUserInfoResp - 2, // 45: user.user.DeleteUsers:output_type -> user.DeleteUsersResp - 4, // 46: user.user.GetAllUserID:output_type -> user.GetAllUserIDResp - 13, // 47: user.user.SetReceiveMessageOpt:output_type -> user.SetReceiveMessageOptResp - 15, // 48: user.user.GetReceiveMessageOpt:output_type -> user.GetReceiveMessageOptResp - 17, // 49: user.user.GetAllConversationMsgOpt:output_type -> user.GetAllConversationMsgOptResp - 6, // 50: user.user.AccountCheck:output_type -> user.AccountCheckResp - 22, // 51: user.user.GetUser:output_type -> user.GetUserResp - 19, // 52: user.user.ResignUser:output_type -> user.ResignUserResp - 24, // 53: user.user.AlterUser:output_type -> user.AlterUserResp - 26, // 54: user.user.GetUsers:output_type -> user.GetUsersResp - 28, // 55: user.user.AddUser:output_type -> user.AddUserResp - 30, // 56: user.user.BlockUser:output_type -> user.BlockUserResp - 32, // 57: user.user.UnBlockUser:output_type -> user.UnBlockUserResp - 34, // 58: user.user.GetBlockUsers:output_type -> user.GetBlockUsersResp - 43, // [43:59] is the sub-list for method output_type - 27, // [27:43] is the sub-list for method input_type - 27, // [27:27] is the sub-list for extension type_name - 27, // [27:27] is the sub-list for extension extendee - 0, // [0:27] is the sub-list for field type_name + 38, // 21: user.GetUsersResp.Pagination:type_name -> server_api_params.ResponsePagination + 0, // 22: user.AddUserResp.CommonResp:type_name -> user.CommonResp + 0, // 23: user.BlockUserResp.CommonResp:type_name -> user.CommonResp + 0, // 24: user.UnBlockUserResp.CommonResp:type_name -> user.CommonResp + 37, // 25: user.GetBlockUsersReq.Pagination:type_name -> server_api_params.RequestPagination + 0, // 26: user.GetBlockUsersResp.CommonResp:type_name -> user.CommonResp + 21, // 27: user.GetBlockUsersResp.user:type_name -> user.User + 38, // 28: user.GetBlockUsersResp.Pagination:type_name -> server_api_params.ResponsePagination + 7, // 29: user.user.GetUserInfo:input_type -> user.GetUserInfoReq + 9, // 30: user.user.UpdateUserInfo:input_type -> user.UpdateUserInfoReq + 1, // 31: user.user.DeleteUsers:input_type -> user.DeleteUsersReq + 3, // 32: user.user.GetAllUserID:input_type -> user.GetAllUserIDReq + 11, // 33: user.user.SetReceiveMessageOpt:input_type -> user.SetReceiveMessageOptReq + 14, // 34: user.user.GetReceiveMessageOpt:input_type -> user.GetReceiveMessageOptReq + 16, // 35: user.user.GetAllConversationMsgOpt:input_type -> user.GetAllConversationMsgOptReq + 5, // 36: user.user.AccountCheck:input_type -> user.AccountCheckReq + 20, // 37: user.user.GetUser:input_type -> user.GetUserReq + 18, // 38: user.user.ResignUser:input_type -> user.ResignUserReq + 23, // 39: user.user.AlterUser:input_type -> user.AlterUserReq + 25, // 40: user.user.GetUsers:input_type -> user.GetUsersReq + 27, // 41: user.user.AddUser:input_type -> user.AddUserReq + 29, // 42: user.user.BlockUser:input_type -> user.BlockUserReq + 31, // 43: user.user.UnBlockUser:input_type -> user.UnBlockUserReq + 33, // 44: user.user.GetBlockUsers:input_type -> user.GetBlockUsersReq + 8, // 45: user.user.GetUserInfo:output_type -> user.GetUserInfoResp + 10, // 46: user.user.UpdateUserInfo:output_type -> user.UpdateUserInfoResp + 2, // 47: user.user.DeleteUsers:output_type -> user.DeleteUsersResp + 4, // 48: user.user.GetAllUserID:output_type -> user.GetAllUserIDResp + 13, // 49: user.user.SetReceiveMessageOpt:output_type -> user.SetReceiveMessageOptResp + 15, // 50: user.user.GetReceiveMessageOpt:output_type -> user.GetReceiveMessageOptResp + 17, // 51: user.user.GetAllConversationMsgOpt:output_type -> user.GetAllConversationMsgOptResp + 6, // 52: user.user.AccountCheck:output_type -> user.AccountCheckResp + 22, // 53: user.user.GetUser:output_type -> user.GetUserResp + 19, // 54: user.user.ResignUser:output_type -> user.ResignUserResp + 24, // 55: user.user.AlterUser:output_type -> user.AlterUserResp + 26, // 56: user.user.GetUsers:output_type -> user.GetUsersResp + 28, // 57: user.user.AddUser:output_type -> user.AddUserResp + 30, // 58: user.user.BlockUser:output_type -> user.BlockUserResp + 32, // 59: user.user.UnBlockUser:output_type -> user.UnBlockUserResp + 34, // 60: user.user.GetBlockUsers:output_type -> user.GetBlockUsersResp + 45, // [45:61] is the sub-list for method output_type + 29, // [29:45] is the sub-list for method input_type + 29, // [29:29] is the sub-list for extension type_name + 29, // [29:29] is the sub-list for extension extendee + 0, // [0:29] is the sub-list for field type_name } func init() { file_user_user_proto_init() } diff --git a/pkg/proto/user/user.proto b/pkg/proto/user/user.proto index 90db2a0d5..d74fbd1c4 100644 --- a/pkg/proto/user/user.proto +++ b/pkg/proto/user/user.proto @@ -125,7 +125,8 @@ message User{ string ProfilePhoto = 1; string Nickname = 2; string UserId = 3; - string CreateTime = 4; + string CreateTime = 4; + bool IsBlock = 5; } message GetUserResp{ @@ -151,12 +152,15 @@ message GetUsersResp{ CommonResp CommonResp = 1; string OperationID = 2; repeated User user = 3; + int32 UserNum = 4; + server_api_params.ResponsePagination Pagination = 5; } message AddUserReq{ string OperationID = 1; string PhoneNumber = 2; string UserId = 3; + string name = 4; } message AddUserResp{ @@ -165,7 +169,7 @@ message AddUserResp{ message BlockUserReq{ - string UserID = 1; + string UserId = 1; string EndDisableTime = 2; string OperationID = 3; } @@ -175,7 +179,7 @@ message BlockUserResp{ } message UnBlockUserReq{ - string UserID = 1; + string UserId = 1; string OperationID = 2; } @@ -186,11 +190,14 @@ message UnBlockUserResp{ message GetBlockUsersReq{ server_api_params.RequestPagination Pagination =1; string OperationID = 2; + int32 BlockUserNum = 4; } message GetBlockUsersResp{ CommonResp CommonResp = 1; repeated User user = 2; + server_api_params.ResponsePagination Pagination = 3; + int32 BlockUserNum = 4; } From 79d097c903a37c67a7c65a37bb95e149180eae5f Mon Sep 17 00:00:00 2001 From: wangchuxiao Date: Wed, 26 Jan 2022 00:37:28 +0800 Subject: [PATCH 556/814] group pb --- internal/cms_api/group/group.go | 36 +- pkg/proto/group/group.pb.go | 762 ++++++++++++++++++++++++++++++-- pkg/proto/group/group.proto | 40 ++ pkg/proto/sdk_ws/ws.pb.go | 4 +- 4 files changed, 787 insertions(+), 55 deletions(-) diff --git a/internal/cms_api/group/group.go b/internal/cms_api/group/group.go index ed8187e3a..4e9c2aa99 100644 --- a/internal/cms_api/group/group.go +++ b/internal/cms_api/group/group.go @@ -4,22 +4,23 @@ import ( "Open_IM/pkg/cms_api_struct" "Open_IM/pkg/common/config" "Open_IM/pkg/common/constant" - "Open_IM/pkg/common/log" openIMHttp "Open_IM/pkg/common/http" + "Open_IM/pkg/common/log" "Open_IM/pkg/grpc-etcdv3/getcdv3" "Open_IM/pkg/utils" + "context" "fmt" "strings" - "context" pbGroup "Open_IM/pkg/proto/group" + "github.com/gin-gonic/gin" ) func GetGroups(c *gin.Context) { var ( - req cms_api_struct.GetGroupsRequest - resp cms_api_struct.GetGroupsResponse + req cms_api_struct.GetGroupsRequest + resp cms_api_struct.GetGroupsResponse reqPb pbGroup.GetGroupsReq ) if err := c.ShouldBindQuery(&req); err != nil { @@ -42,8 +43,8 @@ func GetGroups(c *gin.Context) { func GetGroup(c *gin.Context) { var ( - req cms_api_struct.GetGroupRequest - resp cms_api_struct.GetGroupResponse + req cms_api_struct.GetGroupRequest + resp cms_api_struct.GetGroupResponse reqPb pbGroup.GetGroupReq ) if err := c.ShouldBindQuery(&req); err != nil { @@ -66,8 +67,8 @@ func GetGroup(c *gin.Context) { func CreateGroup(c *gin.Context) { var ( - req cms_api_struct.CreateGroupRequest - resp cms_api_struct.CreateGroupResponse + req cms_api_struct.CreateGroupRequest + resp cms_api_struct.CreateGroupResponse reqPb pbGroup.CreateGroupReq ) if err := c.BindJSON(&req); err != nil { @@ -76,11 +77,10 @@ func CreateGroup(c *gin.Context) { return } reqPb.GroupInfo.GroupName = req.GroupName - reqPb. + reqPb.GroupInfo.CreatorUserID = "" etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImGroupName) client := pbGroup.NewGroupClient(etcdConn) respPb, err := client.CreateGroup(context.Background(), &reqPb) - fmt.Println(respPb) if err != nil { log.NewError("s", "GetUserInfo failed ", err.Error()) openIMHttp.RespHttp200(c, constant.ErrServer, nil) @@ -89,11 +89,25 @@ func CreateGroup(c *gin.Context) { openIMHttp.RespHttp200(c, constant.OK, resp) } -func SearchGroupsMember(c *gin.Context) { +func BanGroupChat(c *gin.Context) { + var ( + req cms_api_struct.BanGroupChatRequest + resp cms_api_struct.BanGroupChatResponse + ) } +func BanPrivateChat(c *gin.Context) { + var ( + req cms_api_struct.BanPrivateChatRequest + resp cms_api_struct.BanPrivateChatResponse + ) + +} + +func SearchGroupsMember(c *gin.Context) { +} func AddUsers(c *gin.Context) { diff --git a/pkg/proto/group/group.pb.go b/pkg/proto/group/group.pb.go index 174355bca..01936f9d7 100644 --- a/pkg/proto/group/group.pb.go +++ b/pkg/proto/group/group.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.27.1 -// protoc v3.15.5 +// protoc-gen-go v1.26.0 +// protoc v3.19.3 // source: group/group.proto package group @@ -2261,6 +2261,386 @@ func (x *GetGroupMemberReq) GetOperationID() string { return "" } +type BanGroupChatReq struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + GroupId string `protobuf:"bytes,1,opt,name=GroupId,proto3" json:"GroupId,omitempty"` + OperationID string `protobuf:"bytes,2,opt,name=OperationID,proto3" json:"OperationID,omitempty"` +} + +func (x *BanGroupChatReq) Reset() { + *x = BanGroupChatReq{} + if protoimpl.UnsafeEnabled { + mi := &file_group_group_proto_msgTypes[36] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *BanGroupChatReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*BanGroupChatReq) ProtoMessage() {} + +func (x *BanGroupChatReq) ProtoReflect() protoreflect.Message { + mi := &file_group_group_proto_msgTypes[36] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use BanGroupChatReq.ProtoReflect.Descriptor instead. +func (*BanGroupChatReq) Descriptor() ([]byte, []int) { + return file_group_group_proto_rawDescGZIP(), []int{36} +} + +func (x *BanGroupChatReq) GetGroupId() string { + if x != nil { + return x.GroupId + } + return "" +} + +func (x *BanGroupChatReq) GetOperationID() string { + if x != nil { + return x.OperationID + } + return "" +} + +type BanGroupChatResp struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *BanGroupChatResp) Reset() { + *x = BanGroupChatResp{} + if protoimpl.UnsafeEnabled { + mi := &file_group_group_proto_msgTypes[37] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *BanGroupChatResp) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*BanGroupChatResp) ProtoMessage() {} + +func (x *BanGroupChatResp) ProtoReflect() protoreflect.Message { + mi := &file_group_group_proto_msgTypes[37] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use BanGroupChatResp.ProtoReflect.Descriptor instead. +func (*BanGroupChatResp) Descriptor() ([]byte, []int) { + return file_group_group_proto_rawDescGZIP(), []int{37} +} + +type BanPrivateChatReq struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + GroupId string `protobuf:"bytes,1,opt,name=GroupId,proto3" json:"GroupId,omitempty"` + OperationID string `protobuf:"bytes,2,opt,name=OperationID,proto3" json:"OperationID,omitempty"` +} + +func (x *BanPrivateChatReq) Reset() { + *x = BanPrivateChatReq{} + if protoimpl.UnsafeEnabled { + mi := &file_group_group_proto_msgTypes[38] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *BanPrivateChatReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*BanPrivateChatReq) ProtoMessage() {} + +func (x *BanPrivateChatReq) ProtoReflect() protoreflect.Message { + mi := &file_group_group_proto_msgTypes[38] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use BanPrivateChatReq.ProtoReflect.Descriptor instead. +func (*BanPrivateChatReq) Descriptor() ([]byte, []int) { + return file_group_group_proto_rawDescGZIP(), []int{38} +} + +func (x *BanPrivateChatReq) GetGroupId() string { + if x != nil { + return x.GroupId + } + return "" +} + +func (x *BanPrivateChatReq) GetOperationID() string { + if x != nil { + return x.OperationID + } + return "" +} + +type BanPrivateChatResp struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *BanPrivateChatResp) Reset() { + *x = BanPrivateChatResp{} + if protoimpl.UnsafeEnabled { + mi := &file_group_group_proto_msgTypes[39] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *BanPrivateChatResp) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*BanPrivateChatResp) ProtoMessage() {} + +func (x *BanPrivateChatResp) ProtoReflect() protoreflect.Message { + mi := &file_group_group_proto_msgTypes[39] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use BanPrivateChatResp.ProtoReflect.Descriptor instead. +func (*BanPrivateChatResp) Descriptor() ([]byte, []int) { + return file_group_group_proto_rawDescGZIP(), []int{39} +} + +type SetMasterReq struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + GroupId string `protobuf:"bytes,1,opt,name=GroupId,proto3" json:"GroupId,omitempty"` + UserId string `protobuf:"bytes,2,opt,name=UserId,proto3" json:"UserId,omitempty"` + OperationID string `protobuf:"bytes,3,opt,name=OperationID,proto3" json:"OperationID,omitempty"` +} + +func (x *SetMasterReq) Reset() { + *x = SetMasterReq{} + if protoimpl.UnsafeEnabled { + mi := &file_group_group_proto_msgTypes[40] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SetMasterReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SetMasterReq) ProtoMessage() {} + +func (x *SetMasterReq) ProtoReflect() protoreflect.Message { + mi := &file_group_group_proto_msgTypes[40] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use SetMasterReq.ProtoReflect.Descriptor instead. +func (*SetMasterReq) Descriptor() ([]byte, []int) { + return file_group_group_proto_rawDescGZIP(), []int{40} +} + +func (x *SetMasterReq) GetGroupId() string { + if x != nil { + return x.GroupId + } + return "" +} + +func (x *SetMasterReq) GetUserId() string { + if x != nil { + return x.UserId + } + return "" +} + +func (x *SetMasterReq) GetOperationID() string { + if x != nil { + return x.OperationID + } + return "" +} + +type SetMasterResp struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *SetMasterResp) Reset() { + *x = SetMasterResp{} + if protoimpl.UnsafeEnabled { + mi := &file_group_group_proto_msgTypes[41] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SetMasterResp) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SetMasterResp) ProtoMessage() {} + +func (x *SetMasterResp) ProtoReflect() protoreflect.Message { + mi := &file_group_group_proto_msgTypes[41] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use SetMasterResp.ProtoReflect.Descriptor instead. +func (*SetMasterResp) Descriptor() ([]byte, []int) { + return file_group_group_proto_rawDescGZIP(), []int{41} +} + +type DeleteGroupReq struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + GroupId string `protobuf:"bytes,1,opt,name=GroupId,proto3" json:"GroupId,omitempty"` + OperationID string `protobuf:"bytes,2,opt,name=OperationID,proto3" json:"OperationID,omitempty"` +} + +func (x *DeleteGroupReq) Reset() { + *x = DeleteGroupReq{} + if protoimpl.UnsafeEnabled { + mi := &file_group_group_proto_msgTypes[42] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DeleteGroupReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DeleteGroupReq) ProtoMessage() {} + +func (x *DeleteGroupReq) ProtoReflect() protoreflect.Message { + mi := &file_group_group_proto_msgTypes[42] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use DeleteGroupReq.ProtoReflect.Descriptor instead. +func (*DeleteGroupReq) Descriptor() ([]byte, []int) { + return file_group_group_proto_rawDescGZIP(), []int{42} +} + +func (x *DeleteGroupReq) GetGroupId() string { + if x != nil { + return x.GroupId + } + return "" +} + +func (x *DeleteGroupReq) GetOperationID() string { + if x != nil { + return x.OperationID + } + return "" +} + +type DeleteGroupResp struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *DeleteGroupResp) Reset() { + *x = DeleteGroupResp{} + if protoimpl.UnsafeEnabled { + mi := &file_group_group_proto_msgTypes[43] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DeleteGroupResp) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DeleteGroupResp) ProtoMessage() {} + +func (x *DeleteGroupResp) ProtoReflect() protoreflect.Message { + mi := &file_group_group_proto_msgTypes[43] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use DeleteGroupResp.ProtoReflect.Descriptor instead. +func (*DeleteGroupResp) Descriptor() ([]byte, []int) { + return file_group_group_proto_rawDescGZIP(), []int{43} +} + var File_group_group_proto protoreflect.FileDescriptor var file_group_group_proto_rawDesc = []byte{ @@ -2548,7 +2928,33 @@ var file_group_group_proto_rawDesc = []byte{ 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, - 0x32, 0xa8, 0x09, 0x0a, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x3c, 0x0a, 0x0b, 0x63, 0x72, + 0x22, 0x4d, 0x0a, 0x0f, 0x42, 0x61, 0x6e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x43, 0x68, 0x61, 0x74, + 0x52, 0x65, 0x71, 0x12, 0x18, 0x0a, 0x07, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x12, 0x20, 0x0a, + 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x22, + 0x12, 0x0a, 0x10, 0x42, 0x61, 0x6e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x43, 0x68, 0x61, 0x74, 0x52, + 0x65, 0x73, 0x70, 0x22, 0x4f, 0x0a, 0x11, 0x42, 0x61, 0x6e, 0x50, 0x72, 0x69, 0x76, 0x61, 0x74, + 0x65, 0x43, 0x68, 0x61, 0x74, 0x52, 0x65, 0x71, 0x12, 0x18, 0x0a, 0x07, 0x47, 0x72, 0x6f, 0x75, + 0x70, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x47, 0x72, 0x6f, 0x75, 0x70, + 0x49, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, + 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x49, 0x44, 0x22, 0x14, 0x0a, 0x12, 0x42, 0x61, 0x6e, 0x50, 0x72, 0x69, 0x76, 0x61, + 0x74, 0x65, 0x43, 0x68, 0x61, 0x74, 0x52, 0x65, 0x73, 0x70, 0x22, 0x62, 0x0a, 0x0c, 0x53, 0x65, + 0x74, 0x4d, 0x61, 0x73, 0x74, 0x65, 0x72, 0x52, 0x65, 0x71, 0x12, 0x18, 0x0a, 0x07, 0x47, 0x72, + 0x6f, 0x75, 0x70, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x47, 0x72, 0x6f, + 0x75, 0x70, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x0b, + 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x22, 0x0f, + 0x0a, 0x0d, 0x53, 0x65, 0x74, 0x4d, 0x61, 0x73, 0x74, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x22, + 0x4c, 0x0a, 0x0e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, + 0x71, 0x12, 0x18, 0x0a, 0x07, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x07, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x4f, + 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x22, 0x11, 0x0a, + 0x0f, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, + 0x32, 0xa5, 0x0b, 0x0a, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x3c, 0x0a, 0x0b, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x15, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x1a, 0x16, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x47, @@ -2622,9 +3028,25 @@ var file_group_group_proto_rawDesc = []byte{ 0x65, 0x73, 0x70, 0x12, 0x36, 0x0a, 0x09, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x12, 0x13, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x14, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x65, - 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x52, 0x65, 0x73, 0x70, 0x42, 0x0f, 0x5a, 0x0d, 0x2e, - 0x2f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x3b, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x62, 0x06, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x33, + 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x52, 0x65, 0x73, 0x70, 0x12, 0x3f, 0x0a, 0x0c, 0x42, + 0x61, 0x6e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x43, 0x68, 0x61, 0x74, 0x12, 0x16, 0x2e, 0x67, 0x72, + 0x6f, 0x75, 0x70, 0x2e, 0x42, 0x61, 0x6e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x43, 0x68, 0x61, 0x74, + 0x52, 0x65, 0x71, 0x1a, 0x17, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x42, 0x61, 0x6e, 0x47, + 0x72, 0x6f, 0x75, 0x70, 0x43, 0x68, 0x61, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x44, 0x0a, 0x0e, + 0x42, 0x61, 0x6e, 0x50, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x43, 0x68, 0x61, 0x74, 0x12, 0x18, + 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x42, 0x61, 0x6e, 0x50, 0x72, 0x69, 0x76, 0x61, 0x74, + 0x65, 0x43, 0x68, 0x61, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x18, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, + 0x2e, 0x42, 0x61, 0x6e, 0x50, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x43, 0x68, 0x61, 0x74, 0x52, + 0x65, 0x71, 0x12, 0x36, 0x0a, 0x09, 0x53, 0x65, 0x74, 0x4d, 0x61, 0x73, 0x74, 0x65, 0x72, 0x12, + 0x13, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x53, 0x65, 0x74, 0x4d, 0x61, 0x73, 0x74, 0x65, + 0x72, 0x52, 0x65, 0x71, 0x1a, 0x14, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x53, 0x65, 0x74, + 0x4d, 0x61, 0x73, 0x74, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x12, 0x3c, 0x0a, 0x0b, 0x44, 0x65, + 0x6c, 0x65, 0x74, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x15, 0x2e, 0x67, 0x72, 0x6f, 0x75, + 0x70, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, + 0x1a, 0x16, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x47, + 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x42, 0x0f, 0x5a, 0x0d, 0x2e, 0x2f, 0x67, 0x72, + 0x6f, 0x75, 0x70, 0x3b, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x33, } var ( @@ -2639,7 +3061,7 @@ func file_group_group_proto_rawDescGZIP() []byte { return file_group_group_proto_rawDescData } -var file_group_group_proto_msgTypes = make([]protoimpl.MessageInfo, 36) +var file_group_group_proto_msgTypes = make([]protoimpl.MessageInfo, 44) var file_group_group_proto_goTypes = []interface{}{ (*CommonResp)(nil), // 0: group.CommonResp (*GroupAddMemberInfo)(nil), // 1: group.GroupAddMemberInfo @@ -2677,32 +3099,40 @@ var file_group_group_proto_goTypes = []interface{}{ (*GetGroupsReq)(nil), // 33: group.GetGroupsReq (*GetGroupsResp)(nil), // 34: group.GetGroupsResp (*GetGroupMemberReq)(nil), // 35: group.GetGroupMemberReq - (*sdk_ws.GroupInfo)(nil), // 36: server_api_params.GroupInfo - (*sdk_ws.GroupRequest)(nil), // 37: server_api_params.GroupRequest - (*sdk_ws.GroupMemberFullInfo)(nil), // 38: server_api_params.GroupMemberFullInfo - (*sdk_ws.RequestPagination)(nil), // 39: server_api_params.RequestPagination + (*BanGroupChatReq)(nil), // 36: group.BanGroupChatReq + (*BanGroupChatResp)(nil), // 37: group.BanGroupChatResp + (*BanPrivateChatReq)(nil), // 38: group.BanPrivateChatReq + (*BanPrivateChatResp)(nil), // 39: group.BanPrivateChatResp + (*SetMasterReq)(nil), // 40: group.SetMasterReq + (*SetMasterResp)(nil), // 41: group.SetMasterResp + (*DeleteGroupReq)(nil), // 42: group.DeleteGroupReq + (*DeleteGroupResp)(nil), // 43: group.DeleteGroupResp + (*sdk_ws.GroupInfo)(nil), // 44: server_api_params.GroupInfo + (*sdk_ws.GroupRequest)(nil), // 45: server_api_params.GroupRequest + (*sdk_ws.GroupMemberFullInfo)(nil), // 46: server_api_params.GroupMemberFullInfo + (*sdk_ws.RequestPagination)(nil), // 47: server_api_params.RequestPagination } var file_group_group_proto_depIdxs = []int32{ 1, // 0: group.CreateGroupReq.InitMemberList:type_name -> group.GroupAddMemberInfo - 36, // 1: group.CreateGroupReq.GroupInfo:type_name -> server_api_params.GroupInfo - 36, // 2: group.CreateGroupResp.GroupInfo:type_name -> server_api_params.GroupInfo - 36, // 3: group.GetGroupsInfoResp.GroupInfoList:type_name -> server_api_params.GroupInfo - 36, // 4: group.SetGroupInfoReq.GroupInfo:type_name -> server_api_params.GroupInfo + 44, // 1: group.CreateGroupReq.GroupInfo:type_name -> server_api_params.GroupInfo + 44, // 2: group.CreateGroupResp.GroupInfo:type_name -> server_api_params.GroupInfo + 44, // 3: group.GetGroupsInfoResp.GroupInfoList:type_name -> server_api_params.GroupInfo + 44, // 4: group.SetGroupInfoReq.GroupInfo:type_name -> server_api_params.GroupInfo 0, // 5: group.SetGroupInfoResp.CommonResp:type_name -> group.CommonResp - 37, // 6: group.GetGroupApplicationListResp.GroupRequestList:type_name -> server_api_params.GroupRequest + 45, // 6: group.GetGroupApplicationListResp.GroupRequestList:type_name -> server_api_params.GroupRequest 0, // 7: group.TransferGroupOwnerResp.CommonResp:type_name -> group.CommonResp 0, // 8: group.JoinGroupResp.CommonResp:type_name -> group.CommonResp 0, // 9: group.GroupApplicationResponseResp.CommonResp:type_name -> group.CommonResp 0, // 10: group.QuitGroupResp.CommonResp:type_name -> group.CommonResp - 38, // 11: group.GetGroupMemberListResp.memberList:type_name -> server_api_params.GroupMemberFullInfo - 38, // 12: group.GetGroupMembersInfoResp.memberList:type_name -> server_api_params.GroupMemberFullInfo + 46, // 11: group.GetGroupMemberListResp.memberList:type_name -> server_api_params.GroupMemberFullInfo + 46, // 12: group.GetGroupMembersInfoResp.memberList:type_name -> server_api_params.GroupMemberFullInfo 23, // 13: group.KickGroupMemberResp.Id2ResultList:type_name -> group.Id2Result - 36, // 14: group.GetJoinedGroupListResp.GroupList:type_name -> server_api_params.GroupInfo + 44, // 14: group.GetJoinedGroupListResp.GroupList:type_name -> server_api_params.GroupInfo 23, // 15: group.InviteUserToGroupResp.Id2ResultList:type_name -> group.Id2Result - 38, // 16: group.GetGroupAllMemberResp.memberList:type_name -> server_api_params.GroupMemberFullInfo - 36, // 17: group.GetGroupResp.GroupInfo:type_name -> server_api_params.GroupInfo - 39, // 18: group.GetGroupsReq.Pagination:type_name -> server_api_params.RequestPagination - 36, // 19: group.GetGroupsResp.GroupInfo:type_name -> server_api_params.GroupInfo + 46, // 16: group.GetGroupAllMemberResp.memberList:type_name -> server_api_params.GroupMemberFullInfo + 44, // 17: group.GetGroupResp.GroupInfo:type_name -> server_api_params.GroupInfo + 47, // 18: group.GetGroupsReq.Pagination:type_name -> server_api_params.RequestPagination + 44, // 19: group.GetGroupsResp.GroupInfo:type_name -> server_api_params.GroupInfo 2, // 20: group.group.createGroup:input_type -> group.CreateGroupReq 12, // 21: group.group.joinGroup:input_type -> group.JoinGroupReq 16, // 22: group.group.quitGroup:input_type -> group.QuitGroupReq @@ -2719,24 +3149,32 @@ var file_group_group_proto_depIdxs = []int32{ 29, // 33: group.group.getGroupAllMember:input_type -> group.GetGroupAllMemberReq 31, // 34: group.group.GetGroup:input_type -> group.GetGroupReq 33, // 35: group.group.GetGroups:input_type -> group.GetGroupsReq - 3, // 36: group.group.createGroup:output_type -> group.CreateGroupResp - 13, // 37: group.group.joinGroup:output_type -> group.JoinGroupResp - 17, // 38: group.group.quitGroup:output_type -> group.QuitGroupResp - 5, // 39: group.group.getGroupsInfo:output_type -> group.GetGroupsInfoResp - 7, // 40: group.group.setGroupInfo:output_type -> group.SetGroupInfoResp - 9, // 41: group.group.getGroupApplicationList:output_type -> group.GetGroupApplicationListResp - 11, // 42: group.group.transferGroupOwner:output_type -> group.TransferGroupOwnerResp - 15, // 43: group.group.groupApplicationResponse:output_type -> group.GroupApplicationResponseResp - 19, // 44: group.group.getGroupMemberList:output_type -> group.GetGroupMemberListResp - 21, // 45: group.group.getGroupMembersInfo:output_type -> group.GetGroupMembersInfoResp - 24, // 46: group.group.kickGroupMember:output_type -> group.KickGroupMemberResp - 26, // 47: group.group.getJoinedGroupList:output_type -> group.GetJoinedGroupListResp - 28, // 48: group.group.inviteUserToGroup:output_type -> group.InviteUserToGroupResp - 30, // 49: group.group.getGroupAllMember:output_type -> group.GetGroupAllMemberResp - 34, // 50: group.group.GetGroup:output_type -> group.GetGroupsResp - 34, // 51: group.group.GetGroups:output_type -> group.GetGroupsResp - 36, // [36:52] is the sub-list for method output_type - 20, // [20:36] is the sub-list for method input_type + 36, // 36: group.group.BanGroupChat:input_type -> group.BanGroupChatReq + 38, // 37: group.group.BanPrivateChat:input_type -> group.BanPrivateChatReq + 40, // 38: group.group.SetMaster:input_type -> group.SetMasterReq + 42, // 39: group.group.DeleteGroup:input_type -> group.DeleteGroupReq + 3, // 40: group.group.createGroup:output_type -> group.CreateGroupResp + 13, // 41: group.group.joinGroup:output_type -> group.JoinGroupResp + 17, // 42: group.group.quitGroup:output_type -> group.QuitGroupResp + 5, // 43: group.group.getGroupsInfo:output_type -> group.GetGroupsInfoResp + 7, // 44: group.group.setGroupInfo:output_type -> group.SetGroupInfoResp + 9, // 45: group.group.getGroupApplicationList:output_type -> group.GetGroupApplicationListResp + 11, // 46: group.group.transferGroupOwner:output_type -> group.TransferGroupOwnerResp + 15, // 47: group.group.groupApplicationResponse:output_type -> group.GroupApplicationResponseResp + 19, // 48: group.group.getGroupMemberList:output_type -> group.GetGroupMemberListResp + 21, // 49: group.group.getGroupMembersInfo:output_type -> group.GetGroupMembersInfoResp + 24, // 50: group.group.kickGroupMember:output_type -> group.KickGroupMemberResp + 26, // 51: group.group.getJoinedGroupList:output_type -> group.GetJoinedGroupListResp + 28, // 52: group.group.inviteUserToGroup:output_type -> group.InviteUserToGroupResp + 30, // 53: group.group.getGroupAllMember:output_type -> group.GetGroupAllMemberResp + 34, // 54: group.group.GetGroup:output_type -> group.GetGroupsResp + 34, // 55: group.group.GetGroups:output_type -> group.GetGroupsResp + 37, // 56: group.group.BanGroupChat:output_type -> group.BanGroupChatResp + 38, // 57: group.group.BanPrivateChat:output_type -> group.BanPrivateChatReq + 41, // 58: group.group.SetMaster:output_type -> group.SetMasterResp + 43, // 59: group.group.DeleteGroup:output_type -> group.DeleteGroupResp + 40, // [40:60] is the sub-list for method output_type + 20, // [20:40] is the sub-list for method input_type 20, // [20:20] is the sub-list for extension type_name 20, // [20:20] is the sub-list for extension extendee 0, // [0:20] is the sub-list for field type_name @@ -3180,6 +3618,102 @@ func file_group_group_proto_init() { return nil } } + file_group_group_proto_msgTypes[36].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*BanGroupChatReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_group_group_proto_msgTypes[37].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*BanGroupChatResp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_group_group_proto_msgTypes[38].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*BanPrivateChatReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_group_group_proto_msgTypes[39].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*BanPrivateChatResp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_group_group_proto_msgTypes[40].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SetMasterReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_group_group_proto_msgTypes[41].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SetMasterResp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_group_group_proto_msgTypes[42].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DeleteGroupReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_group_group_proto_msgTypes[43].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DeleteGroupResp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } } type x struct{} out := protoimpl.TypeBuilder{ @@ -3187,7 +3721,7 @@ func file_group_group_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_group_group_proto_rawDesc, NumEnums: 0, - NumMessages: 36, + NumMessages: 44, NumExtensions: 0, NumServices: 1, }, @@ -3229,6 +3763,10 @@ type GroupClient interface { GetGroupAllMember(ctx context.Context, in *GetGroupAllMemberReq, opts ...grpc.CallOption) (*GetGroupAllMemberResp, error) GetGroup(ctx context.Context, in *GetGroupReq, opts ...grpc.CallOption) (*GetGroupsResp, error) GetGroups(ctx context.Context, in *GetGroupsReq, opts ...grpc.CallOption) (*GetGroupsResp, error) + BanGroupChat(ctx context.Context, in *BanGroupChatReq, opts ...grpc.CallOption) (*BanGroupChatResp, error) + BanPrivateChat(ctx context.Context, in *BanPrivateChatReq, opts ...grpc.CallOption) (*BanPrivateChatReq, error) + SetMaster(ctx context.Context, in *SetMasterReq, opts ...grpc.CallOption) (*SetMasterResp, error) + DeleteGroup(ctx context.Context, in *DeleteGroupReq, opts ...grpc.CallOption) (*DeleteGroupResp, error) } type groupClient struct { @@ -3383,6 +3921,42 @@ func (c *groupClient) GetGroups(ctx context.Context, in *GetGroupsReq, opts ...g return out, nil } +func (c *groupClient) BanGroupChat(ctx context.Context, in *BanGroupChatReq, opts ...grpc.CallOption) (*BanGroupChatResp, error) { + out := new(BanGroupChatResp) + err := c.cc.Invoke(ctx, "/group.group/BanGroupChat", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *groupClient) BanPrivateChat(ctx context.Context, in *BanPrivateChatReq, opts ...grpc.CallOption) (*BanPrivateChatReq, error) { + out := new(BanPrivateChatReq) + err := c.cc.Invoke(ctx, "/group.group/BanPrivateChat", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *groupClient) SetMaster(ctx context.Context, in *SetMasterReq, opts ...grpc.CallOption) (*SetMasterResp, error) { + out := new(SetMasterResp) + err := c.cc.Invoke(ctx, "/group.group/SetMaster", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *groupClient) DeleteGroup(ctx context.Context, in *DeleteGroupReq, opts ...grpc.CallOption) (*DeleteGroupResp, error) { + out := new(DeleteGroupResp) + err := c.cc.Invoke(ctx, "/group.group/DeleteGroup", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + // GroupServer is the server API for Group service. type GroupServer interface { CreateGroup(context.Context, *CreateGroupReq) (*CreateGroupResp, error) @@ -3401,6 +3975,10 @@ type GroupServer interface { GetGroupAllMember(context.Context, *GetGroupAllMemberReq) (*GetGroupAllMemberResp, error) GetGroup(context.Context, *GetGroupReq) (*GetGroupsResp, error) GetGroups(context.Context, *GetGroupsReq) (*GetGroupsResp, error) + BanGroupChat(context.Context, *BanGroupChatReq) (*BanGroupChatResp, error) + BanPrivateChat(context.Context, *BanPrivateChatReq) (*BanPrivateChatReq, error) + SetMaster(context.Context, *SetMasterReq) (*SetMasterResp, error) + DeleteGroup(context.Context, *DeleteGroupReq) (*DeleteGroupResp, error) } // UnimplementedGroupServer can be embedded to have forward compatible implementations. @@ -3455,6 +4033,18 @@ func (*UnimplementedGroupServer) GetGroup(context.Context, *GetGroupReq) (*GetGr func (*UnimplementedGroupServer) GetGroups(context.Context, *GetGroupsReq) (*GetGroupsResp, error) { return nil, status.Errorf(codes.Unimplemented, "method GetGroups not implemented") } +func (*UnimplementedGroupServer) BanGroupChat(context.Context, *BanGroupChatReq) (*BanGroupChatResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method BanGroupChat not implemented") +} +func (*UnimplementedGroupServer) BanPrivateChat(context.Context, *BanPrivateChatReq) (*BanPrivateChatReq, error) { + return nil, status.Errorf(codes.Unimplemented, "method BanPrivateChat not implemented") +} +func (*UnimplementedGroupServer) SetMaster(context.Context, *SetMasterReq) (*SetMasterResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method SetMaster not implemented") +} +func (*UnimplementedGroupServer) DeleteGroup(context.Context, *DeleteGroupReq) (*DeleteGroupResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method DeleteGroup not implemented") +} func RegisterGroupServer(s *grpc.Server, srv GroupServer) { s.RegisterService(&_Group_serviceDesc, srv) @@ -3748,6 +4338,78 @@ func _Group_GetGroups_Handler(srv interface{}, ctx context.Context, dec func(int return interceptor(ctx, in, info, handler) } +func _Group_BanGroupChat_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(BanGroupChatReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(GroupServer).BanGroupChat(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/group.group/BanGroupChat", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(GroupServer).BanGroupChat(ctx, req.(*BanGroupChatReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _Group_BanPrivateChat_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(BanPrivateChatReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(GroupServer).BanPrivateChat(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/group.group/BanPrivateChat", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(GroupServer).BanPrivateChat(ctx, req.(*BanPrivateChatReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _Group_SetMaster_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(SetMasterReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(GroupServer).SetMaster(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/group.group/SetMaster", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(GroupServer).SetMaster(ctx, req.(*SetMasterReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _Group_DeleteGroup_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(DeleteGroupReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(GroupServer).DeleteGroup(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/group.group/DeleteGroup", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(GroupServer).DeleteGroup(ctx, req.(*DeleteGroupReq)) + } + return interceptor(ctx, in, info, handler) +} + var _Group_serviceDesc = grpc.ServiceDesc{ ServiceName: "group.group", HandlerType: (*GroupServer)(nil), @@ -3816,6 +4478,22 @@ var _Group_serviceDesc = grpc.ServiceDesc{ MethodName: "GetGroups", Handler: _Group_GetGroups_Handler, }, + { + MethodName: "BanGroupChat", + Handler: _Group_BanGroupChat_Handler, + }, + { + MethodName: "BanPrivateChat", + Handler: _Group_BanPrivateChat_Handler, + }, + { + MethodName: "SetMaster", + Handler: _Group_SetMaster_Handler, + }, + { + MethodName: "DeleteGroup", + Handler: _Group_DeleteGroup_Handler, + }, }, Streams: []grpc.StreamDesc{}, Metadata: "group/group.proto", diff --git a/pkg/proto/group/group.proto b/pkg/proto/group/group.proto index f7a9934e2..35b70ce03 100644 --- a/pkg/proto/group/group.proto +++ b/pkg/proto/group/group.proto @@ -218,6 +218,42 @@ message GetGroupMemberReq { string OperationID = 2; } +message BanGroupChatReq { + string GroupId = 1; + string OperationID = 2; +} + +message BanGroupChatResp { + +} + +message BanPrivateChatReq { + string GroupId = 1; + string OperationID = 2; +} + +message BanPrivateChatResp { + +} + +message SetMasterReq { + string GroupId = 1; + string UserId = 2; + string OperationID = 3; +} + +message SetMasterResp { + +} + +message DeleteGroupReq { + string GroupId = 1; + string OperationID = 2; +} + +message DeleteGroupResp { + +} service group{ rpc createGroup(CreateGroupReq) returns(CreateGroupResp); @@ -238,6 +274,10 @@ service group{ rpc GetGroup(GetGroupReq) returns(GetGroupsResp); rpc GetGroups(GetGroupsReq) returns(GetGroupsResp); + rpc BanGroupChat(BanGroupChatReq) returns(BanGroupChatResp); + rpc BanPrivateChat(BanPrivateChatReq) returns(BanPrivateChatReq); + rpc SetMaster(SetMasterReq) returns(SetMasterResp); + rpc DeleteGroup(DeleteGroupReq) returns(DeleteGroupResp); } diff --git a/pkg/proto/sdk_ws/ws.pb.go b/pkg/proto/sdk_ws/ws.pb.go index bd442452e..06034b669 100644 --- a/pkg/proto/sdk_ws/ws.pb.go +++ b/pkg/proto/sdk_ws/ws.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.27.1 -// protoc v3.15.5 +// protoc-gen-go v1.26.0 +// protoc v3.19.3 // source: sdk_ws/ws.proto package server_api_params From f952f715c81b37da2ac2808d16dac8e7c6167244 Mon Sep 17 00:00:00 2001 From: wangchuxiao Date: Wed, 26 Jan 2022 00:37:58 +0800 Subject: [PATCH 557/814] group pb --- pkg/cms_api_struct/group.go | 36 +++++++++++++++--------------------- 1 file changed, 15 insertions(+), 21 deletions(-) diff --git a/pkg/cms_api_struct/group.go b/pkg/cms_api_struct/group.go index 7948ade10..ac8c0d46a 100644 --- a/pkg/cms_api_struct/group.go +++ b/pkg/cms_api_struct/group.go @@ -1,13 +1,13 @@ package cms_api_struct type GroupResponse struct { - GroupName string `json:"group_name"` - GroupID string `json:"group_id"` - GroupMasterName string `json:"group_master_name"` - GroupMasterId string `json:"group_master_id"` - CreateTime string `json:"create_time"` - isBanChat bool `json:"is_ban_chat"` - isBanPrivateChat bool `json:"is_ban_private_chat"` + GroupName string `json:"group_name"` + GroupID string `json:"group_id"` + GroupMasterName string `json:"group_master_name"` + GroupMasterId string `json:"group_master_id"` + CreateTime string `json:"create_time"` + IsBanChat bool `json:"is_ban_chat"` + IsBanPrivateChat bool `json:"is_ban_private_chat"` } type GetGroupRequest struct { @@ -23,28 +23,26 @@ type GetGroupsRequest struct { } type GetGroupsResponse struct { - Groups []GroupResponse `json:"groups"` - GroupNums int `json:"group_nums"` + Groups []GroupResponse `json:"groups"` + GroupNums int `json:"group_nums"` ResponsePagination } type CreateGroupRequest struct { - GroupName string `json:"group_name"` - GroupMasterId string `json:"group_master_id"` - GroupMembers []string `json:"group_members"` + GroupName string `json:"group_name"` + GroupMasterId string `json:"group_master_id"` + GroupMembers []string `json:"group_members"` } type CreateGroupResponse struct { - } type SetGroupMasterRequest struct { GroupId string `json:"group_id"` - UserId string `json:"user_id"` + UserId string `json:"user_id"` } type SetGroupMasterResponse struct { - } type BanGroupChatRequest struct { @@ -52,24 +50,20 @@ type BanGroupChatRequest struct { } type BanGroupChatResponse struct { - } type BanPrivateChatRequest struct { GroupId string `json:"group_id"` - } type BanPrivateChatResponse struct { - } type DeleteGroupRequest struct { GroupId string `json:"group_id"` -} +} type DeleteGroupResponse struct { - } type GetGroupMemberRequest struct { @@ -85,6 +79,6 @@ type GroupMemberResponse struct { type GetGroupMemberResponse struct { GroupMemberList []GroupMemberResponse `json:"group_member_list"` - GroupMemberNums int `json:"group_member_nums"` + GroupMemberNums int `json:"group_member_nums"` ResponsePagination } From 84586b675a8e5699f0b70754d85b4995a4ae9dde Mon Sep 17 00:00:00 2001 From: wangchuxiao Date: Wed, 26 Jan 2022 09:53:49 +0800 Subject: [PATCH 558/814] group --- internal/cms_api/group/group.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/internal/cms_api/group/group.go b/internal/cms_api/group/group.go index ed8187e3a..4494b02f7 100644 --- a/internal/cms_api/group/group.go +++ b/internal/cms_api/group/group.go @@ -4,13 +4,13 @@ import ( "Open_IM/pkg/cms_api_struct" "Open_IM/pkg/common/config" "Open_IM/pkg/common/constant" - "Open_IM/pkg/common/log" openIMHttp "Open_IM/pkg/common/http" + "Open_IM/pkg/common/log" "Open_IM/pkg/grpc-etcdv3/getcdv3" "Open_IM/pkg/utils" + "context" "fmt" "strings" - "context" pbGroup "Open_IM/pkg/proto/group" "github.com/gin-gonic/gin" From b992faa468edd9cb7fae5d486cb60f17367b2bec Mon Sep 17 00:00:00 2001 From: wangchuxiao Date: Wed, 26 Jan 2022 18:43:01 +0800 Subject: [PATCH 559/814] group rpc --- internal/cms_api/group/group.go | 95 ++- internal/cms_api/router.go | 4 +- internal/cms_api/user/user.go | 48 +- internal/rpc/group/group.go | 66 ++- internal/rpc/user/user.go | 40 +- pkg/cms_api_struct/group.go | 13 +- pkg/cms_api_struct/user.go | 18 +- pkg/common/constant/constant.go | 21 + .../mysql_model/im_mysql_model/group_model.go | 66 ++- .../mysql_model/im_mysql_model/user_model.go | 76 ++- pkg/proto/group/group.pb.go | 421 +++++++------- pkg/proto/group/group.proto | 9 +- pkg/proto/sdk_ws/ws.pb.go | 10 +- pkg/proto/sdk_ws/ws.proto | 2 +- pkg/proto/user/user.pb.go | 546 +++++++++++++----- pkg/proto/user/user.proto | 17 +- 16 files changed, 1010 insertions(+), 442 deletions(-) diff --git a/internal/cms_api/group/group.go b/internal/cms_api/group/group.go index 4e9c2aa99..0b0242777 100644 --- a/internal/cms_api/group/group.go +++ b/internal/cms_api/group/group.go @@ -28,15 +28,27 @@ func GetGroups(c *gin.Context) { openIMHttp.RespHttp200(c, constant.ErrArgs, nil) return } + utils.CopyStructFields(&reqPb.Pagination, req) etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImGroupName) client := pbGroup.NewGroupClient(etcdConn) respPb, err := client.GetGroups(context.Background(), &reqPb) - fmt.Println(respPb) if err != nil { log.NewError("s", "GetUserInfo failed ", err.Error()) openIMHttp.RespHttp200(c, constant.ErrServer, nil) return } + for _, v := range respPb.GroupInfo { + resp.Groups = append(resp.Groups, cms_api_struct.GroupResponse{ + GroupName: v.GroupName, + GroupID: v.GroupID, + GroupMasterName: v.OwnerUserID, + GroupMasterId: v.OwnerUserID, + CreateTime: (utils.UnixSecondToTime(int64(v.CreateTime))).String(), + IsBanChat: false, + IsBanPrivateChat: false, + ProfilePhoto: v.FaceURL, + }) + } openIMHttp.RespHttp200(c, constant.OK, resp) } @@ -52,16 +64,28 @@ func GetGroup(c *gin.Context) { openIMHttp.RespHttp200(c, constant.ErrArgs, nil) return } - utils.CopyStructFields(&reqPb, req) + reqPb.GroupName = req.GroupName + fmt.Println(reqPb) etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImGroupName) client := pbGroup.NewGroupClient(etcdConn) respPb, err := client.GetGroup(context.Background(), &reqPb) - fmt.Println(respPb) if err != nil { log.NewError("s", "GetUserInfo failed ", err.Error()) openIMHttp.RespHttp200(c, constant.ErrServer, nil) return } + for _, v := range respPb.GroupInfo { + resp.Groups = append(resp.Groups, cms_api_struct.GroupResponse{ + GroupName: v.GroupName, + GroupID: v.GroupID, + GroupMasterName: v.OwnerUserID, + GroupMasterId: v.OwnerUserID, + CreateTime: (utils.UnixSecondToTime(int64(v.CreateTime))).String(), + IsBanChat: false, + IsBanPrivateChat: false, + ProfilePhoto: v.FaceURL, + }) + } openIMHttp.RespHttp200(c, constant.OK, resp) } @@ -86,32 +110,67 @@ func CreateGroup(c *gin.Context) { openIMHttp.RespHttp200(c, constant.ErrServer, nil) return } + fmt.Println(respPb) openIMHttp.RespHttp200(c, constant.OK, resp) } func BanGroupChat(c *gin.Context) { var ( req cms_api_struct.BanGroupChatRequest - resp cms_api_struct.BanGroupChatResponse + reqPb pbGroup.BanGroupChatReq ) + if err := c.BindJSON(&req); err != nil { + log.NewError("0", "ShouldBindQuery failed ", err.Error()) + openIMHttp.RespHttp200(c, constant.ErrArgs, nil) + return + } + reqPb.GroupId = req.GroupId + etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImGroupName) + client := pbGroup.NewGroupClient(etcdConn) + _, err := client.BanGroupChat(context.Background(), &reqPb) + if err != nil { + log.NewError("s", "GetUserInfo failed ", err.Error()) + openIMHttp.RespHttp200(c, constant.ErrServer, nil) + return + } + openIMHttp.RespHttp200(c, constant.OK, nil) } func BanPrivateChat(c *gin.Context) { var ( req cms_api_struct.BanPrivateChatRequest - resp cms_api_struct.BanPrivateChatResponse + reqPb pbGroup.BanPrivateChatReq ) - + if err := c.BindJSON(&req); err != nil { + log.NewError("0", "BindJSON failed ", err.Error()) + openIMHttp.RespHttp200(c, constant.ErrArgs, nil) + return + } + reqPb.GroupId = req.GroupId + etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImGroupName) + client := pbGroup.NewGroupClient(etcdConn) + _, err := client.BanPrivateChat(context.Background(), &reqPb) + if err != nil { + log.NewError("s", "GetUserInfo failed ", err.Error()) + openIMHttp.RespHttp200(c, constant.ErrServer, nil) + return + } + openIMHttp.RespHttp200(c, constant.OK, nil) } -func SearchGroupsMember(c *gin.Context) { - +func GetGroupsMember(c *gin.Context) { + var ( + req cms_api_struct.GetGroupMembersRequest + _ cms_api_struct.GetGroupMembersResponse + ) + if err := c.BindJSON(&req); err != nil { + log.NewError("0", "BindJSON failed ", err.Error()) + openIMHttp.RespHttp200(c, constant.ErrArgs, nil) + return + } } -func AddUsers(c *gin.Context) { - -} func InquireMember(c *gin.Context) { @@ -121,30 +180,16 @@ func InquireGroup(c *gin.Context) { } -func AddGroupMember(c *gin.Context) { - -} func AddMembers(c *gin.Context) { } -func SetMaster(c *gin.Context) { - -} - -func BlockUser(c *gin.Context) { - -} func RemoveUser(c *gin.Context) { } -func BanPrivateChat(c *gin.Context) { - -} - func Withdraw(c *gin.Context) { } diff --git a/internal/cms_api/router.go b/internal/cms_api/router.go index 01f5e60ae..fc5d4647b 100644 --- a/internal/cms_api/router.go +++ b/internal/cms_api/router.go @@ -55,7 +55,7 @@ func NewGinRouter() *gin.Engine { messageRouterGroup.GET("/search_message_by_group", message.SearchMessageByGroup) messageRouterGroup.POST("/withdraw_message", message.Withdraw) } - groupRouterGroup := router.Group("/groups") + groupRouterGroup := router.Group("/group") { groupRouterGroup.GET("/get_groups", group.GetGroups) groupRouterGroup.GET("/get_group", group.GetGroup) @@ -70,6 +70,7 @@ func NewGinRouter() *gin.Engine { groupRouterGroup.POST("/ban_private_chat", group.BanPrivateChat) groupRouterGroup.POST("/withdraw_message", group.Withdraw) groupRouterGroup.POST("/search_group_message", group.SearchMessage) + groupRouterGroup.POST("/ban_group_chat", group.BanGroupChat) } userRouterGroup := router.Group("/user") { @@ -81,6 +82,7 @@ func NewGinRouter() *gin.Engine { userRouterGroup.POST("/unblock_user", user.UnblockUser) userRouterGroup.POST("/block_user", user.BlockUser) userRouterGroup.GET("/get_block_users", user.GetBlockUsers) + userRouterGroup.GET("/get_block_user", user.GetBlockUser) } return baseRouter } diff --git a/internal/cms_api/user/user.go b/internal/cms_api/user/user.go index e3678e20d..02fe268a2 100644 --- a/internal/cms_api/user/user.go +++ b/internal/cms_api/user/user.go @@ -12,11 +12,9 @@ import ( "Open_IM/pkg/utils" "context" "fmt" + "github.com/gin-gonic/gin" "net/http" "strings" - "time" - - "github.com/gin-gonic/gin" ) func GetUser(c *gin.Context) { @@ -129,7 +127,6 @@ func AddUser(c *gin.Context) { openIMHttp.RespHttp200(c, constant.ErrArgs, nil) return } - fmt.Println(time.Now().String()) utils.CopyStructFields(&reqPb, &req) etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImUserName) client := pb.NewUserClient(etcdConn) @@ -174,10 +171,10 @@ func UnblockUser(c *gin.Context) { ) if err := c.ShouldBind(&req); err != nil { log.NewError("0", "BindJSON failed ", err.Error()) - c.JSON(http.StatusBadRequest, gin.H{"errCode": http.StatusBadRequest, "errMsg": err.Error()}) + openIMHttp.RespHttp200(c, constant.ErrArgs, resp) return } - fmt.Println(reqPb, req) + utils.CopyStructFields(&reqPb, &req) etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImUserName) client := pb.NewUserClient(etcdConn) _, err := client.UnBlockUser(context.Background(), &reqPb) @@ -210,9 +207,46 @@ func GetBlockUsers(c *gin.Context) { openIMHttp.RespHttp200(c, constant.ErrServer, resp) return } - utils.CopyStructFields(&resp.BlockUsers, respPb.User) + for _, v := range respPb.BlockUsers{ + resp.BlockUsers = append(resp.BlockUsers, cms_api_struct.BlockUser{ + UserResponse: cms_api_struct.UserResponse{ + UserId:v.User.UserId, + ProfilePhoto:v.User.ProfilePhoto, + Nickname: v.User.Nickname, + IsBlock: v.User.IsBlock, + CreateTime: v.User.CreateTime, + }, + BeginDisableTime: v.BeginDisableTime, + EndDisableTime: v.EndDisableTime, + }) + } resp.BlockUserNum = int(respPb.BlockUserNum) resp.ShowNumber = int(respPb.Pagination.ShowNumber) resp.CurrentPage = int(respPb.Pagination.CurrentPage) openIMHttp.RespHttp200(c, constant.OK, resp) } + + +func GetBlockUser(c *gin.Context) { + var ( + req cms_api_struct.GetBlockUserRequest + resp cms_api_struct.GetBlockUserResponse + reqPb pb.GetBlockUserReq + ) + if err := c.ShouldBindQuery(&req); err != nil { + log.NewError("0", "BindJSON failed ", err.Error()) + openIMHttp.RespHttp200(c, constant.ErrArgs, nil) + return + } + etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImUserName) + client := pb.NewUserClient(etcdConn) + respPb, err := client.GetBlockUser(context.Background(), &reqPb) + if err != nil { + openIMHttp.RespHttp200(c, constant.ErrServer, resp) + return + } + resp.EndDisableTime = respPb.BlockUser.EndDisableTime + resp.BeginDisableTime = respPb.BlockUser.BeginDisableTime + utils.CopyStructFields(&resp, respPb.BlockUser.User) + openIMHttp.RespHttp200(c, constant.OK, resp) +} \ No newline at end of file diff --git a/internal/rpc/group/group.go b/internal/rpc/group/group.go index 08ba7be23..ecd0b4d27 100644 --- a/internal/rpc/group/group.go +++ b/internal/rpc/group/group.go @@ -641,15 +641,24 @@ func (s *groupServer) TransferGroupOwner(_ context.Context, req *pbGroup.Transfe func (s *groupServer) GetGroup(_ context.Context, req *pbGroup.GetGroupReq) (*pbGroup.GetGroupResp, error) { log.NewInfo(req.OperationID, "GetGroup ", req.String()) - group, err := imdb.GetGroupByName(req.GroupName) + resp := &pbGroup.GetGroupResp{ + GroupInfo: []*open_im_sdk.GroupInfo{}, + } + groups, err := imdb.GetGroupsByName(req.GroupName, req.Pagination.PageNumber, req.Pagination.ShowNumber) if err != nil { return nil, err } - resp := &pbGroup.GetGroupResp{ - GroupInfo: &open_im_sdk.GroupInfo{ - }, + for _, v:= range groups { + resp.GroupInfo = append(resp.GroupInfo, &open_im_sdk.GroupInfo{ + GroupID: v.GroupID, + GroupName: v.GroupName, + FaceURL: v.FaceUrl, + OwnerUserID: v.CreatorUserID, + Status: v.Status, + CreatorUserID: v.CreatorUserID, + }) } - utils.CopyStructFields(resp.GroupInfo, group) + utils.CopyStructFields(resp.GroupInfo, groups) return resp, nil } @@ -660,9 +669,54 @@ func (s *groupServer) GetGroups(_ context.Context, req *pbGroup.GetGroupsReq) (* return nil, err } resp := &pbGroup.GetGroupsResp{ - GroupInfo: []*open_im_sdk.GroupInfo, + GroupInfo: []*open_im_sdk.GroupInfo{}, + } + for _, v:= range groups { + resp.GroupInfo = append(resp.GroupInfo, &open_im_sdk.GroupInfo{ + GroupID: v.GroupID, + GroupName: v.GroupName, + FaceURL: v.FaceUrl, + OwnerUserID: v.CreatorUserID, + Status: v.Status, + CreatorUserID: v.CreatorUserID, + }) } utils.CopyStructFields(resp.GroupInfo, groups) return resp, nil } +func (s *groupServer) BanGroupChat(_ context.Context, req *pbGroup.BanGroupChatReq) (*pbGroup.BanGroupChatResp, error){ + log.NewInfo(req.OperationID, "BanGroupChat ", req.String()) + resp := &pbGroup.BanGroupChatResp{} + if err := imdb.BanGroupChat(req.GroupId); err != nil { + return resp, err + } + return resp, nil +} + +func (s *groupServer) BanPrivateChat(_ context.Context, req *pbGroup.BanPrivateChatReq) (*pbGroup.BanPrivateChatResp, error) { + log.NewInfo(req.OperationID, "BanPrivateChat ", req.String()) + resp := &pbGroup.BanPrivateChatResp{} + if err := imdb.BanPrivateChat(req.GroupId); err != nil { + return resp, err + } + return resp, nil +} + +func (s *groupServer) DeleteGroup(_ context.Context, req *pbGroup.DeleteGroupReq) (*pbGroup.DeleteGroupResp, error) { + log.NewInfo(req.OperationID, "DeleteGroup ", req.String()) + resp := &pbGroup.DeleteGroupResp{} + if err := imdb.DeleteGroup(req.GroupId); err != nil { + return resp, err + } + return resp, nil +} + +func (s *groupServer) SetMaster(_ context.Context, req *pbGroup.SetMasterReq) (*pbGroup.SetMasterResp, error) { + log.NewInfo(req.OperationID, "DeleteGroup ", req.String()) + resp := &pbGroup.SetMasterResp{} + if err := imdb.SetGroupMaster(req.UserId, req.GroupId); err != nil { + return resp, err + } + return resp, nil +} diff --git a/internal/rpc/user/user.go b/internal/rpc/user/user.go index d317d53c5..cde774647 100644 --- a/internal/rpc/user/user.go +++ b/internal/rpc/user/user.go @@ -316,6 +316,7 @@ func (s *userServer) BlockUser(ctx context.Context, req *pbUser.BlockUserReq) (* resp := &pbUser.BlockUserResp{} err := imdb.BlockUser(req.UserId, req.EndDisableTime) if err != nil { + fmt.Println(err) return resp, constant.ErrDB } return resp, nil @@ -323,7 +324,6 @@ func (s *userServer) BlockUser(ctx context.Context, req *pbUser.BlockUserReq) (* func (s *userServer) UnBlockUser(ctx context.Context, req *pbUser.UnBlockUserReq) (*pbUser.UnBlockUserResp, error) { log.NewInfo(req.OperationID, "UnBlockUser args ", req.String()) - fmt.Println(req.UserId) resp := &pbUser.UnBlockUserResp{} err := imdb.UnBlockUser(req.UserId) if err != nil { @@ -332,10 +332,12 @@ func (s *userServer) UnBlockUser(ctx context.Context, req *pbUser.UnBlockUserReq return resp, nil } +//func (s *userServer) GetBlockUser(ctx context.Context, req *pbUser.GetBlockUserReq) + func (s *userServer) GetBlockUsers(ctx context.Context, req *pbUser.GetBlockUsersReq) (*pbUser.GetBlockUsersResp, error) { log.NewInfo(req.OperationID, "GetBlockUsers args ", req.String()) resp := &pbUser.GetBlockUsersResp{} - blockUserIds, err := imdb.GetBlockUsersID(req.Pagination.ShowNumber, req.Pagination.PageNumber) + blockUsers, err := imdb.GetBlockUsers(req.Pagination.ShowNumber, req.Pagination.PageNumber) if err != nil { return resp, constant.ErrDB } @@ -344,21 +346,35 @@ func (s *userServer) GetBlockUsers(ctx context.Context, req *pbUser.GetBlockUser return resp, constant.ErrDB } resp.BlockUserNum = int32(usersNum) - blockUsers, err := imdb.GetBlockUsers(blockUserIds) - if err != nil { - return resp, constant.ErrDB - } for _, v := range blockUsers { - resp.User = append(resp.User, &pbUser.User{ - ProfilePhoto: v.FaceURL, - Nickname: v.Nickname, - UserId: v.UserID, - CreateTime: v.CreateTime.String(), - IsBlock: true, + resp.BlockUsers = append(resp.BlockUsers, &pbUser.BlockUser{ + User: &pbUser.User{ + ProfilePhoto: v.User.FaceURL, + Nickname: v.User.Nickname, + UserId: v.User.UserID, + IsBlock: true, + }, + BeginDisableTime: (v.BeginDisableTime).String(), + EndDisableTime: (v.EndDisableTime).String(), }) } resp.Pagination = &sdkws.ResponsePagination{} resp.Pagination.ShowNumber = req.Pagination.ShowNumber resp.Pagination.CurrentPage = req.Pagination.PageNumber + fmt.Println(resp) return resp, nil } + +func (s *userServer) GetBlockUser(_ context.Context, req *pbUser.GetBlockUserReq) (*pbUser.GetBlockUserResp, error) { + log.NewInfo(req.OperationID, "GetBlockUser args ", req.String()) + resp := &pbUser.GetBlockUserResp{} + user, err := imdb.GetBlockUserById(req.UserId) + if err != nil{ + return resp, err + } + resp.BlockUser = &pbUser.BlockUser{} + resp.BlockUser.BeginDisableTime = (user.BeginDisableTime).String() + resp.BlockUser.EndDisableTime = (user.EndDisableTime).String() + return resp, nil + +} \ No newline at end of file diff --git a/pkg/cms_api_struct/group.go b/pkg/cms_api_struct/group.go index ac8c0d46a..86ef86467 100644 --- a/pkg/cms_api_struct/group.go +++ b/pkg/cms_api_struct/group.go @@ -8,14 +8,18 @@ type GroupResponse struct { CreateTime string `json:"create_time"` IsBanChat bool `json:"is_ban_chat"` IsBanPrivateChat bool `json:"is_ban_private_chat"` + ProfilePhoto string `json:"profile_photo"` } type GetGroupRequest struct { - GroupName string `form:"group_name"` + GroupName string `form:"group_name" binding:"required"` + RequestPagination } type GetGroupResponse struct { - GroupResponse + Groups []GroupResponse `json:"groups"` + GroupNums int `json:"group_nums"` + ResponsePagination } type GetGroupsRequest struct { @@ -66,8 +70,9 @@ type DeleteGroupRequest struct { type DeleteGroupResponse struct { } -type GetGroupMemberRequest struct { +type GetGroupMembersRequest struct { GroupId string `json:"group_id"` + RequestPagination } type GroupMemberResponse struct { @@ -77,7 +82,7 @@ type GroupMemberResponse struct { JoinTime string `json:"join_time"` } -type GetGroupMemberResponse struct { +type GetGroupMembersResponse struct { GroupMemberList []GroupMemberResponse `json:"group_member_list"` GroupMemberNums int `json:"group_member_nums"` ResponsePagination diff --git a/pkg/cms_api_struct/user.go b/pkg/cms_api_struct/user.go index 38d73dfaa..875e999ea 100644 --- a/pkg/cms_api_struct/user.go +++ b/pkg/cms_api_struct/user.go @@ -4,7 +4,7 @@ type UserResponse struct { ProfilePhoto string `json:"profile_photo"` Nickname string `json:"nick_name"` UserId string `json:"user_id"` - CreateTime string `json:"create_time"` + CreateTime string `json:"create_time,omitempty"` IsBlock bool `json:"is_block"` } @@ -49,6 +49,12 @@ type AddUserRequest struct { type AddUserResponse struct { } +type BlockUser struct { + UserResponse + BeginDisableTime string `json:"begin_disable_time"` + EndDisableTime string `json:"end_disable_time"` +} + type BlockUserRequest struct { UserId string `json:"user_id" binding:"required"` EndDisableTime string `json:"end_disable_time" binding:"required"` @@ -69,7 +75,15 @@ type GetBlockUsersRequest struct { } type GetBlockUsersResponse struct { - BlockUsers []UserResponse `json:"block_users"` + BlockUsers []BlockUser `json:"block_users"` BlockUserNum int `json:"block_user_num"` ResponsePagination } + +type GetBlockUserRequest struct { + UserId string `form:"user_id" binding:"required"` +} + +type GetBlockUserResponse struct { + BlockUser +} \ No newline at end of file diff --git a/pkg/common/constant/constant.go b/pkg/common/constant/constant.go index 6e32cea2e..2b8bfc985 100644 --- a/pkg/common/constant/constant.go +++ b/pkg/common/constant/constant.go @@ -107,6 +107,13 @@ const ( IsUnreadCount = "unreadCount" IsConversationUpdate = "conversationUpdate" IsSenderSync = "senderSync" + + //GroupStatus + GroupOk = 0 + GroupBanChat = 1 + GroupDisband = 2 + GroupBaned = 3 + GroupBanPrivateChat = 4 ) var ContentType2PushContent = map[int64]string{ @@ -139,3 +146,17 @@ const ( ) const FriendAcceptTip = "You have successfully become friends, so start chatting" + +func GroupIsBanChat(status int32) bool { + if status != GroupBanChat { + return false + } + return true +} + +func GroupIsBanPrivateChat(status int32) bool { + if status != GroupBanPrivateChat { + return false + } + return true +} \ No newline at end of file diff --git a/pkg/common/db/mysql_model/im_mysql_model/group_model.go b/pkg/common/db/mysql_model/im_mysql_model/group_model.go index 0795769f5..094aecc9a 100644 --- a/pkg/common/db/mysql_model/im_mysql_model/group_model.go +++ b/pkg/common/db/mysql_model/im_mysql_model/group_model.go @@ -1,6 +1,7 @@ package im_mysql_model import ( + "Open_IM/pkg/common/constant" "Open_IM/pkg/common/db" "Open_IM/pkg/utils" "time" @@ -53,19 +54,20 @@ func SetGroupInfo(groupInfo db.Group) error { if err != nil { return err } + dbConn.LogMode(true) err = dbConn.Table("groups").Where("group_id=?", groupInfo.GroupID).Update(&groupInfo).Error return err } -func GetGroupByName(groupName string) (db.Group, error) { +func GetGroupsByName(groupName string, pageNumber, showNumber int32) ([]db.Group, error) { dbConn, err := db.DB.MysqlDB.DefaultGormDB() - var group db.Group + var groups []db.Group if err != nil { - return group, err + return groups, err } dbConn.LogMode(true) - err = dbConn.Table("groups").Where("group_id=?", groupName).Find(&group).Error - return group, err + err = dbConn.Table("groups").Where("name=?", groupName).Limit(showNumber).Offset(showNumber*(pageNumber-1)).Find(&groups).Error + return groups, err } func GetGroups(pageNumber, showNumber int) ([]db.Group, error) { @@ -75,8 +77,58 @@ func GetGroups(pageNumber, showNumber int) ([]db.Group, error) { return groups, err } dbConn.LogMode(true) - err = dbConn.Table("groups").Limit(showNumber).Offset(showNumber*(pageNumber-1)).Find(&groups).Error - if err != nil { + if err = dbConn.Table("groups").Limit(showNumber).Offset(showNumber*(pageNumber-1)).Find(&groups).Error; err != nil { return groups, err } + return groups, nil +} + +func BanGroupChat(groupId string) error { + var group db.Group + group.Status = constant.GroupBanChat + if err := SetGroupInfo(group); err != nil { + return err + } + return nil +} + +func BanPrivateChat(groupId string) error { + var group db.Group + group.Status = constant.GroupBanPrivateChat + if err := SetGroupInfo(group); err != nil { + return err + } + return nil +} + +func DeleteGroup(groupId string) error { + dbConn, err := db.DB.MysqlDB.DefaultGormDB() + if err != nil { + return err + } + dbConn.LogMode(true) + var group db.Group + if err := dbConn.Table("groups").Where("").Delete(&group).Error; err != nil { + return err + } + return nil +} + +func SetGroupMaster(userId, groupId string) error { + dbConn, err := db.DB.MysqlDB.DefaultGormDB() + if err != nil { + return err + } + dbConn.LogMode(true) + groupMember := db.GroupMember{ + UserID: userId, + GroupID: groupId, + } + updateInfo := db.GroupMember{ + RoleLevel:constant.GroupOwner, + } + if err := dbConn.Find(&groupMember).Update(updateInfo).Error; err != nil { + return err + } + return nil } \ No newline at end of file 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 b1be24d8b..e70a94e4f 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 @@ -180,6 +180,10 @@ func UserIsBlock(userId string) (bool, error) { } func BlockUser(userId, endDisableTime string) error { + user, err := GetUserByUserID(userId) + if err != nil || user.UserID=="" { + return err + } dbConn, err := db.DB.MysqlDB.DefaultGormDB() if err != nil { return err @@ -191,18 +195,18 @@ func BlockUser(userId, endDisableTime string) error { if end.Before(time.Now()) { return constant.ErrDB } - var user db.BlackList - dbConn.Table("black_list").Where("uid=?", userId).First(&user) - if user.UserId != "" { - dbConn.Model(&user).Where("uid=?", user.UserId).Update("end_disable_time", end) + var blockUser db.BlackList + dbConn.Table("black_list").Where("uid=?", userId).First(&blockUser) + if blockUser.UserId != "" { + dbConn.Model(&blockUser).Where("uid=?", blockUser.UserId).Update("end_disable_time", end) return nil } - user = db.BlackList{ + blockUser = db.BlackList{ UserId: userId, BeginDisableTime: time.Now(), EndDisableTime: end, } - result := dbConn.Create(&user) + result := dbConn.Create(&blockUser) return result.Error } @@ -212,38 +216,64 @@ func UnBlockUser(userId string) error { return err } dbConn.LogMode(true) - fmt.Println(userId) result := dbConn.Where("uid=?", userId).Delete(&db.BlackList{}) return result.Error } -func GetBlockUsersID(showNumber, pageNumber int32) ([]string, error) { +type BlockUserInfo struct { + User db.Users + BeginDisableTime time.Time + EndDisableTime time.Time +} + +func GetBlockUserById(userId string) (BlockUserInfo, error) { dbConn, err := db.DB.MysqlDB.DefaultGormDB() - var blockUsers []db.BlackList - var blockUserIds []string - if err != nil { - return blockUserIds, err + var blockUserInfo BlockUserInfo + blockUser := db.BlackList{ + UserId:userId, } - dbConn.LogMode(true) - err = dbConn.Limit(showNumber).Offset(showNumber*(pageNumber-1)).Find(&blockUsers).Error if err != nil { - return blockUserIds, err + return blockUserInfo, err + } + if err = dbConn.Find(&blockUser).Error; err != nil{ + return blockUserInfo, err + } + user := db.Users{ + UserID:blockUser.UserId, } - for _, v := range blockUsers { - blockUserIds = append(blockUserIds, v.UserId) + if err := dbConn.Find(&user).Error; err != nil { + return blockUserInfo, err } - return blockUserIds, err + blockUserInfo.User.UserID = user.UserID + blockUserInfo.User.FaceURL = user.UserID + blockUserInfo.User.Nickname = user.Nickname + return blockUserInfo, nil } -func GetBlockUsers(userIds []string) ([]db.Users, error){ +func GetBlockUsers(showNumber, pageNumber int32) ([]BlockUserInfo, error) { dbConn, err := db.DB.MysqlDB.DefaultGormDB() - var blockUsers []db.Users + var blockUserInfos []BlockUserInfo + var blockUsers []db.BlackList if err != nil { - return blockUsers, err + return blockUserInfos, err } dbConn.LogMode(true) - dbConn.Find(&blockUsers,userIds) - return blockUsers, err + err = dbConn.Limit(showNumber).Offset(showNumber*(pageNumber-1)).Find(&blockUsers).Error + for _, blockUser := range blockUsers { + var user db.Users + if err := dbConn.Table("users").Where("user_id=?", blockUser.UserId).First(&user).Error; err == nil{ + blockUserInfos = append(blockUserInfos, BlockUserInfo{ + User: db.Users{ + UserID: user.UserID, + Nickname: user.Nickname, + FaceURL: user.FaceURL, + }, + BeginDisableTime: blockUser.BeginDisableTime, + EndDisableTime: blockUser.EndDisableTime, + }) + } + } + return blockUserInfos, nil } func GetBlockUsersNumCount() (int, error) { diff --git a/pkg/proto/group/group.pb.go b/pkg/proto/group/group.pb.go index 01936f9d7..74af41d22 100644 --- a/pkg/proto/group/group.pb.go +++ b/pkg/proto/group/group.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.26.0 -// protoc v3.19.3 +// protoc-gen-go v1.27.1 +// protoc v3.15.5 // source: group/group.proto package group @@ -2007,8 +2007,9 @@ type GetGroupReq struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - GroupName string `protobuf:"bytes,1,opt,name=GroupName,proto3" json:"GroupName,omitempty"` - OperationID string `protobuf:"bytes,2,opt,name=OperationID,proto3" json:"OperationID,omitempty"` + GroupName string `protobuf:"bytes,1,opt,name=GroupName,proto3" json:"GroupName,omitempty"` + Pagination *sdk_ws.RequestPagination `protobuf:"bytes,2,opt,name=Pagination,proto3" json:"Pagination,omitempty"` + OperationID string `protobuf:"bytes,3,opt,name=OperationID,proto3" json:"OperationID,omitempty"` } func (x *GetGroupReq) Reset() { @@ -2050,6 +2051,13 @@ func (x *GetGroupReq) GetGroupName() string { return "" } +func (x *GetGroupReq) GetPagination() *sdk_ws.RequestPagination { + if x != nil { + return x.Pagination + } + return nil +} + func (x *GetGroupReq) GetOperationID() string { if x != nil { return x.OperationID @@ -2062,7 +2070,7 @@ type GetGroupResp struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - GroupInfo *sdk_ws.GroupInfo `protobuf:"bytes,1,opt,name=GroupInfo,proto3" json:"GroupInfo,omitempty"` + GroupInfo []*sdk_ws.GroupInfo `protobuf:"bytes,1,rep,name=GroupInfo,proto3" json:"GroupInfo,omitempty"` } func (x *GetGroupResp) Reset() { @@ -2097,7 +2105,7 @@ func (*GetGroupResp) Descriptor() ([]byte, []int) { return file_group_group_proto_rawDescGZIP(), []int{32} } -func (x *GetGroupResp) GetGroupInfo() *sdk_ws.GroupInfo { +func (x *GetGroupResp) GetGroupInfo() []*sdk_ws.GroupInfo { if x != nil { return x.GroupInfo } @@ -2901,152 +2909,156 @@ var file_group_group_proto_rawDesc = []byte{ 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x46, 0x75, 0x6c, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0a, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x22, - 0x4d, 0x0a, 0x0b, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x12, 0x1c, - 0x0a, 0x09, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x09, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, - 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x22, 0x4a, - 0x0a, 0x0c, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x12, 0x3a, - 0x0a, 0x09, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x1c, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, - 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x52, - 0x09, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0x76, 0x0a, 0x0c, 0x47, 0x65, - 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x52, 0x65, 0x71, 0x12, 0x44, 0x0a, 0x0a, 0x50, 0x61, - 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, - 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, - 0x6d, 0x73, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0a, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x49, 0x44, 0x22, 0x4b, 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x52, - 0x65, 0x73, 0x70, 0x12, 0x3a, 0x0a, 0x09, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x66, 0x6f, - 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, - 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, - 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x09, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x22, - 0x4f, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, - 0x72, 0x52, 0x65, 0x71, 0x12, 0x18, 0x0a, 0x07, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x12, 0x20, - 0x0a, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, - 0x22, 0x4d, 0x0a, 0x0f, 0x42, 0x61, 0x6e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x43, 0x68, 0x61, 0x74, - 0x52, 0x65, 0x71, 0x12, 0x18, 0x0a, 0x07, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x12, 0x20, 0x0a, - 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x22, - 0x12, 0x0a, 0x10, 0x42, 0x61, 0x6e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x43, 0x68, 0x61, 0x74, 0x52, - 0x65, 0x73, 0x70, 0x22, 0x4f, 0x0a, 0x11, 0x42, 0x61, 0x6e, 0x50, 0x72, 0x69, 0x76, 0x61, 0x74, - 0x65, 0x43, 0x68, 0x61, 0x74, 0x52, 0x65, 0x71, 0x12, 0x18, 0x0a, 0x07, 0x47, 0x72, 0x6f, 0x75, + 0x93, 0x01, 0x0a, 0x0b, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x12, + 0x1c, 0x0a, 0x09, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x09, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x44, 0x0a, + 0x0a, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x24, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, + 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x50, 0x61, 0x67, + 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0a, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x22, 0x4a, 0x0a, 0x0c, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, + 0x70, 0x52, 0x65, 0x73, 0x70, 0x12, 0x3a, 0x0a, 0x09, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, + 0x66, 0x6f, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, + 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x47, 0x72, 0x6f, + 0x75, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x09, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x66, + 0x6f, 0x22, 0x76, 0x0a, 0x0c, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x52, 0x65, + 0x71, 0x12, 0x44, 0x0a, 0x0a, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, + 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0a, 0x50, 0x61, 0x67, + 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x4f, 0x70, + 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x22, 0x4b, 0x0a, 0x0d, 0x47, 0x65, 0x74, + 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x52, 0x65, 0x73, 0x70, 0x12, 0x3a, 0x0a, 0x09, 0x47, 0x72, + 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, + 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, + 0x73, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x09, 0x47, 0x72, 0x6f, + 0x75, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0x4f, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, + 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x65, 0x71, 0x12, 0x18, 0x0a, 0x07, 0x47, + 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x47, 0x72, + 0x6f, 0x75, 0x70, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x4f, 0x70, 0x65, 0x72, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x22, 0x4d, 0x0a, 0x0f, 0x42, 0x61, 0x6e, 0x47, 0x72, + 0x6f, 0x75, 0x70, 0x43, 0x68, 0x61, 0x74, 0x52, 0x65, 0x71, 0x12, 0x18, 0x0a, 0x07, 0x47, 0x72, + 0x6f, 0x75, 0x70, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x47, 0x72, 0x6f, + 0x75, 0x70, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x22, 0x12, 0x0a, 0x10, 0x42, 0x61, 0x6e, 0x47, 0x72, 0x6f, + 0x75, 0x70, 0x43, 0x68, 0x61, 0x74, 0x52, 0x65, 0x73, 0x70, 0x22, 0x4f, 0x0a, 0x11, 0x42, 0x61, + 0x6e, 0x50, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x43, 0x68, 0x61, 0x74, 0x52, 0x65, 0x71, 0x12, + 0x18, 0x0a, 0x07, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x07, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x70, 0x65, + 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, + 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x22, 0x14, 0x0a, 0x12, 0x42, + 0x61, 0x6e, 0x50, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x43, 0x68, 0x61, 0x74, 0x52, 0x65, 0x73, + 0x70, 0x22, 0x62, 0x0a, 0x0c, 0x53, 0x65, 0x74, 0x4d, 0x61, 0x73, 0x74, 0x65, 0x72, 0x52, 0x65, + 0x71, 0x12, 0x18, 0x0a, 0x07, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x07, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x55, + 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x55, 0x73, 0x65, + 0x72, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x22, 0x0f, 0x0a, 0x0d, 0x53, 0x65, 0x74, 0x4d, 0x61, 0x73, 0x74, + 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x22, 0x4c, 0x0a, 0x0e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, + 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x12, 0x18, 0x0a, 0x07, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x49, 0x44, 0x22, 0x14, 0x0a, 0x12, 0x42, 0x61, 0x6e, 0x50, 0x72, 0x69, 0x76, 0x61, - 0x74, 0x65, 0x43, 0x68, 0x61, 0x74, 0x52, 0x65, 0x73, 0x70, 0x22, 0x62, 0x0a, 0x0c, 0x53, 0x65, - 0x74, 0x4d, 0x61, 0x73, 0x74, 0x65, 0x72, 0x52, 0x65, 0x71, 0x12, 0x18, 0x0a, 0x07, 0x47, 0x72, - 0x6f, 0x75, 0x70, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x47, 0x72, 0x6f, - 0x75, 0x70, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x0b, - 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x22, 0x0f, - 0x0a, 0x0d, 0x53, 0x65, 0x74, 0x4d, 0x61, 0x73, 0x74, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x22, - 0x4c, 0x0a, 0x0e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, - 0x71, 0x12, 0x18, 0x0a, 0x07, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x07, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x4f, - 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x22, 0x11, 0x0a, - 0x0f, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, - 0x32, 0xa5, 0x0b, 0x0a, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x3c, 0x0a, 0x0b, 0x63, 0x72, - 0x65, 0x61, 0x74, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x15, 0x2e, 0x67, 0x72, 0x6f, 0x75, - 0x70, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, - 0x1a, 0x16, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x47, - 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x12, 0x36, 0x0a, 0x09, 0x6a, 0x6f, 0x69, 0x6e, - 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x13, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x4a, 0x6f, - 0x69, 0x6e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x1a, 0x14, 0x2e, 0x67, 0x72, 0x6f, - 0x75, 0x70, 0x2e, 0x4a, 0x6f, 0x69, 0x6e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, - 0x12, 0x36, 0x0a, 0x09, 0x71, 0x75, 0x69, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x13, 0x2e, - 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x51, 0x75, 0x69, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, - 0x65, 0x71, 0x1a, 0x14, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x51, 0x75, 0x69, 0x74, 0x47, - 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x12, 0x42, 0x0a, 0x0d, 0x67, 0x65, 0x74, 0x47, - 0x72, 0x6f, 0x75, 0x70, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x17, 0x2e, 0x67, 0x72, 0x6f, 0x75, + 0x6f, 0x6e, 0x49, 0x44, 0x22, 0x11, 0x0a, 0x0f, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x47, 0x72, + 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x32, 0xa5, 0x0b, 0x0a, 0x05, 0x67, 0x72, 0x6f, 0x75, + 0x70, 0x12, 0x3c, 0x0a, 0x0b, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, + 0x12, 0x15, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x47, + 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x1a, 0x16, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, + 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x12, + 0x36, 0x0a, 0x09, 0x6a, 0x6f, 0x69, 0x6e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x13, 0x2e, 0x67, + 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x4a, 0x6f, 0x69, 0x6e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, + 0x71, 0x1a, 0x14, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x4a, 0x6f, 0x69, 0x6e, 0x47, 0x72, + 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x12, 0x36, 0x0a, 0x09, 0x71, 0x75, 0x69, 0x74, 0x47, + 0x72, 0x6f, 0x75, 0x70, 0x12, 0x13, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x51, 0x75, 0x69, + 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x1a, 0x14, 0x2e, 0x67, 0x72, 0x6f, 0x75, + 0x70, 0x2e, 0x51, 0x75, 0x69, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x12, + 0x42, 0x0a, 0x0d, 0x67, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x49, 0x6e, 0x66, 0x6f, + 0x12, 0x17, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, + 0x70, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x1a, 0x18, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x52, - 0x65, 0x71, 0x1a, 0x18, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x72, - 0x6f, 0x75, 0x70, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x12, 0x3f, 0x0a, 0x0c, - 0x73, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x16, 0x2e, 0x67, - 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x53, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x66, - 0x6f, 0x52, 0x65, 0x71, 0x1a, 0x17, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x53, 0x65, 0x74, - 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x12, 0x60, 0x0a, - 0x17, 0x67, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x21, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, - 0x2e, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x22, 0x2e, 0x67, 0x72, - 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x70, 0x70, 0x6c, - 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, - 0x51, 0x0a, 0x12, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, - 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x12, 0x1c, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x54, 0x72, - 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4f, 0x77, 0x6e, 0x65, 0x72, - 0x52, 0x65, 0x71, 0x1a, 0x1d, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x54, 0x72, 0x61, 0x6e, - 0x73, 0x66, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x52, 0x65, - 0x73, 0x70, 0x12, 0x63, 0x0a, 0x18, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x70, 0x70, 0x6c, 0x69, - 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x22, - 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x70, 0x70, 0x6c, - 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, - 0x65, 0x71, 0x1a, 0x23, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, - 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x51, 0x0a, 0x12, 0x67, 0x65, 0x74, 0x47, 0x72, - 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x1c, 0x2e, - 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, - 0x6d, 0x62, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x1d, 0x2e, 0x67, 0x72, - 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, - 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x54, 0x0a, 0x13, 0x67, 0x65, - 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x49, 0x6e, 0x66, - 0x6f, 0x12, 0x1d, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, - 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, - 0x1a, 0x1e, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, - 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, - 0x12, 0x48, 0x0a, 0x0f, 0x6b, 0x69, 0x63, 0x6b, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, - 0x62, 0x65, 0x72, 0x12, 0x19, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x4b, 0x69, 0x63, 0x6b, - 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x65, 0x71, 0x1a, 0x1a, - 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x4b, 0x69, 0x63, 0x6b, 0x47, 0x72, 0x6f, 0x75, 0x70, - 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x12, 0x51, 0x0a, 0x12, 0x67, 0x65, + 0x65, 0x73, 0x70, 0x12, 0x3f, 0x0a, 0x0c, 0x73, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, + 0x6e, 0x66, 0x6f, 0x12, 0x16, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x53, 0x65, 0x74, 0x47, + 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x1a, 0x17, 0x2e, 0x67, 0x72, + 0x6f, 0x75, 0x70, 0x2e, 0x53, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x66, 0x6f, + 0x52, 0x65, 0x73, 0x70, 0x12, 0x60, 0x0a, 0x17, 0x67, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, + 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x12, + 0x21, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, + 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x52, + 0x65, 0x71, 0x1a, 0x22, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x72, + 0x6f, 0x75, 0x70, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x69, + 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x51, 0x0a, 0x12, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, + 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x12, 0x1c, 0x2e, 0x67, + 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x47, 0x72, 0x6f, + 0x75, 0x70, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x52, 0x65, 0x71, 0x1a, 0x1d, 0x2e, 0x67, 0x72, 0x6f, + 0x75, 0x70, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, + 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x12, 0x63, 0x0a, 0x18, 0x67, 0x72, 0x6f, + 0x75, 0x70, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x22, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x72, + 0x6f, 0x75, 0x70, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x23, 0x2e, 0x67, 0x72, 0x6f, 0x75, + 0x70, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x51, + 0x0a, 0x12, 0x67, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, + 0x4c, 0x69, 0x73, 0x74, 0x12, 0x1c, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x65, 0x74, + 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x52, + 0x65, 0x71, 0x1a, 0x1d, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x72, + 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, + 0x70, 0x12, 0x54, 0x0a, 0x13, 0x67, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, + 0x62, 0x65, 0x72, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1d, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, + 0x2e, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, + 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x1a, 0x1e, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, + 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x49, + 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x12, 0x48, 0x0a, 0x0f, 0x6b, 0x69, 0x63, 0x6b, 0x47, + 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x19, 0x2e, 0x67, 0x72, 0x6f, + 0x75, 0x70, 0x2e, 0x4b, 0x69, 0x63, 0x6b, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, + 0x65, 0x72, 0x52, 0x65, 0x71, 0x1a, 0x1a, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x4b, 0x69, + 0x63, 0x6b, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x65, 0x73, + 0x70, 0x12, 0x51, 0x0a, 0x12, 0x67, 0x65, 0x74, 0x4a, 0x6f, 0x69, 0x6e, 0x65, 0x64, 0x47, 0x72, + 0x6f, 0x75, 0x70, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x1c, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, + 0x47, 0x65, 0x74, 0x4a, 0x6f, 0x69, 0x6e, 0x65, 0x64, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4c, 0x69, + 0x73, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x1d, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x65, 0x74, 0x4a, 0x6f, 0x69, 0x6e, 0x65, 0x64, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4c, 0x69, 0x73, 0x74, - 0x12, 0x1c, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x65, 0x74, 0x4a, 0x6f, 0x69, 0x6e, - 0x65, 0x64, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x1d, - 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x65, 0x74, 0x4a, 0x6f, 0x69, 0x6e, 0x65, 0x64, - 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x4e, 0x0a, - 0x11, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x54, 0x6f, 0x47, 0x72, 0x6f, - 0x75, 0x70, 0x12, 0x1b, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x49, 0x6e, 0x76, 0x69, 0x74, - 0x65, 0x55, 0x73, 0x65, 0x72, 0x54, 0x6f, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x1a, - 0x1c, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x55, 0x73, - 0x65, 0x72, 0x54, 0x6f, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x12, 0x4e, 0x0a, - 0x11, 0x67, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x6c, 0x6c, 0x4d, 0x65, 0x6d, 0x62, - 0x65, 0x72, 0x12, 0x1b, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x72, - 0x6f, 0x75, 0x70, 0x41, 0x6c, 0x6c, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x65, 0x71, 0x1a, - 0x1c, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, - 0x41, 0x6c, 0x6c, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x12, 0x34, 0x0a, - 0x08, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x12, 0x2e, 0x67, 0x72, 0x6f, 0x75, - 0x70, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x1a, 0x14, 0x2e, - 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x52, - 0x65, 0x73, 0x70, 0x12, 0x36, 0x0a, 0x09, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, - 0x12, 0x13, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, - 0x70, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x14, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x65, - 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x52, 0x65, 0x73, 0x70, 0x12, 0x3f, 0x0a, 0x0c, 0x42, - 0x61, 0x6e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x43, 0x68, 0x61, 0x74, 0x12, 0x16, 0x2e, 0x67, 0x72, - 0x6f, 0x75, 0x70, 0x2e, 0x42, 0x61, 0x6e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x43, 0x68, 0x61, 0x74, - 0x52, 0x65, 0x71, 0x1a, 0x17, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x42, 0x61, 0x6e, 0x47, - 0x72, 0x6f, 0x75, 0x70, 0x43, 0x68, 0x61, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x44, 0x0a, 0x0e, - 0x42, 0x61, 0x6e, 0x50, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x43, 0x68, 0x61, 0x74, 0x12, 0x18, + 0x52, 0x65, 0x73, 0x70, 0x12, 0x4e, 0x0a, 0x11, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x55, 0x73, + 0x65, 0x72, 0x54, 0x6f, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x1b, 0x2e, 0x67, 0x72, 0x6f, 0x75, + 0x70, 0x2e, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x54, 0x6f, 0x47, 0x72, + 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x49, + 0x6e, 0x76, 0x69, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x54, 0x6f, 0x47, 0x72, 0x6f, 0x75, 0x70, + 0x52, 0x65, 0x73, 0x70, 0x12, 0x4e, 0x0a, 0x11, 0x67, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, + 0x41, 0x6c, 0x6c, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x1b, 0x2e, 0x67, 0x72, 0x6f, 0x75, + 0x70, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x6c, 0x6c, 0x4d, 0x65, 0x6d, + 0x62, 0x65, 0x72, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47, + 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x6c, 0x6c, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, + 0x52, 0x65, 0x73, 0x70, 0x12, 0x33, 0x0a, 0x08, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, + 0x12, 0x12, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, + 0x70, 0x52, 0x65, 0x71, 0x1a, 0x13, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x65, 0x74, + 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x12, 0x36, 0x0a, 0x09, 0x47, 0x65, 0x74, + 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x12, 0x13, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47, + 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x14, 0x2e, 0x67, 0x72, + 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x52, 0x65, 0x73, + 0x70, 0x12, 0x3f, 0x0a, 0x0c, 0x42, 0x61, 0x6e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x43, 0x68, 0x61, + 0x74, 0x12, 0x16, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x42, 0x61, 0x6e, 0x47, 0x72, 0x6f, + 0x75, 0x70, 0x43, 0x68, 0x61, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x17, 0x2e, 0x67, 0x72, 0x6f, 0x75, + 0x70, 0x2e, 0x42, 0x61, 0x6e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x43, 0x68, 0x61, 0x74, 0x52, 0x65, + 0x73, 0x70, 0x12, 0x45, 0x0a, 0x0e, 0x42, 0x61, 0x6e, 0x50, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, + 0x43, 0x68, 0x61, 0x74, 0x12, 0x18, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x42, 0x61, 0x6e, + 0x50, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x43, 0x68, 0x61, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x19, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x42, 0x61, 0x6e, 0x50, 0x72, 0x69, 0x76, 0x61, 0x74, - 0x65, 0x43, 0x68, 0x61, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x18, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, - 0x2e, 0x42, 0x61, 0x6e, 0x50, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x43, 0x68, 0x61, 0x74, 0x52, - 0x65, 0x71, 0x12, 0x36, 0x0a, 0x09, 0x53, 0x65, 0x74, 0x4d, 0x61, 0x73, 0x74, 0x65, 0x72, 0x12, - 0x13, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x53, 0x65, 0x74, 0x4d, 0x61, 0x73, 0x74, 0x65, - 0x72, 0x52, 0x65, 0x71, 0x1a, 0x14, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x53, 0x65, 0x74, - 0x4d, 0x61, 0x73, 0x74, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x12, 0x3c, 0x0a, 0x0b, 0x44, 0x65, - 0x6c, 0x65, 0x74, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x15, 0x2e, 0x67, 0x72, 0x6f, 0x75, - 0x70, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, - 0x1a, 0x16, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x47, - 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x42, 0x0f, 0x5a, 0x0d, 0x2e, 0x2f, 0x67, 0x72, - 0x6f, 0x75, 0x70, 0x3b, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x33, + 0x65, 0x43, 0x68, 0x61, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x36, 0x0a, 0x09, 0x53, 0x65, 0x74, + 0x4d, 0x61, 0x73, 0x74, 0x65, 0x72, 0x12, 0x13, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x53, + 0x65, 0x74, 0x4d, 0x61, 0x73, 0x74, 0x65, 0x72, 0x52, 0x65, 0x71, 0x1a, 0x14, 0x2e, 0x67, 0x72, + 0x6f, 0x75, 0x70, 0x2e, 0x53, 0x65, 0x74, 0x4d, 0x61, 0x73, 0x74, 0x65, 0x72, 0x52, 0x65, 0x73, + 0x70, 0x12, 0x3c, 0x0a, 0x0b, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, + 0x12, 0x15, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x47, + 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x1a, 0x16, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, + 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x42, + 0x0f, 0x5a, 0x0d, 0x2e, 0x2f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x3b, 0x67, 0x72, 0x6f, 0x75, 0x70, + 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -3130,54 +3142,55 @@ var file_group_group_proto_depIdxs = []int32{ 44, // 14: group.GetJoinedGroupListResp.GroupList:type_name -> server_api_params.GroupInfo 23, // 15: group.InviteUserToGroupResp.Id2ResultList:type_name -> group.Id2Result 46, // 16: group.GetGroupAllMemberResp.memberList:type_name -> server_api_params.GroupMemberFullInfo - 44, // 17: group.GetGroupResp.GroupInfo:type_name -> server_api_params.GroupInfo - 47, // 18: group.GetGroupsReq.Pagination:type_name -> server_api_params.RequestPagination - 44, // 19: group.GetGroupsResp.GroupInfo:type_name -> server_api_params.GroupInfo - 2, // 20: group.group.createGroup:input_type -> group.CreateGroupReq - 12, // 21: group.group.joinGroup:input_type -> group.JoinGroupReq - 16, // 22: group.group.quitGroup:input_type -> group.QuitGroupReq - 4, // 23: group.group.getGroupsInfo:input_type -> group.GetGroupsInfoReq - 6, // 24: group.group.setGroupInfo:input_type -> group.SetGroupInfoReq - 8, // 25: group.group.getGroupApplicationList:input_type -> group.GetGroupApplicationListReq - 10, // 26: group.group.transferGroupOwner:input_type -> group.TransferGroupOwnerReq - 14, // 27: group.group.groupApplicationResponse:input_type -> group.GroupApplicationResponseReq - 18, // 28: group.group.getGroupMemberList:input_type -> group.GetGroupMemberListReq - 20, // 29: group.group.getGroupMembersInfo:input_type -> group.GetGroupMembersInfoReq - 22, // 30: group.group.kickGroupMember:input_type -> group.KickGroupMemberReq - 25, // 31: group.group.getJoinedGroupList:input_type -> group.GetJoinedGroupListReq - 27, // 32: group.group.inviteUserToGroup:input_type -> group.InviteUserToGroupReq - 29, // 33: group.group.getGroupAllMember:input_type -> group.GetGroupAllMemberReq - 31, // 34: group.group.GetGroup:input_type -> group.GetGroupReq - 33, // 35: group.group.GetGroups:input_type -> group.GetGroupsReq - 36, // 36: group.group.BanGroupChat:input_type -> group.BanGroupChatReq - 38, // 37: group.group.BanPrivateChat:input_type -> group.BanPrivateChatReq - 40, // 38: group.group.SetMaster:input_type -> group.SetMasterReq - 42, // 39: group.group.DeleteGroup:input_type -> group.DeleteGroupReq - 3, // 40: group.group.createGroup:output_type -> group.CreateGroupResp - 13, // 41: group.group.joinGroup:output_type -> group.JoinGroupResp - 17, // 42: group.group.quitGroup:output_type -> group.QuitGroupResp - 5, // 43: group.group.getGroupsInfo:output_type -> group.GetGroupsInfoResp - 7, // 44: group.group.setGroupInfo:output_type -> group.SetGroupInfoResp - 9, // 45: group.group.getGroupApplicationList:output_type -> group.GetGroupApplicationListResp - 11, // 46: group.group.transferGroupOwner:output_type -> group.TransferGroupOwnerResp - 15, // 47: group.group.groupApplicationResponse:output_type -> group.GroupApplicationResponseResp - 19, // 48: group.group.getGroupMemberList:output_type -> group.GetGroupMemberListResp - 21, // 49: group.group.getGroupMembersInfo:output_type -> group.GetGroupMembersInfoResp - 24, // 50: group.group.kickGroupMember:output_type -> group.KickGroupMemberResp - 26, // 51: group.group.getJoinedGroupList:output_type -> group.GetJoinedGroupListResp - 28, // 52: group.group.inviteUserToGroup:output_type -> group.InviteUserToGroupResp - 30, // 53: group.group.getGroupAllMember:output_type -> group.GetGroupAllMemberResp - 34, // 54: group.group.GetGroup:output_type -> group.GetGroupsResp - 34, // 55: group.group.GetGroups:output_type -> group.GetGroupsResp - 37, // 56: group.group.BanGroupChat:output_type -> group.BanGroupChatResp - 38, // 57: group.group.BanPrivateChat:output_type -> group.BanPrivateChatReq - 41, // 58: group.group.SetMaster:output_type -> group.SetMasterResp - 43, // 59: group.group.DeleteGroup:output_type -> group.DeleteGroupResp - 40, // [40:60] is the sub-list for method output_type - 20, // [20:40] is the sub-list for method input_type - 20, // [20:20] is the sub-list for extension type_name - 20, // [20:20] is the sub-list for extension extendee - 0, // [0:20] is the sub-list for field type_name + 47, // 17: group.GetGroupReq.Pagination:type_name -> server_api_params.RequestPagination + 44, // 18: group.GetGroupResp.GroupInfo:type_name -> server_api_params.GroupInfo + 47, // 19: group.GetGroupsReq.Pagination:type_name -> server_api_params.RequestPagination + 44, // 20: group.GetGroupsResp.GroupInfo:type_name -> server_api_params.GroupInfo + 2, // 21: group.group.createGroup:input_type -> group.CreateGroupReq + 12, // 22: group.group.joinGroup:input_type -> group.JoinGroupReq + 16, // 23: group.group.quitGroup:input_type -> group.QuitGroupReq + 4, // 24: group.group.getGroupsInfo:input_type -> group.GetGroupsInfoReq + 6, // 25: group.group.setGroupInfo:input_type -> group.SetGroupInfoReq + 8, // 26: group.group.getGroupApplicationList:input_type -> group.GetGroupApplicationListReq + 10, // 27: group.group.transferGroupOwner:input_type -> group.TransferGroupOwnerReq + 14, // 28: group.group.groupApplicationResponse:input_type -> group.GroupApplicationResponseReq + 18, // 29: group.group.getGroupMemberList:input_type -> group.GetGroupMemberListReq + 20, // 30: group.group.getGroupMembersInfo:input_type -> group.GetGroupMembersInfoReq + 22, // 31: group.group.kickGroupMember:input_type -> group.KickGroupMemberReq + 25, // 32: group.group.getJoinedGroupList:input_type -> group.GetJoinedGroupListReq + 27, // 33: group.group.inviteUserToGroup:input_type -> group.InviteUserToGroupReq + 29, // 34: group.group.getGroupAllMember:input_type -> group.GetGroupAllMemberReq + 31, // 35: group.group.GetGroup:input_type -> group.GetGroupReq + 33, // 36: group.group.GetGroups:input_type -> group.GetGroupsReq + 36, // 37: group.group.BanGroupChat:input_type -> group.BanGroupChatReq + 38, // 38: group.group.BanPrivateChat:input_type -> group.BanPrivateChatReq + 40, // 39: group.group.SetMaster:input_type -> group.SetMasterReq + 42, // 40: group.group.DeleteGroup:input_type -> group.DeleteGroupReq + 3, // 41: group.group.createGroup:output_type -> group.CreateGroupResp + 13, // 42: group.group.joinGroup:output_type -> group.JoinGroupResp + 17, // 43: group.group.quitGroup:output_type -> group.QuitGroupResp + 5, // 44: group.group.getGroupsInfo:output_type -> group.GetGroupsInfoResp + 7, // 45: group.group.setGroupInfo:output_type -> group.SetGroupInfoResp + 9, // 46: group.group.getGroupApplicationList:output_type -> group.GetGroupApplicationListResp + 11, // 47: group.group.transferGroupOwner:output_type -> group.TransferGroupOwnerResp + 15, // 48: group.group.groupApplicationResponse:output_type -> group.GroupApplicationResponseResp + 19, // 49: group.group.getGroupMemberList:output_type -> group.GetGroupMemberListResp + 21, // 50: group.group.getGroupMembersInfo:output_type -> group.GetGroupMembersInfoResp + 24, // 51: group.group.kickGroupMember:output_type -> group.KickGroupMemberResp + 26, // 52: group.group.getJoinedGroupList:output_type -> group.GetJoinedGroupListResp + 28, // 53: group.group.inviteUserToGroup:output_type -> group.InviteUserToGroupResp + 30, // 54: group.group.getGroupAllMember:output_type -> group.GetGroupAllMemberResp + 32, // 55: group.group.GetGroup:output_type -> group.GetGroupResp + 34, // 56: group.group.GetGroups:output_type -> group.GetGroupsResp + 37, // 57: group.group.BanGroupChat:output_type -> group.BanGroupChatResp + 39, // 58: group.group.BanPrivateChat:output_type -> group.BanPrivateChatResp + 41, // 59: group.group.SetMaster:output_type -> group.SetMasterResp + 43, // 60: group.group.DeleteGroup:output_type -> group.DeleteGroupResp + 41, // [41:61] is the sub-list for method output_type + 21, // [21:41] is the sub-list for method input_type + 21, // [21:21] is the sub-list for extension type_name + 21, // [21:21] is the sub-list for extension extendee + 0, // [0:21] is the sub-list for field type_name } func init() { file_group_group_proto_init() } @@ -3761,10 +3774,10 @@ type GroupClient interface { GetJoinedGroupList(ctx context.Context, in *GetJoinedGroupListReq, opts ...grpc.CallOption) (*GetJoinedGroupListResp, error) InviteUserToGroup(ctx context.Context, in *InviteUserToGroupReq, opts ...grpc.CallOption) (*InviteUserToGroupResp, error) GetGroupAllMember(ctx context.Context, in *GetGroupAllMemberReq, opts ...grpc.CallOption) (*GetGroupAllMemberResp, error) - GetGroup(ctx context.Context, in *GetGroupReq, opts ...grpc.CallOption) (*GetGroupsResp, error) + GetGroup(ctx context.Context, in *GetGroupReq, opts ...grpc.CallOption) (*GetGroupResp, error) GetGroups(ctx context.Context, in *GetGroupsReq, opts ...grpc.CallOption) (*GetGroupsResp, error) BanGroupChat(ctx context.Context, in *BanGroupChatReq, opts ...grpc.CallOption) (*BanGroupChatResp, error) - BanPrivateChat(ctx context.Context, in *BanPrivateChatReq, opts ...grpc.CallOption) (*BanPrivateChatReq, error) + BanPrivateChat(ctx context.Context, in *BanPrivateChatReq, opts ...grpc.CallOption) (*BanPrivateChatResp, error) SetMaster(ctx context.Context, in *SetMasterReq, opts ...grpc.CallOption) (*SetMasterResp, error) DeleteGroup(ctx context.Context, in *DeleteGroupReq, opts ...grpc.CallOption) (*DeleteGroupResp, error) } @@ -3903,8 +3916,8 @@ func (c *groupClient) GetGroupAllMember(ctx context.Context, in *GetGroupAllMemb return out, nil } -func (c *groupClient) GetGroup(ctx context.Context, in *GetGroupReq, opts ...grpc.CallOption) (*GetGroupsResp, error) { - out := new(GetGroupsResp) +func (c *groupClient) GetGroup(ctx context.Context, in *GetGroupReq, opts ...grpc.CallOption) (*GetGroupResp, error) { + out := new(GetGroupResp) err := c.cc.Invoke(ctx, "/group.group/GetGroup", in, out, opts...) if err != nil { return nil, err @@ -3930,8 +3943,8 @@ func (c *groupClient) BanGroupChat(ctx context.Context, in *BanGroupChatReq, opt return out, nil } -func (c *groupClient) BanPrivateChat(ctx context.Context, in *BanPrivateChatReq, opts ...grpc.CallOption) (*BanPrivateChatReq, error) { - out := new(BanPrivateChatReq) +func (c *groupClient) BanPrivateChat(ctx context.Context, in *BanPrivateChatReq, opts ...grpc.CallOption) (*BanPrivateChatResp, error) { + out := new(BanPrivateChatResp) err := c.cc.Invoke(ctx, "/group.group/BanPrivateChat", in, out, opts...) if err != nil { return nil, err @@ -3973,10 +3986,10 @@ type GroupServer interface { GetJoinedGroupList(context.Context, *GetJoinedGroupListReq) (*GetJoinedGroupListResp, error) InviteUserToGroup(context.Context, *InviteUserToGroupReq) (*InviteUserToGroupResp, error) GetGroupAllMember(context.Context, *GetGroupAllMemberReq) (*GetGroupAllMemberResp, error) - GetGroup(context.Context, *GetGroupReq) (*GetGroupsResp, error) + GetGroup(context.Context, *GetGroupReq) (*GetGroupResp, error) GetGroups(context.Context, *GetGroupsReq) (*GetGroupsResp, error) BanGroupChat(context.Context, *BanGroupChatReq) (*BanGroupChatResp, error) - BanPrivateChat(context.Context, *BanPrivateChatReq) (*BanPrivateChatReq, error) + BanPrivateChat(context.Context, *BanPrivateChatReq) (*BanPrivateChatResp, error) SetMaster(context.Context, *SetMasterReq) (*SetMasterResp, error) DeleteGroup(context.Context, *DeleteGroupReq) (*DeleteGroupResp, error) } @@ -4027,7 +4040,7 @@ func (*UnimplementedGroupServer) InviteUserToGroup(context.Context, *InviteUserT func (*UnimplementedGroupServer) GetGroupAllMember(context.Context, *GetGroupAllMemberReq) (*GetGroupAllMemberResp, error) { return nil, status.Errorf(codes.Unimplemented, "method GetGroupAllMember not implemented") } -func (*UnimplementedGroupServer) GetGroup(context.Context, *GetGroupReq) (*GetGroupsResp, error) { +func (*UnimplementedGroupServer) GetGroup(context.Context, *GetGroupReq) (*GetGroupResp, error) { return nil, status.Errorf(codes.Unimplemented, "method GetGroup not implemented") } func (*UnimplementedGroupServer) GetGroups(context.Context, *GetGroupsReq) (*GetGroupsResp, error) { @@ -4036,7 +4049,7 @@ func (*UnimplementedGroupServer) GetGroups(context.Context, *GetGroupsReq) (*Get func (*UnimplementedGroupServer) BanGroupChat(context.Context, *BanGroupChatReq) (*BanGroupChatResp, error) { return nil, status.Errorf(codes.Unimplemented, "method BanGroupChat not implemented") } -func (*UnimplementedGroupServer) BanPrivateChat(context.Context, *BanPrivateChatReq) (*BanPrivateChatReq, error) { +func (*UnimplementedGroupServer) BanPrivateChat(context.Context, *BanPrivateChatReq) (*BanPrivateChatResp, error) { return nil, status.Errorf(codes.Unimplemented, "method BanPrivateChat not implemented") } func (*UnimplementedGroupServer) SetMaster(context.Context, *SetMasterReq) (*SetMasterResp, error) { diff --git a/pkg/proto/group/group.proto b/pkg/proto/group/group.proto index 35b70ce03..a1cc22dc2 100644 --- a/pkg/proto/group/group.proto +++ b/pkg/proto/group/group.proto @@ -197,11 +197,12 @@ message GetGroupAllMemberResp { message GetGroupReq { string GroupName = 1; - string OperationID = 2; + server_api_params.RequestPagination Pagination = 2; + string OperationID = 3; } message GetGroupResp { - server_api_params.GroupInfo GroupInfo = 1; + repeated server_api_params.GroupInfo GroupInfo = 1; } message GetGroupsReq { @@ -272,10 +273,10 @@ service group{ rpc getGroupAllMember(GetGroupAllMemberReq) returns(GetGroupAllMemberResp); - rpc GetGroup(GetGroupReq) returns(GetGroupsResp); + rpc GetGroup(GetGroupReq) returns(GetGroupResp); rpc GetGroups(GetGroupsReq) returns(GetGroupsResp); rpc BanGroupChat(BanGroupChatReq) returns(BanGroupChatResp); - rpc BanPrivateChat(BanPrivateChatReq) returns(BanPrivateChatReq); + rpc BanPrivateChat(BanPrivateChatReq) returns(BanPrivateChatResp); rpc SetMaster(SetMasterReq) returns(SetMasterResp); rpc DeleteGroup(DeleteGroupReq) returns(DeleteGroupResp); } diff --git a/pkg/proto/sdk_ws/ws.pb.go b/pkg/proto/sdk_ws/ws.pb.go index 06034b669..838827b8d 100644 --- a/pkg/proto/sdk_ws/ws.pb.go +++ b/pkg/proto/sdk_ws/ws.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.26.0 -// protoc v3.19.3 +// protoc-gen-go v1.27.1 +// protoc v3.15.5 // source: sdk_ws/ws.proto package server_api_params @@ -2845,7 +2845,7 @@ type ResponsePagination struct { unknownFields protoimpl.UnknownFields CurrentPage int32 `protobuf:"varint,5,opt,name=CurrentPage,proto3" json:"CurrentPage,omitempty"` - ShowNumber int32 `protobuf:"varint,6,opt,name=showNumber,proto3" json:"showNumber,omitempty"` + ShowNumber int32 `protobuf:"varint,6,opt,name=ShowNumber,proto3" json:"ShowNumber,omitempty"` } func (x *ResponsePagination) Reset() { @@ -3351,8 +3351,8 @@ var file_sdk_ws_ws_proto_rawDesc = []byte{ 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x20, 0x0a, 0x0b, 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x67, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, - 0x50, 0x61, 0x67, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x68, 0x6f, 0x77, 0x4e, 0x75, 0x6d, 0x62, - 0x65, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x73, 0x68, 0x6f, 0x77, 0x4e, 0x75, + 0x50, 0x61, 0x67, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x53, 0x68, 0x6f, 0x77, 0x4e, 0x75, 0x6d, 0x62, + 0x65, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x53, 0x68, 0x6f, 0x77, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x42, 0x1c, 0x5a, 0x1a, 0x2e, 0x2f, 0x73, 0x64, 0x6b, 0x5f, 0x77, 0x73, 0x3b, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, diff --git a/pkg/proto/sdk_ws/ws.proto b/pkg/proto/sdk_ws/ws.proto index 4caccf381..3a0915432 100644 --- a/pkg/proto/sdk_ws/ws.proto +++ b/pkg/proto/sdk_ws/ws.proto @@ -340,5 +340,5 @@ message RequestPagination { message ResponsePagination { int32 CurrentPage = 5; - int32 showNumber = 6; + int32 ShowNumber = 6; } \ No newline at end of file diff --git a/pkg/proto/user/user.pb.go b/pkg/proto/user/user.pb.go index 1dfc2528d..e991f794c 100644 --- a/pkg/proto/user/user.pb.go +++ b/pkg/proto/user/user.pb.go @@ -2007,13 +2007,76 @@ func (x *GetBlockUsersReq) GetBlockUserNum() int32 { return 0 } +type BlockUser struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + User *User `protobuf:"bytes,1,opt,name=User,proto3" json:"User,omitempty"` + BeginDisableTime string `protobuf:"bytes,2,opt,name=BeginDisableTime,proto3" json:"BeginDisableTime,omitempty"` + EndDisableTime string `protobuf:"bytes,3,opt,name=EndDisableTime,proto3" json:"EndDisableTime,omitempty"` +} + +func (x *BlockUser) Reset() { + *x = BlockUser{} + if protoimpl.UnsafeEnabled { + mi := &file_user_user_proto_msgTypes[34] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *BlockUser) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*BlockUser) ProtoMessage() {} + +func (x *BlockUser) ProtoReflect() protoreflect.Message { + mi := &file_user_user_proto_msgTypes[34] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use BlockUser.ProtoReflect.Descriptor instead. +func (*BlockUser) Descriptor() ([]byte, []int) { + return file_user_user_proto_rawDescGZIP(), []int{34} +} + +func (x *BlockUser) GetUser() *User { + if x != nil { + return x.User + } + return nil +} + +func (x *BlockUser) GetBeginDisableTime() string { + if x != nil { + return x.BeginDisableTime + } + return "" +} + +func (x *BlockUser) GetEndDisableTime() string { + if x != nil { + return x.EndDisableTime + } + return "" +} + type GetBlockUsersResp struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields CommonResp *CommonResp `protobuf:"bytes,1,opt,name=CommonResp,proto3" json:"CommonResp,omitempty"` - User []*User `protobuf:"bytes,2,rep,name=user,proto3" json:"user,omitempty"` + BlockUsers []*BlockUser `protobuf:"bytes,2,rep,name=BlockUsers,proto3" json:"BlockUsers,omitempty"` Pagination *sdk_ws.ResponsePagination `protobuf:"bytes,3,opt,name=Pagination,proto3" json:"Pagination,omitempty"` BlockUserNum int32 `protobuf:"varint,4,opt,name=BlockUserNum,proto3" json:"BlockUserNum,omitempty"` } @@ -2021,7 +2084,7 @@ type GetBlockUsersResp struct { func (x *GetBlockUsersResp) Reset() { *x = GetBlockUsersResp{} if protoimpl.UnsafeEnabled { - mi := &file_user_user_proto_msgTypes[34] + mi := &file_user_user_proto_msgTypes[35] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2034,7 +2097,7 @@ func (x *GetBlockUsersResp) String() string { func (*GetBlockUsersResp) ProtoMessage() {} func (x *GetBlockUsersResp) ProtoReflect() protoreflect.Message { - mi := &file_user_user_proto_msgTypes[34] + mi := &file_user_user_proto_msgTypes[35] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2047,7 +2110,7 @@ func (x *GetBlockUsersResp) ProtoReflect() protoreflect.Message { // Deprecated: Use GetBlockUsersResp.ProtoReflect.Descriptor instead. func (*GetBlockUsersResp) Descriptor() ([]byte, []int) { - return file_user_user_proto_rawDescGZIP(), []int{34} + return file_user_user_proto_rawDescGZIP(), []int{35} } func (x *GetBlockUsersResp) GetCommonResp() *CommonResp { @@ -2057,9 +2120,9 @@ func (x *GetBlockUsersResp) GetCommonResp() *CommonResp { return nil } -func (x *GetBlockUsersResp) GetUser() []*User { +func (x *GetBlockUsersResp) GetBlockUsers() []*BlockUser { if x != nil { - return x.User + return x.BlockUsers } return nil } @@ -2078,6 +2141,108 @@ func (x *GetBlockUsersResp) GetBlockUserNum() int32 { return 0 } +type GetBlockUserReq struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + UserId string `protobuf:"bytes,1,opt,name=User_id,json=UserId,proto3" json:"User_id,omitempty"` + OperationID string `protobuf:"bytes,2,opt,name=OperationID,proto3" json:"OperationID,omitempty"` +} + +func (x *GetBlockUserReq) Reset() { + *x = GetBlockUserReq{} + if protoimpl.UnsafeEnabled { + mi := &file_user_user_proto_msgTypes[36] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetBlockUserReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetBlockUserReq) ProtoMessage() {} + +func (x *GetBlockUserReq) ProtoReflect() protoreflect.Message { + mi := &file_user_user_proto_msgTypes[36] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetBlockUserReq.ProtoReflect.Descriptor instead. +func (*GetBlockUserReq) Descriptor() ([]byte, []int) { + return file_user_user_proto_rawDescGZIP(), []int{36} +} + +func (x *GetBlockUserReq) GetUserId() string { + if x != nil { + return x.UserId + } + return "" +} + +func (x *GetBlockUserReq) GetOperationID() string { + if x != nil { + return x.OperationID + } + return "" +} + +type GetBlockUserResp struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + BlockUser *BlockUser `protobuf:"bytes,2,opt,name=BlockUser,proto3" json:"BlockUser,omitempty"` +} + +func (x *GetBlockUserResp) Reset() { + *x = GetBlockUserResp{} + if protoimpl.UnsafeEnabled { + mi := &file_user_user_proto_msgTypes[37] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetBlockUserResp) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetBlockUserResp) ProtoMessage() {} + +func (x *GetBlockUserResp) ProtoReflect() protoreflect.Message { + mi := &file_user_user_proto_msgTypes[37] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetBlockUserResp.ProtoReflect.Descriptor instead. +func (*GetBlockUserResp) Descriptor() ([]byte, []int) { + return file_user_user_proto_rawDescGZIP(), []int{37} +} + +func (x *GetBlockUserResp) GetBlockUser() *BlockUser { + if x != nil { + return x.BlockUser + } + return nil +} + type AccountCheckResp_SingleUserStatus struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -2090,7 +2255,7 @@ type AccountCheckResp_SingleUserStatus struct { func (x *AccountCheckResp_SingleUserStatus) Reset() { *x = AccountCheckResp_SingleUserStatus{} if protoimpl.UnsafeEnabled { - mi := &file_user_user_proto_msgTypes[35] + mi := &file_user_user_proto_msgTypes[38] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2103,7 +2268,7 @@ func (x *AccountCheckResp_SingleUserStatus) String() string { func (*AccountCheckResp_SingleUserStatus) ProtoMessage() {} func (x *AccountCheckResp_SingleUserStatus) ProtoReflect() protoreflect.Message { - mi := &file_user_user_proto_msgTypes[35] + mi := &file_user_user_proto_msgTypes[38] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2387,86 +2552,108 @@ var file_user_user_proto_rawDesc = []byte{ 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x12, 0x22, 0x0a, 0x0c, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x42, 0x6c, 0x6f, 0x63, - 0x6b, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x22, 0xd0, 0x01, 0x0a, 0x11, 0x47, 0x65, 0x74, - 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x12, 0x30, - 0x0a, 0x0a, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, - 0x52, 0x65, 0x73, 0x70, 0x52, 0x0a, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, - 0x12, 0x1e, 0x0a, 0x04, 0x75, 0x73, 0x65, 0x72, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0a, - 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x52, 0x04, 0x75, 0x73, 0x65, 0x72, - 0x12, 0x45, 0x0a, 0x0a, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, - 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0a, 0x50, 0x61, 0x67, - 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x22, 0x0a, 0x0c, 0x42, 0x6c, 0x6f, 0x63, 0x6b, - 0x55, 0x73, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x42, - 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x32, 0x88, 0x08, 0x0a, 0x04, - 0x75, 0x73, 0x65, 0x72, 0x12, 0x3a, 0x0a, 0x0b, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x49, - 0x6e, 0x66, 0x6f, 0x12, 0x14, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, - 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x1a, 0x15, 0x2e, 0x75, 0x73, 0x65, 0x72, - 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, - 0x12, 0x43, 0x0a, 0x0e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, - 0x66, 0x6f, 0x12, 0x17, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, - 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x1a, 0x18, 0x2e, 0x75, 0x73, - 0x65, 0x72, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, - 0x6f, 0x52, 0x65, 0x73, 0x70, 0x12, 0x3a, 0x0a, 0x0b, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x55, - 0x73, 0x65, 0x72, 0x73, 0x12, 0x14, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x44, 0x65, 0x6c, 0x65, - 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x15, 0x2e, 0x75, 0x73, 0x65, - 0x72, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, - 0x70, 0x12, 0x3d, 0x0a, 0x0c, 0x47, 0x65, 0x74, 0x41, 0x6c, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x49, - 0x44, 0x12, 0x15, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x6c, 0x6c, 0x55, - 0x73, 0x65, 0x72, 0x49, 0x44, 0x52, 0x65, 0x71, 0x1a, 0x16, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, - 0x47, 0x65, 0x74, 0x41, 0x6c, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x52, 0x65, 0x73, 0x70, - 0x12, 0x55, 0x0a, 0x14, 0x53, 0x65, 0x74, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x4d, 0x65, - 0x73, 0x73, 0x61, 0x67, 0x65, 0x4f, 0x70, 0x74, 0x12, 0x1d, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, - 0x53, 0x65, 0x74, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, - 0x65, 0x4f, 0x70, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x1e, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x53, - 0x65, 0x74, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, - 0x4f, 0x70, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x55, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x52, 0x65, - 0x63, 0x65, 0x69, 0x76, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4f, 0x70, 0x74, 0x12, - 0x1d, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, - 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4f, 0x70, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x1e, - 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, - 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4f, 0x70, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x61, - 0x0a, 0x18, 0x47, 0x65, 0x74, 0x41, 0x6c, 0x6c, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x73, 0x67, 0x4f, 0x70, 0x74, 0x12, 0x21, 0x2e, 0x75, 0x73, 0x65, - 0x72, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x6c, 0x6c, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x73, 0x67, 0x4f, 0x70, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x22, 0x2e, + 0x6b, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x22, 0x7f, 0x0a, 0x09, 0x42, 0x6c, 0x6f, 0x63, + 0x6b, 0x55, 0x73, 0x65, 0x72, 0x12, 0x1e, 0x0a, 0x04, 0x55, 0x73, 0x65, 0x72, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x52, + 0x04, 0x55, 0x73, 0x65, 0x72, 0x12, 0x2a, 0x0a, 0x10, 0x42, 0x65, 0x67, 0x69, 0x6e, 0x44, 0x69, + 0x73, 0x61, 0x62, 0x6c, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x10, 0x42, 0x65, 0x67, 0x69, 0x6e, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x54, 0x69, 0x6d, + 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x45, 0x6e, 0x64, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x54, + 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x45, 0x6e, 0x64, 0x44, 0x69, + 0x73, 0x61, 0x62, 0x6c, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x22, 0xe1, 0x01, 0x0a, 0x11, 0x47, 0x65, + 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x12, + 0x30, 0x0a, 0x0a, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, + 0x6e, 0x52, 0x65, 0x73, 0x70, 0x52, 0x0a, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, + 0x70, 0x12, 0x2f, 0x0a, 0x0a, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x73, 0x18, + 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x42, 0x6c, 0x6f, + 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x52, 0x0a, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, + 0x72, 0x73, 0x12, 0x45, 0x0a, 0x0a, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, + 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0a, 0x50, + 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x22, 0x0a, 0x0c, 0x42, 0x6c, 0x6f, + 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x0c, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x22, 0x4c, 0x0a, + 0x0f, 0x47, 0x65, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, + 0x12, 0x17, 0x0a, 0x07, 0x55, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x70, 0x65, + 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, + 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x22, 0x41, 0x0a, 0x10, 0x47, + 0x65, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x12, + 0x2d, 0x0a, 0x09, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, + 0x73, 0x65, 0x72, 0x52, 0x09, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x32, 0xc7, + 0x08, 0x0a, 0x04, 0x75, 0x73, 0x65, 0x72, 0x12, 0x3a, 0x0a, 0x0b, 0x47, 0x65, 0x74, 0x55, 0x73, + 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x14, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x47, 0x65, + 0x74, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x1a, 0x15, 0x2e, 0x75, + 0x73, 0x65, 0x72, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, + 0x65, 0x73, 0x70, 0x12, 0x43, 0x0a, 0x0e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, + 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x17, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x55, 0x70, 0x64, + 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x1a, 0x18, + 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, + 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x12, 0x3a, 0x0a, 0x0b, 0x44, 0x65, 0x6c, 0x65, + 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x73, 0x12, 0x14, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x44, + 0x65, 0x6c, 0x65, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x15, 0x2e, + 0x75, 0x73, 0x65, 0x72, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x73, + 0x52, 0x65, 0x73, 0x70, 0x12, 0x3d, 0x0a, 0x0c, 0x47, 0x65, 0x74, 0x41, 0x6c, 0x6c, 0x55, 0x73, + 0x65, 0x72, 0x49, 0x44, 0x12, 0x15, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x47, 0x65, 0x74, 0x41, + 0x6c, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x52, 0x65, 0x71, 0x1a, 0x16, 0x2e, 0x75, 0x73, + 0x65, 0x72, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x6c, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x52, + 0x65, 0x73, 0x70, 0x12, 0x55, 0x0a, 0x14, 0x53, 0x65, 0x74, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, + 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4f, 0x70, 0x74, 0x12, 0x1d, 0x2e, 0x75, 0x73, + 0x65, 0x72, 0x2e, 0x53, 0x65, 0x74, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x4d, 0x65, 0x73, + 0x73, 0x61, 0x67, 0x65, 0x4f, 0x70, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x1e, 0x2e, 0x75, 0x73, 0x65, + 0x72, 0x2e, 0x53, 0x65, 0x74, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x4d, 0x65, 0x73, 0x73, + 0x61, 0x67, 0x65, 0x4f, 0x70, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x55, 0x0a, 0x14, 0x47, 0x65, + 0x74, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4f, + 0x70, 0x74, 0x12, 0x1d, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x65, 0x63, + 0x65, 0x69, 0x76, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4f, 0x70, 0x74, 0x52, 0x65, + 0x71, 0x1a, 0x1e, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x65, 0x63, 0x65, + 0x69, 0x76, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4f, 0x70, 0x74, 0x52, 0x65, 0x73, + 0x70, 0x12, 0x61, 0x0a, 0x18, 0x47, 0x65, 0x74, 0x41, 0x6c, 0x6c, 0x43, 0x6f, 0x6e, 0x76, 0x65, + 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x73, 0x67, 0x4f, 0x70, 0x74, 0x12, 0x21, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x6c, 0x6c, 0x43, 0x6f, 0x6e, 0x76, 0x65, - 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x73, 0x67, 0x4f, 0x70, 0x74, 0x52, 0x65, 0x73, - 0x70, 0x12, 0x3d, 0x0a, 0x0c, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x43, 0x68, 0x65, 0x63, - 0x6b, 0x12, 0x15, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, - 0x43, 0x68, 0x65, 0x63, 0x6b, 0x52, 0x65, 0x71, 0x1a, 0x16, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, - 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x52, 0x65, 0x73, 0x70, - 0x12, 0x2e, 0x0a, 0x07, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x12, 0x10, 0x2e, 0x75, 0x73, - 0x65, 0x72, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x1a, 0x11, 0x2e, - 0x75, 0x73, 0x65, 0x72, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, - 0x12, 0x37, 0x0a, 0x0a, 0x52, 0x65, 0x73, 0x69, 0x67, 0x6e, 0x55, 0x73, 0x65, 0x72, 0x12, 0x13, - 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x52, 0x65, 0x73, 0x69, 0x67, 0x6e, 0x55, 0x73, 0x65, 0x72, - 0x52, 0x65, 0x71, 0x1a, 0x14, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x52, 0x65, 0x73, 0x69, 0x67, - 0x6e, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x12, 0x34, 0x0a, 0x09, 0x41, 0x6c, 0x74, - 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x12, 0x12, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x41, 0x6c, - 0x74, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x1a, 0x13, 0x2e, 0x75, 0x73, 0x65, - 0x72, 0x2e, 0x41, 0x6c, 0x74, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x12, - 0x31, 0x0a, 0x08, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x73, 0x12, 0x11, 0x2e, 0x75, 0x73, - 0x65, 0x72, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x12, + 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x73, 0x67, 0x4f, 0x70, 0x74, 0x52, 0x65, 0x71, + 0x1a, 0x22, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x6c, 0x6c, 0x43, 0x6f, + 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x73, 0x67, 0x4f, 0x70, 0x74, + 0x52, 0x65, 0x73, 0x70, 0x12, 0x3d, 0x0a, 0x0c, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x43, + 0x68, 0x65, 0x63, 0x6b, 0x12, 0x15, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x41, 0x63, 0x63, 0x6f, + 0x75, 0x6e, 0x74, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x52, 0x65, 0x71, 0x1a, 0x16, 0x2e, 0x75, 0x73, + 0x65, 0x72, 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x52, + 0x65, 0x73, 0x70, 0x12, 0x2e, 0x0a, 0x07, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x12, 0x10, + 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, + 0x1a, 0x11, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x52, + 0x65, 0x73, 0x70, 0x12, 0x37, 0x0a, 0x0a, 0x52, 0x65, 0x73, 0x69, 0x67, 0x6e, 0x55, 0x73, 0x65, + 0x72, 0x12, 0x13, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x52, 0x65, 0x73, 0x69, 0x67, 0x6e, 0x55, + 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x1a, 0x14, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x52, 0x65, + 0x73, 0x69, 0x67, 0x6e, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x12, 0x34, 0x0a, 0x09, + 0x41, 0x6c, 0x74, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x12, 0x12, 0x2e, 0x75, 0x73, 0x65, 0x72, + 0x2e, 0x41, 0x6c, 0x74, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x1a, 0x13, 0x2e, + 0x75, 0x73, 0x65, 0x72, 0x2e, 0x41, 0x6c, 0x74, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, + 0x73, 0x70, 0x12, 0x31, 0x0a, 0x08, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x73, 0x12, 0x11, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x73, 0x52, 0x65, - 0x73, 0x70, 0x12, 0x2e, 0x0a, 0x07, 0x41, 0x64, 0x64, 0x55, 0x73, 0x65, 0x72, 0x12, 0x10, 0x2e, - 0x75, 0x73, 0x65, 0x72, 0x2e, 0x41, 0x64, 0x64, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x1a, - 0x11, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x41, 0x64, 0x64, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, - 0x73, 0x70, 0x12, 0x34, 0x0a, 0x09, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x12, - 0x12, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, - 0x52, 0x65, 0x71, 0x1a, 0x13, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, - 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x12, 0x3a, 0x0a, 0x0b, 0x55, 0x6e, 0x42, 0x6c, - 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x12, 0x14, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x55, - 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x1a, 0x15, 0x2e, - 0x75, 0x73, 0x65, 0x72, 0x2e, 0x55, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, - 0x52, 0x65, 0x73, 0x70, 0x12, 0x40, 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, - 0x55, 0x73, 0x65, 0x72, 0x73, 0x12, 0x16, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x47, 0x65, 0x74, - 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x17, 0x2e, - 0x75, 0x73, 0x65, 0x72, 0x2e, 0x47, 0x65, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, - 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x42, 0x0d, 0x5a, 0x0b, 0x2e, 0x2f, 0x75, 0x73, 0x65, 0x72, - 0x3b, 0x75, 0x73, 0x65, 0x72, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x71, 0x1a, 0x12, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, + 0x73, 0x52, 0x65, 0x73, 0x70, 0x12, 0x2e, 0x0a, 0x07, 0x41, 0x64, 0x64, 0x55, 0x73, 0x65, 0x72, + 0x12, 0x10, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x41, 0x64, 0x64, 0x55, 0x73, 0x65, 0x72, 0x52, + 0x65, 0x71, 0x1a, 0x11, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x41, 0x64, 0x64, 0x55, 0x73, 0x65, + 0x72, 0x52, 0x65, 0x73, 0x70, 0x12, 0x34, 0x0a, 0x09, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, + 0x65, 0x72, 0x12, 0x12, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, + 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x1a, 0x13, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x42, 0x6c, + 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x12, 0x3a, 0x0a, 0x0b, 0x55, + 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x12, 0x14, 0x2e, 0x75, 0x73, 0x65, + 0x72, 0x2e, 0x55, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, + 0x1a, 0x15, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x55, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, + 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x12, 0x40, 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x42, 0x6c, + 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x73, 0x12, 0x16, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, + 0x47, 0x65, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, + 0x1a, 0x17, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x47, 0x65, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, + 0x55, 0x73, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x12, 0x3d, 0x0a, 0x0c, 0x47, 0x65, 0x74, + 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x12, 0x15, 0x2e, 0x75, 0x73, 0x65, 0x72, + 0x2e, 0x47, 0x65, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, + 0x1a, 0x16, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x47, 0x65, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, + 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x42, 0x0d, 0x5a, 0x0b, 0x2e, 0x2f, 0x75, 0x73, + 0x65, 0x72, 0x3b, 0x75, 0x73, 0x65, 0x72, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -2481,7 +2668,7 @@ func file_user_user_proto_rawDescGZIP() []byte { return file_user_user_proto_rawDescData } -var file_user_user_proto_msgTypes = make([]protoimpl.MessageInfo, 36) +var file_user_user_proto_msgTypes = make([]protoimpl.MessageInfo, 39) var file_user_user_proto_goTypes = []interface{}{ (*CommonResp)(nil), // 0: user.CommonResp (*DeleteUsersReq)(nil), // 1: user.DeleteUsersReq @@ -2517,20 +2704,23 @@ var file_user_user_proto_goTypes = []interface{}{ (*UnBlockUserReq)(nil), // 31: user.UnBlockUserReq (*UnBlockUserResp)(nil), // 32: user.UnBlockUserResp (*GetBlockUsersReq)(nil), // 33: user.GetBlockUsersReq - (*GetBlockUsersResp)(nil), // 34: user.GetBlockUsersResp - (*AccountCheckResp_SingleUserStatus)(nil), // 35: user.AccountCheckResp.SingleUserStatus - (*sdk_ws.UserInfo)(nil), // 36: server_api_params.UserInfo - (*sdk_ws.RequestPagination)(nil), // 37: server_api_params.RequestPagination - (*sdk_ws.ResponsePagination)(nil), // 38: server_api_params.ResponsePagination + (*BlockUser)(nil), // 34: user.BlockUser + (*GetBlockUsersResp)(nil), // 35: user.GetBlockUsersResp + (*GetBlockUserReq)(nil), // 36: user.GetBlockUserReq + (*GetBlockUserResp)(nil), // 37: user.GetBlockUserResp + (*AccountCheckResp_SingleUserStatus)(nil), // 38: user.AccountCheckResp.SingleUserStatus + (*sdk_ws.UserInfo)(nil), // 39: server_api_params.UserInfo + (*sdk_ws.RequestPagination)(nil), // 40: server_api_params.RequestPagination + (*sdk_ws.ResponsePagination)(nil), // 41: server_api_params.ResponsePagination } var file_user_user_proto_depIdxs = []int32{ 0, // 0: user.DeleteUsersResp.CommonResp:type_name -> user.CommonResp 0, // 1: user.GetAllUserIDResp.CommonResp:type_name -> user.CommonResp 0, // 2: user.AccountCheckResp.commonResp:type_name -> user.CommonResp - 35, // 3: user.AccountCheckResp.ResultList:type_name -> user.AccountCheckResp.SingleUserStatus + 38, // 3: user.AccountCheckResp.ResultList:type_name -> user.AccountCheckResp.SingleUserStatus 0, // 4: user.GetUserInfoResp.commonResp:type_name -> user.CommonResp - 36, // 5: user.GetUserInfoResp.UserInfoList:type_name -> server_api_params.UserInfo - 36, // 6: user.UpdateUserInfoReq.UserInfo:type_name -> server_api_params.UserInfo + 39, // 5: user.GetUserInfoResp.UserInfoList:type_name -> server_api_params.UserInfo + 39, // 6: user.UpdateUserInfoReq.UserInfo:type_name -> server_api_params.UserInfo 0, // 7: user.UpdateUserInfoResp.commonResp:type_name -> user.CommonResp 0, // 8: user.SetReceiveMessageOptResp.commonResp:type_name -> user.CommonResp 12, // 9: user.SetReceiveMessageOptResp.conversationOptResultList:type_name -> user.OptResult @@ -2542,54 +2732,58 @@ var file_user_user_proto_depIdxs = []int32{ 0, // 15: user.GetUserResp.CommonResp:type_name -> user.CommonResp 21, // 16: user.GetUserResp.user:type_name -> user.User 0, // 17: user.AlterUserResp.CommonResp:type_name -> user.CommonResp - 37, // 18: user.GetUsersReq.Pagination:type_name -> server_api_params.RequestPagination + 40, // 18: user.GetUsersReq.Pagination:type_name -> server_api_params.RequestPagination 0, // 19: user.GetUsersResp.CommonResp:type_name -> user.CommonResp 21, // 20: user.GetUsersResp.user:type_name -> user.User - 38, // 21: user.GetUsersResp.Pagination:type_name -> server_api_params.ResponsePagination + 41, // 21: user.GetUsersResp.Pagination:type_name -> server_api_params.ResponsePagination 0, // 22: user.AddUserResp.CommonResp:type_name -> user.CommonResp 0, // 23: user.BlockUserResp.CommonResp:type_name -> user.CommonResp 0, // 24: user.UnBlockUserResp.CommonResp:type_name -> user.CommonResp - 37, // 25: user.GetBlockUsersReq.Pagination:type_name -> server_api_params.RequestPagination - 0, // 26: user.GetBlockUsersResp.CommonResp:type_name -> user.CommonResp - 21, // 27: user.GetBlockUsersResp.user:type_name -> user.User - 38, // 28: user.GetBlockUsersResp.Pagination:type_name -> server_api_params.ResponsePagination - 7, // 29: user.user.GetUserInfo:input_type -> user.GetUserInfoReq - 9, // 30: user.user.UpdateUserInfo:input_type -> user.UpdateUserInfoReq - 1, // 31: user.user.DeleteUsers:input_type -> user.DeleteUsersReq - 3, // 32: user.user.GetAllUserID:input_type -> user.GetAllUserIDReq - 11, // 33: user.user.SetReceiveMessageOpt:input_type -> user.SetReceiveMessageOptReq - 14, // 34: user.user.GetReceiveMessageOpt:input_type -> user.GetReceiveMessageOptReq - 16, // 35: user.user.GetAllConversationMsgOpt:input_type -> user.GetAllConversationMsgOptReq - 5, // 36: user.user.AccountCheck:input_type -> user.AccountCheckReq - 20, // 37: user.user.GetUser:input_type -> user.GetUserReq - 18, // 38: user.user.ResignUser:input_type -> user.ResignUserReq - 23, // 39: user.user.AlterUser:input_type -> user.AlterUserReq - 25, // 40: user.user.GetUsers:input_type -> user.GetUsersReq - 27, // 41: user.user.AddUser:input_type -> user.AddUserReq - 29, // 42: user.user.BlockUser:input_type -> user.BlockUserReq - 31, // 43: user.user.UnBlockUser:input_type -> user.UnBlockUserReq - 33, // 44: user.user.GetBlockUsers:input_type -> user.GetBlockUsersReq - 8, // 45: user.user.GetUserInfo:output_type -> user.GetUserInfoResp - 10, // 46: user.user.UpdateUserInfo:output_type -> user.UpdateUserInfoResp - 2, // 47: user.user.DeleteUsers:output_type -> user.DeleteUsersResp - 4, // 48: user.user.GetAllUserID:output_type -> user.GetAllUserIDResp - 13, // 49: user.user.SetReceiveMessageOpt:output_type -> user.SetReceiveMessageOptResp - 15, // 50: user.user.GetReceiveMessageOpt:output_type -> user.GetReceiveMessageOptResp - 17, // 51: user.user.GetAllConversationMsgOpt:output_type -> user.GetAllConversationMsgOptResp - 6, // 52: user.user.AccountCheck:output_type -> user.AccountCheckResp - 22, // 53: user.user.GetUser:output_type -> user.GetUserResp - 19, // 54: user.user.ResignUser:output_type -> user.ResignUserResp - 24, // 55: user.user.AlterUser:output_type -> user.AlterUserResp - 26, // 56: user.user.GetUsers:output_type -> user.GetUsersResp - 28, // 57: user.user.AddUser:output_type -> user.AddUserResp - 30, // 58: user.user.BlockUser:output_type -> user.BlockUserResp - 32, // 59: user.user.UnBlockUser:output_type -> user.UnBlockUserResp - 34, // 60: user.user.GetBlockUsers:output_type -> user.GetBlockUsersResp - 45, // [45:61] is the sub-list for method output_type - 29, // [29:45] is the sub-list for method input_type - 29, // [29:29] is the sub-list for extension type_name - 29, // [29:29] is the sub-list for extension extendee - 0, // [0:29] is the sub-list for field type_name + 40, // 25: user.GetBlockUsersReq.Pagination:type_name -> server_api_params.RequestPagination + 21, // 26: user.BlockUser.User:type_name -> user.User + 0, // 27: user.GetBlockUsersResp.CommonResp:type_name -> user.CommonResp + 34, // 28: user.GetBlockUsersResp.BlockUsers:type_name -> user.BlockUser + 41, // 29: user.GetBlockUsersResp.Pagination:type_name -> server_api_params.ResponsePagination + 34, // 30: user.GetBlockUserResp.BlockUser:type_name -> user.BlockUser + 7, // 31: user.user.GetUserInfo:input_type -> user.GetUserInfoReq + 9, // 32: user.user.UpdateUserInfo:input_type -> user.UpdateUserInfoReq + 1, // 33: user.user.DeleteUsers:input_type -> user.DeleteUsersReq + 3, // 34: user.user.GetAllUserID:input_type -> user.GetAllUserIDReq + 11, // 35: user.user.SetReceiveMessageOpt:input_type -> user.SetReceiveMessageOptReq + 14, // 36: user.user.GetReceiveMessageOpt:input_type -> user.GetReceiveMessageOptReq + 16, // 37: user.user.GetAllConversationMsgOpt:input_type -> user.GetAllConversationMsgOptReq + 5, // 38: user.user.AccountCheck:input_type -> user.AccountCheckReq + 20, // 39: user.user.GetUser:input_type -> user.GetUserReq + 18, // 40: user.user.ResignUser:input_type -> user.ResignUserReq + 23, // 41: user.user.AlterUser:input_type -> user.AlterUserReq + 25, // 42: user.user.GetUsers:input_type -> user.GetUsersReq + 27, // 43: user.user.AddUser:input_type -> user.AddUserReq + 29, // 44: user.user.BlockUser:input_type -> user.BlockUserReq + 31, // 45: user.user.UnBlockUser:input_type -> user.UnBlockUserReq + 33, // 46: user.user.GetBlockUsers:input_type -> user.GetBlockUsersReq + 36, // 47: user.user.GetBlockUser:input_type -> user.GetBlockUserReq + 8, // 48: user.user.GetUserInfo:output_type -> user.GetUserInfoResp + 10, // 49: user.user.UpdateUserInfo:output_type -> user.UpdateUserInfoResp + 2, // 50: user.user.DeleteUsers:output_type -> user.DeleteUsersResp + 4, // 51: user.user.GetAllUserID:output_type -> user.GetAllUserIDResp + 13, // 52: user.user.SetReceiveMessageOpt:output_type -> user.SetReceiveMessageOptResp + 15, // 53: user.user.GetReceiveMessageOpt:output_type -> user.GetReceiveMessageOptResp + 17, // 54: user.user.GetAllConversationMsgOpt:output_type -> user.GetAllConversationMsgOptResp + 6, // 55: user.user.AccountCheck:output_type -> user.AccountCheckResp + 22, // 56: user.user.GetUser:output_type -> user.GetUserResp + 19, // 57: user.user.ResignUser:output_type -> user.ResignUserResp + 24, // 58: user.user.AlterUser:output_type -> user.AlterUserResp + 26, // 59: user.user.GetUsers:output_type -> user.GetUsersResp + 28, // 60: user.user.AddUser:output_type -> user.AddUserResp + 30, // 61: user.user.BlockUser:output_type -> user.BlockUserResp + 32, // 62: user.user.UnBlockUser:output_type -> user.UnBlockUserResp + 35, // 63: user.user.GetBlockUsers:output_type -> user.GetBlockUsersResp + 37, // 64: user.user.GetBlockUser:output_type -> user.GetBlockUserResp + 48, // [48:65] is the sub-list for method output_type + 31, // [31:48] is the sub-list for method input_type + 31, // [31:31] is the sub-list for extension type_name + 31, // [31:31] is the sub-list for extension extendee + 0, // [0:31] is the sub-list for field type_name } func init() { file_user_user_proto_init() } @@ -3007,7 +3201,7 @@ func file_user_user_proto_init() { } } file_user_user_proto_msgTypes[34].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetBlockUsersResp); i { + switch v := v.(*BlockUser); i { case 0: return &v.state case 1: @@ -3019,6 +3213,42 @@ func file_user_user_proto_init() { } } file_user_user_proto_msgTypes[35].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetBlockUsersResp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_user_user_proto_msgTypes[36].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetBlockUserReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_user_user_proto_msgTypes[37].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetBlockUserResp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_user_user_proto_msgTypes[38].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*AccountCheckResp_SingleUserStatus); i { case 0: return &v.state @@ -3037,7 +3267,7 @@ func file_user_user_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_user_user_proto_rawDesc, NumEnums: 0, - NumMessages: 36, + NumMessages: 39, NumExtensions: 0, NumServices: 1, }, @@ -3079,6 +3309,7 @@ type UserClient interface { BlockUser(ctx context.Context, in *BlockUserReq, opts ...grpc.CallOption) (*BlockUserResp, error) UnBlockUser(ctx context.Context, in *UnBlockUserReq, opts ...grpc.CallOption) (*UnBlockUserResp, error) GetBlockUsers(ctx context.Context, in *GetBlockUsersReq, opts ...grpc.CallOption) (*GetBlockUsersResp, error) + GetBlockUser(ctx context.Context, in *GetBlockUserReq, opts ...grpc.CallOption) (*GetBlockUserResp, error) } type userClient struct { @@ -3233,6 +3464,15 @@ func (c *userClient) GetBlockUsers(ctx context.Context, in *GetBlockUsersReq, op return out, nil } +func (c *userClient) GetBlockUser(ctx context.Context, in *GetBlockUserReq, opts ...grpc.CallOption) (*GetBlockUserResp, error) { + out := new(GetBlockUserResp) + err := c.cc.Invoke(ctx, "/user.user/GetBlockUser", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + // UserServer is the server API for User service. type UserServer interface { GetUserInfo(context.Context, *GetUserInfoReq) (*GetUserInfoResp, error) @@ -3251,6 +3491,7 @@ type UserServer interface { BlockUser(context.Context, *BlockUserReq) (*BlockUserResp, error) UnBlockUser(context.Context, *UnBlockUserReq) (*UnBlockUserResp, error) GetBlockUsers(context.Context, *GetBlockUsersReq) (*GetBlockUsersResp, error) + GetBlockUser(context.Context, *GetBlockUserReq) (*GetBlockUserResp, error) } // UnimplementedUserServer can be embedded to have forward compatible implementations. @@ -3305,6 +3546,9 @@ func (*UnimplementedUserServer) UnBlockUser(context.Context, *UnBlockUserReq) (* func (*UnimplementedUserServer) GetBlockUsers(context.Context, *GetBlockUsersReq) (*GetBlockUsersResp, error) { return nil, status.Errorf(codes.Unimplemented, "method GetBlockUsers not implemented") } +func (*UnimplementedUserServer) GetBlockUser(context.Context, *GetBlockUserReq) (*GetBlockUserResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetBlockUser not implemented") +} func RegisterUserServer(s *grpc.Server, srv UserServer) { s.RegisterService(&_User_serviceDesc, srv) @@ -3598,6 +3842,24 @@ func _User_GetBlockUsers_Handler(srv interface{}, ctx context.Context, dec func( return interceptor(ctx, in, info, handler) } +func _User_GetBlockUser_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetBlockUserReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(UserServer).GetBlockUser(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/user.user/GetBlockUser", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(UserServer).GetBlockUser(ctx, req.(*GetBlockUserReq)) + } + return interceptor(ctx, in, info, handler) +} + var _User_serviceDesc = grpc.ServiceDesc{ ServiceName: "user.user", HandlerType: (*UserServer)(nil), @@ -3666,6 +3928,10 @@ var _User_serviceDesc = grpc.ServiceDesc{ MethodName: "GetBlockUsers", Handler: _User_GetBlockUsers_Handler, }, + { + MethodName: "GetBlockUser", + Handler: _User_GetBlockUser_Handler, + }, }, Streams: []grpc.StreamDesc{}, Metadata: "user/user.proto", diff --git a/pkg/proto/user/user.proto b/pkg/proto/user/user.proto index d74fbd1c4..78343e9c9 100644 --- a/pkg/proto/user/user.proto +++ b/pkg/proto/user/user.proto @@ -193,13 +193,27 @@ message GetBlockUsersReq{ int32 BlockUserNum = 4; } +message BlockUser { + User User = 1; + string BeginDisableTime = 2; + string EndDisableTime = 3; +} + message GetBlockUsersResp{ CommonResp CommonResp = 1; - repeated User user = 2; + repeated BlockUser BlockUsers = 2; server_api_params.ResponsePagination Pagination = 3; int32 BlockUserNum = 4; } +message GetBlockUserReq { + string User_id = 1; + string OperationID = 2; +} + +message GetBlockUserResp { + BlockUser BlockUser = 2; +} service user { rpc GetUserInfo(GetUserInfoReq) returns(GetUserInfoResp); @@ -219,4 +233,5 @@ service user { rpc BlockUser(BlockUserReq) returns (BlockUserResp); rpc UnBlockUser(UnBlockUserReq) returns (UnBlockUserResp); rpc GetBlockUsers(GetBlockUsersReq) returns (GetBlockUsersResp); + rpc GetBlockUser(GetBlockUserReq) returns (GetBlockUserResp); } From 0ed393b1a5ad2f90864a9414aa601c29f37c08af Mon Sep 17 00:00:00 2001 From: wangchuxiao Date: Thu, 27 Jan 2022 01:08:02 +0800 Subject: [PATCH 560/814] group --- internal/cms_api/group/group.go | 19 +- internal/cms_api/router.go | 4 +- internal/cms_api/user/user.go | 67 +-- internal/rpc/group/group.go | 26 +- internal/rpc/user/user.go | 32 +- pkg/cms_api_struct/user.go | 25 +- .../mysql_model/im_mysql_model/group_model.go | 25 +- .../mysql_model/im_mysql_model/user_model.go | 46 +- pkg/common/log/logrus.go | 19 +- pkg/proto/group/group.pb.go | 417 ++++++++++-------- pkg/proto/group/group.proto | 5 +- pkg/proto/sdk_ws/ws.pb.go | 4 +- pkg/proto/user/user.pb.go | 374 ++++++++-------- pkg/proto/user/user.proto | 3 + 14 files changed, 588 insertions(+), 478 deletions(-) diff --git a/internal/cms_api/group/group.go b/internal/cms_api/group/group.go index 0b0242777..d09c3b709 100644 --- a/internal/cms_api/group/group.go +++ b/internal/cms_api/group/group.go @@ -7,6 +7,7 @@ import ( openIMHttp "Open_IM/pkg/common/http" "Open_IM/pkg/common/log" "Open_IM/pkg/grpc-etcdv3/getcdv3" + commonPb "Open_IM/pkg/proto/sdk_ws" "Open_IM/pkg/utils" "context" "fmt" @@ -28,6 +29,7 @@ func GetGroups(c *gin.Context) { openIMHttp.RespHttp200(c, constant.ErrArgs, nil) return } + reqPb.Pagination = &commonPb.RequestPagination{} utils.CopyStructFields(&reqPb.Pagination, req) etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImGroupName) client := pbGroup.NewGroupClient(etcdConn) @@ -46,11 +48,13 @@ func GetGroups(c *gin.Context) { CreateTime: (utils.UnixSecondToTime(int64(v.CreateTime))).String(), IsBanChat: false, IsBanPrivateChat: false, - ProfilePhoto: v.FaceURL, + ProfilePhoto: v.FaceURL, }) } + resp.GroupNums = int(respPb.GroupNum) + resp.CurrentPage = int(respPb.Pagination.PageNumber) + resp.ShowNumber = int(respPb.Pagination.ShowNumber) openIMHttp.RespHttp200(c, constant.OK, resp) - } func GetGroup(c *gin.Context) { @@ -83,7 +87,7 @@ func GetGroup(c *gin.Context) { CreateTime: (utils.UnixSecondToTime(int64(v.CreateTime))).String(), IsBanChat: false, IsBanPrivateChat: false, - ProfilePhoto: v.FaceURL, + ProfilePhoto: v.FaceURL, }) } openIMHttp.RespHttp200(c, constant.OK, resp) @@ -116,7 +120,7 @@ func CreateGroup(c *gin.Context) { func BanGroupChat(c *gin.Context) { var ( - req cms_api_struct.BanGroupChatRequest + req cms_api_struct.BanGroupChatRequest reqPb pbGroup.BanGroupChatReq ) if err := c.BindJSON(&req); err != nil { @@ -139,7 +143,7 @@ func BanGroupChat(c *gin.Context) { func BanPrivateChat(c *gin.Context) { var ( - req cms_api_struct.BanPrivateChatRequest + req cms_api_struct.BanPrivateChatRequest reqPb pbGroup.BanPrivateChatReq ) if err := c.BindJSON(&req); err != nil { @@ -162,7 +166,7 @@ func BanPrivateChat(c *gin.Context) { func GetGroupsMember(c *gin.Context) { var ( req cms_api_struct.GetGroupMembersRequest - _ cms_api_struct.GetGroupMembersResponse + _ cms_api_struct.GetGroupMembersResponse ) if err := c.BindJSON(&req); err != nil { log.NewError("0", "BindJSON failed ", err.Error()) @@ -171,7 +175,6 @@ func GetGroupsMember(c *gin.Context) { } } - func InquireMember(c *gin.Context) { } @@ -180,12 +183,10 @@ func InquireGroup(c *gin.Context) { } - func AddMembers(c *gin.Context) { } - func RemoveUser(c *gin.Context) { } diff --git a/internal/cms_api/router.go b/internal/cms_api/router.go index fc5d4647b..9331a1556 100644 --- a/internal/cms_api/router.go +++ b/internal/cms_api/router.go @@ -59,13 +59,11 @@ func NewGinRouter() *gin.Engine { { groupRouterGroup.GET("/get_groups", group.GetGroups) groupRouterGroup.GET("/get_group", group.GetGroup) - groupRouterGroup.GET("/search_groups_member", group.SearchGroupsMember) + groupRouterGroup.GET("/search_groups_member", group.GetGroupsMember) groupRouterGroup.POST("/create_group", group.CreateGroup) groupRouterGroup.GET("/inquire_group", group.InquireGroup) groupRouterGroup.GET("/inquire_member_by_group", group.InquireMember) groupRouterGroup.POST("/add_members", group.AddMembers) - groupRouterGroup.POST("/set_master", group.SetMaster) - groupRouterGroup.POST("/block_user", group.BlockUser) groupRouterGroup.POST("/remove_user", group.RemoveUser) groupRouterGroup.POST("/ban_private_chat", group.BanPrivateChat) groupRouterGroup.POST("/withdraw_message", group.Withdraw) diff --git a/internal/cms_api/user/user.go b/internal/cms_api/user/user.go index 02fe268a2..2842eb460 100644 --- a/internal/cms_api/user/user.go +++ b/internal/cms_api/user/user.go @@ -12,16 +12,17 @@ import ( "Open_IM/pkg/utils" "context" "fmt" - "github.com/gin-gonic/gin" "net/http" "strings" + + "github.com/gin-gonic/gin" ) func GetUser(c *gin.Context) { var ( - req cms_api_struct.GetUserRequest - resp cms_api_struct.GetUserResponse - reqPb pb.GetUserReq + req cms_api_struct.GetUserRequest + resp cms_api_struct.GetUserResponse + reqPb pb.GetUserReq ) if err := c.ShouldBindQuery(&req); err != nil { log.NewError("0", "ShouldBindQuery failed ", err.Error()) @@ -47,9 +48,9 @@ func GetUser(c *gin.Context) { func GetUsers(c *gin.Context) { var ( - req cms_api_struct.GetUsersRequest - resp cms_api_struct.GetUsersResponse - reqPb pb.GetUsersReq + req cms_api_struct.GetUsersRequest + resp cms_api_struct.GetUsersResponse + reqPb pb.GetUsersReq ) reqPb.Pagination = &commonPb.RequestPagination{} if err := c.ShouldBindQuery(&req); err != nil { @@ -97,12 +98,12 @@ func ResignUser(c *gin.Context) { func AlterUser(c *gin.Context) { var ( - req cms_api_struct.AlterUserRequest - resp cms_api_struct.AlterUserResponse - reqPb pb.AlterUserReq - _ *pb.AlterUserResp + req cms_api_struct.AlterUserRequest + resp cms_api_struct.AlterUserResponse + reqPb pb.AlterUserReq + _ *pb.AlterUserResp ) - if err := c.ShouldBind(&req); err != nil { + if err := c.BindJSON(&req); err != nil { log.NewError("0", "BindJSON failed ", err.Error()) openIMHttp.RespHttp200(c, constant.ErrArgs, resp) return @@ -112,15 +113,16 @@ func AlterUser(c *gin.Context) { client := pb.NewUserClient(etcdConn) _, err := client.AlterUser(context.Background(), &reqPb) if err != nil { - openIMHttp.RespHttp200(c, constant.ErrServer, resp) + log.NewError("0", "microserver failed ", err.Error()) + openIMHttp.RespHttp200(c, constant.ErrServer, nil) } - openIMHttp.RespHttp200(c, constant.OK, resp) + openIMHttp.RespHttp200(c, constant.OK, nil) } func AddUser(c *gin.Context) { var ( - req cms_api_struct.AddUserRequest - reqPb pb.AddUserReq + req cms_api_struct.AddUserRequest + reqPb pb.AddUserReq ) if err := c.BindJSON(&req); err != nil { log.NewError("0", "BindJSON failed ", err.Error()) @@ -140,9 +142,9 @@ func AddUser(c *gin.Context) { func BlockUser(c *gin.Context) { var ( - req cms_api_struct.BlockUserRequest - resp cms_api_struct.BlockUserResponse - reqPb pb.BlockUserReq + req cms_api_struct.BlockUserRequest + resp cms_api_struct.BlockUserResponse + reqPb pb.BlockUserReq ) if err := c.BindJSON(&req); err != nil { fmt.Println(err) @@ -165,9 +167,9 @@ func BlockUser(c *gin.Context) { func UnblockUser(c *gin.Context) { var ( - req cms_api_struct.UnblockUserRequest - resp cms_api_struct.UnBlockUserResponse - reqPb pb.UnBlockUserReq + req cms_api_struct.UnblockUserRequest + resp cms_api_struct.UnBlockUserResponse + reqPb pb.UnBlockUserReq ) if err := c.ShouldBind(&req); err != nil { log.NewError("0", "BindJSON failed ", err.Error()) @@ -207,14 +209,14 @@ func GetBlockUsers(c *gin.Context) { openIMHttp.RespHttp200(c, constant.ErrServer, resp) return } - for _, v := range respPb.BlockUsers{ + for _, v := range respPb.BlockUsers { resp.BlockUsers = append(resp.BlockUsers, cms_api_struct.BlockUser{ - UserResponse: cms_api_struct.UserResponse{ - UserId:v.User.UserId, - ProfilePhoto:v.User.ProfilePhoto, - Nickname: v.User.Nickname, - IsBlock: v.User.IsBlock, - CreateTime: v.User.CreateTime, + UserResponse: cms_api_struct.UserResponse{ + UserId: v.User.UserId, + ProfilePhoto: v.User.ProfilePhoto, + Nickname: v.User.Nickname, + IsBlock: v.User.IsBlock, + CreateTime: v.User.CreateTime, }, BeginDisableTime: v.BeginDisableTime, EndDisableTime: v.EndDisableTime, @@ -226,11 +228,10 @@ func GetBlockUsers(c *gin.Context) { openIMHttp.RespHttp200(c, constant.OK, resp) } - func GetBlockUser(c *gin.Context) { var ( - req cms_api_struct.GetBlockUserRequest - resp cms_api_struct.GetBlockUserResponse + req cms_api_struct.GetBlockUserRequest + resp cms_api_struct.GetBlockUserResponse reqPb pb.GetBlockUserReq ) if err := c.ShouldBindQuery(&req); err != nil { @@ -249,4 +250,4 @@ func GetBlockUser(c *gin.Context) { resp.BeginDisableTime = respPb.BlockUser.BeginDisableTime utils.CopyStructFields(&resp, respPb.BlockUser.User) openIMHttp.RespHttp200(c, constant.OK, resp) -} \ No newline at end of file +} diff --git a/internal/rpc/group/group.go b/internal/rpc/group/group.go index ecd0b4d27..8a56cf748 100644 --- a/internal/rpc/group/group.go +++ b/internal/rpc/group/group.go @@ -14,11 +14,12 @@ import ( open_im_sdk "Open_IM/pkg/proto/sdk_ws" "Open_IM/pkg/utils" "context" - "google.golang.org/grpc" "net" "strconv" "strings" "time" + + "google.golang.org/grpc" ) type groupServer struct { @@ -648,7 +649,7 @@ func (s *groupServer) GetGroup(_ context.Context, req *pbGroup.GetGroupReq) (*pb if err != nil { return nil, err } - for _, v:= range groups { + for _, v := range groups { resp.GroupInfo = append(resp.GroupInfo, &open_im_sdk.GroupInfo{ GroupID: v.GroupID, GroupName: v.GroupName, @@ -664,14 +665,23 @@ func (s *groupServer) GetGroup(_ context.Context, req *pbGroup.GetGroupReq) (*pb func (s *groupServer) GetGroups(_ context.Context, req *pbGroup.GetGroupsReq) (*pbGroup.GetGroupsResp, error) { log.NewInfo(req.OperationID, "GetGroups ", req.String()) + resp := &pbGroup.GetGroupsResp{ + GroupInfo: []*open_im_sdk.GroupInfo{}, + Pagination: &open_im_sdk.RequestPagination{}, + } groups, err := imdb.GetGroups(int(req.Pagination.PageNumber), int(req.Pagination.ShowNumber)) if err != nil { - return nil, err + return resp, err } - resp := &pbGroup.GetGroupsResp{ - GroupInfo: []*open_im_sdk.GroupInfo{}, + groupsCountNum, err := imdb.GetGroupsCountNum() + log.NewInfo(req.OperationID, "groupsCountNum ", groupsCountNum) + if err != nil { + return resp, err } - for _, v:= range groups { + resp.GroupNum = int32(groupsCountNum) + resp.Pagination.PageNumber = req.Pagination.PageNumber + resp.Pagination.ShowNumber = req.Pagination.ShowNumber + for _, v := range groups { resp.GroupInfo = append(resp.GroupInfo, &open_im_sdk.GroupInfo{ GroupID: v.GroupID, GroupName: v.GroupName, @@ -681,11 +691,11 @@ func (s *groupServer) GetGroups(_ context.Context, req *pbGroup.GetGroupsReq) (* CreatorUserID: v.CreatorUserID, }) } - utils.CopyStructFields(resp.GroupInfo, groups) + return resp, nil } -func (s *groupServer) BanGroupChat(_ context.Context, req *pbGroup.BanGroupChatReq) (*pbGroup.BanGroupChatResp, error){ +func (s *groupServer) BanGroupChat(_ context.Context, req *pbGroup.BanGroupChatReq) (*pbGroup.BanGroupChatResp, error) { log.NewInfo(req.OperationID, "BanGroupChat ", req.String()) resp := &pbGroup.BanGroupChatResp{} if err := imdb.BanGroupChat(req.GroupId); err != nil { diff --git a/internal/rpc/user/user.go b/internal/rpc/user/user.go index cde774647..84cb72d10 100644 --- a/internal/rpc/user/user.go +++ b/internal/rpc/user/user.go @@ -15,10 +15,11 @@ import ( "Open_IM/pkg/utils" "context" "fmt" - "google.golang.org/grpc" "net" "strconv" "strings" + + "google.golang.org/grpc" ) type userServer struct { @@ -244,7 +245,7 @@ func (s *userServer) UpdateUserInfo(ctx context.Context, req *pbUser.UpdateUserI func (s *userServer) GetUser(ctx context.Context, req *pbUser.GetUserReq) (*pbUser.GetUserResp, error) { log.NewInfo(req.OperationID, "GetUser args ", req.String()) - resp := &pbUser.GetUserResp{User:&pbUser.User{}} + resp := &pbUser.GetUserResp{User: &pbUser.User{}} user, err := imdb.GetUserByUserID(req.UserId) if err != nil { return resp, nil @@ -260,7 +261,7 @@ func (s *userServer) GetUser(ctx context.Context, req *pbUser.GetUserReq) (*pbUs func (s *userServer) GetUsers(ctx context.Context, req *pbUser.GetUsersReq) (*pbUser.GetUsersResp, error) { log.NewInfo(req.OperationID, "GetUsers args ", req.String()) - resp := &pbUser.GetUsersResp{User:[]*pbUser.User{}} + resp := &pbUser.GetUsersResp{User: []*pbUser.User{}} users, err := imdb.GetUsers(req.Pagination.ShowNumber, req.Pagination.PageNumber) if err != nil { return resp, nil @@ -278,7 +279,7 @@ func (s *userServer) GetUsers(ctx context.Context, req *pbUser.GetUsersReq) (*pb UserId: v.UserID, CreateTime: v.CreateTime.String(), Nickname: v.Nickname, - IsBlock: isBlock, + IsBlock: isBlock, } resp.User = append(resp.User, user) } @@ -297,7 +298,18 @@ func (s *userServer) ResignUser(ctx context.Context, req *pbUser.ResignUserReq) func (s *userServer) AlterUser(ctx context.Context, req *pbUser.AlterUserReq) (*pbUser.AlterUserResp, error) { log.NewInfo(req.OperationID, "AlterUser args ", req.String()) - return &pbUser.AlterUserResp{}, nil + resp := &pbUser.AlterUserResp{} + user := db.Users{ + PhoneNumber: strconv.FormatInt(req.PhoneNumber, 10), + Nickname: req.Nickname, + Email: req.Email, + UserID: req.UserId, + } + if err := imdb.UpdateUserInfo(user); err != nil { + log.NewError(req.OperationID, err) + return resp, err + } + return resp, nil } func (s *userServer) AddUser(ctx context.Context, req *pbUser.AddUserReq) (*pbUser.AddUserResp, error) { @@ -332,8 +344,6 @@ func (s *userServer) UnBlockUser(ctx context.Context, req *pbUser.UnBlockUserReq return resp, nil } -//func (s *userServer) GetBlockUser(ctx context.Context, req *pbUser.GetBlockUserReq) - func (s *userServer) GetBlockUsers(ctx context.Context, req *pbUser.GetBlockUsersReq) (*pbUser.GetBlockUsersResp, error) { log.NewInfo(req.OperationID, "GetBlockUsers args ", req.String()) resp := &pbUser.GetBlockUsersResp{} @@ -355,7 +365,7 @@ func (s *userServer) GetBlockUsers(ctx context.Context, req *pbUser.GetBlockUser IsBlock: true, }, BeginDisableTime: (v.BeginDisableTime).String(), - EndDisableTime: (v.EndDisableTime).String(), + EndDisableTime: (v.EndDisableTime).String(), }) } resp.Pagination = &sdkws.ResponsePagination{} @@ -368,8 +378,8 @@ func (s *userServer) GetBlockUsers(ctx context.Context, req *pbUser.GetBlockUser func (s *userServer) GetBlockUser(_ context.Context, req *pbUser.GetBlockUserReq) (*pbUser.GetBlockUserResp, error) { log.NewInfo(req.OperationID, "GetBlockUser args ", req.String()) resp := &pbUser.GetBlockUserResp{} - user, err := imdb.GetBlockUserById(req.UserId) - if err != nil{ + user, err := imdb.GetBlockUserById(req.UserId) + if err != nil { return resp, err } resp.BlockUser = &pbUser.BlockUser{} @@ -377,4 +387,4 @@ func (s *userServer) GetBlockUser(_ context.Context, req *pbUser.GetBlockUserReq resp.BlockUser.EndDisableTime = (user.EndDisableTime).String() return resp, nil -} \ No newline at end of file +} diff --git a/pkg/cms_api_struct/user.go b/pkg/cms_api_struct/user.go index 875e999ea..902171614 100644 --- a/pkg/cms_api_struct/user.go +++ b/pkg/cms_api_struct/user.go @@ -5,7 +5,7 @@ type UserResponse struct { Nickname string `json:"nick_name"` UserId string `json:"user_id"` CreateTime string `json:"create_time,omitempty"` - IsBlock bool `json:"is_block"` + IsBlock bool `json:"is_block"` } type GetUserRequest struct { @@ -21,8 +21,8 @@ type GetUsersRequest struct { } type GetUsersResponse struct { - Users []*UserResponse `json:"users"` - UserNum int `json:"user_num"` + Users []*UserResponse `json:"users"` + UserNum int `json:"user_num"` ResponsePagination } @@ -34,7 +34,10 @@ type ResignUserResponse struct { } type AlterUserRequest struct { - UserId string `json:"user_id"` + UserId string `json:"user_id" binding:"required"` + Nickname string `json:"nickname"` + PhoneNumber int `json:"phone_number" validate:"len=11"` + Email string `json:"email"` } type AlterUserResponse struct { @@ -42,8 +45,8 @@ type AlterUserResponse struct { type AddUserRequest struct { PhoneNumber string `json:"phone_number" binding:"required"` - UserId string `json:"user_id" binding:"required"` - Name string `json:"name" binding:"required"` + UserId string `json:"user_id" binding:"required"` + Name string `json:"name" binding:"required"` } type AddUserResponse struct { @@ -52,11 +55,11 @@ type AddUserResponse struct { type BlockUser struct { UserResponse BeginDisableTime string `json:"begin_disable_time"` - EndDisableTime string `json:"end_disable_time"` + EndDisableTime string `json:"end_disable_time"` } type BlockUserRequest struct { - UserId string `json:"user_id" binding:"required"` + UserId string `json:"user_id" binding:"required"` EndDisableTime string `json:"end_disable_time" binding:"required"` } @@ -75,8 +78,8 @@ type GetBlockUsersRequest struct { } type GetBlockUsersResponse struct { - BlockUsers []BlockUser `json:"block_users"` - BlockUserNum int `json:"block_user_num"` + BlockUsers []BlockUser `json:"block_users"` + BlockUserNum int `json:"block_user_num"` ResponsePagination } @@ -86,4 +89,4 @@ type GetBlockUserRequest struct { type GetBlockUserResponse struct { BlockUser -} \ No newline at end of file +} diff --git a/pkg/common/db/mysql_model/im_mysql_model/group_model.go b/pkg/common/db/mysql_model/im_mysql_model/group_model.go index 094aecc9a..030a991a8 100644 --- a/pkg/common/db/mysql_model/im_mysql_model/group_model.go +++ b/pkg/common/db/mysql_model/im_mysql_model/group_model.go @@ -66,7 +66,7 @@ func GetGroupsByName(groupName string, pageNumber, showNumber int32) ([]db.Group return groups, err } dbConn.LogMode(true) - err = dbConn.Table("groups").Where("name=?", groupName).Limit(showNumber).Offset(showNumber*(pageNumber-1)).Find(&groups).Error + err = dbConn.Table("groups").Where("name=?", groupName).Limit(showNumber).Offset(showNumber * (pageNumber - 1)).Find(&groups).Error return groups, err } @@ -77,7 +77,7 @@ func GetGroups(pageNumber, showNumber int) ([]db.Group, error) { return groups, err } dbConn.LogMode(true) - if err = dbConn.Table("groups").Limit(showNumber).Offset(showNumber*(pageNumber-1)).Find(&groups).Error; err != nil { + if err = dbConn.Table("groups").Limit(showNumber).Offset(showNumber * (pageNumber - 1)).Find(&groups).Error; err != nil { return groups, err } return groups, nil @@ -121,14 +121,27 @@ func SetGroupMaster(userId, groupId string) error { } dbConn.LogMode(true) groupMember := db.GroupMember{ - UserID: userId, + UserID: userId, GroupID: groupId, } updateInfo := db.GroupMember{ - RoleLevel:constant.GroupOwner, + RoleLevel: constant.GroupOwner, } if err := dbConn.Find(&groupMember).Update(updateInfo).Error; err != nil { return err } - return nil -} \ No newline at end of file + return nil +} + +func GetGroupsCountNum() (int, error) { + dbConn, err := db.DB.MysqlDB.DefaultGormDB() + if err != nil { + return 0, err + } + dbConn.LogMode(true) + var count int + if err := dbConn.Model(&db.Group{}).Count(&count).Error; err != nil { + return 0, err + } + return count, nil +} 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 e70a94e4f..7b5596193 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 @@ -90,7 +90,7 @@ func UpdateUserInfo(user db.Users) error { if err != nil { return err } - + dbConn.LogMode(true) err = dbConn.Table("users").Where("user_id=?", user.UserID).Update(&user).Error return err } @@ -130,7 +130,7 @@ func GetUsers(showNumber, pageNumber int32) ([]db.Users, error) { return users, err } dbConn.LogMode(true) - err = dbConn.Limit(showNumber).Offset(showNumber*(pageNumber-1)).Find(&users).Error + err = dbConn.Limit(showNumber).Offset(showNumber * (pageNumber - 1)).Find(&users).Error if err != nil { return users, err } @@ -156,14 +156,14 @@ func AddUser(userId, phoneNumber, name string) error { return err } user := db.Users{ - PhoneNumber:phoneNumber, - Birth:time.Now(), - CreateTime:time.Now(), - UserID: userId, - Nickname:name, + PhoneNumber: phoneNumber, + Birth: time.Now(), + CreateTime: time.Now(), + UserID: userId, + Nickname: name, } result := dbConn.Create(&user) - return result.Error + return result.Error } func UserIsBlock(userId string) (bool, error) { @@ -181,7 +181,7 @@ func UserIsBlock(userId string) (bool, error) { func BlockUser(userId, endDisableTime string) error { user, err := GetUserByUserID(userId) - if err != nil || user.UserID=="" { + if err != nil || user.UserID == "" { return err } dbConn, err := db.DB.MysqlDB.DefaultGormDB() @@ -202,9 +202,9 @@ func BlockUser(userId, endDisableTime string) error { return nil } blockUser = db.BlackList{ - UserId: userId, + UserId: userId, BeginDisableTime: time.Now(), - EndDisableTime: end, + EndDisableTime: end, } result := dbConn.Create(&blockUser) return result.Error @@ -221,25 +221,25 @@ func UnBlockUser(userId string) error { } type BlockUserInfo struct { - User db.Users + User db.Users BeginDisableTime time.Time - EndDisableTime time.Time + EndDisableTime time.Time } func GetBlockUserById(userId string) (BlockUserInfo, error) { dbConn, err := db.DB.MysqlDB.DefaultGormDB() var blockUserInfo BlockUserInfo blockUser := db.BlackList{ - UserId:userId, + UserId: userId, } if err != nil { return blockUserInfo, err } - if err = dbConn.Find(&blockUser).Error; err != nil{ + if err = dbConn.Find(&blockUser).Error; err != nil { return blockUserInfo, err } user := db.Users{ - UserID:blockUser.UserId, + UserID: blockUser.UserId, } if err := dbConn.Find(&user).Error; err != nil { return blockUserInfo, err @@ -258,18 +258,18 @@ func GetBlockUsers(showNumber, pageNumber int32) ([]BlockUserInfo, error) { return blockUserInfos, err } dbConn.LogMode(true) - err = dbConn.Limit(showNumber).Offset(showNumber*(pageNumber-1)).Find(&blockUsers).Error + err = dbConn.Limit(showNumber).Offset(showNumber * (pageNumber - 1)).Find(&blockUsers).Error for _, blockUser := range blockUsers { var user db.Users - if err := dbConn.Table("users").Where("user_id=?", blockUser.UserId).First(&user).Error; err == nil{ + if err := dbConn.Table("users").Where("user_id=?", blockUser.UserId).First(&user).Error; err == nil { blockUserInfos = append(blockUserInfos, BlockUserInfo{ User: db.Users{ - UserID: user.UserID, - Nickname: user.Nickname, - FaceURL: user.FaceURL, + UserID: user.UserID, + Nickname: user.Nickname, + FaceURL: user.FaceURL, }, BeginDisableTime: blockUser.BeginDisableTime, - EndDisableTime: blockUser.EndDisableTime, + EndDisableTime: blockUser.EndDisableTime, }) } } @@ -287,4 +287,4 @@ func GetBlockUsersNumCount() (int, error) { return 0, err } return count, nil -} \ No newline at end of file +} diff --git a/pkg/common/log/logrus.go b/pkg/common/log/logrus.go index 936f3e9b2..e8a4ba25f 100644 --- a/pkg/common/log/logrus.go +++ b/pkg/common/log/logrus.go @@ -2,14 +2,14 @@ package log import ( "Open_IM/pkg/common/config" - "bufio" "fmt" + "os" + "time" + nested "github.com/antonfisher/nested-logrus-formatter" rotatelogs "github.com/lestrrat-go/file-rotatelogs" "github.com/rifflock/lfshook" "github.com/sirupsen/logrus" - "os" - "time" ) var logger *Logger @@ -32,12 +32,13 @@ func loggerInit(moduleName string) *Logger { //All logs will be printed logger.SetLevel(logrus.Level(config.Config.Log.RemainLogLevel)) //Close std console output - src, err := os.OpenFile(os.DevNull, os.O_APPEND|os.O_WRONLY, os.ModeAppend) - if err != nil { - panic(err.Error()) - } - writer := bufio.NewWriter(src) - logger.SetOutput(writer) + // src, err := os.OpenFile(os.DevNull, os.O_APPEND|os.O_WRONLY, os.ModeAppend) + // if err != nil { + // panic(err.Error()) + // } + // writer := bufio.NewWriter(src) + // logger.SetOutput(writer) + logger.SetOutput(os.Stdout) //Log Console Print Style Setting logger.SetFormatter(&nested.Formatter{ TimestampFormat: "2006-01-02 15:04:05.000", diff --git a/pkg/proto/group/group.pb.go b/pkg/proto/group/group.pb.go index 74af41d22..7d24161ac 100644 --- a/pkg/proto/group/group.pb.go +++ b/pkg/proto/group/group.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.27.1 -// protoc v3.15.5 +// protoc-gen-go v1.26.0 +// protoc v3.19.3 // source: group/group.proto package group @@ -2070,7 +2070,8 @@ type GetGroupResp struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - GroupInfo []*sdk_ws.GroupInfo `protobuf:"bytes,1,rep,name=GroupInfo,proto3" json:"GroupInfo,omitempty"` + GroupInfo []*sdk_ws.GroupInfo `protobuf:"bytes,1,rep,name=GroupInfo,proto3" json:"GroupInfo,omitempty"` + Pagination *sdk_ws.RequestPagination `protobuf:"bytes,2,opt,name=Pagination,proto3" json:"Pagination,omitempty"` } func (x *GetGroupResp) Reset() { @@ -2112,6 +2113,13 @@ func (x *GetGroupResp) GetGroupInfo() []*sdk_ws.GroupInfo { return nil } +func (x *GetGroupResp) GetPagination() *sdk_ws.RequestPagination { + if x != nil { + return x.Pagination + } + return nil +} + type GetGroupsReq struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -2172,7 +2180,9 @@ type GetGroupsResp struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - GroupInfo []*sdk_ws.GroupInfo `protobuf:"bytes,1,rep,name=GroupInfo,proto3" json:"GroupInfo,omitempty"` + GroupInfo []*sdk_ws.GroupInfo `protobuf:"bytes,1,rep,name=GroupInfo,proto3" json:"GroupInfo,omitempty"` + Pagination *sdk_ws.RequestPagination `protobuf:"bytes,2,opt,name=Pagination,proto3" json:"Pagination,omitempty"` + GroupNum int32 `protobuf:"varint,3,opt,name=GroupNum,proto3" json:"GroupNum,omitempty"` } func (x *GetGroupsResp) Reset() { @@ -2214,6 +2224,20 @@ func (x *GetGroupsResp) GetGroupInfo() []*sdk_ws.GroupInfo { return nil } +func (x *GetGroupsResp) GetPagination() *sdk_ws.RequestPagination { + if x != nil { + return x.Pagination + } + return nil +} + +func (x *GetGroupsResp) GetGroupNum() int32 { + if x != nil { + return x.GroupNum + } + return 0 +} + type GetGroupMemberReq struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -2918,147 +2942,158 @@ var file_group_group_proto_rawDesc = []byte{ 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0a, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x22, 0x4a, 0x0a, 0x0c, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, - 0x70, 0x52, 0x65, 0x73, 0x70, 0x12, 0x3a, 0x0a, 0x09, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, - 0x66, 0x6f, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, - 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x47, 0x72, 0x6f, - 0x75, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x09, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x66, - 0x6f, 0x22, 0x76, 0x0a, 0x0c, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x52, 0x65, - 0x71, 0x12, 0x44, 0x0a, 0x0a, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, - 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0a, 0x50, 0x61, 0x67, - 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x4f, 0x70, - 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x22, 0x4b, 0x0a, 0x0d, 0x47, 0x65, 0x74, - 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x52, 0x65, 0x73, 0x70, 0x12, 0x3a, 0x0a, 0x09, 0x47, 0x72, - 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, - 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, - 0x73, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x09, 0x47, 0x72, 0x6f, - 0x75, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0x4f, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, - 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x65, 0x71, 0x12, 0x18, 0x0a, 0x07, 0x47, + 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x22, 0x90, 0x01, 0x0a, 0x0c, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, + 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x12, 0x3a, 0x0a, 0x09, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, + 0x6e, 0x66, 0x6f, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x73, 0x65, 0x72, 0x76, + 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x47, 0x72, + 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x09, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, + 0x66, 0x6f, 0x12, 0x44, 0x0a, 0x0a, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, + 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0a, 0x50, 0x61, + 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x76, 0x0a, 0x0c, 0x47, 0x65, 0x74, 0x47, + 0x72, 0x6f, 0x75, 0x70, 0x73, 0x52, 0x65, 0x71, 0x12, 0x44, 0x0a, 0x0a, 0x50, 0x61, 0x67, 0x69, + 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x73, + 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, + 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x52, 0x0a, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x20, + 0x0a, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, + 0x22, 0xad, 0x01, 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x52, 0x65, + 0x73, 0x70, 0x12, 0x3a, 0x0a, 0x09, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x18, + 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, + 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, + 0x6e, 0x66, 0x6f, 0x52, 0x09, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x44, + 0x0a, 0x0a, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, + 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x50, 0x61, + 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0a, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4e, 0x75, 0x6d, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4e, 0x75, 0x6d, + 0x22, 0x4f, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, + 0x65, 0x72, 0x52, 0x65, 0x71, 0x12, 0x18, 0x0a, 0x07, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x12, + 0x20, 0x0a, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, + 0x44, 0x22, 0x4d, 0x0a, 0x0f, 0x42, 0x61, 0x6e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x43, 0x68, 0x61, + 0x74, 0x52, 0x65, 0x71, 0x12, 0x18, 0x0a, 0x07, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x12, 0x20, + 0x0a, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, + 0x22, 0x12, 0x0a, 0x10, 0x42, 0x61, 0x6e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x43, 0x68, 0x61, 0x74, + 0x52, 0x65, 0x73, 0x70, 0x22, 0x4f, 0x0a, 0x11, 0x42, 0x61, 0x6e, 0x50, 0x72, 0x69, 0x76, 0x61, + 0x74, 0x65, 0x43, 0x68, 0x61, 0x74, 0x52, 0x65, 0x71, 0x12, 0x18, 0x0a, 0x07, 0x47, 0x72, 0x6f, + 0x75, 0x70, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x47, 0x72, 0x6f, 0x75, + 0x70, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x22, 0x14, 0x0a, 0x12, 0x42, 0x61, 0x6e, 0x50, 0x72, 0x69, 0x76, + 0x61, 0x74, 0x65, 0x43, 0x68, 0x61, 0x74, 0x52, 0x65, 0x73, 0x70, 0x22, 0x62, 0x0a, 0x0c, 0x53, + 0x65, 0x74, 0x4d, 0x61, 0x73, 0x74, 0x65, 0x72, 0x52, 0x65, 0x71, 0x12, 0x18, 0x0a, 0x07, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x47, 0x72, - 0x6f, 0x75, 0x70, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x4f, 0x70, 0x65, 0x72, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x22, 0x4d, 0x0a, 0x0f, 0x42, 0x61, 0x6e, 0x47, 0x72, - 0x6f, 0x75, 0x70, 0x43, 0x68, 0x61, 0x74, 0x52, 0x65, 0x71, 0x12, 0x18, 0x0a, 0x07, 0x47, 0x72, - 0x6f, 0x75, 0x70, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x47, 0x72, 0x6f, - 0x75, 0x70, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x22, 0x12, 0x0a, 0x10, 0x42, 0x61, 0x6e, 0x47, 0x72, 0x6f, - 0x75, 0x70, 0x43, 0x68, 0x61, 0x74, 0x52, 0x65, 0x73, 0x70, 0x22, 0x4f, 0x0a, 0x11, 0x42, 0x61, - 0x6e, 0x50, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x43, 0x68, 0x61, 0x74, 0x52, 0x65, 0x71, 0x12, - 0x18, 0x0a, 0x07, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x07, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x70, 0x65, - 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, - 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x22, 0x14, 0x0a, 0x12, 0x42, - 0x61, 0x6e, 0x50, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x43, 0x68, 0x61, 0x74, 0x52, 0x65, 0x73, - 0x70, 0x22, 0x62, 0x0a, 0x0c, 0x53, 0x65, 0x74, 0x4d, 0x61, 0x73, 0x74, 0x65, 0x72, 0x52, 0x65, - 0x71, 0x12, 0x18, 0x0a, 0x07, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x07, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x55, - 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x55, 0x73, 0x65, - 0x72, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x22, 0x0f, 0x0a, 0x0d, 0x53, 0x65, 0x74, 0x4d, 0x61, 0x73, 0x74, - 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x22, 0x4c, 0x0a, 0x0e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, - 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x12, 0x18, 0x0a, 0x07, 0x47, 0x72, 0x6f, 0x75, - 0x70, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x47, 0x72, 0x6f, 0x75, 0x70, - 0x49, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, - 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x49, 0x44, 0x22, 0x11, 0x0a, 0x0f, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x47, 0x72, - 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x32, 0xa5, 0x0b, 0x0a, 0x05, 0x67, 0x72, 0x6f, 0x75, - 0x70, 0x12, 0x3c, 0x0a, 0x0b, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, - 0x12, 0x15, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x47, - 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x1a, 0x16, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, - 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x12, - 0x36, 0x0a, 0x09, 0x6a, 0x6f, 0x69, 0x6e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x13, 0x2e, 0x67, - 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x4a, 0x6f, 0x69, 0x6e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, - 0x71, 0x1a, 0x14, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x4a, 0x6f, 0x69, 0x6e, 0x47, 0x72, - 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x12, 0x36, 0x0a, 0x09, 0x71, 0x75, 0x69, 0x74, 0x47, - 0x72, 0x6f, 0x75, 0x70, 0x12, 0x13, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x51, 0x75, 0x69, - 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x1a, 0x14, 0x2e, 0x67, 0x72, 0x6f, 0x75, - 0x70, 0x2e, 0x51, 0x75, 0x69, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x12, - 0x42, 0x0a, 0x0d, 0x67, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x49, 0x6e, 0x66, 0x6f, - 0x12, 0x17, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, - 0x70, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x1a, 0x18, 0x2e, 0x67, 0x72, 0x6f, 0x75, - 0x70, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x52, - 0x65, 0x73, 0x70, 0x12, 0x3f, 0x0a, 0x0c, 0x73, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, - 0x6e, 0x66, 0x6f, 0x12, 0x16, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x53, 0x65, 0x74, 0x47, - 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x1a, 0x17, 0x2e, 0x67, 0x72, - 0x6f, 0x75, 0x70, 0x2e, 0x53, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x66, 0x6f, - 0x52, 0x65, 0x73, 0x70, 0x12, 0x60, 0x0a, 0x17, 0x67, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, - 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x12, - 0x21, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, - 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x52, - 0x65, 0x71, 0x1a, 0x22, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x72, - 0x6f, 0x75, 0x70, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x69, - 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x51, 0x0a, 0x12, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, - 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x12, 0x1c, 0x2e, 0x67, - 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x47, 0x72, 0x6f, - 0x75, 0x70, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x52, 0x65, 0x71, 0x1a, 0x1d, 0x2e, 0x67, 0x72, 0x6f, - 0x75, 0x70, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, - 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x12, 0x63, 0x0a, 0x18, 0x67, 0x72, 0x6f, - 0x75, 0x70, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, - 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x22, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x72, - 0x6f, 0x75, 0x70, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x23, 0x2e, 0x67, 0x72, 0x6f, 0x75, - 0x70, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x51, - 0x0a, 0x12, 0x67, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, - 0x4c, 0x69, 0x73, 0x74, 0x12, 0x1c, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x65, 0x74, - 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x52, - 0x65, 0x71, 0x1a, 0x1d, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x72, - 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, - 0x70, 0x12, 0x54, 0x0a, 0x13, 0x67, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, - 0x62, 0x65, 0x72, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1d, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, - 0x2e, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, - 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x1a, 0x1e, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, - 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x49, - 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x12, 0x48, 0x0a, 0x0f, 0x6b, 0x69, 0x63, 0x6b, 0x47, - 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x19, 0x2e, 0x67, 0x72, 0x6f, - 0x75, 0x70, 0x2e, 0x4b, 0x69, 0x63, 0x6b, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, - 0x65, 0x72, 0x52, 0x65, 0x71, 0x1a, 0x1a, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x4b, 0x69, - 0x63, 0x6b, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x65, 0x73, - 0x70, 0x12, 0x51, 0x0a, 0x12, 0x67, 0x65, 0x74, 0x4a, 0x6f, 0x69, 0x6e, 0x65, 0x64, 0x47, 0x72, - 0x6f, 0x75, 0x70, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x1c, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, - 0x47, 0x65, 0x74, 0x4a, 0x6f, 0x69, 0x6e, 0x65, 0x64, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4c, 0x69, - 0x73, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x1d, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x65, - 0x74, 0x4a, 0x6f, 0x69, 0x6e, 0x65, 0x64, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4c, 0x69, 0x73, 0x74, - 0x52, 0x65, 0x73, 0x70, 0x12, 0x4e, 0x0a, 0x11, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x55, 0x73, - 0x65, 0x72, 0x54, 0x6f, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x1b, 0x2e, 0x67, 0x72, 0x6f, 0x75, - 0x70, 0x2e, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x54, 0x6f, 0x47, 0x72, - 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x49, - 0x6e, 0x76, 0x69, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x54, 0x6f, 0x47, 0x72, 0x6f, 0x75, 0x70, - 0x52, 0x65, 0x73, 0x70, 0x12, 0x4e, 0x0a, 0x11, 0x67, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, - 0x41, 0x6c, 0x6c, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x1b, 0x2e, 0x67, 0x72, 0x6f, 0x75, - 0x70, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x6c, 0x6c, 0x4d, 0x65, 0x6d, - 0x62, 0x65, 0x72, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47, - 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x6c, 0x6c, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, - 0x52, 0x65, 0x73, 0x70, 0x12, 0x33, 0x0a, 0x08, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, - 0x12, 0x12, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, - 0x70, 0x52, 0x65, 0x71, 0x1a, 0x13, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x65, 0x74, - 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x12, 0x36, 0x0a, 0x09, 0x47, 0x65, 0x74, - 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x12, 0x13, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47, - 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x14, 0x2e, 0x67, 0x72, - 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x52, 0x65, 0x73, - 0x70, 0x12, 0x3f, 0x0a, 0x0c, 0x42, 0x61, 0x6e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x43, 0x68, 0x61, - 0x74, 0x12, 0x16, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x42, 0x61, 0x6e, 0x47, 0x72, 0x6f, - 0x75, 0x70, 0x43, 0x68, 0x61, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x17, 0x2e, 0x67, 0x72, 0x6f, 0x75, - 0x70, 0x2e, 0x42, 0x61, 0x6e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x43, 0x68, 0x61, 0x74, 0x52, 0x65, - 0x73, 0x70, 0x12, 0x45, 0x0a, 0x0e, 0x42, 0x61, 0x6e, 0x50, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, - 0x43, 0x68, 0x61, 0x74, 0x12, 0x18, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x42, 0x61, 0x6e, - 0x50, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x43, 0x68, 0x61, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x19, + 0x6f, 0x75, 0x70, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x20, 0x0a, + 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x22, + 0x0f, 0x0a, 0x0d, 0x53, 0x65, 0x74, 0x4d, 0x61, 0x73, 0x74, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, + 0x22, 0x4c, 0x0a, 0x0e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, + 0x65, 0x71, 0x12, 0x18, 0x0a, 0x07, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x07, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x0b, + 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x22, 0x11, + 0x0a, 0x0f, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, + 0x70, 0x32, 0xa5, 0x0b, 0x0a, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x3c, 0x0a, 0x0b, 0x63, + 0x72, 0x65, 0x61, 0x74, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x15, 0x2e, 0x67, 0x72, 0x6f, + 0x75, 0x70, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, + 0x71, 0x1a, 0x16, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, + 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x12, 0x36, 0x0a, 0x09, 0x6a, 0x6f, 0x69, + 0x6e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x13, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x4a, + 0x6f, 0x69, 0x6e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x1a, 0x14, 0x2e, 0x67, 0x72, + 0x6f, 0x75, 0x70, 0x2e, 0x4a, 0x6f, 0x69, 0x6e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, + 0x70, 0x12, 0x36, 0x0a, 0x09, 0x71, 0x75, 0x69, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x13, + 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x51, 0x75, 0x69, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, + 0x52, 0x65, 0x71, 0x1a, 0x14, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x51, 0x75, 0x69, 0x74, + 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x12, 0x42, 0x0a, 0x0d, 0x67, 0x65, 0x74, + 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x17, 0x2e, 0x67, 0x72, 0x6f, + 0x75, 0x70, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x49, 0x6e, 0x66, 0x6f, + 0x52, 0x65, 0x71, 0x1a, 0x18, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x65, 0x74, 0x47, + 0x72, 0x6f, 0x75, 0x70, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x12, 0x3f, 0x0a, + 0x0c, 0x73, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x16, 0x2e, + 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x53, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, + 0x66, 0x6f, 0x52, 0x65, 0x71, 0x1a, 0x17, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x53, 0x65, + 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x12, 0x60, + 0x0a, 0x17, 0x67, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x21, 0x2e, 0x67, 0x72, 0x6f, 0x75, + 0x70, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x22, 0x2e, 0x67, + 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x70, 0x70, + 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, + 0x12, 0x51, 0x0a, 0x12, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, + 0x70, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x12, 0x1c, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x54, + 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4f, 0x77, 0x6e, 0x65, + 0x72, 0x52, 0x65, 0x71, 0x1a, 0x1d, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x54, 0x72, 0x61, + 0x6e, 0x73, 0x66, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x52, + 0x65, 0x73, 0x70, 0x12, 0x63, 0x0a, 0x18, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x70, 0x70, 0x6c, + 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, + 0x22, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x70, 0x70, + 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x52, 0x65, 0x71, 0x1a, 0x23, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x72, 0x6f, 0x75, + 0x70, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x51, 0x0a, 0x12, 0x67, 0x65, 0x74, 0x47, + 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x1c, + 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, + 0x65, 0x6d, 0x62, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x1d, 0x2e, 0x67, + 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, + 0x62, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x54, 0x0a, 0x13, 0x67, + 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x49, 0x6e, + 0x66, 0x6f, 0x12, 0x1d, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x72, + 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, + 0x71, 0x1a, 0x1e, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, + 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, + 0x70, 0x12, 0x48, 0x0a, 0x0f, 0x6b, 0x69, 0x63, 0x6b, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, + 0x6d, 0x62, 0x65, 0x72, 0x12, 0x19, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x4b, 0x69, 0x63, + 0x6b, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x65, 0x71, 0x1a, + 0x1a, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x4b, 0x69, 0x63, 0x6b, 0x47, 0x72, 0x6f, 0x75, + 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x12, 0x51, 0x0a, 0x12, 0x67, + 0x65, 0x74, 0x4a, 0x6f, 0x69, 0x6e, 0x65, 0x64, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4c, 0x69, 0x73, + 0x74, 0x12, 0x1c, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x65, 0x74, 0x4a, 0x6f, 0x69, + 0x6e, 0x65, 0x64, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x1a, + 0x1d, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x65, 0x74, 0x4a, 0x6f, 0x69, 0x6e, 0x65, + 0x64, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x4e, + 0x0a, 0x11, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x54, 0x6f, 0x47, 0x72, + 0x6f, 0x75, 0x70, 0x12, 0x1b, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x49, 0x6e, 0x76, 0x69, + 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x54, 0x6f, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, + 0x1a, 0x1c, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x55, + 0x73, 0x65, 0x72, 0x54, 0x6f, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x12, 0x4e, + 0x0a, 0x11, 0x67, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x6c, 0x6c, 0x4d, 0x65, 0x6d, + 0x62, 0x65, 0x72, 0x12, 0x1b, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x65, 0x74, 0x47, + 0x72, 0x6f, 0x75, 0x70, 0x41, 0x6c, 0x6c, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x65, 0x71, + 0x1a, 0x1c, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, + 0x70, 0x41, 0x6c, 0x6c, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x12, 0x33, + 0x0a, 0x08, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x12, 0x2e, 0x67, 0x72, 0x6f, + 0x75, 0x70, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x1a, 0x13, + 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, + 0x65, 0x73, 0x70, 0x12, 0x36, 0x0a, 0x09, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, + 0x12, 0x13, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, + 0x70, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x14, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x65, + 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x52, 0x65, 0x73, 0x70, 0x12, 0x3f, 0x0a, 0x0c, 0x42, + 0x61, 0x6e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x43, 0x68, 0x61, 0x74, 0x12, 0x16, 0x2e, 0x67, 0x72, + 0x6f, 0x75, 0x70, 0x2e, 0x42, 0x61, 0x6e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x43, 0x68, 0x61, 0x74, + 0x52, 0x65, 0x71, 0x1a, 0x17, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x42, 0x61, 0x6e, 0x47, + 0x72, 0x6f, 0x75, 0x70, 0x43, 0x68, 0x61, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x45, 0x0a, 0x0e, + 0x42, 0x61, 0x6e, 0x50, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x43, 0x68, 0x61, 0x74, 0x12, 0x18, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x42, 0x61, 0x6e, 0x50, 0x72, 0x69, 0x76, 0x61, 0x74, - 0x65, 0x43, 0x68, 0x61, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x36, 0x0a, 0x09, 0x53, 0x65, 0x74, - 0x4d, 0x61, 0x73, 0x74, 0x65, 0x72, 0x12, 0x13, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x53, - 0x65, 0x74, 0x4d, 0x61, 0x73, 0x74, 0x65, 0x72, 0x52, 0x65, 0x71, 0x1a, 0x14, 0x2e, 0x67, 0x72, - 0x6f, 0x75, 0x70, 0x2e, 0x53, 0x65, 0x74, 0x4d, 0x61, 0x73, 0x74, 0x65, 0x72, 0x52, 0x65, 0x73, - 0x70, 0x12, 0x3c, 0x0a, 0x0b, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, - 0x12, 0x15, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x47, - 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x1a, 0x16, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, - 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x42, - 0x0f, 0x5a, 0x0d, 0x2e, 0x2f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x3b, 0x67, 0x72, 0x6f, 0x75, 0x70, - 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x65, 0x43, 0x68, 0x61, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x19, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, + 0x2e, 0x42, 0x61, 0x6e, 0x50, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x43, 0x68, 0x61, 0x74, 0x52, + 0x65, 0x73, 0x70, 0x12, 0x36, 0x0a, 0x09, 0x53, 0x65, 0x74, 0x4d, 0x61, 0x73, 0x74, 0x65, 0x72, + 0x12, 0x13, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x53, 0x65, 0x74, 0x4d, 0x61, 0x73, 0x74, + 0x65, 0x72, 0x52, 0x65, 0x71, 0x1a, 0x14, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x53, 0x65, + 0x74, 0x4d, 0x61, 0x73, 0x74, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x12, 0x3c, 0x0a, 0x0b, 0x44, + 0x65, 0x6c, 0x65, 0x74, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x15, 0x2e, 0x67, 0x72, 0x6f, + 0x75, 0x70, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, + 0x71, 0x1a, 0x16, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, + 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x42, 0x0f, 0x5a, 0x0d, 0x2e, 0x2f, 0x67, + 0x72, 0x6f, 0x75, 0x70, 0x3b, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x33, } var ( @@ -3144,53 +3179,55 @@ var file_group_group_proto_depIdxs = []int32{ 46, // 16: group.GetGroupAllMemberResp.memberList:type_name -> server_api_params.GroupMemberFullInfo 47, // 17: group.GetGroupReq.Pagination:type_name -> server_api_params.RequestPagination 44, // 18: group.GetGroupResp.GroupInfo:type_name -> server_api_params.GroupInfo - 47, // 19: group.GetGroupsReq.Pagination:type_name -> server_api_params.RequestPagination - 44, // 20: group.GetGroupsResp.GroupInfo:type_name -> server_api_params.GroupInfo - 2, // 21: group.group.createGroup:input_type -> group.CreateGroupReq - 12, // 22: group.group.joinGroup:input_type -> group.JoinGroupReq - 16, // 23: group.group.quitGroup:input_type -> group.QuitGroupReq - 4, // 24: group.group.getGroupsInfo:input_type -> group.GetGroupsInfoReq - 6, // 25: group.group.setGroupInfo:input_type -> group.SetGroupInfoReq - 8, // 26: group.group.getGroupApplicationList:input_type -> group.GetGroupApplicationListReq - 10, // 27: group.group.transferGroupOwner:input_type -> group.TransferGroupOwnerReq - 14, // 28: group.group.groupApplicationResponse:input_type -> group.GroupApplicationResponseReq - 18, // 29: group.group.getGroupMemberList:input_type -> group.GetGroupMemberListReq - 20, // 30: group.group.getGroupMembersInfo:input_type -> group.GetGroupMembersInfoReq - 22, // 31: group.group.kickGroupMember:input_type -> group.KickGroupMemberReq - 25, // 32: group.group.getJoinedGroupList:input_type -> group.GetJoinedGroupListReq - 27, // 33: group.group.inviteUserToGroup:input_type -> group.InviteUserToGroupReq - 29, // 34: group.group.getGroupAllMember:input_type -> group.GetGroupAllMemberReq - 31, // 35: group.group.GetGroup:input_type -> group.GetGroupReq - 33, // 36: group.group.GetGroups:input_type -> group.GetGroupsReq - 36, // 37: group.group.BanGroupChat:input_type -> group.BanGroupChatReq - 38, // 38: group.group.BanPrivateChat:input_type -> group.BanPrivateChatReq - 40, // 39: group.group.SetMaster:input_type -> group.SetMasterReq - 42, // 40: group.group.DeleteGroup:input_type -> group.DeleteGroupReq - 3, // 41: group.group.createGroup:output_type -> group.CreateGroupResp - 13, // 42: group.group.joinGroup:output_type -> group.JoinGroupResp - 17, // 43: group.group.quitGroup:output_type -> group.QuitGroupResp - 5, // 44: group.group.getGroupsInfo:output_type -> group.GetGroupsInfoResp - 7, // 45: group.group.setGroupInfo:output_type -> group.SetGroupInfoResp - 9, // 46: group.group.getGroupApplicationList:output_type -> group.GetGroupApplicationListResp - 11, // 47: group.group.transferGroupOwner:output_type -> group.TransferGroupOwnerResp - 15, // 48: group.group.groupApplicationResponse:output_type -> group.GroupApplicationResponseResp - 19, // 49: group.group.getGroupMemberList:output_type -> group.GetGroupMemberListResp - 21, // 50: group.group.getGroupMembersInfo:output_type -> group.GetGroupMembersInfoResp - 24, // 51: group.group.kickGroupMember:output_type -> group.KickGroupMemberResp - 26, // 52: group.group.getJoinedGroupList:output_type -> group.GetJoinedGroupListResp - 28, // 53: group.group.inviteUserToGroup:output_type -> group.InviteUserToGroupResp - 30, // 54: group.group.getGroupAllMember:output_type -> group.GetGroupAllMemberResp - 32, // 55: group.group.GetGroup:output_type -> group.GetGroupResp - 34, // 56: group.group.GetGroups:output_type -> group.GetGroupsResp - 37, // 57: group.group.BanGroupChat:output_type -> group.BanGroupChatResp - 39, // 58: group.group.BanPrivateChat:output_type -> group.BanPrivateChatResp - 41, // 59: group.group.SetMaster:output_type -> group.SetMasterResp - 43, // 60: group.group.DeleteGroup:output_type -> group.DeleteGroupResp - 41, // [41:61] is the sub-list for method output_type - 21, // [21:41] is the sub-list for method input_type - 21, // [21:21] is the sub-list for extension type_name - 21, // [21:21] is the sub-list for extension extendee - 0, // [0:21] is the sub-list for field type_name + 47, // 19: group.GetGroupResp.Pagination:type_name -> server_api_params.RequestPagination + 47, // 20: group.GetGroupsReq.Pagination:type_name -> server_api_params.RequestPagination + 44, // 21: group.GetGroupsResp.GroupInfo:type_name -> server_api_params.GroupInfo + 47, // 22: group.GetGroupsResp.Pagination:type_name -> server_api_params.RequestPagination + 2, // 23: group.group.createGroup:input_type -> group.CreateGroupReq + 12, // 24: group.group.joinGroup:input_type -> group.JoinGroupReq + 16, // 25: group.group.quitGroup:input_type -> group.QuitGroupReq + 4, // 26: group.group.getGroupsInfo:input_type -> group.GetGroupsInfoReq + 6, // 27: group.group.setGroupInfo:input_type -> group.SetGroupInfoReq + 8, // 28: group.group.getGroupApplicationList:input_type -> group.GetGroupApplicationListReq + 10, // 29: group.group.transferGroupOwner:input_type -> group.TransferGroupOwnerReq + 14, // 30: group.group.groupApplicationResponse:input_type -> group.GroupApplicationResponseReq + 18, // 31: group.group.getGroupMemberList:input_type -> group.GetGroupMemberListReq + 20, // 32: group.group.getGroupMembersInfo:input_type -> group.GetGroupMembersInfoReq + 22, // 33: group.group.kickGroupMember:input_type -> group.KickGroupMemberReq + 25, // 34: group.group.getJoinedGroupList:input_type -> group.GetJoinedGroupListReq + 27, // 35: group.group.inviteUserToGroup:input_type -> group.InviteUserToGroupReq + 29, // 36: group.group.getGroupAllMember:input_type -> group.GetGroupAllMemberReq + 31, // 37: group.group.GetGroup:input_type -> group.GetGroupReq + 33, // 38: group.group.GetGroups:input_type -> group.GetGroupsReq + 36, // 39: group.group.BanGroupChat:input_type -> group.BanGroupChatReq + 38, // 40: group.group.BanPrivateChat:input_type -> group.BanPrivateChatReq + 40, // 41: group.group.SetMaster:input_type -> group.SetMasterReq + 42, // 42: group.group.DeleteGroup:input_type -> group.DeleteGroupReq + 3, // 43: group.group.createGroup:output_type -> group.CreateGroupResp + 13, // 44: group.group.joinGroup:output_type -> group.JoinGroupResp + 17, // 45: group.group.quitGroup:output_type -> group.QuitGroupResp + 5, // 46: group.group.getGroupsInfo:output_type -> group.GetGroupsInfoResp + 7, // 47: group.group.setGroupInfo:output_type -> group.SetGroupInfoResp + 9, // 48: group.group.getGroupApplicationList:output_type -> group.GetGroupApplicationListResp + 11, // 49: group.group.transferGroupOwner:output_type -> group.TransferGroupOwnerResp + 15, // 50: group.group.groupApplicationResponse:output_type -> group.GroupApplicationResponseResp + 19, // 51: group.group.getGroupMemberList:output_type -> group.GetGroupMemberListResp + 21, // 52: group.group.getGroupMembersInfo:output_type -> group.GetGroupMembersInfoResp + 24, // 53: group.group.kickGroupMember:output_type -> group.KickGroupMemberResp + 26, // 54: group.group.getJoinedGroupList:output_type -> group.GetJoinedGroupListResp + 28, // 55: group.group.inviteUserToGroup:output_type -> group.InviteUserToGroupResp + 30, // 56: group.group.getGroupAllMember:output_type -> group.GetGroupAllMemberResp + 32, // 57: group.group.GetGroup:output_type -> group.GetGroupResp + 34, // 58: group.group.GetGroups:output_type -> group.GetGroupsResp + 37, // 59: group.group.BanGroupChat:output_type -> group.BanGroupChatResp + 39, // 60: group.group.BanPrivateChat:output_type -> group.BanPrivateChatResp + 41, // 61: group.group.SetMaster:output_type -> group.SetMasterResp + 43, // 62: group.group.DeleteGroup:output_type -> group.DeleteGroupResp + 43, // [43:63] is the sub-list for method output_type + 23, // [23:43] is the sub-list for method input_type + 23, // [23:23] is the sub-list for extension type_name + 23, // [23:23] is the sub-list for extension extendee + 0, // [0:23] is the sub-list for field type_name } func init() { file_group_group_proto_init() } diff --git a/pkg/proto/group/group.proto b/pkg/proto/group/group.proto index a1cc22dc2..9c7585efd 100644 --- a/pkg/proto/group/group.proto +++ b/pkg/proto/group/group.proto @@ -203,15 +203,18 @@ message GetGroupReq { message GetGroupResp { repeated server_api_params.GroupInfo GroupInfo = 1; + server_api_params.RequestPagination Pagination = 2; } message GetGroupsReq { - server_api_params.RequestPagination Pagination =1; + server_api_params.RequestPagination Pagination = 1; string OperationID = 2; } message GetGroupsResp { repeated server_api_params.GroupInfo GroupInfo = 1; + server_api_params.RequestPagination Pagination = 2; + int32 GroupNum = 3; } message GetGroupMemberReq { diff --git a/pkg/proto/sdk_ws/ws.pb.go b/pkg/proto/sdk_ws/ws.pb.go index 838827b8d..50631d009 100644 --- a/pkg/proto/sdk_ws/ws.pb.go +++ b/pkg/proto/sdk_ws/ws.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.27.1 -// protoc v3.15.5 +// protoc-gen-go v1.26.0 +// protoc v3.19.3 // source: sdk_ws/ws.proto package server_api_params diff --git a/pkg/proto/user/user.pb.go b/pkg/proto/user/user.pb.go index e991f794c..29fcaa120 100644 --- a/pkg/proto/user/user.pb.go +++ b/pkg/proto/user/user.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.27.1 -// protoc v3.15.5 +// protoc-gen-go v1.26.0 +// protoc v3.19.3 // source: user/user.proto package user @@ -1385,6 +1385,9 @@ type AlterUserReq struct { UserId string `protobuf:"bytes,1,opt,name=UserId,proto3" json:"UserId,omitempty"` OperationID string `protobuf:"bytes,2,opt,name=OperationID,proto3" json:"OperationID,omitempty"` + PhoneNumber int64 `protobuf:"varint,3,opt,name=PhoneNumber,proto3" json:"PhoneNumber,omitempty"` + Nickname string `protobuf:"bytes,4,opt,name=Nickname,proto3" json:"Nickname,omitempty"` + Email string `protobuf:"bytes,5,opt,name=Email,proto3" json:"Email,omitempty"` } func (x *AlterUserReq) Reset() { @@ -1433,6 +1436,27 @@ func (x *AlterUserReq) GetOperationID() string { return "" } +func (x *AlterUserReq) GetPhoneNumber() int64 { + if x != nil { + return x.PhoneNumber + } + return 0 +} + +func (x *AlterUserReq) GetNickname() string { + if x != nil { + return x.Nickname + } + return "" +} + +func (x *AlterUserReq) GetEmail() string { + if x != nil { + return x.Email + } + return "" +} + type AlterUserResp struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -2479,181 +2503,187 @@ var file_user_user_proto_rawDesc = []byte{ 0x72, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x52, 0x0a, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x12, 0x1e, 0x0a, 0x04, 0x75, 0x73, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x55, 0x73, - 0x65, 0x72, 0x52, 0x04, 0x75, 0x73, 0x65, 0x72, 0x22, 0x48, 0x0a, 0x0c, 0x41, 0x6c, 0x74, 0x65, - 0x72, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x12, 0x16, 0x0a, 0x06, 0x55, 0x73, 0x65, 0x72, - 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, - 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x49, 0x44, 0x22, 0x41, 0x0a, 0x0d, 0x41, 0x6c, 0x74, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x52, - 0x65, 0x73, 0x70, 0x12, 0x30, 0x0a, 0x0a, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, - 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x43, - 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x52, 0x0a, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, - 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0x75, 0x0a, 0x0b, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, - 0x73, 0x52, 0x65, 0x71, 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x12, 0x44, 0x0a, 0x0a, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x73, 0x65, 0x72, - 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x52, - 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x52, 0x0a, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0xe3, 0x01, 0x0a, - 0x0c, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x12, 0x30, 0x0a, - 0x0a, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x10, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, - 0x65, 0x73, 0x70, 0x52, 0x0a, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x12, - 0x20, 0x0a, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, - 0x44, 0x12, 0x1e, 0x0a, 0x04, 0x75, 0x73, 0x65, 0x72, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, - 0x0a, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x52, 0x04, 0x75, 0x73, 0x65, - 0x72, 0x12, 0x18, 0x0a, 0x07, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x07, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x12, 0x45, 0x0a, 0x0a, 0x50, - 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x25, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, - 0x61, 0x6d, 0x73, 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x50, 0x61, 0x67, 0x69, - 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0a, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x22, 0x7c, 0x0a, 0x0a, 0x41, 0x64, 0x64, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, - 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, - 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x4e, 0x75, - 0x6d, 0x62, 0x65, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, - 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, - 0x22, 0x3f, 0x0a, 0x0b, 0x41, 0x64, 0x64, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x12, - 0x30, 0x0a, 0x0a, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, - 0x6e, 0x52, 0x65, 0x73, 0x70, 0x52, 0x0a, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, - 0x70, 0x22, 0x70, 0x0a, 0x0c, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, - 0x71, 0x12, 0x16, 0x0a, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x26, 0x0a, 0x0e, 0x45, 0x6e, 0x64, - 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0e, 0x45, 0x6e, 0x64, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x54, 0x69, 0x6d, - 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x49, 0x44, 0x22, 0x41, 0x0a, 0x0d, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, + 0x65, 0x72, 0x52, 0x04, 0x75, 0x73, 0x65, 0x72, 0x22, 0x9c, 0x01, 0x0a, 0x0c, 0x41, 0x6c, 0x74, + 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x12, 0x16, 0x0a, 0x06, 0x55, 0x73, 0x65, + 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, + 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x4e, 0x75, 0x6d, 0x62, + 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x4e, + 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x4e, 0x69, 0x63, 0x6b, 0x6e, 0x61, 0x6d, + 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x4e, 0x69, 0x63, 0x6b, 0x6e, 0x61, 0x6d, + 0x65, 0x12, 0x14, 0x0a, 0x05, 0x45, 0x6d, 0x61, 0x69, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x05, 0x45, 0x6d, 0x61, 0x69, 0x6c, 0x22, 0x41, 0x0a, 0x0d, 0x41, 0x6c, 0x74, 0x65, 0x72, + 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x12, 0x30, 0x0a, 0x0a, 0x43, 0x6f, 0x6d, 0x6d, + 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x75, + 0x73, 0x65, 0x72, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x52, 0x0a, + 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0x75, 0x0a, 0x0b, 0x47, 0x65, + 0x74, 0x55, 0x73, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x70, 0x65, + 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, + 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x12, 0x44, 0x0a, 0x0a, 0x50, + 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x24, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, + 0x61, 0x6d, 0x73, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x50, 0x61, 0x67, 0x69, 0x6e, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0a, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x22, 0xe3, 0x01, 0x0a, 0x0c, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x73, 0x52, 0x65, + 0x73, 0x70, 0x12, 0x30, 0x0a, 0x0a, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x43, 0x6f, + 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x52, 0x0a, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, + 0x52, 0x65, 0x73, 0x70, 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x04, 0x75, 0x73, 0x65, 0x72, 0x18, 0x03, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x55, 0x73, 0x65, 0x72, + 0x52, 0x04, 0x75, 0x73, 0x65, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x75, + 0x6d, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x75, 0x6d, + 0x12, 0x45, 0x0a, 0x0a, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, + 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0a, 0x50, 0x61, 0x67, + 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x7c, 0x0a, 0x0a, 0x41, 0x64, 0x64, 0x55, 0x73, + 0x65, 0x72, 0x52, 0x65, 0x71, 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x4f, 0x70, 0x65, 0x72, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x50, 0x68, 0x6f, 0x6e, 0x65, + 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x50, 0x68, + 0x6f, 0x6e, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x55, 0x73, 0x65, + 0x72, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, + 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x3f, 0x0a, 0x0b, 0x41, 0x64, 0x64, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x12, 0x30, 0x0a, 0x0a, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x52, 0x0a, 0x43, 0x6f, 0x6d, 0x6d, - 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0x4a, 0x0a, 0x0e, 0x55, 0x6e, 0x42, 0x6c, 0x6f, 0x63, - 0x6b, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x12, 0x16, 0x0a, 0x06, 0x55, 0x73, 0x65, 0x72, - 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, - 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x49, 0x44, 0x22, 0x43, 0x0a, 0x0f, 0x55, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, - 0x72, 0x52, 0x65, 0x73, 0x70, 0x12, 0x30, 0x0a, 0x0a, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, - 0x65, 0x73, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x75, 0x73, 0x65, 0x72, - 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x52, 0x0a, 0x43, 0x6f, 0x6d, - 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0x9e, 0x01, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x42, - 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x12, 0x44, 0x0a, 0x0a, - 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x24, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, - 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x50, 0x61, 0x67, 0x69, - 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0a, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, - 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x49, 0x44, 0x12, 0x22, 0x0a, 0x0c, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, - 0x72, 0x4e, 0x75, 0x6d, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x42, 0x6c, 0x6f, 0x63, - 0x6b, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x22, 0x7f, 0x0a, 0x09, 0x42, 0x6c, 0x6f, 0x63, - 0x6b, 0x55, 0x73, 0x65, 0x72, 0x12, 0x1e, 0x0a, 0x04, 0x55, 0x73, 0x65, 0x72, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x52, - 0x04, 0x55, 0x73, 0x65, 0x72, 0x12, 0x2a, 0x0a, 0x10, 0x42, 0x65, 0x67, 0x69, 0x6e, 0x44, 0x69, - 0x73, 0x61, 0x62, 0x6c, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x10, 0x42, 0x65, 0x67, 0x69, 0x6e, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x54, 0x69, 0x6d, - 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x45, 0x6e, 0x64, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x54, - 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x45, 0x6e, 0x64, 0x44, 0x69, - 0x73, 0x61, 0x62, 0x6c, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x22, 0xe1, 0x01, 0x0a, 0x11, 0x47, 0x65, - 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x12, - 0x30, 0x0a, 0x0a, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, - 0x6e, 0x52, 0x65, 0x73, 0x70, 0x52, 0x0a, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, - 0x70, 0x12, 0x2f, 0x0a, 0x0a, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x73, 0x18, - 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x42, 0x6c, 0x6f, - 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x52, 0x0a, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, - 0x72, 0x73, 0x12, 0x45, 0x0a, 0x0a, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, - 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0a, 0x50, - 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x22, 0x0a, 0x0c, 0x42, 0x6c, 0x6f, + 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0x70, 0x0a, 0x0c, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, + 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x12, 0x16, 0x0a, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x26, + 0x0a, 0x0e, 0x45, 0x6e, 0x64, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x54, 0x69, 0x6d, 0x65, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x45, 0x6e, 0x64, 0x44, 0x69, 0x73, 0x61, 0x62, + 0x6c, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x4f, 0x70, 0x65, + 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x22, 0x41, 0x0a, 0x0d, 0x42, 0x6c, 0x6f, 0x63, + 0x6b, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x12, 0x30, 0x0a, 0x0a, 0x43, 0x6f, 0x6d, + 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, + 0x75, 0x73, 0x65, 0x72, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x52, + 0x0a, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0x4a, 0x0a, 0x0e, 0x55, + 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x12, 0x16, 0x0a, + 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x55, + 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x4f, 0x70, 0x65, 0x72, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x22, 0x43, 0x0a, 0x0f, 0x55, 0x6e, 0x42, 0x6c, 0x6f, + 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x12, 0x30, 0x0a, 0x0a, 0x43, 0x6f, + 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, + 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, + 0x52, 0x0a, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0x9e, 0x01, 0x0a, + 0x10, 0x47, 0x65, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x73, 0x52, 0x65, + 0x71, 0x12, 0x44, 0x0a, 0x0a, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, + 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0a, 0x50, 0x61, 0x67, + 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x4f, 0x70, + 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x12, 0x22, 0x0a, 0x0c, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x0c, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x22, 0x4c, 0x0a, - 0x0f, 0x47, 0x65, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, - 0x12, 0x17, 0x0a, 0x07, 0x55, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x70, 0x65, - 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, - 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x22, 0x41, 0x0a, 0x10, 0x47, - 0x65, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x12, - 0x2d, 0x0a, 0x09, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, - 0x73, 0x65, 0x72, 0x52, 0x09, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x32, 0xc7, - 0x08, 0x0a, 0x04, 0x75, 0x73, 0x65, 0x72, 0x12, 0x3a, 0x0a, 0x0b, 0x47, 0x65, 0x74, 0x55, 0x73, - 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x14, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x47, 0x65, - 0x74, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x1a, 0x15, 0x2e, 0x75, - 0x73, 0x65, 0x72, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, - 0x65, 0x73, 0x70, 0x12, 0x43, 0x0a, 0x0e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, - 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x17, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x55, 0x70, 0x64, - 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x1a, 0x18, - 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, - 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x12, 0x3a, 0x0a, 0x0b, 0x44, 0x65, 0x6c, 0x65, - 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x73, 0x12, 0x14, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x44, - 0x65, 0x6c, 0x65, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x15, 0x2e, - 0x75, 0x73, 0x65, 0x72, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x73, - 0x52, 0x65, 0x73, 0x70, 0x12, 0x3d, 0x0a, 0x0c, 0x47, 0x65, 0x74, 0x41, 0x6c, 0x6c, 0x55, 0x73, - 0x65, 0x72, 0x49, 0x44, 0x12, 0x15, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x47, 0x65, 0x74, 0x41, - 0x6c, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x52, 0x65, 0x71, 0x1a, 0x16, 0x2e, 0x75, 0x73, - 0x65, 0x72, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x6c, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x52, - 0x65, 0x73, 0x70, 0x12, 0x55, 0x0a, 0x14, 0x53, 0x65, 0x74, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, - 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4f, 0x70, 0x74, 0x12, 0x1d, 0x2e, 0x75, 0x73, - 0x65, 0x72, 0x2e, 0x53, 0x65, 0x74, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x4d, 0x65, 0x73, - 0x73, 0x61, 0x67, 0x65, 0x4f, 0x70, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x1e, 0x2e, 0x75, 0x73, 0x65, - 0x72, 0x2e, 0x53, 0x65, 0x74, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x4d, 0x65, 0x73, 0x73, - 0x61, 0x67, 0x65, 0x4f, 0x70, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x55, 0x0a, 0x14, 0x47, 0x65, - 0x74, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4f, - 0x70, 0x74, 0x12, 0x1d, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x65, 0x63, - 0x65, 0x69, 0x76, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4f, 0x70, 0x74, 0x52, 0x65, - 0x71, 0x1a, 0x1e, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x65, 0x63, 0x65, - 0x69, 0x76, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4f, 0x70, 0x74, 0x52, 0x65, 0x73, - 0x70, 0x12, 0x61, 0x0a, 0x18, 0x47, 0x65, 0x74, 0x41, 0x6c, 0x6c, 0x43, 0x6f, 0x6e, 0x76, 0x65, - 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x73, 0x67, 0x4f, 0x70, 0x74, 0x12, 0x21, 0x2e, - 0x75, 0x73, 0x65, 0x72, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x6c, 0x6c, 0x43, 0x6f, 0x6e, 0x76, 0x65, - 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x73, 0x67, 0x4f, 0x70, 0x74, 0x52, 0x65, 0x71, - 0x1a, 0x22, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x6c, 0x6c, 0x43, 0x6f, - 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x73, 0x67, 0x4f, 0x70, 0x74, - 0x52, 0x65, 0x73, 0x70, 0x12, 0x3d, 0x0a, 0x0c, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x43, - 0x68, 0x65, 0x63, 0x6b, 0x12, 0x15, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x41, 0x63, 0x63, 0x6f, - 0x75, 0x6e, 0x74, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x52, 0x65, 0x71, 0x1a, 0x16, 0x2e, 0x75, 0x73, - 0x65, 0x72, 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x52, - 0x65, 0x73, 0x70, 0x12, 0x2e, 0x0a, 0x07, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x12, 0x10, - 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, - 0x1a, 0x11, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x52, - 0x65, 0x73, 0x70, 0x12, 0x37, 0x0a, 0x0a, 0x52, 0x65, 0x73, 0x69, 0x67, 0x6e, 0x55, 0x73, 0x65, - 0x72, 0x12, 0x13, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x52, 0x65, 0x73, 0x69, 0x67, 0x6e, 0x55, - 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x1a, 0x14, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x52, 0x65, - 0x73, 0x69, 0x67, 0x6e, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x12, 0x34, 0x0a, 0x09, - 0x41, 0x6c, 0x74, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x12, 0x12, 0x2e, 0x75, 0x73, 0x65, 0x72, - 0x2e, 0x41, 0x6c, 0x74, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x1a, 0x13, 0x2e, - 0x75, 0x73, 0x65, 0x72, 0x2e, 0x41, 0x6c, 0x74, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, - 0x73, 0x70, 0x12, 0x31, 0x0a, 0x08, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x73, 0x12, 0x11, - 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x73, 0x52, 0x65, - 0x71, 0x1a, 0x12, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, - 0x73, 0x52, 0x65, 0x73, 0x70, 0x12, 0x2e, 0x0a, 0x07, 0x41, 0x64, 0x64, 0x55, 0x73, 0x65, 0x72, - 0x12, 0x10, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x41, 0x64, 0x64, 0x55, 0x73, 0x65, 0x72, 0x52, - 0x65, 0x71, 0x1a, 0x11, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x41, 0x64, 0x64, 0x55, 0x73, 0x65, - 0x72, 0x52, 0x65, 0x73, 0x70, 0x12, 0x34, 0x0a, 0x09, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, - 0x65, 0x72, 0x12, 0x12, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, - 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x1a, 0x13, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x42, 0x6c, - 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x12, 0x3a, 0x0a, 0x0b, 0x55, - 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x12, 0x14, 0x2e, 0x75, 0x73, 0x65, - 0x72, 0x2e, 0x55, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, - 0x1a, 0x15, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x55, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, - 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x12, 0x40, 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x42, 0x6c, - 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x73, 0x12, 0x16, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, - 0x47, 0x65, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, - 0x1a, 0x17, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x47, 0x65, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, + 0x0c, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x22, 0x7f, 0x0a, + 0x09, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x12, 0x1e, 0x0a, 0x04, 0x55, 0x73, + 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, + 0x55, 0x73, 0x65, 0x72, 0x52, 0x04, 0x55, 0x73, 0x65, 0x72, 0x12, 0x2a, 0x0a, 0x10, 0x42, 0x65, + 0x67, 0x69, 0x6e, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x42, 0x65, 0x67, 0x69, 0x6e, 0x44, 0x69, 0x73, 0x61, 0x62, + 0x6c, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x45, 0x6e, 0x64, 0x44, 0x69, 0x73, + 0x61, 0x62, 0x6c, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, + 0x45, 0x6e, 0x64, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x22, 0xe1, + 0x01, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x73, + 0x52, 0x65, 0x73, 0x70, 0x12, 0x30, 0x0a, 0x0a, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, + 0x73, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, + 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x52, 0x0a, 0x43, 0x6f, 0x6d, 0x6d, + 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x12, 0x2f, 0x0a, 0x0a, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, + 0x73, 0x65, 0x72, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x75, 0x73, 0x65, + 0x72, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x52, 0x0a, 0x42, 0x6c, 0x6f, + 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x73, 0x12, 0x45, 0x0a, 0x0a, 0x50, 0x61, 0x67, 0x69, 0x6e, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x73, 0x65, + 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x52, 0x0a, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x22, + 0x0a, 0x0c, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x4e, + 0x75, 0x6d, 0x22, 0x4c, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, + 0x65, 0x72, 0x52, 0x65, 0x71, 0x12, 0x17, 0x0a, 0x07, 0x55, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x20, + 0x0a, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, + 0x22, 0x41, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, + 0x52, 0x65, 0x73, 0x70, 0x12, 0x2d, 0x0a, 0x09, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, + 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x42, + 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x52, 0x09, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, + 0x73, 0x65, 0x72, 0x32, 0xc7, 0x08, 0x0a, 0x04, 0x75, 0x73, 0x65, 0x72, 0x12, 0x3a, 0x0a, 0x0b, + 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x14, 0x2e, 0x75, 0x73, + 0x65, 0x72, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, + 0x71, 0x1a, 0x15, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, + 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x12, 0x43, 0x0a, 0x0e, 0x55, 0x70, 0x64, 0x61, + 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x17, 0x2e, 0x75, 0x73, 0x65, + 0x72, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, + 0x52, 0x65, 0x71, 0x1a, 0x18, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, + 0x65, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x12, 0x3a, 0x0a, + 0x0b, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x73, 0x12, 0x14, 0x2e, 0x75, + 0x73, 0x65, 0x72, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x73, 0x52, + 0x65, 0x71, 0x1a, 0x15, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x12, 0x3d, 0x0a, 0x0c, 0x47, 0x65, 0x74, - 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x12, 0x15, 0x2e, 0x75, 0x73, 0x65, 0x72, - 0x2e, 0x47, 0x65, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, - 0x1a, 0x16, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x47, 0x65, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, - 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x42, 0x0d, 0x5a, 0x0b, 0x2e, 0x2f, 0x75, 0x73, - 0x65, 0x72, 0x3b, 0x75, 0x73, 0x65, 0x72, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x41, 0x6c, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x15, 0x2e, 0x75, 0x73, 0x65, 0x72, + 0x2e, 0x47, 0x65, 0x74, 0x41, 0x6c, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x52, 0x65, 0x71, + 0x1a, 0x16, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x6c, 0x6c, 0x55, 0x73, + 0x65, 0x72, 0x49, 0x44, 0x52, 0x65, 0x73, 0x70, 0x12, 0x55, 0x0a, 0x14, 0x53, 0x65, 0x74, 0x52, + 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4f, 0x70, 0x74, + 0x12, 0x1d, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x53, 0x65, 0x74, 0x52, 0x65, 0x63, 0x65, 0x69, + 0x76, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4f, 0x70, 0x74, 0x52, 0x65, 0x71, 0x1a, + 0x1e, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x53, 0x65, 0x74, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, + 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4f, 0x70, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, + 0x55, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x4d, 0x65, 0x73, + 0x73, 0x61, 0x67, 0x65, 0x4f, 0x70, 0x74, 0x12, 0x1d, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x47, + 0x65, 0x74, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, + 0x4f, 0x70, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x1e, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x47, 0x65, + 0x74, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4f, + 0x70, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x61, 0x0a, 0x18, 0x47, 0x65, 0x74, 0x41, 0x6c, 0x6c, + 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x73, 0x67, 0x4f, + 0x70, 0x74, 0x12, 0x21, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x6c, 0x6c, + 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x73, 0x67, 0x4f, + 0x70, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x22, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x47, 0x65, 0x74, + 0x41, 0x6c, 0x6c, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, + 0x73, 0x67, 0x4f, 0x70, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x3d, 0x0a, 0x0c, 0x41, 0x63, 0x63, + 0x6f, 0x75, 0x6e, 0x74, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x12, 0x15, 0x2e, 0x75, 0x73, 0x65, 0x72, + 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x52, 0x65, 0x71, + 0x1a, 0x16, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x43, + 0x68, 0x65, 0x63, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x12, 0x2e, 0x0a, 0x07, 0x47, 0x65, 0x74, 0x55, + 0x73, 0x65, 0x72, 0x12, 0x10, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, + 0x65, 0x72, 0x52, 0x65, 0x71, 0x1a, 0x11, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x47, 0x65, 0x74, + 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x12, 0x37, 0x0a, 0x0a, 0x52, 0x65, 0x73, 0x69, + 0x67, 0x6e, 0x55, 0x73, 0x65, 0x72, 0x12, 0x13, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x52, 0x65, + 0x73, 0x69, 0x67, 0x6e, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x1a, 0x14, 0x2e, 0x75, 0x73, + 0x65, 0x72, 0x2e, 0x52, 0x65, 0x73, 0x69, 0x67, 0x6e, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, + 0x70, 0x12, 0x34, 0x0a, 0x09, 0x41, 0x6c, 0x74, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x12, 0x12, + 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x41, 0x6c, 0x74, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x52, + 0x65, 0x71, 0x1a, 0x13, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x41, 0x6c, 0x74, 0x65, 0x72, 0x55, + 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x12, 0x31, 0x0a, 0x08, 0x47, 0x65, 0x74, 0x55, 0x73, + 0x65, 0x72, 0x73, 0x12, 0x11, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, + 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x12, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x47, 0x65, + 0x74, 0x55, 0x73, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x12, 0x2e, 0x0a, 0x07, 0x41, 0x64, + 0x64, 0x55, 0x73, 0x65, 0x72, 0x12, 0x10, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x41, 0x64, 0x64, + 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x1a, 0x11, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x41, + 0x64, 0x64, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x12, 0x34, 0x0a, 0x09, 0x42, 0x6c, + 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x12, 0x12, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x42, + 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x1a, 0x13, 0x2e, 0x75, 0x73, + 0x65, 0x72, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, + 0x12, 0x3a, 0x0a, 0x0b, 0x55, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x12, + 0x14, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x55, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, + 0x65, 0x72, 0x52, 0x65, 0x71, 0x1a, 0x15, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x55, 0x6e, 0x42, + 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x12, 0x40, 0x0a, 0x0d, + 0x47, 0x65, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x73, 0x12, 0x16, 0x2e, + 0x75, 0x73, 0x65, 0x72, 0x2e, 0x47, 0x65, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, + 0x72, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x17, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x47, 0x65, 0x74, + 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x12, 0x3d, + 0x0a, 0x0c, 0x47, 0x65, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x12, 0x15, + 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x47, 0x65, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, + 0x65, 0x72, 0x52, 0x65, 0x71, 0x1a, 0x16, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x47, 0x65, 0x74, + 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x42, 0x0d, 0x5a, + 0x0b, 0x2e, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x3b, 0x75, 0x73, 0x65, 0x72, 0x62, 0x06, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x33, } var ( diff --git a/pkg/proto/user/user.proto b/pkg/proto/user/user.proto index 78343e9c9..d304712ef 100644 --- a/pkg/proto/user/user.proto +++ b/pkg/proto/user/user.proto @@ -137,6 +137,9 @@ message GetUserResp{ message AlterUserReq{ string UserId = 1; string OperationID = 2; + int64 PhoneNumber = 3; + string Nickname = 4; + string Email = 5; } message AlterUserResp{ From fb396d9cf0d2be06880e4c85df11d34e538d6eb5 Mon Sep 17 00:00:00 2001 From: wangchuxiao Date: Thu, 27 Jan 2022 18:31:31 +0800 Subject: [PATCH 561/814] add --- cmd/rpc/statistics/main.go | 14 + internal/cms_api/admin/admin.go | 8 +- internal/cms_api/group/group.go | 107 +- internal/cms_api/router.go | 26 +- internal/cms_api/statistics/statistics.go | 14 +- internal/rpc/group/group.go | 52 +- internal/rpc/statistics/statistics.go | 67 + internal/rpc/user/user.go | 5 + pkg/cms_api_struct/group.go | 10 +- pkg/cms_api_struct/statistics.go | 16 +- .../mysql_model/im_mysql_model/group_model.go | 35 +- pkg/proto/group/group.pb.go | 684 ++++---- pkg/proto/group/group.proto | 41 +- pkg/proto/proto_dir.cfg | 3 +- pkg/proto/sdk_ws/ws.pb.go | 4 +- pkg/proto/statistics/statistics.pb.go | 1530 +++++++++++++++++ pkg/proto/statistics/statistics.proto | 95 + 17 files changed, 2293 insertions(+), 418 deletions(-) create mode 100644 cmd/rpc/statistics/main.go create mode 100644 internal/rpc/statistics/statistics.go create mode 100644 pkg/proto/statistics/statistics.pb.go create mode 100644 pkg/proto/statistics/statistics.proto diff --git a/cmd/rpc/statistics/main.go b/cmd/rpc/statistics/main.go new file mode 100644 index 000000000..fb74dae0d --- /dev/null +++ b/cmd/rpc/statistics/main.go @@ -0,0 +1,14 @@ +package main + +import ( + "Open_IM/internal/rpc/user" + "flag" +) + +func main() { + rpcPort := flag.Int("port", 10100, "rpc listening port") + flag.Parse() + rpcServer := user.NewUserServer(*rpcPort) + rpcServer.Run() +} + diff --git a/internal/cms_api/admin/admin.go b/internal/cms_api/admin/admin.go index 7a0e0a575..6b644c9c3 100644 --- a/internal/cms_api/admin/admin.go +++ b/internal/cms_api/admin/admin.go @@ -7,18 +7,18 @@ import ( ) // register -func UserLogin(c *gin.Context) { +func AdminLogin(c *gin.Context) { c.JSON(http.StatusOK, gin.H{"message": "someJSON", "status": 200}) } -func UserRegister(c *gin.Context) { +func AdminRegister(c *gin.Context) { c.JSON(http.StatusOK, gin.H{"message": "someJSON", "status": 200}) } -func GetUserSettings(c *gin.Context) { +func GetAdminSettings(c *gin.Context) { c.JSON(http.StatusOK, gin.H{"message": "someJSON", "status": 200}) } -func AlterUserSettings(c *gin.Context) { +func AlterAdminSettings(c *gin.Context) { c.JSON(http.StatusOK, gin.H{"message": "someJSON", "status": 200}) } diff --git a/internal/cms_api/group/group.go b/internal/cms_api/group/group.go index d09c3b709..6ffe981d9 100644 --- a/internal/cms_api/group/group.go +++ b/internal/cms_api/group/group.go @@ -18,6 +18,34 @@ import ( "github.com/gin-gonic/gin" ) +func GetGroupById(c *gin.Context) { + var ( + req cms_api_struct.GetGroupByIdRequest + resp cms_api_struct.GetGroupByIdResponse + reqPb pbGroup.GetGroupByIdReq + ) + if err := c.ShouldBindQuery(&req); err != nil { + log.NewError("0", "ShouldBindQuery failed ", err.Error()) + openIMHttp.RespHttp200(c, constant.ErrArgs, nil) + return + } + etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImGroupName) + client := pbGroup.NewGroupClient(etcdConn) + respPb, err := client.GetGroupById(context.Background(), &reqPb) + if err != nil { + log.NewError(utils.GetSelfFuncName(), "GetUserInfo failed ", err.Error()) + openIMHttp.RespHttp200(c, constant.ErrServer, nil) + return + } + resp.GroupMasterId = respPb.GroupInfo.OwnerUserID + resp.GroupName = respPb.GroupInfo.GroupName + resp.GroupID = respPb.GroupInfo.GroupID + resp.CreateTime = (utils.UnixSecondToTime(int64(respPb.GroupInfo.CreateTime))).String() + resp.ProfilePhoto = respPb.GroupInfo.FaceURL + resp.GroupMasterName = respPb.GroupInfo.OwnerUserID + openIMHttp.RespHttp200(c, constant.OK, nil) +} + func GetGroups(c *gin.Context) { var ( req cms_api_struct.GetGroupsRequest @@ -57,7 +85,7 @@ func GetGroups(c *gin.Context) { openIMHttp.RespHttp200(c, constant.OK, resp) } -func GetGroup(c *gin.Context) { +func GetGroupByName(c *gin.Context) { var ( req cms_api_struct.GetGroupRequest resp cms_api_struct.GetGroupResponse @@ -69,6 +97,8 @@ func GetGroup(c *gin.Context) { return } reqPb.GroupName = req.GroupName + reqPb.Pagination = &commonPb.RequestPagination{} + utils.CopyStructFields(&reqPb.Pagination, req) fmt.Println(reqPb) etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImGroupName) client := pbGroup.NewGroupClient(etcdConn) @@ -90,6 +120,8 @@ func GetGroup(c *gin.Context) { ProfilePhoto: v.FaceURL, }) } + resp.CurrentPage = int(respPb.Pagination.PageNumber) + resp.ShowNumber = int(respPb.Pagination.ShowNumber) openIMHttp.RespHttp200(c, constant.OK, resp) } @@ -104,24 +136,30 @@ func CreateGroup(c *gin.Context) { openIMHttp.RespHttp200(c, constant.ErrArgs, nil) return } + reqPb.GroupInfo = &commonPb.GroupInfo{} reqPb.GroupInfo.GroupName = req.GroupName - reqPb.GroupInfo.CreatorUserID = "" + reqPb.GroupInfo.CreatorUserID = req.GroupMasterId + for _, v := range req.GroupMembers { + reqPb.InitMemberList = append(reqPb.InitMemberList, &pbGroup.GroupAddMemberInfo{ + UserID: v, + RoleLevel: 1, + }) + } etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImGroupName) client := pbGroup.NewGroupClient(etcdConn) - respPb, err := client.CreateGroup(context.Background(), &reqPb) + _, err := client.CreateGroup(context.Background(), &reqPb) if err != nil { log.NewError("s", "GetUserInfo failed ", err.Error()) openIMHttp.RespHttp200(c, constant.ErrServer, nil) return } - fmt.Println(respPb) openIMHttp.RespHttp200(c, constant.OK, resp) } func BanGroupChat(c *gin.Context) { var ( req cms_api_struct.BanGroupChatRequest - reqPb pbGroup.BanGroupChatReq + reqPb pbGroup.OperateGroupStatusReq ) if err := c.BindJSON(&req); err != nil { log.NewError("0", "ShouldBindQuery failed ", err.Error()) @@ -129,9 +167,10 @@ func BanGroupChat(c *gin.Context) { return } reqPb.GroupId = req.GroupId + reqPb.Status = constant.GroupBanChat etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImGroupName) client := pbGroup.NewGroupClient(etcdConn) - _, err := client.BanGroupChat(context.Background(), &reqPb) + _, err := client.OperateGroupStatus(context.Background(), &reqPb) if err != nil { log.NewError("s", "GetUserInfo failed ", err.Error()) openIMHttp.RespHttp200(c, constant.ErrServer, nil) @@ -144,7 +183,7 @@ func BanGroupChat(c *gin.Context) { func BanPrivateChat(c *gin.Context) { var ( req cms_api_struct.BanPrivateChatRequest - reqPb pbGroup.BanPrivateChatReq + reqPb pbGroup.OperateGroupStatusReq ) if err := c.BindJSON(&req); err != nil { log.NewError("0", "BindJSON failed ", err.Error()) @@ -152,9 +191,10 @@ func BanPrivateChat(c *gin.Context) { return } reqPb.GroupId = req.GroupId + reqPb.Status = constant.GroupBanPrivateChat etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImGroupName) client := pbGroup.NewGroupClient(etcdConn) - _, err := client.BanPrivateChat(context.Background(), &reqPb) + _, err := client.OperateGroupStatus(context.Background(), &reqPb) if err != nil { log.NewError("s", "GetUserInfo failed ", err.Error()) openIMHttp.RespHttp200(c, constant.ErrServer, nil) @@ -163,20 +203,63 @@ func BanPrivateChat(c *gin.Context) { openIMHttp.RespHttp200(c, constant.OK, nil) } -func GetGroupsMember(c *gin.Context) { +func OpenGroupChat(c *gin.Context) { var ( - req cms_api_struct.GetGroupMembersRequest - _ cms_api_struct.GetGroupMembersResponse + req cms_api_struct.BanPrivateChatRequest + reqPb pbGroup.OperateGroupStatusReq + ) + if err := c.BindJSON(&req); err != nil { + log.NewError("0", "BindJSON failed ", err.Error()) + openIMHttp.RespHttp200(c, constant.ErrArgs, nil) + return + } + reqPb.GroupId = req.GroupId + reqPb.Status = constant.GroupOk + etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImGroupName) + client := pbGroup.NewGroupClient(etcdConn) + _, err := client.OperateGroupStatus(context.Background(), &reqPb) + if err != nil { + log.NewError("s", "GetUserInfo failed ", err.Error()) + openIMHttp.RespHttp200(c, constant.ErrServer, nil) + return + } + openIMHttp.RespHttp200(c, constant.OK, nil) +} + +func OpenPrivateChat(c *gin.Context) { + var ( + req cms_api_struct.BanPrivateChatRequest + reqPb pbGroup.OperateGroupStatusReq ) if err := c.BindJSON(&req); err != nil { log.NewError("0", "BindJSON failed ", err.Error()) openIMHttp.RespHttp200(c, constant.ErrArgs, nil) return } + reqPb.GroupId = req.GroupId + reqPb.Status = constant.GroupOk + etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImGroupName) + client := pbGroup.NewGroupClient(etcdConn) + _, err := client.OperateGroupStatus(context.Background(), &reqPb) + if err != nil { + log.NewError("s", "GetUserInfo failed ", err.Error()) + openIMHttp.RespHttp200(c, constant.ErrServer, nil) + return + } + openIMHttp.RespHttp200(c, constant.OK, nil) } -func InquireMember(c *gin.Context) { +func GetGroupsMember(c *gin.Context) { + var ( + req cms_api_struct.GetGroupMembersRequest + _ cms_api_struct.GetGroupMembersResponse + ) + if err := c.BindJSON(&req); err != nil { + log.NewError("0", "BindJSON failed ", err.Error()) + openIMHttp.RespHttp200(c, constant.ErrArgs, nil) + return + } } func InquireGroup(c *gin.Context) { diff --git a/internal/cms_api/router.go b/internal/cms_api/router.go index 9331a1556..1f01f3121 100644 --- a/internal/cms_api/router.go +++ b/internal/cms_api/router.go @@ -20,16 +20,16 @@ func NewGinRouter() *gin.Engine { router.Use(middleware.CorsHandler()) adminRouterGroup := router.Group("/admin") { - adminRouterGroup.POST("/register", admin.UserRegister) - adminRouterGroup.POST("/login", admin.UserLogin) - adminRouterGroup.GET("/get_user_settings", admin.GetUserSettings) - adminRouterGroup.POST("/alter_user_settings", admin.AlterUserSettings) + adminRouterGroup.POST("/register", admin.AdminRegister) + adminRouterGroup.POST("/login", admin.AdminLogin) + adminRouterGroup.GET("/get_user_settings", admin.GetAdminSettings) + adminRouterGroup.POST("/alter_user_settings", admin.AlterAdminSettings) } statisticsRouterGroup := router.Group("/statistics") { - statisticsRouterGroup.GET("/get_messages_statistics", statistics.MessagesStatistics) - statisticsRouterGroup.GET("/get_users_statistics", statistics.UsersStatistics) - statisticsRouterGroup.GET("/get_groups_statistics", statistics.GroupsStatistics) + statisticsRouterGroup.GET("/get_messages_statistics", statistics.GetMessagesStatistics) + statisticsRouterGroup.GET("/get_users_statistics", statistics.GetUsersStatistics) + statisticsRouterGroup.GET("/get_groups_statistics", statistics.GetGroupsStatistics) statisticsRouterGroup.GET("/get_active_user", statistics.GetActiveUser) statisticsRouterGroup.GET("/get_active_group", statistics.GetActiveGroup) } @@ -57,18 +57,20 @@ func NewGinRouter() *gin.Engine { } groupRouterGroup := router.Group("/group") { + groupRouterGroup.GET("/get_group_by_id", group.GetGroupById) groupRouterGroup.GET("/get_groups", group.GetGroups) - groupRouterGroup.GET("/get_group", group.GetGroup) - groupRouterGroup.GET("/search_groups_member", group.GetGroupsMember) + groupRouterGroup.GET("/get_group_by_name", group.GetGroupByName) + groupRouterGroup.GET("/get_group_members", group.GetGroupsMember) groupRouterGroup.POST("/create_group", group.CreateGroup) groupRouterGroup.GET("/inquire_group", group.InquireGroup) - groupRouterGroup.GET("/inquire_member_by_group", group.InquireMember) groupRouterGroup.POST("/add_members", group.AddMembers) - groupRouterGroup.POST("/remove_user", group.RemoveUser) - groupRouterGroup.POST("/ban_private_chat", group.BanPrivateChat) + groupRouterGroup.POST("/remove_member", group.RemoveUser) + groupRouterGroup.POST("/ban_group_private_chat", group.BanPrivateChat) + groupRouterGroup.POST("/open_group_private_chat", group.OpenPrivateChat) groupRouterGroup.POST("/withdraw_message", group.Withdraw) groupRouterGroup.POST("/search_group_message", group.SearchMessage) groupRouterGroup.POST("/ban_group_chat", group.BanGroupChat) + groupRouterGroup.POST("/open_group_chat", group.OpenGroupChat) } userRouterGroup := router.Group("/user") { diff --git a/internal/cms_api/statistics/statistics.go b/internal/cms_api/statistics/statistics.go index 107bd8f61..0e2003592 100644 --- a/internal/cms_api/statistics/statistics.go +++ b/internal/cms_api/statistics/statistics.go @@ -1,18 +1,24 @@ package statistics import ( + "Open_IM/pkg/cms_api_struct" "github.com/gin-gonic/gin" + statisticsPb "Open_IM/pkg/proto/statistics" ) -func MessagesStatistics(c *gin.Context) { - +func GetMessagesStatistics(c *gin.Context) { + var ( + req cms_api_struct.GetGroupMembersRequest + resp cms_api_struct.GetGroupMembersResponse + reqPb statisticsPb.GetMessageStatisticsReq + ) } -func UsersStatistics(c *gin.Context) { +func GetUsersStatistics(c *gin.Context) { } -func GroupsStatistics(c *gin.Context) { +func GetGroupsStatistics(c *gin.Context) { } diff --git a/internal/rpc/group/group.go b/internal/rpc/group/group.go index 8a56cf748..4772ded94 100644 --- a/internal/rpc/group/group.go +++ b/internal/rpc/group/group.go @@ -640,6 +640,28 @@ func (s *groupServer) TransferGroupOwner(_ context.Context, req *pbGroup.Transfe } +func (s *groupServer) GetGroupById(_ context.Context, req *pbGroup.GetGroupByIdReq) (*pbGroup.GetGroupByIdResp, error) { + log.NewInfo(req.OperationID, "GetGroup ", req.String()) + resp := &pbGroup.GetGroupByIdResp{} + group, err := imdb.GetGroupsById(req.GroupId) + if err != nil { + return resp, err + } + resp.GroupInfo = &open_im_sdk.GroupInfo{ + GroupID: group.GroupID, + GroupName: group.GroupName, + FaceURL: group.FaceUrl, + OwnerUserID: group.CreatorUserID, + MemberCount: 0, + Status: group.Status, + CreatorUserID: group.CreatorUserID, + GroupType: group.GroupType, + } + + resp.GroupInfo.CreatorUserID = group.CreatorUserID + return resp, nil +} + func (s *groupServer) GetGroup(_ context.Context, req *pbGroup.GetGroupReq) (*pbGroup.GetGroupResp, error) { log.NewInfo(req.OperationID, "GetGroup ", req.String()) resp := &pbGroup.GetGroupResp{ @@ -649,6 +671,10 @@ func (s *groupServer) GetGroup(_ context.Context, req *pbGroup.GetGroupReq) (*pb if err != nil { return nil, err } + resp.Pagination = &open_im_sdk.RequestPagination{ + PageNumber: req.Pagination.PageNumber, + ShowNumber: req.Pagination.ShowNumber, + } for _, v := range groups { resp.GroupInfo = append(resp.GroupInfo, &open_im_sdk.GroupInfo{ GroupID: v.GroupID, @@ -659,7 +685,6 @@ func (s *groupServer) GetGroup(_ context.Context, req *pbGroup.GetGroupReq) (*pb CreatorUserID: v.CreatorUserID, }) } - utils.CopyStructFields(resp.GroupInfo, groups) return resp, nil } @@ -695,26 +720,17 @@ func (s *groupServer) GetGroups(_ context.Context, req *pbGroup.GetGroupsReq) (* return resp, nil } -func (s *groupServer) BanGroupChat(_ context.Context, req *pbGroup.BanGroupChatReq) (*pbGroup.BanGroupChatResp, error) { - log.NewInfo(req.OperationID, "BanGroupChat ", req.String()) - resp := &pbGroup.BanGroupChatResp{} - if err := imdb.BanGroupChat(req.GroupId); err != nil { - return resp, err - } - return resp, nil -} - -func (s *groupServer) BanPrivateChat(_ context.Context, req *pbGroup.BanPrivateChatReq) (*pbGroup.BanPrivateChatResp, error) { - log.NewInfo(req.OperationID, "BanPrivateChat ", req.String()) - resp := &pbGroup.BanPrivateChatResp{} - if err := imdb.BanPrivateChat(req.GroupId); err != nil { +func (s *groupServer) OperateGroupStatus(_ context.Context, req *pbGroup.OperateGroupStatusReq) (*pbGroup.OperateGroupStatusResp, error) { + log.NewInfo(req.OperationID, utils.GetSelfFuncName(), req.String()) + resp := &pbGroup.OperateGroupStatusResp{} + if err := imdb.OperateGroupStatus(req.GroupId, req.Status); err != nil { return resp, err } return resp, nil } func (s *groupServer) DeleteGroup(_ context.Context, req *pbGroup.DeleteGroupReq) (*pbGroup.DeleteGroupResp, error) { - log.NewInfo(req.OperationID, "DeleteGroup ", req.String()) + log.NewInfo(req.OperationID, utils.GetSelfFuncName(), req.String()) resp := &pbGroup.DeleteGroupResp{} if err := imdb.DeleteGroup(req.GroupId); err != nil { return resp, err @@ -722,10 +738,10 @@ func (s *groupServer) DeleteGroup(_ context.Context, req *pbGroup.DeleteGroupReq return resp, nil } -func (s *groupServer) SetMaster(_ context.Context, req *pbGroup.SetMasterReq) (*pbGroup.SetMasterResp, error) { +func (s *groupServer) OperateUserRole(_ context.Context, req *pbGroup.OperateUserRoleReq) (*pbGroup.OperateUserRoleResp, error) { log.NewInfo(req.OperationID, "DeleteGroup ", req.String()) - resp := &pbGroup.SetMasterResp{} - if err := imdb.SetGroupMaster(req.UserId, req.GroupId); err != nil { + resp := &pbGroup.OperateUserRoleResp{} + if err := imdb.OperateGroupRole(req.UserId, req.GroupId, req.RoleLevel); err != nil { return resp, err } return resp, nil diff --git a/internal/rpc/statistics/statistics.go b/internal/rpc/statistics/statistics.go new file mode 100644 index 000000000..d8adbaed3 --- /dev/null +++ b/internal/rpc/statistics/statistics.go @@ -0,0 +1,67 @@ +package statistics + +import ( + "Open_IM/pkg/common/config" + //"Open_IM/pkg/common/constant" + //"Open_IM/pkg/common/db" + //imdb "Open_IM/pkg/common/db/mysql_model/im_mysql_model" + "Open_IM/pkg/common/log" + //cp "Open_IM/pkg/common/utils" + "Open_IM/pkg/grpc-etcdv3/getcdv3" + pbStatistics "Open_IM/pkg/proto/statistics" + //open_im_sdk "Open_IM/pkg/proto/sdk_ws" + "Open_IM/pkg/utils" + //"context" + "net" + "strconv" + "strings" + + "google.golang.org/grpc" +) + +type statisticsServer struct { + rpcPort int + rpcRegisterName string + etcdSchema string + etcdAddr []string +} + +func NewStatisticsGroupServer(port int) *statisticsServer { + log.NewPrivateLog("group") + return &statisticsServer{ + rpcPort: port, + rpcRegisterName: config.Config.RpcRegisterName.OpenImGroupName, + etcdSchema: config.Config.Etcd.EtcdSchema, + etcdAddr: config.Config.Etcd.EtcdAddr, + } +} + +func (s *statisticsServer) Run() { + log.NewInfo("0", "group 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() + //Service registers with etcd + pbStatistics.RegisterUserServer(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", "group rpc success") +} \ No newline at end of file diff --git a/internal/rpc/user/user.go b/internal/rpc/user/user.go index 84cb72d10..5a6b77613 100644 --- a/internal/rpc/user/user.go +++ b/internal/rpc/user/user.go @@ -250,11 +250,16 @@ func (s *userServer) GetUser(ctx context.Context, req *pbUser.GetUserReq) (*pbUs if err != nil { return resp, nil } + isBlock, err := imdb.UserIsBlock(req.UserId) + if err != nil { + return resp, err + } resp.User = &pbUser.User{ ProfilePhoto: user.FaceURL, Nickname: user.Nickname, UserId: user.UserID, CreateTime: user.CreateTime.String(), + IsBlock: isBlock, } return resp, nil } diff --git a/pkg/cms_api_struct/group.go b/pkg/cms_api_struct/group.go index 86ef86467..edab8a2de 100644 --- a/pkg/cms_api_struct/group.go +++ b/pkg/cms_api_struct/group.go @@ -11,6 +11,14 @@ type GroupResponse struct { ProfilePhoto string `json:"profile_photo"` } +type GetGroupByIdRequest struct { + GroupId string `form:"group_id" binding:"required"` +} + +type GetGroupByIdResponse struct { + GroupResponse +} + type GetGroupRequest struct { GroupName string `form:"group_name" binding:"required"` RequestPagination @@ -86,4 +94,4 @@ type GetGroupMembersResponse struct { GroupMemberList []GroupMemberResponse `json:"group_member_list"` GroupMemberNums int `json:"group_member_nums"` ResponsePagination -} +} \ No newline at end of file diff --git a/pkg/cms_api_struct/statistics.go b/pkg/cms_api_struct/statistics.go index 376932f85..02aae7c91 100644 --- a/pkg/cms_api_struct/statistics.go +++ b/pkg/cms_api_struct/statistics.go @@ -1,12 +1,12 @@ package cms_api_struct -type StatisticsRequest struct { - From string `json:"from"` - To string `json:"to"` +type GetStatisticsRequest struct { + FromTime string `json:"from"` + ToTime string `json:"to"` } // 单聊 -type MessageStatisticsResponse struct { +type GetMessageStatisticsResponse struct { PrivateMessageNum int `json:"private_message_num"` GroupMessageNum int `json:"group_message_num"` PrivateMessageNumList []struct { @@ -20,7 +20,7 @@ type MessageStatisticsResponse struct { } // 用户统计 -type UserStatisticsResponse struct { +type GetUserStatisticsResponse struct { IncreaseUserNum int `json:"increase_user_num"` ActiveUserNum int `json:"active_user_num"` TotalUserNum int `json:"total_user_num"` @@ -39,7 +39,7 @@ type UserStatisticsResponse struct { } // 群聊统计 -type GroupMessageStatisticsResponse struct { +type GetGroupMessageStatisticsResponse struct { IncreaseGroupNum int `json:"increase_group_num"` TotalGroupNum int `json:"total_group_num"` IncreaseGroupNumList []struct { @@ -52,7 +52,7 @@ type GroupMessageStatisticsResponse struct { } `json:"total_group_num_list"` } -type ActiveUserStatisticsResponse struct { +type GetActiveUserStatisticsResponse struct { ActiveUserList []struct { NickName string `json:"nick_name"` Id int `json:"id"` @@ -60,7 +60,7 @@ type ActiveUserStatisticsResponse struct { } `json:"active_user_list"` } -type ActiveGroupStatisticsResponse struct { +type GetActiveGroupStatisticsResponse struct { ActiveGroupList []struct { GroupNickName string `json:"group_nick_name"` GroupId int `json:"group_id"` diff --git a/pkg/common/db/mysql_model/im_mysql_model/group_model.go b/pkg/common/db/mysql_model/im_mysql_model/group_model.go index 030a991a8..2a7eced59 100644 --- a/pkg/common/db/mysql_model/im_mysql_model/group_model.go +++ b/pkg/common/db/mysql_model/im_mysql_model/group_model.go @@ -83,24 +83,19 @@ func GetGroups(pageNumber, showNumber int) ([]db.Group, error) { return groups, nil } -func BanGroupChat(groupId string) error { - var group db.Group - group.Status = constant.GroupBanChat - if err := SetGroupInfo(group); err != nil { - return err - } - return nil -} -func BanPrivateChat(groupId string) error { - var group db.Group - group.Status = constant.GroupBanPrivateChat +func OperateGroupStatus(groupId string, groupStatus int32) error { + group := db.Group{ + GroupID: groupId, + Status: groupStatus, + } if err := SetGroupInfo(group); err != nil { return err } return nil } + func DeleteGroup(groupId string) error { dbConn, err := db.DB.MysqlDB.DefaultGormDB() if err != nil { @@ -114,7 +109,7 @@ func DeleteGroup(groupId string) error { return nil } -func SetGroupMaster(userId, groupId string) error { +func OperateGroupRole(userId, groupId string, roleLevel int32) error { dbConn, err := db.DB.MysqlDB.DefaultGormDB() if err != nil { return err @@ -123,6 +118,7 @@ func SetGroupMaster(userId, groupId string) error { groupMember := db.GroupMember{ UserID: userId, GroupID: groupId, + RoleLevel: roleLevel, } updateInfo := db.GroupMember{ RoleLevel: constant.GroupOwner, @@ -145,3 +141,18 @@ func GetGroupsCountNum() (int, error) { } return count, nil } + +func GetGroupsById(groupId string) (db.Group, error) { + dbConn, err := db.DB.MysqlDB.DefaultGormDB() + group := db.Group{ + GroupID: groupId, + } + if err != nil { + return group, err + } + dbConn.LogMode(true) + if err := dbConn.Find(&group).First(&group).Error; err != nil { + return group, err + } + return group, nil +} \ No newline at end of file diff --git a/pkg/proto/group/group.pb.go b/pkg/proto/group/group.pb.go index 7d24161ac..732baf9bc 100644 --- a/pkg/proto/group/group.pb.go +++ b/pkg/proto/group/group.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.26.0 -// protoc v3.19.3 +// protoc-gen-go v1.27.1 +// protoc v3.15.5 // source: group/group.proto package group @@ -2293,17 +2293,18 @@ func (x *GetGroupMemberReq) GetOperationID() string { return "" } -type BanGroupChatReq struct { +type OperateGroupStatusReq struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields GroupId string `protobuf:"bytes,1,opt,name=GroupId,proto3" json:"GroupId,omitempty"` - OperationID string `protobuf:"bytes,2,opt,name=OperationID,proto3" json:"OperationID,omitempty"` + Status int32 `protobuf:"varint,2,opt,name=Status,proto3" json:"Status,omitempty"` + OperationID string `protobuf:"bytes,3,opt,name=OperationID,proto3" json:"OperationID,omitempty"` } -func (x *BanGroupChatReq) Reset() { - *x = BanGroupChatReq{} +func (x *OperateGroupStatusReq) Reset() { + *x = OperateGroupStatusReq{} if protoimpl.UnsafeEnabled { mi := &file_group_group_proto_msgTypes[36] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -2311,13 +2312,13 @@ func (x *BanGroupChatReq) Reset() { } } -func (x *BanGroupChatReq) String() string { +func (x *OperateGroupStatusReq) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BanGroupChatReq) ProtoMessage() {} +func (*OperateGroupStatusReq) ProtoMessage() {} -func (x *BanGroupChatReq) ProtoReflect() protoreflect.Message { +func (x *OperateGroupStatusReq) ProtoReflect() protoreflect.Message { mi := &file_group_group_proto_msgTypes[36] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -2329,33 +2330,40 @@ func (x *BanGroupChatReq) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use BanGroupChatReq.ProtoReflect.Descriptor instead. -func (*BanGroupChatReq) Descriptor() ([]byte, []int) { +// Deprecated: Use OperateGroupStatusReq.ProtoReflect.Descriptor instead. +func (*OperateGroupStatusReq) Descriptor() ([]byte, []int) { return file_group_group_proto_rawDescGZIP(), []int{36} } -func (x *BanGroupChatReq) GetGroupId() string { +func (x *OperateGroupStatusReq) GetGroupId() string { if x != nil { return x.GroupId } return "" } -func (x *BanGroupChatReq) GetOperationID() string { +func (x *OperateGroupStatusReq) GetStatus() int32 { + if x != nil { + return x.Status + } + return 0 +} + +func (x *OperateGroupStatusReq) GetOperationID() string { if x != nil { return x.OperationID } return "" } -type BanGroupChatResp struct { +type OperateGroupStatusResp struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *BanGroupChatResp) Reset() { - *x = BanGroupChatResp{} +func (x *OperateGroupStatusResp) Reset() { + *x = OperateGroupStatusResp{} if protoimpl.UnsafeEnabled { mi := &file_group_group_proto_msgTypes[37] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -2363,13 +2371,13 @@ func (x *BanGroupChatResp) Reset() { } } -func (x *BanGroupChatResp) String() string { +func (x *OperateGroupStatusResp) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BanGroupChatResp) ProtoMessage() {} +func (*OperateGroupStatusResp) ProtoMessage() {} -func (x *BanGroupChatResp) ProtoReflect() protoreflect.Message { +func (x *OperateGroupStatusResp) ProtoReflect() protoreflect.Message { mi := &file_group_group_proto_msgTypes[37] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -2381,22 +2389,24 @@ func (x *BanGroupChatResp) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use BanGroupChatResp.ProtoReflect.Descriptor instead. -func (*BanGroupChatResp) Descriptor() ([]byte, []int) { +// Deprecated: Use OperateGroupStatusResp.ProtoReflect.Descriptor instead. +func (*OperateGroupStatusResp) Descriptor() ([]byte, []int) { return file_group_group_proto_rawDescGZIP(), []int{37} } -type BanPrivateChatReq struct { +type OperateUserRoleReq struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields GroupId string `protobuf:"bytes,1,opt,name=GroupId,proto3" json:"GroupId,omitempty"` - OperationID string `protobuf:"bytes,2,opt,name=OperationID,proto3" json:"OperationID,omitempty"` + UserId string `protobuf:"bytes,2,opt,name=UserId,proto3" json:"UserId,omitempty"` + RoleLevel int32 `protobuf:"varint,3,opt,name=RoleLevel,proto3" json:"RoleLevel,omitempty"` + OperationID string `protobuf:"bytes,4,opt,name=OperationID,proto3" json:"OperationID,omitempty"` } -func (x *BanPrivateChatReq) Reset() { - *x = BanPrivateChatReq{} +func (x *OperateUserRoleReq) Reset() { + *x = OperateUserRoleReq{} if protoimpl.UnsafeEnabled { mi := &file_group_group_proto_msgTypes[38] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -2404,13 +2414,13 @@ func (x *BanPrivateChatReq) Reset() { } } -func (x *BanPrivateChatReq) String() string { +func (x *OperateUserRoleReq) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BanPrivateChatReq) ProtoMessage() {} +func (*OperateUserRoleReq) ProtoMessage() {} -func (x *BanPrivateChatReq) ProtoReflect() protoreflect.Message { +func (x *OperateUserRoleReq) ProtoReflect() protoreflect.Message { mi := &file_group_group_proto_msgTypes[38] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -2422,33 +2432,47 @@ func (x *BanPrivateChatReq) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use BanPrivateChatReq.ProtoReflect.Descriptor instead. -func (*BanPrivateChatReq) Descriptor() ([]byte, []int) { +// Deprecated: Use OperateUserRoleReq.ProtoReflect.Descriptor instead. +func (*OperateUserRoleReq) Descriptor() ([]byte, []int) { return file_group_group_proto_rawDescGZIP(), []int{38} } -func (x *BanPrivateChatReq) GetGroupId() string { +func (x *OperateUserRoleReq) GetGroupId() string { if x != nil { return x.GroupId } return "" } -func (x *BanPrivateChatReq) GetOperationID() string { +func (x *OperateUserRoleReq) GetUserId() string { + if x != nil { + return x.UserId + } + return "" +} + +func (x *OperateUserRoleReq) GetRoleLevel() int32 { + if x != nil { + return x.RoleLevel + } + return 0 +} + +func (x *OperateUserRoleReq) GetOperationID() string { if x != nil { return x.OperationID } return "" } -type BanPrivateChatResp struct { +type OperateUserRoleResp struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *BanPrivateChatResp) Reset() { - *x = BanPrivateChatResp{} +func (x *OperateUserRoleResp) Reset() { + *x = OperateUserRoleResp{} if protoimpl.UnsafeEnabled { mi := &file_group_group_proto_msgTypes[39] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -2456,13 +2480,13 @@ func (x *BanPrivateChatResp) Reset() { } } -func (x *BanPrivateChatResp) String() string { +func (x *OperateUserRoleResp) String() string { return protoimpl.X.MessageStringOf(x) } -func (*BanPrivateChatResp) ProtoMessage() {} +func (*OperateUserRoleResp) ProtoMessage() {} -func (x *BanPrivateChatResp) ProtoReflect() protoreflect.Message { +func (x *OperateUserRoleResp) ProtoReflect() protoreflect.Message { mi := &file_group_group_proto_msgTypes[39] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -2474,23 +2498,22 @@ func (x *BanPrivateChatResp) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use BanPrivateChatResp.ProtoReflect.Descriptor instead. -func (*BanPrivateChatResp) Descriptor() ([]byte, []int) { +// Deprecated: Use OperateUserRoleResp.ProtoReflect.Descriptor instead. +func (*OperateUserRoleResp) Descriptor() ([]byte, []int) { return file_group_group_proto_rawDescGZIP(), []int{39} } -type SetMasterReq struct { +type DeleteGroupReq struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields GroupId string `protobuf:"bytes,1,opt,name=GroupId,proto3" json:"GroupId,omitempty"` - UserId string `protobuf:"bytes,2,opt,name=UserId,proto3" json:"UserId,omitempty"` - OperationID string `protobuf:"bytes,3,opt,name=OperationID,proto3" json:"OperationID,omitempty"` + OperationID string `protobuf:"bytes,2,opt,name=OperationID,proto3" json:"OperationID,omitempty"` } -func (x *SetMasterReq) Reset() { - *x = SetMasterReq{} +func (x *DeleteGroupReq) Reset() { + *x = DeleteGroupReq{} if protoimpl.UnsafeEnabled { mi := &file_group_group_proto_msgTypes[40] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -2498,13 +2521,13 @@ func (x *SetMasterReq) Reset() { } } -func (x *SetMasterReq) String() string { +func (x *DeleteGroupReq) String() string { return protoimpl.X.MessageStringOf(x) } -func (*SetMasterReq) ProtoMessage() {} +func (*DeleteGroupReq) ProtoMessage() {} -func (x *SetMasterReq) ProtoReflect() protoreflect.Message { +func (x *DeleteGroupReq) ProtoReflect() protoreflect.Message { mi := &file_group_group_proto_msgTypes[40] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -2516,40 +2539,33 @@ func (x *SetMasterReq) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use SetMasterReq.ProtoReflect.Descriptor instead. -func (*SetMasterReq) Descriptor() ([]byte, []int) { +// Deprecated: Use DeleteGroupReq.ProtoReflect.Descriptor instead. +func (*DeleteGroupReq) Descriptor() ([]byte, []int) { return file_group_group_proto_rawDescGZIP(), []int{40} } -func (x *SetMasterReq) GetGroupId() string { +func (x *DeleteGroupReq) GetGroupId() string { if x != nil { return x.GroupId } return "" } -func (x *SetMasterReq) GetUserId() string { - if x != nil { - return x.UserId - } - return "" -} - -func (x *SetMasterReq) GetOperationID() string { +func (x *DeleteGroupReq) GetOperationID() string { if x != nil { return x.OperationID } return "" } -type SetMasterResp struct { +type DeleteGroupResp struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields } -func (x *SetMasterResp) Reset() { - *x = SetMasterResp{} +func (x *DeleteGroupResp) Reset() { + *x = DeleteGroupResp{} if protoimpl.UnsafeEnabled { mi := &file_group_group_proto_msgTypes[41] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -2557,13 +2573,13 @@ func (x *SetMasterResp) Reset() { } } -func (x *SetMasterResp) String() string { +func (x *DeleteGroupResp) String() string { return protoimpl.X.MessageStringOf(x) } -func (*SetMasterResp) ProtoMessage() {} +func (*DeleteGroupResp) ProtoMessage() {} -func (x *SetMasterResp) ProtoReflect() protoreflect.Message { +func (x *DeleteGroupResp) ProtoReflect() protoreflect.Message { mi := &file_group_group_proto_msgTypes[41] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -2575,12 +2591,12 @@ func (x *SetMasterResp) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use SetMasterResp.ProtoReflect.Descriptor instead. -func (*SetMasterResp) Descriptor() ([]byte, []int) { +// Deprecated: Use DeleteGroupResp.ProtoReflect.Descriptor instead. +func (*DeleteGroupResp) Descriptor() ([]byte, []int) { return file_group_group_proto_rawDescGZIP(), []int{41} } -type DeleteGroupReq struct { +type GetGroupByIdReq struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -2589,8 +2605,8 @@ type DeleteGroupReq struct { OperationID string `protobuf:"bytes,2,opt,name=OperationID,proto3" json:"OperationID,omitempty"` } -func (x *DeleteGroupReq) Reset() { - *x = DeleteGroupReq{} +func (x *GetGroupByIdReq) Reset() { + *x = GetGroupByIdReq{} if protoimpl.UnsafeEnabled { mi := &file_group_group_proto_msgTypes[42] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -2598,13 +2614,13 @@ func (x *DeleteGroupReq) Reset() { } } -func (x *DeleteGroupReq) String() string { +func (x *GetGroupByIdReq) String() string { return protoimpl.X.MessageStringOf(x) } -func (*DeleteGroupReq) ProtoMessage() {} +func (*GetGroupByIdReq) ProtoMessage() {} -func (x *DeleteGroupReq) ProtoReflect() protoreflect.Message { +func (x *GetGroupByIdReq) ProtoReflect() protoreflect.Message { mi := &file_group_group_proto_msgTypes[42] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -2616,33 +2632,35 @@ func (x *DeleteGroupReq) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use DeleteGroupReq.ProtoReflect.Descriptor instead. -func (*DeleteGroupReq) Descriptor() ([]byte, []int) { +// Deprecated: Use GetGroupByIdReq.ProtoReflect.Descriptor instead. +func (*GetGroupByIdReq) Descriptor() ([]byte, []int) { return file_group_group_proto_rawDescGZIP(), []int{42} } -func (x *DeleteGroupReq) GetGroupId() string { +func (x *GetGroupByIdReq) GetGroupId() string { if x != nil { return x.GroupId } return "" } -func (x *DeleteGroupReq) GetOperationID() string { +func (x *GetGroupByIdReq) GetOperationID() string { if x != nil { return x.OperationID } return "" } -type DeleteGroupResp struct { +type GetGroupByIdResp struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields + + GroupInfo *sdk_ws.GroupInfo `protobuf:"bytes,1,opt,name=GroupInfo,proto3" json:"GroupInfo,omitempty"` } -func (x *DeleteGroupResp) Reset() { - *x = DeleteGroupResp{} +func (x *GetGroupByIdResp) Reset() { + *x = GetGroupByIdResp{} if protoimpl.UnsafeEnabled { mi := &file_group_group_proto_msgTypes[43] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -2650,13 +2668,13 @@ func (x *DeleteGroupResp) Reset() { } } -func (x *DeleteGroupResp) String() string { +func (x *GetGroupByIdResp) String() string { return protoimpl.X.MessageStringOf(x) } -func (*DeleteGroupResp) ProtoMessage() {} +func (*GetGroupByIdResp) ProtoMessage() {} -func (x *DeleteGroupResp) ProtoReflect() protoreflect.Message { +func (x *GetGroupByIdResp) ProtoReflect() protoreflect.Message { mi := &file_group_group_proto_msgTypes[43] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -2668,11 +2686,18 @@ func (x *DeleteGroupResp) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use DeleteGroupResp.ProtoReflect.Descriptor instead. -func (*DeleteGroupResp) Descriptor() ([]byte, []int) { +// Deprecated: Use GetGroupByIdResp.ProtoReflect.Descriptor instead. +func (*GetGroupByIdResp) Descriptor() ([]byte, []int) { return file_group_group_proto_rawDescGZIP(), []int{43} } +func (x *GetGroupByIdResp) GetGroupInfo() *sdk_ws.GroupInfo { + if x != nil { + return x.GroupInfo + } + return nil +} + var File_group_group_proto protoreflect.FileDescriptor var file_group_group_proto_rawDesc = []byte{ @@ -2975,125 +3000,135 @@ var file_group_group_proto_rawDesc = []byte{ 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, - 0x44, 0x22, 0x4d, 0x0a, 0x0f, 0x42, 0x61, 0x6e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x43, 0x68, 0x61, - 0x74, 0x52, 0x65, 0x71, 0x12, 0x18, 0x0a, 0x07, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x12, 0x20, - 0x0a, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, - 0x22, 0x12, 0x0a, 0x10, 0x42, 0x61, 0x6e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x43, 0x68, 0x61, 0x74, - 0x52, 0x65, 0x73, 0x70, 0x22, 0x4f, 0x0a, 0x11, 0x42, 0x61, 0x6e, 0x50, 0x72, 0x69, 0x76, 0x61, - 0x74, 0x65, 0x43, 0x68, 0x61, 0x74, 0x52, 0x65, 0x71, 0x12, 0x18, 0x0a, 0x07, 0x47, 0x72, 0x6f, - 0x75, 0x70, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x47, 0x72, 0x6f, 0x75, - 0x70, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x22, 0x14, 0x0a, 0x12, 0x42, 0x61, 0x6e, 0x50, 0x72, 0x69, 0x76, - 0x61, 0x74, 0x65, 0x43, 0x68, 0x61, 0x74, 0x52, 0x65, 0x73, 0x70, 0x22, 0x62, 0x0a, 0x0c, 0x53, - 0x65, 0x74, 0x4d, 0x61, 0x73, 0x74, 0x65, 0x72, 0x52, 0x65, 0x71, 0x12, 0x18, 0x0a, 0x07, 0x47, - 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x47, 0x72, - 0x6f, 0x75, 0x70, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x20, 0x0a, - 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x22, - 0x0f, 0x0a, 0x0d, 0x53, 0x65, 0x74, 0x4d, 0x61, 0x73, 0x74, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, - 0x22, 0x4c, 0x0a, 0x0e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, - 0x65, 0x71, 0x12, 0x18, 0x0a, 0x07, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x07, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x0b, - 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x22, 0x11, - 0x0a, 0x0f, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, - 0x70, 0x32, 0xa5, 0x0b, 0x0a, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x3c, 0x0a, 0x0b, 0x63, - 0x72, 0x65, 0x61, 0x74, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x15, 0x2e, 0x67, 0x72, 0x6f, - 0x75, 0x70, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, - 0x71, 0x1a, 0x16, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, - 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x12, 0x36, 0x0a, 0x09, 0x6a, 0x6f, 0x69, - 0x6e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x13, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x4a, - 0x6f, 0x69, 0x6e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x1a, 0x14, 0x2e, 0x67, 0x72, - 0x6f, 0x75, 0x70, 0x2e, 0x4a, 0x6f, 0x69, 0x6e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, - 0x70, 0x12, 0x36, 0x0a, 0x09, 0x71, 0x75, 0x69, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x13, - 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x51, 0x75, 0x69, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, - 0x52, 0x65, 0x71, 0x1a, 0x14, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x51, 0x75, 0x69, 0x74, - 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x12, 0x42, 0x0a, 0x0d, 0x67, 0x65, 0x74, - 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x17, 0x2e, 0x67, 0x72, 0x6f, + 0x44, 0x22, 0x6b, 0x0a, 0x15, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x65, 0x47, 0x72, 0x6f, 0x75, + 0x70, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x71, 0x12, 0x18, 0x0a, 0x07, 0x47, 0x72, + 0x6f, 0x75, 0x70, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x47, 0x72, 0x6f, + 0x75, 0x70, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x20, 0x0a, 0x0b, + 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x22, 0x18, + 0x0a, 0x16, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x53, 0x74, + 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x22, 0x86, 0x01, 0x0a, 0x12, 0x4f, 0x70, 0x65, + 0x72, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x52, 0x6f, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x12, + 0x18, 0x0a, 0x07, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x07, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x55, 0x73, 0x65, + 0x72, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, + 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x52, 0x6f, 0x6c, 0x65, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x52, 0x6f, 0x6c, 0x65, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, + 0x20, 0x0a, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, + 0x44, 0x22, 0x15, 0x0a, 0x13, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, + 0x52, 0x6f, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x22, 0x4c, 0x0a, 0x0e, 0x44, 0x65, 0x6c, 0x65, + 0x74, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x12, 0x18, 0x0a, 0x07, 0x47, 0x72, + 0x6f, 0x75, 0x70, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x47, 0x72, 0x6f, + 0x75, 0x70, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x22, 0x11, 0x0a, 0x0f, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, + 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x22, 0x4d, 0x0a, 0x0f, 0x47, 0x65, 0x74, + 0x47, 0x72, 0x6f, 0x75, 0x70, 0x42, 0x79, 0x49, 0x64, 0x52, 0x65, 0x71, 0x12, 0x18, 0x0a, 0x07, + 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x47, + 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x4f, 0x70, 0x65, + 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x22, 0x4e, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x47, + 0x72, 0x6f, 0x75, 0x70, 0x42, 0x79, 0x49, 0x64, 0x52, 0x65, 0x73, 0x70, 0x12, 0x3a, 0x0a, 0x09, + 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1c, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, + 0x61, 0x6d, 0x73, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x09, 0x47, + 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x32, 0xc3, 0x0b, 0x0a, 0x05, 0x67, 0x72, 0x6f, + 0x75, 0x70, 0x12, 0x3c, 0x0a, 0x0b, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x47, 0x72, 0x6f, 0x75, + 0x70, 0x12, 0x15, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, + 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x1a, 0x16, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, + 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, + 0x12, 0x36, 0x0a, 0x09, 0x6a, 0x6f, 0x69, 0x6e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x13, 0x2e, + 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x4a, 0x6f, 0x69, 0x6e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, + 0x65, 0x71, 0x1a, 0x14, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x4a, 0x6f, 0x69, 0x6e, 0x47, + 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x12, 0x36, 0x0a, 0x09, 0x71, 0x75, 0x69, 0x74, + 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x13, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x51, 0x75, + 0x69, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x1a, 0x14, 0x2e, 0x67, 0x72, 0x6f, + 0x75, 0x70, 0x2e, 0x51, 0x75, 0x69, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, + 0x12, 0x42, 0x0a, 0x0d, 0x67, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x49, 0x6e, 0x66, + 0x6f, 0x12, 0x17, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, + 0x75, 0x70, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x1a, 0x18, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x49, 0x6e, 0x66, 0x6f, - 0x52, 0x65, 0x71, 0x1a, 0x18, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x65, 0x74, 0x47, - 0x72, 0x6f, 0x75, 0x70, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x12, 0x3f, 0x0a, - 0x0c, 0x73, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x16, 0x2e, - 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x53, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, - 0x66, 0x6f, 0x52, 0x65, 0x71, 0x1a, 0x17, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x53, 0x65, - 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x12, 0x60, - 0x0a, 0x17, 0x67, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x21, 0x2e, 0x67, 0x72, 0x6f, 0x75, - 0x70, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x22, 0x2e, 0x67, - 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x70, 0x70, - 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, - 0x12, 0x51, 0x0a, 0x12, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, - 0x70, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x12, 0x1c, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x54, - 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4f, 0x77, 0x6e, 0x65, - 0x72, 0x52, 0x65, 0x71, 0x1a, 0x1d, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x54, 0x72, 0x61, - 0x6e, 0x73, 0x66, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x52, - 0x65, 0x73, 0x70, 0x12, 0x63, 0x0a, 0x18, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x70, 0x70, 0x6c, - 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, - 0x22, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x70, 0x70, - 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x52, 0x65, 0x71, 0x1a, 0x23, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x72, 0x6f, 0x75, - 0x70, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, - 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x51, 0x0a, 0x12, 0x67, 0x65, 0x74, 0x47, - 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x1c, - 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, - 0x65, 0x6d, 0x62, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x1d, 0x2e, 0x67, - 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, - 0x62, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x54, 0x0a, 0x13, 0x67, - 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x49, 0x6e, - 0x66, 0x6f, 0x12, 0x1d, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x72, - 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, - 0x71, 0x1a, 0x1e, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, - 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, - 0x70, 0x12, 0x48, 0x0a, 0x0f, 0x6b, 0x69, 0x63, 0x6b, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, - 0x6d, 0x62, 0x65, 0x72, 0x12, 0x19, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x4b, 0x69, 0x63, - 0x6b, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x65, 0x71, 0x1a, - 0x1a, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x4b, 0x69, 0x63, 0x6b, 0x47, 0x72, 0x6f, 0x75, - 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x12, 0x51, 0x0a, 0x12, 0x67, + 0x52, 0x65, 0x73, 0x70, 0x12, 0x3f, 0x0a, 0x0c, 0x73, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, + 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x16, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x53, 0x65, 0x74, + 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x1a, 0x17, 0x2e, 0x67, + 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x53, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x66, + 0x6f, 0x52, 0x65, 0x73, 0x70, 0x12, 0x60, 0x0a, 0x17, 0x67, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, + 0x70, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x69, 0x73, 0x74, + 0x12, 0x21, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, + 0x70, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x69, 0x73, 0x74, + 0x52, 0x65, 0x71, 0x1a, 0x22, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x65, 0x74, 0x47, + 0x72, 0x6f, 0x75, 0x70, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4c, + 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x51, 0x0a, 0x12, 0x74, 0x72, 0x61, 0x6e, 0x73, + 0x66, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x12, 0x1c, 0x2e, + 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x47, 0x72, + 0x6f, 0x75, 0x70, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x52, 0x65, 0x71, 0x1a, 0x1d, 0x2e, 0x67, 0x72, + 0x6f, 0x75, 0x70, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, + 0x70, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x12, 0x63, 0x0a, 0x18, 0x67, 0x72, + 0x6f, 0x75, 0x70, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x22, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47, + 0x72, 0x6f, 0x75, 0x70, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x23, 0x2e, 0x67, 0x72, 0x6f, + 0x75, 0x70, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, + 0x51, 0x0a, 0x12, 0x67, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, + 0x72, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x1c, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x65, + 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, + 0x52, 0x65, 0x71, 0x1a, 0x1d, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x65, 0x74, 0x47, + 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, + 0x73, 0x70, 0x12, 0x54, 0x0a, 0x13, 0x67, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, + 0x6d, 0x62, 0x65, 0x72, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1d, 0x2e, 0x67, 0x72, 0x6f, 0x75, + 0x70, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, + 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x1a, 0x1e, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, + 0x2e, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, + 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x12, 0x48, 0x0a, 0x0f, 0x6b, 0x69, 0x63, 0x6b, + 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x19, 0x2e, 0x67, 0x72, + 0x6f, 0x75, 0x70, 0x2e, 0x4b, 0x69, 0x63, 0x6b, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, + 0x62, 0x65, 0x72, 0x52, 0x65, 0x71, 0x1a, 0x1a, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x4b, + 0x69, 0x63, 0x6b, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x65, + 0x73, 0x70, 0x12, 0x51, 0x0a, 0x12, 0x67, 0x65, 0x74, 0x4a, 0x6f, 0x69, 0x6e, 0x65, 0x64, 0x47, + 0x72, 0x6f, 0x75, 0x70, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x1c, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, + 0x2e, 0x47, 0x65, 0x74, 0x4a, 0x6f, 0x69, 0x6e, 0x65, 0x64, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4c, + 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x1d, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x65, 0x74, 0x4a, 0x6f, 0x69, 0x6e, 0x65, 0x64, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4c, 0x69, 0x73, - 0x74, 0x12, 0x1c, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x65, 0x74, 0x4a, 0x6f, 0x69, - 0x6e, 0x65, 0x64, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x1a, - 0x1d, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x65, 0x74, 0x4a, 0x6f, 0x69, 0x6e, 0x65, - 0x64, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x4e, - 0x0a, 0x11, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x54, 0x6f, 0x47, 0x72, - 0x6f, 0x75, 0x70, 0x12, 0x1b, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x49, 0x6e, 0x76, 0x69, - 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x54, 0x6f, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, - 0x1a, 0x1c, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x55, - 0x73, 0x65, 0x72, 0x54, 0x6f, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x12, 0x4e, - 0x0a, 0x11, 0x67, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x6c, 0x6c, 0x4d, 0x65, 0x6d, - 0x62, 0x65, 0x72, 0x12, 0x1b, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x65, 0x74, 0x47, - 0x72, 0x6f, 0x75, 0x70, 0x41, 0x6c, 0x6c, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x65, 0x71, - 0x1a, 0x1c, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, - 0x70, 0x41, 0x6c, 0x6c, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x12, 0x33, - 0x0a, 0x08, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x12, 0x2e, 0x67, 0x72, 0x6f, - 0x75, 0x70, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x1a, 0x13, - 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, - 0x65, 0x73, 0x70, 0x12, 0x36, 0x0a, 0x09, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, - 0x12, 0x13, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, - 0x70, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x14, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x65, - 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x52, 0x65, 0x73, 0x70, 0x12, 0x3f, 0x0a, 0x0c, 0x42, - 0x61, 0x6e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x43, 0x68, 0x61, 0x74, 0x12, 0x16, 0x2e, 0x67, 0x72, - 0x6f, 0x75, 0x70, 0x2e, 0x42, 0x61, 0x6e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x43, 0x68, 0x61, 0x74, - 0x52, 0x65, 0x71, 0x1a, 0x17, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x42, 0x61, 0x6e, 0x47, - 0x72, 0x6f, 0x75, 0x70, 0x43, 0x68, 0x61, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x45, 0x0a, 0x0e, - 0x42, 0x61, 0x6e, 0x50, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x43, 0x68, 0x61, 0x74, 0x12, 0x18, - 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x42, 0x61, 0x6e, 0x50, 0x72, 0x69, 0x76, 0x61, 0x74, - 0x65, 0x43, 0x68, 0x61, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x19, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, - 0x2e, 0x42, 0x61, 0x6e, 0x50, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x43, 0x68, 0x61, 0x74, 0x52, - 0x65, 0x73, 0x70, 0x12, 0x36, 0x0a, 0x09, 0x53, 0x65, 0x74, 0x4d, 0x61, 0x73, 0x74, 0x65, 0x72, - 0x12, 0x13, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x53, 0x65, 0x74, 0x4d, 0x61, 0x73, 0x74, - 0x65, 0x72, 0x52, 0x65, 0x71, 0x1a, 0x14, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x53, 0x65, - 0x74, 0x4d, 0x61, 0x73, 0x74, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x12, 0x3c, 0x0a, 0x0b, 0x44, - 0x65, 0x6c, 0x65, 0x74, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x15, 0x2e, 0x67, 0x72, 0x6f, - 0x75, 0x70, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, - 0x71, 0x1a, 0x16, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, - 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x42, 0x0f, 0x5a, 0x0d, 0x2e, 0x2f, 0x67, - 0x72, 0x6f, 0x75, 0x70, 0x3b, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x33, + 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x4e, 0x0a, 0x11, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x55, + 0x73, 0x65, 0x72, 0x54, 0x6f, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x1b, 0x2e, 0x67, 0x72, 0x6f, + 0x75, 0x70, 0x2e, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x54, 0x6f, 0x47, + 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, + 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x54, 0x6f, 0x47, 0x72, 0x6f, 0x75, + 0x70, 0x52, 0x65, 0x73, 0x70, 0x12, 0x4e, 0x0a, 0x11, 0x67, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, + 0x70, 0x41, 0x6c, 0x6c, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x1b, 0x2e, 0x67, 0x72, 0x6f, + 0x75, 0x70, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x6c, 0x6c, 0x4d, 0x65, + 0x6d, 0x62, 0x65, 0x72, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, + 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x6c, 0x6c, 0x4d, 0x65, 0x6d, 0x62, 0x65, + 0x72, 0x52, 0x65, 0x73, 0x70, 0x12, 0x3f, 0x0a, 0x0c, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, + 0x70, 0x42, 0x79, 0x49, 0x64, 0x12, 0x16, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x65, + 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x42, 0x79, 0x49, 0x64, 0x52, 0x65, 0x71, 0x1a, 0x17, 0x2e, + 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x42, 0x79, + 0x49, 0x64, 0x52, 0x65, 0x73, 0x70, 0x12, 0x33, 0x0a, 0x08, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, + 0x75, 0x70, 0x12, 0x12, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x72, + 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x1a, 0x13, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47, + 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x12, 0x36, 0x0a, 0x09, 0x47, + 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x12, 0x13, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, + 0x2e, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x14, 0x2e, + 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x52, + 0x65, 0x73, 0x70, 0x12, 0x51, 0x0a, 0x12, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x65, 0x47, 0x72, + 0x6f, 0x75, 0x70, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1c, 0x2e, 0x67, 0x72, 0x6f, 0x75, + 0x70, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x53, 0x74, + 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x1d, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, + 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x53, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x12, 0x48, 0x0a, 0x0f, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, + 0x65, 0x55, 0x73, 0x65, 0x72, 0x52, 0x6f, 0x6c, 0x65, 0x12, 0x19, 0x2e, 0x67, 0x72, 0x6f, 0x75, + 0x70, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x52, 0x6f, 0x6c, + 0x65, 0x52, 0x65, 0x71, 0x1a, 0x1a, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x4f, 0x70, 0x65, + 0x72, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x52, 0x6f, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, + 0x12, 0x3c, 0x0a, 0x0b, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, + 0x15, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x47, 0x72, + 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x1a, 0x16, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x44, + 0x65, 0x6c, 0x65, 0x74, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x42, 0x0f, + 0x5a, 0x0d, 0x2e, 0x2f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x3b, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x62, + 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -3146,14 +3181,14 @@ var file_group_group_proto_goTypes = []interface{}{ (*GetGroupsReq)(nil), // 33: group.GetGroupsReq (*GetGroupsResp)(nil), // 34: group.GetGroupsResp (*GetGroupMemberReq)(nil), // 35: group.GetGroupMemberReq - (*BanGroupChatReq)(nil), // 36: group.BanGroupChatReq - (*BanGroupChatResp)(nil), // 37: group.BanGroupChatResp - (*BanPrivateChatReq)(nil), // 38: group.BanPrivateChatReq - (*BanPrivateChatResp)(nil), // 39: group.BanPrivateChatResp - (*SetMasterReq)(nil), // 40: group.SetMasterReq - (*SetMasterResp)(nil), // 41: group.SetMasterResp - (*DeleteGroupReq)(nil), // 42: group.DeleteGroupReq - (*DeleteGroupResp)(nil), // 43: group.DeleteGroupResp + (*OperateGroupStatusReq)(nil), // 36: group.OperateGroupStatusReq + (*OperateGroupStatusResp)(nil), // 37: group.OperateGroupStatusResp + (*OperateUserRoleReq)(nil), // 38: group.OperateUserRoleReq + (*OperateUserRoleResp)(nil), // 39: group.OperateUserRoleResp + (*DeleteGroupReq)(nil), // 40: group.DeleteGroupReq + (*DeleteGroupResp)(nil), // 41: group.DeleteGroupResp + (*GetGroupByIdReq)(nil), // 42: group.GetGroupByIdReq + (*GetGroupByIdResp)(nil), // 43: group.GetGroupByIdResp (*sdk_ws.GroupInfo)(nil), // 44: server_api_params.GroupInfo (*sdk_ws.GroupRequest)(nil), // 45: server_api_params.GroupRequest (*sdk_ws.GroupMemberFullInfo)(nil), // 46: server_api_params.GroupMemberFullInfo @@ -3183,51 +3218,52 @@ var file_group_group_proto_depIdxs = []int32{ 47, // 20: group.GetGroupsReq.Pagination:type_name -> server_api_params.RequestPagination 44, // 21: group.GetGroupsResp.GroupInfo:type_name -> server_api_params.GroupInfo 47, // 22: group.GetGroupsResp.Pagination:type_name -> server_api_params.RequestPagination - 2, // 23: group.group.createGroup:input_type -> group.CreateGroupReq - 12, // 24: group.group.joinGroup:input_type -> group.JoinGroupReq - 16, // 25: group.group.quitGroup:input_type -> group.QuitGroupReq - 4, // 26: group.group.getGroupsInfo:input_type -> group.GetGroupsInfoReq - 6, // 27: group.group.setGroupInfo:input_type -> group.SetGroupInfoReq - 8, // 28: group.group.getGroupApplicationList:input_type -> group.GetGroupApplicationListReq - 10, // 29: group.group.transferGroupOwner:input_type -> group.TransferGroupOwnerReq - 14, // 30: group.group.groupApplicationResponse:input_type -> group.GroupApplicationResponseReq - 18, // 31: group.group.getGroupMemberList:input_type -> group.GetGroupMemberListReq - 20, // 32: group.group.getGroupMembersInfo:input_type -> group.GetGroupMembersInfoReq - 22, // 33: group.group.kickGroupMember:input_type -> group.KickGroupMemberReq - 25, // 34: group.group.getJoinedGroupList:input_type -> group.GetJoinedGroupListReq - 27, // 35: group.group.inviteUserToGroup:input_type -> group.InviteUserToGroupReq - 29, // 36: group.group.getGroupAllMember:input_type -> group.GetGroupAllMemberReq - 31, // 37: group.group.GetGroup:input_type -> group.GetGroupReq - 33, // 38: group.group.GetGroups:input_type -> group.GetGroupsReq - 36, // 39: group.group.BanGroupChat:input_type -> group.BanGroupChatReq - 38, // 40: group.group.BanPrivateChat:input_type -> group.BanPrivateChatReq - 40, // 41: group.group.SetMaster:input_type -> group.SetMasterReq - 42, // 42: group.group.DeleteGroup:input_type -> group.DeleteGroupReq - 3, // 43: group.group.createGroup:output_type -> group.CreateGroupResp - 13, // 44: group.group.joinGroup:output_type -> group.JoinGroupResp - 17, // 45: group.group.quitGroup:output_type -> group.QuitGroupResp - 5, // 46: group.group.getGroupsInfo:output_type -> group.GetGroupsInfoResp - 7, // 47: group.group.setGroupInfo:output_type -> group.SetGroupInfoResp - 9, // 48: group.group.getGroupApplicationList:output_type -> group.GetGroupApplicationListResp - 11, // 49: group.group.transferGroupOwner:output_type -> group.TransferGroupOwnerResp - 15, // 50: group.group.groupApplicationResponse:output_type -> group.GroupApplicationResponseResp - 19, // 51: group.group.getGroupMemberList:output_type -> group.GetGroupMemberListResp - 21, // 52: group.group.getGroupMembersInfo:output_type -> group.GetGroupMembersInfoResp - 24, // 53: group.group.kickGroupMember:output_type -> group.KickGroupMemberResp - 26, // 54: group.group.getJoinedGroupList:output_type -> group.GetJoinedGroupListResp - 28, // 55: group.group.inviteUserToGroup:output_type -> group.InviteUserToGroupResp - 30, // 56: group.group.getGroupAllMember:output_type -> group.GetGroupAllMemberResp - 32, // 57: group.group.GetGroup:output_type -> group.GetGroupResp - 34, // 58: group.group.GetGroups:output_type -> group.GetGroupsResp - 37, // 59: group.group.BanGroupChat:output_type -> group.BanGroupChatResp - 39, // 60: group.group.BanPrivateChat:output_type -> group.BanPrivateChatResp - 41, // 61: group.group.SetMaster:output_type -> group.SetMasterResp - 43, // 62: group.group.DeleteGroup:output_type -> group.DeleteGroupResp - 43, // [43:63] is the sub-list for method output_type - 23, // [23:43] is the sub-list for method input_type - 23, // [23:23] is the sub-list for extension type_name - 23, // [23:23] is the sub-list for extension extendee - 0, // [0:23] is the sub-list for field type_name + 44, // 23: group.GetGroupByIdResp.GroupInfo:type_name -> server_api_params.GroupInfo + 2, // 24: group.group.createGroup:input_type -> group.CreateGroupReq + 12, // 25: group.group.joinGroup:input_type -> group.JoinGroupReq + 16, // 26: group.group.quitGroup:input_type -> group.QuitGroupReq + 4, // 27: group.group.getGroupsInfo:input_type -> group.GetGroupsInfoReq + 6, // 28: group.group.setGroupInfo:input_type -> group.SetGroupInfoReq + 8, // 29: group.group.getGroupApplicationList:input_type -> group.GetGroupApplicationListReq + 10, // 30: group.group.transferGroupOwner:input_type -> group.TransferGroupOwnerReq + 14, // 31: group.group.groupApplicationResponse:input_type -> group.GroupApplicationResponseReq + 18, // 32: group.group.getGroupMemberList:input_type -> group.GetGroupMemberListReq + 20, // 33: group.group.getGroupMembersInfo:input_type -> group.GetGroupMembersInfoReq + 22, // 34: group.group.kickGroupMember:input_type -> group.KickGroupMemberReq + 25, // 35: group.group.getJoinedGroupList:input_type -> group.GetJoinedGroupListReq + 27, // 36: group.group.inviteUserToGroup:input_type -> group.InviteUserToGroupReq + 29, // 37: group.group.getGroupAllMember:input_type -> group.GetGroupAllMemberReq + 42, // 38: group.group.GetGroupById:input_type -> group.GetGroupByIdReq + 31, // 39: group.group.GetGroup:input_type -> group.GetGroupReq + 33, // 40: group.group.GetGroups:input_type -> group.GetGroupsReq + 36, // 41: group.group.OperateGroupStatus:input_type -> group.OperateGroupStatusReq + 38, // 42: group.group.OperateUserRole:input_type -> group.OperateUserRoleReq + 40, // 43: group.group.DeleteGroup:input_type -> group.DeleteGroupReq + 3, // 44: group.group.createGroup:output_type -> group.CreateGroupResp + 13, // 45: group.group.joinGroup:output_type -> group.JoinGroupResp + 17, // 46: group.group.quitGroup:output_type -> group.QuitGroupResp + 5, // 47: group.group.getGroupsInfo:output_type -> group.GetGroupsInfoResp + 7, // 48: group.group.setGroupInfo:output_type -> group.SetGroupInfoResp + 9, // 49: group.group.getGroupApplicationList:output_type -> group.GetGroupApplicationListResp + 11, // 50: group.group.transferGroupOwner:output_type -> group.TransferGroupOwnerResp + 15, // 51: group.group.groupApplicationResponse:output_type -> group.GroupApplicationResponseResp + 19, // 52: group.group.getGroupMemberList:output_type -> group.GetGroupMemberListResp + 21, // 53: group.group.getGroupMembersInfo:output_type -> group.GetGroupMembersInfoResp + 24, // 54: group.group.kickGroupMember:output_type -> group.KickGroupMemberResp + 26, // 55: group.group.getJoinedGroupList:output_type -> group.GetJoinedGroupListResp + 28, // 56: group.group.inviteUserToGroup:output_type -> group.InviteUserToGroupResp + 30, // 57: group.group.getGroupAllMember:output_type -> group.GetGroupAllMemberResp + 43, // 58: group.group.GetGroupById:output_type -> group.GetGroupByIdResp + 32, // 59: group.group.GetGroup:output_type -> group.GetGroupResp + 34, // 60: group.group.GetGroups:output_type -> group.GetGroupsResp + 37, // 61: group.group.OperateGroupStatus:output_type -> group.OperateGroupStatusResp + 39, // 62: group.group.OperateUserRole:output_type -> group.OperateUserRoleResp + 41, // 63: group.group.DeleteGroup:output_type -> group.DeleteGroupResp + 44, // [44:64] is the sub-list for method output_type + 24, // [24:44] is the sub-list for method input_type + 24, // [24:24] is the sub-list for extension type_name + 24, // [24:24] is the sub-list for extension extendee + 0, // [0:24] is the sub-list for field type_name } func init() { file_group_group_proto_init() } @@ -3669,7 +3705,7 @@ func file_group_group_proto_init() { } } file_group_group_proto_msgTypes[36].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*BanGroupChatReq); i { + switch v := v.(*OperateGroupStatusReq); i { case 0: return &v.state case 1: @@ -3681,7 +3717,7 @@ func file_group_group_proto_init() { } } file_group_group_proto_msgTypes[37].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*BanGroupChatResp); i { + switch v := v.(*OperateGroupStatusResp); i { case 0: return &v.state case 1: @@ -3693,7 +3729,7 @@ func file_group_group_proto_init() { } } file_group_group_proto_msgTypes[38].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*BanPrivateChatReq); i { + switch v := v.(*OperateUserRoleReq); i { case 0: return &v.state case 1: @@ -3705,7 +3741,7 @@ func file_group_group_proto_init() { } } file_group_group_proto_msgTypes[39].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*BanPrivateChatResp); i { + switch v := v.(*OperateUserRoleResp); i { case 0: return &v.state case 1: @@ -3717,7 +3753,7 @@ func file_group_group_proto_init() { } } file_group_group_proto_msgTypes[40].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SetMasterReq); i { + switch v := v.(*DeleteGroupReq); i { case 0: return &v.state case 1: @@ -3729,7 +3765,7 @@ func file_group_group_proto_init() { } } file_group_group_proto_msgTypes[41].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SetMasterResp); i { + switch v := v.(*DeleteGroupResp); i { case 0: return &v.state case 1: @@ -3741,7 +3777,7 @@ func file_group_group_proto_init() { } } file_group_group_proto_msgTypes[42].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DeleteGroupReq); i { + switch v := v.(*GetGroupByIdReq); i { case 0: return &v.state case 1: @@ -3753,7 +3789,7 @@ func file_group_group_proto_init() { } } file_group_group_proto_msgTypes[43].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DeleteGroupResp); i { + switch v := v.(*GetGroupByIdResp); i { case 0: return &v.state case 1: @@ -3811,11 +3847,11 @@ type GroupClient interface { GetJoinedGroupList(ctx context.Context, in *GetJoinedGroupListReq, opts ...grpc.CallOption) (*GetJoinedGroupListResp, error) InviteUserToGroup(ctx context.Context, in *InviteUserToGroupReq, opts ...grpc.CallOption) (*InviteUserToGroupResp, error) GetGroupAllMember(ctx context.Context, in *GetGroupAllMemberReq, opts ...grpc.CallOption) (*GetGroupAllMemberResp, error) + GetGroupById(ctx context.Context, in *GetGroupByIdReq, opts ...grpc.CallOption) (*GetGroupByIdResp, error) GetGroup(ctx context.Context, in *GetGroupReq, opts ...grpc.CallOption) (*GetGroupResp, error) GetGroups(ctx context.Context, in *GetGroupsReq, opts ...grpc.CallOption) (*GetGroupsResp, error) - BanGroupChat(ctx context.Context, in *BanGroupChatReq, opts ...grpc.CallOption) (*BanGroupChatResp, error) - BanPrivateChat(ctx context.Context, in *BanPrivateChatReq, opts ...grpc.CallOption) (*BanPrivateChatResp, error) - SetMaster(ctx context.Context, in *SetMasterReq, opts ...grpc.CallOption) (*SetMasterResp, error) + OperateGroupStatus(ctx context.Context, in *OperateGroupStatusReq, opts ...grpc.CallOption) (*OperateGroupStatusResp, error) + OperateUserRole(ctx context.Context, in *OperateUserRoleReq, opts ...grpc.CallOption) (*OperateUserRoleResp, error) DeleteGroup(ctx context.Context, in *DeleteGroupReq, opts ...grpc.CallOption) (*DeleteGroupResp, error) } @@ -3953,45 +3989,45 @@ func (c *groupClient) GetGroupAllMember(ctx context.Context, in *GetGroupAllMemb return out, nil } -func (c *groupClient) GetGroup(ctx context.Context, in *GetGroupReq, opts ...grpc.CallOption) (*GetGroupResp, error) { - out := new(GetGroupResp) - err := c.cc.Invoke(ctx, "/group.group/GetGroup", in, out, opts...) +func (c *groupClient) GetGroupById(ctx context.Context, in *GetGroupByIdReq, opts ...grpc.CallOption) (*GetGroupByIdResp, error) { + out := new(GetGroupByIdResp) + err := c.cc.Invoke(ctx, "/group.group/GetGroupById", in, out, opts...) if err != nil { return nil, err } return out, nil } -func (c *groupClient) GetGroups(ctx context.Context, in *GetGroupsReq, opts ...grpc.CallOption) (*GetGroupsResp, error) { - out := new(GetGroupsResp) - err := c.cc.Invoke(ctx, "/group.group/GetGroups", in, out, opts...) +func (c *groupClient) GetGroup(ctx context.Context, in *GetGroupReq, opts ...grpc.CallOption) (*GetGroupResp, error) { + out := new(GetGroupResp) + err := c.cc.Invoke(ctx, "/group.group/GetGroup", in, out, opts...) if err != nil { return nil, err } return out, nil } -func (c *groupClient) BanGroupChat(ctx context.Context, in *BanGroupChatReq, opts ...grpc.CallOption) (*BanGroupChatResp, error) { - out := new(BanGroupChatResp) - err := c.cc.Invoke(ctx, "/group.group/BanGroupChat", in, out, opts...) +func (c *groupClient) GetGroups(ctx context.Context, in *GetGroupsReq, opts ...grpc.CallOption) (*GetGroupsResp, error) { + out := new(GetGroupsResp) + err := c.cc.Invoke(ctx, "/group.group/GetGroups", in, out, opts...) if err != nil { return nil, err } return out, nil } -func (c *groupClient) BanPrivateChat(ctx context.Context, in *BanPrivateChatReq, opts ...grpc.CallOption) (*BanPrivateChatResp, error) { - out := new(BanPrivateChatResp) - err := c.cc.Invoke(ctx, "/group.group/BanPrivateChat", in, out, opts...) +func (c *groupClient) OperateGroupStatus(ctx context.Context, in *OperateGroupStatusReq, opts ...grpc.CallOption) (*OperateGroupStatusResp, error) { + out := new(OperateGroupStatusResp) + err := c.cc.Invoke(ctx, "/group.group/OperateGroupStatus", in, out, opts...) if err != nil { return nil, err } return out, nil } -func (c *groupClient) SetMaster(ctx context.Context, in *SetMasterReq, opts ...grpc.CallOption) (*SetMasterResp, error) { - out := new(SetMasterResp) - err := c.cc.Invoke(ctx, "/group.group/SetMaster", in, out, opts...) +func (c *groupClient) OperateUserRole(ctx context.Context, in *OperateUserRoleReq, opts ...grpc.CallOption) (*OperateUserRoleResp, error) { + out := new(OperateUserRoleResp) + err := c.cc.Invoke(ctx, "/group.group/OperateUserRole", in, out, opts...) if err != nil { return nil, err } @@ -4023,11 +4059,11 @@ type GroupServer interface { GetJoinedGroupList(context.Context, *GetJoinedGroupListReq) (*GetJoinedGroupListResp, error) InviteUserToGroup(context.Context, *InviteUserToGroupReq) (*InviteUserToGroupResp, error) GetGroupAllMember(context.Context, *GetGroupAllMemberReq) (*GetGroupAllMemberResp, error) + GetGroupById(context.Context, *GetGroupByIdReq) (*GetGroupByIdResp, error) GetGroup(context.Context, *GetGroupReq) (*GetGroupResp, error) GetGroups(context.Context, *GetGroupsReq) (*GetGroupsResp, error) - BanGroupChat(context.Context, *BanGroupChatReq) (*BanGroupChatResp, error) - BanPrivateChat(context.Context, *BanPrivateChatReq) (*BanPrivateChatResp, error) - SetMaster(context.Context, *SetMasterReq) (*SetMasterResp, error) + OperateGroupStatus(context.Context, *OperateGroupStatusReq) (*OperateGroupStatusResp, error) + OperateUserRole(context.Context, *OperateUserRoleReq) (*OperateUserRoleResp, error) DeleteGroup(context.Context, *DeleteGroupReq) (*DeleteGroupResp, error) } @@ -4077,20 +4113,20 @@ func (*UnimplementedGroupServer) InviteUserToGroup(context.Context, *InviteUserT func (*UnimplementedGroupServer) GetGroupAllMember(context.Context, *GetGroupAllMemberReq) (*GetGroupAllMemberResp, error) { return nil, status.Errorf(codes.Unimplemented, "method GetGroupAllMember not implemented") } +func (*UnimplementedGroupServer) GetGroupById(context.Context, *GetGroupByIdReq) (*GetGroupByIdResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetGroupById not implemented") +} func (*UnimplementedGroupServer) GetGroup(context.Context, *GetGroupReq) (*GetGroupResp, error) { return nil, status.Errorf(codes.Unimplemented, "method GetGroup not implemented") } func (*UnimplementedGroupServer) GetGroups(context.Context, *GetGroupsReq) (*GetGroupsResp, error) { return nil, status.Errorf(codes.Unimplemented, "method GetGroups not implemented") } -func (*UnimplementedGroupServer) BanGroupChat(context.Context, *BanGroupChatReq) (*BanGroupChatResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method BanGroupChat not implemented") +func (*UnimplementedGroupServer) OperateGroupStatus(context.Context, *OperateGroupStatusReq) (*OperateGroupStatusResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method OperateGroupStatus not implemented") } -func (*UnimplementedGroupServer) BanPrivateChat(context.Context, *BanPrivateChatReq) (*BanPrivateChatResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method BanPrivateChat not implemented") -} -func (*UnimplementedGroupServer) SetMaster(context.Context, *SetMasterReq) (*SetMasterResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method SetMaster not implemented") +func (*UnimplementedGroupServer) OperateUserRole(context.Context, *OperateUserRoleReq) (*OperateUserRoleResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method OperateUserRole not implemented") } func (*UnimplementedGroupServer) DeleteGroup(context.Context, *DeleteGroupReq) (*DeleteGroupResp, error) { return nil, status.Errorf(codes.Unimplemented, "method DeleteGroup not implemented") @@ -4352,92 +4388,92 @@ func _Group_GetGroupAllMember_Handler(srv interface{}, ctx context.Context, dec return interceptor(ctx, in, info, handler) } -func _Group_GetGroup_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(GetGroupReq) +func _Group_GetGroupById_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetGroupByIdReq) if err := dec(in); err != nil { return nil, err } if interceptor == nil { - return srv.(GroupServer).GetGroup(ctx, in) + return srv.(GroupServer).GetGroupById(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/group.group/GetGroup", + FullMethod: "/group.group/GetGroupById", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(GroupServer).GetGroup(ctx, req.(*GetGroupReq)) + return srv.(GroupServer).GetGroupById(ctx, req.(*GetGroupByIdReq)) } return interceptor(ctx, in, info, handler) } -func _Group_GetGroups_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(GetGroupsReq) +func _Group_GetGroup_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetGroupReq) if err := dec(in); err != nil { return nil, err } if interceptor == nil { - return srv.(GroupServer).GetGroups(ctx, in) + return srv.(GroupServer).GetGroup(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/group.group/GetGroups", + FullMethod: "/group.group/GetGroup", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(GroupServer).GetGroups(ctx, req.(*GetGroupsReq)) + return srv.(GroupServer).GetGroup(ctx, req.(*GetGroupReq)) } return interceptor(ctx, in, info, handler) } -func _Group_BanGroupChat_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(BanGroupChatReq) +func _Group_GetGroups_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetGroupsReq) if err := dec(in); err != nil { return nil, err } if interceptor == nil { - return srv.(GroupServer).BanGroupChat(ctx, in) + return srv.(GroupServer).GetGroups(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/group.group/BanGroupChat", + FullMethod: "/group.group/GetGroups", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(GroupServer).BanGroupChat(ctx, req.(*BanGroupChatReq)) + return srv.(GroupServer).GetGroups(ctx, req.(*GetGroupsReq)) } return interceptor(ctx, in, info, handler) } -func _Group_BanPrivateChat_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(BanPrivateChatReq) +func _Group_OperateGroupStatus_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(OperateGroupStatusReq) if err := dec(in); err != nil { return nil, err } if interceptor == nil { - return srv.(GroupServer).BanPrivateChat(ctx, in) + return srv.(GroupServer).OperateGroupStatus(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/group.group/BanPrivateChat", + FullMethod: "/group.group/OperateGroupStatus", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(GroupServer).BanPrivateChat(ctx, req.(*BanPrivateChatReq)) + return srv.(GroupServer).OperateGroupStatus(ctx, req.(*OperateGroupStatusReq)) } return interceptor(ctx, in, info, handler) } -func _Group_SetMaster_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(SetMasterReq) +func _Group_OperateUserRole_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(OperateUserRoleReq) if err := dec(in); err != nil { return nil, err } if interceptor == nil { - return srv.(GroupServer).SetMaster(ctx, in) + return srv.(GroupServer).OperateUserRole(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/group.group/SetMaster", + FullMethod: "/group.group/OperateUserRole", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(GroupServer).SetMaster(ctx, req.(*SetMasterReq)) + return srv.(GroupServer).OperateUserRole(ctx, req.(*OperateUserRoleReq)) } return interceptor(ctx, in, info, handler) } @@ -4520,6 +4556,10 @@ var _Group_serviceDesc = grpc.ServiceDesc{ MethodName: "getGroupAllMember", Handler: _Group_GetGroupAllMember_Handler, }, + { + MethodName: "GetGroupById", + Handler: _Group_GetGroupById_Handler, + }, { MethodName: "GetGroup", Handler: _Group_GetGroup_Handler, @@ -4529,16 +4569,12 @@ var _Group_serviceDesc = grpc.ServiceDesc{ Handler: _Group_GetGroups_Handler, }, { - MethodName: "BanGroupChat", - Handler: _Group_BanGroupChat_Handler, - }, - { - MethodName: "BanPrivateChat", - Handler: _Group_BanPrivateChat_Handler, + MethodName: "OperateGroupStatus", + Handler: _Group_OperateGroupStatus_Handler, }, { - MethodName: "SetMaster", - Handler: _Group_SetMaster_Handler, + MethodName: "OperateUserRole", + Handler: _Group_OperateUserRole_Handler, }, { MethodName: "DeleteGroup", diff --git a/pkg/proto/group/group.proto b/pkg/proto/group/group.proto index 9c7585efd..3983bee85 100644 --- a/pkg/proto/group/group.proto +++ b/pkg/proto/group/group.proto @@ -222,31 +222,24 @@ message GetGroupMemberReq { string OperationID = 2; } -message BanGroupChatReq { - string GroupId = 1; - string OperationID = 2; -} - -message BanGroupChatResp { - -} - -message BanPrivateChatReq { - string GroupId = 1; - string OperationID = 2; +message OperateGroupStatusReq { + string GroupId = 1; + int32 Status = 2; + string OperationID = 3; } -message BanPrivateChatResp { +message OperateGroupStatusResp { } -message SetMasterReq { +message OperateUserRoleReq { string GroupId = 1; string UserId = 2; - string OperationID = 3; + int32 RoleLevel = 3; + string OperationID = 4; } -message SetMasterResp { +message OperateUserRoleResp { } @@ -259,6 +252,15 @@ message DeleteGroupResp { } +message GetGroupByIdReq { + string GroupId = 1; + string OperationID = 2; +} + +message GetGroupByIdResp { + server_api_params.GroupInfo GroupInfo = 1; +} + service group{ rpc createGroup(CreateGroupReq) returns(CreateGroupResp); rpc joinGroup(JoinGroupReq) returns(JoinGroupResp); @@ -275,12 +277,11 @@ service group{ rpc inviteUserToGroup(InviteUserToGroupReq) returns (InviteUserToGroupResp); rpc getGroupAllMember(GetGroupAllMemberReq) returns(GetGroupAllMemberResp); - + rpc GetGroupById(GetGroupByIdReq) returns(GetGroupByIdResp); rpc GetGroup(GetGroupReq) returns(GetGroupResp); rpc GetGroups(GetGroupsReq) returns(GetGroupsResp); - rpc BanGroupChat(BanGroupChatReq) returns(BanGroupChatResp); - rpc BanPrivateChat(BanPrivateChatReq) returns(BanPrivateChatResp); - rpc SetMaster(SetMasterReq) returns(SetMasterResp); + rpc OperateGroupStatus(OperateGroupStatusReq) returns(OperateGroupStatusResp); + rpc OperateUserRole(OperateUserRoleReq) returns(OperateUserRoleResp); rpc DeleteGroup(DeleteGroupReq) returns(DeleteGroupResp); } diff --git a/pkg/proto/proto_dir.cfg b/pkg/proto/proto_dir.cfg index a9e94b499..eed106fb4 100644 --- a/pkg/proto/proto_dir.cfg +++ b/pkg/proto/proto_dir.cfg @@ -1,8 +1,9 @@ all_proto=( + statistics/statistics.proto # auth/auth.proto # friend/friend.proto - group/group.proto + # group/group.proto # user/user.proto # chat/chat.proto # push/push.proto diff --git a/pkg/proto/sdk_ws/ws.pb.go b/pkg/proto/sdk_ws/ws.pb.go index 50631d009..838827b8d 100644 --- a/pkg/proto/sdk_ws/ws.pb.go +++ b/pkg/proto/sdk_ws/ws.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.26.0 -// protoc v3.19.3 +// protoc-gen-go v1.27.1 +// protoc v3.15.5 // source: sdk_ws/ws.proto package server_api_params diff --git a/pkg/proto/statistics/statistics.pb.go b/pkg/proto/statistics/statistics.pb.go new file mode 100644 index 000000000..0e333d87c --- /dev/null +++ b/pkg/proto/statistics/statistics.pb.go @@ -0,0 +1,1530 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.27.1 +// protoc v3.15.5 +// source: statistics/statistics.proto + +package statistics + +import ( + sdk_ws "Open_IM/pkg/proto/sdk_ws" + context "context" + grpc "google.golang.org/grpc" + codes "google.golang.org/grpc/codes" + status "google.golang.org/grpc/status" + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + reflect "reflect" + sync "sync" +) + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +type StatisticsReq struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + From string `protobuf:"bytes,1,opt,name=from,proto3" json:"from,omitempty"` + To string `protobuf:"bytes,2,opt,name=to,proto3" json:"to,omitempty"` +} + +func (x *StatisticsReq) Reset() { + *x = StatisticsReq{} + if protoimpl.UnsafeEnabled { + mi := &file_statistics_statistics_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *StatisticsReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*StatisticsReq) ProtoMessage() {} + +func (x *StatisticsReq) ProtoReflect() protoreflect.Message { + mi := &file_statistics_statistics_proto_msgTypes[0] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use StatisticsReq.ProtoReflect.Descriptor instead. +func (*StatisticsReq) Descriptor() ([]byte, []int) { + return file_statistics_statistics_proto_rawDescGZIP(), []int{0} +} + +func (x *StatisticsReq) GetFrom() string { + if x != nil { + return x.From + } + return "" +} + +func (x *StatisticsReq) GetTo() string { + if x != nil { + return x.To + } + return "" +} + +type GetActiveUserReq struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Pagination *sdk_ws.ResponsePagination `protobuf:"bytes,1,opt,name=Pagination,proto3" json:"Pagination,omitempty"` + OperationID string `protobuf:"bytes,2,opt,name=OperationID,proto3" json:"OperationID,omitempty"` +} + +func (x *GetActiveUserReq) Reset() { + *x = GetActiveUserReq{} + if protoimpl.UnsafeEnabled { + mi := &file_statistics_statistics_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetActiveUserReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetActiveUserReq) ProtoMessage() {} + +func (x *GetActiveUserReq) ProtoReflect() protoreflect.Message { + mi := &file_statistics_statistics_proto_msgTypes[1] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetActiveUserReq.ProtoReflect.Descriptor instead. +func (*GetActiveUserReq) Descriptor() ([]byte, []int) { + return file_statistics_statistics_proto_rawDescGZIP(), []int{1} +} + +func (x *GetActiveUserReq) GetPagination() *sdk_ws.ResponsePagination { + if x != nil { + return x.Pagination + } + return nil +} + +func (x *GetActiveUserReq) GetOperationID() string { + if x != nil { + return x.OperationID + } + return "" +} + +type UserResp struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + NickName string `protobuf:"bytes,1,opt,name=NickName,proto3" json:"NickName,omitempty"` + UserId string `protobuf:"bytes,2,opt,name=UserId,proto3" json:"UserId,omitempty"` + MessageNum string `protobuf:"bytes,3,opt,name=MessageNum,proto3" json:"MessageNum,omitempty"` +} + +func (x *UserResp) Reset() { + *x = UserResp{} + if protoimpl.UnsafeEnabled { + mi := &file_statistics_statistics_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *UserResp) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*UserResp) ProtoMessage() {} + +func (x *UserResp) ProtoReflect() protoreflect.Message { + mi := &file_statistics_statistics_proto_msgTypes[2] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use UserResp.ProtoReflect.Descriptor instead. +func (*UserResp) Descriptor() ([]byte, []int) { + return file_statistics_statistics_proto_rawDescGZIP(), []int{2} +} + +func (x *UserResp) GetNickName() string { + if x != nil { + return x.NickName + } + return "" +} + +func (x *UserResp) GetUserId() string { + if x != nil { + return x.UserId + } + return "" +} + +func (x *UserResp) GetMessageNum() string { + if x != nil { + return x.MessageNum + } + return "" +} + +type GetActiveUserResp struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Users []*UserResp `protobuf:"bytes,1,rep,name=Users,proto3" json:"Users,omitempty"` + Pagination *sdk_ws.ResponsePagination `protobuf:"bytes,2,opt,name=Pagination,proto3" json:"Pagination,omitempty"` +} + +func (x *GetActiveUserResp) Reset() { + *x = GetActiveUserResp{} + if protoimpl.UnsafeEnabled { + mi := &file_statistics_statistics_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetActiveUserResp) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetActiveUserResp) ProtoMessage() {} + +func (x *GetActiveUserResp) ProtoReflect() protoreflect.Message { + mi := &file_statistics_statistics_proto_msgTypes[3] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetActiveUserResp.ProtoReflect.Descriptor instead. +func (*GetActiveUserResp) Descriptor() ([]byte, []int) { + return file_statistics_statistics_proto_rawDescGZIP(), []int{3} +} + +func (x *GetActiveUserResp) GetUsers() []*UserResp { + if x != nil { + return x.Users + } + return nil +} + +func (x *GetActiveUserResp) GetPagination() *sdk_ws.ResponsePagination { + if x != nil { + return x.Pagination + } + return nil +} + +type GetActiveGroupReq struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Pagination *sdk_ws.ResponsePagination `protobuf:"bytes,1,opt,name=Pagination,proto3" json:"Pagination,omitempty"` + OperationID string `protobuf:"bytes,2,opt,name=OperationID,proto3" json:"OperationID,omitempty"` +} + +func (x *GetActiveGroupReq) Reset() { + *x = GetActiveGroupReq{} + if protoimpl.UnsafeEnabled { + mi := &file_statistics_statistics_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetActiveGroupReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetActiveGroupReq) ProtoMessage() {} + +func (x *GetActiveGroupReq) ProtoReflect() protoreflect.Message { + mi := &file_statistics_statistics_proto_msgTypes[4] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetActiveGroupReq.ProtoReflect.Descriptor instead. +func (*GetActiveGroupReq) Descriptor() ([]byte, []int) { + return file_statistics_statistics_proto_rawDescGZIP(), []int{4} +} + +func (x *GetActiveGroupReq) GetPagination() *sdk_ws.ResponsePagination { + if x != nil { + return x.Pagination + } + return nil +} + +func (x *GetActiveGroupReq) GetOperationID() string { + if x != nil { + return x.OperationID + } + return "" +} + +type GroupResp struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + GroupName string `protobuf:"bytes,1,opt,name=GroupName,proto3" json:"GroupName,omitempty"` + GroupId string `protobuf:"bytes,2,opt,name=GroupId,proto3" json:"GroupId,omitempty"` + MessageNum string `protobuf:"bytes,3,opt,name=MessageNum,proto3" json:"MessageNum,omitempty"` +} + +func (x *GroupResp) Reset() { + *x = GroupResp{} + if protoimpl.UnsafeEnabled { + mi := &file_statistics_statistics_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GroupResp) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GroupResp) ProtoMessage() {} + +func (x *GroupResp) ProtoReflect() protoreflect.Message { + mi := &file_statistics_statistics_proto_msgTypes[5] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GroupResp.ProtoReflect.Descriptor instead. +func (*GroupResp) Descriptor() ([]byte, []int) { + return file_statistics_statistics_proto_rawDescGZIP(), []int{5} +} + +func (x *GroupResp) GetGroupName() string { + if x != nil { + return x.GroupName + } + return "" +} + +func (x *GroupResp) GetGroupId() string { + if x != nil { + return x.GroupId + } + return "" +} + +func (x *GroupResp) GetMessageNum() string { + if x != nil { + return x.MessageNum + } + return "" +} + +type GetActiveGroupResp struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Groups []*GroupResp `protobuf:"bytes,1,rep,name=Groups,proto3" json:"Groups,omitempty"` + Pagination *sdk_ws.ResponsePagination `protobuf:"bytes,2,opt,name=Pagination,proto3" json:"Pagination,omitempty"` +} + +func (x *GetActiveGroupResp) Reset() { + *x = GetActiveGroupResp{} + if protoimpl.UnsafeEnabled { + mi := &file_statistics_statistics_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetActiveGroupResp) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetActiveGroupResp) ProtoMessage() {} + +func (x *GetActiveGroupResp) ProtoReflect() protoreflect.Message { + mi := &file_statistics_statistics_proto_msgTypes[6] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetActiveGroupResp.ProtoReflect.Descriptor instead. +func (*GetActiveGroupResp) Descriptor() ([]byte, []int) { + return file_statistics_statistics_proto_rawDescGZIP(), []int{6} +} + +func (x *GetActiveGroupResp) GetGroups() []*GroupResp { + if x != nil { + return x.Groups + } + return nil +} + +func (x *GetActiveGroupResp) GetPagination() *sdk_ws.ResponsePagination { + if x != nil { + return x.Pagination + } + return nil +} + +type DateNumList struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Date string `protobuf:"bytes,1,opt,name=Date,proto3" json:"Date,omitempty"` + Num int32 `protobuf:"varint,2,opt,name=Num,proto3" json:"Num,omitempty"` +} + +func (x *DateNumList) Reset() { + *x = DateNumList{} + if protoimpl.UnsafeEnabled { + mi := &file_statistics_statistics_proto_msgTypes[7] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DateNumList) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DateNumList) ProtoMessage() {} + +func (x *DateNumList) ProtoReflect() protoreflect.Message { + mi := &file_statistics_statistics_proto_msgTypes[7] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use DateNumList.ProtoReflect.Descriptor instead. +func (*DateNumList) Descriptor() ([]byte, []int) { + return file_statistics_statistics_proto_rawDescGZIP(), []int{7} +} + +func (x *DateNumList) GetDate() string { + if x != nil { + return x.Date + } + return "" +} + +func (x *DateNumList) GetNum() int32 { + if x != nil { + return x.Num + } + return 0 +} + +type GetMessageStatisticsReq struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + StatisticsReq *StatisticsReq `protobuf:"bytes,1,opt,name=StatisticsReq,proto3" json:"StatisticsReq,omitempty"` + OperationID string `protobuf:"bytes,2,opt,name=OperationID,proto3" json:"OperationID,omitempty"` +} + +func (x *GetMessageStatisticsReq) Reset() { + *x = GetMessageStatisticsReq{} + if protoimpl.UnsafeEnabled { + mi := &file_statistics_statistics_proto_msgTypes[8] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetMessageStatisticsReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetMessageStatisticsReq) ProtoMessage() {} + +func (x *GetMessageStatisticsReq) ProtoReflect() protoreflect.Message { + mi := &file_statistics_statistics_proto_msgTypes[8] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetMessageStatisticsReq.ProtoReflect.Descriptor instead. +func (*GetMessageStatisticsReq) Descriptor() ([]byte, []int) { + return file_statistics_statistics_proto_rawDescGZIP(), []int{8} +} + +func (x *GetMessageStatisticsReq) GetStatisticsReq() *StatisticsReq { + if x != nil { + return x.StatisticsReq + } + return nil +} + +func (x *GetMessageStatisticsReq) GetOperationID() string { + if x != nil { + return x.OperationID + } + return "" +} + +type GetMessageStatisticsResp struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + PrivateMessageNum int32 `protobuf:"varint,1,opt,name=PrivateMessageNum,proto3" json:"PrivateMessageNum,omitempty"` + GroupMessageNum int32 `protobuf:"varint,2,opt,name=GroupMessageNum,proto3" json:"GroupMessageNum,omitempty"` + PrivateMessageNumList []*DateNumList `protobuf:"bytes,3,rep,name=PrivateMessageNumList,proto3" json:"PrivateMessageNumList,omitempty"` + GroupMessageNumList []*DateNumList `protobuf:"bytes,4,rep,name=GroupMessageNumList,proto3" json:"GroupMessageNumList,omitempty"` +} + +func (x *GetMessageStatisticsResp) Reset() { + *x = GetMessageStatisticsResp{} + if protoimpl.UnsafeEnabled { + mi := &file_statistics_statistics_proto_msgTypes[9] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetMessageStatisticsResp) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetMessageStatisticsResp) ProtoMessage() {} + +func (x *GetMessageStatisticsResp) ProtoReflect() protoreflect.Message { + mi := &file_statistics_statistics_proto_msgTypes[9] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetMessageStatisticsResp.ProtoReflect.Descriptor instead. +func (*GetMessageStatisticsResp) Descriptor() ([]byte, []int) { + return file_statistics_statistics_proto_rawDescGZIP(), []int{9} +} + +func (x *GetMessageStatisticsResp) GetPrivateMessageNum() int32 { + if x != nil { + return x.PrivateMessageNum + } + return 0 +} + +func (x *GetMessageStatisticsResp) GetGroupMessageNum() int32 { + if x != nil { + return x.GroupMessageNum + } + return 0 +} + +func (x *GetMessageStatisticsResp) GetPrivateMessageNumList() []*DateNumList { + if x != nil { + return x.PrivateMessageNumList + } + return nil +} + +func (x *GetMessageStatisticsResp) GetGroupMessageNumList() []*DateNumList { + if x != nil { + return x.GroupMessageNumList + } + return nil +} + +type GetGroupStatisticsReq struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + StatisticsReq *StatisticsReq `protobuf:"bytes,1,opt,name=StatisticsReq,proto3" json:"StatisticsReq,omitempty"` + OperationID string `protobuf:"bytes,2,opt,name=OperationID,proto3" json:"OperationID,omitempty"` +} + +func (x *GetGroupStatisticsReq) Reset() { + *x = GetGroupStatisticsReq{} + if protoimpl.UnsafeEnabled { + mi := &file_statistics_statistics_proto_msgTypes[10] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetGroupStatisticsReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetGroupStatisticsReq) ProtoMessage() {} + +func (x *GetGroupStatisticsReq) ProtoReflect() protoreflect.Message { + mi := &file_statistics_statistics_proto_msgTypes[10] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetGroupStatisticsReq.ProtoReflect.Descriptor instead. +func (*GetGroupStatisticsReq) Descriptor() ([]byte, []int) { + return file_statistics_statistics_proto_rawDescGZIP(), []int{10} +} + +func (x *GetGroupStatisticsReq) GetStatisticsReq() *StatisticsReq { + if x != nil { + return x.StatisticsReq + } + return nil +} + +func (x *GetGroupStatisticsReq) GetOperationID() string { + if x != nil { + return x.OperationID + } + return "" +} + +type GetGroupStatisticsResp struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + IncreaseGroupNum int32 `protobuf:"varint,1,opt,name=IncreaseGroupNum,proto3" json:"IncreaseGroupNum,omitempty"` + TotalGroupNum int32 `protobuf:"varint,2,opt,name=TotalGroupNum,proto3" json:"TotalGroupNum,omitempty"` + IncreaseGroupNumList []*DateNumList `protobuf:"bytes,3,rep,name=IncreaseGroupNumList,proto3" json:"IncreaseGroupNumList,omitempty"` + TotalGroupNumList []*DateNumList `protobuf:"bytes,4,rep,name=TotalGroupNumList,proto3" json:"TotalGroupNumList,omitempty"` +} + +func (x *GetGroupStatisticsResp) Reset() { + *x = GetGroupStatisticsResp{} + if protoimpl.UnsafeEnabled { + mi := &file_statistics_statistics_proto_msgTypes[11] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetGroupStatisticsResp) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetGroupStatisticsResp) ProtoMessage() {} + +func (x *GetGroupStatisticsResp) ProtoReflect() protoreflect.Message { + mi := &file_statistics_statistics_proto_msgTypes[11] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetGroupStatisticsResp.ProtoReflect.Descriptor instead. +func (*GetGroupStatisticsResp) Descriptor() ([]byte, []int) { + return file_statistics_statistics_proto_rawDescGZIP(), []int{11} +} + +func (x *GetGroupStatisticsResp) GetIncreaseGroupNum() int32 { + if x != nil { + return x.IncreaseGroupNum + } + return 0 +} + +func (x *GetGroupStatisticsResp) GetTotalGroupNum() int32 { + if x != nil { + return x.TotalGroupNum + } + return 0 +} + +func (x *GetGroupStatisticsResp) GetIncreaseGroupNumList() []*DateNumList { + if x != nil { + return x.IncreaseGroupNumList + } + return nil +} + +func (x *GetGroupStatisticsResp) GetTotalGroupNumList() []*DateNumList { + if x != nil { + return x.TotalGroupNumList + } + return nil +} + +type GetUserStatisticsReq struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + StatisticsReq *StatisticsReq `protobuf:"bytes,1,opt,name=StatisticsReq,proto3" json:"StatisticsReq,omitempty"` + OperationID string `protobuf:"bytes,2,opt,name=OperationID,proto3" json:"OperationID,omitempty"` +} + +func (x *GetUserStatisticsReq) Reset() { + *x = GetUserStatisticsReq{} + if protoimpl.UnsafeEnabled { + mi := &file_statistics_statistics_proto_msgTypes[12] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetUserStatisticsReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetUserStatisticsReq) ProtoMessage() {} + +func (x *GetUserStatisticsReq) ProtoReflect() protoreflect.Message { + mi := &file_statistics_statistics_proto_msgTypes[12] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetUserStatisticsReq.ProtoReflect.Descriptor instead. +func (*GetUserStatisticsReq) Descriptor() ([]byte, []int) { + return file_statistics_statistics_proto_rawDescGZIP(), []int{12} +} + +func (x *GetUserStatisticsReq) GetStatisticsReq() *StatisticsReq { + if x != nil { + return x.StatisticsReq + } + return nil +} + +func (x *GetUserStatisticsReq) GetOperationID() string { + if x != nil { + return x.OperationID + } + return "" +} + +type GetUserStatisticsResp struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + IncreaseUserNum int32 `protobuf:"varint,1,opt,name=IncreaseUserNum,proto3" json:"IncreaseUserNum,omitempty"` + ActiveUserNum int32 `protobuf:"varint,2,opt,name=ActiveUserNum,proto3" json:"ActiveUserNum,omitempty"` + TotalUserNum int32 `protobuf:"varint,3,opt,name=TotalUserNum,proto3" json:"TotalUserNum,omitempty"` + IncreaseUserNumList []*DateNumList `protobuf:"bytes,4,rep,name=IncreaseUserNumList,proto3" json:"IncreaseUserNumList,omitempty"` + ActiveUserNumList []*DateNumList `protobuf:"bytes,5,rep,name=ActiveUserNumList,proto3" json:"ActiveUserNumList,omitempty"` + TotalUserNumList []*DateNumList `protobuf:"bytes,6,rep,name=TotalUserNumList,proto3" json:"TotalUserNumList,omitempty"` +} + +func (x *GetUserStatisticsResp) Reset() { + *x = GetUserStatisticsResp{} + if protoimpl.UnsafeEnabled { + mi := &file_statistics_statistics_proto_msgTypes[13] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetUserStatisticsResp) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetUserStatisticsResp) ProtoMessage() {} + +func (x *GetUserStatisticsResp) ProtoReflect() protoreflect.Message { + mi := &file_statistics_statistics_proto_msgTypes[13] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetUserStatisticsResp.ProtoReflect.Descriptor instead. +func (*GetUserStatisticsResp) Descriptor() ([]byte, []int) { + return file_statistics_statistics_proto_rawDescGZIP(), []int{13} +} + +func (x *GetUserStatisticsResp) GetIncreaseUserNum() int32 { + if x != nil { + return x.IncreaseUserNum + } + return 0 +} + +func (x *GetUserStatisticsResp) GetActiveUserNum() int32 { + if x != nil { + return x.ActiveUserNum + } + return 0 +} + +func (x *GetUserStatisticsResp) GetTotalUserNum() int32 { + if x != nil { + return x.TotalUserNum + } + return 0 +} + +func (x *GetUserStatisticsResp) GetIncreaseUserNumList() []*DateNumList { + if x != nil { + return x.IncreaseUserNumList + } + return nil +} + +func (x *GetUserStatisticsResp) GetActiveUserNumList() []*DateNumList { + if x != nil { + return x.ActiveUserNumList + } + return nil +} + +func (x *GetUserStatisticsResp) GetTotalUserNumList() []*DateNumList { + if x != nil { + return x.TotalUserNumList + } + return nil +} + +var File_statistics_statistics_proto protoreflect.FileDescriptor + +var file_statistics_statistics_proto_rawDesc = []byte{ + 0x0a, 0x1b, 0x73, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x73, 0x2f, 0x73, 0x74, 0x61, + 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x0a, 0x73, + 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x73, 0x1a, 0x21, 0x4f, 0x70, 0x65, 0x6e, 0x5f, + 0x49, 0x4d, 0x2f, 0x70, 0x6b, 0x67, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x73, 0x64, 0x6b, + 0x5f, 0x77, 0x73, 0x2f, 0x77, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x33, 0x0a, 0x0d, + 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x12, 0x12, 0x0a, + 0x04, 0x66, 0x72, 0x6f, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x66, 0x72, 0x6f, + 0x6d, 0x12, 0x0e, 0x0a, 0x02, 0x74, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x74, + 0x6f, 0x22, 0x7b, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x55, 0x73, + 0x65, 0x72, 0x52, 0x65, 0x71, 0x12, 0x45, 0x0a, 0x0a, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x73, 0x65, 0x72, 0x76, + 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x52, 0x0a, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x20, 0x0a, 0x0b, + 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x22, 0x5e, + 0x0a, 0x08, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x12, 0x1a, 0x0a, 0x08, 0x4e, 0x69, + 0x63, 0x6b, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x4e, 0x69, + 0x63, 0x6b, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x1e, + 0x0a, 0x0a, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4e, 0x75, 0x6d, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0a, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4e, 0x75, 0x6d, 0x22, 0x86, + 0x01, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x55, 0x73, 0x65, 0x72, + 0x52, 0x65, 0x73, 0x70, 0x12, 0x2a, 0x0a, 0x05, 0x55, 0x73, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x73, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x73, + 0x2e, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x52, 0x05, 0x55, 0x73, 0x65, 0x72, 0x73, + 0x12, 0x45, 0x0a, 0x0a, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, + 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0a, 0x50, 0x61, 0x67, + 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x7c, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x41, 0x63, + 0x74, 0x69, 0x76, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x12, 0x45, 0x0a, 0x0a, + 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x25, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, + 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x50, 0x61, 0x67, + 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0a, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x22, 0x63, 0x0a, 0x09, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, + 0x73, 0x70, 0x12, 0x1c, 0x0a, 0x09, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4e, 0x61, 0x6d, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4e, 0x61, 0x6d, 0x65, + 0x12, 0x18, 0x0a, 0x07, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x07, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x4d, 0x65, + 0x73, 0x73, 0x61, 0x67, 0x65, 0x4e, 0x75, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, + 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4e, 0x75, 0x6d, 0x22, 0x8a, 0x01, 0x0a, 0x12, 0x47, + 0x65, 0x74, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, + 0x70, 0x12, 0x2d, 0x0a, 0x06, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x15, 0x2e, 0x73, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x73, 0x2e, 0x47, + 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x52, 0x06, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, + 0x12, 0x45, 0x0a, 0x0a, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, + 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0a, 0x50, 0x61, 0x67, + 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x33, 0x0a, 0x0b, 0x44, 0x61, 0x74, 0x65, 0x4e, + 0x75, 0x6d, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x44, 0x61, 0x74, 0x65, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x44, 0x61, 0x74, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4e, 0x75, + 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x4e, 0x75, 0x6d, 0x22, 0x7c, 0x0a, 0x17, + 0x47, 0x65, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, + 0x74, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x12, 0x3f, 0x0a, 0x0d, 0x53, 0x74, 0x61, 0x74, 0x69, + 0x73, 0x74, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, + 0x2e, 0x73, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x73, 0x2e, 0x53, 0x74, 0x61, 0x74, + 0x69, 0x73, 0x74, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x52, 0x0d, 0x53, 0x74, 0x61, 0x74, 0x69, + 0x73, 0x74, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x70, 0x65, 0x72, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x4f, + 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x22, 0x8c, 0x02, 0x0a, 0x18, 0x47, + 0x65, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, + 0x69, 0x63, 0x73, 0x52, 0x65, 0x73, 0x70, 0x12, 0x2c, 0x0a, 0x11, 0x50, 0x72, 0x69, 0x76, 0x61, + 0x74, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4e, 0x75, 0x6d, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x11, 0x50, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, + 0x67, 0x65, 0x4e, 0x75, 0x6d, 0x12, 0x28, 0x0a, 0x0f, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, + 0x73, 0x73, 0x61, 0x67, 0x65, 0x4e, 0x75, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0f, + 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4e, 0x75, 0x6d, 0x12, + 0x4d, 0x0a, 0x15, 0x50, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, + 0x65, 0x4e, 0x75, 0x6d, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, + 0x2e, 0x73, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x73, 0x2e, 0x44, 0x61, 0x74, 0x65, + 0x4e, 0x75, 0x6d, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x15, 0x50, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, + 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4e, 0x75, 0x6d, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x49, + 0x0a, 0x13, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4e, 0x75, + 0x6d, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x73, 0x74, + 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x73, 0x2e, 0x44, 0x61, 0x74, 0x65, 0x4e, 0x75, 0x6d, + 0x4c, 0x69, 0x73, 0x74, 0x52, 0x13, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x73, 0x73, 0x61, + 0x67, 0x65, 0x4e, 0x75, 0x6d, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x7a, 0x0a, 0x15, 0x47, 0x65, 0x74, + 0x47, 0x72, 0x6f, 0x75, 0x70, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x73, 0x52, + 0x65, 0x71, 0x12, 0x3f, 0x0a, 0x0d, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x73, + 0x52, 0x65, 0x71, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x73, 0x74, 0x61, 0x74, + 0x69, 0x73, 0x74, 0x69, 0x63, 0x73, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, + 0x73, 0x52, 0x65, 0x71, 0x52, 0x0d, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x73, + 0x52, 0x65, 0x71, 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x22, 0xfe, 0x01, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, + 0x75, 0x70, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x73, 0x52, 0x65, 0x73, 0x70, + 0x12, 0x2a, 0x0a, 0x10, 0x49, 0x6e, 0x63, 0x72, 0x65, 0x61, 0x73, 0x65, 0x47, 0x72, 0x6f, 0x75, + 0x70, 0x4e, 0x75, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x10, 0x49, 0x6e, 0x63, 0x72, + 0x65, 0x61, 0x73, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4e, 0x75, 0x6d, 0x12, 0x24, 0x0a, 0x0d, + 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4e, 0x75, 0x6d, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x0d, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4e, + 0x75, 0x6d, 0x12, 0x4b, 0x0a, 0x14, 0x49, 0x6e, 0x63, 0x72, 0x65, 0x61, 0x73, 0x65, 0x47, 0x72, + 0x6f, 0x75, 0x70, 0x4e, 0x75, 0x6d, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x17, 0x2e, 0x73, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x73, 0x2e, 0x44, 0x61, + 0x74, 0x65, 0x4e, 0x75, 0x6d, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x14, 0x49, 0x6e, 0x63, 0x72, 0x65, + 0x61, 0x73, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4e, 0x75, 0x6d, 0x4c, 0x69, 0x73, 0x74, 0x12, + 0x45, 0x0a, 0x11, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4e, 0x75, 0x6d, + 0x4c, 0x69, 0x73, 0x74, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x73, 0x74, 0x61, + 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x73, 0x2e, 0x44, 0x61, 0x74, 0x65, 0x4e, 0x75, 0x6d, 0x4c, + 0x69, 0x73, 0x74, 0x52, 0x11, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4e, + 0x75, 0x6d, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x79, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, + 0x72, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x12, 0x3f, + 0x0a, 0x0d, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x73, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, + 0x63, 0x73, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, + 0x52, 0x0d, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x12, + 0x20, 0x0a, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, + 0x44, 0x22, 0xe2, 0x02, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x53, 0x74, 0x61, + 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x73, 0x52, 0x65, 0x73, 0x70, 0x12, 0x28, 0x0a, 0x0f, 0x49, + 0x6e, 0x63, 0x72, 0x65, 0x61, 0x73, 0x65, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x0f, 0x49, 0x6e, 0x63, 0x72, 0x65, 0x61, 0x73, 0x65, 0x55, 0x73, + 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x12, 0x24, 0x0a, 0x0d, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x55, + 0x73, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x41, 0x63, + 0x74, 0x69, 0x76, 0x65, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x12, 0x22, 0x0a, 0x0c, 0x54, + 0x6f, 0x74, 0x61, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x0c, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x12, + 0x49, 0x0a, 0x13, 0x49, 0x6e, 0x63, 0x72, 0x65, 0x61, 0x73, 0x65, 0x55, 0x73, 0x65, 0x72, 0x4e, + 0x75, 0x6d, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x73, + 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x73, 0x2e, 0x44, 0x61, 0x74, 0x65, 0x4e, 0x75, + 0x6d, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x13, 0x49, 0x6e, 0x63, 0x72, 0x65, 0x61, 0x73, 0x65, 0x55, + 0x73, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x45, 0x0a, 0x11, 0x41, 0x63, + 0x74, 0x69, 0x76, 0x65, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x4c, 0x69, 0x73, 0x74, 0x18, + 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x73, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, + 0x63, 0x73, 0x2e, 0x44, 0x61, 0x74, 0x65, 0x4e, 0x75, 0x6d, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x11, + 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x4c, 0x69, 0x73, + 0x74, 0x12, 0x43, 0x0a, 0x10, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x75, + 0x6d, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x73, 0x74, + 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x73, 0x2e, 0x44, 0x61, 0x74, 0x65, 0x4e, 0x75, 0x6d, + 0x4c, 0x69, 0x73, 0x74, 0x52, 0x10, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x4e, + 0x75, 0x6d, 0x4c, 0x69, 0x73, 0x74, 0x32, 0xbf, 0x03, 0x0a, 0x04, 0x75, 0x73, 0x65, 0x72, 0x12, + 0x4c, 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x55, 0x73, 0x65, 0x72, + 0x12, 0x1c, 0x2e, 0x73, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x73, 0x2e, 0x47, 0x65, + 0x74, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x1a, 0x1d, + 0x2e, 0x73, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x73, 0x2e, 0x47, 0x65, 0x74, 0x41, + 0x63, 0x74, 0x69, 0x76, 0x65, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x12, 0x4f, 0x0a, + 0x0e, 0x47, 0x65, 0x74, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, + 0x1d, 0x2e, 0x73, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x73, 0x2e, 0x47, 0x65, 0x74, + 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x1a, 0x1e, + 0x2e, 0x73, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x73, 0x2e, 0x47, 0x65, 0x74, 0x41, + 0x63, 0x74, 0x69, 0x76, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x12, 0x61, + 0x0a, 0x14, 0x47, 0x65, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x53, 0x74, 0x61, 0x74, + 0x69, 0x73, 0x74, 0x69, 0x63, 0x73, 0x12, 0x23, 0x2e, 0x73, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, + 0x69, 0x63, 0x73, 0x2e, 0x47, 0x65, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x53, 0x74, + 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x24, 0x2e, 0x73, 0x74, + 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x73, 0x2e, 0x47, 0x65, 0x74, 0x4d, 0x65, 0x73, 0x73, + 0x61, 0x67, 0x65, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x73, 0x52, 0x65, 0x73, + 0x70, 0x12, 0x5b, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x53, 0x74, 0x61, + 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x73, 0x12, 0x21, 0x2e, 0x73, 0x74, 0x61, 0x74, 0x69, 0x73, + 0x74, 0x69, 0x63, 0x73, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x53, 0x74, 0x61, + 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x22, 0x2e, 0x73, 0x74, 0x61, + 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x73, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, + 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x73, 0x52, 0x65, 0x73, 0x70, 0x12, 0x58, + 0x0a, 0x11, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, + 0x69, 0x63, 0x73, 0x12, 0x20, 0x2e, 0x73, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x73, + 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, + 0x63, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x21, 0x2e, 0x73, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, + 0x63, 0x73, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, + 0x74, 0x69, 0x63, 0x73, 0x52, 0x65, 0x73, 0x70, 0x42, 0x19, 0x5a, 0x17, 0x2e, 0x2f, 0x73, 0x74, + 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x73, 0x3b, 0x73, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, + 0x69, 0x63, 0x73, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_statistics_statistics_proto_rawDescOnce sync.Once + file_statistics_statistics_proto_rawDescData = file_statistics_statistics_proto_rawDesc +) + +func file_statistics_statistics_proto_rawDescGZIP() []byte { + file_statistics_statistics_proto_rawDescOnce.Do(func() { + file_statistics_statistics_proto_rawDescData = protoimpl.X.CompressGZIP(file_statistics_statistics_proto_rawDescData) + }) + return file_statistics_statistics_proto_rawDescData +} + +var file_statistics_statistics_proto_msgTypes = make([]protoimpl.MessageInfo, 14) +var file_statistics_statistics_proto_goTypes = []interface{}{ + (*StatisticsReq)(nil), // 0: statistics.StatisticsReq + (*GetActiveUserReq)(nil), // 1: statistics.GetActiveUserReq + (*UserResp)(nil), // 2: statistics.UserResp + (*GetActiveUserResp)(nil), // 3: statistics.GetActiveUserResp + (*GetActiveGroupReq)(nil), // 4: statistics.GetActiveGroupReq + (*GroupResp)(nil), // 5: statistics.GroupResp + (*GetActiveGroupResp)(nil), // 6: statistics.GetActiveGroupResp + (*DateNumList)(nil), // 7: statistics.DateNumList + (*GetMessageStatisticsReq)(nil), // 8: statistics.GetMessageStatisticsReq + (*GetMessageStatisticsResp)(nil), // 9: statistics.GetMessageStatisticsResp + (*GetGroupStatisticsReq)(nil), // 10: statistics.GetGroupStatisticsReq + (*GetGroupStatisticsResp)(nil), // 11: statistics.GetGroupStatisticsResp + (*GetUserStatisticsReq)(nil), // 12: statistics.GetUserStatisticsReq + (*GetUserStatisticsResp)(nil), // 13: statistics.GetUserStatisticsResp + (*sdk_ws.ResponsePagination)(nil), // 14: server_api_params.ResponsePagination +} +var file_statistics_statistics_proto_depIdxs = []int32{ + 14, // 0: statistics.GetActiveUserReq.Pagination:type_name -> server_api_params.ResponsePagination + 2, // 1: statistics.GetActiveUserResp.Users:type_name -> statistics.UserResp + 14, // 2: statistics.GetActiveUserResp.Pagination:type_name -> server_api_params.ResponsePagination + 14, // 3: statistics.GetActiveGroupReq.Pagination:type_name -> server_api_params.ResponsePagination + 5, // 4: statistics.GetActiveGroupResp.Groups:type_name -> statistics.GroupResp + 14, // 5: statistics.GetActiveGroupResp.Pagination:type_name -> server_api_params.ResponsePagination + 0, // 6: statistics.GetMessageStatisticsReq.StatisticsReq:type_name -> statistics.StatisticsReq + 7, // 7: statistics.GetMessageStatisticsResp.PrivateMessageNumList:type_name -> statistics.DateNumList + 7, // 8: statistics.GetMessageStatisticsResp.GroupMessageNumList:type_name -> statistics.DateNumList + 0, // 9: statistics.GetGroupStatisticsReq.StatisticsReq:type_name -> statistics.StatisticsReq + 7, // 10: statistics.GetGroupStatisticsResp.IncreaseGroupNumList:type_name -> statistics.DateNumList + 7, // 11: statistics.GetGroupStatisticsResp.TotalGroupNumList:type_name -> statistics.DateNumList + 0, // 12: statistics.GetUserStatisticsReq.StatisticsReq:type_name -> statistics.StatisticsReq + 7, // 13: statistics.GetUserStatisticsResp.IncreaseUserNumList:type_name -> statistics.DateNumList + 7, // 14: statistics.GetUserStatisticsResp.ActiveUserNumList:type_name -> statistics.DateNumList + 7, // 15: statistics.GetUserStatisticsResp.TotalUserNumList:type_name -> statistics.DateNumList + 1, // 16: statistics.user.GetActiveUser:input_type -> statistics.GetActiveUserReq + 4, // 17: statistics.user.GetActiveGroup:input_type -> statistics.GetActiveGroupReq + 8, // 18: statistics.user.GetMessageStatistics:input_type -> statistics.GetMessageStatisticsReq + 10, // 19: statistics.user.GetGroupStatistics:input_type -> statistics.GetGroupStatisticsReq + 12, // 20: statistics.user.GetUserStatistics:input_type -> statistics.GetUserStatisticsReq + 3, // 21: statistics.user.GetActiveUser:output_type -> statistics.GetActiveUserResp + 6, // 22: statistics.user.GetActiveGroup:output_type -> statistics.GetActiveGroupResp + 9, // 23: statistics.user.GetMessageStatistics:output_type -> statistics.GetMessageStatisticsResp + 11, // 24: statistics.user.GetGroupStatistics:output_type -> statistics.GetGroupStatisticsResp + 13, // 25: statistics.user.GetUserStatistics:output_type -> statistics.GetUserStatisticsResp + 21, // [21:26] is the sub-list for method output_type + 16, // [16:21] is the sub-list for method input_type + 16, // [16:16] is the sub-list for extension type_name + 16, // [16:16] is the sub-list for extension extendee + 0, // [0:16] is the sub-list for field type_name +} + +func init() { file_statistics_statistics_proto_init() } +func file_statistics_statistics_proto_init() { + if File_statistics_statistics_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_statistics_statistics_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*StatisticsReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_statistics_statistics_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetActiveUserReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_statistics_statistics_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*UserResp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_statistics_statistics_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetActiveUserResp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_statistics_statistics_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetActiveGroupReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_statistics_statistics_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GroupResp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_statistics_statistics_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetActiveGroupResp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_statistics_statistics_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DateNumList); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_statistics_statistics_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetMessageStatisticsReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_statistics_statistics_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetMessageStatisticsResp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_statistics_statistics_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetGroupStatisticsReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_statistics_statistics_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetGroupStatisticsResp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_statistics_statistics_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetUserStatisticsReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_statistics_statistics_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetUserStatisticsResp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_statistics_statistics_proto_rawDesc, + NumEnums: 0, + NumMessages: 14, + NumExtensions: 0, + NumServices: 1, + }, + GoTypes: file_statistics_statistics_proto_goTypes, + DependencyIndexes: file_statistics_statistics_proto_depIdxs, + MessageInfos: file_statistics_statistics_proto_msgTypes, + }.Build() + File_statistics_statistics_proto = out.File + file_statistics_statistics_proto_rawDesc = nil + file_statistics_statistics_proto_goTypes = nil + file_statistics_statistics_proto_depIdxs = nil +} + +// Reference imports to suppress errors if they are not otherwise used. +var _ context.Context +var _ grpc.ClientConnInterface + +// 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.SupportPackageIsVersion6 + +// UserClient is the client API for User service. +// +// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream. +type UserClient interface { + GetActiveUser(ctx context.Context, in *GetActiveUserReq, opts ...grpc.CallOption) (*GetActiveUserResp, error) + GetActiveGroup(ctx context.Context, in *GetActiveGroupReq, opts ...grpc.CallOption) (*GetActiveGroupResp, error) + GetMessageStatistics(ctx context.Context, in *GetMessageStatisticsReq, opts ...grpc.CallOption) (*GetMessageStatisticsResp, error) + GetGroupStatistics(ctx context.Context, in *GetGroupStatisticsReq, opts ...grpc.CallOption) (*GetGroupStatisticsResp, error) + GetUserStatistics(ctx context.Context, in *GetUserStatisticsReq, opts ...grpc.CallOption) (*GetUserStatisticsResp, error) +} + +type userClient struct { + cc grpc.ClientConnInterface +} + +func NewUserClient(cc grpc.ClientConnInterface) UserClient { + return &userClient{cc} +} + +func (c *userClient) GetActiveUser(ctx context.Context, in *GetActiveUserReq, opts ...grpc.CallOption) (*GetActiveUserResp, error) { + out := new(GetActiveUserResp) + err := c.cc.Invoke(ctx, "/statistics.user/GetActiveUser", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *userClient) GetActiveGroup(ctx context.Context, in *GetActiveGroupReq, opts ...grpc.CallOption) (*GetActiveGroupResp, error) { + out := new(GetActiveGroupResp) + err := c.cc.Invoke(ctx, "/statistics.user/GetActiveGroup", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *userClient) GetMessageStatistics(ctx context.Context, in *GetMessageStatisticsReq, opts ...grpc.CallOption) (*GetMessageStatisticsResp, error) { + out := new(GetMessageStatisticsResp) + err := c.cc.Invoke(ctx, "/statistics.user/GetMessageStatistics", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *userClient) GetGroupStatistics(ctx context.Context, in *GetGroupStatisticsReq, opts ...grpc.CallOption) (*GetGroupStatisticsResp, error) { + out := new(GetGroupStatisticsResp) + err := c.cc.Invoke(ctx, "/statistics.user/GetGroupStatistics", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *userClient) GetUserStatistics(ctx context.Context, in *GetUserStatisticsReq, opts ...grpc.CallOption) (*GetUserStatisticsResp, error) { + out := new(GetUserStatisticsResp) + err := c.cc.Invoke(ctx, "/statistics.user/GetUserStatistics", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +// UserServer is the server API for User service. +type UserServer interface { + GetActiveUser(context.Context, *GetActiveUserReq) (*GetActiveUserResp, error) + GetActiveGroup(context.Context, *GetActiveGroupReq) (*GetActiveGroupResp, error) + GetMessageStatistics(context.Context, *GetMessageStatisticsReq) (*GetMessageStatisticsResp, error) + GetGroupStatistics(context.Context, *GetGroupStatisticsReq) (*GetGroupStatisticsResp, error) + GetUserStatistics(context.Context, *GetUserStatisticsReq) (*GetUserStatisticsResp, error) +} + +// UnimplementedUserServer can be embedded to have forward compatible implementations. +type UnimplementedUserServer struct { +} + +func (*UnimplementedUserServer) GetActiveUser(context.Context, *GetActiveUserReq) (*GetActiveUserResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetActiveUser not implemented") +} +func (*UnimplementedUserServer) GetActiveGroup(context.Context, *GetActiveGroupReq) (*GetActiveGroupResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetActiveGroup not implemented") +} +func (*UnimplementedUserServer) GetMessageStatistics(context.Context, *GetMessageStatisticsReq) (*GetMessageStatisticsResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetMessageStatistics not implemented") +} +func (*UnimplementedUserServer) GetGroupStatistics(context.Context, *GetGroupStatisticsReq) (*GetGroupStatisticsResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetGroupStatistics not implemented") +} +func (*UnimplementedUserServer) GetUserStatistics(context.Context, *GetUserStatisticsReq) (*GetUserStatisticsResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetUserStatistics not implemented") +} + +func RegisterUserServer(s *grpc.Server, srv UserServer) { + s.RegisterService(&_User_serviceDesc, srv) +} + +func _User_GetActiveUser_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetActiveUserReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(UserServer).GetActiveUser(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/statistics.user/GetActiveUser", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(UserServer).GetActiveUser(ctx, req.(*GetActiveUserReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _User_GetActiveGroup_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetActiveGroupReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(UserServer).GetActiveGroup(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/statistics.user/GetActiveGroup", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(UserServer).GetActiveGroup(ctx, req.(*GetActiveGroupReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _User_GetMessageStatistics_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetMessageStatisticsReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(UserServer).GetMessageStatistics(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/statistics.user/GetMessageStatistics", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(UserServer).GetMessageStatistics(ctx, req.(*GetMessageStatisticsReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _User_GetGroupStatistics_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetGroupStatisticsReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(UserServer).GetGroupStatistics(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/statistics.user/GetGroupStatistics", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(UserServer).GetGroupStatistics(ctx, req.(*GetGroupStatisticsReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _User_GetUserStatistics_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetUserStatisticsReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(UserServer).GetUserStatistics(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/statistics.user/GetUserStatistics", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(UserServer).GetUserStatistics(ctx, req.(*GetUserStatisticsReq)) + } + return interceptor(ctx, in, info, handler) +} + +var _User_serviceDesc = grpc.ServiceDesc{ + ServiceName: "statistics.user", + HandlerType: (*UserServer)(nil), + Methods: []grpc.MethodDesc{ + { + MethodName: "GetActiveUser", + Handler: _User_GetActiveUser_Handler, + }, + { + MethodName: "GetActiveGroup", + Handler: _User_GetActiveGroup_Handler, + }, + { + MethodName: "GetMessageStatistics", + Handler: _User_GetMessageStatistics_Handler, + }, + { + MethodName: "GetGroupStatistics", + Handler: _User_GetGroupStatistics_Handler, + }, + { + MethodName: "GetUserStatistics", + Handler: _User_GetUserStatistics_Handler, + }, + }, + Streams: []grpc.StreamDesc{}, + Metadata: "statistics/statistics.proto", +} diff --git a/pkg/proto/statistics/statistics.proto b/pkg/proto/statistics/statistics.proto new file mode 100644 index 000000000..8327129c1 --- /dev/null +++ b/pkg/proto/statistics/statistics.proto @@ -0,0 +1,95 @@ +syntax = "proto3"; +import "Open_IM/pkg/proto/sdk_ws/ws.proto"; +option go_package = "./statistics;statistics"; +package statistics; + +message StatisticsReq { + string from = 1; + string to = 2; +} + +message GetActiveUserReq{ + server_api_params.ResponsePagination Pagination = 1; + string OperationID = 2; +} + +message UserResp{ + string NickName = 1; + string UserId = 2; + string MessageNum = 3; +} + +message GetActiveUserResp { + repeated UserResp Users = 1; + server_api_params.ResponsePagination Pagination = 2; +} + +message GetActiveGroupReq{ + server_api_params.ResponsePagination Pagination = 1; + string OperationID = 2; +} + +message GroupResp { + string GroupName = 1; + string GroupId = 2; + string MessageNum = 3; +} + +message GetActiveGroupResp { + repeated GroupResp Groups = 1; + server_api_params.ResponsePagination Pagination = 2; +} + +message DateNumList { + string Date = 1; + int32 Num = 2; +} + + +message GetMessageStatisticsReq { + StatisticsReq StatisticsReq = 1; + string OperationID = 2; +} + + +message GetMessageStatisticsResp { + int32 PrivateMessageNum = 1; + int32 GroupMessageNum = 2; + repeated DateNumList PrivateMessageNumList = 3; + repeated DateNumList GroupMessageNumList = 4; +} + +message GetGroupStatisticsReq { + StatisticsReq StatisticsReq = 1; + string OperationID = 2; +} + + +message GetGroupStatisticsResp { + int32 IncreaseGroupNum = 1; + int32 TotalGroupNum = 2; + repeated DateNumList IncreaseGroupNumList = 3; + repeated DateNumList TotalGroupNumList = 4; +} + +message GetUserStatisticsReq { + StatisticsReq StatisticsReq = 1; + string OperationID = 2; +} + +message GetUserStatisticsResp { + int32 IncreaseUserNum = 1; + int32 ActiveUserNum = 2; + int32 TotalUserNum = 3; + repeated DateNumList IncreaseUserNumList = 4; + repeated DateNumList ActiveUserNumList = 5; + repeated DateNumList TotalUserNumList = 6; +} + +service user { + rpc GetActiveUser(GetActiveUserReq) returns(GetActiveUserResp); + rpc GetActiveGroup(GetActiveGroupReq) returns(GetActiveGroupResp); + rpc GetMessageStatistics(GetMessageStatisticsReq) returns(GetMessageStatisticsResp); + rpc GetGroupStatistics(GetGroupStatisticsReq) returns(GetGroupStatisticsResp); + rpc GetUserStatistics(GetUserStatisticsReq) returns(GetUserStatisticsResp); +} \ No newline at end of file From 6cbdc958cd0f2b432bb8fb147bd695f49c7e6b2d Mon Sep 17 00:00:00 2001 From: skiffer-git <44203734@qq.com> Date: Fri, 28 Jan 2022 11:18:31 +0800 Subject: [PATCH 562/814] notification --- internal/rpc/msg/friend_notification.go | 1 - internal/rpc/msg/group_notification.go | 2 +- 2 files changed, 1 insertion(+), 2 deletions(-) diff --git a/internal/rpc/msg/friend_notification.go b/internal/rpc/msg/friend_notification.go index b0377c854..e44bc0ff0 100644 --- a/internal/rpc/msg/friend_notification.go +++ b/internal/rpc/msg/friend_notification.go @@ -101,7 +101,6 @@ func FriendApplicationRejectedNotification(req *pbFriend.AddFriendResponseReq) { } func FriendAddedNotification(operationID, opUserID, fromUserID, toUserID string) { - return friendAddedTips := open_im_sdk.FriendAddedTips{Friend: &open_im_sdk.FriendInfo{}, OpUser: &open_im_sdk.PublicUserInfo{}} user, err := imdb.GetUserByUserID(opUserID) if err != nil { diff --git a/internal/rpc/msg/group_notification.go b/internal/rpc/msg/group_notification.go index 5893a9781..f9c428d18 100644 --- a/internal/rpc/msg/group_notification.go +++ b/internal/rpc/msg/group_notification.go @@ -218,7 +218,7 @@ func MemberQuitNotification(req *pbGroup.QuitGroupReq) { } groupNotification(constant.MemberQuitNotification, &MemberQuitTips, req.OpUserID, req.GroupID, "", req.OperationID) - groupNotification(constant.MemberQuitNotification, &MemberQuitTips, req.OpUserID, "", req.OpUserID, req.OperationID) + // groupNotification(constant.MemberQuitNotification, &MemberQuitTips, req.OpUserID, "", req.OpUserID, req.OperationID) } From a7f9faf8688be969f922f880d3f34a893c44f46d Mon Sep 17 00:00:00 2001 From: wangchuxiao Date: Mon, 7 Feb 2022 08:44:21 +0800 Subject: [PATCH 563/814] statistics --- cmd/rpc/open_im_statistics/main.go | 13 + cmd/rpc/statistics/main.go | 14 - config/config.yaml | 2 + internal/cms_api/group/group.go | 11 +- internal/cms_api/message/message.go | 22 +- internal/cms_api/router.go | 18 +- internal/cms_api/statistics/statistics.go | 209 +++- internal/cms_api/user/user.go | 45 +- internal/rpc/group/group.go | 13 +- internal/rpc/statistics/statistics.go | 285 +++++- internal/rpc/user/user.go | 40 +- pkg/cms_api_struct/message.go | 13 +- pkg/cms_api_struct/statistics.go | 46 +- pkg/cms_api_struct/user.go | 13 +- pkg/common/config/config.go | 1 + pkg/common/constant/constant.go | 15 +- .../im_mysql_model/statistics_model.go | 153 +++ .../mysql_model/im_mysql_model/user_model.go | 21 +- pkg/proto/message/message.pb.go | 923 ++++++++++++++++++ pkg/proto/message/message.proto | 57 ++ pkg/proto/proto_dir.cfg | 6 +- pkg/proto/sdk_ws/ws.pb.go | 4 +- pkg/proto/statistics/statistics.pb.go | 436 ++++----- pkg/proto/statistics/statistics.proto | 12 +- pkg/proto/user/user.pb.go | 831 +++++++++------- pkg/proto/user/user.proto | 31 +- pkg/utils/time_format.go | 5 + 27 files changed, 2514 insertions(+), 725 deletions(-) create mode 100644 cmd/rpc/open_im_statistics/main.go delete mode 100644 cmd/rpc/statistics/main.go create mode 100644 pkg/common/db/mysql_model/im_mysql_model/statistics_model.go create mode 100644 pkg/proto/message/message.pb.go create mode 100644 pkg/proto/message/message.proto diff --git a/cmd/rpc/open_im_statistics/main.go b/cmd/rpc/open_im_statistics/main.go new file mode 100644 index 000000000..f1f950288 --- /dev/null +++ b/cmd/rpc/open_im_statistics/main.go @@ -0,0 +1,13 @@ +package main + +import ( + "Open_IM/internal/rpc/statistics" + "flag" +) + +func main() { + rpcPort := flag.Int("port", 10800, "rpc listening port") + flag.Parse() + rpcServer := statistics.NewStatisticsServer(*rpcPort) + rpcServer.Run() +} diff --git a/cmd/rpc/statistics/main.go b/cmd/rpc/statistics/main.go deleted file mode 100644 index fb74dae0d..000000000 --- a/cmd/rpc/statistics/main.go +++ /dev/null @@ -1,14 +0,0 @@ -package main - -import ( - "Open_IM/internal/rpc/user" - "flag" -) - -func main() { - rpcPort := flag.Int("port", 10100, "rpc listening port") - flag.Parse() - rpcServer := user.NewUserServer(*rpcPort) - rpcServer.Run() -} - diff --git a/config/config.yaml b/config/config.yaml index 1a7aa233b..710421fb2 100644 --- a/config/config.yaml +++ b/config/config.yaml @@ -92,6 +92,7 @@ rpcport: openImGroupPort: [ 10500 ] openImAuthPort: [ 10600 ] openImPushPort: [ 10700 ] + openImOpenImStatisticPort: [ 10800 ] c2c: callbackBeforeSendMsg: switch: false @@ -110,6 +111,7 @@ rpcregistername: openImOnlineMessageRelayName: OnlineMessageRelay openImGroupName: Group openImAuthName: Auth + OpenImStatisticsName: Statistics log: storageLocation: ../logs/ diff --git a/internal/cms_api/group/group.go b/internal/cms_api/group/group.go index 6ffe981d9..e2df24488 100644 --- a/internal/cms_api/group/group.go +++ b/internal/cms_api/group/group.go @@ -20,8 +20,8 @@ import ( func GetGroupById(c *gin.Context) { var ( - req cms_api_struct.GetGroupByIdRequest - resp cms_api_struct.GetGroupByIdResponse + req cms_api_struct.GetGroupByIdRequest + resp cms_api_struct.GetGroupByIdResponse reqPb pbGroup.GetGroupByIdReq ) if err := c.ShouldBindQuery(&req); err != nil { @@ -33,7 +33,7 @@ func GetGroupById(c *gin.Context) { client := pbGroup.NewGroupClient(etcdConn) respPb, err := client.GetGroupById(context.Background(), &reqPb) if err != nil { - log.NewError(utils.GetSelfFuncName(), "GetUserInfo failed ", err.Error()) + log.NewError(utils.GetSelfFuncName(), "GetGroupById failed ", err.Error()) openIMHttp.RespHttp200(c, constant.ErrServer, nil) return } @@ -43,7 +43,7 @@ func GetGroupById(c *gin.Context) { resp.CreateTime = (utils.UnixSecondToTime(int64(respPb.GroupInfo.CreateTime))).String() resp.ProfilePhoto = respPb.GroupInfo.FaceURL resp.GroupMasterName = respPb.GroupInfo.OwnerUserID - openIMHttp.RespHttp200(c, constant.OK, nil) + openIMHttp.RespHttp200(c, constant.OK, resp) } func GetGroups(c *gin.Context) { @@ -141,7 +141,7 @@ func CreateGroup(c *gin.Context) { reqPb.GroupInfo.CreatorUserID = req.GroupMasterId for _, v := range req.GroupMembers { reqPb.InitMemberList = append(reqPb.InitMemberList, &pbGroup.GroupAddMemberInfo{ - UserID: v, + UserID: v, RoleLevel: 1, }) } @@ -249,7 +249,6 @@ func OpenPrivateChat(c *gin.Context) { openIMHttp.RespHttp200(c, constant.OK, nil) } - func GetGroupsMember(c *gin.Context) { var ( req cms_api_struct.GetGroupMembersRequest diff --git a/internal/cms_api/message/message.go b/internal/cms_api/message/message.go index e13829b2f..297268405 100644 --- a/internal/cms_api/message/message.go +++ b/internal/cms_api/message/message.go @@ -1,25 +1,21 @@ package message import ( - "github.com/gin-gonic/gin" -) - -func Broadcast(c *gin.Context) { + openIMHttp "Open_IM/pkg/common/http" -} - -func SearchMessageByUser(c *gin.Context) { + "Open_IM/pkg/common/constant" -} - -func SearchMessageByGroup(c *gin.Context) { + "github.com/gin-gonic/gin" +) +func BroadcastMessage(c *gin.Context) { + openIMHttp.RespHttp200(c, constant.OK, nil) } func MassSendMassage(c *gin.Context) { - + openIMHttp.RespHttp200(c, constant.OK, nil) } -func Withdraw(c *gin.Context) { - +func WithdrawMessage(c *gin.Context) { + openIMHttp.RespHttp200(c, constant.OK, nil) } diff --git a/internal/cms_api/router.go b/internal/cms_api/router.go index 1f01f3121..a7d6e6db8 100644 --- a/internal/cms_api/router.go +++ b/internal/cms_api/router.go @@ -21,15 +21,14 @@ func NewGinRouter() *gin.Engine { adminRouterGroup := router.Group("/admin") { adminRouterGroup.POST("/register", admin.AdminRegister) - adminRouterGroup.POST("/login", admin.AdminLogin) adminRouterGroup.GET("/get_user_settings", admin.GetAdminSettings) adminRouterGroup.POST("/alter_user_settings", admin.AlterAdminSettings) } statisticsRouterGroup := router.Group("/statistics") { statisticsRouterGroup.GET("/get_messages_statistics", statistics.GetMessagesStatistics) - statisticsRouterGroup.GET("/get_users_statistics", statistics.GetUsersStatistics) - statisticsRouterGroup.GET("/get_groups_statistics", statistics.GetGroupsStatistics) + statisticsRouterGroup.GET("/get_user_statistics", statistics.GetUserStatistics) + statisticsRouterGroup.GET("/get_group_statistics", statistics.GetGroupStatistics) statisticsRouterGroup.GET("/get_active_user", statistics.GetActiveUser) statisticsRouterGroup.GET("/get_active_group", statistics.GetActiveGroup) } @@ -49,11 +48,9 @@ func NewGinRouter() *gin.Engine { } messageRouterGroup := router.Group("/message") { - messageRouterGroup.POST("/broadcast", message.Broadcast) - messageRouterGroup.GET("/search_message_by_user", message.SearchMessageByUser) - messageRouterGroup.POST("/message_mass_send", message.MassSendMassage) - messageRouterGroup.GET("/search_message_by_group", message.SearchMessageByGroup) - messageRouterGroup.POST("/withdraw_message", message.Withdraw) + messageRouterGroup.POST("/broadcast_message", message.BroadcastMessage) + messageRouterGroup.POST("/mass_send_message", message.MassSendMassage) + messageRouterGroup.POST("/withdraw_message", message.WithdrawMessage) } groupRouterGroup := router.Group("/group") { @@ -75,14 +72,15 @@ func NewGinRouter() *gin.Engine { userRouterGroup := router.Group("/user") { userRouterGroup.POST("/resign", user.ResignUser) - userRouterGroup.GET("/get_user", user.GetUser) + userRouterGroup.GET("/get_user_by_id", user.GetUserById) userRouterGroup.POST("/alter_user", user.AlterUser) userRouterGroup.GET("/get_users", user.GetUsers) userRouterGroup.POST("/add_user", user.AddUser) userRouterGroup.POST("/unblock_user", user.UnblockUser) userRouterGroup.POST("/block_user", user.BlockUser) userRouterGroup.GET("/get_block_users", user.GetBlockUsers) - userRouterGroup.GET("/get_block_user", user.GetBlockUser) + userRouterGroup.GET("/get_block_user_by_id", user.GetBlockUserById) + userRouterGroup.POST("/delete_user", user.DeleteUser) } return baseRouter } diff --git a/internal/cms_api/statistics/statistics.go b/internal/cms_api/statistics/statistics.go index 0e2003592..fd6485591 100644 --- a/internal/cms_api/statistics/statistics.go +++ b/internal/cms_api/statistics/statistics.go @@ -2,30 +2,221 @@ package statistics import ( "Open_IM/pkg/cms_api_struct" + "Open_IM/pkg/common/config" + "Open_IM/pkg/common/constant" + openIMHttp "Open_IM/pkg/common/http" + "Open_IM/pkg/common/log" + "Open_IM/pkg/grpc-etcdv3/getcdv3" + pb "Open_IM/pkg/proto/statistics" + "Open_IM/pkg/utils" + "context" + "strings" + "github.com/gin-gonic/gin" - statisticsPb "Open_IM/pkg/proto/statistics" ) func GetMessagesStatistics(c *gin.Context) { var ( - req cms_api_struct.GetGroupMembersRequest - resp cms_api_struct.GetGroupMembersResponse - reqPb statisticsPb.GetMessageStatisticsReq + req cms_api_struct.GetMessageStatisticsRequest + resp cms_api_struct.GetMessageStatisticsResponse + reqPb pb.GetMessageStatisticsReq ) + reqPb.StatisticsReq = &pb.StatisticsReq{} + if err := c.ShouldBindQuery(&req); err != nil { + log.NewError("0", utils.GetSelfFuncName(), "BindJSON failed ", err.Error()) + openIMHttp.RespHttp200(c, constant.ErrArgs, nil) + return + } + utils.CopyStructFields(&reqPb.StatisticsReq, &req) + etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImStatisticsName) + client := pb.NewUserClient(etcdConn) + respPb, err := client.GetMessageStatistics(context.Background(), &reqPb) + if err != nil { + openIMHttp.RespHttp200(c, constant.ErrServer, resp) + log.NewError("0", utils.GetSelfFuncName(), err.Error()) + return + } + // utils.CopyStructFields(&resp, respPb) + resp.GroupMessageNum = int(respPb.GroupMessageNum) + resp.PrivateMessageNum = int(respPb.PrivateMessageNum) + for _, v := range respPb.PrivateMessageNumList { + resp.PrivateMessageNumList = append(resp.PrivateMessageNumList, struct { + Date string "json:\"date\"" + MessageNum int "json:\"message_num\"" + }{ + Date: v.Date, + MessageNum: int(v.Num), + }) + } + for _, v := range respPb.GroupMessageNumList { + resp.GroupMessageNumList = append(resp.GroupMessageNumList, struct { + Date string "json:\"date\"" + MessageNum int "json:\"message_num\"" + }{ + Date: v.Date, + MessageNum: int(v.Num), + }) + } + openIMHttp.RespHttp200(c, constant.OK, resp) } -func GetUsersStatistics(c *gin.Context) { - +func GetUserStatistics(c *gin.Context) { + var ( + req cms_api_struct.GetUserStatisticsRequest + resp cms_api_struct.GetUserStatisticsResponse + reqPb pb.GetUserStatisticsReq + ) + reqPb.StatisticsReq = &pb.StatisticsReq{} + if err := c.ShouldBindQuery(&req); err != nil { + log.NewError("0", utils.GetSelfFuncName(), "BindJSON failed ", err.Error()) + openIMHttp.RespHttp200(c, constant.ErrArgs, nil) + return + } + utils.CopyStructFields(&reqPb.StatisticsReq, &req) + etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImStatisticsName) + client := pb.NewUserClient(etcdConn) + respPb, err := client.GetUserStatistics(context.Background(), &reqPb) + if err != nil { + log.NewError("0", utils.GetSelfFuncName(), err.Error()) + openIMHttp.RespHttp200(c, constant.ErrServer, nil) + return + } + // utils.CopyStructFields(&resp, respPb) + resp.ActiveUserNum = int(respPb.ActiveUserNum) + resp.IncreaseUserNum = int(respPb.IncreaseUserNum) + resp.TotalUserNum = int(respPb.TotalUserNum) + for _, v := range respPb.ActiveUserNumList { + resp.ActiveUserNumList = append(resp.ActiveUserNumList, struct { + Date string "json:\"date\"" + ActiveUserNum int "json:\"active_user_num\"" + }{ + Date: v.Date, + ActiveUserNum: int(v.Num), + }) + } + for _, v := range respPb.IncreaseUserNumList { + resp.IncreaseUserNumList = append(resp.IncreaseUserNumList, struct { + Date string "json:\"date\"" + IncreaseUserNum int "json:\"increase_user_num\"" + }{ + Date: v.Date, + IncreaseUserNum: int(v.Num), + }) + } + for _, v := range respPb.TotalUserNumList { + resp.TotalUserNumList = append(resp.TotalUserNumList, struct { + Date string "json:\"date\"" + TotalUserNum int "json:\"total_user_num\"" + }{ + Date: v.Date, + TotalUserNum: int(v.Num), + }) + } + openIMHttp.RespHttp200(c, constant.OK, resp) } -func GetGroupsStatistics(c *gin.Context) { +func GetGroupStatistics(c *gin.Context) { + var ( + req cms_api_struct.GetGroupStatisticsRequest + resp cms_api_struct.GetGroupStatisticsResponse + reqPb pb.GetGroupStatisticsReq + ) + reqPb.StatisticsReq = &pb.StatisticsReq{} + if err := c.ShouldBindQuery(&req); err != nil { + log.NewError("0", "BindJSON failed ", err.Error()) + openIMHttp.RespHttp200(c, constant.ErrArgs, nil) + return + } + utils.CopyStructFields(&reqPb.StatisticsReq, &req) + etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImStatisticsName) + client := pb.NewUserClient(etcdConn) + respPb, err := client.GetGroupStatistics(context.Background(), &reqPb) + if err != nil { + openIMHttp.RespHttp200(c, constant.ErrServer, nil) + return + } + // utils.CopyStructFields(&resp, respPb) + resp.IncreaseGroupNum = int(respPb.GetIncreaseGroupNum()) + resp.TotalGroupNum = int(respPb.GetTotalGroupNum()) + for _, v := range respPb.IncreaseGroupNumList { + resp.IncreaseGroupNumList = append(resp.IncreaseGroupNumList, + struct { + Date string "json:\"date\"" + IncreaseGroupNum int "json:\"increase_group_num\"" + }{ + Date: v.Date, + IncreaseGroupNum: int(v.Num), + }) + } + for _, v := range respPb.TotalGroupNumList { + resp.TotalGroupNumList = append(resp.TotalGroupNumList, + struct { + Date string "json:\"date\"" + TotalGroupNum int "json:\"total_group_num\"" + }{ + Date: v.Date, + TotalGroupNum: int(v.Num), + }) + } + openIMHttp.RespHttp200(c, constant.OK, resp) } func GetActiveUser(c *gin.Context) { - + var ( + req cms_api_struct.GetActiveUserRequest + resp cms_api_struct.GetActiveUserResponse + reqPb pb.GetActiveUserReq + ) + reqPb.StatisticsReq = &pb.StatisticsReq{} + if err := c.ShouldBindQuery(&req); err != nil { + log.NewError("0", "BindJSON failed ", err.Error()) + openIMHttp.RespHttp200(c, constant.ErrArgs, nil) + return + } + utils.CopyStructFields(&reqPb.StatisticsReq, req) + etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImStatisticsName) + client := pb.NewUserClient(etcdConn) + respPb, err := client.GetActiveUser(context.Background(), &reqPb) + if err != nil { + openIMHttp.RespHttp200(c, constant.ErrServer, nil) + return + } + utils.CopyStructFields(&resp.ActiveUserList, respPb.Users) + openIMHttp.RespHttp200(c, constant.OK, resp) } func GetActiveGroup(c *gin.Context) { - + var ( + req cms_api_struct.GetActiveGroupRequest + resp cms_api_struct.GetActiveGroupResponse + reqPb pb.GetActiveGroupReq + ) + reqPb.StatisticsReq = &pb.StatisticsReq{} + if err := c.ShouldBindQuery(&req); err != nil { + log.NewError("0", "BindJSON failed ", err.Error()) + openIMHttp.RespHttp200(c, constant.ErrArgs, nil) + return + } + utils.CopyStructFields(&reqPb.StatisticsReq, req) + etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImStatisticsName) + client := pb.NewUserClient(etcdConn) + respPb, err := client.GetActiveGroup(context.Background(), &reqPb) + if err != nil { + log.NewError("0", "BindJSON failed ", err.Error()) + openIMHttp.RespHttp200(c, constant.ErrServer, nil) + return + } + for _, group := range respPb.Groups { + resp.ActiveGroupList = append(resp.ActiveGroupList, struct { + GroupName string "json:\"group_name\"" + GroupId string "json:\"group_id\"" + MessageNum int "json:\"message_num\"" + }{ + GroupName: group.GroupName, + GroupId: group.GroupId, + MessageNum: int(group.MessageNum), + }) + } + openIMHttp.RespHttp200(c, constant.OK, resp) } diff --git a/internal/cms_api/user/user.go b/internal/cms_api/user/user.go index 2842eb460..3428f8bd1 100644 --- a/internal/cms_api/user/user.go +++ b/internal/cms_api/user/user.go @@ -18,23 +18,23 @@ import ( "github.com/gin-gonic/gin" ) -func GetUser(c *gin.Context) { +func GetUserById(c *gin.Context) { var ( req cms_api_struct.GetUserRequest resp cms_api_struct.GetUserResponse - reqPb pb.GetUserReq + reqPb pb.GetUserByIdReq ) if err := c.ShouldBindQuery(&req); err != nil { - log.NewError("0", "ShouldBindQuery failed ", err.Error()) + log.NewError("GetUser", utils.GetSelfFuncName(), "ShouldBindQuery failed ", err.Error()) openIMHttp.RespHttp200(c, constant.ErrArgs, nil) return } utils.CopyStructFields(&reqPb, &req) etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImUserName) client := pb.NewUserClient(etcdConn) - respPb, err := client.GetUser(context.Background(), &reqPb) + respPb, err := client.GetUserById(context.Background(), &reqPb) if err != nil { - log.NewError("s", "GetUserInfo failed ", err.Error()) + log.NewError("GetUserFailed", utils.GetSelfFuncName(), err.Error()) openIMHttp.RespHttp200(c, constant.ErrServer, nil) return } @@ -67,7 +67,6 @@ func GetUsers(c *gin.Context) { return } utils.CopyStructFields(&resp.Users, respPb.User) - resp.UserNum = int(respPb.UserNum) resp.ShowNumber = int(respPb.Pagination.ShowNumber) resp.CurrentPage = int(respPb.Pagination.CurrentPage) openIMHttp.RespHttp200(c, constant.OK, resp) @@ -101,7 +100,6 @@ func AlterUser(c *gin.Context) { req cms_api_struct.AlterUserRequest resp cms_api_struct.AlterUserResponse reqPb pb.AlterUserReq - _ *pb.AlterUserResp ) if err := c.BindJSON(&req); err != nil { log.NewError("0", "BindJSON failed ", err.Error()) @@ -222,28 +220,29 @@ func GetBlockUsers(c *gin.Context) { EndDisableTime: v.EndDisableTime, }) } - resp.BlockUserNum = int(respPb.BlockUserNum) resp.ShowNumber = int(respPb.Pagination.ShowNumber) resp.CurrentPage = int(respPb.Pagination.CurrentPage) openIMHttp.RespHttp200(c, constant.OK, resp) } -func GetBlockUser(c *gin.Context) { +func GetBlockUserById(c *gin.Context) { var ( req cms_api_struct.GetBlockUserRequest resp cms_api_struct.GetBlockUserResponse - reqPb pb.GetBlockUserReq + reqPb pb.GetBlockUserByIdReq ) if err := c.ShouldBindQuery(&req); err != nil { log.NewError("0", "BindJSON failed ", err.Error()) openIMHttp.RespHttp200(c, constant.ErrArgs, nil) return } + reqPb.UserId = req.UserId etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImUserName) client := pb.NewUserClient(etcdConn) - respPb, err := client.GetBlockUser(context.Background(), &reqPb) + respPb, err := client.GetBlockUserById(context.Background(), &reqPb) if err != nil { - openIMHttp.RespHttp200(c, constant.ErrServer, resp) + log.NewError("0", "GetBlockUserById rpc failed ", err.Error()) + openIMHttp.RespHttp200(c, constant.ErrServer, nil) return } resp.EndDisableTime = respPb.BlockUser.EndDisableTime @@ -251,3 +250,25 @@ func GetBlockUser(c *gin.Context) { utils.CopyStructFields(&resp, respPb.BlockUser.User) openIMHttp.RespHttp200(c, constant.OK, resp) } + +func DeleteUser(c *gin.Context) { + var ( + req cms_api_struct.DeleteUserRequest + reqPb pb.DeleteUserReq + ) + if err := c.BindJSON(&req); err != nil { + log.NewError("0", "BindJSON failed ", err.Error()) + openIMHttp.RespHttp200(c, constant.ErrArgs, nil) + return + } + reqPb.UserId = req.UserId + etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImUserName) + client := pb.NewUserClient(etcdConn) + _, err := client.DeleteUser(context.Background(), &reqPb) + if err != nil { + log.NewError("0", "DeleteUser rpc failed ", err.Error()) + openIMHttp.RespHttp200(c, constant.ErrServer, nil) + return + } + openIMHttp.RespHttp200(c, constant.OK, nil) +} diff --git a/internal/rpc/group/group.go b/internal/rpc/group/group.go index 4772ded94..bc52de5d7 100644 --- a/internal/rpc/group/group.go +++ b/internal/rpc/group/group.go @@ -648,16 +648,15 @@ func (s *groupServer) GetGroupById(_ context.Context, req *pbGroup.GetGroupByIdR return resp, err } resp.GroupInfo = &open_im_sdk.GroupInfo{ - GroupID: group.GroupID, - GroupName: group.GroupName, - FaceURL: group.FaceUrl, - OwnerUserID: group.CreatorUserID, + GroupID: group.GroupID, + GroupName: group.GroupName, + FaceURL: group.FaceUrl, + OwnerUserID: group.CreatorUserID, MemberCount: 0, Status: group.Status, CreatorUserID: group.CreatorUserID, - GroupType: group.GroupType, + GroupType: group.GroupType, } - resp.GroupInfo.CreatorUserID = group.CreatorUserID return resp, nil } @@ -721,7 +720,7 @@ func (s *groupServer) GetGroups(_ context.Context, req *pbGroup.GetGroupsReq) (* } func (s *groupServer) OperateGroupStatus(_ context.Context, req *pbGroup.OperateGroupStatusReq) (*pbGroup.OperateGroupStatusResp, error) { - log.NewInfo(req.OperationID, utils.GetSelfFuncName(), req.String()) + log.NewInfo(req.OperationID, utils.GetSelfFuncName(), req.String()) resp := &pbGroup.OperateGroupStatusResp{} if err := imdb.OperateGroupStatus(req.GroupId, req.Status); err != nil { return resp, err diff --git a/internal/rpc/statistics/statistics.go b/internal/rpc/statistics/statistics.go index d8adbaed3..f933398ea 100644 --- a/internal/rpc/statistics/statistics.go +++ b/internal/rpc/statistics/statistics.go @@ -2,13 +2,19 @@ package statistics import ( "Open_IM/pkg/common/config" + "context" + "fmt" + "time" + //"Open_IM/pkg/common/constant" //"Open_IM/pkg/common/db" - //imdb "Open_IM/pkg/common/db/mysql_model/im_mysql_model" + imdb "Open_IM/pkg/common/db/mysql_model/im_mysql_model" "Open_IM/pkg/common/log" + //cp "Open_IM/pkg/common/utils" "Open_IM/pkg/grpc-etcdv3/getcdv3" pbStatistics "Open_IM/pkg/proto/statistics" + //open_im_sdk "Open_IM/pkg/proto/sdk_ws" "Open_IM/pkg/utils" //"context" @@ -26,18 +32,18 @@ type statisticsServer struct { etcdAddr []string } -func NewStatisticsGroupServer(port int) *statisticsServer { - log.NewPrivateLog("group") +func NewStatisticsServer(port int) *statisticsServer { + log.NewPrivateLog("Statistics") return &statisticsServer{ rpcPort: port, - rpcRegisterName: config.Config.RpcRegisterName.OpenImGroupName, + rpcRegisterName: config.Config.RpcRegisterName.OpenImStatisticsName, etcdSchema: config.Config.Etcd.EtcdSchema, etcdAddr: config.Config.Etcd.EtcdAddr, } } func (s *statisticsServer) Run() { - log.NewInfo("0", "group rpc start ") + log.NewInfo("0", "Statistics rpc start ") ip := utils.ServerIP registerAddress := ip + ":" + strconv.Itoa(s.rpcPort) //listener network @@ -63,5 +69,270 @@ func (s *statisticsServer) Run() { log.NewError("0", "Serve failed ", err.Error()) return } - log.NewInfo("0", "group rpc success") -} \ No newline at end of file + log.NewInfo("0", "statistics rpc success") +} + +func (s *statisticsServer) GetActiveGroup(_ context.Context, req *pbStatistics.GetActiveGroupReq) (*pbStatistics.GetActiveGroupResp, error) { + log.NewInfo("GetActiveGroup", utils.GetSelfFuncName(), req.String()) + resp := &pbStatistics.GetActiveGroupResp{} + fromTime, toTime, err := ParseTimeFromTo(req.StatisticsReq.From, req.StatisticsReq.To) + if err != nil { + log.NewError("GetActiveGroup", utils.GetSelfFuncName(), err.Error()) + return resp, err + } + activeGroups, err := imdb.GetActiveGroups(fromTime, toTime, 12) + if err != nil { + log.NewError("GetActiveGroup", utils.GetSelfFuncName(), err.Error()) + return resp, err + } + for _, activeGroup := range activeGroups { + resp.Groups = append(resp.Groups, + &pbStatistics.GroupResp{ + GroupName: activeGroup.Name, + GroupId: activeGroup.Id, + MessageNum: int32(activeGroup.MessageNum), + }) + } + return resp, nil +} + +func (s *statisticsServer) GetActiveUser(_ context.Context, req *pbStatistics.GetActiveUserReq) (*pbStatistics.GetActiveUserResp, error) { + log.NewInfo("GetActiveUser", utils.GetSelfFuncName(), req.String()) + resp := &pbStatistics.GetActiveUserResp{} + fromTime, toTime, err := ParseTimeFromTo(req.StatisticsReq.From, req.StatisticsReq.To) + if err != nil { + log.NewError("GetActiveUser", utils.GetSelfFuncName(), err.Error()) + return resp, err + } + activeUsers, err := imdb.GetActiveUsers(fromTime, toTime, 12) + if err != nil { + log.NewError("GetActiveUser", utils.GetSelfFuncName(), err.Error()) + return resp, err + } + for _, activeUser := range activeUsers { + resp.Users = append(resp.Users, + &pbStatistics.UserResp{ + UserId: activeUser.Id, + NickName: activeUser.Name, + MessageNum: int32(activeUser.MessageNum), + }, + ) + } + return resp, nil +} + +func ParseTimeFromTo(from, to string) (time.Time, time.Time, error) { + var fromTime time.Time + var toTime time.Time + fromTime, err := utils.TimeStringToTime(from) + if err != nil { + return fromTime, toTime, err + } + toTime, err = utils.TimeStringToTime(to) + if err != nil { + return fromTime, toTime, err + } + return fromTime, toTime, nil +} + +func isInOneMonth(from, to time.Time) bool { + return from.Month() == to.Month() +} + +func GetRangeDate(from, to time.Time) [][2]time.Time { + interval := to.Sub(from) + var times [][2]time.Time + switch { + // today + case interval == 0: + times = append(times, [2]time.Time{ + from, from.Add(time.Hour * 24), + }) + // days + case isInOneMonth(from, to): + for i := 0; ; i++ { + fromTime := from.Add(time.Hour * 24 * time.Duration(i)) + toTime := from.Add(time.Hour * 24 * time.Duration(i+1)) + if toTime.After(to.Add(time.Hour * 24)) { + break + } + times = append(times, [2]time.Time{ + fromTime, toTime, + }) + } + // month + case !isInOneMonth(from, to): + for i := 0; ; i++ { + if i == 0 { + fromTime := from + toTime := getFirstDateOfNextNMonth(fromTime, 1) + times = append(times, [2]time.Time{ + fromTime, toTime, + }) + } else { + fromTime := getFirstDateOfNextNMonth(from, i) + toTime := getFirstDateOfNextNMonth(fromTime, 1) + if toTime.After(to) { + toTime = to + times = append(times, [2]time.Time{ + fromTime, toTime, + }) + break + } + times = append(times, [2]time.Time{ + fromTime, toTime, + }) + } + + } + } + return times +} + +func getFirstDateOfNextNMonth(currentTime time.Time, n int) time.Time { + lastOfMonth := time.Date(currentTime.Year(), currentTime.Month(), 1, 0, 0, 0, 0, currentTime.Location()).AddDate(0, n, 0) + return lastOfMonth +} + +func (s *statisticsServer) GetGroupStatistics(_ context.Context, req *pbStatistics.GetGroupStatisticsReq) (*pbStatistics.GetGroupStatisticsResp, error) { + log.NewInfo("GetGroupStatistics", utils.GetSelfFuncName(), req.String()) + resp := &pbStatistics.GetGroupStatisticsResp{} + fromTime, toTime, err := ParseTimeFromTo(req.StatisticsReq.From, req.StatisticsReq.To) + if err != nil { + log.NewError("GetMessageStatistics", utils.GetSelfFuncName(), err.Error()) + return resp, err + } + increaseGroupNum, err := imdb.GetIncreaseGroupNum(fromTime, toTime.Add(time.Hour*24)) + if err != nil { + log.NewError("GetMessageStatistics", utils.GetSelfFuncName(), err.Error()) + return resp, err + } + totalGroupNum, err := imdb.GetTotalGroupNum() + if err != nil { + log.NewError("GetMessageStatistics", utils.GetSelfFuncName(), err.Error()) + return resp, err + } + resp.IncreaseGroupNum = increaseGroupNum + resp.TotalGroupNum = totalGroupNum + times := GetRangeDate(fromTime, toTime) + log.NewInfo("", "times:", times) + for _, v := range times { + num, err := imdb.GetIncreaseGroupNum(v[0], v[1]) + if err != nil { + log.NewError("", utils.GetSelfFuncName(), "GetIncreaseGroupNum", v, err.Error()) + } + resp.IncreaseGroupNumList = append(resp.IncreaseGroupNumList, &pbStatistics.DateNumList{ + Date: v[0].String(), + Num: num, + }) + num, err = imdb.GetGroupNum(v[0]) + if err != nil { + log.NewError("", utils.GetSelfFuncName(), "GetIncreaseGroupNum", v, err.Error()) + } + resp.TotalGroupNumList = append(resp.TotalGroupNumList, &pbStatistics.DateNumList{ + Date: v[0].String(), + Num: num, + }) + } + return resp, nil +} + +func (s *statisticsServer) GetMessageStatistics(_ context.Context, req *pbStatistics.GetMessageStatisticsReq) (*pbStatistics.GetMessageStatisticsResp, error) { + log.NewInfo("GetMessageStatistics", utils.GetSelfFuncName(), req.String()) + resp := &pbStatistics.GetMessageStatisticsResp{} + fromTime, toTime, err := ParseTimeFromTo(req.StatisticsReq.From, req.StatisticsReq.To) + if err != nil { + log.NewError("GetMessageStatistics", utils.GetSelfFuncName(), err.Error()) + return resp, err + } + privateMessageNum, err := imdb.GetPrivateMessageNum(fromTime, toTime.Add(time.Hour*24)) + if err != nil { + log.NewError("GetMessageStatistics", utils.GetSelfFuncName(), err.Error()) + return resp, err + } + groupMessageNum, err := imdb.GetGroupMessageNum(fromTime, toTime.Add(time.Hour*24)) + if err != nil { + log.NewError("GetMessageStatistics", utils.GetSelfFuncName(), err.Error()) + } + resp.PrivateMessageNum = privateMessageNum + resp.GroupMessageNum = groupMessageNum + times := GetRangeDate(fromTime, toTime) + fmt.Println(times) + for _, v := range times { + num, err := imdb.GetPrivateMessageNum(v[0], v[1]) + if err != nil { + log.NewError("", utils.GetSelfFuncName(), "GetIncreaseGroupNum", v, err.Error()) + } + resp.PrivateMessageNumList = append(resp.PrivateMessageNumList, &pbStatistics.DateNumList{ + Date: v[0].String(), + Num: num, + }) + + num, err = imdb.GetGroupMessageNum(v[0], v[1]) + if err != nil { + log.NewError("", utils.GetSelfFuncName(), "GetIncreaseGroupNum", v, err.Error()) + } + resp.GroupMessageNumList = append(resp.GroupMessageNumList, &pbStatistics.DateNumList{ + Date: v[0].String(), + Num: num, + }) + } + fmt.Println(resp) + return resp, nil +} + +func (s *statisticsServer) GetUserStatistics(_ context.Context, req *pbStatistics.GetUserStatisticsReq) (*pbStatistics.GetUserStatisticsResp, error) { + log.NewInfo("GetUserStatistics", utils.GetSelfFuncName(), req.String()) + resp := &pbStatistics.GetUserStatisticsResp{} + fromTime, toTime, err := ParseTimeFromTo(req.StatisticsReq.From, req.StatisticsReq.To) + if err != nil { + return resp, err + } + activeUserNum, err := imdb.GetActiveUserNum(fromTime, toTime.Add(time.Hour*24)) + if err != nil { + log.NewError("GetUserStatistics", utils.GetSelfFuncName(), err.Error()) + return resp, err + } + increaseUserNum, err := imdb.GetIncreaseUserNum(fromTime, toTime.Add(time.Hour*24)) + if err != nil { + log.NewError("GetUserStatistics", utils.GetSelfFuncName(), err.Error()) + return resp, err + } + totalUserNum, err := imdb.GetTotalUserNum() + if err != nil { + log.NewError("GetUserStatistics", utils.GetSelfFuncName(), err.Error()) + return resp, err + } + resp.ActiveUserNum = activeUserNum + resp.TotalUserNum = totalUserNum + resp.IncreaseUserNum = increaseUserNum + + times := GetRangeDate(fromTime, toTime) + for _, v := range times { + num, err := imdb.GetActiveUserNum(v[0], v[1]) + if err != nil { + log.NewError("", utils.GetSelfFuncName(), "GetIncreaseGroupNum", v, err.Error()) + } + resp.ActiveUserNumList = append(resp.ActiveUserNumList, &pbStatistics.DateNumList{ + Date: v[0].String(), + Num: num, + }) + num, err = imdb.GetTotalUserNumByDate(v[0]) + if err != nil { + log.NewError("", utils.GetSelfFuncName(), "GetTotalUserNumByDate", v, err.Error()) + } + resp.TotalUserNumList = append(resp.TotalUserNumList, &pbStatistics.DateNumList{ + Date: v[0].String(), + Num: num, + }) + num, err = imdb.GetIncreaseUserNum(v[0], v[1]) + if err != nil { + log.NewError("", utils.GetSelfFuncName(), "GetIncreaseUserNum", v, err.Error()) + } + resp.IncreaseUserNumList = append(resp.IncreaseUserNumList, &pbStatistics.DateNumList{ + Date: v[0].String(), + Num: num, + }) + } + return resp, nil +} diff --git a/internal/rpc/user/user.go b/internal/rpc/user/user.go index 5a6b77613..87529877e 100644 --- a/internal/rpc/user/user.go +++ b/internal/rpc/user/user.go @@ -243,9 +243,9 @@ func (s *userServer) UpdateUserInfo(ctx context.Context, req *pbUser.UpdateUserI return &pbUser.UpdateUserInfoResp{CommonResp: &pbUser.CommonResp{}}, nil } -func (s *userServer) GetUser(ctx context.Context, req *pbUser.GetUserReq) (*pbUser.GetUserResp, error) { +func (s *userServer) GetUserById(ctx context.Context, req *pbUser.GetUserByIdReq) (*pbUser.GetUserByIdResp, error) { log.NewInfo(req.OperationID, "GetUser args ", req.String()) - resp := &pbUser.GetUserResp{User: &pbUser.User{}} + resp := &pbUser.GetUserByIdResp{User: &pbUser.User{}} user, err := imdb.GetUserByUserID(req.UserId) if err != nil { return resp, nil @@ -259,7 +259,7 @@ func (s *userServer) GetUser(ctx context.Context, req *pbUser.GetUserReq) (*pbUs Nickname: user.Nickname, UserId: user.UserID, CreateTime: user.CreateTime.String(), - IsBlock: isBlock, + IsBlock: isBlock, } return resp, nil } @@ -271,11 +271,6 @@ func (s *userServer) GetUsers(ctx context.Context, req *pbUser.GetUsersReq) (*pb if err != nil { return resp, nil } - usersNum, err := imdb.GetUsersNumCount() - if err != nil { - return resp, nil - } - resp.UserNum = int32(usersNum) for _, v := range users { isBlock, err := imdb.UserIsBlock(v.UserID) if err == nil { @@ -356,11 +351,9 @@ func (s *userServer) GetBlockUsers(ctx context.Context, req *pbUser.GetBlockUser if err != nil { return resp, constant.ErrDB } - usersNum, err := imdb.GetBlockUsersNumCount() if err != nil { return resp, constant.ErrDB } - resp.BlockUserNum = int32(usersNum) for _, v := range blockUsers { resp.BlockUsers = append(resp.BlockUsers, &pbUser.BlockUser{ User: &pbUser.User{ @@ -380,16 +373,33 @@ func (s *userServer) GetBlockUsers(ctx context.Context, req *pbUser.GetBlockUser return resp, nil } -func (s *userServer) GetBlockUser(_ context.Context, req *pbUser.GetBlockUserReq) (*pbUser.GetBlockUserResp, error) { +func (s *userServer) GetBlockUserById(_ context.Context, req *pbUser.GetBlockUserByIdReq) (*pbUser.GetBlockUserByIdResp, error) { log.NewInfo(req.OperationID, "GetBlockUser args ", req.String()) - resp := &pbUser.GetBlockUserResp{} + resp := &pbUser.GetBlockUserByIdResp{} user, err := imdb.GetBlockUserById(req.UserId) if err != nil { + log.NewError(req.OperationID, utils.GetSelfFuncName(), err) return resp, err } - resp.BlockUser = &pbUser.BlockUser{} - resp.BlockUser.BeginDisableTime = (user.BeginDisableTime).String() - resp.BlockUser.EndDisableTime = (user.EndDisableTime).String() + resp.BlockUser = &pbUser.BlockUser{ + User: &pbUser.User{ + ProfilePhoto: user.User.FaceURL, + Nickname: user.User.Nickname, + UserId: user.User.UserID, + IsBlock: true, + }, + BeginDisableTime: (user.BeginDisableTime).String(), + EndDisableTime: (user.EndDisableTime).String(), + } return resp, nil +} +func (s *userServer) DeleteUser(_ context.Context, req *pbUser.DeleteUserReq) (*pbUser.DeleteUserResp, error) { + log.NewInfo(req.OperationID, utils.GetSelfFuncName(), req.String()) + resp := &pbUser.DeleteUserResp{} + if row := imdb.DeleteUser(req.UserId); row == 0 { + log.NewError(req.OperationID, utils.GetSelfFuncName(), "delete error", row) + return resp, constant.ErrDB + } + return resp, nil } diff --git a/pkg/cms_api_struct/message.go b/pkg/cms_api_struct/message.go index 2b3c73d17..a9e32f70e 100644 --- a/pkg/cms_api_struct/message.go +++ b/pkg/cms_api_struct/message.go @@ -1,8 +1,15 @@ package cms_api_struct +type BroadcastRequest struct { + Message string `json:"message"` +} + +type BroadcastResponse struct { +} + type CommonMessage struct { - ChatType int `json:"chat_type"` - MessageType int `json:"message_type"` + SessionType int `json:"session_type"` + ContentType int `json:"content_type"` SenderNickName string `json:"sender_nick_name"` SenderId int `json:"sender_id"` SearchContent string `json:"search_content"` @@ -21,6 +28,6 @@ type SearchMessageByUserResponse struct { type SearchMessageByGroupResponse struct { MessageList []struct { CommonMessage - Date string `json:"date"` + Date string `json:"date"` } `json:"massage_list"` } diff --git a/pkg/cms_api_struct/statistics.go b/pkg/cms_api_struct/statistics.go index 02aae7c91..2ff1efffa 100644 --- a/pkg/cms_api_struct/statistics.go +++ b/pkg/cms_api_struct/statistics.go @@ -1,11 +1,14 @@ package cms_api_struct type GetStatisticsRequest struct { - FromTime string `json:"from"` - ToTime string `json:"to"` + From string `form:"from" binding:"required"` + To string `form:"to" binding:"required"` +} + +type GetMessageStatisticsRequest struct { + GetStatisticsRequest } -// 单聊 type GetMessageStatisticsResponse struct { PrivateMessageNum int `json:"private_message_num"` GroupMessageNum int `json:"group_message_num"` @@ -19,7 +22,10 @@ type GetMessageStatisticsResponse struct { } `json:"group_message_num_list"` } -// 用户统计 +type GetUserStatisticsRequest struct { + GetStatisticsRequest +} + type GetUserStatisticsResponse struct { IncreaseUserNum int `json:"increase_user_num"` ActiveUserNum int `json:"active_user_num"` @@ -34,12 +40,16 @@ type GetUserStatisticsResponse struct { } `json:"active_user_num_list"` TotalUserNumList []struct { Date string `json:"date"` - TotalUserNum string `json:"total_user_num"` + TotalUserNum int `json:"total_user_num"` } `json:"total_user_num_list"` } +type GetGroupStatisticsRequest struct { + GetStatisticsRequest +} + // 群聊统计 -type GetGroupMessageStatisticsResponse struct { +type GetGroupStatisticsResponse struct { IncreaseGroupNum int `json:"increase_group_num"` TotalGroupNum int `json:"total_group_num"` IncreaseGroupNumList []struct { @@ -48,22 +58,32 @@ type GetGroupMessageStatisticsResponse struct { } `json:"increase_group_num_list"` TotalGroupNumList []struct { Date string `json:"date"` - TotalGroupNum string `json:"total_group_num"` + TotalGroupNum int `json:"total_group_num"` } `json:"total_group_num_list"` } -type GetActiveUserStatisticsResponse struct { +type GetActiveUserRequest struct { + GetStatisticsRequest + // RequestPagination +} + +type GetActiveUserResponse struct { ActiveUserList []struct { NickName string `json:"nick_name"` - Id int `json:"id"` + UserId string `json:"user_id"` MessageNum int `json:"message_num"` } `json:"active_user_list"` } -type GetActiveGroupStatisticsResponse struct { +type GetActiveGroupRequest struct { + GetStatisticsRequest + // RequestPagination +} + +type GetActiveGroupResponse struct { ActiveGroupList []struct { - GroupNickName string `json:"group_nick_name"` - GroupId int `json:"group_id"` - MessageNum int `json:"message_num"` + GroupName string `json:"group_name"` + GroupId string `json:"group_id"` + MessageNum int `json:"message_num"` } `json:"active_group_list"` } diff --git a/pkg/cms_api_struct/user.go b/pkg/cms_api_struct/user.go index 902171614..b34e52101 100644 --- a/pkg/cms_api_struct/user.go +++ b/pkg/cms_api_struct/user.go @@ -21,8 +21,7 @@ type GetUsersRequest struct { } type GetUsersResponse struct { - Users []*UserResponse `json:"users"` - UserNum int `json:"user_num"` + Users []*UserResponse `json:"users"` ResponsePagination } @@ -78,8 +77,7 @@ type GetBlockUsersRequest struct { } type GetBlockUsersResponse struct { - BlockUsers []BlockUser `json:"block_users"` - BlockUserNum int `json:"block_user_num"` + BlockUsers []BlockUser `json:"block_users"` ResponsePagination } @@ -90,3 +88,10 @@ type GetBlockUserRequest struct { type GetBlockUserResponse struct { BlockUser } + +type DeleteUserRequest struct { + UserId string `json:"user_id" binding:"required"` +} + +type DeleteUserResponse struct { +} diff --git a/pkg/common/config/config.go b/pkg/common/config/config.go index 2e6870557..d862224f6 100644 --- a/pkg/common/config/config.go +++ b/pkg/common/config/config.go @@ -77,6 +77,7 @@ type config struct { RpcGetTokenPort []int `yaml:"rpcGetTokenPort"` } RpcRegisterName struct { + OpenImStatisticsName string `yaml:"OpenImStatisticsName"` OpenImUserName string `yaml:"openImUserName"` OpenImFriendName string `yaml:"openImFriendName"` OpenImOfflineMessageName string `yaml:"openImOfflineMessageName"` diff --git a/pkg/common/constant/constant.go b/pkg/common/constant/constant.go index 2b8bfc985..c18ab0971 100644 --- a/pkg/common/constant/constant.go +++ b/pkg/common/constant/constant.go @@ -109,11 +109,16 @@ const ( IsSenderSync = "senderSync" //GroupStatus - GroupOk = 0 - GroupBanChat = 1 - GroupDisband = 2 - GroupBaned = 3 + GroupOk = 0 + GroupBanChat = 1 + GroupDisband = 2 + GroupBaned = 3 GroupBanPrivateChat = 4 + + //timeInterval + Day = 1 + Week = 7 + Month = 31 ) var ContentType2PushContent = map[int64]string{ @@ -159,4 +164,4 @@ func GroupIsBanPrivateChat(status int32) bool { return false } return true -} \ No newline at end of file +} diff --git a/pkg/common/db/mysql_model/im_mysql_model/statistics_model.go b/pkg/common/db/mysql_model/im_mysql_model/statistics_model.go new file mode 100644 index 000000000..2f6c969f9 --- /dev/null +++ b/pkg/common/db/mysql_model/im_mysql_model/statistics_model.go @@ -0,0 +1,153 @@ +package im_mysql_model + +import ( + "Open_IM/pkg/common/db" + "time" +) + +func GetActiveUserNum(from, to time.Time) (int32, error) { + dbConn, err := db.DB.MysqlDB.DefaultGormDB() + if err != nil { + return 0, err + } + dbConn.LogMode(true) + var num int32 + err = dbConn.Table("chat_logs").Select("count(distinct(send_id))").Where("create_time >= ? and create_time <= ?", from, to).Count(&num).Error + return num, err +} + +func GetIncreaseUserNum(from, to time.Time) (int32, error) { + dbConn, err := db.DB.MysqlDB.DefaultGormDB() + if err != nil { + return 0, err + } + dbConn.LogMode(true) + var num int32 + err = dbConn.Table("users").Where("create_time >= ? and create_time <= ?", from, to).Count(&num).Error + return num, err +} + +func GetTotalUserNum() (int32, error) { + dbConn, err := db.DB.MysqlDB.DefaultGormDB() + if err != nil { + return 0, err + } + dbConn.LogMode(true) + var num int32 + err = dbConn.Table("users").Count(&num).Error + return num, err +} + +func GetTotalUserNumByDate(to time.Time) (int32, error) { + dbConn, err := db.DB.MysqlDB.DefaultGormDB() + if err != nil { + return 0, err + } + dbConn.LogMode(true) + var num int32 + err = dbConn.Table("users").Where("create_time <= ?", to).Count(&num).Error + return num, err +} + +func GetPrivateMessageNum(from, to time.Time) (int32, error) { + dbConn, err := db.DB.MysqlDB.DefaultGormDB() + if err != nil { + return 0, err + } + dbConn.LogMode(true) + var num int32 + err = dbConn.Table("chat_logs").Where("create_time >= ? and create_time <= ? and session_type = ?", from, to, 1).Count(&num).Error + return num, err +} + +func GetGroupMessageNum(from, to time.Time) (int32, error) { + dbConn, err := db.DB.MysqlDB.DefaultGormDB() + if err != nil { + return 0, err + } + dbConn.LogMode(true) + var num int32 + err = dbConn.Table("chat_logs").Where("create_time >= ? and create_time <= ? and session_type = ?", from, to, 2).Count(&num).Error + return num, err +} + +func GetIncreaseGroupNum(from, to time.Time) (int32, error) { + dbConn, err := db.DB.MysqlDB.DefaultGormDB() + if err != nil { + return 0, err + } + dbConn.LogMode(true) + var num int32 + err = dbConn.Table("groups").Where("create_time >= ? and create_time <= ?", from, to).Count(&num).Error + return num, err +} + +func GetTotalGroupNum() (int32, error) { + dbConn, err := db.DB.MysqlDB.DefaultGormDB() + if err != nil { + return 0, err + } + dbConn.LogMode(true) + var num int32 + err = dbConn.Table("groups").Count(&num).Error + return num, err +} + +func GetGroupNum(to time.Time) (int32, error) { + dbConn, err := db.DB.MysqlDB.DefaultGormDB() + if err != nil { + return 0, err + } + dbConn.LogMode(true) + var num int32 + err = dbConn.Table("groups").Where("create_time <= ?", to).Count(&num).Error + return num, err +} + +type activeGroup struct { + Name string + Id string `gorm:"column:recv_id"` + MessageNum int `gorm:"column:message_num"` +} + +func GetActiveGroups(from, to time.Time, limit int) ([]*activeGroup, error) { + dbConn, err := db.DB.MysqlDB.DefaultGormDB() + var activeGroups []*activeGroup + if err != nil { + return activeGroups, err + } + dbConn.LogMode(true) + err = dbConn.Table("chat_logs").Select("recv_id, count(*) as message_num").Where("create_time >= ? and create_time <= ? and session_type = ?", from, to, 2).Group("recv_id").Limit(limit).Order("message_num DESC").Find(&activeGroups).Error + for _, activeGroup := range activeGroups { + group := db.Group{ + GroupID: activeGroup.Id, + } + dbConn.Model(&group).Select("group_id", "name").Find(&group) + activeGroup.Name = group.GroupName + } + return activeGroups, err +} + +type activeUser struct { + Name string + Id string `gorm:"column:send_id"` + MessageNum int `gorm:"column:message_num"` +} + +func GetActiveUsers(from, to time.Time, limit int) ([]*activeUser, error) { + dbConn, err := db.DB.MysqlDB.DefaultGormDB() + var activeUsers []*activeUser + if err != nil { + return activeUsers, err + } + dbConn.LogMode(true) + err = dbConn.Table("chat_logs").Select("send_id, count(*) as message_num").Where("create_time >= ? and create_time <= ? and session_type = ?", from, to, 1).Group("send_id").Limit(limit).Order("message_num DESC").Find(&activeUsers).Error + for _, activeUser := range activeUsers { + user := db.Users{ + UserID: activeUser.Id, + } + dbConn.Model(&user).Select("user_id, name").Find(&user) + activeUser.Name = user.Nickname + } + return activeUsers, err +} 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 7b5596193..96bd5c89f 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 @@ -137,19 +137,6 @@ func GetUsers(showNumber, pageNumber int32) ([]db.Users, error) { return users, err } -func GetUsersNumCount() (int, error) { - dbConn, err := db.DB.MysqlDB.DefaultGormDB() - if err != nil { - return 0, err - } - dbConn.LogMode(true) - var count int - if err := dbConn.Model(&db.Users{}).Count(&count).Error; err != nil { - return 0, err - } - return count, nil -} - func AddUser(userId, phoneNumber, name string) error { dbConn, err := db.DB.MysqlDB.DefaultGormDB() if err != nil { @@ -235,7 +222,7 @@ func GetBlockUserById(userId string) (BlockUserInfo, error) { if err != nil { return blockUserInfo, err } - if err = dbConn.Find(&blockUser).Error; err != nil { + if err = dbConn.Find(&blockUser).First(&blockUser).Error; err != nil { return blockUserInfo, err } user := db.Users{ @@ -247,6 +234,8 @@ func GetBlockUserById(userId string) (BlockUserInfo, error) { blockUserInfo.User.UserID = user.UserID blockUserInfo.User.FaceURL = user.UserID blockUserInfo.User.Nickname = user.Nickname + blockUserInfo.BeginDisableTime = blockUser.BeginDisableTime + blockUserInfo.EndDisableTime = blockUser.EndDisableTime return blockUserInfo, nil } @@ -258,7 +247,9 @@ func GetBlockUsers(showNumber, pageNumber int32) ([]BlockUserInfo, error) { return blockUserInfos, err } dbConn.LogMode(true) - err = dbConn.Limit(showNumber).Offset(showNumber * (pageNumber - 1)).Find(&blockUsers).Error + if err = dbConn.Limit(showNumber).Offset(showNumber * (pageNumber - 1)).Find(&blockUsers).Error; err != nil { + return blockUserInfos, err + } for _, blockUser := range blockUsers { var user db.Users if err := dbConn.Table("users").Where("user_id=?", blockUser.UserId).First(&user).Error; err == nil { diff --git a/pkg/proto/message/message.pb.go b/pkg/proto/message/message.pb.go new file mode 100644 index 000000000..dcbbd907d --- /dev/null +++ b/pkg/proto/message/message.pb.go @@ -0,0 +1,923 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.26.0 +// protoc v3.19.3 +// source: message/message.proto + +package message + +import ( + context "context" + grpc "google.golang.org/grpc" + codes "google.golang.org/grpc/codes" + status "google.golang.org/grpc/status" + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + reflect "reflect" + sync "sync" +) + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +type BoradcastMessageReq struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Message string `protobuf:"bytes,1,opt,name=Message,proto3" json:"Message,omitempty"` + OperationID string `protobuf:"bytes,2,opt,name=OperationID,proto3" json:"OperationID,omitempty"` +} + +func (x *BoradcastMessageReq) Reset() { + *x = BoradcastMessageReq{} + if protoimpl.UnsafeEnabled { + mi := &file_message_message_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *BoradcastMessageReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*BoradcastMessageReq) ProtoMessage() {} + +func (x *BoradcastMessageReq) ProtoReflect() protoreflect.Message { + mi := &file_message_message_proto_msgTypes[0] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use BoradcastMessageReq.ProtoReflect.Descriptor instead. +func (*BoradcastMessageReq) Descriptor() ([]byte, []int) { + return file_message_message_proto_rawDescGZIP(), []int{0} +} + +func (x *BoradcastMessageReq) GetMessage() string { + if x != nil { + return x.Message + } + return "" +} + +func (x *BoradcastMessageReq) GetOperationID() string { + if x != nil { + return x.OperationID + } + return "" +} + +type BoradcastMessageResp struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *BoradcastMessageResp) Reset() { + *x = BoradcastMessageResp{} + if protoimpl.UnsafeEnabled { + mi := &file_message_message_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *BoradcastMessageResp) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*BoradcastMessageResp) ProtoMessage() {} + +func (x *BoradcastMessageResp) ProtoReflect() protoreflect.Message { + mi := &file_message_message_proto_msgTypes[1] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use BoradcastMessageResp.ProtoReflect.Descriptor instead. +func (*BoradcastMessageResp) Descriptor() ([]byte, []int) { + return file_message_message_proto_rawDescGZIP(), []int{1} +} + +type MassSendMessageReq struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Message string `protobuf:"bytes,1,opt,name=Message,proto3" json:"Message,omitempty"` + UserIds []string `protobuf:"bytes,2,rep,name=UserIds,proto3" json:"UserIds,omitempty"` + OperationID string `protobuf:"bytes,3,opt,name=OperationID,proto3" json:"OperationID,omitempty"` +} + +func (x *MassSendMessageReq) Reset() { + *x = MassSendMessageReq{} + if protoimpl.UnsafeEnabled { + mi := &file_message_message_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *MassSendMessageReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*MassSendMessageReq) ProtoMessage() {} + +func (x *MassSendMessageReq) ProtoReflect() protoreflect.Message { + mi := &file_message_message_proto_msgTypes[2] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use MassSendMessageReq.ProtoReflect.Descriptor instead. +func (*MassSendMessageReq) Descriptor() ([]byte, []int) { + return file_message_message_proto_rawDescGZIP(), []int{2} +} + +func (x *MassSendMessageReq) GetMessage() string { + if x != nil { + return x.Message + } + return "" +} + +func (x *MassSendMessageReq) GetUserIds() []string { + if x != nil { + return x.UserIds + } + return nil +} + +func (x *MassSendMessageReq) GetOperationID() string { + if x != nil { + return x.OperationID + } + return "" +} + +type MassSendMessageResp struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *MassSendMessageResp) Reset() { + *x = MassSendMessageResp{} + if protoimpl.UnsafeEnabled { + mi := &file_message_message_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *MassSendMessageResp) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*MassSendMessageResp) ProtoMessage() {} + +func (x *MassSendMessageResp) ProtoReflect() protoreflect.Message { + mi := &file_message_message_proto_msgTypes[3] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use MassSendMessageResp.ProtoReflect.Descriptor instead. +func (*MassSendMessageResp) Descriptor() ([]byte, []int) { + return file_message_message_proto_rawDescGZIP(), []int{3} +} + +type GetChatLogsReq struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Content string `protobuf:"bytes,1,opt,name=content,proto3" json:"content,omitempty"` + UserId string `protobuf:"bytes,2,opt,name=UserId,proto3" json:"UserId,omitempty"` + Date string `protobuf:"bytes,3,opt,name=Date,proto3" json:"Date,omitempty"` + SessionType int32 `protobuf:"varint,4,opt,name=SessionType,proto3" json:"SessionType,omitempty"` + ContentType int32 `protobuf:"varint,5,opt,name=ContentType,proto3" json:"ContentType,omitempty"` + OperationID string `protobuf:"bytes,6,opt,name=OperationID,proto3" json:"OperationID,omitempty"` +} + +func (x *GetChatLogsReq) Reset() { + *x = GetChatLogsReq{} + if protoimpl.UnsafeEnabled { + mi := &file_message_message_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetChatLogsReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetChatLogsReq) ProtoMessage() {} + +func (x *GetChatLogsReq) ProtoReflect() protoreflect.Message { + mi := &file_message_message_proto_msgTypes[4] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetChatLogsReq.ProtoReflect.Descriptor instead. +func (*GetChatLogsReq) Descriptor() ([]byte, []int) { + return file_message_message_proto_rawDescGZIP(), []int{4} +} + +func (x *GetChatLogsReq) GetContent() string { + if x != nil { + return x.Content + } + return "" +} + +func (x *GetChatLogsReq) GetUserId() string { + if x != nil { + return x.UserId + } + return "" +} + +func (x *GetChatLogsReq) GetDate() string { + if x != nil { + return x.Date + } + return "" +} + +func (x *GetChatLogsReq) GetSessionType() int32 { + if x != nil { + return x.SessionType + } + return 0 +} + +func (x *GetChatLogsReq) GetContentType() int32 { + if x != nil { + return x.ContentType + } + return 0 +} + +func (x *GetChatLogsReq) GetOperationID() string { + if x != nil { + return x.OperationID + } + return "" +} + +type GetChatLogsResp struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + SessionType int32 `protobuf:"varint,1,opt,name=SessionType,proto3" json:"SessionType,omitempty"` + ContentType int32 `protobuf:"varint,2,opt,name=ContentType,proto3" json:"ContentType,omitempty"` + SenderNickName string `protobuf:"bytes,3,opt,name=SenderNickName,proto3" json:"SenderNickName,omitempty"` + ReciverNickName string `protobuf:"bytes,4,opt,name=ReciverNickName,proto3" json:"ReciverNickName,omitempty"` + SearchContent string `protobuf:"bytes,5,opt,name=SearchContent,proto3" json:"SearchContent,omitempty"` + Content string `protobuf:"bytes,6,opt,name=Content,proto3" json:"Content,omitempty"` + Date string `protobuf:"bytes,7,opt,name=Date,proto3" json:"Date,omitempty"` +} + +func (x *GetChatLogsResp) Reset() { + *x = GetChatLogsResp{} + if protoimpl.UnsafeEnabled { + mi := &file_message_message_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetChatLogsResp) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetChatLogsResp) ProtoMessage() {} + +func (x *GetChatLogsResp) ProtoReflect() protoreflect.Message { + mi := &file_message_message_proto_msgTypes[5] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetChatLogsResp.ProtoReflect.Descriptor instead. +func (*GetChatLogsResp) Descriptor() ([]byte, []int) { + return file_message_message_proto_rawDescGZIP(), []int{5} +} + +func (x *GetChatLogsResp) GetSessionType() int32 { + if x != nil { + return x.SessionType + } + return 0 +} + +func (x *GetChatLogsResp) GetContentType() int32 { + if x != nil { + return x.ContentType + } + return 0 +} + +func (x *GetChatLogsResp) GetSenderNickName() string { + if x != nil { + return x.SenderNickName + } + return "" +} + +func (x *GetChatLogsResp) GetReciverNickName() string { + if x != nil { + return x.ReciverNickName + } + return "" +} + +func (x *GetChatLogsResp) GetSearchContent() string { + if x != nil { + return x.SearchContent + } + return "" +} + +func (x *GetChatLogsResp) GetContent() string { + if x != nil { + return x.Content + } + return "" +} + +func (x *GetChatLogsResp) GetDate() string { + if x != nil { + return x.Date + } + return "" +} + +type WithdrawMessageReq struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ServerMsgId string `protobuf:"bytes,1,opt,name=ServerMsgId,proto3" json:"ServerMsgId,omitempty"` + OperationID string `protobuf:"bytes,2,opt,name=OperationID,proto3" json:"OperationID,omitempty"` +} + +func (x *WithdrawMessageReq) Reset() { + *x = WithdrawMessageReq{} + if protoimpl.UnsafeEnabled { + mi := &file_message_message_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *WithdrawMessageReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*WithdrawMessageReq) ProtoMessage() {} + +func (x *WithdrawMessageReq) ProtoReflect() protoreflect.Message { + mi := &file_message_message_proto_msgTypes[6] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use WithdrawMessageReq.ProtoReflect.Descriptor instead. +func (*WithdrawMessageReq) Descriptor() ([]byte, []int) { + return file_message_message_proto_rawDescGZIP(), []int{6} +} + +func (x *WithdrawMessageReq) GetServerMsgId() string { + if x != nil { + return x.ServerMsgId + } + return "" +} + +func (x *WithdrawMessageReq) GetOperationID() string { + if x != nil { + return x.OperationID + } + return "" +} + +type WithdrawMessageResp struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *WithdrawMessageResp) Reset() { + *x = WithdrawMessageResp{} + if protoimpl.UnsafeEnabled { + mi := &file_message_message_proto_msgTypes[7] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *WithdrawMessageResp) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*WithdrawMessageResp) ProtoMessage() {} + +func (x *WithdrawMessageResp) ProtoReflect() protoreflect.Message { + mi := &file_message_message_proto_msgTypes[7] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use WithdrawMessageResp.ProtoReflect.Descriptor instead. +func (*WithdrawMessageResp) Descriptor() ([]byte, []int) { + return file_message_message_proto_rawDescGZIP(), []int{7} +} + +var File_message_message_proto protoreflect.FileDescriptor + +var file_message_message_proto_rawDesc = []byte{ + 0x0a, 0x15, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x2f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, + 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, + 0x22, 0x51, 0x0a, 0x13, 0x42, 0x6f, 0x72, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x4d, 0x65, 0x73, + 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x12, 0x18, 0x0a, 0x07, 0x4d, 0x65, 0x73, 0x73, 0x61, + 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, + 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x49, 0x44, 0x22, 0x16, 0x0a, 0x14, 0x42, 0x6f, 0x72, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, + 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x22, 0x6a, 0x0a, 0x12, 0x4d, + 0x61, 0x73, 0x73, 0x53, 0x65, 0x6e, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, + 0x71, 0x12, 0x18, 0x0a, 0x07, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x07, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x55, + 0x73, 0x65, 0x72, 0x49, 0x64, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, 0x55, 0x73, + 0x65, 0x72, 0x49, 0x64, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x4f, 0x70, 0x65, 0x72, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x22, 0x15, 0x0a, 0x13, 0x4d, 0x61, 0x73, 0x73, 0x53, + 0x65, 0x6e, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x22, 0xbc, + 0x01, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x43, 0x68, 0x61, 0x74, 0x4c, 0x6f, 0x67, 0x73, 0x52, 0x65, + 0x71, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x55, + 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x55, 0x73, 0x65, + 0x72, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x44, 0x61, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x04, 0x44, 0x61, 0x74, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x53, 0x65, 0x73, 0x73, 0x69, + 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x53, 0x65, + 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x43, 0x6f, 0x6e, + 0x74, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, + 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x4f, + 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x22, 0xfb, 0x01, + 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x43, 0x68, 0x61, 0x74, 0x4c, 0x6f, 0x67, 0x73, 0x52, 0x65, 0x73, + 0x70, 0x12, 0x20, 0x0a, 0x0b, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x54, + 0x79, 0x70, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x54, 0x79, + 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, + 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x4e, + 0x69, 0x63, 0x6b, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x53, + 0x65, 0x6e, 0x64, 0x65, 0x72, 0x4e, 0x69, 0x63, 0x6b, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x28, 0x0a, + 0x0f, 0x52, 0x65, 0x63, 0x69, 0x76, 0x65, 0x72, 0x4e, 0x69, 0x63, 0x6b, 0x4e, 0x61, 0x6d, 0x65, + 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x52, 0x65, 0x63, 0x69, 0x76, 0x65, 0x72, 0x4e, + 0x69, 0x63, 0x6b, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x53, 0x65, 0x61, 0x72, 0x63, + 0x68, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, + 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x18, 0x0a, + 0x07, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, + 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x44, 0x61, 0x74, 0x65, 0x18, + 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x44, 0x61, 0x74, 0x65, 0x22, 0x58, 0x0a, 0x12, 0x57, + 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, + 0x71, 0x12, 0x20, 0x0a, 0x0b, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x49, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4d, 0x73, + 0x67, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x22, 0x15, 0x0a, 0x13, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, + 0x77, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x32, 0xb8, 0x02, 0x0a, + 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x4f, 0x0a, 0x10, 0x42, 0x6f, 0x72, 0x61, + 0x64, 0x63, 0x61, 0x73, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x1c, 0x2e, 0x6d, + 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x2e, 0x42, 0x6f, 0x72, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, + 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x1d, 0x2e, 0x6d, 0x65, 0x73, + 0x73, 0x61, 0x67, 0x65, 0x2e, 0x42, 0x6f, 0x72, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x4d, 0x65, + 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x4c, 0x0a, 0x0f, 0x4d, 0x61, 0x73, + 0x73, 0x53, 0x65, 0x6e, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x1b, 0x2e, 0x6d, + 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x2e, 0x4d, 0x61, 0x73, 0x73, 0x53, 0x65, 0x6e, 0x64, 0x4d, + 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x6d, 0x65, 0x73, 0x73, + 0x61, 0x67, 0x65, 0x2e, 0x4d, 0x61, 0x73, 0x73, 0x53, 0x65, 0x6e, 0x64, 0x4d, 0x65, 0x73, 0x73, + 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x40, 0x0a, 0x0b, 0x47, 0x65, 0x74, 0x43, 0x68, + 0x61, 0x74, 0x4c, 0x6f, 0x67, 0x73, 0x12, 0x17, 0x2e, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, + 0x2e, 0x47, 0x65, 0x74, 0x43, 0x68, 0x61, 0x74, 0x4c, 0x6f, 0x67, 0x73, 0x52, 0x65, 0x71, 0x1a, + 0x18, 0x2e, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x68, 0x61, + 0x74, 0x4c, 0x6f, 0x67, 0x73, 0x52, 0x65, 0x73, 0x70, 0x12, 0x4c, 0x0a, 0x0f, 0x57, 0x69, 0x74, + 0x68, 0x64, 0x72, 0x61, 0x77, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x1b, 0x2e, 0x6d, + 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x2e, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x4d, + 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x6d, 0x65, 0x73, 0x73, + 0x61, 0x67, 0x65, 0x2e, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x4d, 0x65, 0x73, 0x73, + 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x42, 0x13, 0x5a, 0x11, 0x2e, 0x2f, 0x6d, 0x65, 0x73, + 0x73, 0x61, 0x67, 0x65, 0x3b, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x62, 0x06, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_message_message_proto_rawDescOnce sync.Once + file_message_message_proto_rawDescData = file_message_message_proto_rawDesc +) + +func file_message_message_proto_rawDescGZIP() []byte { + file_message_message_proto_rawDescOnce.Do(func() { + file_message_message_proto_rawDescData = protoimpl.X.CompressGZIP(file_message_message_proto_rawDescData) + }) + return file_message_message_proto_rawDescData +} + +var file_message_message_proto_msgTypes = make([]protoimpl.MessageInfo, 8) +var file_message_message_proto_goTypes = []interface{}{ + (*BoradcastMessageReq)(nil), // 0: message.BoradcastMessageReq + (*BoradcastMessageResp)(nil), // 1: message.BoradcastMessageResp + (*MassSendMessageReq)(nil), // 2: message.MassSendMessageReq + (*MassSendMessageResp)(nil), // 3: message.MassSendMessageResp + (*GetChatLogsReq)(nil), // 4: message.GetChatLogsReq + (*GetChatLogsResp)(nil), // 5: message.GetChatLogsResp + (*WithdrawMessageReq)(nil), // 6: message.WithdrawMessageReq + (*WithdrawMessageResp)(nil), // 7: message.WithdrawMessageResp +} +var file_message_message_proto_depIdxs = []int32{ + 0, // 0: message.message.BoradcastMessage:input_type -> message.BoradcastMessageReq + 2, // 1: message.message.MassSendMessage:input_type -> message.MassSendMessageReq + 4, // 2: message.message.GetChatLogs:input_type -> message.GetChatLogsReq + 6, // 3: message.message.WithdrawMessage:input_type -> message.WithdrawMessageReq + 1, // 4: message.message.BoradcastMessage:output_type -> message.BoradcastMessageResp + 3, // 5: message.message.MassSendMessage:output_type -> message.MassSendMessageResp + 5, // 6: message.message.GetChatLogs:output_type -> message.GetChatLogsResp + 7, // 7: message.message.WithdrawMessage:output_type -> message.WithdrawMessageResp + 4, // [4:8] is the sub-list for method output_type + 0, // [0:4] is the sub-list for method input_type + 0, // [0:0] is the sub-list for extension type_name + 0, // [0:0] is the sub-list for extension extendee + 0, // [0:0] is the sub-list for field type_name +} + +func init() { file_message_message_proto_init() } +func file_message_message_proto_init() { + if File_message_message_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_message_message_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*BoradcastMessageReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_message_message_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*BoradcastMessageResp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_message_message_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*MassSendMessageReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_message_message_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*MassSendMessageResp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_message_message_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetChatLogsReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_message_message_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetChatLogsResp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_message_message_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*WithdrawMessageReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_message_message_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*WithdrawMessageResp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_message_message_proto_rawDesc, + NumEnums: 0, + NumMessages: 8, + NumExtensions: 0, + NumServices: 1, + }, + GoTypes: file_message_message_proto_goTypes, + DependencyIndexes: file_message_message_proto_depIdxs, + MessageInfos: file_message_message_proto_msgTypes, + }.Build() + File_message_message_proto = out.File + file_message_message_proto_rawDesc = nil + file_message_message_proto_goTypes = nil + file_message_message_proto_depIdxs = nil +} + +// Reference imports to suppress errors if they are not otherwise used. +var _ context.Context +var _ grpc.ClientConnInterface + +// 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.SupportPackageIsVersion6 + +// MessageClient is the client API for Message service. +// +// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream. +type MessageClient interface { + BoradcastMessage(ctx context.Context, in *BoradcastMessageReq, opts ...grpc.CallOption) (*BoradcastMessageResp, error) + MassSendMessage(ctx context.Context, in *MassSendMessageReq, opts ...grpc.CallOption) (*MassSendMessageResp, error) + GetChatLogs(ctx context.Context, in *GetChatLogsReq, opts ...grpc.CallOption) (*GetChatLogsResp, error) + WithdrawMessage(ctx context.Context, in *WithdrawMessageReq, opts ...grpc.CallOption) (*WithdrawMessageResp, error) +} + +type messageClient struct { + cc grpc.ClientConnInterface +} + +func NewMessageClient(cc grpc.ClientConnInterface) MessageClient { + return &messageClient{cc} +} + +func (c *messageClient) BoradcastMessage(ctx context.Context, in *BoradcastMessageReq, opts ...grpc.CallOption) (*BoradcastMessageResp, error) { + out := new(BoradcastMessageResp) + err := c.cc.Invoke(ctx, "/message.message/BoradcastMessage", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *messageClient) MassSendMessage(ctx context.Context, in *MassSendMessageReq, opts ...grpc.CallOption) (*MassSendMessageResp, error) { + out := new(MassSendMessageResp) + err := c.cc.Invoke(ctx, "/message.message/MassSendMessage", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *messageClient) GetChatLogs(ctx context.Context, in *GetChatLogsReq, opts ...grpc.CallOption) (*GetChatLogsResp, error) { + out := new(GetChatLogsResp) + err := c.cc.Invoke(ctx, "/message.message/GetChatLogs", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *messageClient) WithdrawMessage(ctx context.Context, in *WithdrawMessageReq, opts ...grpc.CallOption) (*WithdrawMessageResp, error) { + out := new(WithdrawMessageResp) + err := c.cc.Invoke(ctx, "/message.message/WithdrawMessage", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +// MessageServer is the server API for Message service. +type MessageServer interface { + BoradcastMessage(context.Context, *BoradcastMessageReq) (*BoradcastMessageResp, error) + MassSendMessage(context.Context, *MassSendMessageReq) (*MassSendMessageResp, error) + GetChatLogs(context.Context, *GetChatLogsReq) (*GetChatLogsResp, error) + WithdrawMessage(context.Context, *WithdrawMessageReq) (*WithdrawMessageResp, error) +} + +// UnimplementedMessageServer can be embedded to have forward compatible implementations. +type UnimplementedMessageServer struct { +} + +func (*UnimplementedMessageServer) BoradcastMessage(context.Context, *BoradcastMessageReq) (*BoradcastMessageResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method BoradcastMessage not implemented") +} +func (*UnimplementedMessageServer) MassSendMessage(context.Context, *MassSendMessageReq) (*MassSendMessageResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method MassSendMessage not implemented") +} +func (*UnimplementedMessageServer) GetChatLogs(context.Context, *GetChatLogsReq) (*GetChatLogsResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetChatLogs not implemented") +} +func (*UnimplementedMessageServer) WithdrawMessage(context.Context, *WithdrawMessageReq) (*WithdrawMessageResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method WithdrawMessage not implemented") +} + +func RegisterMessageServer(s *grpc.Server, srv MessageServer) { + s.RegisterService(&_Message_serviceDesc, srv) +} + +func _Message_BoradcastMessage_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(BoradcastMessageReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(MessageServer).BoradcastMessage(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/message.message/BoradcastMessage", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(MessageServer).BoradcastMessage(ctx, req.(*BoradcastMessageReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _Message_MassSendMessage_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(MassSendMessageReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(MessageServer).MassSendMessage(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/message.message/MassSendMessage", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(MessageServer).MassSendMessage(ctx, req.(*MassSendMessageReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _Message_GetChatLogs_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetChatLogsReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(MessageServer).GetChatLogs(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/message.message/GetChatLogs", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(MessageServer).GetChatLogs(ctx, req.(*GetChatLogsReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _Message_WithdrawMessage_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(WithdrawMessageReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(MessageServer).WithdrawMessage(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/message.message/WithdrawMessage", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(MessageServer).WithdrawMessage(ctx, req.(*WithdrawMessageReq)) + } + return interceptor(ctx, in, info, handler) +} + +var _Message_serviceDesc = grpc.ServiceDesc{ + ServiceName: "message.message", + HandlerType: (*MessageServer)(nil), + Methods: []grpc.MethodDesc{ + { + MethodName: "BoradcastMessage", + Handler: _Message_BoradcastMessage_Handler, + }, + { + MethodName: "MassSendMessage", + Handler: _Message_MassSendMessage_Handler, + }, + { + MethodName: "GetChatLogs", + Handler: _Message_GetChatLogs_Handler, + }, + { + MethodName: "WithdrawMessage", + Handler: _Message_WithdrawMessage_Handler, + }, + }, + Streams: []grpc.StreamDesc{}, + Metadata: "message/message.proto", +} diff --git a/pkg/proto/message/message.proto b/pkg/proto/message/message.proto new file mode 100644 index 000000000..7b557dfbd --- /dev/null +++ b/pkg/proto/message/message.proto @@ -0,0 +1,57 @@ +syntax = "proto3"; +option go_package = "./message;message"; +package message; + +message BoradcastMessageReq { + string Message = 1; + string OperationID = 2; +} + +message BoradcastMessageResp { + +} + +message MassSendMessageReq { + string Message = 1; + repeated string UserIds = 2; + string OperationID = 3; +} + +message MassSendMessageResp { + +} + +message GetChatLogsReq { + string content = 1; + string UserId = 2; + string Date = 3; + int32 SessionType = 4; + int32 ContentType = 5; + string OperationID = 6; +} + +message GetChatLogsResp { + int32 SessionType = 1; + int32 ContentType = 2; + string SenderNickName = 3; + string ReciverNickName = 4; + string SearchContent = 5; + string Content = 6; + string Date = 7; +} + +message WithdrawMessageReq { + string ServerMsgId = 1; + string OperationID = 2; +} + +message WithdrawMessageResp { + +} + +service message { + rpc BoradcastMessage(BoradcastMessageReq) returns(BoradcastMessageResp); + rpc MassSendMessage(MassSendMessageReq) returns(MassSendMessageResp); + rpc GetChatLogs(GetChatLogsReq) returns(GetChatLogsResp); + rpc WithdrawMessage(WithdrawMessageReq) returns(WithdrawMessageResp); +} \ No newline at end of file diff --git a/pkg/proto/proto_dir.cfg b/pkg/proto/proto_dir.cfg index eed106fb4..e8c78819b 100644 --- a/pkg/proto/proto_dir.cfg +++ b/pkg/proto/proto_dir.cfg @@ -1,6 +1,7 @@ all_proto=( - statistics/statistics.proto + message/message.proto + # statistics/statistics.proto # auth/auth.proto # friend/friend.proto # group/group.proto @@ -8,5 +9,6 @@ all_proto=( # chat/chat.proto # push/push.proto # relay/relay.proto - sdk_ws/ws.proto + # sdk_ws/ws.proto + ) diff --git a/pkg/proto/sdk_ws/ws.pb.go b/pkg/proto/sdk_ws/ws.pb.go index 838827b8d..50631d009 100644 --- a/pkg/proto/sdk_ws/ws.pb.go +++ b/pkg/proto/sdk_ws/ws.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.27.1 -// protoc v3.15.5 +// protoc-gen-go v1.26.0 +// protoc v3.19.3 // source: sdk_ws/ws.proto package server_api_params diff --git a/pkg/proto/statistics/statistics.pb.go b/pkg/proto/statistics/statistics.pb.go index 0e333d87c..5fd528d97 100644 --- a/pkg/proto/statistics/statistics.pb.go +++ b/pkg/proto/statistics/statistics.pb.go @@ -1,13 +1,12 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.27.1 -// protoc v3.15.5 +// protoc-gen-go v1.26.0 +// protoc v3.19.3 // source: statistics/statistics.proto package statistics import ( - sdk_ws "Open_IM/pkg/proto/sdk_ws" context "context" grpc "google.golang.org/grpc" codes "google.golang.org/grpc/codes" @@ -85,8 +84,8 @@ type GetActiveUserReq struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Pagination *sdk_ws.ResponsePagination `protobuf:"bytes,1,opt,name=Pagination,proto3" json:"Pagination,omitempty"` - OperationID string `protobuf:"bytes,2,opt,name=OperationID,proto3" json:"OperationID,omitempty"` + StatisticsReq *StatisticsReq `protobuf:"bytes,1,opt,name=StatisticsReq,proto3" json:"StatisticsReq,omitempty"` + OperationID string `protobuf:"bytes,2,opt,name=OperationID,proto3" json:"OperationID,omitempty"` } func (x *GetActiveUserReq) Reset() { @@ -121,9 +120,9 @@ func (*GetActiveUserReq) Descriptor() ([]byte, []int) { return file_statistics_statistics_proto_rawDescGZIP(), []int{1} } -func (x *GetActiveUserReq) GetPagination() *sdk_ws.ResponsePagination { +func (x *GetActiveUserReq) GetStatisticsReq() *StatisticsReq { if x != nil { - return x.Pagination + return x.StatisticsReq } return nil } @@ -142,7 +141,7 @@ type UserResp struct { NickName string `protobuf:"bytes,1,opt,name=NickName,proto3" json:"NickName,omitempty"` UserId string `protobuf:"bytes,2,opt,name=UserId,proto3" json:"UserId,omitempty"` - MessageNum string `protobuf:"bytes,3,opt,name=MessageNum,proto3" json:"MessageNum,omitempty"` + MessageNum int32 `protobuf:"varint,3,opt,name=MessageNum,proto3" json:"MessageNum,omitempty"` } func (x *UserResp) Reset() { @@ -191,11 +190,11 @@ func (x *UserResp) GetUserId() string { return "" } -func (x *UserResp) GetMessageNum() string { +func (x *UserResp) GetMessageNum() int32 { if x != nil { return x.MessageNum } - return "" + return 0 } type GetActiveUserResp struct { @@ -203,8 +202,7 @@ type GetActiveUserResp struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Users []*UserResp `protobuf:"bytes,1,rep,name=Users,proto3" json:"Users,omitempty"` - Pagination *sdk_ws.ResponsePagination `protobuf:"bytes,2,opt,name=Pagination,proto3" json:"Pagination,omitempty"` + Users []*UserResp `protobuf:"bytes,1,rep,name=Users,proto3" json:"Users,omitempty"` } func (x *GetActiveUserResp) Reset() { @@ -246,20 +244,13 @@ func (x *GetActiveUserResp) GetUsers() []*UserResp { return nil } -func (x *GetActiveUserResp) GetPagination() *sdk_ws.ResponsePagination { - if x != nil { - return x.Pagination - } - return nil -} - type GetActiveGroupReq struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Pagination *sdk_ws.ResponsePagination `protobuf:"bytes,1,opt,name=Pagination,proto3" json:"Pagination,omitempty"` - OperationID string `protobuf:"bytes,2,opt,name=OperationID,proto3" json:"OperationID,omitempty"` + StatisticsReq *StatisticsReq `protobuf:"bytes,1,opt,name=StatisticsReq,proto3" json:"StatisticsReq,omitempty"` + OperationID string `protobuf:"bytes,2,opt,name=OperationID,proto3" json:"OperationID,omitempty"` } func (x *GetActiveGroupReq) Reset() { @@ -294,9 +285,9 @@ func (*GetActiveGroupReq) Descriptor() ([]byte, []int) { return file_statistics_statistics_proto_rawDescGZIP(), []int{4} } -func (x *GetActiveGroupReq) GetPagination() *sdk_ws.ResponsePagination { +func (x *GetActiveGroupReq) GetStatisticsReq() *StatisticsReq { if x != nil { - return x.Pagination + return x.StatisticsReq } return nil } @@ -315,7 +306,7 @@ type GroupResp struct { GroupName string `protobuf:"bytes,1,opt,name=GroupName,proto3" json:"GroupName,omitempty"` GroupId string `protobuf:"bytes,2,opt,name=GroupId,proto3" json:"GroupId,omitempty"` - MessageNum string `protobuf:"bytes,3,opt,name=MessageNum,proto3" json:"MessageNum,omitempty"` + MessageNum int32 `protobuf:"varint,3,opt,name=MessageNum,proto3" json:"MessageNum,omitempty"` } func (x *GroupResp) Reset() { @@ -364,11 +355,11 @@ func (x *GroupResp) GetGroupId() string { return "" } -func (x *GroupResp) GetMessageNum() string { +func (x *GroupResp) GetMessageNum() int32 { if x != nil { return x.MessageNum } - return "" + return 0 } type GetActiveGroupResp struct { @@ -376,8 +367,7 @@ type GetActiveGroupResp struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Groups []*GroupResp `protobuf:"bytes,1,rep,name=Groups,proto3" json:"Groups,omitempty"` - Pagination *sdk_ws.ResponsePagination `protobuf:"bytes,2,opt,name=Pagination,proto3" json:"Pagination,omitempty"` + Groups []*GroupResp `protobuf:"bytes,1,rep,name=Groups,proto3" json:"Groups,omitempty"` } func (x *GetActiveGroupResp) Reset() { @@ -419,13 +409,6 @@ func (x *GetActiveGroupResp) GetGroups() []*GroupResp { return nil } -func (x *GetActiveGroupResp) GetPagination() *sdk_ws.ResponsePagination { - if x != nil { - return x.Pagination - } - return nil -} - type DateNumList struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -880,170 +863,158 @@ var File_statistics_statistics_proto protoreflect.FileDescriptor var file_statistics_statistics_proto_rawDesc = []byte{ 0x0a, 0x1b, 0x73, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x73, 0x2f, 0x73, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x0a, 0x73, - 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x73, 0x1a, 0x21, 0x4f, 0x70, 0x65, 0x6e, 0x5f, - 0x49, 0x4d, 0x2f, 0x70, 0x6b, 0x67, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x73, 0x64, 0x6b, - 0x5f, 0x77, 0x73, 0x2f, 0x77, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x33, 0x0a, 0x0d, - 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x12, 0x12, 0x0a, - 0x04, 0x66, 0x72, 0x6f, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x66, 0x72, 0x6f, - 0x6d, 0x12, 0x0e, 0x0a, 0x02, 0x74, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x74, - 0x6f, 0x22, 0x7b, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x55, 0x73, - 0x65, 0x72, 0x52, 0x65, 0x71, 0x12, 0x45, 0x0a, 0x0a, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x73, 0x65, 0x72, 0x76, - 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x52, 0x0a, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x20, 0x0a, 0x0b, - 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x22, 0x5e, - 0x0a, 0x08, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x12, 0x1a, 0x0a, 0x08, 0x4e, 0x69, - 0x63, 0x6b, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x4e, 0x69, - 0x63, 0x6b, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x1e, - 0x0a, 0x0a, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4e, 0x75, 0x6d, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0a, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4e, 0x75, 0x6d, 0x22, 0x86, - 0x01, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x55, 0x73, 0x65, 0x72, - 0x52, 0x65, 0x73, 0x70, 0x12, 0x2a, 0x0a, 0x05, 0x55, 0x73, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x73, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x73, - 0x2e, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x52, 0x05, 0x55, 0x73, 0x65, 0x72, 0x73, - 0x12, 0x45, 0x0a, 0x0a, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, - 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0a, 0x50, 0x61, 0x67, - 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x7c, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x41, 0x63, - 0x74, 0x69, 0x76, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x12, 0x45, 0x0a, 0x0a, - 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x25, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, - 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x50, 0x61, 0x67, - 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0a, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x22, 0x63, 0x0a, 0x09, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, - 0x73, 0x70, 0x12, 0x1c, 0x0a, 0x09, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4e, 0x61, 0x6d, 0x65, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4e, 0x61, 0x6d, 0x65, - 0x12, 0x18, 0x0a, 0x07, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x07, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x4d, 0x65, - 0x73, 0x73, 0x61, 0x67, 0x65, 0x4e, 0x75, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, - 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4e, 0x75, 0x6d, 0x22, 0x8a, 0x01, 0x0a, 0x12, 0x47, - 0x65, 0x74, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, - 0x70, 0x12, 0x2d, 0x0a, 0x06, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x15, 0x2e, 0x73, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x73, 0x2e, 0x47, - 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x52, 0x06, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, - 0x12, 0x45, 0x0a, 0x0a, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, - 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0a, 0x50, 0x61, 0x67, - 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x33, 0x0a, 0x0b, 0x44, 0x61, 0x74, 0x65, 0x4e, - 0x75, 0x6d, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x44, 0x61, 0x74, 0x65, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x44, 0x61, 0x74, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4e, 0x75, - 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x4e, 0x75, 0x6d, 0x22, 0x7c, 0x0a, 0x17, - 0x47, 0x65, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, - 0x74, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x12, 0x3f, 0x0a, 0x0d, 0x53, 0x74, 0x61, 0x74, 0x69, - 0x73, 0x74, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, - 0x2e, 0x73, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x73, 0x2e, 0x53, 0x74, 0x61, 0x74, - 0x69, 0x73, 0x74, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x52, 0x0d, 0x53, 0x74, 0x61, 0x74, 0x69, - 0x73, 0x74, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x70, 0x65, 0x72, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x4f, - 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x22, 0x8c, 0x02, 0x0a, 0x18, 0x47, - 0x65, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, - 0x69, 0x63, 0x73, 0x52, 0x65, 0x73, 0x70, 0x12, 0x2c, 0x0a, 0x11, 0x50, 0x72, 0x69, 0x76, 0x61, - 0x74, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4e, 0x75, 0x6d, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x11, 0x50, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, - 0x67, 0x65, 0x4e, 0x75, 0x6d, 0x12, 0x28, 0x0a, 0x0f, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, - 0x73, 0x73, 0x61, 0x67, 0x65, 0x4e, 0x75, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0f, - 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4e, 0x75, 0x6d, 0x12, - 0x4d, 0x0a, 0x15, 0x50, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, - 0x65, 0x4e, 0x75, 0x6d, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, - 0x2e, 0x73, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x73, 0x2e, 0x44, 0x61, 0x74, 0x65, - 0x4e, 0x75, 0x6d, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x15, 0x50, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, - 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4e, 0x75, 0x6d, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x49, - 0x0a, 0x13, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4e, 0x75, - 0x6d, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x73, 0x74, - 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x73, 0x2e, 0x44, 0x61, 0x74, 0x65, 0x4e, 0x75, 0x6d, - 0x4c, 0x69, 0x73, 0x74, 0x52, 0x13, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x73, 0x73, 0x61, - 0x67, 0x65, 0x4e, 0x75, 0x6d, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x7a, 0x0a, 0x15, 0x47, 0x65, 0x74, - 0x47, 0x72, 0x6f, 0x75, 0x70, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x73, 0x52, + 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x73, 0x22, 0x33, 0x0a, 0x0d, 0x53, 0x74, 0x61, + 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x12, 0x12, 0x0a, 0x04, 0x66, 0x72, + 0x6f, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x66, 0x72, 0x6f, 0x6d, 0x12, 0x0e, + 0x0a, 0x02, 0x74, 0x6f, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x74, 0x6f, 0x22, 0x75, + 0x0a, 0x10, 0x47, 0x65, 0x74, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x12, 0x3f, 0x0a, 0x0d, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x73, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x73, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x52, 0x0d, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x22, 0xfe, 0x01, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, - 0x75, 0x70, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x73, 0x52, 0x65, 0x73, 0x70, - 0x12, 0x2a, 0x0a, 0x10, 0x49, 0x6e, 0x63, 0x72, 0x65, 0x61, 0x73, 0x65, 0x47, 0x72, 0x6f, 0x75, - 0x70, 0x4e, 0x75, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x10, 0x49, 0x6e, 0x63, 0x72, - 0x65, 0x61, 0x73, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4e, 0x75, 0x6d, 0x12, 0x24, 0x0a, 0x0d, - 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4e, 0x75, 0x6d, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x0d, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4e, - 0x75, 0x6d, 0x12, 0x4b, 0x0a, 0x14, 0x49, 0x6e, 0x63, 0x72, 0x65, 0x61, 0x73, 0x65, 0x47, 0x72, - 0x6f, 0x75, 0x70, 0x4e, 0x75, 0x6d, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x17, 0x2e, 0x73, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x73, 0x2e, 0x44, 0x61, - 0x74, 0x65, 0x4e, 0x75, 0x6d, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x14, 0x49, 0x6e, 0x63, 0x72, 0x65, - 0x61, 0x73, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4e, 0x75, 0x6d, 0x4c, 0x69, 0x73, 0x74, 0x12, - 0x45, 0x0a, 0x11, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4e, 0x75, 0x6d, - 0x4c, 0x69, 0x73, 0x74, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x73, 0x74, 0x61, - 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x73, 0x2e, 0x44, 0x61, 0x74, 0x65, 0x4e, 0x75, 0x6d, 0x4c, - 0x69, 0x73, 0x74, 0x52, 0x11, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4e, - 0x75, 0x6d, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x79, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, - 0x72, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x12, 0x3f, - 0x0a, 0x0d, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x73, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, - 0x63, 0x73, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, - 0x52, 0x0d, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x12, - 0x20, 0x0a, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, - 0x44, 0x22, 0xe2, 0x02, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x53, 0x74, 0x61, - 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x73, 0x52, 0x65, 0x73, 0x70, 0x12, 0x28, 0x0a, 0x0f, 0x49, - 0x6e, 0x63, 0x72, 0x65, 0x61, 0x73, 0x65, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x0f, 0x49, 0x6e, 0x63, 0x72, 0x65, 0x61, 0x73, 0x65, 0x55, 0x73, - 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x12, 0x24, 0x0a, 0x0d, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x55, - 0x73, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x41, 0x63, - 0x74, 0x69, 0x76, 0x65, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x12, 0x22, 0x0a, 0x0c, 0x54, - 0x6f, 0x74, 0x61, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x0c, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x12, - 0x49, 0x0a, 0x13, 0x49, 0x6e, 0x63, 0x72, 0x65, 0x61, 0x73, 0x65, 0x55, 0x73, 0x65, 0x72, 0x4e, + 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x22, 0x5e, 0x0a, 0x08, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, + 0x70, 0x12, 0x1a, 0x0a, 0x08, 0x4e, 0x69, 0x63, 0x6b, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x08, 0x4e, 0x69, 0x63, 0x6b, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, + 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x55, + 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, + 0x4e, 0x75, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x4d, 0x65, 0x73, 0x73, 0x61, + 0x67, 0x65, 0x4e, 0x75, 0x6d, 0x22, 0x3f, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x41, 0x63, 0x74, 0x69, + 0x76, 0x65, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x12, 0x2a, 0x0a, 0x05, 0x55, 0x73, + 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x14, 0x2e, 0x73, 0x74, 0x61, 0x74, + 0x69, 0x73, 0x74, 0x69, 0x63, 0x73, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x52, + 0x05, 0x55, 0x73, 0x65, 0x72, 0x73, 0x22, 0x76, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x41, 0x63, 0x74, + 0x69, 0x76, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x12, 0x3f, 0x0a, 0x0d, 0x53, + 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x73, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x73, 0x2e, + 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x52, 0x0d, 0x53, + 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x12, 0x20, 0x0a, 0x0b, + 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x22, 0x63, + 0x0a, 0x09, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x12, 0x1c, 0x0a, 0x09, 0x47, + 0x72, 0x6f, 0x75, 0x70, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, + 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x47, 0x72, 0x6f, + 0x75, 0x70, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x47, 0x72, 0x6f, 0x75, + 0x70, 0x49, 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4e, 0x75, + 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, + 0x4e, 0x75, 0x6d, 0x22, 0x43, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, + 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x12, 0x2d, 0x0a, 0x06, 0x47, 0x72, 0x6f, + 0x75, 0x70, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x73, 0x74, 0x61, 0x74, + 0x69, 0x73, 0x74, 0x69, 0x63, 0x73, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, + 0x52, 0x06, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x22, 0x33, 0x0a, 0x0b, 0x44, 0x61, 0x74, 0x65, + 0x4e, 0x75, 0x6d, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x44, 0x61, 0x74, 0x65, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x44, 0x61, 0x74, 0x65, 0x12, 0x10, 0x0a, 0x03, 0x4e, + 0x75, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x03, 0x4e, 0x75, 0x6d, 0x22, 0x7c, 0x0a, + 0x17, 0x47, 0x65, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x53, 0x74, 0x61, 0x74, 0x69, + 0x73, 0x74, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x12, 0x3f, 0x0a, 0x0d, 0x53, 0x74, 0x61, 0x74, + 0x69, 0x73, 0x74, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x19, 0x2e, 0x73, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x73, 0x2e, 0x53, 0x74, 0x61, + 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x52, 0x0d, 0x53, 0x74, 0x61, 0x74, + 0x69, 0x73, 0x74, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x70, 0x65, + 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, + 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x22, 0x8c, 0x02, 0x0a, 0x18, + 0x47, 0x65, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, + 0x74, 0x69, 0x63, 0x73, 0x52, 0x65, 0x73, 0x70, 0x12, 0x2c, 0x0a, 0x11, 0x50, 0x72, 0x69, 0x76, + 0x61, 0x74, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4e, 0x75, 0x6d, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x11, 0x50, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x4d, 0x65, 0x73, 0x73, + 0x61, 0x67, 0x65, 0x4e, 0x75, 0x6d, 0x12, 0x28, 0x0a, 0x0f, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, + 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4e, 0x75, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x0f, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4e, 0x75, 0x6d, + 0x12, 0x4d, 0x0a, 0x15, 0x50, 0x72, 0x69, 0x76, 0x61, 0x74, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, + 0x67, 0x65, 0x4e, 0x75, 0x6d, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x17, 0x2e, 0x73, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x73, 0x2e, 0x44, 0x61, 0x74, + 0x65, 0x4e, 0x75, 0x6d, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x15, 0x50, 0x72, 0x69, 0x76, 0x61, 0x74, + 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4e, 0x75, 0x6d, 0x4c, 0x69, 0x73, 0x74, 0x12, + 0x49, 0x0a, 0x13, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4e, 0x75, 0x6d, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x73, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x73, 0x2e, 0x44, 0x61, 0x74, 0x65, 0x4e, 0x75, - 0x6d, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x13, 0x49, 0x6e, 0x63, 0x72, 0x65, 0x61, 0x73, 0x65, 0x55, - 0x73, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x45, 0x0a, 0x11, 0x41, 0x63, - 0x74, 0x69, 0x76, 0x65, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x4c, 0x69, 0x73, 0x74, 0x18, - 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x73, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, - 0x63, 0x73, 0x2e, 0x44, 0x61, 0x74, 0x65, 0x4e, 0x75, 0x6d, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x11, - 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x4c, 0x69, 0x73, - 0x74, 0x12, 0x43, 0x0a, 0x10, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x75, - 0x6d, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x73, 0x74, + 0x6d, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x13, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x73, 0x73, + 0x61, 0x67, 0x65, 0x4e, 0x75, 0x6d, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x7a, 0x0a, 0x15, 0x47, 0x65, + 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x73, + 0x52, 0x65, 0x71, 0x12, 0x3f, 0x0a, 0x0d, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, + 0x73, 0x52, 0x65, 0x71, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x73, 0x74, 0x61, + 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x73, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, + 0x63, 0x73, 0x52, 0x65, 0x71, 0x52, 0x0d, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, + 0x73, 0x52, 0x65, 0x71, 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x22, 0xfe, 0x01, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x47, 0x72, + 0x6f, 0x75, 0x70, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x73, 0x52, 0x65, 0x73, + 0x70, 0x12, 0x2a, 0x0a, 0x10, 0x49, 0x6e, 0x63, 0x72, 0x65, 0x61, 0x73, 0x65, 0x47, 0x72, 0x6f, + 0x75, 0x70, 0x4e, 0x75, 0x6d, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x10, 0x49, 0x6e, 0x63, + 0x72, 0x65, 0x61, 0x73, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4e, 0x75, 0x6d, 0x12, 0x24, 0x0a, + 0x0d, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4e, 0x75, 0x6d, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x47, 0x72, 0x6f, 0x75, 0x70, + 0x4e, 0x75, 0x6d, 0x12, 0x4b, 0x0a, 0x14, 0x49, 0x6e, 0x63, 0x72, 0x65, 0x61, 0x73, 0x65, 0x47, + 0x72, 0x6f, 0x75, 0x70, 0x4e, 0x75, 0x6d, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x03, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x17, 0x2e, 0x73, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x73, 0x2e, 0x44, + 0x61, 0x74, 0x65, 0x4e, 0x75, 0x6d, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x14, 0x49, 0x6e, 0x63, 0x72, + 0x65, 0x61, 0x73, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4e, 0x75, 0x6d, 0x4c, 0x69, 0x73, 0x74, + 0x12, 0x45, 0x0a, 0x11, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4e, 0x75, + 0x6d, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x73, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x73, 0x2e, 0x44, 0x61, 0x74, 0x65, 0x4e, 0x75, 0x6d, - 0x4c, 0x69, 0x73, 0x74, 0x52, 0x10, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x4e, - 0x75, 0x6d, 0x4c, 0x69, 0x73, 0x74, 0x32, 0xbf, 0x03, 0x0a, 0x04, 0x75, 0x73, 0x65, 0x72, 0x12, - 0x4c, 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x55, 0x73, 0x65, 0x72, - 0x12, 0x1c, 0x2e, 0x73, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x73, 0x2e, 0x47, 0x65, - 0x74, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x1a, 0x1d, - 0x2e, 0x73, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x73, 0x2e, 0x47, 0x65, 0x74, 0x41, - 0x63, 0x74, 0x69, 0x76, 0x65, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x12, 0x4f, 0x0a, - 0x0e, 0x47, 0x65, 0x74, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, + 0x4c, 0x69, 0x73, 0x74, 0x52, 0x11, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x47, 0x72, 0x6f, 0x75, 0x70, + 0x4e, 0x75, 0x6d, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x79, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x55, 0x73, + 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x12, + 0x3f, 0x0a, 0x0d, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x73, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, + 0x69, 0x63, 0x73, 0x2e, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x73, 0x52, 0x65, + 0x71, 0x52, 0x0d, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, + 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x49, 0x44, 0x22, 0xe2, 0x02, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x53, 0x74, + 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x73, 0x52, 0x65, 0x73, 0x70, 0x12, 0x28, 0x0a, 0x0f, + 0x49, 0x6e, 0x63, 0x72, 0x65, 0x61, 0x73, 0x65, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0f, 0x49, 0x6e, 0x63, 0x72, 0x65, 0x61, 0x73, 0x65, 0x55, + 0x73, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x12, 0x24, 0x0a, 0x0d, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, + 0x55, 0x73, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0d, 0x41, + 0x63, 0x74, 0x69, 0x76, 0x65, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x12, 0x22, 0x0a, 0x0c, + 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x0c, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x75, 0x6d, + 0x12, 0x49, 0x0a, 0x13, 0x49, 0x6e, 0x63, 0x72, 0x65, 0x61, 0x73, 0x65, 0x55, 0x73, 0x65, 0x72, + 0x4e, 0x75, 0x6d, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x04, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, + 0x73, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x73, 0x2e, 0x44, 0x61, 0x74, 0x65, 0x4e, + 0x75, 0x6d, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x13, 0x49, 0x6e, 0x63, 0x72, 0x65, 0x61, 0x73, 0x65, + 0x55, 0x73, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x45, 0x0a, 0x11, 0x41, + 0x63, 0x74, 0x69, 0x76, 0x65, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x4c, 0x69, 0x73, 0x74, + 0x18, 0x05, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x73, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, + 0x69, 0x63, 0x73, 0x2e, 0x44, 0x61, 0x74, 0x65, 0x4e, 0x75, 0x6d, 0x4c, 0x69, 0x73, 0x74, 0x52, + 0x11, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x4c, 0x69, + 0x73, 0x74, 0x12, 0x43, 0x0a, 0x10, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x4e, + 0x75, 0x6d, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x06, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x17, 0x2e, 0x73, + 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x73, 0x2e, 0x44, 0x61, 0x74, 0x65, 0x4e, 0x75, + 0x6d, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x10, 0x54, 0x6f, 0x74, 0x61, 0x6c, 0x55, 0x73, 0x65, 0x72, + 0x4e, 0x75, 0x6d, 0x4c, 0x69, 0x73, 0x74, 0x32, 0xbf, 0x03, 0x0a, 0x04, 0x75, 0x73, 0x65, 0x72, + 0x12, 0x4c, 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x55, 0x73, 0x65, + 0x72, 0x12, 0x1c, 0x2e, 0x73, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x73, 0x2e, 0x47, + 0x65, 0x74, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x1a, 0x1d, 0x2e, 0x73, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x73, 0x2e, 0x47, 0x65, 0x74, - 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x1a, 0x1e, - 0x2e, 0x73, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x73, 0x2e, 0x47, 0x65, 0x74, 0x41, - 0x63, 0x74, 0x69, 0x76, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x12, 0x61, - 0x0a, 0x14, 0x47, 0x65, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x53, 0x74, 0x61, 0x74, - 0x69, 0x73, 0x74, 0x69, 0x63, 0x73, 0x12, 0x23, 0x2e, 0x73, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, - 0x69, 0x63, 0x73, 0x2e, 0x47, 0x65, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x53, 0x74, - 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x24, 0x2e, 0x73, 0x74, - 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x73, 0x2e, 0x47, 0x65, 0x74, 0x4d, 0x65, 0x73, 0x73, - 0x61, 0x67, 0x65, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x73, 0x52, 0x65, 0x73, - 0x70, 0x12, 0x5b, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x53, 0x74, 0x61, - 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x73, 0x12, 0x21, 0x2e, 0x73, 0x74, 0x61, 0x74, 0x69, 0x73, - 0x74, 0x69, 0x63, 0x73, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x53, 0x74, 0x61, - 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x22, 0x2e, 0x73, 0x74, 0x61, - 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x73, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, - 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x73, 0x52, 0x65, 0x73, 0x70, 0x12, 0x58, - 0x0a, 0x11, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, - 0x69, 0x63, 0x73, 0x12, 0x20, 0x2e, 0x73, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x73, - 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, - 0x63, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x21, 0x2e, 0x73, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, - 0x63, 0x73, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, - 0x74, 0x69, 0x63, 0x73, 0x52, 0x65, 0x73, 0x70, 0x42, 0x19, 0x5a, 0x17, 0x2e, 0x2f, 0x73, 0x74, - 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x73, 0x3b, 0x73, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, - 0x69, 0x63, 0x73, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x12, 0x4f, + 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, + 0x12, 0x1d, 0x2e, 0x73, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x73, 0x2e, 0x47, 0x65, + 0x74, 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x1a, + 0x1e, 0x2e, 0x73, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x73, 0x2e, 0x47, 0x65, 0x74, + 0x41, 0x63, 0x74, 0x69, 0x76, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x12, + 0x61, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x53, 0x74, 0x61, + 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x73, 0x12, 0x23, 0x2e, 0x73, 0x74, 0x61, 0x74, 0x69, 0x73, + 0x74, 0x69, 0x63, 0x73, 0x2e, 0x47, 0x65, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x53, + 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x24, 0x2e, 0x73, + 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x73, 0x2e, 0x47, 0x65, 0x74, 0x4d, 0x65, 0x73, + 0x73, 0x61, 0x67, 0x65, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x73, 0x52, 0x65, + 0x73, 0x70, 0x12, 0x5b, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x53, 0x74, + 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x73, 0x12, 0x21, 0x2e, 0x73, 0x74, 0x61, 0x74, 0x69, + 0x73, 0x74, 0x69, 0x63, 0x73, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x53, 0x74, + 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x22, 0x2e, 0x73, 0x74, + 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x73, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, + 0x70, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x73, 0x52, 0x65, 0x73, 0x70, 0x12, + 0x58, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, + 0x74, 0x69, 0x63, 0x73, 0x12, 0x20, 0x2e, 0x73, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, + 0x73, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, + 0x69, 0x63, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x21, 0x2e, 0x73, 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, + 0x69, 0x63, 0x73, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x53, 0x74, 0x61, 0x74, 0x69, + 0x73, 0x74, 0x69, 0x63, 0x73, 0x52, 0x65, 0x73, 0x70, 0x42, 0x19, 0x5a, 0x17, 0x2e, 0x2f, 0x73, + 0x74, 0x61, 0x74, 0x69, 0x73, 0x74, 0x69, 0x63, 0x73, 0x3b, 0x73, 0x74, 0x61, 0x74, 0x69, 0x73, + 0x74, 0x69, 0x63, 0x73, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -1060,54 +1031,51 @@ func file_statistics_statistics_proto_rawDescGZIP() []byte { var file_statistics_statistics_proto_msgTypes = make([]protoimpl.MessageInfo, 14) var file_statistics_statistics_proto_goTypes = []interface{}{ - (*StatisticsReq)(nil), // 0: statistics.StatisticsReq - (*GetActiveUserReq)(nil), // 1: statistics.GetActiveUserReq - (*UserResp)(nil), // 2: statistics.UserResp - (*GetActiveUserResp)(nil), // 3: statistics.GetActiveUserResp - (*GetActiveGroupReq)(nil), // 4: statistics.GetActiveGroupReq - (*GroupResp)(nil), // 5: statistics.GroupResp - (*GetActiveGroupResp)(nil), // 6: statistics.GetActiveGroupResp - (*DateNumList)(nil), // 7: statistics.DateNumList - (*GetMessageStatisticsReq)(nil), // 8: statistics.GetMessageStatisticsReq - (*GetMessageStatisticsResp)(nil), // 9: statistics.GetMessageStatisticsResp - (*GetGroupStatisticsReq)(nil), // 10: statistics.GetGroupStatisticsReq - (*GetGroupStatisticsResp)(nil), // 11: statistics.GetGroupStatisticsResp - (*GetUserStatisticsReq)(nil), // 12: statistics.GetUserStatisticsReq - (*GetUserStatisticsResp)(nil), // 13: statistics.GetUserStatisticsResp - (*sdk_ws.ResponsePagination)(nil), // 14: server_api_params.ResponsePagination + (*StatisticsReq)(nil), // 0: statistics.StatisticsReq + (*GetActiveUserReq)(nil), // 1: statistics.GetActiveUserReq + (*UserResp)(nil), // 2: statistics.UserResp + (*GetActiveUserResp)(nil), // 3: statistics.GetActiveUserResp + (*GetActiveGroupReq)(nil), // 4: statistics.GetActiveGroupReq + (*GroupResp)(nil), // 5: statistics.GroupResp + (*GetActiveGroupResp)(nil), // 6: statistics.GetActiveGroupResp + (*DateNumList)(nil), // 7: statistics.DateNumList + (*GetMessageStatisticsReq)(nil), // 8: statistics.GetMessageStatisticsReq + (*GetMessageStatisticsResp)(nil), // 9: statistics.GetMessageStatisticsResp + (*GetGroupStatisticsReq)(nil), // 10: statistics.GetGroupStatisticsReq + (*GetGroupStatisticsResp)(nil), // 11: statistics.GetGroupStatisticsResp + (*GetUserStatisticsReq)(nil), // 12: statistics.GetUserStatisticsReq + (*GetUserStatisticsResp)(nil), // 13: statistics.GetUserStatisticsResp } var file_statistics_statistics_proto_depIdxs = []int32{ - 14, // 0: statistics.GetActiveUserReq.Pagination:type_name -> server_api_params.ResponsePagination + 0, // 0: statistics.GetActiveUserReq.StatisticsReq:type_name -> statistics.StatisticsReq 2, // 1: statistics.GetActiveUserResp.Users:type_name -> statistics.UserResp - 14, // 2: statistics.GetActiveUserResp.Pagination:type_name -> server_api_params.ResponsePagination - 14, // 3: statistics.GetActiveGroupReq.Pagination:type_name -> server_api_params.ResponsePagination - 5, // 4: statistics.GetActiveGroupResp.Groups:type_name -> statistics.GroupResp - 14, // 5: statistics.GetActiveGroupResp.Pagination:type_name -> server_api_params.ResponsePagination - 0, // 6: statistics.GetMessageStatisticsReq.StatisticsReq:type_name -> statistics.StatisticsReq - 7, // 7: statistics.GetMessageStatisticsResp.PrivateMessageNumList:type_name -> statistics.DateNumList - 7, // 8: statistics.GetMessageStatisticsResp.GroupMessageNumList:type_name -> statistics.DateNumList - 0, // 9: statistics.GetGroupStatisticsReq.StatisticsReq:type_name -> statistics.StatisticsReq - 7, // 10: statistics.GetGroupStatisticsResp.IncreaseGroupNumList:type_name -> statistics.DateNumList - 7, // 11: statistics.GetGroupStatisticsResp.TotalGroupNumList:type_name -> statistics.DateNumList - 0, // 12: statistics.GetUserStatisticsReq.StatisticsReq:type_name -> statistics.StatisticsReq - 7, // 13: statistics.GetUserStatisticsResp.IncreaseUserNumList:type_name -> statistics.DateNumList - 7, // 14: statistics.GetUserStatisticsResp.ActiveUserNumList:type_name -> statistics.DateNumList - 7, // 15: statistics.GetUserStatisticsResp.TotalUserNumList:type_name -> statistics.DateNumList - 1, // 16: statistics.user.GetActiveUser:input_type -> statistics.GetActiveUserReq - 4, // 17: statistics.user.GetActiveGroup:input_type -> statistics.GetActiveGroupReq - 8, // 18: statistics.user.GetMessageStatistics:input_type -> statistics.GetMessageStatisticsReq - 10, // 19: statistics.user.GetGroupStatistics:input_type -> statistics.GetGroupStatisticsReq - 12, // 20: statistics.user.GetUserStatistics:input_type -> statistics.GetUserStatisticsReq - 3, // 21: statistics.user.GetActiveUser:output_type -> statistics.GetActiveUserResp - 6, // 22: statistics.user.GetActiveGroup:output_type -> statistics.GetActiveGroupResp - 9, // 23: statistics.user.GetMessageStatistics:output_type -> statistics.GetMessageStatisticsResp - 11, // 24: statistics.user.GetGroupStatistics:output_type -> statistics.GetGroupStatisticsResp - 13, // 25: statistics.user.GetUserStatistics:output_type -> statistics.GetUserStatisticsResp - 21, // [21:26] is the sub-list for method output_type - 16, // [16:21] is the sub-list for method input_type - 16, // [16:16] is the sub-list for extension type_name - 16, // [16:16] is the sub-list for extension extendee - 0, // [0:16] is the sub-list for field type_name + 0, // 2: statistics.GetActiveGroupReq.StatisticsReq:type_name -> statistics.StatisticsReq + 5, // 3: statistics.GetActiveGroupResp.Groups:type_name -> statistics.GroupResp + 0, // 4: statistics.GetMessageStatisticsReq.StatisticsReq:type_name -> statistics.StatisticsReq + 7, // 5: statistics.GetMessageStatisticsResp.PrivateMessageNumList:type_name -> statistics.DateNumList + 7, // 6: statistics.GetMessageStatisticsResp.GroupMessageNumList:type_name -> statistics.DateNumList + 0, // 7: statistics.GetGroupStatisticsReq.StatisticsReq:type_name -> statistics.StatisticsReq + 7, // 8: statistics.GetGroupStatisticsResp.IncreaseGroupNumList:type_name -> statistics.DateNumList + 7, // 9: statistics.GetGroupStatisticsResp.TotalGroupNumList:type_name -> statistics.DateNumList + 0, // 10: statistics.GetUserStatisticsReq.StatisticsReq:type_name -> statistics.StatisticsReq + 7, // 11: statistics.GetUserStatisticsResp.IncreaseUserNumList:type_name -> statistics.DateNumList + 7, // 12: statistics.GetUserStatisticsResp.ActiveUserNumList:type_name -> statistics.DateNumList + 7, // 13: statistics.GetUserStatisticsResp.TotalUserNumList:type_name -> statistics.DateNumList + 1, // 14: statistics.user.GetActiveUser:input_type -> statistics.GetActiveUserReq + 4, // 15: statistics.user.GetActiveGroup:input_type -> statistics.GetActiveGroupReq + 8, // 16: statistics.user.GetMessageStatistics:input_type -> statistics.GetMessageStatisticsReq + 10, // 17: statistics.user.GetGroupStatistics:input_type -> statistics.GetGroupStatisticsReq + 12, // 18: statistics.user.GetUserStatistics:input_type -> statistics.GetUserStatisticsReq + 3, // 19: statistics.user.GetActiveUser:output_type -> statistics.GetActiveUserResp + 6, // 20: statistics.user.GetActiveGroup:output_type -> statistics.GetActiveGroupResp + 9, // 21: statistics.user.GetMessageStatistics:output_type -> statistics.GetMessageStatisticsResp + 11, // 22: statistics.user.GetGroupStatistics:output_type -> statistics.GetGroupStatisticsResp + 13, // 23: statistics.user.GetUserStatistics:output_type -> statistics.GetUserStatisticsResp + 19, // [19:24] is the sub-list for method output_type + 14, // [14:19] is the sub-list for method input_type + 14, // [14:14] is the sub-list for extension type_name + 14, // [14:14] is the sub-list for extension extendee + 0, // [0:14] is the sub-list for field type_name } func init() { file_statistics_statistics_proto_init() } diff --git a/pkg/proto/statistics/statistics.proto b/pkg/proto/statistics/statistics.proto index 8327129c1..3c72e4bc5 100644 --- a/pkg/proto/statistics/statistics.proto +++ b/pkg/proto/statistics/statistics.proto @@ -1,5 +1,5 @@ syntax = "proto3"; -import "Open_IM/pkg/proto/sdk_ws/ws.proto"; +// import "Open_IM/pkg/proto/sdk_ws/ws.proto"; option go_package = "./statistics;statistics"; package statistics; @@ -9,35 +9,33 @@ message StatisticsReq { } message GetActiveUserReq{ - server_api_params.ResponsePagination Pagination = 1; + StatisticsReq StatisticsReq = 1; string OperationID = 2; } message UserResp{ string NickName = 1; string UserId = 2; - string MessageNum = 3; + int32 MessageNum = 3; } message GetActiveUserResp { repeated UserResp Users = 1; - server_api_params.ResponsePagination Pagination = 2; } message GetActiveGroupReq{ - server_api_params.ResponsePagination Pagination = 1; + StatisticsReq StatisticsReq = 1; string OperationID = 2; } message GroupResp { string GroupName = 1; string GroupId = 2; - string MessageNum = 3; + int32 MessageNum = 3; } message GetActiveGroupResp { repeated GroupResp Groups = 1; - server_api_params.ResponsePagination Pagination = 2; } message DateNumList { diff --git a/pkg/proto/user/user.pb.go b/pkg/proto/user/user.pb.go index 29fcaa120..37e9f7366 100644 --- a/pkg/proto/user/user.pb.go +++ b/pkg/proto/user/user.pb.go @@ -1189,7 +1189,7 @@ func (x *ResignUserResp) GetCommonResp() *CommonResp { return nil } -type GetUserReq struct { +type GetUserByIdReq struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -1198,8 +1198,8 @@ type GetUserReq struct { OperationID string `protobuf:"bytes,2,opt,name=OperationID,proto3" json:"OperationID,omitempty"` } -func (x *GetUserReq) Reset() { - *x = GetUserReq{} +func (x *GetUserByIdReq) Reset() { + *x = GetUserByIdReq{} if protoimpl.UnsafeEnabled { mi := &file_user_user_proto_msgTypes[20] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -1207,13 +1207,13 @@ func (x *GetUserReq) Reset() { } } -func (x *GetUserReq) String() string { +func (x *GetUserByIdReq) String() string { return protoimpl.X.MessageStringOf(x) } -func (*GetUserReq) ProtoMessage() {} +func (*GetUserByIdReq) ProtoMessage() {} -func (x *GetUserReq) ProtoReflect() protoreflect.Message { +func (x *GetUserByIdReq) ProtoReflect() protoreflect.Message { mi := &file_user_user_proto_msgTypes[20] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -1225,19 +1225,19 @@ func (x *GetUserReq) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use GetUserReq.ProtoReflect.Descriptor instead. -func (*GetUserReq) Descriptor() ([]byte, []int) { +// Deprecated: Use GetUserByIdReq.ProtoReflect.Descriptor instead. +func (*GetUserByIdReq) Descriptor() ([]byte, []int) { return file_user_user_proto_rawDescGZIP(), []int{20} } -func (x *GetUserReq) GetUserId() string { +func (x *GetUserByIdReq) GetUserId() string { if x != nil { return x.UserId } return "" } -func (x *GetUserReq) GetOperationID() string { +func (x *GetUserByIdReq) GetOperationID() string { if x != nil { return x.OperationID } @@ -1323,7 +1323,7 @@ func (x *User) GetIsBlock() bool { return false } -type GetUserResp struct { +type GetUserByIdResp struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -1332,8 +1332,8 @@ type GetUserResp struct { User *User `protobuf:"bytes,2,opt,name=user,proto3" json:"user,omitempty"` } -func (x *GetUserResp) Reset() { - *x = GetUserResp{} +func (x *GetUserByIdResp) Reset() { + *x = GetUserByIdResp{} if protoimpl.UnsafeEnabled { mi := &file_user_user_proto_msgTypes[22] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -1341,13 +1341,13 @@ func (x *GetUserResp) Reset() { } } -func (x *GetUserResp) String() string { +func (x *GetUserByIdResp) String() string { return protoimpl.X.MessageStringOf(x) } -func (*GetUserResp) ProtoMessage() {} +func (*GetUserByIdResp) ProtoMessage() {} -func (x *GetUserResp) ProtoReflect() protoreflect.Message { +func (x *GetUserByIdResp) ProtoReflect() protoreflect.Message { mi := &file_user_user_proto_msgTypes[22] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -1359,19 +1359,19 @@ func (x *GetUserResp) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use GetUserResp.ProtoReflect.Descriptor instead. -func (*GetUserResp) Descriptor() ([]byte, []int) { +// Deprecated: Use GetUserByIdResp.ProtoReflect.Descriptor instead. +func (*GetUserByIdResp) Descriptor() ([]byte, []int) { return file_user_user_proto_rawDescGZIP(), []int{22} } -func (x *GetUserResp) GetCommonResp() *CommonResp { +func (x *GetUserByIdResp) GetCommonResp() *CommonResp { if x != nil { return x.CommonResp } return nil } -func (x *GetUserResp) GetUser() *User { +func (x *GetUserByIdResp) GetUser() *User { if x != nil { return x.User } @@ -1511,6 +1511,7 @@ type GetUsersReq struct { OperationID string `protobuf:"bytes,1,opt,name=OperationID,proto3" json:"OperationID,omitempty"` Pagination *sdk_ws.RequestPagination `protobuf:"bytes,2,opt,name=Pagination,proto3" json:"Pagination,omitempty"` + UserName string `protobuf:"bytes,3,opt,name=UserName,proto3" json:"UserName,omitempty"` } func (x *GetUsersReq) Reset() { @@ -1559,16 +1560,22 @@ func (x *GetUsersReq) GetPagination() *sdk_ws.RequestPagination { return nil } +func (x *GetUsersReq) GetUserName() string { + if x != nil { + return x.UserName + } + return "" +} + type GetUsersResp struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields CommonResp *CommonResp `protobuf:"bytes,1,opt,name=CommonResp,proto3" json:"CommonResp,omitempty"` - OperationID string `protobuf:"bytes,2,opt,name=OperationID,proto3" json:"OperationID,omitempty"` - User []*User `protobuf:"bytes,3,rep,name=user,proto3" json:"user,omitempty"` - UserNum int32 `protobuf:"varint,4,opt,name=UserNum,proto3" json:"UserNum,omitempty"` - Pagination *sdk_ws.ResponsePagination `protobuf:"bytes,5,opt,name=Pagination,proto3" json:"Pagination,omitempty"` + User []*User `protobuf:"bytes,2,rep,name=user,proto3" json:"user,omitempty"` + Pagination *sdk_ws.ResponsePagination `protobuf:"bytes,3,opt,name=Pagination,proto3" json:"Pagination,omitempty"` + OperationID string `protobuf:"bytes,4,opt,name=OperationID,proto3" json:"OperationID,omitempty"` } func (x *GetUsersResp) Reset() { @@ -1610,13 +1617,6 @@ func (x *GetUsersResp) GetCommonResp() *CommonResp { return nil } -func (x *GetUsersResp) GetOperationID() string { - if x != nil { - return x.OperationID - } - return "" -} - func (x *GetUsersResp) GetUser() []*User { if x != nil { return x.User @@ -1624,18 +1624,18 @@ func (x *GetUsersResp) GetUser() []*User { return nil } -func (x *GetUsersResp) GetUserNum() int32 { +func (x *GetUsersResp) GetPagination() *sdk_ws.ResponsePagination { if x != nil { - return x.UserNum + return x.Pagination } - return 0 + return nil } -func (x *GetUsersResp) GetPagination() *sdk_ws.ResponsePagination { +func (x *GetUsersResp) GetOperationID() string { if x != nil { - return x.Pagination + return x.OperationID } - return nil + return "" } type AddUserReq struct { @@ -2099,10 +2099,9 @@ type GetBlockUsersResp struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - CommonResp *CommonResp `protobuf:"bytes,1,opt,name=CommonResp,proto3" json:"CommonResp,omitempty"` - BlockUsers []*BlockUser `protobuf:"bytes,2,rep,name=BlockUsers,proto3" json:"BlockUsers,omitempty"` - Pagination *sdk_ws.ResponsePagination `protobuf:"bytes,3,opt,name=Pagination,proto3" json:"Pagination,omitempty"` - BlockUserNum int32 `protobuf:"varint,4,opt,name=BlockUserNum,proto3" json:"BlockUserNum,omitempty"` + CommonResp *CommonResp `protobuf:"bytes,1,opt,name=CommonResp,proto3" json:"CommonResp,omitempty"` + BlockUsers []*BlockUser `protobuf:"bytes,2,rep,name=BlockUsers,proto3" json:"BlockUsers,omitempty"` + Pagination *sdk_ws.ResponsePagination `protobuf:"bytes,3,opt,name=Pagination,proto3" json:"Pagination,omitempty"` } func (x *GetBlockUsersResp) Reset() { @@ -2158,14 +2157,7 @@ func (x *GetBlockUsersResp) GetPagination() *sdk_ws.ResponsePagination { return nil } -func (x *GetBlockUsersResp) GetBlockUserNum() int32 { - if x != nil { - return x.BlockUserNum - } - return 0 -} - -type GetBlockUserReq struct { +type GetBlockUserByIdReq struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -2174,8 +2166,8 @@ type GetBlockUserReq struct { OperationID string `protobuf:"bytes,2,opt,name=OperationID,proto3" json:"OperationID,omitempty"` } -func (x *GetBlockUserReq) Reset() { - *x = GetBlockUserReq{} +func (x *GetBlockUserByIdReq) Reset() { + *x = GetBlockUserByIdReq{} if protoimpl.UnsafeEnabled { mi := &file_user_user_proto_msgTypes[36] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -2183,13 +2175,13 @@ func (x *GetBlockUserReq) Reset() { } } -func (x *GetBlockUserReq) String() string { +func (x *GetBlockUserByIdReq) String() string { return protoimpl.X.MessageStringOf(x) } -func (*GetBlockUserReq) ProtoMessage() {} +func (*GetBlockUserByIdReq) ProtoMessage() {} -func (x *GetBlockUserReq) ProtoReflect() protoreflect.Message { +func (x *GetBlockUserByIdReq) ProtoReflect() protoreflect.Message { mi := &file_user_user_proto_msgTypes[36] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -2201,26 +2193,26 @@ func (x *GetBlockUserReq) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use GetBlockUserReq.ProtoReflect.Descriptor instead. -func (*GetBlockUserReq) Descriptor() ([]byte, []int) { +// Deprecated: Use GetBlockUserByIdReq.ProtoReflect.Descriptor instead. +func (*GetBlockUserByIdReq) Descriptor() ([]byte, []int) { return file_user_user_proto_rawDescGZIP(), []int{36} } -func (x *GetBlockUserReq) GetUserId() string { +func (x *GetBlockUserByIdReq) GetUserId() string { if x != nil { return x.UserId } return "" } -func (x *GetBlockUserReq) GetOperationID() string { +func (x *GetBlockUserByIdReq) GetOperationID() string { if x != nil { return x.OperationID } return "" } -type GetBlockUserResp struct { +type GetBlockUserByIdResp struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -2228,8 +2220,8 @@ type GetBlockUserResp struct { BlockUser *BlockUser `protobuf:"bytes,2,opt,name=BlockUser,proto3" json:"BlockUser,omitempty"` } -func (x *GetBlockUserResp) Reset() { - *x = GetBlockUserResp{} +func (x *GetBlockUserByIdResp) Reset() { + *x = GetBlockUserByIdResp{} if protoimpl.UnsafeEnabled { mi := &file_user_user_proto_msgTypes[37] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -2237,13 +2229,13 @@ func (x *GetBlockUserResp) Reset() { } } -func (x *GetBlockUserResp) String() string { +func (x *GetBlockUserByIdResp) String() string { return protoimpl.X.MessageStringOf(x) } -func (*GetBlockUserResp) ProtoMessage() {} +func (*GetBlockUserByIdResp) ProtoMessage() {} -func (x *GetBlockUserResp) ProtoReflect() protoreflect.Message { +func (x *GetBlockUserByIdResp) ProtoReflect() protoreflect.Message { mi := &file_user_user_proto_msgTypes[37] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) @@ -2255,18 +2247,111 @@ func (x *GetBlockUserResp) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use GetBlockUserResp.ProtoReflect.Descriptor instead. -func (*GetBlockUserResp) Descriptor() ([]byte, []int) { +// Deprecated: Use GetBlockUserByIdResp.ProtoReflect.Descriptor instead. +func (*GetBlockUserByIdResp) Descriptor() ([]byte, []int) { return file_user_user_proto_rawDescGZIP(), []int{37} } -func (x *GetBlockUserResp) GetBlockUser() *BlockUser { +func (x *GetBlockUserByIdResp) GetBlockUser() *BlockUser { if x != nil { return x.BlockUser } return nil } +type DeleteUserReq struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + UserId string `protobuf:"bytes,1,opt,name=User_id,json=UserId,proto3" json:"User_id,omitempty"` + OperationID string `protobuf:"bytes,2,opt,name=OperationID,proto3" json:"OperationID,omitempty"` +} + +func (x *DeleteUserReq) Reset() { + *x = DeleteUserReq{} + if protoimpl.UnsafeEnabled { + mi := &file_user_user_proto_msgTypes[38] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DeleteUserReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DeleteUserReq) ProtoMessage() {} + +func (x *DeleteUserReq) ProtoReflect() protoreflect.Message { + mi := &file_user_user_proto_msgTypes[38] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use DeleteUserReq.ProtoReflect.Descriptor instead. +func (*DeleteUserReq) Descriptor() ([]byte, []int) { + return file_user_user_proto_rawDescGZIP(), []int{38} +} + +func (x *DeleteUserReq) GetUserId() string { + if x != nil { + return x.UserId + } + return "" +} + +func (x *DeleteUserReq) GetOperationID() string { + if x != nil { + return x.OperationID + } + return "" +} + +type DeleteUserResp struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *DeleteUserResp) Reset() { + *x = DeleteUserResp{} + if protoimpl.UnsafeEnabled { + mi := &file_user_user_proto_msgTypes[39] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DeleteUserResp) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DeleteUserResp) ProtoMessage() {} + +func (x *DeleteUserResp) ProtoReflect() protoreflect.Message { + mi := &file_user_user_proto_msgTypes[39] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use DeleteUserResp.ProtoReflect.Descriptor instead. +func (*DeleteUserResp) Descriptor() ([]byte, []int) { + return file_user_user_proto_rawDescGZIP(), []int{39} +} + type AccountCheckResp_SingleUserStatus struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -2279,7 +2364,7 @@ type AccountCheckResp_SingleUserStatus struct { func (x *AccountCheckResp_SingleUserStatus) Reset() { *x = AccountCheckResp_SingleUserStatus{} if protoimpl.UnsafeEnabled { - mi := &file_user_user_proto_msgTypes[38] + mi := &file_user_user_proto_msgTypes[40] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2292,7 +2377,7 @@ func (x *AccountCheckResp_SingleUserStatus) String() string { func (*AccountCheckResp_SingleUserStatus) ProtoMessage() {} func (x *AccountCheckResp_SingleUserStatus) ProtoReflect() protoreflect.Message { - mi := &file_user_user_proto_msgTypes[38] + mi := &file_user_user_proto_msgTypes[40] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2483,207 +2568,217 @@ var file_user_user_proto_rawDesc = []byte{ 0x73, 0x70, 0x12, 0x30, 0x0a, 0x0a, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x52, 0x0a, 0x63, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, - 0x52, 0x65, 0x73, 0x70, 0x22, 0x46, 0x0a, 0x0a, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x52, - 0x65, 0x71, 0x12, 0x16, 0x0a, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x70, - 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x22, 0x98, 0x01, 0x0a, - 0x04, 0x55, 0x73, 0x65, 0x72, 0x12, 0x22, 0x0a, 0x0c, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, - 0x50, 0x68, 0x6f, 0x74, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x50, 0x72, 0x6f, - 0x66, 0x69, 0x6c, 0x65, 0x50, 0x68, 0x6f, 0x74, 0x6f, 0x12, 0x1a, 0x0a, 0x08, 0x4e, 0x69, 0x63, - 0x6b, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x4e, 0x69, 0x63, - 0x6b, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x1e, 0x0a, - 0x0a, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0a, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x18, 0x0a, - 0x07, 0x49, 0x73, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x07, - 0x49, 0x73, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x22, 0x5f, 0x0a, 0x0b, 0x47, 0x65, 0x74, 0x55, 0x73, - 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x12, 0x30, 0x0a, 0x0a, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, - 0x52, 0x65, 0x73, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x75, 0x73, 0x65, - 0x72, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x52, 0x0a, 0x43, 0x6f, - 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x12, 0x1e, 0x0a, 0x04, 0x75, 0x73, 0x65, 0x72, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x55, 0x73, - 0x65, 0x72, 0x52, 0x04, 0x75, 0x73, 0x65, 0x72, 0x22, 0x9c, 0x01, 0x0a, 0x0c, 0x41, 0x6c, 0x74, - 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x12, 0x16, 0x0a, 0x06, 0x55, 0x73, 0x65, - 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, - 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x4e, 0x75, 0x6d, 0x62, - 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x4e, - 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x4e, 0x69, 0x63, 0x6b, 0x6e, 0x61, 0x6d, - 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x4e, 0x69, 0x63, 0x6b, 0x6e, 0x61, 0x6d, - 0x65, 0x12, 0x14, 0x0a, 0x05, 0x45, 0x6d, 0x61, 0x69, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x05, 0x45, 0x6d, 0x61, 0x69, 0x6c, 0x22, 0x41, 0x0a, 0x0d, 0x41, 0x6c, 0x74, 0x65, 0x72, - 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x12, 0x30, 0x0a, 0x0a, 0x43, 0x6f, 0x6d, 0x6d, - 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x75, - 0x73, 0x65, 0x72, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x52, 0x0a, - 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0x75, 0x0a, 0x0b, 0x47, 0x65, - 0x74, 0x55, 0x73, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x70, 0x65, - 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, - 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x12, 0x44, 0x0a, 0x0a, 0x50, - 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x24, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, - 0x61, 0x6d, 0x73, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x50, 0x61, 0x67, 0x69, 0x6e, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0a, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x22, 0xe3, 0x01, 0x0a, 0x0c, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x73, 0x52, 0x65, - 0x73, 0x70, 0x12, 0x30, 0x0a, 0x0a, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x43, 0x6f, - 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x52, 0x0a, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, - 0x52, 0x65, 0x73, 0x70, 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x04, 0x75, 0x73, 0x65, 0x72, 0x18, 0x03, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x55, 0x73, 0x65, 0x72, - 0x52, 0x04, 0x75, 0x73, 0x65, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x75, - 0x6d, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x75, 0x6d, - 0x12, 0x45, 0x0a, 0x0a, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x05, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, - 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0a, 0x50, 0x61, 0x67, - 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x7c, 0x0a, 0x0a, 0x41, 0x64, 0x64, 0x55, 0x73, - 0x65, 0x72, 0x52, 0x65, 0x71, 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x4f, 0x70, 0x65, 0x72, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x50, 0x68, 0x6f, 0x6e, 0x65, - 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x50, 0x68, - 0x6f, 0x6e, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x55, 0x73, 0x65, + 0x52, 0x65, 0x73, 0x70, 0x22, 0x4a, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x42, + 0x79, 0x49, 0x64, 0x52, 0x65, 0x71, 0x12, 0x16, 0x0a, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x20, + 0x0a, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, + 0x22, 0x98, 0x01, 0x0a, 0x04, 0x55, 0x73, 0x65, 0x72, 0x12, 0x22, 0x0a, 0x0c, 0x50, 0x72, 0x6f, + 0x66, 0x69, 0x6c, 0x65, 0x50, 0x68, 0x6f, 0x74, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0c, 0x50, 0x72, 0x6f, 0x66, 0x69, 0x6c, 0x65, 0x50, 0x68, 0x6f, 0x74, 0x6f, 0x12, 0x1a, 0x0a, + 0x08, 0x4e, 0x69, 0x63, 0x6b, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x08, 0x4e, 0x69, 0x63, 0x6b, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, - 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x22, 0x3f, 0x0a, 0x0b, 0x41, 0x64, 0x64, 0x55, 0x73, 0x65, 0x72, - 0x52, 0x65, 0x73, 0x70, 0x12, 0x30, 0x0a, 0x0a, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, - 0x73, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, - 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x52, 0x0a, 0x43, 0x6f, 0x6d, 0x6d, - 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0x70, 0x0a, 0x0c, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, - 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x12, 0x16, 0x0a, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x26, - 0x0a, 0x0e, 0x45, 0x6e, 0x64, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x54, 0x69, 0x6d, 0x65, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x45, 0x6e, 0x64, 0x44, 0x69, 0x73, 0x61, 0x62, - 0x6c, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x4f, 0x70, 0x65, - 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x22, 0x41, 0x0a, 0x0d, 0x42, 0x6c, 0x6f, 0x63, - 0x6b, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x12, 0x30, 0x0a, 0x0a, 0x43, 0x6f, 0x6d, - 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, - 0x75, 0x73, 0x65, 0x72, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x52, - 0x0a, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0x4a, 0x0a, 0x0e, 0x55, - 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x12, 0x16, 0x0a, - 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x55, - 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x4f, 0x70, 0x65, 0x72, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x22, 0x43, 0x0a, 0x0f, 0x55, 0x6e, 0x42, 0x6c, 0x6f, - 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x12, 0x30, 0x0a, 0x0a, 0x43, 0x6f, - 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, - 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, - 0x52, 0x0a, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0x9e, 0x01, 0x0a, - 0x10, 0x47, 0x65, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x73, 0x52, 0x65, - 0x71, 0x12, 0x44, 0x0a, 0x0a, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, - 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0a, 0x50, 0x61, 0x67, - 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x4f, 0x70, - 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x12, 0x22, 0x0a, 0x0c, 0x42, 0x6c, 0x6f, - 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x0c, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x22, 0x7f, 0x0a, - 0x09, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x12, 0x1e, 0x0a, 0x04, 0x55, 0x73, - 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, - 0x55, 0x73, 0x65, 0x72, 0x52, 0x04, 0x55, 0x73, 0x65, 0x72, 0x12, 0x2a, 0x0a, 0x10, 0x42, 0x65, - 0x67, 0x69, 0x6e, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x10, 0x42, 0x65, 0x67, 0x69, 0x6e, 0x44, 0x69, 0x73, 0x61, 0x62, - 0x6c, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x45, 0x6e, 0x64, 0x44, 0x69, 0x73, - 0x61, 0x62, 0x6c, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, - 0x45, 0x6e, 0x64, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x22, 0xe1, - 0x01, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x73, + 0x64, 0x12, 0x1e, 0x0a, 0x0a, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, + 0x65, 0x12, 0x18, 0x0a, 0x07, 0x49, 0x73, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x08, 0x52, 0x07, 0x49, 0x73, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x22, 0x63, 0x0a, 0x0f, 0x47, + 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x42, 0x79, 0x49, 0x64, 0x52, 0x65, 0x73, 0x70, 0x12, 0x30, + 0x0a, 0x0a, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, + 0x52, 0x65, 0x73, 0x70, 0x52, 0x0a, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, + 0x12, 0x1e, 0x0a, 0x04, 0x75, 0x73, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0a, + 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x52, 0x04, 0x75, 0x73, 0x65, 0x72, + 0x22, 0x9c, 0x01, 0x0a, 0x0c, 0x41, 0x6c, 0x74, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, + 0x71, 0x12, 0x16, 0x0a, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x70, 0x65, + 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, + 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x50, + 0x68, 0x6f, 0x6e, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, + 0x52, 0x0b, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x1a, 0x0a, + 0x08, 0x4e, 0x69, 0x63, 0x6b, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x08, 0x4e, 0x69, 0x63, 0x6b, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x45, 0x6d, 0x61, + 0x69, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x45, 0x6d, 0x61, 0x69, 0x6c, 0x22, + 0x41, 0x0a, 0x0d, 0x41, 0x6c, 0x74, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, + 0x12, 0x30, 0x0a, 0x0a, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, + 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x52, 0x0a, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, + 0x73, 0x70, 0x22, 0x91, 0x01, 0x0a, 0x0b, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x73, 0x52, + 0x65, 0x71, 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, + 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x49, 0x44, 0x12, 0x44, 0x0a, 0x0a, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, + 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0a, + 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x55, 0x73, + 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x55, 0x73, + 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0xc9, 0x01, 0x0a, 0x0c, 0x47, 0x65, 0x74, 0x55, 0x73, + 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x12, 0x30, 0x0a, 0x0a, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, + 0x6e, 0x52, 0x65, 0x73, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x75, 0x73, + 0x65, 0x72, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x52, 0x0a, 0x43, + 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x12, 0x1e, 0x0a, 0x04, 0x75, 0x73, 0x65, + 0x72, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x55, + 0x73, 0x65, 0x72, 0x52, 0x04, 0x75, 0x73, 0x65, 0x72, 0x12, 0x45, 0x0a, 0x0a, 0x50, 0x61, 0x67, + 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, + 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, + 0x73, 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0a, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x49, 0x44, 0x22, 0x7c, 0x0a, 0x0a, 0x41, 0x64, 0x64, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, + 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, + 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x4e, 0x75, + 0x6d, 0x62, 0x65, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, + 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, + 0x22, 0x3f, 0x0a, 0x0b, 0x41, 0x64, 0x64, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x12, + 0x30, 0x0a, 0x0a, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, + 0x6e, 0x52, 0x65, 0x73, 0x70, 0x52, 0x0a, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, + 0x70, 0x22, 0x70, 0x0a, 0x0c, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, + 0x71, 0x12, 0x16, 0x0a, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x26, 0x0a, 0x0e, 0x45, 0x6e, 0x64, + 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0e, 0x45, 0x6e, 0x64, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x54, 0x69, 0x6d, + 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x49, 0x44, 0x22, 0x41, 0x0a, 0x0d, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x12, 0x30, 0x0a, 0x0a, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x52, 0x0a, 0x43, 0x6f, 0x6d, 0x6d, - 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x12, 0x2f, 0x0a, 0x0a, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, - 0x73, 0x65, 0x72, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x75, 0x73, 0x65, - 0x72, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x52, 0x0a, 0x42, 0x6c, 0x6f, - 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x73, 0x12, 0x45, 0x0a, 0x0a, 0x50, 0x61, 0x67, 0x69, 0x6e, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x73, 0x65, - 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, - 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x52, 0x0a, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x22, - 0x0a, 0x0c, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x4e, - 0x75, 0x6d, 0x22, 0x4c, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, - 0x65, 0x72, 0x52, 0x65, 0x71, 0x12, 0x17, 0x0a, 0x07, 0x55, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x20, - 0x0a, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, - 0x22, 0x41, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, - 0x52, 0x65, 0x73, 0x70, 0x12, 0x2d, 0x0a, 0x09, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, - 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x42, - 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x52, 0x09, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, - 0x73, 0x65, 0x72, 0x32, 0xc7, 0x08, 0x0a, 0x04, 0x75, 0x73, 0x65, 0x72, 0x12, 0x3a, 0x0a, 0x0b, - 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x14, 0x2e, 0x75, 0x73, - 0x65, 0x72, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, - 0x71, 0x1a, 0x15, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, - 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x12, 0x43, 0x0a, 0x0e, 0x55, 0x70, 0x64, 0x61, - 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x17, 0x2e, 0x75, 0x73, 0x65, - 0x72, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, - 0x52, 0x65, 0x71, 0x1a, 0x18, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, - 0x65, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x12, 0x3a, 0x0a, - 0x0b, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x73, 0x12, 0x14, 0x2e, 0x75, - 0x73, 0x65, 0x72, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x73, 0x52, - 0x65, 0x71, 0x1a, 0x15, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, - 0x55, 0x73, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x12, 0x3d, 0x0a, 0x0c, 0x47, 0x65, 0x74, - 0x41, 0x6c, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x15, 0x2e, 0x75, 0x73, 0x65, 0x72, - 0x2e, 0x47, 0x65, 0x74, 0x41, 0x6c, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x52, 0x65, 0x71, - 0x1a, 0x16, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x6c, 0x6c, 0x55, 0x73, - 0x65, 0x72, 0x49, 0x44, 0x52, 0x65, 0x73, 0x70, 0x12, 0x55, 0x0a, 0x14, 0x53, 0x65, 0x74, 0x52, + 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0x4a, 0x0a, 0x0e, 0x55, 0x6e, 0x42, 0x6c, 0x6f, 0x63, + 0x6b, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x12, 0x16, 0x0a, 0x06, 0x55, 0x73, 0x65, 0x72, + 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, + 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x49, 0x44, 0x22, 0x43, 0x0a, 0x0f, 0x55, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, + 0x72, 0x52, 0x65, 0x73, 0x70, 0x12, 0x30, 0x0a, 0x0a, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, + 0x65, 0x73, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x75, 0x73, 0x65, 0x72, + 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x52, 0x0a, 0x43, 0x6f, 0x6d, + 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0x9e, 0x01, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x42, + 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x12, 0x44, 0x0a, 0x0a, + 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x24, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, + 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x50, 0x61, 0x67, 0x69, + 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0a, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, + 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x49, 0x44, 0x12, 0x22, 0x0a, 0x0c, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, + 0x72, 0x4e, 0x75, 0x6d, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x42, 0x6c, 0x6f, 0x63, + 0x6b, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x22, 0x7f, 0x0a, 0x09, 0x42, 0x6c, 0x6f, 0x63, + 0x6b, 0x55, 0x73, 0x65, 0x72, 0x12, 0x1e, 0x0a, 0x04, 0x55, 0x73, 0x65, 0x72, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x52, + 0x04, 0x55, 0x73, 0x65, 0x72, 0x12, 0x2a, 0x0a, 0x10, 0x42, 0x65, 0x67, 0x69, 0x6e, 0x44, 0x69, + 0x73, 0x61, 0x62, 0x6c, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x10, 0x42, 0x65, 0x67, 0x69, 0x6e, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x54, 0x69, 0x6d, + 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x45, 0x6e, 0x64, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x54, + 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x45, 0x6e, 0x64, 0x44, 0x69, + 0x73, 0x61, 0x62, 0x6c, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x22, 0xbd, 0x01, 0x0a, 0x11, 0x47, 0x65, + 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x12, + 0x30, 0x0a, 0x0a, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, + 0x6e, 0x52, 0x65, 0x73, 0x70, 0x52, 0x0a, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, + 0x70, 0x12, 0x2f, 0x0a, 0x0a, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x73, 0x18, + 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x42, 0x6c, 0x6f, + 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x52, 0x0a, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, + 0x72, 0x73, 0x12, 0x45, 0x0a, 0x0a, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, + 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, + 0x6e, 0x73, 0x65, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0a, 0x50, + 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x50, 0x0a, 0x13, 0x47, 0x65, 0x74, + 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x42, 0x79, 0x49, 0x64, 0x52, 0x65, 0x71, + 0x12, 0x17, 0x0a, 0x07, 0x55, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x70, 0x65, + 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, + 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x22, 0x45, 0x0a, 0x14, 0x47, + 0x65, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x42, 0x79, 0x49, 0x64, 0x52, + 0x65, 0x73, 0x70, 0x12, 0x2d, 0x0a, 0x09, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x42, 0x6c, + 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x52, 0x09, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, + 0x65, 0x72, 0x22, 0x4a, 0x0a, 0x0d, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, + 0x52, 0x65, 0x71, 0x12, 0x17, 0x0a, 0x07, 0x55, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x0b, + 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x22, 0x10, + 0x0a, 0x0e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, + 0x32, 0x98, 0x09, 0x0a, 0x04, 0x75, 0x73, 0x65, 0x72, 0x12, 0x3a, 0x0a, 0x0b, 0x47, 0x65, 0x74, + 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x14, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, + 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x1a, 0x15, + 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, + 0x6f, 0x52, 0x65, 0x73, 0x70, 0x12, 0x43, 0x0a, 0x0e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x55, + 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x17, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x55, + 0x70, 0x64, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, + 0x1a, 0x18, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x55, 0x73, + 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x12, 0x3a, 0x0a, 0x0b, 0x44, 0x65, + 0x6c, 0x65, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x73, 0x12, 0x14, 0x2e, 0x75, 0x73, 0x65, 0x72, + 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x1a, + 0x15, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x55, 0x73, 0x65, + 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x12, 0x3d, 0x0a, 0x0c, 0x47, 0x65, 0x74, 0x41, 0x6c, 0x6c, + 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x15, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x47, 0x65, + 0x74, 0x41, 0x6c, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x52, 0x65, 0x71, 0x1a, 0x16, 0x2e, + 0x75, 0x73, 0x65, 0x72, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x6c, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x49, + 0x44, 0x52, 0x65, 0x73, 0x70, 0x12, 0x55, 0x0a, 0x14, 0x53, 0x65, 0x74, 0x52, 0x65, 0x63, 0x65, + 0x69, 0x76, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4f, 0x70, 0x74, 0x12, 0x1d, 0x2e, + 0x75, 0x73, 0x65, 0x72, 0x2e, 0x53, 0x65, 0x74, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x4d, + 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4f, 0x70, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x1e, 0x2e, 0x75, + 0x73, 0x65, 0x72, 0x2e, 0x53, 0x65, 0x74, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x4d, 0x65, + 0x73, 0x73, 0x61, 0x67, 0x65, 0x4f, 0x70, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x55, 0x0a, 0x14, + 0x47, 0x65, 0x74, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, + 0x65, 0x4f, 0x70, 0x74, 0x12, 0x1d, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4f, 0x70, 0x74, - 0x12, 0x1d, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x53, 0x65, 0x74, 0x52, 0x65, 0x63, 0x65, 0x69, - 0x76, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4f, 0x70, 0x74, 0x52, 0x65, 0x71, 0x1a, - 0x1e, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x53, 0x65, 0x74, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, - 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4f, 0x70, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, - 0x55, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x4d, 0x65, 0x73, - 0x73, 0x61, 0x67, 0x65, 0x4f, 0x70, 0x74, 0x12, 0x1d, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x47, - 0x65, 0x74, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, - 0x4f, 0x70, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x1e, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x47, 0x65, - 0x74, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4f, - 0x70, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x61, 0x0a, 0x18, 0x47, 0x65, 0x74, 0x41, 0x6c, 0x6c, - 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x73, 0x67, 0x4f, - 0x70, 0x74, 0x12, 0x21, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x6c, 0x6c, + 0x52, 0x65, 0x71, 0x1a, 0x1e, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x65, + 0x63, 0x65, 0x69, 0x76, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4f, 0x70, 0x74, 0x52, + 0x65, 0x73, 0x70, 0x12, 0x61, 0x0a, 0x18, 0x47, 0x65, 0x74, 0x41, 0x6c, 0x6c, 0x43, 0x6f, 0x6e, + 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x73, 0x67, 0x4f, 0x70, 0x74, 0x12, + 0x21, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x6c, 0x6c, 0x43, 0x6f, 0x6e, + 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x73, 0x67, 0x4f, 0x70, 0x74, 0x52, + 0x65, 0x71, 0x1a, 0x22, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x6c, 0x6c, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x73, 0x67, 0x4f, - 0x70, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x22, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x47, 0x65, 0x74, - 0x41, 0x6c, 0x6c, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, - 0x73, 0x67, 0x4f, 0x70, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x3d, 0x0a, 0x0c, 0x41, 0x63, 0x63, - 0x6f, 0x75, 0x6e, 0x74, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x12, 0x15, 0x2e, 0x75, 0x73, 0x65, 0x72, - 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x52, 0x65, 0x71, - 0x1a, 0x16, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x43, - 0x68, 0x65, 0x63, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x12, 0x2e, 0x0a, 0x07, 0x47, 0x65, 0x74, 0x55, - 0x73, 0x65, 0x72, 0x12, 0x10, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, - 0x65, 0x72, 0x52, 0x65, 0x71, 0x1a, 0x11, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x47, 0x65, 0x74, - 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x12, 0x37, 0x0a, 0x0a, 0x52, 0x65, 0x73, 0x69, - 0x67, 0x6e, 0x55, 0x73, 0x65, 0x72, 0x12, 0x13, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x52, 0x65, - 0x73, 0x69, 0x67, 0x6e, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x1a, 0x14, 0x2e, 0x75, 0x73, - 0x65, 0x72, 0x2e, 0x52, 0x65, 0x73, 0x69, 0x67, 0x6e, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, - 0x70, 0x12, 0x34, 0x0a, 0x09, 0x41, 0x6c, 0x74, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x12, 0x12, - 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x41, 0x6c, 0x74, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x52, - 0x65, 0x71, 0x1a, 0x13, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x41, 0x6c, 0x74, 0x65, 0x72, 0x55, - 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x12, 0x31, 0x0a, 0x08, 0x47, 0x65, 0x74, 0x55, 0x73, - 0x65, 0x72, 0x73, 0x12, 0x11, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, - 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x12, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x47, 0x65, - 0x74, 0x55, 0x73, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x12, 0x2e, 0x0a, 0x07, 0x41, 0x64, - 0x64, 0x55, 0x73, 0x65, 0x72, 0x12, 0x10, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x41, 0x64, 0x64, - 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x1a, 0x11, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x41, - 0x64, 0x64, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x12, 0x34, 0x0a, 0x09, 0x42, 0x6c, - 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x12, 0x12, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x42, - 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x1a, 0x13, 0x2e, 0x75, 0x73, - 0x65, 0x72, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, - 0x12, 0x3a, 0x0a, 0x0b, 0x55, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x12, - 0x14, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x55, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, - 0x65, 0x72, 0x52, 0x65, 0x71, 0x1a, 0x15, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x55, 0x6e, 0x42, - 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x12, 0x40, 0x0a, 0x0d, - 0x47, 0x65, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x73, 0x12, 0x16, 0x2e, - 0x75, 0x73, 0x65, 0x72, 0x2e, 0x47, 0x65, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, - 0x72, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x17, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x47, 0x65, 0x74, - 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x12, 0x3d, - 0x0a, 0x0c, 0x47, 0x65, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x12, 0x15, + 0x70, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x3d, 0x0a, 0x0c, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x12, 0x15, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x41, 0x63, + 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x52, 0x65, 0x71, 0x1a, 0x16, 0x2e, + 0x75, 0x73, 0x65, 0x72, 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x43, 0x68, 0x65, 0x63, + 0x6b, 0x52, 0x65, 0x73, 0x70, 0x12, 0x3a, 0x0a, 0x0b, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, + 0x42, 0x79, 0x49, 0x64, 0x12, 0x14, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x47, 0x65, 0x74, 0x55, + 0x73, 0x65, 0x72, 0x42, 0x79, 0x49, 0x64, 0x52, 0x65, 0x71, 0x1a, 0x15, 0x2e, 0x75, 0x73, 0x65, + 0x72, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x42, 0x79, 0x49, 0x64, 0x52, 0x65, 0x73, + 0x70, 0x12, 0x37, 0x0a, 0x0a, 0x52, 0x65, 0x73, 0x69, 0x67, 0x6e, 0x55, 0x73, 0x65, 0x72, 0x12, + 0x13, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x52, 0x65, 0x73, 0x69, 0x67, 0x6e, 0x55, 0x73, 0x65, + 0x72, 0x52, 0x65, 0x71, 0x1a, 0x14, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x52, 0x65, 0x73, 0x69, + 0x67, 0x6e, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x12, 0x34, 0x0a, 0x09, 0x41, 0x6c, + 0x74, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x12, 0x12, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x41, + 0x6c, 0x74, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x1a, 0x13, 0x2e, 0x75, 0x73, + 0x65, 0x72, 0x2e, 0x41, 0x6c, 0x74, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, + 0x12, 0x31, 0x0a, 0x08, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x73, 0x12, 0x11, 0x2e, 0x75, + 0x73, 0x65, 0x72, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x1a, + 0x12, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x73, 0x52, + 0x65, 0x73, 0x70, 0x12, 0x2e, 0x0a, 0x07, 0x41, 0x64, 0x64, 0x55, 0x73, 0x65, 0x72, 0x12, 0x10, + 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x41, 0x64, 0x64, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, + 0x1a, 0x11, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x41, 0x64, 0x64, 0x55, 0x73, 0x65, 0x72, 0x52, + 0x65, 0x73, 0x70, 0x12, 0x34, 0x0a, 0x09, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, + 0x12, 0x12, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, + 0x72, 0x52, 0x65, 0x71, 0x1a, 0x13, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x42, 0x6c, 0x6f, 0x63, + 0x6b, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x12, 0x3a, 0x0a, 0x0b, 0x55, 0x6e, 0x42, + 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x12, 0x14, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, + 0x55, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x1a, 0x15, + 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x55, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, + 0x72, 0x52, 0x65, 0x73, 0x70, 0x12, 0x40, 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x42, 0x6c, 0x6f, 0x63, + 0x6b, 0x55, 0x73, 0x65, 0x72, 0x73, 0x12, 0x16, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x47, 0x65, + 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x17, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x47, 0x65, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, - 0x65, 0x72, 0x52, 0x65, 0x71, 0x1a, 0x16, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x47, 0x65, 0x74, - 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x42, 0x0d, 0x5a, - 0x0b, 0x2e, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x3b, 0x75, 0x73, 0x65, 0x72, 0x62, 0x06, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x33, + 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x12, 0x49, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x42, 0x6c, + 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x42, 0x79, 0x49, 0x64, 0x12, 0x19, 0x2e, 0x75, 0x73, + 0x65, 0x72, 0x2e, 0x47, 0x65, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x42, + 0x79, 0x49, 0x64, 0x52, 0x65, 0x71, 0x1a, 0x1a, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x47, 0x65, + 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x42, 0x79, 0x49, 0x64, 0x52, 0x65, + 0x73, 0x70, 0x12, 0x37, 0x0a, 0x0a, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, + 0x12, 0x13, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x55, 0x73, + 0x65, 0x72, 0x52, 0x65, 0x71, 0x1a, 0x14, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x44, 0x65, 0x6c, + 0x65, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x42, 0x0d, 0x5a, 0x0b, 0x2e, + 0x2f, 0x75, 0x73, 0x65, 0x72, 0x3b, 0x75, 0x73, 0x65, 0x72, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, + 0x6f, 0x33, } var ( @@ -2698,7 +2793,7 @@ func file_user_user_proto_rawDescGZIP() []byte { return file_user_user_proto_rawDescData } -var file_user_user_proto_msgTypes = make([]protoimpl.MessageInfo, 39) +var file_user_user_proto_msgTypes = make([]protoimpl.MessageInfo, 41) var file_user_user_proto_goTypes = []interface{}{ (*CommonResp)(nil), // 0: user.CommonResp (*DeleteUsersReq)(nil), // 1: user.DeleteUsersReq @@ -2720,9 +2815,9 @@ var file_user_user_proto_goTypes = []interface{}{ (*GetAllConversationMsgOptResp)(nil), // 17: user.GetAllConversationMsgOptResp (*ResignUserReq)(nil), // 18: user.ResignUserReq (*ResignUserResp)(nil), // 19: user.ResignUserResp - (*GetUserReq)(nil), // 20: user.GetUserReq + (*GetUserByIdReq)(nil), // 20: user.GetUserByIdReq (*User)(nil), // 21: user.User - (*GetUserResp)(nil), // 22: user.GetUserResp + (*GetUserByIdResp)(nil), // 22: user.GetUserByIdResp (*AlterUserReq)(nil), // 23: user.AlterUserReq (*AlterUserResp)(nil), // 24: user.AlterUserResp (*GetUsersReq)(nil), // 25: user.GetUsersReq @@ -2736,21 +2831,23 @@ var file_user_user_proto_goTypes = []interface{}{ (*GetBlockUsersReq)(nil), // 33: user.GetBlockUsersReq (*BlockUser)(nil), // 34: user.BlockUser (*GetBlockUsersResp)(nil), // 35: user.GetBlockUsersResp - (*GetBlockUserReq)(nil), // 36: user.GetBlockUserReq - (*GetBlockUserResp)(nil), // 37: user.GetBlockUserResp - (*AccountCheckResp_SingleUserStatus)(nil), // 38: user.AccountCheckResp.SingleUserStatus - (*sdk_ws.UserInfo)(nil), // 39: server_api_params.UserInfo - (*sdk_ws.RequestPagination)(nil), // 40: server_api_params.RequestPagination - (*sdk_ws.ResponsePagination)(nil), // 41: server_api_params.ResponsePagination + (*GetBlockUserByIdReq)(nil), // 36: user.GetBlockUserByIdReq + (*GetBlockUserByIdResp)(nil), // 37: user.GetBlockUserByIdResp + (*DeleteUserReq)(nil), // 38: user.DeleteUserReq + (*DeleteUserResp)(nil), // 39: user.DeleteUserResp + (*AccountCheckResp_SingleUserStatus)(nil), // 40: user.AccountCheckResp.SingleUserStatus + (*sdk_ws.UserInfo)(nil), // 41: server_api_params.UserInfo + (*sdk_ws.RequestPagination)(nil), // 42: server_api_params.RequestPagination + (*sdk_ws.ResponsePagination)(nil), // 43: server_api_params.ResponsePagination } var file_user_user_proto_depIdxs = []int32{ 0, // 0: user.DeleteUsersResp.CommonResp:type_name -> user.CommonResp 0, // 1: user.GetAllUserIDResp.CommonResp:type_name -> user.CommonResp 0, // 2: user.AccountCheckResp.commonResp:type_name -> user.CommonResp - 38, // 3: user.AccountCheckResp.ResultList:type_name -> user.AccountCheckResp.SingleUserStatus + 40, // 3: user.AccountCheckResp.ResultList:type_name -> user.AccountCheckResp.SingleUserStatus 0, // 4: user.GetUserInfoResp.commonResp:type_name -> user.CommonResp - 39, // 5: user.GetUserInfoResp.UserInfoList:type_name -> server_api_params.UserInfo - 39, // 6: user.UpdateUserInfoReq.UserInfo:type_name -> server_api_params.UserInfo + 41, // 5: user.GetUserInfoResp.UserInfoList:type_name -> server_api_params.UserInfo + 41, // 6: user.UpdateUserInfoReq.UserInfo:type_name -> server_api_params.UserInfo 0, // 7: user.UpdateUserInfoResp.commonResp:type_name -> user.CommonResp 0, // 8: user.SetReceiveMessageOptResp.commonResp:type_name -> user.CommonResp 12, // 9: user.SetReceiveMessageOptResp.conversationOptResultList:type_name -> user.OptResult @@ -2759,22 +2856,22 @@ var file_user_user_proto_depIdxs = []int32{ 0, // 12: user.GetAllConversationMsgOptResp.commonResp:type_name -> user.CommonResp 12, // 13: user.GetAllConversationMsgOptResp.conversationOptResultList:type_name -> user.OptResult 0, // 14: user.ResignUserResp.commonResp:type_name -> user.CommonResp - 0, // 15: user.GetUserResp.CommonResp:type_name -> user.CommonResp - 21, // 16: user.GetUserResp.user:type_name -> user.User + 0, // 15: user.GetUserByIdResp.CommonResp:type_name -> user.CommonResp + 21, // 16: user.GetUserByIdResp.user:type_name -> user.User 0, // 17: user.AlterUserResp.CommonResp:type_name -> user.CommonResp - 40, // 18: user.GetUsersReq.Pagination:type_name -> server_api_params.RequestPagination + 42, // 18: user.GetUsersReq.Pagination:type_name -> server_api_params.RequestPagination 0, // 19: user.GetUsersResp.CommonResp:type_name -> user.CommonResp 21, // 20: user.GetUsersResp.user:type_name -> user.User - 41, // 21: user.GetUsersResp.Pagination:type_name -> server_api_params.ResponsePagination + 43, // 21: user.GetUsersResp.Pagination:type_name -> server_api_params.ResponsePagination 0, // 22: user.AddUserResp.CommonResp:type_name -> user.CommonResp 0, // 23: user.BlockUserResp.CommonResp:type_name -> user.CommonResp 0, // 24: user.UnBlockUserResp.CommonResp:type_name -> user.CommonResp - 40, // 25: user.GetBlockUsersReq.Pagination:type_name -> server_api_params.RequestPagination + 42, // 25: user.GetBlockUsersReq.Pagination:type_name -> server_api_params.RequestPagination 21, // 26: user.BlockUser.User:type_name -> user.User 0, // 27: user.GetBlockUsersResp.CommonResp:type_name -> user.CommonResp 34, // 28: user.GetBlockUsersResp.BlockUsers:type_name -> user.BlockUser - 41, // 29: user.GetBlockUsersResp.Pagination:type_name -> server_api_params.ResponsePagination - 34, // 30: user.GetBlockUserResp.BlockUser:type_name -> user.BlockUser + 43, // 29: user.GetBlockUsersResp.Pagination:type_name -> server_api_params.ResponsePagination + 34, // 30: user.GetBlockUserByIdResp.BlockUser:type_name -> user.BlockUser 7, // 31: user.user.GetUserInfo:input_type -> user.GetUserInfoReq 9, // 32: user.user.UpdateUserInfo:input_type -> user.UpdateUserInfoReq 1, // 33: user.user.DeleteUsers:input_type -> user.DeleteUsersReq @@ -2783,7 +2880,7 @@ var file_user_user_proto_depIdxs = []int32{ 14, // 36: user.user.GetReceiveMessageOpt:input_type -> user.GetReceiveMessageOptReq 16, // 37: user.user.GetAllConversationMsgOpt:input_type -> user.GetAllConversationMsgOptReq 5, // 38: user.user.AccountCheck:input_type -> user.AccountCheckReq - 20, // 39: user.user.GetUser:input_type -> user.GetUserReq + 20, // 39: user.user.GetUserById:input_type -> user.GetUserByIdReq 18, // 40: user.user.ResignUser:input_type -> user.ResignUserReq 23, // 41: user.user.AlterUser:input_type -> user.AlterUserReq 25, // 42: user.user.GetUsers:input_type -> user.GetUsersReq @@ -2791,26 +2888,28 @@ var file_user_user_proto_depIdxs = []int32{ 29, // 44: user.user.BlockUser:input_type -> user.BlockUserReq 31, // 45: user.user.UnBlockUser:input_type -> user.UnBlockUserReq 33, // 46: user.user.GetBlockUsers:input_type -> user.GetBlockUsersReq - 36, // 47: user.user.GetBlockUser:input_type -> user.GetBlockUserReq - 8, // 48: user.user.GetUserInfo:output_type -> user.GetUserInfoResp - 10, // 49: user.user.UpdateUserInfo:output_type -> user.UpdateUserInfoResp - 2, // 50: user.user.DeleteUsers:output_type -> user.DeleteUsersResp - 4, // 51: user.user.GetAllUserID:output_type -> user.GetAllUserIDResp - 13, // 52: user.user.SetReceiveMessageOpt:output_type -> user.SetReceiveMessageOptResp - 15, // 53: user.user.GetReceiveMessageOpt:output_type -> user.GetReceiveMessageOptResp - 17, // 54: user.user.GetAllConversationMsgOpt:output_type -> user.GetAllConversationMsgOptResp - 6, // 55: user.user.AccountCheck:output_type -> user.AccountCheckResp - 22, // 56: user.user.GetUser:output_type -> user.GetUserResp - 19, // 57: user.user.ResignUser:output_type -> user.ResignUserResp - 24, // 58: user.user.AlterUser:output_type -> user.AlterUserResp - 26, // 59: user.user.GetUsers:output_type -> user.GetUsersResp - 28, // 60: user.user.AddUser:output_type -> user.AddUserResp - 30, // 61: user.user.BlockUser:output_type -> user.BlockUserResp - 32, // 62: user.user.UnBlockUser:output_type -> user.UnBlockUserResp - 35, // 63: user.user.GetBlockUsers:output_type -> user.GetBlockUsersResp - 37, // 64: user.user.GetBlockUser:output_type -> user.GetBlockUserResp - 48, // [48:65] is the sub-list for method output_type - 31, // [31:48] is the sub-list for method input_type + 36, // 47: user.user.GetBlockUserById:input_type -> user.GetBlockUserByIdReq + 38, // 48: user.user.DeleteUser:input_type -> user.DeleteUserReq + 8, // 49: user.user.GetUserInfo:output_type -> user.GetUserInfoResp + 10, // 50: user.user.UpdateUserInfo:output_type -> user.UpdateUserInfoResp + 2, // 51: user.user.DeleteUsers:output_type -> user.DeleteUsersResp + 4, // 52: user.user.GetAllUserID:output_type -> user.GetAllUserIDResp + 13, // 53: user.user.SetReceiveMessageOpt:output_type -> user.SetReceiveMessageOptResp + 15, // 54: user.user.GetReceiveMessageOpt:output_type -> user.GetReceiveMessageOptResp + 17, // 55: user.user.GetAllConversationMsgOpt:output_type -> user.GetAllConversationMsgOptResp + 6, // 56: user.user.AccountCheck:output_type -> user.AccountCheckResp + 22, // 57: user.user.GetUserById:output_type -> user.GetUserByIdResp + 19, // 58: user.user.ResignUser:output_type -> user.ResignUserResp + 24, // 59: user.user.AlterUser:output_type -> user.AlterUserResp + 26, // 60: user.user.GetUsers:output_type -> user.GetUsersResp + 28, // 61: user.user.AddUser:output_type -> user.AddUserResp + 30, // 62: user.user.BlockUser:output_type -> user.BlockUserResp + 32, // 63: user.user.UnBlockUser:output_type -> user.UnBlockUserResp + 35, // 64: user.user.GetBlockUsers:output_type -> user.GetBlockUsersResp + 37, // 65: user.user.GetBlockUserById:output_type -> user.GetBlockUserByIdResp + 39, // 66: user.user.DeleteUser:output_type -> user.DeleteUserResp + 49, // [49:67] is the sub-list for method output_type + 31, // [31:49] is the sub-list for method input_type 31, // [31:31] is the sub-list for extension type_name 31, // [31:31] is the sub-list for extension extendee 0, // [0:31] is the sub-list for field type_name @@ -3063,7 +3162,7 @@ func file_user_user_proto_init() { } } file_user_user_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetUserReq); i { + switch v := v.(*GetUserByIdReq); i { case 0: return &v.state case 1: @@ -3087,7 +3186,7 @@ func file_user_user_proto_init() { } } file_user_user_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetUserResp); i { + switch v := v.(*GetUserByIdResp); i { case 0: return &v.state case 1: @@ -3255,7 +3354,7 @@ func file_user_user_proto_init() { } } file_user_user_proto_msgTypes[36].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetBlockUserReq); i { + switch v := v.(*GetBlockUserByIdReq); i { case 0: return &v.state case 1: @@ -3267,7 +3366,7 @@ func file_user_user_proto_init() { } } file_user_user_proto_msgTypes[37].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetBlockUserResp); i { + switch v := v.(*GetBlockUserByIdResp); i { case 0: return &v.state case 1: @@ -3279,6 +3378,30 @@ func file_user_user_proto_init() { } } file_user_user_proto_msgTypes[38].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DeleteUserReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_user_user_proto_msgTypes[39].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DeleteUserResp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_user_user_proto_msgTypes[40].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*AccountCheckResp_SingleUserStatus); i { case 0: return &v.state @@ -3297,7 +3420,7 @@ func file_user_user_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_user_user_proto_rawDesc, NumEnums: 0, - NumMessages: 39, + NumMessages: 41, NumExtensions: 0, NumServices: 1, }, @@ -3331,7 +3454,7 @@ type UserClient interface { GetReceiveMessageOpt(ctx context.Context, in *GetReceiveMessageOptReq, opts ...grpc.CallOption) (*GetReceiveMessageOptResp, error) GetAllConversationMsgOpt(ctx context.Context, in *GetAllConversationMsgOptReq, opts ...grpc.CallOption) (*GetAllConversationMsgOptResp, error) AccountCheck(ctx context.Context, in *AccountCheckReq, opts ...grpc.CallOption) (*AccountCheckResp, error) - GetUser(ctx context.Context, in *GetUserReq, opts ...grpc.CallOption) (*GetUserResp, error) + GetUserById(ctx context.Context, in *GetUserByIdReq, opts ...grpc.CallOption) (*GetUserByIdResp, error) ResignUser(ctx context.Context, in *ResignUserReq, opts ...grpc.CallOption) (*ResignUserResp, error) AlterUser(ctx context.Context, in *AlterUserReq, opts ...grpc.CallOption) (*AlterUserResp, error) GetUsers(ctx context.Context, in *GetUsersReq, opts ...grpc.CallOption) (*GetUsersResp, error) @@ -3339,7 +3462,8 @@ type UserClient interface { BlockUser(ctx context.Context, in *BlockUserReq, opts ...grpc.CallOption) (*BlockUserResp, error) UnBlockUser(ctx context.Context, in *UnBlockUserReq, opts ...grpc.CallOption) (*UnBlockUserResp, error) GetBlockUsers(ctx context.Context, in *GetBlockUsersReq, opts ...grpc.CallOption) (*GetBlockUsersResp, error) - GetBlockUser(ctx context.Context, in *GetBlockUserReq, opts ...grpc.CallOption) (*GetBlockUserResp, error) + GetBlockUserById(ctx context.Context, in *GetBlockUserByIdReq, opts ...grpc.CallOption) (*GetBlockUserByIdResp, error) + DeleteUser(ctx context.Context, in *DeleteUserReq, opts ...grpc.CallOption) (*DeleteUserResp, error) } type userClient struct { @@ -3422,9 +3546,9 @@ func (c *userClient) AccountCheck(ctx context.Context, in *AccountCheckReq, opts return out, nil } -func (c *userClient) GetUser(ctx context.Context, in *GetUserReq, opts ...grpc.CallOption) (*GetUserResp, error) { - out := new(GetUserResp) - err := c.cc.Invoke(ctx, "/user.user/GetUser", in, out, opts...) +func (c *userClient) GetUserById(ctx context.Context, in *GetUserByIdReq, opts ...grpc.CallOption) (*GetUserByIdResp, error) { + out := new(GetUserByIdResp) + err := c.cc.Invoke(ctx, "/user.user/GetUserById", in, out, opts...) if err != nil { return nil, err } @@ -3494,9 +3618,18 @@ func (c *userClient) GetBlockUsers(ctx context.Context, in *GetBlockUsersReq, op return out, nil } -func (c *userClient) GetBlockUser(ctx context.Context, in *GetBlockUserReq, opts ...grpc.CallOption) (*GetBlockUserResp, error) { - out := new(GetBlockUserResp) - err := c.cc.Invoke(ctx, "/user.user/GetBlockUser", in, out, opts...) +func (c *userClient) GetBlockUserById(ctx context.Context, in *GetBlockUserByIdReq, opts ...grpc.CallOption) (*GetBlockUserByIdResp, error) { + out := new(GetBlockUserByIdResp) + err := c.cc.Invoke(ctx, "/user.user/GetBlockUserById", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *userClient) DeleteUser(ctx context.Context, in *DeleteUserReq, opts ...grpc.CallOption) (*DeleteUserResp, error) { + out := new(DeleteUserResp) + err := c.cc.Invoke(ctx, "/user.user/DeleteUser", in, out, opts...) if err != nil { return nil, err } @@ -3513,7 +3646,7 @@ type UserServer interface { GetReceiveMessageOpt(context.Context, *GetReceiveMessageOptReq) (*GetReceiveMessageOptResp, error) GetAllConversationMsgOpt(context.Context, *GetAllConversationMsgOptReq) (*GetAllConversationMsgOptResp, error) AccountCheck(context.Context, *AccountCheckReq) (*AccountCheckResp, error) - GetUser(context.Context, *GetUserReq) (*GetUserResp, error) + GetUserById(context.Context, *GetUserByIdReq) (*GetUserByIdResp, error) ResignUser(context.Context, *ResignUserReq) (*ResignUserResp, error) AlterUser(context.Context, *AlterUserReq) (*AlterUserResp, error) GetUsers(context.Context, *GetUsersReq) (*GetUsersResp, error) @@ -3521,7 +3654,8 @@ type UserServer interface { BlockUser(context.Context, *BlockUserReq) (*BlockUserResp, error) UnBlockUser(context.Context, *UnBlockUserReq) (*UnBlockUserResp, error) GetBlockUsers(context.Context, *GetBlockUsersReq) (*GetBlockUsersResp, error) - GetBlockUser(context.Context, *GetBlockUserReq) (*GetBlockUserResp, error) + GetBlockUserById(context.Context, *GetBlockUserByIdReq) (*GetBlockUserByIdResp, error) + DeleteUser(context.Context, *DeleteUserReq) (*DeleteUserResp, error) } // UnimplementedUserServer can be embedded to have forward compatible implementations. @@ -3552,8 +3686,8 @@ func (*UnimplementedUserServer) GetAllConversationMsgOpt(context.Context, *GetAl func (*UnimplementedUserServer) AccountCheck(context.Context, *AccountCheckReq) (*AccountCheckResp, error) { return nil, status.Errorf(codes.Unimplemented, "method AccountCheck not implemented") } -func (*UnimplementedUserServer) GetUser(context.Context, *GetUserReq) (*GetUserResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method GetUser not implemented") +func (*UnimplementedUserServer) GetUserById(context.Context, *GetUserByIdReq) (*GetUserByIdResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetUserById not implemented") } func (*UnimplementedUserServer) ResignUser(context.Context, *ResignUserReq) (*ResignUserResp, error) { return nil, status.Errorf(codes.Unimplemented, "method ResignUser not implemented") @@ -3576,8 +3710,11 @@ func (*UnimplementedUserServer) UnBlockUser(context.Context, *UnBlockUserReq) (* func (*UnimplementedUserServer) GetBlockUsers(context.Context, *GetBlockUsersReq) (*GetBlockUsersResp, error) { return nil, status.Errorf(codes.Unimplemented, "method GetBlockUsers not implemented") } -func (*UnimplementedUserServer) GetBlockUser(context.Context, *GetBlockUserReq) (*GetBlockUserResp, error) { - return nil, status.Errorf(codes.Unimplemented, "method GetBlockUser not implemented") +func (*UnimplementedUserServer) GetBlockUserById(context.Context, *GetBlockUserByIdReq) (*GetBlockUserByIdResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetBlockUserById not implemented") +} +func (*UnimplementedUserServer) DeleteUser(context.Context, *DeleteUserReq) (*DeleteUserResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method DeleteUser not implemented") } func RegisterUserServer(s *grpc.Server, srv UserServer) { @@ -3728,20 +3865,20 @@ func _User_AccountCheck_Handler(srv interface{}, ctx context.Context, dec func(i return interceptor(ctx, in, info, handler) } -func _User_GetUser_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(GetUserReq) +func _User_GetUserById_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetUserByIdReq) if err := dec(in); err != nil { return nil, err } if interceptor == nil { - return srv.(UserServer).GetUser(ctx, in) + return srv.(UserServer).GetUserById(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/user.user/GetUser", + FullMethod: "/user.user/GetUserById", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(UserServer).GetUser(ctx, req.(*GetUserReq)) + return srv.(UserServer).GetUserById(ctx, req.(*GetUserByIdReq)) } return interceptor(ctx, in, info, handler) } @@ -3872,20 +4009,38 @@ func _User_GetBlockUsers_Handler(srv interface{}, ctx context.Context, dec func( return interceptor(ctx, in, info, handler) } -func _User_GetBlockUser_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { - in := new(GetBlockUserReq) +func _User_GetBlockUserById_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetBlockUserByIdReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(UserServer).GetBlockUserById(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/user.user/GetBlockUserById", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(UserServer).GetBlockUserById(ctx, req.(*GetBlockUserByIdReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _User_DeleteUser_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(DeleteUserReq) if err := dec(in); err != nil { return nil, err } if interceptor == nil { - return srv.(UserServer).GetBlockUser(ctx, in) + return srv.(UserServer).DeleteUser(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/user.user/GetBlockUser", + FullMethod: "/user.user/DeleteUser", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(UserServer).GetBlockUser(ctx, req.(*GetBlockUserReq)) + return srv.(UserServer).DeleteUser(ctx, req.(*DeleteUserReq)) } return interceptor(ctx, in, info, handler) } @@ -3927,8 +4082,8 @@ var _User_serviceDesc = grpc.ServiceDesc{ Handler: _User_AccountCheck_Handler, }, { - MethodName: "GetUser", - Handler: _User_GetUser_Handler, + MethodName: "GetUserById", + Handler: _User_GetUserById_Handler, }, { MethodName: "ResignUser", @@ -3959,8 +4114,12 @@ var _User_serviceDesc = grpc.ServiceDesc{ Handler: _User_GetBlockUsers_Handler, }, { - MethodName: "GetBlockUser", - Handler: _User_GetBlockUser_Handler, + MethodName: "GetBlockUserById", + Handler: _User_GetBlockUserById_Handler, + }, + { + MethodName: "DeleteUser", + Handler: _User_DeleteUser_Handler, }, }, Streams: []grpc.StreamDesc{}, diff --git a/pkg/proto/user/user.proto b/pkg/proto/user/user.proto index d304712ef..ac765d962 100644 --- a/pkg/proto/user/user.proto +++ b/pkg/proto/user/user.proto @@ -116,7 +116,7 @@ message ResignUserResp{ CommonResp commonResp = 1; } -message GetUserReq{ +message GetUserByIdReq{ string UserId = 1; string OperationID = 2; } @@ -129,7 +129,7 @@ message User{ bool IsBlock = 5; } -message GetUserResp{ +message GetUserByIdResp{ CommonResp CommonResp = 1; User user = 2; } @@ -149,14 +149,14 @@ message AlterUserResp{ message GetUsersReq { string OperationID = 1; server_api_params.RequestPagination Pagination = 2; + string UserName = 3; } message GetUsersResp{ CommonResp CommonResp = 1; - string OperationID = 2; - repeated User user = 3; - int32 UserNum = 4; - server_api_params.ResponsePagination Pagination = 5; + repeated User user = 2; + server_api_params.ResponsePagination Pagination = 3; + string OperationID = 4; } message AddUserReq{ @@ -206,18 +206,26 @@ message GetBlockUsersResp{ CommonResp CommonResp = 1; repeated BlockUser BlockUsers = 2; server_api_params.ResponsePagination Pagination = 3; - int32 BlockUserNum = 4; } -message GetBlockUserReq { +message GetBlockUserByIdReq { string User_id = 1; string OperationID = 2; } -message GetBlockUserResp { +message GetBlockUserByIdResp { BlockUser BlockUser = 2; } +message DeleteUserReq { + string User_id = 1; + string OperationID = 2; +} + +message DeleteUserResp { + +} + service user { rpc GetUserInfo(GetUserInfoReq) returns(GetUserInfoResp); rpc UpdateUserInfo(UpdateUserInfoReq) returns(UpdateUserInfoResp); @@ -228,7 +236,7 @@ service user { rpc GetAllConversationMsgOpt(GetAllConversationMsgOptReq)returns(GetAllConversationMsgOptResp); rpc AccountCheck(AccountCheckReq)returns(AccountCheckResp); - rpc GetUser(GetUserReq) returns (GetUserResp); + rpc GetUserById(GetUserByIdReq) returns (GetUserByIdResp); rpc ResignUser(ResignUserReq) returns (ResignUserResp); rpc AlterUser(AlterUserReq) returns (AlterUserResp); rpc GetUsers(GetUsersReq) returns (GetUsersResp); @@ -236,5 +244,6 @@ service user { rpc BlockUser(BlockUserReq) returns (BlockUserResp); rpc UnBlockUser(UnBlockUserReq) returns (UnBlockUserResp); rpc GetBlockUsers(GetBlockUsersReq) returns (GetBlockUsersResp); - rpc GetBlockUser(GetBlockUserReq) returns (GetBlockUserResp); + rpc GetBlockUserById(GetBlockUserByIdReq) returns (GetBlockUserByIdResp); + rpc DeleteUser(DeleteUserReq) returns (DeleteUserResp); } diff --git a/pkg/utils/time_format.go b/pkg/utils/time_format.go index b24d11398..c8f6e21fa 100644 --- a/pkg/utils/time_format.go +++ b/pkg/utils/time_format.go @@ -78,3 +78,8 @@ func TimeStringFormatTimeUnix(timeFormat string, timeSrc string) int64 { tm, _ := time.Parse(timeFormat, timeSrc) return tm.Unix() } + +func TimeStringToTime(timeString string) (time.Time, error) { + t, err := time.Parse("2006-01-02", timeString) + return t, err +} From e94dbe4965e1d788dbbae8bb66446d2a83f1fe99 Mon Sep 17 00:00:00 2001 From: wangchuxiao Date: Mon, 7 Feb 2022 19:42:09 +0800 Subject: [PATCH 564/814] cms dev --- internal/api/group/group.go | 2 - internal/cms_api/group/group.go | 172 ++- internal/cms_api/router.go | 13 +- internal/rpc/group/group.go | 134 +- internal/rpc/user/user.go | 2 +- pkg/cms_api_struct/group.go | 32 +- pkg/common/constant/constant.go | 6 +- .../im_mysql_model/group_member_model.go | 13 + .../mysql_model/im_mysql_model/group_model.go | 24 +- .../mysql_model/im_mysql_model/user_model.go | 2 +- pkg/proto/group/group.pb.go | 1365 +++++++++++++---- pkg/proto/group/group.proto | 48 +- pkg/proto/proto_dir.cfg | 4 +- 13 files changed, 1387 insertions(+), 430 deletions(-) diff --git a/internal/api/group/group.go b/internal/api/group/group.go index c7b725a9e..baed4b887 100644 --- a/internal/api/group/group.go +++ b/internal/api/group/group.go @@ -331,7 +331,6 @@ func GetGroupsInfo(c *gin.Context) { return } log.NewInfo(req.OperationID, "GetGroupsInfo args ", req.String()) - etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImGroupName) client := rpc.NewGroupClient(etcdConn) RpcResp, err := client.GetGroupsInfo(context.Background(), req) @@ -504,5 +503,4 @@ func TransferGroupOwner(c *gin.Context) { resp := api.TransferGroupOwnerResp{CommResp: api.CommResp{ErrCode: reply.CommonResp.ErrCode, ErrMsg: reply.CommonResp.ErrMsg}} log.NewInfo(req.OperationID, "TransferGroupOwner api return ", resp) c.JSON(http.StatusOK, resp) - } diff --git a/internal/cms_api/group/group.go b/internal/cms_api/group/group.go index e2df24488..8ad28d101 100644 --- a/internal/cms_api/group/group.go +++ b/internal/cms_api/group/group.go @@ -25,24 +25,25 @@ func GetGroupById(c *gin.Context) { reqPb pbGroup.GetGroupByIdReq ) if err := c.ShouldBindQuery(&req); err != nil { - log.NewError("0", "ShouldBindQuery failed ", err.Error()) + log.NewError(reqPb.OperationID, "ShouldBindQuery failed ", err.Error()) openIMHttp.RespHttp200(c, constant.ErrArgs, nil) return } + reqPb.GroupId = req.GroupId etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImGroupName) client := pbGroup.NewGroupClient(etcdConn) respPb, err := client.GetGroupById(context.Background(), &reqPb) if err != nil { - log.NewError(utils.GetSelfFuncName(), "GetGroupById failed ", err.Error()) + log.NewError(reqPb.OperationID, utils.GetSelfFuncName(), "GetGroupById failed ", err.Error()) openIMHttp.RespHttp200(c, constant.ErrServer, nil) return } - resp.GroupMasterId = respPb.GroupInfo.OwnerUserID - resp.GroupName = respPb.GroupInfo.GroupName - resp.GroupID = respPb.GroupInfo.GroupID - resp.CreateTime = (utils.UnixSecondToTime(int64(respPb.GroupInfo.CreateTime))).String() - resp.ProfilePhoto = respPb.GroupInfo.FaceURL - resp.GroupMasterName = respPb.GroupInfo.OwnerUserID + resp.GroupName = respPb.CMSGroup.GroupInfo.GroupName + resp.GroupID = respPb.CMSGroup.GroupInfo.GroupID + resp.CreateTime = (utils.UnixSecondToTime(int64(respPb.CMSGroup.GroupInfo.CreateTime))).String() + resp.ProfilePhoto = respPb.CMSGroup.GroupInfo.FaceURL + resp.GroupMasterName = respPb.CMSGroup.GroupMasterName + resp.GroupMasterId = respPb.CMSGroup.GroupMasterId openIMHttp.RespHttp200(c, constant.OK, resp) } @@ -53,7 +54,7 @@ func GetGroups(c *gin.Context) { reqPb pbGroup.GetGroupsReq ) if err := c.ShouldBindQuery(&req); err != nil { - log.NewError("0", "ShouldBindQuery failed ", err.Error()) + log.NewError(reqPb.OperationID, utils.GetSelfFuncName(), "ShouldBindQuery failed ", err.Error()) openIMHttp.RespHttp200(c, constant.ErrArgs, nil) return } @@ -63,20 +64,20 @@ func GetGroups(c *gin.Context) { client := pbGroup.NewGroupClient(etcdConn) respPb, err := client.GetGroups(context.Background(), &reqPb) if err != nil { - log.NewError("s", "GetUserInfo failed ", err.Error()) + log.NewError(reqPb.OperationID, "GetUserInfo failed ", err.Error()) openIMHttp.RespHttp200(c, constant.ErrServer, nil) return } - for _, v := range respPb.GroupInfo { + for _, v := range respPb.CMSGroups { resp.Groups = append(resp.Groups, cms_api_struct.GroupResponse{ - GroupName: v.GroupName, - GroupID: v.GroupID, - GroupMasterName: v.OwnerUserID, - GroupMasterId: v.OwnerUserID, - CreateTime: (utils.UnixSecondToTime(int64(v.CreateTime))).String(), + GroupName: v.GroupInfo.GroupName, + GroupID: v.GroupInfo.GroupID, + GroupMasterName: v.GroupMasterName, + GroupMasterId: v.GroupMasterId, + CreateTime: (utils.UnixSecondToTime(int64(v.GroupInfo.CreateTime))).String(), IsBanChat: false, IsBanPrivateChat: false, - ProfilePhoto: v.FaceURL, + ProfilePhoto: v.GroupInfo.FaceURL, }) } resp.GroupNums = int(respPb.GroupNum) @@ -108,16 +109,16 @@ func GetGroupByName(c *gin.Context) { openIMHttp.RespHttp200(c, constant.ErrServer, nil) return } - for _, v := range respPb.GroupInfo { + for _, v := range respPb.CMSGroups { resp.Groups = append(resp.Groups, cms_api_struct.GroupResponse{ - GroupName: v.GroupName, - GroupID: v.GroupID, - GroupMasterName: v.OwnerUserID, - GroupMasterId: v.OwnerUserID, - CreateTime: (utils.UnixSecondToTime(int64(v.CreateTime))).String(), + GroupName: v.GroupInfo.GroupName, + GroupID: v.GroupInfo.GroupID, + GroupMasterName: v.GroupMasterName, + GroupMasterId: v.GroupMasterId, + CreateTime: (utils.UnixSecondToTime(int64(v.GroupInfo.CreateTime))).String(), IsBanChat: false, IsBanPrivateChat: false, - ProfilePhoto: v.FaceURL, + ProfilePhoto: v.GroupInfo.FaceURL, }) } resp.CurrentPage = int(respPb.Pagination.PageNumber) @@ -132,7 +133,7 @@ func CreateGroup(c *gin.Context) { reqPb pbGroup.CreateGroupReq ) if err := c.BindJSON(&req); err != nil { - log.NewError("0", "ShouldBindQuery failed ", err.Error()) + log.NewError(reqPb.OperationID, utils.GetSelfFuncName(), "BindJSON failed ", err.Error()) openIMHttp.RespHttp200(c, constant.ErrArgs, nil) return } @@ -149,7 +150,7 @@ func CreateGroup(c *gin.Context) { client := pbGroup.NewGroupClient(etcdConn) _, err := client.CreateGroup(context.Background(), &reqPb) if err != nil { - log.NewError("s", "GetUserInfo failed ", err.Error()) + log.NewError(reqPb.OperationID, "GetUserInfo failed ", err.Error()) openIMHttp.RespHttp200(c, constant.ErrServer, nil) return } @@ -162,7 +163,7 @@ func BanGroupChat(c *gin.Context) { reqPb pbGroup.OperateGroupStatusReq ) if err := c.BindJSON(&req); err != nil { - log.NewError("0", "ShouldBindQuery failed ", err.Error()) + log.NewError(reqPb.OperationID, "ShouldBindQuery failed ", err.Error()) openIMHttp.RespHttp200(c, constant.ErrArgs, nil) return } @@ -172,7 +173,7 @@ func BanGroupChat(c *gin.Context) { client := pbGroup.NewGroupClient(etcdConn) _, err := client.OperateGroupStatus(context.Background(), &reqPb) if err != nil { - log.NewError("s", "GetUserInfo failed ", err.Error()) + log.NewError(reqPb.OperationID, "GetUserInfo failed ", err.Error()) openIMHttp.RespHttp200(c, constant.ErrServer, nil) return } @@ -242,41 +243,120 @@ func OpenPrivateChat(c *gin.Context) { client := pbGroup.NewGroupClient(etcdConn) _, err := client.OperateGroupStatus(context.Background(), &reqPb) if err != nil { - log.NewError("s", "GetUserInfo failed ", err.Error()) + log.NewError(reqPb.OperationID, "GetUserInfo failed ", err.Error()) openIMHttp.RespHttp200(c, constant.ErrServer, nil) return } openIMHttp.RespHttp200(c, constant.OK, nil) } -func GetGroupsMember(c *gin.Context) { +func GetGroupMembers(c *gin.Context) { var ( req cms_api_struct.GetGroupMembersRequest - _ cms_api_struct.GetGroupMembersResponse + reqPb pbGroup.GetGroupMembersCMSReq + resp cms_api_struct.GetGroupMembersResponse ) - if err := c.BindJSON(&req); err != nil { + if err := c.ShouldBindQuery(&req); err != nil { log.NewError("0", "BindJSON failed ", err.Error()) openIMHttp.RespHttp200(c, constant.ErrArgs, nil) return } + reqPb.Pagination = &commonPb.RequestPagination{ + PageNumber: int32(req.PageNumber), + ShowNumber: int32(req.ShowNumber), + } + etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImGroupName) + client := pbGroup.NewGroupClient(etcdConn) + respPb, err := client.GetGroupMembersCMS(context.Background(), &reqPb) + if err != nil { + log.NewError(reqPb.OperationID, utils.GetSelfFuncName(), "rpc:", err.Error()) + openIMHttp.RespHttp200(c, constant.ErrServer, nil) + return + } + resp.ResponsePagination.ShowNumber = int(respPb.Pagination.ShowNumber) + resp.ResponsePagination.CurrentPage = int(respPb.Pagination.PageNumber) + for _, groupMembers := range respPb.Members { + resp.GroupMembers = append(resp.GroupMembers, cms_api_struct.GroupMemberResponse{ + MemberPosition: int(groupMembers.RoleLevel), + MemberNickName: groupMembers.Nickname, + MemberId: groupMembers.UserID, + JoinTime: utils.UnixSecondToTime(groupMembers.JoinTime).String(), + }) + } + openIMHttp.RespHttp200(c, constant.OK, resp) } -func InquireGroup(c *gin.Context) { - -} - -func AddMembers(c *gin.Context) { - -} - -func RemoveUser(c *gin.Context) { +func AddGroupMembers(c *gin.Context) { + var ( + req cms_api_struct.RemoveGroupMembersRequest + resp cms_api_struct.RemoveGroupMembersResponse + reqPb pbGroup.AddGroupMembersCMSReq + ) + if err := c.BindJSON(&req); err != nil { + log.NewError(reqPb.OperationID, utils.GetSelfFuncName(),"BindJSON failed ", err.Error()) + openIMHttp.RespHttp200(c, constant.ErrArgs, nil) + return + } + reqPb.UserIds = req.Members + reqPb.GroupId = req.GroupId + etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImGroupName) + client := pbGroup.NewGroupClient(etcdConn) + respPb, err := client.AddGroupMembersCMS(context.Background(), &reqPb) + if err != nil { + log.NewError(reqPb.OperationID, utils.GetSelfFuncName(), "rpc:", err.Error()) + openIMHttp.RespHttp200(c, constant.ErrServer, nil) + return + } + resp.Success = respPb.Success + resp.Failed = respPb.Failed + openIMHttp.RespHttp200(c, constant.OK, resp) } -func Withdraw(c *gin.Context) { - +func RemoveGroupMembers(c *gin.Context) { + var ( + req cms_api_struct.RemoveGroupMembersRequest + resp cms_api_struct.RemoveGroupMembersResponse + reqPb pbGroup.RemoveGroupMembersCMSReq + ) + if err := c.BindJSON(&req); err != nil { + log.NewError(reqPb.OperationID, utils.GetSelfFuncName(),"BindJSON failed ", err.Error()) + openIMHttp.RespHttp200(c, constant.ErrArgs, nil) + return + } + reqPb.UserIds = req.Members + reqPb.GroupId = req.GroupId + etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImGroupName) + client := pbGroup.NewGroupClient(etcdConn) + respPb, err := client.RemoveGroupMembersCMS(context.Background(), &reqPb) + if err != nil { + log.NewError(reqPb.OperationID, utils.GetSelfFuncName(), "rpc:", err.Error()) + openIMHttp.RespHttp200(c, constant.ErrServer, nil) + return + } + resp.Success = respPb.Success + resp.Failed = respPb.Failed + openIMHttp.RespHttp200(c, constant.OK, respPb) } -func SearchMessage(g *gin.Context) { - -} +func DeleteGroup(c *gin.Context) { + var ( + req cms_api_struct.DeleteGroupRequest + _ cms_api_struct.DeleteGroupResponse + reqPb pbGroup.DeleteGroupReq + ) + if err := c.BindJSON(&req); err != nil { + log.NewError(reqPb.OperationID, utils.GetSelfFuncName(),"BindJSON failed ", err.Error()) + openIMHttp.RespHttp200(c, constant.ErrArgs, nil) + return + } + etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImGroupName) + client := pbGroup.NewGroupClient(etcdConn) + _, err := client.DeleteGroup(context.Background(), &reqPb) + if err != nil { + log.NewError(reqPb.OperationID, utils.GetSelfFuncName(), "rpc:", err.Error()) + openIMHttp.RespHttp200(c, constant.ErrServer, nil) + return + } + openIMHttp.RespHttp200(c, constant.OK, nil) +} \ No newline at end of file diff --git a/internal/cms_api/router.go b/internal/cms_api/router.go index a7d6e6db8..e9f744d29 100644 --- a/internal/cms_api/router.go +++ b/internal/cms_api/router.go @@ -57,29 +57,26 @@ func NewGinRouter() *gin.Engine { groupRouterGroup.GET("/get_group_by_id", group.GetGroupById) groupRouterGroup.GET("/get_groups", group.GetGroups) groupRouterGroup.GET("/get_group_by_name", group.GetGroupByName) - groupRouterGroup.GET("/get_group_members", group.GetGroupsMember) + groupRouterGroup.GET("/get_group_members", group.GetGroupMembers) groupRouterGroup.POST("/create_group", group.CreateGroup) - groupRouterGroup.GET("/inquire_group", group.InquireGroup) - groupRouterGroup.POST("/add_members", group.AddMembers) - groupRouterGroup.POST("/remove_member", group.RemoveUser) + groupRouterGroup.POST("/add_members", group.AddGroupMembers) + groupRouterGroup.POST("/remove_member", group.RemoveGroupMembers) groupRouterGroup.POST("/ban_group_private_chat", group.BanPrivateChat) groupRouterGroup.POST("/open_group_private_chat", group.OpenPrivateChat) - groupRouterGroup.POST("/withdraw_message", group.Withdraw) - groupRouterGroup.POST("/search_group_message", group.SearchMessage) groupRouterGroup.POST("/ban_group_chat", group.BanGroupChat) groupRouterGroup.POST("/open_group_chat", group.OpenGroupChat) } userRouterGroup := router.Group("/user") { userRouterGroup.POST("/resign", user.ResignUser) - userRouterGroup.GET("/get_user_by_id", user.GetUserById) + userRouterGroup.GET("/get_user", user.GetUserById) userRouterGroup.POST("/alter_user", user.AlterUser) userRouterGroup.GET("/get_users", user.GetUsers) userRouterGroup.POST("/add_user", user.AddUser) userRouterGroup.POST("/unblock_user", user.UnblockUser) userRouterGroup.POST("/block_user", user.BlockUser) userRouterGroup.GET("/get_block_users", user.GetBlockUsers) - userRouterGroup.GET("/get_block_user_by_id", user.GetBlockUserById) + userRouterGroup.GET("/get_block_user", user.GetBlockUserById) userRouterGroup.POST("/delete_user", user.DeleteUser) } return baseRouter diff --git a/internal/rpc/group/group.go b/internal/rpc/group/group.go index bc52de5d7..26fa699ce 100644 --- a/internal/rpc/group/group.go +++ b/internal/rpc/group/group.go @@ -641,13 +641,16 @@ func (s *groupServer) TransferGroupOwner(_ context.Context, req *pbGroup.Transfe } func (s *groupServer) GetGroupById(_ context.Context, req *pbGroup.GetGroupByIdReq) (*pbGroup.GetGroupByIdResp, error) { - log.NewInfo(req.OperationID, "GetGroup ", req.String()) - resp := &pbGroup.GetGroupByIdResp{} + log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "GetGroup ", req.String()) + resp := &pbGroup.GetGroupByIdResp{CMSGroup: &pbGroup.CMSGroup{ + GroupInfo: &open_im_sdk.GroupInfo{}, + }} group, err := imdb.GetGroupsById(req.GroupId) if err != nil { + log.NewInfo(req.OperationID, utils.GetSelfFuncName(), err.Error()) return resp, err } - resp.GroupInfo = &open_im_sdk.GroupInfo{ + resp.CMSGroup.GroupInfo = &open_im_sdk.GroupInfo{ GroupID: group.GroupID, GroupName: group.GroupName, FaceURL: group.FaceUrl, @@ -657,31 +660,47 @@ func (s *groupServer) GetGroupById(_ context.Context, req *pbGroup.GetGroupByIdR CreatorUserID: group.CreatorUserID, GroupType: group.GroupType, } - resp.GroupInfo.CreatorUserID = group.CreatorUserID + groupMember, err := imdb.GetGroupMaster(group.GroupID) + if err != nil { + return resp, err + } + resp.CMSGroup.GroupMasterName = groupMember.Nickname + resp.CMSGroup.GroupMasterId = groupMember.UserID + resp.CMSGroup.GroupInfo.CreatorUserID = group.CreatorUserID return resp, nil } func (s *groupServer) GetGroup(_ context.Context, req *pbGroup.GetGroupReq) (*pbGroup.GetGroupResp, error) { log.NewInfo(req.OperationID, "GetGroup ", req.String()) resp := &pbGroup.GetGroupResp{ - GroupInfo: []*open_im_sdk.GroupInfo{}, + CMSGroups: []*pbGroup.CMSGroup{}, } groups, err := imdb.GetGroupsByName(req.GroupName, req.Pagination.PageNumber, req.Pagination.ShowNumber) if err != nil { return nil, err } + log.NewInfo(req.OperationID, groups) resp.Pagination = &open_im_sdk.RequestPagination{ PageNumber: req.Pagination.PageNumber, ShowNumber: req.Pagination.ShowNumber, } for _, v := range groups { - resp.GroupInfo = append(resp.GroupInfo, &open_im_sdk.GroupInfo{ - GroupID: v.GroupID, - GroupName: v.GroupName, - FaceURL: v.FaceUrl, - OwnerUserID: v.CreatorUserID, - Status: v.Status, - CreatorUserID: v.CreatorUserID, + groupMember, err := imdb.GetGroupMaster(v.GroupID) + if err != nil { + log.NewError(req.OperationID, utils.GetSelfFuncName(), err.Error()) + continue + } + resp.CMSGroups = append(resp.CMSGroups, &pbGroup.CMSGroup{ + GroupInfo: &open_im_sdk.GroupInfo{ + GroupID: v.GroupID, + GroupName: v.GroupName, + FaceURL: v.FaceUrl, + OwnerUserID: v.CreatorUserID, + Status: v.Status, + CreatorUserID: v.CreatorUserID, + }, + GroupMasterName: groupMember.Nickname, + GroupMasterId: groupMember.UserID, }) } return resp, nil @@ -690,7 +709,7 @@ func (s *groupServer) GetGroup(_ context.Context, req *pbGroup.GetGroupReq) (*pb func (s *groupServer) GetGroups(_ context.Context, req *pbGroup.GetGroupsReq) (*pbGroup.GetGroupsResp, error) { log.NewInfo(req.OperationID, "GetGroups ", req.String()) resp := &pbGroup.GetGroupsResp{ - GroupInfo: []*open_im_sdk.GroupInfo{}, + CMSGroups: []*pbGroup.CMSGroup{}, Pagination: &open_im_sdk.RequestPagination{}, } groups, err := imdb.GetGroups(int(req.Pagination.PageNumber), int(req.Pagination.ShowNumber)) @@ -706,13 +725,22 @@ func (s *groupServer) GetGroups(_ context.Context, req *pbGroup.GetGroupsReq) (* resp.Pagination.PageNumber = req.Pagination.PageNumber resp.Pagination.ShowNumber = req.Pagination.ShowNumber for _, v := range groups { - resp.GroupInfo = append(resp.GroupInfo, &open_im_sdk.GroupInfo{ - GroupID: v.GroupID, - GroupName: v.GroupName, - FaceURL: v.FaceUrl, - OwnerUserID: v.CreatorUserID, - Status: v.Status, - CreatorUserID: v.CreatorUserID, + groupMember, err := imdb.GetGroupMaster(v.GroupID) + if err != nil { + log.NewError(req.OperationID, utils.GetSelfFuncName(), err.Error()) + continue + } + resp.CMSGroups = append(resp.CMSGroups, &pbGroup.CMSGroup{ + GroupInfo: &open_im_sdk.GroupInfo{ + GroupID: v.GroupID, + GroupName: v.GroupName, + FaceURL: v.FaceUrl, + OwnerUserID: v.CreatorUserID, + Status: v.Status, + CreatorUserID: v.CreatorUserID, + }, + GroupMasterId: groupMember.UserID, + GroupMasterName: groupMember.Nickname, }) } @@ -723,6 +751,7 @@ func (s *groupServer) OperateGroupStatus(_ context.Context, req *pbGroup.Operate log.NewInfo(req.OperationID, utils.GetSelfFuncName(), req.String()) resp := &pbGroup.OperateGroupStatusResp{} if err := imdb.OperateGroupStatus(req.GroupId, req.Status); err != nil { + log.NewError(req.OperationID, utils.GetSelfFuncName(), err.Error()) return resp, err } return resp, nil @@ -732,16 +761,79 @@ func (s *groupServer) DeleteGroup(_ context.Context, req *pbGroup.DeleteGroupReq log.NewInfo(req.OperationID, utils.GetSelfFuncName(), req.String()) resp := &pbGroup.DeleteGroupResp{} if err := imdb.DeleteGroup(req.GroupId); err != nil { + log.NewError(req.OperationID, utils.GetSelfFuncName(), err.Error()) return resp, err } return resp, nil } func (s *groupServer) OperateUserRole(_ context.Context, req *pbGroup.OperateUserRoleReq) (*pbGroup.OperateUserRoleResp, error) { - log.NewInfo(req.OperationID, "DeleteGroup ", req.String()) + log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "args:", req.String()) resp := &pbGroup.OperateUserRoleResp{} if err := imdb.OperateGroupRole(req.UserId, req.GroupId, req.RoleLevel); err != nil { + log.NewError(req.OperationID, utils.GetSelfFuncName(), err.Error()) + return resp, err + } + return resp, nil +} + +func (s *groupServer) GetGroupMembersCMS(_ context.Context, req *pbGroup.GetGroupMembersCMSReq) (*pbGroup.GetGroupMembersCMSResp, error) { + log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "args:", req.String()) + resp := &pbGroup.GetGroupMembersCMSResp{} + groupMembers, err := imdb.GetGroupMembersByGroupIdCMS(req.GroupId, req.Pagination.ShowNumber, req.Pagination.PageNumber) + if err != nil { + log.NewError(req.OperationID, utils.GetSelfFuncName(), err.Error()) return resp, err } + for _, groupMember := range groupMembers { + resp.Members = append(resp.Members, &open_im_sdk.GroupMemberFullInfo{ + GroupID: req.GroupId, + UserID: groupMember.UserID, + RoleLevel: groupMember.RoleLevel, + JoinTime: groupMember.JoinTime.Unix(), + Nickname: groupMember.Nickname, + FaceURL: groupMember.FaceUrl, + JoinSource: groupMember.JoinSource, + }) + } + return resp, nil +} + +func (s *groupServer) RemoveGroupMembersCMS(_ context.Context, req *pbGroup.RemoveGroupMembersCMSReq) (*pbGroup.RemoveGroupMembersCMSResp, error) { + log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "args:", req.String()) + resp := &pbGroup.RemoveGroupMembersCMSResp{} + for _, userId := range req.UserIds { + err := imdb.RemoveGroupMember(req.GroupId, userId) + if err != nil { + log.NewError(req.OperationID, utils.GetSelfFuncName(), err.Error()) + resp.Failed = append(resp.Failed, userId) + } else { + resp.Success = append(resp.Success, userId) + } + } + return resp, nil +} + +func (s *groupServer) AddGroupMembersCMS(_ context.Context, req *pbGroup.AddGroupMembersCMSReq) (*pbGroup.AddGroupMembersCMSResp, error) { + log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "args:", req.String()) + resp := &pbGroup.AddGroupMembersCMSResp{} + for _, userIds := range req.UserIds { + groupMember := db.GroupMember{ + GroupID: req.GroupId, + UserID: userIds, + Nickname: "", + FaceUrl: "", + RoleLevel: 1, + JoinTime: time.Time{}, + JoinSource: constant.JoinByAdmin, + OperatorUserID: "CmsAdmin", + Ex: "", + } + if err := imdb.InsertIntoGroupMember(groupMember); err != nil { + resp.Failed = append(resp.Failed, userIds) + } else { + resp.Success = append(resp.Success, userIds) + } + } return resp, nil } diff --git a/internal/rpc/user/user.go b/internal/rpc/user/user.go index 87529877e..2d65bcb8a 100644 --- a/internal/rpc/user/user.go +++ b/internal/rpc/user/user.go @@ -374,7 +374,7 @@ func (s *userServer) GetBlockUsers(ctx context.Context, req *pbUser.GetBlockUser } func (s *userServer) GetBlockUserById(_ context.Context, req *pbUser.GetBlockUserByIdReq) (*pbUser.GetBlockUserByIdResp, error) { - log.NewInfo(req.OperationID, "GetBlockUser args ", req.String()) + log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "GetBlockUserById args ", req.String()) resp := &pbUser.GetBlockUserByIdResp{} user, err := imdb.GetBlockUserById(req.UserId) if err != nil { diff --git a/pkg/cms_api_struct/group.go b/pkg/cms_api_struct/group.go index edab8a2de..53ff91a80 100644 --- a/pkg/cms_api_struct/group.go +++ b/pkg/cms_api_struct/group.go @@ -86,12 +86,38 @@ type GetGroupMembersRequest struct { type GroupMemberResponse struct { MemberPosition int `json:"member_position"` MemberNickName string `json:"member_nick_name"` - MemberId int `json:"member_id"` + MemberId string `json:"member_id"` JoinTime string `json:"join_time"` } type GetGroupMembersResponse struct { - GroupMemberList []GroupMemberResponse `json:"group_member_list"` + GroupMembers []GroupMemberResponse `json:"group_members"` GroupMemberNums int `json:"group_member_nums"` ResponsePagination -} \ No newline at end of file +} + +type GroupMemberRequest struct { + GroupId string `json:"group_id"` + Members []string `json:"members"` +} + +type GroupMemberOperateResponse struct { + Success []string `json:"success"` + Failed []string `json:"failed"` +} + +type AddGroupMembersRequest struct { + GroupMemberRequest +} + +type AddGroupMembersResponse struct { + GroupMemberOperateResponse +} + +type RemoveGroupMembersRequest struct { + GroupMemberRequest +} + +type RemoveGroupMembersResponse struct{ + GroupMemberOperateResponse +} diff --git a/pkg/common/constant/constant.go b/pkg/common/constant/constant.go index c18ab0971..fc1b1e0d3 100644 --- a/pkg/common/constant/constant.go +++ b/pkg/common/constant/constant.go @@ -115,10 +115,8 @@ const ( GroupBaned = 3 GroupBanPrivateChat = 4 - //timeInterval - Day = 1 - Week = 7 - Month = 31 + //UserJoinGroupSource + JoinByAdmin = 1 ) var ContentType2PushContent = map[int64]string{ diff --git a/pkg/common/db/mysql_model/im_mysql_model/group_member_model.go b/pkg/common/db/mysql_model/im_mysql_model/group_member_model.go index f4684f9a4..b7a28c6d4 100644 --- a/pkg/common/db/mysql_model/im_mysql_model/group_member_model.go +++ b/pkg/common/db/mysql_model/im_mysql_model/group_member_model.go @@ -225,6 +225,19 @@ func IsGroupOwnerAdmin(groupID, UserID string) bool { return false } +func GetGroupMembersByGroupIdCMS(groupId string, showNumber, pageNumber int32) ([]db.GroupMember, error) { + var groupMembers []db.GroupMember + dbConn, err := db.DB.MysqlDB.DefaultGormDB() + if err != nil { + return groupMembers, err + } + err = dbConn.Table("group_members").Where("group_id=?", groupId).Limit(showNumber).Offset(showNumber * (pageNumber - 1)).Find(&groupMembers).Error + if err != nil { + return nil, err + } + return groupMembers, nil +} + // //func SelectGroupList(groupID string) ([]string, error) { // var groupUserID string diff --git a/pkg/common/db/mysql_model/im_mysql_model/group_model.go b/pkg/common/db/mysql_model/im_mysql_model/group_model.go index 2a7eced59..62026b4e3 100644 --- a/pkg/common/db/mysql_model/im_mysql_model/group_model.go +++ b/pkg/common/db/mysql_model/im_mysql_model/group_model.go @@ -4,6 +4,7 @@ import ( "Open_IM/pkg/common/constant" "Open_IM/pkg/common/db" "Open_IM/pkg/utils" + "fmt" "time" ) @@ -66,7 +67,7 @@ func GetGroupsByName(groupName string, pageNumber, showNumber int32) ([]db.Group return groups, err } dbConn.LogMode(true) - err = dbConn.Table("groups").Where("name=?", groupName).Limit(showNumber).Offset(showNumber * (pageNumber - 1)).Find(&groups).Error + err = dbConn.Table("groups").Where(fmt.Sprintf(" name like '%%%s%%' ", groupName)).Limit(showNumber).Offset(showNumber * (pageNumber - 1)).Find(&groups).Error return groups, err } @@ -103,9 +104,13 @@ func DeleteGroup(groupId string) error { } dbConn.LogMode(true) var group db.Group + var groupMembers []db.GroupMember if err := dbConn.Table("groups").Where("").Delete(&group).Error; err != nil { return err } + if err := dbConn.Table("group_Members").Where("group_id=?", groupId).Delete(groupMembers).Error; err != nil { + return err + } return nil } @@ -136,7 +141,7 @@ func GetGroupsCountNum() (int, error) { } dbConn.LogMode(true) var count int - if err := dbConn.Model(&db.Group{}).Count(&count).Error; err != nil { + if err := dbConn.Table("groups").Count(&count).Error; err != nil { return 0, err } return count, nil @@ -151,8 +156,21 @@ func GetGroupsById(groupId string) (db.Group, error) { return group, err } dbConn.LogMode(true) - if err := dbConn.Find(&group).First(&group).Error; err != nil { + if err := dbConn.Table("groups").Find(&group).Error; err != nil { return group, err } return group, nil +} + +func GetGroupMaster(groupId string) (db.GroupMember, error) { + dbConn, err := db.DB.MysqlDB.DefaultGormDB() + groupMember := db.GroupMember{} + if err != nil { + return groupMember, err + } + dbConn.LogMode(true) + if err := dbConn.Table("group_members").Where("role_level=? and group_id=?", constant.GroupOwner, groupId).Find(&groupMember).Error; err != nil { + return groupMember, err + } + return groupMember, nil } \ No newline at end of file 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 96bd5c89f..40a430706 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 @@ -222,7 +222,7 @@ func GetBlockUserById(userId string) (BlockUserInfo, error) { if err != nil { return blockUserInfo, err } - if err = dbConn.Find(&blockUser).First(&blockUser).Error; err != nil { + if err = dbConn.Table("black_list").Where("uid=?", userId).Find(&blockUser).Error; err != nil { return blockUserInfo, err } user := db.Users{ diff --git a/pkg/proto/group/group.pb.go b/pkg/proto/group/group.pb.go index 732baf9bc..db9dd8c6e 100644 --- a/pkg/proto/group/group.pb.go +++ b/pkg/proto/group/group.pb.go @@ -2002,6 +2002,69 @@ func (x *GetGroupAllMemberResp) GetMemberList() []*sdk_ws.GroupMemberFullInfo { return nil } +type CMSGroup struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + GroupInfo *sdk_ws.GroupInfo `protobuf:"bytes,1,opt,name=GroupInfo,proto3" json:"GroupInfo,omitempty"` + GroupMasterName string `protobuf:"bytes,2,opt,name=GroupMasterName,proto3" json:"GroupMasterName,omitempty"` + GroupMasterId string `protobuf:"bytes,3,opt,name=GroupMasterId,proto3" json:"GroupMasterId,omitempty"` +} + +func (x *CMSGroup) Reset() { + *x = CMSGroup{} + if protoimpl.UnsafeEnabled { + mi := &file_group_group_proto_msgTypes[31] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *CMSGroup) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*CMSGroup) ProtoMessage() {} + +func (x *CMSGroup) ProtoReflect() protoreflect.Message { + mi := &file_group_group_proto_msgTypes[31] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use CMSGroup.ProtoReflect.Descriptor instead. +func (*CMSGroup) Descriptor() ([]byte, []int) { + return file_group_group_proto_rawDescGZIP(), []int{31} +} + +func (x *CMSGroup) GetGroupInfo() *sdk_ws.GroupInfo { + if x != nil { + return x.GroupInfo + } + return nil +} + +func (x *CMSGroup) GetGroupMasterName() string { + if x != nil { + return x.GroupMasterName + } + return "" +} + +func (x *CMSGroup) GetGroupMasterId() string { + if x != nil { + return x.GroupMasterId + } + return "" +} + type GetGroupReq struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -2015,7 +2078,7 @@ type GetGroupReq struct { func (x *GetGroupReq) Reset() { *x = GetGroupReq{} if protoimpl.UnsafeEnabled { - mi := &file_group_group_proto_msgTypes[31] + mi := &file_group_group_proto_msgTypes[32] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2028,7 +2091,7 @@ func (x *GetGroupReq) String() string { func (*GetGroupReq) ProtoMessage() {} func (x *GetGroupReq) ProtoReflect() protoreflect.Message { - mi := &file_group_group_proto_msgTypes[31] + mi := &file_group_group_proto_msgTypes[32] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2041,7 +2104,7 @@ func (x *GetGroupReq) ProtoReflect() protoreflect.Message { // Deprecated: Use GetGroupReq.ProtoReflect.Descriptor instead. func (*GetGroupReq) Descriptor() ([]byte, []int) { - return file_group_group_proto_rawDescGZIP(), []int{31} + return file_group_group_proto_rawDescGZIP(), []int{32} } func (x *GetGroupReq) GetGroupName() string { @@ -2070,14 +2133,14 @@ type GetGroupResp struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - GroupInfo []*sdk_ws.GroupInfo `protobuf:"bytes,1,rep,name=GroupInfo,proto3" json:"GroupInfo,omitempty"` + CMSGroups []*CMSGroup `protobuf:"bytes,1,rep,name=CMSGroups,proto3" json:"CMSGroups,omitempty"` Pagination *sdk_ws.RequestPagination `protobuf:"bytes,2,opt,name=Pagination,proto3" json:"Pagination,omitempty"` } func (x *GetGroupResp) Reset() { *x = GetGroupResp{} if protoimpl.UnsafeEnabled { - mi := &file_group_group_proto_msgTypes[32] + mi := &file_group_group_proto_msgTypes[33] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2090,7 +2153,7 @@ func (x *GetGroupResp) String() string { func (*GetGroupResp) ProtoMessage() {} func (x *GetGroupResp) ProtoReflect() protoreflect.Message { - mi := &file_group_group_proto_msgTypes[32] + mi := &file_group_group_proto_msgTypes[33] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2103,12 +2166,12 @@ func (x *GetGroupResp) ProtoReflect() protoreflect.Message { // Deprecated: Use GetGroupResp.ProtoReflect.Descriptor instead. func (*GetGroupResp) Descriptor() ([]byte, []int) { - return file_group_group_proto_rawDescGZIP(), []int{32} + return file_group_group_proto_rawDescGZIP(), []int{33} } -func (x *GetGroupResp) GetGroupInfo() []*sdk_ws.GroupInfo { +func (x *GetGroupResp) GetCMSGroups() []*CMSGroup { if x != nil { - return x.GroupInfo + return x.CMSGroups } return nil } @@ -2132,7 +2195,7 @@ type GetGroupsReq struct { func (x *GetGroupsReq) Reset() { *x = GetGroupsReq{} if protoimpl.UnsafeEnabled { - mi := &file_group_group_proto_msgTypes[33] + mi := &file_group_group_proto_msgTypes[34] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2145,7 +2208,7 @@ func (x *GetGroupsReq) String() string { func (*GetGroupsReq) ProtoMessage() {} func (x *GetGroupsReq) ProtoReflect() protoreflect.Message { - mi := &file_group_group_proto_msgTypes[33] + mi := &file_group_group_proto_msgTypes[34] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2158,7 +2221,7 @@ func (x *GetGroupsReq) ProtoReflect() protoreflect.Message { // Deprecated: Use GetGroupsReq.ProtoReflect.Descriptor instead. func (*GetGroupsReq) Descriptor() ([]byte, []int) { - return file_group_group_proto_rawDescGZIP(), []int{33} + return file_group_group_proto_rawDescGZIP(), []int{34} } func (x *GetGroupsReq) GetPagination() *sdk_ws.RequestPagination { @@ -2180,7 +2243,7 @@ type GetGroupsResp struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - GroupInfo []*sdk_ws.GroupInfo `protobuf:"bytes,1,rep,name=GroupInfo,proto3" json:"GroupInfo,omitempty"` + CMSGroups []*CMSGroup `protobuf:"bytes,1,rep,name=CMSGroups,proto3" json:"CMSGroups,omitempty"` Pagination *sdk_ws.RequestPagination `protobuf:"bytes,2,opt,name=Pagination,proto3" json:"Pagination,omitempty"` GroupNum int32 `protobuf:"varint,3,opt,name=GroupNum,proto3" json:"GroupNum,omitempty"` } @@ -2188,7 +2251,7 @@ type GetGroupsResp struct { func (x *GetGroupsResp) Reset() { *x = GetGroupsResp{} if protoimpl.UnsafeEnabled { - mi := &file_group_group_proto_msgTypes[34] + mi := &file_group_group_proto_msgTypes[35] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2201,7 +2264,7 @@ func (x *GetGroupsResp) String() string { func (*GetGroupsResp) ProtoMessage() {} func (x *GetGroupsResp) ProtoReflect() protoreflect.Message { - mi := &file_group_group_proto_msgTypes[34] + mi := &file_group_group_proto_msgTypes[35] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2214,12 +2277,12 @@ func (x *GetGroupsResp) ProtoReflect() protoreflect.Message { // Deprecated: Use GetGroupsResp.ProtoReflect.Descriptor instead. func (*GetGroupsResp) Descriptor() ([]byte, []int) { - return file_group_group_proto_rawDescGZIP(), []int{34} + return file_group_group_proto_rawDescGZIP(), []int{35} } -func (x *GetGroupsResp) GetGroupInfo() []*sdk_ws.GroupInfo { +func (x *GetGroupsResp) GetCMSGroups() []*CMSGroup { if x != nil { - return x.GroupInfo + return x.CMSGroups } return nil } @@ -2250,7 +2313,7 @@ type GetGroupMemberReq struct { func (x *GetGroupMemberReq) Reset() { *x = GetGroupMemberReq{} if protoimpl.UnsafeEnabled { - mi := &file_group_group_proto_msgTypes[35] + mi := &file_group_group_proto_msgTypes[36] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2263,7 +2326,7 @@ func (x *GetGroupMemberReq) String() string { func (*GetGroupMemberReq) ProtoMessage() {} func (x *GetGroupMemberReq) ProtoReflect() protoreflect.Message { - mi := &file_group_group_proto_msgTypes[35] + mi := &file_group_group_proto_msgTypes[36] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2276,7 +2339,7 @@ func (x *GetGroupMemberReq) ProtoReflect() protoreflect.Message { // Deprecated: Use GetGroupMemberReq.ProtoReflect.Descriptor instead. func (*GetGroupMemberReq) Descriptor() ([]byte, []int) { - return file_group_group_proto_rawDescGZIP(), []int{35} + return file_group_group_proto_rawDescGZIP(), []int{36} } func (x *GetGroupMemberReq) GetGroupId() string { @@ -2306,7 +2369,7 @@ type OperateGroupStatusReq struct { func (x *OperateGroupStatusReq) Reset() { *x = OperateGroupStatusReq{} if protoimpl.UnsafeEnabled { - mi := &file_group_group_proto_msgTypes[36] + mi := &file_group_group_proto_msgTypes[37] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2319,7 +2382,7 @@ func (x *OperateGroupStatusReq) String() string { func (*OperateGroupStatusReq) ProtoMessage() {} func (x *OperateGroupStatusReq) ProtoReflect() protoreflect.Message { - mi := &file_group_group_proto_msgTypes[36] + mi := &file_group_group_proto_msgTypes[37] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2332,7 +2395,7 @@ func (x *OperateGroupStatusReq) ProtoReflect() protoreflect.Message { // Deprecated: Use OperateGroupStatusReq.ProtoReflect.Descriptor instead. func (*OperateGroupStatusReq) Descriptor() ([]byte, []int) { - return file_group_group_proto_rawDescGZIP(), []int{36} + return file_group_group_proto_rawDescGZIP(), []int{37} } func (x *OperateGroupStatusReq) GetGroupId() string { @@ -2365,7 +2428,7 @@ type OperateGroupStatusResp struct { func (x *OperateGroupStatusResp) Reset() { *x = OperateGroupStatusResp{} if protoimpl.UnsafeEnabled { - mi := &file_group_group_proto_msgTypes[37] + mi := &file_group_group_proto_msgTypes[38] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2378,7 +2441,7 @@ func (x *OperateGroupStatusResp) String() string { func (*OperateGroupStatusResp) ProtoMessage() {} func (x *OperateGroupStatusResp) ProtoReflect() protoreflect.Message { - mi := &file_group_group_proto_msgTypes[37] + mi := &file_group_group_proto_msgTypes[38] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2391,7 +2454,7 @@ func (x *OperateGroupStatusResp) ProtoReflect() protoreflect.Message { // Deprecated: Use OperateGroupStatusResp.ProtoReflect.Descriptor instead. func (*OperateGroupStatusResp) Descriptor() ([]byte, []int) { - return file_group_group_proto_rawDescGZIP(), []int{37} + return file_group_group_proto_rawDescGZIP(), []int{38} } type OperateUserRoleReq struct { @@ -2408,7 +2471,7 @@ type OperateUserRoleReq struct { func (x *OperateUserRoleReq) Reset() { *x = OperateUserRoleReq{} if protoimpl.UnsafeEnabled { - mi := &file_group_group_proto_msgTypes[38] + mi := &file_group_group_proto_msgTypes[39] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2421,7 +2484,7 @@ func (x *OperateUserRoleReq) String() string { func (*OperateUserRoleReq) ProtoMessage() {} func (x *OperateUserRoleReq) ProtoReflect() protoreflect.Message { - mi := &file_group_group_proto_msgTypes[38] + mi := &file_group_group_proto_msgTypes[39] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2434,7 +2497,7 @@ func (x *OperateUserRoleReq) ProtoReflect() protoreflect.Message { // Deprecated: Use OperateUserRoleReq.ProtoReflect.Descriptor instead. func (*OperateUserRoleReq) Descriptor() ([]byte, []int) { - return file_group_group_proto_rawDescGZIP(), []int{38} + return file_group_group_proto_rawDescGZIP(), []int{39} } func (x *OperateUserRoleReq) GetGroupId() string { @@ -2474,7 +2537,7 @@ type OperateUserRoleResp struct { func (x *OperateUserRoleResp) Reset() { *x = OperateUserRoleResp{} if protoimpl.UnsafeEnabled { - mi := &file_group_group_proto_msgTypes[39] + mi := &file_group_group_proto_msgTypes[40] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2487,7 +2550,7 @@ func (x *OperateUserRoleResp) String() string { func (*OperateUserRoleResp) ProtoMessage() {} func (x *OperateUserRoleResp) ProtoReflect() protoreflect.Message { - mi := &file_group_group_proto_msgTypes[39] + mi := &file_group_group_proto_msgTypes[40] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2500,7 +2563,7 @@ func (x *OperateUserRoleResp) ProtoReflect() protoreflect.Message { // Deprecated: Use OperateUserRoleResp.ProtoReflect.Descriptor instead. func (*OperateUserRoleResp) Descriptor() ([]byte, []int) { - return file_group_group_proto_rawDescGZIP(), []int{39} + return file_group_group_proto_rawDescGZIP(), []int{40} } type DeleteGroupReq struct { @@ -2515,20 +2578,334 @@ type DeleteGroupReq struct { func (x *DeleteGroupReq) Reset() { *x = DeleteGroupReq{} if protoimpl.UnsafeEnabled { - mi := &file_group_group_proto_msgTypes[40] + mi := &file_group_group_proto_msgTypes[41] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DeleteGroupReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DeleteGroupReq) ProtoMessage() {} + +func (x *DeleteGroupReq) ProtoReflect() protoreflect.Message { + mi := &file_group_group_proto_msgTypes[41] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use DeleteGroupReq.ProtoReflect.Descriptor instead. +func (*DeleteGroupReq) Descriptor() ([]byte, []int) { + return file_group_group_proto_rawDescGZIP(), []int{41} +} + +func (x *DeleteGroupReq) GetGroupId() string { + if x != nil { + return x.GroupId + } + return "" +} + +func (x *DeleteGroupReq) GetOperationID() string { + if x != nil { + return x.OperationID + } + return "" +} + +type DeleteGroupResp struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *DeleteGroupResp) Reset() { + *x = DeleteGroupResp{} + if protoimpl.UnsafeEnabled { + mi := &file_group_group_proto_msgTypes[42] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *DeleteGroupResp) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*DeleteGroupResp) ProtoMessage() {} + +func (x *DeleteGroupResp) ProtoReflect() protoreflect.Message { + mi := &file_group_group_proto_msgTypes[42] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use DeleteGroupResp.ProtoReflect.Descriptor instead. +func (*DeleteGroupResp) Descriptor() ([]byte, []int) { + return file_group_group_proto_rawDescGZIP(), []int{42} +} + +type GetGroupByIdReq struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + GroupId string `protobuf:"bytes,1,opt,name=GroupId,proto3" json:"GroupId,omitempty"` + OperationID string `protobuf:"bytes,2,opt,name=OperationID,proto3" json:"OperationID,omitempty"` +} + +func (x *GetGroupByIdReq) Reset() { + *x = GetGroupByIdReq{} + if protoimpl.UnsafeEnabled { + mi := &file_group_group_proto_msgTypes[43] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetGroupByIdReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetGroupByIdReq) ProtoMessage() {} + +func (x *GetGroupByIdReq) ProtoReflect() protoreflect.Message { + mi := &file_group_group_proto_msgTypes[43] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetGroupByIdReq.ProtoReflect.Descriptor instead. +func (*GetGroupByIdReq) Descriptor() ([]byte, []int) { + return file_group_group_proto_rawDescGZIP(), []int{43} +} + +func (x *GetGroupByIdReq) GetGroupId() string { + if x != nil { + return x.GroupId + } + return "" +} + +func (x *GetGroupByIdReq) GetOperationID() string { + if x != nil { + return x.OperationID + } + return "" +} + +type GetGroupByIdResp struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + CMSGroup *CMSGroup `protobuf:"bytes,1,opt,name=CMSGroup,proto3" json:"CMSGroup,omitempty"` +} + +func (x *GetGroupByIdResp) Reset() { + *x = GetGroupByIdResp{} + if protoimpl.UnsafeEnabled { + mi := &file_group_group_proto_msgTypes[44] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetGroupByIdResp) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetGroupByIdResp) ProtoMessage() {} + +func (x *GetGroupByIdResp) ProtoReflect() protoreflect.Message { + mi := &file_group_group_proto_msgTypes[44] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetGroupByIdResp.ProtoReflect.Descriptor instead. +func (*GetGroupByIdResp) Descriptor() ([]byte, []int) { + return file_group_group_proto_rawDescGZIP(), []int{44} +} + +func (x *GetGroupByIdResp) GetCMSGroup() *CMSGroup { + if x != nil { + return x.CMSGroup + } + return nil +} + +type GetGroupMembersCMSReq struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + GroupId string `protobuf:"bytes,1,opt,name=GroupId,proto3" json:"GroupId,omitempty"` + Pagination *sdk_ws.RequestPagination `protobuf:"bytes,2,opt,name=Pagination,proto3" json:"Pagination,omitempty"` + OperationID string `protobuf:"bytes,3,opt,name=OperationID,proto3" json:"OperationID,omitempty"` +} + +func (x *GetGroupMembersCMSReq) Reset() { + *x = GetGroupMembersCMSReq{} + if protoimpl.UnsafeEnabled { + mi := &file_group_group_proto_msgTypes[45] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetGroupMembersCMSReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetGroupMembersCMSReq) ProtoMessage() {} + +func (x *GetGroupMembersCMSReq) ProtoReflect() protoreflect.Message { + mi := &file_group_group_proto_msgTypes[45] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetGroupMembersCMSReq.ProtoReflect.Descriptor instead. +func (*GetGroupMembersCMSReq) Descriptor() ([]byte, []int) { + return file_group_group_proto_rawDescGZIP(), []int{45} +} + +func (x *GetGroupMembersCMSReq) GetGroupId() string { + if x != nil { + return x.GroupId + } + return "" +} + +func (x *GetGroupMembersCMSReq) GetPagination() *sdk_ws.RequestPagination { + if x != nil { + return x.Pagination + } + return nil +} + +func (x *GetGroupMembersCMSReq) GetOperationID() string { + if x != nil { + return x.OperationID + } + return "" +} + +type GetGroupMembersCMSResp struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Members []*sdk_ws.GroupMemberFullInfo `protobuf:"bytes,3,rep,name=members,proto3" json:"members,omitempty"` + Pagination *sdk_ws.RequestPagination `protobuf:"bytes,2,opt,name=Pagination,proto3" json:"Pagination,omitempty"` +} + +func (x *GetGroupMembersCMSResp) Reset() { + *x = GetGroupMembersCMSResp{} + if protoimpl.UnsafeEnabled { + mi := &file_group_group_proto_msgTypes[46] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetGroupMembersCMSResp) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetGroupMembersCMSResp) ProtoMessage() {} + +func (x *GetGroupMembersCMSResp) ProtoReflect() protoreflect.Message { + mi := &file_group_group_proto_msgTypes[46] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetGroupMembersCMSResp.ProtoReflect.Descriptor instead. +func (*GetGroupMembersCMSResp) Descriptor() ([]byte, []int) { + return file_group_group_proto_rawDescGZIP(), []int{46} +} + +func (x *GetGroupMembersCMSResp) GetMembers() []*sdk_ws.GroupMemberFullInfo { + if x != nil { + return x.Members + } + return nil +} + +func (x *GetGroupMembersCMSResp) GetPagination() *sdk_ws.RequestPagination { + if x != nil { + return x.Pagination + } + return nil +} + +type RemoveGroupMembersCMSReq struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + GroupId string `protobuf:"bytes,1,opt,name=GroupId,proto3" json:"GroupId,omitempty"` + UserIds []string `protobuf:"bytes,2,rep,name=UserIds,proto3" json:"UserIds,omitempty"` + OperationID string `protobuf:"bytes,3,opt,name=OperationID,proto3" json:"OperationID,omitempty"` +} + +func (x *RemoveGroupMembersCMSReq) Reset() { + *x = RemoveGroupMembersCMSReq{} + if protoimpl.UnsafeEnabled { + mi := &file_group_group_proto_msgTypes[47] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *DeleteGroupReq) String() string { +func (x *RemoveGroupMembersCMSReq) String() string { return protoimpl.X.MessageStringOf(x) } -func (*DeleteGroupReq) ProtoMessage() {} +func (*RemoveGroupMembersCMSReq) ProtoMessage() {} -func (x *DeleteGroupReq) ProtoReflect() protoreflect.Message { - mi := &file_group_group_proto_msgTypes[40] +func (x *RemoveGroupMembersCMSReq) ProtoReflect() protoreflect.Message { + mi := &file_group_group_proto_msgTypes[47] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2539,48 +2916,58 @@ func (x *DeleteGroupReq) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use DeleteGroupReq.ProtoReflect.Descriptor instead. -func (*DeleteGroupReq) Descriptor() ([]byte, []int) { - return file_group_group_proto_rawDescGZIP(), []int{40} +// Deprecated: Use RemoveGroupMembersCMSReq.ProtoReflect.Descriptor instead. +func (*RemoveGroupMembersCMSReq) Descriptor() ([]byte, []int) { + return file_group_group_proto_rawDescGZIP(), []int{47} } -func (x *DeleteGroupReq) GetGroupId() string { +func (x *RemoveGroupMembersCMSReq) GetGroupId() string { if x != nil { return x.GroupId } return "" } -func (x *DeleteGroupReq) GetOperationID() string { +func (x *RemoveGroupMembersCMSReq) GetUserIds() []string { + if x != nil { + return x.UserIds + } + return nil +} + +func (x *RemoveGroupMembersCMSReq) GetOperationID() string { if x != nil { return x.OperationID } return "" } -type DeleteGroupResp struct { +type RemoveGroupMembersCMSResp struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields + + Success []string `protobuf:"bytes,1,rep,name=success,proto3" json:"success,omitempty"` + Failed []string `protobuf:"bytes,2,rep,name=failed,proto3" json:"failed,omitempty"` } -func (x *DeleteGroupResp) Reset() { - *x = DeleteGroupResp{} +func (x *RemoveGroupMembersCMSResp) Reset() { + *x = RemoveGroupMembersCMSResp{} if protoimpl.UnsafeEnabled { - mi := &file_group_group_proto_msgTypes[41] + mi := &file_group_group_proto_msgTypes[48] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *DeleteGroupResp) String() string { +func (x *RemoveGroupMembersCMSResp) String() string { return protoimpl.X.MessageStringOf(x) } -func (*DeleteGroupResp) ProtoMessage() {} +func (*RemoveGroupMembersCMSResp) ProtoMessage() {} -func (x *DeleteGroupResp) ProtoReflect() protoreflect.Message { - mi := &file_group_group_proto_msgTypes[41] +func (x *RemoveGroupMembersCMSResp) ProtoReflect() protoreflect.Message { + mi := &file_group_group_proto_msgTypes[48] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2591,37 +2978,52 @@ func (x *DeleteGroupResp) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use DeleteGroupResp.ProtoReflect.Descriptor instead. -func (*DeleteGroupResp) Descriptor() ([]byte, []int) { - return file_group_group_proto_rawDescGZIP(), []int{41} +// Deprecated: Use RemoveGroupMembersCMSResp.ProtoReflect.Descriptor instead. +func (*RemoveGroupMembersCMSResp) Descriptor() ([]byte, []int) { + return file_group_group_proto_rawDescGZIP(), []int{48} } -type GetGroupByIdReq struct { +func (x *RemoveGroupMembersCMSResp) GetSuccess() []string { + if x != nil { + return x.Success + } + return nil +} + +func (x *RemoveGroupMembersCMSResp) GetFailed() []string { + if x != nil { + return x.Failed + } + return nil +} + +type AddGroupMembersCMSReq struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - GroupId string `protobuf:"bytes,1,opt,name=GroupId,proto3" json:"GroupId,omitempty"` - OperationID string `protobuf:"bytes,2,opt,name=OperationID,proto3" json:"OperationID,omitempty"` + GroupId string `protobuf:"bytes,1,opt,name=GroupId,proto3" json:"GroupId,omitempty"` + UserIds []string `protobuf:"bytes,2,rep,name=UserIds,proto3" json:"UserIds,omitempty"` + OperationID string `protobuf:"bytes,3,opt,name=OperationID,proto3" json:"OperationID,omitempty"` } -func (x *GetGroupByIdReq) Reset() { - *x = GetGroupByIdReq{} +func (x *AddGroupMembersCMSReq) Reset() { + *x = AddGroupMembersCMSReq{} if protoimpl.UnsafeEnabled { - mi := &file_group_group_proto_msgTypes[42] + mi := &file_group_group_proto_msgTypes[49] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *GetGroupByIdReq) String() string { +func (x *AddGroupMembersCMSReq) String() string { return protoimpl.X.MessageStringOf(x) } -func (*GetGroupByIdReq) ProtoMessage() {} +func (*AddGroupMembersCMSReq) ProtoMessage() {} -func (x *GetGroupByIdReq) ProtoReflect() protoreflect.Message { - mi := &file_group_group_proto_msgTypes[42] +func (x *AddGroupMembersCMSReq) ProtoReflect() protoreflect.Message { + mi := &file_group_group_proto_msgTypes[49] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2632,50 +3034,58 @@ func (x *GetGroupByIdReq) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use GetGroupByIdReq.ProtoReflect.Descriptor instead. -func (*GetGroupByIdReq) Descriptor() ([]byte, []int) { - return file_group_group_proto_rawDescGZIP(), []int{42} +// Deprecated: Use AddGroupMembersCMSReq.ProtoReflect.Descriptor instead. +func (*AddGroupMembersCMSReq) Descriptor() ([]byte, []int) { + return file_group_group_proto_rawDescGZIP(), []int{49} } -func (x *GetGroupByIdReq) GetGroupId() string { +func (x *AddGroupMembersCMSReq) GetGroupId() string { if x != nil { return x.GroupId } return "" } -func (x *GetGroupByIdReq) GetOperationID() string { +func (x *AddGroupMembersCMSReq) GetUserIds() []string { + if x != nil { + return x.UserIds + } + return nil +} + +func (x *AddGroupMembersCMSReq) GetOperationID() string { if x != nil { return x.OperationID } return "" } -type GetGroupByIdResp struct { +type AddGroupMembersCMSResp struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - GroupInfo *sdk_ws.GroupInfo `protobuf:"bytes,1,opt,name=GroupInfo,proto3" json:"GroupInfo,omitempty"` + Success []string `protobuf:"bytes,1,rep,name=success,proto3" json:"success,omitempty"` + Failed []string `protobuf:"bytes,2,rep,name=failed,proto3" json:"failed,omitempty"` } -func (x *GetGroupByIdResp) Reset() { - *x = GetGroupByIdResp{} +func (x *AddGroupMembersCMSResp) Reset() { + *x = AddGroupMembersCMSResp{} if protoimpl.UnsafeEnabled { - mi := &file_group_group_proto_msgTypes[43] + mi := &file_group_group_proto_msgTypes[50] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *GetGroupByIdResp) String() string { +func (x *AddGroupMembersCMSResp) String() string { return protoimpl.X.MessageStringOf(x) } -func (*GetGroupByIdResp) ProtoMessage() {} +func (*AddGroupMembersCMSResp) ProtoMessage() {} -func (x *GetGroupByIdResp) ProtoReflect() protoreflect.Message { - mi := &file_group_group_proto_msgTypes[43] +func (x *AddGroupMembersCMSResp) ProtoReflect() protoreflect.Message { + mi := &file_group_group_proto_msgTypes[50] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2686,14 +3096,21 @@ func (x *GetGroupByIdResp) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use GetGroupByIdResp.ProtoReflect.Descriptor instead. -func (*GetGroupByIdResp) Descriptor() ([]byte, []int) { - return file_group_group_proto_rawDescGZIP(), []int{43} +// Deprecated: Use AddGroupMembersCMSResp.ProtoReflect.Descriptor instead. +func (*AddGroupMembersCMSResp) Descriptor() ([]byte, []int) { + return file_group_group_proto_rawDescGZIP(), []int{50} } -func (x *GetGroupByIdResp) GetGroupInfo() *sdk_ws.GroupInfo { +func (x *AddGroupMembersCMSResp) GetSuccess() []string { if x != nil { - return x.GroupInfo + return x.Success + } + return nil +} + +func (x *AddGroupMembersCMSResp) GetFailed() []string { + if x != nil { + return x.Failed } return nil } @@ -2958,177 +3375,244 @@ var file_group_group_proto_rawDesc = []byte{ 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x46, 0x75, 0x6c, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0a, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x22, - 0x93, 0x01, 0x0a, 0x0b, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x12, - 0x1c, 0x0a, 0x09, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x09, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x44, 0x0a, + 0x96, 0x01, 0x0a, 0x08, 0x43, 0x4d, 0x53, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x3a, 0x0a, 0x09, + 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x1c, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, + 0x61, 0x6d, 0x73, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x09, 0x47, + 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x28, 0x0a, 0x0f, 0x47, 0x72, 0x6f, 0x75, + 0x70, 0x4d, 0x61, 0x73, 0x74, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0f, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x61, 0x73, 0x74, 0x65, 0x72, 0x4e, 0x61, + 0x6d, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x61, 0x73, 0x74, 0x65, + 0x72, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x47, 0x72, 0x6f, 0x75, 0x70, + 0x4d, 0x61, 0x73, 0x74, 0x65, 0x72, 0x49, 0x64, 0x22, 0x93, 0x01, 0x0a, 0x0b, 0x47, 0x65, 0x74, + 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x12, 0x1c, 0x0a, 0x09, 0x47, 0x72, 0x6f, 0x75, + 0x70, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x47, 0x72, 0x6f, + 0x75, 0x70, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x44, 0x0a, 0x0a, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x73, 0x65, 0x72, + 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x52, 0x0a, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x20, 0x0a, 0x0b, + 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x22, 0x83, + 0x01, 0x0a, 0x0c, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x12, + 0x2d, 0x0a, 0x09, 0x43, 0x4d, 0x53, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x18, 0x01, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x43, 0x4d, 0x53, 0x47, 0x72, + 0x6f, 0x75, 0x70, 0x52, 0x09, 0x43, 0x4d, 0x53, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x12, 0x44, + 0x0a, 0x0a, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, + 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x50, 0x61, + 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0a, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x76, 0x0a, 0x0c, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, + 0x73, 0x52, 0x65, 0x71, 0x12, 0x44, 0x0a, 0x0a, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, + 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0a, + 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x70, + 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x22, 0xa0, 0x01, 0x0a, + 0x0d, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x52, 0x65, 0x73, 0x70, 0x12, 0x2d, + 0x0a, 0x09, 0x43, 0x4d, 0x53, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x0f, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x43, 0x4d, 0x53, 0x47, 0x72, 0x6f, + 0x75, 0x70, 0x52, 0x09, 0x43, 0x4d, 0x53, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x12, 0x44, 0x0a, 0x0a, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0a, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x22, 0x90, 0x01, 0x0a, 0x0c, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, - 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x12, 0x3a, 0x0a, 0x09, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, - 0x6e, 0x66, 0x6f, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x73, 0x65, 0x72, 0x76, - 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x47, 0x72, - 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x09, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, - 0x66, 0x6f, 0x12, 0x44, 0x0a, 0x0a, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, - 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, - 0x73, 0x74, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0a, 0x50, 0x61, - 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x76, 0x0a, 0x0c, 0x47, 0x65, 0x74, 0x47, - 0x72, 0x6f, 0x75, 0x70, 0x73, 0x52, 0x65, 0x71, 0x12, 0x44, 0x0a, 0x0a, 0x50, 0x61, 0x67, 0x69, - 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x73, - 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, - 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x52, 0x0a, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x20, + 0x69, 0x6f, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4e, 0x75, 0x6d, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4e, 0x75, 0x6d, 0x22, + 0x4f, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, + 0x72, 0x52, 0x65, 0x71, 0x12, 0x18, 0x0a, 0x07, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, - 0x22, 0xad, 0x01, 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x52, 0x65, - 0x73, 0x70, 0x12, 0x3a, 0x0a, 0x09, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x18, - 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, - 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, - 0x6e, 0x66, 0x6f, 0x52, 0x09, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x44, - 0x0a, 0x0a, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, - 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x50, 0x61, - 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0a, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4e, 0x75, 0x6d, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4e, 0x75, 0x6d, - 0x22, 0x4f, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, - 0x65, 0x72, 0x52, 0x65, 0x71, 0x12, 0x18, 0x0a, 0x07, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x12, - 0x20, 0x0a, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, - 0x44, 0x22, 0x6b, 0x0a, 0x15, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x65, 0x47, 0x72, 0x6f, 0x75, - 0x70, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x71, 0x12, 0x18, 0x0a, 0x07, 0x47, 0x72, - 0x6f, 0x75, 0x70, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x47, 0x72, 0x6f, - 0x75, 0x70, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x20, 0x0a, 0x0b, - 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x22, 0x18, - 0x0a, 0x16, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x53, 0x74, - 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x22, 0x86, 0x01, 0x0a, 0x12, 0x4f, 0x70, 0x65, - 0x72, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x52, 0x6f, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x12, - 0x18, 0x0a, 0x07, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x07, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x55, 0x73, 0x65, - 0x72, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, - 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x52, 0x6f, 0x6c, 0x65, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x52, 0x6f, 0x6c, 0x65, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, - 0x20, 0x0a, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, - 0x44, 0x22, 0x15, 0x0a, 0x13, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, - 0x52, 0x6f, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x22, 0x4c, 0x0a, 0x0e, 0x44, 0x65, 0x6c, 0x65, - 0x74, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x12, 0x18, 0x0a, 0x07, 0x47, 0x72, - 0x6f, 0x75, 0x70, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x47, 0x72, 0x6f, - 0x75, 0x70, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x22, 0x11, 0x0a, 0x0f, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, - 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x22, 0x4d, 0x0a, 0x0f, 0x47, 0x65, 0x74, - 0x47, 0x72, 0x6f, 0x75, 0x70, 0x42, 0x79, 0x49, 0x64, 0x52, 0x65, 0x71, 0x12, 0x18, 0x0a, 0x07, - 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x47, - 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x4f, 0x70, 0x65, - 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x22, 0x4e, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x47, - 0x72, 0x6f, 0x75, 0x70, 0x42, 0x79, 0x49, 0x64, 0x52, 0x65, 0x73, 0x70, 0x12, 0x3a, 0x0a, 0x09, - 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x1c, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, - 0x61, 0x6d, 0x73, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x09, 0x47, - 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x32, 0xc3, 0x0b, 0x0a, 0x05, 0x67, 0x72, 0x6f, - 0x75, 0x70, 0x12, 0x3c, 0x0a, 0x0b, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x47, 0x72, 0x6f, 0x75, - 0x70, 0x12, 0x15, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, - 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x1a, 0x16, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, - 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, - 0x12, 0x36, 0x0a, 0x09, 0x6a, 0x6f, 0x69, 0x6e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x13, 0x2e, + 0x22, 0x6b, 0x0a, 0x15, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, + 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x71, 0x12, 0x18, 0x0a, 0x07, 0x47, 0x72, 0x6f, + 0x75, 0x70, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x47, 0x72, 0x6f, 0x75, + 0x70, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x4f, + 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x22, 0x18, 0x0a, + 0x16, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x53, 0x74, 0x61, + 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x22, 0x86, 0x01, 0x0a, 0x12, 0x4f, 0x70, 0x65, 0x72, + 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x52, 0x6f, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x12, 0x18, + 0x0a, 0x07, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x07, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x55, 0x73, 0x65, 0x72, + 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, + 0x12, 0x1c, 0x0a, 0x09, 0x52, 0x6f, 0x6c, 0x65, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x09, 0x52, 0x6f, 0x6c, 0x65, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x20, + 0x0a, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x04, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, + 0x22, 0x15, 0x0a, 0x13, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x52, + 0x6f, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x22, 0x4c, 0x0a, 0x0e, 0x44, 0x65, 0x6c, 0x65, 0x74, + 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x12, 0x18, 0x0a, 0x07, 0x47, 0x72, 0x6f, + 0x75, 0x70, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x47, 0x72, 0x6f, 0x75, + 0x70, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x22, 0x11, 0x0a, 0x0f, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x47, + 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x22, 0x4d, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x47, + 0x72, 0x6f, 0x75, 0x70, 0x42, 0x79, 0x49, 0x64, 0x52, 0x65, 0x71, 0x12, 0x18, 0x0a, 0x07, 0x47, + 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x47, 0x72, + 0x6f, 0x75, 0x70, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x4f, 0x70, 0x65, 0x72, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x22, 0x3f, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x47, 0x72, + 0x6f, 0x75, 0x70, 0x42, 0x79, 0x49, 0x64, 0x52, 0x65, 0x73, 0x70, 0x12, 0x2b, 0x0a, 0x08, 0x43, + 0x4d, 0x53, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, + 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x43, 0x4d, 0x53, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x08, + 0x43, 0x4d, 0x53, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x22, 0x99, 0x01, 0x0a, 0x15, 0x47, 0x65, 0x74, + 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x43, 0x4d, 0x53, 0x52, + 0x65, 0x71, 0x12, 0x18, 0x0a, 0x07, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x07, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x12, 0x44, 0x0a, 0x0a, + 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x24, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, + 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x50, 0x61, 0x67, 0x69, + 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0a, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, + 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x49, 0x44, 0x22, 0xa0, 0x01, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, + 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x43, 0x4d, 0x53, 0x52, 0x65, 0x73, 0x70, 0x12, + 0x40, 0x0a, 0x07, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x26, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, + 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, + 0x46, 0x75, 0x6c, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x07, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, + 0x73, 0x12, 0x44, 0x0a, 0x0a, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, + 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, + 0x74, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0a, 0x50, 0x61, 0x67, + 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x70, 0x0a, 0x18, 0x52, 0x65, 0x6d, 0x6f, 0x76, + 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x43, 0x4d, 0x53, + 0x52, 0x65, 0x71, 0x12, 0x18, 0x0a, 0x07, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x12, 0x18, 0x0a, + 0x07, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, + 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x4f, 0x70, + 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x22, 0x4d, 0x0a, 0x19, 0x52, 0x65, 0x6d, + 0x6f, 0x76, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x43, + 0x4d, 0x53, 0x52, 0x65, 0x73, 0x70, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, + 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, + 0x12, 0x16, 0x0a, 0x06, 0x66, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, + 0x52, 0x06, 0x66, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x22, 0x6d, 0x0a, 0x15, 0x41, 0x64, 0x64, 0x47, + 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x43, 0x4d, 0x53, 0x52, 0x65, + 0x71, 0x12, 0x18, 0x0a, 0x07, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x07, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x55, + 0x73, 0x65, 0x72, 0x49, 0x64, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, 0x55, 0x73, + 0x65, 0x72, 0x49, 0x64, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x4f, 0x70, 0x65, 0x72, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x22, 0x4a, 0x0a, 0x16, 0x41, 0x64, 0x64, 0x47, 0x72, + 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x43, 0x4d, 0x53, 0x52, 0x65, 0x73, + 0x70, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x03, + 0x28, 0x09, 0x52, 0x07, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x66, + 0x61, 0x69, 0x6c, 0x65, 0x64, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x66, 0x61, 0x69, + 0x6c, 0x65, 0x64, 0x32, 0xc5, 0x0d, 0x0a, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x3c, 0x0a, + 0x0b, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x15, 0x2e, 0x67, + 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, + 0x52, 0x65, 0x71, 0x1a, 0x16, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x43, 0x72, 0x65, 0x61, + 0x74, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x12, 0x36, 0x0a, 0x09, 0x6a, + 0x6f, 0x69, 0x6e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x13, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, + 0x2e, 0x4a, 0x6f, 0x69, 0x6e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x1a, 0x14, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x4a, 0x6f, 0x69, 0x6e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, - 0x65, 0x71, 0x1a, 0x14, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x4a, 0x6f, 0x69, 0x6e, 0x47, - 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x12, 0x36, 0x0a, 0x09, 0x71, 0x75, 0x69, 0x74, - 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x13, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x51, 0x75, - 0x69, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x1a, 0x14, 0x2e, 0x67, 0x72, 0x6f, - 0x75, 0x70, 0x2e, 0x51, 0x75, 0x69, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, - 0x12, 0x42, 0x0a, 0x0d, 0x67, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x49, 0x6e, 0x66, - 0x6f, 0x12, 0x17, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, - 0x75, 0x70, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x1a, 0x18, 0x2e, 0x67, 0x72, 0x6f, - 0x75, 0x70, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x49, 0x6e, 0x66, 0x6f, - 0x52, 0x65, 0x73, 0x70, 0x12, 0x3f, 0x0a, 0x0c, 0x73, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, - 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x16, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x53, 0x65, 0x74, - 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x1a, 0x17, 0x2e, 0x67, - 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x53, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x66, - 0x6f, 0x52, 0x65, 0x73, 0x70, 0x12, 0x60, 0x0a, 0x17, 0x67, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, - 0x70, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x69, 0x73, 0x74, - 0x12, 0x21, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, - 0x70, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x69, 0x73, 0x74, - 0x52, 0x65, 0x71, 0x1a, 0x22, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x65, 0x74, 0x47, - 0x72, 0x6f, 0x75, 0x70, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4c, - 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x51, 0x0a, 0x12, 0x74, 0x72, 0x61, 0x6e, 0x73, - 0x66, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x12, 0x1c, 0x2e, - 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x47, 0x72, - 0x6f, 0x75, 0x70, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x52, 0x65, 0x71, 0x1a, 0x1d, 0x2e, 0x67, 0x72, - 0x6f, 0x75, 0x70, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, - 0x70, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x12, 0x63, 0x0a, 0x18, 0x67, 0x72, + 0x65, 0x73, 0x70, 0x12, 0x36, 0x0a, 0x09, 0x71, 0x75, 0x69, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, + 0x12, 0x13, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x51, 0x75, 0x69, 0x74, 0x47, 0x72, 0x6f, + 0x75, 0x70, 0x52, 0x65, 0x71, 0x1a, 0x14, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x51, 0x75, + 0x69, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x12, 0x42, 0x0a, 0x0d, 0x67, + 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x17, 0x2e, 0x67, + 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x49, 0x6e, + 0x66, 0x6f, 0x52, 0x65, 0x71, 0x1a, 0x18, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x65, + 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x12, + 0x3f, 0x0a, 0x0c, 0x73, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x12, + 0x16, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x53, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, + 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x1a, 0x17, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, + 0x53, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, + 0x12, 0x60, 0x0a, 0x17, 0x67, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x70, 0x70, 0x6c, + 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x21, 0x2e, 0x67, 0x72, + 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x70, 0x70, 0x6c, + 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x22, + 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, + 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, + 0x73, 0x70, 0x12, 0x51, 0x0a, 0x12, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x47, 0x72, + 0x6f, 0x75, 0x70, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x12, 0x1c, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, + 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4f, 0x77, + 0x6e, 0x65, 0x72, 0x52, 0x65, 0x71, 0x1a, 0x1d, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x54, + 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4f, 0x77, 0x6e, 0x65, + 0x72, 0x52, 0x65, 0x73, 0x70, 0x12, 0x63, 0x0a, 0x18, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x70, + 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x12, 0x22, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, + 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x23, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x22, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47, - 0x72, 0x6f, 0x75, 0x70, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, - 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x23, 0x2e, 0x67, 0x72, 0x6f, - 0x75, 0x70, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, - 0x51, 0x0a, 0x12, 0x67, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, - 0x72, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x1c, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x51, 0x0a, 0x12, 0x67, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, - 0x52, 0x65, 0x71, 0x1a, 0x1d, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x65, 0x74, 0x47, - 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, - 0x73, 0x70, 0x12, 0x54, 0x0a, 0x13, 0x67, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, - 0x6d, 0x62, 0x65, 0x72, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1d, 0x2e, 0x67, 0x72, 0x6f, 0x75, - 0x70, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, - 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x1a, 0x1e, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, - 0x2e, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, - 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x12, 0x48, 0x0a, 0x0f, 0x6b, 0x69, 0x63, 0x6b, - 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x19, 0x2e, 0x67, 0x72, - 0x6f, 0x75, 0x70, 0x2e, 0x4b, 0x69, 0x63, 0x6b, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, - 0x62, 0x65, 0x72, 0x52, 0x65, 0x71, 0x1a, 0x1a, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x4b, + 0x12, 0x1c, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, + 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x1d, + 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, + 0x65, 0x6d, 0x62, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x54, 0x0a, + 0x13, 0x67, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, + 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1d, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x65, 0x74, + 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x49, 0x6e, 0x66, 0x6f, + 0x52, 0x65, 0x71, 0x1a, 0x1e, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x65, 0x74, 0x47, + 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x52, + 0x65, 0x73, 0x70, 0x12, 0x48, 0x0a, 0x0f, 0x6b, 0x69, 0x63, 0x6b, 0x47, 0x72, 0x6f, 0x75, 0x70, + 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x19, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x4b, 0x69, 0x63, 0x6b, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x65, - 0x73, 0x70, 0x12, 0x51, 0x0a, 0x12, 0x67, 0x65, 0x74, 0x4a, 0x6f, 0x69, 0x6e, 0x65, 0x64, 0x47, - 0x72, 0x6f, 0x75, 0x70, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x1c, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, - 0x2e, 0x47, 0x65, 0x74, 0x4a, 0x6f, 0x69, 0x6e, 0x65, 0x64, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4c, - 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x1d, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47, - 0x65, 0x74, 0x4a, 0x6f, 0x69, 0x6e, 0x65, 0x64, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4c, 0x69, 0x73, - 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x4e, 0x0a, 0x11, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x55, - 0x73, 0x65, 0x72, 0x54, 0x6f, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x1b, 0x2e, 0x67, 0x72, 0x6f, - 0x75, 0x70, 0x2e, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x54, 0x6f, 0x47, - 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, - 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x54, 0x6f, 0x47, 0x72, 0x6f, 0x75, - 0x70, 0x52, 0x65, 0x73, 0x70, 0x12, 0x4e, 0x0a, 0x11, 0x67, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, - 0x70, 0x41, 0x6c, 0x6c, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x1b, 0x2e, 0x67, 0x72, 0x6f, - 0x75, 0x70, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x6c, 0x6c, 0x4d, 0x65, - 0x6d, 0x62, 0x65, 0x72, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, - 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x6c, 0x6c, 0x4d, 0x65, 0x6d, 0x62, 0x65, - 0x72, 0x52, 0x65, 0x73, 0x70, 0x12, 0x3f, 0x0a, 0x0c, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, - 0x70, 0x42, 0x79, 0x49, 0x64, 0x12, 0x16, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x65, - 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x42, 0x79, 0x49, 0x64, 0x52, 0x65, 0x71, 0x1a, 0x17, 0x2e, - 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x42, 0x79, - 0x49, 0x64, 0x52, 0x65, 0x73, 0x70, 0x12, 0x33, 0x0a, 0x08, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, - 0x75, 0x70, 0x12, 0x12, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x72, - 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x1a, 0x13, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47, - 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x12, 0x36, 0x0a, 0x09, 0x47, - 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x12, 0x13, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, - 0x2e, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x14, 0x2e, - 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x52, - 0x65, 0x73, 0x70, 0x12, 0x51, 0x0a, 0x12, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x65, 0x47, 0x72, - 0x6f, 0x75, 0x70, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1c, 0x2e, 0x67, 0x72, 0x6f, 0x75, - 0x70, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x53, 0x74, - 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x1d, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, - 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x53, 0x74, 0x61, 0x74, - 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x12, 0x48, 0x0a, 0x0f, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, - 0x65, 0x55, 0x73, 0x65, 0x72, 0x52, 0x6f, 0x6c, 0x65, 0x12, 0x19, 0x2e, 0x67, 0x72, 0x6f, 0x75, - 0x70, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x52, 0x6f, 0x6c, - 0x65, 0x52, 0x65, 0x71, 0x1a, 0x1a, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x4f, 0x70, 0x65, - 0x72, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x52, 0x6f, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, - 0x12, 0x3c, 0x0a, 0x0b, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, - 0x15, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x47, 0x72, - 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x1a, 0x16, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x44, - 0x65, 0x6c, 0x65, 0x74, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x42, 0x0f, - 0x5a, 0x0d, 0x2e, 0x2f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x3b, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x62, - 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x71, 0x1a, 0x1a, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x4b, 0x69, 0x63, 0x6b, 0x47, 0x72, + 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x12, 0x51, 0x0a, + 0x12, 0x67, 0x65, 0x74, 0x4a, 0x6f, 0x69, 0x6e, 0x65, 0x64, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4c, + 0x69, 0x73, 0x74, 0x12, 0x1c, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x65, 0x74, 0x4a, + 0x6f, 0x69, 0x6e, 0x65, 0x64, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, + 0x71, 0x1a, 0x1d, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x65, 0x74, 0x4a, 0x6f, 0x69, + 0x6e, 0x65, 0x64, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, + 0x12, 0x4e, 0x0a, 0x11, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x54, 0x6f, + 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x1b, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x49, 0x6e, + 0x76, 0x69, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x54, 0x6f, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, + 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x49, 0x6e, 0x76, 0x69, 0x74, + 0x65, 0x55, 0x73, 0x65, 0x72, 0x54, 0x6f, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, + 0x12, 0x4e, 0x0a, 0x11, 0x67, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x6c, 0x6c, 0x4d, + 0x65, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x1b, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x65, + 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x6c, 0x6c, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, + 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x72, + 0x6f, 0x75, 0x70, 0x41, 0x6c, 0x6c, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, + 0x12, 0x3f, 0x0a, 0x0c, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x42, 0x79, 0x49, 0x64, + 0x12, 0x16, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, + 0x70, 0x42, 0x79, 0x49, 0x64, 0x52, 0x65, 0x71, 0x1a, 0x17, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, + 0x2e, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x42, 0x79, 0x49, 0x64, 0x52, 0x65, 0x73, + 0x70, 0x12, 0x33, 0x0a, 0x08, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x12, 0x2e, + 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, + 0x71, 0x1a, 0x13, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, + 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x12, 0x36, 0x0a, 0x09, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, + 0x75, 0x70, 0x73, 0x12, 0x13, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x65, 0x74, 0x47, + 0x72, 0x6f, 0x75, 0x70, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x14, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, + 0x2e, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x52, 0x65, 0x73, 0x70, 0x12, 0x51, + 0x0a, 0x12, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x53, 0x74, + 0x61, 0x74, 0x75, 0x73, 0x12, 0x1c, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x4f, 0x70, 0x65, + 0x72, 0x61, 0x74, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, + 0x65, 0x71, 0x1a, 0x1d, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, + 0x74, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, + 0x70, 0x12, 0x48, 0x0a, 0x0f, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, + 0x52, 0x6f, 0x6c, 0x65, 0x12, 0x19, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x4f, 0x70, 0x65, + 0x72, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x52, 0x6f, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x1a, + 0x1a, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x65, 0x55, + 0x73, 0x65, 0x72, 0x52, 0x6f, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x3c, 0x0a, 0x0b, 0x44, + 0x65, 0x6c, 0x65, 0x74, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x15, 0x2e, 0x67, 0x72, 0x6f, + 0x75, 0x70, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, + 0x71, 0x1a, 0x16, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, + 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x12, 0x51, 0x0a, 0x12, 0x47, 0x65, 0x74, + 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x43, 0x4d, 0x53, 0x12, + 0x1c, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, + 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x43, 0x4d, 0x53, 0x52, 0x65, 0x71, 0x1a, 0x1d, 0x2e, + 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, + 0x6d, 0x62, 0x65, 0x72, 0x73, 0x43, 0x4d, 0x53, 0x52, 0x65, 0x73, 0x70, 0x12, 0x5a, 0x0a, 0x15, + 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, + 0x72, 0x73, 0x43, 0x4d, 0x53, 0x12, 0x1f, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x52, 0x65, + 0x6d, 0x6f, 0x76, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, + 0x43, 0x4d, 0x53, 0x52, 0x65, 0x71, 0x1a, 0x20, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x52, + 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, + 0x73, 0x43, 0x4d, 0x53, 0x52, 0x65, 0x73, 0x70, 0x12, 0x51, 0x0a, 0x12, 0x41, 0x64, 0x64, 0x47, + 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x43, 0x4d, 0x53, 0x12, 0x1c, + 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x41, 0x64, 0x64, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, + 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x43, 0x4d, 0x53, 0x52, 0x65, 0x71, 0x1a, 0x1d, 0x2e, 0x67, + 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x41, 0x64, 0x64, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, + 0x62, 0x65, 0x72, 0x73, 0x43, 0x4d, 0x53, 0x52, 0x65, 0x73, 0x70, 0x42, 0x0f, 0x5a, 0x0d, 0x2e, + 0x2f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x3b, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x62, 0x06, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -3143,7 +3627,7 @@ func file_group_group_proto_rawDescGZIP() []byte { return file_group_group_proto_rawDescData } -var file_group_group_proto_msgTypes = make([]protoimpl.MessageInfo, 44) +var file_group_group_proto_msgTypes = make([]protoimpl.MessageInfo, 51) var file_group_group_proto_goTypes = []interface{}{ (*CommonResp)(nil), // 0: group.CommonResp (*GroupAddMemberInfo)(nil), // 1: group.GroupAddMemberInfo @@ -3176,94 +3660,111 @@ var file_group_group_proto_goTypes = []interface{}{ (*InviteUserToGroupResp)(nil), // 28: group.InviteUserToGroupResp (*GetGroupAllMemberReq)(nil), // 29: group.GetGroupAllMemberReq (*GetGroupAllMemberResp)(nil), // 30: group.GetGroupAllMemberResp - (*GetGroupReq)(nil), // 31: group.GetGroupReq - (*GetGroupResp)(nil), // 32: group.GetGroupResp - (*GetGroupsReq)(nil), // 33: group.GetGroupsReq - (*GetGroupsResp)(nil), // 34: group.GetGroupsResp - (*GetGroupMemberReq)(nil), // 35: group.GetGroupMemberReq - (*OperateGroupStatusReq)(nil), // 36: group.OperateGroupStatusReq - (*OperateGroupStatusResp)(nil), // 37: group.OperateGroupStatusResp - (*OperateUserRoleReq)(nil), // 38: group.OperateUserRoleReq - (*OperateUserRoleResp)(nil), // 39: group.OperateUserRoleResp - (*DeleteGroupReq)(nil), // 40: group.DeleteGroupReq - (*DeleteGroupResp)(nil), // 41: group.DeleteGroupResp - (*GetGroupByIdReq)(nil), // 42: group.GetGroupByIdReq - (*GetGroupByIdResp)(nil), // 43: group.GetGroupByIdResp - (*sdk_ws.GroupInfo)(nil), // 44: server_api_params.GroupInfo - (*sdk_ws.GroupRequest)(nil), // 45: server_api_params.GroupRequest - (*sdk_ws.GroupMemberFullInfo)(nil), // 46: server_api_params.GroupMemberFullInfo - (*sdk_ws.RequestPagination)(nil), // 47: server_api_params.RequestPagination + (*CMSGroup)(nil), // 31: group.CMSGroup + (*GetGroupReq)(nil), // 32: group.GetGroupReq + (*GetGroupResp)(nil), // 33: group.GetGroupResp + (*GetGroupsReq)(nil), // 34: group.GetGroupsReq + (*GetGroupsResp)(nil), // 35: group.GetGroupsResp + (*GetGroupMemberReq)(nil), // 36: group.GetGroupMemberReq + (*OperateGroupStatusReq)(nil), // 37: group.OperateGroupStatusReq + (*OperateGroupStatusResp)(nil), // 38: group.OperateGroupStatusResp + (*OperateUserRoleReq)(nil), // 39: group.OperateUserRoleReq + (*OperateUserRoleResp)(nil), // 40: group.OperateUserRoleResp + (*DeleteGroupReq)(nil), // 41: group.DeleteGroupReq + (*DeleteGroupResp)(nil), // 42: group.DeleteGroupResp + (*GetGroupByIdReq)(nil), // 43: group.GetGroupByIdReq + (*GetGroupByIdResp)(nil), // 44: group.GetGroupByIdResp + (*GetGroupMembersCMSReq)(nil), // 45: group.GetGroupMembersCMSReq + (*GetGroupMembersCMSResp)(nil), // 46: group.GetGroupMembersCMSResp + (*RemoveGroupMembersCMSReq)(nil), // 47: group.RemoveGroupMembersCMSReq + (*RemoveGroupMembersCMSResp)(nil), // 48: group.RemoveGroupMembersCMSResp + (*AddGroupMembersCMSReq)(nil), // 49: group.AddGroupMembersCMSReq + (*AddGroupMembersCMSResp)(nil), // 50: group.AddGroupMembersCMSResp + (*sdk_ws.GroupInfo)(nil), // 51: server_api_params.GroupInfo + (*sdk_ws.GroupRequest)(nil), // 52: server_api_params.GroupRequest + (*sdk_ws.GroupMemberFullInfo)(nil), // 53: server_api_params.GroupMemberFullInfo + (*sdk_ws.RequestPagination)(nil), // 54: server_api_params.RequestPagination } var file_group_group_proto_depIdxs = []int32{ 1, // 0: group.CreateGroupReq.InitMemberList:type_name -> group.GroupAddMemberInfo - 44, // 1: group.CreateGroupReq.GroupInfo:type_name -> server_api_params.GroupInfo - 44, // 2: group.CreateGroupResp.GroupInfo:type_name -> server_api_params.GroupInfo - 44, // 3: group.GetGroupsInfoResp.GroupInfoList:type_name -> server_api_params.GroupInfo - 44, // 4: group.SetGroupInfoReq.GroupInfo:type_name -> server_api_params.GroupInfo + 51, // 1: group.CreateGroupReq.GroupInfo:type_name -> server_api_params.GroupInfo + 51, // 2: group.CreateGroupResp.GroupInfo:type_name -> server_api_params.GroupInfo + 51, // 3: group.GetGroupsInfoResp.GroupInfoList:type_name -> server_api_params.GroupInfo + 51, // 4: group.SetGroupInfoReq.GroupInfo:type_name -> server_api_params.GroupInfo 0, // 5: group.SetGroupInfoResp.CommonResp:type_name -> group.CommonResp - 45, // 6: group.GetGroupApplicationListResp.GroupRequestList:type_name -> server_api_params.GroupRequest + 52, // 6: group.GetGroupApplicationListResp.GroupRequestList:type_name -> server_api_params.GroupRequest 0, // 7: group.TransferGroupOwnerResp.CommonResp:type_name -> group.CommonResp 0, // 8: group.JoinGroupResp.CommonResp:type_name -> group.CommonResp 0, // 9: group.GroupApplicationResponseResp.CommonResp:type_name -> group.CommonResp 0, // 10: group.QuitGroupResp.CommonResp:type_name -> group.CommonResp - 46, // 11: group.GetGroupMemberListResp.memberList:type_name -> server_api_params.GroupMemberFullInfo - 46, // 12: group.GetGroupMembersInfoResp.memberList:type_name -> server_api_params.GroupMemberFullInfo + 53, // 11: group.GetGroupMemberListResp.memberList:type_name -> server_api_params.GroupMemberFullInfo + 53, // 12: group.GetGroupMembersInfoResp.memberList:type_name -> server_api_params.GroupMemberFullInfo 23, // 13: group.KickGroupMemberResp.Id2ResultList:type_name -> group.Id2Result - 44, // 14: group.GetJoinedGroupListResp.GroupList:type_name -> server_api_params.GroupInfo + 51, // 14: group.GetJoinedGroupListResp.GroupList:type_name -> server_api_params.GroupInfo 23, // 15: group.InviteUserToGroupResp.Id2ResultList:type_name -> group.Id2Result - 46, // 16: group.GetGroupAllMemberResp.memberList:type_name -> server_api_params.GroupMemberFullInfo - 47, // 17: group.GetGroupReq.Pagination:type_name -> server_api_params.RequestPagination - 44, // 18: group.GetGroupResp.GroupInfo:type_name -> server_api_params.GroupInfo - 47, // 19: group.GetGroupResp.Pagination:type_name -> server_api_params.RequestPagination - 47, // 20: group.GetGroupsReq.Pagination:type_name -> server_api_params.RequestPagination - 44, // 21: group.GetGroupsResp.GroupInfo:type_name -> server_api_params.GroupInfo - 47, // 22: group.GetGroupsResp.Pagination:type_name -> server_api_params.RequestPagination - 44, // 23: group.GetGroupByIdResp.GroupInfo:type_name -> server_api_params.GroupInfo - 2, // 24: group.group.createGroup:input_type -> group.CreateGroupReq - 12, // 25: group.group.joinGroup:input_type -> group.JoinGroupReq - 16, // 26: group.group.quitGroup:input_type -> group.QuitGroupReq - 4, // 27: group.group.getGroupsInfo:input_type -> group.GetGroupsInfoReq - 6, // 28: group.group.setGroupInfo:input_type -> group.SetGroupInfoReq - 8, // 29: group.group.getGroupApplicationList:input_type -> group.GetGroupApplicationListReq - 10, // 30: group.group.transferGroupOwner:input_type -> group.TransferGroupOwnerReq - 14, // 31: group.group.groupApplicationResponse:input_type -> group.GroupApplicationResponseReq - 18, // 32: group.group.getGroupMemberList:input_type -> group.GetGroupMemberListReq - 20, // 33: group.group.getGroupMembersInfo:input_type -> group.GetGroupMembersInfoReq - 22, // 34: group.group.kickGroupMember:input_type -> group.KickGroupMemberReq - 25, // 35: group.group.getJoinedGroupList:input_type -> group.GetJoinedGroupListReq - 27, // 36: group.group.inviteUserToGroup:input_type -> group.InviteUserToGroupReq - 29, // 37: group.group.getGroupAllMember:input_type -> group.GetGroupAllMemberReq - 42, // 38: group.group.GetGroupById:input_type -> group.GetGroupByIdReq - 31, // 39: group.group.GetGroup:input_type -> group.GetGroupReq - 33, // 40: group.group.GetGroups:input_type -> group.GetGroupsReq - 36, // 41: group.group.OperateGroupStatus:input_type -> group.OperateGroupStatusReq - 38, // 42: group.group.OperateUserRole:input_type -> group.OperateUserRoleReq - 40, // 43: group.group.DeleteGroup:input_type -> group.DeleteGroupReq - 3, // 44: group.group.createGroup:output_type -> group.CreateGroupResp - 13, // 45: group.group.joinGroup:output_type -> group.JoinGroupResp - 17, // 46: group.group.quitGroup:output_type -> group.QuitGroupResp - 5, // 47: group.group.getGroupsInfo:output_type -> group.GetGroupsInfoResp - 7, // 48: group.group.setGroupInfo:output_type -> group.SetGroupInfoResp - 9, // 49: group.group.getGroupApplicationList:output_type -> group.GetGroupApplicationListResp - 11, // 50: group.group.transferGroupOwner:output_type -> group.TransferGroupOwnerResp - 15, // 51: group.group.groupApplicationResponse:output_type -> group.GroupApplicationResponseResp - 19, // 52: group.group.getGroupMemberList:output_type -> group.GetGroupMemberListResp - 21, // 53: group.group.getGroupMembersInfo:output_type -> group.GetGroupMembersInfoResp - 24, // 54: group.group.kickGroupMember:output_type -> group.KickGroupMemberResp - 26, // 55: group.group.getJoinedGroupList:output_type -> group.GetJoinedGroupListResp - 28, // 56: group.group.inviteUserToGroup:output_type -> group.InviteUserToGroupResp - 30, // 57: group.group.getGroupAllMember:output_type -> group.GetGroupAllMemberResp - 43, // 58: group.group.GetGroupById:output_type -> group.GetGroupByIdResp - 32, // 59: group.group.GetGroup:output_type -> group.GetGroupResp - 34, // 60: group.group.GetGroups:output_type -> group.GetGroupsResp - 37, // 61: group.group.OperateGroupStatus:output_type -> group.OperateGroupStatusResp - 39, // 62: group.group.OperateUserRole:output_type -> group.OperateUserRoleResp - 41, // 63: group.group.DeleteGroup:output_type -> group.DeleteGroupResp - 44, // [44:64] is the sub-list for method output_type - 24, // [24:44] is the sub-list for method input_type - 24, // [24:24] is the sub-list for extension type_name - 24, // [24:24] is the sub-list for extension extendee - 0, // [0:24] is the sub-list for field type_name + 53, // 16: group.GetGroupAllMemberResp.memberList:type_name -> server_api_params.GroupMemberFullInfo + 51, // 17: group.CMSGroup.GroupInfo:type_name -> server_api_params.GroupInfo + 54, // 18: group.GetGroupReq.Pagination:type_name -> server_api_params.RequestPagination + 31, // 19: group.GetGroupResp.CMSGroups:type_name -> group.CMSGroup + 54, // 20: group.GetGroupResp.Pagination:type_name -> server_api_params.RequestPagination + 54, // 21: group.GetGroupsReq.Pagination:type_name -> server_api_params.RequestPagination + 31, // 22: group.GetGroupsResp.CMSGroups:type_name -> group.CMSGroup + 54, // 23: group.GetGroupsResp.Pagination:type_name -> server_api_params.RequestPagination + 31, // 24: group.GetGroupByIdResp.CMSGroup:type_name -> group.CMSGroup + 54, // 25: group.GetGroupMembersCMSReq.Pagination:type_name -> server_api_params.RequestPagination + 53, // 26: group.GetGroupMembersCMSResp.members:type_name -> server_api_params.GroupMemberFullInfo + 54, // 27: group.GetGroupMembersCMSResp.Pagination:type_name -> server_api_params.RequestPagination + 2, // 28: group.group.createGroup:input_type -> group.CreateGroupReq + 12, // 29: group.group.joinGroup:input_type -> group.JoinGroupReq + 16, // 30: group.group.quitGroup:input_type -> group.QuitGroupReq + 4, // 31: group.group.getGroupsInfo:input_type -> group.GetGroupsInfoReq + 6, // 32: group.group.setGroupInfo:input_type -> group.SetGroupInfoReq + 8, // 33: group.group.getGroupApplicationList:input_type -> group.GetGroupApplicationListReq + 10, // 34: group.group.transferGroupOwner:input_type -> group.TransferGroupOwnerReq + 14, // 35: group.group.groupApplicationResponse:input_type -> group.GroupApplicationResponseReq + 18, // 36: group.group.getGroupMemberList:input_type -> group.GetGroupMemberListReq + 20, // 37: group.group.getGroupMembersInfo:input_type -> group.GetGroupMembersInfoReq + 22, // 38: group.group.kickGroupMember:input_type -> group.KickGroupMemberReq + 25, // 39: group.group.getJoinedGroupList:input_type -> group.GetJoinedGroupListReq + 27, // 40: group.group.inviteUserToGroup:input_type -> group.InviteUserToGroupReq + 29, // 41: group.group.getGroupAllMember:input_type -> group.GetGroupAllMemberReq + 43, // 42: group.group.GetGroupById:input_type -> group.GetGroupByIdReq + 32, // 43: group.group.GetGroup:input_type -> group.GetGroupReq + 34, // 44: group.group.GetGroups:input_type -> group.GetGroupsReq + 37, // 45: group.group.OperateGroupStatus:input_type -> group.OperateGroupStatusReq + 39, // 46: group.group.OperateUserRole:input_type -> group.OperateUserRoleReq + 41, // 47: group.group.DeleteGroup:input_type -> group.DeleteGroupReq + 45, // 48: group.group.GetGroupMembersCMS:input_type -> group.GetGroupMembersCMSReq + 47, // 49: group.group.RemoveGroupMembersCMS:input_type -> group.RemoveGroupMembersCMSReq + 49, // 50: group.group.AddGroupMembersCMS:input_type -> group.AddGroupMembersCMSReq + 3, // 51: group.group.createGroup:output_type -> group.CreateGroupResp + 13, // 52: group.group.joinGroup:output_type -> group.JoinGroupResp + 17, // 53: group.group.quitGroup:output_type -> group.QuitGroupResp + 5, // 54: group.group.getGroupsInfo:output_type -> group.GetGroupsInfoResp + 7, // 55: group.group.setGroupInfo:output_type -> group.SetGroupInfoResp + 9, // 56: group.group.getGroupApplicationList:output_type -> group.GetGroupApplicationListResp + 11, // 57: group.group.transferGroupOwner:output_type -> group.TransferGroupOwnerResp + 15, // 58: group.group.groupApplicationResponse:output_type -> group.GroupApplicationResponseResp + 19, // 59: group.group.getGroupMemberList:output_type -> group.GetGroupMemberListResp + 21, // 60: group.group.getGroupMembersInfo:output_type -> group.GetGroupMembersInfoResp + 24, // 61: group.group.kickGroupMember:output_type -> group.KickGroupMemberResp + 26, // 62: group.group.getJoinedGroupList:output_type -> group.GetJoinedGroupListResp + 28, // 63: group.group.inviteUserToGroup:output_type -> group.InviteUserToGroupResp + 30, // 64: group.group.getGroupAllMember:output_type -> group.GetGroupAllMemberResp + 44, // 65: group.group.GetGroupById:output_type -> group.GetGroupByIdResp + 33, // 66: group.group.GetGroup:output_type -> group.GetGroupResp + 35, // 67: group.group.GetGroups:output_type -> group.GetGroupsResp + 38, // 68: group.group.OperateGroupStatus:output_type -> group.OperateGroupStatusResp + 40, // 69: group.group.OperateUserRole:output_type -> group.OperateUserRoleResp + 42, // 70: group.group.DeleteGroup:output_type -> group.DeleteGroupResp + 46, // 71: group.group.GetGroupMembersCMS:output_type -> group.GetGroupMembersCMSResp + 48, // 72: group.group.RemoveGroupMembersCMS:output_type -> group.RemoveGroupMembersCMSResp + 50, // 73: group.group.AddGroupMembersCMS:output_type -> group.AddGroupMembersCMSResp + 51, // [51:74] is the sub-list for method output_type + 28, // [28:51] is the sub-list for method input_type + 28, // [28:28] is the sub-list for extension type_name + 28, // [28:28] is the sub-list for extension extendee + 0, // [0:28] is the sub-list for field type_name } func init() { file_group_group_proto_init() } @@ -3645,7 +4146,7 @@ func file_group_group_proto_init() { } } file_group_group_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetGroupReq); i { + switch v := v.(*CMSGroup); i { case 0: return &v.state case 1: @@ -3657,7 +4158,7 @@ func file_group_group_proto_init() { } } file_group_group_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetGroupResp); i { + switch v := v.(*GetGroupReq); i { case 0: return &v.state case 1: @@ -3669,7 +4170,7 @@ func file_group_group_proto_init() { } } file_group_group_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetGroupsReq); i { + switch v := v.(*GetGroupResp); i { case 0: return &v.state case 1: @@ -3681,7 +4182,7 @@ func file_group_group_proto_init() { } } file_group_group_proto_msgTypes[34].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetGroupsResp); i { + switch v := v.(*GetGroupsReq); i { case 0: return &v.state case 1: @@ -3693,7 +4194,7 @@ func file_group_group_proto_init() { } } file_group_group_proto_msgTypes[35].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetGroupMemberReq); i { + switch v := v.(*GetGroupsResp); i { case 0: return &v.state case 1: @@ -3705,7 +4206,7 @@ func file_group_group_proto_init() { } } file_group_group_proto_msgTypes[36].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*OperateGroupStatusReq); i { + switch v := v.(*GetGroupMemberReq); i { case 0: return &v.state case 1: @@ -3717,7 +4218,7 @@ func file_group_group_proto_init() { } } file_group_group_proto_msgTypes[37].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*OperateGroupStatusResp); i { + switch v := v.(*OperateGroupStatusReq); i { case 0: return &v.state case 1: @@ -3729,7 +4230,7 @@ func file_group_group_proto_init() { } } file_group_group_proto_msgTypes[38].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*OperateUserRoleReq); i { + switch v := v.(*OperateGroupStatusResp); i { case 0: return &v.state case 1: @@ -3741,7 +4242,7 @@ func file_group_group_proto_init() { } } file_group_group_proto_msgTypes[39].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*OperateUserRoleResp); i { + switch v := v.(*OperateUserRoleReq); i { case 0: return &v.state case 1: @@ -3753,7 +4254,7 @@ func file_group_group_proto_init() { } } file_group_group_proto_msgTypes[40].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DeleteGroupReq); i { + switch v := v.(*OperateUserRoleResp); i { case 0: return &v.state case 1: @@ -3765,7 +4266,7 @@ func file_group_group_proto_init() { } } file_group_group_proto_msgTypes[41].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DeleteGroupResp); i { + switch v := v.(*DeleteGroupReq); i { case 0: return &v.state case 1: @@ -3777,7 +4278,7 @@ func file_group_group_proto_init() { } } file_group_group_proto_msgTypes[42].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetGroupByIdReq); i { + switch v := v.(*DeleteGroupResp); i { case 0: return &v.state case 1: @@ -3789,6 +4290,18 @@ func file_group_group_proto_init() { } } file_group_group_proto_msgTypes[43].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetGroupByIdReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_group_group_proto_msgTypes[44].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetGroupByIdResp); i { case 0: return &v.state @@ -3800,6 +4313,78 @@ func file_group_group_proto_init() { return nil } } + file_group_group_proto_msgTypes[45].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetGroupMembersCMSReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_group_group_proto_msgTypes[46].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetGroupMembersCMSResp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_group_group_proto_msgTypes[47].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*RemoveGroupMembersCMSReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_group_group_proto_msgTypes[48].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*RemoveGroupMembersCMSResp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_group_group_proto_msgTypes[49].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AddGroupMembersCMSReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_group_group_proto_msgTypes[50].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AddGroupMembersCMSResp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } } type x struct{} out := protoimpl.TypeBuilder{ @@ -3807,7 +4392,7 @@ func file_group_group_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_group_group_proto_rawDesc, NumEnums: 0, - NumMessages: 44, + NumMessages: 51, NumExtensions: 0, NumServices: 1, }, @@ -3853,6 +4438,9 @@ type GroupClient interface { OperateGroupStatus(ctx context.Context, in *OperateGroupStatusReq, opts ...grpc.CallOption) (*OperateGroupStatusResp, error) OperateUserRole(ctx context.Context, in *OperateUserRoleReq, opts ...grpc.CallOption) (*OperateUserRoleResp, error) DeleteGroup(ctx context.Context, in *DeleteGroupReq, opts ...grpc.CallOption) (*DeleteGroupResp, error) + GetGroupMembersCMS(ctx context.Context, in *GetGroupMembersCMSReq, opts ...grpc.CallOption) (*GetGroupMembersCMSResp, error) + RemoveGroupMembersCMS(ctx context.Context, in *RemoveGroupMembersCMSReq, opts ...grpc.CallOption) (*RemoveGroupMembersCMSResp, error) + AddGroupMembersCMS(ctx context.Context, in *AddGroupMembersCMSReq, opts ...grpc.CallOption) (*AddGroupMembersCMSResp, error) } type groupClient struct { @@ -4043,6 +4631,33 @@ func (c *groupClient) DeleteGroup(ctx context.Context, in *DeleteGroupReq, opts return out, nil } +func (c *groupClient) GetGroupMembersCMS(ctx context.Context, in *GetGroupMembersCMSReq, opts ...grpc.CallOption) (*GetGroupMembersCMSResp, error) { + out := new(GetGroupMembersCMSResp) + err := c.cc.Invoke(ctx, "/group.group/GetGroupMembersCMS", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *groupClient) RemoveGroupMembersCMS(ctx context.Context, in *RemoveGroupMembersCMSReq, opts ...grpc.CallOption) (*RemoveGroupMembersCMSResp, error) { + out := new(RemoveGroupMembersCMSResp) + err := c.cc.Invoke(ctx, "/group.group/RemoveGroupMembersCMS", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *groupClient) AddGroupMembersCMS(ctx context.Context, in *AddGroupMembersCMSReq, opts ...grpc.CallOption) (*AddGroupMembersCMSResp, error) { + out := new(AddGroupMembersCMSResp) + err := c.cc.Invoke(ctx, "/group.group/AddGroupMembersCMS", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + // GroupServer is the server API for Group service. type GroupServer interface { CreateGroup(context.Context, *CreateGroupReq) (*CreateGroupResp, error) @@ -4065,6 +4680,9 @@ type GroupServer interface { OperateGroupStatus(context.Context, *OperateGroupStatusReq) (*OperateGroupStatusResp, error) OperateUserRole(context.Context, *OperateUserRoleReq) (*OperateUserRoleResp, error) DeleteGroup(context.Context, *DeleteGroupReq) (*DeleteGroupResp, error) + GetGroupMembersCMS(context.Context, *GetGroupMembersCMSReq) (*GetGroupMembersCMSResp, error) + RemoveGroupMembersCMS(context.Context, *RemoveGroupMembersCMSReq) (*RemoveGroupMembersCMSResp, error) + AddGroupMembersCMS(context.Context, *AddGroupMembersCMSReq) (*AddGroupMembersCMSResp, error) } // UnimplementedGroupServer can be embedded to have forward compatible implementations. @@ -4131,6 +4749,15 @@ func (*UnimplementedGroupServer) OperateUserRole(context.Context, *OperateUserRo func (*UnimplementedGroupServer) DeleteGroup(context.Context, *DeleteGroupReq) (*DeleteGroupResp, error) { return nil, status.Errorf(codes.Unimplemented, "method DeleteGroup not implemented") } +func (*UnimplementedGroupServer) GetGroupMembersCMS(context.Context, *GetGroupMembersCMSReq) (*GetGroupMembersCMSResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetGroupMembersCMS not implemented") +} +func (*UnimplementedGroupServer) RemoveGroupMembersCMS(context.Context, *RemoveGroupMembersCMSReq) (*RemoveGroupMembersCMSResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method RemoveGroupMembersCMS not implemented") +} +func (*UnimplementedGroupServer) AddGroupMembersCMS(context.Context, *AddGroupMembersCMSReq) (*AddGroupMembersCMSResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method AddGroupMembersCMS not implemented") +} func RegisterGroupServer(s *grpc.Server, srv GroupServer) { s.RegisterService(&_Group_serviceDesc, srv) @@ -4496,6 +5123,60 @@ func _Group_DeleteGroup_Handler(srv interface{}, ctx context.Context, dec func(i return interceptor(ctx, in, info, handler) } +func _Group_GetGroupMembersCMS_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetGroupMembersCMSReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(GroupServer).GetGroupMembersCMS(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/group.group/GetGroupMembersCMS", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(GroupServer).GetGroupMembersCMS(ctx, req.(*GetGroupMembersCMSReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _Group_RemoveGroupMembersCMS_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(RemoveGroupMembersCMSReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(GroupServer).RemoveGroupMembersCMS(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/group.group/RemoveGroupMembersCMS", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(GroupServer).RemoveGroupMembersCMS(ctx, req.(*RemoveGroupMembersCMSReq)) + } + return interceptor(ctx, in, info, handler) +} + +func _Group_AddGroupMembersCMS_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(AddGroupMembersCMSReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(GroupServer).AddGroupMembersCMS(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/group.group/AddGroupMembersCMS", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(GroupServer).AddGroupMembersCMS(ctx, req.(*AddGroupMembersCMSReq)) + } + return interceptor(ctx, in, info, handler) +} + var _Group_serviceDesc = grpc.ServiceDesc{ ServiceName: "group.group", HandlerType: (*GroupServer)(nil), @@ -4580,6 +5261,18 @@ var _Group_serviceDesc = grpc.ServiceDesc{ MethodName: "DeleteGroup", Handler: _Group_DeleteGroup_Handler, }, + { + MethodName: "GetGroupMembersCMS", + Handler: _Group_GetGroupMembersCMS_Handler, + }, + { + MethodName: "RemoveGroupMembersCMS", + Handler: _Group_RemoveGroupMembersCMS_Handler, + }, + { + MethodName: "AddGroupMembersCMS", + Handler: _Group_AddGroupMembersCMS_Handler, + }, }, Streams: []grpc.StreamDesc{}, Metadata: "group/group.proto", diff --git a/pkg/proto/group/group.proto b/pkg/proto/group/group.proto index 3983bee85..6356c2805 100644 --- a/pkg/proto/group/group.proto +++ b/pkg/proto/group/group.proto @@ -195,6 +195,12 @@ message GetGroupAllMemberResp { repeated server_api_params.GroupMemberFullInfo memberList = 3; } +message CMSGroup { + server_api_params.GroupInfo GroupInfo = 1; + string GroupMasterName = 2; + string GroupMasterId = 3; +} + message GetGroupReq { string GroupName = 1; server_api_params.RequestPagination Pagination = 2; @@ -202,7 +208,7 @@ message GetGroupReq { } message GetGroupResp { - repeated server_api_params.GroupInfo GroupInfo = 1; + repeated CMSGroup CMSGroups = 1; server_api_params.RequestPagination Pagination = 2; } @@ -212,7 +218,7 @@ message GetGroupsReq { } message GetGroupsResp { - repeated server_api_params.GroupInfo GroupInfo = 1; + repeated CMSGroup CMSGroups = 1; server_api_params.RequestPagination Pagination = 2; int32 GroupNum = 3; } @@ -258,7 +264,40 @@ message GetGroupByIdReq { } message GetGroupByIdResp { - server_api_params.GroupInfo GroupInfo = 1; + CMSGroup CMSGroup = 1; +} + +message GetGroupMembersCMSReq { + string GroupId = 1; + server_api_params.RequestPagination Pagination = 2; + string OperationID = 3; +} + +message GetGroupMembersCMSResp { + repeated server_api_params.GroupMemberFullInfo members = 3; + server_api_params.RequestPagination Pagination = 2; +} + +message RemoveGroupMembersCMSReq { + string GroupId = 1; + repeated string UserIds = 2; + string OperationID = 3; +} + +message RemoveGroupMembersCMSResp { + repeated string success = 1; + repeated string failed = 2; +} + +message AddGroupMembersCMSReq { + string GroupId = 1; + repeated string UserIds = 2; + string OperationID = 3; +} + +message AddGroupMembersCMSResp { + repeated string success = 1; + repeated string failed = 2; } service group{ @@ -283,6 +322,9 @@ service group{ rpc OperateGroupStatus(OperateGroupStatusReq) returns(OperateGroupStatusResp); rpc OperateUserRole(OperateUserRoleReq) returns(OperateUserRoleResp); rpc DeleteGroup(DeleteGroupReq) returns(DeleteGroupResp); + rpc GetGroupMembersCMS(GetGroupMembersCMSReq) returns(GetGroupMembersCMSResp); + rpc RemoveGroupMembersCMS(RemoveGroupMembersCMSReq) returns(RemoveGroupMembersCMSResp); + rpc AddGroupMembersCMS(AddGroupMembersCMSReq) returns(AddGroupMembersCMSResp); } diff --git a/pkg/proto/proto_dir.cfg b/pkg/proto/proto_dir.cfg index e8c78819b..9f22fa533 100644 --- a/pkg/proto/proto_dir.cfg +++ b/pkg/proto/proto_dir.cfg @@ -1,10 +1,10 @@ all_proto=( - message/message.proto + # message/message.proto # statistics/statistics.proto # auth/auth.proto # friend/friend.proto - # group/group.proto + group/group.proto # user/user.proto # chat/chat.proto # push/push.proto From 4c42f5a2f51d5d9138463dce7999f8cd7f5cadce Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Tue, 8 Feb 2022 12:22:37 +0800 Subject: [PATCH 565/814] Refactor code --- internal/rpc/msg/send_msg.go | 1 - 1 file changed, 1 deletion(-) diff --git a/internal/rpc/msg/send_msg.go b/internal/rpc/msg/send_msg.go index 8b91a3c39..79f434e80 100644 --- a/internal/rpc/msg/send_msg.go +++ b/internal/rpc/msg/send_msg.go @@ -240,7 +240,6 @@ type NotificationMsg struct { } func Notification(n *NotificationMsg) { - return var req pbChat.SendMsgReq var msg sdk_ws.MsgData var offlineInfo sdk_ws.OfflinePushInfo From b3024a6f7cd26a018f712f642696e7ed204a65b2 Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Tue, 8 Feb 2022 14:06:49 +0800 Subject: [PATCH 566/814] test --- internal/rpc/msg/send_msg.go | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/internal/rpc/msg/send_msg.go b/internal/rpc/msg/send_msg.go index 8b91a3c39..aeb479b37 100644 --- a/internal/rpc/msg/send_msg.go +++ b/internal/rpc/msg/send_msg.go @@ -240,7 +240,6 @@ type NotificationMsg struct { } func Notification(n *NotificationMsg) { - return var req pbChat.SendMsgReq var msg sdk_ws.MsgData var offlineInfo sdk_ws.OfflinePushInfo @@ -263,8 +262,8 @@ func Notification(n *NotificationMsg) { if true { msg.Options = make(map[string]bool, 10) //utils.SetSwitchFromOptions(msg.Options, constant.IsOfflinePush, false) - utils.SetSwitchFromOptions(msg.Options, constant.IsHistory, false) - utils.SetSwitchFromOptions(msg.Options, constant.IsPersistent, false) + //utils.SetSwitchFromOptions(msg.Options, constant.IsHistory, false) + //utils.SetSwitchFromOptions(msg.Options, constant.IsPersistent, false) } offlineInfo.IOSBadgeCount = config.Config.IOSPush.BadgeCount offlineInfo.IOSPushSound = config.Config.IOSPush.PushSound From 70fb869852705b3d980b0311288f241bf4fccea1 Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Tue, 8 Feb 2022 14:45:21 +0800 Subject: [PATCH 567/814] Refactor code --- pkg/common/constant/constant.go | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/pkg/common/constant/constant.go b/pkg/common/constant/constant.go index 6e32cea2e..0e2bfe4da 100644 --- a/pkg/common/constant/constant.go +++ b/pkg/common/constant/constant.go @@ -138,4 +138,10 @@ const ( Female = 2 ) +const ( + UnreliableNotification = 1 + ReliableNotificationNoMsg = 2 + ReliableNotificationMsg = 3 +) + const FriendAcceptTip = "You have successfully become friends, so start chatting" From 3380cab2c363c4715fb28469e65e965b5caddbc3 Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Tue, 8 Feb 2022 14:50:47 +0800 Subject: [PATCH 568/814] Refactor code --- internal/rpc/msg/friend_notification.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/internal/rpc/msg/friend_notification.go b/internal/rpc/msg/friend_notification.go index e44bc0ff0..b06f3a222 100644 --- a/internal/rpc/msg/friend_notification.go +++ b/internal/rpc/msg/friend_notification.go @@ -54,7 +54,7 @@ func friendNotification(commID *pbFriend.CommID, contentType int32, m proto.Mess case constant.FriendRemarkSetNotification: tips.DefaultTips = fromUserNickname + cn.FriendRemarkSet.DefaultTips.Tips case constant.BlackAddedNotification: - tips.DefaultTips = cn.BlackAdded.DefaultTips.Tips + toUserNickname + tips.DefaultTips = cn.BlackAdded.DefaultTips.Tips case constant.BlackDeletedNotification: tips.DefaultTips = cn.BlackDeleted.DefaultTips.Tips + toUserNickname default: From 9077b56df17e040dbc3edd478d8dbf6a86acd54a Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Tue, 8 Feb 2022 15:19:31 +0800 Subject: [PATCH 569/814] Refactor code --- config/config.yaml | 106 ++++++++++++------------- internal/rpc/msg/group_notification.go | 38 +++++++-- 2 files changed, 85 insertions(+), 59 deletions(-) diff --git a/config/config.yaml b/config/config.yaml index 65696d2ba..62ded8e46 100644 --- a/config/config.yaml +++ b/config/config.yaml @@ -179,7 +179,7 @@ notification: groupCreated: conversation: - reliabilityLevel: 1 + reliabilityLevel: 3 unreadCount: true offlinePush: switch: true @@ -191,111 +191,111 @@ notification: groupInfoSet: conversation: - reliabilityLevel: 1 - unreadCount: false + reliabilityLevel: 3 + unreadCount: true offlinePush: switch: false - title: "group info changed title" - desc: "group info changed desc" - ext: "group info changed ext" + title: "groupInfoSet title" + desc: "groupInfoSet desc" + ext: "groupInfoSet ext" defaultTips: - tips: "group info changed by" # group info changed by xx + tips: "modified the group profile" # group info changed by xx joinGroupApplication: conversation: - reliabilityLevel: 1 + reliabilityLevel: 2 unreadCount: false offlinePush: switch: false - title: "group info changed title" - desc: "group info changed desc" - ext: "group info changed ext" + title: "joinGroupApplication title" + desc: "joinGroupApplication desc" + ext: "joinGroupApplication ext" defaultTips: - tips: "group info changed by" # group info changed by xx + tips: "apply to join the group" # group info changed by xx memberQuit: conversation: - reliabilityLevel: 1 - unreadCount: false + reliabilityLevel: 3 + unreadCount: true offlinePush: switch: false - title: "group info changed title" - desc: "group info changed desc" - ext: "group info changed ext" + title: "memberQuit title" + desc: "memberQuit desc" + ext: "memberQuit ext" defaultTips: - tips: "group info changed by" # group info changed by xx + tips: "quit group chat" # group info changed by xx groupApplicationAccepted: conversation: - reliabilityLevel: 1 - unreadCount: false + reliabilityLevel: 3 + unreadCount: true offlinePush: switch: false - title: "group info changed title" - desc: "group info changed desc" - ext: "group info changed ext" + title: "groupApplicationAccepted title" + desc: "groupApplicationAccepted desc" + ext: "groupApplicationAccepted ext" defaultTips: - tips: "group info changed by" # group info changed by xx + tips: "was allowed to join the group" # group info changed by xx groupApplicationRejected: conversation: - reliabilityLevel: 1 + reliabilityLevel: 2 unreadCount: false offlinePush: switch: false - title: "group info changed title" - desc: "group info changed desc" - ext: "group info changed ext" + title: " title" + desc: " desc" + ext: " ext" defaultTips: - tips: "group info changed by" # group info changed by xx + tips: "was rejected into the group" # group info changed by xx groupOwnerTransferred: conversation: - reliabilityLevel: 1 - unreadCount: false + reliabilityLevel: 3 + unreadCount: true offlinePush: switch: false - title: "group info changed title" - desc: "group info changed desc" - ext: "group info changed ext" + title: "groupOwnerTransferred title" + desc: "groupOwnerTransferred desc" + ext: "groupOwnerTransferred ext" defaultTips: - tips: "group info changed by" # group info changed by xx + tips: "become a new group owner" # group info changed by xx memberKicked: conversation: - reliabilityLevel: 1 - unreadCount: false + reliabilityLevel: 3 + unreadCount: true offlinePush: switch: false - title: "group info changed title" - desc: "group info changed desc" - ext: "group info changed ext" + title: "memberKicked title" + desc: "memberKicked desc" + ext: "memberKicked ext" defaultTips: - tips: "group info changed by" # group info changed by xx + tips: "was kicked out of the group" # group info changed by xx memberInvited: conversation: - reliabilityLevel: 1 - unreadCount: false + reliabilityLevel: 3 + unreadCount: true offlinePush: switch: false - title: "group info changed title" - desc: "group info changed desc" - ext: "group info changed ext" + title: "memberInvited title" + desc: "memberInvited desc" + ext: "memberInvited ext" defaultTips: - tips: "group info changed by" # group info changed by xx + tips: "was invited into the group" # group info changed by xx memberEnter: conversation: - reliabilityLevel: 1 - unreadCount: false + reliabilityLevel: 3 + unreadCount: true offlinePush: switch: false - title: "group info changed title" - desc: "group info changed desc" - ext: "group info changed ext" + title: "memberEnter title" + desc: "memberEnter desc" + ext: "memberEnter ext" defaultTips: - tips: "group info changed by" # group info changed by xx + tips: "entered the group" # group info changed by xx #############################friend################################# diff --git a/internal/rpc/msg/group_notification.go b/internal/rpc/msg/group_notification.go index f9c428d18..511886ffa 100644 --- a/internal/rpc/msg/group_notification.go +++ b/internal/rpc/msg/group_notification.go @@ -94,18 +94,44 @@ func groupNotification(contentType int32, m proto.Message, sendID, groupID, recv return } + from, err := imdb.GetUserByUserID(sendID) + if err != nil { + log.Error(operationID, "GetUserByUserID failed ", err.Error()) + } + nickname := "" + if from != nil { + nickname = from.Nickname + } + + to, err := imdb.GetUserByUserID(recvUserID) + if err != nil { + log.Error(operationID, "GetUserByUserID failed ", err.Error()) + } + toNickname := "" + if from != nil { + toNickname = to.Nickname + } + cn := config.Config.Notification switch contentType { case constant.GroupCreatedNotification: - tips.DefaultTips = cn.GroupCreated.DefaultTips.Tips + tips.DefaultTips = nickname + " " + cn.GroupCreated.DefaultTips.Tips case constant.GroupInfoSetNotification: + tips.DefaultTips = nickname + " " + cn.GroupInfoSet.DefaultTips.Tips case constant.JoinGroupApplicationNotification: + tips.DefaultTips = nickname + " " + cn.JoinGroupApplication.DefaultTips.Tips case constant.MemberQuitNotification: - case constant.GroupApplicationAcceptedNotification: - case constant.GroupApplicationRejectedNotification: - case constant.GroupOwnerTransferredNotification: - case constant.MemberKickedNotification: - case constant.MemberInvitedNotification: + tips.DefaultTips = nickname + " " + cn.MemberQuit.DefaultTips.Tips + case constant.GroupApplicationAcceptedNotification: // + tips.DefaultTips = toNickname + " " + cn.GroupApplicationAccepted.DefaultTips.Tips + case constant.GroupApplicationRejectedNotification: // + tips.DefaultTips = toNickname + " " + cn.GroupApplicationRejected.DefaultTips.Tips + case constant.GroupOwnerTransferredNotification: // + tips.DefaultTips = toNickname + " " + cn.GroupOwnerTransferred.DefaultTips.Tips + case constant.MemberKickedNotification: // + tips.DefaultTips = toNickname + " " + cn.MemberKicked.DefaultTips.Tips + case constant.MemberInvitedNotification: // + tips.DefaultTips = toNickname + " " + cn.MemberInvited.DefaultTips.Tips default: log.Error(operationID, "contentType failed ", contentType) return From 2a872eb995c28e9690533ff3ff2ed006866c2f1a Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Tue, 8 Feb 2022 15:30:48 +0800 Subject: [PATCH 570/814] notification --- internal/rpc/msg/send_msg.go | 124 ++++++++++++++++++++++++++++------- 1 file changed, 100 insertions(+), 24 deletions(-) diff --git a/internal/rpc/msg/send_msg.go b/internal/rpc/msg/send_msg.go index aeb479b37..2a9b2ae00 100644 --- a/internal/rpc/msg/send_msg.go +++ b/internal/rpc/msg/send_msg.go @@ -244,7 +244,8 @@ func Notification(n *NotificationMsg) { var msg sdk_ws.MsgData var offlineInfo sdk_ws.OfflinePushInfo var title, desc, ex string - var pushSwitch bool + var pushSwitch, unReadCount bool + var reliabilityLevel int req.OperationID = n.OperationID msg.SendID = n.SendID msg.RecvID = n.RecvID @@ -254,36 +255,111 @@ func Notification(n *NotificationMsg) { msg.SessionType = n.SessionType msg.CreateTime = utils.GetCurrentTimestampByMill() msg.ClientMsgID = utils.GetMsgID(n.SendID) + msg.Options = make(map[string]bool, 7) switch n.SessionType { case constant.GroupChatType: msg.RecvID = "" msg.GroupID = n.RecvID } - if true { - msg.Options = make(map[string]bool, 10) - //utils.SetSwitchFromOptions(msg.Options, constant.IsOfflinePush, false) - //utils.SetSwitchFromOptions(msg.Options, constant.IsHistory, false) - //utils.SetSwitchFromOptions(msg.Options, constant.IsPersistent, false) - } offlineInfo.IOSBadgeCount = config.Config.IOSPush.BadgeCount offlineInfo.IOSPushSound = config.Config.IOSPush.PushSound - //switch msg.ContentType { - //case constant.GroupCreatedNotification: - // pushSwitch = config.Config.Notification.GroupCreated.OfflinePush.PushSwitch - // title = config.Config.Notification.GroupCreated.OfflinePush.Title - // desc = config.Config.Notification.GroupCreated.OfflinePush.Desc - // ex = config.Config.Notification.GroupCreated.OfflinePush.Ext - //case constant.GroupInfoChangedNotification: - // pushSwitch = config.Config.Notification.GroupInfoChanged.OfflinePush.PushSwitch - // title = config.Config.Notification.GroupInfoChanged.OfflinePush.Title - // desc = config.Config.Notification.GroupInfoChanged.OfflinePush.Desc - // ex = config.Config.Notification.GroupInfoChanged.OfflinePush.Ext - //case constant.JoinApplicationNotification: - // pushSwitch = config.Config.Notification.ApplyJoinGroup.OfflinePush.PushSwitch - // title = config.Config.Notification.ApplyJoinGroup.OfflinePush.Title - // desc = config.Config.Notification.ApplyJoinGroup.OfflinePush.Desc - // ex = config.Config.Notification.ApplyJoinGroup.OfflinePush.Ext - //} + switch msg.ContentType { + case constant.GroupCreatedNotification: + pushSwitch = config.Config.Notification.GroupCreated.OfflinePush.PushSwitch + title = config.Config.Notification.GroupCreated.OfflinePush.Title + desc = config.Config.Notification.GroupCreated.OfflinePush.Desc + ex = config.Config.Notification.GroupCreated.OfflinePush.Ext + reliabilityLevel = config.Config.Notification.GroupCreated.Conversation.ReliabilityLevel + unReadCount = config.Config.Notification.GroupCreated.Conversation.UnreadCount + case constant.GroupInfoSetNotification: + pushSwitch = config.Config.Notification.GroupInfoSet.OfflinePush.PushSwitch + title = config.Config.Notification.GroupInfoSet.OfflinePush.Title + desc = config.Config.Notification.GroupInfoSet.OfflinePush.Desc + ex = config.Config.Notification.GroupInfoSet.OfflinePush.Ext + reliabilityLevel = config.Config.Notification.GroupInfoSet.Conversation.ReliabilityLevel + unReadCount = config.Config.Notification.GroupInfoSet.Conversation.UnreadCount + case constant.JoinGroupApplicationNotification: + pushSwitch = config.Config.Notification.JoinGroupApplication.OfflinePush.PushSwitch + title = config.Config.Notification.JoinGroupApplication.OfflinePush.Title + desc = config.Config.Notification.JoinGroupApplication.OfflinePush.Desc + ex = config.Config.Notification.JoinGroupApplication.OfflinePush.Ext + reliabilityLevel = config.Config.Notification.JoinGroupApplication.Conversation.ReliabilityLevel + unReadCount = config.Config.Notification.JoinGroupApplication.Conversation.UnreadCount + case constant.MemberQuitNotification: + pushSwitch = config.Config.Notification.MemberQuit.OfflinePush.PushSwitch + title = config.Config.Notification.MemberQuit.OfflinePush.Title + desc = config.Config.Notification.MemberQuit.OfflinePush.Desc + ex = config.Config.Notification.MemberQuit.OfflinePush.Ext + reliabilityLevel = config.Config.Notification.MemberQuit.Conversation.ReliabilityLevel + unReadCount = config.Config.Notification.MemberQuit.Conversation.UnreadCount + case constant.GroupApplicationAcceptedNotification: + pushSwitch = config.Config.Notification.GroupApplicationAccepted.OfflinePush.PushSwitch + title = config.Config.Notification.GroupApplicationAccepted.OfflinePush.Title + desc = config.Config.Notification.GroupApplicationAccepted.OfflinePush.Desc + ex = config.Config.Notification.GroupApplicationAccepted.OfflinePush.Ext + reliabilityLevel = config.Config.Notification.GroupApplicationAccepted.Conversation.ReliabilityLevel + unReadCount = config.Config.Notification.GroupApplicationAccepted.Conversation.UnreadCount + case constant.GroupApplicationRejectedNotification: + pushSwitch = config.Config.Notification.GroupApplicationRejected.OfflinePush.PushSwitch + title = config.Config.Notification.GroupApplicationRejected.OfflinePush.Title + desc = config.Config.Notification.GroupApplicationRejected.OfflinePush.Desc + ex = config.Config.Notification.GroupApplicationRejected.OfflinePush.Ext + reliabilityLevel = config.Config.Notification.GroupApplicationRejected.Conversation.ReliabilityLevel + unReadCount = config.Config.Notification.GroupApplicationRejected.Conversation.UnreadCount + case constant.GroupOwnerTransferredNotification: + pushSwitch = config.Config.Notification.GroupOwnerTransferred.OfflinePush.PushSwitch + title = config.Config.Notification.GroupOwnerTransferred.OfflinePush.Title + desc = config.Config.Notification.GroupOwnerTransferred.OfflinePush.Desc + ex = config.Config.Notification.GroupOwnerTransferred.OfflinePush.Ext + reliabilityLevel = config.Config.Notification.GroupOwnerTransferred.Conversation.ReliabilityLevel + unReadCount = config.Config.Notification.GroupOwnerTransferred.Conversation.UnreadCount + case constant.MemberKickedNotification: + pushSwitch = config.Config.Notification.MemberKicked.OfflinePush.PushSwitch + title = config.Config.Notification.MemberKicked.OfflinePush.Title + desc = config.Config.Notification.MemberKicked.OfflinePush.Desc + ex = config.Config.Notification.MemberKicked.OfflinePush.Ext + reliabilityLevel = config.Config.Notification.MemberKicked.Conversation.ReliabilityLevel + unReadCount = config.Config.Notification.MemberKicked.Conversation.UnreadCount + case constant.MemberInvitedNotification: + pushSwitch = config.Config.Notification.MemberInvited.OfflinePush.PushSwitch + title = config.Config.Notification.MemberInvited.OfflinePush.Title + desc = config.Config.Notification.MemberInvited.OfflinePush.Desc + ex = config.Config.Notification.MemberInvited.OfflinePush.Ext + reliabilityLevel = config.Config.Notification.MemberInvited.Conversation.ReliabilityLevel + unReadCount = config.Config.Notification.MemberInvited.Conversation.UnreadCount + case constant.MemberEnterNotification: + pushSwitch = config.Config.Notification.MemberEnter.OfflinePush.PushSwitch + title = config.Config.Notification.MemberEnter.OfflinePush.Title + desc = config.Config.Notification.MemberEnter.OfflinePush.Desc + ex = config.Config.Notification.MemberEnter.OfflinePush.Ext + reliabilityLevel = config.Config.Notification.MemberEnter.Conversation.ReliabilityLevel + unReadCount = config.Config.Notification.MemberEnter.Conversation.UnreadCount + case constant.UserInfoUpdatedNotification: + pushSwitch = config.Config.Notification.UserInfoUpdated.OfflinePush.PushSwitch + title = config.Config.Notification.UserInfoUpdated.OfflinePush.Title + desc = config.Config.Notification.UserInfoUpdated.OfflinePush.Desc + ex = config.Config.Notification.UserInfoUpdated.OfflinePush.Ext + reliabilityLevel = config.Config.Notification.UserInfoUpdated.Conversation.ReliabilityLevel + unReadCount = config.Config.Notification.UserInfoUpdated.Conversation.UnreadCount + case constant.FriendApplicationNotification: + pushSwitch = config.Config.Notification.FriendApplication.OfflinePush.PushSwitch + title = config.Config.Notification.FriendApplication.OfflinePush.Title + desc = config.Config.Notification.FriendApplication.OfflinePush.Desc + ex = config.Config.Notification.FriendApplication.OfflinePush.Ext + reliabilityLevel = config.Config.Notification.FriendApplication.Conversation.ReliabilityLevel + unReadCount = config.Config.Notification.FriendApplication.Conversation.UnreadCount + + } + switch reliabilityLevel { + case constant.UnreliableNotification: + utils.SetSwitchFromOptions(msg.Options, constant.IsHistory, false) + utils.SetSwitchFromOptions(msg.Options, constant.IsPersistent, false) + utils.SetSwitchFromOptions(msg.Options, constant.IsConversationUpdate, false) + case constant.ReliableNotificationNoMsg: + utils.SetSwitchFromOptions(msg.Options, constant.IsConversationUpdate, false) + case constant.ReliableNotificationMsg: + } + utils.SetSwitchFromOptions(msg.Options, constant.IsUnreadCount, unReadCount) utils.SetSwitchFromOptions(msg.Options, constant.IsOfflinePush, pushSwitch) offlineInfo.Title = title offlineInfo.Desc = desc From ba5d178ba06bfcd4f87bfbd5355504048e7e6af7 Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Tue, 8 Feb 2022 16:49:45 +0800 Subject: [PATCH 571/814] push msg specify receiver --- pkg/proto/chat/chat.proto | 1 + pkg/proto/push/push.proto | 1 + pkg/proto/relay/relay.proto | 1 + 3 files changed, 3 insertions(+) diff --git a/pkg/proto/chat/chat.proto b/pkg/proto/chat/chat.proto index 7fe50ddc1..4625d8174 100644 --- a/pkg/proto/chat/chat.proto +++ b/pkg/proto/chat/chat.proto @@ -18,6 +18,7 @@ message MsgDataToDB { message PushMsgDataToMQ{ string OperationID = 1; server_api_params.MsgData msgData = 2; + string pushToUserID = 3; } //message PullMessageReq { diff --git a/pkg/proto/push/push.proto b/pkg/proto/push/push.proto index 455b3e6de..5d91083b3 100644 --- a/pkg/proto/push/push.proto +++ b/pkg/proto/push/push.proto @@ -6,6 +6,7 @@ package push; message PushMsgReq { string operationID = 1; server_api_params.MsgData msgData = 2; + string pushToUserID = 3; } message PushMsgResp{ int32 ResultCode = 1; diff --git a/pkg/proto/relay/relay.proto b/pkg/proto/relay/relay.proto index c0149a674..d8c5f1b7e 100644 --- a/pkg/proto/relay/relay.proto +++ b/pkg/proto/relay/relay.proto @@ -6,6 +6,7 @@ package relay; message OnlinePushMsgReq { string OperationID = 1; server_api_params.MsgData msgData = 2; + string pushToUserID = 3; } message OnlinePushMsgResp{ repeated SingleMsgToUser resp = 1; From dc1ad8fb2d87c1c775b9b641128d740cf9fd1e7c Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Tue, 8 Feb 2022 17:12:02 +0800 Subject: [PATCH 572/814] push msg specify receiver --- internal/msg_gateway/gate/rpc_server.go | 8 +- .../msg_transfer/logic/history_msg_handler.go | 20 ++-- internal/push/logic/push_to_client.go | 4 +- pkg/proto/chat/chat.pb.go | 87 ++++++++------- pkg/proto/relay/relay.pb.go | 101 ++++++++++-------- 5 files changed, 116 insertions(+), 104 deletions(-) diff --git a/internal/msg_gateway/gate/rpc_server.go b/internal/msg_gateway/gate/rpc_server.go index 240934d3b..4c96b9241 100644 --- a/internal/msg_gateway/gate/rpc_server.go +++ b/internal/msg_gateway/gate/rpc_server.go @@ -71,7 +71,7 @@ func (r *RPCServer) OnlinePushMsg(_ context.Context, in *pbRelay.OnlinePushMsgRe log.NewError(in.OperationID, "data encode err", err.Error()) } var tag bool - recvID := in.MsgData.RecvID + recvID := in.PushToUserID platformList := genPlatformArray() for _, v := range platformList { if conn := ws.getUserConn(recvID, v); conn != nil { @@ -92,12 +92,6 @@ func (r *RPCServer) OnlinePushMsg(_ context.Context, in *pbRelay.OnlinePushMsgRe resp = append(resp, temp) } } - //Single chat sender synchronization message - if in.MsgData.GetSessionType() == constant.SingleChatType { - for k, v := range ws.getSingleUserAllConn(in.MsgData.SendID) { - _ = sendMsgToUser(v, replyBytes.Bytes(), in, k, in.MsgData.SendID) - } - } if !tag { log.NewError(in.OperationID, "push err ,no matched ws conn not in map", in.String()) } diff --git a/internal/msg_transfer/logic/history_msg_handler.go b/internal/msg_transfer/logic/history_msg_handler.go index 01677cdb0..3afd82f78 100644 --- a/internal/msg_transfer/logic/history_msg_handler.go +++ b/internal/msg_transfer/logic/history_msg_handler.go @@ -45,6 +45,7 @@ func (mc *HistoryConsumerHandler) handleChatWs2Mongo(msg []byte, msgKey string) isHistory := utils.GetSwitchFromOptions(msgFromMQ.MsgData.Options, constant.IsHistory) //Control whether to store history messages (mysql) isPersist := utils.GetSwitchFromOptions(msgFromMQ.MsgData.Options, constant.IsPersistent) + isSenderSync := utils.GetSwitchFromOptions(msgFromMQ.MsgData.Options, constant.IsSenderSync) switch msgFromMQ.MsgData.SessionType { case constant.SingleChatType: log.NewDebug(msgFromMQ.OperationID, "msg_transfer msg type = SingleChatType", isHistory, isPersist) @@ -55,6 +56,8 @@ func (mc *HistoryConsumerHandler) handleChatWs2Mongo(msg []byte, msgKey string) log.NewError(operationID, "single data insert to mongo err", err.Error(), msgFromMQ.String()) return } + go sendMessageToPush(&msgFromMQ, msgFromMQ.MsgData.RecvID) + log.NewDebug(msgFromMQ.OperationID, "sendMessageToPush cost time ", utils.GetCurrentTimestampByNano()-time) } else if msgKey == msgFromMQ.MsgData.SendID { err := saveUserChat(msgFromMQ.MsgData.SendID, &msgFromMQ) @@ -62,15 +65,12 @@ func (mc *HistoryConsumerHandler) handleChatWs2Mongo(msg []byte, msgKey string) log.NewError(operationID, "single data insert to mongo err", err.Error(), msgFromMQ.String()) return } + if isSenderSync { + go sendMessageToPush(&msgFromMQ, msgFromMQ.MsgData.SendID) + } } - log.NewDebug(operationID, "saveUserChat cost time ", utils.GetCurrentTimestampByNano()-time) } - if msgKey == msgFromMQ.MsgData.RecvID { - go sendMessageToPush(&msgFromMQ) - log.NewDebug(msgFromMQ.OperationID, "sendMessageToPush cost time ", utils.GetCurrentTimestampByNano()-time) - } - case constant.GroupChatType: log.NewDebug(msgFromMQ.OperationID, "msg_transfer msg type = GroupChatType", isHistory, isPersist) if isHistory { @@ -80,7 +80,7 @@ func (mc *HistoryConsumerHandler) handleChatWs2Mongo(msg []byte, msgKey string) return } } - go sendMessageToPush(&msgFromMQ) + go sendMessageToPush(&msgFromMQ, msgFromMQ.MsgData.RecvID) default: log.NewError(msgFromMQ.OperationID, "SessionType error", msgFromMQ.String()) return @@ -99,10 +99,10 @@ func (mc *HistoryConsumerHandler) ConsumeClaim(sess sarama.ConsumerGroupSession, } return nil } -func sendMessageToPush(message *pbMsg.MsgDataToMQ) { +func sendMessageToPush(message *pbMsg.MsgDataToMQ, pushToUserID string) { log.InfoByKv("msg_transfer send message to push", message.OperationID, "message", message.String()) - rpcPushMsg := pbPush.PushMsgReq{OperationID: message.OperationID, MsgData: message.MsgData} - mqPushMsg := pbMsg.PushMsgDataToMQ{OperationID: message.OperationID, MsgData: message.MsgData} + rpcPushMsg := pbPush.PushMsgReq{OperationID: message.OperationID, MsgData: message.MsgData, PushToUserID: pushToUserID} + mqPushMsg := pbMsg.PushMsgDataToMQ{OperationID: message.OperationID, MsgData: message.MsgData, PushToUserID: pushToUserID} grpcConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImPushName) if grpcConn == nil { log.ErrorByKv("rpc dial failed", rpcPushMsg.OperationID, "push data", rpcPushMsg.String()) diff --git a/internal/push/logic/push_to_client.go b/internal/push/logic/push_to_client.go index 803bb5b3b..315430c8b 100644 --- a/internal/push/logic/push_to_client.go +++ b/internal/push/logic/push_to_client.go @@ -41,7 +41,7 @@ func MsgToUser(pushMsg *pbPush.PushMsgReq) { log.InfoByKv("test", pushMsg.OperationID, "len grpc", len(grpcCons), "data", pushMsg.String()) for _, v := range grpcCons { msgClient := pbRelay.NewOnlineMessageRelayServiceClient(v) - reply, err := msgClient.OnlinePushMsg(context.Background(), &pbRelay.OnlinePushMsgReq{OperationID: pushMsg.OperationID, MsgData: pushMsg.MsgData}) + reply, err := msgClient.OnlinePushMsg(context.Background(), &pbRelay.OnlinePushMsgReq{OperationID: pushMsg.OperationID, MsgData: pushMsg.MsgData, PushToUserID: pushMsg.PushToUserID}) if err != nil { log.InfoByKv("push data to client rpc err", pushMsg.OperationID, "err", err) continue @@ -51,7 +51,7 @@ func MsgToUser(pushMsg *pbPush.PushMsgReq) { } } log.InfoByKv("push_result", pushMsg.OperationID, "result", wsResult, "sendData", pushMsg.MsgData) - if isOfflinePush { + if isOfflinePush && pushMsg.PushToUserID != pushMsg.MsgData.SendID { for _, v := range wsResult { if v.ResultCode == 0 { continue diff --git a/pkg/proto/chat/chat.pb.go b/pkg/proto/chat/chat.pb.go index 5d4fd0bec..834c9b307 100644 --- a/pkg/proto/chat/chat.pb.go +++ b/pkg/proto/chat/chat.pb.go @@ -37,7 +37,7 @@ func (m *MsgDataToMQ) Reset() { *m = MsgDataToMQ{} } func (m *MsgDataToMQ) String() string { return proto.CompactTextString(m) } func (*MsgDataToMQ) ProtoMessage() {} func (*MsgDataToMQ) Descriptor() ([]byte, []int) { - return fileDescriptor_chat_68ff093a75fc0634, []int{0} + return fileDescriptor_chat_a5e95d84ecbd21a3, []int{0} } func (m *MsgDataToMQ) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MsgDataToMQ.Unmarshal(m, b) @@ -90,7 +90,7 @@ func (m *MsgDataToDB) Reset() { *m = MsgDataToDB{} } func (m *MsgDataToDB) String() string { return proto.CompactTextString(m) } func (*MsgDataToDB) ProtoMessage() {} func (*MsgDataToDB) Descriptor() ([]byte, []int) { - return fileDescriptor_chat_68ff093a75fc0634, []int{1} + return fileDescriptor_chat_a5e95d84ecbd21a3, []int{1} } func (m *MsgDataToDB) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MsgDataToDB.Unmarshal(m, b) @@ -127,6 +127,7 @@ func (m *MsgDataToDB) GetOperationID() string { type PushMsgDataToMQ struct { OperationID string `protobuf:"bytes,1,opt,name=OperationID" json:"OperationID,omitempty"` MsgData *sdk_ws.MsgData `protobuf:"bytes,2,opt,name=msgData" json:"msgData,omitempty"` + PushToUserID string `protobuf:"bytes,3,opt,name=pushToUserID" json:"pushToUserID,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -136,7 +137,7 @@ func (m *PushMsgDataToMQ) Reset() { *m = PushMsgDataToMQ{} } func (m *PushMsgDataToMQ) String() string { return proto.CompactTextString(m) } func (*PushMsgDataToMQ) ProtoMessage() {} func (*PushMsgDataToMQ) Descriptor() ([]byte, []int) { - return fileDescriptor_chat_68ff093a75fc0634, []int{2} + return fileDescriptor_chat_a5e95d84ecbd21a3, []int{2} } func (m *PushMsgDataToMQ) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_PushMsgDataToMQ.Unmarshal(m, b) @@ -170,6 +171,13 @@ func (m *PushMsgDataToMQ) GetMsgData() *sdk_ws.MsgData { return nil } +func (m *PushMsgDataToMQ) GetPushToUserID() string { + if m != nil { + return m.PushToUserID + } + return "" +} + // message PullMessageReq { // string UserID = 1; // int64 SeqBegin = 2; @@ -202,7 +210,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_chat_68ff093a75fc0634, []int{3} + return fileDescriptor_chat_a5e95d84ecbd21a3, []int{3} } func (m *GetMaxAndMinSeqReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetMaxAndMinSeqReq.Unmarshal(m, b) @@ -250,7 +258,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_chat_68ff093a75fc0634, []int{4} + return fileDescriptor_chat_a5e95d84ecbd21a3, []int{4} } func (m *GetMaxAndMinSeqResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetMaxAndMinSeqResp.Unmarshal(m, b) @@ -311,7 +319,7 @@ func (m *SendMsgReq) Reset() { *m = SendMsgReq{} } func (m *SendMsgReq) String() string { return proto.CompactTextString(m) } func (*SendMsgReq) ProtoMessage() {} func (*SendMsgReq) Descriptor() ([]byte, []int) { - return fileDescriptor_chat_68ff093a75fc0634, []int{5} + return fileDescriptor_chat_a5e95d84ecbd21a3, []int{5} } func (m *SendMsgReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SendMsgReq.Unmarshal(m, b) @@ -367,7 +375,7 @@ func (m *SendMsgResp) Reset() { *m = SendMsgResp{} } func (m *SendMsgResp) String() string { return proto.CompactTextString(m) } func (*SendMsgResp) ProtoMessage() {} func (*SendMsgResp) Descriptor() ([]byte, []int) { - return fileDescriptor_chat_68ff093a75fc0634, []int{6} + return fileDescriptor_chat_a5e95d84ecbd21a3, []int{6} } func (m *SendMsgResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SendMsgResp.Unmarshal(m, b) @@ -570,38 +578,39 @@ var _Chat_serviceDesc = grpc.ServiceDesc{ Metadata: "chat/chat.proto", } -func init() { proto.RegisterFile("chat/chat.proto", fileDescriptor_chat_68ff093a75fc0634) } +func init() { proto.RegisterFile("chat/chat.proto", fileDescriptor_chat_a5e95d84ecbd21a3) } -var fileDescriptor_chat_68ff093a75fc0634 = []byte{ - // 469 bytes of a gzipped FileDescriptorProto +var fileDescriptor_chat_a5e95d84ecbd21a3 = []byte{ + // 489 bytes of a gzipped FileDescriptorProto 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xbc, 0x54, 0x4f, 0x6f, 0xd3, 0x4e, - 0x10, 0x95, 0xd3, 0x26, 0xf9, 0x75, 0xac, 0x2a, 0xd2, 0xb6, 0xfa, 0xc9, 0x32, 0x17, 0xe3, 0x53, - 0x04, 0x92, 0x2d, 0x05, 0x6e, 0x9c, 0x48, 0x53, 0xa1, 0x20, 0x96, 0x16, 0xa7, 0x5c, 0xb8, 0x44, - 0xdb, 0x7a, 0xe4, 0x58, 0x49, 0xec, 0xcd, 0x8e, 0x4b, 0x0a, 0x7c, 0x18, 0x3e, 0x26, 0x57, 0xe4, - 0x5d, 0x27, 0xdd, 0x36, 0x45, 0xe4, 0xc4, 0xc5, 0xd2, 0x7b, 0x33, 0x7e, 0x6f, 0xde, 0xfe, 0x83, - 0xde, 0xcd, 0x4c, 0x54, 0x71, 0xfd, 0x89, 0xa4, 0x2a, 0xab, 0x92, 0x75, 0xe4, 0xf5, 0xd9, 0x4c, - 0x54, 0xfe, 0xf3, 0x0b, 0x89, 0xc5, 0x74, 0xcc, 0x63, 0x39, 0xcf, 0x62, 0x5d, 0x8a, 0x29, 0x9d, - 0x4f, 0xd7, 0x14, 0xaf, 0xc9, 0xb4, 0x86, 0x3f, 0xc0, 0xe5, 0x94, 0x8d, 0x44, 0x25, 0xae, 0x4a, - 0xfe, 0x89, 0x9d, 0x42, 0xbb, 0x2a, 0xe7, 0x58, 0x78, 0x4e, 0xe0, 0xf4, 0x8f, 0x12, 0x03, 0x58, - 0x00, 0x6e, 0x29, 0x51, 0x89, 0x2a, 0x2f, 0x8b, 0xf1, 0xc8, 0x6b, 0xe9, 0x9a, 0x4d, 0xb1, 0xd7, - 0xd0, 0x5d, 0x1a, 0x19, 0xef, 0x20, 0x70, 0xfa, 0xee, 0xc0, 0x8f, 0x08, 0xd5, 0x57, 0x54, 0x53, - 0x21, 0xf3, 0xa9, 0x14, 0x4a, 0x2c, 0x29, 0x6a, 0x8c, 0x92, 0x4d, 0x6b, 0x88, 0x96, 0xf9, 0x68, - 0x68, 0x8b, 0x38, 0x7b, 0x8b, 0xfc, 0x7d, 0xb8, 0x30, 0x87, 0xde, 0xe5, 0x2d, 0xcd, 0xec, 0x9c, - 0x01, 0xb8, 0x17, 0xd6, 0x4f, 0x26, 0xad, 0x4d, 0xd9, 0xc3, 0xb4, 0xf6, 0x4f, 0xf4, 0x11, 0xd8, - 0x3b, 0xac, 0xb8, 0xb8, 0x7b, 0x5b, 0xa4, 0x3c, 0x2f, 0x26, 0xb8, 0x4a, 0x70, 0xc5, 0xfe, 0x87, - 0xce, 0x67, 0x42, 0xb5, 0x35, 0x6a, 0xd0, 0xe3, 0x29, 0x5a, 0x3b, 0x53, 0x84, 0x6b, 0x38, 0xd9, - 0xd1, 0x23, 0xc9, 0x3c, 0xe8, 0x9e, 0x2b, 0x75, 0x56, 0xa6, 0xa8, 0x15, 0xdb, 0xc9, 0x06, 0xd6, - 0x56, 0xe7, 0x4a, 0x71, 0xca, 0x1a, 0xb5, 0x06, 0xd5, 0x3c, 0x17, 0x77, 0x13, 0x5c, 0xe9, 0xfd, - 0x39, 0x4e, 0x1a, 0xa4, 0x79, 0xad, 0xeb, 0x1d, 0x36, 0xbc, 0x46, 0xe1, 0x77, 0x80, 0x09, 0x16, - 0x29, 0xa7, 0xac, 0x0e, 0xf0, 0x6f, 0x8f, 0xc5, 0x4f, 0x07, 0xdc, 0xad, 0xb9, 0x49, 0x8b, 0x0f, - 0xd3, 0xe2, 0x7d, 0x5a, 0x7c, 0x90, 0xd6, 0xa0, 0x7a, 0x32, 0xe3, 0xc3, 0x29, 0x1b, 0x8f, 0x74, - 0xb4, 0xa3, 0xc4, 0xa6, 0xea, 0x8e, 0x9b, 0x45, 0x8e, 0x45, 0x65, 0x3a, 0xda, 0xa6, 0xc3, 0xa2, - 0x98, 0x0f, 0xff, 0x11, 0x16, 0xe9, 0x55, 0xbe, 0x44, 0xaf, 0x13, 0x38, 0xfd, 0x83, 0x64, 0x8b, - 0x07, 0xbf, 0x1c, 0x38, 0xac, 0x6f, 0x18, 0x7b, 0x0f, 0xbd, 0x47, 0xfb, 0xc3, 0xfc, 0xc8, 0xdc, - 0xbe, 0x68, 0xf7, 0x20, 0xf8, 0xcf, 0xfe, 0x58, 0x23, 0xc9, 0x4a, 0x38, 0xbd, 0xbc, 0x5d, 0x2c, - 0x38, 0x12, 0x89, 0x0c, 0x87, 0xdf, 0x26, 0xb8, 0xfa, 0x90, 0x53, 0xc5, 0x5e, 0x3c, 0xb1, 0x66, - 0x4f, 0x35, 0xd6, 0x06, 0x2f, 0xf7, 0xee, 0x25, 0xc9, 0x06, 0xd0, 0x6d, 0x96, 0x99, 0xb1, 0xcd, - 0x60, 0xf7, 0x9b, 0xee, 0x9f, 0xec, 0x70, 0x24, 0x87, 0xbd, 0x2f, 0xc7, 0x91, 0x7e, 0x6a, 0xde, - 0x98, 0xe2, 0x75, 0x47, 0xbf, 0x23, 0xaf, 0x7e, 0x07, 0x00, 0x00, 0xff, 0xff, 0x3a, 0xe6, 0x81, - 0xce, 0x85, 0x04, 0x00, 0x00, + 0x10, 0x95, 0xd3, 0x26, 0xf9, 0x65, 0xf2, 0xab, 0x22, 0x6d, 0x2b, 0x64, 0x99, 0x8b, 0xf1, 0x29, + 0x02, 0xc9, 0x96, 0x02, 0x37, 0x4e, 0xa4, 0xae, 0x50, 0x10, 0x4b, 0x8b, 0x13, 0x2e, 0x5c, 0xa2, + 0x6d, 0x3d, 0x72, 0xac, 0x24, 0xf6, 0x66, 0xc7, 0x21, 0x05, 0x3e, 0x03, 0x9f, 0x81, 0x8f, 0xc9, + 0x15, 0x79, 0xd7, 0x69, 0x9d, 0xa6, 0x88, 0x9c, 0xb8, 0x58, 0x7a, 0x6f, 0xc6, 0x6f, 0xde, 0xdb, + 0x7f, 0xd0, 0xbb, 0x99, 0x89, 0x22, 0x28, 0x3f, 0xbe, 0x54, 0x79, 0x91, 0xb3, 0x96, 0xbc, 0x3e, + 0x9f, 0x89, 0xc2, 0x79, 0x76, 0x29, 0x31, 0x9b, 0x8e, 0x78, 0x20, 0xe7, 0x49, 0xa0, 0x4b, 0x01, + 0xc5, 0xf3, 0xe9, 0x86, 0x82, 0x0d, 0x99, 0x56, 0xef, 0x3b, 0x74, 0x39, 0x25, 0xa1, 0x28, 0xc4, + 0x24, 0xe7, 0x1f, 0xd9, 0x19, 0x34, 0x8b, 0x7c, 0x8e, 0x99, 0x6d, 0xb9, 0x56, 0xbf, 0x13, 0x19, + 0xc0, 0x5c, 0xe8, 0xe6, 0x12, 0x95, 0x28, 0xd2, 0x3c, 0x1b, 0x85, 0x76, 0x43, 0xd7, 0xea, 0x14, + 0x7b, 0x05, 0xed, 0xa5, 0x91, 0xb1, 0x8f, 0x5c, 0xab, 0xdf, 0x1d, 0x38, 0x3e, 0xa1, 0xfa, 0x82, + 0x6a, 0x2a, 0x64, 0x3a, 0x95, 0x42, 0x89, 0x25, 0xf9, 0xd5, 0xa0, 0x68, 0xdb, 0xea, 0x61, 0x6d, + 0x78, 0x38, 0xac, 0x8b, 0x58, 0x07, 0x8b, 0xfc, 0xdd, 0x9c, 0xf7, 0xc3, 0x82, 0xde, 0xd5, 0x9a, + 0x66, 0xf5, 0xa0, 0x2e, 0x74, 0x2f, 0x6b, 0x7f, 0x99, 0xb8, 0x75, 0xaa, 0xee, 0xa6, 0x71, 0xb8, + 0x1b, 0x0f, 0xfe, 0x97, 0x6b, 0x9a, 0x4d, 0xf2, 0x4f, 0x84, 0x6a, 0x14, 0xea, 0xd5, 0xe8, 0x44, + 0x3b, 0x9c, 0xf7, 0x01, 0xd8, 0x5b, 0x2c, 0xb8, 0xb8, 0x7d, 0x93, 0xc5, 0x3c, 0xcd, 0xc6, 0xb8, + 0x8a, 0x70, 0xc5, 0x9e, 0x40, 0xab, 0xfa, 0xc7, 0x98, 0xa9, 0xd0, 0x43, 0xa7, 0x8d, 0x3d, 0xa7, + 0xde, 0x06, 0x4e, 0xf7, 0xf4, 0x48, 0x32, 0x1b, 0xda, 0x17, 0x4a, 0x9d, 0xe7, 0x31, 0x6a, 0xc5, + 0x66, 0xb4, 0x85, 0xe5, 0xa8, 0x0b, 0xa5, 0x38, 0x25, 0x95, 0x5a, 0x85, 0x4a, 0x9e, 0x8b, 0xdb, + 0x31, 0xae, 0xb4, 0xed, 0x93, 0xa8, 0x42, 0x9a, 0xd7, 0xba, 0xf6, 0x71, 0xc5, 0x6b, 0xe4, 0x7d, + 0x03, 0x18, 0x63, 0x16, 0x73, 0x4a, 0xca, 0x00, 0xff, 0xf6, 0xec, 0xfc, 0xb4, 0xa0, 0x7b, 0x37, + 0xdc, 0xa4, 0xc5, 0xdd, 0xb4, 0x78, 0x9f, 0x16, 0x77, 0xd2, 0x1a, 0x54, 0x3a, 0x33, 0x73, 0x38, + 0x25, 0xa3, 0x50, 0x47, 0xeb, 0x44, 0x75, 0xaa, 0xec, 0xb8, 0x59, 0xa4, 0x98, 0x15, 0xa6, 0xa3, + 0x69, 0x3a, 0x6a, 0x14, 0x73, 0xe0, 0x3f, 0xc2, 0x2c, 0x9e, 0xa4, 0x4b, 0xb4, 0x5b, 0xae, 0xd5, + 0x3f, 0x8a, 0xee, 0xf0, 0xe0, 0x97, 0x05, 0xc7, 0xe5, 0x35, 0x64, 0xef, 0xa0, 0xf7, 0x60, 0x7f, + 0x98, 0xe3, 0x9b, 0x2b, 0xea, 0xef, 0x1f, 0x04, 0xe7, 0xe9, 0x1f, 0x6b, 0x24, 0x59, 0x0e, 0x67, + 0x57, 0xeb, 0xc5, 0x82, 0x23, 0x91, 0x48, 0x70, 0xf8, 0x75, 0x8c, 0xab, 0xf7, 0x29, 0x15, 0xec, + 0xf9, 0x23, 0x6b, 0xf6, 0x58, 0x63, 0x39, 0xe0, 0xc5, 0xc1, 0xbd, 0x24, 0xd9, 0x00, 0xda, 0xd5, + 0x32, 0x33, 0xb6, 0x35, 0x76, 0xbf, 0xe9, 0xce, 0xe9, 0x1e, 0x47, 0x72, 0xd8, 0xfb, 0x7c, 0xe2, + 0xeb, 0xf7, 0xe8, 0xb5, 0x29, 0x5e, 0xb7, 0xf4, 0x63, 0xf3, 0xf2, 0x77, 0x00, 0x00, 0x00, 0xff, + 0xff, 0xe8, 0xa6, 0x3e, 0x67, 0xaa, 0x04, 0x00, 0x00, } diff --git a/pkg/proto/relay/relay.pb.go b/pkg/proto/relay/relay.pb.go index d8451ff70..37334a8b2 100644 --- a/pkg/proto/relay/relay.pb.go +++ b/pkg/proto/relay/relay.pb.go @@ -27,6 +27,7 @@ const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package type OnlinePushMsgReq struct { OperationID string `protobuf:"bytes,1,opt,name=OperationID" json:"OperationID,omitempty"` MsgData *sdk_ws.MsgData `protobuf:"bytes,2,opt,name=msgData" json:"msgData,omitempty"` + PushToUserID string `protobuf:"bytes,3,opt,name=pushToUserID" json:"pushToUserID,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -36,7 +37,7 @@ func (m *OnlinePushMsgReq) Reset() { *m = OnlinePushMsgReq{} } func (m *OnlinePushMsgReq) String() string { return proto.CompactTextString(m) } func (*OnlinePushMsgReq) ProtoMessage() {} func (*OnlinePushMsgReq) Descriptor() ([]byte, []int) { - return fileDescriptor_relay_aeddd7666fcf4cae, []int{0} + return fileDescriptor_relay_34094e5333f6005a, []int{0} } func (m *OnlinePushMsgReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_OnlinePushMsgReq.Unmarshal(m, b) @@ -70,6 +71,13 @@ func (m *OnlinePushMsgReq) GetMsgData() *sdk_ws.MsgData { return nil } +func (m *OnlinePushMsgReq) GetPushToUserID() string { + if m != nil { + return m.PushToUserID + } + return "" +} + type OnlinePushMsgResp struct { Resp []*SingleMsgToUser `protobuf:"bytes,1,rep,name=resp" json:"resp,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` @@ -81,7 +89,7 @@ func (m *OnlinePushMsgResp) Reset() { *m = OnlinePushMsgResp{} } func (m *OnlinePushMsgResp) String() string { return proto.CompactTextString(m) } func (*OnlinePushMsgResp) ProtoMessage() {} func (*OnlinePushMsgResp) Descriptor() ([]byte, []int) { - return fileDescriptor_relay_aeddd7666fcf4cae, []int{1} + return fileDescriptor_relay_34094e5333f6005a, []int{1} } func (m *OnlinePushMsgResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_OnlinePushMsgResp.Unmarshal(m, b) @@ -121,7 +129,7 @@ func (m *SingleMsgToUser) Reset() { *m = SingleMsgToUser{} } func (m *SingleMsgToUser) String() string { return proto.CompactTextString(m) } func (*SingleMsgToUser) ProtoMessage() {} func (*SingleMsgToUser) Descriptor() ([]byte, []int) { - return fileDescriptor_relay_aeddd7666fcf4cae, []int{2} + return fileDescriptor_relay_34094e5333f6005a, []int{2} } func (m *SingleMsgToUser) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_SingleMsgToUser.Unmarshal(m, b) @@ -175,7 +183,7 @@ func (m *GetUsersOnlineStatusReq) Reset() { *m = GetUsersOnlineStatusReq func (m *GetUsersOnlineStatusReq) String() string { return proto.CompactTextString(m) } func (*GetUsersOnlineStatusReq) ProtoMessage() {} func (*GetUsersOnlineStatusReq) Descriptor() ([]byte, []int) { - return fileDescriptor_relay_aeddd7666fcf4cae, []int{3} + return fileDescriptor_relay_34094e5333f6005a, []int{3} } func (m *GetUsersOnlineStatusReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetUsersOnlineStatusReq.Unmarshal(m, b) @@ -230,7 +238,7 @@ func (m *GetUsersOnlineStatusResp) Reset() { *m = GetUsersOnlineStatusRe func (m *GetUsersOnlineStatusResp) String() string { return proto.CompactTextString(m) } func (*GetUsersOnlineStatusResp) ProtoMessage() {} func (*GetUsersOnlineStatusResp) Descriptor() ([]byte, []int) { - return fileDescriptor_relay_aeddd7666fcf4cae, []int{4} + return fileDescriptor_relay_34094e5333f6005a, []int{4} } func (m *GetUsersOnlineStatusResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetUsersOnlineStatusResp.Unmarshal(m, b) @@ -292,7 +300,7 @@ func (m *GetUsersOnlineStatusResp_SuccessDetail) Reset() { func (m *GetUsersOnlineStatusResp_SuccessDetail) String() string { return proto.CompactTextString(m) } func (*GetUsersOnlineStatusResp_SuccessDetail) ProtoMessage() {} func (*GetUsersOnlineStatusResp_SuccessDetail) Descriptor() ([]byte, []int) { - return fileDescriptor_relay_aeddd7666fcf4cae, []int{4, 0} + return fileDescriptor_relay_34094e5333f6005a, []int{4, 0} } func (m *GetUsersOnlineStatusResp_SuccessDetail) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetUsersOnlineStatusResp_SuccessDetail.Unmarshal(m, b) @@ -339,7 +347,7 @@ func (m *GetUsersOnlineStatusResp_FailedDetail) Reset() { *m = GetUsersO func (m *GetUsersOnlineStatusResp_FailedDetail) String() string { return proto.CompactTextString(m) } func (*GetUsersOnlineStatusResp_FailedDetail) ProtoMessage() {} func (*GetUsersOnlineStatusResp_FailedDetail) Descriptor() ([]byte, []int) { - return fileDescriptor_relay_aeddd7666fcf4cae, []int{4, 1} + return fileDescriptor_relay_34094e5333f6005a, []int{4, 1} } func (m *GetUsersOnlineStatusResp_FailedDetail) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetUsersOnlineStatusResp_FailedDetail.Unmarshal(m, b) @@ -395,7 +403,7 @@ func (m *GetUsersOnlineStatusResp_SuccessResult) Reset() { func (m *GetUsersOnlineStatusResp_SuccessResult) String() string { return proto.CompactTextString(m) } func (*GetUsersOnlineStatusResp_SuccessResult) ProtoMessage() {} func (*GetUsersOnlineStatusResp_SuccessResult) Descriptor() ([]byte, []int) { - return fileDescriptor_relay_aeddd7666fcf4cae, []int{4, 2} + return fileDescriptor_relay_34094e5333f6005a, []int{4, 2} } func (m *GetUsersOnlineStatusResp_SuccessResult) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetUsersOnlineStatusResp_SuccessResult.Unmarshal(m, b) @@ -552,42 +560,43 @@ var _OnlineMessageRelayService_serviceDesc = grpc.ServiceDesc{ Metadata: "relay/relay.proto", } -func init() { proto.RegisterFile("relay/relay.proto", fileDescriptor_relay_aeddd7666fcf4cae) } - -var fileDescriptor_relay_aeddd7666fcf4cae = []byte{ - // 544 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x94, 0x54, 0x5f, 0x6f, 0xd2, 0x50, - 0x14, 0x4f, 0x05, 0x36, 0x39, 0x0c, 0x27, 0x37, 0xcb, 0x56, 0xfb, 0x80, 0xc8, 0x83, 0x21, 0x46, - 0x4b, 0x82, 0xbe, 0xf9, 0x60, 0xb2, 0x35, 0x33, 0x24, 0x36, 0x90, 0x8b, 0x8b, 0xc6, 0x17, 0x72, - 0x07, 0x67, 0xb5, 0xae, 0xd0, 0xcb, 0x3d, 0x2d, 0xc4, 0xaf, 0xe3, 0x97, 0xd0, 0x8f, 0x67, 0x7a, - 0x6f, 0xc1, 0x42, 0x98, 0xcb, 0x5e, 0x08, 0xe7, 0xdc, 0x73, 0x7e, 0xff, 0xda, 0x5e, 0x68, 0x28, - 0x8c, 0xc4, 0xcf, 0xae, 0xfe, 0x75, 0xa5, 0x8a, 0x93, 0x98, 0x55, 0x74, 0xe1, 0xbc, 0x18, 0x48, - 0x9c, 0x8f, 0xfb, 0x7e, 0x57, 0xde, 0x06, 0x5d, 0x7d, 0xd2, 0xa5, 0xe9, 0xed, 0x78, 0x45, 0xdd, - 0x15, 0x99, 0xc9, 0xf6, 0x0f, 0x78, 0x3a, 0x98, 0x47, 0xe1, 0x1c, 0x87, 0x29, 0x7d, 0xf7, 0x29, - 0xe0, 0xb8, 0x60, 0x2d, 0xa8, 0x0d, 0x24, 0x2a, 0x91, 0x84, 0xf1, 0xbc, 0xef, 0xd9, 0x56, 0xcb, - 0xea, 0x54, 0x79, 0xb1, 0xc5, 0xde, 0xc1, 0xe1, 0x8c, 0x02, 0x4f, 0x24, 0xc2, 0x7e, 0xd4, 0xb2, - 0x3a, 0xb5, 0x9e, 0xe3, 0x12, 0xaa, 0x25, 0xaa, 0xb1, 0x90, 0xe1, 0x58, 0x0a, 0x25, 0x66, 0xe4, - 0xfa, 0x66, 0x82, 0xaf, 0x47, 0xdb, 0x1f, 0xa0, 0xb1, 0xc3, 0x45, 0x92, 0xbd, 0x82, 0xb2, 0x42, - 0x92, 0xb6, 0xd5, 0x2a, 0x75, 0x6a, 0xbd, 0x53, 0xd7, 0xd8, 0x18, 0x85, 0xf3, 0x20, 0x42, 0x9f, - 0x82, 0xcf, 0xf1, 0x15, 0xa1, 0xe2, 0x7a, 0xa6, 0xbd, 0x80, 0xe3, 0x9d, 0x03, 0xd6, 0x04, 0xe0, - 0x48, 0x69, 0x94, 0x5c, 0xc4, 0x53, 0xd4, 0x52, 0x4b, 0xbc, 0xd0, 0x61, 0xa7, 0x70, 0xc0, 0x71, - 0xb2, 0xec, 0x7b, 0x5a, 0x68, 0x95, 0xe7, 0x15, 0x7b, 0x09, 0x4f, 0xb2, 0x7f, 0xc3, 0x48, 0x24, - 0x97, 0xb1, 0x9a, 0xf5, 0x3d, 0xbb, 0xd4, 0xb2, 0x3a, 0x15, 0xbe, 0xd3, 0x6d, 0xaf, 0xe0, 0xec, - 0x23, 0x26, 0x19, 0x15, 0x19, 0xed, 0xa3, 0x44, 0x24, 0x29, 0x65, 0x31, 0x35, 0x01, 0x52, 0x42, - 0xd5, 0xf7, 0x3e, 0x85, 0x94, 0x68, 0xfd, 0x55, 0x5e, 0xe8, 0x64, 0x31, 0xc6, 0x85, 0x18, 0x0d, - 0x7f, 0xb1, 0xc5, 0x1c, 0x78, 0x1c, 0xcb, 0x2b, 0xbd, 0xa1, 0xe9, 0xab, 0x7c, 0x53, 0xb7, 0x7f, - 0x97, 0xc1, 0xde, 0xcf, 0x4c, 0x92, 0xd9, 0x70, 0x88, 0x4a, 0x6d, 0x2c, 0x57, 0xf8, 0xba, 0xcc, - 0xfc, 0xa2, 0x52, 0x3e, 0x05, 0x6b, 0xbf, 0xa6, 0x62, 0x23, 0xa8, 0x53, 0x3a, 0x99, 0x20, 0x91, - 0x09, 0xc7, 0x2e, 0xe9, 0xbc, 0xdf, 0xe4, 0x79, 0xdf, 0xc5, 0xe4, 0x8e, 0x8a, 0x4b, 0x7c, 0x1b, - 0x83, 0x0d, 0xe1, 0xe8, 0x46, 0x84, 0x11, 0x4e, 0x73, 0xcc, 0xb2, 0xc6, 0x7c, 0x7d, 0x1f, 0xe6, - 0xa5, 0xde, 0xf1, 0x30, 0x11, 0x61, 0xc4, 0xb7, 0x10, 0x9c, 0x0b, 0xa8, 0xe7, 0x8c, 0xe6, 0x38, - 0x8b, 0x48, 0x46, 0x22, 0xb9, 0x89, 0xd5, 0x2c, 0x7f, 0x11, 0x37, 0x75, 0xe6, 0x95, 0x34, 0xea, - 0xda, 0xab, 0xa9, 0x9c, 0xaf, 0x70, 0x54, 0xa4, 0xc8, 0xe6, 0xd2, 0x62, 0xc8, 0x79, 0xf5, 0xf0, - 0x14, 0x9d, 0x5f, 0xd6, 0x46, 0x5f, 0x1e, 0xc1, 0x3f, 0x6c, 0x6b, 0x0b, 0xfb, 0x0e, 0x6d, 0x4c, - 0xc0, 0xc9, 0x54, 0xab, 0x1a, 0xe6, 0x2e, 0x4c, 0x2e, 0x0f, 0x7c, 0x1c, 0x79, 0x76, 0x7b, 0xa1, - 0x7a, 0x7f, 0x2c, 0x78, 0x66, 0x16, 0x7d, 0x24, 0x12, 0x01, 0xf2, 0x0c, 0x73, 0x84, 0x6a, 0x19, - 0x4e, 0x90, 0x9d, 0x43, 0x7d, 0xeb, 0x23, 0x64, 0x67, 0x39, 0xe7, 0xee, 0x35, 0xe0, 0xd8, 0xfb, - 0x0f, 0x48, 0xb2, 0x2f, 0x70, 0xb2, 0x4f, 0x21, 0x6b, 0xfe, 0x57, 0xfe, 0xc2, 0x79, 0x7e, 0x8f, - 0xbd, 0xf3, 0xc6, 0xb7, 0x63, 0xd7, 0x5c, 0x64, 0xef, 0xe5, 0xb5, 0x96, 0x7d, 0x7d, 0xa0, 0xef, - 0xa9, 0xb7, 0x7f, 0x03, 0x00, 0x00, 0xff, 0xff, 0x60, 0xd7, 0x1d, 0xf3, 0xe6, 0x04, 0x00, 0x00, +func init() { proto.RegisterFile("relay/relay.proto", fileDescriptor_relay_34094e5333f6005a) } + +var fileDescriptor_relay_34094e5333f6005a = []byte{ + // 554 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x94, 0x54, 0x5d, 0x8f, 0xd2, 0x40, + 0x14, 0x4d, 0x65, 0x3f, 0xdc, 0x0b, 0xb8, 0x32, 0xd9, 0xec, 0xd6, 0x3e, 0x20, 0xf6, 0xc1, 0x10, + 0xa3, 0x25, 0x41, 0xdf, 0x7c, 0x30, 0xd9, 0x25, 0x6b, 0x48, 0x6c, 0x20, 0x83, 0x46, 0xe3, 0x0b, + 0x99, 0x85, 0xbb, 0xdd, 0x66, 0x0b, 0x1d, 0xe6, 0xb6, 0x10, 0xff, 0x84, 0x3f, 0xc2, 0x3f, 0xa1, + 0x3f, 0xcf, 0x74, 0xa6, 0x60, 0x4b, 0x58, 0x37, 0xfb, 0x42, 0x38, 0x77, 0xee, 0x3d, 0xf7, 0x9c, + 0xd3, 0x76, 0xa0, 0xa1, 0x30, 0x12, 0x3f, 0x3a, 0xfa, 0xd7, 0x93, 0x2a, 0x4e, 0x62, 0xb6, 0xaf, + 0x81, 0xf3, 0x62, 0x20, 0x71, 0x3e, 0xee, 0xfb, 0x1d, 0x79, 0x1b, 0x74, 0xf4, 0x49, 0x87, 0xa6, + 0xb7, 0xe3, 0x15, 0x75, 0x56, 0x64, 0x3a, 0xdd, 0x9f, 0x16, 0x3c, 0x1d, 0xcc, 0xa3, 0x70, 0x8e, + 0xc3, 0x94, 0x6e, 0x7c, 0x0a, 0x38, 0x2e, 0x58, 0x0b, 0xaa, 0x03, 0x89, 0x4a, 0x24, 0x61, 0x3c, + 0xef, 0xf7, 0x6c, 0xab, 0x65, 0xb5, 0x8f, 0x78, 0xb1, 0xc4, 0xde, 0xc1, 0xe1, 0x8c, 0x82, 0x9e, + 0x48, 0x84, 0xfd, 0xa8, 0x65, 0xb5, 0xab, 0x5d, 0xc7, 0x23, 0x54, 0x4b, 0x54, 0x63, 0x21, 0xc3, + 0xb1, 0x14, 0x4a, 0xcc, 0xc8, 0xf3, 0x4d, 0x07, 0x5f, 0xb7, 0x32, 0x17, 0x6a, 0x32, 0xa5, 0x9b, + 0xcf, 0xf1, 0x17, 0x42, 0xd5, 0xef, 0xd9, 0x15, 0x4d, 0x5c, 0xaa, 0xb9, 0x1f, 0xa0, 0xb1, 0xa5, + 0x87, 0x24, 0x7b, 0x05, 0x7b, 0x0a, 0x49, 0xda, 0x56, 0xab, 0xd2, 0xae, 0x76, 0x4f, 0x3d, 0xe3, + 0x75, 0x14, 0xce, 0x83, 0x08, 0x7d, 0x0a, 0xcc, 0x30, 0xd7, 0x3d, 0xee, 0x02, 0x8e, 0xb7, 0x0e, + 0x58, 0x13, 0x80, 0x23, 0xa5, 0x51, 0x72, 0x11, 0x4f, 0x51, 0xdb, 0xa9, 0xf0, 0x42, 0x85, 0x9d, + 0xc2, 0x01, 0xc7, 0xc9, 0xb2, 0xdf, 0xd3, 0x66, 0x8e, 0x78, 0x8e, 0xd8, 0x4b, 0x78, 0x92, 0xfd, + 0x1b, 0x46, 0x22, 0xb9, 0x8c, 0xd5, 0x2c, 0x57, 0xbc, 0xcf, 0xb7, 0xaa, 0xee, 0x0a, 0xce, 0x3e, + 0x62, 0x92, 0xad, 0x22, 0xa3, 0x7d, 0x94, 0x88, 0x24, 0xa5, 0x2c, 0xca, 0x26, 0x40, 0xaa, 0x8d, + 0x7d, 0x0a, 0x29, 0xd1, 0xfa, 0x8f, 0x78, 0xa1, 0x92, 0x45, 0x1d, 0x17, 0xa2, 0x36, 0xfb, 0x8b, + 0x25, 0xe6, 0xc0, 0xe3, 0x58, 0x96, 0x02, 0xdb, 0x60, 0xf7, 0xf7, 0x1e, 0xd8, 0xbb, 0x37, 0x93, + 0x64, 0x36, 0x1c, 0xa2, 0x52, 0x1b, 0xcb, 0xfb, 0x7c, 0x0d, 0x33, 0xbf, 0xa8, 0x94, 0x4f, 0xc1, + 0xda, 0xaf, 0x41, 0x6c, 0x04, 0x75, 0x4a, 0x27, 0x13, 0x24, 0x32, 0xe1, 0xd8, 0x15, 0x9d, 0xf7, + 0x9b, 0x3c, 0xef, 0xbb, 0x36, 0x79, 0xa3, 0xe2, 0x10, 0x2f, 0x73, 0xb0, 0x21, 0xd4, 0xae, 0x45, + 0x18, 0xe1, 0x34, 0xe7, 0xdc, 0xd3, 0x9c, 0xaf, 0xef, 0xe3, 0xbc, 0xd4, 0x33, 0x3d, 0x4c, 0x44, + 0x18, 0xf1, 0x12, 0x83, 0x73, 0x01, 0xf5, 0x7c, 0xa3, 0x39, 0xce, 0x22, 0x92, 0x91, 0x48, 0xae, + 0x63, 0x35, 0xcb, 0x5f, 0xd6, 0x0d, 0xce, 0xbc, 0x92, 0x66, 0x5d, 0x7b, 0x35, 0xc8, 0xf9, 0x06, + 0xb5, 0xe2, 0x8a, 0xac, 0x2f, 0x2d, 0x86, 0x9c, 0xa3, 0x87, 0xa7, 0xe8, 0xfc, 0xb2, 0x36, 0xfa, + 0xf2, 0x08, 0xfe, 0x71, 0x5b, 0x25, 0xee, 0x3b, 0xb4, 0x31, 0x01, 0x27, 0x53, 0xad, 0x6a, 0x98, + 0xbb, 0x30, 0xb9, 0x3c, 0xf0, 0x71, 0xe4, 0xd9, 0xed, 0xa4, 0xea, 0xfe, 0xb1, 0xe0, 0x99, 0x19, + 0xf4, 0x91, 0x48, 0x04, 0xc8, 0x33, 0xce, 0x11, 0xaa, 0x65, 0x38, 0x41, 0x76, 0x0e, 0xf5, 0xd2, + 0x47, 0xc8, 0xce, 0xf2, 0x9d, 0xdb, 0x57, 0x85, 0x63, 0xef, 0x3e, 0x20, 0xc9, 0xbe, 0xc2, 0xc9, + 0x2e, 0x85, 0xac, 0xf9, 0x5f, 0xf9, 0x0b, 0xe7, 0xf9, 0x3d, 0xf6, 0xce, 0x1b, 0xdf, 0x8f, 0x3d, + 0x73, 0xdb, 0xbd, 0x97, 0x57, 0x5a, 0xf6, 0xd5, 0x81, 0xbe, 0xcc, 0xde, 0xfe, 0x0d, 0x00, 0x00, + 0xff, 0xff, 0x8e, 0xdc, 0xcc, 0x70, 0x0b, 0x05, 0x00, 0x00, } From ac09da9efc2d5e9117ef2f084dd98472793c066a Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Tue, 8 Feb 2022 17:12:47 +0800 Subject: [PATCH 573/814] push msg specify receiver --- pkg/proto/push/push.pb.go | 51 +++++++++++++++++++++++---------------- 1 file changed, 30 insertions(+), 21 deletions(-) diff --git a/pkg/proto/push/push.pb.go b/pkg/proto/push/push.pb.go index 0dc06210a..e9354ae69 100644 --- a/pkg/proto/push/push.pb.go +++ b/pkg/proto/push/push.pb.go @@ -27,6 +27,7 @@ const _ = proto.ProtoPackageIsVersion2 // please upgrade the proto package type PushMsgReq struct { OperationID string `protobuf:"bytes,1,opt,name=operationID" json:"operationID,omitempty"` MsgData *sdk_ws.MsgData `protobuf:"bytes,2,opt,name=msgData" json:"msgData,omitempty"` + PushToUserID string `protobuf:"bytes,3,opt,name=pushToUserID" json:"pushToUserID,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -36,7 +37,7 @@ func (m *PushMsgReq) Reset() { *m = PushMsgReq{} } func (m *PushMsgReq) String() string { return proto.CompactTextString(m) } func (*PushMsgReq) ProtoMessage() {} func (*PushMsgReq) Descriptor() ([]byte, []int) { - return fileDescriptor_push_3a8dbda4109fac8a, []int{0} + return fileDescriptor_push_76409d0b017416ef, []int{0} } func (m *PushMsgReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_PushMsgReq.Unmarshal(m, b) @@ -70,6 +71,13 @@ func (m *PushMsgReq) GetMsgData() *sdk_ws.MsgData { return nil } +func (m *PushMsgReq) GetPushToUserID() string { + if m != nil { + return m.PushToUserID + } + return "" +} + type PushMsgResp struct { ResultCode int32 `protobuf:"varint,1,opt,name=ResultCode" json:"ResultCode,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` @@ -81,7 +89,7 @@ func (m *PushMsgResp) Reset() { *m = PushMsgResp{} } func (m *PushMsgResp) String() string { return proto.CompactTextString(m) } func (*PushMsgResp) ProtoMessage() {} func (*PushMsgResp) Descriptor() ([]byte, []int) { - return fileDescriptor_push_3a8dbda4109fac8a, []int{1} + return fileDescriptor_push_76409d0b017416ef, []int{1} } func (m *PushMsgResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_PushMsgResp.Unmarshal(m, b) @@ -185,23 +193,24 @@ var _PushMsgService_serviceDesc = grpc.ServiceDesc{ Metadata: "push/push.proto", } -func init() { proto.RegisterFile("push/push.proto", fileDescriptor_push_3a8dbda4109fac8a) } - -var fileDescriptor_push_3a8dbda4109fac8a = []byte{ - // 229 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x5c, 0x90, 0x31, 0x4f, 0xc3, 0x30, - 0x10, 0x85, 0x15, 0x04, 0x54, 0x5c, 0x04, 0x05, 0x4f, 0x55, 0x06, 0x14, 0x3a, 0x75, 0xc1, 0x96, - 0x0a, 0x1b, 0x0b, 0x82, 0x2e, 0x1d, 0x22, 0x90, 0xd9, 0x58, 0x2c, 0x97, 0x9c, 0xd2, 0xa8, 0xb4, - 0x3e, 0x7c, 0x4e, 0xfb, 0xf7, 0x51, 0x9c, 0x00, 0x11, 0x8b, 0x65, 0x7d, 0xf7, 0x49, 0xef, 0xde, - 0xc1, 0x98, 0x1a, 0x5e, 0xab, 0xf6, 0x91, 0xe4, 0x5d, 0x70, 0xe2, 0xb8, 0xfd, 0x67, 0x37, 0x2f, - 0x84, 0x3b, 0xb3, 0x2c, 0x14, 0x6d, 0x2a, 0x15, 0x07, 0x8a, 0xcb, 0x8d, 0x39, 0xb0, 0x3a, 0x70, - 0x27, 0x4e, 0x4b, 0x80, 0xd7, 0x86, 0xd7, 0x05, 0x57, 0x1a, 0xbf, 0x44, 0x0e, 0xa9, 0x23, 0xf4, - 0x36, 0xd4, 0x6e, 0xb7, 0x5c, 0x4c, 0x92, 0x3c, 0x99, 0x9d, 0xe9, 0x21, 0x12, 0xf7, 0x30, 0xda, - 0x72, 0xb5, 0xb0, 0xc1, 0x4e, 0x8e, 0xf2, 0x64, 0x96, 0xce, 0x33, 0xc9, 0xe8, 0xf7, 0xe8, 0x8d, - 0xa5, 0xda, 0x90, 0xf5, 0x76, 0xcb, 0xb2, 0xe8, 0x0c, 0xfd, 0xa3, 0x4e, 0x6f, 0x21, 0xfd, 0x4d, - 0x61, 0x12, 0xd7, 0x00, 0x1a, 0xb9, 0xf9, 0x0c, 0xcf, 0xae, 0xc4, 0x98, 0x72, 0xa2, 0x07, 0x64, - 0xfe, 0x08, 0x17, 0xbd, 0xfe, 0x86, 0x7e, 0x5f, 0x7f, 0xa0, 0x90, 0x30, 0xea, 0x89, 0xb8, 0x94, - 0xb1, 0xe7, 0xdf, 0xd6, 0xd9, 0xd5, 0x3f, 0xc2, 0xf4, 0x34, 0x7e, 0x3f, 0x97, 0xf1, 0x1e, 0x0f, - 0xb4, 0x6a, 0xf9, 0xea, 0x34, 0xd6, 0xbd, 0xfb, 0x0e, 0x00, 0x00, 0xff, 0xff, 0xa1, 0x97, 0x1e, - 0x77, 0x2a, 0x01, 0x00, 0x00, +func init() { proto.RegisterFile("push/push.proto", fileDescriptor_push_76409d0b017416ef) } + +var fileDescriptor_push_76409d0b017416ef = []byte{ + // 249 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0x5c, 0x90, 0x3d, 0x4f, 0xc3, 0x30, + 0x10, 0x86, 0x15, 0xbe, 0x2a, 0x2e, 0x40, 0xc1, 0x53, 0x94, 0x01, 0x85, 0x4c, 0x5d, 0xb0, 0xa5, + 0xc2, 0xc6, 0x82, 0x20, 0x4b, 0x86, 0x08, 0x64, 0x60, 0x61, 0x89, 0x5c, 0x7a, 0x4a, 0xa3, 0xd2, + 0xfa, 0xf0, 0x25, 0xed, 0x5f, 0xe0, 0x67, 0xa3, 0xb8, 0x05, 0x02, 0x8b, 0x65, 0x3d, 0xf7, 0xe8, + 0xf4, 0xde, 0x0b, 0x43, 0x6a, 0x79, 0xa6, 0xba, 0x47, 0x92, 0xb3, 0x8d, 0x15, 0x7b, 0xdd, 0x3f, + 0xbe, 0x78, 0x20, 0x5c, 0x96, 0x79, 0xa1, 0x68, 0x5e, 0x29, 0x3f, 0x50, 0x3c, 0x9d, 0x97, 0x6b, + 0x56, 0x6b, 0xde, 0x88, 0xe9, 0x67, 0x00, 0xf0, 0xd8, 0xf2, 0xac, 0xe0, 0x4a, 0xe3, 0x87, 0x48, + 0x20, 0xb4, 0x84, 0xce, 0x34, 0xb5, 0x5d, 0xe6, 0x59, 0x14, 0x24, 0xc1, 0xe8, 0x50, 0xf7, 0x91, + 0xb8, 0x86, 0xc1, 0x82, 0xab, 0xcc, 0x34, 0x26, 0xda, 0x49, 0x82, 0x51, 0x38, 0x8e, 0x25, 0xa3, + 0x5b, 0xa1, 0x2b, 0x0d, 0xd5, 0x25, 0x19, 0x67, 0x16, 0x2c, 0x8b, 0x8d, 0xa1, 0xbf, 0x55, 0x91, + 0xc2, 0x51, 0x97, 0xe8, 0xd9, 0xbe, 0x30, 0xba, 0x3c, 0x8b, 0x76, 0xfd, 0xe2, 0x3f, 0x2c, 0xbd, + 0x84, 0xf0, 0x27, 0x09, 0x93, 0x38, 0x07, 0xd0, 0xc8, 0xed, 0x7b, 0x73, 0x6f, 0xa7, 0xe8, 0x93, + 0xec, 0xeb, 0x1e, 0x19, 0xdf, 0xc2, 0xc9, 0x56, 0x7f, 0x42, 0xb7, 0xaa, 0xdf, 0x50, 0x48, 0x18, + 0x6c, 0x89, 0x38, 0x95, 0xbe, 0x8c, 0xdf, 0xcb, 0xe2, 0xb3, 0x7f, 0x84, 0xe9, 0x6e, 0xf8, 0x7a, + 0x2c, 0x7d, 0x69, 0x37, 0x34, 0xe9, 0xf8, 0xe4, 0xc0, 0x77, 0x72, 0xf5, 0x15, 0x00, 0x00, 0xff, + 0xff, 0xbe, 0xb7, 0x7c, 0x1c, 0x4f, 0x01, 0x00, 0x00, } From e157bc195b5d6fd6190ddbb1e5c09b42c3e5e0c1 Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Tue, 8 Feb 2022 17:34:53 +0800 Subject: [PATCH 574/814] push msg specify receiver --- pkg/common/utils/utils.go | 3 +++ 1 file changed, 3 insertions(+) diff --git a/pkg/common/utils/utils.go b/pkg/common/utils/utils.go index 2fbcf1930..db9db5461 100644 --- a/pkg/common/utils/utils.go +++ b/pkg/common/utils/utils.go @@ -29,6 +29,9 @@ func FriendDBCopyOpenIM(dst *open_im_sdk.FriendInfo, src *db.Friend) error { } utils.CopyStructFields(dst.FriendUser, user) dst.CreateTime = uint32(src.CreateTime.Unix()) + if dst.FriendUser == nil { + dst.FriendUser = &open_im_sdk.UserInfo{} + } dst.FriendUser.CreateTime = uint32(user.CreateTime.Unix()) return nil } From 95153a66096558dec8f1ec6f319f70ee14fec481 Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Tue, 8 Feb 2022 18:06:35 +0800 Subject: [PATCH 575/814] push msg specify receiver --- internal/rpc/msg/send_msg.go | 50 ++++++++++++++++++++++++++++++++++++ 1 file changed, 50 insertions(+) diff --git a/internal/rpc/msg/send_msg.go b/internal/rpc/msg/send_msg.go index 2a9b2ae00..184f48697 100644 --- a/internal/rpc/msg/send_msg.go +++ b/internal/rpc/msg/send_msg.go @@ -348,6 +348,55 @@ func Notification(n *NotificationMsg) { ex = config.Config.Notification.FriendApplication.OfflinePush.Ext reliabilityLevel = config.Config.Notification.FriendApplication.Conversation.ReliabilityLevel unReadCount = config.Config.Notification.FriendApplication.Conversation.UnreadCount + case constant.FriendApplicationApprovedNotification: + pushSwitch = config.Config.Notification.FriendApplicationApproved.OfflinePush.PushSwitch + title = config.Config.Notification.FriendApplicationApproved.OfflinePush.Title + desc = config.Config.Notification.FriendApplicationApproved.OfflinePush.Desc + ex = config.Config.Notification.FriendApplicationApproved.OfflinePush.Ext + reliabilityLevel = config.Config.Notification.FriendApplicationApproved.Conversation.ReliabilityLevel + unReadCount = config.Config.Notification.FriendApplicationApproved.Conversation.UnreadCount + case constant.FriendApplicationRejectedNotification: + pushSwitch = config.Config.Notification.FriendApplicationRejected.OfflinePush.PushSwitch + title = config.Config.Notification.FriendApplicationRejected.OfflinePush.Title + desc = config.Config.Notification.FriendApplicationRejected.OfflinePush.Desc + ex = config.Config.Notification.FriendApplicationRejected.OfflinePush.Ext + reliabilityLevel = config.Config.Notification.FriendApplicationRejected.Conversation.ReliabilityLevel + unReadCount = config.Config.Notification.FriendApplicationRejected.Conversation.UnreadCount + case constant.FriendAddedNotification: + pushSwitch = config.Config.Notification.FriendAdded.OfflinePush.PushSwitch + title = config.Config.Notification.FriendAdded.OfflinePush.Title + desc = config.Config.Notification.FriendAdded.OfflinePush.Desc + ex = config.Config.Notification.FriendAdded.OfflinePush.Ext + reliabilityLevel = config.Config.Notification.FriendAdded.Conversation.ReliabilityLevel + unReadCount = config.Config.Notification.FriendAdded.Conversation.UnreadCount + case constant.FriendDeletedNotification: + pushSwitch = config.Config.Notification.FriendDeleted.OfflinePush.PushSwitch + title = config.Config.Notification.FriendDeleted.OfflinePush.Title + desc = config.Config.Notification.FriendDeleted.OfflinePush.Desc + ex = config.Config.Notification.FriendDeleted.OfflinePush.Ext + reliabilityLevel = config.Config.Notification.FriendDeleted.Conversation.ReliabilityLevel + unReadCount = config.Config.Notification.FriendDeleted.Conversation.UnreadCount + case constant.FriendRemarkSetNotification: + pushSwitch = config.Config.Notification.FriendRemarkSet.OfflinePush.PushSwitch + title = config.Config.Notification.FriendRemarkSet.OfflinePush.Title + desc = config.Config.Notification.FriendRemarkSet.OfflinePush.Desc + ex = config.Config.Notification.FriendRemarkSet.OfflinePush.Ext + reliabilityLevel = config.Config.Notification.FriendRemarkSet.Conversation.ReliabilityLevel + unReadCount = config.Config.Notification.FriendRemarkSet.Conversation.UnreadCount + case constant.BlackAddedNotification: + pushSwitch = config.Config.Notification.BlackAdded.OfflinePush.PushSwitch + title = config.Config.Notification.BlackAdded.OfflinePush.Title + desc = config.Config.Notification.BlackAdded.OfflinePush.Desc + ex = config.Config.Notification.BlackAdded.OfflinePush.Ext + reliabilityLevel = config.Config.Notification.BlackAdded.Conversation.ReliabilityLevel + unReadCount = config.Config.Notification.BlackAdded.Conversation.UnreadCount + case constant.BlackDeletedNotification: + pushSwitch = config.Config.Notification.BlackDeleted.OfflinePush.PushSwitch + title = config.Config.Notification.BlackDeleted.OfflinePush.Title + desc = config.Config.Notification.BlackDeleted.OfflinePush.Desc + ex = config.Config.Notification.BlackDeleted.OfflinePush.Ext + reliabilityLevel = config.Config.Notification.BlackDeleted.Conversation.ReliabilityLevel + unReadCount = config.Config.Notification.BlackDeleted.Conversation.UnreadCount } switch reliabilityLevel { @@ -358,6 +407,7 @@ func Notification(n *NotificationMsg) { case constant.ReliableNotificationNoMsg: utils.SetSwitchFromOptions(msg.Options, constant.IsConversationUpdate, false) case constant.ReliableNotificationMsg: + } utils.SetSwitchFromOptions(msg.Options, constant.IsUnreadCount, unReadCount) utils.SetSwitchFromOptions(msg.Options, constant.IsOfflinePush, pushSwitch) From c202cee81ff90ffce3f1ed98b8d91a813937fa09 Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Tue, 8 Feb 2022 18:34:23 +0800 Subject: [PATCH 576/814] Refactor code --- internal/rpc/msg/group_notification.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/internal/rpc/msg/group_notification.go b/internal/rpc/msg/group_notification.go index 511886ffa..b87b7aea1 100644 --- a/internal/rpc/msg/group_notification.go +++ b/internal/rpc/msg/group_notification.go @@ -108,7 +108,7 @@ func groupNotification(contentType int32, m proto.Message, sendID, groupID, recv log.Error(operationID, "GetUserByUserID failed ", err.Error()) } toNickname := "" - if from != nil { + if to != nil { toNickname = to.Nickname } From d0dbffebe1bbe72e23127ccf5d91e43bac00977b Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Tue, 8 Feb 2022 18:40:15 +0800 Subject: [PATCH 577/814] Refactor code --- internal/rpc/msg/group_notification.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/internal/rpc/msg/group_notification.go b/internal/rpc/msg/group_notification.go index b87b7aea1..142e938e3 100644 --- a/internal/rpc/msg/group_notification.go +++ b/internal/rpc/msg/group_notification.go @@ -96,7 +96,7 @@ func groupNotification(contentType int32, m proto.Message, sendID, groupID, recv from, err := imdb.GetUserByUserID(sendID) if err != nil { - log.Error(operationID, "GetUserByUserID failed ", err.Error()) + log.Error(operationID, "GetUserByUserID failed ", err.Error(), sendID) } nickname := "" if from != nil { @@ -105,7 +105,7 @@ func groupNotification(contentType int32, m proto.Message, sendID, groupID, recv to, err := imdb.GetUserByUserID(recvUserID) if err != nil { - log.Error(operationID, "GetUserByUserID failed ", err.Error()) + log.Error(operationID, "GetUserByUserID failed ", err.Error(), recvUserID) } toNickname := "" if to != nil { From 1e5245efd0b5c874657e2d6a40b5e611dff1715d Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Tue, 8 Feb 2022 19:10:06 +0800 Subject: [PATCH 578/814] Refactor code --- config/config.yaml | 1 - 1 file changed, 1 deletion(-) diff --git a/config/config.yaml b/config/config.yaml index 62ded8e46..43912a36a 100644 --- a/config/config.yaml +++ b/config/config.yaml @@ -176,7 +176,6 @@ iOSPush: badgeCount: true notification: - groupCreated: conversation: reliabilityLevel: 3 From 03a010406fa0c6769ba47aa9a43d7da00e1e700c Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Tue, 8 Feb 2022 19:18:07 +0800 Subject: [PATCH 579/814] Refactor code --- config/config.yaml | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/config/config.yaml b/config/config.yaml index 43912a36a..718a1eed4 100644 --- a/config/config.yaml +++ b/config/config.yaml @@ -161,15 +161,15 @@ messagecallback: callbackUrl: "http://www.xxx.com/msg/judge" #TimeOut use second as unit callbackTimeOut: 10 - c2c: - callbackBeforeSendMsg: - switch: false - timeoutStrategy: 1 #1:send - callbackAfterSendMsg: - switch: false - state: - stateChange: - switch: false +# c2c: +# callbackBeforeSendMsg: +# switch: false +# timeoutStrategy: 1 #1:send +# callbackAfterSendMsg: +# switch: false +# state: +# stateChange: +# switch: false iOSPush: pushSound: "xxx" From fa2b691dc150e51b67023ff79201cd3ba8aea967 Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Tue, 8 Feb 2022 19:22:15 +0800 Subject: [PATCH 580/814] Refactor code --- config/config.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config/config.yaml b/config/config.yaml index 718a1eed4..04f14f854 100644 --- a/config/config.yaml +++ b/config/config.yaml @@ -171,7 +171,7 @@ messagecallback: # stateChange: # switch: false -iOSPush: +iospush: pushSound: "xxx" badgeCount: true From 27262436d12a0bc3a075619e1294f2e17d500f03 Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Tue, 8 Feb 2022 19:28:46 +0800 Subject: [PATCH 581/814] Refactor code --- pkg/common/config/config.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkg/common/config/config.go b/pkg/common/config/config.go index 2e6870557..b3681b8fe 100644 --- a/pkg/common/config/config.go +++ b/pkg/common/config/config.go @@ -169,7 +169,7 @@ type config struct { Conversation PConversation `yaml:"conversation"` OfflinePush POfflinePush `yaml:"offlinePush"` DefaultTips PDefaultTips `yaml:"defaultTips"` - } + } `yaml:"groupCreated"` GroupInfoSet struct { Conversation PConversation `yaml:"conversation"` From a549f86624bc1d3ad8728176fd419911edb4108c Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Tue, 8 Feb 2022 19:33:37 +0800 Subject: [PATCH 582/814] Refactor code --- pkg/common/config/config.go | 36 ++++++++++++++++++------------------ 1 file changed, 18 insertions(+), 18 deletions(-) diff --git a/pkg/common/config/config.go b/pkg/common/config/config.go index b3681b8fe..8b9c4602d 100644 --- a/pkg/common/config/config.go +++ b/pkg/common/config/config.go @@ -175,106 +175,106 @@ type config struct { Conversation PConversation `yaml:"conversation"` OfflinePush POfflinePush `yaml:"offlinePush"` DefaultTips PDefaultTips `yaml:"defaultTips"` - } + } `yaml:"groupInfoSet"` JoinGroupApplication struct { Conversation PConversation `yaml:"conversation"` OfflinePush POfflinePush `yaml:"offlinePush"` DefaultTips PDefaultTips `yaml:"defaultTips"` - } + } `yaml:"joinGroupApplication"` MemberQuit struct { Conversation PConversation `yaml:"conversation"` OfflinePush POfflinePush `yaml:"offlinePush"` DefaultTips PDefaultTips `yaml:"defaultTips"` - } + } `yaml:"memberQuit"` GroupApplicationAccepted struct { Conversation PConversation `yaml:"conversation"` OfflinePush POfflinePush `yaml:"offlinePush"` DefaultTips PDefaultTips `yaml:"defaultTips"` - } + } `yaml:"groupApplicationAccepted"` GroupApplicationRejected struct { Conversation PConversation `yaml:"conversation"` OfflinePush POfflinePush `yaml:"offlinePush"` DefaultTips PDefaultTips `yaml:"defaultTips"` - } + } `yaml:"groupApplicationRejected"` GroupOwnerTransferred struct { Conversation PConversation `yaml:"conversation"` OfflinePush POfflinePush `yaml:"offlinePush"` DefaultTips PDefaultTips `yaml:"defaultTips"` - } + } `yaml:"groupOwnerTransferred"` MemberKicked struct { Conversation PConversation `yaml:"conversation"` OfflinePush POfflinePush `yaml:"offlinePush"` DefaultTips PDefaultTips `yaml:"defaultTips"` - } + } `yaml:"memberKicked"` MemberInvited struct { Conversation PConversation `yaml:"conversation"` OfflinePush POfflinePush `yaml:"offlinePush"` DefaultTips PDefaultTips `yaml:"defaultTips"` - } + } `yaml:"memberInvited"` MemberEnter struct { Conversation PConversation `yaml:"conversation"` OfflinePush POfflinePush `yaml:"offlinePush"` DefaultTips PDefaultTips `yaml:"defaultTips"` - } + } `yaml:"memberEnter"` ////////////////////////user/////////////////////// UserInfoUpdated struct { Conversation PConversation `yaml:"conversation"` OfflinePush POfflinePush `yaml:"offlinePush"` DefaultTips PDefaultTips `yaml:"defaultTips"` - } + } `yaml:"userInfoUpdated"` //////////////////////friend/////////////////////// FriendApplication struct { Conversation PConversation `yaml:"conversation"` OfflinePush POfflinePush `yaml:"offlinePush"` DefaultTips PDefaultTips `yaml:"defaultTips"` - } + } `yaml:"friendApplicationAdded"` FriendApplicationApproved struct { Conversation PConversation `yaml:"conversation"` OfflinePush POfflinePush `yaml:"offlinePush"` DefaultTips PDefaultTips `yaml:"defaultTips"` - } + } `yaml:"friendApplicationApproved"` FriendApplicationRejected struct { Conversation PConversation `yaml:"conversation"` OfflinePush POfflinePush `yaml:"offlinePush"` DefaultTips PDefaultTips `yaml:"defaultTips"` - } + } `yaml:"friendApplicationRejected"` FriendAdded struct { Conversation PConversation `yaml:"conversation"` OfflinePush POfflinePush `yaml:"offlinePush"` DefaultTips PDefaultTips `yaml:"defaultTips"` - } + } `yaml:"friendAdded"` FriendDeleted struct { Conversation PConversation `yaml:"conversation"` OfflinePush POfflinePush `yaml:"offlinePush"` DefaultTips PDefaultTips `yaml:"defaultTips"` - } + } `yaml:"friendDeleted"` FriendRemarkSet struct { Conversation PConversation `yaml:"conversation"` OfflinePush POfflinePush `yaml:"offlinePush"` DefaultTips PDefaultTips `yaml:"defaultTips"` - } + } `yaml:"friendRemarkSet"` BlackAdded struct { Conversation PConversation `yaml:"conversation"` OfflinePush POfflinePush `yaml:"offlinePush"` DefaultTips PDefaultTips `yaml:"defaultTips"` - } + } `yaml:"blackAdded"` BlackDeleted struct { Conversation PConversation `yaml:"conversation"` OfflinePush POfflinePush `yaml:"offlinePush"` DefaultTips PDefaultTips `yaml:"defaultTips"` - } + } `yaml:"blackDeleted"` } Demo struct { Port []int `yaml:"openImDemoPort"` From 163da78bc6d745549b67df3d93f38678a04967e8 Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Tue, 8 Feb 2022 20:22:07 +0800 Subject: [PATCH 583/814] Refactor code --- internal/rpc/friend/firend.go | 5 +++-- .../mysql_model/im_mysql_model/friend_request_model.go | 9 ++++++--- 2 files changed, 9 insertions(+), 5 deletions(-) diff --git a/internal/rpc/friend/firend.go b/internal/rpc/friend/firend.go index 578118dfc..ebd86cb05 100644 --- a/internal/rpc/friend/firend.go +++ b/internal/rpc/friend/firend.go @@ -101,11 +101,12 @@ func (s *friendServer) AddFriend(ctx context.Context, req *pbFriend.AddFriendReq } //Establish a latest relationship in the friend request table - friendRequest := db.FriendRequest{ReqMsg: req.ReqMsg} + friendRequest := db.FriendRequest{ReqMsg: req.ReqMsg, HandleResult: 0} utils.CopyStructFields(&friendRequest, req.CommID) // {openIM001 openIM002 0 test add friend 0001-01-01 00:00:00 +0000 UTC 0001-01-01 00:00:00 +0000 UTC }] log.NewDebug(req.CommID.OperationID, "UpdateFriendApplication args ", friendRequest) - err := imdb.InsertFriendApplication(&friendRequest) + //err := imdb.InsertFriendApplication(&friendRequest) + err := imdb.InsertFriendApplication(&friendRequest, map[string]interface{}{"handle_result": 0}) if err != nil { log.NewError(req.CommID.OperationID, "UpdateFriendApplication failed ", err.Error(), friendRequest) return &pbFriend.AddFriendResp{CommonResp: &pbFriend.CommonResp{ErrCode: constant.ErrDB.ErrCode, ErrMsg: constant.ErrDB.ErrMsg}}, nil diff --git a/pkg/common/db/mysql_model/im_mysql_model/friend_request_model.go b/pkg/common/db/mysql_model/im_mysql_model/friend_request_model.go index 0aeb2967e..773d6f685 100644 --- a/pkg/common/db/mysql_model/im_mysql_model/friend_request_model.go +++ b/pkg/common/db/mysql_model/im_mysql_model/friend_request_model.go @@ -71,15 +71,18 @@ func UpdateFriendApplication(friendRequest *db.FriendRequest) error { friendRequest.FromUserID, friendRequest.ToUserID).Update(&friendRequest).Error } -func InsertFriendApplication(friendRequest *db.FriendRequest) error { +func InsertFriendApplication(friendRequest *db.FriendRequest, args map[string]interface{}) error { dbConn, err := db.DB.MysqlDB.DefaultGormDB() if err != nil { return err } friendRequest.CreateTime = time.Now() - u := dbConn.Table("friend_requests").Where("from_user_id=? and to_user_id=?", - friendRequest.FromUserID, friendRequest.ToUserID).Update(&friendRequest) + u := dbConn.Model(&friendRequest).Updates(args) + //u := dbConn.Table("friend_requests").Where("from_user_id=? and to_user_id=?", + // friendRequest.FromUserID, friendRequest.ToUserID).Update(&friendRequest) + //u := dbConn.Table("friend_requests").Where("from_user_id=? and to_user_id=?", + // friendRequest.FromUserID, friendRequest.ToUserID).Update(&friendRequest) if u.RowsAffected != 0 { return nil } From 02aad295f90021dbc5d59ab05eb534d168047ef3 Mon Sep 17 00:00:00 2001 From: wangchuxiao Date: Tue, 8 Feb 2022 20:24:59 +0800 Subject: [PATCH 584/814] group --- config/config.yaml | 4 +- internal/cms_api/group/group.go | 91 +- internal/cms_api/router.go | 12 +- internal/cms_api/user/user.go | 42 +- internal/rpc/group/group.go | 43 +- internal/rpc/statistics/statistics.go | 191 +++-- internal/rpc/user/user.go | 60 +- pkg/cms_api_struct/group.go | 25 +- pkg/cms_api_struct/user.go | 13 + .../im_mysql_model/group_member_model.go | 18 +- .../mysql_model/im_mysql_model/group_model.go | 10 +- .../mysql_model/im_mysql_model/user_model.go | 28 +- pkg/proto/group/group.pb.go | 722 ++++++++++------ pkg/proto/group/group.proto | 23 +- pkg/proto/user/user.pb.go | 804 +++++++++++------- pkg/proto/user/user.proto | 22 +- 16 files changed, 1399 insertions(+), 709 deletions(-) diff --git a/config/config.yaml b/config/config.yaml index 710421fb2..14aa68120 100644 --- a/config/config.yaml +++ b/config/config.yaml @@ -148,8 +148,8 @@ push: pushUrl: "https://api.jpush.cn/v3/push" pushIntent: "intent:#Intent;component=io.openim.app.enterprisechat/io.openim.app.enterprisechat.MainActivity;end" manager: - appManagerUid: [ "openIM123456","openIM654321" ] - secrets: [ "openIM1","openIM2" ] + appManagerUid: [ "openIM123456","openIM654321", "openIM333" ] + secrets: [ "openIM1","openIM2", "openIM333" ] secret: tuoyun diff --git a/internal/cms_api/group/group.go b/internal/cms_api/group/group.go index 8ad28d101..41a43031d 100644 --- a/internal/cms_api/group/group.go +++ b/internal/cms_api/group/group.go @@ -10,7 +10,6 @@ import ( commonPb "Open_IM/pkg/proto/sdk_ws" "Open_IM/pkg/utils" "context" - "fmt" "strings" pbGroup "Open_IM/pkg/proto/group" @@ -25,7 +24,7 @@ func GetGroupById(c *gin.Context) { reqPb pbGroup.GetGroupByIdReq ) if err := c.ShouldBindQuery(&req); err != nil { - log.NewError(reqPb.OperationID, "ShouldBindQuery failed ", err.Error()) + log.NewError(reqPb.OperationID, utils.GetSelfFuncName(), "ShouldBindQuery failed ", err.Error()) openIMHttp.RespHttp200(c, constant.ErrArgs, nil) return } @@ -34,7 +33,7 @@ func GetGroupById(c *gin.Context) { client := pbGroup.NewGroupClient(etcdConn) respPb, err := client.GetGroupById(context.Background(), &reqPb) if err != nil { - log.NewError(reqPb.OperationID, utils.GetSelfFuncName(), "GetGroupById failed ", err.Error()) + log.NewError(reqPb.OperationID, utils.GetSelfFuncName(), "GetGroupById failed ", err.Error()) openIMHttp.RespHttp200(c, constant.ErrServer, nil) return } @@ -64,7 +63,7 @@ func GetGroups(c *gin.Context) { client := pbGroup.NewGroupClient(etcdConn) respPb, err := client.GetGroups(context.Background(), &reqPb) if err != nil { - log.NewError(reqPb.OperationID, "GetUserInfo failed ", err.Error()) + log.NewError(reqPb.OperationID, utils.GetSelfFuncName(), "GetUserInfo failed ", err.Error()) openIMHttp.RespHttp200(c, constant.ErrServer, nil) return } @@ -93,19 +92,18 @@ func GetGroupByName(c *gin.Context) { reqPb pbGroup.GetGroupReq ) if err := c.ShouldBindQuery(&req); err != nil { - log.NewError("0", "ShouldBindQuery failed ", err.Error()) + log.NewError(reqPb.OperationID, utils.GetSelfFuncName(), "ShouldBindQuery failed ", err.Error()) openIMHttp.RespHttp200(c, constant.ErrArgs, nil) return } reqPb.GroupName = req.GroupName reqPb.Pagination = &commonPb.RequestPagination{} utils.CopyStructFields(&reqPb.Pagination, req) - fmt.Println(reqPb) etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImGroupName) client := pbGroup.NewGroupClient(etcdConn) respPb, err := client.GetGroup(context.Background(), &reqPb) if err != nil { - log.NewError("s", "GetUserInfo failed ", err.Error()) + log.NewError(reqPb.OperationID, utils.GetSelfFuncName(), "GetGroup failed", err.Error()) openIMHttp.RespHttp200(c, constant.ErrServer, nil) return } @@ -123,13 +121,14 @@ func GetGroupByName(c *gin.Context) { } resp.CurrentPage = int(respPb.Pagination.PageNumber) resp.ShowNumber = int(respPb.Pagination.ShowNumber) + resp.GroupNums = int(respPb.GroupNums) openIMHttp.RespHttp200(c, constant.OK, resp) } func CreateGroup(c *gin.Context) { var ( req cms_api_struct.CreateGroupRequest - resp cms_api_struct.CreateGroupResponse + _ cms_api_struct.CreateGroupResponse reqPb pbGroup.CreateGroupReq ) if err := c.BindJSON(&req); err != nil { @@ -140,6 +139,8 @@ func CreateGroup(c *gin.Context) { reqPb.GroupInfo = &commonPb.GroupInfo{} reqPb.GroupInfo.GroupName = req.GroupName reqPb.GroupInfo.CreatorUserID = req.GroupMasterId + reqPb.OwnerUserID = req.GroupMasterId + reqPb.OpUserID = req.GroupMasterId for _, v := range req.GroupMembers { reqPb.InitMemberList = append(reqPb.InitMemberList, &pbGroup.GroupAddMemberInfo{ UserID: v, @@ -150,11 +151,11 @@ func CreateGroup(c *gin.Context) { client := pbGroup.NewGroupClient(etcdConn) _, err := client.CreateGroup(context.Background(), &reqPb) if err != nil { - log.NewError(reqPb.OperationID, "GetUserInfo failed ", err.Error()) + log.NewError(reqPb.OperationID, utils.GetSelfFuncName(), "CreateGroup failed", err.Error()) openIMHttp.RespHttp200(c, constant.ErrServer, nil) return } - openIMHttp.RespHttp200(c, constant.OK, resp) + openIMHttp.RespHttp200(c, constant.OK, nil) } func BanGroupChat(c *gin.Context) { @@ -163,7 +164,7 @@ func BanGroupChat(c *gin.Context) { reqPb pbGroup.OperateGroupStatusReq ) if err := c.BindJSON(&req); err != nil { - log.NewError(reqPb.OperationID, "ShouldBindQuery failed ", err.Error()) + log.NewError(reqPb.OperationID, utils.GetSelfFuncName(), "BindJSON failed", err.Error()) openIMHttp.RespHttp200(c, constant.ErrArgs, nil) return } @@ -173,7 +174,7 @@ func BanGroupChat(c *gin.Context) { client := pbGroup.NewGroupClient(etcdConn) _, err := client.OperateGroupStatus(context.Background(), &reqPb) if err != nil { - log.NewError(reqPb.OperationID, "GetUserInfo failed ", err.Error()) + log.NewError(reqPb.OperationID, utils.GetSelfFuncName(), "BanGroupChat failed ", err.Error()) openIMHttp.RespHttp200(c, constant.ErrServer, nil) return } @@ -187,7 +188,7 @@ func BanPrivateChat(c *gin.Context) { reqPb pbGroup.OperateGroupStatusReq ) if err := c.BindJSON(&req); err != nil { - log.NewError("0", "BindJSON failed ", err.Error()) + log.NewError(reqPb.OperationID, utils.GetSelfFuncName(), "BindJSON failed ", err.Error()) openIMHttp.RespHttp200(c, constant.ErrArgs, nil) return } @@ -197,7 +198,7 @@ func BanPrivateChat(c *gin.Context) { client := pbGroup.NewGroupClient(etcdConn) _, err := client.OperateGroupStatus(context.Background(), &reqPb) if err != nil { - log.NewError("s", "GetUserInfo failed ", err.Error()) + log.NewError(reqPb.OperationID, utils.GetSelfFuncName(), "OperateGroupStatus failed", err.Error()) openIMHttp.RespHttp200(c, constant.ErrServer, nil) return } @@ -210,7 +211,7 @@ func OpenGroupChat(c *gin.Context) { reqPb pbGroup.OperateGroupStatusReq ) if err := c.BindJSON(&req); err != nil { - log.NewError("0", "BindJSON failed ", err.Error()) + log.NewError(reqPb.OperationID, utils.GetSelfFuncName(), "BindJSON failed ", err.Error()) openIMHttp.RespHttp200(c, constant.ErrArgs, nil) return } @@ -220,7 +221,7 @@ func OpenGroupChat(c *gin.Context) { client := pbGroup.NewGroupClient(etcdConn) _, err := client.OperateGroupStatus(context.Background(), &reqPb) if err != nil { - log.NewError("s", "GetUserInfo failed ", err.Error()) + log.NewError(reqPb.OperationID, utils.GetSelfFuncName(), "OperateGroupStatus failed ", err.Error()) openIMHttp.RespHttp200(c, constant.ErrServer, nil) return } @@ -233,7 +234,7 @@ func OpenPrivateChat(c *gin.Context) { reqPb pbGroup.OperateGroupStatusReq ) if err := c.BindJSON(&req); err != nil { - log.NewError("0", "BindJSON failed ", err.Error()) + log.NewError(reqPb.OperationID, utils.GetSelfFuncName(), "OpenPrivateChat failed ", err.Error()) openIMHttp.RespHttp200(c, constant.ErrArgs, nil) return } @@ -243,7 +244,7 @@ func OpenPrivateChat(c *gin.Context) { client := pbGroup.NewGroupClient(etcdConn) _, err := client.OperateGroupStatus(context.Background(), &reqPb) if err != nil { - log.NewError(reqPb.OperationID, "GetUserInfo failed ", err.Error()) + log.NewError(reqPb.OperationID, utils.GetSelfFuncName(), "OperateGroupStatus failed ", err.Error()) openIMHttp.RespHttp200(c, constant.ErrServer, nil) return } @@ -252,12 +253,12 @@ func OpenPrivateChat(c *gin.Context) { func GetGroupMembers(c *gin.Context) { var ( - req cms_api_struct.GetGroupMembersRequest + req cms_api_struct.GetGroupMembersRequest reqPb pbGroup.GetGroupMembersCMSReq resp cms_api_struct.GetGroupMembersResponse ) if err := c.ShouldBindQuery(&req); err != nil { - log.NewError("0", "BindJSON failed ", err.Error()) + log.NewError(reqPb.OperationID, utils.GetSelfFuncName(), "ShouldBindQuery failed ", err.Error()) openIMHttp.RespHttp200(c, constant.ErrArgs, nil) return } @@ -265,16 +266,21 @@ func GetGroupMembers(c *gin.Context) { PageNumber: int32(req.PageNumber), ShowNumber: int32(req.ShowNumber), } + reqPb.GroupId = req.GroupId + reqPb.UserName = req.UserName etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImGroupName) client := pbGroup.NewGroupClient(etcdConn) respPb, err := client.GetGroupMembersCMS(context.Background(), &reqPb) if err != nil { - log.NewError(reqPb.OperationID, utils.GetSelfFuncName(), "rpc:", err.Error()) + log.NewError(reqPb.OperationID, utils.GetSelfFuncName(), "GetGroupMembersCMS failed:", err.Error()) openIMHttp.RespHttp200(c, constant.ErrServer, nil) return } - resp.ResponsePagination.ShowNumber = int(respPb.Pagination.ShowNumber) - resp.ResponsePagination.CurrentPage = int(respPb.Pagination.PageNumber) + resp.ResponsePagination = cms_api_struct.ResponsePagination{ + CurrentPage: int(respPb.Pagination.CurrentPage), + ShowNumber: int(respPb.Pagination.ShowNumber), + } + resp.MemberNums = int(respPb.MemberNums) for _, groupMembers := range respPb.Members { resp.GroupMembers = append(resp.GroupMembers, cms_api_struct.GroupMemberResponse{ MemberPosition: int(groupMembers.RoleLevel), @@ -294,7 +300,7 @@ func AddGroupMembers(c *gin.Context) { reqPb pbGroup.AddGroupMembersCMSReq ) if err := c.BindJSON(&req); err != nil { - log.NewError(reqPb.OperationID, utils.GetSelfFuncName(),"BindJSON failed ", err.Error()) + log.NewError(reqPb.OperationId, utils.GetSelfFuncName(),"BindJSON failed ", err.Error()) openIMHttp.RespHttp200(c, constant.ErrArgs, nil) return } @@ -304,7 +310,7 @@ func AddGroupMembers(c *gin.Context) { client := pbGroup.NewGroupClient(etcdConn) respPb, err := client.AddGroupMembersCMS(context.Background(), &reqPb) if err != nil { - log.NewError(reqPb.OperationID, utils.GetSelfFuncName(), "rpc:", err.Error()) + log.NewError(reqPb.OperationId, utils.GetSelfFuncName(), "AddGroupMembersCMS failed", err.Error()) openIMHttp.RespHttp200(c, constant.ErrServer, nil) return } @@ -330,13 +336,13 @@ func RemoveGroupMembers(c *gin.Context) { client := pbGroup.NewGroupClient(etcdConn) respPb, err := client.RemoveGroupMembersCMS(context.Background(), &reqPb) if err != nil { - log.NewError(reqPb.OperationID, utils.GetSelfFuncName(), "rpc:", err.Error()) + log.NewError(reqPb.OperationID, utils.GetSelfFuncName(), "RemoveGroupMembersCMS failed", err.Error()) openIMHttp.RespHttp200(c, constant.ErrServer, nil) return } resp.Success = respPb.Success resp.Failed = respPb.Failed - openIMHttp.RespHttp200(c, constant.OK, respPb) + openIMHttp.RespHttp200(c, constant.OK, resp) } func DeleteGroup(c *gin.Context) { @@ -350,13 +356,42 @@ func DeleteGroup(c *gin.Context) { openIMHttp.RespHttp200(c, constant.ErrArgs, nil) return } + reqPb.GroupId = req.GroupId etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImGroupName) client := pbGroup.NewGroupClient(etcdConn) _, err := client.DeleteGroup(context.Background(), &reqPb) if err != nil { - log.NewError(reqPb.OperationID, utils.GetSelfFuncName(), "rpc:", err.Error()) + log.NewError(reqPb.OperationID, utils.GetSelfFuncName(), "DeleteGroup failed", err.Error()) openIMHttp.RespHttp200(c, constant.ErrServer, nil) return } openIMHttp.RespHttp200(c, constant.OK, nil) +} + +func SetGroupMaster(c *gin.Context) { + var ( + req cms_api_struct.SetGroupMasterRequest + _ cms_api_struct.SetGroupMasterResponse + reqPb pbGroup.SetGroupMasterReq + ) + if err := c.BindJSON(&req); err != nil { + log.NewError(reqPb.OperationId, utils.GetSelfFuncName(),"BindJSON failed ", err.Error()) + openIMHttp.RespHttp200(c, constant.ErrArgs, nil) + return + } + reqPb.GroupId = req.GroupId + reqPb.UserId = req.UserId + etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImGroupName) + client := pbGroup.NewGroupClient(etcdConn) + _, err := client.SetGroupMaster(context.Background(), &reqPb) + if err != nil { + log.NewError(reqPb.OperationId, utils.GetSelfFuncName(), "DeleteGroup failed", err.Error()) + openIMHttp.RespHttp200(c, constant.ErrServer, nil) + return + } + openIMHttp.RespHttp200(c, constant.OK, nil) +} + +func GetMemberInGroup(c *gin.Context) { + } \ No newline at end of file diff --git a/internal/cms_api/router.go b/internal/cms_api/router.go index e9f744d29..34b3b9fb9 100644 --- a/internal/cms_api/router.go +++ b/internal/cms_api/router.go @@ -60,11 +60,14 @@ func NewGinRouter() *gin.Engine { groupRouterGroup.GET("/get_group_members", group.GetGroupMembers) groupRouterGroup.POST("/create_group", group.CreateGroup) groupRouterGroup.POST("/add_members", group.AddGroupMembers) - groupRouterGroup.POST("/remove_member", group.RemoveGroupMembers) + groupRouterGroup.POST("/remove_members", group.RemoveGroupMembers) groupRouterGroup.POST("/ban_group_private_chat", group.BanPrivateChat) groupRouterGroup.POST("/open_group_private_chat", group.OpenPrivateChat) groupRouterGroup.POST("/ban_group_chat", group.BanGroupChat) groupRouterGroup.POST("/open_group_chat", group.OpenGroupChat) + groupRouterGroup.POST("/delete_group", group.DeleteGroup) + groupRouterGroup.POST("/get_members_in_group", group.GetMemberInGroup) + groupRouterGroup.POST("/set_group_master", group.SetGroupMaster) } userRouterGroup := router.Group("/user") { @@ -78,6 +81,13 @@ func NewGinRouter() *gin.Engine { userRouterGroup.GET("/get_block_users", user.GetBlockUsers) userRouterGroup.GET("/get_block_user", user.GetBlockUserById) userRouterGroup.POST("/delete_user", user.DeleteUser) + userRouterGroup.GET("/get_users_by_name", user.GetUsersByName) + } + friendRouterGroup := router.Group("/friend") + { + friendRouterGroup.POST("/get_friends_by_id") + friendRouterGroup.POST("/set_friend") + friendRouterGroup.POST("/remove_friend") } return baseRouter } diff --git a/internal/cms_api/user/user.go b/internal/cms_api/user/user.go index 3428f8bd1..393f4f4ff 100644 --- a/internal/cms_api/user/user.go +++ b/internal/cms_api/user/user.go @@ -25,7 +25,7 @@ func GetUserById(c *gin.Context) { reqPb pb.GetUserByIdReq ) if err := c.ShouldBindQuery(&req); err != nil { - log.NewError("GetUser", utils.GetSelfFuncName(), "ShouldBindQuery failed ", err.Error()) + log.NewError(reqPb.OperationID, utils.GetSelfFuncName(), "ShouldBindQuery failed ", err.Error()) openIMHttp.RespHttp200(c, constant.ErrArgs, nil) return } @@ -34,7 +34,7 @@ func GetUserById(c *gin.Context) { client := pb.NewUserClient(etcdConn) respPb, err := client.GetUserById(context.Background(), &reqPb) if err != nil { - log.NewError("GetUserFailed", utils.GetSelfFuncName(), err.Error()) + log.NewError(reqPb.OperationID, utils.GetSelfFuncName(), err.Error()) openIMHttp.RespHttp200(c, constant.ErrServer, nil) return } @@ -46,6 +46,38 @@ func GetUserById(c *gin.Context) { openIMHttp.RespHttp200(c, constant.OK, resp) } +func GetUsersByName(c *gin.Context) { + var ( + req cms_api_struct.GetUsersByNameRequest + resp cms_api_struct.GetUsersByNameResponse + reqPb pb.GetUsersByNameReq + ) + if err := c.ShouldBindQuery(&req); err != nil { + log.NewError(reqPb.OperationID, utils.GetSelfFuncName(), "ShouldBindQuery failed", err.Error()) + openIMHttp.RespHttp200(c, constant.ErrArgs, nil) + return + } + reqPb.UserName = req.UserName + reqPb.Pagination = &commonPb.RequestPagination{ + PageNumber: int32(req.PageNumber), + ShowNumber: int32(req.ShowNumber), + } + etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImUserName) + client := pb.NewUserClient(etcdConn) + respPb, err := client.GetUsersByName(context.Background(), &reqPb) + if err != nil { + log.NewError(reqPb.OperationID, utils.GetSelfFuncName(), "rpc", err.Error()) + openIMHttp.RespHttp200(c, constant.ErrServer, nil) + return + } + fmt.Println(respPb) + utils.CopyStructFields(&resp.Users, respPb.Users) + resp.ShowNumber = int(respPb.Pagination.ShowNumber) + resp.CurrentPage = int(respPb.Pagination.CurrentPage) + resp.UserNums = respPb.UserNums + openIMHttp.RespHttp200(c, constant.OK, resp) +} + func GetUsers(c *gin.Context) { var ( req cms_api_struct.GetUsersRequest @@ -69,6 +101,7 @@ func GetUsers(c *gin.Context) { utils.CopyStructFields(&resp.Users, respPb.User) resp.ShowNumber = int(respPb.Pagination.ShowNumber) resp.CurrentPage = int(respPb.Pagination.CurrentPage) + resp.UserNums = respPb.UserNums openIMHttp.RespHttp200(c, constant.OK, resp) } @@ -194,12 +227,12 @@ func GetBlockUsers(c *gin.Context) { ) reqPb.Pagination = &commonPb.RequestPagination{} if err := c.ShouldBindQuery(&req); err != nil { - log.NewError("0", "BindJSON failed ", err.Error()) + log.NewError(reqPb.OperationID, utils.GetSelfFuncName(), "ShouldBindQuery failed ", err.Error()) openIMHttp.RespHttp200(c, constant.ErrArgs, resp) return } utils.CopyStructFields(&reqPb.Pagination, &req) - log.NewInfo("0", "blockUsers", reqPb.Pagination, req) + log.NewInfo(reqPb.OperationID, utils.GetSelfFuncName(), "blockUsers", reqPb.Pagination, req) etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImUserName) client := pb.NewUserClient(etcdConn) respPb, err := client.GetBlockUsers(context.Background(), &reqPb) @@ -222,6 +255,7 @@ func GetBlockUsers(c *gin.Context) { } resp.ShowNumber = int(respPb.Pagination.ShowNumber) resp.CurrentPage = int(respPb.Pagination.CurrentPage) + resp.UserNums = respPb.UserNums openIMHttp.RespHttp200(c, constant.OK, resp) } diff --git a/internal/rpc/group/group.go b/internal/rpc/group/group.go index 26fa699ce..7f6289845 100644 --- a/internal/rpc/group/group.go +++ b/internal/rpc/group/group.go @@ -677,9 +677,15 @@ func (s *groupServer) GetGroup(_ context.Context, req *pbGroup.GetGroupReq) (*pb } groups, err := imdb.GetGroupsByName(req.GroupName, req.Pagination.PageNumber, req.Pagination.ShowNumber) if err != nil { - return nil, err + return resp, err } log.NewInfo(req.OperationID, groups) + nums, err := imdb.GetGroupsCountNum(db.Group{GroupName:req.GroupName}) + if err != nil { + log.NewError(req.OperationID, utils.GetSelfFuncName(), "GetGroupsCountNum", err.Error()) + return resp, err + } + resp.GroupNums = nums resp.Pagination = &open_im_sdk.RequestPagination{ PageNumber: req.Pagination.PageNumber, ShowNumber: req.Pagination.ShowNumber, @@ -707,7 +713,7 @@ func (s *groupServer) GetGroup(_ context.Context, req *pbGroup.GetGroupReq) (*pb } func (s *groupServer) GetGroups(_ context.Context, req *pbGroup.GetGroupsReq) (*pbGroup.GetGroupsResp, error) { - log.NewInfo(req.OperationID, "GetGroups ", req.String()) + log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "GetGroups ", req.String()) resp := &pbGroup.GetGroupsResp{ CMSGroups: []*pbGroup.CMSGroup{}, Pagination: &open_im_sdk.RequestPagination{}, @@ -716,8 +722,8 @@ func (s *groupServer) GetGroups(_ context.Context, req *pbGroup.GetGroupsReq) (* if err != nil { return resp, err } - groupsCountNum, err := imdb.GetGroupsCountNum() - log.NewInfo(req.OperationID, "groupsCountNum ", groupsCountNum) + groupsCountNum, err := imdb.GetGroupsCountNum(db.Group{}) + log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "groupsCountNum ", groupsCountNum) if err != nil { return resp, err } @@ -780,11 +786,18 @@ func (s *groupServer) OperateUserRole(_ context.Context, req *pbGroup.OperateUse func (s *groupServer) GetGroupMembersCMS(_ context.Context, req *pbGroup.GetGroupMembersCMSReq) (*pbGroup.GetGroupMembersCMSResp, error) { log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "args:", req.String()) resp := &pbGroup.GetGroupMembersCMSResp{} - groupMembers, err := imdb.GetGroupMembersByGroupIdCMS(req.GroupId, req.Pagination.ShowNumber, req.Pagination.PageNumber) + groupMembers, err := imdb.GetGroupMembersByGroupIdCMS(req.GroupId, req.UserName, req.Pagination.ShowNumber, req.Pagination.PageNumber) if err != nil { - log.NewError(req.OperationID, utils.GetSelfFuncName(), err.Error()) + log.NewError(req.OperationID, utils.GetSelfFuncName(),"GetGroupMembersByGroupIdCMS Error", err.Error()) + return resp, err + } + groupMembersCount, err := imdb.GetGroupMembersCount(req.GroupId, req.UserName) + if err != nil { + log.NewError(req.OperationID, utils.GetSelfFuncName(), "GetGroupMembersCMS Error", err.Error()) return resp, err } + log.NewInfo(req.OperationID, groupMembersCount) + resp.MemberNums = groupMembersCount for _, groupMember := range groupMembers { resp.Members = append(resp.Members, &open_im_sdk.GroupMemberFullInfo{ GroupID: req.GroupId, @@ -796,6 +809,10 @@ func (s *groupServer) GetGroupMembersCMS(_ context.Context, req *pbGroup.GetGrou JoinSource: groupMember.JoinSource, }) } + resp.Pagination = &open_im_sdk.ResponsePagination{ + CurrentPage: req.Pagination.PageNumber, + ShowNumber: req.Pagination.ShowNumber, + } return resp, nil } @@ -815,7 +832,7 @@ func (s *groupServer) RemoveGroupMembersCMS(_ context.Context, req *pbGroup.Remo } func (s *groupServer) AddGroupMembersCMS(_ context.Context, req *pbGroup.AddGroupMembersCMSReq) (*pbGroup.AddGroupMembersCMSResp, error) { - log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "args:", req.String()) + log.NewInfo(req.OperationId, utils.GetSelfFuncName(), "args:", req.String()) resp := &pbGroup.AddGroupMembersCMSResp{} for _, userIds := range req.UserIds { groupMember := db.GroupMember{ @@ -830,6 +847,7 @@ func (s *groupServer) AddGroupMembersCMS(_ context.Context, req *pbGroup.AddGrou Ex: "", } if err := imdb.InsertIntoGroupMember(groupMember); err != nil { + log.NewError(req.OperationId, utils.GetSelfFuncName(), "InsertIntoGroupMember failed", req.String()) resp.Failed = append(resp.Failed, userIds) } else { resp.Success = append(resp.Success, userIds) @@ -837,3 +855,14 @@ func (s *groupServer) AddGroupMembersCMS(_ context.Context, req *pbGroup.AddGrou } return resp, nil } + +func (s *groupServer) SetGroupMaster(_ context.Context, req *pbGroup.SetGroupMasterReq) (*pbGroup.SetGroupMasterResp, error) { + log.NewInfo(req.OperationId, utils.GetSelfFuncName(), req.String()) + resp := &pbGroup.SetGroupMasterResp{} + err := imdb.OperateGroupRole(req.UserId, req.GroupId, constant.GroupOwner) + if err != nil { + log.NewError(req.OperationId, utils.GetSelfFuncName(),"OperateGroupRole failed", err.Error()) + return resp, nil + } + return resp, nil +} \ No newline at end of file diff --git a/internal/rpc/statistics/statistics.go b/internal/rpc/statistics/statistics.go index f933398ea..7c805da2f 100644 --- a/internal/rpc/statistics/statistics.go +++ b/internal/rpc/statistics/statistics.go @@ -3,7 +3,7 @@ package statistics import ( "Open_IM/pkg/common/config" "context" - "fmt" + "sync" "time" //"Open_IM/pkg/common/constant" @@ -73,16 +73,16 @@ func (s *statisticsServer) Run() { } func (s *statisticsServer) GetActiveGroup(_ context.Context, req *pbStatistics.GetActiveGroupReq) (*pbStatistics.GetActiveGroupResp, error) { - log.NewInfo("GetActiveGroup", utils.GetSelfFuncName(), req.String()) + log.NewInfo(req.OperationID, utils.GetSelfFuncName(), req.String()) resp := &pbStatistics.GetActiveGroupResp{} fromTime, toTime, err := ParseTimeFromTo(req.StatisticsReq.From, req.StatisticsReq.To) if err != nil { - log.NewError("GetActiveGroup", utils.GetSelfFuncName(), err.Error()) + log.NewError(req.OperationID, utils.GetSelfFuncName(), err.Error()) return resp, err } activeGroups, err := imdb.GetActiveGroups(fromTime, toTime, 12) if err != nil { - log.NewError("GetActiveGroup", utils.GetSelfFuncName(), err.Error()) + log.NewError(req.OperationID, utils.GetSelfFuncName(), err.Error()) return resp, err } for _, activeGroup := range activeGroups { @@ -97,16 +97,16 @@ func (s *statisticsServer) GetActiveGroup(_ context.Context, req *pbStatistics.G } func (s *statisticsServer) GetActiveUser(_ context.Context, req *pbStatistics.GetActiveUserReq) (*pbStatistics.GetActiveUserResp, error) { - log.NewInfo("GetActiveUser", utils.GetSelfFuncName(), req.String()) + log.NewInfo(req.OperationID, utils.GetSelfFuncName(), req.String()) resp := &pbStatistics.GetActiveUserResp{} fromTime, toTime, err := ParseTimeFromTo(req.StatisticsReq.From, req.StatisticsReq.To) if err != nil { - log.NewError("GetActiveUser", utils.GetSelfFuncName(), err.Error()) + log.NewError(req.OperationID, utils.GetSelfFuncName(), err.Error()) return resp, err } activeUsers, err := imdb.GetActiveUsers(fromTime, toTime, 12) if err != nil { - log.NewError("GetActiveUser", utils.GetSelfFuncName(), err.Error()) + log.NewError(req.OperationID, utils.GetSelfFuncName(), err.Error()) return resp, err } for _, activeUser := range activeUsers { @@ -136,7 +136,7 @@ func ParseTimeFromTo(from, to string) (time.Time, time.Time, error) { } func isInOneMonth(from, to time.Time) bool { - return from.Month() == to.Month() + return from.Month() == to.Month() && from.Year() == to.Year() } func GetRangeDate(from, to time.Time) [][2]time.Time { @@ -195,144 +195,167 @@ func getFirstDateOfNextNMonth(currentTime time.Time, n int) time.Time { } func (s *statisticsServer) GetGroupStatistics(_ context.Context, req *pbStatistics.GetGroupStatisticsReq) (*pbStatistics.GetGroupStatisticsResp, error) { - log.NewInfo("GetGroupStatistics", utils.GetSelfFuncName(), req.String()) + log.NewInfo(req.OperationID, utils.GetSelfFuncName(), req.String()) resp := &pbStatistics.GetGroupStatisticsResp{} fromTime, toTime, err := ParseTimeFromTo(req.StatisticsReq.From, req.StatisticsReq.To) if err != nil { - log.NewError("GetMessageStatistics", utils.GetSelfFuncName(), err.Error()) + log.NewError(req.OperationID, utils.GetSelfFuncName(), err.Error()) return resp, err } increaseGroupNum, err := imdb.GetIncreaseGroupNum(fromTime, toTime.Add(time.Hour*24)) if err != nil { - log.NewError("GetMessageStatistics", utils.GetSelfFuncName(), err.Error()) + log.NewError(req.OperationID, utils.GetSelfFuncName(), err.Error()) return resp, err } totalGroupNum, err := imdb.GetTotalGroupNum() if err != nil { - log.NewError("GetMessageStatistics", utils.GetSelfFuncName(), err.Error()) + log.NewError(req.OperationID, utils.GetSelfFuncName(), err.Error()) return resp, err } resp.IncreaseGroupNum = increaseGroupNum resp.TotalGroupNum = totalGroupNum times := GetRangeDate(fromTime, toTime) - log.NewInfo("", "times:", times) - for _, v := range times { - num, err := imdb.GetIncreaseGroupNum(v[0], v[1]) - if err != nil { - log.NewError("", utils.GetSelfFuncName(), "GetIncreaseGroupNum", v, err.Error()) - } - resp.IncreaseGroupNumList = append(resp.IncreaseGroupNumList, &pbStatistics.DateNumList{ - Date: v[0].String(), - Num: num, - }) - num, err = imdb.GetGroupNum(v[0]) - if err != nil { - log.NewError("", utils.GetSelfFuncName(), "GetIncreaseGroupNum", v, err.Error()) - } - resp.TotalGroupNumList = append(resp.TotalGroupNumList, &pbStatistics.DateNumList{ - Date: v[0].String(), - Num: num, - }) + log.NewInfo(req.OperationID, "times:", times) + wg := &sync.WaitGroup{} + resp.IncreaseGroupNumList = make([]*pbStatistics.DateNumList, len(times), len(times)) + resp.TotalGroupNumList = make([]*pbStatistics.DateNumList, len(times), len(times)) + log.NewInfo(req.OperationID, resp.TotalGroupNumList, resp.TotalGroupNumList) + wg.Add(len(times)) + for i, v := range times { + go func(wg *sync.WaitGroup, index int, v [2]time.Time) { + defer wg.Done() + num, err := imdb.GetIncreaseGroupNum(v[0], v[1]) + if err != nil { + log.NewError(req.OperationID, utils.GetSelfFuncName(), "GetIncreaseGroupNum", v, err.Error()) + } + resp.IncreaseGroupNumList[index] = &pbStatistics.DateNumList{ + Date: v[0].String(), + Num: num, + } + num, err = imdb.GetGroupNum(v[0]) + if err != nil { + log.NewError(req.OperationID, utils.GetSelfFuncName(), "GetIncreaseGroupNum", v, err.Error()) + } + resp.TotalGroupNumList[index] = &pbStatistics.DateNumList{ + Date: v[0].String(), + Num: num, + } + }(wg, i, v) } + wg.Wait() return resp, nil } func (s *statisticsServer) GetMessageStatistics(_ context.Context, req *pbStatistics.GetMessageStatisticsReq) (*pbStatistics.GetMessageStatisticsResp, error) { - log.NewInfo("GetMessageStatistics", utils.GetSelfFuncName(), req.String()) + log.NewInfo(req.OperationID, utils.GetSelfFuncName(), req.String()) resp := &pbStatistics.GetMessageStatisticsResp{} fromTime, toTime, err := ParseTimeFromTo(req.StatisticsReq.From, req.StatisticsReq.To) if err != nil { - log.NewError("GetMessageStatistics", utils.GetSelfFuncName(), err.Error()) + log.NewError(req.OperationID, utils.GetSelfFuncName(), err.Error()) return resp, err } privateMessageNum, err := imdb.GetPrivateMessageNum(fromTime, toTime.Add(time.Hour*24)) if err != nil { - log.NewError("GetMessageStatistics", utils.GetSelfFuncName(), err.Error()) + log.NewError(req.OperationID, utils.GetSelfFuncName(), err.Error()) return resp, err } groupMessageNum, err := imdb.GetGroupMessageNum(fromTime, toTime.Add(time.Hour*24)) if err != nil { - log.NewError("GetMessageStatistics", utils.GetSelfFuncName(), err.Error()) + log.NewError(req.OperationID, utils.GetSelfFuncName(), err.Error()) } resp.PrivateMessageNum = privateMessageNum resp.GroupMessageNum = groupMessageNum times := GetRangeDate(fromTime, toTime) - fmt.Println(times) - for _, v := range times { - num, err := imdb.GetPrivateMessageNum(v[0], v[1]) - if err != nil { - log.NewError("", utils.GetSelfFuncName(), "GetIncreaseGroupNum", v, err.Error()) - } - resp.PrivateMessageNumList = append(resp.PrivateMessageNumList, &pbStatistics.DateNumList{ - Date: v[0].String(), - Num: num, - }) - - num, err = imdb.GetGroupMessageNum(v[0], v[1]) - if err != nil { - log.NewError("", utils.GetSelfFuncName(), "GetIncreaseGroupNum", v, err.Error()) - } - resp.GroupMessageNumList = append(resp.GroupMessageNumList, &pbStatistics.DateNumList{ - Date: v[0].String(), - Num: num, - }) + resp.GroupMessageNumList = make([]*pbStatistics.DateNumList, len(times), len(times)) + resp.PrivateMessageNumList = make([]*pbStatistics.DateNumList, len(times), len(times)) + wg := &sync.WaitGroup{} + wg.Add(len(times)) + for i, v := range times { + go func(wg *sync.WaitGroup, index int, v [2]time.Time) { + defer wg.Done() + num, err := imdb.GetPrivateMessageNum(v[0], v[1]) + if err != nil { + log.NewError(req.OperationID, utils.GetSelfFuncName(), "GetIncreaseGroupNum", v, err.Error()) + } + resp.PrivateMessageNumList[index] = &pbStatistics.DateNumList{ + Date: v[0].String(), + Num: num, + } + num, err = imdb.GetGroupMessageNum(v[0], v[1]) + if err != nil { + log.NewError(req.OperationID, utils.GetSelfFuncName(), "GetIncreaseGroupNum", v, err.Error()) + } + resp.GroupMessageNumList[index] = &pbStatistics.DateNumList{ + Date: v[0].String(), + Num: num, + } + }(wg, i, v) } - fmt.Println(resp) + wg.Wait() return resp, nil } func (s *statisticsServer) GetUserStatistics(_ context.Context, req *pbStatistics.GetUserStatisticsReq) (*pbStatistics.GetUserStatisticsResp, error) { - log.NewInfo("GetUserStatistics", utils.GetSelfFuncName(), req.String()) + log.NewInfo(req.OperationID, utils.GetSelfFuncName(), req.String()) resp := &pbStatistics.GetUserStatisticsResp{} fromTime, toTime, err := ParseTimeFromTo(req.StatisticsReq.From, req.StatisticsReq.To) if err != nil { + log.NewError(req.OperationID, utils.GetSelfFuncName(), "ParseTimeFromTo", err.Error()) return resp, err } activeUserNum, err := imdb.GetActiveUserNum(fromTime, toTime.Add(time.Hour*24)) if err != nil { - log.NewError("GetUserStatistics", utils.GetSelfFuncName(), err.Error()) + log.NewError(req.OperationID, utils.GetSelfFuncName(), "GetActiveUserNum", err.Error()) return resp, err } increaseUserNum, err := imdb.GetIncreaseUserNum(fromTime, toTime.Add(time.Hour*24)) if err != nil { - log.NewError("GetUserStatistics", utils.GetSelfFuncName(), err.Error()) + log.NewError(req.OperationID, utils.GetSelfFuncName(), "GetIncreaseUserNum error", err.Error()) return resp, err } totalUserNum, err := imdb.GetTotalUserNum() if err != nil { - log.NewError("GetUserStatistics", utils.GetSelfFuncName(), err.Error()) + log.NewError(req.OperationID, utils.GetSelfFuncName(), "GetTotalUserNum error", err.Error()) return resp, err } resp.ActiveUserNum = activeUserNum resp.TotalUserNum = totalUserNum resp.IncreaseUserNum = increaseUserNum - times := GetRangeDate(fromTime, toTime) - for _, v := range times { - num, err := imdb.GetActiveUserNum(v[0], v[1]) - if err != nil { - log.NewError("", utils.GetSelfFuncName(), "GetIncreaseGroupNum", v, err.Error()) - } - resp.ActiveUserNumList = append(resp.ActiveUserNumList, &pbStatistics.DateNumList{ - Date: v[0].String(), - Num: num, - }) - num, err = imdb.GetTotalUserNumByDate(v[0]) - if err != nil { - log.NewError("", utils.GetSelfFuncName(), "GetTotalUserNumByDate", v, err.Error()) - } - resp.TotalUserNumList = append(resp.TotalUserNumList, &pbStatistics.DateNumList{ - Date: v[0].String(), - Num: num, - }) - num, err = imdb.GetIncreaseUserNum(v[0], v[1]) - if err != nil { - log.NewError("", utils.GetSelfFuncName(), "GetIncreaseUserNum", v, err.Error()) - } - resp.IncreaseUserNumList = append(resp.IncreaseUserNumList, &pbStatistics.DateNumList{ - Date: v[0].String(), - Num: num, - }) + resp.TotalUserNumList = make([]*pbStatistics.DateNumList, len(times), len(times)) + resp.ActiveUserNumList = make([]*pbStatistics.DateNumList, len(times), len(times)) + resp.IncreaseUserNumList = make([]*pbStatistics.DateNumList, len(times), len(times)) + wg := &sync.WaitGroup{} + wg.Add(len(times)) + for i, v := range times { + go func(wg *sync.WaitGroup, index int, v [2]time.Time) { + defer wg.Done() + num, err := imdb.GetActiveUserNum(v[0], v[1]) + if err != nil { + log.NewError(req.OperationID, utils.GetSelfFuncName(), "GetIncreaseGroupNum", v, err.Error()) + } + resp.ActiveUserNumList[index] = &pbStatistics.DateNumList{ + Date: v[0].String(), + Num: num, + } + num, err = imdb.GetTotalUserNumByDate(v[0]) + if err != nil { + log.NewError(req.OperationID, utils.GetSelfFuncName(), "GetTotalUserNumByDate", v, err.Error()) + } + resp.TotalUserNumList[index] = &pbStatistics.DateNumList{ + Date: v[0].String(), + Num: num, + } + num, err = imdb.GetIncreaseUserNum(v[0], v[1]) + if err != nil { + log.NewError(req.OperationID, utils.GetSelfFuncName(), "GetIncreaseUserNum", v, err.Error()) + } + resp.IncreaseUserNumList[index] = &pbStatistics.DateNumList{ + Date: v[0].String(), + Num: num, + } + }(wg, i, v) } + wg.Wait() return resp, nil } diff --git a/internal/rpc/user/user.go b/internal/rpc/user/user.go index 2d65bcb8a..dab53dfd0 100644 --- a/internal/rpc/user/user.go +++ b/internal/rpc/user/user.go @@ -243,8 +243,44 @@ func (s *userServer) UpdateUserInfo(ctx context.Context, req *pbUser.UpdateUserI return &pbUser.UpdateUserInfoResp{CommonResp: &pbUser.CommonResp{}}, nil } +func (s *userServer) GetUsersByName(ctx context.Context, req *pbUser.GetUsersByNameReq) (*pbUser.GetUsersByNameResp, error) { + log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "req:", req.String()) + resp := &pbUser.GetUsersByNameResp{} + users, err := imdb.GetUserByName(req.UserName, req.Pagination.ShowNumber, req.Pagination.PageNumber) + if err != nil { + log.NewError(req.OperationID, utils.GetSelfFuncName(), "GetUserByName failed", err.Error()) + return resp, err + } + for _, user := range users { + isBlock, err := imdb.UserIsBlock(user.UserID) + if err != nil { + log.NewError(req.OperationID, utils.GetSelfFuncName(), err.Error()) + continue + } + resp.Users = append(resp.Users, &pbUser.User{ + ProfilePhoto: user.FaceURL, + Nickname: user.Nickname, + UserId: user.UserID, + CreateTime: user.CreateTime.String(), + IsBlock: isBlock, + }) + } + user := db.Users{Nickname:req.UserName} + userNums, err := imdb.GetUsersCount(user) + if err != nil { + log.NewError(req.OperationID, utils.GetSelfFuncName(), "", err.Error()) + return resp, err + } + resp.UserNums = userNums + resp.Pagination = &sdkws.ResponsePagination{ + CurrentPage: req.Pagination.PageNumber, + ShowNumber: req.Pagination.ShowNumber, + } + return resp, err +} + func (s *userServer) GetUserById(ctx context.Context, req *pbUser.GetUserByIdReq) (*pbUser.GetUserByIdResp, error) { - log.NewInfo(req.OperationID, "GetUser args ", req.String()) + log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "req:", req.String()) resp := &pbUser.GetUserByIdResp{User: &pbUser.User{}} user, err := imdb.GetUserByUserID(req.UserId) if err != nil { @@ -284,10 +320,14 @@ func (s *userServer) GetUsers(ctx context.Context, req *pbUser.GetUsersReq) (*pb resp.User = append(resp.User, user) } } - - resp.Pagination = &sdkws.ResponsePagination{} - resp.Pagination.ShowNumber = req.Pagination.ShowNumber - resp.Pagination.CurrentPage = req.Pagination.PageNumber + user := db.Users{} + nums, err := imdb.GetUsersCount(user) + if err != nil { + log.NewError(req.OperationID, utils.GetSelfFuncName(), "GetUsersCount failed", err.Error()) + return resp, err + } + resp.UserNums = nums + resp.Pagination = &sdkws.ResponsePagination{ShowNumber:req.Pagination.ShowNumber, CurrentPage:req.Pagination.ShowNumber} return resp, nil } @@ -369,7 +409,12 @@ func (s *userServer) GetBlockUsers(ctx context.Context, req *pbUser.GetBlockUser resp.Pagination = &sdkws.ResponsePagination{} resp.Pagination.ShowNumber = req.Pagination.ShowNumber resp.Pagination.CurrentPage = req.Pagination.PageNumber - fmt.Println(resp) + nums, err := imdb.GetBlockUsersNumCount() + if err != nil { + log.NewError(req.OperationID, utils.GetSelfFuncName(), "GetBlockUsersNumCount failed", err.Error()) + return resp, err + } + resp.UserNums = nums return resp, nil } @@ -398,8 +443,9 @@ func (s *userServer) DeleteUser(_ context.Context, req *pbUser.DeleteUserReq) (* log.NewInfo(req.OperationID, utils.GetSelfFuncName(), req.String()) resp := &pbUser.DeleteUserResp{} if row := imdb.DeleteUser(req.UserId); row == 0 { - log.NewError(req.OperationID, utils.GetSelfFuncName(), "delete error", row) + log.NewError(req.OperationID, utils.GetSelfFuncName(), "delete failed", "delete rows:", row) return resp, constant.ErrDB } return resp, nil } + diff --git a/pkg/cms_api_struct/group.go b/pkg/cms_api_struct/group.go index 53ff91a80..76c2efac0 100644 --- a/pkg/cms_api_struct/group.go +++ b/pkg/cms_api_struct/group.go @@ -41,45 +41,46 @@ type GetGroupsResponse struct { } type CreateGroupRequest struct { - GroupName string `json:"group_name"` - GroupMasterId string `json:"group_master_id"` - GroupMembers []string `json:"group_members"` + GroupName string `json:"group_name" binding:"required"` + GroupMasterId string `json:"group_master_id" binding:"required"` + GroupMembers []string `json:"group_members" binding:"required"` } type CreateGroupResponse struct { } type SetGroupMasterRequest struct { - GroupId string `json:"group_id"` - UserId string `json:"user_id"` + GroupId string `json:"group_id" binding:"required"` + UserId string `json:"user_id" binding:"required"` } type SetGroupMasterResponse struct { } type BanGroupChatRequest struct { - GroupId string `json:"group_id"` + GroupId string `json:"group_id" binding:"required"` } type BanGroupChatResponse struct { } type BanPrivateChatRequest struct { - GroupId string `json:"group_id"` + GroupId string `json:"group_id" binding:"required"` } type BanPrivateChatResponse struct { } type DeleteGroupRequest struct { - GroupId string `json:"group_id"` + GroupId string `json:"group_id" binding:"required"` } type DeleteGroupResponse struct { } type GetGroupMembersRequest struct { - GroupId string `json:"group_id"` + GroupId string `form:"group_id" binding:"required"` + UserName string `form:"user_name"` RequestPagination } @@ -92,13 +93,13 @@ type GroupMemberResponse struct { type GetGroupMembersResponse struct { GroupMembers []GroupMemberResponse `json:"group_members"` - GroupMemberNums int `json:"group_member_nums"` ResponsePagination + MemberNums int `json:"member_nums"` } type GroupMemberRequest struct { - GroupId string `json:"group_id"` - Members []string `json:"members"` + GroupId string `json:"group_id" binding:"required"` + Members []string `json:"members" binding:"required"` } type GroupMemberOperateResponse struct { diff --git a/pkg/cms_api_struct/user.go b/pkg/cms_api_struct/user.go index b34e52101..2c0b004b0 100644 --- a/pkg/cms_api_struct/user.go +++ b/pkg/cms_api_struct/user.go @@ -23,6 +23,18 @@ type GetUsersRequest struct { type GetUsersResponse struct { Users []*UserResponse `json:"users"` ResponsePagination + UserNums int32 `json:"user_nums"` +} + +type GetUsersByNameRequest struct { + UserName string `form:"user_name" binding:"required"` + RequestPagination +} + +type GetUsersByNameResponse struct { + Users []*UserResponse `json:"users"` + ResponsePagination + UserNums int32 `json:"user_nums"` } type ResignUserRequest struct { @@ -79,6 +91,7 @@ type GetBlockUsersRequest struct { type GetBlockUsersResponse struct { BlockUsers []BlockUser `json:"block_users"` ResponsePagination + UserNums int32 `json:"user_nums"` } type GetBlockUserRequest struct { diff --git a/pkg/common/db/mysql_model/im_mysql_model/group_member_model.go b/pkg/common/db/mysql_model/im_mysql_model/group_member_model.go index b7a28c6d4..4dafa30a6 100644 --- a/pkg/common/db/mysql_model/im_mysql_model/group_member_model.go +++ b/pkg/common/db/mysql_model/im_mysql_model/group_member_model.go @@ -4,6 +4,7 @@ import ( "Open_IM/pkg/common/constant" "Open_IM/pkg/common/db" "Open_IM/pkg/utils" + "fmt" "time" ) @@ -225,19 +226,32 @@ func IsGroupOwnerAdmin(groupID, UserID string) bool { return false } -func GetGroupMembersByGroupIdCMS(groupId string, showNumber, pageNumber int32) ([]db.GroupMember, error) { +func GetGroupMembersByGroupIdCMS(groupId string, userName string, showNumber, pageNumber int32) ([]db.GroupMember, error) { var groupMembers []db.GroupMember dbConn, err := db.DB.MysqlDB.DefaultGormDB() if err != nil { return groupMembers, err } - err = dbConn.Table("group_members").Where("group_id=?", groupId).Limit(showNumber).Offset(showNumber * (pageNumber - 1)).Find(&groupMembers).Error + err = dbConn.Table("group_members").Where("group_id=?", groupId).Where(fmt.Sprintf(" nickname like '%%%s%%' ", userName)).Limit(showNumber).Offset(showNumber * (pageNumber - 1)).Find(&groupMembers).Error if err != nil { return nil, err } return groupMembers, nil } +func GetGroupMembersCount(groupId, userName string) (int32, error) { + dbConn, err := db.DB.MysqlDB.DefaultGormDB() + var count int32 + if err != nil { + return count, err + } + dbConn.LogMode(true) + if err := dbConn.Table("group_members").Where("group_id=?", groupId).Where(fmt.Sprintf(" nickname like '%%%s%%' ", userName)).Count(&count).Error; err != nil { + return count, err + } + return count, nil +} + // //func SelectGroupList(groupID string) ([]string, error) { // var groupUserID string diff --git a/pkg/common/db/mysql_model/im_mysql_model/group_model.go b/pkg/common/db/mysql_model/im_mysql_model/group_model.go index 62026b4e3..255cc4268 100644 --- a/pkg/common/db/mysql_model/im_mysql_model/group_model.go +++ b/pkg/common/db/mysql_model/im_mysql_model/group_model.go @@ -105,10 +105,10 @@ func DeleteGroup(groupId string) error { dbConn.LogMode(true) var group db.Group var groupMembers []db.GroupMember - if err := dbConn.Table("groups").Where("").Delete(&group).Error; err != nil { + if err := dbConn.Table("groups").Where("group_id=?", groupId).Delete(&group).Error; err != nil { return err } - if err := dbConn.Table("group_Members").Where("group_id=?", groupId).Delete(groupMembers).Error; err != nil { + if err := dbConn.Table("group_members").Where("group_id=?", groupId).Delete(groupMembers).Error; err != nil { return err } return nil @@ -134,14 +134,14 @@ func OperateGroupRole(userId, groupId string, roleLevel int32) error { return nil } -func GetGroupsCountNum() (int, error) { +func GetGroupsCountNum(group db.Group) (int32, error) { dbConn, err := db.DB.MysqlDB.DefaultGormDB() if err != nil { return 0, err } dbConn.LogMode(true) - var count int - if err := dbConn.Table("groups").Count(&count).Error; err != nil { + var count int32 + if err := dbConn.Table("groups").Where(fmt.Sprintf(" name like '%%%s%%' ", group.GroupName)).Count(&count).Error; err != nil { return 0, err } return count, nil 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 40a430706..56924c863 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 @@ -267,13 +267,37 @@ func GetBlockUsers(showNumber, pageNumber int32) ([]BlockUserInfo, error) { return blockUserInfos, nil } -func GetBlockUsersNumCount() (int, error) { +func GetUserByName(userName string, showNumber, pageNumber int32) ([]db.Users, error) { + dbConn, err := db.DB.MysqlDB.DefaultGormDB() + var users []db.Users + if err != nil { + return users, err + } + dbConn.LogMode(true) + err = dbConn.Table("users").Where(fmt.Sprintf(" name like '%%%s%%' ", userName)).Limit(showNumber).Offset(showNumber * (pageNumber - 1)).Find(&users).Error + return users, err +} + +func GetUsersCount(user db.Users) (int32, error) { + dbConn, err := db.DB.MysqlDB.DefaultGormDB() + if err != nil { + return 0, err + } + dbConn.LogMode(true) + var count int32 + if err := dbConn.Model(user).Where(fmt.Sprintf(" name like '%%%s%%' ", user.Nickname)).Count(&count).Error; err != nil { + return 0, err + } + return count, nil +} + +func GetBlockUsersNumCount() (int32, error) { dbConn, err := db.DB.MysqlDB.DefaultGormDB() if err != nil { return 0, err } dbConn.LogMode(true) - var count int + var count int32 if err := dbConn.Model(&db.BlackList{}).Count(&count).Error; err != nil { return 0, err } diff --git a/pkg/proto/group/group.pb.go b/pkg/proto/group/group.pb.go index db9dd8c6e..62d57e8f0 100644 --- a/pkg/proto/group/group.pb.go +++ b/pkg/proto/group/group.pb.go @@ -2135,6 +2135,7 @@ type GetGroupResp struct { CMSGroups []*CMSGroup `protobuf:"bytes,1,rep,name=CMSGroups,proto3" json:"CMSGroups,omitempty"` Pagination *sdk_ws.RequestPagination `protobuf:"bytes,2,opt,name=Pagination,proto3" json:"Pagination,omitempty"` + GroupNums int32 `protobuf:"varint,3,opt,name=GroupNums,proto3" json:"GroupNums,omitempty"` } func (x *GetGroupResp) Reset() { @@ -2183,6 +2184,13 @@ func (x *GetGroupResp) GetPagination() *sdk_ws.RequestPagination { return nil } +func (x *GetGroupResp) GetGroupNums() int32 { + if x != nil { + return x.GroupNums + } + return 0 +} + type GetGroupsReq struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -2767,8 +2775,9 @@ type GetGroupMembersCMSReq struct { unknownFields protoimpl.UnknownFields GroupId string `protobuf:"bytes,1,opt,name=GroupId,proto3" json:"GroupId,omitempty"` - Pagination *sdk_ws.RequestPagination `protobuf:"bytes,2,opt,name=Pagination,proto3" json:"Pagination,omitempty"` - OperationID string `protobuf:"bytes,3,opt,name=OperationID,proto3" json:"OperationID,omitempty"` + UserName string `protobuf:"bytes,2,opt,name=UserName,proto3" json:"UserName,omitempty"` + Pagination *sdk_ws.RequestPagination `protobuf:"bytes,3,opt,name=Pagination,proto3" json:"Pagination,omitempty"` + OperationID string `protobuf:"bytes,4,opt,name=OperationID,proto3" json:"OperationID,omitempty"` } func (x *GetGroupMembersCMSReq) Reset() { @@ -2810,6 +2819,13 @@ func (x *GetGroupMembersCMSReq) GetGroupId() string { return "" } +func (x *GetGroupMembersCMSReq) GetUserName() string { + if x != nil { + return x.UserName + } + return "" +} + func (x *GetGroupMembersCMSReq) GetPagination() *sdk_ws.RequestPagination { if x != nil { return x.Pagination @@ -2829,8 +2845,9 @@ type GetGroupMembersCMSResp struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Members []*sdk_ws.GroupMemberFullInfo `protobuf:"bytes,3,rep,name=members,proto3" json:"members,omitempty"` - Pagination *sdk_ws.RequestPagination `protobuf:"bytes,2,opt,name=Pagination,proto3" json:"Pagination,omitempty"` + Members []*sdk_ws.GroupMemberFullInfo `protobuf:"bytes,1,rep,name=members,proto3" json:"members,omitempty"` + Pagination *sdk_ws.ResponsePagination `protobuf:"bytes,2,opt,name=Pagination,proto3" json:"Pagination,omitempty"` + MemberNums int32 `protobuf:"varint,3,opt,name=MemberNums,proto3" json:"MemberNums,omitempty"` } func (x *GetGroupMembersCMSResp) Reset() { @@ -2872,13 +2889,20 @@ func (x *GetGroupMembersCMSResp) GetMembers() []*sdk_ws.GroupMemberFullInfo { return nil } -func (x *GetGroupMembersCMSResp) GetPagination() *sdk_ws.RequestPagination { +func (x *GetGroupMembersCMSResp) GetPagination() *sdk_ws.ResponsePagination { if x != nil { return x.Pagination } return nil } +func (x *GetGroupMembersCMSResp) GetMemberNums() int32 { + if x != nil { + return x.MemberNums + } + return 0 +} + type RemoveGroupMembersCMSReq struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -3004,7 +3028,7 @@ type AddGroupMembersCMSReq struct { GroupId string `protobuf:"bytes,1,opt,name=GroupId,proto3" json:"GroupId,omitempty"` UserIds []string `protobuf:"bytes,2,rep,name=UserIds,proto3" json:"UserIds,omitempty"` - OperationID string `protobuf:"bytes,3,opt,name=OperationID,proto3" json:"OperationID,omitempty"` + OperationId string `protobuf:"bytes,3,opt,name=OperationId,proto3" json:"OperationId,omitempty"` } func (x *AddGroupMembersCMSReq) Reset() { @@ -3053,9 +3077,9 @@ func (x *AddGroupMembersCMSReq) GetUserIds() []string { return nil } -func (x *AddGroupMembersCMSReq) GetOperationID() string { +func (x *AddGroupMembersCMSReq) GetOperationId() string { if x != nil { - return x.OperationID + return x.OperationId } return "" } @@ -3115,6 +3139,107 @@ func (x *AddGroupMembersCMSResp) GetFailed() []string { return nil } +type SetGroupMasterReq struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + GroupId string `protobuf:"bytes,1,opt,name=GroupId,proto3" json:"GroupId,omitempty"` + UserId string `protobuf:"bytes,2,opt,name=UserId,proto3" json:"UserId,omitempty"` + OperationId string `protobuf:"bytes,3,opt,name=OperationId,proto3" json:"OperationId,omitempty"` +} + +func (x *SetGroupMasterReq) Reset() { + *x = SetGroupMasterReq{} + if protoimpl.UnsafeEnabled { + mi := &file_group_group_proto_msgTypes[51] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SetGroupMasterReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SetGroupMasterReq) ProtoMessage() {} + +func (x *SetGroupMasterReq) ProtoReflect() protoreflect.Message { + mi := &file_group_group_proto_msgTypes[51] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use SetGroupMasterReq.ProtoReflect.Descriptor instead. +func (*SetGroupMasterReq) Descriptor() ([]byte, []int) { + return file_group_group_proto_rawDescGZIP(), []int{51} +} + +func (x *SetGroupMasterReq) GetGroupId() string { + if x != nil { + return x.GroupId + } + return "" +} + +func (x *SetGroupMasterReq) GetUserId() string { + if x != nil { + return x.UserId + } + return "" +} + +func (x *SetGroupMasterReq) GetOperationId() string { + if x != nil { + return x.OperationId + } + return "" +} + +type SetGroupMasterResp struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields +} + +func (x *SetGroupMasterResp) Reset() { + *x = SetGroupMasterResp{} + if protoimpl.UnsafeEnabled { + mi := &file_group_group_proto_msgTypes[52] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *SetGroupMasterResp) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*SetGroupMasterResp) ProtoMessage() {} + +func (x *SetGroupMasterResp) ProtoReflect() protoreflect.Message { + mi := &file_group_group_proto_msgTypes[52] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use SetGroupMasterResp.ProtoReflect.Descriptor instead. +func (*SetGroupMasterResp) Descriptor() ([]byte, []int) { + return file_group_group_proto_rawDescGZIP(), []int{52} +} + var File_group_group_proto protoreflect.FileDescriptor var file_group_group_proto_rawDesc = []byte{ @@ -3393,7 +3518,7 @@ var file_group_group_proto_rawDesc = []byte{ 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0a, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x22, 0x83, + 0x09, 0x52, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x22, 0xa1, 0x01, 0x0a, 0x0c, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x12, 0x2d, 0x0a, 0x09, 0x43, 0x4d, 0x53, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x43, 0x4d, 0x53, 0x47, 0x72, @@ -3402,217 +3527,235 @@ var file_group_group_proto_rawDesc = []byte{ 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0a, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x76, 0x0a, 0x0c, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, - 0x73, 0x52, 0x65, 0x71, 0x12, 0x44, 0x0a, 0x0a, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, - 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0a, - 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x70, - 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x22, 0xa0, 0x01, 0x0a, - 0x0d, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x52, 0x65, 0x73, 0x70, 0x12, 0x2d, - 0x0a, 0x09, 0x43, 0x4d, 0x53, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, - 0x0b, 0x32, 0x0f, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x43, 0x4d, 0x53, 0x47, 0x72, 0x6f, - 0x75, 0x70, 0x52, 0x09, 0x43, 0x4d, 0x53, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x12, 0x44, 0x0a, - 0x0a, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x24, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, - 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x50, 0x61, 0x67, - 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0a, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4e, 0x75, 0x6d, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4e, 0x75, 0x6d, 0x22, - 0x4f, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, - 0x72, 0x52, 0x65, 0x71, 0x12, 0x18, 0x0a, 0x07, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x12, 0x20, - 0x0a, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, - 0x22, 0x6b, 0x0a, 0x15, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, - 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x71, 0x12, 0x18, 0x0a, 0x07, 0x47, 0x72, 0x6f, - 0x75, 0x70, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x47, 0x72, 0x6f, 0x75, - 0x70, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x4f, - 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x22, 0x18, 0x0a, - 0x16, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x53, 0x74, 0x61, - 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x22, 0x86, 0x01, 0x0a, 0x12, 0x4f, 0x70, 0x65, 0x72, - 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x52, 0x6f, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x12, 0x18, - 0x0a, 0x07, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x07, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x55, 0x73, 0x65, 0x72, - 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, - 0x12, 0x1c, 0x0a, 0x09, 0x52, 0x6f, 0x6c, 0x65, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x05, 0x52, 0x09, 0x52, 0x6f, 0x6c, 0x65, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x20, - 0x0a, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, - 0x22, 0x15, 0x0a, 0x13, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x52, - 0x6f, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x22, 0x4c, 0x0a, 0x0e, 0x44, 0x65, 0x6c, 0x65, 0x74, - 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x12, 0x18, 0x0a, 0x07, 0x47, 0x72, 0x6f, + 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1c, 0x0a, 0x09, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4e, 0x75, 0x6d, + 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4e, 0x75, + 0x6d, 0x73, 0x22, 0x76, 0x0a, 0x0c, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x52, + 0x65, 0x71, 0x12, 0x44, 0x0a, 0x0a, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, + 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0a, 0x50, 0x61, + 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x70, 0x65, 0x72, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x4f, + 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x22, 0xa0, 0x01, 0x0a, 0x0d, 0x47, + 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x52, 0x65, 0x73, 0x70, 0x12, 0x2d, 0x0a, 0x09, + 0x43, 0x4d, 0x53, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x0f, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x43, 0x4d, 0x53, 0x47, 0x72, 0x6f, 0x75, 0x70, + 0x52, 0x09, 0x43, 0x4d, 0x53, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x12, 0x44, 0x0a, 0x0a, 0x50, + 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x24, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, + 0x61, 0x6d, 0x73, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x50, 0x61, 0x67, 0x69, 0x6e, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0a, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4e, 0x75, 0x6d, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x05, 0x52, 0x08, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4e, 0x75, 0x6d, 0x22, 0x4f, 0x0a, + 0x11, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, + 0x65, 0x71, 0x12, 0x18, 0x0a, 0x07, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x07, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x0b, + 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x22, 0x6b, + 0x0a, 0x15, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x53, 0x74, + 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x71, 0x12, 0x18, 0x0a, 0x07, 0x47, 0x72, 0x6f, 0x75, 0x70, + 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, + 0x64, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x06, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x70, 0x65, + 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, + 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x22, 0x18, 0x0a, 0x16, 0x4f, + 0x70, 0x65, 0x72, 0x61, 0x74, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x53, 0x74, 0x61, 0x74, 0x75, + 0x73, 0x52, 0x65, 0x73, 0x70, 0x22, 0x86, 0x01, 0x0a, 0x12, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, + 0x65, 0x55, 0x73, 0x65, 0x72, 0x52, 0x6f, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x12, 0x18, 0x0a, 0x07, + 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x47, + 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x1c, + 0x0a, 0x09, 0x52, 0x6f, 0x6c, 0x65, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x09, 0x52, 0x6f, 0x6c, 0x65, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x20, 0x0a, 0x0b, + 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x22, 0x15, + 0x0a, 0x13, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x52, 0x6f, 0x6c, + 0x65, 0x52, 0x65, 0x73, 0x70, 0x22, 0x4c, 0x0a, 0x0e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x47, + 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x12, 0x18, 0x0a, 0x07, 0x47, 0x72, 0x6f, 0x75, 0x70, + 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, + 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x49, 0x44, 0x22, 0x11, 0x0a, 0x0f, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x47, 0x72, 0x6f, + 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x22, 0x4d, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, + 0x75, 0x70, 0x42, 0x79, 0x49, 0x64, 0x52, 0x65, 0x71, 0x12, 0x18, 0x0a, 0x07, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x22, 0x11, 0x0a, 0x0f, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x47, - 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x22, 0x4d, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x47, - 0x72, 0x6f, 0x75, 0x70, 0x42, 0x79, 0x49, 0x64, 0x52, 0x65, 0x71, 0x12, 0x18, 0x0a, 0x07, 0x47, - 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x47, 0x72, - 0x6f, 0x75, 0x70, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x4f, 0x70, 0x65, 0x72, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x22, 0x3f, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x47, 0x72, - 0x6f, 0x75, 0x70, 0x42, 0x79, 0x49, 0x64, 0x52, 0x65, 0x73, 0x70, 0x12, 0x2b, 0x0a, 0x08, 0x43, - 0x4d, 0x53, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, - 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x43, 0x4d, 0x53, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x08, - 0x43, 0x4d, 0x53, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x22, 0x99, 0x01, 0x0a, 0x15, 0x47, 0x65, 0x74, - 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x43, 0x4d, 0x53, 0x52, - 0x65, 0x71, 0x12, 0x18, 0x0a, 0x07, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x07, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x12, 0x44, 0x0a, 0x0a, - 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x24, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, - 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x50, 0x61, 0x67, 0x69, + 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x22, 0x3f, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, + 0x70, 0x42, 0x79, 0x49, 0x64, 0x52, 0x65, 0x73, 0x70, 0x12, 0x2b, 0x0a, 0x08, 0x43, 0x4d, 0x53, + 0x47, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x67, 0x72, + 0x6f, 0x75, 0x70, 0x2e, 0x43, 0x4d, 0x53, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x08, 0x43, 0x4d, + 0x53, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x22, 0xb5, 0x01, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x47, 0x72, + 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x43, 0x4d, 0x53, 0x52, 0x65, 0x71, + 0x12, 0x18, 0x0a, 0x07, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x07, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x55, 0x73, + 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x55, 0x73, + 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x44, 0x0a, 0x0a, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x73, 0x65, 0x72, + 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x52, 0x0a, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x20, 0x0a, 0x0b, + 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x22, 0xc1, + 0x01, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, + 0x72, 0x73, 0x43, 0x4d, 0x53, 0x52, 0x65, 0x73, 0x70, 0x12, 0x40, 0x0a, 0x07, 0x6d, 0x65, 0x6d, + 0x62, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x73, 0x65, 0x72, + 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x47, + 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x46, 0x75, 0x6c, 0x6c, 0x49, 0x6e, + 0x66, 0x6f, 0x52, 0x07, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x12, 0x45, 0x0a, 0x0a, 0x50, + 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x25, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, + 0x61, 0x6d, 0x73, 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0a, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, + 0x6f, 0x6e, 0x12, 0x1e, 0x0a, 0x0a, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x73, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x4e, 0x75, + 0x6d, 0x73, 0x22, 0x70, 0x0a, 0x18, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x47, 0x72, 0x6f, 0x75, + 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x43, 0x4d, 0x53, 0x52, 0x65, 0x71, 0x12, 0x18, + 0x0a, 0x07, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x07, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x55, 0x73, 0x65, 0x72, + 0x49, 0x64, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, 0x55, 0x73, 0x65, 0x72, 0x49, + 0x64, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x49, 0x44, 0x22, 0xa0, 0x01, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, - 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x43, 0x4d, 0x53, 0x52, 0x65, 0x73, 0x70, 0x12, - 0x40, 0x0a, 0x07, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x26, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, - 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, - 0x46, 0x75, 0x6c, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x07, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, - 0x73, 0x12, 0x44, 0x0a, 0x0a, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, - 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, - 0x74, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0a, 0x50, 0x61, 0x67, - 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x70, 0x0a, 0x18, 0x52, 0x65, 0x6d, 0x6f, 0x76, - 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x43, 0x4d, 0x53, - 0x52, 0x65, 0x71, 0x12, 0x18, 0x0a, 0x07, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x12, 0x18, 0x0a, - 0x07, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, - 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x4f, 0x70, - 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x22, 0x4d, 0x0a, 0x19, 0x52, 0x65, 0x6d, - 0x6f, 0x76, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x43, - 0x4d, 0x53, 0x52, 0x65, 0x73, 0x70, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, - 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, - 0x12, 0x16, 0x0a, 0x06, 0x66, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, - 0x52, 0x06, 0x66, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x22, 0x6d, 0x0a, 0x15, 0x41, 0x64, 0x64, 0x47, - 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x43, 0x4d, 0x53, 0x52, 0x65, - 0x71, 0x12, 0x18, 0x0a, 0x07, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x07, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x55, - 0x73, 0x65, 0x72, 0x49, 0x64, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, 0x55, 0x73, - 0x65, 0x72, 0x49, 0x64, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x4f, 0x70, 0x65, 0x72, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x22, 0x4a, 0x0a, 0x16, 0x41, 0x64, 0x64, 0x47, 0x72, + 0x6f, 0x6e, 0x49, 0x44, 0x22, 0x4d, 0x0a, 0x19, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x43, 0x4d, 0x53, 0x52, 0x65, 0x73, 0x70, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x66, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x66, 0x61, 0x69, - 0x6c, 0x65, 0x64, 0x32, 0xc5, 0x0d, 0x0a, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x3c, 0x0a, - 0x0b, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x15, 0x2e, 0x67, - 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, - 0x52, 0x65, 0x71, 0x1a, 0x16, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x43, 0x72, 0x65, 0x61, - 0x74, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x12, 0x36, 0x0a, 0x09, 0x6a, - 0x6f, 0x69, 0x6e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x13, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, - 0x2e, 0x4a, 0x6f, 0x69, 0x6e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x1a, 0x14, 0x2e, - 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x4a, 0x6f, 0x69, 0x6e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, - 0x65, 0x73, 0x70, 0x12, 0x36, 0x0a, 0x09, 0x71, 0x75, 0x69, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, - 0x12, 0x13, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x51, 0x75, 0x69, 0x74, 0x47, 0x72, 0x6f, - 0x75, 0x70, 0x52, 0x65, 0x71, 0x1a, 0x14, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x51, 0x75, - 0x69, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x12, 0x42, 0x0a, 0x0d, 0x67, - 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x17, 0x2e, 0x67, - 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x49, 0x6e, - 0x66, 0x6f, 0x52, 0x65, 0x71, 0x1a, 0x18, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x65, - 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x12, - 0x3f, 0x0a, 0x0c, 0x73, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x12, - 0x16, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x53, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, - 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x1a, 0x17, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, - 0x53, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, - 0x12, 0x60, 0x0a, 0x17, 0x67, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x70, 0x70, 0x6c, - 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x21, 0x2e, 0x67, 0x72, - 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x70, 0x70, 0x6c, - 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x22, - 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, - 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, - 0x73, 0x70, 0x12, 0x51, 0x0a, 0x12, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x47, 0x72, - 0x6f, 0x75, 0x70, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x12, 0x1c, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, - 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4f, 0x77, - 0x6e, 0x65, 0x72, 0x52, 0x65, 0x71, 0x1a, 0x1d, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x54, - 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4f, 0x77, 0x6e, 0x65, - 0x72, 0x52, 0x65, 0x73, 0x70, 0x12, 0x63, 0x0a, 0x18, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x70, - 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x12, 0x22, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, - 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, - 0x73, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x23, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x72, - 0x6f, 0x75, 0x70, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, - 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x51, 0x0a, 0x12, 0x67, 0x65, - 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, - 0x12, 0x1c, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, - 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x1d, + 0x6c, 0x65, 0x64, 0x22, 0x6d, 0x0a, 0x15, 0x41, 0x64, 0x64, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, + 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x43, 0x4d, 0x53, 0x52, 0x65, 0x71, 0x12, 0x18, 0x0a, 0x07, + 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x47, + 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, + 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x73, + 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x49, 0x64, 0x22, 0x4a, 0x0a, 0x16, 0x41, 0x64, 0x64, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, + 0x6d, 0x62, 0x65, 0x72, 0x73, 0x43, 0x4d, 0x53, 0x52, 0x65, 0x73, 0x70, 0x12, 0x18, 0x0a, 0x07, + 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, 0x73, + 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x66, 0x61, 0x69, 0x6c, 0x65, 0x64, + 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x66, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x22, 0x67, + 0x0a, 0x11, 0x53, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x61, 0x73, 0x74, 0x65, 0x72, + 0x52, 0x65, 0x71, 0x12, 0x18, 0x0a, 0x07, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x12, 0x16, 0x0a, + 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x55, + 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x4f, 0x70, 0x65, 0x72, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x22, 0x14, 0x0a, 0x12, 0x53, 0x65, 0x74, 0x47, 0x72, + 0x6f, 0x75, 0x70, 0x4d, 0x61, 0x73, 0x74, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x32, 0x8c, 0x0e, + 0x0a, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x3c, 0x0a, 0x0b, 0x63, 0x72, 0x65, 0x61, 0x74, + 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x15, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x43, + 0x72, 0x65, 0x61, 0x74, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x1a, 0x16, 0x2e, + 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x47, 0x72, 0x6f, 0x75, + 0x70, 0x52, 0x65, 0x73, 0x70, 0x12, 0x36, 0x0a, 0x09, 0x6a, 0x6f, 0x69, 0x6e, 0x47, 0x72, 0x6f, + 0x75, 0x70, 0x12, 0x13, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x4a, 0x6f, 0x69, 0x6e, 0x47, + 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x1a, 0x14, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, + 0x4a, 0x6f, 0x69, 0x6e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x12, 0x36, 0x0a, + 0x09, 0x71, 0x75, 0x69, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x13, 0x2e, 0x67, 0x72, 0x6f, + 0x75, 0x70, 0x2e, 0x51, 0x75, 0x69, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x1a, + 0x14, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x51, 0x75, 0x69, 0x74, 0x47, 0x72, 0x6f, 0x75, + 0x70, 0x52, 0x65, 0x73, 0x70, 0x12, 0x42, 0x0a, 0x0d, 0x67, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, + 0x70, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x17, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47, + 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x1a, + 0x18, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, + 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x12, 0x3f, 0x0a, 0x0c, 0x73, 0x65, 0x74, + 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x16, 0x2e, 0x67, 0x72, 0x6f, 0x75, + 0x70, 0x2e, 0x53, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, + 0x71, 0x1a, 0x17, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x53, 0x65, 0x74, 0x47, 0x72, 0x6f, + 0x75, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x12, 0x60, 0x0a, 0x17, 0x67, 0x65, + 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x21, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x65, + 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x22, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, + 0x2e, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x51, 0x0a, 0x12, + 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4f, 0x77, 0x6e, + 0x65, 0x72, 0x12, 0x1c, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, + 0x66, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x52, 0x65, 0x71, + 0x1a, 0x1d, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, + 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x12, + 0x63, 0x0a, 0x18, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x22, 0x2e, 0x67, 0x72, + 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x65, 0x71, 0x1a, + 0x23, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x70, 0x70, + 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x52, 0x65, 0x73, 0x70, 0x12, 0x51, 0x0a, 0x12, 0x67, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, + 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x1c, 0x2e, 0x67, 0x72, 0x6f, + 0x75, 0x70, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, + 0x72, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x1d, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, + 0x2e, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x4c, + 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x54, 0x0a, 0x13, 0x67, 0x65, 0x74, 0x47, 0x72, + 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1d, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, - 0x65, 0x6d, 0x62, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x54, 0x0a, - 0x13, 0x67, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, - 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1d, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x65, 0x74, - 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x49, 0x6e, 0x66, 0x6f, - 0x52, 0x65, 0x71, 0x1a, 0x1e, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x65, 0x74, 0x47, - 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x52, - 0x65, 0x73, 0x70, 0x12, 0x48, 0x0a, 0x0f, 0x6b, 0x69, 0x63, 0x6b, 0x47, 0x72, 0x6f, 0x75, 0x70, - 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x19, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x4b, - 0x69, 0x63, 0x6b, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x65, - 0x71, 0x1a, 0x1a, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x4b, 0x69, 0x63, 0x6b, 0x47, 0x72, - 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x12, 0x51, 0x0a, - 0x12, 0x67, 0x65, 0x74, 0x4a, 0x6f, 0x69, 0x6e, 0x65, 0x64, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4c, - 0x69, 0x73, 0x74, 0x12, 0x1c, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x65, 0x74, 0x4a, - 0x6f, 0x69, 0x6e, 0x65, 0x64, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, - 0x71, 0x1a, 0x1d, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x65, 0x74, 0x4a, 0x6f, 0x69, - 0x6e, 0x65, 0x64, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, - 0x12, 0x4e, 0x0a, 0x11, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x54, 0x6f, - 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x1b, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x49, 0x6e, - 0x76, 0x69, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x54, 0x6f, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, - 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x49, 0x6e, 0x76, 0x69, 0x74, - 0x65, 0x55, 0x73, 0x65, 0x72, 0x54, 0x6f, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, - 0x12, 0x4e, 0x0a, 0x11, 0x67, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x6c, 0x6c, 0x4d, - 0x65, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x1b, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x65, - 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x6c, 0x6c, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, - 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x72, - 0x6f, 0x75, 0x70, 0x41, 0x6c, 0x6c, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, - 0x12, 0x3f, 0x0a, 0x0c, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x42, 0x79, 0x49, 0x64, - 0x12, 0x16, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, - 0x70, 0x42, 0x79, 0x49, 0x64, 0x52, 0x65, 0x71, 0x1a, 0x17, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, - 0x2e, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x42, 0x79, 0x49, 0x64, 0x52, 0x65, 0x73, - 0x70, 0x12, 0x33, 0x0a, 0x08, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x12, 0x2e, - 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, - 0x71, 0x1a, 0x13, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, - 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x12, 0x36, 0x0a, 0x09, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, - 0x75, 0x70, 0x73, 0x12, 0x13, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x65, 0x74, 0x47, - 0x72, 0x6f, 0x75, 0x70, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x14, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, - 0x2e, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x52, 0x65, 0x73, 0x70, 0x12, 0x51, - 0x0a, 0x12, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x53, 0x74, - 0x61, 0x74, 0x75, 0x73, 0x12, 0x1c, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x4f, 0x70, 0x65, - 0x72, 0x61, 0x74, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, - 0x65, 0x71, 0x1a, 0x1d, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, - 0x74, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, - 0x70, 0x12, 0x48, 0x0a, 0x0f, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, - 0x52, 0x6f, 0x6c, 0x65, 0x12, 0x19, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x4f, 0x70, 0x65, - 0x72, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x52, 0x6f, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x1a, - 0x1a, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x65, 0x55, - 0x73, 0x65, 0x72, 0x52, 0x6f, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x3c, 0x0a, 0x0b, 0x44, - 0x65, 0x6c, 0x65, 0x74, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x15, 0x2e, 0x67, 0x72, 0x6f, - 0x75, 0x70, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, - 0x71, 0x1a, 0x16, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, - 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x12, 0x51, 0x0a, 0x12, 0x47, 0x65, 0x74, - 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x43, 0x4d, 0x53, 0x12, - 0x1c, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, - 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x43, 0x4d, 0x53, 0x52, 0x65, 0x71, 0x1a, 0x1d, 0x2e, + 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x1a, 0x1e, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, - 0x6d, 0x62, 0x65, 0x72, 0x73, 0x43, 0x4d, 0x53, 0x52, 0x65, 0x73, 0x70, 0x12, 0x5a, 0x0a, 0x15, - 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, - 0x72, 0x73, 0x43, 0x4d, 0x53, 0x12, 0x1f, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x52, 0x65, - 0x6d, 0x6f, 0x76, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, - 0x43, 0x4d, 0x53, 0x52, 0x65, 0x71, 0x1a, 0x20, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x52, - 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, - 0x73, 0x43, 0x4d, 0x53, 0x52, 0x65, 0x73, 0x70, 0x12, 0x51, 0x0a, 0x12, 0x41, 0x64, 0x64, 0x47, - 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x43, 0x4d, 0x53, 0x12, 0x1c, - 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x41, 0x64, 0x64, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, - 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x43, 0x4d, 0x53, 0x52, 0x65, 0x71, 0x1a, 0x1d, 0x2e, 0x67, - 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x41, 0x64, 0x64, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, - 0x62, 0x65, 0x72, 0x73, 0x43, 0x4d, 0x53, 0x52, 0x65, 0x73, 0x70, 0x42, 0x0f, 0x5a, 0x0d, 0x2e, - 0x2f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x3b, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x62, 0x06, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x33, + 0x6d, 0x62, 0x65, 0x72, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x12, 0x48, 0x0a, + 0x0f, 0x6b, 0x69, 0x63, 0x6b, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, + 0x12, 0x19, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x4b, 0x69, 0x63, 0x6b, 0x47, 0x72, 0x6f, + 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x65, 0x71, 0x1a, 0x1a, 0x2e, 0x67, 0x72, + 0x6f, 0x75, 0x70, 0x2e, 0x4b, 0x69, 0x63, 0x6b, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, + 0x62, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x12, 0x51, 0x0a, 0x12, 0x67, 0x65, 0x74, 0x4a, 0x6f, + 0x69, 0x6e, 0x65, 0x64, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x1c, 0x2e, + 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x65, 0x74, 0x4a, 0x6f, 0x69, 0x6e, 0x65, 0x64, 0x47, + 0x72, 0x6f, 0x75, 0x70, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x1d, 0x2e, 0x67, 0x72, + 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x65, 0x74, 0x4a, 0x6f, 0x69, 0x6e, 0x65, 0x64, 0x47, 0x72, 0x6f, + 0x75, 0x70, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x4e, 0x0a, 0x11, 0x69, 0x6e, + 0x76, 0x69, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x54, 0x6f, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, + 0x1b, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x55, 0x73, + 0x65, 0x72, 0x54, 0x6f, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x67, + 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x54, + 0x6f, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x12, 0x4e, 0x0a, 0x11, 0x67, 0x65, + 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x6c, 0x6c, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x12, + 0x1b, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, + 0x41, 0x6c, 0x6c, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x67, + 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x6c, 0x6c, + 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x12, 0x3f, 0x0a, 0x0c, 0x47, 0x65, + 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x42, 0x79, 0x49, 0x64, 0x12, 0x16, 0x2e, 0x67, 0x72, 0x6f, + 0x75, 0x70, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x42, 0x79, 0x49, 0x64, 0x52, + 0x65, 0x71, 0x1a, 0x17, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x72, + 0x6f, 0x75, 0x70, 0x42, 0x79, 0x49, 0x64, 0x52, 0x65, 0x73, 0x70, 0x12, 0x33, 0x0a, 0x08, 0x47, + 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x12, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, + 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x1a, 0x13, 0x2e, 0x67, 0x72, + 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, + 0x12, 0x36, 0x0a, 0x09, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x12, 0x13, 0x2e, + 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x52, + 0x65, 0x71, 0x1a, 0x14, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x72, + 0x6f, 0x75, 0x70, 0x73, 0x52, 0x65, 0x73, 0x70, 0x12, 0x51, 0x0a, 0x12, 0x4f, 0x70, 0x65, 0x72, + 0x61, 0x74, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1c, + 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x65, 0x47, 0x72, + 0x6f, 0x75, 0x70, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x1d, 0x2e, 0x67, + 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x65, 0x47, 0x72, 0x6f, 0x75, + 0x70, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x12, 0x48, 0x0a, 0x0f, 0x4f, + 0x70, 0x65, 0x72, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x52, 0x6f, 0x6c, 0x65, 0x12, 0x19, + 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x65, 0x55, 0x73, + 0x65, 0x72, 0x52, 0x6f, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x1a, 0x2e, 0x67, 0x72, 0x6f, 0x75, + 0x70, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x52, 0x6f, 0x6c, + 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x3c, 0x0a, 0x0b, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x47, + 0x72, 0x6f, 0x75, 0x70, 0x12, 0x15, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x44, 0x65, 0x6c, + 0x65, 0x74, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x1a, 0x16, 0x2e, 0x67, 0x72, + 0x6f, 0x75, 0x70, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, + 0x65, 0x73, 0x70, 0x12, 0x51, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, + 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x43, 0x4d, 0x53, 0x12, 0x1c, 0x2e, 0x67, 0x72, 0x6f, 0x75, + 0x70, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, + 0x73, 0x43, 0x4d, 0x53, 0x52, 0x65, 0x71, 0x1a, 0x1d, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, + 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x43, + 0x4d, 0x53, 0x52, 0x65, 0x73, 0x70, 0x12, 0x5a, 0x0a, 0x15, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, + 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x43, 0x4d, 0x53, 0x12, + 0x1f, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x47, 0x72, + 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x43, 0x4d, 0x53, 0x52, 0x65, 0x71, + 0x1a, 0x20, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x47, + 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x43, 0x4d, 0x53, 0x52, 0x65, + 0x73, 0x70, 0x12, 0x51, 0x0a, 0x12, 0x41, 0x64, 0x64, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, + 0x6d, 0x62, 0x65, 0x72, 0x73, 0x43, 0x4d, 0x53, 0x12, 0x1c, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, + 0x2e, 0x41, 0x64, 0x64, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, + 0x43, 0x4d, 0x53, 0x52, 0x65, 0x71, 0x1a, 0x1d, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x41, + 0x64, 0x64, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x43, 0x4d, + 0x53, 0x52, 0x65, 0x73, 0x70, 0x12, 0x45, 0x0a, 0x0e, 0x53, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, + 0x70, 0x4d, 0x61, 0x73, 0x74, 0x65, 0x72, 0x12, 0x18, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, + 0x53, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x61, 0x73, 0x74, 0x65, 0x72, 0x52, 0x65, + 0x71, 0x1a, 0x19, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x53, 0x65, 0x74, 0x47, 0x72, 0x6f, + 0x75, 0x70, 0x4d, 0x61, 0x73, 0x74, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x42, 0x0f, 0x5a, 0x0d, + 0x2e, 0x2f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x3b, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x62, 0x06, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -3627,7 +3770,7 @@ func file_group_group_proto_rawDescGZIP() []byte { return file_group_group_proto_rawDescData } -var file_group_group_proto_msgTypes = make([]protoimpl.MessageInfo, 51) +var file_group_group_proto_msgTypes = make([]protoimpl.MessageInfo, 53) var file_group_group_proto_goTypes = []interface{}{ (*CommonResp)(nil), // 0: group.CommonResp (*GroupAddMemberInfo)(nil), // 1: group.GroupAddMemberInfo @@ -3680,40 +3823,43 @@ var file_group_group_proto_goTypes = []interface{}{ (*RemoveGroupMembersCMSResp)(nil), // 48: group.RemoveGroupMembersCMSResp (*AddGroupMembersCMSReq)(nil), // 49: group.AddGroupMembersCMSReq (*AddGroupMembersCMSResp)(nil), // 50: group.AddGroupMembersCMSResp - (*sdk_ws.GroupInfo)(nil), // 51: server_api_params.GroupInfo - (*sdk_ws.GroupRequest)(nil), // 52: server_api_params.GroupRequest - (*sdk_ws.GroupMemberFullInfo)(nil), // 53: server_api_params.GroupMemberFullInfo - (*sdk_ws.RequestPagination)(nil), // 54: server_api_params.RequestPagination + (*SetGroupMasterReq)(nil), // 51: group.SetGroupMasterReq + (*SetGroupMasterResp)(nil), // 52: group.SetGroupMasterResp + (*sdk_ws.GroupInfo)(nil), // 53: server_api_params.GroupInfo + (*sdk_ws.GroupRequest)(nil), // 54: server_api_params.GroupRequest + (*sdk_ws.GroupMemberFullInfo)(nil), // 55: server_api_params.GroupMemberFullInfo + (*sdk_ws.RequestPagination)(nil), // 56: server_api_params.RequestPagination + (*sdk_ws.ResponsePagination)(nil), // 57: server_api_params.ResponsePagination } var file_group_group_proto_depIdxs = []int32{ 1, // 0: group.CreateGroupReq.InitMemberList:type_name -> group.GroupAddMemberInfo - 51, // 1: group.CreateGroupReq.GroupInfo:type_name -> server_api_params.GroupInfo - 51, // 2: group.CreateGroupResp.GroupInfo:type_name -> server_api_params.GroupInfo - 51, // 3: group.GetGroupsInfoResp.GroupInfoList:type_name -> server_api_params.GroupInfo - 51, // 4: group.SetGroupInfoReq.GroupInfo:type_name -> server_api_params.GroupInfo + 53, // 1: group.CreateGroupReq.GroupInfo:type_name -> server_api_params.GroupInfo + 53, // 2: group.CreateGroupResp.GroupInfo:type_name -> server_api_params.GroupInfo + 53, // 3: group.GetGroupsInfoResp.GroupInfoList:type_name -> server_api_params.GroupInfo + 53, // 4: group.SetGroupInfoReq.GroupInfo:type_name -> server_api_params.GroupInfo 0, // 5: group.SetGroupInfoResp.CommonResp:type_name -> group.CommonResp - 52, // 6: group.GetGroupApplicationListResp.GroupRequestList:type_name -> server_api_params.GroupRequest + 54, // 6: group.GetGroupApplicationListResp.GroupRequestList:type_name -> server_api_params.GroupRequest 0, // 7: group.TransferGroupOwnerResp.CommonResp:type_name -> group.CommonResp 0, // 8: group.JoinGroupResp.CommonResp:type_name -> group.CommonResp 0, // 9: group.GroupApplicationResponseResp.CommonResp:type_name -> group.CommonResp 0, // 10: group.QuitGroupResp.CommonResp:type_name -> group.CommonResp - 53, // 11: group.GetGroupMemberListResp.memberList:type_name -> server_api_params.GroupMemberFullInfo - 53, // 12: group.GetGroupMembersInfoResp.memberList:type_name -> server_api_params.GroupMemberFullInfo + 55, // 11: group.GetGroupMemberListResp.memberList:type_name -> server_api_params.GroupMemberFullInfo + 55, // 12: group.GetGroupMembersInfoResp.memberList:type_name -> server_api_params.GroupMemberFullInfo 23, // 13: group.KickGroupMemberResp.Id2ResultList:type_name -> group.Id2Result - 51, // 14: group.GetJoinedGroupListResp.GroupList:type_name -> server_api_params.GroupInfo + 53, // 14: group.GetJoinedGroupListResp.GroupList:type_name -> server_api_params.GroupInfo 23, // 15: group.InviteUserToGroupResp.Id2ResultList:type_name -> group.Id2Result - 53, // 16: group.GetGroupAllMemberResp.memberList:type_name -> server_api_params.GroupMemberFullInfo - 51, // 17: group.CMSGroup.GroupInfo:type_name -> server_api_params.GroupInfo - 54, // 18: group.GetGroupReq.Pagination:type_name -> server_api_params.RequestPagination + 55, // 16: group.GetGroupAllMemberResp.memberList:type_name -> server_api_params.GroupMemberFullInfo + 53, // 17: group.CMSGroup.GroupInfo:type_name -> server_api_params.GroupInfo + 56, // 18: group.GetGroupReq.Pagination:type_name -> server_api_params.RequestPagination 31, // 19: group.GetGroupResp.CMSGroups:type_name -> group.CMSGroup - 54, // 20: group.GetGroupResp.Pagination:type_name -> server_api_params.RequestPagination - 54, // 21: group.GetGroupsReq.Pagination:type_name -> server_api_params.RequestPagination + 56, // 20: group.GetGroupResp.Pagination:type_name -> server_api_params.RequestPagination + 56, // 21: group.GetGroupsReq.Pagination:type_name -> server_api_params.RequestPagination 31, // 22: group.GetGroupsResp.CMSGroups:type_name -> group.CMSGroup - 54, // 23: group.GetGroupsResp.Pagination:type_name -> server_api_params.RequestPagination + 56, // 23: group.GetGroupsResp.Pagination:type_name -> server_api_params.RequestPagination 31, // 24: group.GetGroupByIdResp.CMSGroup:type_name -> group.CMSGroup - 54, // 25: group.GetGroupMembersCMSReq.Pagination:type_name -> server_api_params.RequestPagination - 53, // 26: group.GetGroupMembersCMSResp.members:type_name -> server_api_params.GroupMemberFullInfo - 54, // 27: group.GetGroupMembersCMSResp.Pagination:type_name -> server_api_params.RequestPagination + 56, // 25: group.GetGroupMembersCMSReq.Pagination:type_name -> server_api_params.RequestPagination + 55, // 26: group.GetGroupMembersCMSResp.members:type_name -> server_api_params.GroupMemberFullInfo + 57, // 27: group.GetGroupMembersCMSResp.Pagination:type_name -> server_api_params.ResponsePagination 2, // 28: group.group.createGroup:input_type -> group.CreateGroupReq 12, // 29: group.group.joinGroup:input_type -> group.JoinGroupReq 16, // 30: group.group.quitGroup:input_type -> group.QuitGroupReq @@ -3737,31 +3883,33 @@ var file_group_group_proto_depIdxs = []int32{ 45, // 48: group.group.GetGroupMembersCMS:input_type -> group.GetGroupMembersCMSReq 47, // 49: group.group.RemoveGroupMembersCMS:input_type -> group.RemoveGroupMembersCMSReq 49, // 50: group.group.AddGroupMembersCMS:input_type -> group.AddGroupMembersCMSReq - 3, // 51: group.group.createGroup:output_type -> group.CreateGroupResp - 13, // 52: group.group.joinGroup:output_type -> group.JoinGroupResp - 17, // 53: group.group.quitGroup:output_type -> group.QuitGroupResp - 5, // 54: group.group.getGroupsInfo:output_type -> group.GetGroupsInfoResp - 7, // 55: group.group.setGroupInfo:output_type -> group.SetGroupInfoResp - 9, // 56: group.group.getGroupApplicationList:output_type -> group.GetGroupApplicationListResp - 11, // 57: group.group.transferGroupOwner:output_type -> group.TransferGroupOwnerResp - 15, // 58: group.group.groupApplicationResponse:output_type -> group.GroupApplicationResponseResp - 19, // 59: group.group.getGroupMemberList:output_type -> group.GetGroupMemberListResp - 21, // 60: group.group.getGroupMembersInfo:output_type -> group.GetGroupMembersInfoResp - 24, // 61: group.group.kickGroupMember:output_type -> group.KickGroupMemberResp - 26, // 62: group.group.getJoinedGroupList:output_type -> group.GetJoinedGroupListResp - 28, // 63: group.group.inviteUserToGroup:output_type -> group.InviteUserToGroupResp - 30, // 64: group.group.getGroupAllMember:output_type -> group.GetGroupAllMemberResp - 44, // 65: group.group.GetGroupById:output_type -> group.GetGroupByIdResp - 33, // 66: group.group.GetGroup:output_type -> group.GetGroupResp - 35, // 67: group.group.GetGroups:output_type -> group.GetGroupsResp - 38, // 68: group.group.OperateGroupStatus:output_type -> group.OperateGroupStatusResp - 40, // 69: group.group.OperateUserRole:output_type -> group.OperateUserRoleResp - 42, // 70: group.group.DeleteGroup:output_type -> group.DeleteGroupResp - 46, // 71: group.group.GetGroupMembersCMS:output_type -> group.GetGroupMembersCMSResp - 48, // 72: group.group.RemoveGroupMembersCMS:output_type -> group.RemoveGroupMembersCMSResp - 50, // 73: group.group.AddGroupMembersCMS:output_type -> group.AddGroupMembersCMSResp - 51, // [51:74] is the sub-list for method output_type - 28, // [28:51] is the sub-list for method input_type + 51, // 51: group.group.SetGroupMaster:input_type -> group.SetGroupMasterReq + 3, // 52: group.group.createGroup:output_type -> group.CreateGroupResp + 13, // 53: group.group.joinGroup:output_type -> group.JoinGroupResp + 17, // 54: group.group.quitGroup:output_type -> group.QuitGroupResp + 5, // 55: group.group.getGroupsInfo:output_type -> group.GetGroupsInfoResp + 7, // 56: group.group.setGroupInfo:output_type -> group.SetGroupInfoResp + 9, // 57: group.group.getGroupApplicationList:output_type -> group.GetGroupApplicationListResp + 11, // 58: group.group.transferGroupOwner:output_type -> group.TransferGroupOwnerResp + 15, // 59: group.group.groupApplicationResponse:output_type -> group.GroupApplicationResponseResp + 19, // 60: group.group.getGroupMemberList:output_type -> group.GetGroupMemberListResp + 21, // 61: group.group.getGroupMembersInfo:output_type -> group.GetGroupMembersInfoResp + 24, // 62: group.group.kickGroupMember:output_type -> group.KickGroupMemberResp + 26, // 63: group.group.getJoinedGroupList:output_type -> group.GetJoinedGroupListResp + 28, // 64: group.group.inviteUserToGroup:output_type -> group.InviteUserToGroupResp + 30, // 65: group.group.getGroupAllMember:output_type -> group.GetGroupAllMemberResp + 44, // 66: group.group.GetGroupById:output_type -> group.GetGroupByIdResp + 33, // 67: group.group.GetGroup:output_type -> group.GetGroupResp + 35, // 68: group.group.GetGroups:output_type -> group.GetGroupsResp + 38, // 69: group.group.OperateGroupStatus:output_type -> group.OperateGroupStatusResp + 40, // 70: group.group.OperateUserRole:output_type -> group.OperateUserRoleResp + 42, // 71: group.group.DeleteGroup:output_type -> group.DeleteGroupResp + 46, // 72: group.group.GetGroupMembersCMS:output_type -> group.GetGroupMembersCMSResp + 48, // 73: group.group.RemoveGroupMembersCMS:output_type -> group.RemoveGroupMembersCMSResp + 50, // 74: group.group.AddGroupMembersCMS:output_type -> group.AddGroupMembersCMSResp + 52, // 75: group.group.SetGroupMaster:output_type -> group.SetGroupMasterResp + 52, // [52:76] is the sub-list for method output_type + 28, // [28:52] is the sub-list for method input_type 28, // [28:28] is the sub-list for extension type_name 28, // [28:28] is the sub-list for extension extendee 0, // [0:28] is the sub-list for field type_name @@ -4385,6 +4533,30 @@ func file_group_group_proto_init() { return nil } } + file_group_group_proto_msgTypes[51].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SetGroupMasterReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_group_group_proto_msgTypes[52].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SetGroupMasterResp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } } type x struct{} out := protoimpl.TypeBuilder{ @@ -4392,7 +4564,7 @@ func file_group_group_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_group_group_proto_rawDesc, NumEnums: 0, - NumMessages: 51, + NumMessages: 53, NumExtensions: 0, NumServices: 1, }, @@ -4441,6 +4613,7 @@ type GroupClient interface { GetGroupMembersCMS(ctx context.Context, in *GetGroupMembersCMSReq, opts ...grpc.CallOption) (*GetGroupMembersCMSResp, error) RemoveGroupMembersCMS(ctx context.Context, in *RemoveGroupMembersCMSReq, opts ...grpc.CallOption) (*RemoveGroupMembersCMSResp, error) AddGroupMembersCMS(ctx context.Context, in *AddGroupMembersCMSReq, opts ...grpc.CallOption) (*AddGroupMembersCMSResp, error) + SetGroupMaster(ctx context.Context, in *SetGroupMasterReq, opts ...grpc.CallOption) (*SetGroupMasterResp, error) } type groupClient struct { @@ -4658,6 +4831,15 @@ func (c *groupClient) AddGroupMembersCMS(ctx context.Context, in *AddGroupMember return out, nil } +func (c *groupClient) SetGroupMaster(ctx context.Context, in *SetGroupMasterReq, opts ...grpc.CallOption) (*SetGroupMasterResp, error) { + out := new(SetGroupMasterResp) + err := c.cc.Invoke(ctx, "/group.group/SetGroupMaster", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + // GroupServer is the server API for Group service. type GroupServer interface { CreateGroup(context.Context, *CreateGroupReq) (*CreateGroupResp, error) @@ -4683,6 +4865,7 @@ type GroupServer interface { GetGroupMembersCMS(context.Context, *GetGroupMembersCMSReq) (*GetGroupMembersCMSResp, error) RemoveGroupMembersCMS(context.Context, *RemoveGroupMembersCMSReq) (*RemoveGroupMembersCMSResp, error) AddGroupMembersCMS(context.Context, *AddGroupMembersCMSReq) (*AddGroupMembersCMSResp, error) + SetGroupMaster(context.Context, *SetGroupMasterReq) (*SetGroupMasterResp, error) } // UnimplementedGroupServer can be embedded to have forward compatible implementations. @@ -4758,6 +4941,9 @@ func (*UnimplementedGroupServer) RemoveGroupMembersCMS(context.Context, *RemoveG func (*UnimplementedGroupServer) AddGroupMembersCMS(context.Context, *AddGroupMembersCMSReq) (*AddGroupMembersCMSResp, error) { return nil, status.Errorf(codes.Unimplemented, "method AddGroupMembersCMS not implemented") } +func (*UnimplementedGroupServer) SetGroupMaster(context.Context, *SetGroupMasterReq) (*SetGroupMasterResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method SetGroupMaster not implemented") +} func RegisterGroupServer(s *grpc.Server, srv GroupServer) { s.RegisterService(&_Group_serviceDesc, srv) @@ -5177,6 +5363,24 @@ func _Group_AddGroupMembersCMS_Handler(srv interface{}, ctx context.Context, dec return interceptor(ctx, in, info, handler) } +func _Group_SetGroupMaster_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(SetGroupMasterReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(GroupServer).SetGroupMaster(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/group.group/SetGroupMaster", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(GroupServer).SetGroupMaster(ctx, req.(*SetGroupMasterReq)) + } + return interceptor(ctx, in, info, handler) +} + var _Group_serviceDesc = grpc.ServiceDesc{ ServiceName: "group.group", HandlerType: (*GroupServer)(nil), @@ -5273,6 +5477,10 @@ var _Group_serviceDesc = grpc.ServiceDesc{ MethodName: "AddGroupMembersCMS", Handler: _Group_AddGroupMembersCMS_Handler, }, + { + MethodName: "SetGroupMaster", + Handler: _Group_SetGroupMaster_Handler, + }, }, Streams: []grpc.StreamDesc{}, Metadata: "group/group.proto", diff --git a/pkg/proto/group/group.proto b/pkg/proto/group/group.proto index 6356c2805..725e8a0e2 100644 --- a/pkg/proto/group/group.proto +++ b/pkg/proto/group/group.proto @@ -210,6 +210,7 @@ message GetGroupReq { message GetGroupResp { repeated CMSGroup CMSGroups = 1; server_api_params.RequestPagination Pagination = 2; + int32 GroupNums = 3; } message GetGroupsReq { @@ -269,13 +270,15 @@ message GetGroupByIdResp { message GetGroupMembersCMSReq { string GroupId = 1; - server_api_params.RequestPagination Pagination = 2; - string OperationID = 3; + string UserName = 2; + server_api_params.RequestPagination Pagination = 3; + string OperationID = 4; } message GetGroupMembersCMSResp { - repeated server_api_params.GroupMemberFullInfo members = 3; - server_api_params.RequestPagination Pagination = 2; + repeated server_api_params.GroupMemberFullInfo members = 1; + server_api_params.ResponsePagination Pagination = 2; + int32 MemberNums = 3; } message RemoveGroupMembersCMSReq { @@ -292,7 +295,7 @@ message RemoveGroupMembersCMSResp { message AddGroupMembersCMSReq { string GroupId = 1; repeated string UserIds = 2; - string OperationID = 3; + string OperationId = 3; } message AddGroupMembersCMSResp { @@ -300,6 +303,16 @@ message AddGroupMembersCMSResp { repeated string failed = 2; } +message SetGroupMasterReq { + string GroupId = 1; + string UserId = 2; + string OperationId = 3; +} + +message SetGroupMasterResp { + +} + service group{ rpc createGroup(CreateGroupReq) returns(CreateGroupResp); rpc joinGroup(JoinGroupReq) returns(JoinGroupResp); diff --git a/pkg/proto/user/user.pb.go b/pkg/proto/user/user.pb.go index 37e9f7366..ebe89213f 100644 --- a/pkg/proto/user/user.pb.go +++ b/pkg/proto/user/user.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.26.0 -// protoc v3.19.3 +// protoc-gen-go v1.27.1 +// protoc v3.15.5 // source: user/user.proto package user @@ -1378,6 +1378,132 @@ func (x *GetUserByIdResp) GetUser() *User { return nil } +type GetUsersByNameReq struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + UserName string `protobuf:"bytes,1,opt,name=UserName,proto3" json:"UserName,omitempty"` + Pagination *sdk_ws.RequestPagination `protobuf:"bytes,2,opt,name=Pagination,proto3" json:"Pagination,omitempty"` + OperationID string `protobuf:"bytes,3,opt,name=OperationID,proto3" json:"OperationID,omitempty"` +} + +func (x *GetUsersByNameReq) Reset() { + *x = GetUsersByNameReq{} + if protoimpl.UnsafeEnabled { + mi := &file_user_user_proto_msgTypes[23] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetUsersByNameReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetUsersByNameReq) ProtoMessage() {} + +func (x *GetUsersByNameReq) ProtoReflect() protoreflect.Message { + mi := &file_user_user_proto_msgTypes[23] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetUsersByNameReq.ProtoReflect.Descriptor instead. +func (*GetUsersByNameReq) Descriptor() ([]byte, []int) { + return file_user_user_proto_rawDescGZIP(), []int{23} +} + +func (x *GetUsersByNameReq) GetUserName() string { + if x != nil { + return x.UserName + } + return "" +} + +func (x *GetUsersByNameReq) GetPagination() *sdk_ws.RequestPagination { + if x != nil { + return x.Pagination + } + return nil +} + +func (x *GetUsersByNameReq) GetOperationID() string { + if x != nil { + return x.OperationID + } + return "" +} + +type GetUsersByNameResp struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Users []*User `protobuf:"bytes,1,rep,name=users,proto3" json:"users,omitempty"` + Pagination *sdk_ws.ResponsePagination `protobuf:"bytes,2,opt,name=Pagination,proto3" json:"Pagination,omitempty"` + UserNums int32 `protobuf:"varint,3,opt,name=UserNums,proto3" json:"UserNums,omitempty"` +} + +func (x *GetUsersByNameResp) Reset() { + *x = GetUsersByNameResp{} + if protoimpl.UnsafeEnabled { + mi := &file_user_user_proto_msgTypes[24] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetUsersByNameResp) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetUsersByNameResp) ProtoMessage() {} + +func (x *GetUsersByNameResp) ProtoReflect() protoreflect.Message { + mi := &file_user_user_proto_msgTypes[24] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetUsersByNameResp.ProtoReflect.Descriptor instead. +func (*GetUsersByNameResp) Descriptor() ([]byte, []int) { + return file_user_user_proto_rawDescGZIP(), []int{24} +} + +func (x *GetUsersByNameResp) GetUsers() []*User { + if x != nil { + return x.Users + } + return nil +} + +func (x *GetUsersByNameResp) GetPagination() *sdk_ws.ResponsePagination { + if x != nil { + return x.Pagination + } + return nil +} + +func (x *GetUsersByNameResp) GetUserNums() int32 { + if x != nil { + return x.UserNums + } + return 0 +} + type AlterUserReq struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -1393,7 +1519,7 @@ type AlterUserReq struct { func (x *AlterUserReq) Reset() { *x = AlterUserReq{} if protoimpl.UnsafeEnabled { - mi := &file_user_user_proto_msgTypes[23] + mi := &file_user_user_proto_msgTypes[25] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1406,7 +1532,7 @@ func (x *AlterUserReq) String() string { func (*AlterUserReq) ProtoMessage() {} func (x *AlterUserReq) ProtoReflect() protoreflect.Message { - mi := &file_user_user_proto_msgTypes[23] + mi := &file_user_user_proto_msgTypes[25] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1419,7 +1545,7 @@ func (x *AlterUserReq) ProtoReflect() protoreflect.Message { // Deprecated: Use AlterUserReq.ProtoReflect.Descriptor instead. func (*AlterUserReq) Descriptor() ([]byte, []int) { - return file_user_user_proto_rawDescGZIP(), []int{23} + return file_user_user_proto_rawDescGZIP(), []int{25} } func (x *AlterUserReq) GetUserId() string { @@ -1468,7 +1594,7 @@ type AlterUserResp struct { func (x *AlterUserResp) Reset() { *x = AlterUserResp{} if protoimpl.UnsafeEnabled { - mi := &file_user_user_proto_msgTypes[24] + mi := &file_user_user_proto_msgTypes[26] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1481,7 +1607,7 @@ func (x *AlterUserResp) String() string { func (*AlterUserResp) ProtoMessage() {} func (x *AlterUserResp) ProtoReflect() protoreflect.Message { - mi := &file_user_user_proto_msgTypes[24] + mi := &file_user_user_proto_msgTypes[26] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1494,7 +1620,7 @@ func (x *AlterUserResp) ProtoReflect() protoreflect.Message { // Deprecated: Use AlterUserResp.ProtoReflect.Descriptor instead. func (*AlterUserResp) Descriptor() ([]byte, []int) { - return file_user_user_proto_rawDescGZIP(), []int{24} + return file_user_user_proto_rawDescGZIP(), []int{26} } func (x *AlterUserResp) GetCommonResp() *CommonResp { @@ -1517,7 +1643,7 @@ type GetUsersReq struct { func (x *GetUsersReq) Reset() { *x = GetUsersReq{} if protoimpl.UnsafeEnabled { - mi := &file_user_user_proto_msgTypes[25] + mi := &file_user_user_proto_msgTypes[27] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1530,7 +1656,7 @@ func (x *GetUsersReq) String() string { func (*GetUsersReq) ProtoMessage() {} func (x *GetUsersReq) ProtoReflect() protoreflect.Message { - mi := &file_user_user_proto_msgTypes[25] + mi := &file_user_user_proto_msgTypes[27] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1543,7 +1669,7 @@ func (x *GetUsersReq) ProtoReflect() protoreflect.Message { // Deprecated: Use GetUsersReq.ProtoReflect.Descriptor instead. func (*GetUsersReq) Descriptor() ([]byte, []int) { - return file_user_user_proto_rawDescGZIP(), []int{25} + return file_user_user_proto_rawDescGZIP(), []int{27} } func (x *GetUsersReq) GetOperationID() string { @@ -1572,16 +1698,16 @@ type GetUsersResp struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - CommonResp *CommonResp `protobuf:"bytes,1,opt,name=CommonResp,proto3" json:"CommonResp,omitempty"` - User []*User `protobuf:"bytes,2,rep,name=user,proto3" json:"user,omitempty"` - Pagination *sdk_ws.ResponsePagination `protobuf:"bytes,3,opt,name=Pagination,proto3" json:"Pagination,omitempty"` - OperationID string `protobuf:"bytes,4,opt,name=OperationID,proto3" json:"OperationID,omitempty"` + CommonResp *CommonResp `protobuf:"bytes,1,opt,name=CommonResp,proto3" json:"CommonResp,omitempty"` + User []*User `protobuf:"bytes,2,rep,name=user,proto3" json:"user,omitempty"` + Pagination *sdk_ws.ResponsePagination `protobuf:"bytes,3,opt,name=Pagination,proto3" json:"Pagination,omitempty"` + UserNums int32 `protobuf:"varint,4,opt,name=UserNums,proto3" json:"UserNums,omitempty"` } func (x *GetUsersResp) Reset() { *x = GetUsersResp{} if protoimpl.UnsafeEnabled { - mi := &file_user_user_proto_msgTypes[26] + mi := &file_user_user_proto_msgTypes[28] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1594,7 +1720,7 @@ func (x *GetUsersResp) String() string { func (*GetUsersResp) ProtoMessage() {} func (x *GetUsersResp) ProtoReflect() protoreflect.Message { - mi := &file_user_user_proto_msgTypes[26] + mi := &file_user_user_proto_msgTypes[28] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1607,7 +1733,7 @@ func (x *GetUsersResp) ProtoReflect() protoreflect.Message { // Deprecated: Use GetUsersResp.ProtoReflect.Descriptor instead. func (*GetUsersResp) Descriptor() ([]byte, []int) { - return file_user_user_proto_rawDescGZIP(), []int{26} + return file_user_user_proto_rawDescGZIP(), []int{28} } func (x *GetUsersResp) GetCommonResp() *CommonResp { @@ -1631,11 +1757,11 @@ func (x *GetUsersResp) GetPagination() *sdk_ws.ResponsePagination { return nil } -func (x *GetUsersResp) GetOperationID() string { +func (x *GetUsersResp) GetUserNums() int32 { if x != nil { - return x.OperationID + return x.UserNums } - return "" + return 0 } type AddUserReq struct { @@ -1652,7 +1778,7 @@ type AddUserReq struct { func (x *AddUserReq) Reset() { *x = AddUserReq{} if protoimpl.UnsafeEnabled { - mi := &file_user_user_proto_msgTypes[27] + mi := &file_user_user_proto_msgTypes[29] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1665,7 +1791,7 @@ func (x *AddUserReq) String() string { func (*AddUserReq) ProtoMessage() {} func (x *AddUserReq) ProtoReflect() protoreflect.Message { - mi := &file_user_user_proto_msgTypes[27] + mi := &file_user_user_proto_msgTypes[29] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1678,7 +1804,7 @@ func (x *AddUserReq) ProtoReflect() protoreflect.Message { // Deprecated: Use AddUserReq.ProtoReflect.Descriptor instead. func (*AddUserReq) Descriptor() ([]byte, []int) { - return file_user_user_proto_rawDescGZIP(), []int{27} + return file_user_user_proto_rawDescGZIP(), []int{29} } func (x *AddUserReq) GetOperationID() string { @@ -1720,7 +1846,7 @@ type AddUserResp struct { func (x *AddUserResp) Reset() { *x = AddUserResp{} if protoimpl.UnsafeEnabled { - mi := &file_user_user_proto_msgTypes[28] + mi := &file_user_user_proto_msgTypes[30] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1733,7 +1859,7 @@ func (x *AddUserResp) String() string { func (*AddUserResp) ProtoMessage() {} func (x *AddUserResp) ProtoReflect() protoreflect.Message { - mi := &file_user_user_proto_msgTypes[28] + mi := &file_user_user_proto_msgTypes[30] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1746,7 +1872,7 @@ func (x *AddUserResp) ProtoReflect() protoreflect.Message { // Deprecated: Use AddUserResp.ProtoReflect.Descriptor instead. func (*AddUserResp) Descriptor() ([]byte, []int) { - return file_user_user_proto_rawDescGZIP(), []int{28} + return file_user_user_proto_rawDescGZIP(), []int{30} } func (x *AddUserResp) GetCommonResp() *CommonResp { @@ -1769,7 +1895,7 @@ type BlockUserReq struct { func (x *BlockUserReq) Reset() { *x = BlockUserReq{} if protoimpl.UnsafeEnabled { - mi := &file_user_user_proto_msgTypes[29] + mi := &file_user_user_proto_msgTypes[31] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1782,7 +1908,7 @@ func (x *BlockUserReq) String() string { func (*BlockUserReq) ProtoMessage() {} func (x *BlockUserReq) ProtoReflect() protoreflect.Message { - mi := &file_user_user_proto_msgTypes[29] + mi := &file_user_user_proto_msgTypes[31] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1795,7 +1921,7 @@ func (x *BlockUserReq) ProtoReflect() protoreflect.Message { // Deprecated: Use BlockUserReq.ProtoReflect.Descriptor instead. func (*BlockUserReq) Descriptor() ([]byte, []int) { - return file_user_user_proto_rawDescGZIP(), []int{29} + return file_user_user_proto_rawDescGZIP(), []int{31} } func (x *BlockUserReq) GetUserId() string { @@ -1830,7 +1956,7 @@ type BlockUserResp struct { func (x *BlockUserResp) Reset() { *x = BlockUserResp{} if protoimpl.UnsafeEnabled { - mi := &file_user_user_proto_msgTypes[30] + mi := &file_user_user_proto_msgTypes[32] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1843,7 +1969,7 @@ func (x *BlockUserResp) String() string { func (*BlockUserResp) ProtoMessage() {} func (x *BlockUserResp) ProtoReflect() protoreflect.Message { - mi := &file_user_user_proto_msgTypes[30] + mi := &file_user_user_proto_msgTypes[32] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1856,7 +1982,7 @@ func (x *BlockUserResp) ProtoReflect() protoreflect.Message { // Deprecated: Use BlockUserResp.ProtoReflect.Descriptor instead. func (*BlockUserResp) Descriptor() ([]byte, []int) { - return file_user_user_proto_rawDescGZIP(), []int{30} + return file_user_user_proto_rawDescGZIP(), []int{32} } func (x *BlockUserResp) GetCommonResp() *CommonResp { @@ -1878,7 +2004,7 @@ type UnBlockUserReq struct { func (x *UnBlockUserReq) Reset() { *x = UnBlockUserReq{} if protoimpl.UnsafeEnabled { - mi := &file_user_user_proto_msgTypes[31] + mi := &file_user_user_proto_msgTypes[33] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1891,7 +2017,7 @@ func (x *UnBlockUserReq) String() string { func (*UnBlockUserReq) ProtoMessage() {} func (x *UnBlockUserReq) ProtoReflect() protoreflect.Message { - mi := &file_user_user_proto_msgTypes[31] + mi := &file_user_user_proto_msgTypes[33] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1904,7 +2030,7 @@ func (x *UnBlockUserReq) ProtoReflect() protoreflect.Message { // Deprecated: Use UnBlockUserReq.ProtoReflect.Descriptor instead. func (*UnBlockUserReq) Descriptor() ([]byte, []int) { - return file_user_user_proto_rawDescGZIP(), []int{31} + return file_user_user_proto_rawDescGZIP(), []int{33} } func (x *UnBlockUserReq) GetUserId() string { @@ -1932,7 +2058,7 @@ type UnBlockUserResp struct { func (x *UnBlockUserResp) Reset() { *x = UnBlockUserResp{} if protoimpl.UnsafeEnabled { - mi := &file_user_user_proto_msgTypes[32] + mi := &file_user_user_proto_msgTypes[34] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1945,7 +2071,7 @@ func (x *UnBlockUserResp) String() string { func (*UnBlockUserResp) ProtoMessage() {} func (x *UnBlockUserResp) ProtoReflect() protoreflect.Message { - mi := &file_user_user_proto_msgTypes[32] + mi := &file_user_user_proto_msgTypes[34] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -1958,7 +2084,7 @@ func (x *UnBlockUserResp) ProtoReflect() protoreflect.Message { // Deprecated: Use UnBlockUserResp.ProtoReflect.Descriptor instead. func (*UnBlockUserResp) Descriptor() ([]byte, []int) { - return file_user_user_proto_rawDescGZIP(), []int{32} + return file_user_user_proto_rawDescGZIP(), []int{34} } func (x *UnBlockUserResp) GetCommonResp() *CommonResp { @@ -1975,13 +2101,13 @@ type GetBlockUsersReq struct { Pagination *sdk_ws.RequestPagination `protobuf:"bytes,1,opt,name=Pagination,proto3" json:"Pagination,omitempty"` OperationID string `protobuf:"bytes,2,opt,name=OperationID,proto3" json:"OperationID,omitempty"` - BlockUserNum int32 `protobuf:"varint,4,opt,name=BlockUserNum,proto3" json:"BlockUserNum,omitempty"` + BlockUserNum int32 `protobuf:"varint,3,opt,name=BlockUserNum,proto3" json:"BlockUserNum,omitempty"` } func (x *GetBlockUsersReq) Reset() { *x = GetBlockUsersReq{} if protoimpl.UnsafeEnabled { - mi := &file_user_user_proto_msgTypes[33] + mi := &file_user_user_proto_msgTypes[35] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -1994,7 +2120,7 @@ func (x *GetBlockUsersReq) String() string { func (*GetBlockUsersReq) ProtoMessage() {} func (x *GetBlockUsersReq) ProtoReflect() protoreflect.Message { - mi := &file_user_user_proto_msgTypes[33] + mi := &file_user_user_proto_msgTypes[35] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2007,7 +2133,7 @@ func (x *GetBlockUsersReq) ProtoReflect() protoreflect.Message { // Deprecated: Use GetBlockUsersReq.ProtoReflect.Descriptor instead. func (*GetBlockUsersReq) Descriptor() ([]byte, []int) { - return file_user_user_proto_rawDescGZIP(), []int{33} + return file_user_user_proto_rawDescGZIP(), []int{35} } func (x *GetBlockUsersReq) GetPagination() *sdk_ws.RequestPagination { @@ -2044,7 +2170,7 @@ type BlockUser struct { func (x *BlockUser) Reset() { *x = BlockUser{} if protoimpl.UnsafeEnabled { - mi := &file_user_user_proto_msgTypes[34] + mi := &file_user_user_proto_msgTypes[36] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2057,7 +2183,7 @@ func (x *BlockUser) String() string { func (*BlockUser) ProtoMessage() {} func (x *BlockUser) ProtoReflect() protoreflect.Message { - mi := &file_user_user_proto_msgTypes[34] + mi := &file_user_user_proto_msgTypes[36] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2070,7 +2196,7 @@ func (x *BlockUser) ProtoReflect() protoreflect.Message { // Deprecated: Use BlockUser.ProtoReflect.Descriptor instead. func (*BlockUser) Descriptor() ([]byte, []int) { - return file_user_user_proto_rawDescGZIP(), []int{34} + return file_user_user_proto_rawDescGZIP(), []int{36} } func (x *BlockUser) GetUser() *User { @@ -2102,12 +2228,13 @@ type GetBlockUsersResp struct { CommonResp *CommonResp `protobuf:"bytes,1,opt,name=CommonResp,proto3" json:"CommonResp,omitempty"` BlockUsers []*BlockUser `protobuf:"bytes,2,rep,name=BlockUsers,proto3" json:"BlockUsers,omitempty"` Pagination *sdk_ws.ResponsePagination `protobuf:"bytes,3,opt,name=Pagination,proto3" json:"Pagination,omitempty"` + UserNums int32 `protobuf:"varint,4,opt,name=UserNums,proto3" json:"UserNums,omitempty"` } func (x *GetBlockUsersResp) Reset() { *x = GetBlockUsersResp{} if protoimpl.UnsafeEnabled { - mi := &file_user_user_proto_msgTypes[35] + mi := &file_user_user_proto_msgTypes[37] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2120,7 +2247,7 @@ func (x *GetBlockUsersResp) String() string { func (*GetBlockUsersResp) ProtoMessage() {} func (x *GetBlockUsersResp) ProtoReflect() protoreflect.Message { - mi := &file_user_user_proto_msgTypes[35] + mi := &file_user_user_proto_msgTypes[37] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2133,7 +2260,7 @@ func (x *GetBlockUsersResp) ProtoReflect() protoreflect.Message { // Deprecated: Use GetBlockUsersResp.ProtoReflect.Descriptor instead. func (*GetBlockUsersResp) Descriptor() ([]byte, []int) { - return file_user_user_proto_rawDescGZIP(), []int{35} + return file_user_user_proto_rawDescGZIP(), []int{37} } func (x *GetBlockUsersResp) GetCommonResp() *CommonResp { @@ -2157,6 +2284,13 @@ func (x *GetBlockUsersResp) GetPagination() *sdk_ws.ResponsePagination { return nil } +func (x *GetBlockUsersResp) GetUserNums() int32 { + if x != nil { + return x.UserNums + } + return 0 +} + type GetBlockUserByIdReq struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -2169,7 +2303,7 @@ type GetBlockUserByIdReq struct { func (x *GetBlockUserByIdReq) Reset() { *x = GetBlockUserByIdReq{} if protoimpl.UnsafeEnabled { - mi := &file_user_user_proto_msgTypes[36] + mi := &file_user_user_proto_msgTypes[38] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2182,7 +2316,7 @@ func (x *GetBlockUserByIdReq) String() string { func (*GetBlockUserByIdReq) ProtoMessage() {} func (x *GetBlockUserByIdReq) ProtoReflect() protoreflect.Message { - mi := &file_user_user_proto_msgTypes[36] + mi := &file_user_user_proto_msgTypes[38] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2195,7 +2329,7 @@ func (x *GetBlockUserByIdReq) ProtoReflect() protoreflect.Message { // Deprecated: Use GetBlockUserByIdReq.ProtoReflect.Descriptor instead. func (*GetBlockUserByIdReq) Descriptor() ([]byte, []int) { - return file_user_user_proto_rawDescGZIP(), []int{36} + return file_user_user_proto_rawDescGZIP(), []int{38} } func (x *GetBlockUserByIdReq) GetUserId() string { @@ -2223,7 +2357,7 @@ type GetBlockUserByIdResp struct { func (x *GetBlockUserByIdResp) Reset() { *x = GetBlockUserByIdResp{} if protoimpl.UnsafeEnabled { - mi := &file_user_user_proto_msgTypes[37] + mi := &file_user_user_proto_msgTypes[39] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2236,7 +2370,7 @@ func (x *GetBlockUserByIdResp) String() string { func (*GetBlockUserByIdResp) ProtoMessage() {} func (x *GetBlockUserByIdResp) ProtoReflect() protoreflect.Message { - mi := &file_user_user_proto_msgTypes[37] + mi := &file_user_user_proto_msgTypes[39] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2249,7 +2383,7 @@ func (x *GetBlockUserByIdResp) ProtoReflect() protoreflect.Message { // Deprecated: Use GetBlockUserByIdResp.ProtoReflect.Descriptor instead. func (*GetBlockUserByIdResp) Descriptor() ([]byte, []int) { - return file_user_user_proto_rawDescGZIP(), []int{37} + return file_user_user_proto_rawDescGZIP(), []int{39} } func (x *GetBlockUserByIdResp) GetBlockUser() *BlockUser { @@ -2271,7 +2405,7 @@ type DeleteUserReq struct { func (x *DeleteUserReq) Reset() { *x = DeleteUserReq{} if protoimpl.UnsafeEnabled { - mi := &file_user_user_proto_msgTypes[38] + mi := &file_user_user_proto_msgTypes[40] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2284,7 +2418,7 @@ func (x *DeleteUserReq) String() string { func (*DeleteUserReq) ProtoMessage() {} func (x *DeleteUserReq) ProtoReflect() protoreflect.Message { - mi := &file_user_user_proto_msgTypes[38] + mi := &file_user_user_proto_msgTypes[40] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2297,7 +2431,7 @@ func (x *DeleteUserReq) ProtoReflect() protoreflect.Message { // Deprecated: Use DeleteUserReq.ProtoReflect.Descriptor instead. func (*DeleteUserReq) Descriptor() ([]byte, []int) { - return file_user_user_proto_rawDescGZIP(), []int{38} + return file_user_user_proto_rawDescGZIP(), []int{40} } func (x *DeleteUserReq) GetUserId() string { @@ -2323,7 +2457,7 @@ type DeleteUserResp struct { func (x *DeleteUserResp) Reset() { *x = DeleteUserResp{} if protoimpl.UnsafeEnabled { - mi := &file_user_user_proto_msgTypes[39] + mi := &file_user_user_proto_msgTypes[41] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2336,7 +2470,7 @@ func (x *DeleteUserResp) String() string { func (*DeleteUserResp) ProtoMessage() {} func (x *DeleteUserResp) ProtoReflect() protoreflect.Message { - mi := &file_user_user_proto_msgTypes[39] + mi := &file_user_user_proto_msgTypes[41] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2349,7 +2483,7 @@ func (x *DeleteUserResp) ProtoReflect() protoreflect.Message { // Deprecated: Use DeleteUserResp.ProtoReflect.Descriptor instead. func (*DeleteUserResp) Descriptor() ([]byte, []int) { - return file_user_user_proto_rawDescGZIP(), []int{39} + return file_user_user_proto_rawDescGZIP(), []int{41} } type AccountCheckResp_SingleUserStatus struct { @@ -2364,7 +2498,7 @@ type AccountCheckResp_SingleUserStatus struct { func (x *AccountCheckResp_SingleUserStatus) Reset() { *x = AccountCheckResp_SingleUserStatus{} if protoimpl.UnsafeEnabled { - mi := &file_user_user_proto_msgTypes[40] + mi := &file_user_user_proto_msgTypes[42] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2377,7 +2511,7 @@ func (x *AccountCheckResp_SingleUserStatus) String() string { func (*AccountCheckResp_SingleUserStatus) ProtoMessage() {} func (x *AccountCheckResp_SingleUserStatus) ProtoReflect() protoreflect.Message { - mi := &file_user_user_proto_msgTypes[40] + mi := &file_user_user_proto_msgTypes[42] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2589,43 +2723,62 @@ var file_user_user_proto_rawDesc = []byte{ 0x52, 0x65, 0x73, 0x70, 0x52, 0x0a, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x12, 0x1e, 0x0a, 0x04, 0x75, 0x73, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x52, 0x04, 0x75, 0x73, 0x65, 0x72, - 0x22, 0x9c, 0x01, 0x0a, 0x0c, 0x41, 0x6c, 0x74, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, - 0x71, 0x12, 0x16, 0x0a, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x70, 0x65, - 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, - 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x50, - 0x68, 0x6f, 0x6e, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, - 0x52, 0x0b, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x1a, 0x0a, - 0x08, 0x4e, 0x69, 0x63, 0x6b, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x08, 0x4e, 0x69, 0x63, 0x6b, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x45, 0x6d, 0x61, - 0x69, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x45, 0x6d, 0x61, 0x69, 0x6c, 0x22, - 0x41, 0x0a, 0x0d, 0x41, 0x6c, 0x74, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, - 0x12, 0x30, 0x0a, 0x0a, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, - 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x52, 0x0a, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, - 0x73, 0x70, 0x22, 0x91, 0x01, 0x0a, 0x0b, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x73, 0x52, - 0x65, 0x71, 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, - 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x49, 0x44, 0x12, 0x44, 0x0a, 0x0a, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, - 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x52, 0x65, 0x71, - 0x75, 0x65, 0x73, 0x74, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0a, + 0x22, 0x97, 0x01, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x73, 0x42, 0x79, 0x4e, + 0x61, 0x6d, 0x65, 0x52, 0x65, 0x71, 0x12, 0x1a, 0x0a, 0x08, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x61, + 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x61, + 0x6d, 0x65, 0x12, 0x44, 0x0a, 0x0a, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, + 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0a, 0x50, 0x61, + 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x70, 0x65, 0x72, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x4f, + 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x22, 0x99, 0x01, 0x0a, 0x12, 0x47, + 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x73, 0x42, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x52, 0x65, 0x73, + 0x70, 0x12, 0x20, 0x0a, 0x05, 0x75, 0x73, 0x65, 0x72, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x0a, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x52, 0x05, 0x75, 0x73, + 0x65, 0x72, 0x73, 0x12, 0x45, 0x0a, 0x0a, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, + 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x52, 0x65, 0x73, 0x70, + 0x6f, 0x6e, 0x73, 0x65, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0a, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x55, 0x73, - 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x55, 0x73, - 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0xc9, 0x01, 0x0a, 0x0c, 0x47, 0x65, 0x74, 0x55, 0x73, - 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x12, 0x30, 0x0a, 0x0a, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, - 0x6e, 0x52, 0x65, 0x73, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x75, 0x73, - 0x65, 0x72, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x52, 0x0a, 0x43, - 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x12, 0x1e, 0x0a, 0x04, 0x75, 0x73, 0x65, - 0x72, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x55, - 0x73, 0x65, 0x72, 0x52, 0x04, 0x75, 0x73, 0x65, 0x72, 0x12, 0x45, 0x0a, 0x0a, 0x50, 0x61, 0x67, - 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, - 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, - 0x73, 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, + 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x55, 0x73, + 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x73, 0x22, 0x9c, 0x01, 0x0a, 0x0c, 0x41, 0x6c, 0x74, 0x65, 0x72, + 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x12, 0x16, 0x0a, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, + 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, + 0x20, 0x0a, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, + 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0b, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x4e, 0x75, 0x6d, + 0x62, 0x65, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x4e, 0x69, 0x63, 0x6b, 0x6e, 0x61, 0x6d, 0x65, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x4e, 0x69, 0x63, 0x6b, 0x6e, 0x61, 0x6d, 0x65, 0x12, + 0x14, 0x0a, 0x05, 0x45, 0x6d, 0x61, 0x69, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, + 0x45, 0x6d, 0x61, 0x69, 0x6c, 0x22, 0x41, 0x0a, 0x0d, 0x41, 0x6c, 0x74, 0x65, 0x72, 0x55, 0x73, + 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x12, 0x30, 0x0a, 0x0a, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, + 0x52, 0x65, 0x73, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x75, 0x73, 0x65, + 0x72, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x52, 0x0a, 0x43, 0x6f, + 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0x91, 0x01, 0x0a, 0x0b, 0x47, 0x65, 0x74, + 0x55, 0x73, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x70, 0x65, 0x72, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x4f, + 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x12, 0x44, 0x0a, 0x0a, 0x50, 0x61, + 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, + 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, + 0x6d, 0x73, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0a, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, - 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x49, 0x44, 0x22, 0x7c, 0x0a, 0x0a, 0x41, 0x64, 0x64, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, + 0x12, 0x1a, 0x0a, 0x08, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x08, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0xc3, 0x01, 0x0a, + 0x0c, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x12, 0x30, 0x0a, + 0x0a, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x10, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, + 0x65, 0x73, 0x70, 0x52, 0x0a, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x12, + 0x1e, 0x0a, 0x04, 0x75, 0x73, 0x65, 0x72, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0a, 0x2e, + 0x75, 0x73, 0x65, 0x72, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x52, 0x04, 0x75, 0x73, 0x65, 0x72, 0x12, + 0x45, 0x0a, 0x0a, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, + 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, + 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0a, 0x50, 0x61, 0x67, 0x69, + 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x75, + 0x6d, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x75, + 0x6d, 0x73, 0x22, 0x7c, 0x0a, 0x0a, 0x41, 0x64, 0x64, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, @@ -2666,7 +2819,7 @@ var file_user_user_proto_rawDesc = []byte{ 0x6f, 0x6e, 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x12, 0x22, 0x0a, 0x0c, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, - 0x72, 0x4e, 0x75, 0x6d, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x42, 0x6c, 0x6f, 0x63, + 0x72, 0x4e, 0x75, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x22, 0x7f, 0x0a, 0x09, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x12, 0x1e, 0x0a, 0x04, 0x55, 0x73, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x52, @@ -2675,7 +2828,7 @@ var file_user_user_proto_rawDesc = []byte{ 0x10, 0x42, 0x65, 0x67, 0x69, 0x6e, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x45, 0x6e, 0x64, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x45, 0x6e, 0x64, 0x44, 0x69, - 0x73, 0x61, 0x62, 0x6c, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x22, 0xbd, 0x01, 0x0a, 0x11, 0x47, 0x65, + 0x73, 0x61, 0x62, 0x6c, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x22, 0xd9, 0x01, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x12, 0x30, 0x0a, 0x0a, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, @@ -2687,98 +2840,104 @@ var file_user_user_proto_rawDesc = []byte{ 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0a, 0x50, - 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x50, 0x0a, 0x13, 0x47, 0x65, 0x74, - 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x42, 0x79, 0x49, 0x64, 0x52, 0x65, 0x71, - 0x12, 0x17, 0x0a, 0x07, 0x55, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x70, 0x65, - 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, - 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x22, 0x45, 0x0a, 0x14, 0x47, - 0x65, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x42, 0x79, 0x49, 0x64, 0x52, - 0x65, 0x73, 0x70, 0x12, 0x2d, 0x0a, 0x09, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x42, 0x6c, - 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x52, 0x09, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, - 0x65, 0x72, 0x22, 0x4a, 0x0a, 0x0d, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, - 0x52, 0x65, 0x71, 0x12, 0x17, 0x0a, 0x07, 0x55, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x0b, - 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x22, 0x10, - 0x0a, 0x0e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, - 0x32, 0x98, 0x09, 0x0a, 0x04, 0x75, 0x73, 0x65, 0x72, 0x12, 0x3a, 0x0a, 0x0b, 0x47, 0x65, 0x74, - 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x14, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, - 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x1a, 0x15, - 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, - 0x6f, 0x52, 0x65, 0x73, 0x70, 0x12, 0x43, 0x0a, 0x0e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x55, - 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x17, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x55, - 0x70, 0x64, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, - 0x1a, 0x18, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x55, 0x73, - 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x12, 0x3a, 0x0a, 0x0b, 0x44, 0x65, - 0x6c, 0x65, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x73, 0x12, 0x14, 0x2e, 0x75, 0x73, 0x65, 0x72, - 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x1a, - 0x15, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x55, 0x73, 0x65, - 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x12, 0x3d, 0x0a, 0x0c, 0x47, 0x65, 0x74, 0x41, 0x6c, 0x6c, - 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x15, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x47, 0x65, - 0x74, 0x41, 0x6c, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x52, 0x65, 0x71, 0x1a, 0x16, 0x2e, - 0x75, 0x73, 0x65, 0x72, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x6c, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x49, - 0x44, 0x52, 0x65, 0x73, 0x70, 0x12, 0x55, 0x0a, 0x14, 0x53, 0x65, 0x74, 0x52, 0x65, 0x63, 0x65, - 0x69, 0x76, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4f, 0x70, 0x74, 0x12, 0x1d, 0x2e, - 0x75, 0x73, 0x65, 0x72, 0x2e, 0x53, 0x65, 0x74, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x4d, - 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4f, 0x70, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x1e, 0x2e, 0x75, - 0x73, 0x65, 0x72, 0x2e, 0x53, 0x65, 0x74, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x4d, 0x65, - 0x73, 0x73, 0x61, 0x67, 0x65, 0x4f, 0x70, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x55, 0x0a, 0x14, - 0x47, 0x65, 0x74, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, - 0x65, 0x4f, 0x70, 0x74, 0x12, 0x1d, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x47, 0x65, 0x74, 0x52, + 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x55, 0x73, 0x65, + 0x72, 0x4e, 0x75, 0x6d, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x55, 0x73, 0x65, + 0x72, 0x4e, 0x75, 0x6d, 0x73, 0x22, 0x50, 0x0a, 0x13, 0x47, 0x65, 0x74, 0x42, 0x6c, 0x6f, 0x63, + 0x6b, 0x55, 0x73, 0x65, 0x72, 0x42, 0x79, 0x49, 0x64, 0x52, 0x65, 0x71, 0x12, 0x17, 0x0a, 0x07, + 0x55, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x55, + 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x4f, 0x70, 0x65, 0x72, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x22, 0x45, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x42, 0x6c, + 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x42, 0x79, 0x49, 0x64, 0x52, 0x65, 0x73, 0x70, 0x12, + 0x2d, 0x0a, 0x09, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, + 0x73, 0x65, 0x72, 0x52, 0x09, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x22, 0x4a, + 0x0a, 0x0d, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x12, + 0x17, 0x0a, 0x07, 0x55, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x70, 0x65, 0x72, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x4f, + 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x22, 0x10, 0x0a, 0x0e, 0x44, 0x65, + 0x6c, 0x65, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x32, 0xdd, 0x09, 0x0a, + 0x04, 0x75, 0x73, 0x65, 0x72, 0x12, 0x3a, 0x0a, 0x0b, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, + 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x14, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x47, 0x65, 0x74, 0x55, + 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x1a, 0x15, 0x2e, 0x75, 0x73, 0x65, + 0x72, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, + 0x70, 0x12, 0x43, 0x0a, 0x0e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x49, + 0x6e, 0x66, 0x6f, 0x12, 0x17, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, + 0x65, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x1a, 0x18, 0x2e, 0x75, + 0x73, 0x65, 0x72, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, + 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x12, 0x3a, 0x0a, 0x0b, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, + 0x55, 0x73, 0x65, 0x72, 0x73, 0x12, 0x14, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x44, 0x65, 0x6c, + 0x65, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x15, 0x2e, 0x75, 0x73, + 0x65, 0x72, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x73, 0x52, 0x65, + 0x73, 0x70, 0x12, 0x3d, 0x0a, 0x0c, 0x47, 0x65, 0x74, 0x41, 0x6c, 0x6c, 0x55, 0x73, 0x65, 0x72, + 0x49, 0x44, 0x12, 0x15, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x6c, 0x6c, + 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x52, 0x65, 0x71, 0x1a, 0x16, 0x2e, 0x75, 0x73, 0x65, 0x72, + 0x2e, 0x47, 0x65, 0x74, 0x41, 0x6c, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x52, 0x65, 0x73, + 0x70, 0x12, 0x55, 0x0a, 0x14, 0x53, 0x65, 0x74, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x4d, + 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4f, 0x70, 0x74, 0x12, 0x1d, 0x2e, 0x75, 0x73, 0x65, 0x72, + 0x2e, 0x53, 0x65, 0x74, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, + 0x67, 0x65, 0x4f, 0x70, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x1e, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, + 0x53, 0x65, 0x74, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, + 0x65, 0x4f, 0x70, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x55, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4f, 0x70, 0x74, - 0x52, 0x65, 0x71, 0x1a, 0x1e, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x65, - 0x63, 0x65, 0x69, 0x76, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4f, 0x70, 0x74, 0x52, - 0x65, 0x73, 0x70, 0x12, 0x61, 0x0a, 0x18, 0x47, 0x65, 0x74, 0x41, 0x6c, 0x6c, 0x43, 0x6f, 0x6e, - 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x73, 0x67, 0x4f, 0x70, 0x74, 0x12, - 0x21, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x6c, 0x6c, 0x43, 0x6f, 0x6e, - 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x73, 0x67, 0x4f, 0x70, 0x74, 0x52, - 0x65, 0x71, 0x1a, 0x22, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x6c, 0x6c, - 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x73, 0x67, 0x4f, - 0x70, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x3d, 0x0a, 0x0c, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, - 0x74, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x12, 0x15, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x41, 0x63, - 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x52, 0x65, 0x71, 0x1a, 0x16, 0x2e, - 0x75, 0x73, 0x65, 0x72, 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x43, 0x68, 0x65, 0x63, - 0x6b, 0x52, 0x65, 0x73, 0x70, 0x12, 0x3a, 0x0a, 0x0b, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, - 0x42, 0x79, 0x49, 0x64, 0x12, 0x14, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x47, 0x65, 0x74, 0x55, - 0x73, 0x65, 0x72, 0x42, 0x79, 0x49, 0x64, 0x52, 0x65, 0x71, 0x1a, 0x15, 0x2e, 0x75, 0x73, 0x65, - 0x72, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x42, 0x79, 0x49, 0x64, 0x52, 0x65, 0x73, - 0x70, 0x12, 0x37, 0x0a, 0x0a, 0x52, 0x65, 0x73, 0x69, 0x67, 0x6e, 0x55, 0x73, 0x65, 0x72, 0x12, - 0x13, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x52, 0x65, 0x73, 0x69, 0x67, 0x6e, 0x55, 0x73, 0x65, - 0x72, 0x52, 0x65, 0x71, 0x1a, 0x14, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x52, 0x65, 0x73, 0x69, - 0x67, 0x6e, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x12, 0x34, 0x0a, 0x09, 0x41, 0x6c, - 0x74, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x12, 0x12, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x41, - 0x6c, 0x74, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x1a, 0x13, 0x2e, 0x75, 0x73, - 0x65, 0x72, 0x2e, 0x41, 0x6c, 0x74, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, - 0x12, 0x31, 0x0a, 0x08, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x73, 0x12, 0x11, 0x2e, 0x75, - 0x73, 0x65, 0x72, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x1a, - 0x12, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x73, 0x52, - 0x65, 0x73, 0x70, 0x12, 0x2e, 0x0a, 0x07, 0x41, 0x64, 0x64, 0x55, 0x73, 0x65, 0x72, 0x12, 0x10, - 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x41, 0x64, 0x64, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, - 0x1a, 0x11, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x41, 0x64, 0x64, 0x55, 0x73, 0x65, 0x72, 0x52, - 0x65, 0x73, 0x70, 0x12, 0x34, 0x0a, 0x09, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, - 0x12, 0x12, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, - 0x72, 0x52, 0x65, 0x71, 0x1a, 0x13, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x42, 0x6c, 0x6f, 0x63, - 0x6b, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x12, 0x3a, 0x0a, 0x0b, 0x55, 0x6e, 0x42, - 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x12, 0x14, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, - 0x55, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x1a, 0x15, - 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x55, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, - 0x72, 0x52, 0x65, 0x73, 0x70, 0x12, 0x40, 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x42, 0x6c, 0x6f, 0x63, - 0x6b, 0x55, 0x73, 0x65, 0x72, 0x73, 0x12, 0x16, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x47, 0x65, - 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x17, - 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x47, 0x65, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, - 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x12, 0x49, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x42, 0x6c, - 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x42, 0x79, 0x49, 0x64, 0x12, 0x19, 0x2e, 0x75, 0x73, - 0x65, 0x72, 0x2e, 0x47, 0x65, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x42, - 0x79, 0x49, 0x64, 0x52, 0x65, 0x71, 0x1a, 0x1a, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x47, 0x65, - 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x42, 0x79, 0x49, 0x64, 0x52, 0x65, - 0x73, 0x70, 0x12, 0x37, 0x0a, 0x0a, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, - 0x12, 0x13, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x55, 0x73, - 0x65, 0x72, 0x52, 0x65, 0x71, 0x1a, 0x14, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x44, 0x65, 0x6c, - 0x65, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x42, 0x0d, 0x5a, 0x0b, 0x2e, - 0x2f, 0x75, 0x73, 0x65, 0x72, 0x3b, 0x75, 0x73, 0x65, 0x72, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x33, + 0x12, 0x1d, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x65, 0x63, 0x65, 0x69, + 0x76, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4f, 0x70, 0x74, 0x52, 0x65, 0x71, 0x1a, + 0x1e, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, + 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4f, 0x70, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, + 0x61, 0x0a, 0x18, 0x47, 0x65, 0x74, 0x41, 0x6c, 0x6c, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x73, 0x67, 0x4f, 0x70, 0x74, 0x12, 0x21, 0x2e, 0x75, 0x73, + 0x65, 0x72, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x6c, 0x6c, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x73, 0x67, 0x4f, 0x70, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x22, + 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x6c, 0x6c, 0x43, 0x6f, 0x6e, 0x76, + 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x73, 0x67, 0x4f, 0x70, 0x74, 0x52, 0x65, + 0x73, 0x70, 0x12, 0x3d, 0x0a, 0x0c, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x43, 0x68, 0x65, + 0x63, 0x6b, 0x12, 0x15, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, + 0x74, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x52, 0x65, 0x71, 0x1a, 0x16, 0x2e, 0x75, 0x73, 0x65, 0x72, + 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x52, 0x65, 0x73, + 0x70, 0x12, 0x3a, 0x0a, 0x0b, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x42, 0x79, 0x49, 0x64, + 0x12, 0x14, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x42, + 0x79, 0x49, 0x64, 0x52, 0x65, 0x71, 0x1a, 0x15, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x47, 0x65, + 0x74, 0x55, 0x73, 0x65, 0x72, 0x42, 0x79, 0x49, 0x64, 0x52, 0x65, 0x73, 0x70, 0x12, 0x43, 0x0a, + 0x0e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x73, 0x42, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, + 0x17, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x73, 0x42, + 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x18, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, + 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x73, 0x42, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x52, 0x65, + 0x73, 0x70, 0x12, 0x37, 0x0a, 0x0a, 0x52, 0x65, 0x73, 0x69, 0x67, 0x6e, 0x55, 0x73, 0x65, 0x72, + 0x12, 0x13, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x52, 0x65, 0x73, 0x69, 0x67, 0x6e, 0x55, 0x73, + 0x65, 0x72, 0x52, 0x65, 0x71, 0x1a, 0x14, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x52, 0x65, 0x73, + 0x69, 0x67, 0x6e, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x12, 0x34, 0x0a, 0x09, 0x41, + 0x6c, 0x74, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x12, 0x12, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, + 0x41, 0x6c, 0x74, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x1a, 0x13, 0x2e, 0x75, + 0x73, 0x65, 0x72, 0x2e, 0x41, 0x6c, 0x74, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, + 0x70, 0x12, 0x31, 0x0a, 0x08, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x73, 0x12, 0x11, 0x2e, + 0x75, 0x73, 0x65, 0x72, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, + 0x1a, 0x12, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x73, + 0x52, 0x65, 0x73, 0x70, 0x12, 0x2e, 0x0a, 0x07, 0x41, 0x64, 0x64, 0x55, 0x73, 0x65, 0x72, 0x12, + 0x10, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x41, 0x64, 0x64, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, + 0x71, 0x1a, 0x11, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x41, 0x64, 0x64, 0x55, 0x73, 0x65, 0x72, + 0x52, 0x65, 0x73, 0x70, 0x12, 0x34, 0x0a, 0x09, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, + 0x72, 0x12, 0x12, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, + 0x65, 0x72, 0x52, 0x65, 0x71, 0x1a, 0x13, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x42, 0x6c, 0x6f, + 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x12, 0x3a, 0x0a, 0x0b, 0x55, 0x6e, + 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x12, 0x14, 0x2e, 0x75, 0x73, 0x65, 0x72, + 0x2e, 0x55, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x1a, + 0x15, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x55, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, + 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x12, 0x40, 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x42, 0x6c, 0x6f, + 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x73, 0x12, 0x16, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x47, + 0x65, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x1a, + 0x17, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x47, 0x65, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, + 0x73, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x12, 0x49, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x42, + 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x42, 0x79, 0x49, 0x64, 0x12, 0x19, 0x2e, 0x75, + 0x73, 0x65, 0x72, 0x2e, 0x47, 0x65, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, + 0x42, 0x79, 0x49, 0x64, 0x52, 0x65, 0x71, 0x1a, 0x1a, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x47, + 0x65, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x42, 0x79, 0x49, 0x64, 0x52, + 0x65, 0x73, 0x70, 0x12, 0x37, 0x0a, 0x0a, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x55, 0x73, 0x65, + 0x72, 0x12, 0x13, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x55, + 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x1a, 0x14, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x44, 0x65, + 0x6c, 0x65, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x42, 0x0d, 0x5a, 0x0b, + 0x2e, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x3b, 0x75, 0x73, 0x65, 0x72, 0x62, 0x06, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x33, } var ( @@ -2793,7 +2952,7 @@ func file_user_user_proto_rawDescGZIP() []byte { return file_user_user_proto_rawDescData } -var file_user_user_proto_msgTypes = make([]protoimpl.MessageInfo, 41) +var file_user_user_proto_msgTypes = make([]protoimpl.MessageInfo, 43) var file_user_user_proto_goTypes = []interface{}{ (*CommonResp)(nil), // 0: user.CommonResp (*DeleteUsersReq)(nil), // 1: user.DeleteUsersReq @@ -2818,36 +2977,38 @@ var file_user_user_proto_goTypes = []interface{}{ (*GetUserByIdReq)(nil), // 20: user.GetUserByIdReq (*User)(nil), // 21: user.User (*GetUserByIdResp)(nil), // 22: user.GetUserByIdResp - (*AlterUserReq)(nil), // 23: user.AlterUserReq - (*AlterUserResp)(nil), // 24: user.AlterUserResp - (*GetUsersReq)(nil), // 25: user.GetUsersReq - (*GetUsersResp)(nil), // 26: user.GetUsersResp - (*AddUserReq)(nil), // 27: user.AddUserReq - (*AddUserResp)(nil), // 28: user.AddUserResp - (*BlockUserReq)(nil), // 29: user.BlockUserReq - (*BlockUserResp)(nil), // 30: user.BlockUserResp - (*UnBlockUserReq)(nil), // 31: user.UnBlockUserReq - (*UnBlockUserResp)(nil), // 32: user.UnBlockUserResp - (*GetBlockUsersReq)(nil), // 33: user.GetBlockUsersReq - (*BlockUser)(nil), // 34: user.BlockUser - (*GetBlockUsersResp)(nil), // 35: user.GetBlockUsersResp - (*GetBlockUserByIdReq)(nil), // 36: user.GetBlockUserByIdReq - (*GetBlockUserByIdResp)(nil), // 37: user.GetBlockUserByIdResp - (*DeleteUserReq)(nil), // 38: user.DeleteUserReq - (*DeleteUserResp)(nil), // 39: user.DeleteUserResp - (*AccountCheckResp_SingleUserStatus)(nil), // 40: user.AccountCheckResp.SingleUserStatus - (*sdk_ws.UserInfo)(nil), // 41: server_api_params.UserInfo - (*sdk_ws.RequestPagination)(nil), // 42: server_api_params.RequestPagination - (*sdk_ws.ResponsePagination)(nil), // 43: server_api_params.ResponsePagination + (*GetUsersByNameReq)(nil), // 23: user.GetUsersByNameReq + (*GetUsersByNameResp)(nil), // 24: user.GetUsersByNameResp + (*AlterUserReq)(nil), // 25: user.AlterUserReq + (*AlterUserResp)(nil), // 26: user.AlterUserResp + (*GetUsersReq)(nil), // 27: user.GetUsersReq + (*GetUsersResp)(nil), // 28: user.GetUsersResp + (*AddUserReq)(nil), // 29: user.AddUserReq + (*AddUserResp)(nil), // 30: user.AddUserResp + (*BlockUserReq)(nil), // 31: user.BlockUserReq + (*BlockUserResp)(nil), // 32: user.BlockUserResp + (*UnBlockUserReq)(nil), // 33: user.UnBlockUserReq + (*UnBlockUserResp)(nil), // 34: user.UnBlockUserResp + (*GetBlockUsersReq)(nil), // 35: user.GetBlockUsersReq + (*BlockUser)(nil), // 36: user.BlockUser + (*GetBlockUsersResp)(nil), // 37: user.GetBlockUsersResp + (*GetBlockUserByIdReq)(nil), // 38: user.GetBlockUserByIdReq + (*GetBlockUserByIdResp)(nil), // 39: user.GetBlockUserByIdResp + (*DeleteUserReq)(nil), // 40: user.DeleteUserReq + (*DeleteUserResp)(nil), // 41: user.DeleteUserResp + (*AccountCheckResp_SingleUserStatus)(nil), // 42: user.AccountCheckResp.SingleUserStatus + (*sdk_ws.UserInfo)(nil), // 43: server_api_params.UserInfo + (*sdk_ws.RequestPagination)(nil), // 44: server_api_params.RequestPagination + (*sdk_ws.ResponsePagination)(nil), // 45: server_api_params.ResponsePagination } var file_user_user_proto_depIdxs = []int32{ 0, // 0: user.DeleteUsersResp.CommonResp:type_name -> user.CommonResp 0, // 1: user.GetAllUserIDResp.CommonResp:type_name -> user.CommonResp 0, // 2: user.AccountCheckResp.commonResp:type_name -> user.CommonResp - 40, // 3: user.AccountCheckResp.ResultList:type_name -> user.AccountCheckResp.SingleUserStatus + 42, // 3: user.AccountCheckResp.ResultList:type_name -> user.AccountCheckResp.SingleUserStatus 0, // 4: user.GetUserInfoResp.commonResp:type_name -> user.CommonResp - 41, // 5: user.GetUserInfoResp.UserInfoList:type_name -> server_api_params.UserInfo - 41, // 6: user.UpdateUserInfoReq.UserInfo:type_name -> server_api_params.UserInfo + 43, // 5: user.GetUserInfoResp.UserInfoList:type_name -> server_api_params.UserInfo + 43, // 6: user.UpdateUserInfoReq.UserInfo:type_name -> server_api_params.UserInfo 0, // 7: user.UpdateUserInfoResp.commonResp:type_name -> user.CommonResp 0, // 8: user.SetReceiveMessageOptResp.commonResp:type_name -> user.CommonResp 12, // 9: user.SetReceiveMessageOptResp.conversationOptResultList:type_name -> user.OptResult @@ -2858,61 +3019,66 @@ var file_user_user_proto_depIdxs = []int32{ 0, // 14: user.ResignUserResp.commonResp:type_name -> user.CommonResp 0, // 15: user.GetUserByIdResp.CommonResp:type_name -> user.CommonResp 21, // 16: user.GetUserByIdResp.user:type_name -> user.User - 0, // 17: user.AlterUserResp.CommonResp:type_name -> user.CommonResp - 42, // 18: user.GetUsersReq.Pagination:type_name -> server_api_params.RequestPagination - 0, // 19: user.GetUsersResp.CommonResp:type_name -> user.CommonResp - 21, // 20: user.GetUsersResp.user:type_name -> user.User - 43, // 21: user.GetUsersResp.Pagination:type_name -> server_api_params.ResponsePagination - 0, // 22: user.AddUserResp.CommonResp:type_name -> user.CommonResp - 0, // 23: user.BlockUserResp.CommonResp:type_name -> user.CommonResp - 0, // 24: user.UnBlockUserResp.CommonResp:type_name -> user.CommonResp - 42, // 25: user.GetBlockUsersReq.Pagination:type_name -> server_api_params.RequestPagination - 21, // 26: user.BlockUser.User:type_name -> user.User - 0, // 27: user.GetBlockUsersResp.CommonResp:type_name -> user.CommonResp - 34, // 28: user.GetBlockUsersResp.BlockUsers:type_name -> user.BlockUser - 43, // 29: user.GetBlockUsersResp.Pagination:type_name -> server_api_params.ResponsePagination - 34, // 30: user.GetBlockUserByIdResp.BlockUser:type_name -> user.BlockUser - 7, // 31: user.user.GetUserInfo:input_type -> user.GetUserInfoReq - 9, // 32: user.user.UpdateUserInfo:input_type -> user.UpdateUserInfoReq - 1, // 33: user.user.DeleteUsers:input_type -> user.DeleteUsersReq - 3, // 34: user.user.GetAllUserID:input_type -> user.GetAllUserIDReq - 11, // 35: user.user.SetReceiveMessageOpt:input_type -> user.SetReceiveMessageOptReq - 14, // 36: user.user.GetReceiveMessageOpt:input_type -> user.GetReceiveMessageOptReq - 16, // 37: user.user.GetAllConversationMsgOpt:input_type -> user.GetAllConversationMsgOptReq - 5, // 38: user.user.AccountCheck:input_type -> user.AccountCheckReq - 20, // 39: user.user.GetUserById:input_type -> user.GetUserByIdReq - 18, // 40: user.user.ResignUser:input_type -> user.ResignUserReq - 23, // 41: user.user.AlterUser:input_type -> user.AlterUserReq - 25, // 42: user.user.GetUsers:input_type -> user.GetUsersReq - 27, // 43: user.user.AddUser:input_type -> user.AddUserReq - 29, // 44: user.user.BlockUser:input_type -> user.BlockUserReq - 31, // 45: user.user.UnBlockUser:input_type -> user.UnBlockUserReq - 33, // 46: user.user.GetBlockUsers:input_type -> user.GetBlockUsersReq - 36, // 47: user.user.GetBlockUserById:input_type -> user.GetBlockUserByIdReq - 38, // 48: user.user.DeleteUser:input_type -> user.DeleteUserReq - 8, // 49: user.user.GetUserInfo:output_type -> user.GetUserInfoResp - 10, // 50: user.user.UpdateUserInfo:output_type -> user.UpdateUserInfoResp - 2, // 51: user.user.DeleteUsers:output_type -> user.DeleteUsersResp - 4, // 52: user.user.GetAllUserID:output_type -> user.GetAllUserIDResp - 13, // 53: user.user.SetReceiveMessageOpt:output_type -> user.SetReceiveMessageOptResp - 15, // 54: user.user.GetReceiveMessageOpt:output_type -> user.GetReceiveMessageOptResp - 17, // 55: user.user.GetAllConversationMsgOpt:output_type -> user.GetAllConversationMsgOptResp - 6, // 56: user.user.AccountCheck:output_type -> user.AccountCheckResp - 22, // 57: user.user.GetUserById:output_type -> user.GetUserByIdResp - 19, // 58: user.user.ResignUser:output_type -> user.ResignUserResp - 24, // 59: user.user.AlterUser:output_type -> user.AlterUserResp - 26, // 60: user.user.GetUsers:output_type -> user.GetUsersResp - 28, // 61: user.user.AddUser:output_type -> user.AddUserResp - 30, // 62: user.user.BlockUser:output_type -> user.BlockUserResp - 32, // 63: user.user.UnBlockUser:output_type -> user.UnBlockUserResp - 35, // 64: user.user.GetBlockUsers:output_type -> user.GetBlockUsersResp - 37, // 65: user.user.GetBlockUserById:output_type -> user.GetBlockUserByIdResp - 39, // 66: user.user.DeleteUser:output_type -> user.DeleteUserResp - 49, // [49:67] is the sub-list for method output_type - 31, // [31:49] is the sub-list for method input_type - 31, // [31:31] is the sub-list for extension type_name - 31, // [31:31] is the sub-list for extension extendee - 0, // [0:31] is the sub-list for field type_name + 44, // 17: user.GetUsersByNameReq.Pagination:type_name -> server_api_params.RequestPagination + 21, // 18: user.GetUsersByNameResp.users:type_name -> user.User + 45, // 19: user.GetUsersByNameResp.Pagination:type_name -> server_api_params.ResponsePagination + 0, // 20: user.AlterUserResp.CommonResp:type_name -> user.CommonResp + 44, // 21: user.GetUsersReq.Pagination:type_name -> server_api_params.RequestPagination + 0, // 22: user.GetUsersResp.CommonResp:type_name -> user.CommonResp + 21, // 23: user.GetUsersResp.user:type_name -> user.User + 45, // 24: user.GetUsersResp.Pagination:type_name -> server_api_params.ResponsePagination + 0, // 25: user.AddUserResp.CommonResp:type_name -> user.CommonResp + 0, // 26: user.BlockUserResp.CommonResp:type_name -> user.CommonResp + 0, // 27: user.UnBlockUserResp.CommonResp:type_name -> user.CommonResp + 44, // 28: user.GetBlockUsersReq.Pagination:type_name -> server_api_params.RequestPagination + 21, // 29: user.BlockUser.User:type_name -> user.User + 0, // 30: user.GetBlockUsersResp.CommonResp:type_name -> user.CommonResp + 36, // 31: user.GetBlockUsersResp.BlockUsers:type_name -> user.BlockUser + 45, // 32: user.GetBlockUsersResp.Pagination:type_name -> server_api_params.ResponsePagination + 36, // 33: user.GetBlockUserByIdResp.BlockUser:type_name -> user.BlockUser + 7, // 34: user.user.GetUserInfo:input_type -> user.GetUserInfoReq + 9, // 35: user.user.UpdateUserInfo:input_type -> user.UpdateUserInfoReq + 1, // 36: user.user.DeleteUsers:input_type -> user.DeleteUsersReq + 3, // 37: user.user.GetAllUserID:input_type -> user.GetAllUserIDReq + 11, // 38: user.user.SetReceiveMessageOpt:input_type -> user.SetReceiveMessageOptReq + 14, // 39: user.user.GetReceiveMessageOpt:input_type -> user.GetReceiveMessageOptReq + 16, // 40: user.user.GetAllConversationMsgOpt:input_type -> user.GetAllConversationMsgOptReq + 5, // 41: user.user.AccountCheck:input_type -> user.AccountCheckReq + 20, // 42: user.user.GetUserById:input_type -> user.GetUserByIdReq + 23, // 43: user.user.GetUsersByName:input_type -> user.GetUsersByNameReq + 18, // 44: user.user.ResignUser:input_type -> user.ResignUserReq + 25, // 45: user.user.AlterUser:input_type -> user.AlterUserReq + 27, // 46: user.user.GetUsers:input_type -> user.GetUsersReq + 29, // 47: user.user.AddUser:input_type -> user.AddUserReq + 31, // 48: user.user.BlockUser:input_type -> user.BlockUserReq + 33, // 49: user.user.UnBlockUser:input_type -> user.UnBlockUserReq + 35, // 50: user.user.GetBlockUsers:input_type -> user.GetBlockUsersReq + 38, // 51: user.user.GetBlockUserById:input_type -> user.GetBlockUserByIdReq + 40, // 52: user.user.DeleteUser:input_type -> user.DeleteUserReq + 8, // 53: user.user.GetUserInfo:output_type -> user.GetUserInfoResp + 10, // 54: user.user.UpdateUserInfo:output_type -> user.UpdateUserInfoResp + 2, // 55: user.user.DeleteUsers:output_type -> user.DeleteUsersResp + 4, // 56: user.user.GetAllUserID:output_type -> user.GetAllUserIDResp + 13, // 57: user.user.SetReceiveMessageOpt:output_type -> user.SetReceiveMessageOptResp + 15, // 58: user.user.GetReceiveMessageOpt:output_type -> user.GetReceiveMessageOptResp + 17, // 59: user.user.GetAllConversationMsgOpt:output_type -> user.GetAllConversationMsgOptResp + 6, // 60: user.user.AccountCheck:output_type -> user.AccountCheckResp + 22, // 61: user.user.GetUserById:output_type -> user.GetUserByIdResp + 24, // 62: user.user.GetUsersByName:output_type -> user.GetUsersByNameResp + 19, // 63: user.user.ResignUser:output_type -> user.ResignUserResp + 26, // 64: user.user.AlterUser:output_type -> user.AlterUserResp + 28, // 65: user.user.GetUsers:output_type -> user.GetUsersResp + 30, // 66: user.user.AddUser:output_type -> user.AddUserResp + 32, // 67: user.user.BlockUser:output_type -> user.BlockUserResp + 34, // 68: user.user.UnBlockUser:output_type -> user.UnBlockUserResp + 37, // 69: user.user.GetBlockUsers:output_type -> user.GetBlockUsersResp + 39, // 70: user.user.GetBlockUserById:output_type -> user.GetBlockUserByIdResp + 41, // 71: user.user.DeleteUser:output_type -> user.DeleteUserResp + 53, // [53:72] is the sub-list for method output_type + 34, // [34:53] is the sub-list for method input_type + 34, // [34:34] is the sub-list for extension type_name + 34, // [34:34] is the sub-list for extension extendee + 0, // [0:34] is the sub-list for field type_name } func init() { file_user_user_proto_init() } @@ -3198,7 +3364,7 @@ func file_user_user_proto_init() { } } file_user_user_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*AlterUserReq); i { + switch v := v.(*GetUsersByNameReq); i { case 0: return &v.state case 1: @@ -3210,7 +3376,7 @@ func file_user_user_proto_init() { } } file_user_user_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*AlterUserResp); i { + switch v := v.(*GetUsersByNameResp); i { case 0: return &v.state case 1: @@ -3222,7 +3388,7 @@ func file_user_user_proto_init() { } } file_user_user_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetUsersReq); i { + switch v := v.(*AlterUserReq); i { case 0: return &v.state case 1: @@ -3234,7 +3400,7 @@ func file_user_user_proto_init() { } } file_user_user_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetUsersResp); i { + switch v := v.(*AlterUserResp); i { case 0: return &v.state case 1: @@ -3246,7 +3412,7 @@ func file_user_user_proto_init() { } } file_user_user_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*AddUserReq); i { + switch v := v.(*GetUsersReq); i { case 0: return &v.state case 1: @@ -3258,7 +3424,7 @@ func file_user_user_proto_init() { } } file_user_user_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*AddUserResp); i { + switch v := v.(*GetUsersResp); i { case 0: return &v.state case 1: @@ -3270,7 +3436,7 @@ func file_user_user_proto_init() { } } file_user_user_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*BlockUserReq); i { + switch v := v.(*AddUserReq); i { case 0: return &v.state case 1: @@ -3282,7 +3448,7 @@ func file_user_user_proto_init() { } } file_user_user_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*BlockUserResp); i { + switch v := v.(*AddUserResp); i { case 0: return &v.state case 1: @@ -3294,7 +3460,7 @@ func file_user_user_proto_init() { } } file_user_user_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*UnBlockUserReq); i { + switch v := v.(*BlockUserReq); i { case 0: return &v.state case 1: @@ -3306,7 +3472,7 @@ func file_user_user_proto_init() { } } file_user_user_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*UnBlockUserResp); i { + switch v := v.(*BlockUserResp); i { case 0: return &v.state case 1: @@ -3318,7 +3484,7 @@ func file_user_user_proto_init() { } } file_user_user_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetBlockUsersReq); i { + switch v := v.(*UnBlockUserReq); i { case 0: return &v.state case 1: @@ -3330,7 +3496,7 @@ func file_user_user_proto_init() { } } file_user_user_proto_msgTypes[34].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*BlockUser); i { + switch v := v.(*UnBlockUserResp); i { case 0: return &v.state case 1: @@ -3342,7 +3508,7 @@ func file_user_user_proto_init() { } } file_user_user_proto_msgTypes[35].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetBlockUsersResp); i { + switch v := v.(*GetBlockUsersReq); i { case 0: return &v.state case 1: @@ -3354,7 +3520,7 @@ func file_user_user_proto_init() { } } file_user_user_proto_msgTypes[36].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetBlockUserByIdReq); i { + switch v := v.(*BlockUser); i { case 0: return &v.state case 1: @@ -3366,7 +3532,7 @@ func file_user_user_proto_init() { } } file_user_user_proto_msgTypes[37].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetBlockUserByIdResp); i { + switch v := v.(*GetBlockUsersResp); i { case 0: return &v.state case 1: @@ -3378,7 +3544,7 @@ func file_user_user_proto_init() { } } file_user_user_proto_msgTypes[38].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DeleteUserReq); i { + switch v := v.(*GetBlockUserByIdReq); i { case 0: return &v.state case 1: @@ -3390,7 +3556,7 @@ func file_user_user_proto_init() { } } file_user_user_proto_msgTypes[39].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*DeleteUserResp); i { + switch v := v.(*GetBlockUserByIdResp); i { case 0: return &v.state case 1: @@ -3402,6 +3568,30 @@ func file_user_user_proto_init() { } } file_user_user_proto_msgTypes[40].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DeleteUserReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_user_user_proto_msgTypes[41].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*DeleteUserResp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_user_user_proto_msgTypes[42].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*AccountCheckResp_SingleUserStatus); i { case 0: return &v.state @@ -3420,7 +3610,7 @@ func file_user_user_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_user_user_proto_rawDesc, NumEnums: 0, - NumMessages: 41, + NumMessages: 43, NumExtensions: 0, NumServices: 1, }, @@ -3455,6 +3645,7 @@ type UserClient interface { GetAllConversationMsgOpt(ctx context.Context, in *GetAllConversationMsgOptReq, opts ...grpc.CallOption) (*GetAllConversationMsgOptResp, error) AccountCheck(ctx context.Context, in *AccountCheckReq, opts ...grpc.CallOption) (*AccountCheckResp, error) GetUserById(ctx context.Context, in *GetUserByIdReq, opts ...grpc.CallOption) (*GetUserByIdResp, error) + GetUsersByName(ctx context.Context, in *GetUsersByNameReq, opts ...grpc.CallOption) (*GetUsersByNameResp, error) ResignUser(ctx context.Context, in *ResignUserReq, opts ...grpc.CallOption) (*ResignUserResp, error) AlterUser(ctx context.Context, in *AlterUserReq, opts ...grpc.CallOption) (*AlterUserResp, error) GetUsers(ctx context.Context, in *GetUsersReq, opts ...grpc.CallOption) (*GetUsersResp, error) @@ -3555,6 +3746,15 @@ func (c *userClient) GetUserById(ctx context.Context, in *GetUserByIdReq, opts . return out, nil } +func (c *userClient) GetUsersByName(ctx context.Context, in *GetUsersByNameReq, opts ...grpc.CallOption) (*GetUsersByNameResp, error) { + out := new(GetUsersByNameResp) + err := c.cc.Invoke(ctx, "/user.user/GetUsersByName", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + func (c *userClient) ResignUser(ctx context.Context, in *ResignUserReq, opts ...grpc.CallOption) (*ResignUserResp, error) { out := new(ResignUserResp) err := c.cc.Invoke(ctx, "/user.user/ResignUser", in, out, opts...) @@ -3647,6 +3847,7 @@ type UserServer interface { GetAllConversationMsgOpt(context.Context, *GetAllConversationMsgOptReq) (*GetAllConversationMsgOptResp, error) AccountCheck(context.Context, *AccountCheckReq) (*AccountCheckResp, error) GetUserById(context.Context, *GetUserByIdReq) (*GetUserByIdResp, error) + GetUsersByName(context.Context, *GetUsersByNameReq) (*GetUsersByNameResp, error) ResignUser(context.Context, *ResignUserReq) (*ResignUserResp, error) AlterUser(context.Context, *AlterUserReq) (*AlterUserResp, error) GetUsers(context.Context, *GetUsersReq) (*GetUsersResp, error) @@ -3689,6 +3890,9 @@ func (*UnimplementedUserServer) AccountCheck(context.Context, *AccountCheckReq) func (*UnimplementedUserServer) GetUserById(context.Context, *GetUserByIdReq) (*GetUserByIdResp, error) { return nil, status.Errorf(codes.Unimplemented, "method GetUserById not implemented") } +func (*UnimplementedUserServer) GetUsersByName(context.Context, *GetUsersByNameReq) (*GetUsersByNameResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetUsersByName not implemented") +} func (*UnimplementedUserServer) ResignUser(context.Context, *ResignUserReq) (*ResignUserResp, error) { return nil, status.Errorf(codes.Unimplemented, "method ResignUser not implemented") } @@ -3883,6 +4087,24 @@ func _User_GetUserById_Handler(srv interface{}, ctx context.Context, dec func(in return interceptor(ctx, in, info, handler) } +func _User_GetUsersByName_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetUsersByNameReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(UserServer).GetUsersByName(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/user.user/GetUsersByName", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(UserServer).GetUsersByName(ctx, req.(*GetUsersByNameReq)) + } + return interceptor(ctx, in, info, handler) +} + func _User_ResignUser_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(ResignUserReq) if err := dec(in); err != nil { @@ -4085,6 +4307,10 @@ var _User_serviceDesc = grpc.ServiceDesc{ MethodName: "GetUserById", Handler: _User_GetUserById_Handler, }, + { + MethodName: "GetUsersByName", + Handler: _User_GetUsersByName_Handler, + }, { MethodName: "ResignUser", Handler: _User_ResignUser_Handler, diff --git a/pkg/proto/user/user.proto b/pkg/proto/user/user.proto index ac765d962..649cd2f74 100644 --- a/pkg/proto/user/user.proto +++ b/pkg/proto/user/user.proto @@ -99,7 +99,7 @@ message GetReceiveMessageOptResp{ message GetAllConversationMsgOptReq{ string FromUserID = 1; - string operationID = 2; + string operationID = 2; string OpUserID = 3; } message GetAllConversationMsgOptResp{ @@ -134,6 +134,18 @@ message GetUserByIdResp{ 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; @@ -156,7 +168,7 @@ message GetUsersResp{ CommonResp CommonResp = 1; repeated User user = 2; server_api_params.ResponsePagination Pagination = 3; - string OperationID = 4; + int32 UserNums = 4; } message AddUserReq{ @@ -193,7 +205,7 @@ message UnBlockUserResp{ message GetBlockUsersReq{ server_api_params.RequestPagination Pagination =1; string OperationID = 2; - int32 BlockUserNum = 4; + int32 BlockUserNum = 3; } message BlockUser { @@ -206,6 +218,7 @@ message GetBlockUsersResp{ CommonResp CommonResp = 1; repeated BlockUser BlockUsers = 2; server_api_params.ResponsePagination Pagination = 3; + int32 UserNums = 4; } message GetBlockUserByIdReq { @@ -236,7 +249,8 @@ service user { rpc GetAllConversationMsgOpt(GetAllConversationMsgOptReq)returns(GetAllConversationMsgOptResp); rpc AccountCheck(AccountCheckReq)returns(AccountCheckResp); - rpc GetUserById(GetUserByIdReq) returns (GetUserByIdResp); + rpc GetUserById(GetUserByIdReq) returns (GetUserByIdResp); + rpc GetUsersByName(GetUsersByNameReq) returns (GetUsersByNameResp); rpc ResignUser(ResignUserReq) returns (ResignUserResp); rpc AlterUser(AlterUserReq) returns (AlterUserResp); rpc GetUsers(GetUsersReq) returns (GetUsersResp); From 2c670b3b21d5132f0c804dec0ed87cbe7b6d7389 Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Tue, 8 Feb 2022 20:25:39 +0800 Subject: [PATCH 585/814] Refactor code --- pkg/common/db/mysql.go | 69 +++++++++++++++++++++--------------------- 1 file changed, 34 insertions(+), 35 deletions(-) diff --git a/pkg/common/db/mysql.go b/pkg/common/db/mysql.go index 56ca3648c..efcfc0f63 100644 --- a/pkg/common/db/mysql.go +++ b/pkg/common/db/mysql.go @@ -61,41 +61,40 @@ func initMysqlDB() { &Black{}, &ChatLog{}) db.Set("gorm:table_options", "CHARSET=utf8") - // - //if !db.HasTable(&Friend{}) { - // log.NewInfo("CreateTable Friend") - // db.CreateTable(&Friend{}) - //} - // - //if !db.HasTable(&FriendRequest{}) { - // log.NewInfo("CreateTable FriendRequest") - // db.CreateTable(&FriendRequest{}) - //} - // - //if !db.HasTable(&Group{}) { - // log.NewInfo("CreateTable Group") - // db.CreateTable(&Group{}) - //} - // - //if !db.HasTable(&GroupMember{}) { - // log.NewInfo("CreateTable GroupMember") - // db.CreateTable(&GroupMember{}) - //} - // - //if !db.HasTable(&GroupRequest{}) { - // log.NewInfo("CreateTable GroupRequest") - // db.CreateTable(&GroupRequest{}) - //} - // - //if !db.HasTable(&User{}) { - // log.NewInfo("CreateTable User") - // db.CreateTable(&User{}) - //} - // - //if !db.HasTable(&Black{}) { - // log.NewInfo("CreateTable Black") - // db.CreateTable(&Black{}) - //} + if !db.HasTable(&Friend{}) { + log.NewInfo("CreateTable Friend") + db.CreateTable(&Friend{}) + } + + if !db.HasTable(&FriendRequest{}) { + log.NewInfo("CreateTable FriendRequest") + db.CreateTable(&FriendRequest{}) + } + + if !db.HasTable(&Group{}) { + log.NewInfo("CreateTable Group") + db.CreateTable(&Group{}) + } + + if !db.HasTable(&GroupMember{}) { + log.NewInfo("CreateTable GroupMember") + db.CreateTable(&GroupMember{}) + } + + if !db.HasTable(&GroupRequest{}) { + log.NewInfo("CreateTable GroupRequest") + db.CreateTable(&GroupRequest{}) + } + + if !db.HasTable(&User{}) { + log.NewInfo("CreateTable User") + db.CreateTable(&User{}) + } + + if !db.HasTable(&Black{}) { + log.NewInfo("CreateTable Black") + db.CreateTable(&Black{}) + } return From 43a9bba96f5a8bba14f6c07dd44f395c048d5929 Mon Sep 17 00:00:00 2001 From: wangchuxiao Date: Wed, 9 Feb 2022 00:45:23 +0800 Subject: [PATCH 586/814] msg cms --- cmd/rpc/open_im_message_cms/main.go | 13 + internal/cms_api/message/message.go | 32 ++ internal/rpc/message_cms/message_cms.go | 99 ++++ pkg/cms_api_struct/message.go | 33 -- pkg/cms_api_struct/message_cms.go | 48 ++ .../{message => message_cms}/message.pb.go | 513 +++++++++++------- .../{message => message_cms}/message.proto | 35 +- pkg/proto/proto_dir.cfg | 6 +- 8 files changed, 549 insertions(+), 230 deletions(-) create mode 100644 cmd/rpc/open_im_message_cms/main.go create mode 100644 internal/rpc/message_cms/message_cms.go delete mode 100644 pkg/cms_api_struct/message.go create mode 100644 pkg/cms_api_struct/message_cms.go rename pkg/proto/{message => message_cms}/message.pb.go (52%) rename pkg/proto/{message => message_cms}/message.proto (59%) diff --git a/cmd/rpc/open_im_message_cms/main.go b/cmd/rpc/open_im_message_cms/main.go new file mode 100644 index 000000000..2ca603991 --- /dev/null +++ b/cmd/rpc/open_im_message_cms/main.go @@ -0,0 +1,13 @@ +package main + +import ( + rpcMessageCMS "Open_IM/internal/rpc/message_cms" + "flag" +) + +func main() { + rpcPort := flag.Int("port", 11200, "rpc listening port") + flag.Parse() + rpcServer := rpcMessageCMS.NewMessageCMSServer(*rpcPort) + rpcServer.Run() +} diff --git a/internal/cms_api/message/message.go b/internal/cms_api/message/message.go index 297268405..d223b94b1 100644 --- a/internal/cms_api/message/message.go +++ b/internal/cms_api/message/message.go @@ -1,7 +1,15 @@ package message import ( + "Open_IM/pkg/cms_api_struct" + "Open_IM/pkg/common/config" openIMHttp "Open_IM/pkg/common/http" + "Open_IM/pkg/common/log" + "Open_IM/pkg/grpc-etcdv3/getcdv3" + pbMessage "Open_IM/pkg/proto/message_cms" + "Open_IM/pkg/utils" + "context" + "strings" "Open_IM/pkg/common/constant" @@ -19,3 +27,27 @@ func MassSendMassage(c *gin.Context) { func WithdrawMessage(c *gin.Context) { openIMHttp.RespHttp200(c, constant.OK, nil) } + +func GetChatLogs(c *gin.Context) { + var ( + req cms_api_struct.GetChatLogsRequest + resp cms_api_struct.GetChatLogsResponse + reqPb pbMessage.GetChatLogsReq + ) + if err := c.ShouldBindQuery(&req); err != nil { + log.NewError(reqPb.OperationID, utils.GetSelfFuncName(), "ShouldBindQuery failed ", err.Error()) + openIMHttp.RespHttp200(c, constant.ErrArgs, resp) + return + } + utils.CopyStructFields(&reqPb, &req) + etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImStatisticsName) + client := pbMessage.NewMessageClient(etcdConn) + respPb, err := client.GetChatLogs(context.Background(), &reqPb) + if err != nil { + log.NewError(reqPb.OperationID, utils.GetSelfFuncName(), "GetChatLogs rpc failed", err.Error()) + openIMHttp.RespHttp200(c, constant.ErrServer, resp) + return + } + utils.CopyStructFields(&resp, &respPb) + openIMHttp.RespHttp200(c, constant.OK, resp) +} diff --git a/internal/rpc/message_cms/message_cms.go b/internal/rpc/message_cms/message_cms.go new file mode 100644 index 000000000..ed04446d8 --- /dev/null +++ b/internal/rpc/message_cms/message_cms.go @@ -0,0 +1,99 @@ +package MessageCMS + +import ( + "Open_IM/pkg/common/config" + "Open_IM/pkg/common/db" + "context" + + //"Open_IM/pkg/common/constant" + //"Open_IM/pkg/common/db" + + "Open_IM/pkg/common/log" + + //cp "Open_IM/pkg/common/utils" + "Open_IM/pkg/grpc-etcdv3/getcdv3" + pbMessageCMS "Open_IM/pkg/proto/message_cms" + + "Open_IM/pkg/utils" + //"context" + "net" + "strconv" + "strings" + + "google.golang.org/grpc" +) + +type messageCMSServer struct { + rpcPort int + rpcRegisterName string + etcdSchema string + etcdAddr []string +} + +func NewMessageCMSServer(port int) *messageCMSServer { + log.NewPrivateLog("Statistics") + return &messageCMSServer{ + rpcPort: port, + rpcRegisterName: config.Config.RpcRegisterName.OpenImStatisticsName, + etcdSchema: config.Config.Etcd.EtcdSchema, + etcdAddr: config.Config.Etcd.EtcdAddr, + } +} + +func (s *messageCMSServer) Run() { + log.NewInfo("0", "Statistics 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() + //Service registers with etcd + pbMessageCMS.RegisterMessageServer(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", "statistics rpc success") +} + +func (s *messageCMSServer) BoradcastMessage(_ context.Context, req *pbMessageCMS.BoradcastMessageReq) (*pbMessageCMS.BoradcastMessageResp, error) { + log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "BoradcastMessage", req.String()) + resp := &pbMessageCMS.BoradcastMessageResp{} + return resp, nil +} + +func (s *messageCMSServer) GetChatLogs(_ context.Context, req *pbMessageCMS.GetChatLogsReq) (*pbMessageCMS.GetChatLogsResp, error) { + log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "GetChatLogs", req.String()) + resp := &pbMessageCMS.GetChatLogsResp{} + chatLog := db.ChatLog{ + Content: req.Content, + } + return resp, nil +} + +func (s *messageCMSServer) MassSendMessage(_ context.Context, req *pbMessageCMS.MassSendMessageReq) (*pbMessageCMS.MassSendMessageResp, error) { + log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "MassSendMessage", req.String()) + resp := &pbMessageCMS.MassSendMessageResp{} + return resp, nil +} + +func (s *messageCMSServer) WithdrawMessage(_ context.Context, req *pbMessageCMS.WithdrawMessageReq) (*pbMessageCMS.WithdrawMessageResp, error) { + log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "WithdrawMessage", req.String()) + resp := &pbMessageCMS.WithdrawMessageResp{} + + return resp, nil +} diff --git a/pkg/cms_api_struct/message.go b/pkg/cms_api_struct/message.go deleted file mode 100644 index a9e32f70e..000000000 --- a/pkg/cms_api_struct/message.go +++ /dev/null @@ -1,33 +0,0 @@ -package cms_api_struct - -type BroadcastRequest struct { - Message string `json:"message"` -} - -type BroadcastResponse struct { -} - -type CommonMessage struct { - SessionType int `json:"session_type"` - ContentType int `json:"content_type"` - SenderNickName string `json:"sender_nick_name"` - SenderId int `json:"sender_id"` - SearchContent string `json:"search_content"` - WholeContent string `json:"whole_content"` -} - -type SearchMessageByUserResponse struct { - MessageList []struct { - CommonMessage - ReceiverNickName string `json:"receiver_nick_name"` - ReceiverID int `json:"receiver_id"` - Date string `json:"date"` - } `json:"massage_list"` -} - -type SearchMessageByGroupResponse struct { - MessageList []struct { - CommonMessage - Date string `json:"date"` - } `json:"massage_list"` -} diff --git a/pkg/cms_api_struct/message_cms.go b/pkg/cms_api_struct/message_cms.go new file mode 100644 index 000000000..e65b8d2f7 --- /dev/null +++ b/pkg/cms_api_struct/message_cms.go @@ -0,0 +1,48 @@ +package cms_api_struct + +type BroadcastRequest struct { + Message string `json:"message"` +} + +type BroadcastResponse struct { +} + +type MassSendMassageRequest struct { +} + +type MassSendMassageResponse struct { +} + +type GetChatLogsRequest struct { + SessionType int `form:"session_type"` + ContentType int `form:"content_type"` + Content string `form:"content"` + UserId string `form:"user_id"` + GroupId string `form:"group_id"` + Date string `form:"date"` + + RequestPagination +} + +type ChatLog struct { + SessionType int `json:"session_type"` + ContentType int `json:"content_type"` + SenderNickName string `json:"sender_nick_name"` + SenderId int `json:"sender_id"` + SearchContent string `json:"search_content"` + WholeContent string `json:"whole_content"` + + ReceiverNickName string `json:"receiver_nick_name"` + ReceiverID int `json:"receiver_id"` + + GroupName string `json:"group_name"` + GroupId string `json:"group_id"` + + Date string `json:"date"` +} + +type GetChatLogsResponse struct { + ChatLogs []ChatLog `json:"chat_logs"` + + ResponsePagination +} diff --git a/pkg/proto/message/message.pb.go b/pkg/proto/message_cms/message.pb.go similarity index 52% rename from pkg/proto/message/message.pb.go rename to pkg/proto/message_cms/message.pb.go index dcbbd907d..740ea304b 100644 --- a/pkg/proto/message/message.pb.go +++ b/pkg/proto/message_cms/message.pb.go @@ -2,11 +2,12 @@ // versions: // protoc-gen-go v1.26.0 // protoc v3.19.3 -// source: message/message.proto +// source: message_cms/message.proto -package message +package messageCMS import ( + sdk_ws "Open_IM/pkg/proto/sdk_ws" context "context" grpc "google.golang.org/grpc" codes "google.golang.org/grpc/codes" @@ -36,7 +37,7 @@ type BoradcastMessageReq struct { func (x *BoradcastMessageReq) Reset() { *x = BoradcastMessageReq{} if protoimpl.UnsafeEnabled { - mi := &file_message_message_proto_msgTypes[0] + mi := &file_message_cms_message_proto_msgTypes[0] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -49,7 +50,7 @@ func (x *BoradcastMessageReq) String() string { func (*BoradcastMessageReq) ProtoMessage() {} func (x *BoradcastMessageReq) ProtoReflect() protoreflect.Message { - mi := &file_message_message_proto_msgTypes[0] + mi := &file_message_cms_message_proto_msgTypes[0] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -62,7 +63,7 @@ func (x *BoradcastMessageReq) ProtoReflect() protoreflect.Message { // Deprecated: Use BoradcastMessageReq.ProtoReflect.Descriptor instead. func (*BoradcastMessageReq) Descriptor() ([]byte, []int) { - return file_message_message_proto_rawDescGZIP(), []int{0} + return file_message_cms_message_proto_rawDescGZIP(), []int{0} } func (x *BoradcastMessageReq) GetMessage() string { @@ -88,7 +89,7 @@ type BoradcastMessageResp struct { func (x *BoradcastMessageResp) Reset() { *x = BoradcastMessageResp{} if protoimpl.UnsafeEnabled { - mi := &file_message_message_proto_msgTypes[1] + mi := &file_message_cms_message_proto_msgTypes[1] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -101,7 +102,7 @@ func (x *BoradcastMessageResp) String() string { func (*BoradcastMessageResp) ProtoMessage() {} func (x *BoradcastMessageResp) ProtoReflect() protoreflect.Message { - mi := &file_message_message_proto_msgTypes[1] + mi := &file_message_cms_message_proto_msgTypes[1] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -114,7 +115,7 @@ func (x *BoradcastMessageResp) ProtoReflect() protoreflect.Message { // Deprecated: Use BoradcastMessageResp.ProtoReflect.Descriptor instead. func (*BoradcastMessageResp) Descriptor() ([]byte, []int) { - return file_message_message_proto_rawDescGZIP(), []int{1} + return file_message_cms_message_proto_rawDescGZIP(), []int{1} } type MassSendMessageReq struct { @@ -130,7 +131,7 @@ type MassSendMessageReq struct { func (x *MassSendMessageReq) Reset() { *x = MassSendMessageReq{} if protoimpl.UnsafeEnabled { - mi := &file_message_message_proto_msgTypes[2] + mi := &file_message_cms_message_proto_msgTypes[2] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -143,7 +144,7 @@ func (x *MassSendMessageReq) String() string { func (*MassSendMessageReq) ProtoMessage() {} func (x *MassSendMessageReq) ProtoReflect() protoreflect.Message { - mi := &file_message_message_proto_msgTypes[2] + mi := &file_message_cms_message_proto_msgTypes[2] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -156,7 +157,7 @@ func (x *MassSendMessageReq) ProtoReflect() protoreflect.Message { // Deprecated: Use MassSendMessageReq.ProtoReflect.Descriptor instead. func (*MassSendMessageReq) Descriptor() ([]byte, []int) { - return file_message_message_proto_rawDescGZIP(), []int{2} + return file_message_cms_message_proto_rawDescGZIP(), []int{2} } func (x *MassSendMessageReq) GetMessage() string { @@ -189,7 +190,7 @@ type MassSendMessageResp struct { func (x *MassSendMessageResp) Reset() { *x = MassSendMessageResp{} if protoimpl.UnsafeEnabled { - mi := &file_message_message_proto_msgTypes[3] + mi := &file_message_cms_message_proto_msgTypes[3] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -202,7 +203,7 @@ func (x *MassSendMessageResp) String() string { func (*MassSendMessageResp) ProtoMessage() {} func (x *MassSendMessageResp) ProtoReflect() protoreflect.Message { - mi := &file_message_message_proto_msgTypes[3] + mi := &file_message_cms_message_proto_msgTypes[3] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -215,7 +216,7 @@ func (x *MassSendMessageResp) ProtoReflect() protoreflect.Message { // Deprecated: Use MassSendMessageResp.ProtoReflect.Descriptor instead. func (*MassSendMessageResp) Descriptor() ([]byte, []int) { - return file_message_message_proto_rawDescGZIP(), []int{3} + return file_message_cms_message_proto_rawDescGZIP(), []int{3} } type GetChatLogsReq struct { @@ -223,18 +224,20 @@ type GetChatLogsReq struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - Content string `protobuf:"bytes,1,opt,name=content,proto3" json:"content,omitempty"` - UserId string `protobuf:"bytes,2,opt,name=UserId,proto3" json:"UserId,omitempty"` - Date string `protobuf:"bytes,3,opt,name=Date,proto3" json:"Date,omitempty"` - SessionType int32 `protobuf:"varint,4,opt,name=SessionType,proto3" json:"SessionType,omitempty"` - ContentType int32 `protobuf:"varint,5,opt,name=ContentType,proto3" json:"ContentType,omitempty"` - OperationID string `protobuf:"bytes,6,opt,name=OperationID,proto3" json:"OperationID,omitempty"` + Content string `protobuf:"bytes,1,opt,name=Content,proto3" json:"Content,omitempty"` + UserId string `protobuf:"bytes,2,opt,name=UserId,proto3" json:"UserId,omitempty"` + GroupId string `protobuf:"bytes,3,opt,name=GroupId,proto3" json:"GroupId,omitempty"` + Date string `protobuf:"bytes,4,opt,name=Date,proto3" json:"Date,omitempty"` + SessionType int32 `protobuf:"varint,5,opt,name=SessionType,proto3" json:"SessionType,omitempty"` + ContentType int32 `protobuf:"varint,6,opt,name=ContentType,proto3" json:"ContentType,omitempty"` + Pagination *sdk_ws.RequestPagination `protobuf:"bytes,7,opt,name=Pagination,proto3" json:"Pagination,omitempty"` + OperationID string `protobuf:"bytes,8,opt,name=OperationID,proto3" json:"OperationID,omitempty"` } func (x *GetChatLogsReq) Reset() { *x = GetChatLogsReq{} if protoimpl.UnsafeEnabled { - mi := &file_message_message_proto_msgTypes[4] + mi := &file_message_cms_message_proto_msgTypes[4] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -247,7 +250,7 @@ func (x *GetChatLogsReq) String() string { func (*GetChatLogsReq) ProtoMessage() {} func (x *GetChatLogsReq) ProtoReflect() protoreflect.Message { - mi := &file_message_message_proto_msgTypes[4] + mi := &file_message_cms_message_proto_msgTypes[4] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -260,7 +263,7 @@ func (x *GetChatLogsReq) ProtoReflect() protoreflect.Message { // Deprecated: Use GetChatLogsReq.ProtoReflect.Descriptor instead. func (*GetChatLogsReq) Descriptor() ([]byte, []int) { - return file_message_message_proto_rawDescGZIP(), []int{4} + return file_message_cms_message_proto_rawDescGZIP(), []int{4} } func (x *GetChatLogsReq) GetContent() string { @@ -277,6 +280,13 @@ func (x *GetChatLogsReq) GetUserId() string { return "" } +func (x *GetChatLogsReq) GetGroupId() string { + if x != nil { + return x.GroupId + } + return "" +} + func (x *GetChatLogsReq) GetDate() string { if x != nil { return x.Date @@ -298,6 +308,13 @@ func (x *GetChatLogsReq) GetContentType() int32 { return 0 } +func (x *GetChatLogsReq) GetPagination() *sdk_ws.RequestPagination { + if x != nil { + return x.Pagination + } + return nil +} + func (x *GetChatLogsReq) GetOperationID() string { if x != nil { return x.OperationID @@ -305,7 +322,7 @@ func (x *GetChatLogsReq) GetOperationID() string { return "" } -type GetChatLogsResp struct { +type ChatLogs struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields @@ -313,29 +330,33 @@ type GetChatLogsResp struct { SessionType int32 `protobuf:"varint,1,opt,name=SessionType,proto3" json:"SessionType,omitempty"` ContentType int32 `protobuf:"varint,2,opt,name=ContentType,proto3" json:"ContentType,omitempty"` SenderNickName string `protobuf:"bytes,3,opt,name=SenderNickName,proto3" json:"SenderNickName,omitempty"` - ReciverNickName string `protobuf:"bytes,4,opt,name=ReciverNickName,proto3" json:"ReciverNickName,omitempty"` - SearchContent string `protobuf:"bytes,5,opt,name=SearchContent,proto3" json:"SearchContent,omitempty"` - Content string `protobuf:"bytes,6,opt,name=Content,proto3" json:"Content,omitempty"` - Date string `protobuf:"bytes,7,opt,name=Date,proto3" json:"Date,omitempty"` -} - -func (x *GetChatLogsResp) Reset() { - *x = GetChatLogsResp{} + SenderId string `protobuf:"bytes,4,opt,name=SenderId,proto3" json:"SenderId,omitempty"` + ReciverNickName string `protobuf:"bytes,5,opt,name=ReciverNickName,proto3" json:"ReciverNickName,omitempty"` + ReciverId string `protobuf:"bytes,6,opt,name=ReciverId,proto3" json:"ReciverId,omitempty"` + SearchContent string `protobuf:"bytes,7,opt,name=SearchContent,proto3" json:"SearchContent,omitempty"` + WholeContent string `protobuf:"bytes,8,opt,name=WholeContent,proto3" json:"WholeContent,omitempty"` + GroupId string `protobuf:"bytes,9,opt,name=GroupId,proto3" json:"GroupId,omitempty"` + GroupName string `protobuf:"bytes,10,opt,name=GroupName,proto3" json:"GroupName,omitempty"` + Date string `protobuf:"bytes,11,opt,name=Date,proto3" json:"Date,omitempty"` +} + +func (x *ChatLogs) Reset() { + *x = ChatLogs{} if protoimpl.UnsafeEnabled { - mi := &file_message_message_proto_msgTypes[5] + mi := &file_message_cms_message_proto_msgTypes[5] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } } -func (x *GetChatLogsResp) String() string { +func (x *ChatLogs) String() string { return protoimpl.X.MessageStringOf(x) } -func (*GetChatLogsResp) ProtoMessage() {} +func (*ChatLogs) ProtoMessage() {} -func (x *GetChatLogsResp) ProtoReflect() protoreflect.Message { - mi := &file_message_message_proto_msgTypes[5] +func (x *ChatLogs) ProtoReflect() protoreflect.Message { + mi := &file_message_cms_message_proto_msgTypes[5] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -346,60 +367,143 @@ func (x *GetChatLogsResp) ProtoReflect() protoreflect.Message { return mi.MessageOf(x) } -// Deprecated: Use GetChatLogsResp.ProtoReflect.Descriptor instead. -func (*GetChatLogsResp) Descriptor() ([]byte, []int) { - return file_message_message_proto_rawDescGZIP(), []int{5} +// Deprecated: Use ChatLogs.ProtoReflect.Descriptor instead. +func (*ChatLogs) Descriptor() ([]byte, []int) { + return file_message_cms_message_proto_rawDescGZIP(), []int{5} } -func (x *GetChatLogsResp) GetSessionType() int32 { +func (x *ChatLogs) GetSessionType() int32 { if x != nil { return x.SessionType } return 0 } -func (x *GetChatLogsResp) GetContentType() int32 { +func (x *ChatLogs) GetContentType() int32 { if x != nil { return x.ContentType } return 0 } -func (x *GetChatLogsResp) GetSenderNickName() string { +func (x *ChatLogs) GetSenderNickName() string { if x != nil { return x.SenderNickName } return "" } -func (x *GetChatLogsResp) GetReciverNickName() string { +func (x *ChatLogs) GetSenderId() string { + if x != nil { + return x.SenderId + } + return "" +} + +func (x *ChatLogs) GetReciverNickName() string { if x != nil { return x.ReciverNickName } return "" } -func (x *GetChatLogsResp) GetSearchContent() string { +func (x *ChatLogs) GetReciverId() string { + if x != nil { + return x.ReciverId + } + return "" +} + +func (x *ChatLogs) GetSearchContent() string { if x != nil { return x.SearchContent } return "" } -func (x *GetChatLogsResp) GetContent() string { +func (x *ChatLogs) GetWholeContent() string { if x != nil { - return x.Content + return x.WholeContent + } + return "" +} + +func (x *ChatLogs) GetGroupId() string { + if x != nil { + return x.GroupId + } + return "" +} + +func (x *ChatLogs) GetGroupName() string { + if x != nil { + return x.GroupName } return "" } -func (x *GetChatLogsResp) GetDate() string { +func (x *ChatLogs) GetDate() string { if x != nil { return x.Date } return "" } +type GetChatLogsResp struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ChatLogs []*ChatLogs `protobuf:"bytes,1,rep,name=ChatLogs,proto3" json:"ChatLogs,omitempty"` + Pagination *sdk_ws.ResponsePagination `protobuf:"bytes,2,opt,name=Pagination,proto3" json:"Pagination,omitempty"` +} + +func (x *GetChatLogsResp) Reset() { + *x = GetChatLogsResp{} + if protoimpl.UnsafeEnabled { + mi := &file_message_cms_message_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *GetChatLogsResp) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetChatLogsResp) ProtoMessage() {} + +func (x *GetChatLogsResp) ProtoReflect() protoreflect.Message { + mi := &file_message_cms_message_proto_msgTypes[6] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetChatLogsResp.ProtoReflect.Descriptor instead. +func (*GetChatLogsResp) Descriptor() ([]byte, []int) { + return file_message_cms_message_proto_rawDescGZIP(), []int{6} +} + +func (x *GetChatLogsResp) GetChatLogs() []*ChatLogs { + if x != nil { + return x.ChatLogs + } + return nil +} + +func (x *GetChatLogsResp) GetPagination() *sdk_ws.ResponsePagination { + if x != nil { + return x.Pagination + } + return nil +} + type WithdrawMessageReq struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -412,7 +516,7 @@ type WithdrawMessageReq struct { func (x *WithdrawMessageReq) Reset() { *x = WithdrawMessageReq{} if protoimpl.UnsafeEnabled { - mi := &file_message_message_proto_msgTypes[6] + mi := &file_message_cms_message_proto_msgTypes[7] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -425,7 +529,7 @@ func (x *WithdrawMessageReq) String() string { func (*WithdrawMessageReq) ProtoMessage() {} func (x *WithdrawMessageReq) ProtoReflect() protoreflect.Message { - mi := &file_message_message_proto_msgTypes[6] + mi := &file_message_cms_message_proto_msgTypes[7] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -438,7 +542,7 @@ func (x *WithdrawMessageReq) ProtoReflect() protoreflect.Message { // Deprecated: Use WithdrawMessageReq.ProtoReflect.Descriptor instead. func (*WithdrawMessageReq) Descriptor() ([]byte, []int) { - return file_message_message_proto_rawDescGZIP(), []int{6} + return file_message_cms_message_proto_rawDescGZIP(), []int{7} } func (x *WithdrawMessageReq) GetServerMsgId() string { @@ -464,7 +568,7 @@ type WithdrawMessageResp struct { func (x *WithdrawMessageResp) Reset() { *x = WithdrawMessageResp{} if protoimpl.UnsafeEnabled { - mi := &file_message_message_proto_msgTypes[7] + mi := &file_message_cms_message_proto_msgTypes[8] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -477,7 +581,7 @@ func (x *WithdrawMessageResp) String() string { func (*WithdrawMessageResp) ProtoMessage() {} func (x *WithdrawMessageResp) ProtoReflect() protoreflect.Message { - mi := &file_message_message_proto_msgTypes[7] + mi := &file_message_cms_message_proto_msgTypes[8] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -490,134 +594,165 @@ func (x *WithdrawMessageResp) ProtoReflect() protoreflect.Message { // Deprecated: Use WithdrawMessageResp.ProtoReflect.Descriptor instead. func (*WithdrawMessageResp) Descriptor() ([]byte, []int) { - return file_message_message_proto_rawDescGZIP(), []int{7} -} - -var File_message_message_proto protoreflect.FileDescriptor - -var file_message_message_proto_rawDesc = []byte{ - 0x0a, 0x15, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x2f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, - 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, - 0x22, 0x51, 0x0a, 0x13, 0x42, 0x6f, 0x72, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x4d, 0x65, 0x73, - 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x12, 0x18, 0x0a, 0x07, 0x4d, 0x65, 0x73, 0x73, 0x61, - 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, - 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x49, 0x44, 0x22, 0x16, 0x0a, 0x14, 0x42, 0x6f, 0x72, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, - 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x22, 0x6a, 0x0a, 0x12, 0x4d, - 0x61, 0x73, 0x73, 0x53, 0x65, 0x6e, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, - 0x71, 0x12, 0x18, 0x0a, 0x07, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x07, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x55, - 0x73, 0x65, 0x72, 0x49, 0x64, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, 0x55, 0x73, - 0x65, 0x72, 0x49, 0x64, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x4f, 0x70, 0x65, 0x72, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x22, 0x15, 0x0a, 0x13, 0x4d, 0x61, 0x73, 0x73, 0x53, - 0x65, 0x6e, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x22, 0xbc, - 0x01, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x43, 0x68, 0x61, 0x74, 0x4c, 0x6f, 0x67, 0x73, 0x52, 0x65, - 0x71, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x55, - 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x55, 0x73, 0x65, - 0x72, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x44, 0x61, 0x74, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x04, 0x44, 0x61, 0x74, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x53, 0x65, 0x73, 0x73, 0x69, - 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x53, 0x65, - 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x43, 0x6f, 0x6e, - 0x74, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, - 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x4f, - 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x22, 0xfb, 0x01, - 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x43, 0x68, 0x61, 0x74, 0x4c, 0x6f, 0x67, 0x73, 0x52, 0x65, 0x73, - 0x70, 0x12, 0x20, 0x0a, 0x0b, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, + return file_message_cms_message_proto_rawDescGZIP(), []int{8} +} + +var File_message_cms_message_proto protoreflect.FileDescriptor + +var file_message_cms_message_proto_rawDesc = []byte{ + 0x0a, 0x19, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x63, 0x6d, 0x73, 0x2f, 0x6d, 0x65, + 0x73, 0x73, 0x61, 0x67, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x07, 0x6d, 0x65, 0x73, + 0x73, 0x61, 0x67, 0x65, 0x1a, 0x21, 0x4f, 0x70, 0x65, 0x6e, 0x5f, 0x49, 0x4d, 0x2f, 0x70, 0x6b, + 0x67, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x73, 0x64, 0x6b, 0x5f, 0x77, 0x73, 0x2f, 0x77, + 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x51, 0x0a, 0x13, 0x42, 0x6f, 0x72, 0x61, 0x64, + 0x63, 0x61, 0x73, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x12, 0x18, + 0x0a, 0x07, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x07, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x70, 0x65, 0x72, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x4f, + 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x22, 0x16, 0x0a, 0x14, 0x42, 0x6f, + 0x72, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, + 0x73, 0x70, 0x22, 0x6a, 0x0a, 0x12, 0x4d, 0x61, 0x73, 0x73, 0x53, 0x65, 0x6e, 0x64, 0x4d, 0x65, + 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x12, 0x18, 0x0a, 0x07, 0x4d, 0x65, 0x73, 0x73, + 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x4d, 0x65, 0x73, 0x73, 0x61, + 0x67, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x73, 0x18, 0x02, 0x20, + 0x03, 0x28, 0x09, 0x52, 0x07, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x73, 0x12, 0x20, 0x0a, 0x0b, + 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x22, 0x15, + 0x0a, 0x13, 0x4d, 0x61, 0x73, 0x73, 0x53, 0x65, 0x6e, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, + 0x65, 0x52, 0x65, 0x73, 0x70, 0x22, 0x9c, 0x02, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x43, 0x68, 0x61, + 0x74, 0x4c, 0x6f, 0x67, 0x73, 0x52, 0x65, 0x71, 0x12, 0x18, 0x0a, 0x07, 0x43, 0x6f, 0x6e, 0x74, + 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x43, 0x6f, 0x6e, 0x74, 0x65, + 0x6e, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x47, 0x72, + 0x6f, 0x75, 0x70, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x47, 0x72, 0x6f, + 0x75, 0x70, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x44, 0x61, 0x74, 0x65, 0x18, 0x04, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x04, 0x44, 0x61, 0x74, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x53, 0x65, 0x73, 0x73, + 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x53, + 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x43, 0x6f, + 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x0b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x44, 0x0a, 0x0a, + 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x24, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, + 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x50, 0x61, 0x67, 0x69, + 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0a, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, + 0x44, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x49, 0x44, 0x22, 0xf0, 0x02, 0x0a, 0x08, 0x43, 0x68, 0x61, 0x74, 0x4c, 0x6f, 0x67, + 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x4e, 0x69, 0x63, 0x6b, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x53, - 0x65, 0x6e, 0x64, 0x65, 0x72, 0x4e, 0x69, 0x63, 0x6b, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x28, 0x0a, - 0x0f, 0x52, 0x65, 0x63, 0x69, 0x76, 0x65, 0x72, 0x4e, 0x69, 0x63, 0x6b, 0x4e, 0x61, 0x6d, 0x65, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x52, 0x65, 0x63, 0x69, 0x76, 0x65, 0x72, 0x4e, - 0x69, 0x63, 0x6b, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x24, 0x0a, 0x0d, 0x53, 0x65, 0x61, 0x72, 0x63, - 0x68, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, - 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x18, 0x0a, - 0x07, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, - 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x12, 0x0a, 0x04, 0x44, 0x61, 0x74, 0x65, 0x18, - 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x44, 0x61, 0x74, 0x65, 0x22, 0x58, 0x0a, 0x12, 0x57, + 0x65, 0x6e, 0x64, 0x65, 0x72, 0x4e, 0x69, 0x63, 0x6b, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, + 0x08, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x49, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x08, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x49, 0x64, 0x12, 0x28, 0x0a, 0x0f, 0x52, 0x65, 0x63, + 0x69, 0x76, 0x65, 0x72, 0x4e, 0x69, 0x63, 0x6b, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0f, 0x52, 0x65, 0x63, 0x69, 0x76, 0x65, 0x72, 0x4e, 0x69, 0x63, 0x6b, 0x4e, + 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x52, 0x65, 0x63, 0x69, 0x76, 0x65, 0x72, 0x49, 0x64, + 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x52, 0x65, 0x63, 0x69, 0x76, 0x65, 0x72, 0x49, + 0x64, 0x12, 0x24, 0x0a, 0x0d, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x43, 0x6f, 0x6e, 0x74, 0x65, + 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, + 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x22, 0x0a, 0x0c, 0x57, 0x68, 0x6f, 0x6c, 0x65, + 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x57, + 0x68, 0x6f, 0x6c, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x47, + 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x47, 0x72, + 0x6f, 0x75, 0x70, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4e, 0x61, + 0x6d, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4e, + 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x44, 0x61, 0x74, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x04, 0x44, 0x61, 0x74, 0x65, 0x22, 0x87, 0x01, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x43, + 0x68, 0x61, 0x74, 0x4c, 0x6f, 0x67, 0x73, 0x52, 0x65, 0x73, 0x70, 0x12, 0x2d, 0x0a, 0x08, 0x43, + 0x68, 0x61, 0x74, 0x4c, 0x6f, 0x67, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, + 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x2e, 0x43, 0x68, 0x61, 0x74, 0x4c, 0x6f, 0x67, 0x73, + 0x52, 0x08, 0x43, 0x68, 0x61, 0x74, 0x4c, 0x6f, 0x67, 0x73, 0x12, 0x45, 0x0a, 0x0a, 0x50, 0x61, + 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, + 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, + 0x6d, 0x73, 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x50, 0x61, 0x67, 0x69, 0x6e, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0a, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x22, 0x58, 0x0a, 0x12, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x4d, 0x65, 0x73, + 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x12, 0x20, 0x0a, 0x0b, 0x53, 0x65, 0x72, 0x76, 0x65, + 0x72, 0x4d, 0x73, 0x67, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x53, 0x65, + 0x72, 0x76, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x70, 0x65, + 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, + 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x22, 0x15, 0x0a, 0x13, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, - 0x71, 0x12, 0x20, 0x0a, 0x0b, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x49, 0x64, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4d, 0x73, - 0x67, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x22, 0x15, 0x0a, 0x13, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, - 0x77, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x32, 0xb8, 0x02, 0x0a, - 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x4f, 0x0a, 0x10, 0x42, 0x6f, 0x72, 0x61, - 0x64, 0x63, 0x61, 0x73, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x1c, 0x2e, 0x6d, - 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x2e, 0x42, 0x6f, 0x72, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, - 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x1d, 0x2e, 0x6d, 0x65, 0x73, - 0x73, 0x61, 0x67, 0x65, 0x2e, 0x42, 0x6f, 0x72, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x4d, 0x65, - 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x4c, 0x0a, 0x0f, 0x4d, 0x61, 0x73, - 0x73, 0x53, 0x65, 0x6e, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x1b, 0x2e, 0x6d, - 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x2e, 0x4d, 0x61, 0x73, 0x73, 0x53, 0x65, 0x6e, 0x64, 0x4d, - 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x6d, 0x65, 0x73, 0x73, - 0x61, 0x67, 0x65, 0x2e, 0x4d, 0x61, 0x73, 0x73, 0x53, 0x65, 0x6e, 0x64, 0x4d, 0x65, 0x73, 0x73, - 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x40, 0x0a, 0x0b, 0x47, 0x65, 0x74, 0x43, 0x68, - 0x61, 0x74, 0x4c, 0x6f, 0x67, 0x73, 0x12, 0x17, 0x2e, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, - 0x2e, 0x47, 0x65, 0x74, 0x43, 0x68, 0x61, 0x74, 0x4c, 0x6f, 0x67, 0x73, 0x52, 0x65, 0x71, 0x1a, - 0x18, 0x2e, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x68, 0x61, - 0x74, 0x4c, 0x6f, 0x67, 0x73, 0x52, 0x65, 0x73, 0x70, 0x12, 0x4c, 0x0a, 0x0f, 0x57, 0x69, 0x74, - 0x68, 0x64, 0x72, 0x61, 0x77, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x1b, 0x2e, 0x6d, - 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x2e, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x4d, - 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x6d, 0x65, 0x73, 0x73, - 0x61, 0x67, 0x65, 0x2e, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x4d, 0x65, 0x73, 0x73, - 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x42, 0x13, 0x5a, 0x11, 0x2e, 0x2f, 0x6d, 0x65, 0x73, - 0x73, 0x61, 0x67, 0x65, 0x3b, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x62, 0x06, 0x70, 0x72, - 0x6f, 0x74, 0x6f, 0x33, + 0x73, 0x70, 0x32, 0xb8, 0x02, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x4f, + 0x0a, 0x10, 0x42, 0x6f, 0x72, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, + 0x67, 0x65, 0x12, 0x1c, 0x2e, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x2e, 0x42, 0x6f, 0x72, + 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, + 0x1a, 0x1d, 0x2e, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x2e, 0x42, 0x6f, 0x72, 0x61, 0x64, + 0x63, 0x61, 0x73, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, + 0x4c, 0x0a, 0x0f, 0x4d, 0x61, 0x73, 0x73, 0x53, 0x65, 0x6e, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, + 0x67, 0x65, 0x12, 0x1b, 0x2e, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x2e, 0x4d, 0x61, 0x73, + 0x73, 0x53, 0x65, 0x6e, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x1a, + 0x1c, 0x2e, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x2e, 0x4d, 0x61, 0x73, 0x73, 0x53, 0x65, + 0x6e, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x40, 0x0a, + 0x0b, 0x47, 0x65, 0x74, 0x43, 0x68, 0x61, 0x74, 0x4c, 0x6f, 0x67, 0x73, 0x12, 0x17, 0x2e, 0x6d, + 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x68, 0x61, 0x74, 0x4c, 0x6f, + 0x67, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x18, 0x2e, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x2e, + 0x47, 0x65, 0x74, 0x43, 0x68, 0x61, 0x74, 0x4c, 0x6f, 0x67, 0x73, 0x52, 0x65, 0x73, 0x70, 0x12, + 0x4c, 0x0a, 0x0f, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x4d, 0x65, 0x73, 0x73, 0x61, + 0x67, 0x65, 0x12, 0x1b, 0x2e, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x2e, 0x57, 0x69, 0x74, + 0x68, 0x64, 0x72, 0x61, 0x77, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x1a, + 0x1c, 0x2e, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x2e, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, + 0x61, 0x77, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x42, 0x1a, 0x5a, + 0x18, 0x2e, 0x2f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x63, 0x6d, 0x73, 0x3b, 0x6d, + 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x43, 0x4d, 0x53, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x33, } var ( - file_message_message_proto_rawDescOnce sync.Once - file_message_message_proto_rawDescData = file_message_message_proto_rawDesc + file_message_cms_message_proto_rawDescOnce sync.Once + file_message_cms_message_proto_rawDescData = file_message_cms_message_proto_rawDesc ) -func file_message_message_proto_rawDescGZIP() []byte { - file_message_message_proto_rawDescOnce.Do(func() { - file_message_message_proto_rawDescData = protoimpl.X.CompressGZIP(file_message_message_proto_rawDescData) +func file_message_cms_message_proto_rawDescGZIP() []byte { + file_message_cms_message_proto_rawDescOnce.Do(func() { + file_message_cms_message_proto_rawDescData = protoimpl.X.CompressGZIP(file_message_cms_message_proto_rawDescData) }) - return file_message_message_proto_rawDescData -} - -var file_message_message_proto_msgTypes = make([]protoimpl.MessageInfo, 8) -var file_message_message_proto_goTypes = []interface{}{ - (*BoradcastMessageReq)(nil), // 0: message.BoradcastMessageReq - (*BoradcastMessageResp)(nil), // 1: message.BoradcastMessageResp - (*MassSendMessageReq)(nil), // 2: message.MassSendMessageReq - (*MassSendMessageResp)(nil), // 3: message.MassSendMessageResp - (*GetChatLogsReq)(nil), // 4: message.GetChatLogsReq - (*GetChatLogsResp)(nil), // 5: message.GetChatLogsResp - (*WithdrawMessageReq)(nil), // 6: message.WithdrawMessageReq - (*WithdrawMessageResp)(nil), // 7: message.WithdrawMessageResp -} -var file_message_message_proto_depIdxs = []int32{ - 0, // 0: message.message.BoradcastMessage:input_type -> message.BoradcastMessageReq - 2, // 1: message.message.MassSendMessage:input_type -> message.MassSendMessageReq - 4, // 2: message.message.GetChatLogs:input_type -> message.GetChatLogsReq - 6, // 3: message.message.WithdrawMessage:input_type -> message.WithdrawMessageReq - 1, // 4: message.message.BoradcastMessage:output_type -> message.BoradcastMessageResp - 3, // 5: message.message.MassSendMessage:output_type -> message.MassSendMessageResp - 5, // 6: message.message.GetChatLogs:output_type -> message.GetChatLogsResp - 7, // 7: message.message.WithdrawMessage:output_type -> message.WithdrawMessageResp - 4, // [4:8] is the sub-list for method output_type - 0, // [0:4] is the sub-list for method input_type - 0, // [0:0] is the sub-list for extension type_name - 0, // [0:0] is the sub-list for extension extendee - 0, // [0:0] is the sub-list for field type_name -} - -func init() { file_message_message_proto_init() } -func file_message_message_proto_init() { - if File_message_message_proto != nil { + return file_message_cms_message_proto_rawDescData +} + +var file_message_cms_message_proto_msgTypes = make([]protoimpl.MessageInfo, 9) +var file_message_cms_message_proto_goTypes = []interface{}{ + (*BoradcastMessageReq)(nil), // 0: message.BoradcastMessageReq + (*BoradcastMessageResp)(nil), // 1: message.BoradcastMessageResp + (*MassSendMessageReq)(nil), // 2: message.MassSendMessageReq + (*MassSendMessageResp)(nil), // 3: message.MassSendMessageResp + (*GetChatLogsReq)(nil), // 4: message.GetChatLogsReq + (*ChatLogs)(nil), // 5: message.ChatLogs + (*GetChatLogsResp)(nil), // 6: message.GetChatLogsResp + (*WithdrawMessageReq)(nil), // 7: message.WithdrawMessageReq + (*WithdrawMessageResp)(nil), // 8: message.WithdrawMessageResp + (*sdk_ws.RequestPagination)(nil), // 9: server_api_params.RequestPagination + (*sdk_ws.ResponsePagination)(nil), // 10: server_api_params.ResponsePagination +} +var file_message_cms_message_proto_depIdxs = []int32{ + 9, // 0: message.GetChatLogsReq.Pagination:type_name -> server_api_params.RequestPagination + 5, // 1: message.GetChatLogsResp.ChatLogs:type_name -> message.ChatLogs + 10, // 2: message.GetChatLogsResp.Pagination:type_name -> server_api_params.ResponsePagination + 0, // 3: message.message.BoradcastMessage:input_type -> message.BoradcastMessageReq + 2, // 4: message.message.MassSendMessage:input_type -> message.MassSendMessageReq + 4, // 5: message.message.GetChatLogs:input_type -> message.GetChatLogsReq + 7, // 6: message.message.WithdrawMessage:input_type -> message.WithdrawMessageReq + 1, // 7: message.message.BoradcastMessage:output_type -> message.BoradcastMessageResp + 3, // 8: message.message.MassSendMessage:output_type -> message.MassSendMessageResp + 6, // 9: message.message.GetChatLogs:output_type -> message.GetChatLogsResp + 8, // 10: message.message.WithdrawMessage:output_type -> message.WithdrawMessageResp + 7, // [7:11] is the sub-list for method output_type + 3, // [3:7] is the sub-list for method input_type + 3, // [3:3] is the sub-list for extension type_name + 3, // [3:3] is the sub-list for extension extendee + 0, // [0:3] is the sub-list for field type_name +} + +func init() { file_message_cms_message_proto_init() } +func file_message_cms_message_proto_init() { + if File_message_cms_message_proto != nil { return } if !protoimpl.UnsafeEnabled { - file_message_message_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + file_message_cms_message_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BoradcastMessageReq); i { case 0: return &v.state @@ -629,7 +764,7 @@ func file_message_message_proto_init() { return nil } } - file_message_message_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + file_message_cms_message_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BoradcastMessageResp); i { case 0: return &v.state @@ -641,7 +776,7 @@ func file_message_message_proto_init() { return nil } } - file_message_message_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + file_message_cms_message_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*MassSendMessageReq); i { case 0: return &v.state @@ -653,7 +788,7 @@ func file_message_message_proto_init() { return nil } } - file_message_message_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + file_message_cms_message_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*MassSendMessageResp); i { case 0: return &v.state @@ -665,7 +800,7 @@ func file_message_message_proto_init() { return nil } } - file_message_message_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + file_message_cms_message_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetChatLogsReq); i { case 0: return &v.state @@ -677,7 +812,19 @@ func file_message_message_proto_init() { return nil } } - file_message_message_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + file_message_cms_message_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*ChatLogs); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_message_cms_message_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetChatLogsResp); i { case 0: return &v.state @@ -689,7 +836,7 @@ func file_message_message_proto_init() { return nil } } - file_message_message_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { + file_message_cms_message_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*WithdrawMessageReq); i { case 0: return &v.state @@ -701,7 +848,7 @@ func file_message_message_proto_init() { return nil } } - file_message_message_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { + file_message_cms_message_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*WithdrawMessageResp); i { case 0: return &v.state @@ -718,20 +865,20 @@ func file_message_message_proto_init() { out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), - RawDescriptor: file_message_message_proto_rawDesc, + RawDescriptor: file_message_cms_message_proto_rawDesc, NumEnums: 0, - NumMessages: 8, + NumMessages: 9, NumExtensions: 0, NumServices: 1, }, - GoTypes: file_message_message_proto_goTypes, - DependencyIndexes: file_message_message_proto_depIdxs, - MessageInfos: file_message_message_proto_msgTypes, + GoTypes: file_message_cms_message_proto_goTypes, + DependencyIndexes: file_message_cms_message_proto_depIdxs, + MessageInfos: file_message_cms_message_proto_msgTypes, }.Build() - File_message_message_proto = out.File - file_message_message_proto_rawDesc = nil - file_message_message_proto_goTypes = nil - file_message_message_proto_depIdxs = nil + File_message_cms_message_proto = out.File + file_message_cms_message_proto_rawDesc = nil + file_message_cms_message_proto_goTypes = nil + file_message_cms_message_proto_depIdxs = nil } // Reference imports to suppress errors if they are not otherwise used. @@ -919,5 +1066,5 @@ var _Message_serviceDesc = grpc.ServiceDesc{ }, }, Streams: []grpc.StreamDesc{}, - Metadata: "message/message.proto", + Metadata: "message_cms/message.proto", } diff --git a/pkg/proto/message/message.proto b/pkg/proto/message_cms/message.proto similarity index 59% rename from pkg/proto/message/message.proto rename to pkg/proto/message_cms/message.proto index 7b557dfbd..d8eb8a120 100644 --- a/pkg/proto/message/message.proto +++ b/pkg/proto/message_cms/message.proto @@ -1,5 +1,6 @@ syntax = "proto3"; -option go_package = "./message;message"; +import "Open_IM/pkg/proto/sdk_ws/ws.proto"; +option go_package = "./message_cms;messageCMS"; package message; message BoradcastMessageReq { @@ -22,22 +23,34 @@ message MassSendMessageResp { } message GetChatLogsReq { - string content = 1; + string Content = 1; string UserId = 2; - string Date = 3; - int32 SessionType = 4; - int32 ContentType = 5; - string OperationID = 6; + string GroupId = 3; + string Date = 4; + int32 SessionType = 5; + int32 ContentType = 6; + server_api_params.RequestPagination Pagination = 7; + string OperationID = 8; + } -message GetChatLogsResp { +message ChatLogs { int32 SessionType = 1; int32 ContentType = 2; string SenderNickName = 3; - string ReciverNickName = 4; - string SearchContent = 5; - string Content = 6; - string Date = 7; + string SenderId = 4; + string ReciverNickName = 5; + string ReciverId = 6; + string SearchContent = 7; + string WholeContent = 8; + string GroupId = 9; + string GroupName = 10; + string Date = 11; +} + +message GetChatLogsResp { + repeated ChatLogs ChatLogs = 1; + server_api_params.ResponsePagination Pagination = 2; } message WithdrawMessageReq { diff --git a/pkg/proto/proto_dir.cfg b/pkg/proto/proto_dir.cfg index 9f22fa533..0d67a8dfe 100644 --- a/pkg/proto/proto_dir.cfg +++ b/pkg/proto/proto_dir.cfg @@ -1,10 +1,10 @@ all_proto=( - # message/message.proto - # statistics/statistics.proto + message_cms/message.proto + #statistics/statistics.proto # auth/auth.proto # friend/friend.proto - group/group.proto + # group/group.proto # user/user.proto # chat/chat.proto # push/push.proto From 225c0a9b03b142a197c4f0c5997d15ce629b9cc7 Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Wed, 9 Feb 2022 09:13:07 +0800 Subject: [PATCH 587/814] Refactor code --- .../db/mysql_model/im_mysql_model/friend_request_model.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkg/common/db/mysql_model/im_mysql_model/friend_request_model.go b/pkg/common/db/mysql_model/im_mysql_model/friend_request_model.go index 773d6f685..f7cb002a1 100644 --- a/pkg/common/db/mysql_model/im_mysql_model/friend_request_model.go +++ b/pkg/common/db/mysql_model/im_mysql_model/friend_request_model.go @@ -78,7 +78,7 @@ func InsertFriendApplication(friendRequest *db.FriendRequest, args map[string]in } friendRequest.CreateTime = time.Now() - u := dbConn.Model(&friendRequest).Updates(args) + u := dbConn.Debug().Model(friendRequest).Updates(args) //u := dbConn.Table("friend_requests").Where("from_user_id=? and to_user_id=?", // friendRequest.FromUserID, friendRequest.ToUserID).Update(&friendRequest) //u := dbConn.Table("friend_requests").Where("from_user_id=? and to_user_id=?", From 88837012974ad078b89757a11c27d40e00470463 Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Wed, 9 Feb 2022 09:26:58 +0800 Subject: [PATCH 588/814] Refactor code --- pkg/common/db/model_struct.go | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/pkg/common/db/model_struct.go b/pkg/common/db/model_struct.go index eabc26668..7e136658f 100644 --- a/pkg/common/db/model_struct.go +++ b/pkg/common/db/model_struct.go @@ -47,6 +47,10 @@ type FriendRequest struct { Ex string `gorm:"column:ex;size:1024"` } +func (FriendRequest) TableName() string { + return "friend_requests" +} + //message GroupInfo{ // string GroupID = 1; // string GroupName = 2; From a4b6cb323214949d83cafb365de477f3a156cb4f Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Wed, 9 Feb 2022 09:31:17 +0800 Subject: [PATCH 589/814] Refactor code --- .../db/mysql_model/im_mysql_model/friend_request_model.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkg/common/db/mysql_model/im_mysql_model/friend_request_model.go b/pkg/common/db/mysql_model/im_mysql_model/friend_request_model.go index f7cb002a1..693bd71ac 100644 --- a/pkg/common/db/mysql_model/im_mysql_model/friend_request_model.go +++ b/pkg/common/db/mysql_model/im_mysql_model/friend_request_model.go @@ -78,7 +78,7 @@ func InsertFriendApplication(friendRequest *db.FriendRequest, args map[string]in } friendRequest.CreateTime = time.Now() - u := dbConn.Debug().Model(friendRequest).Updates(args) + u := dbConn.Model(friendRequest).Updates(args) //u := dbConn.Table("friend_requests").Where("from_user_id=? and to_user_id=?", // friendRequest.FromUserID, friendRequest.ToUserID).Update(&friendRequest) //u := dbConn.Table("friend_requests").Where("from_user_id=? and to_user_id=?", From 3e165197935f9f611abc2fd6dfc25a7b704c0d8a Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Wed, 9 Feb 2022 09:44:45 +0800 Subject: [PATCH 590/814] Refactor code --- pkg/common/db/mysql_model/im_mysql_model/group_request_model.go | 1 + 1 file changed, 1 insertion(+) diff --git a/pkg/common/db/mysql_model/im_mysql_model/group_request_model.go b/pkg/common/db/mysql_model/im_mysql_model/group_request_model.go index a4e3ab37f..9b7c2dd2c 100644 --- a/pkg/common/db/mysql_model/im_mysql_model/group_request_model.go +++ b/pkg/common/db/mysql_model/im_mysql_model/group_request_model.go @@ -31,6 +31,7 @@ func UpdateGroupRequest(groupRequest db.GroupRequest) error { } func InsertIntoGroupRequest(toInsertInfo db.GroupRequest) error { + DelGroupRequestByGroupIDAndUserID(toInsertInfo.GroupID, toInsertInfo.UserID) dbConn, err := db.DB.MysqlDB.DefaultGormDB() if err != nil { return err From 02b95b16f92f800a1c7396730e27e7bbffef834e Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Wed, 9 Feb 2022 09:50:03 +0800 Subject: [PATCH 591/814] Refactor code --- pkg/common/db/mysql_model/im_mysql_model/friend_request_model.go | 1 + 1 file changed, 1 insertion(+) diff --git a/pkg/common/db/mysql_model/im_mysql_model/friend_request_model.go b/pkg/common/db/mysql_model/im_mysql_model/friend_request_model.go index 693bd71ac..bcb734281 100644 --- a/pkg/common/db/mysql_model/im_mysql_model/friend_request_model.go +++ b/pkg/common/db/mysql_model/im_mysql_model/friend_request_model.go @@ -78,6 +78,7 @@ func InsertFriendApplication(friendRequest *db.FriendRequest, args map[string]in } friendRequest.CreateTime = time.Now() + args["create_time"] = friendRequest.CreateTime u := dbConn.Model(friendRequest).Updates(args) //u := dbConn.Table("friend_requests").Where("from_user_id=? and to_user_id=?", // friendRequest.FromUserID, friendRequest.ToUserID).Update(&friendRequest) From 72f87b449bb62b0d664ecaeea79e923fa47bee81 Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Wed, 9 Feb 2022 12:12:19 +0800 Subject: [PATCH 592/814] Refactor code --- internal/rpc/msg/group_notification.go | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/internal/rpc/msg/group_notification.go b/internal/rpc/msg/group_notification.go index 142e938e3..abe81e9ed 100644 --- a/internal/rpc/msg/group_notification.go +++ b/internal/rpc/msg/group_notification.go @@ -324,10 +324,10 @@ func MemberKickedNotification(req *pbGroup.KickGroupMemberReq, kickedUserIDList MemberKickedTips.KickedUserList = append(MemberKickedTips.KickedUserList, &groupMemberInfo) } groupNotification(constant.MemberKickedNotification, &MemberKickedTips, req.OpUserID, req.GroupID, "", req.OperationID) - - for _, v := range kickedUserIDList { - groupNotification(constant.MemberKickedNotification, &MemberKickedTips, req.OpUserID, "", v, req.OperationID) - } + // + //for _, v := range kickedUserIDList { + // groupNotification(constant.MemberKickedNotification, &MemberKickedTips, req.OpUserID, "", v, req.OperationID) + //} } //message MemberInvitedTips{ From bed2bfb6dbb71e2157b07b9f692de924f9e98024 Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Wed, 9 Feb 2022 12:50:36 +0800 Subject: [PATCH 593/814] push msg specify receiver --- internal/rpc/msg/send_msg.go | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/internal/rpc/msg/send_msg.go b/internal/rpc/msg/send_msg.go index 184f48697..cbfbb3345 100644 --- a/internal/rpc/msg/send_msg.go +++ b/internal/rpc/msg/send_msg.go @@ -14,6 +14,7 @@ import ( "context" "encoding/json" "github.com/garyburd/redigo/redis" + "github.com/golang/protobuf/proto" "math/rand" "net/http" "strconv" @@ -165,6 +166,20 @@ 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) } + var addUidList []string + switch pb.MsgData.ContentType { + case constant.MemberKickedNotification: + var tips sdk_ws.TipsComm + var memberKickedTips sdk_ws.MemberKickedTips + _ = proto.Unmarshal(pb.MsgData.Content, &tips) + _ = proto.Unmarshal(tips.Detail, &memberKickedTips) + for _, v := range memberKickedTips.KickedUserList { + addUidList = append(addUidList, v.UserID) + } + case constant.MemberQuitNotification: + addUidList = append(addUidList, pb.MsgData.SendID) + default: + } groupID := pb.MsgData.GroupID for _, v := range reply.MemberList { pb.MsgData.RecvID = v.UserID @@ -178,6 +193,19 @@ func (rpc *rpcChat) SendMsg(_ context.Context, pb *pbChat.SendMsgReq) (*pbChat.S } } + } + for _, v := range addUidList { + pb.MsgData.RecvID = v + isSend := modifyMessageByUserMessageReceiveOpt(v, groupID, constant.GroupChatType, pb) + if isSend { + msgToMQ.MsgData = pb.MsgData + err := rpc.sendMsgToKafka(&msgToMQ, v) + if err != nil { + log.NewError(msgToMQ.OperationID, "kafka send msg err:UserId", v, msgToMQ.String()) + return returnMsg(&replay, pb, 201, "kafka send msg err", "", 0) + } + } + } return returnMsg(&replay, pb, 0, "", msgToMQ.MsgData.ServerMsgID, msgToMQ.MsgData.SendTime) default: From 927cde3777a6fd50344086a6f9ec7d19c0e60a60 Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Wed, 9 Feb 2022 12:59:20 +0800 Subject: [PATCH 594/814] log --- internal/rpc/msg/send_msg.go | 2 ++ 1 file changed, 2 insertions(+) diff --git a/internal/rpc/msg/send_msg.go b/internal/rpc/msg/send_msg.go index cbfbb3345..5fcbc05c7 100644 --- a/internal/rpc/msg/send_msg.go +++ b/internal/rpc/msg/send_msg.go @@ -194,9 +194,11 @@ func (rpc *rpcChat) SendMsg(_ context.Context, pb *pbChat.SendMsgReq) (*pbChat.S } } + log.Info(msgToMQ.OperationID, "addUidList", addUidList) for _, v := range addUidList { pb.MsgData.RecvID = v isSend := modifyMessageByUserMessageReceiveOpt(v, groupID, constant.GroupChatType, pb) + log.Info(msgToMQ.OperationID, "isSend", isSend) if isSend { msgToMQ.MsgData = pb.MsgData err := rpc.sendMsgToKafka(&msgToMQ, v) From a81e5aa6e4ab370d177403a2ca22d50e96e9f6cc Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Wed, 9 Feb 2022 13:05:17 +0800 Subject: [PATCH 595/814] log --- internal/rpc/msg/send_msg.go | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/internal/rpc/msg/send_msg.go b/internal/rpc/msg/send_msg.go index 5fcbc05c7..7518997c0 100644 --- a/internal/rpc/msg/send_msg.go +++ b/internal/rpc/msg/send_msg.go @@ -171,8 +171,15 @@ func (rpc *rpcChat) SendMsg(_ context.Context, pb *pbChat.SendMsgReq) (*pbChat.S case constant.MemberKickedNotification: var tips sdk_ws.TipsComm var memberKickedTips sdk_ws.MemberKickedTips - _ = proto.Unmarshal(pb.MsgData.Content, &tips) - _ = proto.Unmarshal(tips.Detail, &memberKickedTips) + err := proto.Unmarshal(pb.MsgData.Content, &tips) + if err != nil { + log.Error(pb.OperationID, "Unmarshal err", err.Error()) + } + err = proto.Unmarshal(tips.Detail, &memberKickedTips) + if err != nil { + log.Error(pb.OperationID, "Unmarshal err", err.Error()) + } + log.Info(pb.OperationID, "data is ", memberKickedTips) for _, v := range memberKickedTips.KickedUserList { addUidList = append(addUidList, v.UserID) } From 3a2cd0276ab669c0c13f971720a19c885158fded Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Wed, 9 Feb 2022 13:21:46 +0800 Subject: [PATCH 596/814] Refactor code --- internal/rpc/msg/group_notification.go | 13 ++++++++++--- pkg/grpc-etcdv3/getcdv3/register.go | 4 ++-- 2 files changed, 12 insertions(+), 5 deletions(-) diff --git a/internal/rpc/msg/group_notification.go b/internal/rpc/msg/group_notification.go index abe81e9ed..a2d2ace44 100644 --- a/internal/rpc/msg/group_notification.go +++ b/internal/rpc/msg/group_notification.go @@ -54,12 +54,19 @@ func setGroupInfo(groupID string, groupInfo *open_im_sdk.GroupInfo) error { func setGroupMemberInfo(groupID, userID string, groupMemberInfo *open_im_sdk.GroupMemberFullInfo) error { groupMember, err := imdb.GetGroupMemberInfoByGroupIDAndUserID(groupID, userID) - if err != nil { - return utils.Wrap(err, "") + if err == nil { + return utils.Wrap(utils2.GroupMemberDBCopyOpenIM(groupMemberInfo, groupMember), "") } - if err = utils2.GroupMemberDBCopyOpenIM(groupMemberInfo, groupMember); err != nil { + + user, err := imdb.GetUserByUserID(userID) + if err != nil { return utils.Wrap(err, "") } + groupMemberInfo.GroupID = groupID + groupMemberInfo.UserID = user.UserID + groupMemberInfo.Nickname = user.Nickname + groupMemberInfo.AppMangerLevel = user.AppMangerLevel + groupMemberInfo.FaceURL = user.FaceURL return nil } diff --git a/pkg/grpc-etcdv3/getcdv3/register.go b/pkg/grpc-etcdv3/getcdv3/register.go index e1a78dd61..3e12486a5 100644 --- a/pkg/grpc-etcdv3/getcdv3/register.go +++ b/pkg/grpc-etcdv3/getcdv3/register.go @@ -64,9 +64,9 @@ func RegisterEtcd(schema, etcdAddr, myHost string, myPort int, serviceName strin //keepalive kresp, err := cli.KeepAlive(ctx, resp.ID) if err != nil { - return fmt.Errorf("keepalive faild, errmsg:%v, lease id:%d", err, resp.ID) + return fmt.Errorf("keepalive failed, errmsg:%v, lease id:%d", err, resp.ID) } - + fmt.Println("RegisterEtcd ok") go func() { FLOOP: for { From ee3490a5205d9feaa54056dd6fc82177cddea1fe Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Wed, 9 Feb 2022 15:03:24 +0800 Subject: [PATCH 597/814] Refactor code --- pkg/common/db/model_struct.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkg/common/db/model_struct.go b/pkg/common/db/model_struct.go index 7e136658f..25e3bf0cd 100644 --- a/pkg/common/db/model_struct.go +++ b/pkg/common/db/model_struct.go @@ -73,7 +73,7 @@ type Group struct { GroupName string `gorm:"column:name;size:255" json:"groupName"` Notification string `gorm:"column:notification;size:255" json:"notification"` Introduction string `gorm:"column:introduction;size:255" json:"introduction"` - FaceUrl string `gorm:"column:face_url;size:255" json:"faceUrl"` + FaceURL string `gorm:"column:face_url;size:255" json:"faceURL"` CreateTime time.Time `gorm:"column:create_time"` Ex string `gorm:"column:ex" json:"ex;size:1024" json:"ex"` Status int32 `gorm:"column:status"` @@ -97,7 +97,7 @@ type GroupMember struct { GroupID string `gorm:"column:group_id;primary_key;size:64"` UserID string `gorm:"column:user_id;primary_key;size:64"` Nickname string `gorm:"column:nickname;size:255"` - FaceUrl string `gorm:"column:user_group_face_url;size:255"` + FaceURL string `gorm:"column:user_group_face_url;size:255"` RoleLevel int32 `gorm:"column:role_level"` JoinTime time.Time `gorm:"column:join_time"` JoinSource int32 `gorm:"column:join_source"` From 11aecf43ba82b9ce85c43271b89d97789040b579 Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Wed, 9 Feb 2022 15:07:31 +0800 Subject: [PATCH 598/814] Refactor code --- 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 9df6064f6..f2ee7eb22 100644 --- a/internal/rpc/group/group.go +++ b/internal/rpc/group/group.go @@ -479,7 +479,7 @@ func (s *groupServer) GroupApplicationResponse(_ context.Context, req *pbGroup.G member.UserID = req.FromUserID member.RoleLevel = constant.GroupOrdinaryUsers member.OperatorUserID = req.OpUserID - member.FaceUrl = user.FaceURL + member.FaceURL = user.FaceURL member.Nickname = user.Nickname err = imdb.InsertIntoGroupMember(member) @@ -596,7 +596,7 @@ func (s *groupServer) SetGroupInfo(ctx context.Context, req *pbGroup.SetGroupInf if group.Introduction != req.GroupInfo.Introduction && req.GroupInfo.Introduction != "" { changedType = changedType | (1 << 2) } - if group.FaceUrl != req.GroupInfo.FaceURL && req.GroupInfo.FaceURL != "" { + if group.FaceURL != req.GroupInfo.FaceURL && req.GroupInfo.FaceURL != "" { changedType = changedType | (1 << 3) } //only administrators can set group information From a21e7adeb5b83cb630b7da928ef126b1de6262fc Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Wed, 9 Feb 2022 15:30:57 +0800 Subject: [PATCH 599/814] Refactor code --- internal/rpc/msg/group_notification.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/internal/rpc/msg/group_notification.go b/internal/rpc/msg/group_notification.go index a2d2ace44..a2b4e8cef 100644 --- a/internal/rpc/msg/group_notification.go +++ b/internal/rpc/msg/group_notification.go @@ -302,7 +302,7 @@ func GroupOwnerTransferredNotification(req *pbGroup.TransferGroupOwnerReq) { log.Error(req.OperationID, "setGroupMemberInfo failed", req.GroupID, req.NewOwnerUserID) return } - groupNotification(constant.GroupOwnerTransferredNotification, &GroupOwnerTransferredTips, req.OpUserID, "", req.NewOwnerUserID, req.OperationID) + groupNotification(constant.GroupOwnerTransferredNotification, &GroupOwnerTransferredTips, req.OpUserID, req.GroupID, "", req.OperationID) } //message MemberKickedTips{ From 6de61cb21493967ec322136513d852bbe0a6d9f5 Mon Sep 17 00:00:00 2001 From: wangchuxiao Date: Wed, 9 Feb 2022 16:22:58 +0800 Subject: [PATCH 600/814] cms dev --- cmd/rpc/open_im_message_cms/main.go | 2 +- config/config.yaml | 4 +- .../{message => message_cms}/message.go | 24 +- internal/cms_api/router.go | 15 +- internal/cms_api/user/user.go | 1 - internal/rpc/group/group.go | 2 +- internal/rpc/message_cms/message_cms.go | 64 ++- pkg/common/config/config.go | 1 + .../mysql_model/im_mysql_model/group_model.go | 2 +- .../mysql_model/im_mysql_model/message_cms.go | 17 + pkg/common/http/http_resp.go | 27 + .../{message.pb.go => message_cms.pb.go} | 467 +++++++++--------- .../{message.proto => message_cms.proto} | 6 +- pkg/proto/proto_dir.cfg | 2 +- 14 files changed, 370 insertions(+), 264 deletions(-) rename internal/cms_api/{message => message_cms}/message.go (63%) create mode 100644 pkg/common/db/mysql_model/im_mysql_model/message_cms.go rename pkg/proto/message_cms/{message.pb.go => message_cms.pb.go} (52%) rename pkg/proto/message_cms/{message.proto => message_cms.proto} (94%) diff --git a/cmd/rpc/open_im_message_cms/main.go b/cmd/rpc/open_im_message_cms/main.go index 2ca603991..0980d3629 100644 --- a/cmd/rpc/open_im_message_cms/main.go +++ b/cmd/rpc/open_im_message_cms/main.go @@ -6,7 +6,7 @@ import ( ) func main() { - rpcPort := flag.Int("port", 11200, "rpc listening port") + rpcPort := flag.Int("port", 10900, "rpc listening port") flag.Parse() rpcServer := rpcMessageCMS.NewMessageCMSServer(*rpcPort) rpcServer.Run() diff --git a/config/config.yaml b/config/config.yaml index 14aa68120..239d9d2f3 100644 --- a/config/config.yaml +++ b/config/config.yaml @@ -93,6 +93,7 @@ rpcport: openImAuthPort: [ 10600 ] openImPushPort: [ 10700 ] openImOpenImStatisticPort: [ 10800 ] + OpenImMessageCMSPort: [ 10900 ] c2c: callbackBeforeSendMsg: switch: false @@ -104,7 +105,7 @@ rpcport: switch: false rpcregistername: - remainLogLevel: User + openImUserName: User openImFriendName: Friend openImOfflineMessageName: OfflineMessage openImPushName: Push @@ -112,6 +113,7 @@ rpcregistername: openImGroupName: Group openImAuthName: Auth OpenImStatisticsName: Statistics + OpenImMessageCMSName: MessageCMS log: storageLocation: ../logs/ diff --git a/internal/cms_api/message/message.go b/internal/cms_api/message_cms/message.go similarity index 63% rename from internal/cms_api/message/message.go rename to internal/cms_api/message_cms/message.go index d223b94b1..ef030d432 100644 --- a/internal/cms_api/message/message.go +++ b/internal/cms_api/message_cms/message.go @@ -1,4 +1,4 @@ -package message +package messageCMS import ( "Open_IM/pkg/cms_api_struct" @@ -7,6 +7,7 @@ import ( "Open_IM/pkg/common/log" "Open_IM/pkg/grpc-etcdv3/getcdv3" pbMessage "Open_IM/pkg/proto/message_cms" + pbCommon "Open_IM/pkg/proto/sdk_ws" "Open_IM/pkg/utils" "context" "strings" @@ -17,6 +18,17 @@ import ( ) func BroadcastMessage(c *gin.Context) { + var ( + reqPb pbMessage.BoradcastMessageReq + ) + etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImMessageCMSName) + client := pbMessage.NewMessageCMSClient(etcdConn) + _, err := client.BoradcastMessage(context.Background(), &reqPb) + if err != nil { + log.NewError(reqPb.OperationID, utils.GetSelfFuncName(), "GetChatLogs rpc failed", err.Error()) + openIMHttp.RespHttp200S(c, err, nil) + return + } openIMHttp.RespHttp200(c, constant.OK, nil) } @@ -39,13 +51,17 @@ func GetChatLogs(c *gin.Context) { openIMHttp.RespHttp200(c, constant.ErrArgs, resp) return } + reqPb.Pagination = &pbCommon.RequestPagination{ + PageNumber: int32(req.PageNumber), + ShowNumber: int32(req.ShowNumber), + } utils.CopyStructFields(&reqPb, &req) - etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImStatisticsName) - client := pbMessage.NewMessageClient(etcdConn) + etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImMessageCMSName) + client := pbMessage.NewMessageCMSClient(etcdConn) respPb, err := client.GetChatLogs(context.Background(), &reqPb) if err != nil { log.NewError(reqPb.OperationID, utils.GetSelfFuncName(), "GetChatLogs rpc failed", err.Error()) - openIMHttp.RespHttp200(c, constant.ErrServer, resp) + openIMHttp.RespHttp200S(c, constant.ErrServer, resp) return } utils.CopyStructFields(&resp, &respPb) diff --git a/internal/cms_api/router.go b/internal/cms_api/router.go index 34b3b9fb9..cd1629008 100644 --- a/internal/cms_api/router.go +++ b/internal/cms_api/router.go @@ -3,7 +3,7 @@ package cms_api import ( "Open_IM/internal/cms_api/admin" "Open_IM/internal/cms_api/group" - "Open_IM/internal/cms_api/message" + messageCMS "Open_IM/internal/cms_api/message_cms" "Open_IM/internal/cms_api/middleware" "Open_IM/internal/cms_api/organization" "Open_IM/internal/cms_api/statistics" @@ -46,12 +46,6 @@ func NewGinRouter() *gin.Engine { organizationRouterGroup.PATCH("/alter_corps_info", organization.AlterStaffsInfo) organizationRouterGroup.POST("/add_child_org", organization.AddChildOrganization) } - messageRouterGroup := router.Group("/message") - { - messageRouterGroup.POST("/broadcast_message", message.BroadcastMessage) - messageRouterGroup.POST("/mass_send_message", message.MassSendMassage) - messageRouterGroup.POST("/withdraw_message", message.WithdrawMessage) - } groupRouterGroup := router.Group("/group") { groupRouterGroup.GET("/get_group_by_id", group.GetGroupById) @@ -89,5 +83,12 @@ func NewGinRouter() *gin.Engine { friendRouterGroup.POST("/set_friend") friendRouterGroup.POST("/remove_friend") } + messageCMSRouterGroup := router.Group("/message") + { + messageCMSRouterGroup.GET("/get_chat_logs", messageCMS.GetChatLogs) + messageCMSRouterGroup.POST("/broadcast_message", messageCMS.BroadcastMessage) + messageCMSRouterGroup.POST("/mass_send_message", messageCMS.MassSendMassage) + messageCMSRouterGroup.POST("/withdraw_message", messageCMS.WithdrawMessage) + } return baseRouter } diff --git a/internal/cms_api/user/user.go b/internal/cms_api/user/user.go index 393f4f4ff..9c59fd170 100644 --- a/internal/cms_api/user/user.go +++ b/internal/cms_api/user/user.go @@ -70,7 +70,6 @@ func GetUsersByName(c *gin.Context) { openIMHttp.RespHttp200(c, constant.ErrServer, nil) return } - fmt.Println(respPb) utils.CopyStructFields(&resp.Users, respPb.Users) resp.ShowNumber = int(respPb.Pagination.ShowNumber) resp.CurrentPage = int(respPb.Pagination.CurrentPage) diff --git a/internal/rpc/group/group.go b/internal/rpc/group/group.go index 7f6289845..172fe4832 100644 --- a/internal/rpc/group/group.go +++ b/internal/rpc/group/group.go @@ -645,7 +645,7 @@ func (s *groupServer) GetGroupById(_ context.Context, req *pbGroup.GetGroupByIdR resp := &pbGroup.GetGroupByIdResp{CMSGroup: &pbGroup.CMSGroup{ GroupInfo: &open_im_sdk.GroupInfo{}, }} - group, err := imdb.GetGroupsById(req.GroupId) + group, err := imdb.GetGroupById(req.GroupId) if err != nil { log.NewInfo(req.OperationID, utils.GetSelfFuncName(), err.Error()) return resp, err diff --git a/internal/rpc/message_cms/message_cms.go b/internal/rpc/message_cms/message_cms.go index ed04446d8..56c62d628 100644 --- a/internal/rpc/message_cms/message_cms.go +++ b/internal/rpc/message_cms/message_cms.go @@ -1,21 +1,21 @@ -package MessageCMS +package messageCMS import ( "Open_IM/pkg/common/config" + "Open_IM/pkg/common/constant" "Open_IM/pkg/common/db" + "Open_IM/pkg/common/http" "context" - //"Open_IM/pkg/common/constant" - //"Open_IM/pkg/common/db" - "Open_IM/pkg/common/log" - //cp "Open_IM/pkg/common/utils" + imdb "Open_IM/pkg/common/db/mysql_model/im_mysql_model" "Open_IM/pkg/grpc-etcdv3/getcdv3" pbMessageCMS "Open_IM/pkg/proto/message_cms" + open_im_sdk "Open_IM/pkg/proto/sdk_ws" "Open_IM/pkg/utils" - //"context" + "net" "strconv" "strings" @@ -31,17 +31,17 @@ type messageCMSServer struct { } func NewMessageCMSServer(port int) *messageCMSServer { - log.NewPrivateLog("Statistics") + log.NewPrivateLog("MessageCMS") return &messageCMSServer{ rpcPort: port, - rpcRegisterName: config.Config.RpcRegisterName.OpenImStatisticsName, + rpcRegisterName: config.Config.RpcRegisterName.OpenImMessageCMSName, etcdSchema: config.Config.Etcd.EtcdSchema, etcdAddr: config.Config.Etcd.EtcdAddr, } } func (s *messageCMSServer) Run() { - log.NewInfo("0", "Statistics rpc start ") + log.NewInfo("0", "messageCMS rpc start ") ip := utils.ServerIP registerAddress := ip + ":" + strconv.Itoa(s.rpcPort) //listener network @@ -56,7 +56,7 @@ func (s *messageCMSServer) Run() { srv := grpc.NewServer() defer srv.GracefulStop() //Service registers with etcd - pbMessageCMS.RegisterMessageServer(srv, s) + pbMessageCMS.RegisterMessageCMSServer(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()) @@ -67,13 +67,13 @@ func (s *messageCMSServer) Run() { log.NewError("0", "Serve failed ", err.Error()) return } - log.NewInfo("0", "statistics rpc success") + log.NewInfo("0", "message cms rpc success") } func (s *messageCMSServer) BoradcastMessage(_ context.Context, req *pbMessageCMS.BoradcastMessageReq) (*pbMessageCMS.BoradcastMessageResp, error) { log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "BoradcastMessage", req.String()) resp := &pbMessageCMS.BoradcastMessageResp{} - return resp, nil + return resp, http.WarpError(constant.ErrDB) } func (s *messageCMSServer) GetChatLogs(_ context.Context, req *pbMessageCMS.GetChatLogsReq) (*pbMessageCMS.GetChatLogsResp, error) { @@ -82,6 +82,46 @@ func (s *messageCMSServer) GetChatLogs(_ context.Context, req *pbMessageCMS.GetC chatLog := db.ChatLog{ Content: req.Content, } + chatLogs, err := imdb.GetChatLog(chatLog, req.Pagination.ShowNumber, req.Pagination.PageNumber) + if err != nil { + log.NewError(req.OperationID, utils.GetSelfFuncName(), "GetChatLog", err.Error()) + return resp, http.WarpError(constant.ErrDB) + } + for _, chatLog := range chatLogs { + pbChatLog := &pbMessageCMS.ChatLogs{ + SessionType: chatLog.SessionType, + ContentType: chatLog.ContentType, + SenderNickName: chatLog.SenderNickname, + SenderId: chatLog.SendID, + SearchContent: req.Content, + WholeContent: chatLog.Content, + Date: chatLog.CreateTime.String(), + } + switch chatLog.SessionType { + case constant.SingleChatType: + recvUser, err := imdb.GetUserByUserID(chatLog.RecvID) + if err != nil { + log.NewError(req.OperationID, utils.GetSelfFuncName(), "GetUserByUserID failed", err.Error()) + continue + } + pbChatLog.ReciverId = recvUser.UserID + pbChatLog.ReciverNickName = recvUser.Nickname + case constant.GroupChatType: + group, err := imdb.GetGroupById(chatLog.RecvID) + if err != nil { + log.NewError(req.OperationID, utils.GetSelfFuncName(), "GetGroupById failed") + continue + } + pbChatLog.GroupId = group.GroupID + pbChatLog.GroupName = group.GroupName + } + resp.ChatLogs = append(resp.ChatLogs, pbChatLog) + } + resp.Pagination = &open_im_sdk.ResponsePagination{ + CurrentPage: req.Pagination.PageNumber, + ShowNumber: req.Pagination.ShowNumber, + } + log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "resp output: ", resp.String()) return resp, nil } diff --git a/pkg/common/config/config.go b/pkg/common/config/config.go index d862224f6..9eaa3ac27 100644 --- a/pkg/common/config/config.go +++ b/pkg/common/config/config.go @@ -85,6 +85,7 @@ type config struct { OpenImOnlineMessageRelayName string `yaml:"openImOnlineMessageRelayName"` OpenImGroupName string `yaml:"openImGroupName"` OpenImAuthName string `yaml:"openImAuthName"` + OpenImMessageCMSName string `yaml:"openImMessageCMSName"` } Etcd struct { EtcdSchema string `yaml:"etcdSchema"` diff --git a/pkg/common/db/mysql_model/im_mysql_model/group_model.go b/pkg/common/db/mysql_model/im_mysql_model/group_model.go index 255cc4268..4fe159e3c 100644 --- a/pkg/common/db/mysql_model/im_mysql_model/group_model.go +++ b/pkg/common/db/mysql_model/im_mysql_model/group_model.go @@ -147,7 +147,7 @@ func GetGroupsCountNum(group db.Group) (int32, error) { return count, nil } -func GetGroupsById(groupId string) (db.Group, error) { +func GetGroupById(groupId string) (db.Group, error) { dbConn, err := db.DB.MysqlDB.DefaultGormDB() group := db.Group{ GroupID: groupId, diff --git a/pkg/common/db/mysql_model/im_mysql_model/message_cms.go b/pkg/common/db/mysql_model/im_mysql_model/message_cms.go new file mode 100644 index 000000000..261186e97 --- /dev/null +++ b/pkg/common/db/mysql_model/im_mysql_model/message_cms.go @@ -0,0 +1,17 @@ +package im_mysql_model + +import ( + "Open_IM/pkg/common/db" + "fmt" +) + +func GetChatLog(chatLog db.ChatLog, pageNumber, showNumber int32) ([]db.ChatLog, error) { + dbConn, err := db.DB.MysqlDB.DefaultGormDB() + var chatLogs []db.ChatLog + if err != nil { + return chatLogs, err + } + dbConn.LogMode(true) + err = dbConn.Table("chat_logs").Where(fmt.Sprintf(" content like '%%%s%%' ", chatLog.Content)).Limit(showNumber).Offset(showNumber * (pageNumber - 1)).Find(&chatLogs).Error + return chatLogs, err +} \ No newline at end of file diff --git a/pkg/common/http/http_resp.go b/pkg/common/http/http_resp.go index f268b715a..24870e067 100644 --- a/pkg/common/http/http_resp.go +++ b/pkg/common/http/http_resp.go @@ -2,10 +2,15 @@ package http import ( "Open_IM/pkg/common/constant" + "google.golang.org/grpc/codes" + "google.golang.org/grpc/status" + + //"Open_IM/pkg/cms_api_struct" "net/http" "github.com/gin-gonic/gin" + ) type BaseResp struct { @@ -27,6 +32,28 @@ func RespHttp200(ctx *gin.Context, err error, data interface{}) { ctx.JSON(http.StatusOK, resp) } +// warp error +func WarpError(err constant.ErrInfo) error { + return status.Error(codes.Code(err.ErrCode), err.ErrMsg) +} + +// parse error from server +func RespHttp200S(ctx *gin.Context, err error, data interface{}) { + var resp BaseResp + switch e := err.(type) { + case constant.ErrInfo: + resp.Code = e.ErrCode + default: + s, ok := status.FromError(err) + if !ok { + return + } + resp.Code = int32(s.Code()) + resp.ErrMsg = s.Message() + } + resp.Data = data + ctx.JSON(http.StatusOK, resp) +} //func CheckErr(pb interface{}) constant.ErrInfo{ // diff --git a/pkg/proto/message_cms/message.pb.go b/pkg/proto/message_cms/message_cms.pb.go similarity index 52% rename from pkg/proto/message_cms/message.pb.go rename to pkg/proto/message_cms/message_cms.pb.go index 740ea304b..5a6c30d6e 100644 --- a/pkg/proto/message_cms/message.pb.go +++ b/pkg/proto/message_cms/message_cms.pb.go @@ -1,10 +1,10 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // versions: -// protoc-gen-go v1.26.0 -// protoc v3.19.3 -// source: message_cms/message.proto +// protoc-gen-go v1.27.1 +// protoc v3.15.5 +// source: message_cms/message_cms.proto -package messageCMS +package message_cms import ( sdk_ws "Open_IM/pkg/proto/sdk_ws" @@ -37,7 +37,7 @@ type BoradcastMessageReq struct { func (x *BoradcastMessageReq) Reset() { *x = BoradcastMessageReq{} if protoimpl.UnsafeEnabled { - mi := &file_message_cms_message_proto_msgTypes[0] + mi := &file_message_cms_message_cms_proto_msgTypes[0] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -50,7 +50,7 @@ func (x *BoradcastMessageReq) String() string { func (*BoradcastMessageReq) ProtoMessage() {} func (x *BoradcastMessageReq) ProtoReflect() protoreflect.Message { - mi := &file_message_cms_message_proto_msgTypes[0] + mi := &file_message_cms_message_cms_proto_msgTypes[0] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -63,7 +63,7 @@ func (x *BoradcastMessageReq) ProtoReflect() protoreflect.Message { // Deprecated: Use BoradcastMessageReq.ProtoReflect.Descriptor instead. func (*BoradcastMessageReq) Descriptor() ([]byte, []int) { - return file_message_cms_message_proto_rawDescGZIP(), []int{0} + return file_message_cms_message_cms_proto_rawDescGZIP(), []int{0} } func (x *BoradcastMessageReq) GetMessage() string { @@ -89,7 +89,7 @@ type BoradcastMessageResp struct { func (x *BoradcastMessageResp) Reset() { *x = BoradcastMessageResp{} if protoimpl.UnsafeEnabled { - mi := &file_message_cms_message_proto_msgTypes[1] + mi := &file_message_cms_message_cms_proto_msgTypes[1] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -102,7 +102,7 @@ func (x *BoradcastMessageResp) String() string { func (*BoradcastMessageResp) ProtoMessage() {} func (x *BoradcastMessageResp) ProtoReflect() protoreflect.Message { - mi := &file_message_cms_message_proto_msgTypes[1] + mi := &file_message_cms_message_cms_proto_msgTypes[1] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -115,7 +115,7 @@ func (x *BoradcastMessageResp) ProtoReflect() protoreflect.Message { // Deprecated: Use BoradcastMessageResp.ProtoReflect.Descriptor instead. func (*BoradcastMessageResp) Descriptor() ([]byte, []int) { - return file_message_cms_message_proto_rawDescGZIP(), []int{1} + return file_message_cms_message_cms_proto_rawDescGZIP(), []int{1} } type MassSendMessageReq struct { @@ -131,7 +131,7 @@ type MassSendMessageReq struct { func (x *MassSendMessageReq) Reset() { *x = MassSendMessageReq{} if protoimpl.UnsafeEnabled { - mi := &file_message_cms_message_proto_msgTypes[2] + mi := &file_message_cms_message_cms_proto_msgTypes[2] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -144,7 +144,7 @@ func (x *MassSendMessageReq) String() string { func (*MassSendMessageReq) ProtoMessage() {} func (x *MassSendMessageReq) ProtoReflect() protoreflect.Message { - mi := &file_message_cms_message_proto_msgTypes[2] + mi := &file_message_cms_message_cms_proto_msgTypes[2] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -157,7 +157,7 @@ func (x *MassSendMessageReq) ProtoReflect() protoreflect.Message { // Deprecated: Use MassSendMessageReq.ProtoReflect.Descriptor instead. func (*MassSendMessageReq) Descriptor() ([]byte, []int) { - return file_message_cms_message_proto_rawDescGZIP(), []int{2} + return file_message_cms_message_cms_proto_rawDescGZIP(), []int{2} } func (x *MassSendMessageReq) GetMessage() string { @@ -190,7 +190,7 @@ type MassSendMessageResp struct { func (x *MassSendMessageResp) Reset() { *x = MassSendMessageResp{} if protoimpl.UnsafeEnabled { - mi := &file_message_cms_message_proto_msgTypes[3] + mi := &file_message_cms_message_cms_proto_msgTypes[3] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -203,7 +203,7 @@ func (x *MassSendMessageResp) String() string { func (*MassSendMessageResp) ProtoMessage() {} func (x *MassSendMessageResp) ProtoReflect() protoreflect.Message { - mi := &file_message_cms_message_proto_msgTypes[3] + mi := &file_message_cms_message_cms_proto_msgTypes[3] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -216,7 +216,7 @@ func (x *MassSendMessageResp) ProtoReflect() protoreflect.Message { // Deprecated: Use MassSendMessageResp.ProtoReflect.Descriptor instead. func (*MassSendMessageResp) Descriptor() ([]byte, []int) { - return file_message_cms_message_proto_rawDescGZIP(), []int{3} + return file_message_cms_message_cms_proto_rawDescGZIP(), []int{3} } type GetChatLogsReq struct { @@ -237,7 +237,7 @@ type GetChatLogsReq struct { func (x *GetChatLogsReq) Reset() { *x = GetChatLogsReq{} if protoimpl.UnsafeEnabled { - mi := &file_message_cms_message_proto_msgTypes[4] + mi := &file_message_cms_message_cms_proto_msgTypes[4] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -250,7 +250,7 @@ func (x *GetChatLogsReq) String() string { func (*GetChatLogsReq) ProtoMessage() {} func (x *GetChatLogsReq) ProtoReflect() protoreflect.Message { - mi := &file_message_cms_message_proto_msgTypes[4] + mi := &file_message_cms_message_cms_proto_msgTypes[4] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -263,7 +263,7 @@ func (x *GetChatLogsReq) ProtoReflect() protoreflect.Message { // Deprecated: Use GetChatLogsReq.ProtoReflect.Descriptor instead. func (*GetChatLogsReq) Descriptor() ([]byte, []int) { - return file_message_cms_message_proto_rawDescGZIP(), []int{4} + return file_message_cms_message_cms_proto_rawDescGZIP(), []int{4} } func (x *GetChatLogsReq) GetContent() string { @@ -343,7 +343,7 @@ type ChatLogs struct { func (x *ChatLogs) Reset() { *x = ChatLogs{} if protoimpl.UnsafeEnabled { - mi := &file_message_cms_message_proto_msgTypes[5] + mi := &file_message_cms_message_cms_proto_msgTypes[5] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -356,7 +356,7 @@ func (x *ChatLogs) String() string { func (*ChatLogs) ProtoMessage() {} func (x *ChatLogs) ProtoReflect() protoreflect.Message { - mi := &file_message_cms_message_proto_msgTypes[5] + mi := &file_message_cms_message_cms_proto_msgTypes[5] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -369,7 +369,7 @@ func (x *ChatLogs) ProtoReflect() protoreflect.Message { // Deprecated: Use ChatLogs.ProtoReflect.Descriptor instead. func (*ChatLogs) Descriptor() ([]byte, []int) { - return file_message_cms_message_proto_rawDescGZIP(), []int{5} + return file_message_cms_message_cms_proto_rawDescGZIP(), []int{5} } func (x *ChatLogs) GetSessionType() int32 { @@ -461,7 +461,7 @@ type GetChatLogsResp struct { func (x *GetChatLogsResp) Reset() { *x = GetChatLogsResp{} if protoimpl.UnsafeEnabled { - mi := &file_message_cms_message_proto_msgTypes[6] + mi := &file_message_cms_message_cms_proto_msgTypes[6] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -474,7 +474,7 @@ func (x *GetChatLogsResp) String() string { func (*GetChatLogsResp) ProtoMessage() {} func (x *GetChatLogsResp) ProtoReflect() protoreflect.Message { - mi := &file_message_cms_message_proto_msgTypes[6] + mi := &file_message_cms_message_cms_proto_msgTypes[6] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -487,7 +487,7 @@ func (x *GetChatLogsResp) ProtoReflect() protoreflect.Message { // Deprecated: Use GetChatLogsResp.ProtoReflect.Descriptor instead. func (*GetChatLogsResp) Descriptor() ([]byte, []int) { - return file_message_cms_message_proto_rawDescGZIP(), []int{6} + return file_message_cms_message_cms_proto_rawDescGZIP(), []int{6} } func (x *GetChatLogsResp) GetChatLogs() []*ChatLogs { @@ -516,7 +516,7 @@ type WithdrawMessageReq struct { func (x *WithdrawMessageReq) Reset() { *x = WithdrawMessageReq{} if protoimpl.UnsafeEnabled { - mi := &file_message_cms_message_proto_msgTypes[7] + mi := &file_message_cms_message_cms_proto_msgTypes[7] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -529,7 +529,7 @@ func (x *WithdrawMessageReq) String() string { func (*WithdrawMessageReq) ProtoMessage() {} func (x *WithdrawMessageReq) ProtoReflect() protoreflect.Message { - mi := &file_message_cms_message_proto_msgTypes[7] + mi := &file_message_cms_message_cms_proto_msgTypes[7] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -542,7 +542,7 @@ func (x *WithdrawMessageReq) ProtoReflect() protoreflect.Message { // Deprecated: Use WithdrawMessageReq.ProtoReflect.Descriptor instead. func (*WithdrawMessageReq) Descriptor() ([]byte, []int) { - return file_message_cms_message_proto_rawDescGZIP(), []int{7} + return file_message_cms_message_cms_proto_rawDescGZIP(), []int{7} } func (x *WithdrawMessageReq) GetServerMsgId() string { @@ -568,7 +568,7 @@ type WithdrawMessageResp struct { func (x *WithdrawMessageResp) Reset() { *x = WithdrawMessageResp{} if protoimpl.UnsafeEnabled { - mi := &file_message_cms_message_proto_msgTypes[8] + mi := &file_message_cms_message_cms_proto_msgTypes[8] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -581,7 +581,7 @@ func (x *WithdrawMessageResp) String() string { func (*WithdrawMessageResp) ProtoMessage() {} func (x *WithdrawMessageResp) ProtoReflect() protoreflect.Message { - mi := &file_message_cms_message_proto_msgTypes[8] + mi := &file_message_cms_message_cms_proto_msgTypes[8] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -594,151 +594,154 @@ func (x *WithdrawMessageResp) ProtoReflect() protoreflect.Message { // Deprecated: Use WithdrawMessageResp.ProtoReflect.Descriptor instead. func (*WithdrawMessageResp) Descriptor() ([]byte, []int) { - return file_message_cms_message_proto_rawDescGZIP(), []int{8} -} - -var File_message_cms_message_proto protoreflect.FileDescriptor - -var file_message_cms_message_proto_rawDesc = []byte{ - 0x0a, 0x19, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x63, 0x6d, 0x73, 0x2f, 0x6d, 0x65, - 0x73, 0x73, 0x61, 0x67, 0x65, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x07, 0x6d, 0x65, 0x73, - 0x73, 0x61, 0x67, 0x65, 0x1a, 0x21, 0x4f, 0x70, 0x65, 0x6e, 0x5f, 0x49, 0x4d, 0x2f, 0x70, 0x6b, - 0x67, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x73, 0x64, 0x6b, 0x5f, 0x77, 0x73, 0x2f, 0x77, - 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x51, 0x0a, 0x13, 0x42, 0x6f, 0x72, 0x61, 0x64, - 0x63, 0x61, 0x73, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x12, 0x18, - 0x0a, 0x07, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x07, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x70, 0x65, 0x72, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x4f, - 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x22, 0x16, 0x0a, 0x14, 0x42, 0x6f, - 0x72, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, - 0x73, 0x70, 0x22, 0x6a, 0x0a, 0x12, 0x4d, 0x61, 0x73, 0x73, 0x53, 0x65, 0x6e, 0x64, 0x4d, 0x65, - 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x12, 0x18, 0x0a, 0x07, 0x4d, 0x65, 0x73, 0x73, - 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x4d, 0x65, 0x73, 0x73, 0x61, - 0x67, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x73, 0x18, 0x02, 0x20, - 0x03, 0x28, 0x09, 0x52, 0x07, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x73, 0x12, 0x20, 0x0a, 0x0b, - 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x22, 0x15, - 0x0a, 0x13, 0x4d, 0x61, 0x73, 0x73, 0x53, 0x65, 0x6e, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, - 0x65, 0x52, 0x65, 0x73, 0x70, 0x22, 0x9c, 0x02, 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x43, 0x68, 0x61, - 0x74, 0x4c, 0x6f, 0x67, 0x73, 0x52, 0x65, 0x71, 0x12, 0x18, 0x0a, 0x07, 0x43, 0x6f, 0x6e, 0x74, - 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x43, 0x6f, 0x6e, 0x74, 0x65, - 0x6e, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x47, 0x72, - 0x6f, 0x75, 0x70, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x47, 0x72, 0x6f, - 0x75, 0x70, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x44, 0x61, 0x74, 0x65, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x04, 0x44, 0x61, 0x74, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x53, 0x65, 0x73, 0x73, - 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x53, - 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x43, 0x6f, - 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x0b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x44, 0x0a, 0x0a, - 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x24, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, - 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x50, 0x61, 0x67, 0x69, - 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0a, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, - 0x44, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x49, 0x44, 0x22, 0xf0, 0x02, 0x0a, 0x08, 0x43, 0x68, 0x61, 0x74, 0x4c, 0x6f, 0x67, - 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x54, - 0x79, 0x70, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x54, 0x79, - 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, - 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x4e, - 0x69, 0x63, 0x6b, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x53, - 0x65, 0x6e, 0x64, 0x65, 0x72, 0x4e, 0x69, 0x63, 0x6b, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, - 0x08, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x49, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x08, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x49, 0x64, 0x12, 0x28, 0x0a, 0x0f, 0x52, 0x65, 0x63, - 0x69, 0x76, 0x65, 0x72, 0x4e, 0x69, 0x63, 0x6b, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0f, 0x52, 0x65, 0x63, 0x69, 0x76, 0x65, 0x72, 0x4e, 0x69, 0x63, 0x6b, 0x4e, - 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x52, 0x65, 0x63, 0x69, 0x76, 0x65, 0x72, 0x49, 0x64, - 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x52, 0x65, 0x63, 0x69, 0x76, 0x65, 0x72, 0x49, - 0x64, 0x12, 0x24, 0x0a, 0x0d, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x43, 0x6f, 0x6e, 0x74, 0x65, - 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, - 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x22, 0x0a, 0x0c, 0x57, 0x68, 0x6f, 0x6c, 0x65, - 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x57, - 0x68, 0x6f, 0x6c, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x47, - 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x47, 0x72, - 0x6f, 0x75, 0x70, 0x49, 0x64, 0x12, 0x1c, 0x0a, 0x09, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4e, 0x61, - 0x6d, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4e, - 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x44, 0x61, 0x74, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x04, 0x44, 0x61, 0x74, 0x65, 0x22, 0x87, 0x01, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x43, - 0x68, 0x61, 0x74, 0x4c, 0x6f, 0x67, 0x73, 0x52, 0x65, 0x73, 0x70, 0x12, 0x2d, 0x0a, 0x08, 0x43, - 0x68, 0x61, 0x74, 0x4c, 0x6f, 0x67, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x11, 0x2e, - 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x2e, 0x43, 0x68, 0x61, 0x74, 0x4c, 0x6f, 0x67, 0x73, - 0x52, 0x08, 0x43, 0x68, 0x61, 0x74, 0x4c, 0x6f, 0x67, 0x73, 0x12, 0x45, 0x0a, 0x0a, 0x50, 0x61, - 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, - 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, - 0x6d, 0x73, 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x50, 0x61, 0x67, 0x69, 0x6e, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0a, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x22, 0x58, 0x0a, 0x12, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x4d, 0x65, 0x73, - 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x12, 0x20, 0x0a, 0x0b, 0x53, 0x65, 0x72, 0x76, 0x65, - 0x72, 0x4d, 0x73, 0x67, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x53, 0x65, - 0x72, 0x76, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x70, 0x65, - 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, - 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x22, 0x15, 0x0a, 0x13, 0x57, - 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, - 0x73, 0x70, 0x32, 0xb8, 0x02, 0x0a, 0x07, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x4f, - 0x0a, 0x10, 0x42, 0x6f, 0x72, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, - 0x67, 0x65, 0x12, 0x1c, 0x2e, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x2e, 0x42, 0x6f, 0x72, - 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, - 0x1a, 0x1d, 0x2e, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x2e, 0x42, 0x6f, 0x72, 0x61, 0x64, - 0x63, 0x61, 0x73, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, - 0x4c, 0x0a, 0x0f, 0x4d, 0x61, 0x73, 0x73, 0x53, 0x65, 0x6e, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, - 0x67, 0x65, 0x12, 0x1b, 0x2e, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x2e, 0x4d, 0x61, 0x73, - 0x73, 0x53, 0x65, 0x6e, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x1a, - 0x1c, 0x2e, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x2e, 0x4d, 0x61, 0x73, 0x73, 0x53, 0x65, - 0x6e, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x40, 0x0a, - 0x0b, 0x47, 0x65, 0x74, 0x43, 0x68, 0x61, 0x74, 0x4c, 0x6f, 0x67, 0x73, 0x12, 0x17, 0x2e, 0x6d, - 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x68, 0x61, 0x74, 0x4c, 0x6f, - 0x67, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x18, 0x2e, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x2e, - 0x47, 0x65, 0x74, 0x43, 0x68, 0x61, 0x74, 0x4c, 0x6f, 0x67, 0x73, 0x52, 0x65, 0x73, 0x70, 0x12, - 0x4c, 0x0a, 0x0f, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x4d, 0x65, 0x73, 0x73, 0x61, - 0x67, 0x65, 0x12, 0x1b, 0x2e, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x2e, 0x57, 0x69, 0x74, - 0x68, 0x64, 0x72, 0x61, 0x77, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x1a, - 0x1c, 0x2e, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x2e, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, - 0x61, 0x77, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x42, 0x1a, 0x5a, - 0x18, 0x2e, 0x2f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x63, 0x6d, 0x73, 0x3b, 0x6d, - 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x43, 0x4d, 0x53, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, + return file_message_cms_message_cms_proto_rawDescGZIP(), []int{8} +} + +var File_message_cms_message_cms_proto protoreflect.FileDescriptor + +var file_message_cms_message_cms_proto_rawDesc = []byte{ + 0x0a, 0x1d, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x63, 0x6d, 0x73, 0x2f, 0x6d, 0x65, + 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x63, 0x6d, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, + 0x0b, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x63, 0x6d, 0x73, 0x1a, 0x21, 0x4f, 0x70, + 0x65, 0x6e, 0x5f, 0x49, 0x4d, 0x2f, 0x70, 0x6b, 0x67, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, + 0x73, 0x64, 0x6b, 0x5f, 0x77, 0x73, 0x2f, 0x77, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, + 0x51, 0x0a, 0x13, 0x42, 0x6f, 0x72, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x4d, 0x65, 0x73, 0x73, + 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x12, 0x18, 0x0a, 0x07, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, + 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x49, 0x44, 0x22, 0x16, 0x0a, 0x14, 0x42, 0x6f, 0x72, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x4d, + 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x22, 0x6a, 0x0a, 0x12, 0x4d, 0x61, + 0x73, 0x73, 0x53, 0x65, 0x6e, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, + 0x12, 0x18, 0x0a, 0x07, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x07, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x55, 0x73, + 0x65, 0x72, 0x49, 0x64, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, 0x55, 0x73, 0x65, + 0x72, 0x49, 0x64, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x22, 0x15, 0x0a, 0x13, 0x4d, 0x61, 0x73, 0x73, 0x53, 0x65, + 0x6e, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x22, 0x9c, 0x02, + 0x0a, 0x0e, 0x47, 0x65, 0x74, 0x43, 0x68, 0x61, 0x74, 0x4c, 0x6f, 0x67, 0x73, 0x52, 0x65, 0x71, + 0x12, 0x18, 0x0a, 0x07, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x07, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x55, 0x73, + 0x65, 0x72, 0x49, 0x64, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x55, 0x73, 0x65, 0x72, + 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x07, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, + 0x44, 0x61, 0x74, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x44, 0x61, 0x74, 0x65, + 0x12, 0x20, 0x0a, 0x0b, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x18, + 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x54, 0x79, + 0x70, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, + 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, + 0x54, 0x79, 0x70, 0x65, 0x12, 0x44, 0x0a, 0x0a, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x18, 0x07, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, + 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x52, 0x65, 0x71, + 0x75, 0x65, 0x73, 0x74, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0a, + 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x70, + 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x22, 0xf0, 0x02, 0x0a, + 0x08, 0x43, 0x68, 0x61, 0x74, 0x4c, 0x6f, 0x67, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x53, 0x65, 0x73, + 0x73, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, + 0x53, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x43, + 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x0b, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, 0x12, 0x26, 0x0a, + 0x0e, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x4e, 0x69, 0x63, 0x6b, 0x4e, 0x61, 0x6d, 0x65, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x4e, 0x69, 0x63, + 0x6b, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, 0x08, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x49, + 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x53, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x49, + 0x64, 0x12, 0x28, 0x0a, 0x0f, 0x52, 0x65, 0x63, 0x69, 0x76, 0x65, 0x72, 0x4e, 0x69, 0x63, 0x6b, + 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0f, 0x52, 0x65, 0x63, 0x69, + 0x76, 0x65, 0x72, 0x4e, 0x69, 0x63, 0x6b, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x52, + 0x65, 0x63, 0x69, 0x76, 0x65, 0x72, 0x49, 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, + 0x52, 0x65, 0x63, 0x69, 0x76, 0x65, 0x72, 0x49, 0x64, 0x12, 0x24, 0x0a, 0x0d, 0x53, 0x65, 0x61, + 0x72, 0x63, 0x68, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0d, 0x53, 0x65, 0x61, 0x72, 0x63, 0x68, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, + 0x22, 0x0a, 0x0c, 0x57, 0x68, 0x6f, 0x6c, 0x65, 0x43, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, + 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x57, 0x68, 0x6f, 0x6c, 0x65, 0x43, 0x6f, 0x6e, 0x74, + 0x65, 0x6e, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x18, 0x09, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x12, 0x1c, 0x0a, + 0x09, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x09, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x44, + 0x61, 0x74, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x44, 0x61, 0x74, 0x65, 0x22, + 0x8b, 0x01, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x43, 0x68, 0x61, 0x74, 0x4c, 0x6f, 0x67, 0x73, 0x52, + 0x65, 0x73, 0x70, 0x12, 0x31, 0x0a, 0x08, 0x43, 0x68, 0x61, 0x74, 0x4c, 0x6f, 0x67, 0x73, 0x18, + 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, + 0x63, 0x6d, 0x73, 0x2e, 0x43, 0x68, 0x61, 0x74, 0x4c, 0x6f, 0x67, 0x73, 0x52, 0x08, 0x43, 0x68, + 0x61, 0x74, 0x4c, 0x6f, 0x67, 0x73, 0x12, 0x45, 0x0a, 0x0a, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x73, 0x65, 0x72, + 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x52, 0x0a, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x58, 0x0a, + 0x12, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, + 0x52, 0x65, 0x71, 0x12, 0x20, 0x0a, 0x0b, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4d, 0x73, 0x67, + 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, + 0x4d, 0x73, 0x67, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x4f, 0x70, 0x65, 0x72, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x22, 0x15, 0x0a, 0x13, 0x57, 0x69, 0x74, 0x68, 0x64, + 0x72, 0x61, 0x77, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x32, 0xdb, + 0x02, 0x0a, 0x0a, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x43, 0x4d, 0x53, 0x12, 0x57, 0x0a, + 0x10, 0x42, 0x6f, 0x72, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, + 0x65, 0x12, 0x20, 0x2e, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x63, 0x6d, 0x73, 0x2e, + 0x42, 0x6f, 0x72, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, + 0x52, 0x65, 0x71, 0x1a, 0x21, 0x2e, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x63, 0x6d, + 0x73, 0x2e, 0x42, 0x6f, 0x72, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, + 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x54, 0x0a, 0x0f, 0x4d, 0x61, 0x73, 0x73, 0x53, 0x65, + 0x6e, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x1f, 0x2e, 0x6d, 0x65, 0x73, 0x73, + 0x61, 0x67, 0x65, 0x5f, 0x63, 0x6d, 0x73, 0x2e, 0x4d, 0x61, 0x73, 0x73, 0x53, 0x65, 0x6e, 0x64, + 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x20, 0x2e, 0x6d, 0x65, 0x73, + 0x73, 0x61, 0x67, 0x65, 0x5f, 0x63, 0x6d, 0x73, 0x2e, 0x4d, 0x61, 0x73, 0x73, 0x53, 0x65, 0x6e, + 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x48, 0x0a, 0x0b, + 0x47, 0x65, 0x74, 0x43, 0x68, 0x61, 0x74, 0x4c, 0x6f, 0x67, 0x73, 0x12, 0x1b, 0x2e, 0x6d, 0x65, + 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x63, 0x6d, 0x73, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x68, 0x61, + 0x74, 0x4c, 0x6f, 0x67, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x6d, 0x65, 0x73, 0x73, 0x61, + 0x67, 0x65, 0x5f, 0x63, 0x6d, 0x73, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x68, 0x61, 0x74, 0x4c, 0x6f, + 0x67, 0x73, 0x52, 0x65, 0x73, 0x70, 0x12, 0x54, 0x0a, 0x0f, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, + 0x61, 0x77, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x1f, 0x2e, 0x6d, 0x65, 0x73, 0x73, + 0x61, 0x67, 0x65, 0x5f, 0x63, 0x6d, 0x73, 0x2e, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, + 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x20, 0x2e, 0x6d, 0x65, 0x73, + 0x73, 0x61, 0x67, 0x65, 0x5f, 0x63, 0x6d, 0x73, 0x2e, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, + 0x77, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x42, 0x1b, 0x5a, 0x19, + 0x2e, 0x2f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x63, 0x6d, 0x73, 0x3b, 0x6d, 0x65, + 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x63, 0x6d, 0x73, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( - file_message_cms_message_proto_rawDescOnce sync.Once - file_message_cms_message_proto_rawDescData = file_message_cms_message_proto_rawDesc + file_message_cms_message_cms_proto_rawDescOnce sync.Once + file_message_cms_message_cms_proto_rawDescData = file_message_cms_message_cms_proto_rawDesc ) -func file_message_cms_message_proto_rawDescGZIP() []byte { - file_message_cms_message_proto_rawDescOnce.Do(func() { - file_message_cms_message_proto_rawDescData = protoimpl.X.CompressGZIP(file_message_cms_message_proto_rawDescData) +func file_message_cms_message_cms_proto_rawDescGZIP() []byte { + file_message_cms_message_cms_proto_rawDescOnce.Do(func() { + file_message_cms_message_cms_proto_rawDescData = protoimpl.X.CompressGZIP(file_message_cms_message_cms_proto_rawDescData) }) - return file_message_cms_message_proto_rawDescData -} - -var file_message_cms_message_proto_msgTypes = make([]protoimpl.MessageInfo, 9) -var file_message_cms_message_proto_goTypes = []interface{}{ - (*BoradcastMessageReq)(nil), // 0: message.BoradcastMessageReq - (*BoradcastMessageResp)(nil), // 1: message.BoradcastMessageResp - (*MassSendMessageReq)(nil), // 2: message.MassSendMessageReq - (*MassSendMessageResp)(nil), // 3: message.MassSendMessageResp - (*GetChatLogsReq)(nil), // 4: message.GetChatLogsReq - (*ChatLogs)(nil), // 5: message.ChatLogs - (*GetChatLogsResp)(nil), // 6: message.GetChatLogsResp - (*WithdrawMessageReq)(nil), // 7: message.WithdrawMessageReq - (*WithdrawMessageResp)(nil), // 8: message.WithdrawMessageResp + return file_message_cms_message_cms_proto_rawDescData +} + +var file_message_cms_message_cms_proto_msgTypes = make([]protoimpl.MessageInfo, 9) +var file_message_cms_message_cms_proto_goTypes = []interface{}{ + (*BoradcastMessageReq)(nil), // 0: message_cms.BoradcastMessageReq + (*BoradcastMessageResp)(nil), // 1: message_cms.BoradcastMessageResp + (*MassSendMessageReq)(nil), // 2: message_cms.MassSendMessageReq + (*MassSendMessageResp)(nil), // 3: message_cms.MassSendMessageResp + (*GetChatLogsReq)(nil), // 4: message_cms.GetChatLogsReq + (*ChatLogs)(nil), // 5: message_cms.ChatLogs + (*GetChatLogsResp)(nil), // 6: message_cms.GetChatLogsResp + (*WithdrawMessageReq)(nil), // 7: message_cms.WithdrawMessageReq + (*WithdrawMessageResp)(nil), // 8: message_cms.WithdrawMessageResp (*sdk_ws.RequestPagination)(nil), // 9: server_api_params.RequestPagination (*sdk_ws.ResponsePagination)(nil), // 10: server_api_params.ResponsePagination } -var file_message_cms_message_proto_depIdxs = []int32{ - 9, // 0: message.GetChatLogsReq.Pagination:type_name -> server_api_params.RequestPagination - 5, // 1: message.GetChatLogsResp.ChatLogs:type_name -> message.ChatLogs - 10, // 2: message.GetChatLogsResp.Pagination:type_name -> server_api_params.ResponsePagination - 0, // 3: message.message.BoradcastMessage:input_type -> message.BoradcastMessageReq - 2, // 4: message.message.MassSendMessage:input_type -> message.MassSendMessageReq - 4, // 5: message.message.GetChatLogs:input_type -> message.GetChatLogsReq - 7, // 6: message.message.WithdrawMessage:input_type -> message.WithdrawMessageReq - 1, // 7: message.message.BoradcastMessage:output_type -> message.BoradcastMessageResp - 3, // 8: message.message.MassSendMessage:output_type -> message.MassSendMessageResp - 6, // 9: message.message.GetChatLogs:output_type -> message.GetChatLogsResp - 8, // 10: message.message.WithdrawMessage:output_type -> message.WithdrawMessageResp +var file_message_cms_message_cms_proto_depIdxs = []int32{ + 9, // 0: message_cms.GetChatLogsReq.Pagination:type_name -> server_api_params.RequestPagination + 5, // 1: message_cms.GetChatLogsResp.ChatLogs:type_name -> message_cms.ChatLogs + 10, // 2: message_cms.GetChatLogsResp.Pagination:type_name -> server_api_params.ResponsePagination + 0, // 3: message_cms.messageCMS.BoradcastMessage:input_type -> message_cms.BoradcastMessageReq + 2, // 4: message_cms.messageCMS.MassSendMessage:input_type -> message_cms.MassSendMessageReq + 4, // 5: message_cms.messageCMS.GetChatLogs:input_type -> message_cms.GetChatLogsReq + 7, // 6: message_cms.messageCMS.WithdrawMessage:input_type -> message_cms.WithdrawMessageReq + 1, // 7: message_cms.messageCMS.BoradcastMessage:output_type -> message_cms.BoradcastMessageResp + 3, // 8: message_cms.messageCMS.MassSendMessage:output_type -> message_cms.MassSendMessageResp + 6, // 9: message_cms.messageCMS.GetChatLogs:output_type -> message_cms.GetChatLogsResp + 8, // 10: message_cms.messageCMS.WithdrawMessage:output_type -> message_cms.WithdrawMessageResp 7, // [7:11] is the sub-list for method output_type 3, // [3:7] is the sub-list for method input_type 3, // [3:3] is the sub-list for extension type_name @@ -746,13 +749,13 @@ var file_message_cms_message_proto_depIdxs = []int32{ 0, // [0:3] is the sub-list for field type_name } -func init() { file_message_cms_message_proto_init() } -func file_message_cms_message_proto_init() { - if File_message_cms_message_proto != nil { +func init() { file_message_cms_message_cms_proto_init() } +func file_message_cms_message_cms_proto_init() { + if File_message_cms_message_cms_proto != nil { return } if !protoimpl.UnsafeEnabled { - file_message_cms_message_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + file_message_cms_message_cms_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BoradcastMessageReq); i { case 0: return &v.state @@ -764,7 +767,7 @@ func file_message_cms_message_proto_init() { return nil } } - file_message_cms_message_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + file_message_cms_message_cms_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*BoradcastMessageResp); i { case 0: return &v.state @@ -776,7 +779,7 @@ func file_message_cms_message_proto_init() { return nil } } - file_message_cms_message_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + file_message_cms_message_cms_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*MassSendMessageReq); i { case 0: return &v.state @@ -788,7 +791,7 @@ func file_message_cms_message_proto_init() { return nil } } - file_message_cms_message_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + file_message_cms_message_cms_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*MassSendMessageResp); i { case 0: return &v.state @@ -800,7 +803,7 @@ func file_message_cms_message_proto_init() { return nil } } - file_message_cms_message_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + file_message_cms_message_cms_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetChatLogsReq); i { case 0: return &v.state @@ -812,7 +815,7 @@ func file_message_cms_message_proto_init() { return nil } } - file_message_cms_message_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + file_message_cms_message_cms_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ChatLogs); i { case 0: return &v.state @@ -824,7 +827,7 @@ func file_message_cms_message_proto_init() { return nil } } - file_message_cms_message_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { + file_message_cms_message_cms_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*GetChatLogsResp); i { case 0: return &v.state @@ -836,7 +839,7 @@ func file_message_cms_message_proto_init() { return nil } } - file_message_cms_message_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { + file_message_cms_message_cms_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*WithdrawMessageReq); i { case 0: return &v.state @@ -848,7 +851,7 @@ func file_message_cms_message_proto_init() { return nil } } - file_message_cms_message_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { + file_message_cms_message_cms_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*WithdrawMessageResp); i { case 0: return &v.state @@ -865,20 +868,20 @@ func file_message_cms_message_proto_init() { out := protoimpl.TypeBuilder{ File: protoimpl.DescBuilder{ GoPackagePath: reflect.TypeOf(x{}).PkgPath(), - RawDescriptor: file_message_cms_message_proto_rawDesc, + RawDescriptor: file_message_cms_message_cms_proto_rawDesc, NumEnums: 0, NumMessages: 9, NumExtensions: 0, NumServices: 1, }, - GoTypes: file_message_cms_message_proto_goTypes, - DependencyIndexes: file_message_cms_message_proto_depIdxs, - MessageInfos: file_message_cms_message_proto_msgTypes, + GoTypes: file_message_cms_message_cms_proto_goTypes, + DependencyIndexes: file_message_cms_message_cms_proto_depIdxs, + MessageInfos: file_message_cms_message_cms_proto_msgTypes, }.Build() - File_message_cms_message_proto = out.File - file_message_cms_message_proto_rawDesc = nil - file_message_cms_message_proto_goTypes = nil - file_message_cms_message_proto_depIdxs = nil + File_message_cms_message_cms_proto = out.File + file_message_cms_message_cms_proto_rawDesc = nil + file_message_cms_message_cms_proto_goTypes = nil + file_message_cms_message_cms_proto_depIdxs = nil } // Reference imports to suppress errors if they are not otherwise used. @@ -889,182 +892,182 @@ var _ grpc.ClientConnInterface // is compatible with the grpc package it is being compiled against. const _ = grpc.SupportPackageIsVersion6 -// MessageClient is the client API for Message service. +// MessageCMSClient is the client API for MessageCMS service. // // For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream. -type MessageClient interface { +type MessageCMSClient interface { BoradcastMessage(ctx context.Context, in *BoradcastMessageReq, opts ...grpc.CallOption) (*BoradcastMessageResp, error) MassSendMessage(ctx context.Context, in *MassSendMessageReq, opts ...grpc.CallOption) (*MassSendMessageResp, error) GetChatLogs(ctx context.Context, in *GetChatLogsReq, opts ...grpc.CallOption) (*GetChatLogsResp, error) WithdrawMessage(ctx context.Context, in *WithdrawMessageReq, opts ...grpc.CallOption) (*WithdrawMessageResp, error) } -type messageClient struct { +type messageCMSClient struct { cc grpc.ClientConnInterface } -func NewMessageClient(cc grpc.ClientConnInterface) MessageClient { - return &messageClient{cc} +func NewMessageCMSClient(cc grpc.ClientConnInterface) MessageCMSClient { + return &messageCMSClient{cc} } -func (c *messageClient) BoradcastMessage(ctx context.Context, in *BoradcastMessageReq, opts ...grpc.CallOption) (*BoradcastMessageResp, error) { +func (c *messageCMSClient) BoradcastMessage(ctx context.Context, in *BoradcastMessageReq, opts ...grpc.CallOption) (*BoradcastMessageResp, error) { out := new(BoradcastMessageResp) - err := c.cc.Invoke(ctx, "/message.message/BoradcastMessage", in, out, opts...) + err := c.cc.Invoke(ctx, "/message_cms.messageCMS/BoradcastMessage", in, out, opts...) if err != nil { return nil, err } return out, nil } -func (c *messageClient) MassSendMessage(ctx context.Context, in *MassSendMessageReq, opts ...grpc.CallOption) (*MassSendMessageResp, error) { +func (c *messageCMSClient) MassSendMessage(ctx context.Context, in *MassSendMessageReq, opts ...grpc.CallOption) (*MassSendMessageResp, error) { out := new(MassSendMessageResp) - err := c.cc.Invoke(ctx, "/message.message/MassSendMessage", in, out, opts...) + err := c.cc.Invoke(ctx, "/message_cms.messageCMS/MassSendMessage", in, out, opts...) if err != nil { return nil, err } return out, nil } -func (c *messageClient) GetChatLogs(ctx context.Context, in *GetChatLogsReq, opts ...grpc.CallOption) (*GetChatLogsResp, error) { +func (c *messageCMSClient) GetChatLogs(ctx context.Context, in *GetChatLogsReq, opts ...grpc.CallOption) (*GetChatLogsResp, error) { out := new(GetChatLogsResp) - err := c.cc.Invoke(ctx, "/message.message/GetChatLogs", in, out, opts...) + err := c.cc.Invoke(ctx, "/message_cms.messageCMS/GetChatLogs", in, out, opts...) if err != nil { return nil, err } return out, nil } -func (c *messageClient) WithdrawMessage(ctx context.Context, in *WithdrawMessageReq, opts ...grpc.CallOption) (*WithdrawMessageResp, error) { +func (c *messageCMSClient) WithdrawMessage(ctx context.Context, in *WithdrawMessageReq, opts ...grpc.CallOption) (*WithdrawMessageResp, error) { out := new(WithdrawMessageResp) - err := c.cc.Invoke(ctx, "/message.message/WithdrawMessage", in, out, opts...) + err := c.cc.Invoke(ctx, "/message_cms.messageCMS/WithdrawMessage", in, out, opts...) if err != nil { return nil, err } return out, nil } -// MessageServer is the server API for Message service. -type MessageServer interface { +// MessageCMSServer is the server API for MessageCMS service. +type MessageCMSServer interface { BoradcastMessage(context.Context, *BoradcastMessageReq) (*BoradcastMessageResp, error) MassSendMessage(context.Context, *MassSendMessageReq) (*MassSendMessageResp, error) GetChatLogs(context.Context, *GetChatLogsReq) (*GetChatLogsResp, error) WithdrawMessage(context.Context, *WithdrawMessageReq) (*WithdrawMessageResp, error) } -// UnimplementedMessageServer can be embedded to have forward compatible implementations. -type UnimplementedMessageServer struct { +// UnimplementedMessageCMSServer can be embedded to have forward compatible implementations. +type UnimplementedMessageCMSServer struct { } -func (*UnimplementedMessageServer) BoradcastMessage(context.Context, *BoradcastMessageReq) (*BoradcastMessageResp, error) { +func (*UnimplementedMessageCMSServer) BoradcastMessage(context.Context, *BoradcastMessageReq) (*BoradcastMessageResp, error) { return nil, status.Errorf(codes.Unimplemented, "method BoradcastMessage not implemented") } -func (*UnimplementedMessageServer) MassSendMessage(context.Context, *MassSendMessageReq) (*MassSendMessageResp, error) { +func (*UnimplementedMessageCMSServer) MassSendMessage(context.Context, *MassSendMessageReq) (*MassSendMessageResp, error) { return nil, status.Errorf(codes.Unimplemented, "method MassSendMessage not implemented") } -func (*UnimplementedMessageServer) GetChatLogs(context.Context, *GetChatLogsReq) (*GetChatLogsResp, error) { +func (*UnimplementedMessageCMSServer) GetChatLogs(context.Context, *GetChatLogsReq) (*GetChatLogsResp, error) { return nil, status.Errorf(codes.Unimplemented, "method GetChatLogs not implemented") } -func (*UnimplementedMessageServer) WithdrawMessage(context.Context, *WithdrawMessageReq) (*WithdrawMessageResp, error) { +func (*UnimplementedMessageCMSServer) WithdrawMessage(context.Context, *WithdrawMessageReq) (*WithdrawMessageResp, error) { return nil, status.Errorf(codes.Unimplemented, "method WithdrawMessage not implemented") } -func RegisterMessageServer(s *grpc.Server, srv MessageServer) { - s.RegisterService(&_Message_serviceDesc, srv) +func RegisterMessageCMSServer(s *grpc.Server, srv MessageCMSServer) { + s.RegisterService(&_MessageCMS_serviceDesc, srv) } -func _Message_BoradcastMessage_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { +func _MessageCMS_BoradcastMessage_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(BoradcastMessageReq) if err := dec(in); err != nil { return nil, err } if interceptor == nil { - return srv.(MessageServer).BoradcastMessage(ctx, in) + return srv.(MessageCMSServer).BoradcastMessage(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/message.message/BoradcastMessage", + FullMethod: "/message_cms.messageCMS/BoradcastMessage", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(MessageServer).BoradcastMessage(ctx, req.(*BoradcastMessageReq)) + return srv.(MessageCMSServer).BoradcastMessage(ctx, req.(*BoradcastMessageReq)) } return interceptor(ctx, in, info, handler) } -func _Message_MassSendMessage_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { +func _MessageCMS_MassSendMessage_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(MassSendMessageReq) if err := dec(in); err != nil { return nil, err } if interceptor == nil { - return srv.(MessageServer).MassSendMessage(ctx, in) + return srv.(MessageCMSServer).MassSendMessage(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/message.message/MassSendMessage", + FullMethod: "/message_cms.messageCMS/MassSendMessage", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(MessageServer).MassSendMessage(ctx, req.(*MassSendMessageReq)) + return srv.(MessageCMSServer).MassSendMessage(ctx, req.(*MassSendMessageReq)) } return interceptor(ctx, in, info, handler) } -func _Message_GetChatLogs_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { +func _MessageCMS_GetChatLogs_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(GetChatLogsReq) if err := dec(in); err != nil { return nil, err } if interceptor == nil { - return srv.(MessageServer).GetChatLogs(ctx, in) + return srv.(MessageCMSServer).GetChatLogs(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/message.message/GetChatLogs", + FullMethod: "/message_cms.messageCMS/GetChatLogs", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(MessageServer).GetChatLogs(ctx, req.(*GetChatLogsReq)) + return srv.(MessageCMSServer).GetChatLogs(ctx, req.(*GetChatLogsReq)) } return interceptor(ctx, in, info, handler) } -func _Message_WithdrawMessage_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { +func _MessageCMS_WithdrawMessage_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(WithdrawMessageReq) if err := dec(in); err != nil { return nil, err } if interceptor == nil { - return srv.(MessageServer).WithdrawMessage(ctx, in) + return srv.(MessageCMSServer).WithdrawMessage(ctx, in) } info := &grpc.UnaryServerInfo{ Server: srv, - FullMethod: "/message.message/WithdrawMessage", + FullMethod: "/message_cms.messageCMS/WithdrawMessage", } handler := func(ctx context.Context, req interface{}) (interface{}, error) { - return srv.(MessageServer).WithdrawMessage(ctx, req.(*WithdrawMessageReq)) + return srv.(MessageCMSServer).WithdrawMessage(ctx, req.(*WithdrawMessageReq)) } return interceptor(ctx, in, info, handler) } -var _Message_serviceDesc = grpc.ServiceDesc{ - ServiceName: "message.message", - HandlerType: (*MessageServer)(nil), +var _MessageCMS_serviceDesc = grpc.ServiceDesc{ + ServiceName: "message_cms.messageCMS", + HandlerType: (*MessageCMSServer)(nil), Methods: []grpc.MethodDesc{ { MethodName: "BoradcastMessage", - Handler: _Message_BoradcastMessage_Handler, + Handler: _MessageCMS_BoradcastMessage_Handler, }, { MethodName: "MassSendMessage", - Handler: _Message_MassSendMessage_Handler, + Handler: _MessageCMS_MassSendMessage_Handler, }, { MethodName: "GetChatLogs", - Handler: _Message_GetChatLogs_Handler, + Handler: _MessageCMS_GetChatLogs_Handler, }, { MethodName: "WithdrawMessage", - Handler: _Message_WithdrawMessage_Handler, + Handler: _MessageCMS_WithdrawMessage_Handler, }, }, Streams: []grpc.StreamDesc{}, - Metadata: "message_cms/message.proto", + Metadata: "message_cms/message_cms.proto", } diff --git a/pkg/proto/message_cms/message.proto b/pkg/proto/message_cms/message_cms.proto similarity index 94% rename from pkg/proto/message_cms/message.proto rename to pkg/proto/message_cms/message_cms.proto index d8eb8a120..80b5e3102 100644 --- a/pkg/proto/message_cms/message.proto +++ b/pkg/proto/message_cms/message_cms.proto @@ -1,7 +1,7 @@ syntax = "proto3"; import "Open_IM/pkg/proto/sdk_ws/ws.proto"; -option go_package = "./message_cms;messageCMS"; -package message; +option go_package = "./message_cms;message_cms"; +package message_cms; message BoradcastMessageReq { string Message = 1; @@ -62,7 +62,7 @@ message WithdrawMessageResp { } -service message { +service messageCMS { rpc BoradcastMessage(BoradcastMessageReq) returns(BoradcastMessageResp); rpc MassSendMessage(MassSendMessageReq) returns(MassSendMessageResp); rpc GetChatLogs(GetChatLogsReq) returns(GetChatLogsResp); diff --git a/pkg/proto/proto_dir.cfg b/pkg/proto/proto_dir.cfg index 0d67a8dfe..af6ff1905 100644 --- a/pkg/proto/proto_dir.cfg +++ b/pkg/proto/proto_dir.cfg @@ -1,6 +1,6 @@ all_proto=( - message_cms/message.proto + message_cms/message_cms.proto #statistics/statistics.proto # auth/auth.proto # friend/friend.proto From 93706c94afd45e3355b6dc51eef6997442c30fe8 Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Wed, 9 Feb 2022 17:40:59 +0800 Subject: [PATCH 601/814] mysql coding --- pkg/common/db/mysql.go | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/pkg/common/db/mysql.go b/pkg/common/db/mysql.go index efcfc0f63..ba38f57e9 100644 --- a/pkg/common/db/mysql.go +++ b/pkg/common/db/mysql.go @@ -35,7 +35,7 @@ func initMysqlDB() { } //Check the database and table during initialization - sql := fmt.Sprintf("CREATE DATABASE IF NOT EXISTS %s ;", config.Config.Mysql.DBDatabaseName+"test1") + sql := fmt.Sprintf("CREATE DATABASE IF NOT EXISTS %s default charset utf8 COLLATE utf8_general_ci;", config.Config.Mysql.DBDatabaseName+"test1") err = db.Exec(sql).Error if err != nil { log.NewError("0", "Exec failed ", err.Error(), sql) @@ -60,6 +60,7 @@ func initMysqlDB() { &User{}, &Black{}, &ChatLog{}) db.Set("gorm:table_options", "CHARSET=utf8") + db.Set("gorm:table_options", "collation=utf8_unicode_ci") if !db.HasTable(&Friend{}) { log.NewInfo("CreateTable Friend") From 8cd7b8571104d11eb2ae5e9be8520ab214164cb6 Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Wed, 9 Feb 2022 18:35:46 +0800 Subject: [PATCH 602/814] Refactor code --- internal/rpc/msg/group_notification.go | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/internal/rpc/msg/group_notification.go b/internal/rpc/msg/group_notification.go index a2b4e8cef..9fa9783ea 100644 --- a/internal/rpc/msg/group_notification.go +++ b/internal/rpc/msg/group_notification.go @@ -30,12 +30,21 @@ func setOpUserInfo(opUserID, groupID string, groupMemberInfo *open_im_sdk.GroupM groupMemberInfo.GroupID = groupID } else { u, err := imdb.GetGroupMemberInfoByGroupIDAndUserID(groupID, opUserID) - if err != nil { - return utils.Wrap(err, "GetGroupMemberInfoByGroupIDAndUserID failed") + if err == nil { + if err = utils2.GroupMemberDBCopyOpenIM(groupMemberInfo, u); err != nil { + return utils.Wrap(err, "") + } } - if err = utils2.GroupMemberDBCopyOpenIM(groupMemberInfo, u); err != nil { + + user, err := imdb.GetUserByUserID(opUserID) + if err != nil { return utils.Wrap(err, "") } + groupMemberInfo.GroupID = groupID + groupMemberInfo.UserID = user.UserID + groupMemberInfo.Nickname = user.Nickname + groupMemberInfo.AppMangerLevel = user.AppMangerLevel + groupMemberInfo.FaceURL = user.FaceURL } return nil } From b80c8013c0155c3f7a342375cc1af69c15b43d14 Mon Sep 17 00:00:00 2001 From: wangchuxiao Date: Wed, 9 Feb 2022 19:19:22 +0800 Subject: [PATCH 603/814] add user req group reqlist api --- cmd/open_im_api/main.go | 1 + 1 file changed, 1 insertion(+) diff --git a/cmd/open_im_api/main.go b/cmd/open_im_api/main.go index 817042f5c..7172ac393 100644 --- a/cmd/open_im_api/main.go +++ b/cmd/open_im_api/main.go @@ -58,6 +58,7 @@ func main() { groupRouterGroup.POST("/group_application_response", group.ApplicationGroupResponse) //1 groupRouterGroup.POST("/transfer_group", group.TransferGroupOwner) //1 groupRouterGroup.POST("/get_recv_group_applicationList", group.GetRecvGroupApplicationList) //1 + groupRouterGroup.POST("/get_user_req_group_applicationList", group.GetUserReqGroupApplicationList) groupRouterGroup.POST("/get_groups_info", group.GetGroupsInfo) //1 groupRouterGroup.POST("/kick_group", group.KickGroupMember) //1 groupRouterGroup.POST("/get_group_member_list", group.GetGroupMemberList) //no use From 192ac0e01344cd72678a044ed757ece8aee8446c Mon Sep 17 00:00:00 2001 From: wangchuxiao Date: Wed, 9 Feb 2022 19:20:46 +0800 Subject: [PATCH 604/814] api --- go.mod | 1 + internal/api/group/group.go | 45 +- internal/rpc/group/group.go | 38 + pkg/base_info/group_api_struct.go | 10 + .../im_mysql_model/group_member_model.go | 1 + .../im_mysql_model/group_request_model.go | 12 + pkg/proto/group/group.pb.go | 3704 +++++++++++------ pkg/proto/group/group.proto | 12 + 8 files changed, 2589 insertions(+), 1234 deletions(-) diff --git a/go.mod b/go.mod index 767401200..50f637f57 100644 --- a/go.mod +++ b/go.mod @@ -47,6 +47,7 @@ require ( golang.org/x/image v0.0.0-20210220032944-ac19c3e999fb golang.org/x/net v0.0.0-20210917221730-978cfadd31cf google.golang.org/grpc v1.40.0 + google.golang.org/protobuf v1.27.1 // indirect gopkg.in/alexcesaro/quotedprintable.v3 v3.0.0-20150716171945-2caba252f4dc // indirect gopkg.in/gomail.v2 v2.0.0-20160411212932-81ebce5c23df gopkg.in/mgo.v2 v2.0.0-20190816093944-a6b53ec6cb22 diff --git a/internal/api/group/group.go b/internal/api/group/group.go index c7b725a9e..8a5edf918 100644 --- a/internal/api/group/group.go +++ b/internal/api/group/group.go @@ -290,13 +290,13 @@ func GetRecvGroupApplicationList(c *gin.Context) { } req := &rpc.GetGroupApplicationListReq{} utils.CopyStructFields(req, params) - var ok bool - ok, req.OpUserID = token_verify.GetUserIDFromToken(c.Request.Header.Get("token")) - if !ok { - log.NewError(req.OperationID, "GetUserIDFromToken false ", c.Request.Header.Get("token")) - c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": "GetUserIDFromToken failed"}) - return - } + //var ok bool + //ok, req.OpUserID = token_verify.GetUserIDFromToken(c.Request.Header.Get("token")) + //if !ok { + // log.NewError(req.OperationID, "GetUserIDFromToken false ", c.Request.Header.Get("token")) + // c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": "GetUserIDFromToken failed"}) + // return + //} log.NewInfo(req.OperationID, "GetGroupApplicationList args ", req.String()) etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImGroupName) @@ -314,6 +314,37 @@ func GetRecvGroupApplicationList(c *gin.Context) { c.JSON(http.StatusOK, resp) } +func GetUserReqGroupApplicationList(c *gin.Context) { + var params api.GetUserReqGroupApplicationListReq + if err := c.BindJSON(¶ms); err != nil { + log.NewError("0", utils.GetSelfFuncName(), err.Error()) + c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": err.Error()}) + return + } + req := &rpc.GetUserReqApplicationListReq{} + utils.CopyStructFields(req, params) + //ok, req.OpUserID = token_verify.GetUserIDFromToken(c.Request.Header.Get("token")) + //if !ok { + // log.NewError(req.OperationID, "GetUserIDFromToken false ", c.Request.Header.Get("token")) + // c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": "GetUserIDFromToken failed"}) + // return + //} + log.NewInfo(req.OperationID, "GetGroupsInfo args ", req.String()) + etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImGroupName) + client := rpc.NewGroupClient(etcdConn) + RpcResp, err := client.GetUserReqApplicationList(context.Background(), req) + if err != nil { + log.NewError(req.OperationID, "GetGroupsInfo failed ", err.Error(), req.String()) + c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": "call rpc server failed"}) + return + } + log.NewInfo(req.OperationID, RpcResp) + resp := api.GetGroupApplicationListResp{CommResp: api.CommResp{ErrCode: RpcResp.CommonResp.ErrCode, ErrMsg: RpcResp.CommonResp.ErrMsg}, GroupRequestList: RpcResp.GroupRequestList} + log.NewInfo(req.OperationID, "GetGroupApplicationList api return ", resp) + resp.Data = jsonData.JsonDataList(resp.GroupRequestList) + c.JSON(http.StatusOK, resp) +} + func GetGroupsInfo(c *gin.Context) { params := api.GetGroupInfoReq{} if err := c.BindJSON(¶ms); err != nil { diff --git a/internal/rpc/group/group.go b/internal/rpc/group/group.go index f2ee7eb22..3d40b41be 100644 --- a/internal/rpc/group/group.go +++ b/internal/rpc/group/group.go @@ -638,3 +638,41 @@ func (s *groupServer) TransferGroupOwner(_ context.Context, req *pbGroup.Transfe return &pbGroup.TransferGroupOwnerResp{CommonResp: &pbGroup.CommonResp{ErrCode: 0, ErrMsg: ""}}, nil } + +func (s *groupServer) GetUserReqApplicationList(_ context.Context, req *pbGroup.GetUserReqApplicationListReq) (*pbGroup.GetUserReqApplicationListResp, error) { + log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "req: ", req.String()) + resp := &pbGroup.GetUserReqApplicationListResp{} + groupRequests, err := imdb.GetUserReqGroupByUserID(req.UserID) + if err != nil { + log.NewError(req.OperationID, utils.GetSelfFuncName(), "GetUserReqGroupByUserID failed ", err.Error()) + resp.CommonResp = &pbGroup.CommonResp{ + ErrCode: constant.ErrDB.ErrCode, + ErrMsg: constant.ErrDB.ErrMsg, + } + return resp, nil + } + for _, groupReq := range groupRequests { + node := open_im_sdk.GroupRequest{UserInfo: &open_im_sdk.PublicUserInfo{}, GroupInfo: &open_im_sdk.GroupInfo{}} + group, err := imdb.GetGroupInfoByGroupID(groupReq.GroupID) + if err != nil { + log.Error(req.OperationID, "GetGroupInfoByGroupID failed ", err.Error(), groupReq.GroupID) + continue + } + user, err := imdb.GetUserByUserID(groupReq.UserID) + if err != nil { + log.Error(req.OperationID, "GetUserByUserID failed ", err.Error(), groupReq.UserID) + continue + } + cp.GroupRequestDBCopyOpenIM(&node, &groupReq) + cp.UserDBCopyOpenIMPublicUser(node.UserInfo, user) + cp.GroupDBCopyOpenIM(node.GroupInfo, group) + resp.GroupRequestList = append(resp.GroupRequestList, &node) + } + log.NewInfo(req.OperationID, utils.GetSelfFuncName(), groupRequests) + log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "output:", resp) + resp.CommonResp = &pbGroup.CommonResp{ + ErrCode: 0, + ErrMsg: "", + } + return resp, nil +} \ No newline at end of file diff --git a/pkg/base_info/group_api_struct.go b/pkg/base_info/group_api_struct.go index dec18fc0b..b6db4dcc2 100644 --- a/pkg/base_info/group_api_struct.go +++ b/pkg/base_info/group_api_struct.go @@ -103,6 +103,16 @@ type GetGroupApplicationListResp struct { Data []map[string]interface{} `json:"data"` } +type GetUserReqGroupApplicationListReq struct { + OperationID string `json:"operationID" binding:"required"` + UserID string `json:"userID" binding:"required"` +} + +type GetUserRespGroupApplicationResp struct { + CommResp + GroupRequestList []*open_im_sdk.GroupRequest `json:"-"` +} + type GetGroupInfoReq struct { GroupIDList []string `json:"groupIDList" binding:"required"` OperationID string `json:"operationID" binding:"required"` diff --git a/pkg/common/db/mysql_model/im_mysql_model/group_member_model.go b/pkg/common/db/mysql_model/im_mysql_model/group_member_model.go index f4684f9a4..e2d6a1db2 100644 --- a/pkg/common/db/mysql_model/im_mysql_model/group_member_model.go +++ b/pkg/common/db/mysql_model/im_mysql_model/group_member_model.go @@ -225,6 +225,7 @@ func IsGroupOwnerAdmin(groupID, UserID string) bool { return false } + // //func SelectGroupList(groupID string) ([]string, error) { // var groupUserID string diff --git a/pkg/common/db/mysql_model/im_mysql_model/group_request_model.go b/pkg/common/db/mysql_model/im_mysql_model/group_request_model.go index 9b7c2dd2c..745ad0034 100644 --- a/pkg/common/db/mysql_model/im_mysql_model/group_request_model.go +++ b/pkg/common/db/mysql_model/im_mysql_model/group_request_model.go @@ -117,6 +117,18 @@ func GetGroupApplicationList(userID string) ([]db.GroupRequest, error) { return groupRequestList, nil } +func GetUserReqGroupByUserID(userID string) ([]db.GroupRequest, error) { + var groupRequestList []db.GroupRequest + dbConn, err := db.DB.MysqlDB.DefaultGormDB() + if err != nil { + return nil, err + } + dbConn.LogMode(true) + err = dbConn.Table("group_requests").Where("user_id=?", userID).Find(&groupRequestList).Error + return groupRequestList, err +} + + // //func GroupApplicationResponse(pb *group.GroupApplicationResponseReq) (*group.CommonResp, error) { // diff --git a/pkg/proto/group/group.pb.go b/pkg/proto/group/group.pb.go index 15741944a..352023544 100644 --- a/pkg/proto/group/group.pb.go +++ b/pkg/proto/group/group.pb.go @@ -1,1771 +1,3023 @@ // Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.27.1 +// protoc v3.15.5 // source: group/group.proto -package group // import "./group" - -import proto "github.com/golang/protobuf/proto" -import fmt "fmt" -import math "math" -import sdk_ws "Open_IM/pkg/proto/sdk_ws" +package group import ( - context "golang.org/x/net/context" + sdk_ws "Open_IM/pkg/proto/sdk_ws" + context "context" grpc "google.golang.org/grpc" + codes "google.golang.org/grpc/codes" + status "google.golang.org/grpc/status" + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + reflect "reflect" + sync "sync" ) -// 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 +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) 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:"-"` -} + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields -func (m *CommonResp) Reset() { *m = CommonResp{} } -func (m *CommonResp) String() string { return proto.CompactTextString(m) } -func (*CommonResp) ProtoMessage() {} -func (*CommonResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_a130b5186d308ee6, []int{0} -} -func (m *CommonResp) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_CommonResp.Unmarshal(m, b) + ErrCode int32 `protobuf:"varint,1,opt,name=ErrCode,proto3" json:"ErrCode,omitempty"` + ErrMsg string `protobuf:"bytes,2,opt,name=ErrMsg,proto3" json:"ErrMsg,omitempty"` } -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 (x *CommonResp) Reset() { + *x = CommonResp{} + if protoimpl.UnsafeEnabled { + mi := &file_group_group_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *CommonResp) XXX_Size() int { - return xxx_messageInfo_CommonResp.Size(m) + +func (x *CommonResp) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *CommonResp) XXX_DiscardUnknown() { - xxx_messageInfo_CommonResp.DiscardUnknown(m) + +func (*CommonResp) ProtoMessage() {} + +func (x *CommonResp) ProtoReflect() protoreflect.Message { + mi := &file_group_group_proto_msgTypes[0] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) } -var xxx_messageInfo_CommonResp proto.InternalMessageInfo +// Deprecated: Use CommonResp.ProtoReflect.Descriptor instead. +func (*CommonResp) Descriptor() ([]byte, []int) { + return file_group_group_proto_rawDescGZIP(), []int{0} +} -func (m *CommonResp) GetErrCode() int32 { - if m != nil { - return m.ErrCode +func (x *CommonResp) GetErrCode() int32 { + if x != nil { + return x.ErrCode } return 0 } -func (m *CommonResp) GetErrMsg() string { - if m != nil { - return m.ErrMsg +func (x *CommonResp) GetErrMsg() string { + if x != nil { + return x.ErrMsg } return "" } type GroupAddMemberInfo struct { - UserID string `protobuf:"bytes,1,opt,name=UserID" json:"UserID,omitempty"` - RoleLevel int32 `protobuf:"varint,2,opt,name=RoleLevel" json:"RoleLevel,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields -func (m *GroupAddMemberInfo) Reset() { *m = GroupAddMemberInfo{} } -func (m *GroupAddMemberInfo) String() string { return proto.CompactTextString(m) } -func (*GroupAddMemberInfo) ProtoMessage() {} -func (*GroupAddMemberInfo) Descriptor() ([]byte, []int) { - return fileDescriptor_group_a130b5186d308ee6, []int{1} + UserID string `protobuf:"bytes,1,opt,name=UserID,proto3" json:"UserID,omitempty"` + RoleLevel int32 `protobuf:"varint,2,opt,name=RoleLevel,proto3" json:"RoleLevel,omitempty"` } -func (m *GroupAddMemberInfo) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_GroupAddMemberInfo.Unmarshal(m, b) -} -func (m *GroupAddMemberInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_GroupAddMemberInfo.Marshal(b, m, deterministic) -} -func (dst *GroupAddMemberInfo) XXX_Merge(src proto.Message) { - xxx_messageInfo_GroupAddMemberInfo.Merge(dst, src) + +func (x *GroupAddMemberInfo) Reset() { + *x = GroupAddMemberInfo{} + if protoimpl.UnsafeEnabled { + mi := &file_group_group_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *GroupAddMemberInfo) XXX_Size() int { - return xxx_messageInfo_GroupAddMemberInfo.Size(m) + +func (x *GroupAddMemberInfo) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *GroupAddMemberInfo) XXX_DiscardUnknown() { - xxx_messageInfo_GroupAddMemberInfo.DiscardUnknown(m) + +func (*GroupAddMemberInfo) ProtoMessage() {} + +func (x *GroupAddMemberInfo) ProtoReflect() protoreflect.Message { + mi := &file_group_group_proto_msgTypes[1] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) } -var xxx_messageInfo_GroupAddMemberInfo proto.InternalMessageInfo +// Deprecated: Use GroupAddMemberInfo.ProtoReflect.Descriptor instead. +func (*GroupAddMemberInfo) Descriptor() ([]byte, []int) { + return file_group_group_proto_rawDescGZIP(), []int{1} +} -func (m *GroupAddMemberInfo) GetUserID() string { - if m != nil { - return m.UserID +func (x *GroupAddMemberInfo) GetUserID() string { + if x != nil { + return x.UserID } return "" } -func (m *GroupAddMemberInfo) GetRoleLevel() int32 { - if m != nil { - return m.RoleLevel +func (x *GroupAddMemberInfo) GetRoleLevel() int32 { + if x != nil { + return x.RoleLevel } return 0 } type CreateGroupReq struct { - InitMemberList []*GroupAddMemberInfo `protobuf:"bytes,1,rep,name=InitMemberList" json:"InitMemberList,omitempty"` - GroupInfo *sdk_ws.GroupInfo `protobuf:"bytes,2,opt,name=GroupInfo" json:"GroupInfo,omitempty"` - OperationID string `protobuf:"bytes,3,opt,name=OperationID" json:"OperationID,omitempty"` - OpUserID string `protobuf:"bytes,4,opt,name=OpUserID" json:"OpUserID,omitempty"` - OwnerUserID string `protobuf:"bytes,5,opt,name=OwnerUserID" json:"OwnerUserID,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *CreateGroupReq) Reset() { *m = CreateGroupReq{} } -func (m *CreateGroupReq) String() string { return proto.CompactTextString(m) } -func (*CreateGroupReq) ProtoMessage() {} -func (*CreateGroupReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_a130b5186d308ee6, []int{2} -} -func (m *CreateGroupReq) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_CreateGroupReq.Unmarshal(m, b) -} -func (m *CreateGroupReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_CreateGroupReq.Marshal(b, m, deterministic) + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + InitMemberList []*GroupAddMemberInfo `protobuf:"bytes,1,rep,name=InitMemberList,proto3" json:"InitMemberList,omitempty"` + GroupInfo *sdk_ws.GroupInfo `protobuf:"bytes,2,opt,name=GroupInfo,proto3" json:"GroupInfo,omitempty"` + OperationID string `protobuf:"bytes,3,opt,name=OperationID,proto3" json:"OperationID,omitempty"` + OpUserID string `protobuf:"bytes,4,opt,name=OpUserID,proto3" json:"OpUserID,omitempty"` //app manager or group owner + OwnerUserID string `protobuf:"bytes,5,opt,name=OwnerUserID,proto3" json:"OwnerUserID,omitempty"` //owner } -func (dst *CreateGroupReq) XXX_Merge(src proto.Message) { - xxx_messageInfo_CreateGroupReq.Merge(dst, src) + +func (x *CreateGroupReq) Reset() { + *x = CreateGroupReq{} + if protoimpl.UnsafeEnabled { + mi := &file_group_group_proto_msgTypes[2] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *CreateGroupReq) XXX_Size() int { - return xxx_messageInfo_CreateGroupReq.Size(m) + +func (x *CreateGroupReq) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *CreateGroupReq) XXX_DiscardUnknown() { - xxx_messageInfo_CreateGroupReq.DiscardUnknown(m) + +func (*CreateGroupReq) ProtoMessage() {} + +func (x *CreateGroupReq) ProtoReflect() protoreflect.Message { + mi := &file_group_group_proto_msgTypes[2] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) } -var xxx_messageInfo_CreateGroupReq proto.InternalMessageInfo +// Deprecated: Use CreateGroupReq.ProtoReflect.Descriptor instead. +func (*CreateGroupReq) Descriptor() ([]byte, []int) { + return file_group_group_proto_rawDescGZIP(), []int{2} +} -func (m *CreateGroupReq) GetInitMemberList() []*GroupAddMemberInfo { - if m != nil { - return m.InitMemberList +func (x *CreateGroupReq) GetInitMemberList() []*GroupAddMemberInfo { + if x != nil { + return x.InitMemberList } return nil } -func (m *CreateGroupReq) GetGroupInfo() *sdk_ws.GroupInfo { - if m != nil { - return m.GroupInfo +func (x *CreateGroupReq) GetGroupInfo() *sdk_ws.GroupInfo { + if x != nil { + return x.GroupInfo } return nil } -func (m *CreateGroupReq) GetOperationID() string { - if m != nil { - return m.OperationID +func (x *CreateGroupReq) GetOperationID() string { + if x != nil { + return x.OperationID } return "" } -func (m *CreateGroupReq) GetOpUserID() string { - if m != nil { - return m.OpUserID +func (x *CreateGroupReq) GetOpUserID() string { + if x != nil { + return x.OpUserID } return "" } -func (m *CreateGroupReq) GetOwnerUserID() string { - if m != nil { - return m.OwnerUserID +func (x *CreateGroupReq) GetOwnerUserID() string { + if x != nil { + return x.OwnerUserID } return "" } type CreateGroupResp struct { - ErrCode int32 `protobuf:"varint,1,opt,name=ErrCode" json:"ErrCode,omitempty"` - ErrMsg string `protobuf:"bytes,2,opt,name=ErrMsg" json:"ErrMsg,omitempty"` - GroupInfo *sdk_ws.GroupInfo `protobuf:"bytes,3,opt,name=GroupInfo" json:"GroupInfo,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields -func (m *CreateGroupResp) Reset() { *m = CreateGroupResp{} } -func (m *CreateGroupResp) String() string { return proto.CompactTextString(m) } -func (*CreateGroupResp) ProtoMessage() {} -func (*CreateGroupResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_a130b5186d308ee6, []int{3} -} -func (m *CreateGroupResp) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_CreateGroupResp.Unmarshal(m, b) -} -func (m *CreateGroupResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_CreateGroupResp.Marshal(b, m, deterministic) + ErrCode int32 `protobuf:"varint,1,opt,name=ErrCode,proto3" json:"ErrCode,omitempty"` + ErrMsg string `protobuf:"bytes,2,opt,name=ErrMsg,proto3" json:"ErrMsg,omitempty"` + GroupInfo *sdk_ws.GroupInfo `protobuf:"bytes,3,opt,name=GroupInfo,proto3" json:"GroupInfo,omitempty"` } -func (dst *CreateGroupResp) XXX_Merge(src proto.Message) { - xxx_messageInfo_CreateGroupResp.Merge(dst, src) + +func (x *CreateGroupResp) Reset() { + *x = CreateGroupResp{} + if protoimpl.UnsafeEnabled { + mi := &file_group_group_proto_msgTypes[3] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *CreateGroupResp) XXX_Size() int { - return xxx_messageInfo_CreateGroupResp.Size(m) + +func (x *CreateGroupResp) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *CreateGroupResp) XXX_DiscardUnknown() { - xxx_messageInfo_CreateGroupResp.DiscardUnknown(m) + +func (*CreateGroupResp) ProtoMessage() {} + +func (x *CreateGroupResp) ProtoReflect() protoreflect.Message { + mi := &file_group_group_proto_msgTypes[3] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) } -var xxx_messageInfo_CreateGroupResp proto.InternalMessageInfo +// Deprecated: Use CreateGroupResp.ProtoReflect.Descriptor instead. +func (*CreateGroupResp) Descriptor() ([]byte, []int) { + return file_group_group_proto_rawDescGZIP(), []int{3} +} -func (m *CreateGroupResp) GetErrCode() int32 { - if m != nil { - return m.ErrCode +func (x *CreateGroupResp) GetErrCode() int32 { + if x != nil { + return x.ErrCode } return 0 } -func (m *CreateGroupResp) GetErrMsg() string { - if m != nil { - return m.ErrMsg +func (x *CreateGroupResp) GetErrMsg() string { + if x != nil { + return x.ErrMsg } return "" } -func (m *CreateGroupResp) GetGroupInfo() *sdk_ws.GroupInfo { - if m != nil { - return m.GroupInfo +func (x *CreateGroupResp) GetGroupInfo() *sdk_ws.GroupInfo { + if x != nil { + return x.GroupInfo } return nil } type GetGroupsInfoReq struct { - GroupIDList []string `protobuf:"bytes,1,rep,name=GroupIDList" json:"GroupIDList,omitempty"` - OperationID string `protobuf:"bytes,2,opt,name=OperationID" json:"OperationID,omitempty"` - OpUserID string `protobuf:"bytes,3,opt,name=OpUserID" json:"OpUserID,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields -func (m *GetGroupsInfoReq) Reset() { *m = GetGroupsInfoReq{} } -func (m *GetGroupsInfoReq) String() string { return proto.CompactTextString(m) } -func (*GetGroupsInfoReq) ProtoMessage() {} -func (*GetGroupsInfoReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_a130b5186d308ee6, []int{4} -} -func (m *GetGroupsInfoReq) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_GetGroupsInfoReq.Unmarshal(m, b) + GroupIDList []string `protobuf:"bytes,1,rep,name=GroupIDList,proto3" json:"GroupIDList,omitempty"` + OperationID string `protobuf:"bytes,2,opt,name=OperationID,proto3" json:"OperationID,omitempty"` + OpUserID string `protobuf:"bytes,3,opt,name=OpUserID,proto3" json:"OpUserID,omitempty"` //No verification permission } -func (m *GetGroupsInfoReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_GetGroupsInfoReq.Marshal(b, m, deterministic) -} -func (dst *GetGroupsInfoReq) XXX_Merge(src proto.Message) { - xxx_messageInfo_GetGroupsInfoReq.Merge(dst, src) + +func (x *GetGroupsInfoReq) Reset() { + *x = GetGroupsInfoReq{} + if protoimpl.UnsafeEnabled { + mi := &file_group_group_proto_msgTypes[4] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *GetGroupsInfoReq) XXX_Size() int { - return xxx_messageInfo_GetGroupsInfoReq.Size(m) + +func (x *GetGroupsInfoReq) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *GetGroupsInfoReq) XXX_DiscardUnknown() { - xxx_messageInfo_GetGroupsInfoReq.DiscardUnknown(m) + +func (*GetGroupsInfoReq) ProtoMessage() {} + +func (x *GetGroupsInfoReq) ProtoReflect() protoreflect.Message { + mi := &file_group_group_proto_msgTypes[4] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) } -var xxx_messageInfo_GetGroupsInfoReq proto.InternalMessageInfo +// Deprecated: Use GetGroupsInfoReq.ProtoReflect.Descriptor instead. +func (*GetGroupsInfoReq) Descriptor() ([]byte, []int) { + return file_group_group_proto_rawDescGZIP(), []int{4} +} -func (m *GetGroupsInfoReq) GetGroupIDList() []string { - if m != nil { - return m.GroupIDList +func (x *GetGroupsInfoReq) GetGroupIDList() []string { + if x != nil { + return x.GroupIDList } return nil } -func (m *GetGroupsInfoReq) GetOperationID() string { - if m != nil { - return m.OperationID +func (x *GetGroupsInfoReq) GetOperationID() string { + if x != nil { + return x.OperationID } return "" } -func (m *GetGroupsInfoReq) GetOpUserID() string { - if m != nil { - return m.OpUserID +func (x *GetGroupsInfoReq) GetOpUserID() string { + if x != nil { + return x.OpUserID } return "" } type GetGroupsInfoResp struct { - ErrCode int32 `protobuf:"varint,1,opt,name=ErrCode" json:"ErrCode,omitempty"` - ErrMsg string `protobuf:"bytes,2,opt,name=ErrMsg" json:"ErrMsg,omitempty"` - GroupInfoList []*sdk_ws.GroupInfo `protobuf:"bytes,3,rep,name=GroupInfoList" json:"GroupInfoList,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields -func (m *GetGroupsInfoResp) Reset() { *m = GetGroupsInfoResp{} } -func (m *GetGroupsInfoResp) String() string { return proto.CompactTextString(m) } -func (*GetGroupsInfoResp) ProtoMessage() {} -func (*GetGroupsInfoResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_a130b5186d308ee6, []int{5} + ErrCode int32 `protobuf:"varint,1,opt,name=ErrCode,proto3" json:"ErrCode,omitempty"` + ErrMsg string `protobuf:"bytes,2,opt,name=ErrMsg,proto3" json:"ErrMsg,omitempty"` + GroupInfoList []*sdk_ws.GroupInfo `protobuf:"bytes,3,rep,name=GroupInfoList,proto3" json:"GroupInfoList,omitempty"` } -func (m *GetGroupsInfoResp) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_GetGroupsInfoResp.Unmarshal(m, b) -} -func (m *GetGroupsInfoResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_GetGroupsInfoResp.Marshal(b, m, deterministic) -} -func (dst *GetGroupsInfoResp) XXX_Merge(src proto.Message) { - xxx_messageInfo_GetGroupsInfoResp.Merge(dst, src) + +func (x *GetGroupsInfoResp) Reset() { + *x = GetGroupsInfoResp{} + if protoimpl.UnsafeEnabled { + mi := &file_group_group_proto_msgTypes[5] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *GetGroupsInfoResp) XXX_Size() int { - return xxx_messageInfo_GetGroupsInfoResp.Size(m) + +func (x *GetGroupsInfoResp) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *GetGroupsInfoResp) XXX_DiscardUnknown() { - xxx_messageInfo_GetGroupsInfoResp.DiscardUnknown(m) + +func (*GetGroupsInfoResp) ProtoMessage() {} + +func (x *GetGroupsInfoResp) ProtoReflect() protoreflect.Message { + mi := &file_group_group_proto_msgTypes[5] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) } -var xxx_messageInfo_GetGroupsInfoResp proto.InternalMessageInfo +// Deprecated: Use GetGroupsInfoResp.ProtoReflect.Descriptor instead. +func (*GetGroupsInfoResp) Descriptor() ([]byte, []int) { + return file_group_group_proto_rawDescGZIP(), []int{5} +} -func (m *GetGroupsInfoResp) GetErrCode() int32 { - if m != nil { - return m.ErrCode +func (x *GetGroupsInfoResp) GetErrCode() int32 { + if x != nil { + return x.ErrCode } return 0 } -func (m *GetGroupsInfoResp) GetErrMsg() string { - if m != nil { - return m.ErrMsg +func (x *GetGroupsInfoResp) GetErrMsg() string { + if x != nil { + return x.ErrMsg } return "" } -func (m *GetGroupsInfoResp) GetGroupInfoList() []*sdk_ws.GroupInfo { - if m != nil { - return m.GroupInfoList +func (x *GetGroupsInfoResp) GetGroupInfoList() []*sdk_ws.GroupInfo { + if x != nil { + return x.GroupInfoList } return nil } type SetGroupInfoReq struct { - GroupInfo *sdk_ws.GroupInfo `protobuf:"bytes,1,opt,name=GroupInfo" json:"GroupInfo,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:"-"` -} + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields -func (m *SetGroupInfoReq) Reset() { *m = SetGroupInfoReq{} } -func (m *SetGroupInfoReq) String() string { return proto.CompactTextString(m) } -func (*SetGroupInfoReq) ProtoMessage() {} -func (*SetGroupInfoReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_a130b5186d308ee6, []int{6} -} -func (m *SetGroupInfoReq) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_SetGroupInfoReq.Unmarshal(m, b) -} -func (m *SetGroupInfoReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_SetGroupInfoReq.Marshal(b, m, deterministic) + GroupInfo *sdk_ws.GroupInfo `protobuf:"bytes,1,opt,name=GroupInfo,proto3" json:"GroupInfo,omitempty"` + OpUserID string `protobuf:"bytes,2,opt,name=OpUserID,proto3" json:"OpUserID,omitempty"` //app manager or group owner + OperationID string `protobuf:"bytes,3,opt,name=OperationID,proto3" json:"OperationID,omitempty"` } -func (dst *SetGroupInfoReq) XXX_Merge(src proto.Message) { - xxx_messageInfo_SetGroupInfoReq.Merge(dst, src) + +func (x *SetGroupInfoReq) Reset() { + *x = SetGroupInfoReq{} + if protoimpl.UnsafeEnabled { + mi := &file_group_group_proto_msgTypes[6] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *SetGroupInfoReq) XXX_Size() int { - return xxx_messageInfo_SetGroupInfoReq.Size(m) + +func (x *SetGroupInfoReq) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *SetGroupInfoReq) XXX_DiscardUnknown() { - xxx_messageInfo_SetGroupInfoReq.DiscardUnknown(m) + +func (*SetGroupInfoReq) ProtoMessage() {} + +func (x *SetGroupInfoReq) ProtoReflect() protoreflect.Message { + mi := &file_group_group_proto_msgTypes[6] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) } -var xxx_messageInfo_SetGroupInfoReq proto.InternalMessageInfo +// Deprecated: Use SetGroupInfoReq.ProtoReflect.Descriptor instead. +func (*SetGroupInfoReq) Descriptor() ([]byte, []int) { + return file_group_group_proto_rawDescGZIP(), []int{6} +} -func (m *SetGroupInfoReq) GetGroupInfo() *sdk_ws.GroupInfo { - if m != nil { - return m.GroupInfo +func (x *SetGroupInfoReq) GetGroupInfo() *sdk_ws.GroupInfo { + if x != nil { + return x.GroupInfo } return nil } -func (m *SetGroupInfoReq) GetOpUserID() string { - if m != nil { - return m.OpUserID +func (x *SetGroupInfoReq) GetOpUserID() string { + if x != nil { + return x.OpUserID } return "" } -func (m *SetGroupInfoReq) GetOperationID() string { - if m != nil { - return m.OperationID +func (x *SetGroupInfoReq) GetOperationID() string { + if x != nil { + return x.OperationID } return "" } type SetGroupInfoResp struct { - CommonResp *CommonResp `protobuf:"bytes,1,opt,name=CommonResp" json:"CommonResp,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields -func (m *SetGroupInfoResp) Reset() { *m = SetGroupInfoResp{} } -func (m *SetGroupInfoResp) String() string { return proto.CompactTextString(m) } -func (*SetGroupInfoResp) ProtoMessage() {} -func (*SetGroupInfoResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_a130b5186d308ee6, []int{7} -} -func (m *SetGroupInfoResp) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_SetGroupInfoResp.Unmarshal(m, b) + CommonResp *CommonResp `protobuf:"bytes,1,opt,name=CommonResp,proto3" json:"CommonResp,omitempty"` } -func (m *SetGroupInfoResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_SetGroupInfoResp.Marshal(b, m, deterministic) -} -func (dst *SetGroupInfoResp) XXX_Merge(src proto.Message) { - xxx_messageInfo_SetGroupInfoResp.Merge(dst, src) + +func (x *SetGroupInfoResp) Reset() { + *x = SetGroupInfoResp{} + if protoimpl.UnsafeEnabled { + mi := &file_group_group_proto_msgTypes[7] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *SetGroupInfoResp) XXX_Size() int { - return xxx_messageInfo_SetGroupInfoResp.Size(m) + +func (x *SetGroupInfoResp) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *SetGroupInfoResp) XXX_DiscardUnknown() { - xxx_messageInfo_SetGroupInfoResp.DiscardUnknown(m) + +func (*SetGroupInfoResp) ProtoMessage() {} + +func (x *SetGroupInfoResp) ProtoReflect() protoreflect.Message { + mi := &file_group_group_proto_msgTypes[7] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) } -var xxx_messageInfo_SetGroupInfoResp proto.InternalMessageInfo +// Deprecated: Use SetGroupInfoResp.ProtoReflect.Descriptor instead. +func (*SetGroupInfoResp) Descriptor() ([]byte, []int) { + return file_group_group_proto_rawDescGZIP(), []int{7} +} -func (m *SetGroupInfoResp) GetCommonResp() *CommonResp { - if m != nil { - return m.CommonResp +func (x *SetGroupInfoResp) GetCommonResp() *CommonResp { + if x != nil { + return x.CommonResp } return nil } type GetGroupApplicationListReq struct { - OpUserID string `protobuf:"bytes,1,opt,name=OpUserID" json:"OpUserID,omitempty"` - OperationID string `protobuf:"bytes,2,opt,name=OperationID" json:"OperationID,omitempty"` - FromUserID string `protobuf:"bytes,3,opt,name=FromUserID" json:"FromUserID,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields -func (m *GetGroupApplicationListReq) Reset() { *m = GetGroupApplicationListReq{} } -func (m *GetGroupApplicationListReq) String() string { return proto.CompactTextString(m) } -func (*GetGroupApplicationListReq) ProtoMessage() {} -func (*GetGroupApplicationListReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_a130b5186d308ee6, []int{8} + OpUserID string `protobuf:"bytes,1,opt,name=OpUserID,proto3" json:"OpUserID,omitempty"` //app manager or group owner(manager) + OperationID string `protobuf:"bytes,2,opt,name=OperationID,proto3" json:"OperationID,omitempty"` + FromUserID string `protobuf:"bytes,3,opt,name=FromUserID,proto3" json:"FromUserID,omitempty"` //owner or manager } -func (m *GetGroupApplicationListReq) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_GetGroupApplicationListReq.Unmarshal(m, b) -} -func (m *GetGroupApplicationListReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_GetGroupApplicationListReq.Marshal(b, m, deterministic) -} -func (dst *GetGroupApplicationListReq) XXX_Merge(src proto.Message) { - xxx_messageInfo_GetGroupApplicationListReq.Merge(dst, src) + +func (x *GetGroupApplicationListReq) Reset() { + *x = GetGroupApplicationListReq{} + if protoimpl.UnsafeEnabled { + mi := &file_group_group_proto_msgTypes[8] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *GetGroupApplicationListReq) XXX_Size() int { - return xxx_messageInfo_GetGroupApplicationListReq.Size(m) + +func (x *GetGroupApplicationListReq) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *GetGroupApplicationListReq) XXX_DiscardUnknown() { - xxx_messageInfo_GetGroupApplicationListReq.DiscardUnknown(m) + +func (*GetGroupApplicationListReq) ProtoMessage() {} + +func (x *GetGroupApplicationListReq) ProtoReflect() protoreflect.Message { + mi := &file_group_group_proto_msgTypes[8] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) } -var xxx_messageInfo_GetGroupApplicationListReq proto.InternalMessageInfo +// Deprecated: Use GetGroupApplicationListReq.ProtoReflect.Descriptor instead. +func (*GetGroupApplicationListReq) Descriptor() ([]byte, []int) { + return file_group_group_proto_rawDescGZIP(), []int{8} +} -func (m *GetGroupApplicationListReq) GetOpUserID() string { - if m != nil { - return m.OpUserID +func (x *GetGroupApplicationListReq) GetOpUserID() string { + if x != nil { + return x.OpUserID } return "" } -func (m *GetGroupApplicationListReq) GetOperationID() string { - if m != nil { - return m.OperationID +func (x *GetGroupApplicationListReq) GetOperationID() string { + if x != nil { + return x.OperationID } return "" } -func (m *GetGroupApplicationListReq) GetFromUserID() string { - if m != nil { - return m.FromUserID +func (x *GetGroupApplicationListReq) GetFromUserID() string { + if x != nil { + return x.FromUserID } return "" } type GetGroupApplicationListResp struct { - ErrCode int32 `protobuf:"varint,1,opt,name=ErrCode" json:"ErrCode,omitempty"` - ErrMsg string `protobuf:"bytes,2,opt,name=ErrMsg" json:"ErrMsg,omitempty"` - GroupRequestList []*sdk_ws.GroupRequest `protobuf:"bytes,3,rep,name=GroupRequestList" json:"GroupRequestList,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ErrCode int32 `protobuf:"varint,1,opt,name=ErrCode,proto3" json:"ErrCode,omitempty"` + ErrMsg string `protobuf:"bytes,2,opt,name=ErrMsg,proto3" json:"ErrMsg,omitempty"` + GroupRequestList []*sdk_ws.GroupRequest `protobuf:"bytes,3,rep,name=GroupRequestList,proto3" json:"GroupRequestList,omitempty"` +} + +func (x *GetGroupApplicationListResp) Reset() { + *x = GetGroupApplicationListResp{} + if protoimpl.UnsafeEnabled { + mi := &file_group_group_proto_msgTypes[9] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *GetGroupApplicationListResp) Reset() { *m = GetGroupApplicationListResp{} } -func (m *GetGroupApplicationListResp) String() string { return proto.CompactTextString(m) } -func (*GetGroupApplicationListResp) ProtoMessage() {} +func (x *GetGroupApplicationListResp) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetGroupApplicationListResp) ProtoMessage() {} + +func (x *GetGroupApplicationListResp) ProtoReflect() protoreflect.Message { + mi := &file_group_group_proto_msgTypes[9] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetGroupApplicationListResp.ProtoReflect.Descriptor instead. func (*GetGroupApplicationListResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_a130b5186d308ee6, []int{9} + return file_group_group_proto_rawDescGZIP(), []int{9} } -func (m *GetGroupApplicationListResp) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_GetGroupApplicationListResp.Unmarshal(m, b) + +func (x *GetGroupApplicationListResp) GetErrCode() int32 { + if x != nil { + return x.ErrCode + } + return 0 } -func (m *GetGroupApplicationListResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_GetGroupApplicationListResp.Marshal(b, m, deterministic) + +func (x *GetGroupApplicationListResp) GetErrMsg() string { + if x != nil { + return x.ErrMsg + } + return "" } -func (dst *GetGroupApplicationListResp) XXX_Merge(src proto.Message) { - xxx_messageInfo_GetGroupApplicationListResp.Merge(dst, src) + +func (x *GetGroupApplicationListResp) GetGroupRequestList() []*sdk_ws.GroupRequest { + if x != nil { + return x.GroupRequestList + } + return nil } -func (m *GetGroupApplicationListResp) XXX_Size() int { - return xxx_messageInfo_GetGroupApplicationListResp.Size(m) + +type GetUserReqApplicationListReq struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + UserID string `protobuf:"bytes,1,opt,name=UserID,proto3" json:"UserID,omitempty"` + OpUserID string `protobuf:"bytes,2,opt,name=OpUserID,proto3" json:"OpUserID,omitempty"` + OperationID string `protobuf:"bytes,3,opt,name=OperationID,proto3" json:"OperationID,omitempty"` } -func (m *GetGroupApplicationListResp) XXX_DiscardUnknown() { - xxx_messageInfo_GetGroupApplicationListResp.DiscardUnknown(m) + +func (x *GetUserReqApplicationListReq) Reset() { + *x = GetUserReqApplicationListReq{} + if protoimpl.UnsafeEnabled { + mi := &file_group_group_proto_msgTypes[10] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -var xxx_messageInfo_GetGroupApplicationListResp proto.InternalMessageInfo +func (x *GetUserReqApplicationListReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*GetUserReqApplicationListReq) ProtoMessage() {} -func (m *GetGroupApplicationListResp) GetErrCode() int32 { - if m != nil { - return m.ErrCode +func (x *GetUserReqApplicationListReq) ProtoReflect() protoreflect.Message { + mi := &file_group_group_proto_msgTypes[10] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms } - return 0 + return mi.MessageOf(x) } -func (m *GetGroupApplicationListResp) GetErrMsg() string { - if m != nil { - return m.ErrMsg +// Deprecated: Use GetUserReqApplicationListReq.ProtoReflect.Descriptor instead. +func (*GetUserReqApplicationListReq) Descriptor() ([]byte, []int) { + return file_group_group_proto_rawDescGZIP(), []int{10} +} + +func (x *GetUserReqApplicationListReq) GetUserID() string { + if x != nil { + return x.UserID } return "" } -func (m *GetGroupApplicationListResp) GetGroupRequestList() []*sdk_ws.GroupRequest { - if m != nil { - return m.GroupRequestList +func (x *GetUserReqApplicationListReq) GetOpUserID() string { + if x != nil { + return x.OpUserID } - return nil + return "" } -type TransferGroupOwnerReq struct { - GroupID string `protobuf:"bytes,1,opt,name=GroupID" json:"GroupID,omitempty"` - OldOwnerUserID string `protobuf:"bytes,2,opt,name=OldOwnerUserID" json:"OldOwnerUserID,omitempty"` - NewOwnerUserID string `protobuf:"bytes,3,opt,name=NewOwnerUserID" json:"NewOwnerUserID,omitempty"` - OperationID string `protobuf:"bytes,4,opt,name=OperationID" json:"OperationID,omitempty"` - OpUserID string `protobuf:"bytes,5,opt,name=OpUserID" json:"OpUserID,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *TransferGroupOwnerReq) Reset() { *m = TransferGroupOwnerReq{} } -func (m *TransferGroupOwnerReq) String() string { return proto.CompactTextString(m) } -func (*TransferGroupOwnerReq) ProtoMessage() {} -func (*TransferGroupOwnerReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_a130b5186d308ee6, []int{10} +func (x *GetUserReqApplicationListReq) GetOperationID() string { + if x != nil { + return x.OperationID + } + return "" } -func (m *TransferGroupOwnerReq) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_TransferGroupOwnerReq.Unmarshal(m, b) + +type GetUserReqApplicationListResp struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + CommonResp *CommonResp `protobuf:"bytes,1,opt,name=CommonResp,proto3" json:"CommonResp,omitempty"` + GroupRequestList []*sdk_ws.GroupRequest `protobuf:"bytes,2,rep,name=GroupRequestList,proto3" json:"GroupRequestList,omitempty"` } -func (m *TransferGroupOwnerReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_TransferGroupOwnerReq.Marshal(b, m, deterministic) + +func (x *GetUserReqApplicationListResp) Reset() { + *x = GetUserReqApplicationListResp{} + if protoimpl.UnsafeEnabled { + mi := &file_group_group_proto_msgTypes[11] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (dst *TransferGroupOwnerReq) XXX_Merge(src proto.Message) { - xxx_messageInfo_TransferGroupOwnerReq.Merge(dst, src) + +func (x *GetUserReqApplicationListResp) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *TransferGroupOwnerReq) XXX_Size() int { - return xxx_messageInfo_TransferGroupOwnerReq.Size(m) + +func (*GetUserReqApplicationListResp) ProtoMessage() {} + +func (x *GetUserReqApplicationListResp) ProtoReflect() protoreflect.Message { + mi := &file_group_group_proto_msgTypes[11] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use GetUserReqApplicationListResp.ProtoReflect.Descriptor instead. +func (*GetUserReqApplicationListResp) Descriptor() ([]byte, []int) { + return file_group_group_proto_rawDescGZIP(), []int{11} +} + +func (x *GetUserReqApplicationListResp) GetCommonResp() *CommonResp { + if x != nil { + return x.CommonResp + } + return nil } -func (m *TransferGroupOwnerReq) XXX_DiscardUnknown() { - xxx_messageInfo_TransferGroupOwnerReq.DiscardUnknown(m) + +func (x *GetUserReqApplicationListResp) GetGroupRequestList() []*sdk_ws.GroupRequest { + if x != nil { + return x.GroupRequestList + } + return nil +} + +type TransferGroupOwnerReq struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + GroupID string `protobuf:"bytes,1,opt,name=GroupID,proto3" json:"GroupID,omitempty"` + OldOwnerUserID string `protobuf:"bytes,2,opt,name=OldOwnerUserID,proto3" json:"OldOwnerUserID,omitempty"` + NewOwnerUserID string `protobuf:"bytes,3,opt,name=NewOwnerUserID,proto3" json:"NewOwnerUserID,omitempty"` + OperationID string `protobuf:"bytes,4,opt,name=OperationID,proto3" json:"OperationID,omitempty"` + OpUserID string `protobuf:"bytes,5,opt,name=OpUserID,proto3" json:"OpUserID,omitempty"` //app manager or group owner +} + +func (x *TransferGroupOwnerReq) Reset() { + *x = TransferGroupOwnerReq{} + if protoimpl.UnsafeEnabled { + mi := &file_group_group_proto_msgTypes[12] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *TransferGroupOwnerReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*TransferGroupOwnerReq) ProtoMessage() {} + +func (x *TransferGroupOwnerReq) ProtoReflect() protoreflect.Message { + mi := &file_group_group_proto_msgTypes[12] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) } -var xxx_messageInfo_TransferGroupOwnerReq proto.InternalMessageInfo +// Deprecated: Use TransferGroupOwnerReq.ProtoReflect.Descriptor instead. +func (*TransferGroupOwnerReq) Descriptor() ([]byte, []int) { + return file_group_group_proto_rawDescGZIP(), []int{12} +} -func (m *TransferGroupOwnerReq) GetGroupID() string { - if m != nil { - return m.GroupID +func (x *TransferGroupOwnerReq) GetGroupID() string { + if x != nil { + return x.GroupID } return "" } -func (m *TransferGroupOwnerReq) GetOldOwnerUserID() string { - if m != nil { - return m.OldOwnerUserID +func (x *TransferGroupOwnerReq) GetOldOwnerUserID() string { + if x != nil { + return x.OldOwnerUserID } return "" } -func (m *TransferGroupOwnerReq) GetNewOwnerUserID() string { - if m != nil { - return m.NewOwnerUserID +func (x *TransferGroupOwnerReq) GetNewOwnerUserID() string { + if x != nil { + return x.NewOwnerUserID } return "" } -func (m *TransferGroupOwnerReq) GetOperationID() string { - if m != nil { - return m.OperationID +func (x *TransferGroupOwnerReq) GetOperationID() string { + if x != nil { + return x.OperationID } return "" } -func (m *TransferGroupOwnerReq) GetOpUserID() string { - if m != nil { - return m.OpUserID +func (x *TransferGroupOwnerReq) GetOpUserID() string { + if x != nil { + return x.OpUserID } return "" } type TransferGroupOwnerResp struct { - CommonResp *CommonResp `protobuf:"bytes,1,opt,name=CommonResp" json:"CommonResp,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields -func (m *TransferGroupOwnerResp) Reset() { *m = TransferGroupOwnerResp{} } -func (m *TransferGroupOwnerResp) String() string { return proto.CompactTextString(m) } -func (*TransferGroupOwnerResp) ProtoMessage() {} -func (*TransferGroupOwnerResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_a130b5186d308ee6, []int{11} -} -func (m *TransferGroupOwnerResp) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_TransferGroupOwnerResp.Unmarshal(m, b) -} -func (m *TransferGroupOwnerResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_TransferGroupOwnerResp.Marshal(b, m, deterministic) + CommonResp *CommonResp `protobuf:"bytes,1,opt,name=CommonResp,proto3" json:"CommonResp,omitempty"` } -func (dst *TransferGroupOwnerResp) XXX_Merge(src proto.Message) { - xxx_messageInfo_TransferGroupOwnerResp.Merge(dst, src) + +func (x *TransferGroupOwnerResp) Reset() { + *x = TransferGroupOwnerResp{} + if protoimpl.UnsafeEnabled { + mi := &file_group_group_proto_msgTypes[13] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *TransferGroupOwnerResp) XXX_Size() int { - return xxx_messageInfo_TransferGroupOwnerResp.Size(m) + +func (x *TransferGroupOwnerResp) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *TransferGroupOwnerResp) XXX_DiscardUnknown() { - xxx_messageInfo_TransferGroupOwnerResp.DiscardUnknown(m) + +func (*TransferGroupOwnerResp) ProtoMessage() {} + +func (x *TransferGroupOwnerResp) ProtoReflect() protoreflect.Message { + mi := &file_group_group_proto_msgTypes[13] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) } -var xxx_messageInfo_TransferGroupOwnerResp proto.InternalMessageInfo +// Deprecated: Use TransferGroupOwnerResp.ProtoReflect.Descriptor instead. +func (*TransferGroupOwnerResp) Descriptor() ([]byte, []int) { + return file_group_group_proto_rawDescGZIP(), []int{13} +} -func (m *TransferGroupOwnerResp) GetCommonResp() *CommonResp { - if m != nil { - return m.CommonResp +func (x *TransferGroupOwnerResp) GetCommonResp() *CommonResp { + if x != nil { + return x.CommonResp } return nil } type JoinGroupReq struct { - GroupID string `protobuf:"bytes,1,opt,name=GroupID" json:"GroupID,omitempty"` - ReqMessage string `protobuf:"bytes,2,opt,name=ReqMessage" json:"ReqMessage,omitempty"` - OpUserID string `protobuf:"bytes,3,opt,name=OpUserID" json:"OpUserID,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 *JoinGroupReq) Reset() { *m = JoinGroupReq{} } -func (m *JoinGroupReq) String() string { return proto.CompactTextString(m) } -func (*JoinGroupReq) ProtoMessage() {} -func (*JoinGroupReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_a130b5186d308ee6, []int{12} -} -func (m *JoinGroupReq) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_JoinGroupReq.Unmarshal(m, b) -} -func (m *JoinGroupReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_JoinGroupReq.Marshal(b, m, deterministic) + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + GroupID string `protobuf:"bytes,1,opt,name=GroupID,proto3" json:"GroupID,omitempty"` + ReqMessage string `protobuf:"bytes,2,opt,name=ReqMessage,proto3" json:"ReqMessage,omitempty"` + OpUserID string `protobuf:"bytes,3,opt,name=OpUserID,proto3" json:"OpUserID,omitempty"` + OperationID string `protobuf:"bytes,4,opt,name=OperationID,proto3" json:"OperationID,omitempty"` } -func (dst *JoinGroupReq) XXX_Merge(src proto.Message) { - xxx_messageInfo_JoinGroupReq.Merge(dst, src) + +func (x *JoinGroupReq) Reset() { + *x = JoinGroupReq{} + if protoimpl.UnsafeEnabled { + mi := &file_group_group_proto_msgTypes[14] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *JoinGroupReq) XXX_Size() int { - return xxx_messageInfo_JoinGroupReq.Size(m) + +func (x *JoinGroupReq) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *JoinGroupReq) XXX_DiscardUnknown() { - xxx_messageInfo_JoinGroupReq.DiscardUnknown(m) + +func (*JoinGroupReq) ProtoMessage() {} + +func (x *JoinGroupReq) ProtoReflect() protoreflect.Message { + mi := &file_group_group_proto_msgTypes[14] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) } -var xxx_messageInfo_JoinGroupReq proto.InternalMessageInfo +// Deprecated: Use JoinGroupReq.ProtoReflect.Descriptor instead. +func (*JoinGroupReq) Descriptor() ([]byte, []int) { + return file_group_group_proto_rawDescGZIP(), []int{14} +} -func (m *JoinGroupReq) GetGroupID() string { - if m != nil { - return m.GroupID +func (x *JoinGroupReq) GetGroupID() string { + if x != nil { + return x.GroupID } return "" } -func (m *JoinGroupReq) GetReqMessage() string { - if m != nil { - return m.ReqMessage +func (x *JoinGroupReq) GetReqMessage() string { + if x != nil { + return x.ReqMessage } return "" } -func (m *JoinGroupReq) GetOpUserID() string { - if m != nil { - return m.OpUserID +func (x *JoinGroupReq) GetOpUserID() string { + if x != nil { + return x.OpUserID } return "" } -func (m *JoinGroupReq) GetOperationID() string { - if m != nil { - return m.OperationID +func (x *JoinGroupReq) GetOperationID() string { + if x != nil { + return x.OperationID } return "" } type JoinGroupResp struct { - CommonResp *CommonResp `protobuf:"bytes,1,opt,name=CommonResp" json:"CommonResp,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields -func (m *JoinGroupResp) Reset() { *m = JoinGroupResp{} } -func (m *JoinGroupResp) String() string { return proto.CompactTextString(m) } -func (*JoinGroupResp) ProtoMessage() {} -func (*JoinGroupResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_a130b5186d308ee6, []int{13} -} -func (m *JoinGroupResp) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_JoinGroupResp.Unmarshal(m, b) + CommonResp *CommonResp `protobuf:"bytes,1,opt,name=CommonResp,proto3" json:"CommonResp,omitempty"` } -func (m *JoinGroupResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_JoinGroupResp.Marshal(b, m, deterministic) -} -func (dst *JoinGroupResp) XXX_Merge(src proto.Message) { - xxx_messageInfo_JoinGroupResp.Merge(dst, src) + +func (x *JoinGroupResp) Reset() { + *x = JoinGroupResp{} + if protoimpl.UnsafeEnabled { + mi := &file_group_group_proto_msgTypes[15] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *JoinGroupResp) XXX_Size() int { - return xxx_messageInfo_JoinGroupResp.Size(m) + +func (x *JoinGroupResp) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *JoinGroupResp) XXX_DiscardUnknown() { - xxx_messageInfo_JoinGroupResp.DiscardUnknown(m) + +func (*JoinGroupResp) ProtoMessage() {} + +func (x *JoinGroupResp) ProtoReflect() protoreflect.Message { + mi := &file_group_group_proto_msgTypes[15] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) } -var xxx_messageInfo_JoinGroupResp proto.InternalMessageInfo +// Deprecated: Use JoinGroupResp.ProtoReflect.Descriptor instead. +func (*JoinGroupResp) Descriptor() ([]byte, []int) { + return file_group_group_proto_rawDescGZIP(), []int{15} +} -func (m *JoinGroupResp) GetCommonResp() *CommonResp { - if m != nil { - return m.CommonResp +func (x *JoinGroupResp) GetCommonResp() *CommonResp { + if x != nil { + return x.CommonResp } return nil } type GroupApplicationResponseReq struct { - OperationID string `protobuf:"bytes,1,opt,name=OperationID" json:"OperationID,omitempty"` - OpUserID string `protobuf:"bytes,2,opt,name=OpUserID" json:"OpUserID,omitempty"` - GroupID string `protobuf:"bytes,3,opt,name=GroupID" json:"GroupID,omitempty"` - FromUserID string `protobuf:"bytes,4,opt,name=FromUserID" json:"FromUserID,omitempty"` - HandledMsg string `protobuf:"bytes,5,opt,name=HandledMsg" json:"HandledMsg,omitempty"` - HandleResult int32 `protobuf:"varint,6,opt,name=HandleResult" json:"HandleResult,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *GroupApplicationResponseReq) Reset() { *m = GroupApplicationResponseReq{} } -func (m *GroupApplicationResponseReq) String() string { return proto.CompactTextString(m) } -func (*GroupApplicationResponseReq) ProtoMessage() {} -func (*GroupApplicationResponseReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_a130b5186d308ee6, []int{14} -} -func (m *GroupApplicationResponseReq) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_GroupApplicationResponseReq.Unmarshal(m, b) -} -func (m *GroupApplicationResponseReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_GroupApplicationResponseReq.Marshal(b, m, deterministic) + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + OperationID string `protobuf:"bytes,1,opt,name=OperationID,proto3" json:"OperationID,omitempty"` + OpUserID string `protobuf:"bytes,2,opt,name=OpUserID,proto3" json:"OpUserID,omitempty"` + GroupID string `protobuf:"bytes,3,opt,name=GroupID,proto3" json:"GroupID,omitempty"` + FromUserID string `protobuf:"bytes,4,opt,name=FromUserID,proto3" json:"FromUserID,omitempty"` // + HandledMsg string `protobuf:"bytes,5,opt,name=HandledMsg,proto3" json:"HandledMsg,omitempty"` + HandleResult int32 `protobuf:"varint,6,opt,name=HandleResult,proto3" json:"HandleResult,omitempty"` } -func (dst *GroupApplicationResponseReq) XXX_Merge(src proto.Message) { - xxx_messageInfo_GroupApplicationResponseReq.Merge(dst, src) + +func (x *GroupApplicationResponseReq) Reset() { + *x = GroupApplicationResponseReq{} + if protoimpl.UnsafeEnabled { + mi := &file_group_group_proto_msgTypes[16] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *GroupApplicationResponseReq) XXX_Size() int { - return xxx_messageInfo_GroupApplicationResponseReq.Size(m) + +func (x *GroupApplicationResponseReq) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *GroupApplicationResponseReq) XXX_DiscardUnknown() { - xxx_messageInfo_GroupApplicationResponseReq.DiscardUnknown(m) + +func (*GroupApplicationResponseReq) ProtoMessage() {} + +func (x *GroupApplicationResponseReq) ProtoReflect() protoreflect.Message { + mi := &file_group_group_proto_msgTypes[16] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) } -var xxx_messageInfo_GroupApplicationResponseReq proto.InternalMessageInfo +// Deprecated: Use GroupApplicationResponseReq.ProtoReflect.Descriptor instead. +func (*GroupApplicationResponseReq) Descriptor() ([]byte, []int) { + return file_group_group_proto_rawDescGZIP(), []int{16} +} -func (m *GroupApplicationResponseReq) GetOperationID() string { - if m != nil { - return m.OperationID +func (x *GroupApplicationResponseReq) GetOperationID() string { + if x != nil { + return x.OperationID } return "" } -func (m *GroupApplicationResponseReq) GetOpUserID() string { - if m != nil { - return m.OpUserID +func (x *GroupApplicationResponseReq) GetOpUserID() string { + if x != nil { + return x.OpUserID } return "" } -func (m *GroupApplicationResponseReq) GetGroupID() string { - if m != nil { - return m.GroupID +func (x *GroupApplicationResponseReq) GetGroupID() string { + if x != nil { + return x.GroupID } return "" } -func (m *GroupApplicationResponseReq) GetFromUserID() string { - if m != nil { - return m.FromUserID +func (x *GroupApplicationResponseReq) GetFromUserID() string { + if x != nil { + return x.FromUserID } return "" } -func (m *GroupApplicationResponseReq) GetHandledMsg() string { - if m != nil { - return m.HandledMsg +func (x *GroupApplicationResponseReq) GetHandledMsg() string { + if x != nil { + return x.HandledMsg } return "" } -func (m *GroupApplicationResponseReq) GetHandleResult() int32 { - if m != nil { - return m.HandleResult +func (x *GroupApplicationResponseReq) GetHandleResult() int32 { + if x != nil { + return x.HandleResult } return 0 } type GroupApplicationResponseResp struct { - CommonResp *CommonResp `protobuf:"bytes,1,opt,name=CommonResp" json:"CommonResp,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields -func (m *GroupApplicationResponseResp) Reset() { *m = GroupApplicationResponseResp{} } -func (m *GroupApplicationResponseResp) String() string { return proto.CompactTextString(m) } -func (*GroupApplicationResponseResp) ProtoMessage() {} -func (*GroupApplicationResponseResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_a130b5186d308ee6, []int{15} -} -func (m *GroupApplicationResponseResp) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_GroupApplicationResponseResp.Unmarshal(m, b) + CommonResp *CommonResp `protobuf:"bytes,1,opt,name=CommonResp,proto3" json:"CommonResp,omitempty"` } -func (m *GroupApplicationResponseResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_GroupApplicationResponseResp.Marshal(b, m, deterministic) -} -func (dst *GroupApplicationResponseResp) XXX_Merge(src proto.Message) { - xxx_messageInfo_GroupApplicationResponseResp.Merge(dst, src) + +func (x *GroupApplicationResponseResp) Reset() { + *x = GroupApplicationResponseResp{} + if protoimpl.UnsafeEnabled { + mi := &file_group_group_proto_msgTypes[17] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *GroupApplicationResponseResp) XXX_Size() int { - return xxx_messageInfo_GroupApplicationResponseResp.Size(m) + +func (x *GroupApplicationResponseResp) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *GroupApplicationResponseResp) XXX_DiscardUnknown() { - xxx_messageInfo_GroupApplicationResponseResp.DiscardUnknown(m) + +func (*GroupApplicationResponseResp) ProtoMessage() {} + +func (x *GroupApplicationResponseResp) ProtoReflect() protoreflect.Message { + mi := &file_group_group_proto_msgTypes[17] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) } -var xxx_messageInfo_GroupApplicationResponseResp proto.InternalMessageInfo +// Deprecated: Use GroupApplicationResponseResp.ProtoReflect.Descriptor instead. +func (*GroupApplicationResponseResp) Descriptor() ([]byte, []int) { + return file_group_group_proto_rawDescGZIP(), []int{17} +} -func (m *GroupApplicationResponseResp) GetCommonResp() *CommonResp { - if m != nil { - return m.CommonResp +func (x *GroupApplicationResponseResp) GetCommonResp() *CommonResp { + if x != nil { + return x.CommonResp } return nil } type QuitGroupReq struct { - GroupID string `protobuf:"bytes,1,opt,name=GroupID" json:"GroupID,omitempty"` - OperationID string `protobuf:"bytes,2,opt,name=OperationID" json:"OperationID,omitempty"` - OpUserID string `protobuf:"bytes,3,opt,name=OpUserID" json:"OpUserID,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields -func (m *QuitGroupReq) Reset() { *m = QuitGroupReq{} } -func (m *QuitGroupReq) String() string { return proto.CompactTextString(m) } -func (*QuitGroupReq) ProtoMessage() {} -func (*QuitGroupReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_a130b5186d308ee6, []int{16} + GroupID string `protobuf:"bytes,1,opt,name=GroupID,proto3" json:"GroupID,omitempty"` + OperationID string `protobuf:"bytes,2,opt,name=OperationID,proto3" json:"OperationID,omitempty"` + OpUserID string `protobuf:"bytes,3,opt,name=OpUserID,proto3" json:"OpUserID,omitempty"` } -func (m *QuitGroupReq) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_QuitGroupReq.Unmarshal(m, b) -} -func (m *QuitGroupReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_QuitGroupReq.Marshal(b, m, deterministic) -} -func (dst *QuitGroupReq) XXX_Merge(src proto.Message) { - xxx_messageInfo_QuitGroupReq.Merge(dst, src) + +func (x *QuitGroupReq) Reset() { + *x = QuitGroupReq{} + if protoimpl.UnsafeEnabled { + mi := &file_group_group_proto_msgTypes[18] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *QuitGroupReq) XXX_Size() int { - return xxx_messageInfo_QuitGroupReq.Size(m) + +func (x *QuitGroupReq) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *QuitGroupReq) XXX_DiscardUnknown() { - xxx_messageInfo_QuitGroupReq.DiscardUnknown(m) + +func (*QuitGroupReq) ProtoMessage() {} + +func (x *QuitGroupReq) ProtoReflect() protoreflect.Message { + mi := &file_group_group_proto_msgTypes[18] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) } -var xxx_messageInfo_QuitGroupReq proto.InternalMessageInfo +// Deprecated: Use QuitGroupReq.ProtoReflect.Descriptor instead. +func (*QuitGroupReq) Descriptor() ([]byte, []int) { + return file_group_group_proto_rawDescGZIP(), []int{18} +} -func (m *QuitGroupReq) GetGroupID() string { - if m != nil { - return m.GroupID +func (x *QuitGroupReq) GetGroupID() string { + if x != nil { + return x.GroupID } return "" } -func (m *QuitGroupReq) GetOperationID() string { - if m != nil { - return m.OperationID +func (x *QuitGroupReq) GetOperationID() string { + if x != nil { + return x.OperationID } return "" } -func (m *QuitGroupReq) GetOpUserID() string { - if m != nil { - return m.OpUserID +func (x *QuitGroupReq) GetOpUserID() string { + if x != nil { + return x.OpUserID } return "" } type QuitGroupResp struct { - CommonResp *CommonResp `protobuf:"bytes,1,opt,name=CommonResp" json:"CommonResp,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields -func (m *QuitGroupResp) Reset() { *m = QuitGroupResp{} } -func (m *QuitGroupResp) String() string { return proto.CompactTextString(m) } -func (*QuitGroupResp) ProtoMessage() {} -func (*QuitGroupResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_a130b5186d308ee6, []int{17} -} -func (m *QuitGroupResp) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_QuitGroupResp.Unmarshal(m, b) -} -func (m *QuitGroupResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_QuitGroupResp.Marshal(b, m, deterministic) + CommonResp *CommonResp `protobuf:"bytes,1,opt,name=CommonResp,proto3" json:"CommonResp,omitempty"` } -func (dst *QuitGroupResp) XXX_Merge(src proto.Message) { - xxx_messageInfo_QuitGroupResp.Merge(dst, src) + +func (x *QuitGroupResp) Reset() { + *x = QuitGroupResp{} + if protoimpl.UnsafeEnabled { + mi := &file_group_group_proto_msgTypes[19] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *QuitGroupResp) XXX_Size() int { - return xxx_messageInfo_QuitGroupResp.Size(m) + +func (x *QuitGroupResp) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *QuitGroupResp) XXX_DiscardUnknown() { - xxx_messageInfo_QuitGroupResp.DiscardUnknown(m) + +func (*QuitGroupResp) ProtoMessage() {} + +func (x *QuitGroupResp) ProtoReflect() protoreflect.Message { + mi := &file_group_group_proto_msgTypes[19] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) } -var xxx_messageInfo_QuitGroupResp proto.InternalMessageInfo +// Deprecated: Use QuitGroupResp.ProtoReflect.Descriptor instead. +func (*QuitGroupResp) Descriptor() ([]byte, []int) { + return file_group_group_proto_rawDescGZIP(), []int{19} +} -func (m *QuitGroupResp) GetCommonResp() *CommonResp { - if m != nil { - return m.CommonResp +func (x *QuitGroupResp) GetCommonResp() *CommonResp { + if x != nil { + return x.CommonResp } return nil } type GetGroupMemberListReq struct { - GroupID string `protobuf:"bytes,1,opt,name=GroupID" json:"GroupID,omitempty"` - OpUserID string `protobuf:"bytes,2,opt,name=OpUserID" json:"OpUserID,omitempty"` - OperationID string `protobuf:"bytes,3,opt,name=OperationID" json:"OperationID,omitempty"` - Filter int32 `protobuf:"varint,4,opt,name=Filter" json:"Filter,omitempty"` - NextSeq int32 `protobuf:"varint,5,opt,name=NextSeq" json:"NextSeq,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *GetGroupMemberListReq) Reset() { *m = GetGroupMemberListReq{} } -func (m *GetGroupMemberListReq) String() string { return proto.CompactTextString(m) } -func (*GetGroupMemberListReq) ProtoMessage() {} -func (*GetGroupMemberListReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_a130b5186d308ee6, []int{18} -} -func (m *GetGroupMemberListReq) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_GetGroupMemberListReq.Unmarshal(m, b) -} -func (m *GetGroupMemberListReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_GetGroupMemberListReq.Marshal(b, m, deterministic) + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + GroupID string `protobuf:"bytes,1,opt,name=GroupID,proto3" json:"GroupID,omitempty"` + OpUserID string `protobuf:"bytes,2,opt,name=OpUserID,proto3" json:"OpUserID,omitempty"` //No verification permission + OperationID string `protobuf:"bytes,3,opt,name=OperationID,proto3" json:"OperationID,omitempty"` + Filter int32 `protobuf:"varint,4,opt,name=Filter,proto3" json:"Filter,omitempty"` + NextSeq int32 `protobuf:"varint,5,opt,name=NextSeq,proto3" json:"NextSeq,omitempty"` } -func (dst *GetGroupMemberListReq) XXX_Merge(src proto.Message) { - xxx_messageInfo_GetGroupMemberListReq.Merge(dst, src) + +func (x *GetGroupMemberListReq) Reset() { + *x = GetGroupMemberListReq{} + if protoimpl.UnsafeEnabled { + mi := &file_group_group_proto_msgTypes[20] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *GetGroupMemberListReq) XXX_Size() int { - return xxx_messageInfo_GetGroupMemberListReq.Size(m) + +func (x *GetGroupMemberListReq) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *GetGroupMemberListReq) XXX_DiscardUnknown() { - xxx_messageInfo_GetGroupMemberListReq.DiscardUnknown(m) + +func (*GetGroupMemberListReq) ProtoMessage() {} + +func (x *GetGroupMemberListReq) ProtoReflect() protoreflect.Message { + mi := &file_group_group_proto_msgTypes[20] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) } -var xxx_messageInfo_GetGroupMemberListReq proto.InternalMessageInfo +// Deprecated: Use GetGroupMemberListReq.ProtoReflect.Descriptor instead. +func (*GetGroupMemberListReq) Descriptor() ([]byte, []int) { + return file_group_group_proto_rawDescGZIP(), []int{20} +} -func (m *GetGroupMemberListReq) GetGroupID() string { - if m != nil { - return m.GroupID +func (x *GetGroupMemberListReq) GetGroupID() string { + if x != nil { + return x.GroupID } return "" } -func (m *GetGroupMemberListReq) GetOpUserID() string { - if m != nil { - return m.OpUserID +func (x *GetGroupMemberListReq) GetOpUserID() string { + if x != nil { + return x.OpUserID } return "" } -func (m *GetGroupMemberListReq) GetOperationID() string { - if m != nil { - return m.OperationID +func (x *GetGroupMemberListReq) GetOperationID() string { + if x != nil { + return x.OperationID } return "" } -func (m *GetGroupMemberListReq) GetFilter() int32 { - if m != nil { - return m.Filter +func (x *GetGroupMemberListReq) GetFilter() int32 { + if x != nil { + return x.Filter } return 0 } -func (m *GetGroupMemberListReq) GetNextSeq() int32 { - if m != nil { - return m.NextSeq +func (x *GetGroupMemberListReq) GetNextSeq() int32 { + if x != nil { + return x.NextSeq } return 0 } type GetGroupMemberListResp struct { - ErrCode int32 `protobuf:"varint,1,opt,name=ErrCode" json:"ErrCode,omitempty"` - ErrMsg string `protobuf:"bytes,2,opt,name=ErrMsg" json:"ErrMsg,omitempty"` - MemberList []*sdk_ws.GroupMemberFullInfo `protobuf:"bytes,3,rep,name=memberList" json:"memberList,omitempty"` - NextSeq int32 `protobuf:"varint,4,opt,name=nextSeq" json:"nextSeq,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *GetGroupMemberListResp) Reset() { *m = GetGroupMemberListResp{} } -func (m *GetGroupMemberListResp) String() string { return proto.CompactTextString(m) } -func (*GetGroupMemberListResp) ProtoMessage() {} -func (*GetGroupMemberListResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_a130b5186d308ee6, []int{19} -} -func (m *GetGroupMemberListResp) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_GetGroupMemberListResp.Unmarshal(m, b) -} -func (m *GetGroupMemberListResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_GetGroupMemberListResp.Marshal(b, m, deterministic) + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + ErrCode int32 `protobuf:"varint,1,opt,name=ErrCode,proto3" json:"ErrCode,omitempty"` + ErrMsg string `protobuf:"bytes,2,opt,name=ErrMsg,proto3" json:"ErrMsg,omitempty"` + MemberList []*sdk_ws.GroupMemberFullInfo `protobuf:"bytes,3,rep,name=memberList,proto3" json:"memberList,omitempty"` + NextSeq int32 `protobuf:"varint,4,opt,name=nextSeq,proto3" json:"nextSeq,omitempty"` } -func (dst *GetGroupMemberListResp) XXX_Merge(src proto.Message) { - xxx_messageInfo_GetGroupMemberListResp.Merge(dst, src) + +func (x *GetGroupMemberListResp) Reset() { + *x = GetGroupMemberListResp{} + if protoimpl.UnsafeEnabled { + mi := &file_group_group_proto_msgTypes[21] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *GetGroupMemberListResp) XXX_Size() int { - return xxx_messageInfo_GetGroupMemberListResp.Size(m) + +func (x *GetGroupMemberListResp) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *GetGroupMemberListResp) XXX_DiscardUnknown() { - xxx_messageInfo_GetGroupMemberListResp.DiscardUnknown(m) + +func (*GetGroupMemberListResp) ProtoMessage() {} + +func (x *GetGroupMemberListResp) ProtoReflect() protoreflect.Message { + mi := &file_group_group_proto_msgTypes[21] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) } -var xxx_messageInfo_GetGroupMemberListResp proto.InternalMessageInfo +// Deprecated: Use GetGroupMemberListResp.ProtoReflect.Descriptor instead. +func (*GetGroupMemberListResp) Descriptor() ([]byte, []int) { + return file_group_group_proto_rawDescGZIP(), []int{21} +} -func (m *GetGroupMemberListResp) GetErrCode() int32 { - if m != nil { - return m.ErrCode +func (x *GetGroupMemberListResp) GetErrCode() int32 { + if x != nil { + return x.ErrCode } return 0 } -func (m *GetGroupMemberListResp) GetErrMsg() string { - if m != nil { - return m.ErrMsg +func (x *GetGroupMemberListResp) GetErrMsg() string { + if x != nil { + return x.ErrMsg } return "" } -func (m *GetGroupMemberListResp) GetMemberList() []*sdk_ws.GroupMemberFullInfo { - if m != nil { - return m.MemberList +func (x *GetGroupMemberListResp) GetMemberList() []*sdk_ws.GroupMemberFullInfo { + if x != nil { + return x.MemberList } return nil } -func (m *GetGroupMemberListResp) GetNextSeq() int32 { - if m != nil { - return m.NextSeq +func (x *GetGroupMemberListResp) GetNextSeq() int32 { + if x != nil { + return x.NextSeq } return 0 } type GetGroupMembersInfoReq struct { - GroupID string `protobuf:"bytes,1,opt,name=GroupID" json:"GroupID,omitempty"` - MemberList []string `protobuf:"bytes,2,rep,name=memberList" json:"memberList,omitempty"` - OpUserID string `protobuf:"bytes,3,opt,name=OpUserID" json:"OpUserID,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 *GetGroupMembersInfoReq) Reset() { *m = GetGroupMembersInfoReq{} } -func (m *GetGroupMembersInfoReq) String() string { return proto.CompactTextString(m) } -func (*GetGroupMembersInfoReq) ProtoMessage() {} -func (*GetGroupMembersInfoReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_a130b5186d308ee6, []int{20} -} -func (m *GetGroupMembersInfoReq) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_GetGroupMembersInfoReq.Unmarshal(m, b) -} -func (m *GetGroupMembersInfoReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_GetGroupMembersInfoReq.Marshal(b, m, deterministic) + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + GroupID string `protobuf:"bytes,1,opt,name=GroupID,proto3" json:"GroupID,omitempty"` + MemberList []string `protobuf:"bytes,2,rep,name=memberList,proto3" json:"memberList,omitempty"` + OpUserID string `protobuf:"bytes,3,opt,name=OpUserID,proto3" json:"OpUserID,omitempty"` //No verification permission + OperationID string `protobuf:"bytes,4,opt,name=OperationID,proto3" json:"OperationID,omitempty"` } -func (dst *GetGroupMembersInfoReq) XXX_Merge(src proto.Message) { - xxx_messageInfo_GetGroupMembersInfoReq.Merge(dst, src) + +func (x *GetGroupMembersInfoReq) Reset() { + *x = GetGroupMembersInfoReq{} + if protoimpl.UnsafeEnabled { + mi := &file_group_group_proto_msgTypes[22] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *GetGroupMembersInfoReq) XXX_Size() int { - return xxx_messageInfo_GetGroupMembersInfoReq.Size(m) + +func (x *GetGroupMembersInfoReq) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *GetGroupMembersInfoReq) XXX_DiscardUnknown() { - xxx_messageInfo_GetGroupMembersInfoReq.DiscardUnknown(m) + +func (*GetGroupMembersInfoReq) ProtoMessage() {} + +func (x *GetGroupMembersInfoReq) ProtoReflect() protoreflect.Message { + mi := &file_group_group_proto_msgTypes[22] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) } -var xxx_messageInfo_GetGroupMembersInfoReq proto.InternalMessageInfo +// Deprecated: Use GetGroupMembersInfoReq.ProtoReflect.Descriptor instead. +func (*GetGroupMembersInfoReq) Descriptor() ([]byte, []int) { + return file_group_group_proto_rawDescGZIP(), []int{22} +} -func (m *GetGroupMembersInfoReq) GetGroupID() string { - if m != nil { - return m.GroupID +func (x *GetGroupMembersInfoReq) GetGroupID() string { + if x != nil { + return x.GroupID } return "" } -func (m *GetGroupMembersInfoReq) GetMemberList() []string { - if m != nil { - return m.MemberList +func (x *GetGroupMembersInfoReq) GetMemberList() []string { + if x != nil { + return x.MemberList } return nil } -func (m *GetGroupMembersInfoReq) GetOpUserID() string { - if m != nil { - return m.OpUserID +func (x *GetGroupMembersInfoReq) GetOpUserID() string { + if x != nil { + return x.OpUserID } return "" } -func (m *GetGroupMembersInfoReq) GetOperationID() string { - if m != nil { - return m.OperationID +func (x *GetGroupMembersInfoReq) GetOperationID() string { + if x != nil { + return x.OperationID } return "" } type GetGroupMembersInfoResp struct { - ErrCode int32 `protobuf:"varint,1,opt,name=ErrCode" json:"ErrCode,omitempty"` - ErrMsg string `protobuf:"bytes,2,opt,name=ErrMsg" json:"ErrMsg,omitempty"` - MemberList []*sdk_ws.GroupMemberFullInfo `protobuf:"bytes,3,rep,name=memberList" json:"memberList,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields -func (m *GetGroupMembersInfoResp) Reset() { *m = GetGroupMembersInfoResp{} } -func (m *GetGroupMembersInfoResp) String() string { return proto.CompactTextString(m) } -func (*GetGroupMembersInfoResp) ProtoMessage() {} -func (*GetGroupMembersInfoResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_a130b5186d308ee6, []int{21} -} -func (m *GetGroupMembersInfoResp) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_GetGroupMembersInfoResp.Unmarshal(m, b) -} -func (m *GetGroupMembersInfoResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_GetGroupMembersInfoResp.Marshal(b, m, deterministic) + ErrCode int32 `protobuf:"varint,1,opt,name=ErrCode,proto3" json:"ErrCode,omitempty"` + ErrMsg string `protobuf:"bytes,2,opt,name=ErrMsg,proto3" json:"ErrMsg,omitempty"` + MemberList []*sdk_ws.GroupMemberFullInfo `protobuf:"bytes,3,rep,name=memberList,proto3" json:"memberList,omitempty"` } -func (dst *GetGroupMembersInfoResp) XXX_Merge(src proto.Message) { - xxx_messageInfo_GetGroupMembersInfoResp.Merge(dst, src) + +func (x *GetGroupMembersInfoResp) Reset() { + *x = GetGroupMembersInfoResp{} + if protoimpl.UnsafeEnabled { + mi := &file_group_group_proto_msgTypes[23] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *GetGroupMembersInfoResp) XXX_Size() int { - return xxx_messageInfo_GetGroupMembersInfoResp.Size(m) + +func (x *GetGroupMembersInfoResp) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *GetGroupMembersInfoResp) XXX_DiscardUnknown() { - xxx_messageInfo_GetGroupMembersInfoResp.DiscardUnknown(m) + +func (*GetGroupMembersInfoResp) ProtoMessage() {} + +func (x *GetGroupMembersInfoResp) ProtoReflect() protoreflect.Message { + mi := &file_group_group_proto_msgTypes[23] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) } -var xxx_messageInfo_GetGroupMembersInfoResp proto.InternalMessageInfo +// Deprecated: Use GetGroupMembersInfoResp.ProtoReflect.Descriptor instead. +func (*GetGroupMembersInfoResp) Descriptor() ([]byte, []int) { + return file_group_group_proto_rawDescGZIP(), []int{23} +} -func (m *GetGroupMembersInfoResp) GetErrCode() int32 { - if m != nil { - return m.ErrCode +func (x *GetGroupMembersInfoResp) GetErrCode() int32 { + if x != nil { + return x.ErrCode } return 0 } -func (m *GetGroupMembersInfoResp) GetErrMsg() string { - if m != nil { - return m.ErrMsg +func (x *GetGroupMembersInfoResp) GetErrMsg() string { + if x != nil { + return x.ErrMsg } return "" } -func (m *GetGroupMembersInfoResp) GetMemberList() []*sdk_ws.GroupMemberFullInfo { - if m != nil { - return m.MemberList +func (x *GetGroupMembersInfoResp) GetMemberList() []*sdk_ws.GroupMemberFullInfo { + if x != nil { + return x.MemberList } return nil } type KickGroupMemberReq struct { - GroupID string `protobuf:"bytes,1,opt,name=GroupID" json:"GroupID,omitempty"` - KickedUserIDList []string `protobuf:"bytes,2,rep,name=KickedUserIDList" json:"KickedUserIDList,omitempty"` - Reason string `protobuf:"bytes,3,opt,name=Reason" json:"Reason,omitempty"` - OperationID string `protobuf:"bytes,5,opt,name=OperationID" json:"OperationID,omitempty"` - OpUserID string `protobuf:"bytes,6,opt,name=OpUserID" json:"OpUserID,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *KickGroupMemberReq) Reset() { *m = KickGroupMemberReq{} } -func (m *KickGroupMemberReq) String() string { return proto.CompactTextString(m) } -func (*KickGroupMemberReq) ProtoMessage() {} -func (*KickGroupMemberReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_a130b5186d308ee6, []int{22} -} -func (m *KickGroupMemberReq) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_KickGroupMemberReq.Unmarshal(m, b) -} -func (m *KickGroupMemberReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_KickGroupMemberReq.Marshal(b, m, deterministic) + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + GroupID string `protobuf:"bytes,1,opt,name=GroupID,proto3" json:"GroupID,omitempty"` + KickedUserIDList []string `protobuf:"bytes,2,rep,name=KickedUserIDList,proto3" json:"KickedUserIDList,omitempty"` + Reason string `protobuf:"bytes,3,opt,name=Reason,proto3" json:"Reason,omitempty"` + OperationID string `protobuf:"bytes,5,opt,name=OperationID,proto3" json:"OperationID,omitempty"` + OpUserID string `protobuf:"bytes,6,opt,name=OpUserID,proto3" json:"OpUserID,omitempty"` //app manger or group manager } -func (dst *KickGroupMemberReq) XXX_Merge(src proto.Message) { - xxx_messageInfo_KickGroupMemberReq.Merge(dst, src) + +func (x *KickGroupMemberReq) Reset() { + *x = KickGroupMemberReq{} + if protoimpl.UnsafeEnabled { + mi := &file_group_group_proto_msgTypes[24] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *KickGroupMemberReq) XXX_Size() int { - return xxx_messageInfo_KickGroupMemberReq.Size(m) + +func (x *KickGroupMemberReq) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *KickGroupMemberReq) XXX_DiscardUnknown() { - xxx_messageInfo_KickGroupMemberReq.DiscardUnknown(m) + +func (*KickGroupMemberReq) ProtoMessage() {} + +func (x *KickGroupMemberReq) ProtoReflect() protoreflect.Message { + mi := &file_group_group_proto_msgTypes[24] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) } -var xxx_messageInfo_KickGroupMemberReq proto.InternalMessageInfo +// Deprecated: Use KickGroupMemberReq.ProtoReflect.Descriptor instead. +func (*KickGroupMemberReq) Descriptor() ([]byte, []int) { + return file_group_group_proto_rawDescGZIP(), []int{24} +} -func (m *KickGroupMemberReq) GetGroupID() string { - if m != nil { - return m.GroupID +func (x *KickGroupMemberReq) GetGroupID() string { + if x != nil { + return x.GroupID } return "" } -func (m *KickGroupMemberReq) GetKickedUserIDList() []string { - if m != nil { - return m.KickedUserIDList +func (x *KickGroupMemberReq) GetKickedUserIDList() []string { + if x != nil { + return x.KickedUserIDList } return nil } -func (m *KickGroupMemberReq) GetReason() string { - if m != nil { - return m.Reason +func (x *KickGroupMemberReq) GetReason() string { + if x != nil { + return x.Reason } return "" } -func (m *KickGroupMemberReq) GetOperationID() string { - if m != nil { - return m.OperationID +func (x *KickGroupMemberReq) GetOperationID() string { + if x != nil { + return x.OperationID } return "" } -func (m *KickGroupMemberReq) GetOpUserID() string { - if m != nil { - return m.OpUserID +func (x *KickGroupMemberReq) GetOpUserID() string { + if x != nil { + return x.OpUserID } return "" } type Id2Result struct { - UserID string `protobuf:"bytes,1,opt,name=UserID" json:"UserID,omitempty"` - Result int32 `protobuf:"varint,2,opt,name=Result" json:"Result,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields -func (m *Id2Result) Reset() { *m = Id2Result{} } -func (m *Id2Result) String() string { return proto.CompactTextString(m) } -func (*Id2Result) ProtoMessage() {} -func (*Id2Result) Descriptor() ([]byte, []int) { - return fileDescriptor_group_a130b5186d308ee6, []int{23} -} -func (m *Id2Result) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_Id2Result.Unmarshal(m, b) + UserID string `protobuf:"bytes,1,opt,name=UserID,proto3" json:"UserID,omitempty"` + Result int32 `protobuf:"varint,2,opt,name=Result,proto3" json:"Result,omitempty"` //0 ok; -1 error } -func (m *Id2Result) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_Id2Result.Marshal(b, m, deterministic) -} -func (dst *Id2Result) XXX_Merge(src proto.Message) { - xxx_messageInfo_Id2Result.Merge(dst, src) + +func (x *Id2Result) Reset() { + *x = Id2Result{} + if protoimpl.UnsafeEnabled { + mi := &file_group_group_proto_msgTypes[25] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *Id2Result) XXX_Size() int { - return xxx_messageInfo_Id2Result.Size(m) + +func (x *Id2Result) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *Id2Result) XXX_DiscardUnknown() { - xxx_messageInfo_Id2Result.DiscardUnknown(m) + +func (*Id2Result) ProtoMessage() {} + +func (x *Id2Result) ProtoReflect() protoreflect.Message { + mi := &file_group_group_proto_msgTypes[25] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) } -var xxx_messageInfo_Id2Result proto.InternalMessageInfo +// Deprecated: Use Id2Result.ProtoReflect.Descriptor instead. +func (*Id2Result) Descriptor() ([]byte, []int) { + return file_group_group_proto_rawDescGZIP(), []int{25} +} -func (m *Id2Result) GetUserID() string { - if m != nil { - return m.UserID +func (x *Id2Result) GetUserID() string { + if x != nil { + return x.UserID } return "" } -func (m *Id2Result) GetResult() int32 { - if m != nil { - return m.Result +func (x *Id2Result) GetResult() int32 { + if x != nil { + return x.Result } return 0 } type KickGroupMemberResp struct { - ErrCode int32 `protobuf:"varint,1,opt,name=ErrCode" json:"ErrCode,omitempty"` - ErrMsg string `protobuf:"bytes,2,opt,name=ErrMsg" json:"ErrMsg,omitempty"` - Id2ResultList []*Id2Result `protobuf:"bytes,3,rep,name=Id2ResultList" json:"Id2ResultList,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields -func (m *KickGroupMemberResp) Reset() { *m = KickGroupMemberResp{} } -func (m *KickGroupMemberResp) String() string { return proto.CompactTextString(m) } -func (*KickGroupMemberResp) ProtoMessage() {} -func (*KickGroupMemberResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_a130b5186d308ee6, []int{24} -} -func (m *KickGroupMemberResp) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_KickGroupMemberResp.Unmarshal(m, b) -} -func (m *KickGroupMemberResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_KickGroupMemberResp.Marshal(b, m, deterministic) + ErrCode int32 `protobuf:"varint,1,opt,name=ErrCode,proto3" json:"ErrCode,omitempty"` + ErrMsg string `protobuf:"bytes,2,opt,name=ErrMsg,proto3" json:"ErrMsg,omitempty"` + Id2ResultList []*Id2Result `protobuf:"bytes,3,rep,name=Id2ResultList,proto3" json:"Id2ResultList,omitempty"` } -func (dst *KickGroupMemberResp) XXX_Merge(src proto.Message) { - xxx_messageInfo_KickGroupMemberResp.Merge(dst, src) + +func (x *KickGroupMemberResp) Reset() { + *x = KickGroupMemberResp{} + if protoimpl.UnsafeEnabled { + mi := &file_group_group_proto_msgTypes[26] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *KickGroupMemberResp) XXX_Size() int { - return xxx_messageInfo_KickGroupMemberResp.Size(m) + +func (x *KickGroupMemberResp) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *KickGroupMemberResp) XXX_DiscardUnknown() { - xxx_messageInfo_KickGroupMemberResp.DiscardUnknown(m) + +func (*KickGroupMemberResp) ProtoMessage() {} + +func (x *KickGroupMemberResp) ProtoReflect() protoreflect.Message { + mi := &file_group_group_proto_msgTypes[26] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) } -var xxx_messageInfo_KickGroupMemberResp proto.InternalMessageInfo +// Deprecated: Use KickGroupMemberResp.ProtoReflect.Descriptor instead. +func (*KickGroupMemberResp) Descriptor() ([]byte, []int) { + return file_group_group_proto_rawDescGZIP(), []int{26} +} -func (m *KickGroupMemberResp) GetErrCode() int32 { - if m != nil { - return m.ErrCode +func (x *KickGroupMemberResp) GetErrCode() int32 { + if x != nil { + return x.ErrCode } return 0 } -func (m *KickGroupMemberResp) GetErrMsg() string { - if m != nil { - return m.ErrMsg +func (x *KickGroupMemberResp) GetErrMsg() string { + if x != nil { + return x.ErrMsg } return "" } -func (m *KickGroupMemberResp) GetId2ResultList() []*Id2Result { - if m != nil { - return m.Id2ResultList +func (x *KickGroupMemberResp) GetId2ResultList() []*Id2Result { + if x != nil { + return x.Id2ResultList } return nil } type GetJoinedGroupListReq struct { - FromUserID string `protobuf:"bytes,1,opt,name=FromUserID" json:"FromUserID,omitempty"` - OperationID string `protobuf:"bytes,2,opt,name=operationID" json:"operationID,omitempty"` - OpUserID string `protobuf:"bytes,3,opt,name=OpUserID" json:"OpUserID,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields -func (m *GetJoinedGroupListReq) Reset() { *m = GetJoinedGroupListReq{} } -func (m *GetJoinedGroupListReq) String() string { return proto.CompactTextString(m) } -func (*GetJoinedGroupListReq) ProtoMessage() {} -func (*GetJoinedGroupListReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_a130b5186d308ee6, []int{25} + FromUserID string `protobuf:"bytes,1,opt,name=FromUserID,proto3" json:"FromUserID,omitempty"` + OperationID string `protobuf:"bytes,2,opt,name=operationID,proto3" json:"operationID,omitempty"` + OpUserID string `protobuf:"bytes,3,opt,name=OpUserID,proto3" json:"OpUserID,omitempty"` //app manager or FromUserID } -func (m *GetJoinedGroupListReq) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_GetJoinedGroupListReq.Unmarshal(m, b) -} -func (m *GetJoinedGroupListReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_GetJoinedGroupListReq.Marshal(b, m, deterministic) -} -func (dst *GetJoinedGroupListReq) XXX_Merge(src proto.Message) { - xxx_messageInfo_GetJoinedGroupListReq.Merge(dst, src) + +func (x *GetJoinedGroupListReq) Reset() { + *x = GetJoinedGroupListReq{} + if protoimpl.UnsafeEnabled { + mi := &file_group_group_proto_msgTypes[27] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *GetJoinedGroupListReq) XXX_Size() int { - return xxx_messageInfo_GetJoinedGroupListReq.Size(m) + +func (x *GetJoinedGroupListReq) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *GetJoinedGroupListReq) XXX_DiscardUnknown() { - xxx_messageInfo_GetJoinedGroupListReq.DiscardUnknown(m) + +func (*GetJoinedGroupListReq) ProtoMessage() {} + +func (x *GetJoinedGroupListReq) ProtoReflect() protoreflect.Message { + mi := &file_group_group_proto_msgTypes[27] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) } -var xxx_messageInfo_GetJoinedGroupListReq proto.InternalMessageInfo +// Deprecated: Use GetJoinedGroupListReq.ProtoReflect.Descriptor instead. +func (*GetJoinedGroupListReq) Descriptor() ([]byte, []int) { + return file_group_group_proto_rawDescGZIP(), []int{27} +} -func (m *GetJoinedGroupListReq) GetFromUserID() string { - if m != nil { - return m.FromUserID +func (x *GetJoinedGroupListReq) GetFromUserID() string { + if x != nil { + return x.FromUserID } return "" } -func (m *GetJoinedGroupListReq) GetOperationID() string { - if m != nil { - return m.OperationID +func (x *GetJoinedGroupListReq) GetOperationID() string { + if x != nil { + return x.OperationID } return "" } -func (m *GetJoinedGroupListReq) GetOpUserID() string { - if m != nil { - return m.OpUserID +func (x *GetJoinedGroupListReq) GetOpUserID() string { + if x != nil { + return x.OpUserID } return "" } type GetJoinedGroupListResp struct { - ErrCode int32 `protobuf:"varint,1,opt,name=ErrCode" json:"ErrCode,omitempty"` - ErrMsg string `protobuf:"bytes,2,opt,name=ErrMsg" json:"ErrMsg,omitempty"` - GroupList []*sdk_ws.GroupInfo `protobuf:"bytes,3,rep,name=GroupList" json:"GroupList,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields -func (m *GetJoinedGroupListResp) Reset() { *m = GetJoinedGroupListResp{} } -func (m *GetJoinedGroupListResp) String() string { return proto.CompactTextString(m) } -func (*GetJoinedGroupListResp) ProtoMessage() {} -func (*GetJoinedGroupListResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_a130b5186d308ee6, []int{26} + ErrCode int32 `protobuf:"varint,1,opt,name=ErrCode,proto3" json:"ErrCode,omitempty"` + ErrMsg string `protobuf:"bytes,2,opt,name=ErrMsg,proto3" json:"ErrMsg,omitempty"` + GroupList []*sdk_ws.GroupInfo `protobuf:"bytes,3,rep,name=GroupList,proto3" json:"GroupList,omitempty"` } -func (m *GetJoinedGroupListResp) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_GetJoinedGroupListResp.Unmarshal(m, b) -} -func (m *GetJoinedGroupListResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_GetJoinedGroupListResp.Marshal(b, m, deterministic) -} -func (dst *GetJoinedGroupListResp) XXX_Merge(src proto.Message) { - xxx_messageInfo_GetJoinedGroupListResp.Merge(dst, src) + +func (x *GetJoinedGroupListResp) Reset() { + *x = GetJoinedGroupListResp{} + if protoimpl.UnsafeEnabled { + mi := &file_group_group_proto_msgTypes[28] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *GetJoinedGroupListResp) XXX_Size() int { - return xxx_messageInfo_GetJoinedGroupListResp.Size(m) + +func (x *GetJoinedGroupListResp) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *GetJoinedGroupListResp) XXX_DiscardUnknown() { - xxx_messageInfo_GetJoinedGroupListResp.DiscardUnknown(m) + +func (*GetJoinedGroupListResp) ProtoMessage() {} + +func (x *GetJoinedGroupListResp) ProtoReflect() protoreflect.Message { + mi := &file_group_group_proto_msgTypes[28] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) } -var xxx_messageInfo_GetJoinedGroupListResp proto.InternalMessageInfo +// Deprecated: Use GetJoinedGroupListResp.ProtoReflect.Descriptor instead. +func (*GetJoinedGroupListResp) Descriptor() ([]byte, []int) { + return file_group_group_proto_rawDescGZIP(), []int{28} +} -func (m *GetJoinedGroupListResp) GetErrCode() int32 { - if m != nil { - return m.ErrCode +func (x *GetJoinedGroupListResp) GetErrCode() int32 { + if x != nil { + return x.ErrCode } return 0 } -func (m *GetJoinedGroupListResp) GetErrMsg() string { - if m != nil { - return m.ErrMsg +func (x *GetJoinedGroupListResp) GetErrMsg() string { + if x != nil { + return x.ErrMsg } return "" } -func (m *GetJoinedGroupListResp) GetGroupList() []*sdk_ws.GroupInfo { - if m != nil { - return m.GroupList +func (x *GetJoinedGroupListResp) GetGroupList() []*sdk_ws.GroupInfo { + if x != nil { + return x.GroupList } return nil } type InviteUserToGroupReq struct { - OperationID string `protobuf:"bytes,2,opt,name=OperationID" json:"OperationID,omitempty"` - GroupID string `protobuf:"bytes,3,opt,name=GroupID" json:"GroupID,omitempty"` - Reason string `protobuf:"bytes,4,opt,name=Reason" json:"Reason,omitempty"` - InvitedUserIDList []string `protobuf:"bytes,5,rep,name=InvitedUserIDList" json:"InvitedUserIDList,omitempty"` - OpUserID string `protobuf:"bytes,6,opt,name=OpUserID" json:"OpUserID,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} - -func (m *InviteUserToGroupReq) Reset() { *m = InviteUserToGroupReq{} } -func (m *InviteUserToGroupReq) String() string { return proto.CompactTextString(m) } -func (*InviteUserToGroupReq) ProtoMessage() {} -func (*InviteUserToGroupReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_a130b5186d308ee6, []int{27} -} -func (m *InviteUserToGroupReq) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_InviteUserToGroupReq.Unmarshal(m, b) -} -func (m *InviteUserToGroupReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_InviteUserToGroupReq.Marshal(b, m, deterministic) + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + OperationID string `protobuf:"bytes,2,opt,name=OperationID,proto3" json:"OperationID,omitempty"` + GroupID string `protobuf:"bytes,3,opt,name=GroupID,proto3" json:"GroupID,omitempty"` + Reason string `protobuf:"bytes,4,opt,name=Reason,proto3" json:"Reason,omitempty"` + InvitedUserIDList []string `protobuf:"bytes,5,rep,name=InvitedUserIDList,proto3" json:"InvitedUserIDList,omitempty"` + OpUserID string `protobuf:"bytes,6,opt,name=OpUserID,proto3" json:"OpUserID,omitempty"` //group member or app manager } -func (dst *InviteUserToGroupReq) XXX_Merge(src proto.Message) { - xxx_messageInfo_InviteUserToGroupReq.Merge(dst, src) + +func (x *InviteUserToGroupReq) Reset() { + *x = InviteUserToGroupReq{} + if protoimpl.UnsafeEnabled { + mi := &file_group_group_proto_msgTypes[29] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *InviteUserToGroupReq) XXX_Size() int { - return xxx_messageInfo_InviteUserToGroupReq.Size(m) + +func (x *InviteUserToGroupReq) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *InviteUserToGroupReq) XXX_DiscardUnknown() { - xxx_messageInfo_InviteUserToGroupReq.DiscardUnknown(m) + +func (*InviteUserToGroupReq) ProtoMessage() {} + +func (x *InviteUserToGroupReq) ProtoReflect() protoreflect.Message { + mi := &file_group_group_proto_msgTypes[29] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) } -var xxx_messageInfo_InviteUserToGroupReq proto.InternalMessageInfo +// Deprecated: Use InviteUserToGroupReq.ProtoReflect.Descriptor instead. +func (*InviteUserToGroupReq) Descriptor() ([]byte, []int) { + return file_group_group_proto_rawDescGZIP(), []int{29} +} -func (m *InviteUserToGroupReq) GetOperationID() string { - if m != nil { - return m.OperationID +func (x *InviteUserToGroupReq) GetOperationID() string { + if x != nil { + return x.OperationID } return "" } -func (m *InviteUserToGroupReq) GetGroupID() string { - if m != nil { - return m.GroupID +func (x *InviteUserToGroupReq) GetGroupID() string { + if x != nil { + return x.GroupID } return "" } -func (m *InviteUserToGroupReq) GetReason() string { - if m != nil { - return m.Reason +func (x *InviteUserToGroupReq) GetReason() string { + if x != nil { + return x.Reason } return "" } -func (m *InviteUserToGroupReq) GetInvitedUserIDList() []string { - if m != nil { - return m.InvitedUserIDList +func (x *InviteUserToGroupReq) GetInvitedUserIDList() []string { + if x != nil { + return x.InvitedUserIDList } return nil } -func (m *InviteUserToGroupReq) GetOpUserID() string { - if m != nil { - return m.OpUserID +func (x *InviteUserToGroupReq) GetOpUserID() string { + if x != nil { + return x.OpUserID } return "" } type InviteUserToGroupResp struct { - ErrCode int32 `protobuf:"varint,1,opt,name=ErrCode" json:"ErrCode,omitempty"` - ErrMsg string `protobuf:"bytes,2,opt,name=ErrMsg" json:"ErrMsg,omitempty"` - Id2ResultList []*Id2Result `protobuf:"bytes,3,rep,name=Id2ResultList" json:"Id2ResultList,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields -func (m *InviteUserToGroupResp) Reset() { *m = InviteUserToGroupResp{} } -func (m *InviteUserToGroupResp) String() string { return proto.CompactTextString(m) } -func (*InviteUserToGroupResp) ProtoMessage() {} -func (*InviteUserToGroupResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_a130b5186d308ee6, []int{28} -} -func (m *InviteUserToGroupResp) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_InviteUserToGroupResp.Unmarshal(m, b) + ErrCode int32 `protobuf:"varint,1,opt,name=ErrCode,proto3" json:"ErrCode,omitempty"` + ErrMsg string `protobuf:"bytes,2,opt,name=ErrMsg,proto3" json:"ErrMsg,omitempty"` + Id2ResultList []*Id2Result `protobuf:"bytes,3,rep,name=Id2ResultList,proto3" json:"Id2ResultList,omitempty"` // 0 ok, -1 error } -func (m *InviteUserToGroupResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_InviteUserToGroupResp.Marshal(b, m, deterministic) -} -func (dst *InviteUserToGroupResp) XXX_Merge(src proto.Message) { - xxx_messageInfo_InviteUserToGroupResp.Merge(dst, src) + +func (x *InviteUserToGroupResp) Reset() { + *x = InviteUserToGroupResp{} + if protoimpl.UnsafeEnabled { + mi := &file_group_group_proto_msgTypes[30] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *InviteUserToGroupResp) XXX_Size() int { - return xxx_messageInfo_InviteUserToGroupResp.Size(m) + +func (x *InviteUserToGroupResp) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *InviteUserToGroupResp) XXX_DiscardUnknown() { - xxx_messageInfo_InviteUserToGroupResp.DiscardUnknown(m) + +func (*InviteUserToGroupResp) ProtoMessage() {} + +func (x *InviteUserToGroupResp) ProtoReflect() protoreflect.Message { + mi := &file_group_group_proto_msgTypes[30] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) } -var xxx_messageInfo_InviteUserToGroupResp proto.InternalMessageInfo +// Deprecated: Use InviteUserToGroupResp.ProtoReflect.Descriptor instead. +func (*InviteUserToGroupResp) Descriptor() ([]byte, []int) { + return file_group_group_proto_rawDescGZIP(), []int{30} +} -func (m *InviteUserToGroupResp) GetErrCode() int32 { - if m != nil { - return m.ErrCode +func (x *InviteUserToGroupResp) GetErrCode() int32 { + if x != nil { + return x.ErrCode } return 0 } -func (m *InviteUserToGroupResp) GetErrMsg() string { - if m != nil { - return m.ErrMsg +func (x *InviteUserToGroupResp) GetErrMsg() string { + if x != nil { + return x.ErrMsg } return "" } -func (m *InviteUserToGroupResp) GetId2ResultList() []*Id2Result { - if m != nil { - return m.Id2ResultList +func (x *InviteUserToGroupResp) GetId2ResultList() []*Id2Result { + if x != nil { + return x.Id2ResultList } return nil } type GetGroupAllMemberReq struct { - GroupID string `protobuf:"bytes,1,opt,name=GroupID" json:"GroupID,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:"-"` -} + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields -func (m *GetGroupAllMemberReq) Reset() { *m = GetGroupAllMemberReq{} } -func (m *GetGroupAllMemberReq) String() string { return proto.CompactTextString(m) } -func (*GetGroupAllMemberReq) ProtoMessage() {} -func (*GetGroupAllMemberReq) Descriptor() ([]byte, []int) { - return fileDescriptor_group_a130b5186d308ee6, []int{29} + GroupID string `protobuf:"bytes,1,opt,name=GroupID,proto3" json:"GroupID,omitempty"` + OpUserID string `protobuf:"bytes,2,opt,name=OpUserID,proto3" json:"OpUserID,omitempty"` //No verification permission + OperationID string `protobuf:"bytes,3,opt,name=OperationID,proto3" json:"OperationID,omitempty"` } -func (m *GetGroupAllMemberReq) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_GetGroupAllMemberReq.Unmarshal(m, b) -} -func (m *GetGroupAllMemberReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_GetGroupAllMemberReq.Marshal(b, m, deterministic) -} -func (dst *GetGroupAllMemberReq) XXX_Merge(src proto.Message) { - xxx_messageInfo_GetGroupAllMemberReq.Merge(dst, src) + +func (x *GetGroupAllMemberReq) Reset() { + *x = GetGroupAllMemberReq{} + if protoimpl.UnsafeEnabled { + mi := &file_group_group_proto_msgTypes[31] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *GetGroupAllMemberReq) XXX_Size() int { - return xxx_messageInfo_GetGroupAllMemberReq.Size(m) + +func (x *GetGroupAllMemberReq) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *GetGroupAllMemberReq) XXX_DiscardUnknown() { - xxx_messageInfo_GetGroupAllMemberReq.DiscardUnknown(m) + +func (*GetGroupAllMemberReq) ProtoMessage() {} + +func (x *GetGroupAllMemberReq) ProtoReflect() protoreflect.Message { + mi := &file_group_group_proto_msgTypes[31] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) } -var xxx_messageInfo_GetGroupAllMemberReq proto.InternalMessageInfo +// Deprecated: Use GetGroupAllMemberReq.ProtoReflect.Descriptor instead. +func (*GetGroupAllMemberReq) Descriptor() ([]byte, []int) { + return file_group_group_proto_rawDescGZIP(), []int{31} +} -func (m *GetGroupAllMemberReq) GetGroupID() string { - if m != nil { - return m.GroupID +func (x *GetGroupAllMemberReq) GetGroupID() string { + if x != nil { + return x.GroupID } return "" } -func (m *GetGroupAllMemberReq) GetOpUserID() string { - if m != nil { - return m.OpUserID +func (x *GetGroupAllMemberReq) GetOpUserID() string { + if x != nil { + return x.OpUserID } return "" } -func (m *GetGroupAllMemberReq) GetOperationID() string { - if m != nil { - return m.OperationID +func (x *GetGroupAllMemberReq) GetOperationID() string { + if x != nil { + return x.OperationID } return "" } type GetGroupAllMemberResp struct { - ErrCode int32 `protobuf:"varint,1,opt,name=ErrCode" json:"ErrCode,omitempty"` - ErrMsg string `protobuf:"bytes,2,opt,name=ErrMsg" json:"ErrMsg,omitempty"` - MemberList []*sdk_ws.GroupMemberFullInfo `protobuf:"bytes,3,rep,name=memberList" json:"memberList,omitempty"` - XXX_NoUnkeyedLiteral struct{} `json:"-"` - XXX_unrecognized []byte `json:"-"` - XXX_sizecache int32 `json:"-"` -} + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields -func (m *GetGroupAllMemberResp) Reset() { *m = GetGroupAllMemberResp{} } -func (m *GetGroupAllMemberResp) String() string { return proto.CompactTextString(m) } -func (*GetGroupAllMemberResp) ProtoMessage() {} -func (*GetGroupAllMemberResp) Descriptor() ([]byte, []int) { - return fileDescriptor_group_a130b5186d308ee6, []int{30} -} -func (m *GetGroupAllMemberResp) XXX_Unmarshal(b []byte) error { - return xxx_messageInfo_GetGroupAllMemberResp.Unmarshal(m, b) -} -func (m *GetGroupAllMemberResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { - return xxx_messageInfo_GetGroupAllMemberResp.Marshal(b, m, deterministic) + ErrCode int32 `protobuf:"varint,1,opt,name=ErrCode,proto3" json:"ErrCode,omitempty"` + ErrMsg string `protobuf:"bytes,2,opt,name=ErrMsg,proto3" json:"ErrMsg,omitempty"` + MemberList []*sdk_ws.GroupMemberFullInfo `protobuf:"bytes,3,rep,name=memberList,proto3" json:"memberList,omitempty"` } -func (dst *GetGroupAllMemberResp) XXX_Merge(src proto.Message) { - xxx_messageInfo_GetGroupAllMemberResp.Merge(dst, src) + +func (x *GetGroupAllMemberResp) Reset() { + *x = GetGroupAllMemberResp{} + if protoimpl.UnsafeEnabled { + mi := &file_group_group_proto_msgTypes[32] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } } -func (m *GetGroupAllMemberResp) XXX_Size() int { - return xxx_messageInfo_GetGroupAllMemberResp.Size(m) + +func (x *GetGroupAllMemberResp) String() string { + return protoimpl.X.MessageStringOf(x) } -func (m *GetGroupAllMemberResp) XXX_DiscardUnknown() { - xxx_messageInfo_GetGroupAllMemberResp.DiscardUnknown(m) + +func (*GetGroupAllMemberResp) ProtoMessage() {} + +func (x *GetGroupAllMemberResp) ProtoReflect() protoreflect.Message { + mi := &file_group_group_proto_msgTypes[32] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) } -var xxx_messageInfo_GetGroupAllMemberResp proto.InternalMessageInfo +// Deprecated: Use GetGroupAllMemberResp.ProtoReflect.Descriptor instead. +func (*GetGroupAllMemberResp) Descriptor() ([]byte, []int) { + return file_group_group_proto_rawDescGZIP(), []int{32} +} -func (m *GetGroupAllMemberResp) GetErrCode() int32 { - if m != nil { - return m.ErrCode +func (x *GetGroupAllMemberResp) GetErrCode() int32 { + if x != nil { + return x.ErrCode } return 0 } -func (m *GetGroupAllMemberResp) GetErrMsg() string { - if m != nil { - return m.ErrMsg +func (x *GetGroupAllMemberResp) GetErrMsg() string { + if x != nil { + return x.ErrMsg } return "" } -func (m *GetGroupAllMemberResp) GetMemberList() []*sdk_ws.GroupMemberFullInfo { - if m != nil { - return m.MemberList +func (x *GetGroupAllMemberResp) GetMemberList() []*sdk_ws.GroupMemberFullInfo { + if x != nil { + return x.MemberList } return nil } -func init() { - proto.RegisterType((*CommonResp)(nil), "group.CommonResp") - proto.RegisterType((*GroupAddMemberInfo)(nil), "group.GroupAddMemberInfo") - proto.RegisterType((*CreateGroupReq)(nil), "group.CreateGroupReq") - proto.RegisterType((*CreateGroupResp)(nil), "group.CreateGroupResp") - proto.RegisterType((*GetGroupsInfoReq)(nil), "group.GetGroupsInfoReq") - proto.RegisterType((*GetGroupsInfoResp)(nil), "group.GetGroupsInfoResp") - proto.RegisterType((*SetGroupInfoReq)(nil), "group.SetGroupInfoReq") - proto.RegisterType((*SetGroupInfoResp)(nil), "group.SetGroupInfoResp") - proto.RegisterType((*GetGroupApplicationListReq)(nil), "group.GetGroupApplicationListReq") - proto.RegisterType((*GetGroupApplicationListResp)(nil), "group.GetGroupApplicationListResp") - proto.RegisterType((*TransferGroupOwnerReq)(nil), "group.TransferGroupOwnerReq") - proto.RegisterType((*TransferGroupOwnerResp)(nil), "group.TransferGroupOwnerResp") - proto.RegisterType((*JoinGroupReq)(nil), "group.JoinGroupReq") - proto.RegisterType((*JoinGroupResp)(nil), "group.JoinGroupResp") - proto.RegisterType((*GroupApplicationResponseReq)(nil), "group.GroupApplicationResponseReq") - proto.RegisterType((*GroupApplicationResponseResp)(nil), "group.GroupApplicationResponseResp") - proto.RegisterType((*QuitGroupReq)(nil), "group.QuitGroupReq") - proto.RegisterType((*QuitGroupResp)(nil), "group.QuitGroupResp") - proto.RegisterType((*GetGroupMemberListReq)(nil), "group.GetGroupMemberListReq") - proto.RegisterType((*GetGroupMemberListResp)(nil), "group.GetGroupMemberListResp") - proto.RegisterType((*GetGroupMembersInfoReq)(nil), "group.GetGroupMembersInfoReq") - proto.RegisterType((*GetGroupMembersInfoResp)(nil), "group.GetGroupMembersInfoResp") - proto.RegisterType((*KickGroupMemberReq)(nil), "group.KickGroupMemberReq") - proto.RegisterType((*Id2Result)(nil), "group.Id2Result") - proto.RegisterType((*KickGroupMemberResp)(nil), "group.KickGroupMemberResp") - proto.RegisterType((*GetJoinedGroupListReq)(nil), "group.GetJoinedGroupListReq") - proto.RegisterType((*GetJoinedGroupListResp)(nil), "group.GetJoinedGroupListResp") - proto.RegisterType((*InviteUserToGroupReq)(nil), "group.InviteUserToGroupReq") - proto.RegisterType((*InviteUserToGroupResp)(nil), "group.InviteUserToGroupResp") - proto.RegisterType((*GetGroupAllMemberReq)(nil), "group.GetGroupAllMemberReq") - proto.RegisterType((*GetGroupAllMemberResp)(nil), "group.GetGroupAllMemberResp") +var File_group_group_proto protoreflect.FileDescriptor + +var file_group_group_proto_rawDesc = []byte{ + 0x0a, 0x11, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x70, 0x72, + 0x6f, 0x74, 0x6f, 0x12, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x1a, 0x21, 0x4f, 0x70, 0x65, 0x6e, + 0x5f, 0x49, 0x4d, 0x2f, 0x70, 0x6b, 0x67, 0x2f, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x2f, 0x73, 0x64, + 0x6b, 0x5f, 0x77, 0x73, 0x2f, 0x77, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x22, 0x3e, 0x0a, + 0x0a, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x12, 0x18, 0x0a, 0x07, 0x45, + 0x72, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x45, 0x72, + 0x72, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x45, 0x72, 0x72, 0x4d, 0x73, 0x67, 0x18, + 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x45, 0x72, 0x72, 0x4d, 0x73, 0x67, 0x22, 0x4a, 0x0a, + 0x12, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x64, 0x64, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x49, + 0x6e, 0x66, 0x6f, 0x12, 0x16, 0x0a, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x52, + 0x6f, 0x6c, 0x65, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, + 0x52, 0x6f, 0x6c, 0x65, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x22, 0xef, 0x01, 0x0a, 0x0e, 0x43, 0x72, + 0x65, 0x61, 0x74, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x12, 0x41, 0x0a, 0x0e, + 0x49, 0x6e, 0x69, 0x74, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x01, + 0x20, 0x03, 0x28, 0x0b, 0x32, 0x19, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x72, 0x6f, + 0x75, 0x70, 0x41, 0x64, 0x64, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, + 0x0e, 0x49, 0x6e, 0x69, 0x74, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x12, + 0x3a, 0x0a, 0x09, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, + 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x66, 0x6f, + 0x52, 0x09, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x20, 0x0a, 0x0b, 0x4f, + 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x12, 0x1a, 0x0a, + 0x08, 0x4f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x08, 0x4f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x77, 0x6e, + 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, + 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x22, 0x7f, 0x0a, 0x0f, 0x43, + 0x72, 0x65, 0x61, 0x74, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x12, 0x18, + 0x0a, 0x07, 0x45, 0x72, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x07, 0x45, 0x72, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x45, 0x72, 0x72, 0x4d, + 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x45, 0x72, 0x72, 0x4d, 0x73, 0x67, + 0x12, 0x3a, 0x0a, 0x09, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, + 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x66, + 0x6f, 0x52, 0x09, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x22, 0x72, 0x0a, 0x10, + 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, + 0x12, 0x20, 0x0a, 0x0b, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x44, 0x4c, 0x69, 0x73, 0x74, 0x18, + 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0b, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x44, 0x4c, 0x69, + 0x73, 0x74, 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, + 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x4f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x4f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, + 0x22, 0x89, 0x01, 0x0a, 0x11, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x49, 0x6e, + 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x12, 0x18, 0x0a, 0x07, 0x45, 0x72, 0x72, 0x43, 0x6f, 0x64, + 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x45, 0x72, 0x72, 0x43, 0x6f, 0x64, 0x65, + 0x12, 0x16, 0x0a, 0x06, 0x45, 0x72, 0x72, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x06, 0x45, 0x72, 0x72, 0x4d, 0x73, 0x67, 0x12, 0x42, 0x0a, 0x0d, 0x47, 0x72, 0x6f, 0x75, + 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x1c, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, + 0x61, 0x6d, 0x73, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0d, 0x47, + 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x8b, 0x01, 0x0a, + 0x0f, 0x53, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, + 0x12, 0x3a, 0x0a, 0x09, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, + 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x66, + 0x6f, 0x52, 0x09, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1a, 0x0a, 0x08, + 0x4f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, + 0x4f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x70, 0x65, 0x72, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x4f, + 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x22, 0x45, 0x0a, 0x10, 0x53, 0x65, + 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x12, 0x31, + 0x0a, 0x0a, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, + 0x6e, 0x52, 0x65, 0x73, 0x70, 0x52, 0x0a, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, + 0x70, 0x22, 0x7a, 0x0a, 0x1a, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x70, 0x70, + 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x12, + 0x1a, 0x0a, 0x08, 0x4f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x08, 0x4f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x4f, + 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x12, 0x1e, 0x0a, + 0x0a, 0x46, 0x72, 0x6f, 0x6d, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0a, 0x46, 0x72, 0x6f, 0x6d, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x22, 0x9c, 0x01, + 0x0a, 0x1b, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x18, 0x0a, + 0x07, 0x45, 0x72, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, + 0x45, 0x72, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x45, 0x72, 0x72, 0x4d, 0x73, + 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x45, 0x72, 0x72, 0x4d, 0x73, 0x67, 0x12, + 0x4b, 0x0a, 0x10, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x4c, + 0x69, 0x73, 0x74, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x73, 0x65, 0x72, 0x76, + 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x47, 0x72, + 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x52, 0x10, 0x47, 0x72, 0x6f, 0x75, + 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x74, 0x0a, 0x1c, + 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x12, 0x16, 0x0a, 0x06, + 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x55, 0x73, + 0x65, 0x72, 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x4f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x4f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, + 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x49, 0x44, 0x22, 0x9f, 0x01, 0x0a, 0x1d, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, + 0x71, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x69, 0x73, 0x74, + 0x52, 0x65, 0x73, 0x70, 0x12, 0x31, 0x0a, 0x0a, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, + 0x73, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, + 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x52, 0x0a, 0x43, 0x6f, 0x6d, + 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x12, 0x4b, 0x0a, 0x10, 0x47, 0x72, 0x6f, 0x75, 0x70, + 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x02, 0x20, 0x03, 0x28, + 0x0b, 0x32, 0x1f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, + 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, + 0x73, 0x74, 0x52, 0x10, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, + 0x4c, 0x69, 0x73, 0x74, 0x22, 0xbf, 0x01, 0x0a, 0x15, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, + 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x52, 0x65, 0x71, 0x12, 0x18, + 0x0a, 0x07, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x07, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x44, 0x12, 0x26, 0x0a, 0x0e, 0x4f, 0x6c, 0x64, 0x4f, + 0x77, 0x6e, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0e, 0x4f, 0x6c, 0x64, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, + 0x12, 0x26, 0x0a, 0x0e, 0x4e, 0x65, 0x77, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, + 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x4e, 0x65, 0x77, 0x4f, 0x77, 0x6e, + 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x70, 0x65, 0x72, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x4f, + 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x4f, 0x70, + 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x4f, 0x70, + 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x22, 0x4b, 0x0a, 0x16, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, + 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, + 0x12, 0x31, 0x0a, 0x0a, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x18, 0x01, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x43, 0x6f, 0x6d, + 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x52, 0x0a, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, + 0x65, 0x73, 0x70, 0x22, 0x86, 0x01, 0x0a, 0x0c, 0x4a, 0x6f, 0x69, 0x6e, 0x47, 0x72, 0x6f, 0x75, + 0x70, 0x52, 0x65, 0x71, 0x12, 0x18, 0x0a, 0x07, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x44, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x44, 0x12, 0x1e, + 0x0a, 0x0a, 0x52, 0x65, 0x71, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x18, 0x02, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0a, 0x52, 0x65, 0x71, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x1a, + 0x0a, 0x08, 0x4f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x08, 0x4f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x70, + 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x22, 0x42, 0x0a, 0x0d, + 0x4a, 0x6f, 0x69, 0x6e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x12, 0x31, 0x0a, + 0x0a, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, + 0x0b, 0x32, 0x11, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, + 0x52, 0x65, 0x73, 0x70, 0x52, 0x0a, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, + 0x22, 0xd9, 0x01, 0x0a, 0x1b, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x65, 0x71, + 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x4f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x4f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x18, + 0x0a, 0x07, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x07, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x46, 0x72, 0x6f, 0x6d, + 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x46, 0x72, + 0x6f, 0x6d, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x48, 0x61, 0x6e, 0x64, + 0x6c, 0x65, 0x64, 0x4d, 0x73, 0x67, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x48, 0x61, + 0x6e, 0x64, 0x6c, 0x65, 0x64, 0x4d, 0x73, 0x67, 0x12, 0x22, 0x0a, 0x0c, 0x48, 0x61, 0x6e, 0x64, + 0x6c, 0x65, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, + 0x48, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0x51, 0x0a, 0x1c, + 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x31, 0x0a, 0x0a, + 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, + 0x32, 0x11, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, + 0x65, 0x73, 0x70, 0x52, 0x0a, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, + 0x66, 0x0a, 0x0c, 0x51, 0x75, 0x69, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x12, + 0x18, 0x0a, 0x07, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x07, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x70, 0x65, + 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, + 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x4f, + 0x70, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x4f, + 0x70, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x22, 0x42, 0x0a, 0x0d, 0x51, 0x75, 0x69, 0x74, 0x47, + 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x12, 0x31, 0x0a, 0x0a, 0x43, 0x6f, 0x6d, 0x6d, + 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x11, 0x2e, 0x67, + 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x52, + 0x0a, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0xa1, 0x01, 0x0a, 0x15, + 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x4c, 0x69, + 0x73, 0x74, 0x52, 0x65, 0x71, 0x12, 0x18, 0x0a, 0x07, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x44, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x44, 0x12, + 0x1a, 0x0a, 0x08, 0x4f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x08, 0x4f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x4f, + 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x12, 0x16, 0x0a, + 0x06, 0x46, 0x69, 0x6c, 0x74, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x46, + 0x69, 0x6c, 0x74, 0x65, 0x72, 0x12, 0x18, 0x0a, 0x07, 0x4e, 0x65, 0x78, 0x74, 0x53, 0x65, 0x71, + 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x4e, 0x65, 0x78, 0x74, 0x53, 0x65, 0x71, 0x22, + 0xac, 0x01, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, + 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x18, 0x0a, 0x07, 0x45, 0x72, + 0x72, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x45, 0x72, 0x72, + 0x43, 0x6f, 0x64, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x45, 0x72, 0x72, 0x4d, 0x73, 0x67, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x45, 0x72, 0x72, 0x4d, 0x73, 0x67, 0x12, 0x46, 0x0a, 0x0a, + 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, + 0x32, 0x26, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, + 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, + 0x46, 0x75, 0x6c, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0a, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, + 0x4c, 0x69, 0x73, 0x74, 0x12, 0x18, 0x0a, 0x07, 0x6e, 0x65, 0x78, 0x74, 0x53, 0x65, 0x71, 0x18, + 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x6e, 0x65, 0x78, 0x74, 0x53, 0x65, 0x71, 0x22, 0x90, + 0x01, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, + 0x72, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x12, 0x18, 0x0a, 0x07, 0x47, 0x72, 0x6f, + 0x75, 0x70, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x47, 0x72, 0x6f, 0x75, + 0x70, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x4c, 0x69, 0x73, + 0x74, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x0a, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x4c, + 0x69, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x4f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x4f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, + 0x20, 0x0a, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, + 0x44, 0x22, 0x93, 0x01, 0x0a, 0x17, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, + 0x6d, 0x62, 0x65, 0x72, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x12, 0x18, 0x0a, + 0x07, 0x45, 0x72, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, + 0x45, 0x72, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x45, 0x72, 0x72, 0x4d, 0x73, + 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x45, 0x72, 0x72, 0x4d, 0x73, 0x67, 0x12, + 0x46, 0x0a, 0x0a, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x03, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, + 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, + 0x62, 0x65, 0x72, 0x46, 0x75, 0x6c, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0a, 0x6d, 0x65, 0x6d, + 0x62, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x22, 0xb0, 0x01, 0x0a, 0x12, 0x4b, 0x69, 0x63, 0x6b, + 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x65, 0x71, 0x12, 0x18, + 0x0a, 0x07, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x07, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x44, 0x12, 0x2a, 0x0a, 0x10, 0x4b, 0x69, 0x63, 0x6b, + 0x65, 0x64, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x02, 0x20, 0x03, + 0x28, 0x09, 0x52, 0x10, 0x4b, 0x69, 0x63, 0x6b, 0x65, 0x64, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, + 0x4c, 0x69, 0x73, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x12, 0x20, 0x0a, 0x0b, + 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x12, 0x1a, + 0x0a, 0x08, 0x4f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x08, 0x4f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x22, 0x3b, 0x0a, 0x09, 0x49, 0x64, + 0x32, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, + 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, + 0x16, 0x0a, 0x06, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x06, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x22, 0x7f, 0x0a, 0x13, 0x4b, 0x69, 0x63, 0x6b, 0x47, + 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x12, 0x18, + 0x0a, 0x07, 0x45, 0x72, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, + 0x07, 0x45, 0x72, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x45, 0x72, 0x72, 0x4d, + 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x45, 0x72, 0x72, 0x4d, 0x73, 0x67, + 0x12, 0x36, 0x0a, 0x0d, 0x49, 0x64, 0x32, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x4c, 0x69, 0x73, + 0x74, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, + 0x49, 0x64, 0x32, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x52, 0x0d, 0x49, 0x64, 0x32, 0x52, 0x65, + 0x73, 0x75, 0x6c, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x22, 0x75, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x4a, + 0x6f, 0x69, 0x6e, 0x65, 0x64, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, + 0x71, 0x12, 0x1e, 0x0a, 0x0a, 0x46, 0x72, 0x6f, 0x6d, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x46, 0x72, 0x6f, 0x6d, 0x55, 0x73, 0x65, 0x72, 0x49, + 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x4f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, + 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x4f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x22, + 0x86, 0x01, 0x0a, 0x16, 0x47, 0x65, 0x74, 0x4a, 0x6f, 0x69, 0x6e, 0x65, 0x64, 0x47, 0x72, 0x6f, + 0x75, 0x70, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x18, 0x0a, 0x07, 0x45, 0x72, + 0x72, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x45, 0x72, 0x72, + 0x43, 0x6f, 0x64, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x45, 0x72, 0x72, 0x4d, 0x73, 0x67, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x45, 0x72, 0x72, 0x4d, 0x73, 0x67, 0x12, 0x3a, 0x0a, 0x09, + 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, + 0x1c, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, + 0x61, 0x6d, 0x73, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x09, 0x47, + 0x72, 0x6f, 0x75, 0x70, 0x4c, 0x69, 0x73, 0x74, 0x22, 0xb4, 0x01, 0x0a, 0x14, 0x49, 0x6e, 0x76, + 0x69, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x54, 0x6f, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, + 0x71, 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, + 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x49, 0x44, 0x12, 0x18, 0x0a, 0x07, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x44, 0x18, 0x03, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x44, 0x12, 0x16, 0x0a, + 0x06, 0x52, 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x52, + 0x65, 0x61, 0x73, 0x6f, 0x6e, 0x12, 0x2c, 0x0a, 0x11, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x64, + 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x05, 0x20, 0x03, 0x28, 0x09, + 0x52, 0x11, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x64, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x4c, + 0x69, 0x73, 0x74, 0x12, 0x1a, 0x0a, 0x08, 0x4f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, + 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x4f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x22, + 0x81, 0x01, 0x0a, 0x15, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x54, 0x6f, + 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x12, 0x18, 0x0a, 0x07, 0x45, 0x72, 0x72, + 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x45, 0x72, 0x72, 0x43, + 0x6f, 0x64, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x45, 0x72, 0x72, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x06, 0x45, 0x72, 0x72, 0x4d, 0x73, 0x67, 0x12, 0x36, 0x0a, 0x0d, 0x49, + 0x64, 0x32, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x03, 0x20, 0x03, + 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x49, 0x64, 0x32, 0x52, 0x65, + 0x73, 0x75, 0x6c, 0x74, 0x52, 0x0d, 0x49, 0x64, 0x32, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x4c, + 0x69, 0x73, 0x74, 0x22, 0x6e, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, + 0x6c, 0x6c, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x65, 0x71, 0x12, 0x18, 0x0a, 0x07, 0x47, + 0x72, 0x6f, 0x75, 0x70, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x47, 0x72, + 0x6f, 0x75, 0x70, 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x4f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x49, + 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x4f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x49, + 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, + 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x49, 0x44, 0x22, 0x91, 0x01, 0x0a, 0x15, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, + 0x41, 0x6c, 0x6c, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x12, 0x18, 0x0a, + 0x07, 0x45, 0x72, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, + 0x45, 0x72, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x45, 0x72, 0x72, 0x4d, 0x73, + 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x45, 0x72, 0x72, 0x4d, 0x73, 0x67, 0x12, + 0x46, 0x0a, 0x0a, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x03, 0x20, + 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, + 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, + 0x62, 0x65, 0x72, 0x46, 0x75, 0x6c, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0a, 0x6d, 0x65, 0x6d, + 0x62, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x32, 0xa2, 0x09, 0x0a, 0x05, 0x67, 0x72, 0x6f, 0x75, + 0x70, 0x12, 0x3c, 0x0a, 0x0b, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, + 0x12, 0x15, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x47, + 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x1a, 0x16, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, + 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x12, + 0x36, 0x0a, 0x09, 0x6a, 0x6f, 0x69, 0x6e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x13, 0x2e, 0x67, + 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x4a, 0x6f, 0x69, 0x6e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, + 0x71, 0x1a, 0x14, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x4a, 0x6f, 0x69, 0x6e, 0x47, 0x72, + 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x12, 0x36, 0x0a, 0x09, 0x71, 0x75, 0x69, 0x74, 0x47, + 0x72, 0x6f, 0x75, 0x70, 0x12, 0x13, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x51, 0x75, 0x69, + 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x1a, 0x14, 0x2e, 0x67, 0x72, 0x6f, 0x75, + 0x70, 0x2e, 0x51, 0x75, 0x69, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x12, + 0x42, 0x0a, 0x0d, 0x67, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x49, 0x6e, 0x66, 0x6f, + 0x12, 0x17, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, + 0x70, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x1a, 0x18, 0x2e, 0x67, 0x72, 0x6f, 0x75, + 0x70, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x52, + 0x65, 0x73, 0x70, 0x12, 0x3f, 0x0a, 0x0c, 0x73, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, + 0x6e, 0x66, 0x6f, 0x12, 0x16, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x53, 0x65, 0x74, 0x47, + 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x1a, 0x17, 0x2e, 0x67, 0x72, + 0x6f, 0x75, 0x70, 0x2e, 0x53, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x66, 0x6f, + 0x52, 0x65, 0x73, 0x70, 0x12, 0x60, 0x0a, 0x17, 0x67, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, + 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x12, + 0x21, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, + 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x52, + 0x65, 0x71, 0x1a, 0x22, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x72, + 0x6f, 0x75, 0x70, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x69, + 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x66, 0x0a, 0x19, 0x67, 0x65, 0x74, 0x55, 0x73, 0x65, + 0x72, 0x52, 0x65, 0x71, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4c, + 0x69, 0x73, 0x74, 0x12, 0x23, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x65, 0x74, 0x55, + 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x24, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, + 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x41, 0x70, 0x70, 0x6c, 0x69, + 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x51, + 0x0a, 0x12, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4f, + 0x77, 0x6e, 0x65, 0x72, 0x12, 0x1c, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x54, 0x72, 0x61, + 0x6e, 0x73, 0x66, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x52, + 0x65, 0x71, 0x1a, 0x1d, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, + 0x66, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x52, 0x65, 0x73, + 0x70, 0x12, 0x63, 0x0a, 0x18, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x22, 0x2e, + 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x70, 0x70, 0x6c, 0x69, + 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x65, + 0x71, 0x1a, 0x23, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, + 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, + 0x73, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x51, 0x0a, 0x12, 0x67, 0x65, 0x74, 0x47, 0x72, 0x6f, + 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x1c, 0x2e, 0x67, + 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, + 0x62, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x1d, 0x2e, 0x67, 0x72, 0x6f, + 0x75, 0x70, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, + 0x72, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x54, 0x0a, 0x13, 0x67, 0x65, 0x74, + 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x49, 0x6e, 0x66, 0x6f, + 0x12, 0x1d, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, + 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x1a, + 0x1e, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, + 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x12, + 0x48, 0x0a, 0x0f, 0x6b, 0x69, 0x63, 0x6b, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, + 0x65, 0x72, 0x12, 0x19, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x4b, 0x69, 0x63, 0x6b, 0x47, + 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x65, 0x71, 0x1a, 0x1a, 0x2e, + 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x4b, 0x69, 0x63, 0x6b, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, + 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x12, 0x51, 0x0a, 0x12, 0x67, 0x65, 0x74, + 0x4a, 0x6f, 0x69, 0x6e, 0x65, 0x64, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4c, 0x69, 0x73, 0x74, 0x12, + 0x1c, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x65, 0x74, 0x4a, 0x6f, 0x69, 0x6e, 0x65, + 0x64, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x1d, 0x2e, + 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x65, 0x74, 0x4a, 0x6f, 0x69, 0x6e, 0x65, 0x64, 0x47, + 0x72, 0x6f, 0x75, 0x70, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x4e, 0x0a, 0x11, + 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x54, 0x6f, 0x47, 0x72, 0x6f, 0x75, + 0x70, 0x12, 0x1b, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, + 0x55, 0x73, 0x65, 0x72, 0x54, 0x6f, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x1a, 0x1c, + 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x55, 0x73, 0x65, + 0x72, 0x54, 0x6f, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x12, 0x4e, 0x0a, 0x11, + 0x67, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x6c, 0x6c, 0x4d, 0x65, 0x6d, 0x62, 0x65, + 0x72, 0x12, 0x1b, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, + 0x75, 0x70, 0x41, 0x6c, 0x6c, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x65, 0x71, 0x1a, 0x1c, + 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, + 0x6c, 0x6c, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x42, 0x0f, 0x5a, 0x0d, + 0x2e, 0x2f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x3b, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x62, 0x06, 0x70, + 0x72, 0x6f, 0x74, 0x6f, 0x33, +} + +var ( + file_group_group_proto_rawDescOnce sync.Once + file_group_group_proto_rawDescData = file_group_group_proto_rawDesc +) + +func file_group_group_proto_rawDescGZIP() []byte { + file_group_group_proto_rawDescOnce.Do(func() { + file_group_group_proto_rawDescData = protoimpl.X.CompressGZIP(file_group_group_proto_rawDescData) + }) + return file_group_group_proto_rawDescData +} + +var file_group_group_proto_msgTypes = make([]protoimpl.MessageInfo, 33) +var file_group_group_proto_goTypes = []interface{}{ + (*CommonResp)(nil), // 0: group.CommonResp + (*GroupAddMemberInfo)(nil), // 1: group.GroupAddMemberInfo + (*CreateGroupReq)(nil), // 2: group.CreateGroupReq + (*CreateGroupResp)(nil), // 3: group.CreateGroupResp + (*GetGroupsInfoReq)(nil), // 4: group.GetGroupsInfoReq + (*GetGroupsInfoResp)(nil), // 5: group.GetGroupsInfoResp + (*SetGroupInfoReq)(nil), // 6: group.SetGroupInfoReq + (*SetGroupInfoResp)(nil), // 7: group.SetGroupInfoResp + (*GetGroupApplicationListReq)(nil), // 8: group.GetGroupApplicationListReq + (*GetGroupApplicationListResp)(nil), // 9: group.GetGroupApplicationListResp + (*GetUserReqApplicationListReq)(nil), // 10: group.GetUserReqApplicationListReq + (*GetUserReqApplicationListResp)(nil), // 11: group.GetUserReqApplicationListResp + (*TransferGroupOwnerReq)(nil), // 12: group.TransferGroupOwnerReq + (*TransferGroupOwnerResp)(nil), // 13: group.TransferGroupOwnerResp + (*JoinGroupReq)(nil), // 14: group.JoinGroupReq + (*JoinGroupResp)(nil), // 15: group.JoinGroupResp + (*GroupApplicationResponseReq)(nil), // 16: group.GroupApplicationResponseReq + (*GroupApplicationResponseResp)(nil), // 17: group.GroupApplicationResponseResp + (*QuitGroupReq)(nil), // 18: group.QuitGroupReq + (*QuitGroupResp)(nil), // 19: group.QuitGroupResp + (*GetGroupMemberListReq)(nil), // 20: group.GetGroupMemberListReq + (*GetGroupMemberListResp)(nil), // 21: group.GetGroupMemberListResp + (*GetGroupMembersInfoReq)(nil), // 22: group.GetGroupMembersInfoReq + (*GetGroupMembersInfoResp)(nil), // 23: group.GetGroupMembersInfoResp + (*KickGroupMemberReq)(nil), // 24: group.KickGroupMemberReq + (*Id2Result)(nil), // 25: group.Id2Result + (*KickGroupMemberResp)(nil), // 26: group.KickGroupMemberResp + (*GetJoinedGroupListReq)(nil), // 27: group.GetJoinedGroupListReq + (*GetJoinedGroupListResp)(nil), // 28: group.GetJoinedGroupListResp + (*InviteUserToGroupReq)(nil), // 29: group.InviteUserToGroupReq + (*InviteUserToGroupResp)(nil), // 30: group.InviteUserToGroupResp + (*GetGroupAllMemberReq)(nil), // 31: group.GetGroupAllMemberReq + (*GetGroupAllMemberResp)(nil), // 32: group.GetGroupAllMemberResp + (*sdk_ws.GroupInfo)(nil), // 33: server_api_params.GroupInfo + (*sdk_ws.GroupRequest)(nil), // 34: server_api_params.GroupRequest + (*sdk_ws.GroupMemberFullInfo)(nil), // 35: server_api_params.GroupMemberFullInfo +} +var file_group_group_proto_depIdxs = []int32{ + 1, // 0: group.CreateGroupReq.InitMemberList:type_name -> group.GroupAddMemberInfo + 33, // 1: group.CreateGroupReq.GroupInfo:type_name -> server_api_params.GroupInfo + 33, // 2: group.CreateGroupResp.GroupInfo:type_name -> server_api_params.GroupInfo + 33, // 3: group.GetGroupsInfoResp.GroupInfoList:type_name -> server_api_params.GroupInfo + 33, // 4: group.SetGroupInfoReq.GroupInfo:type_name -> server_api_params.GroupInfo + 0, // 5: group.SetGroupInfoResp.CommonResp:type_name -> group.CommonResp + 34, // 6: group.GetGroupApplicationListResp.GroupRequestList:type_name -> server_api_params.GroupRequest + 0, // 7: group.GetUserReqApplicationListResp.CommonResp:type_name -> group.CommonResp + 34, // 8: group.GetUserReqApplicationListResp.GroupRequestList:type_name -> server_api_params.GroupRequest + 0, // 9: group.TransferGroupOwnerResp.CommonResp:type_name -> group.CommonResp + 0, // 10: group.JoinGroupResp.CommonResp:type_name -> group.CommonResp + 0, // 11: group.GroupApplicationResponseResp.CommonResp:type_name -> group.CommonResp + 0, // 12: group.QuitGroupResp.CommonResp:type_name -> group.CommonResp + 35, // 13: group.GetGroupMemberListResp.memberList:type_name -> server_api_params.GroupMemberFullInfo + 35, // 14: group.GetGroupMembersInfoResp.memberList:type_name -> server_api_params.GroupMemberFullInfo + 25, // 15: group.KickGroupMemberResp.Id2ResultList:type_name -> group.Id2Result + 33, // 16: group.GetJoinedGroupListResp.GroupList:type_name -> server_api_params.GroupInfo + 25, // 17: group.InviteUserToGroupResp.Id2ResultList:type_name -> group.Id2Result + 35, // 18: group.GetGroupAllMemberResp.memberList:type_name -> server_api_params.GroupMemberFullInfo + 2, // 19: group.group.createGroup:input_type -> group.CreateGroupReq + 14, // 20: group.group.joinGroup:input_type -> group.JoinGroupReq + 18, // 21: group.group.quitGroup:input_type -> group.QuitGroupReq + 4, // 22: group.group.getGroupsInfo:input_type -> group.GetGroupsInfoReq + 6, // 23: group.group.setGroupInfo:input_type -> group.SetGroupInfoReq + 8, // 24: group.group.getGroupApplicationList:input_type -> group.GetGroupApplicationListReq + 10, // 25: group.group.getUserReqApplicationList:input_type -> group.GetUserReqApplicationListReq + 12, // 26: group.group.transferGroupOwner:input_type -> group.TransferGroupOwnerReq + 16, // 27: group.group.groupApplicationResponse:input_type -> group.GroupApplicationResponseReq + 20, // 28: group.group.getGroupMemberList:input_type -> group.GetGroupMemberListReq + 22, // 29: group.group.getGroupMembersInfo:input_type -> group.GetGroupMembersInfoReq + 24, // 30: group.group.kickGroupMember:input_type -> group.KickGroupMemberReq + 27, // 31: group.group.getJoinedGroupList:input_type -> group.GetJoinedGroupListReq + 29, // 32: group.group.inviteUserToGroup:input_type -> group.InviteUserToGroupReq + 31, // 33: group.group.getGroupAllMember:input_type -> group.GetGroupAllMemberReq + 3, // 34: group.group.createGroup:output_type -> group.CreateGroupResp + 15, // 35: group.group.joinGroup:output_type -> group.JoinGroupResp + 19, // 36: group.group.quitGroup:output_type -> group.QuitGroupResp + 5, // 37: group.group.getGroupsInfo:output_type -> group.GetGroupsInfoResp + 7, // 38: group.group.setGroupInfo:output_type -> group.SetGroupInfoResp + 9, // 39: group.group.getGroupApplicationList:output_type -> group.GetGroupApplicationListResp + 11, // 40: group.group.getUserReqApplicationList:output_type -> group.GetUserReqApplicationListResp + 13, // 41: group.group.transferGroupOwner:output_type -> group.TransferGroupOwnerResp + 17, // 42: group.group.groupApplicationResponse:output_type -> group.GroupApplicationResponseResp + 21, // 43: group.group.getGroupMemberList:output_type -> group.GetGroupMemberListResp + 23, // 44: group.group.getGroupMembersInfo:output_type -> group.GetGroupMembersInfoResp + 26, // 45: group.group.kickGroupMember:output_type -> group.KickGroupMemberResp + 28, // 46: group.group.getJoinedGroupList:output_type -> group.GetJoinedGroupListResp + 30, // 47: group.group.inviteUserToGroup:output_type -> group.InviteUserToGroupResp + 32, // 48: group.group.getGroupAllMember:output_type -> group.GetGroupAllMemberResp + 34, // [34:49] is the sub-list for method output_type + 19, // [19:34] is the sub-list for method input_type + 19, // [19:19] is the sub-list for extension type_name + 19, // [19:19] is the sub-list for extension extendee + 0, // [0:19] is the sub-list for field type_name +} + +func init() { file_group_group_proto_init() } +func file_group_group_proto_init() { + if File_group_group_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_group_group_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CommonResp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_group_group_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GroupAddMemberInfo); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_group_group_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CreateGroupReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_group_group_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*CreateGroupResp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_group_group_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetGroupsInfoReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_group_group_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetGroupsInfoResp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_group_group_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SetGroupInfoReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_group_group_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*SetGroupInfoResp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_group_group_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetGroupApplicationListReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_group_group_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetGroupApplicationListResp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_group_group_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetUserReqApplicationListReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_group_group_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetUserReqApplicationListResp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_group_group_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*TransferGroupOwnerReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_group_group_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*TransferGroupOwnerResp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_group_group_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*JoinGroupReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_group_group_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*JoinGroupResp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_group_group_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GroupApplicationResponseReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_group_group_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GroupApplicationResponseResp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_group_group_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*QuitGroupReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_group_group_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*QuitGroupResp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_group_group_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetGroupMemberListReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_group_group_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetGroupMemberListResp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_group_group_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetGroupMembersInfoReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_group_group_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetGroupMembersInfoResp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_group_group_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*KickGroupMemberReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_group_group_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*Id2Result); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_group_group_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*KickGroupMemberResp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_group_group_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetJoinedGroupListReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_group_group_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetJoinedGroupListResp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_group_group_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*InviteUserToGroupReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_group_group_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*InviteUserToGroupResp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_group_group_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetGroupAllMemberReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_group_group_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*GetGroupAllMemberResp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_group_group_proto_rawDesc, + NumEnums: 0, + NumMessages: 33, + NumExtensions: 0, + NumServices: 1, + }, + GoTypes: file_group_group_proto_goTypes, + DependencyIndexes: file_group_group_proto_depIdxs, + MessageInfos: file_group_group_proto_msgTypes, + }.Build() + File_group_group_proto = out.File + file_group_group_proto_rawDesc = nil + file_group_group_proto_goTypes = nil + file_group_group_proto_depIdxs = nil } // Reference imports to suppress errors if they are not otherwise used. var _ context.Context -var _ grpc.ClientConn +var _ grpc.ClientConnInterface // 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 Group service +const _ = grpc.SupportPackageIsVersion6 +// GroupClient is the client API for Group service. +// +// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream. type GroupClient interface { CreateGroup(ctx context.Context, in *CreateGroupReq, opts ...grpc.CallOption) (*CreateGroupResp, error) JoinGroup(ctx context.Context, in *JoinGroupReq, opts ...grpc.CallOption) (*JoinGroupResp, error) @@ -1773,6 +3025,7 @@ type GroupClient interface { GetGroupsInfo(ctx context.Context, in *GetGroupsInfoReq, opts ...grpc.CallOption) (*GetGroupsInfoResp, error) SetGroupInfo(ctx context.Context, in *SetGroupInfoReq, opts ...grpc.CallOption) (*SetGroupInfoResp, error) GetGroupApplicationList(ctx context.Context, in *GetGroupApplicationListReq, opts ...grpc.CallOption) (*GetGroupApplicationListResp, error) + GetUserReqApplicationList(ctx context.Context, in *GetUserReqApplicationListReq, opts ...grpc.CallOption) (*GetUserReqApplicationListResp, error) TransferGroupOwner(ctx context.Context, in *TransferGroupOwnerReq, opts ...grpc.CallOption) (*TransferGroupOwnerResp, error) GroupApplicationResponse(ctx context.Context, in *GroupApplicationResponseReq, opts ...grpc.CallOption) (*GroupApplicationResponseResp, error) GetGroupMemberList(ctx context.Context, in *GetGroupMemberListReq, opts ...grpc.CallOption) (*GetGroupMemberListResp, error) @@ -1784,16 +3037,16 @@ type GroupClient interface { } type groupClient struct { - cc *grpc.ClientConn + cc grpc.ClientConnInterface } -func NewGroupClient(cc *grpc.ClientConn) GroupClient { +func NewGroupClient(cc grpc.ClientConnInterface) GroupClient { return &groupClient{cc} } func (c *groupClient) CreateGroup(ctx context.Context, in *CreateGroupReq, opts ...grpc.CallOption) (*CreateGroupResp, error) { out := new(CreateGroupResp) - err := grpc.Invoke(ctx, "/group.group/createGroup", in, out, c.cc, opts...) + err := c.cc.Invoke(ctx, "/group.group/createGroup", in, out, opts...) if err != nil { return nil, err } @@ -1802,7 +3055,7 @@ func (c *groupClient) CreateGroup(ctx context.Context, in *CreateGroupReq, opts func (c *groupClient) JoinGroup(ctx context.Context, in *JoinGroupReq, opts ...grpc.CallOption) (*JoinGroupResp, error) { out := new(JoinGroupResp) - err := grpc.Invoke(ctx, "/group.group/joinGroup", in, out, c.cc, opts...) + err := c.cc.Invoke(ctx, "/group.group/joinGroup", in, out, opts...) if err != nil { return nil, err } @@ -1811,7 +3064,7 @@ func (c *groupClient) JoinGroup(ctx context.Context, in *JoinGroupReq, opts ...g func (c *groupClient) QuitGroup(ctx context.Context, in *QuitGroupReq, opts ...grpc.CallOption) (*QuitGroupResp, error) { out := new(QuitGroupResp) - err := grpc.Invoke(ctx, "/group.group/quitGroup", in, out, c.cc, opts...) + err := c.cc.Invoke(ctx, "/group.group/quitGroup", in, out, opts...) if err != nil { return nil, err } @@ -1820,7 +3073,7 @@ func (c *groupClient) QuitGroup(ctx context.Context, in *QuitGroupReq, opts ...g func (c *groupClient) GetGroupsInfo(ctx context.Context, in *GetGroupsInfoReq, opts ...grpc.CallOption) (*GetGroupsInfoResp, error) { out := new(GetGroupsInfoResp) - err := grpc.Invoke(ctx, "/group.group/getGroupsInfo", in, out, c.cc, opts...) + err := c.cc.Invoke(ctx, "/group.group/getGroupsInfo", in, out, opts...) if err != nil { return nil, err } @@ -1829,7 +3082,7 @@ func (c *groupClient) GetGroupsInfo(ctx context.Context, in *GetGroupsInfoReq, o func (c *groupClient) SetGroupInfo(ctx context.Context, in *SetGroupInfoReq, opts ...grpc.CallOption) (*SetGroupInfoResp, error) { out := new(SetGroupInfoResp) - err := grpc.Invoke(ctx, "/group.group/setGroupInfo", in, out, c.cc, opts...) + err := c.cc.Invoke(ctx, "/group.group/setGroupInfo", in, out, opts...) if err != nil { return nil, err } @@ -1838,7 +3091,16 @@ func (c *groupClient) SetGroupInfo(ctx context.Context, in *SetGroupInfoReq, opt func (c *groupClient) GetGroupApplicationList(ctx context.Context, in *GetGroupApplicationListReq, opts ...grpc.CallOption) (*GetGroupApplicationListResp, error) { out := new(GetGroupApplicationListResp) - err := grpc.Invoke(ctx, "/group.group/getGroupApplicationList", in, out, c.cc, opts...) + err := c.cc.Invoke(ctx, "/group.group/getGroupApplicationList", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +func (c *groupClient) GetUserReqApplicationList(ctx context.Context, in *GetUserReqApplicationListReq, opts ...grpc.CallOption) (*GetUserReqApplicationListResp, error) { + out := new(GetUserReqApplicationListResp) + err := c.cc.Invoke(ctx, "/group.group/getUserReqApplicationList", in, out, opts...) if err != nil { return nil, err } @@ -1847,7 +3109,7 @@ func (c *groupClient) GetGroupApplicationList(ctx context.Context, in *GetGroupA func (c *groupClient) TransferGroupOwner(ctx context.Context, in *TransferGroupOwnerReq, opts ...grpc.CallOption) (*TransferGroupOwnerResp, error) { out := new(TransferGroupOwnerResp) - err := grpc.Invoke(ctx, "/group.group/transferGroupOwner", in, out, c.cc, opts...) + err := c.cc.Invoke(ctx, "/group.group/transferGroupOwner", in, out, opts...) if err != nil { return nil, err } @@ -1856,7 +3118,7 @@ func (c *groupClient) TransferGroupOwner(ctx context.Context, in *TransferGroupO func (c *groupClient) GroupApplicationResponse(ctx context.Context, in *GroupApplicationResponseReq, opts ...grpc.CallOption) (*GroupApplicationResponseResp, error) { out := new(GroupApplicationResponseResp) - err := grpc.Invoke(ctx, "/group.group/groupApplicationResponse", in, out, c.cc, opts...) + err := c.cc.Invoke(ctx, "/group.group/groupApplicationResponse", in, out, opts...) if err != nil { return nil, err } @@ -1865,7 +3127,7 @@ func (c *groupClient) GroupApplicationResponse(ctx context.Context, in *GroupApp func (c *groupClient) GetGroupMemberList(ctx context.Context, in *GetGroupMemberListReq, opts ...grpc.CallOption) (*GetGroupMemberListResp, error) { out := new(GetGroupMemberListResp) - err := grpc.Invoke(ctx, "/group.group/getGroupMemberList", in, out, c.cc, opts...) + err := c.cc.Invoke(ctx, "/group.group/getGroupMemberList", in, out, opts...) if err != nil { return nil, err } @@ -1874,7 +3136,7 @@ func (c *groupClient) GetGroupMemberList(ctx context.Context, in *GetGroupMember func (c *groupClient) GetGroupMembersInfo(ctx context.Context, in *GetGroupMembersInfoReq, opts ...grpc.CallOption) (*GetGroupMembersInfoResp, error) { out := new(GetGroupMembersInfoResp) - err := grpc.Invoke(ctx, "/group.group/getGroupMembersInfo", in, out, c.cc, opts...) + err := c.cc.Invoke(ctx, "/group.group/getGroupMembersInfo", in, out, opts...) if err != nil { return nil, err } @@ -1883,7 +3145,7 @@ func (c *groupClient) GetGroupMembersInfo(ctx context.Context, in *GetGroupMembe func (c *groupClient) KickGroupMember(ctx context.Context, in *KickGroupMemberReq, opts ...grpc.CallOption) (*KickGroupMemberResp, error) { out := new(KickGroupMemberResp) - err := grpc.Invoke(ctx, "/group.group/kickGroupMember", in, out, c.cc, opts...) + err := c.cc.Invoke(ctx, "/group.group/kickGroupMember", in, out, opts...) if err != nil { return nil, err } @@ -1892,7 +3154,7 @@ func (c *groupClient) KickGroupMember(ctx context.Context, in *KickGroupMemberRe func (c *groupClient) GetJoinedGroupList(ctx context.Context, in *GetJoinedGroupListReq, opts ...grpc.CallOption) (*GetJoinedGroupListResp, error) { out := new(GetJoinedGroupListResp) - err := grpc.Invoke(ctx, "/group.group/getJoinedGroupList", in, out, c.cc, opts...) + err := c.cc.Invoke(ctx, "/group.group/getJoinedGroupList", in, out, opts...) if err != nil { return nil, err } @@ -1901,7 +3163,7 @@ func (c *groupClient) GetJoinedGroupList(ctx context.Context, in *GetJoinedGroup func (c *groupClient) InviteUserToGroup(ctx context.Context, in *InviteUserToGroupReq, opts ...grpc.CallOption) (*InviteUserToGroupResp, error) { out := new(InviteUserToGroupResp) - err := grpc.Invoke(ctx, "/group.group/inviteUserToGroup", in, out, c.cc, opts...) + err := c.cc.Invoke(ctx, "/group.group/inviteUserToGroup", in, out, opts...) if err != nil { return nil, err } @@ -1910,15 +3172,14 @@ func (c *groupClient) InviteUserToGroup(ctx context.Context, in *InviteUserToGro func (c *groupClient) GetGroupAllMember(ctx context.Context, in *GetGroupAllMemberReq, opts ...grpc.CallOption) (*GetGroupAllMemberResp, error) { out := new(GetGroupAllMemberResp) - err := grpc.Invoke(ctx, "/group.group/getGroupAllMember", in, out, c.cc, opts...) + err := c.cc.Invoke(ctx, "/group.group/getGroupAllMember", in, out, opts...) if err != nil { return nil, err } return out, nil } -// Server API for Group service - +// GroupServer is the server API for Group service. type GroupServer interface { CreateGroup(context.Context, *CreateGroupReq) (*CreateGroupResp, error) JoinGroup(context.Context, *JoinGroupReq) (*JoinGroupResp, error) @@ -1926,6 +3187,7 @@ type GroupServer interface { GetGroupsInfo(context.Context, *GetGroupsInfoReq) (*GetGroupsInfoResp, error) SetGroupInfo(context.Context, *SetGroupInfoReq) (*SetGroupInfoResp, error) GetGroupApplicationList(context.Context, *GetGroupApplicationListReq) (*GetGroupApplicationListResp, error) + GetUserReqApplicationList(context.Context, *GetUserReqApplicationListReq) (*GetUserReqApplicationListResp, error) TransferGroupOwner(context.Context, *TransferGroupOwnerReq) (*TransferGroupOwnerResp, error) GroupApplicationResponse(context.Context, *GroupApplicationResponseReq) (*GroupApplicationResponseResp, error) GetGroupMemberList(context.Context, *GetGroupMemberListReq) (*GetGroupMemberListResp, error) @@ -1936,6 +3198,56 @@ type GroupServer interface { GetGroupAllMember(context.Context, *GetGroupAllMemberReq) (*GetGroupAllMemberResp, error) } +// UnimplementedGroupServer can be embedded to have forward compatible implementations. +type UnimplementedGroupServer struct { +} + +func (*UnimplementedGroupServer) CreateGroup(context.Context, *CreateGroupReq) (*CreateGroupResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method CreateGroup not implemented") +} +func (*UnimplementedGroupServer) JoinGroup(context.Context, *JoinGroupReq) (*JoinGroupResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method JoinGroup not implemented") +} +func (*UnimplementedGroupServer) QuitGroup(context.Context, *QuitGroupReq) (*QuitGroupResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method QuitGroup not implemented") +} +func (*UnimplementedGroupServer) GetGroupsInfo(context.Context, *GetGroupsInfoReq) (*GetGroupsInfoResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetGroupsInfo not implemented") +} +func (*UnimplementedGroupServer) SetGroupInfo(context.Context, *SetGroupInfoReq) (*SetGroupInfoResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method SetGroupInfo not implemented") +} +func (*UnimplementedGroupServer) GetGroupApplicationList(context.Context, *GetGroupApplicationListReq) (*GetGroupApplicationListResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetGroupApplicationList not implemented") +} +func (*UnimplementedGroupServer) GetUserReqApplicationList(context.Context, *GetUserReqApplicationListReq) (*GetUserReqApplicationListResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetUserReqApplicationList not implemented") +} +func (*UnimplementedGroupServer) TransferGroupOwner(context.Context, *TransferGroupOwnerReq) (*TransferGroupOwnerResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method TransferGroupOwner not implemented") +} +func (*UnimplementedGroupServer) GroupApplicationResponse(context.Context, *GroupApplicationResponseReq) (*GroupApplicationResponseResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method GroupApplicationResponse not implemented") +} +func (*UnimplementedGroupServer) GetGroupMemberList(context.Context, *GetGroupMemberListReq) (*GetGroupMemberListResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetGroupMemberList not implemented") +} +func (*UnimplementedGroupServer) GetGroupMembersInfo(context.Context, *GetGroupMembersInfoReq) (*GetGroupMembersInfoResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetGroupMembersInfo not implemented") +} +func (*UnimplementedGroupServer) KickGroupMember(context.Context, *KickGroupMemberReq) (*KickGroupMemberResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method KickGroupMember not implemented") +} +func (*UnimplementedGroupServer) GetJoinedGroupList(context.Context, *GetJoinedGroupListReq) (*GetJoinedGroupListResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetJoinedGroupList not implemented") +} +func (*UnimplementedGroupServer) InviteUserToGroup(context.Context, *InviteUserToGroupReq) (*InviteUserToGroupResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method InviteUserToGroup not implemented") +} +func (*UnimplementedGroupServer) GetGroupAllMember(context.Context, *GetGroupAllMemberReq) (*GetGroupAllMemberResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method GetGroupAllMember not implemented") +} + func RegisterGroupServer(s *grpc.Server, srv GroupServer) { s.RegisterService(&_Group_serviceDesc, srv) } @@ -2048,6 +3360,24 @@ func _Group_GetGroupApplicationList_Handler(srv interface{}, ctx context.Context return interceptor(ctx, in, info, handler) } +func _Group_GetUserReqApplicationList_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(GetUserReqApplicationListReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(GroupServer).GetUserReqApplicationList(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/group.group/GetUserReqApplicationList", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(GroupServer).GetUserReqApplicationList(ctx, req.(*GetUserReqApplicationListReq)) + } + return interceptor(ctx, in, info, handler) +} + func _Group_TransferGroupOwner_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { in := new(TransferGroupOwnerReq) if err := dec(in); err != nil { @@ -2220,6 +3550,10 @@ var _Group_serviceDesc = grpc.ServiceDesc{ MethodName: "getGroupApplicationList", Handler: _Group_GetGroupApplicationList_Handler, }, + { + MethodName: "getUserReqApplicationList", + Handler: _Group_GetUserReqApplicationList_Handler, + }, { MethodName: "transferGroupOwner", Handler: _Group_TransferGroupOwner_Handler, @@ -2256,87 +3590,3 @@ var _Group_serviceDesc = grpc.ServiceDesc{ Streams: []grpc.StreamDesc{}, Metadata: "group/group.proto", } - -func init() { proto.RegisterFile("group/group.proto", fileDescriptor_group_a130b5186d308ee6) } - -var fileDescriptor_group_a130b5186d308ee6 = []byte{ - // 1246 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xc4, 0x58, 0x4b, 0x6f, 0x23, 0xc5, - 0x13, 0x57, 0xc7, 0x71, 0x76, 0x5d, 0x89, 0xf3, 0xe8, 0xbc, 0xfc, 0x9f, 0xf5, 0x3f, 0x64, 0x1b, - 0x69, 0x15, 0x21, 0x64, 0x8b, 0x20, 0xed, 0x81, 0x45, 0xa0, 0x38, 0x8f, 0x5d, 0x6f, 0x36, 0x89, - 0x32, 0x1b, 0x2e, 0x5c, 0x82, 0x37, 0xd3, 0x19, 0x0d, 0x19, 0xcf, 0x8c, 0xa7, 0xc7, 0x09, 0xe2, - 0xb2, 0xe2, 0xb2, 0x12, 0xe2, 0x02, 0xe2, 0xca, 0x85, 0x3b, 0x07, 0x0e, 0x9c, 0xb8, 0xf0, 0x39, - 0xf8, 0x14, 0x7c, 0x05, 0x34, 0xdd, 0x3d, 0xe3, 0x9e, 0x67, 0xb2, 0xb6, 0xc4, 0x5e, 0x2c, 0x75, - 0x55, 0xf5, 0xd4, 0xfb, 0x57, 0xd5, 0x86, 0x25, 0xd3, 0x77, 0x87, 0x5e, 0x9b, 0xff, 0xb6, 0x3c, - 0xdf, 0x0d, 0x5c, 0x5c, 0xe5, 0x07, 0xed, 0xe1, 0x89, 0x47, 0x9d, 0xf3, 0xee, 0x51, 0xdb, 0xbb, - 0x32, 0xdb, 0x9c, 0xd3, 0x66, 0xc6, 0xd5, 0xf9, 0x0d, 0x6b, 0xdf, 0x30, 0x21, 0x49, 0x3e, 0x03, - 0xd8, 0x75, 0xfb, 0x7d, 0xd7, 0xd1, 0x29, 0xf3, 0x70, 0x03, 0xee, 0xed, 0xfb, 0xfe, 0xae, 0x6b, - 0xd0, 0x06, 0xda, 0x44, 0x5b, 0x55, 0x3d, 0x3a, 0xe2, 0x35, 0x98, 0xd9, 0xf7, 0xfd, 0x23, 0x66, - 0x36, 0xa6, 0x36, 0xd1, 0x56, 0x4d, 0x97, 0x27, 0xf2, 0x1c, 0xf0, 0xd3, 0x50, 0xd7, 0x8e, 0x61, - 0x1c, 0xd1, 0xfe, 0x2b, 0xea, 0x77, 0x9d, 0x4b, 0x37, 0x94, 0xfe, 0x82, 0x51, 0xbf, 0xbb, 0xc7, - 0x3f, 0x53, 0xd3, 0xe5, 0x09, 0x37, 0xa1, 0xa6, 0xbb, 0x36, 0x7d, 0x41, 0xaf, 0xa9, 0xcd, 0x3f, - 0x54, 0xd5, 0x47, 0x04, 0xf2, 0x0f, 0x82, 0xf9, 0x5d, 0x9f, 0xf6, 0x02, 0xca, 0x3f, 0xa9, 0xd3, - 0x01, 0xde, 0x81, 0xf9, 0xae, 0x63, 0x05, 0xe2, 0xd3, 0x2f, 0x2c, 0x16, 0x34, 0xd0, 0x66, 0x65, - 0x6b, 0x76, 0xfb, 0x7f, 0x2d, 0xe1, 0x6e, 0x56, 0xb7, 0x9e, 0xba, 0x80, 0x3f, 0x81, 0x1a, 0x97, - 0x0a, 0x99, 0x5c, 0xe7, 0xec, 0x76, 0xb3, 0xc5, 0xa8, 0x7f, 0x4d, 0xfd, 0xf3, 0x9e, 0x67, 0x9d, - 0x7b, 0x3d, 0xbf, 0xd7, 0x67, 0xad, 0x58, 0x46, 0x1f, 0x89, 0xe3, 0x4d, 0x98, 0x3d, 0xf1, 0xa8, - 0xdf, 0x0b, 0x2c, 0xd7, 0xe9, 0xee, 0x35, 0x2a, 0xdc, 0x19, 0x95, 0x84, 0x35, 0xb8, 0x7f, 0xe2, - 0x49, 0x5f, 0xa7, 0x39, 0x3b, 0x3e, 0xf3, 0xdb, 0x37, 0x0e, 0xf5, 0x25, 0xbb, 0x2a, 0x6f, 0x8f, - 0x48, 0xe4, 0x35, 0x2c, 0x24, 0x1c, 0x1e, 0x27, 0x05, 0x49, 0x07, 0x2b, 0x6f, 0xe5, 0x20, 0xf1, - 0x61, 0xf1, 0x29, 0x0d, 0xf8, 0x99, 0x71, 0x1e, 0x1d, 0x84, 0x66, 0x0b, 0x81, 0xbd, 0x38, 0xe0, - 0x35, 0x5d, 0x25, 0xa5, 0xc3, 0x32, 0x55, 0x1e, 0x96, 0x4a, 0x32, 0x2c, 0xe4, 0x7b, 0x04, 0x4b, - 0x29, 0xa5, 0x63, 0xf9, 0xdd, 0x81, 0x7a, 0xec, 0x08, 0xb7, 0xb4, 0xc2, 0x4b, 0xa3, 0xdc, 0xf7, - 0xe4, 0x15, 0xf2, 0x03, 0x82, 0x85, 0x97, 0xd2, 0x96, 0xc8, 0xff, 0x44, 0x3c, 0xd1, 0xdb, 0x15, - 0x8c, 0xea, 0xf7, 0x54, 0x4e, 0x39, 0x94, 0x16, 0x13, 0xd9, 0x87, 0xc5, 0xa4, 0x31, 0xcc, 0xc3, - 0x1f, 0xa9, 0x0d, 0x2a, 0xcd, 0x59, 0x92, 0xd5, 0x3f, 0x62, 0xe8, 0x8a, 0x10, 0xf9, 0x16, 0xb4, - 0x28, 0xbe, 0x3b, 0x9e, 0x67, 0x5b, 0x17, 0xfc, 0xfb, 0xa1, 0xbf, 0xa1, 0x7b, 0xaa, 0x89, 0xa8, - 0xdc, 0xc4, 0x9c, 0xc4, 0x6e, 0x00, 0x1c, 0xf8, 0x6e, 0x3f, 0x91, 0x5a, 0x85, 0x42, 0x7e, 0x41, - 0xf0, 0xa0, 0x50, 0xf9, 0x58, 0x69, 0x3e, 0x84, 0xc5, 0x08, 0x0e, 0x86, 0x94, 0x05, 0x4a, 0xa6, - 0xdf, 0x2b, 0xca, 0x8a, 0x14, 0xd5, 0x33, 0x17, 0xc9, 0x5f, 0x08, 0x56, 0xcf, 0xfc, 0x9e, 0xc3, - 0x2e, 0xa9, 0xcf, 0x99, 0xbc, 0x1b, 0xc3, 0xb0, 0x34, 0xe0, 0x9e, 0x2c, 0x71, 0x19, 0x95, 0xe8, - 0x88, 0x1f, 0xc1, 0xfc, 0x89, 0x6d, 0xa8, 0x9d, 0x2c, 0x0c, 0x4c, 0x51, 0x43, 0xb9, 0x63, 0x7a, - 0xa3, 0xca, 0x89, 0xf0, 0xa4, 0xa8, 0xe9, 0x20, 0x4f, 0x97, 0x77, 0x4f, 0x35, 0xd5, 0x3d, 0x87, - 0xb0, 0x96, 0xe7, 0xc0, 0x78, 0x95, 0xf2, 0x06, 0xc1, 0xdc, 0x73, 0xd7, 0x72, 0x62, 0xbc, 0x2d, - 0x8e, 0xc2, 0x06, 0x80, 0x4e, 0x07, 0x47, 0x94, 0xb1, 0x9e, 0x49, 0x65, 0x04, 0x14, 0x4a, 0x59, - 0xc7, 0xdf, 0xee, 0x31, 0xe9, 0x40, 0x5d, 0xb1, 0x63, 0x3c, 0x67, 0xfe, 0x0e, 0x4b, 0x2f, 0x55, - 0x77, 0x21, 0xc3, 0x75, 0x18, 0x95, 0xb8, 0xa6, 0x5a, 0x81, 0xca, 0xe3, 0x9e, 0xee, 0x5e, 0x25, - 0x32, 0x95, 0x4c, 0x64, 0x94, 0x96, 0x98, 0x4e, 0xb7, 0x44, 0xc8, 0x7f, 0xd6, 0x73, 0x0c, 0x9b, - 0x1a, 0x61, 0x71, 0x8b, 0x7c, 0x2a, 0x14, 0x4c, 0x60, 0x4e, 0x9c, 0x74, 0xca, 0x86, 0x76, 0xd0, - 0x98, 0xe1, 0x7d, 0x91, 0xa0, 0x91, 0x53, 0x68, 0x16, 0xbb, 0x36, 0x5e, 0xb8, 0x2e, 0x61, 0xee, - 0x74, 0x68, 0x05, 0x77, 0x48, 0xfd, 0x64, 0x70, 0xdf, 0x81, 0xba, 0xa2, 0x67, 0x3c, 0x5b, 0x7f, - 0x45, 0xb0, 0x1a, 0xa1, 0xca, 0x68, 0xb4, 0x97, 0x5b, 0x3d, 0x11, 0x14, 0x87, 0x68, 0x74, 0x60, - 0xd9, 0x01, 0xf5, 0x79, 0x42, 0xab, 0xba, 0x3c, 0x85, 0xfa, 0x8e, 0xe9, 0x37, 0xc1, 0x4b, 0x3a, - 0xe0, 0x99, 0xac, 0xea, 0xd1, 0x91, 0xfc, 0x86, 0x60, 0x2d, 0xcf, 0xc6, 0xb1, 0x40, 0xef, 0x00, - 0xa0, 0x3f, 0xda, 0x79, 0x04, 0xdc, 0x3d, 0x2a, 0x82, 0x3b, 0xa1, 0xed, 0x60, 0x68, 0xdb, 0x7c, - 0x6a, 0x28, 0x37, 0x43, 0xcd, 0x8e, 0x34, 0x57, 0xf8, 0x11, 0x1d, 0xc9, 0x8f, 0x19, 0x73, 0xe3, - 0x05, 0xa0, 0x14, 0x04, 0x14, 0xb3, 0xa6, 0xf8, 0x66, 0xa0, 0xaa, 0x9b, 0x0c, 0x04, 0x7e, 0x46, - 0xb0, 0x9e, 0x6b, 0xd2, 0xbb, 0x0c, 0x21, 0xf9, 0x1d, 0x01, 0x3e, 0xb4, 0x2e, 0xae, 0x14, 0xb9, - 0xf2, 0x20, 0x7d, 0x00, 0x8b, 0xa1, 0x3c, 0x35, 0x84, 0xe3, 0x4a, 0xa8, 0x32, 0xf4, 0xd0, 0x78, - 0x9d, 0xf6, 0x98, 0xeb, 0xc8, 0x70, 0xc9, 0x53, 0x3a, 0x58, 0xd5, 0xf2, 0x96, 0x9b, 0x49, 0xb5, - 0xdc, 0x13, 0xa8, 0x75, 0x8d, 0x6d, 0x01, 0x1d, 0x85, 0xbb, 0x38, 0x57, 0xcd, 0x01, 0x47, 0x2c, - 0xe2, 0xf2, 0x44, 0x5e, 0xc3, 0x72, 0xc6, 0xdd, 0xb1, 0x12, 0xf0, 0x18, 0xea, 0xb1, 0x15, 0x4a, - 0x0e, 0x16, 0x65, 0xab, 0xc7, 0x3c, 0x3d, 0x29, 0x46, 0x86, 0xbc, 0xd7, 0xc3, 0x71, 0x40, 0x0d, - 0x6e, 0x45, 0xd4, 0xeb, 0x49, 0xa0, 0x45, 0x19, 0xa0, 0xdd, 0x84, 0x59, 0x37, 0x8b, 0x53, 0xee, - 0x1d, 0x71, 0xea, 0x8d, 0x68, 0x88, 0x8c, 0xde, 0x89, 0x76, 0xf2, 0x3b, 0xef, 0xa5, 0x23, 0x71, - 0xf2, 0x07, 0x82, 0x95, 0xae, 0x73, 0x6d, 0x05, 0x34, 0xb4, 0xec, 0xcc, 0x8d, 0x11, 0xfa, 0x76, - 0x1c, 0x2e, 0x1e, 0x52, 0xa3, 0x42, 0x9b, 0x4e, 0x14, 0xda, 0x87, 0xb0, 0x24, 0x74, 0xa9, 0xd5, - 0x5a, 0xe5, 0xd5, 0x9a, 0x65, 0x94, 0x16, 0xdd, 0x77, 0x08, 0x56, 0x73, 0xcc, 0xfe, 0x4f, 0x4b, - 0xc7, 0x81, 0x95, 0x78, 0xf9, 0xb4, 0xed, 0xbb, 0x34, 0xeb, 0x64, 0x0b, 0xfb, 0x4f, 0xca, 0x5c, - 0x52, 0x14, 0xbe, 0x4b, 0xbc, 0xda, 0xfe, 0xf3, 0x3e, 0x88, 0xe7, 0x3f, 0xfe, 0x14, 0x66, 0x2f, - 0x46, 0xaf, 0x4b, 0xbc, 0x1a, 0xcd, 0xd8, 0xc4, 0x13, 0x5b, 0x5b, 0xcb, 0x23, 0x33, 0x0f, 0x3f, - 0x86, 0xda, 0xd7, 0xd1, 0x4a, 0x86, 0x97, 0xa5, 0x90, 0xba, 0x2c, 0x6a, 0x2b, 0x59, 0xa2, 0xb8, - 0x37, 0x88, 0xe6, 0x7d, 0x7c, 0x4f, 0xdd, 0x34, 0xe2, 0x7b, 0xc9, 0xb5, 0xa0, 0x03, 0x75, 0x53, - 0x7d, 0x15, 0xe2, 0xf5, 0xe8, 0x8d, 0x9f, 0x7a, 0xa0, 0x6a, 0x8d, 0x7c, 0x06, 0xf3, 0xf0, 0xe7, - 0x30, 0xc7, 0x94, 0x07, 0x14, 0x8e, 0x7c, 0x4b, 0x3d, 0xf1, 0xb4, 0xf5, 0x5c, 0x3a, 0xf3, 0xf0, - 0x57, 0xb0, 0x6e, 0xe6, 0xbf, 0x5e, 0xf0, 0xc3, 0x94, 0xd6, 0xec, 0xd3, 0x4a, 0x23, 0xb7, 0x89, - 0x30, 0x0f, 0x9f, 0x02, 0x0e, 0x32, 0xfb, 0x3b, 0x6e, 0xca, 0x9b, 0xb9, 0x6f, 0x13, 0xed, 0xff, - 0x25, 0x5c, 0xe6, 0xe1, 0x0b, 0x68, 0x98, 0x05, 0xcb, 0x21, 0x26, 0x89, 0x3f, 0x4a, 0x72, 0x17, - 0x63, 0xed, 0xfd, 0x5b, 0x65, 0x84, 0xdd, 0x66, 0x66, 0xbb, 0x89, 0xed, 0xce, 0x5d, 0xce, 0x62, - 0xbb, 0x0b, 0xd6, 0xa2, 0x33, 0x58, 0x36, 0xb3, 0xe3, 0x1e, 0xe7, 0xdf, 0x8a, 0xb3, 0xbf, 0x51, - 0xc6, 0x66, 0x1e, 0x7e, 0x06, 0x0b, 0x57, 0xc9, 0xf9, 0x85, 0xa3, 0x7f, 0x8b, 0xb2, 0x63, 0x5c, - 0xd3, 0x8a, 0x58, 0xb1, 0xcb, 0xa9, 0x81, 0xa0, 0xba, 0x9c, 0x9d, 0x51, 0xaa, 0xcb, 0x79, 0x93, - 0xe4, 0x18, 0x96, 0xac, 0x34, 0x46, 0xe2, 0x07, 0x11, 0xac, 0xe5, 0x80, 0xbe, 0xd6, 0x2c, 0x66, - 0x8a, 0xef, 0x99, 0x69, 0xfc, 0x89, 0xbf, 0x97, 0x07, 0x85, 0x5a, 0xb3, 0x98, 0xc9, 0xbc, 0xce, - 0xc2, 0x97, 0xf5, 0x96, 0xf8, 0x27, 0xf1, 0x09, 0xff, 0x7d, 0x35, 0xc3, 0xff, 0x26, 0xfc, 0xf8, - 0xdf, 0x00, 0x00, 0x00, 0xff, 0xff, 0xf6, 0x24, 0x19, 0x44, 0x65, 0x14, 0x00, 0x00, -} diff --git a/pkg/proto/group/group.proto b/pkg/proto/group/group.proto index 6ba7c52ba..378df2549 100644 --- a/pkg/proto/group/group.proto +++ b/pkg/proto/group/group.proto @@ -61,6 +61,17 @@ message GetGroupApplicationListResp { repeated server_api_params.GroupRequest GroupRequestList = 3; } +message GetUserReqApplicationListReq{ + string UserID = 1; + string OpUserID = 2; + string OperationID = 3; +} + +message GetUserReqApplicationListResp{ + CommonResp CommonResp = 1; + repeated server_api_params.GroupRequest GroupRequestList = 2; +} + message TransferGroupOwnerReq { string GroupID = 1; @@ -204,6 +215,7 @@ service group{ rpc getGroupsInfo(GetGroupsInfoReq) returns(GetGroupsInfoResp); rpc setGroupInfo(SetGroupInfoReq) returns(SetGroupInfoResp); rpc getGroupApplicationList(GetGroupApplicationListReq) returns(GetGroupApplicationListResp); + rpc getUserReqApplicationList(GetUserReqApplicationListReq) returns(GetUserReqApplicationListResp); rpc transferGroupOwner(TransferGroupOwnerReq) returns(TransferGroupOwnerResp); rpc groupApplicationResponse(GroupApplicationResponseReq) returns(GroupApplicationResponseResp); rpc getGroupMemberList(GetGroupMemberListReq) returns(GetGroupMemberListResp); From 17dd73834fb713c5ebe31031360cdd944def73b7 Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Wed, 9 Feb 2022 20:25:25 +0800 Subject: [PATCH 605/814] Refactor code --- internal/rpc/msg/group_notification.go | 2 ++ 1 file changed, 2 insertions(+) diff --git a/internal/rpc/msg/group_notification.go b/internal/rpc/msg/group_notification.go index 9fa9783ea..58898b6de 100644 --- a/internal/rpc/msg/group_notification.go +++ b/internal/rpc/msg/group_notification.go @@ -148,6 +148,8 @@ func groupNotification(contentType int32, m proto.Message, sendID, groupID, recv tips.DefaultTips = toNickname + " " + cn.MemberKicked.DefaultTips.Tips case constant.MemberInvitedNotification: // tips.DefaultTips = toNickname + " " + cn.MemberInvited.DefaultTips.Tips + case constant.MemberEnterNotification: + tips.DefaultTips = toNickname + " " + cn.MemberInvited.DefaultTips.Tips default: log.Error(operationID, "contentType failed ", contentType) return From e455b3ff0037c06bd97134ce4b1d2664fe62a413 Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Thu, 10 Feb 2022 09:17:48 +0800 Subject: [PATCH 606/814] Refactor code --- internal/rpc/msg/friend_notification.go | 2 ++ 1 file changed, 2 insertions(+) diff --git a/internal/rpc/msg/friend_notification.go b/internal/rpc/msg/friend_notification.go index b06f3a222..ce791967e 100644 --- a/internal/rpc/msg/friend_notification.go +++ b/internal/rpc/msg/friend_notification.go @@ -57,6 +57,8 @@ func friendNotification(commID *pbFriend.CommID, contentType int32, m proto.Mess tips.DefaultTips = cn.BlackAdded.DefaultTips.Tips case constant.BlackDeletedNotification: tips.DefaultTips = cn.BlackDeleted.DefaultTips.Tips + toUserNickname + case constant.UserInfoUpdatedNotification: + tips.DefaultTips = cn.UserInfoUpdated.DefaultTips.Tips default: log.Error(commID.OperationID, "contentType failed ", contentType) return From a3f712306e7b64a2d1c40cc6c6e5da86002012c6 Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Thu, 10 Feb 2022 09:31:50 +0800 Subject: [PATCH 607/814] Refactor code --- internal/rpc/user/user.go | 2 ++ 1 file changed, 2 insertions(+) diff --git a/internal/rpc/user/user.go b/internal/rpc/user/user.go index 147bf2d86..7494a2e51 100644 --- a/internal/rpc/user/user.go +++ b/internal/rpc/user/user.go @@ -236,8 +236,10 @@ func (s *userServer) UpdateUserInfo(ctx context.Context, req *pbUser.UpdateUserI return &pbUser.UpdateUserInfoResp{CommonResp: &pbUser.CommonResp{}}, nil } for _, v := range RpcResp.FriendInfoList { + log.Info(req.OperationID, "UserInfoUpdatedNotification ", req.UserInfo.UserID, v.FriendUser.UserID) chat.UserInfoUpdatedNotification(req.OperationID, req.UserInfo.UserID, v.FriendUser.UserID) } chat.UserInfoUpdatedNotification(req.OperationID, req.UserInfo.UserID, req.OpUserID) + log.Info(req.OperationID, "UserInfoUpdatedNotification ", req.UserInfo.UserID, req.OpUserID) return &pbUser.UpdateUserInfoResp{CommonResp: &pbUser.CommonResp{}}, nil } From b35d5ded7704430ac4de7396919655196fceb857 Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Thu, 10 Feb 2022 09:35:24 +0800 Subject: [PATCH 608/814] Refactor code --- internal/rpc/msg/friend_notification.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/internal/rpc/msg/friend_notification.go b/internal/rpc/msg/friend_notification.go index ce791967e..231906fa8 100644 --- a/internal/rpc/msg/friend_notification.go +++ b/internal/rpc/msg/friend_notification.go @@ -151,6 +151,6 @@ func BlackDeletedNotification(req *pbFriend.RemoveBlacklistReq) { func UserInfoUpdatedNotification(operationID, userID string, needNotifiedUserID string) { selfInfoUpdatedTips := open_im_sdk.UserInfoUpdatedTips{UserID: userID} - commID := pbFriend.CommID{FromUserID: userID, ToUserID: userID, OpUserID: needNotifiedUserID, OperationID: operationID} + commID := pbFriend.CommID{FromUserID: userID, ToUserID: needNotifiedUserID, OpUserID: userID, OperationID: operationID} friendNotification(&commID, constant.UserInfoUpdatedNotification, &selfInfoUpdatedTips) } From f574017b66511f627b727196bb3d83f0a759f123 Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Thu, 10 Feb 2022 11:40:16 +0800 Subject: [PATCH 609/814] db --- pkg/common/db/mysql.go | 35 +++++++++++++++++------------------ 1 file changed, 17 insertions(+), 18 deletions(-) diff --git a/pkg/common/db/mysql.go b/pkg/common/db/mysql.go index ba38f57e9..808cb8fc8 100644 --- a/pkg/common/db/mysql.go +++ b/pkg/common/db/mysql.go @@ -17,33 +17,32 @@ type mysqlDB struct { func initMysqlDB() { //When there is no open IM database, connect to the mysql built-in database to create openIM database - dsn := fmt.Sprintf("%s:%s@tcp(%s)/%s?charset=utf8mb4&parseTime=true&loc=Local", - config.Config.Mysql.DBUserName, config.Config.Mysql.DBPassword, config.Config.Mysql.DBAddress[0], "mysql") + //dsn := fmt.Sprintf("%s:%s@tcp(%s)/%s?charset=utf8mb4&parseTime=true&loc=Local", + // config.Config.Mysql.DBUserName, config.Config.Mysql.DBPassword, config.Config.Mysql.DBAddress[0], "mysql") var db *gorm.DB - var err1 error - db, err := gorm.Open("mysql", dsn) - if err != nil { - log.NewError("0", "Open failed ", err.Error(), dsn) - } - if err != nil { - time.Sleep(time.Duration(30) * time.Second) - db, err1 = gorm.Open("mysql", dsn) - if err1 != nil { - log.NewError("0", "Open failed ", err1.Error(), dsn) - panic(err1.Error()) - } - } + //db, err := gorm.Open("mysql", dsn) + //if err != nil { + // log.NewError("0", "Open failed ", err.Error(), dsn) + //} + //if err != nil { + // time.Sleep(time.Duration(30) * time.Second) + // db, err1 = gorm.Open("mysql", dsn) + // if err1 != nil { + // log.NewError("0", "Open failed ", err1.Error(), dsn) + // panic(err1.Error()) + // } + //} //Check the database and table during initialization - sql := fmt.Sprintf("CREATE DATABASE IF NOT EXISTS %s default charset utf8 COLLATE utf8_general_ci;", config.Config.Mysql.DBDatabaseName+"test1") - err = db.Exec(sql).Error + sql := fmt.Sprintf("CREATE DATABASE IF NOT EXISTS %s default charset utf8 COLLATE utf8_general_ci;", config.Config.Mysql.DBDatabaseName) + err := db.Exec(sql).Error if err != nil { log.NewError("0", "Exec failed ", err.Error(), sql) panic(err.Error()) } db.Close() - dsn = fmt.Sprintf("%s:%s@tcp(%s)/%s?charset=utf8mb4&parseTime=true&loc=Local", + dsn := fmt.Sprintf("%s:%s@tcp(%s)/%s?charset=utf8mb4&parseTime=true&loc=Local", config.Config.Mysql.DBUserName, config.Config.Mysql.DBPassword, config.Config.Mysql.DBAddress[0], config.Config.Mysql.DBDatabaseName) db, err = gorm.Open("mysql", dsn) if err != nil { From b7a8f6c2a1beb12e7201d3ff8aaeee52c6626420 Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Thu, 10 Feb 2022 11:41:34 +0800 Subject: [PATCH 610/814] db --- pkg/common/db/mysql.go | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/pkg/common/db/mysql.go b/pkg/common/db/mysql.go index 808cb8fc8..d075510b5 100644 --- a/pkg/common/db/mysql.go +++ b/pkg/common/db/mysql.go @@ -95,7 +95,10 @@ func initMysqlDB() { log.NewInfo("CreateTable Black") db.CreateTable(&Black{}) } - + if !db.HasTable(&ChatLog{}) { + log.NewInfo("CreateTable Black") + db.CreateTable(&ChatLog{}) + } return sqlTable := "CREATE TABLE IF NOT EXISTS `user` (" + From 41dd808c9a901712886359389910bcfeffc6819f Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Thu, 10 Feb 2022 11:47:44 +0800 Subject: [PATCH 611/814] db --- pkg/common/db/mysql.go | 17 ++++++++--------- 1 file changed, 8 insertions(+), 9 deletions(-) diff --git a/pkg/common/db/mysql.go b/pkg/common/db/mysql.go index d075510b5..bb5823860 100644 --- a/pkg/common/db/mysql.go +++ b/pkg/common/db/mysql.go @@ -33,23 +33,22 @@ func initMysqlDB() { // } //} + dsn := fmt.Sprintf("%s:%s@tcp(%s)/%s?charset=utf8mb4&parseTime=true&loc=Local", + config.Config.Mysql.DBUserName, config.Config.Mysql.DBPassword, config.Config.Mysql.DBAddress[0], config.Config.Mysql.DBDatabaseName) + db, err := gorm.Open("mysql", dsn) + if err != nil { + log.NewError("0", "Open failed ", err.Error(), dsn) + panic(err.Error()) + } //Check the database and table during initialization sql := fmt.Sprintf("CREATE DATABASE IF NOT EXISTS %s default charset utf8 COLLATE utf8_general_ci;", config.Config.Mysql.DBDatabaseName) - err := db.Exec(sql).Error + err = db.Exec(sql).Error if err != nil { log.NewError("0", "Exec failed ", err.Error(), sql) panic(err.Error()) } db.Close() - dsn := fmt.Sprintf("%s:%s@tcp(%s)/%s?charset=utf8mb4&parseTime=true&loc=Local", - config.Config.Mysql.DBUserName, config.Config.Mysql.DBPassword, config.Config.Mysql.DBAddress[0], config.Config.Mysql.DBDatabaseName) - db, err = gorm.Open("mysql", dsn) - if err != nil { - log.NewError("0", "Open failed ", err.Error(), dsn) - panic(err.Error()) - } - log.NewInfo("open db ok ", dsn) db.AutoMigrate(&Friend{}, &FriendRequest{}, From 84a21970273384fbb62d8717a197ee8af4a80aea Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Thu, 10 Feb 2022 11:57:03 +0800 Subject: [PATCH 612/814] db --- pkg/common/db/mysql.go | 45 +++++++++++++++++++++--------------------- 1 file changed, 22 insertions(+), 23 deletions(-) diff --git a/pkg/common/db/mysql.go b/pkg/common/db/mysql.go index bb5823860..ba38f57e9 100644 --- a/pkg/common/db/mysql.go +++ b/pkg/common/db/mysql.go @@ -17,31 +17,25 @@ type mysqlDB struct { func initMysqlDB() { //When there is no open IM database, connect to the mysql built-in database to create openIM database - //dsn := fmt.Sprintf("%s:%s@tcp(%s)/%s?charset=utf8mb4&parseTime=true&loc=Local", - // config.Config.Mysql.DBUserName, config.Config.Mysql.DBPassword, config.Config.Mysql.DBAddress[0], "mysql") - var db *gorm.DB - //db, err := gorm.Open("mysql", dsn) - //if err != nil { - // log.NewError("0", "Open failed ", err.Error(), dsn) - //} - //if err != nil { - // time.Sleep(time.Duration(30) * time.Second) - // db, err1 = gorm.Open("mysql", dsn) - // if err1 != nil { - // log.NewError("0", "Open failed ", err1.Error(), dsn) - // panic(err1.Error()) - // } - //} - dsn := fmt.Sprintf("%s:%s@tcp(%s)/%s?charset=utf8mb4&parseTime=true&loc=Local", - config.Config.Mysql.DBUserName, config.Config.Mysql.DBPassword, config.Config.Mysql.DBAddress[0], config.Config.Mysql.DBDatabaseName) + config.Config.Mysql.DBUserName, config.Config.Mysql.DBPassword, config.Config.Mysql.DBAddress[0], "mysql") + var db *gorm.DB + var err1 error db, err := gorm.Open("mysql", dsn) if err != nil { log.NewError("0", "Open failed ", err.Error(), dsn) - panic(err.Error()) } + if err != nil { + time.Sleep(time.Duration(30) * time.Second) + db, err1 = gorm.Open("mysql", dsn) + if err1 != nil { + log.NewError("0", "Open failed ", err1.Error(), dsn) + panic(err1.Error()) + } + } + //Check the database and table during initialization - sql := fmt.Sprintf("CREATE DATABASE IF NOT EXISTS %s default charset utf8 COLLATE utf8_general_ci;", config.Config.Mysql.DBDatabaseName) + sql := fmt.Sprintf("CREATE DATABASE IF NOT EXISTS %s default charset utf8 COLLATE utf8_general_ci;", config.Config.Mysql.DBDatabaseName+"test1") err = db.Exec(sql).Error if err != nil { log.NewError("0", "Exec failed ", err.Error(), sql) @@ -49,6 +43,14 @@ func initMysqlDB() { } db.Close() + dsn = fmt.Sprintf("%s:%s@tcp(%s)/%s?charset=utf8mb4&parseTime=true&loc=Local", + config.Config.Mysql.DBUserName, config.Config.Mysql.DBPassword, config.Config.Mysql.DBAddress[0], config.Config.Mysql.DBDatabaseName) + db, err = gorm.Open("mysql", dsn) + if err != nil { + log.NewError("0", "Open failed ", err.Error(), dsn) + panic(err.Error()) + } + log.NewInfo("open db ok ", dsn) db.AutoMigrate(&Friend{}, &FriendRequest{}, @@ -94,10 +96,7 @@ func initMysqlDB() { log.NewInfo("CreateTable Black") db.CreateTable(&Black{}) } - if !db.HasTable(&ChatLog{}) { - log.NewInfo("CreateTable Black") - db.CreateTable(&ChatLog{}) - } + return sqlTable := "CREATE TABLE IF NOT EXISTS `user` (" + From e02ca2f7e363ee2d4f5602a59313f08306aa9eb1 Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Thu, 10 Feb 2022 12:01:00 +0800 Subject: [PATCH 613/814] db --- pkg/common/db/mysql.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkg/common/db/mysql.go b/pkg/common/db/mysql.go index ba38f57e9..712ba5b2d 100644 --- a/pkg/common/db/mysql.go +++ b/pkg/common/db/mysql.go @@ -35,7 +35,7 @@ func initMysqlDB() { } //Check the database and table during initialization - sql := fmt.Sprintf("CREATE DATABASE IF NOT EXISTS %s default charset utf8 COLLATE utf8_general_ci;", config.Config.Mysql.DBDatabaseName+"test1") + sql := fmt.Sprintf("CREATE DATABASE IF NOT EXISTS %s default charset utf8 COLLATE utf8_general_ci;", config.Config.Mysql.DBDatabaseName) err = db.Exec(sql).Error if err != nil { log.NewError("0", "Exec failed ", err.Error(), sql) From 2c67845dd6f4ee1bfbfa49405e0b9292ac2032c8 Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Thu, 10 Feb 2022 12:28:06 +0800 Subject: [PATCH 614/814] Refactor code --- config/config.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config/config.yaml b/config/config.yaml index 04f14f854..be5937300 100644 --- a/config/config.yaml +++ b/config/config.yaml @@ -226,7 +226,7 @@ notification: groupApplicationAccepted: conversation: - reliabilityLevel: 3 + reliabilityLevel: 2 unreadCount: true offlinePush: switch: false From 548a27fe48a072257522e4eeecad290121b643fb Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Thu, 10 Feb 2022 16:14:18 +0800 Subject: [PATCH 615/814] Refactor code --- internal/rpc/msg/group_notification.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/internal/rpc/msg/group_notification.go b/internal/rpc/msg/group_notification.go index 58898b6de..0b2fc80a3 100644 --- a/internal/rpc/msg/group_notification.go +++ b/internal/rpc/msg/group_notification.go @@ -403,7 +403,7 @@ func MemberEnterNotification(req *pbGroup.GroupApplicationResponseReq) { log.Error(req.OperationID, "setGroupInfo failed ", err.Error(), req.GroupID, MemberEnterTips.Group) return } - if err := setOpUserInfo(req.OpUserID, req.GroupID, MemberEnterTips.EntrantUser); err != nil { + if err := setOpUserInfo(req.FromUserID, req.GroupID, MemberEnterTips.EntrantUser); err != nil { log.Error(req.OperationID, "setOpUserInfo failed ", err.Error(), req.OpUserID, req.GroupID, MemberEnterTips.EntrantUser) return } From 3d5b8287cebe24727b999e60d618324d9044fcba Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Thu, 10 Feb 2022 16:15:57 +0800 Subject: [PATCH 616/814] Refactor code --- internal/rpc/msg/group_notification.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/internal/rpc/msg/group_notification.go b/internal/rpc/msg/group_notification.go index 0b2fc80a3..b252c6513 100644 --- a/internal/rpc/msg/group_notification.go +++ b/internal/rpc/msg/group_notification.go @@ -403,7 +403,7 @@ func MemberEnterNotification(req *pbGroup.GroupApplicationResponseReq) { log.Error(req.OperationID, "setGroupInfo failed ", err.Error(), req.GroupID, MemberEnterTips.Group) return } - if err := setOpUserInfo(req.FromUserID, req.GroupID, MemberEnterTips.EntrantUser); err != nil { + if err := setGroupMemberInfo(req.GroupID, req.FromUserID, MemberEnterTips.EntrantUser); err != nil { log.Error(req.OperationID, "setOpUserInfo failed ", err.Error(), req.OpUserID, req.GroupID, MemberEnterTips.EntrantUser) return } From f67f2a31ee076d506eb1ef2f6b661c4eeefe502c Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Thu, 10 Feb 2022 16:44:58 +0800 Subject: [PATCH 617/814] Refactor code --- internal/api/group/group.go | 1 + pkg/base_info/group_api_struct.go | 16 ++++++++++------ 2 files changed, 11 insertions(+), 6 deletions(-) diff --git a/internal/api/group/group.go b/internal/api/group/group.go index 8a5edf918..c3a228744 100644 --- a/internal/api/group/group.go +++ b/internal/api/group/group.go @@ -245,6 +245,7 @@ func CreateGroup(c *gin.Context) { c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": err.Error()}) return } + // req := &rpc.CreateGroupReq{GroupInfo: &open_im_sdk.GroupInfo{}} utils.CopyStructFields(req.GroupInfo, ¶ms) diff --git a/pkg/base_info/group_api_struct.go b/pkg/base_info/group_api_struct.go index b6db4dcc2..6dc9668c6 100644 --- a/pkg/base_info/group_api_struct.go +++ b/pkg/base_info/group_api_struct.go @@ -81,11 +81,15 @@ type GetGroupAllMemberResp struct { } type CreateGroupReq struct { - MemberList []*GroupAddMemberInfo `json:"memberList" binding:"required"` - OwnerUserID string `json:"ownerUserID" binding:"required"` - GroupName string `json:"groupName"` - GroupType int32 `json:"groupType"` - OperationID string `json:"operationID" binding:"required"` + MemberList []*GroupAddMemberInfo `json:"memberList" binding:"required"` + OwnerUserID string `json:"ownerUserID" binding:"required"` + GroupType int32 `json:"groupType"` + GroupName string `json:"groupName"` + Notification string `json:"notification"` + Introduction string `json:"introduction"` + FaceURL string `json:"faceURL"` + Ex string `json:"ex"` + OperationID string `json:"operationID" binding:"required"` } type CreateGroupResp struct { CommResp @@ -105,7 +109,7 @@ type GetGroupApplicationListResp struct { type GetUserReqGroupApplicationListReq struct { OperationID string `json:"operationID" binding:"required"` - UserID string `json:"userID" binding:"required"` + UserID string `json:"userID" binding:"required"` } type GetUserRespGroupApplicationResp struct { From 6eb44cb9d89c624b3d8606154509560c778e4e56 Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Thu, 10 Feb 2022 16:52:18 +0800 Subject: [PATCH 618/814] db --- pkg/common/db/model_struct.go | 2 +- pkg/common/db/mysql_model/im_mysql_msg_model/chat_log_model.go | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/pkg/common/db/model_struct.go b/pkg/common/db/model_struct.go index 25e3bf0cd..0e36add1f 100644 --- a/pkg/common/db/model_struct.go +++ b/pkg/common/db/model_struct.go @@ -181,7 +181,7 @@ type ChatLog struct { SessionType int32 `gorm:"column:session_type" json:"sessionType"` MsgFrom int32 `gorm:"column:msg_from" json:"msgFrom"` ContentType int32 `gorm:"column:content_type" json:"contentType"` - Content string `gorm:"column:content;type:varchar(1000)" json:"content"` + Content []byte `gorm:"column:content;type:varchar(1000)" json:"content"` Status int32 `gorm:"column:status" json:"status"` Seq uint32 `gorm:"column:seq;index:index_seq;default:0" json:"seq"` SendTime time.Time `gorm:"column:send_time" json:"sendTime"` diff --git a/pkg/common/db/mysql_model/im_mysql_msg_model/chat_log_model.go b/pkg/common/db/mysql_model/im_mysql_msg_model/chat_log_model.go index 96d03a7c7..cea33b1a2 100644 --- a/pkg/common/db/mysql_model/im_mysql_msg_model/chat_log_model.go +++ b/pkg/common/db/mysql_model/im_mysql_msg_model/chat_log_model.go @@ -27,7 +27,7 @@ func InsertMessageToChatLog(msg pbMsg.MsgDataToMQ) error { case constant.SingleChatType: chatLog.RecvID = msg.MsgData.RecvID } - chatLog.Content = string(msg.MsgData.Content) + chatLog.Content = msg.MsgData.Content chatLog.CreateTime = utils.UnixMillSecondToTime(msg.MsgData.CreateTime) chatLog.SendTime = utils.UnixMillSecondToTime(msg.MsgData.SendTime) return dbConn.Table("chat_logs").Create(chatLog).Error From c99cbec3dfea97624788dd1ad734ae43d4495ab6 Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Thu, 10 Feb 2022 17:13:19 +0800 Subject: [PATCH 619/814] db --- pkg/common/constant/constant.go | 2 ++ pkg/common/db/model_struct.go | 2 +- .../im_mysql_msg_model/chat_log_model.go | 17 ++++++++++++++++- 3 files changed, 19 insertions(+), 2 deletions(-) diff --git a/pkg/common/constant/constant.go b/pkg/common/constant/constant.go index 0e2bfe4da..81e124476 100644 --- a/pkg/common/constant/constant.go +++ b/pkg/common/constant/constant.go @@ -44,6 +44,7 @@ const ( GroupMsg = 201 //SysRelated + NotificationBegin = 1000 FriendApplicationApprovedNotification = 1201 //add_friend_response FriendApplicationRejectedNotification = 1202 //add_friend_response @@ -66,6 +67,7 @@ const ( MemberKickedNotification = 1508 MemberInvitedNotification = 1509 MemberEnterNotification = 1510 + NotificationEnd = 2000 //MsgFrom UserMsgType = 100 diff --git a/pkg/common/db/model_struct.go b/pkg/common/db/model_struct.go index 0e36add1f..25e3bf0cd 100644 --- a/pkg/common/db/model_struct.go +++ b/pkg/common/db/model_struct.go @@ -181,7 +181,7 @@ type ChatLog struct { SessionType int32 `gorm:"column:session_type" json:"sessionType"` MsgFrom int32 `gorm:"column:msg_from" json:"msgFrom"` ContentType int32 `gorm:"column:content_type" json:"contentType"` - Content []byte `gorm:"column:content;type:varchar(1000)" json:"content"` + Content string `gorm:"column:content;type:varchar(1000)" json:"content"` Status int32 `gorm:"column:status" json:"status"` Seq uint32 `gorm:"column:seq;index:index_seq;default:0" json:"seq"` SendTime time.Time `gorm:"column:send_time" json:"sendTime"` diff --git a/pkg/common/db/mysql_model/im_mysql_msg_model/chat_log_model.go b/pkg/common/db/mysql_model/im_mysql_msg_model/chat_log_model.go index cea33b1a2..fef4c1fb2 100644 --- a/pkg/common/db/mysql_model/im_mysql_msg_model/chat_log_model.go +++ b/pkg/common/db/mysql_model/im_mysql_msg_model/chat_log_model.go @@ -10,7 +10,10 @@ import ( "Open_IM/pkg/common/constant" "Open_IM/pkg/common/db" pbMsg "Open_IM/pkg/proto/chat" + "Open_IM/pkg/proto/sdk_ws" "Open_IM/pkg/utils" + "github.com/golang/protobuf/jsonpb" + "github.com/golang/protobuf/proto" "github.com/jinzhu/copier" ) @@ -27,7 +30,19 @@ func InsertMessageToChatLog(msg pbMsg.MsgDataToMQ) error { case constant.SingleChatType: chatLog.RecvID = msg.MsgData.RecvID } - chatLog.Content = msg.MsgData.Content + if msg.MsgData.ContentType >= constant.NotificationBegin && msg.MsgData.ContentType <= constant.NotificationEnd { + var tips server_api_params.TipsComm + _ = proto.Unmarshal(msg.MsgData.Content, &tips) + marshaler := jsonpb.Marshaler{ + OrigName: true, + EnumsAsInts: false, + EmitDefaults: false, + } + chatLog.Content, _ = marshaler.MarshalToString(&tips) + + } else { + chatLog.Content = string(msg.MsgData.Content) + } chatLog.CreateTime = utils.UnixMillSecondToTime(msg.MsgData.CreateTime) chatLog.SendTime = utils.UnixMillSecondToTime(msg.MsgData.SendTime) return dbConn.Table("chat_logs").Create(chatLog).Error From bf6efc3530b3a783eb44b545b871bc51c49ac0b2 Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Thu, 10 Feb 2022 18:32:02 +0800 Subject: [PATCH 620/814] Refactor code --- internal/rpc/msg/friend_notification.go | 9 ++ internal/rpc/msg/group_notification.go | 8 ++ pkg/proto/sdk_ws/ws.pb.go | 161 +++++++++++++----------- pkg/proto/sdk_ws/ws.proto | 1 + 4 files changed, 103 insertions(+), 76 deletions(-) diff --git a/internal/rpc/msg/friend_notification.go b/internal/rpc/msg/friend_notification.go index 231906fa8..91d926bf9 100644 --- a/internal/rpc/msg/friend_notification.go +++ b/internal/rpc/msg/friend_notification.go @@ -9,6 +9,7 @@ import ( pbFriend "Open_IM/pkg/proto/friend" open_im_sdk "Open_IM/pkg/proto/sdk_ws" "Open_IM/pkg/utils" + "github.com/golang/protobuf/jsonpb" "github.com/golang/protobuf/proto" ) @@ -34,6 +35,14 @@ func friendNotification(commID *pbFriend.CommID, contentType int32, m proto.Mess return } + marshaler := jsonpb.Marshaler{ + OrigName: true, + EnumsAsInts: false, + EmitDefaults: false, + } + + tips.JsonDetail, _ = marshaler.MarshalToString(m) + fromUserNickname, toUserNickname, err := getFromToUserNickname(commID.FromUserID, commID.ToUserID) if err != nil { log.Error(commID.OperationID, "getFromToUserNickname failed ", err.Error(), commID.FromUserID, commID.ToUserID) diff --git a/internal/rpc/msg/group_notification.go b/internal/rpc/msg/group_notification.go index b252c6513..16c81600a 100644 --- a/internal/rpc/msg/group_notification.go +++ b/internal/rpc/msg/group_notification.go @@ -10,6 +10,7 @@ import ( pbGroup "Open_IM/pkg/proto/group" open_im_sdk "Open_IM/pkg/proto/sdk_ws" "Open_IM/pkg/utils" + "github.com/golang/protobuf/jsonpb" "github.com/golang/protobuf/proto" ) @@ -109,6 +110,13 @@ func groupNotification(contentType int32, m proto.Message, sendID, groupID, recv log.Error(operationID, "Marshal failed ", err.Error(), m.String()) return } + marshaler := jsonpb.Marshaler{ + OrigName: true, + EnumsAsInts: false, + EmitDefaults: false, + } + + tips.JsonDetail, _ = marshaler.MarshalToString(m) from, err := imdb.GetUserByUserID(sendID) if err != nil { diff --git a/pkg/proto/sdk_ws/ws.pb.go b/pkg/proto/sdk_ws/ws.pb.go index c99165093..59c51c7f6 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_dd0597f97f3a9074, []int{0} + return fileDescriptor_ws_36d5733e27207cb1, []int{0} } func (m *GroupInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupInfo.Unmarshal(m, b) @@ -164,7 +164,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_dd0597f97f3a9074, []int{1} + return fileDescriptor_ws_36d5733e27207cb1, []int{1} } func (m *GroupMemberFullInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupMemberFullInfo.Unmarshal(m, b) @@ -269,7 +269,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_dd0597f97f3a9074, []int{2} + return fileDescriptor_ws_36d5733e27207cb1, []int{2} } func (m *PublicUserInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_PublicUserInfo.Unmarshal(m, b) @@ -344,7 +344,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_dd0597f97f3a9074, []int{3} + return fileDescriptor_ws_36d5733e27207cb1, []int{3} } func (m *UserInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_UserInfo.Unmarshal(m, b) @@ -451,7 +451,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_dd0597f97f3a9074, []int{4} + return fileDescriptor_ws_36d5733e27207cb1, []int{4} } func (m *FriendInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FriendInfo.Unmarshal(m, b) @@ -536,7 +536,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_dd0597f97f3a9074, []int{5} + return fileDescriptor_ws_36d5733e27207cb1, []int{5} } func (m *BlackInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_BlackInfo.Unmarshal(m, b) @@ -617,7 +617,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_dd0597f97f3a9074, []int{6} + return fileDescriptor_ws_36d5733e27207cb1, []int{6} } func (m *GroupRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupRequest.Unmarshal(m, b) @@ -725,7 +725,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_dd0597f97f3a9074, []int{7} + return fileDescriptor_ws_36d5733e27207cb1, []int{7} } func (m *FriendRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FriendRequest.Unmarshal(m, b) @@ -863,7 +863,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_dd0597f97f3a9074, []int{8} + return fileDescriptor_ws_36d5733e27207cb1, []int{8} } func (m *PullMessageBySeqListResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_PullMessageBySeqListResp.Unmarshal(m, b) @@ -917,7 +917,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_dd0597f97f3a9074, []int{9} + return fileDescriptor_ws_36d5733e27207cb1, []int{9} } func (m *PullMessageBySeqListReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_PullMessageBySeqListReq.Unmarshal(m, b) @@ -968,7 +968,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_dd0597f97f3a9074, []int{10} + return fileDescriptor_ws_36d5733e27207cb1, []int{10} } func (m *GetMaxAndMinSeqReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetMaxAndMinSeqReq.Unmarshal(m, b) @@ -1000,7 +1000,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_dd0597f97f3a9074, []int{11} + return fileDescriptor_ws_36d5733e27207cb1, []int{11} } func (m *GetMaxAndMinSeqResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetMaxAndMinSeqResp.Unmarshal(m, b) @@ -1047,7 +1047,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_dd0597f97f3a9074, []int{12} + return fileDescriptor_ws_36d5733e27207cb1, []int{12} } func (m *UserSendMsgResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_UserSendMsgResp.Unmarshal(m, b) @@ -1116,7 +1116,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_dd0597f97f3a9074, []int{13} + return fileDescriptor_ws_36d5733e27207cb1, []int{13} } func (m *MsgData) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MsgData.Unmarshal(m, b) @@ -1277,7 +1277,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_dd0597f97f3a9074, []int{14} + return fileDescriptor_ws_36d5733e27207cb1, []int{14} } func (m *OfflinePushInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_OfflinePushInfo.Unmarshal(m, b) @@ -1335,6 +1335,7 @@ func (m *OfflinePushInfo) GetIOSBadgeCount() bool { type TipsComm struct { Detail []byte `protobuf:"bytes,1,opt,name=detail,proto3" json:"detail,omitempty"` DefaultTips string `protobuf:"bytes,2,opt,name=defaultTips" json:"defaultTips,omitempty"` + JsonDetail string `protobuf:"bytes,3,opt,name=jsonDetail" json:"jsonDetail,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -1344,7 +1345,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_dd0597f97f3a9074, []int{15} + return fileDescriptor_ws_36d5733e27207cb1, []int{15} } func (m *TipsComm) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_TipsComm.Unmarshal(m, b) @@ -1378,6 +1379,13 @@ func (m *TipsComm) GetDefaultTips() string { return "" } +func (m *TipsComm) GetJsonDetail() string { + if m != nil { + return m.JsonDetail + } + return "" +} + // OnGroupCreated() type GroupCreatedTips struct { Group *GroupInfo `protobuf:"bytes,1,opt,name=group" json:"group,omitempty"` @@ -1394,7 +1402,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_dd0597f97f3a9074, []int{16} + return fileDescriptor_ws_36d5733e27207cb1, []int{16} } func (m *GroupCreatedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupCreatedTips.Unmarshal(m, b) @@ -1463,7 +1471,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_dd0597f97f3a9074, []int{17} + return fileDescriptor_ws_36d5733e27207cb1, []int{17} } func (m *GroupInfoSetTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupInfoSetTips.Unmarshal(m, b) @@ -1518,7 +1526,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_dd0597f97f3a9074, []int{18} + return fileDescriptor_ws_36d5733e27207cb1, []int{18} } func (m *JoinGroupApplicationTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_JoinGroupApplicationTips.Unmarshal(m, b) @@ -1574,7 +1582,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_dd0597f97f3a9074, []int{19} + return fileDescriptor_ws_36d5733e27207cb1, []int{19} } func (m *MemberQuitTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MemberQuitTips.Unmarshal(m, b) @@ -1629,7 +1637,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_dd0597f97f3a9074, []int{20} + return fileDescriptor_ws_36d5733e27207cb1, []int{20} } func (m *GroupApplicationAcceptedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupApplicationAcceptedTips.Unmarshal(m, b) @@ -1684,7 +1692,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_dd0597f97f3a9074, []int{21} + return fileDescriptor_ws_36d5733e27207cb1, []int{21} } func (m *GroupApplicationRejectedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupApplicationRejectedTips.Unmarshal(m, b) @@ -1740,7 +1748,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_dd0597f97f3a9074, []int{22} + return fileDescriptor_ws_36d5733e27207cb1, []int{22} } func (m *GroupOwnerTransferredTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupOwnerTransferredTips.Unmarshal(m, b) @@ -1803,7 +1811,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_dd0597f97f3a9074, []int{23} + return fileDescriptor_ws_36d5733e27207cb1, []int{23} } func (m *MemberKickedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MemberKickedTips.Unmarshal(m, b) @@ -1866,7 +1874,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_dd0597f97f3a9074, []int{24} + return fileDescriptor_ws_36d5733e27207cb1, []int{24} } func (m *MemberInvitedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MemberInvitedTips.Unmarshal(m, b) @@ -1928,7 +1936,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_dd0597f97f3a9074, []int{25} + return fileDescriptor_ws_36d5733e27207cb1, []int{25} } func (m *MemberEnterTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MemberEnterTips.Unmarshal(m, b) @@ -1982,7 +1990,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_dd0597f97f3a9074, []int{26} + return fileDescriptor_ws_36d5733e27207cb1, []int{26} } func (m *FriendApplication) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FriendApplication.Unmarshal(m, b) @@ -2035,7 +2043,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_dd0597f97f3a9074, []int{27} + return fileDescriptor_ws_36d5733e27207cb1, []int{27} } func (m *FromToUserID) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FromToUserID.Unmarshal(m, b) @@ -2081,7 +2089,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_dd0597f97f3a9074, []int{28} + return fileDescriptor_ws_36d5733e27207cb1, []int{28} } func (m *FriendApplicationTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FriendApplicationTips.Unmarshal(m, b) @@ -2121,7 +2129,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_dd0597f97f3a9074, []int{29} + return fileDescriptor_ws_36d5733e27207cb1, []int{29} } func (m *FriendApplicationApprovedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FriendApplicationApprovedTips.Unmarshal(m, b) @@ -2168,7 +2176,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_dd0597f97f3a9074, []int{30} + return fileDescriptor_ws_36d5733e27207cb1, []int{30} } func (m *FriendApplicationRejectedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FriendApplicationRejectedTips.Unmarshal(m, b) @@ -2216,7 +2224,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_dd0597f97f3a9074, []int{31} + return fileDescriptor_ws_36d5733e27207cb1, []int{31} } func (m *FriendAddedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FriendAddedTips.Unmarshal(m, b) @@ -2269,7 +2277,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_dd0597f97f3a9074, []int{32} + return fileDescriptor_ws_36d5733e27207cb1, []int{32} } func (m *FriendDeletedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FriendDeletedTips.Unmarshal(m, b) @@ -2307,7 +2315,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_dd0597f97f3a9074, []int{33} + return fileDescriptor_ws_36d5733e27207cb1, []int{33} } func (m *BlackAddedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_BlackAddedTips.Unmarshal(m, b) @@ -2345,7 +2353,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_dd0597f97f3a9074, []int{34} + return fileDescriptor_ws_36d5733e27207cb1, []int{34} } func (m *BlackDeletedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_BlackDeletedTips.Unmarshal(m, b) @@ -2383,7 +2391,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_dd0597f97f3a9074, []int{35} + return fileDescriptor_ws_36d5733e27207cb1, []int{35} } func (m *FriendInfoChangedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FriendInfoChangedTips.Unmarshal(m, b) @@ -2422,7 +2430,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_dd0597f97f3a9074, []int{36} + return fileDescriptor_ws_36d5733e27207cb1, []int{36} } func (m *UserInfoUpdatedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_UserInfoUpdatedTips.Unmarshal(m, b) @@ -2490,10 +2498,10 @@ func init() { proto.RegisterType((*UserInfoUpdatedTips)(nil), "server_api_params.UserInfoUpdatedTips") } -func init() { proto.RegisterFile("sdk_ws/ws.proto", fileDescriptor_ws_dd0597f97f3a9074) } +func init() { proto.RegisterFile("sdk_ws/ws.proto", fileDescriptor_ws_36d5733e27207cb1) } -var fileDescriptor_ws_dd0597f97f3a9074 = []byte{ - // 1901 bytes of a gzipped FileDescriptorProto +var fileDescriptor_ws_36d5733e27207cb1 = []byte{ + // 1911 bytes of a gzipped FileDescriptorProto 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x59, 0x4f, 0x6f, 0x23, 0x4b, 0x11, 0xd7, 0xd8, 0xb1, 0x63, 0x97, 0xe3, 0x38, 0x3b, 0xfb, 0x58, 0xcc, 0xb2, 0x6f, 0x09, 0xa3, 0xa7, 0xc7, 0x0a, 0x89, 0x20, 0x2d, 0x42, 0x82, 0x45, 0x80, 0xb2, 0xc9, 0x26, 0xec, 0x23, 0x4e, @@ -2577,40 +2585,41 @@ var fileDescriptor_ws_dd0597f97f3a9074 = []byte{ 0x75, 0x1a, 0xa5, 0x31, 0xd1, 0x1a, 0x14, 0xe1, 0xba, 0xb0, 0x16, 0x12, 0x31, 0xd2, 0x29, 0x8c, 0xbf, 0x75, 0x27, 0xab, 0x17, 0xe3, 0xa2, 0xbc, 0xe8, 0x9d, 0x0c, 0xa5, 0xa2, 0x21, 0xcb, 0x68, 0x58, 0x5c, 0xf4, 0x0c, 0x9e, 0x4c, 0xa1, 0xe8, 0x64, 0xf8, 0x3c, 0x08, 0x27, 0x44, 0x5d, 0xc7, - 0x1a, 0x68, 0x93, 0xcd, 0xf4, 0xf6, 0xa1, 0x75, 0x16, 0x25, 0x62, 0x8f, 0x4d, 0xa7, 0x32, 0x10, - 0x21, 0x49, 0xe5, 0xac, 0xea, 0x60, 0xbc, 0x35, 0x25, 0x53, 0x25, 0x24, 0xe3, 0x20, 0x8b, 0x53, - 0xb9, 0x34, 0x2f, 0x5c, 0x83, 0xe5, 0xfd, 0xbd, 0x06, 0x5b, 0x38, 0x18, 0xec, 0x61, 0x58, 0x43, - 0xc9, 0x74, 0x9f, 0x42, 0x03, 0xcb, 0x4c, 0x0f, 0x23, 0x37, 0x0f, 0x13, 0x6a, 0xa9, 0xfb, 0x23, - 0x68, 0xb2, 0x04, 0x47, 0x4a, 0x35, 0x81, 0x7c, 0x7c, 0x9d, 0x90, 0x7d, 0xa7, 0xf3, 0xb5, 0x94, - 0x7b, 0x00, 0xa0, 0xae, 0x9b, 0x47, 0x65, 0x6b, 0x5e, 0x56, 0x87, 0x21, 0x29, 0xc1, 0x2b, 0xda, - 0xac, 0x71, 0xb1, 0xb3, 0x99, 0xee, 0x31, 0x6c, 0xa2, 0xd9, 0x27, 0xf9, 0x54, 0x89, 0x18, 0x2f, - 0xbf, 0x63, 0x45, 0xda, 0xfb, 0xbd, 0xa3, 0x61, 0x94, 0x5f, 0x87, 0x04, 0xb1, 0x35, 0x20, 0x71, - 0x56, 0x82, 0xe4, 0x21, 0xb4, 0xa6, 0x99, 0x31, 0xe4, 0xd6, 0xfd, 0x82, 0x2e, 0x43, 0x54, 0x5f, - 0x3a, 0x44, 0xde, 0x1f, 0x1c, 0xe8, 0x7f, 0xc2, 0x22, 0x8a, 0x1f, 0x76, 0x93, 0x24, 0xd6, 0xaf, - 0x0f, 0x2b, 0xc7, 0xfc, 0xc7, 0xd0, 0x0e, 0x94, 0x1a, 0x9a, 0xea, 0xb0, 0x2f, 0x31, 0xb8, 0x96, - 0x32, 0xc6, 0x0c, 0x52, 0x37, 0x67, 0x10, 0xef, 0x4f, 0x0e, 0x6c, 0x2a, 0x50, 0x7e, 0x96, 0x45, - 0xe9, 0xca, 0xf6, 0x3d, 0x87, 0xd6, 0x2c, 0x8b, 0xd2, 0x15, 0xb2, 0xb2, 0x90, 0x9b, 0xcf, 0xa7, - 0xfa, 0x82, 0x7c, 0xf2, 0xfe, 0xec, 0xc0, 0xa3, 0x2a, 0xac, 0xbb, 0xa3, 0x11, 0x49, 0xee, 0xb2, - 0xa4, 0xac, 0x19, 0x6c, 0xad, 0x32, 0x83, 0x2d, 0x34, 0xd9, 0x27, 0x9f, 0x91, 0xd1, 0x17, 0xd7, - 0xe4, 0x5f, 0xd7, 0xe0, 0x2b, 0x87, 0x45, 0xe1, 0x9d, 0xf1, 0x80, 0x8a, 0x31, 0xe1, 0xfc, 0x0e, - 0xed, 0x3d, 0x82, 0x2e, 0x25, 0x6f, 0x4a, 0x9b, 0x74, 0x39, 0x2e, 0xab, 0xc6, 0x16, 0x5e, 0xae, - 0x77, 0x79, 0xff, 0x75, 0x60, 0x4b, 0xe9, 0xf9, 0x69, 0x34, 0xba, 0xbc, 0x43, 0xe7, 0x8f, 0x61, - 0xf3, 0x12, 0x2d, 0x90, 0xd4, 0x0a, 0x6d, 0xbb, 0x22, 0xbd, 0xa4, 0xfb, 0xff, 0x73, 0xe0, 0x9e, - 0x52, 0xf4, 0x92, 0x5e, 0x45, 0x77, 0x99, 0xac, 0xa7, 0xd0, 0x8b, 0x94, 0x09, 0x2b, 0x02, 0x50, - 0x15, 0x5f, 0x12, 0x81, 0xbf, 0x38, 0xd0, 0x53, 0x9a, 0x5e, 0xd0, 0x94, 0xf0, 0x95, 0xfd, 0xff, - 0x09, 0x74, 0x08, 0x4d, 0x79, 0x40, 0x57, 0xe9, 0x90, 0xa6, 0xe8, 0x92, 0x4d, 0xf2, 0x12, 0xee, - 0xa9, 0x2b, 0xba, 0xd1, 0x71, 0xe4, 0xac, 0x1a, 0x84, 0x6a, 0xfc, 0x74, 0x50, 0x28, 0x27, 0xed, - 0xc7, 0x17, 0xfd, 0xaa, 0x5e, 0x3e, 0xbe, 0x3c, 0x06, 0x08, 0xc2, 0xf0, 0x53, 0xc6, 0xc3, 0x88, - 0xe6, 0xc7, 0x87, 0xc1, 0xf1, 0x3e, 0x81, 0x0d, 0x39, 0x2d, 0x9f, 0x19, 0x97, 0xed, 0x1b, 0x9f, - 0x03, 0xcc, 0x8b, 0x7a, 0xcd, 0xbe, 0xa8, 0x7b, 0xbf, 0x80, 0x2f, 0xcd, 0x19, 0x8e, 0xa8, 0xef, - 0xa9, 0x37, 0x84, 0x7c, 0x13, 0x0d, 0xfe, 0xd7, 0x16, 0x40, 0x68, 0xda, 0xe2, 0x5b, 0x42, 0xde, - 0xaf, 0x1c, 0xf8, 0x70, 0x4e, 0xfd, 0x6e, 0x92, 0x70, 0x76, 0xa5, 0x93, 0xfb, 0x36, 0xb6, 0xb1, - 0x5b, 0x6b, 0xad, 0xda, 0x5a, 0x17, 0x1a, 0x61, 0x1d, 0x07, 0xef, 0xc1, 0x88, 0x3f, 0x3a, 0xd0, - 0xd3, 0x46, 0x84, 0xa1, 0xde, 0xf6, 0xbb, 0xd0, 0x54, 0xef, 0x8f, 0x7a, 0xc3, 0x0f, 0x17, 0x6e, - 0x98, 0xbf, 0x9b, 0xfa, 0x7a, 0xf1, 0x7c, 0x46, 0xd6, 0x16, 0x8d, 0x81, 0xdf, 0x2f, 0x3a, 0xc0, - 0xd2, 0x2f, 0x84, 0x5a, 0xc0, 0xfb, 0x79, 0x9e, 0xcc, 0xfb, 0x24, 0x26, 0xb7, 0x89, 0x91, 0xf7, - 0x0a, 0x36, 0xf1, 0x31, 0xb4, 0xc4, 0xe0, 0x56, 0xd4, 0x7e, 0x0a, 0x5b, 0xa8, 0xf6, 0xd6, 0xed, - 0x2d, 0xaa, 0x43, 0xe2, 0xb3, 0x77, 0x11, 0xd0, 0xc9, 0x6d, 0x6a, 0xff, 0x16, 0xdc, 0xcf, 0xb1, - 0x7f, 0x95, 0x84, 0xc5, 0x15, 0xe5, 0x9a, 0x87, 0x97, 0xf3, 0x26, 0xfe, 0x99, 0xf7, 0x9d, 0xff, - 0x07, 0x00, 0x00, 0xff, 0xff, 0x5a, 0xb7, 0x8c, 0x6a, 0xdf, 0x1b, 0x00, 0x00, + 0x1a, 0x68, 0x93, 0xcd, 0xf4, 0x42, 0x68, 0x9d, 0x45, 0x89, 0xd8, 0x63, 0xd3, 0xa9, 0x0c, 0x44, + 0x48, 0x52, 0x39, 0xab, 0x3a, 0x18, 0x6f, 0x4d, 0xc9, 0x54, 0x09, 0xc9, 0x38, 0xc8, 0xe2, 0x54, + 0x2e, 0xcd, 0x0b, 0xd7, 0x60, 0xe1, 0x45, 0x44, 0x30, 0xba, 0xaf, 0xa4, 0x95, 0x9d, 0x06, 0xc7, + 0xfb, 0x7b, 0x0d, 0xb6, 0x70, 0x70, 0xd8, 0xc3, 0xb0, 0x87, 0x28, 0xf4, 0x14, 0x1a, 0x58, 0x86, + 0x7a, 0x58, 0xb9, 0x79, 0xd8, 0x50, 0x4b, 0xdd, 0x1f, 0x41, 0x93, 0x25, 0x38, 0x72, 0xaa, 0x09, + 0xe5, 0xe3, 0xeb, 0x84, 0xec, 0x3b, 0x9f, 0xaf, 0xa5, 0xdc, 0x03, 0x00, 0x75, 0x1d, 0x3d, 0x2a, + 0x5b, 0xf7, 0xb2, 0x3a, 0x0c, 0x49, 0x09, 0x6e, 0xd1, 0x86, 0x8d, 0x8b, 0x9f, 0xcd, 0x74, 0x8f, + 0x61, 0x13, 0xcd, 0x3e, 0xc9, 0xa7, 0x4e, 0x8c, 0xc1, 0xf2, 0x3b, 0x56, 0xa4, 0xbd, 0xdf, 0x3b, + 0x1a, 0x46, 0xf9, 0x75, 0x48, 0x14, 0xf6, 0x25, 0x24, 0xce, 0x4a, 0x90, 0x3c, 0x84, 0xd6, 0x34, + 0x33, 0x86, 0xe0, 0xba, 0x5f, 0xd0, 0x65, 0x88, 0xea, 0x4b, 0x87, 0xc8, 0xfb, 0x83, 0x03, 0xfd, + 0x4f, 0x58, 0x44, 0xf1, 0xc3, 0x6e, 0x92, 0xc4, 0xfa, 0x75, 0x62, 0xe5, 0x98, 0xff, 0x18, 0xda, + 0x81, 0x52, 0x43, 0x53, 0x1d, 0xf6, 0x25, 0x06, 0xdb, 0x52, 0xc6, 0x98, 0x51, 0xea, 0xe6, 0x8c, + 0xe2, 0xfd, 0xc9, 0x81, 0x4d, 0x05, 0xca, 0xcf, 0xb2, 0x28, 0x5d, 0xd9, 0xbe, 0xe7, 0xd0, 0x9a, + 0x65, 0x51, 0xba, 0x42, 0x56, 0x16, 0x72, 0xf3, 0xf9, 0x54, 0x5f, 0x90, 0x4f, 0xde, 0x9f, 0x1d, + 0x78, 0x54, 0x85, 0x75, 0x77, 0x34, 0x22, 0xc9, 0x5d, 0x96, 0x94, 0x35, 0xa3, 0xad, 0x55, 0x66, + 0xb4, 0x85, 0x26, 0xfb, 0xe4, 0x33, 0x32, 0xfa, 0xe2, 0x9a, 0xfc, 0xeb, 0x1a, 0x7c, 0xe5, 0xb0, + 0x28, 0xbc, 0x33, 0x1e, 0x50, 0x31, 0x26, 0x9c, 0xdf, 0xa1, 0xbd, 0x47, 0xd0, 0xa5, 0xe4, 0x4d, + 0x69, 0x93, 0x2e, 0xc7, 0x65, 0xd5, 0xd8, 0xc2, 0xcb, 0xf5, 0x2e, 0xef, 0xbf, 0x0e, 0x6c, 0x29, + 0x3d, 0x3f, 0x8d, 0x46, 0x97, 0x77, 0xe8, 0xfc, 0x31, 0x6c, 0x5e, 0xa2, 0x05, 0x92, 0x5a, 0xa1, + 0x6d, 0x57, 0xa4, 0x97, 0x74, 0xff, 0x7f, 0x0e, 0xdc, 0x53, 0x8a, 0x5e, 0xd2, 0xab, 0xe8, 0x2e, + 0x93, 0xf5, 0x14, 0x7a, 0x91, 0x32, 0x61, 0x45, 0x00, 0xaa, 0xe2, 0x4b, 0x22, 0xf0, 0x17, 0x07, + 0x7a, 0x4a, 0xd3, 0x0b, 0x9a, 0x12, 0xbe, 0xb2, 0xff, 0x3f, 0x81, 0x0e, 0xa1, 0x29, 0x0f, 0xe8, + 0x2a, 0x1d, 0xd2, 0x14, 0x5d, 0xb2, 0x49, 0x5e, 0xc2, 0x3d, 0x75, 0x85, 0x37, 0x3a, 0x8e, 0x9c, + 0x65, 0x83, 0x50, 0x8d, 0xa7, 0x0e, 0x0a, 0xe5, 0xa4, 0xfd, 0x38, 0xa3, 0x5f, 0xdd, 0xcb, 0xc7, + 0x99, 0xc7, 0x00, 0x41, 0x18, 0x7e, 0xca, 0x78, 0x18, 0xd1, 0xfc, 0xf8, 0x30, 0x38, 0xde, 0x27, + 0xb0, 0x21, 0xa7, 0xe9, 0x33, 0xe3, 0x32, 0x7e, 0xe3, 0x73, 0x81, 0x79, 0x91, 0xaf, 0xd9, 0x17, + 0x79, 0xef, 0x17, 0xf0, 0xa5, 0x39, 0xc3, 0x11, 0xf5, 0x3d, 0xf5, 0xc6, 0x90, 0x6f, 0xa2, 0xc1, + 0xff, 0xda, 0x02, 0x08, 0x4d, 0x5b, 0x7c, 0x4b, 0xc8, 0xfb, 0x95, 0x03, 0x1f, 0xce, 0xa9, 0xdf, + 0x4d, 0x12, 0xce, 0xae, 0x74, 0x72, 0xdf, 0xc6, 0x36, 0x76, 0x6b, 0xad, 0x55, 0x5b, 0xeb, 0x42, + 0x23, 0xac, 0xe3, 0xe0, 0x3d, 0x18, 0xf1, 0x47, 0x07, 0x7a, 0xda, 0x88, 0x30, 0xd4, 0xdb, 0x7e, + 0x17, 0x9a, 0xea, 0x7d, 0x52, 0x6f, 0xf8, 0xe1, 0xc2, 0x0d, 0xf3, 0x77, 0x55, 0x5f, 0x2f, 0x9e, + 0xcf, 0xc8, 0xda, 0xa2, 0x31, 0xf0, 0xfb, 0x45, 0x07, 0x58, 0xfa, 0x05, 0x51, 0x0b, 0x78, 0x3f, + 0xcf, 0x93, 0x79, 0x9f, 0xc4, 0xe4, 0x36, 0x31, 0xf2, 0x5e, 0xc1, 0x26, 0x3e, 0x96, 0x96, 0x18, + 0xdc, 0x8a, 0xda, 0x4f, 0x61, 0x0b, 0xd5, 0xde, 0xba, 0xbd, 0x45, 0x75, 0x48, 0x7c, 0xf6, 0x2e, + 0x02, 0x3a, 0xb9, 0x4d, 0xed, 0xdf, 0x82, 0xfb, 0x39, 0xf6, 0xaf, 0x92, 0xb0, 0xb8, 0xa2, 0x5c, + 0xf3, 0x30, 0x73, 0xde, 0xc4, 0x3f, 0xfb, 0xbe, 0xf3, 0xff, 0x00, 0x00, 0x00, 0xff, 0xff, 0xe5, + 0xdc, 0xac, 0x39, 0xff, 0x1b, 0x00, 0x00, } diff --git a/pkg/proto/sdk_ws/ws.proto b/pkg/proto/sdk_ws/ws.proto index a3f018db3..511409227 100644 --- a/pkg/proto/sdk_ws/ws.proto +++ b/pkg/proto/sdk_ws/ws.proto @@ -170,6 +170,7 @@ message OfflinePushInfo{ message TipsComm{ bytes detail = 1; string defaultTips = 2; + string jsonDetail = 3; } //////////////////////group///////////////////// From a885d7f00335a80bc1652cfbc5a16fae68785e08 Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Fri, 11 Feb 2022 16:25:28 +0800 Subject: [PATCH 621/814] demo modify --- config/config.yaml | 14 +- internal/demo/register/login.go | 90 +++-------- internal/demo/register/send_code.go | 98 +++++------- internal/demo/register/set_password.go | 143 +++++------------- internal/demo/register/verify.go | 25 ++- pkg/common/config/config.go | 9 +- pkg/common/constant/error.go | 24 ++- pkg/common/db/model_struct.go | 7 +- pkg/common/db/mysql.go | 10 +- .../mysql_model/im_mysql_model/demo_model.go | 58 ++----- pkg/common/db/redisModel.go | 14 ++ 11 files changed, 181 insertions(+), 311 deletions(-) diff --git a/config/config.yaml b/config/config.yaml index be5937300..9fca55ef2 100644 --- a/config/config.yaml +++ b/config/config.yaml @@ -433,11 +433,17 @@ demo: signName: OpenIM Corporation verificationCodeTemplateCode: SMS_2268101641 superCode: 666666 + # second + superCodeTTL: 60 mail: title: "openIM" -senderMail: "1765567899@qq.com" -senderAuthorizationCode: "1gxyausfoevlzbfag" -smtpAddr: "smtp.qq.com" -smtpPort: 25 + senderMail: "1765567899@qq.com" + senderAuthorizationCode: "1gxyausfoevlzbfag" + smtpAddr: "smtp.qq.com" + smtpPort: 25 + errMsg: + hasRegistered: "用户已经注册" + mailSendCodeErr: "邮件发送失败" + diff --git a/internal/demo/register/login.go b/internal/demo/register/login.go index b6702bbf4..944a9d039 100644 --- a/internal/demo/register/login.go +++ b/internal/demo/register/login.go @@ -1,16 +1,16 @@ package register import ( + api "Open_IM/pkg/base_info" "Open_IM/pkg/common/config" "Open_IM/pkg/common/constant" "Open_IM/pkg/common/db/mysql_model/im_mysql_model" + http2 "Open_IM/pkg/common/http" "Open_IM/pkg/common/log" "Open_IM/pkg/utils" - "bytes" "encoding/json" "fmt" "github.com/gin-gonic/gin" - "io/ioutil" "net/http" ) @@ -19,16 +19,15 @@ type ParamsLogin struct { PhoneNumber string `json:"phoneNumber"` Password string `json:"password"` Platform int32 `json:"platform"` + OperationID string `json:"operationID" binding:"required"` } func Login(c *gin.Context) { - log.NewDebug("Login api is statrting...") params := ParamsLogin{} if err := c.BindJSON(¶ms); err != nil { c.JSON(http.StatusBadRequest, gin.H{"errCode": constant.FormattingError, "errMsg": err.Error()}) return } - var account string if params.Email != "" { account = params.Email @@ -36,77 +35,36 @@ func Login(c *gin.Context) { account = params.PhoneNumber } - log.InfoByKv("api Login get params", account) - - queryParams := im_mysql_model.Register{ - Account: account, - Password: params.Password, - } - - canLogin := im_mysql_model.Login(&queryParams) - if canLogin == 1 { - log.ErrorByKv("Incorrect phone number password", account, "err", "Mobile phone number is not registered") - c.JSON(http.StatusOK, gin.H{"errCode": constant.LogicalError, "errMsg": "Mobile phone number is not registered"}) - return - } - if canLogin == 2 { - log.ErrorByKv("Incorrect phone number password", account, "err", "Incorrect password") - c.JSON(http.StatusOK, gin.H{"errCode": constant.LogicalError, "errMsg": "Incorrect password"}) - return - } - - resp, err := OpenIMToken(account, params.Platform) + r, err := im_mysql_model.GetRegister(account) if err != nil { - log.ErrorByKv("get token by phone number err", account, "err", err.Error()) - c.JSON(http.StatusOK, gin.H{"errCode": constant.HttpError, "errMsg": err.Error()}) + log.NewError(params.OperationID, "user have not register", params.Password, account) + c.JSON(http.StatusOK, gin.H{"errCode": constant.NotRegistered, "errMsg": "Mobile phone number is not registered"}) return } - response, err := ioutil.ReadAll(resp.Body) - defer resp.Body.Close() - if err != nil { - log.ErrorByKv("Failed to read file", account, "err", err.Error()) - c.JSON(http.StatusOK, gin.H{"errCode": constant.IoError, "errMsg": err.Error()}) + if r.Password != params.Password { + log.NewError(params.OperationID, "password err", params.Password, account, r.Password, r.Account) + c.JSON(http.StatusOK, gin.H{"errCode": constant.PasswordErr, "errMsg": "Mobile phone number is not registered"}) return } - imRep := IMRegisterResp{} - err = json.Unmarshal(response, &imRep) + url := fmt.Sprintf("http://%s:10000/auth/user_token", utils.ServerIP) + openIMGetUserToken := api.UserTokenReq{} + openIMGetUserToken.OperationID = params.OperationID + openIMGetUserToken.Platform = params.Platform + openIMGetUserToken.Secret = config.Config.Secret + openIMGetUserToken.UserID = account + openIMGetUserTokenResp := api.UserTokenResp{} + bMsg, err := http2.Post(url, openIMGetUserToken, config.Config.MessageCallBack.CallBackTimeOut) if err != nil { - log.ErrorByKv("json parsing failed", account, "err", err.Error()) - c.JSON(http.StatusOK, gin.H{"errCode": constant.FormattingError, "errMsg": err.Error()}) + log.NewError(params.OperationID, "request openIM get user token error", account, "err", err.Error()) + c.JSON(http.StatusOK, gin.H{"errCode": constant.GetIMTokenErr, "errMsg": err.Error()}) return } - - if imRep.ErrCode != 0 { - log.ErrorByKv("openIM Login request failed", account, "err") - c.JSON(http.StatusOK, gin.H{"errCode": constant.HttpError, "errMsg": imRep.ErrMsg}) + err = json.Unmarshal(bMsg, &openIMGetUserTokenResp) + if err != nil || openIMGetUserTokenResp.ErrCode != 0 { + log.NewError(params.OperationID, "request get user token", account, "err", "") + c.JSON(http.StatusOK, gin.H{"errCode": constant.GetIMTokenErr, "errMsg": ""}) return } + c.JSON(http.StatusOK, gin.H{"errCode": constant.NoError, "errMsg": "", "data": openIMGetUserTokenResp.UserToken}) - c.JSON(http.StatusOK, gin.H{"errCode": constant.NoError, "errMsg": "", "data": imRep.Data}) - return - -} - -func OpenIMToken(Account string, platform int32) (*http.Response, error) { - url := fmt.Sprintf("http://%s:10000/auth/user_token", utils.ServerIP) - - client := &http.Client{} - params := make(map[string]interface{}) - - params["secret"] = config.Config.Secret - params["platform"] = platform - params["uid"] = Account - con, err := json.Marshal(params) - if err != nil { - log.ErrorByKv("json parsing failed", Account, "err", err.Error()) - return nil, err - } - req, err := http.NewRequest("POST", url, bytes.NewBuffer([]byte(con))) - if err != nil { - log.ErrorByKv("request error", "/auth/user_token", "err", err.Error()) - return nil, err - } - - resp, err := client.Do(req) - return resp, err } diff --git a/internal/demo/register/send_code.go b/internal/demo/register/send_code.go index ecb22095e..2a76d2c4d 100644 --- a/internal/demo/register/send_code.go +++ b/internal/demo/register/send_code.go @@ -10,7 +10,6 @@ import ( openapi "github.com/alibabacloud-go/darabonba-openapi/client" dysmsapi20170525 "github.com/alibabacloud-go/dysmsapi-20170525/v2/client" "github.com/alibabacloud-go/tea/tea" - "github.com/garyburd/redigo/redis" "github.com/gin-gonic/gin" "gopkg.in/gomail.v2" "math/rand" @@ -21,39 +20,44 @@ import ( type paramsVerificationCode struct { Email string `json:"email"` PhoneNumber string `json:"phoneNumber"` + OperationID string `json:"operationID" binding:"required"` } func SendVerificationCode(c *gin.Context) { - log.InfoByKv("sendCode api is statrting...", "") params := paramsVerificationCode{} - if err := c.BindJSON(¶ms); err != nil { - log.ErrorByKv("request params json parsing failed", params.PhoneNumber, params.Email, "err", err.Error()) + log.NewError("", "BindJSON failed", "err:", err.Error(), "phoneNumber", params.PhoneNumber, "email", params.Email) c.JSON(http.StatusBadRequest, gin.H{"errCode": constant.FormattingError, "errMsg": err.Error()}) return } - var account string if params.Email != "" { account = params.Email } else { account = params.PhoneNumber } - - queryParams := im_mysql_model.GetRegisterParams{ - Account: account, + _, err := im_mysql_model.GetRegister(account) + if err == nil { + log.NewError(params.OperationID, "The phone number has been registered", params) + c.JSON(http.StatusOK, gin.H{"errCode": constant.HasRegistered, "errMsg": getErrMsg(constant.HasRegistered)}) + return } - _, err, rowsAffected := im_mysql_model.GetRegister(&queryParams) - - if err == nil && rowsAffected != 0 { - log.ErrorByKv("The phone number has been registered", queryParams.Account, "err") - c.JSON(http.StatusOK, gin.H{"errCode": constant.LogicalError, "errMsg": "The phone number has been registered"}) + ok, err := db.DB.JudgeAccountEXISTS(account) + if ok || err != nil { + log.NewError(params.OperationID, "The phone number has been registered", params) + c.JSON(http.StatusOK, gin.H{"errCode": constant.RepeatSendCode, "errMsg": getErrMsg(constant.RepeatSendCode)}) return } - log.InfoByKv("begin sendSms", account) rand.Seed(time.Now().UnixNano()) code := 100000 + rand.Intn(900000) + log.NewInfo(params.OperationID, "begin store redis", account) + err = db.DB.SetAccountCode(account, code, config.Config.Demo.SuperCodeTTL) + if err != nil { + log.NewError(params.OperationID, "set redis error", account, "err", err.Error()) + c.JSON(http.StatusOK, gin.H{"errCode": constant.SmsSendCodeErr, "errMsg": "Enter the superCode directly in the verification code box, SuperCode can be configured in config.xml"}) + return + } log.NewDebug("", config.Config.Demo) if params.Email != "" { m := gomail.NewMessage() @@ -63,14 +67,14 @@ func SendVerificationCode(c *gin.Context) { m.SetBody(`text/html`, fmt.Sprintf("%d", code)) if err := gomail.NewDialer(config.Config.Demo.Mail.SmtpAddr, config.Config.Demo.Mail.SmtpPort, config.Config.Demo.Mail.SenderMail, config.Config.Demo.Mail.SenderAuthorizationCode).DialAndSend(m); err != nil { log.ErrorByKv("send mail error", account, "err", err.Error()) - c.JSON(http.StatusOK, gin.H{"errCode": constant.IntentionalError, "errMsg": err.Error()}) + c.JSON(http.StatusOK, gin.H{"errCode": constant.MailSendCodeErr, "errMsg": getErrMsg(constant.MailSendCodeErr)}) return } } else { client, err := CreateClient(tea.String(config.Config.Demo.AliSMSVerify.AccessKeyID), tea.String(config.Config.Demo.AliSMSVerify.AccessKeySecret)) if err != nil { - log.ErrorByKv("create sendSms client err", "", "err", err.Error()) - c.JSON(http.StatusOK, gin.H{"errCode": constant.IntentionalError, "errMsg": "Enter the superCode directly in the verification code box, SuperCode can be configured in config.xml"}) + log.NewError(params.OperationID, "create sendSms client err", "err", err.Error()) + c.JSON(http.StatusOK, gin.H{"errCode": constant.SmsSendCodeErr, "errMsg": "Enter the superCode directly in the verification code box, SuperCode can be configured in config.xml"}) return } @@ -83,56 +87,20 @@ func SendVerificationCode(c *gin.Context) { response, err := client.SendSms(sendSmsRequest) if err != nil { - log.ErrorByKv("sendSms error", account, "err", err.Error()) - c.JSON(http.StatusOK, gin.H{"errCode": constant.IntentionalError, "errMsg": "Enter the superCode directly in the verification code box, SuperCode can be configured in config.xml"}) + log.NewError(params.OperationID, "sendSms error", account, "err", err.Error()) + c.JSON(http.StatusOK, gin.H{"errCode": constant.SmsSendCodeErr, "errMsg": "Enter the superCode directly in the verification code box, SuperCode can be configured in config.xml"}) return } if *response.Body.Code != "OK" { - log.ErrorByKv("alibabacloud sendSms error", account, "err", response.Body.Code, response.Body.Message) - c.JSON(http.StatusOK, gin.H{"errCode": constant.IntentionalError, "errMsg": "Enter the superCode directly in the verification code box, SuperCode can be configured in config.xml"}) + log.NewError(params.OperationID, "alibabacloud sendSms error", account, "err", response.Body.Code, response.Body.Message) + c.JSON(http.StatusOK, gin.H{"errCode": constant.SmsSendCodeErr, "errMsg": "Enter the superCode directly in the verification code box, SuperCode can be configured in config.xml"}) return } } - log.InfoByKv("begin store redis", account) - v, err := redis.Int(db.DB.Exec("TTL", account)) - if err != nil { - log.ErrorByKv("get account from redis error", account, "err", err.Error()) - c.JSON(http.StatusOK, gin.H{"errCode": constant.IntentionalError, "errMsg": "Enter the superCode directly in the verification code box, SuperCode can be configured in config.xml"}) - return - } - switch { - case v == -2: - _, err = db.DB.Exec("SET", account, code, "EX", 600) - if err != nil { - log.ErrorByKv("set redis error", account, "err", err.Error()) - c.JSON(http.StatusOK, gin.H{"errCode": constant.IntentionalError, "errMsg": "Enter the superCode directly in the verification code box, SuperCode can be configured in config.xml"}) - return - } - data := make(map[string]interface{}) - data["account"] = account - c.JSON(http.StatusOK, gin.H{"errCode": constant.NoError, "errMsg": "Verification code sent successfully!", "data": data}) - log.InfoByKv("send new verification code", account) - return - case v > 540: - data := make(map[string]interface{}) - data["account"] = account - c.JSON(http.StatusOK, gin.H{"errCode": constant.LogicalError, "errMsg": "Frequent operation!", "data": data}) - log.InfoByKv("frequent operation", account) - return - case v < 540: - _, err = db.DB.Exec("SET", account, code, "EX", 600) - if err != nil { - c.JSON(http.StatusOK, gin.H{"errCode": constant.IntentionalError, "errMsg": "Enterthe superCode directly in the verification code box, SuperCode can be configured in config.xml"}) - return - } - data := make(map[string]interface{}) - data["account"] = account - c.JSON(http.StatusOK, gin.H{"errCode": constant.NoError, "errMsg": "Verification code has been reset!", "data": data}) - log.InfoByKv("Reset verification code", account) - return - } - + data := make(map[string]interface{}) + data["account"] = account + c.JSON(http.StatusOK, gin.H{"errCode": constant.NoError, "errMsg": "Verification code has been set!", "data": data}) } func CreateClient(accessKeyId *string, accessKeySecret *string) (result *dysmsapi20170525.Client, err error) { @@ -149,3 +117,13 @@ func CreateClient(accessKeyId *string, accessKeySecret *string) (result *dysmsap result, err = dysmsapi20170525.NewClient(c) return result, err } +func getErrMsg(errCode int) string { + switch errCode { + case constant.HasRegistered: + return config.Config.Demo.ErrMsg.HasRegistered + case constant.MailSendCodeErr: + return config.Config.Demo.ErrMsg.MailSendCodeErr + default: + return "" + } +} diff --git a/internal/demo/register/set_password.go b/internal/demo/register/set_password.go index 9d66a09b0..b65b0c943 100644 --- a/internal/demo/register/set_password.go +++ b/internal/demo/register/set_password.go @@ -1,18 +1,18 @@ package register import ( + api "Open_IM/pkg/base_info" "Open_IM/pkg/common/config" "Open_IM/pkg/common/constant" "Open_IM/pkg/common/db" "Open_IM/pkg/common/db/mysql_model/im_mysql_model" + http2 "Open_IM/pkg/common/http" "Open_IM/pkg/common/log" "Open_IM/pkg/utils" - "bytes" "encoding/json" "fmt" "github.com/garyburd/redigo/redis" "github.com/gin-gonic/gin" - "io/ioutil" "net/http" ) @@ -21,135 +21,60 @@ type ParamsSetPassword struct { PhoneNumber string `json:"phoneNumber"` Password string `json:"password"` VerificationCode string `json:"verificationCode"` -} - -type Data struct { - ExpiredTime int64 `json:"expiredTime"` - Token string `json:"token"` - Uid string `json:"uid"` -} - -type IMRegisterResp struct { - Data Data `json:"data"` - ErrCode int32 `json:"errCode"` - ErrMsg string `json:"errMsg"` + Platform int32 `json:"platform" binding:"required,min=1,max=7"` + OperationID string `json:"operationID" binding:"required"` } func SetPassword(c *gin.Context) { - log.InfoByKv("setPassword api is statrting...", "") params := ParamsSetPassword{} if err := c.BindJSON(¶ms); err != nil { c.JSON(http.StatusBadRequest, gin.H{"errCode": constant.FormattingError, "errMsg": err.Error()}) return } - var account string if params.Email != "" { account = params.Email } else { account = params.PhoneNumber } - - log.InfoByKv("begin store redis", account) - v, err := redis.String(db.DB.Exec("GET", account)) - - if params.VerificationCode == config.Config.Demo.SuperCode { - goto openIMRegisterTab - } - - fmt.Println("Get Redis:", v, err) - if err != nil { - log.ErrorByKv("password Verification code expired", account, "err", err.Error()) - data := make(map[string]interface{}) - data["phoneNumber"] = account - c.JSON(http.StatusOK, gin.H{"errCode": constant.LogicalError, "errMsg": "Verification expired!", "data": data}) - return - } - if v != params.VerificationCode { - log.InfoByKv("password Verification code error", account, params.VerificationCode) - data := make(map[string]interface{}) - data["PhoneNumber"] = account - c.JSON(http.StatusOK, gin.H{"errCode": constant.LogicalError, "errMsg": "Verification code error!", "data": data}) - return - } - -openIMRegisterTab: - log.InfoByKv("openIM register begin", account) - resp, err := OpenIMRegister(account) - - log.InfoByKv("openIM register resp", account, resp, err) - if err != nil { - log.ErrorByKv("request openIM register error", account, "err", err.Error()) - c.JSON(http.StatusOK, gin.H{"errCode": constant.HttpError, "errMsg": err.Error()}) - return - } - response, err := ioutil.ReadAll(resp.Body) - defer resp.Body.Close() - if err != nil { - c.JSON(http.StatusOK, gin.H{"errCode": constant.IoError, "errMsg": err.Error()}) - return + if params.VerificationCode != config.Config.Demo.SuperCode { + v, err := redis.String(db.DB.Exec("GET", account)) + if err != nil || v != params.VerificationCode { + log.InfoByKv("password Verification code error", account, params.VerificationCode) + data := make(map[string]interface{}) + data["PhoneNumber"] = account + c.JSON(http.StatusOK, gin.H{"errCode": constant.CodeInvalidOrExpired, "errMsg": "Verification code error!", "data": data}) + return + } } - imrep := IMRegisterResp{} - err = json.Unmarshal(response, &imrep) + url := fmt.Sprintf("http://%s:10000/auth/user_register", utils.ServerIP) + openIMRegisterReq := api.UserRegisterReq{} + openIMRegisterReq.OperationID = params.OperationID + openIMRegisterReq.Platform = params.Platform + openIMRegisterReq.UserID = account + openIMRegisterReq.Nickname = account + openIMRegisterReq.Secret = config.Config.Secret + openIMRegisterResp := api.UserRegisterResp{} + bMsg, err := http2.Post(url, openIMRegisterReq, config.Config.MessageCallBack.CallBackTimeOut) if err != nil { - c.JSON(http.StatusOK, gin.H{"errCode": constant.FormattingError, "errMsg": err.Error()}) + log.NewError(params.OperationID, "request openIM register error", account, "err", err.Error()) + c.JSON(http.StatusOK, gin.H{"errCode": constant.RegisterFailed, "errMsg": err.Error()}) return } - if imrep.ErrCode != 0 { - c.JSON(http.StatusOK, gin.H{"errCode": constant.HttpError, "errMsg": imrep.ErrMsg}) + err = json.Unmarshal(bMsg, &openIMRegisterResp) + if err != nil || openIMRegisterResp.ErrCode != 0 { + log.NewError(params.OperationID, "request openIM register error", account, "err", "") + c.JSON(http.StatusOK, gin.H{"errCode": constant.RegisterFailed, "errMsg": ""}) return } - - queryParams := im_mysql_model.SetPasswordParams{ - Account: account, - Password: params.Password, - } - - log.InfoByKv("begin store mysql", account, params.Password) - _, err = im_mysql_model.SetPassword(&queryParams) + log.Info(params.OperationID, "begin store mysql", account, params.Password) + err = im_mysql_model.SetPassword(account, params.Password) if err != nil { - log.ErrorByKv("set phone number password error", account, "err", err.Error()) - c.JSON(http.StatusOK, gin.H{"errCode": constant.DatabaseError, "errMsg": err.Error()}) + log.NewError(params.OperationID, "set phone number password error", account, "err", err.Error()) + c.JSON(http.StatusOK, gin.H{"errCode": constant.RegisterFailed, "errMsg": err.Error()}) return } - - log.InfoByKv("end setPassword", account) - c.JSON(http.StatusOK, gin.H{"errCode": constant.NoError, "errMsg": "", "data": imrep.Data}) + log.Info(params.OperationID, "end setPassword", account, params.Password) + c.JSON(http.StatusOK, gin.H{"errCode": constant.NoError, "errMsg": "", "data": openIMRegisterResp.UserToken}) return } - -func OpenIMRegister(account string) (*http.Response, error) { - url := fmt.Sprintf("http://%s:10000/auth/user_register", utils.ServerIP) - fmt.Println("1:", config.Config.Secret) - - client := &http.Client{} - - params := make(map[string]interface{}) - - params["secret"] = config.Config.Secret - params["platform"] = 2 - params["uid"] = account - params["name"] = account - params["icon"] = "" - params["gender"] = 0 - - params["mobile"] = "" - - params["email"] = "" - params["birth"] = "" - params["ex"] = "" - con, err := json.Marshal(params) - if err != nil { - return nil, err - } - - log.InfoByKv("openIM register params", account, params) - req, err := http.NewRequest("POST", url, bytes.NewBuffer([]byte(con))) - if err != nil { - return nil, err - } - - resp, err := client.Do(req) - - return resp, err -} diff --git a/internal/demo/register/verify.go b/internal/demo/register/verify.go index b52da8216..d74ce1f66 100644 --- a/internal/demo/register/verify.go +++ b/internal/demo/register/verify.go @@ -6,7 +6,6 @@ import ( "Open_IM/pkg/common/db" "Open_IM/pkg/common/log" - "github.com/garyburd/redigo/redis" "github.com/gin-gonic/gin" "net/http" ) @@ -15,14 +14,13 @@ type paramsCertification struct { Email string `json:"email"` PhoneNumber string `json:"phoneNumber"` VerificationCode string `json:"verificationCode"` + OperationID string `json:"operationID" binding:"required"` } func Verify(c *gin.Context) { - log.InfoByKv("Verify api is statrting...", "") params := paramsCertification{} - if err := c.BindJSON(¶ms); err != nil { - log.ErrorByKv("request params json parsing failed", "", "err", err.Error()) + log.NewError("", "request params json parsing failed", "", "err", err.Error()) c.JSON(http.StatusBadRequest, gin.H{"errCode": constant.FormattingError, "errMsg": err.Error()}) return } @@ -44,27 +42,28 @@ func Verify(c *gin.Context) { return } log.NewInfo("0", " params.VerificationCode != config.Config.Demo.SuperCode", params.VerificationCode, config.Config.Demo) - log.InfoByKv("begin get form redis", account) - v, err := redis.String(db.DB.Exec("GET", account)) - log.InfoByKv("redis phone number and verificating Code", account, v) + log.NewInfo(params.OperationID, "begin get form redis", account) + + code, err := db.DB.GetAccountCode(account) + log.NewInfo(params.OperationID, "redis phone number and verificating Code", account, code) if err != nil { - log.ErrorByKv("Verification code expired", account, "err", err.Error()) + log.NewError(params.OperationID, "Verification code expired", account, "err", err.Error()) data := make(map[string]interface{}) data["account"] = account - c.JSON(http.StatusOK, gin.H{"errCode": constant.LogicalError, "errMsg": "Verification code expired!", "data": data}) + c.JSON(http.StatusOK, gin.H{"errCode": constant.CodeInvalidOrExpired, "errMsg": "Verification code expired!", "data": data}) return } - if params.VerificationCode == v { - log.InfoByKv("Verified successfully", account) + if params.VerificationCode == code { + log.Info(params.OperationID, "Verified successfully", account) data := make(map[string]interface{}) data["account"] = account data["verificationCode"] = params.VerificationCode c.JSON(http.StatusOK, gin.H{"errCode": constant.NoError, "errMsg": "Verified successfully!", "data": data}) return } else { - log.InfoByKv("Verification code error", account, params.VerificationCode) + log.Info(params.OperationID, "Verification code error", account, params.VerificationCode) data := make(map[string]interface{}) data["account"] = account - c.JSON(http.StatusOK, gin.H{"errCode": constant.LogicalError, "errMsg": "Verification code error!", "data": data}) + c.JSON(http.StatusOK, gin.H{"errCode": constant.CodeInvalidOrExpired, "errMsg": "Verification code error!", "data": data}) } } diff --git a/pkg/common/config/config.go b/pkg/common/config/config.go index 8b9c4602d..d9588788b 100644 --- a/pkg/common/config/config.go +++ b/pkg/common/config/config.go @@ -284,14 +284,19 @@ type config struct { SignName string `yaml:"signName"` VerificationCodeTemplateCode string `yaml:"verificationCodeTemplateCode"` } - SuperCode string `yaml:"superCode"` - Mail struct { + SuperCode string `yaml:"superCode"` + SuperCodeTTL int `yaml:"superCodeTTL"` + Mail struct { Title string `yaml:"title"` SenderMail string `yaml:"senderMail"` SenderAuthorizationCode string `yaml:"senderAuthorizationCode"` SmtpAddr string `yaml:"smtpAddr"` SmtpPort int `yaml:"smtpPort"` } + ErrMsg struct { + HasRegistered string `yaml:"hasRegistered"` + MailSendCodeErr string `yaml:"mailSendCodeErr"` + } } } type PConversation struct { diff --git a/pkg/common/constant/error.go b/pkg/common/constant/error.go index 6df403140..86d1359c3 100644 --- a/pkg/common/constant/error.go +++ b/pkg/common/constant/error.go @@ -68,14 +68,22 @@ var ( ) const ( - NoError = 0 - FormattingError = 10001 - DatabaseError = 10002 - LogicalError = 10003 - ServerError = 10004 - HttpError = 10005 - IoError = 10006 - IntentionalError = 10007 + NoError = 0 + FormattingError = 10001 + HasRegistered = 10002 + NotRegistered = 10003 + PasswordErr = 10004 + GetIMTokenErr = 10005 + RepeatSendCode = 10006 + MailSendCodeErr = 10007 + SmsSendCodeErr = 10008 + CodeInvalidOrExpired = 10009 + RegisterFailed = 10010 + DatabaseError = 10002 + ServerError = 10004 + HttpError = 10005 + IoError = 10006 + IntentionalError = 10007 ) func (e *ErrInfo) Error() string { diff --git a/pkg/common/db/model_struct.go b/pkg/common/db/model_struct.go index 25e3bf0cd..a1d003714 100644 --- a/pkg/common/db/model_struct.go +++ b/pkg/common/db/model_struct.go @@ -2,6 +2,12 @@ package db import "time" +type Register struct { + Account string `gorm:"column:account;primary_key;type:char(255)" json:"account"` + Password string `gorm:"column:password;type:varchar(255)" json:"password"` + Ex string `gorm:"column:ex;size:1024" json:"ex"` +} + // //message FriendInfo{ //string OwnerUserID = 1; @@ -183,7 +189,6 @@ type ChatLog struct { ContentType int32 `gorm:"column:content_type" json:"contentType"` Content string `gorm:"column:content;type:varchar(1000)" json:"content"` Status int32 `gorm:"column:status" json:"status"` - Seq uint32 `gorm:"column:seq;index:index_seq;default:0" json:"seq"` SendTime time.Time `gorm:"column:send_time" json:"sendTime"` CreateTime time.Time `gorm:"column:create_time" json:"createTime"` Ex string `gorm:"column:ex;type:varchar(1024)" json:"ex"` diff --git a/pkg/common/db/mysql.go b/pkg/common/db/mysql.go index 712ba5b2d..d41f676a0 100644 --- a/pkg/common/db/mysql.go +++ b/pkg/common/db/mysql.go @@ -58,7 +58,7 @@ func initMysqlDB() { &GroupMember{}, &GroupRequest{}, &User{}, - &Black{}, &ChatLog{}) + &Black{}, &ChatLog{}, &Register{}) db.Set("gorm:table_options", "CHARSET=utf8") db.Set("gorm:table_options", "collation=utf8_unicode_ci") @@ -96,6 +96,14 @@ func initMysqlDB() { log.NewInfo("CreateTable Black") db.CreateTable(&Black{}) } + if !db.HasTable(&ChatLog{}) { + log.NewInfo("CreateTable Black") + db.CreateTable(&ChatLog{}) + } + if !db.HasTable(&Register{}) { + log.NewInfo("CreateTable Black") + db.CreateTable(&Register{}) + } return diff --git a/pkg/common/db/mysql_model/im_mysql_model/demo_model.go b/pkg/common/db/mysql_model/im_mysql_model/demo_model.go index b0b700eb9..a36b7cdc7 100644 --- a/pkg/common/db/mysql_model/im_mysql_model/demo_model.go +++ b/pkg/common/db/mysql_model/im_mysql_model/demo_model.go @@ -5,60 +5,24 @@ import ( _ "github.com/jinzhu/gorm" ) -type GetRegisterParams struct { - Account string `json:"account"` -} -type Register struct { - Account string `gorm:"column:account"` - Password string `gorm:"column:password"` -} - -func GetRegister(params *GetRegisterParams) (Register, error, int64) { - var r Register +func GetRegister(account string) (*db.Register, error) { dbConn, err := db.DB.MysqlDB.DefaultGormDB() if err != nil { - return r, err, 0 + return nil, err } - result := dbConn. - Where(&Register{Account: params.Account}). - Find(&r) - return r, result.Error, result.RowsAffected + var r db.Register + return &r, dbConn.Table("registers").Where("account = ?", + account).Take(&r).Error } - -type SetPasswordParams struct { - Account string `json:"account"` - Password string `json:"password"` -} - -func SetPassword(params *SetPasswordParams) (Register, error) { - r := Register{ - Account: params.Account, - Password: params.Password, +func SetPassword(account, password string) error { + r := db.Register{ + Account: account, + Password: password, } dbConn, err := db.DB.MysqlDB.DefaultGormDB() if err != nil { - return r, err + return err } + return dbConn.Table("registers").Create(&r).Error - result := dbConn.Create(&r) - - return r, result.Error -} - -func Login(params *Register) int64 { - var r Register - dbConn, err := db.DB.MysqlDB.DefaultGormDB() - if err != nil { - return 3 - } - result := dbConn. - Where(&Register{Account: params.Account}). - Find(&r) - if result.Error != nil && result.RowsAffected == 0 { - return 1 - } - if r.Password != params.Password { - return 2 - } - return 0 } diff --git a/pkg/common/db/redisModel.go b/pkg/common/db/redisModel.go index a3e2ade8e..a314090e4 100644 --- a/pkg/common/db/redisModel.go +++ b/pkg/common/db/redisModel.go @@ -7,6 +7,7 @@ import ( ) const ( + registerAccountTempCode = "REGISTER_ACCOUNT_TEMP_CODE" userIncrSeq = "REDIS_USER_INCR_SEQ:" // user incr seq appleDeviceToken = "DEVICE_TOKEN" userMinSeq = "REDIS_USER_MIN_SEQ:" @@ -33,6 +34,19 @@ func (d *DataBases) Exec(cmd string, key interface{}, args ...interface{}) (inte return con.Do(cmd, params...) } +func (d *DataBases) JudgeAccountEXISTS(account string) (bool, error) { + key := registerAccountTempCode + account + return redis.Bool(d.Exec("EXISTS", key)) +} +func (d *DataBases) SetAccountCode(account string, code, ttl int) (err error) { + key := registerAccountTempCode + account + _, err = d.Exec("Set", key, code, ttl) + return err +} +func (d *DataBases) GetAccountCode(account string) (string, error) { + key := userIncrSeq + account + return redis.String(d.Exec("GET", key)) +} //Perform seq auto-increment operation of user messages func (d *DataBases) IncrUserSeq(uid string) (uint64, error) { From 8c43b0953b663c1c8f143c6f969a4f5897ee2e2a Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Fri, 11 Feb 2022 16:36:02 +0800 Subject: [PATCH 622/814] demo modify --- internal/demo/register/set_password.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/internal/demo/register/set_password.go b/internal/demo/register/set_password.go index b65b0c943..c8509a8bb 100644 --- a/internal/demo/register/set_password.go +++ b/internal/demo/register/set_password.go @@ -40,7 +40,7 @@ func SetPassword(c *gin.Context) { if params.VerificationCode != config.Config.Demo.SuperCode { v, err := redis.String(db.DB.Exec("GET", account)) if err != nil || v != params.VerificationCode { - log.InfoByKv("password Verification code error", account, params.VerificationCode) + log.NewError(params.OperationID, "password Verification code error", account, params.VerificationCode) data := make(map[string]interface{}) data["PhoneNumber"] = account c.JSON(http.StatusOK, gin.H{"errCode": constant.CodeInvalidOrExpired, "errMsg": "Verification code error!", "data": data}) From fd59cc622688e86235d444dc9ec12572c1ea3edd Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Fri, 11 Feb 2022 17:44:02 +0800 Subject: [PATCH 623/814] demo modify --- config/config.yaml | 3 --- internal/demo/register/send_code.go | 16 +++------------- internal/demo/register/set_password.go | 3 ++- pkg/common/config/config.go | 4 ---- .../db/mysql_model/im_mysql_model/demo_model.go | 3 ++- 5 files changed, 7 insertions(+), 22 deletions(-) diff --git a/config/config.yaml b/config/config.yaml index 9fca55ef2..9a8109a34 100644 --- a/config/config.yaml +++ b/config/config.yaml @@ -441,9 +441,6 @@ demo: senderAuthorizationCode: "1gxyausfoevlzbfag" smtpAddr: "smtp.qq.com" smtpPort: 25 - errMsg: - hasRegistered: "用户已经注册" - mailSendCodeErr: "邮件发送失败" diff --git a/internal/demo/register/send_code.go b/internal/demo/register/send_code.go index 2a76d2c4d..9089b9c78 100644 --- a/internal/demo/register/send_code.go +++ b/internal/demo/register/send_code.go @@ -39,13 +39,13 @@ func SendVerificationCode(c *gin.Context) { _, err := im_mysql_model.GetRegister(account) if err == nil { log.NewError(params.OperationID, "The phone number has been registered", params) - c.JSON(http.StatusOK, gin.H{"errCode": constant.HasRegistered, "errMsg": getErrMsg(constant.HasRegistered)}) + c.JSON(http.StatusOK, gin.H{"errCode": constant.HasRegistered, "errMsg": ""}) return } ok, err := db.DB.JudgeAccountEXISTS(account) if ok || err != nil { log.NewError(params.OperationID, "The phone number has been registered", params) - c.JSON(http.StatusOK, gin.H{"errCode": constant.RepeatSendCode, "errMsg": getErrMsg(constant.RepeatSendCode)}) + c.JSON(http.StatusOK, gin.H{"errCode": constant.RepeatSendCode, "errMsg": ""}) return } log.InfoByKv("begin sendSms", account) @@ -67,7 +67,7 @@ func SendVerificationCode(c *gin.Context) { m.SetBody(`text/html`, fmt.Sprintf("%d", code)) if err := gomail.NewDialer(config.Config.Demo.Mail.SmtpAddr, config.Config.Demo.Mail.SmtpPort, config.Config.Demo.Mail.SenderMail, config.Config.Demo.Mail.SenderAuthorizationCode).DialAndSend(m); err != nil { log.ErrorByKv("send mail error", account, "err", err.Error()) - c.JSON(http.StatusOK, gin.H{"errCode": constant.MailSendCodeErr, "errMsg": getErrMsg(constant.MailSendCodeErr)}) + c.JSON(http.StatusOK, gin.H{"errCode": constant.MailSendCodeErr, "errMsg": ""}) return } } else { @@ -117,13 +117,3 @@ func CreateClient(accessKeyId *string, accessKeySecret *string) (result *dysmsap result, err = dysmsapi20170525.NewClient(c) return result, err } -func getErrMsg(errCode int) string { - switch errCode { - case constant.HasRegistered: - return config.Config.Demo.ErrMsg.HasRegistered - case constant.MailSendCodeErr: - return config.Config.Demo.ErrMsg.MailSendCodeErr - default: - return "" - } -} diff --git a/internal/demo/register/set_password.go b/internal/demo/register/set_password.go index c8509a8bb..a0558fa5a 100644 --- a/internal/demo/register/set_password.go +++ b/internal/demo/register/set_password.go @@ -22,6 +22,7 @@ type ParamsSetPassword struct { Password string `json:"password"` VerificationCode string `json:"verificationCode"` Platform int32 `json:"platform" binding:"required,min=1,max=7"` + Ex string `json:"ex"` OperationID string `json:"operationID" binding:"required"` } @@ -68,7 +69,7 @@ func SetPassword(c *gin.Context) { return } log.Info(params.OperationID, "begin store mysql", account, params.Password) - err = im_mysql_model.SetPassword(account, params.Password) + err = im_mysql_model.SetPassword(account, params.Password, params.Ex) if err != nil { log.NewError(params.OperationID, "set phone number password error", account, "err", err.Error()) c.JSON(http.StatusOK, gin.H{"errCode": constant.RegisterFailed, "errMsg": err.Error()}) diff --git a/pkg/common/config/config.go b/pkg/common/config/config.go index d9588788b..f3a4611d5 100644 --- a/pkg/common/config/config.go +++ b/pkg/common/config/config.go @@ -293,10 +293,6 @@ type config struct { SmtpAddr string `yaml:"smtpAddr"` SmtpPort int `yaml:"smtpPort"` } - ErrMsg struct { - HasRegistered string `yaml:"hasRegistered"` - MailSendCodeErr string `yaml:"mailSendCodeErr"` - } } } type PConversation struct { diff --git a/pkg/common/db/mysql_model/im_mysql_model/demo_model.go b/pkg/common/db/mysql_model/im_mysql_model/demo_model.go index a36b7cdc7..5af615f97 100644 --- a/pkg/common/db/mysql_model/im_mysql_model/demo_model.go +++ b/pkg/common/db/mysql_model/im_mysql_model/demo_model.go @@ -14,10 +14,11 @@ func GetRegister(account string) (*db.Register, error) { return &r, dbConn.Table("registers").Where("account = ?", account).Take(&r).Error } -func SetPassword(account, password string) error { +func SetPassword(account, password, ex string) error { r := db.Register{ Account: account, Password: password, + Ex: ex, } dbConn, err := db.DB.MysqlDB.DefaultGormDB() if err != nil { From 563d46637404c8ca8d1756da4ee9777a04804517 Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Fri, 11 Feb 2022 17:51:36 +0800 Subject: [PATCH 624/814] demo modify --- config/config.yaml | 2 +- pkg/common/config/config.go | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/config/config.yaml b/config/config.yaml index 9a8109a34..ee8ec13c4 100644 --- a/config/config.yaml +++ b/config/config.yaml @@ -434,7 +434,7 @@ demo: verificationCodeTemplateCode: SMS_2268101641 superCode: 666666 # second - superCodeTTL: 60 + codeTTL: 60 mail: title: "openIM" senderMail: "1765567899@qq.com" diff --git a/pkg/common/config/config.go b/pkg/common/config/config.go index f3a4611d5..b2079acf3 100644 --- a/pkg/common/config/config.go +++ b/pkg/common/config/config.go @@ -284,9 +284,9 @@ type config struct { SignName string `yaml:"signName"` VerificationCodeTemplateCode string `yaml:"verificationCodeTemplateCode"` } - SuperCode string `yaml:"superCode"` - SuperCodeTTL int `yaml:"superCodeTTL"` - Mail struct { + SuperCode string `yaml:"superCode"` + CodeTTL int `yaml:"codeTTL"` + Mail struct { Title string `yaml:"title"` SenderMail string `yaml:"senderMail"` SenderAuthorizationCode string `yaml:"senderAuthorizationCode"` From af330d7f8a368f16fecf81af083f8113df3ed5c0 Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Fri, 11 Feb 2022 18:49:17 +0800 Subject: [PATCH 625/814] Refactor code --- pkg/grpc-etcdv3/getcdv3/register.go | 9 +- pkg/proto/group/group.proto | 2 + pkg/proto/sdk_ws/ws.pb.go | 329 ++++++++++++++-------------- pkg/proto/sdk_ws/ws.proto | 1 - 4 files changed, 166 insertions(+), 175 deletions(-) diff --git a/pkg/grpc-etcdv3/getcdv3/register.go b/pkg/grpc-etcdv3/getcdv3/register.go index 3e12486a5..40a9191af 100644 --- a/pkg/grpc-etcdv3/getcdv3/register.go +++ b/pkg/grpc-etcdv3/getcdv3/register.go @@ -37,8 +37,7 @@ func RegisterEtcd4Unique(schema, etcdAddr, myHost string, myPort int, serviceNam //etcdAddr separated by commas func RegisterEtcd(schema, etcdAddr, myHost string, myPort int, serviceName string, ttl int) error { cli, err := clientv3.New(clientv3.Config{ - Endpoints: strings.Split(etcdAddr, ","), - }) + Endpoints: strings.Split(etcdAddr, ","), DialTimeout: 5 * time.Second}) fmt.Println("RegisterEtcd") if err != nil { // return fmt.Errorf("grpclb: create clientv3 client failed: %v", err) @@ -68,13 +67,13 @@ func RegisterEtcd(schema, etcdAddr, myHost string, myPort int, serviceName strin } fmt.Println("RegisterEtcd ok") go func() { - FLOOP: for { select { - case _, ok := <-kresp: + case v, ok := <-kresp: if ok == true { + fmt.Println(" kresp ok ", v) } else { - break FLOOP + fmt.Println(" kresp failed ", v) } } } diff --git a/pkg/proto/group/group.proto b/pkg/proto/group/group.proto index 378df2549..80fe16bee 100644 --- a/pkg/proto/group/group.proto +++ b/pkg/proto/group/group.proto @@ -20,6 +20,8 @@ message CreateGroupReq{ string OperationID = 3; string OpUserID = 4; //app manager or group owner string OwnerUserID = 5; //owner + + } message CreateGroupResp{ int32 ErrCode = 1; diff --git a/pkg/proto/sdk_ws/ws.pb.go b/pkg/proto/sdk_ws/ws.pb.go index 59c51c7f6..b8bfa10ce 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_36d5733e27207cb1, []int{0} + return fileDescriptor_ws_c0d333d3b0a04e48, []int{0} } func (m *GroupInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupInfo.Unmarshal(m, b) @@ -164,7 +164,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_36d5733e27207cb1, []int{1} + return fileDescriptor_ws_c0d333d3b0a04e48, []int{1} } func (m *GroupMemberFullInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupMemberFullInfo.Unmarshal(m, b) @@ -259,7 +259,6 @@ type PublicUserInfo struct { Nickname string `protobuf:"bytes,2,opt,name=nickname" json:"nickname,omitempty"` FaceURL string `protobuf:"bytes,3,opt,name=faceURL" json:"faceURL,omitempty"` Gender int32 `protobuf:"varint,4,opt,name=gender" json:"gender,omitempty"` - AppMangerLevel int32 `protobuf:"varint,5,opt,name=appMangerLevel" json:"appMangerLevel,omitempty"` XXX_NoUnkeyedLiteral struct{} `json:"-"` XXX_unrecognized []byte `json:"-"` XXX_sizecache int32 `json:"-"` @@ -269,7 +268,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_36d5733e27207cb1, []int{2} + return fileDescriptor_ws_c0d333d3b0a04e48, []int{2} } func (m *PublicUserInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_PublicUserInfo.Unmarshal(m, b) @@ -317,13 +316,6 @@ func (m *PublicUserInfo) GetGender() int32 { return 0 } -func (m *PublicUserInfo) GetAppMangerLevel() int32 { - if m != nil { - return m.AppMangerLevel - } - return 0 -} - type UserInfo struct { UserID string `protobuf:"bytes,1,opt,name=userID" json:"userID,omitempty"` Nickname string `protobuf:"bytes,2,opt,name=nickname" json:"nickname,omitempty"` @@ -344,7 +336,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_36d5733e27207cb1, []int{3} + return fileDescriptor_ws_c0d333d3b0a04e48, []int{3} } func (m *UserInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_UserInfo.Unmarshal(m, b) @@ -451,7 +443,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_36d5733e27207cb1, []int{4} + return fileDescriptor_ws_c0d333d3b0a04e48, []int{4} } func (m *FriendInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FriendInfo.Unmarshal(m, b) @@ -536,7 +528,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_36d5733e27207cb1, []int{5} + return fileDescriptor_ws_c0d333d3b0a04e48, []int{5} } func (m *BlackInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_BlackInfo.Unmarshal(m, b) @@ -617,7 +609,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_36d5733e27207cb1, []int{6} + return fileDescriptor_ws_c0d333d3b0a04e48, []int{6} } func (m *GroupRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupRequest.Unmarshal(m, b) @@ -725,7 +717,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_36d5733e27207cb1, []int{7} + return fileDescriptor_ws_c0d333d3b0a04e48, []int{7} } func (m *FriendRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FriendRequest.Unmarshal(m, b) @@ -863,7 +855,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_36d5733e27207cb1, []int{8} + return fileDescriptor_ws_c0d333d3b0a04e48, []int{8} } func (m *PullMessageBySeqListResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_PullMessageBySeqListResp.Unmarshal(m, b) @@ -917,7 +909,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_36d5733e27207cb1, []int{9} + return fileDescriptor_ws_c0d333d3b0a04e48, []int{9} } func (m *PullMessageBySeqListReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_PullMessageBySeqListReq.Unmarshal(m, b) @@ -968,7 +960,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_36d5733e27207cb1, []int{10} + return fileDescriptor_ws_c0d333d3b0a04e48, []int{10} } func (m *GetMaxAndMinSeqReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetMaxAndMinSeqReq.Unmarshal(m, b) @@ -1000,7 +992,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_36d5733e27207cb1, []int{11} + return fileDescriptor_ws_c0d333d3b0a04e48, []int{11} } func (m *GetMaxAndMinSeqResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetMaxAndMinSeqResp.Unmarshal(m, b) @@ -1047,7 +1039,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_36d5733e27207cb1, []int{12} + return fileDescriptor_ws_c0d333d3b0a04e48, []int{12} } func (m *UserSendMsgResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_UserSendMsgResp.Unmarshal(m, b) @@ -1116,7 +1108,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_36d5733e27207cb1, []int{13} + return fileDescriptor_ws_c0d333d3b0a04e48, []int{13} } func (m *MsgData) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MsgData.Unmarshal(m, b) @@ -1277,7 +1269,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_36d5733e27207cb1, []int{14} + return fileDescriptor_ws_c0d333d3b0a04e48, []int{14} } func (m *OfflinePushInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_OfflinePushInfo.Unmarshal(m, b) @@ -1345,7 +1337,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_36d5733e27207cb1, []int{15} + return fileDescriptor_ws_c0d333d3b0a04e48, []int{15} } func (m *TipsComm) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_TipsComm.Unmarshal(m, b) @@ -1402,7 +1394,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_36d5733e27207cb1, []int{16} + return fileDescriptor_ws_c0d333d3b0a04e48, []int{16} } func (m *GroupCreatedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupCreatedTips.Unmarshal(m, b) @@ -1471,7 +1463,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_36d5733e27207cb1, []int{17} + return fileDescriptor_ws_c0d333d3b0a04e48, []int{17} } func (m *GroupInfoSetTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupInfoSetTips.Unmarshal(m, b) @@ -1526,7 +1518,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_36d5733e27207cb1, []int{18} + return fileDescriptor_ws_c0d333d3b0a04e48, []int{18} } func (m *JoinGroupApplicationTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_JoinGroupApplicationTips.Unmarshal(m, b) @@ -1582,7 +1574,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_36d5733e27207cb1, []int{19} + return fileDescriptor_ws_c0d333d3b0a04e48, []int{19} } func (m *MemberQuitTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MemberQuitTips.Unmarshal(m, b) @@ -1637,7 +1629,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_36d5733e27207cb1, []int{20} + return fileDescriptor_ws_c0d333d3b0a04e48, []int{20} } func (m *GroupApplicationAcceptedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupApplicationAcceptedTips.Unmarshal(m, b) @@ -1692,7 +1684,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_36d5733e27207cb1, []int{21} + return fileDescriptor_ws_c0d333d3b0a04e48, []int{21} } func (m *GroupApplicationRejectedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupApplicationRejectedTips.Unmarshal(m, b) @@ -1748,7 +1740,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_36d5733e27207cb1, []int{22} + return fileDescriptor_ws_c0d333d3b0a04e48, []int{22} } func (m *GroupOwnerTransferredTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupOwnerTransferredTips.Unmarshal(m, b) @@ -1811,7 +1803,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_36d5733e27207cb1, []int{23} + return fileDescriptor_ws_c0d333d3b0a04e48, []int{23} } func (m *MemberKickedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MemberKickedTips.Unmarshal(m, b) @@ -1874,7 +1866,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_36d5733e27207cb1, []int{24} + return fileDescriptor_ws_c0d333d3b0a04e48, []int{24} } func (m *MemberInvitedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MemberInvitedTips.Unmarshal(m, b) @@ -1936,7 +1928,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_36d5733e27207cb1, []int{25} + return fileDescriptor_ws_c0d333d3b0a04e48, []int{25} } func (m *MemberEnterTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MemberEnterTips.Unmarshal(m, b) @@ -1990,7 +1982,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_36d5733e27207cb1, []int{26} + return fileDescriptor_ws_c0d333d3b0a04e48, []int{26} } func (m *FriendApplication) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FriendApplication.Unmarshal(m, b) @@ -2043,7 +2035,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_36d5733e27207cb1, []int{27} + return fileDescriptor_ws_c0d333d3b0a04e48, []int{27} } func (m *FromToUserID) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FromToUserID.Unmarshal(m, b) @@ -2089,7 +2081,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_36d5733e27207cb1, []int{28} + return fileDescriptor_ws_c0d333d3b0a04e48, []int{28} } func (m *FriendApplicationTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FriendApplicationTips.Unmarshal(m, b) @@ -2129,7 +2121,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_36d5733e27207cb1, []int{29} + return fileDescriptor_ws_c0d333d3b0a04e48, []int{29} } func (m *FriendApplicationApprovedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FriendApplicationApprovedTips.Unmarshal(m, b) @@ -2176,7 +2168,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_36d5733e27207cb1, []int{30} + return fileDescriptor_ws_c0d333d3b0a04e48, []int{30} } func (m *FriendApplicationRejectedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FriendApplicationRejectedTips.Unmarshal(m, b) @@ -2224,7 +2216,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_36d5733e27207cb1, []int{31} + return fileDescriptor_ws_c0d333d3b0a04e48, []int{31} } func (m *FriendAddedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FriendAddedTips.Unmarshal(m, b) @@ -2277,7 +2269,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_36d5733e27207cb1, []int{32} + return fileDescriptor_ws_c0d333d3b0a04e48, []int{32} } func (m *FriendDeletedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FriendDeletedTips.Unmarshal(m, b) @@ -2315,7 +2307,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_36d5733e27207cb1, []int{33} + return fileDescriptor_ws_c0d333d3b0a04e48, []int{33} } func (m *BlackAddedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_BlackAddedTips.Unmarshal(m, b) @@ -2353,7 +2345,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_36d5733e27207cb1, []int{34} + return fileDescriptor_ws_c0d333d3b0a04e48, []int{34} } func (m *BlackDeletedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_BlackDeletedTips.Unmarshal(m, b) @@ -2391,7 +2383,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_36d5733e27207cb1, []int{35} + return fileDescriptor_ws_c0d333d3b0a04e48, []int{35} } func (m *FriendInfoChangedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FriendInfoChangedTips.Unmarshal(m, b) @@ -2430,7 +2422,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_36d5733e27207cb1, []int{36} + return fileDescriptor_ws_c0d333d3b0a04e48, []int{36} } func (m *UserInfoUpdatedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_UserInfoUpdatedTips.Unmarshal(m, b) @@ -2498,128 +2490,127 @@ func init() { proto.RegisterType((*UserInfoUpdatedTips)(nil), "server_api_params.UserInfoUpdatedTips") } -func init() { proto.RegisterFile("sdk_ws/ws.proto", fileDescriptor_ws_36d5733e27207cb1) } - -var fileDescriptor_ws_36d5733e27207cb1 = []byte{ - // 1911 bytes of a gzipped FileDescriptorProto - 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x59, 0x4f, 0x6f, 0x23, 0x4b, - 0x11, 0xd7, 0xd8, 0xb1, 0x63, 0x97, 0xe3, 0x38, 0x3b, 0xfb, 0x58, 0xcc, 0xb2, 0x6f, 0x09, 0xa3, - 0xa7, 0xc7, 0x0a, 0x89, 0x20, 0x2d, 0x42, 0x82, 0x45, 0x80, 0xb2, 0xc9, 0x26, 0xec, 0x23, 0x4e, - 0xc2, 0x38, 0xab, 0xc7, 0x01, 0x69, 0x35, 0xf1, 0xb4, 0x9d, 0x79, 0x19, 0x77, 0x8f, 0xbb, 0x67, - 0xb2, 0xbb, 0x12, 0x27, 0xf8, 0x0c, 0x70, 0xe4, 0xc0, 0x05, 0x71, 0x41, 0x5c, 0x10, 0x17, 0x8e, - 0x7c, 0x01, 0xce, 0x7c, 0x05, 0xae, 0x1c, 0x90, 0x90, 0x40, 0x5d, 0xdd, 0x33, 0xd3, 0x3d, 0x76, - 0xf2, 0x2c, 0x2b, 0xda, 0xbc, 0x9b, 0xab, 0xa6, 0xab, 0xba, 0xea, 0x57, 0x7f, 0xba, 0xba, 0x0d, - 0x3d, 0x11, 0x5e, 0xbe, 0x7e, 0x23, 0xbe, 0xfd, 0x46, 0xec, 0x24, 0x9c, 0xa5, 0xcc, 0xbd, 0x27, - 0x08, 0xbf, 0x22, 0xfc, 0x75, 0x90, 0x44, 0xaf, 0x93, 0x80, 0x07, 0x53, 0xe1, 0xfd, 0xbb, 0x06, - 0xed, 0x43, 0xce, 0xb2, 0xe4, 0x25, 0x1d, 0x33, 0xb7, 0x0f, 0xeb, 0x13, 0x24, 0xf6, 0xfb, 0xce, - 0xb6, 0xf3, 0xa4, 0xed, 0xe7, 0xa4, 0xfb, 0x08, 0xda, 0xf8, 0xf3, 0x38, 0x98, 0x92, 0x7e, 0x0d, - 0xbf, 0x95, 0x0c, 0xd7, 0x83, 0x0d, 0xca, 0xd2, 0x68, 0x1c, 0x8d, 0x82, 0x34, 0x62, 0xb4, 0x5f, - 0xc7, 0x05, 0x16, 0x4f, 0xae, 0x89, 0x68, 0xca, 0x59, 0x98, 0x8d, 0x70, 0xcd, 0x9a, 0x5a, 0x63, - 0xf2, 0xe4, 0xfe, 0xe3, 0x60, 0x44, 0x5e, 0xf9, 0x47, 0xfd, 0x86, 0xda, 0x5f, 0x93, 0xee, 0x36, - 0x74, 0xd8, 0x1b, 0x4a, 0xf8, 0x2b, 0x41, 0xf8, 0xcb, 0xfd, 0x7e, 0x13, 0xbf, 0x9a, 0x2c, 0xf7, - 0x31, 0xc0, 0x88, 0x93, 0x20, 0x25, 0x67, 0xd1, 0x94, 0xf4, 0xd7, 0xb7, 0x9d, 0x27, 0x5d, 0xdf, - 0xe0, 0x48, 0x0d, 0x53, 0x32, 0x3d, 0x27, 0x7c, 0x8f, 0x65, 0x34, 0xed, 0xb7, 0x70, 0x81, 0xc9, - 0x72, 0x37, 0xa1, 0x46, 0xde, 0xf6, 0xdb, 0xa8, 0xba, 0x46, 0xde, 0xba, 0x0f, 0xa0, 0x29, 0xd2, - 0x20, 0xcd, 0x44, 0x1f, 0xb6, 0x9d, 0x27, 0x0d, 0x5f, 0x53, 0xee, 0x47, 0xd0, 0x45, 0xbd, 0x2c, - 0xb7, 0xa6, 0x83, 0x22, 0x36, 0xb3, 0x40, 0xec, 0xec, 0x5d, 0x42, 0xfa, 0x1b, 0xa8, 0xa0, 0x64, - 0x78, 0x7f, 0xad, 0xc1, 0x7d, 0xc4, 0x7d, 0x80, 0x06, 0x1c, 0x64, 0x71, 0xfc, 0x39, 0x11, 0x78, - 0x00, 0xcd, 0x4c, 0x6d, 0xa7, 0xe0, 0xd7, 0x94, 0xdc, 0x87, 0xb3, 0x98, 0x1c, 0x91, 0x2b, 0x12, - 0x23, 0xf0, 0x0d, 0xbf, 0x64, 0xb8, 0x0f, 0xa1, 0xf5, 0x19, 0x8b, 0x28, 0x62, 0x22, 0x11, 0xaf, - 0xfb, 0x05, 0x2d, 0xbf, 0xd1, 0x68, 0x74, 0x49, 0x65, 0x48, 0x15, 0xdc, 0x05, 0x6d, 0x46, 0xa2, - 0x69, 0x47, 0xe2, 0x63, 0xd8, 0x0c, 0x92, 0x64, 0x10, 0xd0, 0x09, 0xe1, 0x6a, 0xd3, 0x75, 0xdc, - 0xb4, 0xc2, 0x95, 0xf1, 0x90, 0x3b, 0x0d, 0x59, 0xc6, 0x47, 0x04, 0xe1, 0x6e, 0xf8, 0x06, 0x47, - 0xea, 0x61, 0x09, 0xe1, 0x06, 0x8c, 0x0a, 0xf9, 0x0a, 0x57, 0x47, 0x05, 0xf2, 0xa8, 0x78, 0xbf, - 0x73, 0x60, 0xf3, 0x34, 0x3b, 0x8f, 0xa3, 0x11, 0x2e, 0x90, 0xa0, 0x95, 0xd0, 0x38, 0x16, 0x34, - 0xa6, 0x83, 0xb5, 0xeb, 0x1d, 0xac, 0xdb, 0x0e, 0x3e, 0x80, 0xe6, 0x84, 0xd0, 0x90, 0x70, 0x04, - 0xac, 0xe1, 0x6b, 0x6a, 0x81, 0xe3, 0x8d, 0x45, 0x8e, 0x7b, 0xbf, 0xad, 0x41, 0xeb, 0x3d, 0x9b, - 0xb6, 0x0d, 0x9d, 0xe4, 0x82, 0x51, 0x72, 0x9c, 0xc9, 0x64, 0xd2, 0xc1, 0x34, 0x59, 0xee, 0x07, - 0xd0, 0x38, 0x8f, 0x78, 0x7a, 0x81, 0xd1, 0xec, 0xfa, 0x8a, 0x90, 0x5c, 0x32, 0x0d, 0x22, 0x15, - 0xc2, 0xb6, 0xaf, 0x08, 0x8d, 0x78, 0xab, 0xa8, 0x03, 0xbb, 0xb2, 0xda, 0x73, 0x95, 0x35, 0x0f, - 0x0c, 0x2c, 0x04, 0xe6, 0x3f, 0x0e, 0xc0, 0x01, 0x8f, 0x08, 0x0d, 0x11, 0x9a, 0x4a, 0x49, 0x3b, - 0xf3, 0x25, 0xfd, 0x00, 0x9a, 0x9c, 0x4c, 0x03, 0x7e, 0x99, 0xa7, 0xbc, 0xa2, 0x2a, 0x06, 0xd5, - 0xe7, 0x0c, 0xfa, 0x01, 0xc0, 0x18, 0xf7, 0x91, 0x7a, 0x10, 0xaa, 0xce, 0xd3, 0xaf, 0xee, 0xcc, - 0x35, 0xbf, 0x9d, 0x3c, 0x4a, 0xbe, 0xb1, 0x5c, 0xd6, 0x53, 0x10, 0x86, 0x3a, 0x6d, 0x55, 0x84, - 0x4b, 0xc6, 0x82, 0xac, 0x6d, 0xde, 0x90, 0xb5, 0xeb, 0x45, 0xd6, 0xfe, 0xcb, 0x81, 0xf6, 0xf3, - 0x38, 0x18, 0x5d, 0x2e, 0xe9, 0xba, 0xed, 0x62, 0x6d, 0xce, 0xc5, 0x43, 0xe8, 0x9e, 0x4b, 0x75, - 0xb9, 0x0b, 0x88, 0x42, 0xe7, 0xe9, 0xd7, 0x17, 0x78, 0x69, 0x17, 0x8b, 0x6f, 0xcb, 0xd9, 0xee, - 0xae, 0x7d, 0xbe, 0xbb, 0x8d, 0x1b, 0xdc, 0x6d, 0x16, 0xee, 0xfe, 0xa3, 0x06, 0x1b, 0xd8, 0xde, - 0x7c, 0x32, 0xcb, 0x88, 0x48, 0xdd, 0x1f, 0x42, 0x2b, 0xcb, 0x4d, 0x75, 0x96, 0x35, 0xb5, 0x10, - 0x71, 0x9f, 0xe9, 0x66, 0x8a, 0xf2, 0x35, 0x94, 0x7f, 0xb4, 0x40, 0xbe, 0x38, 0xc9, 0xfc, 0x72, - 0xb9, 0x3c, 0x78, 0x2e, 0x02, 0x1a, 0xc6, 0xc4, 0x27, 0x22, 0x8b, 0x53, 0xdd, 0x23, 0x2d, 0x9e, - 0xca, 0xb4, 0xd9, 0x40, 0x4c, 0xf4, 0xb1, 0xa4, 0x29, 0x89, 0x8e, 0x5a, 0x27, 0x3f, 0x29, 0xd7, - 0x4b, 0x86, 0x2c, 0x54, 0x4e, 0x66, 0x18, 0x21, 0x55, 0x56, 0x39, 0x59, 0xee, 0xa9, 0x51, 0x53, - 0x89, 0x60, 0xf1, 0x64, 0x88, 0x15, 0x8d, 0x0a, 0xd4, 0x79, 0x64, 0x70, 0xaa, 0xc7, 0x91, 0xf7, - 0xcf, 0x3a, 0x74, 0x55, 0xf9, 0xe4, 0xa0, 0x3e, 0x96, 0x79, 0xce, 0xa6, 0x56, 0x16, 0x19, 0x1c, - 0x69, 0x85, 0xa4, 0x8e, 0xed, 0x46, 0x63, 0xf1, 0x64, 0x2a, 0x4a, 0xfa, 0xc0, 0x6a, 0x38, 0x26, - 0x2b, 0xdf, 0xe5, 0xd0, 0x6c, 0x3c, 0x06, 0x47, 0xb6, 0xb2, 0x94, 0x59, 0xd9, 0x51, 0xd0, 0x52, - 0x36, 0x65, 0xc5, 0xfe, 0x2a, 0x3f, 0x0c, 0x8e, 0xc4, 0x37, 0x65, 0xf9, 0xde, 0x0a, 0xa4, 0x92, - 0xa1, 0x34, 0xeb, 0x7d, 0xd5, 0x01, 0x52, 0xd0, 0x73, 0x51, 0x6d, 0xdf, 0x18, 0x55, 0xb0, 0xa2, - 0x6a, 0x17, 0x57, 0x67, 0xae, 0xb8, 0x3e, 0x82, 0xae, 0xd2, 0x93, 0x27, 0xfd, 0x86, 0x3a, 0xe0, - 0x2d, 0xa6, 0x9d, 0x1b, 0xdd, 0x6a, 0x6e, 0xd8, 0xd1, 0xdd, 0xbc, 0x26, 0xba, 0xbd, 0x22, 0xba, - 0xbf, 0x84, 0xfe, 0x69, 0x16, 0xc7, 0x03, 0x22, 0x44, 0x30, 0x21, 0xcf, 0xdf, 0x0d, 0xc9, 0xec, - 0x28, 0x12, 0xa9, 0x4f, 0x44, 0x22, 0xf3, 0x8c, 0x70, 0xbe, 0xc7, 0x42, 0x82, 0x41, 0x6e, 0xf8, - 0x39, 0x29, 0x3d, 0x24, 0x9c, 0x4b, 0x03, 0x74, 0x87, 0x54, 0x94, 0xbb, 0x03, 0x6b, 0x71, 0x24, - 0x64, 0xae, 0xd7, 0x9f, 0x74, 0x9e, 0x3e, 0x5c, 0x50, 0x2a, 0x03, 0x31, 0xd9, 0x0f, 0xd2, 0xc0, - 0xc7, 0x75, 0xde, 0x14, 0xbe, 0xbc, 0x78, 0xf7, 0xd9, 0xb5, 0x27, 0x98, 0xec, 0x61, 0xd8, 0x04, - 0x22, 0x46, 0x8b, 0xa1, 0xc4, 0x64, 0x49, 0xb3, 0x85, 0xd2, 0x83, 0x76, 0x74, 0xfd, 0x9c, 0xf4, - 0x3e, 0x00, 0xf7, 0x90, 0xa4, 0x83, 0xe0, 0xed, 0x2e, 0x0d, 0x07, 0x11, 0x1d, 0x92, 0x99, 0x4f, - 0x66, 0xde, 0x0b, 0xb8, 0x3f, 0xc7, 0x15, 0x89, 0x34, 0x60, 0x1a, 0xbc, 0x1d, 0x92, 0x19, 0x1a, - 0xd0, 0xf5, 0x35, 0x85, 0x7c, 0x5c, 0xa5, 0xdb, 0xa3, 0xa6, 0xbc, 0x19, 0xf4, 0x64, 0x84, 0x86, - 0x84, 0x86, 0x03, 0x31, 0x41, 0x15, 0xdb, 0xd0, 0x51, 0x08, 0x0c, 0xc4, 0xa4, 0xec, 0xb7, 0x06, - 0x4b, 0xae, 0x18, 0xc5, 0x11, 0xa1, 0xa9, 0x5a, 0xa1, 0xbd, 0x31, 0x58, 0x32, 0x19, 0x05, 0xa1, - 0x61, 0x71, 0xe4, 0xd4, 0xfd, 0x82, 0xf6, 0xfe, 0xd6, 0x80, 0x75, 0x0d, 0x28, 0x4e, 0x8d, 0xf2, - 0x88, 0x2b, 0xf0, 0x52, 0x94, 0x4a, 0xc6, 0xd1, 0x55, 0x39, 0xbf, 0x29, 0xca, 0x9c, 0xf8, 0xea, - 0xf6, 0xc4, 0x57, 0xb1, 0x69, 0x6d, 0xde, 0xa6, 0x8a, 0x5f, 0x8d, 0x79, 0xbf, 0xbe, 0x09, 0x5b, - 0x02, 0x0b, 0xe6, 0x34, 0x0e, 0xd2, 0x31, 0xe3, 0x53, 0x7d, 0x62, 0x35, 0xfc, 0x39, 0xbe, 0x6c, - 0xf6, 0x8a, 0x57, 0x14, 0xac, 0xaa, 0xc8, 0x0a, 0x57, 0x96, 0x87, 0xe2, 0xe4, 0x85, 0xab, 0x46, - 0x05, 0x9b, 0xa9, 0x6c, 0x13, 0x22, 0x62, 0x14, 0x27, 0x60, 0x55, 0x9f, 0x26, 0x4b, 0x7a, 0x3e, - 0x15, 0x93, 0x03, 0xce, 0xa6, 0x7a, 0x60, 0xc8, 0x49, 0xf4, 0x9c, 0xd1, 0x94, 0xd0, 0x14, 0x65, - 0x3b, 0x4a, 0xd6, 0x60, 0x49, 0x59, 0x4d, 0x62, 0x71, 0x6e, 0xf8, 0x39, 0xe9, 0x6e, 0x41, 0x5d, - 0x90, 0x99, 0xae, 0x38, 0xf9, 0xd3, 0x8a, 0x5c, 0xcf, 0x8e, 0x5c, 0xa5, 0x15, 0x6c, 0xe1, 0x57, - 0xb3, 0x15, 0x94, 0x77, 0x80, 0x7b, 0xd6, 0x1d, 0x60, 0x17, 0xd6, 0x59, 0x22, 0xf3, 0x5c, 0xf4, - 0x5d, 0xac, 0xb1, 0x6f, 0x5c, 0x5f, 0x63, 0x3b, 0x27, 0x6a, 0xe5, 0x0b, 0x9a, 0xf2, 0x77, 0x7e, - 0x2e, 0xe7, 0x1e, 0x41, 0x8f, 0x8d, 0xc7, 0x71, 0x44, 0xc9, 0x69, 0x26, 0x2e, 0xf0, 0x64, 0xbb, - 0x8f, 0x27, 0x9b, 0xb7, 0x40, 0xd5, 0x89, 0xbd, 0xd2, 0xaf, 0x8a, 0x3e, 0x7c, 0x06, 0x1b, 0xe6, - 0x36, 0x12, 0x86, 0x4b, 0xf2, 0x4e, 0xe7, 0xa0, 0xfc, 0x29, 0x87, 0xbd, 0xab, 0x20, 0xce, 0xd4, - 0x31, 0xd0, 0xf2, 0x15, 0xf1, 0xac, 0xf6, 0x3d, 0xc7, 0xfb, 0x8d, 0x03, 0xbd, 0xca, 0x06, 0x72, - 0x75, 0x1a, 0xa5, 0x31, 0xd1, 0x1a, 0x14, 0xe1, 0xba, 0xb0, 0x16, 0x12, 0x31, 0xd2, 0x29, 0x8c, - 0xbf, 0x75, 0x27, 0xab, 0x17, 0xe3, 0xa2, 0xbc, 0xe8, 0x9d, 0x0c, 0xa5, 0xa2, 0x21, 0xcb, 0x68, - 0x58, 0x5c, 0xf4, 0x0c, 0x9e, 0x4c, 0xa1, 0xe8, 0x64, 0xf8, 0x3c, 0x08, 0x27, 0x44, 0x5d, 0xc7, - 0x1a, 0x68, 0x93, 0xcd, 0xf4, 0x42, 0x68, 0x9d, 0x45, 0x89, 0xd8, 0x63, 0xd3, 0xa9, 0x0c, 0x44, - 0x48, 0x52, 0x39, 0xab, 0x3a, 0x18, 0x6f, 0x4d, 0xc9, 0x54, 0x09, 0xc9, 0x38, 0xc8, 0xe2, 0x54, - 0x2e, 0xcd, 0x0b, 0xd7, 0x60, 0xe1, 0x45, 0x44, 0x30, 0xba, 0xaf, 0xa4, 0x95, 0x9d, 0x06, 0xc7, - 0xfb, 0x7b, 0x0d, 0xb6, 0x70, 0x70, 0xd8, 0xc3, 0xb0, 0x87, 0x28, 0xf4, 0x14, 0x1a, 0x58, 0x86, - 0x7a, 0x58, 0xb9, 0x79, 0xd8, 0x50, 0x4b, 0xdd, 0x1f, 0x41, 0x93, 0x25, 0x38, 0x72, 0xaa, 0x09, - 0xe5, 0xe3, 0xeb, 0x84, 0xec, 0x3b, 0x9f, 0xaf, 0xa5, 0xdc, 0x03, 0x00, 0x75, 0x1d, 0x3d, 0x2a, - 0x5b, 0xf7, 0xb2, 0x3a, 0x0c, 0x49, 0x09, 0x6e, 0xd1, 0x86, 0x8d, 0x8b, 0x9f, 0xcd, 0x74, 0x8f, - 0x61, 0x13, 0xcd, 0x3e, 0xc9, 0xa7, 0x4e, 0x8c, 0xc1, 0xf2, 0x3b, 0x56, 0xa4, 0xbd, 0xdf, 0x3b, - 0x1a, 0x46, 0xf9, 0x75, 0x48, 0x14, 0xf6, 0x25, 0x24, 0xce, 0x4a, 0x90, 0x3c, 0x84, 0xd6, 0x34, - 0x33, 0x86, 0xe0, 0xba, 0x5f, 0xd0, 0x65, 0x88, 0xea, 0x4b, 0x87, 0xc8, 0xfb, 0x83, 0x03, 0xfd, - 0x4f, 0x58, 0x44, 0xf1, 0xc3, 0x6e, 0x92, 0xc4, 0xfa, 0x75, 0x62, 0xe5, 0x98, 0xff, 0x18, 0xda, - 0x81, 0x52, 0x43, 0x53, 0x1d, 0xf6, 0x25, 0x06, 0xdb, 0x52, 0xc6, 0x98, 0x51, 0xea, 0xe6, 0x8c, - 0xe2, 0xfd, 0xc9, 0x81, 0x4d, 0x05, 0xca, 0xcf, 0xb2, 0x28, 0x5d, 0xd9, 0xbe, 0xe7, 0xd0, 0x9a, - 0x65, 0x51, 0xba, 0x42, 0x56, 0x16, 0x72, 0xf3, 0xf9, 0x54, 0x5f, 0x90, 0x4f, 0xde, 0x9f, 0x1d, - 0x78, 0x54, 0x85, 0x75, 0x77, 0x34, 0x22, 0xc9, 0x5d, 0x96, 0x94, 0x35, 0xa3, 0xad, 0x55, 0x66, - 0xb4, 0x85, 0x26, 0xfb, 0xe4, 0x33, 0x32, 0xfa, 0xe2, 0x9a, 0xfc, 0xeb, 0x1a, 0x7c, 0xe5, 0xb0, - 0x28, 0xbc, 0x33, 0x1e, 0x50, 0x31, 0x26, 0x9c, 0xdf, 0xa1, 0xbd, 0x47, 0xd0, 0xa5, 0xe4, 0x4d, - 0x69, 0x93, 0x2e, 0xc7, 0x65, 0xd5, 0xd8, 0xc2, 0xcb, 0xf5, 0x2e, 0xef, 0xbf, 0x0e, 0x6c, 0x29, - 0x3d, 0x3f, 0x8d, 0x46, 0x97, 0x77, 0xe8, 0xfc, 0x31, 0x6c, 0x5e, 0xa2, 0x05, 0x92, 0x5a, 0xa1, - 0x6d, 0x57, 0xa4, 0x97, 0x74, 0xff, 0x7f, 0x0e, 0xdc, 0x53, 0x8a, 0x5e, 0xd2, 0xab, 0xe8, 0x2e, - 0x93, 0xf5, 0x14, 0x7a, 0x91, 0x32, 0x61, 0x45, 0x00, 0xaa, 0xe2, 0x4b, 0x22, 0xf0, 0x17, 0x07, - 0x7a, 0x4a, 0xd3, 0x0b, 0x9a, 0x12, 0xbe, 0xb2, 0xff, 0x3f, 0x81, 0x0e, 0xa1, 0x29, 0x0f, 0xe8, - 0x2a, 0x1d, 0xd2, 0x14, 0x5d, 0xb2, 0x49, 0x5e, 0xc2, 0x3d, 0x75, 0x85, 0x37, 0x3a, 0x8e, 0x9c, - 0x65, 0x83, 0x50, 0x8d, 0xa7, 0x0e, 0x0a, 0xe5, 0xa4, 0xfd, 0x38, 0xa3, 0x5f, 0xdd, 0xcb, 0xc7, - 0x99, 0xc7, 0x00, 0x41, 0x18, 0x7e, 0xca, 0x78, 0x18, 0xd1, 0xfc, 0xf8, 0x30, 0x38, 0xde, 0x27, - 0xb0, 0x21, 0xa7, 0xe9, 0x33, 0xe3, 0x32, 0x7e, 0xe3, 0x73, 0x81, 0x79, 0x91, 0xaf, 0xd9, 0x17, - 0x79, 0xef, 0x17, 0xf0, 0xa5, 0x39, 0xc3, 0x11, 0xf5, 0x3d, 0xf5, 0xc6, 0x90, 0x6f, 0xa2, 0xc1, - 0xff, 0xda, 0x02, 0x08, 0x4d, 0x5b, 0x7c, 0x4b, 0xc8, 0xfb, 0x95, 0x03, 0x1f, 0xce, 0xa9, 0xdf, - 0x4d, 0x12, 0xce, 0xae, 0x74, 0x72, 0xdf, 0xc6, 0x36, 0x76, 0x6b, 0xad, 0x55, 0x5b, 0xeb, 0x42, - 0x23, 0xac, 0xe3, 0xe0, 0x3d, 0x18, 0xf1, 0x47, 0x07, 0x7a, 0xda, 0x88, 0x30, 0xd4, 0xdb, 0x7e, - 0x17, 0x9a, 0xea, 0x7d, 0x52, 0x6f, 0xf8, 0xe1, 0xc2, 0x0d, 0xf3, 0x77, 0x55, 0x5f, 0x2f, 0x9e, - 0xcf, 0xc8, 0xda, 0xa2, 0x31, 0xf0, 0xfb, 0x45, 0x07, 0x58, 0xfa, 0x05, 0x51, 0x0b, 0x78, 0x3f, - 0xcf, 0x93, 0x79, 0x9f, 0xc4, 0xe4, 0x36, 0x31, 0xf2, 0x5e, 0xc1, 0x26, 0x3e, 0x96, 0x96, 0x18, - 0xdc, 0x8a, 0xda, 0x4f, 0x61, 0x0b, 0xd5, 0xde, 0xba, 0xbd, 0x45, 0x75, 0x48, 0x7c, 0xf6, 0x2e, - 0x02, 0x3a, 0xb9, 0x4d, 0xed, 0xdf, 0x82, 0xfb, 0x39, 0xf6, 0xaf, 0x92, 0xb0, 0xb8, 0xa2, 0x5c, - 0xf3, 0x30, 0x73, 0xde, 0xc4, 0x3f, 0xfb, 0xbe, 0xf3, 0xff, 0x00, 0x00, 0x00, 0xff, 0xff, 0xe5, - 0xdc, 0xac, 0x39, 0xff, 0x1b, 0x00, 0x00, +func init() { proto.RegisterFile("sdk_ws/ws.proto", fileDescriptor_ws_c0d333d3b0a04e48) } + +var fileDescriptor_ws_c0d333d3b0a04e48 = []byte{ + // 1903 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x59, 0x4f, 0x6f, 0x23, 0x49, + 0x15, 0x57, 0xdb, 0xb1, 0x63, 0x3f, 0xc7, 0x71, 0xa6, 0x67, 0x19, 0xcc, 0x30, 0x3b, 0x84, 0xd6, + 0x6a, 0x19, 0x21, 0x11, 0xa4, 0x41, 0x48, 0x30, 0x08, 0x50, 0x26, 0x99, 0x84, 0x59, 0xe2, 0x24, + 0xb4, 0x33, 0x5a, 0x0e, 0x48, 0xa3, 0x8e, 0xbb, 0xec, 0xf4, 0xa6, 0x5d, 0xd5, 0xae, 0xea, 0xce, + 0xcc, 0x48, 0x9c, 0xe0, 0x33, 0xc0, 0x07, 0xe0, 0x82, 0xb8, 0x20, 0x2e, 0x88, 0x0b, 0x47, 0xbe, + 0x00, 0x67, 0xbe, 0x02, 0x57, 0x0e, 0x48, 0x48, 0xa0, 0x7a, 0x55, 0xdd, 0x5d, 0xd5, 0xed, 0x64, + 0xad, 0x28, 0xda, 0xe1, 0xe6, 0xf7, 0xeb, 0x7a, 0x7f, 0xea, 0xfd, 0xab, 0x57, 0x65, 0x18, 0x88, + 0xf0, 0xf2, 0xf5, 0x1b, 0xf1, 0xed, 0x37, 0x62, 0x27, 0xe1, 0x2c, 0x65, 0xee, 0x3d, 0x41, 0xf8, + 0x15, 0xe1, 0xaf, 0x83, 0x24, 0x7a, 0x9d, 0x04, 0x3c, 0x98, 0x0b, 0xef, 0x5f, 0x0d, 0xe8, 0x1e, + 0x72, 0x96, 0x25, 0x2f, 0xe9, 0x94, 0xb9, 0x43, 0x58, 0x9f, 0x21, 0xb1, 0x3f, 0x74, 0xb6, 0x9d, + 0x27, 0x5d, 0x3f, 0x27, 0xdd, 0x47, 0xd0, 0xc5, 0x9f, 0xc7, 0xc1, 0x9c, 0x0c, 0x1b, 0xf8, 0xad, + 0x04, 0x5c, 0x0f, 0x36, 0x28, 0x4b, 0xa3, 0x69, 0x34, 0x09, 0xd2, 0x88, 0xd1, 0x61, 0x13, 0x17, + 0x58, 0x98, 0x5c, 0x13, 0xd1, 0x94, 0xb3, 0x30, 0x9b, 0xe0, 0x9a, 0x35, 0xb5, 0xc6, 0xc4, 0xa4, + 0xfe, 0x69, 0x30, 0x21, 0xaf, 0xfc, 0xa3, 0x61, 0x4b, 0xe9, 0xd7, 0xa4, 0xbb, 0x0d, 0x3d, 0xf6, + 0x86, 0x12, 0xfe, 0x4a, 0x10, 0xfe, 0x72, 0x7f, 0xd8, 0xc6, 0xaf, 0x26, 0xe4, 0x3e, 0x06, 0x98, + 0x70, 0x12, 0xa4, 0xe4, 0x2c, 0x9a, 0x93, 0xe1, 0xfa, 0xb6, 0xf3, 0xa4, 0xef, 0x1b, 0x88, 0x94, + 0x30, 0x27, 0xf3, 0x73, 0xc2, 0xf7, 0x58, 0x46, 0xd3, 0x61, 0x07, 0x17, 0x98, 0x90, 0xbb, 0x09, + 0x0d, 0xf2, 0x76, 0xd8, 0x45, 0xd1, 0x0d, 0xf2, 0xd6, 0x7d, 0x00, 0x6d, 0x91, 0x06, 0x69, 0x26, + 0x86, 0xb0, 0xed, 0x3c, 0x69, 0xf9, 0x9a, 0x72, 0x3f, 0x82, 0x3e, 0xca, 0x65, 0xb9, 0x35, 0x3d, + 0x64, 0xb1, 0xc1, 0xc2, 0x63, 0x67, 0xef, 0x12, 0x32, 0xdc, 0x40, 0x01, 0x25, 0xe0, 0xfd, 0xa5, + 0x01, 0xf7, 0xd1, 0xef, 0x23, 0x34, 0xe0, 0x20, 0x8b, 0xe3, 0xcf, 0x89, 0xc0, 0x03, 0x68, 0x67, + 0x4a, 0x9d, 0x72, 0xbf, 0xa6, 0xa4, 0x1e, 0xce, 0x62, 0x72, 0x44, 0xae, 0x48, 0x8c, 0x8e, 0x6f, + 0xf9, 0x25, 0xe0, 0x3e, 0x84, 0xce, 0x67, 0x2c, 0xa2, 0xe8, 0x13, 0xe9, 0xf1, 0xa6, 0x5f, 0xd0, + 0xf2, 0x1b, 0x8d, 0x26, 0x97, 0x54, 0x86, 0x54, 0xb9, 0xbb, 0xa0, 0xcd, 0x48, 0xb4, 0xed, 0x48, + 0x7c, 0x0c, 0x9b, 0x41, 0x92, 0x8c, 0x02, 0x3a, 0x23, 0x5c, 0x29, 0x5d, 0x47, 0xa5, 0x15, 0x54, + 0xc6, 0x43, 0x6a, 0x1a, 0xb3, 0x8c, 0x4f, 0x08, 0xba, 0xbb, 0xe5, 0x1b, 0x88, 0x94, 0xc3, 0x12, + 0xc2, 0x0d, 0x37, 0x2a, 0xcf, 0x57, 0x50, 0x1d, 0x15, 0xc8, 0xa3, 0xe2, 0x5d, 0xc1, 0xe6, 0x69, + 0x76, 0x1e, 0x47, 0x13, 0xfc, 0x2e, 0x7d, 0x56, 0x7a, 0xc6, 0xb1, 0x3c, 0x63, 0xee, 0xaf, 0x71, + 0xfd, 0xfe, 0x9a, 0xf6, 0xfe, 0x1e, 0x40, 0x7b, 0x46, 0x68, 0x48, 0x38, 0xfa, 0xab, 0xe5, 0x6b, + 0xca, 0xfb, 0x6d, 0x03, 0x3a, 0x5f, 0xac, 0x4a, 0x99, 0xb2, 0xc9, 0x05, 0xa3, 0xe4, 0x38, 0x93, + 0x39, 0xa2, 0x63, 0x64, 0x42, 0xee, 0x07, 0xd0, 0x3a, 0x8f, 0x78, 0x7a, 0x81, 0x41, 0xea, 0xfb, + 0x8a, 0x90, 0x28, 0x99, 0x07, 0x91, 0x8a, 0x4c, 0xd7, 0x57, 0x84, 0x76, 0x64, 0xa7, 0x48, 0x6f, + 0xbb, 0x60, 0xba, 0xb5, 0x82, 0xa9, 0x07, 0x1a, 0x96, 0x05, 0xda, 0xfb, 0xb7, 0x03, 0x70, 0xc0, + 0x23, 0x42, 0x43, 0x74, 0x4d, 0xa5, 0x52, 0x9d, 0x7a, 0xa5, 0x3e, 0x80, 0x36, 0x27, 0xf3, 0x80, + 0x5f, 0xe6, 0x99, 0xac, 0xa8, 0x8a, 0x41, 0xcd, 0x9a, 0x41, 0x3f, 0x00, 0x98, 0xa2, 0x1e, 0x29, + 0x07, 0x5d, 0xd5, 0x7b, 0xfa, 0xd5, 0x9d, 0x5a, 0x4f, 0xdb, 0xc9, 0xa3, 0xe4, 0x1b, 0xcb, 0x65, + 0x99, 0x04, 0x61, 0xa8, 0xb3, 0xb1, 0xa5, 0xca, 0xa4, 0x00, 0x96, 0x24, 0x63, 0xfb, 0x86, 0x64, + 0x5c, 0x2f, 0x92, 0xf1, 0x9f, 0x0e, 0x74, 0x9f, 0xc7, 0xc1, 0xe4, 0x72, 0xc5, 0xad, 0xdb, 0x5b, + 0x6c, 0xd4, 0xb6, 0x78, 0x08, 0xfd, 0x73, 0x29, 0x2e, 0xdf, 0x02, 0x7a, 0xa1, 0xf7, 0xf4, 0xeb, + 0x4b, 0x76, 0x69, 0x17, 0x81, 0x6f, 0xf3, 0xd9, 0xdb, 0x5d, 0xfb, 0xfc, 0xed, 0xb6, 0x6e, 0xd8, + 0x6e, 0xbb, 0xd8, 0xee, 0xdf, 0x1b, 0xb0, 0x81, 0x5d, 0xcb, 0x27, 0x8b, 0x8c, 0x88, 0xd4, 0xfd, + 0x21, 0x74, 0xb2, 0xdc, 0x54, 0x67, 0x55, 0x53, 0x0b, 0x16, 0xf7, 0x99, 0xee, 0x91, 0xc8, 0xdf, + 0x40, 0xfe, 0x47, 0x4b, 0xf8, 0x8b, 0x03, 0xca, 0x2f, 0x97, 0xcb, 0xf3, 0xe4, 0x22, 0xa0, 0x61, + 0x4c, 0x7c, 0x22, 0xb2, 0x38, 0xd5, 0xad, 0xcf, 0xc2, 0x54, 0xa6, 0x2d, 0x46, 0x62, 0xa6, 0x4f, + 0x1b, 0x4d, 0x49, 0xef, 0xa8, 0x75, 0xf2, 0x93, 0xda, 0x7a, 0x09, 0xc8, 0x42, 0xe5, 0x64, 0x81, + 0x11, 0x52, 0x65, 0x95, 0x93, 0xa5, 0x4e, 0xed, 0x35, 0x95, 0x08, 0x16, 0x26, 0x43, 0xac, 0x68, + 0x14, 0xa0, 0x8e, 0x19, 0x03, 0xa9, 0x9e, 0x32, 0xde, 0x3f, 0x9a, 0xd0, 0x57, 0xe5, 0x93, 0x3b, + 0xf5, 0xb1, 0xcc, 0x73, 0x36, 0xb7, 0xb2, 0xc8, 0x40, 0xa4, 0x15, 0x92, 0x3a, 0xb6, 0x1b, 0x8d, + 0x85, 0xc9, 0x54, 0x94, 0xf4, 0x81, 0xd5, 0x70, 0x4c, 0x28, 0xd7, 0x72, 0x68, 0x36, 0x1e, 0x03, + 0x91, 0xad, 0x2c, 0x65, 0x56, 0x76, 0x14, 0xb4, 0xe4, 0x4d, 0x59, 0xa1, 0x5f, 0xe5, 0x87, 0x81, + 0x48, 0xff, 0xa6, 0x2c, 0xd7, 0xad, 0x9c, 0x54, 0x02, 0x4a, 0xb2, 0xd6, 0xab, 0xce, 0x85, 0x82, + 0xae, 0x45, 0xb5, 0x7b, 0x63, 0x54, 0xc1, 0x8a, 0xaa, 0x5d, 0x5c, 0xbd, 0x5a, 0x71, 0x7d, 0x04, + 0x7d, 0x25, 0x27, 0x4f, 0xfa, 0x0d, 0x75, 0x6e, 0x5b, 0xa0, 0x9d, 0x1b, 0xfd, 0x6a, 0x6e, 0xd8, + 0xd1, 0xdd, 0xbc, 0x26, 0xba, 0x83, 0x22, 0xba, 0xbf, 0x84, 0xe1, 0x69, 0x16, 0xc7, 0x23, 0x22, + 0x44, 0x30, 0x23, 0xcf, 0xdf, 0x8d, 0xc9, 0xe2, 0x28, 0x12, 0xa9, 0x4f, 0x44, 0x22, 0xf3, 0x8c, + 0x70, 0xbe, 0xc7, 0x42, 0x82, 0x41, 0x6e, 0xf9, 0x39, 0x29, 0x77, 0x48, 0x38, 0x97, 0x06, 0xe8, + 0x0e, 0xa9, 0x28, 0x77, 0x07, 0xd6, 0xe2, 0x48, 0xc8, 0x5c, 0x6f, 0x3e, 0xe9, 0x3d, 0x7d, 0xb8, + 0xa4, 0x54, 0x46, 0x62, 0xb6, 0x1f, 0xa4, 0x81, 0x8f, 0xeb, 0xbc, 0x39, 0x7c, 0x79, 0xb9, 0xf6, + 0xc5, 0xb5, 0x27, 0x98, 0xec, 0x61, 0xd8, 0x04, 0x22, 0x46, 0x8b, 0x59, 0xc3, 0x84, 0xa4, 0xd9, + 0x42, 0xc9, 0x41, 0x3b, 0xfa, 0x7e, 0x4e, 0x7a, 0x1f, 0x80, 0x7b, 0x48, 0xd2, 0x51, 0xf0, 0x76, + 0x97, 0x86, 0xa3, 0x88, 0x8e, 0xc9, 0xc2, 0x27, 0x0b, 0xef, 0x05, 0xdc, 0xaf, 0xa1, 0x22, 0x91, + 0x06, 0xcc, 0x83, 0xb7, 0x63, 0xb2, 0x40, 0x03, 0xfa, 0xbe, 0xa6, 0x10, 0xc7, 0x55, 0xba, 0x3d, + 0x6a, 0xca, 0x5b, 0xc0, 0x40, 0x46, 0x68, 0x4c, 0x68, 0x38, 0x12, 0x33, 0x14, 0xb1, 0x0d, 0x3d, + 0xe5, 0x81, 0x91, 0x98, 0x95, 0xfd, 0xd6, 0x80, 0xe4, 0x8a, 0x49, 0x1c, 0x11, 0x9a, 0xaa, 0x15, + 0x7a, 0x37, 0x06, 0x24, 0x93, 0x51, 0x10, 0x1a, 0x16, 0x47, 0x4e, 0xd3, 0x2f, 0x68, 0xef, 0xaf, + 0x2d, 0x58, 0xd7, 0x0e, 0xc5, 0x61, 0x50, 0x1e, 0x71, 0x85, 0xbf, 0x14, 0xa5, 0x92, 0x71, 0x72, + 0x55, 0x8e, 0x65, 0x8a, 0x32, 0x07, 0xb9, 0xa6, 0x3d, 0xc8, 0x55, 0x6c, 0x5a, 0xab, 0xdb, 0x54, + 0xd9, 0x57, 0xab, 0xbe, 0xaf, 0x6f, 0xc2, 0x96, 0xc0, 0x82, 0x39, 0x8d, 0x83, 0x74, 0xca, 0xf8, + 0x5c, 0x9f, 0x58, 0x2d, 0xbf, 0x86, 0xcb, 0x66, 0xaf, 0xb0, 0xa2, 0x60, 0x55, 0x45, 0x56, 0x50, + 0x59, 0x1e, 0x0a, 0xc9, 0x0b, 0x57, 0x8d, 0x0a, 0x36, 0xa8, 0x6c, 0x13, 0x22, 0x62, 0x14, 0x07, + 0x5b, 0x55, 0x9f, 0x26, 0x24, 0x77, 0x3e, 0x17, 0xb3, 0x03, 0xce, 0xe6, 0x7a, 0x60, 0xc8, 0x49, + 0xdc, 0x39, 0xa3, 0x29, 0xa1, 0x29, 0xf2, 0xf6, 0x14, 0xaf, 0x01, 0x49, 0x5e, 0x4d, 0x62, 0x71, + 0x6e, 0xf8, 0x39, 0xe9, 0x6e, 0x41, 0x53, 0x90, 0x85, 0xae, 0x38, 0xf9, 0xd3, 0x8a, 0xdc, 0xc0, + 0x8e, 0x5c, 0xa5, 0x15, 0x6c, 0xe1, 0x57, 0xb3, 0x15, 0x94, 0xa3, 0xfd, 0x3d, 0x6b, 0xb4, 0xdf, + 0x85, 0x75, 0x96, 0xc8, 0x3c, 0x17, 0x43, 0x17, 0x6b, 0xec, 0x1b, 0xd7, 0xd7, 0xd8, 0xce, 0x89, + 0x5a, 0xf9, 0x82, 0xa6, 0xfc, 0x9d, 0x9f, 0xf3, 0xb9, 0x47, 0x30, 0x60, 0xd3, 0x69, 0x1c, 0x51, + 0x72, 0x9a, 0x89, 0x0b, 0x3c, 0xd9, 0xee, 0xe3, 0xc9, 0xe6, 0x2d, 0x11, 0x75, 0x62, 0xaf, 0xf4, + 0xab, 0xac, 0x0f, 0x9f, 0xc1, 0x86, 0xa9, 0x46, 0xba, 0xe1, 0x92, 0xbc, 0xd3, 0x39, 0x28, 0x7f, + 0xca, 0x61, 0xef, 0x2a, 0x88, 0x33, 0x75, 0x0c, 0x74, 0x7c, 0x45, 0x3c, 0x6b, 0x7c, 0xcf, 0xf1, + 0x7e, 0xe3, 0xc0, 0xa0, 0xa2, 0x40, 0xae, 0x4e, 0xa3, 0x34, 0x26, 0x5a, 0x82, 0x22, 0x5c, 0x17, + 0xd6, 0x42, 0x22, 0x26, 0x3a, 0x85, 0xf1, 0xb7, 0xee, 0x64, 0xcd, 0x62, 0x5c, 0x94, 0xf7, 0xb7, + 0x93, 0xb1, 0x14, 0x34, 0x66, 0x19, 0x0d, 0x8b, 0xfb, 0x9b, 0x81, 0xc9, 0x14, 0x8a, 0x4e, 0xc6, + 0xcf, 0x83, 0x70, 0x46, 0xd4, 0x2d, 0xab, 0x85, 0x36, 0xd9, 0xa0, 0x17, 0x42, 0xe7, 0x2c, 0x4a, + 0xc4, 0x1e, 0x9b, 0xcf, 0x65, 0x20, 0x42, 0x92, 0xca, 0x59, 0xd5, 0xc1, 0x78, 0x6b, 0x4a, 0xa6, + 0x4a, 0x48, 0xa6, 0x41, 0x16, 0xa7, 0x72, 0x69, 0x5e, 0xb8, 0x06, 0x84, 0xf7, 0x0b, 0xc1, 0xe8, + 0xbe, 0xe2, 0x56, 0x76, 0x1a, 0x88, 0xf7, 0xb7, 0x06, 0x6c, 0xe1, 0xe0, 0xb0, 0x87, 0x61, 0x0f, + 0x91, 0xe9, 0x29, 0xb4, 0xb0, 0x0c, 0xf5, 0xb0, 0x72, 0xf3, 0xb0, 0xa1, 0x96, 0xba, 0x3f, 0x82, + 0x36, 0x4b, 0x70, 0xe4, 0x54, 0x13, 0xca, 0xc7, 0xd7, 0x31, 0xd9, 0x57, 0x39, 0x5f, 0x73, 0xb9, + 0x07, 0x00, 0xea, 0x96, 0x79, 0x54, 0xb6, 0xee, 0x55, 0x65, 0x18, 0x9c, 0xd2, 0xb9, 0x45, 0x1b, + 0x36, 0xee, 0x73, 0x36, 0xe8, 0x1e, 0xc3, 0x26, 0x9a, 0x7d, 0x92, 0x4f, 0x9d, 0x18, 0x83, 0xd5, + 0x35, 0x56, 0xb8, 0xbd, 0xdf, 0x39, 0xda, 0x8d, 0xf2, 0xeb, 0x98, 0x28, 0xdf, 0x97, 0x2e, 0x71, + 0x6e, 0xe5, 0x92, 0x87, 0xd0, 0x99, 0x67, 0xc6, 0x10, 0xdc, 0xf4, 0x0b, 0xba, 0x0c, 0x51, 0x73, + 0xe5, 0x10, 0x79, 0xbf, 0x77, 0x60, 0xf8, 0x09, 0x8b, 0x28, 0x7e, 0xd8, 0x4d, 0x92, 0x58, 0x3f, + 0x3a, 0xdc, 0x3a, 0xe6, 0x3f, 0x86, 0x6e, 0xa0, 0xc4, 0xd0, 0x54, 0x87, 0x7d, 0x85, 0xc1, 0xb6, + 0xe4, 0x31, 0x66, 0x94, 0xa6, 0x39, 0xa3, 0x78, 0x7f, 0x74, 0x60, 0x53, 0x39, 0xe5, 0x67, 0x59, + 0x94, 0xde, 0xda, 0xbe, 0xe7, 0xd0, 0x59, 0x64, 0x51, 0x7a, 0x8b, 0xac, 0x2c, 0xf8, 0xea, 0xf9, + 0xd4, 0x5c, 0x92, 0x4f, 0xde, 0x9f, 0x1c, 0x78, 0x54, 0x75, 0xeb, 0xee, 0x64, 0x42, 0x92, 0xf7, + 0x59, 0x52, 0xd6, 0x8c, 0xb6, 0x56, 0x99, 0xd1, 0x96, 0x9a, 0xec, 0x93, 0xcf, 0xc8, 0xe4, 0xff, + 0xd7, 0xe4, 0x5f, 0x37, 0xe0, 0x2b, 0x87, 0x45, 0xe1, 0x9d, 0xf1, 0x80, 0x8a, 0x29, 0xe1, 0xfc, + 0x3d, 0xda, 0x7b, 0x04, 0x7d, 0x4a, 0xde, 0x94, 0x36, 0xe9, 0x72, 0x5c, 0x55, 0x8c, 0xcd, 0xbc, + 0x5a, 0xef, 0xf2, 0xfe, 0xe3, 0xc0, 0x96, 0x92, 0xf3, 0xd3, 0x68, 0x72, 0xf9, 0x1e, 0x37, 0x7f, + 0x0c, 0x9b, 0x97, 0x68, 0x81, 0xa4, 0x6e, 0xd1, 0xb6, 0x2b, 0xdc, 0x2b, 0x6e, 0xff, 0xbf, 0x0e, + 0xdc, 0x53, 0x82, 0x5e, 0xd2, 0xab, 0xe8, 0x7d, 0x26, 0xeb, 0x29, 0x0c, 0x22, 0x65, 0xc2, 0x2d, + 0x1d, 0x50, 0x65, 0x5f, 0xd1, 0x03, 0x7f, 0x76, 0x60, 0xa0, 0x24, 0xbd, 0xa0, 0x29, 0xe1, 0xb7, + 0xde, 0xff, 0x4f, 0xa0, 0x47, 0x68, 0xca, 0x03, 0x7a, 0x9b, 0x0e, 0x69, 0xb2, 0xae, 0xd8, 0x24, + 0x2f, 0xe1, 0x9e, 0xba, 0xc2, 0x1b, 0x1d, 0x47, 0xce, 0xb2, 0x41, 0xa8, 0xc6, 0x53, 0x07, 0x99, + 0x72, 0xd2, 0x7e, 0x9c, 0xd1, 0x8f, 0xe9, 0xe5, 0xe3, 0xcc, 0x63, 0x80, 0x20, 0x0c, 0x3f, 0x65, + 0x3c, 0x8c, 0x68, 0x7e, 0x7c, 0x18, 0x88, 0xf7, 0x09, 0x6c, 0xc8, 0x69, 0xfa, 0xcc, 0xb8, 0x8c, + 0xdf, 0xf8, 0x5c, 0x60, 0x5e, 0xe4, 0x1b, 0xf6, 0x45, 0xde, 0xfb, 0x05, 0x7c, 0xa9, 0x66, 0x38, + 0x7a, 0x7d, 0x4f, 0xbd, 0x31, 0xe4, 0x4a, 0xb4, 0xf3, 0xbf, 0xb6, 0xc4, 0x85, 0xa6, 0x2d, 0xbe, + 0xc5, 0xe4, 0xfd, 0xca, 0x81, 0x0f, 0x6b, 0xe2, 0x77, 0x93, 0x84, 0xb3, 0x2b, 0x9d, 0xdc, 0x77, + 0xa1, 0xc6, 0x6e, 0xad, 0x8d, 0x6a, 0x6b, 0x5d, 0x6a, 0x84, 0x75, 0x1c, 0x7c, 0x01, 0x46, 0xfc, + 0xc1, 0x81, 0x81, 0x36, 0x22, 0x0c, 0xb5, 0xda, 0xef, 0x42, 0x5b, 0xbd, 0x4f, 0x6a, 0x85, 0x1f, + 0x2e, 0x55, 0x98, 0xbf, 0xab, 0xfa, 0x7a, 0x71, 0x3d, 0x23, 0x1b, 0xcb, 0xc6, 0xc0, 0xef, 0x17, + 0x1d, 0x60, 0xe5, 0x17, 0x44, 0xcd, 0xe0, 0xfd, 0x3c, 0x4f, 0xe6, 0x7d, 0x12, 0x93, 0xbb, 0xf4, + 0x91, 0xf7, 0x0a, 0x36, 0xf1, 0xb1, 0xb4, 0xf4, 0xc1, 0x9d, 0x88, 0xfd, 0x14, 0xb6, 0x50, 0xec, + 0x9d, 0xdb, 0x5b, 0x54, 0x87, 0xf4, 0xcf, 0xde, 0x45, 0x40, 0x67, 0x77, 0x29, 0xfd, 0x5b, 0x70, + 0x3f, 0xf7, 0xfd, 0xab, 0x24, 0x2c, 0xae, 0x28, 0xd7, 0x3c, 0xcc, 0x9c, 0xb7, 0xf1, 0x3f, 0xbc, + 0xef, 0xfc, 0x2f, 0x00, 0x00, 0xff, 0xff, 0xbe, 0xeb, 0x20, 0x25, 0xd6, 0x1b, 0x00, 0x00, } diff --git a/pkg/proto/sdk_ws/ws.proto b/pkg/proto/sdk_ws/ws.proto index 511409227..77adabbc0 100644 --- a/pkg/proto/sdk_ws/ws.proto +++ b/pkg/proto/sdk_ws/ws.proto @@ -39,7 +39,6 @@ message PublicUserInfo{ string nickname = 2; string faceURL = 3; int32 gender = 4; - int32 appMangerLevel = 5; //if >0 } message UserInfo{ From a9fa7ee26a5cbe0f351e274692909b4dda0998c5 Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Fri, 11 Feb 2022 18:52:21 +0800 Subject: [PATCH 626/814] Refactor code --- pkg/grpc-etcdv3/getcdv3/register.go | 1 + 1 file changed, 1 insertion(+) diff --git a/pkg/grpc-etcdv3/getcdv3/register.go b/pkg/grpc-etcdv3/getcdv3/register.go index 40a9191af..01ff0cb7a 100644 --- a/pkg/grpc-etcdv3/getcdv3/register.go +++ b/pkg/grpc-etcdv3/getcdv3/register.go @@ -7,6 +7,7 @@ import ( "net" "strconv" "strings" + "time" ) type RegEtcd struct { From 3103c33dda7f942388fbb6fee2b607b807a36df2 Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Fri, 11 Feb 2022 18:57:37 +0800 Subject: [PATCH 627/814] Refactor code --- 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 e42f0d1b8..1ed341bf5 100644 --- a/internal/api/user/user.go +++ b/internal/api/user/user.go @@ -45,7 +45,7 @@ func GetUsersInfo(c *gin.Context) { var publicUserInfoList []*open_im_sdk.PublicUserInfo for _, v := range RpcResp.UserInfoList { publicUserInfoList = append(publicUserInfoList, - &open_im_sdk.PublicUserInfo{UserID: v.UserID, Nickname: v.Nickname, FaceURL: v.FaceURL, Gender: v.Gender, AppMangerLevel: v.AppMangerLevel}) + &open_im_sdk.PublicUserInfo{UserID: v.UserID, Nickname: v.Nickname, FaceURL: v.FaceURL, Gender: v.Gender}) } resp := api.GetUsersInfoResp{CommResp: api.CommResp{ErrCode: RpcResp.CommonResp.ErrCode, ErrMsg: RpcResp.CommonResp.ErrMsg}, UserInfoList: publicUserInfoList} From df8970f59b244c82aea9ccee7d70f3ddeed784c6 Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Fri, 11 Feb 2022 19:06:29 +0800 Subject: [PATCH 628/814] demo modify --- internal/demo/register/send_code.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/internal/demo/register/send_code.go b/internal/demo/register/send_code.go index 9089b9c78..5d6e3e20f 100644 --- a/internal/demo/register/send_code.go +++ b/internal/demo/register/send_code.go @@ -52,7 +52,7 @@ func SendVerificationCode(c *gin.Context) { rand.Seed(time.Now().UnixNano()) code := 100000 + rand.Intn(900000) log.NewInfo(params.OperationID, "begin store redis", account) - err = db.DB.SetAccountCode(account, code, config.Config.Demo.SuperCodeTTL) + err = db.DB.SetAccountCode(account, code, config.Config.Demo.CodeTTL) if err != nil { log.NewError(params.OperationID, "set redis error", account, "err", err.Error()) c.JSON(http.StatusOK, gin.H{"errCode": constant.SmsSendCodeErr, "errMsg": "Enter the superCode directly in the verification code box, SuperCode can be configured in config.xml"}) From 18babef78b840171c2729fee53ea259286c51ca7 Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Fri, 11 Feb 2022 19:06:48 +0800 Subject: [PATCH 629/814] Refactor code --- pkg/grpc-etcdv3/getcdv3/register.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkg/grpc-etcdv3/getcdv3/register.go b/pkg/grpc-etcdv3/getcdv3/register.go index 01ff0cb7a..4fd2cd5a7 100644 --- a/pkg/grpc-etcdv3/getcdv3/register.go +++ b/pkg/grpc-etcdv3/getcdv3/register.go @@ -72,7 +72,7 @@ func RegisterEtcd(schema, etcdAddr, myHost string, myPort int, serviceName strin select { case v, ok := <-kresp: if ok == true { - fmt.Println(" kresp ok ", v) + // fmt.Println(" kresp ok ", v) } else { fmt.Println(" kresp failed ", v) } From 45816fa84f615e35009e9b37be1d7cee467c090a Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Fri, 11 Feb 2022 19:34:18 +0800 Subject: [PATCH 630/814] Refactor code --- internal/rpc/friend/firend.go | 2 +- .../im_mysql_model/friend_request_model.go | 50 ++++++++++++------- 2 files changed, 32 insertions(+), 20 deletions(-) diff --git a/internal/rpc/friend/firend.go b/internal/rpc/friend/firend.go index ebd86cb05..89578ef4a 100644 --- a/internal/rpc/friend/firend.go +++ b/internal/rpc/friend/firend.go @@ -101,7 +101,7 @@ func (s *friendServer) AddFriend(ctx context.Context, req *pbFriend.AddFriendReq } //Establish a latest relationship in the friend request table - friendRequest := db.FriendRequest{ReqMsg: req.ReqMsg, HandleResult: 0} + friendRequest := db.FriendRequest{ReqMsg: req.ReqMsg, HandleResult: 0, CreateTime: time.Now()} utils.CopyStructFields(&friendRequest, req.CommID) // {openIM001 openIM002 0 test add friend 0001-01-01 00:00:00 +0000 UTC 0001-01-01 00:00:00 +0000 UTC }] log.NewDebug(req.CommID.OperationID, "UpdateFriendApplication args ", friendRequest) diff --git a/pkg/common/db/mysql_model/im_mysql_model/friend_request_model.go b/pkg/common/db/mysql_model/im_mysql_model/friend_request_model.go index bcb734281..983b55328 100644 --- a/pkg/common/db/mysql_model/im_mysql_model/friend_request_model.go +++ b/pkg/common/db/mysql_model/im_mysql_model/friend_request_model.go @@ -3,6 +3,7 @@ package im_mysql_model import ( "Open_IM/pkg/common/db" "Open_IM/pkg/utils" + "errors" "time" ) @@ -71,32 +72,43 @@ func UpdateFriendApplication(friendRequest *db.FriendRequest) error { friendRequest.FromUserID, friendRequest.ToUserID).Update(&friendRequest).Error } -func InsertFriendApplication(friendRequest *db.FriendRequest, args map[string]interface{}) error { +func InsertFriendApplication(friendRequest *db.FriendRequest) error { dbConn, err := db.DB.MysqlDB.DefaultGormDB() if err != nil { return err } - friendRequest.CreateTime = time.Now() - args["create_time"] = friendRequest.CreateTime - u := dbConn.Model(friendRequest).Updates(args) - //u := dbConn.Table("friend_requests").Where("from_user_id=? and to_user_id=?", - // friendRequest.FromUserID, friendRequest.ToUserID).Update(&friendRequest) - //u := dbConn.Table("friend_requests").Where("from_user_id=? and to_user_id=?", - // friendRequest.FromUserID, friendRequest.ToUserID).Update(&friendRequest) - if u.RowsAffected != 0 { + if err = dbConn.Table("friend_requests").Create(friendRequest).Error; err == nil { return nil } - if friendRequest.CreateTime.Unix() < 0 { - friendRequest.CreateTime = time.Now() - } - if friendRequest.HandleTime.Unix() < 0 { - friendRequest.HandleTime = utils.UnixSecondToTime(0) - } - err = dbConn.Table("friend_requests").Create(friendRequest).Error - if err != nil { - return err + t := dbConn.Model(friendRequest).Select("*").Updates(*friendRequest) + if t.RowsAffected == 0 { + return utils.Wrap(errors.New("RowsAffected == 0"), "no update") } - return nil + return utils.Wrap(t.Error, "") + + // + //friendRequest.CreateTime = time.Now() + //args["create_time"] = friendRequest.CreateTime + //u := dbConn.Model(friendRequest).Updates(args) + ////u := dbConn.Table("friend_requests").Where("from_user_id=? and to_user_id=?", + //// friendRequest.FromUserID, friendRequest.ToUserID).Update(&friendRequest) + ////u := dbConn.Table("friend_requests").Where("from_user_id=? and to_user_id=?", + //// friendRequest.FromUserID, friendRequest.ToUserID).Update(&friendRequest) + //if u.RowsAffected != 0 { + // return nil + //} + // + //if friendRequest.CreateTime.Unix() < 0 { + // friendRequest.CreateTime = time.Now() + //} + //if friendRequest.HandleTime.Unix() < 0 { + // friendRequest.HandleTime = utils.UnixSecondToTime(0) + //} + //err = dbConn.Table("friend_requests").Create(friendRequest).Error + //if err != nil { + // return err + //} + //return nil } From 7e524779084095e775f7da97caac20c76f41e526 Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Fri, 11 Feb 2022 19:35:51 +0800 Subject: [PATCH 631/814] Refactor code --- internal/rpc/friend/firend.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/internal/rpc/friend/firend.go b/internal/rpc/friend/firend.go index 89578ef4a..641077a1e 100644 --- a/internal/rpc/friend/firend.go +++ b/internal/rpc/friend/firend.go @@ -106,7 +106,7 @@ func (s *friendServer) AddFriend(ctx context.Context, req *pbFriend.AddFriendReq // {openIM001 openIM002 0 test add friend 0001-01-01 00:00:00 +0000 UTC 0001-01-01 00:00:00 +0000 UTC }] log.NewDebug(req.CommID.OperationID, "UpdateFriendApplication args ", friendRequest) //err := imdb.InsertFriendApplication(&friendRequest) - err := imdb.InsertFriendApplication(&friendRequest, map[string]interface{}{"handle_result": 0}) + err := imdb.InsertFriendApplication(&friendRequest) if err != nil { log.NewError(req.CommID.OperationID, "UpdateFriendApplication failed ", err.Error(), friendRequest) return &pbFriend.AddFriendResp{CommonResp: &pbFriend.CommonResp{ErrCode: constant.ErrDB.ErrCode, ErrMsg: constant.ErrDB.ErrMsg}}, nil From 77bb88ed59672cfea29ba11db151b159e28bad7d Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Fri, 11 Feb 2022 19:41:32 +0800 Subject: [PATCH 632/814] Refactor code --- .../db/mysql_model/im_mysql_model/friend_request_model.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkg/common/db/mysql_model/im_mysql_model/friend_request_model.go b/pkg/common/db/mysql_model/im_mysql_model/friend_request_model.go index 983b55328..160d41bb7 100644 --- a/pkg/common/db/mysql_model/im_mysql_model/friend_request_model.go +++ b/pkg/common/db/mysql_model/im_mysql_model/friend_request_model.go @@ -82,7 +82,7 @@ func InsertFriendApplication(friendRequest *db.FriendRequest) error { return nil } - t := dbConn.Model(friendRequest).Select("*").Updates(*friendRequest) + t := dbConn.Debug().Table("friend_requests").Select("*").Updates(*friendRequest) if t.RowsAffected == 0 { return utils.Wrap(errors.New("RowsAffected == 0"), "no update") } From 109e8b53a1c9d31412d5feed23a362a7553d3b57 Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Fri, 11 Feb 2022 19:49:21 +0800 Subject: [PATCH 633/814] Refactor code --- .../db/mysql_model/im_mysql_model/friend_request_model.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkg/common/db/mysql_model/im_mysql_model/friend_request_model.go b/pkg/common/db/mysql_model/im_mysql_model/friend_request_model.go index 160d41bb7..7bec6f18f 100644 --- a/pkg/common/db/mysql_model/im_mysql_model/friend_request_model.go +++ b/pkg/common/db/mysql_model/im_mysql_model/friend_request_model.go @@ -82,7 +82,7 @@ func InsertFriendApplication(friendRequest *db.FriendRequest) error { return nil } - t := dbConn.Debug().Table("friend_requests").Select("*").Updates(*friendRequest) + t := dbConn.Debug().Table("friend_requests").Where("from_user_id = ? and to_user_id = ?", friendRequest.FromUserID, friendRequest.ToUserID).Select("*").Updates(*friendRequest) if t.RowsAffected == 0 { return utils.Wrap(errors.New("RowsAffected == 0"), "no update") } From 9f6fd3ee6a08975e6229a85fdda95c864635f069 Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Fri, 11 Feb 2022 19:58:42 +0800 Subject: [PATCH 634/814] Refactor code --- internal/rpc/friend/firend.go | 37 ++++++++++++++++++----------------- 1 file changed, 19 insertions(+), 18 deletions(-) diff --git a/internal/rpc/friend/firend.go b/internal/rpc/friend/firend.go index 641077a1e..ccaf7db79 100644 --- a/internal/rpc/friend/firend.go +++ b/internal/rpc/friend/firend.go @@ -405,24 +405,25 @@ func (s *friendServer) GetFriendApplyList(ctx context.Context, req *pbFriend.Get var appleUserList []*sdkws.FriendRequest for _, applyUserInfo := range ApplyUsersInfo { var userInfo sdkws.FriendRequest - utils.CopyStructFields(&userInfo, applyUserInfo) - u, err := imdb.GetUserByUserID(userInfo.FromUserID) - if err != nil { - log.Error(req.CommID.OperationID, "GetUserByUserID", userInfo.FromUserID) - continue - } - userInfo.FromNickname = u.Nickname - userInfo.FromFaceURL = u.FaceURL - userInfo.FromGender = u.Gender - - u, err = imdb.GetUserByUserID(userInfo.ToUserID) - if err != nil { - log.Error(req.CommID.OperationID, "GetUserByUserID", userInfo.ToUserID) - continue - } - userInfo.ToNickname = u.Nickname - userInfo.ToFaceURL = u.FaceURL - userInfo.ToGender = u.Gender + cp.FriendRequestDBCopyOpenIM(&userInfo, &applyUserInfo) + // utils.CopyStructFields(&userInfo, applyUserInfo) + // u, err := imdb.GetUserByUserID(userInfo.FromUserID) + // if err != nil { + // log.Error(req.CommID.OperationID, "GetUserByUserID", userInfo.FromUserID) + // continue + // } + // userInfo.FromNickname = u.Nickname + // userInfo.FromFaceURL = u.FaceURL + // userInfo.FromGender = u.Gender + // + // u, err = imdb.GetUserByUserID(userInfo.ToUserID) + // if err != nil { + // log.Error(req.CommID.OperationID, "GetUserByUserID", userInfo.ToUserID) + // continue + // } + // userInfo.ToNickname = u.Nickname + // userInfo.ToFaceURL = u.FaceURL + // userInfo.ToGender = u.Gender appleUserList = append(appleUserList, &userInfo) } From 439605bafc7c45b5473276206f392d787f5eca8c Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Fri, 11 Feb 2022 20:31:57 +0800 Subject: [PATCH 635/814] Refactor code --- internal/rpc/friend/firend.go | 36 ++++++------ .../im_mysql_model/friend_request_model.go | 55 +++++++++---------- 2 files changed, 45 insertions(+), 46 deletions(-) diff --git a/internal/rpc/friend/firend.go b/internal/rpc/friend/firend.go index ccaf7db79..72eefe386 100644 --- a/internal/rpc/friend/firend.go +++ b/internal/rpc/friend/firend.go @@ -106,7 +106,7 @@ func (s *friendServer) AddFriend(ctx context.Context, req *pbFriend.AddFriendReq // {openIM001 openIM002 0 test add friend 0001-01-01 00:00:00 +0000 UTC 0001-01-01 00:00:00 +0000 UTC }] log.NewDebug(req.CommID.OperationID, "UpdateFriendApplication args ", friendRequest) //err := imdb.InsertFriendApplication(&friendRequest) - err := imdb.InsertFriendApplication(&friendRequest) + err := imdb.InsertFriendApplication(&friendRequest, map[string]interface{}{"handle_result": 0}) if err != nil { log.NewError(req.CommID.OperationID, "UpdateFriendApplication failed ", err.Error(), friendRequest) return &pbFriend.AddFriendResp{CommonResp: &pbFriend.CommonResp{ErrCode: constant.ErrDB.ErrCode, ErrMsg: constant.ErrDB.ErrMsg}}, nil @@ -449,23 +449,23 @@ func (s *friendServer) GetSelfApplyList(ctx context.Context, req *pbFriend.GetSe for _, selfApplyOtherUserInfo := range usersInfo { var userInfo sdkws.FriendRequest // pbFriend.ApplyUserInfo cp.FriendRequestDBCopyOpenIM(&userInfo, &selfApplyOtherUserInfo) - u, err := imdb.GetUserByUserID(userInfo.FromUserID) - if err != nil { - log.Error(req.CommID.OperationID, "GetUserByUserID", userInfo.FromUserID) - continue - } - userInfo.FromNickname = u.Nickname - userInfo.FromFaceURL = u.FaceURL - userInfo.FromGender = u.Gender - - u, err = imdb.GetUserByUserID(userInfo.ToUserID) - if err != nil { - log.Error(req.CommID.OperationID, "GetUserByUserID", userInfo.ToUserID) - continue - } - userInfo.ToNickname = u.Nickname - userInfo.ToFaceURL = u.FaceURL - userInfo.ToGender = u.Gender + //u, err := imdb.GetUserByUserID(userInfo.FromUserID) + //if err != nil { + // log.Error(req.CommID.OperationID, "GetUserByUserID", userInfo.FromUserID) + // continue + //} + //userInfo.FromNickname = u.Nickname + //userInfo.FromFaceURL = u.FaceURL + //userInfo.FromGender = u.Gender + // + //u, err = imdb.GetUserByUserID(userInfo.ToUserID) + //if err != nil { + // log.Error(req.CommID.OperationID, "GetUserByUserID", userInfo.ToUserID) + // continue + //} + //userInfo.ToNickname = u.Nickname + //userInfo.ToFaceURL = u.FaceURL + //userInfo.ToGender = u.Gender selfApplyOtherUserList = append(selfApplyOtherUserList, &userInfo) } diff --git a/pkg/common/db/mysql_model/im_mysql_model/friend_request_model.go b/pkg/common/db/mysql_model/im_mysql_model/friend_request_model.go index 7bec6f18f..d299b578f 100644 --- a/pkg/common/db/mysql_model/im_mysql_model/friend_request_model.go +++ b/pkg/common/db/mysql_model/im_mysql_model/friend_request_model.go @@ -72,7 +72,7 @@ func UpdateFriendApplication(friendRequest *db.FriendRequest) error { friendRequest.FromUserID, friendRequest.ToUserID).Update(&friendRequest).Error } -func InsertFriendApplication(friendRequest *db.FriendRequest) error { +func InsertFriendApplication(friendRequest *db.FriendRequest, args map[string]interface{}) error { dbConn, err := db.DB.MysqlDB.DefaultGormDB() if err != nil { return err @@ -82,33 +82,32 @@ func InsertFriendApplication(friendRequest *db.FriendRequest) error { return nil } - t := dbConn.Debug().Table("friend_requests").Where("from_user_id = ? and to_user_id = ?", friendRequest.FromUserID, friendRequest.ToUserID).Select("*").Updates(*friendRequest) - if t.RowsAffected == 0 { - return utils.Wrap(errors.New("RowsAffected == 0"), "no update") + //t := dbConn.Debug().Table("friend_requests").Where("from_user_id = ? and to_user_id = ?", friendRequest.FromUserID, friendRequest.ToUserID).Select("*").Updates(*friendRequest) + //if t.RowsAffected == 0 { + // return utils.Wrap(errors.New("RowsAffected == 0"), "no update") + //} + //return utils.Wrap(t.Error, "") + + friendRequest.CreateTime = time.Now() + args["create_time"] = friendRequest.CreateTime + u := dbConn.Model(friendRequest).Updates(args) + //u := dbConn.Table("friend_requests").Where("from_user_id=? and to_user_id=?", + // friendRequest.FromUserID, friendRequest.ToUserID).Update(&friendRequest) + //u := dbConn.Table("friend_requests").Where("from_user_id=? and to_user_id=?", + // friendRequest.FromUserID, friendRequest.ToUserID).Update(&friendRequest) + if u.RowsAffected != 0 { + return nil } - return utils.Wrap(t.Error, "") - // - //friendRequest.CreateTime = time.Now() - //args["create_time"] = friendRequest.CreateTime - //u := dbConn.Model(friendRequest).Updates(args) - ////u := dbConn.Table("friend_requests").Where("from_user_id=? and to_user_id=?", - //// friendRequest.FromUserID, friendRequest.ToUserID).Update(&friendRequest) - ////u := dbConn.Table("friend_requests").Where("from_user_id=? and to_user_id=?", - //// friendRequest.FromUserID, friendRequest.ToUserID).Update(&friendRequest) - //if u.RowsAffected != 0 { - // return nil - //} - // - //if friendRequest.CreateTime.Unix() < 0 { - // friendRequest.CreateTime = time.Now() - //} - //if friendRequest.HandleTime.Unix() < 0 { - // friendRequest.HandleTime = utils.UnixSecondToTime(0) - //} - //err = dbConn.Table("friend_requests").Create(friendRequest).Error - //if err != nil { - // return err - //} - //return nil + if friendRequest.CreateTime.Unix() < 0 { + friendRequest.CreateTime = time.Now() + } + if friendRequest.HandleTime.Unix() < 0 { + friendRequest.HandleTime = utils.UnixSecondToTime(0) + } + err = dbConn.Table("friend_requests").Create(friendRequest).Error + if err != nil { + return err + } + return nil } From a5ed6d897c5bcb77d050370b90142cd0c656f64a Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Fri, 11 Feb 2022 20:32:51 +0800 Subject: [PATCH 636/814] Refactor code --- pkg/common/db/mysql_model/im_mysql_model/friend_request_model.go | 1 - 1 file changed, 1 deletion(-) diff --git a/pkg/common/db/mysql_model/im_mysql_model/friend_request_model.go b/pkg/common/db/mysql_model/im_mysql_model/friend_request_model.go index d299b578f..609be8687 100644 --- a/pkg/common/db/mysql_model/im_mysql_model/friend_request_model.go +++ b/pkg/common/db/mysql_model/im_mysql_model/friend_request_model.go @@ -3,7 +3,6 @@ package im_mysql_model import ( "Open_IM/pkg/common/db" "Open_IM/pkg/utils" - "errors" "time" ) From 52579c5fab717375291e1d3d948fd4fee8082759 Mon Sep 17 00:00:00 2001 From: wangchuxiao Date: Sat, 12 Feb 2022 17:13:31 +0800 Subject: [PATCH 637/814] add --- cmd/rpc/open_im_admin_cms/main.go | 14 + config/config.yaml | 8 +- internal/cms_api/admin/admin.go | 46 ++- internal/cms_api/group/group.go | 4 +- internal/cms_api/message_cms/message.go | 4 +- internal/cms_api/middleware/jwt_auth.go | 14 +- internal/cms_api/router.go | 21 +- internal/cms_api/user/user.go | 23 +- internal/rpc/admin_cms/admin_cms.go | 92 +++++ internal/rpc/group/group.go | 25 +- internal/rpc/message_cms/message_cms.go | 14 +- internal/rpc/user/user.go | 50 +-- pkg/cms_api_struct/admin.go | 9 + pkg/cms_api_struct/group.go | 9 + pkg/cms_api_struct/message_cms.go | 2 +- pkg/common/config/config.go | 1 + pkg/common/constant/error.go | 2 +- .../mysql_model/im_mysql_model/message_cms.go | 14 +- .../mysql_model/im_mysql_model/user_model.go | 6 +- pkg/common/http/http_resp.go | 31 +- pkg/proto/admin_cms/admin_cms.pb.go | 317 ++++++++++++++++++ pkg/proto/admin_cms/admin_cms.proto | 18 + pkg/proto/proto_dir.cfg | 5 +- 23 files changed, 618 insertions(+), 111 deletions(-) create mode 100644 cmd/rpc/open_im_admin_cms/main.go create mode 100644 internal/rpc/admin_cms/admin_cms.go create mode 100644 pkg/proto/admin_cms/admin_cms.pb.go create mode 100644 pkg/proto/admin_cms/admin_cms.proto diff --git a/cmd/rpc/open_im_admin_cms/main.go b/cmd/rpc/open_im_admin_cms/main.go new file mode 100644 index 000000000..eae1a4505 --- /dev/null +++ b/cmd/rpc/open_im_admin_cms/main.go @@ -0,0 +1,14 @@ +package main + +import ( + rpcMessageCMS "Open_IM/internal/rpc/admin_cms" + "flag" +) + +func main() { + rpcPort := flag.Int("port", 11000, "rpc listening port") + flag.Parse() + rpcServer := rpcMessageCMS.NewAdminCMSServer(*rpcPort) + rpcServer.Run() +} + diff --git a/config/config.yaml b/config/config.yaml index 239d9d2f3..662c6c4e5 100644 --- a/config/config.yaml +++ b/config/config.yaml @@ -11,7 +11,7 @@ mysql: dbMysqlAddress: [ 43.128.5.63:13306 ] dbMysqlUserName: root dbMysqlPassword: openIM - dbMysqlDatabaseName: openIM + dbMysqlDatabaseName: openIMtest1 dbTableName: eMsg dbMsgTableNum: 1 dbMaxOpenConns: 20 @@ -30,7 +30,7 @@ mongo: dbRetainChatRecords: 7 redis: - dbAddress: 127.0.0.1:16379 + dbAddress: 43.128.5.63:16379 dbMaxIdle: 128 dbMaxActive: 0 dbIdleTimeout: 120 @@ -94,6 +94,7 @@ rpcport: openImPushPort: [ 10700 ] openImOpenImStatisticPort: [ 10800 ] OpenImMessageCMSPort: [ 10900 ] + openImAdminCMSPort: [10100] c2c: callbackBeforeSendMsg: switch: false @@ -114,6 +115,7 @@ rpcregistername: openImAuthName: Auth OpenImStatisticsName: Statistics OpenImMessageCMSName: MessageCMS + openImAdminCMSName: AdminCMS log: storageLocation: ../logs/ @@ -150,7 +152,7 @@ push: pushUrl: "https://api.jpush.cn/v3/push" pushIntent: "intent:#Intent;component=io.openim.app.enterprisechat/io.openim.app.enterprisechat.MainActivity;end" manager: - appManagerUid: [ "openIM123456","openIM654321", "openIM333" ] + appManagerUid: [ "openIM123456","openIM654321", "openIM333", "openIMAdmin"] secrets: [ "openIM1","openIM2", "openIM333" ] secret: tuoyun diff --git a/internal/cms_api/admin/admin.go b/internal/cms_api/admin/admin.go index 6b644c9c3..02b2390c5 100644 --- a/internal/cms_api/admin/admin.go +++ b/internal/cms_api/admin/admin.go @@ -1,24 +1,42 @@ package admin import ( - "net/http" + "Open_IM/pkg/cms_api_struct" + "Open_IM/pkg/common/config" + "Open_IM/pkg/common/constant" + openIMHttp "Open_IM/pkg/common/http" + "Open_IM/pkg/common/log" + "Open_IM/pkg/grpc-etcdv3/getcdv3" + pbAdmin "Open_IM/pkg/proto/admin_cms" + "Open_IM/pkg/utils" + "context" + "strings" "github.com/gin-gonic/gin" ) // register func AdminLogin(c *gin.Context) { - c.JSON(http.StatusOK, gin.H{"message": "someJSON", "status": 200}) -} - -func AdminRegister(c *gin.Context) { - c.JSON(http.StatusOK, gin.H{"message": "someJSON", "status": 200}) -} - -func GetAdminSettings(c *gin.Context) { - c.JSON(http.StatusOK, gin.H{"message": "someJSON", "status": 200}) -} - -func AlterAdminSettings(c *gin.Context) { - c.JSON(http.StatusOK, gin.H{"message": "someJSON", "status": 200}) + var ( + req cms_api_struct.AdminLoginRequest + resp cms_api_struct.AdminLoginResponse + reqPb pbAdmin.AdminLoginReq + ) + if err := c.BindJSON(&req); err != nil { + log.NewInfo("0", utils.GetSelfFuncName(), err.Error()) + openIMHttp.RespHttp200(c, constant.ErrArgs, nil) + return + } + reqPb.Secret = req.Secret + reqPb.AdminID = req.AdminName + etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImAdminCMSName) + client := pbAdmin.NewAdminCMSClient(etcdConn) + respPb, err := client.AdminLogin(context.Background(), &reqPb) + if err != nil { + log.NewError(reqPb.OperationID, utils.GetSelfFuncName(), "rpc failed", err.Error()) + openIMHttp.RespHttp200(c, err, nil) + return + } + resp.Token = respPb.Token + openIMHttp.RespHttp200(c, constant.OK, resp) } diff --git a/internal/cms_api/group/group.go b/internal/cms_api/group/group.go index 41a43031d..1b3dec3cb 100644 --- a/internal/cms_api/group/group.go +++ b/internal/cms_api/group/group.go @@ -273,7 +273,7 @@ func GetGroupMembers(c *gin.Context) { respPb, err := client.GetGroupMembersCMS(context.Background(), &reqPb) if err != nil { log.NewError(reqPb.OperationID, utils.GetSelfFuncName(), "GetGroupMembersCMS failed:", err.Error()) - openIMHttp.RespHttp200(c, constant.ErrServer, nil) + openIMHttp.RespHttp200(c, err, nil) return } resp.ResponsePagination = cms_api_struct.ResponsePagination{ @@ -392,6 +392,6 @@ func SetGroupMaster(c *gin.Context) { openIMHttp.RespHttp200(c, constant.OK, nil) } -func GetMemberInGroup(c *gin.Context) { +func SetMemberInGroup(c *gin.Context) { } \ No newline at end of file diff --git a/internal/cms_api/message_cms/message.go b/internal/cms_api/message_cms/message.go index ef030d432..5b23a9c17 100644 --- a/internal/cms_api/message_cms/message.go +++ b/internal/cms_api/message_cms/message.go @@ -26,7 +26,7 @@ func BroadcastMessage(c *gin.Context) { _, err := client.BoradcastMessage(context.Background(), &reqPb) if err != nil { log.NewError(reqPb.OperationID, utils.GetSelfFuncName(), "GetChatLogs rpc failed", err.Error()) - openIMHttp.RespHttp200S(c, err, nil) + openIMHttp.RespHttp200(c, err, nil) return } openIMHttp.RespHttp200(c, constant.OK, nil) @@ -61,7 +61,7 @@ func GetChatLogs(c *gin.Context) { respPb, err := client.GetChatLogs(context.Background(), &reqPb) if err != nil { log.NewError(reqPb.OperationID, utils.GetSelfFuncName(), "GetChatLogs rpc failed", err.Error()) - openIMHttp.RespHttp200S(c, constant.ErrServer, resp) + openIMHttp.RespHttp200(c, err, resp) return } utils.CopyStructFields(&resp, &respPb) diff --git a/internal/cms_api/middleware/jwt_auth.go b/internal/cms_api/middleware/jwt_auth.go index ccdacc00b..f08cf95b7 100644 --- a/internal/cms_api/middleware/jwt_auth.go +++ b/internal/cms_api/middleware/jwt_auth.go @@ -1,11 +1,23 @@ package middleware import ( + "Open_IM/pkg/common/constant" + "Open_IM/pkg/common/http" + "Open_IM/pkg/common/log" + "Open_IM/pkg/common/token_verify" + "fmt" "github.com/gin-gonic/gin" ) func JWTAuth() gin.HandlerFunc { return func(c *gin.Context) { - + ok, token := token_verify.GetUserIDFromToken(c.Request.Header.Get("token")) + fmt.Println(token) + if !ok { + log.NewError("","GetUserIDFromToken false ", c.Request.Header.Get("token")) + c.Abort() + http.RespHttp200(c, constant.ErrParseToken, nil) + return + } } } diff --git a/internal/cms_api/router.go b/internal/cms_api/router.go index cd1629008..5c9810e0a 100644 --- a/internal/cms_api/router.go +++ b/internal/cms_api/router.go @@ -16,15 +16,14 @@ func NewGinRouter() *gin.Engine { gin.SetMode(gin.ReleaseMode) baseRouter := gin.Default() router := baseRouter.Group("/api") - router.Use(middleware.JWTAuth()) router.Use(middleware.CorsHandler()) adminRouterGroup := router.Group("/admin") { - adminRouterGroup.POST("/register", admin.AdminRegister) - adminRouterGroup.GET("/get_user_settings", admin.GetAdminSettings) - adminRouterGroup.POST("/alter_user_settings", admin.AlterAdminSettings) + adminRouterGroup.POST("/login", admin.AdminLogin) } - statisticsRouterGroup := router.Group("/statistics") + r2 := router.Group("") + r2.Use(middleware.JWTAuth()) + statisticsRouterGroup := r2.Group("/statistics") { statisticsRouterGroup.GET("/get_messages_statistics", statistics.GetMessagesStatistics) statisticsRouterGroup.GET("/get_user_statistics", statistics.GetUserStatistics) @@ -32,7 +31,7 @@ func NewGinRouter() *gin.Engine { statisticsRouterGroup.GET("/get_active_user", statistics.GetActiveUser) statisticsRouterGroup.GET("/get_active_group", statistics.GetActiveGroup) } - organizationRouterGroup := router.Group("/organization") + organizationRouterGroup := r2.Group("/organization") { organizationRouterGroup.GET("/get_staffs", organization.GetStaffs) organizationRouterGroup.GET("/get_organizations", organization.GetOrganizations) @@ -46,7 +45,7 @@ func NewGinRouter() *gin.Engine { organizationRouterGroup.PATCH("/alter_corps_info", organization.AlterStaffsInfo) organizationRouterGroup.POST("/add_child_org", organization.AddChildOrganization) } - groupRouterGroup := router.Group("/group") + groupRouterGroup := r2.Group("/group") { groupRouterGroup.GET("/get_group_by_id", group.GetGroupById) groupRouterGroup.GET("/get_groups", group.GetGroups) @@ -60,10 +59,10 @@ func NewGinRouter() *gin.Engine { groupRouterGroup.POST("/ban_group_chat", group.BanGroupChat) groupRouterGroup.POST("/open_group_chat", group.OpenGroupChat) groupRouterGroup.POST("/delete_group", group.DeleteGroup) - groupRouterGroup.POST("/get_members_in_group", group.GetMemberInGroup) + groupRouterGroup.POST("/get_members_in_group", group.GetGroupMembers) groupRouterGroup.POST("/set_group_master", group.SetGroupMaster) } - userRouterGroup := router.Group("/user") + userRouterGroup := r2.Group("/user") { userRouterGroup.POST("/resign", user.ResignUser) userRouterGroup.GET("/get_user", user.GetUserById) @@ -77,13 +76,13 @@ func NewGinRouter() *gin.Engine { userRouterGroup.POST("/delete_user", user.DeleteUser) userRouterGroup.GET("/get_users_by_name", user.GetUsersByName) } - friendRouterGroup := router.Group("/friend") + friendRouterGroup := r2.Group("/friend") { friendRouterGroup.POST("/get_friends_by_id") friendRouterGroup.POST("/set_friend") friendRouterGroup.POST("/remove_friend") } - messageCMSRouterGroup := router.Group("/message") + messageCMSRouterGroup := r2.Group("/message") { messageCMSRouterGroup.GET("/get_chat_logs", messageCMS.GetChatLogs) messageCMSRouterGroup.POST("/broadcast_message", messageCMS.BroadcastMessage) diff --git a/internal/cms_api/user/user.go b/internal/cms_api/user/user.go index 9c59fd170..c87aa4d7f 100644 --- a/internal/cms_api/user/user.go +++ b/internal/cms_api/user/user.go @@ -35,7 +35,7 @@ func GetUserById(c *gin.Context) { respPb, err := client.GetUserById(context.Background(), &reqPb) if err != nil { log.NewError(reqPb.OperationID, utils.GetSelfFuncName(), err.Error()) - openIMHttp.RespHttp200(c, constant.ErrServer, nil) + openIMHttp.RespHttp200(c, err, nil) return } if respPb.User.UserId == "" { @@ -67,7 +67,7 @@ func GetUsersByName(c *gin.Context) { respPb, err := client.GetUsersByName(context.Background(), &reqPb) if err != nil { log.NewError(reqPb.OperationID, utils.GetSelfFuncName(), "rpc", err.Error()) - openIMHttp.RespHttp200(c, constant.ErrServer, nil) + openIMHttp.RespHttp200(c, err, nil) return } utils.CopyStructFields(&resp.Users, respPb.Users) @@ -94,7 +94,7 @@ func GetUsers(c *gin.Context) { client := pb.NewUserClient(etcdConn) respPb, err := client.GetUsers(context.Background(), &reqPb) if err != nil { - openIMHttp.RespHttp200(c, constant.ErrServer, resp) + openIMHttp.RespHttp200(c, err, resp) return } utils.CopyStructFields(&resp.Users, respPb.User) @@ -122,7 +122,7 @@ func ResignUser(c *gin.Context) { client := pb.NewUserClient(etcdConn) _, err := client.ResignUser(context.Background(), &reqPb) if err != nil { - openIMHttp.RespHttp200(c, constant.ErrServer, resp) + openIMHttp.RespHttp200(c, err, resp) } openIMHttp.RespHttp200(c, constant.OK, resp) } @@ -144,7 +144,7 @@ func AlterUser(c *gin.Context) { _, err := client.AlterUser(context.Background(), &reqPb) if err != nil { log.NewError("0", "microserver failed ", err.Error()) - openIMHttp.RespHttp200(c, constant.ErrServer, nil) + openIMHttp.RespHttp200(c, err, nil) } openIMHttp.RespHttp200(c, constant.OK, nil) } @@ -164,7 +164,7 @@ func AddUser(c *gin.Context) { client := pb.NewUserClient(etcdConn) _, err := client.AddUser(context.Background(), &reqPb) if err != nil { - openIMHttp.RespHttp200(c, constant.ErrServer, nil) + openIMHttp.RespHttp200(c, err, nil) return } openIMHttp.RespHttp200(c, constant.OK, nil) @@ -189,7 +189,7 @@ func BlockUser(c *gin.Context) { fmt.Println(reqPb) _, err := client.BlockUser(context.Background(), &reqPb) if err != nil { - openIMHttp.RespHttp200(c, constant.ErrServer, resp) + openIMHttp.RespHttp200(c, err, resp) return } openIMHttp.RespHttp200(c, constant.OK, resp) @@ -211,7 +211,7 @@ func UnblockUser(c *gin.Context) { client := pb.NewUserClient(etcdConn) _, err := client.UnBlockUser(context.Background(), &reqPb) if err != nil { - openIMHttp.RespHttp200(c, constant.ErrServer, resp) + openIMHttp.RespHttp200(c, err, resp) return } openIMHttp.RespHttp200(c, constant.OK, resp) @@ -236,7 +236,8 @@ func GetBlockUsers(c *gin.Context) { client := pb.NewUserClient(etcdConn) respPb, err := client.GetBlockUsers(context.Background(), &reqPb) if err != nil { - openIMHttp.RespHttp200(c, constant.ErrServer, resp) + log.NewError(reqPb.OperationID, utils.GetSelfFuncName(), "GetBlockUsers rpc", err.Error()) + openIMHttp.RespHttp200(c, err, resp) return } for _, v := range respPb.BlockUsers { @@ -275,7 +276,7 @@ func GetBlockUserById(c *gin.Context) { respPb, err := client.GetBlockUserById(context.Background(), &reqPb) if err != nil { log.NewError("0", "GetBlockUserById rpc failed ", err.Error()) - openIMHttp.RespHttp200(c, constant.ErrServer, nil) + openIMHttp.RespHttp200(c, err, nil) return } resp.EndDisableTime = respPb.BlockUser.EndDisableTime @@ -300,7 +301,7 @@ func DeleteUser(c *gin.Context) { _, err := client.DeleteUser(context.Background(), &reqPb) if err != nil { log.NewError("0", "DeleteUser rpc failed ", err.Error()) - openIMHttp.RespHttp200(c, constant.ErrServer, nil) + openIMHttp.RespHttp200(c, err, nil) return } openIMHttp.RespHttp200(c, constant.OK, nil) diff --git a/internal/rpc/admin_cms/admin_cms.go b/internal/rpc/admin_cms/admin_cms.go new file mode 100644 index 000000000..d212f0012 --- /dev/null +++ b/internal/rpc/admin_cms/admin_cms.go @@ -0,0 +1,92 @@ +package admin_cms + +import ( + "Open_IM/pkg/common/config" + "Open_IM/pkg/common/constant" + openIMHttp "Open_IM/pkg/common/http" + "Open_IM/pkg/common/log" + "Open_IM/pkg/common/token_verify" + "Open_IM/pkg/grpc-etcdv3/getcdv3" + pbAdminCMS "Open_IM/pkg/proto/admin_cms" + "Open_IM/pkg/utils" + "context" + "google.golang.org/grpc" + "net" + "strconv" + "strings" +) + +type adminCMSServer struct { + rpcPort int + rpcRegisterName string + etcdSchema string + etcdAddr []string +} + +func NewAdminCMSServer(port int) *adminCMSServer { + log.NewPrivateLog("AdminCMS") + return &adminCMSServer{ + rpcPort: port, + rpcRegisterName: config.Config.RpcRegisterName.OpenImAdminCMSName, + etcdSchema: config.Config.Etcd.EtcdSchema, + etcdAddr: config.Config.Etcd.EtcdAddr, + } +} + +func (s *adminCMSServer) Run() { + log.NewInfo("0", "AdminCMS 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() + //Service registers with etcd + pbAdminCMS.RegisterAdminCMSServer(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 *adminCMSServer) AdminLogin(_ context.Context, req *pbAdminCMS.AdminLoginReq) (*pbAdminCMS.AdminLoginResp, error) { + log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "req: ", req.String()) + resp := &pbAdminCMS.AdminLoginResp{} + for _, adminID := range config.Config.Manager.AppManagerUid{ + if adminID == req.AdminID { + for _, secret := range config.Config.Manager.Secrets { + if secret == req.Secret { + str := secret+adminID + token, expTime, err := token_verify.CreateToken(str,9843) + log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "generate token success", "token: ", token, "expTime:", expTime) + if err != nil { + log.NewError(req.OperationID, utils.GetSelfFuncName(), "generate token failed", "str: ", str, err.Error()) + return resp, openIMHttp.WrapError(constant.ErrTokenUnknown) + } + resp.Token = token + break + } + } + } + } + + if resp.Token == "" { + log.NewError(req.OperationID, utils.GetSelfFuncName(), "failed") + return resp, openIMHttp.WrapError(constant.ErrTokenMalformed) + } + return resp, nil +} \ No newline at end of file diff --git a/internal/rpc/group/group.go b/internal/rpc/group/group.go index 172fe4832..73164c6e7 100644 --- a/internal/rpc/group/group.go +++ b/internal/rpc/group/group.go @@ -834,11 +834,22 @@ func (s *groupServer) RemoveGroupMembersCMS(_ context.Context, req *pbGroup.Remo func (s *groupServer) AddGroupMembersCMS(_ context.Context, req *pbGroup.AddGroupMembersCMSReq) (*pbGroup.AddGroupMembersCMSResp, error) { log.NewInfo(req.OperationId, utils.GetSelfFuncName(), "args:", req.String()) resp := &pbGroup.AddGroupMembersCMSResp{} - for _, userIds := range req.UserIds { + for _, userId := range req.UserIds { + if isExist := imdb.IsExistGroupMember(req.GroupId, userId); isExist { + log.NewError(req.OperationId, utils.GetSelfFuncName(), "user is exist in group", userId, req.GroupId) + resp.Failed = append(resp.Failed, userId) + continue + } + user, err := imdb.GetUserByUserID(userId) + if err != nil { + log.NewError(req.OperationId, utils.GetSelfFuncName(), "GetUserByUserID", err.Error()) + resp.Failed = append(resp.Failed, userId) + continue + } groupMember := db.GroupMember{ GroupID: req.GroupId, - UserID: userIds, - Nickname: "", + UserID: userId, + Nickname: user.Nickname, FaceUrl: "", RoleLevel: 1, JoinTime: time.Time{}, @@ -848,9 +859,9 @@ func (s *groupServer) AddGroupMembersCMS(_ context.Context, req *pbGroup.AddGrou } if err := imdb.InsertIntoGroupMember(groupMember); err != nil { log.NewError(req.OperationId, utils.GetSelfFuncName(), "InsertIntoGroupMember failed", req.String()) - resp.Failed = append(resp.Failed, userIds) + resp.Failed = append(resp.Failed, userId) } else { - resp.Success = append(resp.Success, userIds) + resp.Success = append(resp.Success, userId) } } return resp, nil @@ -862,7 +873,7 @@ func (s *groupServer) SetGroupMaster(_ context.Context, req *pbGroup.SetGroupMas err := imdb.OperateGroupRole(req.UserId, req.GroupId, constant.GroupOwner) if err != nil { log.NewError(req.OperationId, utils.GetSelfFuncName(),"OperateGroupRole failed", err.Error()) - return resp, nil + return resp, constant.ErrDB } return resp, nil -} \ No newline at end of file +} diff --git a/internal/rpc/message_cms/message_cms.go b/internal/rpc/message_cms/message_cms.go index 56c62d628..c0ecf8bbe 100644 --- a/internal/rpc/message_cms/message_cms.go +++ b/internal/rpc/message_cms/message_cms.go @@ -4,7 +4,7 @@ import ( "Open_IM/pkg/common/config" "Open_IM/pkg/common/constant" "Open_IM/pkg/common/db" - "Open_IM/pkg/common/http" + errors "Open_IM/pkg/common/http" "context" "Open_IM/pkg/common/log" @@ -73,19 +73,24 @@ func (s *messageCMSServer) Run() { func (s *messageCMSServer) BoradcastMessage(_ context.Context, req *pbMessageCMS.BoradcastMessageReq) (*pbMessageCMS.BoradcastMessageResp, error) { log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "BoradcastMessage", req.String()) resp := &pbMessageCMS.BoradcastMessageResp{} - return resp, http.WarpError(constant.ErrDB) + return resp, errors.WrapError(constant.ErrDB) } func (s *messageCMSServer) GetChatLogs(_ context.Context, req *pbMessageCMS.GetChatLogsReq) (*pbMessageCMS.GetChatLogsResp, error) { log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "GetChatLogs", req.String()) resp := &pbMessageCMS.GetChatLogsResp{} + time, err := utils.TimeStringToTime(req.Date) + if err != nil { + log.NewError(req.OperationID, utils.GetSelfFuncName(), "time string parse error", err.Error()) + } chatLog := db.ChatLog{ Content: req.Content, + SendTime: time, } - chatLogs, err := imdb.GetChatLog(chatLog, req.Pagination.ShowNumber, req.Pagination.PageNumber) + chatLogs, err := imdb.GetChatLog(chatLog, req.Pagination.PageNumber, req.Pagination.ShowNumber) if err != nil { log.NewError(req.OperationID, utils.GetSelfFuncName(), "GetChatLog", err.Error()) - return resp, http.WarpError(constant.ErrDB) + return resp, errors.WrapError(constant.ErrDB) } for _, chatLog := range chatLogs { pbChatLog := &pbMessageCMS.ChatLogs{ @@ -134,6 +139,5 @@ func (s *messageCMSServer) MassSendMessage(_ context.Context, req *pbMessageCMS. func (s *messageCMSServer) WithdrawMessage(_ context.Context, req *pbMessageCMS.WithdrawMessageReq) (*pbMessageCMS.WithdrawMessageResp, error) { log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "WithdrawMessage", req.String()) resp := &pbMessageCMS.WithdrawMessageResp{} - return resp, nil } diff --git a/internal/rpc/user/user.go b/internal/rpc/user/user.go index dab53dfd0..190a8060a 100644 --- a/internal/rpc/user/user.go +++ b/internal/rpc/user/user.go @@ -6,6 +6,8 @@ import ( "Open_IM/pkg/common/constant" "Open_IM/pkg/common/db" imdb "Open_IM/pkg/common/db/mysql_model/im_mysql_model" + errors "Open_IM/pkg/common/http" + "Open_IM/pkg/common/log" "Open_IM/pkg/common/token_verify" "Open_IM/pkg/grpc-etcdv3/getcdv3" @@ -249,7 +251,7 @@ func (s *userServer) GetUsersByName(ctx context.Context, req *pbUser.GetUsersByN users, err := imdb.GetUserByName(req.UserName, req.Pagination.ShowNumber, req.Pagination.PageNumber) if err != nil { log.NewError(req.OperationID, utils.GetSelfFuncName(), "GetUserByName failed", err.Error()) - return resp, err + return resp, errors.WrapError(constant.ErrDB) } for _, user := range users { isBlock, err := imdb.UserIsBlock(user.UserID) @@ -269,14 +271,14 @@ func (s *userServer) GetUsersByName(ctx context.Context, req *pbUser.GetUsersByN userNums, err := imdb.GetUsersCount(user) if err != nil { log.NewError(req.OperationID, utils.GetSelfFuncName(), "", err.Error()) - return resp, err + return resp, errors.WrapError(constant.ErrDB) } resp.UserNums = userNums resp.Pagination = &sdkws.ResponsePagination{ CurrentPage: req.Pagination.PageNumber, ShowNumber: req.Pagination.ShowNumber, } - return resp, err + return resp, nil } func (s *userServer) GetUserById(ctx context.Context, req *pbUser.GetUserByIdReq) (*pbUser.GetUserByIdResp, error) { @@ -284,11 +286,13 @@ func (s *userServer) GetUserById(ctx context.Context, req *pbUser.GetUserByIdReq resp := &pbUser.GetUserByIdResp{User: &pbUser.User{}} user, err := imdb.GetUserByUserID(req.UserId) if err != nil { - return resp, nil + log.NewError(req.OperationID, utils.GetSelfFuncName(), "req: ", req.String()) + return resp, errors.WrapError(constant.ErrDB) } isBlock, err := imdb.UserIsBlock(req.UserId) if err != nil { - return resp, err + log.NewError(req.OperationID, utils.GetSelfFuncName(), "req:", req.String()) + return resp, errors.WrapError(constant.ErrDB) } resp.User = &pbUser.User{ ProfilePhoto: user.FaceURL, @@ -301,11 +305,11 @@ func (s *userServer) GetUserById(ctx context.Context, req *pbUser.GetUserByIdReq } func (s *userServer) GetUsers(ctx context.Context, req *pbUser.GetUsersReq) (*pbUser.GetUsersResp, error) { - log.NewInfo(req.OperationID, "GetUsers args ", req.String()) + log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "req: ", req.String()) resp := &pbUser.GetUsersResp{User: []*pbUser.User{}} users, err := imdb.GetUsers(req.Pagination.ShowNumber, req.Pagination.PageNumber) if err != nil { - return resp, nil + return resp, errors.WrapError(constant.ErrDB) } for _, v := range users { isBlock, err := imdb.UserIsBlock(v.UserID) @@ -324,10 +328,10 @@ func (s *userServer) GetUsers(ctx context.Context, req *pbUser.GetUsersReq) (*pb nums, err := imdb.GetUsersCount(user) if err != nil { log.NewError(req.OperationID, utils.GetSelfFuncName(), "GetUsersCount failed", err.Error()) - return resp, err + return resp, errors.WrapError(constant.ErrDB) } resp.UserNums = nums - resp.Pagination = &sdkws.ResponsePagination{ShowNumber:req.Pagination.ShowNumber, CurrentPage:req.Pagination.ShowNumber} + resp.Pagination = &sdkws.ResponsePagination{ShowNumber:req.Pagination.ShowNumber, CurrentPage:req.Pagination.PageNumber} return resp, nil } @@ -346,8 +350,8 @@ func (s *userServer) AlterUser(ctx context.Context, req *pbUser.AlterUserReq) (* UserID: req.UserId, } if err := imdb.UpdateUserInfo(user); err != nil { - log.NewError(req.OperationID, err) - return resp, err + log.NewError(req.OperationID, utils.GetSelfFuncName(), "UpdateUserInfo", err.Error()) + return resp, errors.WrapError(constant.ErrDB) } return resp, nil } @@ -357,7 +361,8 @@ func (s *userServer) AddUser(ctx context.Context, req *pbUser.AddUserReq) (*pbUs resp := &pbUser.AddUserResp{} err := imdb.AddUser(req.UserId, req.PhoneNumber, req.Name) if err != nil { - return resp, constant.ErrDB + log.NewError(req.OperationID, utils.GetSelfFuncName(), "AddUser", err.Error()) + return resp, errors.WrapError(constant.ErrDB) } return resp, nil } @@ -368,8 +373,8 @@ func (s *userServer) BlockUser(ctx context.Context, req *pbUser.BlockUserReq) (* resp := &pbUser.BlockUserResp{} err := imdb.BlockUser(req.UserId, req.EndDisableTime) if err != nil { - fmt.Println(err) - return resp, constant.ErrDB + log.NewError(req.OperationID, utils.GetSelfFuncName(), "BlockUser", err.Error()) + return resp, errors.WrapError(constant.ErrDB) } return resp, nil } @@ -379,7 +384,8 @@ func (s *userServer) UnBlockUser(ctx context.Context, req *pbUser.UnBlockUserReq resp := &pbUser.UnBlockUserResp{} err := imdb.UnBlockUser(req.UserId) if err != nil { - return resp, constant.ErrDB + log.NewError(req.OperationID, utils.GetSelfFuncName(), "unBlockUser", err.Error()) + return resp, errors.WrapError(constant.ErrDB) } return resp, nil } @@ -389,10 +395,8 @@ func (s *userServer) GetBlockUsers(ctx context.Context, req *pbUser.GetBlockUser resp := &pbUser.GetBlockUsersResp{} blockUsers, err := imdb.GetBlockUsers(req.Pagination.ShowNumber, req.Pagination.PageNumber) if err != nil { - return resp, constant.ErrDB - } - if err != nil { - return resp, constant.ErrDB + log.Error(req.OperationID, utils.GetSelfFuncName(), "GetBlockUsers", err.Error()) + return resp, errors.WrapError(constant.ErrDB) } for _, v := range blockUsers { resp.BlockUsers = append(resp.BlockUsers, &pbUser.BlockUser{ @@ -412,7 +416,7 @@ func (s *userServer) GetBlockUsers(ctx context.Context, req *pbUser.GetBlockUser nums, err := imdb.GetBlockUsersNumCount() if err != nil { log.NewError(req.OperationID, utils.GetSelfFuncName(), "GetBlockUsersNumCount failed", err.Error()) - return resp, err + return resp, errors.WrapError(constant.ErrDB) } resp.UserNums = nums return resp, nil @@ -423,8 +427,8 @@ func (s *userServer) GetBlockUserById(_ context.Context, req *pbUser.GetBlockUse resp := &pbUser.GetBlockUserByIdResp{} user, err := imdb.GetBlockUserById(req.UserId) if err != nil { - log.NewError(req.OperationID, utils.GetSelfFuncName(), err) - return resp, err + log.NewError(req.OperationID, utils.GetSelfFuncName(), "GetBlockUserById", err) + return resp, errors.WrapError(constant.ErrDB) } resp.BlockUser = &pbUser.BlockUser{ User: &pbUser.User{ @@ -444,7 +448,7 @@ func (s *userServer) DeleteUser(_ context.Context, req *pbUser.DeleteUserReq) (* resp := &pbUser.DeleteUserResp{} if row := imdb.DeleteUser(req.UserId); row == 0 { log.NewError(req.OperationID, utils.GetSelfFuncName(), "delete failed", "delete rows:", row) - return resp, constant.ErrDB + return resp, errors.WrapError(constant.ErrDB) } return resp, nil } diff --git a/pkg/cms_api_struct/admin.go b/pkg/cms_api_struct/admin.go index ffc2484b0..54674662e 100644 --- a/pkg/cms_api_struct/admin.go +++ b/pkg/cms_api_struct/admin.go @@ -1 +1,10 @@ package cms_api_struct + +type AdminLoginRequest struct { + AdminName string `json:"admin_name" binding:"required"` + Secret string `json:"secret" binding:"required"` +} + +type AdminLoginResponse struct { + Token string `json:"token"` +} \ No newline at end of file diff --git a/pkg/cms_api_struct/group.go b/pkg/cms_api_struct/group.go index 76c2efac0..992cd1f5e 100644 --- a/pkg/cms_api_struct/group.go +++ b/pkg/cms_api_struct/group.go @@ -57,6 +57,15 @@ type SetGroupMasterRequest struct { type SetGroupMasterResponse struct { } +type SetGroupMemberRequest struct { + GroupId string `json:"group_id" binding:"required"` + UserId string `json:"user_id" binding:"required"` +} + +type SetGroupMemberRespones struct { + +} + type BanGroupChatRequest struct { GroupId string `json:"group_id" binding:"required"` } diff --git a/pkg/cms_api_struct/message_cms.go b/pkg/cms_api_struct/message_cms.go index e65b8d2f7..bbf62c3ec 100644 --- a/pkg/cms_api_struct/message_cms.go +++ b/pkg/cms_api_struct/message_cms.go @@ -43,6 +43,6 @@ type ChatLog struct { type GetChatLogsResponse struct { ChatLogs []ChatLog `json:"chat_logs"` - + logNums int `json:"log_nums"` ResponsePagination } diff --git a/pkg/common/config/config.go b/pkg/common/config/config.go index 9eaa3ac27..a673e1466 100644 --- a/pkg/common/config/config.go +++ b/pkg/common/config/config.go @@ -86,6 +86,7 @@ type config struct { OpenImGroupName string `yaml:"openImGroupName"` OpenImAuthName string `yaml:"openImAuthName"` OpenImMessageCMSName string `yaml:"openImMessageCMSName"` + OpenImAdminCMSName string `yaml:"openImAdminCMSName"` } Etcd struct { EtcdSchema string `yaml:"etcdSchema"` diff --git a/pkg/common/constant/error.go b/pkg/common/constant/error.go index 3436b1dab..52c22a8e3 100644 --- a/pkg/common/constant/error.go +++ b/pkg/common/constant/error.go @@ -15,7 +15,7 @@ var ( // ErrMysql = ErrInfo{100, ""} // ErrMongo = ErrInfo{110, ""} // ErrRedis = ErrInfo{120, ""} - ErrParseToken = ErrInfo{200, ParseTokenMsg.Error()} + ErrParseToken = ErrInfo{700, ParseTokenMsg.Error()} // ErrCreateToken = ErrInfo{201, "Create token failed"} // ErrAppServerKey = ErrInfo{300, "key error"} ErrTencentCredential = ErrInfo{400, ThirdPartyMsg.Error()} diff --git a/pkg/common/db/mysql_model/im_mysql_model/message_cms.go b/pkg/common/db/mysql_model/im_mysql_model/message_cms.go index 261186e97..0f289a048 100644 --- a/pkg/common/db/mysql_model/im_mysql_model/message_cms.go +++ b/pkg/common/db/mysql_model/im_mysql_model/message_cms.go @@ -12,6 +12,18 @@ func GetChatLog(chatLog db.ChatLog, pageNumber, showNumber int32) ([]db.ChatLog, return chatLogs, err } dbConn.LogMode(true) - err = dbConn.Table("chat_logs").Where(fmt.Sprintf(" content like '%%%s%%' ", chatLog.Content)).Limit(showNumber).Offset(showNumber * (pageNumber - 1)).Find(&chatLogs).Error + err = dbConn.Table("chat_logs").Where(fmt.Sprintf(" content like '%%%s%%'", chatLog.Content)). + Limit(showNumber).Offset(showNumber * (pageNumber - 1)).Find(&chatLogs).Error return chatLogs, err +} + +func GetChatLogCount(chatLog db.ChatLog) (int64, error) { + dbConn, err := db.DB.MysqlDB.DefaultGormDB() + var count int64 + if err != nil { + return count, err + } + dbConn.LogMode(true) + err = dbConn.Table("chat_logs").Where(fmt.Sprintf(" content like '%%%s%%' and ", chatLog.Content)).Count(&count).Error + return count, err } \ No newline at end of file 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 56924c863..118f03665 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 @@ -159,7 +159,7 @@ func UserIsBlock(userId string) (bool, error) { return false, err } var user db.BlackList - rows := dbConn.Table("black_list").Where("uid=?", userId).First(&user).RowsAffected + rows := dbConn.Table("black_lists").Where("uid=?", userId).First(&user).RowsAffected if rows >= 1 { return true, nil } @@ -183,7 +183,7 @@ func BlockUser(userId, endDisableTime string) error { return constant.ErrDB } var blockUser db.BlackList - dbConn.Table("black_list").Where("uid=?", userId).First(&blockUser) + dbConn.Table("black_lists").Where("uid=?", userId).First(&blockUser) if blockUser.UserId != "" { dbConn.Model(&blockUser).Where("uid=?", blockUser.UserId).Update("end_disable_time", end) return nil @@ -222,7 +222,7 @@ func GetBlockUserById(userId string) (BlockUserInfo, error) { if err != nil { return blockUserInfo, err } - if err = dbConn.Table("black_list").Where("uid=?", userId).Find(&blockUser).Error; err != nil { + if err = dbConn.Table("black_lists").Where("uid=?", userId).Find(&blockUser).Error; err != nil { return blockUserInfo, err } user := db.Users{ diff --git a/pkg/common/http/http_resp.go b/pkg/common/http/http_resp.go index 24870e067..cdbf04463 100644 --- a/pkg/common/http/http_resp.go +++ b/pkg/common/http/http_resp.go @@ -2,15 +2,14 @@ package http import ( "Open_IM/pkg/common/constant" + "fmt" "google.golang.org/grpc/codes" "google.golang.org/grpc/status" - //"Open_IM/pkg/cms_api_struct" "net/http" "github.com/gin-gonic/gin" - ) type BaseResp struct { @@ -20,32 +19,15 @@ type BaseResp struct { } func RespHttp200(ctx *gin.Context, err error, data interface{}) { - var resp BaseResp - if v, ok := err.(constant.ErrInfo); ok { - resp.Code = v.Code() - resp.ErrMsg = v.Error() - } else { - resp.Code = constant.ErrServer.Code() - resp.ErrMsg = constant.ErrServer.Error() - } - resp.Data=data - ctx.JSON(http.StatusOK, resp) -} - -// warp error -func WarpError(err constant.ErrInfo) error { - return status.Error(codes.Code(err.ErrCode), err.ErrMsg) -} - -// parse error from server -func RespHttp200S(ctx *gin.Context, err error, data interface{}) { var resp BaseResp switch e := err.(type) { case constant.ErrInfo: resp.Code = e.ErrCode + resp.ErrMsg = e.ErrMsg default: s, ok := status.FromError(err) if !ok { + fmt.Println("need grpc format error") return } resp.Code = int32(s.Code()) @@ -55,6 +37,7 @@ func RespHttp200S(ctx *gin.Context, err error, data interface{}) { ctx.JSON(http.StatusOK, resp) } -//func CheckErr(pb interface{}) constant.ErrInfo{ -// -//} \ No newline at end of file +// warp error +func WrapError(err constant.ErrInfo) error { + return status.Error(codes.Code(err.ErrCode), err.ErrMsg) +} diff --git a/pkg/proto/admin_cms/admin_cms.pb.go b/pkg/proto/admin_cms/admin_cms.pb.go new file mode 100644 index 000000000..890f409a9 --- /dev/null +++ b/pkg/proto/admin_cms/admin_cms.pb.go @@ -0,0 +1,317 @@ +// Code generated by protoc-gen-go. DO NOT EDIT. +// versions: +// protoc-gen-go v1.27.1 +// protoc v3.15.5 +// source: admin_cms/admin_cms.proto + +package admin_cms + +import ( + context "context" + grpc "google.golang.org/grpc" + codes "google.golang.org/grpc/codes" + status "google.golang.org/grpc/status" + protoreflect "google.golang.org/protobuf/reflect/protoreflect" + protoimpl "google.golang.org/protobuf/runtime/protoimpl" + reflect "reflect" + sync "sync" +) + +const ( + // Verify that this generated code is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) + // Verify that runtime/protoimpl is sufficiently up-to-date. + _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) +) + +type AdminLoginReq struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + OperationID string `protobuf:"bytes,1,opt,name=OperationID,proto3" json:"OperationID,omitempty"` + AdminID string `protobuf:"bytes,2,opt,name=AdminID,proto3" json:"AdminID,omitempty"` + Secret string `protobuf:"bytes,3,opt,name=Secret,proto3" json:"Secret,omitempty"` +} + +func (x *AdminLoginReq) Reset() { + *x = AdminLoginReq{} + if protoimpl.UnsafeEnabled { + mi := &file_admin_cms_admin_cms_proto_msgTypes[0] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AdminLoginReq) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AdminLoginReq) ProtoMessage() {} + +func (x *AdminLoginReq) ProtoReflect() protoreflect.Message { + mi := &file_admin_cms_admin_cms_proto_msgTypes[0] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use AdminLoginReq.ProtoReflect.Descriptor instead. +func (*AdminLoginReq) Descriptor() ([]byte, []int) { + return file_admin_cms_admin_cms_proto_rawDescGZIP(), []int{0} +} + +func (x *AdminLoginReq) GetOperationID() string { + if x != nil { + return x.OperationID + } + return "" +} + +func (x *AdminLoginReq) GetAdminID() string { + if x != nil { + return x.AdminID + } + return "" +} + +func (x *AdminLoginReq) GetSecret() string { + if x != nil { + return x.Secret + } + return "" +} + +type AdminLoginResp struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + Token string `protobuf:"bytes,1,opt,name=token,proto3" json:"token,omitempty"` +} + +func (x *AdminLoginResp) Reset() { + *x = AdminLoginResp{} + if protoimpl.UnsafeEnabled { + mi := &file_admin_cms_admin_cms_proto_msgTypes[1] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *AdminLoginResp) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*AdminLoginResp) ProtoMessage() {} + +func (x *AdminLoginResp) ProtoReflect() protoreflect.Message { + mi := &file_admin_cms_admin_cms_proto_msgTypes[1] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use AdminLoginResp.ProtoReflect.Descriptor instead. +func (*AdminLoginResp) Descriptor() ([]byte, []int) { + return file_admin_cms_admin_cms_proto_rawDescGZIP(), []int{1} +} + +func (x *AdminLoginResp) GetToken() string { + if x != nil { + return x.Token + } + return "" +} + +var File_admin_cms_admin_cms_proto protoreflect.FileDescriptor + +var file_admin_cms_admin_cms_proto_rawDesc = []byte{ + 0x0a, 0x19, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x5f, 0x63, 0x6d, 0x73, 0x2f, 0x61, 0x64, 0x6d, 0x69, + 0x6e, 0x5f, 0x63, 0x6d, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x12, 0x09, 0x61, 0x64, 0x6d, + 0x69, 0x6e, 0x5f, 0x63, 0x6d, 0x73, 0x22, 0x63, 0x0a, 0x0d, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x4c, + 0x6f, 0x67, 0x69, 0x6e, 0x52, 0x65, 0x71, 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x4f, 0x70, + 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x12, 0x18, 0x0a, 0x07, 0x41, 0x64, 0x6d, + 0x69, 0x6e, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x41, 0x64, 0x6d, 0x69, + 0x6e, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x18, 0x03, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x06, 0x53, 0x65, 0x63, 0x72, 0x65, 0x74, 0x22, 0x26, 0x0a, 0x0e, 0x41, + 0x64, 0x6d, 0x69, 0x6e, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x12, 0x14, 0x0a, + 0x05, 0x74, 0x6f, 0x6b, 0x65, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x6f, + 0x6b, 0x65, 0x6e, 0x32, 0x4d, 0x0a, 0x08, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x43, 0x4d, 0x53, 0x12, + 0x41, 0x0a, 0x0a, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x12, 0x18, 0x2e, + 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x5f, 0x63, 0x6d, 0x73, 0x2e, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x4c, + 0x6f, 0x67, 0x69, 0x6e, 0x52, 0x65, 0x71, 0x1a, 0x19, 0x2e, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x5f, + 0x63, 0x6d, 0x73, 0x2e, 0x41, 0x64, 0x6d, 0x69, 0x6e, 0x4c, 0x6f, 0x67, 0x69, 0x6e, 0x52, 0x65, + 0x73, 0x70, 0x42, 0x17, 0x5a, 0x15, 0x2e, 0x2f, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x5f, 0x63, 0x6d, + 0x73, 0x3b, 0x61, 0x64, 0x6d, 0x69, 0x6e, 0x5f, 0x63, 0x6d, 0x73, 0x62, 0x06, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x33, +} + +var ( + file_admin_cms_admin_cms_proto_rawDescOnce sync.Once + file_admin_cms_admin_cms_proto_rawDescData = file_admin_cms_admin_cms_proto_rawDesc +) + +func file_admin_cms_admin_cms_proto_rawDescGZIP() []byte { + file_admin_cms_admin_cms_proto_rawDescOnce.Do(func() { + file_admin_cms_admin_cms_proto_rawDescData = protoimpl.X.CompressGZIP(file_admin_cms_admin_cms_proto_rawDescData) + }) + return file_admin_cms_admin_cms_proto_rawDescData +} + +var file_admin_cms_admin_cms_proto_msgTypes = make([]protoimpl.MessageInfo, 2) +var file_admin_cms_admin_cms_proto_goTypes = []interface{}{ + (*AdminLoginReq)(nil), // 0: admin_cms.AdminLoginReq + (*AdminLoginResp)(nil), // 1: admin_cms.AdminLoginResp +} +var file_admin_cms_admin_cms_proto_depIdxs = []int32{ + 0, // 0: admin_cms.adminCMS.AdminLogin:input_type -> admin_cms.AdminLoginReq + 1, // 1: admin_cms.adminCMS.AdminLogin:output_type -> admin_cms.AdminLoginResp + 1, // [1:2] is the sub-list for method output_type + 0, // [0:1] is the sub-list for method input_type + 0, // [0:0] is the sub-list for extension type_name + 0, // [0:0] is the sub-list for extension extendee + 0, // [0:0] is the sub-list for field type_name +} + +func init() { file_admin_cms_admin_cms_proto_init() } +func file_admin_cms_admin_cms_proto_init() { + if File_admin_cms_admin_cms_proto != nil { + return + } + if !protoimpl.UnsafeEnabled { + file_admin_cms_admin_cms_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AdminLoginReq); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_admin_cms_admin_cms_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*AdminLoginResp); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + } + type x struct{} + out := protoimpl.TypeBuilder{ + File: protoimpl.DescBuilder{ + GoPackagePath: reflect.TypeOf(x{}).PkgPath(), + RawDescriptor: file_admin_cms_admin_cms_proto_rawDesc, + NumEnums: 0, + NumMessages: 2, + NumExtensions: 0, + NumServices: 1, + }, + GoTypes: file_admin_cms_admin_cms_proto_goTypes, + DependencyIndexes: file_admin_cms_admin_cms_proto_depIdxs, + MessageInfos: file_admin_cms_admin_cms_proto_msgTypes, + }.Build() + File_admin_cms_admin_cms_proto = out.File + file_admin_cms_admin_cms_proto_rawDesc = nil + file_admin_cms_admin_cms_proto_goTypes = nil + file_admin_cms_admin_cms_proto_depIdxs = nil +} + +// Reference imports to suppress errors if they are not otherwise used. +var _ context.Context +var _ grpc.ClientConnInterface + +// 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.SupportPackageIsVersion6 + +// AdminCMSClient is the client API for AdminCMS service. +// +// For semantics around ctx use and closing/ending streaming RPCs, please refer to https://godoc.org/google.golang.org/grpc#ClientConn.NewStream. +type AdminCMSClient interface { + AdminLogin(ctx context.Context, in *AdminLoginReq, opts ...grpc.CallOption) (*AdminLoginResp, error) +} + +type adminCMSClient struct { + cc grpc.ClientConnInterface +} + +func NewAdminCMSClient(cc grpc.ClientConnInterface) AdminCMSClient { + return &adminCMSClient{cc} +} + +func (c *adminCMSClient) AdminLogin(ctx context.Context, in *AdminLoginReq, opts ...grpc.CallOption) (*AdminLoginResp, error) { + out := new(AdminLoginResp) + err := c.cc.Invoke(ctx, "/admin_cms.adminCMS/AdminLogin", in, out, opts...) + if err != nil { + return nil, err + } + return out, nil +} + +// AdminCMSServer is the server API for AdminCMS service. +type AdminCMSServer interface { + AdminLogin(context.Context, *AdminLoginReq) (*AdminLoginResp, error) +} + +// UnimplementedAdminCMSServer can be embedded to have forward compatible implementations. +type UnimplementedAdminCMSServer struct { +} + +func (*UnimplementedAdminCMSServer) AdminLogin(context.Context, *AdminLoginReq) (*AdminLoginResp, error) { + return nil, status.Errorf(codes.Unimplemented, "method AdminLogin not implemented") +} + +func RegisterAdminCMSServer(s *grpc.Server, srv AdminCMSServer) { + s.RegisterService(&_AdminCMS_serviceDesc, srv) +} + +func _AdminCMS_AdminLogin_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) { + in := new(AdminLoginReq) + if err := dec(in); err != nil { + return nil, err + } + if interceptor == nil { + return srv.(AdminCMSServer).AdminLogin(ctx, in) + } + info := &grpc.UnaryServerInfo{ + Server: srv, + FullMethod: "/admin_cms.adminCMS/AdminLogin", + } + handler := func(ctx context.Context, req interface{}) (interface{}, error) { + return srv.(AdminCMSServer).AdminLogin(ctx, req.(*AdminLoginReq)) + } + return interceptor(ctx, in, info, handler) +} + +var _AdminCMS_serviceDesc = grpc.ServiceDesc{ + ServiceName: "admin_cms.adminCMS", + HandlerType: (*AdminCMSServer)(nil), + Methods: []grpc.MethodDesc{ + { + MethodName: "AdminLogin", + Handler: _AdminCMS_AdminLogin_Handler, + }, + }, + Streams: []grpc.StreamDesc{}, + Metadata: "admin_cms/admin_cms.proto", +} diff --git a/pkg/proto/admin_cms/admin_cms.proto b/pkg/proto/admin_cms/admin_cms.proto new file mode 100644 index 000000000..6759268ed --- /dev/null +++ b/pkg/proto/admin_cms/admin_cms.proto @@ -0,0 +1,18 @@ +syntax = "proto3"; +option go_package = "./admin_cms;admin_cms"; +package admin_cms; + +message AdminLoginReq { + string OperationID = 1; + string AdminID = 2; + string Secret = 3; +} + + +message AdminLoginResp { + string token = 1; +} + +service adminCMS { + rpc AdminLogin(AdminLoginReq) returns(AdminLoginResp); +} \ No newline at end of file diff --git a/pkg/proto/proto_dir.cfg b/pkg/proto/proto_dir.cfg index af6ff1905..4b0d968e0 100644 --- a/pkg/proto/proto_dir.cfg +++ b/pkg/proto/proto_dir.cfg @@ -1,7 +1,8 @@ all_proto=( - message_cms/message_cms.proto - #statistics/statistics.proto + # message_cms/message_cms.proto + admin_cms/admin_cms.proto + # statistics/statistics.proto # auth/auth.proto # friend/friend.proto # group/group.proto From 7797e475615ba07194d0110a24336f49aa78a11b Mon Sep 17 00:00:00 2001 From: wangchuxiao Date: Mon, 14 Feb 2022 00:02:15 +0800 Subject: [PATCH 638/814] add --- internal/rpc/user/user.go | 11 +++--- pkg/common/db/model_struct.go | 8 ++-- pkg/common/db/mysql.go | 7 ++-- .../im_mysql_model/statistics_model.go | 4 +- .../mysql_model/im_mysql_model/user_model.go | 38 +++++++++---------- pkg/common/utils/utils.go | 6 +-- 6 files changed, 37 insertions(+), 37 deletions(-) diff --git a/internal/rpc/user/user.go b/internal/rpc/user/user.go index 190a8060a..31fed2ff5 100644 --- a/internal/rpc/user/user.go +++ b/internal/rpc/user/user.go @@ -217,7 +217,7 @@ func (s *userServer) UpdateUserInfo(ctx context.Context, req *pbUser.UpdateUserI return &pbUser.UpdateUserInfoResp{CommonResp: &pbUser.CommonResp{ErrCode: constant.ErrAccess.ErrCode, ErrMsg: constant.ErrAccess.ErrMsg}}, nil } - var user db.Users + var user db.User utils.CopyStructFields(&user, req.UserInfo) if req.UserInfo.Birth != 0 { user.Birth = utils.UnixSecondToTime(int64(req.UserInfo.Birth)) @@ -267,7 +267,7 @@ func (s *userServer) GetUsersByName(ctx context.Context, req *pbUser.GetUsersByN IsBlock: isBlock, }) } - user := db.Users{Nickname:req.UserName} + user := db.User{Nickname: req.UserName} userNums, err := imdb.GetUsersCount(user) if err != nil { log.NewError(req.OperationID, utils.GetSelfFuncName(), "", err.Error()) @@ -324,14 +324,14 @@ func (s *userServer) GetUsers(ctx context.Context, req *pbUser.GetUsersReq) (*pb resp.User = append(resp.User, user) } } - user := db.Users{} + user := db.User{} nums, err := imdb.GetUsersCount(user) if err != nil { log.NewError(req.OperationID, utils.GetSelfFuncName(), "GetUsersCount failed", err.Error()) return resp, errors.WrapError(constant.ErrDB) } resp.UserNums = nums - resp.Pagination = &sdkws.ResponsePagination{ShowNumber:req.Pagination.ShowNumber, CurrentPage:req.Pagination.PageNumber} + resp.Pagination = &sdkws.ResponsePagination{ShowNumber: req.Pagination.ShowNumber, CurrentPage: req.Pagination.PageNumber} return resp, nil } @@ -343,7 +343,7 @@ func (s *userServer) ResignUser(ctx context.Context, req *pbUser.ResignUserReq) func (s *userServer) AlterUser(ctx context.Context, req *pbUser.AlterUserReq) (*pbUser.AlterUserResp, error) { log.NewInfo(req.OperationID, "AlterUser args ", req.String()) resp := &pbUser.AlterUserResp{} - user := db.Users{ + user := db.User{ PhoneNumber: strconv.FormatInt(req.PhoneNumber, 10), Nickname: req.Nickname, Email: req.Email, @@ -452,4 +452,3 @@ func (s *userServer) DeleteUser(_ context.Context, req *pbUser.DeleteUserReq) (* } return resp, nil } - diff --git a/pkg/common/db/model_struct.go b/pkg/common/db/model_struct.go index 010a5340a..980237b31 100644 --- a/pkg/common/db/model_struct.go +++ b/pkg/common/db/model_struct.go @@ -135,7 +135,7 @@ type GroupRequest struct { //int64 CreateTime = 9; //int32 AppMangerLevel = 10; //open_im_sdk.User == imdb.User -type Users struct { +type User struct { UserID string `gorm:"column:user_id;primary_key;size:64"` Nickname string `gorm:"column:name;size:255"` FaceURL string `gorm:"column:face_url;size:255"` @@ -186,7 +186,7 @@ type ChatLog struct { } type BlackList struct { - UserId string `gorm:"column:uid"` + UserId string `gorm:"column:uid"` BeginDisableTime time.Time `gorm:"column:begin_disable_time"` - EndDisableTime time.Time `gorm:"column:end_disable_time"` -} \ No newline at end of file + EndDisableTime time.Time `gorm:"column:end_disable_time"` +} diff --git a/pkg/common/db/mysql.go b/pkg/common/db/mysql.go index d6064cf8e..3f9acca45 100644 --- a/pkg/common/db/mysql.go +++ b/pkg/common/db/mysql.go @@ -4,10 +4,11 @@ import ( "Open_IM/pkg/common/config" "Open_IM/pkg/common/log" "fmt" - "github.com/jinzhu/gorm" - _ "github.com/jinzhu/gorm/dialects/mysql" "sync" "time" + + "github.com/jinzhu/gorm" + _ "github.com/jinzhu/gorm/dialects/mysql" ) type mysqlDB struct { @@ -57,7 +58,7 @@ func initMysqlDB() { &Group{}, &GroupMember{}, &GroupRequest{}, - &Users{}, + &User{}, &Black{}, &ChatLog{}) db.Set("gorm:table_options", "CHARSET=utf8") diff --git a/pkg/common/db/mysql_model/im_mysql_model/statistics_model.go b/pkg/common/db/mysql_model/im_mysql_model/statistics_model.go index 2f6c969f9..ae2ec9cfd 100644 --- a/pkg/common/db/mysql_model/im_mysql_model/statistics_model.go +++ b/pkg/common/db/mysql_model/im_mysql_model/statistics_model.go @@ -143,10 +143,10 @@ func GetActiveUsers(from, to time.Time, limit int) ([]*activeUser, error) { dbConn.LogMode(true) err = dbConn.Table("chat_logs").Select("send_id, count(*) as message_num").Where("create_time >= ? and create_time <= ? and session_type = ?", from, to, 1).Group("send_id").Limit(limit).Order("message_num DESC").Find(&activeUsers).Error for _, activeUser := range activeUsers { - user := db.Users{ + user := db.User{ UserID: activeUser.Id, } - dbConn.Model(&user).Select("user_id, name").Find(&user) + dbConn.Table("users").Select("user_id, name").Find(&user) activeUser.Name = user.Nickname } return activeUsers, err 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 118f03665..de5045855 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 @@ -20,7 +20,7 @@ func init() { } else { continue } - var appMgr db.Users + var appMgr db.User appMgr.UserID = v appMgr.Nickname = "AppManager" + utils.IntToString(k+1) appMgr.AppMangerLevel = constant.AppAdmin @@ -32,7 +32,7 @@ func init() { } } -func UserRegister(user db.Users) error { +func UserRegister(user db.User) error { dbConn, err := db.DB.MysqlDB.DefaultGormDB() if err != nil { return err @@ -68,16 +68,16 @@ func DeleteUser(userID string) (i int64) { if err != nil { return 0 } - i = dbConn.Table("users").Where("user_id=?", userID).Delete(db.Users{}).RowsAffected + i = dbConn.Table("users").Where("user_id=?", userID).Delete(db.User{}).RowsAffected return i } -func GetUserByUserID(userID string) (*db.Users, error) { +func GetUserByUserID(userID string) (*db.User, error) { dbConn, err := db.DB.MysqlDB.DefaultGormDB() if err != nil { return nil, err } - var user db.Users + var user db.User err = dbConn.Table("users").Where("user_id=?", userID).First(&user).Error if err != nil { return nil, err @@ -85,7 +85,7 @@ func GetUserByUserID(userID string) (*db.Users, error) { return &user, nil } -func UpdateUserInfo(user db.Users) error { +func UpdateUserInfo(user db.User) error { dbConn, err := db.DB.MysqlDB.DefaultGormDB() if err != nil { return err @@ -123,14 +123,14 @@ func SelectSomeUserID(userIDList []string) ([]string, error) { return resultArr, nil } -func GetUsers(showNumber, pageNumber int32) ([]db.Users, error) { +func GetUsers(showNumber, pageNumber int32) ([]db.User, error) { dbConn, err := db.DB.MysqlDB.DefaultGormDB() - var users []db.Users + var users []db.User if err != nil { return users, err } dbConn.LogMode(true) - err = dbConn.Limit(showNumber).Offset(showNumber * (pageNumber - 1)).Find(&users).Error + err = dbConn.Table("users").Limit(showNumber).Offset(showNumber * (pageNumber - 1)).Find(&users).Error if err != nil { return users, err } @@ -142,14 +142,14 @@ func AddUser(userId, phoneNumber, name string) error { if err != nil { return err } - user := db.Users{ + user := db.User{ PhoneNumber: phoneNumber, Birth: time.Now(), CreateTime: time.Now(), UserID: userId, Nickname: name, } - result := dbConn.Create(&user) + result := dbConn.Table("users").Create(&user) return result.Error } @@ -208,7 +208,7 @@ func UnBlockUser(userId string) error { } type BlockUserInfo struct { - User db.Users + User db.User BeginDisableTime time.Time EndDisableTime time.Time } @@ -225,7 +225,7 @@ func GetBlockUserById(userId string) (BlockUserInfo, error) { if err = dbConn.Table("black_lists").Where("uid=?", userId).Find(&blockUser).Error; err != nil { return blockUserInfo, err } - user := db.Users{ + user := db.User{ UserID: blockUser.UserId, } if err := dbConn.Find(&user).Error; err != nil { @@ -251,10 +251,10 @@ func GetBlockUsers(showNumber, pageNumber int32) ([]BlockUserInfo, error) { return blockUserInfos, err } for _, blockUser := range blockUsers { - var user db.Users + var user db.User if err := dbConn.Table("users").Where("user_id=?", blockUser.UserId).First(&user).Error; err == nil { blockUserInfos = append(blockUserInfos, BlockUserInfo{ - User: db.Users{ + User: db.User{ UserID: user.UserID, Nickname: user.Nickname, FaceURL: user.FaceURL, @@ -267,9 +267,9 @@ func GetBlockUsers(showNumber, pageNumber int32) ([]BlockUserInfo, error) { return blockUserInfos, nil } -func GetUserByName(userName string, showNumber, pageNumber int32) ([]db.Users, error) { +func GetUserByName(userName string, showNumber, pageNumber int32) ([]db.User, error) { dbConn, err := db.DB.MysqlDB.DefaultGormDB() - var users []db.Users + var users []db.User if err != nil { return users, err } @@ -278,14 +278,14 @@ func GetUserByName(userName string, showNumber, pageNumber int32) ([]db.Users, e return users, err } -func GetUsersCount(user db.Users) (int32, error) { +func GetUsersCount(user db.User) (int32, error) { dbConn, err := db.DB.MysqlDB.DefaultGormDB() if err != nil { return 0, err } dbConn.LogMode(true) var count int32 - if err := dbConn.Model(user).Where(fmt.Sprintf(" name like '%%%s%%' ", user.Nickname)).Count(&count).Error; err != nil { + if err := dbConn.Table("users").Where(fmt.Sprintf(" name like '%%%s%%' ", user.Nickname)).Count(&count).Error; err != nil { return 0, err } return count, nil diff --git a/pkg/common/utils/utils.go b/pkg/common/utils/utils.go index bd0c2a15d..2fbcf1930 100644 --- a/pkg/common/utils/utils.go +++ b/pkg/common/utils/utils.go @@ -128,19 +128,19 @@ func GroupRequestDBCopyOpenIM(dst *open_im_sdk.GroupRequest, src *db.GroupReques dst.HandleTime = uint32(src.HandledTime.Unix()) } -func UserOpenIMCopyDB(dst *db.Users, src *open_im_sdk.UserInfo) { +func UserOpenIMCopyDB(dst *db.User, src *open_im_sdk.UserInfo) { utils.CopyStructFields(dst, src) dst.Birth = utils.UnixSecondToTime(int64(src.Birth)) dst.CreateTime = utils.UnixSecondToTime(int64(src.CreateTime)) } -func UserDBCopyOpenIM(dst *open_im_sdk.UserInfo, src *db.Users) { +func UserDBCopyOpenIM(dst *open_im_sdk.UserInfo, src *db.User) { utils.CopyStructFields(dst, src) dst.CreateTime = uint32(src.CreateTime.Unix()) dst.Birth = uint32(src.Birth.Unix()) } -func UserDBCopyOpenIMPublicUser(dst *open_im_sdk.PublicUserInfo, src *db.Users) { +func UserDBCopyOpenIMPublicUser(dst *open_im_sdk.PublicUserInfo, src *db.User) { utils.CopyStructFields(dst, src) } From c413eda330f30c025118c35688536bd61a02f4fe Mon Sep 17 00:00:00 2001 From: wangchuxiao Date: Mon, 14 Feb 2022 10:57:23 +0800 Subject: [PATCH 639/814] merge code --- .gitignore | 1 + .idea/.gitignore | 2 -- .idea/vcs.xml | 6 ------ 3 files changed, 1 insertion(+), 8 deletions(-) delete mode 100644 .idea/.gitignore delete mode 100644 .idea/vcs.xml diff --git a/.gitignore b/.gitignore index 0947afd71..e4b74c4e9 100644 --- a/.gitignore +++ b/.gitignore @@ -5,6 +5,7 @@ components logs out-test .github +.idea deploy/open_im_demo deploy/open_im_api diff --git a/.idea/.gitignore b/.idea/.gitignore deleted file mode 100644 index 5c98b4288..000000000 --- a/.idea/.gitignore +++ /dev/null @@ -1,2 +0,0 @@ -# Default ignored files -/workspace.xml \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml deleted file mode 100644 index 94a25f7f4..000000000 --- a/.idea/vcs.xml +++ /dev/null @@ -1,6 +0,0 @@ - - - - - - \ No newline at end of file From 8cdea2bfeb8eb1fdf6cc1f3cc2122a061433c5e2 Mon Sep 17 00:00:00 2001 From: wangchuxiao Date: Mon, 14 Feb 2022 15:16:59 +0800 Subject: [PATCH 640/814] cms dev --- config/config.yaml | 2 +- internal/cms_api/group/group.go | 63 ++- internal/cms_api/middleware/jwt_auth.go | 7 +- internal/cms_api/router.go | 2 + internal/rpc/admin_cms/admin_cms.go | 5 +- internal/rpc/group/group.go | 69 ++- pkg/cms_api_struct/group.go | 13 + .../mysql_model/im_mysql_model/group_model.go | 11 +- pkg/proto/auto_proto.sh | 2 +- pkg/proto/group/group.pb.go | 411 ++++++------------ pkg/proto/group/group.proto | 9 - pkg/proto/proto_dir.cfg | 18 +- 12 files changed, 267 insertions(+), 345 deletions(-) diff --git a/config/config.yaml b/config/config.yaml index 7df6ee3b2..7279e8fed 100644 --- a/config/config.yaml +++ b/config/config.yaml @@ -94,7 +94,7 @@ rpcport: openImPushPort: [ 10700 ] openImOpenImStatisticPort: [ 10800 ] OpenImMessageCMSPort: [ 10900 ] - openImAdminCMSPort: [10100] + openImAdminCMSPort: [11000] c2c: callbackBeforeSendMsg: switch: false diff --git a/internal/cms_api/group/group.go b/internal/cms_api/group/group.go index 1b3dec3cb..c9d926bb5 100644 --- a/internal/cms_api/group/group.go +++ b/internal/cms_api/group/group.go @@ -372,26 +372,79 @@ func SetGroupMaster(c *gin.Context) { var ( req cms_api_struct.SetGroupMasterRequest _ cms_api_struct.SetGroupMasterResponse - reqPb pbGroup.SetGroupMasterReq + reqPb pbGroup.OperateUserRoleReq ) if err := c.BindJSON(&req); err != nil { - log.NewError(reqPb.OperationId, utils.GetSelfFuncName(),"BindJSON failed ", err.Error()) + log.NewError(reqPb.OperationID, utils.GetSelfFuncName(),"BindJSON failed ", err.Error()) openIMHttp.RespHttp200(c, constant.ErrArgs, nil) return } reqPb.GroupId = req.GroupId reqPb.UserId = req.UserId + reqPb.RoleLevel = constant.GroupOwner etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImGroupName) client := pbGroup.NewGroupClient(etcdConn) - _, err := client.SetGroupMaster(context.Background(), &reqPb) + _, err := client.OperateUserRole(context.Background(), &reqPb) if err != nil { - log.NewError(reqPb.OperationId, utils.GetSelfFuncName(), "DeleteGroup failed", err.Error()) + log.NewError(reqPb.OperationID, utils.GetSelfFuncName(), "DeleteGroup failed", err.Error()) openIMHttp.RespHttp200(c, constant.ErrServer, nil) return } openIMHttp.RespHttp200(c, constant.OK, nil) } -func SetMemberInGroup(c *gin.Context) { +func SetGroupOrdinaryUsers(c *gin.Context) { + var ( + req cms_api_struct.SetGroupMemberRequest + _ cms_api_struct.AdminLoginResponse + reqPb pbGroup.OperateUserRoleReq + ) + if err := c.BindJSON(&req); err != nil { + log.NewError(reqPb.OperationID, utils.GetSelfFuncName(), "BindJSON failed ", err.Error()) + openIMHttp.RespHttp200(c, constant.ErrArgs, nil) + return + } + reqPb.GroupId = req.GroupId + reqPb.UserId = req.UserId + reqPb.RoleLevel = constant.GroupOrdinaryUsers + etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImGroupName) + client := pbGroup.NewGroupClient(etcdConn) + _, err := client.OperateUserRole(context.Background(), &reqPb) + if err != nil { + log.NewError(reqPb.OperationID, utils.GetSelfFuncName(), "DeleteGroup failed", err.Error()) + openIMHttp.RespHttp200(c, err, nil) + return + } + openIMHttp.RespHttp200(c, constant.OK, nil) +} +func AlterGroupInfo(c *gin.Context) { + var ( + req cms_api_struct.AlterGroupInfoRequest + _ cms_api_struct.SetGroupMasterResponse + reqPb pbGroup.SetGroupInfoReq + ) + if err := c.BindJSON(&req); err != nil { + log.NewError(reqPb.OperationID, utils.GetSelfFuncName(), "BindJSON failed ", err.Error()) + openIMHttp.RespHttp200(c, constant.ErrArgs, nil) + return + } + reqPb.OpUserID = c.MustGet("userID").(string) + reqPb.GroupInfo = &commonPb.GroupInfo{ + GroupID: req.GroupID, + GroupName: req.GroupName, + Introduction: req.Introduction, + Notification: req.Notification, + FaceURL: req.ProfilePhoto, + GroupType: int32(req.GroupType), + } + etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImGroupName) + client := pbGroup.NewGroupClient(etcdConn) + _, err := client.SetGroupInfo(context.Background(), &reqPb) + if err != nil { + log.NewError(reqPb.OperationID, utils.GetSelfFuncName(), "DeleteGroup failed", err.Error()) + openIMHttp.RespHttp200(c, err, nil) + return + } + openIMHttp.RespHttp200(c, constant.OK, nil) } \ No newline at end of file diff --git a/internal/cms_api/middleware/jwt_auth.go b/internal/cms_api/middleware/jwt_auth.go index f08cf95b7..f245fc4ad 100644 --- a/internal/cms_api/middleware/jwt_auth.go +++ b/internal/cms_api/middleware/jwt_auth.go @@ -5,14 +5,15 @@ import ( "Open_IM/pkg/common/http" "Open_IM/pkg/common/log" "Open_IM/pkg/common/token_verify" - "fmt" + "Open_IM/pkg/utils" "github.com/gin-gonic/gin" ) func JWTAuth() gin.HandlerFunc { return func(c *gin.Context) { - ok, token := token_verify.GetUserIDFromToken(c.Request.Header.Get("token")) - fmt.Println(token) + ok, userID := token_verify.GetUserIDFromToken(c.Request.Header.Get("token")) + log.NewInfo("0", utils.GetSelfFuncName(), "userID: ", userID) + c.Set("userID", userID) if !ok { log.NewError("","GetUserIDFromToken false ", c.Request.Header.Get("token")) c.Abort() diff --git a/internal/cms_api/router.go b/internal/cms_api/router.go index 5c9810e0a..941cc5bf5 100644 --- a/internal/cms_api/router.go +++ b/internal/cms_api/router.go @@ -61,6 +61,8 @@ func NewGinRouter() *gin.Engine { groupRouterGroup.POST("/delete_group", group.DeleteGroup) groupRouterGroup.POST("/get_members_in_group", group.GetGroupMembers) groupRouterGroup.POST("/set_group_master", group.SetGroupMaster) + groupRouterGroup.POST("/set_group_ordinary_user", group.SetGroupOrdinaryUsers) + groupRouterGroup.POST("/alter_group_info", group.AlterGroupInfo) } userRouterGroup := r2.Group("/user") { diff --git a/internal/rpc/admin_cms/admin_cms.go b/internal/rpc/admin_cms/admin_cms.go index d212f0012..8703485a7 100644 --- a/internal/rpc/admin_cms/admin_cms.go +++ b/internal/rpc/admin_cms/admin_cms.go @@ -70,11 +70,10 @@ func (s *adminCMSServer) AdminLogin(_ context.Context, req *pbAdminCMS.AdminLogi if adminID == req.AdminID { for _, secret := range config.Config.Manager.Secrets { if secret == req.Secret { - str := secret+adminID - token, expTime, err := token_verify.CreateToken(str,9843) + token, expTime, err := token_verify.CreateToken(adminID,9843) log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "generate token success", "token: ", token, "expTime:", expTime) if err != nil { - log.NewError(req.OperationID, utils.GetSelfFuncName(), "generate token failed", "str: ", str, err.Error()) + log.NewError(req.OperationID, utils.GetSelfFuncName(), "generate token failed", "adminID: ", adminID, err.Error()) return resp, openIMHttp.WrapError(constant.ErrTokenUnknown) } resp.Token = token diff --git a/internal/rpc/group/group.go b/internal/rpc/group/group.go index 34574ef64..2a0f59f8d 100644 --- a/internal/rpc/group/group.go +++ b/internal/rpc/group/group.go @@ -6,6 +6,7 @@ import ( "Open_IM/pkg/common/constant" "Open_IM/pkg/common/db" imdb "Open_IM/pkg/common/db/mysql_model/im_mysql_model" + "Open_IM/pkg/common/http" "Open_IM/pkg/common/log" "Open_IM/pkg/common/token_verify" cp "Open_IM/pkg/common/utils" @@ -583,7 +584,7 @@ func (s *groupServer) SetGroupInfo(ctx context.Context, req *pbGroup.SetGroupInf group, err := imdb.GetGroupInfoByGroupID(req.GroupInfo.GroupID) if err != nil { log.NewError(req.OperationID, "GetGroupInfoByGroupID failed ", err.Error(), req.GroupInfo.GroupID) - return &pbGroup.SetGroupInfoResp{CommonResp: &pbGroup.CommonResp{ErrCode: constant.ErrDB.ErrCode, ErrMsg: constant.ErrAccess.ErrMsg}}, nil + return &pbGroup.SetGroupInfoResp{CommonResp: &pbGroup.CommonResp{ErrCode: constant.ErrDB.ErrCode, ErrMsg: constant.ErrAccess.ErrMsg}}, http.WrapError(constant.ErrDB) } ////bitwise operators: 0001:groupName; 0010:Notification 0100:Introduction; 1000:FaceUrl; 10000:owner @@ -606,7 +607,7 @@ func (s *groupServer) SetGroupInfo(ctx context.Context, req *pbGroup.SetGroupInf err = imdb.SetGroupInfo(groupInfo) if err != nil { log.NewError(req.OperationID, "SetGroupInfo failed ", err.Error(), groupInfo) - return &pbGroup.SetGroupInfoResp{CommonResp: &pbGroup.CommonResp{ErrCode: constant.ErrDB.ErrCode, ErrMsg: constant.ErrDB.ErrMsg}}, nil + return &pbGroup.SetGroupInfoResp{CommonResp: &pbGroup.CommonResp{ErrCode: constant.ErrDB.ErrCode, ErrMsg: constant.ErrDB.ErrMsg}}, http.WrapError(constant.ErrDB) } log.NewInfo(req.OperationID, "SetGroupInfo rpc return ", pbGroup.SetGroupInfoResp{CommonResp: &pbGroup.CommonResp{}}) if changedType != 0 { @@ -641,19 +642,19 @@ func (s *groupServer) TransferGroupOwner(_ context.Context, req *pbGroup.Transfe } func (s *groupServer) GetGroupById(_ context.Context, req *pbGroup.GetGroupByIdReq) (*pbGroup.GetGroupByIdResp, error) { - log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "GetGroup ", req.String()) + log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "req: ", req.String()) resp := &pbGroup.GetGroupByIdResp{CMSGroup: &pbGroup.CMSGroup{ GroupInfo: &open_im_sdk.GroupInfo{}, }} group, err := imdb.GetGroupById(req.GroupId) if err != nil { - log.NewInfo(req.OperationID, utils.GetSelfFuncName(), err.Error()) - return resp, err + log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "GetGroupById error", err.Error()) + return resp, http.WrapError(constant.ErrDB) } resp.CMSGroup.GroupInfo = &open_im_sdk.GroupInfo{ GroupID: group.GroupID, GroupName: group.GroupName, - FaceURL: group.FaceUrl, + FaceURL: group.FaceURL, OwnerUserID: group.CreatorUserID, MemberCount: 0, Status: group.Status, @@ -662,7 +663,8 @@ func (s *groupServer) GetGroupById(_ context.Context, req *pbGroup.GetGroupByIdR } groupMember, err := imdb.GetGroupMaster(group.GroupID) if err != nil { - return resp, err + log.NewError(req.OperationID, utils.GetSelfFuncName(), "GetGroupMaster", err.Error()) + return resp, http.WrapError(constant.ErrDB) } resp.CMSGroup.GroupMasterName = groupMember.Nickname resp.CMSGroup.GroupMasterId = groupMember.UserID @@ -671,19 +673,19 @@ func (s *groupServer) GetGroupById(_ context.Context, req *pbGroup.GetGroupByIdR } func (s *groupServer) GetGroup(_ context.Context, req *pbGroup.GetGroupReq) (*pbGroup.GetGroupResp, error) { - log.NewInfo(req.OperationID, "GetGroup ", req.String()) + log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "req: ", req.String()) resp := &pbGroup.GetGroupResp{ CMSGroups: []*pbGroup.CMSGroup{}, } groups, err := imdb.GetGroupsByName(req.GroupName, req.Pagination.PageNumber, req.Pagination.ShowNumber) if err != nil { - return resp, err + log.NewError(req.OperationID, utils.GetSelfFuncName(), "GetGroupsByName error", req.String()) + return resp, http.WrapError(constant.ErrDB) } - log.NewInfo(req.OperationID, groups) nums, err := imdb.GetGroupsCountNum(db.Group{GroupName:req.GroupName}) if err != nil { - log.NewError(req.OperationID, utils.GetSelfFuncName(), "GetGroupsCountNum", err.Error()) - return resp, err + log.NewError(req.OperationID, utils.GetSelfFuncName(), "GetGroupsCountNum error", err.Error()) + return resp, http.WrapError(constant.ErrDB) } resp.GroupNums = nums resp.Pagination = &open_im_sdk.RequestPagination{ @@ -693,14 +695,14 @@ func (s *groupServer) GetGroup(_ context.Context, req *pbGroup.GetGroupReq) (*pb for _, v := range groups { groupMember, err := imdb.GetGroupMaster(v.GroupID) if err != nil { - log.NewError(req.OperationID, utils.GetSelfFuncName(), err.Error()) + log.NewError(req.OperationID, utils.GetSelfFuncName(), "GetGroupMaster error", err.Error()) continue } resp.CMSGroups = append(resp.CMSGroups, &pbGroup.CMSGroup{ GroupInfo: &open_im_sdk.GroupInfo{ GroupID: v.GroupID, GroupName: v.GroupName, - FaceURL: v.FaceUrl, + FaceURL: v.FaceURL, OwnerUserID: v.CreatorUserID, Status: v.Status, CreatorUserID: v.CreatorUserID, @@ -720,12 +722,14 @@ func (s *groupServer) GetGroups(_ context.Context, req *pbGroup.GetGroupsReq) (* } groups, err := imdb.GetGroups(int(req.Pagination.PageNumber), int(req.Pagination.ShowNumber)) if err != nil { - return resp, err + log.NewError(req.OperationID, utils.GetSelfFuncName(), "GetGroups error", err.Error()) + return resp, http.WrapError(constant.ErrDB) } groupsCountNum, err := imdb.GetGroupsCountNum(db.Group{}) log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "groupsCountNum ", groupsCountNum) if err != nil { - return resp, err + log.NewError(req.OperationID, utils.GetSelfFuncName(), "GetGroupsCountNum", err.Error()) + return resp, http.WrapError(constant.ErrDB) } resp.GroupNum = int32(groupsCountNum) resp.Pagination.PageNumber = req.Pagination.PageNumber @@ -740,7 +744,7 @@ func (s *groupServer) GetGroups(_ context.Context, req *pbGroup.GetGroupsReq) (* GroupInfo: &open_im_sdk.GroupInfo{ GroupID: v.GroupID, GroupName: v.GroupName, - FaceURL: v.FaceUrl, + FaceURL: v.FaceURL, OwnerUserID: v.CreatorUserID, Status: v.Status, CreatorUserID: v.CreatorUserID, @@ -757,8 +761,8 @@ func (s *groupServer) OperateGroupStatus(_ context.Context, req *pbGroup.Operate log.NewInfo(req.OperationID, utils.GetSelfFuncName(), req.String()) resp := &pbGroup.OperateGroupStatusResp{} if err := imdb.OperateGroupStatus(req.GroupId, req.Status); err != nil { - log.NewError(req.OperationID, utils.GetSelfFuncName(), err.Error()) - return resp, err + log.NewError(req.OperationID, utils.GetSelfFuncName(), "OperateGroupStatus", err.Error()) + return resp, http.WrapError(constant.ErrDB) } return resp, nil } @@ -767,8 +771,8 @@ func (s *groupServer) DeleteGroup(_ context.Context, req *pbGroup.DeleteGroupReq log.NewInfo(req.OperationID, utils.GetSelfFuncName(), req.String()) resp := &pbGroup.DeleteGroupResp{} if err := imdb.DeleteGroup(req.GroupId); err != nil { - log.NewError(req.OperationID, utils.GetSelfFuncName(), err.Error()) - return resp, err + log.NewError(req.OperationID, utils.GetSelfFuncName(), "DeleteGroup error", err.Error()) + return resp, http.WrapError(constant.ErrDB) } return resp, nil } @@ -777,8 +781,8 @@ func (s *groupServer) OperateUserRole(_ context.Context, req *pbGroup.OperateUse log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "args:", req.String()) resp := &pbGroup.OperateUserRoleResp{} if err := imdb.OperateGroupRole(req.UserId, req.GroupId, req.RoleLevel); err != nil { - log.NewError(req.OperationID, utils.GetSelfFuncName(), err.Error()) - return resp, err + log.NewError(req.OperationID, utils.GetSelfFuncName(), "OperateGroupRole error", err.Error()) + return resp, http.WrapError(constant.ErrDB) } return resp, nil } @@ -789,12 +793,12 @@ func (s *groupServer) GetGroupMembersCMS(_ context.Context, req *pbGroup.GetGrou groupMembers, err := imdb.GetGroupMembersByGroupIdCMS(req.GroupId, req.UserName, req.Pagination.ShowNumber, req.Pagination.PageNumber) if err != nil { log.NewError(req.OperationID, utils.GetSelfFuncName(),"GetGroupMembersByGroupIdCMS Error", err.Error()) - return resp, err + return resp, http.WrapError(constant.ErrDB) } groupMembersCount, err := imdb.GetGroupMembersCount(req.GroupId, req.UserName) if err != nil { log.NewError(req.OperationID, utils.GetSelfFuncName(), "GetGroupMembersCMS Error", err.Error()) - return resp, err + return resp, http.WrapError(constant.ErrDB) } log.NewInfo(req.OperationID, groupMembersCount) resp.MemberNums = groupMembersCount @@ -805,7 +809,7 @@ func (s *groupServer) GetGroupMembersCMS(_ context.Context, req *pbGroup.GetGrou RoleLevel: groupMember.RoleLevel, JoinTime: groupMember.JoinTime.Unix(), Nickname: groupMember.Nickname, - FaceURL: groupMember.FaceUrl, + FaceURL: groupMember.FaceURL, JoinSource: groupMember.JoinSource, }) } @@ -850,7 +854,7 @@ func (s *groupServer) AddGroupMembersCMS(_ context.Context, req *pbGroup.AddGrou GroupID: req.GroupId, UserID: userId, Nickname: user.Nickname, - FaceUrl: "", + FaceURL: "", RoleLevel: 1, JoinTime: time.Time{}, JoinSource: constant.JoinByAdmin, @@ -867,17 +871,6 @@ func (s *groupServer) AddGroupMembersCMS(_ context.Context, req *pbGroup.AddGrou return resp, nil } -func (s *groupServer) SetGroupMaster(_ context.Context, req *pbGroup.SetGroupMasterReq) (*pbGroup.SetGroupMasterResp, error) { - log.NewInfo(req.OperationId, utils.GetSelfFuncName(), req.String()) - resp := &pbGroup.SetGroupMasterResp{} - err := imdb.OperateGroupRole(req.UserId, req.GroupId, constant.GroupOwner) - if err != nil { - log.NewError(req.OperationId, utils.GetSelfFuncName(),"OperateGroupRole failed", err.Error()) - return resp, constant.ErrDB - } - return resp, nil -} - func (s *groupServer) GetUserReqApplicationList(_ context.Context, req *pbGroup.GetUserReqApplicationListReq) (*pbGroup.GetUserReqApplicationListResp, error) { log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "req: ", req.String()) diff --git a/pkg/cms_api_struct/group.go b/pkg/cms_api_struct/group.go index 992cd1f5e..9d161b622 100644 --- a/pkg/cms_api_struct/group.go +++ b/pkg/cms_api_struct/group.go @@ -131,3 +131,16 @@ type RemoveGroupMembersRequest struct { type RemoveGroupMembersResponse struct{ GroupMemberOperateResponse } + +type AlterGroupInfoRequest struct { + GroupID string `json:"group_id"` + GroupName string `json:"group_name"` + Notification string `json:"notification"` + Introduction string `json:"introduction"` + ProfilePhoto string `json:"profile_photo"` + GroupType int `json:"group_type"` +} + +type AlterGroupInfoResponse struct { + +} diff --git a/pkg/common/db/mysql_model/im_mysql_model/group_model.go b/pkg/common/db/mysql_model/im_mysql_model/group_model.go index 4fe159e3c..a1e8318fd 100644 --- a/pkg/common/db/mysql_model/im_mysql_model/group_model.go +++ b/pkg/common/db/mysql_model/im_mysql_model/group_model.go @@ -4,6 +4,7 @@ import ( "Open_IM/pkg/common/constant" "Open_IM/pkg/common/db" "Open_IM/pkg/utils" + "errors" "fmt" "time" ) @@ -126,10 +127,14 @@ func OperateGroupRole(userId, groupId string, roleLevel int32) error { RoleLevel: roleLevel, } updateInfo := db.GroupMember{ - RoleLevel: constant.GroupOwner, + RoleLevel: roleLevel, } - if err := dbConn.Find(&groupMember).Update(updateInfo).Error; err != nil { - return err + result := dbConn.Table("group_members").Find(&groupMember).Update(updateInfo) + if result.Error != nil { + return result.Error + } + if result.RowsAffected == 0 { + return errors.New(fmt.Sprintf("user %s not exist in group %s or already operate", userId, groupId)) } return nil } diff --git a/pkg/proto/auto_proto.sh b/pkg/proto/auto_proto.sh index d0e037d8b..25408d46e 100644 --- a/pkg/proto/auto_proto.sh +++ b/pkg/proto/auto_proto.sh @@ -7,7 +7,7 @@ for ((i = 0; i < ${#all_proto[*]}; i++)); do protoc -I ../../../ -I ./ --go_out=plugins=grpc:. $proto s=`echo $proto | sed 's/ //g'` v=${s//proto/pb.go} - # protoc-go-inject-tag -input=./$v + protoc-go-inject-tag -input=./$v echo "protoc --go_out=plugins=grpc:." $proto done echo "proto file generate success..." diff --git a/pkg/proto/group/group.pb.go b/pkg/proto/group/group.pb.go index d73d0b72d..54a10cdf4 100644 --- a/pkg/proto/group/group.pb.go +++ b/pkg/proto/group/group.pb.go @@ -3257,107 +3257,6 @@ func (x *AddGroupMembersCMSResp) GetFailed() []string { return nil } -type SetGroupMasterReq struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - GroupId string `protobuf:"bytes,1,opt,name=GroupId,proto3" json:"GroupId,omitempty"` - UserId string `protobuf:"bytes,2,opt,name=UserId,proto3" json:"UserId,omitempty"` - OperationId string `protobuf:"bytes,3,opt,name=OperationId,proto3" json:"OperationId,omitempty"` -} - -func (x *SetGroupMasterReq) Reset() { - *x = SetGroupMasterReq{} - if protoimpl.UnsafeEnabled { - mi := &file_group_group_proto_msgTypes[53] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *SetGroupMasterReq) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*SetGroupMasterReq) ProtoMessage() {} - -func (x *SetGroupMasterReq) ProtoReflect() protoreflect.Message { - mi := &file_group_group_proto_msgTypes[53] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use SetGroupMasterReq.ProtoReflect.Descriptor instead. -func (*SetGroupMasterReq) Descriptor() ([]byte, []int) { - return file_group_group_proto_rawDescGZIP(), []int{53} -} - -func (x *SetGroupMasterReq) GetGroupId() string { - if x != nil { - return x.GroupId - } - return "" -} - -func (x *SetGroupMasterReq) GetUserId() string { - if x != nil { - return x.UserId - } - return "" -} - -func (x *SetGroupMasterReq) GetOperationId() string { - if x != nil { - return x.OperationId - } - return "" -} - -type SetGroupMasterResp struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields -} - -func (x *SetGroupMasterResp) Reset() { - *x = SetGroupMasterResp{} - if protoimpl.UnsafeEnabled { - mi := &file_group_group_proto_msgTypes[54] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *SetGroupMasterResp) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*SetGroupMasterResp) ProtoMessage() {} - -func (x *SetGroupMasterResp) ProtoReflect() protoreflect.Message { - mi := &file_group_group_proto_msgTypes[54] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use SetGroupMasterResp.ProtoReflect.Descriptor instead. -func (*SetGroupMasterResp) Descriptor() ([]byte, []int) { - return file_group_group_proto_rawDescGZIP(), []int{54} -} - var File_group_group_proto protoreflect.FileDescriptor var file_group_group_proto_rawDesc = []byte{ @@ -3768,131 +3667,123 @@ var file_group_group_proto_rawDesc = []byte{ 0x52, 0x65, 0x73, 0x70, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x66, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, - 0x66, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x22, 0x67, 0x0a, 0x11, 0x53, 0x65, 0x74, 0x47, 0x72, 0x6f, - 0x75, 0x70, 0x4d, 0x61, 0x73, 0x74, 0x65, 0x72, 0x52, 0x65, 0x71, 0x12, 0x18, 0x0a, 0x07, 0x47, - 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x47, 0x72, - 0x6f, 0x75, 0x70, 0x49, 0x64, 0x12, 0x16, 0x0a, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x20, 0x0a, - 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x22, - 0x14, 0x0a, 0x12, 0x53, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x61, 0x73, 0x74, 0x65, - 0x72, 0x52, 0x65, 0x73, 0x70, 0x32, 0xad, 0x0e, 0x0a, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x12, - 0x3c, 0x0a, 0x0b, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x15, - 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x47, 0x72, 0x6f, - 0x75, 0x70, 0x52, 0x65, 0x71, 0x1a, 0x16, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x43, 0x72, - 0x65, 0x61, 0x74, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x12, 0x36, 0x0a, - 0x09, 0x6a, 0x6f, 0x69, 0x6e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x13, 0x2e, 0x67, 0x72, 0x6f, - 0x75, 0x70, 0x2e, 0x4a, 0x6f, 0x69, 0x6e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x1a, - 0x14, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x4a, 0x6f, 0x69, 0x6e, 0x47, 0x72, 0x6f, 0x75, - 0x70, 0x52, 0x65, 0x73, 0x70, 0x12, 0x36, 0x0a, 0x09, 0x71, 0x75, 0x69, 0x74, 0x47, 0x72, 0x6f, - 0x75, 0x70, 0x12, 0x13, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x51, 0x75, 0x69, 0x74, 0x47, - 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x1a, 0x14, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, - 0x51, 0x75, 0x69, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x12, 0x42, 0x0a, - 0x0d, 0x67, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x17, + 0x66, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x32, 0xad, 0x0e, 0x0a, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, + 0x12, 0x3c, 0x0a, 0x0b, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, + 0x15, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x47, 0x72, + 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x1a, 0x16, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x43, + 0x72, 0x65, 0x61, 0x74, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x12, 0x36, + 0x0a, 0x09, 0x6a, 0x6f, 0x69, 0x6e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x13, 0x2e, 0x67, 0x72, + 0x6f, 0x75, 0x70, 0x2e, 0x4a, 0x6f, 0x69, 0x6e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, + 0x1a, 0x14, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x4a, 0x6f, 0x69, 0x6e, 0x47, 0x72, 0x6f, + 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x12, 0x36, 0x0a, 0x09, 0x71, 0x75, 0x69, 0x74, 0x47, 0x72, + 0x6f, 0x75, 0x70, 0x12, 0x13, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x51, 0x75, 0x69, 0x74, + 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x1a, 0x14, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, + 0x2e, 0x51, 0x75, 0x69, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x12, 0x42, + 0x0a, 0x0d, 0x67, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x12, + 0x17, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, + 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x1a, 0x18, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, + 0x2e, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, + 0x73, 0x70, 0x12, 0x3f, 0x0a, 0x0c, 0x73, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, + 0x66, 0x6f, 0x12, 0x16, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x53, 0x65, 0x74, 0x47, 0x72, + 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x1a, 0x17, 0x2e, 0x67, 0x72, 0x6f, + 0x75, 0x70, 0x2e, 0x53, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x52, + 0x65, 0x73, 0x70, 0x12, 0x60, 0x0a, 0x17, 0x67, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, + 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x21, + 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, + 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, + 0x71, 0x1a, 0x22, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, + 0x75, 0x70, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x69, 0x73, + 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x66, 0x0a, 0x19, 0x67, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, + 0x52, 0x65, 0x71, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x69, + 0x73, 0x74, 0x12, 0x23, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, + 0x65, 0x72, 0x52, 0x65, 0x71, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x24, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, + 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x51, 0x0a, + 0x12, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4f, 0x77, + 0x6e, 0x65, 0x72, 0x12, 0x1c, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x54, 0x72, 0x61, 0x6e, + 0x73, 0x66, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x52, 0x65, + 0x71, 0x1a, 0x1d, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, + 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, + 0x12, 0x63, 0x0a, 0x18, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x22, 0x2e, 0x67, + 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x65, 0x71, + 0x1a, 0x23, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x70, + 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x51, 0x0a, 0x12, 0x67, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, + 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x1c, 0x2e, 0x67, 0x72, + 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, + 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x1d, 0x2e, 0x67, 0x72, 0x6f, 0x75, + 0x70, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, + 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x54, 0x0a, 0x13, 0x67, 0x65, 0x74, 0x47, + 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x12, + 0x1d, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, + 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x1a, 0x1e, + 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, + 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x12, 0x48, + 0x0a, 0x0f, 0x6b, 0x69, 0x63, 0x6b, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, + 0x72, 0x12, 0x19, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x4b, 0x69, 0x63, 0x6b, 0x47, 0x72, + 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x65, 0x71, 0x1a, 0x1a, 0x2e, 0x67, + 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x4b, 0x69, 0x63, 0x6b, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, + 0x6d, 0x62, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x12, 0x51, 0x0a, 0x12, 0x67, 0x65, 0x74, 0x4a, + 0x6f, 0x69, 0x6e, 0x65, 0x64, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x1c, + 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x65, 0x74, 0x4a, 0x6f, 0x69, 0x6e, 0x65, 0x64, + 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x1d, 0x2e, 0x67, + 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x65, 0x74, 0x4a, 0x6f, 0x69, 0x6e, 0x65, 0x64, 0x47, 0x72, + 0x6f, 0x75, 0x70, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x4e, 0x0a, 0x11, 0x69, + 0x6e, 0x76, 0x69, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x54, 0x6f, 0x47, 0x72, 0x6f, 0x75, 0x70, + 0x12, 0x1b, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x55, + 0x73, 0x65, 0x72, 0x54, 0x6f, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, + 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, + 0x54, 0x6f, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x12, 0x4e, 0x0a, 0x11, 0x67, + 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x6c, 0x6c, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, + 0x12, 0x1b, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, + 0x70, 0x41, 0x6c, 0x6c, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, + 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x6c, + 0x6c, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x12, 0x3f, 0x0a, 0x0c, 0x47, + 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x42, 0x79, 0x49, 0x64, 0x12, 0x16, 0x2e, 0x67, 0x72, + 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x42, 0x79, 0x49, 0x64, + 0x52, 0x65, 0x71, 0x1a, 0x17, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x65, 0x74, 0x47, + 0x72, 0x6f, 0x75, 0x70, 0x42, 0x79, 0x49, 0x64, 0x52, 0x65, 0x73, 0x70, 0x12, 0x33, 0x0a, 0x08, + 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x12, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, + 0x2e, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x1a, 0x13, 0x2e, 0x67, + 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, + 0x70, 0x12, 0x36, 0x0a, 0x09, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x12, 0x13, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, - 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x1a, 0x18, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, - 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, - 0x70, 0x12, 0x3f, 0x0a, 0x0c, 0x73, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x66, - 0x6f, 0x12, 0x16, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x53, 0x65, 0x74, 0x47, 0x72, 0x6f, - 0x75, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x1a, 0x17, 0x2e, 0x67, 0x72, 0x6f, 0x75, - 0x70, 0x2e, 0x53, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, - 0x73, 0x70, 0x12, 0x60, 0x0a, 0x17, 0x67, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x70, - 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x21, 0x2e, - 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x70, - 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, - 0x1a, 0x22, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, - 0x70, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x69, 0x73, 0x74, - 0x52, 0x65, 0x73, 0x70, 0x12, 0x66, 0x0a, 0x19, 0x67, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x52, - 0x65, 0x71, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x69, 0x73, - 0x74, 0x12, 0x23, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, - 0x72, 0x52, 0x65, 0x71, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4c, - 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x24, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47, - 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x51, 0x0a, 0x12, - 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4f, 0x77, 0x6e, - 0x65, 0x72, 0x12, 0x1c, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, - 0x66, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x52, 0x65, 0x71, - 0x1a, 0x1d, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, - 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x12, - 0x63, 0x0a, 0x18, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x22, 0x2e, 0x67, 0x72, - 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x65, 0x71, 0x1a, - 0x23, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x70, 0x70, - 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x52, 0x65, 0x73, 0x70, 0x12, 0x51, 0x0a, 0x12, 0x67, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, - 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x1c, 0x2e, 0x67, 0x72, 0x6f, + 0x52, 0x65, 0x71, 0x1a, 0x14, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x65, 0x74, 0x47, + 0x72, 0x6f, 0x75, 0x70, 0x73, 0x52, 0x65, 0x73, 0x70, 0x12, 0x51, 0x0a, 0x12, 0x4f, 0x70, 0x65, + 0x72, 0x61, 0x74, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, + 0x1c, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x65, 0x47, + 0x72, 0x6f, 0x75, 0x70, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x1d, 0x2e, + 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x65, 0x47, 0x72, 0x6f, + 0x75, 0x70, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x12, 0x48, 0x0a, 0x0f, + 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x52, 0x6f, 0x6c, 0x65, 0x12, + 0x19, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x65, 0x55, + 0x73, 0x65, 0x72, 0x52, 0x6f, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x1a, 0x2e, 0x67, 0x72, 0x6f, + 0x75, 0x70, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x52, 0x6f, + 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x3c, 0x0a, 0x0b, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, + 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x15, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x44, 0x65, + 0x6c, 0x65, 0x74, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x1a, 0x16, 0x2e, 0x67, + 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, + 0x52, 0x65, 0x73, 0x70, 0x12, 0x51, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, + 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x43, 0x4d, 0x53, 0x12, 0x1c, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, - 0x72, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x1d, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, - 0x2e, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x4c, - 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x54, 0x0a, 0x13, 0x67, 0x65, 0x74, 0x47, 0x72, - 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1d, - 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, - 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x1a, 0x1e, 0x2e, - 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, - 0x6d, 0x62, 0x65, 0x72, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x12, 0x48, 0x0a, - 0x0f, 0x6b, 0x69, 0x63, 0x6b, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, - 0x12, 0x19, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x4b, 0x69, 0x63, 0x6b, 0x47, 0x72, 0x6f, - 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x65, 0x71, 0x1a, 0x1a, 0x2e, 0x67, 0x72, - 0x6f, 0x75, 0x70, 0x2e, 0x4b, 0x69, 0x63, 0x6b, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, - 0x62, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x12, 0x51, 0x0a, 0x12, 0x67, 0x65, 0x74, 0x4a, 0x6f, - 0x69, 0x6e, 0x65, 0x64, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x1c, 0x2e, - 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x65, 0x74, 0x4a, 0x6f, 0x69, 0x6e, 0x65, 0x64, 0x47, - 0x72, 0x6f, 0x75, 0x70, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x1d, 0x2e, 0x67, 0x72, - 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x65, 0x74, 0x4a, 0x6f, 0x69, 0x6e, 0x65, 0x64, 0x47, 0x72, 0x6f, - 0x75, 0x70, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x4e, 0x0a, 0x11, 0x69, 0x6e, - 0x76, 0x69, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x54, 0x6f, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, - 0x1b, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x55, 0x73, - 0x65, 0x72, 0x54, 0x6f, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x67, - 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x54, - 0x6f, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x12, 0x4e, 0x0a, 0x11, 0x67, 0x65, - 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x6c, 0x6c, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x12, - 0x1b, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, - 0x41, 0x6c, 0x6c, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x67, - 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x6c, 0x6c, - 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x12, 0x3f, 0x0a, 0x0c, 0x47, 0x65, - 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x42, 0x79, 0x49, 0x64, 0x12, 0x16, 0x2e, 0x67, 0x72, 0x6f, - 0x75, 0x70, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x42, 0x79, 0x49, 0x64, 0x52, - 0x65, 0x71, 0x1a, 0x17, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x72, - 0x6f, 0x75, 0x70, 0x42, 0x79, 0x49, 0x64, 0x52, 0x65, 0x73, 0x70, 0x12, 0x33, 0x0a, 0x08, 0x47, - 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x12, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, - 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x1a, 0x13, 0x2e, 0x67, 0x72, - 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, - 0x12, 0x36, 0x0a, 0x09, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x12, 0x13, 0x2e, - 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x52, - 0x65, 0x71, 0x1a, 0x14, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x72, - 0x6f, 0x75, 0x70, 0x73, 0x52, 0x65, 0x73, 0x70, 0x12, 0x51, 0x0a, 0x12, 0x4f, 0x70, 0x65, 0x72, - 0x61, 0x74, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1c, - 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x65, 0x47, 0x72, - 0x6f, 0x75, 0x70, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x1d, 0x2e, 0x67, - 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x65, 0x47, 0x72, 0x6f, 0x75, - 0x70, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x12, 0x48, 0x0a, 0x0f, 0x4f, - 0x70, 0x65, 0x72, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x52, 0x6f, 0x6c, 0x65, 0x12, 0x19, - 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x65, 0x55, 0x73, - 0x65, 0x72, 0x52, 0x6f, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x1a, 0x2e, 0x67, 0x72, 0x6f, 0x75, - 0x70, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x52, 0x6f, 0x6c, - 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x3c, 0x0a, 0x0b, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x47, - 0x72, 0x6f, 0x75, 0x70, 0x12, 0x15, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x44, 0x65, 0x6c, - 0x65, 0x74, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x1a, 0x16, 0x2e, 0x67, 0x72, - 0x6f, 0x75, 0x70, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, - 0x65, 0x73, 0x70, 0x12, 0x51, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, + 0x72, 0x73, 0x43, 0x4d, 0x53, 0x52, 0x65, 0x71, 0x1a, 0x1d, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, + 0x2e, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, + 0x43, 0x4d, 0x53, 0x52, 0x65, 0x73, 0x70, 0x12, 0x5a, 0x0a, 0x15, 0x52, 0x65, 0x6d, 0x6f, 0x76, + 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x43, 0x4d, 0x53, + 0x12, 0x1f, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x47, + 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x43, 0x4d, 0x53, 0x52, 0x65, + 0x71, 0x1a, 0x20, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, + 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x43, 0x4d, 0x53, 0x52, + 0x65, 0x73, 0x70, 0x12, 0x51, 0x0a, 0x12, 0x41, 0x64, 0x64, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x43, 0x4d, 0x53, 0x12, 0x1c, 0x2e, 0x67, 0x72, 0x6f, 0x75, - 0x70, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, + 0x70, 0x2e, 0x41, 0x64, 0x64, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x43, 0x4d, 0x53, 0x52, 0x65, 0x71, 0x1a, 0x1d, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, - 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x43, - 0x4d, 0x53, 0x52, 0x65, 0x73, 0x70, 0x12, 0x5a, 0x0a, 0x15, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, - 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x43, 0x4d, 0x53, 0x12, - 0x1f, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x47, 0x72, - 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x43, 0x4d, 0x53, 0x52, 0x65, 0x71, - 0x1a, 0x20, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x47, - 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x43, 0x4d, 0x53, 0x52, 0x65, - 0x73, 0x70, 0x12, 0x51, 0x0a, 0x12, 0x41, 0x64, 0x64, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, - 0x6d, 0x62, 0x65, 0x72, 0x73, 0x43, 0x4d, 0x53, 0x12, 0x1c, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, - 0x2e, 0x41, 0x64, 0x64, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, - 0x43, 0x4d, 0x53, 0x52, 0x65, 0x71, 0x1a, 0x1d, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x41, - 0x64, 0x64, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x43, 0x4d, - 0x53, 0x52, 0x65, 0x73, 0x70, 0x42, 0x0f, 0x5a, 0x0d, 0x2e, 0x2f, 0x67, 0x72, 0x6f, 0x75, 0x70, - 0x3b, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x41, 0x64, 0x64, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x43, + 0x4d, 0x53, 0x52, 0x65, 0x73, 0x70, 0x42, 0x0f, 0x5a, 0x0d, 0x2e, 0x2f, 0x67, 0x72, 0x6f, 0x75, + 0x70, 0x3b, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( @@ -3907,7 +3798,7 @@ func file_group_group_proto_rawDescGZIP() []byte { return file_group_group_proto_rawDescData } -var file_group_group_proto_msgTypes = make([]protoimpl.MessageInfo, 55) +var file_group_group_proto_msgTypes = make([]protoimpl.MessageInfo, 53) var file_group_group_proto_goTypes = []interface{}{ (*CommonResp)(nil), // 0: group.CommonResp (*GroupAddMemberInfo)(nil), // 1: group.GroupAddMemberInfo @@ -3962,45 +3853,43 @@ var file_group_group_proto_goTypes = []interface{}{ (*RemoveGroupMembersCMSResp)(nil), // 50: group.RemoveGroupMembersCMSResp (*AddGroupMembersCMSReq)(nil), // 51: group.AddGroupMembersCMSReq (*AddGroupMembersCMSResp)(nil), // 52: group.AddGroupMembersCMSResp - (*SetGroupMasterReq)(nil), // 53: group.SetGroupMasterReq - (*SetGroupMasterResp)(nil), // 54: group.SetGroupMasterResp - (*sdk_ws.GroupInfo)(nil), // 55: server_api_params.GroupInfo - (*sdk_ws.GroupRequest)(nil), // 56: server_api_params.GroupRequest - (*sdk_ws.GroupMemberFullInfo)(nil), // 57: server_api_params.GroupMemberFullInfo - (*sdk_ws.RequestPagination)(nil), // 58: server_api_params.RequestPagination - (*sdk_ws.ResponsePagination)(nil), // 59: server_api_params.ResponsePagination + (*sdk_ws.GroupInfo)(nil), // 53: server_api_params.GroupInfo + (*sdk_ws.GroupRequest)(nil), // 54: server_api_params.GroupRequest + (*sdk_ws.GroupMemberFullInfo)(nil), // 55: server_api_params.GroupMemberFullInfo + (*sdk_ws.RequestPagination)(nil), // 56: server_api_params.RequestPagination + (*sdk_ws.ResponsePagination)(nil), // 57: server_api_params.ResponsePagination } var file_group_group_proto_depIdxs = []int32{ 1, // 0: group.CreateGroupReq.InitMemberList:type_name -> group.GroupAddMemberInfo - 55, // 1: group.CreateGroupReq.GroupInfo:type_name -> server_api_params.GroupInfo - 55, // 2: group.CreateGroupResp.GroupInfo:type_name -> server_api_params.GroupInfo - 55, // 3: group.GetGroupsInfoResp.GroupInfoList:type_name -> server_api_params.GroupInfo - 55, // 4: group.SetGroupInfoReq.GroupInfo:type_name -> server_api_params.GroupInfo + 53, // 1: group.CreateGroupReq.GroupInfo:type_name -> server_api_params.GroupInfo + 53, // 2: group.CreateGroupResp.GroupInfo:type_name -> server_api_params.GroupInfo + 53, // 3: group.GetGroupsInfoResp.GroupInfoList:type_name -> server_api_params.GroupInfo + 53, // 4: group.SetGroupInfoReq.GroupInfo:type_name -> server_api_params.GroupInfo 0, // 5: group.SetGroupInfoResp.CommonResp:type_name -> group.CommonResp - 56, // 6: group.GetGroupApplicationListResp.GroupRequestList:type_name -> server_api_params.GroupRequest + 54, // 6: group.GetGroupApplicationListResp.GroupRequestList:type_name -> server_api_params.GroupRequest 0, // 7: group.GetUserReqApplicationListResp.CommonResp:type_name -> group.CommonResp - 56, // 8: group.GetUserReqApplicationListResp.GroupRequestList:type_name -> server_api_params.GroupRequest + 54, // 8: group.GetUserReqApplicationListResp.GroupRequestList:type_name -> server_api_params.GroupRequest 0, // 9: group.TransferGroupOwnerResp.CommonResp:type_name -> group.CommonResp 0, // 10: group.JoinGroupResp.CommonResp:type_name -> group.CommonResp 0, // 11: group.GroupApplicationResponseResp.CommonResp:type_name -> group.CommonResp 0, // 12: group.QuitGroupResp.CommonResp:type_name -> group.CommonResp - 57, // 13: group.GetGroupMemberListResp.memberList:type_name -> server_api_params.GroupMemberFullInfo - 57, // 14: group.GetGroupMembersInfoResp.memberList:type_name -> server_api_params.GroupMemberFullInfo + 55, // 13: group.GetGroupMemberListResp.memberList:type_name -> server_api_params.GroupMemberFullInfo + 55, // 14: group.GetGroupMembersInfoResp.memberList:type_name -> server_api_params.GroupMemberFullInfo 25, // 15: group.KickGroupMemberResp.Id2ResultList:type_name -> group.Id2Result - 55, // 16: group.GetJoinedGroupListResp.GroupList:type_name -> server_api_params.GroupInfo + 53, // 16: group.GetJoinedGroupListResp.GroupList:type_name -> server_api_params.GroupInfo 25, // 17: group.InviteUserToGroupResp.Id2ResultList:type_name -> group.Id2Result - 57, // 18: group.GetGroupAllMemberResp.memberList:type_name -> server_api_params.GroupMemberFullInfo - 55, // 19: group.CMSGroup.GroupInfo:type_name -> server_api_params.GroupInfo - 58, // 20: group.GetGroupReq.Pagination:type_name -> server_api_params.RequestPagination + 55, // 18: group.GetGroupAllMemberResp.memberList:type_name -> server_api_params.GroupMemberFullInfo + 53, // 19: group.CMSGroup.GroupInfo:type_name -> server_api_params.GroupInfo + 56, // 20: group.GetGroupReq.Pagination:type_name -> server_api_params.RequestPagination 33, // 21: group.GetGroupResp.CMSGroups:type_name -> group.CMSGroup - 58, // 22: group.GetGroupResp.Pagination:type_name -> server_api_params.RequestPagination - 58, // 23: group.GetGroupsReq.Pagination:type_name -> server_api_params.RequestPagination + 56, // 22: group.GetGroupResp.Pagination:type_name -> server_api_params.RequestPagination + 56, // 23: group.GetGroupsReq.Pagination:type_name -> server_api_params.RequestPagination 33, // 24: group.GetGroupsResp.CMSGroups:type_name -> group.CMSGroup - 58, // 25: group.GetGroupsResp.Pagination:type_name -> server_api_params.RequestPagination + 56, // 25: group.GetGroupsResp.Pagination:type_name -> server_api_params.RequestPagination 33, // 26: group.GetGroupByIdResp.CMSGroup:type_name -> group.CMSGroup - 58, // 27: group.GetGroupMembersCMSReq.Pagination:type_name -> server_api_params.RequestPagination - 57, // 28: group.GetGroupMembersCMSResp.members:type_name -> server_api_params.GroupMemberFullInfo - 59, // 29: group.GetGroupMembersCMSResp.Pagination:type_name -> server_api_params.ResponsePagination + 56, // 27: group.GetGroupMembersCMSReq.Pagination:type_name -> server_api_params.RequestPagination + 55, // 28: group.GetGroupMembersCMSResp.members:type_name -> server_api_params.GroupMemberFullInfo + 57, // 29: group.GetGroupMembersCMSResp.Pagination:type_name -> server_api_params.ResponsePagination 2, // 30: group.group.createGroup:input_type -> group.CreateGroupReq 14, // 31: group.group.joinGroup:input_type -> group.JoinGroupReq 18, // 32: group.group.quitGroup:input_type -> group.QuitGroupReq @@ -4698,30 +4587,6 @@ func file_group_group_proto_init() { return nil } } - file_group_group_proto_msgTypes[53].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SetGroupMasterReq); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_group_group_proto_msgTypes[54].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*SetGroupMasterResp); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } } type x struct{} out := protoimpl.TypeBuilder{ @@ -4729,7 +4594,7 @@ func file_group_group_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_group_group_proto_rawDesc, NumEnums: 0, - NumMessages: 55, + NumMessages: 53, NumExtensions: 0, NumServices: 1, }, diff --git a/pkg/proto/group/group.proto b/pkg/proto/group/group.proto index fa44b9d01..02513d84e 100644 --- a/pkg/proto/group/group.proto +++ b/pkg/proto/group/group.proto @@ -316,15 +316,6 @@ message AddGroupMembersCMSResp { repeated string failed = 2; } -message SetGroupMasterReq { - string GroupId = 1; - string UserId = 2; - string OperationId = 3; -} - -message SetGroupMasterResp { - -} service group{ rpc createGroup(CreateGroupReq) returns(CreateGroupResp); diff --git a/pkg/proto/proto_dir.cfg b/pkg/proto/proto_dir.cfg index 3c95de992..4a9853fbd 100644 --- a/pkg/proto/proto_dir.cfg +++ b/pkg/proto/proto_dir.cfg @@ -1,15 +1,15 @@ all_proto=( - # message_cms/message_cms.proto - # admin_cms/admin_cms.proto - # statistics/statistics.proto - # auth/auth.proto - # friend/friend.proto + message_cms/message_cms.proto + admin_cms/admin_cms.proto + statistics/statistics.proto + auth/auth.proto + friend/friend.proto group/group.proto - # user/user.proto - # chat/chat.proto - # push/push.proto - # relay/relay.proto + user/user.proto + chat/chat.proto + push/push.proto + relay/relay.proto sdk_ws/ws.proto ) From 6f1a5eb79ca6b772720d6cc12f89b00f31c57c87 Mon Sep 17 00:00:00 2001 From: skiffer-git <44203734@qq.com> Date: Mon, 14 Feb 2022 16:03:55 +0800 Subject: [PATCH 641/814] log --- cmd/Open-IM-SDK-Core | 2 +- pkg/common/db/mysql_model/im_mysql_model/user_model.go | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/cmd/Open-IM-SDK-Core b/cmd/Open-IM-SDK-Core index a85c10dbf..e43ec7d42 160000 --- a/cmd/Open-IM-SDK-Core +++ b/cmd/Open-IM-SDK-Core @@ -1 +1 @@ -Subproject commit a85c10dbffbb797b5b2091e209ff67a5534b9bfc +Subproject commit e43ec7d427a84702eea7a6aaa358a7a0a809019d 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 de5045855..ebd623dd1 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 @@ -44,7 +44,7 @@ func UserRegister(user db.User) error { if user.Birth.Unix() < 0 { user.Birth = utils.UnixSecondToTime(0) } - err = dbConn.Table("users").Create(&user).Error + err = dbConn.Debug().Table("users").Create(&user).Error if err != nil { return err } From 154624a7676297ac112eed5fa05e31b99cf06cba Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Mon, 14 Feb 2022 16:04:35 +0800 Subject: [PATCH 642/814] update --- pkg/common/db/mysql_model/im_mysql_model/user_model.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 5c3b226d5..2dc17d9ad 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 @@ -77,7 +77,7 @@ func GetUserByUserID(userID string) (*db.User, error) { return nil, err } var user db.User - err = dbConn.Table("users").Where("user_id=?", userID).First(&user).Error + err = dbConn.Table("users").Where("user_id=?", userID).Take(&user).Error if err != nil { return nil, err } From a7470dc28457d11674e1fddc60a09ec27c14aed0 Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Mon, 14 Feb 2022 16:13:27 +0800 Subject: [PATCH 643/814] update --- pkg/common/db/mysql_model/im_mysql_model/user_model.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) 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 2dc17d9ad..5c3b226d5 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 @@ -77,7 +77,7 @@ func GetUserByUserID(userID string) (*db.User, error) { return nil, err } var user db.User - err = dbConn.Table("users").Where("user_id=?", userID).Take(&user).Error + err = dbConn.Table("users").Where("user_id=?", userID).First(&user).Error if err != nil { return nil, err } From b9241288c4f87ff135874b07b050c7e2bfa8d444 Mon Sep 17 00:00:00 2001 From: root Date: Mon, 14 Feb 2022 16:23:05 +0800 Subject: [PATCH 644/814] config file --- config/config.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/config/config.yaml b/config/config.yaml index 7279e8fed..d17251ca2 100644 --- a/config/config.yaml +++ b/config/config.yaml @@ -11,7 +11,7 @@ mysql: dbMysqlAddress: [ 43.128.5.63:13306 ] dbMysqlUserName: root dbMysqlPassword: openIM - dbMysqlDatabaseName: openIMtest1 + dbMysqlDatabaseName: openIM dbTableName: eMsg dbMsgTableNum: 1 dbMaxOpenConns: 20 @@ -30,7 +30,7 @@ mongo: dbRetainChatRecords: 7 redis: - dbAddress: 43.128.5.63:16379 + dbAddress: 127.0.0.1:16379 dbMaxIdle: 128 dbMaxActive: 0 dbIdleTimeout: 120 From 5b49b105f6c9e9c56aa0bb200963d0b959d0dec4 Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Mon, 14 Feb 2022 16:29:15 +0800 Subject: [PATCH 645/814] config file --- config/config.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/config/config.yaml b/config/config.yaml index 7279e8fed..d17251ca2 100644 --- a/config/config.yaml +++ b/config/config.yaml @@ -11,7 +11,7 @@ mysql: dbMysqlAddress: [ 43.128.5.63:13306 ] dbMysqlUserName: root dbMysqlPassword: openIM - dbMysqlDatabaseName: openIMtest1 + dbMysqlDatabaseName: openIM dbTableName: eMsg dbMsgTableNum: 1 dbMaxOpenConns: 20 @@ -30,7 +30,7 @@ mongo: dbRetainChatRecords: 7 redis: - dbAddress: 43.128.5.63:16379 + dbAddress: 127.0.0.1:16379 dbMaxIdle: 128 dbMaxActive: 0 dbIdleTimeout: 120 From aa57f25b2c84e7a486a8ff7880627eb6b14628a4 Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Mon, 14 Feb 2022 16:59:26 +0800 Subject: [PATCH 646/814] tes log --- internal/rpc/msg/send_msg.go | 3 +++ 1 file changed, 3 insertions(+) diff --git a/internal/rpc/msg/send_msg.go b/internal/rpc/msg/send_msg.go index 7518997c0..b37da4878 100644 --- a/internal/rpc/msg/send_msg.go +++ b/internal/rpc/msg/send_msg.go @@ -78,9 +78,11 @@ func (rpc *rpcChat) encapsulateMsgData(msg *sdk_ws.MsgData) { utils.SetSwitchFromOptions(msg.Options, constant.IsUnreadCount, false) utils.SetSwitchFromOptions(msg.Options, constant.IsOfflinePush, false) case constant.HasReadReceipt: + log.Info("", "this is a test start", msg, msg.Options) utils.SetSwitchFromOptions(msg.Options, constant.IsConversationUpdate, false) utils.SetSwitchFromOptions(msg.Options, constant.IsUnreadCount, false) utils.SetSwitchFromOptions(msg.Options, constant.IsOfflinePush, false) + log.Info("", "this is a test end", msg, msg.Options) case constant.Typing: utils.SetSwitchFromOptions(msg.Options, constant.IsHistory, false) utils.SetSwitchFromOptions(msg.Options, constant.IsPersistent, false) @@ -97,6 +99,7 @@ func (rpc *rpcChat) SendMsg(_ context.Context, pb *pbChat.SendMsgReq) (*pbChat.S //if !utils.VerifyToken(pb.Token, pb.SendID) { // return returnMsg(&replay, pb, http.StatusUnauthorized, "token validate err,not authorized", "", 0) rpc.encapsulateMsgData(pb.MsgData) + log.Info("", "this is a test MsgData ", pb.MsgData) msgToMQ := pbChat.MsgDataToMQ{Token: pb.Token, OperationID: pb.OperationID} //options := utils.JsonStringToMap(pbData.Options) isHistory := utils.GetSwitchFromOptions(pb.MsgData.Options, constant.IsHistory) From 1ca8d2b2db7680eb7b90405b53027474fe2aaab0 Mon Sep 17 00:00:00 2001 From: skiffer-git <44203734@qq.com> Date: Mon, 14 Feb 2022 16:59:52 +0800 Subject: [PATCH 647/814] log --- internal/rpc/friend/firend.go | 3 ++- pkg/common/db/mysql_model/im_mysql_model/user_model.go | 2 +- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/internal/rpc/friend/firend.go b/internal/rpc/friend/firend.go index 72eefe386..2d5fb40e8 100644 --- a/internal/rpc/friend/firend.go +++ b/internal/rpc/friend/firend.go @@ -106,7 +106,8 @@ func (s *friendServer) AddFriend(ctx context.Context, req *pbFriend.AddFriendReq // {openIM001 openIM002 0 test add friend 0001-01-01 00:00:00 +0000 UTC 0001-01-01 00:00:00 +0000 UTC }] log.NewDebug(req.CommID.OperationID, "UpdateFriendApplication args ", friendRequest) //err := imdb.InsertFriendApplication(&friendRequest) - err := imdb.InsertFriendApplication(&friendRequest, map[string]interface{}{"handle_result": 0}) + err := imdb.InsertFriendApplication(&friendRequest, + map[string]interface{}{"handle_result": 0, "req_msg": friendRequest.ReqMsg, "create_time": friendRequest.CreateTime}) if err != nil { log.NewError(req.CommID.OperationID, "UpdateFriendApplication failed ", err.Error(), friendRequest) return &pbFriend.AddFriendResp{CommonResp: &pbFriend.CommonResp{ErrCode: constant.ErrDB.ErrCode, ErrMsg: constant.ErrDB.ErrMsg}}, nil 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 ebd623dd1..de5045855 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 @@ -44,7 +44,7 @@ func UserRegister(user db.User) error { if user.Birth.Unix() < 0 { user.Birth = utils.UnixSecondToTime(0) } - err = dbConn.Debug().Table("users").Create(&user).Error + err = dbConn.Table("users").Create(&user).Error if err != nil { return err } From 6d5b38fc8a142e8287c1329a74022cac1ddad156 Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Tue, 15 Feb 2022 13:16:31 +0800 Subject: [PATCH 648/814] send message --- .../msg_transfer/logic/history_msg_handler.go | 28 ++++++------------- 1 file changed, 8 insertions(+), 20 deletions(-) diff --git a/internal/msg_transfer/logic/history_msg_handler.go b/internal/msg_transfer/logic/history_msg_handler.go index 3afd82f78..e4b4360c6 100644 --- a/internal/msg_transfer/logic/history_msg_handler.go +++ b/internal/msg_transfer/logic/history_msg_handler.go @@ -45,32 +45,20 @@ func (mc *HistoryConsumerHandler) handleChatWs2Mongo(msg []byte, msgKey string) isHistory := utils.GetSwitchFromOptions(msgFromMQ.MsgData.Options, constant.IsHistory) //Control whether to store history messages (mysql) isPersist := utils.GetSwitchFromOptions(msgFromMQ.MsgData.Options, constant.IsPersistent) - isSenderSync := utils.GetSwitchFromOptions(msgFromMQ.MsgData.Options, constant.IsSenderSync) + //isSenderSync := utils.GetSwitchFromOptions(msgFromMQ.MsgData.Options, constant.IsSenderSync) switch msgFromMQ.MsgData.SessionType { case constant.SingleChatType: log.NewDebug(msgFromMQ.OperationID, "msg_transfer msg type = SingleChatType", isHistory, isPersist) if isHistory { - if msgKey == msgFromMQ.MsgData.RecvID { - err := saveUserChat(msgFromMQ.MsgData.RecvID, &msgFromMQ) - if err != nil { - log.NewError(operationID, "single data insert to mongo err", err.Error(), msgFromMQ.String()) - return - } - go sendMessageToPush(&msgFromMQ, msgFromMQ.MsgData.RecvID) - log.NewDebug(msgFromMQ.OperationID, "sendMessageToPush cost time ", utils.GetCurrentTimestampByNano()-time) - - } else if msgKey == msgFromMQ.MsgData.SendID { - err := saveUserChat(msgFromMQ.MsgData.SendID, &msgFromMQ) - if err != nil { - log.NewError(operationID, "single data insert to mongo err", err.Error(), msgFromMQ.String()) - return - } - if isSenderSync { - go sendMessageToPush(&msgFromMQ, msgFromMQ.MsgData.SendID) - } + err := saveUserChat(msgKey, &msgFromMQ) + if err != nil { + log.NewError(operationID, "single data insert to mongo err", err.Error(), msgFromMQ.String()) + return } - log.NewDebug(operationID, "saveUserChat cost time ", utils.GetCurrentTimestampByNano()-time) + log.NewDebug(msgFromMQ.OperationID, "sendMessageToPush cost time ", utils.GetCurrentTimestampByNano()-time) } + go sendMessageToPush(&msgFromMQ, msgKey) + log.NewDebug(operationID, "saveUserChat cost time ", utils.GetCurrentTimestampByNano()-time) case constant.GroupChatType: log.NewDebug(msgFromMQ.OperationID, "msg_transfer msg type = GroupChatType", isHistory, isPersist) if isHistory { From 648a852ba7312203a6a67377d8473d0b775cb4cb Mon Sep 17 00:00:00 2001 From: wangchuxiao Date: Tue, 15 Feb 2022 14:11:20 +0800 Subject: [PATCH 649/814] conversation opt --- cmd/rpc/open_im_msg/main.go | 2 +- cmd/rpc/open_im_user/main.go | 2 +- config/config.yaml | 21 ++- internal/api/group/group.go | 2 +- internal/cms_api/user/user.go | 3 +- internal/rpc/msg/conversation_notification.go | 54 ++++++++ internal/rpc/msg/send_msg.go | 9 +- internal/rpc/user/user.go | 1 + pkg/common/config/config.go | 5 + pkg/common/constant/constant.go | 2 + pkg/proto/sdk_ws/ws.pb.go | 120 ++++++++++++++---- pkg/proto/sdk_ws/ws.proto | 8 ++ 12 files changed, 190 insertions(+), 39 deletions(-) create mode 100644 internal/rpc/msg/conversation_notification.go diff --git a/cmd/rpc/open_im_msg/main.go b/cmd/rpc/open_im_msg/main.go index 7344facf4..b79d53f1a 100644 --- a/cmd/rpc/open_im_msg/main.go +++ b/cmd/rpc/open_im_msg/main.go @@ -6,7 +6,7 @@ import ( ) func main() { - rpcPort := flag.Int("port", 10300, "rpc listening port") + rpcPort := flag.Int("port", 10301, "rpc listening port") flag.Parse() rpcServer := rpcChat.NewRpcChatServer(*rpcPort) rpcServer.Run() diff --git a/cmd/rpc/open_im_user/main.go b/cmd/rpc/open_im_user/main.go index 91b6e55b5..4382dc9fe 100644 --- a/cmd/rpc/open_im_user/main.go +++ b/cmd/rpc/open_im_user/main.go @@ -6,7 +6,7 @@ import ( ) func main() { - rpcPort := flag.Int("port", 10100, "rpc listening port") + rpcPort := flag.Int("port", 10101, "rpc listening port") flag.Parse() rpcServer := user.NewUserServer(*rpcPort) rpcServer.Run() diff --git a/config/config.yaml b/config/config.yaml index 7279e8fed..eea6bcbb7 100644 --- a/config/config.yaml +++ b/config/config.yaml @@ -8,10 +8,10 @@ etcd: etcdAddr: [ 127.0.0.1:2379 ] mysql: - dbMysqlAddress: [ 43.128.5.63:13306 ] + dbMysqlAddress: [ 127.0.0.1:13306 ] dbMysqlUserName: root dbMysqlPassword: openIM - dbMysqlDatabaseName: openIMtest1 + dbMysqlDatabaseName: openIM dbTableName: eMsg dbMsgTableNum: 1 dbMaxOpenConns: 20 @@ -19,7 +19,7 @@ mysql: dbMaxLifeTime: 120 mongo: - dbAddress: [ 43.128.5.63:37017 ] + dbAddress: [ 127.0.0.1:37017 ] dbDirect: false dbTimeout: 10 dbDatabase: openIM @@ -30,7 +30,7 @@ mongo: dbRetainChatRecords: 7 redis: - dbAddress: 43.128.5.63:16379 + dbAddress: 127.0.0.1:16379 dbMaxIdle: 128 dbMaxActive: 0 dbIdleTimeout: 120 @@ -426,7 +426,18 @@ notification: defaultTips: tips: "Remove a blocked user" - + #####################conversation######################### + conversationOptUpdate: + conversation: + reliabilityLevel: 2 + unreadCount: false + offlinePush: + switch: true + title: "conversation opt update" + desc: "conversation opt update" + ext: "conversation opt update" + defaultTips: + tips: "conversation opt update" diff --git a/internal/api/group/group.go b/internal/api/group/group.go index 6e44efa1c..887a89594 100644 --- a/internal/api/group/group.go +++ b/internal/api/group/group.go @@ -324,7 +324,7 @@ func GetUserReqGroupApplicationList(c *gin.Context) { } req := &rpc.GetUserReqApplicationListReq{} utils.CopyStructFields(req, params) - //ok, req.OpUserID = token_verify.GetUserIDFromToken(c.Request.Header.Get("token")) + //ok, req.OpUserID := token_verify.GetUserIDFromToken(c.Request.Header.Get("token")) //if !ok { // log.NewError(req.OperationID, "GetUserIDFromToken false ", c.Request.Header.Get("token")) // c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": "GetUserIDFromToken failed"}) diff --git a/internal/cms_api/user/user.go b/internal/cms_api/user/user.go index c87aa4d7f..a0e5dc188 100644 --- a/internal/cms_api/user/user.go +++ b/internal/cms_api/user/user.go @@ -155,7 +155,7 @@ func AddUser(c *gin.Context) { reqPb pb.AddUserReq ) if err := c.BindJSON(&req); err != nil { - log.NewError("0", "BindJSON failed ", err.Error()) + log.NewError(reqPb.OperationID, utils.GetSelfFuncName(), "BindJSON failed ", err.Error()) openIMHttp.RespHttp200(c, constant.ErrArgs, nil) return } @@ -183,7 +183,6 @@ func BlockUser(c *gin.Context) { return } utils.CopyStructFields(&reqPb, &req) - fmt.Println(reqPb, req) etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImUserName) client := pb.NewUserClient(etcdConn) fmt.Println(reqPb) diff --git a/internal/rpc/msg/conversation_notification.go b/internal/rpc/msg/conversation_notification.go new file mode 100644 index 000000000..cd9a7a6be --- /dev/null +++ b/internal/rpc/msg/conversation_notification.go @@ -0,0 +1,54 @@ +package msg + +import ( + "Open_IM/pkg/common/config" + "Open_IM/pkg/common/constant" + "Open_IM/pkg/common/log" + open_im_sdk "Open_IM/pkg/proto/sdk_ws" + "Open_IM/pkg/utils" + "github.com/golang/protobuf/jsonpb" + "github.com/golang/protobuf/proto" +) + +func conversationNotification(contentType int32, m proto.Message, operationID, userID string) { + var err error + var tips open_im_sdk.TipsComm + tips.Detail, err = proto.Marshal(m) + if err != nil { + log.Error(operationID, utils.GetSelfFuncName(), "Marshal failed ", err.Error(), m.String()) + return + } + marshaler := jsonpb.Marshaler{ + OrigName: true, + EnumsAsInts: false, + EmitDefaults: false, + } + tips.JsonDetail, _ = marshaler.MarshalToString(m) + cn := config.Config.Notification + switch contentType { + case constant.ConversationOptChangeNotification: + tips.DefaultTips = cn.ConversationOptUpdate.DefaultTips.Tips + } + var n NotificationMsg + n.SendID = userID + n.RecvID = userID + n.ContentType = contentType + n.SessionType = constant.SingleChatType + n.MsgFrom = constant.SysMsgType + n.OperationID = operationID + n.Content, err = proto.Marshal(&tips) + if err != nil { + log.Error(operationID, utils.GetSelfFuncName(), "Marshal failed ", err.Error(), tips.String()) + return + } + Notification(&n) +} + +// 客户端调用设置opt接口后调用 +func SetReceiveMessageOptNotification(operationID, opUserID, userID string) { + log.NewInfo(operationID, utils.GetSelfFuncName(), "operation user: ", opUserID, "operation id: ", userID) + conversationUpdateTips := open_im_sdk.ConversationUpdateTips{ + UserID: userID, + } + conversationNotification(constant.ConversationOptChangeNotification, &conversationUpdateTips, operationID, userID) +} diff --git a/internal/rpc/msg/send_msg.go b/internal/rpc/msg/send_msg.go index 7518997c0..919e00f74 100644 --- a/internal/rpc/msg/send_msg.go +++ b/internal/rpc/msg/send_msg.go @@ -136,6 +136,7 @@ func (rpc *rpcChat) SendMsg(_ context.Context, pb *pbChat.SendMsgReq) (*pbChat.S isSend := modifyMessageByUserMessageReceiveOpt(pb.MsgData.RecvID, pb.MsgData.SendID, constant.SingleChatType, pb) if isSend { msgToMQ.MsgData = pb.MsgData + log.NewInfo(msgToMQ.OperationID, msgToMQ) err1 := rpc.sendMsgToKafka(&msgToMQ, msgToMQ.MsgData.RecvID) if err1 != nil { log.NewError(msgToMQ.OperationID, "kafka send msg err:RecvID", msgToMQ.MsgData.RecvID, msgToMQ.String()) @@ -434,7 +435,13 @@ func Notification(n *NotificationMsg) { ex = config.Config.Notification.BlackDeleted.OfflinePush.Ext reliabilityLevel = config.Config.Notification.BlackDeleted.Conversation.ReliabilityLevel unReadCount = config.Config.Notification.BlackDeleted.Conversation.UnreadCount - + case constant.ConversationOptChangeNotification: + pushSwitch = config.Config.Notification.ConversationOptUpdate.OfflinePush.PushSwitch + title = config.Config.Notification.ConversationOptUpdate.OfflinePush.Title + desc = config.Config.Notification.ConversationOptUpdate.OfflinePush.Desc + ex = config.Config.Notification.ConversationOptUpdate.OfflinePush.Ext + reliabilityLevel = config.Config.Notification.ConversationOptUpdate.Conversation.ReliabilityLevel + unReadCount = config.Config.Notification.ConversationOptUpdate.Conversation.UnreadCount } switch reliabilityLevel { case constant.UnreliableNotification: diff --git a/internal/rpc/user/user.go b/internal/rpc/user/user.go index 7ac1bbec4..9bbc9ee96 100644 --- a/internal/rpc/user/user.go +++ b/internal/rpc/user/user.go @@ -111,6 +111,7 @@ func (s *userServer) SetReceiveMessageOpt(ctx context.Context, req *pbUser.SetRe for _, v := range req.ConversationIDList { resp.ConversationOptResultList = append(resp.ConversationOptResultList, &pbUser.OptResult{ConversationID: v, Result: req.Opt}) } + chat.SetReceiveMessageOptNotification(req.OperationID, req.OpUserID, req.FromUserID) log.NewInfo(req.OperationID, "SetReceiveMessageOpt rpc return ", resp.String()) return &resp, nil } diff --git a/pkg/common/config/config.go b/pkg/common/config/config.go index 3d5f245d9..7ca4e4afb 100644 --- a/pkg/common/config/config.go +++ b/pkg/common/config/config.go @@ -278,6 +278,11 @@ type config struct { OfflinePush POfflinePush `yaml:"offlinePush"` DefaultTips PDefaultTips `yaml:"defaultTips"` } `yaml:"blackDeleted"` + ConversationOptUpdate struct{ + Conversation PConversation `yaml:"conversation"` + OfflinePush POfflinePush `yaml:"offlinePush"` + DefaultTips PDefaultTips `yaml:"defaultTips"` + } `yaml:"conversationOptUpdate"` } Demo struct { Port []int `yaml:"openImDemoPort"` diff --git a/pkg/common/constant/constant.go b/pkg/common/constant/constant.go index 741f0beea..f3db29b03 100644 --- a/pkg/common/constant/constant.go +++ b/pkg/common/constant/constant.go @@ -57,6 +57,8 @@ const ( UserInfoUpdatedNotification = 1303 //SetSelfInfoTip = 204 + ConversationOptChangeNotification = 1300 // change conversation opt + GroupCreatedNotification = 1501 GroupInfoSetNotification = 1502 JoinGroupApplicationNotification = 1503 diff --git a/pkg/proto/sdk_ws/ws.pb.go b/pkg/proto/sdk_ws/ws.pb.go index 11913a5c9..f5d259dac 100644 --- a/pkg/proto/sdk_ws/ws.pb.go +++ b/pkg/proto/sdk_ws/ws.pb.go @@ -2783,6 +2783,54 @@ func (x *UserInfoUpdatedTips) GetUserID() string { return "" } +//////////////////////conversation///////////////////// +type ConversationUpdateTips struct { + state protoimpl.MessageState + sizeCache protoimpl.SizeCache + unknownFields protoimpl.UnknownFields + + UserID string `protobuf:"bytes,1,opt,name=UserID,proto3" json:"UserID,omitempty"` +} + +func (x *ConversationUpdateTips) Reset() { + *x = ConversationUpdateTips{} + if protoimpl.UnsafeEnabled { + mi := &file_sdk_ws_ws_proto_msgTypes[37] + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + ms.StoreMessageInfo(mi) + } +} + +func (x *ConversationUpdateTips) String() string { + return protoimpl.X.MessageStringOf(x) +} + +func (*ConversationUpdateTips) ProtoMessage() {} + +func (x *ConversationUpdateTips) ProtoReflect() protoreflect.Message { + mi := &file_sdk_ws_ws_proto_msgTypes[37] + if protoimpl.UnsafeEnabled && x != nil { + ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) + if ms.LoadMessageInfo() == nil { + ms.StoreMessageInfo(mi) + } + return ms + } + return mi.MessageOf(x) +} + +// Deprecated: Use ConversationUpdateTips.ProtoReflect.Descriptor instead. +func (*ConversationUpdateTips) Descriptor() ([]byte, []int) { + return file_sdk_ws_ws_proto_rawDescGZIP(), []int{37} +} + +func (x *ConversationUpdateTips) GetUserID() string { + if x != nil { + return x.UserID + } + return "" +} + ///cms type RequestPagination struct { state protoimpl.MessageState @@ -2796,7 +2844,7 @@ type RequestPagination struct { func (x *RequestPagination) Reset() { *x = RequestPagination{} if protoimpl.UnsafeEnabled { - mi := &file_sdk_ws_ws_proto_msgTypes[37] + mi := &file_sdk_ws_ws_proto_msgTypes[38] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2809,7 +2857,7 @@ func (x *RequestPagination) String() string { func (*RequestPagination) ProtoMessage() {} func (x *RequestPagination) ProtoReflect() protoreflect.Message { - mi := &file_sdk_ws_ws_proto_msgTypes[37] + mi := &file_sdk_ws_ws_proto_msgTypes[38] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2822,7 +2870,7 @@ func (x *RequestPagination) ProtoReflect() protoreflect.Message { // Deprecated: Use RequestPagination.ProtoReflect.Descriptor instead. func (*RequestPagination) Descriptor() ([]byte, []int) { - return file_sdk_ws_ws_proto_rawDescGZIP(), []int{37} + return file_sdk_ws_ws_proto_rawDescGZIP(), []int{38} } func (x *RequestPagination) GetPageNumber() int32 { @@ -2851,7 +2899,7 @@ type ResponsePagination struct { func (x *ResponsePagination) Reset() { *x = ResponsePagination{} if protoimpl.UnsafeEnabled { - mi := &file_sdk_ws_ws_proto_msgTypes[38] + mi := &file_sdk_ws_ws_proto_msgTypes[39] ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) ms.StoreMessageInfo(mi) } @@ -2864,7 +2912,7 @@ func (x *ResponsePagination) String() string { func (*ResponsePagination) ProtoMessage() {} func (x *ResponsePagination) ProtoReflect() protoreflect.Message { - mi := &file_sdk_ws_ws_proto_msgTypes[38] + mi := &file_sdk_ws_ws_proto_msgTypes[39] if protoimpl.UnsafeEnabled && x != nil { ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) if ms.LoadMessageInfo() == nil { @@ -2877,7 +2925,7 @@ func (x *ResponsePagination) ProtoReflect() protoreflect.Message { // Deprecated: Use ResponsePagination.ProtoReflect.Descriptor instead. func (*ResponsePagination) Descriptor() ([]byte, []int) { - return file_sdk_ws_ws_proto_rawDescGZIP(), []int{38} + return file_sdk_ws_ws_proto_rawDescGZIP(), []int{39} } func (x *ResponsePagination) GetCurrentPage() int32 { @@ -3341,21 +3389,24 @@ var file_sdk_ws_ws_proto_rawDesc = []byte{ 0x44, 0x52, 0x0c, 0x66, 0x72, 0x6f, 0x6d, 0x54, 0x6f, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x22, 0x2d, 0x0a, 0x13, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x64, 0x54, 0x69, 0x70, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x44, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x44, 0x22, 0x53, - 0x0a, 0x11, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, - 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x70, 0x61, 0x67, 0x65, 0x4e, 0x75, 0x6d, - 0x62, 0x65, 0x72, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x68, 0x6f, 0x77, 0x4e, 0x75, 0x6d, 0x62, 0x65, - 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x73, 0x68, 0x6f, 0x77, 0x4e, 0x75, 0x6d, - 0x62, 0x65, 0x72, 0x22, 0x56, 0x0a, 0x12, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x50, - 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x20, 0x0a, 0x0b, 0x43, 0x75, 0x72, - 0x72, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x67, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, - 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x67, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x53, - 0x68, 0x6f, 0x77, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x0a, 0x53, 0x68, 0x6f, 0x77, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x42, 0x1c, 0x5a, 0x1a, 0x2e, - 0x2f, 0x73, 0x64, 0x6b, 0x5f, 0x77, 0x73, 0x3b, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, - 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x33, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x44, 0x22, 0x30, + 0x0a, 0x16, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x55, 0x70, + 0x64, 0x61, 0x74, 0x65, 0x54, 0x69, 0x70, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x55, 0x73, 0x65, 0x72, + 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, + 0x22, 0x53, 0x0a, 0x11, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x50, 0x61, 0x67, 0x69, 0x6e, + 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x65, 0x4e, 0x75, 0x6d, + 0x62, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x70, 0x61, 0x67, 0x65, 0x4e, + 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x68, 0x6f, 0x77, 0x4e, 0x75, 0x6d, + 0x62, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x73, 0x68, 0x6f, 0x77, 0x4e, + 0x75, 0x6d, 0x62, 0x65, 0x72, 0x22, 0x56, 0x0a, 0x12, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, + 0x65, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x20, 0x0a, 0x0b, 0x43, + 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x67, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, + 0x52, 0x0b, 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x67, 0x65, 0x12, 0x1e, 0x0a, + 0x0a, 0x53, 0x68, 0x6f, 0x77, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, + 0x05, 0x52, 0x0a, 0x53, 0x68, 0x6f, 0x77, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x42, 0x1c, 0x5a, + 0x1a, 0x2e, 0x2f, 0x73, 0x64, 0x6b, 0x5f, 0x77, 0x73, 0x3b, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, + 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x62, 0x06, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x33, } var ( @@ -3370,7 +3421,7 @@ func file_sdk_ws_ws_proto_rawDescGZIP() []byte { return file_sdk_ws_ws_proto_rawDescData } -var file_sdk_ws_ws_proto_msgTypes = make([]protoimpl.MessageInfo, 40) +var file_sdk_ws_ws_proto_msgTypes = make([]protoimpl.MessageInfo, 41) var file_sdk_ws_ws_proto_goTypes = []interface{}{ (*GroupInfo)(nil), // 0: server_api_params.GroupInfo (*GroupMemberFullInfo)(nil), // 1: server_api_params.GroupMemberFullInfo @@ -3409,9 +3460,10 @@ var file_sdk_ws_ws_proto_goTypes = []interface{}{ (*BlackDeletedTips)(nil), // 34: server_api_params.BlackDeletedTips (*FriendInfoChangedTips)(nil), // 35: server_api_params.FriendInfoChangedTips (*UserInfoUpdatedTips)(nil), // 36: server_api_params.UserInfoUpdatedTips - (*RequestPagination)(nil), // 37: server_api_params.RequestPagination - (*ResponsePagination)(nil), // 38: server_api_params.ResponsePagination - nil, // 39: server_api_params.MsgData.OptionsEntry + (*ConversationUpdateTips)(nil), // 37: server_api_params.ConversationUpdateTips + (*RequestPagination)(nil), // 38: server_api_params.RequestPagination + (*ResponsePagination)(nil), // 39: server_api_params.ResponsePagination + nil, // 40: server_api_params.MsgData.OptionsEntry } var file_sdk_ws_ws_proto_depIdxs = []int32{ 3, // 0: server_api_params.FriendInfo.friendUser:type_name -> server_api_params.UserInfo @@ -3419,7 +3471,7 @@ var file_sdk_ws_ws_proto_depIdxs = []int32{ 2, // 2: server_api_params.GroupRequest.userInfo:type_name -> server_api_params.PublicUserInfo 0, // 3: server_api_params.GroupRequest.groupInfo:type_name -> server_api_params.GroupInfo 13, // 4: server_api_params.PullMessageBySeqListResp.list:type_name -> server_api_params.MsgData - 39, // 5: server_api_params.MsgData.options:type_name -> server_api_params.MsgData.OptionsEntry + 40, // 5: server_api_params.MsgData.options:type_name -> server_api_params.MsgData.OptionsEntry 14, // 6: server_api_params.MsgData.offlinePushInfo:type_name -> server_api_params.OfflinePushInfo 0, // 7: server_api_params.GroupCreatedTips.group:type_name -> server_api_params.GroupInfo 1, // 8: server_api_params.GroupCreatedTips.opUser:type_name -> server_api_params.GroupMemberFullInfo @@ -3913,7 +3965,7 @@ func file_sdk_ws_ws_proto_init() { } } file_sdk_ws_ws_proto_msgTypes[37].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*RequestPagination); i { + switch v := v.(*ConversationUpdateTips); i { case 0: return &v.state case 1: @@ -3925,6 +3977,18 @@ func file_sdk_ws_ws_proto_init() { } } file_sdk_ws_ws_proto_msgTypes[38].Exporter = func(v interface{}, i int) interface{} { + switch v := v.(*RequestPagination); i { + case 0: + return &v.state + case 1: + return &v.sizeCache + case 2: + return &v.unknownFields + default: + return nil + } + } + file_sdk_ws_ws_proto_msgTypes[39].Exporter = func(v interface{}, i int) interface{} { switch v := v.(*ResponsePagination); i { case 0: return &v.state @@ -3943,7 +4007,7 @@ func file_sdk_ws_ws_proto_init() { GoPackagePath: reflect.TypeOf(x{}).PkgPath(), RawDescriptor: file_sdk_ws_ws_proto_rawDesc, NumEnums: 0, - NumMessages: 40, + NumMessages: 41, NumExtensions: 0, NumServices: 0, }, diff --git a/pkg/proto/sdk_ws/ws.proto b/pkg/proto/sdk_ws/ws.proto index f86a5ea98..5d200cce6 100644 --- a/pkg/proto/sdk_ws/ws.proto +++ b/pkg/proto/sdk_ws/ws.proto @@ -332,6 +332,14 @@ message UserInfoUpdatedTips{ string userID = 1; } +//////////////////////conversation///////////////////// +message ConversationUpdateTips{ + string UserID = 1; + +} + + + ///cms message RequestPagination { int32 pageNumber = 1; From ea580e4c64427bafe83ea80f93951d0acd5d2b72 Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Tue, 15 Feb 2022 14:31:55 +0800 Subject: [PATCH 650/814] send message --- internal/msg_transfer/logic/history_msg_handler.go | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/internal/msg_transfer/logic/history_msg_handler.go b/internal/msg_transfer/logic/history_msg_handler.go index e4b4360c6..78b3ba79c 100644 --- a/internal/msg_transfer/logic/history_msg_handler.go +++ b/internal/msg_transfer/logic/history_msg_handler.go @@ -45,7 +45,7 @@ func (mc *HistoryConsumerHandler) handleChatWs2Mongo(msg []byte, msgKey string) isHistory := utils.GetSwitchFromOptions(msgFromMQ.MsgData.Options, constant.IsHistory) //Control whether to store history messages (mysql) isPersist := utils.GetSwitchFromOptions(msgFromMQ.MsgData.Options, constant.IsPersistent) - //isSenderSync := utils.GetSwitchFromOptions(msgFromMQ.MsgData.Options, constant.IsSenderSync) + isSenderSync := utils.GetSwitchFromOptions(msgFromMQ.MsgData.Options, constant.IsSenderSync) switch msgFromMQ.MsgData.SessionType { case constant.SingleChatType: log.NewDebug(msgFromMQ.OperationID, "msg_transfer msg type = SingleChatType", isHistory, isPersist) @@ -57,7 +57,10 @@ func (mc *HistoryConsumerHandler) handleChatWs2Mongo(msg []byte, msgKey string) } log.NewDebug(msgFromMQ.OperationID, "sendMessageToPush cost time ", utils.GetCurrentTimestampByNano()-time) } - go sendMessageToPush(&msgFromMQ, msgKey) + if !isSenderSync && msgKey == msgFromMQ.MsgData.SendID { + } else { + go sendMessageToPush(&msgFromMQ, msgKey) + } log.NewDebug(operationID, "saveUserChat cost time ", utils.GetCurrentTimestampByNano()-time) case constant.GroupChatType: log.NewDebug(msgFromMQ.OperationID, "msg_transfer msg type = GroupChatType", isHistory, isPersist) From c405cedc41332e96b57e7f6435fa3342019542f5 Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Tue, 15 Feb 2022 14:34:03 +0800 Subject: [PATCH 651/814] Refactoring code --- internal/rpc/friend/firend.go | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/internal/rpc/friend/firend.go b/internal/rpc/friend/firend.go index 2d5fb40e8..dcea5be2a 100644 --- a/internal/rpc/friend/firend.go +++ b/internal/rpc/friend/firend.go @@ -101,13 +101,15 @@ func (s *friendServer) AddFriend(ctx context.Context, req *pbFriend.AddFriendReq } //Establish a latest relationship in the friend request table - friendRequest := db.FriendRequest{ReqMsg: req.ReqMsg, HandleResult: 0, CreateTime: time.Now()} + friendRequest := db.FriendRequest{ + HandleResult: 0, ReqMsg: req.ReqMsg, CreateTime: time.Now()} utils.CopyStructFields(&friendRequest, req.CommID) // {openIM001 openIM002 0 test add friend 0001-01-01 00:00:00 +0000 UTC 0001-01-01 00:00:00 +0000 UTC }] log.NewDebug(req.CommID.OperationID, "UpdateFriendApplication args ", friendRequest) //err := imdb.InsertFriendApplication(&friendRequest) err := imdb.InsertFriendApplication(&friendRequest, - map[string]interface{}{"handle_result": 0, "req_msg": friendRequest.ReqMsg, "create_time": friendRequest.CreateTime}) + map[string]interface{}{"handle_result": 0, "req_msg": friendRequest.ReqMsg, "create_time": friendRequest.CreateTime, + "handler_user_id": "", "handle_msg": "", "handle_time": utils.UnixSecondToTime(0), "ex": ""}) if err != nil { log.NewError(req.CommID.OperationID, "UpdateFriendApplication failed ", err.Error(), friendRequest) return &pbFriend.AddFriendResp{CommonResp: &pbFriend.CommonResp{ErrCode: constant.ErrDB.ErrCode, ErrMsg: constant.ErrDB.ErrMsg}}, nil From 65be1263b9fe241e11c54708895c91e3f6592357 Mon Sep 17 00:00:00 2001 From: wangchuxiao Date: Tue, 15 Feb 2022 18:28:54 +0800 Subject: [PATCH 652/814] make file --- cmd/open_im_cms_api/Makefile | 25 +++++++++ cmd/rpc/open_im_admin_cms/Makefile | 23 ++++++++ cmd/rpc/open_im_message_cms/Makefile | 23 ++++++++ cmd/rpc/open_im_msg/main.go | 2 +- cmd/rpc/open_im_statistics/Makefile | 23 ++++++++ cmd/rpc/open_im_user/main.go | 2 +- config/config.yaml | 6 +-- internal/rpc/group/group.go | 2 - .../mysql_model/im_mysql_model/group_model.go | 54 ++++++++++++++++--- 9 files changed, 146 insertions(+), 14 deletions(-) create mode 100644 cmd/rpc/open_im_admin_cms/Makefile create mode 100644 cmd/rpc/open_im_message_cms/Makefile create mode 100644 cmd/rpc/open_im_statistics/Makefile diff --git a/cmd/open_im_cms_api/Makefile b/cmd/open_im_cms_api/Makefile index e69de29bb..31304542d 100644 --- a/cmd/open_im_cms_api/Makefile +++ b/cmd/open_im_cms_api/Makefile @@ -0,0 +1,25 @@ +.PHONY: all build run gotool install clean help + +BINARY_NAME=open_im_cms_api +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_admin_cms/Makefile b/cmd/rpc/open_im_admin_cms/Makefile new file mode 100644 index 000000000..f6efc1c08 --- /dev/null +++ b/cmd/rpc/open_im_admin_cms/Makefile @@ -0,0 +1,23 @@ +.PHONY: all build run gotool install clean help + +BINARY_NAME=open_im_admin_cms +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_message_cms/Makefile b/cmd/rpc/open_im_message_cms/Makefile new file mode 100644 index 000000000..4ac4cba3a --- /dev/null +++ b/cmd/rpc/open_im_message_cms/Makefile @@ -0,0 +1,23 @@ +.PHONY: all build run gotool install clean help + +BINARY_NAME=open_im_message_cms +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_msg/main.go b/cmd/rpc/open_im_msg/main.go index b79d53f1a..7344facf4 100644 --- a/cmd/rpc/open_im_msg/main.go +++ b/cmd/rpc/open_im_msg/main.go @@ -6,7 +6,7 @@ import ( ) func main() { - rpcPort := flag.Int("port", 10301, "rpc listening port") + rpcPort := flag.Int("port", 10300, "rpc listening port") flag.Parse() rpcServer := rpcChat.NewRpcChatServer(*rpcPort) rpcServer.Run() diff --git a/cmd/rpc/open_im_statistics/Makefile b/cmd/rpc/open_im_statistics/Makefile new file mode 100644 index 000000000..37dbb3efe --- /dev/null +++ b/cmd/rpc/open_im_statistics/Makefile @@ -0,0 +1,23 @@ +.PHONY: all build run gotool install clean help + +BINARY_NAME=open_im_statistics +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_user/main.go b/cmd/rpc/open_im_user/main.go index 4382dc9fe..91b6e55b5 100644 --- a/cmd/rpc/open_im_user/main.go +++ b/cmd/rpc/open_im_user/main.go @@ -6,7 +6,7 @@ import ( ) func main() { - rpcPort := flag.Int("port", 10101, "rpc listening port") + rpcPort := flag.Int("port", 10100, "rpc listening port") flag.Parse() rpcServer := user.NewUserServer(*rpcPort) rpcServer.Run() diff --git a/config/config.yaml b/config/config.yaml index eea6bcbb7..bdd51bb57 100644 --- a/config/config.yaml +++ b/config/config.yaml @@ -8,7 +8,7 @@ etcd: etcdAddr: [ 127.0.0.1:2379 ] mysql: - dbMysqlAddress: [ 127.0.0.1:13306 ] + dbMysqlAddress: [ 43.128.5.63:13306 ] dbMysqlUserName: root dbMysqlPassword: openIM dbMysqlDatabaseName: openIM @@ -19,7 +19,7 @@ mysql: dbMaxLifeTime: 120 mongo: - dbAddress: [ 127.0.0.1:37017 ] + dbAddress: [ 43.128.5.63:37017 ] dbDirect: false dbTimeout: 10 dbDatabase: openIM @@ -30,7 +30,7 @@ mongo: dbRetainChatRecords: 7 redis: - dbAddress: 127.0.0.1:16379 + dbAddress: 43.128.5.63:16379 dbMaxIdle: 128 dbMaxActive: 0 dbIdleTimeout: 120 diff --git a/internal/rpc/group/group.go b/internal/rpc/group/group.go index 2a0f59f8d..4fc915971 100644 --- a/internal/rpc/group/group.go +++ b/internal/rpc/group/group.go @@ -696,7 +696,6 @@ func (s *groupServer) GetGroup(_ context.Context, req *pbGroup.GetGroupReq) (*pb groupMember, err := imdb.GetGroupMaster(v.GroupID) if err != nil { log.NewError(req.OperationID, utils.GetSelfFuncName(), "GetGroupMaster error", err.Error()) - continue } resp.CMSGroups = append(resp.CMSGroups, &pbGroup.CMSGroup{ GroupInfo: &open_im_sdk.GroupInfo{ @@ -738,7 +737,6 @@ func (s *groupServer) GetGroups(_ context.Context, req *pbGroup.GetGroupsReq) (* groupMember, err := imdb.GetGroupMaster(v.GroupID) if err != nil { log.NewError(req.OperationID, utils.GetSelfFuncName(), err.Error()) - continue } resp.CMSGroups = append(resp.CMSGroups, &pbGroup.CMSGroup{ GroupInfo: &open_im_sdk.GroupInfo{ diff --git a/pkg/common/db/mysql_model/im_mysql_model/group_model.go b/pkg/common/db/mysql_model/im_mysql_model/group_model.go index a1e8318fd..46ec80738 100644 --- a/pkg/common/db/mysql_model/im_mysql_model/group_model.go +++ b/pkg/common/db/mysql_model/im_mysql_model/group_model.go @@ -6,6 +6,7 @@ import ( "Open_IM/pkg/utils" "errors" "fmt" + "github.com/jinzhu/gorm" "time" ) @@ -124,17 +125,56 @@ func OperateGroupRole(userId, groupId string, roleLevel int32) error { groupMember := db.GroupMember{ UserID: userId, GroupID: groupId, - RoleLevel: roleLevel, } updateInfo := db.GroupMember{ RoleLevel: roleLevel, } - result := dbConn.Table("group_members").Find(&groupMember).Update(updateInfo) - if result.Error != nil { - return result.Error - } - if result.RowsAffected == 0 { - return errors.New(fmt.Sprintf("user %s not exist in group %s or already operate", userId, groupId)) + groupMaster := db.GroupMember{ + } + switch roleLevel { + case constant.GroupOwner: + return dbConn.Transaction(func(tx *gorm.DB) error { + result := dbConn.Table("group_members").Where("group_id = ? and role_level = ?", groupId, constant.GroupOwner).First(&groupMaster).Update(&db.GroupMember{ + RoleLevel: constant.GroupOrdinaryUsers, + }) + if result.Error != nil { + return result.Error + } + if result.RowsAffected == 0 { + return errors.New(fmt.Sprintf("user %s not exist in group %s or already operate", userId, groupId)) + } + + result = dbConn.Table("group_members").First(&groupMember).Update(updateInfo) + if result.Error != nil { + return result.Error + } + if result.RowsAffected == 0 { + return errors.New(fmt.Sprintf("user %s not exist in group %s or already operate", userId, groupId)) + } + return nil + }) + case constant.GroupOrdinaryUsers: + return dbConn.Transaction(func(tx *gorm.DB) error { + result := dbConn.Table("group_members").Where("group_id = ? and role_level = ?", groupId, constant.GroupOwner).First(&groupMaster) + if result.Error != nil { + return result.Error + } + if result.RowsAffected == 0 { + return errors.New(fmt.Sprintf("user %s not exist in group %s or already operate", userId, groupId)) + } + if groupMaster.UserID == userId { + return errors.New(fmt.Sprintf("user %s is master of %s, cant set to ordinary user", userId, groupId)) + } else { + result = dbConn.Table("group_members").Find(&groupMember).Update(updateInfo) + if result.Error != nil { + return result.Error + } + if result.RowsAffected == 0 { + return errors.New(fmt.Sprintf("user %s not exist in group %s or already operate", userId, groupId)) + } + } + return nil + }) } return nil } From 2996d8537df333a79e49601df0e7ee1df7f0cb2a Mon Sep 17 00:00:00 2001 From: wangchuxiao Date: Tue, 15 Feb 2022 18:29:38 +0800 Subject: [PATCH 653/814] add makefile --- config/config.yaml | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/config/config.yaml b/config/config.yaml index bdd51bb57..eea6bcbb7 100644 --- a/config/config.yaml +++ b/config/config.yaml @@ -8,7 +8,7 @@ etcd: etcdAddr: [ 127.0.0.1:2379 ] mysql: - dbMysqlAddress: [ 43.128.5.63:13306 ] + dbMysqlAddress: [ 127.0.0.1:13306 ] dbMysqlUserName: root dbMysqlPassword: openIM dbMysqlDatabaseName: openIM @@ -19,7 +19,7 @@ mysql: dbMaxLifeTime: 120 mongo: - dbAddress: [ 43.128.5.63:37017 ] + dbAddress: [ 127.0.0.1:37017 ] dbDirect: false dbTimeout: 10 dbDatabase: openIM @@ -30,7 +30,7 @@ mongo: dbRetainChatRecords: 7 redis: - dbAddress: 43.128.5.63:16379 + dbAddress: 127.0.0.1:16379 dbMaxIdle: 128 dbMaxActive: 0 dbIdleTimeout: 120 From a533a3e0ef751a28e3b3a40665979995820053e4 Mon Sep 17 00:00:00 2001 From: wangchuxiao Date: Tue, 15 Feb 2022 18:43:03 +0800 Subject: [PATCH 654/814] makefile --- script/path_info.cfg | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/script/path_info.cfg b/script/path_info.cfg index ea9fa76e9..7fe9622b6 100644 --- a/script/path_info.cfg +++ b/script/path_info.cfg @@ -39,11 +39,15 @@ config_path="../config/config.yaml" service_source_root=( #api service file ../cmd/open_im_api/ + ../cmd/open_im_cms_api/ #rpc service file ../cmd/rpc/open_im_user/ ../cmd/rpc/open_im_friend/ ../cmd/rpc/open_im_group/ ../cmd/rpc/open_im_auth/ + ../cmd/rpc/open_im_admin_cms/ + ../cmd/rpc/open_im_message_cms/ + ../cmd/rpc/open_im_statistics/ ${msg_gateway_source_root} ${msg_transfer_source_root} ${msg_source_root} @@ -56,11 +60,15 @@ service_source_root=( service_names=( #api service filename open_im_api + open_im_cms_api #rpc service filename open_im_user open_im_friend open_im_group open_im_auth + open_im_admin_cms + open_im_message_cms + open_im_statistics ${msg_gateway_name} ${msg_transfer_name} ${msg_name} From 994cebea82b1ad957792ff3577a82ce274134345 Mon Sep 17 00:00:00 2001 From: wangchuxiao Date: Tue, 15 Feb 2022 18:57:41 +0800 Subject: [PATCH 655/814] makefile --- script/start_rpc_service.sh | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/script/start_rpc_service.sh b/script/start_rpc_service.sh index 9491a4fe8..bc5f41e3d 100644 --- a/script/start_rpc_service.sh +++ b/script/start_rpc_service.sh @@ -8,11 +8,15 @@ source ./function.sh service_filename=( #api open_im_api + open_im_cms_api #rpc open_im_user open_im_friend open_im_group open_im_auth + open_im_admin_cms + open_im_message_cms + open_im_statistics ${msg_name} ) @@ -20,11 +24,15 @@ service_filename=( service_port_name=( #api port name openImApiPort + openImCmsApiPort #rpc port name openImUserPort openImFriendPort openImGroupPort openImAuthPort + openImAdminCmsPort + openImMessageCmsPort + openImStatisticsPort openImOfflineMessagePort ) From 2647e1cdac801e0217d8bde172a97cf961403e5c Mon Sep 17 00:00:00 2001 From: wangchuxiao Date: Wed, 16 Feb 2022 11:06:35 +0800 Subject: [PATCH 656/814] alter yaml cfg --- config/config.yaml | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/config/config.yaml b/config/config.yaml index eea6bcbb7..c92b13536 100644 --- a/config/config.yaml +++ b/config/config.yaml @@ -60,6 +60,7 @@ serverip: 0.0.0.0 # endpoints 内部组件间访问的端点host名称,访问时,可以内部直接访问 host:port 来访问 endpoints: api: openim_api + cmsapi: openim_cms_api push: openim_push msg_gateway: openim_msg_gateway rpc_auth: openim_rpc_auth @@ -67,6 +68,9 @@ endpoints: rpc_group: openim_rpc_group rpc_msg: openim_rpc_msg rpc_user: openim_rpc_user + rpc_statistic: openim_rpc_statistic + rpc_admin_cms: openim_rpc_admin_cms + rpc_message_cms: openim_rpc_admin_cms api: openImApiPort: [ 10000 ] @@ -94,8 +98,8 @@ rpcport: openImPushPort: [ 10700 ] openImOpenImStatisticPort: [ 10800 ] OpenImMessageCMSPort: [ 10900 ] - openImAdminCMSPort: [11000] - c2c: + openImAdminCMSPort: [ 11000 ] + c2c:git callbackBeforeSendMsg: switch: false timeoutStrategy: 1 #1:send @@ -153,7 +157,7 @@ push: pushIntent: "intent:#Intent;component=io.openim.app.enterprisechat/io.openim.app.enterprisechat.MainActivity;end" manager: appManagerUid: [ "openIM123456","openIM654321", "openIM333", "openIMAdmin"] - secrets: [ "openIM1","openIM2", "openIM333" ] + secrets: [ "openIM1","openIM2", "openIM333", "openIMAdmin"] secret: tuoyun From 028171a91a635416a253ea57d48b81cffc4d2781 Mon Sep 17 00:00:00 2001 From: wangchuxiao Date: Wed, 16 Feb 2022 11:13:13 +0800 Subject: [PATCH 657/814] yaml cfg alter --- config/config.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config/config.yaml b/config/config.yaml index c92b13536..ecbbb0894 100644 --- a/config/config.yaml +++ b/config/config.yaml @@ -99,7 +99,7 @@ rpcport: openImOpenImStatisticPort: [ 10800 ] OpenImMessageCMSPort: [ 10900 ] openImAdminCMSPort: [ 11000 ] - c2c:git + c2c: callbackBeforeSendMsg: switch: false timeoutStrategy: 1 #1:send From 36d39669e4df0c9016596d65262cc6741a89f0f5 Mon Sep 17 00:00:00 2001 From: wangchuxiao Date: Wed, 16 Feb 2022 12:23:08 +0800 Subject: [PATCH 658/814] alter deploy --- config/config.yaml | 6 +++--- script/check_all.sh | 4 ++++ 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/config/config.yaml b/config/config.yaml index ecbbb0894..ed3001e8b 100644 --- a/config/config.yaml +++ b/config/config.yaml @@ -96,9 +96,9 @@ rpcport: openImGroupPort: [ 10500 ] openImAuthPort: [ 10600 ] openImPushPort: [ 10700 ] - openImOpenImStatisticPort: [ 10800 ] - OpenImMessageCMSPort: [ 10900 ] - openImAdminCMSPort: [ 11000 ] + openImStatisticsPort: [ 10800 ] + OpenImMessageCmsPort: [ 10900 ] + openImAdminCmsPort: [ 11000 ] c2c: callbackBeforeSendMsg: switch: false diff --git a/script/check_all.sh b/script/check_all.sh index 0c7313743..b94aa893a 100644 --- a/script/check_all.sh +++ b/script/check_all.sh @@ -4,6 +4,7 @@ source ./style_info.cfg source ./path_info.cfg source ./function.sh service_port_name=( + openImCmsApiPort openImApiPort openImUserPort openImFriendPort @@ -15,6 +16,9 @@ service_port_name=( openImWsPort openImSdkWsPort openImDemoPort + openImAdminCmsPort + openImMessageCmsPort + openImStatisticsPort ) switch=$(cat $config_path | grep demoswitch |awk -F '[:]' '{print $NF}') for i in ${service_port_name[*]}; do From a599a334a3c7faa9b6c5942b51b876d2d8b68f81 Mon Sep 17 00:00:00 2001 From: wangchuxiao Date: Wed, 16 Feb 2022 14:11:47 +0800 Subject: [PATCH 659/814] alter cfg --- config/config.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/config/config.yaml b/config/config.yaml index ed3001e8b..f40bfa62a 100644 --- a/config/config.yaml +++ b/config/config.yaml @@ -75,7 +75,7 @@ endpoints: api: openImApiPort: [ 10000 ] cmsapi: - openImCMSPort: [ 8000 ] + openImCmsApiPort: [ 8000 ] sdk: openImSdkWsPort: [ 30000 ] @@ -97,7 +97,7 @@ rpcport: openImAuthPort: [ 10600 ] openImPushPort: [ 10700 ] openImStatisticsPort: [ 10800 ] - OpenImMessageCmsPort: [ 10900 ] + openImMessageCmsPort: [ 10900 ] openImAdminCmsPort: [ 11000 ] c2c: callbackBeforeSendMsg: From 8c357ec213bb46ba995b9c0143d92080f93cea0d Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Wed, 16 Feb 2022 18:30:24 +0800 Subject: [PATCH 660/814] Refactoring code --- internal/api/third/tencent_cloud_storage_credential.go | 1 + 1 file changed, 1 insertion(+) diff --git a/internal/api/third/tencent_cloud_storage_credential.go b/internal/api/third/tencent_cloud_storage_credential.go index 537641dee..02fc5c06e 100644 --- a/internal/api/third/tencent_cloud_storage_credential.go +++ b/internal/api/third/tencent_cloud_storage_credential.go @@ -61,5 +61,6 @@ func TencentCloudStorageCredential(c *gin.Context) { resp.Data.Region = config.Config.Credential.Tencent.Region resp.Data.CredentialResult = res } + log.NewInfo(req.OperationID, "TencentCloudStorageCredential return ", resp) c.JSON(http.StatusOK, resp) } From 3aadf61fde461c6124c5bb8fd24fcae4102c3f10 Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Wed, 16 Feb 2022 18:58:02 +0800 Subject: [PATCH 661/814] Refactoring code --- pkg/base_info/cos_api_struct.go | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkg/base_info/cos_api_struct.go b/pkg/base_info/cos_api_struct.go index 41568e480..e3c0237a8 100644 --- a/pkg/base_info/cos_api_struct.go +++ b/pkg/base_info/cos_api_struct.go @@ -7,9 +7,9 @@ type TencentCloudStorageCredentialReq struct { } type TencentCloudStorageCredentialRespData struct { - *sts.CredentialResult - Region string `json:"region"` - Bucket string `json:"bucket"` + *sts.CredentialResult `json:"credentialResult"` + Region string `json:"region"` + Bucket string `json:"bucket"` } type TencentCloudStorageCredentialResp struct { From 17954dfdc926bb30d6fae28908c5b6c697cf8367 Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Wed, 16 Feb 2022 19:41:44 +0800 Subject: [PATCH 662/814] Refactoring code --- .../api/third/tencent_cloud_storage_credential.go | 12 +++++++++--- pkg/base_info/cos_api_struct.go | 10 ++++++---- 2 files changed, 15 insertions(+), 7 deletions(-) diff --git a/internal/api/third/tencent_cloud_storage_credential.go b/internal/api/third/tencent_cloud_storage_credential.go index 02fc5c06e..d78d03b96 100644 --- a/internal/api/third/tencent_cloud_storage_credential.go +++ b/internal/api/third/tencent_cloud_storage_credential.go @@ -6,6 +6,9 @@ import ( "Open_IM/pkg/common/constant" "Open_IM/pkg/common/log" "Open_IM/pkg/common/token_verify" + "github.com/fatih/structs" + + //"github.com/fatih/structs" "github.com/gin-gonic/gin" sts "github.com/tencentyun/qcloud-cos-sts-sdk/go" "net/http" @@ -57,10 +60,13 @@ func TencentCloudStorageCredential(c *gin.Context) { resp.ErrCode = constant.ErrTencentCredential.ErrCode resp.ErrMsg = err.Error() } else { - resp.Data.Bucket = config.Config.Credential.Tencent.Bucket - resp.Data.Region = config.Config.Credential.Tencent.Region - resp.Data.CredentialResult = res + resp.CosData.Bucket = config.Config.Credential.Tencent.Bucket + resp.CosData.Region = config.Config.Credential.Tencent.Region + resp.CosData.CredentialResult = res } + + resp.Data = structs.Map(&resp.CosData) log.NewInfo(req.OperationID, "TencentCloudStorageCredential return ", resp) + c.JSON(http.StatusOK, resp) } diff --git a/pkg/base_info/cos_api_struct.go b/pkg/base_info/cos_api_struct.go index e3c0237a8..e35931ad9 100644 --- a/pkg/base_info/cos_api_struct.go +++ b/pkg/base_info/cos_api_struct.go @@ -7,12 +7,14 @@ type TencentCloudStorageCredentialReq struct { } type TencentCloudStorageCredentialRespData struct { - *sts.CredentialResult `json:"credentialResult"` - Region string `json:"region"` - Bucket string `json:"bucket"` + *sts.CredentialResult + Region string `json:"region"` + Bucket string `json:"bucket"` } type TencentCloudStorageCredentialResp struct { CommResp - Data TencentCloudStorageCredentialRespData `json:"data"` + CosData TencentCloudStorageCredentialRespData `json:"-"` + + Data map[string]interface{} `json:"data"` } From 3b73a4c69a2eda2e57ac800cb54d305323a2a8d3 Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Thu, 17 Feb 2022 11:13:51 +0800 Subject: [PATCH 663/814] send msg modify --- internal/api/third/tencent_cloud_storage_credential.go | 1 + internal/rpc/msg/send_msg.go | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/internal/api/third/tencent_cloud_storage_credential.go b/internal/api/third/tencent_cloud_storage_credential.go index 537641dee..b7b522ea1 100644 --- a/internal/api/third/tencent_cloud_storage_credential.go +++ b/internal/api/third/tencent_cloud_storage_credential.go @@ -61,5 +61,6 @@ func TencentCloudStorageCredential(c *gin.Context) { resp.Data.Region = config.Config.Credential.Tencent.Region resp.Data.CredentialResult = res } + log.NewInfo(req.OperationID, "TencentCloudStorageCredential return", resp) c.JSON(http.StatusOK, resp) } diff --git a/internal/rpc/msg/send_msg.go b/internal/rpc/msg/send_msg.go index 4f57e6406..281ac2ed3 100644 --- a/internal/rpc/msg/send_msg.go +++ b/internal/rpc/msg/send_msg.go @@ -250,7 +250,7 @@ func returnMsg(replay *pbChat.SendMsgResp, pb *pbChat.SendMsgReq, errCode int32, func modifyMessageByUserMessageReceiveOpt(userID, sourceID string, sessionType int, pb *pbChat.SendMsgReq) bool { conversationID := utils.GetConversationIDBySessionType(sourceID, sessionType) opt, err := db.DB.GetSingleConversationMsgOpt(userID, conversationID) - if err != nil || err != redis.ErrNil { + if err != nil && err != redis.ErrNil { log.NewError(pb.OperationID, "GetSingleConversationMsgOpt from redis err", conversationID, pb.String(), err.Error()) return true } From f1616461f71bf5abfcff1bd17863a74e4707bb66 Mon Sep 17 00:00:00 2001 From: wangchuxiao Date: Thu, 17 Feb 2022 14:36:34 +0800 Subject: [PATCH 664/814] add log --- internal/api/conversation/conversation.go | 1 + 1 file changed, 1 insertion(+) diff --git a/internal/api/conversation/conversation.go b/internal/api/conversation/conversation.go index d29e47c09..3971fbad7 100644 --- a/internal/api/conversation/conversation.go +++ b/internal/api/conversation/conversation.go @@ -90,6 +90,7 @@ func GetReceiveMessageOpt(c *gin.Context) { func SetReceiveMessageOpt(c *gin.Context) { params := api.SetReceiveMessageOptReq{} if err := c.BindJSON(¶ms); err != nil { + log.NewError(params.OperationID, utils.GetSelfFuncName(), "bind json failed", err.Error()) c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": "bind json failed " + err.Error()}) return } From 84d4645efa26f37899e2a40e216a10010d592dcb Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Thu, 17 Feb 2022 16:18:37 +0800 Subject: [PATCH 665/814] close console log --- pkg/common/log/logrus.go | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/pkg/common/log/logrus.go b/pkg/common/log/logrus.go index e8a4ba25f..79c7f5a71 100644 --- a/pkg/common/log/logrus.go +++ b/pkg/common/log/logrus.go @@ -2,6 +2,7 @@ package log import ( "Open_IM/pkg/common/config" + "bufio" "fmt" "os" "time" @@ -32,12 +33,12 @@ func loggerInit(moduleName string) *Logger { //All logs will be printed logger.SetLevel(logrus.Level(config.Config.Log.RemainLogLevel)) //Close std console output - // src, err := os.OpenFile(os.DevNull, os.O_APPEND|os.O_WRONLY, os.ModeAppend) - // if err != nil { - // panic(err.Error()) - // } - // writer := bufio.NewWriter(src) - // logger.SetOutput(writer) + src, err := os.OpenFile(os.DevNull, os.O_APPEND|os.O_WRONLY, os.ModeAppend) + if err != nil { + panic(err.Error()) + } + writer := bufio.NewWriter(src) + logger.SetOutput(writer) logger.SetOutput(os.Stdout) //Log Console Print Style Setting logger.SetFormatter(&nested.Formatter{ From 3c7c7cde3c36574a13acaec9e6e46a5183ba7161 Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Thu, 17 Feb 2022 16:28:59 +0800 Subject: [PATCH 666/814] close console log --- pkg/common/log/logrus.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkg/common/log/logrus.go b/pkg/common/log/logrus.go index 79c7f5a71..a5e0ae7dd 100644 --- a/pkg/common/log/logrus.go +++ b/pkg/common/log/logrus.go @@ -39,7 +39,7 @@ func loggerInit(moduleName string) *Logger { } writer := bufio.NewWriter(src) logger.SetOutput(writer) - logger.SetOutput(os.Stdout) + //logger.SetOutput(os.Stdout) //Log Console Print Style Setting logger.SetFormatter(&nested.Formatter{ TimestampFormat: "2006-01-02 15:04:05.000", From 737ce2c2e780380d1a1fbb28583228abbf02f00f Mon Sep 17 00:00:00 2001 From: wangchuxiao Date: Thu, 17 Feb 2022 19:35:17 +0800 Subject: [PATCH 667/814] fix bug --- internal/cms_api/group/group.go | 18 +- internal/cms_api/message_cms/message.go | 42 +- internal/rpc/admin_cms/admin_cms.go | 22 +- internal/rpc/group/group.go | 18 +- internal/rpc/message_cms/message_cms.go | 28 +- internal/rpc/statistics/statistics.go | 7 +- internal/rpc/user/user.go | 1 + pkg/cms_api_struct/message_cms.go | 14 +- pkg/common/db/model_struct.go | 4 + .../mysql_model/im_mysql_model/message_cms.go | 43 +- .../im_mysql_model/statistics_model.go | 2 +- pkg/proto/group/group.pb.go | 294 ++++++------ pkg/proto/group/group.proto | 2 + pkg/proto/message_cms/message_cms.pb.go | 80 ++-- pkg/proto/message_cms/message_cms.proto | 1 + pkg/proto/user/user.pb.go | 422 ++++++++++-------- pkg/proto/user/user.proto | 5 + 17 files changed, 602 insertions(+), 401 deletions(-) diff --git a/internal/cms_api/group/group.go b/internal/cms_api/group/group.go index c9d926bb5..d402ea581 100644 --- a/internal/cms_api/group/group.go +++ b/internal/cms_api/group/group.go @@ -34,7 +34,7 @@ func GetGroupById(c *gin.Context) { respPb, err := client.GetGroupById(context.Background(), &reqPb) if err != nil { log.NewError(reqPb.OperationID, utils.GetSelfFuncName(), "GetGroupById failed ", err.Error()) - openIMHttp.RespHttp200(c, constant.ErrServer, nil) + openIMHttp.RespHttp200(c, err, nil) return } resp.GroupName = respPb.CMSGroup.GroupInfo.GroupName @@ -64,7 +64,7 @@ func GetGroups(c *gin.Context) { respPb, err := client.GetGroups(context.Background(), &reqPb) if err != nil { log.NewError(reqPb.OperationID, utils.GetSelfFuncName(), "GetUserInfo failed ", err.Error()) - openIMHttp.RespHttp200(c, constant.ErrServer, nil) + openIMHttp.RespHttp200(c, err, nil) return } for _, v := range respPb.CMSGroups { @@ -175,7 +175,7 @@ func BanGroupChat(c *gin.Context) { _, err := client.OperateGroupStatus(context.Background(), &reqPb) if err != nil { log.NewError(reqPb.OperationID, utils.GetSelfFuncName(), "BanGroupChat failed ", err.Error()) - openIMHttp.RespHttp200(c, constant.ErrServer, nil) + openIMHttp.RespHttp200(c, err, nil) return } openIMHttp.RespHttp200(c, constant.OK, nil) @@ -199,7 +199,7 @@ func BanPrivateChat(c *gin.Context) { _, err := client.OperateGroupStatus(context.Background(), &reqPb) if err != nil { log.NewError(reqPb.OperationID, utils.GetSelfFuncName(), "OperateGroupStatus failed", err.Error()) - openIMHttp.RespHttp200(c, constant.ErrServer, nil) + openIMHttp.RespHttp200(c, err, nil) return } openIMHttp.RespHttp200(c, constant.OK, nil) @@ -222,7 +222,7 @@ func OpenGroupChat(c *gin.Context) { _, err := client.OperateGroupStatus(context.Background(), &reqPb) if err != nil { log.NewError(reqPb.OperationID, utils.GetSelfFuncName(), "OperateGroupStatus failed ", err.Error()) - openIMHttp.RespHttp200(c, constant.ErrServer, nil) + openIMHttp.RespHttp200(c, err, nil) return } openIMHttp.RespHttp200(c, constant.OK, nil) @@ -245,7 +245,7 @@ func OpenPrivateChat(c *gin.Context) { _, err := client.OperateGroupStatus(context.Background(), &reqPb) if err != nil { log.NewError(reqPb.OperationID, utils.GetSelfFuncName(), "OperateGroupStatus failed ", err.Error()) - openIMHttp.RespHttp200(c, constant.ErrServer, nil) + openIMHttp.RespHttp200(c, err, nil) return } openIMHttp.RespHttp200(c, constant.OK, nil) @@ -311,7 +311,7 @@ func AddGroupMembers(c *gin.Context) { respPb, err := client.AddGroupMembersCMS(context.Background(), &reqPb) if err != nil { log.NewError(reqPb.OperationId, utils.GetSelfFuncName(), "AddGroupMembersCMS failed", err.Error()) - openIMHttp.RespHttp200(c, constant.ErrServer, nil) + openIMHttp.RespHttp200(c, err, nil) return } resp.Success = respPb.Success @@ -337,7 +337,7 @@ func RemoveGroupMembers(c *gin.Context) { respPb, err := client.RemoveGroupMembersCMS(context.Background(), &reqPb) if err != nil { log.NewError(reqPb.OperationID, utils.GetSelfFuncName(), "RemoveGroupMembersCMS failed", err.Error()) - openIMHttp.RespHttp200(c, constant.ErrServer, nil) + openIMHttp.RespHttp200(c, err, nil) return } resp.Success = respPb.Success @@ -362,7 +362,7 @@ func DeleteGroup(c *gin.Context) { _, err := client.DeleteGroup(context.Background(), &reqPb) if err != nil { log.NewError(reqPb.OperationID, utils.GetSelfFuncName(), "DeleteGroup failed", err.Error()) - openIMHttp.RespHttp200(c, constant.ErrServer, nil) + openIMHttp.RespHttp200(c, err, nil) return } openIMHttp.RespHttp200(c, constant.OK, nil) diff --git a/internal/cms_api/message_cms/message.go b/internal/cms_api/message_cms/message.go index 5b23a9c17..c5ced390e 100644 --- a/internal/cms_api/message_cms/message.go +++ b/internal/cms_api/message_cms/message.go @@ -33,10 +33,32 @@ func BroadcastMessage(c *gin.Context) { } func MassSendMassage(c *gin.Context) { + var ( + reqPb pbMessage.MassSendMessageReq + ) + etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImMessageCMSName) + client := pbMessage.NewMessageCMSClient(etcdConn) + _, err := client.MassSendMessage(context.Background(), &reqPb) + if err != nil { + log.NewError(reqPb.OperationID, utils.GetSelfFuncName(), "GetChatLogs rpc failed", err.Error()) + openIMHttp.RespHttp200(c, err, nil) + return + } openIMHttp.RespHttp200(c, constant.OK, nil) } func WithdrawMessage(c *gin.Context) { + var ( + reqPb pbMessage.WithdrawMessageReq + ) + etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImMessageCMSName) + client := pbMessage.NewMessageCMSClient(etcdConn) + _, err := client.WithdrawMessage(context.Background(), &reqPb) + if err != nil { + log.NewError(reqPb.OperationID, utils.GetSelfFuncName(), "GetChatLogs rpc failed", err.Error()) + openIMHttp.RespHttp200(c, err, nil) + return + } openIMHttp.RespHttp200(c, constant.OK, nil) } @@ -64,6 +86,24 @@ func GetChatLogs(c *gin.Context) { openIMHttp.RespHttp200(c, err, resp) return } - utils.CopyStructFields(&resp, &respPb) + //utils.CopyStructFields(&resp, &respPb) + for _, chatLog := range respPb.ChatLogs { + resp.ChatLogs = append(resp.ChatLogs, cms_api_struct.ChatLog{ + SessionType: int(chatLog.SessionType), + ContentType: int(chatLog.ContentType), + SenderNickName: chatLog.SenderNickName, + SenderId: chatLog.SenderId, + SearchContent: chatLog.SearchContent, + WholeContent: chatLog.WholeContent, + ReceiverNickName: chatLog.ReciverNickName, + ReceiverID: chatLog.ReciverId, + GroupName: chatLog.GroupName, + GroupId: chatLog.GroupId, + Date: chatLog.Date, + }) + } + resp.ShowNumber = int(respPb.Pagination.ShowNumber) + resp.CurrentPage = int(respPb.Pagination.CurrentPage) + resp.ChatLogsNum = int(respPb.ChatLogsNum) openIMHttp.RespHttp200(c, constant.OK, resp) } diff --git a/internal/rpc/admin_cms/admin_cms.go b/internal/rpc/admin_cms/admin_cms.go index 8703485a7..8d36f3724 100644 --- a/internal/rpc/admin_cms/admin_cms.go +++ b/internal/rpc/admin_cms/admin_cms.go @@ -66,20 +66,16 @@ func (s *adminCMSServer) Run() { func (s *adminCMSServer) AdminLogin(_ context.Context, req *pbAdminCMS.AdminLoginReq) (*pbAdminCMS.AdminLoginResp, error) { log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "req: ", req.String()) resp := &pbAdminCMS.AdminLoginResp{} - for _, adminID := range config.Config.Manager.AppManagerUid{ - if adminID == req.AdminID { - for _, secret := range config.Config.Manager.Secrets { - if secret == req.Secret { - token, expTime, err := token_verify.CreateToken(adminID,9843) - log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "generate token success", "token: ", token, "expTime:", expTime) - if err != nil { - log.NewError(req.OperationID, utils.GetSelfFuncName(), "generate token failed", "adminID: ", adminID, err.Error()) - return resp, openIMHttp.WrapError(constant.ErrTokenUnknown) - } - resp.Token = token - break - } + for i, adminID := range config.Config.Manager.AppManagerUid{ + if adminID == req.AdminID && config.Config.Manager.Secrets[i] == req.Secret { + token, expTime, err := token_verify.CreateToken(adminID, constant.SingleChatType) + log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "generate token success", "token: ", token, "expTime:", expTime) + if err != nil { + log.NewError(req.OperationID, utils.GetSelfFuncName(), "generate token failed", "adminID: ", adminID, err.Error()) + return resp, openIMHttp.WrapError(constant.ErrTokenUnknown) } + resp.Token = token + break } } diff --git a/internal/rpc/group/group.go b/internal/rpc/group/group.go index 4fc915971..7d5fd547f 100644 --- a/internal/rpc/group/group.go +++ b/internal/rpc/group/group.go @@ -87,13 +87,13 @@ func (s *groupServer) CreateGroup(ctx context.Context, req *pbGroup.CreateGroupR err := imdb.InsertIntoGroup(groupInfo) if err != nil { log.NewError(req.OperationID, "InsertIntoGroup failed, ", err.Error(), groupInfo) - return &pbGroup.CreateGroupResp{ErrCode: constant.ErrDB.ErrCode, ErrMsg: constant.ErrDB.ErrMsg}, nil + return &pbGroup.CreateGroupResp{ErrCode: constant.ErrDB.ErrCode, ErrMsg: constant.ErrDB.ErrMsg}, http.WrapError(constant.ErrDB) } us, err := imdb.GetUserByUserID(req.OwnerUserID) if err != nil { log.NewError(req.OperationID, "GetUserByUserID failed ", err.Error(), req.OwnerUserID) - return &pbGroup.CreateGroupResp{ErrCode: constant.ErrDB.ErrCode, ErrMsg: constant.ErrDB.ErrMsg}, nil + return &pbGroup.CreateGroupResp{ErrCode: constant.ErrDB.ErrCode, ErrMsg: constant.ErrDB.ErrMsg}, http.WrapError(constant.ErrDB) } //to group member @@ -102,7 +102,7 @@ func (s *groupServer) CreateGroup(ctx context.Context, req *pbGroup.CreateGroupR err = imdb.InsertIntoGroupMember(groupMember) if err != nil { log.NewError(req.OperationID, "InsertIntoGroupMember failed ", err.Error(), groupMember) - return &pbGroup.CreateGroupResp{ErrCode: constant.ErrDB.ErrCode, ErrMsg: constant.ErrDB.ErrMsg}, nil + return &pbGroup.CreateGroupResp{ErrCode: constant.ErrDB.ErrCode, ErrMsg: constant.ErrDB.ErrMsg}, http.WrapError(constant.ErrDB) } err = db.DB.AddGroupMember(groupId, req.OwnerUserID) @@ -830,6 +830,14 @@ func (s *groupServer) RemoveGroupMembersCMS(_ context.Context, req *pbGroup.Remo resp.Success = append(resp.Success, userId) } } + reqKick := &pbGroup.KickGroupMemberReq{ + GroupID: req.GroupId, + KickedUserIDList: resp.Success, + Reason: "admin kick", + OperationID: req.OperationID, + OpUserID: req.OpUserId, + } + chat.MemberKickedNotification(reqKick, resp.Success) return resp, nil } @@ -864,7 +872,9 @@ func (s *groupServer) AddGroupMembersCMS(_ context.Context, req *pbGroup.AddGrou resp.Failed = append(resp.Failed, userId) } else { resp.Success = append(resp.Success, userId) + chat.MemberInvitedNotification(req.OperationId, req.GroupId, req.OpUserId, "admin add", resp.Success) } + } return resp, nil } @@ -899,8 +909,6 @@ func (s *groupServer) GetUserReqApplicationList(_ context.Context, req *pbGroup. cp.GroupDBCopyOpenIM(node.GroupInfo, group) resp.GroupRequestList = append(resp.GroupRequestList, &node) } - log.NewInfo(req.OperationID, utils.GetSelfFuncName(), groupRequests) - log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "output:", resp) resp.CommonResp = &pbGroup.CommonResp{ ErrCode: 0, ErrMsg: "", diff --git a/internal/rpc/message_cms/message_cms.go b/internal/rpc/message_cms/message_cms.go index c0ecf8bbe..d71394668 100644 --- a/internal/rpc/message_cms/message_cms.go +++ b/internal/rpc/message_cms/message_cms.go @@ -86,6 +86,20 @@ func (s *messageCMSServer) GetChatLogs(_ context.Context, req *pbMessageCMS.GetC chatLog := db.ChatLog{ Content: req.Content, SendTime: time, + ContentType: req.ContentType, + SessionType: req.SessionType, + } + switch chatLog.SessionType { + case constant.SingleChatType: + chatLog.SendID = req.UserId + case constant.GroupChatType: + chatLog.RecvID = req.GroupId + chatLog.SendID = req.UserId + } + nums, err := imdb.GetChatLogCount(chatLog) + resp.ChatLogsNum = int32(nums) + if err != nil { + log.NewError(req.OperationID, utils.GetSelfFuncName(), "GetChatLogCount", err.Error()) } chatLogs, err := imdb.GetChatLog(chatLog, req.Pagination.PageNumber, req.Pagination.ShowNumber) if err != nil { @@ -96,11 +110,19 @@ func (s *messageCMSServer) GetChatLogs(_ context.Context, req *pbMessageCMS.GetC pbChatLog := &pbMessageCMS.ChatLogs{ SessionType: chatLog.SessionType, ContentType: chatLog.ContentType, - SenderNickName: chatLog.SenderNickname, - SenderId: chatLog.SendID, SearchContent: req.Content, WholeContent: chatLog.Content, Date: chatLog.CreateTime.String(), + SenderNickName: chatLog.SenderNickname, + SenderId: chatLog.SendID, + } + if chatLog.SenderNickname == "" { + sendUser, err := imdb.GetUserByUserID(chatLog.SendID) + if err != nil { + log.NewError(req.OperationID, utils.GetSelfFuncName(), "GetUserByUserID failed", err.Error()) + continue + } + pbChatLog.SenderNickName = sendUser.Nickname } switch chatLog.SessionType { case constant.SingleChatType: @@ -111,6 +133,7 @@ func (s *messageCMSServer) GetChatLogs(_ context.Context, req *pbMessageCMS.GetC } pbChatLog.ReciverId = recvUser.UserID pbChatLog.ReciverNickName = recvUser.Nickname + case constant.GroupChatType: group, err := imdb.GetGroupById(chatLog.RecvID) if err != nil { @@ -126,6 +149,7 @@ func (s *messageCMSServer) GetChatLogs(_ context.Context, req *pbMessageCMS.GetC CurrentPage: req.Pagination.PageNumber, ShowNumber: req.Pagination.ShowNumber, } + log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "resp output: ", resp.String()) return resp, nil } diff --git a/internal/rpc/statistics/statistics.go b/internal/rpc/statistics/statistics.go index 7c805da2f..6684f8af7 100644 --- a/internal/rpc/statistics/statistics.go +++ b/internal/rpc/statistics/statistics.go @@ -219,7 +219,6 @@ func (s *statisticsServer) GetGroupStatistics(_ context.Context, req *pbStatisti wg := &sync.WaitGroup{} resp.IncreaseGroupNumList = make([]*pbStatistics.DateNumList, len(times), len(times)) resp.TotalGroupNumList = make([]*pbStatistics.DateNumList, len(times), len(times)) - log.NewInfo(req.OperationID, resp.TotalGroupNumList, resp.TotalGroupNumList) wg.Add(len(times)) for i, v := range times { go func(wg *sync.WaitGroup, index int, v [2]time.Time) { @@ -232,7 +231,7 @@ func (s *statisticsServer) GetGroupStatistics(_ context.Context, req *pbStatisti Date: v[0].String(), Num: num, } - num, err = imdb.GetGroupNum(v[0]) + num, err = imdb.GetGroupNum(v[1]) if err != nil { log.NewError(req.OperationID, utils.GetSelfFuncName(), "GetIncreaseGroupNum", v, err.Error()) } @@ -273,6 +272,7 @@ func (s *statisticsServer) GetMessageStatistics(_ context.Context, req *pbStatis for i, v := range times { go func(wg *sync.WaitGroup, index int, v [2]time.Time) { defer wg.Done() + num, err := imdb.GetPrivateMessageNum(v[0], v[1]) if err != nil { log.NewError(req.OperationID, utils.GetSelfFuncName(), "GetIncreaseGroupNum", v, err.Error()) @@ -338,7 +338,8 @@ func (s *statisticsServer) GetUserStatistics(_ context.Context, req *pbStatistic Date: v[0].String(), Num: num, } - num, err = imdb.GetTotalUserNumByDate(v[0]) + + num, err = imdb.GetTotalUserNumByDate(v[1]) if err != nil { log.NewError(req.OperationID, utils.GetSelfFuncName(), "GetTotalUserNumByDate", v, err.Error()) } diff --git a/internal/rpc/user/user.go b/internal/rpc/user/user.go index 9bbc9ee96..b0ebf593a 100644 --- a/internal/rpc/user/user.go +++ b/internal/rpc/user/user.go @@ -357,6 +357,7 @@ func (s *userServer) AlterUser(ctx context.Context, req *pbUser.AlterUserReq) (* log.NewError(req.OperationID, utils.GetSelfFuncName(), "UpdateUserInfo", err.Error()) return resp, errors.WrapError(constant.ErrDB) } + chat.UserInfoUpdatedNotification(req.OperationID, req.UserId, req.OpUserId) return resp, nil } diff --git a/pkg/cms_api_struct/message_cms.go b/pkg/cms_api_struct/message_cms.go index bbf62c3ec..164c75011 100644 --- a/pkg/cms_api_struct/message_cms.go +++ b/pkg/cms_api_struct/message_cms.go @@ -8,6 +8,8 @@ type BroadcastResponse struct { } type MassSendMassageRequest struct { + Message string `json:"message"` + Users []string `json:"users"` } type MassSendMassageResponse struct { @@ -28,21 +30,21 @@ type ChatLog struct { SessionType int `json:"session_type"` ContentType int `json:"content_type"` SenderNickName string `json:"sender_nick_name"` - SenderId int `json:"sender_id"` + SenderId string `json:"sender_id"` SearchContent string `json:"search_content"` WholeContent string `json:"whole_content"` - ReceiverNickName string `json:"receiver_nick_name"` - ReceiverID int `json:"receiver_id"` + ReceiverNickName string `json:"receiver_nick_name,omitempty"` + ReceiverID string `json:"receiver_id,omitempty"` - GroupName string `json:"group_name"` - GroupId string `json:"group_id"` + GroupName string `json:"group_name,omitempty"` + GroupId string `json:"group_id,omitempty"` Date string `json:"date"` } type GetChatLogsResponse struct { ChatLogs []ChatLog `json:"chat_logs"` - logNums int `json:"log_nums"` + ChatLogsNum int `json:"log_nums"` ResponsePagination } diff --git a/pkg/common/db/model_struct.go b/pkg/common/db/model_struct.go index 9381717df..11658bc98 100644 --- a/pkg/common/db/model_struct.go +++ b/pkg/common/db/model_struct.go @@ -194,6 +194,10 @@ type ChatLog struct { Ex string `gorm:"column:ex;type:varchar(1024)" json:"ex"` } +func (ChatLog) TableName() string { + return "chat_logs" +} + type BlackList struct { UserId string `gorm:"column:uid"` BeginDisableTime time.Time `gorm:"column:begin_disable_time"` diff --git a/pkg/common/db/mysql_model/im_mysql_model/message_cms.go b/pkg/common/db/mysql_model/im_mysql_model/message_cms.go index 0f289a048..811943667 100644 --- a/pkg/common/db/mysql_model/im_mysql_model/message_cms.go +++ b/pkg/common/db/mysql_model/im_mysql_model/message_cms.go @@ -12,18 +12,55 @@ func GetChatLog(chatLog db.ChatLog, pageNumber, showNumber int32) ([]db.ChatLog, return chatLogs, err } dbConn.LogMode(true) - err = dbConn.Table("chat_logs").Where(fmt.Sprintf(" content like '%%%s%%'", chatLog.Content)). - Limit(showNumber).Offset(showNumber * (pageNumber - 1)).Find(&chatLogs).Error + db := dbConn.Table("chat_logs"). + Where(fmt.Sprintf(" content like '%%%s%%'", chatLog.Content)). + Limit(showNumber).Offset(showNumber * (pageNumber - 1)) + if chatLog.SessionType != 0 { + db = db.Where("session_type = ?", chatLog.SessionType) + } + if chatLog.ContentType != 0 { + db = db.Where("content_type = ?", chatLog.ContentType) + } + if chatLog.SendID != "" { + db = db.Where("send_id = ?", chatLog.SendID) + } + if chatLog.RecvID != "" { + db = db.Where("recv_id = ?", chatLog.RecvID) + } + if chatLog.SendTime.Unix() > 0 { + db = db.Where("send_time > ? and send_time < ?", chatLog.SendTime, chatLog.SendTime.AddDate(0, 0, 1)) + } + + err = db.Find(&chatLogs).Error return chatLogs, err } func GetChatLogCount(chatLog db.ChatLog) (int64, error) { dbConn, err := db.DB.MysqlDB.DefaultGormDB() + var chatLogs []db.ChatLog var count int64 if err != nil { return count, err } dbConn.LogMode(true) - err = dbConn.Table("chat_logs").Where(fmt.Sprintf(" content like '%%%s%%' and ", chatLog.Content)).Count(&count).Error + db := dbConn.Table("chat_logs"). + Where(fmt.Sprintf(" content like '%%%s%%'", chatLog.Content)) + if chatLog.SessionType != 0 { + db = db.Where("session_type = ?", chatLog.SessionType) + } + if chatLog.ContentType != 0 { + db = db.Where("content_type = ?", chatLog.ContentType) + } + if chatLog.SendID != "" { + db = db.Where("send_id = ?", chatLog.SendID) + } + if chatLog.RecvID != "" { + db = db.Where("recv_id = ?", chatLog.RecvID) + } + if chatLog.SendTime.Unix() > 0 { + db = db.Where("send_time > ? and send_time < ?", chatLog.SendTime, chatLog.SendTime.AddDate(0, 0, 1)) + } + + err = db.Find(&chatLogs).Count(&count).Error return count, err } \ No newline at end of file diff --git a/pkg/common/db/mysql_model/im_mysql_model/statistics_model.go b/pkg/common/db/mysql_model/im_mysql_model/statistics_model.go index ae2ec9cfd..097c83185 100644 --- a/pkg/common/db/mysql_model/im_mysql_model/statistics_model.go +++ b/pkg/common/db/mysql_model/im_mysql_model/statistics_model.go @@ -122,7 +122,7 @@ func GetActiveGroups(from, to time.Time, limit int) ([]*activeGroup, error) { group := db.Group{ GroupID: activeGroup.Id, } - dbConn.Model(&group).Select("group_id", "name").Find(&group) + dbConn.Table("groups").Where("group_id= ? ", group.GroupID).Find(&group) activeGroup.Name = group.GroupName } return activeGroups, err diff --git a/pkg/proto/group/group.pb.go b/pkg/proto/group/group.pb.go index 54a10cdf4..d6dc9ccd9 100644 --- a/pkg/proto/group/group.pb.go +++ b/pkg/proto/group/group.pb.go @@ -3029,6 +3029,7 @@ type RemoveGroupMembersCMSReq struct { GroupId string `protobuf:"bytes,1,opt,name=GroupId,proto3" json:"GroupId,omitempty"` UserIds []string `protobuf:"bytes,2,rep,name=UserIds,proto3" json:"UserIds,omitempty"` OperationID string `protobuf:"bytes,3,opt,name=OperationID,proto3" json:"OperationID,omitempty"` + OpUserId string `protobuf:"bytes,4,opt,name=OpUserId,proto3" json:"OpUserId,omitempty"` } func (x *RemoveGroupMembersCMSReq) Reset() { @@ -3084,6 +3085,13 @@ func (x *RemoveGroupMembersCMSReq) GetOperationID() string { return "" } +func (x *RemoveGroupMembersCMSReq) GetOpUserId() string { + if x != nil { + return x.OpUserId + } + return "" +} + type RemoveGroupMembersCMSResp struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -3147,6 +3155,7 @@ type AddGroupMembersCMSReq struct { GroupId string `protobuf:"bytes,1,opt,name=GroupId,proto3" json:"GroupId,omitempty"` UserIds []string `protobuf:"bytes,2,rep,name=UserIds,proto3" json:"UserIds,omitempty"` OperationId string `protobuf:"bytes,3,opt,name=OperationId,proto3" json:"OperationId,omitempty"` + OpUserId string `protobuf:"bytes,4,opt,name=OpUserId,proto3" json:"OpUserId,omitempty"` } func (x *AddGroupMembersCMSReq) Reset() { @@ -3202,6 +3211,13 @@ func (x *AddGroupMembersCMSReq) GetOperationId() string { return "" } +func (x *AddGroupMembersCMSReq) GetOpUserId() string { + if x != nil { + return x.OpUserId + } + return "" +} + type AddGroupMembersCMSResp struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -3643,147 +3659,151 @@ var file_group_group_proto_rawDesc = []byte{ 0x6f, 0x6e, 0x73, 0x65, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0a, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1e, 0x0a, 0x0a, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, - 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x73, 0x22, 0x70, 0x0a, 0x18, 0x52, 0x65, - 0x6d, 0x6f, 0x76, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, - 0x43, 0x4d, 0x53, 0x52, 0x65, 0x71, 0x12, 0x18, 0x0a, 0x07, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, - 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, - 0x12, 0x18, 0x0a, 0x07, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, - 0x09, 0x52, 0x07, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x70, - 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x22, 0x4d, 0x0a, 0x19, - 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, - 0x72, 0x73, 0x43, 0x4d, 0x53, 0x52, 0x65, 0x73, 0x70, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x75, 0x63, - 0x63, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, 0x73, 0x75, 0x63, 0x63, - 0x65, 0x73, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x66, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x18, 0x02, 0x20, - 0x03, 0x28, 0x09, 0x52, 0x06, 0x66, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x22, 0x6d, 0x0a, 0x15, 0x41, - 0x64, 0x64, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x43, 0x4d, - 0x53, 0x52, 0x65, 0x71, 0x12, 0x18, 0x0a, 0x07, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x12, 0x18, - 0x0a, 0x07, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, - 0x07, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x70, 0x65, 0x72, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x4f, - 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x22, 0x4a, 0x0a, 0x16, 0x41, 0x64, - 0x64, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x43, 0x4d, 0x53, - 0x52, 0x65, 0x73, 0x70, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x18, - 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x12, 0x16, - 0x0a, 0x06, 0x66, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, - 0x66, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x32, 0xad, 0x0e, 0x0a, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, - 0x12, 0x3c, 0x0a, 0x0b, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, - 0x15, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x47, 0x72, - 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x1a, 0x16, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x43, - 0x72, 0x65, 0x61, 0x74, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x12, 0x36, - 0x0a, 0x09, 0x6a, 0x6f, 0x69, 0x6e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x13, 0x2e, 0x67, 0x72, - 0x6f, 0x75, 0x70, 0x2e, 0x4a, 0x6f, 0x69, 0x6e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, - 0x1a, 0x14, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x4a, 0x6f, 0x69, 0x6e, 0x47, 0x72, 0x6f, - 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x12, 0x36, 0x0a, 0x09, 0x71, 0x75, 0x69, 0x74, 0x47, 0x72, - 0x6f, 0x75, 0x70, 0x12, 0x13, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x51, 0x75, 0x69, 0x74, - 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x1a, 0x14, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, - 0x2e, 0x51, 0x75, 0x69, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x12, 0x42, - 0x0a, 0x0d, 0x67, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x12, - 0x17, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, - 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x1a, 0x18, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, - 0x2e, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, - 0x73, 0x70, 0x12, 0x3f, 0x0a, 0x0c, 0x73, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, - 0x66, 0x6f, 0x12, 0x16, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x53, 0x65, 0x74, 0x47, 0x72, - 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x1a, 0x17, 0x2e, 0x67, 0x72, 0x6f, - 0x75, 0x70, 0x2e, 0x53, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x52, - 0x65, 0x73, 0x70, 0x12, 0x60, 0x0a, 0x17, 0x67, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, - 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x21, - 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, + 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x73, 0x22, 0x8c, 0x01, 0x0a, 0x18, 0x52, + 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, + 0x73, 0x43, 0x4d, 0x53, 0x52, 0x65, 0x71, 0x12, 0x18, 0x0a, 0x07, 0x47, 0x72, 0x6f, 0x75, 0x70, + 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, + 0x64, 0x12, 0x18, 0x0a, 0x07, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x73, 0x18, 0x02, 0x20, 0x03, + 0x28, 0x09, 0x52, 0x07, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x4f, + 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x12, 0x1a, 0x0a, + 0x08, 0x4f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x08, 0x4f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x22, 0x4d, 0x0a, 0x19, 0x52, 0x65, 0x6d, + 0x6f, 0x76, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x43, + 0x4d, 0x53, 0x52, 0x65, 0x73, 0x70, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, + 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, + 0x12, 0x16, 0x0a, 0x06, 0x66, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, + 0x52, 0x06, 0x66, 0x61, 0x69, 0x6c, 0x65, 0x64, 0x22, 0x89, 0x01, 0x0a, 0x15, 0x41, 0x64, 0x64, + 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x43, 0x4d, 0x53, 0x52, + 0x65, 0x71, 0x12, 0x18, 0x0a, 0x07, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x18, 0x01, 0x20, + 0x01, 0x28, 0x09, 0x52, 0x07, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x64, 0x12, 0x18, 0x0a, 0x07, + 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x07, 0x55, + 0x73, 0x65, 0x72, 0x49, 0x64, 0x73, 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x4f, 0x70, 0x65, + 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x64, 0x12, 0x1a, 0x0a, 0x08, 0x4f, 0x70, 0x55, 0x73, + 0x65, 0x72, 0x49, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x4f, 0x70, 0x55, 0x73, + 0x65, 0x72, 0x49, 0x64, 0x22, 0x4a, 0x0a, 0x16, 0x41, 0x64, 0x64, 0x47, 0x72, 0x6f, 0x75, 0x70, + 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x43, 0x4d, 0x53, 0x52, 0x65, 0x73, 0x70, 0x12, 0x18, + 0x0a, 0x07, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x09, 0x52, + 0x07, 0x73, 0x75, 0x63, 0x63, 0x65, 0x73, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x66, 0x61, 0x69, 0x6c, + 0x65, 0x64, 0x18, 0x02, 0x20, 0x03, 0x28, 0x09, 0x52, 0x06, 0x66, 0x61, 0x69, 0x6c, 0x65, 0x64, + 0x32, 0xad, 0x0e, 0x0a, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x3c, 0x0a, 0x0b, 0x63, 0x72, + 0x65, 0x61, 0x74, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x15, 0x2e, 0x67, 0x72, 0x6f, 0x75, + 0x70, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, + 0x1a, 0x16, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x47, + 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x12, 0x36, 0x0a, 0x09, 0x6a, 0x6f, 0x69, 0x6e, + 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x13, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x4a, 0x6f, + 0x69, 0x6e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x1a, 0x14, 0x2e, 0x67, 0x72, 0x6f, + 0x75, 0x70, 0x2e, 0x4a, 0x6f, 0x69, 0x6e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, + 0x12, 0x36, 0x0a, 0x09, 0x71, 0x75, 0x69, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x13, 0x2e, + 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x51, 0x75, 0x69, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, + 0x65, 0x71, 0x1a, 0x14, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x51, 0x75, 0x69, 0x74, 0x47, + 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x12, 0x42, 0x0a, 0x0d, 0x67, 0x65, 0x74, 0x47, + 0x72, 0x6f, 0x75, 0x70, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x17, 0x2e, 0x67, 0x72, 0x6f, 0x75, + 0x70, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x52, + 0x65, 0x71, 0x1a, 0x18, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x72, + 0x6f, 0x75, 0x70, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x12, 0x3f, 0x0a, 0x0c, + 0x73, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x16, 0x2e, 0x67, + 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x53, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x66, + 0x6f, 0x52, 0x65, 0x71, 0x1a, 0x17, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x53, 0x65, 0x74, + 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x12, 0x60, 0x0a, + 0x17, 0x67, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x21, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, + 0x2e, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x22, 0x2e, 0x67, 0x72, + 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x70, 0x70, 0x6c, + 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, + 0x66, 0x0a, 0x19, 0x67, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x41, 0x70, 0x70, + 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x23, 0x2e, 0x67, + 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, - 0x71, 0x1a, 0x22, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, - 0x75, 0x70, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x69, 0x73, - 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x66, 0x0a, 0x19, 0x67, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, - 0x52, 0x65, 0x71, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x69, - 0x73, 0x74, 0x12, 0x23, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, - 0x65, 0x72, 0x52, 0x65, 0x71, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x24, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, - 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x51, 0x0a, - 0x12, 0x74, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4f, 0x77, - 0x6e, 0x65, 0x72, 0x12, 0x1c, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x54, 0x72, 0x61, 0x6e, - 0x73, 0x66, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x52, 0x65, - 0x71, 0x1a, 0x1d, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, - 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, - 0x12, 0x63, 0x0a, 0x18, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x22, 0x2e, 0x67, - 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x65, 0x71, - 0x1a, 0x23, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x70, - 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x51, 0x0a, 0x12, 0x67, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, - 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x1c, 0x2e, 0x67, 0x72, - 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, - 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x1d, 0x2e, 0x67, 0x72, 0x6f, 0x75, + 0x71, 0x1a, 0x24, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, + 0x72, 0x52, 0x65, 0x71, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4c, + 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x51, 0x0a, 0x12, 0x74, 0x72, 0x61, 0x6e, 0x73, + 0x66, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x12, 0x1c, 0x2e, + 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x47, 0x72, + 0x6f, 0x75, 0x70, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x52, 0x65, 0x71, 0x1a, 0x1d, 0x2e, 0x67, 0x72, + 0x6f, 0x75, 0x70, 0x2e, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, 0x65, 0x72, 0x47, 0x72, 0x6f, 0x75, + 0x70, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x12, 0x63, 0x0a, 0x18, 0x67, 0x72, + 0x6f, 0x75, 0x70, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, + 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x12, 0x22, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47, + 0x72, 0x6f, 0x75, 0x70, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, + 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x23, 0x2e, 0x67, 0x72, 0x6f, + 0x75, 0x70, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, + 0x51, 0x0a, 0x12, 0x67, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, + 0x72, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x1c, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x65, + 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, + 0x52, 0x65, 0x71, 0x1a, 0x1d, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x65, 0x74, 0x47, + 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, + 0x73, 0x70, 0x12, 0x54, 0x0a, 0x13, 0x67, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, + 0x6d, 0x62, 0x65, 0x72, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1d, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, - 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x54, 0x0a, 0x13, 0x67, 0x65, 0x74, 0x47, - 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x12, - 0x1d, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, - 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x1a, 0x1e, - 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, - 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x12, 0x48, - 0x0a, 0x0f, 0x6b, 0x69, 0x63, 0x6b, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, - 0x72, 0x12, 0x19, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x4b, 0x69, 0x63, 0x6b, 0x47, 0x72, - 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x65, 0x71, 0x1a, 0x1a, 0x2e, 0x67, - 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x4b, 0x69, 0x63, 0x6b, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, - 0x6d, 0x62, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x12, 0x51, 0x0a, 0x12, 0x67, 0x65, 0x74, 0x4a, - 0x6f, 0x69, 0x6e, 0x65, 0x64, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x1c, - 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x65, 0x74, 0x4a, 0x6f, 0x69, 0x6e, 0x65, 0x64, - 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x1d, 0x2e, 0x67, - 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x65, 0x74, 0x4a, 0x6f, 0x69, 0x6e, 0x65, 0x64, 0x47, 0x72, - 0x6f, 0x75, 0x70, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x4e, 0x0a, 0x11, 0x69, - 0x6e, 0x76, 0x69, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x54, 0x6f, 0x47, 0x72, 0x6f, 0x75, 0x70, - 0x12, 0x1b, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x55, - 0x73, 0x65, 0x72, 0x54, 0x6f, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, - 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, - 0x54, 0x6f, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x12, 0x4e, 0x0a, 0x11, 0x67, - 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x6c, 0x6c, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, - 0x12, 0x1b, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, - 0x70, 0x41, 0x6c, 0x6c, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, - 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x6c, - 0x6c, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x12, 0x3f, 0x0a, 0x0c, 0x47, - 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x42, 0x79, 0x49, 0x64, 0x12, 0x16, 0x2e, 0x67, 0x72, - 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x42, 0x79, 0x49, 0x64, - 0x52, 0x65, 0x71, 0x1a, 0x17, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x65, 0x74, 0x47, - 0x72, 0x6f, 0x75, 0x70, 0x42, 0x79, 0x49, 0x64, 0x52, 0x65, 0x73, 0x70, 0x12, 0x33, 0x0a, 0x08, - 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x12, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, - 0x2e, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x1a, 0x13, 0x2e, 0x67, - 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, - 0x70, 0x12, 0x36, 0x0a, 0x09, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x12, 0x13, - 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, - 0x52, 0x65, 0x71, 0x1a, 0x14, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x65, 0x74, 0x47, - 0x72, 0x6f, 0x75, 0x70, 0x73, 0x52, 0x65, 0x73, 0x70, 0x12, 0x51, 0x0a, 0x12, 0x4f, 0x70, 0x65, - 0x72, 0x61, 0x74, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, - 0x1c, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x65, 0x47, - 0x72, 0x6f, 0x75, 0x70, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x1d, 0x2e, - 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x65, 0x47, 0x72, 0x6f, - 0x75, 0x70, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x12, 0x48, 0x0a, 0x0f, - 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x52, 0x6f, 0x6c, 0x65, 0x12, - 0x19, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x65, 0x55, - 0x73, 0x65, 0x72, 0x52, 0x6f, 0x6c, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x1a, 0x2e, 0x67, 0x72, 0x6f, - 0x75, 0x70, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x52, 0x6f, - 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x3c, 0x0a, 0x0b, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, - 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x15, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x44, 0x65, - 0x6c, 0x65, 0x74, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x1a, 0x16, 0x2e, 0x67, - 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, - 0x52, 0x65, 0x73, 0x70, 0x12, 0x51, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, - 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x43, 0x4d, 0x53, 0x12, 0x1c, 0x2e, 0x67, 0x72, 0x6f, - 0x75, 0x70, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, - 0x72, 0x73, 0x43, 0x4d, 0x53, 0x52, 0x65, 0x71, 0x1a, 0x1d, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, + 0x73, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x1a, 0x1e, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, - 0x43, 0x4d, 0x53, 0x52, 0x65, 0x73, 0x70, 0x12, 0x5a, 0x0a, 0x15, 0x52, 0x65, 0x6d, 0x6f, 0x76, - 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x43, 0x4d, 0x53, - 0x12, 0x1f, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x47, - 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x43, 0x4d, 0x53, 0x52, 0x65, - 0x71, 0x1a, 0x20, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, + 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x12, 0x48, 0x0a, 0x0f, 0x6b, 0x69, 0x63, 0x6b, + 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x19, 0x2e, 0x67, 0x72, + 0x6f, 0x75, 0x70, 0x2e, 0x4b, 0x69, 0x63, 0x6b, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, + 0x62, 0x65, 0x72, 0x52, 0x65, 0x71, 0x1a, 0x1a, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x4b, + 0x69, 0x63, 0x6b, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x52, 0x65, + 0x73, 0x70, 0x12, 0x51, 0x0a, 0x12, 0x67, 0x65, 0x74, 0x4a, 0x6f, 0x69, 0x6e, 0x65, 0x64, 0x47, + 0x72, 0x6f, 0x75, 0x70, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x1c, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, + 0x2e, 0x47, 0x65, 0x74, 0x4a, 0x6f, 0x69, 0x6e, 0x65, 0x64, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4c, + 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x1d, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47, + 0x65, 0x74, 0x4a, 0x6f, 0x69, 0x6e, 0x65, 0x64, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4c, 0x69, 0x73, + 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x4e, 0x0a, 0x11, 0x69, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x55, + 0x73, 0x65, 0x72, 0x54, 0x6f, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x1b, 0x2e, 0x67, 0x72, 0x6f, + 0x75, 0x70, 0x2e, 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x54, 0x6f, 0x47, + 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, + 0x49, 0x6e, 0x76, 0x69, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x54, 0x6f, 0x47, 0x72, 0x6f, 0x75, + 0x70, 0x52, 0x65, 0x73, 0x70, 0x12, 0x4e, 0x0a, 0x11, 0x67, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, + 0x70, 0x41, 0x6c, 0x6c, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x1b, 0x2e, 0x67, 0x72, 0x6f, + 0x75, 0x70, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x6c, 0x6c, 0x4d, 0x65, + 0x6d, 0x62, 0x65, 0x72, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, + 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x6c, 0x6c, 0x4d, 0x65, 0x6d, 0x62, 0x65, + 0x72, 0x52, 0x65, 0x73, 0x70, 0x12, 0x3f, 0x0a, 0x0c, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, + 0x70, 0x42, 0x79, 0x49, 0x64, 0x12, 0x16, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x65, + 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x42, 0x79, 0x49, 0x64, 0x52, 0x65, 0x71, 0x1a, 0x17, 0x2e, + 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x42, 0x79, + 0x49, 0x64, 0x52, 0x65, 0x73, 0x70, 0x12, 0x33, 0x0a, 0x08, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, + 0x75, 0x70, 0x12, 0x12, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x72, + 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x1a, 0x13, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47, + 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x12, 0x36, 0x0a, 0x09, 0x47, + 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x12, 0x13, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, + 0x2e, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x14, 0x2e, + 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x73, 0x52, + 0x65, 0x73, 0x70, 0x12, 0x51, 0x0a, 0x12, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x65, 0x47, 0x72, + 0x6f, 0x75, 0x70, 0x53, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x1c, 0x2e, 0x67, 0x72, 0x6f, 0x75, + 0x70, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x53, 0x74, + 0x61, 0x74, 0x75, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x1d, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, + 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x53, 0x74, 0x61, 0x74, + 0x75, 0x73, 0x52, 0x65, 0x73, 0x70, 0x12, 0x48, 0x0a, 0x0f, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, + 0x65, 0x55, 0x73, 0x65, 0x72, 0x52, 0x6f, 0x6c, 0x65, 0x12, 0x19, 0x2e, 0x67, 0x72, 0x6f, 0x75, + 0x70, 0x2e, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x52, 0x6f, 0x6c, + 0x65, 0x52, 0x65, 0x71, 0x1a, 0x1a, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x4f, 0x70, 0x65, + 0x72, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x52, 0x6f, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x70, + 0x12, 0x3c, 0x0a, 0x0b, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x12, + 0x15, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x47, 0x72, + 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x1a, 0x16, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x44, + 0x65, 0x6c, 0x65, 0x74, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x73, 0x70, 0x12, 0x51, + 0x0a, 0x12, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, + 0x73, 0x43, 0x4d, 0x53, 0x12, 0x1c, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x43, 0x4d, 0x53, 0x52, - 0x65, 0x73, 0x70, 0x12, 0x51, 0x0a, 0x12, 0x41, 0x64, 0x64, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, - 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x43, 0x4d, 0x53, 0x12, 0x1c, 0x2e, 0x67, 0x72, 0x6f, 0x75, - 0x70, 0x2e, 0x41, 0x64, 0x64, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, - 0x73, 0x43, 0x4d, 0x53, 0x52, 0x65, 0x71, 0x1a, 0x1d, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, - 0x41, 0x64, 0x64, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x43, - 0x4d, 0x53, 0x52, 0x65, 0x73, 0x70, 0x42, 0x0f, 0x5a, 0x0d, 0x2e, 0x2f, 0x67, 0x72, 0x6f, 0x75, - 0x70, 0x3b, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, + 0x65, 0x71, 0x1a, 0x1d, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x47, 0x65, 0x74, 0x47, 0x72, + 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x43, 0x4d, 0x53, 0x52, 0x65, 0x73, + 0x70, 0x12, 0x5a, 0x0a, 0x15, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, + 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x43, 0x4d, 0x53, 0x12, 0x1f, 0x2e, 0x67, 0x72, 0x6f, + 0x75, 0x70, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, + 0x6d, 0x62, 0x65, 0x72, 0x73, 0x43, 0x4d, 0x53, 0x52, 0x65, 0x71, 0x1a, 0x20, 0x2e, 0x67, 0x72, + 0x6f, 0x75, 0x70, 0x2e, 0x52, 0x65, 0x6d, 0x6f, 0x76, 0x65, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, + 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x43, 0x4d, 0x53, 0x52, 0x65, 0x73, 0x70, 0x12, 0x51, 0x0a, + 0x12, 0x41, 0x64, 0x64, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, + 0x43, 0x4d, 0x53, 0x12, 0x1c, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x41, 0x64, 0x64, 0x47, + 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x43, 0x4d, 0x53, 0x52, 0x65, + 0x71, 0x1a, 0x1d, 0x2e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x2e, 0x41, 0x64, 0x64, 0x47, 0x72, 0x6f, + 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x73, 0x43, 0x4d, 0x53, 0x52, 0x65, 0x73, 0x70, + 0x42, 0x0f, 0x5a, 0x0d, 0x2e, 0x2f, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x3b, 0x67, 0x72, 0x6f, 0x75, + 0x70, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, 0x33, } var ( diff --git a/pkg/proto/group/group.proto b/pkg/proto/group/group.proto index 02513d84e..082c19209 100644 --- a/pkg/proto/group/group.proto +++ b/pkg/proto/group/group.proto @@ -298,6 +298,7 @@ message RemoveGroupMembersCMSReq { string GroupId = 1; repeated string UserIds = 2; string OperationID = 3; + string OpUserId = 4; } message RemoveGroupMembersCMSResp { @@ -309,6 +310,7 @@ message AddGroupMembersCMSReq { string GroupId = 1; repeated string UserIds = 2; string OperationId = 3; + string OpUserId = 4; } message AddGroupMembersCMSResp { diff --git a/pkg/proto/message_cms/message_cms.pb.go b/pkg/proto/message_cms/message_cms.pb.go index 5a6c30d6e..317439903 100644 --- a/pkg/proto/message_cms/message_cms.pb.go +++ b/pkg/proto/message_cms/message_cms.pb.go @@ -454,8 +454,9 @@ type GetChatLogsResp struct { sizeCache protoimpl.SizeCache unknownFields protoimpl.UnknownFields - ChatLogs []*ChatLogs `protobuf:"bytes,1,rep,name=ChatLogs,proto3" json:"ChatLogs,omitempty"` - Pagination *sdk_ws.ResponsePagination `protobuf:"bytes,2,opt,name=Pagination,proto3" json:"Pagination,omitempty"` + ChatLogs []*ChatLogs `protobuf:"bytes,1,rep,name=ChatLogs,proto3" json:"ChatLogs,omitempty"` + Pagination *sdk_ws.ResponsePagination `protobuf:"bytes,2,opt,name=Pagination,proto3" json:"Pagination,omitempty"` + ChatLogsNum int32 `protobuf:"varint,3,opt,name=ChatLogsNum,proto3" json:"ChatLogsNum,omitempty"` } func (x *GetChatLogsResp) Reset() { @@ -504,6 +505,13 @@ func (x *GetChatLogsResp) GetPagination() *sdk_ws.ResponsePagination { return nil } +func (x *GetChatLogsResp) GetChatLogsNum() int32 { + if x != nil { + return x.ChatLogsNum + } + return 0 +} + type WithdrawMessageReq struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -661,7 +669,7 @@ var file_message_cms_message_cms_proto_rawDesc = []byte{ 0x09, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x44, 0x61, 0x74, 0x65, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x44, 0x61, 0x74, 0x65, 0x22, - 0x8b, 0x01, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x43, 0x68, 0x61, 0x74, 0x4c, 0x6f, 0x67, 0x73, 0x52, + 0xad, 0x01, 0x0a, 0x0f, 0x47, 0x65, 0x74, 0x43, 0x68, 0x61, 0x74, 0x4c, 0x6f, 0x67, 0x73, 0x52, 0x65, 0x73, 0x70, 0x12, 0x31, 0x0a, 0x08, 0x43, 0x68, 0x61, 0x74, 0x4c, 0x6f, 0x67, 0x73, 0x18, 0x01, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x15, 0x2e, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x63, 0x6d, 0x73, 0x2e, 0x43, 0x68, 0x61, 0x74, 0x4c, 0x6f, 0x67, 0x73, 0x52, 0x08, 0x43, 0x68, @@ -669,39 +677,41 @@ var file_message_cms_message_cms_proto_rawDesc = []byte{ 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x52, 0x0a, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x22, 0x58, 0x0a, - 0x12, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, - 0x52, 0x65, 0x71, 0x12, 0x20, 0x0a, 0x0b, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4d, 0x73, 0x67, - 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, - 0x4d, 0x73, 0x67, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x4f, 0x70, 0x65, 0x72, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x22, 0x15, 0x0a, 0x13, 0x57, 0x69, 0x74, 0x68, 0x64, - 0x72, 0x61, 0x77, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x32, 0xdb, - 0x02, 0x0a, 0x0a, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x43, 0x4d, 0x53, 0x12, 0x57, 0x0a, - 0x10, 0x42, 0x6f, 0x72, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, - 0x65, 0x12, 0x20, 0x2e, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x63, 0x6d, 0x73, 0x2e, - 0x42, 0x6f, 0x72, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, - 0x52, 0x65, 0x71, 0x1a, 0x21, 0x2e, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x63, 0x6d, + 0x6e, 0x52, 0x0a, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x20, 0x0a, + 0x0b, 0x43, 0x68, 0x61, 0x74, 0x4c, 0x6f, 0x67, 0x73, 0x4e, 0x75, 0x6d, 0x18, 0x03, 0x20, 0x01, + 0x28, 0x05, 0x52, 0x0b, 0x43, 0x68, 0x61, 0x74, 0x4c, 0x6f, 0x67, 0x73, 0x4e, 0x75, 0x6d, 0x22, + 0x58, 0x0a, 0x12, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, 0x4d, 0x65, 0x73, 0x73, 0x61, + 0x67, 0x65, 0x52, 0x65, 0x71, 0x12, 0x20, 0x0a, 0x0b, 0x53, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4d, + 0x73, 0x67, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x53, 0x65, 0x72, 0x76, + 0x65, 0x72, 0x4d, 0x73, 0x67, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x4f, 0x70, + 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x22, 0x15, 0x0a, 0x13, 0x57, 0x69, 0x74, + 0x68, 0x64, 0x72, 0x61, 0x77, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, + 0x32, 0xdb, 0x02, 0x0a, 0x0a, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x43, 0x4d, 0x53, 0x12, + 0x57, 0x0a, 0x10, 0x42, 0x6f, 0x72, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x4d, 0x65, 0x73, 0x73, + 0x61, 0x67, 0x65, 0x12, 0x20, 0x2e, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x63, 0x6d, 0x73, 0x2e, 0x42, 0x6f, 0x72, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x4d, 0x65, 0x73, 0x73, 0x61, - 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x54, 0x0a, 0x0f, 0x4d, 0x61, 0x73, 0x73, 0x53, 0x65, - 0x6e, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x1f, 0x2e, 0x6d, 0x65, 0x73, 0x73, - 0x61, 0x67, 0x65, 0x5f, 0x63, 0x6d, 0x73, 0x2e, 0x4d, 0x61, 0x73, 0x73, 0x53, 0x65, 0x6e, 0x64, - 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x20, 0x2e, 0x6d, 0x65, 0x73, - 0x73, 0x61, 0x67, 0x65, 0x5f, 0x63, 0x6d, 0x73, 0x2e, 0x4d, 0x61, 0x73, 0x73, 0x53, 0x65, 0x6e, - 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x48, 0x0a, 0x0b, - 0x47, 0x65, 0x74, 0x43, 0x68, 0x61, 0x74, 0x4c, 0x6f, 0x67, 0x73, 0x12, 0x1b, 0x2e, 0x6d, 0x65, - 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x63, 0x6d, 0x73, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x68, 0x61, - 0x74, 0x4c, 0x6f, 0x67, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x6d, 0x65, 0x73, 0x73, 0x61, - 0x67, 0x65, 0x5f, 0x63, 0x6d, 0x73, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x68, 0x61, 0x74, 0x4c, 0x6f, - 0x67, 0x73, 0x52, 0x65, 0x73, 0x70, 0x12, 0x54, 0x0a, 0x0f, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, - 0x61, 0x77, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x1f, 0x2e, 0x6d, 0x65, 0x73, 0x73, - 0x61, 0x67, 0x65, 0x5f, 0x63, 0x6d, 0x73, 0x2e, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, 0x77, - 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x20, 0x2e, 0x6d, 0x65, 0x73, - 0x73, 0x61, 0x67, 0x65, 0x5f, 0x63, 0x6d, 0x73, 0x2e, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, 0x61, - 0x77, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x42, 0x1b, 0x5a, 0x19, - 0x2e, 0x2f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x63, 0x6d, 0x73, 0x3b, 0x6d, 0x65, - 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x63, 0x6d, 0x73, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, - 0x33, + 0x67, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x21, 0x2e, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, + 0x63, 0x6d, 0x73, 0x2e, 0x42, 0x6f, 0x72, 0x61, 0x64, 0x63, 0x61, 0x73, 0x74, 0x4d, 0x65, 0x73, + 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x54, 0x0a, 0x0f, 0x4d, 0x61, 0x73, 0x73, + 0x53, 0x65, 0x6e, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x1f, 0x2e, 0x6d, 0x65, + 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x63, 0x6d, 0x73, 0x2e, 0x4d, 0x61, 0x73, 0x73, 0x53, 0x65, + 0x6e, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x20, 0x2e, 0x6d, + 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x63, 0x6d, 0x73, 0x2e, 0x4d, 0x61, 0x73, 0x73, 0x53, + 0x65, 0x6e, 0x64, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x12, 0x48, + 0x0a, 0x0b, 0x47, 0x65, 0x74, 0x43, 0x68, 0x61, 0x74, 0x4c, 0x6f, 0x67, 0x73, 0x12, 0x1b, 0x2e, + 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x63, 0x6d, 0x73, 0x2e, 0x47, 0x65, 0x74, 0x43, + 0x68, 0x61, 0x74, 0x4c, 0x6f, 0x67, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x1c, 0x2e, 0x6d, 0x65, 0x73, + 0x73, 0x61, 0x67, 0x65, 0x5f, 0x63, 0x6d, 0x73, 0x2e, 0x47, 0x65, 0x74, 0x43, 0x68, 0x61, 0x74, + 0x4c, 0x6f, 0x67, 0x73, 0x52, 0x65, 0x73, 0x70, 0x12, 0x54, 0x0a, 0x0f, 0x57, 0x69, 0x74, 0x68, + 0x64, 0x72, 0x61, 0x77, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x12, 0x1f, 0x2e, 0x6d, 0x65, + 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x63, 0x6d, 0x73, 0x2e, 0x57, 0x69, 0x74, 0x68, 0x64, 0x72, + 0x61, 0x77, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x20, 0x2e, 0x6d, + 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x63, 0x6d, 0x73, 0x2e, 0x57, 0x69, 0x74, 0x68, 0x64, + 0x72, 0x61, 0x77, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x52, 0x65, 0x73, 0x70, 0x42, 0x1b, + 0x5a, 0x19, 0x2e, 0x2f, 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x63, 0x6d, 0x73, 0x3b, + 0x6d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x5f, 0x63, 0x6d, 0x73, 0x62, 0x06, 0x70, 0x72, 0x6f, + 0x74, 0x6f, 0x33, } var ( diff --git a/pkg/proto/message_cms/message_cms.proto b/pkg/proto/message_cms/message_cms.proto index 80b5e3102..2a9647bb7 100644 --- a/pkg/proto/message_cms/message_cms.proto +++ b/pkg/proto/message_cms/message_cms.proto @@ -51,6 +51,7 @@ message ChatLogs { message GetChatLogsResp { repeated ChatLogs ChatLogs = 1; server_api_params.ResponsePagination Pagination = 2; + int32 ChatLogsNum = 3; } message WithdrawMessageReq { diff --git a/pkg/proto/user/user.pb.go b/pkg/proto/user/user.pb.go index ebe89213f..aecc22680 100644 --- a/pkg/proto/user/user.pb.go +++ b/pkg/proto/user/user.pb.go @@ -6,6 +6,7 @@ package user + import ( sdk_ws "Open_IM/pkg/proto/sdk_ws" context "context" @@ -1514,6 +1515,7 @@ type AlterUserReq struct { PhoneNumber int64 `protobuf:"varint,3,opt,name=PhoneNumber,proto3" json:"PhoneNumber,omitempty"` Nickname string `protobuf:"bytes,4,opt,name=Nickname,proto3" json:"Nickname,omitempty"` Email string `protobuf:"bytes,5,opt,name=Email,proto3" json:"Email,omitempty"` + OpUserId string `protobuf:"bytes,6,opt,name=OpUserId,proto3" json:"OpUserId,omitempty"` } func (x *AlterUserReq) Reset() { @@ -1583,6 +1585,13 @@ func (x *AlterUserReq) GetEmail() string { return "" } +func (x *AlterUserReq) GetOpUserId() string { + if x != nil { + return x.OpUserId + } + return "" +} + type AlterUserResp struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -1773,6 +1782,7 @@ type AddUserReq struct { PhoneNumber string `protobuf:"bytes,2,opt,name=PhoneNumber,proto3" json:"PhoneNumber,omitempty"` UserId string `protobuf:"bytes,3,opt,name=UserId,proto3" json:"UserId,omitempty"` Name string `protobuf:"bytes,4,opt,name=name,proto3" json:"name,omitempty"` + OpUserId string `protobuf:"bytes,5,opt,name=OpUserId,proto3" json:"OpUserId,omitempty"` } func (x *AddUserReq) Reset() { @@ -1835,6 +1845,13 @@ func (x *AddUserReq) GetName() string { return "" } +func (x *AddUserReq) GetOpUserId() string { + if x != nil { + return x.OpUserId + } + return "" +} + type AddUserResp struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -1890,6 +1907,7 @@ type BlockUserReq struct { UserId string `protobuf:"bytes,1,opt,name=UserId,proto3" json:"UserId,omitempty"` EndDisableTime string `protobuf:"bytes,2,opt,name=EndDisableTime,proto3" json:"EndDisableTime,omitempty"` OperationID string `protobuf:"bytes,3,opt,name=OperationID,proto3" json:"OperationID,omitempty"` + OpUserId string `protobuf:"bytes,4,opt,name=OpUserId,proto3" json:"OpUserId,omitempty"` } func (x *BlockUserReq) Reset() { @@ -1945,6 +1963,13 @@ func (x *BlockUserReq) GetOperationID() string { return "" } +func (x *BlockUserReq) GetOpUserId() string { + if x != nil { + return x.OpUserId + } + return "" +} + type BlockUserResp struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -1999,6 +2024,7 @@ type UnBlockUserReq struct { UserId string `protobuf:"bytes,1,opt,name=UserId,proto3" json:"UserId,omitempty"` OperationID string `protobuf:"bytes,2,opt,name=OperationID,proto3" json:"OperationID,omitempty"` + OpUserId string `protobuf:"bytes,3,opt,name=OpUserId,proto3" json:"OpUserId,omitempty"` } func (x *UnBlockUserReq) Reset() { @@ -2047,6 +2073,13 @@ func (x *UnBlockUserReq) GetOperationID() string { return "" } +func (x *UnBlockUserReq) GetOpUserId() string { + if x != nil { + return x.OpUserId + } + return "" +} + type UnBlockUserResp struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -2400,6 +2433,7 @@ type DeleteUserReq struct { UserId string `protobuf:"bytes,1,opt,name=User_id,json=UserId,proto3" json:"User_id,omitempty"` OperationID string `protobuf:"bytes,2,opt,name=OperationID,proto3" json:"OperationID,omitempty"` + OpUserId string `protobuf:"bytes,3,opt,name=OpUserId,proto3" json:"OpUserId,omitempty"` } func (x *DeleteUserReq) Reset() { @@ -2448,6 +2482,13 @@ func (x *DeleteUserReq) GetOperationID() string { return "" } +func (x *DeleteUserReq) GetOpUserId() string { + if x != nil { + return x.OpUserId + } + return "" +} + type DeleteUserResp struct { state protoimpl.MessageState sizeCache protoimpl.SizeCache @@ -2742,7 +2783,7 @@ var file_user_user_proto_rawDesc = []byte{ 0x6f, 0x6e, 0x73, 0x65, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0a, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x73, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x55, 0x73, - 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x73, 0x22, 0x9c, 0x01, 0x0a, 0x0c, 0x41, 0x6c, 0x74, 0x65, 0x72, + 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x73, 0x22, 0xb8, 0x01, 0x0a, 0x0c, 0x41, 0x6c, 0x74, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x12, 0x16, 0x0a, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x02, @@ -2752,192 +2793,201 @@ var file_user_user_proto_rawDesc = []byte{ 0x62, 0x65, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x4e, 0x69, 0x63, 0x6b, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x4e, 0x69, 0x63, 0x6b, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x14, 0x0a, 0x05, 0x45, 0x6d, 0x61, 0x69, 0x6c, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, - 0x45, 0x6d, 0x61, 0x69, 0x6c, 0x22, 0x41, 0x0a, 0x0d, 0x41, 0x6c, 0x74, 0x65, 0x72, 0x55, 0x73, - 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x12, 0x30, 0x0a, 0x0a, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, - 0x52, 0x65, 0x73, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x75, 0x73, 0x65, - 0x72, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x52, 0x0a, 0x43, 0x6f, - 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0x91, 0x01, 0x0a, 0x0b, 0x47, 0x65, 0x74, - 0x55, 0x73, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x70, 0x65, 0x72, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x4f, - 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x12, 0x44, 0x0a, 0x0a, 0x50, 0x61, - 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, - 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, - 0x6d, 0x73, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, - 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0a, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x12, 0x1a, 0x0a, 0x08, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x08, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0xc3, 0x01, 0x0a, - 0x0c, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x12, 0x30, 0x0a, - 0x0a, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x0b, 0x32, 0x10, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, - 0x65, 0x73, 0x70, 0x52, 0x0a, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x12, - 0x1e, 0x0a, 0x04, 0x75, 0x73, 0x65, 0x72, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0a, 0x2e, - 0x75, 0x73, 0x65, 0x72, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x52, 0x04, 0x75, 0x73, 0x65, 0x72, 0x12, - 0x45, 0x0a, 0x0a, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, - 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, - 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0a, 0x50, 0x61, 0x67, 0x69, - 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x75, - 0x6d, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x75, - 0x6d, 0x73, 0x22, 0x7c, 0x0a, 0x0a, 0x41, 0x64, 0x64, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, - 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, - 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x4e, 0x75, - 0x6d, 0x62, 0x65, 0x72, 0x12, 0x16, 0x0a, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, - 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, - 0x22, 0x3f, 0x0a, 0x0b, 0x41, 0x64, 0x64, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x12, - 0x30, 0x0a, 0x0a, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, - 0x6e, 0x52, 0x65, 0x73, 0x70, 0x52, 0x0a, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, - 0x70, 0x22, 0x70, 0x0a, 0x0c, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, - 0x71, 0x12, 0x16, 0x0a, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x26, 0x0a, 0x0e, 0x45, 0x6e, 0x64, - 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0e, 0x45, 0x6e, 0x64, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x54, 0x69, 0x6d, - 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x49, 0x44, 0x22, 0x41, 0x0a, 0x0d, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, - 0x52, 0x65, 0x73, 0x70, 0x12, 0x30, 0x0a, 0x0a, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, - 0x73, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, - 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x52, 0x0a, 0x43, 0x6f, 0x6d, 0x6d, - 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0x4a, 0x0a, 0x0e, 0x55, 0x6e, 0x42, 0x6c, 0x6f, 0x63, - 0x6b, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x12, 0x16, 0x0a, 0x06, 0x55, 0x73, 0x65, 0x72, - 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, - 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x49, 0x44, 0x22, 0x43, 0x0a, 0x0f, 0x55, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, - 0x72, 0x52, 0x65, 0x73, 0x70, 0x12, 0x30, 0x0a, 0x0a, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, - 0x65, 0x73, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x75, 0x73, 0x65, 0x72, - 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x52, 0x0a, 0x43, 0x6f, 0x6d, - 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0x9e, 0x01, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x42, - 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x12, 0x44, 0x0a, 0x0a, - 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x24, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, - 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x50, 0x61, 0x67, 0x69, + 0x45, 0x6d, 0x61, 0x69, 0x6c, 0x12, 0x1a, 0x0a, 0x08, 0x4f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x49, + 0x64, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x4f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x49, + 0x64, 0x22, 0x41, 0x0a, 0x0d, 0x41, 0x6c, 0x74, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, + 0x73, 0x70, 0x12, 0x30, 0x0a, 0x0a, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, + 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x43, 0x6f, + 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x52, 0x0a, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, + 0x52, 0x65, 0x73, 0x70, 0x22, 0x91, 0x01, 0x0a, 0x0b, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, + 0x73, 0x52, 0x65, 0x71, 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x12, 0x44, 0x0a, 0x0a, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x73, 0x65, 0x72, + 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x52, + 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, + 0x52, 0x0a, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1a, 0x0a, 0x08, + 0x55, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, + 0x55, 0x73, 0x65, 0x72, 0x4e, 0x61, 0x6d, 0x65, 0x22, 0xc3, 0x01, 0x0a, 0x0c, 0x47, 0x65, 0x74, + 0x55, 0x73, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x12, 0x30, 0x0a, 0x0a, 0x43, 0x6f, 0x6d, + 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, + 0x75, 0x73, 0x65, 0x72, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x52, + 0x0a, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x12, 0x1e, 0x0a, 0x04, 0x75, + 0x73, 0x65, 0x72, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x75, 0x73, 0x65, 0x72, + 0x2e, 0x55, 0x73, 0x65, 0x72, 0x52, 0x04, 0x75, 0x73, 0x65, 0x72, 0x12, 0x45, 0x0a, 0x0a, 0x50, + 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, + 0x25, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, + 0x61, 0x6d, 0x73, 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0a, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, - 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x49, 0x44, 0x12, 0x22, 0x0a, 0x0c, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, - 0x72, 0x4e, 0x75, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x42, 0x6c, 0x6f, 0x63, - 0x6b, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x22, 0x7f, 0x0a, 0x09, 0x42, 0x6c, 0x6f, 0x63, - 0x6b, 0x55, 0x73, 0x65, 0x72, 0x12, 0x1e, 0x0a, 0x04, 0x55, 0x73, 0x65, 0x72, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x52, - 0x04, 0x55, 0x73, 0x65, 0x72, 0x12, 0x2a, 0x0a, 0x10, 0x42, 0x65, 0x67, 0x69, 0x6e, 0x44, 0x69, - 0x73, 0x61, 0x62, 0x6c, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x10, 0x42, 0x65, 0x67, 0x69, 0x6e, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x54, 0x69, 0x6d, - 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x45, 0x6e, 0x64, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x54, - 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x45, 0x6e, 0x64, 0x44, 0x69, - 0x73, 0x61, 0x62, 0x6c, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x22, 0xd9, 0x01, 0x0a, 0x11, 0x47, 0x65, - 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x12, - 0x30, 0x0a, 0x0a, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, - 0x6e, 0x52, 0x65, 0x73, 0x70, 0x52, 0x0a, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, - 0x70, 0x12, 0x2f, 0x0a, 0x0a, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x73, 0x18, - 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x42, 0x6c, 0x6f, - 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x52, 0x0a, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, - 0x72, 0x73, 0x12, 0x45, 0x0a, 0x0a, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, - 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x52, 0x65, 0x73, 0x70, 0x6f, - 0x6e, 0x73, 0x65, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0a, 0x50, - 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x55, 0x73, 0x65, - 0x72, 0x4e, 0x75, 0x6d, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x55, 0x73, 0x65, - 0x72, 0x4e, 0x75, 0x6d, 0x73, 0x22, 0x50, 0x0a, 0x13, 0x47, 0x65, 0x74, 0x42, 0x6c, 0x6f, 0x63, - 0x6b, 0x55, 0x73, 0x65, 0x72, 0x42, 0x79, 0x49, 0x64, 0x52, 0x65, 0x71, 0x12, 0x17, 0x0a, 0x07, - 0x55, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x55, - 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x4f, 0x70, 0x65, 0x72, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x22, 0x45, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x42, 0x6c, - 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x42, 0x79, 0x49, 0x64, 0x52, 0x65, 0x73, 0x70, 0x12, - 0x2d, 0x0a, 0x09, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, - 0x73, 0x65, 0x72, 0x52, 0x09, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x22, 0x4a, - 0x0a, 0x0d, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x12, - 0x17, 0x0a, 0x07, 0x55, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x70, 0x65, 0x72, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x4f, - 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x22, 0x10, 0x0a, 0x0e, 0x44, 0x65, - 0x6c, 0x65, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x32, 0xdd, 0x09, 0x0a, - 0x04, 0x75, 0x73, 0x65, 0x72, 0x12, 0x3a, 0x0a, 0x0b, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, - 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x14, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x47, 0x65, 0x74, 0x55, - 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x1a, 0x15, 0x2e, 0x75, 0x73, 0x65, - 0x72, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, - 0x70, 0x12, 0x43, 0x0a, 0x0e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x49, - 0x6e, 0x66, 0x6f, 0x12, 0x17, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, - 0x65, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x1a, 0x18, 0x2e, 0x75, - 0x73, 0x65, 0x72, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, - 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x12, 0x3a, 0x0a, 0x0b, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, - 0x55, 0x73, 0x65, 0x72, 0x73, 0x12, 0x14, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x44, 0x65, 0x6c, - 0x65, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x15, 0x2e, 0x75, 0x73, - 0x65, 0x72, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x73, 0x52, 0x65, - 0x73, 0x70, 0x12, 0x3d, 0x0a, 0x0c, 0x47, 0x65, 0x74, 0x41, 0x6c, 0x6c, 0x55, 0x73, 0x65, 0x72, - 0x49, 0x44, 0x12, 0x15, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x6c, 0x6c, - 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x52, 0x65, 0x71, 0x1a, 0x16, 0x2e, 0x75, 0x73, 0x65, 0x72, - 0x2e, 0x47, 0x65, 0x74, 0x41, 0x6c, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x52, 0x65, 0x73, - 0x70, 0x12, 0x55, 0x0a, 0x14, 0x53, 0x65, 0x74, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x4d, - 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4f, 0x70, 0x74, 0x12, 0x1d, 0x2e, 0x75, 0x73, 0x65, 0x72, - 0x2e, 0x53, 0x65, 0x74, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, - 0x67, 0x65, 0x4f, 0x70, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x1e, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, - 0x53, 0x65, 0x74, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, - 0x65, 0x4f, 0x70, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x55, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x52, - 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4f, 0x70, 0x74, - 0x12, 0x1d, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x65, 0x63, 0x65, 0x69, - 0x76, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4f, 0x70, 0x74, 0x52, 0x65, 0x71, 0x1a, - 0x1e, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, - 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4f, 0x70, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, - 0x61, 0x0a, 0x18, 0x47, 0x65, 0x74, 0x41, 0x6c, 0x6c, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x73, 0x67, 0x4f, 0x70, 0x74, 0x12, 0x21, 0x2e, 0x75, 0x73, - 0x65, 0x72, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x6c, 0x6c, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x73, 0x67, 0x4f, 0x70, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x22, - 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x6c, 0x6c, 0x43, 0x6f, 0x6e, 0x76, - 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x73, 0x67, 0x4f, 0x70, 0x74, 0x52, 0x65, - 0x73, 0x70, 0x12, 0x3d, 0x0a, 0x0c, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x43, 0x68, 0x65, - 0x63, 0x6b, 0x12, 0x15, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, - 0x74, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x52, 0x65, 0x71, 0x1a, 0x16, 0x2e, 0x75, 0x73, 0x65, 0x72, - 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x52, 0x65, 0x73, - 0x70, 0x12, 0x3a, 0x0a, 0x0b, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x42, 0x79, 0x49, 0x64, - 0x12, 0x14, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x42, - 0x79, 0x49, 0x64, 0x52, 0x65, 0x71, 0x1a, 0x15, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x47, 0x65, - 0x74, 0x55, 0x73, 0x65, 0x72, 0x42, 0x79, 0x49, 0x64, 0x52, 0x65, 0x73, 0x70, 0x12, 0x43, 0x0a, - 0x0e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x73, 0x42, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, - 0x17, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x73, 0x42, - 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x18, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, - 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x73, 0x42, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x52, 0x65, - 0x73, 0x70, 0x12, 0x37, 0x0a, 0x0a, 0x52, 0x65, 0x73, 0x69, 0x67, 0x6e, 0x55, 0x73, 0x65, 0x72, - 0x12, 0x13, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x52, 0x65, 0x73, 0x69, 0x67, 0x6e, 0x55, 0x73, - 0x65, 0x72, 0x52, 0x65, 0x71, 0x1a, 0x14, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x52, 0x65, 0x73, - 0x69, 0x67, 0x6e, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x12, 0x34, 0x0a, 0x09, 0x41, - 0x6c, 0x74, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x12, 0x12, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, - 0x41, 0x6c, 0x74, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x1a, 0x13, 0x2e, 0x75, - 0x73, 0x65, 0x72, 0x2e, 0x41, 0x6c, 0x74, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, - 0x70, 0x12, 0x31, 0x0a, 0x08, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x73, 0x12, 0x11, 0x2e, - 0x75, 0x73, 0x65, 0x72, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, - 0x1a, 0x12, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x73, - 0x52, 0x65, 0x73, 0x70, 0x12, 0x2e, 0x0a, 0x07, 0x41, 0x64, 0x64, 0x55, 0x73, 0x65, 0x72, 0x12, - 0x10, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x41, 0x64, 0x64, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, - 0x71, 0x1a, 0x11, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x41, 0x64, 0x64, 0x55, 0x73, 0x65, 0x72, - 0x52, 0x65, 0x73, 0x70, 0x12, 0x34, 0x0a, 0x09, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, - 0x72, 0x12, 0x12, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, - 0x65, 0x72, 0x52, 0x65, 0x71, 0x1a, 0x13, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x42, 0x6c, 0x6f, - 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x12, 0x3a, 0x0a, 0x0b, 0x55, 0x6e, - 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x12, 0x14, 0x2e, 0x75, 0x73, 0x65, 0x72, - 0x2e, 0x55, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x1a, - 0x15, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x55, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, - 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x12, 0x40, 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x42, 0x6c, 0x6f, - 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x73, 0x12, 0x16, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x47, - 0x65, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x1a, - 0x17, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x47, 0x65, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, - 0x73, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x12, 0x49, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x42, - 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x42, 0x79, 0x49, 0x64, 0x12, 0x19, 0x2e, 0x75, - 0x73, 0x65, 0x72, 0x2e, 0x47, 0x65, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, - 0x42, 0x79, 0x49, 0x64, 0x52, 0x65, 0x71, 0x1a, 0x1a, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x47, - 0x65, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x42, 0x79, 0x49, 0x64, 0x52, - 0x65, 0x73, 0x70, 0x12, 0x37, 0x0a, 0x0a, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x55, 0x73, 0x65, - 0x72, 0x12, 0x13, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x55, - 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x1a, 0x14, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x44, 0x65, - 0x6c, 0x65, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x42, 0x0d, 0x5a, 0x0b, - 0x2e, 0x2f, 0x75, 0x73, 0x65, 0x72, 0x3b, 0x75, 0x73, 0x65, 0x72, 0x62, 0x06, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x33, + 0x6f, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x73, 0x18, 0x04, + 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x73, 0x22, 0x98, + 0x01, 0x0a, 0x0a, 0x41, 0x64, 0x64, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x12, 0x20, 0x0a, + 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x12, + 0x20, 0x0a, 0x0b, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x50, 0x68, 0x6f, 0x6e, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, + 0x72, 0x12, 0x16, 0x0a, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x12, 0x0a, 0x04, 0x6e, 0x61, 0x6d, + 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1a, 0x0a, + 0x08, 0x4f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x08, 0x4f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x22, 0x3f, 0x0a, 0x0b, 0x41, 0x64, 0x64, + 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x12, 0x30, 0x0a, 0x0a, 0x43, 0x6f, 0x6d, 0x6d, + 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x75, + 0x73, 0x65, 0x72, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x52, 0x0a, + 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0x8c, 0x01, 0x0a, 0x0c, 0x42, + 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x12, 0x16, 0x0a, 0x06, 0x55, + 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x55, 0x73, 0x65, + 0x72, 0x49, 0x64, 0x12, 0x26, 0x0a, 0x0e, 0x45, 0x6e, 0x64, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, + 0x65, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x45, 0x6e, 0x64, + 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, 0x4f, + 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, + 0x52, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x12, 0x1a, 0x0a, + 0x08, 0x4f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x08, 0x4f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x22, 0x41, 0x0a, 0x0d, 0x42, 0x6c, 0x6f, + 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x12, 0x30, 0x0a, 0x0a, 0x43, 0x6f, + 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, + 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, + 0x52, 0x0a, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0x66, 0x0a, 0x0e, + 0x55, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x12, 0x16, + 0x0a, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, + 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x4f, 0x70, 0x65, + 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x4f, 0x70, 0x55, 0x73, + 0x65, 0x72, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x4f, 0x70, 0x55, 0x73, + 0x65, 0x72, 0x49, 0x64, 0x22, 0x43, 0x0a, 0x0f, 0x55, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, + 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x12, 0x30, 0x0a, 0x0a, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, + 0x6e, 0x52, 0x65, 0x73, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x75, 0x73, + 0x65, 0x72, 0x2e, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x52, 0x0a, 0x43, + 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x22, 0x9e, 0x01, 0x0a, 0x10, 0x47, 0x65, + 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x12, 0x44, + 0x0a, 0x0a, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x0b, 0x32, 0x24, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, + 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x50, 0x61, + 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x0a, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, + 0x6e, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x12, 0x22, 0x0a, 0x0c, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, + 0x73, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x42, 0x6c, + 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x22, 0x7f, 0x0a, 0x09, 0x42, 0x6c, + 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x12, 0x1e, 0x0a, 0x04, 0x55, 0x73, 0x65, 0x72, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0a, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x55, 0x73, 0x65, + 0x72, 0x52, 0x04, 0x55, 0x73, 0x65, 0x72, 0x12, 0x2a, 0x0a, 0x10, 0x42, 0x65, 0x67, 0x69, 0x6e, + 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, + 0x09, 0x52, 0x10, 0x42, 0x65, 0x67, 0x69, 0x6e, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x54, + 0x69, 0x6d, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x45, 0x6e, 0x64, 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, + 0x65, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x45, 0x6e, 0x64, + 0x44, 0x69, 0x73, 0x61, 0x62, 0x6c, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x22, 0xd9, 0x01, 0x0a, 0x11, + 0x47, 0x65, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, + 0x70, 0x12, 0x30, 0x0a, 0x0a, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x18, + 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x10, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x43, 0x6f, 0x6d, + 0x6d, 0x6f, 0x6e, 0x52, 0x65, 0x73, 0x70, 0x52, 0x0a, 0x43, 0x6f, 0x6d, 0x6d, 0x6f, 0x6e, 0x52, + 0x65, 0x73, 0x70, 0x12, 0x2f, 0x0a, 0x0a, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, + 0x73, 0x18, 0x02, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x42, + 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x52, 0x0a, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, + 0x73, 0x65, 0x72, 0x73, 0x12, 0x45, 0x0a, 0x0a, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, + 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x25, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, + 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x52, 0x65, 0x73, + 0x70, 0x6f, 0x6e, 0x73, 0x65, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, + 0x0a, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1a, 0x0a, 0x08, 0x55, + 0x73, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x73, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x55, + 0x73, 0x65, 0x72, 0x4e, 0x75, 0x6d, 0x73, 0x22, 0x50, 0x0a, 0x13, 0x47, 0x65, 0x74, 0x42, 0x6c, + 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x42, 0x79, 0x49, 0x64, 0x52, 0x65, 0x71, 0x12, 0x17, + 0x0a, 0x07, 0x55, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, + 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x4f, 0x70, + 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x22, 0x45, 0x0a, 0x14, 0x47, 0x65, 0x74, + 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x42, 0x79, 0x49, 0x64, 0x52, 0x65, 0x73, + 0x70, 0x12, 0x2d, 0x0a, 0x09, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x18, 0x02, + 0x20, 0x01, 0x28, 0x0b, 0x32, 0x0f, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x42, 0x6c, 0x6f, 0x63, + 0x6b, 0x55, 0x73, 0x65, 0x72, 0x52, 0x09, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, + 0x22, 0x66, 0x0a, 0x0d, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, + 0x71, 0x12, 0x17, 0x0a, 0x07, 0x55, 0x73, 0x65, 0x72, 0x5f, 0x69, 0x64, 0x18, 0x01, 0x20, 0x01, + 0x28, 0x09, 0x52, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x12, 0x20, 0x0a, 0x0b, 0x4f, 0x70, + 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, + 0x0b, 0x4f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, + 0x4f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, + 0x4f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x49, 0x64, 0x22, 0x10, 0x0a, 0x0e, 0x44, 0x65, 0x6c, 0x65, + 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x32, 0xdd, 0x09, 0x0a, 0x04, 0x75, + 0x73, 0x65, 0x72, 0x12, 0x3a, 0x0a, 0x0b, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, + 0x66, 0x6f, 0x12, 0x14, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, + 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x1a, 0x15, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, + 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x73, 0x70, 0x12, + 0x43, 0x0a, 0x0e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, + 0x6f, 0x12, 0x17, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x55, + 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x65, 0x71, 0x1a, 0x18, 0x2e, 0x75, 0x73, 0x65, + 0x72, 0x2e, 0x55, 0x70, 0x64, 0x61, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, + 0x52, 0x65, 0x73, 0x70, 0x12, 0x3a, 0x0a, 0x0b, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x55, 0x73, + 0x65, 0x72, 0x73, 0x12, 0x14, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, + 0x65, 0x55, 0x73, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x15, 0x2e, 0x75, 0x73, 0x65, 0x72, + 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, + 0x12, 0x3d, 0x0a, 0x0c, 0x47, 0x65, 0x74, 0x41, 0x6c, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, + 0x12, 0x15, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x6c, 0x6c, 0x55, 0x73, + 0x65, 0x72, 0x49, 0x44, 0x52, 0x65, 0x71, 0x1a, 0x16, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x47, + 0x65, 0x74, 0x41, 0x6c, 0x6c, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x52, 0x65, 0x73, 0x70, 0x12, + 0x55, 0x0a, 0x14, 0x53, 0x65, 0x74, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x4d, 0x65, 0x73, + 0x73, 0x61, 0x67, 0x65, 0x4f, 0x70, 0x74, 0x12, 0x1d, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x53, + 0x65, 0x74, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, + 0x4f, 0x70, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x1e, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x53, 0x65, + 0x74, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4f, + 0x70, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x55, 0x0a, 0x14, 0x47, 0x65, 0x74, 0x52, 0x65, 0x63, + 0x65, 0x69, 0x76, 0x65, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4f, 0x70, 0x74, 0x12, 0x1d, + 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, + 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4f, 0x70, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x1e, 0x2e, + 0x75, 0x73, 0x65, 0x72, 0x2e, 0x47, 0x65, 0x74, 0x52, 0x65, 0x63, 0x65, 0x69, 0x76, 0x65, 0x4d, + 0x65, 0x73, 0x73, 0x61, 0x67, 0x65, 0x4f, 0x70, 0x74, 0x52, 0x65, 0x73, 0x70, 0x12, 0x61, 0x0a, + 0x18, 0x47, 0x65, 0x74, 0x41, 0x6c, 0x6c, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x4d, 0x73, 0x67, 0x4f, 0x70, 0x74, 0x12, 0x21, 0x2e, 0x75, 0x73, 0x65, 0x72, + 0x2e, 0x47, 0x65, 0x74, 0x41, 0x6c, 0x6c, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, + 0x69, 0x6f, 0x6e, 0x4d, 0x73, 0x67, 0x4f, 0x70, 0x74, 0x52, 0x65, 0x71, 0x1a, 0x22, 0x2e, 0x75, + 0x73, 0x65, 0x72, 0x2e, 0x47, 0x65, 0x74, 0x41, 0x6c, 0x6c, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, + 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x4d, 0x73, 0x67, 0x4f, 0x70, 0x74, 0x52, 0x65, 0x73, 0x70, + 0x12, 0x3d, 0x0a, 0x0c, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x43, 0x68, 0x65, 0x63, 0x6b, + 0x12, 0x15, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x41, 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x43, + 0x68, 0x65, 0x63, 0x6b, 0x52, 0x65, 0x71, 0x1a, 0x16, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x41, + 0x63, 0x63, 0x6f, 0x75, 0x6e, 0x74, 0x43, 0x68, 0x65, 0x63, 0x6b, 0x52, 0x65, 0x73, 0x70, 0x12, + 0x3a, 0x0a, 0x0b, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x42, 0x79, 0x49, 0x64, 0x12, 0x14, + 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x42, 0x79, 0x49, + 0x64, 0x52, 0x65, 0x71, 0x1a, 0x15, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x47, 0x65, 0x74, 0x55, + 0x73, 0x65, 0x72, 0x42, 0x79, 0x49, 0x64, 0x52, 0x65, 0x73, 0x70, 0x12, 0x43, 0x0a, 0x0e, 0x47, + 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x73, 0x42, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x17, 0x2e, + 0x75, 0x73, 0x65, 0x72, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x73, 0x42, 0x79, 0x4e, + 0x61, 0x6d, 0x65, 0x52, 0x65, 0x71, 0x1a, 0x18, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x47, 0x65, + 0x74, 0x55, 0x73, 0x65, 0x72, 0x73, 0x42, 0x79, 0x4e, 0x61, 0x6d, 0x65, 0x52, 0x65, 0x73, 0x70, + 0x12, 0x37, 0x0a, 0x0a, 0x52, 0x65, 0x73, 0x69, 0x67, 0x6e, 0x55, 0x73, 0x65, 0x72, 0x12, 0x13, + 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x52, 0x65, 0x73, 0x69, 0x67, 0x6e, 0x55, 0x73, 0x65, 0x72, + 0x52, 0x65, 0x71, 0x1a, 0x14, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x52, 0x65, 0x73, 0x69, 0x67, + 0x6e, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x12, 0x34, 0x0a, 0x09, 0x41, 0x6c, 0x74, + 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x12, 0x12, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x41, 0x6c, + 0x74, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x1a, 0x13, 0x2e, 0x75, 0x73, 0x65, + 0x72, 0x2e, 0x41, 0x6c, 0x74, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x12, + 0x31, 0x0a, 0x08, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x73, 0x12, 0x11, 0x2e, 0x75, 0x73, + 0x65, 0x72, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x12, + 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x47, 0x65, 0x74, 0x55, 0x73, 0x65, 0x72, 0x73, 0x52, 0x65, + 0x73, 0x70, 0x12, 0x2e, 0x0a, 0x07, 0x41, 0x64, 0x64, 0x55, 0x73, 0x65, 0x72, 0x12, 0x10, 0x2e, + 0x75, 0x73, 0x65, 0x72, 0x2e, 0x41, 0x64, 0x64, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x1a, + 0x11, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x41, 0x64, 0x64, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, + 0x73, 0x70, 0x12, 0x34, 0x0a, 0x09, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x12, + 0x12, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, + 0x52, 0x65, 0x71, 0x1a, 0x13, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, + 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x12, 0x3a, 0x0a, 0x0b, 0x55, 0x6e, 0x42, 0x6c, + 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x12, 0x14, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x55, + 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x71, 0x1a, 0x15, 0x2e, + 0x75, 0x73, 0x65, 0x72, 0x2e, 0x55, 0x6e, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, + 0x52, 0x65, 0x73, 0x70, 0x12, 0x40, 0x0a, 0x0d, 0x47, 0x65, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, + 0x55, 0x73, 0x65, 0x72, 0x73, 0x12, 0x16, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x47, 0x65, 0x74, + 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x73, 0x52, 0x65, 0x71, 0x1a, 0x17, 0x2e, + 0x75, 0x73, 0x65, 0x72, 0x2e, 0x47, 0x65, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, + 0x72, 0x73, 0x52, 0x65, 0x73, 0x70, 0x12, 0x49, 0x0a, 0x10, 0x47, 0x65, 0x74, 0x42, 0x6c, 0x6f, + 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x42, 0x79, 0x49, 0x64, 0x12, 0x19, 0x2e, 0x75, 0x73, 0x65, + 0x72, 0x2e, 0x47, 0x65, 0x74, 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x42, 0x79, + 0x49, 0x64, 0x52, 0x65, 0x71, 0x1a, 0x1a, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x47, 0x65, 0x74, + 0x42, 0x6c, 0x6f, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x42, 0x79, 0x49, 0x64, 0x52, 0x65, 0x73, + 0x70, 0x12, 0x37, 0x0a, 0x0a, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x12, + 0x13, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x55, 0x73, 0x65, + 0x72, 0x52, 0x65, 0x71, 0x1a, 0x14, 0x2e, 0x75, 0x73, 0x65, 0x72, 0x2e, 0x44, 0x65, 0x6c, 0x65, + 0x74, 0x65, 0x55, 0x73, 0x65, 0x72, 0x52, 0x65, 0x73, 0x70, 0x42, 0x0d, 0x5a, 0x0b, 0x2e, 0x2f, + 0x75, 0x73, 0x65, 0x72, 0x3b, 0x75, 0x73, 0x65, 0x72, 0x62, 0x06, 0x70, 0x72, 0x6f, 0x74, 0x6f, + 0x33, } var ( diff --git a/pkg/proto/user/user.proto b/pkg/proto/user/user.proto index 649cd2f74..298b8da84 100644 --- a/pkg/proto/user/user.proto +++ b/pkg/proto/user/user.proto @@ -152,6 +152,7 @@ message AlterUserReq{ int64 PhoneNumber = 3; string Nickname = 4; string Email = 5; + string OpUserId = 6; } message AlterUserResp{ @@ -176,6 +177,7 @@ message AddUserReq{ string PhoneNumber = 2; string UserId = 3; string name = 4; + string OpUserId = 5; } message AddUserResp{ @@ -187,6 +189,7 @@ message BlockUserReq{ string UserId = 1; string EndDisableTime = 2; string OperationID = 3; + string OpUserId = 4; } message BlockUserResp{ @@ -196,6 +199,7 @@ message BlockUserResp{ message UnBlockUserReq{ string UserId = 1; string OperationID = 2; + string OpUserId = 3; } message UnBlockUserResp{ @@ -233,6 +237,7 @@ message GetBlockUserByIdResp { message DeleteUserReq { string User_id = 1; string OperationID = 2; + string OpUserId = 3; } message DeleteUserResp { From 68e7dfb1cce2b3ee66bb861882123a8d8be235c1 Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Fri, 18 Feb 2022 12:56:43 +0800 Subject: [PATCH 668/814] conversation add --- pkg/common/db/model_struct.go | 13 +++++++++++++ pkg/common/db/mysql.go | 6 +++++- 2 files changed, 18 insertions(+), 1 deletion(-) diff --git a/pkg/common/db/model_struct.go b/pkg/common/db/model_struct.go index 9381717df..c7d57ea87 100644 --- a/pkg/common/db/model_struct.go +++ b/pkg/common/db/model_struct.go @@ -199,3 +199,16 @@ type BlackList struct { BeginDisableTime time.Time `gorm:"column:begin_disable_time"` EndDisableTime time.Time `gorm:"column:end_disable_time"` } +type Conversation struct { + OwnerUserID string `gorm:"column:owner_user_id;primary_key;type:char(128)" json:"OwnerUserID"` + ConversationID string `gorm:"column:conversation_id;primary_key;type:char(128)" json:"conversationID"` + ConversationType int32 `gorm:"column:conversation_type" json:"conversationType"` + UserID string `gorm:"column:user_id;type:char(64)" json:"userID"` + GroupID string `gorm:"column:group_id;type:char(128)" json:"groupID"` + RecvMsgOpt int32 `gorm:"column:recv_msg_opt" json:"recvMsgOpt"` + UnreadCount int32 `gorm:"column:unread_count" json:"unreadCount"` + DraftTextTime int64 `gorm:"column:draft_text_time" json:"draftTextTime"` + IsPinned bool `gorm:"column:is_pinned" json:"isPinned"` + AttachedInfo string `gorm:"column:attached_info;type:varchar(1024)" json:"attachedInfo"` + Ex string `gorm:"column:ex;type:varchar(1024)" json:"ex"` +} diff --git a/pkg/common/db/mysql.go b/pkg/common/db/mysql.go index 1b48bfb93..ad35cd5da 100644 --- a/pkg/common/db/mysql.go +++ b/pkg/common/db/mysql.go @@ -59,7 +59,7 @@ func initMysqlDB() { &GroupMember{}, &GroupRequest{}, &User{}, - &Black{}, &ChatLog{}, &Register{}) + &Black{}, &ChatLog{}, &Register{}, &Conversation{}) db.Set("gorm:table_options", "CHARSET=utf8") db.Set("gorm:table_options", "collation=utf8_unicode_ci") @@ -105,6 +105,10 @@ func initMysqlDB() { log.NewInfo("CreateTable Black") db.CreateTable(&Register{}) } + if !db.HasTable(&Conversation{}) { + log.NewInfo("CreateTable Black") + db.CreateTable(&Conversation{}) + } return From e90d8a87ee201e26cae3ec2a68604182a77337ca Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Fri, 18 Feb 2022 15:16:33 +0800 Subject: [PATCH 669/814] config --- config/config.yaml | 2 ++ pkg/common/config/config.go | 7 +++++-- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/config/config.yaml b/config/config.yaml index f40bfa62a..9b735520c 100644 --- a/config/config.yaml +++ b/config/config.yaml @@ -173,6 +173,8 @@ messagecallback: callbackUrl: "http://www.xxx.com/msg/judge" #TimeOut use second as unit callbackTimeOut: 10 +messagejudge: + isJudgeFriend: true # c2c: # callbackBeforeSendMsg: # switch: false diff --git a/pkg/common/config/config.go b/pkg/common/config/config.go index 7ca4e4afb..f6049009d 100644 --- a/pkg/common/config/config.go +++ b/pkg/common/config/config.go @@ -85,7 +85,7 @@ type config struct { OpenImOnlineMessageRelayName string `yaml:"openImOnlineMessageRelayName"` OpenImGroupName string `yaml:"openImGroupName"` OpenImAuthName string `yaml:"openImAuthName"` - OpenImMessageCMSName string `yaml:"openImMessageCMSName"` + OpenImMessageCMSName string `yaml:"openImMessageCMSName"` OpenImAdminCMSName string `yaml:"openImAdminCMSName"` } Etcd struct { @@ -162,6 +162,9 @@ type config struct { CallbackUrl string `yaml:"callbackUrl"` CallBackTimeOut int `yaml:"callbackTimeOut"` } + MessageJudge struct { + IsJudgeFriend bool `yaml:"isJudgeFriend"` + } IOSPush struct { PushSound string `yaml:"pushSound"` BadgeCount bool `yaml:"badgeCount"` @@ -278,7 +281,7 @@ type config struct { OfflinePush POfflinePush `yaml:"offlinePush"` DefaultTips PDefaultTips `yaml:"defaultTips"` } `yaml:"blackDeleted"` - ConversationOptUpdate struct{ + ConversationOptUpdate struct { Conversation PConversation `yaml:"conversation"` OfflinePush POfflinePush `yaml:"offlinePush"` DefaultTips PDefaultTips `yaml:"defaultTips"` From 6e9b9341d453f9115df3b514c41577b31639631c Mon Sep 17 00:00:00 2001 From: wangchuxiao Date: Fri, 18 Feb 2022 17:06:27 +0800 Subject: [PATCH 670/814] mini cr --- cmd/open_im_api/main.go | 1 + go.mod | 3 +- go.sum | 19 +++++++++++- .../api/third/minio_storage_credential.go | 29 +++++++++++++++++++ pkg/base_info/minio_api_struct.go | 12 ++++++++ 5 files changed, 62 insertions(+), 2 deletions(-) create mode 100644 internal/api/third/minio_storage_credential.go create mode 100644 pkg/base_info/minio_api_struct.go diff --git a/cmd/open_im_api/main.go b/cmd/open_im_api/main.go index 7172ac393..d5c01986b 100644 --- a/cmd/open_im_api/main.go +++ b/cmd/open_im_api/main.go @@ -77,6 +77,7 @@ func main() { thirdGroup := r.Group("/third") { thirdGroup.POST("/tencent_cloud_storage_credential", apiThird.TencentCloudStorageCredential) + thirdGroup.POST("/minio_storage_credential", apiThird.MinioStorageCredential) } //Message chatGroup := r.Group("/msg") diff --git a/go.mod b/go.mod index 6cb3f4412..75e85fb3f 100644 --- a/go.mod +++ b/go.mod @@ -10,10 +10,10 @@ require ( github.com/alibabacloud-go/tea v1.1.17 github.com/antonfisher/nested-logrus-formatter v1.3.0 github.com/bwmarrin/snowflake v0.3.0 - github.com/dustin/go-humanize v1.0.0 // indirect github.com/eapache/go-resiliency v1.2.0 // indirect github.com/eapache/go-xerial-snappy v0.0.0-20180814174437-776d5712da21 // indirect github.com/eapache/queue v1.1.0 // indirect + github.com/fatih/structs v1.1.0 github.com/frankban/quicktest v1.14.0 // indirect github.com/garyburd/redigo v1.6.2 github.com/gin-gonic/gin v1.7.0 @@ -31,6 +31,7 @@ require ( github.com/lestrrat-go/strftime v1.0.4 // indirect github.com/lib/pq v1.2.0 // indirect github.com/mattn/go-sqlite3 v1.14.6 // indirect + github.com/minio/minio-go/v7 v7.0.22 github.com/mitchellh/mapstructure v1.4.2 github.com/nfnt/resize v0.0.0-20180221191011-83c6a9932646 github.com/olivere/elastic/v7 v7.0.23 diff --git a/go.sum b/go.sum index a708e28db..8a47f8dd0 100644 --- a/go.sum +++ b/go.sum @@ -125,6 +125,8 @@ github.com/erikstmartin/go-testdb v0.0.0-20160219214506-8d10e4a1bae5 h1:Yzb9+7DP github.com/erikstmartin/go-testdb v0.0.0-20160219214506-8d10e4a1bae5/go.mod h1:a2zkGnVExMxdzMo3M0Hi/3sEU+cWnZpSni0O6/Yb/P0= github.com/fatih/color v1.7.0/go.mod h1:Zm6kSWBoL9eyXnKyktHP6abPY2pDugNf5KwzbycvMj4= github.com/fatih/color v1.9.0/go.mod h1:eQcE1qtQxscV5RaZvpXrrb8Drkc3/DdQ+uUYCNjL+zU= +github.com/fatih/structs v1.1.0 h1:Q7juDM0QtcnhCpeyLGQKyg4TOIghuNXrkL32pHAUMxo= +github.com/fatih/structs v1.1.0/go.mod h1:9NiDSp5zOcgEDl+j00MP/WkGVPOlPRLejGD8Ga6PJ7M= github.com/fortytw2/leaktest v1.3.0 h1:u8491cBMTQ8ft8aeV+adlcytMZylmA5nnwwkRZjI8vw= github.com/fortytw2/leaktest v1.3.0/go.mod h1:jDsjWgpAGjm2CA7WthBh/CdZYEPF31XHquHwclZch5g= github.com/frankban/quicktest v1.14.0 h1:+cqqvzZV87b4adx/5ayVOaYZ2CrvM4ejQvUdBzPPUss= @@ -237,8 +239,9 @@ github.com/google/pprof v0.0.0-20210601050228-01bbb1931b22/go.mod h1:kpwsk12EmLe github.com/google/pprof v0.0.0-20210609004039-a478d1d731e9/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= github.com/google/pprof v0.0.0-20210720184732-4bb14d4b1be1/go.mod h1:kpwsk12EmLew5upagYY7GY0pfYCcupk39gWOCRROcvE= github.com/google/renameio v0.1.0/go.mod h1:KWCgfxg9yswjAJkECMjeO8J8rahYeXnNhOm40UhjYkI= -github.com/google/uuid v1.0.0 h1:b4Gk+7WdP/d3HZH8EJsZpvV7EtDOgaZLtnaNGIu1adA= github.com/google/uuid v1.0.0/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= +github.com/google/uuid v1.1.1 h1:Gkbcsh/GbpXz7lPftLA3P6TYMwjCLYm83jiFQZF/3gY= +github.com/google/uuid v1.1.1/go.mod h1:TIyPZe4MgqvfeYDBFedMoGGpEw/LqOeaOT+nhxU+yHo= github.com/googleapis/gax-go/v2 v2.0.4/go.mod h1:0Wqv26UfaUD9n4G6kQubkQ+KchISgw+vpHVxEJEs9eg= github.com/googleapis/gax-go/v2 v2.0.5/go.mod h1:DWXyrwAJ9X0FpwwEdw+IPEYBICEFu5mhpdKc/us6bOk= github.com/googleapis/gax-go/v2 v2.1.0/go.mod h1:Q3nei7sK6ybPYH7twZdmQpAd1MKb7pfu6SK+H1/DsU0= @@ -308,6 +311,9 @@ github.com/julienschmidt/httprouter v1.2.0/go.mod h1:SYymIcj16QtmaHHD7aYtjjsJG7V github.com/kisielk/errcheck v1.1.0/go.mod h1:EZBBE59ingxPouuu3KfxchcWSUPOHkagtvWXihfKN4Q= github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8= github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= +github.com/klauspost/compress v1.13.5/go.mod h1:/3/Vjq9QcHkK5uEr5lBEmyoZ1iFhe47etQ6QUkpK6sk= +github.com/klauspost/cpuid v1.2.3/go.mod h1:Pj4uuM528wm8OyEC2QMXAi2YiTZ96dNQPGgoMS4s3ek= +github.com/klauspost/cpuid v1.3.1/go.mod h1:bYW4mA6ZgKPob1/Dlai2LviZJO7KGI3uoWLd42rAQw4= github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= github.com/kr/fs v0.1.0/go.mod h1:FFnZGqtBN9Gxj7eW1uZ42v5BccTP0vu6NEaFoC2HwRg= github.com/kr/logfmt v0.0.0-20140226030751-b84e30acd515/go.mod h1:+0opPa2QZZtGFBFZlji/RkVcI2GknAs/DXo4wKdlNEc= @@ -352,7 +358,13 @@ github.com/matttproud/golang_protobuf_extensions v1.0.1 h1:4hp9jkHxhMHkqkrB3Ix0j github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0= github.com/miekg/dns v1.0.14/go.mod h1:W1PPwlIAgtquWBMBEV9nkV9Cazfe8ScdGz/Lj7v3Nrg= github.com/miekg/dns v1.1.26/go.mod h1:bPDLeHnStXmXAq1m/Ch/hvfNHr14JKNPMBo3VZKjuso= +github.com/minio/md5-simd v1.1.0/go.mod h1:XpBqgZULrMYD3R+M28PcmP0CkI7PEMzB3U77ZrKZ0Gw= +github.com/minio/minio-go/v7 v7.0.22 h1:iXhsiRyYh1ozm/+jN2qGgEIahYjEkvcpuu6NcdpSxcA= +github.com/minio/minio-go/v7 v7.0.22/go.mod h1:ei5JjmxwHaMrgsMrn4U/+Nmg+d8MKS1U2DAn1ou4+Do= +github.com/minio/sha256-simd v0.1.1 h1:5QHSlgo3nt5yKOJrC7W8w7X+NFl8cMPZm96iu8kKUJU= +github.com/minio/sha256-simd v0.1.1/go.mod h1:B5e1o+1/KgNmWrSQK08Y6Z1Vb5pwIktudl0J58iy0KM= github.com/mitchellh/cli v1.1.0/go.mod h1:xcISNoH86gajksDmfB23e/pu+B+GeFRMYmoHXxx3xhI= +github.com/mitchellh/go-homedir v1.1.0 h1:lukF9ziXFxDFPkA1vsr5zpc1XuPDn/wFntq5mG+4E0Y= github.com/mitchellh/go-homedir v1.1.0/go.mod h1:SfyaCUpYCn1Vlf4IUYiD9fPX4A5wJrkLzIz1N1q0pr0= github.com/mitchellh/go-testing-interface v1.0.0/go.mod h1:kRemZodwjscx+RGhAo8eIhFbs2+BFgRtFPeD/KE+zxI= github.com/mitchellh/mapstructure v0.0.0-20160808181253-ca63d7c062ee/go.mod h1:FVVH3fgwuzCH5S8UJGiWEs2h04kUh9fWfEaFds41c1Y= @@ -409,6 +421,7 @@ github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6L github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= github.com/rogpeppe/go-internal v1.6.1 h1:/FiVV8dS/e+YqF2JvO3yXRFbBLTIuSDkuC7aBOAvL+k= github.com/rogpeppe/go-internal v1.6.1/go.mod h1:xXDCJY+GAPziupqXw64V24skbSoqbTEfhy4qGm1nDQc= +github.com/rs/xid v1.2.1/go.mod h1:+uKXf+4Djp6Md1KODXJxgGQPKngRmWyn10oCKFzNHOQ= github.com/ryanuber/columnize v0.0.0-20160712163229-9b3edd62028f/go.mod h1:sm1tb6uqfes/u+d4ooFouqFdy9/2g9QGwK3SQygK0Ts= github.com/sagikazarmark/crypt v0.1.0/go.mod h1:B/mN0msZuINBtQ1zZLEQcegFJJf9vnYIR88KRMEuODE= github.com/sean-/seed v0.0.0-20170313163322-e2103e2c3529/go.mod h1:DxrIzT+xaE7yg65j358z/aeFdxmN0P9QXhEzd20vsDc= @@ -506,6 +519,7 @@ golang.org/x/crypto v0.0.0-20191205180655-e7c4368fe9dd/go.mod h1:LzIPMQfyMNhhGPh golang.org/x/crypto v0.0.0-20191219195013-becbf705a915/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20200510223506-06a226fb4e37/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= golang.org/x/crypto v0.0.0-20200622213623-75b288015ac9/go.mod h1:LzIPMQfyMNhhGPhUkYOs5KpL4U8rLKemX1yGLhDgUto= +golang.org/x/crypto v0.0.0-20201216223049-8b5274cf687f/go.mod h1:jdWPYTVW3xRLrWPugEBEK3UY2ZEsg3UU495nc5E+M+I= golang.org/x/crypto v0.0.0-20210817164053-32db794688a5 h1:HWj/xjIHfjYU5nVXpTM0s39J9CbLn7Cc5a7IC5rwsMQ= golang.org/x/crypto v0.0.0-20210817164053-32db794688a5/go.mod h1:GvvjBRRGRdwPK5ydBHafDWAxML/pGHZbMvKqRZ5+Abc= golang.org/x/exp v0.0.0-20190121172915-509febef88a4/go.mod h1:CJ0aWSM057203Lf6IL+f9T1iT9GByDxfZKAQTCR3kQA= @@ -648,6 +662,7 @@ golang.org/x/sys v0.0.0-20200509044756-6aff5f38e54f/go.mod h1:h1NjWce9XRLGQEsW7w golang.org/x/sys v0.0.0-20200511232937-7e40ca221e25/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200515095857-1151b9dac4a9/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200523222454-059865788121/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= +golang.org/x/sys v0.0.0-20200625212154-ddb9806d33ae/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200803210538-64077c9b5642/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200905004654-be1d3432aa8f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= golang.org/x/sys v0.0.0-20200930185726-fdedc70b468f/go.mod h1:h1NjWce9XRLGQEsW7wpKNCjG9DtNlClVuFLEZdDNbEs= @@ -671,6 +686,7 @@ golang.org/x/sys v0.0.0-20210630005230-0f9fa26af87c/go.mod h1:oPkhp1MJrh7nUepCBc golang.org/x/sys v0.0.0-20210806184541-e5e7981a1069/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= golang.org/x/sys v0.0.0-20210823070655-63515b42dcdf h1:2ucpDCmfkl8Bd/FsLtiD653Wf96cW37s+iGx93zsu4k= golang.org/x/sys v0.0.0-20210823070655-63515b42dcdf/go.mod h1:oPkhp1MJrh7nUepCBck5+mAzfO9JrbApNNgaTdGDITg= +golang.org/x/term v0.0.0-20201117132131-f5c789dd3221/go.mod h1:Nr5EML6q2oocZ2LXRh80K7BxOlk5/8JxuGnuhpl+muw= golang.org/x/term v0.0.0-20201126162022-7de9c90e9dd1/go.mod h1:bj7SfCRtBDWHUb9snDiAeCFNEtKQo2Wmx5Cou7ajbmo= golang.org/x/text v0.0.0-20170915032832-14c0d48ead0c/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= golang.org/x/text v0.3.0/go.mod h1:NqM8EUOU14njkJ3fqMW+pc6Ldnwhi/IjpwHt7yyuwOQ= @@ -865,6 +881,7 @@ gopkg.in/errgo.v2 v2.1.0/go.mod h1:hNsd1EY+bozCKY1Ytp96fpM3vjJbqLJn88ws8XvfDNI= gopkg.in/gomail.v2 v2.0.0-20160411212932-81ebce5c23df h1:n7WqCuqOuCbNr617RXOY0AWRXxgwEyPp2z+p0+hgMuE= gopkg.in/gomail.v2 v2.0.0-20160411212932-81ebce5c23df/go.mod h1:LRQQ+SO6ZHR7tOkpBDuZnXENFzX8qRjMDMyPD6BRkCw= gopkg.in/ini.v1 v1.56.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= +gopkg.in/ini.v1 v1.57.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= gopkg.in/ini.v1 v1.63.2 h1:tGK/CyBg7SMzb60vP1M03vNZ3VDu3wGQJwn7Sxi9r3c= gopkg.in/ini.v1 v1.63.2/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= gopkg.in/mgo.v2 v2.0.0-20190816093944-a6b53ec6cb22 h1:VpOs+IwYnYBaFnrNAeB8UUWtL3vEUnzSCL1nVjPhqrw= diff --git a/internal/api/third/minio_storage_credential.go b/internal/api/third/minio_storage_credential.go new file mode 100644 index 000000000..c66682b60 --- /dev/null +++ b/internal/api/third/minio_storage_credential.go @@ -0,0 +1,29 @@ +package apiThird + +import ( + apiStruct "Open_IM/pkg/base_info" + "Open_IM/pkg/common/constant" + http "Open_IM/pkg/common/http" + "Open_IM/pkg/common/log" + "Open_IM/pkg/common/token_verify" + "github.com/gin-gonic/gin" + _ cr "github.com/minio/minio-go/v7/pkg/credentials" +) + +func MinioStorageCredential(c *gin.Context) { + var ( + req apiStruct.MinioStorageCredentialReq + resp apiStruct.MiniostorageCredentialResp + ) + ok, _ := token_verify.GetUserIDFromToken(c.Request.Header.Get("token")) + if !ok { + log.NewError("", "GetUserIDFromToken false ", c.Request.Header.Get("token")) + http.RespHttp200(c, constant.ErrAccess, nil) + return + } + //var stsOpts cr.STSAssumeRoleOptions + //stsOpts.AccessKey = minioUsername + //stsOpts.SecretKey = minioPassword + log.NewInfo("0", req, resp) + http.RespHttp200(c, constant.OK, nil) +} diff --git a/pkg/base_info/minio_api_struct.go b/pkg/base_info/minio_api_struct.go new file mode 100644 index 000000000..228789b11 --- /dev/null +++ b/pkg/base_info/minio_api_struct.go @@ -0,0 +1,12 @@ +package base_info + +type MinioStorageCredentialReq struct { + Action string `form:"Action";binding:"required"` + DurationSeconds int `form:"DurationSeconds"` + Version string `form:"Version"` + Policy string +} + +type MiniostorageCredentialResp struct { + +} From a2cd7c8007d4e1ca7c7c6e582b6de4d7d2aed87a Mon Sep 17 00:00:00 2001 From: wangchuxiao Date: Sat, 19 Feb 2022 18:48:15 +0800 Subject: [PATCH 671/814] add minio --- config/config.yaml | 9 +++- go.sum | 4 ++ internal/api/third/minio_init.go | 48 +++++++++++++++++ .../api/third/minio_storage_credential.go | 54 ++++++++++++++----- pkg/base_info/minio_api_struct.go | 11 ++-- pkg/common/config/config.go | 7 +++ pkg/common/constant/constant.go | 3 ++ 7 files changed, 117 insertions(+), 19 deletions(-) create mode 100644 internal/api/third/minio_init.go diff --git a/config/config.yaml b/config/config.yaml index 9b735520c..c9b800b0f 100644 --- a/config/config.yaml +++ b/config/config.yaml @@ -19,7 +19,7 @@ mysql: dbMaxLifeTime: 120 mongo: - dbAddress: [ 127.0.0.1:37017 ] + dbAddress: [ 127.0.0.1:37017 ] dbDirect: false dbTimeout: 10 dbDatabase: openIM @@ -86,7 +86,12 @@ credential: bucket: echat-1302656840 secretID: AKIDGNYVChzIQinu7QEgtNp0hnNgqcV8vZTC secretKey: kz15vW83qM6dBUWIq681eBZA0c0vlIbe - + minio: + bucket: openim + location: us-east-1 + endpoint: http://127.0.0.1:9000 + accessKeyID: minioadmin + secretAccessKey: minioadmin rpcport: openImUserPort: [ 10100 ] diff --git a/go.sum b/go.sum index 8a47f8dd0..acc8bf998 100644 --- a/go.sum +++ b/go.sum @@ -311,8 +311,10 @@ github.com/julienschmidt/httprouter v1.2.0/go.mod h1:SYymIcj16QtmaHHD7aYtjjsJG7V github.com/kisielk/errcheck v1.1.0/go.mod h1:EZBBE59ingxPouuu3KfxchcWSUPOHkagtvWXihfKN4Q= github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8= github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= +github.com/klauspost/compress v1.13.5 h1:9O69jUPDcsT9fEm74W92rZL9FQY7rCdaXVneq+yyzl4= github.com/klauspost/compress v1.13.5/go.mod h1:/3/Vjq9QcHkK5uEr5lBEmyoZ1iFhe47etQ6QUkpK6sk= github.com/klauspost/cpuid v1.2.3/go.mod h1:Pj4uuM528wm8OyEC2QMXAi2YiTZ96dNQPGgoMS4s3ek= +github.com/klauspost/cpuid v1.3.1 h1:5JNjFYYQrZeKRJ0734q51WCEEn2huer72Dc7K+R/b6s= github.com/klauspost/cpuid v1.3.1/go.mod h1:bYW4mA6ZgKPob1/Dlai2LviZJO7KGI3uoWLd42rAQw4= github.com/konsorten/go-windows-terminal-sequences v1.0.1/go.mod h1:T0+1ngSBFLxvqU3pZ+m/2kptfBszLMUkC4ZK/EgS/cQ= github.com/kr/fs v0.1.0/go.mod h1:FFnZGqtBN9Gxj7eW1uZ42v5BccTP0vu6NEaFoC2HwRg= @@ -358,6 +360,7 @@ github.com/matttproud/golang_protobuf_extensions v1.0.1 h1:4hp9jkHxhMHkqkrB3Ix0j github.com/matttproud/golang_protobuf_extensions v1.0.1/go.mod h1:D8He9yQNgCq6Z5Ld7szi9bcBfOoFv/3dc6xSMkL2PC0= github.com/miekg/dns v1.0.14/go.mod h1:W1PPwlIAgtquWBMBEV9nkV9Cazfe8ScdGz/Lj7v3Nrg= github.com/miekg/dns v1.1.26/go.mod h1:bPDLeHnStXmXAq1m/Ch/hvfNHr14JKNPMBo3VZKjuso= +github.com/minio/md5-simd v1.1.0 h1:QPfiOqlZH+Cj9teu0t9b1nTBfPbyTl16Of5MeuShdK4= github.com/minio/md5-simd v1.1.0/go.mod h1:XpBqgZULrMYD3R+M28PcmP0CkI7PEMzB3U77ZrKZ0Gw= github.com/minio/minio-go/v7 v7.0.22 h1:iXhsiRyYh1ozm/+jN2qGgEIahYjEkvcpuu6NcdpSxcA= github.com/minio/minio-go/v7 v7.0.22/go.mod h1:ei5JjmxwHaMrgsMrn4U/+Nmg+d8MKS1U2DAn1ou4+Do= @@ -421,6 +424,7 @@ github.com/rogpeppe/fastuuid v1.2.0/go.mod h1:jVj6XXZzXRy/MSR5jhDC/2q6DgLz+nrA6L github.com/rogpeppe/go-internal v1.3.0/go.mod h1:M8bDsm7K2OlrFYOpmOWEs/qY81heoFRclV5y23lUDJ4= github.com/rogpeppe/go-internal v1.6.1 h1:/FiVV8dS/e+YqF2JvO3yXRFbBLTIuSDkuC7aBOAvL+k= github.com/rogpeppe/go-internal v1.6.1/go.mod h1:xXDCJY+GAPziupqXw64V24skbSoqbTEfhy4qGm1nDQc= +github.com/rs/xid v1.2.1 h1:mhH9Nq+C1fY2l1XIpgxIiUOfNpRBYH1kKcr+qfKgjRc= github.com/rs/xid v1.2.1/go.mod h1:+uKXf+4Djp6Md1KODXJxgGQPKngRmWyn10oCKFzNHOQ= github.com/ryanuber/columnize v0.0.0-20160712163229-9b3edd62028f/go.mod h1:sm1tb6uqfes/u+d4ooFouqFdy9/2g9QGwK3SQygK0Ts= github.com/sagikazarmark/crypt v0.1.0/go.mod h1:B/mN0msZuINBtQ1zZLEQcegFJJf9vnYIR88KRMEuODE= diff --git a/internal/api/third/minio_init.go b/internal/api/third/minio_init.go new file mode 100644 index 000000000..eb087c4dc --- /dev/null +++ b/internal/api/third/minio_init.go @@ -0,0 +1,48 @@ +package apiThird + +import ( + "Open_IM/pkg/common/config" + "Open_IM/pkg/common/log" + "Open_IM/pkg/utils" + "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" +) + +func init() { + minioUrl, err := url2.Parse(config.Config.Credential.Minio.Endpoint) + if err != nil { + log.NewError("", utils.GetSelfFuncName(), "parse failed, please check config/config.yaml", err.Error()) + return + } + minioClient, err := minio.New(minioUrl.Host, &minio.Options{ + Creds: credentials.NewStaticV4(config.Config.Credential.Minio.AccessKeyID, config.Config.Credential.Minio.SecretAccessKey, ""), + Secure: false, + }) + if err != nil { + log.NewError("", utils.GetSelfFuncName(), "init minio client failed", err.Error()) + return + } + opt := minio.MakeBucketOptions{ + Region: config.Config.Credential.Minio.Location, + ObjectLocking: false, + } + err = minioClient.MakeBucket(context.Background(), config.Config.Credential.Minio.Bucket, opt) + if err != nil { + exists, err := minioClient.BucketExists(context.Background(), config.Config.Credential.Minio.Bucket) + if err == nil && exists { + log.NewInfo("", utils.GetSelfFuncName(), "We already own %s\n", config.Config.Credential.Minio.Bucket) + } else { + log.NewError("", utils.GetSelfFuncName(), "create bucket failed and bucket not exists", err.Error()) + return + } + } + err = minioClient.SetBucketPolicy(context.Background(), config.Config.Credential.Minio.Bucket, policy.BucketPolicyReadWrite) + if err != nil { + log.NewError("", utils.GetSelfFuncName(), "SetBucketPolicy failed please set in ", err.Error()) + return + } + log.NewInfo("", utils.GetSelfFuncName(), "minio create and set policy success") +} diff --git a/internal/api/third/minio_storage_credential.go b/internal/api/third/minio_storage_credential.go index c66682b60..4d5800e06 100644 --- a/internal/api/third/minio_storage_credential.go +++ b/internal/api/third/minio_storage_credential.go @@ -2,12 +2,15 @@ package apiThird import ( apiStruct "Open_IM/pkg/base_info" + "Open_IM/pkg/common/config" "Open_IM/pkg/common/constant" - http "Open_IM/pkg/common/http" "Open_IM/pkg/common/log" - "Open_IM/pkg/common/token_verify" + _ "Open_IM/pkg/common/token_verify" + "Open_IM/pkg/utils" "github.com/gin-gonic/gin" - _ cr "github.com/minio/minio-go/v7/pkg/credentials" + _ "github.com/minio/minio-go/v7" + cr "github.com/minio/minio-go/v7/pkg/credentials" + "net/http" ) func MinioStorageCredential(c *gin.Context) { @@ -15,15 +18,42 @@ func MinioStorageCredential(c *gin.Context) { req apiStruct.MinioStorageCredentialReq resp apiStruct.MiniostorageCredentialResp ) - ok, _ := token_verify.GetUserIDFromToken(c.Request.Header.Get("token")) - if !ok { - log.NewError("", "GetUserIDFromToken false ", c.Request.Header.Get("token")) - http.RespHttp200(c, constant.ErrAccess, nil) + if err := c.BindJSON(&req); err != nil { + log.NewError("0", utils.GetSelfFuncName(), "BindJSON failed ", err.Error()) + c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": err.Error()}) return } - //var stsOpts cr.STSAssumeRoleOptions - //stsOpts.AccessKey = minioUsername - //stsOpts.SecretKey = minioPassword - log.NewInfo("0", req, resp) - http.RespHttp200(c, constant.OK, nil) + //ok, _ := token_verify.GetUserIDFromToken(c.Request.Header.Get("token")) + //if !ok { + // log.NewError("", utils.GetSelfFuncName(), "GetUserIDFromToken false ", c.Request.Header.Get("token")) + // c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": "GetUserIDFromToken failed"}) + // return + //} + var stsOpts cr.STSAssumeRoleOptions + stsOpts.AccessKey = config.Config.Credential.Minio.AccessKeyID + stsOpts.SecretKey = config.Config.Credential.Minio.SecretAccessKey + stsOpts.DurationSeconds = constant.MinioDurationTimes + li, err := cr.NewSTSAssumeRole(config.Config.Credential.Minio.Endpoint, stsOpts) + if err != nil { + log.NewError("", utils.GetSelfFuncName(), "NewSTSAssumeRole failed", err.Error(), stsOpts, config.Config.Credential.Minio.Endpoint) + c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": err.Error()}) + return + } + v, err := li.Get() + if err != nil { + log.NewError("0", utils.GetSelfFuncName(), "li.Get error", err.Error()) + c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": err.Error()}) + return + } + if err != nil { + log.NewError("0", utils.GetSelfFuncName(), err.Error()) + c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": err.Error()}) + return + } + resp.SessionToken = v.SessionToken + resp.SecretAccessKey = v.SecretAccessKey + resp.AccessKeyID = v.AccessKeyID + resp.BucketName = config.Config.Credential.Minio.Bucket + resp.StsEndpointURL = config.Config.Credential.Minio.Endpoint + c.JSON(http.StatusOK, gin.H{"errCode": 0, "errMsg": "", "data":resp}) } diff --git a/pkg/base_info/minio_api_struct.go b/pkg/base_info/minio_api_struct.go index 228789b11..f15997053 100644 --- a/pkg/base_info/minio_api_struct.go +++ b/pkg/base_info/minio_api_struct.go @@ -1,12 +1,13 @@ package base_info type MinioStorageCredentialReq struct { - Action string `form:"Action";binding:"required"` - DurationSeconds int `form:"DurationSeconds"` - Version string `form:"Version"` - Policy string + OperationID string `json:"operationID"` } type MiniostorageCredentialResp struct { - + SecretAccessKey string `json:"secretAccessKey"` + AccessKeyID string `json:"accessKeyID"` + SessionToken string `json:"sessionToken"` + BucketName string `json:"bucketName"` + StsEndpointURL string `json:"stsEndpointURL"` } diff --git a/pkg/common/config/config.go b/pkg/common/config/config.go index f6049009d..8f89376cb 100644 --- a/pkg/common/config/config.go +++ b/pkg/common/config/config.go @@ -36,6 +36,13 @@ type config struct { SecretID string `yaml:"secretID"` SecretKey string `yaml:"secretKey"` } + Minio struct { + Bucket string `yaml:"bucket"` + Location string `yaml:"location"` + Endpoint string `yaml:"endpoint"` + AccessKeyID string `yaml:"accessKeyID"` + SecretAccessKey string `yaml:"secretAccessKey"` + } `yaml:"minio"` } Mysql struct { diff --git a/pkg/common/constant/constant.go b/pkg/common/constant/constant.go index f3db29b03..34c075a00 100644 --- a/pkg/common/constant/constant.go +++ b/pkg/common/constant/constant.go @@ -121,6 +121,9 @@ const ( //UserJoinGroupSource JoinByAdmin = 1 + + //Minio + MinioDurationTimes = 3600 ) var ContentType2PushContent = map[int64]string{ From 8915848a523e97a4237ae8a408b617afca447bd7 Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Mon, 21 Feb 2022 10:10:11 +0800 Subject: [PATCH 672/814] login modify --- 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 944a9d039..b6ec445f6 100644 --- a/internal/demo/register/login.go +++ b/internal/demo/register/login.go @@ -43,7 +43,7 @@ func Login(c *gin.Context) { } if r.Password != params.Password { log.NewError(params.OperationID, "password err", params.Password, account, r.Password, r.Account) - c.JSON(http.StatusOK, gin.H{"errCode": constant.PasswordErr, "errMsg": "Mobile phone number is not registered"}) + c.JSON(http.StatusOK, gin.H{"errCode": constant.PasswordErr, "errMsg": "password err"}) return } url := fmt.Sprintf("http://%s:10000/auth/user_token", utils.ServerIP) From f16f0e30699037219189bfbfdafc8a606a21e919 Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Mon, 21 Feb 2022 11:06:06 +0800 Subject: [PATCH 673/814] Refactoring code --- config/config.yaml | 109 +++++++++++++++++++++++---------------------- 1 file changed, 56 insertions(+), 53 deletions(-) diff --git a/config/config.yaml b/config/config.yaml index f40bfa62a..da820f3c5 100644 --- a/config/config.yaml +++ b/config/config.yaml @@ -1,47 +1,47 @@ # The class cannot be named by Pascal or camel case. # If it is not used, the corresponding structure will not be set, # and it will not be read naturally. -serverversion: 1.0.3 +serverversion: 3.0.0 #---------------Infrastructure configuration---------------------# etcd: - etcdSchema: openIM - etcdAddr: [ 127.0.0.1:2379 ] + etcdSchema: openIM #默认即可 + etcdAddr: [ 127.0.0.1:2379 ] #单机部署时,默认即可 mysql: - dbMysqlAddress: [ 127.0.0.1:13306 ] - dbMysqlUserName: root - dbMysqlPassword: openIM - dbMysqlDatabaseName: openIM - dbTableName: eMsg + dbMysqlAddress: [ 127.0.0.1:13306 ] #mysql地址 目前仅支持单机,默认即可 + dbMysqlUserName: root #mysql用户名,建议修改 + dbMysqlPassword: openIM # mysql密码,建议修改 + dbMysqlDatabaseName: openIM #默认即可 + dbTableName: eMsg #默认即可 dbMsgTableNum: 1 dbMaxOpenConns: 20 dbMaxIdleConns: 10 dbMaxLifeTime: 120 mongo: - dbAddress: [ 127.0.0.1:37017 ] + dbAddress: [ 127.0.0.1:37017 ] #redis地址 目前仅支持单机,默认即可 dbDirect: false dbTimeout: 10 - dbDatabase: openIM + dbDatabase: openIM #mongo db 默认即可 dbSource: admin - dbUserName: - dbPassword: + dbUserName: #mongo用户名,建议修改 + dbPassword: #mongo密码,建议修改 dbMaxPoolSize: 20 - dbRetainChatRecords: 7 + dbRetainChatRecords: 3650 #mongo保存离线消息时间(天) redis: - dbAddress: 127.0.0.1:16379 + dbAddress: 127.0.0.1:16379 #redis地址 目前仅支持单机,默认即可 dbMaxIdle: 128 dbMaxActive: 0 dbIdleTimeout: 120 - dbPassWord: openIM + dbPassWord: openIM #redis密码 建议修改 kafka: ws2mschat: - addr: [ 127.0.0.1:9092 ] + addr: [ 127.0.0.1:9092 ] #kafka配置,默认即可 topic: "ws2ms_chat" ms2pschat: - addr: [ 127.0.0.1:9092 ] + addr: [ 127.0.0.1:9092 ] #kafka配置,默认即可 topic: "ms2ps_chat" consumergroupid: msgToMongo: mongo @@ -55,6 +55,7 @@ kafka: # The service ip default is empty, # automatically obtain the machine's valid network card ip as the service ip, # otherwise the configuration ip is preferred +#如果是单机模式,用0.0.0.0或者不填,默认即可 serverip: 0.0.0.0 # endpoints 内部组件间访问的端点host名称,访问时,可以内部直接访问 host:port 来访问 @@ -73,13 +74,13 @@ endpoints: rpc_message_cms: openim_rpc_admin_cms api: - openImApiPort: [ 10000 ] + openImApiPort: [ 10000 ] #api服务端口,默认即可,注意开放此端口或做nginx转发 cmsapi: - openImCmsApiPort: [ 8000 ] + openImCmsApiPort: [ 8000 ] #管理后台api服务端口,默认即可,注意开放此端口或做nginx转发 sdk: - openImSdkWsPort: [ 30000 ] + openImSdkWsPort: [ 30000 ] #jssdk服务端口,默认即可,项目中使用jssdk才需开放此端口或做nginx转发 -credential: +credential: #腾讯cos,发送图片、视频、文件时需要,请自行申请后替换,必须修改 tencent: appID: 1302656840 region: ap-chengdu @@ -88,7 +89,7 @@ credential: secretKey: kz15vW83qM6dBUWIq681eBZA0c0vlIbe -rpcport: +rpcport: #rpc服务端口 默认即可 openImUserPort: [ 10100 ] openImFriendPort: [ 10200 ] openImOfflineMessagePort: [ 10300 ] @@ -109,7 +110,7 @@ rpcport: stateChange: switch: false -rpcregistername: +rpcregistername: #rpc注册服务名,默认即可 openImUserName: User openImFriendName: Friend openImOfflineMessageName: OfflineMessage @@ -124,52 +125,54 @@ rpcregistername: log: storageLocation: ../logs/ rotationTime: 24 - remainRotationCount: 5 - remainLogLevel: 6 + remainRotationCount: 5 #日志数量 + remainLogLevel: 6 #日志级别 6表示全都打印,测试阶段建议设置为6 elasticSearchSwitch: false elasticSearchAddr: [ 127.0.0.1:9201 ] elasticSearchUser: "" elasticSearchPassword: "" -modulename: +modulename: #日志文件按模块命名,默认即可 longConnSvrName: msg_gateway msgTransferName: msg_transfer pushName: push longconnsvr: - openImWsPort: [ 17778 ] + openImWsPort: [ 17778 ] # ws服务端口,默认即可,要开放此端口或做nginx转发 websocketMaxConnNum: 10000 websocketMaxMsgLen: 4096 websocketTimeOut: 10 push: - tpns: + tpns: #腾讯推送,暂未测试 暂不要使用 ios: accessID: 1600018281 secretKey: 3cd68a77a95b89e5089a1aca523f318f android: accessID: 111 secretKey: 111 - jpns: + jpns: #极光推送 在极光后台申请后,修改以下四项,必须修改 appKey: cf47465a368f24c659608e7e masterSecret: 02204efe3f3832947a236ee5 pushUrl: "https://api.jpush.cn/v3/push" pushIntent: "intent:#Intent;component=io.openim.app.enterprisechat/io.openim.app.enterprisechat.MainActivity;end" manager: + #app管理员userID和对应的secret 建议修改。 用于管理后台登录,也可以用户管理后台对应的api appManagerUid: [ "openIM123456","openIM654321", "openIM333", "openIMAdmin"] secrets: [ "openIM1","openIM2", "openIM333", "openIMAdmin"] secret: tuoyun - +# 多端互踢策略 +# 1:多平台登录:Android、iOS、Windows、Mac 每种平台只能一个在线,web端可以多个同时在线 multiloginpolicy: 1 #token config tokenpolicy: - accessSecret: "open_im_server" + accessSecret: "open_im_server" #token生成相关,默认即可 # Token effective time day as a unit - accessExpire: 7 + accessExpire: 3650 #token过期时间(天) -messagecallback: +messagecallback: #暂时不要使用 还需完善 callbackUrl: "http://www.xxx.com/msg/judge" #TimeOut use second as unit callbackTimeOut: 10 @@ -182,7 +185,7 @@ messagecallback: # state: # stateChange: # switch: false - +#ios系统推送声音以及标记计数 iospush: pushSound: "xxx" badgeCount: true @@ -246,7 +249,7 @@ notification: desc: "groupApplicationAccepted desc" ext: "groupApplicationAccepted ext" defaultTips: - tips: "was allowed to join the group" # group info changed by xx + tips: "allowed to join the group" # group info changed by xx groupApplicationRejected: conversation: @@ -258,7 +261,7 @@ notification: desc: " desc" ext: " ext" defaultTips: - tips: "was rejected into the group" # group info changed by xx + tips: "rejected into the group" # group info changed by xx groupOwnerTransferred: conversation: @@ -282,7 +285,7 @@ notification: desc: "memberKicked desc" ext: "memberKicked ext" defaultTips: - tips: "was kicked out of the group" # group info changed by xx + tips: "kicked out of the group" # group info changed by xx memberInvited: conversation: @@ -294,7 +297,7 @@ notification: desc: "memberInvited desc" ext: "memberInvited ext" defaultTips: - tips: "was invited into the group" # group info changed by xx + tips: "invited into the group" # group info changed by xx memberEnter: conversation: @@ -371,11 +374,11 @@ notification: unreadCount: false offlinePush: switch: true - title: "Deleted a friend" - desc: "Deleted a friend" - ext: "Deleted a friend" + title: "deleted a friend" + desc: "deleted a friend" + ext: "deleted a friend" defaultTips: - tips: "Deleted a friend" # + tips: "deleted a friend" # friendRemarkSet: @@ -398,11 +401,11 @@ notification: unreadCount: false offlinePush: switch: true - title: "Blocked a user" - desc: "Blocked a user" - ext: "Blocked a user" + title: "blocked a user" + desc: "blocked a user" + ext: "blocked a user" defaultTips: - tips: "Blocked a user" # + tips: "blocked a user" # blackDeleted: @@ -428,7 +431,7 @@ notification: desc: "Remove a blocked user" ext: "Remove a blocked user" defaultTips: - tips: "Remove a blocked user" + tips: "remove a blocked user" #####################conversation######################### conversationOptUpdate: @@ -447,23 +450,23 @@ notification: #---------------demo configuration---------------------# #The following configuration items are applied to openIM Demo configuration -demoswitch: true +demoswitch: true #是否启动demo,如果自身没有账号体系,设置为true demo: - openImDemoPort: [ 42233 ] - alismsverify: + openImDemoPort: [ 42233 ] #demo对外服务端口,默认即可,需要开放此端口或做nginx转发 + alismsverify: #阿里云短信配置,在阿里云申请成功后修改以下四项,必须修改 accessKeyId: LTAI5tJPkn4HuuePdiLdGqe71 accessKeySecret: 4n9OJ7ZCVN1U6KeHDAtOyNeVZcjOuV1 signName: OpenIM Corporation verificationCodeTemplateCode: SMS_2268101641 - superCode: 666666 + superCode: 666666 #超级验证码,建议修改掉,收不到短信验证码时可以用此替代 # second codeTTL: 60 - mail: + mail: #仅支持qq邮箱,具体操作参考 https://service.mail.qq.com/cgi-bin/help?subtype=1&id=28&no=1001256 必须修改 title: "openIM" senderMail: "1765567899@qq.com" senderAuthorizationCode: "1gxyausfoevlzbfag" smtpAddr: "smtp.qq.com" - smtpPort: 25 + smtpPort: 25 #需开放此端口 出口方向 From 344bafff45fabece2645a01485310de2493baaba Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Mon, 21 Feb 2022 12:20:05 +0800 Subject: [PATCH 674/814] push modify --- internal/push/logic/push_to_client.go | 46 ++++++++++++++------------- 1 file changed, 24 insertions(+), 22 deletions(-) diff --git a/internal/push/logic/push_to_client.go b/internal/push/logic/push_to_client.go index 721405a78..41c943c4b 100644 --- a/internal/push/logic/push_to_client.go +++ b/internal/push/logic/push_to_client.go @@ -71,32 +71,34 @@ func MsgToUser(pushMsg *pbPush.PushMsgReq) { bCustomContent, _ := json.Marshal(customContent) jsonCustomContent := string(bCustomContent) var content string - switch pushMsg.MsgData.ContentType { - case constant.Text: - content = constant.ContentType2PushContent[constant.Text] - case constant.Picture: - content = constant.ContentType2PushContent[constant.Picture] - case constant.Voice: - content = constant.ContentType2PushContent[constant.Voice] - case constant.Video: - content = constant.ContentType2PushContent[constant.Video] - case constant.File: - content = constant.ContentType2PushContent[constant.File] - case constant.AtText: - a := AtContent{} - _ = utils.JsonStringToStruct(string(pushMsg.MsgData.Content), &a) - if utils.IsContain(v.RecvID, a.AtUserList) { - content = constant.ContentType2PushContent[constant.AtText] + constant.ContentType2PushContent[constant.Common] - } else { - content = constant.ContentType2PushContent[constant.GroupMsg] - } - default: - content = constant.ContentType2PushContent[constant.Common] - } if pushMsg.MsgData.OfflinePushInfo != nil { content = pushMsg.MsgData.OfflinePushInfo.Title + } else { + switch pushMsg.MsgData.ContentType { + case constant.Text: + content = constant.ContentType2PushContent[constant.Text] + case constant.Picture: + content = constant.ContentType2PushContent[constant.Picture] + case constant.Voice: + content = constant.ContentType2PushContent[constant.Voice] + case constant.Video: + content = constant.ContentType2PushContent[constant.Video] + case constant.File: + content = constant.ContentType2PushContent[constant.File] + case constant.AtText: + a := AtContent{} + _ = utils.JsonStringToStruct(string(pushMsg.MsgData.Content), &a) + if utils.IsContain(v.RecvID, a.AtUserList) { + content = constant.ContentType2PushContent[constant.AtText] + constant.ContentType2PushContent[constant.Common] + } else { + content = constant.ContentType2PushContent[constant.GroupMsg] + } + default: + content = constant.ContentType2PushContent[constant.Common] + } } + pushResult, err := push.JGAccountListPush(UIDList, content, jsonCustomContent, constant.PlatformIDToName(t)) if err != nil { log.NewError(pushMsg.OperationID, "offline push error", pushMsg.String(), err.Error(), constant.PlatformIDToName(t)) From d906d49930b64e13ab1a5ea38ef57415de8b6540 Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Mon, 21 Feb 2022 14:11:51 +0800 Subject: [PATCH 675/814] model modify --- pkg/common/db/model_struct.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkg/common/db/model_struct.go b/pkg/common/db/model_struct.go index 51aa112b4..184f51e9d 100644 --- a/pkg/common/db/model_struct.go +++ b/pkg/common/db/model_struct.go @@ -187,7 +187,7 @@ type ChatLog struct { SessionType int32 `gorm:"column:session_type" json:"sessionType"` MsgFrom int32 `gorm:"column:msg_from" json:"msgFrom"` ContentType int32 `gorm:"column:content_type" json:"contentType"` - Content string `gorm:"column:content;type:varchar(1000)" json:"content"` + Content string `gorm:"column:content;type:varchar(3000)" json:"content"` Status int32 `gorm:"column:status" json:"status"` SendTime time.Time `gorm:"column:send_time" json:"sendTime"` CreateTime time.Time `gorm:"column:create_time" json:"createTime"` From 571c83314a62d5ebc1ab01c29bd65a24e9ee2ad5 Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Mon, 21 Feb 2022 15:01:06 +0800 Subject: [PATCH 676/814] Refactoring code --- cmd/Open-IM-SDK-Core | 2 +- cmd/test/main.go | 69 +++++ go.mod | 1 + pkg/base_info/conversation_api_struct.go | 15 + pkg/base_info/public_struct.go | 14 + pkg/common/constant/constant.go | 2 + pkg/common/db/model.go | 30 +- pkg/common/db/mongoModel.go | 334 +++++++++++++++-------- 8 files changed, 351 insertions(+), 116 deletions(-) create mode 100644 cmd/test/main.go diff --git a/cmd/Open-IM-SDK-Core b/cmd/Open-IM-SDK-Core index e43ec7d42..bdb27fcff 160000 --- a/cmd/Open-IM-SDK-Core +++ b/cmd/Open-IM-SDK-Core @@ -1 +1 @@ -Subproject commit e43ec7d427a84702eea7a6aaa358a7a0a809019d +Subproject commit bdb27fcff0e9785cb0f92d9d04bdafe544a04de0 diff --git a/cmd/test/main.go b/cmd/test/main.go new file mode 100644 index 000000000..87d5165f7 --- /dev/null +++ b/cmd/test/main.go @@ -0,0 +1,69 @@ +package main + +import ( + "Open_IM/pkg/utils" + "context" + "fmt" + "go.mongodb.org/mongo-driver/bson" + "go.mongodb.org/mongo-driver/mongo" + "go.mongodb.org/mongo-driver/mongo/options" + "time" +) + +type MongoMsg struct { + UID string + Msg []string +} + + +func main() { + //"mongodb://%s:%s@%s/%s/?maxPoolSize=%d" + uri := "mongodb://user:pass@sample.host:27017/?maxPoolSize=20&w=majority" + DBAddress := "127.0.0.1:37017" + DBDatabase := "new-test-db" + Collection := "new-test-collection" + DBMaxPoolSize := 100 + uri = fmt.Sprintf("mongodb://%s/%s/?maxPoolSize=%d", + DBAddress,DBDatabase, + DBMaxPoolSize) + + mongoClient, err := mongo.Connect(context.TODO(), options.Client().ApplyURI(uri)) + if err != nil { + panic(err) + } + filter := bson.M{"uid":"my_uid"} + ctx, _ := context.WithTimeout(context.Background(), 30*time.Second) + for i:=0; i < 2; i++{ + + if err = mongoClient.Database(DBDatabase).Collection(Collection).FindOneAndUpdate(ctx, filter, + bson.M{"$push": bson.M{"msg": utils.Int32ToString(int32(i))}}).Err(); err != nil{ + fmt.Println("FindOneAndUpdate failed ", i, ) + var mmsg MongoMsg + mmsg.UID = "my_uid" + mmsg.Msg = append(mmsg.Msg, utils.Int32ToString(int32(i))) + _, err := mongoClient.Database(DBDatabase).Collection(Collection).InsertOne(ctx, &mmsg) + if err != nil { + fmt.Println("insertone failed ", err.Error(), i) + } else{ + fmt.Println("insertone ok ", i) + } + + }else { + fmt.Println("FindOneAndUpdate ok ", i) + } + + } + + var mmsg MongoMsg + + if err = mongoClient.Database(DBDatabase).Collection(Collection).FindOne(ctx, filter).Decode(&mmsg); err != nil { + fmt.Println("findone failed ", err.Error()) + }else{ + fmt.Println("findone ok ", mmsg.UID) + for i, v:=range mmsg.Msg{ + fmt.Println("find value: ", i, v) + } + } + + +} diff --git a/go.mod b/go.mod index 75e85fb3f..9fbbf033a 100644 --- a/go.mod +++ b/go.mod @@ -45,6 +45,7 @@ require ( github.com/tencentyun/qcloud-cos-sts-sdk v0.0.0-20210325043845-84a0811633ca github.com/tmc/grpc-websocket-proxy v0.0.0-20190109142713-0ad062ec5ee5 // indirect go.etcd.io/etcd v0.0.0-20200402134248-51bdeb39e698 + go.mongodb.org/mongo-driver v1.8.3 golang.org/x/image v0.0.0-20210220032944-ac19c3e999fb golang.org/x/net v0.0.0-20210917221730-978cfadd31cf google.golang.org/grpc v1.40.0 diff --git a/pkg/base_info/conversation_api_struct.go b/pkg/base_info/conversation_api_struct.go index bd54bafbf..95aa8527f 100644 --- a/pkg/base_info/conversation_api_struct.go +++ b/pkg/base_info/conversation_api_struct.go @@ -31,3 +31,18 @@ type SetReceiveMessageOptResp struct { CommResp ConversationOptResultList []*OptResult `json:"data"` } + +//type Conversation struct { +// OwnerUserID string `gorm:"column:owner_user_id;primary_key;type:char(128)" json:"OwnerUserID"` +// ConversationID string `gorm:"column:conversation_id;primary_key;type:char(128)" json:"conversationID"` +// ConversationType int32 `gorm:"column:conversation_type" json:"conversationType"` +// UserID string `gorm:"column:user_id;type:char(64)" json:"userID"` +// GroupID string `gorm:"column:group_id;type:char(128)" json:"groupID"` +// RecvMsgOpt int32 `gorm:"column:recv_msg_opt" json:"recvMsgOpt"` +// UnreadCount int32 `gorm:"column:unread_count" json:"unreadCount"` +// DraftTextTime int64 `gorm:"column:draft_text_time" json:"draftTextTime"` +// IsPinned bool `gorm:"column:is_pinned" json:"isPinned"` +// AttachedInfo string `gorm:"column:attached_info;type:varchar(1024)" json:"attachedInfo"` +// Ex string `gorm:"column:ex;type:varchar(1024)" json:"ex"` +//} + diff --git a/pkg/base_info/public_struct.go b/pkg/base_info/public_struct.go index 1e60ae294..2950dbea8 100644 --- a/pkg/base_info/public_struct.go +++ b/pkg/base_info/public_struct.go @@ -16,6 +16,20 @@ type ApiUserInfo struct { Ex string `json:"ex" binding:"omitempty,max=1024"` } +//type Conversation struct { +// OwnerUserID string `gorm:"column:owner_user_id;primary_key;type:char(128)" json:"OwnerUserID"` +// ConversationID string `gorm:"column:conversation_id;primary_key;type:char(128)" json:"conversationID"` +// ConversationType int32 `gorm:"column:conversation_type" json:"conversationType"` +// UserID string `gorm:"column:user_id;type:char(64)" json:"userID"` +// GroupID string `gorm:"column:group_id;type:char(128)" json:"groupID"` +// RecvMsgOpt int32 `gorm:"column:recv_msg_opt" json:"recvMsgOpt"` +// UnreadCount int32 `gorm:"column:unread_count" json:"unreadCount"` +// DraftTextTime int64 `gorm:"column:draft_text_time" json:"draftTextTime"` +// IsPinned bool `gorm:"column:is_pinned" json:"isPinned"` +// AttachedInfo string `gorm:"column:attached_info;type:varchar(1024)" json:"attachedInfo"` +// Ex string `gorm:"column:ex;type:varchar(1024)" json:"ex"` +//} + type GroupAddMemberInfo struct { UserID string `json:"userID" binding:"required"` RoleLevel int32 `json:"roleLevel" binding:"required"` diff --git a/pkg/common/constant/constant.go b/pkg/common/constant/constant.go index 34c075a00..dc67ab46e 100644 --- a/pkg/common/constant/constant.go +++ b/pkg/common/constant/constant.go @@ -176,3 +176,5 @@ func GroupIsBanPrivateChat(status int32) bool { } return true } + + const BigVersion = "v3" \ No newline at end of file diff --git a/pkg/common/db/model.go b/pkg/common/db/model.go index e2a1fb511..dada4137f 100644 --- a/pkg/common/db/model.go +++ b/pkg/common/db/model.go @@ -3,9 +3,16 @@ package db import ( "Open_IM/pkg/common/config" "Open_IM/pkg/common/log" + "context" + "fmt" "github.com/garyburd/redigo/redis" "gopkg.in/mgo.v2" "time" + + //"go.mongodb.org/mongo-driver/bson" + "go.mongodb.org/mongo-driver/mongo" + "go.mongodb.org/mongo-driver/mongo/options" + ) var DB DataBases @@ -14,6 +21,7 @@ type DataBases struct { MysqlDB mysqlDB mgoSession *mgo.Session redisPool *redis.Pool + mongoClient *mongo.Client } func key(dbAddress, dbName string) string { @@ -22,10 +30,21 @@ func key(dbAddress, dbName string) string { func init() { var mgoSession *mgo.Session + var mongoClient *mongo.Client var err1 error //mysql init initMysqlDB() // mongo init + // "mongodb://sysop:moon@localhost/records" + // uri := "mongodb://user:pass@sample.host:27017/?maxPoolSize=20&w=majority" + uri := fmt.Sprintf("mongodb://%s:%s@%s/%s/?maxPoolSize=%d", + config.Config.Mongo.DBUserName, config.Config.Mongo.DBPassword, + config.Config.Mongo.DBAddress[0],config.Config.Mongo.DBDatabase, + config.Config.Mongo.DBMaxPoolSize) + + mongoClient, err := mongo.Connect(context.TODO(), options.Client().ApplyURI(uri)) + + mgoDailInfo := &mgo.DialInfo{ Addrs: config.Config.Mongo.DBAddress, Direct: config.Config.Mongo.DBDirect, @@ -36,17 +55,19 @@ func init() { Password: config.Config.Mongo.DBPassword, PoolLimit: config.Config.Mongo.DBMaxPoolSize, } - mgoSession, err := mgo.DialWithInfo(mgoDailInfo) - if err != nil { - log.NewError("mgo init err", err.Error(), mgoDailInfo) - } + mgoSession, err = mgo.DialWithInfo(mgoDailInfo) + if err != nil { + log.NewError(" mongo.Connect failed, try ", err.Error(), uri) time.Sleep(time.Duration(30) * time.Second) + mongoClient, err1 = mongo.Connect(context.TODO(), options.Client().ApplyURI(uri)) mgoSession, err1 = mgo.DialWithInfo(mgoDailInfo) if err1 != nil { + log.NewError(" mongo.Connect failed, panic", err.Error(), uri) panic(err1.Error()) } } + DB.mongoClient = mongoClient DB.mgoSession = mgoSession DB.mgoSession.SetMode(mgo.Monotonic, true) c := DB.mgoSession.DB(config.Config.Mongo.DBDatabase).C(cChat) @@ -55,6 +76,7 @@ func init() { panic(err.Error()) } + // redis pool init DB.redisPool = &redis.Pool{ MaxIdle: config.Config.Redis.DBMaxIdle, diff --git a/pkg/common/db/mongoModel.go b/pkg/common/db/mongoModel.go index 98318dd65..7a9c4b302 100644 --- a/pkg/common/db/mongoModel.go +++ b/pkg/common/db/mongoModel.go @@ -6,10 +6,12 @@ import ( pbMsg "Open_IM/pkg/proto/chat" open_im_sdk "Open_IM/pkg/proto/sdk_ws" "Open_IM/pkg/utils" + "context" "errors" - "github.com/garyburd/redigo/redis" + //"github.com/garyburd/redigo/redis" "github.com/golang/protobuf/proto" "gopkg.in/mgo.v2/bson" + "strconv" "time" ) @@ -34,42 +36,97 @@ type GroupMember_x struct { } func (d *DataBases) GetMinSeqFromMongo(uid string) (MinSeq uint32, err error) { - var i, NB uint32 - var seqUid string + return 1, nil + //var i, NB uint32 + //var seqUid string + //session := d.mgoSession.Clone() + //if session == nil { + // return MinSeq, errors.New("session == nil") + //} + //defer session.Close() + //c := session.DB(config.Config.Mongo.DBDatabase).C(cChat) + //MaxSeq, err := d.GetUserMaxSeq(uid) + //if err != nil && err != redis.ErrNil { + // return MinSeq, err + //} + //NB = uint32(MaxSeq / singleGocMsgNum) + //for i = 0; i <= NB; i++ { + // seqUid = indexGen(uid, i) + // n, err := c.Find(bson.M{"uid": seqUid}).Count() + // if err == nil && n != 0 { + // if i == 0 { + // MinSeq = 1 + // } else { + // MinSeq = uint32(i * singleGocMsgNum) + // } + // break + // } + //} + //return MinSeq, nil +} + +func (d *DataBases) GetMsgBySeqList(uid string, seqList []uint32, operationID string) (seqMsg []*open_im_sdk.MsgData, err error) { + var hasSeqList []uint32 + singleCount := 0 session := d.mgoSession.Clone() if session == nil { - return MinSeq, errors.New("session == nil") + return nil, errors.New("session == nil") } defer session.Close() c := session.DB(config.Config.Mongo.DBDatabase).C(cChat) - MaxSeq, err := d.GetUserMaxSeq(uid) - if err != nil && err != redis.ErrNil { - return MinSeq, err - } - NB = uint32(MaxSeq / singleGocMsgNum) - for i = 0; i <= NB; i++ { - seqUid = indexGen(uid, i) - n, err := c.Find(bson.M{"uid": seqUid}).Count() - if err == nil && n != 0 { - if i == 0 { - MinSeq = 1 + m := func(uid string, seqList []uint32) map[string][]uint32 { + t := make(map[string][]uint32) + for i := 0; i < len(seqList); i++ { + seqUid := getSeqUid(uid, seqList[i]) + if value, ok := t[seqUid]; !ok { + var temp []uint32 + t[seqUid] = append(temp, seqList[i]) } else { - MinSeq = uint32(i * singleGocMsgNum) + t[seqUid] = append(value, seqList[i]) } - break } + return t + }(uid, seqList) + sChat := UserChat{} + for seqUid, value := range m { + if err = c.Find(bson.M{"uid": seqUid}).One(&sChat); err != nil { + log.NewError(operationID, "not find seqUid", seqUid, value, uid, seqList, err.Error()) + continue + } + singleCount = 0 + for i := 0; i < len(sChat.Msg); i++ { + msg := new(open_im_sdk.MsgData) + if err = proto.Unmarshal(sChat.Msg[i].Msg, msg); err != nil { + log.NewError(operationID, "Unmarshal err", seqUid, value, uid, seqList, err.Error()) + return nil, err + } + if isContainInt32(msg.Seq, value) { + seqMsg = append(seqMsg, msg) + hasSeqList = append(hasSeqList, msg.Seq) + singleCount++ + if singleCount == len(value) { + break + } + } + } + } + if len(hasSeqList) != len(seqList) { + var diff []uint32 + diff = utils.Difference(hasSeqList, seqList) + exceptionMSg := genExceptionMessageBySeqList(diff) + seqMsg = append(seqMsg, exceptionMSg...) + } - return MinSeq, nil + return seqMsg, nil } -func (d *DataBases) GetMsgBySeqList(uid string, seqList []uint32, operationID string) (seqMsg []*open_im_sdk.MsgData, err error) { + + +func (d *DataBases) GetMsgBySeqListMongo2(uid string, seqList []uint32, operationID string) (seqMsg []*open_im_sdk.MsgData, err error) { var hasSeqList []uint32 singleCount := 0 - session := d.mgoSession.Clone() - if session == nil { - return nil, errors.New("session == nil") - } - defer session.Close() - c := session.DB(config.Config.Mongo.DBDatabase).C(cChat) + ctx, _ := context.WithTimeout(context.Background(), time.Duration(config.Config.Mongo.DBTimeout)*time.Second) + c := d.mongoClient.Database(config.Config.Mongo.DBDatabase).Collection(cChat) + m := func(uid string, seqList []uint32) map[string][]uint32 { t := make(map[string][]uint32) for i := 0; i < len(seqList); i++ { @@ -85,7 +142,7 @@ func (d *DataBases) GetMsgBySeqList(uid string, seqList []uint32, operationID st }(uid, seqList) sChat := UserChat{} for seqUid, value := range m { - if err = c.Find(bson.M{"uid": seqUid}).One(&sChat); err != nil { + if err = c.FindOne(ctx, bson.M{"uid": seqUid}).Decode(&sChat); err != nil { log.NewError(operationID, "not find seqUid", seqUid, value, uid, seqList, err.Error()) continue } @@ -115,6 +172,8 @@ func (d *DataBases) GetMsgBySeqList(uid string, seqList []uint32, operationID st } return seqMsg, nil } + + func genExceptionMessageBySeqList(seqList []uint32) (exceptionMsg []*open_im_sdk.MsgData) { for _, v := range seqList { msg := new(open_im_sdk.MsgData) @@ -124,6 +183,37 @@ func genExceptionMessageBySeqList(seqList []uint32) (exceptionMsg []*open_im_sdk return exceptionMsg } +func (d *DataBases) SaveUserChatMongo2(uid string, sendTime int64, m *pbMsg.MsgDataToDB) error { + ctx, _ := context.WithTimeout(context.Background(), time.Duration(config.Config.Mongo.DBTimeout)*time.Second) + c := d.mongoClient.Database(config.Config.Mongo.DBDatabase).Collection(cChat) + newTime := getCurrentTimestampByMill() + operationID := "" + seqUid := getSeqUid(uid, m.MsgData.Seq) + filter := bson.M{"uid": seqUid} + var err error + sMsg := MsgInfo{} + sMsg.SendTime = sendTime + if sMsg.Msg, err = proto.Marshal(m.MsgData); err != nil { + return utils.Wrap(err,"") + } + err = c.FindOneAndUpdate(ctx, filter, bson.M{"$push": bson.M{"msg": sMsg}}).Err() + log.NewDebug(operationID, "get mgoSession cost time", getCurrentTimestampByMill()-newTime) + if err != nil { + sChat := UserChat{} + sChat.UID = seqUid + sChat.Msg = append(sChat.Msg, sMsg) + if _, err = c.InsertOne(ctx, &sChat) ; err != nil{ + log.NewDebug(operationID, "InsertOne failed", filter) + return utils.Wrap(err, "") + } + }else{ + log.NewDebug(operationID, "FindOneAndUpdate ok", filter) + } + + log.NewDebug(operationID, "find mgo uid cost time", getCurrentTimestampByMill()-newTime) + return nil +} + func (d *DataBases) SaveUserChat(uid string, sendTime int64, m *pbMsg.MsgDataToDB) error { var seqUid string newTime := getCurrentTimestampByMill() @@ -163,115 +253,137 @@ func (d *DataBases) SaveUserChat(uid string, sendTime int64, m *pbMsg.MsgDataToD return nil } + func (d *DataBases) DelUserChat(uid string) error { - session := d.mgoSession.Clone() - if session == nil { - return errors.New("session == nil") - } - defer session.Close() + return nil + //session := d.mgoSession.Clone() + //if session == nil { + // return errors.New("session == nil") + //} + //defer session.Close() + // + //c := session.DB(config.Config.Mongo.DBDatabase).C(cChat) + // + //delTime := time.Now().Unix() - int64(config.Config.Mongo.DBRetainChatRecords)*24*3600 + //if err := c.Update(bson.M{"uid": uid}, bson.M{"$pull": bson.M{"msg": bson.M{"sendtime": bson.M{"$lte": delTime}}}}); err != nil { + // return err + //} + // + //return nil +} - c := session.DB(config.Config.Mongo.DBDatabase).C(cChat) + +func (d *DataBases) DelUserChatMongo2(uid string) error { + ctx, _ := context.WithTimeout(context.Background(), time.Duration(config.Config.Mongo.DBTimeout)*time.Second) + c := d.mongoClient.Database(config.Config.Mongo.DBDatabase).Collection(cChat) + filter := bson.M{"uid": uid} delTime := time.Now().Unix() - int64(config.Config.Mongo.DBRetainChatRecords)*24*3600 - if err := c.Update(bson.M{"uid": uid}, bson.M{"$pull": bson.M{"msg": bson.M{"sendtime": bson.M{"$lte": delTime}}}}); err != nil { - return err + if _, err := c.UpdateOne(ctx, filter, bson.M{"$pull": bson.M{"msg": bson.M{"sendtime": bson.M{"$lte": delTime}}}}); err != nil { + return utils.Wrap(err, "") } - return nil } -func (d *DataBases) MgoUserCount() (int, error) { - session := d.mgoSession.Clone() - if session == nil { - return 0, errors.New("session == nil") - } - defer session.Close() - c := session.DB(config.Config.Mongo.DBDatabase).C(cChat) - return c.Find(nil).Count() +func (d *DataBases) MgoUserCount() (int, error) { + return 0, nil + //session := d.mgoSession.Clone() + //if session == nil { + // return 0, errors.New("session == nil") + //} + //defer session.Close() + // + //c := session.DB(config.Config.Mongo.DBDatabase).C(cChat) + // + //return c.Find(nil).Count() } func (d *DataBases) MgoSkipUID(count int) (string, error) { - session := d.mgoSession.Clone() - if session == nil { - return "", errors.New("session == nil") - } - defer session.Close() - - c := session.DB(config.Config.Mongo.DBDatabase).C(cChat) - - sChat := UserChat{} - c.Find(nil).Skip(count).Limit(1).One(&sChat) - return sChat.UID, nil + return "", nil + //session := d.mgoSession.Clone() + //if session == nil { + // return "", errors.New("session == nil") + //} + //defer session.Close() + // + //c := session.DB(config.Config.Mongo.DBDatabase).C(cChat) + // + //sChat := UserChat{} + //c.Find(nil).Skip(count).Limit(1).One(&sChat) + //return sChat.UID, nil } func (d *DataBases) GetGroupMember(groupID string) []string { - groupInfo := GroupMember_x{} - groupInfo.GroupID = groupID - groupInfo.UIDList = make([]string, 0) - - session := d.mgoSession.Clone() - if session == nil { - return groupInfo.UIDList - } - defer session.Close() - - c := session.DB(config.Config.Mongo.DBDatabase).C(cGroup) - - if err := c.Find(bson.M{"groupid": groupInfo.GroupID}).One(&groupInfo); err != nil { - return groupInfo.UIDList - } - - return groupInfo.UIDList + return nil + //groupInfo := GroupMember_x{} + //groupInfo.GroupID = groupID + //groupInfo.UIDList = make([]string, 0) + // + //session := d.mgoSession.Clone() + //if session == nil { + // return groupInfo.UIDList + //} + //defer session.Close() + // + //c := session.DB(config.Config.Mongo.DBDatabase).C(cGroup) + // + //if err := c.Find(bson.M{"groupid": groupInfo.GroupID}).One(&groupInfo); err != nil { + // return groupInfo.UIDList + //} + // + //return groupInfo.UIDList } func (d *DataBases) AddGroupMember(groupID, uid string) error { - session := d.mgoSession.Clone() - if session == nil { - return errors.New("session == nil") - } - defer session.Close() - - c := session.DB(config.Config.Mongo.DBDatabase).C(cGroup) - - n, err := c.Find(bson.M{"groupid": groupID}).Count() - if err != nil { - return err - } - - if n == 0 { - groupInfo := GroupMember_x{} - groupInfo.GroupID = groupID - groupInfo.UIDList = append(groupInfo.UIDList, uid) - err = c.Insert(&groupInfo) - if err != nil { - return err - } - } else { - err = c.Update(bson.M{"groupid": groupID}, bson.M{"$addToSet": bson.M{"uidlist": uid}}) - if err != nil { - return err - } - } - return nil + //session := d.mgoSession.Clone() + //if session == nil { + // return errors.New("session == nil") + //} + //defer session.Close() + // + //c := session.DB(config.Config.Mongo.DBDatabase).C(cGroup) + // + //n, err := c.Find(bson.M{"groupid": groupID}).Count() + //if err != nil { + // return err + //} + // + //if n == 0 { + // groupInfo := GroupMember_x{} + // groupInfo.GroupID = groupID + // groupInfo.UIDList = append(groupInfo.UIDList, uid) + // err = c.Insert(&groupInfo) + // if err != nil { + // return err + // } + //} else { + // err = c.Update(bson.M{"groupid": groupID}, bson.M{"$addToSet": bson.M{"uidlist": uid}}) + // if err != nil { + // return err + // } + //} + // + //return nil } func (d *DataBases) DelGroupMember(groupID, uid string) error { - session := d.mgoSession.Clone() - if session == nil { - return errors.New("session == nil") - } - defer session.Close() - - c := session.DB(config.Config.Mongo.DBDatabase).C(cGroup) - - if err := c.Update(bson.M{"groupid": groupID}, bson.M{"$pull": bson.M{"uidlist": uid}}); err != nil { - return err - } - return nil + //session := d.mgoSession.Clone() + //if session == nil { + // return errors.New("session == nil") + //} + //defer session.Close() + // + //c := session.DB(config.Config.Mongo.DBDatabase).C(cGroup) + // + //if err := c.Update(bson.M{"groupid": groupID}, bson.M{"$pull": bson.M{"uidlist": uid}}); err != nil { + // return err + //} + // + //return nil } func getCurrentTimestampByMill() int64 { From c962a19eb7c1d72d43cd079d4dd2f0ccedce5434 Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Mon, 21 Feb 2022 15:03:29 +0800 Subject: [PATCH 677/814] replace mongo driver --- internal/msg_transfer/logic/db.go | 3 ++- internal/rpc/msg/pull_message.go | 3 ++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/internal/msg_transfer/logic/db.go b/internal/msg_transfer/logic/db.go index b9ce8b589..549ebd1cf 100644 --- a/internal/msg_transfer/logic/db.go +++ b/internal/msg_transfer/logic/db.go @@ -18,5 +18,6 @@ func saveUserChat(uid string, msg *pbMsg.MsgDataToMQ) error { pbSaveData := pbMsg.MsgDataToDB{} pbSaveData.MsgData = msg.MsgData log.NewInfo(msg.OperationID, "IncrUserSeq cost time", utils.GetCurrentTimestampByMill()-time) - return db.DB.SaveUserChat(uid, pbSaveData.MsgData.SendTime, &pbSaveData) +// return db.DB.SaveUserChat(uid, pbSaveData.MsgData.SendTime, &pbSaveData) + return db.DB.SaveUserChatMongo2(uid, pbSaveData.MsgData.SendTime, &pbSaveData) } diff --git a/internal/rpc/msg/pull_message.go b/internal/rpc/msg/pull_message.go index 05f1dad39..56b79e39f 100644 --- a/internal/rpc/msg/pull_message.go +++ b/internal/rpc/msg/pull_message.go @@ -39,7 +39,8 @@ func (rpc *rpcChat) GetMaxAndMinSeq(_ context.Context, in *pbMsg.GetMaxAndMinSeq func (rpc *rpcChat) PullMessageBySeqList(_ context.Context, in *open_im_sdk.PullMessageBySeqListReq) (*open_im_sdk.PullMessageBySeqListResp, error) { log.NewInfo(in.OperationID, "rpc PullMessageBySeqList is arriving", in.String()) resp := new(open_im_sdk.PullMessageBySeqListResp) - msgList, err := commonDB.DB.GetMsgBySeqList(in.UserID, in.SeqList, in.OperationID) +// msgList, err := commonDB.DB.GetMsgBySeqList(in.UserID, in.SeqList, in.OperationID) + msgList, err := commonDB.DB.GetMsgBySeqListMongo2(in.UserID, in.SeqList, in.OperationID) if err != nil { log.ErrorByKv("PullMessageBySeqList data error", in.OperationID, in.String()) resp.ErrCode = 201 From bf948789ea5c2485e9564297475f3274f57ff6ac Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Mon, 21 Feb 2022 15:07:50 +0800 Subject: [PATCH 678/814] replace mongo driver --- cmd/Open-IM-SDK-Core | 2 +- config/config.yaml | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/cmd/Open-IM-SDK-Core b/cmd/Open-IM-SDK-Core index bdb27fcff..855e89361 160000 --- a/cmd/Open-IM-SDK-Core +++ b/cmd/Open-IM-SDK-Core @@ -1 +1 @@ -Subproject commit bdb27fcff0e9785cb0f92d9d04bdafe544a04de0 +Subproject commit 855e893610c905e3105484c3519613b993301bd2 diff --git a/config/config.yaml b/config/config.yaml index da820f3c5..08fb9d7e4 100644 --- a/config/config.yaml +++ b/config/config.yaml @@ -450,7 +450,8 @@ notification: #---------------demo configuration---------------------# #The following configuration items are applied to openIM Demo configuration -demoswitch: true #是否启动demo,如果自身没有账号体系,设置为true +#是否启动demo,如果自身没有账号体系,设置为true +demoswitch: true demo: openImDemoPort: [ 42233 ] #demo对外服务端口,默认即可,需要开放此端口或做nginx转发 alismsverify: #阿里云短信配置,在阿里云申请成功后修改以下四项,必须修改 From 53a4b90d96d9dea42056da3dfb69c573313693f9 Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Mon, 21 Feb 2022 15:12:48 +0800 Subject: [PATCH 679/814] replace mongo driver --- pkg/common/db/model.go | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/pkg/common/db/model.go b/pkg/common/db/model.go index dada4137f..729e1323e 100644 --- a/pkg/common/db/model.go +++ b/pkg/common/db/model.go @@ -61,6 +61,10 @@ func init() { log.NewError(" mongo.Connect failed, try ", err.Error(), uri) time.Sleep(time.Duration(30) * time.Second) mongoClient, err1 = mongo.Connect(context.TODO(), options.Client().ApplyURI(uri)) + if err1 != nil { + log.NewError(" mongo.Connect failed, panic", err.Error(), uri) + panic(err1.Error()) + } mgoSession, err1 = mgo.DialWithInfo(mgoDailInfo) if err1 != nil { log.NewError(" mongo.Connect failed, panic", err.Error(), uri) From ede3b07963a82527f438cc610a4350ed2965e123 Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Mon, 21 Feb 2022 15:14:24 +0800 Subject: [PATCH 680/814] replace mongo driver --- pkg/common/db/model.go | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/pkg/common/db/model.go b/pkg/common/db/model.go index 729e1323e..f6f074c48 100644 --- a/pkg/common/db/model.go +++ b/pkg/common/db/model.go @@ -43,6 +43,16 @@ func init() { config.Config.Mongo.DBMaxPoolSize) mongoClient, err := mongo.Connect(context.TODO(), options.Client().ApplyURI(uri)) + if err != nil{ + log.NewError(" mongo.Connect failed, try ", err.Error(), uri) + time.Sleep(time.Duration(30) * time.Second) + mongoClient, err1 = mongo.Connect(context.TODO(), options.Client().ApplyURI(uri)) + if err1 != nil { + log.NewError(" mongo.Connect failed, panic", err.Error(), uri) + panic(err1.Error()) + } + } + mgoDailInfo := &mgo.DialInfo{ @@ -58,13 +68,7 @@ func init() { mgoSession, err = mgo.DialWithInfo(mgoDailInfo) if err != nil { - log.NewError(" mongo.Connect failed, try ", err.Error(), uri) - time.Sleep(time.Duration(30) * time.Second) - mongoClient, err1 = mongo.Connect(context.TODO(), options.Client().ApplyURI(uri)) - if err1 != nil { - log.NewError(" mongo.Connect failed, panic", err.Error(), uri) - panic(err1.Error()) - } + mgoSession, err1 = mgo.DialWithInfo(mgoDailInfo) if err1 != nil { log.NewError(" mongo.Connect failed, panic", err.Error(), uri) From 9a35af9fb2beb3aa43572184b1a10b83e6484420 Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Mon, 21 Feb 2022 15:17:55 +0800 Subject: [PATCH 681/814] replace mongo driver --- internal/msg_transfer/logic/db.go | 4 ++-- internal/rpc/msg/pull_message.go | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/internal/msg_transfer/logic/db.go b/internal/msg_transfer/logic/db.go index 549ebd1cf..edc269f9f 100644 --- a/internal/msg_transfer/logic/db.go +++ b/internal/msg_transfer/logic/db.go @@ -18,6 +18,6 @@ func saveUserChat(uid string, msg *pbMsg.MsgDataToMQ) error { pbSaveData := pbMsg.MsgDataToDB{} pbSaveData.MsgData = msg.MsgData log.NewInfo(msg.OperationID, "IncrUserSeq cost time", utils.GetCurrentTimestampByMill()-time) -// return db.DB.SaveUserChat(uid, pbSaveData.MsgData.SendTime, &pbSaveData) - return db.DB.SaveUserChatMongo2(uid, pbSaveData.MsgData.SendTime, &pbSaveData) + return db.DB.SaveUserChat(uid, pbSaveData.MsgData.SendTime, &pbSaveData) +// return db.DB.SaveUserChatMongo2(uid, pbSaveData.MsgData.SendTime, &pbSaveData) } diff --git a/internal/rpc/msg/pull_message.go b/internal/rpc/msg/pull_message.go index 56b79e39f..126c6eb29 100644 --- a/internal/rpc/msg/pull_message.go +++ b/internal/rpc/msg/pull_message.go @@ -39,8 +39,8 @@ func (rpc *rpcChat) GetMaxAndMinSeq(_ context.Context, in *pbMsg.GetMaxAndMinSeq func (rpc *rpcChat) PullMessageBySeqList(_ context.Context, in *open_im_sdk.PullMessageBySeqListReq) (*open_im_sdk.PullMessageBySeqListResp, error) { log.NewInfo(in.OperationID, "rpc PullMessageBySeqList is arriving", in.String()) resp := new(open_im_sdk.PullMessageBySeqListResp) -// msgList, err := commonDB.DB.GetMsgBySeqList(in.UserID, in.SeqList, in.OperationID) - msgList, err := commonDB.DB.GetMsgBySeqListMongo2(in.UserID, in.SeqList, in.OperationID) + msgList, err := commonDB.DB.GetMsgBySeqList(in.UserID, in.SeqList, in.OperationID) +// msgList, err := commonDB.DB.GetMsgBySeqListMongo2(in.UserID, in.SeqList, in.OperationID) if err != nil { log.ErrorByKv("PullMessageBySeqList data error", in.OperationID, in.String()) resp.ErrCode = 201 From 7cf712daff2171b7b69ad5e08e51bc1835a4d7db Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Mon, 21 Feb 2022 15:20:39 +0800 Subject: [PATCH 682/814] replace mongo driver --- pkg/common/db/model.go | 30 +++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/pkg/common/db/model.go b/pkg/common/db/model.go index f6f074c48..c61416dd4 100644 --- a/pkg/common/db/model.go +++ b/pkg/common/db/model.go @@ -37,21 +37,21 @@ func init() { // mongo init // "mongodb://sysop:moon@localhost/records" // uri := "mongodb://user:pass@sample.host:27017/?maxPoolSize=20&w=majority" - uri := fmt.Sprintf("mongodb://%s:%s@%s/%s/?maxPoolSize=%d", - config.Config.Mongo.DBUserName, config.Config.Mongo.DBPassword, - config.Config.Mongo.DBAddress[0],config.Config.Mongo.DBDatabase, - config.Config.Mongo.DBMaxPoolSize) - - mongoClient, err := mongo.Connect(context.TODO(), options.Client().ApplyURI(uri)) - if err != nil{ - log.NewError(" mongo.Connect failed, try ", err.Error(), uri) - time.Sleep(time.Duration(30) * time.Second) - mongoClient, err1 = mongo.Connect(context.TODO(), options.Client().ApplyURI(uri)) - if err1 != nil { - log.NewError(" mongo.Connect failed, panic", err.Error(), uri) - panic(err1.Error()) - } - } + //uri := fmt.Sprintf("mongodb://%s:%s@%s/%s/?maxPoolSize=%d", + // config.Config.Mongo.DBUserName, config.Config.Mongo.DBPassword, + // config.Config.Mongo.DBAddress[0],config.Config.Mongo.DBDatabase, + // config.Config.Mongo.DBMaxPoolSize) + // + //mongoClient, err := mongo.Connect(context.TODO(), options.Client().ApplyURI(uri)) + //if err != nil{ + // log.NewError(" mongo.Connect failed, try ", err.Error(), uri) + // time.Sleep(time.Duration(30) * time.Second) + // mongoClient, err1 = mongo.Connect(context.TODO(), options.Client().ApplyURI(uri)) + // if err1 != nil { + // log.NewError(" mongo.Connect failed, panic", err.Error(), uri) + // panic(err1.Error()) + // } + //} From 996570cc57d3c1fd68becff3ad17a1cce5c0a8a5 Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Mon, 21 Feb 2022 15:21:45 +0800 Subject: [PATCH 683/814] replace mongo driver --- pkg/common/db/model.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkg/common/db/model.go b/pkg/common/db/model.go index c61416dd4..2dbc3bb8c 100644 --- a/pkg/common/db/model.go +++ b/pkg/common/db/model.go @@ -65,7 +65,7 @@ func init() { Password: config.Config.Mongo.DBPassword, PoolLimit: config.Config.Mongo.DBMaxPoolSize, } - mgoSession, err = mgo.DialWithInfo(mgoDailInfo) + mgoSession, err := mgo.DialWithInfo(mgoDailInfo) if err != nil { From ec023ec13e464840dbd67ce87d88f63ba3f55fc4 Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Mon, 21 Feb 2022 15:22:12 +0800 Subject: [PATCH 684/814] replace mongo driver --- pkg/common/db/model.go | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkg/common/db/model.go b/pkg/common/db/model.go index 2dbc3bb8c..cfa2a566a 100644 --- a/pkg/common/db/model.go +++ b/pkg/common/db/model.go @@ -3,15 +3,15 @@ package db import ( "Open_IM/pkg/common/config" "Open_IM/pkg/common/log" - "context" - "fmt" +// "context" +// "fmt" "github.com/garyburd/redigo/redis" "gopkg.in/mgo.v2" "time" //"go.mongodb.org/mongo-driver/bson" "go.mongodb.org/mongo-driver/mongo" - "go.mongodb.org/mongo-driver/mongo/options" +// "go.mongodb.org/mongo-driver/mongo/options" ) From 1e05811c137cc54f20975fc86aa74ecfe4c2c163 Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Mon, 21 Feb 2022 15:22:40 +0800 Subject: [PATCH 685/814] replace mongo driver --- pkg/common/db/model.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkg/common/db/model.go b/pkg/common/db/model.go index cfa2a566a..201e5e7cc 100644 --- a/pkg/common/db/model.go +++ b/pkg/common/db/model.go @@ -71,7 +71,7 @@ func init() { mgoSession, err1 = mgo.DialWithInfo(mgoDailInfo) if err1 != nil { - log.NewError(" mongo.Connect failed, panic", err.Error(), uri) +// log.NewError(" mongo.Connect failed, panic", err.Error(), uri) panic(err1.Error()) } } From 2171acc90928fb0dd90026361cb56c11e1770e76 Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Mon, 21 Feb 2022 15:23:04 +0800 Subject: [PATCH 686/814] replace mongo driver --- pkg/common/db/model.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkg/common/db/model.go b/pkg/common/db/model.go index 201e5e7cc..f990d95a3 100644 --- a/pkg/common/db/model.go +++ b/pkg/common/db/model.go @@ -71,7 +71,7 @@ func init() { mgoSession, err1 = mgo.DialWithInfo(mgoDailInfo) if err1 != nil { -// log.NewError(" mongo.Connect failed, panic", err.Error(), uri) + log.NewError(" mongo.Connect failed, panic", err.Error()) panic(err1.Error()) } } From 4d28ccebad1af79d6637fd66e3b3858ea6cc1d75 Mon Sep 17 00:00:00 2001 From: wangchuxiao Date: Mon, 21 Feb 2022 16:24:25 +0800 Subject: [PATCH 687/814] add reset pwd --- cmd/open_im_demo/main.go | 1 + internal/cms_api/statistics/statistics.go | 10 ++-- internal/demo/register/reset_password.go | 56 +++++++++++++++++++ internal/demo/register/send_code.go | 38 ++++++++----- internal/demo/register/set_password.go | 7 ++- internal/demo/register/verify.go | 1 + pkg/common/constant/constant.go | 6 ++ pkg/common/constant/error.go | 1 + .../mysql_model/im_mysql_model/demo_model.go | 12 ++++ pkg/common/db/redisModel.go | 14 +++-- 10 files changed, 118 insertions(+), 28 deletions(-) create mode 100644 internal/demo/register/reset_password.go diff --git a/cmd/open_im_demo/main.go b/cmd/open_im_demo/main.go index 58ef79c9a..430b0faaf 100644 --- a/cmd/open_im_demo/main.go +++ b/cmd/open_im_demo/main.go @@ -21,6 +21,7 @@ func main() { authRouterGroup.POST("/verify", register.Verify) authRouterGroup.POST("/password", register.SetPassword) authRouterGroup.POST("/login", register.Login) + authRouterGroup.POST("/reset_password", register.ResetPassword) } log.NewPrivateLog("demo") ginPort := flag.Int("port", 42233, "get ginServerPort from cmd,default 42233 as port") diff --git a/internal/cms_api/statistics/statistics.go b/internal/cms_api/statistics/statistics.go index fd6485591..791e21c6d 100644 --- a/internal/cms_api/statistics/statistics.go +++ b/internal/cms_api/statistics/statistics.go @@ -32,7 +32,7 @@ func GetMessagesStatistics(c *gin.Context) { client := pb.NewUserClient(etcdConn) respPb, err := client.GetMessageStatistics(context.Background(), &reqPb) if err != nil { - openIMHttp.RespHttp200(c, constant.ErrServer, resp) + openIMHttp.RespHttp200(c, err, resp) log.NewError("0", utils.GetSelfFuncName(), err.Error()) return } @@ -78,7 +78,7 @@ func GetUserStatistics(c *gin.Context) { respPb, err := client.GetUserStatistics(context.Background(), &reqPb) if err != nil { log.NewError("0", utils.GetSelfFuncName(), err.Error()) - openIMHttp.RespHttp200(c, constant.ErrServer, nil) + openIMHttp.RespHttp200(c, err, nil) return } // utils.CopyStructFields(&resp, respPb) @@ -132,7 +132,7 @@ func GetGroupStatistics(c *gin.Context) { client := pb.NewUserClient(etcdConn) respPb, err := client.GetGroupStatistics(context.Background(), &reqPb) if err != nil { - openIMHttp.RespHttp200(c, constant.ErrServer, nil) + openIMHttp.RespHttp200(c, err, nil) return } // utils.CopyStructFields(&resp, respPb) @@ -179,7 +179,7 @@ func GetActiveUser(c *gin.Context) { client := pb.NewUserClient(etcdConn) respPb, err := client.GetActiveUser(context.Background(), &reqPb) if err != nil { - openIMHttp.RespHttp200(c, constant.ErrServer, nil) + openIMHttp.RespHttp200(c, err, nil) return } utils.CopyStructFields(&resp.ActiveUserList, respPb.Users) @@ -204,7 +204,7 @@ func GetActiveGroup(c *gin.Context) { respPb, err := client.GetActiveGroup(context.Background(), &reqPb) if err != nil { log.NewError("0", "BindJSON failed ", err.Error()) - openIMHttp.RespHttp200(c, constant.ErrServer, nil) + openIMHttp.RespHttp200(c, err, nil) return } for _, group := range respPb.Groups { diff --git a/internal/demo/register/reset_password.go b/internal/demo/register/reset_password.go new file mode 100644 index 000000000..0ff7115a0 --- /dev/null +++ b/internal/demo/register/reset_password.go @@ -0,0 +1,56 @@ +package register + +import ( + "Open_IM/pkg/common/config" + "Open_IM/pkg/common/constant" + "Open_IM/pkg/common/db" + "Open_IM/pkg/common/db/mysql_model/im_mysql_model" + "Open_IM/pkg/common/log" + "Open_IM/pkg/utils" + "github.com/gin-gonic/gin" + "net/http" +) + +type resetPasswordRequest struct { + VerificationCode string `json:"verificationCode"` + Email string `json:"email"` + PhoneNumber string `json:"phoneNumber"` + NewPassword string `json:"newPassword"` + OperationID string `json:"operationID"` +} + +func ResetPassword(c *gin.Context) { + var ( + req resetPasswordRequest + ) + if err := c.BindJSON(&req); err != nil { + c.JSON(http.StatusBadRequest, gin.H{"errCode": constant.FormattingError, "errMsg": err.Error()}) + return + } + var account string + if req.Email != "" { + account = req.Email + } else { + account = req.PhoneNumber + } + if req.VerificationCode != config.Config.Demo.SuperCode { + accountKey := account + "_" + constant.VerificationCodeForResetSuffix + v, err := db.DB.GetAccountCode(accountKey) + if err != nil || v != req.VerificationCode { + log.NewError(req.OperationID, "password Verification code error", account, req.VerificationCode, v) + c.JSON(http.StatusOK, gin.H{"errCode": constant.CodeInvalidOrExpired, "errMsg": "Verification code error!"}) + return + } + } + user, err := im_mysql_model.GetRegister(account) + if err != nil || user.Account == "" { + log.NewError(req.OperationID, utils.GetSelfFuncName(), "get register error", err.Error()) + c.JSON(http.StatusOK, gin.H{"errCode": constant.NotRegistered, "errMsg": "user not register!"}) + return + } + if err := im_mysql_model.ResetPassword(account, req.NewPassword); err != nil { + c.JSON(http.StatusOK, gin.H{"errCode": constant.ResetPasswordFailed, "errMsg": "reset password failed: "+err.Error()}) + return + } + c.JSON(http.StatusOK, gin.H{"errCode": constant.NoError, "errMsg": "reset password success"}) +} diff --git a/internal/demo/register/send_code.go b/internal/demo/register/send_code.go index 5d6e3e20f..2b890a308 100644 --- a/internal/demo/register/send_code.go +++ b/internal/demo/register/send_code.go @@ -21,6 +21,7 @@ type paramsVerificationCode struct { Email string `json:"email"` PhoneNumber string `json:"phoneNumber"` OperationID string `json:"operationID" binding:"required"` + UsedFor int `json:"usedFor" binding:"required"` } func SendVerificationCode(c *gin.Context) { @@ -36,25 +37,32 @@ func SendVerificationCode(c *gin.Context) { } else { account = params.PhoneNumber } - _, err := im_mysql_model.GetRegister(account) - if err == nil { - log.NewError(params.OperationID, "The phone number has been registered", params) - c.JSON(http.StatusOK, gin.H{"errCode": constant.HasRegistered, "errMsg": ""}) - return - } - ok, err := db.DB.JudgeAccountEXISTS(account) - if ok || err != nil { - log.NewError(params.OperationID, "The phone number has been registered", params) - c.JSON(http.StatusOK, gin.H{"errCode": constant.RepeatSendCode, "errMsg": ""}) - return + var accountKey string + switch params.UsedFor { + case constant.VerificationCodeForRegister: + _, err := im_mysql_model.GetRegister(account) + if err == nil { + log.NewError(params.OperationID, "The phone number has been registered", params) + c.JSON(http.StatusOK, gin.H{"errCode": constant.HasRegistered, "errMsg": ""}) + return + } + ok, err := db.DB.JudgeAccountEXISTS(account) + if ok || err != nil { + log.NewError(params.OperationID, "The phone number has been registered", params) + c.JSON(http.StatusOK, gin.H{"errCode": constant.RepeatSendCode, "errMsg": ""}) + return + } + accountKey = account + "_" + constant.VerificationCodeForRegisterSuffix + + case constant.VerificationCodeForReset: + accountKey = account + "_" + constant.VerificationCodeForResetSuffix } - log.InfoByKv("begin sendSms", account) + log.NewInfo(params.OperationID, params.UsedFor,"begin store redis", accountKey) rand.Seed(time.Now().UnixNano()) code := 100000 + rand.Intn(900000) - log.NewInfo(params.OperationID, "begin store redis", account) - err = db.DB.SetAccountCode(account, code, config.Config.Demo.CodeTTL) + err := db.DB.SetAccountCode(accountKey, code, config.Config.Demo.CodeTTL) if err != nil { - log.NewError(params.OperationID, "set redis error", account, "err", err.Error()) + log.NewError(params.OperationID, "set redis error", accountKey, "err", err.Error()) c.JSON(http.StatusOK, gin.H{"errCode": constant.SmsSendCodeErr, "errMsg": "Enter the superCode directly in the verification code box, SuperCode can be configured in config.xml"}) return } diff --git a/internal/demo/register/set_password.go b/internal/demo/register/set_password.go index a0558fa5a..7e27e04b3 100644 --- a/internal/demo/register/set_password.go +++ b/internal/demo/register/set_password.go @@ -11,7 +11,6 @@ import ( "Open_IM/pkg/utils" "encoding/json" "fmt" - "github.com/garyburd/redigo/redis" "github.com/gin-gonic/gin" "net/http" ) @@ -29,6 +28,7 @@ type ParamsSetPassword struct { func SetPassword(c *gin.Context) { params := ParamsSetPassword{} if err := c.BindJSON(¶ms); err != nil { + log.NewError(params.OperationID, utils.GetSelfFuncName(), "bind json failed", err.Error()) c.JSON(http.StatusBadRequest, gin.H{"errCode": constant.FormattingError, "errMsg": err.Error()}) return } @@ -39,7 +39,8 @@ func SetPassword(c *gin.Context) { account = params.PhoneNumber } if params.VerificationCode != config.Config.Demo.SuperCode { - v, err := redis.String(db.DB.Exec("GET", account)) + accountKey := account + "_" + constant.VerificationCodeForRegisterSuffix + v, err := db.DB.GetAccountCode(accountKey) if err != nil || v != params.VerificationCode { log.NewError(params.OperationID, "password Verification code error", account, params.VerificationCode) data := make(map[string]interface{}) @@ -65,7 +66,7 @@ func SetPassword(c *gin.Context) { err = json.Unmarshal(bMsg, &openIMRegisterResp) if err != nil || openIMRegisterResp.ErrCode != 0 { log.NewError(params.OperationID, "request openIM register error", account, "err", "") - c.JSON(http.StatusOK, gin.H{"errCode": constant.RegisterFailed, "errMsg": ""}) + c.JSON(http.StatusOK, gin.H{"errCode": constant.RegisterFailed, "errMsg": "register failed: "+openIMRegisterResp.ErrMsg}) return } log.Info(params.OperationID, "begin store mysql", account, params.Password) diff --git a/internal/demo/register/verify.go b/internal/demo/register/verify.go index d74ce1f66..c4e1b0c78 100644 --- a/internal/demo/register/verify.go +++ b/internal/demo/register/verify.go @@ -15,6 +15,7 @@ type paramsCertification struct { PhoneNumber string `json:"phoneNumber"` VerificationCode string `json:"verificationCode"` OperationID string `json:"operationID" binding:"required"` + UsedFor int `json:"usedFor" binding:"required"` } func Verify(c *gin.Context) { diff --git a/pkg/common/constant/constant.go b/pkg/common/constant/constant.go index 34c075a00..5b90f5132 100644 --- a/pkg/common/constant/constant.go +++ b/pkg/common/constant/constant.go @@ -124,6 +124,12 @@ const ( //Minio MinioDurationTimes = 3600 + + // verificationCode used for + VerificationCodeForRegister = 1 + VerificationCodeForReset = 2 + VerificationCodeForRegisterSuffix = "_forRegister" + VerificationCodeForResetSuffix = "_forReset" ) var ContentType2PushContent = map[int64]string{ diff --git a/pkg/common/constant/error.go b/pkg/common/constant/error.go index 923d0bbd8..339f2c953 100644 --- a/pkg/common/constant/error.go +++ b/pkg/common/constant/error.go @@ -80,6 +80,7 @@ const ( SmsSendCodeErr = 10008 CodeInvalidOrExpired = 10009 RegisterFailed = 10010 + ResetPasswordFailed = 10011 DatabaseError = 10002 ServerError = 10004 HttpError = 10005 diff --git a/pkg/common/db/mysql_model/im_mysql_model/demo_model.go b/pkg/common/db/mysql_model/im_mysql_model/demo_model.go index 5af615f97..2e5d7df86 100644 --- a/pkg/common/db/mysql_model/im_mysql_model/demo_model.go +++ b/pkg/common/db/mysql_model/im_mysql_model/demo_model.go @@ -14,6 +14,7 @@ func GetRegister(account string) (*db.Register, error) { return &r, dbConn.Table("registers").Where("account = ?", account).Take(&r).Error } + func SetPassword(account, password, ex string) error { r := db.Register{ Account: account, @@ -25,5 +26,16 @@ func SetPassword(account, password, ex string) error { return err } return dbConn.Table("registers").Create(&r).Error +} +func ResetPassword(account, password string) error { + r := db.Register{ + Password:password, + } + dbConn, err := db.DB.MysqlDB.DefaultGormDB() + dbConn.LogMode(true) + if err != nil { + return err + } + return dbConn.Table("registers").Where("account = ?", account).Update(&r).Error } diff --git a/pkg/common/db/redisModel.go b/pkg/common/db/redisModel.go index a314090e4..08c11cf56 100644 --- a/pkg/common/db/redisModel.go +++ b/pkg/common/db/redisModel.go @@ -3,11 +3,13 @@ package db import ( "Open_IM/pkg/common/constant" log2 "Open_IM/pkg/common/log" + "fmt" "github.com/garyburd/redigo/redis" ) const ( - registerAccountTempCode = "REGISTER_ACCOUNT_TEMP_CODE" + AccountTempCode = "ACCOUNT_TEMP_CODE" + resetPwdTempCode = "RESET_PWD_TEMP_CODE" userIncrSeq = "REDIS_USER_INCR_SEQ:" // user incr seq appleDeviceToken = "DEVICE_TOKEN" userMinSeq = "REDIS_USER_MIN_SEQ:" @@ -35,19 +37,21 @@ func (d *DataBases) Exec(cmd string, key interface{}, args ...interface{}) (inte return con.Do(cmd, params...) } func (d *DataBases) JudgeAccountEXISTS(account string) (bool, error) { - key := registerAccountTempCode + account + key := AccountTempCode + account return redis.Bool(d.Exec("EXISTS", key)) } func (d *DataBases) SetAccountCode(account string, code, ttl int) (err error) { - key := registerAccountTempCode + account - _, err = d.Exec("Set", key, code, ttl) + key := AccountTempCode + account + _, err = d.Exec("SET", key, code) return err } func (d *DataBases) GetAccountCode(account string) (string, error) { - key := userIncrSeq + account + key := AccountTempCode + account + fmt.Println(key) return redis.String(d.Exec("GET", key)) } + //Perform seq auto-increment operation of user messages func (d *DataBases) IncrUserSeq(uid string) (uint64, error) { key := userIncrSeq + uid From a3fb32dfc67080c175a055b3758bb817be6ea3cf Mon Sep 17 00:00:00 2001 From: wangchuxiao Date: Mon, 21 Feb 2022 16:41:56 +0800 Subject: [PATCH 688/814] fix bug and add reset pwd api --- config/config.yaml | 119 ++++++++++++++++--------------- go.sum | 20 +++++- internal/api/third/minio_init.go | 11 ++- 3 files changed, 85 insertions(+), 65 deletions(-) diff --git a/config/config.yaml b/config/config.yaml index 08fb9d7e4..ed82b6748 100644 --- a/config/config.yaml +++ b/config/config.yaml @@ -1,47 +1,47 @@ # The class cannot be named by Pascal or camel case. # If it is not used, the corresponding structure will not be set, # and it will not be read naturally. -serverversion: 3.0.0 +serverversion: 1.0.3 #---------------Infrastructure configuration---------------------# etcd: - etcdSchema: openIM #默认即可 - etcdAddr: [ 127.0.0.1:2379 ] #单机部署时,默认即可 + etcdSchema: openIM + etcdAddr: [ 127.0.0.1:2379 ] mysql: - dbMysqlAddress: [ 127.0.0.1:13306 ] #mysql地址 目前仅支持单机,默认即可 - dbMysqlUserName: root #mysql用户名,建议修改 - dbMysqlPassword: openIM # mysql密码,建议修改 - dbMysqlDatabaseName: openIM #默认即可 - dbTableName: eMsg #默认即可 + dbMysqlAddress: [ 127.0.0.1:13306 ] + dbMysqlUserName: root + dbMysqlPassword: openIM + dbMysqlDatabaseName: openIM + dbTableName: eMsg dbMsgTableNum: 1 dbMaxOpenConns: 20 dbMaxIdleConns: 10 dbMaxLifeTime: 120 mongo: - dbAddress: [ 127.0.0.1:37017 ] #redis地址 目前仅支持单机,默认即可 + dbAddress: [ 127.0.0.1:37017 ] dbDirect: false dbTimeout: 10 - dbDatabase: openIM #mongo db 默认即可 + dbDatabase: openIM dbSource: admin - dbUserName: #mongo用户名,建议修改 - dbPassword: #mongo密码,建议修改 + dbUserName: + dbPassword: dbMaxPoolSize: 20 - dbRetainChatRecords: 3650 #mongo保存离线消息时间(天) + dbRetainChatRecords: 7 redis: - dbAddress: 127.0.0.1:16379 #redis地址 目前仅支持单机,默认即可 + dbAddress: 127.0.0.1:16379 dbMaxIdle: 128 dbMaxActive: 0 dbIdleTimeout: 120 - dbPassWord: openIM #redis密码 建议修改 + dbPassWord: openIM kafka: ws2mschat: - addr: [ 127.0.0.1:9092 ] #kafka配置,默认即可 + addr: [ 127.0.0.1:9092 ] topic: "ws2ms_chat" ms2pschat: - addr: [ 127.0.0.1:9092 ] #kafka配置,默认即可 + addr: [ 127.0.0.1:9092 ] topic: "ms2ps_chat" consumergroupid: msgToMongo: mongo @@ -55,7 +55,6 @@ kafka: # The service ip default is empty, # automatically obtain the machine's valid network card ip as the service ip, # otherwise the configuration ip is preferred -#如果是单机模式,用0.0.0.0或者不填,默认即可 serverip: 0.0.0.0 # endpoints 内部组件间访问的端点host名称,访问时,可以内部直接访问 host:port 来访问 @@ -74,22 +73,27 @@ endpoints: rpc_message_cms: openim_rpc_admin_cms api: - openImApiPort: [ 10000 ] #api服务端口,默认即可,注意开放此端口或做nginx转发 + openImApiPort: [ 10000 ] cmsapi: - openImCmsApiPort: [ 8000 ] #管理后台api服务端口,默认即可,注意开放此端口或做nginx转发 + openImCmsApiPort: [ 8000 ] sdk: - openImSdkWsPort: [ 30000 ] #jssdk服务端口,默认即可,项目中使用jssdk才需开放此端口或做nginx转发 + openImSdkWsPort: [ 30000 ] -credential: #腾讯cos,发送图片、视频、文件时需要,请自行申请后替换,必须修改 +credential: tencent: appID: 1302656840 region: ap-chengdu bucket: echat-1302656840 secretID: AKIDGNYVChzIQinu7QEgtNp0hnNgqcV8vZTC secretKey: kz15vW83qM6dBUWIq681eBZA0c0vlIbe - - -rpcport: #rpc服务端口 默认即可 + minio: + bucket: openim + location: us-east-1 + endpoint: http://127.0.0.1:9000 + accessKeyID: minioadmin + secretAccessKey: minioadmin + +rpcport: openImUserPort: [ 10100 ] openImFriendPort: [ 10200 ] openImOfflineMessagePort: [ 10300 ] @@ -110,7 +114,7 @@ rpcport: #rpc服务端口 默认即可 stateChange: switch: false -rpcregistername: #rpc注册服务名,默认即可 +rpcregistername: openImUserName: User openImFriendName: Friend openImOfflineMessageName: OfflineMessage @@ -125,57 +129,57 @@ rpcregistername: #rpc注册服务名,默认即可 log: storageLocation: ../logs/ rotationTime: 24 - remainRotationCount: 5 #日志数量 - remainLogLevel: 6 #日志级别 6表示全都打印,测试阶段建议设置为6 + remainRotationCount: 5 + remainLogLevel: 6 elasticSearchSwitch: false elasticSearchAddr: [ 127.0.0.1:9201 ] elasticSearchUser: "" elasticSearchPassword: "" -modulename: #日志文件按模块命名,默认即可 +modulename: longConnSvrName: msg_gateway msgTransferName: msg_transfer pushName: push longconnsvr: - openImWsPort: [ 17778 ] # ws服务端口,默认即可,要开放此端口或做nginx转发 + openImWsPort: [ 17778 ] websocketMaxConnNum: 10000 websocketMaxMsgLen: 4096 websocketTimeOut: 10 push: - tpns: #腾讯推送,暂未测试 暂不要使用 + tpns: ios: accessID: 1600018281 secretKey: 3cd68a77a95b89e5089a1aca523f318f android: accessID: 111 secretKey: 111 - jpns: #极光推送 在极光后台申请后,修改以下四项,必须修改 + jpns: appKey: cf47465a368f24c659608e7e masterSecret: 02204efe3f3832947a236ee5 pushUrl: "https://api.jpush.cn/v3/push" pushIntent: "intent:#Intent;component=io.openim.app.enterprisechat/io.openim.app.enterprisechat.MainActivity;end" manager: - #app管理员userID和对应的secret 建议修改。 用于管理后台登录,也可以用户管理后台对应的api appManagerUid: [ "openIM123456","openIM654321", "openIM333", "openIMAdmin"] secrets: [ "openIM1","openIM2", "openIM333", "openIMAdmin"] secret: tuoyun -# 多端互踢策略 -# 1:多平台登录:Android、iOS、Windows、Mac 每种平台只能一个在线,web端可以多个同时在线 + multiloginpolicy: 1 #token config tokenpolicy: - accessSecret: "open_im_server" #token生成相关,默认即可 + accessSecret: "open_im_server" # Token effective time day as a unit - accessExpire: 3650 #token过期时间(天) + accessExpire: 7 -messagecallback: #暂时不要使用 还需完善 +messagecallback: callbackUrl: "http://www.xxx.com/msg/judge" #TimeOut use second as unit callbackTimeOut: 10 +messagejudge: + isJudgeFriend: true # c2c: # callbackBeforeSendMsg: # switch: false @@ -185,7 +189,7 @@ messagecallback: #暂时不要使用 还需完善 # state: # stateChange: # switch: false -#ios系统推送声音以及标记计数 + iospush: pushSound: "xxx" badgeCount: true @@ -249,7 +253,7 @@ notification: desc: "groupApplicationAccepted desc" ext: "groupApplicationAccepted ext" defaultTips: - tips: "allowed to join the group" # group info changed by xx + tips: "was allowed to join the group" # group info changed by xx groupApplicationRejected: conversation: @@ -261,7 +265,7 @@ notification: desc: " desc" ext: " ext" defaultTips: - tips: "rejected into the group" # group info changed by xx + tips: "was rejected into the group" # group info changed by xx groupOwnerTransferred: conversation: @@ -285,7 +289,7 @@ notification: desc: "memberKicked desc" ext: "memberKicked ext" defaultTips: - tips: "kicked out of the group" # group info changed by xx + tips: "was kicked out of the group" # group info changed by xx memberInvited: conversation: @@ -297,7 +301,7 @@ notification: desc: "memberInvited desc" ext: "memberInvited ext" defaultTips: - tips: "invited into the group" # group info changed by xx + tips: "was invited into the group" # group info changed by xx memberEnter: conversation: @@ -374,11 +378,11 @@ notification: unreadCount: false offlinePush: switch: true - title: "deleted a friend" - desc: "deleted a friend" - ext: "deleted a friend" + title: "Deleted a friend" + desc: "Deleted a friend" + ext: "Deleted a friend" defaultTips: - tips: "deleted a friend" # + tips: "Deleted a friend" # friendRemarkSet: @@ -401,11 +405,11 @@ notification: unreadCount: false offlinePush: switch: true - title: "blocked a user" - desc: "blocked a user" - ext: "blocked a user" + title: "Blocked a user" + desc: "Blocked a user" + ext: "Blocked a user" defaultTips: - tips: "blocked a user" # + tips: "Blocked a user" # blackDeleted: @@ -431,7 +435,7 @@ notification: desc: "Remove a blocked user" ext: "Remove a blocked user" defaultTips: - tips: "remove a blocked user" + tips: "Remove a blocked user" #####################conversation######################### conversationOptUpdate: @@ -450,24 +454,23 @@ notification: #---------------demo configuration---------------------# #The following configuration items are applied to openIM Demo configuration -#是否启动demo,如果自身没有账号体系,设置为true demoswitch: true demo: - openImDemoPort: [ 42233 ] #demo对外服务端口,默认即可,需要开放此端口或做nginx转发 - alismsverify: #阿里云短信配置,在阿里云申请成功后修改以下四项,必须修改 + openImDemoPort: [ 42233 ] + alismsverify: accessKeyId: LTAI5tJPkn4HuuePdiLdGqe71 accessKeySecret: 4n9OJ7ZCVN1U6KeHDAtOyNeVZcjOuV1 signName: OpenIM Corporation verificationCodeTemplateCode: SMS_2268101641 - superCode: 666666 #超级验证码,建议修改掉,收不到短信验证码时可以用此替代 + superCode: 666666 # second codeTTL: 60 - mail: #仅支持qq邮箱,具体操作参考 https://service.mail.qq.com/cgi-bin/help?subtype=1&id=28&no=1001256 必须修改 + mail: title: "openIM" senderMail: "1765567899@qq.com" senderAuthorizationCode: "1gxyausfoevlzbfag" smtpAddr: "smtp.qq.com" - smtpPort: 25 #需开放此端口 出口方向 + smtpPort: 25 diff --git a/go.sum b/go.sum index acc8bf998..2385d32f5 100644 --- a/go.sum +++ b/go.sum @@ -156,6 +156,7 @@ github.com/go-playground/validator/v10 v10.4.1/go.mod h1:nlOn6nFhuKACm19sB/8EGNn github.com/go-sql-driver/mysql v1.5.0/go.mod h1:DCzpHaOWr8IXmIStZouvnhqoel9Qv2LBy8hT2VhHyBg= github.com/go-sql-driver/mysql v1.6.0 h1:BCTh4TKNUYmOmMUcQ3IipzF5prigylS7XXjEkfCHuOE= github.com/go-sql-driver/mysql v1.6.0/go.mod h1:DCzpHaOWr8IXmIStZouvnhqoel9Qv2LBy8hT2VhHyBg= +github.com/go-stack/stack v1.8.0 h1:5SgMzNM5HxrEjV0ww2lTmX6E2Izsfxas4+YHWRs3Lsk= github.com/go-stack/stack v1.8.0/go.mod h1:v0f6uXyyMGvRgIKkXu+yp6POWl0qKG85gN/melR3HDY= github.com/godbus/dbus/v5 v5.0.3/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA= github.com/godbus/dbus/v5 v5.0.4/go.mod h1:xhWf0FNVPg57R7Z0UbKHbJfkEywrmjJnf7w5xrFpKfA= @@ -200,6 +201,7 @@ github.com/golang/protobuf v1.5.0/go.mod h1:FsONVRAS9T7sI+LIUmWTfcYkHO4aIWwzhcaS github.com/golang/protobuf v1.5.1/go.mod h1:DopwsBzvsk0Fs44TXzsVbJyPhcCPeIwnvohx4u74HPM= github.com/golang/protobuf v1.5.2 h1:ROPKBNFfQgOUMifHyP+KYbvpjbdoFNs+aK7DXlji0Tw= github.com/golang/protobuf v1.5.2/go.mod h1:XVQd3VNwM+JqD3oG2Ue2ip4fOMUkwXdXDdiuN0vRsmY= +github.com/golang/snappy v0.0.1/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= github.com/golang/snappy v0.0.3/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= github.com/golang/snappy v0.0.4 h1:yAGX7huGHXlcLOEtBnF4w7FQwA26wojNCwOYAEhLjQM= github.com/golang/snappy v0.0.4/go.mod h1:/XxbfmMg8lxefKM7IXC3fBNl/7bRcc72aCRzEWrmP2Q= @@ -311,8 +313,9 @@ github.com/julienschmidt/httprouter v1.2.0/go.mod h1:SYymIcj16QtmaHHD7aYtjjsJG7V github.com/kisielk/errcheck v1.1.0/go.mod h1:EZBBE59ingxPouuu3KfxchcWSUPOHkagtvWXihfKN4Q= github.com/kisielk/errcheck v1.5.0/go.mod h1:pFxgyoBC7bSaBwPgfKdkLd5X25qrDl4LWUI2bnpBCr8= github.com/kisielk/gotool v1.0.0/go.mod h1:XhKaO+MFFWcvkIS/tQcRk01m1F5IRFswLeQ+oQHNcck= -github.com/klauspost/compress v1.13.5 h1:9O69jUPDcsT9fEm74W92rZL9FQY7rCdaXVneq+yyzl4= github.com/klauspost/compress v1.13.5/go.mod h1:/3/Vjq9QcHkK5uEr5lBEmyoZ1iFhe47etQ6QUkpK6sk= +github.com/klauspost/compress v1.13.6 h1:P76CopJELS0TiO2mebmnzgWaajssP/EszplttgQxcgc= +github.com/klauspost/compress v1.13.6/go.mod h1:/3/Vjq9QcHkK5uEr5lBEmyoZ1iFhe47etQ6QUkpK6sk= github.com/klauspost/cpuid v1.2.3/go.mod h1:Pj4uuM528wm8OyEC2QMXAi2YiTZ96dNQPGgoMS4s3ek= github.com/klauspost/cpuid v1.3.1 h1:5JNjFYYQrZeKRJ0734q51WCEEn2huer72Dc7K+R/b6s= github.com/klauspost/cpuid v1.3.1/go.mod h1:bYW4mA6ZgKPob1/Dlai2LviZJO7KGI3uoWLd42rAQw4= @@ -380,6 +383,7 @@ github.com/modern-go/concurrent v0.0.0-20180306012644-bacd9c7ef1dd/go.mod h1:6dJ github.com/modern-go/reflect2 v0.0.0-20180701023420-4b7aa43c6742/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= github.com/modern-go/reflect2 v1.0.1 h1:9f412s+6RmYXLWZSEzVVgPGK7C2PphHj5RJrvfx9AWI= github.com/modern-go/reflect2 v1.0.1/go.mod h1:bx2lNnkwVCuqBIxFjflWJWanXIb3RllmbCylyMrvgv0= +github.com/montanaflynn/stats v0.0.0-20171201202039-1bf9dbcd8cbe/go.mod h1:wL8QJuTMNUDYhXwkmfOly8iTdp5TEcJFWZD2D7SIkUc= github.com/mwitkow/go-conntrack v0.0.0-20161129095857-cc309e4a2223/go.mod h1:qRWi+5nqEBWmkhHvq77mSJWrCKwh8bxhgT7d/eI7P4U= github.com/nfnt/resize v0.0.0-20180221191011-83c6a9932646 h1:zYyBkD/k9seD2A7fsi6Oo2LfFZAehjjQMERAvZLEDnQ= github.com/nfnt/resize v0.0.0-20180221191011-83c6a9932646/go.mod h1:jpp1/29i3P1S/RLdc7JQKbRpFeM1dOBd8T9ki5s+AY8= @@ -467,6 +471,8 @@ github.com/subosito/gotenv v1.2.0 h1:Slr1R9HxAlEKefgq5jn9U+DnETlIUa6HfgEzj0g5d7s github.com/subosito/gotenv v1.2.0/go.mod h1:N0PQaV/YGNqwC0u51sEeR/aUtSLEXKX9iv69rRypqCw= github.com/tencentyun/qcloud-cos-sts-sdk v0.0.0-20210325043845-84a0811633ca h1:G/aIr3WiUesWHL2YGYgEqjM5tCAJ43Ml+0C18wDkWWs= github.com/tencentyun/qcloud-cos-sts-sdk v0.0.0-20210325043845-84a0811633ca/go.mod h1:b18KQa4IxHbxeseW1GcZox53d7J0z39VNONTxvvlkXw= +github.com/tidwall/pretty v1.0.0 h1:HsD+QiTn7sK6flMKIvNmpqz1qrpP3Ps6jOKIKMooyg4= +github.com/tidwall/pretty v1.0.0/go.mod h1:XNkn88O1ChpSDQmQeStsy+sBenx6DDtFZJxhVysOjyk= github.com/tjfoc/gmsm v1.3.2 h1:7JVkAn5bvUJ7HtU08iW6UiD+UTmJTIToHCfeFzkcCxM= github.com/tjfoc/gmsm v1.3.2/go.mod h1:HaUcFuY0auTiaHB9MHFGCPx5IaLhTUd2atbCFBQXn9w= github.com/tmc/grpc-websocket-proxy v0.0.0-20170815181823-89b8d40f7ca8/go.mod h1:ncp9v5uamzpCO7NfCPTXjqaC+bZgJeR0sMTm6dMHP7U= @@ -477,8 +483,16 @@ github.com/ugorji/go v1.1.7/go.mod h1:kZn38zHttfInRq0xu/PH0az30d+z6vm202qpg1oXVM github.com/ugorji/go/codec v1.1.7 h1:2SvQaVZ1ouYrrKKwoSk2pzd4A9evlKJb9oTL+OaLUSs= github.com/ugorji/go/codec v1.1.7/go.mod h1:Ax+UKWsSmolVDwsd+7N3ZtXu+yMGCf907BLYF3GoBXY= github.com/urfave/cli v1.20.0/go.mod h1:70zkFmudgCuE/ngEzBv17Jvp/497gISqfk5gWijbERA= +github.com/xdg-go/pbkdf2 v1.0.0 h1:Su7DPu48wXMwC3bs7MCNG+z4FhcyEuz5dlvchbq0B0c= +github.com/xdg-go/pbkdf2 v1.0.0/go.mod h1:jrpuAogTd400dnrH08LKmI/xc1MbPOebTwRqcT5RDeI= +github.com/xdg-go/scram v1.0.2 h1:akYIkZ28e6A96dkWNJQu3nmCzH3YfwMPQExUYDaRv7w= +github.com/xdg-go/scram v1.0.2/go.mod h1:1WAq6h33pAW+iRreB34OORO2Nf7qel3VV3fjBj+hCSs= +github.com/xdg-go/stringprep v1.0.2 h1:6iq84/ryjjeRmMJwxutI51F2GIPlP5BfTvXHeYjyhBc= +github.com/xdg-go/stringprep v1.0.2/go.mod h1:8F9zXuvzgwmyT5DUm4GUfZGDdT3W+LCvS6+da4O5kxM= github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2 h1:eY9dn8+vbi4tKz5Qo6v2eYzo7kUS51QINcR5jNpbZS8= github.com/xiang90/probing v0.0.0-20190116061207-43a291ad63a2/go.mod h1:UETIi67q53MR2AWcXfiuqkDkRtnGDLqkBTpCHuJHxtU= +github.com/youmark/pkcs8 v0.0.0-20181117223130-1be2e3e5546d h1:splanxYIlg+5LfHAM6xpdFEAYOk8iySO56hMFq6uLyA= +github.com/youmark/pkcs8 v0.0.0-20181117223130-1be2e3e5546d/go.mod h1:rHwXgn7JulP+udvsHwJoVG1YGAP6VLg4y9I5dyZdqmA= github.com/yuin/goldmark v1.1.25/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.1.27/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= github.com/yuin/goldmark v1.1.30/go.mod h1:3hX8gzYuyVAZsxl0MRgGTJEmQBFcNTphYh9decYSb74= @@ -492,6 +506,8 @@ go.etcd.io/etcd v0.0.0-20200402134248-51bdeb39e698/go.mod h1:YoUyTScD3Vcv2RBm3eG go.etcd.io/etcd/api/v3 v3.5.0/go.mod h1:cbVKeC6lCfl7j/8jBhAK6aIYO9XOjdptoxU/nLQcPvs= go.etcd.io/etcd/client/pkg/v3 v3.5.0/go.mod h1:IJHfcCEKxYu1Os13ZdwCwIUTUVGYTSAM3YSwc9/Ac1g= go.etcd.io/etcd/client/v2 v2.305.0/go.mod h1:h9puh54ZTgAKtEbut2oe9P4L/oqKCVB6xsXlzd7alYQ= +go.mongodb.org/mongo-driver v1.8.3 h1:TDKlTkGDKm9kkJVUOAXDK5/fkqKHJVwYQSpoRfB43R4= +go.mongodb.org/mongo-driver v1.8.3/go.mod h1:0sQWfOeY63QTntERDJJ/0SuKK0T1uVSgKCuAROlKEPY= go.opencensus.io v0.21.0/go.mod h1:mSImk1erAIZhrmZN+AvHh14ztQfjbGwt4TtuofqLduU= go.opencensus.io v0.22.0/go.mod h1:+kGneAE2xo2IficOXnaByMWTGM9T73dGwxeWcUqIpI8= go.opencensus.io v0.22.2/go.mod h1:yxeiOL68Rb0Xd1ddK5vPZ/oVn4vY4Ynel7k9FzqtOIw= @@ -628,6 +644,7 @@ golang.org/x/sync v0.0.0-20200317015054-43a5402ce75a/go.mod h1:RxMgew5VJxzue5/jJ golang.org/x/sync v0.0.0-20200625203802-6e8e738ad208/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20201020160332-67f06af15bc9/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sync v0.0.0-20201207232520-09787c993a3a/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= +golang.org/x/sync v0.0.0-20210220032951-036812b2e83c h1:5KslGYwFpkhGh+Q16bwMP3cOontH8FOep7tGV86Y7SQ= golang.org/x/sync v0.0.0-20210220032951-036812b2e83c/go.mod h1:RxMgew5VJxzue5/jJTE5uejpjVlOe/izrB70Jof72aM= golang.org/x/sys v0.0.0-20180823144017-11551d06cbcc/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= golang.org/x/sys v0.0.0-20180905080454-ebe1bf3edb33/go.mod h1:STP8DvDyc/dI5b8T5hshtkjS+E42TnysNCUPdjciGhY= @@ -716,6 +733,7 @@ golang.org/x/tools v0.0.0-20190328211700-ab21143f2384/go.mod h1:LCzVGOaR6xXOjkQ3 golang.org/x/tools v0.0.0-20190425150028-36563e24a262/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= golang.org/x/tools v0.0.0-20190506145303-2d16b83fe98c/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= golang.org/x/tools v0.0.0-20190524140312-2c0ae7006135/go.mod h1:RgjU9mgBXZiqYHBnxXauZ1Gv1EHHAz9KjViQ78xBX0Q= +golang.org/x/tools v0.0.0-20190531172133-b3315ee88b7d/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= golang.org/x/tools v0.0.0-20190606124116-d0a3d012864b/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= golang.org/x/tools v0.0.0-20190621195816-6e04913cbbac/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= golang.org/x/tools v0.0.0-20190628153133-6cdbf07be9d0/go.mod h1:/rFqwRUd4F7ZHNgwSSTFct+R/Kf4OFW1sUzUTQQTgfc= diff --git a/internal/api/third/minio_init.go b/internal/api/third/minio_init.go index eb087c4dc..4f54996ba 100644 --- a/internal/api/third/minio_init.go +++ b/internal/api/third/minio_init.go @@ -7,7 +7,6 @@ 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" ) @@ -39,10 +38,10 @@ func init() { return } } - err = minioClient.SetBucketPolicy(context.Background(), config.Config.Credential.Minio.Bucket, policy.BucketPolicyReadWrite) - if err != nil { - log.NewError("", utils.GetSelfFuncName(), "SetBucketPolicy failed please set in ", err.Error()) - return - } + //err = minioClient.SetBucketPolicy(context.Background(), config.Config.Credential.Minio.Bucket, policy.BucketPolicyReadWrite) + //if err != nil { + // log.NewError("", utils.GetSelfFuncName(), "SetBucketPolicy failed please set in ", err.Error()) + // return + //} log.NewInfo("", utils.GetSelfFuncName(), "minio create and set policy success") } From 2d13a5fd358f39b14036910071b83a5abc90edb4 Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Mon, 21 Feb 2022 18:18:53 +0800 Subject: [PATCH 689/814] msg judge --- internal/rpc/msg/send_msg.go | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/internal/rpc/msg/send_msg.go b/internal/rpc/msg/send_msg.go index 281ac2ed3..576d5f8bb 100644 --- a/internal/rpc/msg/send_msg.go +++ b/internal/rpc/msg/send_msg.go @@ -44,6 +44,17 @@ type MsgCallBackResp struct { } } +func userRelationshipVerification(data *pbChat.SendMsgReq) { + + //etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImOfflineMessageName) + //client := pbChat.NewChatClient(etcdConn) + //reply, err := client.SendMsg(context.Background(), &req) + //if err != nil { + // log.NewError(req.OperationID, "SendMsg rpc failed, ", req.String(), err.Error()) + //} else if reply.ErrCode != 0 { + // log.NewError(req.OperationID, "SendMsg rpc failed, ", req.String()) + //} +} func (rpc *rpcChat) encapsulateMsgData(msg *sdk_ws.MsgData) { msg.ServerMsgID = GetMsgID(msg.SendID) if msg.SendTime == 0 { @@ -96,6 +107,7 @@ func (rpc *rpcChat) encapsulateMsgData(msg *sdk_ws.MsgData) { func (rpc *rpcChat) SendMsg(_ context.Context, pb *pbChat.SendMsgReq) (*pbChat.SendMsgResp, error) { replay := pbChat.SendMsgResp{} log.NewDebug(pb.OperationID, "rpc sendMsg come here", pb.String()) + userRelationshipVerification(pb) //if !utils.VerifyToken(pb.Token, pb.SendID) { // return returnMsg(&replay, pb, http.StatusUnauthorized, "token validate err,not authorized", "", 0) rpc.encapsulateMsgData(pb.MsgData) From 139ef08af3adecbb08888a6e4cec1bcdfaeaecf1 Mon Sep 17 00:00:00 2001 From: wangchuxiao Date: Mon, 21 Feb 2022 18:50:11 +0800 Subject: [PATCH 690/814] fix bug --- internal/cms_api/statistics/statistics.go | 10 +++-- internal/demo/register/send_code.go | 4 +- internal/demo/register/set_password.go | 5 ++- internal/rpc/statistics/statistics.go | 55 ++++++++++++----------- 4 files changed, 41 insertions(+), 33 deletions(-) diff --git a/internal/cms_api/statistics/statistics.go b/internal/cms_api/statistics/statistics.go index 791e21c6d..c8a9488ca 100644 --- a/internal/cms_api/statistics/statistics.go +++ b/internal/cms_api/statistics/statistics.go @@ -32,8 +32,8 @@ func GetMessagesStatistics(c *gin.Context) { client := pb.NewUserClient(etcdConn) respPb, err := client.GetMessageStatistics(context.Background(), &reqPb) if err != nil { + log.NewError(reqPb.OperationID, utils.GetSelfFuncName(), "GetMessageStatistics failed", err.Error()) openIMHttp.RespHttp200(c, err, resp) - log.NewError("0", utils.GetSelfFuncName(), err.Error()) return } // utils.CopyStructFields(&resp, respPb) @@ -77,7 +77,7 @@ func GetUserStatistics(c *gin.Context) { client := pb.NewUserClient(etcdConn) respPb, err := client.GetUserStatistics(context.Background(), &reqPb) if err != nil { - log.NewError("0", utils.GetSelfFuncName(), err.Error()) + log.NewError("0", utils.GetSelfFuncName(), "GetUserStatistics failed", err.Error()) openIMHttp.RespHttp200(c, err, nil) return } @@ -132,6 +132,7 @@ func GetGroupStatistics(c *gin.Context) { client := pb.NewUserClient(etcdConn) respPb, err := client.GetGroupStatistics(context.Background(), &reqPb) if err != nil { + log.NewError(reqPb.OperationID, utils.GetSelfFuncName(), "GetGroupStatistics failed", err.Error()) openIMHttp.RespHttp200(c, err, nil) return } @@ -179,6 +180,7 @@ func GetActiveUser(c *gin.Context) { client := pb.NewUserClient(etcdConn) respPb, err := client.GetActiveUser(context.Background(), &reqPb) if err != nil { + log.NewError(reqPb.OperationID, utils.GetSelfFuncName(), "GetActiveUser failed ", err.Error()) openIMHttp.RespHttp200(c, err, nil) return } @@ -194,7 +196,7 @@ func GetActiveGroup(c *gin.Context) { ) reqPb.StatisticsReq = &pb.StatisticsReq{} if err := c.ShouldBindQuery(&req); err != nil { - log.NewError("0", "BindJSON failed ", err.Error()) + log.NewError("0", utils.GetSelfFuncName(), "BindJSON failed ", err.Error()) openIMHttp.RespHttp200(c, constant.ErrArgs, nil) return } @@ -203,7 +205,7 @@ func GetActiveGroup(c *gin.Context) { client := pb.NewUserClient(etcdConn) respPb, err := client.GetActiveGroup(context.Background(), &reqPb) if err != nil { - log.NewError("0", "BindJSON failed ", err.Error()) + log.NewError("0", utils.GetSelfFuncName(), "GetActiveGroup failed ", err.Error()) openIMHttp.RespHttp200(c, err, nil) return } diff --git a/internal/demo/register/send_code.go b/internal/demo/register/send_code.go index 2b890a308..bd22b07bf 100644 --- a/internal/demo/register/send_code.go +++ b/internal/demo/register/send_code.go @@ -43,13 +43,13 @@ func SendVerificationCode(c *gin.Context) { _, err := im_mysql_model.GetRegister(account) if err == nil { log.NewError(params.OperationID, "The phone number has been registered", params) - c.JSON(http.StatusOK, gin.H{"errCode": constant.HasRegistered, "errMsg": ""}) + c.JSON(http.StatusOK, gin.H{"errCode": constant.HasRegistered, "errMsg": "The phone number has been registered"}) return } ok, err := db.DB.JudgeAccountEXISTS(account) if ok || err != nil { log.NewError(params.OperationID, "The phone number has been registered", params) - c.JSON(http.StatusOK, gin.H{"errCode": constant.RepeatSendCode, "errMsg": ""}) + c.JSON(http.StatusOK, gin.H{"errCode": constant.RepeatSendCode, "errMsg": "The phone number has been registered"}) return } accountKey = account + "_" + constant.VerificationCodeForRegisterSuffix diff --git a/internal/demo/register/set_password.go b/internal/demo/register/set_password.go index 7e27e04b3..3fb996a56 100644 --- a/internal/demo/register/set_password.go +++ b/internal/demo/register/set_password.go @@ -65,7 +65,10 @@ func SetPassword(c *gin.Context) { } err = json.Unmarshal(bMsg, &openIMRegisterResp) if err != nil || openIMRegisterResp.ErrCode != 0 { - log.NewError(params.OperationID, "request openIM register error", account, "err", "") + log.NewError(params.OperationID, "request openIM register error", account, "err", "resp: ", openIMRegisterResp.ErrCode) + if err != nil { + log.NewError(params.OperationID, utils.GetSelfFuncName(), err.Error()) + } c.JSON(http.StatusOK, gin.H{"errCode": constant.RegisterFailed, "errMsg": "register failed: "+openIMRegisterResp.ErrMsg}) return } diff --git a/internal/rpc/statistics/statistics.go b/internal/rpc/statistics/statistics.go index 6684f8af7..9554bf116 100644 --- a/internal/rpc/statistics/statistics.go +++ b/internal/rpc/statistics/statistics.go @@ -2,6 +2,7 @@ package statistics import ( "Open_IM/pkg/common/config" + "Open_IM/pkg/common/constant" "context" "sync" "time" @@ -21,6 +22,7 @@ import ( "net" "strconv" "strings" + errors "Open_IM/pkg/common/http" "google.golang.org/grpc" ) @@ -77,13 +79,13 @@ func (s *statisticsServer) GetActiveGroup(_ context.Context, req *pbStatistics.G resp := &pbStatistics.GetActiveGroupResp{} fromTime, toTime, err := ParseTimeFromTo(req.StatisticsReq.From, req.StatisticsReq.To) if err != nil { - log.NewError(req.OperationID, utils.GetSelfFuncName(), err.Error()) - return resp, err + log.NewError(req.OperationID, utils.GetSelfFuncName(), "ParseTimeFromTo failed", err.Error()) + return resp, errors.WrapError(constant.ErrArgs) } activeGroups, err := imdb.GetActiveGroups(fromTime, toTime, 12) if err != nil { - log.NewError(req.OperationID, utils.GetSelfFuncName(), err.Error()) - return resp, err + log.NewError(req.OperationID, utils.GetSelfFuncName(), "GetActiveGroups failed", err.Error()) + return resp, errors.WrapError(constant.ErrDB) } for _, activeGroup := range activeGroups { resp.Groups = append(resp.Groups, @@ -101,13 +103,13 @@ func (s *statisticsServer) GetActiveUser(_ context.Context, req *pbStatistics.Ge resp := &pbStatistics.GetActiveUserResp{} fromTime, toTime, err := ParseTimeFromTo(req.StatisticsReq.From, req.StatisticsReq.To) if err != nil { - log.NewError(req.OperationID, utils.GetSelfFuncName(), err.Error()) - return resp, err + log.NewError(req.OperationID, utils.GetSelfFuncName(), "ParseTimeFromTo failed", err.Error()) + return resp, errors.WrapError(constant.ErrDB) } activeUsers, err := imdb.GetActiveUsers(fromTime, toTime, 12) if err != nil { - log.NewError(req.OperationID, utils.GetSelfFuncName(), err.Error()) - return resp, err + log.NewError(req.OperationID, utils.GetSelfFuncName(), "GetActiveUsers failed", err.Error()) + return resp, errors.WrapError(constant.ErrDB) } for _, activeUser := range activeUsers { resp.Users = append(resp.Users, @@ -199,18 +201,18 @@ func (s *statisticsServer) GetGroupStatistics(_ context.Context, req *pbStatisti resp := &pbStatistics.GetGroupStatisticsResp{} fromTime, toTime, err := ParseTimeFromTo(req.StatisticsReq.From, req.StatisticsReq.To) if err != nil { - log.NewError(req.OperationID, utils.GetSelfFuncName(), err.Error()) - return resp, err + log.NewError(req.OperationID, utils.GetSelfFuncName(), "GetGroupStatistics failed", err.Error()) + return resp, errors.WrapError(constant.ErrArgs) } increaseGroupNum, err := imdb.GetIncreaseGroupNum(fromTime, toTime.Add(time.Hour*24)) if err != nil { - log.NewError(req.OperationID, utils.GetSelfFuncName(), err.Error()) - return resp, err + log.NewError(req.OperationID, utils.GetSelfFuncName(), "GetIncreaseGroupNum failed", err.Error()) + return resp, errors.WrapError(constant.ErrDB) } totalGroupNum, err := imdb.GetTotalGroupNum() if err != nil { log.NewError(req.OperationID, utils.GetSelfFuncName(), err.Error()) - return resp, err + return resp, errors.WrapError(constant.ErrDB) } resp.IncreaseGroupNum = increaseGroupNum resp.TotalGroupNum = totalGroupNum @@ -250,17 +252,18 @@ func (s *statisticsServer) GetMessageStatistics(_ context.Context, req *pbStatis resp := &pbStatistics.GetMessageStatisticsResp{} fromTime, toTime, err := ParseTimeFromTo(req.StatisticsReq.From, req.StatisticsReq.To) if err != nil { - log.NewError(req.OperationID, utils.GetSelfFuncName(), err.Error()) - return resp, err + log.NewError(req.OperationID, utils.GetSelfFuncName(), "ParseTimeFromTo failed", err.Error()) + return resp, errors.WrapError(constant.ErrArgs) } privateMessageNum, err := imdb.GetPrivateMessageNum(fromTime, toTime.Add(time.Hour*24)) if err != nil { - log.NewError(req.OperationID, utils.GetSelfFuncName(), err.Error()) - return resp, err + log.NewError(req.OperationID, utils.GetSelfFuncName(), "GetPrivateMessageNum failed", err.Error()) + return resp, errors.WrapError(constant.ErrDB) } groupMessageNum, err := imdb.GetGroupMessageNum(fromTime, toTime.Add(time.Hour*24)) if err != nil { - log.NewError(req.OperationID, utils.GetSelfFuncName(), err.Error()) + log.NewError(req.OperationID, utils.GetSelfFuncName(), "GetGroupMessageNum failed", err.Error()) + return resp, errors.WrapError(constant.ErrDB) } resp.PrivateMessageNum = privateMessageNum resp.GroupMessageNum = groupMessageNum @@ -300,23 +303,23 @@ func (s *statisticsServer) GetUserStatistics(_ context.Context, req *pbStatistic resp := &pbStatistics.GetUserStatisticsResp{} fromTime, toTime, err := ParseTimeFromTo(req.StatisticsReq.From, req.StatisticsReq.To) if err != nil { - log.NewError(req.OperationID, utils.GetSelfFuncName(), "ParseTimeFromTo", err.Error()) - return resp, err + log.NewError(req.OperationID, utils.GetSelfFuncName(), "ParseTimeFromTo failed", err.Error()) + return resp, errors.WrapError(constant.ErrArgs) } activeUserNum, err := imdb.GetActiveUserNum(fromTime, toTime.Add(time.Hour*24)) if err != nil { - log.NewError(req.OperationID, utils.GetSelfFuncName(), "GetActiveUserNum", err.Error()) - return resp, err + log.NewError(req.OperationID, utils.GetSelfFuncName(), "GetActiveUserNum failed", err.Error()) + return resp, errors.WrapError(constant.ErrDB) } increaseUserNum, err := imdb.GetIncreaseUserNum(fromTime, toTime.Add(time.Hour*24)) if err != nil { - log.NewError(req.OperationID, utils.GetSelfFuncName(), "GetIncreaseUserNum error", err.Error()) - return resp, err + log.NewError(req.OperationID, utils.GetSelfFuncName(), "GetIncreaseUserNum failed", err.Error()) + return resp, errors.WrapError(constant.ErrDB) } totalUserNum, err := imdb.GetTotalUserNum() if err != nil { - log.NewError(req.OperationID, utils.GetSelfFuncName(), "GetTotalUserNum error", err.Error()) - return resp, err + log.NewError(req.OperationID, utils.GetSelfFuncName(), "GetTotalUserNum failed", err.Error()) + return resp, errors.WrapError(constant.ErrDB) } resp.ActiveUserNum = activeUserNum resp.TotalUserNum = totalUserNum From dfdb952e2ba28721cf7f08747cb7d1187b5483f7 Mon Sep 17 00:00:00 2001 From: wangchuxiao Date: Mon, 21 Feb 2022 19:12:51 +0800 Subject: [PATCH 691/814] fix reset password api --- internal/demo/register/send_code.go | 5 ++++- internal/demo/register/verify.go | 9 ++++++--- pkg/common/db/redisModel.go | 2 -- 3 files changed, 10 insertions(+), 6 deletions(-) diff --git a/internal/demo/register/send_code.go b/internal/demo/register/send_code.go index bd22b07bf..ad5fda3d6 100644 --- a/internal/demo/register/send_code.go +++ b/internal/demo/register/send_code.go @@ -21,7 +21,7 @@ type paramsVerificationCode struct { Email string `json:"email"` PhoneNumber string `json:"phoneNumber"` OperationID string `json:"operationID" binding:"required"` - UsedFor int `json:"usedFor" binding:"required"` + UsedFor int `json:"usedFor"` } func SendVerificationCode(c *gin.Context) { @@ -38,6 +38,9 @@ func SendVerificationCode(c *gin.Context) { account = params.PhoneNumber } var accountKey string + if params.UsedFor == 0 { + params.UsedFor = constant.VerificationCodeForRegister + } switch params.UsedFor { case constant.VerificationCodeForRegister: _, err := im_mysql_model.GetRegister(account) diff --git a/internal/demo/register/verify.go b/internal/demo/register/verify.go index c4e1b0c78..6136b1f76 100644 --- a/internal/demo/register/verify.go +++ b/internal/demo/register/verify.go @@ -15,7 +15,7 @@ type paramsCertification struct { PhoneNumber string `json:"phoneNumber"` VerificationCode string `json:"verificationCode"` OperationID string `json:"operationID" binding:"required"` - UsedFor int `json:"usedFor" binding:"required"` + UsedFor int `json:"usedFor"` } func Verify(c *gin.Context) { @@ -44,8 +44,11 @@ func Verify(c *gin.Context) { } log.NewInfo("0", " params.VerificationCode != config.Config.Demo.SuperCode", params.VerificationCode, config.Config.Demo) log.NewInfo(params.OperationID, "begin get form redis", account) - - code, err := db.DB.GetAccountCode(account) + if params.UsedFor == 0 { + params.UsedFor = 1 + } + accountKey := account + "_" + constant.VerificationCodeForResetSuffix + code, err := db.DB.GetAccountCode(accountKey) log.NewInfo(params.OperationID, "redis phone number and verificating Code", account, code) if err != nil { log.NewError(params.OperationID, "Verification code expired", account, "err", err.Error()) diff --git a/pkg/common/db/redisModel.go b/pkg/common/db/redisModel.go index 08c11cf56..9245e7b1f 100644 --- a/pkg/common/db/redisModel.go +++ b/pkg/common/db/redisModel.go @@ -3,7 +3,6 @@ package db import ( "Open_IM/pkg/common/constant" log2 "Open_IM/pkg/common/log" - "fmt" "github.com/garyburd/redigo/redis" ) @@ -47,7 +46,6 @@ func (d *DataBases) SetAccountCode(account string, code, ttl int) (err error) { } func (d *DataBases) GetAccountCode(account string) (string, error) { key := AccountTempCode + account - fmt.Println(key) return redis.String(d.Exec("GET", key)) } From 75590eb76555c0f87bd3ed509c348ddcf7778b52 Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Mon, 21 Feb 2022 20:09:26 +0800 Subject: [PATCH 692/814] VerificationCodeForRegisterSuffix --- internal/demo/register/verify.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/internal/demo/register/verify.go b/internal/demo/register/verify.go index 6136b1f76..958e513c1 100644 --- a/internal/demo/register/verify.go +++ b/internal/demo/register/verify.go @@ -15,7 +15,7 @@ type paramsCertification struct { PhoneNumber string `json:"phoneNumber"` VerificationCode string `json:"verificationCode"` OperationID string `json:"operationID" binding:"required"` - UsedFor int `json:"usedFor"` + UsedFor int `json:"usedFor"` } func Verify(c *gin.Context) { @@ -47,7 +47,7 @@ func Verify(c *gin.Context) { if params.UsedFor == 0 { params.UsedFor = 1 } - accountKey := account + "_" + constant.VerificationCodeForResetSuffix + accountKey := account + "_" + constant.VerificationCodeForRegisterSuffix code, err := db.DB.GetAccountCode(accountKey) log.NewInfo(params.OperationID, "redis phone number and verificating Code", account, code) if err != nil { From 55d7c6e6728176c439f7392e9d89a906f669c6cc Mon Sep 17 00:00:00 2001 From: wangchuxiao Date: Mon, 21 Feb 2022 21:02:37 +0800 Subject: [PATCH 693/814] add log --- internal/demo/register/send_code.go | 2 +- internal/rpc/group/group.go | 20 +++++++++++++++++-- .../mysql_model/im_mysql_model/group_model.go | 15 +++++++------- 3 files changed, 27 insertions(+), 10 deletions(-) diff --git a/internal/demo/register/send_code.go b/internal/demo/register/send_code.go index ad5fda3d6..37e355b46 100644 --- a/internal/demo/register/send_code.go +++ b/internal/demo/register/send_code.go @@ -60,9 +60,9 @@ func SendVerificationCode(c *gin.Context) { case constant.VerificationCodeForReset: accountKey = account + "_" + constant.VerificationCodeForResetSuffix } - log.NewInfo(params.OperationID, params.UsedFor,"begin store redis", accountKey) rand.Seed(time.Now().UnixNano()) code := 100000 + rand.Intn(900000) + log.NewInfo(params.OperationID, params.UsedFor,"begin store redis", accountKey, code) err := db.DB.SetAccountCode(accountKey, code, config.Config.Demo.CodeTTL) if err != nil { log.NewError(params.OperationID, "set redis error", accountKey, "err", err.Error()) diff --git a/internal/rpc/group/group.go b/internal/rpc/group/group.go index 7d5fd547f..2ab59b6ca 100644 --- a/internal/rpc/group/group.go +++ b/internal/rpc/group/group.go @@ -778,10 +778,26 @@ func (s *groupServer) DeleteGroup(_ context.Context, req *pbGroup.DeleteGroupReq func (s *groupServer) OperateUserRole(_ context.Context, req *pbGroup.OperateUserRoleReq) (*pbGroup.OperateUserRoleResp, error) { log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "args:", req.String()) resp := &pbGroup.OperateUserRoleResp{} - if err := imdb.OperateGroupRole(req.UserId, req.GroupId, req.RoleLevel); err != nil { - log.NewError(req.OperationID, utils.GetSelfFuncName(), "OperateGroupRole error", err.Error()) + oldOwnerUserID, err := imdb.GetGroupMaster(req.GroupId) + if err != nil { + log.NewError(req.OperationID, utils.GetSelfFuncName(), "GetGroupMaster failed", err.Error()) return resp, http.WrapError(constant.ErrDB) } + etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImGroupName) + client := pbGroup.NewGroupClient(etcdConn) + var reqPb pbGroup.TransferGroupOwnerReq + reqPb.OperationID = req.OperationID + reqPb.NewOwnerUserID = req.UserId + reqPb.GroupID = req.GroupId + reqPb.OpUserID = "cms admin" + reqPb.OldOwnerUserID = oldOwnerUserID.UserID + reply, err := client.TransferGroupOwner(context.Background(), &reqPb) + if reply.CommonResp.ErrCode != 0 || err != nil { + log.NewError(req.OperationID, utils.GetSelfFuncName(), "TransferGroupOwner rpc failed") + if err != nil { + log.NewError(req.OperationID, utils.GetSelfFuncName(), err.Error()) + } + } return resp, nil } diff --git a/pkg/common/db/mysql_model/im_mysql_model/group_model.go b/pkg/common/db/mysql_model/im_mysql_model/group_model.go index 46ec80738..a9fe13236 100644 --- a/pkg/common/db/mysql_model/im_mysql_model/group_model.go +++ b/pkg/common/db/mysql_model/im_mysql_model/group_model.go @@ -116,10 +116,10 @@ func DeleteGroup(groupId string) error { return nil } -func OperateGroupRole(userId, groupId string, roleLevel int32) error { +func OperateGroupRole(userId, groupId string, roleLevel int32) (string, string, error) { dbConn, err := db.DB.MysqlDB.DefaultGormDB() if err != nil { - return err + return "", "", err } dbConn.LogMode(true) groupMember := db.GroupMember{ @@ -133,7 +133,7 @@ func OperateGroupRole(userId, groupId string, roleLevel int32) error { } switch roleLevel { case constant.GroupOwner: - return dbConn.Transaction(func(tx *gorm.DB) error { + err = dbConn.Transaction(func(tx *gorm.DB) error { result := dbConn.Table("group_members").Where("group_id = ? and role_level = ?", groupId, constant.GroupOwner).First(&groupMaster).Update(&db.GroupMember{ RoleLevel: constant.GroupOrdinaryUsers, }) @@ -153,14 +153,15 @@ func OperateGroupRole(userId, groupId string, roleLevel int32) error { } return nil }) + case constant.GroupOrdinaryUsers: - return dbConn.Transaction(func(tx *gorm.DB) error { + err = dbConn.Transaction(func(tx *gorm.DB) error { result := dbConn.Table("group_members").Where("group_id = ? and role_level = ?", groupId, constant.GroupOwner).First(&groupMaster) if result.Error != nil { return result.Error } if result.RowsAffected == 0 { - return errors.New(fmt.Sprintf("user %s not exist in group %s or already operate", userId, groupId)) + return errors.New(fmt.Sprintf("user %s not exist in group %s or already operate", userId, groupId)) } if groupMaster.UserID == userId { return errors.New(fmt.Sprintf("user %s is master of %s, cant set to ordinary user", userId, groupId)) @@ -170,13 +171,13 @@ func OperateGroupRole(userId, groupId string, roleLevel int32) error { return result.Error } if result.RowsAffected == 0 { - return errors.New(fmt.Sprintf("user %s not exist in group %s or already operate", userId, groupId)) + return errors.New(fmt.Sprintf("user %s not exist in group %s or already operate", userId, groupId)) } } return nil }) } - return nil + return "", "", nil } func GetGroupsCountNum(group db.Group) (int32, error) { From aad27f40cf75fda3a5cad76720ba52d85ad150e1 Mon Sep 17 00:00:00 2001 From: wangchuxiao Date: Mon, 21 Feb 2022 21:07:50 +0800 Subject: [PATCH 694/814] verrify --- internal/demo/register/verify.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/internal/demo/register/verify.go b/internal/demo/register/verify.go index 958e513c1..b362fd340 100644 --- a/internal/demo/register/verify.go +++ b/internal/demo/register/verify.go @@ -49,9 +49,9 @@ func Verify(c *gin.Context) { } accountKey := account + "_" + constant.VerificationCodeForRegisterSuffix code, err := db.DB.GetAccountCode(accountKey) - log.NewInfo(params.OperationID, "redis phone number and verificating Code", account, code) + log.NewInfo(params.OperationID, "redis phone number and verificating Code", accountKey, code, params) if err != nil { - log.NewError(params.OperationID, "Verification code expired", account, "err", err.Error()) + log.NewError(params.OperationID, "Verification code expired", accountKey, "err", err.Error()) data := make(map[string]interface{}) data["account"] = account c.JSON(http.StatusOK, gin.H{"errCode": constant.CodeInvalidOrExpired, "errMsg": "Verification code expired!", "data": data}) From b751156b5cff69cb88671aba21f52f76ff03aea7 Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Mon, 21 Feb 2022 21:19:06 +0800 Subject: [PATCH 695/814] redis ttl --- pkg/common/db/redisModel.go | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/pkg/common/db/redisModel.go b/pkg/common/db/redisModel.go index 9245e7b1f..c8529b97c 100644 --- a/pkg/common/db/redisModel.go +++ b/pkg/common/db/redisModel.go @@ -41,7 +41,7 @@ func (d *DataBases) JudgeAccountEXISTS(account string) (bool, error) { } func (d *DataBases) SetAccountCode(account string, code, ttl int) (err error) { key := AccountTempCode + account - _, err = d.Exec("SET", key, code) + _, err = d.Exec("SET", key, code, "ex", ttl) return err } func (d *DataBases) GetAccountCode(account string) (string, error) { @@ -49,7 +49,6 @@ func (d *DataBases) GetAccountCode(account string) (string, error) { return redis.String(d.Exec("GET", key)) } - //Perform seq auto-increment operation of user messages func (d *DataBases) IncrUserSeq(uid string) (uint64, error) { key := userIncrSeq + uid From 952ad0e162eb0950a0745131641152b19941cb19 Mon Sep 17 00:00:00 2001 From: wangchuxiao Date: Tue, 22 Feb 2022 12:27:39 +0800 Subject: [PATCH 696/814] fix deploy --- deploy/config.example.yaml | 6 +++++- internal/rpc/group/group.go | 2 ++ pkg/common/config/config.go | 3 +++ script/sdk_svr_start.sh | 4 +++- script/start_rpc_service.sh | 2 +- 5 files changed, 14 insertions(+), 3 deletions(-) diff --git a/deploy/config.example.yaml b/deploy/config.example.yaml index 9f14c96d4..f0ae8314e 100644 --- a/deploy/config.example.yaml +++ b/deploy/config.example.yaml @@ -73,6 +73,8 @@ api: openImApiPort: [ 10000 ] sdk: openImSdkWsPort: [ 30000 ] +cmsapi: + openImCmsApiPort: [ 8000 ] credential: tencent: @@ -91,7 +93,9 @@ rpcport: openImGroupPort: [ 10500 ] openImAuthPort: [ 10600 ] openImPushPort: [ 10700 ] - + openImStatisticsPort: [ 10800 ] + openImMessageCmsPort: [ 10900 ] + openImAdminCmsPort: [ 11000 ] rpcregistername: openImUserName: User diff --git a/internal/rpc/group/group.go b/internal/rpc/group/group.go index 2ab59b6ca..6e39ab266 100644 --- a/internal/rpc/group/group.go +++ b/internal/rpc/group/group.go @@ -854,6 +854,8 @@ func (s *groupServer) RemoveGroupMembersCMS(_ context.Context, req *pbGroup.Remo OpUserID: req.OpUserId, } chat.MemberKickedNotification(reqKick, resp.Success) + log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "success: ", resp.Success) + log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "failed: ", resp.Failed) return resp, nil } diff --git a/pkg/common/config/config.go b/pkg/common/config/config.go index 8f89376cb..ae0d3cadc 100644 --- a/pkg/common/config/config.go +++ b/pkg/common/config/config.go @@ -25,6 +25,9 @@ type config struct { Api struct { GinPort []int `yaml:"openImApiPort"` } + CmsApi struct{ + GinPort []int `yaml:"openImCmsApiPort"` + } Sdk struct { WsPort []int `yaml:"openImSdkWsPort"` } diff --git a/script/sdk_svr_start.sh b/script/sdk_svr_start.sh index 97c694233..2ba1295cd 100644 --- a/script/sdk_svr_start.sh +++ b/script/sdk_svr_start.sh @@ -6,13 +6,15 @@ source ./function.sh list1=$(cat $config_path | grep openImApiPort | awk -F '[:]' '{print $NF}') list2=$(cat $config_path | grep openImWsPort | awk -F '[:]' '{print $NF}') list3=$(cat $config_path | grep openImSdkWsPort | awk -F '[:]' '{print $NF}') +list4=$(cat $config_path | grep openImCmsApiPort | awk - F '[:]' '{print $NF}') list_to_string $list1 api_ports=($ports_array) list_to_string $list2 ws_ports=($ports_array) list_to_string $list3 sdk_ws_ports=($ports_array) - +list_to_string $list4 +cms_api_ports=($ports_array) diff --git a/script/start_rpc_service.sh b/script/start_rpc_service.sh index bc5f41e3d..bbd7f3c5a 100644 --- a/script/start_rpc_service.sh +++ b/script/start_rpc_service.sh @@ -29,7 +29,7 @@ service_port_name=( openImUserPort openImFriendPort openImGroupPort - openImAuthPort + openImAdminCmsPort openImMessageCmsPort openImStatisticsPort From a1cbf8724f0032ea1a8d530891bc9c985b4c198f Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Tue, 22 Feb 2022 14:13:04 +0800 Subject: [PATCH 697/814] log --- internal/msg_transfer/logic/history_msg_handler.go | 2 +- internal/msg_transfer/logic/persistent_msg_handler.go | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/internal/msg_transfer/logic/history_msg_handler.go b/internal/msg_transfer/logic/history_msg_handler.go index 78b3ba79c..b78695c11 100644 --- a/internal/msg_transfer/logic/history_msg_handler.go +++ b/internal/msg_transfer/logic/history_msg_handler.go @@ -32,7 +32,7 @@ func (mc *HistoryConsumerHandler) Init() { } func (mc *HistoryConsumerHandler) handleChatWs2Mongo(msg []byte, msgKey string) { - log.InfoByKv("msg come mongo!!!", "", "msg", string(msg)) + log.NewInfo("msg come mongo!!!", "", "msg", string(msg)) time := utils.GetCurrentTimestampByNano() msgFromMQ := pbMsg.MsgDataToMQ{} err := proto.Unmarshal(msg, &msgFromMQ) diff --git a/internal/msg_transfer/logic/persistent_msg_handler.go b/internal/msg_transfer/logic/persistent_msg_handler.go index c90901212..59c338294 100644 --- a/internal/msg_transfer/logic/persistent_msg_handler.go +++ b/internal/msg_transfer/logic/persistent_msg_handler.go @@ -33,7 +33,7 @@ func (pc *PersistentConsumerHandler) Init() { } func (pc *PersistentConsumerHandler) handleChatWs2Mysql(msg []byte, msgKey string) { - log.InfoByKv("msg come here mysql!!!", "", "msg", string(msg)) + log.NewInfo("msg come here mysql!!!", "", "msg", string(msg)) msgFromMQ := pbMsg.MsgDataToMQ{} err := proto.Unmarshal(msg, &msgFromMQ) if err != nil { From 927380741c449cda9cf9732295b6e8e1b15ab41a Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Tue, 22 Feb 2022 14:23:05 +0800 Subject: [PATCH 698/814] v2.0.0 --- docker-compose.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docker-compose.yaml b/docker-compose.yaml index ba1e31df1..b8d99cc7d 100644 --- a/docker-compose.yaml +++ b/docker-compose.yaml @@ -89,7 +89,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 + image: openim/open_im_server:v2.0.0 container_name: open_im_server volumes: - ./logs:/Open-IM-Server/logs From eddcac2343d94aaa64467e1ec5a9faf6b79e4b53 Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Tue, 22 Feb 2022 16:01:32 +0800 Subject: [PATCH 699/814] send msg time modify --- internal/rpc/msg/send_msg.go | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/internal/rpc/msg/send_msg.go b/internal/rpc/msg/send_msg.go index 576d5f8bb..114746da2 100644 --- a/internal/rpc/msg/send_msg.go +++ b/internal/rpc/msg/send_msg.go @@ -57,9 +57,7 @@ func userRelationshipVerification(data *pbChat.SendMsgReq) { } func (rpc *rpcChat) encapsulateMsgData(msg *sdk_ws.MsgData) { msg.ServerMsgID = GetMsgID(msg.SendID) - if msg.SendTime == 0 { - msg.SendTime = utils.GetCurrentTimestampByMill() - } + msg.SendTime = utils.GetCurrentTimestampByMill() switch msg.ContentType { case constant.Text: fallthrough From e3937c5ef2881a8a88f5fe5280cb720109d79e4f Mon Sep 17 00:00:00 2001 From: wangchuxiao Date: Tue, 22 Feb 2022 17:14:29 +0800 Subject: [PATCH 700/814] alter yaml --- config/config.yaml | 24 ++++++++++++------------ 1 file changed, 12 insertions(+), 12 deletions(-) diff --git a/config/config.yaml b/config/config.yaml index ed82b6748..e4f3cdaa9 100644 --- a/config/config.yaml +++ b/config/config.yaml @@ -8,7 +8,7 @@ etcd: etcdAddr: [ 127.0.0.1:2379 ] mysql: - dbMysqlAddress: [ 127.0.0.1:13306 ] + dbMysqlAddress: [ 43.128.5.63:13306 ] dbMysqlUserName: root dbMysqlPassword: openIM dbMysqlDatabaseName: openIM @@ -19,7 +19,7 @@ mysql: dbMaxLifeTime: 120 mongo: - dbAddress: [ 127.0.0.1:37017 ] + dbAddress: [ 43.128.5.63:37017 ] dbDirect: false dbTimeout: 10 dbDatabase: openIM @@ -30,7 +30,7 @@ mongo: dbRetainChatRecords: 7 redis: - dbAddress: 127.0.0.1:16379 + dbAddress: 43.128.5.63:16379 dbMaxIdle: 128 dbMaxActive: 0 dbIdleTimeout: 120 @@ -38,10 +38,10 @@ redis: kafka: ws2mschat: - addr: [ 127.0.0.1:9092 ] + addr: [ 43.128.5.63:9092 ] topic: "ws2ms_chat" ms2pschat: - addr: [ 127.0.0.1:9092 ] + addr: [ 43.128.5.63:9092 ] topic: "ms2ps_chat" consumergroupid: msgToMongo: mongo @@ -458,19 +458,19 @@ demoswitch: true demo: openImDemoPort: [ 42233 ] alismsverify: - accessKeyId: LTAI5tJPkn4HuuePdiLdGqe71 - accessKeySecret: 4n9OJ7ZCVN1U6KeHDAtOyNeVZcjOuV1 - signName: OpenIM Corporation - verificationCodeTemplateCode: SMS_2268101641 + accessKeyId: LTAI5tJPkn4HuuePdiLdGqe7 + accessKeySecret: 4n9OJ7ZCVN1U6KeHDAtOyNeVZcjOuV + signName: 托云信息技术 + verificationCodeTemplateCode: SMS_226810164 superCode: 666666 # second codeTTL: 60 mail: title: "openIM" - senderMail: "1765567899@qq.com" - senderAuthorizationCode: "1gxyausfoevlzbfag" + senderMail: "765567899@qq.com" + senderAuthorizationCode: "gxyausfoevlzbfag" smtpAddr: "smtp.qq.com" - smtpPort: 25 + smtpPort: From 2bbf794501bbe384bd693d8c9a37eb3948d5289c Mon Sep 17 00:00:00 2001 From: wangchuxiao Date: Tue, 22 Feb 2022 17:19:56 +0800 Subject: [PATCH 701/814] alter cfg --- config/config.yaml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/config/config.yaml b/config/config.yaml index e4f3cdaa9..a2d08fcbf 100644 --- a/config/config.yaml +++ b/config/config.yaml @@ -8,7 +8,7 @@ etcd: etcdAddr: [ 127.0.0.1:2379 ] mysql: - dbMysqlAddress: [ 43.128.5.63:13306 ] + dbMysqlAddress: [ 127.0.0.1:13306 ] dbMysqlUserName: root dbMysqlPassword: openIM dbMysqlDatabaseName: openIM @@ -19,7 +19,7 @@ mysql: dbMaxLifeTime: 120 mongo: - dbAddress: [ 43.128.5.63:37017 ] + dbAddress: [ 127.0.0.1:37017 ] dbDirect: false dbTimeout: 10 dbDatabase: openIM @@ -30,7 +30,7 @@ mongo: dbRetainChatRecords: 7 redis: - dbAddress: 43.128.5.63:16379 + dbAddress: 127.0.0.1:16379 dbMaxIdle: 128 dbMaxActive: 0 dbIdleTimeout: 120 @@ -38,10 +38,10 @@ redis: kafka: ws2mschat: - addr: [ 43.128.5.63:9092 ] + addr: [ 127.0.0.1:9092 ] topic: "ws2ms_chat" ms2pschat: - addr: [ 43.128.5.63:9092 ] + addr: [ 127.0.0.1:9092 ] topic: "ms2ps_chat" consumergroupid: msgToMongo: mongo From dcacd88f118e935978d55360573bad2b82f8e271 Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Tue, 22 Feb 2022 18:02:00 +0800 Subject: [PATCH 702/814] UserNotificationBegin = 1301 --- pkg/common/constant/constant.go | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/pkg/common/constant/constant.go b/pkg/common/constant/constant.go index 50c0e544f..c5e2d38b9 100644 --- a/pkg/common/constant/constant.go +++ b/pkg/common/constant/constant.go @@ -54,10 +54,16 @@ const ( FriendRemarkSetNotification = 1206 //set_friend_remark? BlackAddedNotification = 1207 //add_black BlackDeletedNotification = 1208 //remove_black + ConversationOptChangeNotification = 1300 // change conversation opt + UserNotificationBegin = 1301 UserInfoUpdatedNotification = 1303 //SetSelfInfoTip = 204 + ConversationNotification = 1307 + ConversationNotNotification = 1308 + ConversationDefault = 0 + UserNotificationEnd = 1399 - ConversationOptChangeNotification = 1300 // change conversation opt + GroupNotificationBegin = 1500 GroupCreatedNotification = 1501 GroupInfoSetNotification = 1502 @@ -126,10 +132,10 @@ const ( MinioDurationTimes = 3600 // verificationCode used for - VerificationCodeForRegister = 1 - VerificationCodeForReset = 2 + VerificationCodeForRegister = 1 + VerificationCodeForReset = 2 VerificationCodeForRegisterSuffix = "_forRegister" - VerificationCodeForResetSuffix = "_forReset" + VerificationCodeForResetSuffix = "_forReset" ) var ContentType2PushContent = map[int64]string{ @@ -183,4 +189,4 @@ func GroupIsBanPrivateChat(status int32) bool { return true } - const BigVersion = "v3" \ No newline at end of file +const BigVersion = "v3" From d66a567b8f762b0c0ecae0ca2435442ece8bd8ae Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Tue, 22 Feb 2022 19:02:39 +0800 Subject: [PATCH 703/814] shell update --- script/start_rpc_service.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/script/start_rpc_service.sh b/script/start_rpc_service.sh index bbd7f3c5a..bc5f41e3d 100644 --- a/script/start_rpc_service.sh +++ b/script/start_rpc_service.sh @@ -29,7 +29,7 @@ service_port_name=( openImUserPort openImFriendPort openImGroupPort - + openImAuthPort openImAdminCmsPort openImMessageCmsPort openImStatisticsPort From d22935703d7fe5a5cf984c340854768f725fb4d8 Mon Sep 17 00:00:00 2001 From: wangchuxiao Date: Tue, 22 Feb 2022 19:05:12 +0800 Subject: [PATCH 704/814] forget pwd --- internal/demo/register/verify.go | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/internal/demo/register/verify.go b/internal/demo/register/verify.go index b362fd340..01fafbb92 100644 --- a/internal/demo/register/verify.go +++ b/internal/demo/register/verify.go @@ -45,9 +45,16 @@ func Verify(c *gin.Context) { log.NewInfo("0", " params.VerificationCode != config.Config.Demo.SuperCode", params.VerificationCode, config.Config.Demo) log.NewInfo(params.OperationID, "begin get form redis", account) if params.UsedFor == 0 { - params.UsedFor = 1 + params.UsedFor = constant.VerificationCodeForRegister } - accountKey := account + "_" + constant.VerificationCodeForRegisterSuffix + var accountKey string + switch params.UsedFor { + case constant.VerificationCodeForRegister: + accountKey = account + "_" + constant.VerificationCodeForRegisterSuffix + case constant.VerificationCodeForReset: + accountKey = account + "_" + constant.VerificationCodeForResetSuffix + } + code, err := db.DB.GetAccountCode(accountKey) log.NewInfo(params.OperationID, "redis phone number and verificating Code", accountKey, code, params) if err != nil { From ebbdcbe5a56784868e6dccf866be992284ed5ab0 Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Wed, 23 Feb 2022 09:49:02 +0800 Subject: [PATCH 705/814] shell update --- script/start_rpc_service.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/script/start_rpc_service.sh b/script/start_rpc_service.sh index bbd7f3c5a..bc5f41e3d 100644 --- a/script/start_rpc_service.sh +++ b/script/start_rpc_service.sh @@ -29,7 +29,7 @@ service_port_name=( openImUserPort openImFriendPort openImGroupPort - + openImAuthPort openImAdminCmsPort openImMessageCmsPort openImStatisticsPort From d2ba299f42ea05f3e710ac3386de659c33db8478 Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Wed, 23 Feb 2022 10:10:28 +0800 Subject: [PATCH 706/814] shell update --- script/sdk_svr_start.sh | 2 -- 1 file changed, 2 deletions(-) diff --git a/script/sdk_svr_start.sh b/script/sdk_svr_start.sh index 2ba1295cd..e9604e5ea 100644 --- a/script/sdk_svr_start.sh +++ b/script/sdk_svr_start.sh @@ -6,7 +6,6 @@ source ./function.sh list1=$(cat $config_path | grep openImApiPort | awk -F '[:]' '{print $NF}') list2=$(cat $config_path | grep openImWsPort | awk -F '[:]' '{print $NF}') list3=$(cat $config_path | grep openImSdkWsPort | awk -F '[:]' '{print $NF}') -list4=$(cat $config_path | grep openImCmsApiPort | awk - F '[:]' '{print $NF}') list_to_string $list1 api_ports=($ports_array) list_to_string $list2 @@ -14,7 +13,6 @@ ws_ports=($ports_array) list_to_string $list3 sdk_ws_ports=($ports_array) list_to_string $list4 -cms_api_ports=($ports_array) From 5defc18a640a53689a1e4627c4a9b62105fcd3a7 Mon Sep 17 00:00:00 2001 From: wangchuxiao Date: Wed, 23 Feb 2022 10:18:43 +0800 Subject: [PATCH 707/814] alter cfg codettl --- config/config.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/config/config.yaml b/config/config.yaml index a2d08fcbf..4ff741619 100644 --- a/config/config.yaml +++ b/config/config.yaml @@ -464,13 +464,13 @@ demo: verificationCodeTemplateCode: SMS_226810164 superCode: 666666 # second - codeTTL: 60 + codeTTL: 300 mail: title: "openIM" senderMail: "765567899@qq.com" senderAuthorizationCode: "gxyausfoevlzbfag" smtpAddr: "smtp.qq.com" - smtpPort: + smtpPort: 25 From 8f5b5ab0f9ff5fada9e604abf2f785fdeda2034c Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Wed, 23 Feb 2022 10:31:11 +0800 Subject: [PATCH 708/814] openIM_v2 --- cmd/Open-IM-SDK-Core | 2 +- config/config.yaml | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/cmd/Open-IM-SDK-Core b/cmd/Open-IM-SDK-Core index 855e89361..23f31958d 160000 --- a/cmd/Open-IM-SDK-Core +++ b/cmd/Open-IM-SDK-Core @@ -1 +1 @@ -Subproject commit 855e893610c905e3105484c3519613b993301bd2 +Subproject commit 23f31958dae08260c5f9631f4937389a8e2d6751 diff --git a/config/config.yaml b/config/config.yaml index a2d08fcbf..29bc4416c 100644 --- a/config/config.yaml +++ b/config/config.yaml @@ -1,7 +1,7 @@ # The class cannot be named by Pascal or camel case. # If it is not used, the corresponding structure will not be set, # and it will not be read naturally. -serverversion: 1.0.3 +serverversion: 2.0.0 #---------------Infrastructure configuration---------------------# etcd: etcdSchema: openIM @@ -11,7 +11,7 @@ mysql: dbMysqlAddress: [ 127.0.0.1:13306 ] dbMysqlUserName: root dbMysqlPassword: openIM - dbMysqlDatabaseName: openIM + dbMysqlDatabaseName: openIM_v2 dbTableName: eMsg dbMsgTableNum: 1 dbMaxOpenConns: 20 From effb21bc6cd23b9e74292e04ce43d24fc52bf194 Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Wed, 23 Feb 2022 10:35:16 +0800 Subject: [PATCH 709/814] dbMysqlDatabaseName: openIM_v2 --- config/config.yaml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/config/config.yaml b/config/config.yaml index ed82b6748..c38960b68 100644 --- a/config/config.yaml +++ b/config/config.yaml @@ -1,7 +1,7 @@ # The class cannot be named by Pascal or camel case. # If it is not used, the corresponding structure will not be set, # and it will not be read naturally. -serverversion: 1.0.3 +serverversion: 2.0.0 #---------------Infrastructure configuration---------------------# etcd: etcdSchema: openIM @@ -11,7 +11,7 @@ mysql: dbMysqlAddress: [ 127.0.0.1:13306 ] dbMysqlUserName: root dbMysqlPassword: openIM - dbMysqlDatabaseName: openIM + dbMysqlDatabaseName: openIM_v2 dbTableName: eMsg dbMsgTableNum: 1 dbMaxOpenConns: 20 From 566c05bcef62b72cec6a144ddd3a3718ef7e2e16 Mon Sep 17 00:00:00 2001 From: wangchuxiao Date: Wed, 23 Feb 2022 12:00:02 +0800 Subject: [PATCH 710/814] mongodriver test --- internal/msg_transfer/logic/db.go | 2 +- internal/rpc/msg/pull_message.go | 4 ++-- internal/timed_task/timed_task.go | 2 +- pkg/common/db/model.go | 8 ++++---- pkg/common/db/mongoModel.go | 5 +++++ 5 files changed, 13 insertions(+), 8 deletions(-) diff --git a/internal/msg_transfer/logic/db.go b/internal/msg_transfer/logic/db.go index edc269f9f..806b782c0 100644 --- a/internal/msg_transfer/logic/db.go +++ b/internal/msg_transfer/logic/db.go @@ -18,6 +18,6 @@ func saveUserChat(uid string, msg *pbMsg.MsgDataToMQ) error { pbSaveData := pbMsg.MsgDataToDB{} pbSaveData.MsgData = msg.MsgData log.NewInfo(msg.OperationID, "IncrUserSeq cost time", utils.GetCurrentTimestampByMill()-time) - return db.DB.SaveUserChat(uid, pbSaveData.MsgData.SendTime, &pbSaveData) + return db.DB.SaveUserChatMongo2(uid, pbSaveData.MsgData.SendTime, &pbSaveData) // return db.DB.SaveUserChatMongo2(uid, pbSaveData.MsgData.SendTime, &pbSaveData) } diff --git a/internal/rpc/msg/pull_message.go b/internal/rpc/msg/pull_message.go index 126c6eb29..10a0978aa 100644 --- a/internal/rpc/msg/pull_message.go +++ b/internal/rpc/msg/pull_message.go @@ -39,8 +39,8 @@ func (rpc *rpcChat) GetMaxAndMinSeq(_ context.Context, in *pbMsg.GetMaxAndMinSeq func (rpc *rpcChat) PullMessageBySeqList(_ context.Context, in *open_im_sdk.PullMessageBySeqListReq) (*open_im_sdk.PullMessageBySeqListResp, error) { log.NewInfo(in.OperationID, "rpc PullMessageBySeqList is arriving", in.String()) resp := new(open_im_sdk.PullMessageBySeqListResp) - msgList, err := commonDB.DB.GetMsgBySeqList(in.UserID, in.SeqList, in.OperationID) -// msgList, err := commonDB.DB.GetMsgBySeqListMongo2(in.UserID, in.SeqList, in.OperationID) + //msgList, err := commonDB.DB.GetMsgBySeqList(in.UserID, in.SeqList, in.OperationID) + msgList, err := commonDB.DB.GetMsgBySeqListMongo2(in.UserID, in.SeqList, in.OperationID) if err != nil { log.ErrorByKv("PullMessageBySeqList data error", in.OperationID, in.String()) resp.ErrCode = 201 diff --git a/internal/timed_task/timed_task.go b/internal/timed_task/timed_task.go index bda907ea7..5b0264123 100644 --- a/internal/timed_task/timed_task.go +++ b/internal/timed_task/timed_task.go @@ -17,7 +17,7 @@ func (t *TimeTask) timedDeleteUserChat() { for i := 0; i < count; i++ { time.Sleep(10 * time.Millisecond) uid, _ := db.DB.MgoSkipUID(i) - db.DB.DelUserChat(uid) + db.DB.DelUserChatMongo2(uid) } go func() { diff --git a/pkg/common/db/model.go b/pkg/common/db/model.go index f990d95a3..8511201fa 100644 --- a/pkg/common/db/model.go +++ b/pkg/common/db/model.go @@ -3,15 +3,15 @@ package db import ( "Open_IM/pkg/common/config" "Open_IM/pkg/common/log" -// "context" -// "fmt" + // "context" + // "fmt" "github.com/garyburd/redigo/redis" "gopkg.in/mgo.v2" "time" //"go.mongodb.org/mongo-driver/bson" "go.mongodb.org/mongo-driver/mongo" -// "go.mongodb.org/mongo-driver/mongo/options" + // "go.mongodb.org/mongo-driver/mongo/options" ) @@ -36,7 +36,7 @@ func init() { initMysqlDB() // mongo init // "mongodb://sysop:moon@localhost/records" - // uri := "mongodb://user:pass@sample.host:27017/?maxPoolSize=20&w=majority" + //uri := "mongodb://user:pass@sample.host:27017/?maxPoolSize=20&w=majority" //uri := fmt.Sprintf("mongodb://%s:%s@%s/%s/?maxPoolSize=%d", // config.Config.Mongo.DBUserName, config.Config.Mongo.DBPassword, // config.Config.Mongo.DBAddress[0],config.Config.Mongo.DBDatabase, diff --git a/pkg/common/db/mongoModel.go b/pkg/common/db/mongoModel.go index 7a9c4b302..3b489af23 100644 --- a/pkg/common/db/mongoModel.go +++ b/pkg/common/db/mongoModel.go @@ -65,7 +65,12 @@ func (d *DataBases) GetMinSeqFromMongo(uid string) (MinSeq uint32, err error) { //return MinSeq, nil } +func (d *DataBases) GetMinSeqFromMongo2(uid string) (MinSeq uint32, err error) { + return 1, nil +} + func (d *DataBases) GetMsgBySeqList(uid string, seqList []uint32, operationID string) (seqMsg []*open_im_sdk.MsgData, err error) { + log.NewInfo(operationID, utils.GetSelfFuncName(), uid, seqList) var hasSeqList []uint32 singleCount := 0 session := d.mgoSession.Clone() From f9f36cd1d69cb8468fe89cb3a19d62a290d8b93c Mon Sep 17 00:00:00 2001 From: wangchuxiao Date: Wed, 23 Feb 2022 12:27:01 +0800 Subject: [PATCH 711/814] test mongo driver --- pkg/common/db/model.go | 37 +++++++++++++++++++++---------------- 1 file changed, 21 insertions(+), 16 deletions(-) diff --git a/pkg/common/db/model.go b/pkg/common/db/model.go index 8511201fa..29ebf8c24 100644 --- a/pkg/common/db/model.go +++ b/pkg/common/db/model.go @@ -3,12 +3,17 @@ package db import ( "Open_IM/pkg/common/config" "Open_IM/pkg/common/log" + "Open_IM/pkg/utils" + "fmt" + "go.mongodb.org/mongo-driver/mongo/options" + // "context" // "fmt" "github.com/garyburd/redigo/redis" "gopkg.in/mgo.v2" "time" + "context" //"go.mongodb.org/mongo-driver/bson" "go.mongodb.org/mongo-driver/mongo" // "go.mongodb.org/mongo-driver/mongo/options" @@ -36,23 +41,23 @@ func init() { initMysqlDB() // mongo init // "mongodb://sysop:moon@localhost/records" - //uri := "mongodb://user:pass@sample.host:27017/?maxPoolSize=20&w=majority" - //uri := fmt.Sprintf("mongodb://%s:%s@%s/%s/?maxPoolSize=%d", - // config.Config.Mongo.DBUserName, config.Config.Mongo.DBPassword, - // config.Config.Mongo.DBAddress[0],config.Config.Mongo.DBDatabase, - // config.Config.Mongo.DBMaxPoolSize) - // - //mongoClient, err := mongo.Connect(context.TODO(), options.Client().ApplyURI(uri)) - //if err != nil{ - // log.NewError(" mongo.Connect failed, try ", err.Error(), uri) - // time.Sleep(time.Duration(30) * time.Second) - // mongoClient, err1 = mongo.Connect(context.TODO(), options.Client().ApplyURI(uri)) - // if err1 != nil { - // log.NewError(" mongo.Connect failed, panic", err.Error(), uri) - // panic(err1.Error()) - // } - //} + uri := "mongodb://user:pass@sample.host:27017/?maxPoolSize=20&w=majority" + uri = fmt.Sprintf("mongodb://%s:%s@%s/%s/?maxPoolSize=%d", + config.Config.Mongo.DBUserName, config.Config.Mongo.DBPassword, + config.Config.Mongo.DBAddress[0],config.Config.Mongo.DBDatabase, + config.Config.Mongo.DBMaxPoolSize) + mongoClient, err := mongo.Connect(context.TODO(), options.Client().ApplyURI(uri)) + if err != nil{ + log.NewError(" mongo.Connect failed, try ", utils.GetSelfFuncName(), err.Error(), uri) + time.Sleep(time.Duration(30) * time.Second) + mongoClient, err1 = mongo.Connect(context.TODO(), options.Client().ApplyURI(uri)) + if err1 != nil { + log.NewError(" mongo.Connect retry failed, panic", err.Error(), uri) + panic(err1.Error()) + } + } + log.NewInfo("0", utils.GetSelfFuncName(), "mongo driver client init success") mgoDailInfo := &mgo.DialInfo{ From fc11b3c463d64268b933f116ec3e6cfce56785d7 Mon Sep 17 00:00:00 2001 From: wangchuxiao Date: Wed, 23 Feb 2022 12:30:18 +0800 Subject: [PATCH 712/814] test mongo driver --- pkg/common/db/model.go | 58 +++++++++++++++++++++--------------------- 1 file changed, 29 insertions(+), 29 deletions(-) diff --git a/pkg/common/db/model.go b/pkg/common/db/model.go index 29ebf8c24..c85c948fa 100644 --- a/pkg/common/db/model.go +++ b/pkg/common/db/model.go @@ -58,37 +58,37 @@ func init() { } } log.NewInfo("0", utils.GetSelfFuncName(), "mongo driver client init success") - - - mgoDailInfo := &mgo.DialInfo{ - Addrs: config.Config.Mongo.DBAddress, - Direct: config.Config.Mongo.DBDirect, - Timeout: time.Second * time.Duration(config.Config.Mongo.DBTimeout), - Database: config.Config.Mongo.DBDatabase, - Source: config.Config.Mongo.DBSource, - Username: config.Config.Mongo.DBUserName, - Password: config.Config.Mongo.DBPassword, - PoolLimit: config.Config.Mongo.DBMaxPoolSize, - } - mgoSession, err := mgo.DialWithInfo(mgoDailInfo) - - if err != nil { - - mgoSession, err1 = mgo.DialWithInfo(mgoDailInfo) - if err1 != nil { - log.NewError(" mongo.Connect failed, panic", err.Error()) - panic(err1.Error()) - } - } DB.mongoClient = mongoClient - DB.mgoSession = mgoSession - DB.mgoSession.SetMode(mgo.Monotonic, true) - c := DB.mgoSession.DB(config.Config.Mongo.DBDatabase).C(cChat) - err = c.EnsureIndexKey("uid") - if err != nil { - panic(err.Error()) - } + //mgoDailInfo := &mgo.DialInfo{ + // Addrs: config.Config.Mongo.DBAddress, + // Direct: config.Config.Mongo.DBDirect, + // Timeout: time.Second * time.Duration(config.Config.Mongo.DBTimeout), + // Database: config.Config.Mongo.DBDatabase, + // Source: config.Config.Mongo.DBSource, + // Username: config.Config.Mongo.DBUserName, + // Password: config.Config.Mongo.DBPassword, + // PoolLimit: config.Config.Mongo.DBMaxPoolSize, + //} + //mgoSession, err = mgo.DialWithInfo(mgoDailInfo) + // + //if err != nil { + // + // mgoSession, err1 = mgo.DialWithInfo(mgoDailInfo) + // if err1 != nil { + // log.NewError(" mongo.Connect failed, panic", err.Error()) + // panic(err1.Error()) + // } + //} + + //DB.mgoSession = mgoSession + //DB.mgoSession.SetMode(mgo.Monotonic, true) + //c := DB.mgoSession.DB(config.Config.Mongo.DBDatabase).C(cChat) + //err = c.EnsureIndexKey("uid") + //if err != nil { + // panic(err.Error()) + //} + // // redis pool init DB.redisPool = &redis.Pool{ From 1b68363b80611f05fc3ca319a00f791e6eedff9d Mon Sep 17 00:00:00 2001 From: wangchuxiao Date: Wed, 23 Feb 2022 12:30:47 +0800 Subject: [PATCH 713/814] test mongo driver --- pkg/common/db/model.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkg/common/db/model.go b/pkg/common/db/model.go index c85c948fa..eb08d37da 100644 --- a/pkg/common/db/model.go +++ b/pkg/common/db/model.go @@ -34,7 +34,7 @@ func key(dbAddress, dbName string) string { } func init() { - var mgoSession *mgo.Session + //var mgoSession *mgo.Session var mongoClient *mongo.Client var err1 error //mysql init From 541ccda7541ade33bc2095d6cc2933f71cdc72b5 Mon Sep 17 00:00:00 2001 From: wangchuxiao Date: Wed, 23 Feb 2022 14:30:21 +0800 Subject: [PATCH 714/814] test mongo driver --- pkg/common/db/model.go | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/pkg/common/db/model.go b/pkg/common/db/model.go index eb08d37da..0576e6286 100644 --- a/pkg/common/db/model.go +++ b/pkg/common/db/model.go @@ -41,9 +41,8 @@ func init() { initMysqlDB() // mongo init // "mongodb://sysop:moon@localhost/records" - uri := "mongodb://user:pass@sample.host:27017/?maxPoolSize=20&w=majority" - uri = fmt.Sprintf("mongodb://%s:%s@%s/%s/?maxPoolSize=%d", - config.Config.Mongo.DBUserName, config.Config.Mongo.DBPassword, + uri := "mongodb://sample.host:27017/?maxPoolSize=20&w=majority" + uri = fmt.Sprintf("mongodb://%s/%s/?maxPoolSize=%d", config.Config.Mongo.DBAddress[0],config.Config.Mongo.DBDatabase, config.Config.Mongo.DBMaxPoolSize) From 1e602975f32b6dce7a613ef3eae93fada225df1c Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Wed, 23 Feb 2022 15:27:23 +0800 Subject: [PATCH 715/814] test --- pkg/common/db/mysql_model/im_mysql_model/demo_model.go | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/pkg/common/db/mysql_model/im_mysql_model/demo_model.go b/pkg/common/db/mysql_model/im_mysql_model/demo_model.go index 2e5d7df86..a10218828 100644 --- a/pkg/common/db/mysql_model/im_mysql_model/demo_model.go +++ b/pkg/common/db/mysql_model/im_mysql_model/demo_model.go @@ -11,7 +11,7 @@ func GetRegister(account string) (*db.Register, error) { return nil, err } var r db.Register - return &r, dbConn.Table("registers").Where("account = ?", + return &r, dbConn.Debug().Table("registers").Where("account = ?", account).Take(&r).Error } @@ -30,7 +30,7 @@ func SetPassword(account, password, ex string) error { func ResetPassword(account, password string) error { r := db.Register{ - Password:password, + Password: password, } dbConn, err := db.DB.MysqlDB.DefaultGormDB() dbConn.LogMode(true) From d9f5f960a5fbd380139298bbe75e033931beb9e7 Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Wed, 23 Feb 2022 15:33:22 +0800 Subject: [PATCH 716/814] test --- 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 b6ec445f6..3a477e12e 100644 --- a/internal/demo/register/login.go +++ b/internal/demo/register/login.go @@ -37,7 +37,7 @@ func Login(c *gin.Context) { r, err := im_mysql_model.GetRegister(account) if err != nil { - log.NewError(params.OperationID, "user have not register", params.Password, account) + log.NewError(params.OperationID, "user have not register", params.Password, account, err.Error()) c.JSON(http.StatusOK, gin.H{"errCode": constant.NotRegistered, "errMsg": "Mobile phone number is not registered"}) return } From 3b80b747309eb7317fd4ef1c3b03c83ff5a5651b Mon Sep 17 00:00:00 2001 From: wangchuxiao Date: Wed, 23 Feb 2022 15:46:02 +0800 Subject: [PATCH 717/814] test mongo driver --- internal/rpc/group/group.go | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/internal/rpc/group/group.go b/internal/rpc/group/group.go index 6e39ab266..2cd5ed4d8 100644 --- a/internal/rpc/group/group.go +++ b/internal/rpc/group/group.go @@ -890,10 +890,9 @@ func (s *groupServer) AddGroupMembersCMS(_ context.Context, req *pbGroup.AddGrou resp.Failed = append(resp.Failed, userId) } else { resp.Success = append(resp.Success, userId) - chat.MemberInvitedNotification(req.OperationId, req.GroupId, req.OpUserId, "admin add", resp.Success) } - } + chat.MemberInvitedNotification(req.OperationId, req.GroupId, req.OpUserId, "admin add you to group", resp.Success) return resp, nil } From 0fca91ca37c9b01ccc02ac99c3c2362d0916bf16 Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Wed, 23 Feb 2022 18:22:44 +0800 Subject: [PATCH 718/814] config description --- cmd/Open-IM-SDK-Core | 2 +- config/config.yaml | 125 ++++++++++++++++++++++--------------------- 2 files changed, 65 insertions(+), 62 deletions(-) diff --git a/cmd/Open-IM-SDK-Core b/cmd/Open-IM-SDK-Core index 23f31958d..992f76df0 160000 --- a/cmd/Open-IM-SDK-Core +++ b/cmd/Open-IM-SDK-Core @@ -1 +1 @@ -Subproject commit 23f31958dae08260c5f9631f4937389a8e2d6751 +Subproject commit 992f76df0ee500a0377523b0780d3a85f2275755 diff --git a/config/config.yaml b/config/config.yaml index d39c62b3c..8eaec096c 100644 --- a/config/config.yaml +++ b/config/config.yaml @@ -4,44 +4,44 @@ serverversion: 2.0.0 #---------------Infrastructure configuration---------------------# etcd: - etcdSchema: openIM - etcdAddr: [ 127.0.0.1:2379 ] + etcdSchema: openIM #默认即可 + etcdAddr: [ 127.0.0.1:2379 ] #单机部署时,默认即可 mysql: - dbMysqlAddress: [ 127.0.0.1:13306 ] - dbMysqlUserName: root - dbMysqlPassword: openIM - dbMysqlDatabaseName: openIM_v2 - dbTableName: eMsg + dbMysqlAddress: [ 127.0.0.1:13306 ] #mysql地址 目前仅支持单机,默认即可 + dbMysqlUserName: root #mysql用户名,建议修改 + dbMysqlPassword: openIM # mysql密码,建议修改 + dbMysqlDatabaseName: openIM_v2 #默认即可 + dbTableName: eMsg #默认即可 dbMsgTableNum: 1 dbMaxOpenConns: 20 dbMaxIdleConns: 10 dbMaxLifeTime: 120 mongo: - dbAddress: [ 127.0.0.1:37017 ] + dbAddress: [ 127.0.0.1:37017 ] #redis地址 目前仅支持单机,默认即可 dbDirect: false dbTimeout: 10 - dbDatabase: openIM + dbDatabase: openIM #mongo db 默认即可 dbSource: admin - dbUserName: - dbPassword: + dbUserName: #mongo用户名,建议先不设置 + dbPassword: #mongo密码,建议先不设置 dbMaxPoolSize: 20 - dbRetainChatRecords: 7 + dbRetainChatRecords: 3650 #mongo保存离线消息时间(天),根据需求修改 redis: - dbAddress: 127.0.0.1:16379 + dbAddress: 127.0.0.1:16379 #redis地址 目前仅支持单机,默认即可 dbMaxIdle: 128 dbMaxActive: 0 dbIdleTimeout: 120 - dbPassWord: openIM + dbPassWord: openIM #redis密码 建议修改 kafka: ws2mschat: - addr: [ 127.0.0.1:9092 ] + addr: [ 127.0.0.1:9092 ] #kafka配置,默认即可 topic: "ws2ms_chat" ms2pschat: - addr: [ 127.0.0.1:9092 ] + addr: [ 127.0.0.1:9092 ] #kafka配置,默认即可 topic: "ms2ps_chat" consumergroupid: msgToMongo: mongo @@ -55,6 +55,7 @@ kafka: # The service ip default is empty, # automatically obtain the machine's valid network card ip as the service ip, # otherwise the configuration ip is preferred +#如果是单机模式,用0.0.0.0或者不填,默认即可 serverip: 0.0.0.0 # endpoints 内部组件间访问的端点host名称,访问时,可以内部直接访问 host:port 来访问 @@ -73,27 +74,28 @@ endpoints: rpc_message_cms: openim_rpc_admin_cms api: - openImApiPort: [ 10000 ] + openImApiPort: [ 10000 ] #api服务端口,默认即可,需要开放此端口或做nginx转发 cmsapi: - openImCmsApiPort: [ 8000 ] + openImCmsApiPort: [ 8000 ] #管理后台api服务端口,默认即可,需要开放此端口或做nginx转发 sdk: - openImSdkWsPort: [ 30000 ] + openImSdkWsPort: [ 30000 ] #jssdk服务端口,默认即可,项目中使用jssdk才需开放此端口或做nginx转发 -credential: +credential: #腾讯cos,发送图片、视频、文件时需要,请自行申请后替换,必须修改 tencent: appID: 1302656840 region: ap-chengdu bucket: echat-1302656840 secretID: AKIDGNYVChzIQinu7QEgtNp0hnNgqcV8vZTC secretKey: kz15vW83qM6dBUWIq681eBZA0c0vlIbe - minio: + minio: #MinIO 发送图片、视频、文件时需要,请自行申请后替换,必须修改。 客户端初始化时相应改动 bucket: openim location: us-east-1 endpoint: http://127.0.0.1:9000 accessKeyID: minioadmin secretAccessKey: minioadmin -rpcport: + +rpcport: #rpc服务端口 默认即可 openImUserPort: [ 10100 ] openImFriendPort: [ 10200 ] openImOfflineMessagePort: [ 10300 ] @@ -114,7 +116,7 @@ rpcport: stateChange: switch: false -rpcregistername: +rpcregistername: #rpc注册服务名,默认即可 openImUserName: User openImFriendName: Friend openImOfflineMessageName: OfflineMessage @@ -129,57 +131,57 @@ rpcregistername: log: storageLocation: ../logs/ rotationTime: 24 - remainRotationCount: 5 - remainLogLevel: 6 + remainRotationCount: 5 #日志数量 + remainLogLevel: 6 #日志级别 6表示全都打印,测试阶段建议设置为6 elasticSearchSwitch: false elasticSearchAddr: [ 127.0.0.1:9201 ] elasticSearchUser: "" elasticSearchPassword: "" -modulename: +modulename: #日志文件按模块命名,默认即可 longConnSvrName: msg_gateway msgTransferName: msg_transfer pushName: push longconnsvr: - openImWsPort: [ 17778 ] + openImWsPort: [ 17778 ] # ws服务端口,默认即可,要开放此端口或做nginx转发 websocketMaxConnNum: 10000 websocketMaxMsgLen: 4096 websocketTimeOut: 10 push: - tpns: + tpns: #腾讯推送,暂未测试 暂不要使用 ios: accessID: 1600018281 secretKey: 3cd68a77a95b89e5089a1aca523f318f android: accessID: 111 secretKey: 111 - jpns: + jpns: #极光推送 在极光后台申请后,修改以下四项,必须修改 appKey: cf47465a368f24c659608e7e masterSecret: 02204efe3f3832947a236ee5 pushUrl: "https://api.jpush.cn/v3/push" pushIntent: "intent:#Intent;component=io.openim.app.enterprisechat/io.openim.app.enterprisechat.MainActivity;end" manager: + #app管理员userID和对应的secret 建议修改。 用于管理后台登录,也可以用户管理后台对应的api appManagerUid: [ "openIM123456","openIM654321", "openIM333", "openIMAdmin"] secrets: [ "openIM1","openIM2", "openIM333", "openIMAdmin"] secret: tuoyun - +# 多端互踢策略 +# 1:多平台登录:Android、iOS、Windows、Mac 每种平台只能一个在线,web端可以多个同时在线 multiloginpolicy: 1 #token config tokenpolicy: - accessSecret: "open_im_server" + accessSecret: "open_im_server" #token生成相关,默认即可 # Token effective time day as a unit - accessExpire: 7 + accessExpire: 3650 #token过期时间(天) 默认即可 -messagecallback: +messagecallback: #暂时不要使用 还需完善 callbackUrl: "http://www.xxx.com/msg/judge" #TimeOut use second as unit callbackTimeOut: 10 -messagejudge: - isJudgeFriend: true # c2c: # callbackBeforeSendMsg: # switch: false @@ -189,7 +191,7 @@ messagejudge: # state: # stateChange: # switch: false - +#ios系统推送声音以及标记计数 iospush: pushSound: "xxx" badgeCount: true @@ -253,7 +255,7 @@ notification: desc: "groupApplicationAccepted desc" ext: "groupApplicationAccepted ext" defaultTips: - tips: "was allowed to join the group" # group info changed by xx + tips: "allowed to join the group" # group info changed by xx groupApplicationRejected: conversation: @@ -265,7 +267,7 @@ notification: desc: " desc" ext: " ext" defaultTips: - tips: "was rejected into the group" # group info changed by xx + tips: "rejected into the group" # group info changed by xx groupOwnerTransferred: conversation: @@ -289,7 +291,7 @@ notification: desc: "memberKicked desc" ext: "memberKicked ext" defaultTips: - tips: "was kicked out of the group" # group info changed by xx + tips: "kicked out of the group" # group info changed by xx memberInvited: conversation: @@ -301,7 +303,7 @@ notification: desc: "memberInvited desc" ext: "memberInvited ext" defaultTips: - tips: "was invited into the group" # group info changed by xx + tips: "invited into the group" # group info changed by xx memberEnter: conversation: @@ -378,11 +380,11 @@ notification: unreadCount: false offlinePush: switch: true - title: "Deleted a friend" - desc: "Deleted a friend" - ext: "Deleted a friend" + title: "deleted a friend" + desc: "deleted a friend" + ext: "deleted a friend" defaultTips: - tips: "Deleted a friend" # + tips: "deleted a friend" # friendRemarkSet: @@ -405,11 +407,11 @@ notification: unreadCount: false offlinePush: switch: true - title: "Blocked a user" - desc: "Blocked a user" - ext: "Blocked a user" + title: "blocked a user" + desc: "blocked a user" + ext: "blocked a user" defaultTips: - tips: "Blocked a user" # + tips: "blocked a user" # blackDeleted: @@ -435,7 +437,7 @@ notification: desc: "Remove a blocked user" ext: "Remove a blocked user" defaultTips: - tips: "Remove a blocked user" + tips: "remove a blocked user" #####################conversation######################### conversationOptUpdate: @@ -454,23 +456,24 @@ notification: #---------------demo configuration---------------------# #The following configuration items are applied to openIM Demo configuration +#是否启动demo,如果自身没有账号体系,设置为true demoswitch: true demo: - openImDemoPort: [ 42233 ] - alismsverify: - accessKeyId: LTAI5tJPkn4HuuePdiLdGqe7 - accessKeySecret: 4n9OJ7ZCVN1U6KeHDAtOyNeVZcjOuV - signName: 托云信息技术 - verificationCodeTemplateCode: SMS_226810164 - superCode: 666666 + openImDemoPort: [ 42233 ] #demo对外服务端口,默认即可,需要开放此端口或做nginx转发 + alismsverify: #阿里云短信配置,在阿里云申请成功后修改以下四项,必须修改 + accessKeyId: LTAI5tJPkn4HuuePdiLdGqe71 + accessKeySecret: 4n9OJ7ZCVN1U6KeHDAtOyNeVZcjOuV1 + signName: OpenIM Corporation + verificationCodeTemplateCode: SMS_2268101641 + superCode: 666666 #超级验证码,建议修改掉,收不到短信验证码时可以用此替代 # second - codeTTL: 300 - mail: + codeTTL: 60 + mail: #仅支持qq邮箱,具体操作参考 https://service.mail.qq.com/cgi-bin/help?subtype=1&id=28&no=1001256 必须修改 title: "openIM" - senderMail: "765567899@qq.com" - senderAuthorizationCode: "gxyausfoevlzbfag" + senderMail: "1765567899@qq.com" + senderAuthorizationCode: "1gxyausfoevlzbfag" smtpAddr: "smtp.qq.com" - smtpPort: 25 + smtpPort: 25 #需开放此端口 出口方向 From e1a0c2fc483864c9c2d2053318a1f30df8bf32bd Mon Sep 17 00:00:00 2001 From: wangchuxiao Date: Thu, 24 Feb 2022 14:47:21 +0800 Subject: [PATCH 719/814] fix bug --- internal/rpc/group/group.go | 1 + pkg/call_back_struct/common.go | 1 + pkg/call_back_struct/message.go | 1 + 3 files changed, 3 insertions(+) create mode 100644 pkg/call_back_struct/common.go create mode 100644 pkg/call_back_struct/message.go diff --git a/internal/rpc/group/group.go b/internal/rpc/group/group.go index 2cd5ed4d8..40255d071 100644 --- a/internal/rpc/group/group.go +++ b/internal/rpc/group/group.go @@ -746,6 +746,7 @@ func (s *groupServer) GetGroups(_ context.Context, req *pbGroup.GetGroupsReq) (* OwnerUserID: v.CreatorUserID, Status: v.Status, CreatorUserID: v.CreatorUserID, + CreateTime: uint32(v.CreateTime.Unix()), }, GroupMasterId: groupMember.UserID, GroupMasterName: groupMember.Nickname, diff --git a/pkg/call_back_struct/common.go b/pkg/call_back_struct/common.go new file mode 100644 index 000000000..90b77eda8 --- /dev/null +++ b/pkg/call_back_struct/common.go @@ -0,0 +1 @@ +package call_back_struct diff --git a/pkg/call_back_struct/message.go b/pkg/call_back_struct/message.go new file mode 100644 index 000000000..90b77eda8 --- /dev/null +++ b/pkg/call_back_struct/message.go @@ -0,0 +1 @@ +package call_back_struct From 0410003cebfea6e68455093e5b8a8c531514c917 Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Thu, 24 Feb 2022 18:08:53 +0800 Subject: [PATCH 720/814] api update --- config/config.yaml | 1 + internal/api/manage/management_chat.go | 20 ++++++++++---------- pkg/base_info/manage_api_struct.go | 6 ++++++ pkg/base_info/user_api_struct.go | 4 ++-- 4 files changed, 19 insertions(+), 12 deletions(-) diff --git a/config/config.yaml b/config/config.yaml index d39c62b3c..b7bf188a6 100644 --- a/config/config.yaml +++ b/config/config.yaml @@ -175,6 +175,7 @@ tokenpolicy: accessExpire: 7 messagecallback: + callbackSwitch: false callbackUrl: "http://www.xxx.com/msg/judge" #TimeOut use second as unit callbackTimeOut: 10 diff --git a/internal/api/manage/management_chat.go b/internal/api/manage/management_chat.go index f09b9acd7..8ff3e5906 100644 --- a/internal/api/manage/management_chat.go +++ b/internal/api/manage/management_chat.go @@ -7,12 +7,14 @@ package manage import ( + api "Open_IM/pkg/base_info" "Open_IM/pkg/common/config" "Open_IM/pkg/common/constant" "Open_IM/pkg/common/log" "Open_IM/pkg/common/token_verify" "Open_IM/pkg/grpc-etcdv3/getcdv3" pbChat "Open_IM/pkg/proto/chat" + "Open_IM/pkg/proto/sdk_ws" open_im_sdk "Open_IM/pkg/proto/sdk_ws" "Open_IM/pkg/utils" "context" @@ -40,11 +42,13 @@ func newUserSendMsgReq(params *ManagementSendMsgReq) *pbChat.SendMsgReq { newContent = utils.StructToJsonString(params.Content) default: } - options := make(map[string]bool, 2) + var options map[string]bool if params.IsOnlineOnly { + options = make(map[string]bool, 5) utils.SetSwitchFromOptions(options, constant.IsOfflinePush, false) utils.SetSwitchFromOptions(options, constant.IsHistory, false) utils.SetSwitchFromOptions(options, constant.IsPersistent, false) + utils.SetSwitchFromOptions(options, constant.IsSenderSync, false) } pbData := pbChat.SendMsgReq{ OperationID: params.OperationID, @@ -152,20 +156,16 @@ func ManagementSendMsg(c *gin.Context) { log.Info("", "", "api ManagementSendMsg call, api call rpc...") - reply, err := client.SendMsg(context.Background(), pbData) + RpcResp, err := client.SendMsg(context.Background(), pbData) if err != nil { log.NewError(params.OperationID, "call delete UserSendMsg rpc server failed", err.Error()) c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": "call UserSendMsg rpc server failed"}) return } - log.Info("", "", "api ManagementSendMsg call end..., [data: %s] [reply: %s]", pbData.String(), reply.String()) - - c.JSON(http.StatusOK, gin.H{ - "errCode": reply.ErrCode, - "errMsg": reply.ErrMsg, - "sendTime": reply.SendTime, - "msgID": reply.ClientMsgID, - }) + log.Info("", "", "api ManagementSendMsg call end..., [data: %s] [reply: %s]", pbData.String(), RpcResp.String()) + resp := api.ManagementSendMsgResp{CommResp: api.CommResp{ErrCode: RpcResp.ErrCode, ErrMsg: RpcResp.ErrMsg}, ResultList: server_api_params.UserSendMsgResp{ServerMsgID: RpcResp.ServerMsgID, ClientMsgID: RpcResp.ClientMsgID, SendTime: RpcResp.SendTime}} + log.Info(params.OperationID, "ManagementSendMsg return", resp) + c.JSON(http.StatusOK, resp) } diff --git a/pkg/base_info/manage_api_struct.go b/pkg/base_info/manage_api_struct.go index 61e2bbba4..4b2061b57 100644 --- a/pkg/base_info/manage_api_struct.go +++ b/pkg/base_info/manage_api_struct.go @@ -2,6 +2,7 @@ package base_info import ( pbRelay "Open_IM/pkg/proto/relay" + "Open_IM/pkg/proto/sdk_ws" pbUser "Open_IM/pkg/proto/user" ) @@ -36,3 +37,8 @@ type AccountCheckResp struct { CommResp ResultList []*pbUser.AccountCheckResp_SingleUserStatus `json:"data"` } + +type ManagementSendMsgResp struct { + CommResp + ResultList server_api_params.UserSendMsgResp `json:"data"` +} diff --git a/pkg/base_info/user_api_struct.go b/pkg/base_info/user_api_struct.go index f4be785f2..10f20376c 100644 --- a/pkg/base_info/user_api_struct.go +++ b/pkg/base_info/user_api_struct.go @@ -10,8 +10,8 @@ type GetUsersInfoReq struct { } type GetUsersInfoResp struct { CommResp - UserInfoList []*open_im_sdk.PublicUserInfo - Data []map[string]interface{} `json:"data"` + UserInfoList []*open_im_sdk.PublicUserInfo `json:"-"` + Data []map[string]interface{} `json:"data"` } type UpdateSelfUserInfoReq struct { From fe9e2aa287a45fa0b574aed2050cbcea3a22ac95 Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Fri, 25 Feb 2022 11:49:52 +0800 Subject: [PATCH 721/814] config update --- config/config.yaml | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/config/config.yaml b/config/config.yaml index a5d755182..d4a8c3e87 100644 --- a/config/config.yaml +++ b/config/config.yaml @@ -464,17 +464,17 @@ demoswitch: true demo: openImDemoPort: [ 42233 ] #demo对外服务端口,默认即可,需要开放此端口或做nginx转发 alismsverify: #阿里云短信配置,在阿里云申请成功后修改以下四项,必须修改 - accessKeyId: LTAI5tJPkn4HuuePdiLdGqe71 - accessKeySecret: 4n9OJ7ZCVN1U6KeHDAtOyNeVZcjOuV1 - signName: OpenIM Corporation - verificationCodeTemplateCode: SMS_2268101641 + accessKeyId: LTAI5tJPkn4HuuePdiLdGqe7 + accessKeySecret: 4n9OJ7ZCVN1U6KeHDAtOyNeVZcjOuV + signName: 托云信息技术 + verificationCodeTemplateCode: SMS_226810164 superCode: 666666 #超级验证码,建议修改掉,收不到短信验证码时可以用此替代 # second codeTTL: 300 mail: #仅支持qq邮箱,具体操作参考 https://service.mail.qq.com/cgi-bin/help?subtype=1&id=28&no=1001256 必须修改 title: "openIM" - senderMail: "1765567899@qq.com" - senderAuthorizationCode: "1gxyausfoevlzbfag" + senderMail: "765567899@qq.com" + senderAuthorizationCode: "gxyausfoevlzbfag" smtpAddr: "smtp.qq.com" smtpPort: 25 #需开放此端口 出口方向 From 2c26efb5a994ffa883a452a29c7cca206aadfa5a Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Fri, 25 Feb 2022 15:02:02 +0800 Subject: [PATCH 722/814] log remove --- pkg/common/db/mysql_model/im_mysql_model/demo_model.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkg/common/db/mysql_model/im_mysql_model/demo_model.go b/pkg/common/db/mysql_model/im_mysql_model/demo_model.go index a10218828..897e5e212 100644 --- a/pkg/common/db/mysql_model/im_mysql_model/demo_model.go +++ b/pkg/common/db/mysql_model/im_mysql_model/demo_model.go @@ -11,7 +11,7 @@ func GetRegister(account string) (*db.Register, error) { return nil, err } var r db.Register - return &r, dbConn.Debug().Table("registers").Where("account = ?", + return &r, dbConn.Table("registers").Where("account = ?", account).Take(&r).Error } From 010736839a06dd7fcda32b4dafe370ed8cc50bc0 Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Fri, 25 Feb 2022 15:26:55 +0800 Subject: [PATCH 723/814] 2.0.1 --- docker-compose.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docker-compose.yaml b/docker-compose.yaml index b8d99cc7d..5497faa43 100644 --- a/docker-compose.yaml +++ b/docker-compose.yaml @@ -89,7 +89,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.0 + image: openim/open_im_server:v2.0.1 container_name: open_im_server volumes: - ./logs:/Open-IM-Server/logs From 157cd9a03562415227fd3edb8177a1a6b706c643 Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Fri, 25 Feb 2022 15:27:37 +0800 Subject: [PATCH 724/814] 2.0.1 --- docker-compose.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docker-compose.yaml b/docker-compose.yaml index b8d99cc7d..5497faa43 100644 --- a/docker-compose.yaml +++ b/docker-compose.yaml @@ -89,7 +89,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.0 + image: openim/open_im_server:v2.0.1 container_name: open_im_server volumes: - ./logs:/Open-IM-Server/logs From 751c278052326a25ce6082d52973d420fd05c59d Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Fri, 25 Feb 2022 15:31:18 +0800 Subject: [PATCH 725/814] version: "2" --- docker-compose.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docker-compose.yaml b/docker-compose.yaml index 5497faa43..0c9422f62 100644 --- a/docker-compose.yaml +++ b/docker-compose.yaml @@ -1,4 +1,4 @@ -version: "3" +version: "2" #fixme Clone openIM Server project before using docker-compose,project address:https://github.com/OpenIMSDK/Open-IM-Server.git services: From 70b97aa856989f4c75a6ba35ca542cd606ef3daa Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Fri, 25 Feb 2022 15:36:29 +0800 Subject: [PATCH 726/814] version: "3" --- docker-compose.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docker-compose.yaml b/docker-compose.yaml index 0c9422f62..5497faa43 100644 --- a/docker-compose.yaml +++ b/docker-compose.yaml @@ -1,4 +1,4 @@ -version: "2" +version: "3" #fixme Clone openIM Server project before using docker-compose,project address:https://github.com/OpenIMSDK/Open-IM-Server.git services: From a1333dcace141dc1795ce6efb6b9bc460723cc01 Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Fri, 25 Feb 2022 15:59:33 +0800 Subject: [PATCH 727/814] config update --- config/config.yaml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/config/config.yaml b/config/config.yaml index d4a8c3e87..6e3eaeea6 100644 --- a/config/config.yaml +++ b/config/config.yaml @@ -462,7 +462,8 @@ notification: #是否启动demo,如果自身没有账号体系,设置为true demoswitch: true demo: - openImDemoPort: [ 42233 ] #demo对外服务端口,默认即可,需要开放此端口或做nginx转发 + #demo对外服务端口,默认即可,需要开放此端口或做nginx转发 + openImDemoPort: [ 42233 ] alismsverify: #阿里云短信配置,在阿里云申请成功后修改以下四项,必须修改 accessKeyId: LTAI5tJPkn4HuuePdiLdGqe7 accessKeySecret: 4n9OJ7ZCVN1U6KeHDAtOyNeVZcjOuV From a1067492b72349a1b5a63c3b5dfa464c3f231056 Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Fri, 25 Feb 2022 18:35:04 +0800 Subject: [PATCH 728/814] server msg id update --- internal/rpc/msg/send_msg.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/internal/rpc/msg/send_msg.go b/internal/rpc/msg/send_msg.go index 114746da2..a57a6e892 100644 --- a/internal/rpc/msg/send_msg.go +++ b/internal/rpc/msg/send_msg.go @@ -245,7 +245,7 @@ func (rpc *rpcChat) sendMsgToKafka(m *pbChat.MsgDataToMQ, key string) error { } func GetMsgID(sendID string) string { t := time.Now().Format("2006-01-02 15:04:05") - return t + "-" + sendID + "-" + strconv.Itoa(rand.Int()) + return utils.Md5(t + "-" + sendID + "-" + strconv.Itoa(rand.Int())) } func returnMsg(replay *pbChat.SendMsgResp, pb *pbChat.SendMsgReq, errCode int32, errMsg, serverMsgID string, sendTime int64) (*pbChat.SendMsgResp, error) { From 55c8399084b78c3d73c455b6540ea1fa083ccce1 Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Fri, 25 Feb 2022 19:19:23 +0800 Subject: [PATCH 729/814] remove mysql for test --- internal/msg_transfer/logic/init.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/internal/msg_transfer/logic/init.go b/internal/msg_transfer/logic/init.go index cce434d99..7d1cad671 100644 --- a/internal/msg_transfer/logic/init.go +++ b/internal/msg_transfer/logic/init.go @@ -20,6 +20,6 @@ func Init() { } func Run() { //register mysqlConsumerHandler to - go persistentCH.persistentConsumerGroup.RegisterHandleAndConsumer(&persistentCH) + //go persistentCH.persistentConsumerGroup.RegisterHandleAndConsumer(&persistentCH) go historyCH.historyConsumerGroup.RegisterHandleAndConsumer(&historyCH) } From 8c9d1b7dec123c1f192d27e9b39a157ee8d1efdb Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Fri, 25 Feb 2022 19:29:39 +0800 Subject: [PATCH 730/814] statistics --- pkg/statistics/statistics.go | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 pkg/statistics/statistics.go diff --git a/pkg/statistics/statistics.go b/pkg/statistics/statistics.go new file mode 100644 index 000000000..51ff4c871 --- /dev/null +++ b/pkg/statistics/statistics.go @@ -0,0 +1,20 @@ +package statistics + +import "time" + +type Statistics struct { + Count *uint64 + Dr int +} + +func (s *Statistics) output() { + for { + time.Sleep(time.Duration(s.Dr) * time.Second) + + } +} + +func NewStatistics(count *uint64, dr int) *Statistics { + p := &Statistics{Count: count} + go p.output() +} From 4f01b0b2adb336b172a0c67d71bb24ed8ef264a9 Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Fri, 25 Feb 2022 19:39:42 +0800 Subject: [PATCH 731/814] remove mysql for test --- internal/push/logic/init.go | 12 +++ internal/push/logic/push_to_client.go | 126 +++++++++++++------------- pkg/statistics/statistics.go | 25 +++-- 3 files changed, 92 insertions(+), 71 deletions(-) diff --git a/internal/push/logic/init.go b/internal/push/logic/init.go index b8941cc6f..3581a361e 100644 --- a/internal/push/logic/init.go +++ b/internal/push/logic/init.go @@ -11,6 +11,7 @@ import ( "Open_IM/pkg/common/constant" "Open_IM/pkg/common/kafka" "Open_IM/pkg/common/log" + "time" ) var ( @@ -33,4 +34,15 @@ func init() { func Run() { go rpcServer.run() go pushCh.pushConsumerGroup.RegisterHandleAndConsumer(&pushCh) + go stat() +} +func stat() { + t := time.NewTicker(time.Second * 10) + defer t.Stop() + for { + select { + case <-t.C: + } + log.Debug("", "10 second handle msg to mongo is ") + } } diff --git a/internal/push/logic/push_to_client.go b/internal/push/logic/push_to_client.go index 41c943c4b..fa147e762 100644 --- a/internal/push/logic/push_to_client.go +++ b/internal/push/logic/push_to_client.go @@ -7,16 +7,12 @@ package logic import ( - push "Open_IM/internal/push/jpush" "Open_IM/pkg/common/config" - "Open_IM/pkg/common/constant" "Open_IM/pkg/common/log" "Open_IM/pkg/grpc-etcdv3/getcdv3" pbPush "Open_IM/pkg/proto/push" pbRelay "Open_IM/pkg/proto/relay" - "Open_IM/pkg/utils" "context" - "encoding/json" "strings" ) @@ -34,7 +30,7 @@ type AtContent struct { func MsgToUser(pushMsg *pbPush.PushMsgReq) { var wsResult []*pbRelay.SingleMsgToUser - isOfflinePush := utils.GetSwitchFromOptions(pushMsg.MsgData.Options, constant.IsOfflinePush) + //isOfflinePush := utils.GetSwitchFromOptions(pushMsg.MsgData.Options, constant.IsOfflinePush) log.InfoByKv("Get msg from msg_transfer And push msg", pushMsg.OperationID, "PushData", pushMsg.String()) grpcCons := getcdv3.GetConn4Unique(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImOnlineMessageRelayName) //Online push message @@ -51,66 +47,66 @@ func MsgToUser(pushMsg *pbPush.PushMsgReq) { } } log.InfoByKv("push_result", pushMsg.OperationID, "result", wsResult, "sendData", pushMsg.MsgData) - if isOfflinePush && pushMsg.PushToUserID != pushMsg.MsgData.SendID { - for _, v := range wsResult { - if v.ResultCode == 0 { - continue - } - //supported terminal - for _, t := range pushTerminal { - if v.RecvPlatFormID == t { - //Use offline push messaging - var UIDList []string - UIDList = append(UIDList, v.RecvID) - customContent := OpenIMContent{ - SessionType: int(pushMsg.MsgData.SessionType), - From: pushMsg.MsgData.SendID, - To: pushMsg.MsgData.RecvID, - Seq: pushMsg.MsgData.Seq, - } - bCustomContent, _ := json.Marshal(customContent) - jsonCustomContent := string(bCustomContent) - var content string - if pushMsg.MsgData.OfflinePushInfo != nil { - content = pushMsg.MsgData.OfflinePushInfo.Title - - } else { - switch pushMsg.MsgData.ContentType { - case constant.Text: - content = constant.ContentType2PushContent[constant.Text] - case constant.Picture: - content = constant.ContentType2PushContent[constant.Picture] - case constant.Voice: - content = constant.ContentType2PushContent[constant.Voice] - case constant.Video: - content = constant.ContentType2PushContent[constant.Video] - case constant.File: - content = constant.ContentType2PushContent[constant.File] - case constant.AtText: - a := AtContent{} - _ = utils.JsonStringToStruct(string(pushMsg.MsgData.Content), &a) - if utils.IsContain(v.RecvID, a.AtUserList) { - content = constant.ContentType2PushContent[constant.AtText] + constant.ContentType2PushContent[constant.Common] - } else { - content = constant.ContentType2PushContent[constant.GroupMsg] - } - default: - content = constant.ContentType2PushContent[constant.Common] - } - } - - pushResult, err := push.JGAccountListPush(UIDList, content, jsonCustomContent, constant.PlatformIDToName(t)) - if err != nil { - log.NewError(pushMsg.OperationID, "offline push error", pushMsg.String(), err.Error(), constant.PlatformIDToName(t)) - } else { - log.NewDebug(pushMsg.OperationID, "offline push return result is ", string(pushResult), pushMsg.MsgData, constant.PlatformIDToName(t)) - } - - } - } - } - - } + //if isOfflinePush && pushMsg.PushToUserID != pushMsg.MsgData.SendID { + // for _, v := range wsResult { + // if v.ResultCode == 0 { + // continue + // } + // //supported terminal + // for _, t := range pushTerminal { + // if v.RecvPlatFormID == t { + // //Use offline push messaging + // var UIDList []string + // UIDList = append(UIDList, v.RecvID) + // customContent := OpenIMContent{ + // SessionType: int(pushMsg.MsgData.SessionType), + // From: pushMsg.MsgData.SendID, + // To: pushMsg.MsgData.RecvID, + // Seq: pushMsg.MsgData.Seq, + // } + // bCustomContent, _ := json.Marshal(customContent) + // jsonCustomContent := string(bCustomContent) + // var content string + // if pushMsg.MsgData.OfflinePushInfo != nil { + // content = pushMsg.MsgData.OfflinePushInfo.Title + // + // } else { + // switch pushMsg.MsgData.ContentType { + // case constant.Text: + // content = constant.ContentType2PushContent[constant.Text] + // case constant.Picture: + // content = constant.ContentType2PushContent[constant.Picture] + // case constant.Voice: + // content = constant.ContentType2PushContent[constant.Voice] + // case constant.Video: + // content = constant.ContentType2PushContent[constant.Video] + // case constant.File: + // content = constant.ContentType2PushContent[constant.File] + // case constant.AtText: + // a := AtContent{} + // _ = utils.JsonStringToStruct(string(pushMsg.MsgData.Content), &a) + // if utils.IsContain(v.RecvID, a.AtUserList) { + // content = constant.ContentType2PushContent[constant.AtText] + constant.ContentType2PushContent[constant.Common] + // } else { + // content = constant.ContentType2PushContent[constant.GroupMsg] + // } + // default: + // content = constant.ContentType2PushContent[constant.Common] + // } + // } + // + // pushResult, err := push.JGAccountListPush(UIDList, content, jsonCustomContent, constant.PlatformIDToName(t)) + // if err != nil { + // log.NewError(pushMsg.OperationID, "offline push error", pushMsg.String(), err.Error(), constant.PlatformIDToName(t)) + // } else { + // log.NewDebug(pushMsg.OperationID, "offline push return result is ", string(pushResult), pushMsg.MsgData, constant.PlatformIDToName(t)) + // } + // + // } + // } + // } + // + //} } //func SendMsgByWS(m *pbChat.WSToMsgSvrChatMsg) { diff --git a/pkg/statistics/statistics.go b/pkg/statistics/statistics.go index 51ff4c871..eb018fbf0 100644 --- a/pkg/statistics/statistics.go +++ b/pkg/statistics/statistics.go @@ -1,20 +1,33 @@ package statistics -import "time" +import ( + "Open_IM/pkg/common/log" + "time" +) type Statistics struct { - Count *uint64 - Dr int + Count *uint64 + ModuleName string + PrintArgs string + SleepTime int } func (s *Statistics) output() { + t := time.NewTicker(time.Duration(s.SleepTime) * time.Second) + defer t.Stop() + var sum uint64 for { - time.Sleep(time.Duration(s.Dr) * time.Second) + sum = *s.Count + select { + case <-t.C: + } + log.Debug(s.ModuleName, s.PrintArgs, *s.Count-sum) } } -func NewStatistics(count *uint64, dr int) *Statistics { - p := &Statistics{Count: count} +func NewStatistics(count *uint64, moduleName, printArgs string, sleepTime int) *Statistics { + p := &Statistics{Count: count, ModuleName: moduleName, SleepTime: sleepTime, PrintArgs: printArgs} go p.output() + return p } From 2775d9b78a7ef68d32ed75d9384ab848c48e1b6e Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Fri, 25 Feb 2022 19:49:38 +0800 Subject: [PATCH 732/814] test --- internal/msg_gateway/gate/init.go | 4 ++++ internal/msg_gateway/gate/logic.go | 1 + internal/push/logic/init.go | 16 ++++------------ internal/push/logic/push_to_client.go | 1 + 4 files changed, 10 insertions(+), 12 deletions(-) diff --git a/internal/msg_gateway/gate/init.go b/internal/msg_gateway/gate/init.go index 03f82f3ad..47d1dcedb 100644 --- a/internal/msg_gateway/gate/init.go +++ b/internal/msg_gateway/gate/init.go @@ -3,6 +3,8 @@ package gate import ( "Open_IM/pkg/common/config" "Open_IM/pkg/common/log" + "Open_IM/pkg/statistics" + "fmt" "github.com/go-playground/validator/v10" "sync" ) @@ -12,6 +14,7 @@ var ( validate *validator.Validate ws WServer rpcSvr RPCServer + count uint64 ) func Init(rpcPort, wsPort int) { @@ -19,6 +22,7 @@ func Init(rpcPort, wsPort int) { log.NewPrivateLog(config.Config.ModuleName.LongConnSvrName) rwLock = new(sync.RWMutex) validate = validator.New() + statistics.NewStatistics(&count, config.Config.ModuleName.LongConnSvrName, fmt.Sprintf("%d second recv to msg_gateway count", count), 10) ws.onInit(wsPort) rpcSvr.onInit(rpcPort) } diff --git a/internal/msg_gateway/gate/logic.go b/internal/msg_gateway/gate/logic.go index d1756093c..2aa19f609 100644 --- a/internal/msg_gateway/gate/logic.go +++ b/internal/msg_gateway/gate/logic.go @@ -142,6 +142,7 @@ func (ws *WServer) pullMsgBySeqListResp(conn *UserConn, m *Req, pb *sdk_ws.PullM } func (ws *WServer) sendMsgReq(conn *UserConn, m *Req) { + count++ log.NewInfo(m.OperationID, "Ws call success to sendMsgReq start", m.MsgIncr, m.ReqIdentifier, m.SendID) nReply := new(pbChat.SendMsgResp) isPass, errCode, errMsg, pData := ws.argsValidate(m, constant.WSSendMsg) diff --git a/internal/push/logic/init.go b/internal/push/logic/init.go index 3581a361e..253aea2b2 100644 --- a/internal/push/logic/init.go +++ b/internal/push/logic/init.go @@ -11,7 +11,8 @@ import ( "Open_IM/pkg/common/constant" "Open_IM/pkg/common/kafka" "Open_IM/pkg/common/log" - "time" + "Open_IM/pkg/statistics" + "fmt" ) var ( @@ -19,6 +20,7 @@ var ( pushCh PushConsumerHandler pushTerminal []int32 producer *kafka.Producer + count uint64 ) func Init(rpcPort int) { @@ -29,20 +31,10 @@ func Init(rpcPort int) { } func init() { producer = kafka.NewKafkaProducer(config.Config.Kafka.Ws2mschat.Addr, config.Config.Kafka.Ws2mschat.Topic) + statistics.NewStatistics(&count, config.Config.ModuleName.PushName, fmt.Sprintf("%d second push to msg_gateway count", count), 10) } func Run() { go rpcServer.run() go pushCh.pushConsumerGroup.RegisterHandleAndConsumer(&pushCh) - go stat() -} -func stat() { - t := time.NewTicker(time.Second * 10) - defer t.Stop() - for { - select { - case <-t.C: - } - log.Debug("", "10 second handle msg to mongo is ") - } } diff --git a/internal/push/logic/push_to_client.go b/internal/push/logic/push_to_client.go index fa147e762..b6a624f91 100644 --- a/internal/push/logic/push_to_client.go +++ b/internal/push/logic/push_to_client.go @@ -47,6 +47,7 @@ func MsgToUser(pushMsg *pbPush.PushMsgReq) { } } log.InfoByKv("push_result", pushMsg.OperationID, "result", wsResult, "sendData", pushMsg.MsgData) + count++ //if isOfflinePush && pushMsg.PushToUserID != pushMsg.MsgData.SendID { // for _, v := range wsResult { // if v.ResultCode == 0 { From 739096a9c0673124d474d5e3422a2b8271c5db94 Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Fri, 25 Feb 2022 19:50:18 +0800 Subject: [PATCH 733/814] statistics performance --- internal/msg_transfer/logic/history_msg_handler.go | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/internal/msg_transfer/logic/history_msg_handler.go b/internal/msg_transfer/logic/history_msg_handler.go index b78695c11..f0ba102cd 100644 --- a/internal/msg_transfer/logic/history_msg_handler.go +++ b/internal/msg_transfer/logic/history_msg_handler.go @@ -8,6 +8,7 @@ import ( "Open_IM/pkg/grpc-etcdv3/getcdv3" pbMsg "Open_IM/pkg/proto/chat" pbPush "Open_IM/pkg/proto/push" + "Open_IM/pkg/statistics" "Open_IM/pkg/utils" "context" "github.com/Shopify/sarama" @@ -20,9 +21,14 @@ type fcb func(msg []byte, msgKey string) type HistoryConsumerHandler struct { msgHandle map[string]fcb historyConsumerGroup *kfk.MConsumerGroup + singleMsgCount uint64 + groupMsgCount uint64 } func (mc *HistoryConsumerHandler) Init() { + statistics.NewStatistics(&mc.singleMsgCount, config.Config.ModuleName.MsgTransferName, "singleMsgCount insert to mongo ", 10) + statistics.NewStatistics(&mc.singleMsgCount, config.Config.ModuleName.MsgTransferName, "groupMsgCount insert to mongo ", 10) + mc.msgHandle = make(map[string]fcb) mc.msgHandle[config.Config.Kafka.Ws2mschat.Topic] = mc.handleChatWs2Mongo mc.historyConsumerGroup = kfk.NewMConsumerGroup(&kfk.MConsumerGroupConfig{KafkaVersion: sarama.V0_10_2_0, @@ -55,6 +61,7 @@ func (mc *HistoryConsumerHandler) handleChatWs2Mongo(msg []byte, msgKey string) log.NewError(operationID, "single data insert to mongo err", err.Error(), msgFromMQ.String()) return } + mc.singleMsgCount++ log.NewDebug(msgFromMQ.OperationID, "sendMessageToPush cost time ", utils.GetCurrentTimestampByNano()-time) } if !isSenderSync && msgKey == msgFromMQ.MsgData.SendID { @@ -70,6 +77,7 @@ func (mc *HistoryConsumerHandler) handleChatWs2Mongo(msg []byte, msgKey string) log.NewError(operationID, "group data insert to mongo err", msgFromMQ.String(), msgFromMQ.MsgData.RecvID, err.Error()) return } + mc.groupMsgCount++ } go sendMessageToPush(&msgFromMQ, msgFromMQ.MsgData.RecvID) default: From e1f58f07fe9146d58584e753c23e2f34e0bb7e26 Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Fri, 25 Feb 2022 19:55:58 +0800 Subject: [PATCH 734/814] 2.0.1 --- cmd/Open-IM-SDK-Core | 2 +- pkg/statistics/statistics.go | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/cmd/Open-IM-SDK-Core b/cmd/Open-IM-SDK-Core index 992f76df0..1c6c7af53 160000 --- a/cmd/Open-IM-SDK-Core +++ b/cmd/Open-IM-SDK-Core @@ -1 +1 @@ -Subproject commit 992f76df0ee500a0377523b0780d3a85f2275755 +Subproject commit 1c6c7af5393b3e9eefbaf16b673519ca863a6c2c diff --git a/pkg/statistics/statistics.go b/pkg/statistics/statistics.go index eb018fbf0..bda8ded85 100644 --- a/pkg/statistics/statistics.go +++ b/pkg/statistics/statistics.go @@ -21,7 +21,7 @@ func (s *Statistics) output() { select { case <-t.C: } - log.Debug(s.ModuleName, s.PrintArgs, *s.Count-sum) + log.NewWarn(s.ModuleName, s.PrintArgs, *s.Count-sum) } } From ca18958669b98794686e36673a230fb00bf35139 Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Fri, 25 Feb 2022 19:56:00 +0800 Subject: [PATCH 735/814] test config --- config/config.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config/config.yaml b/config/config.yaml index 6e3eaeea6..7d025c863 100644 --- a/config/config.yaml +++ b/config/config.yaml @@ -132,7 +132,7 @@ log: storageLocation: ../logs/ rotationTime: 24 remainRotationCount: 5 #日志数量 - remainLogLevel: 6 #日志级别 6表示全都打印,测试阶段建议设置为6 + remainLogLevel: 4 #日志级别 6表示全都打印,测试阶段建议设置为6 elasticSearchSwitch: false elasticSearchAddr: [ 127.0.0.1:9201 ] elasticSearchUser: "" From 00a52475de85eb39cfee7ae58aac8053027165e3 Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Fri, 25 Feb 2022 20:01:02 +0800 Subject: [PATCH 736/814] statistics --- internal/msg_transfer/logic/history_msg_handler.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/internal/msg_transfer/logic/history_msg_handler.go b/internal/msg_transfer/logic/history_msg_handler.go index f0ba102cd..294b5ed70 100644 --- a/internal/msg_transfer/logic/history_msg_handler.go +++ b/internal/msg_transfer/logic/history_msg_handler.go @@ -27,7 +27,7 @@ type HistoryConsumerHandler struct { func (mc *HistoryConsumerHandler) Init() { statistics.NewStatistics(&mc.singleMsgCount, config.Config.ModuleName.MsgTransferName, "singleMsgCount insert to mongo ", 10) - statistics.NewStatistics(&mc.singleMsgCount, config.Config.ModuleName.MsgTransferName, "groupMsgCount insert to mongo ", 10) + statistics.NewStatistics(&mc.groupMsgCount, config.Config.ModuleName.MsgTransferName, "groupMsgCount insert to mongo ", 10) mc.msgHandle = make(map[string]fcb) mc.msgHandle[config.Config.Kafka.Ws2mschat.Topic] = mc.handleChatWs2Mongo From 05fbbfcf39c9f03bd285c8105bdb1296bd2d9693 Mon Sep 17 00:00:00 2001 From: skiffer-git <44203734@qq.com> Date: Mon, 28 Feb 2022 15:28:13 +0800 Subject: [PATCH 737/814] grpc-etcd log --- pkg/grpc-etcdv3/getcdv3/register.go | 12 +++++++----- pkg/grpc-etcdv3/getcdv3/resolver.go | 19 ++++++++++--------- 2 files changed, 17 insertions(+), 14 deletions(-) diff --git a/pkg/grpc-etcdv3/getcdv3/register.go b/pkg/grpc-etcdv3/getcdv3/register.go index 4fd2cd5a7..d1c7957bf 100644 --- a/pkg/grpc-etcdv3/getcdv3/register.go +++ b/pkg/grpc-etcdv3/getcdv3/register.go @@ -1,6 +1,7 @@ package getcdv3 import ( + "Open_IM/pkg/common/log" "context" "fmt" "go.etcd.io/etcd/clientv3" @@ -39,9 +40,9 @@ func RegisterEtcd4Unique(schema, etcdAddr, myHost string, myPort int, serviceNam func RegisterEtcd(schema, etcdAddr, myHost string, myPort int, serviceName string, ttl int) error { cli, err := clientv3.New(clientv3.Config{ Endpoints: strings.Split(etcdAddr, ","), DialTimeout: 5 * time.Second}) - fmt.Println("RegisterEtcd") + + log.Info("", "RegisterEtcd, ", schema, etcdAddr, myHost, myPort, serviceName, ttl) if err != nil { - // return fmt.Errorf("grpclb: create clientv3 client failed: %v", err) return fmt.Errorf("create etcd clientv3 client failed, errmsg:%v, etcd addr:%s", err, etcdAddr) } @@ -66,15 +67,16 @@ func RegisterEtcd(schema, etcdAddr, myHost string, myPort int, serviceName strin if err != nil { return fmt.Errorf("keepalive failed, errmsg:%v, lease id:%d", err, resp.ID) } - fmt.Println("RegisterEtcd ok") + log.Info("", "RegisterEtcd ok ") + go func() { for { select { case v, ok := <-kresp: if ok == true { - // fmt.Println(" kresp ok ", v) + log.Debug("", "KeepAlive kresp ok", v, schema, etcdAddr, myHost, myPort, serviceName, ttl) } else { - fmt.Println(" kresp failed ", v) + log.Error("", "KeepAlive kresp failed", schema, etcdAddr, myHost, myPort, serviceName, ttl) } } } diff --git a/pkg/grpc-etcdv3/getcdv3/resolver.go b/pkg/grpc-etcdv3/getcdv3/resolver.go index aa41f86c4..45f47a717 100644 --- a/pkg/grpc-etcdv3/getcdv3/resolver.go +++ b/pkg/grpc-etcdv3/getcdv3/resolver.go @@ -1,6 +1,7 @@ package getcdv3 import ( + "Open_IM/pkg/common/log" "context" "fmt" "go.etcd.io/etcd/clientv3" @@ -102,7 +103,7 @@ func (r *Resolver) Build(target resolver.Target, cc resolver.ClientConn, opts re if err == nil { var addrList []resolver.Address for i := range resp.Kvs { - fmt.Println("init addr: ", string(resp.Kvs[i].Value)) + log.Debug("", "init addr: ", string(resp.Kvs[i].Value)) addrList = append(addrList, resolver.Address{Addr: string(resp.Kvs[i].Value)}) } r.cc.UpdateState(resolver.State{Addresses: addrList}) @@ -148,27 +149,27 @@ func (r *Resolver) watch(prefix string, addrList []resolver.Address) { if !exists(addrList, string(ev.Kv.Value)) { flag = 1 addrList = append(addrList, resolver.Address{Addr: string(ev.Kv.Value)}) - fmt.Println("after add, new list: ", addrList) + log.Debug("", "after add, new list: ", addrList) } case mvccpb.DELETE: - fmt.Println("remove addr key: ", string(ev.Kv.Key), "value:", string(ev.Kv.Value)) + log.Debug("remove addr key: ", string(ev.Kv.Key), "value:", string(ev.Kv.Value)) i := strings.LastIndexAny(string(ev.Kv.Key), "/") if i < 0 { return } t := string(ev.Kv.Key)[i+1:] - fmt.Println("remove addr key: ", string(ev.Kv.Key), "value:", string(ev.Kv.Value), "addr:", t) + log.Debug("remove addr key: ", string(ev.Kv.Key), "value:", string(ev.Kv.Value), "addr:", t) if s, ok := remove(addrList, t); ok { flag = 1 addrList = s - fmt.Println("after remove, new list: ", addrList) + log.Debug("after remove, new list: ", addrList) } } } if flag == 1 { r.cc.UpdateState(resolver.State{Addresses: addrList}) - fmt.Println("update: ", addrList) + log.Debug("update: ", addrList) } } } @@ -176,7 +177,7 @@ func (r *Resolver) watch(prefix string, addrList []resolver.Address) { func GetConn4Unique(schema, etcdaddr, servicename string) []*grpc.ClientConn { gEtcdCli, err := clientv3.New(clientv3.Config{Endpoints: strings.Split(etcdaddr, ",")}) if err != nil { - fmt.Println("eeeeeeeeeeeee", err.Error()) + log.Error("clientv3.New failed", err.Error()) return nil } @@ -200,7 +201,7 @@ func GetConn4Unique(schema, etcdaddr, servicename string) []*grpc.ClientConn { } } else { gEtcdCli.Close() - fmt.Println("rrrrrrrrrrr", err.Error()) + log.Error("gEtcdCli.Get failed", err.Error()) return nil } gEtcdCli.Close() @@ -236,7 +237,7 @@ func GetConnPool(schema, etcdaddr, servicename string) (*ClientConn, error) { ctx, _ := context.WithDeadline(context.Background(), time.Now().Add(1000*time.Millisecond)) c, err := p.Get(ctx) - fmt.Println(err) + log.Info("", "Get ", err) return c, err } From b30da3eea4191d5a61d3546608e0810e55c82943 Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Mon, 28 Feb 2022 17:03:29 +0800 Subject: [PATCH 738/814] database judge modify --- internal/push/logic/init.go | 2 +- pkg/common/db/mysql_model/im_mysql_model/friend_model.go | 2 +- .../db/mysql_model/im_mysql_model/friend_request_model.go | 2 +- pkg/common/db/mysql_model/im_mysql_model/user_model.go | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/internal/push/logic/init.go b/internal/push/logic/init.go index 253aea2b2..02d96fda4 100644 --- a/internal/push/logic/init.go +++ b/internal/push/logic/init.go @@ -31,7 +31,7 @@ func Init(rpcPort int) { } func init() { producer = kafka.NewKafkaProducer(config.Config.Kafka.Ws2mschat.Addr, config.Config.Kafka.Ws2mschat.Topic) - statistics.NewStatistics(&count, config.Config.ModuleName.PushName, fmt.Sprintf("%d second push to msg_gateway count", count), 10) + statistics.NewStatistics(&count, config.Config.ModuleName.PushName, fmt.Sprintf("%d second push to msg_gateway count", 10), 10) } func Run() { 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 45650357b..700082353 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 @@ -26,7 +26,7 @@ func GetFriendRelationshipFromFriend(OwnerUserID, FriendUserID string) (*db.Frie return nil, err } var friend db.Friend - err = dbConn.Table("friends").Where("owner_user_id=? and friend_user_id=?", OwnerUserID, FriendUserID).Find(&friend).Error + err = dbConn.Table("friends").Where("owner_user_id=? and friend_user_id=?", OwnerUserID, FriendUserID).Take(&friend).Error if err != nil { return nil, err } diff --git a/pkg/common/db/mysql_model/im_mysql_model/friend_request_model.go b/pkg/common/db/mysql_model/im_mysql_model/friend_request_model.go index 609be8687..171a6aedf 100644 --- a/pkg/common/db/mysql_model/im_mysql_model/friend_request_model.go +++ b/pkg/common/db/mysql_model/im_mysql_model/friend_request_model.go @@ -53,7 +53,7 @@ func GetFriendApplicationByBothUserID(FromUserID, ToUserID string) (*db.FriendRe return nil, err } var friendRequest db.FriendRequest - err = dbConn.Table("friend_requests").Where("from_user_id=? and to_user_id=?", FromUserID, ToUserID).Find(&friendRequest).Error + err = dbConn.Table("friend_requests").Where("from_user_id=? and to_user_id=?", FromUserID, ToUserID).Take(&friendRequest).Error if err != nil { return nil, err } 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 de5045855..618e0727d 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 @@ -78,7 +78,7 @@ func GetUserByUserID(userID string) (*db.User, error) { return nil, err } var user db.User - err = dbConn.Table("users").Where("user_id=?", userID).First(&user).Error + err = dbConn.Table("users").Where("user_id=?", userID).Take(&user).Error if err != nil { return nil, err } From ed65ad842f3d201ea968b367e5bf58454b16f277 Mon Sep 17 00:00:00 2001 From: skiffer-git <44203734@qq.com> Date: Mon, 28 Feb 2022 17:20:40 +0800 Subject: [PATCH 739/814] Replace find with take --- .../im_mysql_model/group_member_model.go | 7 +++++-- .../mysql_model/im_mysql_model/group_model.go | 19 ++++++++----------- .../im_mysql_model/group_request_model.go | 3 +-- 3 files changed, 14 insertions(+), 15 deletions(-) diff --git a/pkg/common/db/mysql_model/im_mysql_model/group_member_model.go b/pkg/common/db/mysql_model/im_mysql_model/group_member_model.go index 4dafa30a6..63f12c115 100644 --- a/pkg/common/db/mysql_model/im_mysql_model/group_member_model.go +++ b/pkg/common/db/mysql_model/im_mysql_model/group_member_model.go @@ -4,6 +4,7 @@ import ( "Open_IM/pkg/common/constant" "Open_IM/pkg/common/db" "Open_IM/pkg/utils" + "errors" "fmt" "time" ) @@ -43,6 +44,7 @@ func GetGroupMemberListByUserID(userID string) ([]db.GroupMember, error) { } var groupMemberList []db.GroupMember err = dbConn.Table("group_members").Where("user_id=?", userID).Find(&groupMemberList).Error + //err = dbConn.Table("group_members").Where("user_id=?", userID).Take(&groupMemberList).Error if err != nil { return nil, err } @@ -82,7 +84,7 @@ func GetGroupMemberInfoByGroupIDAndUserID(groupID, userID string) (*db.GroupMemb return nil, err } var groupMember db.GroupMember - err = dbConn.Table("group_members").Where("group_id=? and user_id=? ", groupID, userID).Limit(1).Find(&groupMember).Error + err = dbConn.Table("group_members").Where("group_id=? and user_id=? ", groupID, userID).Limit(1).Take(&groupMember).Error if err != nil { return nil, err } @@ -149,7 +151,8 @@ func GetGroupOwnerInfoByGroupID(groupID string) (*db.GroupMember, error) { return &v, nil } } - return nil, nil + + return nil, utils.Wrap(errors.New("no owner"), "") } func IsExistGroupMember(groupID, userID string) bool { diff --git a/pkg/common/db/mysql_model/im_mysql_model/group_model.go b/pkg/common/db/mysql_model/im_mysql_model/group_model.go index a9fe13236..587e3672e 100644 --- a/pkg/common/db/mysql_model/im_mysql_model/group_model.go +++ b/pkg/common/db/mysql_model/im_mysql_model/group_model.go @@ -45,7 +45,7 @@ func GetGroupInfoByGroupID(groupId string) (*db.Group, error) { return nil, utils.Wrap(err, "") } var groupInfo db.Group - err = dbConn.Table("groups").Where("group_id=?", groupId).Find(&groupInfo).Error + err = dbConn.Table("groups").Where("group_id=?", groupId).Take(&groupInfo).Error if err != nil { return nil, err } @@ -86,11 +86,10 @@ func GetGroups(pageNumber, showNumber int) ([]db.Group, error) { return groups, nil } - func OperateGroupStatus(groupId string, groupStatus int32) error { group := db.Group{ GroupID: groupId, - Status: groupStatus, + Status: groupStatus, } if err := SetGroupInfo(group); err != nil { return err @@ -98,7 +97,6 @@ func OperateGroupStatus(groupId string, groupStatus int32) error { return nil } - func DeleteGroup(groupId string) error { dbConn, err := db.DB.MysqlDB.DefaultGormDB() if err != nil { @@ -129,15 +127,14 @@ func OperateGroupRole(userId, groupId string, roleLevel int32) (string, string, updateInfo := db.GroupMember{ RoleLevel: roleLevel, } - groupMaster := db.GroupMember{ - } + groupMaster := db.GroupMember{} switch roleLevel { case constant.GroupOwner: err = dbConn.Transaction(func(tx *gorm.DB) error { result := dbConn.Table("group_members").Where("group_id = ? and role_level = ?", groupId, constant.GroupOwner).First(&groupMaster).Update(&db.GroupMember{ RoleLevel: constant.GroupOrdinaryUsers, }) - if result.Error != nil { + if result.Error != nil { return result.Error } if result.RowsAffected == 0 { @@ -145,7 +142,7 @@ func OperateGroupRole(userId, groupId string, roleLevel int32) (string, string, } result = dbConn.Table("group_members").First(&groupMember).Update(updateInfo) - if result.Error != nil { + if result.Error != nil { return result.Error } if result.RowsAffected == 0 { @@ -161,7 +158,7 @@ func OperateGroupRole(userId, groupId string, roleLevel int32) (string, string, return result.Error } if result.RowsAffected == 0 { - return errors.New(fmt.Sprintf("user %s not exist in group %s or already operate", userId, groupId)) + return errors.New(fmt.Sprintf("user %s not exist in group %s or already operate", userId, groupId)) } if groupMaster.UserID == userId { return errors.New(fmt.Sprintf("user %s is master of %s, cant set to ordinary user", userId, groupId)) @@ -171,7 +168,7 @@ func OperateGroupRole(userId, groupId string, roleLevel int32) (string, string, return result.Error } if result.RowsAffected == 0 { - return errors.New(fmt.Sprintf("user %s not exist in group %s or already operate", userId, groupId)) + return errors.New(fmt.Sprintf("user %s not exist in group %s or already operate", userId, groupId)) } } return nil @@ -219,4 +216,4 @@ func GetGroupMaster(groupId string) (db.GroupMember, error) { return groupMember, err } return groupMember, nil -} \ No newline at end of file +} diff --git a/pkg/common/db/mysql_model/im_mysql_model/group_request_model.go b/pkg/common/db/mysql_model/im_mysql_model/group_request_model.go index 745ad0034..836f3f0bf 100644 --- a/pkg/common/db/mysql_model/im_mysql_model/group_request_model.go +++ b/pkg/common/db/mysql_model/im_mysql_model/group_request_model.go @@ -63,7 +63,7 @@ func GetGroupRequestByGroupIDAndUserID(groupID, userID string) (*db.GroupRequest return nil, err } var groupRequest db.GroupRequest - err = dbConn.Table("group_requests").Where("user_id=? and group_id=?", userID, groupID).Find(&groupRequest).Error + err = dbConn.Table("group_requests").Where("user_id=? and group_id=?", userID, groupID).Take(&groupRequest).Error if err != nil { return nil, err } @@ -128,7 +128,6 @@ func GetUserReqGroupByUserID(userID string) ([]db.GroupRequest, error) { return groupRequestList, err } - // //func GroupApplicationResponse(pb *group.GroupApplicationResponseReq) (*group.CommonResp, error) { // From 04f8a7247d51273b17a9e9350ba4c29d22a5eac3 Mon Sep 17 00:00:00 2001 From: skiffer-git <44203734@qq.com> Date: Mon, 28 Feb 2022 17:28:00 +0800 Subject: [PATCH 740/814] replace find with take --- .../db/mysql_model/im_mysql_model/user_model.go | 12 ------------ 1 file changed, 12 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 618e0727d..7492d6a38 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 @@ -51,18 +51,6 @@ func UserRegister(user db.User) error { return nil } -type User struct { - UserID string `gorm:"column:user_id;primaryKey;"` - Nickname string `gorm:"column:name"` - FaceUrl string `gorm:"column:icon"` - Gender int32 `gorm:"column:gender"` - PhoneNumber string `gorm:"column:phone_number"` - Birth string `gorm:"column:birth"` - Email string `gorm:"column:email"` - Ex string `gorm:"column:ex"` - CreateTime time.Time `gorm:"column:create_time"` -} - func DeleteUser(userID string) (i int64) { dbConn, err := db.DB.MysqlDB.DefaultGormDB() if err != nil { From 67d7ee275194820f2231bff819264501d9597ec2 Mon Sep 17 00:00:00 2001 From: wangchuxiao Date: Mon, 28 Feb 2022 17:47:53 +0800 Subject: [PATCH 741/814] fix bug --- internal/api/third/minio_init.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/internal/api/third/minio_init.go b/internal/api/third/minio_init.go index 4f54996ba..5aae5d4e8 100644 --- a/internal/api/third/minio_init.go +++ b/internal/api/third/minio_init.go @@ -34,7 +34,7 @@ func init() { if err == nil && exists { log.NewInfo("", utils.GetSelfFuncName(), "We already own %s\n", config.Config.Credential.Minio.Bucket) } else { - log.NewError("", utils.GetSelfFuncName(), "create bucket failed and bucket not exists", err.Error()) + log.NewError("", utils.GetSelfFuncName(), "create bucket failed and bucket not exists") return } } From f01a6e82dca2d40ae236d6812fb83f5a59d438ee Mon Sep 17 00:00:00 2001 From: wangchuxiao Date: Mon, 28 Feb 2022 17:52:13 +0800 Subject: [PATCH 742/814] fix minio bug --- internal/api/third/minio_init.go | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/internal/api/third/minio_init.go b/internal/api/third/minio_init.go index 5aae5d4e8..d073524f3 100644 --- a/internal/api/third/minio_init.go +++ b/internal/api/third/minio_init.go @@ -30,10 +30,14 @@ func init() { } err = minioClient.MakeBucket(context.Background(), config.Config.Credential.Minio.Bucket, opt) if err != nil { + log.NewInfo("", utils.GetSelfFuncName(), err.Error()) exists, err := minioClient.BucketExists(context.Background(), config.Config.Credential.Minio.Bucket) if err == nil && exists { log.NewInfo("", utils.GetSelfFuncName(), "We already own %s\n", config.Config.Credential.Minio.Bucket) } else { + if err != nil { + log.NewError("", utils.GetSelfFuncName(), err.Error()) + } log.NewError("", utils.GetSelfFuncName(), "create bucket failed and bucket not exists") return } From 0bed7ee669da994060c7219b765138d191656205 Mon Sep 17 00:00:00 2001 From: wangchuxiao Date: Mon, 28 Feb 2022 17:57:03 +0800 Subject: [PATCH 743/814] merge code --- config/config.yaml | 38 ++++++-- .../api/third/minio_storage_credential.go | 18 ++-- internal/demo/register/reset_password.go | 4 +- internal/rpc/auth/callback.go | 1 + internal/rpc/friend/callback.go | 1 + internal/rpc/group/callback.go | 9 ++ internal/rpc/group/group.go | 9 +- internal/rpc/msg/callback.go | 94 +++++++++++++++++++ internal/rpc/msg/send_msg.go | 50 ++++++---- internal/rpc/user/callback.go | 1 + internal/utils/callback.go | 1 + pkg/call_back_struct/common.go | 16 ++++ pkg/call_back_struct/group.go | 9 ++ pkg/call_back_struct/message.go | 60 ++++++++++++ pkg/common/config/config.go | 20 +++- pkg/common/constant/constant.go | 10 ++ pkg/common/constant/error.go | 2 + pkg/common/http/http_client.go | 10 ++ pkg/common/log/logrus.go | 15 ++- pkg/proto/sdk_ws/ws.proto | 30 ++++++ 20 files changed, 341 insertions(+), 57 deletions(-) create mode 100644 internal/rpc/auth/callback.go create mode 100644 internal/rpc/friend/callback.go create mode 100644 internal/rpc/group/callback.go create mode 100644 internal/rpc/msg/callback.go create mode 100644 internal/rpc/user/callback.go create mode 100644 internal/utils/callback.go create mode 100644 pkg/call_back_struct/group.go diff --git a/config/config.yaml b/config/config.yaml index 7d025c863..da3264de7 100644 --- a/config/config.yaml +++ b/config/config.yaml @@ -8,7 +8,7 @@ etcd: etcdAddr: [ 127.0.0.1:2379 ] #单机部署时,默认即可 mysql: - dbMysqlAddress: [ 127.0.0.1:13306 ] #mysql地址 目前仅支持单机,默认即可 + dbMysqlAddress: [ 43.128.5.63:13306 ] #mysql地址 目前仅支持单机,默认即可 dbMysqlUserName: root #mysql用户名,建议修改 dbMysqlPassword: openIM # mysql密码,建议修改 dbMysqlDatabaseName: openIM_v2 #默认即可 @@ -19,7 +19,7 @@ mysql: dbMaxLifeTime: 120 mongo: - dbAddress: [ 127.0.0.1:37017 ] #redis地址 目前仅支持单机,默认即可 + dbAddress: [ 43.128.5.63:37017 ] #redis地址 目前仅支持单机,默认即可 dbDirect: false dbTimeout: 10 dbDatabase: openIM #mongo db 默认即可 @@ -30,7 +30,7 @@ mongo: dbRetainChatRecords: 3650 #mongo保存离线消息时间(天),根据需求修改 redis: - dbAddress: 127.0.0.1:16379 #redis地址 目前仅支持单机,默认即可 + dbAddress: 43.128.5.63:16379 #redis地址 目前仅支持单机,默认即可 dbMaxIdle: 128 dbMaxActive: 0 dbIdleTimeout: 120 @@ -178,13 +178,6 @@ tokenpolicy: # Token effective time day as a unit accessExpire: 3650 #token过期时间(天) 默认即可 -messagecallback: - callbackSwitch: false - callbackUrl: "http://www.xxx.com/msg/judge" - #TimeOut use second as unit - callbackTimeOut: 10 -messagejudge: - isJudgeFriend: true # c2c: # callbackBeforeSendMsg: # switch: false @@ -199,6 +192,31 @@ iospush: pushSound: "xxx" badgeCount: true +callback: + callbackUrl : "http://xxx.com" + # 开启关闭操作前后回调的配置 + callbackbeforeSendSingleMsg: + enable: true # 回调是否启用 + callbackTimeOut: 5 # 回调超时时间 + CallbackFailedContinue: true # 回调超时是否继续执行代码 + callbackAfterSendSingleMsg: + enable: true + callbackTimeOut: 5 + CallbackFailedContinue: true + callbackBeforeSendGroupMsg: + enable: true + callbackTimeOut: 5 + CallbackFailedContinue: true + callbackAfterSendGroupMsg: + enable: true + callbackTimeOut: 5 + CallbackFailedContinue: true + callbackWordFilter: + enable: true + callbackTimeOut: 5 + CallbackFailedContinue: true + + notification: groupCreated: conversation: diff --git a/internal/api/third/minio_storage_credential.go b/internal/api/third/minio_storage_credential.go index 4d5800e06..f34f64c94 100644 --- a/internal/api/third/minio_storage_credential.go +++ b/internal/api/third/minio_storage_credential.go @@ -5,6 +5,7 @@ import ( "Open_IM/pkg/common/config" "Open_IM/pkg/common/constant" "Open_IM/pkg/common/log" + "Open_IM/pkg/common/token_verify" _ "Open_IM/pkg/common/token_verify" "Open_IM/pkg/utils" "github.com/gin-gonic/gin" @@ -23,12 +24,12 @@ func MinioStorageCredential(c *gin.Context) { c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": err.Error()}) return } - //ok, _ := token_verify.GetUserIDFromToken(c.Request.Header.Get("token")) - //if !ok { - // log.NewError("", utils.GetSelfFuncName(), "GetUserIDFromToken false ", c.Request.Header.Get("token")) - // c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": "GetUserIDFromToken failed"}) - // return - //} + ok, _ := token_verify.GetUserIDFromToken(c.Request.Header.Get("token")) + if !ok { + log.NewError("", utils.GetSelfFuncName(), "GetUserIDFromToken false ", c.Request.Header.Get("token")) + c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": "GetUserIDFromToken failed"}) + return + } var stsOpts cr.STSAssumeRoleOptions stsOpts.AccessKey = config.Config.Credential.Minio.AccessKeyID stsOpts.SecretKey = config.Config.Credential.Minio.SecretAccessKey @@ -45,11 +46,6 @@ func MinioStorageCredential(c *gin.Context) { c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": err.Error()}) return } - if err != nil { - log.NewError("0", utils.GetSelfFuncName(), err.Error()) - c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": err.Error()}) - return - } resp.SessionToken = v.SessionToken resp.SecretAccessKey = v.SecretAccessKey resp.AccessKeyID = v.AccessKeyID diff --git a/internal/demo/register/reset_password.go b/internal/demo/register/reset_password.go index 0ff7115a0..b668f4f62 100644 --- a/internal/demo/register/reset_password.go +++ b/internal/demo/register/reset_password.go @@ -12,10 +12,10 @@ import ( ) type resetPasswordRequest struct { - VerificationCode string `json:"verificationCode"` + VerificationCode string `json:"verificationCode" binding:"required"` Email string `json:"email"` PhoneNumber string `json:"phoneNumber"` - NewPassword string `json:"newPassword"` + NewPassword string `json:"newPassword" binding:"required"` OperationID string `json:"operationID"` } diff --git a/internal/rpc/auth/callback.go b/internal/rpc/auth/callback.go new file mode 100644 index 000000000..8832b06d1 --- /dev/null +++ b/internal/rpc/auth/callback.go @@ -0,0 +1 @@ +package auth diff --git a/internal/rpc/friend/callback.go b/internal/rpc/friend/callback.go new file mode 100644 index 000000000..cf8ea69c8 --- /dev/null +++ b/internal/rpc/friend/callback.go @@ -0,0 +1 @@ +package friend diff --git a/internal/rpc/group/callback.go b/internal/rpc/group/callback.go new file mode 100644 index 000000000..8e0fcfb7b --- /dev/null +++ b/internal/rpc/group/callback.go @@ -0,0 +1,9 @@ +package group + +import ( + pbGroup "Open_IM/pkg/proto/group" +) + +func callbackBeforeCreateGroup(req *pbGroup.CreateGroupReq) (bool, error) { + return true, nil +} diff --git a/internal/rpc/group/group.go b/internal/rpc/group/group.go index 40255d071..7d4b85094 100644 --- a/internal/rpc/group/group.go +++ b/internal/rpc/group/group.go @@ -76,7 +76,12 @@ func (s *groupServer) CreateGroup(ctx context.Context, req *pbGroup.CreateGroupR log.NewError(req.OperationID, "CheckAccess false ", req.OpUserID, req.OwnerUserID) return &pbGroup.CreateGroupResp{ErrCode: constant.ErrAccess.ErrCode, ErrMsg: constant.ErrAccess.ErrMsg}, nil } - + canCreate, err := callbackBeforeCreateGroup(req) + if err != nil || !canCreate { + if err != nil { + log.NewError(req.OperationID, utils.GetSelfFuncName(), "callbackBeforeCreateGroup failed", ) + } + } //Time stamp + MD5 to generate group chat id groupId := utils.Md5(strconv.FormatInt(time.Now().UnixNano(), 10)) //to group @@ -84,7 +89,7 @@ func (s *groupServer) CreateGroup(ctx context.Context, req *pbGroup.CreateGroupR utils.CopyStructFields(&groupInfo, req.GroupInfo) groupInfo.CreatorUserID = req.OpUserID groupInfo.GroupID = groupId - err := imdb.InsertIntoGroup(groupInfo) + err = imdb.InsertIntoGroup(groupInfo) if err != nil { log.NewError(req.OperationID, "InsertIntoGroup failed, ", err.Error(), groupInfo) return &pbGroup.CreateGroupResp{ErrCode: constant.ErrDB.ErrCode, ErrMsg: constant.ErrDB.ErrMsg}, http.WrapError(constant.ErrDB) diff --git a/internal/rpc/msg/callback.go b/internal/rpc/msg/callback.go new file mode 100644 index 000000000..d55d9046e --- /dev/null +++ b/internal/rpc/msg/callback.go @@ -0,0 +1,94 @@ +package msg + +import ( + cbApi "Open_IM/pkg/call_back_struct" + "Open_IM/pkg/common/config" + "Open_IM/pkg/common/constant" + "Open_IM/pkg/common/http" + "Open_IM/pkg/common/log" + pbChat "Open_IM/pkg/proto/chat" + "Open_IM/pkg/utils" +) + +func callbackBeforeSendSingleMsg(msg *pbChat.SendMsgReq) (canSend bool, err error) { + log.NewDebug(msg.OperationID, utils.GetSelfFuncName(), msg) + if !config.Config.Callback.CallbackbeforeSendSingleMsg.Enable || msg.MsgData.ContentType != constant.Text { + return true, nil + } + req := cbApi.CallbackBeforeSendSingleMsgReq{CommonCallbackReq:cbApi.CommonCallbackReq{ + }} + resp := &cbApi.CallbackBeforeSendSingleMsgResp{CommonCallbackResp:cbApi.CommonCallbackResp{ + }} + utils.CopyStructFields(req, msg.MsgData) + if err := http.PostReturn(config.Config.Callback.CallbackUrl, req, resp, config.Config.Callback.CallbackbeforeSendSingleMsg.CallbackTimeOut); err != nil && !config.Config.Callback.CallbackbeforeSendSingleMsg.CallbackFailedContinue{ + return false, err + } + if resp.ActionCode == constant.ActionForbidden { + return false, nil + } + return true, nil +} + + +func callbackAfterSendSingleMsg(msg *pbChat.SendMsgReq) error { + log.NewDebug(msg.OperationID, utils.GetSelfFuncName(), msg) + if !config.Config.Callback.CallbackAfterSendSingleMsg.Enable || msg.MsgData.ContentType != constant.Text { + return nil + } + req := cbApi.CallbackAfterSendSingleMsgReq{CommonCallbackReq: cbApi.CommonCallbackReq{}} + resp := &cbApi.CallbackAfterSendSingleMsgResp{CommonCallbackResp: cbApi.CommonCallbackResp{}} + utils.CopyStructFields(req, msg.MsgData) + if err := http.PostReturn(config.Config.Callback.CallbackUrl, req, resp, config.Config.Callback.CallbackAfterSendSingleMsg.CallbackTimeOut); err != nil && config.Config.Callback.CallbackAfterSendSingleMsg.CallbackFailedContinue{ + return err + } + return nil +} + + +func callbackBeforeSendGroupMsg(msg *pbChat.SendMsgReq) (canSend bool, err error) { + log.NewDebug(msg.OperationID, utils.GetSelfFuncName(), msg) + if !config.Config.Callback.CallbackBeforeSendGroupMsg.Enable || msg.MsgData.ContentType != constant.Text { + return true, nil + } + req := cbApi.CallbackBeforeSendSingleMsgReq{CommonCallbackReq: cbApi.CommonCallbackReq{}} + resp := &cbApi.CallbackBeforeSendGroupMsgResp{CommonCallbackResp: cbApi.CommonCallbackResp{}} + utils.CopyStructFields(req, msg.MsgData) + if err := http.PostReturn(config.Config.Callback.CallbackUrl, req, resp, config.Config.Callback.CallbackBeforeSendGroupMsg.CallbackTimeOut); err != nil && !config.Config.Callback.CallbackBeforeSendGroupMsg.CallbackFailedContinue{ + return false, nil + } + if resp.ActionCode == constant.ActionForbidden { + return false, nil + } + return true, nil +} + +func callbackAfterSendGroupMsg(msg *pbChat.SendMsgReq) error { + log.NewDebug(msg.OperationID, utils.GetSelfFuncName(), msg) + if !config.Config.Callback.CallbackAfterSendGroupMsg.Enable || msg.MsgData.ContentType != constant.Text { + return nil + } + return nil +} + + +func callBackWordFilter(msg *pbChat.SendMsgReq) (canSend bool, err error) { + log.NewDebug(msg.OperationID, utils.GetSelfFuncName(), msg) + if !config.Config.Callback.CallbackWordFilter.Enable || msg.MsgData.ContentType != constant.Text { + return true, nil + } + req := cbApi.CallBackWordFilterReq{ + CommonCallbackReq: cbApi.CommonCallbackReq{}, + } + resp := cbApi.CallBackWordFilterResp{CommonCallbackResp: cbApi.CommonCallbackResp{}} + utils.CopyStructFields(&req, msg.MsgData) + if err := http.PostReturn(msg.OperationID, req, &resp, config.Config.Callback.CallbackWordFilter.CallbackTimeOut); err != nil { + return false, err + } + msg.MsgData.Content = resp.Content + return true, nil +} + + + + + diff --git a/internal/rpc/msg/send_msg.go b/internal/rpc/msg/send_msg.go index a57a6e892..390f151f9 100644 --- a/internal/rpc/msg/send_msg.go +++ b/internal/rpc/msg/send_msg.go @@ -4,7 +4,6 @@ import ( "Open_IM/pkg/common/config" "Open_IM/pkg/common/constant" "Open_IM/pkg/common/db" - http2 "Open_IM/pkg/common/http" "Open_IM/pkg/common/log" "Open_IM/pkg/grpc-etcdv3/getcdv3" pbChat "Open_IM/pkg/proto/chat" @@ -12,11 +11,9 @@ import ( sdk_ws "Open_IM/pkg/proto/sdk_ws" "Open_IM/pkg/utils" "context" - "encoding/json" "github.com/garyburd/redigo/redis" "github.com/golang/protobuf/proto" "math/rand" - "net/http" "strconv" "strings" "time" @@ -127,25 +124,26 @@ func (rpc *rpcChat) SendMsg(_ context.Context, pb *pbChat.SendMsgReq) (*pbChat.S if !isHistory { mReq.IsOnlineOnly = true } - mResp := MsgCallBackResp{} - if config.Config.MessageCallBack.CallbackSwitch { - bMsg, err := http2.Post(config.Config.MessageCallBack.CallbackUrl, mReq, config.Config.MessageCallBack.CallBackTimeOut) - if err != nil { - log.ErrorByKv("callback to Business server err", pb.OperationID, "args", pb.String(), "err", err.Error()) - return returnMsg(&replay, pb, http.StatusInternalServerError, http.StatusText(http.StatusInternalServerError), "", 0) - } else if err = json.Unmarshal(bMsg, &mResp); err != nil { - log.ErrorByKv("ws json Unmarshal err", pb.OperationID, "args", pb.String(), "err", err.Error()) - return returnMsg(&replay, pb, 200, err.Error(), "", 0) - } else { - if mResp.ErrCode != 0 { - return returnMsg(&replay, pb, mResp.ResponseErrCode, mResp.ErrMsg, "", 0) - } else { - pb.MsgData.Content = []byte(mResp.ResponseResult.ModifiedMsg) - } - } + + // callback + canSend, err := callBackWordFilter(pb) + if err != nil { + log.NewError(pb.OperationID, utils.GetSelfFuncName(), "CallbackBeforeSendMsg failed", err.Error(), pb.MsgData) + } + if !canSend { + log.NewDebug(pb.OperationID, utils.GetSelfFuncName(), "callback result", canSend, "end rpc and return") + return returnMsg(&replay, pb, 201, "callback result stop rpc and return", "", 0) } switch pb.MsgData.SessionType { case constant.SingleChatType: + canSend, err := callbackBeforeSendSingleMsg(pb) + if err != nil { + log.NewError(pb.OperationID, utils.GetSelfFuncName(), "CallBackAfterSendMsg failed", err.Error()) + } + if !canSend { + log.NewDebug(pb.OperationID, utils.GetSelfFuncName(), "callback result", canSend, "end rpc and return") + return returnMsg(&replay, pb, 201, "callback result stop rpc and return", "", 0) + } isSend := modifyMessageByUserMessageReceiveOpt(pb.MsgData.RecvID, pb.MsgData.SendID, constant.SingleChatType, pb) if isSend { msgToMQ.MsgData = pb.MsgData @@ -163,8 +161,19 @@ func (rpc *rpcChat) SendMsg(_ context.Context, pb *pbChat.SendMsgReq) (*pbChat.S return returnMsg(&replay, pb, 201, "kafka send msg err", "", 0) } } + if err := callbackAfterSendSingleMsg(pb); err != nil { + log.NewError(pb.OperationID, utils.GetSelfFuncName(), "CallBackAfterSendMsg failed", err.Error()) + } return returnMsg(&replay, pb, 0, "", msgToMQ.MsgData.ServerMsgID, msgToMQ.MsgData.SendTime) case constant.GroupChatType: + canSend, err := callbackBeforeSendGroupMsg(pb) + if err != nil { + log.NewError(pb.OperationID, utils.GetSelfFuncName(), "CallBackAfterSendMsg failed", err.Error()) + } + if !canSend { + log.NewDebug(pb.OperationID, utils.GetSelfFuncName(), "callback result", canSend, "end rpc and return") + return returnMsg(&replay, pb, 201, "callback result stop rpc and return", "", 0) + } etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImGroupName) client := pbGroup.NewGroupClient(etcdConn) req := &pbGroup.GetGroupAllMemberReq{ @@ -230,6 +239,9 @@ func (rpc *rpcChat) SendMsg(_ context.Context, pb *pbChat.SendMsgReq) (*pbChat.S } } + if err := callbackAfterSendGroupMsg(pb); err != nil { + log.NewError(pb.OperationID, utils.GetSelfFuncName(), "CallBackAfterSendMsg failed", err.Error()) + } return returnMsg(&replay, pb, 0, "", msgToMQ.MsgData.ServerMsgID, msgToMQ.MsgData.SendTime) default: return returnMsg(&replay, pb, 203, "unkonwn sessionType", "", 0) diff --git a/internal/rpc/user/callback.go b/internal/rpc/user/callback.go new file mode 100644 index 000000000..a00006b65 --- /dev/null +++ b/internal/rpc/user/callback.go @@ -0,0 +1 @@ +package user diff --git a/internal/utils/callback.go b/internal/utils/callback.go new file mode 100644 index 000000000..d4b585bf7 --- /dev/null +++ b/internal/utils/callback.go @@ -0,0 +1 @@ +package utils diff --git a/pkg/call_back_struct/common.go b/pkg/call_back_struct/common.go index 90b77eda8..fa7e4d4d3 100644 --- a/pkg/call_back_struct/common.go +++ b/pkg/call_back_struct/common.go @@ -1 +1,17 @@ package call_back_struct + +type CommonCallbackReq struct { + CallbackCommand string `json:"callbackCommand"` + ServerMsgID string `json:"serverID"` + ClientID string `json:"clientID"` + OperationID string `json:"operationID"` +} + +type CommonCallbackResp struct { + ActionCode int `json:"actionCode"` + ErrCode int `json:"errCode"` + ErrMsg string `json:"errMsg"` + OperationID string `json:"operationID"` +} + + diff --git a/pkg/call_back_struct/group.go b/pkg/call_back_struct/group.go new file mode 100644 index 000000000..3681dddcc --- /dev/null +++ b/pkg/call_back_struct/group.go @@ -0,0 +1,9 @@ +package call_back_struct + +type CallbackBeforeCreateGroupReq struct { + CommonCallbackReq +} + +type CallbackAfterCreateGroupResp struct { + CommonCallbackResp +} \ No newline at end of file diff --git a/pkg/call_back_struct/message.go b/pkg/call_back_struct/message.go index 90b77eda8..26473182e 100644 --- a/pkg/call_back_struct/message.go +++ b/pkg/call_back_struct/message.go @@ -1 +1,61 @@ package call_back_struct + +type singleMsg struct { + SendID string `json:"sendID"` + RecvID string `json:"recvID"` + ClientMsgID string `json:"clientMsgID"` + ServerMsgID string `json:"serverMsgId"` + SendTime int64 `json:"sendTime"` + CreateTime int64 `json:"createTime"` +} + +type CallbackBeforeSendSingleMsgReq struct { + CommonCallbackReq + singleMsg +} + +type CallbackBeforeSendSingleMsgResp struct { + CommonCallbackResp +} + +type CallbackAfterSendSingleMsgReq struct { + CommonCallbackReq + singleMsg +} + +type CallbackAfterSendSingleMsgResp struct { + CommonCallbackResp +} + +type groupMsg struct { + +} + +type CallbackBeforeSendGroupMsgReq struct { + CommonCallbackReq +} + +type CallbackBeforeSendGroupMsgResp struct { + CommonCallbackResp +} + +type CallbackAfterSendGroupMsgReq struct { + CommonCallbackReq +} + +type CallbackAfterSendGroupMsgResp struct { + CommonCallbackResp +} + +type CallBackWordFilterReq struct { + CommonCallbackReq + Content []byte `json:"content"` + SendID string `json:"SendID"` + RecvID string `json:"RecvID"` + GroupID string `json:"GroupID"` +} + +type CallBackWordFilterResp struct { + CommonCallbackResp + Content []byte `json:"content"` +} diff --git a/pkg/common/config/config.go b/pkg/common/config/config.go index ae0d3cadc..4782276e7 100644 --- a/pkg/common/config/config.go +++ b/pkg/common/config/config.go @@ -19,6 +19,12 @@ var ( var Config config +type callBackConfig struct { + Enable bool `yaml:"enable"` + CallbackTimeOut int `yaml:"callbackTimeOut"` + CallbackFailedContinue bool `CallbackFailedContinue` +} + type config struct { ServerIP string `yaml:"serverip"` ServerVersion string `yaml:"serverversion"` @@ -167,11 +173,6 @@ type config struct { AccessSecret string `yaml:"accessSecret"` AccessExpire int64 `yaml:"accessExpire"` } - MessageCallBack struct { - CallbackSwitch bool `yaml:"callbackSwitch"` - CallbackUrl string `yaml:"callbackUrl"` - CallBackTimeOut int `yaml:"callbackTimeOut"` - } MessageJudge struct { IsJudgeFriend bool `yaml:"isJudgeFriend"` } @@ -179,6 +180,15 @@ type config struct { PushSound string `yaml:"pushSound"` BadgeCount bool `yaml:"badgeCount"` } + + Callback struct { + CallbackUrl string `yaml:"callbackUrl"` + CallbackbeforeSendSingleMsg callBackConfig `yaml:"callbackSendGroupMsg"` + CallbackAfterSendSingleMsg callBackConfig `yaml:"callbackSendSingleMsg"` + CallbackBeforeSendGroupMsg callBackConfig `yaml:"CallbackBeforeSendGroupMsg"` + CallbackAfterSendGroupMsg callBackConfig `yaml:"callbackAfterSendGroupMsg"` + CallbackWordFilter callBackConfig `yaml:"callbackWordFilter"` + } `yaml:"callback"` Notification struct { ///////////////////////group///////////////////////////// GroupCreated struct { diff --git a/pkg/common/constant/constant.go b/pkg/common/constant/constant.go index c5e2d38b9..9d0c9724b 100644 --- a/pkg/common/constant/constant.go +++ b/pkg/common/constant/constant.go @@ -136,6 +136,16 @@ const ( VerificationCodeForReset = 2 VerificationCodeForRegisterSuffix = "_forRegister" VerificationCodeForResetSuffix = "_forReset" + + //callbackCommand + CallbackBeforeSendSingleMsgCommand = "callbackBeforeSendSingleMsg" + CallbackAfterSendSingleMsgCommand = "callbackAfterSendSingleMsg" + CallbackBeforeSendGroupMsgCommand = "callbackBeforeSendGroupMsg" + CallbackAfterSendGroupMsgCommand = "callbackAfterSendGroupMsgCommand" + CallbackWordFilterCommand = "callbackWordFilterCommand" + //actionCode + ActionAllow = 0 + ActionForbidden = 1 ) var ContentType2PushContent = map[int64]string{ diff --git a/pkg/common/constant/error.go b/pkg/common/constant/error.go index 339f2c953..548720a37 100644 --- a/pkg/common/constant/error.go +++ b/pkg/common/constant/error.go @@ -51,6 +51,7 @@ var ( ErrAccess = ErrInfo{ErrCode: 801, ErrMsg: AccessMsg.Error()} ErrDB = ErrInfo{ErrCode: 802, ErrMsg: DBMsg.Error()} ErrArgs = ErrInfo{ErrCode: 8003, ErrMsg: ArgsMsg.Error()} + ErrCallback = ErrInfo{ErrCode: 809, ErrMsg: CallBackMsg.Error()} ) var ( @@ -64,6 +65,7 @@ var ( AccessMsg = errors.New("no permission") DBMsg = errors.New("db failed") ArgsMsg = errors.New("args failed") + CallBackMsg = errors.New("callback failed") ThirdPartyMsg = errors.New("third party error") ) diff --git a/pkg/common/http/http_client.go b/pkg/common/http/http_client.go index 4d480770a..38d18c119 100644 --- a/pkg/common/http/http_client.go +++ b/pkg/common/http/http_client.go @@ -53,3 +53,13 @@ func Post(url string, data interface{}, timeOutSecond int) (content []byte, err } return result, nil } + +func PostReturn(url string, input, output interface{}, timeOut int) error { + b, err := Post(url, input, timeOut) + if err != nil { + return err + } + if err = json.Unmarshal(b, output); err != nil { + return err + } +} diff --git a/pkg/common/log/logrus.go b/pkg/common/log/logrus.go index a5e0ae7dd..63485e8d9 100644 --- a/pkg/common/log/logrus.go +++ b/pkg/common/log/logrus.go @@ -2,7 +2,6 @@ package log import ( "Open_IM/pkg/common/config" - "bufio" "fmt" "os" "time" @@ -33,13 +32,13 @@ func loggerInit(moduleName string) *Logger { //All logs will be printed logger.SetLevel(logrus.Level(config.Config.Log.RemainLogLevel)) //Close std console output - src, err := os.OpenFile(os.DevNull, os.O_APPEND|os.O_WRONLY, os.ModeAppend) - if err != nil { - panic(err.Error()) - } - writer := bufio.NewWriter(src) - logger.SetOutput(writer) - //logger.SetOutput(os.Stdout) + //src, err := os.OpenFile(os.DevNull, os.O_APPEND|os.O_WRONLY, os.ModeAppend) + //if err != nil { + // panic(err.Error()) + //} + //writer := bufio.NewWriter(src) + //logger.SetOutput(writer) + logger.SetOutput(os.Stdout) //Log Console Print Style Setting logger.SetFormatter(&nested.Formatter{ TimestampFormat: "2006-01-02 15:04:05.000", diff --git a/pkg/proto/sdk_ws/ws.proto b/pkg/proto/sdk_ws/ws.proto index 5d200cce6..cb622b96c 100644 --- a/pkg/proto/sdk_ws/ws.proto +++ b/pkg/proto/sdk_ws/ws.proto @@ -338,6 +338,36 @@ message ConversationUpdateTips{ } +///callback +message CommonCallbackURLReq { + string CallbackCommand = 1 [json_name = "code"]; + string OpenIMServerID = 2; + string OperationID = 3; +} + +message CommonCallbackURLResp { + string Code = 1 [json_name = "code"]; + string Msg = 2 [json_name = "msg"]; + string OperationID = 3 [json_name = "operationID"]; +} + +message CallbackBeforeSendMsgReq { + commonReq CommonCallbackURLReq = 1; + +} + +message CallbackBeforeSendMsgResp { + commonResp CommonCallbackURLResp = 1; + string FromUserID = 2; +} + +message CallbackAfterAddFriendReq { + commonReq CommonCallbackURLReq = 1; +} + +message CallbackAfterAddFriendResp { + commonResp CommonCallbackURLResp = 1; +} ///cms From 123aad2707b7117fcc4920e9d40b11f3fa20e296 Mon Sep 17 00:00:00 2001 From: skiffer-git <44203734@qq.com> Date: Mon, 28 Feb 2022 19:10:32 +0800 Subject: [PATCH 744/814] statistics log --- pkg/statistics/statistics.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkg/statistics/statistics.go b/pkg/statistics/statistics.go index bda8ded85..23fd0e901 100644 --- a/pkg/statistics/statistics.go +++ b/pkg/statistics/statistics.go @@ -21,7 +21,7 @@ func (s *Statistics) output() { select { case <-t.C: } - log.NewWarn(s.ModuleName, s.PrintArgs, *s.Count-sum) + log.NewWarn(s.ModuleName, s.PrintArgs, *s.Count-sum, *s.Count) } } From 63625007416da72e2e65069006c4fe0c27faf1c6 Mon Sep 17 00:00:00 2001 From: skiffer-git <44203734@qq.com> Date: Tue, 1 Mar 2022 15:14:56 +0800 Subject: [PATCH 745/814] Statistics --- pkg/statistics/statistics.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkg/statistics/statistics.go b/pkg/statistics/statistics.go index 23fd0e901..58d376986 100644 --- a/pkg/statistics/statistics.go +++ b/pkg/statistics/statistics.go @@ -21,7 +21,7 @@ func (s *Statistics) output() { select { case <-t.C: } - log.NewWarn(s.ModuleName, s.PrintArgs, *s.Count-sum, *s.Count) + log.NewWarn(s.ModuleName, s.PrintArgs, *s.Count-sum, "total:", *s.Count) } } From de7dae445564974583bbe586fef40e48d4d0feb9 Mon Sep 17 00:00:00 2001 From: skiffer-git <44203734@qq.com> Date: Tue, 1 Mar 2022 15:17:43 +0800 Subject: [PATCH 746/814] statistics --- pkg/statistics/statistics.go | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/pkg/statistics/statistics.go b/pkg/statistics/statistics.go index 58d376986..26690b696 100644 --- a/pkg/statistics/statistics.go +++ b/pkg/statistics/statistics.go @@ -21,8 +21,7 @@ func (s *Statistics) output() { select { case <-t.C: } - log.NewWarn(s.ModuleName, s.PrintArgs, *s.Count-sum, "total:", *s.Count) - + log.NewWarn("", "system stat ", s.ModuleName, s.PrintArgs, *s.Count-sum, "total:", *s.Count) } } From c4ec54f6e440b95a09c47e8a804b5fcbc613fe9e Mon Sep 17 00:00:00 2001 From: skiffer-git <44203734@qq.com> Date: Tue, 1 Mar 2022 15:22:02 +0800 Subject: [PATCH 747/814] Statistics --- pkg/statistics/statistics.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkg/statistics/statistics.go b/pkg/statistics/statistics.go index 26690b696..bea4479bd 100644 --- a/pkg/statistics/statistics.go +++ b/pkg/statistics/statistics.go @@ -21,7 +21,7 @@ func (s *Statistics) output() { select { case <-t.C: } - log.NewWarn("", "system stat ", s.ModuleName, s.PrintArgs, *s.Count-sum, "total:", *s.Count) + log.NewWarn("", " system stat ", s.ModuleName, s.PrintArgs, *s.Count-sum, "total:", *s.Count) } } From 58163cefa0970f8b2037df1f73601427bb7a3f64 Mon Sep 17 00:00:00 2001 From: skiffer-git <44203734@qq.com> Date: Tue, 1 Mar 2022 15:32:47 +0800 Subject: [PATCH 748/814] set max open file num --- script/msg_gateway_start.sh | 2 ++ 1 file changed, 2 insertions(+) diff --git a/script/msg_gateway_start.sh b/script/msg_gateway_start.sh index 1df53cfdd..978cc11fb 100644 --- a/script/msg_gateway_start.sh +++ b/script/msg_gateway_start.sh @@ -3,6 +3,8 @@ source ./style_info.cfg source ./path_info.cfg source ./function.sh +ulimit -n 200000 + list1=$(cat $config_path | grep openImOnlineRelayPort | awk -F '[:]' '{print $NF}') list2=$(cat $config_path | grep openImWsPort | awk -F '[:]' '{print $NF}') list_to_string $list1 From 0e9e02de0baf5d88b97b266344143264541185ef Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Tue, 1 Mar 2022 15:53:33 +0800 Subject: [PATCH 749/814] statistics code --- internal/api/third/minio_init.go | 2 +- internal/msg_gateway/gate/init.go | 14 ++++++++------ internal/msg_gateway/gate/logic.go | 2 +- internal/msg_gateway/gate/ws_server.go | 2 ++ 4 files changed, 12 insertions(+), 8 deletions(-) diff --git a/internal/api/third/minio_init.go b/internal/api/third/minio_init.go index d073524f3..9d5e404de 100644 --- a/internal/api/third/minio_init.go +++ b/internal/api/third/minio_init.go @@ -45,7 +45,7 @@ func init() { //err = minioClient.SetBucketPolicy(context.Background(), config.Config.Credential.Minio.Bucket, policy.BucketPolicyReadWrite) //if err != nil { // log.NewError("", utils.GetSelfFuncName(), "SetBucketPolicy failed please set in ", err.Error()) - // return + // return`z //} log.NewInfo("", utils.GetSelfFuncName(), "minio create and set policy success") } diff --git a/internal/msg_gateway/gate/init.go b/internal/msg_gateway/gate/init.go index 47d1dcedb..a98027561 100644 --- a/internal/msg_gateway/gate/init.go +++ b/internal/msg_gateway/gate/init.go @@ -10,11 +10,12 @@ import ( ) var ( - rwLock *sync.RWMutex - validate *validator.Validate - ws WServer - rpcSvr RPCServer - count uint64 + rwLock *sync.RWMutex + validate *validator.Validate + ws WServer + rpcSvr RPCServer + sendMsgCount uint64 + userCount uint64 ) func Init(rpcPort, wsPort int) { @@ -22,7 +23,8 @@ func Init(rpcPort, wsPort int) { log.NewPrivateLog(config.Config.ModuleName.LongConnSvrName) rwLock = new(sync.RWMutex) validate = validator.New() - statistics.NewStatistics(&count, config.Config.ModuleName.LongConnSvrName, fmt.Sprintf("%d second recv to msg_gateway count", count), 10) + statistics.NewStatistics(&sendMsgCount, config.Config.ModuleName.LongConnSvrName, fmt.Sprintf("%d second recv to msg_gateway sendMsgCount", sendMsgCount), 10) + statistics.NewStatistics(&userCount, config.Config.ModuleName.LongConnSvrName, fmt.Sprintf("%d second add user conn", userCount), 10) ws.onInit(wsPort) rpcSvr.onInit(rpcPort) } diff --git a/internal/msg_gateway/gate/logic.go b/internal/msg_gateway/gate/logic.go index 2aa19f609..df3b1a356 100644 --- a/internal/msg_gateway/gate/logic.go +++ b/internal/msg_gateway/gate/logic.go @@ -142,7 +142,7 @@ func (ws *WServer) pullMsgBySeqListResp(conn *UserConn, m *Req, pb *sdk_ws.PullM } func (ws *WServer) sendMsgReq(conn *UserConn, m *Req) { - count++ + sendMsgCount++ log.NewInfo(m.OperationID, "Ws call success to sendMsgReq start", m.MsgIncr, m.ReqIdentifier, m.SendID) nReply := new(pbChat.SendMsgResp) isPass, errCode, errMsg, pData := ws.argsValidate(m, constant.WSSendMsg) diff --git a/internal/msg_gateway/gate/ws_server.go b/internal/msg_gateway/gate/ws_server.go index 2197fbbc2..ba14561ef 100644 --- a/internal/msg_gateway/gate/ws_server.go +++ b/internal/msg_gateway/gate/ws_server.go @@ -184,6 +184,7 @@ func (ws *WServer) addUserConn(uid string, platformID int32, conn *UserConn, tok count = count + len(v) } log.WarnByKv("WS Add operation", "", "wsUser added", ws.wsUserToConn, "connection_uid", uid, "connection_platform", constant.PlatformIDToName(platformID), "online_user_num", len(ws.wsUserToConn), "online_conn_num", count) + userCount = uint64(len(ws.wsUserToConn)) } @@ -210,6 +211,7 @@ func (ws *WServer) delUserConn(conn *UserConn) { } else { log.WarnByKv("WS delete operation", "", "wsUser deleted", ws.wsUserToConn, "disconnection_uid", uid, "disconnection_platform", platform, "online_user_num", len(ws.wsUserToConn)) } + userCount = uint64(len(ws.wsUserToConn)) delete(ws.wsConnToUser, conn) } From 72ed38156af22fc51a06c395a3b20b697074e2fa Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Tue, 1 Mar 2022 17:48:53 +0800 Subject: [PATCH 750/814] test code --- internal/msg_gateway/gate/ws_server.go | 21 ++++++++++----------- 1 file changed, 10 insertions(+), 11 deletions(-) diff --git a/internal/msg_gateway/gate/ws_server.go b/internal/msg_gateway/gate/ws_server.go index ba14561ef..0f751b58d 100644 --- a/internal/msg_gateway/gate/ws_server.go +++ b/internal/msg_gateway/gate/ws_server.go @@ -5,7 +5,6 @@ import ( "Open_IM/pkg/common/constant" "Open_IM/pkg/common/db" "Open_IM/pkg/common/log" - "Open_IM/pkg/common/token_verify" "Open_IM/pkg/utils" "bytes" "encoding/gob" @@ -258,16 +257,16 @@ func (ws *WServer) headerCheck(w http.ResponseWriter, r *http.Request) bool { status := http.StatusUnauthorized query := r.URL.Query() if len(query["token"]) != 0 && len(query["sendID"]) != 0 && len(query["platformID"]) != 0 { - if ok, err := token_verify.VerifyToken(query["token"][0], query["sendID"][0]); !ok { - e := err.(*constant.ErrInfo) - log.ErrorByKv("Token verify failed", "", "query", query) - w.Header().Set("Sec-Websocket-Version", "13") - http.Error(w, e.ErrMsg, int(e.ErrCode)) - return false - } else { - log.InfoByKv("Connection Authentication Success", "", "token", query["token"][0], "userID", query["sendID"][0]) - return true - } + //if ok, err := token_verify.VerifyToken(query["token"][0], query["sendID"][0]); !ok { + // e := err.(*constant.ErrInfo) + // log.ErrorByKv("Token verify failed", "", "query", query) + // w.Header().Set("Sec-Websocket-Version", "13") + // http.Error(w, e.ErrMsg, int(e.ErrCode)) + // return false + //} else { + log.InfoByKv("Connection Authentication Success", "", "token", query["token"][0], "userID", query["sendID"][0]) + return true + //} } else { log.ErrorByKv("Args err", "", "query", query) w.Header().Set("Sec-Websocket-Version", "13") From 84a01569d644cee9fe91b88f1ab79c9dd49fee71 Mon Sep 17 00:00:00 2001 From: skiffer-git <44203734@qq.com> Date: Wed, 2 Mar 2022 09:45:12 +0800 Subject: [PATCH 751/814] limit mongo memory --- docker-compose.yaml | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/docker-compose.yaml b/docker-compose.yaml index 5497faa43..154c61faa 100644 --- a/docker-compose.yaml +++ b/docker-compose.yaml @@ -24,6 +24,10 @@ services: - ./components/mongodb/data/db:/data/db - ./components/mongodb/data/logs:/data/logs - ./components/mongodb/data/conf:/etc/mongo + environment: + - TZ=Asia/Shanghai + # cache + - wiredTigerCacheSizeGB=1 # environment: # - MONGO_INITDB_ROOT_USERNAME=openIM # - MONGO_INITDB_ROOT_PASSWORD=openIM From dcfd802757f92c3ab3655dc2102d1e1a84c196e5 Mon Sep 17 00:00:00 2001 From: wangchuxiao Date: Wed, 2 Mar 2022 19:07:17 +0800 Subject: [PATCH 752/814] callback add --- config/config.yaml | 6 ++-- internal/api/third/minio_init.go | 1 + internal/rpc/msg/callback.go | 48 ++++++++++++++++++--------- internal/rpc/msg/send_msg.go | 2 +- internal/rpc/statistics/statistics.go | 41 +++++++++++++++-------- pkg/call_back_struct/message.go | 24 +++++++++----- 6 files changed, 80 insertions(+), 42 deletions(-) diff --git a/config/config.yaml b/config/config.yaml index da3264de7..d8ff4060d 100644 --- a/config/config.yaml +++ b/config/config.yaml @@ -8,7 +8,7 @@ etcd: etcdAddr: [ 127.0.0.1:2379 ] #单机部署时,默认即可 mysql: - dbMysqlAddress: [ 43.128.5.63:13306 ] #mysql地址 目前仅支持单机,默认即可 + dbMysqlAddress: [ 127.0.0.1:13306 ] #mysql地址 目前仅支持单机,默认即可 dbMysqlUserName: root #mysql用户名,建议修改 dbMysqlPassword: openIM # mysql密码,建议修改 dbMysqlDatabaseName: openIM_v2 #默认即可 @@ -19,7 +19,7 @@ mysql: dbMaxLifeTime: 120 mongo: - dbAddress: [ 43.128.5.63:37017 ] #redis地址 目前仅支持单机,默认即可 + dbAddress: [ 127.0.0.1:37017 ] #redis地址 目前仅支持单机,默认即可 dbDirect: false dbTimeout: 10 dbDatabase: openIM #mongo db 默认即可 @@ -30,7 +30,7 @@ mongo: dbRetainChatRecords: 3650 #mongo保存离线消息时间(天),根据需求修改 redis: - dbAddress: 43.128.5.63:16379 #redis地址 目前仅支持单机,默认即可 + dbAddress: 127.0.0.1:16379 #redis地址 目前仅支持单机,默认即可 dbMaxIdle: 128 dbMaxActive: 0 dbIdleTimeout: 120 diff --git a/internal/api/third/minio_init.go b/internal/api/third/minio_init.go index d073524f3..bcec45402 100644 --- a/internal/api/third/minio_init.go +++ b/internal/api/third/minio_init.go @@ -42,6 +42,7 @@ func init() { return } } + // 自动化桶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 ", err.Error()) diff --git a/internal/rpc/msg/callback.go b/internal/rpc/msg/callback.go index d55d9046e..19d8ca4f4 100644 --- a/internal/rpc/msg/callback.go +++ b/internal/rpc/msg/callback.go @@ -12,16 +12,19 @@ import ( func callbackBeforeSendSingleMsg(msg *pbChat.SendMsgReq) (canSend bool, err error) { log.NewDebug(msg.OperationID, utils.GetSelfFuncName(), msg) - if !config.Config.Callback.CallbackbeforeSendSingleMsg.Enable || msg.MsgData.ContentType != constant.Text { + if !config.Config.Callback.CallbackbeforeSendSingleMsg.Enable { return true, nil } req := cbApi.CallbackBeforeSendSingleMsgReq{CommonCallbackReq:cbApi.CommonCallbackReq{ }} resp := &cbApi.CallbackBeforeSendSingleMsgResp{CommonCallbackResp:cbApi.CommonCallbackResp{ }} + defer log.NewDebug(msg.OperationID, utils.GetSelfFuncName(), req, resp) utils.CopyStructFields(req, msg.MsgData) - if err := http.PostReturn(config.Config.Callback.CallbackUrl, req, resp, config.Config.Callback.CallbackbeforeSendSingleMsg.CallbackTimeOut); err != nil && !config.Config.Callback.CallbackbeforeSendSingleMsg.CallbackFailedContinue{ - return false, err + if err := http.PostReturn(config.Config.Callback.CallbackUrl, req, resp, config.Config.Callback.CallbackbeforeSendSingleMsg.CallbackTimeOut); err != nil{ + if !config.Config.Callback.CallbackbeforeSendSingleMsg.CallbackFailedContinue { + return false, err + } } if resp.ActionCode == constant.ActionForbidden { return false, nil @@ -32,13 +35,14 @@ func callbackBeforeSendSingleMsg(msg *pbChat.SendMsgReq) (canSend bool, err erro func callbackAfterSendSingleMsg(msg *pbChat.SendMsgReq) error { log.NewDebug(msg.OperationID, utils.GetSelfFuncName(), msg) - if !config.Config.Callback.CallbackAfterSendSingleMsg.Enable || msg.MsgData.ContentType != constant.Text { + if !config.Config.Callback.CallbackAfterSendSingleMsg.Enable { return nil } req := cbApi.CallbackAfterSendSingleMsgReq{CommonCallbackReq: cbApi.CommonCallbackReq{}} resp := &cbApi.CallbackAfterSendSingleMsgResp{CommonCallbackResp: cbApi.CommonCallbackResp{}} + defer log.NewDebug(msg.OperationID, utils.GetSelfFuncName(), req, resp) utils.CopyStructFields(req, msg.MsgData) - if err := http.PostReturn(config.Config.Callback.CallbackUrl, req, resp, config.Config.Callback.CallbackAfterSendSingleMsg.CallbackTimeOut); err != nil && config.Config.Callback.CallbackAfterSendSingleMsg.CallbackFailedContinue{ + if err := http.PostReturn(config.Config.Callback.CallbackUrl, req, resp, config.Config.Callback.CallbackAfterSendSingleMsg.CallbackTimeOut); err != nil{ return err } return nil @@ -47,14 +51,17 @@ func callbackAfterSendSingleMsg(msg *pbChat.SendMsgReq) error { func callbackBeforeSendGroupMsg(msg *pbChat.SendMsgReq) (canSend bool, err error) { log.NewDebug(msg.OperationID, utils.GetSelfFuncName(), msg) - if !config.Config.Callback.CallbackBeforeSendGroupMsg.Enable || msg.MsgData.ContentType != constant.Text { + if !config.Config.Callback.CallbackBeforeSendGroupMsg.Enable { return true, nil } req := cbApi.CallbackBeforeSendSingleMsgReq{CommonCallbackReq: cbApi.CommonCallbackReq{}} resp := &cbApi.CallbackBeforeSendGroupMsgResp{CommonCallbackResp: cbApi.CommonCallbackResp{}} + defer log.NewDebug(msg.OperationID, utils.GetSelfFuncName(), req, resp) utils.CopyStructFields(req, msg.MsgData) - if err := http.PostReturn(config.Config.Callback.CallbackUrl, req, resp, config.Config.Callback.CallbackBeforeSendGroupMsg.CallbackTimeOut); err != nil && !config.Config.Callback.CallbackBeforeSendGroupMsg.CallbackFailedContinue{ - return false, nil + if err := http.PostReturn(config.Config.Callback.CallbackUrl, req, resp, config.Config.Callback.CallbackBeforeSendGroupMsg.CallbackTimeOut); err != nil { + if !config.Config.Callback.CallbackBeforeSendGroupMsg.CallbackFailedContinue { + return false, nil + } } if resp.ActionCode == constant.ActionForbidden { return false, nil @@ -64,9 +71,16 @@ func callbackBeforeSendGroupMsg(msg *pbChat.SendMsgReq) (canSend bool, err error func callbackAfterSendGroupMsg(msg *pbChat.SendMsgReq) error { log.NewDebug(msg.OperationID, utils.GetSelfFuncName(), msg) - if !config.Config.Callback.CallbackAfterSendGroupMsg.Enable || msg.MsgData.ContentType != constant.Text { + if !config.Config.Callback.CallbackAfterSendGroupMsg.Enable { return nil } + req := cbApi.CallbackAfterSendGroupMsgReq{CommonCallbackReq: cbApi.CommonCallbackReq{}} + resp := &cbApi.CallbackAfterSendGroupMsgResp{CommonCallbackResp: cbApi.CommonCallbackResp{}} + defer log.NewDebug(msg.OperationID, utils.GetSelfFuncName(), req, resp) + utils.CopyStructFields(req, msg.MsgData) + if err := http.PostReturn(config.Config.Callback.CallbackUrl, req, resp, config.Config.Callback.CallbackAfterSendGroupMsg.CallbackTimeOut); err != nil { + return err + } return nil } @@ -76,13 +90,17 @@ func callBackWordFilter(msg *pbChat.SendMsgReq) (canSend bool, err error) { if !config.Config.Callback.CallbackWordFilter.Enable || msg.MsgData.ContentType != constant.Text { return true, nil } - req := cbApi.CallBackWordFilterReq{ - CommonCallbackReq: cbApi.CommonCallbackReq{}, - } - resp := cbApi.CallBackWordFilterResp{CommonCallbackResp: cbApi.CommonCallbackResp{}} + req := cbApi.CallbackWordFilterReq{CommonCallbackReq: cbApi.CommonCallbackReq{}} + resp := &cbApi.CallbackWordFilterResp{CommonCallbackResp: cbApi.CommonCallbackResp{}} + defer log.NewDebug(msg.OperationID, utils.GetSelfFuncName(), req, resp) utils.CopyStructFields(&req, msg.MsgData) - if err := http.PostReturn(msg.OperationID, req, &resp, config.Config.Callback.CallbackWordFilter.CallbackTimeOut); err != nil { - return false, err + if err := http.PostReturn(msg.OperationID, req, resp, config.Config.Callback.CallbackWordFilter.CallbackTimeOut); err != nil { + if !config.Config.Callback.CallbackWordFilter.CallbackFailedContinue { + return false, err + } + } + if resp.ActionCode == constant.ActionForbidden { + return false, nil } msg.MsgData.Content = resp.Content return true, nil diff --git a/internal/rpc/msg/send_msg.go b/internal/rpc/msg/send_msg.go index 390f151f9..86a28d480 100644 --- a/internal/rpc/msg/send_msg.go +++ b/internal/rpc/msg/send_msg.go @@ -131,7 +131,7 @@ func (rpc *rpcChat) SendMsg(_ context.Context, pb *pbChat.SendMsgReq) (*pbChat.S log.NewError(pb.OperationID, utils.GetSelfFuncName(), "CallbackBeforeSendMsg failed", err.Error(), pb.MsgData) } if !canSend { - log.NewDebug(pb.OperationID, utils.GetSelfFuncName(), "callback result", canSend, "end rpc and return") + log.NewDebug(pb.OperationID, utils.GetSelfFuncName(), "callback result", canSend, "end rpc and return", pb.MsgData) return returnMsg(&replay, pb, 201, "callback result stop rpc and return", "", 0) } switch pb.MsgData.SessionType { diff --git a/internal/rpc/statistics/statistics.go b/internal/rpc/statistics/statistics.go index 9554bf116..e8b1383f9 100644 --- a/internal/rpc/statistics/statistics.go +++ b/internal/rpc/statistics/statistics.go @@ -164,28 +164,41 @@ func GetRangeDate(from, to time.Time) [][2]time.Time { } // month case !isInOneMonth(from, to): - for i := 0; ; i++ { - if i == 0 { - fromTime := from - toTime := getFirstDateOfNextNMonth(fromTime, 1) + if to.Sub(from) < time.Hour * 24 * 30 { + for i := 0; ; i++ { + fromTime := from.Add(time.Hour * 24 * time.Duration(i)) + toTime := from.Add(time.Hour * 24 * time.Duration(i+1)) + if toTime.After(to.Add(time.Hour * 24)) { + break + } times = append(times, [2]time.Time{ fromTime, toTime, }) - } else { - fromTime := getFirstDateOfNextNMonth(from, i) - toTime := getFirstDateOfNextNMonth(fromTime, 1) - if toTime.After(to) { - toTime = to + } + } else { + for i := 0; ; i++ { + if i == 0 { + fromTime := from + toTime := getFirstDateOfNextNMonth(fromTime, 1) + times = append(times, [2]time.Time{ + fromTime, toTime, + }) + } else { + fromTime := getFirstDateOfNextNMonth(from, i) + toTime := getFirstDateOfNextNMonth(fromTime, 1) + if toTime.After(to) { + toTime = to + times = append(times, [2]time.Time{ + fromTime, toTime, + }) + break + } times = append(times, [2]time.Time{ fromTime, toTime, }) - break } - times = append(times, [2]time.Time{ - fromTime, toTime, - }) - } + } } } return times diff --git a/pkg/call_back_struct/message.go b/pkg/call_back_struct/message.go index 26473182e..253c2561e 100644 --- a/pkg/call_back_struct/message.go +++ b/pkg/call_back_struct/message.go @@ -1,12 +1,16 @@ package call_back_struct -type singleMsg struct { +type msg struct { SendID string `json:"sendID"` - RecvID string `json:"recvID"` ClientMsgID string `json:"clientMsgID"` ServerMsgID string `json:"serverMsgId"` - SendTime int64 `json:"sendTime"` CreateTime int64 `json:"createTime"` + Content []byte `json:"content"` +} + +type singleMsg struct { + msg + RecvID string `json:"recvID"` } type CallbackBeforeSendSingleMsgReq struct { @@ -16,6 +20,7 @@ type CallbackBeforeSendSingleMsgReq struct { type CallbackBeforeSendSingleMsgResp struct { CommonCallbackResp + singleMsg } type CallbackAfterSendSingleMsgReq struct { @@ -28,18 +33,22 @@ type CallbackAfterSendSingleMsgResp struct { } type groupMsg struct { - + msg + GroupID string `json:"groupID"` } type CallbackBeforeSendGroupMsgReq struct { CommonCallbackReq + groupMsg } type CallbackBeforeSendGroupMsgResp struct { CommonCallbackResp + groupMsg } type CallbackAfterSendGroupMsgReq struct { + groupMsg CommonCallbackReq } @@ -47,15 +56,12 @@ type CallbackAfterSendGroupMsgResp struct { CommonCallbackResp } -type CallBackWordFilterReq struct { +type CallbackWordFilterReq struct { CommonCallbackReq Content []byte `json:"content"` - SendID string `json:"SendID"` - RecvID string `json:"RecvID"` - GroupID string `json:"GroupID"` } -type CallBackWordFilterResp struct { +type CallbackWordFilterResp struct { CommonCallbackResp Content []byte `json:"content"` } From c0c08fe373344542aaf6f95e28b58cc6b7f713e2 Mon Sep 17 00:00:00 2001 From: skiffer-git <44203734@qq.com> Date: Wed, 2 Mar 2022 20:59:54 +0800 Subject: [PATCH 753/814] adjust log --- internal/msg_gateway/gate/ws_server.go | 2 +- internal/push/logic/push_to_client.go | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/internal/msg_gateway/gate/ws_server.go b/internal/msg_gateway/gate/ws_server.go index 0f751b58d..ff7e739c8 100644 --- a/internal/msg_gateway/gate/ws_server.go +++ b/internal/msg_gateway/gate/ws_server.go @@ -182,7 +182,7 @@ func (ws *WServer) addUserConn(uid string, platformID int32, conn *UserConn, tok for _, v := range ws.wsUserToConn { count = count + len(v) } - log.WarnByKv("WS Add operation", "", "wsUser added", ws.wsUserToConn, "connection_uid", uid, "connection_platform", constant.PlatformIDToName(platformID), "online_user_num", len(ws.wsUserToConn), "online_conn_num", count) + log.Debug("WS Add operation", "", "wsUser added", ws.wsUserToConn, "connection_uid", uid, "connection_platform", constant.PlatformIDToName(platformID), "online_user_num", len(ws.wsUserToConn), "online_conn_num", count) userCount = uint64(len(ws.wsUserToConn)) } diff --git a/internal/push/logic/push_to_client.go b/internal/push/logic/push_to_client.go index b6a624f91..11d090ac5 100644 --- a/internal/push/logic/push_to_client.go +++ b/internal/push/logic/push_to_client.go @@ -31,10 +31,10 @@ type AtContent struct { func MsgToUser(pushMsg *pbPush.PushMsgReq) { var wsResult []*pbRelay.SingleMsgToUser //isOfflinePush := utils.GetSwitchFromOptions(pushMsg.MsgData.Options, constant.IsOfflinePush) - log.InfoByKv("Get msg from msg_transfer And push msg", pushMsg.OperationID, "PushData", pushMsg.String()) + log.Debug("Get msg from msg_transfer And push msg", pushMsg.OperationID, "PushData", pushMsg.String()) grpcCons := getcdv3.GetConn4Unique(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImOnlineMessageRelayName) //Online push message - log.InfoByKv("test", pushMsg.OperationID, "len grpc", len(grpcCons), "data", pushMsg.String()) + log.Debug("test", pushMsg.OperationID, "len grpc", len(grpcCons), "data", pushMsg.String()) for _, v := range grpcCons { msgClient := pbRelay.NewOnlineMessageRelayServiceClient(v) reply, err := msgClient.OnlinePushMsg(context.Background(), &pbRelay.OnlinePushMsgReq{OperationID: pushMsg.OperationID, MsgData: pushMsg.MsgData, PushToUserID: pushMsg.PushToUserID}) From e6b302abf9c51bccd121b563f09339a1a7f6f4f9 Mon Sep 17 00:00:00 2001 From: skiffer-git <44203734@qq.com> Date: Wed, 2 Mar 2022 21:02:21 +0800 Subject: [PATCH 754/814] log --- pkg/common/http/http_client.go | 1 + 1 file changed, 1 insertion(+) diff --git a/pkg/common/http/http_client.go b/pkg/common/http/http_client.go index 38d18c119..e227da91e 100644 --- a/pkg/common/http/http_client.go +++ b/pkg/common/http/http_client.go @@ -62,4 +62,5 @@ func PostReturn(url string, input, output interface{}, timeOut int) error { if err = json.Unmarshal(b, output); err != nil { return err } + return nil } From 25f24801d6acb46c81364dd2c0a342af7f01dc92 Mon Sep 17 00:00:00 2001 From: FG <1432970085@qq.com> Date: Wed, 2 Mar 2022 22:52:39 +0800 Subject: [PATCH 755/814] log --- pkg/common/log/logrus.go | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/pkg/common/log/logrus.go b/pkg/common/log/logrus.go index 63485e8d9..a5e0ae7dd 100644 --- a/pkg/common/log/logrus.go +++ b/pkg/common/log/logrus.go @@ -2,6 +2,7 @@ package log import ( "Open_IM/pkg/common/config" + "bufio" "fmt" "os" "time" @@ -32,13 +33,13 @@ func loggerInit(moduleName string) *Logger { //All logs will be printed logger.SetLevel(logrus.Level(config.Config.Log.RemainLogLevel)) //Close std console output - //src, err := os.OpenFile(os.DevNull, os.O_APPEND|os.O_WRONLY, os.ModeAppend) - //if err != nil { - // panic(err.Error()) - //} - //writer := bufio.NewWriter(src) - //logger.SetOutput(writer) - logger.SetOutput(os.Stdout) + src, err := os.OpenFile(os.DevNull, os.O_APPEND|os.O_WRONLY, os.ModeAppend) + if err != nil { + panic(err.Error()) + } + writer := bufio.NewWriter(src) + logger.SetOutput(writer) + //logger.SetOutput(os.Stdout) //Log Console Print Style Setting logger.SetFormatter(&nested.Formatter{ TimestampFormat: "2006-01-02 15:04:05.000", From d8a729c961f55a552d81c71de6d6bafb5c862810 Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Thu, 3 Mar 2022 10:53:44 +0800 Subject: [PATCH 756/814] config update --- config/config.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config/config.yaml b/config/config.yaml index 7d025c863..9d1f7f71b 100644 --- a/config/config.yaml +++ b/config/config.yaml @@ -180,7 +180,7 @@ tokenpolicy: messagecallback: callbackSwitch: false - callbackUrl: "http://www.xxx.com/msg/judge" + callbackUrl: "http://www.uuu.com/msg/judge" #TimeOut use second as unit callbackTimeOut: 10 messagejudge: From 97ec9602f7e83b012e3026e8bcc9a65904fd1c3f Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Thu, 3 Mar 2022 12:11:38 +0800 Subject: [PATCH 757/814] callback note --- internal/rpc/msg/send_msg.go | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/internal/rpc/msg/send_msg.go b/internal/rpc/msg/send_msg.go index 86a28d480..b4581456a 100644 --- a/internal/rpc/msg/send_msg.go +++ b/internal/rpc/msg/send_msg.go @@ -126,14 +126,14 @@ func (rpc *rpcChat) SendMsg(_ context.Context, pb *pbChat.SendMsgReq) (*pbChat.S } // callback - canSend, err := callBackWordFilter(pb) - if err != nil { - log.NewError(pb.OperationID, utils.GetSelfFuncName(), "CallbackBeforeSendMsg failed", err.Error(), pb.MsgData) - } - if !canSend { - log.NewDebug(pb.OperationID, utils.GetSelfFuncName(), "callback result", canSend, "end rpc and return", pb.MsgData) - return returnMsg(&replay, pb, 201, "callback result stop rpc and return", "", 0) - } + //canSend, err := callBackWordFilter(pb) + //if err != nil { + // log.NewError(pb.OperationID, utils.GetSelfFuncName(), "CallbackBeforeSendMsg failed", err.Error(), pb.MsgData) + //} + //if !canSend { + // log.NewDebug(pb.OperationID, utils.GetSelfFuncName(), "callback result", canSend, "end rpc and return", pb.MsgData) + // return returnMsg(&replay, pb, 201, "callback result stop rpc and return", "", 0) + //} switch pb.MsgData.SessionType { case constant.SingleChatType: canSend, err := callbackBeforeSendSingleMsg(pb) From f1c11ac1144cfd68c761a49beb0d8580eaa9f58b Mon Sep 17 00:00:00 2001 From: wangchuxiao Date: Thu, 3 Mar 2022 14:18:28 +0800 Subject: [PATCH 758/814] add callback --- config/config.yaml | 2 -- internal/rpc/msg/callback.go | 17 ++++++++++------- pkg/call_back_struct/message.go | 6 +++--- 3 files changed, 13 insertions(+), 12 deletions(-) diff --git a/config/config.yaml b/config/config.yaml index d8ff4060d..ff98b2692 100644 --- a/config/config.yaml +++ b/config/config.yaml @@ -202,7 +202,6 @@ callback: callbackAfterSendSingleMsg: enable: true callbackTimeOut: 5 - CallbackFailedContinue: true callbackBeforeSendGroupMsg: enable: true callbackTimeOut: 5 @@ -210,7 +209,6 @@ callback: callbackAfterSendGroupMsg: enable: true callbackTimeOut: 5 - CallbackFailedContinue: true callbackWordFilter: enable: true callbackTimeOut: 5 diff --git a/internal/rpc/msg/callback.go b/internal/rpc/msg/callback.go index 19d8ca4f4..310a80f67 100644 --- a/internal/rpc/msg/callback.go +++ b/internal/rpc/msg/callback.go @@ -62,9 +62,10 @@ func callbackBeforeSendGroupMsg(msg *pbChat.SendMsgReq) (canSend bool, err error if !config.Config.Callback.CallbackBeforeSendGroupMsg.CallbackFailedContinue { return false, nil } - } - if resp.ActionCode == constant.ActionForbidden { - return false, nil + } else { + if resp.ActionCode == constant.ActionForbidden { + return false, nil + } } return true, nil } @@ -94,15 +95,17 @@ func callBackWordFilter(msg *pbChat.SendMsgReq) (canSend bool, err error) { resp := &cbApi.CallbackWordFilterResp{CommonCallbackResp: cbApi.CommonCallbackResp{}} defer log.NewDebug(msg.OperationID, utils.GetSelfFuncName(), req, resp) utils.CopyStructFields(&req, msg.MsgData) + req.Content = string(msg.MsgData.Content) if err := http.PostReturn(msg.OperationID, req, resp, config.Config.Callback.CallbackWordFilter.CallbackTimeOut); err != nil { if !config.Config.Callback.CallbackWordFilter.CallbackFailedContinue { return false, err } + } else { + msg.MsgData.Content = []byte(resp.Content) + if resp.ActionCode == constant.ActionForbidden { + return false, nil + } } - if resp.ActionCode == constant.ActionForbidden { - return false, nil - } - msg.MsgData.Content = resp.Content return true, nil } diff --git a/pkg/call_back_struct/message.go b/pkg/call_back_struct/message.go index 253c2561e..97d31a09f 100644 --- a/pkg/call_back_struct/message.go +++ b/pkg/call_back_struct/message.go @@ -5,7 +5,7 @@ type msg struct { ClientMsgID string `json:"clientMsgID"` ServerMsgID string `json:"serverMsgId"` CreateTime int64 `json:"createTime"` - Content []byte `json:"content"` + Content string `json:"content"` } type singleMsg struct { @@ -58,10 +58,10 @@ type CallbackAfterSendGroupMsgResp struct { type CallbackWordFilterReq struct { CommonCallbackReq - Content []byte `json:"content"` + Content string `json:"content"` } type CallbackWordFilterResp struct { CommonCallbackResp - Content []byte `json:"content"` + Content string `json:"content"` } From d13a6b0c3683cc30620ee8756de8c979c6a4afda Mon Sep 17 00:00:00 2001 From: wangchuxiao Date: Thu, 3 Mar 2022 14:42:50 +0800 Subject: [PATCH 759/814] add callback --- config/config.yaml | 2 +- internal/rpc/msg/callback.go | 13 +++++++++---- internal/rpc/msg/send_msg.go | 16 ++++++++-------- 3 files changed, 18 insertions(+), 13 deletions(-) diff --git a/config/config.yaml b/config/config.yaml index ff98b2692..f7e966eb8 100644 --- a/config/config.yaml +++ b/config/config.yaml @@ -193,7 +193,7 @@ iospush: badgeCount: true callback: - callbackUrl : "http://xxx.com" + callbackUrl : "http://127.0.0.1:8070" # 开启关闭操作前后回调的配置 callbackbeforeSendSingleMsg: enable: true # 回调是否启用 diff --git a/internal/rpc/msg/callback.go b/internal/rpc/msg/callback.go index 310a80f67..6bdc29bb2 100644 --- a/internal/rpc/msg/callback.go +++ b/internal/rpc/msg/callback.go @@ -21,13 +21,15 @@ func callbackBeforeSendSingleMsg(msg *pbChat.SendMsgReq) (canSend bool, err erro }} defer log.NewDebug(msg.OperationID, utils.GetSelfFuncName(), req, resp) utils.CopyStructFields(req, msg.MsgData) + req.Content = string(msg.MsgData.Content) if err := http.PostReturn(config.Config.Callback.CallbackUrl, req, resp, config.Config.Callback.CallbackbeforeSendSingleMsg.CallbackTimeOut); err != nil{ if !config.Config.Callback.CallbackbeforeSendSingleMsg.CallbackFailedContinue { return false, err } - } - if resp.ActionCode == constant.ActionForbidden { - return false, nil + } else { + if resp.ActionCode == constant.ActionForbidden { + return false, nil + } } return true, nil } @@ -42,6 +44,7 @@ func callbackAfterSendSingleMsg(msg *pbChat.SendMsgReq) error { resp := &cbApi.CallbackAfterSendSingleMsgResp{CommonCallbackResp: cbApi.CommonCallbackResp{}} defer log.NewDebug(msg.OperationID, utils.GetSelfFuncName(), req, resp) utils.CopyStructFields(req, msg.MsgData) + req.Content = string(msg.MsgData.Content) if err := http.PostReturn(config.Config.Callback.CallbackUrl, req, resp, config.Config.Callback.CallbackAfterSendSingleMsg.CallbackTimeOut); err != nil{ return err } @@ -58,6 +61,7 @@ func callbackBeforeSendGroupMsg(msg *pbChat.SendMsgReq) (canSend bool, err error resp := &cbApi.CallbackBeforeSendGroupMsgResp{CommonCallbackResp: cbApi.CommonCallbackResp{}} defer log.NewDebug(msg.OperationID, utils.GetSelfFuncName(), req, resp) utils.CopyStructFields(req, msg.MsgData) + req.Content = string(msg.MsgData.Content) if err := http.PostReturn(config.Config.Callback.CallbackUrl, req, resp, config.Config.Callback.CallbackBeforeSendGroupMsg.CallbackTimeOut); err != nil { if !config.Config.Callback.CallbackBeforeSendGroupMsg.CallbackFailedContinue { return false, nil @@ -79,6 +83,7 @@ func callbackAfterSendGroupMsg(msg *pbChat.SendMsgReq) error { resp := &cbApi.CallbackAfterSendGroupMsgResp{CommonCallbackResp: cbApi.CommonCallbackResp{}} defer log.NewDebug(msg.OperationID, utils.GetSelfFuncName(), req, resp) utils.CopyStructFields(req, msg.MsgData) + req.Content = string(msg.MsgData.Content) if err := http.PostReturn(config.Config.Callback.CallbackUrl, req, resp, config.Config.Callback.CallbackAfterSendGroupMsg.CallbackTimeOut); err != nil { return err } @@ -101,10 +106,10 @@ func callBackWordFilter(msg *pbChat.SendMsgReq) (canSend bool, err error) { return false, err } } else { - msg.MsgData.Content = []byte(resp.Content) if resp.ActionCode == constant.ActionForbidden { return false, nil } + msg.MsgData.Content = []byte(resp.Content) } return true, nil } diff --git a/internal/rpc/msg/send_msg.go b/internal/rpc/msg/send_msg.go index b4581456a..86a28d480 100644 --- a/internal/rpc/msg/send_msg.go +++ b/internal/rpc/msg/send_msg.go @@ -126,14 +126,14 @@ func (rpc *rpcChat) SendMsg(_ context.Context, pb *pbChat.SendMsgReq) (*pbChat.S } // callback - //canSend, err := callBackWordFilter(pb) - //if err != nil { - // log.NewError(pb.OperationID, utils.GetSelfFuncName(), "CallbackBeforeSendMsg failed", err.Error(), pb.MsgData) - //} - //if !canSend { - // log.NewDebug(pb.OperationID, utils.GetSelfFuncName(), "callback result", canSend, "end rpc and return", pb.MsgData) - // return returnMsg(&replay, pb, 201, "callback result stop rpc and return", "", 0) - //} + canSend, err := callBackWordFilter(pb) + if err != nil { + log.NewError(pb.OperationID, utils.GetSelfFuncName(), "CallbackBeforeSendMsg failed", err.Error(), pb.MsgData) + } + if !canSend { + log.NewDebug(pb.OperationID, utils.GetSelfFuncName(), "callback result", canSend, "end rpc and return", pb.MsgData) + return returnMsg(&replay, pb, 201, "callback result stop rpc and return", "", 0) + } switch pb.MsgData.SessionType { case constant.SingleChatType: canSend, err := callbackBeforeSendSingleMsg(pb) From 85dbf4f98f2325dff94226d1800072c8b030b7cd Mon Sep 17 00:00:00 2001 From: wangchuxiao Date: Thu, 3 Mar 2022 15:52:19 +0800 Subject: [PATCH 760/814] alter port --- config/config.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config/config.yaml b/config/config.yaml index f7e966eb8..21435f5bd 100644 --- a/config/config.yaml +++ b/config/config.yaml @@ -193,7 +193,7 @@ iospush: badgeCount: true callback: - callbackUrl : "http://127.0.0.1:8070" + callbackUrl : "http://127.0.0.1:8080" # 开启关闭操作前后回调的配置 callbackbeforeSendSingleMsg: enable: true # 回调是否启用 From 2d55e2edd52191c564f1a16a730e8ca12cb13c67 Mon Sep 17 00:00:00 2001 From: wangchuxiao Date: Thu, 3 Mar 2022 15:59:31 +0800 Subject: [PATCH 761/814] alter cfg --- config/config.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config/config.yaml b/config/config.yaml index 21435f5bd..09b190a46 100644 --- a/config/config.yaml +++ b/config/config.yaml @@ -132,7 +132,7 @@ log: storageLocation: ../logs/ rotationTime: 24 remainRotationCount: 5 #日志数量 - remainLogLevel: 4 #日志级别 6表示全都打印,测试阶段建议设置为6 + remainLogLevel: 6 #日志级别 6表示全都打印,测试阶段建议设置为6 elasticSearchSwitch: false elasticSearchAddr: [ 127.0.0.1:9201 ] elasticSearchUser: "" From e2b5b7016c58d66619a9767856fbd769ad3e33af Mon Sep 17 00:00:00 2001 From: wangchuxiao Date: Thu, 3 Mar 2022 16:08:46 +0800 Subject: [PATCH 762/814] add debug log --- config/config.yaml | 8 ++++---- internal/rpc/msg/callback.go | 3 ++- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/config/config.yaml b/config/config.yaml index 09b190a46..4c31b0c7c 100644 --- a/config/config.yaml +++ b/config/config.yaml @@ -196,18 +196,18 @@ callback: callbackUrl : "http://127.0.0.1:8080" # 开启关闭操作前后回调的配置 callbackbeforeSendSingleMsg: - enable: true # 回调是否启用 + enable: false # 回调是否启用 callbackTimeOut: 5 # 回调超时时间 CallbackFailedContinue: true # 回调超时是否继续执行代码 callbackAfterSendSingleMsg: - enable: true + enable: false callbackTimeOut: 5 callbackBeforeSendGroupMsg: - enable: true + enable: false callbackTimeOut: 5 CallbackFailedContinue: true callbackAfterSendGroupMsg: - enable: true + enable: false callbackTimeOut: 5 callbackWordFilter: enable: true diff --git a/internal/rpc/msg/callback.go b/internal/rpc/msg/callback.go index 6bdc29bb2..5b2dc05d0 100644 --- a/internal/rpc/msg/callback.go +++ b/internal/rpc/msg/callback.go @@ -101,8 +101,9 @@ func callBackWordFilter(msg *pbChat.SendMsgReq) (canSend bool, err error) { defer log.NewDebug(msg.OperationID, utils.GetSelfFuncName(), req, resp) utils.CopyStructFields(&req, msg.MsgData) req.Content = string(msg.MsgData.Content) - if err := http.PostReturn(msg.OperationID, req, resp, config.Config.Callback.CallbackWordFilter.CallbackTimeOut); err != nil { + if err := http.PostReturn(config.Config.Callback.CallbackUrl, req, resp, config.Config.Callback.CallbackWordFilter.CallbackTimeOut); err != nil { if !config.Config.Callback.CallbackWordFilter.CallbackFailedContinue { + log.NewDebug(msg.OperationID, utils.GetSelfFuncName(), "config disable, stop this operation") return false, err } } else { From 6cef26f893652754fe083231a4727a5a0d588dbf Mon Sep 17 00:00:00 2001 From: wangchuxiao Date: Thu, 3 Mar 2022 16:23:59 +0800 Subject: [PATCH 763/814] alter callback fg --- config/config.yaml | 2 +- internal/demo/register/login.go | 2 +- internal/demo/register/set_password.go | 2 +- internal/rpc/msg/callback.go | 10 +++++----- 4 files changed, 8 insertions(+), 8 deletions(-) diff --git a/config/config.yaml b/config/config.yaml index 4c31b0c7c..578113f19 100644 --- a/config/config.yaml +++ b/config/config.yaml @@ -193,7 +193,7 @@ iospush: badgeCount: true callback: - callbackUrl : "http://127.0.0.1:8080" + callbackUrl : "http://127.0.0.1:8080/callback" # 开启关闭操作前后回调的配置 callbackbeforeSendSingleMsg: enable: false # 回调是否启用 diff --git a/internal/demo/register/login.go b/internal/demo/register/login.go index 3a477e12e..e6de926dc 100644 --- a/internal/demo/register/login.go +++ b/internal/demo/register/login.go @@ -53,7 +53,7 @@ func Login(c *gin.Context) { openIMGetUserToken.Secret = config.Config.Secret openIMGetUserToken.UserID = account openIMGetUserTokenResp := api.UserTokenResp{} - bMsg, err := http2.Post(url, openIMGetUserToken, config.Config.MessageCallBack.CallBackTimeOut) + bMsg, err := http2.Post(url, openIMGetUserToken, 2) if err != nil { log.NewError(params.OperationID, "request openIM get user token error", account, "err", err.Error()) c.JSON(http.StatusOK, gin.H{"errCode": constant.GetIMTokenErr, "errMsg": err.Error()}) diff --git a/internal/demo/register/set_password.go b/internal/demo/register/set_password.go index 3fb996a56..7540d9830 100644 --- a/internal/demo/register/set_password.go +++ b/internal/demo/register/set_password.go @@ -57,7 +57,7 @@ func SetPassword(c *gin.Context) { openIMRegisterReq.Nickname = account openIMRegisterReq.Secret = config.Config.Secret openIMRegisterResp := api.UserRegisterResp{} - bMsg, err := http2.Post(url, openIMRegisterReq, config.Config.MessageCallBack.CallBackTimeOut) + bMsg, err := http2.Post(url, openIMRegisterReq, 2) if err != nil { log.NewError(params.OperationID, "request openIM register error", account, "err", err.Error()) c.JSON(http.StatusOK, gin.H{"errCode": constant.RegisterFailed, "errMsg": err.Error()}) diff --git a/internal/rpc/msg/callback.go b/internal/rpc/msg/callback.go index 5b2dc05d0..3ba0dac08 100644 --- a/internal/rpc/msg/callback.go +++ b/internal/rpc/msg/callback.go @@ -11,10 +11,10 @@ import ( ) func callbackBeforeSendSingleMsg(msg *pbChat.SendMsgReq) (canSend bool, err error) { - log.NewDebug(msg.OperationID, utils.GetSelfFuncName(), msg) if !config.Config.Callback.CallbackbeforeSendSingleMsg.Enable { return true, nil } + log.NewDebug(msg.OperationID, utils.GetSelfFuncName(), msg) req := cbApi.CallbackBeforeSendSingleMsgReq{CommonCallbackReq:cbApi.CommonCallbackReq{ }} resp := &cbApi.CallbackBeforeSendSingleMsgResp{CommonCallbackResp:cbApi.CommonCallbackResp{ @@ -36,10 +36,10 @@ func callbackBeforeSendSingleMsg(msg *pbChat.SendMsgReq) (canSend bool, err erro func callbackAfterSendSingleMsg(msg *pbChat.SendMsgReq) error { - log.NewDebug(msg.OperationID, utils.GetSelfFuncName(), msg) if !config.Config.Callback.CallbackAfterSendSingleMsg.Enable { return nil } + log.NewDebug(msg.OperationID, utils.GetSelfFuncName(), msg) req := cbApi.CallbackAfterSendSingleMsgReq{CommonCallbackReq: cbApi.CommonCallbackReq{}} resp := &cbApi.CallbackAfterSendSingleMsgResp{CommonCallbackResp: cbApi.CommonCallbackResp{}} defer log.NewDebug(msg.OperationID, utils.GetSelfFuncName(), req, resp) @@ -53,10 +53,10 @@ func callbackAfterSendSingleMsg(msg *pbChat.SendMsgReq) error { func callbackBeforeSendGroupMsg(msg *pbChat.SendMsgReq) (canSend bool, err error) { - log.NewDebug(msg.OperationID, utils.GetSelfFuncName(), msg) if !config.Config.Callback.CallbackBeforeSendGroupMsg.Enable { return true, nil } + log.NewDebug(msg.OperationID, utils.GetSelfFuncName(), msg) req := cbApi.CallbackBeforeSendSingleMsgReq{CommonCallbackReq: cbApi.CommonCallbackReq{}} resp := &cbApi.CallbackBeforeSendGroupMsgResp{CommonCallbackResp: cbApi.CommonCallbackResp{}} defer log.NewDebug(msg.OperationID, utils.GetSelfFuncName(), req, resp) @@ -75,10 +75,10 @@ func callbackBeforeSendGroupMsg(msg *pbChat.SendMsgReq) (canSend bool, err error } func callbackAfterSendGroupMsg(msg *pbChat.SendMsgReq) error { - log.NewDebug(msg.OperationID, utils.GetSelfFuncName(), msg) if !config.Config.Callback.CallbackAfterSendGroupMsg.Enable { return nil } + log.NewDebug(msg.OperationID, utils.GetSelfFuncName(), msg) req := cbApi.CallbackAfterSendGroupMsgReq{CommonCallbackReq: cbApi.CommonCallbackReq{}} resp := &cbApi.CallbackAfterSendGroupMsgResp{CommonCallbackResp: cbApi.CommonCallbackResp{}} defer log.NewDebug(msg.OperationID, utils.GetSelfFuncName(), req, resp) @@ -92,10 +92,10 @@ func callbackAfterSendGroupMsg(msg *pbChat.SendMsgReq) error { func callBackWordFilter(msg *pbChat.SendMsgReq) (canSend bool, err error) { - log.NewDebug(msg.OperationID, utils.GetSelfFuncName(), msg) if !config.Config.Callback.CallbackWordFilter.Enable || msg.MsgData.ContentType != constant.Text { return true, nil } + log.NewDebug(msg.OperationID, utils.GetSelfFuncName(), msg) req := cbApi.CallbackWordFilterReq{CommonCallbackReq: cbApi.CommonCallbackReq{}} resp := &cbApi.CallbackWordFilterResp{CommonCallbackResp: cbApi.CommonCallbackResp{}} defer log.NewDebug(msg.OperationID, utils.GetSelfFuncName(), req, resp) From 9cec4b0c8ebb45ee8dd8f1c2d3a45422e63e9141 Mon Sep 17 00:00:00 2001 From: wangchuxiao Date: Thu, 3 Mar 2022 16:41:17 +0800 Subject: [PATCH 764/814] alter callback fg --- internal/rpc/msg/callback.go | 25 +++++++++++++------------ pkg/common/constant/constant.go | 3 +++ 2 files changed, 16 insertions(+), 12 deletions(-) diff --git a/internal/rpc/msg/callback.go b/internal/rpc/msg/callback.go index 3ba0dac08..0c42b01b3 100644 --- a/internal/rpc/msg/callback.go +++ b/internal/rpc/msg/callback.go @@ -16,10 +16,11 @@ func callbackBeforeSendSingleMsg(msg *pbChat.SendMsgReq) (canSend bool, err erro } log.NewDebug(msg.OperationID, utils.GetSelfFuncName(), msg) req := cbApi.CallbackBeforeSendSingleMsgReq{CommonCallbackReq:cbApi.CommonCallbackReq{ + CallbackCommand: constant.CallbackBeforeSendSingleMsgCommand, }} resp := &cbApi.CallbackBeforeSendSingleMsgResp{CommonCallbackResp:cbApi.CommonCallbackResp{ }} - defer log.NewDebug(msg.OperationID, utils.GetSelfFuncName(), req, resp) + defer log.NewDebug(msg.OperationID, utils.GetSelfFuncName(), req, *resp) utils.CopyStructFields(req, msg.MsgData) req.Content = string(msg.MsgData.Content) if err := http.PostReturn(config.Config.Callback.CallbackUrl, req, resp, config.Config.Callback.CallbackbeforeSendSingleMsg.CallbackTimeOut); err != nil{ @@ -27,7 +28,7 @@ func callbackBeforeSendSingleMsg(msg *pbChat.SendMsgReq) (canSend bool, err erro return false, err } } else { - if resp.ActionCode == constant.ActionForbidden { + if resp.ActionCode == constant.ActionForbidden && resp.ErrCode == constant.CallbackHandleSuccess { return false, nil } } @@ -40,9 +41,9 @@ func callbackAfterSendSingleMsg(msg *pbChat.SendMsgReq) error { return nil } log.NewDebug(msg.OperationID, utils.GetSelfFuncName(), msg) - req := cbApi.CallbackAfterSendSingleMsgReq{CommonCallbackReq: cbApi.CommonCallbackReq{}} + req := cbApi.CallbackAfterSendSingleMsgReq{CommonCallbackReq: cbApi.CommonCallbackReq{CallbackCommand:constant.CallbackAfterSendSingleMsgCommand}} resp := &cbApi.CallbackAfterSendSingleMsgResp{CommonCallbackResp: cbApi.CommonCallbackResp{}} - defer log.NewDebug(msg.OperationID, utils.GetSelfFuncName(), req, resp) + defer log.NewDebug(msg.OperationID, utils.GetSelfFuncName(), req, *resp) utils.CopyStructFields(req, msg.MsgData) req.Content = string(msg.MsgData.Content) if err := http.PostReturn(config.Config.Callback.CallbackUrl, req, resp, config.Config.Callback.CallbackAfterSendSingleMsg.CallbackTimeOut); err != nil{ @@ -57,9 +58,9 @@ func callbackBeforeSendGroupMsg(msg *pbChat.SendMsgReq) (canSend bool, err error return true, nil } log.NewDebug(msg.OperationID, utils.GetSelfFuncName(), msg) - req := cbApi.CallbackBeforeSendSingleMsgReq{CommonCallbackReq: cbApi.CommonCallbackReq{}} + req := cbApi.CallbackBeforeSendSingleMsgReq{CommonCallbackReq: cbApi.CommonCallbackReq{CallbackCommand:constant.CallbackBeforeSendGroupMsgCommand}} resp := &cbApi.CallbackBeforeSendGroupMsgResp{CommonCallbackResp: cbApi.CommonCallbackResp{}} - defer log.NewDebug(msg.OperationID, utils.GetSelfFuncName(), req, resp) + defer log.NewDebug(msg.OperationID, utils.GetSelfFuncName(), req, *resp) utils.CopyStructFields(req, msg.MsgData) req.Content = string(msg.MsgData.Content) if err := http.PostReturn(config.Config.Callback.CallbackUrl, req, resp, config.Config.Callback.CallbackBeforeSendGroupMsg.CallbackTimeOut); err != nil { @@ -67,7 +68,7 @@ func callbackBeforeSendGroupMsg(msg *pbChat.SendMsgReq) (canSend bool, err error return false, nil } } else { - if resp.ActionCode == constant.ActionForbidden { + if resp.ActionCode == constant.ActionForbidden && resp.ErrCode == constant.CallbackHandleSuccess { return false, nil } } @@ -79,9 +80,9 @@ func callbackAfterSendGroupMsg(msg *pbChat.SendMsgReq) error { return nil } log.NewDebug(msg.OperationID, utils.GetSelfFuncName(), msg) - req := cbApi.CallbackAfterSendGroupMsgReq{CommonCallbackReq: cbApi.CommonCallbackReq{}} + req := cbApi.CallbackAfterSendGroupMsgReq{CommonCallbackReq: cbApi.CommonCallbackReq{CallbackCommand:constant.CallbackAfterSendGroupMsgCommand}} resp := &cbApi.CallbackAfterSendGroupMsgResp{CommonCallbackResp: cbApi.CommonCallbackResp{}} - defer log.NewDebug(msg.OperationID, utils.GetSelfFuncName(), req, resp) + defer log.NewDebug(msg.OperationID, utils.GetSelfFuncName(), req, *resp) utils.CopyStructFields(req, msg.MsgData) req.Content = string(msg.MsgData.Content) if err := http.PostReturn(config.Config.Callback.CallbackUrl, req, resp, config.Config.Callback.CallbackAfterSendGroupMsg.CallbackTimeOut); err != nil { @@ -96,9 +97,9 @@ func callBackWordFilter(msg *pbChat.SendMsgReq) (canSend bool, err error) { return true, nil } log.NewDebug(msg.OperationID, utils.GetSelfFuncName(), msg) - req := cbApi.CallbackWordFilterReq{CommonCallbackReq: cbApi.CommonCallbackReq{}} + req := cbApi.CallbackWordFilterReq{CommonCallbackReq: cbApi.CommonCallbackReq{CallbackCommand:constant.CallbackWordFilterCommand}} resp := &cbApi.CallbackWordFilterResp{CommonCallbackResp: cbApi.CommonCallbackResp{}} - defer log.NewDebug(msg.OperationID, utils.GetSelfFuncName(), req, resp) + defer log.NewDebug(msg.OperationID, utils.GetSelfFuncName(), req, *resp) utils.CopyStructFields(&req, msg.MsgData) req.Content = string(msg.MsgData.Content) if err := http.PostReturn(config.Config.Callback.CallbackUrl, req, resp, config.Config.Callback.CallbackWordFilter.CallbackTimeOut); err != nil { @@ -107,7 +108,7 @@ func callBackWordFilter(msg *pbChat.SendMsgReq) (canSend bool, err error) { return false, err } } else { - if resp.ActionCode == constant.ActionForbidden { + if resp.ActionCode == constant.ActionForbidden && resp.ErrCode == constant.CallbackHandleSuccess { return false, nil } msg.MsgData.Content = []byte(resp.Content) diff --git a/pkg/common/constant/constant.go b/pkg/common/constant/constant.go index 9d0c9724b..fa8646d5e 100644 --- a/pkg/common/constant/constant.go +++ b/pkg/common/constant/constant.go @@ -146,6 +146,9 @@ const ( //actionCode ActionAllow = 0 ActionForbidden = 1 + //callbackHandleCode + CallbackHandleSuccess = 0 + CallbackHandleFailed = 1 ) var ContentType2PushContent = map[int64]string{ From fb4c02ca9bb6f428c0bf9bc2cfc211ce1fecf447 Mon Sep 17 00:00:00 2001 From: wangchuxiao Date: Thu, 3 Mar 2022 16:47:03 +0800 Subject: [PATCH 765/814] alter callback fg --- internal/rpc/msg/callback.go | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/internal/rpc/msg/callback.go b/internal/rpc/msg/callback.go index 0c42b01b3..0c80adeaa 100644 --- a/internal/rpc/msg/callback.go +++ b/internal/rpc/msg/callback.go @@ -99,9 +99,9 @@ func callBackWordFilter(msg *pbChat.SendMsgReq) (canSend bool, err error) { log.NewDebug(msg.OperationID, utils.GetSelfFuncName(), msg) req := cbApi.CallbackWordFilterReq{CommonCallbackReq: cbApi.CommonCallbackReq{CallbackCommand:constant.CallbackWordFilterCommand}} resp := &cbApi.CallbackWordFilterResp{CommonCallbackResp: cbApi.CommonCallbackResp{}} - defer log.NewDebug(msg.OperationID, utils.GetSelfFuncName(), req, *resp) utils.CopyStructFields(&req, msg.MsgData) req.Content = string(msg.MsgData.Content) + defer log.NewDebug(msg.OperationID, utils.GetSelfFuncName(), req, *resp) if err := http.PostReturn(config.Config.Callback.CallbackUrl, req, resp, config.Config.Callback.CallbackWordFilter.CallbackTimeOut); err != nil { if !config.Config.Callback.CallbackWordFilter.CallbackFailedContinue { log.NewDebug(msg.OperationID, utils.GetSelfFuncName(), "config disable, stop this operation") @@ -112,6 +112,7 @@ func callBackWordFilter(msg *pbChat.SendMsgReq) (canSend bool, err error) { return false, nil } msg.MsgData.Content = []byte(resp.Content) + log.NewDebug(msg.OperationID, utils.GetSelfFuncName(), msg.MsgData.Content) } return true, nil } From 3698f1dab88d98307f73d8600583b11b0612e68e Mon Sep 17 00:00:00 2001 From: wangchuxiao Date: Thu, 3 Mar 2022 16:50:06 +0800 Subject: [PATCH 766/814] alter callback fg --- internal/rpc/msg/callback.go | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/internal/rpc/msg/callback.go b/internal/rpc/msg/callback.go index 0c80adeaa..51478fee6 100644 --- a/internal/rpc/msg/callback.go +++ b/internal/rpc/msg/callback.go @@ -20,9 +20,9 @@ func callbackBeforeSendSingleMsg(msg *pbChat.SendMsgReq) (canSend bool, err erro }} resp := &cbApi.CallbackBeforeSendSingleMsgResp{CommonCallbackResp:cbApi.CommonCallbackResp{ }} - defer log.NewDebug(msg.OperationID, utils.GetSelfFuncName(), req, *resp) utils.CopyStructFields(req, msg.MsgData) req.Content = string(msg.MsgData.Content) + defer log.NewDebug(msg.OperationID, utils.GetSelfFuncName(), req, *resp) if err := http.PostReturn(config.Config.Callback.CallbackUrl, req, resp, config.Config.Callback.CallbackbeforeSendSingleMsg.CallbackTimeOut); err != nil{ if !config.Config.Callback.CallbackbeforeSendSingleMsg.CallbackFailedContinue { return false, err @@ -43,9 +43,9 @@ func callbackAfterSendSingleMsg(msg *pbChat.SendMsgReq) error { log.NewDebug(msg.OperationID, utils.GetSelfFuncName(), msg) req := cbApi.CallbackAfterSendSingleMsgReq{CommonCallbackReq: cbApi.CommonCallbackReq{CallbackCommand:constant.CallbackAfterSendSingleMsgCommand}} resp := &cbApi.CallbackAfterSendSingleMsgResp{CommonCallbackResp: cbApi.CommonCallbackResp{}} - defer log.NewDebug(msg.OperationID, utils.GetSelfFuncName(), req, *resp) utils.CopyStructFields(req, msg.MsgData) req.Content = string(msg.MsgData.Content) + defer log.NewDebug(msg.OperationID, utils.GetSelfFuncName(), req, *resp) if err := http.PostReturn(config.Config.Callback.CallbackUrl, req, resp, config.Config.Callback.CallbackAfterSendSingleMsg.CallbackTimeOut); err != nil{ return err } @@ -60,9 +60,9 @@ func callbackBeforeSendGroupMsg(msg *pbChat.SendMsgReq) (canSend bool, err error log.NewDebug(msg.OperationID, utils.GetSelfFuncName(), msg) req := cbApi.CallbackBeforeSendSingleMsgReq{CommonCallbackReq: cbApi.CommonCallbackReq{CallbackCommand:constant.CallbackBeforeSendGroupMsgCommand}} resp := &cbApi.CallbackBeforeSendGroupMsgResp{CommonCallbackResp: cbApi.CommonCallbackResp{}} - defer log.NewDebug(msg.OperationID, utils.GetSelfFuncName(), req, *resp) utils.CopyStructFields(req, msg.MsgData) req.Content = string(msg.MsgData.Content) + defer log.NewDebug(msg.OperationID, utils.GetSelfFuncName(), req, *resp) if err := http.PostReturn(config.Config.Callback.CallbackUrl, req, resp, config.Config.Callback.CallbackBeforeSendGroupMsg.CallbackTimeOut); err != nil { if !config.Config.Callback.CallbackBeforeSendGroupMsg.CallbackFailedContinue { return false, nil @@ -82,9 +82,9 @@ func callbackAfterSendGroupMsg(msg *pbChat.SendMsgReq) error { log.NewDebug(msg.OperationID, utils.GetSelfFuncName(), msg) req := cbApi.CallbackAfterSendGroupMsgReq{CommonCallbackReq: cbApi.CommonCallbackReq{CallbackCommand:constant.CallbackAfterSendGroupMsgCommand}} resp := &cbApi.CallbackAfterSendGroupMsgResp{CommonCallbackResp: cbApi.CommonCallbackResp{}} - defer log.NewDebug(msg.OperationID, utils.GetSelfFuncName(), req, *resp) utils.CopyStructFields(req, msg.MsgData) req.Content = string(msg.MsgData.Content) + defer log.NewDebug(msg.OperationID, utils.GetSelfFuncName(), req, *resp) if err := http.PostReturn(config.Config.Callback.CallbackUrl, req, resp, config.Config.Callback.CallbackAfterSendGroupMsg.CallbackTimeOut); err != nil { return err } @@ -112,7 +112,7 @@ func callBackWordFilter(msg *pbChat.SendMsgReq) (canSend bool, err error) { return false, nil } msg.MsgData.Content = []byte(resp.Content) - log.NewDebug(msg.OperationID, utils.GetSelfFuncName(), msg.MsgData.Content) + log.NewDebug(msg.OperationID, utils.GetSelfFuncName(), string(msg.MsgData.Content)) } return true, nil } From 2ed3fd3cba58d41bd183df31a1fe161488e80f0a Mon Sep 17 00:00:00 2001 From: wangchuxiao Date: Thu, 3 Mar 2022 17:53:37 +0800 Subject: [PATCH 767/814] alter callback fg --- internal/rpc/msg/callback.go | 36 ++++++++++++++++++++++++++++----- pkg/call_back_struct/common.go | 14 +++++++++---- pkg/call_back_struct/message.go | 24 ++++++++++------------ 3 files changed, 52 insertions(+), 22 deletions(-) diff --git a/internal/rpc/msg/callback.go b/internal/rpc/msg/callback.go index 51478fee6..f50552ad8 100644 --- a/internal/rpc/msg/callback.go +++ b/internal/rpc/msg/callback.go @@ -80,9 +80,24 @@ func callbackAfterSendGroupMsg(msg *pbChat.SendMsgReq) error { return nil } log.NewDebug(msg.OperationID, utils.GetSelfFuncName(), msg) - req := cbApi.CallbackAfterSendGroupMsgReq{CommonCallbackReq: cbApi.CommonCallbackReq{CallbackCommand:constant.CallbackAfterSendGroupMsgCommand}} + req := cbApi.CallbackAfterSendGroupMsgReq{ + CommonCallbackReq: cbApi.CommonCallbackReq{ + CallbackCommand:constant.CallbackAfterSendGroupMsgCommand, + ServerMsgID: msg.MsgData.ServerMsgID, + ClientMsgID: msg.MsgData.ClientMsgID, + OperationID: msg.OperationID, + + }, + GroupMsg: cbApi.GroupMsg{ + Msg: cbApi.Msg{ + SendID: msg.MsgData. + }, + GroupID: msg.MsgData.GroupID, + } + } resp := &cbApi.CallbackAfterSendGroupMsgResp{CommonCallbackResp: cbApi.CommonCallbackResp{}} - utils.CopyStructFields(req, msg.MsgData) + + //utils.CopyStructFields(req, msg.MsgData) req.Content = string(msg.MsgData.Content) defer log.NewDebug(msg.OperationID, utils.GetSelfFuncName(), req, *resp) if err := http.PostReturn(config.Config.Callback.CallbackUrl, req, resp, config.Config.Callback.CallbackAfterSendGroupMsg.CallbackTimeOut); err != nil { @@ -97,10 +112,21 @@ func callBackWordFilter(msg *pbChat.SendMsgReq) (canSend bool, err error) { return true, nil } log.NewDebug(msg.OperationID, utils.GetSelfFuncName(), msg) - req := cbApi.CallbackWordFilterReq{CommonCallbackReq: cbApi.CommonCallbackReq{CallbackCommand:constant.CallbackWordFilterCommand}} + //req := cbApi.CallbackWordFilterReq{ + // CommonCallbackReq: cbApi.CommonCallbackReq{ + // CallbackCommand: constant.CallbackWordFilterCommand, + // ServerMsgID: msg.MsgData.ServerMsgID, + // ClientMsgID: msg.MsgData.ClientMsgID, + // OperationID: msg.OperationID, + // }, + // Content: string(msg.MsgData.Content), + //} + req := cbApi.CallbackWordFilterReq{ + CommonCallbackReq: cbApi.CommonCallbackReq{}, + } + utils.CopyStructFields(req.CommonCallbackReq, msg.MsgData) resp := &cbApi.CallbackWordFilterResp{CommonCallbackResp: cbApi.CommonCallbackResp{}} - utils.CopyStructFields(&req, msg.MsgData) - req.Content = string(msg.MsgData.Content) + //utils.CopyStructFields(&req., msg.MsgData) defer log.NewDebug(msg.OperationID, utils.GetSelfFuncName(), req, *resp) if err := http.PostReturn(config.Config.Callback.CallbackUrl, req, resp, config.Config.Callback.CallbackWordFilter.CallbackTimeOut); err != nil { if !config.Config.Callback.CallbackWordFilter.CallbackFailedContinue { diff --git a/pkg/call_back_struct/common.go b/pkg/call_back_struct/common.go index fa7e4d4d3..5266e0b26 100644 --- a/pkg/call_back_struct/common.go +++ b/pkg/call_back_struct/common.go @@ -1,10 +1,16 @@ package call_back_struct type CommonCallbackReq struct { - CallbackCommand string `json:"callbackCommand"` - ServerMsgID string `json:"serverID"` - ClientID string `json:"clientID"` - OperationID string `json:"operationID"` + CallbackCommand string `json:"callbackCommand"` + ServerMsgID string `json:"serverID"` + ClientMsgID string `json:"clientID"` + OperationID string `json:"operationID"` + SenderPlatformID int32 `json:"senderPlatformID"` + SenderNickname string `json:"senderNickname"` + SessionType int32 `json:"sessionType"` + MsgFrom int32 `json:"MsgFrom"` + ContentType int32 `json:"contentType"` + Status int32 `json:"status"` } type CommonCallbackResp struct { diff --git a/pkg/call_back_struct/message.go b/pkg/call_back_struct/message.go index 97d31a09f..13a67db4a 100644 --- a/pkg/call_back_struct/message.go +++ b/pkg/call_back_struct/message.go @@ -1,54 +1,52 @@ package call_back_struct -type msg struct { +type Msg struct { SendID string `json:"sendID"` - ClientMsgID string `json:"clientMsgID"` - ServerMsgID string `json:"serverMsgId"` CreateTime int64 `json:"createTime"` Content string `json:"content"` } -type singleMsg struct { - msg +type SingleMsg struct { + Msg RecvID string `json:"recvID"` } type CallbackBeforeSendSingleMsgReq struct { CommonCallbackReq - singleMsg + SingleMsg } type CallbackBeforeSendSingleMsgResp struct { CommonCallbackResp - singleMsg + SingleMsg } type CallbackAfterSendSingleMsgReq struct { CommonCallbackReq - singleMsg + SingleMsg } type CallbackAfterSendSingleMsgResp struct { CommonCallbackResp } -type groupMsg struct { - msg +type GroupMsg struct { + Msg GroupID string `json:"groupID"` } type CallbackBeforeSendGroupMsgReq struct { CommonCallbackReq - groupMsg + GroupMsg } type CallbackBeforeSendGroupMsgResp struct { CommonCallbackResp - groupMsg + GroupMsg } type CallbackAfterSendGroupMsgReq struct { - groupMsg + GroupMsg CommonCallbackReq } From 9f80e0a0e6634ab962dad96dce871e8db348e6f6 Mon Sep 17 00:00:00 2001 From: wangchuxiao Date: Thu, 3 Mar 2022 17:54:31 +0800 Subject: [PATCH 768/814] alter callback fg --- internal/rpc/msg/callback.go | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/internal/rpc/msg/callback.go b/internal/rpc/msg/callback.go index f50552ad8..c77400b95 100644 --- a/internal/rpc/msg/callback.go +++ b/internal/rpc/msg/callback.go @@ -88,12 +88,12 @@ func callbackAfterSendGroupMsg(msg *pbChat.SendMsgReq) error { OperationID: msg.OperationID, }, - GroupMsg: cbApi.GroupMsg{ - Msg: cbApi.Msg{ - SendID: msg.MsgData. - }, - GroupID: msg.MsgData.GroupID, - } + //GroupMsg: cbApi.GroupMsg{ + // Msg: cbApi.Msg{ + // SendID: msg.MsgData. + // }, + // GroupID: msg.MsgData.GroupID, + //} } resp := &cbApi.CallbackAfterSendGroupMsgResp{CommonCallbackResp: cbApi.CommonCallbackResp{}} From 4d4520226deb489426a0c80439891b1142235ff4 Mon Sep 17 00:00:00 2001 From: wangchuxiao Date: Thu, 3 Mar 2022 18:49:36 +0800 Subject: [PATCH 769/814] msg callback --- internal/rpc/msg/callback.go | 88 ++++++++++++++++++--------------- pkg/call_back_struct/common.go | 3 ++ pkg/call_back_struct/message.go | 26 ++-------- 3 files changed, 56 insertions(+), 61 deletions(-) diff --git a/internal/rpc/msg/callback.go b/internal/rpc/msg/callback.go index c77400b95..0fce99edc 100644 --- a/internal/rpc/msg/callback.go +++ b/internal/rpc/msg/callback.go @@ -10,18 +10,38 @@ import ( "Open_IM/pkg/utils" ) +func copyCallbackCommonReqStruct(msg *pbChat.SendMsgReq) cbApi.CommonCallbackReq { + return cbApi.CommonCallbackReq{ + SendID: msg.MsgData.SendID, + ServerMsgID: msg.MsgData.ServerMsgID, + ClientMsgID: msg.MsgData.ClientMsgID, + OperationID: msg.OperationID, + SenderPlatformID: msg.MsgData.SenderPlatformID, + SenderNickname: msg.MsgData.SenderNickname, + SessionType: msg.MsgData.SessionType, + MsgFrom: msg.MsgData.MsgFrom, + ContentType: msg.MsgData.ContentType, + Status: msg.MsgData.Status, + CreateTime: msg.MsgData.CreateTime, + Content: string(msg.MsgData.Content), + } +} + func callbackBeforeSendSingleMsg(msg *pbChat.SendMsgReq) (canSend bool, err error) { if !config.Config.Callback.CallbackbeforeSendSingleMsg.Enable { return true, nil } log.NewDebug(msg.OperationID, utils.GetSelfFuncName(), msg) - req := cbApi.CallbackBeforeSendSingleMsgReq{CommonCallbackReq:cbApi.CommonCallbackReq{ - CallbackCommand: constant.CallbackBeforeSendSingleMsgCommand, - }} - resp := &cbApi.CallbackBeforeSendSingleMsgResp{CommonCallbackResp:cbApi.CommonCallbackResp{ - }} - utils.CopyStructFields(req, msg.MsgData) - req.Content = string(msg.MsgData.Content) + commonCallbackReq := copyCallbackCommonReqStruct(msg) + commonCallbackReq.CallbackCommand = constant.CallbackBeforeSendSingleMsgCommand + req := cbApi.CallbackBeforeSendSingleMsgReq{ + CommonCallbackReq: commonCallbackReq, + RecvID: msg.MsgData.RecvID, + } + resp := &cbApi.CallbackBeforeSendSingleMsgResp{ + CommonCallbackResp: cbApi.CommonCallbackResp{}, + } + //utils.CopyStructFields(req, msg.MsgData) defer log.NewDebug(msg.OperationID, utils.GetSelfFuncName(), req, *resp) if err := http.PostReturn(config.Config.Callback.CallbackUrl, req, resp, config.Config.Callback.CallbackbeforeSendSingleMsg.CallbackTimeOut); err != nil{ if !config.Config.Callback.CallbackbeforeSendSingleMsg.CallbackFailedContinue { @@ -41,10 +61,14 @@ func callbackAfterSendSingleMsg(msg *pbChat.SendMsgReq) error { return nil } log.NewDebug(msg.OperationID, utils.GetSelfFuncName(), msg) - req := cbApi.CallbackAfterSendSingleMsgReq{CommonCallbackReq: cbApi.CommonCallbackReq{CallbackCommand:constant.CallbackAfterSendSingleMsgCommand}} + commonCallbackReq := copyCallbackCommonReqStruct(msg) + commonCallbackReq.CallbackCommand = constant.CallbackAfterSendSingleMsgCommand + req := cbApi.CallbackAfterSendSingleMsgReq{ + CommonCallbackReq: commonCallbackReq, + RecvID: msg.MsgData.RecvID, + } resp := &cbApi.CallbackAfterSendSingleMsgResp{CommonCallbackResp: cbApi.CommonCallbackResp{}} - utils.CopyStructFields(req, msg.MsgData) - req.Content = string(msg.MsgData.Content) + //utils.CopyStructFields(req, msg.MsgData) defer log.NewDebug(msg.OperationID, utils.GetSelfFuncName(), req, *resp) if err := http.PostReturn(config.Config.Callback.CallbackUrl, req, resp, config.Config.Callback.CallbackAfterSendSingleMsg.CallbackTimeOut); err != nil{ return err @@ -58,10 +82,14 @@ func callbackBeforeSendGroupMsg(msg *pbChat.SendMsgReq) (canSend bool, err error return true, nil } log.NewDebug(msg.OperationID, utils.GetSelfFuncName(), msg) - req := cbApi.CallbackBeforeSendSingleMsgReq{CommonCallbackReq: cbApi.CommonCallbackReq{CallbackCommand:constant.CallbackBeforeSendGroupMsgCommand}} + commonCallbackReq := copyCallbackCommonReqStruct(msg) + commonCallbackReq.CallbackCommand = constant.CallbackBeforeSendGroupMsgCommand + req := cbApi.CallbackBeforeSendSingleMsgReq{ + CommonCallbackReq: commonCallbackReq, + RecvID: msg.MsgData.RecvID, + } resp := &cbApi.CallbackBeforeSendGroupMsgResp{CommonCallbackResp: cbApi.CommonCallbackResp{}} - utils.CopyStructFields(req, msg.MsgData) - req.Content = string(msg.MsgData.Content) + //utils.CopyStructFields(req, msg.MsgData) defer log.NewDebug(msg.OperationID, utils.GetSelfFuncName(), req, *resp) if err := http.PostReturn(config.Config.Callback.CallbackUrl, req, resp, config.Config.Callback.CallbackBeforeSendGroupMsg.CallbackTimeOut); err != nil { if !config.Config.Callback.CallbackBeforeSendGroupMsg.CallbackFailedContinue { @@ -80,25 +108,15 @@ func callbackAfterSendGroupMsg(msg *pbChat.SendMsgReq) error { return nil } log.NewDebug(msg.OperationID, utils.GetSelfFuncName(), msg) - req := cbApi.CallbackAfterSendGroupMsgReq{ - CommonCallbackReq: cbApi.CommonCallbackReq{ - CallbackCommand:constant.CallbackAfterSendGroupMsgCommand, - ServerMsgID: msg.MsgData.ServerMsgID, - ClientMsgID: msg.MsgData.ClientMsgID, - OperationID: msg.OperationID, - - }, - //GroupMsg: cbApi.GroupMsg{ - // Msg: cbApi.Msg{ - // SendID: msg.MsgData. - // }, - // GroupID: msg.MsgData.GroupID, - //} + commonCallbackReq := copyCallbackCommonReqStruct(msg) + commonCallbackReq.CallbackCommand = constant.CallbackBeforeSendGroupMsgCommand + req := cbApi.CallbackBeforeSendSingleMsgReq{ + CommonCallbackReq: commonCallbackReq, + RecvID: msg.MsgData.RecvID, } resp := &cbApi.CallbackAfterSendGroupMsgResp{CommonCallbackResp: cbApi.CommonCallbackResp{}} //utils.CopyStructFields(req, msg.MsgData) - req.Content = string(msg.MsgData.Content) defer log.NewDebug(msg.OperationID, utils.GetSelfFuncName(), req, *resp) if err := http.PostReturn(config.Config.Callback.CallbackUrl, req, resp, config.Config.Callback.CallbackAfterSendGroupMsg.CallbackTimeOut); err != nil { return err @@ -112,19 +130,11 @@ func callBackWordFilter(msg *pbChat.SendMsgReq) (canSend bool, err error) { return true, nil } log.NewDebug(msg.OperationID, utils.GetSelfFuncName(), msg) - //req := cbApi.CallbackWordFilterReq{ - // CommonCallbackReq: cbApi.CommonCallbackReq{ - // CallbackCommand: constant.CallbackWordFilterCommand, - // ServerMsgID: msg.MsgData.ServerMsgID, - // ClientMsgID: msg.MsgData.ClientMsgID, - // OperationID: msg.OperationID, - // }, - // Content: string(msg.MsgData.Content), - //} + commonCallbackReq := copyCallbackCommonReqStruct(msg) + commonCallbackReq.CallbackCommand = constant.CallbackWordFilterCommand req := cbApi.CallbackWordFilterReq{ - CommonCallbackReq: cbApi.CommonCallbackReq{}, + CommonCallbackReq: commonCallbackReq, } - utils.CopyStructFields(req.CommonCallbackReq, msg.MsgData) resp := &cbApi.CallbackWordFilterResp{CommonCallbackResp: cbApi.CommonCallbackResp{}} //utils.CopyStructFields(&req., msg.MsgData) defer log.NewDebug(msg.OperationID, utils.GetSelfFuncName(), req, *resp) diff --git a/pkg/call_back_struct/common.go b/pkg/call_back_struct/common.go index 5266e0b26..5e33889fe 100644 --- a/pkg/call_back_struct/common.go +++ b/pkg/call_back_struct/common.go @@ -1,6 +1,7 @@ package call_back_struct type CommonCallbackReq struct { + SendID string `json:"sendID"` CallbackCommand string `json:"callbackCommand"` ServerMsgID string `json:"serverID"` ClientMsgID string `json:"clientID"` @@ -11,6 +12,8 @@ type CommonCallbackReq struct { MsgFrom int32 `json:"MsgFrom"` ContentType int32 `json:"contentType"` Status int32 `json:"status"` + CreateTime int64 `json:"createTime"` + Content string `json:"content"` } type CommonCallbackResp struct { diff --git a/pkg/call_back_struct/message.go b/pkg/call_back_struct/message.go index 13a67db4a..31c215ea2 100644 --- a/pkg/call_back_struct/message.go +++ b/pkg/call_back_struct/message.go @@ -1,53 +1,36 @@ package call_back_struct -type Msg struct { - SendID string `json:"sendID"` - CreateTime int64 `json:"createTime"` - Content string `json:"content"` -} - -type SingleMsg struct { - Msg - RecvID string `json:"recvID"` -} type CallbackBeforeSendSingleMsgReq struct { CommonCallbackReq - SingleMsg + RecvID string `json:"recvID"` } type CallbackBeforeSendSingleMsgResp struct { CommonCallbackResp - SingleMsg } type CallbackAfterSendSingleMsgReq struct { CommonCallbackReq - SingleMsg + RecvID string `json:"recvID"` } type CallbackAfterSendSingleMsgResp struct { CommonCallbackResp } -type GroupMsg struct { - Msg - GroupID string `json:"groupID"` -} - type CallbackBeforeSendGroupMsgReq struct { CommonCallbackReq - GroupMsg + GroupID string `json:"groupID"` } type CallbackBeforeSendGroupMsgResp struct { CommonCallbackResp - GroupMsg } type CallbackAfterSendGroupMsgReq struct { - GroupMsg CommonCallbackReq + GroupID string `json:"groupID"` } type CallbackAfterSendGroupMsgResp struct { @@ -56,7 +39,6 @@ type CallbackAfterSendGroupMsgResp struct { type CallbackWordFilterReq struct { CommonCallbackReq - Content string `json:"content"` } type CallbackWordFilterResp struct { From 7deffeffd8e00726af9614b16b814dc713c08d54 Mon Sep 17 00:00:00 2001 From: wangchuxiao Date: Thu, 3 Mar 2022 19:06:00 +0800 Subject: [PATCH 770/814] msg callback --- config/config.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config/config.yaml b/config/config.yaml index 578113f19..0259c23be 100644 --- a/config/config.yaml +++ b/config/config.yaml @@ -212,7 +212,7 @@ callback: callbackWordFilter: enable: true callbackTimeOut: 5 - CallbackFailedContinue: true + CallbackFailedContinue: false notification: From 02510528d125f93f0854d44abcd68cc99713d870 Mon Sep 17 00:00:00 2001 From: wangchuxiao Date: Thu, 3 Mar 2022 19:09:59 +0800 Subject: [PATCH 771/814] msg callback --- config/config.yaml | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/config/config.yaml b/config/config.yaml index 0259c23be..6e00a21f2 100644 --- a/config/config.yaml +++ b/config/config.yaml @@ -196,18 +196,18 @@ callback: callbackUrl : "http://127.0.0.1:8080/callback" # 开启关闭操作前后回调的配置 callbackbeforeSendSingleMsg: - enable: false # 回调是否启用 + enable: true # 回调是否启用 callbackTimeOut: 5 # 回调超时时间 CallbackFailedContinue: true # 回调超时是否继续执行代码 callbackAfterSendSingleMsg: - enable: false + enable: true callbackTimeOut: 5 callbackBeforeSendGroupMsg: - enable: false + enable: true callbackTimeOut: 5 CallbackFailedContinue: true callbackAfterSendGroupMsg: - enable: false + enable: true callbackTimeOut: 5 callbackWordFilter: enable: true From 88b8a5323acb33989817c0014b7e3ad47ff87013 Mon Sep 17 00:00:00 2001 From: wangchuxiao Date: Thu, 3 Mar 2022 19:23:16 +0800 Subject: [PATCH 772/814] msg callback --- config/config.yaml | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/config/config.yaml b/config/config.yaml index 6e00a21f2..04d89d8fe 100644 --- a/config/config.yaml +++ b/config/config.yaml @@ -197,22 +197,22 @@ callback: # 开启关闭操作前后回调的配置 callbackbeforeSendSingleMsg: enable: true # 回调是否启用 - callbackTimeOut: 5 # 回调超时时间 + callbackTimeOut: 2 # 回调超时时间 CallbackFailedContinue: true # 回调超时是否继续执行代码 callbackAfterSendSingleMsg: enable: true - callbackTimeOut: 5 + callbackTimeOut: 2 callbackBeforeSendGroupMsg: enable: true - callbackTimeOut: 5 + callbackTimeOut: 2 CallbackFailedContinue: true callbackAfterSendGroupMsg: enable: true - callbackTimeOut: 5 + callbackTimeOut: 2 callbackWordFilter: enable: true - callbackTimeOut: 5 - CallbackFailedContinue: false + callbackTimeOut: 2 + CallbackFailedContinue: true notification: From 3805db1263caab0ee57695217310d6e1f934bc16 Mon Sep 17 00:00:00 2001 From: wangchuxiao Date: Thu, 3 Mar 2022 19:39:49 +0800 Subject: [PATCH 773/814] msg callback --- internal/rpc/msg/callback.go | 13 +++++++++---- internal/rpc/msg/send_msg.go | 2 +- pkg/common/config/config.go | 2 +- 3 files changed, 11 insertions(+), 6 deletions(-) diff --git a/internal/rpc/msg/callback.go b/internal/rpc/msg/callback.go index 0fce99edc..54ff93786 100644 --- a/internal/rpc/msg/callback.go +++ b/internal/rpc/msg/callback.go @@ -28,7 +28,8 @@ func copyCallbackCommonReqStruct(msg *pbChat.SendMsgReq) cbApi.CommonCallbackReq } func callbackBeforeSendSingleMsg(msg *pbChat.SendMsgReq) (canSend bool, err error) { - if !config.Config.Callback.CallbackbeforeSendSingleMsg.Enable { + log.NewDebug(msg.OperationID, config.Config.Callback.CallbackBeforeSendSingleMsg.Enable) + if !config.Config.Callback.CallbackBeforeSendSingleMsg.Enable { return true, nil } log.NewDebug(msg.OperationID, utils.GetSelfFuncName(), msg) @@ -43,8 +44,8 @@ func callbackBeforeSendSingleMsg(msg *pbChat.SendMsgReq) (canSend bool, err erro } //utils.CopyStructFields(req, msg.MsgData) defer log.NewDebug(msg.OperationID, utils.GetSelfFuncName(), req, *resp) - if err := http.PostReturn(config.Config.Callback.CallbackUrl, req, resp, config.Config.Callback.CallbackbeforeSendSingleMsg.CallbackTimeOut); err != nil{ - if !config.Config.Callback.CallbackbeforeSendSingleMsg.CallbackFailedContinue { + if err := http.PostReturn(config.Config.Callback.CallbackUrl, req, resp, config.Config.Callback.CallbackBeforeSendSingleMsg.CallbackTimeOut); err != nil{ + if !config.Config.Callback.CallbackBeforeSendSingleMsg.CallbackFailedContinue { return false, err } } else { @@ -57,6 +58,7 @@ func callbackBeforeSendSingleMsg(msg *pbChat.SendMsgReq) (canSend bool, err erro func callbackAfterSendSingleMsg(msg *pbChat.SendMsgReq) error { + log.NewDebug(msg.OperationID, config.Config.Callback.CallbackAfterSendSingleMsg.Enable) if !config.Config.Callback.CallbackAfterSendSingleMsg.Enable { return nil } @@ -78,6 +80,7 @@ func callbackAfterSendSingleMsg(msg *pbChat.SendMsgReq) error { func callbackBeforeSendGroupMsg(msg *pbChat.SendMsgReq) (canSend bool, err error) { + log.NewDebug(msg.OperationID, config.Config.Callback.CallbackBeforeSendGroupMsg.Enable) if !config.Config.Callback.CallbackBeforeSendGroupMsg.Enable { return true, nil } @@ -104,6 +107,7 @@ func callbackBeforeSendGroupMsg(msg *pbChat.SendMsgReq) (canSend bool, err error } func callbackAfterSendGroupMsg(msg *pbChat.SendMsgReq) error { + log.NewDebug(msg.OperationID, config.Config.Callback.CallbackAfterSendGroupMsg.Enable) if !config.Config.Callback.CallbackAfterSendGroupMsg.Enable { return nil } @@ -125,7 +129,8 @@ func callbackAfterSendGroupMsg(msg *pbChat.SendMsgReq) error { } -func callBackWordFilter(msg *pbChat.SendMsgReq) (canSend bool, err error) { +func callbackWordFilter(msg *pbChat.SendMsgReq) (canSend bool, err error) { + log.NewDebug(msg.OperationID, config.Config.Callback.CallbackWordFilter.Enable) if !config.Config.Callback.CallbackWordFilter.Enable || msg.MsgData.ContentType != constant.Text { return true, nil } diff --git a/internal/rpc/msg/send_msg.go b/internal/rpc/msg/send_msg.go index 86a28d480..16720575a 100644 --- a/internal/rpc/msg/send_msg.go +++ b/internal/rpc/msg/send_msg.go @@ -126,7 +126,7 @@ func (rpc *rpcChat) SendMsg(_ context.Context, pb *pbChat.SendMsgReq) (*pbChat.S } // callback - canSend, err := callBackWordFilter(pb) + canSend, err := callbackWordFilter(pb) if err != nil { log.NewError(pb.OperationID, utils.GetSelfFuncName(), "CallbackBeforeSendMsg failed", err.Error(), pb.MsgData) } diff --git a/pkg/common/config/config.go b/pkg/common/config/config.go index 4782276e7..c249b00ad 100644 --- a/pkg/common/config/config.go +++ b/pkg/common/config/config.go @@ -183,7 +183,7 @@ type config struct { Callback struct { CallbackUrl string `yaml:"callbackUrl"` - CallbackbeforeSendSingleMsg callBackConfig `yaml:"callbackSendGroupMsg"` + CallbackBeforeSendSingleMsg callBackConfig `yaml:"callbackSendGroupMsg"` CallbackAfterSendSingleMsg callBackConfig `yaml:"callbackSendSingleMsg"` CallbackBeforeSendGroupMsg callBackConfig `yaml:"CallbackBeforeSendGroupMsg"` CallbackAfterSendGroupMsg callBackConfig `yaml:"callbackAfterSendGroupMsg"` From a5712e1216bfbc42df25ec7f24efe1373613afb8 Mon Sep 17 00:00:00 2001 From: wangchuxiao Date: Thu, 3 Mar 2022 19:44:34 +0800 Subject: [PATCH 774/814] msg callback --- pkg/common/config/config.go | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkg/common/config/config.go b/pkg/common/config/config.go index c249b00ad..282440672 100644 --- a/pkg/common/config/config.go +++ b/pkg/common/config/config.go @@ -183,9 +183,9 @@ type config struct { Callback struct { CallbackUrl string `yaml:"callbackUrl"` - CallbackBeforeSendSingleMsg callBackConfig `yaml:"callbackSendGroupMsg"` - CallbackAfterSendSingleMsg callBackConfig `yaml:"callbackSendSingleMsg"` - CallbackBeforeSendGroupMsg callBackConfig `yaml:"CallbackBeforeSendGroupMsg"` + CallbackBeforeSendSingleMsg callBackConfig `yaml:"callbackbeforeSendSingleMsg"` + CallbackAfterSendSingleMsg callBackConfig `yaml:"callbackAfterSendSingleMsg"` + CallbackBeforeSendGroupMsg callBackConfig `yaml:"callbackBeforeSendGroupMsg"` CallbackAfterSendGroupMsg callBackConfig `yaml:"callbackAfterSendGroupMsg"` CallbackWordFilter callBackConfig `yaml:"callbackWordFilter"` } `yaml:"callback"` From 399d0b94d5f2869fdf52681f18615523e5fb3e34 Mon Sep 17 00:00:00 2001 From: wangchuxiao Date: Thu, 3 Mar 2022 19:47:30 +0800 Subject: [PATCH 775/814] msg callback --- config/config.yaml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/config/config.yaml b/config/config.yaml index 04d89d8fe..4d3990194 100644 --- a/config/config.yaml +++ b/config/config.yaml @@ -196,21 +196,21 @@ callback: callbackUrl : "http://127.0.0.1:8080/callback" # 开启关闭操作前后回调的配置 callbackbeforeSendSingleMsg: - enable: true # 回调是否启用 + enable: false # 回调是否启用 callbackTimeOut: 2 # 回调超时时间 CallbackFailedContinue: true # 回调超时是否继续执行代码 callbackAfterSendSingleMsg: - enable: true + enable: false callbackTimeOut: 2 callbackBeforeSendGroupMsg: - enable: true + enable: false callbackTimeOut: 2 CallbackFailedContinue: true callbackAfterSendGroupMsg: - enable: true + enable: false callbackTimeOut: 2 callbackWordFilter: - enable: true + enable: false callbackTimeOut: 2 CallbackFailedContinue: true From bcae7720e104335e6c11ad8f4f4ab6c99bdf460a Mon Sep 17 00:00:00 2001 From: wangchuxiao Date: Fri, 4 Mar 2022 14:27:54 +0800 Subject: [PATCH 776/814] add callback --- cmd/open_im_api/main.go | 2 +- config/config.yaml | 14 +++++++------- internal/api/third/minio_init.go | 2 +- internal/rpc/msg/callback.go | 10 ++++++---- internal/rpc/msg/send_msg.go | 25 ++++++++++++++----------- pkg/call_back_struct/common.go | 6 +++--- pkg/common/constant/constant.go | 10 +++++----- 7 files changed, 37 insertions(+), 32 deletions(-) diff --git a/cmd/open_im_api/main.go b/cmd/open_im_api/main.go index d5c01986b..551a37a0e 100644 --- a/cmd/open_im_api/main.go +++ b/cmd/open_im_api/main.go @@ -102,7 +102,7 @@ func main() { conversationGroup.POST("/get_receive_message_opt", conversation.GetReceiveMessageOpt) //1 conversationGroup.POST("/get_all_conversation_message_opt", conversation.GetAllConversationMessageOpt) //1 } - + apiThird.MinioInit() log.NewPrivateLog("api") ginPort := flag.Int("port", 10000, "get ginServerPort from cmd,default 10000 as port") flag.Parse() diff --git a/config/config.yaml b/config/config.yaml index 4d3990194..7d326758d 100644 --- a/config/config.yaml +++ b/config/config.yaml @@ -91,8 +91,8 @@ credential: #腾讯cos,发送图片、视频、文件时需要,请自行申 bucket: openim location: us-east-1 endpoint: http://127.0.0.1:9000 - accessKeyID: minioadmin - secretAccessKey: minioadmin + accessKeyID: user12345 + secretAccessKey: key12345 rpcport: #rpc服务端口 默认即可 @@ -196,21 +196,21 @@ callback: callbackUrl : "http://127.0.0.1:8080/callback" # 开启关闭操作前后回调的配置 callbackbeforeSendSingleMsg: - enable: false # 回调是否启用 + enable: true # 回调是否启用 callbackTimeOut: 2 # 回调超时时间 CallbackFailedContinue: true # 回调超时是否继续执行代码 callbackAfterSendSingleMsg: - enable: false + enable: true callbackTimeOut: 2 callbackBeforeSendGroupMsg: - enable: false + enable: true callbackTimeOut: 2 CallbackFailedContinue: true callbackAfterSendGroupMsg: - enable: false + enable: true callbackTimeOut: 2 callbackWordFilter: - enable: false + enable: true callbackTimeOut: 2 CallbackFailedContinue: true diff --git a/internal/api/third/minio_init.go b/internal/api/third/minio_init.go index 8dae26d9f..29338ee77 100644 --- a/internal/api/third/minio_init.go +++ b/internal/api/third/minio_init.go @@ -10,7 +10,7 @@ import ( url2 "net/url" ) -func init() { +func MinioInit() { minioUrl, err := url2.Parse(config.Config.Credential.Minio.Endpoint) if err != nil { log.NewError("", utils.GetSelfFuncName(), "parse failed, please check config/config.yaml", err.Error()) diff --git a/internal/rpc/msg/callback.go b/internal/rpc/msg/callback.go index 54ff93786..c560fff95 100644 --- a/internal/rpc/msg/callback.go +++ b/internal/rpc/msg/callback.go @@ -113,10 +113,10 @@ func callbackAfterSendGroupMsg(msg *pbChat.SendMsgReq) error { } log.NewDebug(msg.OperationID, utils.GetSelfFuncName(), msg) commonCallbackReq := copyCallbackCommonReqStruct(msg) - commonCallbackReq.CallbackCommand = constant.CallbackBeforeSendGroupMsgCommand - req := cbApi.CallbackBeforeSendSingleMsgReq{ + commonCallbackReq.CallbackCommand = constant.CallbackAfterSendGroupMsgCommand + req := cbApi.CallbackAfterSendGroupMsgReq{ CommonCallbackReq: commonCallbackReq, - RecvID: msg.MsgData.RecvID, + GroupID: msg.MsgData.GroupID, } resp := &cbApi.CallbackAfterSendGroupMsgResp{CommonCallbackResp: cbApi.CommonCallbackResp{}} @@ -152,7 +152,9 @@ func callbackWordFilter(msg *pbChat.SendMsgReq) (canSend bool, err error) { if resp.ActionCode == constant.ActionForbidden && resp.ErrCode == constant.CallbackHandleSuccess { return false, nil } - msg.MsgData.Content = []byte(resp.Content) + if resp.ErrCode == constant.CallbackHandleSuccess { + msg.MsgData.Content = []byte(resp.Content) + } log.NewDebug(msg.OperationID, utils.GetSelfFuncName(), string(msg.MsgData.Content)) } return true, nil diff --git a/internal/rpc/msg/send_msg.go b/internal/rpc/msg/send_msg.go index 16720575a..739a28171 100644 --- a/internal/rpc/msg/send_msg.go +++ b/internal/rpc/msg/send_msg.go @@ -128,21 +128,22 @@ func (rpc *rpcChat) SendMsg(_ context.Context, pb *pbChat.SendMsgReq) (*pbChat.S // callback canSend, err := callbackWordFilter(pb) if err != nil { - log.NewError(pb.OperationID, utils.GetSelfFuncName(), "CallbackBeforeSendMsg failed", err.Error(), pb.MsgData) + log.NewError(pb.OperationID, utils.GetSelfFuncName(), "callbackWordFilter failed", err.Error(), pb.MsgData) } if !canSend { - log.NewDebug(pb.OperationID, utils.GetSelfFuncName(), "callback result", canSend, "end rpc and return", pb.MsgData) - return returnMsg(&replay, pb, 201, "callback result stop rpc and return", "", 0) + log.NewDebug(pb.OperationID, utils.GetSelfFuncName(), "callbackWordFilter result", canSend, "end rpc and return", pb.MsgData) + return returnMsg(&replay, pb, 201, "callbackWordFilter result stop rpc and return", "", 0) } switch pb.MsgData.SessionType { case constant.SingleChatType: + // callback canSend, err := callbackBeforeSendSingleMsg(pb) if err != nil { - log.NewError(pb.OperationID, utils.GetSelfFuncName(), "CallBackAfterSendMsg failed", err.Error()) + log.NewError(pb.OperationID, utils.GetSelfFuncName(), "callbackBeforeSendSingleMsg failed", err.Error()) } if !canSend { - log.NewDebug(pb.OperationID, utils.GetSelfFuncName(), "callback result", canSend, "end rpc and return") - return returnMsg(&replay, pb, 201, "callback result stop rpc and return", "", 0) + log.NewDebug(pb.OperationID, utils.GetSelfFuncName(), "callbackBeforeSendSingleMsg result", canSend, "end rpc and return") + return returnMsg(&replay, pb, 201, "callbackBeforeSendSingleMsg result stop rpc and return", "", 0) } isSend := modifyMessageByUserMessageReceiveOpt(pb.MsgData.RecvID, pb.MsgData.SendID, constant.SingleChatType, pb) if isSend { @@ -161,18 +162,20 @@ func (rpc *rpcChat) SendMsg(_ context.Context, pb *pbChat.SendMsgReq) (*pbChat.S return returnMsg(&replay, pb, 201, "kafka send msg err", "", 0) } } + // callback if err := callbackAfterSendSingleMsg(pb); err != nil { - log.NewError(pb.OperationID, utils.GetSelfFuncName(), "CallBackAfterSendMsg failed", err.Error()) + log.NewError(pb.OperationID, utils.GetSelfFuncName(), "callbackAfterSendSingleMsg failed", err.Error()) } return returnMsg(&replay, pb, 0, "", msgToMQ.MsgData.ServerMsgID, msgToMQ.MsgData.SendTime) case constant.GroupChatType: + // callback canSend, err := callbackBeforeSendGroupMsg(pb) if err != nil { - log.NewError(pb.OperationID, utils.GetSelfFuncName(), "CallBackAfterSendMsg failed", err.Error()) + log.NewError(pb.OperationID, utils.GetSelfFuncName(), "callbackBeforeSendGroupMsg failed", err.Error()) } if !canSend { - log.NewDebug(pb.OperationID, utils.GetSelfFuncName(), "callback result", canSend, "end rpc and return") - return returnMsg(&replay, pb, 201, "callback result stop rpc and return", "", 0) + log.NewDebug(pb.OperationID, utils.GetSelfFuncName(), "callbackBeforeSendGroupMsg result", canSend, "end rpc and return") + return returnMsg(&replay, pb, 201, "callbackBeforeSendGroupMsg result stop rpc and return", "", 0) } etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImGroupName) client := pbGroup.NewGroupClient(etcdConn) @@ -237,8 +240,8 @@ func (rpc *rpcChat) SendMsg(_ context.Context, pb *pbChat.SendMsgReq) (*pbChat.S return returnMsg(&replay, pb, 201, "kafka send msg err", "", 0) } } - } + // callback if err := callbackAfterSendGroupMsg(pb); err != nil { log.NewError(pb.OperationID, utils.GetSelfFuncName(), "CallBackAfterSendMsg failed", err.Error()) } diff --git a/pkg/call_back_struct/common.go b/pkg/call_back_struct/common.go index 5e33889fe..e2bf510f4 100644 --- a/pkg/call_back_struct/common.go +++ b/pkg/call_back_struct/common.go @@ -3,13 +3,13 @@ package call_back_struct type CommonCallbackReq struct { SendID string `json:"sendID"` CallbackCommand string `json:"callbackCommand"` - ServerMsgID string `json:"serverID"` - ClientMsgID string `json:"clientID"` + ServerMsgID string `json:"serverMsgID"` + ClientMsgID string `json:"clientMsgID"` OperationID string `json:"operationID"` SenderPlatformID int32 `json:"senderPlatformID"` SenderNickname string `json:"senderNickname"` SessionType int32 `json:"sessionType"` - MsgFrom int32 `json:"MsgFrom"` + MsgFrom int32 `json:"msgFrom"` ContentType int32 `json:"contentType"` Status int32 `json:"status"` CreateTime int64 `json:"createTime"` diff --git a/pkg/common/constant/constant.go b/pkg/common/constant/constant.go index fa8646d5e..199a1917a 100644 --- a/pkg/common/constant/constant.go +++ b/pkg/common/constant/constant.go @@ -138,15 +138,15 @@ const ( VerificationCodeForResetSuffix = "_forReset" //callbackCommand - CallbackBeforeSendSingleMsgCommand = "callbackBeforeSendSingleMsg" - CallbackAfterSendSingleMsgCommand = "callbackAfterSendSingleMsg" - CallbackBeforeSendGroupMsgCommand = "callbackBeforeSendGroupMsg" + CallbackBeforeSendSingleMsgCommand = "callbackBeforeSendSingleMsgCommand" + CallbackAfterSendSingleMsgCommand = "callbackAfterSendSingleMsgCommand" + CallbackBeforeSendGroupMsgCommand = "callbackBeforeSendGroupMsgCommand" CallbackAfterSendGroupMsgCommand = "callbackAfterSendGroupMsgCommand" CallbackWordFilterCommand = "callbackWordFilterCommand" - //actionCode + //callback actionCode ActionAllow = 0 ActionForbidden = 1 - //callbackHandleCode + //callback callbackHandleCode CallbackHandleSuccess = 0 CallbackHandleFailed = 1 ) From c108115c830d90584271b4cd61930016e4766ea4 Mon Sep 17 00:00:00 2001 From: wangchuxiao Date: Fri, 4 Mar 2022 15:20:59 +0800 Subject: [PATCH 777/814] add callback --- internal/rpc/msg/callback.go | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/internal/rpc/msg/callback.go b/internal/rpc/msg/callback.go index c560fff95..9dc90eb50 100644 --- a/internal/rpc/msg/callback.go +++ b/internal/rpc/msg/callback.go @@ -53,7 +53,7 @@ func callbackBeforeSendSingleMsg(msg *pbChat.SendMsgReq) (canSend bool, err erro return false, nil } } - return true, nil + return true, err } @@ -87,23 +87,23 @@ func callbackBeforeSendGroupMsg(msg *pbChat.SendMsgReq) (canSend bool, err error log.NewDebug(msg.OperationID, utils.GetSelfFuncName(), msg) commonCallbackReq := copyCallbackCommonReqStruct(msg) commonCallbackReq.CallbackCommand = constant.CallbackBeforeSendGroupMsgCommand - req := cbApi.CallbackBeforeSendSingleMsgReq{ + req := cbApi.CallbackAfterSendGroupMsgReq{ CommonCallbackReq: commonCallbackReq, - RecvID: msg.MsgData.RecvID, + GroupID: msg.MsgData.GroupID, } resp := &cbApi.CallbackBeforeSendGroupMsgResp{CommonCallbackResp: cbApi.CommonCallbackResp{}} //utils.CopyStructFields(req, msg.MsgData) defer log.NewDebug(msg.OperationID, utils.GetSelfFuncName(), req, *resp) if err := http.PostReturn(config.Config.Callback.CallbackUrl, req, resp, config.Config.Callback.CallbackBeforeSendGroupMsg.CallbackTimeOut); err != nil { if !config.Config.Callback.CallbackBeforeSendGroupMsg.CallbackFailedContinue { - return false, nil + return false, err } } else { if resp.ActionCode == constant.ActionForbidden && resp.ErrCode == constant.CallbackHandleSuccess { return false, nil } } - return true, nil + return true, err } func callbackAfterSendGroupMsg(msg *pbChat.SendMsgReq) error { @@ -145,7 +145,7 @@ func callbackWordFilter(msg *pbChat.SendMsgReq) (canSend bool, err error) { defer log.NewDebug(msg.OperationID, utils.GetSelfFuncName(), req, *resp) if err := http.PostReturn(config.Config.Callback.CallbackUrl, req, resp, config.Config.Callback.CallbackWordFilter.CallbackTimeOut); err != nil { if !config.Config.Callback.CallbackWordFilter.CallbackFailedContinue { - log.NewDebug(msg.OperationID, utils.GetSelfFuncName(), "config disable, stop this operation") + log.NewDebug(msg.OperationID, utils.GetSelfFuncName(), "callback failed and config disable, stop this operation") return false, err } } else { @@ -157,7 +157,7 @@ func callbackWordFilter(msg *pbChat.SendMsgReq) (canSend bool, err error) { } log.NewDebug(msg.OperationID, utils.GetSelfFuncName(), string(msg.MsgData.Content)) } - return true, nil + return true, err } From 8dc04667b00e316459cf0c655b433f5831c2594e Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Fri, 4 Mar 2022 16:11:04 +0800 Subject: [PATCH 778/814] test recover --- internal/msg_gateway/gate/ws_server.go | 21 +++-- internal/msg_transfer/logic/init.go | 2 +- internal/push/logic/push_to_client.go | 126 +++++++++++++------------ pkg/statistics/statistics.go | 7 +- 4 files changed, 80 insertions(+), 76 deletions(-) diff --git a/internal/msg_gateway/gate/ws_server.go b/internal/msg_gateway/gate/ws_server.go index ff7e739c8..477d43420 100644 --- a/internal/msg_gateway/gate/ws_server.go +++ b/internal/msg_gateway/gate/ws_server.go @@ -5,6 +5,7 @@ import ( "Open_IM/pkg/common/constant" "Open_IM/pkg/common/db" "Open_IM/pkg/common/log" + "Open_IM/pkg/common/token_verify" "Open_IM/pkg/utils" "bytes" "encoding/gob" @@ -257,16 +258,16 @@ func (ws *WServer) headerCheck(w http.ResponseWriter, r *http.Request) bool { status := http.StatusUnauthorized query := r.URL.Query() if len(query["token"]) != 0 && len(query["sendID"]) != 0 && len(query["platformID"]) != 0 { - //if ok, err := token_verify.VerifyToken(query["token"][0], query["sendID"][0]); !ok { - // e := err.(*constant.ErrInfo) - // log.ErrorByKv("Token verify failed", "", "query", query) - // w.Header().Set("Sec-Websocket-Version", "13") - // http.Error(w, e.ErrMsg, int(e.ErrCode)) - // return false - //} else { - log.InfoByKv("Connection Authentication Success", "", "token", query["token"][0], "userID", query["sendID"][0]) - return true - //} + if ok, err := token_verify.VerifyToken(query["token"][0], query["sendID"][0]); !ok { + e := err.(*constant.ErrInfo) + log.ErrorByKv("Token verify failed", "", "query", query) + w.Header().Set("Sec-Websocket-Version", "13") + http.Error(w, e.ErrMsg, int(e.ErrCode)) + return false + } else { + log.InfoByKv("Connection Authentication Success", "", "token", query["token"][0], "userID", query["sendID"][0]) + return true + } } else { log.ErrorByKv("Args err", "", "query", query) w.Header().Set("Sec-Websocket-Version", "13") diff --git a/internal/msg_transfer/logic/init.go b/internal/msg_transfer/logic/init.go index 7d1cad671..cce434d99 100644 --- a/internal/msg_transfer/logic/init.go +++ b/internal/msg_transfer/logic/init.go @@ -20,6 +20,6 @@ func Init() { } func Run() { //register mysqlConsumerHandler to - //go persistentCH.persistentConsumerGroup.RegisterHandleAndConsumer(&persistentCH) + go persistentCH.persistentConsumerGroup.RegisterHandleAndConsumer(&persistentCH) go historyCH.historyConsumerGroup.RegisterHandleAndConsumer(&historyCH) } diff --git a/internal/push/logic/push_to_client.go b/internal/push/logic/push_to_client.go index 11d090ac5..a5a6397f2 100644 --- a/internal/push/logic/push_to_client.go +++ b/internal/push/logic/push_to_client.go @@ -7,12 +7,16 @@ package logic import ( + push "Open_IM/internal/push/jpush" "Open_IM/pkg/common/config" + "Open_IM/pkg/common/constant" "Open_IM/pkg/common/log" "Open_IM/pkg/grpc-etcdv3/getcdv3" pbPush "Open_IM/pkg/proto/push" pbRelay "Open_IM/pkg/proto/relay" + "Open_IM/pkg/utils" "context" + "encoding/json" "strings" ) @@ -30,7 +34,7 @@ type AtContent struct { func MsgToUser(pushMsg *pbPush.PushMsgReq) { var wsResult []*pbRelay.SingleMsgToUser - //isOfflinePush := utils.GetSwitchFromOptions(pushMsg.MsgData.Options, constant.IsOfflinePush) + isOfflinePush := utils.GetSwitchFromOptions(pushMsg.MsgData.Options, constant.IsOfflinePush) log.Debug("Get msg from msg_transfer And push msg", pushMsg.OperationID, "PushData", pushMsg.String()) grpcCons := getcdv3.GetConn4Unique(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImOnlineMessageRelayName) //Online push message @@ -48,66 +52,66 @@ func MsgToUser(pushMsg *pbPush.PushMsgReq) { } log.InfoByKv("push_result", pushMsg.OperationID, "result", wsResult, "sendData", pushMsg.MsgData) count++ - //if isOfflinePush && pushMsg.PushToUserID != pushMsg.MsgData.SendID { - // for _, v := range wsResult { - // if v.ResultCode == 0 { - // continue - // } - // //supported terminal - // for _, t := range pushTerminal { - // if v.RecvPlatFormID == t { - // //Use offline push messaging - // var UIDList []string - // UIDList = append(UIDList, v.RecvID) - // customContent := OpenIMContent{ - // SessionType: int(pushMsg.MsgData.SessionType), - // From: pushMsg.MsgData.SendID, - // To: pushMsg.MsgData.RecvID, - // Seq: pushMsg.MsgData.Seq, - // } - // bCustomContent, _ := json.Marshal(customContent) - // jsonCustomContent := string(bCustomContent) - // var content string - // if pushMsg.MsgData.OfflinePushInfo != nil { - // content = pushMsg.MsgData.OfflinePushInfo.Title - // - // } else { - // switch pushMsg.MsgData.ContentType { - // case constant.Text: - // content = constant.ContentType2PushContent[constant.Text] - // case constant.Picture: - // content = constant.ContentType2PushContent[constant.Picture] - // case constant.Voice: - // content = constant.ContentType2PushContent[constant.Voice] - // case constant.Video: - // content = constant.ContentType2PushContent[constant.Video] - // case constant.File: - // content = constant.ContentType2PushContent[constant.File] - // case constant.AtText: - // a := AtContent{} - // _ = utils.JsonStringToStruct(string(pushMsg.MsgData.Content), &a) - // if utils.IsContain(v.RecvID, a.AtUserList) { - // content = constant.ContentType2PushContent[constant.AtText] + constant.ContentType2PushContent[constant.Common] - // } else { - // content = constant.ContentType2PushContent[constant.GroupMsg] - // } - // default: - // content = constant.ContentType2PushContent[constant.Common] - // } - // } - // - // pushResult, err := push.JGAccountListPush(UIDList, content, jsonCustomContent, constant.PlatformIDToName(t)) - // if err != nil { - // log.NewError(pushMsg.OperationID, "offline push error", pushMsg.String(), err.Error(), constant.PlatformIDToName(t)) - // } else { - // log.NewDebug(pushMsg.OperationID, "offline push return result is ", string(pushResult), pushMsg.MsgData, constant.PlatformIDToName(t)) - // } - // - // } - // } - // } - // - //} + if isOfflinePush && pushMsg.PushToUserID != pushMsg.MsgData.SendID { + for _, v := range wsResult { + if v.ResultCode == 0 { + continue + } + //supported terminal + for _, t := range pushTerminal { + if v.RecvPlatFormID == t { + //Use offline push messaging + var UIDList []string + UIDList = append(UIDList, v.RecvID) + customContent := OpenIMContent{ + SessionType: int(pushMsg.MsgData.SessionType), + From: pushMsg.MsgData.SendID, + To: pushMsg.MsgData.RecvID, + Seq: pushMsg.MsgData.Seq, + } + bCustomContent, _ := json.Marshal(customContent) + jsonCustomContent := string(bCustomContent) + var content string + if pushMsg.MsgData.OfflinePushInfo != nil { + content = pushMsg.MsgData.OfflinePushInfo.Title + + } else { + switch pushMsg.MsgData.ContentType { + case constant.Text: + content = constant.ContentType2PushContent[constant.Text] + case constant.Picture: + content = constant.ContentType2PushContent[constant.Picture] + case constant.Voice: + content = constant.ContentType2PushContent[constant.Voice] + case constant.Video: + content = constant.ContentType2PushContent[constant.Video] + case constant.File: + content = constant.ContentType2PushContent[constant.File] + case constant.AtText: + a := AtContent{} + _ = utils.JsonStringToStruct(string(pushMsg.MsgData.Content), &a) + if utils.IsContain(v.RecvID, a.AtUserList) { + content = constant.ContentType2PushContent[constant.AtText] + constant.ContentType2PushContent[constant.Common] + } else { + content = constant.ContentType2PushContent[constant.GroupMsg] + } + default: + content = constant.ContentType2PushContent[constant.Common] + } + } + + pushResult, err := push.JGAccountListPush(UIDList, content, jsonCustomContent, constant.PlatformIDToName(t)) + if err != nil { + log.NewError(pushMsg.OperationID, "offline push error", pushMsg.String(), err.Error(), constant.PlatformIDToName(t)) + } else { + log.NewDebug(pushMsg.OperationID, "offline push return result is ", string(pushResult), pushMsg.MsgData, constant.PlatformIDToName(t)) + } + + } + } + } + + } } //func SendMsgByWS(m *pbChat.WSToMsgSvrChatMsg) { diff --git a/pkg/statistics/statistics.go b/pkg/statistics/statistics.go index bea4479bd..2711c5d91 100644 --- a/pkg/statistics/statistics.go +++ b/pkg/statistics/statistics.go @@ -1,7 +1,6 @@ package statistics import ( - "Open_IM/pkg/common/log" "time" ) @@ -15,13 +14,13 @@ type Statistics struct { func (s *Statistics) output() { t := time.NewTicker(time.Duration(s.SleepTime) * time.Second) defer t.Stop() - var sum uint64 + //var sum uint64 for { - sum = *s.Count + //sum = *s.Count select { case <-t.C: } - log.NewWarn("", " system stat ", s.ModuleName, s.PrintArgs, *s.Count-sum, "total:", *s.Count) + //log.NewWarn("", " system stat ", s.ModuleName, s.PrintArgs, *s.Count-sum, "total:", *s.Count) } } From d6e7cfb04415aacda522242d032d0d9d45175184 Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Fri, 4 Mar 2022 16:24:28 +0800 Subject: [PATCH 779/814] shell update --- config/config.yaml | 5 +++-- script/sdk_svr_start.sh | 3 ++- 2 files changed, 5 insertions(+), 3 deletions(-) diff --git a/config/config.yaml b/config/config.yaml index 7d326758d..72d45568e 100644 --- a/config/config.yaml +++ b/config/config.yaml @@ -131,8 +131,9 @@ rpcregistername: #rpc注册服务名,默认即可 log: storageLocation: ../logs/ rotationTime: 24 - remainRotationCount: 5 #日志数量 - remainLogLevel: 6 #日志级别 6表示全都打印,测试阶段建议设置为6 + remainRotationCount: 3 #日志数量 + #日志级别 6表示全都打印,测试阶段建议设置为6 + remainLogLevel: 6 elasticSearchSwitch: false elasticSearchAddr: [ 127.0.0.1:9201 ] elasticSearchUser: "" diff --git a/script/sdk_svr_start.sh b/script/sdk_svr_start.sh index e9604e5ea..5f47228dc 100644 --- a/script/sdk_svr_start.sh +++ b/script/sdk_svr_start.sh @@ -6,6 +6,7 @@ source ./function.sh list1=$(cat $config_path | grep openImApiPort | awk -F '[:]' '{print $NF}') list2=$(cat $config_path | grep openImWsPort | awk -F '[:]' '{print $NF}') list3=$(cat $config_path | grep openImSdkWsPort | awk -F '[:]' '{print $NF}') +logLevel=$(cat $config_path | grep remainLogLevel | awk -F '[:]' '{print $NF}') list_to_string $list1 api_ports=($ports_array) list_to_string $list2 @@ -26,7 +27,7 @@ fi #Waiting port recycling sleep 1 cd ${sdk_server_binary_root} - nohup ./${sdk_server_name} -openIM_api_port ${api_ports[0]} -openIM_ws_port ${ws_ports[0]} -sdk_ws_port ${sdk_ws_ports[0]} >>../logs/openIM.log 2>&1 & + nohup ./${sdk_server_name} -openIM_api_port ${api_ports[0]} -openIM_ws_port ${ws_ports[0]} -sdk_ws_port ${sdk_ws_ports[0]} -openIM_log_level ${logLevel} >>../logs/openIM.log 2>&1 & #Check launched service process sleep 3 From 95f6035aa855184cf52b4d1fcaf46c374d6087f1 Mon Sep 17 00:00:00 2001 From: wangchuxiao Date: Fri, 4 Mar 2022 16:37:49 +0800 Subject: [PATCH 780/814] add cb --- config/config.yaml | 8 ++++---- internal/rpc/msg/callback.go | 7 ++----- internal/rpc/msg/send_msg.go | 2 +- 3 files changed, 7 insertions(+), 10 deletions(-) diff --git a/config/config.yaml b/config/config.yaml index 7d326758d..3f4e853e6 100644 --- a/config/config.yaml +++ b/config/config.yaml @@ -196,18 +196,18 @@ callback: callbackUrl : "http://127.0.0.1:8080/callback" # 开启关闭操作前后回调的配置 callbackbeforeSendSingleMsg: - enable: true # 回调是否启用 + enable: false # 回调是否启用 callbackTimeOut: 2 # 回调超时时间 CallbackFailedContinue: true # 回调超时是否继续执行代码 callbackAfterSendSingleMsg: - enable: true + enable: false callbackTimeOut: 2 callbackBeforeSendGroupMsg: - enable: true + enable: false callbackTimeOut: 2 CallbackFailedContinue: true callbackAfterSendGroupMsg: - enable: true + enable: false callbackTimeOut: 2 callbackWordFilter: enable: true diff --git a/internal/rpc/msg/callback.go b/internal/rpc/msg/callback.go index 9dc90eb50..a09b1e87c 100644 --- a/internal/rpc/msg/callback.go +++ b/internal/rpc/msg/callback.go @@ -28,7 +28,6 @@ func copyCallbackCommonReqStruct(msg *pbChat.SendMsgReq) cbApi.CommonCallbackReq } func callbackBeforeSendSingleMsg(msg *pbChat.SendMsgReq) (canSend bool, err error) { - log.NewDebug(msg.OperationID, config.Config.Callback.CallbackBeforeSendSingleMsg.Enable) if !config.Config.Callback.CallbackBeforeSendSingleMsg.Enable { return true, nil } @@ -58,7 +57,6 @@ func callbackBeforeSendSingleMsg(msg *pbChat.SendMsgReq) (canSend bool, err erro func callbackAfterSendSingleMsg(msg *pbChat.SendMsgReq) error { - log.NewDebug(msg.OperationID, config.Config.Callback.CallbackAfterSendSingleMsg.Enable) if !config.Config.Callback.CallbackAfterSendSingleMsg.Enable { return nil } @@ -80,7 +78,6 @@ func callbackAfterSendSingleMsg(msg *pbChat.SendMsgReq) error { func callbackBeforeSendGroupMsg(msg *pbChat.SendMsgReq) (canSend bool, err error) { - log.NewDebug(msg.OperationID, config.Config.Callback.CallbackBeforeSendGroupMsg.Enable) if !config.Config.Callback.CallbackBeforeSendGroupMsg.Enable { return true, nil } @@ -103,11 +100,11 @@ func callbackBeforeSendGroupMsg(msg *pbChat.SendMsgReq) (canSend bool, err error return false, nil } } + log.NewInfo() return true, err } func callbackAfterSendGroupMsg(msg *pbChat.SendMsgReq) error { - log.NewDebug(msg.OperationID, config.Config.Callback.CallbackAfterSendGroupMsg.Enable) if !config.Config.Callback.CallbackAfterSendGroupMsg.Enable { return nil } @@ -130,7 +127,6 @@ func callbackAfterSendGroupMsg(msg *pbChat.SendMsgReq) error { func callbackWordFilter(msg *pbChat.SendMsgReq) (canSend bool, err error) { - log.NewDebug(msg.OperationID, config.Config.Callback.CallbackWordFilter.Enable) if !config.Config.Callback.CallbackWordFilter.Enable || msg.MsgData.ContentType != constant.Text { return true, nil } @@ -157,6 +153,7 @@ func callbackWordFilter(msg *pbChat.SendMsgReq) (canSend bool, err error) { } log.NewDebug(msg.OperationID, utils.GetSelfFuncName(), string(msg.MsgData.Content)) } + log.NewDebug(msg.OperationID, utils.GetSelfFuncName(), err.Error()) return true, err } diff --git a/internal/rpc/msg/send_msg.go b/internal/rpc/msg/send_msg.go index 739a28171..af8f40b4f 100644 --- a/internal/rpc/msg/send_msg.go +++ b/internal/rpc/msg/send_msg.go @@ -243,7 +243,7 @@ func (rpc *rpcChat) SendMsg(_ context.Context, pb *pbChat.SendMsgReq) (*pbChat.S } // callback if err := callbackAfterSendGroupMsg(pb); err != nil { - log.NewError(pb.OperationID, utils.GetSelfFuncName(), "CallBackAfterSendMsg failed", err.Error()) + log.NewError(pb.OperationID, utils.GetSelfFuncName(), "callbackAfterSendGroupMsg failed", err.Error()) } return returnMsg(&replay, pb, 0, "", msgToMQ.MsgData.ServerMsgID, msgToMQ.MsgData.SendTime) default: From af2917adb9d952c86002dc51c27eed1deb1916a1 Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Fri, 4 Mar 2022 16:38:53 +0800 Subject: [PATCH 781/814] log --- pkg/common/log/file_line_hk.go | 75 +++++++++++++++++++--------------- 1 file changed, 43 insertions(+), 32 deletions(-) diff --git a/pkg/common/log/file_line_hk.go b/pkg/common/log/file_line_hk.go index 9ffa7806e..35dd34912 100644 --- a/pkg/common/log/file_line_hk.go +++ b/pkg/common/log/file_line_hk.go @@ -7,7 +7,7 @@ package log import ( - "fmt" + "Open_IM/pkg/utils" "github.com/sirupsen/logrus" "runtime" "strings" @@ -23,38 +23,49 @@ func (f *fileHook) Levels() []logrus.Level { return logrus.AllLevels } -func (f *fileHook) Fire(entry *logrus.Entry) error { - entry.Data["FilePath"] = findCaller(6) - return nil -} +//func (f *fileHook) Fire(entry *logrus.Entry) error { +// entry.Data["FilePath"] = findCaller(6) +// return nil +//} -func findCaller(skip int) string { - file := "" - line := 0 - for i := 0; i < 10; i++ { - file, line = getCaller(skip + i) - if !strings.HasPrefix(file, "log") { - break - } +func (f *fileHook) Fire(entry *logrus.Entry) error { + var s string + _, b, c, _ := runtime.Caller(8) + i := strings.LastIndex(b, "/") + if i != -1 { + s = b[i+1:len(b)] + ":" + utils.IntToString(c) } - return fmt.Sprintf("%s:%d", file, line) + entry.Data["FilePath"] = s + return nil } -func getCaller(skip int) (string, int) { - _, file, line, ok := runtime.Caller(skip) - if !ok { - return "", 0 - } - - n := 0 - for i := len(file) - 1; i > 0; i-- { - if file[i] == '/' { - n++ - if n >= 2 { - file = file[i+1:] - break - } - } - } - return file, line -} +//func findCaller(skip int) string { +// file := "" +// line := 0 +// for i := 0; i < 10; i++ { +// file, line = getCaller(skip + i) +// if !strings.HasPrefix(file, "log") { +// break +// } +// } +// return fmt.Sprintf("%s:%d", file, line) +//} +// +//func getCaller(skip int) (string, int) { +// _, file, line, ok := runtime.Caller(skip) +// if !ok { +// return "", 0 +// } +// +// n := 0 +// for i := len(file) - 1; i > 0; i-- { +// if file[i] == '/' { +// n++ +// if n >= 2 { +// file = file[i+1:] +// break +// } +// } +// } +// return file, line +//} From 7e9234e71262332b789c78a227681eb613983fce Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Fri, 4 Mar 2022 17:13:23 +0800 Subject: [PATCH 782/814] log --- pkg/common/log/file_line_hk.go | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/pkg/common/log/file_line_hk.go b/pkg/common/log/file_line_hk.go index 35dd34912..7e079b79f 100644 --- a/pkg/common/log/file_line_hk.go +++ b/pkg/common/log/file_line_hk.go @@ -31,9 +31,9 @@ func (f *fileHook) Levels() []logrus.Level { func (f *fileHook) Fire(entry *logrus.Entry) error { var s string _, b, c, _ := runtime.Caller(8) - i := strings.LastIndex(b, "/") - if i != -1 { - s = b[i+1:len(b)] + ":" + utils.IntToString(c) + i := strings.SplitAfter(b, "/") + if len(i) > 3 { + s = i[len(i)-3] + i[len(i)-2] + i[len(i)-1] + ":" + utils.IntToString(c) } entry.Data["FilePath"] = s return nil From 9bbcf0c5d7c7ff8adc7821f170335cea39b320e9 Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Fri, 4 Mar 2022 17:16:21 +0800 Subject: [PATCH 783/814] log --- internal/rpc/msg/callback.go | 44 +++++++++++++++--------------------- 1 file changed, 18 insertions(+), 26 deletions(-) diff --git a/internal/rpc/msg/callback.go b/internal/rpc/msg/callback.go index a09b1e87c..d9875da1e 100644 --- a/internal/rpc/msg/callback.go +++ b/internal/rpc/msg/callback.go @@ -12,18 +12,18 @@ import ( func copyCallbackCommonReqStruct(msg *pbChat.SendMsgReq) cbApi.CommonCallbackReq { return cbApi.CommonCallbackReq{ - SendID: msg.MsgData.SendID, - ServerMsgID: msg.MsgData.ServerMsgID, - ClientMsgID: msg.MsgData.ClientMsgID, - OperationID: msg.OperationID, + SendID: msg.MsgData.SendID, + ServerMsgID: msg.MsgData.ServerMsgID, + ClientMsgID: msg.MsgData.ClientMsgID, + OperationID: msg.OperationID, SenderPlatformID: msg.MsgData.SenderPlatformID, - SenderNickname: msg.MsgData.SenderNickname, - SessionType: msg.MsgData.SessionType, - MsgFrom: msg.MsgData.MsgFrom, - ContentType: msg.MsgData.ContentType, - Status: msg.MsgData.Status, - CreateTime: msg.MsgData.CreateTime, - Content: string(msg.MsgData.Content), + SenderNickname: msg.MsgData.SenderNickname, + SessionType: msg.MsgData.SessionType, + MsgFrom: msg.MsgData.MsgFrom, + ContentType: msg.MsgData.ContentType, + Status: msg.MsgData.Status, + CreateTime: msg.MsgData.CreateTime, + Content: string(msg.MsgData.Content), } } @@ -36,14 +36,14 @@ func callbackBeforeSendSingleMsg(msg *pbChat.SendMsgReq) (canSend bool, err erro commonCallbackReq.CallbackCommand = constant.CallbackBeforeSendSingleMsgCommand req := cbApi.CallbackBeforeSendSingleMsgReq{ CommonCallbackReq: commonCallbackReq, - RecvID: msg.MsgData.RecvID, + RecvID: msg.MsgData.RecvID, } resp := &cbApi.CallbackBeforeSendSingleMsgResp{ CommonCallbackResp: cbApi.CommonCallbackResp{}, } //utils.CopyStructFields(req, msg.MsgData) defer log.NewDebug(msg.OperationID, utils.GetSelfFuncName(), req, *resp) - if err := http.PostReturn(config.Config.Callback.CallbackUrl, req, resp, config.Config.Callback.CallbackBeforeSendSingleMsg.CallbackTimeOut); err != nil{ + if err := http.PostReturn(config.Config.Callback.CallbackUrl, req, resp, config.Config.Callback.CallbackBeforeSendSingleMsg.CallbackTimeOut); err != nil { if !config.Config.Callback.CallbackBeforeSendSingleMsg.CallbackFailedContinue { return false, err } @@ -55,7 +55,6 @@ func callbackBeforeSendSingleMsg(msg *pbChat.SendMsgReq) (canSend bool, err erro return true, err } - func callbackAfterSendSingleMsg(msg *pbChat.SendMsgReq) error { if !config.Config.Callback.CallbackAfterSendSingleMsg.Enable { return nil @@ -65,18 +64,17 @@ func callbackAfterSendSingleMsg(msg *pbChat.SendMsgReq) error { commonCallbackReq.CallbackCommand = constant.CallbackAfterSendSingleMsgCommand req := cbApi.CallbackAfterSendSingleMsgReq{ CommonCallbackReq: commonCallbackReq, - RecvID: msg.MsgData.RecvID, + RecvID: msg.MsgData.RecvID, } resp := &cbApi.CallbackAfterSendSingleMsgResp{CommonCallbackResp: cbApi.CommonCallbackResp{}} //utils.CopyStructFields(req, msg.MsgData) defer log.NewDebug(msg.OperationID, utils.GetSelfFuncName(), req, *resp) - if err := http.PostReturn(config.Config.Callback.CallbackUrl, req, resp, config.Config.Callback.CallbackAfterSendSingleMsg.CallbackTimeOut); err != nil{ + if err := http.PostReturn(config.Config.Callback.CallbackUrl, req, resp, config.Config.Callback.CallbackAfterSendSingleMsg.CallbackTimeOut); err != nil { return err } return nil } - func callbackBeforeSendGroupMsg(msg *pbChat.SendMsgReq) (canSend bool, err error) { if !config.Config.Callback.CallbackBeforeSendGroupMsg.Enable { return true, nil @@ -86,7 +84,7 @@ func callbackBeforeSendGroupMsg(msg *pbChat.SendMsgReq) (canSend bool, err error commonCallbackReq.CallbackCommand = constant.CallbackBeforeSendGroupMsgCommand req := cbApi.CallbackAfterSendGroupMsgReq{ CommonCallbackReq: commonCallbackReq, - GroupID: msg.MsgData.GroupID, + GroupID: msg.MsgData.GroupID, } resp := &cbApi.CallbackBeforeSendGroupMsgResp{CommonCallbackResp: cbApi.CommonCallbackResp{}} //utils.CopyStructFields(req, msg.MsgData) @@ -100,7 +98,7 @@ func callbackBeforeSendGroupMsg(msg *pbChat.SendMsgReq) (canSend bool, err error return false, nil } } - log.NewInfo() + //log.NewInfo() return true, err } @@ -113,7 +111,7 @@ func callbackAfterSendGroupMsg(msg *pbChat.SendMsgReq) error { commonCallbackReq.CallbackCommand = constant.CallbackAfterSendGroupMsgCommand req := cbApi.CallbackAfterSendGroupMsgReq{ CommonCallbackReq: commonCallbackReq, - GroupID: msg.MsgData.GroupID, + GroupID: msg.MsgData.GroupID, } resp := &cbApi.CallbackAfterSendGroupMsgResp{CommonCallbackResp: cbApi.CommonCallbackResp{}} @@ -125,7 +123,6 @@ func callbackAfterSendGroupMsg(msg *pbChat.SendMsgReq) error { return nil } - func callbackWordFilter(msg *pbChat.SendMsgReq) (canSend bool, err error) { if !config.Config.Callback.CallbackWordFilter.Enable || msg.MsgData.ContentType != constant.Text { return true, nil @@ -156,8 +153,3 @@ func callbackWordFilter(msg *pbChat.SendMsgReq) (canSend bool, err error) { log.NewDebug(msg.OperationID, utils.GetSelfFuncName(), err.Error()) return true, err } - - - - - From eb1e596cdeb0bc328bf8642a62834efeb59cf120 Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Fri, 4 Mar 2022 17:26:08 +0800 Subject: [PATCH 784/814] log --- internal/rpc/msg/callback.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/internal/rpc/msg/callback.go b/internal/rpc/msg/callback.go index d9875da1e..41421ec2c 100644 --- a/internal/rpc/msg/callback.go +++ b/internal/rpc/msg/callback.go @@ -150,6 +150,6 @@ func callbackWordFilter(msg *pbChat.SendMsgReq) (canSend bool, err error) { } log.NewDebug(msg.OperationID, utils.GetSelfFuncName(), string(msg.MsgData.Content)) } - log.NewDebug(msg.OperationID, utils.GetSelfFuncName(), err.Error()) + log.NewDebug(msg.OperationID, utils.GetSelfFuncName()) return true, err } From 1bcd2d453128181e4b1db30210c76975d4bd0e64 Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Fri, 4 Mar 2022 17:26:50 +0800 Subject: [PATCH 785/814] log --- pkg/common/log/file_line_hk.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkg/common/log/file_line_hk.go b/pkg/common/log/file_line_hk.go index 7e079b79f..babc4791f 100644 --- a/pkg/common/log/file_line_hk.go +++ b/pkg/common/log/file_line_hk.go @@ -30,7 +30,7 @@ func (f *fileHook) Levels() []logrus.Level { func (f *fileHook) Fire(entry *logrus.Entry) error { var s string - _, b, c, _ := runtime.Caller(8) + _, b, c, _ := runtime.Caller(10) i := strings.SplitAfter(b, "/") if len(i) > 3 { s = i[len(i)-3] + i[len(i)-2] + i[len(i)-1] + ":" + utils.IntToString(c) From a7c8eda2902be18a40ab6b05dac3b51cc2be6772 Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Fri, 4 Mar 2022 17:29:15 +0800 Subject: [PATCH 786/814] log --- pkg/common/log/file_line_hk.go | 80 +++++++++++++++++----------------- 1 file changed, 40 insertions(+), 40 deletions(-) diff --git a/pkg/common/log/file_line_hk.go b/pkg/common/log/file_line_hk.go index babc4791f..bc908ee03 100644 --- a/pkg/common/log/file_line_hk.go +++ b/pkg/common/log/file_line_hk.go @@ -7,7 +7,7 @@ package log import ( - "Open_IM/pkg/utils" + "fmt" "github.com/sirupsen/logrus" "runtime" "strings" @@ -23,49 +23,49 @@ func (f *fileHook) Levels() []logrus.Level { return logrus.AllLevels } +func (f *fileHook) Fire(entry *logrus.Entry) error { + entry.Data["FilePath"] = findCaller(6) + return nil +} + //func (f *fileHook) Fire(entry *logrus.Entry) error { -// entry.Data["FilePath"] = findCaller(6) +// var s string +// _, b, c, _ := runtime.Caller(10) +// i := strings.SplitAfter(b, "/") +// if len(i) > 3 { +// s = i[len(i)-3] + i[len(i)-2] + i[len(i)-1] + ":" + utils.IntToString(c) +// } +// entry.Data["FilePath"] = s // return nil //} -func (f *fileHook) Fire(entry *logrus.Entry) error { - var s string - _, b, c, _ := runtime.Caller(10) - i := strings.SplitAfter(b, "/") - if len(i) > 3 { - s = i[len(i)-3] + i[len(i)-2] + i[len(i)-1] + ":" + utils.IntToString(c) +func findCaller(skip int) string { + file := "" + line := 0 + for i := 0; i < 10; i++ { + file, line = getCaller(skip + i) + if !strings.HasPrefix(file, "log") { + break + } } - entry.Data["FilePath"] = s - return nil + return fmt.Sprintf("%s:%d", file, line) } -//func findCaller(skip int) string { -// file := "" -// line := 0 -// for i := 0; i < 10; i++ { -// file, line = getCaller(skip + i) -// if !strings.HasPrefix(file, "log") { -// break -// } -// } -// return fmt.Sprintf("%s:%d", file, line) -//} -// -//func getCaller(skip int) (string, int) { -// _, file, line, ok := runtime.Caller(skip) -// if !ok { -// return "", 0 -// } -// -// n := 0 -// for i := len(file) - 1; i > 0; i-- { -// if file[i] == '/' { -// n++ -// if n >= 2 { -// file = file[i+1:] -// break -// } -// } -// } -// return file, line -//} +func getCaller(skip int) (string, int) { + _, file, line, ok := runtime.Caller(skip) + if !ok { + return "", 0 + } + + n := 0 + for i := len(file) - 1; i > 0; i-- { + if file[i] == '/' { + n++ + if n >= 2 { + file = file[i+1:] + break + } + } + } + return file, line +} From 4c297164a54fc9104be5467a72f153d9bf422b35 Mon Sep 17 00:00:00 2001 From: wangchuxiao Date: Fri, 4 Mar 2022 18:03:22 +0800 Subject: [PATCH 787/814] cb --- config/config.yaml | 11 ++++++----- internal/rpc/msg/callback.go | 5 +++-- 2 files changed, 9 insertions(+), 7 deletions(-) diff --git a/config/config.yaml b/config/config.yaml index c76d69ef6..c71011247 100644 --- a/config/config.yaml +++ b/config/config.yaml @@ -194,26 +194,27 @@ iospush: badgeCount: true callback: + # callback url 需要自行更换callback url callbackUrl : "http://127.0.0.1:8080/callback" # 开启关闭操作前后回调的配置 callbackbeforeSendSingleMsg: - enable: false # 回调是否启用 + enable: true # 回调是否启用 callbackTimeOut: 2 # 回调超时时间 CallbackFailedContinue: true # 回调超时是否继续执行代码 callbackAfterSendSingleMsg: - enable: false + enable: true callbackTimeOut: 2 callbackBeforeSendGroupMsg: - enable: false + enable: true callbackTimeOut: 2 CallbackFailedContinue: true callbackAfterSendGroupMsg: - enable: false + enable: true callbackTimeOut: 2 callbackWordFilter: enable: true callbackTimeOut: 2 - CallbackFailedContinue: true + CallbackFailedContinue: false notification: diff --git a/internal/rpc/msg/callback.go b/internal/rpc/msg/callback.go index 41421ec2c..a56038de8 100644 --- a/internal/rpc/msg/callback.go +++ b/internal/rpc/msg/callback.go @@ -52,6 +52,7 @@ func callbackBeforeSendSingleMsg(msg *pbChat.SendMsgReq) (canSend bool, err erro return false, nil } } + log.NewDebug(msg.OperationID, utils.GetSelfFuncName(), err.Error()) return true, err } @@ -98,7 +99,7 @@ func callbackBeforeSendGroupMsg(msg *pbChat.SendMsgReq) (canSend bool, err error return false, nil } } - //log.NewInfo() + log.NewDebug(msg.OperationID, utils.GetSelfFuncName(), err.Error()) return true, err } @@ -150,6 +151,6 @@ func callbackWordFilter(msg *pbChat.SendMsgReq) (canSend bool, err error) { } log.NewDebug(msg.OperationID, utils.GetSelfFuncName(), string(msg.MsgData.Content)) } - log.NewDebug(msg.OperationID, utils.GetSelfFuncName()) + log.NewDebug(msg.OperationID, utils.GetSelfFuncName(), err.Error()) return true, err } From 1572d9df89591e022b26c197c0d3fd94106dc51a Mon Sep 17 00:00:00 2001 From: wangchuxiao Date: Fri, 4 Mar 2022 18:17:44 +0800 Subject: [PATCH 788/814] cb --- internal/rpc/msg/callback.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/internal/rpc/msg/callback.go b/internal/rpc/msg/callback.go index a56038de8..f04c2a1fc 100644 --- a/internal/rpc/msg/callback.go +++ b/internal/rpc/msg/callback.go @@ -52,7 +52,7 @@ func callbackBeforeSendSingleMsg(msg *pbChat.SendMsgReq) (canSend bool, err erro return false, nil } } - log.NewDebug(msg.OperationID, utils.GetSelfFuncName(), err.Error()) + log.NewDebug(msg.OperationID, utils.GetSelfFuncName()) return true, err } From 29f849c184e3149dd7a39188e54f257d495b2991 Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Fri, 4 Mar 2022 18:20:57 +0800 Subject: [PATCH 789/814] log --- internal/rpc/msg/callback.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/internal/rpc/msg/callback.go b/internal/rpc/msg/callback.go index f04c2a1fc..3cff165aa 100644 --- a/internal/rpc/msg/callback.go +++ b/internal/rpc/msg/callback.go @@ -151,6 +151,6 @@ func callbackWordFilter(msg *pbChat.SendMsgReq) (canSend bool, err error) { } log.NewDebug(msg.OperationID, utils.GetSelfFuncName(), string(msg.MsgData.Content)) } - log.NewDebug(msg.OperationID, utils.GetSelfFuncName(), err.Error()) + log.NewDebug(msg.OperationID, utils.GetSelfFuncName()) return true, err } From 08022497e608d778ee91d24539af663307f849f4 Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Fri, 4 Mar 2022 18:21:14 +0800 Subject: [PATCH 790/814] log --- internal/rpc/msg/callback.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/internal/rpc/msg/callback.go b/internal/rpc/msg/callback.go index 3cff165aa..d3413cd7e 100644 --- a/internal/rpc/msg/callback.go +++ b/internal/rpc/msg/callback.go @@ -99,7 +99,7 @@ func callbackBeforeSendGroupMsg(msg *pbChat.SendMsgReq) (canSend bool, err error return false, nil } } - log.NewDebug(msg.OperationID, utils.GetSelfFuncName(), err.Error()) + log.NewDebug(msg.OperationID, utils.GetSelfFuncName()) return true, err } From fafad9217d2660802dd14f39badae187c5a84f8e Mon Sep 17 00:00:00 2001 From: wangchuxiao Date: Fri, 4 Mar 2022 18:23:58 +0800 Subject: [PATCH 791/814] cb --- internal/rpc/msg/callback.go | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/internal/rpc/msg/callback.go b/internal/rpc/msg/callback.go index f04c2a1fc..bb8ccd700 100644 --- a/internal/rpc/msg/callback.go +++ b/internal/rpc/msg/callback.go @@ -46,13 +46,14 @@ func callbackBeforeSendSingleMsg(msg *pbChat.SendMsgReq) (canSend bool, err erro if err := http.PostReturn(config.Config.Callback.CallbackUrl, req, resp, config.Config.Callback.CallbackBeforeSendSingleMsg.CallbackTimeOut); err != nil { if !config.Config.Callback.CallbackBeforeSendSingleMsg.CallbackFailedContinue { return false, err + } else { + return true, err } } else { if resp.ActionCode == constant.ActionForbidden && resp.ErrCode == constant.CallbackHandleSuccess { return false, nil } } - log.NewDebug(msg.OperationID, utils.GetSelfFuncName()) return true, err } @@ -93,13 +94,14 @@ func callbackBeforeSendGroupMsg(msg *pbChat.SendMsgReq) (canSend bool, err error if err := http.PostReturn(config.Config.Callback.CallbackUrl, req, resp, config.Config.Callback.CallbackBeforeSendGroupMsg.CallbackTimeOut); err != nil { if !config.Config.Callback.CallbackBeforeSendGroupMsg.CallbackFailedContinue { return false, err + } else { + return true, err } } else { if resp.ActionCode == constant.ActionForbidden && resp.ErrCode == constant.CallbackHandleSuccess { return false, nil } } - log.NewDebug(msg.OperationID, utils.GetSelfFuncName(), err.Error()) return true, err } @@ -141,6 +143,8 @@ func callbackWordFilter(msg *pbChat.SendMsgReq) (canSend bool, err error) { if !config.Config.Callback.CallbackWordFilter.CallbackFailedContinue { log.NewDebug(msg.OperationID, utils.GetSelfFuncName(), "callback failed and config disable, stop this operation") return false, err + } else { + return true, err } } else { if resp.ActionCode == constant.ActionForbidden && resp.ErrCode == constant.CallbackHandleSuccess { @@ -151,6 +155,5 @@ func callbackWordFilter(msg *pbChat.SendMsgReq) (canSend bool, err error) { } log.NewDebug(msg.OperationID, utils.GetSelfFuncName(), string(msg.MsgData.Content)) } - log.NewDebug(msg.OperationID, utils.GetSelfFuncName(), err.Error()) return true, err } From 319f46406c241fc2f0a79e54c324d4cd984ebd14 Mon Sep 17 00:00:00 2001 From: wangchuxiao Date: Fri, 4 Mar 2022 18:37:55 +0800 Subject: [PATCH 792/814] cfg --- config/config.yaml | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/config/config.yaml b/config/config.yaml index c71011247..5316eaf46 100644 --- a/config/config.yaml +++ b/config/config.yaml @@ -198,21 +198,21 @@ callback: callbackUrl : "http://127.0.0.1:8080/callback" # 开启关闭操作前后回调的配置 callbackbeforeSendSingleMsg: - enable: true # 回调是否启用 + enable: false # 回调是否启用 callbackTimeOut: 2 # 回调超时时间 CallbackFailedContinue: true # 回调超时是否继续执行代码 callbackAfterSendSingleMsg: - enable: true + enable: false callbackTimeOut: 2 callbackBeforeSendGroupMsg: - enable: true + enable: false callbackTimeOut: 2 CallbackFailedContinue: true callbackAfterSendGroupMsg: - enable: true + enable: false callbackTimeOut: 2 callbackWordFilter: - enable: true + enable: false callbackTimeOut: 2 CallbackFailedContinue: false From 127e5af6f3daec56cb422a902e21244ce0971205 Mon Sep 17 00:00:00 2001 From: wangchuxiao Date: Fri, 4 Mar 2022 18:44:38 +0800 Subject: [PATCH 793/814] cfg --- config/config.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config/config.yaml b/config/config.yaml index 5316eaf46..9a9e1ec6c 100644 --- a/config/config.yaml +++ b/config/config.yaml @@ -214,7 +214,7 @@ callback: callbackWordFilter: enable: false callbackTimeOut: 2 - CallbackFailedContinue: false + CallbackFailedContinue: true notification: From e734b000dea2e93032e73cb6147df7080ecb8f50 Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Fri, 4 Mar 2022 19:01:32 +0800 Subject: [PATCH 794/814] log --- pkg/common/db/mysql_model/im_mysql_msg_model/chat_log_model.go | 2 ++ 1 file changed, 2 insertions(+) diff --git a/pkg/common/db/mysql_model/im_mysql_msg_model/chat_log_model.go b/pkg/common/db/mysql_model/im_mysql_msg_model/chat_log_model.go index fef4c1fb2..99c099ac4 100644 --- a/pkg/common/db/mysql_model/im_mysql_msg_model/chat_log_model.go +++ b/pkg/common/db/mysql_model/im_mysql_msg_model/chat_log_model.go @@ -9,6 +9,7 @@ package im_mysql_msg_model import ( "Open_IM/pkg/common/constant" "Open_IM/pkg/common/db" + "Open_IM/pkg/common/log" pbMsg "Open_IM/pkg/proto/chat" "Open_IM/pkg/proto/sdk_ws" "Open_IM/pkg/utils" @@ -45,5 +46,6 @@ func InsertMessageToChatLog(msg pbMsg.MsgDataToMQ) error { } chatLog.CreateTime = utils.UnixMillSecondToTime(msg.MsgData.CreateTime) chatLog.SendTime = utils.UnixMillSecondToTime(msg.MsgData.SendTime) + log.NewDebug("test", "this is ", chatLog) return dbConn.Table("chat_logs").Create(chatLog).Error } From 15aabb38591c6abaa1dccc62bb7c8fb32fae7b1b Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Fri, 4 Mar 2022 19:19:06 +0800 Subject: [PATCH 795/814] log --- pkg/grpc-etcdv3/getcdv3/register.go | 8 ++++---- pkg/grpc-etcdv3/getcdv3/resolver.go | 19 +++++++++---------- 2 files changed, 13 insertions(+), 14 deletions(-) diff --git a/pkg/grpc-etcdv3/getcdv3/register.go b/pkg/grpc-etcdv3/getcdv3/register.go index d1c7957bf..cc555f3b4 100644 --- a/pkg/grpc-etcdv3/getcdv3/register.go +++ b/pkg/grpc-etcdv3/getcdv3/register.go @@ -67,16 +67,16 @@ func RegisterEtcd(schema, etcdAddr, myHost string, myPort int, serviceName strin if err != nil { return fmt.Errorf("keepalive failed, errmsg:%v, lease id:%d", err, resp.ID) } - log.Info("", "RegisterEtcd ok ") + //log.Info("", "RegisterEtcd ok ") go func() { for { select { - case v, ok := <-kresp: + case _, ok := <-kresp: if ok == true { - log.Debug("", "KeepAlive kresp ok", v, schema, etcdAddr, myHost, myPort, serviceName, ttl) + //log.Debug("", "KeepAlive kresp ok", v, schema, etcdAddr, myHost, myPort, serviceName, ttl) } else { - log.Error("", "KeepAlive kresp failed", schema, etcdAddr, myHost, myPort, serviceName, ttl) + //log.Error("", "KeepAlive kresp failed", schema, etcdAddr, myHost, myPort, serviceName, ttl) } } } diff --git a/pkg/grpc-etcdv3/getcdv3/resolver.go b/pkg/grpc-etcdv3/getcdv3/resolver.go index 45f47a717..1e57f8cdd 100644 --- a/pkg/grpc-etcdv3/getcdv3/resolver.go +++ b/pkg/grpc-etcdv3/getcdv3/resolver.go @@ -1,7 +1,6 @@ package getcdv3 import ( - "Open_IM/pkg/common/log" "context" "fmt" "go.etcd.io/etcd/clientv3" @@ -103,7 +102,7 @@ func (r *Resolver) Build(target resolver.Target, cc resolver.ClientConn, opts re if err == nil { var addrList []resolver.Address for i := range resp.Kvs { - log.Debug("", "init addr: ", string(resp.Kvs[i].Value)) + //log.Debug("", "init addr: ", string(resp.Kvs[i].Value)) addrList = append(addrList, resolver.Address{Addr: string(resp.Kvs[i].Value)}) } r.cc.UpdateState(resolver.State{Addresses: addrList}) @@ -149,27 +148,27 @@ func (r *Resolver) watch(prefix string, addrList []resolver.Address) { if !exists(addrList, string(ev.Kv.Value)) { flag = 1 addrList = append(addrList, resolver.Address{Addr: string(ev.Kv.Value)}) - log.Debug("", "after add, new list: ", addrList) + //log.Debug("", "after add, new list: ", addrList) } case mvccpb.DELETE: - log.Debug("remove addr key: ", string(ev.Kv.Key), "value:", string(ev.Kv.Value)) + //log.Debug("remove addr key: ", string(ev.Kv.Key), "value:", string(ev.Kv.Value)) i := strings.LastIndexAny(string(ev.Kv.Key), "/") if i < 0 { return } t := string(ev.Kv.Key)[i+1:] - log.Debug("remove addr key: ", string(ev.Kv.Key), "value:", string(ev.Kv.Value), "addr:", t) + //log.Debug("remove addr key: ", string(ev.Kv.Key), "value:", string(ev.Kv.Value), "addr:", t) if s, ok := remove(addrList, t); ok { flag = 1 addrList = s - log.Debug("after remove, new list: ", addrList) + //log.Debug("after remove, new list: ", addrList) } } } if flag == 1 { r.cc.UpdateState(resolver.State{Addresses: addrList}) - log.Debug("update: ", addrList) + //log.Debug("update: ", addrList) } } } @@ -177,7 +176,7 @@ func (r *Resolver) watch(prefix string, addrList []resolver.Address) { func GetConn4Unique(schema, etcdaddr, servicename string) []*grpc.ClientConn { gEtcdCli, err := clientv3.New(clientv3.Config{Endpoints: strings.Split(etcdaddr, ",")}) if err != nil { - log.Error("clientv3.New failed", err.Error()) + //log.Error("clientv3.New failed", err.Error()) return nil } @@ -201,7 +200,7 @@ func GetConn4Unique(schema, etcdaddr, servicename string) []*grpc.ClientConn { } } else { gEtcdCli.Close() - log.Error("gEtcdCli.Get failed", err.Error()) + //log.Error("gEtcdCli.Get failed", err.Error()) return nil } gEtcdCli.Close() @@ -237,7 +236,7 @@ func GetConnPool(schema, etcdaddr, servicename string) (*ClientConn, error) { ctx, _ := context.WithDeadline(context.Background(), time.Now().Add(1000*time.Millisecond)) c, err := p.Get(ctx) - log.Info("", "Get ", err) + //log.Info("", "Get ", err) return c, err } From c8be20e9f2ddfa69fecc729bf15a9c0e3c94285f Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Fri, 4 Mar 2022 19:31:03 +0800 Subject: [PATCH 796/814] tag update --- docker-compose.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docker-compose.yaml b/docker-compose.yaml index 154c61faa..f63b3c125 100644 --- a/docker-compose.yaml +++ b/docker-compose.yaml @@ -93,7 +93,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.1 + image: openim/open_im_server:v2.0.2 container_name: open_im_server volumes: - ./logs:/Open-IM-Server/logs From 13efbf5f9862e49107650662e82390e0359c082e Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Mon, 7 Mar 2022 11:50:35 +0800 Subject: [PATCH 797/814] log level --- config/config.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config/config.yaml b/config/config.yaml index 9a9e1ec6c..dfaeaaed1 100644 --- a/config/config.yaml +++ b/config/config.yaml @@ -133,7 +133,7 @@ log: rotationTime: 24 remainRotationCount: 3 #日志数量 #日志级别 6表示全都打印,测试阶段建议设置为6 - remainLogLevel: 6 + remainLogLevel: 4 elasticSearchSwitch: false elasticSearchAddr: [ 127.0.0.1:9201 ] elasticSearchUser: "" From 0e575a936682c573e9e37e9d0e5a470c86a0491f Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Tue, 8 Mar 2022 18:48:36 +0800 Subject: [PATCH 798/814] keepalive ttl * 3 add user.ex --- internal/api/user/user.go | 2 +- pkg/grpc-etcdv3/getcdv3/register.go | 7 +- pkg/proto/sdk_ws/ws.pb.go | 4820 ++++++++++----------------- pkg/proto/sdk_ws/ws.proto | 32 +- 4 files changed, 1788 insertions(+), 3073 deletions(-) diff --git a/internal/api/user/user.go b/internal/api/user/user.go index 1ed341bf5..4fa1c62dd 100644 --- a/internal/api/user/user.go +++ b/internal/api/user/user.go @@ -45,7 +45,7 @@ func GetUsersInfo(c *gin.Context) { var publicUserInfoList []*open_im_sdk.PublicUserInfo for _, v := range RpcResp.UserInfoList { publicUserInfoList = append(publicUserInfoList, - &open_im_sdk.PublicUserInfo{UserID: v.UserID, Nickname: v.Nickname, FaceURL: v.FaceURL, Gender: v.Gender}) + &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} diff --git a/pkg/grpc-etcdv3/getcdv3/register.go b/pkg/grpc-etcdv3/getcdv3/register.go index cc555f3b4..3230590b6 100644 --- a/pkg/grpc-etcdv3/getcdv3/register.go +++ b/pkg/grpc-etcdv3/getcdv3/register.go @@ -38,6 +38,7 @@ func RegisterEtcd4Unique(schema, etcdAddr, myHost string, myPort int, serviceNam //etcdAddr separated by commas func RegisterEtcd(schema, etcdAddr, myHost string, myPort int, serviceName string, ttl int) error { + ttl = ttl * 3 cli, err := clientv3.New(clientv3.Config{ Endpoints: strings.Split(etcdAddr, ","), DialTimeout: 5 * time.Second}) @@ -72,11 +73,11 @@ func RegisterEtcd(schema, etcdAddr, myHost string, myPort int, serviceName strin go func() { for { select { - case _, ok := <-kresp: + case pv, ok := <-kresp: if ok == true { - //log.Debug("", "KeepAlive kresp ok", v, schema, etcdAddr, myHost, myPort, serviceName, ttl) + log.Debug("", "KeepAlive kresp ok", pv) } else { - //log.Error("", "KeepAlive kresp failed", schema, etcdAddr, myHost, myPort, serviceName, ttl) + log.Error("", "KeepAlive kresp failed", pv) } } } diff --git a/pkg/proto/sdk_ws/ws.pb.go b/pkg/proto/sdk_ws/ws.pb.go index f5d259dac..a8f964b34 100644 --- a/pkg/proto/sdk_ws/ws.pb.go +++ b/pkg/proto/sdk_ws/ws.pb.go @@ -1,4022 +1,2766 @@ // Code generated by protoc-gen-go. DO NOT EDIT. -// versions: -// protoc-gen-go v1.27.1 -// protoc v3.15.5 // source: sdk_ws/ws.proto -package server_api_params +package server_api_params // import "./sdk_ws" -import ( - protoreflect "google.golang.org/protobuf/reflect/protoreflect" - protoimpl "google.golang.org/protobuf/runtime/protoimpl" - reflect "reflect" - sync "sync" -) +import proto "github.com/golang/protobuf/proto" +import fmt "fmt" +import math "math" -const ( - // Verify that this generated code is sufficiently up-to-date. - _ = protoimpl.EnforceVersion(20 - protoimpl.MinVersion) - // Verify that runtime/protoimpl is sufficiently up-to-date. - _ = protoimpl.EnforceVersion(protoimpl.MaxVersion - 20) -) +// Reference imports to suppress errors if they are not otherwise used. +var _ = proto.Marshal +var _ = fmt.Errorf +var _ = math.Inf -type GroupInfo struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields +// 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 - GroupID string `protobuf:"bytes,1,opt,name=groupID,proto3" json:"groupID,omitempty"` - GroupName string `protobuf:"bytes,2,opt,name=groupName,proto3" json:"groupName,omitempty"` - Notification string `protobuf:"bytes,3,opt,name=notification,proto3" json:"notification,omitempty"` - Introduction string `protobuf:"bytes,4,opt,name=introduction,proto3" json:"introduction,omitempty"` - FaceURL string `protobuf:"bytes,5,opt,name=faceURL,proto3" json:"faceURL,omitempty"` - OwnerUserID string `protobuf:"bytes,6,opt,name=ownerUserID,proto3" json:"ownerUserID,omitempty"` - CreateTime uint32 `protobuf:"varint,7,opt,name=createTime,proto3" json:"createTime,omitempty"` - MemberCount uint32 `protobuf:"varint,8,opt,name=memberCount,proto3" json:"memberCount,omitempty"` - Ex string `protobuf:"bytes,9,opt,name=ex,proto3" json:"ex,omitempty"` - Status int32 `protobuf:"varint,10,opt,name=status,proto3" json:"status,omitempty"` - CreatorUserID string `protobuf:"bytes,11,opt,name=creatorUserID,proto3" json:"creatorUserID,omitempty"` - GroupType int32 `protobuf:"varint,12,opt,name=groupType,proto3" json:"groupType,omitempty"` +type GroupInfo struct { + GroupID string `protobuf:"bytes,1,opt,name=groupID" json:"groupID,omitempty"` + GroupName string `protobuf:"bytes,2,opt,name=groupName" json:"groupName,omitempty"` + Notification string `protobuf:"bytes,3,opt,name=notification" json:"notification,omitempty"` + Introduction string `protobuf:"bytes,4,opt,name=introduction" json:"introduction,omitempty"` + FaceURL string `protobuf:"bytes,5,opt,name=faceURL" json:"faceURL,omitempty"` + OwnerUserID string `protobuf:"bytes,6,opt,name=ownerUserID" json:"ownerUserID,omitempty"` + CreateTime uint32 `protobuf:"varint,7,opt,name=createTime" json:"createTime,omitempty"` + MemberCount uint32 `protobuf:"varint,8,opt,name=memberCount" json:"memberCount,omitempty"` + Ex string `protobuf:"bytes,9,opt,name=ex" json:"ex,omitempty"` + Status int32 `protobuf:"varint,10,opt,name=status" json:"status,omitempty"` + CreatorUserID string `protobuf:"bytes,11,opt,name=creatorUserID" json:"creatorUserID,omitempty"` + GroupType int32 `protobuf:"varint,12,opt,name=groupType" json:"groupType,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +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_c5eabd6c93a174c0, []int{0} } - -func (x *GroupInfo) Reset() { - *x = GroupInfo{} - if protoimpl.UnsafeEnabled { - mi := &file_sdk_ws_ws_proto_msgTypes[0] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } +func (m *GroupInfo) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GroupInfo.Unmarshal(m, b) } - -func (x *GroupInfo) String() string { - return protoimpl.X.MessageStringOf(x) +func (m *GroupInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GroupInfo.Marshal(b, m, deterministic) } - -func (*GroupInfo) ProtoMessage() {} - -func (x *GroupInfo) ProtoReflect() protoreflect.Message { - mi := &file_sdk_ws_ws_proto_msgTypes[0] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) +func (dst *GroupInfo) XXX_Merge(src proto.Message) { + xxx_messageInfo_GroupInfo.Merge(dst, src) } - -// Deprecated: Use GroupInfo.ProtoReflect.Descriptor instead. -func (*GroupInfo) Descriptor() ([]byte, []int) { - return file_sdk_ws_ws_proto_rawDescGZIP(), []int{0} +func (m *GroupInfo) XXX_Size() int { + return xxx_messageInfo_GroupInfo.Size(m) +} +func (m *GroupInfo) XXX_DiscardUnknown() { + xxx_messageInfo_GroupInfo.DiscardUnknown(m) } -func (x *GroupInfo) GetGroupID() string { - if x != nil { - return x.GroupID +var xxx_messageInfo_GroupInfo proto.InternalMessageInfo + +func (m *GroupInfo) GetGroupID() string { + if m != nil { + return m.GroupID } return "" } -func (x *GroupInfo) GetGroupName() string { - if x != nil { - return x.GroupName +func (m *GroupInfo) GetGroupName() string { + if m != nil { + return m.GroupName } return "" } -func (x *GroupInfo) GetNotification() string { - if x != nil { - return x.Notification +func (m *GroupInfo) GetNotification() string { + if m != nil { + return m.Notification } return "" } -func (x *GroupInfo) GetIntroduction() string { - if x != nil { - return x.Introduction +func (m *GroupInfo) GetIntroduction() string { + if m != nil { + return m.Introduction } return "" } -func (x *GroupInfo) GetFaceURL() string { - if x != nil { - return x.FaceURL +func (m *GroupInfo) GetFaceURL() string { + if m != nil { + return m.FaceURL } return "" } -func (x *GroupInfo) GetOwnerUserID() string { - if x != nil { - return x.OwnerUserID +func (m *GroupInfo) GetOwnerUserID() string { + if m != nil { + return m.OwnerUserID } return "" } -func (x *GroupInfo) GetCreateTime() uint32 { - if x != nil { - return x.CreateTime +func (m *GroupInfo) GetCreateTime() uint32 { + if m != nil { + return m.CreateTime } return 0 } -func (x *GroupInfo) GetMemberCount() uint32 { - if x != nil { - return x.MemberCount +func (m *GroupInfo) GetMemberCount() uint32 { + if m != nil { + return m.MemberCount } return 0 } -func (x *GroupInfo) GetEx() string { - if x != nil { - return x.Ex +func (m *GroupInfo) GetEx() string { + if m != nil { + return m.Ex } return "" } -func (x *GroupInfo) GetStatus() int32 { - if x != nil { - return x.Status +func (m *GroupInfo) GetStatus() int32 { + if m != nil { + return m.Status } return 0 } -func (x *GroupInfo) GetCreatorUserID() string { - if x != nil { - return x.CreatorUserID +func (m *GroupInfo) GetCreatorUserID() string { + if m != nil { + return m.CreatorUserID } return "" } -func (x *GroupInfo) GetGroupType() int32 { - if x != nil { - return x.GroupType +func (m *GroupInfo) GetGroupType() int32 { + if m != nil { + return m.GroupType } return 0 } type GroupMemberFullInfo struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - GroupID string `protobuf:"bytes,1,opt,name=groupID,proto3" json:"groupID,omitempty"` - UserID string `protobuf:"bytes,2,opt,name=userID,proto3" json:"userID,omitempty"` - RoleLevel int32 `protobuf:"varint,3,opt,name=roleLevel,proto3" json:"roleLevel,omitempty"` - JoinTime int64 `protobuf:"varint,4,opt,name=joinTime,proto3" json:"joinTime,omitempty"` - Nickname string `protobuf:"bytes,5,opt,name=nickname,proto3" json:"nickname,omitempty"` - FaceURL string `protobuf:"bytes,6,opt,name=faceURL,proto3" json:"faceURL,omitempty"` - AppMangerLevel int32 `protobuf:"varint,7,opt,name=appMangerLevel,proto3" json:"appMangerLevel,omitempty"` //if >0 - JoinSource int32 `protobuf:"varint,8,opt,name=joinSource,proto3" json:"joinSource,omitempty"` - OperatorUserID string `protobuf:"bytes,9,opt,name=operatorUserID,proto3" json:"operatorUserID,omitempty"` - Ex string `protobuf:"bytes,10,opt,name=ex,proto3" json:"ex,omitempty"` + GroupID string `protobuf:"bytes,1,opt,name=groupID" json:"groupID,omitempty"` + UserID string `protobuf:"bytes,2,opt,name=userID" json:"userID,omitempty"` + RoleLevel int32 `protobuf:"varint,3,opt,name=roleLevel" json:"roleLevel,omitempty"` + JoinTime int64 `protobuf:"varint,4,opt,name=joinTime" json:"joinTime,omitempty"` + Nickname string `protobuf:"bytes,5,opt,name=nickname" json:"nickname,omitempty"` + FaceURL string `protobuf:"bytes,6,opt,name=faceURL" json:"faceURL,omitempty"` + AppMangerLevel int32 `protobuf:"varint,7,opt,name=appMangerLevel" json:"appMangerLevel,omitempty"` + JoinSource int32 `protobuf:"varint,8,opt,name=joinSource" json:"joinSource,omitempty"` + OperatorUserID string `protobuf:"bytes,9,opt,name=operatorUserID" json:"operatorUserID,omitempty"` + Ex string `protobuf:"bytes,10,opt,name=ex" json:"ex,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +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_c5eabd6c93a174c0, []int{1} } - -func (x *GroupMemberFullInfo) Reset() { - *x = GroupMemberFullInfo{} - if protoimpl.UnsafeEnabled { - mi := &file_sdk_ws_ws_proto_msgTypes[1] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } +func (m *GroupMemberFullInfo) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GroupMemberFullInfo.Unmarshal(m, b) } - -func (x *GroupMemberFullInfo) String() string { - return protoimpl.X.MessageStringOf(x) +func (m *GroupMemberFullInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GroupMemberFullInfo.Marshal(b, m, deterministic) } - -func (*GroupMemberFullInfo) ProtoMessage() {} - -func (x *GroupMemberFullInfo) ProtoReflect() protoreflect.Message { - mi := &file_sdk_ws_ws_proto_msgTypes[1] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) +func (dst *GroupMemberFullInfo) XXX_Merge(src proto.Message) { + xxx_messageInfo_GroupMemberFullInfo.Merge(dst, src) } - -// Deprecated: Use GroupMemberFullInfo.ProtoReflect.Descriptor instead. -func (*GroupMemberFullInfo) Descriptor() ([]byte, []int) { - return file_sdk_ws_ws_proto_rawDescGZIP(), []int{1} +func (m *GroupMemberFullInfo) XXX_Size() int { + return xxx_messageInfo_GroupMemberFullInfo.Size(m) } +func (m *GroupMemberFullInfo) XXX_DiscardUnknown() { + xxx_messageInfo_GroupMemberFullInfo.DiscardUnknown(m) +} + +var xxx_messageInfo_GroupMemberFullInfo proto.InternalMessageInfo -func (x *GroupMemberFullInfo) GetGroupID() string { - if x != nil { - return x.GroupID +func (m *GroupMemberFullInfo) GetGroupID() string { + if m != nil { + return m.GroupID } return "" } -func (x *GroupMemberFullInfo) GetUserID() string { - if x != nil { - return x.UserID +func (m *GroupMemberFullInfo) GetUserID() string { + if m != nil { + return m.UserID } return "" } -func (x *GroupMemberFullInfo) GetRoleLevel() int32 { - if x != nil { - return x.RoleLevel +func (m *GroupMemberFullInfo) GetRoleLevel() int32 { + if m != nil { + return m.RoleLevel } return 0 } -func (x *GroupMemberFullInfo) GetJoinTime() int64 { - if x != nil { - return x.JoinTime +func (m *GroupMemberFullInfo) GetJoinTime() int64 { + if m != nil { + return m.JoinTime } return 0 } -func (x *GroupMemberFullInfo) GetNickname() string { - if x != nil { - return x.Nickname +func (m *GroupMemberFullInfo) GetNickname() string { + if m != nil { + return m.Nickname } return "" } -func (x *GroupMemberFullInfo) GetFaceURL() string { - if x != nil { - return x.FaceURL +func (m *GroupMemberFullInfo) GetFaceURL() string { + if m != nil { + return m.FaceURL } return "" } -func (x *GroupMemberFullInfo) GetAppMangerLevel() int32 { - if x != nil { - return x.AppMangerLevel +func (m *GroupMemberFullInfo) GetAppMangerLevel() int32 { + if m != nil { + return m.AppMangerLevel } return 0 } -func (x *GroupMemberFullInfo) GetJoinSource() int32 { - if x != nil { - return x.JoinSource +func (m *GroupMemberFullInfo) GetJoinSource() int32 { + if m != nil { + return m.JoinSource } return 0 } -func (x *GroupMemberFullInfo) GetOperatorUserID() string { - if x != nil { - return x.OperatorUserID +func (m *GroupMemberFullInfo) GetOperatorUserID() string { + if m != nil { + return m.OperatorUserID } return "" } -func (x *GroupMemberFullInfo) GetEx() string { - if x != nil { - return x.Ex +func (m *GroupMemberFullInfo) GetEx() string { + if m != nil { + return m.Ex } return "" } type PublicUserInfo struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - UserID string `protobuf:"bytes,1,opt,name=userID,proto3" json:"userID,omitempty"` - Nickname string `protobuf:"bytes,2,opt,name=nickname,proto3" json:"nickname,omitempty"` - FaceURL string `protobuf:"bytes,3,opt,name=faceURL,proto3" json:"faceURL,omitempty"` - Gender int32 `protobuf:"varint,4,opt,name=gender,proto3" json:"gender,omitempty"` + UserID string `protobuf:"bytes,1,opt,name=userID" json:"userID,omitempty"` + Nickname string `protobuf:"bytes,2,opt,name=nickname" json:"nickname,omitempty"` + FaceURL string `protobuf:"bytes,3,opt,name=faceURL" json:"faceURL,omitempty"` + Gender int32 `protobuf:"varint,4,opt,name=gender" json:"gender,omitempty"` + Ex string `protobuf:"bytes,5,opt,name=ex" json:"ex,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +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_c5eabd6c93a174c0, []int{2} } - -func (x *PublicUserInfo) Reset() { - *x = PublicUserInfo{} - if protoimpl.UnsafeEnabled { - mi := &file_sdk_ws_ws_proto_msgTypes[2] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } +func (m *PublicUserInfo) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_PublicUserInfo.Unmarshal(m, b) } - -func (x *PublicUserInfo) String() string { - return protoimpl.X.MessageStringOf(x) +func (m *PublicUserInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_PublicUserInfo.Marshal(b, m, deterministic) } - -func (*PublicUserInfo) ProtoMessage() {} - -func (x *PublicUserInfo) ProtoReflect() protoreflect.Message { - mi := &file_sdk_ws_ws_proto_msgTypes[2] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) +func (dst *PublicUserInfo) XXX_Merge(src proto.Message) { + xxx_messageInfo_PublicUserInfo.Merge(dst, src) } - -// Deprecated: Use PublicUserInfo.ProtoReflect.Descriptor instead. -func (*PublicUserInfo) Descriptor() ([]byte, []int) { - return file_sdk_ws_ws_proto_rawDescGZIP(), []int{2} +func (m *PublicUserInfo) XXX_Size() int { + return xxx_messageInfo_PublicUserInfo.Size(m) +} +func (m *PublicUserInfo) XXX_DiscardUnknown() { + xxx_messageInfo_PublicUserInfo.DiscardUnknown(m) } -func (x *PublicUserInfo) GetUserID() string { - if x != nil { - return x.UserID +var xxx_messageInfo_PublicUserInfo proto.InternalMessageInfo + +func (m *PublicUserInfo) GetUserID() string { + if m != nil { + return m.UserID } return "" } -func (x *PublicUserInfo) GetNickname() string { - if x != nil { - return x.Nickname +func (m *PublicUserInfo) GetNickname() string { + if m != nil { + return m.Nickname } return "" } -func (x *PublicUserInfo) GetFaceURL() string { - if x != nil { - return x.FaceURL +func (m *PublicUserInfo) GetFaceURL() string { + if m != nil { + return m.FaceURL } return "" } -func (x *PublicUserInfo) GetGender() int32 { - if x != nil { - return x.Gender +func (m *PublicUserInfo) GetGender() int32 { + if m != nil { + return m.Gender } return 0 } -type UserInfo struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - UserID string `protobuf:"bytes,1,opt,name=userID,proto3" json:"userID,omitempty"` - Nickname string `protobuf:"bytes,2,opt,name=nickname,proto3" json:"nickname,omitempty"` - FaceURL string `protobuf:"bytes,3,opt,name=faceURL,proto3" json:"faceURL,omitempty"` - Gender int32 `protobuf:"varint,4,opt,name=gender,proto3" json:"gender,omitempty"` - PhoneNumber string `protobuf:"bytes,5,opt,name=phoneNumber,proto3" json:"phoneNumber,omitempty"` - Birth uint32 `protobuf:"varint,6,opt,name=birth,proto3" json:"birth,omitempty"` - Email string `protobuf:"bytes,7,opt,name=email,proto3" json:"email,omitempty"` - Ex string `protobuf:"bytes,8,opt,name=ex,proto3" json:"ex,omitempty"` - CreateTime uint32 `protobuf:"varint,9,opt,name=createTime,proto3" json:"createTime,omitempty"` - AppMangerLevel int32 `protobuf:"varint,10,opt,name=appMangerLevel,proto3" json:"appMangerLevel,omitempty"` -} - -func (x *UserInfo) Reset() { - *x = UserInfo{} - if protoimpl.UnsafeEnabled { - mi := &file_sdk_ws_ws_proto_msgTypes[3] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) +func (m *PublicUserInfo) GetEx() string { + if m != nil { + return m.Ex } + return "" } -func (x *UserInfo) String() string { - return protoimpl.X.MessageStringOf(x) +type UserInfo struct { + UserID string `protobuf:"bytes,1,opt,name=userID" json:"userID,omitempty"` + Nickname string `protobuf:"bytes,2,opt,name=nickname" json:"nickname,omitempty"` + FaceURL string `protobuf:"bytes,3,opt,name=faceURL" json:"faceURL,omitempty"` + Gender int32 `protobuf:"varint,4,opt,name=gender" json:"gender,omitempty"` + PhoneNumber string `protobuf:"bytes,5,opt,name=phoneNumber" json:"phoneNumber,omitempty"` + Birth uint32 `protobuf:"varint,6,opt,name=birth" json:"birth,omitempty"` + Email string `protobuf:"bytes,7,opt,name=email" json:"email,omitempty"` + Ex string `protobuf:"bytes,8,opt,name=ex" json:"ex,omitempty"` + CreateTime uint32 `protobuf:"varint,9,opt,name=createTime" json:"createTime,omitempty"` + AppMangerLevel int32 `protobuf:"varint,10,opt,name=appMangerLevel" json:"appMangerLevel,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +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_c5eabd6c93a174c0, []int{3} } - -func (*UserInfo) ProtoMessage() {} - -func (x *UserInfo) ProtoReflect() protoreflect.Message { - mi := &file_sdk_ws_ws_proto_msgTypes[3] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) +func (m *UserInfo) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_UserInfo.Unmarshal(m, b) } - -// Deprecated: Use UserInfo.ProtoReflect.Descriptor instead. -func (*UserInfo) Descriptor() ([]byte, []int) { - return file_sdk_ws_ws_proto_rawDescGZIP(), []int{3} +func (m *UserInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_UserInfo.Marshal(b, m, deterministic) } +func (dst *UserInfo) XXX_Merge(src proto.Message) { + xxx_messageInfo_UserInfo.Merge(dst, src) +} +func (m *UserInfo) XXX_Size() int { + return xxx_messageInfo_UserInfo.Size(m) +} +func (m *UserInfo) XXX_DiscardUnknown() { + xxx_messageInfo_UserInfo.DiscardUnknown(m) +} + +var xxx_messageInfo_UserInfo proto.InternalMessageInfo -func (x *UserInfo) GetUserID() string { - if x != nil { - return x.UserID +func (m *UserInfo) GetUserID() string { + if m != nil { + return m.UserID } return "" } -func (x *UserInfo) GetNickname() string { - if x != nil { - return x.Nickname +func (m *UserInfo) GetNickname() string { + if m != nil { + return m.Nickname } return "" } -func (x *UserInfo) GetFaceURL() string { - if x != nil { - return x.FaceURL +func (m *UserInfo) GetFaceURL() string { + if m != nil { + return m.FaceURL } return "" } -func (x *UserInfo) GetGender() int32 { - if x != nil { - return x.Gender +func (m *UserInfo) GetGender() int32 { + if m != nil { + return m.Gender } return 0 } -func (x *UserInfo) GetPhoneNumber() string { - if x != nil { - return x.PhoneNumber +func (m *UserInfo) GetPhoneNumber() string { + if m != nil { + return m.PhoneNumber } return "" } -func (x *UserInfo) GetBirth() uint32 { - if x != nil { - return x.Birth +func (m *UserInfo) GetBirth() uint32 { + if m != nil { + return m.Birth } return 0 } -func (x *UserInfo) GetEmail() string { - if x != nil { - return x.Email +func (m *UserInfo) GetEmail() string { + if m != nil { + return m.Email } return "" } -func (x *UserInfo) GetEx() string { - if x != nil { - return x.Ex +func (m *UserInfo) GetEx() string { + if m != nil { + return m.Ex } return "" } -func (x *UserInfo) GetCreateTime() uint32 { - if x != nil { - return x.CreateTime +func (m *UserInfo) GetCreateTime() uint32 { + if m != nil { + return m.CreateTime } return 0 } -func (x *UserInfo) GetAppMangerLevel() int32 { - if x != nil { - return x.AppMangerLevel +func (m *UserInfo) GetAppMangerLevel() int32 { + if m != nil { + return m.AppMangerLevel } return 0 } type FriendInfo struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - OwnerUserID string `protobuf:"bytes,1,opt,name=ownerUserID,proto3" json:"ownerUserID,omitempty"` - Remark string `protobuf:"bytes,2,opt,name=remark,proto3" json:"remark,omitempty"` - CreateTime uint32 `protobuf:"varint,3,opt,name=createTime,proto3" json:"createTime,omitempty"` - FriendUser *UserInfo `protobuf:"bytes,4,opt,name=friendUser,proto3" json:"friendUser,omitempty"` - AddSource int32 `protobuf:"varint,5,opt,name=addSource,proto3" json:"addSource,omitempty"` - OperatorUserID string `protobuf:"bytes,6,opt,name=operatorUserID,proto3" json:"operatorUserID,omitempty"` - Ex string `protobuf:"bytes,7,opt,name=ex,proto3" json:"ex,omitempty"` + OwnerUserID string `protobuf:"bytes,1,opt,name=ownerUserID" json:"ownerUserID,omitempty"` + Remark string `protobuf:"bytes,2,opt,name=remark" json:"remark,omitempty"` + CreateTime uint32 `protobuf:"varint,3,opt,name=createTime" json:"createTime,omitempty"` + FriendUser *UserInfo `protobuf:"bytes,4,opt,name=friendUser" json:"friendUser,omitempty"` + AddSource int32 `protobuf:"varint,5,opt,name=addSource" json:"addSource,omitempty"` + OperatorUserID string `protobuf:"bytes,6,opt,name=operatorUserID" json:"operatorUserID,omitempty"` + Ex string `protobuf:"bytes,7,opt,name=ex" json:"ex,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +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_c5eabd6c93a174c0, []int{4} } - -func (x *FriendInfo) Reset() { - *x = FriendInfo{} - if protoimpl.UnsafeEnabled { - mi := &file_sdk_ws_ws_proto_msgTypes[4] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } +func (m *FriendInfo) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_FriendInfo.Unmarshal(m, b) } - -func (x *FriendInfo) String() string { - return protoimpl.X.MessageStringOf(x) +func (m *FriendInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_FriendInfo.Marshal(b, m, deterministic) } - -func (*FriendInfo) ProtoMessage() {} - -func (x *FriendInfo) ProtoReflect() protoreflect.Message { - mi := &file_sdk_ws_ws_proto_msgTypes[4] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) +func (dst *FriendInfo) XXX_Merge(src proto.Message) { + xxx_messageInfo_FriendInfo.Merge(dst, src) } - -// Deprecated: Use FriendInfo.ProtoReflect.Descriptor instead. -func (*FriendInfo) Descriptor() ([]byte, []int) { - return file_sdk_ws_ws_proto_rawDescGZIP(), []int{4} +func (m *FriendInfo) XXX_Size() int { + return xxx_messageInfo_FriendInfo.Size(m) +} +func (m *FriendInfo) XXX_DiscardUnknown() { + xxx_messageInfo_FriendInfo.DiscardUnknown(m) } -func (x *FriendInfo) GetOwnerUserID() string { - if x != nil { - return x.OwnerUserID +var xxx_messageInfo_FriendInfo proto.InternalMessageInfo + +func (m *FriendInfo) GetOwnerUserID() string { + if m != nil { + return m.OwnerUserID } return "" } -func (x *FriendInfo) GetRemark() string { - if x != nil { - return x.Remark +func (m *FriendInfo) GetRemark() string { + if m != nil { + return m.Remark } return "" } -func (x *FriendInfo) GetCreateTime() uint32 { - if x != nil { - return x.CreateTime +func (m *FriendInfo) GetCreateTime() uint32 { + if m != nil { + return m.CreateTime } return 0 } -func (x *FriendInfo) GetFriendUser() *UserInfo { - if x != nil { - return x.FriendUser +func (m *FriendInfo) GetFriendUser() *UserInfo { + if m != nil { + return m.FriendUser } return nil } -func (x *FriendInfo) GetAddSource() int32 { - if x != nil { - return x.AddSource +func (m *FriendInfo) GetAddSource() int32 { + if m != nil { + return m.AddSource } return 0 } -func (x *FriendInfo) GetOperatorUserID() string { - if x != nil { - return x.OperatorUserID +func (m *FriendInfo) GetOperatorUserID() string { + if m != nil { + return m.OperatorUserID } return "" } -func (x *FriendInfo) GetEx() string { - if x != nil { - return x.Ex +func (m *FriendInfo) GetEx() string { + if m != nil { + return m.Ex } return "" } type BlackInfo struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - OwnerUserID string `protobuf:"bytes,1,opt,name=ownerUserID,proto3" json:"ownerUserID,omitempty"` - CreateTime uint32 `protobuf:"varint,2,opt,name=createTime,proto3" json:"createTime,omitempty"` - BlackUserInfo *PublicUserInfo `protobuf:"bytes,3,opt,name=blackUserInfo,proto3" json:"blackUserInfo,omitempty"` - AddSource int32 `protobuf:"varint,4,opt,name=addSource,proto3" json:"addSource,omitempty"` - OperatorUserID string `protobuf:"bytes,5,opt,name=operatorUserID,proto3" json:"operatorUserID,omitempty"` - Ex string `protobuf:"bytes,6,opt,name=ex,proto3" json:"ex,omitempty"` + OwnerUserID string `protobuf:"bytes,1,opt,name=ownerUserID" json:"ownerUserID,omitempty"` + CreateTime uint32 `protobuf:"varint,2,opt,name=createTime" json:"createTime,omitempty"` + BlackUserInfo *PublicUserInfo `protobuf:"bytes,3,opt,name=blackUserInfo" json:"blackUserInfo,omitempty"` + AddSource int32 `protobuf:"varint,4,opt,name=addSource" json:"addSource,omitempty"` + OperatorUserID string `protobuf:"bytes,5,opt,name=operatorUserID" json:"operatorUserID,omitempty"` + Ex string `protobuf:"bytes,6,opt,name=ex" json:"ex,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +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_c5eabd6c93a174c0, []int{5} } - -func (x *BlackInfo) Reset() { - *x = BlackInfo{} - if protoimpl.UnsafeEnabled { - mi := &file_sdk_ws_ws_proto_msgTypes[5] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } +func (m *BlackInfo) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_BlackInfo.Unmarshal(m, b) } - -func (x *BlackInfo) String() string { - return protoimpl.X.MessageStringOf(x) +func (m *BlackInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_BlackInfo.Marshal(b, m, deterministic) } - -func (*BlackInfo) ProtoMessage() {} - -func (x *BlackInfo) ProtoReflect() protoreflect.Message { - mi := &file_sdk_ws_ws_proto_msgTypes[5] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) +func (dst *BlackInfo) XXX_Merge(src proto.Message) { + xxx_messageInfo_BlackInfo.Merge(dst, src) } - -// Deprecated: Use BlackInfo.ProtoReflect.Descriptor instead. -func (*BlackInfo) Descriptor() ([]byte, []int) { - return file_sdk_ws_ws_proto_rawDescGZIP(), []int{5} +func (m *BlackInfo) XXX_Size() int { + return xxx_messageInfo_BlackInfo.Size(m) } +func (m *BlackInfo) XXX_DiscardUnknown() { + xxx_messageInfo_BlackInfo.DiscardUnknown(m) +} + +var xxx_messageInfo_BlackInfo proto.InternalMessageInfo -func (x *BlackInfo) GetOwnerUserID() string { - if x != nil { - return x.OwnerUserID +func (m *BlackInfo) GetOwnerUserID() string { + if m != nil { + return m.OwnerUserID } return "" } -func (x *BlackInfo) GetCreateTime() uint32 { - if x != nil { - return x.CreateTime +func (m *BlackInfo) GetCreateTime() uint32 { + if m != nil { + return m.CreateTime } return 0 } -func (x *BlackInfo) GetBlackUserInfo() *PublicUserInfo { - if x != nil { - return x.BlackUserInfo +func (m *BlackInfo) GetBlackUserInfo() *PublicUserInfo { + if m != nil { + return m.BlackUserInfo } return nil } -func (x *BlackInfo) GetAddSource() int32 { - if x != nil { - return x.AddSource +func (m *BlackInfo) GetAddSource() int32 { + if m != nil { + return m.AddSource } return 0 } -func (x *BlackInfo) GetOperatorUserID() string { - if x != nil { - return x.OperatorUserID +func (m *BlackInfo) GetOperatorUserID() string { + if m != nil { + return m.OperatorUserID } return "" } -func (x *BlackInfo) GetEx() string { - if x != nil { - return x.Ex +func (m *BlackInfo) GetEx() string { + if m != nil { + return m.Ex } return "" } type GroupRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - UserInfo *PublicUserInfo `protobuf:"bytes,1,opt,name=userInfo,proto3" json:"userInfo,omitempty"` - GroupInfo *GroupInfo `protobuf:"bytes,2,opt,name=groupInfo,proto3" json:"groupInfo,omitempty"` - HandleResult int32 `protobuf:"varint,3,opt,name=handleResult,proto3" json:"handleResult,omitempty"` - ReqMsg string `protobuf:"bytes,4,opt,name=reqMsg,proto3" json:"reqMsg,omitempty"` - HandleMsg string `protobuf:"bytes,5,opt,name=handleMsg,proto3" json:"handleMsg,omitempty"` - ReqTime uint32 `protobuf:"varint,6,opt,name=reqTime,proto3" json:"reqTime,omitempty"` - HandleUserID string `protobuf:"bytes,7,opt,name=handleUserID,proto3" json:"handleUserID,omitempty"` - HandleTime uint32 `protobuf:"varint,8,opt,name=handleTime,proto3" json:"handleTime,omitempty"` - Ex string `protobuf:"bytes,9,opt,name=ex,proto3" json:"ex,omitempty"` + UserInfo *PublicUserInfo `protobuf:"bytes,1,opt,name=userInfo" json:"userInfo,omitempty"` + GroupInfo *GroupInfo `protobuf:"bytes,2,opt,name=groupInfo" json:"groupInfo,omitempty"` + HandleResult int32 `protobuf:"varint,3,opt,name=handleResult" json:"handleResult,omitempty"` + ReqMsg string `protobuf:"bytes,4,opt,name=reqMsg" json:"reqMsg,omitempty"` + HandleMsg string `protobuf:"bytes,5,opt,name=handleMsg" json:"handleMsg,omitempty"` + ReqTime uint32 `protobuf:"varint,6,opt,name=reqTime" json:"reqTime,omitempty"` + HandleUserID string `protobuf:"bytes,7,opt,name=handleUserID" json:"handleUserID,omitempty"` + HandleTime uint32 `protobuf:"varint,8,opt,name=handleTime" json:"handleTime,omitempty"` + Ex string `protobuf:"bytes,9,opt,name=ex" json:"ex,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +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_c5eabd6c93a174c0, []int{6} } - -func (x *GroupRequest) Reset() { - *x = GroupRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_sdk_ws_ws_proto_msgTypes[6] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } +func (m *GroupRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GroupRequest.Unmarshal(m, b) } - -func (x *GroupRequest) String() string { - return protoimpl.X.MessageStringOf(x) +func (m *GroupRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GroupRequest.Marshal(b, m, deterministic) } - -func (*GroupRequest) ProtoMessage() {} - -func (x *GroupRequest) ProtoReflect() protoreflect.Message { - mi := &file_sdk_ws_ws_proto_msgTypes[6] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) +func (dst *GroupRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_GroupRequest.Merge(dst, src) } - -// Deprecated: Use GroupRequest.ProtoReflect.Descriptor instead. -func (*GroupRequest) Descriptor() ([]byte, []int) { - return file_sdk_ws_ws_proto_rawDescGZIP(), []int{6} +func (m *GroupRequest) XXX_Size() int { + return xxx_messageInfo_GroupRequest.Size(m) } +func (m *GroupRequest) XXX_DiscardUnknown() { + xxx_messageInfo_GroupRequest.DiscardUnknown(m) +} + +var xxx_messageInfo_GroupRequest proto.InternalMessageInfo -func (x *GroupRequest) GetUserInfo() *PublicUserInfo { - if x != nil { - return x.UserInfo +func (m *GroupRequest) GetUserInfo() *PublicUserInfo { + if m != nil { + return m.UserInfo } return nil } -func (x *GroupRequest) GetGroupInfo() *GroupInfo { - if x != nil { - return x.GroupInfo +func (m *GroupRequest) GetGroupInfo() *GroupInfo { + if m != nil { + return m.GroupInfo } return nil } -func (x *GroupRequest) GetHandleResult() int32 { - if x != nil { - return x.HandleResult +func (m *GroupRequest) GetHandleResult() int32 { + if m != nil { + return m.HandleResult } return 0 } -func (x *GroupRequest) GetReqMsg() string { - if x != nil { - return x.ReqMsg +func (m *GroupRequest) GetReqMsg() string { + if m != nil { + return m.ReqMsg } return "" } -func (x *GroupRequest) GetHandleMsg() string { - if x != nil { - return x.HandleMsg +func (m *GroupRequest) GetHandleMsg() string { + if m != nil { + return m.HandleMsg } return "" } -func (x *GroupRequest) GetReqTime() uint32 { - if x != nil { - return x.ReqTime +func (m *GroupRequest) GetReqTime() uint32 { + if m != nil { + return m.ReqTime } return 0 } -func (x *GroupRequest) GetHandleUserID() string { - if x != nil { - return x.HandleUserID +func (m *GroupRequest) GetHandleUserID() string { + if m != nil { + return m.HandleUserID } return "" } -func (x *GroupRequest) GetHandleTime() uint32 { - if x != nil { - return x.HandleTime +func (m *GroupRequest) GetHandleTime() uint32 { + if m != nil { + return m.HandleTime } return 0 } -func (x *GroupRequest) GetEx() string { - if x != nil { - return x.Ex +func (m *GroupRequest) GetEx() string { + if m != nil { + return m.Ex } return "" } type FriendRequest struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - FromUserID string `protobuf:"bytes,1,opt,name=fromUserID,proto3" json:"fromUserID,omitempty"` - FromNickname string `protobuf:"bytes,2,opt,name=fromNickname,proto3" json:"fromNickname,omitempty"` - FromFaceURL string `protobuf:"bytes,3,opt,name=fromFaceURL,proto3" json:"fromFaceURL,omitempty"` - FromGender int32 `protobuf:"varint,4,opt,name=fromGender,proto3" json:"fromGender,omitempty"` - ToUserID string `protobuf:"bytes,5,opt,name=toUserID,proto3" json:"toUserID,omitempty"` - ToNickname string `protobuf:"bytes,6,opt,name=toNickname,proto3" json:"toNickname,omitempty"` - ToFaceURL string `protobuf:"bytes,7,opt,name=toFaceURL,proto3" json:"toFaceURL,omitempty"` - ToGender int32 `protobuf:"varint,8,opt,name=toGender,proto3" json:"toGender,omitempty"` - HandleResult int32 `protobuf:"varint,9,opt,name=handleResult,proto3" json:"handleResult,omitempty"` - ReqMsg string `protobuf:"bytes,10,opt,name=reqMsg,proto3" json:"reqMsg,omitempty"` - CreateTime uint32 `protobuf:"varint,11,opt,name=createTime,proto3" json:"createTime,omitempty"` - HandlerUserID string `protobuf:"bytes,12,opt,name=handlerUserID,proto3" json:"handlerUserID,omitempty"` - HandleMsg string `protobuf:"bytes,13,opt,name=handleMsg,proto3" json:"handleMsg,omitempty"` - HandleTime uint32 `protobuf:"varint,14,opt,name=handleTime,proto3" json:"handleTime,omitempty"` - Ex string `protobuf:"bytes,15,opt,name=ex,proto3" json:"ex,omitempty"` + FromUserID string `protobuf:"bytes,1,opt,name=fromUserID" json:"fromUserID,omitempty"` + FromNickname string `protobuf:"bytes,2,opt,name=fromNickname" json:"fromNickname,omitempty"` + FromFaceURL string `protobuf:"bytes,3,opt,name=fromFaceURL" json:"fromFaceURL,omitempty"` + FromGender int32 `protobuf:"varint,4,opt,name=fromGender" json:"fromGender,omitempty"` + ToUserID string `protobuf:"bytes,5,opt,name=toUserID" json:"toUserID,omitempty"` + ToNickname string `protobuf:"bytes,6,opt,name=toNickname" json:"toNickname,omitempty"` + ToFaceURL string `protobuf:"bytes,7,opt,name=toFaceURL" json:"toFaceURL,omitempty"` + ToGender int32 `protobuf:"varint,8,opt,name=toGender" json:"toGender,omitempty"` + HandleResult int32 `protobuf:"varint,9,opt,name=handleResult" json:"handleResult,omitempty"` + ReqMsg string `protobuf:"bytes,10,opt,name=reqMsg" json:"reqMsg,omitempty"` + CreateTime uint32 `protobuf:"varint,11,opt,name=createTime" json:"createTime,omitempty"` + HandlerUserID string `protobuf:"bytes,12,opt,name=handlerUserID" json:"handlerUserID,omitempty"` + HandleMsg string `protobuf:"bytes,13,opt,name=handleMsg" json:"handleMsg,omitempty"` + HandleTime uint32 `protobuf:"varint,14,opt,name=handleTime" json:"handleTime,omitempty"` + Ex string `protobuf:"bytes,15,opt,name=ex" json:"ex,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +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_c5eabd6c93a174c0, []int{7} } - -func (x *FriendRequest) Reset() { - *x = FriendRequest{} - if protoimpl.UnsafeEnabled { - mi := &file_sdk_ws_ws_proto_msgTypes[7] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } +func (m *FriendRequest) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_FriendRequest.Unmarshal(m, b) } - -func (x *FriendRequest) String() string { - return protoimpl.X.MessageStringOf(x) +func (m *FriendRequest) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_FriendRequest.Marshal(b, m, deterministic) } - -func (*FriendRequest) ProtoMessage() {} - -func (x *FriendRequest) ProtoReflect() protoreflect.Message { - mi := &file_sdk_ws_ws_proto_msgTypes[7] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) +func (dst *FriendRequest) XXX_Merge(src proto.Message) { + xxx_messageInfo_FriendRequest.Merge(dst, src) } - -// Deprecated: Use FriendRequest.ProtoReflect.Descriptor instead. -func (*FriendRequest) Descriptor() ([]byte, []int) { - return file_sdk_ws_ws_proto_rawDescGZIP(), []int{7} +func (m *FriendRequest) XXX_Size() int { + return xxx_messageInfo_FriendRequest.Size(m) +} +func (m *FriendRequest) XXX_DiscardUnknown() { + xxx_messageInfo_FriendRequest.DiscardUnknown(m) } -func (x *FriendRequest) GetFromUserID() string { - if x != nil { - return x.FromUserID +var xxx_messageInfo_FriendRequest proto.InternalMessageInfo + +func (m *FriendRequest) GetFromUserID() string { + if m != nil { + return m.FromUserID } return "" } -func (x *FriendRequest) GetFromNickname() string { - if x != nil { - return x.FromNickname +func (m *FriendRequest) GetFromNickname() string { + if m != nil { + return m.FromNickname } return "" } -func (x *FriendRequest) GetFromFaceURL() string { - if x != nil { - return x.FromFaceURL +func (m *FriendRequest) GetFromFaceURL() string { + if m != nil { + return m.FromFaceURL } return "" } -func (x *FriendRequest) GetFromGender() int32 { - if x != nil { - return x.FromGender +func (m *FriendRequest) GetFromGender() int32 { + if m != nil { + return m.FromGender } return 0 } -func (x *FriendRequest) GetToUserID() string { - if x != nil { - return x.ToUserID +func (m *FriendRequest) GetToUserID() string { + if m != nil { + return m.ToUserID } return "" } -func (x *FriendRequest) GetToNickname() string { - if x != nil { - return x.ToNickname +func (m *FriendRequest) GetToNickname() string { + if m != nil { + return m.ToNickname } return "" } -func (x *FriendRequest) GetToFaceURL() string { - if x != nil { - return x.ToFaceURL +func (m *FriendRequest) GetToFaceURL() string { + if m != nil { + return m.ToFaceURL } return "" } -func (x *FriendRequest) GetToGender() int32 { - if x != nil { - return x.ToGender +func (m *FriendRequest) GetToGender() int32 { + if m != nil { + return m.ToGender } return 0 } -func (x *FriendRequest) GetHandleResult() int32 { - if x != nil { - return x.HandleResult +func (m *FriendRequest) GetHandleResult() int32 { + if m != nil { + return m.HandleResult } return 0 } -func (x *FriendRequest) GetReqMsg() string { - if x != nil { - return x.ReqMsg +func (m *FriendRequest) GetReqMsg() string { + if m != nil { + return m.ReqMsg } return "" } -func (x *FriendRequest) GetCreateTime() uint32 { - if x != nil { - return x.CreateTime +func (m *FriendRequest) GetCreateTime() uint32 { + if m != nil { + return m.CreateTime } return 0 } -func (x *FriendRequest) GetHandlerUserID() string { - if x != nil { - return x.HandlerUserID +func (m *FriendRequest) GetHandlerUserID() string { + if m != nil { + return m.HandlerUserID } return "" } -func (x *FriendRequest) GetHandleMsg() string { - if x != nil { - return x.HandleMsg +func (m *FriendRequest) GetHandleMsg() string { + if m != nil { + return m.HandleMsg } return "" } -func (x *FriendRequest) GetHandleTime() uint32 { - if x != nil { - return x.HandleTime +func (m *FriendRequest) GetHandleTime() uint32 { + if m != nil { + return m.HandleTime } return 0 } -func (x *FriendRequest) GetEx() string { - if x != nil { - return x.Ex +func (m *FriendRequest) GetEx() string { + if m != nil { + return m.Ex } return "" } type PullMessageBySeqListResp struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - ErrCode int32 `protobuf:"varint,1,opt,name=errCode,proto3" json:"errCode,omitempty"` - ErrMsg string `protobuf:"bytes,2,opt,name=errMsg,proto3" json:"errMsg,omitempty"` - List []*MsgData `protobuf:"bytes,3,rep,name=list,proto3" json:"list,omitempty"` + ErrCode int32 `protobuf:"varint,1,opt,name=errCode" json:"errCode,omitempty"` + ErrMsg string `protobuf:"bytes,2,opt,name=errMsg" json:"errMsg,omitempty"` + List []*MsgData `protobuf:"bytes,3,rep,name=list" json:"list,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (x *PullMessageBySeqListResp) Reset() { - *x = PullMessageBySeqListResp{} - if protoimpl.UnsafeEnabled { - mi := &file_sdk_ws_ws_proto_msgTypes[8] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } +func (m *PullMessageBySeqListResp) Reset() { *m = PullMessageBySeqListResp{} } +func (m *PullMessageBySeqListResp) String() string { return proto.CompactTextString(m) } +func (*PullMessageBySeqListResp) ProtoMessage() {} +func (*PullMessageBySeqListResp) Descriptor() ([]byte, []int) { + return fileDescriptor_ws_c5eabd6c93a174c0, []int{8} } - -func (x *PullMessageBySeqListResp) String() string { - return protoimpl.X.MessageStringOf(x) +func (m *PullMessageBySeqListResp) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_PullMessageBySeqListResp.Unmarshal(m, b) } - -func (*PullMessageBySeqListResp) ProtoMessage() {} - -func (x *PullMessageBySeqListResp) ProtoReflect() protoreflect.Message { - mi := &file_sdk_ws_ws_proto_msgTypes[8] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) +func (m *PullMessageBySeqListResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_PullMessageBySeqListResp.Marshal(b, m, deterministic) } - -// Deprecated: Use PullMessageBySeqListResp.ProtoReflect.Descriptor instead. -func (*PullMessageBySeqListResp) Descriptor() ([]byte, []int) { - return file_sdk_ws_ws_proto_rawDescGZIP(), []int{8} +func (dst *PullMessageBySeqListResp) XXX_Merge(src proto.Message) { + xxx_messageInfo_PullMessageBySeqListResp.Merge(dst, src) +} +func (m *PullMessageBySeqListResp) XXX_Size() int { + return xxx_messageInfo_PullMessageBySeqListResp.Size(m) } +func (m *PullMessageBySeqListResp) XXX_DiscardUnknown() { + xxx_messageInfo_PullMessageBySeqListResp.DiscardUnknown(m) +} + +var xxx_messageInfo_PullMessageBySeqListResp proto.InternalMessageInfo -func (x *PullMessageBySeqListResp) GetErrCode() int32 { - if x != nil { - return x.ErrCode +func (m *PullMessageBySeqListResp) GetErrCode() int32 { + if m != nil { + return m.ErrCode } return 0 } -func (x *PullMessageBySeqListResp) GetErrMsg() string { - if x != nil { - return x.ErrMsg +func (m *PullMessageBySeqListResp) GetErrMsg() string { + if m != nil { + return m.ErrMsg } return "" } -func (x *PullMessageBySeqListResp) GetList() []*MsgData { - if x != nil { - return x.List +func (m *PullMessageBySeqListResp) GetList() []*MsgData { + if m != nil { + return m.List } return nil } type PullMessageBySeqListReq struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - UserID string `protobuf:"bytes,1,opt,name=userID,proto3" json:"userID,omitempty"` - OperationID string `protobuf:"bytes,2,opt,name=operationID,proto3" json:"operationID,omitempty"` - SeqList []uint32 `protobuf:"varint,3,rep,packed,name=seqList,proto3" json:"seqList,omitempty"` + UserID string `protobuf:"bytes,1,opt,name=userID" json:"userID,omitempty"` + OperationID string `protobuf:"bytes,2,opt,name=operationID" json:"operationID,omitempty"` + SeqList []uint32 `protobuf:"varint,3,rep,packed,name=seqList" json:"seqList,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (x *PullMessageBySeqListReq) Reset() { - *x = PullMessageBySeqListReq{} - if protoimpl.UnsafeEnabled { - mi := &file_sdk_ws_ws_proto_msgTypes[9] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } +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_c5eabd6c93a174c0, []int{9} } - -func (x *PullMessageBySeqListReq) String() string { - return protoimpl.X.MessageStringOf(x) +func (m *PullMessageBySeqListReq) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_PullMessageBySeqListReq.Unmarshal(m, b) } - -func (*PullMessageBySeqListReq) ProtoMessage() {} - -func (x *PullMessageBySeqListReq) ProtoReflect() protoreflect.Message { - mi := &file_sdk_ws_ws_proto_msgTypes[9] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) +func (m *PullMessageBySeqListReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_PullMessageBySeqListReq.Marshal(b, m, deterministic) } - -// Deprecated: Use PullMessageBySeqListReq.ProtoReflect.Descriptor instead. -func (*PullMessageBySeqListReq) Descriptor() ([]byte, []int) { - return file_sdk_ws_ws_proto_rawDescGZIP(), []int{9} +func (dst *PullMessageBySeqListReq) XXX_Merge(src proto.Message) { + xxx_messageInfo_PullMessageBySeqListReq.Merge(dst, src) +} +func (m *PullMessageBySeqListReq) XXX_Size() int { + return xxx_messageInfo_PullMessageBySeqListReq.Size(m) +} +func (m *PullMessageBySeqListReq) XXX_DiscardUnknown() { + xxx_messageInfo_PullMessageBySeqListReq.DiscardUnknown(m) } -func (x *PullMessageBySeqListReq) GetUserID() string { - if x != nil { - return x.UserID +var xxx_messageInfo_PullMessageBySeqListReq proto.InternalMessageInfo + +func (m *PullMessageBySeqListReq) GetUserID() string { + if m != nil { + return m.UserID } return "" } -func (x *PullMessageBySeqListReq) GetOperationID() string { - if x != nil { - return x.OperationID +func (m *PullMessageBySeqListReq) GetOperationID() string { + if m != nil { + return m.OperationID } return "" } -func (x *PullMessageBySeqListReq) GetSeqList() []uint32 { - if x != nil { - return x.SeqList +func (m *PullMessageBySeqListReq) GetSeqList() []uint32 { + if m != nil { + return m.SeqList } return nil } type GetMaxAndMinSeqReq struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields -} - -func (x *GetMaxAndMinSeqReq) Reset() { - *x = GetMaxAndMinSeqReq{} - if protoimpl.UnsafeEnabled { - mi := &file_sdk_ws_ws_proto_msgTypes[10] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (x *GetMaxAndMinSeqReq) String() string { - return protoimpl.X.MessageStringOf(x) +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_c5eabd6c93a174c0, []int{10} } - -func (*GetMaxAndMinSeqReq) ProtoMessage() {} - -func (x *GetMaxAndMinSeqReq) ProtoReflect() protoreflect.Message { - mi := &file_sdk_ws_ws_proto_msgTypes[10] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) +func (m *GetMaxAndMinSeqReq) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GetMaxAndMinSeqReq.Unmarshal(m, b) } - -// Deprecated: Use GetMaxAndMinSeqReq.ProtoReflect.Descriptor instead. -func (*GetMaxAndMinSeqReq) Descriptor() ([]byte, []int) { - return file_sdk_ws_ws_proto_rawDescGZIP(), []int{10} +func (m *GetMaxAndMinSeqReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GetMaxAndMinSeqReq.Marshal(b, m, deterministic) } - -type GetMaxAndMinSeqResp struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - MaxSeq uint32 `protobuf:"varint,1,opt,name=maxSeq,proto3" json:"maxSeq,omitempty"` - MinSeq uint32 `protobuf:"varint,2,opt,name=minSeq,proto3" json:"minSeq,omitempty"` +func (dst *GetMaxAndMinSeqReq) XXX_Merge(src proto.Message) { + xxx_messageInfo_GetMaxAndMinSeqReq.Merge(dst, src) } - -func (x *GetMaxAndMinSeqResp) Reset() { - *x = GetMaxAndMinSeqResp{} - if protoimpl.UnsafeEnabled { - mi := &file_sdk_ws_ws_proto_msgTypes[11] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } +func (m *GetMaxAndMinSeqReq) XXX_Size() int { + return xxx_messageInfo_GetMaxAndMinSeqReq.Size(m) } - -func (x *GetMaxAndMinSeqResp) String() string { - return protoimpl.X.MessageStringOf(x) +func (m *GetMaxAndMinSeqReq) XXX_DiscardUnknown() { + xxx_messageInfo_GetMaxAndMinSeqReq.DiscardUnknown(m) } -func (*GetMaxAndMinSeqResp) ProtoMessage() {} +var xxx_messageInfo_GetMaxAndMinSeqReq proto.InternalMessageInfo -func (x *GetMaxAndMinSeqResp) ProtoReflect() protoreflect.Message { - mi := &file_sdk_ws_ws_proto_msgTypes[11] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) +type GetMaxAndMinSeqResp struct { + MaxSeq uint32 `protobuf:"varint,1,opt,name=maxSeq" json:"maxSeq,omitempty"` + MinSeq uint32 `protobuf:"varint,2,opt,name=minSeq" json:"minSeq,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -// Deprecated: Use GetMaxAndMinSeqResp.ProtoReflect.Descriptor instead. +func (m *GetMaxAndMinSeqResp) Reset() { *m = GetMaxAndMinSeqResp{} } +func (m *GetMaxAndMinSeqResp) String() string { return proto.CompactTextString(m) } +func (*GetMaxAndMinSeqResp) ProtoMessage() {} func (*GetMaxAndMinSeqResp) Descriptor() ([]byte, []int) { - return file_sdk_ws_ws_proto_rawDescGZIP(), []int{11} + return fileDescriptor_ws_c5eabd6c93a174c0, []int{11} +} +func (m *GetMaxAndMinSeqResp) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GetMaxAndMinSeqResp.Unmarshal(m, b) +} +func (m *GetMaxAndMinSeqResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GetMaxAndMinSeqResp.Marshal(b, m, deterministic) +} +func (dst *GetMaxAndMinSeqResp) XXX_Merge(src proto.Message) { + xxx_messageInfo_GetMaxAndMinSeqResp.Merge(dst, src) +} +func (m *GetMaxAndMinSeqResp) XXX_Size() int { + return xxx_messageInfo_GetMaxAndMinSeqResp.Size(m) +} +func (m *GetMaxAndMinSeqResp) XXX_DiscardUnknown() { + xxx_messageInfo_GetMaxAndMinSeqResp.DiscardUnknown(m) } -func (x *GetMaxAndMinSeqResp) GetMaxSeq() uint32 { - if x != nil { - return x.MaxSeq +var xxx_messageInfo_GetMaxAndMinSeqResp proto.InternalMessageInfo + +func (m *GetMaxAndMinSeqResp) GetMaxSeq() uint32 { + if m != nil { + return m.MaxSeq } return 0 } -func (x *GetMaxAndMinSeqResp) GetMinSeq() uint32 { - if x != nil { - return x.MinSeq +func (m *GetMaxAndMinSeqResp) GetMinSeq() uint32 { + if m != nil { + return m.MinSeq } return 0 } type UserSendMsgResp struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - ServerMsgID string `protobuf:"bytes,1,opt,name=serverMsgID,proto3" json:"serverMsgID,omitempty"` - ClientMsgID string `protobuf:"bytes,2,opt,name=clientMsgID,proto3" json:"clientMsgID,omitempty"` - SendTime int64 `protobuf:"varint,3,opt,name=sendTime,proto3" json:"sendTime,omitempty"` + ServerMsgID string `protobuf:"bytes,1,opt,name=serverMsgID" json:"serverMsgID,omitempty"` + ClientMsgID string `protobuf:"bytes,2,opt,name=clientMsgID" json:"clientMsgID,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 (x *UserSendMsgResp) Reset() { - *x = UserSendMsgResp{} - if protoimpl.UnsafeEnabled { - mi := &file_sdk_ws_ws_proto_msgTypes[12] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } +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_c5eabd6c93a174c0, []int{12} } - -func (x *UserSendMsgResp) String() string { - return protoimpl.X.MessageStringOf(x) +func (m *UserSendMsgResp) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_UserSendMsgResp.Unmarshal(m, b) } - -func (*UserSendMsgResp) ProtoMessage() {} - -func (x *UserSendMsgResp) ProtoReflect() protoreflect.Message { - mi := &file_sdk_ws_ws_proto_msgTypes[12] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) +func (m *UserSendMsgResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_UserSendMsgResp.Marshal(b, m, deterministic) } - -// Deprecated: Use UserSendMsgResp.ProtoReflect.Descriptor instead. -func (*UserSendMsgResp) Descriptor() ([]byte, []int) { - return file_sdk_ws_ws_proto_rawDescGZIP(), []int{12} +func (dst *UserSendMsgResp) XXX_Merge(src proto.Message) { + xxx_messageInfo_UserSendMsgResp.Merge(dst, src) +} +func (m *UserSendMsgResp) XXX_Size() int { + return xxx_messageInfo_UserSendMsgResp.Size(m) } +func (m *UserSendMsgResp) XXX_DiscardUnknown() { + xxx_messageInfo_UserSendMsgResp.DiscardUnknown(m) +} + +var xxx_messageInfo_UserSendMsgResp proto.InternalMessageInfo -func (x *UserSendMsgResp) GetServerMsgID() string { - if x != nil { - return x.ServerMsgID +func (m *UserSendMsgResp) GetServerMsgID() string { + if m != nil { + return m.ServerMsgID } return "" } -func (x *UserSendMsgResp) GetClientMsgID() string { - if x != nil { - return x.ClientMsgID +func (m *UserSendMsgResp) GetClientMsgID() string { + if m != nil { + return m.ClientMsgID } return "" } -func (x *UserSendMsgResp) GetSendTime() int64 { - if x != nil { - return x.SendTime +func (m *UserSendMsgResp) GetSendTime() int64 { + if m != nil { + return m.SendTime } return 0 } type MsgData struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - SendID string `protobuf:"bytes,1,opt,name=sendID,proto3" json:"sendID,omitempty"` - RecvID string `protobuf:"bytes,2,opt,name=recvID,proto3" json:"recvID,omitempty"` - GroupID string `protobuf:"bytes,3,opt,name=groupID,proto3" json:"groupID,omitempty"` - ClientMsgID string `protobuf:"bytes,4,opt,name=clientMsgID,proto3" json:"clientMsgID,omitempty"` - ServerMsgID string `protobuf:"bytes,5,opt,name=serverMsgID,proto3" json:"serverMsgID,omitempty"` - SenderPlatformID int32 `protobuf:"varint,6,opt,name=senderPlatformID,proto3" json:"senderPlatformID,omitempty"` - SenderNickname string `protobuf:"bytes,7,opt,name=senderNickname,proto3" json:"senderNickname,omitempty"` - SenderFaceURL string `protobuf:"bytes,8,opt,name=senderFaceURL,proto3" json:"senderFaceURL,omitempty"` - SessionType int32 `protobuf:"varint,9,opt,name=sessionType,proto3" json:"sessionType,omitempty"` - MsgFrom int32 `protobuf:"varint,10,opt,name=msgFrom,proto3" json:"msgFrom,omitempty"` - ContentType int32 `protobuf:"varint,11,opt,name=contentType,proto3" json:"contentType,omitempty"` - Content []byte `protobuf:"bytes,12,opt,name=content,proto3" json:"content,omitempty"` - Seq uint32 `protobuf:"varint,14,opt,name=seq,proto3" json:"seq,omitempty"` - SendTime int64 `protobuf:"varint,15,opt,name=sendTime,proto3" json:"sendTime,omitempty"` - CreateTime int64 `protobuf:"varint,16,opt,name=createTime,proto3" json:"createTime,omitempty"` - Status int32 `protobuf:"varint,17,opt,name=status,proto3" json:"status,omitempty"` - Options map[string]bool `protobuf:"bytes,18,rep,name=options,proto3" json:"options,omitempty" protobuf_key:"bytes,1,opt,name=key,proto3" protobuf_val:"varint,2,opt,name=value,proto3"` - OfflinePushInfo *OfflinePushInfo `protobuf:"bytes,19,opt,name=offlinePushInfo,proto3" json:"offlinePushInfo,omitempty"` -} - -func (x *MsgData) Reset() { - *x = MsgData{} - if protoimpl.UnsafeEnabled { - mi := &file_sdk_ws_ws_proto_msgTypes[13] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } -} - -func (x *MsgData) String() string { - return protoimpl.X.MessageStringOf(x) -} - -func (*MsgData) ProtoMessage() {} - -func (x *MsgData) ProtoReflect() protoreflect.Message { - mi := &file_sdk_ws_ws_proto_msgTypes[13] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) -} - -// Deprecated: Use MsgData.ProtoReflect.Descriptor instead. + SendID string `protobuf:"bytes,1,opt,name=sendID" json:"sendID,omitempty"` + RecvID string `protobuf:"bytes,2,opt,name=recvID" json:"recvID,omitempty"` + GroupID string `protobuf:"bytes,3,opt,name=groupID" json:"groupID,omitempty"` + ClientMsgID string `protobuf:"bytes,4,opt,name=clientMsgID" json:"clientMsgID,omitempty"` + ServerMsgID string `protobuf:"bytes,5,opt,name=serverMsgID" json:"serverMsgID,omitempty"` + SenderPlatformID int32 `protobuf:"varint,6,opt,name=senderPlatformID" json:"senderPlatformID,omitempty"` + SenderNickname string `protobuf:"bytes,7,opt,name=senderNickname" json:"senderNickname,omitempty"` + SenderFaceURL string `protobuf:"bytes,8,opt,name=senderFaceURL" json:"senderFaceURL,omitempty"` + SessionType int32 `protobuf:"varint,9,opt,name=sessionType" json:"sessionType,omitempty"` + MsgFrom int32 `protobuf:"varint,10,opt,name=msgFrom" json:"msgFrom,omitempty"` + ContentType int32 `protobuf:"varint,11,opt,name=contentType" json:"contentType,omitempty"` + Content []byte `protobuf:"bytes,12,opt,name=content,proto3" json:"content,omitempty"` + 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"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *MsgData) Reset() { *m = MsgData{} } +func (m *MsgData) String() string { return proto.CompactTextString(m) } +func (*MsgData) ProtoMessage() {} func (*MsgData) Descriptor() ([]byte, []int) { - return file_sdk_ws_ws_proto_rawDescGZIP(), []int{13} + return fileDescriptor_ws_c5eabd6c93a174c0, []int{13} +} +func (m *MsgData) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_MsgData.Unmarshal(m, b) +} +func (m *MsgData) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_MsgData.Marshal(b, m, deterministic) +} +func (dst *MsgData) XXX_Merge(src proto.Message) { + xxx_messageInfo_MsgData.Merge(dst, src) +} +func (m *MsgData) XXX_Size() int { + return xxx_messageInfo_MsgData.Size(m) +} +func (m *MsgData) XXX_DiscardUnknown() { + xxx_messageInfo_MsgData.DiscardUnknown(m) } -func (x *MsgData) GetSendID() string { - if x != nil { - return x.SendID +var xxx_messageInfo_MsgData proto.InternalMessageInfo + +func (m *MsgData) GetSendID() string { + if m != nil { + return m.SendID } return "" } -func (x *MsgData) GetRecvID() string { - if x != nil { - return x.RecvID +func (m *MsgData) GetRecvID() string { + if m != nil { + return m.RecvID } return "" } -func (x *MsgData) GetGroupID() string { - if x != nil { - return x.GroupID +func (m *MsgData) GetGroupID() string { + if m != nil { + return m.GroupID } return "" } -func (x *MsgData) GetClientMsgID() string { - if x != nil { - return x.ClientMsgID +func (m *MsgData) GetClientMsgID() string { + if m != nil { + return m.ClientMsgID } return "" } -func (x *MsgData) GetServerMsgID() string { - if x != nil { - return x.ServerMsgID +func (m *MsgData) GetServerMsgID() string { + if m != nil { + return m.ServerMsgID } return "" } -func (x *MsgData) GetSenderPlatformID() int32 { - if x != nil { - return x.SenderPlatformID +func (m *MsgData) GetSenderPlatformID() int32 { + if m != nil { + return m.SenderPlatformID } return 0 } -func (x *MsgData) GetSenderNickname() string { - if x != nil { - return x.SenderNickname +func (m *MsgData) GetSenderNickname() string { + if m != nil { + return m.SenderNickname } return "" } -func (x *MsgData) GetSenderFaceURL() string { - if x != nil { - return x.SenderFaceURL +func (m *MsgData) GetSenderFaceURL() string { + if m != nil { + return m.SenderFaceURL } return "" } -func (x *MsgData) GetSessionType() int32 { - if x != nil { - return x.SessionType +func (m *MsgData) GetSessionType() int32 { + if m != nil { + return m.SessionType } return 0 } -func (x *MsgData) GetMsgFrom() int32 { - if x != nil { - return x.MsgFrom +func (m *MsgData) GetMsgFrom() int32 { + if m != nil { + return m.MsgFrom } return 0 } -func (x *MsgData) GetContentType() int32 { - if x != nil { - return x.ContentType +func (m *MsgData) GetContentType() int32 { + if m != nil { + return m.ContentType } return 0 } -func (x *MsgData) GetContent() []byte { - if x != nil { - return x.Content +func (m *MsgData) GetContent() []byte { + if m != nil { + return m.Content } return nil } -func (x *MsgData) GetSeq() uint32 { - if x != nil { - return x.Seq +func (m *MsgData) GetSeq() uint32 { + if m != nil { + return m.Seq } return 0 } -func (x *MsgData) GetSendTime() int64 { - if x != nil { - return x.SendTime +func (m *MsgData) GetSendTime() int64 { + if m != nil { + return m.SendTime } return 0 } -func (x *MsgData) GetCreateTime() int64 { - if x != nil { - return x.CreateTime +func (m *MsgData) GetCreateTime() int64 { + if m != nil { + return m.CreateTime } return 0 } -func (x *MsgData) GetStatus() int32 { - if x != nil { - return x.Status +func (m *MsgData) GetStatus() int32 { + if m != nil { + return m.Status } return 0 } -func (x *MsgData) GetOptions() map[string]bool { - if x != nil { - return x.Options +func (m *MsgData) GetOptions() map[string]bool { + if m != nil { + return m.Options } return nil } -func (x *MsgData) GetOfflinePushInfo() *OfflinePushInfo { - if x != nil { - return x.OfflinePushInfo +func (m *MsgData) GetOfflinePushInfo() *OfflinePushInfo { + if m != nil { + return m.OfflinePushInfo } return nil } type OfflinePushInfo struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Title string `protobuf:"bytes,1,opt,name=title,proto3" json:"title,omitempty"` - Desc string `protobuf:"bytes,2,opt,name=desc,proto3" json:"desc,omitempty"` - Ex string `protobuf:"bytes,3,opt,name=ex,proto3" json:"ex,omitempty"` - IOSPushSound string `protobuf:"bytes,4,opt,name=iOSPushSound,proto3" json:"iOSPushSound,omitempty"` - IOSBadgeCount bool `protobuf:"varint,5,opt,name=iOSBadgeCount,proto3" json:"iOSBadgeCount,omitempty"` + Title string `protobuf:"bytes,1,opt,name=title" json:"title,omitempty"` + Desc string `protobuf:"bytes,2,opt,name=desc" json:"desc,omitempty"` + Ex string `protobuf:"bytes,3,opt,name=ex" json:"ex,omitempty"` + IOSPushSound string `protobuf:"bytes,4,opt,name=iOSPushSound" json:"iOSPushSound,omitempty"` + IOSBadgeCount bool `protobuf:"varint,5,opt,name=iOSBadgeCount" json:"iOSBadgeCount,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +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_c5eabd6c93a174c0, []int{14} } - -func (x *OfflinePushInfo) Reset() { - *x = OfflinePushInfo{} - if protoimpl.UnsafeEnabled { - mi := &file_sdk_ws_ws_proto_msgTypes[14] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } +func (m *OfflinePushInfo) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_OfflinePushInfo.Unmarshal(m, b) } - -func (x *OfflinePushInfo) String() string { - return protoimpl.X.MessageStringOf(x) +func (m *OfflinePushInfo) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_OfflinePushInfo.Marshal(b, m, deterministic) } - -func (*OfflinePushInfo) ProtoMessage() {} - -func (x *OfflinePushInfo) ProtoReflect() protoreflect.Message { - mi := &file_sdk_ws_ws_proto_msgTypes[14] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) +func (dst *OfflinePushInfo) XXX_Merge(src proto.Message) { + xxx_messageInfo_OfflinePushInfo.Merge(dst, src) } - -// Deprecated: Use OfflinePushInfo.ProtoReflect.Descriptor instead. -func (*OfflinePushInfo) Descriptor() ([]byte, []int) { - return file_sdk_ws_ws_proto_rawDescGZIP(), []int{14} +func (m *OfflinePushInfo) XXX_Size() int { + return xxx_messageInfo_OfflinePushInfo.Size(m) +} +func (m *OfflinePushInfo) XXX_DiscardUnknown() { + xxx_messageInfo_OfflinePushInfo.DiscardUnknown(m) } -func (x *OfflinePushInfo) GetTitle() string { - if x != nil { - return x.Title +var xxx_messageInfo_OfflinePushInfo proto.InternalMessageInfo + +func (m *OfflinePushInfo) GetTitle() string { + if m != nil { + return m.Title } return "" } -func (x *OfflinePushInfo) GetDesc() string { - if x != nil { - return x.Desc +func (m *OfflinePushInfo) GetDesc() string { + if m != nil { + return m.Desc } return "" } -func (x *OfflinePushInfo) GetEx() string { - if x != nil { - return x.Ex +func (m *OfflinePushInfo) GetEx() string { + if m != nil { + return m.Ex } return "" } -func (x *OfflinePushInfo) GetIOSPushSound() string { - if x != nil { - return x.IOSPushSound +func (m *OfflinePushInfo) GetIOSPushSound() string { + if m != nil { + return m.IOSPushSound } return "" } -func (x *OfflinePushInfo) GetIOSBadgeCount() bool { - if x != nil { - return x.IOSBadgeCount +func (m *OfflinePushInfo) GetIOSBadgeCount() bool { + if m != nil { + return m.IOSBadgeCount } return false } type TipsComm struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Detail []byte `protobuf:"bytes,1,opt,name=detail,proto3" json:"detail,omitempty"` - DefaultTips string `protobuf:"bytes,2,opt,name=defaultTips,proto3" json:"defaultTips,omitempty"` - JsonDetail string `protobuf:"bytes,3,opt,name=jsonDetail,proto3" json:"jsonDetail,omitempty"` + Detail []byte `protobuf:"bytes,1,opt,name=detail,proto3" json:"detail,omitempty"` + DefaultTips string `protobuf:"bytes,2,opt,name=defaultTips" json:"defaultTips,omitempty"` + JsonDetail string `protobuf:"bytes,3,opt,name=jsonDetail" json:"jsonDetail,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (x *TipsComm) Reset() { - *x = TipsComm{} - if protoimpl.UnsafeEnabled { - mi := &file_sdk_ws_ws_proto_msgTypes[15] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } +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_c5eabd6c93a174c0, []int{15} } - -func (x *TipsComm) String() string { - return protoimpl.X.MessageStringOf(x) +func (m *TipsComm) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_TipsComm.Unmarshal(m, b) } - -func (*TipsComm) ProtoMessage() {} - -func (x *TipsComm) ProtoReflect() protoreflect.Message { - mi := &file_sdk_ws_ws_proto_msgTypes[15] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) +func (m *TipsComm) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_TipsComm.Marshal(b, m, deterministic) } - -// Deprecated: Use TipsComm.ProtoReflect.Descriptor instead. -func (*TipsComm) Descriptor() ([]byte, []int) { - return file_sdk_ws_ws_proto_rawDescGZIP(), []int{15} +func (dst *TipsComm) XXX_Merge(src proto.Message) { + xxx_messageInfo_TipsComm.Merge(dst, src) +} +func (m *TipsComm) XXX_Size() int { + return xxx_messageInfo_TipsComm.Size(m) } +func (m *TipsComm) XXX_DiscardUnknown() { + xxx_messageInfo_TipsComm.DiscardUnknown(m) +} + +var xxx_messageInfo_TipsComm proto.InternalMessageInfo -func (x *TipsComm) GetDetail() []byte { - if x != nil { - return x.Detail +func (m *TipsComm) GetDetail() []byte { + if m != nil { + return m.Detail } return nil } -func (x *TipsComm) GetDefaultTips() string { - if x != nil { - return x.DefaultTips +func (m *TipsComm) GetDefaultTips() string { + if m != nil { + return m.DefaultTips } return "" } -func (x *TipsComm) GetJsonDetail() string { - if x != nil { - return x.JsonDetail +func (m *TipsComm) GetJsonDetail() string { + if m != nil { + return m.JsonDetail } return "" } -// OnGroupCreated() +// OnGroupCreated() type GroupCreatedTips struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Group *GroupInfo `protobuf:"bytes,1,opt,name=group,proto3" json:"group,omitempty"` - OpUser *GroupMemberFullInfo `protobuf:"bytes,2,opt,name=opUser,proto3" json:"opUser,omitempty"` - MemberList []*GroupMemberFullInfo `protobuf:"bytes,3,rep,name=memberList,proto3" json:"memberList,omitempty"` - OperationTime int64 `protobuf:"varint,4,opt,name=operationTime,proto3" json:"operationTime,omitempty"` - GroupOwnerUser *GroupMemberFullInfo `protobuf:"bytes,5,opt,name=groupOwnerUser,proto3" json:"groupOwnerUser,omitempty"` + Group *GroupInfo `protobuf:"bytes,1,opt,name=group" json:"group,omitempty"` + OpUser *GroupMemberFullInfo `protobuf:"bytes,2,opt,name=opUser" json:"opUser,omitempty"` + MemberList []*GroupMemberFullInfo `protobuf:"bytes,3,rep,name=memberList" json:"memberList,omitempty"` + OperationTime int64 `protobuf:"varint,4,opt,name=operationTime" json:"operationTime,omitempty"` + GroupOwnerUser *GroupMemberFullInfo `protobuf:"bytes,5,opt,name=groupOwnerUser" json:"groupOwnerUser,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +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_c5eabd6c93a174c0, []int{16} } - -func (x *GroupCreatedTips) Reset() { - *x = GroupCreatedTips{} - if protoimpl.UnsafeEnabled { - mi := &file_sdk_ws_ws_proto_msgTypes[16] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } +func (m *GroupCreatedTips) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GroupCreatedTips.Unmarshal(m, b) } - -func (x *GroupCreatedTips) String() string { - return protoimpl.X.MessageStringOf(x) +func (m *GroupCreatedTips) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GroupCreatedTips.Marshal(b, m, deterministic) } - -func (*GroupCreatedTips) ProtoMessage() {} - -func (x *GroupCreatedTips) ProtoReflect() protoreflect.Message { - mi := &file_sdk_ws_ws_proto_msgTypes[16] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) +func (dst *GroupCreatedTips) XXX_Merge(src proto.Message) { + xxx_messageInfo_GroupCreatedTips.Merge(dst, src) } - -// Deprecated: Use GroupCreatedTips.ProtoReflect.Descriptor instead. -func (*GroupCreatedTips) Descriptor() ([]byte, []int) { - return file_sdk_ws_ws_proto_rawDescGZIP(), []int{16} +func (m *GroupCreatedTips) XXX_Size() int { + return xxx_messageInfo_GroupCreatedTips.Size(m) +} +func (m *GroupCreatedTips) XXX_DiscardUnknown() { + xxx_messageInfo_GroupCreatedTips.DiscardUnknown(m) } -func (x *GroupCreatedTips) GetGroup() *GroupInfo { - if x != nil { - return x.Group +var xxx_messageInfo_GroupCreatedTips proto.InternalMessageInfo + +func (m *GroupCreatedTips) GetGroup() *GroupInfo { + if m != nil { + return m.Group } return nil } -func (x *GroupCreatedTips) GetOpUser() *GroupMemberFullInfo { - if x != nil { - return x.OpUser +func (m *GroupCreatedTips) GetOpUser() *GroupMemberFullInfo { + if m != nil { + return m.OpUser } return nil } -func (x *GroupCreatedTips) GetMemberList() []*GroupMemberFullInfo { - if x != nil { - return x.MemberList +func (m *GroupCreatedTips) GetMemberList() []*GroupMemberFullInfo { + if m != nil { + return m.MemberList } return nil } -func (x *GroupCreatedTips) GetOperationTime() int64 { - if x != nil { - return x.OperationTime +func (m *GroupCreatedTips) GetOperationTime() int64 { + if m != nil { + return m.OperationTime } return 0 } -func (x *GroupCreatedTips) GetGroupOwnerUser() *GroupMemberFullInfo { - if x != nil { - return x.GroupOwnerUser +func (m *GroupCreatedTips) GetGroupOwnerUser() *GroupMemberFullInfo { + if m != nil { + return m.GroupOwnerUser } return nil } -// OnGroupInfoSet() +// OnGroupInfoSet() type GroupInfoSetTips struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - OpUser *GroupMemberFullInfo `protobuf:"bytes,1,opt,name=opUser,proto3" json:"opUser,omitempty"` //who do this - MuteTime int64 `protobuf:"varint,2,opt,name=muteTime,proto3" json:"muteTime,omitempty"` - Group *GroupInfo `protobuf:"bytes,3,opt,name=group,proto3" json:"group,omitempty"` + OpUser *GroupMemberFullInfo `protobuf:"bytes,1,opt,name=opUser" json:"opUser,omitempty"` + MuteTime int64 `protobuf:"varint,2,opt,name=muteTime" json:"muteTime,omitempty"` + Group *GroupInfo `protobuf:"bytes,3,opt,name=group" json:"group,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (x *GroupInfoSetTips) Reset() { - *x = GroupInfoSetTips{} - if protoimpl.UnsafeEnabled { - mi := &file_sdk_ws_ws_proto_msgTypes[17] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } +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_c5eabd6c93a174c0, []int{17} } - -func (x *GroupInfoSetTips) String() string { - return protoimpl.X.MessageStringOf(x) +func (m *GroupInfoSetTips) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GroupInfoSetTips.Unmarshal(m, b) } - -func (*GroupInfoSetTips) ProtoMessage() {} - -func (x *GroupInfoSetTips) ProtoReflect() protoreflect.Message { - mi := &file_sdk_ws_ws_proto_msgTypes[17] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) +func (m *GroupInfoSetTips) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GroupInfoSetTips.Marshal(b, m, deterministic) } - -// Deprecated: Use GroupInfoSetTips.ProtoReflect.Descriptor instead. -func (*GroupInfoSetTips) Descriptor() ([]byte, []int) { - return file_sdk_ws_ws_proto_rawDescGZIP(), []int{17} +func (dst *GroupInfoSetTips) XXX_Merge(src proto.Message) { + xxx_messageInfo_GroupInfoSetTips.Merge(dst, src) +} +func (m *GroupInfoSetTips) XXX_Size() int { + return xxx_messageInfo_GroupInfoSetTips.Size(m) } +func (m *GroupInfoSetTips) XXX_DiscardUnknown() { + xxx_messageInfo_GroupInfoSetTips.DiscardUnknown(m) +} + +var xxx_messageInfo_GroupInfoSetTips proto.InternalMessageInfo -func (x *GroupInfoSetTips) GetOpUser() *GroupMemberFullInfo { - if x != nil { - return x.OpUser +func (m *GroupInfoSetTips) GetOpUser() *GroupMemberFullInfo { + if m != nil { + return m.OpUser } return nil } -func (x *GroupInfoSetTips) GetMuteTime() int64 { - if x != nil { - return x.MuteTime +func (m *GroupInfoSetTips) GetMuteTime() int64 { + if m != nil { + return m.MuteTime } return 0 } -func (x *GroupInfoSetTips) GetGroup() *GroupInfo { - if x != nil { - return x.Group +func (m *GroupInfoSetTips) GetGroup() *GroupInfo { + if m != nil { + return m.Group } return nil } -// OnJoinGroupApplication() +// OnJoinGroupApplication() type JoinGroupApplicationTips struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Group *GroupInfo `protobuf:"bytes,1,opt,name=group,proto3" json:"group,omitempty"` - Applicant *PublicUserInfo `protobuf:"bytes,2,opt,name=applicant,proto3" json:"applicant,omitempty"` - ReqMsg string `protobuf:"bytes,3,opt,name=reqMsg,proto3" json:"reqMsg,omitempty"` + Group *GroupInfo `protobuf:"bytes,1,opt,name=group" json:"group,omitempty"` + Applicant *PublicUserInfo `protobuf:"bytes,2,opt,name=applicant" json:"applicant,omitempty"` + ReqMsg string `protobuf:"bytes,3,opt,name=reqMsg" json:"reqMsg,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (x *JoinGroupApplicationTips) Reset() { - *x = JoinGroupApplicationTips{} - if protoimpl.UnsafeEnabled { - mi := &file_sdk_ws_ws_proto_msgTypes[18] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } +func (m *JoinGroupApplicationTips) Reset() { *m = JoinGroupApplicationTips{} } +func (m *JoinGroupApplicationTips) String() string { return proto.CompactTextString(m) } +func (*JoinGroupApplicationTips) ProtoMessage() {} +func (*JoinGroupApplicationTips) Descriptor() ([]byte, []int) { + return fileDescriptor_ws_c5eabd6c93a174c0, []int{18} } - -func (x *JoinGroupApplicationTips) String() string { - return protoimpl.X.MessageStringOf(x) +func (m *JoinGroupApplicationTips) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_JoinGroupApplicationTips.Unmarshal(m, b) } - -func (*JoinGroupApplicationTips) ProtoMessage() {} - -func (x *JoinGroupApplicationTips) ProtoReflect() protoreflect.Message { - mi := &file_sdk_ws_ws_proto_msgTypes[18] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) +func (m *JoinGroupApplicationTips) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_JoinGroupApplicationTips.Marshal(b, m, deterministic) } - -// Deprecated: Use JoinGroupApplicationTips.ProtoReflect.Descriptor instead. -func (*JoinGroupApplicationTips) Descriptor() ([]byte, []int) { - return file_sdk_ws_ws_proto_rawDescGZIP(), []int{18} +func (dst *JoinGroupApplicationTips) XXX_Merge(src proto.Message) { + xxx_messageInfo_JoinGroupApplicationTips.Merge(dst, src) +} +func (m *JoinGroupApplicationTips) XXX_Size() int { + return xxx_messageInfo_JoinGroupApplicationTips.Size(m) +} +func (m *JoinGroupApplicationTips) XXX_DiscardUnknown() { + xxx_messageInfo_JoinGroupApplicationTips.DiscardUnknown(m) } -func (x *JoinGroupApplicationTips) GetGroup() *GroupInfo { - if x != nil { - return x.Group +var xxx_messageInfo_JoinGroupApplicationTips proto.InternalMessageInfo + +func (m *JoinGroupApplicationTips) GetGroup() *GroupInfo { + if m != nil { + return m.Group } return nil } -func (x *JoinGroupApplicationTips) GetApplicant() *PublicUserInfo { - if x != nil { - return x.Applicant +func (m *JoinGroupApplicationTips) GetApplicant() *PublicUserInfo { + if m != nil { + return m.Applicant } return nil } -func (x *JoinGroupApplicationTips) GetReqMsg() string { - if x != nil { - return x.ReqMsg +func (m *JoinGroupApplicationTips) GetReqMsg() string { + if m != nil { + return m.ReqMsg } return "" } -// OnQuitGroup() -//Actively leave the group +// OnQuitGroup() +// Actively leave the group type MemberQuitTips struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Group *GroupInfo `protobuf:"bytes,1,opt,name=group,proto3" json:"group,omitempty"` - QuitUser *GroupMemberFullInfo `protobuf:"bytes,2,opt,name=quitUser,proto3" json:"quitUser,omitempty"` - OperationTime int64 `protobuf:"varint,3,opt,name=operationTime,proto3" json:"operationTime,omitempty"` + Group *GroupInfo `protobuf:"bytes,1,opt,name=group" json:"group,omitempty"` + QuitUser *GroupMemberFullInfo `protobuf:"bytes,2,opt,name=quitUser" json:"quitUser,omitempty"` + OperationTime int64 `protobuf:"varint,3,opt,name=operationTime" json:"operationTime,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (x *MemberQuitTips) Reset() { - *x = MemberQuitTips{} - if protoimpl.UnsafeEnabled { - mi := &file_sdk_ws_ws_proto_msgTypes[19] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } +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_c5eabd6c93a174c0, []int{19} } - -func (x *MemberQuitTips) String() string { - return protoimpl.X.MessageStringOf(x) +func (m *MemberQuitTips) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_MemberQuitTips.Unmarshal(m, b) } - -func (*MemberQuitTips) ProtoMessage() {} - -func (x *MemberQuitTips) ProtoReflect() protoreflect.Message { - mi := &file_sdk_ws_ws_proto_msgTypes[19] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) +func (m *MemberQuitTips) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_MemberQuitTips.Marshal(b, m, deterministic) } - -// Deprecated: Use MemberQuitTips.ProtoReflect.Descriptor instead. -func (*MemberQuitTips) Descriptor() ([]byte, []int) { - return file_sdk_ws_ws_proto_rawDescGZIP(), []int{19} +func (dst *MemberQuitTips) XXX_Merge(src proto.Message) { + xxx_messageInfo_MemberQuitTips.Merge(dst, src) +} +func (m *MemberQuitTips) XXX_Size() int { + return xxx_messageInfo_MemberQuitTips.Size(m) } +func (m *MemberQuitTips) XXX_DiscardUnknown() { + xxx_messageInfo_MemberQuitTips.DiscardUnknown(m) +} + +var xxx_messageInfo_MemberQuitTips proto.InternalMessageInfo -func (x *MemberQuitTips) GetGroup() *GroupInfo { - if x != nil { - return x.Group +func (m *MemberQuitTips) GetGroup() *GroupInfo { + if m != nil { + return m.Group } return nil } -func (x *MemberQuitTips) GetQuitUser() *GroupMemberFullInfo { - if x != nil { - return x.QuitUser +func (m *MemberQuitTips) GetQuitUser() *GroupMemberFullInfo { + if m != nil { + return m.QuitUser } return nil } -func (x *MemberQuitTips) GetOperationTime() int64 { - if x != nil { - return x.OperationTime +func (m *MemberQuitTips) GetOperationTime() int64 { + if m != nil { + return m.OperationTime } return 0 } -// OnApplicationGroupAccepted() +// OnApplicationGroupAccepted() type GroupApplicationAcceptedTips struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Group *GroupInfo `protobuf:"bytes,1,opt,name=group,proto3" json:"group,omitempty"` - OpUser *GroupMemberFullInfo `protobuf:"bytes,2,opt,name=opUser,proto3" json:"opUser,omitempty"` - HandleMsg string `protobuf:"bytes,4,opt,name=handleMsg,proto3" json:"handleMsg,omitempty"` + Group *GroupInfo `protobuf:"bytes,1,opt,name=group" json:"group,omitempty"` + OpUser *GroupMemberFullInfo `protobuf:"bytes,2,opt,name=opUser" json:"opUser,omitempty"` + HandleMsg string `protobuf:"bytes,4,opt,name=handleMsg" json:"handleMsg,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (x *GroupApplicationAcceptedTips) Reset() { - *x = GroupApplicationAcceptedTips{} - if protoimpl.UnsafeEnabled { - mi := &file_sdk_ws_ws_proto_msgTypes[20] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } +func (m *GroupApplicationAcceptedTips) Reset() { *m = GroupApplicationAcceptedTips{} } +func (m *GroupApplicationAcceptedTips) String() string { return proto.CompactTextString(m) } +func (*GroupApplicationAcceptedTips) ProtoMessage() {} +func (*GroupApplicationAcceptedTips) Descriptor() ([]byte, []int) { + return fileDescriptor_ws_c5eabd6c93a174c0, []int{20} } - -func (x *GroupApplicationAcceptedTips) String() string { - return protoimpl.X.MessageStringOf(x) +func (m *GroupApplicationAcceptedTips) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GroupApplicationAcceptedTips.Unmarshal(m, b) } - -func (*GroupApplicationAcceptedTips) ProtoMessage() {} - -func (x *GroupApplicationAcceptedTips) ProtoReflect() protoreflect.Message { - mi := &file_sdk_ws_ws_proto_msgTypes[20] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) +func (m *GroupApplicationAcceptedTips) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GroupApplicationAcceptedTips.Marshal(b, m, deterministic) } - -// Deprecated: Use GroupApplicationAcceptedTips.ProtoReflect.Descriptor instead. -func (*GroupApplicationAcceptedTips) Descriptor() ([]byte, []int) { - return file_sdk_ws_ws_proto_rawDescGZIP(), []int{20} +func (dst *GroupApplicationAcceptedTips) XXX_Merge(src proto.Message) { + xxx_messageInfo_GroupApplicationAcceptedTips.Merge(dst, src) +} +func (m *GroupApplicationAcceptedTips) XXX_Size() int { + return xxx_messageInfo_GroupApplicationAcceptedTips.Size(m) +} +func (m *GroupApplicationAcceptedTips) XXX_DiscardUnknown() { + xxx_messageInfo_GroupApplicationAcceptedTips.DiscardUnknown(m) } -func (x *GroupApplicationAcceptedTips) GetGroup() *GroupInfo { - if x != nil { - return x.Group +var xxx_messageInfo_GroupApplicationAcceptedTips proto.InternalMessageInfo + +func (m *GroupApplicationAcceptedTips) GetGroup() *GroupInfo { + if m != nil { + return m.Group } return nil } -func (x *GroupApplicationAcceptedTips) GetOpUser() *GroupMemberFullInfo { - if x != nil { - return x.OpUser +func (m *GroupApplicationAcceptedTips) GetOpUser() *GroupMemberFullInfo { + if m != nil { + return m.OpUser } return nil } -func (x *GroupApplicationAcceptedTips) GetHandleMsg() string { - if x != nil { - return x.HandleMsg +func (m *GroupApplicationAcceptedTips) GetHandleMsg() string { + if m != nil { + return m.HandleMsg } return "" } -// OnApplicationGroupRejected() +// OnApplicationGroupRejected() type GroupApplicationRejectedTips struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Group *GroupInfo `protobuf:"bytes,1,opt,name=group,proto3" json:"group,omitempty"` - OpUser *GroupMemberFullInfo `protobuf:"bytes,2,opt,name=opUser,proto3" json:"opUser,omitempty"` - HandleMsg string `protobuf:"bytes,4,opt,name=handleMsg,proto3" json:"handleMsg,omitempty"` + Group *GroupInfo `protobuf:"bytes,1,opt,name=group" json:"group,omitempty"` + OpUser *GroupMemberFullInfo `protobuf:"bytes,2,opt,name=opUser" json:"opUser,omitempty"` + HandleMsg string `protobuf:"bytes,4,opt,name=handleMsg" json:"handleMsg,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (x *GroupApplicationRejectedTips) Reset() { - *x = GroupApplicationRejectedTips{} - if protoimpl.UnsafeEnabled { - mi := &file_sdk_ws_ws_proto_msgTypes[21] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } +func (m *GroupApplicationRejectedTips) Reset() { *m = GroupApplicationRejectedTips{} } +func (m *GroupApplicationRejectedTips) String() string { return proto.CompactTextString(m) } +func (*GroupApplicationRejectedTips) ProtoMessage() {} +func (*GroupApplicationRejectedTips) Descriptor() ([]byte, []int) { + return fileDescriptor_ws_c5eabd6c93a174c0, []int{21} } - -func (x *GroupApplicationRejectedTips) String() string { - return protoimpl.X.MessageStringOf(x) +func (m *GroupApplicationRejectedTips) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GroupApplicationRejectedTips.Unmarshal(m, b) } - -func (*GroupApplicationRejectedTips) ProtoMessage() {} - -func (x *GroupApplicationRejectedTips) ProtoReflect() protoreflect.Message { - mi := &file_sdk_ws_ws_proto_msgTypes[21] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) +func (m *GroupApplicationRejectedTips) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GroupApplicationRejectedTips.Marshal(b, m, deterministic) } - -// Deprecated: Use GroupApplicationRejectedTips.ProtoReflect.Descriptor instead. -func (*GroupApplicationRejectedTips) Descriptor() ([]byte, []int) { - return file_sdk_ws_ws_proto_rawDescGZIP(), []int{21} +func (dst *GroupApplicationRejectedTips) XXX_Merge(src proto.Message) { + xxx_messageInfo_GroupApplicationRejectedTips.Merge(dst, src) +} +func (m *GroupApplicationRejectedTips) XXX_Size() int { + return xxx_messageInfo_GroupApplicationRejectedTips.Size(m) } +func (m *GroupApplicationRejectedTips) XXX_DiscardUnknown() { + xxx_messageInfo_GroupApplicationRejectedTips.DiscardUnknown(m) +} + +var xxx_messageInfo_GroupApplicationRejectedTips proto.InternalMessageInfo -func (x *GroupApplicationRejectedTips) GetGroup() *GroupInfo { - if x != nil { - return x.Group +func (m *GroupApplicationRejectedTips) GetGroup() *GroupInfo { + if m != nil { + return m.Group } return nil } -func (x *GroupApplicationRejectedTips) GetOpUser() *GroupMemberFullInfo { - if x != nil { - return x.OpUser +func (m *GroupApplicationRejectedTips) GetOpUser() *GroupMemberFullInfo { + if m != nil { + return m.OpUser } return nil } -func (x *GroupApplicationRejectedTips) GetHandleMsg() string { - if x != nil { - return x.HandleMsg +func (m *GroupApplicationRejectedTips) GetHandleMsg() string { + if m != nil { + return m.HandleMsg } return "" } -// OnTransferGroupOwner() +// OnTransferGroupOwner() type GroupOwnerTransferredTips struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Group *GroupInfo `protobuf:"bytes,1,opt,name=group,proto3" json:"group,omitempty"` - OpUser *GroupMemberFullInfo `protobuf:"bytes,2,opt,name=opUser,proto3" json:"opUser,omitempty"` - NewGroupOwner *GroupMemberFullInfo `protobuf:"bytes,3,opt,name=newGroupOwner,proto3" json:"newGroupOwner,omitempty"` - OperationTime int64 `protobuf:"varint,4,opt,name=operationTime,proto3" json:"operationTime,omitempty"` + Group *GroupInfo `protobuf:"bytes,1,opt,name=group" json:"group,omitempty"` + OpUser *GroupMemberFullInfo `protobuf:"bytes,2,opt,name=opUser" json:"opUser,omitempty"` + NewGroupOwner *GroupMemberFullInfo `protobuf:"bytes,3,opt,name=newGroupOwner" json:"newGroupOwner,omitempty"` + OperationTime int64 `protobuf:"varint,4,opt,name=operationTime" json:"operationTime,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +func (m *GroupOwnerTransferredTips) Reset() { *m = GroupOwnerTransferredTips{} } +func (m *GroupOwnerTransferredTips) String() string { return proto.CompactTextString(m) } +func (*GroupOwnerTransferredTips) ProtoMessage() {} +func (*GroupOwnerTransferredTips) Descriptor() ([]byte, []int) { + return fileDescriptor_ws_c5eabd6c93a174c0, []int{22} } - -func (x *GroupOwnerTransferredTips) Reset() { - *x = GroupOwnerTransferredTips{} - if protoimpl.UnsafeEnabled { - mi := &file_sdk_ws_ws_proto_msgTypes[22] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } +func (m *GroupOwnerTransferredTips) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_GroupOwnerTransferredTips.Unmarshal(m, b) } - -func (x *GroupOwnerTransferredTips) String() string { - return protoimpl.X.MessageStringOf(x) +func (m *GroupOwnerTransferredTips) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_GroupOwnerTransferredTips.Marshal(b, m, deterministic) } - -func (*GroupOwnerTransferredTips) ProtoMessage() {} - -func (x *GroupOwnerTransferredTips) ProtoReflect() protoreflect.Message { - mi := &file_sdk_ws_ws_proto_msgTypes[22] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) +func (dst *GroupOwnerTransferredTips) XXX_Merge(src proto.Message) { + xxx_messageInfo_GroupOwnerTransferredTips.Merge(dst, src) } - -// Deprecated: Use GroupOwnerTransferredTips.ProtoReflect.Descriptor instead. -func (*GroupOwnerTransferredTips) Descriptor() ([]byte, []int) { - return file_sdk_ws_ws_proto_rawDescGZIP(), []int{22} +func (m *GroupOwnerTransferredTips) XXX_Size() int { + return xxx_messageInfo_GroupOwnerTransferredTips.Size(m) +} +func (m *GroupOwnerTransferredTips) XXX_DiscardUnknown() { + xxx_messageInfo_GroupOwnerTransferredTips.DiscardUnknown(m) } -func (x *GroupOwnerTransferredTips) GetGroup() *GroupInfo { - if x != nil { - return x.Group +var xxx_messageInfo_GroupOwnerTransferredTips proto.InternalMessageInfo + +func (m *GroupOwnerTransferredTips) GetGroup() *GroupInfo { + if m != nil { + return m.Group } return nil } -func (x *GroupOwnerTransferredTips) GetOpUser() *GroupMemberFullInfo { - if x != nil { - return x.OpUser +func (m *GroupOwnerTransferredTips) GetOpUser() *GroupMemberFullInfo { + if m != nil { + return m.OpUser } return nil } -func (x *GroupOwnerTransferredTips) GetNewGroupOwner() *GroupMemberFullInfo { - if x != nil { - return x.NewGroupOwner +func (m *GroupOwnerTransferredTips) GetNewGroupOwner() *GroupMemberFullInfo { + if m != nil { + return m.NewGroupOwner } return nil } -func (x *GroupOwnerTransferredTips) GetOperationTime() int64 { - if x != nil { - return x.OperationTime +func (m *GroupOwnerTransferredTips) GetOperationTime() int64 { + if m != nil { + return m.OperationTime } return 0 } -// OnMemberKicked() +// OnMemberKicked() type MemberKickedTips struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Group *GroupInfo `protobuf:"bytes,1,opt,name=group,proto3" json:"group,omitempty"` - OpUser *GroupMemberFullInfo `protobuf:"bytes,2,opt,name=opUser,proto3" json:"opUser,omitempty"` - KickedUserList []*GroupMemberFullInfo `protobuf:"bytes,3,rep,name=kickedUserList,proto3" json:"kickedUserList,omitempty"` - OperationTime int64 `protobuf:"varint,4,opt,name=operationTime,proto3" json:"operationTime,omitempty"` + Group *GroupInfo `protobuf:"bytes,1,opt,name=group" json:"group,omitempty"` + OpUser *GroupMemberFullInfo `protobuf:"bytes,2,opt,name=opUser" json:"opUser,omitempty"` + KickedUserList []*GroupMemberFullInfo `protobuf:"bytes,3,rep,name=kickedUserList" json:"kickedUserList,omitempty"` + OperationTime int64 `protobuf:"varint,4,opt,name=operationTime" json:"operationTime,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +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_c5eabd6c93a174c0, []int{23} } - -func (x *MemberKickedTips) Reset() { - *x = MemberKickedTips{} - if protoimpl.UnsafeEnabled { - mi := &file_sdk_ws_ws_proto_msgTypes[23] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } +func (m *MemberKickedTips) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_MemberKickedTips.Unmarshal(m, b) } - -func (x *MemberKickedTips) String() string { - return protoimpl.X.MessageStringOf(x) +func (m *MemberKickedTips) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_MemberKickedTips.Marshal(b, m, deterministic) } - -func (*MemberKickedTips) ProtoMessage() {} - -func (x *MemberKickedTips) ProtoReflect() protoreflect.Message { - mi := &file_sdk_ws_ws_proto_msgTypes[23] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) +func (dst *MemberKickedTips) XXX_Merge(src proto.Message) { + xxx_messageInfo_MemberKickedTips.Merge(dst, src) } - -// Deprecated: Use MemberKickedTips.ProtoReflect.Descriptor instead. -func (*MemberKickedTips) Descriptor() ([]byte, []int) { - return file_sdk_ws_ws_proto_rawDescGZIP(), []int{23} +func (m *MemberKickedTips) XXX_Size() int { + return xxx_messageInfo_MemberKickedTips.Size(m) } +func (m *MemberKickedTips) XXX_DiscardUnknown() { + xxx_messageInfo_MemberKickedTips.DiscardUnknown(m) +} + +var xxx_messageInfo_MemberKickedTips proto.InternalMessageInfo -func (x *MemberKickedTips) GetGroup() *GroupInfo { - if x != nil { - return x.Group +func (m *MemberKickedTips) GetGroup() *GroupInfo { + if m != nil { + return m.Group } return nil } -func (x *MemberKickedTips) GetOpUser() *GroupMemberFullInfo { - if x != nil { - return x.OpUser +func (m *MemberKickedTips) GetOpUser() *GroupMemberFullInfo { + if m != nil { + return m.OpUser } return nil } -func (x *MemberKickedTips) GetKickedUserList() []*GroupMemberFullInfo { - if x != nil { - return x.KickedUserList +func (m *MemberKickedTips) GetKickedUserList() []*GroupMemberFullInfo { + if m != nil { + return m.KickedUserList } return nil } -func (x *MemberKickedTips) GetOperationTime() int64 { - if x != nil { - return x.OperationTime +func (m *MemberKickedTips) GetOperationTime() int64 { + if m != nil { + return m.OperationTime } return 0 } -// OnMemberInvited() +// OnMemberInvited() type MemberInvitedTips struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Group *GroupInfo `protobuf:"bytes,1,opt,name=group,proto3" json:"group,omitempty"` - OpUser *GroupMemberFullInfo `protobuf:"bytes,2,opt,name=opUser,proto3" json:"opUser,omitempty"` - InvitedUserList []*GroupMemberFullInfo `protobuf:"bytes,3,rep,name=invitedUserList,proto3" json:"invitedUserList,omitempty"` - OperationTime int64 `protobuf:"varint,4,opt,name=operationTime,proto3" json:"operationTime,omitempty"` + Group *GroupInfo `protobuf:"bytes,1,opt,name=group" json:"group,omitempty"` + OpUser *GroupMemberFullInfo `protobuf:"bytes,2,opt,name=opUser" json:"opUser,omitempty"` + InvitedUserList []*GroupMemberFullInfo `protobuf:"bytes,3,rep,name=invitedUserList" json:"invitedUserList,omitempty"` + OperationTime int64 `protobuf:"varint,4,opt,name=operationTime" json:"operationTime,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` +} + +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_c5eabd6c93a174c0, []int{24} } - -func (x *MemberInvitedTips) Reset() { - *x = MemberInvitedTips{} - if protoimpl.UnsafeEnabled { - mi := &file_sdk_ws_ws_proto_msgTypes[24] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } +func (m *MemberInvitedTips) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_MemberInvitedTips.Unmarshal(m, b) } - -func (x *MemberInvitedTips) String() string { - return protoimpl.X.MessageStringOf(x) +func (m *MemberInvitedTips) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_MemberInvitedTips.Marshal(b, m, deterministic) } - -func (*MemberInvitedTips) ProtoMessage() {} - -func (x *MemberInvitedTips) ProtoReflect() protoreflect.Message { - mi := &file_sdk_ws_ws_proto_msgTypes[24] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) +func (dst *MemberInvitedTips) XXX_Merge(src proto.Message) { + xxx_messageInfo_MemberInvitedTips.Merge(dst, src) } - -// Deprecated: Use MemberInvitedTips.ProtoReflect.Descriptor instead. -func (*MemberInvitedTips) Descriptor() ([]byte, []int) { - return file_sdk_ws_ws_proto_rawDescGZIP(), []int{24} +func (m *MemberInvitedTips) XXX_Size() int { + return xxx_messageInfo_MemberInvitedTips.Size(m) } +func (m *MemberInvitedTips) XXX_DiscardUnknown() { + xxx_messageInfo_MemberInvitedTips.DiscardUnknown(m) +} + +var xxx_messageInfo_MemberInvitedTips proto.InternalMessageInfo -func (x *MemberInvitedTips) GetGroup() *GroupInfo { - if x != nil { - return x.Group +func (m *MemberInvitedTips) GetGroup() *GroupInfo { + if m != nil { + return m.Group } return nil } -func (x *MemberInvitedTips) GetOpUser() *GroupMemberFullInfo { - if x != nil { - return x.OpUser +func (m *MemberInvitedTips) GetOpUser() *GroupMemberFullInfo { + if m != nil { + return m.OpUser } return nil } -func (x *MemberInvitedTips) GetInvitedUserList() []*GroupMemberFullInfo { - if x != nil { - return x.InvitedUserList +func (m *MemberInvitedTips) GetInvitedUserList() []*GroupMemberFullInfo { + if m != nil { + return m.InvitedUserList } return nil } -func (x *MemberInvitedTips) GetOperationTime() int64 { - if x != nil { - return x.OperationTime +func (m *MemberInvitedTips) GetOperationTime() int64 { + if m != nil { + return m.OperationTime } return 0 } -//Actively join the group +// Actively join the group type MemberEnterTips struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Group *GroupInfo `protobuf:"bytes,1,opt,name=group,proto3" json:"group,omitempty"` - EntrantUser *GroupMemberFullInfo `protobuf:"bytes,2,opt,name=entrantUser,proto3" json:"entrantUser,omitempty"` - OperationTime int64 `protobuf:"varint,3,opt,name=operationTime,proto3" json:"operationTime,omitempty"` + Group *GroupInfo `protobuf:"bytes,1,opt,name=group" json:"group,omitempty"` + EntrantUser *GroupMemberFullInfo `protobuf:"bytes,2,opt,name=entrantUser" json:"entrantUser,omitempty"` + OperationTime int64 `protobuf:"varint,3,opt,name=operationTime" json:"operationTime,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (x *MemberEnterTips) Reset() { - *x = MemberEnterTips{} - if protoimpl.UnsafeEnabled { - mi := &file_sdk_ws_ws_proto_msgTypes[25] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } +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_c5eabd6c93a174c0, []int{25} } - -func (x *MemberEnterTips) String() string { - return protoimpl.X.MessageStringOf(x) +func (m *MemberEnterTips) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_MemberEnterTips.Unmarshal(m, b) } - -func (*MemberEnterTips) ProtoMessage() {} - -func (x *MemberEnterTips) ProtoReflect() protoreflect.Message { - mi := &file_sdk_ws_ws_proto_msgTypes[25] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) +func (m *MemberEnterTips) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_MemberEnterTips.Marshal(b, m, deterministic) } - -// Deprecated: Use MemberEnterTips.ProtoReflect.Descriptor instead. -func (*MemberEnterTips) Descriptor() ([]byte, []int) { - return file_sdk_ws_ws_proto_rawDescGZIP(), []int{25} +func (dst *MemberEnterTips) XXX_Merge(src proto.Message) { + xxx_messageInfo_MemberEnterTips.Merge(dst, src) +} +func (m *MemberEnterTips) XXX_Size() int { + return xxx_messageInfo_MemberEnterTips.Size(m) +} +func (m *MemberEnterTips) XXX_DiscardUnknown() { + xxx_messageInfo_MemberEnterTips.DiscardUnknown(m) } -func (x *MemberEnterTips) GetGroup() *GroupInfo { - if x != nil { - return x.Group +var xxx_messageInfo_MemberEnterTips proto.InternalMessageInfo + +func (m *MemberEnterTips) GetGroup() *GroupInfo { + if m != nil { + return m.Group } return nil } -func (x *MemberEnterTips) GetEntrantUser() *GroupMemberFullInfo { - if x != nil { - return x.EntrantUser +func (m *MemberEnterTips) GetEntrantUser() *GroupMemberFullInfo { + if m != nil { + return m.EntrantUser } return nil } -func (x *MemberEnterTips) GetOperationTime() int64 { - if x != nil { - return x.OperationTime +func (m *MemberEnterTips) GetOperationTime() int64 { + if m != nil { + return m.OperationTime } return 0 } type FriendApplication struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - AddTime int64 `protobuf:"varint,1,opt,name=addTime,proto3" json:"addTime,omitempty"` - AddSource string `protobuf:"bytes,2,opt,name=addSource,proto3" json:"addSource,omitempty"` - AddWording string `protobuf:"bytes,3,opt,name=addWording,proto3" json:"addWording,omitempty"` + AddTime int64 `protobuf:"varint,1,opt,name=addTime" json:"addTime,omitempty"` + AddSource string `protobuf:"bytes,2,opt,name=addSource" json:"addSource,omitempty"` + AddWording string `protobuf:"bytes,3,opt,name=addWording" json:"addWording,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (x *FriendApplication) Reset() { - *x = FriendApplication{} - if protoimpl.UnsafeEnabled { - mi := &file_sdk_ws_ws_proto_msgTypes[26] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } +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_c5eabd6c93a174c0, []int{26} } - -func (x *FriendApplication) String() string { - return protoimpl.X.MessageStringOf(x) +func (m *FriendApplication) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_FriendApplication.Unmarshal(m, b) } - -func (*FriendApplication) ProtoMessage() {} - -func (x *FriendApplication) ProtoReflect() protoreflect.Message { - mi := &file_sdk_ws_ws_proto_msgTypes[26] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) +func (m *FriendApplication) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_FriendApplication.Marshal(b, m, deterministic) } - -// Deprecated: Use FriendApplication.ProtoReflect.Descriptor instead. -func (*FriendApplication) Descriptor() ([]byte, []int) { - return file_sdk_ws_ws_proto_rawDescGZIP(), []int{26} +func (dst *FriendApplication) XXX_Merge(src proto.Message) { + xxx_messageInfo_FriendApplication.Merge(dst, src) +} +func (m *FriendApplication) XXX_Size() int { + return xxx_messageInfo_FriendApplication.Size(m) } +func (m *FriendApplication) XXX_DiscardUnknown() { + xxx_messageInfo_FriendApplication.DiscardUnknown(m) +} + +var xxx_messageInfo_FriendApplication proto.InternalMessageInfo -func (x *FriendApplication) GetAddTime() int64 { - if x != nil { - return x.AddTime +func (m *FriendApplication) GetAddTime() int64 { + if m != nil { + return m.AddTime } return 0 } -func (x *FriendApplication) GetAddSource() string { - if x != nil { - return x.AddSource +func (m *FriendApplication) GetAddSource() string { + if m != nil { + return m.AddSource } return "" } -func (x *FriendApplication) GetAddWording() string { - if x != nil { - return x.AddWording +func (m *FriendApplication) GetAddWording() string { + if m != nil { + return m.AddWording } return "" } type FromToUserID struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - FromUserID string `protobuf:"bytes,1,opt,name=fromUserID,proto3" json:"fromUserID,omitempty"` - ToUserID string `protobuf:"bytes,2,opt,name=toUserID,proto3" json:"toUserID,omitempty"` + FromUserID string `protobuf:"bytes,1,opt,name=fromUserID" json:"fromUserID,omitempty"` + ToUserID string `protobuf:"bytes,2,opt,name=toUserID" json:"toUserID,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (x *FromToUserID) Reset() { - *x = FromToUserID{} - if protoimpl.UnsafeEnabled { - mi := &file_sdk_ws_ws_proto_msgTypes[27] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } +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_c5eabd6c93a174c0, []int{27} } - -func (x *FromToUserID) String() string { - return protoimpl.X.MessageStringOf(x) +func (m *FromToUserID) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_FromToUserID.Unmarshal(m, b) } - -func (*FromToUserID) ProtoMessage() {} - -func (x *FromToUserID) ProtoReflect() protoreflect.Message { - mi := &file_sdk_ws_ws_proto_msgTypes[27] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) +func (m *FromToUserID) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_FromToUserID.Marshal(b, m, deterministic) } - -// Deprecated: Use FromToUserID.ProtoReflect.Descriptor instead. -func (*FromToUserID) Descriptor() ([]byte, []int) { - return file_sdk_ws_ws_proto_rawDescGZIP(), []int{27} +func (dst *FromToUserID) XXX_Merge(src proto.Message) { + xxx_messageInfo_FromToUserID.Merge(dst, src) +} +func (m *FromToUserID) XXX_Size() int { + return xxx_messageInfo_FromToUserID.Size(m) +} +func (m *FromToUserID) XXX_DiscardUnknown() { + xxx_messageInfo_FromToUserID.DiscardUnknown(m) } -func (x *FromToUserID) GetFromUserID() string { - if x != nil { - return x.FromUserID +var xxx_messageInfo_FromToUserID proto.InternalMessageInfo + +func (m *FromToUserID) GetFromUserID() string { + if m != nil { + return m.FromUserID } return "" } -func (x *FromToUserID) GetToUserID() string { - if x != nil { - return x.ToUserID +func (m *FromToUserID) GetToUserID() string { + if m != nil { + return m.ToUserID } return "" } -//FromUserID apply to add ToUserID +// FromUserID apply to add ToUserID type FriendApplicationTips struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - FromToUserID *FromToUserID `protobuf:"bytes,1,opt,name=fromToUserID,proto3" json:"fromToUserID,omitempty"` + FromToUserID *FromToUserID `protobuf:"bytes,1,opt,name=fromToUserID" json:"fromToUserID,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (x *FriendApplicationTips) Reset() { - *x = FriendApplicationTips{} - if protoimpl.UnsafeEnabled { - mi := &file_sdk_ws_ws_proto_msgTypes[28] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } +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_c5eabd6c93a174c0, []int{28} } - -func (x *FriendApplicationTips) String() string { - return protoimpl.X.MessageStringOf(x) +func (m *FriendApplicationTips) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_FriendApplicationTips.Unmarshal(m, b) } - -func (*FriendApplicationTips) ProtoMessage() {} - -func (x *FriendApplicationTips) ProtoReflect() protoreflect.Message { - mi := &file_sdk_ws_ws_proto_msgTypes[28] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) +func (m *FriendApplicationTips) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_FriendApplicationTips.Marshal(b, m, deterministic) } - -// Deprecated: Use FriendApplicationTips.ProtoReflect.Descriptor instead. -func (*FriendApplicationTips) Descriptor() ([]byte, []int) { - return file_sdk_ws_ws_proto_rawDescGZIP(), []int{28} +func (dst *FriendApplicationTips) XXX_Merge(src proto.Message) { + xxx_messageInfo_FriendApplicationTips.Merge(dst, src) +} +func (m *FriendApplicationTips) XXX_Size() int { + return xxx_messageInfo_FriendApplicationTips.Size(m) } +func (m *FriendApplicationTips) XXX_DiscardUnknown() { + xxx_messageInfo_FriendApplicationTips.DiscardUnknown(m) +} + +var xxx_messageInfo_FriendApplicationTips proto.InternalMessageInfo -func (x *FriendApplicationTips) GetFromToUserID() *FromToUserID { - if x != nil { - return x.FromToUserID +func (m *FriendApplicationTips) GetFromToUserID() *FromToUserID { + if m != nil { + return m.FromToUserID } return nil } -//FromUserID accept or reject ToUserID +// FromUserID accept or reject ToUserID type FriendApplicationApprovedTips struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - FromToUserID *FromToUserID `protobuf:"bytes,1,opt,name=fromToUserID,proto3" json:"fromToUserID,omitempty"` - HandleMsg string `protobuf:"bytes,2,opt,name=handleMsg,proto3" json:"handleMsg,omitempty"` + FromToUserID *FromToUserID `protobuf:"bytes,1,opt,name=fromToUserID" json:"fromToUserID,omitempty"` + HandleMsg string `protobuf:"bytes,2,opt,name=handleMsg" json:"handleMsg,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (x *FriendApplicationApprovedTips) Reset() { - *x = FriendApplicationApprovedTips{} - if protoimpl.UnsafeEnabled { - mi := &file_sdk_ws_ws_proto_msgTypes[29] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } +func (m *FriendApplicationApprovedTips) Reset() { *m = FriendApplicationApprovedTips{} } +func (m *FriendApplicationApprovedTips) String() string { return proto.CompactTextString(m) } +func (*FriendApplicationApprovedTips) ProtoMessage() {} +func (*FriendApplicationApprovedTips) Descriptor() ([]byte, []int) { + return fileDescriptor_ws_c5eabd6c93a174c0, []int{29} } - -func (x *FriendApplicationApprovedTips) String() string { - return protoimpl.X.MessageStringOf(x) +func (m *FriendApplicationApprovedTips) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_FriendApplicationApprovedTips.Unmarshal(m, b) } - -func (*FriendApplicationApprovedTips) ProtoMessage() {} - -func (x *FriendApplicationApprovedTips) ProtoReflect() protoreflect.Message { - mi := &file_sdk_ws_ws_proto_msgTypes[29] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) +func (m *FriendApplicationApprovedTips) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_FriendApplicationApprovedTips.Marshal(b, m, deterministic) } - -// Deprecated: Use FriendApplicationApprovedTips.ProtoReflect.Descriptor instead. -func (*FriendApplicationApprovedTips) Descriptor() ([]byte, []int) { - return file_sdk_ws_ws_proto_rawDescGZIP(), []int{29} +func (dst *FriendApplicationApprovedTips) XXX_Merge(src proto.Message) { + xxx_messageInfo_FriendApplicationApprovedTips.Merge(dst, src) +} +func (m *FriendApplicationApprovedTips) XXX_Size() int { + return xxx_messageInfo_FriendApplicationApprovedTips.Size(m) } +func (m *FriendApplicationApprovedTips) XXX_DiscardUnknown() { + xxx_messageInfo_FriendApplicationApprovedTips.DiscardUnknown(m) +} + +var xxx_messageInfo_FriendApplicationApprovedTips proto.InternalMessageInfo -func (x *FriendApplicationApprovedTips) GetFromToUserID() *FromToUserID { - if x != nil { - return x.FromToUserID +func (m *FriendApplicationApprovedTips) GetFromToUserID() *FromToUserID { + if m != nil { + return m.FromToUserID } return nil } -func (x *FriendApplicationApprovedTips) GetHandleMsg() string { - if x != nil { - return x.HandleMsg +func (m *FriendApplicationApprovedTips) GetHandleMsg() string { + if m != nil { + return m.HandleMsg } return "" } -//FromUserID accept or reject ToUserID +// FromUserID accept or reject ToUserID type FriendApplicationRejectedTips struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - FromToUserID *FromToUserID `protobuf:"bytes,1,opt,name=fromToUserID,proto3" json:"fromToUserID,omitempty"` - HandleMsg string `protobuf:"bytes,2,opt,name=handleMsg,proto3" json:"handleMsg,omitempty"` + FromToUserID *FromToUserID `protobuf:"bytes,1,opt,name=fromToUserID" json:"fromToUserID,omitempty"` + HandleMsg string `protobuf:"bytes,2,opt,name=handleMsg" json:"handleMsg,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (x *FriendApplicationRejectedTips) Reset() { - *x = FriendApplicationRejectedTips{} - if protoimpl.UnsafeEnabled { - mi := &file_sdk_ws_ws_proto_msgTypes[30] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } +func (m *FriendApplicationRejectedTips) Reset() { *m = FriendApplicationRejectedTips{} } +func (m *FriendApplicationRejectedTips) String() string { return proto.CompactTextString(m) } +func (*FriendApplicationRejectedTips) ProtoMessage() {} +func (*FriendApplicationRejectedTips) Descriptor() ([]byte, []int) { + return fileDescriptor_ws_c5eabd6c93a174c0, []int{30} } - -func (x *FriendApplicationRejectedTips) String() string { - return protoimpl.X.MessageStringOf(x) +func (m *FriendApplicationRejectedTips) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_FriendApplicationRejectedTips.Unmarshal(m, b) } - -func (*FriendApplicationRejectedTips) ProtoMessage() {} - -func (x *FriendApplicationRejectedTips) ProtoReflect() protoreflect.Message { - mi := &file_sdk_ws_ws_proto_msgTypes[30] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) +func (m *FriendApplicationRejectedTips) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_FriendApplicationRejectedTips.Marshal(b, m, deterministic) } - -// Deprecated: Use FriendApplicationRejectedTips.ProtoReflect.Descriptor instead. -func (*FriendApplicationRejectedTips) Descriptor() ([]byte, []int) { - return file_sdk_ws_ws_proto_rawDescGZIP(), []int{30} +func (dst *FriendApplicationRejectedTips) XXX_Merge(src proto.Message) { + xxx_messageInfo_FriendApplicationRejectedTips.Merge(dst, src) +} +func (m *FriendApplicationRejectedTips) XXX_Size() int { + return xxx_messageInfo_FriendApplicationRejectedTips.Size(m) +} +func (m *FriendApplicationRejectedTips) XXX_DiscardUnknown() { + xxx_messageInfo_FriendApplicationRejectedTips.DiscardUnknown(m) } -func (x *FriendApplicationRejectedTips) GetFromToUserID() *FromToUserID { - if x != nil { - return x.FromToUserID +var xxx_messageInfo_FriendApplicationRejectedTips proto.InternalMessageInfo + +func (m *FriendApplicationRejectedTips) GetFromToUserID() *FromToUserID { + if m != nil { + return m.FromToUserID } return nil } -func (x *FriendApplicationRejectedTips) GetHandleMsg() string { - if x != nil { - return x.HandleMsg +func (m *FriendApplicationRejectedTips) GetHandleMsg() string { + if m != nil { + return m.HandleMsg } return "" } // FromUserID Added a friend ToUserID type FriendAddedTips struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - Friend *FriendInfo `protobuf:"bytes,1,opt,name=friend,proto3" json:"friend,omitempty"` - OperationTime int64 `protobuf:"varint,2,opt,name=operationTime,proto3" json:"operationTime,omitempty"` - OpUser *PublicUserInfo `protobuf:"bytes,3,opt,name=opUser,proto3" json:"opUser,omitempty"` //who do this + Friend *FriendInfo `protobuf:"bytes,1,opt,name=friend" json:"friend,omitempty"` + OperationTime int64 `protobuf:"varint,2,opt,name=operationTime" json:"operationTime,omitempty"` + OpUser *PublicUserInfo `protobuf:"bytes,3,opt,name=opUser" json:"opUser,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (x *FriendAddedTips) Reset() { - *x = FriendAddedTips{} - if protoimpl.UnsafeEnabled { - mi := &file_sdk_ws_ws_proto_msgTypes[31] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } +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_c5eabd6c93a174c0, []int{31} } - -func (x *FriendAddedTips) String() string { - return protoimpl.X.MessageStringOf(x) +func (m *FriendAddedTips) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_FriendAddedTips.Unmarshal(m, b) } - -func (*FriendAddedTips) ProtoMessage() {} - -func (x *FriendAddedTips) ProtoReflect() protoreflect.Message { - mi := &file_sdk_ws_ws_proto_msgTypes[31] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) +func (m *FriendAddedTips) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_FriendAddedTips.Marshal(b, m, deterministic) } - -// Deprecated: Use FriendAddedTips.ProtoReflect.Descriptor instead. -func (*FriendAddedTips) Descriptor() ([]byte, []int) { - return file_sdk_ws_ws_proto_rawDescGZIP(), []int{31} +func (dst *FriendAddedTips) XXX_Merge(src proto.Message) { + xxx_messageInfo_FriendAddedTips.Merge(dst, src) +} +func (m *FriendAddedTips) XXX_Size() int { + return xxx_messageInfo_FriendAddedTips.Size(m) } +func (m *FriendAddedTips) XXX_DiscardUnknown() { + xxx_messageInfo_FriendAddedTips.DiscardUnknown(m) +} + +var xxx_messageInfo_FriendAddedTips proto.InternalMessageInfo -func (x *FriendAddedTips) GetFriend() *FriendInfo { - if x != nil { - return x.Friend +func (m *FriendAddedTips) GetFriend() *FriendInfo { + if m != nil { + return m.Friend } return nil } -func (x *FriendAddedTips) GetOperationTime() int64 { - if x != nil { - return x.OperationTime +func (m *FriendAddedTips) GetOperationTime() int64 { + if m != nil { + return m.OperationTime } return 0 } -func (x *FriendAddedTips) GetOpUser() *PublicUserInfo { - if x != nil { - return x.OpUser +func (m *FriendAddedTips) GetOpUser() *PublicUserInfo { + if m != nil { + return m.OpUser } return nil } // FromUserID deleted a friend ToUserID type FriendDeletedTips struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - FromToUserID *FromToUserID `protobuf:"bytes,1,opt,name=fromToUserID,proto3" json:"fromToUserID,omitempty"` + FromToUserID *FromToUserID `protobuf:"bytes,1,opt,name=fromToUserID" json:"fromToUserID,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (x *FriendDeletedTips) Reset() { - *x = FriendDeletedTips{} - if protoimpl.UnsafeEnabled { - mi := &file_sdk_ws_ws_proto_msgTypes[32] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } +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_c5eabd6c93a174c0, []int{32} } - -func (x *FriendDeletedTips) String() string { - return protoimpl.X.MessageStringOf(x) +func (m *FriendDeletedTips) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_FriendDeletedTips.Unmarshal(m, b) } - -func (*FriendDeletedTips) ProtoMessage() {} - -func (x *FriendDeletedTips) ProtoReflect() protoreflect.Message { - mi := &file_sdk_ws_ws_proto_msgTypes[32] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) +func (m *FriendDeletedTips) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_FriendDeletedTips.Marshal(b, m, deterministic) } - -// Deprecated: Use FriendDeletedTips.ProtoReflect.Descriptor instead. -func (*FriendDeletedTips) Descriptor() ([]byte, []int) { - return file_sdk_ws_ws_proto_rawDescGZIP(), []int{32} +func (dst *FriendDeletedTips) XXX_Merge(src proto.Message) { + xxx_messageInfo_FriendDeletedTips.Merge(dst, src) +} +func (m *FriendDeletedTips) XXX_Size() int { + return xxx_messageInfo_FriendDeletedTips.Size(m) +} +func (m *FriendDeletedTips) XXX_DiscardUnknown() { + xxx_messageInfo_FriendDeletedTips.DiscardUnknown(m) } -func (x *FriendDeletedTips) GetFromToUserID() *FromToUserID { - if x != nil { - return x.FromToUserID +var xxx_messageInfo_FriendDeletedTips proto.InternalMessageInfo + +func (m *FriendDeletedTips) GetFromToUserID() *FromToUserID { + if m != nil { + return m.FromToUserID } return nil } type BlackAddedTips struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - FromToUserID *FromToUserID `protobuf:"bytes,1,opt,name=fromToUserID,proto3" json:"fromToUserID,omitempty"` + FromToUserID *FromToUserID `protobuf:"bytes,1,opt,name=fromToUserID" json:"fromToUserID,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (x *BlackAddedTips) Reset() { - *x = BlackAddedTips{} - if protoimpl.UnsafeEnabled { - mi := &file_sdk_ws_ws_proto_msgTypes[33] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } +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_c5eabd6c93a174c0, []int{33} } - -func (x *BlackAddedTips) String() string { - return protoimpl.X.MessageStringOf(x) +func (m *BlackAddedTips) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_BlackAddedTips.Unmarshal(m, b) } - -func (*BlackAddedTips) ProtoMessage() {} - -func (x *BlackAddedTips) ProtoReflect() protoreflect.Message { - mi := &file_sdk_ws_ws_proto_msgTypes[33] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) +func (m *BlackAddedTips) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_BlackAddedTips.Marshal(b, m, deterministic) } - -// Deprecated: Use BlackAddedTips.ProtoReflect.Descriptor instead. -func (*BlackAddedTips) Descriptor() ([]byte, []int) { - return file_sdk_ws_ws_proto_rawDescGZIP(), []int{33} +func (dst *BlackAddedTips) XXX_Merge(src proto.Message) { + xxx_messageInfo_BlackAddedTips.Merge(dst, src) +} +func (m *BlackAddedTips) XXX_Size() int { + return xxx_messageInfo_BlackAddedTips.Size(m) } +func (m *BlackAddedTips) XXX_DiscardUnknown() { + xxx_messageInfo_BlackAddedTips.DiscardUnknown(m) +} + +var xxx_messageInfo_BlackAddedTips proto.InternalMessageInfo -func (x *BlackAddedTips) GetFromToUserID() *FromToUserID { - if x != nil { - return x.FromToUserID +func (m *BlackAddedTips) GetFromToUserID() *FromToUserID { + if m != nil { + return m.FromToUserID } return nil } type BlackDeletedTips struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - FromToUserID *FromToUserID `protobuf:"bytes,1,opt,name=fromToUserID,proto3" json:"fromToUserID,omitempty"` + FromToUserID *FromToUserID `protobuf:"bytes,1,opt,name=fromToUserID" json:"fromToUserID,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (x *BlackDeletedTips) Reset() { - *x = BlackDeletedTips{} - if protoimpl.UnsafeEnabled { - mi := &file_sdk_ws_ws_proto_msgTypes[34] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } +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_c5eabd6c93a174c0, []int{34} } - -func (x *BlackDeletedTips) String() string { - return protoimpl.X.MessageStringOf(x) +func (m *BlackDeletedTips) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_BlackDeletedTips.Unmarshal(m, b) } - -func (*BlackDeletedTips) ProtoMessage() {} - -func (x *BlackDeletedTips) ProtoReflect() protoreflect.Message { - mi := &file_sdk_ws_ws_proto_msgTypes[34] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) +func (m *BlackDeletedTips) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_BlackDeletedTips.Marshal(b, m, deterministic) } - -// Deprecated: Use BlackDeletedTips.ProtoReflect.Descriptor instead. -func (*BlackDeletedTips) Descriptor() ([]byte, []int) { - return file_sdk_ws_ws_proto_rawDescGZIP(), []int{34} +func (dst *BlackDeletedTips) XXX_Merge(src proto.Message) { + xxx_messageInfo_BlackDeletedTips.Merge(dst, src) +} +func (m *BlackDeletedTips) XXX_Size() int { + return xxx_messageInfo_BlackDeletedTips.Size(m) } +func (m *BlackDeletedTips) XXX_DiscardUnknown() { + xxx_messageInfo_BlackDeletedTips.DiscardUnknown(m) +} + +var xxx_messageInfo_BlackDeletedTips proto.InternalMessageInfo -func (x *BlackDeletedTips) GetFromToUserID() *FromToUserID { - if x != nil { - return x.FromToUserID +func (m *BlackDeletedTips) GetFromToUserID() *FromToUserID { + if m != nil { + return m.FromToUserID } return nil } type FriendInfoChangedTips struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - FromToUserID *FromToUserID `protobuf:"bytes,1,opt,name=fromToUserID,proto3" json:"fromToUserID,omitempty"` + FromToUserID *FromToUserID `protobuf:"bytes,1,opt,name=fromToUserID" json:"fromToUserID,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (x *FriendInfoChangedTips) Reset() { - *x = FriendInfoChangedTips{} - if protoimpl.UnsafeEnabled { - mi := &file_sdk_ws_ws_proto_msgTypes[35] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } +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_c5eabd6c93a174c0, []int{35} } - -func (x *FriendInfoChangedTips) String() string { - return protoimpl.X.MessageStringOf(x) +func (m *FriendInfoChangedTips) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_FriendInfoChangedTips.Unmarshal(m, b) } - -func (*FriendInfoChangedTips) ProtoMessage() {} - -func (x *FriendInfoChangedTips) ProtoReflect() protoreflect.Message { - mi := &file_sdk_ws_ws_proto_msgTypes[35] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) +func (m *FriendInfoChangedTips) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_FriendInfoChangedTips.Marshal(b, m, deterministic) } - -// Deprecated: Use FriendInfoChangedTips.ProtoReflect.Descriptor instead. -func (*FriendInfoChangedTips) Descriptor() ([]byte, []int) { - return file_sdk_ws_ws_proto_rawDescGZIP(), []int{35} +func (dst *FriendInfoChangedTips) XXX_Merge(src proto.Message) { + xxx_messageInfo_FriendInfoChangedTips.Merge(dst, src) +} +func (m *FriendInfoChangedTips) XXX_Size() int { + return xxx_messageInfo_FriendInfoChangedTips.Size(m) +} +func (m *FriendInfoChangedTips) XXX_DiscardUnknown() { + xxx_messageInfo_FriendInfoChangedTips.DiscardUnknown(m) } -func (x *FriendInfoChangedTips) GetFromToUserID() *FromToUserID { - if x != nil { - return x.FromToUserID +var xxx_messageInfo_FriendInfoChangedTips proto.InternalMessageInfo + +func (m *FriendInfoChangedTips) GetFromToUserID() *FromToUserID { + if m != nil { + return m.FromToUserID } return nil } -//////////////////////user///////////////////// +// ////////////////////user///////////////////// type UserInfoUpdatedTips struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - UserID string `protobuf:"bytes,1,opt,name=userID,proto3" json:"userID,omitempty"` + UserID string `protobuf:"bytes,1,opt,name=userID" json:"userID,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (x *UserInfoUpdatedTips) Reset() { - *x = UserInfoUpdatedTips{} - if protoimpl.UnsafeEnabled { - mi := &file_sdk_ws_ws_proto_msgTypes[36] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } +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_c5eabd6c93a174c0, []int{36} } - -func (x *UserInfoUpdatedTips) String() string { - return protoimpl.X.MessageStringOf(x) +func (m *UserInfoUpdatedTips) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_UserInfoUpdatedTips.Unmarshal(m, b) } - -func (*UserInfoUpdatedTips) ProtoMessage() {} - -func (x *UserInfoUpdatedTips) ProtoReflect() protoreflect.Message { - mi := &file_sdk_ws_ws_proto_msgTypes[36] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) +func (m *UserInfoUpdatedTips) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_UserInfoUpdatedTips.Marshal(b, m, deterministic) } - -// Deprecated: Use UserInfoUpdatedTips.ProtoReflect.Descriptor instead. -func (*UserInfoUpdatedTips) Descriptor() ([]byte, []int) { - return file_sdk_ws_ws_proto_rawDescGZIP(), []int{36} +func (dst *UserInfoUpdatedTips) XXX_Merge(src proto.Message) { + xxx_messageInfo_UserInfoUpdatedTips.Merge(dst, src) +} +func (m *UserInfoUpdatedTips) XXX_Size() int { + return xxx_messageInfo_UserInfoUpdatedTips.Size(m) } +func (m *UserInfoUpdatedTips) XXX_DiscardUnknown() { + xxx_messageInfo_UserInfoUpdatedTips.DiscardUnknown(m) +} + +var xxx_messageInfo_UserInfoUpdatedTips proto.InternalMessageInfo -func (x *UserInfoUpdatedTips) GetUserID() string { - if x != nil { - return x.UserID +func (m *UserInfoUpdatedTips) GetUserID() string { + if m != nil { + return m.UserID } return "" } -//////////////////////conversation///////////////////// +// ////////////////////conversation///////////////////// type ConversationUpdateTips struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - UserID string `protobuf:"bytes,1,opt,name=UserID,proto3" json:"UserID,omitempty"` + UserID string `protobuf:"bytes,1,opt,name=UserID" json:"UserID,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (x *ConversationUpdateTips) Reset() { - *x = ConversationUpdateTips{} - if protoimpl.UnsafeEnabled { - mi := &file_sdk_ws_ws_proto_msgTypes[37] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } +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_c5eabd6c93a174c0, []int{37} } - -func (x *ConversationUpdateTips) String() string { - return protoimpl.X.MessageStringOf(x) +func (m *ConversationUpdateTips) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_ConversationUpdateTips.Unmarshal(m, b) } - -func (*ConversationUpdateTips) ProtoMessage() {} - -func (x *ConversationUpdateTips) ProtoReflect() protoreflect.Message { - mi := &file_sdk_ws_ws_proto_msgTypes[37] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) +func (m *ConversationUpdateTips) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_ConversationUpdateTips.Marshal(b, m, deterministic) } - -// Deprecated: Use ConversationUpdateTips.ProtoReflect.Descriptor instead. -func (*ConversationUpdateTips) Descriptor() ([]byte, []int) { - return file_sdk_ws_ws_proto_rawDescGZIP(), []int{37} +func (dst *ConversationUpdateTips) XXX_Merge(src proto.Message) { + xxx_messageInfo_ConversationUpdateTips.Merge(dst, src) +} +func (m *ConversationUpdateTips) XXX_Size() int { + return xxx_messageInfo_ConversationUpdateTips.Size(m) +} +func (m *ConversationUpdateTips) XXX_DiscardUnknown() { + xxx_messageInfo_ConversationUpdateTips.DiscardUnknown(m) } -func (x *ConversationUpdateTips) GetUserID() string { - if x != nil { - return x.UserID +var xxx_messageInfo_ConversationUpdateTips proto.InternalMessageInfo + +func (m *ConversationUpdateTips) GetUserID() string { + if m != nil { + return m.UserID } return "" } -///cms +// /cms type RequestPagination struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - PageNumber int32 `protobuf:"varint,1,opt,name=pageNumber,proto3" json:"pageNumber,omitempty"` - ShowNumber int32 `protobuf:"varint,2,opt,name=showNumber,proto3" json:"showNumber,omitempty"` + PageNumber int32 `protobuf:"varint,1,opt,name=pageNumber" json:"pageNumber,omitempty"` + ShowNumber int32 `protobuf:"varint,2,opt,name=showNumber" json:"showNumber,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (x *RequestPagination) Reset() { - *x = RequestPagination{} - if protoimpl.UnsafeEnabled { - mi := &file_sdk_ws_ws_proto_msgTypes[38] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } +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_c5eabd6c93a174c0, []int{38} } - -func (x *RequestPagination) String() string { - return protoimpl.X.MessageStringOf(x) +func (m *RequestPagination) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_RequestPagination.Unmarshal(m, b) } - -func (*RequestPagination) ProtoMessage() {} - -func (x *RequestPagination) ProtoReflect() protoreflect.Message { - mi := &file_sdk_ws_ws_proto_msgTypes[38] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) +func (m *RequestPagination) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_RequestPagination.Marshal(b, m, deterministic) } - -// Deprecated: Use RequestPagination.ProtoReflect.Descriptor instead. -func (*RequestPagination) Descriptor() ([]byte, []int) { - return file_sdk_ws_ws_proto_rawDescGZIP(), []int{38} +func (dst *RequestPagination) XXX_Merge(src proto.Message) { + xxx_messageInfo_RequestPagination.Merge(dst, src) +} +func (m *RequestPagination) XXX_Size() int { + return xxx_messageInfo_RequestPagination.Size(m) } +func (m *RequestPagination) XXX_DiscardUnknown() { + xxx_messageInfo_RequestPagination.DiscardUnknown(m) +} + +var xxx_messageInfo_RequestPagination proto.InternalMessageInfo -func (x *RequestPagination) GetPageNumber() int32 { - if x != nil { - return x.PageNumber +func (m *RequestPagination) GetPageNumber() int32 { + if m != nil { + return m.PageNumber } return 0 } -func (x *RequestPagination) GetShowNumber() int32 { - if x != nil { - return x.ShowNumber +func (m *RequestPagination) GetShowNumber() int32 { + if m != nil { + return m.ShowNumber } return 0 } type ResponsePagination struct { - state protoimpl.MessageState - sizeCache protoimpl.SizeCache - unknownFields protoimpl.UnknownFields - - CurrentPage int32 `protobuf:"varint,5,opt,name=CurrentPage,proto3" json:"CurrentPage,omitempty"` - ShowNumber int32 `protobuf:"varint,6,opt,name=ShowNumber,proto3" json:"ShowNumber,omitempty"` + CurrentPage int32 `protobuf:"varint,5,opt,name=CurrentPage" json:"CurrentPage,omitempty"` + ShowNumber int32 `protobuf:"varint,6,opt,name=ShowNumber" json:"ShowNumber,omitempty"` + XXX_NoUnkeyedLiteral struct{} `json:"-"` + XXX_unrecognized []byte `json:"-"` + XXX_sizecache int32 `json:"-"` } -func (x *ResponsePagination) Reset() { - *x = ResponsePagination{} - if protoimpl.UnsafeEnabled { - mi := &file_sdk_ws_ws_proto_msgTypes[39] - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - ms.StoreMessageInfo(mi) - } +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_c5eabd6c93a174c0, []int{39} } - -func (x *ResponsePagination) String() string { - return protoimpl.X.MessageStringOf(x) +func (m *ResponsePagination) XXX_Unmarshal(b []byte) error { + return xxx_messageInfo_ResponsePagination.Unmarshal(m, b) } - -func (*ResponsePagination) ProtoMessage() {} - -func (x *ResponsePagination) ProtoReflect() protoreflect.Message { - mi := &file_sdk_ws_ws_proto_msgTypes[39] - if protoimpl.UnsafeEnabled && x != nil { - ms := protoimpl.X.MessageStateOf(protoimpl.Pointer(x)) - if ms.LoadMessageInfo() == nil { - ms.StoreMessageInfo(mi) - } - return ms - } - return mi.MessageOf(x) +func (m *ResponsePagination) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) { + return xxx_messageInfo_ResponsePagination.Marshal(b, m, deterministic) } - -// Deprecated: Use ResponsePagination.ProtoReflect.Descriptor instead. -func (*ResponsePagination) Descriptor() ([]byte, []int) { - return file_sdk_ws_ws_proto_rawDescGZIP(), []int{39} +func (dst *ResponsePagination) XXX_Merge(src proto.Message) { + xxx_messageInfo_ResponsePagination.Merge(dst, src) } +func (m *ResponsePagination) XXX_Size() int { + return xxx_messageInfo_ResponsePagination.Size(m) +} +func (m *ResponsePagination) XXX_DiscardUnknown() { + xxx_messageInfo_ResponsePagination.DiscardUnknown(m) +} + +var xxx_messageInfo_ResponsePagination proto.InternalMessageInfo -func (x *ResponsePagination) GetCurrentPage() int32 { - if x != nil { - return x.CurrentPage +func (m *ResponsePagination) GetCurrentPage() int32 { + if m != nil { + return m.CurrentPage } return 0 } -func (x *ResponsePagination) GetShowNumber() int32 { - if x != nil { - return x.ShowNumber +func (m *ResponsePagination) GetShowNumber() int32 { + if m != nil { + return m.ShowNumber } return 0 } -var File_sdk_ws_ws_proto protoreflect.FileDescriptor - -var file_sdk_ws_ws_proto_rawDesc = []byte{ - 0x0a, 0x0f, 0x73, 0x64, 0x6b, 0x5f, 0x77, 0x73, 0x2f, 0x77, 0x73, 0x2e, 0x70, 0x72, 0x6f, 0x74, - 0x6f, 0x12, 0x11, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, - 0x72, 0x61, 0x6d, 0x73, 0x22, 0xf5, 0x02, 0x0a, 0x09, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, - 0x66, 0x6f, 0x12, 0x18, 0x0a, 0x07, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x44, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x07, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, - 0x67, 0x72, 0x6f, 0x75, 0x70, 0x4e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x4e, 0x61, 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x6e, 0x6f, - 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x0c, 0x6e, 0x6f, 0x74, 0x69, 0x66, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x22, - 0x0a, 0x0c, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x69, 0x6f, 0x6e, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x69, 0x6e, 0x74, 0x72, 0x6f, 0x64, 0x75, 0x63, 0x74, 0x69, - 0x6f, 0x6e, 0x12, 0x18, 0x0a, 0x07, 0x66, 0x61, 0x63, 0x65, 0x55, 0x52, 0x4c, 0x18, 0x05, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x07, 0x66, 0x61, 0x63, 0x65, 0x55, 0x52, 0x4c, 0x12, 0x20, 0x0a, 0x0b, - 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x06, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0b, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x1e, - 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, - 0x28, 0x0d, 0x52, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x20, - 0x0a, 0x0b, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x18, 0x08, 0x20, - 0x01, 0x28, 0x0d, 0x52, 0x0b, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x43, 0x6f, 0x75, 0x6e, 0x74, - 0x12, 0x0e, 0x0a, 0x02, 0x65, 0x78, 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x65, 0x78, - 0x12, 0x16, 0x0a, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x06, 0x73, 0x74, 0x61, 0x74, 0x75, 0x73, 0x12, 0x24, 0x0a, 0x0d, 0x63, 0x72, 0x65, 0x61, - 0x74, 0x6f, 0x72, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x0b, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0d, 0x63, 0x72, 0x65, 0x61, 0x74, 0x6f, 0x72, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x1c, - 0x0a, 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x54, 0x79, 0x70, 0x65, 0x18, 0x0c, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x54, 0x79, 0x70, 0x65, 0x22, 0xb7, 0x02, 0x0a, - 0x13, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x46, 0x75, 0x6c, 0x6c, - 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x18, 0x0a, 0x07, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x44, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x44, 0x12, 0x16, - 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, - 0x75, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x72, 0x6f, 0x6c, 0x65, 0x4c, 0x65, - 0x76, 0x65, 0x6c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x05, 0x52, 0x09, 0x72, 0x6f, 0x6c, 0x65, 0x4c, - 0x65, 0x76, 0x65, 0x6c, 0x12, 0x1a, 0x0a, 0x08, 0x6a, 0x6f, 0x69, 0x6e, 0x54, 0x69, 0x6d, 0x65, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x6a, 0x6f, 0x69, 0x6e, 0x54, 0x69, 0x6d, 0x65, - 0x12, 0x1a, 0x0a, 0x08, 0x6e, 0x69, 0x63, 0x6b, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x05, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x08, 0x6e, 0x69, 0x63, 0x6b, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, - 0x66, 0x61, 0x63, 0x65, 0x55, 0x52, 0x4c, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x66, - 0x61, 0x63, 0x65, 0x55, 0x52, 0x4c, 0x12, 0x26, 0x0a, 0x0e, 0x61, 0x70, 0x70, 0x4d, 0x61, 0x6e, - 0x67, 0x65, 0x72, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x18, 0x07, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, - 0x61, 0x70, 0x70, 0x4d, 0x61, 0x6e, 0x67, 0x65, 0x72, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x12, 0x1e, - 0x0a, 0x0a, 0x6a, 0x6f, 0x69, 0x6e, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x08, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x0a, 0x6a, 0x6f, 0x69, 0x6e, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x26, - 0x0a, 0x0e, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, - 0x18, 0x09, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0e, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, - 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x0e, 0x0a, 0x02, 0x65, 0x78, 0x18, 0x0a, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x02, 0x65, 0x78, 0x22, 0x76, 0x0a, 0x0e, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, - 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, - 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x44, - 0x12, 0x1a, 0x0a, 0x08, 0x6e, 0x69, 0x63, 0x6b, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x08, 0x6e, 0x69, 0x63, 0x6b, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x18, 0x0a, 0x07, - 0x66, 0x61, 0x63, 0x65, 0x55, 0x52, 0x4c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, 0x66, - 0x61, 0x63, 0x65, 0x55, 0x52, 0x4c, 0x12, 0x16, 0x0a, 0x06, 0x67, 0x65, 0x6e, 0x64, 0x65, 0x72, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x67, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x22, 0x96, - 0x02, 0x0a, 0x08, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x16, 0x0a, 0x06, 0x75, - 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x75, 0x73, 0x65, - 0x72, 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x6e, 0x69, 0x63, 0x6b, 0x6e, 0x61, 0x6d, 0x65, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x6e, 0x69, 0x63, 0x6b, 0x6e, 0x61, 0x6d, 0x65, 0x12, - 0x18, 0x0a, 0x07, 0x66, 0x61, 0x63, 0x65, 0x55, 0x52, 0x4c, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x07, 0x66, 0x61, 0x63, 0x65, 0x55, 0x52, 0x4c, 0x12, 0x16, 0x0a, 0x06, 0x67, 0x65, 0x6e, - 0x64, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x67, 0x65, 0x6e, 0x64, 0x65, - 0x72, 0x12, 0x20, 0x0a, 0x0b, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, - 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x70, 0x68, 0x6f, 0x6e, 0x65, 0x4e, 0x75, 0x6d, - 0x62, 0x65, 0x72, 0x12, 0x14, 0x0a, 0x05, 0x62, 0x69, 0x72, 0x74, 0x68, 0x18, 0x06, 0x20, 0x01, - 0x28, 0x0d, 0x52, 0x05, 0x62, 0x69, 0x72, 0x74, 0x68, 0x12, 0x14, 0x0a, 0x05, 0x65, 0x6d, 0x61, - 0x69, 0x6c, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x05, 0x65, 0x6d, 0x61, 0x69, 0x6c, 0x12, - 0x0e, 0x0a, 0x02, 0x65, 0x78, 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x65, 0x78, 0x12, - 0x1e, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x09, 0x20, - 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, - 0x26, 0x0a, 0x0e, 0x61, 0x70, 0x70, 0x4d, 0x61, 0x6e, 0x67, 0x65, 0x72, 0x4c, 0x65, 0x76, 0x65, - 0x6c, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0e, 0x61, 0x70, 0x70, 0x4d, 0x61, 0x6e, 0x67, - 0x65, 0x72, 0x4c, 0x65, 0x76, 0x65, 0x6c, 0x22, 0xf9, 0x01, 0x0a, 0x0a, 0x46, 0x72, 0x69, 0x65, - 0x6e, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x20, 0x0a, 0x0b, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x55, - 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6f, 0x77, 0x6e, - 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x6d, 0x61, - 0x72, 0x6b, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x6d, 0x61, 0x72, 0x6b, - 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, - 0x12, 0x3b, 0x0a, 0x0a, 0x66, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x55, 0x73, 0x65, 0x72, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1b, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, - 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, - 0x6f, 0x52, 0x0a, 0x66, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x55, 0x73, 0x65, 0x72, 0x12, 0x1c, 0x0a, - 0x09, 0x61, 0x64, 0x64, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x09, 0x61, 0x64, 0x64, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x6f, - 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x06, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x0e, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x55, 0x73, 0x65, - 0x72, 0x49, 0x44, 0x12, 0x0e, 0x0a, 0x02, 0x65, 0x78, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x02, 0x65, 0x78, 0x22, 0xec, 0x01, 0x0a, 0x09, 0x42, 0x6c, 0x61, 0x63, 0x6b, 0x49, 0x6e, 0x66, - 0x6f, 0x12, 0x20, 0x0a, 0x0b, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6f, 0x77, 0x6e, 0x65, 0x72, 0x55, 0x73, 0x65, - 0x72, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, - 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, - 0x69, 0x6d, 0x65, 0x12, 0x47, 0x0a, 0x0d, 0x62, 0x6c, 0x61, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, - 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x73, 0x65, 0x72, - 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x50, - 0x75, 0x62, 0x6c, 0x69, 0x63, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0d, 0x62, - 0x6c, 0x61, 0x63, 0x6b, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x1c, 0x0a, 0x09, - 0x61, 0x64, 0x64, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, 0x05, 0x52, - 0x09, 0x61, 0x64, 0x64, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x26, 0x0a, 0x0e, 0x6f, 0x70, - 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0e, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x6f, 0x72, 0x55, 0x73, 0x65, 0x72, - 0x49, 0x44, 0x12, 0x0e, 0x0a, 0x02, 0x65, 0x78, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, - 0x65, 0x78, 0x22, 0xd1, 0x02, 0x0a, 0x0c, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x52, 0x65, 0x71, 0x75, - 0x65, 0x73, 0x74, 0x12, 0x3d, 0x0a, 0x08, 0x75, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, - 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, - 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x08, 0x75, 0x73, 0x65, 0x72, 0x49, 0x6e, - 0x66, 0x6f, 0x12, 0x3a, 0x0a, 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, - 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, - 0x6e, 0x66, 0x6f, 0x52, 0x09, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x22, - 0x0a, 0x0c, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x52, 0x65, 0x73, 0x75, - 0x6c, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x71, 0x4d, 0x73, 0x67, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x71, 0x4d, 0x73, 0x67, 0x12, 0x1c, 0x0a, 0x09, 0x68, 0x61, - 0x6e, 0x64, 0x6c, 0x65, 0x4d, 0x73, 0x67, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x68, - 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x4d, 0x73, 0x67, 0x12, 0x18, 0x0a, 0x07, 0x72, 0x65, 0x71, 0x54, - 0x69, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x07, 0x72, 0x65, 0x71, 0x54, 0x69, - 0x6d, 0x65, 0x12, 0x22, 0x0a, 0x0c, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x55, 0x73, 0x65, 0x72, - 0x49, 0x44, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, - 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, - 0x54, 0x69, 0x6d, 0x65, 0x18, 0x08, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x68, 0x61, 0x6e, 0x64, - 0x6c, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x65, 0x78, 0x18, 0x09, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x02, 0x65, 0x78, 0x22, 0xdb, 0x03, 0x0a, 0x0d, 0x46, 0x72, 0x69, 0x65, 0x6e, - 0x64, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x72, 0x6f, 0x6d, - 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x72, - 0x6f, 0x6d, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x22, 0x0a, 0x0c, 0x66, 0x72, 0x6f, 0x6d, - 0x4e, 0x69, 0x63, 0x6b, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, - 0x66, 0x72, 0x6f, 0x6d, 0x4e, 0x69, 0x63, 0x6b, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x20, 0x0a, 0x0b, - 0x66, 0x72, 0x6f, 0x6d, 0x46, 0x61, 0x63, 0x65, 0x55, 0x52, 0x4c, 0x18, 0x03, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0b, 0x66, 0x72, 0x6f, 0x6d, 0x46, 0x61, 0x63, 0x65, 0x55, 0x52, 0x4c, 0x12, 0x1e, - 0x0a, 0x0a, 0x66, 0x72, 0x6f, 0x6d, 0x47, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x05, 0x52, 0x0a, 0x66, 0x72, 0x6f, 0x6d, 0x47, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x12, 0x1a, - 0x0a, 0x08, 0x74, 0x6f, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x08, 0x74, 0x6f, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x74, 0x6f, - 0x4e, 0x69, 0x63, 0x6b, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x06, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, - 0x74, 0x6f, 0x4e, 0x69, 0x63, 0x6b, 0x6e, 0x61, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x74, 0x6f, - 0x46, 0x61, 0x63, 0x65, 0x55, 0x52, 0x4c, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x74, - 0x6f, 0x46, 0x61, 0x63, 0x65, 0x55, 0x52, 0x4c, 0x12, 0x1a, 0x0a, 0x08, 0x74, 0x6f, 0x47, 0x65, - 0x6e, 0x64, 0x65, 0x72, 0x18, 0x08, 0x20, 0x01, 0x28, 0x05, 0x52, 0x08, 0x74, 0x6f, 0x47, 0x65, - 0x6e, 0x64, 0x65, 0x72, 0x12, 0x22, 0x0a, 0x0c, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x52, 0x65, - 0x73, 0x75, 0x6c, 0x74, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0c, 0x68, 0x61, 0x6e, 0x64, - 0x6c, 0x65, 0x52, 0x65, 0x73, 0x75, 0x6c, 0x74, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x71, 0x4d, - 0x73, 0x67, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x71, 0x4d, 0x73, 0x67, - 0x12, 0x1e, 0x0a, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x0b, - 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, - 0x12, 0x24, 0x0a, 0x0d, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x49, - 0x44, 0x18, 0x0c, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x72, - 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, - 0x4d, 0x73, 0x67, 0x18, 0x0d, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x68, 0x61, 0x6e, 0x64, 0x6c, - 0x65, 0x4d, 0x73, 0x67, 0x12, 0x1e, 0x0a, 0x0a, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x54, 0x69, - 0x6d, 0x65, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x0a, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, - 0x54, 0x69, 0x6d, 0x65, 0x12, 0x0e, 0x0a, 0x02, 0x65, 0x78, 0x18, 0x0f, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x02, 0x65, 0x78, 0x22, 0x7c, 0x0a, 0x18, 0x50, 0x75, 0x6c, 0x6c, 0x4d, 0x65, 0x73, 0x73, - 0x61, 0x67, 0x65, 0x42, 0x79, 0x53, 0x65, 0x71, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x73, 0x70, - 0x12, 0x18, 0x0a, 0x07, 0x65, 0x72, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x07, 0x65, 0x72, 0x72, 0x43, 0x6f, 0x64, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x65, 0x72, - 0x72, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x65, 0x72, 0x72, 0x4d, - 0x73, 0x67, 0x12, 0x2e, 0x0a, 0x04, 0x6c, 0x69, 0x73, 0x74, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, - 0x32, 0x1a, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, - 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x4d, 0x73, 0x67, 0x44, 0x61, 0x74, 0x61, 0x52, 0x04, 0x6c, 0x69, - 0x73, 0x74, 0x22, 0x6d, 0x0a, 0x17, 0x50, 0x75, 0x6c, 0x6c, 0x4d, 0x65, 0x73, 0x73, 0x61, 0x67, - 0x65, 0x42, 0x79, 0x53, 0x65, 0x71, 0x4c, 0x69, 0x73, 0x74, 0x52, 0x65, 0x71, 0x12, 0x16, 0x0a, - 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x75, - 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, - 0x6f, 0x6e, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x6f, 0x70, 0x65, 0x72, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x49, 0x44, 0x12, 0x18, 0x0a, 0x07, 0x73, 0x65, 0x71, 0x4c, 0x69, - 0x73, 0x74, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0d, 0x52, 0x07, 0x73, 0x65, 0x71, 0x4c, 0x69, 0x73, - 0x74, 0x22, 0x14, 0x0a, 0x12, 0x47, 0x65, 0x74, 0x4d, 0x61, 0x78, 0x41, 0x6e, 0x64, 0x4d, 0x69, - 0x6e, 0x53, 0x65, 0x71, 0x52, 0x65, 0x71, 0x22, 0x45, 0x0a, 0x13, 0x47, 0x65, 0x74, 0x4d, 0x61, - 0x78, 0x41, 0x6e, 0x64, 0x4d, 0x69, 0x6e, 0x53, 0x65, 0x71, 0x52, 0x65, 0x73, 0x70, 0x12, 0x16, - 0x0a, 0x06, 0x6d, 0x61, 0x78, 0x53, 0x65, 0x71, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, - 0x6d, 0x61, 0x78, 0x53, 0x65, 0x71, 0x12, 0x16, 0x0a, 0x06, 0x6d, 0x69, 0x6e, 0x53, 0x65, 0x71, - 0x18, 0x02, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x06, 0x6d, 0x69, 0x6e, 0x53, 0x65, 0x71, 0x22, 0x71, - 0x0a, 0x0f, 0x55, 0x73, 0x65, 0x72, 0x53, 0x65, 0x6e, 0x64, 0x4d, 0x73, 0x67, 0x52, 0x65, 0x73, - 0x70, 0x12, 0x20, 0x0a, 0x0b, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x49, 0x44, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4d, 0x73, - 0x67, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x73, 0x67, - 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x6c, 0x69, 0x65, 0x6e, 0x74, - 0x4d, 0x73, 0x67, 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x73, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, - 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x73, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, - 0x65, 0x22, 0xbc, 0x05, 0x0a, 0x07, 0x4d, 0x73, 0x67, 0x44, 0x61, 0x74, 0x61, 0x12, 0x16, 0x0a, - 0x06, 0x73, 0x65, 0x6e, 0x64, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x73, - 0x65, 0x6e, 0x64, 0x49, 0x44, 0x12, 0x16, 0x0a, 0x06, 0x72, 0x65, 0x63, 0x76, 0x49, 0x44, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, 0x63, 0x76, 0x49, 0x44, 0x12, 0x18, 0x0a, - 0x07, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x44, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x07, - 0x67, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x6c, 0x69, 0x65, 0x6e, - 0x74, 0x4d, 0x73, 0x67, 0x49, 0x44, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, 0x63, 0x6c, - 0x69, 0x65, 0x6e, 0x74, 0x4d, 0x73, 0x67, 0x49, 0x44, 0x12, 0x20, 0x0a, 0x0b, 0x73, 0x65, 0x72, - 0x76, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x49, 0x44, 0x18, 0x05, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0b, - 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x4d, 0x73, 0x67, 0x49, 0x44, 0x12, 0x2a, 0x0a, 0x10, 0x73, - 0x65, 0x6e, 0x64, 0x65, 0x72, 0x50, 0x6c, 0x61, 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x49, 0x44, 0x18, - 0x06, 0x20, 0x01, 0x28, 0x05, 0x52, 0x10, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x50, 0x6c, 0x61, - 0x74, 0x66, 0x6f, 0x72, 0x6d, 0x49, 0x44, 0x12, 0x26, 0x0a, 0x0e, 0x73, 0x65, 0x6e, 0x64, 0x65, - 0x72, 0x4e, 0x69, 0x63, 0x6b, 0x6e, 0x61, 0x6d, 0x65, 0x18, 0x07, 0x20, 0x01, 0x28, 0x09, 0x52, - 0x0e, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x4e, 0x69, 0x63, 0x6b, 0x6e, 0x61, 0x6d, 0x65, 0x12, - 0x24, 0x0a, 0x0d, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x46, 0x61, 0x63, 0x65, 0x55, 0x52, 0x4c, - 0x18, 0x08, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0d, 0x73, 0x65, 0x6e, 0x64, 0x65, 0x72, 0x46, 0x61, - 0x63, 0x65, 0x55, 0x52, 0x4c, 0x12, 0x20, 0x0a, 0x0b, 0x73, 0x65, 0x73, 0x73, 0x69, 0x6f, 0x6e, - 0x54, 0x79, 0x70, 0x65, 0x18, 0x09, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x73, 0x65, 0x73, 0x73, - 0x69, 0x6f, 0x6e, 0x54, 0x79, 0x70, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x6d, 0x73, 0x67, 0x46, 0x72, - 0x6f, 0x6d, 0x18, 0x0a, 0x20, 0x01, 0x28, 0x05, 0x52, 0x07, 0x6d, 0x73, 0x67, 0x46, 0x72, 0x6f, - 0x6d, 0x12, 0x20, 0x0a, 0x0b, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x54, 0x79, 0x70, 0x65, - 0x18, 0x0b, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0b, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x54, - 0x79, 0x70, 0x65, 0x12, 0x18, 0x0a, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x18, 0x0c, - 0x20, 0x01, 0x28, 0x0c, 0x52, 0x07, 0x63, 0x6f, 0x6e, 0x74, 0x65, 0x6e, 0x74, 0x12, 0x10, 0x0a, - 0x03, 0x73, 0x65, 0x71, 0x18, 0x0e, 0x20, 0x01, 0x28, 0x0d, 0x52, 0x03, 0x73, 0x65, 0x71, 0x12, - 0x1a, 0x0a, 0x08, 0x73, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x0f, 0x20, 0x01, 0x28, - 0x03, 0x52, 0x08, 0x73, 0x65, 0x6e, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x63, - 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x10, 0x20, 0x01, 0x28, 0x03, 0x52, - 0x0a, 0x63, 0x72, 0x65, 0x61, 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x16, 0x0a, 0x06, 0x73, - 0x74, 0x61, 0x74, 0x75, 0x73, 0x18, 0x11, 0x20, 0x01, 0x28, 0x05, 0x52, 0x06, 0x73, 0x74, 0x61, - 0x74, 0x75, 0x73, 0x12, 0x41, 0x0a, 0x07, 0x6f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x18, 0x12, - 0x20, 0x03, 0x28, 0x0b, 0x32, 0x27, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, - 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x4d, 0x73, 0x67, 0x44, 0x61, 0x74, 0x61, - 0x2e, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x45, 0x6e, 0x74, 0x72, 0x79, 0x52, 0x07, 0x6f, - 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x12, 0x4c, 0x0a, 0x0f, 0x6f, 0x66, 0x66, 0x6c, 0x69, 0x6e, - 0x65, 0x50, 0x75, 0x73, 0x68, 0x49, 0x6e, 0x66, 0x6f, 0x18, 0x13, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x22, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, - 0x61, 0x6d, 0x73, 0x2e, 0x4f, 0x66, 0x66, 0x6c, 0x69, 0x6e, 0x65, 0x50, 0x75, 0x73, 0x68, 0x49, - 0x6e, 0x66, 0x6f, 0x52, 0x0f, 0x6f, 0x66, 0x66, 0x6c, 0x69, 0x6e, 0x65, 0x50, 0x75, 0x73, 0x68, - 0x49, 0x6e, 0x66, 0x6f, 0x1a, 0x3a, 0x0a, 0x0c, 0x4f, 0x70, 0x74, 0x69, 0x6f, 0x6e, 0x73, 0x45, - 0x6e, 0x74, 0x72, 0x79, 0x12, 0x10, 0x0a, 0x03, 0x6b, 0x65, 0x79, 0x18, 0x01, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x03, 0x6b, 0x65, 0x79, 0x12, 0x14, 0x0a, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x18, - 0x02, 0x20, 0x01, 0x28, 0x08, 0x52, 0x05, 0x76, 0x61, 0x6c, 0x75, 0x65, 0x3a, 0x02, 0x38, 0x01, - 0x22, 0x95, 0x01, 0x0a, 0x0f, 0x4f, 0x66, 0x66, 0x6c, 0x69, 0x6e, 0x65, 0x50, 0x75, 0x73, 0x68, - 0x49, 0x6e, 0x66, 0x6f, 0x12, 0x14, 0x0a, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x18, 0x01, 0x20, - 0x01, 0x28, 0x09, 0x52, 0x05, 0x74, 0x69, 0x74, 0x6c, 0x65, 0x12, 0x12, 0x0a, 0x04, 0x64, 0x65, - 0x73, 0x63, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x04, 0x64, 0x65, 0x73, 0x63, 0x12, 0x0e, - 0x0a, 0x02, 0x65, 0x78, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x02, 0x65, 0x78, 0x12, 0x22, - 0x0a, 0x0c, 0x69, 0x4f, 0x53, 0x50, 0x75, 0x73, 0x68, 0x53, 0x6f, 0x75, 0x6e, 0x64, 0x18, 0x04, - 0x20, 0x01, 0x28, 0x09, 0x52, 0x0c, 0x69, 0x4f, 0x53, 0x50, 0x75, 0x73, 0x68, 0x53, 0x6f, 0x75, - 0x6e, 0x64, 0x12, 0x24, 0x0a, 0x0d, 0x69, 0x4f, 0x53, 0x42, 0x61, 0x64, 0x67, 0x65, 0x43, 0x6f, - 0x75, 0x6e, 0x74, 0x18, 0x05, 0x20, 0x01, 0x28, 0x08, 0x52, 0x0d, 0x69, 0x4f, 0x53, 0x42, 0x61, - 0x64, 0x67, 0x65, 0x43, 0x6f, 0x75, 0x6e, 0x74, 0x22, 0x64, 0x0a, 0x08, 0x54, 0x69, 0x70, 0x73, - 0x43, 0x6f, 0x6d, 0x6d, 0x12, 0x16, 0x0a, 0x06, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x18, 0x01, - 0x20, 0x01, 0x28, 0x0c, 0x52, 0x06, 0x64, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x12, 0x20, 0x0a, 0x0b, - 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x54, 0x69, 0x70, 0x73, 0x18, 0x02, 0x20, 0x01, 0x28, - 0x09, 0x52, 0x0b, 0x64, 0x65, 0x66, 0x61, 0x75, 0x6c, 0x74, 0x54, 0x69, 0x70, 0x73, 0x12, 0x1e, - 0x0a, 0x0a, 0x6a, 0x73, 0x6f, 0x6e, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x18, 0x03, 0x20, 0x01, - 0x28, 0x09, 0x52, 0x0a, 0x6a, 0x73, 0x6f, 0x6e, 0x44, 0x65, 0x74, 0x61, 0x69, 0x6c, 0x22, 0xc4, - 0x02, 0x0a, 0x10, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x43, 0x72, 0x65, 0x61, 0x74, 0x65, 0x64, 0x54, - 0x69, 0x70, 0x73, 0x12, 0x32, 0x0a, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, - 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, 0x6e, 0x66, 0x6f, - 0x52, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x3e, 0x0a, 0x06, 0x6f, 0x70, 0x55, 0x73, 0x65, - 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, - 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x47, 0x72, 0x6f, 0x75, - 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x46, 0x75, 0x6c, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x52, - 0x06, 0x6f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x12, 0x46, 0x0a, 0x0a, 0x6d, 0x65, 0x6d, 0x62, 0x65, - 0x72, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x03, 0x20, 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x73, 0x65, - 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, - 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x46, 0x75, 0x6c, 0x6c, 0x49, - 0x6e, 0x66, 0x6f, 0x52, 0x0a, 0x6d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x12, - 0x24, 0x0a, 0x0d, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, - 0x18, 0x04, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x4e, 0x0a, 0x0e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x4f, 0x77, - 0x6e, 0x65, 0x72, 0x55, 0x73, 0x65, 0x72, 0x18, 0x05, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, - 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, - 0x73, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x46, 0x75, 0x6c, - 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0e, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x4f, 0x77, 0x6e, 0x65, - 0x72, 0x55, 0x73, 0x65, 0x72, 0x22, 0xa2, 0x01, 0x0a, 0x10, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, - 0x6e, 0x66, 0x6f, 0x53, 0x65, 0x74, 0x54, 0x69, 0x70, 0x73, 0x12, 0x3e, 0x0a, 0x06, 0x6f, 0x70, - 0x55, 0x73, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x73, 0x65, 0x72, - 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x47, - 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x46, 0x75, 0x6c, 0x6c, 0x49, 0x6e, - 0x66, 0x6f, 0x52, 0x06, 0x6f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x12, 0x1a, 0x0a, 0x08, 0x6d, 0x75, - 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x08, 0x6d, 0x75, - 0x74, 0x65, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x32, 0x0a, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, - 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, - 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, - 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x22, 0xa7, 0x01, 0x0a, 0x18, 0x4a, - 0x6f, 0x69, 0x6e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x70, 0x73, 0x12, 0x32, 0x0a, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, - 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, - 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x3f, 0x0a, 0x09, 0x61, - 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x6e, 0x74, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, - 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, - 0x6d, 0x73, 0x2e, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, - 0x6f, 0x52, 0x09, 0x61, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x6e, 0x74, 0x12, 0x16, 0x0a, 0x06, - 0x72, 0x65, 0x71, 0x4d, 0x73, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x72, 0x65, - 0x71, 0x4d, 0x73, 0x67, 0x22, 0xae, 0x01, 0x0a, 0x0e, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x51, - 0x75, 0x69, 0x74, 0x54, 0x69, 0x70, 0x73, 0x12, 0x32, 0x0a, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, - 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, - 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x42, 0x0a, 0x08, 0x71, - 0x75, 0x69, 0x74, 0x55, 0x73, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, - 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, - 0x73, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x46, 0x75, 0x6c, - 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x08, 0x71, 0x75, 0x69, 0x74, 0x55, 0x73, 0x65, 0x72, 0x12, - 0x24, 0x0a, 0x0d, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, - 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x22, 0xb0, 0x01, 0x0a, 0x1c, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x41, - 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x63, 0x63, 0x65, 0x70, 0x74, - 0x65, 0x64, 0x54, 0x69, 0x70, 0x73, 0x12, 0x32, 0x0a, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, - 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, - 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x3e, 0x0a, 0x06, 0x6f, 0x70, - 0x55, 0x73, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x73, 0x65, 0x72, - 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x47, - 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x46, 0x75, 0x6c, 0x6c, 0x49, 0x6e, - 0x66, 0x6f, 0x52, 0x06, 0x6f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x12, 0x1c, 0x0a, 0x09, 0x68, 0x61, - 0x6e, 0x64, 0x6c, 0x65, 0x4d, 0x73, 0x67, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x68, - 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x4d, 0x73, 0x67, 0x22, 0xb0, 0x01, 0x0a, 0x1c, 0x47, 0x72, 0x6f, - 0x75, 0x70, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x6a, - 0x65, 0x63, 0x74, 0x65, 0x64, 0x54, 0x69, 0x70, 0x73, 0x12, 0x32, 0x0a, 0x05, 0x67, 0x72, 0x6f, - 0x75, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, - 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x47, 0x72, 0x6f, - 0x75, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x3e, 0x0a, - 0x06, 0x6f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, - 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, - 0x73, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x46, 0x75, 0x6c, - 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x06, 0x6f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x12, 0x1c, 0x0a, - 0x09, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x4d, 0x73, 0x67, 0x18, 0x04, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x09, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x4d, 0x73, 0x67, 0x22, 0x83, 0x02, 0x0a, 0x19, - 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x54, 0x72, 0x61, 0x6e, 0x73, 0x66, - 0x65, 0x72, 0x72, 0x65, 0x64, 0x54, 0x69, 0x70, 0x73, 0x12, 0x32, 0x0a, 0x05, 0x67, 0x72, 0x6f, - 0x75, 0x70, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, - 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x47, 0x72, 0x6f, - 0x75, 0x70, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x3e, 0x0a, - 0x06, 0x6f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, - 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, - 0x73, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x46, 0x75, 0x6c, - 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x06, 0x6f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x12, 0x4c, 0x0a, - 0x0d, 0x6e, 0x65, 0x77, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x18, 0x03, - 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, - 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, - 0x6d, 0x62, 0x65, 0x72, 0x46, 0x75, 0x6c, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0d, 0x6e, 0x65, - 0x77, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4f, 0x77, 0x6e, 0x65, 0x72, 0x12, 0x24, 0x0a, 0x0d, 0x6f, - 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, - 0x28, 0x03, 0x52, 0x0d, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, - 0x65, 0x22, 0xfc, 0x01, 0x0a, 0x10, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x4b, 0x69, 0x63, 0x6b, - 0x65, 0x64, 0x54, 0x69, 0x70, 0x73, 0x12, 0x32, 0x0a, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, - 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, - 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x3e, 0x0a, 0x06, 0x6f, 0x70, - 0x55, 0x73, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x73, 0x65, 0x72, - 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x47, - 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x46, 0x75, 0x6c, 0x6c, 0x49, 0x6e, - 0x66, 0x6f, 0x52, 0x06, 0x6f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x12, 0x4e, 0x0a, 0x0e, 0x6b, 0x69, - 0x63, 0x6b, 0x65, 0x64, 0x55, 0x73, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x03, 0x20, 0x03, - 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, - 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, - 0x65, 0x72, 0x46, 0x75, 0x6c, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0e, 0x6b, 0x69, 0x63, 0x6b, - 0x65, 0x64, 0x55, 0x73, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x24, 0x0a, 0x0d, 0x6f, 0x70, - 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x04, 0x20, 0x01, 0x28, - 0x03, 0x52, 0x0d, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, - 0x22, 0xff, 0x01, 0x0a, 0x11, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x49, 0x6e, 0x76, 0x69, 0x74, - 0x65, 0x64, 0x54, 0x69, 0x70, 0x73, 0x12, 0x32, 0x0a, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, - 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, - 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x3e, 0x0a, 0x06, 0x6f, 0x70, - 0x55, 0x73, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x73, 0x65, 0x72, - 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x47, - 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x46, 0x75, 0x6c, 0x6c, 0x49, 0x6e, - 0x66, 0x6f, 0x52, 0x06, 0x6f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x12, 0x50, 0x0a, 0x0f, 0x69, 0x6e, - 0x76, 0x69, 0x74, 0x65, 0x64, 0x55, 0x73, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x18, 0x03, 0x20, - 0x03, 0x28, 0x0b, 0x32, 0x26, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, - 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, - 0x62, 0x65, 0x72, 0x46, 0x75, 0x6c, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0f, 0x69, 0x6e, 0x76, - 0x69, 0x74, 0x65, 0x64, 0x55, 0x73, 0x65, 0x72, 0x4c, 0x69, 0x73, 0x74, 0x12, 0x24, 0x0a, 0x0d, - 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x04, 0x20, - 0x01, 0x28, 0x03, 0x52, 0x0d, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, - 0x6d, 0x65, 0x22, 0xb5, 0x01, 0x0a, 0x0f, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x45, 0x6e, 0x74, - 0x65, 0x72, 0x54, 0x69, 0x70, 0x73, 0x12, 0x32, 0x0a, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x18, - 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1c, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, - 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x49, - 0x6e, 0x66, 0x6f, 0x52, 0x05, 0x67, 0x72, 0x6f, 0x75, 0x70, 0x12, 0x48, 0x0a, 0x0b, 0x65, 0x6e, - 0x74, 0x72, 0x61, 0x6e, 0x74, 0x55, 0x73, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x26, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, - 0x61, 0x6d, 0x73, 0x2e, 0x47, 0x72, 0x6f, 0x75, 0x70, 0x4d, 0x65, 0x6d, 0x62, 0x65, 0x72, 0x46, - 0x75, 0x6c, 0x6c, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x0b, 0x65, 0x6e, 0x74, 0x72, 0x61, 0x6e, 0x74, - 0x55, 0x73, 0x65, 0x72, 0x12, 0x24, 0x0a, 0x0d, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, - 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x03, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x6f, 0x70, 0x65, - 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x22, 0x6b, 0x0a, 0x11, 0x46, 0x72, - 0x69, 0x65, 0x6e, 0x64, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, - 0x18, 0x0a, 0x07, 0x61, 0x64, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x01, 0x20, 0x01, 0x28, 0x03, - 0x52, 0x07, 0x61, 0x64, 0x64, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x1c, 0x0a, 0x09, 0x61, 0x64, 0x64, - 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x61, 0x64, - 0x64, 0x53, 0x6f, 0x75, 0x72, 0x63, 0x65, 0x12, 0x1e, 0x0a, 0x0a, 0x61, 0x64, 0x64, 0x57, 0x6f, - 0x72, 0x64, 0x69, 0x6e, 0x67, 0x18, 0x03, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x61, 0x64, 0x64, - 0x57, 0x6f, 0x72, 0x64, 0x69, 0x6e, 0x67, 0x22, 0x4a, 0x0a, 0x0c, 0x46, 0x72, 0x6f, 0x6d, 0x54, - 0x6f, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x1e, 0x0a, 0x0a, 0x66, 0x72, 0x6f, 0x6d, 0x55, - 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x0a, 0x66, 0x72, 0x6f, - 0x6d, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x1a, 0x0a, 0x08, 0x74, 0x6f, 0x55, 0x73, 0x65, - 0x72, 0x49, 0x44, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x08, 0x74, 0x6f, 0x55, 0x73, 0x65, - 0x72, 0x49, 0x44, 0x22, 0x5c, 0x0a, 0x15, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x41, 0x70, 0x70, - 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x70, 0x73, 0x12, 0x43, 0x0a, 0x0c, - 0x66, 0x72, 0x6f, 0x6d, 0x54, 0x6f, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, - 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x46, 0x72, 0x6f, 0x6d, 0x54, 0x6f, 0x55, 0x73, 0x65, - 0x72, 0x49, 0x44, 0x52, 0x0c, 0x66, 0x72, 0x6f, 0x6d, 0x54, 0x6f, 0x55, 0x73, 0x65, 0x72, 0x49, - 0x44, 0x22, 0x82, 0x01, 0x0a, 0x1d, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x41, 0x70, 0x70, 0x6c, - 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x41, 0x70, 0x70, 0x72, 0x6f, 0x76, 0x65, 0x64, 0x54, - 0x69, 0x70, 0x73, 0x12, 0x43, 0x0a, 0x0c, 0x66, 0x72, 0x6f, 0x6d, 0x54, 0x6f, 0x55, 0x73, 0x65, - 0x72, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x73, 0x65, 0x72, 0x76, - 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x46, 0x72, - 0x6f, 0x6d, 0x54, 0x6f, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x52, 0x0c, 0x66, 0x72, 0x6f, 0x6d, - 0x54, 0x6f, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x1c, 0x0a, 0x09, 0x68, 0x61, 0x6e, 0x64, - 0x6c, 0x65, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, 0x52, 0x09, 0x68, 0x61, 0x6e, - 0x64, 0x6c, 0x65, 0x4d, 0x73, 0x67, 0x22, 0x82, 0x01, 0x0a, 0x1d, 0x46, 0x72, 0x69, 0x65, 0x6e, - 0x64, 0x41, 0x70, 0x70, 0x6c, 0x69, 0x63, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x52, 0x65, 0x6a, 0x65, - 0x63, 0x74, 0x65, 0x64, 0x54, 0x69, 0x70, 0x73, 0x12, 0x43, 0x0a, 0x0c, 0x66, 0x72, 0x6f, 0x6d, - 0x54, 0x6f, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, - 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, - 0x6d, 0x73, 0x2e, 0x46, 0x72, 0x6f, 0x6d, 0x54, 0x6f, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x52, - 0x0c, 0x66, 0x72, 0x6f, 0x6d, 0x54, 0x6f, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x12, 0x1c, 0x0a, - 0x09, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x4d, 0x73, 0x67, 0x18, 0x02, 0x20, 0x01, 0x28, 0x09, - 0x52, 0x09, 0x68, 0x61, 0x6e, 0x64, 0x6c, 0x65, 0x4d, 0x73, 0x67, 0x22, 0xa9, 0x01, 0x0a, 0x0f, - 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x41, 0x64, 0x64, 0x65, 0x64, 0x54, 0x69, 0x70, 0x73, 0x12, - 0x35, 0x0a, 0x06, 0x66, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, - 0x1d, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, - 0x61, 0x6d, 0x73, 0x2e, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x52, 0x06, - 0x66, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x12, 0x24, 0x0a, 0x0d, 0x6f, 0x70, 0x65, 0x72, 0x61, 0x74, - 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x18, 0x02, 0x20, 0x01, 0x28, 0x03, 0x52, 0x0d, 0x6f, - 0x70, 0x65, 0x72, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x54, 0x69, 0x6d, 0x65, 0x12, 0x39, 0x0a, 0x06, - 0x6f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x18, 0x03, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x21, 0x2e, 0x73, - 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, - 0x2e, 0x50, 0x75, 0x62, 0x6c, 0x69, 0x63, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x52, - 0x06, 0x6f, 0x70, 0x55, 0x73, 0x65, 0x72, 0x22, 0x58, 0x0a, 0x11, 0x46, 0x72, 0x69, 0x65, 0x6e, - 0x64, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x54, 0x69, 0x70, 0x73, 0x12, 0x43, 0x0a, 0x0c, - 0x66, 0x72, 0x6f, 0x6d, 0x54, 0x6f, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, - 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x46, 0x72, 0x6f, 0x6d, 0x54, 0x6f, 0x55, 0x73, 0x65, - 0x72, 0x49, 0x44, 0x52, 0x0c, 0x66, 0x72, 0x6f, 0x6d, 0x54, 0x6f, 0x55, 0x73, 0x65, 0x72, 0x49, - 0x44, 0x22, 0x55, 0x0a, 0x0e, 0x42, 0x6c, 0x61, 0x63, 0x6b, 0x41, 0x64, 0x64, 0x65, 0x64, 0x54, - 0x69, 0x70, 0x73, 0x12, 0x43, 0x0a, 0x0c, 0x66, 0x72, 0x6f, 0x6d, 0x54, 0x6f, 0x55, 0x73, 0x65, - 0x72, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x73, 0x65, 0x72, 0x76, - 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x46, 0x72, - 0x6f, 0x6d, 0x54, 0x6f, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x52, 0x0c, 0x66, 0x72, 0x6f, 0x6d, - 0x54, 0x6f, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x22, 0x57, 0x0a, 0x10, 0x42, 0x6c, 0x61, 0x63, - 0x6b, 0x44, 0x65, 0x6c, 0x65, 0x74, 0x65, 0x64, 0x54, 0x69, 0x70, 0x73, 0x12, 0x43, 0x0a, 0x0c, - 0x66, 0x72, 0x6f, 0x6d, 0x54, 0x6f, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, - 0x28, 0x0b, 0x32, 0x1f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, - 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x46, 0x72, 0x6f, 0x6d, 0x54, 0x6f, 0x55, 0x73, 0x65, - 0x72, 0x49, 0x44, 0x52, 0x0c, 0x66, 0x72, 0x6f, 0x6d, 0x54, 0x6f, 0x55, 0x73, 0x65, 0x72, 0x49, - 0x44, 0x22, 0x5c, 0x0a, 0x15, 0x46, 0x72, 0x69, 0x65, 0x6e, 0x64, 0x49, 0x6e, 0x66, 0x6f, 0x43, - 0x68, 0x61, 0x6e, 0x67, 0x65, 0x64, 0x54, 0x69, 0x70, 0x73, 0x12, 0x43, 0x0a, 0x0c, 0x66, 0x72, - 0x6f, 0x6d, 0x54, 0x6f, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x0b, - 0x32, 0x1f, 0x2e, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, - 0x72, 0x61, 0x6d, 0x73, 0x2e, 0x46, 0x72, 0x6f, 0x6d, 0x54, 0x6f, 0x55, 0x73, 0x65, 0x72, 0x49, - 0x44, 0x52, 0x0c, 0x66, 0x72, 0x6f, 0x6d, 0x54, 0x6f, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, 0x22, - 0x2d, 0x0a, 0x13, 0x55, 0x73, 0x65, 0x72, 0x49, 0x6e, 0x66, 0x6f, 0x55, 0x70, 0x64, 0x61, 0x74, - 0x65, 0x64, 0x54, 0x69, 0x70, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x44, - 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x75, 0x73, 0x65, 0x72, 0x49, 0x44, 0x22, 0x30, - 0x0a, 0x16, 0x43, 0x6f, 0x6e, 0x76, 0x65, 0x72, 0x73, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x55, 0x70, - 0x64, 0x61, 0x74, 0x65, 0x54, 0x69, 0x70, 0x73, 0x12, 0x16, 0x0a, 0x06, 0x55, 0x73, 0x65, 0x72, - 0x49, 0x44, 0x18, 0x01, 0x20, 0x01, 0x28, 0x09, 0x52, 0x06, 0x55, 0x73, 0x65, 0x72, 0x49, 0x44, - 0x22, 0x53, 0x0a, 0x11, 0x52, 0x65, 0x71, 0x75, 0x65, 0x73, 0x74, 0x50, 0x61, 0x67, 0x69, 0x6e, - 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x1e, 0x0a, 0x0a, 0x70, 0x61, 0x67, 0x65, 0x4e, 0x75, 0x6d, - 0x62, 0x65, 0x72, 0x18, 0x01, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x70, 0x61, 0x67, 0x65, 0x4e, - 0x75, 0x6d, 0x62, 0x65, 0x72, 0x12, 0x1e, 0x0a, 0x0a, 0x73, 0x68, 0x6f, 0x77, 0x4e, 0x75, 0x6d, - 0x62, 0x65, 0x72, 0x18, 0x02, 0x20, 0x01, 0x28, 0x05, 0x52, 0x0a, 0x73, 0x68, 0x6f, 0x77, 0x4e, - 0x75, 0x6d, 0x62, 0x65, 0x72, 0x22, 0x56, 0x0a, 0x12, 0x52, 0x65, 0x73, 0x70, 0x6f, 0x6e, 0x73, - 0x65, 0x50, 0x61, 0x67, 0x69, 0x6e, 0x61, 0x74, 0x69, 0x6f, 0x6e, 0x12, 0x20, 0x0a, 0x0b, 0x43, - 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x67, 0x65, 0x18, 0x05, 0x20, 0x01, 0x28, 0x05, - 0x52, 0x0b, 0x43, 0x75, 0x72, 0x72, 0x65, 0x6e, 0x74, 0x50, 0x61, 0x67, 0x65, 0x12, 0x1e, 0x0a, - 0x0a, 0x53, 0x68, 0x6f, 0x77, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x18, 0x06, 0x20, 0x01, 0x28, - 0x05, 0x52, 0x0a, 0x53, 0x68, 0x6f, 0x77, 0x4e, 0x75, 0x6d, 0x62, 0x65, 0x72, 0x42, 0x1c, 0x5a, - 0x1a, 0x2e, 0x2f, 0x73, 0x64, 0x6b, 0x5f, 0x77, 0x73, 0x3b, 0x73, 0x65, 0x72, 0x76, 0x65, 0x72, - 0x5f, 0x61, 0x70, 0x69, 0x5f, 0x70, 0x61, 0x72, 0x61, 0x6d, 0x73, 0x62, 0x06, 0x70, 0x72, 0x6f, - 0x74, 0x6f, 0x33, -} - -var ( - file_sdk_ws_ws_proto_rawDescOnce sync.Once - file_sdk_ws_ws_proto_rawDescData = file_sdk_ws_ws_proto_rawDesc -) - -func file_sdk_ws_ws_proto_rawDescGZIP() []byte { - file_sdk_ws_ws_proto_rawDescOnce.Do(func() { - file_sdk_ws_ws_proto_rawDescData = protoimpl.X.CompressGZIP(file_sdk_ws_ws_proto_rawDescData) - }) - return file_sdk_ws_ws_proto_rawDescData -} - -var file_sdk_ws_ws_proto_msgTypes = make([]protoimpl.MessageInfo, 41) -var file_sdk_ws_ws_proto_goTypes = []interface{}{ - (*GroupInfo)(nil), // 0: server_api_params.GroupInfo - (*GroupMemberFullInfo)(nil), // 1: server_api_params.GroupMemberFullInfo - (*PublicUserInfo)(nil), // 2: server_api_params.PublicUserInfo - (*UserInfo)(nil), // 3: server_api_params.UserInfo - (*FriendInfo)(nil), // 4: server_api_params.FriendInfo - (*BlackInfo)(nil), // 5: server_api_params.BlackInfo - (*GroupRequest)(nil), // 6: server_api_params.GroupRequest - (*FriendRequest)(nil), // 7: server_api_params.FriendRequest - (*PullMessageBySeqListResp)(nil), // 8: server_api_params.PullMessageBySeqListResp - (*PullMessageBySeqListReq)(nil), // 9: server_api_params.PullMessageBySeqListReq - (*GetMaxAndMinSeqReq)(nil), // 10: server_api_params.GetMaxAndMinSeqReq - (*GetMaxAndMinSeqResp)(nil), // 11: server_api_params.GetMaxAndMinSeqResp - (*UserSendMsgResp)(nil), // 12: server_api_params.UserSendMsgResp - (*MsgData)(nil), // 13: server_api_params.MsgData - (*OfflinePushInfo)(nil), // 14: server_api_params.OfflinePushInfo - (*TipsComm)(nil), // 15: server_api_params.TipsComm - (*GroupCreatedTips)(nil), // 16: server_api_params.GroupCreatedTips - (*GroupInfoSetTips)(nil), // 17: server_api_params.GroupInfoSetTips - (*JoinGroupApplicationTips)(nil), // 18: server_api_params.JoinGroupApplicationTips - (*MemberQuitTips)(nil), // 19: server_api_params.MemberQuitTips - (*GroupApplicationAcceptedTips)(nil), // 20: server_api_params.GroupApplicationAcceptedTips - (*GroupApplicationRejectedTips)(nil), // 21: server_api_params.GroupApplicationRejectedTips - (*GroupOwnerTransferredTips)(nil), // 22: server_api_params.GroupOwnerTransferredTips - (*MemberKickedTips)(nil), // 23: server_api_params.MemberKickedTips - (*MemberInvitedTips)(nil), // 24: server_api_params.MemberInvitedTips - (*MemberEnterTips)(nil), // 25: server_api_params.MemberEnterTips - (*FriendApplication)(nil), // 26: server_api_params.FriendApplication - (*FromToUserID)(nil), // 27: server_api_params.FromToUserID - (*FriendApplicationTips)(nil), // 28: server_api_params.FriendApplicationTips - (*FriendApplicationApprovedTips)(nil), // 29: server_api_params.FriendApplicationApprovedTips - (*FriendApplicationRejectedTips)(nil), // 30: server_api_params.FriendApplicationRejectedTips - (*FriendAddedTips)(nil), // 31: server_api_params.FriendAddedTips - (*FriendDeletedTips)(nil), // 32: server_api_params.FriendDeletedTips - (*BlackAddedTips)(nil), // 33: server_api_params.BlackAddedTips - (*BlackDeletedTips)(nil), // 34: server_api_params.BlackDeletedTips - (*FriendInfoChangedTips)(nil), // 35: server_api_params.FriendInfoChangedTips - (*UserInfoUpdatedTips)(nil), // 36: server_api_params.UserInfoUpdatedTips - (*ConversationUpdateTips)(nil), // 37: server_api_params.ConversationUpdateTips - (*RequestPagination)(nil), // 38: server_api_params.RequestPagination - (*ResponsePagination)(nil), // 39: server_api_params.ResponsePagination - nil, // 40: server_api_params.MsgData.OptionsEntry -} -var file_sdk_ws_ws_proto_depIdxs = []int32{ - 3, // 0: server_api_params.FriendInfo.friendUser:type_name -> server_api_params.UserInfo - 2, // 1: server_api_params.BlackInfo.blackUserInfo:type_name -> server_api_params.PublicUserInfo - 2, // 2: server_api_params.GroupRequest.userInfo:type_name -> server_api_params.PublicUserInfo - 0, // 3: server_api_params.GroupRequest.groupInfo:type_name -> server_api_params.GroupInfo - 13, // 4: server_api_params.PullMessageBySeqListResp.list:type_name -> server_api_params.MsgData - 40, // 5: server_api_params.MsgData.options:type_name -> server_api_params.MsgData.OptionsEntry - 14, // 6: server_api_params.MsgData.offlinePushInfo:type_name -> server_api_params.OfflinePushInfo - 0, // 7: server_api_params.GroupCreatedTips.group:type_name -> server_api_params.GroupInfo - 1, // 8: server_api_params.GroupCreatedTips.opUser:type_name -> server_api_params.GroupMemberFullInfo - 1, // 9: server_api_params.GroupCreatedTips.memberList:type_name -> server_api_params.GroupMemberFullInfo - 1, // 10: server_api_params.GroupCreatedTips.groupOwnerUser:type_name -> server_api_params.GroupMemberFullInfo - 1, // 11: server_api_params.GroupInfoSetTips.opUser:type_name -> server_api_params.GroupMemberFullInfo - 0, // 12: server_api_params.GroupInfoSetTips.group:type_name -> server_api_params.GroupInfo - 0, // 13: server_api_params.JoinGroupApplicationTips.group:type_name -> server_api_params.GroupInfo - 2, // 14: server_api_params.JoinGroupApplicationTips.applicant:type_name -> server_api_params.PublicUserInfo - 0, // 15: server_api_params.MemberQuitTips.group:type_name -> server_api_params.GroupInfo - 1, // 16: server_api_params.MemberQuitTips.quitUser:type_name -> server_api_params.GroupMemberFullInfo - 0, // 17: server_api_params.GroupApplicationAcceptedTips.group:type_name -> server_api_params.GroupInfo - 1, // 18: server_api_params.GroupApplicationAcceptedTips.opUser:type_name -> server_api_params.GroupMemberFullInfo - 0, // 19: server_api_params.GroupApplicationRejectedTips.group:type_name -> server_api_params.GroupInfo - 1, // 20: server_api_params.GroupApplicationRejectedTips.opUser:type_name -> server_api_params.GroupMemberFullInfo - 0, // 21: server_api_params.GroupOwnerTransferredTips.group:type_name -> server_api_params.GroupInfo - 1, // 22: server_api_params.GroupOwnerTransferredTips.opUser:type_name -> server_api_params.GroupMemberFullInfo - 1, // 23: server_api_params.GroupOwnerTransferredTips.newGroupOwner:type_name -> server_api_params.GroupMemberFullInfo - 0, // 24: server_api_params.MemberKickedTips.group:type_name -> server_api_params.GroupInfo - 1, // 25: server_api_params.MemberKickedTips.opUser:type_name -> server_api_params.GroupMemberFullInfo - 1, // 26: server_api_params.MemberKickedTips.kickedUserList:type_name -> server_api_params.GroupMemberFullInfo - 0, // 27: server_api_params.MemberInvitedTips.group:type_name -> server_api_params.GroupInfo - 1, // 28: server_api_params.MemberInvitedTips.opUser:type_name -> server_api_params.GroupMemberFullInfo - 1, // 29: server_api_params.MemberInvitedTips.invitedUserList:type_name -> server_api_params.GroupMemberFullInfo - 0, // 30: server_api_params.MemberEnterTips.group:type_name -> server_api_params.GroupInfo - 1, // 31: server_api_params.MemberEnterTips.entrantUser:type_name -> server_api_params.GroupMemberFullInfo - 27, // 32: server_api_params.FriendApplicationTips.fromToUserID:type_name -> server_api_params.FromToUserID - 27, // 33: server_api_params.FriendApplicationApprovedTips.fromToUserID:type_name -> server_api_params.FromToUserID - 27, // 34: server_api_params.FriendApplicationRejectedTips.fromToUserID:type_name -> server_api_params.FromToUserID - 4, // 35: server_api_params.FriendAddedTips.friend:type_name -> server_api_params.FriendInfo - 2, // 36: server_api_params.FriendAddedTips.opUser:type_name -> server_api_params.PublicUserInfo - 27, // 37: server_api_params.FriendDeletedTips.fromToUserID:type_name -> server_api_params.FromToUserID - 27, // 38: server_api_params.BlackAddedTips.fromToUserID:type_name -> server_api_params.FromToUserID - 27, // 39: server_api_params.BlackDeletedTips.fromToUserID:type_name -> server_api_params.FromToUserID - 27, // 40: server_api_params.FriendInfoChangedTips.fromToUserID:type_name -> server_api_params.FromToUserID - 41, // [41:41] is the sub-list for method output_type - 41, // [41:41] is the sub-list for method input_type - 41, // [41:41] is the sub-list for extension type_name - 41, // [41:41] is the sub-list for extension extendee - 0, // [0:41] is the sub-list for field type_name -} - -func init() { file_sdk_ws_ws_proto_init() } -func file_sdk_ws_ws_proto_init() { - if File_sdk_ws_ws_proto != nil { - return - } - if !protoimpl.UnsafeEnabled { - file_sdk_ws_ws_proto_msgTypes[0].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GroupInfo); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_sdk_ws_ws_proto_msgTypes[1].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GroupMemberFullInfo); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_sdk_ws_ws_proto_msgTypes[2].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PublicUserInfo); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_sdk_ws_ws_proto_msgTypes[3].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*UserInfo); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_sdk_ws_ws_proto_msgTypes[4].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*FriendInfo); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_sdk_ws_ws_proto_msgTypes[5].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*BlackInfo); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_sdk_ws_ws_proto_msgTypes[6].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GroupRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_sdk_ws_ws_proto_msgTypes[7].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*FriendRequest); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_sdk_ws_ws_proto_msgTypes[8].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PullMessageBySeqListResp); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_sdk_ws_ws_proto_msgTypes[9].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*PullMessageBySeqListReq); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_sdk_ws_ws_proto_msgTypes[10].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetMaxAndMinSeqReq); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_sdk_ws_ws_proto_msgTypes[11].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GetMaxAndMinSeqResp); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_sdk_ws_ws_proto_msgTypes[12].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*UserSendMsgResp); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_sdk_ws_ws_proto_msgTypes[13].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*MsgData); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_sdk_ws_ws_proto_msgTypes[14].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*OfflinePushInfo); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_sdk_ws_ws_proto_msgTypes[15].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*TipsComm); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_sdk_ws_ws_proto_msgTypes[16].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GroupCreatedTips); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_sdk_ws_ws_proto_msgTypes[17].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GroupInfoSetTips); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_sdk_ws_ws_proto_msgTypes[18].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*JoinGroupApplicationTips); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_sdk_ws_ws_proto_msgTypes[19].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*MemberQuitTips); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_sdk_ws_ws_proto_msgTypes[20].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GroupApplicationAcceptedTips); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_sdk_ws_ws_proto_msgTypes[21].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GroupApplicationRejectedTips); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_sdk_ws_ws_proto_msgTypes[22].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*GroupOwnerTransferredTips); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_sdk_ws_ws_proto_msgTypes[23].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*MemberKickedTips); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_sdk_ws_ws_proto_msgTypes[24].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*MemberInvitedTips); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_sdk_ws_ws_proto_msgTypes[25].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*MemberEnterTips); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_sdk_ws_ws_proto_msgTypes[26].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*FriendApplication); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_sdk_ws_ws_proto_msgTypes[27].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*FromToUserID); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_sdk_ws_ws_proto_msgTypes[28].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*FriendApplicationTips); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_sdk_ws_ws_proto_msgTypes[29].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*FriendApplicationApprovedTips); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_sdk_ws_ws_proto_msgTypes[30].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*FriendApplicationRejectedTips); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_sdk_ws_ws_proto_msgTypes[31].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*FriendAddedTips); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_sdk_ws_ws_proto_msgTypes[32].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*FriendDeletedTips); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_sdk_ws_ws_proto_msgTypes[33].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*BlackAddedTips); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_sdk_ws_ws_proto_msgTypes[34].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*BlackDeletedTips); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_sdk_ws_ws_proto_msgTypes[35].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*FriendInfoChangedTips); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_sdk_ws_ws_proto_msgTypes[36].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*UserInfoUpdatedTips); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_sdk_ws_ws_proto_msgTypes[37].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ConversationUpdateTips); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_sdk_ws_ws_proto_msgTypes[38].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*RequestPagination); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - file_sdk_ws_ws_proto_msgTypes[39].Exporter = func(v interface{}, i int) interface{} { - switch v := v.(*ResponsePagination); i { - case 0: - return &v.state - case 1: - return &v.sizeCache - case 2: - return &v.unknownFields - default: - return nil - } - } - } - type x struct{} - out := protoimpl.TypeBuilder{ - File: protoimpl.DescBuilder{ - GoPackagePath: reflect.TypeOf(x{}).PkgPath(), - RawDescriptor: file_sdk_ws_ws_proto_rawDesc, - NumEnums: 0, - NumMessages: 41, - NumExtensions: 0, - NumServices: 0, - }, - GoTypes: file_sdk_ws_ws_proto_goTypes, - DependencyIndexes: file_sdk_ws_ws_proto_depIdxs, - MessageInfos: file_sdk_ws_ws_proto_msgTypes, - }.Build() - File_sdk_ws_ws_proto = out.File - file_sdk_ws_ws_proto_rawDesc = nil - file_sdk_ws_ws_proto_goTypes = nil - file_sdk_ws_ws_proto_depIdxs = nil +func init() { + proto.RegisterType((*GroupInfo)(nil), "server_api_params.GroupInfo") + proto.RegisterType((*GroupMemberFullInfo)(nil), "server_api_params.GroupMemberFullInfo") + proto.RegisterType((*PublicUserInfo)(nil), "server_api_params.PublicUserInfo") + proto.RegisterType((*UserInfo)(nil), "server_api_params.UserInfo") + proto.RegisterType((*FriendInfo)(nil), "server_api_params.FriendInfo") + proto.RegisterType((*BlackInfo)(nil), "server_api_params.BlackInfo") + proto.RegisterType((*GroupRequest)(nil), "server_api_params.GroupRequest") + proto.RegisterType((*FriendRequest)(nil), "server_api_params.FriendRequest") + proto.RegisterType((*PullMessageBySeqListResp)(nil), "server_api_params.PullMessageBySeqListResp") + proto.RegisterType((*PullMessageBySeqListReq)(nil), "server_api_params.PullMessageBySeqListReq") + proto.RegisterType((*GetMaxAndMinSeqReq)(nil), "server_api_params.GetMaxAndMinSeqReq") + proto.RegisterType((*GetMaxAndMinSeqResp)(nil), "server_api_params.GetMaxAndMinSeqResp") + proto.RegisterType((*UserSendMsgResp)(nil), "server_api_params.UserSendMsgResp") + proto.RegisterType((*MsgData)(nil), "server_api_params.MsgData") + proto.RegisterMapType((map[string]bool)(nil), "server_api_params.MsgData.OptionsEntry") + proto.RegisterType((*OfflinePushInfo)(nil), "server_api_params.OfflinePushInfo") + proto.RegisterType((*TipsComm)(nil), "server_api_params.TipsComm") + proto.RegisterType((*GroupCreatedTips)(nil), "server_api_params.GroupCreatedTips") + proto.RegisterType((*GroupInfoSetTips)(nil), "server_api_params.GroupInfoSetTips") + proto.RegisterType((*JoinGroupApplicationTips)(nil), "server_api_params.JoinGroupApplicationTips") + proto.RegisterType((*MemberQuitTips)(nil), "server_api_params.MemberQuitTips") + proto.RegisterType((*GroupApplicationAcceptedTips)(nil), "server_api_params.GroupApplicationAcceptedTips") + proto.RegisterType((*GroupApplicationRejectedTips)(nil), "server_api_params.GroupApplicationRejectedTips") + proto.RegisterType((*GroupOwnerTransferredTips)(nil), "server_api_params.GroupOwnerTransferredTips") + proto.RegisterType((*MemberKickedTips)(nil), "server_api_params.MemberKickedTips") + proto.RegisterType((*MemberInvitedTips)(nil), "server_api_params.MemberInvitedTips") + proto.RegisterType((*MemberEnterTips)(nil), "server_api_params.MemberEnterTips") + proto.RegisterType((*FriendApplication)(nil), "server_api_params.FriendApplication") + proto.RegisterType((*FromToUserID)(nil), "server_api_params.FromToUserID") + proto.RegisterType((*FriendApplicationTips)(nil), "server_api_params.FriendApplicationTips") + proto.RegisterType((*FriendApplicationApprovedTips)(nil), "server_api_params.FriendApplicationApprovedTips") + proto.RegisterType((*FriendApplicationRejectedTips)(nil), "server_api_params.FriendApplicationRejectedTips") + proto.RegisterType((*FriendAddedTips)(nil), "server_api_params.FriendAddedTips") + proto.RegisterType((*FriendDeletedTips)(nil), "server_api_params.FriendDeletedTips") + proto.RegisterType((*BlackAddedTips)(nil), "server_api_params.BlackAddedTips") + proto.RegisterType((*BlackDeletedTips)(nil), "server_api_params.BlackDeletedTips") + proto.RegisterType((*FriendInfoChangedTips)(nil), "server_api_params.FriendInfoChangedTips") + proto.RegisterType((*UserInfoUpdatedTips)(nil), "server_api_params.UserInfoUpdatedTips") + proto.RegisterType((*ConversationUpdateTips)(nil), "server_api_params.ConversationUpdateTips") + proto.RegisterType((*RequestPagination)(nil), "server_api_params.RequestPagination") + proto.RegisterType((*ResponsePagination)(nil), "server_api_params.ResponsePagination") +} + +func init() { proto.RegisterFile("sdk_ws/ws.proto", fileDescriptor_ws_c5eabd6c93a174c0) } + +var fileDescriptor_ws_c5eabd6c93a174c0 = []byte{ + // 2006 bytes of a gzipped FileDescriptorProto + 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x59, 0x4f, 0x6f, 0x23, 0x49, + 0x15, 0x57, 0xdb, 0xb1, 0x13, 0x3f, 0xc7, 0x71, 0xd2, 0xb3, 0x04, 0x13, 0x66, 0x87, 0xd0, 0x5a, + 0x2d, 0x23, 0x24, 0xb2, 0x68, 0x10, 0x12, 0xec, 0x0a, 0x50, 0xfe, 0x4c, 0xc2, 0x2c, 0x71, 0x12, + 0xda, 0x19, 0x16, 0x21, 0xa4, 0x51, 0xc7, 0xfd, 0xec, 0xf4, 0xa6, 0x5d, 0xd5, 0xae, 0xea, 0x4e, + 0x66, 0x24, 0x4e, 0x20, 0xf1, 0x0d, 0xe0, 0x03, 0x70, 0x41, 0x5c, 0x10, 0x17, 0xc4, 0x85, 0x23, + 0x5f, 0x80, 0x33, 0x5f, 0x81, 0x2b, 0x07, 0x24, 0x24, 0x50, 0xfd, 0xe9, 0xee, 0xaa, 0xb6, 0x93, + 0xb5, 0xa2, 0x68, 0x87, 0x9b, 0xdf, 0xaf, 0xeb, 0xbd, 0x7a, 0xff, 0xeb, 0x55, 0x19, 0xba, 0x3c, + 0xbc, 0x7a, 0x75, 0xc3, 0x3f, 0xb8, 0xe1, 0x3b, 0x09, 0xa3, 0x29, 0x75, 0x37, 0x38, 0xb2, 0x6b, + 0x64, 0xaf, 0x82, 0x24, 0x7a, 0x95, 0x04, 0x2c, 0x98, 0x70, 0xef, 0x5f, 0x35, 0x68, 0x1d, 0x31, + 0x9a, 0x25, 0x2f, 0xc8, 0x88, 0xba, 0x3d, 0x58, 0x1e, 0x4b, 0xe2, 0xa0, 0xe7, 0x6c, 0x3b, 0x4f, + 0x5b, 0x7e, 0x4e, 0xba, 0x8f, 0xa1, 0x25, 0x7f, 0x9e, 0x04, 0x13, 0xec, 0xd5, 0xe4, 0xb7, 0x12, + 0x70, 0x3d, 0x58, 0x25, 0x34, 0x8d, 0x46, 0xd1, 0x30, 0x48, 0x23, 0x4a, 0x7a, 0x75, 0xb9, 0xc0, + 0xc2, 0xc4, 0x9a, 0x88, 0xa4, 0x8c, 0x86, 0xd9, 0x50, 0xae, 0x59, 0x52, 0x6b, 0x4c, 0x4c, 0xec, + 0x3f, 0x0a, 0x86, 0xf8, 0xd2, 0x3f, 0xee, 0x35, 0xd4, 0xfe, 0x9a, 0x74, 0xb7, 0xa1, 0x4d, 0x6f, + 0x08, 0xb2, 0x97, 0x1c, 0xd9, 0x8b, 0x83, 0x5e, 0x53, 0x7e, 0x35, 0x21, 0xf7, 0x09, 0xc0, 0x90, + 0x61, 0x90, 0xe2, 0x79, 0x34, 0xc1, 0xde, 0xf2, 0xb6, 0xf3, 0xb4, 0xe3, 0x1b, 0x88, 0x90, 0x30, + 0xc1, 0xc9, 0x05, 0xb2, 0x7d, 0x9a, 0x91, 0xb4, 0xb7, 0x22, 0x17, 0x98, 0x90, 0xbb, 0x06, 0x35, + 0x7c, 0xdd, 0x6b, 0x49, 0xd1, 0x35, 0x7c, 0xed, 0x6e, 0x42, 0x93, 0xa7, 0x41, 0x9a, 0xf1, 0x1e, + 0x6c, 0x3b, 0x4f, 0x1b, 0xbe, 0xa6, 0xdc, 0xf7, 0xa0, 0x23, 0xe5, 0xd2, 0x5c, 0x9b, 0xb6, 0x64, + 0xb1, 0xc1, 0xc2, 0x63, 0xe7, 0x6f, 0x12, 0xec, 0xad, 0x4a, 0x01, 0x25, 0xe0, 0xfd, 0xa5, 0x06, + 0x8f, 0xa4, 0xdf, 0xfb, 0x52, 0x81, 0xc3, 0x2c, 0x8e, 0x3f, 0x23, 0x02, 0x9b, 0xd0, 0xcc, 0xd4, + 0x76, 0xca, 0xfd, 0x9a, 0x12, 0xfb, 0x30, 0x1a, 0xe3, 0x31, 0x5e, 0x63, 0x2c, 0x1d, 0xdf, 0xf0, + 0x4b, 0xc0, 0xdd, 0x82, 0x95, 0x4f, 0x69, 0x44, 0xa4, 0x4f, 0x84, 0xc7, 0xeb, 0x7e, 0x41, 0x8b, + 0x6f, 0x24, 0x1a, 0x5e, 0x11, 0x11, 0x52, 0xe5, 0xee, 0x82, 0x36, 0x23, 0xd1, 0xb4, 0x23, 0xf1, + 0x3e, 0xac, 0x05, 0x49, 0xd2, 0x0f, 0xc8, 0x18, 0x99, 0xda, 0x74, 0x59, 0x6e, 0x5a, 0x41, 0x45, + 0x3c, 0xc4, 0x4e, 0x03, 0x9a, 0xb1, 0x21, 0x4a, 0x77, 0x37, 0x7c, 0x03, 0x11, 0x72, 0x68, 0x82, + 0xcc, 0x70, 0xa3, 0xf2, 0x7c, 0x05, 0xd5, 0x51, 0x81, 0x3c, 0x2a, 0xde, 0xaf, 0x1d, 0x58, 0x3b, + 0xcb, 0x2e, 0xe2, 0x68, 0x28, 0x17, 0x08, 0xa7, 0x95, 0xae, 0x71, 0x2c, 0xd7, 0x98, 0x06, 0xd6, + 0x6e, 0x37, 0xb0, 0x6e, 0x1b, 0xb8, 0x09, 0xcd, 0x31, 0x92, 0x10, 0x99, 0x74, 0x58, 0xc3, 0xd7, + 0x94, 0x56, 0xa4, 0x51, 0x28, 0xf2, 0xdb, 0x1a, 0xac, 0x7c, 0xce, 0x2a, 0x6c, 0x43, 0x3b, 0xb9, + 0xa4, 0x04, 0x4f, 0x32, 0x91, 0x34, 0x5a, 0x17, 0x13, 0x72, 0xdf, 0x81, 0xc6, 0x45, 0xc4, 0xd2, + 0x4b, 0x19, 0xb5, 0x8e, 0xaf, 0x08, 0x81, 0xe2, 0x24, 0x88, 0x54, 0xa8, 0x5a, 0xbe, 0x22, 0xb4, + 0x41, 0x2b, 0x45, 0xbe, 0xdb, 0x15, 0xd4, 0x9a, 0xa9, 0xa0, 0xd9, 0xc8, 0xc3, 0xbc, 0xc8, 0x7b, + 0xff, 0x76, 0x00, 0x0e, 0x59, 0x84, 0x24, 0x94, 0xae, 0xa9, 0x94, 0xae, 0x33, 0x5b, 0xba, 0x9b, + 0xd0, 0x64, 0x38, 0x09, 0xd8, 0x55, 0x9e, 0xda, 0x8a, 0xaa, 0x28, 0x54, 0x9f, 0x51, 0xe8, 0x23, + 0x80, 0x91, 0xdc, 0x47, 0xc8, 0x91, 0xae, 0x6a, 0x3f, 0xfb, 0xf2, 0xce, 0x4c, 0x93, 0xdb, 0xc9, + 0xa3, 0xe4, 0x1b, 0xcb, 0x45, 0xdd, 0x04, 0x61, 0xa8, 0xd3, 0xb3, 0xa1, 0xea, 0xa6, 0x00, 0xe6, + 0x64, 0x67, 0xf3, 0x8e, 0xec, 0x5c, 0x2e, 0x92, 0xe2, 0x9f, 0x0e, 0xb4, 0xf6, 0xe2, 0x60, 0x78, + 0xb5, 0xa0, 0xe9, 0xb6, 0x89, 0xb5, 0x19, 0x13, 0x8f, 0xa0, 0x73, 0x21, 0xc4, 0xe5, 0x26, 0x48, + 0x2f, 0xb4, 0x9f, 0x7d, 0x75, 0x8e, 0x95, 0x76, 0x51, 0xf8, 0x36, 0x9f, 0x6d, 0xee, 0xd2, 0x67, + 0x9b, 0xdb, 0xb8, 0xc3, 0xdc, 0x66, 0x61, 0xee, 0xdf, 0x6b, 0xb0, 0x2a, 0xdb, 0x98, 0x8f, 0xd3, + 0x0c, 0x79, 0xea, 0x7e, 0x0f, 0x56, 0xb2, 0x5c, 0x55, 0x67, 0x51, 0x55, 0x0b, 0x16, 0xf7, 0x43, + 0xdd, 0x34, 0x25, 0x7f, 0x4d, 0xf2, 0x3f, 0x9e, 0xc3, 0x5f, 0x9c, 0x58, 0x7e, 0xb9, 0x5c, 0x1c, + 0x30, 0x97, 0x01, 0x09, 0x63, 0xf4, 0x91, 0x67, 0x71, 0xaa, 0x7b, 0xa1, 0x85, 0xa9, 0x4c, 0x9b, + 0xf6, 0xf9, 0x58, 0x1f, 0x3f, 0x9a, 0x12, 0xde, 0x51, 0xeb, 0xc4, 0x27, 0x65, 0x7a, 0x09, 0x88, + 0x42, 0x65, 0x38, 0x95, 0x11, 0x52, 0x65, 0x95, 0x93, 0xe5, 0x9e, 0xda, 0x6b, 0x2a, 0x11, 0x2c, + 0x4c, 0x84, 0x58, 0xd1, 0x52, 0x80, 0x3a, 0x77, 0x0c, 0xa4, 0x7a, 0xec, 0x78, 0xff, 0xa8, 0x43, + 0x47, 0x95, 0x4f, 0xee, 0xd4, 0x27, 0x22, 0xcf, 0xe9, 0xc4, 0xca, 0x22, 0x03, 0x11, 0x5a, 0x08, + 0xea, 0xc4, 0x6e, 0x34, 0x16, 0x26, 0x52, 0x51, 0xd0, 0x87, 0x56, 0xc3, 0x31, 0xa1, 0x7c, 0x97, + 0x23, 0xb3, 0xf1, 0x18, 0x88, 0x68, 0x65, 0x29, 0xb5, 0xb2, 0xa3, 0xa0, 0x05, 0x6f, 0x4a, 0x8b, + 0xfd, 0x55, 0x7e, 0x18, 0x88, 0xf0, 0x6f, 0x4a, 0xf3, 0xbd, 0x95, 0x93, 0x4a, 0x40, 0x49, 0xd6, + 0xfb, 0xaa, 0x83, 0xa2, 0xa0, 0x67, 0xa2, 0xda, 0xba, 0x33, 0xaa, 0x60, 0x45, 0xd5, 0x2e, 0xae, + 0xf6, 0x4c, 0x71, 0xbd, 0x07, 0x1d, 0x25, 0x27, 0x4f, 0xfa, 0x55, 0x75, 0x90, 0x5b, 0xa0, 0x9d, + 0x1b, 0x9d, 0x6a, 0x6e, 0xd8, 0xd1, 0x5d, 0xbb, 0x25, 0xba, 0xdd, 0x22, 0xba, 0xbf, 0x80, 0xde, + 0x59, 0x16, 0xc7, 0x7d, 0xe4, 0x3c, 0x18, 0xe3, 0xde, 0x9b, 0x01, 0x4e, 0x8f, 0x23, 0x9e, 0xfa, + 0xc8, 0x13, 0x91, 0x67, 0xc8, 0xd8, 0x3e, 0x0d, 0x51, 0x06, 0xb9, 0xe1, 0xe7, 0xa4, 0xb0, 0x10, + 0x19, 0x13, 0x0a, 0xe8, 0x0e, 0xa9, 0x28, 0x77, 0x07, 0x96, 0xe2, 0x88, 0x8b, 0x5c, 0xaf, 0x3f, + 0x6d, 0x3f, 0xdb, 0x9a, 0x53, 0x2a, 0x7d, 0x3e, 0x3e, 0x08, 0xd2, 0xc0, 0x97, 0xeb, 0xbc, 0x09, + 0x7c, 0x71, 0xfe, 0xee, 0xd3, 0x5b, 0x4f, 0x30, 0xd1, 0xc3, 0x64, 0x13, 0x88, 0x28, 0x29, 0x86, + 0x0f, 0x13, 0x12, 0x6a, 0x73, 0x25, 0x47, 0xea, 0xd1, 0xf1, 0x73, 0xd2, 0x7b, 0x07, 0xdc, 0x23, + 0x4c, 0xfb, 0xc1, 0xeb, 0x5d, 0x12, 0xf6, 0x23, 0x32, 0xc0, 0xa9, 0x8f, 0x53, 0xef, 0x39, 0x3c, + 0x9a, 0x41, 0x79, 0x22, 0x14, 0x98, 0x04, 0xaf, 0x07, 0x38, 0x95, 0x0a, 0x74, 0x7c, 0x4d, 0x49, + 0x5c, 0xae, 0xd2, 0xed, 0x51, 0x53, 0xde, 0x14, 0xba, 0x22, 0x42, 0x03, 0x24, 0x61, 0x9f, 0x8f, + 0xa5, 0x88, 0x6d, 0x68, 0x2b, 0x0f, 0xf4, 0xf9, 0xb8, 0xec, 0xb7, 0x06, 0x24, 0x56, 0x0c, 0xe3, + 0x08, 0x49, 0xaa, 0x56, 0x68, 0x6b, 0x0c, 0x48, 0x24, 0x23, 0x47, 0x12, 0x16, 0x47, 0x4e, 0xdd, + 0x2f, 0x68, 0xef, 0xaf, 0x0d, 0x58, 0xd6, 0x0e, 0x95, 0xd3, 0xa1, 0x38, 0xe2, 0x0a, 0x7f, 0x29, + 0x4a, 0x25, 0xe3, 0xf0, 0xba, 0x9c, 0xd3, 0x14, 0x65, 0x4e, 0x76, 0x75, 0x7b, 0xb2, 0xab, 0xe8, + 0xb4, 0x34, 0xab, 0x53, 0xc5, 0xae, 0xc6, 0xac, 0x5d, 0x5f, 0x87, 0x75, 0x2e, 0x0b, 0xe6, 0x2c, + 0x0e, 0xd2, 0x11, 0x65, 0x13, 0x7d, 0x62, 0x35, 0xfc, 0x19, 0x5c, 0x34, 0x7b, 0x85, 0x15, 0x05, + 0xab, 0x2a, 0xb2, 0x82, 0x8a, 0xf2, 0x50, 0x48, 0x5e, 0xb8, 0x6a, 0x54, 0xb0, 0x41, 0xa5, 0x1b, + 0xe7, 0x11, 0x25, 0x72, 0xd2, 0x55, 0xf5, 0x69, 0x42, 0xc2, 0xf2, 0x09, 0x1f, 0x1f, 0x32, 0x3a, + 0xd1, 0x03, 0x43, 0x4e, 0x4a, 0xcb, 0x29, 0x49, 0x91, 0xa4, 0x92, 0xb7, 0xad, 0x78, 0x0d, 0x48, + 0xf0, 0x6a, 0x52, 0x16, 0xe7, 0xaa, 0x9f, 0x93, 0xee, 0x3a, 0xd4, 0x39, 0x4e, 0x75, 0xc5, 0x89, + 0x9f, 0x56, 0xe4, 0xba, 0x76, 0xe4, 0x2a, 0xad, 0x60, 0x5d, 0x7e, 0x35, 0x5b, 0x41, 0x39, 0xeb, + 0x6f, 0x58, 0xb3, 0xfe, 0x2e, 0x2c, 0xd3, 0x44, 0xe4, 0x39, 0xef, 0xb9, 0xb2, 0xc6, 0xbe, 0x76, + 0x7b, 0x8d, 0xed, 0x9c, 0xaa, 0x95, 0xcf, 0x49, 0xca, 0xde, 0xf8, 0x39, 0x9f, 0x7b, 0x0c, 0x5d, + 0x3a, 0x1a, 0xc5, 0x11, 0xc1, 0xb3, 0x8c, 0x5f, 0xca, 0x93, 0xed, 0x91, 0x3c, 0xd9, 0xbc, 0x39, + 0xa2, 0x4e, 0xed, 0x95, 0x7e, 0x95, 0x75, 0xeb, 0x43, 0x58, 0x35, 0xb7, 0x11, 0x6e, 0xb8, 0xc2, + 0x37, 0x3a, 0x07, 0xc5, 0x4f, 0x31, 0xec, 0x5d, 0x07, 0x71, 0xa6, 0x8e, 0x81, 0x15, 0x5f, 0x11, + 0x1f, 0xd6, 0xbe, 0xe3, 0x78, 0xbf, 0x71, 0xa0, 0x5b, 0xd9, 0x40, 0xac, 0x4e, 0xa3, 0x34, 0x46, + 0x2d, 0x41, 0x11, 0xae, 0x0b, 0x4b, 0x21, 0xf2, 0xa1, 0x4e, 0x61, 0xf9, 0x5b, 0x77, 0xb2, 0x7a, + 0x31, 0x2e, 0x8a, 0x0b, 0xdd, 0xe9, 0x40, 0x08, 0x1a, 0xd0, 0x8c, 0x84, 0xc5, 0x85, 0xce, 0xc0, + 0x44, 0x0a, 0x45, 0xa7, 0x83, 0xbd, 0x20, 0x1c, 0xa3, 0xba, 0x76, 0x35, 0xa4, 0x4e, 0x36, 0xe8, + 0x85, 0xb0, 0x72, 0x1e, 0x25, 0x7c, 0x9f, 0x4e, 0x26, 0x22, 0x10, 0x21, 0xa6, 0x62, 0x56, 0x75, + 0x64, 0xbc, 0x35, 0x25, 0x52, 0x25, 0xc4, 0x51, 0x90, 0xc5, 0xa9, 0x58, 0x9a, 0x17, 0xae, 0x01, + 0xc9, 0x0b, 0x07, 0xa7, 0xe4, 0x40, 0x71, 0x2b, 0x3d, 0x0d, 0xc4, 0xfb, 0x5b, 0x0d, 0xd6, 0xe5, + 0xe0, 0xb0, 0x2f, 0xc3, 0x1e, 0x4a, 0xa6, 0x67, 0xd0, 0x90, 0x65, 0xa8, 0x87, 0x95, 0xbb, 0x87, + 0x0d, 0xb5, 0xd4, 0xfd, 0x3e, 0x34, 0x69, 0x22, 0x47, 0x4e, 0x35, 0xa1, 0xbc, 0x7f, 0x1b, 0x93, + 0x7d, 0xb7, 0xf3, 0x35, 0x97, 0x7b, 0x08, 0xa0, 0xae, 0x9d, 0xc7, 0x65, 0xeb, 0x5e, 0x54, 0x86, + 0xc1, 0x29, 0x9c, 0x5b, 0xb4, 0x61, 0xe3, 0x82, 0x67, 0x83, 0xee, 0x09, 0xac, 0x49, 0xb5, 0x4f, + 0xf3, 0xa9, 0x53, 0xc6, 0x60, 0xf1, 0x1d, 0x2b, 0xdc, 0xde, 0xef, 0x1c, 0xed, 0x46, 0xf1, 0x75, + 0x80, 0xca, 0xf7, 0xa5, 0x4b, 0x9c, 0x7b, 0xb9, 0x64, 0x0b, 0x56, 0x26, 0x99, 0x31, 0x04, 0xd7, + 0xfd, 0x82, 0x2e, 0x43, 0x54, 0x5f, 0x38, 0x44, 0xde, 0xef, 0x1d, 0xe8, 0x7d, 0x4c, 0x23, 0x22, + 0x3f, 0xec, 0x26, 0x49, 0xac, 0x5f, 0x21, 0xee, 0x1d, 0xf3, 0x1f, 0x40, 0x2b, 0x50, 0x62, 0x48, + 0xaa, 0xc3, 0xbe, 0xc0, 0x60, 0x5b, 0xf2, 0x18, 0x33, 0x4a, 0xdd, 0x9c, 0x51, 0xbc, 0x3f, 0x3a, + 0xb0, 0xa6, 0x9c, 0xf2, 0xe3, 0x2c, 0x4a, 0xef, 0xad, 0xdf, 0x1e, 0xac, 0x4c, 0xb3, 0x28, 0xbd, + 0x47, 0x56, 0x16, 0x7c, 0xb3, 0xf9, 0x54, 0x9f, 0x93, 0x4f, 0xde, 0x9f, 0x1c, 0x78, 0x5c, 0x75, + 0xeb, 0xee, 0x70, 0x88, 0xc9, 0xdb, 0x2c, 0x29, 0x6b, 0x46, 0x5b, 0xaa, 0xcc, 0x68, 0x73, 0x55, + 0xf6, 0xf1, 0x53, 0x1c, 0xfe, 0xff, 0xaa, 0xfc, 0xab, 0x1a, 0x7c, 0xe9, 0xa8, 0x28, 0xbc, 0x73, + 0x16, 0x10, 0x3e, 0x42, 0xc6, 0xde, 0xa2, 0xbe, 0xc7, 0xd0, 0x21, 0x78, 0x53, 0xea, 0xa4, 0xcb, + 0x71, 0x51, 0x31, 0x36, 0xf3, 0x62, 0xbd, 0xcb, 0xfb, 0x8f, 0x03, 0xeb, 0x4a, 0xce, 0x8f, 0xa2, + 0xe1, 0xd5, 0x5b, 0x34, 0xfe, 0x04, 0xd6, 0xae, 0xa4, 0x06, 0x82, 0xba, 0x47, 0xdb, 0xae, 0x70, + 0x2f, 0x68, 0xfe, 0x7f, 0x1d, 0xd8, 0x50, 0x82, 0x5e, 0x90, 0xeb, 0xe8, 0x6d, 0x26, 0xeb, 0x19, + 0x74, 0x23, 0xa5, 0xc2, 0x3d, 0x1d, 0x50, 0x65, 0x5f, 0xd0, 0x03, 0x7f, 0x76, 0xa0, 0xab, 0x24, + 0x3d, 0x27, 0x29, 0xb2, 0x7b, 0xdb, 0xff, 0x43, 0x68, 0x23, 0x49, 0x59, 0x40, 0xee, 0xd3, 0x21, + 0x4d, 0xd6, 0x05, 0x9b, 0xe4, 0x15, 0x6c, 0xa8, 0x2b, 0xbc, 0xd1, 0x71, 0xc4, 0x2c, 0x1b, 0x84, + 0x6a, 0x3c, 0x75, 0x24, 0x53, 0x4e, 0xda, 0x8f, 0x33, 0xfa, 0x75, 0xbd, 0x7c, 0x9c, 0x79, 0x02, + 0x10, 0x84, 0xe1, 0x27, 0x94, 0x85, 0x11, 0xc9, 0x8f, 0x0f, 0x03, 0xf1, 0x3e, 0x86, 0x55, 0x31, + 0x4d, 0x9f, 0x1b, 0x97, 0xf1, 0x3b, 0x9f, 0x0b, 0xcc, 0x8b, 0x7c, 0xcd, 0xbe, 0xc8, 0x7b, 0x3f, + 0x87, 0x2f, 0xcc, 0x28, 0x2e, 0xbd, 0xbe, 0xaf, 0xde, 0x18, 0xf2, 0x4d, 0xb4, 0xf3, 0xbf, 0x32, + 0xc7, 0x85, 0xa6, 0x2e, 0xbe, 0xc5, 0xe4, 0xfd, 0xd2, 0x81, 0x77, 0x67, 0xc4, 0xef, 0x26, 0x09, + 0xa3, 0xd7, 0x3a, 0xb9, 0x1f, 0x62, 0x1b, 0xbb, 0xb5, 0xd6, 0xaa, 0xad, 0x75, 0xae, 0x12, 0xd6, + 0x71, 0xf0, 0x39, 0x28, 0xf1, 0x07, 0x07, 0xba, 0x5a, 0x89, 0x30, 0xd4, 0xdb, 0x7e, 0x1b, 0x9a, + 0xea, 0x7d, 0x52, 0x6f, 0xf8, 0xee, 0xdc, 0x0d, 0xf3, 0x77, 0x55, 0x5f, 0x2f, 0x9e, 0xcd, 0xc8, + 0xda, 0xbc, 0x31, 0xf0, 0xbb, 0x45, 0x07, 0x58, 0xf8, 0x05, 0x51, 0x33, 0x78, 0x3f, 0xcd, 0x93, + 0xf9, 0x00, 0x63, 0x7c, 0x48, 0x1f, 0x79, 0x2f, 0x61, 0x4d, 0x3e, 0x96, 0x96, 0x3e, 0x78, 0x10, + 0xb1, 0x9f, 0xc0, 0xba, 0x14, 0xfb, 0xe0, 0xfa, 0x16, 0xd5, 0x21, 0xfc, 0xb3, 0x7f, 0x19, 0x90, + 0xf1, 0x43, 0x4a, 0xff, 0x06, 0x3c, 0xca, 0x7d, 0xff, 0x32, 0x09, 0x8b, 0x2b, 0xca, 0x2d, 0x0f, + 0x33, 0xde, 0x37, 0x61, 0x73, 0x9f, 0x92, 0x6b, 0x64, 0x5c, 0x46, 0x59, 0xb1, 0xe4, 0x1c, 0x56, + 0xf1, 0x6b, 0xca, 0x1b, 0xc0, 0x86, 0x7e, 0x52, 0x3c, 0x0b, 0xc6, 0x11, 0x51, 0x5d, 0xe9, 0x09, + 0x40, 0x12, 0x8c, 0xf3, 0xbf, 0x14, 0xd4, 0xbb, 0x93, 0x81, 0x88, 0xef, 0xfc, 0x92, 0xde, 0xe8, + 0xef, 0x35, 0xf5, 0xbd, 0x44, 0xbc, 0x9f, 0x80, 0xeb, 0x23, 0x4f, 0x28, 0xe1, 0x68, 0x48, 0xdd, + 0x86, 0xf6, 0x7e, 0xc6, 0x18, 0x12, 0xb1, 0x55, 0xfe, 0xbe, 0x6e, 0x42, 0x42, 0xee, 0xa0, 0x94, + 0xab, 0xde, 0x2a, 0x0c, 0x64, 0xef, 0xf1, 0xcf, 0xb6, 0x76, 0x3e, 0x50, 0xff, 0x60, 0x7e, 0x34, + 0xe3, 0xc6, 0x8b, 0xa6, 0xfc, 0x47, 0xf3, 0x5b, 0xff, 0x0b, 0x00, 0x00, 0xff, 0xff, 0x24, 0xc1, + 0xb6, 0xba, 0xe4, 0x1c, 0x00, 0x00, } diff --git a/pkg/proto/sdk_ws/ws.proto b/pkg/proto/sdk_ws/ws.proto index cb622b96c..7856f4d19 100644 --- a/pkg/proto/sdk_ws/ws.proto +++ b/pkg/proto/sdk_ws/ws.proto @@ -40,6 +40,7 @@ message PublicUserInfo{ string nickname = 2; string faceURL = 3; int32 gender = 4; + string ex = 5; } message UserInfo{ @@ -338,37 +339,6 @@ message ConversationUpdateTips{ } -///callback -message CommonCallbackURLReq { - string CallbackCommand = 1 [json_name = "code"]; - string OpenIMServerID = 2; - string OperationID = 3; -} - -message CommonCallbackURLResp { - string Code = 1 [json_name = "code"]; - string Msg = 2 [json_name = "msg"]; - string OperationID = 3 [json_name = "operationID"]; -} - -message CallbackBeforeSendMsgReq { - commonReq CommonCallbackURLReq = 1; - -} - -message CallbackBeforeSendMsgResp { - commonResp CommonCallbackURLResp = 1; - string FromUserID = 2; -} - -message CallbackAfterAddFriendReq { - commonReq CommonCallbackURLReq = 1; -} - -message CallbackAfterAddFriendResp { - commonResp CommonCallbackURLResp = 1; -} - ///cms message RequestPagination { From c4554cb4e9fa4e42475628dfd1890c4835b413e7 Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Wed, 9 Mar 2022 11:25:51 +0800 Subject: [PATCH 799/814] 1.statistics log 2. Handle exception : etcd keepalive failed --- internal/msg_gateway/gate/init.go | 4 ++-- internal/msg_transfer/logic/history_msg_handler.go | 4 ++-- internal/push/logic/init.go | 2 +- pkg/grpc-etcdv3/getcdv3/register.go | 10 ++++++++++ pkg/statistics/statistics.go | 7 ++++--- 5 files changed, 19 insertions(+), 8 deletions(-) diff --git a/internal/msg_gateway/gate/init.go b/internal/msg_gateway/gate/init.go index a98027561..b827f9928 100644 --- a/internal/msg_gateway/gate/init.go +++ b/internal/msg_gateway/gate/init.go @@ -23,8 +23,8 @@ func Init(rpcPort, wsPort int) { log.NewPrivateLog(config.Config.ModuleName.LongConnSvrName) rwLock = new(sync.RWMutex) validate = validator.New() - statistics.NewStatistics(&sendMsgCount, config.Config.ModuleName.LongConnSvrName, fmt.Sprintf("%d second recv to msg_gateway sendMsgCount", sendMsgCount), 10) - statistics.NewStatistics(&userCount, config.Config.ModuleName.LongConnSvrName, fmt.Sprintf("%d second add user conn", userCount), 10) + statistics.NewStatistics(&sendMsgCount, config.Config.ModuleName.LongConnSvrName, fmt.Sprintf("%d second recv to msg_gateway sendMsgCount", sendMsgCount), 300) + statistics.NewStatistics(&userCount, config.Config.ModuleName.LongConnSvrName, fmt.Sprintf("%d second add user conn", userCount), 300) ws.onInit(wsPort) rpcSvr.onInit(rpcPort) } diff --git a/internal/msg_transfer/logic/history_msg_handler.go b/internal/msg_transfer/logic/history_msg_handler.go index 294b5ed70..1281b1732 100644 --- a/internal/msg_transfer/logic/history_msg_handler.go +++ b/internal/msg_transfer/logic/history_msg_handler.go @@ -26,8 +26,8 @@ type HistoryConsumerHandler struct { } func (mc *HistoryConsumerHandler) Init() { - statistics.NewStatistics(&mc.singleMsgCount, config.Config.ModuleName.MsgTransferName, "singleMsgCount insert to mongo ", 10) - statistics.NewStatistics(&mc.groupMsgCount, config.Config.ModuleName.MsgTransferName, "groupMsgCount insert to mongo ", 10) + statistics.NewStatistics(&mc.singleMsgCount, config.Config.ModuleName.MsgTransferName, "singleMsgCount insert to mongo ", 300) + statistics.NewStatistics(&mc.groupMsgCount, config.Config.ModuleName.MsgTransferName, "groupMsgCount insert to mongo ", 300) mc.msgHandle = make(map[string]fcb) mc.msgHandle[config.Config.Kafka.Ws2mschat.Topic] = mc.handleChatWs2Mongo diff --git a/internal/push/logic/init.go b/internal/push/logic/init.go index 02d96fda4..6f6f061b8 100644 --- a/internal/push/logic/init.go +++ b/internal/push/logic/init.go @@ -31,7 +31,7 @@ func Init(rpcPort int) { } func init() { producer = kafka.NewKafkaProducer(config.Config.Kafka.Ws2mschat.Addr, config.Config.Kafka.Ws2mschat.Topic) - statistics.NewStatistics(&count, config.Config.ModuleName.PushName, fmt.Sprintf("%d second push to msg_gateway count", 10), 10) + statistics.NewStatistics(&count, config.Config.ModuleName.PushName, fmt.Sprintf("%d second push to msg_gateway count", 300), 300) } func Run() { diff --git a/pkg/grpc-etcdv3/getcdv3/register.go b/pkg/grpc-etcdv3/getcdv3/register.go index 3230590b6..898a4b8c0 100644 --- a/pkg/grpc-etcdv3/getcdv3/register.go +++ b/pkg/grpc-etcdv3/getcdv3/register.go @@ -78,6 +78,16 @@ func RegisterEtcd(schema, etcdAddr, myHost string, myPort int, serviceName strin log.Debug("", "KeepAlive kresp ok", pv) } else { log.Error("", "KeepAlive kresp failed", pv) + t := time.NewTicker(time.Duration(ttl) * time.Second) + for { + select { + case <-t.C: + } + if _, err := cli.Put(ctx, serviceKey, serviceValue, clientv3.WithLease(resp.ID)); err != nil { + log.Error("", "etcd Put failed ", err.Error(), serviceKey, serviceValue, resp.ID) + } + log.Info("", "etcd Put ok", serviceKey, serviceValue, resp.ID) + } } } } diff --git a/pkg/statistics/statistics.go b/pkg/statistics/statistics.go index 2711c5d91..bea4479bd 100644 --- a/pkg/statistics/statistics.go +++ b/pkg/statistics/statistics.go @@ -1,6 +1,7 @@ package statistics import ( + "Open_IM/pkg/common/log" "time" ) @@ -14,13 +15,13 @@ type Statistics struct { func (s *Statistics) output() { t := time.NewTicker(time.Duration(s.SleepTime) * time.Second) defer t.Stop() - //var sum uint64 + var sum uint64 for { - //sum = *s.Count + sum = *s.Count select { case <-t.C: } - //log.NewWarn("", " system stat ", s.ModuleName, s.PrintArgs, *s.Count-sum, "total:", *s.Count) + log.NewWarn("", " system stat ", s.ModuleName, s.PrintArgs, *s.Count-sum, "total:", *s.Count) } } From 12d10ce8b5face111d6a087c075a78810067bbd8 Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Thu, 10 Mar 2022 12:01:28 +0800 Subject: [PATCH 800/814] fix bug: group member jointime --- internal/rpc/group/group.go | 37 ++++++++++++++++++------------------- 1 file changed, 18 insertions(+), 19 deletions(-) diff --git a/internal/rpc/group/group.go b/internal/rpc/group/group.go index 7d4b85094..1a992cfa3 100644 --- a/internal/rpc/group/group.go +++ b/internal/rpc/group/group.go @@ -79,7 +79,7 @@ func (s *groupServer) CreateGroup(ctx context.Context, req *pbGroup.CreateGroupR canCreate, err := callbackBeforeCreateGroup(req) if err != nil || !canCreate { if err != nil { - log.NewError(req.OperationID, utils.GetSelfFuncName(), "callbackBeforeCreateGroup failed", ) + log.NewError(req.OperationID, utils.GetSelfFuncName(), "callbackBeforeCreateGroup failed") } } //Time stamp + MD5 to generate group chat id @@ -274,7 +274,7 @@ func (s *groupServer) GetGroupAllMember(ctx context.Context, req *pbGroup.GetGro for _, v := range memberList { var node open_im_sdk.GroupMemberFullInfo - utils.CopyStructFields(&node, &v) + cp.GroupMemberDBCopyOpenIM(&node, &v) resp.MemberList = append(resp.MemberList, &node) } log.NewInfo(req.OperationID, "GetGroupAllMember rpc return ", resp.String()) @@ -647,9 +647,9 @@ func (s *groupServer) TransferGroupOwner(_ context.Context, req *pbGroup.Transfe } func (s *groupServer) GetGroupById(_ context.Context, req *pbGroup.GetGroupByIdReq) (*pbGroup.GetGroupByIdResp, error) { - log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "req: ", req.String()) + log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "req: ", req.String()) resp := &pbGroup.GetGroupByIdResp{CMSGroup: &pbGroup.CMSGroup{ - GroupInfo: &open_im_sdk.GroupInfo{}, + GroupInfo: &open_im_sdk.GroupInfo{}, }} group, err := imdb.GetGroupById(req.GroupId) if err != nil { @@ -687,7 +687,7 @@ func (s *groupServer) GetGroup(_ context.Context, req *pbGroup.GetGroupReq) (*pb log.NewError(req.OperationID, utils.GetSelfFuncName(), "GetGroupsByName error", req.String()) return resp, http.WrapError(constant.ErrDB) } - nums, err := imdb.GetGroupsCountNum(db.Group{GroupName:req.GroupName}) + nums, err := imdb.GetGroupsCountNum(db.Group{GroupName: req.GroupName}) if err != nil { log.NewError(req.OperationID, utils.GetSelfFuncName(), "GetGroupsCountNum error", err.Error()) return resp, http.WrapError(constant.ErrDB) @@ -712,7 +712,7 @@ func (s *groupServer) GetGroup(_ context.Context, req *pbGroup.GetGroupReq) (*pb CreatorUserID: v.CreatorUserID, }, GroupMasterName: groupMember.Nickname, - GroupMasterId: groupMember.UserID, + GroupMasterId: groupMember.UserID, }) } return resp, nil @@ -753,7 +753,7 @@ func (s *groupServer) GetGroups(_ context.Context, req *pbGroup.GetGroupsReq) (* CreatorUserID: v.CreatorUserID, CreateTime: uint32(v.CreateTime.Unix()), }, - GroupMasterId: groupMember.UserID, + GroupMasterId: groupMember.UserID, GroupMasterName: groupMember.Nickname, }) } @@ -808,11 +808,11 @@ func (s *groupServer) OperateUserRole(_ context.Context, req *pbGroup.OperateUse } func (s *groupServer) GetGroupMembersCMS(_ context.Context, req *pbGroup.GetGroupMembersCMSReq) (*pbGroup.GetGroupMembersCMSResp, error) { - log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "args:", req.String()) + log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "args:", req.String()) resp := &pbGroup.GetGroupMembersCMSResp{} groupMembers, err := imdb.GetGroupMembersByGroupIdCMS(req.GroupId, req.UserName, req.Pagination.ShowNumber, req.Pagination.PageNumber) if err != nil { - log.NewError(req.OperationID, utils.GetSelfFuncName(),"GetGroupMembersByGroupIdCMS Error", err.Error()) + log.NewError(req.OperationID, utils.GetSelfFuncName(), "GetGroupMembersByGroupIdCMS Error", err.Error()) return resp, http.WrapError(constant.ErrDB) } groupMembersCount, err := imdb.GetGroupMembersCount(req.GroupId, req.UserName) @@ -824,13 +824,13 @@ func (s *groupServer) GetGroupMembersCMS(_ context.Context, req *pbGroup.GetGrou resp.MemberNums = groupMembersCount for _, groupMember := range groupMembers { resp.Members = append(resp.Members, &open_im_sdk.GroupMemberFullInfo{ - GroupID: req.GroupId, - UserID: groupMember.UserID, - RoleLevel: groupMember.RoleLevel, - JoinTime: groupMember.JoinTime.Unix(), - Nickname: groupMember.Nickname, - FaceURL: groupMember.FaceURL, - JoinSource: groupMember.JoinSource, + GroupID: req.GroupId, + UserID: groupMember.UserID, + RoleLevel: groupMember.RoleLevel, + JoinTime: groupMember.JoinTime.Unix(), + Nickname: groupMember.Nickname, + FaceURL: groupMember.FaceURL, + JoinSource: groupMember.JoinSource, }) } resp.Pagination = &open_im_sdk.ResponsePagination{ @@ -894,7 +894,7 @@ func (s *groupServer) AddGroupMembersCMS(_ context.Context, req *pbGroup.AddGrou if err := imdb.InsertIntoGroupMember(groupMember); err != nil { log.NewError(req.OperationId, utils.GetSelfFuncName(), "InsertIntoGroupMember failed", req.String()) resp.Failed = append(resp.Failed, userId) - } else { + } else { resp.Success = append(resp.Success, userId) } } @@ -902,9 +902,8 @@ func (s *groupServer) AddGroupMembersCMS(_ context.Context, req *pbGroup.AddGrou return resp, nil } - func (s *groupServer) GetUserReqApplicationList(_ context.Context, req *pbGroup.GetUserReqApplicationListReq) (*pbGroup.GetUserReqApplicationListResp, error) { - log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "req: ", req.String()) + log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "req: ", req.String()) resp := &pbGroup.GetUserReqApplicationListResp{} groupRequests, err := imdb.GetUserReqGroupByUserID(req.UserID) if err != nil { From b10ba999cd72f8c6f91d1e5a0fee31d9c6ef31e2 Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Thu, 10 Mar 2022 12:27:16 +0800 Subject: [PATCH 801/814] join time --- pkg/proto/sdk_ws/ws.pb.go | 300 +++++++++++++++++++------------------- pkg/proto/sdk_ws/ws.proto | 2 +- 2 files changed, 151 insertions(+), 151 deletions(-) diff --git a/pkg/proto/sdk_ws/ws.pb.go b/pkg/proto/sdk_ws/ws.pb.go index a8f964b34..accf94ecf 100644 --- a/pkg/proto/sdk_ws/ws.pb.go +++ b/pkg/proto/sdk_ws/ws.pb.go @@ -1,7 +1,7 @@ // Code generated by protoc-gen-go. DO NOT EDIT. // source: sdk_ws/ws.proto -package server_api_params // import "./sdk_ws" +package server_api_params import proto "github.com/golang/protobuf/proto" import fmt "fmt" @@ -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_c5eabd6c93a174c0, []int{0} + return fileDescriptor_ws_c2d3d5fccaf1040a, []int{0} } func (m *GroupInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupInfo.Unmarshal(m, b) @@ -148,7 +148,7 @@ type GroupMemberFullInfo struct { GroupID string `protobuf:"bytes,1,opt,name=groupID" json:"groupID,omitempty"` UserID string `protobuf:"bytes,2,opt,name=userID" json:"userID,omitempty"` RoleLevel int32 `protobuf:"varint,3,opt,name=roleLevel" json:"roleLevel,omitempty"` - JoinTime int64 `protobuf:"varint,4,opt,name=joinTime" json:"joinTime,omitempty"` + JoinTime int32 `protobuf:"varint,4,opt,name=joinTime" json:"joinTime,omitempty"` Nickname string `protobuf:"bytes,5,opt,name=nickname" json:"nickname,omitempty"` FaceURL string `protobuf:"bytes,6,opt,name=faceURL" json:"faceURL,omitempty"` AppMangerLevel int32 `protobuf:"varint,7,opt,name=appMangerLevel" json:"appMangerLevel,omitempty"` @@ -164,7 +164,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_c5eabd6c93a174c0, []int{1} + return fileDescriptor_ws_c2d3d5fccaf1040a, []int{1} } func (m *GroupMemberFullInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupMemberFullInfo.Unmarshal(m, b) @@ -205,7 +205,7 @@ func (m *GroupMemberFullInfo) GetRoleLevel() int32 { return 0 } -func (m *GroupMemberFullInfo) GetJoinTime() int64 { +func (m *GroupMemberFullInfo) GetJoinTime() int32 { if m != nil { return m.JoinTime } @@ -269,7 +269,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_c5eabd6c93a174c0, []int{2} + return fileDescriptor_ws_c2d3d5fccaf1040a, []int{2} } func (m *PublicUserInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_PublicUserInfo.Unmarshal(m, b) @@ -344,7 +344,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_c5eabd6c93a174c0, []int{3} + return fileDescriptor_ws_c2d3d5fccaf1040a, []int{3} } func (m *UserInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_UserInfo.Unmarshal(m, b) @@ -451,7 +451,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_c5eabd6c93a174c0, []int{4} + return fileDescriptor_ws_c2d3d5fccaf1040a, []int{4} } func (m *FriendInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FriendInfo.Unmarshal(m, b) @@ -536,7 +536,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_c5eabd6c93a174c0, []int{5} + return fileDescriptor_ws_c2d3d5fccaf1040a, []int{5} } func (m *BlackInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_BlackInfo.Unmarshal(m, b) @@ -617,7 +617,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_c5eabd6c93a174c0, []int{6} + return fileDescriptor_ws_c2d3d5fccaf1040a, []int{6} } func (m *GroupRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupRequest.Unmarshal(m, b) @@ -725,7 +725,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_c5eabd6c93a174c0, []int{7} + return fileDescriptor_ws_c2d3d5fccaf1040a, []int{7} } func (m *FriendRequest) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FriendRequest.Unmarshal(m, b) @@ -863,7 +863,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_c5eabd6c93a174c0, []int{8} + return fileDescriptor_ws_c2d3d5fccaf1040a, []int{8} } func (m *PullMessageBySeqListResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_PullMessageBySeqListResp.Unmarshal(m, b) @@ -917,7 +917,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_c5eabd6c93a174c0, []int{9} + return fileDescriptor_ws_c2d3d5fccaf1040a, []int{9} } func (m *PullMessageBySeqListReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_PullMessageBySeqListReq.Unmarshal(m, b) @@ -968,7 +968,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_c5eabd6c93a174c0, []int{10} + return fileDescriptor_ws_c2d3d5fccaf1040a, []int{10} } func (m *GetMaxAndMinSeqReq) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetMaxAndMinSeqReq.Unmarshal(m, b) @@ -1000,7 +1000,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_c5eabd6c93a174c0, []int{11} + return fileDescriptor_ws_c2d3d5fccaf1040a, []int{11} } func (m *GetMaxAndMinSeqResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GetMaxAndMinSeqResp.Unmarshal(m, b) @@ -1047,7 +1047,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_c5eabd6c93a174c0, []int{12} + return fileDescriptor_ws_c2d3d5fccaf1040a, []int{12} } func (m *UserSendMsgResp) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_UserSendMsgResp.Unmarshal(m, b) @@ -1116,7 +1116,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_c5eabd6c93a174c0, []int{13} + return fileDescriptor_ws_c2d3d5fccaf1040a, []int{13} } func (m *MsgData) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MsgData.Unmarshal(m, b) @@ -1277,7 +1277,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_c5eabd6c93a174c0, []int{14} + return fileDescriptor_ws_c2d3d5fccaf1040a, []int{14} } func (m *OfflinePushInfo) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_OfflinePushInfo.Unmarshal(m, b) @@ -1345,7 +1345,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_c5eabd6c93a174c0, []int{15} + return fileDescriptor_ws_c2d3d5fccaf1040a, []int{15} } func (m *TipsComm) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_TipsComm.Unmarshal(m, b) @@ -1402,7 +1402,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_c5eabd6c93a174c0, []int{16} + return fileDescriptor_ws_c2d3d5fccaf1040a, []int{16} } func (m *GroupCreatedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupCreatedTips.Unmarshal(m, b) @@ -1471,7 +1471,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_c5eabd6c93a174c0, []int{17} + return fileDescriptor_ws_c2d3d5fccaf1040a, []int{17} } func (m *GroupInfoSetTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupInfoSetTips.Unmarshal(m, b) @@ -1526,7 +1526,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_c5eabd6c93a174c0, []int{18} + return fileDescriptor_ws_c2d3d5fccaf1040a, []int{18} } func (m *JoinGroupApplicationTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_JoinGroupApplicationTips.Unmarshal(m, b) @@ -1582,7 +1582,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_c5eabd6c93a174c0, []int{19} + return fileDescriptor_ws_c2d3d5fccaf1040a, []int{19} } func (m *MemberQuitTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MemberQuitTips.Unmarshal(m, b) @@ -1637,7 +1637,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_c5eabd6c93a174c0, []int{20} + return fileDescriptor_ws_c2d3d5fccaf1040a, []int{20} } func (m *GroupApplicationAcceptedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupApplicationAcceptedTips.Unmarshal(m, b) @@ -1692,7 +1692,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_c5eabd6c93a174c0, []int{21} + return fileDescriptor_ws_c2d3d5fccaf1040a, []int{21} } func (m *GroupApplicationRejectedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupApplicationRejectedTips.Unmarshal(m, b) @@ -1748,7 +1748,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_c5eabd6c93a174c0, []int{22} + return fileDescriptor_ws_c2d3d5fccaf1040a, []int{22} } func (m *GroupOwnerTransferredTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_GroupOwnerTransferredTips.Unmarshal(m, b) @@ -1811,7 +1811,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_c5eabd6c93a174c0, []int{23} + return fileDescriptor_ws_c2d3d5fccaf1040a, []int{23} } func (m *MemberKickedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MemberKickedTips.Unmarshal(m, b) @@ -1874,7 +1874,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_c5eabd6c93a174c0, []int{24} + return fileDescriptor_ws_c2d3d5fccaf1040a, []int{24} } func (m *MemberInvitedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MemberInvitedTips.Unmarshal(m, b) @@ -1936,7 +1936,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_c5eabd6c93a174c0, []int{25} + return fileDescriptor_ws_c2d3d5fccaf1040a, []int{25} } func (m *MemberEnterTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_MemberEnterTips.Unmarshal(m, b) @@ -1990,7 +1990,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_c5eabd6c93a174c0, []int{26} + return fileDescriptor_ws_c2d3d5fccaf1040a, []int{26} } func (m *FriendApplication) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FriendApplication.Unmarshal(m, b) @@ -2043,7 +2043,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_c5eabd6c93a174c0, []int{27} + return fileDescriptor_ws_c2d3d5fccaf1040a, []int{27} } func (m *FromToUserID) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FromToUserID.Unmarshal(m, b) @@ -2089,7 +2089,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_c5eabd6c93a174c0, []int{28} + return fileDescriptor_ws_c2d3d5fccaf1040a, []int{28} } func (m *FriendApplicationTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FriendApplicationTips.Unmarshal(m, b) @@ -2129,7 +2129,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_c5eabd6c93a174c0, []int{29} + return fileDescriptor_ws_c2d3d5fccaf1040a, []int{29} } func (m *FriendApplicationApprovedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FriendApplicationApprovedTips.Unmarshal(m, b) @@ -2176,7 +2176,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_c5eabd6c93a174c0, []int{30} + return fileDescriptor_ws_c2d3d5fccaf1040a, []int{30} } func (m *FriendApplicationRejectedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FriendApplicationRejectedTips.Unmarshal(m, b) @@ -2224,7 +2224,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_c5eabd6c93a174c0, []int{31} + return fileDescriptor_ws_c2d3d5fccaf1040a, []int{31} } func (m *FriendAddedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FriendAddedTips.Unmarshal(m, b) @@ -2277,7 +2277,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_c5eabd6c93a174c0, []int{32} + return fileDescriptor_ws_c2d3d5fccaf1040a, []int{32} } func (m *FriendDeletedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FriendDeletedTips.Unmarshal(m, b) @@ -2315,7 +2315,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_c5eabd6c93a174c0, []int{33} + return fileDescriptor_ws_c2d3d5fccaf1040a, []int{33} } func (m *BlackAddedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_BlackAddedTips.Unmarshal(m, b) @@ -2353,7 +2353,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_c5eabd6c93a174c0, []int{34} + return fileDescriptor_ws_c2d3d5fccaf1040a, []int{34} } func (m *BlackDeletedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_BlackDeletedTips.Unmarshal(m, b) @@ -2391,7 +2391,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_c5eabd6c93a174c0, []int{35} + return fileDescriptor_ws_c2d3d5fccaf1040a, []int{35} } func (m *FriendInfoChangedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_FriendInfoChangedTips.Unmarshal(m, b) @@ -2430,7 +2430,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_c5eabd6c93a174c0, []int{36} + return fileDescriptor_ws_c2d3d5fccaf1040a, []int{36} } func (m *UserInfoUpdatedTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_UserInfoUpdatedTips.Unmarshal(m, b) @@ -2469,7 +2469,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_c5eabd6c93a174c0, []int{37} + return fileDescriptor_ws_c2d3d5fccaf1040a, []int{37} } func (m *ConversationUpdateTips) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ConversationUpdateTips.Unmarshal(m, b) @@ -2509,7 +2509,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_c5eabd6c93a174c0, []int{38} + return fileDescriptor_ws_c2d3d5fccaf1040a, []int{38} } func (m *RequestPagination) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_RequestPagination.Unmarshal(m, b) @@ -2555,7 +2555,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_c5eabd6c93a174c0, []int{39} + return fileDescriptor_ws_c2d3d5fccaf1040a, []int{39} } func (m *ResponsePagination) XXX_Unmarshal(b []byte) error { return xxx_messageInfo_ResponsePagination.Unmarshal(m, b) @@ -2633,10 +2633,10 @@ func init() { proto.RegisterType((*ResponsePagination)(nil), "server_api_params.ResponsePagination") } -func init() { proto.RegisterFile("sdk_ws/ws.proto", fileDescriptor_ws_c5eabd6c93a174c0) } +func init() { proto.RegisterFile("sdk_ws/ws.proto", fileDescriptor_ws_c2d3d5fccaf1040a) } -var fileDescriptor_ws_c5eabd6c93a174c0 = []byte{ - // 2006 bytes of a gzipped FileDescriptorProto +var fileDescriptor_ws_c2d3d5fccaf1040a = []byte{ + // 2005 bytes of a gzipped FileDescriptorProto 0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x59, 0x4f, 0x6f, 0x23, 0x49, 0x15, 0x57, 0xdb, 0xb1, 0x13, 0x3f, 0xc7, 0x71, 0xd2, 0xb3, 0x04, 0x13, 0x66, 0x87, 0xd0, 0x5a, 0x2d, 0x23, 0x24, 0xb2, 0x68, 0x10, 0x12, 0xec, 0x0a, 0x50, 0xfe, 0x4c, 0xc2, 0x2c, 0x71, 0x12, @@ -2659,108 +2659,108 @@ var fileDescriptor_ws_c5eabd6c93a174c0 = []byte{ 0xb1, 0xc1, 0xc2, 0x63, 0xe7, 0x6f, 0x12, 0xec, 0xad, 0x4a, 0x01, 0x25, 0xe0, 0xfd, 0xa5, 0x06, 0x8f, 0xa4, 0xdf, 0xfb, 0x52, 0x81, 0xc3, 0x2c, 0x8e, 0x3f, 0x23, 0x02, 0x9b, 0xd0, 0xcc, 0xd4, 0x76, 0xca, 0xfd, 0x9a, 0x12, 0xfb, 0x30, 0x1a, 0xe3, 0x31, 0x5e, 0x63, 0x2c, 0x1d, 0xdf, 0xf0, - 0x4b, 0xc0, 0xdd, 0x82, 0x95, 0x4f, 0x69, 0x44, 0xa4, 0x4f, 0x84, 0xc7, 0xeb, 0x7e, 0x41, 0x8b, - 0x6f, 0x24, 0x1a, 0x5e, 0x11, 0x11, 0x52, 0xe5, 0xee, 0x82, 0x36, 0x23, 0xd1, 0xb4, 0x23, 0xf1, - 0x3e, 0xac, 0x05, 0x49, 0xd2, 0x0f, 0xc8, 0x18, 0x99, 0xda, 0x74, 0x59, 0x6e, 0x5a, 0x41, 0x45, - 0x3c, 0xc4, 0x4e, 0x03, 0x9a, 0xb1, 0x21, 0x4a, 0x77, 0x37, 0x7c, 0x03, 0x11, 0x72, 0x68, 0x82, - 0xcc, 0x70, 0xa3, 0xf2, 0x7c, 0x05, 0xd5, 0x51, 0x81, 0x3c, 0x2a, 0xde, 0xaf, 0x1d, 0x58, 0x3b, - 0xcb, 0x2e, 0xe2, 0x68, 0x28, 0x17, 0x08, 0xa7, 0x95, 0xae, 0x71, 0x2c, 0xd7, 0x98, 0x06, 0xd6, - 0x6e, 0x37, 0xb0, 0x6e, 0x1b, 0xb8, 0x09, 0xcd, 0x31, 0x92, 0x10, 0x99, 0x74, 0x58, 0xc3, 0xd7, - 0x94, 0x56, 0xa4, 0x51, 0x28, 0xf2, 0xdb, 0x1a, 0xac, 0x7c, 0xce, 0x2a, 0x6c, 0x43, 0x3b, 0xb9, - 0xa4, 0x04, 0x4f, 0x32, 0x91, 0x34, 0x5a, 0x17, 0x13, 0x72, 0xdf, 0x81, 0xc6, 0x45, 0xc4, 0xd2, - 0x4b, 0x19, 0xb5, 0x8e, 0xaf, 0x08, 0x81, 0xe2, 0x24, 0x88, 0x54, 0xa8, 0x5a, 0xbe, 0x22, 0xb4, - 0x41, 0x2b, 0x45, 0xbe, 0xdb, 0x15, 0xd4, 0x9a, 0xa9, 0xa0, 0xd9, 0xc8, 0xc3, 0xbc, 0xc8, 0x7b, - 0xff, 0x76, 0x00, 0x0e, 0x59, 0x84, 0x24, 0x94, 0xae, 0xa9, 0x94, 0xae, 0x33, 0x5b, 0xba, 0x9b, - 0xd0, 0x64, 0x38, 0x09, 0xd8, 0x55, 0x9e, 0xda, 0x8a, 0xaa, 0x28, 0x54, 0x9f, 0x51, 0xe8, 0x23, - 0x80, 0x91, 0xdc, 0x47, 0xc8, 0x91, 0xae, 0x6a, 0x3f, 0xfb, 0xf2, 0xce, 0x4c, 0x93, 0xdb, 0xc9, - 0xa3, 0xe4, 0x1b, 0xcb, 0x45, 0xdd, 0x04, 0x61, 0xa8, 0xd3, 0xb3, 0xa1, 0xea, 0xa6, 0x00, 0xe6, - 0x64, 0x67, 0xf3, 0x8e, 0xec, 0x5c, 0x2e, 0x92, 0xe2, 0x9f, 0x0e, 0xb4, 0xf6, 0xe2, 0x60, 0x78, - 0xb5, 0xa0, 0xe9, 0xb6, 0x89, 0xb5, 0x19, 0x13, 0x8f, 0xa0, 0x73, 0x21, 0xc4, 0xe5, 0x26, 0x48, - 0x2f, 0xb4, 0x9f, 0x7d, 0x75, 0x8e, 0x95, 0x76, 0x51, 0xf8, 0x36, 0x9f, 0x6d, 0xee, 0xd2, 0x67, - 0x9b, 0xdb, 0xb8, 0xc3, 0xdc, 0x66, 0x61, 0xee, 0xdf, 0x6b, 0xb0, 0x2a, 0xdb, 0x98, 0x8f, 0xd3, - 0x0c, 0x79, 0xea, 0x7e, 0x0f, 0x56, 0xb2, 0x5c, 0x55, 0x67, 0x51, 0x55, 0x0b, 0x16, 0xf7, 0x43, - 0xdd, 0x34, 0x25, 0x7f, 0x4d, 0xf2, 0x3f, 0x9e, 0xc3, 0x5f, 0x9c, 0x58, 0x7e, 0xb9, 0x5c, 0x1c, - 0x30, 0x97, 0x01, 0x09, 0x63, 0xf4, 0x91, 0x67, 0x71, 0xaa, 0x7b, 0xa1, 0x85, 0xa9, 0x4c, 0x9b, - 0xf6, 0xf9, 0x58, 0x1f, 0x3f, 0x9a, 0x12, 0xde, 0x51, 0xeb, 0xc4, 0x27, 0x65, 0x7a, 0x09, 0x88, - 0x42, 0x65, 0x38, 0x95, 0x11, 0x52, 0x65, 0x95, 0x93, 0xe5, 0x9e, 0xda, 0x6b, 0x2a, 0x11, 0x2c, - 0x4c, 0x84, 0x58, 0xd1, 0x52, 0x80, 0x3a, 0x77, 0x0c, 0xa4, 0x7a, 0xec, 0x78, 0xff, 0xa8, 0x43, - 0x47, 0x95, 0x4f, 0xee, 0xd4, 0x27, 0x22, 0xcf, 0xe9, 0xc4, 0xca, 0x22, 0x03, 0x11, 0x5a, 0x08, - 0xea, 0xc4, 0x6e, 0x34, 0x16, 0x26, 0x52, 0x51, 0xd0, 0x87, 0x56, 0xc3, 0x31, 0xa1, 0x7c, 0x97, - 0x23, 0xb3, 0xf1, 0x18, 0x88, 0x68, 0x65, 0x29, 0xb5, 0xb2, 0xa3, 0xa0, 0x05, 0x6f, 0x4a, 0x8b, - 0xfd, 0x55, 0x7e, 0x18, 0x88, 0xf0, 0x6f, 0x4a, 0xf3, 0xbd, 0x95, 0x93, 0x4a, 0x40, 0x49, 0xd6, - 0xfb, 0xaa, 0x83, 0xa2, 0xa0, 0x67, 0xa2, 0xda, 0xba, 0x33, 0xaa, 0x60, 0x45, 0xd5, 0x2e, 0xae, - 0xf6, 0x4c, 0x71, 0xbd, 0x07, 0x1d, 0x25, 0x27, 0x4f, 0xfa, 0x55, 0x75, 0x90, 0x5b, 0xa0, 0x9d, - 0x1b, 0x9d, 0x6a, 0x6e, 0xd8, 0xd1, 0x5d, 0xbb, 0x25, 0xba, 0xdd, 0x22, 0xba, 0xbf, 0x80, 0xde, - 0x59, 0x16, 0xc7, 0x7d, 0xe4, 0x3c, 0x18, 0xe3, 0xde, 0x9b, 0x01, 0x4e, 0x8f, 0x23, 0x9e, 0xfa, - 0xc8, 0x13, 0x91, 0x67, 0xc8, 0xd8, 0x3e, 0x0d, 0x51, 0x06, 0xb9, 0xe1, 0xe7, 0xa4, 0xb0, 0x10, - 0x19, 0x13, 0x0a, 0xe8, 0x0e, 0xa9, 0x28, 0x77, 0x07, 0x96, 0xe2, 0x88, 0x8b, 0x5c, 0xaf, 0x3f, - 0x6d, 0x3f, 0xdb, 0x9a, 0x53, 0x2a, 0x7d, 0x3e, 0x3e, 0x08, 0xd2, 0xc0, 0x97, 0xeb, 0xbc, 0x09, - 0x7c, 0x71, 0xfe, 0xee, 0xd3, 0x5b, 0x4f, 0x30, 0xd1, 0xc3, 0x64, 0x13, 0x88, 0x28, 0x29, 0x86, - 0x0f, 0x13, 0x12, 0x6a, 0x73, 0x25, 0x47, 0xea, 0xd1, 0xf1, 0x73, 0xd2, 0x7b, 0x07, 0xdc, 0x23, - 0x4c, 0xfb, 0xc1, 0xeb, 0x5d, 0x12, 0xf6, 0x23, 0x32, 0xc0, 0xa9, 0x8f, 0x53, 0xef, 0x39, 0x3c, - 0x9a, 0x41, 0x79, 0x22, 0x14, 0x98, 0x04, 0xaf, 0x07, 0x38, 0x95, 0x0a, 0x74, 0x7c, 0x4d, 0x49, - 0x5c, 0xae, 0xd2, 0xed, 0x51, 0x53, 0xde, 0x14, 0xba, 0x22, 0x42, 0x03, 0x24, 0x61, 0x9f, 0x8f, - 0xa5, 0x88, 0x6d, 0x68, 0x2b, 0x0f, 0xf4, 0xf9, 0xb8, 0xec, 0xb7, 0x06, 0x24, 0x56, 0x0c, 0xe3, - 0x08, 0x49, 0xaa, 0x56, 0x68, 0x6b, 0x0c, 0x48, 0x24, 0x23, 0x47, 0x12, 0x16, 0x47, 0x4e, 0xdd, - 0x2f, 0x68, 0xef, 0xaf, 0x0d, 0x58, 0xd6, 0x0e, 0x95, 0xd3, 0xa1, 0x38, 0xe2, 0x0a, 0x7f, 0x29, - 0x4a, 0x25, 0xe3, 0xf0, 0xba, 0x9c, 0xd3, 0x14, 0x65, 0x4e, 0x76, 0x75, 0x7b, 0xb2, 0xab, 0xe8, - 0xb4, 0x34, 0xab, 0x53, 0xc5, 0xae, 0xc6, 0xac, 0x5d, 0x5f, 0x87, 0x75, 0x2e, 0x0b, 0xe6, 0x2c, - 0x0e, 0xd2, 0x11, 0x65, 0x13, 0x7d, 0x62, 0x35, 0xfc, 0x19, 0x5c, 0x34, 0x7b, 0x85, 0x15, 0x05, - 0xab, 0x2a, 0xb2, 0x82, 0x8a, 0xf2, 0x50, 0x48, 0x5e, 0xb8, 0x6a, 0x54, 0xb0, 0x41, 0xa5, 0x1b, - 0xe7, 0x11, 0x25, 0x72, 0xd2, 0x55, 0xf5, 0x69, 0x42, 0xc2, 0xf2, 0x09, 0x1f, 0x1f, 0x32, 0x3a, - 0xd1, 0x03, 0x43, 0x4e, 0x4a, 0xcb, 0x29, 0x49, 0x91, 0xa4, 0x92, 0xb7, 0xad, 0x78, 0x0d, 0x48, - 0xf0, 0x6a, 0x52, 0x16, 0xe7, 0xaa, 0x9f, 0x93, 0xee, 0x3a, 0xd4, 0x39, 0x4e, 0x75, 0xc5, 0x89, - 0x9f, 0x56, 0xe4, 0xba, 0x76, 0xe4, 0x2a, 0xad, 0x60, 0x5d, 0x7e, 0x35, 0x5b, 0x41, 0x39, 0xeb, - 0x6f, 0x58, 0xb3, 0xfe, 0x2e, 0x2c, 0xd3, 0x44, 0xe4, 0x39, 0xef, 0xb9, 0xb2, 0xc6, 0xbe, 0x76, - 0x7b, 0x8d, 0xed, 0x9c, 0xaa, 0x95, 0xcf, 0x49, 0xca, 0xde, 0xf8, 0x39, 0x9f, 0x7b, 0x0c, 0x5d, - 0x3a, 0x1a, 0xc5, 0x11, 0xc1, 0xb3, 0x8c, 0x5f, 0xca, 0x93, 0xed, 0x91, 0x3c, 0xd9, 0xbc, 0x39, - 0xa2, 0x4e, 0xed, 0x95, 0x7e, 0x95, 0x75, 0xeb, 0x43, 0x58, 0x35, 0xb7, 0x11, 0x6e, 0xb8, 0xc2, - 0x37, 0x3a, 0x07, 0xc5, 0x4f, 0x31, 0xec, 0x5d, 0x07, 0x71, 0xa6, 0x8e, 0x81, 0x15, 0x5f, 0x11, - 0x1f, 0xd6, 0xbe, 0xe3, 0x78, 0xbf, 0x71, 0xa0, 0x5b, 0xd9, 0x40, 0xac, 0x4e, 0xa3, 0x34, 0x46, - 0x2d, 0x41, 0x11, 0xae, 0x0b, 0x4b, 0x21, 0xf2, 0xa1, 0x4e, 0x61, 0xf9, 0x5b, 0x77, 0xb2, 0x7a, - 0x31, 0x2e, 0x8a, 0x0b, 0xdd, 0xe9, 0x40, 0x08, 0x1a, 0xd0, 0x8c, 0x84, 0xc5, 0x85, 0xce, 0xc0, - 0x44, 0x0a, 0x45, 0xa7, 0x83, 0xbd, 0x20, 0x1c, 0xa3, 0xba, 0x76, 0x35, 0xa4, 0x4e, 0x36, 0xe8, - 0x85, 0xb0, 0x72, 0x1e, 0x25, 0x7c, 0x9f, 0x4e, 0x26, 0x22, 0x10, 0x21, 0xa6, 0x62, 0x56, 0x75, - 0x64, 0xbc, 0x35, 0x25, 0x52, 0x25, 0xc4, 0x51, 0x90, 0xc5, 0xa9, 0x58, 0x9a, 0x17, 0xae, 0x01, - 0xc9, 0x0b, 0x07, 0xa7, 0xe4, 0x40, 0x71, 0x2b, 0x3d, 0x0d, 0xc4, 0xfb, 0x5b, 0x0d, 0xd6, 0xe5, - 0xe0, 0xb0, 0x2f, 0xc3, 0x1e, 0x4a, 0xa6, 0x67, 0xd0, 0x90, 0x65, 0xa8, 0x87, 0x95, 0xbb, 0x87, - 0x0d, 0xb5, 0xd4, 0xfd, 0x3e, 0x34, 0x69, 0x22, 0x47, 0x4e, 0x35, 0xa1, 0xbc, 0x7f, 0x1b, 0x93, - 0x7d, 0xb7, 0xf3, 0x35, 0x97, 0x7b, 0x08, 0xa0, 0xae, 0x9d, 0xc7, 0x65, 0xeb, 0x5e, 0x54, 0x86, - 0xc1, 0x29, 0x9c, 0x5b, 0xb4, 0x61, 0xe3, 0x82, 0x67, 0x83, 0xee, 0x09, 0xac, 0x49, 0xb5, 0x4f, - 0xf3, 0xa9, 0x53, 0xc6, 0x60, 0xf1, 0x1d, 0x2b, 0xdc, 0xde, 0xef, 0x1c, 0xed, 0x46, 0xf1, 0x75, - 0x80, 0xca, 0xf7, 0xa5, 0x4b, 0x9c, 0x7b, 0xb9, 0x64, 0x0b, 0x56, 0x26, 0x99, 0x31, 0x04, 0xd7, - 0xfd, 0x82, 0x2e, 0x43, 0x54, 0x5f, 0x38, 0x44, 0xde, 0xef, 0x1d, 0xe8, 0x7d, 0x4c, 0x23, 0x22, - 0x3f, 0xec, 0x26, 0x49, 0xac, 0x5f, 0x21, 0xee, 0x1d, 0xf3, 0x1f, 0x40, 0x2b, 0x50, 0x62, 0x48, - 0xaa, 0xc3, 0xbe, 0xc0, 0x60, 0x5b, 0xf2, 0x18, 0x33, 0x4a, 0xdd, 0x9c, 0x51, 0xbc, 0x3f, 0x3a, - 0xb0, 0xa6, 0x9c, 0xf2, 0xe3, 0x2c, 0x4a, 0xef, 0xad, 0xdf, 0x1e, 0xac, 0x4c, 0xb3, 0x28, 0xbd, - 0x47, 0x56, 0x16, 0x7c, 0xb3, 0xf9, 0x54, 0x9f, 0x93, 0x4f, 0xde, 0x9f, 0x1c, 0x78, 0x5c, 0x75, - 0xeb, 0xee, 0x70, 0x88, 0xc9, 0xdb, 0x2c, 0x29, 0x6b, 0x46, 0x5b, 0xaa, 0xcc, 0x68, 0x73, 0x55, - 0xf6, 0xf1, 0x53, 0x1c, 0xfe, 0xff, 0xaa, 0xfc, 0xab, 0x1a, 0x7c, 0xe9, 0xa8, 0x28, 0xbc, 0x73, - 0x16, 0x10, 0x3e, 0x42, 0xc6, 0xde, 0xa2, 0xbe, 0xc7, 0xd0, 0x21, 0x78, 0x53, 0xea, 0xa4, 0xcb, - 0x71, 0x51, 0x31, 0x36, 0xf3, 0x62, 0xbd, 0xcb, 0xfb, 0x8f, 0x03, 0xeb, 0x4a, 0xce, 0x8f, 0xa2, - 0xe1, 0xd5, 0x5b, 0x34, 0xfe, 0x04, 0xd6, 0xae, 0xa4, 0x06, 0x82, 0xba, 0x47, 0xdb, 0xae, 0x70, - 0x2f, 0x68, 0xfe, 0x7f, 0x1d, 0xd8, 0x50, 0x82, 0x5e, 0x90, 0xeb, 0xe8, 0x6d, 0x26, 0xeb, 0x19, - 0x74, 0x23, 0xa5, 0xc2, 0x3d, 0x1d, 0x50, 0x65, 0x5f, 0xd0, 0x03, 0x7f, 0x76, 0xa0, 0xab, 0x24, - 0x3d, 0x27, 0x29, 0xb2, 0x7b, 0xdb, 0xff, 0x43, 0x68, 0x23, 0x49, 0x59, 0x40, 0xee, 0xd3, 0x21, - 0x4d, 0xd6, 0x05, 0x9b, 0xe4, 0x15, 0x6c, 0xa8, 0x2b, 0xbc, 0xd1, 0x71, 0xc4, 0x2c, 0x1b, 0x84, - 0x6a, 0x3c, 0x75, 0x24, 0x53, 0x4e, 0xda, 0x8f, 0x33, 0xfa, 0x75, 0xbd, 0x7c, 0x9c, 0x79, 0x02, - 0x10, 0x84, 0xe1, 0x27, 0x94, 0x85, 0x11, 0xc9, 0x8f, 0x0f, 0x03, 0xf1, 0x3e, 0x86, 0x55, 0x31, - 0x4d, 0x9f, 0x1b, 0x97, 0xf1, 0x3b, 0x9f, 0x0b, 0xcc, 0x8b, 0x7c, 0xcd, 0xbe, 0xc8, 0x7b, 0x3f, - 0x87, 0x2f, 0xcc, 0x28, 0x2e, 0xbd, 0xbe, 0xaf, 0xde, 0x18, 0xf2, 0x4d, 0xb4, 0xf3, 0xbf, 0x32, - 0xc7, 0x85, 0xa6, 0x2e, 0xbe, 0xc5, 0xe4, 0xfd, 0xd2, 0x81, 0x77, 0x67, 0xc4, 0xef, 0x26, 0x09, - 0xa3, 0xd7, 0x3a, 0xb9, 0x1f, 0x62, 0x1b, 0xbb, 0xb5, 0xd6, 0xaa, 0xad, 0x75, 0xae, 0x12, 0xd6, - 0x71, 0xf0, 0x39, 0x28, 0xf1, 0x07, 0x07, 0xba, 0x5a, 0x89, 0x30, 0xd4, 0xdb, 0x7e, 0x1b, 0x9a, - 0xea, 0x7d, 0x52, 0x6f, 0xf8, 0xee, 0xdc, 0x0d, 0xf3, 0x77, 0x55, 0x5f, 0x2f, 0x9e, 0xcd, 0xc8, - 0xda, 0xbc, 0x31, 0xf0, 0xbb, 0x45, 0x07, 0x58, 0xf8, 0x05, 0x51, 0x33, 0x78, 0x3f, 0xcd, 0x93, - 0xf9, 0x00, 0x63, 0x7c, 0x48, 0x1f, 0x79, 0x2f, 0x61, 0x4d, 0x3e, 0x96, 0x96, 0x3e, 0x78, 0x10, - 0xb1, 0x9f, 0xc0, 0xba, 0x14, 0xfb, 0xe0, 0xfa, 0x16, 0xd5, 0x21, 0xfc, 0xb3, 0x7f, 0x19, 0x90, - 0xf1, 0x43, 0x4a, 0xff, 0x06, 0x3c, 0xca, 0x7d, 0xff, 0x32, 0x09, 0x8b, 0x2b, 0xca, 0x2d, 0x0f, - 0x33, 0xde, 0x37, 0x61, 0x73, 0x9f, 0x92, 0x6b, 0x64, 0x5c, 0x46, 0x59, 0xb1, 0xe4, 0x1c, 0x56, - 0xf1, 0x6b, 0xca, 0x1b, 0xc0, 0x86, 0x7e, 0x52, 0x3c, 0x0b, 0xc6, 0x11, 0x51, 0x5d, 0xe9, 0x09, - 0x40, 0x12, 0x8c, 0xf3, 0xbf, 0x14, 0xd4, 0xbb, 0x93, 0x81, 0x88, 0xef, 0xfc, 0x92, 0xde, 0xe8, - 0xef, 0x35, 0xf5, 0xbd, 0x44, 0xbc, 0x9f, 0x80, 0xeb, 0x23, 0x4f, 0x28, 0xe1, 0x68, 0x48, 0xdd, - 0x86, 0xf6, 0x7e, 0xc6, 0x18, 0x12, 0xb1, 0x55, 0xfe, 0xbe, 0x6e, 0x42, 0x42, 0xee, 0xa0, 0x94, - 0xab, 0xde, 0x2a, 0x0c, 0x64, 0xef, 0xf1, 0xcf, 0xb6, 0x76, 0x3e, 0x50, 0xff, 0x60, 0x7e, 0x34, - 0xe3, 0xc6, 0x8b, 0xa6, 0xfc, 0x47, 0xf3, 0x5b, 0xff, 0x0b, 0x00, 0x00, 0xff, 0xff, 0x24, 0xc1, - 0xb6, 0xba, 0xe4, 0x1c, 0x00, 0x00, + 0x4b, 0xc0, 0xdd, 0x82, 0x95, 0x4f, 0x69, 0x44, 0xa4, 0x4f, 0x96, 0xe4, 0xc7, 0x82, 0x16, 0xdf, + 0x48, 0x34, 0xbc, 0x22, 0x22, 0xa4, 0xca, 0xdd, 0x05, 0x6d, 0x46, 0xa2, 0x69, 0x47, 0xe2, 0x7d, + 0x58, 0x0b, 0x92, 0xa4, 0x1f, 0x90, 0x31, 0x32, 0xb5, 0xe9, 0xb2, 0x94, 0x5b, 0x41, 0x45, 0x3c, + 0xc4, 0x4e, 0x03, 0x9a, 0xb1, 0x21, 0x4a, 0x77, 0x37, 0x7c, 0x03, 0x11, 0x72, 0x68, 0x82, 0xcc, + 0x70, 0xa3, 0xf2, 0x7c, 0x05, 0xd5, 0x51, 0x81, 0x3c, 0x2a, 0xde, 0xaf, 0x1d, 0x58, 0x3b, 0xcb, + 0x2e, 0xe2, 0x68, 0x28, 0x17, 0x08, 0xa7, 0x95, 0xae, 0x71, 0x2c, 0xd7, 0x98, 0x06, 0xd6, 0x6e, + 0x37, 0xb0, 0x6e, 0x1b, 0xb8, 0x09, 0xcd, 0x31, 0x92, 0x10, 0x99, 0x76, 0x98, 0xa6, 0xb4, 0x22, + 0x8d, 0x42, 0x91, 0xdf, 0xd6, 0x60, 0xe5, 0x73, 0x56, 0x61, 0x1b, 0xda, 0xc9, 0x25, 0x25, 0x78, + 0x92, 0x89, 0xa4, 0xd1, 0xba, 0x98, 0x90, 0xfb, 0x0e, 0x34, 0x2e, 0x22, 0x96, 0x5e, 0xca, 0xa8, + 0x75, 0x7c, 0x45, 0x08, 0x14, 0x27, 0x41, 0xa4, 0x42, 0xd5, 0xf2, 0x15, 0xa1, 0x0d, 0x5a, 0x29, + 0xf2, 0xdd, 0xae, 0xa0, 0xd6, 0x4c, 0x05, 0xcd, 0x46, 0x1e, 0xe6, 0x45, 0xde, 0xfb, 0xb7, 0x03, + 0x70, 0xc8, 0x22, 0x24, 0xa1, 0x74, 0x4d, 0xa5, 0x74, 0x9d, 0xd9, 0xd2, 0xdd, 0x84, 0x26, 0xc3, + 0x49, 0xc0, 0xae, 0xf2, 0xd4, 0x56, 0x54, 0x45, 0xa1, 0xfa, 0x8c, 0x42, 0x1f, 0x01, 0x8c, 0xe4, + 0x3e, 0x42, 0x8e, 0x74, 0x55, 0xfb, 0xd9, 0x97, 0x77, 0x66, 0x9a, 0xdc, 0x4e, 0x1e, 0x25, 0xdf, + 0x58, 0x2e, 0xea, 0x26, 0x08, 0x43, 0x9d, 0x9e, 0x0d, 0x55, 0x37, 0x05, 0x30, 0x27, 0x3b, 0x9b, + 0x77, 0x64, 0xe7, 0x72, 0x91, 0x14, 0xff, 0x74, 0xa0, 0xb5, 0x17, 0x07, 0xc3, 0xab, 0x05, 0x4d, + 0xb7, 0x4d, 0xac, 0xcd, 0x98, 0x78, 0x04, 0x9d, 0x0b, 0x21, 0x2e, 0x37, 0x41, 0x7a, 0xa1, 0xfd, + 0xec, 0xab, 0x73, 0xac, 0xb4, 0x8b, 0xc2, 0xb7, 0xf9, 0x6c, 0x73, 0x97, 0x3e, 0xdb, 0xdc, 0xc6, + 0x1d, 0xe6, 0x36, 0x0b, 0x73, 0xff, 0x5e, 0x83, 0x55, 0xd9, 0xc6, 0x7c, 0x9c, 0x66, 0xc8, 0x53, + 0xf7, 0x7b, 0xb0, 0x92, 0xe5, 0xaa, 0x3a, 0x8b, 0xaa, 0x5a, 0xb0, 0xb8, 0x1f, 0xea, 0xa6, 0x29, + 0xf9, 0x6b, 0x92, 0xff, 0xf1, 0x1c, 0xfe, 0xe2, 0xc4, 0xf2, 0xcb, 0xe5, 0xe2, 0x80, 0xb9, 0x0c, + 0x48, 0x18, 0xa3, 0x8f, 0x3c, 0x8b, 0x53, 0xdd, 0x0b, 0x2d, 0x4c, 0x65, 0xda, 0xb4, 0xcf, 0xc7, + 0xfa, 0xf8, 0xd1, 0x94, 0xf0, 0x8e, 0x5a, 0x27, 0x3e, 0x29, 0xd3, 0x4b, 0x40, 0x14, 0x2a, 0xc3, + 0xa9, 0x8c, 0x90, 0x2a, 0xab, 0x9c, 0x2c, 0xf7, 0xd4, 0x5e, 0x53, 0x89, 0x60, 0x61, 0x22, 0xc4, + 0x8a, 0x96, 0x02, 0xd4, 0xb9, 0x63, 0x20, 0xd5, 0x63, 0xc7, 0xfb, 0x47, 0x1d, 0x3a, 0xaa, 0x7c, + 0x72, 0xa7, 0x3e, 0x11, 0x79, 0x4e, 0x27, 0x56, 0x16, 0x19, 0x88, 0xd0, 0x42, 0x50, 0x27, 0x76, + 0xa3, 0xb1, 0x30, 0x91, 0x8a, 0x82, 0x3e, 0xb4, 0x1a, 0x8e, 0x09, 0xe5, 0xbb, 0x1c, 0x99, 0x8d, + 0xc7, 0x40, 0x44, 0x2b, 0x4b, 0xa9, 0x95, 0x1d, 0x05, 0x2d, 0x78, 0x53, 0x5a, 0xec, 0xaf, 0xf2, + 0xc3, 0x40, 0x84, 0x7f, 0x53, 0x9a, 0xef, 0xad, 0x9c, 0x54, 0x02, 0x4a, 0xb2, 0xde, 0x57, 0x1d, + 0x14, 0x05, 0x3d, 0x13, 0xd5, 0xd6, 0x9d, 0x51, 0x05, 0x2b, 0xaa, 0x76, 0x71, 0xb5, 0x67, 0x8a, + 0xeb, 0x3d, 0xe8, 0x28, 0x39, 0x79, 0xd2, 0xaf, 0xaa, 0x83, 0xdc, 0x02, 0xed, 0xdc, 0xe8, 0x54, + 0x73, 0xc3, 0x8e, 0xee, 0xda, 0x2d, 0xd1, 0xed, 0x16, 0xd1, 0xfd, 0x05, 0xf4, 0xce, 0xb2, 0x38, + 0xee, 0x23, 0xe7, 0xc1, 0x18, 0xf7, 0xde, 0x0c, 0x70, 0x7a, 0x1c, 0xf1, 0xd4, 0x47, 0x9e, 0x88, + 0x3c, 0x43, 0xc6, 0xf6, 0x69, 0x88, 0x32, 0xc8, 0x0d, 0x3f, 0x27, 0x85, 0x85, 0xc8, 0x98, 0x50, + 0x40, 0x77, 0x48, 0x45, 0xb9, 0x3b, 0xb0, 0x14, 0x47, 0x5c, 0xe4, 0x7a, 0xfd, 0x69, 0xfb, 0xd9, + 0xd6, 0x9c, 0x52, 0xe9, 0xf3, 0xf1, 0x41, 0x90, 0x06, 0xbe, 0x5c, 0xe7, 0x4d, 0xe0, 0x8b, 0xf3, + 0x77, 0x9f, 0xde, 0x7a, 0x82, 0x89, 0x1e, 0x26, 0x9b, 0x40, 0x44, 0x49, 0x31, 0x7c, 0x98, 0x90, + 0x50, 0x9b, 0x2b, 0x39, 0x52, 0x8f, 0x8e, 0x9f, 0x93, 0xde, 0x3b, 0xe0, 0x1e, 0x61, 0xda, 0x0f, + 0x5e, 0xef, 0x92, 0xb0, 0x1f, 0x91, 0x01, 0x4e, 0x7d, 0x9c, 0x7a, 0xcf, 0xe1, 0xd1, 0x0c, 0xca, + 0x13, 0xa1, 0xc0, 0x24, 0x78, 0x3d, 0xc0, 0xa9, 0x54, 0xa0, 0xe3, 0x6b, 0x4a, 0xe2, 0x72, 0x95, + 0x6e, 0x8f, 0x9a, 0xf2, 0xa6, 0xd0, 0x15, 0x11, 0x1a, 0x20, 0x09, 0xfb, 0x7c, 0x2c, 0x45, 0x6c, + 0x43, 0x5b, 0x79, 0xa0, 0xcf, 0xc7, 0x65, 0xbf, 0x35, 0x20, 0xb1, 0x62, 0x18, 0x47, 0x48, 0x52, + 0xb5, 0x42, 0x5b, 0x63, 0x40, 0x22, 0x19, 0x39, 0x92, 0xb0, 0x38, 0x72, 0xea, 0x7e, 0x41, 0x7b, + 0x7f, 0x6d, 0xc0, 0xb2, 0x76, 0xa8, 0x9c, 0x0e, 0xc5, 0x11, 0x57, 0xf8, 0x4b, 0x51, 0x2a, 0x19, + 0x87, 0xd7, 0xe5, 0x9c, 0xa6, 0x28, 0x73, 0xb2, 0xab, 0xdb, 0x93, 0x5d, 0x45, 0xa7, 0xa5, 0x59, + 0x9d, 0x2a, 0x76, 0x35, 0x66, 0xed, 0xfa, 0x3a, 0xac, 0x73, 0x59, 0x30, 0x67, 0x71, 0x90, 0x8e, + 0x28, 0x9b, 0xe8, 0x13, 0xab, 0xe1, 0xcf, 0xe0, 0xa2, 0xd9, 0x2b, 0xac, 0x28, 0x58, 0x55, 0x91, + 0x15, 0x54, 0x94, 0x87, 0x42, 0xf2, 0xc2, 0x55, 0xa3, 0x82, 0x0d, 0x2a, 0xdd, 0x38, 0x8f, 0x28, + 0x91, 0x93, 0xae, 0xaa, 0x4f, 0x13, 0x12, 0x96, 0x4f, 0xf8, 0xf8, 0x90, 0xd1, 0x89, 0x1e, 0x18, + 0x72, 0x52, 0x5a, 0x4e, 0x49, 0x8a, 0x24, 0x95, 0xbc, 0x6d, 0xc5, 0x6b, 0x40, 0x82, 0x57, 0x93, + 0xb2, 0x38, 0x57, 0xfd, 0x9c, 0x74, 0xd7, 0xa1, 0xce, 0x71, 0xaa, 0x2b, 0x4e, 0xfc, 0xb4, 0x22, + 0xd7, 0xb5, 0x23, 0x57, 0x69, 0x05, 0xeb, 0xf2, 0xab, 0xd9, 0x0a, 0xca, 0x59, 0x7f, 0xc3, 0x9a, + 0xf5, 0x77, 0x61, 0x99, 0x26, 0x22, 0xcf, 0x79, 0xcf, 0x95, 0x35, 0xf6, 0xb5, 0xdb, 0x6b, 0x6c, + 0xe7, 0x54, 0xad, 0x7c, 0x4e, 0x52, 0xf6, 0xc6, 0xcf, 0xf9, 0xdc, 0x63, 0xe8, 0xd2, 0xd1, 0x28, + 0x8e, 0x08, 0x9e, 0x65, 0xfc, 0x52, 0x9e, 0x6c, 0x8f, 0xe4, 0xc9, 0xe6, 0xcd, 0x11, 0x75, 0x6a, + 0xaf, 0xf4, 0xab, 0xac, 0x5b, 0x1f, 0xc2, 0xaa, 0xb9, 0x8d, 0x70, 0xc3, 0x15, 0xbe, 0xd1, 0x39, + 0x28, 0x7e, 0x8a, 0x61, 0xef, 0x3a, 0x88, 0x33, 0x75, 0x0c, 0xac, 0xf8, 0x8a, 0xf8, 0xb0, 0xf6, + 0x1d, 0xc7, 0xfb, 0x8d, 0x03, 0xdd, 0xca, 0x06, 0x62, 0x75, 0x1a, 0xa5, 0x31, 0x6a, 0x09, 0x8a, + 0x70, 0x5d, 0x58, 0x0a, 0x91, 0x0f, 0x75, 0x0a, 0xcb, 0xdf, 0xba, 0x93, 0xd5, 0x8b, 0x71, 0x51, + 0x5c, 0xe8, 0x4e, 0x07, 0x42, 0xd0, 0x80, 0x66, 0x24, 0x2c, 0x2e, 0x74, 0x06, 0x26, 0x52, 0x28, + 0x3a, 0x1d, 0xec, 0x05, 0xe1, 0x18, 0xd5, 0xb5, 0xab, 0x21, 0x75, 0xb2, 0x41, 0x2f, 0x84, 0x95, + 0xf3, 0x28, 0xe1, 0xfb, 0x74, 0x32, 0x11, 0x81, 0x08, 0x31, 0x15, 0xb3, 0xaa, 0x23, 0xe3, 0xad, + 0x29, 0x91, 0x2a, 0x21, 0x8e, 0x82, 0x2c, 0x4e, 0xc5, 0xd2, 0xbc, 0x70, 0x0d, 0x48, 0x5e, 0x38, + 0x38, 0x25, 0x07, 0x8a, 0x5b, 0xe9, 0x69, 0x20, 0xde, 0xdf, 0x6a, 0xb0, 0x2e, 0x07, 0x87, 0x7d, + 0x19, 0xf6, 0x50, 0x32, 0x3d, 0x83, 0x86, 0x2c, 0x43, 0x3d, 0xac, 0xdc, 0x3d, 0x6c, 0xa8, 0xa5, + 0xee, 0xf7, 0xa1, 0x49, 0x13, 0x39, 0x72, 0xaa, 0x09, 0xe5, 0xfd, 0xdb, 0x98, 0xec, 0xbb, 0x9d, + 0xaf, 0xb9, 0xdc, 0x43, 0x00, 0x75, 0xed, 0x3c, 0x2e, 0x5b, 0xf7, 0xa2, 0x32, 0x0c, 0x4e, 0xe1, + 0xdc, 0xa2, 0x0d, 0x17, 0x17, 0xbc, 0xba, 0x6f, 0x83, 0xee, 0x09, 0xac, 0x49, 0xb5, 0x4f, 0xf3, + 0xa9, 0x53, 0xc6, 0x60, 0xf1, 0x1d, 0x2b, 0xdc, 0xde, 0xef, 0x1c, 0xed, 0x46, 0xf1, 0x75, 0x80, + 0xca, 0xf7, 0xa5, 0x4b, 0x9c, 0x7b, 0xb9, 0x64, 0x0b, 0x56, 0x26, 0x99, 0x31, 0x04, 0xd7, 0xfd, + 0x82, 0x2e, 0x43, 0x54, 0x5f, 0x38, 0x44, 0xde, 0xef, 0x1d, 0xe8, 0x7d, 0x4c, 0x23, 0x22, 0x3f, + 0xec, 0x26, 0x49, 0xac, 0x5f, 0x21, 0xee, 0x1d, 0xf3, 0x1f, 0x40, 0x2b, 0x50, 0x62, 0x48, 0xaa, + 0xc3, 0xbe, 0xc0, 0x60, 0x5b, 0xf2, 0x18, 0x33, 0x4a, 0xdd, 0x9c, 0x51, 0xbc, 0x3f, 0x3a, 0xb0, + 0xa6, 0x9c, 0xf2, 0xe3, 0x2c, 0x4a, 0xef, 0xad, 0xdf, 0x1e, 0xac, 0x4c, 0xb3, 0x28, 0xbd, 0x47, + 0x56, 0x16, 0x7c, 0xb3, 0xf9, 0x54, 0x9f, 0x93, 0x4f, 0xde, 0x9f, 0x1c, 0x78, 0x5c, 0x75, 0xeb, + 0xee, 0x70, 0x88, 0xc9, 0xdb, 0x2c, 0x29, 0x6b, 0x46, 0x5b, 0xaa, 0xcc, 0x68, 0x73, 0x55, 0xf6, + 0xf1, 0x53, 0x1c, 0xfe, 0xff, 0xaa, 0xfc, 0xab, 0x1a, 0x7c, 0xe9, 0xa8, 0x28, 0xbc, 0x73, 0x16, + 0x10, 0x3e, 0x42, 0xc6, 0xde, 0xa2, 0xbe, 0xc7, 0xd0, 0x21, 0x78, 0x53, 0xea, 0xa4, 0xcb, 0x71, + 0x51, 0x31, 0x36, 0xf3, 0x62, 0xbd, 0xcb, 0xfb, 0x8f, 0x03, 0xeb, 0x4a, 0xce, 0x8f, 0xa2, 0xe1, + 0xd5, 0x5b, 0x34, 0xfe, 0x04, 0xd6, 0xae, 0xa4, 0x06, 0x82, 0xba, 0x47, 0xdb, 0xae, 0x70, 0x2f, + 0x68, 0xfe, 0x7f, 0x1d, 0xd8, 0x50, 0x82, 0x5e, 0x90, 0xeb, 0xe8, 0x6d, 0x26, 0xeb, 0x19, 0x74, + 0x23, 0xa5, 0xc2, 0x3d, 0x1d, 0x50, 0x65, 0x5f, 0xd0, 0x03, 0x7f, 0x76, 0xa0, 0xab, 0x24, 0x3d, + 0x27, 0x29, 0xb2, 0x7b, 0xdb, 0xff, 0x43, 0x68, 0x23, 0x49, 0x59, 0x40, 0xee, 0xd3, 0x21, 0x4d, + 0xd6, 0x05, 0x9b, 0xe4, 0x15, 0x6c, 0xa8, 0x2b, 0xbc, 0xd1, 0x71, 0xc4, 0x2c, 0x1b, 0x84, 0x6a, + 0x3c, 0x75, 0x24, 0x53, 0x4e, 0xda, 0x8f, 0x33, 0xfa, 0x75, 0xbd, 0x7c, 0x9c, 0x79, 0x02, 0x10, + 0x84, 0xe1, 0x27, 0x94, 0x85, 0x11, 0xc9, 0x8f, 0x0f, 0x03, 0xf1, 0x3e, 0x86, 0x55, 0x31, 0x4d, + 0x9f, 0x1b, 0x97, 0xf1, 0x3b, 0x9f, 0x0b, 0xcc, 0x8b, 0x7c, 0xcd, 0xbe, 0xc8, 0x7b, 0x3f, 0x87, + 0x2f, 0xcc, 0x28, 0x2e, 0xbd, 0xbe, 0xaf, 0xde, 0x18, 0xf2, 0x4d, 0xb4, 0xf3, 0xbf, 0x32, 0xc7, + 0x85, 0xa6, 0x2e, 0xbe, 0xc5, 0xe4, 0xfd, 0xd2, 0x81, 0x77, 0x67, 0xc4, 0xef, 0x26, 0x09, 0xa3, + 0xd7, 0x3a, 0xb9, 0x1f, 0x62, 0x1b, 0xbb, 0xb5, 0xd6, 0xaa, 0xad, 0x75, 0xae, 0x12, 0xd6, 0x71, + 0xf0, 0x39, 0x28, 0xf1, 0x07, 0x07, 0xba, 0x5a, 0x89, 0x30, 0xd4, 0xdb, 0x7e, 0x1b, 0x9a, 0xea, + 0x7d, 0x52, 0x6f, 0xf8, 0xee, 0xdc, 0x0d, 0xf3, 0x77, 0x55, 0x5f, 0x2f, 0x9e, 0xcd, 0xc8, 0xda, + 0xbc, 0x31, 0xf0, 0xbb, 0x45, 0x07, 0x58, 0xf8, 0x05, 0x51, 0x33, 0x78, 0x3f, 0xcd, 0x93, 0xf9, + 0x00, 0x63, 0x7c, 0x48, 0x1f, 0x79, 0x2f, 0x61, 0x4d, 0x3e, 0x96, 0x96, 0x3e, 0x78, 0x10, 0xb1, + 0x9f, 0xc0, 0xba, 0x14, 0xfb, 0xe0, 0xfa, 0x16, 0xd5, 0x21, 0xfc, 0xb3, 0x7f, 0x19, 0x90, 0xf1, + 0x43, 0x4a, 0xff, 0x06, 0x3c, 0xca, 0x7d, 0xff, 0x32, 0x09, 0x8b, 0x2b, 0xca, 0x2d, 0x0f, 0x33, + 0xde, 0x37, 0x61, 0x73, 0x9f, 0x92, 0x6b, 0x64, 0x5c, 0x46, 0x59, 0xb1, 0xe4, 0x1c, 0x56, 0xf1, + 0x6b, 0xca, 0x1b, 0xc0, 0x86, 0x7e, 0x52, 0x3c, 0x0b, 0xc6, 0x11, 0x51, 0x5d, 0xe9, 0x09, 0x40, + 0x12, 0x8c, 0xf3, 0xbf, 0x14, 0xd4, 0xbb, 0x93, 0x81, 0x88, 0xef, 0xfc, 0x92, 0xde, 0xe8, 0xef, + 0x35, 0xf5, 0xbd, 0x44, 0xbc, 0x9f, 0x80, 0xeb, 0x23, 0x4f, 0x28, 0xe1, 0x68, 0x48, 0xdd, 0x86, + 0xf6, 0x7e, 0xc6, 0x18, 0x12, 0xb1, 0x55, 0xfe, 0xbe, 0x6e, 0x42, 0x42, 0xee, 0xa0, 0x94, 0xab, + 0xde, 0x2a, 0x0c, 0x64, 0xef, 0xf1, 0xcf, 0xb6, 0x76, 0x3e, 0x50, 0xff, 0x60, 0x7e, 0x34, 0xe3, + 0xc6, 0x8b, 0xa6, 0xfc, 0x47, 0xf3, 0x5b, 0xff, 0x0b, 0x00, 0x00, 0xff, 0xff, 0xe1, 0x45, 0x08, + 0x08, 0xe4, 0x1c, 0x00, 0x00, } diff --git a/pkg/proto/sdk_ws/ws.proto b/pkg/proto/sdk_ws/ws.proto index 7856f4d19..ee58d4a41 100644 --- a/pkg/proto/sdk_ws/ws.proto +++ b/pkg/proto/sdk_ws/ws.proto @@ -26,7 +26,7 @@ message GroupMemberFullInfo { string groupID = 1 ; string userID = 2 ; int32 roleLevel = 3; - int64 joinTime = 4; + int32 joinTime = 4; string nickname = 5; string faceURL = 6; int32 appMangerLevel = 7; //if >0 From edc81534c48a6afb3d42ced0ef9c4fbc8f70030f Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Fri, 11 Mar 2022 17:29:20 +0800 Subject: [PATCH 802/814] ws modify --- internal/msg_gateway/gate/logic.go | 53 +++++++++++++++++++++++++++ internal/msg_gateway/gate/validate.go | 2 +- pkg/common/constant/constant.go | 14 ++++--- 3 files changed, 62 insertions(+), 7 deletions(-) diff --git a/internal/msg_gateway/gate/logic.go b/internal/msg_gateway/gate/logic.go index df3b1a356..8e5fdcdac 100644 --- a/internal/msg_gateway/gate/logic.go +++ b/internal/msg_gateway/gate/logic.go @@ -52,6 +52,8 @@ func (ws *WServer) msgParse(conn *UserConn, binaryMsg []byte) { ws.getSeqReq(conn, &m) case constant.WSSendMsg: ws.sendMsgReq(conn, &m) + case constant.WSSendSignalMsg: + ws.sendSignalMsgReq(conn, &m) case constant.WSPullMsgBySeqList: ws.pullMsgBySeqListReq(conn, &m) default: @@ -193,6 +195,57 @@ func (ws *WServer) sendMsgResp(conn *UserConn, m *Req, pb *pbChat.SendMsgResp) { ws.sendMsg(conn, mReply) } +func (ws *WServer) sendSignalMsgReq(conn *UserConn, m *Req) { + sendMsgCount++ + log.NewInfo(m.OperationID, "Ws call success to sendSignalMsgReq start", m.MsgIncr, m.ReqIdentifier, m.SendID) + nReply := new(pbChat.SendMsgResp) + isPass, errCode, errMsg, pData := ws.argsValidate(m, constant.WSSendMsg) + if isPass { + data := pData.(sdk_ws.MsgData) + pbData := pbChat.SendMsgReq{ + Token: m.Token, + OperationID: m.OperationID, + MsgData: &data, + } + log.NewInfo(m.OperationID, "Ws call success to sendSignalMsgReq middle", m.ReqIdentifier, m.SendID, m.MsgIncr, data) + etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImOfflineMessageName) + client := pbChat.NewChatClient(etcdConn) + reply, err := client.SendMsg(context.Background(), &pbData) + if err != nil { + log.NewError(pbData.OperationID, "rpc sendMsg err", err.Error()) + nReply.ErrCode = 200 + nReply.ErrMsg = err.Error() + ws.sendSignalMsgResp(conn, m, nReply) + } else { + log.NewInfo(pbData.OperationID, "rpc call success to sendMsgReq", reply.String()) + ws.sendSignalMsgResp(conn, m, reply) + } + + } else { + nReply.ErrCode = errCode + nReply.ErrMsg = errMsg + ws.sendSignalMsgResp(conn, m, nReply) + } + +} +func (ws *WServer) sendSignalMsgResp(conn *UserConn, m *Req, pb *pbChat.SendMsgResp) { + // := make(map[string]interface{}) + + var mReplyData sdk_ws.UserSendMsgResp + mReplyData.ClientMsgID = pb.GetClientMsgID() + mReplyData.ServerMsgID = pb.GetServerMsgID() + mReplyData.SendTime = pb.GetSendTime() + b, _ := proto.Marshal(&mReplyData) + mReply := Resp{ + ReqIdentifier: m.ReqIdentifier, + MsgIncr: m.MsgIncr, + ErrCode: pb.GetErrCode(), + ErrMsg: pb.GetErrMsg(), + OperationID: m.OperationID, + Data: b, + } + ws.sendMsg(conn, mReply) +} func (ws *WServer) sendMsg(conn *UserConn, mReply interface{}) { var b bytes.Buffer enc := gob.NewEncoder(&b) diff --git a/internal/msg_gateway/gate/validate.go b/internal/msg_gateway/gate/validate.go index fe1411a62..c763ff1b2 100644 --- a/internal/msg_gateway/gate/validate.go +++ b/internal/msg_gateway/gate/validate.go @@ -58,7 +58,7 @@ type SeqListData struct { func (ws *WServer) argsValidate(m *Req, r int32) (isPass bool, errCode int32, errMsg string, returnData interface{}) { switch r { - case constant.WSSendMsg: + case constant.WSSendMsg | constant.WSSendSignalMsg: data := open_im_sdk.MsgData{} if err := proto.Unmarshal(m.Data, &data); err != nil { log.ErrorByKv("Decode Data struct err", "", "err", err.Error(), "reqIdentifier", r) diff --git a/pkg/common/constant/constant.go b/pkg/common/constant/constant.go index 199a1917a..7e1971c64 100644 --- a/pkg/common/constant/constant.go +++ b/pkg/common/constant/constant.go @@ -20,8 +20,10 @@ const ( WSGetNewestSeq = 1001 WSPullMsgBySeqList = 1002 WSSendMsg = 1003 + WSSendSignalMsg = 1004 WSPushMsg = 2001 WSKickOnlineMsg = 2002 + WsLogoutMsg = 2003 WSDataError = 3001 ///ContentType @@ -139,16 +141,16 @@ const ( //callbackCommand CallbackBeforeSendSingleMsgCommand = "callbackBeforeSendSingleMsgCommand" - CallbackAfterSendSingleMsgCommand = "callbackAfterSendSingleMsgCommand" - CallbackBeforeSendGroupMsgCommand = "callbackBeforeSendGroupMsgCommand" - CallbackAfterSendGroupMsgCommand = "callbackAfterSendGroupMsgCommand" - CallbackWordFilterCommand = "callbackWordFilterCommand" + CallbackAfterSendSingleMsgCommand = "callbackAfterSendSingleMsgCommand" + CallbackBeforeSendGroupMsgCommand = "callbackBeforeSendGroupMsgCommand" + CallbackAfterSendGroupMsgCommand = "callbackAfterSendGroupMsgCommand" + CallbackWordFilterCommand = "callbackWordFilterCommand" //callback actionCode - ActionAllow = 0 + ActionAllow = 0 ActionForbidden = 1 //callback callbackHandleCode CallbackHandleSuccess = 0 - CallbackHandleFailed = 1 + CallbackHandleFailed = 1 ) var ContentType2PushContent = map[int64]string{ From 24e04f13031480b2636ce563f22f28ea79bf8f55 Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Fri, 11 Mar 2022 18:06:46 +0800 Subject: [PATCH 803/814] utils modify --- pkg/common/utils/utils.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkg/common/utils/utils.go b/pkg/common/utils/utils.go index db9db5461..8e7346cc1 100644 --- a/pkg/common/utils/utils.go +++ b/pkg/common/utils/utils.go @@ -117,7 +117,7 @@ func GroupMemberDBCopyOpenIM(dst *open_im_sdk.GroupMemberFullInfo, src *db.Group dst.AppMangerLevel = 1 } - dst.JoinTime = src.JoinTime.Unix() + dst.JoinTime = int32(src.JoinTime.Unix()) return nil } From 0315abc0df10c3f4cc073e14a5bb01b30a11653b Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Fri, 11 Mar 2022 18:09:28 +0800 Subject: [PATCH 804/814] utils modify --- 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 1a992cfa3..6b5c872c4 100644 --- a/internal/rpc/group/group.go +++ b/internal/rpc/group/group.go @@ -395,7 +395,7 @@ func (s *groupServer) GetGroupMembersInfo(ctx context.Context, req *pbGroup.GetG continue } else { utils.CopyStructFields(&memberNode, memberInfo) - memberNode.JoinTime = memberInfo.JoinTime.Unix() + memberNode.JoinTime = int32(memberInfo.JoinTime.Unix()) resp.MemberList = append(resp.MemberList, &memberNode) } } @@ -827,7 +827,7 @@ func (s *groupServer) GetGroupMembersCMS(_ context.Context, req *pbGroup.GetGrou GroupID: req.GroupId, UserID: groupMember.UserID, RoleLevel: groupMember.RoleLevel, - JoinTime: groupMember.JoinTime.Unix(), + JoinTime: int32(groupMember.JoinTime.Unix()), Nickname: groupMember.Nickname, FaceURL: groupMember.FaceURL, JoinSource: groupMember.JoinSource, From 9d132d7f9275395cb99681d54c2e624af4c60428 Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Fri, 11 Mar 2022 18:10:58 +0800 Subject: [PATCH 805/814] int32 modify --- internal/cms_api/group/group.go | 55 ++++++++++++++++----------------- 1 file changed, 27 insertions(+), 28 deletions(-) diff --git a/internal/cms_api/group/group.go b/internal/cms_api/group/group.go index d402ea581..c7013c2bd 100644 --- a/internal/cms_api/group/group.go +++ b/internal/cms_api/group/group.go @@ -128,7 +128,7 @@ func GetGroupByName(c *gin.Context) { func CreateGroup(c *gin.Context) { var ( req cms_api_struct.CreateGroupRequest - _ cms_api_struct.CreateGroupResponse + _ cms_api_struct.CreateGroupResponse reqPb pbGroup.CreateGroupReq ) if err := c.BindJSON(&req); err != nil { @@ -253,9 +253,9 @@ func OpenPrivateChat(c *gin.Context) { func GetGroupMembers(c *gin.Context) { var ( - req cms_api_struct.GetGroupMembersRequest + req cms_api_struct.GetGroupMembersRequest reqPb pbGroup.GetGroupMembersCMSReq - resp cms_api_struct.GetGroupMembersResponse + resp cms_api_struct.GetGroupMembersResponse ) if err := c.ShouldBindQuery(&req); err != nil { log.NewError(reqPb.OperationID, utils.GetSelfFuncName(), "ShouldBindQuery failed ", err.Error()) @@ -286,21 +286,20 @@ func GetGroupMembers(c *gin.Context) { MemberPosition: int(groupMembers.RoleLevel), MemberNickName: groupMembers.Nickname, MemberId: groupMembers.UserID, - JoinTime: utils.UnixSecondToTime(groupMembers.JoinTime).String(), + JoinTime: utils.UnixSecondToTime(int64(groupMembers.JoinTime)).String(), }) } openIMHttp.RespHttp200(c, constant.OK, resp) } - func AddGroupMembers(c *gin.Context) { var ( - req cms_api_struct.RemoveGroupMembersRequest - resp cms_api_struct.RemoveGroupMembersResponse + req cms_api_struct.RemoveGroupMembersRequest + resp cms_api_struct.RemoveGroupMembersResponse reqPb pbGroup.AddGroupMembersCMSReq ) if err := c.BindJSON(&req); err != nil { - log.NewError(reqPb.OperationId, utils.GetSelfFuncName(),"BindJSON failed ", err.Error()) + log.NewError(reqPb.OperationId, utils.GetSelfFuncName(), "BindJSON failed ", err.Error()) openIMHttp.RespHttp200(c, constant.ErrArgs, nil) return } @@ -321,12 +320,12 @@ func AddGroupMembers(c *gin.Context) { func RemoveGroupMembers(c *gin.Context) { var ( - req cms_api_struct.RemoveGroupMembersRequest - resp cms_api_struct.RemoveGroupMembersResponse + req cms_api_struct.RemoveGroupMembersRequest + resp cms_api_struct.RemoveGroupMembersResponse reqPb pbGroup.RemoveGroupMembersCMSReq ) if err := c.BindJSON(&req); err != nil { - log.NewError(reqPb.OperationID, utils.GetSelfFuncName(),"BindJSON failed ", err.Error()) + log.NewError(reqPb.OperationID, utils.GetSelfFuncName(), "BindJSON failed ", err.Error()) openIMHttp.RespHttp200(c, constant.ErrArgs, nil) return } @@ -347,12 +346,12 @@ func RemoveGroupMembers(c *gin.Context) { func DeleteGroup(c *gin.Context) { var ( - req cms_api_struct.DeleteGroupRequest - _ cms_api_struct.DeleteGroupResponse + req cms_api_struct.DeleteGroupRequest + _ cms_api_struct.DeleteGroupResponse reqPb pbGroup.DeleteGroupReq ) if err := c.BindJSON(&req); err != nil { - log.NewError(reqPb.OperationID, utils.GetSelfFuncName(),"BindJSON failed ", err.Error()) + log.NewError(reqPb.OperationID, utils.GetSelfFuncName(), "BindJSON failed ", err.Error()) openIMHttp.RespHttp200(c, constant.ErrArgs, nil) return } @@ -370,12 +369,12 @@ func DeleteGroup(c *gin.Context) { func SetGroupMaster(c *gin.Context) { var ( - req cms_api_struct.SetGroupMasterRequest - _ cms_api_struct.SetGroupMasterResponse + req cms_api_struct.SetGroupMasterRequest + _ cms_api_struct.SetGroupMasterResponse reqPb pbGroup.OperateUserRoleReq ) if err := c.BindJSON(&req); err != nil { - log.NewError(reqPb.OperationID, utils.GetSelfFuncName(),"BindJSON failed ", err.Error()) + log.NewError(reqPb.OperationID, utils.GetSelfFuncName(), "BindJSON failed ", err.Error()) openIMHttp.RespHttp200(c, constant.ErrArgs, nil) return } @@ -395,8 +394,8 @@ func SetGroupMaster(c *gin.Context) { func SetGroupOrdinaryUsers(c *gin.Context) { var ( - req cms_api_struct.SetGroupMemberRequest - _ cms_api_struct.AdminLoginResponse + req cms_api_struct.SetGroupMemberRequest + _ cms_api_struct.AdminLoginResponse reqPb pbGroup.OperateUserRoleReq ) if err := c.BindJSON(&req); err != nil { @@ -420,8 +419,8 @@ func SetGroupOrdinaryUsers(c *gin.Context) { func AlterGroupInfo(c *gin.Context) { var ( - req cms_api_struct.AlterGroupInfoRequest - _ cms_api_struct.SetGroupMasterResponse + req cms_api_struct.AlterGroupInfoRequest + _ cms_api_struct.SetGroupMasterResponse reqPb pbGroup.SetGroupInfoReq ) if err := c.BindJSON(&req); err != nil { @@ -431,12 +430,12 @@ func AlterGroupInfo(c *gin.Context) { } reqPb.OpUserID = c.MustGet("userID").(string) reqPb.GroupInfo = &commonPb.GroupInfo{ - GroupID: req.GroupID, - GroupName: req.GroupName, - Introduction: req.Introduction, - Notification: req.Notification, - FaceURL: req.ProfilePhoto, - GroupType: int32(req.GroupType), + GroupID: req.GroupID, + GroupName: req.GroupName, + Introduction: req.Introduction, + Notification: req.Notification, + FaceURL: req.ProfilePhoto, + GroupType: int32(req.GroupType), } etcdConn := getcdv3.GetConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImGroupName) client := pbGroup.NewGroupClient(etcdConn) @@ -447,4 +446,4 @@ func AlterGroupInfo(c *gin.Context) { return } openIMHttp.RespHttp200(c, constant.OK, nil) -} \ No newline at end of file +} From 94a579e7d36b342085ad3385560e8437a21689dd Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Fri, 11 Mar 2022 18:11:22 +0800 Subject: [PATCH 806/814] signal --- pkg/proto/sdk_ws/ws.proto | 96 ++++++++++++++++++++++++++++++++++++++- 1 file changed, 95 insertions(+), 1 deletion(-) diff --git a/pkg/proto/sdk_ws/ws.proto b/pkg/proto/sdk_ws/ws.proto index ee58d4a41..d6608090d 100644 --- a/pkg/proto/sdk_ws/ws.proto +++ b/pkg/proto/sdk_ws/ws.proto @@ -349,4 +349,98 @@ message RequestPagination { message ResponsePagination { int32 CurrentPage = 5; int32 ShowNumber = 6; -} \ No newline at end of file +} + + +///////////////////signal////////////// +message SignalReq { + oneof payload { + SignalInviteReq invite = 1; + SignalInviteInGroupReq inviteInGroup= 2; + SignalCancelReq cancel = 3; + SignalAcceptReq accept = 4; + SignalHungUpReq hungUp = 5; + SignalRejectReq reject = 6; + } +} + +message SignalResp { + oneof payload { + SignalInviteReply invite = 1; + SignalInviteInGroupReply inviteInGroup= 2; + SignalCancelReply cancel = 3; + SignalAcceptReply accept = 4; + SignalHungUpReply hungUp = 5; + SignalRejectReply reject = 6; + } +} + +message InvitationInfo { + string inviterUserID = 1; + repeated string inviteeUserIDList = 2; + string customData = 3; + string groupID = 4; +} + + +message SignalInviteReq { + InvitationInfo invitation = 1; +} + +message SignalInviteReply { + string token = 1; + string roomID = 2; + string liveURL = 3; +} + +message SignalInviteInGroupReq { + InvitationInfo invitation = 1; +} + +message SignalInviteInGroupReply { + string token = 1; + string roomID = 2; + string liveURL = 3; +} + +message SignalCancelReq { + string inviterUserID = 1; + SignalInviteReq invitation = 2; +} + +message SignalCancelReply { + +} + +message SignalAcceptReq { + string inviteeUserID = 1; + SignalInviteReq invitation = 2; +} + +message SignalAcceptReply { + +} + +message SignalHungUpReq { + string UserID = 1; + SignalInviteReq invitation = 2; +} + +message SignalHungUpReply { + +} + + +message SignalRejectReq { + string inviteeUserID = 1; + SignalInviteReq invitation = 2; +} + +message SignalRejectReply { + +} + + + + + From 9ab9ae04085b8e1ec4d1c62181b4edd785f9717f Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Fri, 11 Mar 2022 18:12:34 +0800 Subject: [PATCH 807/814] signal --- pkg/proto/sdk_ws/ws.proto | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/pkg/proto/sdk_ws/ws.proto b/pkg/proto/sdk_ws/ws.proto index d6608090d..5919a6c2f 100644 --- a/pkg/proto/sdk_ws/ws.proto +++ b/pkg/proto/sdk_ws/ws.proto @@ -418,7 +418,9 @@ message SignalAcceptReq { } message SignalAcceptReply { - + string token = 1; + string roomID = 2; + string liveURL = 3; } message SignalHungUpReq { From ebf7a1d40d4ba6b82ed518ca6b47e84ea6f61d6a Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Mon, 14 Mar 2022 10:23:44 +0800 Subject: [PATCH 808/814] v2.0.3 image --- docker-compose.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docker-compose.yaml b/docker-compose.yaml index f63b3c125..0f1c5308f 100644 --- a/docker-compose.yaml +++ b/docker-compose.yaml @@ -93,7 +93,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.2 + image: openim/open_im_server:v2.0.3 container_name: open_im_server volumes: - ./logs:/Open-IM-Server/logs From 91b9e50fd0f86ceca7a11a6117251d54f7166424 Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Fri, 18 Mar 2022 17:21:04 +0800 Subject: [PATCH 809/814] 2.0.4 --- cmd/Open-IM-SDK-Core | 2 +- docker-compose.yaml | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/cmd/Open-IM-SDK-Core b/cmd/Open-IM-SDK-Core index 1c6c7af53..dd23b4b18 160000 --- a/cmd/Open-IM-SDK-Core +++ b/cmd/Open-IM-SDK-Core @@ -1 +1 @@ -Subproject commit 1c6c7af5393b3e9eefbaf16b673519ca863a6c2c +Subproject commit dd23b4b185a273d38e73d51990c531e37ab5ba3b diff --git a/docker-compose.yaml b/docker-compose.yaml index 0f1c5308f..4d2495ade 100644 --- a/docker-compose.yaml +++ b/docker-compose.yaml @@ -93,7 +93,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.3 + image: openim/open_im_server:v2.0.4 container_name: open_im_server volumes: - ./logs:/Open-IM-Server/logs From cfab49a7dde13540d606d5b7d8f6686fcbdde56b Mon Sep 17 00:00:00 2001 From: wenxu12345 <44203734@qq.com> Date: Fri, 18 Mar 2022 17:44:50 +0800 Subject: [PATCH 810/814] friendVerify --- config/config.yaml | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/config/config.yaml b/config/config.yaml index dfaeaaed1..16445973d 100644 --- a/config/config.yaml +++ b/config/config.yaml @@ -178,7 +178,8 @@ tokenpolicy: accessSecret: "open_im_server" #token生成相关,默认即可 # Token effective time day as a unit accessExpire: 3650 #token过期时间(天) 默认即可 - +messageverify: + friendVerify: false # c2c: # callbackBeforeSendMsg: # switch: false From 7637b2bec24ff152369064e47fdb630a1f791d6b Mon Sep 17 00:00:00 2001 From: Gordon <1432970085@qq.com> Date: Fri, 18 Mar 2022 19:08:31 +0800 Subject: [PATCH 811/814] check shell update --- script/check_all.sh | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/script/check_all.sh b/script/check_all.sh index b94aa893a..d0f48597b 100644 --- a/script/check_all.sh +++ b/script/check_all.sh @@ -52,13 +52,13 @@ else fi -check=$(ps aux | grep -w ./${timer_task_name} | grep -v grep | wc -l) -if [ $check -ge 1 ]; then - echo -e ${GREEN_PREFIX}"none port has been listening,belongs service is openImMsgTimer"${COLOR_SUFFIX} -else - echo -e ${RED_PREFIX}"openImMsgTimer service does not start normally"${COLOR_SUFFIX} - echo -e ${RED_PREFIX}"please check ../logs/openIM.log "${COLOR_SUFFIX} - exit -1 -fi +#check=$(ps aux | grep -w ./${timer_task_name} | grep -v grep | wc -l) +#if [ $check -ge 1 ]; then +# echo -e ${GREEN_PREFIX}"none port has been listening,belongs service is openImMsgTimer"${COLOR_SUFFIX} +#else +# echo -e ${RED_PREFIX}"openImMsgTimer service does not start normally"${COLOR_SUFFIX} +# echo -e ${RED_PREFIX}"please check ../logs/openIM.log "${COLOR_SUFFIX} +# exit -1 +#fi echo -e ${YELLOW_PREFIX}"all services launch success"${COLOR_SUFFIX} From 1b8f664c8ac5b59d1187213e7d79c9c529a6c076 Mon Sep 17 00:00:00 2001 From: Arthur Date: Mon, 21 Mar 2022 11:03:46 +0800 Subject: [PATCH 812/814] fix: json tag value of UserIDResult.UserID (#178) Signed-off-by: arthur --- pkg/base_info/friend_api_struct.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pkg/base_info/friend_api_struct.go b/pkg/base_info/friend_api_struct.go index 64b71b284..3c45c393e 100644 --- a/pkg/base_info/friend_api_struct.go +++ b/pkg/base_info/friend_api_struct.go @@ -21,7 +21,7 @@ type ImportFriendReq struct { FromUserID string `json:"fromUserID" binding:"required"` } type UserIDResult struct { - UserID string `json:"userID""` + UserID string `json:"userID"` Result int32 `json:"result"` } type ImportFriendResp struct { From 1ab3e04cba4d6bd9464ba1944e177bff18596231 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=A9=AC=E5=AE=88=E8=B6=8A?= Date: Mon, 21 Mar 2022 11:13:17 +0800 Subject: [PATCH 813/814] =?UTF-8?q?=E6=96=B0=E5=A2=9Emongo.dbUrl=E9=85=8D?= =?UTF-8?q?=E7=BD=AE=20(#174)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * 当dbUri值不为空则直接使用该值 * 新增支持ali oss Co-authored-by: mashouyue's m1max --- cmd/open_im_api/main.go | 15 ++-- config/config.yaml | 11 +++ deploy/config.example.yaml | 1 + go.mod | 2 + go.sum | 7 +- internal/api/third/ali_oss_credential.go | 95 ++++++++++++++++++++++++ pkg/base_info/oss_api_struct.go | 22 ++++++ pkg/common/config/config.go | 28 +++++-- pkg/common/db/model.go | 11 ++- 9 files changed, 173 insertions(+), 19 deletions(-) create mode 100644 internal/api/third/ali_oss_credential.go create mode 100644 pkg/base_info/oss_api_struct.go diff --git a/cmd/open_im_api/main.go b/cmd/open_im_api/main.go index 551a37a0e..eff8710e0 100644 --- a/cmd/open_im_api/main.go +++ b/cmd/open_im_api/main.go @@ -59,13 +59,13 @@ func main() { groupRouterGroup.POST("/transfer_group", group.TransferGroupOwner) //1 groupRouterGroup.POST("/get_recv_group_applicationList", group.GetRecvGroupApplicationList) //1 groupRouterGroup.POST("/get_user_req_group_applicationList", group.GetUserReqGroupApplicationList) - groupRouterGroup.POST("/get_groups_info", group.GetGroupsInfo) //1 - groupRouterGroup.POST("/kick_group", group.KickGroupMember) //1 - groupRouterGroup.POST("/get_group_member_list", group.GetGroupMemberList) //no use - groupRouterGroup.POST("/get_group_all_member_list", group.GetGroupAllMemberList) //1 - groupRouterGroup.POST("/get_group_members_info", group.GetGroupMembersInfo) //1 - groupRouterGroup.POST("/invite_user_to_group", group.InviteUserToGroup) //1 - groupRouterGroup.POST("/get_joined_group_list", group.GetJoinedGroupList) //1 + groupRouterGroup.POST("/get_groups_info", group.GetGroupsInfo) //1 + groupRouterGroup.POST("/kick_group", group.KickGroupMember) //1 + groupRouterGroup.POST("/get_group_member_list", group.GetGroupMemberList) //no use + groupRouterGroup.POST("/get_group_all_member_list", group.GetGroupAllMemberList) //1 + groupRouterGroup.POST("/get_group_members_info", group.GetGroupMembersInfo) //1 + groupRouterGroup.POST("/invite_user_to_group", group.InviteUserToGroup) //1 + groupRouterGroup.POST("/get_joined_group_list", group.GetJoinedGroupList) //1 } //certificate authRouterGroup := r.Group("/auth") @@ -77,6 +77,7 @@ func main() { thirdGroup := r.Group("/third") { thirdGroup.POST("/tencent_cloud_storage_credential", apiThird.TencentCloudStorageCredential) + thirdGroup.POST("/ali_oss_credential", apiThird.AliOSSCredential) thirdGroup.POST("/minio_storage_credential", apiThird.MinioStorageCredential) } //Message diff --git a/config/config.yaml b/config/config.yaml index 16445973d..e7c511930 100644 --- a/config/config.yaml +++ b/config/config.yaml @@ -19,6 +19,7 @@ mysql: dbMaxLifeTime: 120 mongo: + dbUri: ""#当dbUri值不为空则直接使用该值 dbAddress: [ 127.0.0.1:37017 ] #redis地址 目前仅支持单机,默认即可 dbDirect: false dbTimeout: 10 @@ -93,6 +94,16 @@ credential: #腾讯cos,发送图片、视频、文件时需要,请自行申 endpoint: http://127.0.0.1:9000 accessKeyID: user12345 secretAccessKey: key12345 + ali: # ali oss + regionID: "oss-cn-beijing" + accessKeyID: "" + accessKeySecret: "" + stsEndpoint: "sts.cn-beijing.aliyun.com" + ossEndpoint: "oss-cn-beijing.aliyuncs.com" + bucket: "bucket1" + finalHost: "http://bucket1.oss-cn-beijing.aliyuncs.com" + stsDurationSeconds: 3600 + OssRoleArn: "acs:ram::xxx:role/xxx" rpcport: #rpc服务端口 默认即可 diff --git a/deploy/config.example.yaml b/deploy/config.example.yaml index f0ae8314e..08d8858e4 100644 --- a/deploy/config.example.yaml +++ b/deploy/config.example.yaml @@ -19,6 +19,7 @@ mysql: dbMaxLifeTime: 120 mongo: + dbUri: ""#当dbUri值不为空则直接使用该值 dbAddress: [ openim_mongo:27017 ] dbDirect: false dbTimeout: 10 diff --git a/go.mod b/go.mod index 9fbbf033a..8bb682c49 100644 --- a/go.mod +++ b/go.mod @@ -7,6 +7,7 @@ require ( github.com/Shopify/toxiproxy v2.1.4+incompatible // indirect github.com/alibabacloud-go/darabonba-openapi v0.1.11 github.com/alibabacloud-go/dysmsapi-20170525/v2 v2.0.8 + github.com/alibabacloud-go/sts-20150401 v1.1.0 github.com/alibabacloud-go/tea v1.1.17 github.com/antonfisher/nested-logrus-formatter v1.3.0 github.com/bwmarrin/snowflake v0.3.0 @@ -52,6 +53,7 @@ require ( google.golang.org/protobuf v1.27.1 gopkg.in/alexcesaro/quotedprintable.v3 v3.0.0-20150716171945-2caba252f4dc // indirect gopkg.in/gomail.v2 v2.0.0-20160411212932-81ebce5c23df + gopkg.in/ini.v1 v1.66.2 // indirect gopkg.in/mgo.v2 v2.0.0-20190816093944-a6b53ec6cb22 gopkg.in/yaml.v3 v3.0.0-20210107192922-496545a6307b sigs.k8s.io/yaml v1.2.0 // indirect diff --git a/go.sum b/go.sum index 2385d32f5..ab34c4c92 100644 --- a/go.sum +++ b/go.sum @@ -50,6 +50,7 @@ github.com/Shopify/toxiproxy v2.1.4+incompatible h1:TKdv8HiTLgE5wdJuEML90aBgNWso github.com/Shopify/toxiproxy v2.1.4+incompatible/go.mod h1:OXgGpZ6Cli1/URJOF1DMxUHB2q5Ap20/P/eIdh4G0pI= github.com/alecthomas/template v0.0.0-20160405071501-a0175ee3bccc/go.mod h1:LOuyumcjzFXgccqObfd/Ljyb9UuFJ6TxHnclSeseNhc= github.com/alecthomas/units v0.0.0-20151022065526-2efee857e7cf/go.mod h1:ybxpYRFXyAe+OPACYpWeL0wqObRcbAqCMya13uyzqw0= +github.com/alibabacloud-go/darabonba-openapi v0.1.7/go.mod h1:6FV1Bt1AItYIlC2rVopPTumrRNtkfPBmrPVAZ8v2bLk= github.com/alibabacloud-go/darabonba-openapi v0.1.11 h1:w59gtSA0s87p0U5NNG/N/PIHsRP3rtj7qCP9hx9+GL8= github.com/alibabacloud-go/darabonba-openapi v0.1.11/go.mod h1:MPJMxv7HYrFm5m9uOZWkDYsAWyZztEgnBRfk9Fg0eIU= github.com/alibabacloud-go/darabonba-string v1.0.0/go.mod h1:93cTfV3vuPhhEwGGpKKqhVW4jLe7tDpo3LUM0i0g6mA= @@ -59,8 +60,11 @@ github.com/alibabacloud-go/dysmsapi-20170525/v2 v2.0.8 h1:KXMiCg99Jx7B6V+DlRFbWw github.com/alibabacloud-go/dysmsapi-20170525/v2 v2.0.8/go.mod h1:8aL6tSyQIWJygF7W/Vqxdf/QDbN2S+u57k36bEA8hD8= github.com/alibabacloud-go/endpoint-util v1.1.0 h1:r/4D3VSw888XGaeNpP994zDUaxdgTSHBbVfZlzf6b5Q= github.com/alibabacloud-go/endpoint-util v1.1.0/go.mod h1:O5FuCALmCKs2Ff7JFJMudHs0I5EBgecXXxZRyswlEjE= +github.com/alibabacloud-go/openapi-util v0.0.8/go.mod h1:sQuElr4ywwFRlCCberQwKRFhRzIyG4QTP/P4y1CJ6Ws= github.com/alibabacloud-go/openapi-util v0.0.9 h1:Z0DP4LFzkM/rW2nxOMiiLoQVZSeE3jVc5jrZ9Fd/UX0= github.com/alibabacloud-go/openapi-util v0.0.9/go.mod h1:sQuElr4ywwFRlCCberQwKRFhRzIyG4QTP/P4y1CJ6Ws= +github.com/alibabacloud-go/sts-20150401 v1.1.0 h1:1yVyKz02ES6aKo3xVjmoPLBH1OAmmSqPkhKRdjEkmYs= +github.com/alibabacloud-go/sts-20150401 v1.1.0/go.mod h1:QW4O/c7Hp4krHYt+6xwnoG8EyZW3V9GYkl6EgIBmxJc= github.com/alibabacloud-go/tea v1.1.0/go.mod h1:IkGyUSX4Ba1V+k4pCtJUc6jDpZLFph9QMy2VUPTwukg= github.com/alibabacloud-go/tea v1.1.7/go.mod h1:/tmnEaQMyb4Ky1/5D+SE1BAsa5zj/KeGOFfwYm3N/p4= github.com/alibabacloud-go/tea v1.1.8/go.mod h1:/tmnEaQMyb4Ky1/5D+SE1BAsa5zj/KeGOFfwYm3N/p4= @@ -904,8 +908,9 @@ gopkg.in/gomail.v2 v2.0.0-20160411212932-81ebce5c23df h1:n7WqCuqOuCbNr617RXOY0AW gopkg.in/gomail.v2 v2.0.0-20160411212932-81ebce5c23df/go.mod h1:LRQQ+SO6ZHR7tOkpBDuZnXENFzX8qRjMDMyPD6BRkCw= gopkg.in/ini.v1 v1.56.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= gopkg.in/ini.v1 v1.57.0/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= -gopkg.in/ini.v1 v1.63.2 h1:tGK/CyBg7SMzb60vP1M03vNZ3VDu3wGQJwn7Sxi9r3c= gopkg.in/ini.v1 v1.63.2/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= +gopkg.in/ini.v1 v1.66.2 h1:XfR1dOYubytKy4Shzc2LHrrGhU0lDCfDGG1yLPmpgsI= +gopkg.in/ini.v1 v1.66.2/go.mod h1:pNLf8WUiyNEtQjuu5G5vTm06TEv9tsIgeAvK8hOrP4k= gopkg.in/mgo.v2 v2.0.0-20190816093944-a6b53ec6cb22 h1:VpOs+IwYnYBaFnrNAeB8UUWtL3vEUnzSCL1nVjPhqrw= gopkg.in/mgo.v2 v2.0.0-20190816093944-a6b53ec6cb22/go.mod h1:yeKp02qBN3iKW1OzL3MGk2IdtZzaj7SFntXj72NppTA= gopkg.in/resty.v1 v1.12.0/go.mod h1:mDo4pnntr5jdWRML875a/NmxYqAlA73dVijT2AXvQQo= diff --git a/internal/api/third/ali_oss_credential.go b/internal/api/third/ali_oss_credential.go new file mode 100644 index 000000000..c07cd5d22 --- /dev/null +++ b/internal/api/third/ali_oss_credential.go @@ -0,0 +1,95 @@ +package apiThird + +import ( + api "Open_IM/pkg/base_info" + "Open_IM/pkg/common/config" + "Open_IM/pkg/common/constant" + "Open_IM/pkg/common/log" + "Open_IM/pkg/common/token_verify" + "fmt" + openapi "github.com/alibabacloud-go/darabonba-openapi/client" + sts20150401 "github.com/alibabacloud-go/sts-20150401/client" + "github.com/alibabacloud-go/tea/tea" + "github.com/fatih/structs" + + //"github.com/fatih/structs" + "github.com/gin-gonic/gin" + "net/http" + "time" +) + +var stsClient *sts20150401.Client + +/** + * 使用AK&SK初始化账号Client + * @param accessKeyId + * @param accessKeySecret + * @return Client + * @throws Exception + */ +func getStsClient() *sts20150401.Client { + if stsClient != nil { + return stsClient + } + conf := &openapi.Config{ + // 您的AccessKey ID + AccessKeyId: tea.String(config.Config.Credential.Ali.AccessKeyID), + // 您的AccessKey Secret + AccessKeySecret: tea.String(config.Config.Credential.Ali.AccessKeySecret), + // Endpoint + Endpoint: tea.String(config.Config.Credential.Ali.StsEndpoint), + } + result, err := sts20150401.NewClient(conf) + if err != nil { + log.NewError("", "alists client初始化失败 ", err) + } + stsClient = result + return stsClient +} + +func AliOSSCredential(c *gin.Context) { + req := api.OSSCredentialReq{} + if err := c.BindJSON(&req); err != nil { + log.NewError("0", "BindJSON failed ", err.Error()) + c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": err.Error()}) + return + } + ok, userID := token_verify.GetUserIDFromToken(c.Request.Header.Get("token")) + if !ok { + log.NewError(req.OperationID, "GetUserIDFromToken false ", c.Request.Header.Get("token")) + c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": "GetUserIDFromToken failed"}) + return + } + log.NewInfo(req.OperationID, "AliOSSCredential args ", userID) + + stsResp, err := getStsClient().AssumeRole(&sts20150401.AssumeRoleRequest{ + DurationSeconds: tea.Int64(config.Config.Credential.Ali.StsDurationSeconds), + Policy: nil, + RoleArn: tea.String(config.Config.Credential.Ali.OssRoleArn), + RoleSessionName: tea.String(fmt.Sprintf("%s-%d", userID, time.Now().Unix())), + }) + + resp := api.OSSCredentialResp{} + if err != nil { + resp.ErrCode = constant.ErrTencentCredential.ErrCode + resp.ErrMsg = err.Error() + } else { + resp = api.OSSCredentialResp{ + CommResp: api.CommResp{}, + OssData: api.OSSCredentialRespData{ + Endpoint: config.Config.Credential.Ali.OssEndpoint, + AccessKeyId: *stsResp.Body.Credentials.AccessKeyId, + AccessKeySecret: *stsResp.Body.Credentials.AccessKeySecret, + Token: *stsResp.Body.Credentials.SecurityToken, + Bucket: config.Config.Credential.Ali.Bucket, + FinalHost: config.Config.Credential.Ali.FinalHost, + }, + Data: nil, + } + } + + resp.Data = structs.Map(&resp.OssData) + log.NewInfo(req.OperationID, "AliOSSCredential return ", resp) + + c.JSON(http.StatusOK, resp) +} diff --git a/pkg/base_info/oss_api_struct.go b/pkg/base_info/oss_api_struct.go new file mode 100644 index 000000000..621d18820 --- /dev/null +++ b/pkg/base_info/oss_api_struct.go @@ -0,0 +1,22 @@ +package base_info + +type OSSCredentialReq struct { + OperationID string `json:"operationID"` + Filename string `json:"filename"` + FileType string `json:"file_type"` +} + +type OSSCredentialRespData struct { + Endpoint string `json:"endpoint"` + AccessKeyId string `json:"access_key_id"` + AccessKeySecret string `json:"access_key_secret"` + Token string `json:"token"` + Bucket string `json:"bucket"` + FinalHost string `json:"final_host"` +} + +type OSSCredentialResp struct { + CommResp + OssData OSSCredentialRespData `json:"-"` + Data map[string]interface{} `json:"data"` +} diff --git a/pkg/common/config/config.go b/pkg/common/config/config.go index 282440672..05ff23020 100644 --- a/pkg/common/config/config.go +++ b/pkg/common/config/config.go @@ -20,8 +20,8 @@ var ( var Config config type callBackConfig struct { - Enable bool `yaml:"enable"` - CallbackTimeOut int `yaml:"callbackTimeOut"` + Enable bool `yaml:"enable"` + CallbackTimeOut int `yaml:"callbackTimeOut"` CallbackFailedContinue bool `CallbackFailedContinue` } @@ -31,7 +31,7 @@ type config struct { Api struct { GinPort []int `yaml:"openImApiPort"` } - CmsApi struct{ + CmsApi struct { GinPort []int `yaml:"openImCmsApiPort"` } Sdk struct { @@ -45,6 +45,17 @@ type config struct { SecretID string `yaml:"secretID"` SecretKey string `yaml:"secretKey"` } + Ali struct { + RegionID string `yaml:"regionID"` + AccessKeyID string `yaml:"accessKeyID"` + AccessKeySecret string `yaml:"accessKeySecret"` + StsEndpoint string `yaml:"stsEndpoint"` + OssEndpoint string `yaml:"ossEndpoint"` + Bucket string `yaml:"bucket"` + FinalHost string `yaml:"finalHost"` + StsDurationSeconds int64 `yaml:"stsDurationSeconds"` + OssRoleArn string `yaml:"OssRoleArn"` + } Minio struct { Bucket string `yaml:"bucket"` Location string `yaml:"location"` @@ -66,6 +77,7 @@ type config struct { DBMaxLifeTime int `yaml:"dbMaxLifeTime"` } Mongo struct { + DBUri string `yaml:"dbUri"` // 当dbUri值不为空则直接使用该值 DBAddress []string `yaml:"dbAddress"` DBDirect bool `yaml:"dbDirect"` DBTimeout int `yaml:"dbTimeout"` @@ -182,12 +194,12 @@ type config struct { } Callback struct { - CallbackUrl string `yaml:"callbackUrl"` + CallbackUrl string `yaml:"callbackUrl"` CallbackBeforeSendSingleMsg callBackConfig `yaml:"callbackbeforeSendSingleMsg"` - CallbackAfterSendSingleMsg callBackConfig `yaml:"callbackAfterSendSingleMsg"` - CallbackBeforeSendGroupMsg callBackConfig `yaml:"callbackBeforeSendGroupMsg"` - CallbackAfterSendGroupMsg callBackConfig `yaml:"callbackAfterSendGroupMsg"` - CallbackWordFilter callBackConfig `yaml:"callbackWordFilter"` + CallbackAfterSendSingleMsg callBackConfig `yaml:"callbackAfterSendSingleMsg"` + CallbackBeforeSendGroupMsg callBackConfig `yaml:"callbackBeforeSendGroupMsg"` + CallbackAfterSendGroupMsg callBackConfig `yaml:"callbackAfterSendGroupMsg"` + CallbackWordFilter callBackConfig `yaml:"callbackWordFilter"` } `yaml:"callback"` Notification struct { ///////////////////////group///////////////////////////// diff --git a/pkg/common/db/model.go b/pkg/common/db/model.go index 0576e6286..e7b03cbd5 100644 --- a/pkg/common/db/model.go +++ b/pkg/common/db/model.go @@ -42,9 +42,14 @@ func init() { // mongo init // "mongodb://sysop:moon@localhost/records" uri := "mongodb://sample.host:27017/?maxPoolSize=20&w=majority" - uri = fmt.Sprintf("mongodb://%s/%s/?maxPoolSize=%d", - config.Config.Mongo.DBAddress[0],config.Config.Mongo.DBDatabase, - config.Config.Mongo.DBMaxPoolSize) + if config.Config.Mongo.DBUri != "" { + // example: mongodb://$user:$password@mongo1.mongo:27017,mongo2.mongo:27017,mongo3.mongo:27017/$DBDatabase/?replicaSet=rs0&readPreference=secondary&authSource=admin&maxPoolSize=$DBMaxPoolSize + uri = config.Config.Mongo.DBUri + } else { + uri = fmt.Sprintf("mongodb://%s/%s/?maxPoolSize=%d", + config.Config.Mongo.DBAddress[0], config.Config.Mongo.DBDatabase, + config.Config.Mongo.DBMaxPoolSize) + } mongoClient, err := mongo.Connect(context.TODO(), options.Client().ApplyURI(uri)) if err != nil{ From e0c6972bed29d8b2ced7d984ebc3a20a460027be Mon Sep 17 00:00:00 2001 From: Sunny Date: Mon, 21 Mar 2022 11:19:10 +0800 Subject: [PATCH 814/814] Update config.yaml (#167) Co-authored-by: Gordon <46924906+FGadvancer@users.noreply.github.com> --- config/config.yaml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/config/config.yaml b/config/config.yaml index e7c511930..344743ec9 100644 --- a/config/config.yaml +++ b/config/config.yaml @@ -20,7 +20,7 @@ mysql: mongo: dbUri: ""#当dbUri值不为空则直接使用该值 - dbAddress: [ 127.0.0.1:37017 ] #redis地址 目前仅支持单机,默认即可 + dbAddress: [ 127.0.0.1:37017 ] #mongo地址 目前仅支持单机,默认即可 dbDirect: false dbTimeout: 10 dbDatabase: openIM #mongo db 默认即可